[
  {
    "path": ".github/FUNDING.yml",
    "content": "open_collective: libsodium\n"
  },
  {
    "path": ".github/ISSUE_TEMPLATE/bugs.md",
    "content": "---\nname: \"\\U0001F41E Bug report\"\nabout: Report a bug in libsodium\ntitle: \"\"\nlabels: \"\"\nassignees: \"\"\n---\n\nThanks for taking the time to report a bug!\n\nThis tracker is for confirmed, reproducible bugs. If you're looking for help with installation, configuration, usage, or issues with third-party packages, the [Discussions](https://github.com/jedisct1/libsodium/discussions) section is a better place to start.\n\n### Before you file\n\n- Try reproducing the issue with the current `libsodium-stable` package, installed as documented at https://doc.libsodium.org/installation\n- If the bug isn't obvious, please describe all the steps needed to reproduce it on a fresh install of macOS, Windows, OpenBSD, or Ubuntu Linux\n\n### Not sure if it's a bug?\n\nNo worries! Feel free to [start a discussion](https://github.com/jedisct1/libsodium/discussions) first and we can figure it out together.\n\n---\n\n### How do we replicate the issue?\n\n(Describe the steps to reproduce the bug)\n\n### Expected behavior\n\n(What did you expect to happen?)\n\n### Actual behavior\n\n(What actually happened?)\n"
  },
  {
    "path": ".github/ISSUE_TEMPLATE/suggestions.md",
    "content": "---\nname: \"🙋🏽 Planned changes\"\nabout: Track planned changes (maintainers only)\ntitle: \"\"\nlabels: \"\"\nassignees: \"\"\n---\n\nHey there! Got an idea for libsodium?\n\nThis template is for tracking work that's already been planned. For new feature suggestions, here's the best path forward:\n\n1. Check the [roadmap](https://doc.libsodium.org/roadmap) to see if it's already on our radar\n2. Start an \"Ideas\" thread in [Discussions](https://github.com/jedisct1/libsodium/discussions)\n\nFrom there, we can chat about it and decide together if it should become a planned change. This helps keep the issue tracker focused on active work.\n\n---\n\n- [ ] Initially raised as discussion #...\n"
  },
  {
    "path": ".github/workflows/autocloser.yml",
    "content": "name: Autocloser\non: [issues]\n\npermissions:\n  issues: write\n\njobs:\n  autoclose:\n    runs-on: ubuntu-latest\n    steps:\n    - name: Autoclose issues that did not follow issue template\n      uses: roots/issue-closer@fec85f2a845cd6cf33eda6e6a4c93026e71f86d1 # v1.2\n      with:\n        repo-token: ${{ secrets.GITHUB_TOKEN }}\n        issue-close-message: \"This issue was automatically closed because it did not follow the issue template. We use the issue tracker exclusively for bug reports and feature additions that have been previously discussed. However, this issue appears to be a support request. Please use the discussion forums for support requests.\"\n        issue-pattern: \".*(do we replicate the issue|Expected behavior|raised as discussion|# Impact).*\"\n"
  },
  {
    "path": ".github/workflows/ci.yml",
    "content": "name: CI\n\non:\n  push:\n    branches: [master, stable, next]\n  pull_request:\n    branches: [master, stable, next]\n\n  workflow_dispatch:\n\npermissions:\n  contents: read\n\njobs:\n  tcc:\n    runs-on: ubuntu-latest\n    steps:\n      - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6\n        with:\n          persist-credentials: false\n\n      - name: Update packages list\n        run: sudo apt-get update\n\n      - name: Install dependencies\n        run: |\n          sudo apt-get install -y build-essential libtool autoconf automake tcc\n\n      - name: Autogen\n        run: ./autogen.sh -s\n\n      - name: Compilation with tcc\n        run: |\n          env CC=tcc CFLAGS='-w' CPPFLAGS=\"-DDEV_MODE=1\" ./configure --prefix=/tmp --disable-dependency-tracking --disable-shared || cat config.log\n          make -j $(nproc) && make check && make install\n          env CC=tcc CPPFLAGS='-I/tmp/include' LDFLAGS='-L/tmp/lib' LD_LIBRARY_PATH='/tmp/lib' ./test/constcheck.sh\n          make uninstall\n          make distclean\n\n  zig:\n    runs-on: ubuntu-latest\n    steps:\n      - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6\n        with:\n          persist-credentials: false\n\n      - name: Update packages list\n        run: sudo apt-get update\n\n      - name: Install Zig\n        uses: mlugg/setup-zig@d1434d08867e3ee9daa34448df10607b98908d29 # v2\n        with:\n          version: master\n\n      - name: Autogen\n        run: ./autogen.sh -s\n\n      - name: Compilation with zig\n        run: |\n          zig build\n          zig build -Dtarget=x86_64-linux\n          zig build -Dtarget=aarch64-linux\n          zig build -Dtarget=x86-windows\n          zig build -Dtarget=x86_64-windows\n          zig build -Dtarget=aarch64-windows\n          zig build -Dtarget=x86_64-macos\n          zig build -Dtarget=aarch64-macos\n          zig build -Dtarget=x86_64-freebsd\n          zig build -Dtarget=aarch64-freebsd\n          zig build -Dtarget=wasm32-wasi\n          zig build -Doptimize=ReleaseFast\n          rm -fr zig-cache zig-out\n\n  regular:\n    runs-on: ubuntu-latest\n    steps:\n      - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6\n        with:\n          persist-credentials: false\n\n      - name: Update packages list\n        run: sudo apt-get update\n\n      - name: Install dependencies\n        run: sudo apt-get install -y build-essential libtool autoconf automake\n\n      - name: Autogen\n        run: ./autogen.sh -s\n\n      - name: C99 compat check\n        run: |\n          env CPPFLAGS=\"-DDEV_MODE=1\" ./configure --disable-dependency-tracking\n          make -j $(nproc) CFLAGS='-g0' > /dev/null && cp src/libsodium/.libs/libsodium.so lib.so && make clean > /dev/null && make CFLAGS='-g0' CPPFLAGS='-DDEV_MODE=1 -DSODIUM_C99\\(X\\)=' > /dev/null && cp src/libsodium/.libs/libsodium.so lib-oldc.so && cmp lib.so lib-oldc.so && echo No binary changes && make clean > /dev/null\n          make distcheck\n          make distclean > /dev/null\n\n      - name: Regular compilation\n        run: |\n          env CPPFLAGS=\"-DDEV_MODE=1\" ./configure --disable-dependency-tracking --enable-minimal\n          make -j $(nproc)\n          make check\n          ( echo '#include <sodium.h>' ; echo 'int main(void) { return sodium_init(); }' ) > /tmp/main.c && gcc -DDEV_MODE=1 -Isrc/libsodium/include -Isrc/libsodium/include/sodium $(find src -name '*.c' -o -name '*.S') /tmp/main.c\n          make distclean > /dev/null\n\n  check-globals:\n    runs-on: ubuntu-latest\n    steps:\n      - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6\n        with:\n          persist-credentials: false\n\n      - name: Update packages list\n        run: sudo apt-get update\n\n      - name: Install dependencies\n        run: sudo apt-get install -y build-essential libtool autoconf automake\n\n      - name: Autogen\n        run: ./autogen.sh -s\n\n      - name: Check globals\n        run: |\n          if [ -x test/rename-globals.sh ]; then test/rename-globals.sh; fi\n\n  other-comp:\n    runs-on: ubuntu-latest\n    steps:\n      - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6\n        with:\n          persist-credentials: false\n\n      - name: Update packages list\n        run: sudo apt-get update\n\n      - name: Install dependencies\n        run: sudo apt-get install -y build-essential libtool autoconf automake clang\n\n      - name: Autogen\n        run: ./autogen.sh -s\n\n      - name: Compilation with g++\n        run: |\n          env CC=g++ CPPFLAGS=\"-DDEV_MODE=1\" ./configure --disable-dependency-tracking\n          make -j $(nproc) check\n          make clean > /dev/null\n\n      - name: Compilation with clang\n        run: |\n          env CC=clang CPPFLAGS=\"-DDEV_MODE=1\" ./configure --disable-dependency-tracking\n          make -j $(nproc) check\n          make clean > /dev/null\n\n  other-arch:\n    runs-on: ubuntu-latest\n    steps:\n      - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6\n        with:\n          persist-credentials: false\n\n      - name: Update packages list\n        run: sudo apt-get update\n\n      - name: Install dependencies\n        run: sudo apt-get install -y build-essential libtool autoconf automake gcc-powerpc-linux-gnu\n\n      - name: Autogen\n        run: ./autogen.sh -s\n\n      - name: Big-Endian PowerPC compilation\n        run: |\n          env CPPFLAGS=\"-DDEV_MODE=1\" ./configure --disable-dependency-tracking --host=powerpc-linux-gnu\n          make -j $(nproc)\n          make clean > /dev/null\n\n  wasi:\n    runs-on: ubuntu-latest\n    steps:\n      - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6\n        with:\n          persist-credentials: false\n\n      - name: Install Zig\n        uses: mlugg/setup-zig@d1434d08867e3ee9daa34448df10607b98908d29 # v2\n        with:\n          version: master\n\n      - name: Install Wasmer\n        uses: wasmerio/setup-wasmer@24b15c95293d23f89c68bd40dac76338f773e924 # v3.1\n\n      - name: Build for wasi-core\n        run: zig build -Dtarget=wasm32-wasi -Doptimize=ReleaseSafe\n\n      - name: Run tests with Wasmer\n        run: |\n          cd zig-out/bin\n          failed=0\n          for wasm in *.wasm; do\n            name=\"${wasm%.wasm}\"\n            echo \"[$name]\"\n            if ! wasmer run \"$wasm\" --volume=./:.  2>&1; then\n              echo \"*** [$name] FAILED\" >&2\n              failed=1\n            fi\n          done\n          exit $failed\n\n  aarch64-gcc:\n    runs-on: ubuntu-24.04-arm\n    steps:\n      - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6\n        with:\n          persist-credentials: false\n\n      - name: Update packages list\n        run: sudo apt-get update\n\n      - name: Install dependencies\n        run: sudo apt-get install -y build-essential libtool autoconf automake\n\n      - name: Autogen\n        run: ./autogen.sh -s\n\n      - name: Compilation with GCC on aarch64\n        run: |\n          env CPPFLAGS=\"-DDEV_MODE=1\" ./configure --disable-dependency-tracking\n          make -j $(nproc)\n          make check\n          make distclean > /dev/null\n\n  aarch64-gcc-crypto:\n    runs-on: ubuntu-24.04-arm\n    steps:\n      - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6\n        with:\n          persist-credentials: false\n\n      - name: Update packages list\n        run: sudo apt-get update\n\n      - name: Install dependencies\n        run: sudo apt-get install -y build-essential libtool autoconf automake\n\n      - name: Autogen\n        run: ./autogen.sh -s\n\n      - name: Compilation with GCC on aarch64 with NEON and ARM Crypto extensions\n        run: |\n          env CFLAGS=\"-march=armv8-a+crypto\" CPPFLAGS=\"-DDEV_MODE=1\" ./configure --disable-dependency-tracking\n          make -j $(nproc)\n          make check\n          make distclean > /dev/null\n\n  aarch64-gcc-sha3:\n    runs-on: ubuntu-24.04-arm\n    steps:\n      - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6\n        with:\n          persist-credentials: false\n\n      - name: Update packages list\n        run: sudo apt-get update\n\n      - name: Install dependencies\n        run: sudo apt-get install -y build-essential libtool autoconf automake\n\n      - name: Autogen\n        run: ./autogen.sh -s\n\n      - name: Compilation with GCC on aarch64 with NEON, ARM Crypto, and SHA3 extensions\n        run: |\n          env CFLAGS=\"-march=armv8-a+crypto+sha3\" CPPFLAGS=\"-DDEV_MODE=1\" ./configure --disable-dependency-tracking\n          make -j $(nproc)\n          make check\n          make distclean > /dev/null\n\n  android:\n    runs-on: ubuntu-latest\n    steps:\n      - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6\n        with:\n          persist-credentials: false\n\n      - name: Update packages list\n        run: sudo apt-get update\n\n      - name: Install base dependencies\n        run: sudo apt-get install -y libtool autoconf automake unzip\n\n      - name: Autogen\n        run: ./autogen.sh -s\n\n      - name: Install Android NDK\n        run: |\n          mkdir /tmp/android && cd /tmp/android\n          curl -o ndk.zip -L https://dl.google.com/android/repository/android-ndk-r29-linux.zip\n          unzip ndk.zip && rm -f *.zip && mv android-ndk* ndk\n\n      - name: Android compilation\n        run: |\n          env ANDROID_NDK_HOME=/tmp/android/ndk ./dist-build/android-aar.sh\n"
  },
  {
    "path": ".github/workflows/cifuzz.yml",
    "content": "name: CIFuzz\n\non:\n  push:\n    branches: [stable, next]\n  pull_request:\n    branches: [stable, next]\n\npermissions:\n  contents: read\n\njobs:\n  Fuzzing:\n    runs-on: ubuntu-latest\n    steps:\n      - name: Build Fuzzers\n        id: build\n        uses: google/oss-fuzz/infra/cifuzz/actions/build_fuzzers@745471a8a36fb54f1306e6157e105a3628e40318 # master 2026-03-08\n        with:\n          oss-fuzz-project-name: \"libsodium\"\n          dry-run: false\n          language: c++\n      - name: Run Fuzzers\n        uses: google/oss-fuzz/infra/cifuzz/actions/run_fuzzers@745471a8a36fb54f1306e6157e105a3628e40318 # master 2026-03-08\n        with:\n          oss-fuzz-project-name: \"libsodium\"\n          fuzz-seconds: 300\n          dry-run: false\n          language: c++\n      - name: Upload Crash\n        uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4\n        if: failure() && steps.build.outcome == 'success'\n        with:\n          name: artifacts\n          path: ./out/artifacts\n"
  },
  {
    "path": ".github/workflows/codeql-analysis.yml",
    "content": "name: \"CodeQL scan\"\n\non:\n  push:\n    branches: [ \"master stable next\" ]\n  pull_request:\n    # The branches below must be a subset of the branches above\n    branches: [ \"master stable next\" ]\n  schedule:\n    - cron: '0 17 * * 2'\n\npermissions:\n  contents: read\n\njobs:\n  analyze:\n    name: Analyze\n    runs-on: ${{ (matrix.language == 'swift' && 'macos-latest') || 'ubuntu-latest' }}\n    timeout-minutes: ${{ (matrix.language == 'swift' && 120) || 360 }}\n    permissions:\n      actions: read\n      contents: read\n      security-events: write\n\n    strategy:\n      fail-fast: false\n      matrix:\n        language: [ 'c-cpp' ]\n\n    steps:\n    - name: Checkout repository\n      uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6\n      with:\n        fetch-depth: 2\n        persist-credentials: false\n\n    # Initializes the CodeQL tools for scanning.\n    - name: Initialize CodeQL\n      uses: github/codeql-action/init@dd677812177e0c29f9c970a6c58d8607ae1bfefd # v4\n      with:\n        languages: ${{ matrix.language }}\n\n    - run: |\n        echo \"Run, Build Application using script\"\n        ./autogen.sh -s\n        env CPPFLAGS=\"-DDEV_MODE=1\" ./configure --disable-dependency-tracking\n        make -j $(nproc) check\n\n    - name: Perform CodeQL Analysis\n      uses: github/codeql-action/analyze@dd677812177e0c29f9c970a6c58d8607ae1bfefd # v4\n      with:\n        category: \"/language:${{matrix.language}}\"\n"
  },
  {
    "path": ".github/workflows/dotnet-core.yml",
    "content": "name: .NET Package\n\non:\n  push:\n    branches:\n      - stable\n      - next\n\npermissions:\n  contents: read\n\njobs:\n  build-windows-msvc:\n    runs-on: windows-latest\n    steps:\n      - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6\n        with:\n          persist-credentials: false\n      - name: buildbase.bat\n        run: buildbase.bat ..\\vs2022\\libsodium.sln 17\n        working-directory: builds/msvc/build/\n        shell: cmd\n      - uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4\n        with:\n          name: build-win-x64\n          path: bin/x64/Release/v143/dynamic/libsodium.dll\n      - uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4\n        with:\n          name: build-win-x86\n          path: bin/Win32/Release/v143/dynamic/libsodium.dll\n      - uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4\n        with:\n          name: build-win-arm64\n          path: bin/ARM64/Release/v143/dynamic/libsodium.dll\n\n  build-others:\n    runs-on: ubuntu-latest\n    steps:\n      - name: Install Zig\n        uses: mlugg/setup-zig@d1434d08867e3ee9daa34448df10607b98908d29 # v2\n        with:\n          version: master\n      - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6\n        with:\n          persist-credentials: false\n\n      - name: Build Android AAR\n        run: sh ./dist-build/android-aar.sh\n\n      - name: Extract android AAR file\n        run: |\n          mkdir -p extracted-aar\n          unzip libsodium-*.aar -d extracted-aar\n            \n      - name: Upload Android arm64\n        uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4\n        with:\n          name: build-android-arm64\n          path: extracted-aar/prefab/modules/sodium/libs/android.arm64-v8a/libsodium.so\n        \n      - name: Upload Android arm\n        uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4\n        with:\n          name: build-android-arm\n          path: extracted-aar/prefab/modules/sodium/libs/android.armeabi-v7a/libsodium.so\n      \n      - name: Upload Android x64\n        uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4\n        with:\n          name: build-android-x64\n          path: extracted-aar/prefab/modules/sodium/libs/android.x86_64/libsodium.so\n      \n      - name: Upload Android x86\n        uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4\n        with:\n          name: build-android-x86\n          path: extracted-aar/prefab/modules/sodium/libs/android.x86/libsodium.so\n\n      - name: build-linux-x64\n        run: |\n          rm -fr zig-out .zig-cache; zig build -Doptimize=ReleaseFast -Dtarget=x86_64-linux-gnu.2.17\n      - name: tests\n        run: cd zig-out/bin && ./run.sh\n      - uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4\n        with:\n          name: build-linux-x64\n          path: zig-out/lib/libsodium.so\n\n      - name: Set up arm and aarch64 emulation environment\n        run: |\n          export DEBIAN_FRONTEND=noninteractive\n          sudo apt-get update\n          sudo apt-get install -y build-essential qemu-system binfmt-support qemu-user-static qemu-system-arm gcc-arm-linux-gnueabihf libc6-armhf-cross gcc-aarch64-linux-gnu libc6-arm64-cross\n          sudo dpkg --add-architecture armhf\n          sudo update-binfmts --enable qemu-arm\n          sudo update-binfmts --display\n          sudo ln -s /usr/arm-linux-gnueabihf/lib/ld-linux-armhf.so.* /lib\n          sudo dpkg --add-architecture arm64\n          sudo update-binfmts --enable qemu-aarch64\n          sudo update-binfmts --display\n          sudo ln -s /usr/aarch64-linux-gnu/lib/ld-linux-aarch64.so.* /lib\n\n      - name: build-linux-arm\n        run: |\n          rm -fr zig-out .zig-cache; zig build -Doptimize=ReleaseFast -Dtarget=arm-linux-gnueabihf.2.23\n      - name: tests\n        run: |\n          cd zig-out/bin && env LD_LIBRARY_PATH=/usr/arm-linux-gnueabihf/lib ./run.sh\n      - uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4\n        with:\n          name: build-linux-arm\n          path: zig-out/lib/libsodium.so\n\n      - name: build-linux-arm64\n        run: |\n          rm -fr zig-out .zig-cache; zig build -Doptimize=ReleaseFast -Dtarget=aarch64-linux-gnu.2.23\n      - name: tests\n        run: |\n          cd zig-out/bin && env LD_LIBRARY_PATH=/usr/aarch64-linux-gnu/lib ./run.sh\n      - uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4\n        with:\n          name: build-linux-arm64\n          path: zig-out/lib/libsodium.so\n\n      - name: build-linux-musl-x64\n        run: |\n          rm -fr zig-out .zig-cache; zig build -Doptimize=ReleaseFast -Dtarget=x86_64-linux-musl\n      - uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4\n        with:\n          name: build-linux-musl-x64\n          path: zig-out/lib/libsodium.so\n\n      - name: build-linux-musl-arm\n        run: |\n          rm -fr zig-out .zig-cache; zig build -Doptimize=ReleaseFast -Dtarget=arm-linux-musleabihf\n      - uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4\n        with:\n          name: build-linux-musl-arm\n          path: zig-out/lib/libsodium.so\n\n      - name: build-linux-musl-arm64\n        run: |\n          rm -fr zig-out .zig-cache; zig build -Doptimize=ReleaseFast -Dtarget=aarch64-linux-musl\n      - uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4\n        with:\n          name: build-linux-musl-arm64\n          path: zig-out/lib/libsodium.so\n\n  build-apple:\n    runs-on: macos-latest\n    steps:\n      - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6\n        with:\n          persist-credentials: false\n      - name: configure\n        run: ./configure\n      - name: build-xcframework\n        run: env LIBSODIUM_FULL_BUILD=1 LIBSODIUM_SKIP_SIMULATORS=1 dist-build/apple-xcframework.sh\n      - uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4\n        with:\n          name: build-macos\n          path: libsodium-apple/macos/lib/libsodium.dylib\n      - uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4\n        with:\n          name: build-ios\n          path: libsodium-apple/ios/lib/libsodium.a\n      - uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4\n        with:\n          name: build-tvos\n          path: libsodium-apple/tvos/lib/libsodium.a\n      - uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4\n        with:\n          name: build-maccatalyst\n          path: libsodium-apple/catalyst/lib/libsodium.a\n  pack:\n    runs-on: ubuntu-latest\n    permissions:\n      contents: read\n      id-token: write\n      attestations: write\n    needs:\n      - build-windows-msvc\n      - build-apple\n      - build-others\n    container:\n      image: mcr.microsoft.com/dotnet/sdk:8.0\n    env:\n      DOTNET_CLI_TELEMETRY_OPTOUT: 1\n      DOTNET_SKIP_FIRST_TIME_EXPERIENCE: 1\n      DOTNET_SYSTEM_GLOBALIZATION_INVARIANT: 1\n    steps:\n      - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6\n        with:\n          persist-credentials: false\n      - uses: actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093 # v4\n        with:\n          name: build-win-x64\n          path: .libsodium-pack/runtimes/win-x64/native/\n      - uses: actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093 # v4\n        with:\n          name: build-win-x86\n          path: .libsodium-pack/runtimes/win-x86/native/\n      - uses: actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093 # v4\n        with:\n          name: build-win-arm64\n          path: .libsodium-pack/runtimes/win-arm64/native/\n\n      - uses: actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093 # v4\n        with:\n          name: build-linux-x64\n          path: .libsodium-pack/runtimes/linux-x64/native/\n      - uses: actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093 # v4\n        with:\n          name: build-linux-arm64\n          path: .libsodium-pack/runtimes/linux-arm64/native/\n      - uses: actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093 # v4\n        with:\n          name: build-linux-arm\n          path: .libsodium-pack/runtimes/linux-arm/native/\n      - uses: actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093 # v4\n        with:\n          name: build-linux-musl-x64\n          path: .libsodium-pack/runtimes/linux-musl-x64/native/\n      - uses: actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093 # v4\n        with:\n          name: build-linux-musl-arm\n          path: .libsodium-pack/runtimes/linux-musl-arm/native/\n      - uses: actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093 # v4\n        with:\n          name: build-linux-musl-arm64\n          path: .libsodium-pack/runtimes/linux-musl-arm64/native/\n\n      - uses: actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093 # v4\n        with:\n          name: build-macos\n          path: .libsodium-pack/runtimes/osx-x64/native/\n      - uses: actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093 # v4\n        with:\n          name: build-macos\n          path: .libsodium-pack/runtimes/osx-arm64/native/\n      - uses: actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093 # v4\n        with:\n          name: build-ios\n          path: .libsodium-pack/runtimes/ios-arm64/native/\n      - uses: actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093 # v4\n        with:\n          name: build-tvos\n          path: .libsodium-pack/runtimes/tvos-arm64/native/\n      - uses: actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093 # v4\n        with:\n          name: build-maccatalyst\n          path: .libsodium-pack/runtimes/maccatalyst-x64/native/\n      - uses: actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093 # v4\n        with:\n          name: build-maccatalyst\n          path: .libsodium-pack/runtimes/maccatalyst-arm64/native/\n      - uses: actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093 # v4\n        with:\n          name: build-android-arm64\n          path: .libsodium-pack/runtimes/android-arm64/native/\n      - uses: actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093 # v4\n        with:\n          name: build-android-arm\n          path: .libsodium-pack/runtimes/android-arm/native/\n      - uses: actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093 # v4\n        with:\n          name: build-android-x64\n          path: .libsodium-pack/runtimes/android-x64/native/\n      - uses: actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093 # v4\n        with:\n          name: build-android-x86\n          path: .libsodium-pack/runtimes/android-x86/native/\n\n      - name: Copy files\n        run: cp AUTHORS ChangeLog LICENSE packaging/dotnet-core/libsodium.pkgproj .libsodium-pack/\n\n      - name: Create NuGet package\n        run: dotnet pack -c Release .libsodium-pack/libsodium.pkgproj\n      - uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4\n        with:\n          name: nuget-package\n          path: .libsodium-pack/bin/Release/*.nupkg\n\n      - name: Attest Build Provenance\n        uses: actions/attest-build-provenance@43d14bc2b83dec42d39ecae14e916627a18bb661 # v3\n        with:\n         subject-path: .libsodium-pack/bin/Release/*.nupkg\n\n  build-test-binaries:\n    runs-on: ubuntu-latest\n    needs:\n      - pack\n    container:\n      image: mcr.microsoft.com/dotnet/sdk:8.0\n    env:\n      DOTNET_CLI_TELEMETRY_OPTOUT: 1\n      DOTNET_SKIP_FIRST_TIME_EXPERIENCE: 1\n      DOTNET_SYSTEM_GLOBALIZATION_INVARIANT: 1\n    steps:\n      - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6\n        with:\n          persist-credentials: false\n      - uses: actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093 # v4\n        with:\n          name: nuget-package\n          path: .libsodium-pack/\n      - name: dotnet new\n        run: dotnet new console -n Tests -o .libsodium-test/\n\n      - name: dotnet add package libsodium\n        run: dotnet add .libsodium-test/Tests.csproj package libsodium -s $PWD/.libsodium-pack\n      - name: Copy files\n        run: cp -f packaging/dotnet-core/test.cs .libsodium-test/Program.cs\n      - name: dotnet publish linux-x64\n        run: dotnet publish -c Release -r linux-x64 --self-contained true -p:PublishTrimmed=true\n        working-directory: .libsodium-test/\n      - name: dotnet publish linux-arm\n        run: dotnet publish -c Release -r linux-arm --self-contained true -p:PublishTrimmed=true\n        working-directory: .libsodium-test/\n      - name: dotnet publish linux-arm64\n        run: dotnet publish -c Release -r linux-arm64 --self-contained true -p:PublishTrimmed=true\n        working-directory: .libsodium-test/\n      - name: Move Build Output\n        run: |\n          mkdir .libsodium-builds\n          mv .libsodium-test/bin/Release/net8.0/linux-arm/publish .libsodium-builds/linux-arm\n          mv .libsodium-test/bin/Release/net8.0/linux-arm64/publish .libsodium-builds/linux-arm64\n          mv .libsodium-test/bin/Release/net8.0/linux-x64/publish .libsodium-builds/linux-x64\n      - uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4\n        with:\n          name: test-builds\n          path: .libsodium-builds/*\n          include-hidden-files: true\n\n  run-test-binaries-os-versions:\n    runs-on: ubuntu-latest\n    needs:\n    - build-test-binaries\n    strategy:\n      matrix:\n        arch: [ 'centos:8', 'debian:11' ]\n    container:\n      image: ${{ matrix.arch }}\n    env:\n      DOTNET_SYSTEM_GLOBALIZATION_INVARIANT: 1\n    steps:\n    - uses: actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093 # v4\n      with:\n        name: test-builds\n        path: .libsodium-builds/\n    - name: Run x64 tests\n      run: |\n        chmod +x .libsodium-builds/linux-x64/Tests\n        .libsodium-builds/linux-x64/Tests\n\n  run-test-binaries-cross-plat:\n    runs-on: ubuntu-22.04\n    needs:\n      - build-test-binaries\n    env:\n      DOTNET_SYSTEM_GLOBALIZATION_INVARIANT: 1\n    strategy:\n      matrix:\n        include:\n          - arch: x64\n            libs: /usr/lib\n          - arch: arm\n            libs: /usr/arm-linux-gnueabihf/lib\n          - arch: arm64\n            libs: /usr/aarch64-linux-gnu/lib\n        arch: [x64, arm, arm64]\n    steps:\n      - name: Set up build environment\n        run: |\n          export DEBIAN_FRONTEND=noninteractive\n\n          # On virtualization systems such as the one used by WSL2, the ARM crypto extensions\n          # don't work as expected. As a result, installing on Ubuntu fails during integrity\n          # checks. As a workaround, the following command disables hardware acceleration for\n          # gcrypt, which the apt-get command relies on.\n          sudo mkdir -p /etc/gcrypt && echo all | sudo tee /etc/gcrypt/hwf.deny\n\n          sudo apt-get update && sudo apt-get install -y qemu-system binfmt-support qemu-user-static qemu-system-arm gcc-arm-linux-gnueabihf gcc-aarch64-linux-gnu libc6-armhf-cross libc6-arm64-cross\n          sudo dpkg --add-architecture armhf\n          sudo dpkg --add-architecture arm64\n          sudo update-binfmts --enable qemu-aarch64\n          sudo update-binfmts --enable qemu-arm\n          sudo update-binfmts --display\n          sudo ln -s /usr/aarch64-linux-gnu/lib/ld-linux-aarch64.so.* /lib\n          sudo ln -s /usr/arm-linux-gnueabihf/lib/ld-linux-armhf.so.* /lib\n\n      - uses: actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093 # v4\n        with:\n          name: test-builds\n          path: .libsodium-builds/\n\n      - name: Run ${{ matrix.arch }}\n        run: |\n          chmod +x .libsodium-builds/linux-${{ matrix.arch }}/Tests\n          env LD_LIBRARY_PATH=${{ matrix.libs }} .libsodium-builds/linux-${{ matrix.arch }}/Tests\n"
  },
  {
    "path": ".github/workflows/zizmor.yml",
    "content": "name: Zizmor\n\non:\n  push:\n    branches: [master, stable, next]\n    paths:\n      - '.github/workflows/**'\n  pull_request:\n    branches: [master, stable, next]\n    paths:\n      - '.github/workflows/**'\n\n  workflow_dispatch:\n\npermissions:\n  contents: read\n\njobs:\n  zizmor:\n    runs-on: ubuntu-latest\n    steps:\n      - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6\n        with:\n          persist-credentials: false\n\n      - name: Install zizmor\n        run: pipx install zizmor\n\n      - name: Run zizmor\n        run: zizmor --min-severity medium .github/workflows/\n"
  },
  {
    "path": ".gitignore",
    "content": "!build\n.deps\n.dirstamp\n.done\n.DS_Store\n.libs\n.swival\n.zig-cache\n*.bc\n*.done\n*.dSYM\n*.final\n*.gcda\n*.gcno\n*.i\n*.la\n*.lo\n*.log\n*.mem\n*.nexe\n*.o\n*.plist\n*.scan\n*.sdf\n*.status\n*.tar.*\n*.vs/\n*.wasm\n*.wast\n*~\n/bin/\n/obj/\naclocal.m4\nandroid-toolchain\nandroid-toolchain-*\nautom4te.cache\nbuild\nBuild\ncompile\nconfdefs.h\nconfig.*\nconfigure\nconfigure.lineno\ncoverage.info\ndepcomp\nINSTALL\ninstall-sh\nlibsodium-*.tar.bz2\nlibsodium-*.tar.gz\nlibsodium-*.vcproj\nlibsodium-*.vcproj.filters\nlibsodium-*.vcxproj\nlibsodium-*.vcxproj.filters\nlibsodium-android-*\nlibsodium-ios\nlibsodium-js\nlibsodium-js-*\nlibsodium-nativeclient\nlibsodium-nativeclient-*\nlibsodium-osx\nlibsodium-uninstalled.pc\nlibsodium-wasm32-wasi\nlibsodium-win32\nlibsodium-win64\nlibsodium.pc\nlibtool\nltmain.sh\nm4/argz.m4\nm4/libtool.m4\nm4/lt~obsolete.m4\nm4/ltoptions.m4\nm4/ltsugar.m4\nm4/ltversion.m4\nMakefile\nMakefile.in\nman/*.html\nman/Makefile.in\nmissing\nsrc/libsodium/*.def\nsrc/libsodium/include/sodium/private/quirks.h.old\nsrc/libsodium/include/sodium/version.h\nstamp-*\ntest-driver\ntest/default/*.asm.js\ntest/default/*.res\ntest/default/*.trs\ntest/default/aead_aegis128l\ntest/default/aead_aegis256\ntest/default/aead_aes256gcm\ntest/default/aead_aes256gcm2\ntest/default/aead_chacha20poly1305\ntest/default/aead_chacha20poly13052\ntest/default/aead_xchacha20poly1305\ntest/default/auth\ntest/default/auth2\ntest/default/auth3\ntest/default/auth5\ntest/default/auth6\ntest/default/auth7\ntest/default/box\ntest/default/box_easy\ntest/default/box_easy2\ntest/default/box_seal\ntest/default/box_seed\ntest/default/box2\ntest/default/box7\ntest/default/box8\ntest/default/browser\ntest/default/chacha20\ntest/default/codecs\ntest/default/codecs2\ntest/default/codecs3\ntest/default/core_ed25519\ntest/default/core_ed25519_h2c\ntest/default/core_keccak1600\ntest/default/core_ristretto255\ntest/default/core_ristretto255_h2c\ntest/default/core1\ntest/default/core2\ntest/default/core3\ntest/default/core4\ntest/default/core5\ntest/default/core6\ntest/default/ed25519_convert\ntest/default/generichash\ntest/default/generichash2\ntest/default/generichash3\ntest/default/hash\ntest/default/hash3\ntest/default/hash_sha3256\ntest/default/hash_sha3512\ntest/default/ipcrypt\ntest/default/kdf\ntest/default/kdf_hkdf\ntest/default/kdf_hkdf2\ntest/default/kdf_hkdf3\ntest/default/kdf_hkdf4\ntest/default/keygen\ntest/default/kem\ntest/default/kem_mlkem768\ntest/default/kem_xwing\ntest/default/kx\ntest/default/metamorphic\ntest/default/misuse\ntest/default/onetimeauth\ntest/default/onetimeauth2\ntest/default/onetimeauth7\ntest/default/pwhash_argon2i\ntest/default/pwhash_argon2id\ntest/default/pwhash_argon2id2\ntest/default/pwhash_scrypt\ntest/default/pwhash_scrypt_ll\ntest/default/randombytes\ntest/default/scalarmult\ntest/default/scalarmult_ed25519\ntest/default/scalarmult_ristretto255\ntest/default/scalarmult2\ntest/default/scalarmult5\ntest/default/scalarmult6\ntest/default/scalarmult7\ntest/default/scalarmult8\ntest/default/secretbox\ntest/default/secretbox_easy\ntest/default/secretbox_easy2\ntest/default/secretbox2\ntest/default/secretbox7\ntest/default/secretbox8\ntest/default/secretstream_xchacha20poly1305\ntest/default/shorthash\ntest/default/sign\ntest/default/sign2\ntest/default/siphashx24\ntest/default/sodium_core\ntest/default/sodium_utils\ntest/default/sodium_utils2\ntest/default/sodium_utils3\ntest/default/sodium_utils4\ntest/default/sodium_version\ntest/default/stream\ntest/default/stream2\ntest/default/stream3\ntest/default/stream4\ntest/default/stream5\ntest/default/stream6\ntest/default/verify1\ntest/default/xchacha20\ntest/default/xof_shake128\ntest/default/xof_shake256\ntest/default/xof_turboshake128\ntest/default/xof_turboshake256\ntest/default/xof2\ntest/js.done\ntest/symbols/all-host-symbols.txt\ntest/symbols/internal-host-symbols.txt\ntest/symbols/internal-symbols.txt\ntesting\nVagrantfile\nzig-cache\nzig-out\n"
  },
  {
    "path": "AUTHORS",
    "content": "\nDesigners\n=========\n\naegis                                  Hongjun Wu\n                                       Bart Preneel\n\nargon2                                 Alex Biryukov\n                                       Daniel Dinu\n                                       Dmitry Khovratovich\n\nblake2                                 Jean-Philippe Aumasson\n                                       Christian Winnerlein\n                                       Samuel Neves\n                                       Zooko Wilcox-O'Hearn\n\nchacha20                               Daniel J. Bernstein\n\nchacha20poly1305                       Adam Langley\n                                       Yoav Nir\n\ncurve25519                             Daniel J. Bernstein\n\ncurve25519xsalsa20poly1305             Daniel J. Bernstein\n\ned25519                                Daniel J. Bernstein\n                                       Bo-Yin Yang\n                                       Niels Duif\n                                       Peter Schwabe\n                                       Tanja Lange\n\npoly1305                               Daniel J. Bernstein\n\nristretto                              Mike Hamburg\n                                       Henry de Valence\n                                       Jack Grigg\n                                       George Tankersley\n                                       Filippo Valsorda\n                                       Isis Lovecruft\n\nsalsa20                                Daniel J. Bernstein\n\nscrypt                                 Colin Percival\n\nsiphash                                Jean-Philippe Aumasson\n                                       Daniel J. Bernstein\n\nImplementors\n============\n\ncrypto_aead/aegis128l                  Frank Denis\ncrypto_aead/aegis256\n\ncrypto_aead/aes256gcm/aesni            Frank Denis\n\ncrypto_aead/chacha20poly1305           Frank Denis\n\ncrypto_aead/xchacha20poly1305          Frank Denis\n                                       Jason A. Donenfeld\n\ncrypto_auth/hmacsha256                 Colin Percival\ncrypto_auth/hmacsha512\ncrypto_auth/hmacsha512256\n\ncrypto_box/curve25519xsalsa20poly1305  Daniel J. Bernstein\n\ncrypto_box/curve25519xchacha20poly1305 Frank Denis\n\ncrypto_core/ed25519                    Daniel J. Bernstein\n                                       Adam Langley\n                                       Frank Denis\n\ncrypto_core/hchacha20                  Frank Denis\n\ncrypto_core/hsalsa20                   Daniel J. Bernstein\ncrypto_core/salsa\n\ncrypto_generichash/blake2b             Jean-Philippe Aumasson\n                                       Christian Winnerlein\n                                       Samuel Neves\n                                       Zooko Wilcox-O'Hearn\n\ncrypto_hash/sha256                     Colin Percival\ncrypto_hash/sha512\ncrypto_hash/sha512256\n\ncrypto_kdf                             Frank Denis\n\ncrypto_kx                              Frank Denis\n\ncrypto_onetimeauth/poly1305/donna      Andrew \"floodyberry\" Moon\ncrypto_onetimeauth/poly1305/sse2\n\ncrypto_pwhash/argon2                   Samuel Neves\n                                       Dmitry Khovratovich\n                                       Jean-Philippe Aumasson\n                                       Daniel Dinu\n                                       Thomas Pornin\n\ncrypto_pwhash/scryptsalsa208sha256     Colin Percival\n                                       Alexander Peslyak\n\ncrypto_scalarmult/curve25519/ref10     Daniel J. Bernstein\n\ncrypto_scalarmult/curve25519/sandy2x   Tung Chou\n\ncrypto_scalarmult/ed25519              Frank Denis\n\ncrypto_scalarmult/ristretto255         Frank Denis\n\ncrypto_secretbox/xsalsa20poly1305      Daniel J. Bernstein\n\ncrypto_secretbox/xchacha20poly1305     Frank Denis\n\ncrypto_secretstream/xchacha20poly1305  Frank Denis\n\ncrypto_shorthash/siphash24             Jean-Philippe Aumasson\n                                       Daniel J. Bernstein\n\ncrypto_sign/ed25519                    Peter Schwabe\n                                       Daniel J. Bernstein\n                                       Niels Duif\n                                       Tanja Lange\n                                       Bo-Yin Yang\n\ncrypto_stream/chacha20/ref             Daniel J. Bernstein\n\ncrypto_stream/chacha20/dolbeau         Romain Dolbeau\n                                       Daniel J. Bernstein\n\ncrypto_stream/salsa20/ref              Daniel J. Bernstein\ncrypto_stream/salsa20/xmm6\n\ncrypto_stream/salsa20/xmm6int          Romain Dolbeau\n                                       Daniel J. Bernstein\n\ncrypto_stream/salsa2012/ref            Daniel J. Bernstein\ncrypto_stream/salsa2008/ref\n\ncrypto_stream/xchacha20                Frank Denis\n\ncrypto_verify                          Frank Denis\n\nsodium/codecs.c                        Frank Denis\n                                       Thomas Pornin\n                                       Christian Winnerlein\n\nsodium/core.c                          Frank Denis\nsodium/runtime.h\nsodium/utils.c\n"
  },
  {
    "path": "CITATION.cff",
    "content": "cff-version: 1.2.0\ntitle: libsodium\nmessage: >-\n  If you use this software, please cite it using the\n  metadata from this file.\ntype: software\nauthors:\n  - given-names: Frank\n    family-names: Denis\n    orcid: 'https://orcid.org/0009-0008-4417-1713'\nrepository-code: 'https://github.com/jedisct1/libsodium'\nurl: 'https://libsodium.org'\nabstract: 'A modern, portable, easy-to-use cryptographic library.'\nkeywords:\n  - cryptography\n  - library\n  - nacl\nlicense: ISC\n"
  },
  {
    "path": "ChangeLog",
    "content": "* Version 1.0.21-stable\n - Performance: NEON optimizations for Argon2 on ARM platforms.\n - Performance: SHA3 (Keccak1600) now leverages ARM SHA3 instructions when\navailable on ARM platforms.\n - Performance: WebAssembly SIMD implementations of Argon2 have been added.\n - Emscripten: LTO is now disabled. With Emscripten 4, LTO produced\nWebAssembly modules with functions that ran significantly slower than\nwithout it.\n - Emscripten: a new option allows compilation with SIMD support.\n - JavaScript sumo builds now allow up to 80 MiB memory usage, so that\n`crypto_pwhash` with the interactive settings can be used in pure\nJavaScript, not just WebAssembly.\n - XOF state alignment has been relaxed.\n - `crypto_core_keccak1600_state` has been added.\n - Export missing `crypto_ipcrypt_nd_keygen()` helper function.\n - apple-xcframework: headers are now in a Clibsodium subdirectory\nto prevent module.modulemap collisions with other xcframeworks.\n - Fixed compilation with GCC on aarch64 and gcc 4.x.\n - On aarch64, aes256-gcm is now enabled even when not using clang.\n - Added compatibility with Visual Studio 2026 when toolsets do not\ndefine PlatformToolsetVersion.\n - Libsodium can be directly used as a dependency in a Zig project.\n\n* Version 1.0.21\n  This point release includes all the changes from 1.0.20-stable, which\ninclude a security fix for the `crypto_core_ed25519_is_valid_point()`\nfunction, as well as two new sets of functions:\n - The new `crypto_ipcrypt_*` functions implement mechanisms for securely\nencrypting and anonymizing IP addresses as specified in https://ipcrypt-std.github.io\n - The `sodium_bin2ip` and `sodium_ip2bin` helper functions have been added\nto complement the `crypto_ipcrypt_*` functions and easily convert addresses\nbetween bytes and strings.\n - XOF: the `crypto_xof_shake*` and `crypto_xof_turboshake*` functions\nare standard extendable output functions. From input of any length, they can\nderive output of any length with the same properties as hash functions. These\nprimitives are required by many post-quantum mechanisms, but can also be used\nfor a wide range of applications, including key derivation, session encryption\nand more.\n\n* Version 1.0.20-stable\n - XCFramework: cross-compilation is now forced on Apple Silicon to\navoid Rosetta-related build issues\n - The Fil-C compiler is supported out of the box\n - The CompCert compiler is supported out of the box\n - MSVC 2026 (Visual Studio 2026) is now supported\n - Zig builds now support FreeBSD targets\n - Performance of AES256-GCM and AEGIS on ARM has been improved\nwith some compilers\n - Android binaries have been added to the NuGet package\n - Windows ARM binaries have been added to the NuGet package\n - The Android build script has been improved. The base SDK is\nnow 27c, and the default platform is 21, supporting 16 KB page sizes.\n - The library can now be compiled with Zig 0.15 and Zig 0.16\n - Zig builds now generate position-independent static libraries by\ndefault on targets that support PIC\n - arm64e builds have been added to the XCFramework packages\n - XCFramework packages are now full builds instead of minimal\nbuilds\n - MSVC builds have been enabled for ARM64\n - iOS 32-bit (armv7/armv7s) support has been removed from the\nXCFramework build script\n - Security: optblockers have been introduced in critical code paths\nto prevent compilers from introducing unwanted side channels via\nconditional jumps. This was observed on RISC-V targets with specific\ncompilers and options.\n - Security: `crypto_core_ed25519_is_valid_point()` now properly\nrejects small-order points that are not in the main subgroup\n - `((nonnull))` attributes have been relaxed on some `crypto_stream*`\nfunctions to allow NULL output buffers when the output length is zero\n - A cross-compilation issue with old clang versions has been\nfixed\n - JavaScript: support for Cloudflare Workers has been added\n - JavaScript: WASM_BIGINT is forcibly disabled to retain\ncompatibility with older runtimes\n - A compilation issue with old toolchains on Solaris has been\nfixed\n - `crypto_aead_aes256gcm_is_available` is exported to JavaScript\n - libsodium is now compatible with Emscripten 4.x\n - Security: memory fences have been added after MAC verification in\nAEAD to prevent speculative access to plaintext before authentication\nis complete\n - Assembly files now include .gnu.property notes for proper IBT and\nShadow Stack support when building with CET instrumentation\n\n* Version 1.0.20\n  This point release includes all the changes from 1.0.19-stable,\nmainly addressing compilation issues and improvements to the .NET\npackages.\n\n* Version 1.0.19-stable\n - Building with `zig build` now requires Zig 0.12.\n - When using the traditional build system, -O3 is used instead of -Ofast.\n - Improved detection of the compiler flags required on aarch64.\n - Improved compatibility with custom build systems on aarch64.\n - apple-xcframework: VisionOS packages are not built if Xcode doesn't\ninclude that SDK.\n - `crypto_kdf_hkdf_sha512_statebytes()` was added.\n - When using Visual Studio, runtime CPU feature detection is now enabled\non Windows/aarch64.\n - There were issues with C++ guards affecting usage of libsodium\nusing Swift on Windows. This has been fixed.\n - Emscripten: `crypto_aead_aegis*()` functions are now exported in\nJavaScript builds\n - Emscripten: unsupported `--memory-init-file` option has been removed.\n - apple-xcframework: the minimal deployment target can be set to iOS 11+.\n - .NET packages now include precompiled libraries for Windows/arm64,\niOS, TvOS and Catalyst.\n - .NET precompiled libraries now work on any CPUs, using only runtime\nfeature detection.\n - SYSV assembly should not be used when targeting Windows (reported by\n@meiyese, thanks!)\n - Compatibility issues with LLVM 18 and AVX512 have been addressed.\n - GitHub attestation build provenance is now added to NuGet packages.\n - JavaScript tests can now use Bun as an alternative to Node.\n\n* Version 1.0.19\n  This release includes all the changes from 1.0.18-stable, as well as two\nadditions:\n\n - New AEADs: AEGIS-128L and AEGIS-256 are now available in the\n`crypto_aead_aegis128l_*()` and `crypto_aead_aegis256_*()` namespaces.\nAEGIS is a family of authenticated ciphers for high-performance applications,\nleveraging hardware AES acceleration on `x86_64` and `aarch64`. In addition\nto performance, AEGIS ciphers have unique properties making them easier and\nsafer to use than AES-GCM. They can also be used as high-performance MACs.\n - The HKDF key derivation mechanism, required by many standard protocols, is\nnow available in the `crypto_kdf_hkdf_*()` namespace. It is implemented for\nthe SHA-256 and SHA-512 hash functions.\n - The `osx.sh` build script was renamed to `macos.sh`.\n - Support for android-mips was removed.\n\n* Version 1.0.18-stable\n - Visual Studio: support for Windows/ARM64 builds has been added.\n - Visual Studio: AVX512 implementations are enabled on supported CPUs.\n - Visual Studio: an MSVC 2022 solution was added.\n - Apple XCFramework: support for VisionOS was added.\n - Apple XCFramework: support for Catalyst was added.\n - Apple XCFramework: building the simulators is now optional.\n - iOS: bitcode is not generated any more, as it was deprecated by Apple.\n - watchOS: support for arm64 was added.\n - The Zig toolchain can now be used as a modern build system to replace\nautoconf/automake/libtool/make/ccache and the compiler. This enables faster\ncompilation times, easier cross compilation, and static libraries optimized\nfor any CPU.\n - The Zig toolchain is now the recommended way to compile `libsodium`\nto WebAssembly/WASI(X).\n - libsodium can now be added as a dependency to Zig projects.\n - Memory fences were added to remove some gadgets that could be used\nalongside speculative loads.\n - The AES-GCM implementation was completely rewritten. It is now faster,\nand also available on aarch64, including Windows/ARM64.\n - Compatibility with CET instrumentation / IBT / Shadow Stack was added.\n - Emscripten: the `crypto_pwhash_*()` functions have been removed from Sumo\nbuilds, as they reserve a substantial amount of JavaScript memory, even when\nnot used.\n - Benchmarks now use `CLOCK_MONOTONIC` if possible.\n - WebAssembly: tests can now run using Bun, WasmEdge, Wazero, wasm3 and\nwasmer-js. Support for WAVM and Lucet have been removed, as these projects\nhave reached EOL.\n - .NET: the minimum supported macOS version is now 10.15; this matches\nMicrosoft guidelines.\n - .NET: all the packages are now built using Zig, on all platforms. This\nallows us to easily match Microsoft's requirements, including supported glibc\nversions. However, on x86_64, targets are expected to support at least the\nAVX instruction set.\n - .NET: packages for ARM64 are now available.\n - C23 `memset_explicit()` is now used, when available.\n - Compilation now uses `-Ofast` or `-O3` instead of `-O2` by default.\n - Portability improvements to help compile libsodium to modern game consoles.\n - JavaScript: a default `unhandledRejection` handler is not set any more.\n - Slightly faster 25519 operations.\n - OpenBSD: leverage `MAP_CONCEAL`.\n\n* Version 1.0.18\n - Enterprise versions of Visual Studio are now supported.\n - Visual Studio 2019 is now supported.\n - 32-bit binaries for Visual Studio 2010 are now provided.\n - A test designed to trigger an OOM condition didn't work on Linux systems\nwith memory overcommit turned on. It has been removed in order to fix\nAnsible builds.\n - Emscripten: `print` and `printErr` functions are overridden to send\nerrors to the console, if there is one.\n - Emscripten: `UTF8ToString()` is now exported since `Pointer_stringify()`\nhas been deprecated.\n - Libsodium version detection has been fixed in the CMake recipe.\n - Generic hashing got a 10% speedup on AVX2.\n - New target: WebAssembly/WASI (compile with `dist-builds/wasm32-wasi.sh`).\n - New functions to map a hash to an edwards25519 point or get a random point:\n`core_ed25519_from_hash()` and `core_ed25519_random()`.\n - `crypto_core_ed25519_scalar_mul()` has been implemented for\n`scalar*scalar (mod L)` multiplication.\n - Support for the Ristretto group has been implemented for interoperability\nwith wasm-crypto.\n - Improvements have been made to the test suite.\n - Portability improvements have been made.\n - `getentropy()` is now used on systems providing this system call.\n - `randombytes_salsa20` has been renamed to `randombytes_internal`.\n - Support for NativeClient has been removed.\n - Most `((nonnull))` attributes have been relaxed to allow 0-length inputs\nto be `NULL`.\n - The `-ftree-vectorize` and `-ftree-slp-vectorize` compiler switches are\nnow used, if available, for optimized builds.\n\n* Version 1.0.17-stable\n - AVX512 detection has been improved.\n - A compilation option was added to enable retpoline support.\n - `-ftls-model=global-dynamic` is now set, if available.\n - Portability and documentation improvements.\n\n* Version 1.0.17\n - Bug fix: `sodium_pad()` didn't properly support block sizes >= 256 bytes.\n - JS/WebAssembly: some old iOS versions can't instantiate the WebAssembly\nmodule; fall back to JavaScript on these.\n - JS/WebAssembly: compatibility with newer Emscripten versions.\n - Bug fix: `crypto_pwhash_scryptsalsa208sha256_str_verify()` and\n`crypto_pwhash_scryptsalsa208sha256_str_needs_rehash()` didn't return\n`EINVAL` on input strings with a short length, unlike their high-level\ncounterpart.\n - Added a workaround for Visual Studio 2010 bug causing CPU features\nnot to be detected.\n - Portability improvements.\n - Test vectors from Project Wycheproof have been added.\n - New low-level APIs for arithmetic mod the order of the prime order group:\n`crypto_core_ed25519_scalar_random()`, `crypto_core_ed25519_scalar_reduce()`,\n`crypto_core_ed25519_scalar_invert()`, `crypto_core_ed25519_scalar_negate()`,\n`crypto_core_ed25519_scalar_complement()`, `crypto_core_ed25519_scalar_add()`\nand `crypto_core_ed25519_scalar_sub()`.\n - New low-level APIs for scalar multiplication without clamping:\n`crypto_scalarmult_ed25519_base_noclamp()` and\n`crypto_scalarmult_ed25519_noclamp()`. These new APIs are especially useful\nfor blinding.\n - `sodium_sub()` has been implemented.\n - Support for WatchOS has been added.\n - getrandom(2) is now used on FreeBSD 12+.\n - The `nonnull` attribute has been added to all relevant prototypes.\n - More reliable AVX512 detection.\n - JavaScript/WebAssembly builds now use dynamic memory growth.\n\n* Version 1.0.16\n - Signatures computations and verifications are now way faster on\n64-bit platforms with compilers supporting 128-bit arithmetic (gcc,\nclang, icc). This includes the WebAssembly target.\n - New low-level APIs for computations over edwards25519:\n`crypto_scalarmult_ed25519()`, `crypto_scalarmult_ed25519_base()`,\n`crypto_core_ed25519_is_valid_point()`, `crypto_core_ed25519_add()`,\n`crypto_core_ed25519_sub()` and `crypto_core_ed25519_from_uniform()`\n(elligator representative to point).\n - `crypto_sign_open()`, `crypto_sign_verify_detached()` and\n`crypto_sign_edwards25519sha512batch_open()` now reject public keys in\nnon-canonical form in addition to low-order points.\n - The library can be built with `ED25519_NONDETERMINISTIC` defined in\norder to use synthetic nonces for EdDSA. This is disabled by default.\n - WebAssembly: `crypto_pwhash_*()` functions are now included in\nnon-sumo builds.\n - `sodium_stackzero()` was added to wipe content off the stack.\n - Android: support new SDKs where unified headers have become the\ndefault.\n - The Salsa20-based PRNG example is now thread-safe on platforms with\nsupport for thread-local storage, optionally mixes bits from RDRAND.\n - CMAKE: static library detection on Unix systems has been improved\n(thanks to @BurningEnlightenment, @nibua-r, @mellery451)\n - Argon2 and scrypt are slightly faster on Linux.\n\n* Version 1.0.15\n - The default password hashing algorithm is now Argon2id. The\n`pwhash_str_verify()` function can still verify Argon2i hashes\nwithout any changes, and `pwhash()` can still compute Argon2i hashes\nas well.\n - The aes128ctr primitive was removed. It was slow, non-standard, not\nauthenticated, and didn't seem to be used by any opensource project.\n - Argon2id required at least 3 passes like Argon2i, despite a minimum\nof `1` as defined by the `OPSLIMIT_MIN` constant. This has been fixed.\n - The secretstream construction was slightly changed to be consistent\nwith forthcoming variants.\n - The JavaScript and WebAssembly versions have been merged, and the\nmodule now returns a `.ready` promise that will resolve after the\nWebAssembly code is loaded and compiled.\n - Note that due to these incompatible changes, the library version\nmajor was bumped up.\n\n* Version 1.0.14\n - iOS binaries should now be compatible with WatchOS and TVOS.\n - WebAssembly is now officially supported. Special thanks to\n@facekapow and @pepyakin who helped to make it happen.\n - Internal consistency checks failing and primitives used with\ndangerous/out-of-bounds/invalid parameters used to call abort(3).\nNow, a custom handler *that doesn't return* can be set with the\n`set_sodium_misuse()` function. It still aborts by default or if the\nhandler ever returns. This is not a replacement for non-fatal,\nexpected runtime errors. This handler will be only called in\nunexpected situations due to potential bugs in the library or in\nlanguage bindings.\n - `*_MESSAGEBYTES_MAX` macros (and the corresponding\n`_messagebytes_max()` symbols) have been added to represent the\nmaximum message size that can be safely handled by a primitive.\nLanguage bindings are encouraged to check user inputs against these\nmaximum lengths.\n - The test suite has been extended to cover more edge cases.\n - crypto_sign_ed25519_pk_to_curve25519() now rejects points that are\nnot on the curve, or not in the main subgroup.\n - Further changes have been made to ensure that smart compilers will\nnot optimize out code that we don't want to be optimized.\n - Visual Studio solutions are now included in distribution tarballs.\n - The `sodium_runtime_has_*` symbols for CPU features detection are\nnow defined as weak symbols, i.e. they can be replaced with an\napplication-defined implementation. This can be useful to disable\nAVX* when temperature/power consumption is a concern.\n - `crypto_kx_*()` now aborts if called with no non-NULL pointers to\nstore keys to.\n - SSE2 implementations of `crypto_verify_*()` have been added.\n - Passwords can be hashed using a specific algorithm with the new\n`crypto_pwhash_str_alg()` function.\n - Due to popular demand, base64 encoding (`sodium_bin2base64()`) and\ndecoding (`sodium_base642bin()`) have been implemented.\n - A new `crypto_secretstream_*()` API was added to safely encrypt files\nand multi-part messages.\n - The `sodium_pad()` and `sodium_unpad()` helper functions have been\nadded in order to add & remove padding.\n - An AVX512 optimized implementation of Argon2 has been added (written\nby Ondrej Mosnáček, thanks!)\n - The `crypto_pwhash_str_needs_rehash()` function was added to check if\na password hash string matches the given parameters, or if it needs an\nupdate.\n - The library can now be compiled with recent versions of\nemscripten/binaryen that don't allow multiple variables declarations\nusing a single `var` statement.\n\n* Version 1.0.13\n - JavaScript: the sumo builds now include all symbols. They were\npreviously limited to symbols defined in minimal builds.\n - The public `crypto_pwhash_argon2i_MEMLIMIT_MAX` constant was\nincorrectly defined on 32-bit platforms. This has been fixed.\n - Version 1.0.12 didn't compile on OpenBSD/i386 using the base gcc\ncompiler. This has been fixed.\n - The Android compilation scripts have been updated for NDK r14b.\n - armv7s-optimized code was re-added to iOS builds.\n - An AVX2 optimized implementation of the Argon2 round function was\nadded.\n - The Argon2id variant of Argon2 has been implemented. The\nhigh-level `crypto_pwhash_str_verify()` function automatically detects\nthe algorithm and can verify both Argon2i and Argon2id hashed passwords.\nThe default algorithm for newly hashed passwords remains Argon2i in\nthis version to avoid breaking compatibility with verifiers running\nlibsodium <= 1.0.12.\n - A `crypto_box_curve25519xchacha20poly1305_seal*()` function set was\nimplemented.\n - scrypt was removed from minimal builds.\n - libsodium is now available on NuGet.\n\n* Version 1.0.12\n - Ed25519ph was implemented, adding a multi-part signature API\n(`crypto_sign_init()`, `crypto_sign_update()`, `crypto_sign_final_*()`).\n - New constants and related accessors have been added for Scrypt and\nArgon2.\n - XChaCha20 has been implemented. Like XSalsa20, this construction\nextends the ChaCha20 cipher to accept a 192-bit nonce. This makes it safe\nto use ChaCha20 with random nonces.\n - `crypto_secretbox`, `crypto_box` and `crypto_aead` now offer\nvariants leveraging XChaCha20.\n - SHA-2 is about 20% faster, which also gives a speed boost to\nsignature and signature verification.\n - AVX2 implementations of Salsa20 and ChaCha20 have been added. They\nare twice as fast as the SSE2 implementations. The speed gain is\neven more significant on Windows, that previously didn't use\nvectorized implementations.\n - New high-level API: `crypto_kdf`, to easily derive one or more\nsubkeys from a master key.\n - Siphash with a 128-bit output has been implemented, and is\navailable as `crypto_shorthash_siphashx_*`.\n - New `*_keygen()` helpers functions have been added to create secret\nkeys for all constructions. This improves code clarity and can prevent keys\nfrom being partially initialized.\n - A new `randombytes_buf_deterministic()` function was added to\ndeterministically fill a memory region with pseudorandom data. This\nfunction can especially be useful to write reproducible tests.\n - A preliminary `crypto_kx_*()` API was added to compute shared session\nkeys.\n - AVX2 detection is more reliable.\n - The pthreads library is not required any more when using MingW.\n - `contrib/Findsodium.cmake` was added as an example to include\nlibsodium in a project using cmake.\n - Compatibility with gcc 2.x has been restored.\n - Minimal builds can be checked using `sodium_library_minimal()`.\n - The `--enable-opt` compilation switch has become compatible with more\nplatforms.\n - Android builds are now using clang on platforms where it is\navailable.\n\n* Version 1.0.11\n - `sodium_init()` is now thread-safe, and can be safely called multiple\ntimes.\n - Android binaries now properly support 64-bit Android, targeting\nplatform 24, but without breaking compatibility with platforms 16 and\n21.\n - Better support for old gcc versions.\n - On FreeBSD, core dumps are disabled on regions allocated with\nsodium allocation functions.\n - AVX2 detection was fixed, resulting in faster Blake2b hashing on\nplatforms where it was not properly detected.\n - The Sandy2x Curve25519 implementation was not as fast as expected\non some platforms. This has been fixed.\n - The NativeClient target was improved. Most notably, it now supports\noptimized implementations, and uses pepper_49 by default.\n - The library can be compiled with recent Emscripten versions.\nChanges have been made to produce smaller code, and the default heap\nsize was reduced in the standard version.\n - The code can now be compiled on SLES11 service pack 4.\n - Decryption functions can now accept a NULL pointer for the output.\nThis checks the MAC without writing the decrypted message.\n - crypto_generichash_final() now returns -1 if called twice.\n - Support for Visual Studio 2008 was improved.\n\n* Version 1.0.10\n - This release only fixes a compilation issue reported with some older\ngcc versions. There are no functional changes over the previous release.\n\n* Version 1.0.9\n - The JavaScript target now includes a `--sumo` option to include all\nthe symbols of the original C library.\n - A detached API was added to the ChaCha20-Poly1305 and AES256-GCM\nimplementations.\n - The Argon2i password hashing function was added, and is accessible\ndirectly and through a new, high-level `crypto_pwhash` API. The scrypt\nfunction remains available as well.\n - A speed-record AVX2 implementation of BLAKE2b was added (thanks to\nSamuel Neves).\n - The library can now be compiled using C++Builder (thanks to @jcolli44)\n - Countermeasures for Ed25519 signatures malleability have been added\nto match the irtf-cfrg-eddsa draft (note that malleability is irrelevant to\nthe standard definition of signature security). Signatures with a small-order\n`R` point are now also rejected.\n - Some implementations are now slightly faster when using the Clang\ncompiler.\n - The HChaCha20 core function was implemented (`crypto_core_hchacha20()`).\n - No-op stubs were added for all AES256-GCM public functions even when\ncompiled on non-Intel platforms.\n - `crypt_generichash_blake2b_statebytes()` was added.\n - New macros were added for the IETF variant of the ChaCha20-Poly1305\nconstruction.\n - The library can now be compiled on Minix.\n - HEASLR is now enabled on MinGW builds.\n\n* Version 1.0.8\n - Handle the case where the CPU supports AVX, but we are running\non an hypervisor with AVX disabled/not supported.\n - Faster (2x) scalarmult_base() when using the ref10 implementation.\n\n* Version 1.0.7\n - More functions whose return value should be checked have been\ntagged with `__attribute__ ((warn_unused_result))`: `crypto_box_easy()`,\n`crypto_box_detached()`, `crypto_box_beforenm()`, `crypto_box()`, and\n`crypto_scalarmult()`.\n - Sandy2x, the fastest Curve25519 implementation ever, has been\nmerged in, and is automatically used on CPUs supporting the AVX\ninstructions set.\n - An SSE2 optimized implementation of Poly1305 was added, and is\ntwice as fast as the portable one.\n - An SSSE3 optimized implementation of ChaCha20 was added, and is\ntwice as fast as the portable one.\n - Faster `sodium_increment()` for common nonce sizes.\n - New helper functions have been added: `sodium_is_zero()` and\n `sodium_add()`.\n - `sodium_runtime_has_aesni()` now properly detects the CPU flag when\n compiled using Visual Studio.\n\n* Version 1.0.6\n - Optimized implementations of Blake2 have been added for modern\nIntel platforms. `crypto_generichash()` is now faster than MD5 and SHA1\nimplementations while being far more secure.\n - Functions for which the return value should be checked have been\ntagged with `__attribute__ ((warn_unused_result))`. This will\nintentionally break code compiled with `-Werror` that didn't bother\nchecking critical return values.\n - The `crypto_sign_edwards25519sha512batch_*()` functions have been\ntagged as deprecated.\n - Undocumented symbols that were exported, but were only useful for\ninternal purposes have been removed or made private:\n`sodium_runtime_get_cpu_features()`, the implementation-specific\n`crypto_onetimeauth_poly1305_donna()` symbols,\n`crypto_onetimeauth_poly1305_set_implementation()`,\n`crypto_onetimeauth_poly1305_implementation_name()` and\n`crypto_onetimeauth_pick_best_implementation()`.\n - `sodium_compare()` now works as documented, and compares numbers\nin little-endian format instead of behaving like `memcmp()`.\n - The previous changes should not break actual applications, but to be\nsafe, the library version major was incremented.\n - `sodium_runtime_has_ssse3()` and `sodium_runtime_has_sse41()` have\nbeen added.\n - The library can now be compiled with the CompCert compiler.\n\n* Version 1.0.5\n - Compilation issues on some platforms were fixed: missing alignment\ndirectives were added (required at least on RHEL-6/i386), a workaround\nfor a VRP bug on gcc/armv7 was added, and the library can now be compiled\nwith the SunPro compiler.\n - JavaScript target: io.js is not supported any more. Use Node.js.\n\n* Version 1.0.4\n - Support for AES256-GCM has been added. This requires\na CPU with the aesni and pclmul extensions, and is accessible via the\ncrypto_aead_aes256gcm_*() functions.\n - The JavaScript target doesn't use eval() any more, so that the\nlibrary can be used in Chrome packaged applications.\n - QNX and CloudABI are now supported.\n - Support for NaCl has finally been added.\n - ChaCha20 with an extended (96 bit) nonce and a 32-bit counter has\nbeen implemented as crypto_stream_chacha20_ietf(),\ncrypto_stream_chacha20_ietf_xor() and crypto_stream_chacha20_ietf_xor_ic().\nAn IETF-compatible version of ChaCha20Poly1305 is available as\ncrypto_aead_chacha20poly1305_ietf_npubbytes(),\ncrypto_aead_chacha20poly1305_ietf_encrypt() and\ncrypto_aead_chacha20poly1305_ietf_decrypt().\n - The sodium_increment() helper function has been added, to increment\nan arbitrary large number (such as a nonce).\n - The sodium_compare() helper function has been added, to compare\narbitrary large numbers (such as nonces, in order to prevent replay\nattacks).\n\n* Version 1.0.3\n - In addition to sodium_bin2hex(), sodium_hex2bin() is now a\nconstant-time function.\n - crypto_stream_xsalsa20_ic() has been added.\n - crypto_generichash_statebytes(), crypto_auth_*_statebytes() and\ncrypto_hash_*_statebytes() have been added in order to retrieve the\nsize of structures keeping states from foreign languages.\n - The JavaScript target doesn't require /dev/urandom or an external\nrandombytes() implementation any more. Other minor Emscripten-related\nimprovements have been made in order to support libsodium.js.\n - Custom randombytes implementations do not need to provide their own\nimplementation of randombytes_uniform() any more. randombytes_stir()\nand randombytes_close() can also be NULL pointers if they are not\nrequired.\n - On Linux, getrandom(2) is being used instead of directly accessing\n/dev/urandom, if the kernel supports this system call.\n - crypto_box_seal() and crypto_box_seal_open() have been added.\n - Visual Studio 2015 is now supported.\n\n* Version 1.0.2\n - The _easy and _detached APIs now support precalculated keys;\ncrypto_box_easy_afternm(), crypto_box_open_easy_afternm(),\ncrypto_box_detached_afternm() and crypto_box_open_detached_afternm()\nhave been added as an alternative to the NaCl interface.\n - Memory allocation functions can now be used on operating systems with\nno memory protection.\n - crypto_sign_open() and crypto_sign_edwards25519sha512batch_open()\nnow accept a NULL pointer instead of a pointer to the message size, if\nstoring this information is not required.\n - The close-on-exec flag is now set on the descriptor returned when\nopening /dev/urandom.\n - A libsodium-uninstalled.pc file to use pkg-config even when\nlibsodium is not installed, has been added.\n - The iOS target now includes armv7s and arm64 optimized code, as well\nas i386 and x86_64 code for the iOS simulator.\n - sodium_free() can now be called on regions with PROT_NONE protection.\n - The JavaScript tests can run on Ubuntu, where the node binary was\nrenamed nodejs. io.js can also be used instead of Node.\n\n* Version 1.0.1\n - DLL_EXPORT was renamed SODIUM_DLL_EXPORT in order to avoid\ncollisions with similar macros defined by other libraries.\n - sodium_bin2hex() is now constant-time.\n - crypto_secretbox_detached() now supports overlapping input and output\nregions.\n - NaCl's donna_c64 implementation of curve25519 was reading an extra byte\npast the end of the buffer containing the base point. This has been\nfixed.\n\n* Version 1.0.0\n - The API and ABI are now stable. New features will be added, but\nbackward-compatibility is guaranteed through all the 1.x.y releases.\n - crypto_sign() properly works with overlapping regions again. Thanks\nto @pysiak for reporting this regression introduced in version 0.6.1.\n - The test suite has been extended.\n\n* Version 0.7.1 (1.0 RC2)\n - This is the second release candidate of Sodium 1.0. Minor\ncompilation, readability and portability changes have been made and the\ntest suite was improved, but the API is the same as the previous release\ncandidate.\n\n* Version 0.7.0 (1.0 RC1)\n - Allocating memory to store sensitive data can now be done using\nsodium_malloc() and sodium_allocarray(). These functions add guard\npages around the protected data to make it less likely to be\naccessible in a heartbleed-like scenario. In addition, the protection\nfor memory regions allocated that way can be changed using\nsodium_mprotect_noaccess(), sodium_mprotect_readonly() and\nsodium_mprotect_readwrite().\n - ed25519 keys can be converted to curve25519 keys with\ncrypto_sign_ed25519_pk_to_curve25519() and\ncrypto_sign_ed25519_sk_to_curve25519(). This allows using the same\nkeys for signature and encryption.\n - The seed and the public key can be extracted from an ed25519 key\nusing crypto_sign_ed25519_sk_to_seed() and crypto_sign_ed25519_sk_to_pk().\n - aes256 was removed. A timing-attack resistant implementation might\nbe added later, but not before version 1.0 is tagged.\n - The crypto_pwhash_scryptxsalsa208sha256_* compatibility layer was\nremoved. Use crypto_pwhash_scryptsalsa208sha256_*.\n - The compatibility layer for implementation-specific functions was\nremoved.\n - Compilation issues with Mingw64 on MSYS (not MSYS2) were fixed.\n - crypto_pwhash_scryptsalsa208sha256_STRPREFIX was added: it contains\nthe prefix produced by crypto_pwhash_scryptsalsa208sha256_str()\n\n* Version 0.6.1\n - Important bug fix: when crypto_sign_open() was given a signed\nmessage too short to even contain a signature, it was putting an\nunlimited amount of zeros into the target buffer instead of\nimmediately returning -1. The bug was introduced in version 0.5.0.\n - New API: crypto_sign_detached() and crypto_sign_verify_detached()\nto produce and verify ed25519 signatures without having to duplicate\nthe message.\n - New ./configure switch: --enable-minimal, to create a smaller\nlibrary, with only the functions required for the high-level API.\nMainly useful for the JavaScript target and embedded systems.\n - All the symbols are now exported by the Emscripten build script.\n - The pkg-config .pc file is now always installed even if the\npkg-config tool is not available during the installation.\n\n* Version 0.6.0\n - The ChaCha20 stream cipher has been added, as crypto_stream_chacha20_*\n - The ChaCha20Poly1305 AEAD construction has been implemented, as\ncrypto_aead_chacha20poly1305_*\n - The _easy API does not require any heap allocations any more and\ndoes not have any overhead over the NaCl API. With the password\nhashing function being an obvious exception, the library doesn't\nallocate and will not allocate heap memory ever.\n - crypto_box and crypto_secretbox have a new _detached API to store\nthe authentication tag and the encrypted message separately.\n - crypto_pwhash_scryptxsalsa208sha256*() functions have been renamed\ncrypto_pwhash_scryptsalsa208sha256*().\n - The low-level crypto_pwhash_scryptsalsa208sha256_ll() function\nallows setting individual parameters of the scrypt function.\n - New macros and functions for recommended crypto_pwhash_* parameters\nhave been added.\n - Similarly to crypto_sign_seed_keypair(), crypto_box_seed_keypair()\nhas been introduced to deterministically generate a key pair from a seed.\n - crypto_onetimeauth() now provides a streaming interface.\n - crypto_stream_chacha20_xor_ic() and crypto_stream_salsa20_xor_ic()\nhave been added to use a non-zero initial block counter.\n - On Windows, CryptGenRandom() was replaced by RtlGenRandom(), which\ndoesn't require the Crypt API.\n - The high bit in curve25519 is masked instead of processing the key as\na 256-bit value.\n - The curve25519 ref implementation was replaced by the latest ref10\nimplementation from Supercop.\n - sodium_mlock() now prevents memory from being included in coredumps\non Linux 3.4+\n\n* Version 0.5.0\n - sodium_mlock()/sodium_munlock() have been introduced to lock pages\nin memory before storing sensitive data, and to zero them before\nunlocking them.\n - High-level wrappers for crypto_box and crypto_secretbox\n(crypto_box_easy and crypto_secretbox_easy) can be used to avoid\ndealing with the specific memory layout regular functions depend on.\n - crypto_pwhash_scryptsalsa208sha256* functions have been added\nto derive a key from a password, and for password storage.\n - Salsa20 and ed25519 implementations now support overlapping\ninputs/keys/outputs (changes imported from supercop-20140505).\n - New build scripts for Visual Studio, Emscripten, different Android\narchitectures and msys2 are available.\n - The poly1305-53 implementation has been replaced with Floodyberry's\npoly1305-donna32 and poly1305-donna64 implementations.\n - sodium_hex2bin() has been added to complement sodium_bin2hex().\n - On OpenBSD and Bitrig, arc4random() is used instead of reading\n/dev/urandom.\n - crypto_auth_hmac_sha512() has been implemented.\n - sha256 and sha512 now have a streaming interface.\n - hmacsha256, hmacsha512 and hmacsha512256 now support keys of\narbitrary length, and have a streaming interface.\n - crypto_verify_64() has been implemented.\n - first-class Visual Studio build system, thanks to @evoskuil\n - CPU features are now detected at runtime.\n\n* Version 0.4.5\n - Restore compatibility with OSX <= 10.6\n\n* Version 0.4.4\n - Visual Studio is officially supported (VC 2010 & VC 2013)\n - mingw64 is now supported\n - big-endian architectures are now supported as well\n - The donna_c64 implementation of curve25519_donna_c64 now handles\nnon-canonical points like the ref implementation\n - Missing scalarmult_curve25519 and stream_salsa20 constants are now exported\n - A crypto_onetimeauth_poly1305_ref() wrapper has been added\n\n* Version 0.4.3\n - crypto_sign_seedbytes() and crypto_sign_SEEDBYTES were added.\n - crypto_onetimeauth_poly1305_implementation_name() was added.\n - poly1305-ref has been replaced by a faster implementation,\nFloodyberry's poly1305-donna-unrolled.\n - Stackmarkings have been added to assembly code, for Hardened Gentoo.\n - pkg-config can now be used in order to retrieve compilations flags for\nusing libsodium.\n - crypto_stream_aes256estream_*() can now deal with unaligned input\non platforms that require word alignment.\n - portability improvements.\n\n* Version 0.4.2\n - All NaCl constants are now also exposed as functions.\n - The Android and iOS cross-compilation script have been improved.\n - libsodium can now be cross-compiled to Windows from Linux.\n - libsodium can now be compiled with emscripten.\n - New convenience function (prototyped in utils.h): sodium_bin2hex().\n\n* Version 0.4.1\n - sodium_version_*() functions were not exported in version 0.4. They\nare now visible as intended.\n - sodium_init() now calls randombytes_stir().\n - optimized assembly version of salsa20 is now used on amd64.\n - further cleanups and enhanced compatibility with non-C99 compilers.\n\n* Version 0.4\n - Most constants and operations are now available as actual functions\ninstead of macros, making it easier to use from other languages.\n - New operation: crypto_generichash, featuring a variable key size, a\nvariable output size, and a streaming API. Currently implemented using\nBlake2b.\n - The package can be compiled in a separate directory.\n - aes128ctr functions are exported.\n - Optimized versions of curve25519 (curve25519_donna_c64), poly1305\n(poly1305_53) and ed25519 (ed25519_ref10) are available. Optionally calling\nsodium_init() once before using the library makes it pick the fastest\nimplementation.\n - New convenience function: sodium_memzero() in order to securely\nwipe a memory area.\n - A whole bunch of cleanups and portability enhancements.\n - On Windows, a .REF file is generated along with the shared library,\nfor use with Visual Studio. The installation path for these has become\n$prefix/bin as expected by MingW.\n\n* Version 0.3\n - The crypto_shorthash operation has been added, implemented using\nSipHash-2-4.\n\n* Version 0.2\n - crypto_sign_seed_keypair() has been added\n\n* Version 0.1\n - Initial release.\n\n"
  },
  {
    "path": "LICENSE",
    "content": "/*\n * ISC License\n *\n * Copyright (c) 2013-2026\n * Frank Denis <j at pureftpd dot org>\n *\n * Permission to use, copy, modify, and/or distribute this software for any\n * purpose with or without fee is hereby granted, provided that the above\n * copyright notice and this permission notice appear in all copies.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES\n * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF\n * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR\n * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES\n * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN\n * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF\n * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.\n */\n"
  },
  {
    "path": "Makefile.am",
    "content": "ACLOCAL_AMFLAGS = -I m4\n\nEXTRA_DIST = \\\n\tautogen.sh \\\n\tbuild.zig \\\n\tChangeLog \\\n\tCITATION.cff \\\n\tLICENSE \\\n\tREADME.markdown \\\n\tTHANKS\n\nSUBDIRS = \\\n\tbuilds \\\n\tdist-build \\\n\tsrc \\\n\ttest\n\npkgconfigdir = $(libdir)/pkgconfig\npkgconfig_DATA = @PACKAGE_NAME@.pc\n\nDISTCLEANFILES = $(pkgconfig_DATA)\n\n"
  },
  {
    "path": "README.markdown",
    "content": "[![GitHub CI](https://github.com/jedisct1/libsodium/workflows/CI/badge.svg)](https://github.com/jedisct1/libsodium/actions)\n[![Coverity Scan Build Status](https://scan.coverity.com/projects/2397/badge.svg)](https://scan.coverity.com/projects/2397)\n[![Azure build status](https://jedisct1.visualstudio.com/Libsodium/_apis/build/status/jedisct1.libsodium?branchName=stable)](https://jedisct1.visualstudio.com/Libsodium/_build/latest?definitionId=3&branchName=stable)\n[![CodeQL scan](https://github.com/jedisct1/libsodium/workflows/CodeQL%20scan/badge.svg)](https://github.com/jedisct1/libsodium/actions)\n\n# ![libsodium](https://raw.github.com/jedisct1/libsodium/master/logo.png)\n\nSodium is an easy-to-use software library that provides a wide range of cryptographic operations including encryption, decryption, digital signatures, and secure password hashing.\n\nIt is a portable, cross-compilable, installable, and packageable fork of [NaCl](http://nacl.cr.yp.to/). While maintaining API compatibility, libsodium extends functionality to improve usability and simplify the development of secure applications.\n\n---\n\n## Key Features\n\n- **Encryption & Decryption:** Securely encrypt and decrypt data with modern algorithms.\n- **Digital Signatures:** Create and verify signatures to ensure data authenticity.\n- **Cross-Platform Compatibility:** Supported on Windows (MinGW and Visual Studio, x86, x64 and arm64), iOS, Android, JavaScript, and WebAssembly.\n- **User-Friendly API:** Designed to provide all core cryptographic operations while remaining easy to integrate into your projects.\n\n---\n\n## Documentation\n\n- [Installation](https://doc.libsodium.org/installation)\n- [Quickstart](https://doc.libsodium.org/quickstart)\n- [Full Documentation](https://doc.libsodium.org)\n- [Releases](https://download.libsodium.org/libsodium/releases/)\n- [Integrity Checking](https://doc.libsodium.org/installation#integrity-checking)\n\n---\n\n## Versioning\n\nlibsodium uses a two-tier release system:\n\n- **Point releases** (e.g., 1.0.19, 1.0.20, 1.0.21) are tagged when new features are added or significant changes are made.\n- **Stable releases** are frequent maintainance updates between point releases. They fix minor issues while remaining fully compatible with their parent point release. No new features, no breaking changes.\n\nIf your application depends on a specific point release, stable updates are safe to apply. Security fixes go to the `stable` branch immediately, with a new point release tagged shortly after.\n\n---\n\n## Contributors\n\n### Code Contributors\n\nThis project thrives thanks to the valuable contributions from our community. View all the [contributors](https://github.com/jedisct1/libsodium/graphs/contributors):\n\n<a href=\"https://github.com/jedisct1/libsodium/graphs/contributors\">\n  <img src=\"https://opencollective.com/libsodium/contributors.svg?width=890&button=false\" alt=\"Contributors\">\n</a>\n\n### Financial Contributors\n\nYour financial support helps us sustain and further develop libsodium.\n\n- [Become a Financial Contributor](https://opencollective.com/libsodium/contribute)\n\n#### Individuals\n\n<a href=\"https://opencollective.com/libsodium\">\n  <img src=\"https://opencollective.com/libsodium/individuals.svg?width=890\" alt=\"Individual Contributors\">\n</a>\n\n#### Organizations\n\nSupport libsodium with your organization and gain visibility through your logo and website link.\n\n- [Support with Your Organization](https://opencollective.com/libsodium/contribute)\n\n<a href=\"https://opencollective.com/libsodium/organization/0/website\">\n  <img src=\"https://opencollective.com/libsodium/organization/0/avatar.svg\" alt=\"Organization Contributor\">\n</a>\n\n---\n\n## License\n\nThis project is distributed under the [ISC license](https://en.wikipedia.org/wiki/ISC_license).\n"
  },
  {
    "path": "THANKS",
    "content": "Special thanks to people, companies and organizations having written\nlibsodium bindings for their favorite programming languages:\n\n@ada23\n@alethia7\n@artemisc\n@buu700\n@carblue\n@Chewhern\n@didactic-drunk\n@dnaq\n@ektrah\n@freevryheid\n@graxrabble\n@gryor\n@harleqin\n@Jack-Edwards\n@joshjdevl\n@jprjr\n@jrmarino\n@jshahbazi\n@k0001\n@lvh\n@muquit\n@neheb\n@rj-calvin\n@tom25519\n\nAdam Caudill (@adamcaudill)\nAlexander Ilin (@AlexIljin)\nAlexander Morris (@alexpmorris)\nAmit Murthy (@amitmurthy)\nAndrew Bennett (@potatosalad)\nAndrew Lambert (@charonn0)\nBrad Barden (@IAMB)\nBruce Mitchener (@waywardmonkeys)\nBruno Oliveira (@abstractj)\nCaolan McMahon (@caolan)\nChris Rebert (@cvrebert)\nChristian Hermann (@bitbeans)\nChristian Wiese (@morfoh)\nColm MacCárthaigh (@colmmacc)\nDavid Parrish (@dmp1ce)\nDonald Stufft (@dstufft)\nDouglas Campos (@qmx)\nDrew Crawford (@drewcrawford)\nEmil Bay (@emilbayes)\nEric Dong (@quantum1423)\nEric Voskuil (@evoskuil)\nFarid Hajji (@fhajji)\nFelix Brandtner (@Skycoder42)\nFrank Siebenlist (@franks42)\nGabriel Handford (@gabriel)\nGeo Carncross (@geocar)\nGurpreet Paul (@gurpreet-)\nHenrik Gassmann (BurningEnlightenment)\nJachym Holecek (@freza)\nJack Wink (@jackwink)\nJaco Malan (@JacoMalan1)\nJames Ruan (@jamesruan)\nJan de Muijnck-Hughes (@jfdm)\nJason McCampbell (@jasonmccampbell)\nJeroen Habraken (@VeXocide)\nJeroen Ooms (@jeroen)\nJesper Louis Andersen (@jlouis)\nJoe Eli McIlvain (@jemc)\nJonathan Stowe (@jonathanstowe)\nJoseph Abrahamson (@tel)\nJulien Kauffmann (@ereOn)\nKenneth Ballenegger (@kballenegger)\nLoic Maury (@loicmaury)\nMathias Lang (@Geod24)\nMichael Gorlick (@mgorlick)\nMichael Gregorowicz (@mgregoro)\nMichał Zieliński (@zielmicha)\nOmar Ayub (@electricFeel)\nPaul Kehrer (@reaperhulk)\nPedro Paixao (@paixaop)\nPierre Yager (@zedalaye)\nProject ArteMisc (@artemisc)\nRich FitzJohn (@richfitz)\nRuben De Visscher (@rubendv)\nRudolf Von Krugstein (@rudolfvonkrugstein)\nSamuel Lucas (@samuel-lucas6)\nSamuel Neves (@sneves)\nScott Arciszewski (@paragonie-scott)\nSoatok Dreamseeker (@soatok)\nStanislav Ovsiannikov (@naphaso)\nStefan Marsiske (@stef)\nStephan Touset (@stouset)\nStephen Chavez (@redragonx)\nSteve Gibson (@sggrc)\nThomas S Hatch (@thatch45)\nTony Arcieri (@bascule)\nTony Garnock-Jones (@tonyg)\nUgljesa Jovanovic (@ionspin)\nY. T. Chung (@zonyitoo)\n\nBetterCallSodium\nBundleFeed\nBytecurry Software\nCryptotronix\nFacebook\nFSF France\nHaskell Cryptography Group\nHolochain\nHolepunch\nMaidSafe\nObject Guild\nParagonie Initiative Enterprises\nPython Cryptographic Authority\nr-lib\nrOpenSci\nRubyCrypto\nSaltStack\nSerokell\nSpace Wizards\nTerl\nVlang\n\n(this list may not be complete, if you don't see your name, please\nsubmit a pull request!)\n\nAlso thanks to:\n\n- Coverity, Inc. to provide static analysis.\n- FSF France for providing access to their compilation servers.\n- Private Internet Access for having sponsored a complete security audit.\n"
  },
  {
    "path": "appveyor.yml",
    "content": "version: 1.0.23.{build}\n\nos: Visual Studio 2022\n\nenvironment:\n  matrix:\n    - platform: Win32\n      configuration: Debug\n    - platform: Win32\n      configuration: Release\n    - platform: x64\n      configuration: Debug\n    - platform: x64\n      configuration: Release\n\nmatrix:\n  fast_finish: false\n\ninit: msbuild /version\n\nbuild:\n  parallel: true\n  project: ci/appveyor/libsodium.vcxproj\n  verbosity: normal\n"
  },
  {
    "path": "autogen.sh",
    "content": "#! /bin/sh\n\nargs=$(getopt bfos \"$@\")\nif [ $? -ne 0 ]; then\n  echo \"Usage: autogen.sh [-b] [-f] [-o] [-s] [--]\"\n  echo\n  echo \">   -b: do not update the system detection scripts\"\n  echo \">   -f: force the recreation of all autoconf scripts\"\n  echo \">   -o: overwrite/downgrade system detection scripts\"\n  echo \">   -s: setup an environment for developers\"\n  exit 2\nfi\n\nforce=false\nupdate_config=true\noverwrite_config=false\ndev_setup=false\n\neval set -- \"$args\"\n\nwhile [ $# -ne 0 ]; do\n  case $1 in\n  -b)\n    update_config=false\n    ;;\n  -f)\n    force=true\n    ;;\n  -o)\n    overwrite_config=true\n    ;;\n  -s)\n    dev_setup=true\n    ;;\n  --)\n    shift\n    break\n    ;;\n  esac\n  shift\ndone\n\nif [ -s configure ]; then\n  if [ \"$force\" != true ]; then\n    echo \"autoconf scripts already exist.\" >&2\n    exit 0\n  fi\nelif [ \"$dev_setup\" != true ]; then\n  echo \"If you are looking to install a stable version of libsodium,\"\n  echo \"please do not run arbitrary, undocumented commands.\"\n  echo\n  echo \"Installation instructions are available at https://libsodium.org\"\n  exit 0\nfi\n\nif glibtoolize --version >/dev/null 2>&1; then\n  LIBTOOLIZE='glibtoolize'\nelse\n  LIBTOOLIZE='libtoolize'\nfi\n\ncommand -v command >/dev/null 2>&1 || {\n  echo \"command is required, but wasn't found on this system\"\n  exit 1\n}\n\ncommand -v $LIBTOOLIZE >/dev/null 2>&1 || {\n  echo \"libtool is required, but wasn't found on this system\"\n  exit 1\n}\n\ncommand -v autoconf >/dev/null 2>&1 || {\n  echo \"autoconf is required, but wasn't found on this system\"\n  exit 1\n}\n\ncommand -v automake >/dev/null 2>&1 || {\n  echo \"automake is required, but wasn't found on this system\"\n  exit 1\n}\n\nif [ \"$overwrite_config\" = false ]; then\n  if [ -f build-aux/config.guess ]; then\n    mv build-aux/config.guess build-aux/config.guess.stable\n  fi\n  if [ -f build-aux/config.sub ]; then\n    mv build-aux/config.sub build-aux/config.sub.stable\n  fi\nelse\n  rm -fr build-aux\nfi\n\n$LIBTOOLIZE --copy --install &&\n  aclocal &&\n  automake --add-missing --copy --force-missing --include-deps &&\n  autoconf && echo Done.\nif [ \"$overwrite_config\" = false ]; then\n  if [ -f build-aux/config.guess.stable ]; then\n    mv build-aux/config.guess.stable build-aux/config.guess\n  fi\n  if [ -f build-aux/config.sub.stable ]; then\n    mv build-aux/config.sub.stable build-aux/config.sub\n  fi\nfi\n\n[ \"$update_config\" = true ] &&\n  command -v curl >/dev/null 2>&1 && {\n  echo \"Downloading config.guess and config.sub...\"\n\n  curl -sSL --fail -o config.guess \\\n    'https://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD' &&\n    chmod +x config.guess &&\n    chmod +x build-aux/config.guess\n\n  curl -sSL --fail -o config.sub \\\n    'https://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub;hb=HEAD' &&\n    chmod +x build-aux/config.sub &&\n    mv -f config.sub build-aux/config.sub\n\n  echo \"Done.\"\n}\n\nrm -f config.guess config.sub\n"
  },
  {
    "path": "azure-pipelines.yml",
    "content": "trigger:\n  - stable\n  - next\n\npr: none\n\njobs:\n  - job: \"windows\"\n    pool:\n      vmImage: \"windows-latest\"\n    steps:\n      - powershell: |\n          cd builds\\msvc\\build\n          & .\\buildbase.bat ..\\vs2026\\libsodium.sln 18\n        displayName: Compile it all\n      - powershell: |\n          mkdir bin\\include\\sodium\n          Copy-Item \"src\\libsodium\\include\\sodium\\*.h\" -Destination \"bin\\include\\sodium\" -Recurse\n          Copy-Item \"src\\libsodium\\include\\*.h\" -Destination \"bin\\include\\\"\n        displayName: Copy header files\n      - task: PublishBuildArtifacts@1\n        condition: not(canceled())\n        inputs:\n          pathToPublish: bin\n          artifactName: libsodium\n\n  - job: \"windows_2022\"\n    pool:\n      vmImage: \"windows-2022\"\n    steps:\n      - powershell: |\n          cd builds\\msvc\\build\n          & .\\buildbase.bat ..\\vs2022\\libsodium.sln 17\n        displayName: Compile it all\n      - powershell: |\n          mkdir bin\\include\\sodium\n          Copy-Item \"src\\libsodium\\include\\sodium\\*.h\" -Destination \"bin\\include\\sodium\" -Recurse\n          Copy-Item \"src\\libsodium\\include\\*.h\" -Destination \"bin\\include\\\"\n        displayName: Copy header files\n      - task: PublishBuildArtifacts@1\n        condition: not(canceled())\n        inputs:\n          pathToPublish: bin\n          artifactName: libsodium\n\n  - job: \"windows_2019\"\n    pool:\n      vmImage: \"windows-2022\"\n    steps:\n      - powershell: |\n          choco install visualstudio2019buildtools --package-parameters \"--add Microsoft.VisualStudio.Workload.VCTools --includeRecommended --quiet --wait\" -y\n        displayName: Install VS2019 Build Tools\n      - powershell: |\n          cd builds\\msvc\\build\n          & .\\buildbase.bat ..\\vs2019\\libsodium.sln 16\n        displayName: Compile it all\n      - powershell: |\n          mkdir bin\\include\\sodium\n          Copy-Item \"src\\libsodium\\include\\sodium\\*.h\" -Destination \"bin\\include\\sodium\" -Recurse\n          Copy-Item \"src\\libsodium\\include\\*.h\" -Destination \"bin\\include\\\"\n        displayName: Copy header files\n      - task: PublishBuildArtifacts@1\n        condition: not(canceled())\n        inputs:\n          pathToPublish: bin\n          artifactName: libsodium\n\n  - job: mingw64\n    pool:\n      vmImage: \"windows-2022\"\n    steps:\n      - powershell: |\n          (New-Object Net.WebClient).DownloadFile(\"https://github.com/msys2/msys2-installer/releases/download/2025-12-13/msys2-base-x86_64-20251213.sfx.exe\", \"sfx.exe\")\n          .\\sfx.exe -y -o\\\n          del sfx.exe\n        displayName: Install MSYS2\n      - script: |\n          set PATH=%CD:~0,2%\\msys64\\usr\\bin;C:\\Windows\\system32;C:\\Windows;C:\\Windows\\System32\\Wbem\n          %CD:~0,2%\\msys64\\usr\\bin\\bash -lc\n          %CD:~0,2%\\msys64\\usr\\bin\\bash -lc \"pacman --noconfirm -Sydd filesystem\"\n          %CD:~0,2%\\msys64\\usr\\bin\\bash -lc 'pacman --noconfirm -Syuu'\n          %CD:~0,2%\\msys64\\usr\\bin\\bash -lc 'pacman --noconfirm -Syuu'\n        displayName: Update MSYS2\n      - script: |\n          set PATH=%CD:~0,2%\\msys64\\usr\\bin;C:\\Windows\\system32;C:\\Windows;C:\\Windows\\System32\\Wbem\n          %CD:~0,2%\\msys64\\usr\\bin\\pacman --noconfirm --needed -S base-devel mingw-w64-x86_64-toolchain\n          %CD:~0,2%\\msys64\\usr\\bin\\pacman --noconfirm -Scc\n          %CD:~0,2%\\msys64\\usr\\bin\\sed -i \"s|#CacheDir.*|CacheDir=/c/Users/%USERNAME%/AppData/Local/Temp|g\" /etc/pacman.conf\n        displayName: Install Toolchain\n      - script: |\n          set PATH=C:\\Windows\\system32;C:\\Windows;C:\\Windows\\System32\\Wbem;%CD:~0,2%\\msys64\\usr\\bin;%CD:~0,2%\\msys64\\bin\n          set MSYS2_ROOT=%CD:~0,2%\\msys64\n          set MSYSTEM=MINGW64\n          set CHERE_INVOKING=yes\n          %MSYS2_ROOT%\\cmd\\msystem MINGW64\n          %CD:~0,2%\\msys64\\usr\\bin\\bash -lc dist-build/msys2-win64.sh\n        env:\n          CHERE_INVOKING: yes\n          MSYS2_ARCH: x86_64\n        displayName: Compile libsodium\n      - task: PublishBuildArtifacts@1\n        condition: not(canceled())\n        inputs:\n          pathToPublish: libsodium-win64\n          artifactName: libsodium-win64\n\n  - job: mingw32\n    pool:\n      vmImage: \"windows-2022\"\n    steps:\n      - powershell: |\n          (New-Object Net.WebClient).DownloadFile(\"https://github.com/msys2/msys2-installer/releases/download/2025-12-13/msys2-base-x86_64-20251213.sfx.exe\", \"sfx.exe\")\n          .\\sfx.exe -y -o\\\n          del sfx.exe\n        displayName: Install MSYS2\n      - script: |\n          set PATH=%CD:~0,2%\\msys64\\usr\\bin;C:\\Windows\\system32;C:\\Windows;C:\\Windows\\System32\\Wbem\n          %CD:~0,2%\\msys64\\usr\\bin\\bash -lc\n          %CD:~0,2%\\msys64\\usr\\bin\\bash -lc \"pacman --noconfirm -Sydd filesystem\"\n          %CD:~0,2%\\msys64\\usr\\bin\\bash -lc 'pacman --noconfirm -Syuu'\n          %CD:~0,2%\\msys64\\usr\\bin\\bash -lc 'pacman --noconfirm -Syuu'\n        displayName: Update MSYS2\n      - script: |\n          set PATH=%CD:~0,2%\\msys64\\usr\\bin;C:\\Windows\\system32;C:\\Windows;C:\\Windows\\System32\\Wbem\n          %CD:~0,2%\\msys64\\usr\\bin\\pacman --noconfirm --needed -S base-devel mingw-w64-i686-toolchain\n          %CD:~0,2%\\msys64\\usr\\bin\\pacman --noconfirm -Scc\n          %CD:~0,2%\\msys64\\usr\\bin\\sed -i \"s|#CacheDir.*|CacheDir=/c/Users/%USERNAME%/AppData/Local/Temp|g\" /etc/pacman.conf\n        displayName: Install Toolchain\n      - script: |\n          set PATH=C:\\Windows\\system32;C:\\Windows;C:\\Windows\\System32\\Wbem;%CD:~0,2%\\msys64\\usr\\bin;%CD:~0,2%\\msys64\\bin\n          set MSYS2_ROOT=%CD:~0,2%\\msys64\n          set MSYSTEM=MINGW32\n          set CHERE_INVOKING=yes\n          %MSYS2_ROOT%\\cmd\\msystem MINGW32\n          %CD:~0,2%\\msys64\\usr\\bin\\bash -lc dist-build/msys2-win32.sh\n        env:\n          CHERE_INVOKING: yes\n          MSYS2_ARCH: x86_64\n        displayName: Compile libsodium\n      - task: PublishBuildArtifacts@1\n        condition: not(canceled())\n        inputs:\n          pathToPublish: libsodium-win32\n          artifactName: libsodium-win32\n"
  },
  {
    "path": "build.zig",
    "content": "const std = @import(\"std\");\nconst fmt = std.fmt;\nconst heap = std.heap;\nconst mem = std.mem;\nconst Compile = std.Build.Step.Compile;\nconst Target = std.Target;\n\n// Zig 0.16+ uses std.Io.Dir, 0.15 uses std.fs\nconst is_zig_16 = @hasDecl(std, \"Io\") and @hasDecl(std.Io, \"Dir\");\nconst Dir = if (is_zig_16) std.Io.Dir else std.fs.Dir;\nconst Io = if (is_zig_16) std.Io else void;\n\nfn initLibConfig(b: *std.Build, target: std.Build.ResolvedTarget, lib: *Compile) void {\n    lib.root_module.link_libc = true;\n    lib.lto = null;\n    lib.root_module.addIncludePath(b.path(\"src/libsodium/include/sodium\"));\n    lib.root_module.addCMacro(\"_GNU_SOURCE\", \"1\");\n    lib.root_module.addCMacro(\"CONFIGURED\", \"1\");\n    lib.root_module.addCMacro(\"DEV_MODE\", \"1\");\n    lib.root_module.addCMacro(\"HAVE_ATOMIC_OPS\", \"1\");\n    lib.root_module.addCMacro(\"HAVE_C11_MEMORY_FENCES\", \"1\");\n    lib.root_module.addCMacro(\"HAVE_CET_H\", \"1\");\n    lib.root_module.addCMacro(\"HAVE_GCC_MEMORY_FENCES\", \"1\");\n    lib.root_module.addCMacro(\"HAVE_INLINE_ASM\", \"1\");\n    lib.root_module.addCMacro(\"HAVE_INTTYPES_H\", \"1\");\n    lib.root_module.addCMacro(\"HAVE_STDINT_H\", \"1\");\n    lib.root_module.addCMacro(\"HAVE_TI_MODE\", \"1\");\n\n    const endian = target.result.cpu.arch.endian();\n    switch (endian) {\n        .big => lib.root_module.addCMacro(\"NATIVE_BIG_ENDIAN\", \"1\"),\n        .little => lib.root_module.addCMacro(\"NATIVE_LITTLE_ENDIAN\", \"1\"),\n    }\n\n    switch (target.result.os.tag) {\n        .linux => {\n            lib.root_module.addCMacro(\"ASM_HIDE_SYMBOL\", \".hidden\");\n            lib.root_module.addCMacro(\"TLS\", \"_Thread_local\");\n\n            lib.root_module.addCMacro(\"HAVE_CATCHABLE_ABRT\", \"1\");\n            lib.root_module.addCMacro(\"HAVE_CATCHABLE_SEGV\", \"1\");\n            lib.root_module.addCMacro(\"HAVE_CLOCK_GETTIME\", \"1\");\n            lib.root_module.addCMacro(\"HAVE_GETPID\", \"1\");\n            lib.root_module.addCMacro(\"HAVE_MADVISE\", \"1\");\n            lib.root_module.addCMacro(\"HAVE_MLOCK\", \"1\");\n            lib.root_module.addCMacro(\"HAVE_MMAP\", \"1\");\n            lib.root_module.addCMacro(\"HAVE_MPROTECT\", \"1\");\n            lib.root_module.addCMacro(\"HAVE_NANOSLEEP\", \"1\");\n            lib.root_module.addCMacro(\"HAVE_POSIX_MEMALIGN\", \"1\");\n            lib.root_module.addCMacro(\"HAVE_PTHREAD_PRIO_INHERIT\", \"1\");\n            lib.root_module.addCMacro(\"HAVE_PTHREAD\", \"1\");\n            lib.root_module.addCMacro(\"HAVE_RAISE\", \"1\");\n            lib.root_module.addCMacro(\"HAVE_SYSCONF\", \"1\");\n            lib.root_module.addCMacro(\"HAVE_SYS_AUXV_H\", \"1\");\n            lib.root_module.addCMacro(\"HAVE_SYS_MMAN_H\", \"1\");\n            lib.root_module.addCMacro(\"HAVE_SYS_PARAM_H\", \"1\");\n            lib.root_module.addCMacro(\"HAVE_SYS_RANDOM_H\", \"1\");\n            lib.root_module.addCMacro(\"HAVE_WEAK_SYMBOLS\", \"1\");\n        },\n        .windows => {\n            lib.root_module.addCMacro(\"HAVE_RAISE\", \"1\");\n            lib.root_module.addCMacro(\"HAVE_SYS_PARAM_H\", \"1\");\n            if (lib.isStaticLibrary()) {\n                lib.root_module.addCMacro(\"SODIUM_STATIC\", \"1\");\n            }\n        },\n        .macos => {\n            lib.root_module.addCMacro(\"ASM_HIDE_SYMBOL\", \".private_extern\");\n            lib.root_module.addCMacro(\"TLS\", \"_Thread_local\");\n\n            lib.root_module.addCMacro(\"HAVE_ARC4RANDOM\", \"1\");\n            lib.root_module.addCMacro(\"HAVE_ARC4RANDOM_BUF\", \"1\");\n            lib.root_module.addCMacro(\"HAVE_CATCHABLE_ABRT\", \"1\");\n            lib.root_module.addCMacro(\"HAVE_CATCHABLE_SEGV\", \"1\");\n            lib.root_module.addCMacro(\"HAVE_CLOCK_GETTIME\", \"1\");\n            lib.root_module.addCMacro(\"HAVE_GETENTROPY\", \"1\");\n            lib.root_module.addCMacro(\"HAVE_GETPID\", \"1\");\n            lib.root_module.addCMacro(\"HAVE_MADVISE\", \"1\");\n            lib.root_module.addCMacro(\"HAVE_MEMSET_S\", \"1\");\n            lib.root_module.addCMacro(\"HAVE_MLOCK\", \"1\");\n            lib.root_module.addCMacro(\"HAVE_MMAP\", \"1\");\n            lib.root_module.addCMacro(\"HAVE_MPROTECT\", \"1\");\n            lib.root_module.addCMacro(\"HAVE_NANOSLEEP\", \"1\");\n            lib.root_module.addCMacro(\"HAVE_POSIX_MEMALIGN\", \"1\");\n            lib.root_module.addCMacro(\"HAVE_PTHREAD\", \"1\");\n            lib.root_module.addCMacro(\"HAVE_PTHREAD_PRIO_INHERIT\", \"1\");\n            lib.root_module.addCMacro(\"HAVE_RAISE\", \"1\");\n            lib.root_module.addCMacro(\"HAVE_SYSCONF\", \"1\");\n            lib.root_module.addCMacro(\"HAVE_SYS_MMAN_H\", \"1\");\n            lib.root_module.addCMacro(\"HAVE_SYS_PARAM_H\", \"1\");\n            lib.root_module.addCMacro(\"HAVE_SYS_RANDOM_H\", \"1\");\n            lib.root_module.addCMacro(\"HAVE_WEAK_SYMBOLS\", \"1\");\n        },\n        .wasi => {\n            lib.root_module.addCMacro(\"HAVE_ARC4RANDOM\", \"1\");\n            lib.root_module.addCMacro(\"HAVE_ARC4RANDOM_BUF\", \"1\");\n            lib.root_module.addCMacro(\"HAVE_CLOCK_GETTIME\", \"1\");\n            lib.root_module.addCMacro(\"HAVE_GETENTROPY\", \"1\");\n            lib.root_module.addCMacro(\"HAVE_NANOSLEEP\", \"1\");\n            lib.root_module.addCMacro(\"HAVE_POSIX_MEMALIGN\", \"1\");\n            lib.root_module.addCMacro(\"HAVE_SYS_AUXV_H\", \"1\");\n            lib.root_module.addCMacro(\"HAVE_SYS_PARAM_H\", \"1\");\n            lib.root_module.addCMacro(\"HAVE_SYS_RANDOM_H\", \"1\");\n        },\n        .freebsd => {\n            lib.root_module.addCMacro(\"ASM_HIDE_SYMBOL\", \".hidden\");\n            lib.root_module.addCMacro(\"TLS\", \"_Thread_local\");\n\n            lib.root_module.addCMacro(\"HAVE_ARC4RANDOM\", \"1\");\n            lib.root_module.addCMacro(\"HAVE_ARC4RANDOM_BUF\", \"1\");\n            lib.root_module.addCMacro(\"HAVE_CATCHABLE_ABRT\", \"1\");\n            lib.root_module.addCMacro(\"HAVE_CATCHABLE_SEGV\", \"1\");\n            lib.root_module.addCMacro(\"HAVE_CLOCK_GETTIME\", \"1\");\n            lib.root_module.addCMacro(\"HAVE_GETPID\", \"1\");\n            lib.root_module.addCMacro(\"HAVE_MADVISE\", \"1\");\n            lib.root_module.addCMacro(\"HAVE_MLOCK\", \"1\");\n            lib.root_module.addCMacro(\"HAVE_MMAP\", \"1\");\n            lib.root_module.addCMacro(\"HAVE_MPROTECT\", \"1\");\n            lib.root_module.addCMacro(\"HAVE_NANOSLEEP\", \"1\");\n            lib.root_module.addCMacro(\"HAVE_POSIX_MEMALIGN\", \"1\");\n            lib.root_module.addCMacro(\"HAVE_PTHREAD_PRIO_INHERIT\", \"1\");\n            lib.root_module.addCMacro(\"HAVE_PTHREAD\", \"1\");\n            lib.root_module.addCMacro(\"HAVE_RAISE\", \"1\");\n            lib.root_module.addCMacro(\"HAVE_SYSCONF\", \"1\");\n            lib.root_module.addCMacro(\"HAVE_SYS_MMAN_H\", \"1\");\n            lib.root_module.addCMacro(\"HAVE_SYS_PARAM_H\", \"1\");\n            lib.root_module.addCMacro(\"HAVE_SYS_RANDOM_H\", \"1\");\n            lib.root_module.addCMacro(\"HAVE_WEAK_SYMBOLS\", \"1\");\n        },\n        else => {},\n    }\n\n    switch (target.result.cpu.arch) {\n        .x86_64 => {\n            switch (target.result.os.tag) {\n                .windows => {},\n                else => {\n                    lib.root_module.addCMacro(\"HAVE_AMD64_ASM\", \"1\");\n                    lib.root_module.addCMacro(\"HAVE_AVX_ASM\", \"1\");\n                },\n            }\n            lib.root_module.addCMacro(\"HAVE_CPUID\", \"1\");\n            lib.root_module.addCMacro(\"HAVE_MMINTRIN_H\", \"1\");\n            lib.root_module.addCMacro(\"HAVE_EMMINTRIN_H\", \"1\");\n            lib.root_module.addCMacro(\"HAVE_PMMINTRIN_H\", \"1\");\n            lib.root_module.addCMacro(\"HAVE_TMMINTRIN_H\", \"1\");\n            lib.root_module.addCMacro(\"HAVE_SMMINTRIN_H\", \"1\");\n            lib.root_module.addCMacro(\"HAVE_AVXINTRIN_H\", \"1\");\n            lib.root_module.addCMacro(\"HAVE_AVX2INTRIN_H\", \"1\");\n            lib.root_module.addCMacro(\"HAVE_AVX512FINTRIN_H\", \"1\");\n            lib.root_module.addCMacro(\"HAVE_WMMINTRIN_H\", \"1\");\n            lib.root_module.addCMacro(\"HAVE_RDRAND\", \"1\");\n        },\n        .aarch64, .aarch64_be => {\n            lib.root_module.addCMacro(\"HAVE_ARMCRYPTO\", \"1\");\n        },\n        .wasm32, .wasm64 => {\n            lib.root_module.addCMacro(\"__wasm__\", \"1\");\n        },\n        else => {},\n    }\n\n    switch (target.result.os.tag) {\n        .wasi => {\n            lib.root_module.addCMacro(\"__wasi__\", \"1\");\n        },\n        else => {},\n    }\n}\n\npub fn build(b: *std.Build) !void {\n    const io: Io = if (is_zig_16) b.graph.io else {};\n    const root_path = b.pathFromRoot(\".\");\n    const cwd = try if (is_zig_16) Dir.cwd().openDir(io, root_path, .{}) else std.fs.cwd().openDir(root_path, .{});\n\n    const src_path = \"src/libsodium\";\n    const src_dir = if (is_zig_16)\n        try cwd.openDir(io, src_path, .{ .iterate = true })\n    else if (@hasField(Dir.OpenOptions, \"follow_symlinks\"))\n        try cwd.openDir(src_path, .{ .iterate = true, .follow_symlinks = false })\n    else\n        try cwd.openDir(src_path, .{ .iterate = true, .no_follow = true });\n\n    var target = b.standardTargetOptions(.{});\n    const optimize = b.standardOptimizeOption(.{});\n\n    const enable_benchmarks = b.option(bool, \"enable_benchmarks\", \"Whether tests should be benchmarks.\") orelse false;\n    const benchmarks_iterations = b.option(u32, \"iterations\", \"Number of iterations for benchmarks.\") orelse 200;\n    var build_static = b.option(bool, \"static\", \"Build libsodium as a static library.\") orelse true;\n    var build_shared = b.option(bool, \"shared\", \"Build libsodium as a shared library.\") orelse true;\n\n    const build_tests = b.option(bool, \"test\", \"Build the tests (implies -Dstatic=true)\") orelse true;\n\n    if (target.result.cpu.arch.isWasm()) {\n        build_shared = false;\n    }\n    if (build_tests) {\n        build_static = true;\n    }\n\n    switch (target.result.cpu.arch) {\n        .aarch64, .aarch64_be => {\n            // ARM CPUs supported by Windows are assumed to have NEON support\n            if (target.result.isMinGW()) {\n                target.query.cpu_features_add.addFeature(@intFromEnum(Target.aarch64.Feature.neon));\n            }\n        },\n        else => {},\n    }\n\n    const static_lib = b.addLibrary(.{\n        .name = if (target.result.isMinGW()) \"libsodium-static\" else \"sodium\",\n        .linkage = .static,\n        .root_module = b.createModule(.{\n            .target = target,\n            .optimize = optimize,\n        }),\n    });\n    static_lib.pie = true;\n    const shared_lib = b.addLibrary(.{\n        .name = if (target.result.isMinGW()) \"libsodium\" else \"sodium\",\n        .linkage = .dynamic,\n        .root_module = b.createModule(.{\n            .target = target,\n            .optimize = optimize,\n            .strip = optimize != .Debug and !target.result.isMinGW(),\n        }),\n    });\n\n    // work out which libraries we are building\n    var libs: std.ArrayListUnmanaged(*Compile) = .empty;\n    defer libs.deinit(heap.page_allocator);\n    if (build_static) {\n        try libs.append(heap.page_allocator, static_lib);\n    }\n    if (build_shared) {\n        try libs.append(heap.page_allocator, shared_lib);\n    }\n\n    const prebuilt_version_file_path = \"builds/msvc/version.h\";\n    const version_file_path = \"include/sodium/version.h\";\n\n    if (is_zig_16) {\n        try Dir.copyFile(cwd, prebuilt_version_file_path, src_dir, version_file_path, io, .{});\n    } else {\n        try cwd.copyFile(prebuilt_version_file_path, src_dir, version_file_path, .{});\n    }\n\n    for (libs.items) |lib| {\n        b.installArtifact(lib);\n        lib.installHeader(b.path(src_path ++ \"/include/sodium.h\"), \"sodium.h\");\n        lib.installHeadersDirectory(b.path(src_path ++ \"/include/sodium\"), \"sodium\", .{});\n\n        initLibConfig(b, target, lib);\n\n        const flags = &.{\n            \"-fvisibility=hidden\",\n            \"-fno-strict-aliasing\",\n            \"-fno-strict-overflow\",\n            \"-fwrapv\",\n            \"-flax-vector-conversions\",\n            \"-Werror=vla\",\n        };\n\n        const allocator = heap.page_allocator;\n\n        var walker = try src_dir.walk(allocator);\n        while (if (is_zig_16) try walker.next(io) else try walker.next()) |entry| {\n            const name = entry.basename;\n            if (mem.endsWith(u8, name, \".c\")) {\n                const full_path = try fmt.allocPrint(allocator, \"{s}/{s}\", .{ src_path, entry.path });\n\n                lib.root_module.addCSourceFiles(.{\n                    .files = &.{full_path},\n                    .flags = flags,\n                });\n            } else if (mem.endsWith(u8, name, \".S\")) {\n                const full_path = try fmt.allocPrint(allocator, \"{s}/{s}\", .{ src_path, entry.path });\n                lib.root_module.addAssemblyFile(b.path(full_path));\n            }\n        }\n    }\n\n    const test_path = \"test/default\";\n    const out_bin_path = \"zig-out/bin\";\n    const test_dir = if (is_zig_16)\n        try cwd.openDir(io, test_path, .{ .iterate = true })\n    else if (@hasField(Dir.OpenOptions, \"follow_symlinks\"))\n        try cwd.openDir(test_path, .{ .iterate = true, .follow_symlinks = false })\n    else\n        try cwd.openDir(test_path, .{ .iterate = true, .no_follow = true });\n\n    if (is_zig_16) {\n        cwd.createDirPath(io, out_bin_path) catch {};\n    } else {\n        cwd.makePath(out_bin_path) catch {};\n    }\n    const out_bin_dir = if (is_zig_16)\n        try cwd.openDir(io, out_bin_path, .{})\n    else\n        try cwd.openDir(out_bin_path, .{});\n\n    if (is_zig_16) {\n        try Dir.copyFile(test_dir, \"run.sh\", out_bin_dir, \"run.sh\", io, .{});\n    } else {\n        try test_dir.copyFile(\"run.sh\", out_bin_dir, \"run.sh\", .{});\n    }\n\n    const allocator = heap.page_allocator;\n    var walker = try test_dir.walk(allocator);\n\n    const test_step = b.step(\"test\", \"Run all libsodium tests\");\n\n    if (build_tests) {\n        while (if (is_zig_16) try walker.next(io) else try walker.next()) |entry| {\n            const name = entry.basename;\n            if (mem.endsWith(u8, name, \".exp\")) {\n                if (is_zig_16) {\n                    try Dir.copyFile(test_dir, name, out_bin_dir, name, io, .{});\n                } else {\n                    try test_dir.copyFile(name, out_bin_dir, name, .{});\n                }\n                continue;\n            }\n            if (!mem.endsWith(u8, name, \".c\")) {\n                continue;\n            }\n            const exe_name = name[0 .. name.len - 2];\n            var exe = b.addExecutable(.{\n                .name = exe_name,\n                .root_module = b.createModule(.{\n                    .target = target,\n                    .optimize = optimize,\n                    .strip = true,\n                    .link_libc = true,\n                }),\n            });\n            exe.root_module.linkLibrary(static_lib);\n            exe.root_module.addIncludePath(b.path(\"src/libsodium/include\"));\n            exe.root_module.addIncludePath(b.path(\"test/quirks\"));\n            const full_path = try fmt.allocPrint(allocator, \"{s}/{s}\", .{ test_path, entry.path });\n            exe.root_module.addCSourceFiles(.{ .files = &.{full_path} });\n            if (enable_benchmarks) {\n                exe.root_module.addCMacro(\"BENCHMARKS\", \"1\");\n                var buf: [16]u8 = undefined;\n                const n = std.fmt.bufPrint(&buf, \"{d}\", .{benchmarks_iterations}) catch unreachable;\n                exe.root_module.addCMacro(\"ITERATIONS\", n);\n            }\n\n            b.installArtifact(exe);\n\n            // Add a run step for this test\n            const run_test = b.addRunArtifact(exe);\n            run_test.setCwd(b.path(test_path));\n            test_step.dependOn(&run_test.step);\n        }\n    }\n}\n"
  },
  {
    "path": "builds/.gitignore",
    "content": "*.opensdf\n*.suo\n*.sdf\n*.vcxproj.user\n*.aps\n*.log\n!build"
  },
  {
    "path": "builds/Makefile.am",
    "content": "EXTRA_DIST = \\\n\tmsvc/build/buildall.bat \\\n\tmsvc/build/buildbase.bat \\\n\tmsvc/properties/ARM64.props \\\n\tmsvc/properties/Common.props \\\n\tmsvc/properties/Debug.props \\\n\tmsvc/properties/DebugDEXE.props \\\n\tmsvc/properties/DebugDLL.props \\\n\tmsvc/properties/DebugLEXE.props \\\n\tmsvc/properties/DebugLIB.props \\\n\tmsvc/properties/DebugLTCG.props \\\n\tmsvc/properties/DebugSEXE.props \\\n\tmsvc/properties/DLL.props \\\n\tmsvc/properties/EXE.props \\\n\tmsvc/properties/LIB.props \\\n\tmsvc/properties/Link.props \\\n\tmsvc/properties/LTCG.props \\\n\tmsvc/properties/Messages.props \\\n\tmsvc/properties/Output.props \\\n\tmsvc/properties/Release.props \\\n\tmsvc/properties/ReleaseDEXE.props \\\n\tmsvc/properties/ReleaseDLL.props \\\n\tmsvc/properties/ReleaseLEXE.props \\\n\tmsvc/properties/ReleaseLIB.props \\\n\tmsvc/properties/ReleaseLTCG.props \\\n\tmsvc/properties/ReleaseSEXE.props \\\n\tmsvc/properties/ARM64.props \\\n\tmsvc/properties/Win32.props \\\n\tmsvc/properties/x64.props \\\n\tmsvc/resource.h \\\n\tmsvc/resource.rc \\\n\tmsvc/version.h \\\n\tmsvc/vs2010/libsodium/libsodium.props \\\n\tmsvc/vs2010/libsodium/libsodium.vcxproj \\\n\tmsvc/vs2010/libsodium/libsodium.vcxproj.filters \\\n\tmsvc/vs2010/libsodium/libsodium.xml \\\n\tmsvc/vs2010/libsodium.import.props \\\n\tmsvc/vs2010/libsodium.import.xml \\\n\tmsvc/vs2010/libsodium.sln \\\n\tmsvc/vs2012/libsodium/libsodium.props \\\n\tmsvc/vs2012/libsodium/libsodium.vcxproj \\\n\tmsvc/vs2012/libsodium/libsodium.vcxproj.filters \\\n\tmsvc/vs2012/libsodium/libsodium.xml \\\n\tmsvc/vs2012/libsodium.import.props \\\n\tmsvc/vs2012/libsodium.import.xml \\\n\tmsvc/vs2012/libsodium.sln \\\n\tmsvc/vs2013/libsodium/libsodium.props \\\n\tmsvc/vs2013/libsodium/libsodium.vcxproj \\\n\tmsvc/vs2013/libsodium/libsodium.vcxproj.filters \\\n\tmsvc/vs2013/libsodium/libsodium.xml \\\n\tmsvc/vs2013/libsodium.import.props \\\n\tmsvc/vs2013/libsodium.import.xml \\\n\tmsvc/vs2013/libsodium.sln \\\n\tmsvc/vs2015/libsodium/libsodium.props \\\n\tmsvc/vs2015/libsodium/libsodium.vcxproj \\\n\tmsvc/vs2015/libsodium/libsodium.vcxproj.filters \\\n\tmsvc/vs2015/libsodium/libsodium.xml \\\n\tmsvc/vs2015/libsodium.import.props \\\n\tmsvc/vs2015/libsodium.import.xml \\\n\tmsvc/vs2015/libsodium.sln \\\n\tmsvc/vs2017/libsodium/libsodium.props \\\n\tmsvc/vs2017/libsodium/libsodium.vcxproj \\\n\tmsvc/vs2017/libsodium/libsodium.vcxproj.filters \\\n\tmsvc/vs2017/libsodium/libsodium.xml \\\n\tmsvc/vs2017/libsodium.import.props \\\n\tmsvc/vs2017/libsodium.import.xml \\\n\tmsvc/vs2017/libsodium.sln \\\n\tmsvc/vs2019/libsodium/libsodium.props \\\n\tmsvc/vs2019/libsodium/libsodium.vcxproj \\\n\tmsvc/vs2019/libsodium/libsodium.vcxproj.filters \\\n\tmsvc/vs2019/libsodium/libsodium.xml \\\n\tmsvc/vs2019/libsodium.import.props \\\n\tmsvc/vs2019/libsodium.import.xml \\\n\tmsvc/vs2019/libsodium.sln \\\n\tmsvc/vs2022/libsodium/libsodium.props \\\n\tmsvc/vs2022/libsodium/libsodium.vcxproj \\\n\tmsvc/vs2022/libsodium/libsodium.vcxproj.filters \\\n\tmsvc/vs2022/libsodium/libsodium.xml \\\n\tmsvc/vs2022/libsodium.import.props \\\n\tmsvc/vs2022/libsodium.import.xml \\\n\tmsvc/vs2022/libsodium.sln \\\n\tmsvc/vs2026/libsodium/libsodium.props \\\n\tmsvc/vs2026/libsodium/libsodium.vcxproj \\\n\tmsvc/vs2026/libsodium/libsodium.vcxproj.filters \\\n\tmsvc/vs2026/libsodium/libsodium.xml \\\n\tmsvc/vs2026/libsodium.import.props \\\n\tmsvc/vs2026/libsodium.import.xml \\\n\tmsvc/vs2026/libsodium.sln\n"
  },
  {
    "path": "builds/msvc/build/buildall.bat",
    "content": "@ECHO OFF\n\nCALL buildbase.bat ..\\vs2026\\libsodium.sln 18\nECHO.\nCALL buildbase.bat ..\\vs2022\\libsodium.sln 17\nECHO.\nCALL buildbase.bat ..\\vs2019\\libsodium.sln 16\nECHO.\nCALL buildbase.bat ..\\vs2017\\libsodium.sln 15\nECHO.\nCALL buildbase.bat ..\\vs2015\\libsodium.sln 14\nECHO.\nCALL buildbase.bat ..\\vs2013\\libsodium.sln 12\nECHO.\nCALL buildbase.bat ..\\vs2012\\libsodium.sln 11\nECHO.\nCALL buildbase.bat ..\\vs2010\\libsodium.sln 10\nECHO.\n\nPAUSE\n"
  },
  {
    "path": "builds/msvc/build/buildbase.bat",
    "content": "@ECHO OFF\nREM Usage: [buildbase.bat ..\\vs2026\\mysolution.sln 18]\n\nSETLOCAL enabledelayedexpansion\n\nSET solution=%1\nSET version=%2\nSET log=build_%version%.log\nSET tools=Microsoft Visual Studio %version%.0\\VC\\vcvarsall.bat\n\nIF %version% == 18 (\n  SET tools=Microsoft Visual Studio\\2026\\Enterprise\\VC\\Auxiliary\\Build\\vcvarsall.bat\n  SET environment=\"%programfiles%\\!tools!\"\n  IF NOT EXIST !environment! (\n    SET environment=\"%programfiles(x86)%\\!tools!\"\n    IF NOT EXIST !environment! (\n      SET tools=Microsoft Visual Studio\\2026\\Community\\VC\\Auxiliary\\Build\\vcvarsall.bat\n    )\n  )\n)\n\nIF %version% == 17 (\n  SET tools=Microsoft Visual Studio\\2022\\Enterprise\\VC\\Auxiliary\\Build\\vcvarsall.bat\n  SET environment=\"%programfiles%\\!tools!\"\n  IF NOT EXIST !environment! (\n    SET environment=\"%programfiles(x86)%\\!tools!\"\n    IF NOT EXIST !environment! (\n      SET tools=Microsoft Visual Studio\\2022\\Community\\VC\\Auxiliary\\Build\\vcvarsall.bat\n    )\n  )\n)\n\nIF %version% == 16 (\n  SET tools=Microsoft Visual Studio\\2019\\Enterprise\\VC\\Auxiliary\\Build\\vcvarsall.bat\n  SET environment=\"%programfiles%\\!tools!\"\n  IF NOT EXIST !environment! (\n    SET environment=\"%programfiles(x86)%\\!tools!\"\n    IF NOT EXIST !environment! (\n      SET tools=Microsoft Visual Studio\\2019\\Community\\VC\\Auxiliary\\Build\\vcvarsall.bat\n    )\n  )\n)\n\nIF %version% == 15 (\n  SET tools=Microsoft Visual Studio\\2017\\Enterprise\\VC\\Auxiliary\\Build\\vcvarsall.bat\n  SET environment=\"%programfiles%\\!tools!\"\n  IF NOT EXIST !environment! (\n    SET environment=\"%programfiles(x86)%\\!tools!\"\n    IF NOT EXIST !environment! (\n      SET tools=Microsoft Visual Studio\\2017\\Community\\VC\\Auxiliary\\Build\\vcvarsall.bat\n    )\n  )\n)\nSET environment=\"%programfiles%\\!tools!\"\nIF NOT EXIST !environment! SET environment=\"%programfiles(x86)%\\!tools!\"\n\nECHO Environment: !environment!\n\nIF NOT EXIST !environment! GOTO no_tools\n\nECHO Building: %solution%\n\nCALL !environment! x86 > nul 2>&1\nECHO Platform=x86\n\nECHO Configuration=DynDebug\nmsbuild /m /v:n /p:Configuration=DynDebug /p:Platform=Win32 %solution% >> %log%\nIF errorlevel 1 GOTO error\nECHO Configuration=DynRelease\nmsbuild /m /v:n /p:Configuration=DynRelease /p:Platform=Win32 %solution% >> %log%\nIF errorlevel 1 GOTO error\nECHO Configuration=LtcgDebug\nmsbuild /m /v:n /p:Configuration=LtcgDebug /p:Platform=Win32 %solution% >> %log%\nIF errorlevel 1 GOTO error\nECHO Configuration=LtcgRelease\nmsbuild /m /v:n /p:Configuration=LtcgRelease /p:Platform=Win32 %solution% >> %log%\nIF errorlevel 1 GOTO error\nECHO Configuration=StaticDebug\nmsbuild /m /v:n /p:Configuration=StaticDebug /p:Platform=Win32 %solution% >> %log%\nIF errorlevel 1 GOTO error\nECHO Configuration=StaticRelease\nmsbuild /m /v:n /p:Configuration=StaticRelease /p:Platform=Win32 %solution% >> %log%\nIF errorlevel 1 GOTO error\n\nENDLOCAL & SET solution=%solution% & SET version=%version% & SET log=%log% & SET tools=%tools% & SET environment=%environment%\nSETLOCAL enabledelayedexpansion\n\nCALL !environment! x86_amd64 > nul 2>&1\nECHO Platform=x64\n\nECHO Configuration=DynDebug\nmsbuild /m /v:n /p:Configuration=DynDebug /p:Platform=x64 %solution% >> %log%\nIF errorlevel 1 GOTO error\nECHO Configuration=DynRelease\nmsbuild /m /v:n /p:Configuration=DynRelease /p:Platform=x64 %solution% >> %log%\nIF errorlevel 1 GOTO error\nECHO Configuration=LtcgDebug\nmsbuild /m /v:n /p:Configuration=LtcgDebug /p:Platform=x64 %solution% >> %log%\nIF errorlevel 1 GOTO error\nECHO Configuration=LtcgRelease\nmsbuild /m /v:n /p:Configuration=LtcgRelease /p:Platform=x64 %solution% >> %log%\nIF errorlevel 1 GOTO error\nECHO Configuration=StaticDebug\nmsbuild /m /v:n /p:Configuration=StaticDebug /p:Platform=x64 %solution% >> %log%\nIF errorlevel 1 GOTO error\nECHO Configuration=StaticRelease\nmsbuild /m /v:n /p:Configuration=StaticRelease /p:Platform=x64 %solution% >> %log%\nIF errorlevel 1 GOTO error\n\n@REM Build ARM64 packages only for Visual studio 2019 and later\nIF %version% GEQ 16 (\n  ENDLOCAL & SET solution=%solution% & SET version=%version% & SET log=%log% & SET tools=%tools% & SET environment=%environment%\n  SETLOCAL enabledelayedexpansion\n\n  CALL !environment! ARM64 > nul 2>&1\n  ECHO Platform=ARM64\n\n  ECHO Configuration=DynDebug\n  msbuild /m /v:n /p:Configuration=DynDebug /p:Platform=ARM64 %solution% >> %log%\n  IF errorlevel 1 GOTO error\n  ECHO Configuration=DynRelease\n  msbuild /m /v:n /p:Configuration=DynRelease /p:Platform=ARM64 %solution% >> %log%\n  IF errorlevel 1 GOTO error\n  ECHO Configuration=LtcgDebug\n  msbuild /m /v:n /p:Configuration=LtcgDebug /p:Platform=ARM64 %solution% >> %log%\n  IF errorlevel 1 GOTO error\n  ECHO Configuration=LtcgRelease\n  msbuild /m /v:n /p:Configuration=LtcgRelease /p:Platform=ARM64 %solution% >> %log%\n  IF errorlevel 1 GOTO error\n  ECHO Configuration=StaticDebug\n  msbuild /m /v:n /p:Configuration=StaticDebug /p:Platform=ARM64 %solution% >> %log%\n  IF errorlevel 1 GOTO error\n  ECHO Configuration=StaticRelease\n  msbuild /m /v:n /p:Configuration=StaticRelease /p:Platform=ARM64 %solution% >> %log%\n  IF errorlevel 1 GOTO error\n)\n\nECHO Complete: %solution%\nGOTO end\n\n:error\nECHO *** ERROR, build terminated early, see: %log%\nECHO.\nECHO === Last errors from %log% ===\nfindstr /i /c:\"error \" /c:\"error:\" /c:\"fatal error\" %log%\nECHO.\nGOTO end\n\n:no_tools\nECHO *** ERROR, build tools not found: !tools!\n\n:end\n\n"
  },
  {
    "path": "builds/msvc/properties/ARM64.props",
    "content": "﻿<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<Project DefaultTargets=\"Build\" xmlns=\"http://schemas.microsoft.com/developer/msbuild/2003\">\n\n  <PropertyGroup>\n    <_PropertySheetDisplayName>ARM64 Settings</_PropertySheetDisplayName>\n  </PropertyGroup>\n\n  <ItemDefinitionGroup>\n    <ClCompile>\n      <PreprocessorDefinitions>WIN32;_WIN32;WIN64;_WIN64;%(PreprocessorDefinitions)</PreprocessorDefinitions>\n    </ClCompile>\n    <ResourceCompile>\n      <PreprocessorDefinitions>ARM64;%(PreprocessorDefinitions)</PreprocessorDefinitions>\n    </ResourceCompile>\n    <Link>\n      <TargetMachine>MachineARM64</TargetMachine>\n    </Link>\n    <Lib>\n      <AdditionalOptions>/MACHINE:ARM64 %(AdditionalOptions)</AdditionalOptions>\n    </Lib>\n  </ItemDefinitionGroup>\n\n</Project>\n"
  },
  {
    "path": "builds/msvc/properties/Common.props",
    "content": "﻿<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<Project DefaultTargets=\"Build\" xmlns=\"http://schemas.microsoft.com/developer/msbuild/2003\">\n  \n  <PropertyGroup>\n    <_PropertySheetDisplayName>Common Settings</_PropertySheetDisplayName>\n    <CharacterSet>Unicode</CharacterSet>\n  </PropertyGroup>\n\n  <ImportGroup Label=\"PropertySheets\">\n    <Import Project=\"$(Platform).props\" />\n  </ImportGroup>  \n\n  <PropertyGroup>\n    <!-- VS 2026 toolsets may not define PlatformToolsetVersion. Derive it from PlatformToolset when needed. -->\n    <_SodiumToolsetVersion Condition=\"'$(PlatformToolsetVersion)' != ''\">$(PlatformToolsetVersion)</_SodiumToolsetVersion>\n    <_SodiumToolsetVersion Condition=\"'$(PlatformToolsetVersion)' == '' and $(PlatformToolset.StartsWith('v'))\">$(PlatformToolset.Substring(1))</_SodiumToolsetVersion>\n    <_SodiumToolsetVersion Condition=\"'$(_SodiumToolsetVersion)' == ''\">0</_SodiumToolsetVersion>\n  </PropertyGroup>\n\n  <ItemDefinitionGroup>\n    <ClCompile>\n      <MultiProcessorCompilation>true</MultiProcessorCompilation>\n      <PreprocessorDefinitions>UNICODE;_UNICODE;%(PreprocessorDefinitions)</PreprocessorDefinitions>\n      <WarningLevel>Level3</WarningLevel>\n    </ClCompile>\n  </ItemDefinitionGroup>\n\n  <ItemDefinitionGroup Condition=\"$(_SodiumToolsetVersion) &gt;= 143\">\n    <ClCompile>\n      <AdditionalOptions>/UndefIntOverflow- %(AdditionalOptions)</AdditionalOptions>\n    </ClCompile>\n  </ItemDefinitionGroup>\n\n</Project>\n"
  },
  {
    "path": "builds/msvc/properties/DLL.props",
    "content": "﻿<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<Project DefaultTargets=\"Build\" xmlns=\"http://schemas.microsoft.com/developer/msbuild/2003\">\n    \n  <PropertyGroup>\n    <_PropertySheetDisplayName>Dynamic Library</_PropertySheetDisplayName>\n    <DefaultLinkage>dynamic</DefaultLinkage>\n    <TargetExt>.dll</TargetExt>\n  </PropertyGroup>\n  \n  <ItemDefinitionGroup>\n    <ClCompile>\n      <PreprocessorDefinitions>_DLL;_WINDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>\n    </ClCompile>\n  </ItemDefinitionGroup>\n\n</Project>"
  },
  {
    "path": "builds/msvc/properties/Debug.props",
    "content": "﻿<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<Project DefaultTargets=\"Build\" xmlns=\"http://schemas.microsoft.com/developer/msbuild/2003\">\n  \n  <ImportGroup Label=\"PropertySheets\">\n    <Import Project=\"Common.props\" />\n  </ImportGroup>\n  \n  <PropertyGroup>\n    <_PropertySheetDisplayName>Debug Settings</_PropertySheetDisplayName>\n    <DebugOrRelease>Debug</DebugOrRelease>\n  </PropertyGroup>\n  \n  <ItemDefinitionGroup>\n    <ClCompile>\n      <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>\n      <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>\n      <FunctionLevelLinking>true</FunctionLevelLinking>\n      <Optimization>Disabled</Optimization>\n      <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>\n    </ClCompile>\n    <ResourceCompile>\n      <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>\n    </ResourceCompile>\n    <Link>\n      <GenerateDebugInformation>true</GenerateDebugInformation>\n    </Link>    \n  </ItemDefinitionGroup>\n  \n</Project>"
  },
  {
    "path": "builds/msvc/properties/DebugDEXE.props",
    "content": "﻿<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<Project DefaultTargets=\"Build\" xmlns=\"http://schemas.microsoft.com/developer/msbuild/2003\">\n\n  <PropertyGroup>\n    <_PropertySheetDisplayName>Console Debug Dynamic</_PropertySheetDisplayName>\n    <DefaultLinkage>dynamic</DefaultLinkage>\n  </PropertyGroup>\n\n  <ImportGroup Label=\"PropertySheets\">\n    <Import Project=\"Debug.props\" />\n    <Import Project=\"EXE.props\" />\n  </ImportGroup>\n  \n  <ItemDefinitionGroup>\n    <ClCompile>\n      <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>\n      <LinkIncremental>true</LinkIncremental>\n    </ClCompile>\n  </ItemDefinitionGroup>\n  \n</Project>"
  },
  {
    "path": "builds/msvc/properties/DebugDLL.props",
    "content": "﻿<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<Project DefaultTargets=\"Build\" xmlns=\"http://schemas.microsoft.com/developer/msbuild/2003\">\n\n  <PropertyGroup>\n    <_PropertySheetDisplayName>Dynamic Debug Library</_PropertySheetDisplayName>\n  </PropertyGroup>\n\n  <ImportGroup Label=\"PropertySheets\">\n    <Import Project=\"Debug.props\" />\n    <Import Project=\"DLL.props\" />\n  </ImportGroup>\n\n  <ItemDefinitionGroup>\n    <ClCompile>\n      <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>\n      <LinkIncremental>true</LinkIncremental>\n    </ClCompile>\n  </ItemDefinitionGroup>\n  \n</Project>"
  },
  {
    "path": "builds/msvc/properties/DebugLEXE.props",
    "content": "﻿<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<Project DefaultTargets=\"Build\" xmlns=\"http://schemas.microsoft.com/developer/msbuild/2003\">\n\n  <PropertyGroup>\n    <_PropertySheetDisplayName>Console Debug Link Time Code Generation</_PropertySheetDisplayName>\n  </PropertyGroup>\n\n  <ImportGroup Label=\"PropertySheets\">\n    <Import Project=\"Debug.props\" />\n    <Import Project=\"Link.props\" />\n    <Import Project=\"EXE.props\" />\n  </ImportGroup>\n\n  <ItemDefinitionGroup>\n    <ClCompile>\n      <RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>\n    </ClCompile>\n  </ItemDefinitionGroup>\n\n</Project>"
  },
  {
    "path": "builds/msvc/properties/DebugLIB.props",
    "content": "﻿<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<Project DefaultTargets=\"Build\" xmlns=\"http://schemas.microsoft.com/developer/msbuild/2003\">\n  \n  <PropertyGroup>\n    <_PropertySheetDisplayName>Static Debug Library</_PropertySheetDisplayName>\n  </PropertyGroup>\n  \n  <ImportGroup Label=\"PropertySheets\">\n    <Import Project=\"Debug.props\" />\n    <Import Project=\"LIB.props\" />\n  </ImportGroup>\n  \n  <ItemDefinitionGroup>\n    <ClCompile>\n      <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>\n      <RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>\n      <LinkIncremental>true</LinkIncremental>\n    </ClCompile>\n  </ItemDefinitionGroup>\n\n</Project>\n"
  },
  {
    "path": "builds/msvc/properties/DebugLTCG.props",
    "content": "﻿<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<Project DefaultTargets=\"Build\" xmlns=\"http://schemas.microsoft.com/developer/msbuild/2003\">\n  \n  <PropertyGroup>\n    <_PropertySheetDisplayName>Static Debug Link Time Code Generation Library</_PropertySheetDisplayName>\n  </PropertyGroup>\n  \n  <ImportGroup Label=\"PropertySheets\">\n    <Import Project=\"Debug.props\" />\n    <Import Project=\"LTCG.props\" />\n  </ImportGroup>\n\n  <ItemDefinitionGroup>\n    <ClCompile>\n      <DebugInformationFormat>OldStyle</DebugInformationFormat>\n      <RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>\n    </ClCompile>\n  </ItemDefinitionGroup>\n\n</Project>"
  },
  {
    "path": "builds/msvc/properties/DebugSEXE.props",
    "content": "﻿<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<Project DefaultTargets=\"Build\" xmlns=\"http://schemas.microsoft.com/developer/msbuild/2003\">\n\n  <PropertyGroup>\n    <_PropertySheetDisplayName>Console Debug Static</_PropertySheetDisplayName>\n    <DefaultLinkage>static</DefaultLinkage>\n  </PropertyGroup>\n\n  <ImportGroup Label=\"PropertySheets\">\n    <Import Project=\"Debug.props\" />\n    <Import Project=\"EXE.props\" />\n  </ImportGroup>\n\n  <ItemDefinitionGroup>\n    <ClCompile>\n      <RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>\n      <LinkIncremental>true</LinkIncremental>\n    </ClCompile>\n  </ItemDefinitionGroup>\n\n</Project>"
  },
  {
    "path": "builds/msvc/properties/EXE.props",
    "content": "﻿<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<Project DefaultTargets=\"Build\" xmlns=\"http://schemas.microsoft.com/developer/msbuild/2003\">\n    \n  <PropertyGroup>\n    <_PropertySheetDisplayName>Console Application</_PropertySheetDisplayName>\n    <IsExe>true</IsExe>    \n  </PropertyGroup>\n\n  <ItemDefinitionGroup>\n    <ClCompile>\n      <PreprocessorDefinitions>_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>\n    </ClCompile>\n    <Link>\n      <SubSystem>Console</SubSystem>\n    </Link>\n  </ItemDefinitionGroup>\n</Project>"
  },
  {
    "path": "builds/msvc/properties/LIB.props",
    "content": "﻿<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<Project DefaultTargets=\"Build\" xmlns=\"http://schemas.microsoft.com/developer/msbuild/2003\">\n  \n  <PropertyGroup>\n    <_PropertySheetDisplayName>Static Library</_PropertySheetDisplayName>\n    <DefaultLinkage>static</DefaultLinkage>\n    <TargetExt>.lib</TargetExt>\n  </PropertyGroup>\n  \n  <ItemDefinitionGroup>\n    <ClCompile>\n      <PreprocessorDefinitions>_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>\n    </ClCompile>\n  </ItemDefinitionGroup>\n\n</Project>"
  },
  {
    "path": "builds/msvc/properties/LTCG.props",
    "content": "﻿<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<Project DefaultTargets=\"Build\" xmlns=\"http://schemas.microsoft.com/developer/msbuild/2003\">\n\n  <PropertyGroup>\n    <_PropertySheetDisplayName>Link Time Code Generation Library</_PropertySheetDisplayName>\n  </PropertyGroup>\n  \n  <ImportGroup Label=\"PropertySheets\">\n    <Import Project=\"LIB.props\" />\n    <Import Project=\"Link.props\" />\n  </ImportGroup>\n\n</Project>"
  },
  {
    "path": "builds/msvc/properties/Link.props",
    "content": "﻿<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<Project DefaultTargets=\"Build\" xmlns=\"http://schemas.microsoft.com/developer/msbuild/2003\">\n   \n  <PropertyGroup>\n    <_PropertySheetDisplayName>Link Time Code Generation Settings</_PropertySheetDisplayName>\n    <DefaultLinkage>ltcg</DefaultLinkage>\n  </PropertyGroup>\n\n  <ItemDefinitionGroup>\n    <ClCompile>\n      <WholeProgramOptimization>true</WholeProgramOptimization>\n    </ClCompile>\n    <Link>\n      <LinkTimeCodeGeneration>UseLinkTimeCodeGeneration</LinkTimeCodeGeneration>\n    </Link>\n    <Lib>\n      <LinkTimeCodeGeneration>true</LinkTimeCodeGeneration>\n    </Lib>\n  </ItemDefinitionGroup>\n\n</Project>"
  },
  {
    "path": "builds/msvc/properties/Messages.props",
    "content": "﻿<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<Project DefaultTargets=\"Build\" xmlns=\"http://schemas.microsoft.com/developer/msbuild/2003\">\n\n  <PropertyGroup>\n    <_PropertySheetDisplayName>Build Messages</_PropertySheetDisplayName>\n  </PropertyGroup>\n\n  <Target Name=\"ConfigInfo\" BeforeTargets=\"PrepareForBuild\">\n    <Message Text=\"ConfigurationType : $(ConfigurationType)\" Importance=\"high\"/>\n    <Message Text=\"Configuration     : $(Configuration)\" Importance=\"high\"/>\n    <Message Text=\"PlatformToolset   : $(PlatformToolset)\" Importance=\"high\"/>\n    <Message Text=\"TargetPath        : $(TargetPath)\" Importance=\"high\"/>\n  </Target>\n\n</Project>"
  },
  {
    "path": "builds/msvc/properties/Output.props",
    "content": "﻿<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<Project DefaultTargets=\"Build\" xmlns=\"http://schemas.microsoft.com/developer/msbuild/2003\">\n \n  <PropertyGroup>\n    <_PropertySheetDisplayName>Output Settings</_PropertySheetDisplayName>\n    <!-- BuildRoot, RepoRoot, SourceRoot, DebugOrRelease and DefaultLinkage are custom props and should therefore not be referenced from *.import.props or nuget target files. -->\n    <BuildRoot>$(ProjectDir)..\\..\\</BuildRoot>\n    <RepoRoot>$(ProjectDir)..\\..\\..\\..\\</RepoRoot>\n    <SourceRoot>$(ProjectDir)..\\..\\..\\..\\..\\</SourceRoot>    \n    <OutDir>$(ProjectDir)..\\..\\..\\..\\bin\\$(PlatformName)\\$(DebugOrRelease)\\$(PlatformToolset)\\$(DefaultLinkage)\\</OutDir>\n    <IntDir>$(ProjectDir)..\\..\\..\\..\\obj\\$(TargetName)\\$(PlatformName)\\$(DebugOrRelease)\\$(PlatformToolset)\\$(DefaultLinkage)\\</IntDir>\n    <TargetDir>$(OutDir)</TargetDir>\n    <TargetName>$(TargetName)</TargetName>\n    <TargetPath>$(TargetDir)$(TargetName)$(TargetExt)</TargetPath>\n  </PropertyGroup>\n  \n  <ItemDefinitionGroup>\n    <Link>\n      <ImportLibrary>$(OutDir)$(TargetName).lib</ImportLibrary>\n    </Link>\n    <BuildLog>\n      <Path>$(OutDir)$(TargetName).log</Path>\n    </BuildLog> \n  </ItemDefinitionGroup>\n  \n  <ImportGroup Label=\"PropertySheets\">\n    <Import Project=\"Messages.props\" />\n  </ImportGroup>    \n  \n</Project>"
  },
  {
    "path": "builds/msvc/properties/Release.props",
    "content": "﻿<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<Project DefaultTargets=\"Build\" xmlns=\"http://schemas.microsoft.com/developer/msbuild/2003\">\n\n  <ImportGroup Label=\"PropertySheets\">\n    <Import Project=\"Common.props\" />\n  </ImportGroup>\n  \n  <PropertyGroup>\n    <_PropertySheetDisplayName>Release Settings</_PropertySheetDisplayName>\n    <DebugOrRelease>Release</DebugOrRelease>\n    <LinkIncremental>false</LinkIncremental>\n  </PropertyGroup>\n  \n  <ItemDefinitionGroup>\n    <ClCompile>\n      <AdditionalOptions>/Oy- %(AdditionalOptions)</AdditionalOptions>\n      <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>\n      <FunctionLevelLinking>true</FunctionLevelLinking>\n      <IntrinsicFunctions>true</IntrinsicFunctions>\n      <InlineFunctionExpansion>AnySuitable</InlineFunctionExpansion>\n      <MinimalRebuild>false</MinimalRebuild>\n      <Optimization>MaxSpeed</Optimization>\n      <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>\n    </ClCompile>\n    <ResourceCompile>\n      <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>\n    </ResourceCompile>\n    <Link>\n      <EnableCOMDATFolding>true</EnableCOMDATFolding>\n      <!--<GenerateDebugInformation>true</GenerateDebugInformation>-->\n      <OptimizeReferences>true</OptimizeReferences>\n    </Link> \n  </ItemDefinitionGroup>\n\n  <ItemDefinitionGroup Condition=\"'$(Processor)' == 'x86'\">\n    <ClCompile>\n      <EnableEnhancedInstructionSet>StreamingSIMDExtensions2</EnableEnhancedInstructionSet>\n    </ClCompile>\n  </ItemDefinitionGroup>\n\n</Project>\n"
  },
  {
    "path": "builds/msvc/properties/ReleaseDEXE.props",
    "content": "﻿<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<Project DefaultTargets=\"Build\" xmlns=\"http://schemas.microsoft.com/developer/msbuild/2003\">\n\n  <PropertyGroup>\n    <_PropertySheetDisplayName>Console Release Dynamic</_PropertySheetDisplayName>\n    <DefaultLinkage>dynamic</DefaultLinkage>\n  </PropertyGroup>\n\n  <ImportGroup Label=\"PropertySheets\">\n    <Import Project=\"Release.props\" />\n    <Import Project=\"EXE.props\" />\n  </ImportGroup>\n\n  <ItemDefinitionGroup>\n    <ClCompile>\n      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>\n    </ClCompile>\n  </ItemDefinitionGroup>\n\n</Project>"
  },
  {
    "path": "builds/msvc/properties/ReleaseDLL.props",
    "content": "﻿<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<Project DefaultTargets=\"Build\" xmlns=\"http://schemas.microsoft.com/developer/msbuild/2003\">\n  \n  <PropertyGroup>\n    <_PropertySheetDisplayName>Dynamic Release Library</_PropertySheetDisplayName>\n  </PropertyGroup>\n\n  <ImportGroup Label=\"PropertySheets\">\n    <Import Project=\"Release.props\" />\n    <Import Project=\"DLL.props\" />\n  </ImportGroup>\n  \n  <ItemDefinitionGroup>\n    <ClCompile>\n      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>\n    </ClCompile>\n  </ItemDefinitionGroup>\n\n</Project>"
  },
  {
    "path": "builds/msvc/properties/ReleaseLEXE.props",
    "content": "﻿<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<Project DefaultTargets=\"Build\" xmlns=\"http://schemas.microsoft.com/developer/msbuild/2003\">\n\n  <PropertyGroup>\n    <_PropertySheetDisplayName>Console Release Link Time Code Generation</_PropertySheetDisplayName>\n  </PropertyGroup>\n\n  <ImportGroup Label=\"PropertySheets\">\n    <Import Project=\"Release.props\" />\n    <Import Project=\"Link.props\" />\n    <Import Project=\"EXE.props\" />\n  </ImportGroup>\n\n  <ItemDefinitionGroup>\n    <ClCompile>\n      <RuntimeLibrary>MultiThreaded</RuntimeLibrary>\n    </ClCompile>\n  </ItemDefinitionGroup>\n\n</Project>"
  },
  {
    "path": "builds/msvc/properties/ReleaseLIB.props",
    "content": "﻿<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<Project DefaultTargets=\"Build\" xmlns=\"http://schemas.microsoft.com/developer/msbuild/2003\">\n\n  <PropertyGroup>\n    <_PropertySheetDisplayName>Static Release Library</_PropertySheetDisplayName>\n  </PropertyGroup>\n  \n  <ImportGroup Label=\"PropertySheets\">\n    <Import Project=\"Release.props\" />\n    <Import Project=\"LIB.props\" />\n  </ImportGroup>\n\n  <ItemDefinitionGroup>\n    <ClCompile>\n      <RuntimeLibrary>MultiThreaded</RuntimeLibrary>\n    </ClCompile>\n  </ItemDefinitionGroup>\n\n</Project>"
  },
  {
    "path": "builds/msvc/properties/ReleaseLTCG.props",
    "content": "﻿<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<Project DefaultTargets=\"Build\" xmlns=\"http://schemas.microsoft.com/developer/msbuild/2003\">\n\n  <PropertyGroup>\n    <_PropertySheetDisplayName>Static Release Link Time Code Generation Library</_PropertySheetDisplayName>\n  </PropertyGroup>\n  \n  <ImportGroup Label=\"PropertySheets\">\n    <Import Project=\"Release.props\" />\n    <Import Project=\"LTCG.props\" />\n  </ImportGroup>\n\n  <ItemDefinitionGroup>\n    <ClCompile>\n      <RuntimeLibrary>MultiThreaded</RuntimeLibrary>\n    </ClCompile>\n  </ItemDefinitionGroup>\n\n</Project>"
  },
  {
    "path": "builds/msvc/properties/ReleaseSEXE.props",
    "content": "﻿<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<Project DefaultTargets=\"Build\" xmlns=\"http://schemas.microsoft.com/developer/msbuild/2003\">\n\n  <PropertyGroup>\n    <_PropertySheetDisplayName>Console Release Static</_PropertySheetDisplayName>\n    <DefaultLinkage>static</DefaultLinkage>\n  </PropertyGroup>\n\n  <ImportGroup Label=\"PropertySheets\">\n    <Import Project=\"Release.props\" />\n    <Import Project=\"EXE.props\" />\n  </ImportGroup>\n\n  <ItemDefinitionGroup>\n    <ClCompile>\n      <RuntimeLibrary>MultiThreaded</RuntimeLibrary>\n    </ClCompile>\n  </ItemDefinitionGroup>\n\n</Project>"
  },
  {
    "path": "builds/msvc/properties/Win32.props",
    "content": "﻿<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<Project DefaultTargets=\"Build\" xmlns=\"http://schemas.microsoft.com/developer/msbuild/2003\">\n  \n  <PropertyGroup>\n    <_PropertySheetDisplayName>x86 Settings</_PropertySheetDisplayName>\n  </PropertyGroup>\n  \n  <ItemDefinitionGroup>\n    <ClCompile>\n      <PreprocessorDefinitions>WIN32;_WIN32;%(PreprocessorDefinitions)</PreprocessorDefinitions>\n    </ClCompile>\n    <ResourceCompile>\n      <PreprocessorDefinitions>Win32;%(PreprocessorDefinitions)</PreprocessorDefinitions>\n    </ResourceCompile>\n    <Link>\n      <TargetMachine>MachineX86</TargetMachine>\n    </Link>\n    <Lib>\n      <AdditionalOptions>/MACHINE:X86 %(AdditionalOptions)</AdditionalOptions>\n    </Lib>\n  </ItemDefinitionGroup>\n\n</Project>\n"
  },
  {
    "path": "builds/msvc/properties/x64.props",
    "content": "﻿<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<Project DefaultTargets=\"Build\" xmlns=\"http://schemas.microsoft.com/developer/msbuild/2003\">\n  \n  <PropertyGroup>\n    <_PropertySheetDisplayName>x64 Settings</_PropertySheetDisplayName>\n  </PropertyGroup>\n    \n  <ItemDefinitionGroup>\n    <ClCompile>\n      <!-- Note that Win64 defines may cause WIN32 to become defined when using windows headers, \n      but _WIN32 implies Windows 32 bit or above. If the standard headers are not included \n      these are sometimes required even for 64 bit builds and should never cause harm there.-->\n      <PreprocessorDefinitions>WIN32;_WIN32;WIN64;_WIN64;%(PreprocessorDefinitions)</PreprocessorDefinitions>\n    </ClCompile>\n    <ResourceCompile>\n      <PreprocessorDefinitions>x64;%(PreprocessorDefinitions)</PreprocessorDefinitions>\n    </ResourceCompile>\n    <Link>\n      <TargetMachine>MachineX64</TargetMachine>\n    </Link>\n    <Lib>\n      <AdditionalOptions>/MACHINE:X64 %(AdditionalOptions)</AdditionalOptions>\n    </Lib>\n  </ItemDefinitionGroup>\n\n</Project>\n"
  },
  {
    "path": "builds/msvc/resource.h",
    "content": "//{{NO_DEPENDENCIES}}\n// Microsoft Visual C++ generated include file.\n// Used by Resource.rc\n\n// Next default values for new objects\n//\n#ifdef APSTUDIO_INVOKED\n#ifndef APSTUDIO_READONLY_SYMBOLS\n#define _APS_NEXT_RESOURCE_VALUE        101\n#define _APS_NEXT_COMMAND_VALUE         40001\n#define _APS_NEXT_CONTROL_VALUE         1001\n#define _APS_NEXT_SYMED_VALUE           101\n#endif\n#endif\n"
  },
  {
    "path": "builds/msvc/resource.rc",
    "content": "// Microsoft Visual C++ generated resource script.\r\n//\r\n#include \"resource.h\"\r\n#include \"windows.h\"\r\n\r\n//specify the version numbers for the dll's\r\n#define LIBSODIUM_VERSION_STRING \"1.0.23.0\"\r\n#define LIBSODIUM_VERSION_BIN 1,0,23,0\r\n\r\n//specify the product name for the dlls based on the platform we are compiling for\r\n#if defined(x64)\r\n    #define LIBSODIUM_PRODUCT_NAME \"libsodium (x64)\"\r\n#elif defined(Win32)\r\n    #define LIBSODIUM_PRODUCT_NAME \"libsodium (x86)\"\r\n#elif defined(ARM64)\r\n    #define LIBSODIUM_PRODUCT_NAME \"libsodium (arm64)\"\r\n#else\r\n    #define LIBSODIUM_PRODUCT_NAME \"libsodium\"\r\n#endif\r\n\r\n/////////////////////////////////////////////////////////////////////////////\r\n// English (United States) resources\r\n\r\n#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)\r\nLANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US\r\n\r\n/////////////////////////////////////////////////////////////////////////////\r\n//\r\n// Version\r\n//\r\n\r\nVS_VERSION_INFO VERSIONINFO\r\n FILEVERSION LIBSODIUM_VERSION_BIN\r\n PRODUCTVERSION LIBSODIUM_VERSION_BIN\r\n FILEFLAGSMASK 0x3fL\r\n#ifdef _DEBUG\r\n FILEFLAGS 0x1L\r\n#else\r\n FILEFLAGS 0x0L\r\n#endif\r\n FILEOS 0x40004L\r\n FILETYPE 0x7L\r\n FILESUBTYPE 0x0L\r\nBEGIN\r\n    BLOCK \"StringFileInfo\"\r\n    BEGIN\r\n        BLOCK \"040904b0\"\r\n        BEGIN\r\n            VALUE \"FileDescription\", \"The Sodium crypto library (libsodium)\"\r\n            VALUE \"FileVersion\", LIBSODIUM_VERSION_STRING\r\n            VALUE \"InternalName\", \"libsodium\"\r\n            VALUE \"LegalCopyright\", \"Copyright (c) 2013-2024 The libsodium authors.\"\r\n            VALUE \"OriginalFilename\", \"libsodium.dll\"\r\n            VALUE \"ProductName\", LIBSODIUM_PRODUCT_NAME\r\n            VALUE \"ProductVersion\", LIBSODIUM_VERSION_STRING\r\n        END\r\n    END\r\n    BLOCK \"VarFileInfo\"\r\n    BEGIN\r\n        VALUE \"Translation\", 0x409, 1200\r\n    END\r\nEND\r\n\r\n#endif    // English (United States) resources\r\n/////////////////////////////////////////////////////////////////////////////\r\n"
  },
  {
    "path": "builds/msvc/version.h",
    "content": "\n#ifndef sodium_version_H\n#define sodium_version_H\n\n#include \"export.h\"\n\n#define SODIUM_VERSION_STRING \"1.0.23\"\n\n#define SODIUM_LIBRARY_VERSION_MAJOR 30\n#define SODIUM_LIBRARY_VERSION_MINOR 0\n\n\n#ifdef __cplusplus\nextern \"C\" {\n#endif\n\nSODIUM_EXPORT\nconst char *sodium_version_string(void);\n\nSODIUM_EXPORT\nint         sodium_library_version_major(void);\n\nSODIUM_EXPORT\nint         sodium_library_version_minor(void);\n\nSODIUM_EXPORT\nint         sodium_library_minimal(void);\n\n#ifdef __cplusplus\n}\n#endif\n\n#endif\n"
  },
  {
    "path": "builds/msvc/vs2010/libsodium/libsodium.props",
    "content": "﻿<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<Project DefaultTargets=\"Build\" xmlns=\"http://schemas.microsoft.com/developer/msbuild/2003\">\n\n  <PropertyGroup Label=\"Globals\">\n    <_PropertySheetDisplayName>Libsodium Common Settings</_PropertySheetDisplayName>\n    <CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>\n    <RunCodeAnalysis>false</RunCodeAnalysis>\n  </PropertyGroup>\n\n  <!-- User Interface -->\n\n  <ItemGroup Label=\"BuildOptionsExtension\">\n    <PropertyPageSchema Include=\"$(MSBuildThisFileDirectory)$(ProjectName).xml\" />\n  </ItemGroup>\n\n  <!-- Configuration -->\n\n  <ItemDefinitionGroup>\n    <PreBuildEvent>\n      <Command>copy \"$(BuildRoot)version.h\" \"$(RepoRoot)src\\libsodium\\include\\sodium\\\"</Command>\n    </PreBuildEvent>\n    <ClCompile>\n      <AdditionalIncludeDirectories>$(RepoRoot)src\\libsodium\\include;$(RepoRoot)src\\libsodium\\include\\sodium\\;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\n      <DisableSpecificWarnings>4146;4244;%(DisableSpecificWarnings)</DisableSpecificWarnings>\n      <EnablePREfast>false</EnablePREfast>\n      <PreprocessorDefinitions>inline=__inline;NATIVE_LITTLE_ENDIAN;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>\n      <PreprocessorDefinitions Condition=\"'$(ConfigurationType)' == 'StaticLibrary'\">SODIUM_STATIC;%(PreprocessorDefinitions)</PreprocessorDefinitions>\n      <PreprocessorDefinitions Condition=\"'$(ConfigurationType)' == 'DynamicLibrary'\">SODIUM_DLL_EXPORT;%(PreprocessorDefinitions)</PreprocessorDefinitions>\n      <PreprocessorDefinitions Condition=\"'$(Option-amd64asm)' == 'true'\">HAVE_AMD64_ASM;%(PreprocessorDefinitions)</PreprocessorDefinitions>\n    </ClCompile>\n  </ItemDefinitionGroup>\n\n  <!-- Messages -->\n\n  <Target Name=\"CustomInfo\" BeforeTargets=\"PrepareForBuild\">\n    <Message Text=\"Will copy $(BuildRoot)version.h -&gt; $(RepoRoot)src\\libsodium\\include\\sodium\\version.h\" Importance=\"high\"/>\n  </Target>\n\n  <Target Name=\"OptionInfo\" BeforeTargets=\"PrepareForBuild\">\n    <Message Text=\"Option-amd64asm   : $(Option-amd64asm)\" Importance=\"high\"/>\n  </Target>\n\n  <ItemDefinitionGroup>\n    <Link>\n      <AdditionalDependencies>advapi32.lib</AdditionalDependencies>\n    </Link>\n  </ItemDefinitionGroup>\n</Project>\n"
  },
  {
    "path": "builds/msvc/vs2010/libsodium/libsodium.vcxproj",
    "content": "﻿<?xml version=\"1.0\" encoding=\"utf-8\"?>\r\n<Project DefaultTargets=\"Build\" ToolsVersion=\"4.0\"\r\n  xmlns=\"http://schemas.microsoft.com/developer/msbuild/2003\">\r\n  <PropertyGroup Label=\"Globals\">\r\n    <ProjectGuid>{A185B162-6CB6-4502-B03F-B56F7699A8D9}</ProjectGuid>\r\n    <ProjectName>libsodium</ProjectName>\r\n    <PlatformToolset>v100</PlatformToolset>\r\n  </PropertyGroup>\r\n  <ItemGroup Label=\"ProjectConfigurations\">\r\n    <ProjectConfiguration Include=\"DebugDLL|Win32\">\r\n      <Configuration>DebugDLL</Configuration>\r\n      <Platform>Win32</Platform>\r\n    </ProjectConfiguration>\r\n    <ProjectConfiguration Include=\"DebugDLL|x64\">\r\n      <Configuration>DebugDLL</Configuration>\r\n      <Platform>x64</Platform>\r\n    </ProjectConfiguration>\r\n    <ProjectConfiguration Include=\"ReleaseDLL|Win32\">\r\n      <Configuration>ReleaseDLL</Configuration>\r\n      <Platform>Win32</Platform>\r\n    </ProjectConfiguration>\r\n    <ProjectConfiguration Include=\"ReleaseDLL|x64\">\r\n      <Configuration>ReleaseDLL</Configuration>\r\n      <Platform>x64</Platform>\r\n    </ProjectConfiguration>\r\n    <ProjectConfiguration Include=\"DebugLIB|Win32\">\r\n      <Configuration>DebugLIB</Configuration>\r\n      <Platform>Win32</Platform>\r\n    </ProjectConfiguration>\r\n    <ProjectConfiguration Include=\"DebugLIB|x64\">\r\n      <Configuration>DebugLIB</Configuration>\r\n      <Platform>x64</Platform>\r\n    </ProjectConfiguration>\r\n    <ProjectConfiguration Include=\"ReleaseLIB|Win32\">\r\n      <Configuration>ReleaseLIB</Configuration>\r\n      <Platform>Win32</Platform>\r\n    </ProjectConfiguration>\r\n    <ProjectConfiguration Include=\"ReleaseLIB|x64\">\r\n      <Configuration>ReleaseLIB</Configuration>\r\n      <Platform>x64</Platform>\r\n    </ProjectConfiguration>\r\n    <ProjectConfiguration Include=\"DebugLTCG|Win32\">\r\n      <Configuration>DebugLTCG</Configuration>\r\n      <Platform>Win32</Platform>\r\n    </ProjectConfiguration>\r\n    <ProjectConfiguration Include=\"DebugLTCG|x64\">\r\n      <Configuration>DebugLTCG</Configuration>\r\n      <Platform>x64</Platform>\r\n    </ProjectConfiguration>\r\n    <ProjectConfiguration Include=\"ReleaseLTCG|Win32\">\r\n      <Configuration>ReleaseLTCG</Configuration>\r\n      <Platform>Win32</Platform>\r\n    </ProjectConfiguration>\r\n    <ProjectConfiguration Include=\"ReleaseLTCG|x64\">\r\n      <Configuration>ReleaseLTCG</Configuration>\r\n      <Platform>x64</Platform>\r\n    </ProjectConfiguration>\r\n  </ItemGroup>\r\n  <PropertyGroup Label=\"Configuration\">\r\n    <ConfigurationType Condition=\"$(Configuration.IndexOf('DLL')) == -1\">StaticLibrary</ConfigurationType>\r\n    <ConfigurationType Condition=\"$(Configuration.IndexOf('DLL')) != -1\">DynamicLibrary</ConfigurationType>\r\n  </PropertyGroup>\r\n  <Import Project=\"$(VCTargetsPath)\\Microsoft.Cpp.Default.props\" />\r\n  <Import Project=\"$(VCTargetsPath)\\Microsoft.Cpp.props\" />\r\n  <ImportGroup Label=\"PropertySheets\">\r\n    <Import Project=\"$(ProjectDir)..\\..\\properties\\$(Configuration).props\" />\r\n    <Import Project=\"$(ProjectDir)..\\..\\properties\\Output.props\" />\r\n    <Import Project=\"$(ProjectDir)$(ProjectName).props\" />\r\n  </ImportGroup>\r\n  <ItemGroup>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_generichash\\crypto_generichash.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_generichash\\blake2b\\generichash_blake2.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_generichash\\blake2b\\ref\\blake2b-compress-ref.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_generichash\\blake2b\\ref\\blake2b-compress-ssse3.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_generichash\\blake2b\\ref\\blake2b-compress-avx2.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_generichash\\blake2b\\ref\\blake2b-compress-sse41.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_generichash\\blake2b\\ref\\generichash_blake2b.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_generichash\\blake2b\\ref\\blake2b-ref.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_kx\\crypto_kx.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_sign\\crypto_sign.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_sign\\ed25519\\sign_ed25519.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_sign\\ed25519\\ref10\\sign.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_sign\\ed25519\\ref10\\keypair.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_sign\\ed25519\\ref10\\open.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_secretbox\\crypto_secretbox.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_secretbox\\crypto_secretbox_easy.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_secretbox\\xsalsa20poly1305\\secretbox_xsalsa20poly1305.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_secretbox\\xchacha20poly1305\\secretbox_xchacha20poly1305.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\crypto_pwhash.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\blake2b-long.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\argon2-fill-block-wasm32.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\argon2-core.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\argon2-fill-block-avx512f.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\argon2-fill-block-ref.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\argon2-fill-block-ssse3.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\pwhash_argon2i.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\argon2-fill-block-neon.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\pwhash_argon2id.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\argon2.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\argon2-fill-block-avx2.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\argon2-encoding.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\scryptsalsa208sha256\\scrypt_platform.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\scryptsalsa208sha256\\crypto_scrypt-common.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\scryptsalsa208sha256\\pwhash_scryptsalsa208sha256.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\scryptsalsa208sha256\\pbkdf2-sha256.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\scryptsalsa208sha256\\nosse\\pwhash_scryptsalsa208sha256_nosse.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\scryptsalsa208sha256\\sse\\pwhash_scryptsalsa208sha256_sse.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_xof\\shake128\\xof_shake128.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_xof\\shake128\\ref\\shake128_ref.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_xof\\shake256\\xof_shake256.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_xof\\shake256\\ref\\shake256_ref.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_xof\\turboshake256\\xof_turboshake256.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_xof\\turboshake256\\ref\\turboshake256_ref.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_xof\\turboshake128\\xof_turboshake128.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_xof\\turboshake128\\ref\\turboshake128_ref.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_verify\\verify.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_auth\\crypto_auth.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_auth\\hmacsha512\\auth_hmacsha512.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_auth\\hmacsha512256\\auth_hmacsha512256.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_auth\\hmacsha256\\auth_hmacsha256.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_kdf\\crypto_kdf.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_kdf\\blake2b\\kdf_blake2b.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_kdf\\hkdf\\kdf_hkdf_sha256.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_kdf\\hkdf\\kdf_hkdf_sha512.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_shorthash\\crypto_shorthash.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_shorthash\\siphash24\\shorthash_siphash24.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_shorthash\\siphash24\\shorthash_siphashx24.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_shorthash\\siphash24\\ref\\shorthash_siphashx24_ref.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_shorthash\\siphash24\\ref\\shorthash_siphash24_ref.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_scalarmult\\crypto_scalarmult.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_scalarmult\\ristretto255\\ref10\\scalarmult_ristretto255_ref10.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_scalarmult\\ed25519\\ref10\\scalarmult_ed25519_ref10.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_scalarmult\\curve25519\\scalarmult_curve25519.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_scalarmult\\curve25519\\sandy2x\\curve25519_sandy2x.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_scalarmult\\curve25519\\sandy2x\\fe_frombytes_sandy2x.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_scalarmult\\curve25519\\sandy2x\\fe51_invert.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_scalarmult\\curve25519\\ref10\\x25519_ref10.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_onetimeauth\\crypto_onetimeauth.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_onetimeauth\\poly1305\\onetimeauth_poly1305.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_onetimeauth\\poly1305\\donna\\poly1305_donna.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_onetimeauth\\poly1305\\sse2\\poly1305_sse2.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\randombytes\\randombytes.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\randombytes\\sysrandom\\randombytes_sysrandom.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\randombytes\\internal\\randombytes_internal_random.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_box\\crypto_box_easy.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_box\\crypto_box_seal.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_box\\crypto_box.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_box\\curve25519xsalsa20poly1305\\box_curve25519xsalsa20poly1305.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_box\\curve25519xchacha20poly1305\\box_curve25519xchacha20poly1305.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_box\\curve25519xchacha20poly1305\\box_seal_curve25519xchacha20poly1305.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\sodium\\codecs.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\sodium\\runtime.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\sodium\\core.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\sodium\\utils.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\sodium\\version.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_ipcrypt\\ipcrypt_armcrypto.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_ipcrypt\\crypto_ipcrypt.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_ipcrypt\\ipcrypt_soft.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_ipcrypt\\ipcrypt_aesni.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\crypto_stream.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\xchacha20\\stream_xchacha20.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\chacha20\\stream_chacha20.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\chacha20\\ref\\chacha20_ref.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\chacha20\\dolbeau\\chacha20_dolbeau-avx2.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\chacha20\\dolbeau\\chacha20_dolbeau-ssse3.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\salsa20\\stream_salsa20.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\salsa20\\ref\\salsa20_ref.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\salsa20\\xmm6int\\salsa20_xmm6int-avx2.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\salsa20\\xmm6int\\salsa20_xmm6int-sse2.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\salsa20\\xmm6\\salsa20_xmm6.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\salsa2012\\stream_salsa2012.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\salsa2012\\ref\\stream_salsa2012_ref.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\salsa208\\stream_salsa208.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\salsa208\\ref\\stream_salsa208_ref.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\xsalsa20\\stream_xsalsa20.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_hash\\crypto_hash.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_hash\\sha512\\hash_sha512.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_hash\\sha512\\cp\\hash_sha512_cp.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_hash\\sha3\\hash_sha3.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_hash\\sha256\\hash_sha256.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_hash\\sha256\\cp\\hash_sha256_cp.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_aead\\xchacha20poly1305\\aead_xchacha20poly1305.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_aead\\aegis128l\\aegis128l_soft.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_aead\\aegis128l\\aead_aegis128l.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_aead\\aegis128l\\aegis128l_aesni.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_aead\\aegis128l\\aegis128l_armcrypto.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_aead\\aegis256\\aead_aegis256.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_aead\\aegis256\\aegis256_soft.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_aead\\aegis256\\aegis256_armcrypto.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_aead\\aegis256\\aegis256_aesni.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_aead\\aes256gcm\\aead_aes256gcm.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_aead\\aes256gcm\\aesni\\aead_aes256gcm_aesni.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_aead\\aes256gcm\\armcrypto\\aead_aes256gcm_armcrypto.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_aead\\chacha20poly1305\\aead_chacha20poly1305.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_kem\\crypto_kem.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_kem\\xwing\\kem_xwing.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_kem\\mlkem768\\kem_mlkem768.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_kem\\mlkem768\\ref\\kem_mlkem768_ref.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_secretstream\\xchacha20poly1305\\secretstream_xchacha20poly1305.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_core\\keccak1600\\keccak1600.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_core\\keccak1600\\ref\\keccak1600_ref.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_core\\keccak1600\\armsha3\\keccak1600_armsha3.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_core\\salsa\\ref\\core_salsa_ref.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_core\\hchacha20\\core_hchacha20.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_core\\hsalsa20\\core_hsalsa20.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_core\\hsalsa20\\ref2\\core_hsalsa20_ref2.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_core\\softaes\\softaes.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_core\\ed25519\\core_ed25519.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_core\\ed25519\\core_ristretto255.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_core\\ed25519\\core_h2c.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_core\\ed25519\\ref10\\ed25519_ref10.c\" />\r\n  </ItemGroup>\r\n  <ItemGroup>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_generichash\\blake2b\\ref\\blake2b-load-sse2.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_generichash\\blake2b\\ref\\blake2b-load-avx2.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_generichash\\blake2b\\ref\\blake2.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_generichash\\blake2b\\ref\\blake2b-compress-ssse3.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_generichash\\blake2b\\ref\\blake2b-load-sse41.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_generichash\\blake2b\\ref\\blake2b-compress-avx2.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_generichash\\blake2b\\ref\\blake2b-compress-sse41.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_sign\\ed25519\\ref10\\sign_ed25519_ref10.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_stream_salsa2012.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_auth.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\utils.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_core_hchacha20.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_aead_aegis256.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_hash_sha512.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\core.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\export.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_core_salsa20.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_shorthash_siphash24.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\randombytes.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_hash_sha256.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_stream.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_auth_hmacsha512.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_xof_shake128.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_aead_xchacha20poly1305.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_stream_salsa20.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_onetimeauth_poly1305.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_kem_mlkem768.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_scalarmult_ristretto255.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_kx.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_hash.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_sign.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_kdf.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_auth_hmacsha256.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_box.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_verify_32.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_core_ristretto255.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_stream_xchacha20.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_core_salsa208.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_auth_hmacsha512256.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_xof_turboshake128.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_aead_aegis128l.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_aead_chacha20poly1305.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\randombytes_sysrandom.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_xof_turboshake256.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\runtime.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_stream_salsa208.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_aead_aes256gcm.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_core_salsa2012.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_secretbox_xchacha20poly1305.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_kem.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_core_keccak1600.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_scalarmult.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_pwhash.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_verify_16.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_stream_chacha20.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_stream_xsalsa20.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_core_hsalsa20.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_kdf_blake2b.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_scalarmult_curve25519.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_xof_shake256.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_shorthash.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_kdf_hkdf_sha256.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_pwhash_argon2id.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_secretstream_xchacha20poly1305.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_pwhash_scryptsalsa208sha256.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_hash_sha3.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_kem_xwing.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_sign_ed25519.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_onetimeauth.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_verify_64.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_box_curve25519xchacha20poly1305.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_core_ed25519.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_kdf_hkdf_sha512.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_pwhash_argon2i.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\randombytes_internal_random.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_generichash.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_secretbox_xsalsa20poly1305.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_secretbox.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_scalarmult_ed25519.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_ipcrypt.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_box_curve25519xsalsa20poly1305.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_generichash_blake2b.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\private\\ed25519_ref10.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\private\\softaes.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\private\\quirks.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\private\\ed25519_ref10_fe_25_5.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\private\\ed25519_ref10_fe_51.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\private\\sse2_64_32.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\private\\asm_cet.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\private\\common.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\private\\mutex.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\private\\chacha20_ietf_ext.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\private\\implementations.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\blamka-round-ref.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\blamka-round-avx2.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\blamka-round-neon.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\blamka-round-wasm32.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\argon2.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\blamka-round-ssse3.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\argon2-encoding.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\blake2b-long.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\blamka-round-avx512f.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\argon2-core.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\scryptsalsa208sha256\\crypto_scrypt.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\scryptsalsa208sha256\\pbkdf2-sha256.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_xof\\shake128\\ref\\shake128_ref.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_xof\\shake256\\ref\\shake256_ref.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_xof\\turboshake256\\ref\\turboshake256_ref.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_xof\\turboshake128\\ref\\turboshake128_ref.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_shorthash\\siphash24\\ref\\shorthash_siphash_ref.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_scalarmult\\curve25519\\scalarmult_curve25519.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_scalarmult\\curve25519\\sandy2x\\consts_namespace.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_scalarmult\\curve25519\\sandy2x\\ladder_namespace.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_scalarmult\\curve25519\\sandy2x\\fe.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_scalarmult\\curve25519\\sandy2x\\ladder.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_scalarmult\\curve25519\\sandy2x\\fe51.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_scalarmult\\curve25519\\sandy2x\\curve25519_sandy2x.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_scalarmult\\curve25519\\sandy2x\\fe51_namespace.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_scalarmult\\curve25519\\ref10\\x25519_ref10.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_onetimeauth\\poly1305\\onetimeauth_poly1305.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_onetimeauth\\poly1305\\donna\\poly1305_donna.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_onetimeauth\\poly1305\\donna\\poly1305_donna64.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_onetimeauth\\poly1305\\donna\\poly1305_donna32.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_onetimeauth\\poly1305\\sse2\\poly1305_sse2.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_ipcrypt\\ipcrypt_soft.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_ipcrypt\\ipcrypt_aesni.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_ipcrypt\\ipcrypt_armcrypto.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_ipcrypt\\implementations.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\chacha20\\stream_chacha20.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\chacha20\\ref\\chacha20_ref.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\chacha20\\dolbeau\\u4.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\chacha20\\dolbeau\\chacha20_dolbeau-ssse3.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\chacha20\\dolbeau\\u0.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\chacha20\\dolbeau\\u1.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\chacha20\\dolbeau\\chacha20_dolbeau-avx2.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\chacha20\\dolbeau\\u8.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\salsa20\\stream_salsa20.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\salsa20\\ref\\salsa20_ref.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\salsa20\\xmm6int\\u4.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\salsa20\\xmm6int\\u0.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\salsa20\\xmm6int\\u1.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\salsa20\\xmm6int\\salsa20_xmm6int-avx2.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\salsa20\\xmm6int\\u8.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\salsa20\\xmm6int\\salsa20_xmm6int-sse2.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\salsa20\\xmm6\\salsa20_xmm6-asm_namespace.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\salsa20\\xmm6\\salsa20_xmm6.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_aead\\aegis128l\\aegis128l_armcrypto.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_aead\\aegis128l\\aegis128l_aesni.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_aead\\aegis128l\\aegis128l_soft.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_aead\\aegis128l\\aegis128l_common.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_aead\\aegis128l\\implementations.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_aead\\aegis256\\aegis256_aesni.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_aead\\aegis256\\aegis256_common.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_aead\\aegis256\\implementations.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_aead\\aegis256\\aegis256_armcrypto.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_aead\\aegis256\\aegis256_soft.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_kem\\mlkem768\\ref\\kem_mlkem768_ref.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_core\\keccak1600\\ref\\keccak1600_ref.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_core\\keccak1600\\armsha3\\keccak1600_armsha3.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_core\\ed25519\\core_h2c.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_core\\ed25519\\ref10\\fe_25_5\\constants.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_core\\ed25519\\ref10\\fe_25_5\\fe.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_core\\ed25519\\ref10\\fe_25_5\\base2.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_core\\ed25519\\ref10\\fe_25_5\\base.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_core\\ed25519\\ref10\\fe_51\\constants.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_core\\ed25519\\ref10\\fe_51\\fe.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_core\\ed25519\\ref10\\fe_51\\base2.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_core\\ed25519\\ref10\\fe_51\\base.h\" />\r\n    <ClInclude Include=\"..\\..\\resource.h\" />\r\n  </ItemGroup>\r\n  <ItemGroup>\r\n    <ResourceCompile Include=\"..\\..\\resource.rc\">\r\n    </ResourceCompile>\r\n  </ItemGroup>\r\n  <Import Project=\"$(VCTargetsPath)\\Microsoft.Cpp.targets\" />\r\n  <ImportGroup Label=\"ExtensionTargets\">\r\n  </ImportGroup>\r\n</Project>\r\n"
  },
  {
    "path": "builds/msvc/vs2010/libsodium/libsodium.vcxproj.filters",
    "content": "﻿<?xml version=\"1.0\" encoding=\"utf-8\"?>\r\n<Project ToolsVersion=\"4.0\" xmlns=\"http://schemas.microsoft.com/developer/msbuild/2003\">\r\n  <ItemGroup>\r\n    <None Include=\"..\\..\\..\\..\\packaging\\nuget\\package.bat\">\r\n      <Filter>packaging</Filter>\r\n    </None>\r\n    <None Include=\"..\\..\\..\\..\\packaging\\nuget\\package.gsl\">\r\n      <Filter>packaging</Filter>\r\n    </None>\r\n    <None Include=\"..\\..\\..\\..\\packaging\\nuget\\package.nuspec\">\r\n      <Filter>packaging</Filter>\r\n    </None>\r\n    <None Include=\"..\\..\\..\\..\\packaging\\nuget\\package.targets\">\r\n      <Filter>packaging</Filter>\r\n    </None>\r\n    <None Include=\"..\\..\\..\\..\\packaging\\nuget\\package.config\">\r\n      <Filter>packaging</Filter>\r\n    </None>\r\n    <Xml Include=\"..\\..\\..\\..\\packaging\\nuget\\package.xml\">\r\n      <Filter>packaging</Filter>\r\n    </Xml>\r\n  </ItemGroup>\r\n  <ItemGroup>\r\n    <ResourceCompile Include=\"..\\..\\resource.rc\" />\r\n  </ItemGroup>\r\n  <ItemGroup>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_generichash\\crypto_generichash.c\">\r\n      <Filter>crypto_generichash</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_generichash\\blake2b\\generichash_blake2.c\">\r\n      <Filter>crypto_generichash\\blake2b</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_generichash\\blake2b\\ref\\blake2b-compress-ref.c\">\r\n      <Filter>crypto_generichash\\blake2b\\ref</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_generichash\\blake2b\\ref\\blake2b-compress-ssse3.c\">\r\n      <Filter>crypto_generichash\\blake2b\\ref</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_generichash\\blake2b\\ref\\blake2b-compress-avx2.c\">\r\n      <Filter>crypto_generichash\\blake2b\\ref</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_generichash\\blake2b\\ref\\blake2b-compress-sse41.c\">\r\n      <Filter>crypto_generichash\\blake2b\\ref</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_generichash\\blake2b\\ref\\generichash_blake2b.c\">\r\n      <Filter>crypto_generichash\\blake2b\\ref</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_generichash\\blake2b\\ref\\blake2b-ref.c\">\r\n      <Filter>crypto_generichash\\blake2b\\ref</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_kx\\crypto_kx.c\">\r\n      <Filter>crypto_kx</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_sign\\crypto_sign.c\">\r\n      <Filter>crypto_sign</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_sign\\ed25519\\sign_ed25519.c\">\r\n      <Filter>crypto_sign\\ed25519</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_sign\\ed25519\\ref10\\sign.c\">\r\n      <Filter>crypto_sign\\ed25519\\ref10</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_sign\\ed25519\\ref10\\keypair.c\">\r\n      <Filter>crypto_sign\\ed25519\\ref10</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_sign\\ed25519\\ref10\\open.c\">\r\n      <Filter>crypto_sign\\ed25519\\ref10</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_secretbox\\crypto_secretbox.c\">\r\n      <Filter>crypto_secretbox</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_secretbox\\crypto_secretbox_easy.c\">\r\n      <Filter>crypto_secretbox</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_secretbox\\xsalsa20poly1305\\secretbox_xsalsa20poly1305.c\">\r\n      <Filter>crypto_secretbox\\xsalsa20poly1305</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_secretbox\\xchacha20poly1305\\secretbox_xchacha20poly1305.c\">\r\n      <Filter>crypto_secretbox\\xchacha20poly1305</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\crypto_pwhash.c\">\r\n      <Filter>crypto_pwhash</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\blake2b-long.c\">\r\n      <Filter>crypto_pwhash\\argon2</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\argon2-fill-block-wasm32.c\">\r\n      <Filter>crypto_pwhash\\argon2</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\argon2-core.c\">\r\n      <Filter>crypto_pwhash\\argon2</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\argon2-fill-block-avx512f.c\">\r\n      <Filter>crypto_pwhash\\argon2</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\argon2-fill-block-ref.c\">\r\n      <Filter>crypto_pwhash\\argon2</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\argon2-fill-block-ssse3.c\">\r\n      <Filter>crypto_pwhash\\argon2</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\pwhash_argon2i.c\">\r\n      <Filter>crypto_pwhash\\argon2</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\argon2-fill-block-neon.c\">\r\n      <Filter>crypto_pwhash\\argon2</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\pwhash_argon2id.c\">\r\n      <Filter>crypto_pwhash\\argon2</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\argon2.c\">\r\n      <Filter>crypto_pwhash\\argon2</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\argon2-fill-block-avx2.c\">\r\n      <Filter>crypto_pwhash\\argon2</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\argon2-encoding.c\">\r\n      <Filter>crypto_pwhash\\argon2</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\scryptsalsa208sha256\\scrypt_platform.c\">\r\n      <Filter>crypto_pwhash\\scryptsalsa208sha256</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\scryptsalsa208sha256\\crypto_scrypt-common.c\">\r\n      <Filter>crypto_pwhash\\scryptsalsa208sha256</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\scryptsalsa208sha256\\pwhash_scryptsalsa208sha256.c\">\r\n      <Filter>crypto_pwhash\\scryptsalsa208sha256</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\scryptsalsa208sha256\\pbkdf2-sha256.c\">\r\n      <Filter>crypto_pwhash\\scryptsalsa208sha256</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\scryptsalsa208sha256\\nosse\\pwhash_scryptsalsa208sha256_nosse.c\">\r\n      <Filter>crypto_pwhash\\scryptsalsa208sha256\\nosse</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\scryptsalsa208sha256\\sse\\pwhash_scryptsalsa208sha256_sse.c\">\r\n      <Filter>crypto_pwhash\\scryptsalsa208sha256\\sse</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_xof\\shake128\\xof_shake128.c\">\r\n      <Filter>crypto_xof\\shake128</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_xof\\shake128\\ref\\shake128_ref.c\">\r\n      <Filter>crypto_xof\\shake128\\ref</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_xof\\shake256\\xof_shake256.c\">\r\n      <Filter>crypto_xof\\shake256</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_xof\\shake256\\ref\\shake256_ref.c\">\r\n      <Filter>crypto_xof\\shake256\\ref</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_xof\\turboshake256\\xof_turboshake256.c\">\r\n      <Filter>crypto_xof\\turboshake256</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_xof\\turboshake256\\ref\\turboshake256_ref.c\">\r\n      <Filter>crypto_xof\\turboshake256\\ref</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_xof\\turboshake128\\xof_turboshake128.c\">\r\n      <Filter>crypto_xof\\turboshake128</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_xof\\turboshake128\\ref\\turboshake128_ref.c\">\r\n      <Filter>crypto_xof\\turboshake128\\ref</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_verify\\verify.c\">\r\n      <Filter>crypto_verify</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_auth\\crypto_auth.c\">\r\n      <Filter>crypto_auth</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_auth\\hmacsha512\\auth_hmacsha512.c\">\r\n      <Filter>crypto_auth\\hmacsha512</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_auth\\hmacsha512256\\auth_hmacsha512256.c\">\r\n      <Filter>crypto_auth\\hmacsha512256</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_auth\\hmacsha256\\auth_hmacsha256.c\">\r\n      <Filter>crypto_auth\\hmacsha256</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_kdf\\crypto_kdf.c\">\r\n      <Filter>crypto_kdf</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_kdf\\blake2b\\kdf_blake2b.c\">\r\n      <Filter>crypto_kdf\\blake2b</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_kdf\\hkdf\\kdf_hkdf_sha256.c\">\r\n      <Filter>crypto_kdf\\hkdf</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_kdf\\hkdf\\kdf_hkdf_sha512.c\">\r\n      <Filter>crypto_kdf\\hkdf</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_shorthash\\crypto_shorthash.c\">\r\n      <Filter>crypto_shorthash</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_shorthash\\siphash24\\shorthash_siphash24.c\">\r\n      <Filter>crypto_shorthash\\siphash24</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_shorthash\\siphash24\\shorthash_siphashx24.c\">\r\n      <Filter>crypto_shorthash\\siphash24</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_shorthash\\siphash24\\ref\\shorthash_siphashx24_ref.c\">\r\n      <Filter>crypto_shorthash\\siphash24\\ref</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_shorthash\\siphash24\\ref\\shorthash_siphash24_ref.c\">\r\n      <Filter>crypto_shorthash\\siphash24\\ref</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_scalarmult\\crypto_scalarmult.c\">\r\n      <Filter>crypto_scalarmult</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_scalarmult\\ristretto255\\ref10\\scalarmult_ristretto255_ref10.c\">\r\n      <Filter>crypto_scalarmult\\ristretto255\\ref10</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_scalarmult\\ed25519\\ref10\\scalarmult_ed25519_ref10.c\">\r\n      <Filter>crypto_scalarmult\\ed25519\\ref10</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_scalarmult\\curve25519\\scalarmult_curve25519.c\">\r\n      <Filter>crypto_scalarmult\\curve25519</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_scalarmult\\curve25519\\sandy2x\\curve25519_sandy2x.c\">\r\n      <Filter>crypto_scalarmult\\curve25519\\sandy2x</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_scalarmult\\curve25519\\sandy2x\\fe_frombytes_sandy2x.c\">\r\n      <Filter>crypto_scalarmult\\curve25519\\sandy2x</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_scalarmult\\curve25519\\sandy2x\\fe51_invert.c\">\r\n      <Filter>crypto_scalarmult\\curve25519\\sandy2x</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_scalarmult\\curve25519\\ref10\\x25519_ref10.c\">\r\n      <Filter>crypto_scalarmult\\curve25519\\ref10</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_onetimeauth\\crypto_onetimeauth.c\">\r\n      <Filter>crypto_onetimeauth</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_onetimeauth\\poly1305\\onetimeauth_poly1305.c\">\r\n      <Filter>crypto_onetimeauth\\poly1305</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_onetimeauth\\poly1305\\donna\\poly1305_donna.c\">\r\n      <Filter>crypto_onetimeauth\\poly1305\\donna</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_onetimeauth\\poly1305\\sse2\\poly1305_sse2.c\">\r\n      <Filter>crypto_onetimeauth\\poly1305\\sse2</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\randombytes\\randombytes.c\">\r\n      <Filter>randombytes</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\randombytes\\sysrandom\\randombytes_sysrandom.c\">\r\n      <Filter>randombytes\\sysrandom</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\randombytes\\internal\\randombytes_internal_random.c\">\r\n      <Filter>randombytes\\internal</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_box\\crypto_box_easy.c\">\r\n      <Filter>crypto_box</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_box\\crypto_box_seal.c\">\r\n      <Filter>crypto_box</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_box\\crypto_box.c\">\r\n      <Filter>crypto_box</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_box\\curve25519xsalsa20poly1305\\box_curve25519xsalsa20poly1305.c\">\r\n      <Filter>crypto_box\\curve25519xsalsa20poly1305</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_box\\curve25519xchacha20poly1305\\box_curve25519xchacha20poly1305.c\">\r\n      <Filter>crypto_box\\curve25519xchacha20poly1305</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_box\\curve25519xchacha20poly1305\\box_seal_curve25519xchacha20poly1305.c\">\r\n      <Filter>crypto_box\\curve25519xchacha20poly1305</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\sodium\\codecs.c\">\r\n      <Filter>sodium</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\sodium\\runtime.c\">\r\n      <Filter>sodium</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\sodium\\core.c\">\r\n      <Filter>sodium</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\sodium\\utils.c\">\r\n      <Filter>sodium</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\sodium\\version.c\">\r\n      <Filter>sodium</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_ipcrypt\\ipcrypt_armcrypto.c\">\r\n      <Filter>crypto_ipcrypt</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_ipcrypt\\crypto_ipcrypt.c\">\r\n      <Filter>crypto_ipcrypt</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_ipcrypt\\ipcrypt_soft.c\">\r\n      <Filter>crypto_ipcrypt</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_ipcrypt\\ipcrypt_aesni.c\">\r\n      <Filter>crypto_ipcrypt</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\crypto_stream.c\">\r\n      <Filter>crypto_stream</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\xchacha20\\stream_xchacha20.c\">\r\n      <Filter>crypto_stream\\xchacha20</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\chacha20\\stream_chacha20.c\">\r\n      <Filter>crypto_stream\\chacha20</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\chacha20\\ref\\chacha20_ref.c\">\r\n      <Filter>crypto_stream\\chacha20\\ref</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\chacha20\\dolbeau\\chacha20_dolbeau-avx2.c\">\r\n      <Filter>crypto_stream\\chacha20\\dolbeau</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\chacha20\\dolbeau\\chacha20_dolbeau-ssse3.c\">\r\n      <Filter>crypto_stream\\chacha20\\dolbeau</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\salsa20\\stream_salsa20.c\">\r\n      <Filter>crypto_stream\\salsa20</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\salsa20\\ref\\salsa20_ref.c\">\r\n      <Filter>crypto_stream\\salsa20\\ref</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\salsa20\\xmm6int\\salsa20_xmm6int-avx2.c\">\r\n      <Filter>crypto_stream\\salsa20\\xmm6int</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\salsa20\\xmm6int\\salsa20_xmm6int-sse2.c\">\r\n      <Filter>crypto_stream\\salsa20\\xmm6int</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\salsa20\\xmm6\\salsa20_xmm6.c\">\r\n      <Filter>crypto_stream\\salsa20\\xmm6</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\salsa2012\\stream_salsa2012.c\">\r\n      <Filter>crypto_stream\\salsa2012</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\salsa2012\\ref\\stream_salsa2012_ref.c\">\r\n      <Filter>crypto_stream\\salsa2012\\ref</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\salsa208\\stream_salsa208.c\">\r\n      <Filter>crypto_stream\\salsa208</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\salsa208\\ref\\stream_salsa208_ref.c\">\r\n      <Filter>crypto_stream\\salsa208\\ref</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\xsalsa20\\stream_xsalsa20.c\">\r\n      <Filter>crypto_stream\\xsalsa20</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_hash\\crypto_hash.c\">\r\n      <Filter>crypto_hash</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_hash\\sha512\\hash_sha512.c\">\r\n      <Filter>crypto_hash\\sha512</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_hash\\sha512\\cp\\hash_sha512_cp.c\">\r\n      <Filter>crypto_hash\\sha512\\cp</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_hash\\sha3\\hash_sha3.c\">\r\n      <Filter>crypto_hash\\sha3</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_hash\\sha256\\hash_sha256.c\">\r\n      <Filter>crypto_hash\\sha256</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_hash\\sha256\\cp\\hash_sha256_cp.c\">\r\n      <Filter>crypto_hash\\sha256\\cp</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_aead\\xchacha20poly1305\\aead_xchacha20poly1305.c\">\r\n      <Filter>crypto_aead\\xchacha20poly1305</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_aead\\aegis128l\\aegis128l_soft.c\">\r\n      <Filter>crypto_aead\\aegis128l</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_aead\\aegis128l\\aead_aegis128l.c\">\r\n      <Filter>crypto_aead\\aegis128l</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_aead\\aegis128l\\aegis128l_aesni.c\">\r\n      <Filter>crypto_aead\\aegis128l</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_aead\\aegis128l\\aegis128l_armcrypto.c\">\r\n      <Filter>crypto_aead\\aegis128l</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_aead\\aegis256\\aead_aegis256.c\">\r\n      <Filter>crypto_aead\\aegis256</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_aead\\aegis256\\aegis256_soft.c\">\r\n      <Filter>crypto_aead\\aegis256</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_aead\\aegis256\\aegis256_armcrypto.c\">\r\n      <Filter>crypto_aead\\aegis256</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_aead\\aegis256\\aegis256_aesni.c\">\r\n      <Filter>crypto_aead\\aegis256</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_aead\\aes256gcm\\aead_aes256gcm.c\">\r\n      <Filter>crypto_aead\\aes256gcm</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_aead\\aes256gcm\\aesni\\aead_aes256gcm_aesni.c\">\r\n      <Filter>crypto_aead\\aes256gcm\\aesni</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_aead\\aes256gcm\\armcrypto\\aead_aes256gcm_armcrypto.c\">\r\n      <Filter>crypto_aead\\aes256gcm\\armcrypto</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_aead\\chacha20poly1305\\aead_chacha20poly1305.c\">\r\n      <Filter>crypto_aead\\chacha20poly1305</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_kem\\crypto_kem.c\">\r\n      <Filter>crypto_kem</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_kem\\xwing\\kem_xwing.c\">\r\n      <Filter>crypto_kem\\xwing</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_kem\\mlkem768\\kem_mlkem768.c\">\r\n      <Filter>crypto_kem\\mlkem768</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_kem\\mlkem768\\ref\\kem_mlkem768_ref.c\">\r\n      <Filter>crypto_kem\\mlkem768\\ref</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_secretstream\\xchacha20poly1305\\secretstream_xchacha20poly1305.c\">\r\n      <Filter>crypto_secretstream\\xchacha20poly1305</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_core\\keccak1600\\keccak1600.c\">\r\n      <Filter>crypto_core\\keccak1600</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_core\\keccak1600\\ref\\keccak1600_ref.c\">\r\n      <Filter>crypto_core\\keccak1600\\ref</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_core\\keccak1600\\armsha3\\keccak1600_armsha3.c\">\r\n      <Filter>crypto_core\\keccak1600\\armsha3</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_core\\salsa\\ref\\core_salsa_ref.c\">\r\n      <Filter>crypto_core\\salsa\\ref</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_core\\hchacha20\\core_hchacha20.c\">\r\n      <Filter>crypto_core\\hchacha20</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_core\\hsalsa20\\core_hsalsa20.c\">\r\n      <Filter>crypto_core\\hsalsa20</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_core\\hsalsa20\\ref2\\core_hsalsa20_ref2.c\">\r\n      <Filter>crypto_core\\hsalsa20\\ref2</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_core\\softaes\\softaes.c\">\r\n      <Filter>crypto_core\\softaes</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_core\\ed25519\\core_ed25519.c\">\r\n      <Filter>crypto_core\\ed25519</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_core\\ed25519\\core_ristretto255.c\">\r\n      <Filter>crypto_core\\ed25519</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_core\\ed25519\\core_h2c.c\">\r\n      <Filter>crypto_core\\ed25519</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_core\\ed25519\\ref10\\ed25519_ref10.c\">\r\n      <Filter>crypto_core\\ed25519\\ref10</Filter>\r\n    </ClCompile>\r\n  </ItemGroup>\r\n  <ItemGroup>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_generichash\\blake2b\\ref\\blake2b-load-sse2.h\">\r\n      <Filter>crypto_generichash\\blake2b\\ref</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_generichash\\blake2b\\ref\\blake2b-load-avx2.h\">\r\n      <Filter>crypto_generichash\\blake2b\\ref</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_generichash\\blake2b\\ref\\blake2.h\">\r\n      <Filter>crypto_generichash\\blake2b\\ref</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_generichash\\blake2b\\ref\\blake2b-compress-ssse3.h\">\r\n      <Filter>crypto_generichash\\blake2b\\ref</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_generichash\\blake2b\\ref\\blake2b-load-sse41.h\">\r\n      <Filter>crypto_generichash\\blake2b\\ref</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_generichash\\blake2b\\ref\\blake2b-compress-avx2.h\">\r\n      <Filter>crypto_generichash\\blake2b\\ref</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_generichash\\blake2b\\ref\\blake2b-compress-sse41.h\">\r\n      <Filter>crypto_generichash\\blake2b\\ref</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_sign\\ed25519\\ref10\\sign_ed25519_ref10.h\">\r\n      <Filter>crypto_sign\\ed25519\\ref10</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium.h\">\r\n      <Filter>include</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_stream_salsa2012.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_auth.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\utils.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_core_hchacha20.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_aead_aegis256.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_hash_sha512.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\core.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\export.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_core_salsa20.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_shorthash_siphash24.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\randombytes.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_hash_sha256.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_stream.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_auth_hmacsha512.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_xof_shake128.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_aead_xchacha20poly1305.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_stream_salsa20.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_onetimeauth_poly1305.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_kem_mlkem768.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_scalarmult_ristretto255.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_kx.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_hash.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_sign.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_kdf.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_auth_hmacsha256.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_box.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_verify_32.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_core_ristretto255.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_stream_xchacha20.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_core_salsa208.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_auth_hmacsha512256.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_xof_turboshake128.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_aead_aegis128l.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_aead_chacha20poly1305.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\randombytes_sysrandom.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_xof_turboshake256.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\runtime.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_stream_salsa208.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_aead_aes256gcm.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_core_salsa2012.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_secretbox_xchacha20poly1305.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_kem.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_core_keccak1600.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_scalarmult.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_pwhash.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_verify_16.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_stream_chacha20.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_stream_xsalsa20.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_core_hsalsa20.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_kdf_blake2b.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_scalarmult_curve25519.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_xof_shake256.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_shorthash.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_kdf_hkdf_sha256.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_pwhash_argon2id.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_secretstream_xchacha20poly1305.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_pwhash_scryptsalsa208sha256.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_hash_sha3.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_kem_xwing.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_sign_ed25519.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_onetimeauth.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_verify_64.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_box_curve25519xchacha20poly1305.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_core_ed25519.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_kdf_hkdf_sha512.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_pwhash_argon2i.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\randombytes_internal_random.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_generichash.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_secretbox_xsalsa20poly1305.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_secretbox.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_scalarmult_ed25519.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_ipcrypt.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_box_curve25519xsalsa20poly1305.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_generichash_blake2b.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\private\\ed25519_ref10.h\">\r\n      <Filter>include\\sodium\\private</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\private\\softaes.h\">\r\n      <Filter>include\\sodium\\private</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\private\\quirks.h\">\r\n      <Filter>include\\sodium\\private</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\private\\ed25519_ref10_fe_25_5.h\">\r\n      <Filter>include\\sodium\\private</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\private\\ed25519_ref10_fe_51.h\">\r\n      <Filter>include\\sodium\\private</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\private\\sse2_64_32.h\">\r\n      <Filter>include\\sodium\\private</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\private\\asm_cet.h\">\r\n      <Filter>include\\sodium\\private</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\private\\common.h\">\r\n      <Filter>include\\sodium\\private</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\private\\mutex.h\">\r\n      <Filter>include\\sodium\\private</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\private\\chacha20_ietf_ext.h\">\r\n      <Filter>include\\sodium\\private</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\private\\implementations.h\">\r\n      <Filter>include\\sodium\\private</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\blamka-round-ref.h\">\r\n      <Filter>crypto_pwhash\\argon2</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\blamka-round-avx2.h\">\r\n      <Filter>crypto_pwhash\\argon2</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\blamka-round-neon.h\">\r\n      <Filter>crypto_pwhash\\argon2</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\blamka-round-wasm32.h\">\r\n      <Filter>crypto_pwhash\\argon2</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\argon2.h\">\r\n      <Filter>crypto_pwhash\\argon2</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\blamka-round-ssse3.h\">\r\n      <Filter>crypto_pwhash\\argon2</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\argon2-encoding.h\">\r\n      <Filter>crypto_pwhash\\argon2</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\blake2b-long.h\">\r\n      <Filter>crypto_pwhash\\argon2</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\blamka-round-avx512f.h\">\r\n      <Filter>crypto_pwhash\\argon2</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\argon2-core.h\">\r\n      <Filter>crypto_pwhash\\argon2</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\scryptsalsa208sha256\\crypto_scrypt.h\">\r\n      <Filter>crypto_pwhash\\scryptsalsa208sha256</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\scryptsalsa208sha256\\pbkdf2-sha256.h\">\r\n      <Filter>crypto_pwhash\\scryptsalsa208sha256</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_xof\\shake128\\ref\\shake128_ref.h\">\r\n      <Filter>crypto_xof\\shake128\\ref</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_xof\\shake256\\ref\\shake256_ref.h\">\r\n      <Filter>crypto_xof\\shake256\\ref</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_xof\\turboshake256\\ref\\turboshake256_ref.h\">\r\n      <Filter>crypto_xof\\turboshake256\\ref</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_xof\\turboshake128\\ref\\turboshake128_ref.h\">\r\n      <Filter>crypto_xof\\turboshake128\\ref</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_shorthash\\siphash24\\ref\\shorthash_siphash_ref.h\">\r\n      <Filter>crypto_shorthash\\siphash24\\ref</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_scalarmult\\curve25519\\scalarmult_curve25519.h\">\r\n      <Filter>crypto_scalarmult\\curve25519</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_scalarmult\\curve25519\\sandy2x\\consts_namespace.h\">\r\n      <Filter>crypto_scalarmult\\curve25519\\sandy2x</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_scalarmult\\curve25519\\sandy2x\\ladder_namespace.h\">\r\n      <Filter>crypto_scalarmult\\curve25519\\sandy2x</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_scalarmult\\curve25519\\sandy2x\\fe.h\">\r\n      <Filter>crypto_scalarmult\\curve25519\\sandy2x</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_scalarmult\\curve25519\\sandy2x\\ladder.h\">\r\n      <Filter>crypto_scalarmult\\curve25519\\sandy2x</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_scalarmult\\curve25519\\sandy2x\\fe51.h\">\r\n      <Filter>crypto_scalarmult\\curve25519\\sandy2x</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_scalarmult\\curve25519\\sandy2x\\curve25519_sandy2x.h\">\r\n      <Filter>crypto_scalarmult\\curve25519\\sandy2x</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_scalarmult\\curve25519\\sandy2x\\fe51_namespace.h\">\r\n      <Filter>crypto_scalarmult\\curve25519\\sandy2x</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_scalarmult\\curve25519\\ref10\\x25519_ref10.h\">\r\n      <Filter>crypto_scalarmult\\curve25519\\ref10</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_onetimeauth\\poly1305\\onetimeauth_poly1305.h\">\r\n      <Filter>crypto_onetimeauth\\poly1305</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_onetimeauth\\poly1305\\donna\\poly1305_donna.h\">\r\n      <Filter>crypto_onetimeauth\\poly1305\\donna</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_onetimeauth\\poly1305\\donna\\poly1305_donna64.h\">\r\n      <Filter>crypto_onetimeauth\\poly1305\\donna</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_onetimeauth\\poly1305\\donna\\poly1305_donna32.h\">\r\n      <Filter>crypto_onetimeauth\\poly1305\\donna</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_onetimeauth\\poly1305\\sse2\\poly1305_sse2.h\">\r\n      <Filter>crypto_onetimeauth\\poly1305\\sse2</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_ipcrypt\\ipcrypt_soft.h\">\r\n      <Filter>crypto_ipcrypt</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_ipcrypt\\ipcrypt_aesni.h\">\r\n      <Filter>crypto_ipcrypt</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_ipcrypt\\ipcrypt_armcrypto.h\">\r\n      <Filter>crypto_ipcrypt</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_ipcrypt\\implementations.h\">\r\n      <Filter>crypto_ipcrypt</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\chacha20\\stream_chacha20.h\">\r\n      <Filter>crypto_stream\\chacha20</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\chacha20\\ref\\chacha20_ref.h\">\r\n      <Filter>crypto_stream\\chacha20\\ref</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\chacha20\\dolbeau\\u4.h\">\r\n      <Filter>crypto_stream\\chacha20\\dolbeau</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\chacha20\\dolbeau\\chacha20_dolbeau-ssse3.h\">\r\n      <Filter>crypto_stream\\chacha20\\dolbeau</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\chacha20\\dolbeau\\u0.h\">\r\n      <Filter>crypto_stream\\chacha20\\dolbeau</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\chacha20\\dolbeau\\u1.h\">\r\n      <Filter>crypto_stream\\chacha20\\dolbeau</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\chacha20\\dolbeau\\chacha20_dolbeau-avx2.h\">\r\n      <Filter>crypto_stream\\chacha20\\dolbeau</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\chacha20\\dolbeau\\u8.h\">\r\n      <Filter>crypto_stream\\chacha20\\dolbeau</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\salsa20\\stream_salsa20.h\">\r\n      <Filter>crypto_stream\\salsa20</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\salsa20\\ref\\salsa20_ref.h\">\r\n      <Filter>crypto_stream\\salsa20\\ref</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\salsa20\\xmm6int\\u4.h\">\r\n      <Filter>crypto_stream\\salsa20\\xmm6int</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\salsa20\\xmm6int\\u0.h\">\r\n      <Filter>crypto_stream\\salsa20\\xmm6int</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\salsa20\\xmm6int\\u1.h\">\r\n      <Filter>crypto_stream\\salsa20\\xmm6int</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\salsa20\\xmm6int\\salsa20_xmm6int-avx2.h\">\r\n      <Filter>crypto_stream\\salsa20\\xmm6int</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\salsa20\\xmm6int\\u8.h\">\r\n      <Filter>crypto_stream\\salsa20\\xmm6int</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\salsa20\\xmm6int\\salsa20_xmm6int-sse2.h\">\r\n      <Filter>crypto_stream\\salsa20\\xmm6int</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\salsa20\\xmm6\\salsa20_xmm6-asm_namespace.h\">\r\n      <Filter>crypto_stream\\salsa20\\xmm6</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\salsa20\\xmm6\\salsa20_xmm6.h\">\r\n      <Filter>crypto_stream\\salsa20\\xmm6</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_aead\\aegis128l\\aegis128l_armcrypto.h\">\r\n      <Filter>crypto_aead\\aegis128l</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_aead\\aegis128l\\aegis128l_aesni.h\">\r\n      <Filter>crypto_aead\\aegis128l</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_aead\\aegis128l\\aegis128l_soft.h\">\r\n      <Filter>crypto_aead\\aegis128l</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_aead\\aegis128l\\aegis128l_common.h\">\r\n      <Filter>crypto_aead\\aegis128l</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_aead\\aegis128l\\implementations.h\">\r\n      <Filter>crypto_aead\\aegis128l</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_aead\\aegis256\\aegis256_aesni.h\">\r\n      <Filter>crypto_aead\\aegis256</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_aead\\aegis256\\aegis256_common.h\">\r\n      <Filter>crypto_aead\\aegis256</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_aead\\aegis256\\implementations.h\">\r\n      <Filter>crypto_aead\\aegis256</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_aead\\aegis256\\aegis256_armcrypto.h\">\r\n      <Filter>crypto_aead\\aegis256</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_aead\\aegis256\\aegis256_soft.h\">\r\n      <Filter>crypto_aead\\aegis256</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_kem\\mlkem768\\ref\\kem_mlkem768_ref.h\">\r\n      <Filter>crypto_kem\\mlkem768\\ref</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_core\\keccak1600\\ref\\keccak1600_ref.h\">\r\n      <Filter>crypto_core\\keccak1600\\ref</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_core\\keccak1600\\armsha3\\keccak1600_armsha3.h\">\r\n      <Filter>crypto_core\\keccak1600\\armsha3</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_core\\ed25519\\core_h2c.h\">\r\n      <Filter>crypto_core\\ed25519</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_core\\ed25519\\ref10\\fe_25_5\\constants.h\">\r\n      <Filter>crypto_core\\ed25519\\ref10\\fe_25_5</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_core\\ed25519\\ref10\\fe_25_5\\fe.h\">\r\n      <Filter>crypto_core\\ed25519\\ref10\\fe_25_5</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_core\\ed25519\\ref10\\fe_25_5\\base2.h\">\r\n      <Filter>crypto_core\\ed25519\\ref10\\fe_25_5</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_core\\ed25519\\ref10\\fe_25_5\\base.h\">\r\n      <Filter>crypto_core\\ed25519\\ref10\\fe_25_5</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_core\\ed25519\\ref10\\fe_51\\constants.h\">\r\n      <Filter>crypto_core\\ed25519\\ref10\\fe_51</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_core\\ed25519\\ref10\\fe_51\\fe.h\">\r\n      <Filter>crypto_core\\ed25519\\ref10\\fe_51</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_core\\ed25519\\ref10\\fe_51\\base2.h\">\r\n      <Filter>crypto_core\\ed25519\\ref10\\fe_51</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_core\\ed25519\\ref10\\fe_51\\base.h\">\r\n      <Filter>crypto_core\\ed25519\\ref10\\fe_51</Filter>\r\n    </ClInclude>\r\n  </ItemGroup>\r\n  <ItemGroup>\r\n    <Filter Include=\"crypto_aead\">\r\n      <UniqueIdentifier>{a6837e41-3751-38c9-bb90-dd59d5f4af7b}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_aead\\aegis128l\">\r\n      <UniqueIdentifier>{9e2a023d-fef1-3231-90ba-9a0ffc9bc9ab}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_aead\\aegis256\">\r\n      <UniqueIdentifier>{6897a4cc-0091-3970-b712-c0ac75c16b67}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_aead\\aes256gcm\">\r\n      <UniqueIdentifier>{3e53394c-b59c-30cc-ae69-a4f46f9edfa3}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_aead\\aes256gcm\\aesni\">\r\n      <UniqueIdentifier>{7eb51140-a50f-3f50-b379-83677a82496c}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_aead\\aes256gcm\\armcrypto\">\r\n      <UniqueIdentifier>{507bb9aa-b65c-3034-946b-bcd375b7deaa}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_aead\\chacha20poly1305\">\r\n      <UniqueIdentifier>{1f4d6dd1-517f-3eeb-b974-2304ada5e67a}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_aead\\xchacha20poly1305\">\r\n      <UniqueIdentifier>{3122f223-e6c2-3ab1-ad85-ca289b47419e}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_auth\">\r\n      <UniqueIdentifier>{0a3af0f3-56f7-3551-a64e-6284feccc423}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_auth\\hmacsha256\">\r\n      <UniqueIdentifier>{64e89b4f-eec9-38c9-90f2-4881bf5e84c0}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_auth\\hmacsha512\">\r\n      <UniqueIdentifier>{0c0b4001-ae11-3d0f-8e73-75ac9b6e1ae8}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_auth\\hmacsha512256\">\r\n      <UniqueIdentifier>{f5065d74-beda-3e1e-819a-f606279c7fe9}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_box\">\r\n      <UniqueIdentifier>{f7aedb93-94a6-3ede-9374-ff41daca4841}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_box\\curve25519xchacha20poly1305\">\r\n      <UniqueIdentifier>{0e7473c9-9c69-36b3-ab6c-d953647a15a6}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_box\\curve25519xsalsa20poly1305\">\r\n      <UniqueIdentifier>{d75db64c-eb08-3f10-9b99-1b6e6827f348}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_core\">\r\n      <UniqueIdentifier>{73194d5d-588a-342f-bee6-f28b4486f20b}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_core\\ed25519\">\r\n      <UniqueIdentifier>{7c5e6f81-e4ce-3018-a776-a1f125072d73}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_core\\ed25519\\ref10\">\r\n      <UniqueIdentifier>{76990c08-d692-367f-b286-c728a8cad6bf}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_core\\ed25519\\ref10\\fe_25_5\">\r\n      <UniqueIdentifier>{bf04f786-7862-3bde-aeba-ed82ee59ca22}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_core\\ed25519\\ref10\\fe_51\">\r\n      <UniqueIdentifier>{98b6126a-3725-3707-a4cc-ff3af657cba0}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_core\\hchacha20\">\r\n      <UniqueIdentifier>{8b704d11-af1f-30c0-9981-479da6d88dc3}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_core\\hsalsa20\">\r\n      <UniqueIdentifier>{342e684b-4e18-311c-953c-8391a544a04f}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_core\\hsalsa20\\ref2\">\r\n      <UniqueIdentifier>{c6b8e28c-7c54-3af7-bee3-2948ba7b2082}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_core\\keccak1600\">\r\n      <UniqueIdentifier>{85c1722f-2d65-30a8-aefb-ebf1cbfe185e}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_core\\keccak1600\\armsha3\">\r\n      <UniqueIdentifier>{855cc78f-1fe0-3ad2-a2ac-5e2b0c01c235}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_core\\keccak1600\\ref\">\r\n      <UniqueIdentifier>{9462f285-fee0-3779-983b-2811dc621f7d}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_core\\salsa\">\r\n      <UniqueIdentifier>{4e9a1d6b-ee07-3bbc-ad78-6d0ba0e6d9d3}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_core\\salsa\\ref\">\r\n      <UniqueIdentifier>{eb259fd9-56f0-32db-a903-6bc1549a7326}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_core\\softaes\">\r\n      <UniqueIdentifier>{05997596-e3d7-3bf1-ad4d-39e4c5fd56f6}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_generichash\">\r\n      <UniqueIdentifier>{e53b6258-fcdd-34c8-96c5-44510a34a390}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_generichash\\blake2b\">\r\n      <UniqueIdentifier>{8bd3b558-2d08-3c3a-81ca-22677dde943b}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_generichash\\blake2b\\ref\">\r\n      <UniqueIdentifier>{16a8dd41-b0ab-39a7-80c8-3052d8b63811}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_hash\">\r\n      <UniqueIdentifier>{d7ec3690-bae7-3653-8c53-66a3142cfcfa}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_hash\\sha256\">\r\n      <UniqueIdentifier>{722ef422-8c03-3008-ba2a-3a7e91c6647c}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_hash\\sha256\\cp\">\r\n      <UniqueIdentifier>{8c7d8b62-7b4f-3eb9-85b7-18e8d925be14}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_hash\\sha3\">\r\n      <UniqueIdentifier>{6df763e3-9707-3014-8cfe-2f9a8a83a872}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_hash\\sha512\">\r\n      <UniqueIdentifier>{8fb6a906-dbd6-3746-9b0f-f49e7028daec}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_hash\\sha512\\cp\">\r\n      <UniqueIdentifier>{f2d6a22b-dd67-3561-90a4-88696169cb7b}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_ipcrypt\">\r\n      <UniqueIdentifier>{5c3b1fe7-203f-36fd-bca5-8d0c4b466d80}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_kdf\">\r\n      <UniqueIdentifier>{aaf59186-1c0d-33cf-a34d-93e14bb87226}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_kdf\\blake2b\">\r\n      <UniqueIdentifier>{3d42d2a2-b192-33dd-9162-508916414707}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_kdf\\hkdf\">\r\n      <UniqueIdentifier>{baf7d894-9298-391d-8dc2-e4c3010f5ddc}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_kem\">\r\n      <UniqueIdentifier>{b9009d4a-dd97-341d-aafb-eeeb77191a49}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_kem\\mlkem768\">\r\n      <UniqueIdentifier>{ab0c8a55-3e1f-307e-82be-8291a3b43735}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_kem\\mlkem768\\ref\">\r\n      <UniqueIdentifier>{70a10765-f8fb-3898-8514-966e48719bc4}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_kem\\xwing\">\r\n      <UniqueIdentifier>{2ef7c851-6598-3be5-88be-9ac5ec867cb0}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_kx\">\r\n      <UniqueIdentifier>{898b6bd5-1360-3a34-adcd-0fade7561685}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_onetimeauth\">\r\n      <UniqueIdentifier>{323c0a15-3c1d-39b2-9ec1-299deb299497}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_onetimeauth\\poly1305\">\r\n      <UniqueIdentifier>{52c2080d-37c0-34c2-864a-c201c728e5d8}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_onetimeauth\\poly1305\\donna\">\r\n      <UniqueIdentifier>{ff618a41-caeb-3a18-ad36-d34b049a8f50}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_onetimeauth\\poly1305\\sse2\">\r\n      <UniqueIdentifier>{ffc3712d-dfe0-3b51-8257-f5ffc9c9cea3}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_pwhash\">\r\n      <UniqueIdentifier>{f54b65b6-71cf-3ab3-9c8c-f89c81846836}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_pwhash\\argon2\">\r\n      <UniqueIdentifier>{1bd97a78-befa-3805-8e9c-80d7c1aff37b}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_pwhash\\scryptsalsa208sha256\">\r\n      <UniqueIdentifier>{e785f104-1212-37bf-8511-cc518b9ace66}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_pwhash\\scryptsalsa208sha256\\nosse\">\r\n      <UniqueIdentifier>{447b993f-59fb-3efd-8c59-a1712c97dfe8}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_pwhash\\scryptsalsa208sha256\\sse\">\r\n      <UniqueIdentifier>{cdb8d233-06b0-3872-a62b-c1ccf4cb4314}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_scalarmult\">\r\n      <UniqueIdentifier>{402a1c5a-d499-333a-a2fa-acd0e6a3c2b2}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_scalarmult\\curve25519\">\r\n      <UniqueIdentifier>{77f5a2e9-2ef1-3a72-b63c-88e8e4b92678}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_scalarmult\\curve25519\\ref10\">\r\n      <UniqueIdentifier>{6c9c7c30-0808-3fad-8a88-944d7645e5d5}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_scalarmult\\curve25519\\sandy2x\">\r\n      <UniqueIdentifier>{5d2fb1a2-f063-32db-a81a-41f79e36fd23}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_scalarmult\\ed25519\">\r\n      <UniqueIdentifier>{7bec6074-fbc7-330b-9e18-7dc3e868569a}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_scalarmult\\ed25519\\ref10\">\r\n      <UniqueIdentifier>{834d4827-81e4-3de3-baa1-a216763f11d6}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_scalarmult\\ristretto255\">\r\n      <UniqueIdentifier>{52bf28eb-7ffd-399a-be35-0df3e8e99c15}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_scalarmult\\ristretto255\\ref10\">\r\n      <UniqueIdentifier>{39cc576f-4b54-3d71-b14c-27445bc4b138}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_secretbox\">\r\n      <UniqueIdentifier>{b9b02bee-5c1f-36d2-b97d-983f865a4cc6}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_secretbox\\xchacha20poly1305\">\r\n      <UniqueIdentifier>{41f1f35b-4639-3424-be85-7dfba02f3c5e}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_secretbox\\xsalsa20poly1305\">\r\n      <UniqueIdentifier>{8bf11d29-2f5a-3f10-8ae6-82229d19c5b0}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_secretstream\">\r\n      <UniqueIdentifier>{62f7ae38-4ce6-3976-acc3-47c462db4fbe}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_secretstream\\xchacha20poly1305\">\r\n      <UniqueIdentifier>{e07a28cd-775a-3798-bfdb-97842d3614d6}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_shorthash\">\r\n      <UniqueIdentifier>{bb073c16-adc8-3cff-80b9-99cf5a28de6c}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_shorthash\\siphash24\">\r\n      <UniqueIdentifier>{63de0ec8-ecde-35e3-8b97-6e9e4da342ee}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_shorthash\\siphash24\\ref\">\r\n      <UniqueIdentifier>{29925210-53eb-342c-8527-7ebc173e668f}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_sign\">\r\n      <UniqueIdentifier>{b2f989b6-87a6-3388-a35c-2d0d59cb4236}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_sign\\ed25519\">\r\n      <UniqueIdentifier>{bc6466a1-57b0-3a35-9973-ad488a4bef8c}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_sign\\ed25519\\ref10\">\r\n      <UniqueIdentifier>{5599d9ab-b5b2-3310-b541-ae0fb70eecf1}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_stream\">\r\n      <UniqueIdentifier>{eaedd08a-46f8-3d12-9e8d-bb3ee3ead5f6}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_stream\\chacha20\">\r\n      <UniqueIdentifier>{806b6ff3-578b-308a-a359-0f5ed8472ecc}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_stream\\chacha20\\dolbeau\">\r\n      <UniqueIdentifier>{5a1d852e-67bb-3dc1-9ec5-99ef74b7faca}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_stream\\chacha20\\ref\">\r\n      <UniqueIdentifier>{33e45d9c-e12a-3e76-9ef2-4f5510244a5b}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_stream\\salsa20\">\r\n      <UniqueIdentifier>{048ba2a8-b22b-346c-9886-668b63c88c68}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_stream\\salsa20\\ref\">\r\n      <UniqueIdentifier>{f08a312f-f8a3-350b-87ab-1f79d33e513f}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_stream\\salsa20\\xmm6\">\r\n      <UniqueIdentifier>{c403f690-cd22-3ed4-9cc7-3f46e73081fd}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_stream\\salsa20\\xmm6int\">\r\n      <UniqueIdentifier>{c34d03f5-cf47-39fe-a5ad-5eb917006203}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_stream\\salsa2012\">\r\n      <UniqueIdentifier>{4da0c5ca-33d1-34e0-9689-12e69ae2dbd6}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_stream\\salsa2012\\ref\">\r\n      <UniqueIdentifier>{dd6b294c-5871-386c-92ec-aa46fcc411d4}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_stream\\salsa208\">\r\n      <UniqueIdentifier>{07aca978-0547-329a-b70b-29aa579cacc5}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_stream\\salsa208\\ref\">\r\n      <UniqueIdentifier>{f171fa05-35c4-32a0-b035-b5d6680ab714}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_stream\\xchacha20\">\r\n      <UniqueIdentifier>{ede2279c-1ba7-3d62-8345-733c6c1965e7}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_stream\\xsalsa20\">\r\n      <UniqueIdentifier>{9c15151b-10dc-3dfe-b97b-a7d8c6b58920}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_verify\">\r\n      <UniqueIdentifier>{49fb9272-ffe2-3993-b562-b19d5f2c9b40}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_xof\">\r\n      <UniqueIdentifier>{9d0b6e6c-57a5-33bb-a67c-c1ce5a5e0684}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_xof\\shake128\">\r\n      <UniqueIdentifier>{3311f765-9a5b-3614-a24f-9b97a56240aa}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_xof\\shake128\\ref\">\r\n      <UniqueIdentifier>{0b3ce98f-5f0a-3836-a95f-5ebd938a0e15}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_xof\\shake256\">\r\n      <UniqueIdentifier>{d4f668ef-b456-369e-b8bf-b1b6d4e90a6d}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_xof\\shake256\\ref\">\r\n      <UniqueIdentifier>{c5174d81-c82a-3411-98f7-829a427faddc}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_xof\\turboshake128\">\r\n      <UniqueIdentifier>{6ccaee32-fd4e-3b58-be6b-a2866132d22d}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_xof\\turboshake128\\ref\">\r\n      <UniqueIdentifier>{00e8736b-cf8d-3a60-bfbe-f0c535d45696}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_xof\\turboshake256\">\r\n      <UniqueIdentifier>{8f7b92bd-0b08-3b14-8693-2df66b256d8b}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_xof\\turboshake256\\ref\">\r\n      <UniqueIdentifier>{bcea4d5e-5593-3465-ac95-2ecd34340ce3}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"include\">\r\n      <UniqueIdentifier>{96da72eb-3aa0-3850-83eb-32788f91e5bd}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"include\\sodium\">\r\n      <UniqueIdentifier>{56bb40fc-d381-3a9e-925b-681774c48dde}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"include\\sodium\\private\">\r\n      <UniqueIdentifier>{fde88485-0fe6-3b22-9480-1d2b49fade53}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"randombytes\">\r\n      <UniqueIdentifier>{ef090484-4db4-3dc2-aca7-c59bab1db23b}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"randombytes\\internal\">\r\n      <UniqueIdentifier>{14c126fd-bb91-37ea-b807-b60c386be601}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"randombytes\\sysrandom\">\r\n      <UniqueIdentifier>{ac56c38f-7e17-3b79-bf47-58e9476b3b89}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"sodium\">\r\n      <UniqueIdentifier>{5dfc520b-f690-3d5f-a86a-8b667f2e7490}</UniqueIdentifier>\r\n    </Filter>\r\n  </ItemGroup>\r\n</Project>\r\n"
  },
  {
    "path": "builds/msvc/vs2010/libsodium/libsodium.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<ProjectSchemaDefinitions xmlns=\"clr-namespace:Microsoft.Build.Framework.XamlTypes;assembly=Microsoft.Build.Framework\">\n  <Rule Name=\"libsodium-uiextension\" PageTemplate=\"tool\" DisplayName=\"Sodium Options\" SwitchPrefix=\"/\" Order=\"1\">\n    <Rule.Categories>\n      <Category Name=\"amd64asm\" DisplayName=\"amd64asm\" />\n    </Rule.Categories>\n    <Rule.DataSource>\n      <DataSource Persistence=\"ProjectFile\" ItemType=\"\" />\n    </Rule.DataSource>\n    <EnumProperty Name=\"Option-amd64asm\" DisplayName=\"Enable AMD64 Assembly\" Description=\"Enable the AMD64 Assembly build option\" Category=\"amd64asm\">\n      <EnumValue Name=\"\" DisplayName=\"No\" />\n      <EnumValue Name=\"true\" DisplayName=\"Yes\" />\n    </EnumProperty>\n  </Rule>\n</ProjectSchemaDefinitions>"
  },
  {
    "path": "builds/msvc/vs2010/libsodium.import.props",
    "content": "﻿<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<Project DefaultTargets=\"Build\" xmlns=\"http://schemas.microsoft.com/developer/msbuild/2003\">\n\n  <PropertyGroup Label=\"Globals\">\n    <_PropertySheetDisplayName>Libsodium Import Settings</_PropertySheetDisplayName>\n  </PropertyGroup>\n\n  <!-- User Interface -->\n\n  <ItemGroup Label=\"BuildOptionsExtension\">\n    <PropertyPageSchema Include=\"$(MSBuildThisFileDirectory)libsodium.import.xml\" />\n  </ItemGroup>\n\n  <!-- Linkage -->\n\n  <ItemDefinitionGroup>\n    <ClCompile>\n      <AdditionalIncludeDirectories>$(ProjectDir)..\\..\\..\\..\\..\\libsodium\\src\\libsodium\\include;$(ProjectDir)..\\..\\..\\..\\..\\libsodium\\src\\libsodium\\include\\sodium\\;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\n      <PreprocessorDefinitions Condition=\"'$(Linkage-libsodium)' == 'static' Or '$(Linkage-libsodium)' == 'ltcg'\">SODIUM_STATIC;%(PreprocessorDefinitions)</PreprocessorDefinitions>\n    </ClCompile>\n    <Link>\n      <AdditionalDependencies Condition=\"'$(Linkage-libsodium)' != ''\">advapi32.lib;libsodium.lib;%(AdditionalDependencies)</AdditionalDependencies>\n      <AdditionalLibraryDirectories Condition=\"$(Configuration.IndexOf('Debug')) != -1\">$(ProjectDir)..\\..\\..\\..\\..\\libsodium\\bin\\$(PlatformName)\\Debug\\$(PlatformToolset)\\$(Linkage-libsodium)\\;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>\n      <AdditionalLibraryDirectories Condition=\"$(Configuration.IndexOf('Release')) != -1\">$(ProjectDir)..\\..\\..\\..\\..\\libsodium\\bin\\$(PlatformName)\\Release\\$(PlatformToolset)\\$(Linkage-libsodium)\\;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>\n    </Link>\n  </ItemDefinitionGroup>\n\n  <!-- Copy -->\n\n  <Target Name=\"Linkage-libsodium-dynamic\" AfterTargets=\"AfterBuild\" Condition=\"'$(Linkage-libsodium)' == 'dynamic'\">\n    <Copy Condition=\"$(Configuration.IndexOf('Debug')) != -1\"\n          SourceFiles=\"$(ProjectDir)..\\..\\..\\..\\..\\libsodium\\bin\\$(PlatformName)\\Debug\\$(PlatformToolset)\\dynamic\\libsodium.dll\"\n          DestinationFiles=\"$(TargetDir)libsodium.dll\"\n          SkipUnchangedFiles=\"true\" />\n    <Copy Condition=\"$(Configuration.IndexOf('Debug')) != -1\"\n          SourceFiles=\"$(ProjectDir)..\\..\\..\\..\\..\\libsodium\\bin\\$(PlatformName)\\Debug\\$(PlatformToolset)\\dynamic\\libsodium.pdb\"\n          DestinationFiles=\"$(TargetDir)libsodium.pdb\"\n          SkipUnchangedFiles=\"true\" />\n    <Copy Condition=\"$(Configuration.IndexOf('Release')) != -1\"\n          SourceFiles=\"$(ProjectDir)..\\..\\..\\..\\..\\libsodium\\bin\\$(PlatformName)\\Release\\$(PlatformToolset)\\dynamic\\libsodium.dll\"\n          DestinationFiles=\"$(TargetDir)libsodium.dll\"\n          SkipUnchangedFiles=\"true\" />\n  </Target>\n\n  <!-- Messages -->\n\n  <Target Name=\"libsodium-info\" BeforeTargets=\"AfterBuild\" Condition=\"'$(Linkage-libsodium)' == 'dynamic'\">\n    <Message Text=\"Copying libsodium.dll -&gt; $(TargetDir)libsodium.dll\" Importance=\"high\"/>\n    <Message Text=\"Copying libsodium.pdb -&gt; $(TargetDir)libsodium.pdb\" Importance=\"high\" Condition=\"$(Configuration.IndexOf('Debug')) != -1\" />\n  </Target>\n\n</Project>"
  },
  {
    "path": "builds/msvc/vs2010/libsodium.import.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<ProjectSchemaDefinitions xmlns=\"clr-namespace:Microsoft.Build.Framework.XamlTypes;assembly=Microsoft.Build.Framework\">\n  <Rule Name=\"libsodium-linkage-uiextension\" PageTemplate=\"tool\" DisplayName=\"Local Dependencies\" SwitchPrefix=\"/\" Order=\"1\">\n    <Rule.Categories>\n      <Category Name=\"libsodium\" DisplayName=\"libsodium\" />\n    </Rule.Categories>\n    <Rule.DataSource>\n      <DataSource Persistence=\"ProjectFile\" ItemType=\"\" />\n    </Rule.DataSource>\n    <EnumProperty Name=\"Linkage-libsodium\" DisplayName=\"Linkage\" Description=\"How libsodium will be linked into the output of this project\" Category=\"libsodium\">\n      <EnumValue Name=\"\" DisplayName=\"Not linked\" />\n      <EnumValue Name=\"dynamic\" DisplayName=\"Dynamic (DLL)\" />\n      <EnumValue Name=\"static\" DisplayName=\"Static (LIB)\" />\n      <EnumValue Name=\"ltcg\" DisplayName=\"Static using link time compile generation (LTCG)\" />\n    </EnumProperty>\n  </Rule>\n</ProjectSchemaDefinitions>"
  },
  {
    "path": "builds/msvc/vs2010/libsodium.sln",
    "content": "﻿\r\nMicrosoft Visual Studio Solution File, Format Version 11.00\r\n# Visual C++ Express 2010\r\nProject(\"{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}\") = \"libsodium\", \"libsodium\\libsodium.vcxproj\", \"{A185B162-6CB6-4502-B03F-B56F7699A8D9}\"\r\nEndProject\r\nGlobal\r\n\tGlobalSection(SolutionConfigurationPlatforms) = preSolution\r\n\t\tDynDebug|Win32 = DynDebug|Win32\r\n\t\tDynDebug|x64 = DynDebug|x64\r\n\t\tDynRelease|Win32 = DynRelease|Win32\r\n\t\tDynRelease|x64 = DynRelease|x64\r\n\t\tLtcgDebug|Win32 = LtcgDebug|Win32\r\n\t\tLtcgDebug|x64 = LtcgDebug|x64\r\n\t\tLtcgRelease|Win32 = LtcgRelease|Win32\r\n\t\tLtcgRelease|x64 = LtcgRelease|x64\r\n\t\tStaticDebug|Win32 = StaticDebug|Win32\r\n\t\tStaticDebug|x64 = StaticDebug|x64\r\n\t\tStaticRelease|Win32 = StaticRelease|Win32\r\n\t\tStaticRelease|x64 = StaticRelease|x64\r\n\tEndGlobalSection\r\n\tGlobalSection(ProjectConfigurationPlatforms) = postSolution\r\n\t\t{A185B162-6CB6-4502-B03F-B56F7699A8D9}.DynDebug|Win32.ActiveCfg = DebugDLL|Win32\r\n\t\t{A185B162-6CB6-4502-B03F-B56F7699A8D9}.DynDebug|Win32.Build.0 = DebugDLL|Win32\r\n\t\t{A185B162-6CB6-4502-B03F-B56F7699A8D9}.DynDebug|x64.ActiveCfg = DebugDLL|x64\r\n\t\t{A185B162-6CB6-4502-B03F-B56F7699A8D9}.DynDebug|x64.Build.0 = DebugDLL|x64\r\n\t\t{A185B162-6CB6-4502-B03F-B56F7699A8D9}.DynRelease|Win32.ActiveCfg = ReleaseDLL|Win32\r\n\t\t{A185B162-6CB6-4502-B03F-B56F7699A8D9}.DynRelease|Win32.Build.0 = ReleaseDLL|Win32\r\n\t\t{A185B162-6CB6-4502-B03F-B56F7699A8D9}.DynRelease|x64.ActiveCfg = ReleaseDLL|x64\r\n\t\t{A185B162-6CB6-4502-B03F-B56F7699A8D9}.DynRelease|x64.Build.0 = ReleaseDLL|x64\r\n\t\t{A185B162-6CB6-4502-B03F-B56F7699A8D9}.LtcgDebug|Win32.ActiveCfg = DebugLTCG|Win32\r\n\t\t{A185B162-6CB6-4502-B03F-B56F7699A8D9}.LtcgDebug|Win32.Build.0 = DebugLTCG|Win32\r\n\t\t{A185B162-6CB6-4502-B03F-B56F7699A8D9}.LtcgDebug|x64.ActiveCfg = DebugLTCG|x64\r\n\t\t{A185B162-6CB6-4502-B03F-B56F7699A8D9}.LtcgDebug|x64.Build.0 = DebugLTCG|x64\r\n\t\t{A185B162-6CB6-4502-B03F-B56F7699A8D9}.LtcgRelease|Win32.ActiveCfg = ReleaseLTCG|Win32\r\n\t\t{A185B162-6CB6-4502-B03F-B56F7699A8D9}.LtcgRelease|Win32.Build.0 = ReleaseLTCG|Win32\r\n\t\t{A185B162-6CB6-4502-B03F-B56F7699A8D9}.LtcgRelease|x64.ActiveCfg = ReleaseLTCG|x64\r\n\t\t{A185B162-6CB6-4502-B03F-B56F7699A8D9}.LtcgRelease|x64.Build.0 = ReleaseLTCG|x64\r\n\t\t{A185B162-6CB6-4502-B03F-B56F7699A8D9}.StaticDebug|Win32.ActiveCfg = DebugLIB|Win32\r\n\t\t{A185B162-6CB6-4502-B03F-B56F7699A8D9}.StaticDebug|Win32.Build.0 = DebugLIB|Win32\r\n\t\t{A185B162-6CB6-4502-B03F-B56F7699A8D9}.StaticDebug|x64.ActiveCfg = DebugLIB|x64\r\n\t\t{A185B162-6CB6-4502-B03F-B56F7699A8D9}.StaticDebug|x64.Build.0 = DebugLIB|x64\r\n\t\t{A185B162-6CB6-4502-B03F-B56F7699A8D9}.StaticRelease|Win32.ActiveCfg = ReleaseLIB|Win32\r\n\t\t{A185B162-6CB6-4502-B03F-B56F7699A8D9}.StaticRelease|Win32.Build.0 = ReleaseLIB|Win32\r\n\t\t{A185B162-6CB6-4502-B03F-B56F7699A8D9}.StaticRelease|x64.ActiveCfg = ReleaseLIB|x64\r\n\t\t{A185B162-6CB6-4502-B03F-B56F7699A8D9}.StaticRelease|x64.Build.0 = ReleaseLIB|x64\r\n\tEndGlobalSection\r\n\tGlobalSection(SolutionProperties) = preSolution\r\n\t\tHideSolutionNode = FALSE\r\n\tEndGlobalSection\r\nEndGlobal\r\n"
  },
  {
    "path": "builds/msvc/vs2012/libsodium/libsodium.props",
    "content": "﻿<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<Project DefaultTargets=\"Build\" xmlns=\"http://schemas.microsoft.com/developer/msbuild/2003\">\n\n  <PropertyGroup Label=\"Globals\">\n    <_PropertySheetDisplayName>Libsodium Common Settings</_PropertySheetDisplayName>\n    <CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>\n    <RunCodeAnalysis>false</RunCodeAnalysis>\n  </PropertyGroup>\n\n  <!-- User Interface -->\n\n  <ItemGroup Label=\"BuildOptionsExtension\">\n    <PropertyPageSchema Include=\"$(MSBuildThisFileDirectory)$(ProjectName).xml\" />\n  </ItemGroup>\n\n  <!-- Configuration -->\n\n  <ItemDefinitionGroup>\n    <PreBuildEvent>\n      <Command>copy \"$(BuildRoot)version.h\" \"$(RepoRoot)src\\libsodium\\include\\sodium\\\"</Command>\n    </PreBuildEvent>\n    <ClCompile>\n      <AdditionalIncludeDirectories>$(RepoRoot)src\\libsodium\\include;$(RepoRoot)src\\libsodium\\include\\sodium\\;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\n      <DisableSpecificWarnings>4146;4244;%(DisableSpecificWarnings)</DisableSpecificWarnings>\n      <EnablePREfast>false</EnablePREfast>\n      <PreprocessorDefinitions>inline=__inline;NATIVE_LITTLE_ENDIAN;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>\n      <PreprocessorDefinitions Condition=\"'$(ConfigurationType)' == 'StaticLibrary'\">SODIUM_STATIC;%(PreprocessorDefinitions)</PreprocessorDefinitions>\n      <PreprocessorDefinitions Condition=\"'$(ConfigurationType)' == 'DynamicLibrary'\">SODIUM_DLL_EXPORT;%(PreprocessorDefinitions)</PreprocessorDefinitions>\n      <PreprocessorDefinitions Condition=\"'$(Option-amd64asm)' == 'true'\">HAVE_AMD64_ASM;%(PreprocessorDefinitions)</PreprocessorDefinitions>\n    </ClCompile>\n  </ItemDefinitionGroup>\n\n  <!-- Messages -->\n\n  <Target Name=\"CustomInfo\" BeforeTargets=\"PrepareForBuild\">\n    <Message Text=\"Will copy $(BuildRoot)version.h -&gt; $(RepoRoot)src\\libsodium\\include\\sodium\\version.h\" Importance=\"high\"/>\n  </Target>\n\n  <Target Name=\"OptionInfo\" BeforeTargets=\"PrepareForBuild\">\n    <Message Text=\"Option-amd64asm   : $(Option-amd64asm)\" Importance=\"high\"/>\n  </Target>\n\n  <ItemDefinitionGroup>\n    <Link>\n      <AdditionalDependencies>advapi32.lib</AdditionalDependencies>\n    </Link>\n  </ItemDefinitionGroup>\n</Project>\n"
  },
  {
    "path": "builds/msvc/vs2012/libsodium/libsodium.vcxproj",
    "content": "﻿<?xml version=\"1.0\" encoding=\"utf-8\"?>\r\n<Project DefaultTargets=\"Build\" ToolsVersion=\"4.0\"\r\n  xmlns=\"http://schemas.microsoft.com/developer/msbuild/2003\">\r\n  <PropertyGroup Label=\"Globals\">\r\n    <ProjectGuid>{A185B162-6CB6-4502-B03F-B56F7699A8D9}</ProjectGuid>\r\n    <ProjectName>libsodium</ProjectName>\r\n    <PlatformToolset>v110</PlatformToolset>\r\n  </PropertyGroup>\r\n  <ItemGroup Label=\"ProjectConfigurations\">\r\n    <ProjectConfiguration Include=\"DebugDLL|Win32\">\r\n      <Configuration>DebugDLL</Configuration>\r\n      <Platform>Win32</Platform>\r\n    </ProjectConfiguration>\r\n    <ProjectConfiguration Include=\"DebugDLL|x64\">\r\n      <Configuration>DebugDLL</Configuration>\r\n      <Platform>x64</Platform>\r\n    </ProjectConfiguration>\r\n    <ProjectConfiguration Include=\"ReleaseDLL|Win32\">\r\n      <Configuration>ReleaseDLL</Configuration>\r\n      <Platform>Win32</Platform>\r\n    </ProjectConfiguration>\r\n    <ProjectConfiguration Include=\"ReleaseDLL|x64\">\r\n      <Configuration>ReleaseDLL</Configuration>\r\n      <Platform>x64</Platform>\r\n    </ProjectConfiguration>\r\n    <ProjectConfiguration Include=\"DebugLIB|Win32\">\r\n      <Configuration>DebugLIB</Configuration>\r\n      <Platform>Win32</Platform>\r\n    </ProjectConfiguration>\r\n    <ProjectConfiguration Include=\"DebugLIB|x64\">\r\n      <Configuration>DebugLIB</Configuration>\r\n      <Platform>x64</Platform>\r\n    </ProjectConfiguration>\r\n    <ProjectConfiguration Include=\"ReleaseLIB|Win32\">\r\n      <Configuration>ReleaseLIB</Configuration>\r\n      <Platform>Win32</Platform>\r\n    </ProjectConfiguration>\r\n    <ProjectConfiguration Include=\"ReleaseLIB|x64\">\r\n      <Configuration>ReleaseLIB</Configuration>\r\n      <Platform>x64</Platform>\r\n    </ProjectConfiguration>\r\n    <ProjectConfiguration Include=\"DebugLTCG|Win32\">\r\n      <Configuration>DebugLTCG</Configuration>\r\n      <Platform>Win32</Platform>\r\n    </ProjectConfiguration>\r\n    <ProjectConfiguration Include=\"DebugLTCG|x64\">\r\n      <Configuration>DebugLTCG</Configuration>\r\n      <Platform>x64</Platform>\r\n    </ProjectConfiguration>\r\n    <ProjectConfiguration Include=\"ReleaseLTCG|Win32\">\r\n      <Configuration>ReleaseLTCG</Configuration>\r\n      <Platform>Win32</Platform>\r\n    </ProjectConfiguration>\r\n    <ProjectConfiguration Include=\"ReleaseLTCG|x64\">\r\n      <Configuration>ReleaseLTCG</Configuration>\r\n      <Platform>x64</Platform>\r\n    </ProjectConfiguration>\r\n  </ItemGroup>\r\n  <PropertyGroup Label=\"Configuration\">\r\n    <ConfigurationType Condition=\"$(Configuration.IndexOf('DLL')) == -1\">StaticLibrary</ConfigurationType>\r\n    <ConfigurationType Condition=\"$(Configuration.IndexOf('DLL')) != -1\">DynamicLibrary</ConfigurationType>\r\n  </PropertyGroup>\r\n  <Import Project=\"$(VCTargetsPath)\\Microsoft.Cpp.Default.props\" />\r\n  <Import Project=\"$(VCTargetsPath)\\Microsoft.Cpp.props\" />\r\n  <ImportGroup Label=\"PropertySheets\">\r\n    <Import Project=\"$(ProjectDir)..\\..\\properties\\$(Configuration).props\" />\r\n    <Import Project=\"$(ProjectDir)..\\..\\properties\\Output.props\" />\r\n    <Import Project=\"$(ProjectDir)$(ProjectName).props\" />\r\n  </ImportGroup>\r\n  <ItemGroup>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_generichash\\crypto_generichash.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_generichash\\blake2b\\generichash_blake2.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_generichash\\blake2b\\ref\\blake2b-compress-ref.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_generichash\\blake2b\\ref\\blake2b-compress-ssse3.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_generichash\\blake2b\\ref\\blake2b-compress-avx2.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_generichash\\blake2b\\ref\\blake2b-compress-sse41.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_generichash\\blake2b\\ref\\generichash_blake2b.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_generichash\\blake2b\\ref\\blake2b-ref.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_kx\\crypto_kx.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_sign\\crypto_sign.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_sign\\ed25519\\sign_ed25519.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_sign\\ed25519\\ref10\\sign.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_sign\\ed25519\\ref10\\keypair.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_sign\\ed25519\\ref10\\open.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_secretbox\\crypto_secretbox.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_secretbox\\crypto_secretbox_easy.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_secretbox\\xsalsa20poly1305\\secretbox_xsalsa20poly1305.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_secretbox\\xchacha20poly1305\\secretbox_xchacha20poly1305.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\crypto_pwhash.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\blake2b-long.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\argon2-fill-block-wasm32.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\argon2-core.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\argon2-fill-block-avx512f.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\argon2-fill-block-ref.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\argon2-fill-block-ssse3.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\pwhash_argon2i.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\argon2-fill-block-neon.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\pwhash_argon2id.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\argon2.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\argon2-fill-block-avx2.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\argon2-encoding.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\scryptsalsa208sha256\\scrypt_platform.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\scryptsalsa208sha256\\crypto_scrypt-common.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\scryptsalsa208sha256\\pwhash_scryptsalsa208sha256.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\scryptsalsa208sha256\\pbkdf2-sha256.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\scryptsalsa208sha256\\nosse\\pwhash_scryptsalsa208sha256_nosse.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\scryptsalsa208sha256\\sse\\pwhash_scryptsalsa208sha256_sse.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_xof\\shake128\\xof_shake128.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_xof\\shake128\\ref\\shake128_ref.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_xof\\shake256\\xof_shake256.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_xof\\shake256\\ref\\shake256_ref.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_xof\\turboshake256\\xof_turboshake256.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_xof\\turboshake256\\ref\\turboshake256_ref.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_xof\\turboshake128\\xof_turboshake128.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_xof\\turboshake128\\ref\\turboshake128_ref.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_verify\\verify.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_auth\\crypto_auth.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_auth\\hmacsha512\\auth_hmacsha512.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_auth\\hmacsha512256\\auth_hmacsha512256.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_auth\\hmacsha256\\auth_hmacsha256.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_kdf\\crypto_kdf.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_kdf\\blake2b\\kdf_blake2b.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_kdf\\hkdf\\kdf_hkdf_sha256.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_kdf\\hkdf\\kdf_hkdf_sha512.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_shorthash\\crypto_shorthash.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_shorthash\\siphash24\\shorthash_siphash24.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_shorthash\\siphash24\\shorthash_siphashx24.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_shorthash\\siphash24\\ref\\shorthash_siphashx24_ref.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_shorthash\\siphash24\\ref\\shorthash_siphash24_ref.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_scalarmult\\crypto_scalarmult.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_scalarmult\\ristretto255\\ref10\\scalarmult_ristretto255_ref10.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_scalarmult\\ed25519\\ref10\\scalarmult_ed25519_ref10.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_scalarmult\\curve25519\\scalarmult_curve25519.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_scalarmult\\curve25519\\sandy2x\\curve25519_sandy2x.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_scalarmult\\curve25519\\sandy2x\\fe_frombytes_sandy2x.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_scalarmult\\curve25519\\sandy2x\\fe51_invert.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_scalarmult\\curve25519\\ref10\\x25519_ref10.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_onetimeauth\\crypto_onetimeauth.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_onetimeauth\\poly1305\\onetimeauth_poly1305.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_onetimeauth\\poly1305\\donna\\poly1305_donna.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_onetimeauth\\poly1305\\sse2\\poly1305_sse2.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\randombytes\\randombytes.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\randombytes\\sysrandom\\randombytes_sysrandom.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\randombytes\\internal\\randombytes_internal_random.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_box\\crypto_box_easy.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_box\\crypto_box_seal.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_box\\crypto_box.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_box\\curve25519xsalsa20poly1305\\box_curve25519xsalsa20poly1305.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_box\\curve25519xchacha20poly1305\\box_curve25519xchacha20poly1305.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_box\\curve25519xchacha20poly1305\\box_seal_curve25519xchacha20poly1305.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\sodium\\codecs.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\sodium\\runtime.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\sodium\\core.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\sodium\\utils.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\sodium\\version.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_ipcrypt\\ipcrypt_armcrypto.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_ipcrypt\\crypto_ipcrypt.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_ipcrypt\\ipcrypt_soft.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_ipcrypt\\ipcrypt_aesni.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\crypto_stream.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\xchacha20\\stream_xchacha20.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\chacha20\\stream_chacha20.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\chacha20\\ref\\chacha20_ref.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\chacha20\\dolbeau\\chacha20_dolbeau-avx2.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\chacha20\\dolbeau\\chacha20_dolbeau-ssse3.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\salsa20\\stream_salsa20.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\salsa20\\ref\\salsa20_ref.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\salsa20\\xmm6int\\salsa20_xmm6int-avx2.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\salsa20\\xmm6int\\salsa20_xmm6int-sse2.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\salsa20\\xmm6\\salsa20_xmm6.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\salsa2012\\stream_salsa2012.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\salsa2012\\ref\\stream_salsa2012_ref.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\salsa208\\stream_salsa208.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\salsa208\\ref\\stream_salsa208_ref.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\xsalsa20\\stream_xsalsa20.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_hash\\crypto_hash.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_hash\\sha512\\hash_sha512.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_hash\\sha512\\cp\\hash_sha512_cp.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_hash\\sha3\\hash_sha3.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_hash\\sha256\\hash_sha256.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_hash\\sha256\\cp\\hash_sha256_cp.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_aead\\xchacha20poly1305\\aead_xchacha20poly1305.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_aead\\aegis128l\\aegis128l_soft.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_aead\\aegis128l\\aead_aegis128l.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_aead\\aegis128l\\aegis128l_aesni.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_aead\\aegis128l\\aegis128l_armcrypto.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_aead\\aegis256\\aead_aegis256.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_aead\\aegis256\\aegis256_soft.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_aead\\aegis256\\aegis256_armcrypto.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_aead\\aegis256\\aegis256_aesni.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_aead\\aes256gcm\\aead_aes256gcm.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_aead\\aes256gcm\\aesni\\aead_aes256gcm_aesni.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_aead\\aes256gcm\\armcrypto\\aead_aes256gcm_armcrypto.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_aead\\chacha20poly1305\\aead_chacha20poly1305.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_kem\\crypto_kem.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_kem\\xwing\\kem_xwing.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_kem\\mlkem768\\kem_mlkem768.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_kem\\mlkem768\\ref\\kem_mlkem768_ref.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_secretstream\\xchacha20poly1305\\secretstream_xchacha20poly1305.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_core\\keccak1600\\keccak1600.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_core\\keccak1600\\ref\\keccak1600_ref.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_core\\keccak1600\\armsha3\\keccak1600_armsha3.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_core\\salsa\\ref\\core_salsa_ref.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_core\\hchacha20\\core_hchacha20.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_core\\hsalsa20\\core_hsalsa20.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_core\\hsalsa20\\ref2\\core_hsalsa20_ref2.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_core\\softaes\\softaes.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_core\\ed25519\\core_ed25519.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_core\\ed25519\\core_ristretto255.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_core\\ed25519\\core_h2c.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_core\\ed25519\\ref10\\ed25519_ref10.c\" />\r\n  </ItemGroup>\r\n  <ItemGroup>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_generichash\\blake2b\\ref\\blake2b-load-sse2.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_generichash\\blake2b\\ref\\blake2b-load-avx2.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_generichash\\blake2b\\ref\\blake2.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_generichash\\blake2b\\ref\\blake2b-compress-ssse3.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_generichash\\blake2b\\ref\\blake2b-load-sse41.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_generichash\\blake2b\\ref\\blake2b-compress-avx2.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_generichash\\blake2b\\ref\\blake2b-compress-sse41.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_sign\\ed25519\\ref10\\sign_ed25519_ref10.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_stream_salsa2012.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_auth.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\utils.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_core_hchacha20.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_aead_aegis256.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_hash_sha512.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\core.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\export.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_core_salsa20.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_shorthash_siphash24.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\randombytes.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_hash_sha256.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_stream.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_auth_hmacsha512.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_xof_shake128.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_aead_xchacha20poly1305.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_stream_salsa20.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_onetimeauth_poly1305.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_kem_mlkem768.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_scalarmult_ristretto255.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_kx.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_hash.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_sign.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_kdf.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_auth_hmacsha256.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_box.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_verify_32.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_core_ristretto255.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_stream_xchacha20.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_core_salsa208.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_auth_hmacsha512256.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_xof_turboshake128.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_aead_aegis128l.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_aead_chacha20poly1305.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\randombytes_sysrandom.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_xof_turboshake256.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\runtime.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_stream_salsa208.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_aead_aes256gcm.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_core_salsa2012.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_secretbox_xchacha20poly1305.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_kem.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_core_keccak1600.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_scalarmult.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_pwhash.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_verify_16.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_stream_chacha20.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_stream_xsalsa20.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_core_hsalsa20.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_kdf_blake2b.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_scalarmult_curve25519.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_xof_shake256.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_shorthash.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_kdf_hkdf_sha256.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_pwhash_argon2id.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_secretstream_xchacha20poly1305.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_pwhash_scryptsalsa208sha256.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_hash_sha3.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_kem_xwing.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_sign_ed25519.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_onetimeauth.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_verify_64.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_box_curve25519xchacha20poly1305.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_core_ed25519.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_kdf_hkdf_sha512.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_pwhash_argon2i.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\randombytes_internal_random.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_generichash.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_secretbox_xsalsa20poly1305.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_secretbox.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_scalarmult_ed25519.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_ipcrypt.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_box_curve25519xsalsa20poly1305.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_generichash_blake2b.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\private\\ed25519_ref10.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\private\\softaes.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\private\\quirks.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\private\\ed25519_ref10_fe_25_5.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\private\\ed25519_ref10_fe_51.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\private\\sse2_64_32.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\private\\asm_cet.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\private\\common.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\private\\mutex.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\private\\chacha20_ietf_ext.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\private\\implementations.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\blamka-round-ref.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\blamka-round-avx2.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\blamka-round-neon.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\blamka-round-wasm32.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\argon2.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\blamka-round-ssse3.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\argon2-encoding.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\blake2b-long.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\blamka-round-avx512f.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\argon2-core.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\scryptsalsa208sha256\\crypto_scrypt.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\scryptsalsa208sha256\\pbkdf2-sha256.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_xof\\shake128\\ref\\shake128_ref.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_xof\\shake256\\ref\\shake256_ref.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_xof\\turboshake256\\ref\\turboshake256_ref.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_xof\\turboshake128\\ref\\turboshake128_ref.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_shorthash\\siphash24\\ref\\shorthash_siphash_ref.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_scalarmult\\curve25519\\scalarmult_curve25519.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_scalarmult\\curve25519\\sandy2x\\consts_namespace.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_scalarmult\\curve25519\\sandy2x\\ladder_namespace.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_scalarmult\\curve25519\\sandy2x\\fe.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_scalarmult\\curve25519\\sandy2x\\ladder.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_scalarmult\\curve25519\\sandy2x\\fe51.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_scalarmult\\curve25519\\sandy2x\\curve25519_sandy2x.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_scalarmult\\curve25519\\sandy2x\\fe51_namespace.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_scalarmult\\curve25519\\ref10\\x25519_ref10.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_onetimeauth\\poly1305\\onetimeauth_poly1305.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_onetimeauth\\poly1305\\donna\\poly1305_donna.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_onetimeauth\\poly1305\\donna\\poly1305_donna64.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_onetimeauth\\poly1305\\donna\\poly1305_donna32.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_onetimeauth\\poly1305\\sse2\\poly1305_sse2.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_ipcrypt\\ipcrypt_soft.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_ipcrypt\\ipcrypt_aesni.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_ipcrypt\\ipcrypt_armcrypto.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_ipcrypt\\implementations.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\chacha20\\stream_chacha20.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\chacha20\\ref\\chacha20_ref.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\chacha20\\dolbeau\\u4.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\chacha20\\dolbeau\\chacha20_dolbeau-ssse3.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\chacha20\\dolbeau\\u0.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\chacha20\\dolbeau\\u1.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\chacha20\\dolbeau\\chacha20_dolbeau-avx2.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\chacha20\\dolbeau\\u8.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\salsa20\\stream_salsa20.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\salsa20\\ref\\salsa20_ref.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\salsa20\\xmm6int\\u4.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\salsa20\\xmm6int\\u0.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\salsa20\\xmm6int\\u1.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\salsa20\\xmm6int\\salsa20_xmm6int-avx2.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\salsa20\\xmm6int\\u8.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\salsa20\\xmm6int\\salsa20_xmm6int-sse2.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\salsa20\\xmm6\\salsa20_xmm6-asm_namespace.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\salsa20\\xmm6\\salsa20_xmm6.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_aead\\aegis128l\\aegis128l_armcrypto.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_aead\\aegis128l\\aegis128l_aesni.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_aead\\aegis128l\\aegis128l_soft.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_aead\\aegis128l\\aegis128l_common.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_aead\\aegis128l\\implementations.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_aead\\aegis256\\aegis256_aesni.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_aead\\aegis256\\aegis256_common.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_aead\\aegis256\\implementations.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_aead\\aegis256\\aegis256_armcrypto.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_aead\\aegis256\\aegis256_soft.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_kem\\mlkem768\\ref\\kem_mlkem768_ref.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_core\\keccak1600\\ref\\keccak1600_ref.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_core\\keccak1600\\armsha3\\keccak1600_armsha3.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_core\\ed25519\\core_h2c.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_core\\ed25519\\ref10\\fe_25_5\\constants.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_core\\ed25519\\ref10\\fe_25_5\\fe.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_core\\ed25519\\ref10\\fe_25_5\\base2.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_core\\ed25519\\ref10\\fe_25_5\\base.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_core\\ed25519\\ref10\\fe_51\\constants.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_core\\ed25519\\ref10\\fe_51\\fe.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_core\\ed25519\\ref10\\fe_51\\base2.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_core\\ed25519\\ref10\\fe_51\\base.h\" />\r\n    <ClInclude Include=\"..\\..\\resource.h\" />\r\n  </ItemGroup>\r\n  <ItemGroup>\r\n    <ResourceCompile Include=\"..\\..\\resource.rc\">\r\n    </ResourceCompile>\r\n  </ItemGroup>\r\n  <Import Project=\"$(VCTargetsPath)\\Microsoft.Cpp.targets\" />\r\n  <ImportGroup Label=\"ExtensionTargets\">\r\n  </ImportGroup>\r\n</Project>\r\n"
  },
  {
    "path": "builds/msvc/vs2012/libsodium/libsodium.vcxproj.filters",
    "content": "﻿<?xml version=\"1.0\" encoding=\"utf-8\"?>\r\n<Project ToolsVersion=\"4.0\" xmlns=\"http://schemas.microsoft.com/developer/msbuild/2003\">\r\n  <ItemGroup>\r\n    <None Include=\"..\\..\\..\\..\\packaging\\nuget\\package.bat\">\r\n      <Filter>packaging</Filter>\r\n    </None>\r\n    <None Include=\"..\\..\\..\\..\\packaging\\nuget\\package.gsl\">\r\n      <Filter>packaging</Filter>\r\n    </None>\r\n    <None Include=\"..\\..\\..\\..\\packaging\\nuget\\package.nuspec\">\r\n      <Filter>packaging</Filter>\r\n    </None>\r\n    <None Include=\"..\\..\\..\\..\\packaging\\nuget\\package.targets\">\r\n      <Filter>packaging</Filter>\r\n    </None>\r\n    <None Include=\"..\\..\\..\\..\\packaging\\nuget\\package.config\">\r\n      <Filter>packaging</Filter>\r\n    </None>\r\n    <Xml Include=\"..\\..\\..\\..\\packaging\\nuget\\package.xml\">\r\n      <Filter>packaging</Filter>\r\n    </Xml>\r\n  </ItemGroup>\r\n  <ItemGroup>\r\n    <ResourceCompile Include=\"..\\..\\resource.rc\" />\r\n  </ItemGroup>\r\n  <ItemGroup>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_generichash\\crypto_generichash.c\">\r\n      <Filter>crypto_generichash</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_generichash\\blake2b\\generichash_blake2.c\">\r\n      <Filter>crypto_generichash\\blake2b</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_generichash\\blake2b\\ref\\blake2b-compress-ref.c\">\r\n      <Filter>crypto_generichash\\blake2b\\ref</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_generichash\\blake2b\\ref\\blake2b-compress-ssse3.c\">\r\n      <Filter>crypto_generichash\\blake2b\\ref</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_generichash\\blake2b\\ref\\blake2b-compress-avx2.c\">\r\n      <Filter>crypto_generichash\\blake2b\\ref</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_generichash\\blake2b\\ref\\blake2b-compress-sse41.c\">\r\n      <Filter>crypto_generichash\\blake2b\\ref</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_generichash\\blake2b\\ref\\generichash_blake2b.c\">\r\n      <Filter>crypto_generichash\\blake2b\\ref</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_generichash\\blake2b\\ref\\blake2b-ref.c\">\r\n      <Filter>crypto_generichash\\blake2b\\ref</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_kx\\crypto_kx.c\">\r\n      <Filter>crypto_kx</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_sign\\crypto_sign.c\">\r\n      <Filter>crypto_sign</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_sign\\ed25519\\sign_ed25519.c\">\r\n      <Filter>crypto_sign\\ed25519</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_sign\\ed25519\\ref10\\sign.c\">\r\n      <Filter>crypto_sign\\ed25519\\ref10</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_sign\\ed25519\\ref10\\keypair.c\">\r\n      <Filter>crypto_sign\\ed25519\\ref10</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_sign\\ed25519\\ref10\\open.c\">\r\n      <Filter>crypto_sign\\ed25519\\ref10</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_secretbox\\crypto_secretbox.c\">\r\n      <Filter>crypto_secretbox</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_secretbox\\crypto_secretbox_easy.c\">\r\n      <Filter>crypto_secretbox</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_secretbox\\xsalsa20poly1305\\secretbox_xsalsa20poly1305.c\">\r\n      <Filter>crypto_secretbox\\xsalsa20poly1305</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_secretbox\\xchacha20poly1305\\secretbox_xchacha20poly1305.c\">\r\n      <Filter>crypto_secretbox\\xchacha20poly1305</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\crypto_pwhash.c\">\r\n      <Filter>crypto_pwhash</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\blake2b-long.c\">\r\n      <Filter>crypto_pwhash\\argon2</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\argon2-fill-block-wasm32.c\">\r\n      <Filter>crypto_pwhash\\argon2</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\argon2-core.c\">\r\n      <Filter>crypto_pwhash\\argon2</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\argon2-fill-block-avx512f.c\">\r\n      <Filter>crypto_pwhash\\argon2</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\argon2-fill-block-ref.c\">\r\n      <Filter>crypto_pwhash\\argon2</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\argon2-fill-block-ssse3.c\">\r\n      <Filter>crypto_pwhash\\argon2</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\pwhash_argon2i.c\">\r\n      <Filter>crypto_pwhash\\argon2</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\argon2-fill-block-neon.c\">\r\n      <Filter>crypto_pwhash\\argon2</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\pwhash_argon2id.c\">\r\n      <Filter>crypto_pwhash\\argon2</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\argon2.c\">\r\n      <Filter>crypto_pwhash\\argon2</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\argon2-fill-block-avx2.c\">\r\n      <Filter>crypto_pwhash\\argon2</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\argon2-encoding.c\">\r\n      <Filter>crypto_pwhash\\argon2</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\scryptsalsa208sha256\\scrypt_platform.c\">\r\n      <Filter>crypto_pwhash\\scryptsalsa208sha256</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\scryptsalsa208sha256\\crypto_scrypt-common.c\">\r\n      <Filter>crypto_pwhash\\scryptsalsa208sha256</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\scryptsalsa208sha256\\pwhash_scryptsalsa208sha256.c\">\r\n      <Filter>crypto_pwhash\\scryptsalsa208sha256</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\scryptsalsa208sha256\\pbkdf2-sha256.c\">\r\n      <Filter>crypto_pwhash\\scryptsalsa208sha256</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\scryptsalsa208sha256\\nosse\\pwhash_scryptsalsa208sha256_nosse.c\">\r\n      <Filter>crypto_pwhash\\scryptsalsa208sha256\\nosse</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\scryptsalsa208sha256\\sse\\pwhash_scryptsalsa208sha256_sse.c\">\r\n      <Filter>crypto_pwhash\\scryptsalsa208sha256\\sse</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_xof\\shake128\\xof_shake128.c\">\r\n      <Filter>crypto_xof\\shake128</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_xof\\shake128\\ref\\shake128_ref.c\">\r\n      <Filter>crypto_xof\\shake128\\ref</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_xof\\shake256\\xof_shake256.c\">\r\n      <Filter>crypto_xof\\shake256</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_xof\\shake256\\ref\\shake256_ref.c\">\r\n      <Filter>crypto_xof\\shake256\\ref</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_xof\\turboshake256\\xof_turboshake256.c\">\r\n      <Filter>crypto_xof\\turboshake256</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_xof\\turboshake256\\ref\\turboshake256_ref.c\">\r\n      <Filter>crypto_xof\\turboshake256\\ref</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_xof\\turboshake128\\xof_turboshake128.c\">\r\n      <Filter>crypto_xof\\turboshake128</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_xof\\turboshake128\\ref\\turboshake128_ref.c\">\r\n      <Filter>crypto_xof\\turboshake128\\ref</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_verify\\verify.c\">\r\n      <Filter>crypto_verify</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_auth\\crypto_auth.c\">\r\n      <Filter>crypto_auth</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_auth\\hmacsha512\\auth_hmacsha512.c\">\r\n      <Filter>crypto_auth\\hmacsha512</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_auth\\hmacsha512256\\auth_hmacsha512256.c\">\r\n      <Filter>crypto_auth\\hmacsha512256</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_auth\\hmacsha256\\auth_hmacsha256.c\">\r\n      <Filter>crypto_auth\\hmacsha256</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_kdf\\crypto_kdf.c\">\r\n      <Filter>crypto_kdf</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_kdf\\blake2b\\kdf_blake2b.c\">\r\n      <Filter>crypto_kdf\\blake2b</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_kdf\\hkdf\\kdf_hkdf_sha256.c\">\r\n      <Filter>crypto_kdf\\hkdf</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_kdf\\hkdf\\kdf_hkdf_sha512.c\">\r\n      <Filter>crypto_kdf\\hkdf</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_shorthash\\crypto_shorthash.c\">\r\n      <Filter>crypto_shorthash</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_shorthash\\siphash24\\shorthash_siphash24.c\">\r\n      <Filter>crypto_shorthash\\siphash24</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_shorthash\\siphash24\\shorthash_siphashx24.c\">\r\n      <Filter>crypto_shorthash\\siphash24</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_shorthash\\siphash24\\ref\\shorthash_siphashx24_ref.c\">\r\n      <Filter>crypto_shorthash\\siphash24\\ref</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_shorthash\\siphash24\\ref\\shorthash_siphash24_ref.c\">\r\n      <Filter>crypto_shorthash\\siphash24\\ref</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_scalarmult\\crypto_scalarmult.c\">\r\n      <Filter>crypto_scalarmult</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_scalarmult\\ristretto255\\ref10\\scalarmult_ristretto255_ref10.c\">\r\n      <Filter>crypto_scalarmult\\ristretto255\\ref10</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_scalarmult\\ed25519\\ref10\\scalarmult_ed25519_ref10.c\">\r\n      <Filter>crypto_scalarmult\\ed25519\\ref10</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_scalarmult\\curve25519\\scalarmult_curve25519.c\">\r\n      <Filter>crypto_scalarmult\\curve25519</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_scalarmult\\curve25519\\sandy2x\\curve25519_sandy2x.c\">\r\n      <Filter>crypto_scalarmult\\curve25519\\sandy2x</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_scalarmult\\curve25519\\sandy2x\\fe_frombytes_sandy2x.c\">\r\n      <Filter>crypto_scalarmult\\curve25519\\sandy2x</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_scalarmult\\curve25519\\sandy2x\\fe51_invert.c\">\r\n      <Filter>crypto_scalarmult\\curve25519\\sandy2x</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_scalarmult\\curve25519\\ref10\\x25519_ref10.c\">\r\n      <Filter>crypto_scalarmult\\curve25519\\ref10</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_onetimeauth\\crypto_onetimeauth.c\">\r\n      <Filter>crypto_onetimeauth</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_onetimeauth\\poly1305\\onetimeauth_poly1305.c\">\r\n      <Filter>crypto_onetimeauth\\poly1305</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_onetimeauth\\poly1305\\donna\\poly1305_donna.c\">\r\n      <Filter>crypto_onetimeauth\\poly1305\\donna</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_onetimeauth\\poly1305\\sse2\\poly1305_sse2.c\">\r\n      <Filter>crypto_onetimeauth\\poly1305\\sse2</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\randombytes\\randombytes.c\">\r\n      <Filter>randombytes</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\randombytes\\sysrandom\\randombytes_sysrandom.c\">\r\n      <Filter>randombytes\\sysrandom</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\randombytes\\internal\\randombytes_internal_random.c\">\r\n      <Filter>randombytes\\internal</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_box\\crypto_box_easy.c\">\r\n      <Filter>crypto_box</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_box\\crypto_box_seal.c\">\r\n      <Filter>crypto_box</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_box\\crypto_box.c\">\r\n      <Filter>crypto_box</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_box\\curve25519xsalsa20poly1305\\box_curve25519xsalsa20poly1305.c\">\r\n      <Filter>crypto_box\\curve25519xsalsa20poly1305</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_box\\curve25519xchacha20poly1305\\box_curve25519xchacha20poly1305.c\">\r\n      <Filter>crypto_box\\curve25519xchacha20poly1305</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_box\\curve25519xchacha20poly1305\\box_seal_curve25519xchacha20poly1305.c\">\r\n      <Filter>crypto_box\\curve25519xchacha20poly1305</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\sodium\\codecs.c\">\r\n      <Filter>sodium</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\sodium\\runtime.c\">\r\n      <Filter>sodium</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\sodium\\core.c\">\r\n      <Filter>sodium</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\sodium\\utils.c\">\r\n      <Filter>sodium</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\sodium\\version.c\">\r\n      <Filter>sodium</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_ipcrypt\\ipcrypt_armcrypto.c\">\r\n      <Filter>crypto_ipcrypt</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_ipcrypt\\crypto_ipcrypt.c\">\r\n      <Filter>crypto_ipcrypt</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_ipcrypt\\ipcrypt_soft.c\">\r\n      <Filter>crypto_ipcrypt</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_ipcrypt\\ipcrypt_aesni.c\">\r\n      <Filter>crypto_ipcrypt</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\crypto_stream.c\">\r\n      <Filter>crypto_stream</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\xchacha20\\stream_xchacha20.c\">\r\n      <Filter>crypto_stream\\xchacha20</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\chacha20\\stream_chacha20.c\">\r\n      <Filter>crypto_stream\\chacha20</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\chacha20\\ref\\chacha20_ref.c\">\r\n      <Filter>crypto_stream\\chacha20\\ref</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\chacha20\\dolbeau\\chacha20_dolbeau-avx2.c\">\r\n      <Filter>crypto_stream\\chacha20\\dolbeau</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\chacha20\\dolbeau\\chacha20_dolbeau-ssse3.c\">\r\n      <Filter>crypto_stream\\chacha20\\dolbeau</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\salsa20\\stream_salsa20.c\">\r\n      <Filter>crypto_stream\\salsa20</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\salsa20\\ref\\salsa20_ref.c\">\r\n      <Filter>crypto_stream\\salsa20\\ref</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\salsa20\\xmm6int\\salsa20_xmm6int-avx2.c\">\r\n      <Filter>crypto_stream\\salsa20\\xmm6int</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\salsa20\\xmm6int\\salsa20_xmm6int-sse2.c\">\r\n      <Filter>crypto_stream\\salsa20\\xmm6int</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\salsa20\\xmm6\\salsa20_xmm6.c\">\r\n      <Filter>crypto_stream\\salsa20\\xmm6</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\salsa2012\\stream_salsa2012.c\">\r\n      <Filter>crypto_stream\\salsa2012</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\salsa2012\\ref\\stream_salsa2012_ref.c\">\r\n      <Filter>crypto_stream\\salsa2012\\ref</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\salsa208\\stream_salsa208.c\">\r\n      <Filter>crypto_stream\\salsa208</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\salsa208\\ref\\stream_salsa208_ref.c\">\r\n      <Filter>crypto_stream\\salsa208\\ref</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\xsalsa20\\stream_xsalsa20.c\">\r\n      <Filter>crypto_stream\\xsalsa20</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_hash\\crypto_hash.c\">\r\n      <Filter>crypto_hash</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_hash\\sha512\\hash_sha512.c\">\r\n      <Filter>crypto_hash\\sha512</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_hash\\sha512\\cp\\hash_sha512_cp.c\">\r\n      <Filter>crypto_hash\\sha512\\cp</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_hash\\sha3\\hash_sha3.c\">\r\n      <Filter>crypto_hash\\sha3</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_hash\\sha256\\hash_sha256.c\">\r\n      <Filter>crypto_hash\\sha256</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_hash\\sha256\\cp\\hash_sha256_cp.c\">\r\n      <Filter>crypto_hash\\sha256\\cp</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_aead\\xchacha20poly1305\\aead_xchacha20poly1305.c\">\r\n      <Filter>crypto_aead\\xchacha20poly1305</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_aead\\aegis128l\\aegis128l_soft.c\">\r\n      <Filter>crypto_aead\\aegis128l</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_aead\\aegis128l\\aead_aegis128l.c\">\r\n      <Filter>crypto_aead\\aegis128l</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_aead\\aegis128l\\aegis128l_aesni.c\">\r\n      <Filter>crypto_aead\\aegis128l</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_aead\\aegis128l\\aegis128l_armcrypto.c\">\r\n      <Filter>crypto_aead\\aegis128l</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_aead\\aegis256\\aead_aegis256.c\">\r\n      <Filter>crypto_aead\\aegis256</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_aead\\aegis256\\aegis256_soft.c\">\r\n      <Filter>crypto_aead\\aegis256</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_aead\\aegis256\\aegis256_armcrypto.c\">\r\n      <Filter>crypto_aead\\aegis256</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_aead\\aegis256\\aegis256_aesni.c\">\r\n      <Filter>crypto_aead\\aegis256</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_aead\\aes256gcm\\aead_aes256gcm.c\">\r\n      <Filter>crypto_aead\\aes256gcm</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_aead\\aes256gcm\\aesni\\aead_aes256gcm_aesni.c\">\r\n      <Filter>crypto_aead\\aes256gcm\\aesni</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_aead\\aes256gcm\\armcrypto\\aead_aes256gcm_armcrypto.c\">\r\n      <Filter>crypto_aead\\aes256gcm\\armcrypto</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_aead\\chacha20poly1305\\aead_chacha20poly1305.c\">\r\n      <Filter>crypto_aead\\chacha20poly1305</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_kem\\crypto_kem.c\">\r\n      <Filter>crypto_kem</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_kem\\xwing\\kem_xwing.c\">\r\n      <Filter>crypto_kem\\xwing</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_kem\\mlkem768\\kem_mlkem768.c\">\r\n      <Filter>crypto_kem\\mlkem768</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_kem\\mlkem768\\ref\\kem_mlkem768_ref.c\">\r\n      <Filter>crypto_kem\\mlkem768\\ref</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_secretstream\\xchacha20poly1305\\secretstream_xchacha20poly1305.c\">\r\n      <Filter>crypto_secretstream\\xchacha20poly1305</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_core\\keccak1600\\keccak1600.c\">\r\n      <Filter>crypto_core\\keccak1600</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_core\\keccak1600\\ref\\keccak1600_ref.c\">\r\n      <Filter>crypto_core\\keccak1600\\ref</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_core\\keccak1600\\armsha3\\keccak1600_armsha3.c\">\r\n      <Filter>crypto_core\\keccak1600\\armsha3</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_core\\salsa\\ref\\core_salsa_ref.c\">\r\n      <Filter>crypto_core\\salsa\\ref</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_core\\hchacha20\\core_hchacha20.c\">\r\n      <Filter>crypto_core\\hchacha20</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_core\\hsalsa20\\core_hsalsa20.c\">\r\n      <Filter>crypto_core\\hsalsa20</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_core\\hsalsa20\\ref2\\core_hsalsa20_ref2.c\">\r\n      <Filter>crypto_core\\hsalsa20\\ref2</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_core\\softaes\\softaes.c\">\r\n      <Filter>crypto_core\\softaes</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_core\\ed25519\\core_ed25519.c\">\r\n      <Filter>crypto_core\\ed25519</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_core\\ed25519\\core_ristretto255.c\">\r\n      <Filter>crypto_core\\ed25519</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_core\\ed25519\\core_h2c.c\">\r\n      <Filter>crypto_core\\ed25519</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_core\\ed25519\\ref10\\ed25519_ref10.c\">\r\n      <Filter>crypto_core\\ed25519\\ref10</Filter>\r\n    </ClCompile>\r\n  </ItemGroup>\r\n  <ItemGroup>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_generichash\\blake2b\\ref\\blake2b-load-sse2.h\">\r\n      <Filter>crypto_generichash\\blake2b\\ref</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_generichash\\blake2b\\ref\\blake2b-load-avx2.h\">\r\n      <Filter>crypto_generichash\\blake2b\\ref</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_generichash\\blake2b\\ref\\blake2.h\">\r\n      <Filter>crypto_generichash\\blake2b\\ref</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_generichash\\blake2b\\ref\\blake2b-compress-ssse3.h\">\r\n      <Filter>crypto_generichash\\blake2b\\ref</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_generichash\\blake2b\\ref\\blake2b-load-sse41.h\">\r\n      <Filter>crypto_generichash\\blake2b\\ref</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_generichash\\blake2b\\ref\\blake2b-compress-avx2.h\">\r\n      <Filter>crypto_generichash\\blake2b\\ref</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_generichash\\blake2b\\ref\\blake2b-compress-sse41.h\">\r\n      <Filter>crypto_generichash\\blake2b\\ref</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_sign\\ed25519\\ref10\\sign_ed25519_ref10.h\">\r\n      <Filter>crypto_sign\\ed25519\\ref10</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium.h\">\r\n      <Filter>include</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_stream_salsa2012.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_auth.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\utils.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_core_hchacha20.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_aead_aegis256.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_hash_sha512.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\core.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\export.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_core_salsa20.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_shorthash_siphash24.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\randombytes.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_hash_sha256.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_stream.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_auth_hmacsha512.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_xof_shake128.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_aead_xchacha20poly1305.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_stream_salsa20.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_onetimeauth_poly1305.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_kem_mlkem768.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_scalarmult_ristretto255.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_kx.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_hash.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_sign.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_kdf.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_auth_hmacsha256.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_box.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_verify_32.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_core_ristretto255.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_stream_xchacha20.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_core_salsa208.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_auth_hmacsha512256.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_xof_turboshake128.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_aead_aegis128l.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_aead_chacha20poly1305.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\randombytes_sysrandom.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_xof_turboshake256.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\runtime.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_stream_salsa208.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_aead_aes256gcm.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_core_salsa2012.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_secretbox_xchacha20poly1305.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_kem.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_core_keccak1600.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_scalarmult.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_pwhash.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_verify_16.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_stream_chacha20.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_stream_xsalsa20.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_core_hsalsa20.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_kdf_blake2b.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_scalarmult_curve25519.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_xof_shake256.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_shorthash.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_kdf_hkdf_sha256.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_pwhash_argon2id.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_secretstream_xchacha20poly1305.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_pwhash_scryptsalsa208sha256.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_hash_sha3.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_kem_xwing.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_sign_ed25519.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_onetimeauth.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_verify_64.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_box_curve25519xchacha20poly1305.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_core_ed25519.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_kdf_hkdf_sha512.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_pwhash_argon2i.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\randombytes_internal_random.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_generichash.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_secretbox_xsalsa20poly1305.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_secretbox.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_scalarmult_ed25519.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_ipcrypt.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_box_curve25519xsalsa20poly1305.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_generichash_blake2b.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\private\\ed25519_ref10.h\">\r\n      <Filter>include\\sodium\\private</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\private\\softaes.h\">\r\n      <Filter>include\\sodium\\private</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\private\\quirks.h\">\r\n      <Filter>include\\sodium\\private</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\private\\ed25519_ref10_fe_25_5.h\">\r\n      <Filter>include\\sodium\\private</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\private\\ed25519_ref10_fe_51.h\">\r\n      <Filter>include\\sodium\\private</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\private\\sse2_64_32.h\">\r\n      <Filter>include\\sodium\\private</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\private\\asm_cet.h\">\r\n      <Filter>include\\sodium\\private</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\private\\common.h\">\r\n      <Filter>include\\sodium\\private</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\private\\mutex.h\">\r\n      <Filter>include\\sodium\\private</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\private\\chacha20_ietf_ext.h\">\r\n      <Filter>include\\sodium\\private</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\private\\implementations.h\">\r\n      <Filter>include\\sodium\\private</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\blamka-round-ref.h\">\r\n      <Filter>crypto_pwhash\\argon2</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\blamka-round-avx2.h\">\r\n      <Filter>crypto_pwhash\\argon2</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\blamka-round-neon.h\">\r\n      <Filter>crypto_pwhash\\argon2</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\blamka-round-wasm32.h\">\r\n      <Filter>crypto_pwhash\\argon2</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\argon2.h\">\r\n      <Filter>crypto_pwhash\\argon2</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\blamka-round-ssse3.h\">\r\n      <Filter>crypto_pwhash\\argon2</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\argon2-encoding.h\">\r\n      <Filter>crypto_pwhash\\argon2</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\blake2b-long.h\">\r\n      <Filter>crypto_pwhash\\argon2</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\blamka-round-avx512f.h\">\r\n      <Filter>crypto_pwhash\\argon2</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\argon2-core.h\">\r\n      <Filter>crypto_pwhash\\argon2</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\scryptsalsa208sha256\\crypto_scrypt.h\">\r\n      <Filter>crypto_pwhash\\scryptsalsa208sha256</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\scryptsalsa208sha256\\pbkdf2-sha256.h\">\r\n      <Filter>crypto_pwhash\\scryptsalsa208sha256</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_xof\\shake128\\ref\\shake128_ref.h\">\r\n      <Filter>crypto_xof\\shake128\\ref</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_xof\\shake256\\ref\\shake256_ref.h\">\r\n      <Filter>crypto_xof\\shake256\\ref</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_xof\\turboshake256\\ref\\turboshake256_ref.h\">\r\n      <Filter>crypto_xof\\turboshake256\\ref</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_xof\\turboshake128\\ref\\turboshake128_ref.h\">\r\n      <Filter>crypto_xof\\turboshake128\\ref</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_shorthash\\siphash24\\ref\\shorthash_siphash_ref.h\">\r\n      <Filter>crypto_shorthash\\siphash24\\ref</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_scalarmult\\curve25519\\scalarmult_curve25519.h\">\r\n      <Filter>crypto_scalarmult\\curve25519</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_scalarmult\\curve25519\\sandy2x\\consts_namespace.h\">\r\n      <Filter>crypto_scalarmult\\curve25519\\sandy2x</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_scalarmult\\curve25519\\sandy2x\\ladder_namespace.h\">\r\n      <Filter>crypto_scalarmult\\curve25519\\sandy2x</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_scalarmult\\curve25519\\sandy2x\\fe.h\">\r\n      <Filter>crypto_scalarmult\\curve25519\\sandy2x</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_scalarmult\\curve25519\\sandy2x\\ladder.h\">\r\n      <Filter>crypto_scalarmult\\curve25519\\sandy2x</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_scalarmult\\curve25519\\sandy2x\\fe51.h\">\r\n      <Filter>crypto_scalarmult\\curve25519\\sandy2x</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_scalarmult\\curve25519\\sandy2x\\curve25519_sandy2x.h\">\r\n      <Filter>crypto_scalarmult\\curve25519\\sandy2x</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_scalarmult\\curve25519\\sandy2x\\fe51_namespace.h\">\r\n      <Filter>crypto_scalarmult\\curve25519\\sandy2x</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_scalarmult\\curve25519\\ref10\\x25519_ref10.h\">\r\n      <Filter>crypto_scalarmult\\curve25519\\ref10</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_onetimeauth\\poly1305\\onetimeauth_poly1305.h\">\r\n      <Filter>crypto_onetimeauth\\poly1305</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_onetimeauth\\poly1305\\donna\\poly1305_donna.h\">\r\n      <Filter>crypto_onetimeauth\\poly1305\\donna</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_onetimeauth\\poly1305\\donna\\poly1305_donna64.h\">\r\n      <Filter>crypto_onetimeauth\\poly1305\\donna</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_onetimeauth\\poly1305\\donna\\poly1305_donna32.h\">\r\n      <Filter>crypto_onetimeauth\\poly1305\\donna</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_onetimeauth\\poly1305\\sse2\\poly1305_sse2.h\">\r\n      <Filter>crypto_onetimeauth\\poly1305\\sse2</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_ipcrypt\\ipcrypt_soft.h\">\r\n      <Filter>crypto_ipcrypt</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_ipcrypt\\ipcrypt_aesni.h\">\r\n      <Filter>crypto_ipcrypt</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_ipcrypt\\ipcrypt_armcrypto.h\">\r\n      <Filter>crypto_ipcrypt</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_ipcrypt\\implementations.h\">\r\n      <Filter>crypto_ipcrypt</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\chacha20\\stream_chacha20.h\">\r\n      <Filter>crypto_stream\\chacha20</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\chacha20\\ref\\chacha20_ref.h\">\r\n      <Filter>crypto_stream\\chacha20\\ref</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\chacha20\\dolbeau\\u4.h\">\r\n      <Filter>crypto_stream\\chacha20\\dolbeau</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\chacha20\\dolbeau\\chacha20_dolbeau-ssse3.h\">\r\n      <Filter>crypto_stream\\chacha20\\dolbeau</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\chacha20\\dolbeau\\u0.h\">\r\n      <Filter>crypto_stream\\chacha20\\dolbeau</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\chacha20\\dolbeau\\u1.h\">\r\n      <Filter>crypto_stream\\chacha20\\dolbeau</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\chacha20\\dolbeau\\chacha20_dolbeau-avx2.h\">\r\n      <Filter>crypto_stream\\chacha20\\dolbeau</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\chacha20\\dolbeau\\u8.h\">\r\n      <Filter>crypto_stream\\chacha20\\dolbeau</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\salsa20\\stream_salsa20.h\">\r\n      <Filter>crypto_stream\\salsa20</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\salsa20\\ref\\salsa20_ref.h\">\r\n      <Filter>crypto_stream\\salsa20\\ref</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\salsa20\\xmm6int\\u4.h\">\r\n      <Filter>crypto_stream\\salsa20\\xmm6int</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\salsa20\\xmm6int\\u0.h\">\r\n      <Filter>crypto_stream\\salsa20\\xmm6int</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\salsa20\\xmm6int\\u1.h\">\r\n      <Filter>crypto_stream\\salsa20\\xmm6int</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\salsa20\\xmm6int\\salsa20_xmm6int-avx2.h\">\r\n      <Filter>crypto_stream\\salsa20\\xmm6int</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\salsa20\\xmm6int\\u8.h\">\r\n      <Filter>crypto_stream\\salsa20\\xmm6int</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\salsa20\\xmm6int\\salsa20_xmm6int-sse2.h\">\r\n      <Filter>crypto_stream\\salsa20\\xmm6int</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\salsa20\\xmm6\\salsa20_xmm6-asm_namespace.h\">\r\n      <Filter>crypto_stream\\salsa20\\xmm6</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\salsa20\\xmm6\\salsa20_xmm6.h\">\r\n      <Filter>crypto_stream\\salsa20\\xmm6</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_aead\\aegis128l\\aegis128l_armcrypto.h\">\r\n      <Filter>crypto_aead\\aegis128l</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_aead\\aegis128l\\aegis128l_aesni.h\">\r\n      <Filter>crypto_aead\\aegis128l</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_aead\\aegis128l\\aegis128l_soft.h\">\r\n      <Filter>crypto_aead\\aegis128l</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_aead\\aegis128l\\aegis128l_common.h\">\r\n      <Filter>crypto_aead\\aegis128l</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_aead\\aegis128l\\implementations.h\">\r\n      <Filter>crypto_aead\\aegis128l</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_aead\\aegis256\\aegis256_aesni.h\">\r\n      <Filter>crypto_aead\\aegis256</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_aead\\aegis256\\aegis256_common.h\">\r\n      <Filter>crypto_aead\\aegis256</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_aead\\aegis256\\implementations.h\">\r\n      <Filter>crypto_aead\\aegis256</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_aead\\aegis256\\aegis256_armcrypto.h\">\r\n      <Filter>crypto_aead\\aegis256</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_aead\\aegis256\\aegis256_soft.h\">\r\n      <Filter>crypto_aead\\aegis256</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_kem\\mlkem768\\ref\\kem_mlkem768_ref.h\">\r\n      <Filter>crypto_kem\\mlkem768\\ref</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_core\\keccak1600\\ref\\keccak1600_ref.h\">\r\n      <Filter>crypto_core\\keccak1600\\ref</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_core\\keccak1600\\armsha3\\keccak1600_armsha3.h\">\r\n      <Filter>crypto_core\\keccak1600\\armsha3</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_core\\ed25519\\core_h2c.h\">\r\n      <Filter>crypto_core\\ed25519</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_core\\ed25519\\ref10\\fe_25_5\\constants.h\">\r\n      <Filter>crypto_core\\ed25519\\ref10\\fe_25_5</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_core\\ed25519\\ref10\\fe_25_5\\fe.h\">\r\n      <Filter>crypto_core\\ed25519\\ref10\\fe_25_5</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_core\\ed25519\\ref10\\fe_25_5\\base2.h\">\r\n      <Filter>crypto_core\\ed25519\\ref10\\fe_25_5</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_core\\ed25519\\ref10\\fe_25_5\\base.h\">\r\n      <Filter>crypto_core\\ed25519\\ref10\\fe_25_5</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_core\\ed25519\\ref10\\fe_51\\constants.h\">\r\n      <Filter>crypto_core\\ed25519\\ref10\\fe_51</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_core\\ed25519\\ref10\\fe_51\\fe.h\">\r\n      <Filter>crypto_core\\ed25519\\ref10\\fe_51</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_core\\ed25519\\ref10\\fe_51\\base2.h\">\r\n      <Filter>crypto_core\\ed25519\\ref10\\fe_51</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_core\\ed25519\\ref10\\fe_51\\base.h\">\r\n      <Filter>crypto_core\\ed25519\\ref10\\fe_51</Filter>\r\n    </ClInclude>\r\n  </ItemGroup>\r\n  <ItemGroup>\r\n    <Filter Include=\"crypto_aead\">\r\n      <UniqueIdentifier>{a6837e41-3751-38c9-bb90-dd59d5f4af7b}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_aead\\aegis128l\">\r\n      <UniqueIdentifier>{9e2a023d-fef1-3231-90ba-9a0ffc9bc9ab}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_aead\\aegis256\">\r\n      <UniqueIdentifier>{6897a4cc-0091-3970-b712-c0ac75c16b67}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_aead\\aes256gcm\">\r\n      <UniqueIdentifier>{3e53394c-b59c-30cc-ae69-a4f46f9edfa3}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_aead\\aes256gcm\\aesni\">\r\n      <UniqueIdentifier>{7eb51140-a50f-3f50-b379-83677a82496c}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_aead\\aes256gcm\\armcrypto\">\r\n      <UniqueIdentifier>{507bb9aa-b65c-3034-946b-bcd375b7deaa}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_aead\\chacha20poly1305\">\r\n      <UniqueIdentifier>{1f4d6dd1-517f-3eeb-b974-2304ada5e67a}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_aead\\xchacha20poly1305\">\r\n      <UniqueIdentifier>{3122f223-e6c2-3ab1-ad85-ca289b47419e}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_auth\">\r\n      <UniqueIdentifier>{0a3af0f3-56f7-3551-a64e-6284feccc423}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_auth\\hmacsha256\">\r\n      <UniqueIdentifier>{64e89b4f-eec9-38c9-90f2-4881bf5e84c0}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_auth\\hmacsha512\">\r\n      <UniqueIdentifier>{0c0b4001-ae11-3d0f-8e73-75ac9b6e1ae8}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_auth\\hmacsha512256\">\r\n      <UniqueIdentifier>{f5065d74-beda-3e1e-819a-f606279c7fe9}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_box\">\r\n      <UniqueIdentifier>{f7aedb93-94a6-3ede-9374-ff41daca4841}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_box\\curve25519xchacha20poly1305\">\r\n      <UniqueIdentifier>{0e7473c9-9c69-36b3-ab6c-d953647a15a6}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_box\\curve25519xsalsa20poly1305\">\r\n      <UniqueIdentifier>{d75db64c-eb08-3f10-9b99-1b6e6827f348}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_core\">\r\n      <UniqueIdentifier>{73194d5d-588a-342f-bee6-f28b4486f20b}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_core\\ed25519\">\r\n      <UniqueIdentifier>{7c5e6f81-e4ce-3018-a776-a1f125072d73}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_core\\ed25519\\ref10\">\r\n      <UniqueIdentifier>{76990c08-d692-367f-b286-c728a8cad6bf}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_core\\ed25519\\ref10\\fe_25_5\">\r\n      <UniqueIdentifier>{bf04f786-7862-3bde-aeba-ed82ee59ca22}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_core\\ed25519\\ref10\\fe_51\">\r\n      <UniqueIdentifier>{98b6126a-3725-3707-a4cc-ff3af657cba0}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_core\\hchacha20\">\r\n      <UniqueIdentifier>{8b704d11-af1f-30c0-9981-479da6d88dc3}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_core\\hsalsa20\">\r\n      <UniqueIdentifier>{342e684b-4e18-311c-953c-8391a544a04f}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_core\\hsalsa20\\ref2\">\r\n      <UniqueIdentifier>{c6b8e28c-7c54-3af7-bee3-2948ba7b2082}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_core\\keccak1600\">\r\n      <UniqueIdentifier>{85c1722f-2d65-30a8-aefb-ebf1cbfe185e}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_core\\keccak1600\\armsha3\">\r\n      <UniqueIdentifier>{855cc78f-1fe0-3ad2-a2ac-5e2b0c01c235}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_core\\keccak1600\\ref\">\r\n      <UniqueIdentifier>{9462f285-fee0-3779-983b-2811dc621f7d}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_core\\salsa\">\r\n      <UniqueIdentifier>{4e9a1d6b-ee07-3bbc-ad78-6d0ba0e6d9d3}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_core\\salsa\\ref\">\r\n      <UniqueIdentifier>{eb259fd9-56f0-32db-a903-6bc1549a7326}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_core\\softaes\">\r\n      <UniqueIdentifier>{05997596-e3d7-3bf1-ad4d-39e4c5fd56f6}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_generichash\">\r\n      <UniqueIdentifier>{e53b6258-fcdd-34c8-96c5-44510a34a390}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_generichash\\blake2b\">\r\n      <UniqueIdentifier>{8bd3b558-2d08-3c3a-81ca-22677dde943b}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_generichash\\blake2b\\ref\">\r\n      <UniqueIdentifier>{16a8dd41-b0ab-39a7-80c8-3052d8b63811}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_hash\">\r\n      <UniqueIdentifier>{d7ec3690-bae7-3653-8c53-66a3142cfcfa}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_hash\\sha256\">\r\n      <UniqueIdentifier>{722ef422-8c03-3008-ba2a-3a7e91c6647c}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_hash\\sha256\\cp\">\r\n      <UniqueIdentifier>{8c7d8b62-7b4f-3eb9-85b7-18e8d925be14}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_hash\\sha3\">\r\n      <UniqueIdentifier>{6df763e3-9707-3014-8cfe-2f9a8a83a872}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_hash\\sha512\">\r\n      <UniqueIdentifier>{8fb6a906-dbd6-3746-9b0f-f49e7028daec}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_hash\\sha512\\cp\">\r\n      <UniqueIdentifier>{f2d6a22b-dd67-3561-90a4-88696169cb7b}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_ipcrypt\">\r\n      <UniqueIdentifier>{5c3b1fe7-203f-36fd-bca5-8d0c4b466d80}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_kdf\">\r\n      <UniqueIdentifier>{aaf59186-1c0d-33cf-a34d-93e14bb87226}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_kdf\\blake2b\">\r\n      <UniqueIdentifier>{3d42d2a2-b192-33dd-9162-508916414707}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_kdf\\hkdf\">\r\n      <UniqueIdentifier>{baf7d894-9298-391d-8dc2-e4c3010f5ddc}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_kem\">\r\n      <UniqueIdentifier>{b9009d4a-dd97-341d-aafb-eeeb77191a49}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_kem\\mlkem768\">\r\n      <UniqueIdentifier>{ab0c8a55-3e1f-307e-82be-8291a3b43735}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_kem\\mlkem768\\ref\">\r\n      <UniqueIdentifier>{70a10765-f8fb-3898-8514-966e48719bc4}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_kem\\xwing\">\r\n      <UniqueIdentifier>{2ef7c851-6598-3be5-88be-9ac5ec867cb0}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_kx\">\r\n      <UniqueIdentifier>{898b6bd5-1360-3a34-adcd-0fade7561685}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_onetimeauth\">\r\n      <UniqueIdentifier>{323c0a15-3c1d-39b2-9ec1-299deb299497}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_onetimeauth\\poly1305\">\r\n      <UniqueIdentifier>{52c2080d-37c0-34c2-864a-c201c728e5d8}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_onetimeauth\\poly1305\\donna\">\r\n      <UniqueIdentifier>{ff618a41-caeb-3a18-ad36-d34b049a8f50}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_onetimeauth\\poly1305\\sse2\">\r\n      <UniqueIdentifier>{ffc3712d-dfe0-3b51-8257-f5ffc9c9cea3}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_pwhash\">\r\n      <UniqueIdentifier>{f54b65b6-71cf-3ab3-9c8c-f89c81846836}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_pwhash\\argon2\">\r\n      <UniqueIdentifier>{1bd97a78-befa-3805-8e9c-80d7c1aff37b}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_pwhash\\scryptsalsa208sha256\">\r\n      <UniqueIdentifier>{e785f104-1212-37bf-8511-cc518b9ace66}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_pwhash\\scryptsalsa208sha256\\nosse\">\r\n      <UniqueIdentifier>{447b993f-59fb-3efd-8c59-a1712c97dfe8}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_pwhash\\scryptsalsa208sha256\\sse\">\r\n      <UniqueIdentifier>{cdb8d233-06b0-3872-a62b-c1ccf4cb4314}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_scalarmult\">\r\n      <UniqueIdentifier>{402a1c5a-d499-333a-a2fa-acd0e6a3c2b2}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_scalarmult\\curve25519\">\r\n      <UniqueIdentifier>{77f5a2e9-2ef1-3a72-b63c-88e8e4b92678}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_scalarmult\\curve25519\\ref10\">\r\n      <UniqueIdentifier>{6c9c7c30-0808-3fad-8a88-944d7645e5d5}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_scalarmult\\curve25519\\sandy2x\">\r\n      <UniqueIdentifier>{5d2fb1a2-f063-32db-a81a-41f79e36fd23}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_scalarmult\\ed25519\">\r\n      <UniqueIdentifier>{7bec6074-fbc7-330b-9e18-7dc3e868569a}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_scalarmult\\ed25519\\ref10\">\r\n      <UniqueIdentifier>{834d4827-81e4-3de3-baa1-a216763f11d6}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_scalarmult\\ristretto255\">\r\n      <UniqueIdentifier>{52bf28eb-7ffd-399a-be35-0df3e8e99c15}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_scalarmult\\ristretto255\\ref10\">\r\n      <UniqueIdentifier>{39cc576f-4b54-3d71-b14c-27445bc4b138}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_secretbox\">\r\n      <UniqueIdentifier>{b9b02bee-5c1f-36d2-b97d-983f865a4cc6}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_secretbox\\xchacha20poly1305\">\r\n      <UniqueIdentifier>{41f1f35b-4639-3424-be85-7dfba02f3c5e}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_secretbox\\xsalsa20poly1305\">\r\n      <UniqueIdentifier>{8bf11d29-2f5a-3f10-8ae6-82229d19c5b0}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_secretstream\">\r\n      <UniqueIdentifier>{62f7ae38-4ce6-3976-acc3-47c462db4fbe}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_secretstream\\xchacha20poly1305\">\r\n      <UniqueIdentifier>{e07a28cd-775a-3798-bfdb-97842d3614d6}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_shorthash\">\r\n      <UniqueIdentifier>{bb073c16-adc8-3cff-80b9-99cf5a28de6c}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_shorthash\\siphash24\">\r\n      <UniqueIdentifier>{63de0ec8-ecde-35e3-8b97-6e9e4da342ee}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_shorthash\\siphash24\\ref\">\r\n      <UniqueIdentifier>{29925210-53eb-342c-8527-7ebc173e668f}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_sign\">\r\n      <UniqueIdentifier>{b2f989b6-87a6-3388-a35c-2d0d59cb4236}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_sign\\ed25519\">\r\n      <UniqueIdentifier>{bc6466a1-57b0-3a35-9973-ad488a4bef8c}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_sign\\ed25519\\ref10\">\r\n      <UniqueIdentifier>{5599d9ab-b5b2-3310-b541-ae0fb70eecf1}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_stream\">\r\n      <UniqueIdentifier>{eaedd08a-46f8-3d12-9e8d-bb3ee3ead5f6}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_stream\\chacha20\">\r\n      <UniqueIdentifier>{806b6ff3-578b-308a-a359-0f5ed8472ecc}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_stream\\chacha20\\dolbeau\">\r\n      <UniqueIdentifier>{5a1d852e-67bb-3dc1-9ec5-99ef74b7faca}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_stream\\chacha20\\ref\">\r\n      <UniqueIdentifier>{33e45d9c-e12a-3e76-9ef2-4f5510244a5b}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_stream\\salsa20\">\r\n      <UniqueIdentifier>{048ba2a8-b22b-346c-9886-668b63c88c68}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_stream\\salsa20\\ref\">\r\n      <UniqueIdentifier>{f08a312f-f8a3-350b-87ab-1f79d33e513f}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_stream\\salsa20\\xmm6\">\r\n      <UniqueIdentifier>{c403f690-cd22-3ed4-9cc7-3f46e73081fd}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_stream\\salsa20\\xmm6int\">\r\n      <UniqueIdentifier>{c34d03f5-cf47-39fe-a5ad-5eb917006203}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_stream\\salsa2012\">\r\n      <UniqueIdentifier>{4da0c5ca-33d1-34e0-9689-12e69ae2dbd6}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_stream\\salsa2012\\ref\">\r\n      <UniqueIdentifier>{dd6b294c-5871-386c-92ec-aa46fcc411d4}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_stream\\salsa208\">\r\n      <UniqueIdentifier>{07aca978-0547-329a-b70b-29aa579cacc5}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_stream\\salsa208\\ref\">\r\n      <UniqueIdentifier>{f171fa05-35c4-32a0-b035-b5d6680ab714}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_stream\\xchacha20\">\r\n      <UniqueIdentifier>{ede2279c-1ba7-3d62-8345-733c6c1965e7}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_stream\\xsalsa20\">\r\n      <UniqueIdentifier>{9c15151b-10dc-3dfe-b97b-a7d8c6b58920}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_verify\">\r\n      <UniqueIdentifier>{49fb9272-ffe2-3993-b562-b19d5f2c9b40}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_xof\">\r\n      <UniqueIdentifier>{9d0b6e6c-57a5-33bb-a67c-c1ce5a5e0684}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_xof\\shake128\">\r\n      <UniqueIdentifier>{3311f765-9a5b-3614-a24f-9b97a56240aa}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_xof\\shake128\\ref\">\r\n      <UniqueIdentifier>{0b3ce98f-5f0a-3836-a95f-5ebd938a0e15}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_xof\\shake256\">\r\n      <UniqueIdentifier>{d4f668ef-b456-369e-b8bf-b1b6d4e90a6d}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_xof\\shake256\\ref\">\r\n      <UniqueIdentifier>{c5174d81-c82a-3411-98f7-829a427faddc}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_xof\\turboshake128\">\r\n      <UniqueIdentifier>{6ccaee32-fd4e-3b58-be6b-a2866132d22d}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_xof\\turboshake128\\ref\">\r\n      <UniqueIdentifier>{00e8736b-cf8d-3a60-bfbe-f0c535d45696}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_xof\\turboshake256\">\r\n      <UniqueIdentifier>{8f7b92bd-0b08-3b14-8693-2df66b256d8b}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_xof\\turboshake256\\ref\">\r\n      <UniqueIdentifier>{bcea4d5e-5593-3465-ac95-2ecd34340ce3}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"include\">\r\n      <UniqueIdentifier>{96da72eb-3aa0-3850-83eb-32788f91e5bd}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"include\\sodium\">\r\n      <UniqueIdentifier>{56bb40fc-d381-3a9e-925b-681774c48dde}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"include\\sodium\\private\">\r\n      <UniqueIdentifier>{fde88485-0fe6-3b22-9480-1d2b49fade53}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"randombytes\">\r\n      <UniqueIdentifier>{ef090484-4db4-3dc2-aca7-c59bab1db23b}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"randombytes\\internal\">\r\n      <UniqueIdentifier>{14c126fd-bb91-37ea-b807-b60c386be601}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"randombytes\\sysrandom\">\r\n      <UniqueIdentifier>{ac56c38f-7e17-3b79-bf47-58e9476b3b89}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"sodium\">\r\n      <UniqueIdentifier>{5dfc520b-f690-3d5f-a86a-8b667f2e7490}</UniqueIdentifier>\r\n    </Filter>\r\n  </ItemGroup>\r\n</Project>\r\n"
  },
  {
    "path": "builds/msvc/vs2012/libsodium/libsodium.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<ProjectSchemaDefinitions xmlns=\"clr-namespace:Microsoft.Build.Framework.XamlTypes;assembly=Microsoft.Build.Framework\">\n  <Rule Name=\"libsodium-uiextension\" PageTemplate=\"tool\" DisplayName=\"Sodium Options\" SwitchPrefix=\"/\" Order=\"1\">\n    <Rule.Categories>\n      <Category Name=\"amd64asm\" DisplayName=\"amd64asm\" />\n    </Rule.Categories>\n    <Rule.DataSource>\n      <DataSource Persistence=\"ProjectFile\" ItemType=\"\" />\n    </Rule.DataSource>\n    <EnumProperty Name=\"Option-amd64asm\" DisplayName=\"Enable AMD64 Assembly\" Description=\"Enable the AMD64 Assembly build option\" Category=\"amd64asm\">\n      <EnumValue Name=\"\" DisplayName=\"No\" />\n      <EnumValue Name=\"true\" DisplayName=\"Yes\" />\n    </EnumProperty>\n  </Rule>\n</ProjectSchemaDefinitions>"
  },
  {
    "path": "builds/msvc/vs2012/libsodium.import.props",
    "content": "﻿<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<Project DefaultTargets=\"Build\" xmlns=\"http://schemas.microsoft.com/developer/msbuild/2003\">\n\n  <PropertyGroup Label=\"Globals\">\n    <_PropertySheetDisplayName>Libsodium Import Settings</_PropertySheetDisplayName>\n  </PropertyGroup>\n\n  <!-- User Interface -->\n\n  <ItemGroup Label=\"BuildOptionsExtension\">\n    <PropertyPageSchema Include=\"$(MSBuildThisFileDirectory)libsodium.import.xml\" />\n  </ItemGroup>\n\n  <!-- Linkage -->\n\n  <ItemDefinitionGroup>\n    <ClCompile>\n      <AdditionalIncludeDirectories>$(ProjectDir)..\\..\\..\\..\\..\\libsodium\\src\\libsodium\\include;$(ProjectDir)..\\..\\..\\..\\..\\libsodium\\src\\libsodium\\include\\sodium\\;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\n      <PreprocessorDefinitions Condition=\"'$(Linkage-libsodium)' == 'static' Or '$(Linkage-libsodium)' == 'ltcg'\">SODIUM_STATIC;%(PreprocessorDefinitions)</PreprocessorDefinitions>\n    </ClCompile>\n    <Link>\n      <AdditionalDependencies Condition=\"'$(Linkage-libsodium)' != ''\">advapi32.lib;libsodium.lib;%(AdditionalDependencies)</AdditionalDependencies>\n      <AdditionalLibraryDirectories Condition=\"$(Configuration.IndexOf('Debug')) != -1\">$(ProjectDir)..\\..\\..\\..\\..\\libsodium\\bin\\$(PlatformName)\\Debug\\$(PlatformToolset)\\$(Linkage-libsodium)\\;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>\n      <AdditionalLibraryDirectories Condition=\"$(Configuration.IndexOf('Release')) != -1\">$(ProjectDir)..\\..\\..\\..\\..\\libsodium\\bin\\$(PlatformName)\\Release\\$(PlatformToolset)\\$(Linkage-libsodium)\\;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>\n    </Link>\n  </ItemDefinitionGroup>\n\n  <!-- Copy -->\n\n  <Target Name=\"Linkage-libsodium-dynamic\" AfterTargets=\"AfterBuild\" Condition=\"'$(Linkage-libsodium)' == 'dynamic'\">\n    <Copy Condition=\"$(Configuration.IndexOf('Debug')) != -1\"\n          SourceFiles=\"$(ProjectDir)..\\..\\..\\..\\..\\libsodium\\bin\\$(PlatformName)\\Debug\\$(PlatformToolset)\\dynamic\\libsodium.dll\"\n          DestinationFiles=\"$(TargetDir)libsodium.dll\"\n          SkipUnchangedFiles=\"true\" />\n    <Copy Condition=\"$(Configuration.IndexOf('Debug')) != -1\"\n          SourceFiles=\"$(ProjectDir)..\\..\\..\\..\\..\\libsodium\\bin\\$(PlatformName)\\Debug\\$(PlatformToolset)\\dynamic\\libsodium.pdb\"\n          DestinationFiles=\"$(TargetDir)libsodium.pdb\"\n          SkipUnchangedFiles=\"true\" />\n    <Copy Condition=\"$(Configuration.IndexOf('Release')) != -1\"\n          SourceFiles=\"$(ProjectDir)..\\..\\..\\..\\..\\libsodium\\bin\\$(PlatformName)\\Release\\$(PlatformToolset)\\dynamic\\libsodium.dll\"\n          DestinationFiles=\"$(TargetDir)libsodium.dll\"\n          SkipUnchangedFiles=\"true\" />\n  </Target>\n\n  <!-- Messages -->\n\n  <Target Name=\"libsodium-info\" BeforeTargets=\"AfterBuild\" Condition=\"'$(Linkage-libsodium)' == 'dynamic'\">\n    <Message Text=\"Copying libsodium.dll -&gt; $(TargetDir)libsodium.dll\" Importance=\"high\"/>\n    <Message Text=\"Copying libsodium.pdb -&gt; $(TargetDir)libsodium.pdb\" Importance=\"high\" Condition=\"$(Configuration.IndexOf('Debug')) != -1\" />\n  </Target>\n\n</Project>"
  },
  {
    "path": "builds/msvc/vs2012/libsodium.import.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<ProjectSchemaDefinitions xmlns=\"clr-namespace:Microsoft.Build.Framework.XamlTypes;assembly=Microsoft.Build.Framework\">\n  <Rule Name=\"libsodium-linkage-uiextension\" PageTemplate=\"tool\" DisplayName=\"Local Dependencies\" SwitchPrefix=\"/\" Order=\"1\">\n    <Rule.Categories>\n      <Category Name=\"libsodium\" DisplayName=\"libsodium\" />\n    </Rule.Categories>\n    <Rule.DataSource>\n      <DataSource Persistence=\"ProjectFile\" ItemType=\"\" />\n    </Rule.DataSource>\n    <EnumProperty Name=\"Linkage-libsodium\" DisplayName=\"Linkage\" Description=\"How libsodium will be linked into the output of this project\" Category=\"libsodium\">\n      <EnumValue Name=\"\" DisplayName=\"Not linked\" />\n      <EnumValue Name=\"dynamic\" DisplayName=\"Dynamic (DLL)\" />\n      <EnumValue Name=\"static\" DisplayName=\"Static (LIB)\" />\n      <EnumValue Name=\"ltcg\" DisplayName=\"Static using link time compile generation (LTCG)\" />\n    </EnumProperty>\n  </Rule>\n</ProjectSchemaDefinitions>"
  },
  {
    "path": "builds/msvc/vs2012/libsodium.sln",
    "content": "﻿\r\nMicrosoft Visual Studio Solution File, Format Version 12.00\r\n# Visual Studio Express 2012 for Windows Desktop\r\nProject(\"{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}\") = \"libsodium\", \"libsodium\\libsodium.vcxproj\", \"{A185B162-6CB6-4502-B03F-B56F7699A8D9}\"\r\nEndProject\r\nGlobal\r\n\tGlobalSection(SolutionConfigurationPlatforms) = preSolution\r\n\t\tDynDebug|Win32 = DynDebug|Win32\r\n\t\tDynDebug|x64 = DynDebug|x64\r\n\t\tDynRelease|Win32 = DynRelease|Win32\r\n\t\tDynRelease|x64 = DynRelease|x64\r\n\t\tLtcgDebug|Win32 = LtcgDebug|Win32\r\n\t\tLtcgDebug|x64 = LtcgDebug|x64\r\n\t\tLtcgRelease|Win32 = LtcgRelease|Win32\r\n\t\tLtcgRelease|x64 = LtcgRelease|x64\r\n\t\tStaticDebug|Win32 = StaticDebug|Win32\r\n\t\tStaticDebug|x64 = StaticDebug|x64\r\n\t\tStaticRelease|Win32 = StaticRelease|Win32\r\n\t\tStaticRelease|x64 = StaticRelease|x64\r\n\tEndGlobalSection\r\n\tGlobalSection(ProjectConfigurationPlatforms) = postSolution\r\n\t\t{A185B162-6CB6-4502-B03F-B56F7699A8D9}.DynDebug|Win32.ActiveCfg = DebugDLL|Win32\r\n\t\t{A185B162-6CB6-4502-B03F-B56F7699A8D9}.DynDebug|Win32.Build.0 = DebugDLL|Win32\r\n\t\t{A185B162-6CB6-4502-B03F-B56F7699A8D9}.DynDebug|x64.ActiveCfg = DebugDLL|x64\r\n\t\t{A185B162-6CB6-4502-B03F-B56F7699A8D9}.DynDebug|x64.Build.0 = DebugDLL|x64\r\n\t\t{A185B162-6CB6-4502-B03F-B56F7699A8D9}.DynRelease|Win32.ActiveCfg = ReleaseDLL|Win32\r\n\t\t{A185B162-6CB6-4502-B03F-B56F7699A8D9}.DynRelease|Win32.Build.0 = ReleaseDLL|Win32\r\n\t\t{A185B162-6CB6-4502-B03F-B56F7699A8D9}.DynRelease|x64.ActiveCfg = ReleaseDLL|x64\r\n\t\t{A185B162-6CB6-4502-B03F-B56F7699A8D9}.DynRelease|x64.Build.0 = ReleaseDLL|x64\r\n\t\t{A185B162-6CB6-4502-B03F-B56F7699A8D9}.LtcgDebug|Win32.ActiveCfg = DebugLTCG|Win32\r\n\t\t{A185B162-6CB6-4502-B03F-B56F7699A8D9}.LtcgDebug|Win32.Build.0 = DebugLTCG|Win32\r\n\t\t{A185B162-6CB6-4502-B03F-B56F7699A8D9}.LtcgDebug|x64.ActiveCfg = DebugLTCG|x64\r\n\t\t{A185B162-6CB6-4502-B03F-B56F7699A8D9}.LtcgDebug|x64.Build.0 = DebugLTCG|x64\r\n\t\t{A185B162-6CB6-4502-B03F-B56F7699A8D9}.LtcgRelease|Win32.ActiveCfg = ReleaseLTCG|Win32\r\n\t\t{A185B162-6CB6-4502-B03F-B56F7699A8D9}.LtcgRelease|Win32.Build.0 = ReleaseLTCG|Win32\r\n\t\t{A185B162-6CB6-4502-B03F-B56F7699A8D9}.LtcgRelease|x64.ActiveCfg = ReleaseLTCG|x64\r\n\t\t{A185B162-6CB6-4502-B03F-B56F7699A8D9}.LtcgRelease|x64.Build.0 = ReleaseLTCG|x64\r\n\t\t{A185B162-6CB6-4502-B03F-B56F7699A8D9}.StaticDebug|Win32.ActiveCfg = DebugLIB|Win32\r\n\t\t{A185B162-6CB6-4502-B03F-B56F7699A8D9}.StaticDebug|Win32.Build.0 = DebugLIB|Win32\r\n\t\t{A185B162-6CB6-4502-B03F-B56F7699A8D9}.StaticDebug|x64.ActiveCfg = DebugLIB|x64\r\n\t\t{A185B162-6CB6-4502-B03F-B56F7699A8D9}.StaticDebug|x64.Build.0 = DebugLIB|x64\r\n\t\t{A185B162-6CB6-4502-B03F-B56F7699A8D9}.StaticRelease|Win32.ActiveCfg = ReleaseLIB|Win32\r\n\t\t{A185B162-6CB6-4502-B03F-B56F7699A8D9}.StaticRelease|Win32.Build.0 = ReleaseLIB|Win32\r\n\t\t{A185B162-6CB6-4502-B03F-B56F7699A8D9}.StaticRelease|x64.ActiveCfg = ReleaseLIB|x64\r\n\t\t{A185B162-6CB6-4502-B03F-B56F7699A8D9}.StaticRelease|x64.Build.0 = ReleaseLIB|x64\r\n\tEndGlobalSection\r\n\tGlobalSection(SolutionProperties) = preSolution\r\n\t\tHideSolutionNode = FALSE\r\n\tEndGlobalSection\r\nEndGlobal\r\n"
  },
  {
    "path": "builds/msvc/vs2013/libsodium/libsodium.props",
    "content": "﻿<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<Project DefaultTargets=\"Build\" xmlns=\"http://schemas.microsoft.com/developer/msbuild/2003\">\n\n  <PropertyGroup Label=\"Globals\">\n    <_PropertySheetDisplayName>Libsodium Common Settings</_PropertySheetDisplayName>\n    <CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>\n    <RunCodeAnalysis>false</RunCodeAnalysis>\n  </PropertyGroup>\n\n  <!-- User Interface -->\n\n  <ItemGroup Label=\"BuildOptionsExtension\">\n    <PropertyPageSchema Include=\"$(MSBuildThisFileDirectory)$(ProjectName).xml\" />\n  </ItemGroup>\n\n  <!-- Configuration -->\n\n  <ItemDefinitionGroup>\n    <PreBuildEvent>\n      <Command>copy \"$(BuildRoot)version.h\" \"$(RepoRoot)src\\libsodium\\include\\sodium\\\"</Command>\n    </PreBuildEvent>\n    <ClCompile>\n      <AdditionalIncludeDirectories>$(RepoRoot)src\\libsodium\\include;$(RepoRoot)src\\libsodium\\include\\sodium\\;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\n      <DisableSpecificWarnings>4146;4244;%(DisableSpecificWarnings)</DisableSpecificWarnings>\n      <EnablePREfast>false</EnablePREfast>\n      <PreprocessorDefinitions>inline=__inline;NATIVE_LITTLE_ENDIAN;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>\n      <PreprocessorDefinitions Condition=\"'$(ConfigurationType)' == 'StaticLibrary'\">SODIUM_STATIC;%(PreprocessorDefinitions)</PreprocessorDefinitions>\n      <PreprocessorDefinitions Condition=\"'$(ConfigurationType)' == 'DynamicLibrary'\">SODIUM_DLL_EXPORT;%(PreprocessorDefinitions)</PreprocessorDefinitions>\n      <PreprocessorDefinitions Condition=\"'$(Option-amd64asm)' == 'true'\">HAVE_AMD64_ASM;%(PreprocessorDefinitions)</PreprocessorDefinitions>\n    </ClCompile>\n  </ItemDefinitionGroup>\n\n  <!-- Messages -->\n\n  <Target Name=\"CustomInfo\" BeforeTargets=\"PrepareForBuild\">\n    <Message Text=\"Will copy $(BuildRoot)version.h -&gt; $(RepoRoot)src\\libsodium\\include\\sodium\\version.h\" Importance=\"high\"/>\n  </Target>\n\n  <Target Name=\"OptionInfo\" BeforeTargets=\"PrepareForBuild\">\n    <Message Text=\"Option-amd64asm   : $(Option-amd64asm)\" Importance=\"high\"/>\n  </Target>\n\n  <ItemDefinitionGroup>\n    <Link>\n      <AdditionalDependencies>advapi32.lib</AdditionalDependencies>\n    </Link>\n  </ItemDefinitionGroup>\n</Project>\n"
  },
  {
    "path": "builds/msvc/vs2013/libsodium/libsodium.vcxproj",
    "content": "﻿<?xml version=\"1.0\" encoding=\"utf-8\"?>\r\n<Project DefaultTargets=\"Build\" ToolsVersion=\"4.0\"\r\n  xmlns=\"http://schemas.microsoft.com/developer/msbuild/2003\">\r\n  <PropertyGroup Label=\"Globals\">\r\n    <ProjectGuid>{A185B162-6CB6-4502-B03F-B56F7699A8D9}</ProjectGuid>\r\n    <ProjectName>libsodium</ProjectName>\r\n    <PlatformToolset>v120</PlatformToolset>\r\n  </PropertyGroup>\r\n  <ItemGroup Label=\"ProjectConfigurations\">\r\n    <ProjectConfiguration Include=\"DebugDLL|Win32\">\r\n      <Configuration>DebugDLL</Configuration>\r\n      <Platform>Win32</Platform>\r\n    </ProjectConfiguration>\r\n    <ProjectConfiguration Include=\"DebugDLL|x64\">\r\n      <Configuration>DebugDLL</Configuration>\r\n      <Platform>x64</Platform>\r\n    </ProjectConfiguration>\r\n    <ProjectConfiguration Include=\"ReleaseDLL|Win32\">\r\n      <Configuration>ReleaseDLL</Configuration>\r\n      <Platform>Win32</Platform>\r\n    </ProjectConfiguration>\r\n    <ProjectConfiguration Include=\"ReleaseDLL|x64\">\r\n      <Configuration>ReleaseDLL</Configuration>\r\n      <Platform>x64</Platform>\r\n    </ProjectConfiguration>\r\n    <ProjectConfiguration Include=\"DebugLIB|Win32\">\r\n      <Configuration>DebugLIB</Configuration>\r\n      <Platform>Win32</Platform>\r\n    </ProjectConfiguration>\r\n    <ProjectConfiguration Include=\"DebugLIB|x64\">\r\n      <Configuration>DebugLIB</Configuration>\r\n      <Platform>x64</Platform>\r\n    </ProjectConfiguration>\r\n    <ProjectConfiguration Include=\"ReleaseLIB|Win32\">\r\n      <Configuration>ReleaseLIB</Configuration>\r\n      <Platform>Win32</Platform>\r\n    </ProjectConfiguration>\r\n    <ProjectConfiguration Include=\"ReleaseLIB|x64\">\r\n      <Configuration>ReleaseLIB</Configuration>\r\n      <Platform>x64</Platform>\r\n    </ProjectConfiguration>\r\n    <ProjectConfiguration Include=\"DebugLTCG|Win32\">\r\n      <Configuration>DebugLTCG</Configuration>\r\n      <Platform>Win32</Platform>\r\n    </ProjectConfiguration>\r\n    <ProjectConfiguration Include=\"DebugLTCG|x64\">\r\n      <Configuration>DebugLTCG</Configuration>\r\n      <Platform>x64</Platform>\r\n    </ProjectConfiguration>\r\n    <ProjectConfiguration Include=\"ReleaseLTCG|Win32\">\r\n      <Configuration>ReleaseLTCG</Configuration>\r\n      <Platform>Win32</Platform>\r\n    </ProjectConfiguration>\r\n    <ProjectConfiguration Include=\"ReleaseLTCG|x64\">\r\n      <Configuration>ReleaseLTCG</Configuration>\r\n      <Platform>x64</Platform>\r\n    </ProjectConfiguration>\r\n  </ItemGroup>\r\n  <PropertyGroup Label=\"Configuration\">\r\n    <ConfigurationType Condition=\"$(Configuration.IndexOf('DLL')) == -1\">StaticLibrary</ConfigurationType>\r\n    <ConfigurationType Condition=\"$(Configuration.IndexOf('DLL')) != -1\">DynamicLibrary</ConfigurationType>\r\n  </PropertyGroup>\r\n  <Import Project=\"$(VCTargetsPath)\\Microsoft.Cpp.Default.props\" />\r\n  <Import Project=\"$(VCTargetsPath)\\Microsoft.Cpp.props\" />\r\n  <ImportGroup Label=\"PropertySheets\">\r\n    <Import Project=\"$(ProjectDir)..\\..\\properties\\$(Configuration).props\" />\r\n    <Import Project=\"$(ProjectDir)..\\..\\properties\\Output.props\" />\r\n    <Import Project=\"$(ProjectDir)$(ProjectName).props\" />\r\n  </ImportGroup>\r\n  <ItemGroup>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_generichash\\crypto_generichash.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_generichash\\blake2b\\generichash_blake2.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_generichash\\blake2b\\ref\\blake2b-compress-ref.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_generichash\\blake2b\\ref\\blake2b-compress-ssse3.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_generichash\\blake2b\\ref\\blake2b-compress-avx2.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_generichash\\blake2b\\ref\\blake2b-compress-sse41.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_generichash\\blake2b\\ref\\generichash_blake2b.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_generichash\\blake2b\\ref\\blake2b-ref.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_kx\\crypto_kx.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_sign\\crypto_sign.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_sign\\ed25519\\sign_ed25519.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_sign\\ed25519\\ref10\\sign.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_sign\\ed25519\\ref10\\keypair.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_sign\\ed25519\\ref10\\open.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_secretbox\\crypto_secretbox.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_secretbox\\crypto_secretbox_easy.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_secretbox\\xsalsa20poly1305\\secretbox_xsalsa20poly1305.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_secretbox\\xchacha20poly1305\\secretbox_xchacha20poly1305.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\crypto_pwhash.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\blake2b-long.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\argon2-fill-block-wasm32.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\argon2-core.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\argon2-fill-block-avx512f.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\argon2-fill-block-ref.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\argon2-fill-block-ssse3.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\pwhash_argon2i.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\argon2-fill-block-neon.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\pwhash_argon2id.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\argon2.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\argon2-fill-block-avx2.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\argon2-encoding.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\scryptsalsa208sha256\\scrypt_platform.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\scryptsalsa208sha256\\crypto_scrypt-common.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\scryptsalsa208sha256\\pwhash_scryptsalsa208sha256.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\scryptsalsa208sha256\\pbkdf2-sha256.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\scryptsalsa208sha256\\nosse\\pwhash_scryptsalsa208sha256_nosse.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\scryptsalsa208sha256\\sse\\pwhash_scryptsalsa208sha256_sse.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_xof\\shake128\\xof_shake128.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_xof\\shake128\\ref\\shake128_ref.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_xof\\shake256\\xof_shake256.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_xof\\shake256\\ref\\shake256_ref.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_xof\\turboshake256\\xof_turboshake256.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_xof\\turboshake256\\ref\\turboshake256_ref.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_xof\\turboshake128\\xof_turboshake128.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_xof\\turboshake128\\ref\\turboshake128_ref.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_verify\\verify.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_auth\\crypto_auth.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_auth\\hmacsha512\\auth_hmacsha512.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_auth\\hmacsha512256\\auth_hmacsha512256.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_auth\\hmacsha256\\auth_hmacsha256.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_kdf\\crypto_kdf.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_kdf\\blake2b\\kdf_blake2b.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_kdf\\hkdf\\kdf_hkdf_sha256.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_kdf\\hkdf\\kdf_hkdf_sha512.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_shorthash\\crypto_shorthash.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_shorthash\\siphash24\\shorthash_siphash24.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_shorthash\\siphash24\\shorthash_siphashx24.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_shorthash\\siphash24\\ref\\shorthash_siphashx24_ref.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_shorthash\\siphash24\\ref\\shorthash_siphash24_ref.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_scalarmult\\crypto_scalarmult.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_scalarmult\\ristretto255\\ref10\\scalarmult_ristretto255_ref10.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_scalarmult\\ed25519\\ref10\\scalarmult_ed25519_ref10.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_scalarmult\\curve25519\\scalarmult_curve25519.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_scalarmult\\curve25519\\sandy2x\\curve25519_sandy2x.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_scalarmult\\curve25519\\sandy2x\\fe_frombytes_sandy2x.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_scalarmult\\curve25519\\sandy2x\\fe51_invert.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_scalarmult\\curve25519\\ref10\\x25519_ref10.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_onetimeauth\\crypto_onetimeauth.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_onetimeauth\\poly1305\\onetimeauth_poly1305.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_onetimeauth\\poly1305\\donna\\poly1305_donna.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_onetimeauth\\poly1305\\sse2\\poly1305_sse2.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\randombytes\\randombytes.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\randombytes\\sysrandom\\randombytes_sysrandom.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\randombytes\\internal\\randombytes_internal_random.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_box\\crypto_box_easy.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_box\\crypto_box_seal.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_box\\crypto_box.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_box\\curve25519xsalsa20poly1305\\box_curve25519xsalsa20poly1305.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_box\\curve25519xchacha20poly1305\\box_curve25519xchacha20poly1305.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_box\\curve25519xchacha20poly1305\\box_seal_curve25519xchacha20poly1305.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\sodium\\codecs.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\sodium\\runtime.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\sodium\\core.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\sodium\\utils.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\sodium\\version.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_ipcrypt\\ipcrypt_armcrypto.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_ipcrypt\\crypto_ipcrypt.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_ipcrypt\\ipcrypt_soft.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_ipcrypt\\ipcrypt_aesni.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\crypto_stream.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\xchacha20\\stream_xchacha20.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\chacha20\\stream_chacha20.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\chacha20\\ref\\chacha20_ref.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\chacha20\\dolbeau\\chacha20_dolbeau-avx2.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\chacha20\\dolbeau\\chacha20_dolbeau-ssse3.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\salsa20\\stream_salsa20.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\salsa20\\ref\\salsa20_ref.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\salsa20\\xmm6int\\salsa20_xmm6int-avx2.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\salsa20\\xmm6int\\salsa20_xmm6int-sse2.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\salsa20\\xmm6\\salsa20_xmm6.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\salsa2012\\stream_salsa2012.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\salsa2012\\ref\\stream_salsa2012_ref.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\salsa208\\stream_salsa208.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\salsa208\\ref\\stream_salsa208_ref.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\xsalsa20\\stream_xsalsa20.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_hash\\crypto_hash.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_hash\\sha512\\hash_sha512.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_hash\\sha512\\cp\\hash_sha512_cp.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_hash\\sha3\\hash_sha3.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_hash\\sha256\\hash_sha256.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_hash\\sha256\\cp\\hash_sha256_cp.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_aead\\xchacha20poly1305\\aead_xchacha20poly1305.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_aead\\aegis128l\\aegis128l_soft.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_aead\\aegis128l\\aead_aegis128l.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_aead\\aegis128l\\aegis128l_aesni.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_aead\\aegis128l\\aegis128l_armcrypto.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_aead\\aegis256\\aead_aegis256.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_aead\\aegis256\\aegis256_soft.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_aead\\aegis256\\aegis256_armcrypto.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_aead\\aegis256\\aegis256_aesni.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_aead\\aes256gcm\\aead_aes256gcm.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_aead\\aes256gcm\\aesni\\aead_aes256gcm_aesni.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_aead\\aes256gcm\\armcrypto\\aead_aes256gcm_armcrypto.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_aead\\chacha20poly1305\\aead_chacha20poly1305.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_kem\\crypto_kem.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_kem\\xwing\\kem_xwing.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_kem\\mlkem768\\kem_mlkem768.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_kem\\mlkem768\\ref\\kem_mlkem768_ref.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_secretstream\\xchacha20poly1305\\secretstream_xchacha20poly1305.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_core\\keccak1600\\keccak1600.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_core\\keccak1600\\ref\\keccak1600_ref.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_core\\keccak1600\\armsha3\\keccak1600_armsha3.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_core\\salsa\\ref\\core_salsa_ref.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_core\\hchacha20\\core_hchacha20.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_core\\hsalsa20\\core_hsalsa20.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_core\\hsalsa20\\ref2\\core_hsalsa20_ref2.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_core\\softaes\\softaes.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_core\\ed25519\\core_ed25519.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_core\\ed25519\\core_ristretto255.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_core\\ed25519\\core_h2c.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_core\\ed25519\\ref10\\ed25519_ref10.c\" />\r\n  </ItemGroup>\r\n  <ItemGroup>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_generichash\\blake2b\\ref\\blake2b-load-sse2.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_generichash\\blake2b\\ref\\blake2b-load-avx2.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_generichash\\blake2b\\ref\\blake2.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_generichash\\blake2b\\ref\\blake2b-compress-ssse3.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_generichash\\blake2b\\ref\\blake2b-load-sse41.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_generichash\\blake2b\\ref\\blake2b-compress-avx2.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_generichash\\blake2b\\ref\\blake2b-compress-sse41.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_sign\\ed25519\\ref10\\sign_ed25519_ref10.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_stream_salsa2012.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_auth.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\utils.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_core_hchacha20.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_aead_aegis256.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_hash_sha512.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\core.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\export.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_core_salsa20.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_shorthash_siphash24.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\randombytes.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_hash_sha256.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_stream.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_auth_hmacsha512.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_xof_shake128.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_aead_xchacha20poly1305.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_stream_salsa20.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_onetimeauth_poly1305.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_kem_mlkem768.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_scalarmult_ristretto255.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_kx.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_hash.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_sign.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_kdf.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_auth_hmacsha256.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_box.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_verify_32.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_core_ristretto255.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_stream_xchacha20.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_core_salsa208.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_auth_hmacsha512256.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_xof_turboshake128.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_aead_aegis128l.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_aead_chacha20poly1305.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\randombytes_sysrandom.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_xof_turboshake256.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\runtime.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_stream_salsa208.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_aead_aes256gcm.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_core_salsa2012.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_secretbox_xchacha20poly1305.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_kem.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_core_keccak1600.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_scalarmult.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_pwhash.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_verify_16.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_stream_chacha20.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_stream_xsalsa20.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_core_hsalsa20.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_kdf_blake2b.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_scalarmult_curve25519.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_xof_shake256.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_shorthash.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_kdf_hkdf_sha256.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_pwhash_argon2id.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_secretstream_xchacha20poly1305.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_pwhash_scryptsalsa208sha256.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_hash_sha3.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_kem_xwing.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_sign_ed25519.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_onetimeauth.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_verify_64.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_box_curve25519xchacha20poly1305.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_core_ed25519.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_kdf_hkdf_sha512.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_pwhash_argon2i.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\randombytes_internal_random.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_generichash.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_secretbox_xsalsa20poly1305.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_secretbox.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_scalarmult_ed25519.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_ipcrypt.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_box_curve25519xsalsa20poly1305.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_generichash_blake2b.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\private\\ed25519_ref10.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\private\\softaes.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\private\\quirks.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\private\\ed25519_ref10_fe_25_5.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\private\\ed25519_ref10_fe_51.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\private\\sse2_64_32.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\private\\asm_cet.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\private\\common.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\private\\mutex.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\private\\chacha20_ietf_ext.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\private\\implementations.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\blamka-round-ref.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\blamka-round-avx2.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\blamka-round-neon.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\blamka-round-wasm32.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\argon2.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\blamka-round-ssse3.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\argon2-encoding.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\blake2b-long.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\blamka-round-avx512f.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\argon2-core.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\scryptsalsa208sha256\\crypto_scrypt.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\scryptsalsa208sha256\\pbkdf2-sha256.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_xof\\shake128\\ref\\shake128_ref.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_xof\\shake256\\ref\\shake256_ref.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_xof\\turboshake256\\ref\\turboshake256_ref.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_xof\\turboshake128\\ref\\turboshake128_ref.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_shorthash\\siphash24\\ref\\shorthash_siphash_ref.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_scalarmult\\curve25519\\scalarmult_curve25519.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_scalarmult\\curve25519\\sandy2x\\consts_namespace.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_scalarmult\\curve25519\\sandy2x\\ladder_namespace.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_scalarmult\\curve25519\\sandy2x\\fe.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_scalarmult\\curve25519\\sandy2x\\ladder.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_scalarmult\\curve25519\\sandy2x\\fe51.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_scalarmult\\curve25519\\sandy2x\\curve25519_sandy2x.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_scalarmult\\curve25519\\sandy2x\\fe51_namespace.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_scalarmult\\curve25519\\ref10\\x25519_ref10.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_onetimeauth\\poly1305\\onetimeauth_poly1305.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_onetimeauth\\poly1305\\donna\\poly1305_donna.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_onetimeauth\\poly1305\\donna\\poly1305_donna64.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_onetimeauth\\poly1305\\donna\\poly1305_donna32.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_onetimeauth\\poly1305\\sse2\\poly1305_sse2.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_ipcrypt\\ipcrypt_soft.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_ipcrypt\\ipcrypt_aesni.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_ipcrypt\\ipcrypt_armcrypto.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_ipcrypt\\implementations.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\chacha20\\stream_chacha20.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\chacha20\\ref\\chacha20_ref.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\chacha20\\dolbeau\\u4.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\chacha20\\dolbeau\\chacha20_dolbeau-ssse3.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\chacha20\\dolbeau\\u0.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\chacha20\\dolbeau\\u1.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\chacha20\\dolbeau\\chacha20_dolbeau-avx2.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\chacha20\\dolbeau\\u8.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\salsa20\\stream_salsa20.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\salsa20\\ref\\salsa20_ref.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\salsa20\\xmm6int\\u4.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\salsa20\\xmm6int\\u0.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\salsa20\\xmm6int\\u1.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\salsa20\\xmm6int\\salsa20_xmm6int-avx2.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\salsa20\\xmm6int\\u8.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\salsa20\\xmm6int\\salsa20_xmm6int-sse2.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\salsa20\\xmm6\\salsa20_xmm6-asm_namespace.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\salsa20\\xmm6\\salsa20_xmm6.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_aead\\aegis128l\\aegis128l_armcrypto.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_aead\\aegis128l\\aegis128l_aesni.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_aead\\aegis128l\\aegis128l_soft.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_aead\\aegis128l\\aegis128l_common.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_aead\\aegis128l\\implementations.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_aead\\aegis256\\aegis256_aesni.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_aead\\aegis256\\aegis256_common.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_aead\\aegis256\\implementations.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_aead\\aegis256\\aegis256_armcrypto.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_aead\\aegis256\\aegis256_soft.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_kem\\mlkem768\\ref\\kem_mlkem768_ref.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_core\\keccak1600\\ref\\keccak1600_ref.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_core\\keccak1600\\armsha3\\keccak1600_armsha3.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_core\\ed25519\\core_h2c.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_core\\ed25519\\ref10\\fe_25_5\\constants.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_core\\ed25519\\ref10\\fe_25_5\\fe.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_core\\ed25519\\ref10\\fe_25_5\\base2.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_core\\ed25519\\ref10\\fe_25_5\\base.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_core\\ed25519\\ref10\\fe_51\\constants.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_core\\ed25519\\ref10\\fe_51\\fe.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_core\\ed25519\\ref10\\fe_51\\base2.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_core\\ed25519\\ref10\\fe_51\\base.h\" />\r\n    <ClInclude Include=\"..\\..\\resource.h\" />\r\n  </ItemGroup>\r\n  <ItemGroup>\r\n    <ResourceCompile Include=\"..\\..\\resource.rc\">\r\n    </ResourceCompile>\r\n  </ItemGroup>\r\n  <Import Project=\"$(VCTargetsPath)\\Microsoft.Cpp.targets\" />\r\n  <ImportGroup Label=\"ExtensionTargets\">\r\n  </ImportGroup>\r\n</Project>\r\n"
  },
  {
    "path": "builds/msvc/vs2013/libsodium/libsodium.vcxproj.filters",
    "content": "﻿<?xml version=\"1.0\" encoding=\"utf-8\"?>\r\n<Project ToolsVersion=\"4.0\" xmlns=\"http://schemas.microsoft.com/developer/msbuild/2003\">\r\n  <ItemGroup>\r\n    <None Include=\"..\\..\\..\\..\\packaging\\nuget\\package.bat\">\r\n      <Filter>packaging</Filter>\r\n    </None>\r\n    <None Include=\"..\\..\\..\\..\\packaging\\nuget\\package.gsl\">\r\n      <Filter>packaging</Filter>\r\n    </None>\r\n    <None Include=\"..\\..\\..\\..\\packaging\\nuget\\package.nuspec\">\r\n      <Filter>packaging</Filter>\r\n    </None>\r\n    <None Include=\"..\\..\\..\\..\\packaging\\nuget\\package.targets\">\r\n      <Filter>packaging</Filter>\r\n    </None>\r\n    <None Include=\"..\\..\\..\\..\\packaging\\nuget\\package.config\">\r\n      <Filter>packaging</Filter>\r\n    </None>\r\n    <Xml Include=\"..\\..\\..\\..\\packaging\\nuget\\package.xml\">\r\n      <Filter>packaging</Filter>\r\n    </Xml>\r\n  </ItemGroup>\r\n  <ItemGroup>\r\n    <ResourceCompile Include=\"..\\..\\resource.rc\" />\r\n  </ItemGroup>\r\n  <ItemGroup>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_generichash\\crypto_generichash.c\">\r\n      <Filter>crypto_generichash</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_generichash\\blake2b\\generichash_blake2.c\">\r\n      <Filter>crypto_generichash\\blake2b</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_generichash\\blake2b\\ref\\blake2b-compress-ref.c\">\r\n      <Filter>crypto_generichash\\blake2b\\ref</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_generichash\\blake2b\\ref\\blake2b-compress-ssse3.c\">\r\n      <Filter>crypto_generichash\\blake2b\\ref</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_generichash\\blake2b\\ref\\blake2b-compress-avx2.c\">\r\n      <Filter>crypto_generichash\\blake2b\\ref</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_generichash\\blake2b\\ref\\blake2b-compress-sse41.c\">\r\n      <Filter>crypto_generichash\\blake2b\\ref</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_generichash\\blake2b\\ref\\generichash_blake2b.c\">\r\n      <Filter>crypto_generichash\\blake2b\\ref</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_generichash\\blake2b\\ref\\blake2b-ref.c\">\r\n      <Filter>crypto_generichash\\blake2b\\ref</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_kx\\crypto_kx.c\">\r\n      <Filter>crypto_kx</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_sign\\crypto_sign.c\">\r\n      <Filter>crypto_sign</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_sign\\ed25519\\sign_ed25519.c\">\r\n      <Filter>crypto_sign\\ed25519</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_sign\\ed25519\\ref10\\sign.c\">\r\n      <Filter>crypto_sign\\ed25519\\ref10</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_sign\\ed25519\\ref10\\keypair.c\">\r\n      <Filter>crypto_sign\\ed25519\\ref10</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_sign\\ed25519\\ref10\\open.c\">\r\n      <Filter>crypto_sign\\ed25519\\ref10</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_secretbox\\crypto_secretbox.c\">\r\n      <Filter>crypto_secretbox</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_secretbox\\crypto_secretbox_easy.c\">\r\n      <Filter>crypto_secretbox</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_secretbox\\xsalsa20poly1305\\secretbox_xsalsa20poly1305.c\">\r\n      <Filter>crypto_secretbox\\xsalsa20poly1305</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_secretbox\\xchacha20poly1305\\secretbox_xchacha20poly1305.c\">\r\n      <Filter>crypto_secretbox\\xchacha20poly1305</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\crypto_pwhash.c\">\r\n      <Filter>crypto_pwhash</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\blake2b-long.c\">\r\n      <Filter>crypto_pwhash\\argon2</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\argon2-fill-block-wasm32.c\">\r\n      <Filter>crypto_pwhash\\argon2</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\argon2-core.c\">\r\n      <Filter>crypto_pwhash\\argon2</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\argon2-fill-block-avx512f.c\">\r\n      <Filter>crypto_pwhash\\argon2</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\argon2-fill-block-ref.c\">\r\n      <Filter>crypto_pwhash\\argon2</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\argon2-fill-block-ssse3.c\">\r\n      <Filter>crypto_pwhash\\argon2</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\pwhash_argon2i.c\">\r\n      <Filter>crypto_pwhash\\argon2</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\argon2-fill-block-neon.c\">\r\n      <Filter>crypto_pwhash\\argon2</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\pwhash_argon2id.c\">\r\n      <Filter>crypto_pwhash\\argon2</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\argon2.c\">\r\n      <Filter>crypto_pwhash\\argon2</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\argon2-fill-block-avx2.c\">\r\n      <Filter>crypto_pwhash\\argon2</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\argon2-encoding.c\">\r\n      <Filter>crypto_pwhash\\argon2</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\scryptsalsa208sha256\\scrypt_platform.c\">\r\n      <Filter>crypto_pwhash\\scryptsalsa208sha256</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\scryptsalsa208sha256\\crypto_scrypt-common.c\">\r\n      <Filter>crypto_pwhash\\scryptsalsa208sha256</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\scryptsalsa208sha256\\pwhash_scryptsalsa208sha256.c\">\r\n      <Filter>crypto_pwhash\\scryptsalsa208sha256</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\scryptsalsa208sha256\\pbkdf2-sha256.c\">\r\n      <Filter>crypto_pwhash\\scryptsalsa208sha256</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\scryptsalsa208sha256\\nosse\\pwhash_scryptsalsa208sha256_nosse.c\">\r\n      <Filter>crypto_pwhash\\scryptsalsa208sha256\\nosse</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\scryptsalsa208sha256\\sse\\pwhash_scryptsalsa208sha256_sse.c\">\r\n      <Filter>crypto_pwhash\\scryptsalsa208sha256\\sse</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_xof\\shake128\\xof_shake128.c\">\r\n      <Filter>crypto_xof\\shake128</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_xof\\shake128\\ref\\shake128_ref.c\">\r\n      <Filter>crypto_xof\\shake128\\ref</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_xof\\shake256\\xof_shake256.c\">\r\n      <Filter>crypto_xof\\shake256</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_xof\\shake256\\ref\\shake256_ref.c\">\r\n      <Filter>crypto_xof\\shake256\\ref</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_xof\\turboshake256\\xof_turboshake256.c\">\r\n      <Filter>crypto_xof\\turboshake256</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_xof\\turboshake256\\ref\\turboshake256_ref.c\">\r\n      <Filter>crypto_xof\\turboshake256\\ref</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_xof\\turboshake128\\xof_turboshake128.c\">\r\n      <Filter>crypto_xof\\turboshake128</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_xof\\turboshake128\\ref\\turboshake128_ref.c\">\r\n      <Filter>crypto_xof\\turboshake128\\ref</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_verify\\verify.c\">\r\n      <Filter>crypto_verify</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_auth\\crypto_auth.c\">\r\n      <Filter>crypto_auth</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_auth\\hmacsha512\\auth_hmacsha512.c\">\r\n      <Filter>crypto_auth\\hmacsha512</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_auth\\hmacsha512256\\auth_hmacsha512256.c\">\r\n      <Filter>crypto_auth\\hmacsha512256</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_auth\\hmacsha256\\auth_hmacsha256.c\">\r\n      <Filter>crypto_auth\\hmacsha256</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_kdf\\crypto_kdf.c\">\r\n      <Filter>crypto_kdf</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_kdf\\blake2b\\kdf_blake2b.c\">\r\n      <Filter>crypto_kdf\\blake2b</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_kdf\\hkdf\\kdf_hkdf_sha256.c\">\r\n      <Filter>crypto_kdf\\hkdf</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_kdf\\hkdf\\kdf_hkdf_sha512.c\">\r\n      <Filter>crypto_kdf\\hkdf</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_shorthash\\crypto_shorthash.c\">\r\n      <Filter>crypto_shorthash</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_shorthash\\siphash24\\shorthash_siphash24.c\">\r\n      <Filter>crypto_shorthash\\siphash24</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_shorthash\\siphash24\\shorthash_siphashx24.c\">\r\n      <Filter>crypto_shorthash\\siphash24</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_shorthash\\siphash24\\ref\\shorthash_siphashx24_ref.c\">\r\n      <Filter>crypto_shorthash\\siphash24\\ref</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_shorthash\\siphash24\\ref\\shorthash_siphash24_ref.c\">\r\n      <Filter>crypto_shorthash\\siphash24\\ref</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_scalarmult\\crypto_scalarmult.c\">\r\n      <Filter>crypto_scalarmult</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_scalarmult\\ristretto255\\ref10\\scalarmult_ristretto255_ref10.c\">\r\n      <Filter>crypto_scalarmult\\ristretto255\\ref10</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_scalarmult\\ed25519\\ref10\\scalarmult_ed25519_ref10.c\">\r\n      <Filter>crypto_scalarmult\\ed25519\\ref10</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_scalarmult\\curve25519\\scalarmult_curve25519.c\">\r\n      <Filter>crypto_scalarmult\\curve25519</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_scalarmult\\curve25519\\sandy2x\\curve25519_sandy2x.c\">\r\n      <Filter>crypto_scalarmult\\curve25519\\sandy2x</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_scalarmult\\curve25519\\sandy2x\\fe_frombytes_sandy2x.c\">\r\n      <Filter>crypto_scalarmult\\curve25519\\sandy2x</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_scalarmult\\curve25519\\sandy2x\\fe51_invert.c\">\r\n      <Filter>crypto_scalarmult\\curve25519\\sandy2x</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_scalarmult\\curve25519\\ref10\\x25519_ref10.c\">\r\n      <Filter>crypto_scalarmult\\curve25519\\ref10</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_onetimeauth\\crypto_onetimeauth.c\">\r\n      <Filter>crypto_onetimeauth</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_onetimeauth\\poly1305\\onetimeauth_poly1305.c\">\r\n      <Filter>crypto_onetimeauth\\poly1305</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_onetimeauth\\poly1305\\donna\\poly1305_donna.c\">\r\n      <Filter>crypto_onetimeauth\\poly1305\\donna</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_onetimeauth\\poly1305\\sse2\\poly1305_sse2.c\">\r\n      <Filter>crypto_onetimeauth\\poly1305\\sse2</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\randombytes\\randombytes.c\">\r\n      <Filter>randombytes</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\randombytes\\sysrandom\\randombytes_sysrandom.c\">\r\n      <Filter>randombytes\\sysrandom</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\randombytes\\internal\\randombytes_internal_random.c\">\r\n      <Filter>randombytes\\internal</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_box\\crypto_box_easy.c\">\r\n      <Filter>crypto_box</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_box\\crypto_box_seal.c\">\r\n      <Filter>crypto_box</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_box\\crypto_box.c\">\r\n      <Filter>crypto_box</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_box\\curve25519xsalsa20poly1305\\box_curve25519xsalsa20poly1305.c\">\r\n      <Filter>crypto_box\\curve25519xsalsa20poly1305</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_box\\curve25519xchacha20poly1305\\box_curve25519xchacha20poly1305.c\">\r\n      <Filter>crypto_box\\curve25519xchacha20poly1305</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_box\\curve25519xchacha20poly1305\\box_seal_curve25519xchacha20poly1305.c\">\r\n      <Filter>crypto_box\\curve25519xchacha20poly1305</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\sodium\\codecs.c\">\r\n      <Filter>sodium</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\sodium\\runtime.c\">\r\n      <Filter>sodium</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\sodium\\core.c\">\r\n      <Filter>sodium</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\sodium\\utils.c\">\r\n      <Filter>sodium</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\sodium\\version.c\">\r\n      <Filter>sodium</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_ipcrypt\\ipcrypt_armcrypto.c\">\r\n      <Filter>crypto_ipcrypt</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_ipcrypt\\crypto_ipcrypt.c\">\r\n      <Filter>crypto_ipcrypt</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_ipcrypt\\ipcrypt_soft.c\">\r\n      <Filter>crypto_ipcrypt</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_ipcrypt\\ipcrypt_aesni.c\">\r\n      <Filter>crypto_ipcrypt</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\crypto_stream.c\">\r\n      <Filter>crypto_stream</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\xchacha20\\stream_xchacha20.c\">\r\n      <Filter>crypto_stream\\xchacha20</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\chacha20\\stream_chacha20.c\">\r\n      <Filter>crypto_stream\\chacha20</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\chacha20\\ref\\chacha20_ref.c\">\r\n      <Filter>crypto_stream\\chacha20\\ref</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\chacha20\\dolbeau\\chacha20_dolbeau-avx2.c\">\r\n      <Filter>crypto_stream\\chacha20\\dolbeau</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\chacha20\\dolbeau\\chacha20_dolbeau-ssse3.c\">\r\n      <Filter>crypto_stream\\chacha20\\dolbeau</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\salsa20\\stream_salsa20.c\">\r\n      <Filter>crypto_stream\\salsa20</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\salsa20\\ref\\salsa20_ref.c\">\r\n      <Filter>crypto_stream\\salsa20\\ref</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\salsa20\\xmm6int\\salsa20_xmm6int-avx2.c\">\r\n      <Filter>crypto_stream\\salsa20\\xmm6int</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\salsa20\\xmm6int\\salsa20_xmm6int-sse2.c\">\r\n      <Filter>crypto_stream\\salsa20\\xmm6int</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\salsa20\\xmm6\\salsa20_xmm6.c\">\r\n      <Filter>crypto_stream\\salsa20\\xmm6</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\salsa2012\\stream_salsa2012.c\">\r\n      <Filter>crypto_stream\\salsa2012</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\salsa2012\\ref\\stream_salsa2012_ref.c\">\r\n      <Filter>crypto_stream\\salsa2012\\ref</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\salsa208\\stream_salsa208.c\">\r\n      <Filter>crypto_stream\\salsa208</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\salsa208\\ref\\stream_salsa208_ref.c\">\r\n      <Filter>crypto_stream\\salsa208\\ref</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\xsalsa20\\stream_xsalsa20.c\">\r\n      <Filter>crypto_stream\\xsalsa20</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_hash\\crypto_hash.c\">\r\n      <Filter>crypto_hash</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_hash\\sha512\\hash_sha512.c\">\r\n      <Filter>crypto_hash\\sha512</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_hash\\sha512\\cp\\hash_sha512_cp.c\">\r\n      <Filter>crypto_hash\\sha512\\cp</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_hash\\sha3\\hash_sha3.c\">\r\n      <Filter>crypto_hash\\sha3</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_hash\\sha256\\hash_sha256.c\">\r\n      <Filter>crypto_hash\\sha256</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_hash\\sha256\\cp\\hash_sha256_cp.c\">\r\n      <Filter>crypto_hash\\sha256\\cp</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_aead\\xchacha20poly1305\\aead_xchacha20poly1305.c\">\r\n      <Filter>crypto_aead\\xchacha20poly1305</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_aead\\aegis128l\\aegis128l_soft.c\">\r\n      <Filter>crypto_aead\\aegis128l</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_aead\\aegis128l\\aead_aegis128l.c\">\r\n      <Filter>crypto_aead\\aegis128l</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_aead\\aegis128l\\aegis128l_aesni.c\">\r\n      <Filter>crypto_aead\\aegis128l</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_aead\\aegis128l\\aegis128l_armcrypto.c\">\r\n      <Filter>crypto_aead\\aegis128l</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_aead\\aegis256\\aead_aegis256.c\">\r\n      <Filter>crypto_aead\\aegis256</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_aead\\aegis256\\aegis256_soft.c\">\r\n      <Filter>crypto_aead\\aegis256</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_aead\\aegis256\\aegis256_armcrypto.c\">\r\n      <Filter>crypto_aead\\aegis256</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_aead\\aegis256\\aegis256_aesni.c\">\r\n      <Filter>crypto_aead\\aegis256</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_aead\\aes256gcm\\aead_aes256gcm.c\">\r\n      <Filter>crypto_aead\\aes256gcm</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_aead\\aes256gcm\\aesni\\aead_aes256gcm_aesni.c\">\r\n      <Filter>crypto_aead\\aes256gcm\\aesni</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_aead\\aes256gcm\\armcrypto\\aead_aes256gcm_armcrypto.c\">\r\n      <Filter>crypto_aead\\aes256gcm\\armcrypto</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_aead\\chacha20poly1305\\aead_chacha20poly1305.c\">\r\n      <Filter>crypto_aead\\chacha20poly1305</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_kem\\crypto_kem.c\">\r\n      <Filter>crypto_kem</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_kem\\xwing\\kem_xwing.c\">\r\n      <Filter>crypto_kem\\xwing</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_kem\\mlkem768\\kem_mlkem768.c\">\r\n      <Filter>crypto_kem\\mlkem768</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_kem\\mlkem768\\ref\\kem_mlkem768_ref.c\">\r\n      <Filter>crypto_kem\\mlkem768\\ref</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_secretstream\\xchacha20poly1305\\secretstream_xchacha20poly1305.c\">\r\n      <Filter>crypto_secretstream\\xchacha20poly1305</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_core\\keccak1600\\keccak1600.c\">\r\n      <Filter>crypto_core\\keccak1600</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_core\\keccak1600\\ref\\keccak1600_ref.c\">\r\n      <Filter>crypto_core\\keccak1600\\ref</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_core\\keccak1600\\armsha3\\keccak1600_armsha3.c\">\r\n      <Filter>crypto_core\\keccak1600\\armsha3</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_core\\salsa\\ref\\core_salsa_ref.c\">\r\n      <Filter>crypto_core\\salsa\\ref</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_core\\hchacha20\\core_hchacha20.c\">\r\n      <Filter>crypto_core\\hchacha20</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_core\\hsalsa20\\core_hsalsa20.c\">\r\n      <Filter>crypto_core\\hsalsa20</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_core\\hsalsa20\\ref2\\core_hsalsa20_ref2.c\">\r\n      <Filter>crypto_core\\hsalsa20\\ref2</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_core\\softaes\\softaes.c\">\r\n      <Filter>crypto_core\\softaes</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_core\\ed25519\\core_ed25519.c\">\r\n      <Filter>crypto_core\\ed25519</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_core\\ed25519\\core_ristretto255.c\">\r\n      <Filter>crypto_core\\ed25519</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_core\\ed25519\\core_h2c.c\">\r\n      <Filter>crypto_core\\ed25519</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_core\\ed25519\\ref10\\ed25519_ref10.c\">\r\n      <Filter>crypto_core\\ed25519\\ref10</Filter>\r\n    </ClCompile>\r\n  </ItemGroup>\r\n  <ItemGroup>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_generichash\\blake2b\\ref\\blake2b-load-sse2.h\">\r\n      <Filter>crypto_generichash\\blake2b\\ref</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_generichash\\blake2b\\ref\\blake2b-load-avx2.h\">\r\n      <Filter>crypto_generichash\\blake2b\\ref</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_generichash\\blake2b\\ref\\blake2.h\">\r\n      <Filter>crypto_generichash\\blake2b\\ref</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_generichash\\blake2b\\ref\\blake2b-compress-ssse3.h\">\r\n      <Filter>crypto_generichash\\blake2b\\ref</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_generichash\\blake2b\\ref\\blake2b-load-sse41.h\">\r\n      <Filter>crypto_generichash\\blake2b\\ref</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_generichash\\blake2b\\ref\\blake2b-compress-avx2.h\">\r\n      <Filter>crypto_generichash\\blake2b\\ref</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_generichash\\blake2b\\ref\\blake2b-compress-sse41.h\">\r\n      <Filter>crypto_generichash\\blake2b\\ref</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_sign\\ed25519\\ref10\\sign_ed25519_ref10.h\">\r\n      <Filter>crypto_sign\\ed25519\\ref10</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium.h\">\r\n      <Filter>include</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_stream_salsa2012.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_auth.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\utils.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_core_hchacha20.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_aead_aegis256.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_hash_sha512.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\core.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\export.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_core_salsa20.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_shorthash_siphash24.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\randombytes.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_hash_sha256.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_stream.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_auth_hmacsha512.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_xof_shake128.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_aead_xchacha20poly1305.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_stream_salsa20.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_onetimeauth_poly1305.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_kem_mlkem768.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_scalarmult_ristretto255.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_kx.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_hash.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_sign.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_kdf.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_auth_hmacsha256.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_box.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_verify_32.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_core_ristretto255.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_stream_xchacha20.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_core_salsa208.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_auth_hmacsha512256.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_xof_turboshake128.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_aead_aegis128l.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_aead_chacha20poly1305.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\randombytes_sysrandom.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_xof_turboshake256.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\runtime.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_stream_salsa208.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_aead_aes256gcm.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_core_salsa2012.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_secretbox_xchacha20poly1305.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_kem.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_core_keccak1600.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_scalarmult.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_pwhash.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_verify_16.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_stream_chacha20.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_stream_xsalsa20.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_core_hsalsa20.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_kdf_blake2b.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_scalarmult_curve25519.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_xof_shake256.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_shorthash.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_kdf_hkdf_sha256.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_pwhash_argon2id.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_secretstream_xchacha20poly1305.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_pwhash_scryptsalsa208sha256.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_hash_sha3.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_kem_xwing.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_sign_ed25519.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_onetimeauth.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_verify_64.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_box_curve25519xchacha20poly1305.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_core_ed25519.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_kdf_hkdf_sha512.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_pwhash_argon2i.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\randombytes_internal_random.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_generichash.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_secretbox_xsalsa20poly1305.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_secretbox.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_scalarmult_ed25519.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_ipcrypt.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_box_curve25519xsalsa20poly1305.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_generichash_blake2b.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\private\\ed25519_ref10.h\">\r\n      <Filter>include\\sodium\\private</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\private\\softaes.h\">\r\n      <Filter>include\\sodium\\private</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\private\\quirks.h\">\r\n      <Filter>include\\sodium\\private</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\private\\ed25519_ref10_fe_25_5.h\">\r\n      <Filter>include\\sodium\\private</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\private\\ed25519_ref10_fe_51.h\">\r\n      <Filter>include\\sodium\\private</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\private\\sse2_64_32.h\">\r\n      <Filter>include\\sodium\\private</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\private\\asm_cet.h\">\r\n      <Filter>include\\sodium\\private</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\private\\common.h\">\r\n      <Filter>include\\sodium\\private</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\private\\mutex.h\">\r\n      <Filter>include\\sodium\\private</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\private\\chacha20_ietf_ext.h\">\r\n      <Filter>include\\sodium\\private</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\private\\implementations.h\">\r\n      <Filter>include\\sodium\\private</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\blamka-round-ref.h\">\r\n      <Filter>crypto_pwhash\\argon2</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\blamka-round-avx2.h\">\r\n      <Filter>crypto_pwhash\\argon2</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\blamka-round-neon.h\">\r\n      <Filter>crypto_pwhash\\argon2</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\blamka-round-wasm32.h\">\r\n      <Filter>crypto_pwhash\\argon2</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\argon2.h\">\r\n      <Filter>crypto_pwhash\\argon2</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\blamka-round-ssse3.h\">\r\n      <Filter>crypto_pwhash\\argon2</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\argon2-encoding.h\">\r\n      <Filter>crypto_pwhash\\argon2</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\blake2b-long.h\">\r\n      <Filter>crypto_pwhash\\argon2</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\blamka-round-avx512f.h\">\r\n      <Filter>crypto_pwhash\\argon2</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\argon2-core.h\">\r\n      <Filter>crypto_pwhash\\argon2</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\scryptsalsa208sha256\\crypto_scrypt.h\">\r\n      <Filter>crypto_pwhash\\scryptsalsa208sha256</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\scryptsalsa208sha256\\pbkdf2-sha256.h\">\r\n      <Filter>crypto_pwhash\\scryptsalsa208sha256</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_xof\\shake128\\ref\\shake128_ref.h\">\r\n      <Filter>crypto_xof\\shake128\\ref</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_xof\\shake256\\ref\\shake256_ref.h\">\r\n      <Filter>crypto_xof\\shake256\\ref</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_xof\\turboshake256\\ref\\turboshake256_ref.h\">\r\n      <Filter>crypto_xof\\turboshake256\\ref</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_xof\\turboshake128\\ref\\turboshake128_ref.h\">\r\n      <Filter>crypto_xof\\turboshake128\\ref</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_shorthash\\siphash24\\ref\\shorthash_siphash_ref.h\">\r\n      <Filter>crypto_shorthash\\siphash24\\ref</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_scalarmult\\curve25519\\scalarmult_curve25519.h\">\r\n      <Filter>crypto_scalarmult\\curve25519</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_scalarmult\\curve25519\\sandy2x\\consts_namespace.h\">\r\n      <Filter>crypto_scalarmult\\curve25519\\sandy2x</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_scalarmult\\curve25519\\sandy2x\\ladder_namespace.h\">\r\n      <Filter>crypto_scalarmult\\curve25519\\sandy2x</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_scalarmult\\curve25519\\sandy2x\\fe.h\">\r\n      <Filter>crypto_scalarmult\\curve25519\\sandy2x</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_scalarmult\\curve25519\\sandy2x\\ladder.h\">\r\n      <Filter>crypto_scalarmult\\curve25519\\sandy2x</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_scalarmult\\curve25519\\sandy2x\\fe51.h\">\r\n      <Filter>crypto_scalarmult\\curve25519\\sandy2x</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_scalarmult\\curve25519\\sandy2x\\curve25519_sandy2x.h\">\r\n      <Filter>crypto_scalarmult\\curve25519\\sandy2x</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_scalarmult\\curve25519\\sandy2x\\fe51_namespace.h\">\r\n      <Filter>crypto_scalarmult\\curve25519\\sandy2x</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_scalarmult\\curve25519\\ref10\\x25519_ref10.h\">\r\n      <Filter>crypto_scalarmult\\curve25519\\ref10</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_onetimeauth\\poly1305\\onetimeauth_poly1305.h\">\r\n      <Filter>crypto_onetimeauth\\poly1305</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_onetimeauth\\poly1305\\donna\\poly1305_donna.h\">\r\n      <Filter>crypto_onetimeauth\\poly1305\\donna</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_onetimeauth\\poly1305\\donna\\poly1305_donna64.h\">\r\n      <Filter>crypto_onetimeauth\\poly1305\\donna</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_onetimeauth\\poly1305\\donna\\poly1305_donna32.h\">\r\n      <Filter>crypto_onetimeauth\\poly1305\\donna</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_onetimeauth\\poly1305\\sse2\\poly1305_sse2.h\">\r\n      <Filter>crypto_onetimeauth\\poly1305\\sse2</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_ipcrypt\\ipcrypt_soft.h\">\r\n      <Filter>crypto_ipcrypt</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_ipcrypt\\ipcrypt_aesni.h\">\r\n      <Filter>crypto_ipcrypt</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_ipcrypt\\ipcrypt_armcrypto.h\">\r\n      <Filter>crypto_ipcrypt</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_ipcrypt\\implementations.h\">\r\n      <Filter>crypto_ipcrypt</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\chacha20\\stream_chacha20.h\">\r\n      <Filter>crypto_stream\\chacha20</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\chacha20\\ref\\chacha20_ref.h\">\r\n      <Filter>crypto_stream\\chacha20\\ref</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\chacha20\\dolbeau\\u4.h\">\r\n      <Filter>crypto_stream\\chacha20\\dolbeau</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\chacha20\\dolbeau\\chacha20_dolbeau-ssse3.h\">\r\n      <Filter>crypto_stream\\chacha20\\dolbeau</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\chacha20\\dolbeau\\u0.h\">\r\n      <Filter>crypto_stream\\chacha20\\dolbeau</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\chacha20\\dolbeau\\u1.h\">\r\n      <Filter>crypto_stream\\chacha20\\dolbeau</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\chacha20\\dolbeau\\chacha20_dolbeau-avx2.h\">\r\n      <Filter>crypto_stream\\chacha20\\dolbeau</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\chacha20\\dolbeau\\u8.h\">\r\n      <Filter>crypto_stream\\chacha20\\dolbeau</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\salsa20\\stream_salsa20.h\">\r\n      <Filter>crypto_stream\\salsa20</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\salsa20\\ref\\salsa20_ref.h\">\r\n      <Filter>crypto_stream\\salsa20\\ref</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\salsa20\\xmm6int\\u4.h\">\r\n      <Filter>crypto_stream\\salsa20\\xmm6int</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\salsa20\\xmm6int\\u0.h\">\r\n      <Filter>crypto_stream\\salsa20\\xmm6int</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\salsa20\\xmm6int\\u1.h\">\r\n      <Filter>crypto_stream\\salsa20\\xmm6int</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\salsa20\\xmm6int\\salsa20_xmm6int-avx2.h\">\r\n      <Filter>crypto_stream\\salsa20\\xmm6int</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\salsa20\\xmm6int\\u8.h\">\r\n      <Filter>crypto_stream\\salsa20\\xmm6int</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\salsa20\\xmm6int\\salsa20_xmm6int-sse2.h\">\r\n      <Filter>crypto_stream\\salsa20\\xmm6int</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\salsa20\\xmm6\\salsa20_xmm6-asm_namespace.h\">\r\n      <Filter>crypto_stream\\salsa20\\xmm6</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\salsa20\\xmm6\\salsa20_xmm6.h\">\r\n      <Filter>crypto_stream\\salsa20\\xmm6</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_aead\\aegis128l\\aegis128l_armcrypto.h\">\r\n      <Filter>crypto_aead\\aegis128l</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_aead\\aegis128l\\aegis128l_aesni.h\">\r\n      <Filter>crypto_aead\\aegis128l</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_aead\\aegis128l\\aegis128l_soft.h\">\r\n      <Filter>crypto_aead\\aegis128l</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_aead\\aegis128l\\aegis128l_common.h\">\r\n      <Filter>crypto_aead\\aegis128l</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_aead\\aegis128l\\implementations.h\">\r\n      <Filter>crypto_aead\\aegis128l</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_aead\\aegis256\\aegis256_aesni.h\">\r\n      <Filter>crypto_aead\\aegis256</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_aead\\aegis256\\aegis256_common.h\">\r\n      <Filter>crypto_aead\\aegis256</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_aead\\aegis256\\implementations.h\">\r\n      <Filter>crypto_aead\\aegis256</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_aead\\aegis256\\aegis256_armcrypto.h\">\r\n      <Filter>crypto_aead\\aegis256</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_aead\\aegis256\\aegis256_soft.h\">\r\n      <Filter>crypto_aead\\aegis256</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_kem\\mlkem768\\ref\\kem_mlkem768_ref.h\">\r\n      <Filter>crypto_kem\\mlkem768\\ref</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_core\\keccak1600\\ref\\keccak1600_ref.h\">\r\n      <Filter>crypto_core\\keccak1600\\ref</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_core\\keccak1600\\armsha3\\keccak1600_armsha3.h\">\r\n      <Filter>crypto_core\\keccak1600\\armsha3</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_core\\ed25519\\core_h2c.h\">\r\n      <Filter>crypto_core\\ed25519</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_core\\ed25519\\ref10\\fe_25_5\\constants.h\">\r\n      <Filter>crypto_core\\ed25519\\ref10\\fe_25_5</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_core\\ed25519\\ref10\\fe_25_5\\fe.h\">\r\n      <Filter>crypto_core\\ed25519\\ref10\\fe_25_5</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_core\\ed25519\\ref10\\fe_25_5\\base2.h\">\r\n      <Filter>crypto_core\\ed25519\\ref10\\fe_25_5</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_core\\ed25519\\ref10\\fe_25_5\\base.h\">\r\n      <Filter>crypto_core\\ed25519\\ref10\\fe_25_5</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_core\\ed25519\\ref10\\fe_51\\constants.h\">\r\n      <Filter>crypto_core\\ed25519\\ref10\\fe_51</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_core\\ed25519\\ref10\\fe_51\\fe.h\">\r\n      <Filter>crypto_core\\ed25519\\ref10\\fe_51</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_core\\ed25519\\ref10\\fe_51\\base2.h\">\r\n      <Filter>crypto_core\\ed25519\\ref10\\fe_51</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_core\\ed25519\\ref10\\fe_51\\base.h\">\r\n      <Filter>crypto_core\\ed25519\\ref10\\fe_51</Filter>\r\n    </ClInclude>\r\n  </ItemGroup>\r\n  <ItemGroup>\r\n    <Filter Include=\"crypto_aead\">\r\n      <UniqueIdentifier>{a6837e41-3751-38c9-bb90-dd59d5f4af7b}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_aead\\aegis128l\">\r\n      <UniqueIdentifier>{9e2a023d-fef1-3231-90ba-9a0ffc9bc9ab}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_aead\\aegis256\">\r\n      <UniqueIdentifier>{6897a4cc-0091-3970-b712-c0ac75c16b67}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_aead\\aes256gcm\">\r\n      <UniqueIdentifier>{3e53394c-b59c-30cc-ae69-a4f46f9edfa3}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_aead\\aes256gcm\\aesni\">\r\n      <UniqueIdentifier>{7eb51140-a50f-3f50-b379-83677a82496c}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_aead\\aes256gcm\\armcrypto\">\r\n      <UniqueIdentifier>{507bb9aa-b65c-3034-946b-bcd375b7deaa}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_aead\\chacha20poly1305\">\r\n      <UniqueIdentifier>{1f4d6dd1-517f-3eeb-b974-2304ada5e67a}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_aead\\xchacha20poly1305\">\r\n      <UniqueIdentifier>{3122f223-e6c2-3ab1-ad85-ca289b47419e}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_auth\">\r\n      <UniqueIdentifier>{0a3af0f3-56f7-3551-a64e-6284feccc423}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_auth\\hmacsha256\">\r\n      <UniqueIdentifier>{64e89b4f-eec9-38c9-90f2-4881bf5e84c0}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_auth\\hmacsha512\">\r\n      <UniqueIdentifier>{0c0b4001-ae11-3d0f-8e73-75ac9b6e1ae8}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_auth\\hmacsha512256\">\r\n      <UniqueIdentifier>{f5065d74-beda-3e1e-819a-f606279c7fe9}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_box\">\r\n      <UniqueIdentifier>{f7aedb93-94a6-3ede-9374-ff41daca4841}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_box\\curve25519xchacha20poly1305\">\r\n      <UniqueIdentifier>{0e7473c9-9c69-36b3-ab6c-d953647a15a6}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_box\\curve25519xsalsa20poly1305\">\r\n      <UniqueIdentifier>{d75db64c-eb08-3f10-9b99-1b6e6827f348}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_core\">\r\n      <UniqueIdentifier>{73194d5d-588a-342f-bee6-f28b4486f20b}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_core\\ed25519\">\r\n      <UniqueIdentifier>{7c5e6f81-e4ce-3018-a776-a1f125072d73}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_core\\ed25519\\ref10\">\r\n      <UniqueIdentifier>{76990c08-d692-367f-b286-c728a8cad6bf}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_core\\ed25519\\ref10\\fe_25_5\">\r\n      <UniqueIdentifier>{bf04f786-7862-3bde-aeba-ed82ee59ca22}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_core\\ed25519\\ref10\\fe_51\">\r\n      <UniqueIdentifier>{98b6126a-3725-3707-a4cc-ff3af657cba0}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_core\\hchacha20\">\r\n      <UniqueIdentifier>{8b704d11-af1f-30c0-9981-479da6d88dc3}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_core\\hsalsa20\">\r\n      <UniqueIdentifier>{342e684b-4e18-311c-953c-8391a544a04f}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_core\\hsalsa20\\ref2\">\r\n      <UniqueIdentifier>{c6b8e28c-7c54-3af7-bee3-2948ba7b2082}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_core\\keccak1600\">\r\n      <UniqueIdentifier>{85c1722f-2d65-30a8-aefb-ebf1cbfe185e}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_core\\keccak1600\\armsha3\">\r\n      <UniqueIdentifier>{855cc78f-1fe0-3ad2-a2ac-5e2b0c01c235}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_core\\keccak1600\\ref\">\r\n      <UniqueIdentifier>{9462f285-fee0-3779-983b-2811dc621f7d}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_core\\salsa\">\r\n      <UniqueIdentifier>{4e9a1d6b-ee07-3bbc-ad78-6d0ba0e6d9d3}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_core\\salsa\\ref\">\r\n      <UniqueIdentifier>{eb259fd9-56f0-32db-a903-6bc1549a7326}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_core\\softaes\">\r\n      <UniqueIdentifier>{05997596-e3d7-3bf1-ad4d-39e4c5fd56f6}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_generichash\">\r\n      <UniqueIdentifier>{e53b6258-fcdd-34c8-96c5-44510a34a390}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_generichash\\blake2b\">\r\n      <UniqueIdentifier>{8bd3b558-2d08-3c3a-81ca-22677dde943b}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_generichash\\blake2b\\ref\">\r\n      <UniqueIdentifier>{16a8dd41-b0ab-39a7-80c8-3052d8b63811}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_hash\">\r\n      <UniqueIdentifier>{d7ec3690-bae7-3653-8c53-66a3142cfcfa}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_hash\\sha256\">\r\n      <UniqueIdentifier>{722ef422-8c03-3008-ba2a-3a7e91c6647c}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_hash\\sha256\\cp\">\r\n      <UniqueIdentifier>{8c7d8b62-7b4f-3eb9-85b7-18e8d925be14}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_hash\\sha3\">\r\n      <UniqueIdentifier>{6df763e3-9707-3014-8cfe-2f9a8a83a872}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_hash\\sha512\">\r\n      <UniqueIdentifier>{8fb6a906-dbd6-3746-9b0f-f49e7028daec}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_hash\\sha512\\cp\">\r\n      <UniqueIdentifier>{f2d6a22b-dd67-3561-90a4-88696169cb7b}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_ipcrypt\">\r\n      <UniqueIdentifier>{5c3b1fe7-203f-36fd-bca5-8d0c4b466d80}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_kdf\">\r\n      <UniqueIdentifier>{aaf59186-1c0d-33cf-a34d-93e14bb87226}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_kdf\\blake2b\">\r\n      <UniqueIdentifier>{3d42d2a2-b192-33dd-9162-508916414707}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_kdf\\hkdf\">\r\n      <UniqueIdentifier>{baf7d894-9298-391d-8dc2-e4c3010f5ddc}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_kem\">\r\n      <UniqueIdentifier>{b9009d4a-dd97-341d-aafb-eeeb77191a49}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_kem\\mlkem768\">\r\n      <UniqueIdentifier>{ab0c8a55-3e1f-307e-82be-8291a3b43735}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_kem\\mlkem768\\ref\">\r\n      <UniqueIdentifier>{70a10765-f8fb-3898-8514-966e48719bc4}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_kem\\xwing\">\r\n      <UniqueIdentifier>{2ef7c851-6598-3be5-88be-9ac5ec867cb0}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_kx\">\r\n      <UniqueIdentifier>{898b6bd5-1360-3a34-adcd-0fade7561685}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_onetimeauth\">\r\n      <UniqueIdentifier>{323c0a15-3c1d-39b2-9ec1-299deb299497}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_onetimeauth\\poly1305\">\r\n      <UniqueIdentifier>{52c2080d-37c0-34c2-864a-c201c728e5d8}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_onetimeauth\\poly1305\\donna\">\r\n      <UniqueIdentifier>{ff618a41-caeb-3a18-ad36-d34b049a8f50}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_onetimeauth\\poly1305\\sse2\">\r\n      <UniqueIdentifier>{ffc3712d-dfe0-3b51-8257-f5ffc9c9cea3}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_pwhash\">\r\n      <UniqueIdentifier>{f54b65b6-71cf-3ab3-9c8c-f89c81846836}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_pwhash\\argon2\">\r\n      <UniqueIdentifier>{1bd97a78-befa-3805-8e9c-80d7c1aff37b}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_pwhash\\scryptsalsa208sha256\">\r\n      <UniqueIdentifier>{e785f104-1212-37bf-8511-cc518b9ace66}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_pwhash\\scryptsalsa208sha256\\nosse\">\r\n      <UniqueIdentifier>{447b993f-59fb-3efd-8c59-a1712c97dfe8}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_pwhash\\scryptsalsa208sha256\\sse\">\r\n      <UniqueIdentifier>{cdb8d233-06b0-3872-a62b-c1ccf4cb4314}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_scalarmult\">\r\n      <UniqueIdentifier>{402a1c5a-d499-333a-a2fa-acd0e6a3c2b2}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_scalarmult\\curve25519\">\r\n      <UniqueIdentifier>{77f5a2e9-2ef1-3a72-b63c-88e8e4b92678}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_scalarmult\\curve25519\\ref10\">\r\n      <UniqueIdentifier>{6c9c7c30-0808-3fad-8a88-944d7645e5d5}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_scalarmult\\curve25519\\sandy2x\">\r\n      <UniqueIdentifier>{5d2fb1a2-f063-32db-a81a-41f79e36fd23}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_scalarmult\\ed25519\">\r\n      <UniqueIdentifier>{7bec6074-fbc7-330b-9e18-7dc3e868569a}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_scalarmult\\ed25519\\ref10\">\r\n      <UniqueIdentifier>{834d4827-81e4-3de3-baa1-a216763f11d6}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_scalarmult\\ristretto255\">\r\n      <UniqueIdentifier>{52bf28eb-7ffd-399a-be35-0df3e8e99c15}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_scalarmult\\ristretto255\\ref10\">\r\n      <UniqueIdentifier>{39cc576f-4b54-3d71-b14c-27445bc4b138}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_secretbox\">\r\n      <UniqueIdentifier>{b9b02bee-5c1f-36d2-b97d-983f865a4cc6}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_secretbox\\xchacha20poly1305\">\r\n      <UniqueIdentifier>{41f1f35b-4639-3424-be85-7dfba02f3c5e}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_secretbox\\xsalsa20poly1305\">\r\n      <UniqueIdentifier>{8bf11d29-2f5a-3f10-8ae6-82229d19c5b0}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_secretstream\">\r\n      <UniqueIdentifier>{62f7ae38-4ce6-3976-acc3-47c462db4fbe}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_secretstream\\xchacha20poly1305\">\r\n      <UniqueIdentifier>{e07a28cd-775a-3798-bfdb-97842d3614d6}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_shorthash\">\r\n      <UniqueIdentifier>{bb073c16-adc8-3cff-80b9-99cf5a28de6c}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_shorthash\\siphash24\">\r\n      <UniqueIdentifier>{63de0ec8-ecde-35e3-8b97-6e9e4da342ee}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_shorthash\\siphash24\\ref\">\r\n      <UniqueIdentifier>{29925210-53eb-342c-8527-7ebc173e668f}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_sign\">\r\n      <UniqueIdentifier>{b2f989b6-87a6-3388-a35c-2d0d59cb4236}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_sign\\ed25519\">\r\n      <UniqueIdentifier>{bc6466a1-57b0-3a35-9973-ad488a4bef8c}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_sign\\ed25519\\ref10\">\r\n      <UniqueIdentifier>{5599d9ab-b5b2-3310-b541-ae0fb70eecf1}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_stream\">\r\n      <UniqueIdentifier>{eaedd08a-46f8-3d12-9e8d-bb3ee3ead5f6}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_stream\\chacha20\">\r\n      <UniqueIdentifier>{806b6ff3-578b-308a-a359-0f5ed8472ecc}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_stream\\chacha20\\dolbeau\">\r\n      <UniqueIdentifier>{5a1d852e-67bb-3dc1-9ec5-99ef74b7faca}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_stream\\chacha20\\ref\">\r\n      <UniqueIdentifier>{33e45d9c-e12a-3e76-9ef2-4f5510244a5b}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_stream\\salsa20\">\r\n      <UniqueIdentifier>{048ba2a8-b22b-346c-9886-668b63c88c68}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_stream\\salsa20\\ref\">\r\n      <UniqueIdentifier>{f08a312f-f8a3-350b-87ab-1f79d33e513f}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_stream\\salsa20\\xmm6\">\r\n      <UniqueIdentifier>{c403f690-cd22-3ed4-9cc7-3f46e73081fd}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_stream\\salsa20\\xmm6int\">\r\n      <UniqueIdentifier>{c34d03f5-cf47-39fe-a5ad-5eb917006203}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_stream\\salsa2012\">\r\n      <UniqueIdentifier>{4da0c5ca-33d1-34e0-9689-12e69ae2dbd6}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_stream\\salsa2012\\ref\">\r\n      <UniqueIdentifier>{dd6b294c-5871-386c-92ec-aa46fcc411d4}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_stream\\salsa208\">\r\n      <UniqueIdentifier>{07aca978-0547-329a-b70b-29aa579cacc5}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_stream\\salsa208\\ref\">\r\n      <UniqueIdentifier>{f171fa05-35c4-32a0-b035-b5d6680ab714}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_stream\\xchacha20\">\r\n      <UniqueIdentifier>{ede2279c-1ba7-3d62-8345-733c6c1965e7}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_stream\\xsalsa20\">\r\n      <UniqueIdentifier>{9c15151b-10dc-3dfe-b97b-a7d8c6b58920}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_verify\">\r\n      <UniqueIdentifier>{49fb9272-ffe2-3993-b562-b19d5f2c9b40}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_xof\">\r\n      <UniqueIdentifier>{9d0b6e6c-57a5-33bb-a67c-c1ce5a5e0684}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_xof\\shake128\">\r\n      <UniqueIdentifier>{3311f765-9a5b-3614-a24f-9b97a56240aa}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_xof\\shake128\\ref\">\r\n      <UniqueIdentifier>{0b3ce98f-5f0a-3836-a95f-5ebd938a0e15}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_xof\\shake256\">\r\n      <UniqueIdentifier>{d4f668ef-b456-369e-b8bf-b1b6d4e90a6d}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_xof\\shake256\\ref\">\r\n      <UniqueIdentifier>{c5174d81-c82a-3411-98f7-829a427faddc}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_xof\\turboshake128\">\r\n      <UniqueIdentifier>{6ccaee32-fd4e-3b58-be6b-a2866132d22d}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_xof\\turboshake128\\ref\">\r\n      <UniqueIdentifier>{00e8736b-cf8d-3a60-bfbe-f0c535d45696}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_xof\\turboshake256\">\r\n      <UniqueIdentifier>{8f7b92bd-0b08-3b14-8693-2df66b256d8b}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_xof\\turboshake256\\ref\">\r\n      <UniqueIdentifier>{bcea4d5e-5593-3465-ac95-2ecd34340ce3}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"include\">\r\n      <UniqueIdentifier>{96da72eb-3aa0-3850-83eb-32788f91e5bd}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"include\\sodium\">\r\n      <UniqueIdentifier>{56bb40fc-d381-3a9e-925b-681774c48dde}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"include\\sodium\\private\">\r\n      <UniqueIdentifier>{fde88485-0fe6-3b22-9480-1d2b49fade53}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"randombytes\">\r\n      <UniqueIdentifier>{ef090484-4db4-3dc2-aca7-c59bab1db23b}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"randombytes\\internal\">\r\n      <UniqueIdentifier>{14c126fd-bb91-37ea-b807-b60c386be601}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"randombytes\\sysrandom\">\r\n      <UniqueIdentifier>{ac56c38f-7e17-3b79-bf47-58e9476b3b89}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"sodium\">\r\n      <UniqueIdentifier>{5dfc520b-f690-3d5f-a86a-8b667f2e7490}</UniqueIdentifier>\r\n    </Filter>\r\n  </ItemGroup>\r\n</Project>\r\n"
  },
  {
    "path": "builds/msvc/vs2013/libsodium/libsodium.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<ProjectSchemaDefinitions xmlns=\"clr-namespace:Microsoft.Build.Framework.XamlTypes;assembly=Microsoft.Build.Framework\">\n  <Rule Name=\"libsodium-uiextension\" PageTemplate=\"tool\" DisplayName=\"Sodium Options\" SwitchPrefix=\"/\" Order=\"1\">\n    <Rule.Categories>\n      <Category Name=\"amd64asm\" DisplayName=\"amd64asm\" />\n    </Rule.Categories>\n    <Rule.DataSource>\n      <DataSource Persistence=\"ProjectFile\" ItemType=\"\" />\n    </Rule.DataSource>\n    <EnumProperty Name=\"Option-amd64asm\" DisplayName=\"Enable AMD64 Assembly\" Description=\"Enable the AMD64 Assembly build option\" Category=\"amd64asm\">\n      <EnumValue Name=\"\" DisplayName=\"No\" />\n      <EnumValue Name=\"true\" DisplayName=\"Yes\" />\n    </EnumProperty>\n  </Rule>\n</ProjectSchemaDefinitions>"
  },
  {
    "path": "builds/msvc/vs2013/libsodium.import.props",
    "content": "﻿<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<Project DefaultTargets=\"Build\" xmlns=\"http://schemas.microsoft.com/developer/msbuild/2003\">\n\n  <PropertyGroup Label=\"Globals\">\n    <_PropertySheetDisplayName>Libsodium Import Settings</_PropertySheetDisplayName>\n  </PropertyGroup>\n\n  <!-- User Interface -->\n\n  <ItemGroup Label=\"BuildOptionsExtension\">\n    <PropertyPageSchema Include=\"$(MSBuildThisFileDirectory)libsodium.import.xml\" />\n  </ItemGroup>\n\n  <!-- Linkage -->\n\n  <ItemDefinitionGroup>\n    <ClCompile>\n      <AdditionalIncludeDirectories>$(ProjectDir)..\\..\\..\\..\\..\\libsodium\\src\\libsodium\\include;$(ProjectDir)..\\..\\..\\..\\..\\libsodium\\src\\libsodium\\include\\sodium\\;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\n      <PreprocessorDefinitions Condition=\"'$(Linkage-libsodium)' == 'static' Or '$(Linkage-libsodium)' == 'ltcg'\">SODIUM_STATIC;%(PreprocessorDefinitions)</PreprocessorDefinitions>\n    </ClCompile>\n    <Link>\n      <AdditionalDependencies Condition=\"'$(Linkage-libsodium)' != ''\">advapi32.lib;libsodium.lib;%(AdditionalDependencies)</AdditionalDependencies>\n      <AdditionalLibraryDirectories Condition=\"$(Configuration.IndexOf('Debug')) != -1\">$(ProjectDir)..\\..\\..\\..\\..\\libsodium\\bin\\$(PlatformName)\\Debug\\$(PlatformToolset)\\$(Linkage-libsodium)\\;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>\n      <AdditionalLibraryDirectories Condition=\"$(Configuration.IndexOf('Release')) != -1\">$(ProjectDir)..\\..\\..\\..\\..\\libsodium\\bin\\$(PlatformName)\\Release\\$(PlatformToolset)\\$(Linkage-libsodium)\\;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>\n    </Link>\n  </ItemDefinitionGroup>\n\n  <!-- Copy -->\n\n  <Target Name=\"Linkage-libsodium-dynamic\" AfterTargets=\"AfterBuild\" Condition=\"'$(Linkage-libsodium)' == 'dynamic'\">\n    <Copy Condition=\"$(Configuration.IndexOf('Debug')) != -1\"\n          SourceFiles=\"$(ProjectDir)..\\..\\..\\..\\..\\libsodium\\bin\\$(PlatformName)\\Debug\\$(PlatformToolset)\\dynamic\\libsodium.dll\"\n          DestinationFiles=\"$(TargetDir)libsodium.dll\"\n          SkipUnchangedFiles=\"true\" />\n    <Copy Condition=\"$(Configuration.IndexOf('Debug')) != -1\"\n          SourceFiles=\"$(ProjectDir)..\\..\\..\\..\\..\\libsodium\\bin\\$(PlatformName)\\Debug\\$(PlatformToolset)\\dynamic\\libsodium.pdb\"\n          DestinationFiles=\"$(TargetDir)libsodium.pdb\"\n          SkipUnchangedFiles=\"true\" />\n    <Copy Condition=\"$(Configuration.IndexOf('Release')) != -1\"\n          SourceFiles=\"$(ProjectDir)..\\..\\..\\..\\..\\libsodium\\bin\\$(PlatformName)\\Release\\$(PlatformToolset)\\dynamic\\libsodium.dll\"\n          DestinationFiles=\"$(TargetDir)libsodium.dll\"\n          SkipUnchangedFiles=\"true\" />\n  </Target>\n\n  <!-- Messages -->\n\n  <Target Name=\"libsodium-info\" BeforeTargets=\"AfterBuild\" Condition=\"'$(Linkage-libsodium)' == 'dynamic'\">\n    <Message Text=\"Copying libsodium.dll -&gt; $(TargetDir)libsodium.dll\" Importance=\"high\"/>\n    <Message Text=\"Copying libsodium.pdb -&gt; $(TargetDir)libsodium.pdb\" Importance=\"high\" Condition=\"$(Configuration.IndexOf('Debug')) != -1\" />\n  </Target>\n\n</Project>"
  },
  {
    "path": "builds/msvc/vs2013/libsodium.import.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<ProjectSchemaDefinitions xmlns=\"clr-namespace:Microsoft.Build.Framework.XamlTypes;assembly=Microsoft.Build.Framework\">\n  <Rule Name=\"libsodium-linkage-uiextension\" PageTemplate=\"tool\" DisplayName=\"Local Dependencies\" SwitchPrefix=\"/\" Order=\"1\">\n    <Rule.Categories>\n      <Category Name=\"libsodium\" DisplayName=\"libsodium\" />\n    </Rule.Categories>\n    <Rule.DataSource>\n      <DataSource Persistence=\"ProjectFile\" ItemType=\"\" />\n    </Rule.DataSource>\n    <EnumProperty Name=\"Linkage-libsodium\" DisplayName=\"Linkage\" Description=\"How libsodium will be linked into the output of this project\" Category=\"libsodium\">\n      <EnumValue Name=\"\" DisplayName=\"Not linked\" />\n      <EnumValue Name=\"dynamic\" DisplayName=\"Dynamic (DLL)\" />\n      <EnumValue Name=\"static\" DisplayName=\"Static (LIB)\" />\n      <EnumValue Name=\"ltcg\" DisplayName=\"Static using link time compile generation (LTCG)\" />\n    </EnumProperty>\n  </Rule>\n</ProjectSchemaDefinitions>"
  },
  {
    "path": "builds/msvc/vs2013/libsodium.sln",
    "content": "﻿\r\nMicrosoft Visual Studio Solution File, Format Version 12.00\r\n# Visual Studio 2013\r\nVisualStudioVersion = 12.0.31101.0\r\nMinimumVisualStudioVersion = 10.0.40219.1\r\nProject(\"{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}\") = \"libsodium\", \"libsodium\\libsodium.vcxproj\", \"{A185B162-6CB6-4502-B03F-B56F7699A8D9}\"\r\nEndProject\r\nGlobal\r\n\tGlobalSection(SolutionConfigurationPlatforms) = preSolution\r\n\t\tDynDebug|Win32 = DynDebug|Win32\r\n\t\tDynDebug|x64 = DynDebug|x64\r\n\t\tDynRelease|Win32 = DynRelease|Win32\r\n\t\tDynRelease|x64 = DynRelease|x64\r\n\t\tLtcgDebug|Win32 = LtcgDebug|Win32\r\n\t\tLtcgDebug|x64 = LtcgDebug|x64\r\n\t\tLtcgRelease|Win32 = LtcgRelease|Win32\r\n\t\tLtcgRelease|x64 = LtcgRelease|x64\r\n\t\tStaticDebug|Win32 = StaticDebug|Win32\r\n\t\tStaticDebug|x64 = StaticDebug|x64\r\n\t\tStaticRelease|Win32 = StaticRelease|Win32\r\n\t\tStaticRelease|x64 = StaticRelease|x64\r\n\tEndGlobalSection\r\n\tGlobalSection(ProjectConfigurationPlatforms) = postSolution\r\n\t\t{A185B162-6CB6-4502-B03F-B56F7699A8D9}.DynDebug|Win32.ActiveCfg = DebugDLL|Win32\r\n\t\t{A185B162-6CB6-4502-B03F-B56F7699A8D9}.DynDebug|Win32.Build.0 = DebugDLL|Win32\r\n\t\t{A185B162-6CB6-4502-B03F-B56F7699A8D9}.DynDebug|x64.ActiveCfg = DebugDLL|x64\r\n\t\t{A185B162-6CB6-4502-B03F-B56F7699A8D9}.DynDebug|x64.Build.0 = DebugDLL|x64\r\n\t\t{A185B162-6CB6-4502-B03F-B56F7699A8D9}.DynRelease|Win32.ActiveCfg = ReleaseDLL|Win32\r\n\t\t{A185B162-6CB6-4502-B03F-B56F7699A8D9}.DynRelease|Win32.Build.0 = ReleaseDLL|Win32\r\n\t\t{A185B162-6CB6-4502-B03F-B56F7699A8D9}.DynRelease|x64.ActiveCfg = ReleaseDLL|x64\r\n\t\t{A185B162-6CB6-4502-B03F-B56F7699A8D9}.DynRelease|x64.Build.0 = ReleaseDLL|x64\r\n\t\t{A185B162-6CB6-4502-B03F-B56F7699A8D9}.LtcgDebug|Win32.ActiveCfg = DebugLTCG|Win32\r\n\t\t{A185B162-6CB6-4502-B03F-B56F7699A8D9}.LtcgDebug|Win32.Build.0 = DebugLTCG|Win32\r\n\t\t{A185B162-6CB6-4502-B03F-B56F7699A8D9}.LtcgDebug|x64.ActiveCfg = DebugLTCG|x64\r\n\t\t{A185B162-6CB6-4502-B03F-B56F7699A8D9}.LtcgDebug|x64.Build.0 = DebugLTCG|x64\r\n\t\t{A185B162-6CB6-4502-B03F-B56F7699A8D9}.LtcgRelease|Win32.ActiveCfg = ReleaseLTCG|Win32\r\n\t\t{A185B162-6CB6-4502-B03F-B56F7699A8D9}.LtcgRelease|Win32.Build.0 = ReleaseLTCG|Win32\r\n\t\t{A185B162-6CB6-4502-B03F-B56F7699A8D9}.LtcgRelease|x64.ActiveCfg = ReleaseLTCG|x64\r\n\t\t{A185B162-6CB6-4502-B03F-B56F7699A8D9}.LtcgRelease|x64.Build.0 = ReleaseLTCG|x64\r\n\t\t{A185B162-6CB6-4502-B03F-B56F7699A8D9}.StaticDebug|Win32.ActiveCfg = DebugLIB|Win32\r\n\t\t{A185B162-6CB6-4502-B03F-B56F7699A8D9}.StaticDebug|Win32.Build.0 = DebugLIB|Win32\r\n\t\t{A185B162-6CB6-4502-B03F-B56F7699A8D9}.StaticDebug|x64.ActiveCfg = DebugLIB|x64\r\n\t\t{A185B162-6CB6-4502-B03F-B56F7699A8D9}.StaticDebug|x64.Build.0 = DebugLIB|x64\r\n\t\t{A185B162-6CB6-4502-B03F-B56F7699A8D9}.StaticRelease|Win32.ActiveCfg = ReleaseLIB|Win32\r\n\t\t{A185B162-6CB6-4502-B03F-B56F7699A8D9}.StaticRelease|Win32.Build.0 = ReleaseLIB|Win32\r\n\t\t{A185B162-6CB6-4502-B03F-B56F7699A8D9}.StaticRelease|x64.ActiveCfg = ReleaseLIB|x64\r\n\t\t{A185B162-6CB6-4502-B03F-B56F7699A8D9}.StaticRelease|x64.Build.0 = ReleaseLIB|x64\r\n\tEndGlobalSection\r\n\tGlobalSection(SolutionProperties) = preSolution\r\n\t\tHideSolutionNode = FALSE\r\n\tEndGlobalSection\r\nEndGlobal\r\n"
  },
  {
    "path": "builds/msvc/vs2015/libsodium/libsodium.props",
    "content": "﻿<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<Project DefaultTargets=\"Build\" xmlns=\"http://schemas.microsoft.com/developer/msbuild/2003\">\n\n  <PropertyGroup Label=\"Globals\">\n    <_PropertySheetDisplayName>Libsodium Common Settings</_PropertySheetDisplayName>\n    <CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>\n    <RunCodeAnalysis>false</RunCodeAnalysis>\n  </PropertyGroup>\n\n  <!-- User Interface -->\n\n  <ItemGroup Label=\"BuildOptionsExtension\">\n    <PropertyPageSchema Include=\"$(MSBuildThisFileDirectory)$(ProjectName).xml\" />\n  </ItemGroup>\n\n  <!-- Configuration -->\n\n  <ItemDefinitionGroup>\n    <PreBuildEvent>\n      <Command>copy \"$(BuildRoot)version.h\" \"$(RepoRoot)src\\libsodium\\include\\sodium\\\"</Command>\n    </PreBuildEvent>\n    <ClCompile>\n      <AdditionalIncludeDirectories>$(RepoRoot)src\\libsodium\\include;$(RepoRoot)src\\libsodium\\include\\sodium\\;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\n      <DisableSpecificWarnings>4146;4244;%(DisableSpecificWarnings)</DisableSpecificWarnings>\n      <EnablePREfast>false</EnablePREfast>\n      <PreprocessorDefinitions>inline=__inline;NATIVE_LITTLE_ENDIAN;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>\n      <PreprocessorDefinitions Condition=\"'$(ConfigurationType)' == 'StaticLibrary'\">SODIUM_STATIC;%(PreprocessorDefinitions)</PreprocessorDefinitions>\n      <PreprocessorDefinitions Condition=\"'$(ConfigurationType)' == 'DynamicLibrary'\">SODIUM_DLL_EXPORT;%(PreprocessorDefinitions)</PreprocessorDefinitions>\n      <PreprocessorDefinitions Condition=\"'$(Option-amd64asm)' == 'true'\">HAVE_AMD64_ASM;%(PreprocessorDefinitions)</PreprocessorDefinitions>\n    </ClCompile>\n  </ItemDefinitionGroup>\n\n  <!-- Messages -->\n\n  <Target Name=\"CustomInfo\" BeforeTargets=\"PrepareForBuild\">\n    <Message Text=\"Will copy $(BuildRoot)version.h -&gt; $(RepoRoot)src\\libsodium\\include\\sodium\\version.h\" Importance=\"high\"/>\n  </Target>\n\n  <Target Name=\"OptionInfo\" BeforeTargets=\"PrepareForBuild\">\n    <Message Text=\"Option-amd64asm   : $(Option-amd64asm)\" Importance=\"high\"/>\n  </Target>\n\n  <ItemDefinitionGroup>\n    <Link>\n      <AdditionalDependencies>advapi32.lib</AdditionalDependencies>\n    </Link>\n  </ItemDefinitionGroup>\n</Project>\n"
  },
  {
    "path": "builds/msvc/vs2015/libsodium/libsodium.vcxproj",
    "content": "﻿<?xml version=\"1.0\" encoding=\"utf-8\"?>\r\n<Project DefaultTargets=\"Build\" ToolsVersion=\"4.0\"\r\n  xmlns=\"http://schemas.microsoft.com/developer/msbuild/2003\">\r\n  <PropertyGroup Label=\"Globals\">\r\n    <ProjectGuid>{A185B162-6CB6-4502-B03F-B56F7699A8D9}</ProjectGuid>\r\n    <ProjectName>libsodium</ProjectName>\r\n    <PlatformToolset>v140</PlatformToolset>\r\n  </PropertyGroup>\r\n  <ItemGroup Label=\"ProjectConfigurations\">\r\n    <ProjectConfiguration Include=\"DebugDLL|Win32\">\r\n      <Configuration>DebugDLL</Configuration>\r\n      <Platform>Win32</Platform>\r\n    </ProjectConfiguration>\r\n    <ProjectConfiguration Include=\"DebugDLL|x64\">\r\n      <Configuration>DebugDLL</Configuration>\r\n      <Platform>x64</Platform>\r\n    </ProjectConfiguration>\r\n    <ProjectConfiguration Include=\"ReleaseDLL|Win32\">\r\n      <Configuration>ReleaseDLL</Configuration>\r\n      <Platform>Win32</Platform>\r\n    </ProjectConfiguration>\r\n    <ProjectConfiguration Include=\"ReleaseDLL|x64\">\r\n      <Configuration>ReleaseDLL</Configuration>\r\n      <Platform>x64</Platform>\r\n    </ProjectConfiguration>\r\n    <ProjectConfiguration Include=\"DebugLIB|Win32\">\r\n      <Configuration>DebugLIB</Configuration>\r\n      <Platform>Win32</Platform>\r\n    </ProjectConfiguration>\r\n    <ProjectConfiguration Include=\"DebugLIB|x64\">\r\n      <Configuration>DebugLIB</Configuration>\r\n      <Platform>x64</Platform>\r\n    </ProjectConfiguration>\r\n    <ProjectConfiguration Include=\"ReleaseLIB|Win32\">\r\n      <Configuration>ReleaseLIB</Configuration>\r\n      <Platform>Win32</Platform>\r\n    </ProjectConfiguration>\r\n    <ProjectConfiguration Include=\"ReleaseLIB|x64\">\r\n      <Configuration>ReleaseLIB</Configuration>\r\n      <Platform>x64</Platform>\r\n    </ProjectConfiguration>\r\n    <ProjectConfiguration Include=\"DebugLTCG|Win32\">\r\n      <Configuration>DebugLTCG</Configuration>\r\n      <Platform>Win32</Platform>\r\n    </ProjectConfiguration>\r\n    <ProjectConfiguration Include=\"DebugLTCG|x64\">\r\n      <Configuration>DebugLTCG</Configuration>\r\n      <Platform>x64</Platform>\r\n    </ProjectConfiguration>\r\n    <ProjectConfiguration Include=\"ReleaseLTCG|Win32\">\r\n      <Configuration>ReleaseLTCG</Configuration>\r\n      <Platform>Win32</Platform>\r\n    </ProjectConfiguration>\r\n    <ProjectConfiguration Include=\"ReleaseLTCG|x64\">\r\n      <Configuration>ReleaseLTCG</Configuration>\r\n      <Platform>x64</Platform>\r\n    </ProjectConfiguration>\r\n  </ItemGroup>\r\n  <PropertyGroup Label=\"Configuration\">\r\n    <ConfigurationType Condition=\"$(Configuration.IndexOf('DLL')) == -1\">StaticLibrary</ConfigurationType>\r\n    <ConfigurationType Condition=\"$(Configuration.IndexOf('DLL')) != -1\">DynamicLibrary</ConfigurationType>\r\n  </PropertyGroup>\r\n  <Import Project=\"$(VCTargetsPath)\\Microsoft.Cpp.Default.props\" />\r\n  <Import Project=\"$(VCTargetsPath)\\Microsoft.Cpp.props\" />\r\n  <ImportGroup Label=\"PropertySheets\">\r\n    <Import Project=\"$(ProjectDir)..\\..\\properties\\$(Configuration).props\" />\r\n    <Import Project=\"$(ProjectDir)..\\..\\properties\\Output.props\" />\r\n    <Import Project=\"$(ProjectDir)$(ProjectName).props\" />\r\n  </ImportGroup>\r\n  <ItemGroup>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_generichash\\crypto_generichash.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_generichash\\blake2b\\generichash_blake2.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_generichash\\blake2b\\ref\\blake2b-compress-ref.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_generichash\\blake2b\\ref\\blake2b-compress-ssse3.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_generichash\\blake2b\\ref\\blake2b-compress-avx2.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_generichash\\blake2b\\ref\\blake2b-compress-sse41.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_generichash\\blake2b\\ref\\generichash_blake2b.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_generichash\\blake2b\\ref\\blake2b-ref.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_kx\\crypto_kx.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_sign\\crypto_sign.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_sign\\ed25519\\sign_ed25519.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_sign\\ed25519\\ref10\\sign.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_sign\\ed25519\\ref10\\keypair.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_sign\\ed25519\\ref10\\open.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_secretbox\\crypto_secretbox.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_secretbox\\crypto_secretbox_easy.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_secretbox\\xsalsa20poly1305\\secretbox_xsalsa20poly1305.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_secretbox\\xchacha20poly1305\\secretbox_xchacha20poly1305.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\crypto_pwhash.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\blake2b-long.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\argon2-fill-block-wasm32.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\argon2-core.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\argon2-fill-block-avx512f.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\argon2-fill-block-ref.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\argon2-fill-block-ssse3.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\pwhash_argon2i.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\argon2-fill-block-neon.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\pwhash_argon2id.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\argon2.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\argon2-fill-block-avx2.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\argon2-encoding.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\scryptsalsa208sha256\\scrypt_platform.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\scryptsalsa208sha256\\crypto_scrypt-common.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\scryptsalsa208sha256\\pwhash_scryptsalsa208sha256.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\scryptsalsa208sha256\\pbkdf2-sha256.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\scryptsalsa208sha256\\nosse\\pwhash_scryptsalsa208sha256_nosse.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\scryptsalsa208sha256\\sse\\pwhash_scryptsalsa208sha256_sse.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_xof\\shake128\\xof_shake128.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_xof\\shake128\\ref\\shake128_ref.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_xof\\shake256\\xof_shake256.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_xof\\shake256\\ref\\shake256_ref.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_xof\\turboshake256\\xof_turboshake256.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_xof\\turboshake256\\ref\\turboshake256_ref.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_xof\\turboshake128\\xof_turboshake128.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_xof\\turboshake128\\ref\\turboshake128_ref.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_verify\\verify.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_auth\\crypto_auth.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_auth\\hmacsha512\\auth_hmacsha512.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_auth\\hmacsha512256\\auth_hmacsha512256.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_auth\\hmacsha256\\auth_hmacsha256.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_kdf\\crypto_kdf.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_kdf\\blake2b\\kdf_blake2b.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_kdf\\hkdf\\kdf_hkdf_sha256.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_kdf\\hkdf\\kdf_hkdf_sha512.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_shorthash\\crypto_shorthash.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_shorthash\\siphash24\\shorthash_siphash24.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_shorthash\\siphash24\\shorthash_siphashx24.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_shorthash\\siphash24\\ref\\shorthash_siphashx24_ref.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_shorthash\\siphash24\\ref\\shorthash_siphash24_ref.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_scalarmult\\crypto_scalarmult.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_scalarmult\\ristretto255\\ref10\\scalarmult_ristretto255_ref10.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_scalarmult\\ed25519\\ref10\\scalarmult_ed25519_ref10.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_scalarmult\\curve25519\\scalarmult_curve25519.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_scalarmult\\curve25519\\sandy2x\\curve25519_sandy2x.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_scalarmult\\curve25519\\sandy2x\\fe_frombytes_sandy2x.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_scalarmult\\curve25519\\sandy2x\\fe51_invert.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_scalarmult\\curve25519\\ref10\\x25519_ref10.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_onetimeauth\\crypto_onetimeauth.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_onetimeauth\\poly1305\\onetimeauth_poly1305.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_onetimeauth\\poly1305\\donna\\poly1305_donna.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_onetimeauth\\poly1305\\sse2\\poly1305_sse2.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\randombytes\\randombytes.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\randombytes\\sysrandom\\randombytes_sysrandom.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\randombytes\\internal\\randombytes_internal_random.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_box\\crypto_box_easy.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_box\\crypto_box_seal.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_box\\crypto_box.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_box\\curve25519xsalsa20poly1305\\box_curve25519xsalsa20poly1305.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_box\\curve25519xchacha20poly1305\\box_curve25519xchacha20poly1305.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_box\\curve25519xchacha20poly1305\\box_seal_curve25519xchacha20poly1305.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\sodium\\codecs.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\sodium\\runtime.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\sodium\\core.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\sodium\\utils.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\sodium\\version.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_ipcrypt\\ipcrypt_armcrypto.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_ipcrypt\\crypto_ipcrypt.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_ipcrypt\\ipcrypt_soft.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_ipcrypt\\ipcrypt_aesni.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\crypto_stream.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\xchacha20\\stream_xchacha20.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\chacha20\\stream_chacha20.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\chacha20\\ref\\chacha20_ref.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\chacha20\\dolbeau\\chacha20_dolbeau-avx2.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\chacha20\\dolbeau\\chacha20_dolbeau-ssse3.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\salsa20\\stream_salsa20.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\salsa20\\ref\\salsa20_ref.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\salsa20\\xmm6int\\salsa20_xmm6int-avx2.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\salsa20\\xmm6int\\salsa20_xmm6int-sse2.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\salsa20\\xmm6\\salsa20_xmm6.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\salsa2012\\stream_salsa2012.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\salsa2012\\ref\\stream_salsa2012_ref.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\salsa208\\stream_salsa208.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\salsa208\\ref\\stream_salsa208_ref.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\xsalsa20\\stream_xsalsa20.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_hash\\crypto_hash.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_hash\\sha512\\hash_sha512.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_hash\\sha512\\cp\\hash_sha512_cp.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_hash\\sha3\\hash_sha3.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_hash\\sha256\\hash_sha256.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_hash\\sha256\\cp\\hash_sha256_cp.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_aead\\xchacha20poly1305\\aead_xchacha20poly1305.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_aead\\aegis128l\\aegis128l_soft.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_aead\\aegis128l\\aead_aegis128l.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_aead\\aegis128l\\aegis128l_aesni.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_aead\\aegis128l\\aegis128l_armcrypto.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_aead\\aegis256\\aead_aegis256.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_aead\\aegis256\\aegis256_soft.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_aead\\aegis256\\aegis256_armcrypto.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_aead\\aegis256\\aegis256_aesni.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_aead\\aes256gcm\\aead_aes256gcm.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_aead\\aes256gcm\\aesni\\aead_aes256gcm_aesni.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_aead\\aes256gcm\\armcrypto\\aead_aes256gcm_armcrypto.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_aead\\chacha20poly1305\\aead_chacha20poly1305.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_kem\\crypto_kem.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_kem\\xwing\\kem_xwing.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_kem\\mlkem768\\kem_mlkem768.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_kem\\mlkem768\\ref\\kem_mlkem768_ref.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_secretstream\\xchacha20poly1305\\secretstream_xchacha20poly1305.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_core\\keccak1600\\keccak1600.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_core\\keccak1600\\ref\\keccak1600_ref.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_core\\keccak1600\\armsha3\\keccak1600_armsha3.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_core\\salsa\\ref\\core_salsa_ref.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_core\\hchacha20\\core_hchacha20.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_core\\hsalsa20\\core_hsalsa20.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_core\\hsalsa20\\ref2\\core_hsalsa20_ref2.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_core\\softaes\\softaes.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_core\\ed25519\\core_ed25519.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_core\\ed25519\\core_ristretto255.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_core\\ed25519\\core_h2c.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_core\\ed25519\\ref10\\ed25519_ref10.c\" />\r\n  </ItemGroup>\r\n  <ItemGroup>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_generichash\\blake2b\\ref\\blake2b-load-sse2.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_generichash\\blake2b\\ref\\blake2b-load-avx2.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_generichash\\blake2b\\ref\\blake2.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_generichash\\blake2b\\ref\\blake2b-compress-ssse3.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_generichash\\blake2b\\ref\\blake2b-load-sse41.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_generichash\\blake2b\\ref\\blake2b-compress-avx2.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_generichash\\blake2b\\ref\\blake2b-compress-sse41.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_sign\\ed25519\\ref10\\sign_ed25519_ref10.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_stream_salsa2012.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_auth.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\utils.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_core_hchacha20.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_aead_aegis256.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_hash_sha512.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\core.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\export.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_core_salsa20.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_shorthash_siphash24.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\randombytes.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_hash_sha256.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_stream.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_auth_hmacsha512.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_xof_shake128.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_aead_xchacha20poly1305.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_stream_salsa20.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_onetimeauth_poly1305.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_kem_mlkem768.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_scalarmult_ristretto255.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_kx.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_hash.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_sign.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_kdf.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_auth_hmacsha256.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_box.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_verify_32.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_core_ristretto255.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_stream_xchacha20.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_core_salsa208.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_auth_hmacsha512256.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_xof_turboshake128.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_aead_aegis128l.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_aead_chacha20poly1305.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\randombytes_sysrandom.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_xof_turboshake256.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\runtime.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_stream_salsa208.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_aead_aes256gcm.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_core_salsa2012.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_secretbox_xchacha20poly1305.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_kem.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_core_keccak1600.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_scalarmult.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_pwhash.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_verify_16.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_stream_chacha20.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_stream_xsalsa20.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_core_hsalsa20.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_kdf_blake2b.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_scalarmult_curve25519.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_xof_shake256.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_shorthash.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_kdf_hkdf_sha256.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_pwhash_argon2id.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_secretstream_xchacha20poly1305.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_pwhash_scryptsalsa208sha256.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_hash_sha3.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_kem_xwing.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_sign_ed25519.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_onetimeauth.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_verify_64.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_box_curve25519xchacha20poly1305.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_core_ed25519.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_kdf_hkdf_sha512.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_pwhash_argon2i.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\randombytes_internal_random.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_generichash.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_secretbox_xsalsa20poly1305.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_secretbox.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_scalarmult_ed25519.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_ipcrypt.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_box_curve25519xsalsa20poly1305.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_generichash_blake2b.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\private\\ed25519_ref10.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\private\\softaes.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\private\\quirks.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\private\\ed25519_ref10_fe_25_5.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\private\\ed25519_ref10_fe_51.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\private\\sse2_64_32.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\private\\asm_cet.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\private\\common.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\private\\mutex.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\private\\chacha20_ietf_ext.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\private\\implementations.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\blamka-round-ref.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\blamka-round-avx2.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\blamka-round-neon.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\blamka-round-wasm32.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\argon2.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\blamka-round-ssse3.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\argon2-encoding.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\blake2b-long.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\blamka-round-avx512f.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\argon2-core.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\scryptsalsa208sha256\\crypto_scrypt.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\scryptsalsa208sha256\\pbkdf2-sha256.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_xof\\shake128\\ref\\shake128_ref.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_xof\\shake256\\ref\\shake256_ref.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_xof\\turboshake256\\ref\\turboshake256_ref.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_xof\\turboshake128\\ref\\turboshake128_ref.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_shorthash\\siphash24\\ref\\shorthash_siphash_ref.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_scalarmult\\curve25519\\scalarmult_curve25519.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_scalarmult\\curve25519\\sandy2x\\consts_namespace.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_scalarmult\\curve25519\\sandy2x\\ladder_namespace.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_scalarmult\\curve25519\\sandy2x\\fe.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_scalarmult\\curve25519\\sandy2x\\ladder.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_scalarmult\\curve25519\\sandy2x\\fe51.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_scalarmult\\curve25519\\sandy2x\\curve25519_sandy2x.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_scalarmult\\curve25519\\sandy2x\\fe51_namespace.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_scalarmult\\curve25519\\ref10\\x25519_ref10.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_onetimeauth\\poly1305\\onetimeauth_poly1305.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_onetimeauth\\poly1305\\donna\\poly1305_donna.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_onetimeauth\\poly1305\\donna\\poly1305_donna64.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_onetimeauth\\poly1305\\donna\\poly1305_donna32.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_onetimeauth\\poly1305\\sse2\\poly1305_sse2.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_ipcrypt\\ipcrypt_soft.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_ipcrypt\\ipcrypt_aesni.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_ipcrypt\\ipcrypt_armcrypto.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_ipcrypt\\implementations.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\chacha20\\stream_chacha20.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\chacha20\\ref\\chacha20_ref.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\chacha20\\dolbeau\\u4.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\chacha20\\dolbeau\\chacha20_dolbeau-ssse3.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\chacha20\\dolbeau\\u0.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\chacha20\\dolbeau\\u1.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\chacha20\\dolbeau\\chacha20_dolbeau-avx2.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\chacha20\\dolbeau\\u8.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\salsa20\\stream_salsa20.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\salsa20\\ref\\salsa20_ref.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\salsa20\\xmm6int\\u4.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\salsa20\\xmm6int\\u0.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\salsa20\\xmm6int\\u1.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\salsa20\\xmm6int\\salsa20_xmm6int-avx2.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\salsa20\\xmm6int\\u8.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\salsa20\\xmm6int\\salsa20_xmm6int-sse2.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\salsa20\\xmm6\\salsa20_xmm6-asm_namespace.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\salsa20\\xmm6\\salsa20_xmm6.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_aead\\aegis128l\\aegis128l_armcrypto.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_aead\\aegis128l\\aegis128l_aesni.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_aead\\aegis128l\\aegis128l_soft.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_aead\\aegis128l\\aegis128l_common.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_aead\\aegis128l\\implementations.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_aead\\aegis256\\aegis256_aesni.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_aead\\aegis256\\aegis256_common.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_aead\\aegis256\\implementations.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_aead\\aegis256\\aegis256_armcrypto.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_aead\\aegis256\\aegis256_soft.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_kem\\mlkem768\\ref\\kem_mlkem768_ref.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_core\\keccak1600\\ref\\keccak1600_ref.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_core\\keccak1600\\armsha3\\keccak1600_armsha3.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_core\\ed25519\\core_h2c.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_core\\ed25519\\ref10\\fe_25_5\\constants.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_core\\ed25519\\ref10\\fe_25_5\\fe.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_core\\ed25519\\ref10\\fe_25_5\\base2.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_core\\ed25519\\ref10\\fe_25_5\\base.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_core\\ed25519\\ref10\\fe_51\\constants.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_core\\ed25519\\ref10\\fe_51\\fe.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_core\\ed25519\\ref10\\fe_51\\base2.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_core\\ed25519\\ref10\\fe_51\\base.h\" />\r\n    <ClInclude Include=\"..\\..\\resource.h\" />\r\n  </ItemGroup>\r\n  <ItemGroup>\r\n    <ResourceCompile Include=\"..\\..\\resource.rc\">\r\n    </ResourceCompile>\r\n  </ItemGroup>\r\n  <Import Project=\"$(VCTargetsPath)\\Microsoft.Cpp.targets\" />\r\n  <ImportGroup Label=\"ExtensionTargets\">\r\n  </ImportGroup>\r\n</Project>\r\n"
  },
  {
    "path": "builds/msvc/vs2015/libsodium/libsodium.vcxproj.filters",
    "content": "﻿<?xml version=\"1.0\" encoding=\"utf-8\"?>\r\n<Project ToolsVersion=\"4.0\" xmlns=\"http://schemas.microsoft.com/developer/msbuild/2003\">\r\n  <ItemGroup>\r\n    <None Include=\"..\\..\\..\\..\\packaging\\nuget\\package.bat\">\r\n      <Filter>packaging</Filter>\r\n    </None>\r\n    <None Include=\"..\\..\\..\\..\\packaging\\nuget\\package.gsl\">\r\n      <Filter>packaging</Filter>\r\n    </None>\r\n    <None Include=\"..\\..\\..\\..\\packaging\\nuget\\package.nuspec\">\r\n      <Filter>packaging</Filter>\r\n    </None>\r\n    <None Include=\"..\\..\\..\\..\\packaging\\nuget\\package.targets\">\r\n      <Filter>packaging</Filter>\r\n    </None>\r\n    <None Include=\"..\\..\\..\\..\\packaging\\nuget\\package.config\">\r\n      <Filter>packaging</Filter>\r\n    </None>\r\n    <Xml Include=\"..\\..\\..\\..\\packaging\\nuget\\package.xml\">\r\n      <Filter>packaging</Filter>\r\n    </Xml>\r\n  </ItemGroup>\r\n  <ItemGroup>\r\n    <ResourceCompile Include=\"..\\..\\resource.rc\" />\r\n  </ItemGroup>\r\n  <ItemGroup>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_generichash\\crypto_generichash.c\">\r\n      <Filter>crypto_generichash</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_generichash\\blake2b\\generichash_blake2.c\">\r\n      <Filter>crypto_generichash\\blake2b</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_generichash\\blake2b\\ref\\blake2b-compress-ref.c\">\r\n      <Filter>crypto_generichash\\blake2b\\ref</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_generichash\\blake2b\\ref\\blake2b-compress-ssse3.c\">\r\n      <Filter>crypto_generichash\\blake2b\\ref</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_generichash\\blake2b\\ref\\blake2b-compress-avx2.c\">\r\n      <Filter>crypto_generichash\\blake2b\\ref</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_generichash\\blake2b\\ref\\blake2b-compress-sse41.c\">\r\n      <Filter>crypto_generichash\\blake2b\\ref</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_generichash\\blake2b\\ref\\generichash_blake2b.c\">\r\n      <Filter>crypto_generichash\\blake2b\\ref</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_generichash\\blake2b\\ref\\blake2b-ref.c\">\r\n      <Filter>crypto_generichash\\blake2b\\ref</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_kx\\crypto_kx.c\">\r\n      <Filter>crypto_kx</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_sign\\crypto_sign.c\">\r\n      <Filter>crypto_sign</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_sign\\ed25519\\sign_ed25519.c\">\r\n      <Filter>crypto_sign\\ed25519</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_sign\\ed25519\\ref10\\sign.c\">\r\n      <Filter>crypto_sign\\ed25519\\ref10</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_sign\\ed25519\\ref10\\keypair.c\">\r\n      <Filter>crypto_sign\\ed25519\\ref10</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_sign\\ed25519\\ref10\\open.c\">\r\n      <Filter>crypto_sign\\ed25519\\ref10</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_secretbox\\crypto_secretbox.c\">\r\n      <Filter>crypto_secretbox</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_secretbox\\crypto_secretbox_easy.c\">\r\n      <Filter>crypto_secretbox</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_secretbox\\xsalsa20poly1305\\secretbox_xsalsa20poly1305.c\">\r\n      <Filter>crypto_secretbox\\xsalsa20poly1305</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_secretbox\\xchacha20poly1305\\secretbox_xchacha20poly1305.c\">\r\n      <Filter>crypto_secretbox\\xchacha20poly1305</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\crypto_pwhash.c\">\r\n      <Filter>crypto_pwhash</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\blake2b-long.c\">\r\n      <Filter>crypto_pwhash\\argon2</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\argon2-fill-block-wasm32.c\">\r\n      <Filter>crypto_pwhash\\argon2</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\argon2-core.c\">\r\n      <Filter>crypto_pwhash\\argon2</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\argon2-fill-block-avx512f.c\">\r\n      <Filter>crypto_pwhash\\argon2</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\argon2-fill-block-ref.c\">\r\n      <Filter>crypto_pwhash\\argon2</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\argon2-fill-block-ssse3.c\">\r\n      <Filter>crypto_pwhash\\argon2</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\pwhash_argon2i.c\">\r\n      <Filter>crypto_pwhash\\argon2</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\argon2-fill-block-neon.c\">\r\n      <Filter>crypto_pwhash\\argon2</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\pwhash_argon2id.c\">\r\n      <Filter>crypto_pwhash\\argon2</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\argon2.c\">\r\n      <Filter>crypto_pwhash\\argon2</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\argon2-fill-block-avx2.c\">\r\n      <Filter>crypto_pwhash\\argon2</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\argon2-encoding.c\">\r\n      <Filter>crypto_pwhash\\argon2</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\scryptsalsa208sha256\\scrypt_platform.c\">\r\n      <Filter>crypto_pwhash\\scryptsalsa208sha256</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\scryptsalsa208sha256\\crypto_scrypt-common.c\">\r\n      <Filter>crypto_pwhash\\scryptsalsa208sha256</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\scryptsalsa208sha256\\pwhash_scryptsalsa208sha256.c\">\r\n      <Filter>crypto_pwhash\\scryptsalsa208sha256</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\scryptsalsa208sha256\\pbkdf2-sha256.c\">\r\n      <Filter>crypto_pwhash\\scryptsalsa208sha256</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\scryptsalsa208sha256\\nosse\\pwhash_scryptsalsa208sha256_nosse.c\">\r\n      <Filter>crypto_pwhash\\scryptsalsa208sha256\\nosse</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\scryptsalsa208sha256\\sse\\pwhash_scryptsalsa208sha256_sse.c\">\r\n      <Filter>crypto_pwhash\\scryptsalsa208sha256\\sse</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_xof\\shake128\\xof_shake128.c\">\r\n      <Filter>crypto_xof\\shake128</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_xof\\shake128\\ref\\shake128_ref.c\">\r\n      <Filter>crypto_xof\\shake128\\ref</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_xof\\shake256\\xof_shake256.c\">\r\n      <Filter>crypto_xof\\shake256</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_xof\\shake256\\ref\\shake256_ref.c\">\r\n      <Filter>crypto_xof\\shake256\\ref</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_xof\\turboshake256\\xof_turboshake256.c\">\r\n      <Filter>crypto_xof\\turboshake256</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_xof\\turboshake256\\ref\\turboshake256_ref.c\">\r\n      <Filter>crypto_xof\\turboshake256\\ref</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_xof\\turboshake128\\xof_turboshake128.c\">\r\n      <Filter>crypto_xof\\turboshake128</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_xof\\turboshake128\\ref\\turboshake128_ref.c\">\r\n      <Filter>crypto_xof\\turboshake128\\ref</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_verify\\verify.c\">\r\n      <Filter>crypto_verify</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_auth\\crypto_auth.c\">\r\n      <Filter>crypto_auth</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_auth\\hmacsha512\\auth_hmacsha512.c\">\r\n      <Filter>crypto_auth\\hmacsha512</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_auth\\hmacsha512256\\auth_hmacsha512256.c\">\r\n      <Filter>crypto_auth\\hmacsha512256</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_auth\\hmacsha256\\auth_hmacsha256.c\">\r\n      <Filter>crypto_auth\\hmacsha256</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_kdf\\crypto_kdf.c\">\r\n      <Filter>crypto_kdf</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_kdf\\blake2b\\kdf_blake2b.c\">\r\n      <Filter>crypto_kdf\\blake2b</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_kdf\\hkdf\\kdf_hkdf_sha256.c\">\r\n      <Filter>crypto_kdf\\hkdf</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_kdf\\hkdf\\kdf_hkdf_sha512.c\">\r\n      <Filter>crypto_kdf\\hkdf</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_shorthash\\crypto_shorthash.c\">\r\n      <Filter>crypto_shorthash</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_shorthash\\siphash24\\shorthash_siphash24.c\">\r\n      <Filter>crypto_shorthash\\siphash24</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_shorthash\\siphash24\\shorthash_siphashx24.c\">\r\n      <Filter>crypto_shorthash\\siphash24</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_shorthash\\siphash24\\ref\\shorthash_siphashx24_ref.c\">\r\n      <Filter>crypto_shorthash\\siphash24\\ref</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_shorthash\\siphash24\\ref\\shorthash_siphash24_ref.c\">\r\n      <Filter>crypto_shorthash\\siphash24\\ref</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_scalarmult\\crypto_scalarmult.c\">\r\n      <Filter>crypto_scalarmult</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_scalarmult\\ristretto255\\ref10\\scalarmult_ristretto255_ref10.c\">\r\n      <Filter>crypto_scalarmult\\ristretto255\\ref10</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_scalarmult\\ed25519\\ref10\\scalarmult_ed25519_ref10.c\">\r\n      <Filter>crypto_scalarmult\\ed25519\\ref10</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_scalarmult\\curve25519\\scalarmult_curve25519.c\">\r\n      <Filter>crypto_scalarmult\\curve25519</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_scalarmult\\curve25519\\sandy2x\\curve25519_sandy2x.c\">\r\n      <Filter>crypto_scalarmult\\curve25519\\sandy2x</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_scalarmult\\curve25519\\sandy2x\\fe_frombytes_sandy2x.c\">\r\n      <Filter>crypto_scalarmult\\curve25519\\sandy2x</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_scalarmult\\curve25519\\sandy2x\\fe51_invert.c\">\r\n      <Filter>crypto_scalarmult\\curve25519\\sandy2x</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_scalarmult\\curve25519\\ref10\\x25519_ref10.c\">\r\n      <Filter>crypto_scalarmult\\curve25519\\ref10</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_onetimeauth\\crypto_onetimeauth.c\">\r\n      <Filter>crypto_onetimeauth</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_onetimeauth\\poly1305\\onetimeauth_poly1305.c\">\r\n      <Filter>crypto_onetimeauth\\poly1305</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_onetimeauth\\poly1305\\donna\\poly1305_donna.c\">\r\n      <Filter>crypto_onetimeauth\\poly1305\\donna</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_onetimeauth\\poly1305\\sse2\\poly1305_sse2.c\">\r\n      <Filter>crypto_onetimeauth\\poly1305\\sse2</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\randombytes\\randombytes.c\">\r\n      <Filter>randombytes</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\randombytes\\sysrandom\\randombytes_sysrandom.c\">\r\n      <Filter>randombytes\\sysrandom</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\randombytes\\internal\\randombytes_internal_random.c\">\r\n      <Filter>randombytes\\internal</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_box\\crypto_box_easy.c\">\r\n      <Filter>crypto_box</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_box\\crypto_box_seal.c\">\r\n      <Filter>crypto_box</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_box\\crypto_box.c\">\r\n      <Filter>crypto_box</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_box\\curve25519xsalsa20poly1305\\box_curve25519xsalsa20poly1305.c\">\r\n      <Filter>crypto_box\\curve25519xsalsa20poly1305</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_box\\curve25519xchacha20poly1305\\box_curve25519xchacha20poly1305.c\">\r\n      <Filter>crypto_box\\curve25519xchacha20poly1305</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_box\\curve25519xchacha20poly1305\\box_seal_curve25519xchacha20poly1305.c\">\r\n      <Filter>crypto_box\\curve25519xchacha20poly1305</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\sodium\\codecs.c\">\r\n      <Filter>sodium</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\sodium\\runtime.c\">\r\n      <Filter>sodium</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\sodium\\core.c\">\r\n      <Filter>sodium</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\sodium\\utils.c\">\r\n      <Filter>sodium</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\sodium\\version.c\">\r\n      <Filter>sodium</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_ipcrypt\\ipcrypt_armcrypto.c\">\r\n      <Filter>crypto_ipcrypt</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_ipcrypt\\crypto_ipcrypt.c\">\r\n      <Filter>crypto_ipcrypt</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_ipcrypt\\ipcrypt_soft.c\">\r\n      <Filter>crypto_ipcrypt</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_ipcrypt\\ipcrypt_aesni.c\">\r\n      <Filter>crypto_ipcrypt</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\crypto_stream.c\">\r\n      <Filter>crypto_stream</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\xchacha20\\stream_xchacha20.c\">\r\n      <Filter>crypto_stream\\xchacha20</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\chacha20\\stream_chacha20.c\">\r\n      <Filter>crypto_stream\\chacha20</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\chacha20\\ref\\chacha20_ref.c\">\r\n      <Filter>crypto_stream\\chacha20\\ref</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\chacha20\\dolbeau\\chacha20_dolbeau-avx2.c\">\r\n      <Filter>crypto_stream\\chacha20\\dolbeau</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\chacha20\\dolbeau\\chacha20_dolbeau-ssse3.c\">\r\n      <Filter>crypto_stream\\chacha20\\dolbeau</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\salsa20\\stream_salsa20.c\">\r\n      <Filter>crypto_stream\\salsa20</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\salsa20\\ref\\salsa20_ref.c\">\r\n      <Filter>crypto_stream\\salsa20\\ref</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\salsa20\\xmm6int\\salsa20_xmm6int-avx2.c\">\r\n      <Filter>crypto_stream\\salsa20\\xmm6int</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\salsa20\\xmm6int\\salsa20_xmm6int-sse2.c\">\r\n      <Filter>crypto_stream\\salsa20\\xmm6int</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\salsa20\\xmm6\\salsa20_xmm6.c\">\r\n      <Filter>crypto_stream\\salsa20\\xmm6</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\salsa2012\\stream_salsa2012.c\">\r\n      <Filter>crypto_stream\\salsa2012</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\salsa2012\\ref\\stream_salsa2012_ref.c\">\r\n      <Filter>crypto_stream\\salsa2012\\ref</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\salsa208\\stream_salsa208.c\">\r\n      <Filter>crypto_stream\\salsa208</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\salsa208\\ref\\stream_salsa208_ref.c\">\r\n      <Filter>crypto_stream\\salsa208\\ref</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\xsalsa20\\stream_xsalsa20.c\">\r\n      <Filter>crypto_stream\\xsalsa20</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_hash\\crypto_hash.c\">\r\n      <Filter>crypto_hash</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_hash\\sha512\\hash_sha512.c\">\r\n      <Filter>crypto_hash\\sha512</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_hash\\sha512\\cp\\hash_sha512_cp.c\">\r\n      <Filter>crypto_hash\\sha512\\cp</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_hash\\sha3\\hash_sha3.c\">\r\n      <Filter>crypto_hash\\sha3</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_hash\\sha256\\hash_sha256.c\">\r\n      <Filter>crypto_hash\\sha256</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_hash\\sha256\\cp\\hash_sha256_cp.c\">\r\n      <Filter>crypto_hash\\sha256\\cp</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_aead\\xchacha20poly1305\\aead_xchacha20poly1305.c\">\r\n      <Filter>crypto_aead\\xchacha20poly1305</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_aead\\aegis128l\\aegis128l_soft.c\">\r\n      <Filter>crypto_aead\\aegis128l</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_aead\\aegis128l\\aead_aegis128l.c\">\r\n      <Filter>crypto_aead\\aegis128l</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_aead\\aegis128l\\aegis128l_aesni.c\">\r\n      <Filter>crypto_aead\\aegis128l</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_aead\\aegis128l\\aegis128l_armcrypto.c\">\r\n      <Filter>crypto_aead\\aegis128l</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_aead\\aegis256\\aead_aegis256.c\">\r\n      <Filter>crypto_aead\\aegis256</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_aead\\aegis256\\aegis256_soft.c\">\r\n      <Filter>crypto_aead\\aegis256</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_aead\\aegis256\\aegis256_armcrypto.c\">\r\n      <Filter>crypto_aead\\aegis256</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_aead\\aegis256\\aegis256_aesni.c\">\r\n      <Filter>crypto_aead\\aegis256</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_aead\\aes256gcm\\aead_aes256gcm.c\">\r\n      <Filter>crypto_aead\\aes256gcm</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_aead\\aes256gcm\\aesni\\aead_aes256gcm_aesni.c\">\r\n      <Filter>crypto_aead\\aes256gcm\\aesni</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_aead\\aes256gcm\\armcrypto\\aead_aes256gcm_armcrypto.c\">\r\n      <Filter>crypto_aead\\aes256gcm\\armcrypto</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_aead\\chacha20poly1305\\aead_chacha20poly1305.c\">\r\n      <Filter>crypto_aead\\chacha20poly1305</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_kem\\crypto_kem.c\">\r\n      <Filter>crypto_kem</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_kem\\xwing\\kem_xwing.c\">\r\n      <Filter>crypto_kem\\xwing</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_kem\\mlkem768\\kem_mlkem768.c\">\r\n      <Filter>crypto_kem\\mlkem768</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_kem\\mlkem768\\ref\\kem_mlkem768_ref.c\">\r\n      <Filter>crypto_kem\\mlkem768\\ref</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_secretstream\\xchacha20poly1305\\secretstream_xchacha20poly1305.c\">\r\n      <Filter>crypto_secretstream\\xchacha20poly1305</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_core\\keccak1600\\keccak1600.c\">\r\n      <Filter>crypto_core\\keccak1600</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_core\\keccak1600\\ref\\keccak1600_ref.c\">\r\n      <Filter>crypto_core\\keccak1600\\ref</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_core\\keccak1600\\armsha3\\keccak1600_armsha3.c\">\r\n      <Filter>crypto_core\\keccak1600\\armsha3</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_core\\salsa\\ref\\core_salsa_ref.c\">\r\n      <Filter>crypto_core\\salsa\\ref</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_core\\hchacha20\\core_hchacha20.c\">\r\n      <Filter>crypto_core\\hchacha20</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_core\\hsalsa20\\core_hsalsa20.c\">\r\n      <Filter>crypto_core\\hsalsa20</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_core\\hsalsa20\\ref2\\core_hsalsa20_ref2.c\">\r\n      <Filter>crypto_core\\hsalsa20\\ref2</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_core\\softaes\\softaes.c\">\r\n      <Filter>crypto_core\\softaes</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_core\\ed25519\\core_ed25519.c\">\r\n      <Filter>crypto_core\\ed25519</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_core\\ed25519\\core_ristretto255.c\">\r\n      <Filter>crypto_core\\ed25519</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_core\\ed25519\\core_h2c.c\">\r\n      <Filter>crypto_core\\ed25519</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_core\\ed25519\\ref10\\ed25519_ref10.c\">\r\n      <Filter>crypto_core\\ed25519\\ref10</Filter>\r\n    </ClCompile>\r\n  </ItemGroup>\r\n  <ItemGroup>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_generichash\\blake2b\\ref\\blake2b-load-sse2.h\">\r\n      <Filter>crypto_generichash\\blake2b\\ref</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_generichash\\blake2b\\ref\\blake2b-load-avx2.h\">\r\n      <Filter>crypto_generichash\\blake2b\\ref</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_generichash\\blake2b\\ref\\blake2.h\">\r\n      <Filter>crypto_generichash\\blake2b\\ref</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_generichash\\blake2b\\ref\\blake2b-compress-ssse3.h\">\r\n      <Filter>crypto_generichash\\blake2b\\ref</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_generichash\\blake2b\\ref\\blake2b-load-sse41.h\">\r\n      <Filter>crypto_generichash\\blake2b\\ref</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_generichash\\blake2b\\ref\\blake2b-compress-avx2.h\">\r\n      <Filter>crypto_generichash\\blake2b\\ref</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_generichash\\blake2b\\ref\\blake2b-compress-sse41.h\">\r\n      <Filter>crypto_generichash\\blake2b\\ref</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_sign\\ed25519\\ref10\\sign_ed25519_ref10.h\">\r\n      <Filter>crypto_sign\\ed25519\\ref10</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium.h\">\r\n      <Filter>include</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_stream_salsa2012.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_auth.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\utils.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_core_hchacha20.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_aead_aegis256.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_hash_sha512.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\core.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\export.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_core_salsa20.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_shorthash_siphash24.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\randombytes.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_hash_sha256.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_stream.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_auth_hmacsha512.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_xof_shake128.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_aead_xchacha20poly1305.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_stream_salsa20.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_onetimeauth_poly1305.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_kem_mlkem768.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_scalarmult_ristretto255.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_kx.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_hash.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_sign.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_kdf.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_auth_hmacsha256.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_box.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_verify_32.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_core_ristretto255.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_stream_xchacha20.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_core_salsa208.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_auth_hmacsha512256.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_xof_turboshake128.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_aead_aegis128l.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_aead_chacha20poly1305.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\randombytes_sysrandom.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_xof_turboshake256.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\runtime.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_stream_salsa208.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_aead_aes256gcm.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_core_salsa2012.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_secretbox_xchacha20poly1305.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_kem.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_core_keccak1600.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_scalarmult.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_pwhash.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_verify_16.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_stream_chacha20.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_stream_xsalsa20.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_core_hsalsa20.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_kdf_blake2b.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_scalarmult_curve25519.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_xof_shake256.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_shorthash.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_kdf_hkdf_sha256.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_pwhash_argon2id.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_secretstream_xchacha20poly1305.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_pwhash_scryptsalsa208sha256.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_hash_sha3.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_kem_xwing.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_sign_ed25519.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_onetimeauth.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_verify_64.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_box_curve25519xchacha20poly1305.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_core_ed25519.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_kdf_hkdf_sha512.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_pwhash_argon2i.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\randombytes_internal_random.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_generichash.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_secretbox_xsalsa20poly1305.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_secretbox.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_scalarmult_ed25519.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_ipcrypt.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_box_curve25519xsalsa20poly1305.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_generichash_blake2b.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\private\\ed25519_ref10.h\">\r\n      <Filter>include\\sodium\\private</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\private\\softaes.h\">\r\n      <Filter>include\\sodium\\private</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\private\\quirks.h\">\r\n      <Filter>include\\sodium\\private</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\private\\ed25519_ref10_fe_25_5.h\">\r\n      <Filter>include\\sodium\\private</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\private\\ed25519_ref10_fe_51.h\">\r\n      <Filter>include\\sodium\\private</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\private\\sse2_64_32.h\">\r\n      <Filter>include\\sodium\\private</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\private\\asm_cet.h\">\r\n      <Filter>include\\sodium\\private</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\private\\common.h\">\r\n      <Filter>include\\sodium\\private</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\private\\mutex.h\">\r\n      <Filter>include\\sodium\\private</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\private\\chacha20_ietf_ext.h\">\r\n      <Filter>include\\sodium\\private</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\private\\implementations.h\">\r\n      <Filter>include\\sodium\\private</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\blamka-round-ref.h\">\r\n      <Filter>crypto_pwhash\\argon2</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\blamka-round-avx2.h\">\r\n      <Filter>crypto_pwhash\\argon2</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\blamka-round-neon.h\">\r\n      <Filter>crypto_pwhash\\argon2</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\blamka-round-wasm32.h\">\r\n      <Filter>crypto_pwhash\\argon2</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\argon2.h\">\r\n      <Filter>crypto_pwhash\\argon2</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\blamka-round-ssse3.h\">\r\n      <Filter>crypto_pwhash\\argon2</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\argon2-encoding.h\">\r\n      <Filter>crypto_pwhash\\argon2</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\blake2b-long.h\">\r\n      <Filter>crypto_pwhash\\argon2</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\blamka-round-avx512f.h\">\r\n      <Filter>crypto_pwhash\\argon2</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\argon2-core.h\">\r\n      <Filter>crypto_pwhash\\argon2</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\scryptsalsa208sha256\\crypto_scrypt.h\">\r\n      <Filter>crypto_pwhash\\scryptsalsa208sha256</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\scryptsalsa208sha256\\pbkdf2-sha256.h\">\r\n      <Filter>crypto_pwhash\\scryptsalsa208sha256</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_xof\\shake128\\ref\\shake128_ref.h\">\r\n      <Filter>crypto_xof\\shake128\\ref</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_xof\\shake256\\ref\\shake256_ref.h\">\r\n      <Filter>crypto_xof\\shake256\\ref</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_xof\\turboshake256\\ref\\turboshake256_ref.h\">\r\n      <Filter>crypto_xof\\turboshake256\\ref</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_xof\\turboshake128\\ref\\turboshake128_ref.h\">\r\n      <Filter>crypto_xof\\turboshake128\\ref</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_shorthash\\siphash24\\ref\\shorthash_siphash_ref.h\">\r\n      <Filter>crypto_shorthash\\siphash24\\ref</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_scalarmult\\curve25519\\scalarmult_curve25519.h\">\r\n      <Filter>crypto_scalarmult\\curve25519</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_scalarmult\\curve25519\\sandy2x\\consts_namespace.h\">\r\n      <Filter>crypto_scalarmult\\curve25519\\sandy2x</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_scalarmult\\curve25519\\sandy2x\\ladder_namespace.h\">\r\n      <Filter>crypto_scalarmult\\curve25519\\sandy2x</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_scalarmult\\curve25519\\sandy2x\\fe.h\">\r\n      <Filter>crypto_scalarmult\\curve25519\\sandy2x</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_scalarmult\\curve25519\\sandy2x\\ladder.h\">\r\n      <Filter>crypto_scalarmult\\curve25519\\sandy2x</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_scalarmult\\curve25519\\sandy2x\\fe51.h\">\r\n      <Filter>crypto_scalarmult\\curve25519\\sandy2x</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_scalarmult\\curve25519\\sandy2x\\curve25519_sandy2x.h\">\r\n      <Filter>crypto_scalarmult\\curve25519\\sandy2x</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_scalarmult\\curve25519\\sandy2x\\fe51_namespace.h\">\r\n      <Filter>crypto_scalarmult\\curve25519\\sandy2x</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_scalarmult\\curve25519\\ref10\\x25519_ref10.h\">\r\n      <Filter>crypto_scalarmult\\curve25519\\ref10</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_onetimeauth\\poly1305\\onetimeauth_poly1305.h\">\r\n      <Filter>crypto_onetimeauth\\poly1305</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_onetimeauth\\poly1305\\donna\\poly1305_donna.h\">\r\n      <Filter>crypto_onetimeauth\\poly1305\\donna</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_onetimeauth\\poly1305\\donna\\poly1305_donna64.h\">\r\n      <Filter>crypto_onetimeauth\\poly1305\\donna</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_onetimeauth\\poly1305\\donna\\poly1305_donna32.h\">\r\n      <Filter>crypto_onetimeauth\\poly1305\\donna</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_onetimeauth\\poly1305\\sse2\\poly1305_sse2.h\">\r\n      <Filter>crypto_onetimeauth\\poly1305\\sse2</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_ipcrypt\\ipcrypt_soft.h\">\r\n      <Filter>crypto_ipcrypt</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_ipcrypt\\ipcrypt_aesni.h\">\r\n      <Filter>crypto_ipcrypt</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_ipcrypt\\ipcrypt_armcrypto.h\">\r\n      <Filter>crypto_ipcrypt</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_ipcrypt\\implementations.h\">\r\n      <Filter>crypto_ipcrypt</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\chacha20\\stream_chacha20.h\">\r\n      <Filter>crypto_stream\\chacha20</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\chacha20\\ref\\chacha20_ref.h\">\r\n      <Filter>crypto_stream\\chacha20\\ref</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\chacha20\\dolbeau\\u4.h\">\r\n      <Filter>crypto_stream\\chacha20\\dolbeau</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\chacha20\\dolbeau\\chacha20_dolbeau-ssse3.h\">\r\n      <Filter>crypto_stream\\chacha20\\dolbeau</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\chacha20\\dolbeau\\u0.h\">\r\n      <Filter>crypto_stream\\chacha20\\dolbeau</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\chacha20\\dolbeau\\u1.h\">\r\n      <Filter>crypto_stream\\chacha20\\dolbeau</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\chacha20\\dolbeau\\chacha20_dolbeau-avx2.h\">\r\n      <Filter>crypto_stream\\chacha20\\dolbeau</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\chacha20\\dolbeau\\u8.h\">\r\n      <Filter>crypto_stream\\chacha20\\dolbeau</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\salsa20\\stream_salsa20.h\">\r\n      <Filter>crypto_stream\\salsa20</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\salsa20\\ref\\salsa20_ref.h\">\r\n      <Filter>crypto_stream\\salsa20\\ref</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\salsa20\\xmm6int\\u4.h\">\r\n      <Filter>crypto_stream\\salsa20\\xmm6int</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\salsa20\\xmm6int\\u0.h\">\r\n      <Filter>crypto_stream\\salsa20\\xmm6int</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\salsa20\\xmm6int\\u1.h\">\r\n      <Filter>crypto_stream\\salsa20\\xmm6int</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\salsa20\\xmm6int\\salsa20_xmm6int-avx2.h\">\r\n      <Filter>crypto_stream\\salsa20\\xmm6int</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\salsa20\\xmm6int\\u8.h\">\r\n      <Filter>crypto_stream\\salsa20\\xmm6int</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\salsa20\\xmm6int\\salsa20_xmm6int-sse2.h\">\r\n      <Filter>crypto_stream\\salsa20\\xmm6int</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\salsa20\\xmm6\\salsa20_xmm6-asm_namespace.h\">\r\n      <Filter>crypto_stream\\salsa20\\xmm6</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\salsa20\\xmm6\\salsa20_xmm6.h\">\r\n      <Filter>crypto_stream\\salsa20\\xmm6</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_aead\\aegis128l\\aegis128l_armcrypto.h\">\r\n      <Filter>crypto_aead\\aegis128l</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_aead\\aegis128l\\aegis128l_aesni.h\">\r\n      <Filter>crypto_aead\\aegis128l</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_aead\\aegis128l\\aegis128l_soft.h\">\r\n      <Filter>crypto_aead\\aegis128l</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_aead\\aegis128l\\aegis128l_common.h\">\r\n      <Filter>crypto_aead\\aegis128l</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_aead\\aegis128l\\implementations.h\">\r\n      <Filter>crypto_aead\\aegis128l</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_aead\\aegis256\\aegis256_aesni.h\">\r\n      <Filter>crypto_aead\\aegis256</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_aead\\aegis256\\aegis256_common.h\">\r\n      <Filter>crypto_aead\\aegis256</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_aead\\aegis256\\implementations.h\">\r\n      <Filter>crypto_aead\\aegis256</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_aead\\aegis256\\aegis256_armcrypto.h\">\r\n      <Filter>crypto_aead\\aegis256</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_aead\\aegis256\\aegis256_soft.h\">\r\n      <Filter>crypto_aead\\aegis256</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_kem\\mlkem768\\ref\\kem_mlkem768_ref.h\">\r\n      <Filter>crypto_kem\\mlkem768\\ref</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_core\\keccak1600\\ref\\keccak1600_ref.h\">\r\n      <Filter>crypto_core\\keccak1600\\ref</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_core\\keccak1600\\armsha3\\keccak1600_armsha3.h\">\r\n      <Filter>crypto_core\\keccak1600\\armsha3</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_core\\ed25519\\core_h2c.h\">\r\n      <Filter>crypto_core\\ed25519</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_core\\ed25519\\ref10\\fe_25_5\\constants.h\">\r\n      <Filter>crypto_core\\ed25519\\ref10\\fe_25_5</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_core\\ed25519\\ref10\\fe_25_5\\fe.h\">\r\n      <Filter>crypto_core\\ed25519\\ref10\\fe_25_5</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_core\\ed25519\\ref10\\fe_25_5\\base2.h\">\r\n      <Filter>crypto_core\\ed25519\\ref10\\fe_25_5</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_core\\ed25519\\ref10\\fe_25_5\\base.h\">\r\n      <Filter>crypto_core\\ed25519\\ref10\\fe_25_5</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_core\\ed25519\\ref10\\fe_51\\constants.h\">\r\n      <Filter>crypto_core\\ed25519\\ref10\\fe_51</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_core\\ed25519\\ref10\\fe_51\\fe.h\">\r\n      <Filter>crypto_core\\ed25519\\ref10\\fe_51</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_core\\ed25519\\ref10\\fe_51\\base2.h\">\r\n      <Filter>crypto_core\\ed25519\\ref10\\fe_51</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_core\\ed25519\\ref10\\fe_51\\base.h\">\r\n      <Filter>crypto_core\\ed25519\\ref10\\fe_51</Filter>\r\n    </ClInclude>\r\n  </ItemGroup>\r\n  <ItemGroup>\r\n    <Filter Include=\"crypto_aead\">\r\n      <UniqueIdentifier>{a6837e41-3751-38c9-bb90-dd59d5f4af7b}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_aead\\aegis128l\">\r\n      <UniqueIdentifier>{9e2a023d-fef1-3231-90ba-9a0ffc9bc9ab}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_aead\\aegis256\">\r\n      <UniqueIdentifier>{6897a4cc-0091-3970-b712-c0ac75c16b67}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_aead\\aes256gcm\">\r\n      <UniqueIdentifier>{3e53394c-b59c-30cc-ae69-a4f46f9edfa3}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_aead\\aes256gcm\\aesni\">\r\n      <UniqueIdentifier>{7eb51140-a50f-3f50-b379-83677a82496c}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_aead\\aes256gcm\\armcrypto\">\r\n      <UniqueIdentifier>{507bb9aa-b65c-3034-946b-bcd375b7deaa}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_aead\\chacha20poly1305\">\r\n      <UniqueIdentifier>{1f4d6dd1-517f-3eeb-b974-2304ada5e67a}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_aead\\xchacha20poly1305\">\r\n      <UniqueIdentifier>{3122f223-e6c2-3ab1-ad85-ca289b47419e}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_auth\">\r\n      <UniqueIdentifier>{0a3af0f3-56f7-3551-a64e-6284feccc423}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_auth\\hmacsha256\">\r\n      <UniqueIdentifier>{64e89b4f-eec9-38c9-90f2-4881bf5e84c0}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_auth\\hmacsha512\">\r\n      <UniqueIdentifier>{0c0b4001-ae11-3d0f-8e73-75ac9b6e1ae8}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_auth\\hmacsha512256\">\r\n      <UniqueIdentifier>{f5065d74-beda-3e1e-819a-f606279c7fe9}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_box\">\r\n      <UniqueIdentifier>{f7aedb93-94a6-3ede-9374-ff41daca4841}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_box\\curve25519xchacha20poly1305\">\r\n      <UniqueIdentifier>{0e7473c9-9c69-36b3-ab6c-d953647a15a6}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_box\\curve25519xsalsa20poly1305\">\r\n      <UniqueIdentifier>{d75db64c-eb08-3f10-9b99-1b6e6827f348}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_core\">\r\n      <UniqueIdentifier>{73194d5d-588a-342f-bee6-f28b4486f20b}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_core\\ed25519\">\r\n      <UniqueIdentifier>{7c5e6f81-e4ce-3018-a776-a1f125072d73}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_core\\ed25519\\ref10\">\r\n      <UniqueIdentifier>{76990c08-d692-367f-b286-c728a8cad6bf}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_core\\ed25519\\ref10\\fe_25_5\">\r\n      <UniqueIdentifier>{bf04f786-7862-3bde-aeba-ed82ee59ca22}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_core\\ed25519\\ref10\\fe_51\">\r\n      <UniqueIdentifier>{98b6126a-3725-3707-a4cc-ff3af657cba0}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_core\\hchacha20\">\r\n      <UniqueIdentifier>{8b704d11-af1f-30c0-9981-479da6d88dc3}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_core\\hsalsa20\">\r\n      <UniqueIdentifier>{342e684b-4e18-311c-953c-8391a544a04f}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_core\\hsalsa20\\ref2\">\r\n      <UniqueIdentifier>{c6b8e28c-7c54-3af7-bee3-2948ba7b2082}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_core\\keccak1600\">\r\n      <UniqueIdentifier>{85c1722f-2d65-30a8-aefb-ebf1cbfe185e}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_core\\keccak1600\\armsha3\">\r\n      <UniqueIdentifier>{855cc78f-1fe0-3ad2-a2ac-5e2b0c01c235}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_core\\keccak1600\\ref\">\r\n      <UniqueIdentifier>{9462f285-fee0-3779-983b-2811dc621f7d}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_core\\salsa\">\r\n      <UniqueIdentifier>{4e9a1d6b-ee07-3bbc-ad78-6d0ba0e6d9d3}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_core\\salsa\\ref\">\r\n      <UniqueIdentifier>{eb259fd9-56f0-32db-a903-6bc1549a7326}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_core\\softaes\">\r\n      <UniqueIdentifier>{05997596-e3d7-3bf1-ad4d-39e4c5fd56f6}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_generichash\">\r\n      <UniqueIdentifier>{e53b6258-fcdd-34c8-96c5-44510a34a390}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_generichash\\blake2b\">\r\n      <UniqueIdentifier>{8bd3b558-2d08-3c3a-81ca-22677dde943b}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_generichash\\blake2b\\ref\">\r\n      <UniqueIdentifier>{16a8dd41-b0ab-39a7-80c8-3052d8b63811}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_hash\">\r\n      <UniqueIdentifier>{d7ec3690-bae7-3653-8c53-66a3142cfcfa}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_hash\\sha256\">\r\n      <UniqueIdentifier>{722ef422-8c03-3008-ba2a-3a7e91c6647c}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_hash\\sha256\\cp\">\r\n      <UniqueIdentifier>{8c7d8b62-7b4f-3eb9-85b7-18e8d925be14}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_hash\\sha3\">\r\n      <UniqueIdentifier>{6df763e3-9707-3014-8cfe-2f9a8a83a872}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_hash\\sha512\">\r\n      <UniqueIdentifier>{8fb6a906-dbd6-3746-9b0f-f49e7028daec}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_hash\\sha512\\cp\">\r\n      <UniqueIdentifier>{f2d6a22b-dd67-3561-90a4-88696169cb7b}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_ipcrypt\">\r\n      <UniqueIdentifier>{5c3b1fe7-203f-36fd-bca5-8d0c4b466d80}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_kdf\">\r\n      <UniqueIdentifier>{aaf59186-1c0d-33cf-a34d-93e14bb87226}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_kdf\\blake2b\">\r\n      <UniqueIdentifier>{3d42d2a2-b192-33dd-9162-508916414707}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_kdf\\hkdf\">\r\n      <UniqueIdentifier>{baf7d894-9298-391d-8dc2-e4c3010f5ddc}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_kem\">\r\n      <UniqueIdentifier>{b9009d4a-dd97-341d-aafb-eeeb77191a49}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_kem\\mlkem768\">\r\n      <UniqueIdentifier>{ab0c8a55-3e1f-307e-82be-8291a3b43735}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_kem\\mlkem768\\ref\">\r\n      <UniqueIdentifier>{70a10765-f8fb-3898-8514-966e48719bc4}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_kem\\xwing\">\r\n      <UniqueIdentifier>{2ef7c851-6598-3be5-88be-9ac5ec867cb0}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_kx\">\r\n      <UniqueIdentifier>{898b6bd5-1360-3a34-adcd-0fade7561685}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_onetimeauth\">\r\n      <UniqueIdentifier>{323c0a15-3c1d-39b2-9ec1-299deb299497}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_onetimeauth\\poly1305\">\r\n      <UniqueIdentifier>{52c2080d-37c0-34c2-864a-c201c728e5d8}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_onetimeauth\\poly1305\\donna\">\r\n      <UniqueIdentifier>{ff618a41-caeb-3a18-ad36-d34b049a8f50}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_onetimeauth\\poly1305\\sse2\">\r\n      <UniqueIdentifier>{ffc3712d-dfe0-3b51-8257-f5ffc9c9cea3}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_pwhash\">\r\n      <UniqueIdentifier>{f54b65b6-71cf-3ab3-9c8c-f89c81846836}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_pwhash\\argon2\">\r\n      <UniqueIdentifier>{1bd97a78-befa-3805-8e9c-80d7c1aff37b}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_pwhash\\scryptsalsa208sha256\">\r\n      <UniqueIdentifier>{e785f104-1212-37bf-8511-cc518b9ace66}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_pwhash\\scryptsalsa208sha256\\nosse\">\r\n      <UniqueIdentifier>{447b993f-59fb-3efd-8c59-a1712c97dfe8}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_pwhash\\scryptsalsa208sha256\\sse\">\r\n      <UniqueIdentifier>{cdb8d233-06b0-3872-a62b-c1ccf4cb4314}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_scalarmult\">\r\n      <UniqueIdentifier>{402a1c5a-d499-333a-a2fa-acd0e6a3c2b2}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_scalarmult\\curve25519\">\r\n      <UniqueIdentifier>{77f5a2e9-2ef1-3a72-b63c-88e8e4b92678}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_scalarmult\\curve25519\\ref10\">\r\n      <UniqueIdentifier>{6c9c7c30-0808-3fad-8a88-944d7645e5d5}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_scalarmult\\curve25519\\sandy2x\">\r\n      <UniqueIdentifier>{5d2fb1a2-f063-32db-a81a-41f79e36fd23}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_scalarmult\\ed25519\">\r\n      <UniqueIdentifier>{7bec6074-fbc7-330b-9e18-7dc3e868569a}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_scalarmult\\ed25519\\ref10\">\r\n      <UniqueIdentifier>{834d4827-81e4-3de3-baa1-a216763f11d6}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_scalarmult\\ristretto255\">\r\n      <UniqueIdentifier>{52bf28eb-7ffd-399a-be35-0df3e8e99c15}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_scalarmult\\ristretto255\\ref10\">\r\n      <UniqueIdentifier>{39cc576f-4b54-3d71-b14c-27445bc4b138}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_secretbox\">\r\n      <UniqueIdentifier>{b9b02bee-5c1f-36d2-b97d-983f865a4cc6}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_secretbox\\xchacha20poly1305\">\r\n      <UniqueIdentifier>{41f1f35b-4639-3424-be85-7dfba02f3c5e}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_secretbox\\xsalsa20poly1305\">\r\n      <UniqueIdentifier>{8bf11d29-2f5a-3f10-8ae6-82229d19c5b0}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_secretstream\">\r\n      <UniqueIdentifier>{62f7ae38-4ce6-3976-acc3-47c462db4fbe}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_secretstream\\xchacha20poly1305\">\r\n      <UniqueIdentifier>{e07a28cd-775a-3798-bfdb-97842d3614d6}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_shorthash\">\r\n      <UniqueIdentifier>{bb073c16-adc8-3cff-80b9-99cf5a28de6c}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_shorthash\\siphash24\">\r\n      <UniqueIdentifier>{63de0ec8-ecde-35e3-8b97-6e9e4da342ee}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_shorthash\\siphash24\\ref\">\r\n      <UniqueIdentifier>{29925210-53eb-342c-8527-7ebc173e668f}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_sign\">\r\n      <UniqueIdentifier>{b2f989b6-87a6-3388-a35c-2d0d59cb4236}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_sign\\ed25519\">\r\n      <UniqueIdentifier>{bc6466a1-57b0-3a35-9973-ad488a4bef8c}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_sign\\ed25519\\ref10\">\r\n      <UniqueIdentifier>{5599d9ab-b5b2-3310-b541-ae0fb70eecf1}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_stream\">\r\n      <UniqueIdentifier>{eaedd08a-46f8-3d12-9e8d-bb3ee3ead5f6}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_stream\\chacha20\">\r\n      <UniqueIdentifier>{806b6ff3-578b-308a-a359-0f5ed8472ecc}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_stream\\chacha20\\dolbeau\">\r\n      <UniqueIdentifier>{5a1d852e-67bb-3dc1-9ec5-99ef74b7faca}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_stream\\chacha20\\ref\">\r\n      <UniqueIdentifier>{33e45d9c-e12a-3e76-9ef2-4f5510244a5b}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_stream\\salsa20\">\r\n      <UniqueIdentifier>{048ba2a8-b22b-346c-9886-668b63c88c68}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_stream\\salsa20\\ref\">\r\n      <UniqueIdentifier>{f08a312f-f8a3-350b-87ab-1f79d33e513f}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_stream\\salsa20\\xmm6\">\r\n      <UniqueIdentifier>{c403f690-cd22-3ed4-9cc7-3f46e73081fd}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_stream\\salsa20\\xmm6int\">\r\n      <UniqueIdentifier>{c34d03f5-cf47-39fe-a5ad-5eb917006203}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_stream\\salsa2012\">\r\n      <UniqueIdentifier>{4da0c5ca-33d1-34e0-9689-12e69ae2dbd6}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_stream\\salsa2012\\ref\">\r\n      <UniqueIdentifier>{dd6b294c-5871-386c-92ec-aa46fcc411d4}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_stream\\salsa208\">\r\n      <UniqueIdentifier>{07aca978-0547-329a-b70b-29aa579cacc5}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_stream\\salsa208\\ref\">\r\n      <UniqueIdentifier>{f171fa05-35c4-32a0-b035-b5d6680ab714}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_stream\\xchacha20\">\r\n      <UniqueIdentifier>{ede2279c-1ba7-3d62-8345-733c6c1965e7}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_stream\\xsalsa20\">\r\n      <UniqueIdentifier>{9c15151b-10dc-3dfe-b97b-a7d8c6b58920}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_verify\">\r\n      <UniqueIdentifier>{49fb9272-ffe2-3993-b562-b19d5f2c9b40}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_xof\">\r\n      <UniqueIdentifier>{9d0b6e6c-57a5-33bb-a67c-c1ce5a5e0684}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_xof\\shake128\">\r\n      <UniqueIdentifier>{3311f765-9a5b-3614-a24f-9b97a56240aa}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_xof\\shake128\\ref\">\r\n      <UniqueIdentifier>{0b3ce98f-5f0a-3836-a95f-5ebd938a0e15}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_xof\\shake256\">\r\n      <UniqueIdentifier>{d4f668ef-b456-369e-b8bf-b1b6d4e90a6d}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_xof\\shake256\\ref\">\r\n      <UniqueIdentifier>{c5174d81-c82a-3411-98f7-829a427faddc}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_xof\\turboshake128\">\r\n      <UniqueIdentifier>{6ccaee32-fd4e-3b58-be6b-a2866132d22d}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_xof\\turboshake128\\ref\">\r\n      <UniqueIdentifier>{00e8736b-cf8d-3a60-bfbe-f0c535d45696}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_xof\\turboshake256\">\r\n      <UniqueIdentifier>{8f7b92bd-0b08-3b14-8693-2df66b256d8b}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_xof\\turboshake256\\ref\">\r\n      <UniqueIdentifier>{bcea4d5e-5593-3465-ac95-2ecd34340ce3}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"include\">\r\n      <UniqueIdentifier>{96da72eb-3aa0-3850-83eb-32788f91e5bd}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"include\\sodium\">\r\n      <UniqueIdentifier>{56bb40fc-d381-3a9e-925b-681774c48dde}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"include\\sodium\\private\">\r\n      <UniqueIdentifier>{fde88485-0fe6-3b22-9480-1d2b49fade53}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"randombytes\">\r\n      <UniqueIdentifier>{ef090484-4db4-3dc2-aca7-c59bab1db23b}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"randombytes\\internal\">\r\n      <UniqueIdentifier>{14c126fd-bb91-37ea-b807-b60c386be601}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"randombytes\\sysrandom\">\r\n      <UniqueIdentifier>{ac56c38f-7e17-3b79-bf47-58e9476b3b89}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"sodium\">\r\n      <UniqueIdentifier>{5dfc520b-f690-3d5f-a86a-8b667f2e7490}</UniqueIdentifier>\r\n    </Filter>\r\n  </ItemGroup>\r\n</Project>\r\n"
  },
  {
    "path": "builds/msvc/vs2015/libsodium/libsodium.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<ProjectSchemaDefinitions xmlns=\"clr-namespace:Microsoft.Build.Framework.XamlTypes;assembly=Microsoft.Build.Framework\">\n  <Rule Name=\"libsodium-uiextension\" PageTemplate=\"tool\" DisplayName=\"Sodium Options\" SwitchPrefix=\"/\" Order=\"1\">\n    <Rule.Categories>\n      <Category Name=\"amd64asm\" DisplayName=\"amd64asm\" />\n    </Rule.Categories>\n    <Rule.DataSource>\n      <DataSource Persistence=\"ProjectFile\" ItemType=\"\" />\n    </Rule.DataSource>\n    <EnumProperty Name=\"Option-amd64asm\" DisplayName=\"Enable AMD64 Assembly\" Description=\"Enable the AMD64 Assembly build option\" Category=\"amd64asm\">\n      <EnumValue Name=\"\" DisplayName=\"No\" />\n      <EnumValue Name=\"true\" DisplayName=\"Yes\" />\n    </EnumProperty>\n  </Rule>\n</ProjectSchemaDefinitions>"
  },
  {
    "path": "builds/msvc/vs2015/libsodium.import.props",
    "content": "﻿<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<Project DefaultTargets=\"Build\" xmlns=\"http://schemas.microsoft.com/developer/msbuild/2003\">\n\n  <PropertyGroup Label=\"Globals\">\n    <_PropertySheetDisplayName>Libsodium Import Settings</_PropertySheetDisplayName>\n  </PropertyGroup>\n\n  <!-- User Interface -->\n\n  <ItemGroup Label=\"BuildOptionsExtension\">\n    <PropertyPageSchema Include=\"$(MSBuildThisFileDirectory)libsodium.import.xml\" />\n  </ItemGroup>\n\n  <!-- Linkage -->\n\n  <ItemDefinitionGroup>\n    <ClCompile>\n      <AdditionalIncludeDirectories>$(ProjectDir)..\\..\\..\\..\\..\\libsodium\\src\\libsodium\\include;$(ProjectDir)..\\..\\..\\..\\..\\libsodium\\src\\libsodium\\include\\sodium\\;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\n      <PreprocessorDefinitions Condition=\"'$(Linkage-libsodium)' == 'static' Or '$(Linkage-libsodium)' == 'ltcg'\">SODIUM_STATIC;%(PreprocessorDefinitions)</PreprocessorDefinitions>\n    </ClCompile>\n    <Link>\n      <AdditionalDependencies Condition=\"'$(Linkage-libsodium)' != ''\">advapi32.lib;libsodium.lib;%(AdditionalDependencies)</AdditionalDependencies>\n      <AdditionalLibraryDirectories Condition=\"$(Configuration.IndexOf('Debug')) != -1\">$(ProjectDir)..\\..\\..\\..\\..\\libsodium\\bin\\$(PlatformName)\\Debug\\$(PlatformToolset)\\$(Linkage-libsodium)\\;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>\n      <AdditionalLibraryDirectories Condition=\"$(Configuration.IndexOf('Release')) != -1\">$(ProjectDir)..\\..\\..\\..\\..\\libsodium\\bin\\$(PlatformName)\\Release\\$(PlatformToolset)\\$(Linkage-libsodium)\\;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>\n    </Link>\n  </ItemDefinitionGroup>\n\n  <!-- Copy -->\n\n  <Target Name=\"Linkage-libsodium-dynamic\" AfterTargets=\"AfterBuild\" Condition=\"'$(Linkage-libsodium)' == 'dynamic'\">\n    <Copy Condition=\"$(Configuration.IndexOf('Debug')) != -1\"\n          SourceFiles=\"$(ProjectDir)..\\..\\..\\..\\..\\libsodium\\bin\\$(PlatformName)\\Debug\\$(PlatformToolset)\\dynamic\\libsodium.dll\"\n          DestinationFiles=\"$(TargetDir)libsodium.dll\"\n          SkipUnchangedFiles=\"true\" />\n    <Copy Condition=\"$(Configuration.IndexOf('Debug')) != -1\"\n          SourceFiles=\"$(ProjectDir)..\\..\\..\\..\\..\\libsodium\\bin\\$(PlatformName)\\Debug\\$(PlatformToolset)\\dynamic\\libsodium.pdb\"\n          DestinationFiles=\"$(TargetDir)libsodium.pdb\"\n          SkipUnchangedFiles=\"true\" />\n    <Copy Condition=\"$(Configuration.IndexOf('Release')) != -1\"\n          SourceFiles=\"$(ProjectDir)..\\..\\..\\..\\..\\libsodium\\bin\\$(PlatformName)\\Release\\$(PlatformToolset)\\dynamic\\libsodium.dll\"\n          DestinationFiles=\"$(TargetDir)libsodium.dll\"\n          SkipUnchangedFiles=\"true\" />\n  </Target>\n\n  <!-- Messages -->\n\n  <Target Name=\"libsodium-info\" BeforeTargets=\"AfterBuild\" Condition=\"'$(Linkage-libsodium)' == 'dynamic'\">\n    <Message Text=\"Copying libsodium.dll -&gt; $(TargetDir)libsodium.dll\" Importance=\"high\"/>\n    <Message Text=\"Copying libsodium.pdb -&gt; $(TargetDir)libsodium.pdb\" Importance=\"high\" Condition=\"$(Configuration.IndexOf('Debug')) != -1\" />\n  </Target>\n\n</Project>"
  },
  {
    "path": "builds/msvc/vs2015/libsodium.import.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<ProjectSchemaDefinitions xmlns=\"clr-namespace:Microsoft.Build.Framework.XamlTypes;assembly=Microsoft.Build.Framework\">\n  <Rule Name=\"libsodium-linkage-uiextension\" PageTemplate=\"tool\" DisplayName=\"Local Dependencies\" SwitchPrefix=\"/\" Order=\"1\">\n    <Rule.Categories>\n      <Category Name=\"libsodium\" DisplayName=\"libsodium\" />\n    </Rule.Categories>\n    <Rule.DataSource>\n      <DataSource Persistence=\"ProjectFile\" ItemType=\"\" />\n    </Rule.DataSource>\n    <EnumProperty Name=\"Linkage-libsodium\" DisplayName=\"Linkage\" Description=\"How libsodium will be linked into the output of this project\" Category=\"libsodium\">\n      <EnumValue Name=\"\" DisplayName=\"Not linked\" />\n      <EnumValue Name=\"dynamic\" DisplayName=\"Dynamic (DLL)\" />\n      <EnumValue Name=\"static\" DisplayName=\"Static (LIB)\" />\n      <EnumValue Name=\"ltcg\" DisplayName=\"Static using link time compile generation (LTCG)\" />\n    </EnumProperty>\n  </Rule>\n</ProjectSchemaDefinitions>"
  },
  {
    "path": "builds/msvc/vs2015/libsodium.sln",
    "content": "﻿\r\nMicrosoft Visual Studio Solution File, Format Version 12.00\r\n# Visual Studio 14\r\nVisualStudioVersion = 14.0.23107.0\r\nMinimumVisualStudioVersion = 10.0.40219.1\r\nProject(\"{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}\") = \"libsodium\", \"libsodium\\libsodium.vcxproj\", \"{A185B162-6CB6-4502-B03F-B56F7699A8D9}\"\r\nEndProject\r\nGlobal\r\n\tGlobalSection(SolutionConfigurationPlatforms) = preSolution\r\n\t\tDynDebug|Win32 = DynDebug|Win32\r\n\t\tDynDebug|x64 = DynDebug|x64\r\n\t\tDynRelease|Win32 = DynRelease|Win32\r\n\t\tDynRelease|x64 = DynRelease|x64\r\n\t\tLtcgDebug|Win32 = LtcgDebug|Win32\r\n\t\tLtcgDebug|x64 = LtcgDebug|x64\r\n\t\tLtcgRelease|Win32 = LtcgRelease|Win32\r\n\t\tLtcgRelease|x64 = LtcgRelease|x64\r\n\t\tStaticDebug|Win32 = StaticDebug|Win32\r\n\t\tStaticDebug|x64 = StaticDebug|x64\r\n\t\tStaticRelease|Win32 = StaticRelease|Win32\r\n\t\tStaticRelease|x64 = StaticRelease|x64\r\n\tEndGlobalSection\r\n\tGlobalSection(ProjectConfigurationPlatforms) = postSolution\r\n\t\t{A185B162-6CB6-4502-B03F-B56F7699A8D9}.DynDebug|Win32.ActiveCfg = DebugDLL|Win32\r\n\t\t{A185B162-6CB6-4502-B03F-B56F7699A8D9}.DynDebug|Win32.Build.0 = DebugDLL|Win32\r\n\t\t{A185B162-6CB6-4502-B03F-B56F7699A8D9}.DynDebug|x64.ActiveCfg = DebugDLL|x64\r\n\t\t{A185B162-6CB6-4502-B03F-B56F7699A8D9}.DynDebug|x64.Build.0 = DebugDLL|x64\r\n\t\t{A185B162-6CB6-4502-B03F-B56F7699A8D9}.DynRelease|Win32.ActiveCfg = ReleaseDLL|Win32\r\n\t\t{A185B162-6CB6-4502-B03F-B56F7699A8D9}.DynRelease|Win32.Build.0 = ReleaseDLL|Win32\r\n\t\t{A185B162-6CB6-4502-B03F-B56F7699A8D9}.DynRelease|x64.ActiveCfg = ReleaseDLL|x64\r\n\t\t{A185B162-6CB6-4502-B03F-B56F7699A8D9}.DynRelease|x64.Build.0 = ReleaseDLL|x64\r\n\t\t{A185B162-6CB6-4502-B03F-B56F7699A8D9}.LtcgDebug|Win32.ActiveCfg = DebugLTCG|Win32\r\n\t\t{A185B162-6CB6-4502-B03F-B56F7699A8D9}.LtcgDebug|Win32.Build.0 = DebugLTCG|Win32\r\n\t\t{A185B162-6CB6-4502-B03F-B56F7699A8D9}.LtcgDebug|x64.ActiveCfg = DebugLTCG|x64\r\n\t\t{A185B162-6CB6-4502-B03F-B56F7699A8D9}.LtcgDebug|x64.Build.0 = DebugLTCG|x64\r\n\t\t{A185B162-6CB6-4502-B03F-B56F7699A8D9}.LtcgRelease|Win32.ActiveCfg = ReleaseLTCG|Win32\r\n\t\t{A185B162-6CB6-4502-B03F-B56F7699A8D9}.LtcgRelease|Win32.Build.0 = ReleaseLTCG|Win32\r\n\t\t{A185B162-6CB6-4502-B03F-B56F7699A8D9}.LtcgRelease|x64.ActiveCfg = ReleaseLTCG|x64\r\n\t\t{A185B162-6CB6-4502-B03F-B56F7699A8D9}.LtcgRelease|x64.Build.0 = ReleaseLTCG|x64\r\n\t\t{A185B162-6CB6-4502-B03F-B56F7699A8D9}.StaticDebug|Win32.ActiveCfg = DebugLIB|Win32\r\n\t\t{A185B162-6CB6-4502-B03F-B56F7699A8D9}.StaticDebug|Win32.Build.0 = DebugLIB|Win32\r\n\t\t{A185B162-6CB6-4502-B03F-B56F7699A8D9}.StaticDebug|x64.ActiveCfg = DebugLIB|x64\r\n\t\t{A185B162-6CB6-4502-B03F-B56F7699A8D9}.StaticDebug|x64.Build.0 = DebugLIB|x64\r\n\t\t{A185B162-6CB6-4502-B03F-B56F7699A8D9}.StaticRelease|Win32.ActiveCfg = ReleaseLIB|Win32\r\n\t\t{A185B162-6CB6-4502-B03F-B56F7699A8D9}.StaticRelease|Win32.Build.0 = ReleaseLIB|Win32\r\n\t\t{A185B162-6CB6-4502-B03F-B56F7699A8D9}.StaticRelease|x64.ActiveCfg = ReleaseLIB|x64\r\n\t\t{A185B162-6CB6-4502-B03F-B56F7699A8D9}.StaticRelease|x64.Build.0 = ReleaseLIB|x64\r\n\tEndGlobalSection\r\n\tGlobalSection(SolutionProperties) = preSolution\r\n\t\tHideSolutionNode = FALSE\r\n\tEndGlobalSection\r\nEndGlobal\r\n"
  },
  {
    "path": "builds/msvc/vs2017/libsodium/libsodium.props",
    "content": "﻿<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<Project DefaultTargets=\"Build\" xmlns=\"http://schemas.microsoft.com/developer/msbuild/2003\">\n\n  <PropertyGroup Label=\"Globals\">\n    <_PropertySheetDisplayName>Libsodium Common Settings</_PropertySheetDisplayName>\n    <CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>\n    <RunCodeAnalysis>false</RunCodeAnalysis>\n  </PropertyGroup>\n\n  <!-- User Interface -->\n\n  <ItemGroup Label=\"BuildOptionsExtension\">\n    <PropertyPageSchema Include=\"$(MSBuildThisFileDirectory)$(ProjectName).xml\" />\n  </ItemGroup>\n\n  <!-- Configuration -->\n\n  <ItemDefinitionGroup>\n    <PreBuildEvent>\n      <Command>copy \"$(BuildRoot)version.h\" \"$(RepoRoot)src\\libsodium\\include\\sodium\\\"</Command>\n    </PreBuildEvent>\n    <ClCompile>\n      <AdditionalIncludeDirectories>$(RepoRoot)src\\libsodium\\include;$(RepoRoot)src\\libsodium\\include\\sodium\\;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\n      <DisableSpecificWarnings>4146;4244;%(DisableSpecificWarnings)</DisableSpecificWarnings>\n      <EnablePREfast>false</EnablePREfast>\n      <PreprocessorDefinitions>inline=__inline;NATIVE_LITTLE_ENDIAN;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>\n      <PreprocessorDefinitions Condition=\"'$(ConfigurationType)' == 'StaticLibrary'\">SODIUM_STATIC;%(PreprocessorDefinitions)</PreprocessorDefinitions>\n      <PreprocessorDefinitions Condition=\"'$(ConfigurationType)' == 'DynamicLibrary'\">SODIUM_DLL_EXPORT;%(PreprocessorDefinitions)</PreprocessorDefinitions>\n      <PreprocessorDefinitions Condition=\"'$(Option-amd64asm)' == 'true'\">HAVE_AMD64_ASM;%(PreprocessorDefinitions)</PreprocessorDefinitions>\n    </ClCompile>\n  </ItemDefinitionGroup>\n\n  <!-- Messages -->\n\n  <Target Name=\"CustomInfo\" BeforeTargets=\"PrepareForBuild\">\n    <Message Text=\"Will copy $(BuildRoot)version.h -&gt; $(RepoRoot)src\\libsodium\\include\\sodium\\version.h\" Importance=\"high\"/>\n  </Target>\n\n  <Target Name=\"OptionInfo\" BeforeTargets=\"PrepareForBuild\">\n    <Message Text=\"Option-amd64asm   : $(Option-amd64asm)\" Importance=\"high\"/>\n  </Target>\n\n  <ItemDefinitionGroup>\n    <Link>\n      <AdditionalDependencies>advapi32.lib</AdditionalDependencies>\n    </Link>\n  </ItemDefinitionGroup>\n</Project>\n"
  },
  {
    "path": "builds/msvc/vs2017/libsodium/libsodium.vcxproj",
    "content": "﻿<?xml version=\"1.0\" encoding=\"utf-8\"?>\r\n<Project DefaultTargets=\"Build\" ToolsVersion=\"4.0\"\r\n  xmlns=\"http://schemas.microsoft.com/developer/msbuild/2003\">\r\n  <PropertyGroup Label=\"Globals\">\r\n    <ProjectGuid>{A185B162-6CB6-4502-B03F-B56F7699A8D9}</ProjectGuid>\r\n    <ProjectName>libsodium</ProjectName>\r\n    <PlatformToolset>v141</PlatformToolset>\r\n  </PropertyGroup>\r\n  <ItemGroup Label=\"ProjectConfigurations\">\r\n    <ProjectConfiguration Include=\"DebugDLL|Win32\">\r\n      <Configuration>DebugDLL</Configuration>\r\n      <Platform>Win32</Platform>\r\n    </ProjectConfiguration>\r\n    <ProjectConfiguration Include=\"DebugDLL|x64\">\r\n      <Configuration>DebugDLL</Configuration>\r\n      <Platform>x64</Platform>\r\n    </ProjectConfiguration>\r\n    <ProjectConfiguration Include=\"ReleaseDLL|Win32\">\r\n      <Configuration>ReleaseDLL</Configuration>\r\n      <Platform>Win32</Platform>\r\n    </ProjectConfiguration>\r\n    <ProjectConfiguration Include=\"ReleaseDLL|x64\">\r\n      <Configuration>ReleaseDLL</Configuration>\r\n      <Platform>x64</Platform>\r\n    </ProjectConfiguration>\r\n    <ProjectConfiguration Include=\"DebugLIB|Win32\">\r\n      <Configuration>DebugLIB</Configuration>\r\n      <Platform>Win32</Platform>\r\n    </ProjectConfiguration>\r\n    <ProjectConfiguration Include=\"DebugLIB|x64\">\r\n      <Configuration>DebugLIB</Configuration>\r\n      <Platform>x64</Platform>\r\n    </ProjectConfiguration>\r\n    <ProjectConfiguration Include=\"ReleaseLIB|Win32\">\r\n      <Configuration>ReleaseLIB</Configuration>\r\n      <Platform>Win32</Platform>\r\n    </ProjectConfiguration>\r\n    <ProjectConfiguration Include=\"ReleaseLIB|x64\">\r\n      <Configuration>ReleaseLIB</Configuration>\r\n      <Platform>x64</Platform>\r\n    </ProjectConfiguration>\r\n    <ProjectConfiguration Include=\"DebugLTCG|Win32\">\r\n      <Configuration>DebugLTCG</Configuration>\r\n      <Platform>Win32</Platform>\r\n    </ProjectConfiguration>\r\n    <ProjectConfiguration Include=\"DebugLTCG|x64\">\r\n      <Configuration>DebugLTCG</Configuration>\r\n      <Platform>x64</Platform>\r\n    </ProjectConfiguration>\r\n    <ProjectConfiguration Include=\"ReleaseLTCG|Win32\">\r\n      <Configuration>ReleaseLTCG</Configuration>\r\n      <Platform>Win32</Platform>\r\n    </ProjectConfiguration>\r\n    <ProjectConfiguration Include=\"ReleaseLTCG|x64\">\r\n      <Configuration>ReleaseLTCG</Configuration>\r\n      <Platform>x64</Platform>\r\n    </ProjectConfiguration>\r\n  </ItemGroup>\r\n  <PropertyGroup Label=\"Configuration\">\r\n    <ConfigurationType Condition=\"$(Configuration.IndexOf('DLL')) == -1\">StaticLibrary</ConfigurationType>\r\n    <ConfigurationType Condition=\"$(Configuration.IndexOf('DLL')) != -1\">DynamicLibrary</ConfigurationType>\r\n  </PropertyGroup>\r\n  <Import Project=\"$(VCTargetsPath)\\Microsoft.Cpp.Default.props\" />\r\n  <Import Project=\"$(VCTargetsPath)\\Microsoft.Cpp.props\" />\r\n  <ImportGroup Label=\"PropertySheets\">\r\n    <Import Project=\"$(ProjectDir)..\\..\\properties\\$(Configuration).props\" />\r\n    <Import Project=\"$(ProjectDir)..\\..\\properties\\Output.props\" />\r\n    <Import Project=\"$(ProjectDir)$(ProjectName).props\" />\r\n  </ImportGroup>\r\n  <ItemGroup>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_generichash\\crypto_generichash.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_generichash\\blake2b\\generichash_blake2.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_generichash\\blake2b\\ref\\blake2b-compress-ref.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_generichash\\blake2b\\ref\\blake2b-compress-ssse3.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_generichash\\blake2b\\ref\\blake2b-compress-avx2.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_generichash\\blake2b\\ref\\blake2b-compress-sse41.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_generichash\\blake2b\\ref\\generichash_blake2b.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_generichash\\blake2b\\ref\\blake2b-ref.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_kx\\crypto_kx.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_sign\\crypto_sign.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_sign\\ed25519\\sign_ed25519.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_sign\\ed25519\\ref10\\sign.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_sign\\ed25519\\ref10\\keypair.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_sign\\ed25519\\ref10\\open.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_secretbox\\crypto_secretbox.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_secretbox\\crypto_secretbox_easy.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_secretbox\\xsalsa20poly1305\\secretbox_xsalsa20poly1305.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_secretbox\\xchacha20poly1305\\secretbox_xchacha20poly1305.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\crypto_pwhash.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\blake2b-long.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\argon2-fill-block-wasm32.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\argon2-core.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\argon2-fill-block-avx512f.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\argon2-fill-block-ref.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\argon2-fill-block-ssse3.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\pwhash_argon2i.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\argon2-fill-block-neon.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\pwhash_argon2id.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\argon2.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\argon2-fill-block-avx2.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\argon2-encoding.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\scryptsalsa208sha256\\scrypt_platform.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\scryptsalsa208sha256\\crypto_scrypt-common.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\scryptsalsa208sha256\\pwhash_scryptsalsa208sha256.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\scryptsalsa208sha256\\pbkdf2-sha256.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\scryptsalsa208sha256\\nosse\\pwhash_scryptsalsa208sha256_nosse.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\scryptsalsa208sha256\\sse\\pwhash_scryptsalsa208sha256_sse.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_xof\\shake128\\xof_shake128.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_xof\\shake128\\ref\\shake128_ref.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_xof\\shake256\\xof_shake256.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_xof\\shake256\\ref\\shake256_ref.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_xof\\turboshake256\\xof_turboshake256.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_xof\\turboshake256\\ref\\turboshake256_ref.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_xof\\turboshake128\\xof_turboshake128.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_xof\\turboshake128\\ref\\turboshake128_ref.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_verify\\verify.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_auth\\crypto_auth.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_auth\\hmacsha512\\auth_hmacsha512.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_auth\\hmacsha512256\\auth_hmacsha512256.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_auth\\hmacsha256\\auth_hmacsha256.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_kdf\\crypto_kdf.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_kdf\\blake2b\\kdf_blake2b.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_kdf\\hkdf\\kdf_hkdf_sha256.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_kdf\\hkdf\\kdf_hkdf_sha512.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_shorthash\\crypto_shorthash.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_shorthash\\siphash24\\shorthash_siphash24.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_shorthash\\siphash24\\shorthash_siphashx24.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_shorthash\\siphash24\\ref\\shorthash_siphashx24_ref.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_shorthash\\siphash24\\ref\\shorthash_siphash24_ref.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_scalarmult\\crypto_scalarmult.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_scalarmult\\ristretto255\\ref10\\scalarmult_ristretto255_ref10.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_scalarmult\\ed25519\\ref10\\scalarmult_ed25519_ref10.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_scalarmult\\curve25519\\scalarmult_curve25519.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_scalarmult\\curve25519\\sandy2x\\curve25519_sandy2x.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_scalarmult\\curve25519\\sandy2x\\fe_frombytes_sandy2x.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_scalarmult\\curve25519\\sandy2x\\fe51_invert.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_scalarmult\\curve25519\\ref10\\x25519_ref10.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_onetimeauth\\crypto_onetimeauth.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_onetimeauth\\poly1305\\onetimeauth_poly1305.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_onetimeauth\\poly1305\\donna\\poly1305_donna.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_onetimeauth\\poly1305\\sse2\\poly1305_sse2.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\randombytes\\randombytes.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\randombytes\\sysrandom\\randombytes_sysrandom.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\randombytes\\internal\\randombytes_internal_random.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_box\\crypto_box_easy.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_box\\crypto_box_seal.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_box\\crypto_box.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_box\\curve25519xsalsa20poly1305\\box_curve25519xsalsa20poly1305.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_box\\curve25519xchacha20poly1305\\box_curve25519xchacha20poly1305.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_box\\curve25519xchacha20poly1305\\box_seal_curve25519xchacha20poly1305.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\sodium\\codecs.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\sodium\\runtime.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\sodium\\core.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\sodium\\utils.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\sodium\\version.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_ipcrypt\\ipcrypt_armcrypto.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_ipcrypt\\crypto_ipcrypt.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_ipcrypt\\ipcrypt_soft.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_ipcrypt\\ipcrypt_aesni.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\crypto_stream.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\xchacha20\\stream_xchacha20.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\chacha20\\stream_chacha20.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\chacha20\\ref\\chacha20_ref.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\chacha20\\dolbeau\\chacha20_dolbeau-avx2.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\chacha20\\dolbeau\\chacha20_dolbeau-ssse3.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\salsa20\\stream_salsa20.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\salsa20\\ref\\salsa20_ref.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\salsa20\\xmm6int\\salsa20_xmm6int-avx2.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\salsa20\\xmm6int\\salsa20_xmm6int-sse2.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\salsa20\\xmm6\\salsa20_xmm6.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\salsa2012\\stream_salsa2012.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\salsa2012\\ref\\stream_salsa2012_ref.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\salsa208\\stream_salsa208.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\salsa208\\ref\\stream_salsa208_ref.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\xsalsa20\\stream_xsalsa20.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_hash\\crypto_hash.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_hash\\sha512\\hash_sha512.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_hash\\sha512\\cp\\hash_sha512_cp.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_hash\\sha3\\hash_sha3.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_hash\\sha256\\hash_sha256.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_hash\\sha256\\cp\\hash_sha256_cp.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_aead\\xchacha20poly1305\\aead_xchacha20poly1305.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_aead\\aegis128l\\aegis128l_soft.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_aead\\aegis128l\\aead_aegis128l.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_aead\\aegis128l\\aegis128l_aesni.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_aead\\aegis128l\\aegis128l_armcrypto.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_aead\\aegis256\\aead_aegis256.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_aead\\aegis256\\aegis256_soft.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_aead\\aegis256\\aegis256_armcrypto.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_aead\\aegis256\\aegis256_aesni.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_aead\\aes256gcm\\aead_aes256gcm.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_aead\\aes256gcm\\aesni\\aead_aes256gcm_aesni.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_aead\\aes256gcm\\armcrypto\\aead_aes256gcm_armcrypto.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_aead\\chacha20poly1305\\aead_chacha20poly1305.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_kem\\crypto_kem.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_kem\\xwing\\kem_xwing.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_kem\\mlkem768\\kem_mlkem768.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_kem\\mlkem768\\ref\\kem_mlkem768_ref.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_secretstream\\xchacha20poly1305\\secretstream_xchacha20poly1305.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_core\\keccak1600\\keccak1600.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_core\\keccak1600\\ref\\keccak1600_ref.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_core\\keccak1600\\armsha3\\keccak1600_armsha3.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_core\\salsa\\ref\\core_salsa_ref.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_core\\hchacha20\\core_hchacha20.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_core\\hsalsa20\\core_hsalsa20.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_core\\hsalsa20\\ref2\\core_hsalsa20_ref2.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_core\\softaes\\softaes.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_core\\ed25519\\core_ed25519.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_core\\ed25519\\core_ristretto255.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_core\\ed25519\\core_h2c.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_core\\ed25519\\ref10\\ed25519_ref10.c\" />\r\n  </ItemGroup>\r\n  <ItemGroup>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_generichash\\blake2b\\ref\\blake2b-load-sse2.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_generichash\\blake2b\\ref\\blake2b-load-avx2.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_generichash\\blake2b\\ref\\blake2.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_generichash\\blake2b\\ref\\blake2b-compress-ssse3.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_generichash\\blake2b\\ref\\blake2b-load-sse41.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_generichash\\blake2b\\ref\\blake2b-compress-avx2.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_generichash\\blake2b\\ref\\blake2b-compress-sse41.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_sign\\ed25519\\ref10\\sign_ed25519_ref10.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_stream_salsa2012.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_auth.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\utils.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_core_hchacha20.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_aead_aegis256.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_hash_sha512.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\core.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\export.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_core_salsa20.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_shorthash_siphash24.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\randombytes.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_hash_sha256.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_stream.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_auth_hmacsha512.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_xof_shake128.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_aead_xchacha20poly1305.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_stream_salsa20.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_onetimeauth_poly1305.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_kem_mlkem768.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_scalarmult_ristretto255.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_kx.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_hash.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_sign.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_kdf.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_auth_hmacsha256.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_box.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_verify_32.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_core_ristretto255.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_stream_xchacha20.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_core_salsa208.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_auth_hmacsha512256.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_xof_turboshake128.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_aead_aegis128l.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_aead_chacha20poly1305.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\randombytes_sysrandom.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_xof_turboshake256.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\runtime.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_stream_salsa208.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_aead_aes256gcm.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_core_salsa2012.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_secretbox_xchacha20poly1305.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_kem.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_core_keccak1600.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_scalarmult.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_pwhash.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_verify_16.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_stream_chacha20.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_stream_xsalsa20.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_core_hsalsa20.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_kdf_blake2b.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_scalarmult_curve25519.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_xof_shake256.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_shorthash.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_kdf_hkdf_sha256.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_pwhash_argon2id.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_secretstream_xchacha20poly1305.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_pwhash_scryptsalsa208sha256.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_hash_sha3.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_kem_xwing.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_sign_ed25519.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_onetimeauth.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_verify_64.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_box_curve25519xchacha20poly1305.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_core_ed25519.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_kdf_hkdf_sha512.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_pwhash_argon2i.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\randombytes_internal_random.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_generichash.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_secretbox_xsalsa20poly1305.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_secretbox.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_scalarmult_ed25519.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_ipcrypt.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_box_curve25519xsalsa20poly1305.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_generichash_blake2b.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\private\\ed25519_ref10.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\private\\softaes.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\private\\quirks.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\private\\ed25519_ref10_fe_25_5.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\private\\ed25519_ref10_fe_51.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\private\\sse2_64_32.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\private\\asm_cet.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\private\\common.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\private\\mutex.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\private\\chacha20_ietf_ext.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\private\\implementations.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\blamka-round-ref.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\blamka-round-avx2.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\blamka-round-neon.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\blamka-round-wasm32.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\argon2.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\blamka-round-ssse3.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\argon2-encoding.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\blake2b-long.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\blamka-round-avx512f.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\argon2-core.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\scryptsalsa208sha256\\crypto_scrypt.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\scryptsalsa208sha256\\pbkdf2-sha256.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_xof\\shake128\\ref\\shake128_ref.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_xof\\shake256\\ref\\shake256_ref.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_xof\\turboshake256\\ref\\turboshake256_ref.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_xof\\turboshake128\\ref\\turboshake128_ref.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_shorthash\\siphash24\\ref\\shorthash_siphash_ref.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_scalarmult\\curve25519\\scalarmult_curve25519.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_scalarmult\\curve25519\\sandy2x\\consts_namespace.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_scalarmult\\curve25519\\sandy2x\\ladder_namespace.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_scalarmult\\curve25519\\sandy2x\\fe.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_scalarmult\\curve25519\\sandy2x\\ladder.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_scalarmult\\curve25519\\sandy2x\\fe51.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_scalarmult\\curve25519\\sandy2x\\curve25519_sandy2x.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_scalarmult\\curve25519\\sandy2x\\fe51_namespace.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_scalarmult\\curve25519\\ref10\\x25519_ref10.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_onetimeauth\\poly1305\\onetimeauth_poly1305.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_onetimeauth\\poly1305\\donna\\poly1305_donna.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_onetimeauth\\poly1305\\donna\\poly1305_donna64.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_onetimeauth\\poly1305\\donna\\poly1305_donna32.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_onetimeauth\\poly1305\\sse2\\poly1305_sse2.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_ipcrypt\\ipcrypt_soft.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_ipcrypt\\ipcrypt_aesni.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_ipcrypt\\ipcrypt_armcrypto.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_ipcrypt\\implementations.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\chacha20\\stream_chacha20.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\chacha20\\ref\\chacha20_ref.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\chacha20\\dolbeau\\u4.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\chacha20\\dolbeau\\chacha20_dolbeau-ssse3.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\chacha20\\dolbeau\\u0.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\chacha20\\dolbeau\\u1.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\chacha20\\dolbeau\\chacha20_dolbeau-avx2.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\chacha20\\dolbeau\\u8.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\salsa20\\stream_salsa20.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\salsa20\\ref\\salsa20_ref.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\salsa20\\xmm6int\\u4.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\salsa20\\xmm6int\\u0.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\salsa20\\xmm6int\\u1.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\salsa20\\xmm6int\\salsa20_xmm6int-avx2.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\salsa20\\xmm6int\\u8.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\salsa20\\xmm6int\\salsa20_xmm6int-sse2.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\salsa20\\xmm6\\salsa20_xmm6-asm_namespace.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\salsa20\\xmm6\\salsa20_xmm6.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_aead\\aegis128l\\aegis128l_armcrypto.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_aead\\aegis128l\\aegis128l_aesni.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_aead\\aegis128l\\aegis128l_soft.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_aead\\aegis128l\\aegis128l_common.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_aead\\aegis128l\\implementations.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_aead\\aegis256\\aegis256_aesni.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_aead\\aegis256\\aegis256_common.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_aead\\aegis256\\implementations.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_aead\\aegis256\\aegis256_armcrypto.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_aead\\aegis256\\aegis256_soft.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_kem\\mlkem768\\ref\\kem_mlkem768_ref.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_core\\keccak1600\\ref\\keccak1600_ref.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_core\\keccak1600\\armsha3\\keccak1600_armsha3.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_core\\ed25519\\core_h2c.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_core\\ed25519\\ref10\\fe_25_5\\constants.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_core\\ed25519\\ref10\\fe_25_5\\fe.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_core\\ed25519\\ref10\\fe_25_5\\base2.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_core\\ed25519\\ref10\\fe_25_5\\base.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_core\\ed25519\\ref10\\fe_51\\constants.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_core\\ed25519\\ref10\\fe_51\\fe.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_core\\ed25519\\ref10\\fe_51\\base2.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_core\\ed25519\\ref10\\fe_51\\base.h\" />\r\n    <ClInclude Include=\"..\\..\\resource.h\" />\r\n  </ItemGroup>\r\n  <ItemGroup>\r\n    <ResourceCompile Include=\"..\\..\\resource.rc\">\r\n    </ResourceCompile>\r\n  </ItemGroup>\r\n  <Import Project=\"$(VCTargetsPath)\\Microsoft.Cpp.targets\" />\r\n  <ImportGroup Label=\"ExtensionTargets\">\r\n  </ImportGroup>\r\n</Project>\r\n"
  },
  {
    "path": "builds/msvc/vs2017/libsodium/libsodium.vcxproj.filters",
    "content": "﻿<?xml version=\"1.0\" encoding=\"utf-8\"?>\r\n<Project ToolsVersion=\"4.0\" xmlns=\"http://schemas.microsoft.com/developer/msbuild/2003\">\r\n  <ItemGroup>\r\n    <None Include=\"..\\..\\..\\..\\packaging\\nuget\\package.bat\">\r\n      <Filter>packaging</Filter>\r\n    </None>\r\n    <None Include=\"..\\..\\..\\..\\packaging\\nuget\\package.gsl\">\r\n      <Filter>packaging</Filter>\r\n    </None>\r\n    <None Include=\"..\\..\\..\\..\\packaging\\nuget\\package.nuspec\">\r\n      <Filter>packaging</Filter>\r\n    </None>\r\n    <None Include=\"..\\..\\..\\..\\packaging\\nuget\\package.targets\">\r\n      <Filter>packaging</Filter>\r\n    </None>\r\n    <None Include=\"..\\..\\..\\..\\packaging\\nuget\\package.config\">\r\n      <Filter>packaging</Filter>\r\n    </None>\r\n    <Xml Include=\"..\\..\\..\\..\\packaging\\nuget\\package.xml\">\r\n      <Filter>packaging</Filter>\r\n    </Xml>\r\n  </ItemGroup>\r\n  <ItemGroup>\r\n    <ResourceCompile Include=\"..\\..\\resource.rc\" />\r\n  </ItemGroup>\r\n  <ItemGroup>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_generichash\\crypto_generichash.c\">\r\n      <Filter>crypto_generichash</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_generichash\\blake2b\\generichash_blake2.c\">\r\n      <Filter>crypto_generichash\\blake2b</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_generichash\\blake2b\\ref\\blake2b-compress-ref.c\">\r\n      <Filter>crypto_generichash\\blake2b\\ref</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_generichash\\blake2b\\ref\\blake2b-compress-ssse3.c\">\r\n      <Filter>crypto_generichash\\blake2b\\ref</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_generichash\\blake2b\\ref\\blake2b-compress-avx2.c\">\r\n      <Filter>crypto_generichash\\blake2b\\ref</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_generichash\\blake2b\\ref\\blake2b-compress-sse41.c\">\r\n      <Filter>crypto_generichash\\blake2b\\ref</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_generichash\\blake2b\\ref\\generichash_blake2b.c\">\r\n      <Filter>crypto_generichash\\blake2b\\ref</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_generichash\\blake2b\\ref\\blake2b-ref.c\">\r\n      <Filter>crypto_generichash\\blake2b\\ref</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_kx\\crypto_kx.c\">\r\n      <Filter>crypto_kx</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_sign\\crypto_sign.c\">\r\n      <Filter>crypto_sign</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_sign\\ed25519\\sign_ed25519.c\">\r\n      <Filter>crypto_sign\\ed25519</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_sign\\ed25519\\ref10\\sign.c\">\r\n      <Filter>crypto_sign\\ed25519\\ref10</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_sign\\ed25519\\ref10\\keypair.c\">\r\n      <Filter>crypto_sign\\ed25519\\ref10</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_sign\\ed25519\\ref10\\open.c\">\r\n      <Filter>crypto_sign\\ed25519\\ref10</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_secretbox\\crypto_secretbox.c\">\r\n      <Filter>crypto_secretbox</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_secretbox\\crypto_secretbox_easy.c\">\r\n      <Filter>crypto_secretbox</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_secretbox\\xsalsa20poly1305\\secretbox_xsalsa20poly1305.c\">\r\n      <Filter>crypto_secretbox\\xsalsa20poly1305</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_secretbox\\xchacha20poly1305\\secretbox_xchacha20poly1305.c\">\r\n      <Filter>crypto_secretbox\\xchacha20poly1305</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\crypto_pwhash.c\">\r\n      <Filter>crypto_pwhash</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\blake2b-long.c\">\r\n      <Filter>crypto_pwhash\\argon2</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\argon2-fill-block-wasm32.c\">\r\n      <Filter>crypto_pwhash\\argon2</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\argon2-core.c\">\r\n      <Filter>crypto_pwhash\\argon2</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\argon2-fill-block-avx512f.c\">\r\n      <Filter>crypto_pwhash\\argon2</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\argon2-fill-block-ref.c\">\r\n      <Filter>crypto_pwhash\\argon2</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\argon2-fill-block-ssse3.c\">\r\n      <Filter>crypto_pwhash\\argon2</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\pwhash_argon2i.c\">\r\n      <Filter>crypto_pwhash\\argon2</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\argon2-fill-block-neon.c\">\r\n      <Filter>crypto_pwhash\\argon2</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\pwhash_argon2id.c\">\r\n      <Filter>crypto_pwhash\\argon2</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\argon2.c\">\r\n      <Filter>crypto_pwhash\\argon2</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\argon2-fill-block-avx2.c\">\r\n      <Filter>crypto_pwhash\\argon2</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\argon2-encoding.c\">\r\n      <Filter>crypto_pwhash\\argon2</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\scryptsalsa208sha256\\scrypt_platform.c\">\r\n      <Filter>crypto_pwhash\\scryptsalsa208sha256</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\scryptsalsa208sha256\\crypto_scrypt-common.c\">\r\n      <Filter>crypto_pwhash\\scryptsalsa208sha256</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\scryptsalsa208sha256\\pwhash_scryptsalsa208sha256.c\">\r\n      <Filter>crypto_pwhash\\scryptsalsa208sha256</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\scryptsalsa208sha256\\pbkdf2-sha256.c\">\r\n      <Filter>crypto_pwhash\\scryptsalsa208sha256</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\scryptsalsa208sha256\\nosse\\pwhash_scryptsalsa208sha256_nosse.c\">\r\n      <Filter>crypto_pwhash\\scryptsalsa208sha256\\nosse</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\scryptsalsa208sha256\\sse\\pwhash_scryptsalsa208sha256_sse.c\">\r\n      <Filter>crypto_pwhash\\scryptsalsa208sha256\\sse</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_xof\\shake128\\xof_shake128.c\">\r\n      <Filter>crypto_xof\\shake128</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_xof\\shake128\\ref\\shake128_ref.c\">\r\n      <Filter>crypto_xof\\shake128\\ref</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_xof\\shake256\\xof_shake256.c\">\r\n      <Filter>crypto_xof\\shake256</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_xof\\shake256\\ref\\shake256_ref.c\">\r\n      <Filter>crypto_xof\\shake256\\ref</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_xof\\turboshake256\\xof_turboshake256.c\">\r\n      <Filter>crypto_xof\\turboshake256</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_xof\\turboshake256\\ref\\turboshake256_ref.c\">\r\n      <Filter>crypto_xof\\turboshake256\\ref</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_xof\\turboshake128\\xof_turboshake128.c\">\r\n      <Filter>crypto_xof\\turboshake128</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_xof\\turboshake128\\ref\\turboshake128_ref.c\">\r\n      <Filter>crypto_xof\\turboshake128\\ref</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_verify\\verify.c\">\r\n      <Filter>crypto_verify</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_auth\\crypto_auth.c\">\r\n      <Filter>crypto_auth</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_auth\\hmacsha512\\auth_hmacsha512.c\">\r\n      <Filter>crypto_auth\\hmacsha512</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_auth\\hmacsha512256\\auth_hmacsha512256.c\">\r\n      <Filter>crypto_auth\\hmacsha512256</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_auth\\hmacsha256\\auth_hmacsha256.c\">\r\n      <Filter>crypto_auth\\hmacsha256</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_kdf\\crypto_kdf.c\">\r\n      <Filter>crypto_kdf</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_kdf\\blake2b\\kdf_blake2b.c\">\r\n      <Filter>crypto_kdf\\blake2b</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_kdf\\hkdf\\kdf_hkdf_sha256.c\">\r\n      <Filter>crypto_kdf\\hkdf</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_kdf\\hkdf\\kdf_hkdf_sha512.c\">\r\n      <Filter>crypto_kdf\\hkdf</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_shorthash\\crypto_shorthash.c\">\r\n      <Filter>crypto_shorthash</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_shorthash\\siphash24\\shorthash_siphash24.c\">\r\n      <Filter>crypto_shorthash\\siphash24</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_shorthash\\siphash24\\shorthash_siphashx24.c\">\r\n      <Filter>crypto_shorthash\\siphash24</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_shorthash\\siphash24\\ref\\shorthash_siphashx24_ref.c\">\r\n      <Filter>crypto_shorthash\\siphash24\\ref</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_shorthash\\siphash24\\ref\\shorthash_siphash24_ref.c\">\r\n      <Filter>crypto_shorthash\\siphash24\\ref</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_scalarmult\\crypto_scalarmult.c\">\r\n      <Filter>crypto_scalarmult</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_scalarmult\\ristretto255\\ref10\\scalarmult_ristretto255_ref10.c\">\r\n      <Filter>crypto_scalarmult\\ristretto255\\ref10</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_scalarmult\\ed25519\\ref10\\scalarmult_ed25519_ref10.c\">\r\n      <Filter>crypto_scalarmult\\ed25519\\ref10</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_scalarmult\\curve25519\\scalarmult_curve25519.c\">\r\n      <Filter>crypto_scalarmult\\curve25519</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_scalarmult\\curve25519\\sandy2x\\curve25519_sandy2x.c\">\r\n      <Filter>crypto_scalarmult\\curve25519\\sandy2x</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_scalarmult\\curve25519\\sandy2x\\fe_frombytes_sandy2x.c\">\r\n      <Filter>crypto_scalarmult\\curve25519\\sandy2x</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_scalarmult\\curve25519\\sandy2x\\fe51_invert.c\">\r\n      <Filter>crypto_scalarmult\\curve25519\\sandy2x</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_scalarmult\\curve25519\\ref10\\x25519_ref10.c\">\r\n      <Filter>crypto_scalarmult\\curve25519\\ref10</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_onetimeauth\\crypto_onetimeauth.c\">\r\n      <Filter>crypto_onetimeauth</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_onetimeauth\\poly1305\\onetimeauth_poly1305.c\">\r\n      <Filter>crypto_onetimeauth\\poly1305</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_onetimeauth\\poly1305\\donna\\poly1305_donna.c\">\r\n      <Filter>crypto_onetimeauth\\poly1305\\donna</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_onetimeauth\\poly1305\\sse2\\poly1305_sse2.c\">\r\n      <Filter>crypto_onetimeauth\\poly1305\\sse2</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\randombytes\\randombytes.c\">\r\n      <Filter>randombytes</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\randombytes\\sysrandom\\randombytes_sysrandom.c\">\r\n      <Filter>randombytes\\sysrandom</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\randombytes\\internal\\randombytes_internal_random.c\">\r\n      <Filter>randombytes\\internal</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_box\\crypto_box_easy.c\">\r\n      <Filter>crypto_box</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_box\\crypto_box_seal.c\">\r\n      <Filter>crypto_box</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_box\\crypto_box.c\">\r\n      <Filter>crypto_box</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_box\\curve25519xsalsa20poly1305\\box_curve25519xsalsa20poly1305.c\">\r\n      <Filter>crypto_box\\curve25519xsalsa20poly1305</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_box\\curve25519xchacha20poly1305\\box_curve25519xchacha20poly1305.c\">\r\n      <Filter>crypto_box\\curve25519xchacha20poly1305</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_box\\curve25519xchacha20poly1305\\box_seal_curve25519xchacha20poly1305.c\">\r\n      <Filter>crypto_box\\curve25519xchacha20poly1305</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\sodium\\codecs.c\">\r\n      <Filter>sodium</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\sodium\\runtime.c\">\r\n      <Filter>sodium</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\sodium\\core.c\">\r\n      <Filter>sodium</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\sodium\\utils.c\">\r\n      <Filter>sodium</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\sodium\\version.c\">\r\n      <Filter>sodium</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_ipcrypt\\ipcrypt_armcrypto.c\">\r\n      <Filter>crypto_ipcrypt</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_ipcrypt\\crypto_ipcrypt.c\">\r\n      <Filter>crypto_ipcrypt</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_ipcrypt\\ipcrypt_soft.c\">\r\n      <Filter>crypto_ipcrypt</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_ipcrypt\\ipcrypt_aesni.c\">\r\n      <Filter>crypto_ipcrypt</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\crypto_stream.c\">\r\n      <Filter>crypto_stream</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\xchacha20\\stream_xchacha20.c\">\r\n      <Filter>crypto_stream\\xchacha20</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\chacha20\\stream_chacha20.c\">\r\n      <Filter>crypto_stream\\chacha20</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\chacha20\\ref\\chacha20_ref.c\">\r\n      <Filter>crypto_stream\\chacha20\\ref</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\chacha20\\dolbeau\\chacha20_dolbeau-avx2.c\">\r\n      <Filter>crypto_stream\\chacha20\\dolbeau</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\chacha20\\dolbeau\\chacha20_dolbeau-ssse3.c\">\r\n      <Filter>crypto_stream\\chacha20\\dolbeau</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\salsa20\\stream_salsa20.c\">\r\n      <Filter>crypto_stream\\salsa20</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\salsa20\\ref\\salsa20_ref.c\">\r\n      <Filter>crypto_stream\\salsa20\\ref</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\salsa20\\xmm6int\\salsa20_xmm6int-avx2.c\">\r\n      <Filter>crypto_stream\\salsa20\\xmm6int</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\salsa20\\xmm6int\\salsa20_xmm6int-sse2.c\">\r\n      <Filter>crypto_stream\\salsa20\\xmm6int</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\salsa20\\xmm6\\salsa20_xmm6.c\">\r\n      <Filter>crypto_stream\\salsa20\\xmm6</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\salsa2012\\stream_salsa2012.c\">\r\n      <Filter>crypto_stream\\salsa2012</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\salsa2012\\ref\\stream_salsa2012_ref.c\">\r\n      <Filter>crypto_stream\\salsa2012\\ref</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\salsa208\\stream_salsa208.c\">\r\n      <Filter>crypto_stream\\salsa208</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\salsa208\\ref\\stream_salsa208_ref.c\">\r\n      <Filter>crypto_stream\\salsa208\\ref</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\xsalsa20\\stream_xsalsa20.c\">\r\n      <Filter>crypto_stream\\xsalsa20</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_hash\\crypto_hash.c\">\r\n      <Filter>crypto_hash</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_hash\\sha512\\hash_sha512.c\">\r\n      <Filter>crypto_hash\\sha512</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_hash\\sha512\\cp\\hash_sha512_cp.c\">\r\n      <Filter>crypto_hash\\sha512\\cp</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_hash\\sha3\\hash_sha3.c\">\r\n      <Filter>crypto_hash\\sha3</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_hash\\sha256\\hash_sha256.c\">\r\n      <Filter>crypto_hash\\sha256</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_hash\\sha256\\cp\\hash_sha256_cp.c\">\r\n      <Filter>crypto_hash\\sha256\\cp</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_aead\\xchacha20poly1305\\aead_xchacha20poly1305.c\">\r\n      <Filter>crypto_aead\\xchacha20poly1305</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_aead\\aegis128l\\aegis128l_soft.c\">\r\n      <Filter>crypto_aead\\aegis128l</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_aead\\aegis128l\\aead_aegis128l.c\">\r\n      <Filter>crypto_aead\\aegis128l</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_aead\\aegis128l\\aegis128l_aesni.c\">\r\n      <Filter>crypto_aead\\aegis128l</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_aead\\aegis128l\\aegis128l_armcrypto.c\">\r\n      <Filter>crypto_aead\\aegis128l</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_aead\\aegis256\\aead_aegis256.c\">\r\n      <Filter>crypto_aead\\aegis256</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_aead\\aegis256\\aegis256_soft.c\">\r\n      <Filter>crypto_aead\\aegis256</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_aead\\aegis256\\aegis256_armcrypto.c\">\r\n      <Filter>crypto_aead\\aegis256</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_aead\\aegis256\\aegis256_aesni.c\">\r\n      <Filter>crypto_aead\\aegis256</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_aead\\aes256gcm\\aead_aes256gcm.c\">\r\n      <Filter>crypto_aead\\aes256gcm</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_aead\\aes256gcm\\aesni\\aead_aes256gcm_aesni.c\">\r\n      <Filter>crypto_aead\\aes256gcm\\aesni</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_aead\\aes256gcm\\armcrypto\\aead_aes256gcm_armcrypto.c\">\r\n      <Filter>crypto_aead\\aes256gcm\\armcrypto</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_aead\\chacha20poly1305\\aead_chacha20poly1305.c\">\r\n      <Filter>crypto_aead\\chacha20poly1305</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_kem\\crypto_kem.c\">\r\n      <Filter>crypto_kem</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_kem\\xwing\\kem_xwing.c\">\r\n      <Filter>crypto_kem\\xwing</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_kem\\mlkem768\\kem_mlkem768.c\">\r\n      <Filter>crypto_kem\\mlkem768</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_kem\\mlkem768\\ref\\kem_mlkem768_ref.c\">\r\n      <Filter>crypto_kem\\mlkem768\\ref</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_secretstream\\xchacha20poly1305\\secretstream_xchacha20poly1305.c\">\r\n      <Filter>crypto_secretstream\\xchacha20poly1305</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_core\\keccak1600\\keccak1600.c\">\r\n      <Filter>crypto_core\\keccak1600</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_core\\keccak1600\\ref\\keccak1600_ref.c\">\r\n      <Filter>crypto_core\\keccak1600\\ref</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_core\\keccak1600\\armsha3\\keccak1600_armsha3.c\">\r\n      <Filter>crypto_core\\keccak1600\\armsha3</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_core\\salsa\\ref\\core_salsa_ref.c\">\r\n      <Filter>crypto_core\\salsa\\ref</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_core\\hchacha20\\core_hchacha20.c\">\r\n      <Filter>crypto_core\\hchacha20</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_core\\hsalsa20\\core_hsalsa20.c\">\r\n      <Filter>crypto_core\\hsalsa20</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_core\\hsalsa20\\ref2\\core_hsalsa20_ref2.c\">\r\n      <Filter>crypto_core\\hsalsa20\\ref2</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_core\\softaes\\softaes.c\">\r\n      <Filter>crypto_core\\softaes</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_core\\ed25519\\core_ed25519.c\">\r\n      <Filter>crypto_core\\ed25519</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_core\\ed25519\\core_ristretto255.c\">\r\n      <Filter>crypto_core\\ed25519</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_core\\ed25519\\core_h2c.c\">\r\n      <Filter>crypto_core\\ed25519</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_core\\ed25519\\ref10\\ed25519_ref10.c\">\r\n      <Filter>crypto_core\\ed25519\\ref10</Filter>\r\n    </ClCompile>\r\n  </ItemGroup>\r\n  <ItemGroup>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_generichash\\blake2b\\ref\\blake2b-load-sse2.h\">\r\n      <Filter>crypto_generichash\\blake2b\\ref</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_generichash\\blake2b\\ref\\blake2b-load-avx2.h\">\r\n      <Filter>crypto_generichash\\blake2b\\ref</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_generichash\\blake2b\\ref\\blake2.h\">\r\n      <Filter>crypto_generichash\\blake2b\\ref</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_generichash\\blake2b\\ref\\blake2b-compress-ssse3.h\">\r\n      <Filter>crypto_generichash\\blake2b\\ref</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_generichash\\blake2b\\ref\\blake2b-load-sse41.h\">\r\n      <Filter>crypto_generichash\\blake2b\\ref</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_generichash\\blake2b\\ref\\blake2b-compress-avx2.h\">\r\n      <Filter>crypto_generichash\\blake2b\\ref</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_generichash\\blake2b\\ref\\blake2b-compress-sse41.h\">\r\n      <Filter>crypto_generichash\\blake2b\\ref</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_sign\\ed25519\\ref10\\sign_ed25519_ref10.h\">\r\n      <Filter>crypto_sign\\ed25519\\ref10</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium.h\">\r\n      <Filter>include</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_stream_salsa2012.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_auth.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\utils.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_core_hchacha20.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_aead_aegis256.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_hash_sha512.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\core.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\export.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_core_salsa20.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_shorthash_siphash24.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\randombytes.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_hash_sha256.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_stream.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_auth_hmacsha512.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_xof_shake128.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_aead_xchacha20poly1305.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_stream_salsa20.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_onetimeauth_poly1305.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_kem_mlkem768.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_scalarmult_ristretto255.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_kx.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_hash.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_sign.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_kdf.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_auth_hmacsha256.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_box.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_verify_32.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_core_ristretto255.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_stream_xchacha20.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_core_salsa208.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_auth_hmacsha512256.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_xof_turboshake128.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_aead_aegis128l.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_aead_chacha20poly1305.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\randombytes_sysrandom.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_xof_turboshake256.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\runtime.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_stream_salsa208.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_aead_aes256gcm.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_core_salsa2012.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_secretbox_xchacha20poly1305.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_kem.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_core_keccak1600.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_scalarmult.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_pwhash.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_verify_16.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_stream_chacha20.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_stream_xsalsa20.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_core_hsalsa20.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_kdf_blake2b.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_scalarmult_curve25519.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_xof_shake256.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_shorthash.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_kdf_hkdf_sha256.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_pwhash_argon2id.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_secretstream_xchacha20poly1305.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_pwhash_scryptsalsa208sha256.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_hash_sha3.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_kem_xwing.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_sign_ed25519.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_onetimeauth.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_verify_64.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_box_curve25519xchacha20poly1305.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_core_ed25519.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_kdf_hkdf_sha512.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_pwhash_argon2i.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\randombytes_internal_random.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_generichash.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_secretbox_xsalsa20poly1305.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_secretbox.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_scalarmult_ed25519.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_ipcrypt.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_box_curve25519xsalsa20poly1305.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_generichash_blake2b.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\private\\ed25519_ref10.h\">\r\n      <Filter>include\\sodium\\private</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\private\\softaes.h\">\r\n      <Filter>include\\sodium\\private</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\private\\quirks.h\">\r\n      <Filter>include\\sodium\\private</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\private\\ed25519_ref10_fe_25_5.h\">\r\n      <Filter>include\\sodium\\private</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\private\\ed25519_ref10_fe_51.h\">\r\n      <Filter>include\\sodium\\private</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\private\\sse2_64_32.h\">\r\n      <Filter>include\\sodium\\private</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\private\\asm_cet.h\">\r\n      <Filter>include\\sodium\\private</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\private\\common.h\">\r\n      <Filter>include\\sodium\\private</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\private\\mutex.h\">\r\n      <Filter>include\\sodium\\private</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\private\\chacha20_ietf_ext.h\">\r\n      <Filter>include\\sodium\\private</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\private\\implementations.h\">\r\n      <Filter>include\\sodium\\private</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\blamka-round-ref.h\">\r\n      <Filter>crypto_pwhash\\argon2</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\blamka-round-avx2.h\">\r\n      <Filter>crypto_pwhash\\argon2</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\blamka-round-neon.h\">\r\n      <Filter>crypto_pwhash\\argon2</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\blamka-round-wasm32.h\">\r\n      <Filter>crypto_pwhash\\argon2</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\argon2.h\">\r\n      <Filter>crypto_pwhash\\argon2</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\blamka-round-ssse3.h\">\r\n      <Filter>crypto_pwhash\\argon2</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\argon2-encoding.h\">\r\n      <Filter>crypto_pwhash\\argon2</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\blake2b-long.h\">\r\n      <Filter>crypto_pwhash\\argon2</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\blamka-round-avx512f.h\">\r\n      <Filter>crypto_pwhash\\argon2</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\argon2-core.h\">\r\n      <Filter>crypto_pwhash\\argon2</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\scryptsalsa208sha256\\crypto_scrypt.h\">\r\n      <Filter>crypto_pwhash\\scryptsalsa208sha256</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\scryptsalsa208sha256\\pbkdf2-sha256.h\">\r\n      <Filter>crypto_pwhash\\scryptsalsa208sha256</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_xof\\shake128\\ref\\shake128_ref.h\">\r\n      <Filter>crypto_xof\\shake128\\ref</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_xof\\shake256\\ref\\shake256_ref.h\">\r\n      <Filter>crypto_xof\\shake256\\ref</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_xof\\turboshake256\\ref\\turboshake256_ref.h\">\r\n      <Filter>crypto_xof\\turboshake256\\ref</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_xof\\turboshake128\\ref\\turboshake128_ref.h\">\r\n      <Filter>crypto_xof\\turboshake128\\ref</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_shorthash\\siphash24\\ref\\shorthash_siphash_ref.h\">\r\n      <Filter>crypto_shorthash\\siphash24\\ref</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_scalarmult\\curve25519\\scalarmult_curve25519.h\">\r\n      <Filter>crypto_scalarmult\\curve25519</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_scalarmult\\curve25519\\sandy2x\\consts_namespace.h\">\r\n      <Filter>crypto_scalarmult\\curve25519\\sandy2x</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_scalarmult\\curve25519\\sandy2x\\ladder_namespace.h\">\r\n      <Filter>crypto_scalarmult\\curve25519\\sandy2x</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_scalarmult\\curve25519\\sandy2x\\fe.h\">\r\n      <Filter>crypto_scalarmult\\curve25519\\sandy2x</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_scalarmult\\curve25519\\sandy2x\\ladder.h\">\r\n      <Filter>crypto_scalarmult\\curve25519\\sandy2x</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_scalarmult\\curve25519\\sandy2x\\fe51.h\">\r\n      <Filter>crypto_scalarmult\\curve25519\\sandy2x</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_scalarmult\\curve25519\\sandy2x\\curve25519_sandy2x.h\">\r\n      <Filter>crypto_scalarmult\\curve25519\\sandy2x</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_scalarmult\\curve25519\\sandy2x\\fe51_namespace.h\">\r\n      <Filter>crypto_scalarmult\\curve25519\\sandy2x</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_scalarmult\\curve25519\\ref10\\x25519_ref10.h\">\r\n      <Filter>crypto_scalarmult\\curve25519\\ref10</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_onetimeauth\\poly1305\\onetimeauth_poly1305.h\">\r\n      <Filter>crypto_onetimeauth\\poly1305</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_onetimeauth\\poly1305\\donna\\poly1305_donna.h\">\r\n      <Filter>crypto_onetimeauth\\poly1305\\donna</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_onetimeauth\\poly1305\\donna\\poly1305_donna64.h\">\r\n      <Filter>crypto_onetimeauth\\poly1305\\donna</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_onetimeauth\\poly1305\\donna\\poly1305_donna32.h\">\r\n      <Filter>crypto_onetimeauth\\poly1305\\donna</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_onetimeauth\\poly1305\\sse2\\poly1305_sse2.h\">\r\n      <Filter>crypto_onetimeauth\\poly1305\\sse2</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_ipcrypt\\ipcrypt_soft.h\">\r\n      <Filter>crypto_ipcrypt</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_ipcrypt\\ipcrypt_aesni.h\">\r\n      <Filter>crypto_ipcrypt</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_ipcrypt\\ipcrypt_armcrypto.h\">\r\n      <Filter>crypto_ipcrypt</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_ipcrypt\\implementations.h\">\r\n      <Filter>crypto_ipcrypt</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\chacha20\\stream_chacha20.h\">\r\n      <Filter>crypto_stream\\chacha20</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\chacha20\\ref\\chacha20_ref.h\">\r\n      <Filter>crypto_stream\\chacha20\\ref</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\chacha20\\dolbeau\\u4.h\">\r\n      <Filter>crypto_stream\\chacha20\\dolbeau</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\chacha20\\dolbeau\\chacha20_dolbeau-ssse3.h\">\r\n      <Filter>crypto_stream\\chacha20\\dolbeau</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\chacha20\\dolbeau\\u0.h\">\r\n      <Filter>crypto_stream\\chacha20\\dolbeau</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\chacha20\\dolbeau\\u1.h\">\r\n      <Filter>crypto_stream\\chacha20\\dolbeau</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\chacha20\\dolbeau\\chacha20_dolbeau-avx2.h\">\r\n      <Filter>crypto_stream\\chacha20\\dolbeau</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\chacha20\\dolbeau\\u8.h\">\r\n      <Filter>crypto_stream\\chacha20\\dolbeau</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\salsa20\\stream_salsa20.h\">\r\n      <Filter>crypto_stream\\salsa20</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\salsa20\\ref\\salsa20_ref.h\">\r\n      <Filter>crypto_stream\\salsa20\\ref</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\salsa20\\xmm6int\\u4.h\">\r\n      <Filter>crypto_stream\\salsa20\\xmm6int</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\salsa20\\xmm6int\\u0.h\">\r\n      <Filter>crypto_stream\\salsa20\\xmm6int</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\salsa20\\xmm6int\\u1.h\">\r\n      <Filter>crypto_stream\\salsa20\\xmm6int</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\salsa20\\xmm6int\\salsa20_xmm6int-avx2.h\">\r\n      <Filter>crypto_stream\\salsa20\\xmm6int</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\salsa20\\xmm6int\\u8.h\">\r\n      <Filter>crypto_stream\\salsa20\\xmm6int</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\salsa20\\xmm6int\\salsa20_xmm6int-sse2.h\">\r\n      <Filter>crypto_stream\\salsa20\\xmm6int</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\salsa20\\xmm6\\salsa20_xmm6-asm_namespace.h\">\r\n      <Filter>crypto_stream\\salsa20\\xmm6</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\salsa20\\xmm6\\salsa20_xmm6.h\">\r\n      <Filter>crypto_stream\\salsa20\\xmm6</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_aead\\aegis128l\\aegis128l_armcrypto.h\">\r\n      <Filter>crypto_aead\\aegis128l</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_aead\\aegis128l\\aegis128l_aesni.h\">\r\n      <Filter>crypto_aead\\aegis128l</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_aead\\aegis128l\\aegis128l_soft.h\">\r\n      <Filter>crypto_aead\\aegis128l</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_aead\\aegis128l\\aegis128l_common.h\">\r\n      <Filter>crypto_aead\\aegis128l</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_aead\\aegis128l\\implementations.h\">\r\n      <Filter>crypto_aead\\aegis128l</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_aead\\aegis256\\aegis256_aesni.h\">\r\n      <Filter>crypto_aead\\aegis256</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_aead\\aegis256\\aegis256_common.h\">\r\n      <Filter>crypto_aead\\aegis256</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_aead\\aegis256\\implementations.h\">\r\n      <Filter>crypto_aead\\aegis256</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_aead\\aegis256\\aegis256_armcrypto.h\">\r\n      <Filter>crypto_aead\\aegis256</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_aead\\aegis256\\aegis256_soft.h\">\r\n      <Filter>crypto_aead\\aegis256</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_kem\\mlkem768\\ref\\kem_mlkem768_ref.h\">\r\n      <Filter>crypto_kem\\mlkem768\\ref</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_core\\keccak1600\\ref\\keccak1600_ref.h\">\r\n      <Filter>crypto_core\\keccak1600\\ref</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_core\\keccak1600\\armsha3\\keccak1600_armsha3.h\">\r\n      <Filter>crypto_core\\keccak1600\\armsha3</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_core\\ed25519\\core_h2c.h\">\r\n      <Filter>crypto_core\\ed25519</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_core\\ed25519\\ref10\\fe_25_5\\constants.h\">\r\n      <Filter>crypto_core\\ed25519\\ref10\\fe_25_5</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_core\\ed25519\\ref10\\fe_25_5\\fe.h\">\r\n      <Filter>crypto_core\\ed25519\\ref10\\fe_25_5</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_core\\ed25519\\ref10\\fe_25_5\\base2.h\">\r\n      <Filter>crypto_core\\ed25519\\ref10\\fe_25_5</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_core\\ed25519\\ref10\\fe_25_5\\base.h\">\r\n      <Filter>crypto_core\\ed25519\\ref10\\fe_25_5</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_core\\ed25519\\ref10\\fe_51\\constants.h\">\r\n      <Filter>crypto_core\\ed25519\\ref10\\fe_51</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_core\\ed25519\\ref10\\fe_51\\fe.h\">\r\n      <Filter>crypto_core\\ed25519\\ref10\\fe_51</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_core\\ed25519\\ref10\\fe_51\\base2.h\">\r\n      <Filter>crypto_core\\ed25519\\ref10\\fe_51</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_core\\ed25519\\ref10\\fe_51\\base.h\">\r\n      <Filter>crypto_core\\ed25519\\ref10\\fe_51</Filter>\r\n    </ClInclude>\r\n  </ItemGroup>\r\n  <ItemGroup>\r\n    <Filter Include=\"crypto_aead\">\r\n      <UniqueIdentifier>{a6837e41-3751-38c9-bb90-dd59d5f4af7b}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_aead\\aegis128l\">\r\n      <UniqueIdentifier>{9e2a023d-fef1-3231-90ba-9a0ffc9bc9ab}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_aead\\aegis256\">\r\n      <UniqueIdentifier>{6897a4cc-0091-3970-b712-c0ac75c16b67}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_aead\\aes256gcm\">\r\n      <UniqueIdentifier>{3e53394c-b59c-30cc-ae69-a4f46f9edfa3}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_aead\\aes256gcm\\aesni\">\r\n      <UniqueIdentifier>{7eb51140-a50f-3f50-b379-83677a82496c}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_aead\\aes256gcm\\armcrypto\">\r\n      <UniqueIdentifier>{507bb9aa-b65c-3034-946b-bcd375b7deaa}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_aead\\chacha20poly1305\">\r\n      <UniqueIdentifier>{1f4d6dd1-517f-3eeb-b974-2304ada5e67a}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_aead\\xchacha20poly1305\">\r\n      <UniqueIdentifier>{3122f223-e6c2-3ab1-ad85-ca289b47419e}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_auth\">\r\n      <UniqueIdentifier>{0a3af0f3-56f7-3551-a64e-6284feccc423}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_auth\\hmacsha256\">\r\n      <UniqueIdentifier>{64e89b4f-eec9-38c9-90f2-4881bf5e84c0}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_auth\\hmacsha512\">\r\n      <UniqueIdentifier>{0c0b4001-ae11-3d0f-8e73-75ac9b6e1ae8}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_auth\\hmacsha512256\">\r\n      <UniqueIdentifier>{f5065d74-beda-3e1e-819a-f606279c7fe9}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_box\">\r\n      <UniqueIdentifier>{f7aedb93-94a6-3ede-9374-ff41daca4841}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_box\\curve25519xchacha20poly1305\">\r\n      <UniqueIdentifier>{0e7473c9-9c69-36b3-ab6c-d953647a15a6}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_box\\curve25519xsalsa20poly1305\">\r\n      <UniqueIdentifier>{d75db64c-eb08-3f10-9b99-1b6e6827f348}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_core\">\r\n      <UniqueIdentifier>{73194d5d-588a-342f-bee6-f28b4486f20b}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_core\\ed25519\">\r\n      <UniqueIdentifier>{7c5e6f81-e4ce-3018-a776-a1f125072d73}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_core\\ed25519\\ref10\">\r\n      <UniqueIdentifier>{76990c08-d692-367f-b286-c728a8cad6bf}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_core\\ed25519\\ref10\\fe_25_5\">\r\n      <UniqueIdentifier>{bf04f786-7862-3bde-aeba-ed82ee59ca22}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_core\\ed25519\\ref10\\fe_51\">\r\n      <UniqueIdentifier>{98b6126a-3725-3707-a4cc-ff3af657cba0}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_core\\hchacha20\">\r\n      <UniqueIdentifier>{8b704d11-af1f-30c0-9981-479da6d88dc3}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_core\\hsalsa20\">\r\n      <UniqueIdentifier>{342e684b-4e18-311c-953c-8391a544a04f}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_core\\hsalsa20\\ref2\">\r\n      <UniqueIdentifier>{c6b8e28c-7c54-3af7-bee3-2948ba7b2082}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_core\\keccak1600\">\r\n      <UniqueIdentifier>{85c1722f-2d65-30a8-aefb-ebf1cbfe185e}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_core\\keccak1600\\armsha3\">\r\n      <UniqueIdentifier>{855cc78f-1fe0-3ad2-a2ac-5e2b0c01c235}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_core\\keccak1600\\ref\">\r\n      <UniqueIdentifier>{9462f285-fee0-3779-983b-2811dc621f7d}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_core\\salsa\">\r\n      <UniqueIdentifier>{4e9a1d6b-ee07-3bbc-ad78-6d0ba0e6d9d3}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_core\\salsa\\ref\">\r\n      <UniqueIdentifier>{eb259fd9-56f0-32db-a903-6bc1549a7326}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_core\\softaes\">\r\n      <UniqueIdentifier>{05997596-e3d7-3bf1-ad4d-39e4c5fd56f6}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_generichash\">\r\n      <UniqueIdentifier>{e53b6258-fcdd-34c8-96c5-44510a34a390}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_generichash\\blake2b\">\r\n      <UniqueIdentifier>{8bd3b558-2d08-3c3a-81ca-22677dde943b}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_generichash\\blake2b\\ref\">\r\n      <UniqueIdentifier>{16a8dd41-b0ab-39a7-80c8-3052d8b63811}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_hash\">\r\n      <UniqueIdentifier>{d7ec3690-bae7-3653-8c53-66a3142cfcfa}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_hash\\sha256\">\r\n      <UniqueIdentifier>{722ef422-8c03-3008-ba2a-3a7e91c6647c}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_hash\\sha256\\cp\">\r\n      <UniqueIdentifier>{8c7d8b62-7b4f-3eb9-85b7-18e8d925be14}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_hash\\sha3\">\r\n      <UniqueIdentifier>{6df763e3-9707-3014-8cfe-2f9a8a83a872}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_hash\\sha512\">\r\n      <UniqueIdentifier>{8fb6a906-dbd6-3746-9b0f-f49e7028daec}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_hash\\sha512\\cp\">\r\n      <UniqueIdentifier>{f2d6a22b-dd67-3561-90a4-88696169cb7b}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_ipcrypt\">\r\n      <UniqueIdentifier>{5c3b1fe7-203f-36fd-bca5-8d0c4b466d80}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_kdf\">\r\n      <UniqueIdentifier>{aaf59186-1c0d-33cf-a34d-93e14bb87226}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_kdf\\blake2b\">\r\n      <UniqueIdentifier>{3d42d2a2-b192-33dd-9162-508916414707}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_kdf\\hkdf\">\r\n      <UniqueIdentifier>{baf7d894-9298-391d-8dc2-e4c3010f5ddc}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_kem\">\r\n      <UniqueIdentifier>{b9009d4a-dd97-341d-aafb-eeeb77191a49}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_kem\\mlkem768\">\r\n      <UniqueIdentifier>{ab0c8a55-3e1f-307e-82be-8291a3b43735}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_kem\\mlkem768\\ref\">\r\n      <UniqueIdentifier>{70a10765-f8fb-3898-8514-966e48719bc4}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_kem\\xwing\">\r\n      <UniqueIdentifier>{2ef7c851-6598-3be5-88be-9ac5ec867cb0}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_kx\">\r\n      <UniqueIdentifier>{898b6bd5-1360-3a34-adcd-0fade7561685}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_onetimeauth\">\r\n      <UniqueIdentifier>{323c0a15-3c1d-39b2-9ec1-299deb299497}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_onetimeauth\\poly1305\">\r\n      <UniqueIdentifier>{52c2080d-37c0-34c2-864a-c201c728e5d8}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_onetimeauth\\poly1305\\donna\">\r\n      <UniqueIdentifier>{ff618a41-caeb-3a18-ad36-d34b049a8f50}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_onetimeauth\\poly1305\\sse2\">\r\n      <UniqueIdentifier>{ffc3712d-dfe0-3b51-8257-f5ffc9c9cea3}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_pwhash\">\r\n      <UniqueIdentifier>{f54b65b6-71cf-3ab3-9c8c-f89c81846836}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_pwhash\\argon2\">\r\n      <UniqueIdentifier>{1bd97a78-befa-3805-8e9c-80d7c1aff37b}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_pwhash\\scryptsalsa208sha256\">\r\n      <UniqueIdentifier>{e785f104-1212-37bf-8511-cc518b9ace66}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_pwhash\\scryptsalsa208sha256\\nosse\">\r\n      <UniqueIdentifier>{447b993f-59fb-3efd-8c59-a1712c97dfe8}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_pwhash\\scryptsalsa208sha256\\sse\">\r\n      <UniqueIdentifier>{cdb8d233-06b0-3872-a62b-c1ccf4cb4314}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_scalarmult\">\r\n      <UniqueIdentifier>{402a1c5a-d499-333a-a2fa-acd0e6a3c2b2}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_scalarmult\\curve25519\">\r\n      <UniqueIdentifier>{77f5a2e9-2ef1-3a72-b63c-88e8e4b92678}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_scalarmult\\curve25519\\ref10\">\r\n      <UniqueIdentifier>{6c9c7c30-0808-3fad-8a88-944d7645e5d5}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_scalarmult\\curve25519\\sandy2x\">\r\n      <UniqueIdentifier>{5d2fb1a2-f063-32db-a81a-41f79e36fd23}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_scalarmult\\ed25519\">\r\n      <UniqueIdentifier>{7bec6074-fbc7-330b-9e18-7dc3e868569a}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_scalarmult\\ed25519\\ref10\">\r\n      <UniqueIdentifier>{834d4827-81e4-3de3-baa1-a216763f11d6}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_scalarmult\\ristretto255\">\r\n      <UniqueIdentifier>{52bf28eb-7ffd-399a-be35-0df3e8e99c15}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_scalarmult\\ristretto255\\ref10\">\r\n      <UniqueIdentifier>{39cc576f-4b54-3d71-b14c-27445bc4b138}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_secretbox\">\r\n      <UniqueIdentifier>{b9b02bee-5c1f-36d2-b97d-983f865a4cc6}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_secretbox\\xchacha20poly1305\">\r\n      <UniqueIdentifier>{41f1f35b-4639-3424-be85-7dfba02f3c5e}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_secretbox\\xsalsa20poly1305\">\r\n      <UniqueIdentifier>{8bf11d29-2f5a-3f10-8ae6-82229d19c5b0}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_secretstream\">\r\n      <UniqueIdentifier>{62f7ae38-4ce6-3976-acc3-47c462db4fbe}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_secretstream\\xchacha20poly1305\">\r\n      <UniqueIdentifier>{e07a28cd-775a-3798-bfdb-97842d3614d6}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_shorthash\">\r\n      <UniqueIdentifier>{bb073c16-adc8-3cff-80b9-99cf5a28de6c}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_shorthash\\siphash24\">\r\n      <UniqueIdentifier>{63de0ec8-ecde-35e3-8b97-6e9e4da342ee}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_shorthash\\siphash24\\ref\">\r\n      <UniqueIdentifier>{29925210-53eb-342c-8527-7ebc173e668f}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_sign\">\r\n      <UniqueIdentifier>{b2f989b6-87a6-3388-a35c-2d0d59cb4236}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_sign\\ed25519\">\r\n      <UniqueIdentifier>{bc6466a1-57b0-3a35-9973-ad488a4bef8c}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_sign\\ed25519\\ref10\">\r\n      <UniqueIdentifier>{5599d9ab-b5b2-3310-b541-ae0fb70eecf1}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_stream\">\r\n      <UniqueIdentifier>{eaedd08a-46f8-3d12-9e8d-bb3ee3ead5f6}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_stream\\chacha20\">\r\n      <UniqueIdentifier>{806b6ff3-578b-308a-a359-0f5ed8472ecc}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_stream\\chacha20\\dolbeau\">\r\n      <UniqueIdentifier>{5a1d852e-67bb-3dc1-9ec5-99ef74b7faca}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_stream\\chacha20\\ref\">\r\n      <UniqueIdentifier>{33e45d9c-e12a-3e76-9ef2-4f5510244a5b}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_stream\\salsa20\">\r\n      <UniqueIdentifier>{048ba2a8-b22b-346c-9886-668b63c88c68}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_stream\\salsa20\\ref\">\r\n      <UniqueIdentifier>{f08a312f-f8a3-350b-87ab-1f79d33e513f}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_stream\\salsa20\\xmm6\">\r\n      <UniqueIdentifier>{c403f690-cd22-3ed4-9cc7-3f46e73081fd}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_stream\\salsa20\\xmm6int\">\r\n      <UniqueIdentifier>{c34d03f5-cf47-39fe-a5ad-5eb917006203}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_stream\\salsa2012\">\r\n      <UniqueIdentifier>{4da0c5ca-33d1-34e0-9689-12e69ae2dbd6}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_stream\\salsa2012\\ref\">\r\n      <UniqueIdentifier>{dd6b294c-5871-386c-92ec-aa46fcc411d4}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_stream\\salsa208\">\r\n      <UniqueIdentifier>{07aca978-0547-329a-b70b-29aa579cacc5}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_stream\\salsa208\\ref\">\r\n      <UniqueIdentifier>{f171fa05-35c4-32a0-b035-b5d6680ab714}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_stream\\xchacha20\">\r\n      <UniqueIdentifier>{ede2279c-1ba7-3d62-8345-733c6c1965e7}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_stream\\xsalsa20\">\r\n      <UniqueIdentifier>{9c15151b-10dc-3dfe-b97b-a7d8c6b58920}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_verify\">\r\n      <UniqueIdentifier>{49fb9272-ffe2-3993-b562-b19d5f2c9b40}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_xof\">\r\n      <UniqueIdentifier>{9d0b6e6c-57a5-33bb-a67c-c1ce5a5e0684}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_xof\\shake128\">\r\n      <UniqueIdentifier>{3311f765-9a5b-3614-a24f-9b97a56240aa}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_xof\\shake128\\ref\">\r\n      <UniqueIdentifier>{0b3ce98f-5f0a-3836-a95f-5ebd938a0e15}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_xof\\shake256\">\r\n      <UniqueIdentifier>{d4f668ef-b456-369e-b8bf-b1b6d4e90a6d}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_xof\\shake256\\ref\">\r\n      <UniqueIdentifier>{c5174d81-c82a-3411-98f7-829a427faddc}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_xof\\turboshake128\">\r\n      <UniqueIdentifier>{6ccaee32-fd4e-3b58-be6b-a2866132d22d}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_xof\\turboshake128\\ref\">\r\n      <UniqueIdentifier>{00e8736b-cf8d-3a60-bfbe-f0c535d45696}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_xof\\turboshake256\">\r\n      <UniqueIdentifier>{8f7b92bd-0b08-3b14-8693-2df66b256d8b}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_xof\\turboshake256\\ref\">\r\n      <UniqueIdentifier>{bcea4d5e-5593-3465-ac95-2ecd34340ce3}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"include\">\r\n      <UniqueIdentifier>{96da72eb-3aa0-3850-83eb-32788f91e5bd}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"include\\sodium\">\r\n      <UniqueIdentifier>{56bb40fc-d381-3a9e-925b-681774c48dde}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"include\\sodium\\private\">\r\n      <UniqueIdentifier>{fde88485-0fe6-3b22-9480-1d2b49fade53}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"randombytes\">\r\n      <UniqueIdentifier>{ef090484-4db4-3dc2-aca7-c59bab1db23b}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"randombytes\\internal\">\r\n      <UniqueIdentifier>{14c126fd-bb91-37ea-b807-b60c386be601}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"randombytes\\sysrandom\">\r\n      <UniqueIdentifier>{ac56c38f-7e17-3b79-bf47-58e9476b3b89}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"sodium\">\r\n      <UniqueIdentifier>{5dfc520b-f690-3d5f-a86a-8b667f2e7490}</UniqueIdentifier>\r\n    </Filter>\r\n  </ItemGroup>\r\n</Project>\r\n"
  },
  {
    "path": "builds/msvc/vs2017/libsodium/libsodium.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<ProjectSchemaDefinitions xmlns=\"clr-namespace:Microsoft.Build.Framework.XamlTypes;assembly=Microsoft.Build.Framework\">\n  <Rule Name=\"libsodium-uiextension\" PageTemplate=\"tool\" DisplayName=\"Sodium Options\" SwitchPrefix=\"/\" Order=\"1\">\n    <Rule.Categories>\n      <Category Name=\"amd64asm\" DisplayName=\"amd64asm\" />\n    </Rule.Categories>\n    <Rule.DataSource>\n      <DataSource Persistence=\"ProjectFile\" ItemType=\"\" />\n    </Rule.DataSource>\n    <EnumProperty Name=\"Option-amd64asm\" DisplayName=\"Enable AMD64 Assembly\" Description=\"Enable the AMD64 Assembly build option\" Category=\"amd64asm\">\n      <EnumValue Name=\"\" DisplayName=\"No\" />\n      <EnumValue Name=\"true\" DisplayName=\"Yes\" />\n    </EnumProperty>\n  </Rule>\n</ProjectSchemaDefinitions>"
  },
  {
    "path": "builds/msvc/vs2017/libsodium.import.props",
    "content": "﻿<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<Project DefaultTargets=\"Build\" xmlns=\"http://schemas.microsoft.com/developer/msbuild/2003\">\n\n  <PropertyGroup Label=\"Globals\">\n    <_PropertySheetDisplayName>Libsodium Import Settings</_PropertySheetDisplayName>\n  </PropertyGroup>\n\n  <!-- User Interface -->\n\n  <ItemGroup Label=\"BuildOptionsExtension\">\n    <PropertyPageSchema Include=\"$(MSBuildThisFileDirectory)libsodium.import.xml\" />\n  </ItemGroup>\n\n  <!-- Linkage -->\n\n  <ItemDefinitionGroup>\n    <ClCompile>\n      <AdditionalIncludeDirectories>$(ProjectDir)..\\..\\..\\..\\..\\libsodium\\src\\libsodium\\include;$(ProjectDir)..\\..\\..\\..\\..\\libsodium\\src\\libsodium\\include\\sodium\\;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\n      <PreprocessorDefinitions Condition=\"'$(Linkage-libsodium)' == 'static' Or '$(Linkage-libsodium)' == 'ltcg'\">SODIUM_STATIC;%(PreprocessorDefinitions)</PreprocessorDefinitions>\n    </ClCompile>\n    <Link>\n      <AdditionalDependencies Condition=\"'$(Linkage-libsodium)' != ''\">advapi32.lib;libsodium.lib;%(AdditionalDependencies)</AdditionalDependencies>\n      <AdditionalLibraryDirectories Condition=\"$(Configuration.IndexOf('Debug')) != -1\">$(ProjectDir)..\\..\\..\\..\\..\\libsodium\\bin\\$(PlatformName)\\Debug\\$(PlatformToolset)\\$(Linkage-libsodium)\\;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>\n      <AdditionalLibraryDirectories Condition=\"$(Configuration.IndexOf('Release')) != -1\">$(ProjectDir)..\\..\\..\\..\\..\\libsodium\\bin\\$(PlatformName)\\Release\\$(PlatformToolset)\\$(Linkage-libsodium)\\;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>\n    </Link>\n  </ItemDefinitionGroup>\n\n  <!-- Copy -->\n\n  <Target Name=\"Linkage-libsodium-dynamic\" AfterTargets=\"AfterBuild\" Condition=\"'$(Linkage-libsodium)' == 'dynamic'\">\n    <Copy Condition=\"$(Configuration.IndexOf('Debug')) != -1\"\n          SourceFiles=\"$(ProjectDir)..\\..\\..\\..\\..\\libsodium\\bin\\$(PlatformName)\\Debug\\$(PlatformToolset)\\dynamic\\libsodium.dll\"\n          DestinationFiles=\"$(TargetDir)libsodium.dll\"\n          SkipUnchangedFiles=\"true\" />\n    <Copy Condition=\"$(Configuration.IndexOf('Debug')) != -1\"\n          SourceFiles=\"$(ProjectDir)..\\..\\..\\..\\..\\libsodium\\bin\\$(PlatformName)\\Debug\\$(PlatformToolset)\\dynamic\\libsodium.pdb\"\n          DestinationFiles=\"$(TargetDir)libsodium.pdb\"\n          SkipUnchangedFiles=\"true\" />\n    <Copy Condition=\"$(Configuration.IndexOf('Release')) != -1\"\n          SourceFiles=\"$(ProjectDir)..\\..\\..\\..\\..\\libsodium\\bin\\$(PlatformName)\\Release\\$(PlatformToolset)\\dynamic\\libsodium.dll\"\n          DestinationFiles=\"$(TargetDir)libsodium.dll\"\n          SkipUnchangedFiles=\"true\" />\n  </Target>\n\n  <!-- Messages -->\n\n  <Target Name=\"libsodium-info\" BeforeTargets=\"AfterBuild\" Condition=\"'$(Linkage-libsodium)' == 'dynamic'\">\n    <Message Text=\"Copying libsodium.dll -&gt; $(TargetDir)libsodium.dll\" Importance=\"high\"/>\n    <Message Text=\"Copying libsodium.pdb -&gt; $(TargetDir)libsodium.pdb\" Importance=\"high\" Condition=\"$(Configuration.IndexOf('Debug')) != -1\" />\n  </Target>\n\n</Project>"
  },
  {
    "path": "builds/msvc/vs2017/libsodium.import.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<ProjectSchemaDefinitions xmlns=\"clr-namespace:Microsoft.Build.Framework.XamlTypes;assembly=Microsoft.Build.Framework\">\n  <Rule Name=\"libsodium-linkage-uiextension\" PageTemplate=\"tool\" DisplayName=\"Local Dependencies\" SwitchPrefix=\"/\" Order=\"1\">\n    <Rule.Categories>\n      <Category Name=\"libsodium\" DisplayName=\"libsodium\" />\n    </Rule.Categories>\n    <Rule.DataSource>\n      <DataSource Persistence=\"ProjectFile\" ItemType=\"\" />\n    </Rule.DataSource>\n    <EnumProperty Name=\"Linkage-libsodium\" DisplayName=\"Linkage\" Description=\"How libsodium will be linked into the output of this project\" Category=\"libsodium\">\n      <EnumValue Name=\"\" DisplayName=\"Not linked\" />\n      <EnumValue Name=\"dynamic\" DisplayName=\"Dynamic (DLL)\" />\n      <EnumValue Name=\"static\" DisplayName=\"Static (LIB)\" />\n      <EnumValue Name=\"ltcg\" DisplayName=\"Static using link time compile generation (LTCG)\" />\n    </EnumProperty>\n  </Rule>\n</ProjectSchemaDefinitions>"
  },
  {
    "path": "builds/msvc/vs2017/libsodium.sln",
    "content": "﻿\r\nMicrosoft Visual Studio Solution File, Format Version 12.00\r\n# Visual Studio 15\r\nVisualStudioVersion = 15.0.26228.4\r\nMinimumVisualStudioVersion = 10.0.40219.1\r\nProject(\"{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}\") = \"libsodium\", \"libsodium\\libsodium.vcxproj\", \"{A185B162-6CB6-4502-B03F-B56F7699A8D9}\"\r\nEndProject\r\nGlobal\r\n\tGlobalSection(SolutionConfigurationPlatforms) = preSolution\r\n\t\tDynDebug|Win32 = DynDebug|Win32\r\n\t\tDynDebug|x64 = DynDebug|x64\r\n\t\tDynRelease|Win32 = DynRelease|Win32\r\n\t\tDynRelease|x64 = DynRelease|x64\r\n\t\tLtcgDebug|Win32 = LtcgDebug|Win32\r\n\t\tLtcgDebug|x64 = LtcgDebug|x64\r\n\t\tLtcgRelease|Win32 = LtcgRelease|Win32\r\n\t\tLtcgRelease|x64 = LtcgRelease|x64\r\n\t\tStaticDebug|Win32 = StaticDebug|Win32\r\n\t\tStaticDebug|x64 = StaticDebug|x64\r\n\t\tStaticRelease|Win32 = StaticRelease|Win32\r\n\t\tStaticRelease|x64 = StaticRelease|x64\r\n\tEndGlobalSection\r\n\tGlobalSection(ProjectConfigurationPlatforms) = postSolution\r\n\t\t{A185B162-6CB6-4502-B03F-B56F7699A8D9}.DynDebug|Win32.ActiveCfg = DebugDLL|Win32\r\n\t\t{A185B162-6CB6-4502-B03F-B56F7699A8D9}.DynDebug|Win32.Build.0 = DebugDLL|Win32\r\n\t\t{A185B162-6CB6-4502-B03F-B56F7699A8D9}.DynDebug|x64.ActiveCfg = DebugDLL|x64\r\n\t\t{A185B162-6CB6-4502-B03F-B56F7699A8D9}.DynDebug|x64.Build.0 = DebugDLL|x64\r\n\t\t{A185B162-6CB6-4502-B03F-B56F7699A8D9}.DynRelease|Win32.ActiveCfg = ReleaseDLL|Win32\r\n\t\t{A185B162-6CB6-4502-B03F-B56F7699A8D9}.DynRelease|Win32.Build.0 = ReleaseDLL|Win32\r\n\t\t{A185B162-6CB6-4502-B03F-B56F7699A8D9}.DynRelease|x64.ActiveCfg = ReleaseDLL|x64\r\n\t\t{A185B162-6CB6-4502-B03F-B56F7699A8D9}.DynRelease|x64.Build.0 = ReleaseDLL|x64\r\n\t\t{A185B162-6CB6-4502-B03F-B56F7699A8D9}.LtcgDebug|Win32.ActiveCfg = DebugLTCG|Win32\r\n\t\t{A185B162-6CB6-4502-B03F-B56F7699A8D9}.LtcgDebug|Win32.Build.0 = DebugLTCG|Win32\r\n\t\t{A185B162-6CB6-4502-B03F-B56F7699A8D9}.LtcgDebug|x64.ActiveCfg = DebugLTCG|x64\r\n\t\t{A185B162-6CB6-4502-B03F-B56F7699A8D9}.LtcgDebug|x64.Build.0 = DebugLTCG|x64\r\n\t\t{A185B162-6CB6-4502-B03F-B56F7699A8D9}.LtcgRelease|Win32.ActiveCfg = ReleaseLTCG|Win32\r\n\t\t{A185B162-6CB6-4502-B03F-B56F7699A8D9}.LtcgRelease|Win32.Build.0 = ReleaseLTCG|Win32\r\n\t\t{A185B162-6CB6-4502-B03F-B56F7699A8D9}.LtcgRelease|x64.ActiveCfg = ReleaseLTCG|x64\r\n\t\t{A185B162-6CB6-4502-B03F-B56F7699A8D9}.LtcgRelease|x64.Build.0 = ReleaseLTCG|x64\r\n\t\t{A185B162-6CB6-4502-B03F-B56F7699A8D9}.StaticDebug|Win32.ActiveCfg = DebugLIB|Win32\r\n\t\t{A185B162-6CB6-4502-B03F-B56F7699A8D9}.StaticDebug|Win32.Build.0 = DebugLIB|Win32\r\n\t\t{A185B162-6CB6-4502-B03F-B56F7699A8D9}.StaticDebug|x64.ActiveCfg = DebugLIB|x64\r\n\t\t{A185B162-6CB6-4502-B03F-B56F7699A8D9}.StaticDebug|x64.Build.0 = DebugLIB|x64\r\n\t\t{A185B162-6CB6-4502-B03F-B56F7699A8D9}.StaticRelease|Win32.ActiveCfg = ReleaseLIB|Win32\r\n\t\t{A185B162-6CB6-4502-B03F-B56F7699A8D9}.StaticRelease|Win32.Build.0 = ReleaseLIB|Win32\r\n\t\t{A185B162-6CB6-4502-B03F-B56F7699A8D9}.StaticRelease|x64.ActiveCfg = ReleaseLIB|x64\r\n\t\t{A185B162-6CB6-4502-B03F-B56F7699A8D9}.StaticRelease|x64.Build.0 = ReleaseLIB|x64\r\n\tEndGlobalSection\r\n\tGlobalSection(SolutionProperties) = preSolution\r\n\t\tHideSolutionNode = FALSE\r\n\tEndGlobalSection\r\nEndGlobal\r\n"
  },
  {
    "path": "builds/msvc/vs2019/libsodium/libsodium.props",
    "content": "﻿<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<Project DefaultTargets=\"Build\" xmlns=\"http://schemas.microsoft.com/developer/msbuild/2003\">\n\n  <PropertyGroup Label=\"Globals\">\n    <_PropertySheetDisplayName>Libsodium Common Settings</_PropertySheetDisplayName>\n    <CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>\n    <RunCodeAnalysis>false</RunCodeAnalysis>\n  </PropertyGroup>\n\n  <!-- User Interface -->\n\n  <ItemGroup Label=\"BuildOptionsExtension\">\n    <PropertyPageSchema Include=\"$(MSBuildThisFileDirectory)$(ProjectName).xml\" />\n  </ItemGroup>\n\n  <!-- Configuration -->\n\n  <ItemDefinitionGroup>\n    <PreBuildEvent>\n      <Command>copy \"$(BuildRoot)version.h\" \"$(RepoRoot)src\\libsodium\\include\\sodium\\\"</Command>\n    </PreBuildEvent>\n    <ClCompile>\n      <AdditionalIncludeDirectories>$(RepoRoot)src\\libsodium\\include;$(RepoRoot)src\\libsodium\\include\\sodium\\;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\n      <DisableSpecificWarnings>4146;4244;%(DisableSpecificWarnings)</DisableSpecificWarnings>\n      <EnablePREfast>false</EnablePREfast>\n      <PreprocessorDefinitions>inline=__inline;NATIVE_LITTLE_ENDIAN;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>\n      <PreprocessorDefinitions Condition=\"'$(ConfigurationType)' == 'StaticLibrary'\">SODIUM_STATIC;%(PreprocessorDefinitions)</PreprocessorDefinitions>\n      <PreprocessorDefinitions Condition=\"'$(ConfigurationType)' == 'DynamicLibrary'\">SODIUM_DLL_EXPORT;%(PreprocessorDefinitions)</PreprocessorDefinitions>\n      <PreprocessorDefinitions Condition=\"'$(Option-amd64asm)' == 'true'\">HAVE_AMD64_ASM;%(PreprocessorDefinitions)</PreprocessorDefinitions>\n    </ClCompile>\n  </ItemDefinitionGroup>\n\n  <!-- Messages -->\n\n  <Target Name=\"CustomInfo\" BeforeTargets=\"PrepareForBuild\">\n    <Message Text=\"Will copy $(BuildRoot)version.h -&gt; $(RepoRoot)src\\libsodium\\include\\sodium\\version.h\" Importance=\"high\"/>\n  </Target>\n\n  <Target Name=\"OptionInfo\" BeforeTargets=\"PrepareForBuild\">\n    <Message Text=\"Option-amd64asm   : $(Option-amd64asm)\" Importance=\"high\"/>\n  </Target>\n\n  <ItemDefinitionGroup>\n    <Link>\n      <AdditionalDependencies>advapi32.lib</AdditionalDependencies>\n    </Link>\n  </ItemDefinitionGroup>\n</Project>\n"
  },
  {
    "path": "builds/msvc/vs2019/libsodium/libsodium.vcxproj",
    "content": "﻿<?xml version=\"1.0\" encoding=\"utf-8\"?>\r\n<Project DefaultTargets=\"Build\" ToolsVersion=\"4.0\"\r\n  xmlns=\"http://schemas.microsoft.com/developer/msbuild/2003\">\r\n  <PropertyGroup Label=\"Globals\">\r\n    <ProjectGuid>{A185B162-6CB6-4502-B03F-B56F7699A8D9}</ProjectGuid>\r\n    <ProjectName>libsodium</ProjectName>\r\n    <PlatformToolset>v142</PlatformToolset>\r\n  </PropertyGroup>\r\n  <ItemGroup Label=\"ProjectConfigurations\">\r\n    <ProjectConfiguration Include=\"DebugDLL|Win32\">\r\n      <Configuration>DebugDLL</Configuration>\r\n      <Platform>Win32</Platform>\r\n    </ProjectConfiguration>\r\n    <ProjectConfiguration Include=\"DebugDLL|x64\">\r\n      <Configuration>DebugDLL</Configuration>\r\n      <Platform>x64</Platform>\r\n    </ProjectConfiguration>\r\n    <ProjectConfiguration Include=\"DebugDLL|ARM64\">\r\n      <Configuration>DebugDLL</Configuration>\r\n      <Platform>ARM64</Platform>\r\n    </ProjectConfiguration>\r\n    <ProjectConfiguration Include=\"ReleaseDLL|Win32\">\r\n      <Configuration>ReleaseDLL</Configuration>\r\n      <Platform>Win32</Platform>\r\n    </ProjectConfiguration>\r\n    <ProjectConfiguration Include=\"ReleaseDLL|x64\">\r\n      <Configuration>ReleaseDLL</Configuration>\r\n      <Platform>x64</Platform>\r\n    </ProjectConfiguration>\r\n    <ProjectConfiguration Include=\"ReleaseDLL|ARM64\">\r\n      <Configuration>ReleaseDLL</Configuration>\r\n      <Platform>ARM64</Platform>\r\n    </ProjectConfiguration>\r\n    <ProjectConfiguration Include=\"DebugLIB|Win32\">\r\n      <Configuration>DebugLIB</Configuration>\r\n      <Platform>Win32</Platform>\r\n    </ProjectConfiguration>\r\n    <ProjectConfiguration Include=\"DebugLIB|x64\">\r\n      <Configuration>DebugLIB</Configuration>\r\n      <Platform>x64</Platform>\r\n    </ProjectConfiguration>\r\n    <ProjectConfiguration Include=\"DebugLIB|ARM64\">\r\n      <Configuration>DebugLIB</Configuration>\r\n      <Platform>ARM64</Platform>\r\n    </ProjectConfiguration>\r\n    <ProjectConfiguration Include=\"ReleaseLIB|Win32\">\r\n      <Configuration>ReleaseLIB</Configuration>\r\n      <Platform>Win32</Platform>\r\n    </ProjectConfiguration>\r\n    <ProjectConfiguration Include=\"ReleaseLIB|x64\">\r\n      <Configuration>ReleaseLIB</Configuration>\r\n      <Platform>x64</Platform>\r\n    </ProjectConfiguration>\r\n    <ProjectConfiguration Include=\"ReleaseLIB|ARM64\">\r\n      <Configuration>ReleaseLIB</Configuration>\r\n      <Platform>ARM64</Platform>\r\n    </ProjectConfiguration>\r\n    <ProjectConfiguration Include=\"DebugLTCG|Win32\">\r\n      <Configuration>DebugLTCG</Configuration>\r\n      <Platform>Win32</Platform>\r\n    </ProjectConfiguration>\r\n    <ProjectConfiguration Include=\"DebugLTCG|x64\">\r\n      <Configuration>DebugLTCG</Configuration>\r\n      <Platform>x64</Platform>\r\n    </ProjectConfiguration>\r\n    <ProjectConfiguration Include=\"DebugLTCG|ARM64\">\r\n      <Configuration>DebugLTCG</Configuration>\r\n      <Platform>ARM64</Platform>\r\n    </ProjectConfiguration>\r\n    <ProjectConfiguration Include=\"ReleaseLTCG|Win32\">\r\n      <Configuration>ReleaseLTCG</Configuration>\r\n      <Platform>Win32</Platform>\r\n    </ProjectConfiguration>\r\n    <ProjectConfiguration Include=\"ReleaseLTCG|x64\">\r\n      <Configuration>ReleaseLTCG</Configuration>\r\n      <Platform>x64</Platform>\r\n    </ProjectConfiguration>\r\n    <ProjectConfiguration Include=\"ReleaseLTCG|ARM64\">\r\n      <Configuration>ReleaseLTCG</Configuration>\r\n      <Platform>ARM64</Platform>\r\n    </ProjectConfiguration>\r\n  </ItemGroup>\r\n  <PropertyGroup Label=\"Configuration\">\r\n    <ConfigurationType Condition=\"$(Configuration.IndexOf('DLL')) == -1\">StaticLibrary</ConfigurationType>\r\n    <ConfigurationType Condition=\"$(Configuration.IndexOf('DLL')) != -1\">DynamicLibrary</ConfigurationType>\r\n  </PropertyGroup>\r\n  <Import Project=\"$(VCTargetsPath)\\Microsoft.Cpp.Default.props\" />\r\n  <Import Project=\"$(VCTargetsPath)\\Microsoft.Cpp.props\" />\r\n  <ImportGroup Label=\"PropertySheets\">\r\n    <Import Project=\"$(ProjectDir)..\\..\\properties\\$(Configuration).props\" />\r\n    <Import Project=\"$(ProjectDir)..\\..\\properties\\Output.props\" />\r\n    <Import Project=\"$(ProjectDir)$(ProjectName).props\" />\r\n  </ImportGroup>\r\n  <ItemGroup>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_generichash\\crypto_generichash.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_generichash\\blake2b\\generichash_blake2.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_generichash\\blake2b\\ref\\blake2b-compress-ref.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_generichash\\blake2b\\ref\\blake2b-compress-ssse3.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_generichash\\blake2b\\ref\\blake2b-compress-avx2.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_generichash\\blake2b\\ref\\blake2b-compress-sse41.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_generichash\\blake2b\\ref\\generichash_blake2b.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_generichash\\blake2b\\ref\\blake2b-ref.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_kx\\crypto_kx.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_sign\\crypto_sign.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_sign\\ed25519\\sign_ed25519.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_sign\\ed25519\\ref10\\sign.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_sign\\ed25519\\ref10\\keypair.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_sign\\ed25519\\ref10\\open.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_secretbox\\crypto_secretbox.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_secretbox\\crypto_secretbox_easy.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_secretbox\\xsalsa20poly1305\\secretbox_xsalsa20poly1305.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_secretbox\\xchacha20poly1305\\secretbox_xchacha20poly1305.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\crypto_pwhash.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\blake2b-long.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\argon2-fill-block-wasm32.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\argon2-core.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\argon2-fill-block-avx512f.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\argon2-fill-block-ref.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\argon2-fill-block-ssse3.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\pwhash_argon2i.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\argon2-fill-block-neon.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\pwhash_argon2id.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\argon2.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\argon2-fill-block-avx2.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\argon2-encoding.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\scryptsalsa208sha256\\scrypt_platform.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\scryptsalsa208sha256\\crypto_scrypt-common.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\scryptsalsa208sha256\\pwhash_scryptsalsa208sha256.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\scryptsalsa208sha256\\pbkdf2-sha256.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\scryptsalsa208sha256\\nosse\\pwhash_scryptsalsa208sha256_nosse.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\scryptsalsa208sha256\\sse\\pwhash_scryptsalsa208sha256_sse.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_xof\\shake128\\xof_shake128.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_xof\\shake128\\ref\\shake128_ref.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_xof\\shake256\\xof_shake256.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_xof\\shake256\\ref\\shake256_ref.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_xof\\turboshake256\\xof_turboshake256.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_xof\\turboshake256\\ref\\turboshake256_ref.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_xof\\turboshake128\\xof_turboshake128.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_xof\\turboshake128\\ref\\turboshake128_ref.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_verify\\verify.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_auth\\crypto_auth.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_auth\\hmacsha512\\auth_hmacsha512.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_auth\\hmacsha512256\\auth_hmacsha512256.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_auth\\hmacsha256\\auth_hmacsha256.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_kdf\\crypto_kdf.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_kdf\\blake2b\\kdf_blake2b.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_kdf\\hkdf\\kdf_hkdf_sha256.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_kdf\\hkdf\\kdf_hkdf_sha512.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_shorthash\\crypto_shorthash.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_shorthash\\siphash24\\shorthash_siphash24.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_shorthash\\siphash24\\shorthash_siphashx24.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_shorthash\\siphash24\\ref\\shorthash_siphashx24_ref.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_shorthash\\siphash24\\ref\\shorthash_siphash24_ref.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_scalarmult\\crypto_scalarmult.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_scalarmult\\ristretto255\\ref10\\scalarmult_ristretto255_ref10.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_scalarmult\\ed25519\\ref10\\scalarmult_ed25519_ref10.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_scalarmult\\curve25519\\scalarmult_curve25519.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_scalarmult\\curve25519\\sandy2x\\curve25519_sandy2x.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_scalarmult\\curve25519\\sandy2x\\fe_frombytes_sandy2x.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_scalarmult\\curve25519\\sandy2x\\fe51_invert.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_scalarmult\\curve25519\\ref10\\x25519_ref10.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_onetimeauth\\crypto_onetimeauth.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_onetimeauth\\poly1305\\onetimeauth_poly1305.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_onetimeauth\\poly1305\\donna\\poly1305_donna.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_onetimeauth\\poly1305\\sse2\\poly1305_sse2.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\randombytes\\randombytes.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\randombytes\\sysrandom\\randombytes_sysrandom.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\randombytes\\internal\\randombytes_internal_random.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_box\\crypto_box_easy.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_box\\crypto_box_seal.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_box\\crypto_box.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_box\\curve25519xsalsa20poly1305\\box_curve25519xsalsa20poly1305.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_box\\curve25519xchacha20poly1305\\box_curve25519xchacha20poly1305.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_box\\curve25519xchacha20poly1305\\box_seal_curve25519xchacha20poly1305.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\sodium\\codecs.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\sodium\\runtime.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\sodium\\core.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\sodium\\utils.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\sodium\\version.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_ipcrypt\\ipcrypt_armcrypto.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_ipcrypt\\crypto_ipcrypt.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_ipcrypt\\ipcrypt_soft.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_ipcrypt\\ipcrypt_aesni.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\crypto_stream.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\xchacha20\\stream_xchacha20.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\chacha20\\stream_chacha20.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\chacha20\\ref\\chacha20_ref.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\chacha20\\dolbeau\\chacha20_dolbeau-avx2.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\chacha20\\dolbeau\\chacha20_dolbeau-ssse3.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\salsa20\\stream_salsa20.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\salsa20\\ref\\salsa20_ref.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\salsa20\\xmm6int\\salsa20_xmm6int-avx2.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\salsa20\\xmm6int\\salsa20_xmm6int-sse2.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\salsa20\\xmm6\\salsa20_xmm6.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\salsa2012\\stream_salsa2012.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\salsa2012\\ref\\stream_salsa2012_ref.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\salsa208\\stream_salsa208.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\salsa208\\ref\\stream_salsa208_ref.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\xsalsa20\\stream_xsalsa20.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_hash\\crypto_hash.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_hash\\sha512\\hash_sha512.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_hash\\sha512\\cp\\hash_sha512_cp.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_hash\\sha3\\hash_sha3.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_hash\\sha256\\hash_sha256.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_hash\\sha256\\cp\\hash_sha256_cp.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_aead\\xchacha20poly1305\\aead_xchacha20poly1305.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_aead\\aegis128l\\aegis128l_soft.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_aead\\aegis128l\\aead_aegis128l.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_aead\\aegis128l\\aegis128l_aesni.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_aead\\aegis128l\\aegis128l_armcrypto.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_aead\\aegis256\\aead_aegis256.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_aead\\aegis256\\aegis256_soft.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_aead\\aegis256\\aegis256_armcrypto.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_aead\\aegis256\\aegis256_aesni.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_aead\\aes256gcm\\aead_aes256gcm.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_aead\\aes256gcm\\aesni\\aead_aes256gcm_aesni.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_aead\\aes256gcm\\armcrypto\\aead_aes256gcm_armcrypto.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_aead\\chacha20poly1305\\aead_chacha20poly1305.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_kem\\crypto_kem.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_kem\\xwing\\kem_xwing.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_kem\\mlkem768\\kem_mlkem768.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_kem\\mlkem768\\ref\\kem_mlkem768_ref.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_secretstream\\xchacha20poly1305\\secretstream_xchacha20poly1305.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_core\\keccak1600\\keccak1600.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_core\\keccak1600\\ref\\keccak1600_ref.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_core\\keccak1600\\armsha3\\keccak1600_armsha3.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_core\\salsa\\ref\\core_salsa_ref.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_core\\hchacha20\\core_hchacha20.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_core\\hsalsa20\\core_hsalsa20.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_core\\hsalsa20\\ref2\\core_hsalsa20_ref2.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_core\\softaes\\softaes.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_core\\ed25519\\core_ed25519.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_core\\ed25519\\core_ristretto255.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_core\\ed25519\\core_h2c.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_core\\ed25519\\ref10\\ed25519_ref10.c\" />\r\n  </ItemGroup>\r\n  <ItemGroup>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_generichash\\blake2b\\ref\\blake2b-load-sse2.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_generichash\\blake2b\\ref\\blake2b-load-avx2.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_generichash\\blake2b\\ref\\blake2.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_generichash\\blake2b\\ref\\blake2b-compress-ssse3.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_generichash\\blake2b\\ref\\blake2b-load-sse41.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_generichash\\blake2b\\ref\\blake2b-compress-avx2.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_generichash\\blake2b\\ref\\blake2b-compress-sse41.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_sign\\ed25519\\ref10\\sign_ed25519_ref10.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_stream_salsa2012.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_auth.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\utils.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_core_hchacha20.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_aead_aegis256.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_hash_sha512.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\core.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\export.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_core_salsa20.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_shorthash_siphash24.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\randombytes.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_hash_sha256.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_stream.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_auth_hmacsha512.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_xof_shake128.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_aead_xchacha20poly1305.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_stream_salsa20.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_onetimeauth_poly1305.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_kem_mlkem768.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_scalarmult_ristretto255.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_kx.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_hash.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_sign.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_kdf.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_auth_hmacsha256.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_box.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_verify_32.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_core_ristretto255.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_stream_xchacha20.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_core_salsa208.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_auth_hmacsha512256.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_xof_turboshake128.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_aead_aegis128l.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_aead_chacha20poly1305.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\randombytes_sysrandom.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_xof_turboshake256.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\runtime.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_stream_salsa208.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_aead_aes256gcm.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_core_salsa2012.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_secretbox_xchacha20poly1305.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_kem.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_core_keccak1600.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_scalarmult.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_pwhash.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_verify_16.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_stream_chacha20.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_stream_xsalsa20.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_core_hsalsa20.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_kdf_blake2b.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_scalarmult_curve25519.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_xof_shake256.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_shorthash.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_kdf_hkdf_sha256.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_pwhash_argon2id.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_secretstream_xchacha20poly1305.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_pwhash_scryptsalsa208sha256.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_hash_sha3.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_kem_xwing.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_sign_ed25519.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_onetimeauth.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_verify_64.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_box_curve25519xchacha20poly1305.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_core_ed25519.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_kdf_hkdf_sha512.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_pwhash_argon2i.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\randombytes_internal_random.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_generichash.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_secretbox_xsalsa20poly1305.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_secretbox.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_scalarmult_ed25519.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_ipcrypt.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_box_curve25519xsalsa20poly1305.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_generichash_blake2b.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\private\\ed25519_ref10.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\private\\softaes.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\private\\quirks.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\private\\ed25519_ref10_fe_25_5.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\private\\ed25519_ref10_fe_51.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\private\\sse2_64_32.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\private\\asm_cet.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\private\\common.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\private\\mutex.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\private\\chacha20_ietf_ext.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\private\\implementations.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\blamka-round-ref.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\blamka-round-avx2.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\blamka-round-neon.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\blamka-round-wasm32.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\argon2.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\blamka-round-ssse3.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\argon2-encoding.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\blake2b-long.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\blamka-round-avx512f.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\argon2-core.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\scryptsalsa208sha256\\crypto_scrypt.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\scryptsalsa208sha256\\pbkdf2-sha256.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_xof\\shake128\\ref\\shake128_ref.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_xof\\shake256\\ref\\shake256_ref.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_xof\\turboshake256\\ref\\turboshake256_ref.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_xof\\turboshake128\\ref\\turboshake128_ref.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_shorthash\\siphash24\\ref\\shorthash_siphash_ref.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_scalarmult\\curve25519\\scalarmult_curve25519.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_scalarmult\\curve25519\\sandy2x\\consts_namespace.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_scalarmult\\curve25519\\sandy2x\\ladder_namespace.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_scalarmult\\curve25519\\sandy2x\\fe.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_scalarmult\\curve25519\\sandy2x\\ladder.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_scalarmult\\curve25519\\sandy2x\\fe51.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_scalarmult\\curve25519\\sandy2x\\curve25519_sandy2x.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_scalarmult\\curve25519\\sandy2x\\fe51_namespace.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_scalarmult\\curve25519\\ref10\\x25519_ref10.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_onetimeauth\\poly1305\\onetimeauth_poly1305.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_onetimeauth\\poly1305\\donna\\poly1305_donna.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_onetimeauth\\poly1305\\donna\\poly1305_donna64.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_onetimeauth\\poly1305\\donna\\poly1305_donna32.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_onetimeauth\\poly1305\\sse2\\poly1305_sse2.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_ipcrypt\\ipcrypt_soft.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_ipcrypt\\ipcrypt_aesni.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_ipcrypt\\ipcrypt_armcrypto.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_ipcrypt\\implementations.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\chacha20\\stream_chacha20.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\chacha20\\ref\\chacha20_ref.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\chacha20\\dolbeau\\u4.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\chacha20\\dolbeau\\chacha20_dolbeau-ssse3.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\chacha20\\dolbeau\\u0.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\chacha20\\dolbeau\\u1.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\chacha20\\dolbeau\\chacha20_dolbeau-avx2.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\chacha20\\dolbeau\\u8.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\salsa20\\stream_salsa20.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\salsa20\\ref\\salsa20_ref.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\salsa20\\xmm6int\\u4.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\salsa20\\xmm6int\\u0.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\salsa20\\xmm6int\\u1.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\salsa20\\xmm6int\\salsa20_xmm6int-avx2.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\salsa20\\xmm6int\\u8.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\salsa20\\xmm6int\\salsa20_xmm6int-sse2.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\salsa20\\xmm6\\salsa20_xmm6-asm_namespace.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\salsa20\\xmm6\\salsa20_xmm6.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_aead\\aegis128l\\aegis128l_armcrypto.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_aead\\aegis128l\\aegis128l_aesni.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_aead\\aegis128l\\aegis128l_soft.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_aead\\aegis128l\\aegis128l_common.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_aead\\aegis128l\\implementations.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_aead\\aegis256\\aegis256_aesni.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_aead\\aegis256\\aegis256_common.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_aead\\aegis256\\implementations.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_aead\\aegis256\\aegis256_armcrypto.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_aead\\aegis256\\aegis256_soft.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_kem\\mlkem768\\ref\\kem_mlkem768_ref.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_core\\keccak1600\\ref\\keccak1600_ref.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_core\\keccak1600\\armsha3\\keccak1600_armsha3.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_core\\ed25519\\core_h2c.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_core\\ed25519\\ref10\\fe_25_5\\constants.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_core\\ed25519\\ref10\\fe_25_5\\fe.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_core\\ed25519\\ref10\\fe_25_5\\base2.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_core\\ed25519\\ref10\\fe_25_5\\base.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_core\\ed25519\\ref10\\fe_51\\constants.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_core\\ed25519\\ref10\\fe_51\\fe.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_core\\ed25519\\ref10\\fe_51\\base2.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_core\\ed25519\\ref10\\fe_51\\base.h\" />\r\n    <ClInclude Include=\"..\\..\\resource.h\" />\r\n  </ItemGroup>\r\n  <ItemGroup>\r\n    <ResourceCompile Include=\"..\\..\\resource.rc\">\r\n    </ResourceCompile>\r\n  </ItemGroup>\r\n  <Import Project=\"$(VCTargetsPath)\\Microsoft.Cpp.targets\" />\r\n  <ImportGroup Label=\"ExtensionTargets\">\r\n  </ImportGroup>\r\n</Project>\r\n"
  },
  {
    "path": "builds/msvc/vs2019/libsodium/libsodium.vcxproj.filters",
    "content": "﻿<?xml version=\"1.0\" encoding=\"utf-8\"?>\r\n<Project ToolsVersion=\"4.0\" xmlns=\"http://schemas.microsoft.com/developer/msbuild/2003\">\r\n  <ItemGroup>\r\n    <None Include=\"..\\..\\..\\..\\packaging\\nuget\\package.bat\">\r\n      <Filter>packaging</Filter>\r\n    </None>\r\n    <None Include=\"..\\..\\..\\..\\packaging\\nuget\\package.gsl\">\r\n      <Filter>packaging</Filter>\r\n    </None>\r\n    <None Include=\"..\\..\\..\\..\\packaging\\nuget\\package.nuspec\">\r\n      <Filter>packaging</Filter>\r\n    </None>\r\n    <None Include=\"..\\..\\..\\..\\packaging\\nuget\\package.targets\">\r\n      <Filter>packaging</Filter>\r\n    </None>\r\n    <None Include=\"..\\..\\..\\..\\packaging\\nuget\\package.config\">\r\n      <Filter>packaging</Filter>\r\n    </None>\r\n    <Xml Include=\"..\\..\\..\\..\\packaging\\nuget\\package.xml\">\r\n      <Filter>packaging</Filter>\r\n    </Xml>\r\n  </ItemGroup>\r\n  <ItemGroup>\r\n    <ResourceCompile Include=\"..\\..\\resource.rc\" />\r\n  </ItemGroup>\r\n  <ItemGroup>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_generichash\\crypto_generichash.c\">\r\n      <Filter>crypto_generichash</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_generichash\\blake2b\\generichash_blake2.c\">\r\n      <Filter>crypto_generichash\\blake2b</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_generichash\\blake2b\\ref\\blake2b-compress-ref.c\">\r\n      <Filter>crypto_generichash\\blake2b\\ref</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_generichash\\blake2b\\ref\\blake2b-compress-ssse3.c\">\r\n      <Filter>crypto_generichash\\blake2b\\ref</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_generichash\\blake2b\\ref\\blake2b-compress-avx2.c\">\r\n      <Filter>crypto_generichash\\blake2b\\ref</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_generichash\\blake2b\\ref\\blake2b-compress-sse41.c\">\r\n      <Filter>crypto_generichash\\blake2b\\ref</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_generichash\\blake2b\\ref\\generichash_blake2b.c\">\r\n      <Filter>crypto_generichash\\blake2b\\ref</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_generichash\\blake2b\\ref\\blake2b-ref.c\">\r\n      <Filter>crypto_generichash\\blake2b\\ref</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_kx\\crypto_kx.c\">\r\n      <Filter>crypto_kx</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_sign\\crypto_sign.c\">\r\n      <Filter>crypto_sign</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_sign\\ed25519\\sign_ed25519.c\">\r\n      <Filter>crypto_sign\\ed25519</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_sign\\ed25519\\ref10\\sign.c\">\r\n      <Filter>crypto_sign\\ed25519\\ref10</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_sign\\ed25519\\ref10\\keypair.c\">\r\n      <Filter>crypto_sign\\ed25519\\ref10</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_sign\\ed25519\\ref10\\open.c\">\r\n      <Filter>crypto_sign\\ed25519\\ref10</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_secretbox\\crypto_secretbox.c\">\r\n      <Filter>crypto_secretbox</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_secretbox\\crypto_secretbox_easy.c\">\r\n      <Filter>crypto_secretbox</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_secretbox\\xsalsa20poly1305\\secretbox_xsalsa20poly1305.c\">\r\n      <Filter>crypto_secretbox\\xsalsa20poly1305</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_secretbox\\xchacha20poly1305\\secretbox_xchacha20poly1305.c\">\r\n      <Filter>crypto_secretbox\\xchacha20poly1305</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\crypto_pwhash.c\">\r\n      <Filter>crypto_pwhash</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\blake2b-long.c\">\r\n      <Filter>crypto_pwhash\\argon2</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\argon2-fill-block-wasm32.c\">\r\n      <Filter>crypto_pwhash\\argon2</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\argon2-core.c\">\r\n      <Filter>crypto_pwhash\\argon2</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\argon2-fill-block-avx512f.c\">\r\n      <Filter>crypto_pwhash\\argon2</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\argon2-fill-block-ref.c\">\r\n      <Filter>crypto_pwhash\\argon2</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\argon2-fill-block-ssse3.c\">\r\n      <Filter>crypto_pwhash\\argon2</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\pwhash_argon2i.c\">\r\n      <Filter>crypto_pwhash\\argon2</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\argon2-fill-block-neon.c\">\r\n      <Filter>crypto_pwhash\\argon2</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\pwhash_argon2id.c\">\r\n      <Filter>crypto_pwhash\\argon2</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\argon2.c\">\r\n      <Filter>crypto_pwhash\\argon2</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\argon2-fill-block-avx2.c\">\r\n      <Filter>crypto_pwhash\\argon2</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\argon2-encoding.c\">\r\n      <Filter>crypto_pwhash\\argon2</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\scryptsalsa208sha256\\scrypt_platform.c\">\r\n      <Filter>crypto_pwhash\\scryptsalsa208sha256</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\scryptsalsa208sha256\\crypto_scrypt-common.c\">\r\n      <Filter>crypto_pwhash\\scryptsalsa208sha256</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\scryptsalsa208sha256\\pwhash_scryptsalsa208sha256.c\">\r\n      <Filter>crypto_pwhash\\scryptsalsa208sha256</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\scryptsalsa208sha256\\pbkdf2-sha256.c\">\r\n      <Filter>crypto_pwhash\\scryptsalsa208sha256</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\scryptsalsa208sha256\\nosse\\pwhash_scryptsalsa208sha256_nosse.c\">\r\n      <Filter>crypto_pwhash\\scryptsalsa208sha256\\nosse</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\scryptsalsa208sha256\\sse\\pwhash_scryptsalsa208sha256_sse.c\">\r\n      <Filter>crypto_pwhash\\scryptsalsa208sha256\\sse</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_xof\\shake128\\xof_shake128.c\">\r\n      <Filter>crypto_xof\\shake128</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_xof\\shake128\\ref\\shake128_ref.c\">\r\n      <Filter>crypto_xof\\shake128\\ref</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_xof\\shake256\\xof_shake256.c\">\r\n      <Filter>crypto_xof\\shake256</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_xof\\shake256\\ref\\shake256_ref.c\">\r\n      <Filter>crypto_xof\\shake256\\ref</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_xof\\turboshake256\\xof_turboshake256.c\">\r\n      <Filter>crypto_xof\\turboshake256</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_xof\\turboshake256\\ref\\turboshake256_ref.c\">\r\n      <Filter>crypto_xof\\turboshake256\\ref</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_xof\\turboshake128\\xof_turboshake128.c\">\r\n      <Filter>crypto_xof\\turboshake128</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_xof\\turboshake128\\ref\\turboshake128_ref.c\">\r\n      <Filter>crypto_xof\\turboshake128\\ref</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_verify\\verify.c\">\r\n      <Filter>crypto_verify</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_auth\\crypto_auth.c\">\r\n      <Filter>crypto_auth</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_auth\\hmacsha512\\auth_hmacsha512.c\">\r\n      <Filter>crypto_auth\\hmacsha512</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_auth\\hmacsha512256\\auth_hmacsha512256.c\">\r\n      <Filter>crypto_auth\\hmacsha512256</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_auth\\hmacsha256\\auth_hmacsha256.c\">\r\n      <Filter>crypto_auth\\hmacsha256</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_kdf\\crypto_kdf.c\">\r\n      <Filter>crypto_kdf</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_kdf\\blake2b\\kdf_blake2b.c\">\r\n      <Filter>crypto_kdf\\blake2b</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_kdf\\hkdf\\kdf_hkdf_sha256.c\">\r\n      <Filter>crypto_kdf\\hkdf</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_kdf\\hkdf\\kdf_hkdf_sha512.c\">\r\n      <Filter>crypto_kdf\\hkdf</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_shorthash\\crypto_shorthash.c\">\r\n      <Filter>crypto_shorthash</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_shorthash\\siphash24\\shorthash_siphash24.c\">\r\n      <Filter>crypto_shorthash\\siphash24</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_shorthash\\siphash24\\shorthash_siphashx24.c\">\r\n      <Filter>crypto_shorthash\\siphash24</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_shorthash\\siphash24\\ref\\shorthash_siphashx24_ref.c\">\r\n      <Filter>crypto_shorthash\\siphash24\\ref</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_shorthash\\siphash24\\ref\\shorthash_siphash24_ref.c\">\r\n      <Filter>crypto_shorthash\\siphash24\\ref</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_scalarmult\\crypto_scalarmult.c\">\r\n      <Filter>crypto_scalarmult</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_scalarmult\\ristretto255\\ref10\\scalarmult_ristretto255_ref10.c\">\r\n      <Filter>crypto_scalarmult\\ristretto255\\ref10</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_scalarmult\\ed25519\\ref10\\scalarmult_ed25519_ref10.c\">\r\n      <Filter>crypto_scalarmult\\ed25519\\ref10</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_scalarmult\\curve25519\\scalarmult_curve25519.c\">\r\n      <Filter>crypto_scalarmult\\curve25519</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_scalarmult\\curve25519\\sandy2x\\curve25519_sandy2x.c\">\r\n      <Filter>crypto_scalarmult\\curve25519\\sandy2x</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_scalarmult\\curve25519\\sandy2x\\fe_frombytes_sandy2x.c\">\r\n      <Filter>crypto_scalarmult\\curve25519\\sandy2x</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_scalarmult\\curve25519\\sandy2x\\fe51_invert.c\">\r\n      <Filter>crypto_scalarmult\\curve25519\\sandy2x</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_scalarmult\\curve25519\\ref10\\x25519_ref10.c\">\r\n      <Filter>crypto_scalarmult\\curve25519\\ref10</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_onetimeauth\\crypto_onetimeauth.c\">\r\n      <Filter>crypto_onetimeauth</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_onetimeauth\\poly1305\\onetimeauth_poly1305.c\">\r\n      <Filter>crypto_onetimeauth\\poly1305</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_onetimeauth\\poly1305\\donna\\poly1305_donna.c\">\r\n      <Filter>crypto_onetimeauth\\poly1305\\donna</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_onetimeauth\\poly1305\\sse2\\poly1305_sse2.c\">\r\n      <Filter>crypto_onetimeauth\\poly1305\\sse2</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\randombytes\\randombytes.c\">\r\n      <Filter>randombytes</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\randombytes\\sysrandom\\randombytes_sysrandom.c\">\r\n      <Filter>randombytes\\sysrandom</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\randombytes\\internal\\randombytes_internal_random.c\">\r\n      <Filter>randombytes\\internal</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_box\\crypto_box_easy.c\">\r\n      <Filter>crypto_box</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_box\\crypto_box_seal.c\">\r\n      <Filter>crypto_box</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_box\\crypto_box.c\">\r\n      <Filter>crypto_box</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_box\\curve25519xsalsa20poly1305\\box_curve25519xsalsa20poly1305.c\">\r\n      <Filter>crypto_box\\curve25519xsalsa20poly1305</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_box\\curve25519xchacha20poly1305\\box_curve25519xchacha20poly1305.c\">\r\n      <Filter>crypto_box\\curve25519xchacha20poly1305</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_box\\curve25519xchacha20poly1305\\box_seal_curve25519xchacha20poly1305.c\">\r\n      <Filter>crypto_box\\curve25519xchacha20poly1305</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\sodium\\codecs.c\">\r\n      <Filter>sodium</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\sodium\\runtime.c\">\r\n      <Filter>sodium</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\sodium\\core.c\">\r\n      <Filter>sodium</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\sodium\\utils.c\">\r\n      <Filter>sodium</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\sodium\\version.c\">\r\n      <Filter>sodium</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_ipcrypt\\ipcrypt_armcrypto.c\">\r\n      <Filter>crypto_ipcrypt</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_ipcrypt\\crypto_ipcrypt.c\">\r\n      <Filter>crypto_ipcrypt</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_ipcrypt\\ipcrypt_soft.c\">\r\n      <Filter>crypto_ipcrypt</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_ipcrypt\\ipcrypt_aesni.c\">\r\n      <Filter>crypto_ipcrypt</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\crypto_stream.c\">\r\n      <Filter>crypto_stream</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\xchacha20\\stream_xchacha20.c\">\r\n      <Filter>crypto_stream\\xchacha20</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\chacha20\\stream_chacha20.c\">\r\n      <Filter>crypto_stream\\chacha20</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\chacha20\\ref\\chacha20_ref.c\">\r\n      <Filter>crypto_stream\\chacha20\\ref</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\chacha20\\dolbeau\\chacha20_dolbeau-avx2.c\">\r\n      <Filter>crypto_stream\\chacha20\\dolbeau</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\chacha20\\dolbeau\\chacha20_dolbeau-ssse3.c\">\r\n      <Filter>crypto_stream\\chacha20\\dolbeau</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\salsa20\\stream_salsa20.c\">\r\n      <Filter>crypto_stream\\salsa20</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\salsa20\\ref\\salsa20_ref.c\">\r\n      <Filter>crypto_stream\\salsa20\\ref</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\salsa20\\xmm6int\\salsa20_xmm6int-avx2.c\">\r\n      <Filter>crypto_stream\\salsa20\\xmm6int</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\salsa20\\xmm6int\\salsa20_xmm6int-sse2.c\">\r\n      <Filter>crypto_stream\\salsa20\\xmm6int</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\salsa20\\xmm6\\salsa20_xmm6.c\">\r\n      <Filter>crypto_stream\\salsa20\\xmm6</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\salsa2012\\stream_salsa2012.c\">\r\n      <Filter>crypto_stream\\salsa2012</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\salsa2012\\ref\\stream_salsa2012_ref.c\">\r\n      <Filter>crypto_stream\\salsa2012\\ref</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\salsa208\\stream_salsa208.c\">\r\n      <Filter>crypto_stream\\salsa208</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\salsa208\\ref\\stream_salsa208_ref.c\">\r\n      <Filter>crypto_stream\\salsa208\\ref</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\xsalsa20\\stream_xsalsa20.c\">\r\n      <Filter>crypto_stream\\xsalsa20</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_hash\\crypto_hash.c\">\r\n      <Filter>crypto_hash</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_hash\\sha512\\hash_sha512.c\">\r\n      <Filter>crypto_hash\\sha512</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_hash\\sha512\\cp\\hash_sha512_cp.c\">\r\n      <Filter>crypto_hash\\sha512\\cp</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_hash\\sha3\\hash_sha3.c\">\r\n      <Filter>crypto_hash\\sha3</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_hash\\sha256\\hash_sha256.c\">\r\n      <Filter>crypto_hash\\sha256</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_hash\\sha256\\cp\\hash_sha256_cp.c\">\r\n      <Filter>crypto_hash\\sha256\\cp</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_aead\\xchacha20poly1305\\aead_xchacha20poly1305.c\">\r\n      <Filter>crypto_aead\\xchacha20poly1305</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_aead\\aegis128l\\aegis128l_soft.c\">\r\n      <Filter>crypto_aead\\aegis128l</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_aead\\aegis128l\\aead_aegis128l.c\">\r\n      <Filter>crypto_aead\\aegis128l</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_aead\\aegis128l\\aegis128l_aesni.c\">\r\n      <Filter>crypto_aead\\aegis128l</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_aead\\aegis128l\\aegis128l_armcrypto.c\">\r\n      <Filter>crypto_aead\\aegis128l</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_aead\\aegis256\\aead_aegis256.c\">\r\n      <Filter>crypto_aead\\aegis256</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_aead\\aegis256\\aegis256_soft.c\">\r\n      <Filter>crypto_aead\\aegis256</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_aead\\aegis256\\aegis256_armcrypto.c\">\r\n      <Filter>crypto_aead\\aegis256</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_aead\\aegis256\\aegis256_aesni.c\">\r\n      <Filter>crypto_aead\\aegis256</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_aead\\aes256gcm\\aead_aes256gcm.c\">\r\n      <Filter>crypto_aead\\aes256gcm</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_aead\\aes256gcm\\aesni\\aead_aes256gcm_aesni.c\">\r\n      <Filter>crypto_aead\\aes256gcm\\aesni</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_aead\\aes256gcm\\armcrypto\\aead_aes256gcm_armcrypto.c\">\r\n      <Filter>crypto_aead\\aes256gcm\\armcrypto</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_aead\\chacha20poly1305\\aead_chacha20poly1305.c\">\r\n      <Filter>crypto_aead\\chacha20poly1305</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_kem\\crypto_kem.c\">\r\n      <Filter>crypto_kem</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_kem\\xwing\\kem_xwing.c\">\r\n      <Filter>crypto_kem\\xwing</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_kem\\mlkem768\\kem_mlkem768.c\">\r\n      <Filter>crypto_kem\\mlkem768</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_kem\\mlkem768\\ref\\kem_mlkem768_ref.c\">\r\n      <Filter>crypto_kem\\mlkem768\\ref</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_secretstream\\xchacha20poly1305\\secretstream_xchacha20poly1305.c\">\r\n      <Filter>crypto_secretstream\\xchacha20poly1305</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_core\\keccak1600\\keccak1600.c\">\r\n      <Filter>crypto_core\\keccak1600</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_core\\keccak1600\\ref\\keccak1600_ref.c\">\r\n      <Filter>crypto_core\\keccak1600\\ref</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_core\\keccak1600\\armsha3\\keccak1600_armsha3.c\">\r\n      <Filter>crypto_core\\keccak1600\\armsha3</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_core\\salsa\\ref\\core_salsa_ref.c\">\r\n      <Filter>crypto_core\\salsa\\ref</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_core\\hchacha20\\core_hchacha20.c\">\r\n      <Filter>crypto_core\\hchacha20</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_core\\hsalsa20\\core_hsalsa20.c\">\r\n      <Filter>crypto_core\\hsalsa20</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_core\\hsalsa20\\ref2\\core_hsalsa20_ref2.c\">\r\n      <Filter>crypto_core\\hsalsa20\\ref2</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_core\\softaes\\softaes.c\">\r\n      <Filter>crypto_core\\softaes</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_core\\ed25519\\core_ed25519.c\">\r\n      <Filter>crypto_core\\ed25519</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_core\\ed25519\\core_ristretto255.c\">\r\n      <Filter>crypto_core\\ed25519</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_core\\ed25519\\core_h2c.c\">\r\n      <Filter>crypto_core\\ed25519</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_core\\ed25519\\ref10\\ed25519_ref10.c\">\r\n      <Filter>crypto_core\\ed25519\\ref10</Filter>\r\n    </ClCompile>\r\n  </ItemGroup>\r\n  <ItemGroup>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_generichash\\blake2b\\ref\\blake2b-load-sse2.h\">\r\n      <Filter>crypto_generichash\\blake2b\\ref</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_generichash\\blake2b\\ref\\blake2b-load-avx2.h\">\r\n      <Filter>crypto_generichash\\blake2b\\ref</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_generichash\\blake2b\\ref\\blake2.h\">\r\n      <Filter>crypto_generichash\\blake2b\\ref</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_generichash\\blake2b\\ref\\blake2b-compress-ssse3.h\">\r\n      <Filter>crypto_generichash\\blake2b\\ref</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_generichash\\blake2b\\ref\\blake2b-load-sse41.h\">\r\n      <Filter>crypto_generichash\\blake2b\\ref</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_generichash\\blake2b\\ref\\blake2b-compress-avx2.h\">\r\n      <Filter>crypto_generichash\\blake2b\\ref</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_generichash\\blake2b\\ref\\blake2b-compress-sse41.h\">\r\n      <Filter>crypto_generichash\\blake2b\\ref</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_sign\\ed25519\\ref10\\sign_ed25519_ref10.h\">\r\n      <Filter>crypto_sign\\ed25519\\ref10</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium.h\">\r\n      <Filter>include</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_stream_salsa2012.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_auth.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\utils.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_core_hchacha20.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_aead_aegis256.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_hash_sha512.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\core.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\export.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_core_salsa20.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_shorthash_siphash24.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\randombytes.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_hash_sha256.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_stream.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_auth_hmacsha512.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_xof_shake128.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_aead_xchacha20poly1305.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_stream_salsa20.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_onetimeauth_poly1305.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_kem_mlkem768.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_scalarmult_ristretto255.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_kx.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_hash.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_sign.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_kdf.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_auth_hmacsha256.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_box.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_verify_32.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_core_ristretto255.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_stream_xchacha20.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_core_salsa208.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_auth_hmacsha512256.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_xof_turboshake128.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_aead_aegis128l.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_aead_chacha20poly1305.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\randombytes_sysrandom.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_xof_turboshake256.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\runtime.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_stream_salsa208.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_aead_aes256gcm.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_core_salsa2012.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_secretbox_xchacha20poly1305.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_kem.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_core_keccak1600.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_scalarmult.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_pwhash.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_verify_16.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_stream_chacha20.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_stream_xsalsa20.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_core_hsalsa20.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_kdf_blake2b.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_scalarmult_curve25519.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_xof_shake256.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_shorthash.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_kdf_hkdf_sha256.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_pwhash_argon2id.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_secretstream_xchacha20poly1305.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_pwhash_scryptsalsa208sha256.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_hash_sha3.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_kem_xwing.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_sign_ed25519.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_onetimeauth.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_verify_64.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_box_curve25519xchacha20poly1305.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_core_ed25519.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_kdf_hkdf_sha512.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_pwhash_argon2i.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\randombytes_internal_random.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_generichash.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_secretbox_xsalsa20poly1305.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_secretbox.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_scalarmult_ed25519.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_ipcrypt.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_box_curve25519xsalsa20poly1305.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_generichash_blake2b.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\private\\ed25519_ref10.h\">\r\n      <Filter>include\\sodium\\private</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\private\\softaes.h\">\r\n      <Filter>include\\sodium\\private</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\private\\quirks.h\">\r\n      <Filter>include\\sodium\\private</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\private\\ed25519_ref10_fe_25_5.h\">\r\n      <Filter>include\\sodium\\private</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\private\\ed25519_ref10_fe_51.h\">\r\n      <Filter>include\\sodium\\private</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\private\\sse2_64_32.h\">\r\n      <Filter>include\\sodium\\private</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\private\\asm_cet.h\">\r\n      <Filter>include\\sodium\\private</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\private\\common.h\">\r\n      <Filter>include\\sodium\\private</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\private\\mutex.h\">\r\n      <Filter>include\\sodium\\private</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\private\\chacha20_ietf_ext.h\">\r\n      <Filter>include\\sodium\\private</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\private\\implementations.h\">\r\n      <Filter>include\\sodium\\private</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\blamka-round-ref.h\">\r\n      <Filter>crypto_pwhash\\argon2</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\blamka-round-avx2.h\">\r\n      <Filter>crypto_pwhash\\argon2</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\blamka-round-neon.h\">\r\n      <Filter>crypto_pwhash\\argon2</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\blamka-round-wasm32.h\">\r\n      <Filter>crypto_pwhash\\argon2</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\argon2.h\">\r\n      <Filter>crypto_pwhash\\argon2</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\blamka-round-ssse3.h\">\r\n      <Filter>crypto_pwhash\\argon2</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\argon2-encoding.h\">\r\n      <Filter>crypto_pwhash\\argon2</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\blake2b-long.h\">\r\n      <Filter>crypto_pwhash\\argon2</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\blamka-round-avx512f.h\">\r\n      <Filter>crypto_pwhash\\argon2</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\argon2-core.h\">\r\n      <Filter>crypto_pwhash\\argon2</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\scryptsalsa208sha256\\crypto_scrypt.h\">\r\n      <Filter>crypto_pwhash\\scryptsalsa208sha256</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\scryptsalsa208sha256\\pbkdf2-sha256.h\">\r\n      <Filter>crypto_pwhash\\scryptsalsa208sha256</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_xof\\shake128\\ref\\shake128_ref.h\">\r\n      <Filter>crypto_xof\\shake128\\ref</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_xof\\shake256\\ref\\shake256_ref.h\">\r\n      <Filter>crypto_xof\\shake256\\ref</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_xof\\turboshake256\\ref\\turboshake256_ref.h\">\r\n      <Filter>crypto_xof\\turboshake256\\ref</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_xof\\turboshake128\\ref\\turboshake128_ref.h\">\r\n      <Filter>crypto_xof\\turboshake128\\ref</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_shorthash\\siphash24\\ref\\shorthash_siphash_ref.h\">\r\n      <Filter>crypto_shorthash\\siphash24\\ref</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_scalarmult\\curve25519\\scalarmult_curve25519.h\">\r\n      <Filter>crypto_scalarmult\\curve25519</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_scalarmult\\curve25519\\sandy2x\\consts_namespace.h\">\r\n      <Filter>crypto_scalarmult\\curve25519\\sandy2x</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_scalarmult\\curve25519\\sandy2x\\ladder_namespace.h\">\r\n      <Filter>crypto_scalarmult\\curve25519\\sandy2x</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_scalarmult\\curve25519\\sandy2x\\fe.h\">\r\n      <Filter>crypto_scalarmult\\curve25519\\sandy2x</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_scalarmult\\curve25519\\sandy2x\\ladder.h\">\r\n      <Filter>crypto_scalarmult\\curve25519\\sandy2x</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_scalarmult\\curve25519\\sandy2x\\fe51.h\">\r\n      <Filter>crypto_scalarmult\\curve25519\\sandy2x</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_scalarmult\\curve25519\\sandy2x\\curve25519_sandy2x.h\">\r\n      <Filter>crypto_scalarmult\\curve25519\\sandy2x</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_scalarmult\\curve25519\\sandy2x\\fe51_namespace.h\">\r\n      <Filter>crypto_scalarmult\\curve25519\\sandy2x</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_scalarmult\\curve25519\\ref10\\x25519_ref10.h\">\r\n      <Filter>crypto_scalarmult\\curve25519\\ref10</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_onetimeauth\\poly1305\\onetimeauth_poly1305.h\">\r\n      <Filter>crypto_onetimeauth\\poly1305</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_onetimeauth\\poly1305\\donna\\poly1305_donna.h\">\r\n      <Filter>crypto_onetimeauth\\poly1305\\donna</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_onetimeauth\\poly1305\\donna\\poly1305_donna64.h\">\r\n      <Filter>crypto_onetimeauth\\poly1305\\donna</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_onetimeauth\\poly1305\\donna\\poly1305_donna32.h\">\r\n      <Filter>crypto_onetimeauth\\poly1305\\donna</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_onetimeauth\\poly1305\\sse2\\poly1305_sse2.h\">\r\n      <Filter>crypto_onetimeauth\\poly1305\\sse2</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_ipcrypt\\ipcrypt_soft.h\">\r\n      <Filter>crypto_ipcrypt</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_ipcrypt\\ipcrypt_aesni.h\">\r\n      <Filter>crypto_ipcrypt</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_ipcrypt\\ipcrypt_armcrypto.h\">\r\n      <Filter>crypto_ipcrypt</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_ipcrypt\\implementations.h\">\r\n      <Filter>crypto_ipcrypt</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\chacha20\\stream_chacha20.h\">\r\n      <Filter>crypto_stream\\chacha20</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\chacha20\\ref\\chacha20_ref.h\">\r\n      <Filter>crypto_stream\\chacha20\\ref</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\chacha20\\dolbeau\\u4.h\">\r\n      <Filter>crypto_stream\\chacha20\\dolbeau</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\chacha20\\dolbeau\\chacha20_dolbeau-ssse3.h\">\r\n      <Filter>crypto_stream\\chacha20\\dolbeau</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\chacha20\\dolbeau\\u0.h\">\r\n      <Filter>crypto_stream\\chacha20\\dolbeau</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\chacha20\\dolbeau\\u1.h\">\r\n      <Filter>crypto_stream\\chacha20\\dolbeau</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\chacha20\\dolbeau\\chacha20_dolbeau-avx2.h\">\r\n      <Filter>crypto_stream\\chacha20\\dolbeau</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\chacha20\\dolbeau\\u8.h\">\r\n      <Filter>crypto_stream\\chacha20\\dolbeau</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\salsa20\\stream_salsa20.h\">\r\n      <Filter>crypto_stream\\salsa20</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\salsa20\\ref\\salsa20_ref.h\">\r\n      <Filter>crypto_stream\\salsa20\\ref</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\salsa20\\xmm6int\\u4.h\">\r\n      <Filter>crypto_stream\\salsa20\\xmm6int</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\salsa20\\xmm6int\\u0.h\">\r\n      <Filter>crypto_stream\\salsa20\\xmm6int</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\salsa20\\xmm6int\\u1.h\">\r\n      <Filter>crypto_stream\\salsa20\\xmm6int</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\salsa20\\xmm6int\\salsa20_xmm6int-avx2.h\">\r\n      <Filter>crypto_stream\\salsa20\\xmm6int</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\salsa20\\xmm6int\\u8.h\">\r\n      <Filter>crypto_stream\\salsa20\\xmm6int</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\salsa20\\xmm6int\\salsa20_xmm6int-sse2.h\">\r\n      <Filter>crypto_stream\\salsa20\\xmm6int</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\salsa20\\xmm6\\salsa20_xmm6-asm_namespace.h\">\r\n      <Filter>crypto_stream\\salsa20\\xmm6</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\salsa20\\xmm6\\salsa20_xmm6.h\">\r\n      <Filter>crypto_stream\\salsa20\\xmm6</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_aead\\aegis128l\\aegis128l_armcrypto.h\">\r\n      <Filter>crypto_aead\\aegis128l</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_aead\\aegis128l\\aegis128l_aesni.h\">\r\n      <Filter>crypto_aead\\aegis128l</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_aead\\aegis128l\\aegis128l_soft.h\">\r\n      <Filter>crypto_aead\\aegis128l</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_aead\\aegis128l\\aegis128l_common.h\">\r\n      <Filter>crypto_aead\\aegis128l</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_aead\\aegis128l\\implementations.h\">\r\n      <Filter>crypto_aead\\aegis128l</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_aead\\aegis256\\aegis256_aesni.h\">\r\n      <Filter>crypto_aead\\aegis256</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_aead\\aegis256\\aegis256_common.h\">\r\n      <Filter>crypto_aead\\aegis256</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_aead\\aegis256\\implementations.h\">\r\n      <Filter>crypto_aead\\aegis256</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_aead\\aegis256\\aegis256_armcrypto.h\">\r\n      <Filter>crypto_aead\\aegis256</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_aead\\aegis256\\aegis256_soft.h\">\r\n      <Filter>crypto_aead\\aegis256</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_kem\\mlkem768\\ref\\kem_mlkem768_ref.h\">\r\n      <Filter>crypto_kem\\mlkem768\\ref</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_core\\keccak1600\\ref\\keccak1600_ref.h\">\r\n      <Filter>crypto_core\\keccak1600\\ref</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_core\\keccak1600\\armsha3\\keccak1600_armsha3.h\">\r\n      <Filter>crypto_core\\keccak1600\\armsha3</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_core\\ed25519\\core_h2c.h\">\r\n      <Filter>crypto_core\\ed25519</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_core\\ed25519\\ref10\\fe_25_5\\constants.h\">\r\n      <Filter>crypto_core\\ed25519\\ref10\\fe_25_5</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_core\\ed25519\\ref10\\fe_25_5\\fe.h\">\r\n      <Filter>crypto_core\\ed25519\\ref10\\fe_25_5</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_core\\ed25519\\ref10\\fe_25_5\\base2.h\">\r\n      <Filter>crypto_core\\ed25519\\ref10\\fe_25_5</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_core\\ed25519\\ref10\\fe_25_5\\base.h\">\r\n      <Filter>crypto_core\\ed25519\\ref10\\fe_25_5</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_core\\ed25519\\ref10\\fe_51\\constants.h\">\r\n      <Filter>crypto_core\\ed25519\\ref10\\fe_51</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_core\\ed25519\\ref10\\fe_51\\fe.h\">\r\n      <Filter>crypto_core\\ed25519\\ref10\\fe_51</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_core\\ed25519\\ref10\\fe_51\\base2.h\">\r\n      <Filter>crypto_core\\ed25519\\ref10\\fe_51</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_core\\ed25519\\ref10\\fe_51\\base.h\">\r\n      <Filter>crypto_core\\ed25519\\ref10\\fe_51</Filter>\r\n    </ClInclude>\r\n  </ItemGroup>\r\n  <ItemGroup>\r\n    <Filter Include=\"crypto_aead\">\r\n      <UniqueIdentifier>{a6837e41-3751-38c9-bb90-dd59d5f4af7b}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_aead\\aegis128l\">\r\n      <UniqueIdentifier>{9e2a023d-fef1-3231-90ba-9a0ffc9bc9ab}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_aead\\aegis256\">\r\n      <UniqueIdentifier>{6897a4cc-0091-3970-b712-c0ac75c16b67}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_aead\\aes256gcm\">\r\n      <UniqueIdentifier>{3e53394c-b59c-30cc-ae69-a4f46f9edfa3}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_aead\\aes256gcm\\aesni\">\r\n      <UniqueIdentifier>{7eb51140-a50f-3f50-b379-83677a82496c}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_aead\\aes256gcm\\armcrypto\">\r\n      <UniqueIdentifier>{507bb9aa-b65c-3034-946b-bcd375b7deaa}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_aead\\chacha20poly1305\">\r\n      <UniqueIdentifier>{1f4d6dd1-517f-3eeb-b974-2304ada5e67a}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_aead\\xchacha20poly1305\">\r\n      <UniqueIdentifier>{3122f223-e6c2-3ab1-ad85-ca289b47419e}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_auth\">\r\n      <UniqueIdentifier>{0a3af0f3-56f7-3551-a64e-6284feccc423}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_auth\\hmacsha256\">\r\n      <UniqueIdentifier>{64e89b4f-eec9-38c9-90f2-4881bf5e84c0}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_auth\\hmacsha512\">\r\n      <UniqueIdentifier>{0c0b4001-ae11-3d0f-8e73-75ac9b6e1ae8}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_auth\\hmacsha512256\">\r\n      <UniqueIdentifier>{f5065d74-beda-3e1e-819a-f606279c7fe9}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_box\">\r\n      <UniqueIdentifier>{f7aedb93-94a6-3ede-9374-ff41daca4841}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_box\\curve25519xchacha20poly1305\">\r\n      <UniqueIdentifier>{0e7473c9-9c69-36b3-ab6c-d953647a15a6}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_box\\curve25519xsalsa20poly1305\">\r\n      <UniqueIdentifier>{d75db64c-eb08-3f10-9b99-1b6e6827f348}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_core\">\r\n      <UniqueIdentifier>{73194d5d-588a-342f-bee6-f28b4486f20b}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_core\\ed25519\">\r\n      <UniqueIdentifier>{7c5e6f81-e4ce-3018-a776-a1f125072d73}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_core\\ed25519\\ref10\">\r\n      <UniqueIdentifier>{76990c08-d692-367f-b286-c728a8cad6bf}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_core\\ed25519\\ref10\\fe_25_5\">\r\n      <UniqueIdentifier>{bf04f786-7862-3bde-aeba-ed82ee59ca22}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_core\\ed25519\\ref10\\fe_51\">\r\n      <UniqueIdentifier>{98b6126a-3725-3707-a4cc-ff3af657cba0}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_core\\hchacha20\">\r\n      <UniqueIdentifier>{8b704d11-af1f-30c0-9981-479da6d88dc3}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_core\\hsalsa20\">\r\n      <UniqueIdentifier>{342e684b-4e18-311c-953c-8391a544a04f}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_core\\hsalsa20\\ref2\">\r\n      <UniqueIdentifier>{c6b8e28c-7c54-3af7-bee3-2948ba7b2082}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_core\\keccak1600\">\r\n      <UniqueIdentifier>{85c1722f-2d65-30a8-aefb-ebf1cbfe185e}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_core\\keccak1600\\armsha3\">\r\n      <UniqueIdentifier>{855cc78f-1fe0-3ad2-a2ac-5e2b0c01c235}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_core\\keccak1600\\ref\">\r\n      <UniqueIdentifier>{9462f285-fee0-3779-983b-2811dc621f7d}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_core\\salsa\">\r\n      <UniqueIdentifier>{4e9a1d6b-ee07-3bbc-ad78-6d0ba0e6d9d3}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_core\\salsa\\ref\">\r\n      <UniqueIdentifier>{eb259fd9-56f0-32db-a903-6bc1549a7326}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_core\\softaes\">\r\n      <UniqueIdentifier>{05997596-e3d7-3bf1-ad4d-39e4c5fd56f6}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_generichash\">\r\n      <UniqueIdentifier>{e53b6258-fcdd-34c8-96c5-44510a34a390}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_generichash\\blake2b\">\r\n      <UniqueIdentifier>{8bd3b558-2d08-3c3a-81ca-22677dde943b}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_generichash\\blake2b\\ref\">\r\n      <UniqueIdentifier>{16a8dd41-b0ab-39a7-80c8-3052d8b63811}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_hash\">\r\n      <UniqueIdentifier>{d7ec3690-bae7-3653-8c53-66a3142cfcfa}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_hash\\sha256\">\r\n      <UniqueIdentifier>{722ef422-8c03-3008-ba2a-3a7e91c6647c}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_hash\\sha256\\cp\">\r\n      <UniqueIdentifier>{8c7d8b62-7b4f-3eb9-85b7-18e8d925be14}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_hash\\sha3\">\r\n      <UniqueIdentifier>{6df763e3-9707-3014-8cfe-2f9a8a83a872}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_hash\\sha512\">\r\n      <UniqueIdentifier>{8fb6a906-dbd6-3746-9b0f-f49e7028daec}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_hash\\sha512\\cp\">\r\n      <UniqueIdentifier>{f2d6a22b-dd67-3561-90a4-88696169cb7b}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_ipcrypt\">\r\n      <UniqueIdentifier>{5c3b1fe7-203f-36fd-bca5-8d0c4b466d80}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_kdf\">\r\n      <UniqueIdentifier>{aaf59186-1c0d-33cf-a34d-93e14bb87226}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_kdf\\blake2b\">\r\n      <UniqueIdentifier>{3d42d2a2-b192-33dd-9162-508916414707}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_kdf\\hkdf\">\r\n      <UniqueIdentifier>{baf7d894-9298-391d-8dc2-e4c3010f5ddc}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_kem\">\r\n      <UniqueIdentifier>{b9009d4a-dd97-341d-aafb-eeeb77191a49}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_kem\\mlkem768\">\r\n      <UniqueIdentifier>{ab0c8a55-3e1f-307e-82be-8291a3b43735}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_kem\\mlkem768\\ref\">\r\n      <UniqueIdentifier>{70a10765-f8fb-3898-8514-966e48719bc4}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_kem\\xwing\">\r\n      <UniqueIdentifier>{2ef7c851-6598-3be5-88be-9ac5ec867cb0}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_kx\">\r\n      <UniqueIdentifier>{898b6bd5-1360-3a34-adcd-0fade7561685}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_onetimeauth\">\r\n      <UniqueIdentifier>{323c0a15-3c1d-39b2-9ec1-299deb299497}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_onetimeauth\\poly1305\">\r\n      <UniqueIdentifier>{52c2080d-37c0-34c2-864a-c201c728e5d8}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_onetimeauth\\poly1305\\donna\">\r\n      <UniqueIdentifier>{ff618a41-caeb-3a18-ad36-d34b049a8f50}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_onetimeauth\\poly1305\\sse2\">\r\n      <UniqueIdentifier>{ffc3712d-dfe0-3b51-8257-f5ffc9c9cea3}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_pwhash\">\r\n      <UniqueIdentifier>{f54b65b6-71cf-3ab3-9c8c-f89c81846836}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_pwhash\\argon2\">\r\n      <UniqueIdentifier>{1bd97a78-befa-3805-8e9c-80d7c1aff37b}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_pwhash\\scryptsalsa208sha256\">\r\n      <UniqueIdentifier>{e785f104-1212-37bf-8511-cc518b9ace66}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_pwhash\\scryptsalsa208sha256\\nosse\">\r\n      <UniqueIdentifier>{447b993f-59fb-3efd-8c59-a1712c97dfe8}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_pwhash\\scryptsalsa208sha256\\sse\">\r\n      <UniqueIdentifier>{cdb8d233-06b0-3872-a62b-c1ccf4cb4314}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_scalarmult\">\r\n      <UniqueIdentifier>{402a1c5a-d499-333a-a2fa-acd0e6a3c2b2}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_scalarmult\\curve25519\">\r\n      <UniqueIdentifier>{77f5a2e9-2ef1-3a72-b63c-88e8e4b92678}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_scalarmult\\curve25519\\ref10\">\r\n      <UniqueIdentifier>{6c9c7c30-0808-3fad-8a88-944d7645e5d5}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_scalarmult\\curve25519\\sandy2x\">\r\n      <UniqueIdentifier>{5d2fb1a2-f063-32db-a81a-41f79e36fd23}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_scalarmult\\ed25519\">\r\n      <UniqueIdentifier>{7bec6074-fbc7-330b-9e18-7dc3e868569a}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_scalarmult\\ed25519\\ref10\">\r\n      <UniqueIdentifier>{834d4827-81e4-3de3-baa1-a216763f11d6}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_scalarmult\\ristretto255\">\r\n      <UniqueIdentifier>{52bf28eb-7ffd-399a-be35-0df3e8e99c15}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_scalarmult\\ristretto255\\ref10\">\r\n      <UniqueIdentifier>{39cc576f-4b54-3d71-b14c-27445bc4b138}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_secretbox\">\r\n      <UniqueIdentifier>{b9b02bee-5c1f-36d2-b97d-983f865a4cc6}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_secretbox\\xchacha20poly1305\">\r\n      <UniqueIdentifier>{41f1f35b-4639-3424-be85-7dfba02f3c5e}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_secretbox\\xsalsa20poly1305\">\r\n      <UniqueIdentifier>{8bf11d29-2f5a-3f10-8ae6-82229d19c5b0}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_secretstream\">\r\n      <UniqueIdentifier>{62f7ae38-4ce6-3976-acc3-47c462db4fbe}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_secretstream\\xchacha20poly1305\">\r\n      <UniqueIdentifier>{e07a28cd-775a-3798-bfdb-97842d3614d6}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_shorthash\">\r\n      <UniqueIdentifier>{bb073c16-adc8-3cff-80b9-99cf5a28de6c}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_shorthash\\siphash24\">\r\n      <UniqueIdentifier>{63de0ec8-ecde-35e3-8b97-6e9e4da342ee}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_shorthash\\siphash24\\ref\">\r\n      <UniqueIdentifier>{29925210-53eb-342c-8527-7ebc173e668f}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_sign\">\r\n      <UniqueIdentifier>{b2f989b6-87a6-3388-a35c-2d0d59cb4236}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_sign\\ed25519\">\r\n      <UniqueIdentifier>{bc6466a1-57b0-3a35-9973-ad488a4bef8c}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_sign\\ed25519\\ref10\">\r\n      <UniqueIdentifier>{5599d9ab-b5b2-3310-b541-ae0fb70eecf1}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_stream\">\r\n      <UniqueIdentifier>{eaedd08a-46f8-3d12-9e8d-bb3ee3ead5f6}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_stream\\chacha20\">\r\n      <UniqueIdentifier>{806b6ff3-578b-308a-a359-0f5ed8472ecc}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_stream\\chacha20\\dolbeau\">\r\n      <UniqueIdentifier>{5a1d852e-67bb-3dc1-9ec5-99ef74b7faca}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_stream\\chacha20\\ref\">\r\n      <UniqueIdentifier>{33e45d9c-e12a-3e76-9ef2-4f5510244a5b}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_stream\\salsa20\">\r\n      <UniqueIdentifier>{048ba2a8-b22b-346c-9886-668b63c88c68}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_stream\\salsa20\\ref\">\r\n      <UniqueIdentifier>{f08a312f-f8a3-350b-87ab-1f79d33e513f}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_stream\\salsa20\\xmm6\">\r\n      <UniqueIdentifier>{c403f690-cd22-3ed4-9cc7-3f46e73081fd}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_stream\\salsa20\\xmm6int\">\r\n      <UniqueIdentifier>{c34d03f5-cf47-39fe-a5ad-5eb917006203}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_stream\\salsa2012\">\r\n      <UniqueIdentifier>{4da0c5ca-33d1-34e0-9689-12e69ae2dbd6}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_stream\\salsa2012\\ref\">\r\n      <UniqueIdentifier>{dd6b294c-5871-386c-92ec-aa46fcc411d4}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_stream\\salsa208\">\r\n      <UniqueIdentifier>{07aca978-0547-329a-b70b-29aa579cacc5}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_stream\\salsa208\\ref\">\r\n      <UniqueIdentifier>{f171fa05-35c4-32a0-b035-b5d6680ab714}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_stream\\xchacha20\">\r\n      <UniqueIdentifier>{ede2279c-1ba7-3d62-8345-733c6c1965e7}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_stream\\xsalsa20\">\r\n      <UniqueIdentifier>{9c15151b-10dc-3dfe-b97b-a7d8c6b58920}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_verify\">\r\n      <UniqueIdentifier>{49fb9272-ffe2-3993-b562-b19d5f2c9b40}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_xof\">\r\n      <UniqueIdentifier>{9d0b6e6c-57a5-33bb-a67c-c1ce5a5e0684}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_xof\\shake128\">\r\n      <UniqueIdentifier>{3311f765-9a5b-3614-a24f-9b97a56240aa}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_xof\\shake128\\ref\">\r\n      <UniqueIdentifier>{0b3ce98f-5f0a-3836-a95f-5ebd938a0e15}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_xof\\shake256\">\r\n      <UniqueIdentifier>{d4f668ef-b456-369e-b8bf-b1b6d4e90a6d}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_xof\\shake256\\ref\">\r\n      <UniqueIdentifier>{c5174d81-c82a-3411-98f7-829a427faddc}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_xof\\turboshake128\">\r\n      <UniqueIdentifier>{6ccaee32-fd4e-3b58-be6b-a2866132d22d}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_xof\\turboshake128\\ref\">\r\n      <UniqueIdentifier>{00e8736b-cf8d-3a60-bfbe-f0c535d45696}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_xof\\turboshake256\">\r\n      <UniqueIdentifier>{8f7b92bd-0b08-3b14-8693-2df66b256d8b}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_xof\\turboshake256\\ref\">\r\n      <UniqueIdentifier>{bcea4d5e-5593-3465-ac95-2ecd34340ce3}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"include\">\r\n      <UniqueIdentifier>{96da72eb-3aa0-3850-83eb-32788f91e5bd}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"include\\sodium\">\r\n      <UniqueIdentifier>{56bb40fc-d381-3a9e-925b-681774c48dde}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"include\\sodium\\private\">\r\n      <UniqueIdentifier>{fde88485-0fe6-3b22-9480-1d2b49fade53}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"randombytes\">\r\n      <UniqueIdentifier>{ef090484-4db4-3dc2-aca7-c59bab1db23b}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"randombytes\\internal\">\r\n      <UniqueIdentifier>{14c126fd-bb91-37ea-b807-b60c386be601}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"randombytes\\sysrandom\">\r\n      <UniqueIdentifier>{ac56c38f-7e17-3b79-bf47-58e9476b3b89}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"sodium\">\r\n      <UniqueIdentifier>{5dfc520b-f690-3d5f-a86a-8b667f2e7490}</UniqueIdentifier>\r\n    </Filter>\r\n  </ItemGroup>\r\n</Project>\r\n"
  },
  {
    "path": "builds/msvc/vs2019/libsodium/libsodium.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<ProjectSchemaDefinitions xmlns=\"clr-namespace:Microsoft.Build.Framework.XamlTypes;assembly=Microsoft.Build.Framework\">\n  <Rule Name=\"libsodium-uiextension\" PageTemplate=\"tool\" DisplayName=\"Sodium Options\" SwitchPrefix=\"/\" Order=\"1\">\n    <Rule.Categories>\n      <Category Name=\"amd64asm\" DisplayName=\"amd64asm\" />\n    </Rule.Categories>\n    <Rule.DataSource>\n      <DataSource Persistence=\"ProjectFile\" ItemType=\"\" />\n    </Rule.DataSource>\n    <EnumProperty Name=\"Option-amd64asm\" DisplayName=\"Enable AMD64 Assembly\" Description=\"Enable the AMD64 Assembly build option\" Category=\"amd64asm\">\n      <EnumValue Name=\"\" DisplayName=\"No\" />\n      <EnumValue Name=\"true\" DisplayName=\"Yes\" />\n    </EnumProperty>\n  </Rule>\n</ProjectSchemaDefinitions>"
  },
  {
    "path": "builds/msvc/vs2019/libsodium.import.props",
    "content": "﻿<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<Project DefaultTargets=\"Build\" xmlns=\"http://schemas.microsoft.com/developer/msbuild/2003\">\n\n  <PropertyGroup Label=\"Globals\">\n    <_PropertySheetDisplayName>Libsodium Import Settings</_PropertySheetDisplayName>\n  </PropertyGroup>\n\n  <!-- User Interface -->\n\n  <ItemGroup Label=\"BuildOptionsExtension\">\n    <PropertyPageSchema Include=\"$(MSBuildThisFileDirectory)libsodium.import.xml\" />\n  </ItemGroup>\n\n  <!-- Linkage -->\n\n  <ItemDefinitionGroup>\n    <ClCompile>\n      <AdditionalIncludeDirectories>$(ProjectDir)..\\..\\..\\..\\..\\libsodium\\src\\libsodium\\include;$(ProjectDir)..\\..\\..\\..\\..\\libsodium\\src\\libsodium\\include\\sodium\\;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\n      <PreprocessorDefinitions Condition=\"'$(Linkage-libsodium)' == 'static' Or '$(Linkage-libsodium)' == 'ltcg'\">SODIUM_STATIC;%(PreprocessorDefinitions)</PreprocessorDefinitions>\n    </ClCompile>\n    <Link>\n      <AdditionalDependencies Condition=\"'$(Linkage-libsodium)' != ''\">advapi32.lib;libsodium.lib;%(AdditionalDependencies)</AdditionalDependencies>\n      <AdditionalLibraryDirectories Condition=\"$(Configuration.IndexOf('Debug')) != -1\">$(ProjectDir)..\\..\\..\\..\\..\\libsodium\\bin\\$(PlatformName)\\Debug\\$(PlatformToolset)\\$(Linkage-libsodium)\\;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>\n      <AdditionalLibraryDirectories Condition=\"$(Configuration.IndexOf('Release')) != -1\">$(ProjectDir)..\\..\\..\\..\\..\\libsodium\\bin\\$(PlatformName)\\Release\\$(PlatformToolset)\\$(Linkage-libsodium)\\;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>\n    </Link>\n  </ItemDefinitionGroup>\n\n  <!-- Copy -->\n\n  <Target Name=\"Linkage-libsodium-dynamic\" AfterTargets=\"AfterBuild\" Condition=\"'$(Linkage-libsodium)' == 'dynamic'\">\n    <Copy Condition=\"$(Configuration.IndexOf('Debug')) != -1\"\n          SourceFiles=\"$(ProjectDir)..\\..\\..\\..\\..\\libsodium\\bin\\$(PlatformName)\\Debug\\$(PlatformToolset)\\dynamic\\libsodium.dll\"\n          DestinationFiles=\"$(TargetDir)libsodium.dll\"\n          SkipUnchangedFiles=\"true\" />\n    <Copy Condition=\"$(Configuration.IndexOf('Debug')) != -1\"\n          SourceFiles=\"$(ProjectDir)..\\..\\..\\..\\..\\libsodium\\bin\\$(PlatformName)\\Debug\\$(PlatformToolset)\\dynamic\\libsodium.pdb\"\n          DestinationFiles=\"$(TargetDir)libsodium.pdb\"\n          SkipUnchangedFiles=\"true\" />\n    <Copy Condition=\"$(Configuration.IndexOf('Release')) != -1\"\n          SourceFiles=\"$(ProjectDir)..\\..\\..\\..\\..\\libsodium\\bin\\$(PlatformName)\\Release\\$(PlatformToolset)\\dynamic\\libsodium.dll\"\n          DestinationFiles=\"$(TargetDir)libsodium.dll\"\n          SkipUnchangedFiles=\"true\" />\n  </Target>\n\n  <!-- Messages -->\n\n  <Target Name=\"libsodium-info\" BeforeTargets=\"AfterBuild\" Condition=\"'$(Linkage-libsodium)' == 'dynamic'\">\n    <Message Text=\"Copying libsodium.dll -&gt; $(TargetDir)libsodium.dll\" Importance=\"high\"/>\n    <Message Text=\"Copying libsodium.pdb -&gt; $(TargetDir)libsodium.pdb\" Importance=\"high\" Condition=\"$(Configuration.IndexOf('Debug')) != -1\" />\n  </Target>\n\n</Project>"
  },
  {
    "path": "builds/msvc/vs2019/libsodium.import.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<ProjectSchemaDefinitions xmlns=\"clr-namespace:Microsoft.Build.Framework.XamlTypes;assembly=Microsoft.Build.Framework\">\n  <Rule Name=\"libsodium-linkage-uiextension\" PageTemplate=\"tool\" DisplayName=\"Local Dependencies\" SwitchPrefix=\"/\" Order=\"1\">\n    <Rule.Categories>\n      <Category Name=\"libsodium\" DisplayName=\"libsodium\" />\n    </Rule.Categories>\n    <Rule.DataSource>\n      <DataSource Persistence=\"ProjectFile\" ItemType=\"\" />\n    </Rule.DataSource>\n    <EnumProperty Name=\"Linkage-libsodium\" DisplayName=\"Linkage\" Description=\"How libsodium will be linked into the output of this project\" Category=\"libsodium\">\n      <EnumValue Name=\"\" DisplayName=\"Not linked\" />\n      <EnumValue Name=\"dynamic\" DisplayName=\"Dynamic (DLL)\" />\n      <EnumValue Name=\"static\" DisplayName=\"Static (LIB)\" />\n      <EnumValue Name=\"ltcg\" DisplayName=\"Static using link time compile generation (LTCG)\" />\n    </EnumProperty>\n  </Rule>\n</ProjectSchemaDefinitions>"
  },
  {
    "path": "builds/msvc/vs2019/libsodium.sln",
    "content": "﻿\r\nMicrosoft Visual Studio Solution File, Format Version 12.00\r\n# Visual Studio 15\r\nVisualStudioVersion = 15.0.26228.4\r\nMinimumVisualStudioVersion = 10.0.40219.1\r\nProject(\"{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}\") = \"libsodium\", \"libsodium\\libsodium.vcxproj\", \"{A185B162-6CB6-4502-B03F-B56F7699A8D9}\"\r\nEndProject\r\nGlobal\r\n\tGlobalSection(SolutionConfigurationPlatforms) = preSolution\r\n\t\tDynDebug|Win32 = DynDebug|Win32\r\n\t\tDynDebug|x64 = DynDebug|x64\r\n\t\tDynRelease|Win32 = DynRelease|Win32\r\n\t\tDynRelease|x64 = DynRelease|x64\r\n\t\tLtcgDebug|Win32 = LtcgDebug|Win32\r\n\t\tLtcgDebug|x64 = LtcgDebug|x64\r\n\t\tLtcgRelease|Win32 = LtcgRelease|Win32\r\n\t\tLtcgRelease|x64 = LtcgRelease|x64\r\n\t\tStaticDebug|Win32 = StaticDebug|Win32\r\n\t\tStaticDebug|x64 = StaticDebug|x64\r\n\t\tStaticRelease|Win32 = StaticRelease|Win32\r\n\t\tStaticRelease|x64 = StaticRelease|x64\r\n\tEndGlobalSection\r\n\tGlobalSection(ProjectConfigurationPlatforms) = postSolution\r\n\t\t{A185B162-6CB6-4502-B03F-B56F7699A8D9}.DynDebug|Win32.ActiveCfg = DebugDLL|Win32\r\n\t\t{A185B162-6CB6-4502-B03F-B56F7699A8D9}.DynDebug|Win32.Build.0 = DebugDLL|Win32\r\n\t\t{A185B162-6CB6-4502-B03F-B56F7699A8D9}.DynDebug|x64.ActiveCfg = DebugDLL|x64\r\n\t\t{A185B162-6CB6-4502-B03F-B56F7699A8D9}.DynDebug|x64.Build.0 = DebugDLL|x64\r\n\t\t{A185B162-6CB6-4502-B03F-B56F7699A8D9}.DynRelease|Win32.ActiveCfg = ReleaseDLL|Win32\r\n\t\t{A185B162-6CB6-4502-B03F-B56F7699A8D9}.DynRelease|Win32.Build.0 = ReleaseDLL|Win32\r\n\t\t{A185B162-6CB6-4502-B03F-B56F7699A8D9}.DynRelease|x64.ActiveCfg = ReleaseDLL|x64\r\n\t\t{A185B162-6CB6-4502-B03F-B56F7699A8D9}.DynRelease|x64.Build.0 = ReleaseDLL|x64\r\n\t\t{A185B162-6CB6-4502-B03F-B56F7699A8D9}.LtcgDebug|Win32.ActiveCfg = DebugLTCG|Win32\r\n\t\t{A185B162-6CB6-4502-B03F-B56F7699A8D9}.LtcgDebug|Win32.Build.0 = DebugLTCG|Win32\r\n\t\t{A185B162-6CB6-4502-B03F-B56F7699A8D9}.LtcgDebug|x64.ActiveCfg = DebugLTCG|x64\r\n\t\t{A185B162-6CB6-4502-B03F-B56F7699A8D9}.LtcgDebug|x64.Build.0 = DebugLTCG|x64\r\n\t\t{A185B162-6CB6-4502-B03F-B56F7699A8D9}.LtcgRelease|Win32.ActiveCfg = ReleaseLTCG|Win32\r\n\t\t{A185B162-6CB6-4502-B03F-B56F7699A8D9}.LtcgRelease|Win32.Build.0 = ReleaseLTCG|Win32\r\n\t\t{A185B162-6CB6-4502-B03F-B56F7699A8D9}.LtcgRelease|x64.ActiveCfg = ReleaseLTCG|x64\r\n\t\t{A185B162-6CB6-4502-B03F-B56F7699A8D9}.LtcgRelease|x64.Build.0 = ReleaseLTCG|x64\r\n\t\t{A185B162-6CB6-4502-B03F-B56F7699A8D9}.StaticDebug|Win32.ActiveCfg = DebugLIB|Win32\r\n\t\t{A185B162-6CB6-4502-B03F-B56F7699A8D9}.StaticDebug|Win32.Build.0 = DebugLIB|Win32\r\n\t\t{A185B162-6CB6-4502-B03F-B56F7699A8D9}.StaticDebug|x64.ActiveCfg = DebugLIB|x64\r\n\t\t{A185B162-6CB6-4502-B03F-B56F7699A8D9}.StaticDebug|x64.Build.0 = DebugLIB|x64\r\n\t\t{A185B162-6CB6-4502-B03F-B56F7699A8D9}.StaticRelease|Win32.ActiveCfg = ReleaseLIB|Win32\r\n\t\t{A185B162-6CB6-4502-B03F-B56F7699A8D9}.StaticRelease|Win32.Build.0 = ReleaseLIB|Win32\r\n\t\t{A185B162-6CB6-4502-B03F-B56F7699A8D9}.StaticRelease|x64.ActiveCfg = ReleaseLIB|x64\r\n\t\t{A185B162-6CB6-4502-B03F-B56F7699A8D9}.StaticRelease|x64.Build.0 = ReleaseLIB|x64\r\n\tEndGlobalSection\r\n\tGlobalSection(SolutionProperties) = preSolution\r\n\t\tHideSolutionNode = FALSE\r\n\tEndGlobalSection\r\nEndGlobal\r\n"
  },
  {
    "path": "builds/msvc/vs2022/libsodium/libsodium.props",
    "content": "﻿<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<Project DefaultTargets=\"Build\" xmlns=\"http://schemas.microsoft.com/developer/msbuild/2003\">\n\n  <PropertyGroup Label=\"Globals\">\n    <_PropertySheetDisplayName>Libsodium Common Settings</_PropertySheetDisplayName>\n    <CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>\n    <RunCodeAnalysis>false</RunCodeAnalysis>\n  </PropertyGroup>\n\n  <!-- User Interface -->\n\n  <ItemGroup Label=\"BuildOptionsExtension\">\n    <PropertyPageSchema Include=\"$(MSBuildThisFileDirectory)$(ProjectName).xml\" />\n  </ItemGroup>\n\n  <!-- Configuration -->\n\n  <ItemDefinitionGroup>\n    <PreBuildEvent>\n      <Command>copy \"$(BuildRoot)version.h\" \"$(RepoRoot)src\\libsodium\\include\\sodium\\\"</Command>\n    </PreBuildEvent>\n    <ClCompile>\n      <AdditionalIncludeDirectories>$(RepoRoot)src\\libsodium\\include;$(RepoRoot)src\\libsodium\\include\\sodium\\;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\n      <DisableSpecificWarnings>4146;4244;%(DisableSpecificWarnings)</DisableSpecificWarnings>\n      <EnablePREfast>false</EnablePREfast>\n      <PreprocessorDefinitions>inline=__inline;NATIVE_LITTLE_ENDIAN;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>\n      <PreprocessorDefinitions Condition=\"'$(ConfigurationType)' == 'StaticLibrary'\">SODIUM_STATIC;%(PreprocessorDefinitions)</PreprocessorDefinitions>\n      <PreprocessorDefinitions Condition=\"'$(ConfigurationType)' == 'DynamicLibrary'\">SODIUM_DLL_EXPORT;%(PreprocessorDefinitions)</PreprocessorDefinitions>\n      <PreprocessorDefinitions Condition=\"'$(Option-amd64asm)' == 'true'\">HAVE_AMD64_ASM;%(PreprocessorDefinitions)</PreprocessorDefinitions>\n    </ClCompile>\n  </ItemDefinitionGroup>\n\n  <!-- Messages -->\n\n  <Target Name=\"CustomInfo\" BeforeTargets=\"PrepareForBuild\">\n    <Message Text=\"Will copy $(BuildRoot)version.h -&gt; $(RepoRoot)src\\libsodium\\include\\sodium\\version.h\" Importance=\"high\"/>\n  </Target>\n\n  <Target Name=\"OptionInfo\" BeforeTargets=\"PrepareForBuild\">\n    <Message Text=\"Option-amd64asm   : $(Option-amd64asm)\" Importance=\"high\"/>\n  </Target>\n\n  <ItemDefinitionGroup>\n    <Link>\n      <AdditionalDependencies>advapi32.lib</AdditionalDependencies>\n    </Link>\n  </ItemDefinitionGroup>\n</Project>\n"
  },
  {
    "path": "builds/msvc/vs2022/libsodium/libsodium.vcxproj",
    "content": "﻿<?xml version=\"1.0\" encoding=\"utf-8\"?>\r\n<Project DefaultTargets=\"Build\" ToolsVersion=\"4.0\"\r\n  xmlns=\"http://schemas.microsoft.com/developer/msbuild/2003\">\r\n  <PropertyGroup Label=\"Globals\">\r\n    <ProjectGuid>{A185B162-6CB6-4502-B03F-B56F7699A8D9}</ProjectGuid>\r\n    <ProjectName>libsodium</ProjectName>\r\n    <PlatformToolset>v143</PlatformToolset>\r\n  </PropertyGroup>\r\n  <ItemGroup Label=\"ProjectConfigurations\">\r\n    <ProjectConfiguration Include=\"DebugDLL|Win32\">\r\n      <Configuration>DebugDLL</Configuration>\r\n      <Platform>Win32</Platform>\r\n    </ProjectConfiguration>\r\n    <ProjectConfiguration Include=\"DebugDLL|x64\">\r\n      <Configuration>DebugDLL</Configuration>\r\n      <Platform>x64</Platform>\r\n    </ProjectConfiguration>\r\n    <ProjectConfiguration Include=\"DebugDLL|ARM64\">\r\n      <Configuration>DebugDLL</Configuration>\r\n      <Platform>ARM64</Platform>\r\n    </ProjectConfiguration>\r\n    <ProjectConfiguration Include=\"ReleaseDLL|Win32\">\r\n      <Configuration>ReleaseDLL</Configuration>\r\n      <Platform>Win32</Platform>\r\n    </ProjectConfiguration>\r\n    <ProjectConfiguration Include=\"ReleaseDLL|x64\">\r\n      <Configuration>ReleaseDLL</Configuration>\r\n      <Platform>x64</Platform>\r\n    </ProjectConfiguration>\r\n    <ProjectConfiguration Include=\"ReleaseDLL|ARM64\">\r\n      <Configuration>ReleaseDLL</Configuration>\r\n      <Platform>ARM64</Platform>\r\n    </ProjectConfiguration>\r\n    <ProjectConfiguration Include=\"DebugLIB|Win32\">\r\n      <Configuration>DebugLIB</Configuration>\r\n      <Platform>Win32</Platform>\r\n    </ProjectConfiguration>\r\n    <ProjectConfiguration Include=\"DebugLIB|x64\">\r\n      <Configuration>DebugLIB</Configuration>\r\n      <Platform>x64</Platform>\r\n    </ProjectConfiguration>\r\n    <ProjectConfiguration Include=\"DebugLIB|ARM64\">\r\n      <Configuration>DebugLIB</Configuration>\r\n      <Platform>ARM64</Platform>\r\n    </ProjectConfiguration>\r\n    <ProjectConfiguration Include=\"ReleaseLIB|Win32\">\r\n      <Configuration>ReleaseLIB</Configuration>\r\n      <Platform>Win32</Platform>\r\n    </ProjectConfiguration>\r\n    <ProjectConfiguration Include=\"ReleaseLIB|x64\">\r\n      <Configuration>ReleaseLIB</Configuration>\r\n      <Platform>x64</Platform>\r\n    </ProjectConfiguration>\r\n    <ProjectConfiguration Include=\"ReleaseLIB|ARM64\">\r\n      <Configuration>ReleaseLIB</Configuration>\r\n      <Platform>ARM64</Platform>\r\n    </ProjectConfiguration>\r\n    <ProjectConfiguration Include=\"DebugLTCG|Win32\">\r\n      <Configuration>DebugLTCG</Configuration>\r\n      <Platform>Win32</Platform>\r\n    </ProjectConfiguration>\r\n    <ProjectConfiguration Include=\"DebugLTCG|x64\">\r\n      <Configuration>DebugLTCG</Configuration>\r\n      <Platform>x64</Platform>\r\n    </ProjectConfiguration>\r\n    <ProjectConfiguration Include=\"DebugLTCG|ARM64\">\r\n      <Configuration>DebugLTCG</Configuration>\r\n      <Platform>ARM64</Platform>\r\n    </ProjectConfiguration>\r\n    <ProjectConfiguration Include=\"ReleaseLTCG|Win32\">\r\n      <Configuration>ReleaseLTCG</Configuration>\r\n      <Platform>Win32</Platform>\r\n    </ProjectConfiguration>\r\n    <ProjectConfiguration Include=\"ReleaseLTCG|x64\">\r\n      <Configuration>ReleaseLTCG</Configuration>\r\n      <Platform>x64</Platform>\r\n    </ProjectConfiguration>\r\n    <ProjectConfiguration Include=\"ReleaseLTCG|ARM64\">\r\n      <Configuration>ReleaseLTCG</Configuration>\r\n      <Platform>ARM64</Platform>\r\n    </ProjectConfiguration>\r\n  </ItemGroup>\r\n  <PropertyGroup Label=\"Configuration\">\r\n    <ConfigurationType Condition=\"$(Configuration.IndexOf('DLL')) == -1\">StaticLibrary</ConfigurationType>\r\n    <ConfigurationType Condition=\"$(Configuration.IndexOf('DLL')) != -1\">DynamicLibrary</ConfigurationType>\r\n  </PropertyGroup>\r\n  <Import Project=\"$(VCTargetsPath)\\Microsoft.Cpp.Default.props\" />\r\n  <Import Project=\"$(VCTargetsPath)\\Microsoft.Cpp.props\" />\r\n  <ImportGroup Label=\"PropertySheets\">\r\n    <Import Project=\"$(ProjectDir)..\\..\\properties\\$(Configuration).props\" />\r\n    <Import Project=\"$(ProjectDir)..\\..\\properties\\Output.props\" />\r\n    <Import Project=\"$(ProjectDir)$(ProjectName).props\" />\r\n  </ImportGroup>\r\n  <ItemGroup>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_generichash\\crypto_generichash.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_generichash\\blake2b\\generichash_blake2.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_generichash\\blake2b\\ref\\blake2b-compress-ref.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_generichash\\blake2b\\ref\\blake2b-compress-ssse3.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_generichash\\blake2b\\ref\\blake2b-compress-avx2.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_generichash\\blake2b\\ref\\blake2b-compress-sse41.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_generichash\\blake2b\\ref\\generichash_blake2b.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_generichash\\blake2b\\ref\\blake2b-ref.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_kx\\crypto_kx.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_sign\\crypto_sign.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_sign\\ed25519\\sign_ed25519.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_sign\\ed25519\\ref10\\sign.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_sign\\ed25519\\ref10\\keypair.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_sign\\ed25519\\ref10\\open.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_secretbox\\crypto_secretbox.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_secretbox\\crypto_secretbox_easy.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_secretbox\\xsalsa20poly1305\\secretbox_xsalsa20poly1305.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_secretbox\\xchacha20poly1305\\secretbox_xchacha20poly1305.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\crypto_pwhash.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\blake2b-long.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\argon2-fill-block-wasm32.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\argon2-core.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\argon2-fill-block-avx512f.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\argon2-fill-block-ref.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\argon2-fill-block-ssse3.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\pwhash_argon2i.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\argon2-fill-block-neon.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\pwhash_argon2id.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\argon2.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\argon2-fill-block-avx2.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\argon2-encoding.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\scryptsalsa208sha256\\scrypt_platform.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\scryptsalsa208sha256\\crypto_scrypt-common.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\scryptsalsa208sha256\\pwhash_scryptsalsa208sha256.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\scryptsalsa208sha256\\pbkdf2-sha256.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\scryptsalsa208sha256\\nosse\\pwhash_scryptsalsa208sha256_nosse.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\scryptsalsa208sha256\\sse\\pwhash_scryptsalsa208sha256_sse.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_xof\\shake128\\xof_shake128.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_xof\\shake128\\ref\\shake128_ref.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_xof\\shake256\\xof_shake256.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_xof\\shake256\\ref\\shake256_ref.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_xof\\turboshake256\\xof_turboshake256.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_xof\\turboshake256\\ref\\turboshake256_ref.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_xof\\turboshake128\\xof_turboshake128.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_xof\\turboshake128\\ref\\turboshake128_ref.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_verify\\verify.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_auth\\crypto_auth.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_auth\\hmacsha512\\auth_hmacsha512.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_auth\\hmacsha512256\\auth_hmacsha512256.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_auth\\hmacsha256\\auth_hmacsha256.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_kdf\\crypto_kdf.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_kdf\\blake2b\\kdf_blake2b.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_kdf\\hkdf\\kdf_hkdf_sha256.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_kdf\\hkdf\\kdf_hkdf_sha512.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_shorthash\\crypto_shorthash.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_shorthash\\siphash24\\shorthash_siphash24.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_shorthash\\siphash24\\shorthash_siphashx24.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_shorthash\\siphash24\\ref\\shorthash_siphashx24_ref.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_shorthash\\siphash24\\ref\\shorthash_siphash24_ref.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_scalarmult\\crypto_scalarmult.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_scalarmult\\ristretto255\\ref10\\scalarmult_ristretto255_ref10.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_scalarmult\\ed25519\\ref10\\scalarmult_ed25519_ref10.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_scalarmult\\curve25519\\scalarmult_curve25519.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_scalarmult\\curve25519\\sandy2x\\curve25519_sandy2x.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_scalarmult\\curve25519\\sandy2x\\fe_frombytes_sandy2x.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_scalarmult\\curve25519\\sandy2x\\fe51_invert.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_scalarmult\\curve25519\\ref10\\x25519_ref10.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_onetimeauth\\crypto_onetimeauth.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_onetimeauth\\poly1305\\onetimeauth_poly1305.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_onetimeauth\\poly1305\\donna\\poly1305_donna.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_onetimeauth\\poly1305\\sse2\\poly1305_sse2.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\randombytes\\randombytes.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\randombytes\\sysrandom\\randombytes_sysrandom.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\randombytes\\internal\\randombytes_internal_random.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_box\\crypto_box_easy.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_box\\crypto_box_seal.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_box\\crypto_box.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_box\\curve25519xsalsa20poly1305\\box_curve25519xsalsa20poly1305.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_box\\curve25519xchacha20poly1305\\box_curve25519xchacha20poly1305.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_box\\curve25519xchacha20poly1305\\box_seal_curve25519xchacha20poly1305.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\sodium\\codecs.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\sodium\\runtime.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\sodium\\core.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\sodium\\utils.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\sodium\\version.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_ipcrypt\\ipcrypt_armcrypto.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_ipcrypt\\crypto_ipcrypt.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_ipcrypt\\ipcrypt_soft.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_ipcrypt\\ipcrypt_aesni.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\crypto_stream.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\xchacha20\\stream_xchacha20.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\chacha20\\stream_chacha20.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\chacha20\\ref\\chacha20_ref.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\chacha20\\dolbeau\\chacha20_dolbeau-avx2.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\chacha20\\dolbeau\\chacha20_dolbeau-ssse3.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\salsa20\\stream_salsa20.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\salsa20\\ref\\salsa20_ref.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\salsa20\\xmm6int\\salsa20_xmm6int-avx2.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\salsa20\\xmm6int\\salsa20_xmm6int-sse2.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\salsa20\\xmm6\\salsa20_xmm6.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\salsa2012\\stream_salsa2012.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\salsa2012\\ref\\stream_salsa2012_ref.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\salsa208\\stream_salsa208.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\salsa208\\ref\\stream_salsa208_ref.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\xsalsa20\\stream_xsalsa20.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_hash\\crypto_hash.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_hash\\sha512\\hash_sha512.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_hash\\sha512\\cp\\hash_sha512_cp.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_hash\\sha3\\hash_sha3.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_hash\\sha256\\hash_sha256.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_hash\\sha256\\cp\\hash_sha256_cp.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_aead\\xchacha20poly1305\\aead_xchacha20poly1305.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_aead\\aegis128l\\aegis128l_soft.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_aead\\aegis128l\\aead_aegis128l.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_aead\\aegis128l\\aegis128l_aesni.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_aead\\aegis128l\\aegis128l_armcrypto.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_aead\\aegis256\\aead_aegis256.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_aead\\aegis256\\aegis256_soft.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_aead\\aegis256\\aegis256_armcrypto.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_aead\\aegis256\\aegis256_aesni.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_aead\\aes256gcm\\aead_aes256gcm.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_aead\\aes256gcm\\aesni\\aead_aes256gcm_aesni.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_aead\\aes256gcm\\armcrypto\\aead_aes256gcm_armcrypto.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_aead\\chacha20poly1305\\aead_chacha20poly1305.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_kem\\crypto_kem.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_kem\\xwing\\kem_xwing.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_kem\\mlkem768\\kem_mlkem768.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_kem\\mlkem768\\ref\\kem_mlkem768_ref.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_secretstream\\xchacha20poly1305\\secretstream_xchacha20poly1305.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_core\\keccak1600\\keccak1600.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_core\\keccak1600\\ref\\keccak1600_ref.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_core\\keccak1600\\armsha3\\keccak1600_armsha3.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_core\\salsa\\ref\\core_salsa_ref.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_core\\hchacha20\\core_hchacha20.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_core\\hsalsa20\\core_hsalsa20.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_core\\hsalsa20\\ref2\\core_hsalsa20_ref2.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_core\\softaes\\softaes.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_core\\ed25519\\core_ed25519.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_core\\ed25519\\core_ristretto255.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_core\\ed25519\\core_h2c.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_core\\ed25519\\ref10\\ed25519_ref10.c\" />\r\n  </ItemGroup>\r\n  <ItemGroup>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_generichash\\blake2b\\ref\\blake2b-load-sse2.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_generichash\\blake2b\\ref\\blake2b-load-avx2.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_generichash\\blake2b\\ref\\blake2.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_generichash\\blake2b\\ref\\blake2b-compress-ssse3.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_generichash\\blake2b\\ref\\blake2b-load-sse41.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_generichash\\blake2b\\ref\\blake2b-compress-avx2.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_generichash\\blake2b\\ref\\blake2b-compress-sse41.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_sign\\ed25519\\ref10\\sign_ed25519_ref10.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_stream_salsa2012.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_auth.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\utils.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_core_hchacha20.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_aead_aegis256.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_hash_sha512.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\core.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\export.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_core_salsa20.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_shorthash_siphash24.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\randombytes.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_hash_sha256.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_stream.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_auth_hmacsha512.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_xof_shake128.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_aead_xchacha20poly1305.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_stream_salsa20.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_onetimeauth_poly1305.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_kem_mlkem768.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_scalarmult_ristretto255.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_kx.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_hash.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_sign.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_kdf.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_auth_hmacsha256.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_box.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_verify_32.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_core_ristretto255.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_stream_xchacha20.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_core_salsa208.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_auth_hmacsha512256.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_xof_turboshake128.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_aead_aegis128l.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_aead_chacha20poly1305.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\randombytes_sysrandom.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_xof_turboshake256.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\runtime.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_stream_salsa208.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_aead_aes256gcm.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_core_salsa2012.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_secretbox_xchacha20poly1305.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_kem.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_core_keccak1600.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_scalarmult.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_pwhash.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_verify_16.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_stream_chacha20.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_stream_xsalsa20.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_core_hsalsa20.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_kdf_blake2b.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_scalarmult_curve25519.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_xof_shake256.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_shorthash.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_kdf_hkdf_sha256.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_pwhash_argon2id.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_secretstream_xchacha20poly1305.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_pwhash_scryptsalsa208sha256.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_hash_sha3.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_kem_xwing.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_sign_ed25519.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_onetimeauth.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_verify_64.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_box_curve25519xchacha20poly1305.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_core_ed25519.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_kdf_hkdf_sha512.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_pwhash_argon2i.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\randombytes_internal_random.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_generichash.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_secretbox_xsalsa20poly1305.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_secretbox.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_scalarmult_ed25519.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_ipcrypt.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_box_curve25519xsalsa20poly1305.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_generichash_blake2b.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\private\\ed25519_ref10.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\private\\softaes.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\private\\quirks.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\private\\ed25519_ref10_fe_25_5.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\private\\ed25519_ref10_fe_51.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\private\\sse2_64_32.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\private\\asm_cet.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\private\\common.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\private\\mutex.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\private\\chacha20_ietf_ext.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\private\\implementations.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\blamka-round-ref.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\blamka-round-avx2.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\blamka-round-neon.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\blamka-round-wasm32.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\argon2.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\blamka-round-ssse3.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\argon2-encoding.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\blake2b-long.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\blamka-round-avx512f.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\argon2-core.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\scryptsalsa208sha256\\crypto_scrypt.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\scryptsalsa208sha256\\pbkdf2-sha256.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_xof\\shake128\\ref\\shake128_ref.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_xof\\shake256\\ref\\shake256_ref.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_xof\\turboshake256\\ref\\turboshake256_ref.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_xof\\turboshake128\\ref\\turboshake128_ref.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_shorthash\\siphash24\\ref\\shorthash_siphash_ref.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_scalarmult\\curve25519\\scalarmult_curve25519.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_scalarmult\\curve25519\\sandy2x\\consts_namespace.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_scalarmult\\curve25519\\sandy2x\\ladder_namespace.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_scalarmult\\curve25519\\sandy2x\\fe.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_scalarmult\\curve25519\\sandy2x\\ladder.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_scalarmult\\curve25519\\sandy2x\\fe51.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_scalarmult\\curve25519\\sandy2x\\curve25519_sandy2x.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_scalarmult\\curve25519\\sandy2x\\fe51_namespace.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_scalarmult\\curve25519\\ref10\\x25519_ref10.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_onetimeauth\\poly1305\\onetimeauth_poly1305.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_onetimeauth\\poly1305\\donna\\poly1305_donna.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_onetimeauth\\poly1305\\donna\\poly1305_donna64.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_onetimeauth\\poly1305\\donna\\poly1305_donna32.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_onetimeauth\\poly1305\\sse2\\poly1305_sse2.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_ipcrypt\\ipcrypt_soft.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_ipcrypt\\ipcrypt_aesni.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_ipcrypt\\ipcrypt_armcrypto.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_ipcrypt\\implementations.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\chacha20\\stream_chacha20.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\chacha20\\ref\\chacha20_ref.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\chacha20\\dolbeau\\u4.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\chacha20\\dolbeau\\chacha20_dolbeau-ssse3.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\chacha20\\dolbeau\\u0.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\chacha20\\dolbeau\\u1.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\chacha20\\dolbeau\\chacha20_dolbeau-avx2.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\chacha20\\dolbeau\\u8.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\salsa20\\stream_salsa20.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\salsa20\\ref\\salsa20_ref.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\salsa20\\xmm6int\\u4.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\salsa20\\xmm6int\\u0.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\salsa20\\xmm6int\\u1.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\salsa20\\xmm6int\\salsa20_xmm6int-avx2.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\salsa20\\xmm6int\\u8.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\salsa20\\xmm6int\\salsa20_xmm6int-sse2.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\salsa20\\xmm6\\salsa20_xmm6-asm_namespace.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\salsa20\\xmm6\\salsa20_xmm6.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_aead\\aegis128l\\aegis128l_armcrypto.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_aead\\aegis128l\\aegis128l_aesni.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_aead\\aegis128l\\aegis128l_soft.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_aead\\aegis128l\\aegis128l_common.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_aead\\aegis128l\\implementations.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_aead\\aegis256\\aegis256_aesni.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_aead\\aegis256\\aegis256_common.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_aead\\aegis256\\implementations.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_aead\\aegis256\\aegis256_armcrypto.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_aead\\aegis256\\aegis256_soft.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_kem\\mlkem768\\ref\\kem_mlkem768_ref.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_core\\keccak1600\\ref\\keccak1600_ref.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_core\\keccak1600\\armsha3\\keccak1600_armsha3.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_core\\ed25519\\core_h2c.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_core\\ed25519\\ref10\\fe_25_5\\constants.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_core\\ed25519\\ref10\\fe_25_5\\fe.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_core\\ed25519\\ref10\\fe_25_5\\base2.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_core\\ed25519\\ref10\\fe_25_5\\base.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_core\\ed25519\\ref10\\fe_51\\constants.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_core\\ed25519\\ref10\\fe_51\\fe.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_core\\ed25519\\ref10\\fe_51\\base2.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_core\\ed25519\\ref10\\fe_51\\base.h\" />\r\n    <ClInclude Include=\"..\\..\\resource.h\" />\r\n  </ItemGroup>\r\n  <ItemGroup>\r\n    <ResourceCompile Include=\"..\\..\\resource.rc\">\r\n    </ResourceCompile>\r\n  </ItemGroup>\r\n  <Import Project=\"$(VCTargetsPath)\\Microsoft.Cpp.targets\" />\r\n  <ImportGroup Label=\"ExtensionTargets\">\r\n  </ImportGroup>\r\n</Project>\r\n"
  },
  {
    "path": "builds/msvc/vs2022/libsodium/libsodium.vcxproj.filters",
    "content": "﻿<?xml version=\"1.0\" encoding=\"utf-8\"?>\r\n<Project ToolsVersion=\"4.0\" xmlns=\"http://schemas.microsoft.com/developer/msbuild/2003\">\r\n  <ItemGroup>\r\n    <None Include=\"..\\..\\..\\..\\packaging\\nuget\\package.bat\">\r\n      <Filter>packaging</Filter>\r\n    </None>\r\n    <None Include=\"..\\..\\..\\..\\packaging\\nuget\\package.gsl\">\r\n      <Filter>packaging</Filter>\r\n    </None>\r\n    <None Include=\"..\\..\\..\\..\\packaging\\nuget\\package.nuspec\">\r\n      <Filter>packaging</Filter>\r\n    </None>\r\n    <None Include=\"..\\..\\..\\..\\packaging\\nuget\\package.targets\">\r\n      <Filter>packaging</Filter>\r\n    </None>\r\n    <None Include=\"..\\..\\..\\..\\packaging\\nuget\\package.config\">\r\n      <Filter>packaging</Filter>\r\n    </None>\r\n    <Xml Include=\"..\\..\\..\\..\\packaging\\nuget\\package.xml\">\r\n      <Filter>packaging</Filter>\r\n    </Xml>\r\n  </ItemGroup>\r\n  <ItemGroup>\r\n    <ResourceCompile Include=\"..\\..\\resource.rc\" />\r\n  </ItemGroup>\r\n  <ItemGroup>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_generichash\\crypto_generichash.c\">\r\n      <Filter>crypto_generichash</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_generichash\\blake2b\\generichash_blake2.c\">\r\n      <Filter>crypto_generichash\\blake2b</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_generichash\\blake2b\\ref\\blake2b-compress-ref.c\">\r\n      <Filter>crypto_generichash\\blake2b\\ref</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_generichash\\blake2b\\ref\\blake2b-compress-ssse3.c\">\r\n      <Filter>crypto_generichash\\blake2b\\ref</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_generichash\\blake2b\\ref\\blake2b-compress-avx2.c\">\r\n      <Filter>crypto_generichash\\blake2b\\ref</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_generichash\\blake2b\\ref\\blake2b-compress-sse41.c\">\r\n      <Filter>crypto_generichash\\blake2b\\ref</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_generichash\\blake2b\\ref\\generichash_blake2b.c\">\r\n      <Filter>crypto_generichash\\blake2b\\ref</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_generichash\\blake2b\\ref\\blake2b-ref.c\">\r\n      <Filter>crypto_generichash\\blake2b\\ref</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_kx\\crypto_kx.c\">\r\n      <Filter>crypto_kx</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_sign\\crypto_sign.c\">\r\n      <Filter>crypto_sign</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_sign\\ed25519\\sign_ed25519.c\">\r\n      <Filter>crypto_sign\\ed25519</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_sign\\ed25519\\ref10\\sign.c\">\r\n      <Filter>crypto_sign\\ed25519\\ref10</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_sign\\ed25519\\ref10\\keypair.c\">\r\n      <Filter>crypto_sign\\ed25519\\ref10</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_sign\\ed25519\\ref10\\open.c\">\r\n      <Filter>crypto_sign\\ed25519\\ref10</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_secretbox\\crypto_secretbox.c\">\r\n      <Filter>crypto_secretbox</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_secretbox\\crypto_secretbox_easy.c\">\r\n      <Filter>crypto_secretbox</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_secretbox\\xsalsa20poly1305\\secretbox_xsalsa20poly1305.c\">\r\n      <Filter>crypto_secretbox\\xsalsa20poly1305</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_secretbox\\xchacha20poly1305\\secretbox_xchacha20poly1305.c\">\r\n      <Filter>crypto_secretbox\\xchacha20poly1305</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\crypto_pwhash.c\">\r\n      <Filter>crypto_pwhash</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\blake2b-long.c\">\r\n      <Filter>crypto_pwhash\\argon2</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\argon2-fill-block-wasm32.c\">\r\n      <Filter>crypto_pwhash\\argon2</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\argon2-core.c\">\r\n      <Filter>crypto_pwhash\\argon2</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\argon2-fill-block-avx512f.c\">\r\n      <Filter>crypto_pwhash\\argon2</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\argon2-fill-block-ref.c\">\r\n      <Filter>crypto_pwhash\\argon2</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\argon2-fill-block-ssse3.c\">\r\n      <Filter>crypto_pwhash\\argon2</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\pwhash_argon2i.c\">\r\n      <Filter>crypto_pwhash\\argon2</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\argon2-fill-block-neon.c\">\r\n      <Filter>crypto_pwhash\\argon2</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\pwhash_argon2id.c\">\r\n      <Filter>crypto_pwhash\\argon2</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\argon2.c\">\r\n      <Filter>crypto_pwhash\\argon2</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\argon2-fill-block-avx2.c\">\r\n      <Filter>crypto_pwhash\\argon2</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\argon2-encoding.c\">\r\n      <Filter>crypto_pwhash\\argon2</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\scryptsalsa208sha256\\scrypt_platform.c\">\r\n      <Filter>crypto_pwhash\\scryptsalsa208sha256</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\scryptsalsa208sha256\\crypto_scrypt-common.c\">\r\n      <Filter>crypto_pwhash\\scryptsalsa208sha256</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\scryptsalsa208sha256\\pwhash_scryptsalsa208sha256.c\">\r\n      <Filter>crypto_pwhash\\scryptsalsa208sha256</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\scryptsalsa208sha256\\pbkdf2-sha256.c\">\r\n      <Filter>crypto_pwhash\\scryptsalsa208sha256</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\scryptsalsa208sha256\\nosse\\pwhash_scryptsalsa208sha256_nosse.c\">\r\n      <Filter>crypto_pwhash\\scryptsalsa208sha256\\nosse</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\scryptsalsa208sha256\\sse\\pwhash_scryptsalsa208sha256_sse.c\">\r\n      <Filter>crypto_pwhash\\scryptsalsa208sha256\\sse</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_xof\\shake128\\xof_shake128.c\">\r\n      <Filter>crypto_xof\\shake128</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_xof\\shake128\\ref\\shake128_ref.c\">\r\n      <Filter>crypto_xof\\shake128\\ref</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_xof\\shake256\\xof_shake256.c\">\r\n      <Filter>crypto_xof\\shake256</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_xof\\shake256\\ref\\shake256_ref.c\">\r\n      <Filter>crypto_xof\\shake256\\ref</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_xof\\turboshake256\\xof_turboshake256.c\">\r\n      <Filter>crypto_xof\\turboshake256</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_xof\\turboshake256\\ref\\turboshake256_ref.c\">\r\n      <Filter>crypto_xof\\turboshake256\\ref</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_xof\\turboshake128\\xof_turboshake128.c\">\r\n      <Filter>crypto_xof\\turboshake128</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_xof\\turboshake128\\ref\\turboshake128_ref.c\">\r\n      <Filter>crypto_xof\\turboshake128\\ref</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_verify\\verify.c\">\r\n      <Filter>crypto_verify</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_auth\\crypto_auth.c\">\r\n      <Filter>crypto_auth</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_auth\\hmacsha512\\auth_hmacsha512.c\">\r\n      <Filter>crypto_auth\\hmacsha512</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_auth\\hmacsha512256\\auth_hmacsha512256.c\">\r\n      <Filter>crypto_auth\\hmacsha512256</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_auth\\hmacsha256\\auth_hmacsha256.c\">\r\n      <Filter>crypto_auth\\hmacsha256</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_kdf\\crypto_kdf.c\">\r\n      <Filter>crypto_kdf</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_kdf\\blake2b\\kdf_blake2b.c\">\r\n      <Filter>crypto_kdf\\blake2b</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_kdf\\hkdf\\kdf_hkdf_sha256.c\">\r\n      <Filter>crypto_kdf\\hkdf</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_kdf\\hkdf\\kdf_hkdf_sha512.c\">\r\n      <Filter>crypto_kdf\\hkdf</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_shorthash\\crypto_shorthash.c\">\r\n      <Filter>crypto_shorthash</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_shorthash\\siphash24\\shorthash_siphash24.c\">\r\n      <Filter>crypto_shorthash\\siphash24</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_shorthash\\siphash24\\shorthash_siphashx24.c\">\r\n      <Filter>crypto_shorthash\\siphash24</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_shorthash\\siphash24\\ref\\shorthash_siphashx24_ref.c\">\r\n      <Filter>crypto_shorthash\\siphash24\\ref</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_shorthash\\siphash24\\ref\\shorthash_siphash24_ref.c\">\r\n      <Filter>crypto_shorthash\\siphash24\\ref</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_scalarmult\\crypto_scalarmult.c\">\r\n      <Filter>crypto_scalarmult</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_scalarmult\\ristretto255\\ref10\\scalarmult_ristretto255_ref10.c\">\r\n      <Filter>crypto_scalarmult\\ristretto255\\ref10</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_scalarmult\\ed25519\\ref10\\scalarmult_ed25519_ref10.c\">\r\n      <Filter>crypto_scalarmult\\ed25519\\ref10</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_scalarmult\\curve25519\\scalarmult_curve25519.c\">\r\n      <Filter>crypto_scalarmult\\curve25519</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_scalarmult\\curve25519\\sandy2x\\curve25519_sandy2x.c\">\r\n      <Filter>crypto_scalarmult\\curve25519\\sandy2x</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_scalarmult\\curve25519\\sandy2x\\fe_frombytes_sandy2x.c\">\r\n      <Filter>crypto_scalarmult\\curve25519\\sandy2x</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_scalarmult\\curve25519\\sandy2x\\fe51_invert.c\">\r\n      <Filter>crypto_scalarmult\\curve25519\\sandy2x</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_scalarmult\\curve25519\\ref10\\x25519_ref10.c\">\r\n      <Filter>crypto_scalarmult\\curve25519\\ref10</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_onetimeauth\\crypto_onetimeauth.c\">\r\n      <Filter>crypto_onetimeauth</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_onetimeauth\\poly1305\\onetimeauth_poly1305.c\">\r\n      <Filter>crypto_onetimeauth\\poly1305</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_onetimeauth\\poly1305\\donna\\poly1305_donna.c\">\r\n      <Filter>crypto_onetimeauth\\poly1305\\donna</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_onetimeauth\\poly1305\\sse2\\poly1305_sse2.c\">\r\n      <Filter>crypto_onetimeauth\\poly1305\\sse2</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\randombytes\\randombytes.c\">\r\n      <Filter>randombytes</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\randombytes\\sysrandom\\randombytes_sysrandom.c\">\r\n      <Filter>randombytes\\sysrandom</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\randombytes\\internal\\randombytes_internal_random.c\">\r\n      <Filter>randombytes\\internal</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_box\\crypto_box_easy.c\">\r\n      <Filter>crypto_box</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_box\\crypto_box_seal.c\">\r\n      <Filter>crypto_box</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_box\\crypto_box.c\">\r\n      <Filter>crypto_box</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_box\\curve25519xsalsa20poly1305\\box_curve25519xsalsa20poly1305.c\">\r\n      <Filter>crypto_box\\curve25519xsalsa20poly1305</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_box\\curve25519xchacha20poly1305\\box_curve25519xchacha20poly1305.c\">\r\n      <Filter>crypto_box\\curve25519xchacha20poly1305</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_box\\curve25519xchacha20poly1305\\box_seal_curve25519xchacha20poly1305.c\">\r\n      <Filter>crypto_box\\curve25519xchacha20poly1305</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\sodium\\codecs.c\">\r\n      <Filter>sodium</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\sodium\\runtime.c\">\r\n      <Filter>sodium</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\sodium\\core.c\">\r\n      <Filter>sodium</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\sodium\\utils.c\">\r\n      <Filter>sodium</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\sodium\\version.c\">\r\n      <Filter>sodium</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_ipcrypt\\ipcrypt_armcrypto.c\">\r\n      <Filter>crypto_ipcrypt</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_ipcrypt\\crypto_ipcrypt.c\">\r\n      <Filter>crypto_ipcrypt</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_ipcrypt\\ipcrypt_soft.c\">\r\n      <Filter>crypto_ipcrypt</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_ipcrypt\\ipcrypt_aesni.c\">\r\n      <Filter>crypto_ipcrypt</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\crypto_stream.c\">\r\n      <Filter>crypto_stream</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\xchacha20\\stream_xchacha20.c\">\r\n      <Filter>crypto_stream\\xchacha20</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\chacha20\\stream_chacha20.c\">\r\n      <Filter>crypto_stream\\chacha20</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\chacha20\\ref\\chacha20_ref.c\">\r\n      <Filter>crypto_stream\\chacha20\\ref</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\chacha20\\dolbeau\\chacha20_dolbeau-avx2.c\">\r\n      <Filter>crypto_stream\\chacha20\\dolbeau</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\chacha20\\dolbeau\\chacha20_dolbeau-ssse3.c\">\r\n      <Filter>crypto_stream\\chacha20\\dolbeau</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\salsa20\\stream_salsa20.c\">\r\n      <Filter>crypto_stream\\salsa20</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\salsa20\\ref\\salsa20_ref.c\">\r\n      <Filter>crypto_stream\\salsa20\\ref</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\salsa20\\xmm6int\\salsa20_xmm6int-avx2.c\">\r\n      <Filter>crypto_stream\\salsa20\\xmm6int</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\salsa20\\xmm6int\\salsa20_xmm6int-sse2.c\">\r\n      <Filter>crypto_stream\\salsa20\\xmm6int</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\salsa20\\xmm6\\salsa20_xmm6.c\">\r\n      <Filter>crypto_stream\\salsa20\\xmm6</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\salsa2012\\stream_salsa2012.c\">\r\n      <Filter>crypto_stream\\salsa2012</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\salsa2012\\ref\\stream_salsa2012_ref.c\">\r\n      <Filter>crypto_stream\\salsa2012\\ref</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\salsa208\\stream_salsa208.c\">\r\n      <Filter>crypto_stream\\salsa208</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\salsa208\\ref\\stream_salsa208_ref.c\">\r\n      <Filter>crypto_stream\\salsa208\\ref</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\xsalsa20\\stream_xsalsa20.c\">\r\n      <Filter>crypto_stream\\xsalsa20</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_hash\\crypto_hash.c\">\r\n      <Filter>crypto_hash</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_hash\\sha512\\hash_sha512.c\">\r\n      <Filter>crypto_hash\\sha512</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_hash\\sha512\\cp\\hash_sha512_cp.c\">\r\n      <Filter>crypto_hash\\sha512\\cp</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_hash\\sha3\\hash_sha3.c\">\r\n      <Filter>crypto_hash\\sha3</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_hash\\sha256\\hash_sha256.c\">\r\n      <Filter>crypto_hash\\sha256</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_hash\\sha256\\cp\\hash_sha256_cp.c\">\r\n      <Filter>crypto_hash\\sha256\\cp</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_aead\\xchacha20poly1305\\aead_xchacha20poly1305.c\">\r\n      <Filter>crypto_aead\\xchacha20poly1305</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_aead\\aegis128l\\aegis128l_soft.c\">\r\n      <Filter>crypto_aead\\aegis128l</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_aead\\aegis128l\\aead_aegis128l.c\">\r\n      <Filter>crypto_aead\\aegis128l</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_aead\\aegis128l\\aegis128l_aesni.c\">\r\n      <Filter>crypto_aead\\aegis128l</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_aead\\aegis128l\\aegis128l_armcrypto.c\">\r\n      <Filter>crypto_aead\\aegis128l</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_aead\\aegis256\\aead_aegis256.c\">\r\n      <Filter>crypto_aead\\aegis256</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_aead\\aegis256\\aegis256_soft.c\">\r\n      <Filter>crypto_aead\\aegis256</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_aead\\aegis256\\aegis256_armcrypto.c\">\r\n      <Filter>crypto_aead\\aegis256</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_aead\\aegis256\\aegis256_aesni.c\">\r\n      <Filter>crypto_aead\\aegis256</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_aead\\aes256gcm\\aead_aes256gcm.c\">\r\n      <Filter>crypto_aead\\aes256gcm</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_aead\\aes256gcm\\aesni\\aead_aes256gcm_aesni.c\">\r\n      <Filter>crypto_aead\\aes256gcm\\aesni</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_aead\\aes256gcm\\armcrypto\\aead_aes256gcm_armcrypto.c\">\r\n      <Filter>crypto_aead\\aes256gcm\\armcrypto</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_aead\\chacha20poly1305\\aead_chacha20poly1305.c\">\r\n      <Filter>crypto_aead\\chacha20poly1305</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_kem\\crypto_kem.c\">\r\n      <Filter>crypto_kem</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_kem\\xwing\\kem_xwing.c\">\r\n      <Filter>crypto_kem\\xwing</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_kem\\mlkem768\\kem_mlkem768.c\">\r\n      <Filter>crypto_kem\\mlkem768</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_kem\\mlkem768\\ref\\kem_mlkem768_ref.c\">\r\n      <Filter>crypto_kem\\mlkem768\\ref</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_secretstream\\xchacha20poly1305\\secretstream_xchacha20poly1305.c\">\r\n      <Filter>crypto_secretstream\\xchacha20poly1305</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_core\\keccak1600\\keccak1600.c\">\r\n      <Filter>crypto_core\\keccak1600</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_core\\keccak1600\\ref\\keccak1600_ref.c\">\r\n      <Filter>crypto_core\\keccak1600\\ref</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_core\\keccak1600\\armsha3\\keccak1600_armsha3.c\">\r\n      <Filter>crypto_core\\keccak1600\\armsha3</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_core\\salsa\\ref\\core_salsa_ref.c\">\r\n      <Filter>crypto_core\\salsa\\ref</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_core\\hchacha20\\core_hchacha20.c\">\r\n      <Filter>crypto_core\\hchacha20</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_core\\hsalsa20\\core_hsalsa20.c\">\r\n      <Filter>crypto_core\\hsalsa20</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_core\\hsalsa20\\ref2\\core_hsalsa20_ref2.c\">\r\n      <Filter>crypto_core\\hsalsa20\\ref2</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_core\\softaes\\softaes.c\">\r\n      <Filter>crypto_core\\softaes</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_core\\ed25519\\core_ed25519.c\">\r\n      <Filter>crypto_core\\ed25519</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_core\\ed25519\\core_ristretto255.c\">\r\n      <Filter>crypto_core\\ed25519</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_core\\ed25519\\core_h2c.c\">\r\n      <Filter>crypto_core\\ed25519</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_core\\ed25519\\ref10\\ed25519_ref10.c\">\r\n      <Filter>crypto_core\\ed25519\\ref10</Filter>\r\n    </ClCompile>\r\n  </ItemGroup>\r\n  <ItemGroup>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_generichash\\blake2b\\ref\\blake2b-load-sse2.h\">\r\n      <Filter>crypto_generichash\\blake2b\\ref</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_generichash\\blake2b\\ref\\blake2b-load-avx2.h\">\r\n      <Filter>crypto_generichash\\blake2b\\ref</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_generichash\\blake2b\\ref\\blake2.h\">\r\n      <Filter>crypto_generichash\\blake2b\\ref</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_generichash\\blake2b\\ref\\blake2b-compress-ssse3.h\">\r\n      <Filter>crypto_generichash\\blake2b\\ref</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_generichash\\blake2b\\ref\\blake2b-load-sse41.h\">\r\n      <Filter>crypto_generichash\\blake2b\\ref</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_generichash\\blake2b\\ref\\blake2b-compress-avx2.h\">\r\n      <Filter>crypto_generichash\\blake2b\\ref</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_generichash\\blake2b\\ref\\blake2b-compress-sse41.h\">\r\n      <Filter>crypto_generichash\\blake2b\\ref</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_sign\\ed25519\\ref10\\sign_ed25519_ref10.h\">\r\n      <Filter>crypto_sign\\ed25519\\ref10</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium.h\">\r\n      <Filter>include</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_stream_salsa2012.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_auth.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\utils.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_core_hchacha20.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_aead_aegis256.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_hash_sha512.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\core.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\export.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_core_salsa20.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_shorthash_siphash24.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\randombytes.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_hash_sha256.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_stream.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_auth_hmacsha512.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_xof_shake128.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_aead_xchacha20poly1305.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_stream_salsa20.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_onetimeauth_poly1305.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_kem_mlkem768.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_scalarmult_ristretto255.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_kx.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_hash.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_sign.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_kdf.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_auth_hmacsha256.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_box.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_verify_32.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_core_ristretto255.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_stream_xchacha20.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_core_salsa208.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_auth_hmacsha512256.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_xof_turboshake128.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_aead_aegis128l.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_aead_chacha20poly1305.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\randombytes_sysrandom.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_xof_turboshake256.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\runtime.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_stream_salsa208.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_aead_aes256gcm.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_core_salsa2012.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_secretbox_xchacha20poly1305.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_kem.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_core_keccak1600.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_scalarmult.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_pwhash.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_verify_16.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_stream_chacha20.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_stream_xsalsa20.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_core_hsalsa20.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_kdf_blake2b.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_scalarmult_curve25519.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_xof_shake256.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_shorthash.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_kdf_hkdf_sha256.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_pwhash_argon2id.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_secretstream_xchacha20poly1305.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_pwhash_scryptsalsa208sha256.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_hash_sha3.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_kem_xwing.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_sign_ed25519.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_onetimeauth.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_verify_64.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_box_curve25519xchacha20poly1305.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_core_ed25519.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_kdf_hkdf_sha512.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_pwhash_argon2i.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\randombytes_internal_random.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_generichash.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_secretbox_xsalsa20poly1305.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_secretbox.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_scalarmult_ed25519.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_ipcrypt.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_box_curve25519xsalsa20poly1305.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_generichash_blake2b.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\private\\ed25519_ref10.h\">\r\n      <Filter>include\\sodium\\private</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\private\\softaes.h\">\r\n      <Filter>include\\sodium\\private</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\private\\quirks.h\">\r\n      <Filter>include\\sodium\\private</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\private\\ed25519_ref10_fe_25_5.h\">\r\n      <Filter>include\\sodium\\private</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\private\\ed25519_ref10_fe_51.h\">\r\n      <Filter>include\\sodium\\private</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\private\\sse2_64_32.h\">\r\n      <Filter>include\\sodium\\private</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\private\\asm_cet.h\">\r\n      <Filter>include\\sodium\\private</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\private\\common.h\">\r\n      <Filter>include\\sodium\\private</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\private\\mutex.h\">\r\n      <Filter>include\\sodium\\private</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\private\\chacha20_ietf_ext.h\">\r\n      <Filter>include\\sodium\\private</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\private\\implementations.h\">\r\n      <Filter>include\\sodium\\private</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\blamka-round-ref.h\">\r\n      <Filter>crypto_pwhash\\argon2</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\blamka-round-avx2.h\">\r\n      <Filter>crypto_pwhash\\argon2</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\blamka-round-neon.h\">\r\n      <Filter>crypto_pwhash\\argon2</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\blamka-round-wasm32.h\">\r\n      <Filter>crypto_pwhash\\argon2</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\argon2.h\">\r\n      <Filter>crypto_pwhash\\argon2</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\blamka-round-ssse3.h\">\r\n      <Filter>crypto_pwhash\\argon2</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\argon2-encoding.h\">\r\n      <Filter>crypto_pwhash\\argon2</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\blake2b-long.h\">\r\n      <Filter>crypto_pwhash\\argon2</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\blamka-round-avx512f.h\">\r\n      <Filter>crypto_pwhash\\argon2</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\argon2-core.h\">\r\n      <Filter>crypto_pwhash\\argon2</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\scryptsalsa208sha256\\crypto_scrypt.h\">\r\n      <Filter>crypto_pwhash\\scryptsalsa208sha256</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\scryptsalsa208sha256\\pbkdf2-sha256.h\">\r\n      <Filter>crypto_pwhash\\scryptsalsa208sha256</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_xof\\shake128\\ref\\shake128_ref.h\">\r\n      <Filter>crypto_xof\\shake128\\ref</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_xof\\shake256\\ref\\shake256_ref.h\">\r\n      <Filter>crypto_xof\\shake256\\ref</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_xof\\turboshake256\\ref\\turboshake256_ref.h\">\r\n      <Filter>crypto_xof\\turboshake256\\ref</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_xof\\turboshake128\\ref\\turboshake128_ref.h\">\r\n      <Filter>crypto_xof\\turboshake128\\ref</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_shorthash\\siphash24\\ref\\shorthash_siphash_ref.h\">\r\n      <Filter>crypto_shorthash\\siphash24\\ref</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_scalarmult\\curve25519\\scalarmult_curve25519.h\">\r\n      <Filter>crypto_scalarmult\\curve25519</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_scalarmult\\curve25519\\sandy2x\\consts_namespace.h\">\r\n      <Filter>crypto_scalarmult\\curve25519\\sandy2x</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_scalarmult\\curve25519\\sandy2x\\ladder_namespace.h\">\r\n      <Filter>crypto_scalarmult\\curve25519\\sandy2x</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_scalarmult\\curve25519\\sandy2x\\fe.h\">\r\n      <Filter>crypto_scalarmult\\curve25519\\sandy2x</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_scalarmult\\curve25519\\sandy2x\\ladder.h\">\r\n      <Filter>crypto_scalarmult\\curve25519\\sandy2x</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_scalarmult\\curve25519\\sandy2x\\fe51.h\">\r\n      <Filter>crypto_scalarmult\\curve25519\\sandy2x</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_scalarmult\\curve25519\\sandy2x\\curve25519_sandy2x.h\">\r\n      <Filter>crypto_scalarmult\\curve25519\\sandy2x</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_scalarmult\\curve25519\\sandy2x\\fe51_namespace.h\">\r\n      <Filter>crypto_scalarmult\\curve25519\\sandy2x</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_scalarmult\\curve25519\\ref10\\x25519_ref10.h\">\r\n      <Filter>crypto_scalarmult\\curve25519\\ref10</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_onetimeauth\\poly1305\\onetimeauth_poly1305.h\">\r\n      <Filter>crypto_onetimeauth\\poly1305</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_onetimeauth\\poly1305\\donna\\poly1305_donna.h\">\r\n      <Filter>crypto_onetimeauth\\poly1305\\donna</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_onetimeauth\\poly1305\\donna\\poly1305_donna64.h\">\r\n      <Filter>crypto_onetimeauth\\poly1305\\donna</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_onetimeauth\\poly1305\\donna\\poly1305_donna32.h\">\r\n      <Filter>crypto_onetimeauth\\poly1305\\donna</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_onetimeauth\\poly1305\\sse2\\poly1305_sse2.h\">\r\n      <Filter>crypto_onetimeauth\\poly1305\\sse2</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_ipcrypt\\ipcrypt_soft.h\">\r\n      <Filter>crypto_ipcrypt</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_ipcrypt\\ipcrypt_aesni.h\">\r\n      <Filter>crypto_ipcrypt</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_ipcrypt\\ipcrypt_armcrypto.h\">\r\n      <Filter>crypto_ipcrypt</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_ipcrypt\\implementations.h\">\r\n      <Filter>crypto_ipcrypt</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\chacha20\\stream_chacha20.h\">\r\n      <Filter>crypto_stream\\chacha20</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\chacha20\\ref\\chacha20_ref.h\">\r\n      <Filter>crypto_stream\\chacha20\\ref</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\chacha20\\dolbeau\\u4.h\">\r\n      <Filter>crypto_stream\\chacha20\\dolbeau</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\chacha20\\dolbeau\\chacha20_dolbeau-ssse3.h\">\r\n      <Filter>crypto_stream\\chacha20\\dolbeau</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\chacha20\\dolbeau\\u0.h\">\r\n      <Filter>crypto_stream\\chacha20\\dolbeau</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\chacha20\\dolbeau\\u1.h\">\r\n      <Filter>crypto_stream\\chacha20\\dolbeau</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\chacha20\\dolbeau\\chacha20_dolbeau-avx2.h\">\r\n      <Filter>crypto_stream\\chacha20\\dolbeau</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\chacha20\\dolbeau\\u8.h\">\r\n      <Filter>crypto_stream\\chacha20\\dolbeau</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\salsa20\\stream_salsa20.h\">\r\n      <Filter>crypto_stream\\salsa20</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\salsa20\\ref\\salsa20_ref.h\">\r\n      <Filter>crypto_stream\\salsa20\\ref</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\salsa20\\xmm6int\\u4.h\">\r\n      <Filter>crypto_stream\\salsa20\\xmm6int</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\salsa20\\xmm6int\\u0.h\">\r\n      <Filter>crypto_stream\\salsa20\\xmm6int</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\salsa20\\xmm6int\\u1.h\">\r\n      <Filter>crypto_stream\\salsa20\\xmm6int</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\salsa20\\xmm6int\\salsa20_xmm6int-avx2.h\">\r\n      <Filter>crypto_stream\\salsa20\\xmm6int</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\salsa20\\xmm6int\\u8.h\">\r\n      <Filter>crypto_stream\\salsa20\\xmm6int</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\salsa20\\xmm6int\\salsa20_xmm6int-sse2.h\">\r\n      <Filter>crypto_stream\\salsa20\\xmm6int</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\salsa20\\xmm6\\salsa20_xmm6-asm_namespace.h\">\r\n      <Filter>crypto_stream\\salsa20\\xmm6</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\salsa20\\xmm6\\salsa20_xmm6.h\">\r\n      <Filter>crypto_stream\\salsa20\\xmm6</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_aead\\aegis128l\\aegis128l_armcrypto.h\">\r\n      <Filter>crypto_aead\\aegis128l</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_aead\\aegis128l\\aegis128l_aesni.h\">\r\n      <Filter>crypto_aead\\aegis128l</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_aead\\aegis128l\\aegis128l_soft.h\">\r\n      <Filter>crypto_aead\\aegis128l</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_aead\\aegis128l\\aegis128l_common.h\">\r\n      <Filter>crypto_aead\\aegis128l</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_aead\\aegis128l\\implementations.h\">\r\n      <Filter>crypto_aead\\aegis128l</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_aead\\aegis256\\aegis256_aesni.h\">\r\n      <Filter>crypto_aead\\aegis256</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_aead\\aegis256\\aegis256_common.h\">\r\n      <Filter>crypto_aead\\aegis256</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_aead\\aegis256\\implementations.h\">\r\n      <Filter>crypto_aead\\aegis256</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_aead\\aegis256\\aegis256_armcrypto.h\">\r\n      <Filter>crypto_aead\\aegis256</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_aead\\aegis256\\aegis256_soft.h\">\r\n      <Filter>crypto_aead\\aegis256</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_kem\\mlkem768\\ref\\kem_mlkem768_ref.h\">\r\n      <Filter>crypto_kem\\mlkem768\\ref</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_core\\keccak1600\\ref\\keccak1600_ref.h\">\r\n      <Filter>crypto_core\\keccak1600\\ref</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_core\\keccak1600\\armsha3\\keccak1600_armsha3.h\">\r\n      <Filter>crypto_core\\keccak1600\\armsha3</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_core\\ed25519\\core_h2c.h\">\r\n      <Filter>crypto_core\\ed25519</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_core\\ed25519\\ref10\\fe_25_5\\constants.h\">\r\n      <Filter>crypto_core\\ed25519\\ref10\\fe_25_5</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_core\\ed25519\\ref10\\fe_25_5\\fe.h\">\r\n      <Filter>crypto_core\\ed25519\\ref10\\fe_25_5</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_core\\ed25519\\ref10\\fe_25_5\\base2.h\">\r\n      <Filter>crypto_core\\ed25519\\ref10\\fe_25_5</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_core\\ed25519\\ref10\\fe_25_5\\base.h\">\r\n      <Filter>crypto_core\\ed25519\\ref10\\fe_25_5</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_core\\ed25519\\ref10\\fe_51\\constants.h\">\r\n      <Filter>crypto_core\\ed25519\\ref10\\fe_51</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_core\\ed25519\\ref10\\fe_51\\fe.h\">\r\n      <Filter>crypto_core\\ed25519\\ref10\\fe_51</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_core\\ed25519\\ref10\\fe_51\\base2.h\">\r\n      <Filter>crypto_core\\ed25519\\ref10\\fe_51</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_core\\ed25519\\ref10\\fe_51\\base.h\">\r\n      <Filter>crypto_core\\ed25519\\ref10\\fe_51</Filter>\r\n    </ClInclude>\r\n  </ItemGroup>\r\n  <ItemGroup>\r\n    <Filter Include=\"crypto_aead\">\r\n      <UniqueIdentifier>{a6837e41-3751-38c9-bb90-dd59d5f4af7b}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_aead\\aegis128l\">\r\n      <UniqueIdentifier>{9e2a023d-fef1-3231-90ba-9a0ffc9bc9ab}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_aead\\aegis256\">\r\n      <UniqueIdentifier>{6897a4cc-0091-3970-b712-c0ac75c16b67}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_aead\\aes256gcm\">\r\n      <UniqueIdentifier>{3e53394c-b59c-30cc-ae69-a4f46f9edfa3}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_aead\\aes256gcm\\aesni\">\r\n      <UniqueIdentifier>{7eb51140-a50f-3f50-b379-83677a82496c}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_aead\\aes256gcm\\armcrypto\">\r\n      <UniqueIdentifier>{507bb9aa-b65c-3034-946b-bcd375b7deaa}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_aead\\chacha20poly1305\">\r\n      <UniqueIdentifier>{1f4d6dd1-517f-3eeb-b974-2304ada5e67a}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_aead\\xchacha20poly1305\">\r\n      <UniqueIdentifier>{3122f223-e6c2-3ab1-ad85-ca289b47419e}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_auth\">\r\n      <UniqueIdentifier>{0a3af0f3-56f7-3551-a64e-6284feccc423}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_auth\\hmacsha256\">\r\n      <UniqueIdentifier>{64e89b4f-eec9-38c9-90f2-4881bf5e84c0}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_auth\\hmacsha512\">\r\n      <UniqueIdentifier>{0c0b4001-ae11-3d0f-8e73-75ac9b6e1ae8}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_auth\\hmacsha512256\">\r\n      <UniqueIdentifier>{f5065d74-beda-3e1e-819a-f606279c7fe9}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_box\">\r\n      <UniqueIdentifier>{f7aedb93-94a6-3ede-9374-ff41daca4841}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_box\\curve25519xchacha20poly1305\">\r\n      <UniqueIdentifier>{0e7473c9-9c69-36b3-ab6c-d953647a15a6}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_box\\curve25519xsalsa20poly1305\">\r\n      <UniqueIdentifier>{d75db64c-eb08-3f10-9b99-1b6e6827f348}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_core\">\r\n      <UniqueIdentifier>{73194d5d-588a-342f-bee6-f28b4486f20b}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_core\\ed25519\">\r\n      <UniqueIdentifier>{7c5e6f81-e4ce-3018-a776-a1f125072d73}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_core\\ed25519\\ref10\">\r\n      <UniqueIdentifier>{76990c08-d692-367f-b286-c728a8cad6bf}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_core\\ed25519\\ref10\\fe_25_5\">\r\n      <UniqueIdentifier>{bf04f786-7862-3bde-aeba-ed82ee59ca22}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_core\\ed25519\\ref10\\fe_51\">\r\n      <UniqueIdentifier>{98b6126a-3725-3707-a4cc-ff3af657cba0}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_core\\hchacha20\">\r\n      <UniqueIdentifier>{8b704d11-af1f-30c0-9981-479da6d88dc3}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_core\\hsalsa20\">\r\n      <UniqueIdentifier>{342e684b-4e18-311c-953c-8391a544a04f}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_core\\hsalsa20\\ref2\">\r\n      <UniqueIdentifier>{c6b8e28c-7c54-3af7-bee3-2948ba7b2082}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_core\\keccak1600\">\r\n      <UniqueIdentifier>{85c1722f-2d65-30a8-aefb-ebf1cbfe185e}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_core\\keccak1600\\armsha3\">\r\n      <UniqueIdentifier>{855cc78f-1fe0-3ad2-a2ac-5e2b0c01c235}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_core\\keccak1600\\ref\">\r\n      <UniqueIdentifier>{9462f285-fee0-3779-983b-2811dc621f7d}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_core\\salsa\">\r\n      <UniqueIdentifier>{4e9a1d6b-ee07-3bbc-ad78-6d0ba0e6d9d3}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_core\\salsa\\ref\">\r\n      <UniqueIdentifier>{eb259fd9-56f0-32db-a903-6bc1549a7326}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_core\\softaes\">\r\n      <UniqueIdentifier>{05997596-e3d7-3bf1-ad4d-39e4c5fd56f6}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_generichash\">\r\n      <UniqueIdentifier>{e53b6258-fcdd-34c8-96c5-44510a34a390}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_generichash\\blake2b\">\r\n      <UniqueIdentifier>{8bd3b558-2d08-3c3a-81ca-22677dde943b}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_generichash\\blake2b\\ref\">\r\n      <UniqueIdentifier>{16a8dd41-b0ab-39a7-80c8-3052d8b63811}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_hash\">\r\n      <UniqueIdentifier>{d7ec3690-bae7-3653-8c53-66a3142cfcfa}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_hash\\sha256\">\r\n      <UniqueIdentifier>{722ef422-8c03-3008-ba2a-3a7e91c6647c}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_hash\\sha256\\cp\">\r\n      <UniqueIdentifier>{8c7d8b62-7b4f-3eb9-85b7-18e8d925be14}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_hash\\sha3\">\r\n      <UniqueIdentifier>{6df763e3-9707-3014-8cfe-2f9a8a83a872}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_hash\\sha512\">\r\n      <UniqueIdentifier>{8fb6a906-dbd6-3746-9b0f-f49e7028daec}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_hash\\sha512\\cp\">\r\n      <UniqueIdentifier>{f2d6a22b-dd67-3561-90a4-88696169cb7b}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_ipcrypt\">\r\n      <UniqueIdentifier>{5c3b1fe7-203f-36fd-bca5-8d0c4b466d80}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_kdf\">\r\n      <UniqueIdentifier>{aaf59186-1c0d-33cf-a34d-93e14bb87226}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_kdf\\blake2b\">\r\n      <UniqueIdentifier>{3d42d2a2-b192-33dd-9162-508916414707}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_kdf\\hkdf\">\r\n      <UniqueIdentifier>{baf7d894-9298-391d-8dc2-e4c3010f5ddc}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_kem\">\r\n      <UniqueIdentifier>{b9009d4a-dd97-341d-aafb-eeeb77191a49}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_kem\\mlkem768\">\r\n      <UniqueIdentifier>{ab0c8a55-3e1f-307e-82be-8291a3b43735}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_kem\\mlkem768\\ref\">\r\n      <UniqueIdentifier>{70a10765-f8fb-3898-8514-966e48719bc4}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_kem\\xwing\">\r\n      <UniqueIdentifier>{2ef7c851-6598-3be5-88be-9ac5ec867cb0}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_kx\">\r\n      <UniqueIdentifier>{898b6bd5-1360-3a34-adcd-0fade7561685}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_onetimeauth\">\r\n      <UniqueIdentifier>{323c0a15-3c1d-39b2-9ec1-299deb299497}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_onetimeauth\\poly1305\">\r\n      <UniqueIdentifier>{52c2080d-37c0-34c2-864a-c201c728e5d8}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_onetimeauth\\poly1305\\donna\">\r\n      <UniqueIdentifier>{ff618a41-caeb-3a18-ad36-d34b049a8f50}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_onetimeauth\\poly1305\\sse2\">\r\n      <UniqueIdentifier>{ffc3712d-dfe0-3b51-8257-f5ffc9c9cea3}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_pwhash\">\r\n      <UniqueIdentifier>{f54b65b6-71cf-3ab3-9c8c-f89c81846836}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_pwhash\\argon2\">\r\n      <UniqueIdentifier>{1bd97a78-befa-3805-8e9c-80d7c1aff37b}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_pwhash\\scryptsalsa208sha256\">\r\n      <UniqueIdentifier>{e785f104-1212-37bf-8511-cc518b9ace66}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_pwhash\\scryptsalsa208sha256\\nosse\">\r\n      <UniqueIdentifier>{447b993f-59fb-3efd-8c59-a1712c97dfe8}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_pwhash\\scryptsalsa208sha256\\sse\">\r\n      <UniqueIdentifier>{cdb8d233-06b0-3872-a62b-c1ccf4cb4314}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_scalarmult\">\r\n      <UniqueIdentifier>{402a1c5a-d499-333a-a2fa-acd0e6a3c2b2}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_scalarmult\\curve25519\">\r\n      <UniqueIdentifier>{77f5a2e9-2ef1-3a72-b63c-88e8e4b92678}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_scalarmult\\curve25519\\ref10\">\r\n      <UniqueIdentifier>{6c9c7c30-0808-3fad-8a88-944d7645e5d5}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_scalarmult\\curve25519\\sandy2x\">\r\n      <UniqueIdentifier>{5d2fb1a2-f063-32db-a81a-41f79e36fd23}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_scalarmult\\ed25519\">\r\n      <UniqueIdentifier>{7bec6074-fbc7-330b-9e18-7dc3e868569a}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_scalarmult\\ed25519\\ref10\">\r\n      <UniqueIdentifier>{834d4827-81e4-3de3-baa1-a216763f11d6}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_scalarmult\\ristretto255\">\r\n      <UniqueIdentifier>{52bf28eb-7ffd-399a-be35-0df3e8e99c15}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_scalarmult\\ristretto255\\ref10\">\r\n      <UniqueIdentifier>{39cc576f-4b54-3d71-b14c-27445bc4b138}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_secretbox\">\r\n      <UniqueIdentifier>{b9b02bee-5c1f-36d2-b97d-983f865a4cc6}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_secretbox\\xchacha20poly1305\">\r\n      <UniqueIdentifier>{41f1f35b-4639-3424-be85-7dfba02f3c5e}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_secretbox\\xsalsa20poly1305\">\r\n      <UniqueIdentifier>{8bf11d29-2f5a-3f10-8ae6-82229d19c5b0}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_secretstream\">\r\n      <UniqueIdentifier>{62f7ae38-4ce6-3976-acc3-47c462db4fbe}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_secretstream\\xchacha20poly1305\">\r\n      <UniqueIdentifier>{e07a28cd-775a-3798-bfdb-97842d3614d6}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_shorthash\">\r\n      <UniqueIdentifier>{bb073c16-adc8-3cff-80b9-99cf5a28de6c}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_shorthash\\siphash24\">\r\n      <UniqueIdentifier>{63de0ec8-ecde-35e3-8b97-6e9e4da342ee}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_shorthash\\siphash24\\ref\">\r\n      <UniqueIdentifier>{29925210-53eb-342c-8527-7ebc173e668f}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_sign\">\r\n      <UniqueIdentifier>{b2f989b6-87a6-3388-a35c-2d0d59cb4236}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_sign\\ed25519\">\r\n      <UniqueIdentifier>{bc6466a1-57b0-3a35-9973-ad488a4bef8c}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_sign\\ed25519\\ref10\">\r\n      <UniqueIdentifier>{5599d9ab-b5b2-3310-b541-ae0fb70eecf1}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_stream\">\r\n      <UniqueIdentifier>{eaedd08a-46f8-3d12-9e8d-bb3ee3ead5f6}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_stream\\chacha20\">\r\n      <UniqueIdentifier>{806b6ff3-578b-308a-a359-0f5ed8472ecc}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_stream\\chacha20\\dolbeau\">\r\n      <UniqueIdentifier>{5a1d852e-67bb-3dc1-9ec5-99ef74b7faca}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_stream\\chacha20\\ref\">\r\n      <UniqueIdentifier>{33e45d9c-e12a-3e76-9ef2-4f5510244a5b}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_stream\\salsa20\">\r\n      <UniqueIdentifier>{048ba2a8-b22b-346c-9886-668b63c88c68}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_stream\\salsa20\\ref\">\r\n      <UniqueIdentifier>{f08a312f-f8a3-350b-87ab-1f79d33e513f}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_stream\\salsa20\\xmm6\">\r\n      <UniqueIdentifier>{c403f690-cd22-3ed4-9cc7-3f46e73081fd}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_stream\\salsa20\\xmm6int\">\r\n      <UniqueIdentifier>{c34d03f5-cf47-39fe-a5ad-5eb917006203}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_stream\\salsa2012\">\r\n      <UniqueIdentifier>{4da0c5ca-33d1-34e0-9689-12e69ae2dbd6}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_stream\\salsa2012\\ref\">\r\n      <UniqueIdentifier>{dd6b294c-5871-386c-92ec-aa46fcc411d4}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_stream\\salsa208\">\r\n      <UniqueIdentifier>{07aca978-0547-329a-b70b-29aa579cacc5}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_stream\\salsa208\\ref\">\r\n      <UniqueIdentifier>{f171fa05-35c4-32a0-b035-b5d6680ab714}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_stream\\xchacha20\">\r\n      <UniqueIdentifier>{ede2279c-1ba7-3d62-8345-733c6c1965e7}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_stream\\xsalsa20\">\r\n      <UniqueIdentifier>{9c15151b-10dc-3dfe-b97b-a7d8c6b58920}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_verify\">\r\n      <UniqueIdentifier>{49fb9272-ffe2-3993-b562-b19d5f2c9b40}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_xof\">\r\n      <UniqueIdentifier>{9d0b6e6c-57a5-33bb-a67c-c1ce5a5e0684}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_xof\\shake128\">\r\n      <UniqueIdentifier>{3311f765-9a5b-3614-a24f-9b97a56240aa}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_xof\\shake128\\ref\">\r\n      <UniqueIdentifier>{0b3ce98f-5f0a-3836-a95f-5ebd938a0e15}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_xof\\shake256\">\r\n      <UniqueIdentifier>{d4f668ef-b456-369e-b8bf-b1b6d4e90a6d}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_xof\\shake256\\ref\">\r\n      <UniqueIdentifier>{c5174d81-c82a-3411-98f7-829a427faddc}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_xof\\turboshake128\">\r\n      <UniqueIdentifier>{6ccaee32-fd4e-3b58-be6b-a2866132d22d}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_xof\\turboshake128\\ref\">\r\n      <UniqueIdentifier>{00e8736b-cf8d-3a60-bfbe-f0c535d45696}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_xof\\turboshake256\">\r\n      <UniqueIdentifier>{8f7b92bd-0b08-3b14-8693-2df66b256d8b}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_xof\\turboshake256\\ref\">\r\n      <UniqueIdentifier>{bcea4d5e-5593-3465-ac95-2ecd34340ce3}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"include\">\r\n      <UniqueIdentifier>{96da72eb-3aa0-3850-83eb-32788f91e5bd}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"include\\sodium\">\r\n      <UniqueIdentifier>{56bb40fc-d381-3a9e-925b-681774c48dde}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"include\\sodium\\private\">\r\n      <UniqueIdentifier>{fde88485-0fe6-3b22-9480-1d2b49fade53}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"randombytes\">\r\n      <UniqueIdentifier>{ef090484-4db4-3dc2-aca7-c59bab1db23b}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"randombytes\\internal\">\r\n      <UniqueIdentifier>{14c126fd-bb91-37ea-b807-b60c386be601}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"randombytes\\sysrandom\">\r\n      <UniqueIdentifier>{ac56c38f-7e17-3b79-bf47-58e9476b3b89}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"sodium\">\r\n      <UniqueIdentifier>{5dfc520b-f690-3d5f-a86a-8b667f2e7490}</UniqueIdentifier>\r\n    </Filter>\r\n  </ItemGroup>\r\n</Project>\r\n"
  },
  {
    "path": "builds/msvc/vs2022/libsodium/libsodium.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<ProjectSchemaDefinitions xmlns=\"clr-namespace:Microsoft.Build.Framework.XamlTypes;assembly=Microsoft.Build.Framework\">\n  <Rule Name=\"libsodium-uiextension\" PageTemplate=\"tool\" DisplayName=\"Sodium Options\" SwitchPrefix=\"/\" Order=\"1\">\n    <Rule.Categories>\n      <Category Name=\"amd64asm\" DisplayName=\"amd64asm\" />\n    </Rule.Categories>\n    <Rule.DataSource>\n      <DataSource Persistence=\"ProjectFile\" ItemType=\"\" />\n    </Rule.DataSource>\n    <EnumProperty Name=\"Option-amd64asm\" DisplayName=\"Enable AMD64 Assembly\" Description=\"Enable the AMD64 Assembly build option\" Category=\"amd64asm\">\n      <EnumValue Name=\"\" DisplayName=\"No\" />\n      <EnumValue Name=\"true\" DisplayName=\"Yes\" />\n    </EnumProperty>\n  </Rule>\n</ProjectSchemaDefinitions>"
  },
  {
    "path": "builds/msvc/vs2022/libsodium.import.props",
    "content": "﻿<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<Project DefaultTargets=\"Build\" xmlns=\"http://schemas.microsoft.com/developer/msbuild/2003\">\n\n  <PropertyGroup Label=\"Globals\">\n    <_PropertySheetDisplayName>Libsodium Import Settings</_PropertySheetDisplayName>\n  </PropertyGroup>\n\n  <!-- User Interface -->\n\n  <ItemGroup Label=\"BuildOptionsExtension\">\n    <PropertyPageSchema Include=\"$(MSBuildThisFileDirectory)libsodium.import.xml\" />\n  </ItemGroup>\n\n  <!-- Linkage -->\n\n  <ItemDefinitionGroup>\n    <ClCompile>\n      <AdditionalIncludeDirectories>$(ProjectDir)..\\..\\..\\..\\..\\libsodium\\src\\libsodium\\include;$(ProjectDir)..\\..\\..\\..\\..\\libsodium\\src\\libsodium\\include\\sodium\\;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\n      <PreprocessorDefinitions Condition=\"'$(Linkage-libsodium)' == 'static' Or '$(Linkage-libsodium)' == 'ltcg'\">SODIUM_STATIC;%(PreprocessorDefinitions)</PreprocessorDefinitions>\n    </ClCompile>\n    <Link>\n      <AdditionalDependencies Condition=\"'$(Linkage-libsodium)' != ''\">advapi32.lib;libsodium.lib;%(AdditionalDependencies)</AdditionalDependencies>\n      <AdditionalLibraryDirectories Condition=\"$(Configuration.IndexOf('Debug')) != -1\">$(ProjectDir)..\\..\\..\\..\\..\\libsodium\\bin\\$(PlatformName)\\Debug\\$(PlatformToolset)\\$(Linkage-libsodium)\\;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>\n      <AdditionalLibraryDirectories Condition=\"$(Configuration.IndexOf('Release')) != -1\">$(ProjectDir)..\\..\\..\\..\\..\\libsodium\\bin\\$(PlatformName)\\Release\\$(PlatformToolset)\\$(Linkage-libsodium)\\;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>\n    </Link>\n  </ItemDefinitionGroup>\n\n  <!-- Copy -->\n\n  <Target Name=\"Linkage-libsodium-dynamic\" AfterTargets=\"AfterBuild\" Condition=\"'$(Linkage-libsodium)' == 'dynamic'\">\n    <Copy Condition=\"$(Configuration.IndexOf('Debug')) != -1\"\n          SourceFiles=\"$(ProjectDir)..\\..\\..\\..\\..\\libsodium\\bin\\$(PlatformName)\\Debug\\$(PlatformToolset)\\dynamic\\libsodium.dll\"\n          DestinationFiles=\"$(TargetDir)libsodium.dll\"\n          SkipUnchangedFiles=\"true\" />\n    <Copy Condition=\"$(Configuration.IndexOf('Debug')) != -1\"\n          SourceFiles=\"$(ProjectDir)..\\..\\..\\..\\..\\libsodium\\bin\\$(PlatformName)\\Debug\\$(PlatformToolset)\\dynamic\\libsodium.pdb\"\n          DestinationFiles=\"$(TargetDir)libsodium.pdb\"\n          SkipUnchangedFiles=\"true\" />\n    <Copy Condition=\"$(Configuration.IndexOf('Release')) != -1\"\n          SourceFiles=\"$(ProjectDir)..\\..\\..\\..\\..\\libsodium\\bin\\$(PlatformName)\\Release\\$(PlatformToolset)\\dynamic\\libsodium.dll\"\n          DestinationFiles=\"$(TargetDir)libsodium.dll\"\n          SkipUnchangedFiles=\"true\" />\n  </Target>\n\n  <!-- Messages -->\n\n  <Target Name=\"libsodium-info\" BeforeTargets=\"AfterBuild\" Condition=\"'$(Linkage-libsodium)' == 'dynamic'\">\n    <Message Text=\"Copying libsodium.dll -&gt; $(TargetDir)libsodium.dll\" Importance=\"high\"/>\n    <Message Text=\"Copying libsodium.pdb -&gt; $(TargetDir)libsodium.pdb\" Importance=\"high\" Condition=\"$(Configuration.IndexOf('Debug')) != -1\" />\n  </Target>\n\n</Project>"
  },
  {
    "path": "builds/msvc/vs2022/libsodium.import.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<ProjectSchemaDefinitions xmlns=\"clr-namespace:Microsoft.Build.Framework.XamlTypes;assembly=Microsoft.Build.Framework\">\n  <Rule Name=\"libsodium-linkage-uiextension\" PageTemplate=\"tool\" DisplayName=\"Local Dependencies\" SwitchPrefix=\"/\" Order=\"1\">\n    <Rule.Categories>\n      <Category Name=\"libsodium\" DisplayName=\"libsodium\" />\n    </Rule.Categories>\n    <Rule.DataSource>\n      <DataSource Persistence=\"ProjectFile\" ItemType=\"\" />\n    </Rule.DataSource>\n    <EnumProperty Name=\"Linkage-libsodium\" DisplayName=\"Linkage\" Description=\"How libsodium will be linked into the output of this project\" Category=\"libsodium\">\n      <EnumValue Name=\"\" DisplayName=\"Not linked\" />\n      <EnumValue Name=\"dynamic\" DisplayName=\"Dynamic (DLL)\" />\n      <EnumValue Name=\"static\" DisplayName=\"Static (LIB)\" />\n      <EnumValue Name=\"ltcg\" DisplayName=\"Static using link time compile generation (LTCG)\" />\n    </EnumProperty>\n  </Rule>\n</ProjectSchemaDefinitions>"
  },
  {
    "path": "builds/msvc/vs2022/libsodium.sln",
    "content": "﻿\r\nMicrosoft Visual Studio Solution File, Format Version 12.00\r\n# Visual Studio 15\r\nVisualStudioVersion = 15.0.26228.4\r\nMinimumVisualStudioVersion = 10.0.40219.1\r\nProject(\"{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}\") = \"libsodium\", \"libsodium\\libsodium.vcxproj\", \"{A185B162-6CB6-4502-B03F-B56F7699A8D9}\"\r\nEndProject\r\nGlobal\r\n\tGlobalSection(SolutionConfigurationPlatforms) = preSolution\r\n\t\tDynDebug|Win32 = DynDebug|Win32\r\n\t\tDynDebug|x64 = DynDebug|x64\r\n\t\tDynDebug|ARM64 = DynDebug|ARM64\r\n\t\tDynRelease|Win32 = DynRelease|Win32\r\n\t\tDynRelease|x64 = DynRelease|x64\r\n\t\tDynRelease|ARM64 = DynRelease|ARM64\r\n\t\tLtcgDebug|Win32 = LtcgDebug|Win32\r\n\t\tLtcgDebug|x64 = LtcgDebug|x64\r\n\t\tLtcgDebug|ARM64 = LtcgDebug|ARM64\r\n\t\tLtcgRelease|Win32 = LtcgRelease|Win32\r\n\t\tLtcgRelease|x64 = LtcgRelease|x64\r\n\t\tLtcgRelease|ARM64 = LtcgRelease|ARM64\r\n\t\tStaticDebug|Win32 = StaticDebug|Win32\r\n\t\tStaticDebug|x64 = StaticDebug|x64\r\n\t\tStaticDebug|ARM64 = StaticDebug|ARM64\r\n\t\tStaticRelease|Win32 = StaticRelease|Win32\r\n\t\tStaticRelease|x64 = StaticRelease|x64\r\n\t\tStaticRelease|ARM64 = StaticRelease|ARM64\r\n\tEndGlobalSection\r\n\tGlobalSection(ProjectConfigurationPlatforms) = postSolution\r\n\t\t{A185B162-6CB6-4502-B03F-B56F7699A8D9}.DynDebug|Win32.ActiveCfg = DebugDLL|Win32\r\n\t\t{A185B162-6CB6-4502-B03F-B56F7699A8D9}.DynDebug|Win32.Build.0 = DebugDLL|Win32\r\n\t\t{A185B162-6CB6-4502-B03F-B56F7699A8D9}.DynDebug|x64.ActiveCfg = DebugDLL|x64\r\n\t\t{A185B162-6CB6-4502-B03F-B56F7699A8D9}.DynDebug|x64.Build.0 = DebugDLL|x64\r\n\t\t{A185B162-6CB6-4502-B03F-B56F7699A8D9}.DynDebug|ARM64.ActiveCfg = DebugDLL|ARM64\r\n\t\t{A185B162-6CB6-4502-B03F-B56F7699A8D9}.DynDebug|ARM64.Build.0 = DebugDLL|ARM64\r\n\t\t{A185B162-6CB6-4502-B03F-B56F7699A8D9}.DynRelease|Win32.ActiveCfg = ReleaseDLL|Win32\r\n\t\t{A185B162-6CB6-4502-B03F-B56F7699A8D9}.DynRelease|Win32.Build.0 = ReleaseDLL|Win32\r\n\t\t{A185B162-6CB6-4502-B03F-B56F7699A8D9}.DynRelease|x64.ActiveCfg = ReleaseDLL|x64\r\n\t\t{A185B162-6CB6-4502-B03F-B56F7699A8D9}.DynRelease|x64.Build.0 = ReleaseDLL|x64\r\n\t\t{A185B162-6CB6-4502-B03F-B56F7699A8D9}.DynRelease|ARM64.ActiveCfg = ReleaseDLL|ARM64\r\n\t\t{A185B162-6CB6-4502-B03F-B56F7699A8D9}.DynRelease|ARM64.Build.0 = ReleaseDLL|ARM64\r\n\t\t{A185B162-6CB6-4502-B03F-B56F7699A8D9}.LtcgDebug|Win32.ActiveCfg = DebugLTCG|Win32\r\n\t\t{A185B162-6CB6-4502-B03F-B56F7699A8D9}.LtcgDebug|Win32.Build.0 = DebugLTCG|Win32\r\n\t\t{A185B162-6CB6-4502-B03F-B56F7699A8D9}.LtcgDebug|x64.ActiveCfg = DebugLTCG|x64\r\n\t\t{A185B162-6CB6-4502-B03F-B56F7699A8D9}.LtcgDebug|x64.Build.0 = DebugLTCG|x64\r\n\t\t{A185B162-6CB6-4502-B03F-B56F7699A8D9}.LtcgDebug|ARM64.ActiveCfg = DebugLTCG|ARM64\r\n\t\t{A185B162-6CB6-4502-B03F-B56F7699A8D9}.LtcgDebug|ARM64.Build.0 = DebugLTCG|ARM64\r\n\t\t{A185B162-6CB6-4502-B03F-B56F7699A8D9}.LtcgRelease|Win32.ActiveCfg = ReleaseLTCG|Win32\r\n\t\t{A185B162-6CB6-4502-B03F-B56F7699A8D9}.LtcgRelease|Win32.Build.0 = ReleaseLTCG|Win32\r\n\t\t{A185B162-6CB6-4502-B03F-B56F7699A8D9}.LtcgRelease|x64.ActiveCfg = ReleaseLTCG|x64\r\n\t\t{A185B162-6CB6-4502-B03F-B56F7699A8D9}.LtcgRelease|x64.Build.0 = ReleaseLTCG|x64\r\n\t\t{A185B162-6CB6-4502-B03F-B56F7699A8D9}.LtcgRelease|ARM64.ActiveCfg = ReleaseLTCG|ARM64\r\n\t\t{A185B162-6CB6-4502-B03F-B56F7699A8D9}.LtcgRelease|ARM64.Build.0 = ReleaseLTCG|ARM64\r\n\t\t{A185B162-6CB6-4502-B03F-B56F7699A8D9}.StaticDebug|Win32.ActiveCfg = DebugLIB|Win32\r\n\t\t{A185B162-6CB6-4502-B03F-B56F7699A8D9}.StaticDebug|Win32.Build.0 = DebugLIB|Win32\r\n\t\t{A185B162-6CB6-4502-B03F-B56F7699A8D9}.StaticDebug|x64.ActiveCfg = DebugLIB|x64\r\n\t\t{A185B162-6CB6-4502-B03F-B56F7699A8D9}.StaticDebug|x64.Build.0 = DebugLIB|x64\r\n\t\t{A185B162-6CB6-4502-B03F-B56F7699A8D9}.StaticDebug|ARM64.ActiveCfg = DebugLIB|ARM64\r\n\t\t{A185B162-6CB6-4502-B03F-B56F7699A8D9}.StaticDebug|ARM64.Build.0 = DebugLIB|ARM64\r\n\t\t{A185B162-6CB6-4502-B03F-B56F7699A8D9}.StaticRelease|Win32.ActiveCfg = ReleaseLIB|Win32\r\n\t\t{A185B162-6CB6-4502-B03F-B56F7699A8D9}.StaticRelease|Win32.Build.0 = ReleaseLIB|Win32\r\n\t\t{A185B162-6CB6-4502-B03F-B56F7699A8D9}.StaticRelease|x64.ActiveCfg = ReleaseLIB|x64\r\n\t\t{A185B162-6CB6-4502-B03F-B56F7699A8D9}.StaticRelease|x64.Build.0 = ReleaseLIB|x64\r\n\t\t{A185B162-6CB6-4502-B03F-B56F7699A8D9}.StaticRelease|ARM64.ActiveCfg = ReleaseLIB|ARM64\r\n\t\t{A185B162-6CB6-4502-B03F-B56F7699A8D9}.StaticRelease|ARM64.Build.0 = ReleaseLIB|ARM64\r\n\tEndGlobalSection\r\n\tGlobalSection(SolutionProperties) = preSolution\r\n\t\tHideSolutionNode = FALSE\r\n\tEndGlobalSection\r\nEndGlobal\r\n"
  },
  {
    "path": "builds/msvc/vs2026/libsodium/libsodium.props",
    "content": "﻿<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<Project DefaultTargets=\"Build\" xmlns=\"http://schemas.microsoft.com/developer/msbuild/2003\">\n\n  <PropertyGroup Label=\"Globals\">\n    <_PropertySheetDisplayName>Libsodium Common Settings</_PropertySheetDisplayName>\n    <CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>\n    <RunCodeAnalysis>false</RunCodeAnalysis>\n  </PropertyGroup>\n\n  <!-- User Interface -->\n\n  <ItemGroup Label=\"BuildOptionsExtension\">\n    <PropertyPageSchema Include=\"$(MSBuildThisFileDirectory)$(ProjectName).xml\" />\n  </ItemGroup>\n\n  <!-- Configuration -->\n\n  <ItemDefinitionGroup>\n    <PreBuildEvent>\n      <Command>copy \"$(BuildRoot)version.h\" \"$(RepoRoot)src\\libsodium\\include\\sodium\\\"</Command>\n    </PreBuildEvent>\n    <ClCompile>\n      <AdditionalIncludeDirectories>$(RepoRoot)src\\libsodium\\include;$(RepoRoot)src\\libsodium\\include\\sodium\\;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\n      <DisableSpecificWarnings>4146;4244;%(DisableSpecificWarnings)</DisableSpecificWarnings>\n      <EnablePREfast>false</EnablePREfast>\n      <PreprocessorDefinitions>inline=__inline;NATIVE_LITTLE_ENDIAN;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>\n      <PreprocessorDefinitions Condition=\"'$(ConfigurationType)' == 'StaticLibrary'\">SODIUM_STATIC;%(PreprocessorDefinitions)</PreprocessorDefinitions>\n      <PreprocessorDefinitions Condition=\"'$(ConfigurationType)' == 'DynamicLibrary'\">SODIUM_DLL_EXPORT;%(PreprocessorDefinitions)</PreprocessorDefinitions>\n      <PreprocessorDefinitions Condition=\"'$(Option-amd64asm)' == 'true'\">HAVE_AMD64_ASM;%(PreprocessorDefinitions)</PreprocessorDefinitions>\n    </ClCompile>\n  </ItemDefinitionGroup>\n\n  <!-- Messages -->\n\n  <Target Name=\"CustomInfo\" BeforeTargets=\"PrepareForBuild\">\n    <Message Text=\"Will copy $(BuildRoot)version.h -&gt; $(RepoRoot)src\\libsodium\\include\\sodium\\version.h\" Importance=\"high\"/>\n  </Target>\n\n  <Target Name=\"OptionInfo\" BeforeTargets=\"PrepareForBuild\">\n    <Message Text=\"Option-amd64asm   : $(Option-amd64asm)\" Importance=\"high\"/>\n  </Target>\n\n  <ItemDefinitionGroup>\n    <Link>\n      <AdditionalDependencies>advapi32.lib</AdditionalDependencies>\n    </Link>\n  </ItemDefinitionGroup>\n</Project>\n"
  },
  {
    "path": "builds/msvc/vs2026/libsodium/libsodium.vcxproj",
    "content": "﻿<?xml version=\"1.0\" encoding=\"utf-8\"?>\r\n<Project DefaultTargets=\"Build\" ToolsVersion=\"4.0\"\r\n  xmlns=\"http://schemas.microsoft.com/developer/msbuild/2003\">\r\n  <PropertyGroup Label=\"Globals\">\r\n    <ProjectGuid>{A185B162-6CB6-4502-B03F-B56F7699A8D9}</ProjectGuid>\r\n    <ProjectName>libsodium</ProjectName>\r\n    <PlatformToolset>v145</PlatformToolset>\r\n  </PropertyGroup>\r\n  <ItemGroup Label=\"ProjectConfigurations\">\r\n    <ProjectConfiguration Include=\"DebugDLL|Win32\">\r\n      <Configuration>DebugDLL</Configuration>\r\n      <Platform>Win32</Platform>\r\n    </ProjectConfiguration>\r\n    <ProjectConfiguration Include=\"DebugDLL|x64\">\r\n      <Configuration>DebugDLL</Configuration>\r\n      <Platform>x64</Platform>\r\n    </ProjectConfiguration>\r\n    <ProjectConfiguration Include=\"DebugDLL|ARM64\">\r\n      <Configuration>DebugDLL</Configuration>\r\n      <Platform>ARM64</Platform>\r\n    </ProjectConfiguration>\r\n    <ProjectConfiguration Include=\"ReleaseDLL|Win32\">\r\n      <Configuration>ReleaseDLL</Configuration>\r\n      <Platform>Win32</Platform>\r\n    </ProjectConfiguration>\r\n    <ProjectConfiguration Include=\"ReleaseDLL|x64\">\r\n      <Configuration>ReleaseDLL</Configuration>\r\n      <Platform>x64</Platform>\r\n    </ProjectConfiguration>\r\n    <ProjectConfiguration Include=\"ReleaseDLL|ARM64\">\r\n      <Configuration>ReleaseDLL</Configuration>\r\n      <Platform>ARM64</Platform>\r\n    </ProjectConfiguration>\r\n    <ProjectConfiguration Include=\"DebugLIB|Win32\">\r\n      <Configuration>DebugLIB</Configuration>\r\n      <Platform>Win32</Platform>\r\n    </ProjectConfiguration>\r\n    <ProjectConfiguration Include=\"DebugLIB|x64\">\r\n      <Configuration>DebugLIB</Configuration>\r\n      <Platform>x64</Platform>\r\n    </ProjectConfiguration>\r\n    <ProjectConfiguration Include=\"DebugLIB|ARM64\">\r\n      <Configuration>DebugLIB</Configuration>\r\n      <Platform>ARM64</Platform>\r\n    </ProjectConfiguration>\r\n    <ProjectConfiguration Include=\"ReleaseLIB|Win32\">\r\n      <Configuration>ReleaseLIB</Configuration>\r\n      <Platform>Win32</Platform>\r\n    </ProjectConfiguration>\r\n    <ProjectConfiguration Include=\"ReleaseLIB|x64\">\r\n      <Configuration>ReleaseLIB</Configuration>\r\n      <Platform>x64</Platform>\r\n    </ProjectConfiguration>\r\n    <ProjectConfiguration Include=\"ReleaseLIB|ARM64\">\r\n      <Configuration>ReleaseLIB</Configuration>\r\n      <Platform>ARM64</Platform>\r\n    </ProjectConfiguration>\r\n    <ProjectConfiguration Include=\"DebugLTCG|Win32\">\r\n      <Configuration>DebugLTCG</Configuration>\r\n      <Platform>Win32</Platform>\r\n    </ProjectConfiguration>\r\n    <ProjectConfiguration Include=\"DebugLTCG|x64\">\r\n      <Configuration>DebugLTCG</Configuration>\r\n      <Platform>x64</Platform>\r\n    </ProjectConfiguration>\r\n    <ProjectConfiguration Include=\"DebugLTCG|ARM64\">\r\n      <Configuration>DebugLTCG</Configuration>\r\n      <Platform>ARM64</Platform>\r\n    </ProjectConfiguration>\r\n    <ProjectConfiguration Include=\"ReleaseLTCG|Win32\">\r\n      <Configuration>ReleaseLTCG</Configuration>\r\n      <Platform>Win32</Platform>\r\n    </ProjectConfiguration>\r\n    <ProjectConfiguration Include=\"ReleaseLTCG|x64\">\r\n      <Configuration>ReleaseLTCG</Configuration>\r\n      <Platform>x64</Platform>\r\n    </ProjectConfiguration>\r\n    <ProjectConfiguration Include=\"ReleaseLTCG|ARM64\">\r\n      <Configuration>ReleaseLTCG</Configuration>\r\n      <Platform>ARM64</Platform>\r\n    </ProjectConfiguration>\r\n  </ItemGroup>\r\n  <PropertyGroup Label=\"Configuration\">\r\n    <ConfigurationType Condition=\"$(Configuration.IndexOf('DLL')) == -1\">StaticLibrary</ConfigurationType>\r\n    <ConfigurationType Condition=\"$(Configuration.IndexOf('DLL')) != -1\">DynamicLibrary</ConfigurationType>\r\n  </PropertyGroup>\r\n  <Import Project=\"$(VCTargetsPath)\\Microsoft.Cpp.Default.props\" />\r\n  <Import Project=\"$(VCTargetsPath)\\Microsoft.Cpp.props\" />\r\n  <ImportGroup Label=\"PropertySheets\">\r\n    <Import Project=\"$(ProjectDir)..\\..\\properties\\$(Configuration).props\" />\r\n    <Import Project=\"$(ProjectDir)..\\..\\properties\\Output.props\" />\r\n    <Import Project=\"$(ProjectDir)$(ProjectName).props\" />\r\n  </ImportGroup>\r\n  <ItemGroup>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_generichash\\crypto_generichash.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_generichash\\blake2b\\generichash_blake2.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_generichash\\blake2b\\ref\\blake2b-compress-ref.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_generichash\\blake2b\\ref\\blake2b-compress-ssse3.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_generichash\\blake2b\\ref\\blake2b-compress-avx2.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_generichash\\blake2b\\ref\\blake2b-compress-sse41.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_generichash\\blake2b\\ref\\generichash_blake2b.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_generichash\\blake2b\\ref\\blake2b-ref.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_kx\\crypto_kx.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_sign\\crypto_sign.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_sign\\ed25519\\sign_ed25519.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_sign\\ed25519\\ref10\\sign.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_sign\\ed25519\\ref10\\keypair.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_sign\\ed25519\\ref10\\open.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_secretbox\\crypto_secretbox.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_secretbox\\crypto_secretbox_easy.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_secretbox\\xsalsa20poly1305\\secretbox_xsalsa20poly1305.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_secretbox\\xchacha20poly1305\\secretbox_xchacha20poly1305.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\crypto_pwhash.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\blake2b-long.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\argon2-fill-block-wasm32.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\argon2-core.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\argon2-fill-block-avx512f.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\argon2-fill-block-ref.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\argon2-fill-block-ssse3.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\pwhash_argon2i.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\argon2-fill-block-neon.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\pwhash_argon2id.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\argon2.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\argon2-fill-block-avx2.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\argon2-encoding.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\scryptsalsa208sha256\\scrypt_platform.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\scryptsalsa208sha256\\crypto_scrypt-common.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\scryptsalsa208sha256\\pwhash_scryptsalsa208sha256.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\scryptsalsa208sha256\\pbkdf2-sha256.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\scryptsalsa208sha256\\nosse\\pwhash_scryptsalsa208sha256_nosse.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\scryptsalsa208sha256\\sse\\pwhash_scryptsalsa208sha256_sse.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_xof\\shake128\\xof_shake128.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_xof\\shake128\\ref\\shake128_ref.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_xof\\shake256\\xof_shake256.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_xof\\shake256\\ref\\shake256_ref.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_xof\\turboshake256\\xof_turboshake256.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_xof\\turboshake256\\ref\\turboshake256_ref.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_xof\\turboshake128\\xof_turboshake128.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_xof\\turboshake128\\ref\\turboshake128_ref.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_verify\\verify.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_auth\\crypto_auth.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_auth\\hmacsha512\\auth_hmacsha512.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_auth\\hmacsha512256\\auth_hmacsha512256.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_auth\\hmacsha256\\auth_hmacsha256.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_kdf\\crypto_kdf.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_kdf\\blake2b\\kdf_blake2b.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_kdf\\hkdf\\kdf_hkdf_sha256.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_kdf\\hkdf\\kdf_hkdf_sha512.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_shorthash\\crypto_shorthash.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_shorthash\\siphash24\\shorthash_siphash24.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_shorthash\\siphash24\\shorthash_siphashx24.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_shorthash\\siphash24\\ref\\shorthash_siphashx24_ref.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_shorthash\\siphash24\\ref\\shorthash_siphash24_ref.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_scalarmult\\crypto_scalarmult.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_scalarmult\\ristretto255\\ref10\\scalarmult_ristretto255_ref10.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_scalarmult\\ed25519\\ref10\\scalarmult_ed25519_ref10.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_scalarmult\\curve25519\\scalarmult_curve25519.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_scalarmult\\curve25519\\sandy2x\\curve25519_sandy2x.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_scalarmult\\curve25519\\sandy2x\\fe_frombytes_sandy2x.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_scalarmult\\curve25519\\sandy2x\\fe51_invert.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_scalarmult\\curve25519\\ref10\\x25519_ref10.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_onetimeauth\\crypto_onetimeauth.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_onetimeauth\\poly1305\\onetimeauth_poly1305.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_onetimeauth\\poly1305\\donna\\poly1305_donna.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_onetimeauth\\poly1305\\sse2\\poly1305_sse2.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\randombytes\\randombytes.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\randombytes\\sysrandom\\randombytes_sysrandom.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\randombytes\\internal\\randombytes_internal_random.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_box\\crypto_box_easy.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_box\\crypto_box_seal.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_box\\crypto_box.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_box\\curve25519xsalsa20poly1305\\box_curve25519xsalsa20poly1305.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_box\\curve25519xchacha20poly1305\\box_curve25519xchacha20poly1305.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_box\\curve25519xchacha20poly1305\\box_seal_curve25519xchacha20poly1305.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\sodium\\codecs.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\sodium\\runtime.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\sodium\\core.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\sodium\\utils.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\sodium\\version.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_ipcrypt\\ipcrypt_armcrypto.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_ipcrypt\\crypto_ipcrypt.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_ipcrypt\\ipcrypt_soft.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_ipcrypt\\ipcrypt_aesni.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\crypto_stream.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\xchacha20\\stream_xchacha20.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\chacha20\\stream_chacha20.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\chacha20\\ref\\chacha20_ref.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\chacha20\\dolbeau\\chacha20_dolbeau-avx2.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\chacha20\\dolbeau\\chacha20_dolbeau-ssse3.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\salsa20\\stream_salsa20.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\salsa20\\ref\\salsa20_ref.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\salsa20\\xmm6int\\salsa20_xmm6int-avx2.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\salsa20\\xmm6int\\salsa20_xmm6int-sse2.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\salsa20\\xmm6\\salsa20_xmm6.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\salsa2012\\stream_salsa2012.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\salsa2012\\ref\\stream_salsa2012_ref.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\salsa208\\stream_salsa208.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\salsa208\\ref\\stream_salsa208_ref.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\xsalsa20\\stream_xsalsa20.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_hash\\crypto_hash.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_hash\\sha512\\hash_sha512.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_hash\\sha512\\cp\\hash_sha512_cp.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_hash\\sha3\\hash_sha3.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_hash\\sha256\\hash_sha256.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_hash\\sha256\\cp\\hash_sha256_cp.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_aead\\xchacha20poly1305\\aead_xchacha20poly1305.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_aead\\aegis128l\\aegis128l_soft.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_aead\\aegis128l\\aead_aegis128l.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_aead\\aegis128l\\aegis128l_aesni.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_aead\\aegis128l\\aegis128l_armcrypto.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_aead\\aegis256\\aead_aegis256.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_aead\\aegis256\\aegis256_soft.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_aead\\aegis256\\aegis256_armcrypto.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_aead\\aegis256\\aegis256_aesni.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_aead\\aes256gcm\\aead_aes256gcm.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_aead\\aes256gcm\\aesni\\aead_aes256gcm_aesni.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_aead\\aes256gcm\\armcrypto\\aead_aes256gcm_armcrypto.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_aead\\chacha20poly1305\\aead_chacha20poly1305.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_kem\\crypto_kem.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_kem\\xwing\\kem_xwing.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_kem\\mlkem768\\kem_mlkem768.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_kem\\mlkem768\\ref\\kem_mlkem768_ref.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_secretstream\\xchacha20poly1305\\secretstream_xchacha20poly1305.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_core\\keccak1600\\keccak1600.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_core\\keccak1600\\ref\\keccak1600_ref.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_core\\keccak1600\\armsha3\\keccak1600_armsha3.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_core\\salsa\\ref\\core_salsa_ref.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_core\\hchacha20\\core_hchacha20.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_core\\hsalsa20\\core_hsalsa20.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_core\\hsalsa20\\ref2\\core_hsalsa20_ref2.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_core\\softaes\\softaes.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_core\\ed25519\\core_ed25519.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_core\\ed25519\\core_ristretto255.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_core\\ed25519\\core_h2c.c\" />\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_core\\ed25519\\ref10\\ed25519_ref10.c\" />\r\n  </ItemGroup>\r\n  <ItemGroup>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_generichash\\blake2b\\ref\\blake2b-load-sse2.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_generichash\\blake2b\\ref\\blake2b-load-avx2.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_generichash\\blake2b\\ref\\blake2.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_generichash\\blake2b\\ref\\blake2b-compress-ssse3.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_generichash\\blake2b\\ref\\blake2b-load-sse41.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_generichash\\blake2b\\ref\\blake2b-compress-avx2.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_generichash\\blake2b\\ref\\blake2b-compress-sse41.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_sign\\ed25519\\ref10\\sign_ed25519_ref10.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_stream_salsa2012.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_auth.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\utils.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_core_hchacha20.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_aead_aegis256.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_hash_sha512.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\core.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\export.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_core_salsa20.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_shorthash_siphash24.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\randombytes.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_hash_sha256.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_stream.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_auth_hmacsha512.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_xof_shake128.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_aead_xchacha20poly1305.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_stream_salsa20.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_onetimeauth_poly1305.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_kem_mlkem768.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_scalarmult_ristretto255.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_kx.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_hash.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_sign.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_kdf.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_auth_hmacsha256.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_box.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_verify_32.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_core_ristretto255.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_stream_xchacha20.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_core_salsa208.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_auth_hmacsha512256.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_xof_turboshake128.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_aead_aegis128l.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_aead_chacha20poly1305.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\randombytes_sysrandom.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_xof_turboshake256.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\runtime.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_stream_salsa208.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_aead_aes256gcm.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_core_salsa2012.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_secretbox_xchacha20poly1305.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_kem.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_core_keccak1600.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_scalarmult.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_pwhash.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_verify_16.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_stream_chacha20.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_stream_xsalsa20.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_core_hsalsa20.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_kdf_blake2b.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_scalarmult_curve25519.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_xof_shake256.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_shorthash.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_kdf_hkdf_sha256.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_pwhash_argon2id.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_secretstream_xchacha20poly1305.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_pwhash_scryptsalsa208sha256.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_hash_sha3.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_kem_xwing.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_sign_ed25519.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_onetimeauth.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_verify_64.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_box_curve25519xchacha20poly1305.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_core_ed25519.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_kdf_hkdf_sha512.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_pwhash_argon2i.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\randombytes_internal_random.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_generichash.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_secretbox_xsalsa20poly1305.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_secretbox.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_scalarmult_ed25519.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_ipcrypt.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_box_curve25519xsalsa20poly1305.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_generichash_blake2b.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\private\\ed25519_ref10.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\private\\softaes.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\private\\quirks.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\private\\ed25519_ref10_fe_25_5.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\private\\ed25519_ref10_fe_51.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\private\\sse2_64_32.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\private\\asm_cet.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\private\\common.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\private\\mutex.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\private\\chacha20_ietf_ext.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\private\\implementations.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\blamka-round-ref.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\blamka-round-avx2.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\blamka-round-neon.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\blamka-round-wasm32.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\argon2.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\blamka-round-ssse3.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\argon2-encoding.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\blake2b-long.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\blamka-round-avx512f.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\argon2-core.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\scryptsalsa208sha256\\crypto_scrypt.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\scryptsalsa208sha256\\pbkdf2-sha256.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_xof\\shake128\\ref\\shake128_ref.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_xof\\shake256\\ref\\shake256_ref.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_xof\\turboshake256\\ref\\turboshake256_ref.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_xof\\turboshake128\\ref\\turboshake128_ref.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_shorthash\\siphash24\\ref\\shorthash_siphash_ref.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_scalarmult\\curve25519\\scalarmult_curve25519.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_scalarmult\\curve25519\\sandy2x\\consts_namespace.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_scalarmult\\curve25519\\sandy2x\\ladder_namespace.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_scalarmult\\curve25519\\sandy2x\\fe.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_scalarmult\\curve25519\\sandy2x\\ladder.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_scalarmult\\curve25519\\sandy2x\\fe51.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_scalarmult\\curve25519\\sandy2x\\curve25519_sandy2x.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_scalarmult\\curve25519\\sandy2x\\fe51_namespace.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_scalarmult\\curve25519\\ref10\\x25519_ref10.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_onetimeauth\\poly1305\\onetimeauth_poly1305.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_onetimeauth\\poly1305\\donna\\poly1305_donna.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_onetimeauth\\poly1305\\donna\\poly1305_donna64.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_onetimeauth\\poly1305\\donna\\poly1305_donna32.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_onetimeauth\\poly1305\\sse2\\poly1305_sse2.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_ipcrypt\\ipcrypt_soft.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_ipcrypt\\ipcrypt_aesni.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_ipcrypt\\ipcrypt_armcrypto.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_ipcrypt\\implementations.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\chacha20\\stream_chacha20.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\chacha20\\ref\\chacha20_ref.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\chacha20\\dolbeau\\u4.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\chacha20\\dolbeau\\chacha20_dolbeau-ssse3.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\chacha20\\dolbeau\\u0.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\chacha20\\dolbeau\\u1.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\chacha20\\dolbeau\\chacha20_dolbeau-avx2.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\chacha20\\dolbeau\\u8.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\salsa20\\stream_salsa20.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\salsa20\\ref\\salsa20_ref.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\salsa20\\xmm6int\\u4.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\salsa20\\xmm6int\\u0.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\salsa20\\xmm6int\\u1.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\salsa20\\xmm6int\\salsa20_xmm6int-avx2.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\salsa20\\xmm6int\\u8.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\salsa20\\xmm6int\\salsa20_xmm6int-sse2.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\salsa20\\xmm6\\salsa20_xmm6-asm_namespace.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\salsa20\\xmm6\\salsa20_xmm6.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_aead\\aegis128l\\aegis128l_armcrypto.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_aead\\aegis128l\\aegis128l_aesni.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_aead\\aegis128l\\aegis128l_soft.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_aead\\aegis128l\\aegis128l_common.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_aead\\aegis128l\\implementations.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_aead\\aegis256\\aegis256_aesni.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_aead\\aegis256\\aegis256_common.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_aead\\aegis256\\implementations.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_aead\\aegis256\\aegis256_armcrypto.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_aead\\aegis256\\aegis256_soft.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_kem\\mlkem768\\ref\\kem_mlkem768_ref.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_core\\keccak1600\\ref\\keccak1600_ref.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_core\\keccak1600\\armsha3\\keccak1600_armsha3.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_core\\ed25519\\core_h2c.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_core\\ed25519\\ref10\\fe_25_5\\constants.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_core\\ed25519\\ref10\\fe_25_5\\fe.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_core\\ed25519\\ref10\\fe_25_5\\base2.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_core\\ed25519\\ref10\\fe_25_5\\base.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_core\\ed25519\\ref10\\fe_51\\constants.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_core\\ed25519\\ref10\\fe_51\\fe.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_core\\ed25519\\ref10\\fe_51\\base2.h\" />\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_core\\ed25519\\ref10\\fe_51\\base.h\" />\r\n    <ClInclude Include=\"..\\..\\resource.h\" />\r\n  </ItemGroup>\r\n  <ItemGroup>\r\n    <ResourceCompile Include=\"..\\..\\resource.rc\">\r\n    </ResourceCompile>\r\n  </ItemGroup>\r\n  <Import Project=\"$(VCTargetsPath)\\Microsoft.Cpp.targets\" />\r\n  <ImportGroup Label=\"ExtensionTargets\">\r\n  </ImportGroup>\r\n</Project>\r\n"
  },
  {
    "path": "builds/msvc/vs2026/libsodium/libsodium.vcxproj.filters",
    "content": "﻿<?xml version=\"1.0\" encoding=\"utf-8\"?>\r\n<Project ToolsVersion=\"4.0\" xmlns=\"http://schemas.microsoft.com/developer/msbuild/2003\">\r\n  <ItemGroup>\r\n    <None Include=\"..\\..\\..\\..\\packaging\\nuget\\package.bat\">\r\n      <Filter>packaging</Filter>\r\n    </None>\r\n    <None Include=\"..\\..\\..\\..\\packaging\\nuget\\package.gsl\">\r\n      <Filter>packaging</Filter>\r\n    </None>\r\n    <None Include=\"..\\..\\..\\..\\packaging\\nuget\\package.nuspec\">\r\n      <Filter>packaging</Filter>\r\n    </None>\r\n    <None Include=\"..\\..\\..\\..\\packaging\\nuget\\package.targets\">\r\n      <Filter>packaging</Filter>\r\n    </None>\r\n    <None Include=\"..\\..\\..\\..\\packaging\\nuget\\package.config\">\r\n      <Filter>packaging</Filter>\r\n    </None>\r\n    <Xml Include=\"..\\..\\..\\..\\packaging\\nuget\\package.xml\">\r\n      <Filter>packaging</Filter>\r\n    </Xml>\r\n  </ItemGroup>\r\n  <ItemGroup>\r\n    <ResourceCompile Include=\"..\\..\\resource.rc\" />\r\n  </ItemGroup>\r\n  <ItemGroup>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_generichash\\crypto_generichash.c\">\r\n      <Filter>crypto_generichash</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_generichash\\blake2b\\generichash_blake2.c\">\r\n      <Filter>crypto_generichash\\blake2b</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_generichash\\blake2b\\ref\\blake2b-compress-ref.c\">\r\n      <Filter>crypto_generichash\\blake2b\\ref</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_generichash\\blake2b\\ref\\blake2b-compress-ssse3.c\">\r\n      <Filter>crypto_generichash\\blake2b\\ref</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_generichash\\blake2b\\ref\\blake2b-compress-avx2.c\">\r\n      <Filter>crypto_generichash\\blake2b\\ref</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_generichash\\blake2b\\ref\\blake2b-compress-sse41.c\">\r\n      <Filter>crypto_generichash\\blake2b\\ref</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_generichash\\blake2b\\ref\\generichash_blake2b.c\">\r\n      <Filter>crypto_generichash\\blake2b\\ref</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_generichash\\blake2b\\ref\\blake2b-ref.c\">\r\n      <Filter>crypto_generichash\\blake2b\\ref</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_kx\\crypto_kx.c\">\r\n      <Filter>crypto_kx</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_sign\\crypto_sign.c\">\r\n      <Filter>crypto_sign</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_sign\\ed25519\\sign_ed25519.c\">\r\n      <Filter>crypto_sign\\ed25519</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_sign\\ed25519\\ref10\\sign.c\">\r\n      <Filter>crypto_sign\\ed25519\\ref10</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_sign\\ed25519\\ref10\\keypair.c\">\r\n      <Filter>crypto_sign\\ed25519\\ref10</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_sign\\ed25519\\ref10\\open.c\">\r\n      <Filter>crypto_sign\\ed25519\\ref10</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_secretbox\\crypto_secretbox.c\">\r\n      <Filter>crypto_secretbox</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_secretbox\\crypto_secretbox_easy.c\">\r\n      <Filter>crypto_secretbox</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_secretbox\\xsalsa20poly1305\\secretbox_xsalsa20poly1305.c\">\r\n      <Filter>crypto_secretbox\\xsalsa20poly1305</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_secretbox\\xchacha20poly1305\\secretbox_xchacha20poly1305.c\">\r\n      <Filter>crypto_secretbox\\xchacha20poly1305</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\crypto_pwhash.c\">\r\n      <Filter>crypto_pwhash</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\blake2b-long.c\">\r\n      <Filter>crypto_pwhash\\argon2</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\argon2-fill-block-wasm32.c\">\r\n      <Filter>crypto_pwhash\\argon2</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\argon2-core.c\">\r\n      <Filter>crypto_pwhash\\argon2</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\argon2-fill-block-avx512f.c\">\r\n      <Filter>crypto_pwhash\\argon2</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\argon2-fill-block-ref.c\">\r\n      <Filter>crypto_pwhash\\argon2</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\argon2-fill-block-ssse3.c\">\r\n      <Filter>crypto_pwhash\\argon2</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\pwhash_argon2i.c\">\r\n      <Filter>crypto_pwhash\\argon2</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\argon2-fill-block-neon.c\">\r\n      <Filter>crypto_pwhash\\argon2</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\pwhash_argon2id.c\">\r\n      <Filter>crypto_pwhash\\argon2</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\argon2.c\">\r\n      <Filter>crypto_pwhash\\argon2</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\argon2-fill-block-avx2.c\">\r\n      <Filter>crypto_pwhash\\argon2</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\argon2-encoding.c\">\r\n      <Filter>crypto_pwhash\\argon2</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\scryptsalsa208sha256\\scrypt_platform.c\">\r\n      <Filter>crypto_pwhash\\scryptsalsa208sha256</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\scryptsalsa208sha256\\crypto_scrypt-common.c\">\r\n      <Filter>crypto_pwhash\\scryptsalsa208sha256</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\scryptsalsa208sha256\\pwhash_scryptsalsa208sha256.c\">\r\n      <Filter>crypto_pwhash\\scryptsalsa208sha256</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\scryptsalsa208sha256\\pbkdf2-sha256.c\">\r\n      <Filter>crypto_pwhash\\scryptsalsa208sha256</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\scryptsalsa208sha256\\nosse\\pwhash_scryptsalsa208sha256_nosse.c\">\r\n      <Filter>crypto_pwhash\\scryptsalsa208sha256\\nosse</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\scryptsalsa208sha256\\sse\\pwhash_scryptsalsa208sha256_sse.c\">\r\n      <Filter>crypto_pwhash\\scryptsalsa208sha256\\sse</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_xof\\shake128\\xof_shake128.c\">\r\n      <Filter>crypto_xof\\shake128</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_xof\\shake128\\ref\\shake128_ref.c\">\r\n      <Filter>crypto_xof\\shake128\\ref</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_xof\\shake256\\xof_shake256.c\">\r\n      <Filter>crypto_xof\\shake256</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_xof\\shake256\\ref\\shake256_ref.c\">\r\n      <Filter>crypto_xof\\shake256\\ref</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_xof\\turboshake256\\xof_turboshake256.c\">\r\n      <Filter>crypto_xof\\turboshake256</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_xof\\turboshake256\\ref\\turboshake256_ref.c\">\r\n      <Filter>crypto_xof\\turboshake256\\ref</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_xof\\turboshake128\\xof_turboshake128.c\">\r\n      <Filter>crypto_xof\\turboshake128</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_xof\\turboshake128\\ref\\turboshake128_ref.c\">\r\n      <Filter>crypto_xof\\turboshake128\\ref</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_verify\\verify.c\">\r\n      <Filter>crypto_verify</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_auth\\crypto_auth.c\">\r\n      <Filter>crypto_auth</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_auth\\hmacsha512\\auth_hmacsha512.c\">\r\n      <Filter>crypto_auth\\hmacsha512</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_auth\\hmacsha512256\\auth_hmacsha512256.c\">\r\n      <Filter>crypto_auth\\hmacsha512256</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_auth\\hmacsha256\\auth_hmacsha256.c\">\r\n      <Filter>crypto_auth\\hmacsha256</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_kdf\\crypto_kdf.c\">\r\n      <Filter>crypto_kdf</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_kdf\\blake2b\\kdf_blake2b.c\">\r\n      <Filter>crypto_kdf\\blake2b</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_kdf\\hkdf\\kdf_hkdf_sha256.c\">\r\n      <Filter>crypto_kdf\\hkdf</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_kdf\\hkdf\\kdf_hkdf_sha512.c\">\r\n      <Filter>crypto_kdf\\hkdf</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_shorthash\\crypto_shorthash.c\">\r\n      <Filter>crypto_shorthash</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_shorthash\\siphash24\\shorthash_siphash24.c\">\r\n      <Filter>crypto_shorthash\\siphash24</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_shorthash\\siphash24\\shorthash_siphashx24.c\">\r\n      <Filter>crypto_shorthash\\siphash24</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_shorthash\\siphash24\\ref\\shorthash_siphashx24_ref.c\">\r\n      <Filter>crypto_shorthash\\siphash24\\ref</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_shorthash\\siphash24\\ref\\shorthash_siphash24_ref.c\">\r\n      <Filter>crypto_shorthash\\siphash24\\ref</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_scalarmult\\crypto_scalarmult.c\">\r\n      <Filter>crypto_scalarmult</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_scalarmult\\ristretto255\\ref10\\scalarmult_ristretto255_ref10.c\">\r\n      <Filter>crypto_scalarmult\\ristretto255\\ref10</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_scalarmult\\ed25519\\ref10\\scalarmult_ed25519_ref10.c\">\r\n      <Filter>crypto_scalarmult\\ed25519\\ref10</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_scalarmult\\curve25519\\scalarmult_curve25519.c\">\r\n      <Filter>crypto_scalarmult\\curve25519</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_scalarmult\\curve25519\\sandy2x\\curve25519_sandy2x.c\">\r\n      <Filter>crypto_scalarmult\\curve25519\\sandy2x</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_scalarmult\\curve25519\\sandy2x\\fe_frombytes_sandy2x.c\">\r\n      <Filter>crypto_scalarmult\\curve25519\\sandy2x</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_scalarmult\\curve25519\\sandy2x\\fe51_invert.c\">\r\n      <Filter>crypto_scalarmult\\curve25519\\sandy2x</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_scalarmult\\curve25519\\ref10\\x25519_ref10.c\">\r\n      <Filter>crypto_scalarmult\\curve25519\\ref10</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_onetimeauth\\crypto_onetimeauth.c\">\r\n      <Filter>crypto_onetimeauth</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_onetimeauth\\poly1305\\onetimeauth_poly1305.c\">\r\n      <Filter>crypto_onetimeauth\\poly1305</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_onetimeauth\\poly1305\\donna\\poly1305_donna.c\">\r\n      <Filter>crypto_onetimeauth\\poly1305\\donna</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_onetimeauth\\poly1305\\sse2\\poly1305_sse2.c\">\r\n      <Filter>crypto_onetimeauth\\poly1305\\sse2</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\randombytes\\randombytes.c\">\r\n      <Filter>randombytes</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\randombytes\\sysrandom\\randombytes_sysrandom.c\">\r\n      <Filter>randombytes\\sysrandom</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\randombytes\\internal\\randombytes_internal_random.c\">\r\n      <Filter>randombytes\\internal</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_box\\crypto_box_easy.c\">\r\n      <Filter>crypto_box</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_box\\crypto_box_seal.c\">\r\n      <Filter>crypto_box</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_box\\crypto_box.c\">\r\n      <Filter>crypto_box</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_box\\curve25519xsalsa20poly1305\\box_curve25519xsalsa20poly1305.c\">\r\n      <Filter>crypto_box\\curve25519xsalsa20poly1305</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_box\\curve25519xchacha20poly1305\\box_curve25519xchacha20poly1305.c\">\r\n      <Filter>crypto_box\\curve25519xchacha20poly1305</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_box\\curve25519xchacha20poly1305\\box_seal_curve25519xchacha20poly1305.c\">\r\n      <Filter>crypto_box\\curve25519xchacha20poly1305</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\sodium\\codecs.c\">\r\n      <Filter>sodium</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\sodium\\runtime.c\">\r\n      <Filter>sodium</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\sodium\\core.c\">\r\n      <Filter>sodium</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\sodium\\utils.c\">\r\n      <Filter>sodium</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\sodium\\version.c\">\r\n      <Filter>sodium</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_ipcrypt\\ipcrypt_armcrypto.c\">\r\n      <Filter>crypto_ipcrypt</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_ipcrypt\\crypto_ipcrypt.c\">\r\n      <Filter>crypto_ipcrypt</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_ipcrypt\\ipcrypt_soft.c\">\r\n      <Filter>crypto_ipcrypt</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_ipcrypt\\ipcrypt_aesni.c\">\r\n      <Filter>crypto_ipcrypt</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\crypto_stream.c\">\r\n      <Filter>crypto_stream</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\xchacha20\\stream_xchacha20.c\">\r\n      <Filter>crypto_stream\\xchacha20</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\chacha20\\stream_chacha20.c\">\r\n      <Filter>crypto_stream\\chacha20</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\chacha20\\ref\\chacha20_ref.c\">\r\n      <Filter>crypto_stream\\chacha20\\ref</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\chacha20\\dolbeau\\chacha20_dolbeau-avx2.c\">\r\n      <Filter>crypto_stream\\chacha20\\dolbeau</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\chacha20\\dolbeau\\chacha20_dolbeau-ssse3.c\">\r\n      <Filter>crypto_stream\\chacha20\\dolbeau</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\salsa20\\stream_salsa20.c\">\r\n      <Filter>crypto_stream\\salsa20</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\salsa20\\ref\\salsa20_ref.c\">\r\n      <Filter>crypto_stream\\salsa20\\ref</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\salsa20\\xmm6int\\salsa20_xmm6int-avx2.c\">\r\n      <Filter>crypto_stream\\salsa20\\xmm6int</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\salsa20\\xmm6int\\salsa20_xmm6int-sse2.c\">\r\n      <Filter>crypto_stream\\salsa20\\xmm6int</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\salsa20\\xmm6\\salsa20_xmm6.c\">\r\n      <Filter>crypto_stream\\salsa20\\xmm6</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\salsa2012\\stream_salsa2012.c\">\r\n      <Filter>crypto_stream\\salsa2012</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\salsa2012\\ref\\stream_salsa2012_ref.c\">\r\n      <Filter>crypto_stream\\salsa2012\\ref</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\salsa208\\stream_salsa208.c\">\r\n      <Filter>crypto_stream\\salsa208</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\salsa208\\ref\\stream_salsa208_ref.c\">\r\n      <Filter>crypto_stream\\salsa208\\ref</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\xsalsa20\\stream_xsalsa20.c\">\r\n      <Filter>crypto_stream\\xsalsa20</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_hash\\crypto_hash.c\">\r\n      <Filter>crypto_hash</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_hash\\sha512\\hash_sha512.c\">\r\n      <Filter>crypto_hash\\sha512</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_hash\\sha512\\cp\\hash_sha512_cp.c\">\r\n      <Filter>crypto_hash\\sha512\\cp</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_hash\\sha3\\hash_sha3.c\">\r\n      <Filter>crypto_hash\\sha3</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_hash\\sha256\\hash_sha256.c\">\r\n      <Filter>crypto_hash\\sha256</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_hash\\sha256\\cp\\hash_sha256_cp.c\">\r\n      <Filter>crypto_hash\\sha256\\cp</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_aead\\xchacha20poly1305\\aead_xchacha20poly1305.c\">\r\n      <Filter>crypto_aead\\xchacha20poly1305</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_aead\\aegis128l\\aegis128l_soft.c\">\r\n      <Filter>crypto_aead\\aegis128l</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_aead\\aegis128l\\aead_aegis128l.c\">\r\n      <Filter>crypto_aead\\aegis128l</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_aead\\aegis128l\\aegis128l_aesni.c\">\r\n      <Filter>crypto_aead\\aegis128l</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_aead\\aegis128l\\aegis128l_armcrypto.c\">\r\n      <Filter>crypto_aead\\aegis128l</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_aead\\aegis256\\aead_aegis256.c\">\r\n      <Filter>crypto_aead\\aegis256</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_aead\\aegis256\\aegis256_soft.c\">\r\n      <Filter>crypto_aead\\aegis256</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_aead\\aegis256\\aegis256_armcrypto.c\">\r\n      <Filter>crypto_aead\\aegis256</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_aead\\aegis256\\aegis256_aesni.c\">\r\n      <Filter>crypto_aead\\aegis256</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_aead\\aes256gcm\\aead_aes256gcm.c\">\r\n      <Filter>crypto_aead\\aes256gcm</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_aead\\aes256gcm\\aesni\\aead_aes256gcm_aesni.c\">\r\n      <Filter>crypto_aead\\aes256gcm\\aesni</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_aead\\aes256gcm\\armcrypto\\aead_aes256gcm_armcrypto.c\">\r\n      <Filter>crypto_aead\\aes256gcm\\armcrypto</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_aead\\chacha20poly1305\\aead_chacha20poly1305.c\">\r\n      <Filter>crypto_aead\\chacha20poly1305</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_kem\\crypto_kem.c\">\r\n      <Filter>crypto_kem</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_kem\\xwing\\kem_xwing.c\">\r\n      <Filter>crypto_kem\\xwing</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_kem\\mlkem768\\kem_mlkem768.c\">\r\n      <Filter>crypto_kem\\mlkem768</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_kem\\mlkem768\\ref\\kem_mlkem768_ref.c\">\r\n      <Filter>crypto_kem\\mlkem768\\ref</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_secretstream\\xchacha20poly1305\\secretstream_xchacha20poly1305.c\">\r\n      <Filter>crypto_secretstream\\xchacha20poly1305</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_core\\keccak1600\\keccak1600.c\">\r\n      <Filter>crypto_core\\keccak1600</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_core\\keccak1600\\ref\\keccak1600_ref.c\">\r\n      <Filter>crypto_core\\keccak1600\\ref</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_core\\keccak1600\\armsha3\\keccak1600_armsha3.c\">\r\n      <Filter>crypto_core\\keccak1600\\armsha3</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_core\\salsa\\ref\\core_salsa_ref.c\">\r\n      <Filter>crypto_core\\salsa\\ref</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_core\\hchacha20\\core_hchacha20.c\">\r\n      <Filter>crypto_core\\hchacha20</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_core\\hsalsa20\\core_hsalsa20.c\">\r\n      <Filter>crypto_core\\hsalsa20</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_core\\hsalsa20\\ref2\\core_hsalsa20_ref2.c\">\r\n      <Filter>crypto_core\\hsalsa20\\ref2</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_core\\softaes\\softaes.c\">\r\n      <Filter>crypto_core\\softaes</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_core\\ed25519\\core_ed25519.c\">\r\n      <Filter>crypto_core\\ed25519</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_core\\ed25519\\core_ristretto255.c\">\r\n      <Filter>crypto_core\\ed25519</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_core\\ed25519\\core_h2c.c\">\r\n      <Filter>crypto_core\\ed25519</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_core\\ed25519\\ref10\\ed25519_ref10.c\">\r\n      <Filter>crypto_core\\ed25519\\ref10</Filter>\r\n    </ClCompile>\r\n  </ItemGroup>\r\n  <ItemGroup>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_generichash\\blake2b\\ref\\blake2b-load-sse2.h\">\r\n      <Filter>crypto_generichash\\blake2b\\ref</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_generichash\\blake2b\\ref\\blake2b-load-avx2.h\">\r\n      <Filter>crypto_generichash\\blake2b\\ref</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_generichash\\blake2b\\ref\\blake2.h\">\r\n      <Filter>crypto_generichash\\blake2b\\ref</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_generichash\\blake2b\\ref\\blake2b-compress-ssse3.h\">\r\n      <Filter>crypto_generichash\\blake2b\\ref</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_generichash\\blake2b\\ref\\blake2b-load-sse41.h\">\r\n      <Filter>crypto_generichash\\blake2b\\ref</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_generichash\\blake2b\\ref\\blake2b-compress-avx2.h\">\r\n      <Filter>crypto_generichash\\blake2b\\ref</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_generichash\\blake2b\\ref\\blake2b-compress-sse41.h\">\r\n      <Filter>crypto_generichash\\blake2b\\ref</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_sign\\ed25519\\ref10\\sign_ed25519_ref10.h\">\r\n      <Filter>crypto_sign\\ed25519\\ref10</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium.h\">\r\n      <Filter>include</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_stream_salsa2012.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_auth.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\utils.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_core_hchacha20.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_aead_aegis256.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_hash_sha512.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\core.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\export.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_core_salsa20.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_shorthash_siphash24.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\randombytes.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_hash_sha256.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_stream.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_auth_hmacsha512.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_xof_shake128.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_aead_xchacha20poly1305.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_stream_salsa20.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_onetimeauth_poly1305.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_kem_mlkem768.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_scalarmult_ristretto255.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_kx.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_hash.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_sign.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_kdf.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_auth_hmacsha256.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_box.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_verify_32.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_core_ristretto255.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_stream_xchacha20.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_core_salsa208.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_auth_hmacsha512256.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_xof_turboshake128.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_aead_aegis128l.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_aead_chacha20poly1305.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\randombytes_sysrandom.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_xof_turboshake256.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\runtime.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_stream_salsa208.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_aead_aes256gcm.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_core_salsa2012.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_secretbox_xchacha20poly1305.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_kem.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_core_keccak1600.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_scalarmult.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_pwhash.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_verify_16.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_stream_chacha20.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_stream_xsalsa20.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_core_hsalsa20.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_kdf_blake2b.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_scalarmult_curve25519.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_xof_shake256.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_shorthash.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_kdf_hkdf_sha256.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_pwhash_argon2id.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_secretstream_xchacha20poly1305.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_pwhash_scryptsalsa208sha256.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_hash_sha3.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_kem_xwing.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_sign_ed25519.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_onetimeauth.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_verify_64.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_box_curve25519xchacha20poly1305.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_core_ed25519.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_kdf_hkdf_sha512.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_pwhash_argon2i.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\randombytes_internal_random.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_generichash.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_secretbox_xsalsa20poly1305.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_secretbox.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_scalarmult_ed25519.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_ipcrypt.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_box_curve25519xsalsa20poly1305.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\crypto_generichash_blake2b.h\">\r\n      <Filter>include\\sodium</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\private\\ed25519_ref10.h\">\r\n      <Filter>include\\sodium\\private</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\private\\softaes.h\">\r\n      <Filter>include\\sodium\\private</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\private\\quirks.h\">\r\n      <Filter>include\\sodium\\private</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\private\\ed25519_ref10_fe_25_5.h\">\r\n      <Filter>include\\sodium\\private</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\private\\ed25519_ref10_fe_51.h\">\r\n      <Filter>include\\sodium\\private</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\private\\sse2_64_32.h\">\r\n      <Filter>include\\sodium\\private</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\private\\asm_cet.h\">\r\n      <Filter>include\\sodium\\private</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\private\\common.h\">\r\n      <Filter>include\\sodium\\private</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\private\\mutex.h\">\r\n      <Filter>include\\sodium\\private</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\private\\chacha20_ietf_ext.h\">\r\n      <Filter>include\\sodium\\private</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\include\\sodium\\private\\implementations.h\">\r\n      <Filter>include\\sodium\\private</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\blamka-round-ref.h\">\r\n      <Filter>crypto_pwhash\\argon2</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\blamka-round-avx2.h\">\r\n      <Filter>crypto_pwhash\\argon2</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\blamka-round-neon.h\">\r\n      <Filter>crypto_pwhash\\argon2</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\blamka-round-wasm32.h\">\r\n      <Filter>crypto_pwhash\\argon2</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\argon2.h\">\r\n      <Filter>crypto_pwhash\\argon2</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\blamka-round-ssse3.h\">\r\n      <Filter>crypto_pwhash\\argon2</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\argon2-encoding.h\">\r\n      <Filter>crypto_pwhash\\argon2</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\blake2b-long.h\">\r\n      <Filter>crypto_pwhash\\argon2</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\blamka-round-avx512f.h\">\r\n      <Filter>crypto_pwhash\\argon2</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\argon2-core.h\">\r\n      <Filter>crypto_pwhash\\argon2</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\scryptsalsa208sha256\\crypto_scrypt.h\">\r\n      <Filter>crypto_pwhash\\scryptsalsa208sha256</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_pwhash\\scryptsalsa208sha256\\pbkdf2-sha256.h\">\r\n      <Filter>crypto_pwhash\\scryptsalsa208sha256</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_xof\\shake128\\ref\\shake128_ref.h\">\r\n      <Filter>crypto_xof\\shake128\\ref</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_xof\\shake256\\ref\\shake256_ref.h\">\r\n      <Filter>crypto_xof\\shake256\\ref</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_xof\\turboshake256\\ref\\turboshake256_ref.h\">\r\n      <Filter>crypto_xof\\turboshake256\\ref</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_xof\\turboshake128\\ref\\turboshake128_ref.h\">\r\n      <Filter>crypto_xof\\turboshake128\\ref</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_shorthash\\siphash24\\ref\\shorthash_siphash_ref.h\">\r\n      <Filter>crypto_shorthash\\siphash24\\ref</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_scalarmult\\curve25519\\scalarmult_curve25519.h\">\r\n      <Filter>crypto_scalarmult\\curve25519</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_scalarmult\\curve25519\\sandy2x\\consts_namespace.h\">\r\n      <Filter>crypto_scalarmult\\curve25519\\sandy2x</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_scalarmult\\curve25519\\sandy2x\\ladder_namespace.h\">\r\n      <Filter>crypto_scalarmult\\curve25519\\sandy2x</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_scalarmult\\curve25519\\sandy2x\\fe.h\">\r\n      <Filter>crypto_scalarmult\\curve25519\\sandy2x</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_scalarmult\\curve25519\\sandy2x\\ladder.h\">\r\n      <Filter>crypto_scalarmult\\curve25519\\sandy2x</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_scalarmult\\curve25519\\sandy2x\\fe51.h\">\r\n      <Filter>crypto_scalarmult\\curve25519\\sandy2x</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_scalarmult\\curve25519\\sandy2x\\curve25519_sandy2x.h\">\r\n      <Filter>crypto_scalarmult\\curve25519\\sandy2x</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_scalarmult\\curve25519\\sandy2x\\fe51_namespace.h\">\r\n      <Filter>crypto_scalarmult\\curve25519\\sandy2x</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_scalarmult\\curve25519\\ref10\\x25519_ref10.h\">\r\n      <Filter>crypto_scalarmult\\curve25519\\ref10</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_onetimeauth\\poly1305\\onetimeauth_poly1305.h\">\r\n      <Filter>crypto_onetimeauth\\poly1305</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_onetimeauth\\poly1305\\donna\\poly1305_donna.h\">\r\n      <Filter>crypto_onetimeauth\\poly1305\\donna</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_onetimeauth\\poly1305\\donna\\poly1305_donna64.h\">\r\n      <Filter>crypto_onetimeauth\\poly1305\\donna</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_onetimeauth\\poly1305\\donna\\poly1305_donna32.h\">\r\n      <Filter>crypto_onetimeauth\\poly1305\\donna</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_onetimeauth\\poly1305\\sse2\\poly1305_sse2.h\">\r\n      <Filter>crypto_onetimeauth\\poly1305\\sse2</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_ipcrypt\\ipcrypt_soft.h\">\r\n      <Filter>crypto_ipcrypt</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_ipcrypt\\ipcrypt_aesni.h\">\r\n      <Filter>crypto_ipcrypt</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_ipcrypt\\ipcrypt_armcrypto.h\">\r\n      <Filter>crypto_ipcrypt</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_ipcrypt\\implementations.h\">\r\n      <Filter>crypto_ipcrypt</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\chacha20\\stream_chacha20.h\">\r\n      <Filter>crypto_stream\\chacha20</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\chacha20\\ref\\chacha20_ref.h\">\r\n      <Filter>crypto_stream\\chacha20\\ref</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\chacha20\\dolbeau\\u4.h\">\r\n      <Filter>crypto_stream\\chacha20\\dolbeau</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\chacha20\\dolbeau\\chacha20_dolbeau-ssse3.h\">\r\n      <Filter>crypto_stream\\chacha20\\dolbeau</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\chacha20\\dolbeau\\u0.h\">\r\n      <Filter>crypto_stream\\chacha20\\dolbeau</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\chacha20\\dolbeau\\u1.h\">\r\n      <Filter>crypto_stream\\chacha20\\dolbeau</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\chacha20\\dolbeau\\chacha20_dolbeau-avx2.h\">\r\n      <Filter>crypto_stream\\chacha20\\dolbeau</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\chacha20\\dolbeau\\u8.h\">\r\n      <Filter>crypto_stream\\chacha20\\dolbeau</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\salsa20\\stream_salsa20.h\">\r\n      <Filter>crypto_stream\\salsa20</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\salsa20\\ref\\salsa20_ref.h\">\r\n      <Filter>crypto_stream\\salsa20\\ref</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\salsa20\\xmm6int\\u4.h\">\r\n      <Filter>crypto_stream\\salsa20\\xmm6int</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\salsa20\\xmm6int\\u0.h\">\r\n      <Filter>crypto_stream\\salsa20\\xmm6int</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\salsa20\\xmm6int\\u1.h\">\r\n      <Filter>crypto_stream\\salsa20\\xmm6int</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\salsa20\\xmm6int\\salsa20_xmm6int-avx2.h\">\r\n      <Filter>crypto_stream\\salsa20\\xmm6int</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\salsa20\\xmm6int\\u8.h\">\r\n      <Filter>crypto_stream\\salsa20\\xmm6int</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\salsa20\\xmm6int\\salsa20_xmm6int-sse2.h\">\r\n      <Filter>crypto_stream\\salsa20\\xmm6int</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\salsa20\\xmm6\\salsa20_xmm6-asm_namespace.h\">\r\n      <Filter>crypto_stream\\salsa20\\xmm6</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_stream\\salsa20\\xmm6\\salsa20_xmm6.h\">\r\n      <Filter>crypto_stream\\salsa20\\xmm6</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_aead\\aegis128l\\aegis128l_armcrypto.h\">\r\n      <Filter>crypto_aead\\aegis128l</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_aead\\aegis128l\\aegis128l_aesni.h\">\r\n      <Filter>crypto_aead\\aegis128l</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_aead\\aegis128l\\aegis128l_soft.h\">\r\n      <Filter>crypto_aead\\aegis128l</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_aead\\aegis128l\\aegis128l_common.h\">\r\n      <Filter>crypto_aead\\aegis128l</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_aead\\aegis128l\\implementations.h\">\r\n      <Filter>crypto_aead\\aegis128l</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_aead\\aegis256\\aegis256_aesni.h\">\r\n      <Filter>crypto_aead\\aegis256</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_aead\\aegis256\\aegis256_common.h\">\r\n      <Filter>crypto_aead\\aegis256</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_aead\\aegis256\\implementations.h\">\r\n      <Filter>crypto_aead\\aegis256</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_aead\\aegis256\\aegis256_armcrypto.h\">\r\n      <Filter>crypto_aead\\aegis256</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_aead\\aegis256\\aegis256_soft.h\">\r\n      <Filter>crypto_aead\\aegis256</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_kem\\mlkem768\\ref\\kem_mlkem768_ref.h\">\r\n      <Filter>crypto_kem\\mlkem768\\ref</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_core\\keccak1600\\ref\\keccak1600_ref.h\">\r\n      <Filter>crypto_core\\keccak1600\\ref</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_core\\keccak1600\\armsha3\\keccak1600_armsha3.h\">\r\n      <Filter>crypto_core\\keccak1600\\armsha3</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_core\\ed25519\\core_h2c.h\">\r\n      <Filter>crypto_core\\ed25519</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_core\\ed25519\\ref10\\fe_25_5\\constants.h\">\r\n      <Filter>crypto_core\\ed25519\\ref10\\fe_25_5</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_core\\ed25519\\ref10\\fe_25_5\\fe.h\">\r\n      <Filter>crypto_core\\ed25519\\ref10\\fe_25_5</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_core\\ed25519\\ref10\\fe_25_5\\base2.h\">\r\n      <Filter>crypto_core\\ed25519\\ref10\\fe_25_5</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_core\\ed25519\\ref10\\fe_25_5\\base.h\">\r\n      <Filter>crypto_core\\ed25519\\ref10\\fe_25_5</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_core\\ed25519\\ref10\\fe_51\\constants.h\">\r\n      <Filter>crypto_core\\ed25519\\ref10\\fe_51</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_core\\ed25519\\ref10\\fe_51\\fe.h\">\r\n      <Filter>crypto_core\\ed25519\\ref10\\fe_51</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_core\\ed25519\\ref10\\fe_51\\base2.h\">\r\n      <Filter>crypto_core\\ed25519\\ref10\\fe_51</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\..\\..\\src\\libsodium\\crypto_core\\ed25519\\ref10\\fe_51\\base.h\">\r\n      <Filter>crypto_core\\ed25519\\ref10\\fe_51</Filter>\r\n    </ClInclude>\r\n  </ItemGroup>\r\n  <ItemGroup>\r\n    <Filter Include=\"crypto_aead\">\r\n      <UniqueIdentifier>{a6837e41-3751-38c9-bb90-dd59d5f4af7b}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_aead\\aegis128l\">\r\n      <UniqueIdentifier>{9e2a023d-fef1-3231-90ba-9a0ffc9bc9ab}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_aead\\aegis256\">\r\n      <UniqueIdentifier>{6897a4cc-0091-3970-b712-c0ac75c16b67}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_aead\\aes256gcm\">\r\n      <UniqueIdentifier>{3e53394c-b59c-30cc-ae69-a4f46f9edfa3}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_aead\\aes256gcm\\aesni\">\r\n      <UniqueIdentifier>{7eb51140-a50f-3f50-b379-83677a82496c}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_aead\\aes256gcm\\armcrypto\">\r\n      <UniqueIdentifier>{507bb9aa-b65c-3034-946b-bcd375b7deaa}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_aead\\chacha20poly1305\">\r\n      <UniqueIdentifier>{1f4d6dd1-517f-3eeb-b974-2304ada5e67a}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_aead\\xchacha20poly1305\">\r\n      <UniqueIdentifier>{3122f223-e6c2-3ab1-ad85-ca289b47419e}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_auth\">\r\n      <UniqueIdentifier>{0a3af0f3-56f7-3551-a64e-6284feccc423}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_auth\\hmacsha256\">\r\n      <UniqueIdentifier>{64e89b4f-eec9-38c9-90f2-4881bf5e84c0}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_auth\\hmacsha512\">\r\n      <UniqueIdentifier>{0c0b4001-ae11-3d0f-8e73-75ac9b6e1ae8}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_auth\\hmacsha512256\">\r\n      <UniqueIdentifier>{f5065d74-beda-3e1e-819a-f606279c7fe9}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_box\">\r\n      <UniqueIdentifier>{f7aedb93-94a6-3ede-9374-ff41daca4841}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_box\\curve25519xchacha20poly1305\">\r\n      <UniqueIdentifier>{0e7473c9-9c69-36b3-ab6c-d953647a15a6}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_box\\curve25519xsalsa20poly1305\">\r\n      <UniqueIdentifier>{d75db64c-eb08-3f10-9b99-1b6e6827f348}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_core\">\r\n      <UniqueIdentifier>{73194d5d-588a-342f-bee6-f28b4486f20b}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_core\\ed25519\">\r\n      <UniqueIdentifier>{7c5e6f81-e4ce-3018-a776-a1f125072d73}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_core\\ed25519\\ref10\">\r\n      <UniqueIdentifier>{76990c08-d692-367f-b286-c728a8cad6bf}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_core\\ed25519\\ref10\\fe_25_5\">\r\n      <UniqueIdentifier>{bf04f786-7862-3bde-aeba-ed82ee59ca22}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_core\\ed25519\\ref10\\fe_51\">\r\n      <UniqueIdentifier>{98b6126a-3725-3707-a4cc-ff3af657cba0}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_core\\hchacha20\">\r\n      <UniqueIdentifier>{8b704d11-af1f-30c0-9981-479da6d88dc3}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_core\\hsalsa20\">\r\n      <UniqueIdentifier>{342e684b-4e18-311c-953c-8391a544a04f}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_core\\hsalsa20\\ref2\">\r\n      <UniqueIdentifier>{c6b8e28c-7c54-3af7-bee3-2948ba7b2082}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_core\\keccak1600\">\r\n      <UniqueIdentifier>{85c1722f-2d65-30a8-aefb-ebf1cbfe185e}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_core\\keccak1600\\armsha3\">\r\n      <UniqueIdentifier>{855cc78f-1fe0-3ad2-a2ac-5e2b0c01c235}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_core\\keccak1600\\ref\">\r\n      <UniqueIdentifier>{9462f285-fee0-3779-983b-2811dc621f7d}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_core\\salsa\">\r\n      <UniqueIdentifier>{4e9a1d6b-ee07-3bbc-ad78-6d0ba0e6d9d3}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_core\\salsa\\ref\">\r\n      <UniqueIdentifier>{eb259fd9-56f0-32db-a903-6bc1549a7326}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_core\\softaes\">\r\n      <UniqueIdentifier>{05997596-e3d7-3bf1-ad4d-39e4c5fd56f6}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_generichash\">\r\n      <UniqueIdentifier>{e53b6258-fcdd-34c8-96c5-44510a34a390}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_generichash\\blake2b\">\r\n      <UniqueIdentifier>{8bd3b558-2d08-3c3a-81ca-22677dde943b}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_generichash\\blake2b\\ref\">\r\n      <UniqueIdentifier>{16a8dd41-b0ab-39a7-80c8-3052d8b63811}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_hash\">\r\n      <UniqueIdentifier>{d7ec3690-bae7-3653-8c53-66a3142cfcfa}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_hash\\sha256\">\r\n      <UniqueIdentifier>{722ef422-8c03-3008-ba2a-3a7e91c6647c}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_hash\\sha256\\cp\">\r\n      <UniqueIdentifier>{8c7d8b62-7b4f-3eb9-85b7-18e8d925be14}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_hash\\sha3\">\r\n      <UniqueIdentifier>{6df763e3-9707-3014-8cfe-2f9a8a83a872}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_hash\\sha512\">\r\n      <UniqueIdentifier>{8fb6a906-dbd6-3746-9b0f-f49e7028daec}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_hash\\sha512\\cp\">\r\n      <UniqueIdentifier>{f2d6a22b-dd67-3561-90a4-88696169cb7b}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_ipcrypt\">\r\n      <UniqueIdentifier>{5c3b1fe7-203f-36fd-bca5-8d0c4b466d80}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_kdf\">\r\n      <UniqueIdentifier>{aaf59186-1c0d-33cf-a34d-93e14bb87226}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_kdf\\blake2b\">\r\n      <UniqueIdentifier>{3d42d2a2-b192-33dd-9162-508916414707}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_kdf\\hkdf\">\r\n      <UniqueIdentifier>{baf7d894-9298-391d-8dc2-e4c3010f5ddc}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_kem\">\r\n      <UniqueIdentifier>{b9009d4a-dd97-341d-aafb-eeeb77191a49}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_kem\\mlkem768\">\r\n      <UniqueIdentifier>{ab0c8a55-3e1f-307e-82be-8291a3b43735}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_kem\\mlkem768\\ref\">\r\n      <UniqueIdentifier>{70a10765-f8fb-3898-8514-966e48719bc4}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_kem\\xwing\">\r\n      <UniqueIdentifier>{2ef7c851-6598-3be5-88be-9ac5ec867cb0}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_kx\">\r\n      <UniqueIdentifier>{898b6bd5-1360-3a34-adcd-0fade7561685}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_onetimeauth\">\r\n      <UniqueIdentifier>{323c0a15-3c1d-39b2-9ec1-299deb299497}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_onetimeauth\\poly1305\">\r\n      <UniqueIdentifier>{52c2080d-37c0-34c2-864a-c201c728e5d8}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_onetimeauth\\poly1305\\donna\">\r\n      <UniqueIdentifier>{ff618a41-caeb-3a18-ad36-d34b049a8f50}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_onetimeauth\\poly1305\\sse2\">\r\n      <UniqueIdentifier>{ffc3712d-dfe0-3b51-8257-f5ffc9c9cea3}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_pwhash\">\r\n      <UniqueIdentifier>{f54b65b6-71cf-3ab3-9c8c-f89c81846836}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_pwhash\\argon2\">\r\n      <UniqueIdentifier>{1bd97a78-befa-3805-8e9c-80d7c1aff37b}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_pwhash\\scryptsalsa208sha256\">\r\n      <UniqueIdentifier>{e785f104-1212-37bf-8511-cc518b9ace66}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_pwhash\\scryptsalsa208sha256\\nosse\">\r\n      <UniqueIdentifier>{447b993f-59fb-3efd-8c59-a1712c97dfe8}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_pwhash\\scryptsalsa208sha256\\sse\">\r\n      <UniqueIdentifier>{cdb8d233-06b0-3872-a62b-c1ccf4cb4314}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_scalarmult\">\r\n      <UniqueIdentifier>{402a1c5a-d499-333a-a2fa-acd0e6a3c2b2}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_scalarmult\\curve25519\">\r\n      <UniqueIdentifier>{77f5a2e9-2ef1-3a72-b63c-88e8e4b92678}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_scalarmult\\curve25519\\ref10\">\r\n      <UniqueIdentifier>{6c9c7c30-0808-3fad-8a88-944d7645e5d5}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_scalarmult\\curve25519\\sandy2x\">\r\n      <UniqueIdentifier>{5d2fb1a2-f063-32db-a81a-41f79e36fd23}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_scalarmult\\ed25519\">\r\n      <UniqueIdentifier>{7bec6074-fbc7-330b-9e18-7dc3e868569a}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_scalarmult\\ed25519\\ref10\">\r\n      <UniqueIdentifier>{834d4827-81e4-3de3-baa1-a216763f11d6}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_scalarmult\\ristretto255\">\r\n      <UniqueIdentifier>{52bf28eb-7ffd-399a-be35-0df3e8e99c15}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_scalarmult\\ristretto255\\ref10\">\r\n      <UniqueIdentifier>{39cc576f-4b54-3d71-b14c-27445bc4b138}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_secretbox\">\r\n      <UniqueIdentifier>{b9b02bee-5c1f-36d2-b97d-983f865a4cc6}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_secretbox\\xchacha20poly1305\">\r\n      <UniqueIdentifier>{41f1f35b-4639-3424-be85-7dfba02f3c5e}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_secretbox\\xsalsa20poly1305\">\r\n      <UniqueIdentifier>{8bf11d29-2f5a-3f10-8ae6-82229d19c5b0}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_secretstream\">\r\n      <UniqueIdentifier>{62f7ae38-4ce6-3976-acc3-47c462db4fbe}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_secretstream\\xchacha20poly1305\">\r\n      <UniqueIdentifier>{e07a28cd-775a-3798-bfdb-97842d3614d6}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_shorthash\">\r\n      <UniqueIdentifier>{bb073c16-adc8-3cff-80b9-99cf5a28de6c}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_shorthash\\siphash24\">\r\n      <UniqueIdentifier>{63de0ec8-ecde-35e3-8b97-6e9e4da342ee}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_shorthash\\siphash24\\ref\">\r\n      <UniqueIdentifier>{29925210-53eb-342c-8527-7ebc173e668f}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_sign\">\r\n      <UniqueIdentifier>{b2f989b6-87a6-3388-a35c-2d0d59cb4236}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_sign\\ed25519\">\r\n      <UniqueIdentifier>{bc6466a1-57b0-3a35-9973-ad488a4bef8c}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_sign\\ed25519\\ref10\">\r\n      <UniqueIdentifier>{5599d9ab-b5b2-3310-b541-ae0fb70eecf1}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_stream\">\r\n      <UniqueIdentifier>{eaedd08a-46f8-3d12-9e8d-bb3ee3ead5f6}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_stream\\chacha20\">\r\n      <UniqueIdentifier>{806b6ff3-578b-308a-a359-0f5ed8472ecc}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_stream\\chacha20\\dolbeau\">\r\n      <UniqueIdentifier>{5a1d852e-67bb-3dc1-9ec5-99ef74b7faca}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_stream\\chacha20\\ref\">\r\n      <UniqueIdentifier>{33e45d9c-e12a-3e76-9ef2-4f5510244a5b}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_stream\\salsa20\">\r\n      <UniqueIdentifier>{048ba2a8-b22b-346c-9886-668b63c88c68}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_stream\\salsa20\\ref\">\r\n      <UniqueIdentifier>{f08a312f-f8a3-350b-87ab-1f79d33e513f}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_stream\\salsa20\\xmm6\">\r\n      <UniqueIdentifier>{c403f690-cd22-3ed4-9cc7-3f46e73081fd}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_stream\\salsa20\\xmm6int\">\r\n      <UniqueIdentifier>{c34d03f5-cf47-39fe-a5ad-5eb917006203}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_stream\\salsa2012\">\r\n      <UniqueIdentifier>{4da0c5ca-33d1-34e0-9689-12e69ae2dbd6}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_stream\\salsa2012\\ref\">\r\n      <UniqueIdentifier>{dd6b294c-5871-386c-92ec-aa46fcc411d4}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_stream\\salsa208\">\r\n      <UniqueIdentifier>{07aca978-0547-329a-b70b-29aa579cacc5}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_stream\\salsa208\\ref\">\r\n      <UniqueIdentifier>{f171fa05-35c4-32a0-b035-b5d6680ab714}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_stream\\xchacha20\">\r\n      <UniqueIdentifier>{ede2279c-1ba7-3d62-8345-733c6c1965e7}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_stream\\xsalsa20\">\r\n      <UniqueIdentifier>{9c15151b-10dc-3dfe-b97b-a7d8c6b58920}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_verify\">\r\n      <UniqueIdentifier>{49fb9272-ffe2-3993-b562-b19d5f2c9b40}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_xof\">\r\n      <UniqueIdentifier>{9d0b6e6c-57a5-33bb-a67c-c1ce5a5e0684}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_xof\\shake128\">\r\n      <UniqueIdentifier>{3311f765-9a5b-3614-a24f-9b97a56240aa}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_xof\\shake128\\ref\">\r\n      <UniqueIdentifier>{0b3ce98f-5f0a-3836-a95f-5ebd938a0e15}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_xof\\shake256\">\r\n      <UniqueIdentifier>{d4f668ef-b456-369e-b8bf-b1b6d4e90a6d}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_xof\\shake256\\ref\">\r\n      <UniqueIdentifier>{c5174d81-c82a-3411-98f7-829a427faddc}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_xof\\turboshake128\">\r\n      <UniqueIdentifier>{6ccaee32-fd4e-3b58-be6b-a2866132d22d}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_xof\\turboshake128\\ref\">\r\n      <UniqueIdentifier>{00e8736b-cf8d-3a60-bfbe-f0c535d45696}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_xof\\turboshake256\">\r\n      <UniqueIdentifier>{8f7b92bd-0b08-3b14-8693-2df66b256d8b}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"crypto_xof\\turboshake256\\ref\">\r\n      <UniqueIdentifier>{bcea4d5e-5593-3465-ac95-2ecd34340ce3}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"include\">\r\n      <UniqueIdentifier>{96da72eb-3aa0-3850-83eb-32788f91e5bd}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"include\\sodium\">\r\n      <UniqueIdentifier>{56bb40fc-d381-3a9e-925b-681774c48dde}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"include\\sodium\\private\">\r\n      <UniqueIdentifier>{fde88485-0fe6-3b22-9480-1d2b49fade53}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"randombytes\">\r\n      <UniqueIdentifier>{ef090484-4db4-3dc2-aca7-c59bab1db23b}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"randombytes\\internal\">\r\n      <UniqueIdentifier>{14c126fd-bb91-37ea-b807-b60c386be601}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"randombytes\\sysrandom\">\r\n      <UniqueIdentifier>{ac56c38f-7e17-3b79-bf47-58e9476b3b89}</UniqueIdentifier>\r\n    </Filter>\r\n    <Filter Include=\"sodium\">\r\n      <UniqueIdentifier>{5dfc520b-f690-3d5f-a86a-8b667f2e7490}</UniqueIdentifier>\r\n    </Filter>\r\n  </ItemGroup>\r\n</Project>\r\n"
  },
  {
    "path": "builds/msvc/vs2026/libsodium/libsodium.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<ProjectSchemaDefinitions xmlns=\"clr-namespace:Microsoft.Build.Framework.XamlTypes;assembly=Microsoft.Build.Framework\">\n  <Rule Name=\"libsodium-uiextension\" PageTemplate=\"tool\" DisplayName=\"Sodium Options\" SwitchPrefix=\"/\" Order=\"1\">\n    <Rule.Categories>\n      <Category Name=\"amd64asm\" DisplayName=\"amd64asm\" />\n    </Rule.Categories>\n    <Rule.DataSource>\n      <DataSource Persistence=\"ProjectFile\" ItemType=\"\" />\n    </Rule.DataSource>\n    <EnumProperty Name=\"Option-amd64asm\" DisplayName=\"Enable AMD64 Assembly\" Description=\"Enable the AMD64 Assembly build option\" Category=\"amd64asm\">\n      <EnumValue Name=\"\" DisplayName=\"No\" />\n      <EnumValue Name=\"true\" DisplayName=\"Yes\" />\n    </EnumProperty>\n  </Rule>\n</ProjectSchemaDefinitions>"
  },
  {
    "path": "builds/msvc/vs2026/libsodium.import.props",
    "content": "﻿<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<Project DefaultTargets=\"Build\" xmlns=\"http://schemas.microsoft.com/developer/msbuild/2003\">\n\n  <PropertyGroup Label=\"Globals\">\n    <_PropertySheetDisplayName>Libsodium Import Settings</_PropertySheetDisplayName>\n  </PropertyGroup>\n\n  <!-- User Interface -->\n\n  <ItemGroup Label=\"BuildOptionsExtension\">\n    <PropertyPageSchema Include=\"$(MSBuildThisFileDirectory)libsodium.import.xml\" />\n  </ItemGroup>\n\n  <!-- Linkage -->\n\n  <ItemDefinitionGroup>\n    <ClCompile>\n      <AdditionalIncludeDirectories>$(ProjectDir)..\\..\\..\\..\\..\\libsodium\\src\\libsodium\\include;$(ProjectDir)..\\..\\..\\..\\..\\libsodium\\src\\libsodium\\include\\sodium\\;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\n      <PreprocessorDefinitions Condition=\"'$(Linkage-libsodium)' == 'static' Or '$(Linkage-libsodium)' == 'ltcg'\">SODIUM_STATIC;%(PreprocessorDefinitions)</PreprocessorDefinitions>\n    </ClCompile>\n    <Link>\n      <AdditionalDependencies Condition=\"'$(Linkage-libsodium)' != ''\">advapi32.lib;libsodium.lib;%(AdditionalDependencies)</AdditionalDependencies>\n      <AdditionalLibraryDirectories Condition=\"$(Configuration.IndexOf('Debug')) != -1\">$(ProjectDir)..\\..\\..\\..\\..\\libsodium\\bin\\$(PlatformName)\\Debug\\$(PlatformToolset)\\$(Linkage-libsodium)\\;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>\n      <AdditionalLibraryDirectories Condition=\"$(Configuration.IndexOf('Release')) != -1\">$(ProjectDir)..\\..\\..\\..\\..\\libsodium\\bin\\$(PlatformName)\\Release\\$(PlatformToolset)\\$(Linkage-libsodium)\\;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>\n    </Link>\n  </ItemDefinitionGroup>\n\n  <!-- Copy -->\n\n  <Target Name=\"Linkage-libsodium-dynamic\" AfterTargets=\"AfterBuild\" Condition=\"'$(Linkage-libsodium)' == 'dynamic'\">\n    <Copy Condition=\"$(Configuration.IndexOf('Debug')) != -1\"\n          SourceFiles=\"$(ProjectDir)..\\..\\..\\..\\..\\libsodium\\bin\\$(PlatformName)\\Debug\\$(PlatformToolset)\\dynamic\\libsodium.dll\"\n          DestinationFiles=\"$(TargetDir)libsodium.dll\"\n          SkipUnchangedFiles=\"true\" />\n    <Copy Condition=\"$(Configuration.IndexOf('Debug')) != -1\"\n          SourceFiles=\"$(ProjectDir)..\\..\\..\\..\\..\\libsodium\\bin\\$(PlatformName)\\Debug\\$(PlatformToolset)\\dynamic\\libsodium.pdb\"\n          DestinationFiles=\"$(TargetDir)libsodium.pdb\"\n          SkipUnchangedFiles=\"true\" />\n    <Copy Condition=\"$(Configuration.IndexOf('Release')) != -1\"\n          SourceFiles=\"$(ProjectDir)..\\..\\..\\..\\..\\libsodium\\bin\\$(PlatformName)\\Release\\$(PlatformToolset)\\dynamic\\libsodium.dll\"\n          DestinationFiles=\"$(TargetDir)libsodium.dll\"\n          SkipUnchangedFiles=\"true\" />\n  </Target>\n\n  <!-- Messages -->\n\n  <Target Name=\"libsodium-info\" BeforeTargets=\"AfterBuild\" Condition=\"'$(Linkage-libsodium)' == 'dynamic'\">\n    <Message Text=\"Copying libsodium.dll -&gt; $(TargetDir)libsodium.dll\" Importance=\"high\"/>\n    <Message Text=\"Copying libsodium.pdb -&gt; $(TargetDir)libsodium.pdb\" Importance=\"high\" Condition=\"$(Configuration.IndexOf('Debug')) != -1\" />\n  </Target>\n\n</Project>"
  },
  {
    "path": "builds/msvc/vs2026/libsodium.import.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<ProjectSchemaDefinitions xmlns=\"clr-namespace:Microsoft.Build.Framework.XamlTypes;assembly=Microsoft.Build.Framework\">\n  <Rule Name=\"libsodium-linkage-uiextension\" PageTemplate=\"tool\" DisplayName=\"Local Dependencies\" SwitchPrefix=\"/\" Order=\"1\">\n    <Rule.Categories>\n      <Category Name=\"libsodium\" DisplayName=\"libsodium\" />\n    </Rule.Categories>\n    <Rule.DataSource>\n      <DataSource Persistence=\"ProjectFile\" ItemType=\"\" />\n    </Rule.DataSource>\n    <EnumProperty Name=\"Linkage-libsodium\" DisplayName=\"Linkage\" Description=\"How libsodium will be linked into the output of this project\" Category=\"libsodium\">\n      <EnumValue Name=\"\" DisplayName=\"Not linked\" />\n      <EnumValue Name=\"dynamic\" DisplayName=\"Dynamic (DLL)\" />\n      <EnumValue Name=\"static\" DisplayName=\"Static (LIB)\" />\n      <EnumValue Name=\"ltcg\" DisplayName=\"Static using link time compile generation (LTCG)\" />\n    </EnumProperty>\n  </Rule>\n</ProjectSchemaDefinitions>"
  },
  {
    "path": "builds/msvc/vs2026/libsodium.sln",
    "content": "﻿\r\nMicrosoft Visual Studio Solution File, Format Version 12.00\r\n# Visual Studio 15\r\nVisualStudioVersion = 15.0.26228.4\r\nMinimumVisualStudioVersion = 10.0.40219.1\r\nProject(\"{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}\") = \"libsodium\", \"libsodium\\libsodium.vcxproj\", \"{A185B162-6CB6-4502-B03F-B56F7699A8D9}\"\r\nEndProject\r\nGlobal\r\n\tGlobalSection(SolutionConfigurationPlatforms) = preSolution\r\n\t\tDynDebug|Win32 = DynDebug|Win32\r\n\t\tDynDebug|x64 = DynDebug|x64\r\n\t\tDynDebug|ARM64 = DynDebug|ARM64\r\n\t\tDynRelease|Win32 = DynRelease|Win32\r\n\t\tDynRelease|x64 = DynRelease|x64\r\n\t\tDynRelease|ARM64 = DynRelease|ARM64\r\n\t\tLtcgDebug|Win32 = LtcgDebug|Win32\r\n\t\tLtcgDebug|x64 = LtcgDebug|x64\r\n\t\tLtcgDebug|ARM64 = LtcgDebug|ARM64\r\n\t\tLtcgRelease|Win32 = LtcgRelease|Win32\r\n\t\tLtcgRelease|x64 = LtcgRelease|x64\r\n\t\tLtcgRelease|ARM64 = LtcgRelease|ARM64\r\n\t\tStaticDebug|Win32 = StaticDebug|Win32\r\n\t\tStaticDebug|x64 = StaticDebug|x64\r\n\t\tStaticDebug|ARM64 = StaticDebug|ARM64\r\n\t\tStaticRelease|Win32 = StaticRelease|Win32\r\n\t\tStaticRelease|x64 = StaticRelease|x64\r\n\t\tStaticRelease|ARM64 = StaticRelease|ARM64\r\n\tEndGlobalSection\r\n\tGlobalSection(ProjectConfigurationPlatforms) = postSolution\r\n\t\t{A185B162-6CB6-4502-B03F-B56F7699A8D9}.DynDebug|Win32.ActiveCfg = DebugDLL|Win32\r\n\t\t{A185B162-6CB6-4502-B03F-B56F7699A8D9}.DynDebug|Win32.Build.0 = DebugDLL|Win32\r\n\t\t{A185B162-6CB6-4502-B03F-B56F7699A8D9}.DynDebug|x64.ActiveCfg = DebugDLL|x64\r\n\t\t{A185B162-6CB6-4502-B03F-B56F7699A8D9}.DynDebug|x64.Build.0 = DebugDLL|x64\r\n\t\t{A185B162-6CB6-4502-B03F-B56F7699A8D9}.DynDebug|ARM64.ActiveCfg = DebugDLL|ARM64\r\n\t\t{A185B162-6CB6-4502-B03F-B56F7699A8D9}.DynDebug|ARM64.Build.0 = DebugDLL|ARM64\r\n\t\t{A185B162-6CB6-4502-B03F-B56F7699A8D9}.DynRelease|Win32.ActiveCfg = ReleaseDLL|Win32\r\n\t\t{A185B162-6CB6-4502-B03F-B56F7699A8D9}.DynRelease|Win32.Build.0 = ReleaseDLL|Win32\r\n\t\t{A185B162-6CB6-4502-B03F-B56F7699A8D9}.DynRelease|x64.ActiveCfg = ReleaseDLL|x64\r\n\t\t{A185B162-6CB6-4502-B03F-B56F7699A8D9}.DynRelease|x64.Build.0 = ReleaseDLL|x64\r\n\t\t{A185B162-6CB6-4502-B03F-B56F7699A8D9}.DynRelease|ARM64.ActiveCfg = ReleaseDLL|ARM64\r\n\t\t{A185B162-6CB6-4502-B03F-B56F7699A8D9}.DynRelease|ARM64.Build.0 = ReleaseDLL|ARM64\r\n\t\t{A185B162-6CB6-4502-B03F-B56F7699A8D9}.LtcgDebug|Win32.ActiveCfg = DebugLTCG|Win32\r\n\t\t{A185B162-6CB6-4502-B03F-B56F7699A8D9}.LtcgDebug|Win32.Build.0 = DebugLTCG|Win32\r\n\t\t{A185B162-6CB6-4502-B03F-B56F7699A8D9}.LtcgDebug|x64.ActiveCfg = DebugLTCG|x64\r\n\t\t{A185B162-6CB6-4502-B03F-B56F7699A8D9}.LtcgDebug|x64.Build.0 = DebugLTCG|x64\r\n\t\t{A185B162-6CB6-4502-B03F-B56F7699A8D9}.LtcgDebug|ARM64.ActiveCfg = DebugLTCG|ARM64\r\n\t\t{A185B162-6CB6-4502-B03F-B56F7699A8D9}.LtcgDebug|ARM64.Build.0 = DebugLTCG|ARM64\r\n\t\t{A185B162-6CB6-4502-B03F-B56F7699A8D9}.LtcgRelease|Win32.ActiveCfg = ReleaseLTCG|Win32\r\n\t\t{A185B162-6CB6-4502-B03F-B56F7699A8D9}.LtcgRelease|Win32.Build.0 = ReleaseLTCG|Win32\r\n\t\t{A185B162-6CB6-4502-B03F-B56F7699A8D9}.LtcgRelease|x64.ActiveCfg = ReleaseLTCG|x64\r\n\t\t{A185B162-6CB6-4502-B03F-B56F7699A8D9}.LtcgRelease|x64.Build.0 = ReleaseLTCG|x64\r\n\t\t{A185B162-6CB6-4502-B03F-B56F7699A8D9}.LtcgRelease|ARM64.ActiveCfg = ReleaseLTCG|ARM64\r\n\t\t{A185B162-6CB6-4502-B03F-B56F7699A8D9}.LtcgRelease|ARM64.Build.0 = ReleaseLTCG|ARM64\r\n\t\t{A185B162-6CB6-4502-B03F-B56F7699A8D9}.StaticDebug|Win32.ActiveCfg = DebugLIB|Win32\r\n\t\t{A185B162-6CB6-4502-B03F-B56F7699A8D9}.StaticDebug|Win32.Build.0 = DebugLIB|Win32\r\n\t\t{A185B162-6CB6-4502-B03F-B56F7699A8D9}.StaticDebug|x64.ActiveCfg = DebugLIB|x64\r\n\t\t{A185B162-6CB6-4502-B03F-B56F7699A8D9}.StaticDebug|x64.Build.0 = DebugLIB|x64\r\n\t\t{A185B162-6CB6-4502-B03F-B56F7699A8D9}.StaticDebug|ARM64.ActiveCfg = DebugLIB|ARM64\r\n\t\t{A185B162-6CB6-4502-B03F-B56F7699A8D9}.StaticDebug|ARM64.Build.0 = DebugLIB|ARM64\r\n\t\t{A185B162-6CB6-4502-B03F-B56F7699A8D9}.StaticRelease|Win32.ActiveCfg = ReleaseLIB|Win32\r\n\t\t{A185B162-6CB6-4502-B03F-B56F7699A8D9}.StaticRelease|Win32.Build.0 = ReleaseLIB|Win32\r\n\t\t{A185B162-6CB6-4502-B03F-B56F7699A8D9}.StaticRelease|x64.ActiveCfg = ReleaseLIB|x64\r\n\t\t{A185B162-6CB6-4502-B03F-B56F7699A8D9}.StaticRelease|x64.Build.0 = ReleaseLIB|x64\r\n\t\t{A185B162-6CB6-4502-B03F-B56F7699A8D9}.StaticRelease|ARM64.ActiveCfg = ReleaseLIB|ARM64\r\n\t\t{A185B162-6CB6-4502-B03F-B56F7699A8D9}.StaticRelease|ARM64.Build.0 = ReleaseLIB|ARM64\r\n\tEndGlobalSection\r\n\tGlobalSection(SolutionProperties) = preSolution\r\n\t\tHideSolutionNode = FALSE\r\n\tEndGlobalSection\r\nEndGlobal\r\n"
  },
  {
    "path": "ci/appveyor/libsodium.sln",
    "content": "﻿\r\nMicrosoft Visual Studio Solution File, Format Version 12.00\r\n# Visual Studio 14\r\nVisualStudioVersion = 14.0.23107.0\r\nMinimumVisualStudioVersion = 10.0.40219.1\r\nProject(\"{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}\") = \"libsodium\", \"libsodium.vcxproj\", \"{A185B162-6CB6-4502-B03F-B56F7699A8D9}\"\r\nEndProject\r\nGlobal\r\n\tGlobalSection(SolutionConfigurationPlatforms) = preSolution\r\n\t\tDebug|Win32 = Debug|Win32\r\n\t\tDebug|x64 = Debug|x64\r\n\t\tDebugDLL|Win32 = DebugDLL|Win32\r\n\t\tDebugDLL|x64 = DebugDLL|x64\r\n\t\tRelease|Win32 = Release|Win32\r\n\t\tRelease|x64 = Release|x64\r\n\t\tReleaseDLL|Win32 = ReleaseDLL|Win32\r\n\t\tReleaseDLL|x64 = ReleaseDLL|x64\r\n\tEndGlobalSection\r\n\tGlobalSection(ProjectConfigurationPlatforms) = postSolution\r\n\t\t{A185B162-6CB6-4502-B03F-B56F7699A8D9}.Debug|Win32.ActiveCfg = Debug|Win32\r\n\t\t{A185B162-6CB6-4502-B03F-B56F7699A8D9}.Debug|Win32.Build.0 = Debug|Win32\r\n\t\t{A185B162-6CB6-4502-B03F-B56F7699A8D9}.Debug|x64.ActiveCfg = Debug|x64\r\n\t\t{A185B162-6CB6-4502-B03F-B56F7699A8D9}.Debug|x64.Build.0 = Debug|x64\r\n\t\t{A185B162-6CB6-4502-B03F-B56F7699A8D9}.DebugDLL|Win32.ActiveCfg = DebugDLL|Win32\r\n\t\t{A185B162-6CB6-4502-B03F-B56F7699A8D9}.DebugDLL|Win32.Build.0 = DebugDLL|Win32\r\n\t\t{A185B162-6CB6-4502-B03F-B56F7699A8D9}.DebugDLL|x64.ActiveCfg = DebugDLL|x64\r\n\t\t{A185B162-6CB6-4502-B03F-B56F7699A8D9}.DebugDLL|x64.Build.0 = DebugDLL|x64\r\n\t\t{A185B162-6CB6-4502-B03F-B56F7699A8D9}.Release|Win32.ActiveCfg = Release|Win32\r\n\t\t{A185B162-6CB6-4502-B03F-B56F7699A8D9}.Release|Win32.Build.0 = Release|Win32\r\n\t\t{A185B162-6CB6-4502-B03F-B56F7699A8D9}.Release|x64.ActiveCfg = Release|x64\r\n\t\t{A185B162-6CB6-4502-B03F-B56F7699A8D9}.Release|x64.Build.0 = Release|x64\r\n\t\t{A185B162-6CB6-4502-B03F-B56F7699A8D9}.ReleaseDLL|Win32.ActiveCfg = ReleaseDLL|Win32\r\n\t\t{A185B162-6CB6-4502-B03F-B56F7699A8D9}.ReleaseDLL|Win32.Build.0 = ReleaseDLL|Win32\r\n\t\t{A185B162-6CB6-4502-B03F-B56F7699A8D9}.ReleaseDLL|x64.ActiveCfg = ReleaseDLL|x64\r\n\t\t{A185B162-6CB6-4502-B03F-B56F7699A8D9}.ReleaseDLL|x64.Build.0 = ReleaseDLL|x64\r\n\tEndGlobalSection\r\n\tGlobalSection(SolutionProperties) = preSolution\r\n\t\tHideSolutionNode = FALSE\r\n\tEndGlobalSection\r\nEndGlobal\r\n"
  },
  {
    "path": "ci/appveyor/libsodium.vcxproj",
    "content": "﻿<?xml version=\"1.0\" encoding=\"utf-8\"?>\r\n<Project DefaultTargets=\"Build\" ToolsVersion=\"4.0\"\r\n  xmlns=\"http://schemas.microsoft.com/developer/msbuild/2003\">\r\n  <ItemGroup Label=\"ProjectConfigurations\">\r\n    <ProjectConfiguration Include=\"DebugDLL|Win32\">\r\n      <Configuration>DebugDLL</Configuration>\r\n      <Platform>Win32</Platform>\r\n    </ProjectConfiguration>\r\n    <ProjectConfiguration Include=\"DebugDLL|x64\">\r\n      <Configuration>DebugDLL</Configuration>\r\n      <Platform>x64</Platform>\r\n    </ProjectConfiguration>\r\n    <ProjectConfiguration Include=\"Debug|Win32\">\r\n      <Configuration>Debug</Configuration>\r\n      <Platform>Win32</Platform>\r\n    </ProjectConfiguration>\r\n    <ProjectConfiguration Include=\"Debug|x64\">\r\n      <Configuration>Debug</Configuration>\r\n      <Platform>x64</Platform>\r\n    </ProjectConfiguration>\r\n    <ProjectConfiguration Include=\"ReleaseDLL|Win32\">\r\n      <Configuration>ReleaseDLL</Configuration>\r\n      <Platform>Win32</Platform>\r\n    </ProjectConfiguration>\r\n    <ProjectConfiguration Include=\"ReleaseDLL|x64\">\r\n      <Configuration>ReleaseDLL</Configuration>\r\n      <Platform>x64</Platform>\r\n    </ProjectConfiguration>\r\n    <ProjectConfiguration Include=\"Release|Win32\">\r\n      <Configuration>Release</Configuration>\r\n      <Platform>Win32</Platform>\r\n    </ProjectConfiguration>\r\n    <ProjectConfiguration Include=\"Release|x64\">\r\n      <Configuration>Release</Configuration>\r\n      <Platform>x64</Platform>\r\n    </ProjectConfiguration>\r\n  </ItemGroup>\r\n  <PropertyGroup Label=\"Globals\">\r\n    <ProjectGuid>{A185B162-6CB6-4502-B03F-B56F7699A8D9}</ProjectGuid>\r\n    <Keyword>Win32Proj</Keyword>\r\n    <RootNamespace>libsodium</RootNamespace>\r\n  </PropertyGroup>\r\n  <Import Project=\"$(VCTargetsPath)\\Microsoft.Cpp.Default.props\" />\r\n  <PropertyGroup Condition=\"'$(Configuration)|$(Platform)'=='Debug|Win32'\" Label=\"Configuration\">\r\n    <ConfigurationType>StaticLibrary</ConfigurationType>\r\n    <UseDebugLibraries>true</UseDebugLibraries>\r\n    <CharacterSet>MultiByte</CharacterSet>\r\n    <WholeProgramOptimization>false</WholeProgramOptimization>\r\n    <PlatformToolset>v140</PlatformToolset>\r\n  </PropertyGroup>\r\n  <PropertyGroup Condition=\"'$(Configuration)|$(Platform)'=='DebugDLL|Win32'\" Label=\"Configuration\">\r\n    <ConfigurationType>DynamicLibrary</ConfigurationType>\r\n    <UseDebugLibraries>true</UseDebugLibraries>\r\n    <CharacterSet>MultiByte</CharacterSet>\r\n    <WholeProgramOptimization>false</WholeProgramOptimization>\r\n    <PlatformToolset>v140</PlatformToolset>\r\n  </PropertyGroup>\r\n  <PropertyGroup Condition=\"'$(Configuration)|$(Platform)'=='Debug|x64'\" Label=\"Configuration\">\r\n    <ConfigurationType>StaticLibrary</ConfigurationType>\r\n    <UseDebugLibraries>true</UseDebugLibraries>\r\n    <CharacterSet>MultiByte</CharacterSet>\r\n    <WholeProgramOptimization>false</WholeProgramOptimization>\r\n    <PlatformToolset>v140</PlatformToolset>\r\n  </PropertyGroup>\r\n  <PropertyGroup Condition=\"'$(Configuration)|$(Platform)'=='DebugDLL|x64'\" Label=\"Configuration\">\r\n    <ConfigurationType>DynamicLibrary</ConfigurationType>\r\n    <UseDebugLibraries>true</UseDebugLibraries>\r\n    <CharacterSet>MultiByte</CharacterSet>\r\n    <WholeProgramOptimization>false</WholeProgramOptimization>\r\n    <PlatformToolset>v140</PlatformToolset>\r\n  </PropertyGroup>\r\n  <PropertyGroup Condition=\"'$(Configuration)|$(Platform)'=='Release|Win32'\" Label=\"Configuration\">\r\n    <ConfigurationType>StaticLibrary</ConfigurationType>\r\n    <UseDebugLibraries>false</UseDebugLibraries>\r\n    <WholeProgramOptimization>true</WholeProgramOptimization>\r\n    <CharacterSet>MultiByte</CharacterSet>\r\n    <PlatformToolset>v140</PlatformToolset>\r\n  </PropertyGroup>\r\n  <PropertyGroup Condition=\"'$(Configuration)|$(Platform)'=='ReleaseDLL|Win32'\" Label=\"Configuration\">\r\n    <ConfigurationType>DynamicLibrary</ConfigurationType>\r\n    <UseDebugLibraries>false</UseDebugLibraries>\r\n    <WholeProgramOptimization>true</WholeProgramOptimization>\r\n    <CharacterSet>MultiByte</CharacterSet>\r\n    <PlatformToolset>v140</PlatformToolset>\r\n  </PropertyGroup>\r\n  <PropertyGroup Condition=\"'$(Configuration)|$(Platform)'=='Release|x64'\" Label=\"Configuration\">\r\n    <ConfigurationType>StaticLibrary</ConfigurationType>\r\n    <UseDebugLibraries>false</UseDebugLibraries>\r\n    <WholeProgramOptimization>true</WholeProgramOptimization>\r\n    <CharacterSet>MultiByte</CharacterSet>\r\n    <PlatformToolset>v140</PlatformToolset>\r\n  </PropertyGroup>\r\n  <PropertyGroup Condition=\"'$(Configuration)|$(Platform)'=='ReleaseDLL|x64'\" Label=\"Configuration\">\r\n    <ConfigurationType>DynamicLibrary</ConfigurationType>\r\n    <UseDebugLibraries>false</UseDebugLibraries>\r\n    <WholeProgramOptimization>true</WholeProgramOptimization>\r\n    <CharacterSet>MultiByte</CharacterSet>\r\n    <PlatformToolset>v140</PlatformToolset>\r\n  </PropertyGroup>\r\n  <Import Project=\"$(VCTargetsPath)\\Microsoft.Cpp.props\" />\r\n  <ImportGroup Label=\"ExtensionSettings\">\r\n  </ImportGroup>\r\n  <ImportGroup Label=\"PropertySheets\" Condition=\"'$(Configuration)|$(Platform)'=='Debug|Win32'\">\r\n    <Import Project=\"$(UserRootDir)\\Microsoft.Cpp.$(Platform).user.props\" Condition=\"exists('$(UserRootDir)\\Microsoft.Cpp.$(Platform).user.props')\" Label=\"LocalAppDataPlatform\" />\r\n    <Import Project=\"msvc-scripts\\sodium.props\" />\r\n  </ImportGroup>\r\n  <ImportGroup Condition=\"'$(Configuration)|$(Platform)'=='DebugDLL|Win32'\" Label=\"PropertySheets\">\r\n    <Import Project=\"$(UserRootDir)\\Microsoft.Cpp.$(Platform).user.props\" Condition=\"exists('$(UserRootDir)\\Microsoft.Cpp.$(Platform).user.props')\" Label=\"LocalAppDataPlatform\" />\r\n    <Import Project=\"msvc-scripts\\sodium.props\" />\r\n  </ImportGroup>\r\n  <ImportGroup Condition=\"'$(Configuration)|$(Platform)'=='Debug|x64'\" Label=\"PropertySheets\">\r\n    <Import Project=\"$(UserRootDir)\\Microsoft.Cpp.$(Platform).user.props\" Condition=\"exists('$(UserRootDir)\\Microsoft.Cpp.$(Platform).user.props')\" Label=\"LocalAppDataPlatform\" />\r\n    <Import Project=\"msvc-scripts\\sodium.props\" />\r\n  </ImportGroup>\r\n  <ImportGroup Condition=\"'$(Configuration)|$(Platform)'=='DebugDLL|x64'\" Label=\"PropertySheets\">\r\n    <Import Project=\"$(UserRootDir)\\Microsoft.Cpp.$(Platform).user.props\" Condition=\"exists('$(UserRootDir)\\Microsoft.Cpp.$(Platform).user.props')\" Label=\"LocalAppDataPlatform\" />\r\n    <Import Project=\"msvc-scripts\\sodium.props\" />\r\n  </ImportGroup>\r\n  <ImportGroup Label=\"PropertySheets\" Condition=\"'$(Configuration)|$(Platform)'=='Release|Win32'\">\r\n    <Import Project=\"$(UserRootDir)\\Microsoft.Cpp.$(Platform).user.props\" Condition=\"exists('$(UserRootDir)\\Microsoft.Cpp.$(Platform).user.props')\" Label=\"LocalAppDataPlatform\" />\r\n    <Import Project=\"msvc-scripts\\sodium.props\" />\r\n  </ImportGroup>\r\n  <ImportGroup Condition=\"'$(Configuration)|$(Platform)'=='ReleaseDLL|Win32'\" Label=\"PropertySheets\">\r\n    <Import Project=\"$(UserRootDir)\\Microsoft.Cpp.$(Platform).user.props\" Condition=\"exists('$(UserRootDir)\\Microsoft.Cpp.$(Platform).user.props')\" Label=\"LocalAppDataPlatform\" />\r\n    <Import Project=\"msvc-scripts\\sodium.props\" />\r\n  </ImportGroup>\r\n  <ImportGroup Condition=\"'$(Configuration)|$(Platform)'=='Release|x64'\" Label=\"PropertySheets\">\r\n    <Import Project=\"$(UserRootDir)\\Microsoft.Cpp.$(Platform).user.props\" Condition=\"exists('$(UserRootDir)\\Microsoft.Cpp.$(Platform).user.props')\" Label=\"LocalAppDataPlatform\" />\r\n    <Import Project=\"msvc-scripts\\sodium.props\" />\r\n  </ImportGroup>\r\n  <ImportGroup Condition=\"'$(Configuration)|$(Platform)'=='ReleaseDLL|x64'\" Label=\"PropertySheets\">\r\n    <Import Project=\"$(UserRootDir)\\Microsoft.Cpp.$(Platform).user.props\" Condition=\"exists('$(UserRootDir)\\Microsoft.Cpp.$(Platform).user.props')\" Label=\"LocalAppDataPlatform\" />\r\n    <Import Project=\"msvc-scripts\\sodium.props\" />\r\n  </ImportGroup>\r\n  <PropertyGroup Label=\"UserMacros\" />\r\n  <PropertyGroup Condition=\"'$(Configuration)|$(Platform)'=='Debug|Win32'\">\r\n    <LinkIncremental>true</LinkIncremental>\r\n    <OutDir>$(SolutionDir)Build\\$(Configuration)\\$(Platform)\\</OutDir>\r\n    <IntDir>$(SolutionDir)Build\\$(Configuration)\\$(Platform)\\Intermediate\\</IntDir>\r\n  </PropertyGroup>\r\n  <PropertyGroup Condition=\"'$(Configuration)|$(Platform)'=='DebugDLL|Win32'\">\r\n    <LinkIncremental>true</LinkIncremental>\r\n    <OutDir>$(SolutionDir)Build\\$(Configuration)\\$(Platform)\\</OutDir>\r\n    <IntDir>$(SolutionDir)Build\\$(Configuration)\\$(Platform)\\Intermediate\\</IntDir>\r\n  </PropertyGroup>\r\n  <PropertyGroup Condition=\"'$(Configuration)|$(Platform)'=='Debug|x64'\">\r\n    <LinkIncremental>true</LinkIncremental>\r\n    <OutDir>$(SolutionDir)Build\\$(Configuration)\\$(Platform)\\</OutDir>\r\n    <IntDir>$(SolutionDir)Build\\$(Configuration)\\$(Platform)\\Intermediate\\</IntDir>\r\n  </PropertyGroup>\r\n  <PropertyGroup Condition=\"'$(Configuration)|$(Platform)'=='DebugDLL|x64'\">\r\n    <LinkIncremental>true</LinkIncremental>\r\n    <OutDir>$(SolutionDir)Build\\$(Configuration)\\$(Platform)\\</OutDir>\r\n    <IntDir>$(SolutionDir)Build\\$(Configuration)\\$(Platform)\\Intermediate\\</IntDir>\r\n  </PropertyGroup>\r\n  <PropertyGroup Condition=\"'$(Configuration)|$(Platform)'=='Release|Win32'\">\r\n    <LinkIncremental>false</LinkIncremental>\r\n    <OutDir>$(SolutionDir)Build\\$(Configuration)\\$(Platform)\\</OutDir>\r\n    <IntDir>$(SolutionDir)Build\\$(Configuration)\\$(Platform)\\Intermediate\\</IntDir>\r\n  </PropertyGroup>\r\n  <PropertyGroup Condition=\"'$(Configuration)|$(Platform)'=='ReleaseDLL|Win32'\">\r\n    <LinkIncremental>false</LinkIncremental>\r\n    <OutDir>$(SolutionDir)Build\\$(Configuration)\\$(Platform)\\</OutDir>\r\n    <IntDir>$(SolutionDir)Build\\$(Configuration)\\$(Platform)\\Intermediate\\</IntDir>\r\n  </PropertyGroup>\r\n  <PropertyGroup Condition=\"'$(Configuration)|$(Platform)'=='Release|x64'\">\r\n    <LinkIncremental>false</LinkIncremental>\r\n    <OutDir>$(SolutionDir)Build\\$(Configuration)\\$(Platform)\\</OutDir>\r\n    <IntDir>$(SolutionDir)Build\\$(Configuration)\\$(Platform)\\Intermediate\\</IntDir>\r\n  </PropertyGroup>\r\n  <PropertyGroup Condition=\"'$(Configuration)|$(Platform)'=='ReleaseDLL|x64'\">\r\n    <LinkIncremental>false</LinkIncremental>\r\n    <OutDir>$(SolutionDir)Build\\$(Configuration)\\$(Platform)\\</OutDir>\r\n    <IntDir>$(SolutionDir)Build\\$(Configuration)\\$(Platform)\\Intermediate\\</IntDir>\r\n  </PropertyGroup>\r\n  <ItemDefinitionGroup Condition=\"'$(Configuration)|$(Platform)'=='Debug|Win32'\">\r\n    <ClCompile>\r\n      <PrecompiledHeader>\r\n      </PrecompiledHeader>\r\n      <WarningLevel>Level3</WarningLevel>\r\n      <Optimization>Disabled</Optimization>\r\n      <PreprocessorDefinitions>SODIUM_STATIC;SODIUM_EXPORT=;WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r\n      <DisableSpecificWarnings>4244;%(DisableSpecificWarnings)</DisableSpecificWarnings>\r\n      <RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>\r\n      <AdditionalIncludeDirectories>$(SolutionDir);$(SolutionDir)..\\..\\src\\libsodium\\include\\sodium;$(SolutionDir)..\\..\\src\\libsodium\\include\\sodium;$(SolutionDir)..\\..\\src\\libsodium\\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r\n    </ClCompile>\r\n    <Link>\r\n      <SubSystem>Console</SubSystem>\r\n      <GenerateDebugInformation>true</GenerateDebugInformation>\r\n    </Link>\r\n  </ItemDefinitionGroup>\r\n  <ItemDefinitionGroup Condition=\"'$(Configuration)|$(Platform)'=='DebugDLL|Win32'\">\r\n    <ClCompile>\r\n      <PrecompiledHeader>\r\n      </PrecompiledHeader>\r\n      <WarningLevel>Level3</WarningLevel>\r\n      <Optimization>Disabled</Optimization>\r\n      <PreprocessorDefinitions>SODIUM_EXPORT=__declspec(dllexport);SODIUM_DLL_EXPORT;WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r\n      <DisableSpecificWarnings>4244;%(DisableSpecificWarnings)</DisableSpecificWarnings>\r\n      <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>\r\n      <AdditionalIncludeDirectories>$(SolutionDir)..\\..\\;$(SolutionDir)..\\..\\src\\libsodium\\include\\sodium;$(SolutionDir)..\\..\\src\\libsodium\\include\\sodium;$(SolutionDir)..\\..\\src\\libsodium\\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r\n    </ClCompile>\r\n    <Link>\r\n      <SubSystem>Console</SubSystem>\r\n      <GenerateDebugInformation>true</GenerateDebugInformation>\r\n    </Link>\r\n  </ItemDefinitionGroup>\r\n  <ItemDefinitionGroup Condition=\"'$(Configuration)|$(Platform)'=='Debug|x64'\">\r\n    <ClCompile>\r\n      <PrecompiledHeader>\r\n      </PrecompiledHeader>\r\n      <WarningLevel>Level3</WarningLevel>\r\n      <Optimization>Disabled</Optimization>\r\n      <PreprocessorDefinitions>SODIUM_STATIC;SODIUM_EXPORT=;WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r\n      <DisableSpecificWarnings>4244;%(DisableSpecificWarnings)</DisableSpecificWarnings>\r\n      <RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>\r\n    </ClCompile>\r\n    <Link>\r\n      <SubSystem>Console</SubSystem>\r\n      <GenerateDebugInformation>true</GenerateDebugInformation>\r\n    </Link>\r\n  </ItemDefinitionGroup>\r\n  <ItemDefinitionGroup Condition=\"'$(Configuration)|$(Platform)'=='DebugDLL|x64'\">\r\n    <ClCompile>\r\n      <PrecompiledHeader>\r\n      </PrecompiledHeader>\r\n      <WarningLevel>Level3</WarningLevel>\r\n      <Optimization>Disabled</Optimization>\r\n      <PreprocessorDefinitions>SODIUM_EXPORT=__declspec(dllexport);SODIUM_DLL_EXPORT;WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r\n      <DisableSpecificWarnings>4244;%(DisableSpecificWarnings)</DisableSpecificWarnings>\r\n      <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>\r\n    </ClCompile>\r\n    <Link>\r\n      <SubSystem>Console</SubSystem>\r\n      <GenerateDebugInformation>true</GenerateDebugInformation>\r\n    </Link>\r\n  </ItemDefinitionGroup>\r\n  <ItemDefinitionGroup Condition=\"'$(Configuration)|$(Platform)'=='Release|Win32'\">\r\n    <ClCompile>\r\n      <WarningLevel>Level3</WarningLevel>\r\n      <PrecompiledHeader>\r\n      </PrecompiledHeader>\r\n      <Optimization>Full</Optimization>\r\n      <FunctionLevelLinking>true</FunctionLevelLinking>\r\n      <IntrinsicFunctions>true</IntrinsicFunctions>\r\n      <PreprocessorDefinitions>SODIUM_STATIC;SODIUM_EXPORT=;WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r\n      <DisableSpecificWarnings>4244;%(DisableSpecificWarnings)</DisableSpecificWarnings>\r\n      <RuntimeLibrary>MultiThreaded</RuntimeLibrary>\r\n      <FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>\r\n      <AdditionalIncludeDirectories>$(SolutionDir);$(SolutionDir)..\\..\\src\\libsodium\\include\\sodium;$(SolutionDir)..\\..\\src\\libsodium\\include\\sodium;$(SolutionDir)..\\..\\src\\libsodium\\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r\n    </ClCompile>\r\n    <Link>\r\n      <SubSystem>Console</SubSystem>\r\n      <GenerateDebugInformation>true</GenerateDebugInformation>\r\n      <EnableCOMDATFolding>true</EnableCOMDATFolding>\r\n      <OptimizeReferences>true</OptimizeReferences>\r\n    </Link>\r\n  </ItemDefinitionGroup>\r\n  <ItemDefinitionGroup Condition=\"'$(Configuration)|$(Platform)'=='ReleaseDLL|Win32'\">\r\n    <ClCompile>\r\n      <WarningLevel>Level3</WarningLevel>\r\n      <PrecompiledHeader>\r\n      </PrecompiledHeader>\r\n      <Optimization>Full</Optimization>\r\n      <FunctionLevelLinking>true</FunctionLevelLinking>\r\n      <IntrinsicFunctions>true</IntrinsicFunctions>\r\n      <PreprocessorDefinitions>SODIUM_EXPORT=__declspec(dllexport);SODIUM_DLL_EXPORT;WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r\n      <DisableSpecificWarnings>4244;%(DisableSpecificWarnings)</DisableSpecificWarnings>\r\n      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>\r\n      <FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>\r\n      <AdditionalIncludeDirectories>$(SolutionDir);$(SolutionDir)..\\..\\src\\libsodium\\include\\sodium;$(SolutionDir)..\\..\\src\\libsodium\\include\\sodium;$(SolutionDir)..\\..\\src\\libsodium\\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r\n    </ClCompile>\r\n    <Link>\r\n      <SubSystem>Console</SubSystem>\r\n      <GenerateDebugInformation>true</GenerateDebugInformation>\r\n      <EnableCOMDATFolding>true</EnableCOMDATFolding>\r\n      <OptimizeReferences>true</OptimizeReferences>\r\n    </Link>\r\n  </ItemDefinitionGroup>\r\n  <ItemDefinitionGroup Condition=\"'$(Configuration)|$(Platform)'=='Release|x64'\">\r\n    <ClCompile>\r\n      <WarningLevel>Level3</WarningLevel>\r\n      <PrecompiledHeader>\r\n      </PrecompiledHeader>\r\n      <Optimization>MaxSpeed</Optimization>\r\n      <FunctionLevelLinking>true</FunctionLevelLinking>\r\n      <IntrinsicFunctions>true</IntrinsicFunctions>\r\n      <PreprocessorDefinitions>SODIUM_STATIC;SODIUM_EXPORT=;WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r\n      <DisableSpecificWarnings>4244;%(DisableSpecificWarnings)</DisableSpecificWarnings>\r\n      <RuntimeLibrary>MultiThreaded</RuntimeLibrary>\r\n    </ClCompile>\r\n    <Link>\r\n      <SubSystem>Console</SubSystem>\r\n      <GenerateDebugInformation>true</GenerateDebugInformation>\r\n      <EnableCOMDATFolding>true</EnableCOMDATFolding>\r\n      <OptimizeReferences>true</OptimizeReferences>\r\n    </Link>\r\n  </ItemDefinitionGroup>\r\n  <ItemDefinitionGroup Condition=\"'$(Configuration)|$(Platform)'=='ReleaseDLL|x64'\">\r\n    <ClCompile>\r\n      <WarningLevel>Level3</WarningLevel>\r\n      <PrecompiledHeader>\r\n      </PrecompiledHeader>\r\n      <Optimization>MaxSpeed</Optimization>\r\n      <FunctionLevelLinking>true</FunctionLevelLinking>\r\n      <IntrinsicFunctions>true</IntrinsicFunctions>\r\n      <PreprocessorDefinitions>SODIUM_EXPORT=__declspec(dllexport);SODIUM_DLL_EXPORT;WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r\n      <DisableSpecificWarnings>4244;%(DisableSpecificWarnings)</DisableSpecificWarnings>\r\n      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>\r\n    </ClCompile>\r\n    <Link>\r\n      <SubSystem>Console</SubSystem>\r\n      <GenerateDebugInformation>true</GenerateDebugInformation>\r\n      <EnableCOMDATFolding>true</EnableCOMDATFolding>\r\n      <OptimizeReferences>true</OptimizeReferences>\r\n    </Link>\r\n  </ItemDefinitionGroup>\r\n  <ItemGroup>\r\n    <ClCompile Include=\"..\\..\\src\\libsodium\\crypto_generichash\\crypto_generichash.c\" />\r\n    <ClCompile Include=\"..\\..\\src\\libsodium\\crypto_generichash\\blake2b\\generichash_blake2.c\" />\r\n    <ClCompile Include=\"..\\..\\src\\libsodium\\crypto_generichash\\blake2b\\ref\\blake2b-compress-ref.c\" />\r\n    <ClCompile Include=\"..\\..\\src\\libsodium\\crypto_generichash\\blake2b\\ref\\blake2b-compress-ssse3.c\" />\r\n    <ClCompile Include=\"..\\..\\src\\libsodium\\crypto_generichash\\blake2b\\ref\\blake2b-compress-avx2.c\" />\r\n    <ClCompile Include=\"..\\..\\src\\libsodium\\crypto_generichash\\blake2b\\ref\\blake2b-compress-sse41.c\" />\r\n    <ClCompile Include=\"..\\..\\src\\libsodium\\crypto_generichash\\blake2b\\ref\\generichash_blake2b.c\" />\r\n    <ClCompile Include=\"..\\..\\src\\libsodium\\crypto_generichash\\blake2b\\ref\\blake2b-ref.c\" />\r\n    <ClCompile Include=\"..\\..\\src\\libsodium\\crypto_kx\\crypto_kx.c\" />\r\n    <ClCompile Include=\"..\\..\\src\\libsodium\\crypto_sign\\crypto_sign.c\" />\r\n    <ClCompile Include=\"..\\..\\src\\libsodium\\crypto_sign\\ed25519\\sign_ed25519.c\" />\r\n    <ClCompile Include=\"..\\..\\src\\libsodium\\crypto_sign\\ed25519\\ref10\\sign.c\" />\r\n    <ClCompile Include=\"..\\..\\src\\libsodium\\crypto_sign\\ed25519\\ref10\\keypair.c\" />\r\n    <ClCompile Include=\"..\\..\\src\\libsodium\\crypto_sign\\ed25519\\ref10\\open.c\" />\r\n    <ClCompile Include=\"..\\..\\src\\libsodium\\crypto_secretbox\\crypto_secretbox.c\" />\r\n    <ClCompile Include=\"..\\..\\src\\libsodium\\crypto_secretbox\\crypto_secretbox_easy.c\" />\r\n    <ClCompile Include=\"..\\..\\src\\libsodium\\crypto_secretbox\\xsalsa20poly1305\\secretbox_xsalsa20poly1305.c\" />\r\n    <ClCompile Include=\"..\\..\\src\\libsodium\\crypto_secretbox\\xchacha20poly1305\\secretbox_xchacha20poly1305.c\" />\r\n    <ClCompile Include=\"..\\..\\src\\libsodium\\crypto_pwhash\\crypto_pwhash.c\" />\r\n    <ClCompile Include=\"..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\blake2b-long.c\" />\r\n    <ClCompile Include=\"..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\argon2-fill-block-wasm32.c\" />\r\n    <ClCompile Include=\"..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\argon2-core.c\" />\r\n    <ClCompile Include=\"..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\argon2-fill-block-avx512f.c\" />\r\n    <ClCompile Include=\"..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\argon2-fill-block-ref.c\" />\r\n    <ClCompile Include=\"..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\argon2-fill-block-ssse3.c\" />\r\n    <ClCompile Include=\"..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\pwhash_argon2i.c\" />\r\n    <ClCompile Include=\"..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\argon2-fill-block-neon.c\" />\r\n    <ClCompile Include=\"..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\pwhash_argon2id.c\" />\r\n    <ClCompile Include=\"..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\argon2.c\" />\r\n    <ClCompile Include=\"..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\argon2-fill-block-avx2.c\" />\r\n    <ClCompile Include=\"..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\argon2-encoding.c\" />\r\n    <ClCompile Include=\"..\\..\\src\\libsodium\\crypto_pwhash\\scryptsalsa208sha256\\scrypt_platform.c\" />\r\n    <ClCompile Include=\"..\\..\\src\\libsodium\\crypto_pwhash\\scryptsalsa208sha256\\crypto_scrypt-common.c\" />\r\n    <ClCompile Include=\"..\\..\\src\\libsodium\\crypto_pwhash\\scryptsalsa208sha256\\pwhash_scryptsalsa208sha256.c\" />\r\n    <ClCompile Include=\"..\\..\\src\\libsodium\\crypto_pwhash\\scryptsalsa208sha256\\pbkdf2-sha256.c\" />\r\n    <ClCompile Include=\"..\\..\\src\\libsodium\\crypto_pwhash\\scryptsalsa208sha256\\nosse\\pwhash_scryptsalsa208sha256_nosse.c\" />\r\n    <ClCompile Include=\"..\\..\\src\\libsodium\\crypto_pwhash\\scryptsalsa208sha256\\sse\\pwhash_scryptsalsa208sha256_sse.c\" />\r\n    <ClCompile Include=\"..\\..\\src\\libsodium\\crypto_xof\\shake128\\xof_shake128.c\" />\r\n    <ClCompile Include=\"..\\..\\src\\libsodium\\crypto_xof\\shake128\\ref\\shake128_ref.c\" />\r\n    <ClCompile Include=\"..\\..\\src\\libsodium\\crypto_xof\\shake256\\xof_shake256.c\" />\r\n    <ClCompile Include=\"..\\..\\src\\libsodium\\crypto_xof\\shake256\\ref\\shake256_ref.c\" />\r\n    <ClCompile Include=\"..\\..\\src\\libsodium\\crypto_xof\\turboshake256\\xof_turboshake256.c\" />\r\n    <ClCompile Include=\"..\\..\\src\\libsodium\\crypto_xof\\turboshake256\\ref\\turboshake256_ref.c\" />\r\n    <ClCompile Include=\"..\\..\\src\\libsodium\\crypto_xof\\turboshake128\\xof_turboshake128.c\" />\r\n    <ClCompile Include=\"..\\..\\src\\libsodium\\crypto_xof\\turboshake128\\ref\\turboshake128_ref.c\" />\r\n    <ClCompile Include=\"..\\..\\src\\libsodium\\crypto_verify\\verify.c\" />\r\n    <ClCompile Include=\"..\\..\\src\\libsodium\\crypto_auth\\crypto_auth.c\" />\r\n    <ClCompile Include=\"..\\..\\src\\libsodium\\crypto_auth\\hmacsha512\\auth_hmacsha512.c\" />\r\n    <ClCompile Include=\"..\\..\\src\\libsodium\\crypto_auth\\hmacsha512256\\auth_hmacsha512256.c\" />\r\n    <ClCompile Include=\"..\\..\\src\\libsodium\\crypto_auth\\hmacsha256\\auth_hmacsha256.c\" />\r\n    <ClCompile Include=\"..\\..\\src\\libsodium\\crypto_kdf\\crypto_kdf.c\" />\r\n    <ClCompile Include=\"..\\..\\src\\libsodium\\crypto_kdf\\blake2b\\kdf_blake2b.c\" />\r\n    <ClCompile Include=\"..\\..\\src\\libsodium\\crypto_kdf\\hkdf\\kdf_hkdf_sha256.c\" />\r\n    <ClCompile Include=\"..\\..\\src\\libsodium\\crypto_kdf\\hkdf\\kdf_hkdf_sha512.c\" />\r\n    <ClCompile Include=\"..\\..\\src\\libsodium\\crypto_shorthash\\crypto_shorthash.c\" />\r\n    <ClCompile Include=\"..\\..\\src\\libsodium\\crypto_shorthash\\siphash24\\shorthash_siphash24.c\" />\r\n    <ClCompile Include=\"..\\..\\src\\libsodium\\crypto_shorthash\\siphash24\\shorthash_siphashx24.c\" />\r\n    <ClCompile Include=\"..\\..\\src\\libsodium\\crypto_shorthash\\siphash24\\ref\\shorthash_siphashx24_ref.c\" />\r\n    <ClCompile Include=\"..\\..\\src\\libsodium\\crypto_shorthash\\siphash24\\ref\\shorthash_siphash24_ref.c\" />\r\n    <ClCompile Include=\"..\\..\\src\\libsodium\\crypto_scalarmult\\crypto_scalarmult.c\" />\r\n    <ClCompile Include=\"..\\..\\src\\libsodium\\crypto_scalarmult\\ristretto255\\ref10\\scalarmult_ristretto255_ref10.c\" />\r\n    <ClCompile Include=\"..\\..\\src\\libsodium\\crypto_scalarmult\\ed25519\\ref10\\scalarmult_ed25519_ref10.c\" />\r\n    <ClCompile Include=\"..\\..\\src\\libsodium\\crypto_scalarmult\\curve25519\\scalarmult_curve25519.c\" />\r\n    <ClCompile Include=\"..\\..\\src\\libsodium\\crypto_scalarmult\\curve25519\\sandy2x\\curve25519_sandy2x.c\" />\r\n    <ClCompile Include=\"..\\..\\src\\libsodium\\crypto_scalarmult\\curve25519\\sandy2x\\fe_frombytes_sandy2x.c\" />\r\n    <ClCompile Include=\"..\\..\\src\\libsodium\\crypto_scalarmult\\curve25519\\sandy2x\\fe51_invert.c\" />\r\n    <ClCompile Include=\"..\\..\\src\\libsodium\\crypto_scalarmult\\curve25519\\ref10\\x25519_ref10.c\" />\r\n    <ClCompile Include=\"..\\..\\src\\libsodium\\crypto_onetimeauth\\crypto_onetimeauth.c\" />\r\n    <ClCompile Include=\"..\\..\\src\\libsodium\\crypto_onetimeauth\\poly1305\\onetimeauth_poly1305.c\" />\r\n    <ClCompile Include=\"..\\..\\src\\libsodium\\crypto_onetimeauth\\poly1305\\donna\\poly1305_donna.c\" />\r\n    <ClCompile Include=\"..\\..\\src\\libsodium\\crypto_onetimeauth\\poly1305\\sse2\\poly1305_sse2.c\" />\r\n    <ClCompile Include=\"..\\..\\src\\libsodium\\randombytes\\randombytes.c\" />\r\n    <ClCompile Include=\"..\\..\\src\\libsodium\\randombytes\\sysrandom\\randombytes_sysrandom.c\" />\r\n    <ClCompile Include=\"..\\..\\src\\libsodium\\randombytes\\internal\\randombytes_internal_random.c\" />\r\n    <ClCompile Include=\"..\\..\\src\\libsodium\\crypto_box\\crypto_box_easy.c\" />\r\n    <ClCompile Include=\"..\\..\\src\\libsodium\\crypto_box\\crypto_box_seal.c\" />\r\n    <ClCompile Include=\"..\\..\\src\\libsodium\\crypto_box\\crypto_box.c\" />\r\n    <ClCompile Include=\"..\\..\\src\\libsodium\\crypto_box\\curve25519xsalsa20poly1305\\box_curve25519xsalsa20poly1305.c\" />\r\n    <ClCompile Include=\"..\\..\\src\\libsodium\\crypto_box\\curve25519xchacha20poly1305\\box_curve25519xchacha20poly1305.c\" />\r\n    <ClCompile Include=\"..\\..\\src\\libsodium\\crypto_box\\curve25519xchacha20poly1305\\box_seal_curve25519xchacha20poly1305.c\" />\r\n    <ClCompile Include=\"..\\..\\src\\libsodium\\sodium\\codecs.c\" />\r\n    <ClCompile Include=\"..\\..\\src\\libsodium\\sodium\\runtime.c\" />\r\n    <ClCompile Include=\"..\\..\\src\\libsodium\\sodium\\core.c\" />\r\n    <ClCompile Include=\"..\\..\\src\\libsodium\\sodium\\utils.c\" />\r\n    <ClCompile Include=\"..\\..\\src\\libsodium\\sodium\\version.c\" />\r\n    <ClCompile Include=\"..\\..\\src\\libsodium\\crypto_ipcrypt\\ipcrypt_armcrypto.c\" />\r\n    <ClCompile Include=\"..\\..\\src\\libsodium\\crypto_ipcrypt\\crypto_ipcrypt.c\" />\r\n    <ClCompile Include=\"..\\..\\src\\libsodium\\crypto_ipcrypt\\ipcrypt_soft.c\" />\r\n    <ClCompile Include=\"..\\..\\src\\libsodium\\crypto_ipcrypt\\ipcrypt_aesni.c\" />\r\n    <ClCompile Include=\"..\\..\\src\\libsodium\\crypto_stream\\crypto_stream.c\" />\r\n    <ClCompile Include=\"..\\..\\src\\libsodium\\crypto_stream\\xchacha20\\stream_xchacha20.c\" />\r\n    <ClCompile Include=\"..\\..\\src\\libsodium\\crypto_stream\\chacha20\\stream_chacha20.c\" />\r\n    <ClCompile Include=\"..\\..\\src\\libsodium\\crypto_stream\\chacha20\\ref\\chacha20_ref.c\" />\r\n    <ClCompile Include=\"..\\..\\src\\libsodium\\crypto_stream\\chacha20\\dolbeau\\chacha20_dolbeau-avx2.c\" />\r\n    <ClCompile Include=\"..\\..\\src\\libsodium\\crypto_stream\\chacha20\\dolbeau\\chacha20_dolbeau-ssse3.c\" />\r\n    <ClCompile Include=\"..\\..\\src\\libsodium\\crypto_stream\\salsa20\\stream_salsa20.c\" />\r\n    <ClCompile Include=\"..\\..\\src\\libsodium\\crypto_stream\\salsa20\\ref\\salsa20_ref.c\" />\r\n    <ClCompile Include=\"..\\..\\src\\libsodium\\crypto_stream\\salsa20\\xmm6int\\salsa20_xmm6int-avx2.c\" />\r\n    <ClCompile Include=\"..\\..\\src\\libsodium\\crypto_stream\\salsa20\\xmm6int\\salsa20_xmm6int-sse2.c\" />\r\n    <ClCompile Include=\"..\\..\\src\\libsodium\\crypto_stream\\salsa20\\xmm6\\salsa20_xmm6.c\" />\r\n    <ClCompile Include=\"..\\..\\src\\libsodium\\crypto_stream\\salsa2012\\stream_salsa2012.c\" />\r\n    <ClCompile Include=\"..\\..\\src\\libsodium\\crypto_stream\\salsa2012\\ref\\stream_salsa2012_ref.c\" />\r\n    <ClCompile Include=\"..\\..\\src\\libsodium\\crypto_stream\\salsa208\\stream_salsa208.c\" />\r\n    <ClCompile Include=\"..\\..\\src\\libsodium\\crypto_stream\\salsa208\\ref\\stream_salsa208_ref.c\" />\r\n    <ClCompile Include=\"..\\..\\src\\libsodium\\crypto_stream\\xsalsa20\\stream_xsalsa20.c\" />\r\n    <ClCompile Include=\"..\\..\\src\\libsodium\\crypto_hash\\crypto_hash.c\" />\r\n    <ClCompile Include=\"..\\..\\src\\libsodium\\crypto_hash\\sha512\\hash_sha512.c\" />\r\n    <ClCompile Include=\"..\\..\\src\\libsodium\\crypto_hash\\sha512\\cp\\hash_sha512_cp.c\" />\r\n    <ClCompile Include=\"..\\..\\src\\libsodium\\crypto_hash\\sha3\\hash_sha3.c\" />\r\n    <ClCompile Include=\"..\\..\\src\\libsodium\\crypto_hash\\sha256\\hash_sha256.c\" />\r\n    <ClCompile Include=\"..\\..\\src\\libsodium\\crypto_hash\\sha256\\cp\\hash_sha256_cp.c\" />\r\n    <ClCompile Include=\"..\\..\\src\\libsodium\\crypto_aead\\xchacha20poly1305\\aead_xchacha20poly1305.c\" />\r\n    <ClCompile Include=\"..\\..\\src\\libsodium\\crypto_aead\\aegis128l\\aegis128l_soft.c\" />\r\n    <ClCompile Include=\"..\\..\\src\\libsodium\\crypto_aead\\aegis128l\\aead_aegis128l.c\" />\r\n    <ClCompile Include=\"..\\..\\src\\libsodium\\crypto_aead\\aegis128l\\aegis128l_aesni.c\" />\r\n    <ClCompile Include=\"..\\..\\src\\libsodium\\crypto_aead\\aegis128l\\aegis128l_armcrypto.c\" />\r\n    <ClCompile Include=\"..\\..\\src\\libsodium\\crypto_aead\\aegis256\\aead_aegis256.c\" />\r\n    <ClCompile Include=\"..\\..\\src\\libsodium\\crypto_aead\\aegis256\\aegis256_soft.c\" />\r\n    <ClCompile Include=\"..\\..\\src\\libsodium\\crypto_aead\\aegis256\\aegis256_armcrypto.c\" />\r\n    <ClCompile Include=\"..\\..\\src\\libsodium\\crypto_aead\\aegis256\\aegis256_aesni.c\" />\r\n    <ClCompile Include=\"..\\..\\src\\libsodium\\crypto_aead\\aes256gcm\\aead_aes256gcm.c\" />\r\n    <ClCompile Include=\"..\\..\\src\\libsodium\\crypto_aead\\aes256gcm\\aesni\\aead_aes256gcm_aesni.c\" />\r\n    <ClCompile Include=\"..\\..\\src\\libsodium\\crypto_aead\\aes256gcm\\armcrypto\\aead_aes256gcm_armcrypto.c\" />\r\n    <ClCompile Include=\"..\\..\\src\\libsodium\\crypto_aead\\chacha20poly1305\\aead_chacha20poly1305.c\" />\r\n    <ClCompile Include=\"..\\..\\src\\libsodium\\crypto_kem\\crypto_kem.c\" />\r\n    <ClCompile Include=\"..\\..\\src\\libsodium\\crypto_kem\\xwing\\kem_xwing.c\" />\r\n    <ClCompile Include=\"..\\..\\src\\libsodium\\crypto_kem\\mlkem768\\kem_mlkem768.c\" />\r\n    <ClCompile Include=\"..\\..\\src\\libsodium\\crypto_kem\\mlkem768\\ref\\kem_mlkem768_ref.c\" />\r\n    <ClCompile Include=\"..\\..\\src\\libsodium\\crypto_secretstream\\xchacha20poly1305\\secretstream_xchacha20poly1305.c\" />\r\n    <ClCompile Include=\"..\\..\\src\\libsodium\\crypto_core\\keccak1600\\keccak1600.c\" />\r\n    <ClCompile Include=\"..\\..\\src\\libsodium\\crypto_core\\keccak1600\\ref\\keccak1600_ref.c\" />\r\n    <ClCompile Include=\"..\\..\\src\\libsodium\\crypto_core\\keccak1600\\armsha3\\keccak1600_armsha3.c\" />\r\n    <ClCompile Include=\"..\\..\\src\\libsodium\\crypto_core\\salsa\\ref\\core_salsa_ref.c\" />\r\n    <ClCompile Include=\"..\\..\\src\\libsodium\\crypto_core\\hchacha20\\core_hchacha20.c\" />\r\n    <ClCompile Include=\"..\\..\\src\\libsodium\\crypto_core\\hsalsa20\\core_hsalsa20.c\" />\r\n    <ClCompile Include=\"..\\..\\src\\libsodium\\crypto_core\\hsalsa20\\ref2\\core_hsalsa20_ref2.c\" />\r\n    <ClCompile Include=\"..\\..\\src\\libsodium\\crypto_core\\softaes\\softaes.c\" />\r\n    <ClCompile Include=\"..\\..\\src\\libsodium\\crypto_core\\ed25519\\core_ed25519.c\" />\r\n    <ClCompile Include=\"..\\..\\src\\libsodium\\crypto_core\\ed25519\\core_ristretto255.c\" />\r\n    <ClCompile Include=\"..\\..\\src\\libsodium\\crypto_core\\ed25519\\core_h2c.c\" />\r\n    <ClCompile Include=\"..\\..\\src\\libsodium\\crypto_core\\ed25519\\ref10\\ed25519_ref10.c\" />\r\n  </ItemGroup>\r\n  <ItemGroup>\r\n    <ClInclude Include=\"..\\..\\src\\libsodium\\crypto_generichash\\blake2b\\ref\\blake2b-load-sse2.h\" />\r\n    <ClInclude Include=\"..\\..\\src\\libsodium\\crypto_generichash\\blake2b\\ref\\blake2b-load-avx2.h\" />\r\n    <ClInclude Include=\"..\\..\\src\\libsodium\\crypto_generichash\\blake2b\\ref\\blake2.h\" />\r\n    <ClInclude Include=\"..\\..\\src\\libsodium\\crypto_generichash\\blake2b\\ref\\blake2b-compress-ssse3.h\" />\r\n    <ClInclude Include=\"..\\..\\src\\libsodium\\crypto_generichash\\blake2b\\ref\\blake2b-load-sse41.h\" />\r\n    <ClInclude Include=\"..\\..\\src\\libsodium\\crypto_generichash\\blake2b\\ref\\blake2b-compress-avx2.h\" />\r\n    <ClInclude Include=\"..\\..\\src\\libsodium\\crypto_generichash\\blake2b\\ref\\blake2b-compress-sse41.h\" />\r\n    <ClInclude Include=\"..\\..\\src\\libsodium\\crypto_sign\\ed25519\\ref10\\sign_ed25519_ref10.h\" />\r\n    <ClInclude Include=\"..\\..\\src\\libsodium\\include\\sodium.h\" />\r\n    <ClInclude Include=\"..\\..\\src\\libsodium\\include\\sodium\\crypto_stream_salsa2012.h\" />\r\n    <ClInclude Include=\"..\\..\\src\\libsodium\\include\\sodium\\crypto_auth.h\" />\r\n    <ClInclude Include=\"..\\..\\src\\libsodium\\include\\sodium\\utils.h\" />\r\n    <ClInclude Include=\"..\\..\\src\\libsodium\\include\\sodium\\crypto_core_hchacha20.h\" />\r\n    <ClInclude Include=\"..\\..\\src\\libsodium\\include\\sodium\\crypto_aead_aegis256.h\" />\r\n    <ClInclude Include=\"..\\..\\src\\libsodium\\include\\sodium\\crypto_hash_sha512.h\" />\r\n    <ClInclude Include=\"..\\..\\src\\libsodium\\include\\sodium\\core.h\" />\r\n    <ClInclude Include=\"..\\..\\src\\libsodium\\include\\sodium\\export.h\" />\r\n    <ClInclude Include=\"..\\..\\src\\libsodium\\include\\sodium\\crypto_core_salsa20.h\" />\r\n    <ClInclude Include=\"..\\..\\src\\libsodium\\include\\sodium\\crypto_shorthash_siphash24.h\" />\r\n    <ClInclude Include=\"..\\..\\src\\libsodium\\include\\sodium\\randombytes.h\" />\r\n    <ClInclude Include=\"..\\..\\src\\libsodium\\include\\sodium\\crypto_hash_sha256.h\" />\r\n    <ClInclude Include=\"..\\..\\src\\libsodium\\include\\sodium\\crypto_stream.h\" />\r\n    <ClInclude Include=\"..\\..\\src\\libsodium\\include\\sodium\\crypto_auth_hmacsha512.h\" />\r\n    <ClInclude Include=\"..\\..\\src\\libsodium\\include\\sodium\\crypto_xof_shake128.h\" />\r\n    <ClInclude Include=\"..\\..\\src\\libsodium\\include\\sodium\\crypto_aead_xchacha20poly1305.h\" />\r\n    <ClInclude Include=\"..\\..\\src\\libsodium\\include\\sodium\\crypto_stream_salsa20.h\" />\r\n    <ClInclude Include=\"..\\..\\src\\libsodium\\include\\sodium\\crypto_onetimeauth_poly1305.h\" />\r\n    <ClInclude Include=\"..\\..\\src\\libsodium\\include\\sodium\\crypto_kem_mlkem768.h\" />\r\n    <ClInclude Include=\"..\\..\\src\\libsodium\\include\\sodium\\crypto_scalarmult_ristretto255.h\" />\r\n    <ClInclude Include=\"..\\..\\src\\libsodium\\include\\sodium\\crypto_kx.h\" />\r\n    <ClInclude Include=\"..\\..\\src\\libsodium\\include\\sodium\\crypto_hash.h\" />\r\n    <ClInclude Include=\"..\\..\\src\\libsodium\\include\\sodium\\crypto_sign.h\" />\r\n    <ClInclude Include=\"..\\..\\src\\libsodium\\include\\sodium\\crypto_kdf.h\" />\r\n    <ClInclude Include=\"..\\..\\src\\libsodium\\include\\sodium\\crypto_auth_hmacsha256.h\" />\r\n    <ClInclude Include=\"..\\..\\src\\libsodium\\include\\sodium\\crypto_box.h\" />\r\n    <ClInclude Include=\"..\\..\\src\\libsodium\\include\\sodium\\crypto_verify_32.h\" />\r\n    <ClInclude Include=\"..\\..\\src\\libsodium\\include\\sodium\\crypto_core_ristretto255.h\" />\r\n    <ClInclude Include=\"..\\..\\src\\libsodium\\include\\sodium\\crypto_stream_xchacha20.h\" />\r\n    <ClInclude Include=\"..\\..\\src\\libsodium\\include\\sodium\\crypto_core_salsa208.h\" />\r\n    <ClInclude Include=\"..\\..\\src\\libsodium\\include\\sodium\\crypto_auth_hmacsha512256.h\" />\r\n    <ClInclude Include=\"..\\..\\src\\libsodium\\include\\sodium\\crypto_xof_turboshake128.h\" />\r\n    <ClInclude Include=\"..\\..\\src\\libsodium\\include\\sodium\\crypto_aead_aegis128l.h\" />\r\n    <ClInclude Include=\"..\\..\\src\\libsodium\\include\\sodium\\crypto_aead_chacha20poly1305.h\" />\r\n    <ClInclude Include=\"..\\..\\src\\libsodium\\include\\sodium\\randombytes_sysrandom.h\" />\r\n    <ClInclude Include=\"..\\..\\src\\libsodium\\include\\sodium\\crypto_xof_turboshake256.h\" />\r\n    <ClInclude Include=\"..\\..\\src\\libsodium\\include\\sodium\\runtime.h\" />\r\n    <ClInclude Include=\"..\\..\\src\\libsodium\\include\\sodium\\crypto_stream_salsa208.h\" />\r\n    <ClInclude Include=\"..\\..\\src\\libsodium\\include\\sodium\\crypto_aead_aes256gcm.h\" />\r\n    <ClInclude Include=\"..\\..\\src\\libsodium\\include\\sodium\\crypto_core_salsa2012.h\" />\r\n    <ClInclude Include=\"..\\..\\src\\libsodium\\include\\sodium\\crypto_secretbox_xchacha20poly1305.h\" />\r\n    <ClInclude Include=\"..\\..\\src\\libsodium\\include\\sodium\\crypto_kem.h\" />\r\n    <ClInclude Include=\"..\\..\\src\\libsodium\\include\\sodium\\crypto_core_keccak1600.h\" />\r\n    <ClInclude Include=\"..\\..\\src\\libsodium\\include\\sodium\\crypto_scalarmult.h\" />\r\n    <ClInclude Include=\"..\\..\\src\\libsodium\\include\\sodium\\crypto_pwhash.h\" />\r\n    <ClInclude Include=\"..\\..\\src\\libsodium\\include\\sodium\\crypto_verify_16.h\" />\r\n    <ClInclude Include=\"..\\..\\src\\libsodium\\include\\sodium\\crypto_stream_chacha20.h\" />\r\n    <ClInclude Include=\"..\\..\\src\\libsodium\\include\\sodium\\crypto_stream_xsalsa20.h\" />\r\n    <ClInclude Include=\"..\\..\\src\\libsodium\\include\\sodium\\crypto_core_hsalsa20.h\" />\r\n    <ClInclude Include=\"..\\..\\src\\libsodium\\include\\sodium\\crypto_kdf_blake2b.h\" />\r\n    <ClInclude Include=\"..\\..\\src\\libsodium\\include\\sodium\\crypto_scalarmult_curve25519.h\" />\r\n    <ClInclude Include=\"..\\..\\src\\libsodium\\include\\sodium\\crypto_xof_shake256.h\" />\r\n    <ClInclude Include=\"..\\..\\src\\libsodium\\include\\sodium\\crypto_shorthash.h\" />\r\n    <ClInclude Include=\"..\\..\\src\\libsodium\\include\\sodium\\crypto_kdf_hkdf_sha256.h\" />\r\n    <ClInclude Include=\"..\\..\\src\\libsodium\\include\\sodium\\crypto_pwhash_argon2id.h\" />\r\n    <ClInclude Include=\"..\\..\\src\\libsodium\\include\\sodium\\crypto_secretstream_xchacha20poly1305.h\" />\r\n    <ClInclude Include=\"..\\..\\src\\libsodium\\include\\sodium\\crypto_pwhash_scryptsalsa208sha256.h\" />\r\n    <ClInclude Include=\"..\\..\\src\\libsodium\\include\\sodium\\crypto_hash_sha3.h\" />\r\n    <ClInclude Include=\"..\\..\\src\\libsodium\\include\\sodium\\crypto_kem_xwing.h\" />\r\n    <ClInclude Include=\"..\\..\\src\\libsodium\\include\\sodium\\crypto_sign_ed25519.h\" />\r\n    <ClInclude Include=\"..\\..\\src\\libsodium\\include\\sodium\\crypto_onetimeauth.h\" />\r\n    <ClInclude Include=\"..\\..\\src\\libsodium\\include\\sodium\\crypto_verify_64.h\" />\r\n    <ClInclude Include=\"..\\..\\src\\libsodium\\include\\sodium\\crypto_box_curve25519xchacha20poly1305.h\" />\r\n    <ClInclude Include=\"..\\..\\src\\libsodium\\include\\sodium\\crypto_core_ed25519.h\" />\r\n    <ClInclude Include=\"..\\..\\src\\libsodium\\include\\sodium\\crypto_kdf_hkdf_sha512.h\" />\r\n    <ClInclude Include=\"..\\..\\src\\libsodium\\include\\sodium\\crypto_pwhash_argon2i.h\" />\r\n    <ClInclude Include=\"..\\..\\src\\libsodium\\include\\sodium\\randombytes_internal_random.h\" />\r\n    <ClInclude Include=\"..\\..\\src\\libsodium\\include\\sodium\\crypto_generichash.h\" />\r\n    <ClInclude Include=\"..\\..\\src\\libsodium\\include\\sodium\\crypto_secretbox_xsalsa20poly1305.h\" />\r\n    <ClInclude Include=\"..\\..\\src\\libsodium\\include\\sodium\\crypto_secretbox.h\" />\r\n    <ClInclude Include=\"..\\..\\src\\libsodium\\include\\sodium\\crypto_scalarmult_ed25519.h\" />\r\n    <ClInclude Include=\"..\\..\\src\\libsodium\\include\\sodium\\crypto_ipcrypt.h\" />\r\n    <ClInclude Include=\"..\\..\\src\\libsodium\\include\\sodium\\crypto_box_curve25519xsalsa20poly1305.h\" />\r\n    <ClInclude Include=\"..\\..\\src\\libsodium\\include\\sodium\\crypto_generichash_blake2b.h\" />\r\n    <ClInclude Include=\"..\\..\\src\\libsodium\\include\\sodium\\private\\ed25519_ref10.h\" />\r\n    <ClInclude Include=\"..\\..\\src\\libsodium\\include\\sodium\\private\\softaes.h\" />\r\n    <ClInclude Include=\"..\\..\\src\\libsodium\\include\\sodium\\private\\quirks.h\" />\r\n    <ClInclude Include=\"..\\..\\src\\libsodium\\include\\sodium\\private\\ed25519_ref10_fe_25_5.h\" />\r\n    <ClInclude Include=\"..\\..\\src\\libsodium\\include\\sodium\\private\\ed25519_ref10_fe_51.h\" />\r\n    <ClInclude Include=\"..\\..\\src\\libsodium\\include\\sodium\\private\\sse2_64_32.h\" />\r\n    <ClInclude Include=\"..\\..\\src\\libsodium\\include\\sodium\\private\\asm_cet.h\" />\r\n    <ClInclude Include=\"..\\..\\src\\libsodium\\include\\sodium\\private\\common.h\" />\r\n    <ClInclude Include=\"..\\..\\src\\libsodium\\include\\sodium\\private\\mutex.h\" />\r\n    <ClInclude Include=\"..\\..\\src\\libsodium\\include\\sodium\\private\\chacha20_ietf_ext.h\" />\r\n    <ClInclude Include=\"..\\..\\src\\libsodium\\include\\sodium\\private\\implementations.h\" />\r\n    <ClInclude Include=\"..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\blamka-round-ref.h\" />\r\n    <ClInclude Include=\"..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\blamka-round-avx2.h\" />\r\n    <ClInclude Include=\"..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\blamka-round-neon.h\" />\r\n    <ClInclude Include=\"..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\blamka-round-wasm32.h\" />\r\n    <ClInclude Include=\"..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\argon2.h\" />\r\n    <ClInclude Include=\"..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\blamka-round-ssse3.h\" />\r\n    <ClInclude Include=\"..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\argon2-encoding.h\" />\r\n    <ClInclude Include=\"..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\blake2b-long.h\" />\r\n    <ClInclude Include=\"..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\blamka-round-avx512f.h\" />\r\n    <ClInclude Include=\"..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\argon2-core.h\" />\r\n    <ClInclude Include=\"..\\..\\src\\libsodium\\crypto_pwhash\\scryptsalsa208sha256\\crypto_scrypt.h\" />\r\n    <ClInclude Include=\"..\\..\\src\\libsodium\\crypto_pwhash\\scryptsalsa208sha256\\pbkdf2-sha256.h\" />\r\n    <ClInclude Include=\"..\\..\\src\\libsodium\\crypto_xof\\shake128\\ref\\shake128_ref.h\" />\r\n    <ClInclude Include=\"..\\..\\src\\libsodium\\crypto_xof\\shake256\\ref\\shake256_ref.h\" />\r\n    <ClInclude Include=\"..\\..\\src\\libsodium\\crypto_xof\\turboshake256\\ref\\turboshake256_ref.h\" />\r\n    <ClInclude Include=\"..\\..\\src\\libsodium\\crypto_xof\\turboshake128\\ref\\turboshake128_ref.h\" />\r\n    <ClInclude Include=\"..\\..\\src\\libsodium\\crypto_shorthash\\siphash24\\ref\\shorthash_siphash_ref.h\" />\r\n    <ClInclude Include=\"..\\..\\src\\libsodium\\crypto_scalarmult\\curve25519\\scalarmult_curve25519.h\" />\r\n    <ClInclude Include=\"..\\..\\src\\libsodium\\crypto_scalarmult\\curve25519\\sandy2x\\consts_namespace.h\" />\r\n    <ClInclude Include=\"..\\..\\src\\libsodium\\crypto_scalarmult\\curve25519\\sandy2x\\ladder_namespace.h\" />\r\n    <ClInclude Include=\"..\\..\\src\\libsodium\\crypto_scalarmult\\curve25519\\sandy2x\\fe.h\" />\r\n    <ClInclude Include=\"..\\..\\src\\libsodium\\crypto_scalarmult\\curve25519\\sandy2x\\ladder.h\" />\r\n    <ClInclude Include=\"..\\..\\src\\libsodium\\crypto_scalarmult\\curve25519\\sandy2x\\fe51.h\" />\r\n    <ClInclude Include=\"..\\..\\src\\libsodium\\crypto_scalarmult\\curve25519\\sandy2x\\curve25519_sandy2x.h\" />\r\n    <ClInclude Include=\"..\\..\\src\\libsodium\\crypto_scalarmult\\curve25519\\sandy2x\\fe51_namespace.h\" />\r\n    <ClInclude Include=\"..\\..\\src\\libsodium\\crypto_scalarmult\\curve25519\\ref10\\x25519_ref10.h\" />\r\n    <ClInclude Include=\"..\\..\\src\\libsodium\\crypto_onetimeauth\\poly1305\\onetimeauth_poly1305.h\" />\r\n    <ClInclude Include=\"..\\..\\src\\libsodium\\crypto_onetimeauth\\poly1305\\donna\\poly1305_donna.h\" />\r\n    <ClInclude Include=\"..\\..\\src\\libsodium\\crypto_onetimeauth\\poly1305\\donna\\poly1305_donna64.h\" />\r\n    <ClInclude Include=\"..\\..\\src\\libsodium\\crypto_onetimeauth\\poly1305\\donna\\poly1305_donna32.h\" />\r\n    <ClInclude Include=\"..\\..\\src\\libsodium\\crypto_onetimeauth\\poly1305\\sse2\\poly1305_sse2.h\" />\r\n    <ClInclude Include=\"..\\..\\src\\libsodium\\crypto_ipcrypt\\ipcrypt_soft.h\" />\r\n    <ClInclude Include=\"..\\..\\src\\libsodium\\crypto_ipcrypt\\ipcrypt_aesni.h\" />\r\n    <ClInclude Include=\"..\\..\\src\\libsodium\\crypto_ipcrypt\\ipcrypt_armcrypto.h\" />\r\n    <ClInclude Include=\"..\\..\\src\\libsodium\\crypto_ipcrypt\\implementations.h\" />\r\n    <ClInclude Include=\"..\\..\\src\\libsodium\\crypto_stream\\chacha20\\stream_chacha20.h\" />\r\n    <ClInclude Include=\"..\\..\\src\\libsodium\\crypto_stream\\chacha20\\ref\\chacha20_ref.h\" />\r\n    <ClInclude Include=\"..\\..\\src\\libsodium\\crypto_stream\\chacha20\\dolbeau\\u4.h\" />\r\n    <ClInclude Include=\"..\\..\\src\\libsodium\\crypto_stream\\chacha20\\dolbeau\\chacha20_dolbeau-ssse3.h\" />\r\n    <ClInclude Include=\"..\\..\\src\\libsodium\\crypto_stream\\chacha20\\dolbeau\\u0.h\" />\r\n    <ClInclude Include=\"..\\..\\src\\libsodium\\crypto_stream\\chacha20\\dolbeau\\u1.h\" />\r\n    <ClInclude Include=\"..\\..\\src\\libsodium\\crypto_stream\\chacha20\\dolbeau\\chacha20_dolbeau-avx2.h\" />\r\n    <ClInclude Include=\"..\\..\\src\\libsodium\\crypto_stream\\chacha20\\dolbeau\\u8.h\" />\r\n    <ClInclude Include=\"..\\..\\src\\libsodium\\crypto_stream\\salsa20\\stream_salsa20.h\" />\r\n    <ClInclude Include=\"..\\..\\src\\libsodium\\crypto_stream\\salsa20\\ref\\salsa20_ref.h\" />\r\n    <ClInclude Include=\"..\\..\\src\\libsodium\\crypto_stream\\salsa20\\xmm6int\\u4.h\" />\r\n    <ClInclude Include=\"..\\..\\src\\libsodium\\crypto_stream\\salsa20\\xmm6int\\u0.h\" />\r\n    <ClInclude Include=\"..\\..\\src\\libsodium\\crypto_stream\\salsa20\\xmm6int\\u1.h\" />\r\n    <ClInclude Include=\"..\\..\\src\\libsodium\\crypto_stream\\salsa20\\xmm6int\\salsa20_xmm6int-avx2.h\" />\r\n    <ClInclude Include=\"..\\..\\src\\libsodium\\crypto_stream\\salsa20\\xmm6int\\u8.h\" />\r\n    <ClInclude Include=\"..\\..\\src\\libsodium\\crypto_stream\\salsa20\\xmm6int\\salsa20_xmm6int-sse2.h\" />\r\n    <ClInclude Include=\"..\\..\\src\\libsodium\\crypto_stream\\salsa20\\xmm6\\salsa20_xmm6-asm_namespace.h\" />\r\n    <ClInclude Include=\"..\\..\\src\\libsodium\\crypto_stream\\salsa20\\xmm6\\salsa20_xmm6.h\" />\r\n    <ClInclude Include=\"..\\..\\src\\libsodium\\crypto_aead\\aegis128l\\aegis128l_armcrypto.h\" />\r\n    <ClInclude Include=\"..\\..\\src\\libsodium\\crypto_aead\\aegis128l\\aegis128l_aesni.h\" />\r\n    <ClInclude Include=\"..\\..\\src\\libsodium\\crypto_aead\\aegis128l\\aegis128l_soft.h\" />\r\n    <ClInclude Include=\"..\\..\\src\\libsodium\\crypto_aead\\aegis128l\\aegis128l_common.h\" />\r\n    <ClInclude Include=\"..\\..\\src\\libsodium\\crypto_aead\\aegis128l\\implementations.h\" />\r\n    <ClInclude Include=\"..\\..\\src\\libsodium\\crypto_aead\\aegis256\\aegis256_aesni.h\" />\r\n    <ClInclude Include=\"..\\..\\src\\libsodium\\crypto_aead\\aegis256\\aegis256_common.h\" />\r\n    <ClInclude Include=\"..\\..\\src\\libsodium\\crypto_aead\\aegis256\\implementations.h\" />\r\n    <ClInclude Include=\"..\\..\\src\\libsodium\\crypto_aead\\aegis256\\aegis256_armcrypto.h\" />\r\n    <ClInclude Include=\"..\\..\\src\\libsodium\\crypto_aead\\aegis256\\aegis256_soft.h\" />\r\n    <ClInclude Include=\"..\\..\\src\\libsodium\\crypto_kem\\mlkem768\\ref\\kem_mlkem768_ref.h\" />\r\n    <ClInclude Include=\"..\\..\\src\\libsodium\\crypto_core\\keccak1600\\ref\\keccak1600_ref.h\" />\r\n    <ClInclude Include=\"..\\..\\src\\libsodium\\crypto_core\\keccak1600\\armsha3\\keccak1600_armsha3.h\" />\r\n    <ClInclude Include=\"..\\..\\src\\libsodium\\crypto_core\\ed25519\\core_h2c.h\" />\r\n    <ClInclude Include=\"..\\..\\src\\libsodium\\crypto_core\\ed25519\\ref10\\fe_25_5\\constants.h\" />\r\n    <ClInclude Include=\"..\\..\\src\\libsodium\\crypto_core\\ed25519\\ref10\\fe_25_5\\fe.h\" />\r\n    <ClInclude Include=\"..\\..\\src\\libsodium\\crypto_core\\ed25519\\ref10\\fe_25_5\\base2.h\" />\r\n    <ClInclude Include=\"..\\..\\src\\libsodium\\crypto_core\\ed25519\\ref10\\fe_25_5\\base.h\" />\r\n    <ClInclude Include=\"..\\..\\src\\libsodium\\crypto_core\\ed25519\\ref10\\fe_51\\constants.h\" />\r\n    <ClInclude Include=\"..\\..\\src\\libsodium\\crypto_core\\ed25519\\ref10\\fe_51\\fe.h\" />\r\n    <ClInclude Include=\"..\\..\\src\\libsodium\\crypto_core\\ed25519\\ref10\\fe_51\\base2.h\" />\r\n    <ClInclude Include=\"..\\..\\src\\libsodium\\crypto_core\\ed25519\\ref10\\fe_51\\base.h\" />\r\n    <ClInclude Include=\"..\\..\\builds\\msvc\\resource.h\" />\r\n  </ItemGroup>\r\n  <ItemGroup>\r\n    <ResourceCompile Include=\"..\\..\\builds\\msvc\\resource.rc\">\r\n    </ResourceCompile>\r\n  </ItemGroup>\r\n  <Import Project=\"$(VCTargetsPath)\\Microsoft.Cpp.targets\" />\r\n  <ImportGroup Label=\"ExtensionTargets\">\r\n  </ImportGroup>\r\n</Project>\r\n"
  },
  {
    "path": "ci/appveyor/libsodium.vcxproj.filters",
    "content": "﻿<?xml version=\"1.0\" encoding=\"utf-8\"?>\r\n<Project ToolsVersion=\"4.0\" xmlns=\"http://schemas.microsoft.com/developer/msbuild/2003\">\r\n  <ItemGroup>\r\n    <Filter Include=\"Source Files\">\r\n      <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>\r\n      <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>\r\n    </Filter>\r\n    <Filter Include=\"Header Files\">\r\n      <UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>\r\n      <Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions>\r\n    </Filter>\r\n    <Filter Include=\"Resource Files\">\r\n      <UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>\r\n      <Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms</Extensions>\r\n    </Filter>\r\n  </ItemGroup>\r\n  <ItemGroup>\r\n    <ClCompile Include=\"..\\..\\src\\libsodium\\crypto_generichash\\crypto_generichash.c\">\r\n      <Filter>Source Files</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\src\\libsodium\\crypto_generichash\\blake2b\\generichash_blake2.c\">\r\n      <Filter>Source Files</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\src\\libsodium\\crypto_generichash\\blake2b\\ref\\blake2b-compress-ref.c\">\r\n      <Filter>Source Files</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\src\\libsodium\\crypto_generichash\\blake2b\\ref\\blake2b-compress-ssse3.c\">\r\n      <Filter>Source Files</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\src\\libsodium\\crypto_generichash\\blake2b\\ref\\blake2b-compress-avx2.c\">\r\n      <Filter>Source Files</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\src\\libsodium\\crypto_generichash\\blake2b\\ref\\blake2b-compress-sse41.c\">\r\n      <Filter>Source Files</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\src\\libsodium\\crypto_generichash\\blake2b\\ref\\generichash_blake2b.c\">\r\n      <Filter>Source Files</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\src\\libsodium\\crypto_generichash\\blake2b\\ref\\blake2b-ref.c\">\r\n      <Filter>Source Files</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\src\\libsodium\\crypto_kx\\crypto_kx.c\">\r\n      <Filter>Source Files</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\src\\libsodium\\crypto_sign\\crypto_sign.c\">\r\n      <Filter>Source Files</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\src\\libsodium\\crypto_sign\\ed25519\\sign_ed25519.c\">\r\n      <Filter>Source Files</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\src\\libsodium\\crypto_sign\\ed25519\\ref10\\sign.c\">\r\n      <Filter>Source Files</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\src\\libsodium\\crypto_sign\\ed25519\\ref10\\keypair.c\">\r\n      <Filter>Source Files</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\src\\libsodium\\crypto_sign\\ed25519\\ref10\\open.c\">\r\n      <Filter>Source Files</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\src\\libsodium\\crypto_secretbox\\crypto_secretbox.c\">\r\n      <Filter>Source Files</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\src\\libsodium\\crypto_secretbox\\crypto_secretbox_easy.c\">\r\n      <Filter>Source Files</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\src\\libsodium\\crypto_secretbox\\xsalsa20poly1305\\secretbox_xsalsa20poly1305.c\">\r\n      <Filter>Source Files</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\src\\libsodium\\crypto_secretbox\\xchacha20poly1305\\secretbox_xchacha20poly1305.c\">\r\n      <Filter>Source Files</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\src\\libsodium\\crypto_pwhash\\crypto_pwhash.c\">\r\n      <Filter>Source Files</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\blake2b-long.c\">\r\n      <Filter>Source Files</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\argon2-fill-block-wasm32.c\">\r\n      <Filter>Source Files</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\argon2-core.c\">\r\n      <Filter>Source Files</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\argon2-fill-block-avx512f.c\">\r\n      <Filter>Source Files</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\argon2-fill-block-ref.c\">\r\n      <Filter>Source Files</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\argon2-fill-block-ssse3.c\">\r\n      <Filter>Source Files</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\pwhash_argon2i.c\">\r\n      <Filter>Source Files</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\argon2-fill-block-neon.c\">\r\n      <Filter>Source Files</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\pwhash_argon2id.c\">\r\n      <Filter>Source Files</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\argon2.c\">\r\n      <Filter>Source Files</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\argon2-fill-block-avx2.c\">\r\n      <Filter>Source Files</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\argon2-encoding.c\">\r\n      <Filter>Source Files</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\src\\libsodium\\crypto_pwhash\\scryptsalsa208sha256\\scrypt_platform.c\">\r\n      <Filter>Source Files</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\src\\libsodium\\crypto_pwhash\\scryptsalsa208sha256\\crypto_scrypt-common.c\">\r\n      <Filter>Source Files</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\src\\libsodium\\crypto_pwhash\\scryptsalsa208sha256\\pwhash_scryptsalsa208sha256.c\">\r\n      <Filter>Source Files</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\src\\libsodium\\crypto_pwhash\\scryptsalsa208sha256\\pbkdf2-sha256.c\">\r\n      <Filter>Source Files</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\src\\libsodium\\crypto_pwhash\\scryptsalsa208sha256\\nosse\\pwhash_scryptsalsa208sha256_nosse.c\">\r\n      <Filter>Source Files</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\src\\libsodium\\crypto_pwhash\\scryptsalsa208sha256\\sse\\pwhash_scryptsalsa208sha256_sse.c\">\r\n      <Filter>Source Files</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\src\\libsodium\\crypto_xof\\shake128\\xof_shake128.c\">\r\n      <Filter>Source Files</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\src\\libsodium\\crypto_xof\\shake128\\ref\\shake128_ref.c\">\r\n      <Filter>Source Files</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\src\\libsodium\\crypto_xof\\shake256\\xof_shake256.c\">\r\n      <Filter>Source Files</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\src\\libsodium\\crypto_xof\\shake256\\ref\\shake256_ref.c\">\r\n      <Filter>Source Files</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\src\\libsodium\\crypto_xof\\turboshake256\\xof_turboshake256.c\">\r\n      <Filter>Source Files</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\src\\libsodium\\crypto_xof\\turboshake256\\ref\\turboshake256_ref.c\">\r\n      <Filter>Source Files</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\src\\libsodium\\crypto_xof\\turboshake128\\xof_turboshake128.c\">\r\n      <Filter>Source Files</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\src\\libsodium\\crypto_xof\\turboshake128\\ref\\turboshake128_ref.c\">\r\n      <Filter>Source Files</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\src\\libsodium\\crypto_verify\\verify.c\">\r\n      <Filter>Source Files</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\src\\libsodium\\crypto_auth\\crypto_auth.c\">\r\n      <Filter>Source Files</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\src\\libsodium\\crypto_auth\\hmacsha512\\auth_hmacsha512.c\">\r\n      <Filter>Source Files</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\src\\libsodium\\crypto_auth\\hmacsha512256\\auth_hmacsha512256.c\">\r\n      <Filter>Source Files</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\src\\libsodium\\crypto_auth\\hmacsha256\\auth_hmacsha256.c\">\r\n      <Filter>Source Files</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\src\\libsodium\\crypto_kdf\\crypto_kdf.c\">\r\n      <Filter>Source Files</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\src\\libsodium\\crypto_kdf\\blake2b\\kdf_blake2b.c\">\r\n      <Filter>Source Files</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\src\\libsodium\\crypto_kdf\\hkdf\\kdf_hkdf_sha256.c\">\r\n      <Filter>Source Files</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\src\\libsodium\\crypto_kdf\\hkdf\\kdf_hkdf_sha512.c\">\r\n      <Filter>Source Files</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\src\\libsodium\\crypto_shorthash\\crypto_shorthash.c\">\r\n      <Filter>Source Files</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\src\\libsodium\\crypto_shorthash\\siphash24\\shorthash_siphash24.c\">\r\n      <Filter>Source Files</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\src\\libsodium\\crypto_shorthash\\siphash24\\shorthash_siphashx24.c\">\r\n      <Filter>Source Files</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\src\\libsodium\\crypto_shorthash\\siphash24\\ref\\shorthash_siphashx24_ref.c\">\r\n      <Filter>Source Files</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\src\\libsodium\\crypto_shorthash\\siphash24\\ref\\shorthash_siphash24_ref.c\">\r\n      <Filter>Source Files</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\src\\libsodium\\crypto_scalarmult\\crypto_scalarmult.c\">\r\n      <Filter>Source Files</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\src\\libsodium\\crypto_scalarmult\\ristretto255\\ref10\\scalarmult_ristretto255_ref10.c\">\r\n      <Filter>Source Files</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\src\\libsodium\\crypto_scalarmult\\ed25519\\ref10\\scalarmult_ed25519_ref10.c\">\r\n      <Filter>Source Files</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\src\\libsodium\\crypto_scalarmult\\curve25519\\scalarmult_curve25519.c\">\r\n      <Filter>Source Files</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\src\\libsodium\\crypto_scalarmult\\curve25519\\sandy2x\\curve25519_sandy2x.c\">\r\n      <Filter>Source Files</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\src\\libsodium\\crypto_scalarmult\\curve25519\\sandy2x\\fe_frombytes_sandy2x.c\">\r\n      <Filter>Source Files</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\src\\libsodium\\crypto_scalarmult\\curve25519\\sandy2x\\fe51_invert.c\">\r\n      <Filter>Source Files</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\src\\libsodium\\crypto_scalarmult\\curve25519\\ref10\\x25519_ref10.c\">\r\n      <Filter>Source Files</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\src\\libsodium\\crypto_onetimeauth\\crypto_onetimeauth.c\">\r\n      <Filter>Source Files</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\src\\libsodium\\crypto_onetimeauth\\poly1305\\onetimeauth_poly1305.c\">\r\n      <Filter>Source Files</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\src\\libsodium\\crypto_onetimeauth\\poly1305\\donna\\poly1305_donna.c\">\r\n      <Filter>Source Files</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\src\\libsodium\\crypto_onetimeauth\\poly1305\\sse2\\poly1305_sse2.c\">\r\n      <Filter>Source Files</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\src\\libsodium\\randombytes\\randombytes.c\">\r\n      <Filter>Source Files</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\src\\libsodium\\randombytes\\sysrandom\\randombytes_sysrandom.c\">\r\n      <Filter>Source Files</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\src\\libsodium\\randombytes\\internal\\randombytes_internal_random.c\">\r\n      <Filter>Source Files</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\src\\libsodium\\crypto_box\\crypto_box_easy.c\">\r\n      <Filter>Source Files</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\src\\libsodium\\crypto_box\\crypto_box_seal.c\">\r\n      <Filter>Source Files</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\src\\libsodium\\crypto_box\\crypto_box.c\">\r\n      <Filter>Source Files</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\src\\libsodium\\crypto_box\\curve25519xsalsa20poly1305\\box_curve25519xsalsa20poly1305.c\">\r\n      <Filter>Source Files</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\src\\libsodium\\crypto_box\\curve25519xchacha20poly1305\\box_curve25519xchacha20poly1305.c\">\r\n      <Filter>Source Files</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\src\\libsodium\\crypto_box\\curve25519xchacha20poly1305\\box_seal_curve25519xchacha20poly1305.c\">\r\n      <Filter>Source Files</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\src\\libsodium\\sodium\\codecs.c\">\r\n      <Filter>Source Files</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\src\\libsodium\\sodium\\runtime.c\">\r\n      <Filter>Source Files</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\src\\libsodium\\sodium\\core.c\">\r\n      <Filter>Source Files</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\src\\libsodium\\sodium\\utils.c\">\r\n      <Filter>Source Files</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\src\\libsodium\\sodium\\version.c\">\r\n      <Filter>Source Files</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\src\\libsodium\\crypto_ipcrypt\\ipcrypt_armcrypto.c\">\r\n      <Filter>Source Files</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\src\\libsodium\\crypto_ipcrypt\\crypto_ipcrypt.c\">\r\n      <Filter>Source Files</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\src\\libsodium\\crypto_ipcrypt\\ipcrypt_soft.c\">\r\n      <Filter>Source Files</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\src\\libsodium\\crypto_ipcrypt\\ipcrypt_aesni.c\">\r\n      <Filter>Source Files</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\src\\libsodium\\crypto_stream\\crypto_stream.c\">\r\n      <Filter>Source Files</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\src\\libsodium\\crypto_stream\\xchacha20\\stream_xchacha20.c\">\r\n      <Filter>Source Files</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\src\\libsodium\\crypto_stream\\chacha20\\stream_chacha20.c\">\r\n      <Filter>Source Files</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\src\\libsodium\\crypto_stream\\chacha20\\ref\\chacha20_ref.c\">\r\n      <Filter>Source Files</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\src\\libsodium\\crypto_stream\\chacha20\\dolbeau\\chacha20_dolbeau-avx2.c\">\r\n      <Filter>Source Files</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\src\\libsodium\\crypto_stream\\chacha20\\dolbeau\\chacha20_dolbeau-ssse3.c\">\r\n      <Filter>Source Files</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\src\\libsodium\\crypto_stream\\salsa20\\stream_salsa20.c\">\r\n      <Filter>Source Files</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\src\\libsodium\\crypto_stream\\salsa20\\ref\\salsa20_ref.c\">\r\n      <Filter>Source Files</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\src\\libsodium\\crypto_stream\\salsa20\\xmm6int\\salsa20_xmm6int-avx2.c\">\r\n      <Filter>Source Files</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\src\\libsodium\\crypto_stream\\salsa20\\xmm6int\\salsa20_xmm6int-sse2.c\">\r\n      <Filter>Source Files</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\src\\libsodium\\crypto_stream\\salsa20\\xmm6\\salsa20_xmm6.c\">\r\n      <Filter>Source Files</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\src\\libsodium\\crypto_stream\\salsa2012\\stream_salsa2012.c\">\r\n      <Filter>Source Files</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\src\\libsodium\\crypto_stream\\salsa2012\\ref\\stream_salsa2012_ref.c\">\r\n      <Filter>Source Files</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\src\\libsodium\\crypto_stream\\salsa208\\stream_salsa208.c\">\r\n      <Filter>Source Files</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\src\\libsodium\\crypto_stream\\salsa208\\ref\\stream_salsa208_ref.c\">\r\n      <Filter>Source Files</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\src\\libsodium\\crypto_stream\\xsalsa20\\stream_xsalsa20.c\">\r\n      <Filter>Source Files</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\src\\libsodium\\crypto_hash\\crypto_hash.c\">\r\n      <Filter>Source Files</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\src\\libsodium\\crypto_hash\\sha512\\hash_sha512.c\">\r\n      <Filter>Source Files</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\src\\libsodium\\crypto_hash\\sha512\\cp\\hash_sha512_cp.c\">\r\n      <Filter>Source Files</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\src\\libsodium\\crypto_hash\\sha3\\hash_sha3.c\">\r\n      <Filter>Source Files</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\src\\libsodium\\crypto_hash\\sha256\\hash_sha256.c\">\r\n      <Filter>Source Files</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\src\\libsodium\\crypto_hash\\sha256\\cp\\hash_sha256_cp.c\">\r\n      <Filter>Source Files</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\src\\libsodium\\crypto_aead\\xchacha20poly1305\\aead_xchacha20poly1305.c\">\r\n      <Filter>Source Files</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\src\\libsodium\\crypto_aead\\aegis128l\\aegis128l_soft.c\">\r\n      <Filter>Source Files</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\src\\libsodium\\crypto_aead\\aegis128l\\aead_aegis128l.c\">\r\n      <Filter>Source Files</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\src\\libsodium\\crypto_aead\\aegis128l\\aegis128l_aesni.c\">\r\n      <Filter>Source Files</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\src\\libsodium\\crypto_aead\\aegis128l\\aegis128l_armcrypto.c\">\r\n      <Filter>Source Files</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\src\\libsodium\\crypto_aead\\aegis256\\aead_aegis256.c\">\r\n      <Filter>Source Files</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\src\\libsodium\\crypto_aead\\aegis256\\aegis256_soft.c\">\r\n      <Filter>Source Files</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\src\\libsodium\\crypto_aead\\aegis256\\aegis256_armcrypto.c\">\r\n      <Filter>Source Files</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\src\\libsodium\\crypto_aead\\aegis256\\aegis256_aesni.c\">\r\n      <Filter>Source Files</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\src\\libsodium\\crypto_aead\\aes256gcm\\aead_aes256gcm.c\">\r\n      <Filter>Source Files</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\src\\libsodium\\crypto_aead\\aes256gcm\\aesni\\aead_aes256gcm_aesni.c\">\r\n      <Filter>Source Files</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\src\\libsodium\\crypto_aead\\aes256gcm\\armcrypto\\aead_aes256gcm_armcrypto.c\">\r\n      <Filter>Source Files</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\src\\libsodium\\crypto_aead\\chacha20poly1305\\aead_chacha20poly1305.c\">\r\n      <Filter>Source Files</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\src\\libsodium\\crypto_kem\\crypto_kem.c\">\r\n      <Filter>Source Files</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\src\\libsodium\\crypto_kem\\xwing\\kem_xwing.c\">\r\n      <Filter>Source Files</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\src\\libsodium\\crypto_kem\\mlkem768\\kem_mlkem768.c\">\r\n      <Filter>Source Files</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\src\\libsodium\\crypto_kem\\mlkem768\\ref\\kem_mlkem768_ref.c\">\r\n      <Filter>Source Files</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\src\\libsodium\\crypto_secretstream\\xchacha20poly1305\\secretstream_xchacha20poly1305.c\">\r\n      <Filter>Source Files</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\src\\libsodium\\crypto_core\\keccak1600\\keccak1600.c\">\r\n      <Filter>Source Files</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\src\\libsodium\\crypto_core\\keccak1600\\ref\\keccak1600_ref.c\">\r\n      <Filter>Source Files</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\src\\libsodium\\crypto_core\\keccak1600\\armsha3\\keccak1600_armsha3.c\">\r\n      <Filter>Source Files</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\src\\libsodium\\crypto_core\\salsa\\ref\\core_salsa_ref.c\">\r\n      <Filter>Source Files</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\src\\libsodium\\crypto_core\\hchacha20\\core_hchacha20.c\">\r\n      <Filter>Source Files</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\src\\libsodium\\crypto_core\\hsalsa20\\core_hsalsa20.c\">\r\n      <Filter>Source Files</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\src\\libsodium\\crypto_core\\hsalsa20\\ref2\\core_hsalsa20_ref2.c\">\r\n      <Filter>Source Files</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\src\\libsodium\\crypto_core\\softaes\\softaes.c\">\r\n      <Filter>Source Files</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\src\\libsodium\\crypto_core\\ed25519\\core_ed25519.c\">\r\n      <Filter>Source Files</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\src\\libsodium\\crypto_core\\ed25519\\core_ristretto255.c\">\r\n      <Filter>Source Files</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\src\\libsodium\\crypto_core\\ed25519\\core_h2c.c\">\r\n      <Filter>Source Files</Filter>\r\n    </ClCompile>\r\n    <ClCompile Include=\"..\\..\\src\\libsodium\\crypto_core\\ed25519\\ref10\\ed25519_ref10.c\">\r\n      <Filter>Source Files</Filter>\r\n    </ClCompile>\r\n  </ItemGroup>\r\n  <ItemGroup>\r\n    <ClInclude Include=\"..\\..\\src\\libsodium\\crypto_generichash\\blake2b\\ref\\blake2b-load-sse2.h\">\r\n      <Filter>Header Files</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\src\\libsodium\\crypto_generichash\\blake2b\\ref\\blake2b-load-avx2.h\">\r\n      <Filter>Header Files</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\src\\libsodium\\crypto_generichash\\blake2b\\ref\\blake2.h\">\r\n      <Filter>Header Files</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\src\\libsodium\\crypto_generichash\\blake2b\\ref\\blake2b-compress-ssse3.h\">\r\n      <Filter>Header Files</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\src\\libsodium\\crypto_generichash\\blake2b\\ref\\blake2b-load-sse41.h\">\r\n      <Filter>Header Files</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\src\\libsodium\\crypto_generichash\\blake2b\\ref\\blake2b-compress-avx2.h\">\r\n      <Filter>Header Files</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\src\\libsodium\\crypto_generichash\\blake2b\\ref\\blake2b-compress-sse41.h\">\r\n      <Filter>Header Files</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\src\\libsodium\\crypto_sign\\ed25519\\ref10\\sign_ed25519_ref10.h\">\r\n      <Filter>Header Files</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\src\\libsodium\\include\\sodium.h\">\r\n      <Filter>Header Files</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\src\\libsodium\\include\\sodium\\crypto_stream_salsa2012.h\">\r\n      <Filter>Header Files</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\src\\libsodium\\include\\sodium\\crypto_auth.h\">\r\n      <Filter>Header Files</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\src\\libsodium\\include\\sodium\\utils.h\">\r\n      <Filter>Header Files</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\src\\libsodium\\include\\sodium\\crypto_core_hchacha20.h\">\r\n      <Filter>Header Files</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\src\\libsodium\\include\\sodium\\crypto_aead_aegis256.h\">\r\n      <Filter>Header Files</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\src\\libsodium\\include\\sodium\\crypto_hash_sha512.h\">\r\n      <Filter>Header Files</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\src\\libsodium\\include\\sodium\\core.h\">\r\n      <Filter>Header Files</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\src\\libsodium\\include\\sodium\\export.h\">\r\n      <Filter>Header Files</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\src\\libsodium\\include\\sodium\\crypto_core_salsa20.h\">\r\n      <Filter>Header Files</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\src\\libsodium\\include\\sodium\\crypto_shorthash_siphash24.h\">\r\n      <Filter>Header Files</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\src\\libsodium\\include\\sodium\\randombytes.h\">\r\n      <Filter>Header Files</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\src\\libsodium\\include\\sodium\\crypto_hash_sha256.h\">\r\n      <Filter>Header Files</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\src\\libsodium\\include\\sodium\\crypto_stream.h\">\r\n      <Filter>Header Files</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\src\\libsodium\\include\\sodium\\crypto_auth_hmacsha512.h\">\r\n      <Filter>Header Files</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\src\\libsodium\\include\\sodium\\crypto_xof_shake128.h\">\r\n      <Filter>Header Files</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\src\\libsodium\\include\\sodium\\crypto_aead_xchacha20poly1305.h\">\r\n      <Filter>Header Files</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\src\\libsodium\\include\\sodium\\crypto_stream_salsa20.h\">\r\n      <Filter>Header Files</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\src\\libsodium\\include\\sodium\\crypto_onetimeauth_poly1305.h\">\r\n      <Filter>Header Files</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\src\\libsodium\\include\\sodium\\crypto_kem_mlkem768.h\">\r\n      <Filter>Header Files</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\src\\libsodium\\include\\sodium\\crypto_scalarmult_ristretto255.h\">\r\n      <Filter>Header Files</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\src\\libsodium\\include\\sodium\\crypto_kx.h\">\r\n      <Filter>Header Files</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\src\\libsodium\\include\\sodium\\crypto_hash.h\">\r\n      <Filter>Header Files</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\src\\libsodium\\include\\sodium\\crypto_sign.h\">\r\n      <Filter>Header Files</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\src\\libsodium\\include\\sodium\\crypto_kdf.h\">\r\n      <Filter>Header Files</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\src\\libsodium\\include\\sodium\\crypto_auth_hmacsha256.h\">\r\n      <Filter>Header Files</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\src\\libsodium\\include\\sodium\\crypto_box.h\">\r\n      <Filter>Header Files</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\src\\libsodium\\include\\sodium\\crypto_verify_32.h\">\r\n      <Filter>Header Files</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\src\\libsodium\\include\\sodium\\crypto_core_ristretto255.h\">\r\n      <Filter>Header Files</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\src\\libsodium\\include\\sodium\\crypto_stream_xchacha20.h\">\r\n      <Filter>Header Files</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\src\\libsodium\\include\\sodium\\crypto_core_salsa208.h\">\r\n      <Filter>Header Files</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\src\\libsodium\\include\\sodium\\crypto_auth_hmacsha512256.h\">\r\n      <Filter>Header Files</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\src\\libsodium\\include\\sodium\\crypto_xof_turboshake128.h\">\r\n      <Filter>Header Files</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\src\\libsodium\\include\\sodium\\crypto_aead_aegis128l.h\">\r\n      <Filter>Header Files</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\src\\libsodium\\include\\sodium\\crypto_aead_chacha20poly1305.h\">\r\n      <Filter>Header Files</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\src\\libsodium\\include\\sodium\\randombytes_sysrandom.h\">\r\n      <Filter>Header Files</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\src\\libsodium\\include\\sodium\\crypto_xof_turboshake256.h\">\r\n      <Filter>Header Files</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\src\\libsodium\\include\\sodium\\runtime.h\">\r\n      <Filter>Header Files</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\src\\libsodium\\include\\sodium\\crypto_stream_salsa208.h\">\r\n      <Filter>Header Files</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\src\\libsodium\\include\\sodium\\crypto_aead_aes256gcm.h\">\r\n      <Filter>Header Files</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\src\\libsodium\\include\\sodium\\crypto_core_salsa2012.h\">\r\n      <Filter>Header Files</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\src\\libsodium\\include\\sodium\\crypto_secretbox_xchacha20poly1305.h\">\r\n      <Filter>Header Files</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\src\\libsodium\\include\\sodium\\crypto_kem.h\">\r\n      <Filter>Header Files</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\src\\libsodium\\include\\sodium\\crypto_core_keccak1600.h\">\r\n      <Filter>Header Files</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\src\\libsodium\\include\\sodium\\crypto_scalarmult.h\">\r\n      <Filter>Header Files</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\src\\libsodium\\include\\sodium\\crypto_pwhash.h\">\r\n      <Filter>Header Files</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\src\\libsodium\\include\\sodium\\crypto_verify_16.h\">\r\n      <Filter>Header Files</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\src\\libsodium\\include\\sodium\\crypto_stream_chacha20.h\">\r\n      <Filter>Header Files</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\src\\libsodium\\include\\sodium\\crypto_stream_xsalsa20.h\">\r\n      <Filter>Header Files</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\src\\libsodium\\include\\sodium\\crypto_core_hsalsa20.h\">\r\n      <Filter>Header Files</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\src\\libsodium\\include\\sodium\\crypto_kdf_blake2b.h\">\r\n      <Filter>Header Files</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\src\\libsodium\\include\\sodium\\crypto_scalarmult_curve25519.h\">\r\n      <Filter>Header Files</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\src\\libsodium\\include\\sodium\\crypto_xof_shake256.h\">\r\n      <Filter>Header Files</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\src\\libsodium\\include\\sodium\\crypto_shorthash.h\">\r\n      <Filter>Header Files</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\src\\libsodium\\include\\sodium\\crypto_kdf_hkdf_sha256.h\">\r\n      <Filter>Header Files</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\src\\libsodium\\include\\sodium\\crypto_pwhash_argon2id.h\">\r\n      <Filter>Header Files</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\src\\libsodium\\include\\sodium\\crypto_secretstream_xchacha20poly1305.h\">\r\n      <Filter>Header Files</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\src\\libsodium\\include\\sodium\\crypto_pwhash_scryptsalsa208sha256.h\">\r\n      <Filter>Header Files</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\src\\libsodium\\include\\sodium\\crypto_hash_sha3.h\">\r\n      <Filter>Header Files</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\src\\libsodium\\include\\sodium\\crypto_kem_xwing.h\">\r\n      <Filter>Header Files</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\src\\libsodium\\include\\sodium\\crypto_sign_ed25519.h\">\r\n      <Filter>Header Files</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\src\\libsodium\\include\\sodium\\crypto_onetimeauth.h\">\r\n      <Filter>Header Files</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\src\\libsodium\\include\\sodium\\crypto_verify_64.h\">\r\n      <Filter>Header Files</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\src\\libsodium\\include\\sodium\\crypto_box_curve25519xchacha20poly1305.h\">\r\n      <Filter>Header Files</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\src\\libsodium\\include\\sodium\\crypto_core_ed25519.h\">\r\n      <Filter>Header Files</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\src\\libsodium\\include\\sodium\\crypto_kdf_hkdf_sha512.h\">\r\n      <Filter>Header Files</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\src\\libsodium\\include\\sodium\\crypto_pwhash_argon2i.h\">\r\n      <Filter>Header Files</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\src\\libsodium\\include\\sodium\\randombytes_internal_random.h\">\r\n      <Filter>Header Files</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\src\\libsodium\\include\\sodium\\crypto_generichash.h\">\r\n      <Filter>Header Files</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\src\\libsodium\\include\\sodium\\crypto_secretbox_xsalsa20poly1305.h\">\r\n      <Filter>Header Files</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\src\\libsodium\\include\\sodium\\crypto_secretbox.h\">\r\n      <Filter>Header Files</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\src\\libsodium\\include\\sodium\\crypto_scalarmult_ed25519.h\">\r\n      <Filter>Header Files</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\src\\libsodium\\include\\sodium\\crypto_ipcrypt.h\">\r\n      <Filter>Header Files</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\src\\libsodium\\include\\sodium\\crypto_box_curve25519xsalsa20poly1305.h\">\r\n      <Filter>Header Files</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\src\\libsodium\\include\\sodium\\crypto_generichash_blake2b.h\">\r\n      <Filter>Header Files</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\src\\libsodium\\include\\sodium\\private\\ed25519_ref10.h\">\r\n      <Filter>Header Files</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\src\\libsodium\\include\\sodium\\private\\softaes.h\">\r\n      <Filter>Header Files</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\src\\libsodium\\include\\sodium\\private\\quirks.h\">\r\n      <Filter>Header Files</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\src\\libsodium\\include\\sodium\\private\\ed25519_ref10_fe_25_5.h\">\r\n      <Filter>Header Files</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\src\\libsodium\\include\\sodium\\private\\ed25519_ref10_fe_51.h\">\r\n      <Filter>Header Files</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\src\\libsodium\\include\\sodium\\private\\sse2_64_32.h\">\r\n      <Filter>Header Files</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\src\\libsodium\\include\\sodium\\private\\asm_cet.h\">\r\n      <Filter>Header Files</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\src\\libsodium\\include\\sodium\\private\\common.h\">\r\n      <Filter>Header Files</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\src\\libsodium\\include\\sodium\\private\\mutex.h\">\r\n      <Filter>Header Files</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\src\\libsodium\\include\\sodium\\private\\chacha20_ietf_ext.h\">\r\n      <Filter>Header Files</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\src\\libsodium\\include\\sodium\\private\\implementations.h\">\r\n      <Filter>Header Files</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\blamka-round-ref.h\">\r\n      <Filter>Header Files</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\blamka-round-avx2.h\">\r\n      <Filter>Header Files</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\blamka-round-neon.h\">\r\n      <Filter>Header Files</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\blamka-round-wasm32.h\">\r\n      <Filter>Header Files</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\argon2.h\">\r\n      <Filter>Header Files</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\blamka-round-ssse3.h\">\r\n      <Filter>Header Files</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\argon2-encoding.h\">\r\n      <Filter>Header Files</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\blake2b-long.h\">\r\n      <Filter>Header Files</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\blamka-round-avx512f.h\">\r\n      <Filter>Header Files</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\src\\libsodium\\crypto_pwhash\\argon2\\argon2-core.h\">\r\n      <Filter>Header Files</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\src\\libsodium\\crypto_pwhash\\scryptsalsa208sha256\\crypto_scrypt.h\">\r\n      <Filter>Header Files</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\src\\libsodium\\crypto_pwhash\\scryptsalsa208sha256\\pbkdf2-sha256.h\">\r\n      <Filter>Header Files</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\src\\libsodium\\crypto_xof\\shake128\\ref\\shake128_ref.h\">\r\n      <Filter>Header Files</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\src\\libsodium\\crypto_xof\\shake256\\ref\\shake256_ref.h\">\r\n      <Filter>Header Files</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\src\\libsodium\\crypto_xof\\turboshake256\\ref\\turboshake256_ref.h\">\r\n      <Filter>Header Files</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\src\\libsodium\\crypto_xof\\turboshake128\\ref\\turboshake128_ref.h\">\r\n      <Filter>Header Files</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\src\\libsodium\\crypto_shorthash\\siphash24\\ref\\shorthash_siphash_ref.h\">\r\n      <Filter>Header Files</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\src\\libsodium\\crypto_scalarmult\\curve25519\\scalarmult_curve25519.h\">\r\n      <Filter>Header Files</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\src\\libsodium\\crypto_scalarmult\\curve25519\\sandy2x\\consts_namespace.h\">\r\n      <Filter>Header Files</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\src\\libsodium\\crypto_scalarmult\\curve25519\\sandy2x\\ladder_namespace.h\">\r\n      <Filter>Header Files</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\src\\libsodium\\crypto_scalarmult\\curve25519\\sandy2x\\fe.h\">\r\n      <Filter>Header Files</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\src\\libsodium\\crypto_scalarmult\\curve25519\\sandy2x\\ladder.h\">\r\n      <Filter>Header Files</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\src\\libsodium\\crypto_scalarmult\\curve25519\\sandy2x\\fe51.h\">\r\n      <Filter>Header Files</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\src\\libsodium\\crypto_scalarmult\\curve25519\\sandy2x\\curve25519_sandy2x.h\">\r\n      <Filter>Header Files</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\src\\libsodium\\crypto_scalarmult\\curve25519\\sandy2x\\fe51_namespace.h\">\r\n      <Filter>Header Files</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\src\\libsodium\\crypto_scalarmult\\curve25519\\ref10\\x25519_ref10.h\">\r\n      <Filter>Header Files</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\src\\libsodium\\crypto_onetimeauth\\poly1305\\onetimeauth_poly1305.h\">\r\n      <Filter>Header Files</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\src\\libsodium\\crypto_onetimeauth\\poly1305\\donna\\poly1305_donna.h\">\r\n      <Filter>Header Files</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\src\\libsodium\\crypto_onetimeauth\\poly1305\\donna\\poly1305_donna64.h\">\r\n      <Filter>Header Files</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\src\\libsodium\\crypto_onetimeauth\\poly1305\\donna\\poly1305_donna32.h\">\r\n      <Filter>Header Files</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\src\\libsodium\\crypto_onetimeauth\\poly1305\\sse2\\poly1305_sse2.h\">\r\n      <Filter>Header Files</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\src\\libsodium\\crypto_ipcrypt\\ipcrypt_soft.h\">\r\n      <Filter>Header Files</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\src\\libsodium\\crypto_ipcrypt\\ipcrypt_aesni.h\">\r\n      <Filter>Header Files</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\src\\libsodium\\crypto_ipcrypt\\ipcrypt_armcrypto.h\">\r\n      <Filter>Header Files</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\src\\libsodium\\crypto_ipcrypt\\implementations.h\">\r\n      <Filter>Header Files</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\src\\libsodium\\crypto_stream\\chacha20\\stream_chacha20.h\">\r\n      <Filter>Header Files</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\src\\libsodium\\crypto_stream\\chacha20\\ref\\chacha20_ref.h\">\r\n      <Filter>Header Files</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\src\\libsodium\\crypto_stream\\chacha20\\dolbeau\\u4.h\">\r\n      <Filter>Header Files</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\src\\libsodium\\crypto_stream\\chacha20\\dolbeau\\chacha20_dolbeau-ssse3.h\">\r\n      <Filter>Header Files</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\src\\libsodium\\crypto_stream\\chacha20\\dolbeau\\u0.h\">\r\n      <Filter>Header Files</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\src\\libsodium\\crypto_stream\\chacha20\\dolbeau\\u1.h\">\r\n      <Filter>Header Files</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\src\\libsodium\\crypto_stream\\chacha20\\dolbeau\\chacha20_dolbeau-avx2.h\">\r\n      <Filter>Header Files</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\src\\libsodium\\crypto_stream\\chacha20\\dolbeau\\u8.h\">\r\n      <Filter>Header Files</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\src\\libsodium\\crypto_stream\\salsa20\\stream_salsa20.h\">\r\n      <Filter>Header Files</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\src\\libsodium\\crypto_stream\\salsa20\\ref\\salsa20_ref.h\">\r\n      <Filter>Header Files</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\src\\libsodium\\crypto_stream\\salsa20\\xmm6int\\u4.h\">\r\n      <Filter>Header Files</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\src\\libsodium\\crypto_stream\\salsa20\\xmm6int\\u0.h\">\r\n      <Filter>Header Files</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\src\\libsodium\\crypto_stream\\salsa20\\xmm6int\\u1.h\">\r\n      <Filter>Header Files</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\src\\libsodium\\crypto_stream\\salsa20\\xmm6int\\salsa20_xmm6int-avx2.h\">\r\n      <Filter>Header Files</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\src\\libsodium\\crypto_stream\\salsa20\\xmm6int\\u8.h\">\r\n      <Filter>Header Files</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\src\\libsodium\\crypto_stream\\salsa20\\xmm6int\\salsa20_xmm6int-sse2.h\">\r\n      <Filter>Header Files</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\src\\libsodium\\crypto_stream\\salsa20\\xmm6\\salsa20_xmm6-asm_namespace.h\">\r\n      <Filter>Header Files</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\src\\libsodium\\crypto_stream\\salsa20\\xmm6\\salsa20_xmm6.h\">\r\n      <Filter>Header Files</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\src\\libsodium\\crypto_aead\\aegis128l\\aegis128l_armcrypto.h\">\r\n      <Filter>Header Files</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\src\\libsodium\\crypto_aead\\aegis128l\\aegis128l_aesni.h\">\r\n      <Filter>Header Files</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\src\\libsodium\\crypto_aead\\aegis128l\\aegis128l_soft.h\">\r\n      <Filter>Header Files</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\src\\libsodium\\crypto_aead\\aegis128l\\aegis128l_common.h\">\r\n      <Filter>Header Files</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\src\\libsodium\\crypto_aead\\aegis128l\\implementations.h\">\r\n      <Filter>Header Files</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\src\\libsodium\\crypto_aead\\aegis256\\aegis256_aesni.h\">\r\n      <Filter>Header Files</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\src\\libsodium\\crypto_aead\\aegis256\\aegis256_common.h\">\r\n      <Filter>Header Files</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\src\\libsodium\\crypto_aead\\aegis256\\implementations.h\">\r\n      <Filter>Header Files</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\src\\libsodium\\crypto_aead\\aegis256\\aegis256_armcrypto.h\">\r\n      <Filter>Header Files</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\src\\libsodium\\crypto_aead\\aegis256\\aegis256_soft.h\">\r\n      <Filter>Header Files</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\src\\libsodium\\crypto_kem\\mlkem768\\ref\\kem_mlkem768_ref.h\">\r\n      <Filter>Header Files</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\src\\libsodium\\crypto_core\\keccak1600\\ref\\keccak1600_ref.h\">\r\n      <Filter>Header Files</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\src\\libsodium\\crypto_core\\keccak1600\\armsha3\\keccak1600_armsha3.h\">\r\n      <Filter>Header Files</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\src\\libsodium\\crypto_core\\ed25519\\core_h2c.h\">\r\n      <Filter>Header Files</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\src\\libsodium\\crypto_core\\ed25519\\ref10\\fe_25_5\\constants.h\">\r\n      <Filter>Header Files</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\src\\libsodium\\crypto_core\\ed25519\\ref10\\fe_25_5\\fe.h\">\r\n      <Filter>Header Files</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\src\\libsodium\\crypto_core\\ed25519\\ref10\\fe_25_5\\base2.h\">\r\n      <Filter>Header Files</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\src\\libsodium\\crypto_core\\ed25519\\ref10\\fe_25_5\\base.h\">\r\n      <Filter>Header Files</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\src\\libsodium\\crypto_core\\ed25519\\ref10\\fe_51\\constants.h\">\r\n      <Filter>Header Files</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\src\\libsodium\\crypto_core\\ed25519\\ref10\\fe_51\\fe.h\">\r\n      <Filter>Header Files</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\src\\libsodium\\crypto_core\\ed25519\\ref10\\fe_51\\base2.h\">\r\n      <Filter>Header Files</Filter>\r\n    </ClInclude>\r\n    <ClInclude Include=\"..\\..\\src\\libsodium\\crypto_core\\ed25519\\ref10\\fe_51\\base.h\">\r\n      <Filter>Header Files</Filter>\r\n    </ClInclude>\r\n  </ItemGroup>\r\n</Project>\r\n"
  },
  {
    "path": "ci/appveyor/msvc-scripts/process.bat",
    "content": "cscript msvc-scripts/rep.vbs //Nologo s/@VERSION@/1.0.23/ < ..\\..\\src\\libsodium\\include\\sodium\\version.h.in > tmp\ncscript msvc-scripts/rep.vbs //Nologo s/@SODIUM_LIBRARY_VERSION_MAJOR@/30/ < tmp > tmp2\ncscript msvc-scripts/rep.vbs //Nologo s/@SODIUM_LIBRARY_VERSION_MINOR@/0/ < tmp2 > tmp3\ncscript msvc-scripts/rep.vbs //Nologo s/@SODIUM_LIBRARY_MINIMAL_DEF@// < tmp3 > ..\\..\\src\\libsodium\\include\\sodium\\version.h\ndel tmp tmp2 tmp3\n"
  },
  {
    "path": "ci/appveyor/msvc-scripts/rep.vbs",
    "content": "Dim pat, patparts, rxp, inp\npat = WScript.Arguments(0)\npatparts = Split(pat, \"/\")\nSet rxp = new RegExp\nrxp.Global = True\nrxp.Multiline = False\nrxp.Pattern = patparts(1)\nDo While Not WScript.StdIn.AtEndOfStream\n  inp = WScript.StdIn.ReadLine()\n  WScript.Echo rxp.Replace(inp, patparts(2))\nLoop\n\n"
  },
  {
    "path": "ci/appveyor/msvc-scripts/sodium.props",
    "content": "﻿<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<Project ToolsVersion=\"4.0\"\n  xmlns=\"http://schemas.microsoft.com/developer/msbuild/2003\">\n  <ImportGroup Label=\"PropertySheets\" />\n  <PropertyGroup Label=\"UserMacros\" />\n  <PropertyGroup />\n  <ItemDefinitionGroup>\n    <ClCompile>\n      <AdditionalIncludeDirectories>$(SolutionDir);$(SolutionDir)..\\..\\src\\libsodium\\include\\sodium;$(SolutionDir)..\\..\\src\\libsodium\\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\n      <MultiProcessorCompilation>true</MultiProcessorCompilation>\n      <PreprocessorDefinitions>UNICODE;_UNICODE;%(PreprocessorDefinitions)</PreprocessorDefinitions>\n      <PreprocessorDefinitions>NATIVE_LITTLE_ENDIAN=1;%(PreprocessorDefinitions)</PreprocessorDefinitions>\n      <PreprocessorDefinitions>inline=__inline;%(PreprocessorDefinitions)</PreprocessorDefinitions>\n    </ClCompile>\n    <PreBuildEvent>\n      <Command>\"$(SolutionDir)\\msvc-scripts\\process.bat\"</Command>\n    </PreBuildEvent>\n    <PreBuildEvent>\n      <Message>Process .in files</Message>\n    </PreBuildEvent>\n    <PostBuildEvent>\n      <Command>\"$(SolutionDir)..\\..\\test\\default\\wintest.bat\" $(Configuration) $(Platform)</Command>\n    </PostBuildEvent>\n    <PostBuildEvent>\n      <Message>Run the test suite</Message>\n    </PostBuildEvent>\n  </ItemDefinitionGroup>\n  <ItemGroup />\n</Project>\n"
  },
  {
    "path": "configure.ac",
    "content": "AC_PREREQ([2.69])\nAC_INIT([libsodium],[1.0.23],[https://github.com/jedisct1/libsodium/issues],[libsodium],[https://libsodium.org])\nAC_CONFIG_AUX_DIR([build-aux])\nAC_CONFIG_MACRO_DIR([m4])\nAC_CONFIG_SRCDIR([src/libsodium/sodium/version.c])\nAC_CANONICAL_HOST\nAC_CANONICAL_TARGET\nAM_INIT_AUTOMAKE([1.11 dist-bzip2 tar-ustar foreign subdir-objects])\nm4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])])\nAM_MAINTAINER_MODE\nAM_DEP_TRACK\n\nAC_SUBST(VERSION)\n\nSODIUM_LIBRARY_VERSION_MAJOR=30\nSODIUM_LIBRARY_VERSION_MINOR=0\nDLL_VERSION=30\nSODIUM_LIBRARY_VERSION=30:0:0\n#                       | | |\n#                +------+ | +---+\n#                |        |     |\n#             current:revision:age\n#                |        |     |\n#                |        |     +- increment if interfaces have been added\n#                |        |        set to zero if interfaces have been removed\n#                |        |        or changed\n#                |        +- increment if source code has changed\n#                |           set to zero if current is incremented\n#                +- increment if interfaces have been added, removed or changed\nAC_SUBST(SODIUM_LIBRARY_VERSION_MAJOR)\nAC_SUBST(SODIUM_LIBRARY_VERSION_MINOR)\nAC_SUBST(SODIUM_LIBRARY_VERSION)\nAC_SUBST(DLL_VERSION)\n\nAC_LANG_ASSERT(C)\nLX_CFLAGS=${CFLAGS-NONE}\nPKGCONFIG_LIBS_PRIVATE=\"\"\n\ndnl Path check\n\nAS_IF([pwd | fgrep ' ' > /dev/null 2>&1],\n  [AC_MSG_ERROR([The build directory contains whitespaces - This can cause tests/installation to fail due to limitations of some libtool versions])]\n)\n\nsodium_CFLAGS=${CFLAGS+set}\n: ${CFLAGS=\"\"}\n\nAC_PROG_CC\nAM_PROG_AS\nAC_USE_SYSTEM_EXTENSIONS\n\ndnl Default optimization flags\n\nif test \"$sodium_CFLAGS\" != \"set\" ; then\n  AX_CHECK_COMPILE_FLAG([-O3], [CFLAGS=\"$CFLAGS -O3\"],\n    [AX_CHECK_COMPILE_FLAG([-O2], [CFLAGS=\"$CFLAGS -O2\"],\n      [AX_CHECK_COMPILE_FLAG([-O1], [CFLAGS=\"$CFLAGS -O1\"],\n        [AX_CHECK_COMPILE_FLAG([-O], [CFLAGS=\"$CFLAGS -O\"])])])])\nfi\n\ndnl Switches\n\nAC_ARG_ENABLE(ssp,\n[AS_HELP_STRING(--disable-ssp,Do not compile with -fstack-protector)],\n[\n  AS_IF([test \"x$enableval\" = \"xno\"], [\n    enable_ssp=\"no\"\n  ], [\n    enable_ssp=\"yes\"\n  ])\n],\n[\n  enable_ssp=\"yes\"\n])\n\nAC_ARG_ENABLE(asm,\n[AS_HELP_STRING(--disable-asm,[Do not compile assembly code -- As a side effect, this disables CPU-specific implementations on non-Windows platforms. Only for use with targets such as WebAssembly.])],\n[\n  AS_IF([test \"x$enableval\" = \"xno\"], [\n    enable_asm=\"no\"\n  ], [\n    enable_asm=\"yes\"\n  ])\n],\n[\n  enable_asm=\"yes\"\n])\n\nAS_IF([test \"x$EMSCRIPTEN\" != \"x\"], [\n  AX_CHECK_COMPILE_FLAG([-s ASSERTIONS=0], [\n    enable_asm=\"no\"\n    AC_MSG_WARN([compiling to JavaScript - asm implementations disabled])\n  ], [\n    AC_MSG_WARN([EMSCRIPTEN environment variable defined, but emcc doesn\\'t appear to be used - Assuming compilation to native code])\n    CFLAGS=\"$CFLAGS -U__EMSCRIPTEN__\"\n    unset EMSCRIPTEN\n  ])\n])\n\nAC_MSG_CHECKING([if we are using FilC])\nAC_COMPILE_IFELSE([AC_LANG_PROGRAM([[\n#ifndef __FILC__\n# error __FILC__ is not defined\n#endif\n]], [[]])],\n  [AC_MSG_RESULT(yes)\n   enable_asm=\"no\"\n   AC_MSG_WARN([compiling with FilC - asm implementations disabled])],\n  [AC_MSG_RESULT(no)])\n\nAC_ARG_ENABLE(pie,\n[AS_HELP_STRING(--disable-pie,Do not produce position independent executables)],\n enable_pie=$enableval, enable_pie=\"maybe\")\n\nAS_CASE([$host_os], [mingw*|cygwin*|msys|eabi*], [enable_pie=\"no\"])\n\nAC_ARG_ENABLE(blocking-random,\n[AS_HELP_STRING(--enable-blocking-random,Enable this switch only if /dev/urandom is totally broken on the target platform)],\n[\n  AS_IF([test \"x$enableval\" = \"xyes\"], [\n    AC_DEFINE([USE_BLOCKING_RANDOM], [1], [/dev/urandom is insecure on the target platform])\n  ])\n])\n\nAC_ARG_ENABLE(minimal,\n[AS_HELP_STRING(--enable-minimal,\n  [Only compile the minimum set of functions required for the high-level API])],\n[\n  AS_IF([test \"x$enableval\" = \"xyes\"], [\n    enable_minimal=\"yes\"\n    SODIUM_LIBRARY_MINIMAL_DEF=\"#define SODIUM_LIBRARY_MINIMAL 1\"\n    AC_DEFINE([MINIMAL], [1], [Define for a minimal build, without deprecated functions and functions that high-level APIs depend on])\n  ], [\n    enable_minimal=\"no\"\n  ])\n],\n[\n  enable_minimal=\"no\"\n])\nAM_CONDITIONAL([MINIMAL], [test x$enable_minimal = xyes])\nAC_SUBST(SODIUM_LIBRARY_MINIMAL_DEF)\n\nAC_ARG_WITH(pthreads, AS_HELP_STRING([--with-pthreads],\n [use pthreads library, or --without-pthreads to disable threading support]),\n [ ], [withval=\"yes\"])\n\nAS_IF([test \"x$withval\" = \"xyes\"], [\n  AX_PTHREAD([\n    AC_LINK_IFELSE([AC_LANG_PROGRAM([[\n        #include <pthread.h>\n      ]], [[\n        pthread_mutex_t mutex;\n\n        pthread_mutex_lock(&mutex);\n        pthread_mutex_unlock(&mutex)\n      ]]\n    )], [\n        AC_DEFINE([HAVE_PTHREAD], [1], [Define if you have POSIX threads libraries and header files])\n        with_threads=\"yes\"\n        LIBS=\"$PTHREAD_LIBS $LIBS\"\n        PKGCONFIG_LIBS_PRIVATE=\"$PTHREAD_LIBS $PTHREAD_CFLAGS $PKGCONFIG_LIBS_PRIVATE\"\n        CFLAGS=\"$CFLAGS $PTHREAD_CFLAGS\"\n        CC=\"$PTHREAD_CC\"\n      ])\n    ],\n    [ AC_MSG_NOTICE(pthread mutexes are not available) ]\n  )\n], [with_threads=\"no\"])\n\nAC_ARG_WITH(safecode,\n[AS_HELP_STRING(--with-safecode,For maintainers only - please do not use)],\n[AS_IF([test \"x$withval\" = \"xyes\"], [\n    AC_ARG_VAR([SAFECODE_HOME], [set to the safecode base directory])\n    : ${SAFECODE_HOME:=/opt/safecode}\n    LDFLAGS=\"$LDFLAGS -L${SAFECODE_HOME}/lib\"\n    LIBS=\"$LIBS -lsc_dbg_rt -lpoolalloc_bitmap -lstdc++\"\n    CFLAGS=\"$CFLAGS -fmemsafety\"\n  ])\n])\n\nAC_ARG_WITH(ctgrind,\n[AS_HELP_STRING(--with-ctgrind,For maintainers only - please do not use)],\n[AS_IF([test \"x$withval\" = \"xyes\"], [\n    AC_CHECK_LIB(ctgrind, ct_poison)\n  ])\n])\n\nAC_ARG_ENABLE(retpoline,\n[AS_HELP_STRING(--enable-retpoline,Use return trampolines for indirect calls)],\n[AS_IF([test \"x$enableval\" = \"xyes\"], [\n  AX_CHECK_COMPILE_FLAG([-mindirect-branch=thunk-inline],\n    [CFLAGS=\"$CFLAGS -mindirect-branch=thunk-inline\"],\n    [AX_CHECK_COMPILE_FLAG([-mretpoline], [CFLAGS=\"$CFLAGS -mretpoline\"])]\n  )\n  AX_CHECK_COMPILE_FLAG([-mindirect-branch-register])\n  ])\n])\n\nENABLE_CWFLAGS=no\nAC_ARG_ENABLE(debug,\n[AS_HELP_STRING(--enable-debug,For maintainers only - please do not use)],\n[\n  AS_IF([test \"x$enableval\" = \"xyes\"], [\n    AS_IF([test \"x$LX_CFLAGS\" = \"xNONE\"], [\n      nxflags=\"\"\n      for flag in `echo $CFLAGS`; do\n        AS_CASE([$flag],\n          [-O*], [ ],\n          [-g*], [ ],\n          [*], [AS_VAR_APPEND([nxflags], [\" $flag\"])])\n      done\n      CFLAGS=\"$nxflags -O -g3\"\n    ])\n    ENABLE_CWFLAGS=yes\n    CPPFLAGS=\"$CPPFLAGS -DDEBUG=1 -U_FORTIFY_SOURCE\"\n  ])\n])\n\nAC_ARG_ENABLE(opt,\n[AS_HELP_STRING(--enable-opt,Optimize for the native CPU - The resulting library will be faster but not portable)],\n[\n  AS_IF([test \"x$enableval\" = \"xyes\"], [\n    AX_CHECK_COMPILE_FLAG([-ftree-vectorize], [CFLAGS=\"$CFLAGS -ftree-vectorize\"])\n    AX_CHECK_COMPILE_FLAG([-ftree-slp-vectorize], [CFLAGS=\"$CFLAGS -ftree-slp-vectorize\"])\n    AX_CHECK_COMPILE_FLAG([-fomit-frame-pointer], [CFLAGS=\"$CFLAGS -fomit-frame-pointer\"])\n    AX_CHECK_COMPILE_FLAG([-march=native], [CFLAGS=\"$CFLAGS -march=native\"])\n    AX_CHECK_COMPILE_FLAG([-mtune=native], [CFLAGS=\"$CFLAGS -mtune=native\"])\n  ])\n])\n\nAC_SUBST(MAINT)\nAC_SUBST(PKGCONFIG_LIBS_PRIVATE)\n\nAX_VALGRIND_CHECK\n\ndnl Checks\n\nAC_C_VARARRAYS\n\nAC_CHECK_DEFINE([__wasi__], [WASI=\"yes\"], [])\n\nAS_CASE([$host_os], [linux-gnu], [AX_ADD_FORTIFY_SOURCE], [ ])\n\nAX_CHECK_COMPILE_FLAG([-fvisibility=hidden],\n  [CFLAGS=\"$CFLAGS -fvisibility=hidden\"])\n\nAS_CASE([$host_os], [cygwin*|mingw*|msys|pw32*|cegcc*|eabi*], [ ], [\n  AX_CHECK_COMPILE_FLAG([-fPIC], [CFLAGS=\"$CFLAGS -fPIC\"])\n])\n\nAS_IF([test \"$enable_pie\" != \"no\"],[\n  AX_CHECK_COMPILE_FLAG([-fPIE], [\n    AX_CHECK_LINK_FLAG([-pie], [\n      [CFLAGS=\"$CFLAGS -fPIE\"\n       LDFLAGS=\"$LDFLAGS -pie\"]\n    ])\n  ])\n])\n\nAX_CHECK_COMPILE_FLAG([-fno-strict-aliasing], [CFLAGS=\"$CFLAGS -fno-strict-aliasing\"])\nAX_CHECK_COMPILE_FLAG([-fno-strict-overflow], [CFLAGS=\"$CFLAGS -fno-strict-overflow\"], [\n  AX_CHECK_COMPILE_FLAG([-fwrapv], [CFLAGS=\"$CFLAGS -fwrapv\"])\n])\n\nAS_IF([test \"$GCC\" = \"yes\" ], [\n  AS_CASE([$host_cpu],\n    [i?86|amd64|x86_64], [\n      AC_COMPILE_IFELSE(\n        [AC_LANG_SOURCE([\n#if !defined(__clang__) && defined(__GNUC__) && ((__GNUC__ << 8) | __GNUC_MINOR__) < 0x403\n# error old gcc\n#endif\nint main(void) { return 0; }\n         ])],,[\n          AX_CHECK_COMPILE_FLAG([-flax-vector-conversions], [CFLAGS=\"$CFLAGS -flax-vector-conversions\"])\n        ])\n      ]\n    )\n  ])\n\nLIBTOOL_OLD_FLAGS=\"$LIBTOOL_EXTRA_FLAGS\"\nLIBTOOL_EXTRA_FLAGS=\"$LIBTOOL_EXTRA_FLAGS -version-info $SODIUM_LIBRARY_VERSION\"\nAC_ARG_ENABLE(soname-versions,\n  [AS_HELP_STRING([--enable-soname-versions], [enable soname versions (must be disabled for Android) (default: enabled)])],\n    [\n        AS_IF([test \"x$enableval\" = \"xno\"], [\n          LIBTOOL_EXTRA_FLAGS=\"$LIBTOOL_OLD_FLAGS -avoid-version\"\n        ])\n    ]\n)\n\nAS_CASE([$host_os],\n  [cygwin*|mingw*|msys|pw32*|cegcc*], [\n    AX_CHECK_LINK_FLAG([-Wl,--dynamicbase], [LDFLAGS=\"$LDFLAGS -Wl,--dynamicbase\"])\n    AX_CHECK_LINK_FLAG([-Wl,--high-entropy-va], [LDFLAGS=\"$LDFLAGS -Wl,--high-entropy-va\"])\n    AX_CHECK_LINK_FLAG([-Wl,--nxcompat], [LDFLAGS=\"$LDFLAGS -Wl,--nxcompat\"])\n  ])\n\nAS_CASE([$host_os],\n  [cygwin*|mingw*|msys|pw32*|cegcc*|eabi*], [\n    AX_CHECK_COMPILE_FLAG([-fno-asynchronous-unwind-tables], [\n      [CFLAGS=\"$CFLAGS -fno-asynchronous-unwind-tables\"]\n    ])\n])\n\nAS_IF([test \"x$enable_ssp\" != \"xno\"],[\n\nAS_CASE([$host_os],\n  [solaris*|cygwin*|mingw*|msys|pw32*|cegcc*|haiku|none|eabi*], [ ],\n  [*], [\n    AX_CHECK_COMPILE_FLAG([-fstack-protector], [\n      AX_CHECK_LINK_FLAG([-fstack-protector],\n        [CFLAGS=\"$CFLAGS -fstack-protector\"]\n      )\n    ])\n  ])\n])\n\nAX_CHECK_COMPILE_FLAG([$CFLAGS -Wall], [CWFLAGS=\"$CFLAGS -Wall\"])\nAX_CHECK_COMPILE_FLAG([$CFLAGS -Wno-deprecated-declarations], [CFLAGS=\"$CFLAGS -Wno-deprecated-declarations\"])\nAX_CHECK_COMPILE_FLAG([$CFLAGS -Wno-unknown-pragmas], [CFLAGS=\"$CFLAGS -Wno-unknown-pragmas\"])\n\nAC_ARG_VAR([CWFLAGS], [compilation flags for generating extra warnings])\n\nAC_MSG_CHECKING(for clang)\nAC_COMPILE_IFELSE([AC_LANG_PROGRAM([[]], [[\n#ifndef __clang__\n#error Not clang\n#endif\n]])],\n  [AC_MSG_RESULT(yes)\n   AX_CHECK_COMPILE_FLAG([$CWFLAGS -Wno-unknown-warning-option],\n     [CWFLAGS=\"$CWFLAGS -Wno-unknown-warning-option\"])\n  ],\n  [AC_MSG_RESULT(no)\n])\n\nAX_CHECK_COMPILE_FLAG([$CWFLAGS -Wextra], [CWFLAGS=\"$CWFLAGS -Wextra\"])\nAX_CHECK_COMPILE_FLAG([$CWFLAGS -Warray-bounds], [CWFLAGS=\"$CWFLAGS -Warray-bounds\"])\nAX_CHECK_COMPILE_FLAG([$CWFLAGS -Wbad-function-cast], [CWFLAGS=\"$CWFLAGS -Wbad-function-cast\"])\nAX_CHECK_COMPILE_FLAG([$CWFLAGS -Wcast-qual], [CWFLAGS=\"$CWFLAGS -Wcast-qual\"])\nAX_CHECK_COMPILE_FLAG([$CWFLAGS -Wdiv-by-zero], [CWFLAGS=\"$CWFLAGS -Wdiv-by-zero\"])\nAX_CHECK_COMPILE_FLAG([$CWFLAGS -Wduplicated-branches], [CWFLAGS=\"$CWFLAGS -Wduplicated-branches\"])\nAX_CHECK_COMPILE_FLAG([$CWFLAGS -Wduplicated-cond], [CWFLAGS=\"$CWFLAGS -Wduplicated-cond\"])\nAX_CHECK_COMPILE_FLAG([$CWFLAGS -Wfloat-equal], [CWFLAGS=\"$CWFLAGS -Wfloat-equal\"])\nAX_CHECK_COMPILE_FLAG([$CWFLAGS -Wformat=2], [CWFLAGS=\"$CWFLAGS -Wformat=2\"])\nAX_CHECK_COMPILE_FLAG([$CWFLAGS -Wlogical-op], [CWFLAGS=\"$CWFLAGS -Wlogical-op\"])\nAX_CHECK_COMPILE_FLAG([$CWFLAGS -Wmaybe-uninitialized], [CWFLAGS=\"$CWFLAGS -Wmaybe-uninitialized\"])\nAX_CHECK_COMPILE_FLAG([$CWFLAGS -Wmisleading-indentation], [CWFLAGS=\"$CWFLAGS -Wmisleading-indentation\"])\nAX_CHECK_COMPILE_FLAG([$CWFLAGS -Wmissing-declarations], [CWFLAGS=\"$CWFLAGS -Wmissing-declarations\"])\nAX_CHECK_COMPILE_FLAG([$CWFLAGS -Wmissing-prototypes], [CWFLAGS=\"$CWFLAGS -Wmissing-prototypes\"])\nAX_CHECK_COMPILE_FLAG([$CWFLAGS -Wnested-externs], [CWFLAGS=\"$CWFLAGS -Wnested-externs\"])\nAX_CHECK_COMPILE_FLAG([$CWFLAGS -Wno-type-limits], [CWFLAGS=\"$CWFLAGS -Wno-type-limits\"])\nAX_CHECK_COMPILE_FLAG([$CWFLAGS -Wno-unknown-pragmas], [CWFLAGS=\"$CWFLAGS -Wno-unknown-pragmas\"])\nAX_CHECK_COMPILE_FLAG([$CWFLAGS -Wnormalized=id], [CWFLAGS=\"$CWFLAGS -Wnormalized=id\"])\nAX_CHECK_COMPILE_FLAG([$CWFLAGS -Wnull-dereference], [CWFLAGS=\"$CWFLAGS -Wnull-dereference\"])\nAX_CHECK_COMPILE_FLAG([$CWFLAGS -Wold-style-declaration], [CWFLAGS=\"$CWFLAGS -Wold-style-declaration\"])\nAX_CHECK_COMPILE_FLAG([$CWFLAGS -Wpointer-arith], [CWFLAGS=\"$CWFLAGS -Wpointer-arith\"])\nAX_CHECK_COMPILE_FLAG([$CWFLAGS -Wredundant-decls], [CWFLAGS=\"$CWFLAGS -Wredundant-decls\"])\nAX_CHECK_COMPILE_FLAG([$CWFLAGS -Wrestrict], [CWFLAGS=\"$CWFLAGS -Wrestrict\"])\nAX_CHECK_COMPILE_FLAG([$CWFLAGS -Wshorten-64-to-32], [CWFLAGS=\"$CWFLAGS -Wshorten-64-to-32\"])\nAX_CHECK_COMPILE_FLAG([$CWFLAGS -Wsometimes-uninitialized], [CWFLAGS=\"$CWFLAGS -Wsometimes-uninitialized\"])\nAX_CHECK_COMPILE_FLAG([$CWFLAGS -Wstrict-prototypes], [CWFLAGS=\"$CWFLAGS -Wstrict-prototypes\"])\nAX_CHECK_COMPILE_FLAG([$CWFLAGS -Wswitch-enum], [CWFLAGS=\"$CWFLAGS -Wswitch-enum\"])\nAX_CHECK_COMPILE_FLAG([$CWFLAGS -Wvariable-decl], [CWFLAGS=\"$CWFLAGS -Wvariable-decl\"])\nAX_CHECK_COMPILE_FLAG([$CWFLAGS -Wvla], [CWFLAGS=\"$CWFLAGS -Wvla\"])\nAX_CHECK_COMPILE_FLAG([$CWFLAGS -Wwrite-strings], [CWFLAGS=\"$CWFLAGS -Wwrite-strings\"])\n\nAS_IF([test \"x$EMSCRIPTEN\" = \"x\"], [\n  AX_CHECK_LINK_FLAG([-Wl,-z,relro], [LDFLAGS=\"$LDFLAGS -Wl,-z,relro\"])\n  AX_CHECK_LINK_FLAG([-Wl,-z,now], [LDFLAGS=\"$LDFLAGS -Wl,-z,now\"])\n  AX_CHECK_LINK_FLAG([-Wl,-z,noexecstack], [LDFLAGS=\"$LDFLAGS -Wl,-z,noexecstack\"])\n])\n\nAX_CHECK_CATCHABLE_SEGV\nAX_CHECK_CATCHABLE_ABRT\n\nAS_IF([test \"x$with_threads\" = \"xyes\"], [\n  AX_TLS([AC_MSG_RESULT(thread local storage is supported)\n          AX_CHECK_COMPILE_FLAG([-ftls-model=local-dynamic],\n            [CFLAGS=\"$CFLAGS -ftls-model=local-dynamic\"])],\n         [AC_MSG_RESULT(thread local storage is not supported)]) ])\n\nLT_INIT\n\ndnl CompCert compiler support\nAC_MSG_CHECKING([if we are using CompCert])\nAC_COMPILE_IFELSE([AC_LANG_PROGRAM([[\n#ifndef __COMPCERT__\n# error __COMPCERT__ is not defined\n#endif\n]], [[]])],\n  [AC_MSG_RESULT(yes)\n   lt_prog_compiler_wl='-Wl,'\n   enable_asm=\"no\"\n   CFLAGS=\"$CFLAGS -fstruct-passing\"\n   AC_MSG_WARN([compiling with CompCert - asm implementations disabled])],\n  [AC_MSG_RESULT(no)])\n\nAC_SUBST(LIBTOOL_DEPS)\n\nAC_ARG_VAR([AR], [path to the ar utility])\nAC_CHECK_TOOL([AR], [ar], [ar])\n\ndnl Checks for headers and codegen feature flags\n\ntarget_cpu_aarch64=no\nAC_MSG_CHECKING(for ARM64 target)\nAC_LINK_IFELSE(\n  [AC_LANG_PROGRAM([\n#ifndef __aarch64__\n#error Not aarch64\n#endif\n#include <arm_neon.h>\n   ], [(void) 0])],\n   [AC_MSG_RESULT(yes)\n    target_cpu_aarch64=yes],\n   [AC_MSG_RESULT(no)\n    target_cpu_aarch64=no])\n\nAS_IF([test \"x$EMSCRIPTEN\" = \"x\"], [\n\n  AS_IF([test \"x$target_cpu_aarch64\" = \"xyes\"], [\n    have_armcrypto=no\n    AC_MSG_CHECKING(for ARM crypto instructions set)\n    AC_LINK_IFELSE([AC_LANG_PROGRAM([[\n      #ifndef __ARM_FEATURE_CRYPTO\n      #  define __ARM_FEATURE_CRYPTO 1\n      #endif\n      #ifndef __ARM_FEATURE_AES\n      #  define __ARM_FEATURE_AES 1\n      #endif\n\n      #include <arm_neon.h>\n\n      #ifdef __clang__\n      #  pragma clang attribute push(__attribute__((target(\"neon,crypto,aes\"))), apply_to = function)\n      #elif defined(__GNUC__)\n      #  pragma GCC target(\"+simd+crypto\")\n      #endif\n    ]], [[\n      int64x2_t x = { 0, 0 };\n      vaeseq_u8(vmovq_n_u8(0), vmovq_n_u8(0));\n      vmull_high_p64(vreinterpretq_p64_s64(x), vreinterpretq_p64_s64(x));\n\n      #ifdef __clang__\n      #  pragma clang attribute pop\n      #endif\n      (void) 0\n      ]])],\n      [\n        AC_MSG_RESULT(yes)\n        have_armcrypto=yes\n      ],\n      [\n        AC_MSG_RESULT(no)\n        oldcflags=\"$CFLAGS\"\n        AX_CHECK_COMPILE_FLAG([-march=armv8-a+crypto+aes], [\n          CFLAGS=\"$CFLAGS -march=armv8-a+crypto+aes\"\n          AC_MSG_CHECKING(for ARM crypto instructions set with -march=armv8-a+crypto+aes)\n          AC_LINK_IFELSE([AC_LANG_PROGRAM([[\n            #ifdef __clang__\n            #  pragma clang attribute push(__attribute__((target(\"neon,crypto,aes\"))), apply_to = function)\n            #elif defined(__GNUC__)\n            #  pragma GCC target(\"+simd+crypto\")\n            #endif\n            #ifndef __ARM_FEATURE_CRYPTO\n            #  define __ARM_FEATURE_CRYPTO 1\n            #endif\n            #ifndef __ARM_FEATURE_AES\n            #  define __ARM_FEATURE_AES 1\n            #endif\n\n            #include <arm_neon.h>\n          ]], [[\n            int64x2_t x = { 0, 0 };\n            vaeseq_u8(vmovq_n_u8(0), vmovq_n_u8(0));\n            vmull_high_p64(vreinterpretq_p64_s64(x), vreinterpretq_p64_s64(x));\n\n            #ifdef __clang__\n            #  pragma clang attribute pop\n            #endif\n            (void) 0\n          ]])],\n            [\n              AC_MSG_RESULT(yes - with addition of -march=armv8-a+crypto+aes)\n              have_armcrypto=yes\n              CFLAGS_ARMCRYPTO=\"-march=armv8-a+crypto+aes\"\n            ],\n            [AC_MSG_RESULT(no)])\n          CFLAGS=\"$oldcflags\"\n        ])\n      ])\n      AS_IF([test \"$have_armcrypto\" = \"yes\"],[AC_DEFINE([HAVE_ARMCRYPTO], [1], [ARM crypto extensions are available])])\n  ])\n\n  oldcflags=\"$CFLAGS\"\n  AX_CHECK_COMPILE_FLAG([-mmmx], [CFLAGS=\"$CFLAGS -mmmx\"])\n  AC_MSG_CHECKING(for MMX instructions set)\n  AC_LINK_IFELSE([AC_LANG_PROGRAM([[\n#pragma GCC target(\"mmx\")\n#include <mmintrin.h>\n]], [[ __m64 x = _mm_setzero_si64(); ]])],\n    [AC_MSG_RESULT(yes)\n     AC_DEFINE([HAVE_MMINTRIN_H], [1], [mmx is available])\n     AX_CHECK_COMPILE_FLAG([-mmmx], [CFLAGS_MMX=\"-mmmx\"])],\n    [AC_MSG_RESULT(no)])\n  CFLAGS=\"$oldcflags\"\n\n  oldcflags=\"$CFLAGS\"\n  AX_CHECK_COMPILE_FLAG([-msse2], [CFLAGS=\"$CFLAGS -msse2\"])\n  AC_MSG_CHECKING(for SSE2 instructions set)\n  AC_LINK_IFELSE([AC_LANG_PROGRAM([[\n#pragma GCC target(\"sse2\")\n#ifndef __SSE2__\n# define __SSE2__\n#endif\n#include <emmintrin.h>\n]], [[ __m128d x = _mm_setzero_pd();\n       __m128i z = _mm_srli_epi64(_mm_setzero_si128(), 26); ]])],\n    [AC_MSG_RESULT(yes)\n     AC_DEFINE([HAVE_EMMINTRIN_H], [1], [sse2 is available])\n     AX_CHECK_COMPILE_FLAG([-msse2], [CFLAGS_SSE2=\"-msse2\"])],\n    [AC_MSG_RESULT(no)])\n  CFLAGS=\"$oldcflags\"\n\n  oldcflags=\"$CFLAGS\"\n  AX_CHECK_COMPILE_FLAG([-msse3], [CFLAGS=\"$CFLAGS -msse3\"])\n  AC_MSG_CHECKING(for SSE3 instructions set)\n  AC_LINK_IFELSE([AC_LANG_PROGRAM([[\n#pragma GCC target(\"sse3\")\n#include <pmmintrin.h>\n]], [[ __m128 x = _mm_addsub_ps(_mm_cvtpd_ps(_mm_setzero_pd()),\n                                _mm_cvtpd_ps(_mm_setzero_pd())); ]])],\n    [AC_MSG_RESULT(yes)\n     AC_DEFINE([HAVE_PMMINTRIN_H], [1], [sse3 is available])\n     AX_CHECK_COMPILE_FLAG([-msse3], [CFLAGS_SSE3=\"-msse3\"])],\n    [AC_MSG_RESULT(no)])\n  CFLAGS=\"$oldcflags\"\n\n  oldcflags=\"$CFLAGS\"\n  AX_CHECK_COMPILE_FLAG([-mssse3], [CFLAGS=\"$CFLAGS -mssse3\"])\n  AC_MSG_CHECKING(for SSSE3 instructions set)\n  AC_LINK_IFELSE([AC_LANG_PROGRAM([[\n#pragma GCC target(\"ssse3\")\n#include <tmmintrin.h>\n]], [[ __m64 x = _mm_abs_pi32(_m_from_int(0)); ]])],\n    [AC_MSG_RESULT(yes)\n     AC_DEFINE([HAVE_TMMINTRIN_H], [1], [ssse3 is available])\n     AX_CHECK_COMPILE_FLAG([-mssse3], [CFLAGS_SSSE3=\"-mssse3\"])],\n    [AC_MSG_RESULT(no)])\n  CFLAGS=\"$oldcflags\"\n\n  oldcflags=\"$CFLAGS\"\n  AX_CHECK_COMPILE_FLAG([-msse4.1], [CFLAGS=\"$CFLAGS -msse4.1\"])\n  AC_MSG_CHECKING(for SSE4.1 instructions set)\n  AC_LINK_IFELSE([AC_LANG_PROGRAM([[\n#pragma GCC target(\"sse4.1\")\n#include <smmintrin.h>\n]], [[ __m128i x = _mm_minpos_epu16(_mm_setzero_si128()); ]])],\n    [AC_MSG_RESULT(yes)\n     AC_DEFINE([HAVE_SMMINTRIN_H], [1], [sse4.1 is available])\n     AX_CHECK_COMPILE_FLAG([-msse4.1], [CFLAGS_SSE41=\"-msse4.1\"])],\n    [AC_MSG_RESULT(no)])\n  CFLAGS=\"$oldcflags\"\n\n  oldcflags=\"$CFLAGS\"\n  AX_CHECK_COMPILE_FLAG([-mavx], [CFLAGS=\"$CFLAGS -mavx\"])\n  AC_MSG_CHECKING(for AVX instructions set)\n  AC_LINK_IFELSE([AC_LANG_PROGRAM([[\n#pragma GCC target(\"avx\")\n#include <immintrin.h>\n]], [[ _mm256_zeroall(); ]])],\n    [AC_MSG_RESULT(yes)\n     AC_DEFINE([HAVE_AVXINTRIN_H], [1], [AVX is available])\n     AX_CHECK_COMPILE_FLAG([-mavx], [CFLAGS_AVX=\"-mavx\"])],\n    [AC_MSG_RESULT(no)])\n  CFLAGS=\"$oldcflags\"\n\n  oldcflags=\"$CFLAGS\"\n  AX_CHECK_COMPILE_FLAG([-mavx2], [CFLAGS=\"$CFLAGS -mavx2\"])\n  AC_MSG_CHECKING(for AVX2 instructions set)\n  AC_LINK_IFELSE([AC_LANG_PROGRAM([[\n#pragma GCC target(\"avx2\")\n#include <immintrin.h>\n]], [[\n__m256 x = _mm256_set1_ps(3.14);\n__m256 y = _mm256_permutevar8x32_ps(x, _mm256_set1_epi32(42));\nreturn _mm256_movemask_ps(_mm256_cmp_ps(x, y, _CMP_NEQ_OQ));\n]])],\n    [AC_MSG_RESULT(yes)\n     AC_DEFINE([HAVE_AVX2INTRIN_H], [1], [AVX2 is available])\n     AX_CHECK_COMPILE_FLAG([-mavx2], [CFLAGS_AVX2=\"-mavx2\"])\n     AC_MSG_CHECKING(if _mm256_broadcastsi128_si256 is correctly defined)\n     AC_LINK_IFELSE([AC_LANG_PROGRAM([[\n#pragma GCC target(\"avx2\")\n#include <immintrin.h>\n     ]], [[ __m256i y = _mm256_broadcastsi128_si256(_mm_setzero_si128()); ]])],\n       [AC_MSG_RESULT(yes)],\n       [AC_MSG_RESULT(no)\n        AC_DEFINE([_mm256_broadcastsi128_si256], [_mm_broadcastsi128_si256],\n                  [Define to the local name of _mm256_broadcastsi128_si256])])\n     ],\n    [AC_MSG_RESULT(no)])\n  CFLAGS=\"$oldcflags\"\n\n  oldcflags=\"$CFLAGS\"\n  AX_CHECK_COMPILE_FLAG([-mavx512f], [CFLAGS=\"$CFLAGS -mavx512f\"])\n  AC_MSG_CHECKING(for AVX512F instructions set)\n  AC_LINK_IFELSE([AC_LANG_PROGRAM([[\n#pragma GCC target(\"avx512f\")\n#include <immintrin.h>\n]], [[\n\n#ifndef __AVX512F__\n# error No AVX512 support\n#elif defined(__clang__)\n# if __clang_major__ < 4\n#  error Compiler AVX512 support may be broken\n# endif\n#elif defined(__GNUC__)\n# if __GNUC__ < 6\n#  error Compiler AVX512 support may be broken\n# endif\n#endif\n\n__m512i x = _mm512_setzero_epi32();\n__m512i y = _mm512_permutexvar_epi64(_mm512_setr_epi64(0, 1, 4, 5, 2, 3, 6, 7), x);\n]])],\n    [AC_MSG_RESULT(yes)\n     AC_DEFINE([HAVE_AVX512FINTRIN_H], [1], [AVX512F is available])\n     AX_CHECK_COMPILE_FLAG([-mavx512f], [CFLAGS_AVX512F=\"-mavx512f\"])],\n    [AC_MSG_RESULT(no)\n     AX_CHECK_COMPILE_FLAG([$CFLAGS -mno-avx512f],\n       [CFLAGS=\"$CFLAGS -mno-avx512f\"])\n    ])\n  CFLAGS=\"$oldcflags\"\n\n  oldcflags=\"$CFLAGS\"\n  AX_CHECK_COMPILE_FLAG([-maes], [CFLAGS=\"$CFLAGS -maes\"])\n  AX_CHECK_COMPILE_FLAG([-mpclmul], [CFLAGS=\"$CFLAGS -mpclmul\"])\n  AC_MSG_CHECKING(for AESNI instructions set and PCLMULQDQ)\n  AC_LINK_IFELSE([AC_LANG_PROGRAM([[\n#pragma GCC target(\"aes\")\n#pragma GCC target(\"pclmul\")\n#include <wmmintrin.h>\n]], [[ __m128i x = _mm_aesimc_si128(_mm_setzero_si128());\n       __m128i y = _mm_clmulepi64_si128(_mm_setzero_si128(), _mm_setzero_si128(), 0);]])],\n    [AC_MSG_RESULT(yes)\n     AC_DEFINE([HAVE_WMMINTRIN_H], [1], [aesni is available])\n     AX_CHECK_COMPILE_FLAG([-maes], [CFLAGS_AESNI=\"-maes\"])\n     AX_CHECK_COMPILE_FLAG([-mpclmul], [CFLAGS_PCLMUL=\"-mpclmul\"])\n     ],\n    [AC_MSG_RESULT(no)])\n  CFLAGS=\"$oldcflags\"\n\n  oldcflags=\"$CFLAGS\"\n  AX_CHECK_COMPILE_FLAG([-mrdrnd], [CFLAGS=\"$CFLAGS -mrdrnd\"])\n  AC_MSG_CHECKING(for RDRAND)\n  AC_LINK_IFELSE([AC_LANG_PROGRAM([[\n#pragma GCC target(\"rdrnd\")\n#include <immintrin.h>\n]], [[ unsigned long long x; _rdrand64_step(&x); ]])],\n    [AC_MSG_RESULT(yes)\n     AC_DEFINE([HAVE_RDRAND], [1], [rdrand is available])\n     AX_CHECK_COMPILE_FLAG([-mrdrnd], [CFLAGS_RDRAND=\"-mrdrnd\"])\n     ],\n    [AC_MSG_RESULT(no)])\n  CFLAGS=\"$oldcflags\"\n\n])\n\nAC_SUBST(CFLAGS_ARMCRYPTO)\nAC_SUBST(CFLAGS_MMX)\nAC_SUBST(CFLAGS_SSE2)\nAC_SUBST(CFLAGS_SSE3)\nAC_SUBST(CFLAGS_SSSE3)\nAC_SUBST(CFLAGS_SSE41)\nAC_SUBST(CFLAGS_AVX)\nAC_SUBST(CFLAGS_AVX2)\nAC_SUBST(CFLAGS_AVX512F)\nAC_SUBST(CFLAGS_AESNI)\nAC_SUBST(CFLAGS_PCLMUL)\nAC_SUBST(CFLAGS_RDRAND)\n\nAC_CHECK_HEADERS([sys/mman.h sys/param.h sys/random.h intrin.h sys/auxv.h])\nAC_CHECK_HEADERS([CommonCrypto/CommonRandom.h])\nAC_CHECK_HEADERS([cet.h threads.h])\n\nAC_MSG_CHECKING([if _xgetbv() is available])\nAC_LINK_IFELSE(\n  [AC_LANG_PROGRAM([[ #include <intrin.h> ]], [[ (void) _xgetbv(0) ]])],\n  [AC_MSG_RESULT(yes)\n   AC_DEFINE([HAVE__XGETBV], [1], [_xgetbv() is available])],\n  [AC_MSG_RESULT(no)])\n\ndnl Checks for typedefs, structures, and compiler characteristics.\n\nAC_C_INLINE\nAS_CASE([$host_cpu],\n  [i?86|amd64|x86_64],\n    [ac_cv_c_bigendian=no]\n)\nAC_C_BIGENDIAN(\n  AC_DEFINE(NATIVE_BIG_ENDIAN, 1, [machine is bigendian]),\n  AC_DEFINE(NATIVE_LITTLE_ENDIAN, 1, [machine is littleendian]),\n  AC_MSG_ERROR([unknown endianness]),\n  AC_MSG_ERROR([universal endianness is not supported - compile separately and use lipo(1)])\n)\n\nAC_MSG_CHECKING(whether __STDC_LIMIT_MACROS is required)\nAC_LINK_IFELSE([AC_LANG_PROGRAM([[\n#include <limits.h>\n#include <stdint.h>\n]], [[\n(void) SIZE_MAX;\n(void) UINT64_MAX;\n]])],\n  [AC_MSG_RESULT(no)],\n  [AC_MSG_RESULT(yes)\n   CPPFLAGS=\"$CPPFLAGS -D__STDC_LIMIT_MACROS -D__STDC_CONSTANT_MACROS\"\n])\n\nAC_MSG_CHECKING(whether we can use inline asm code)\nAC_LINK_IFELSE([AC_LANG_PROGRAM([[\n#ifdef __FILC__\n# error inline assembly is not supported with FilC\n#endif\n]], [[\nint a = 42;\nint *pnt = &a;\n__asm__ __volatile__ (\"\" : : \"r\"(pnt) : \"memory\");\n]])],\n  [AC_MSG_RESULT(yes)\n   AC_DEFINE([HAVE_INLINE_ASM], [1], [inline asm code can be used])]\n  [AC_MSG_RESULT(no)]\n)\n\nHAVE_AMD64_ASM_V=0\nAS_IF([test \"$enable_asm\" != \"no\"],[\n  AC_MSG_CHECKING(whether we can use x86_64 asm code)\n  AC_LINK_IFELSE([AC_LANG_PROGRAM([[\n  ]], [[\n#if defined(__amd64) || defined(__amd64__) || defined(__x86_64__)\n# if defined(__CYGWIN__) || defined(__MINGW32__) || defined(__MINGW64__) || defined(_WIN32) || defined(_WIN64) || defined(__midipix__)\n#  error Windows x86_64 calling conventions are not supported yet\n# endif\n/* neat */\n#else\n# error !x86_64\n#endif\nunsigned char i = 0, o = 0, t;\n__asm__ __volatile__ (\"pxor %%xmm12, %%xmm6 \\n\"\n                      \"movb (%[i]), %[t] \\n\"\n                      \"addb %[t], (%[o]) \\n\"\n                      : [t] \"=&r\"(t)\n                      : [o] \"D\"(&o), [i] \"S\"(&i)\n                      : \"memory\", \"flags\", \"cc\");\n]])],\n  [AC_MSG_RESULT(yes)\n   AC_DEFINE([HAVE_AMD64_ASM], [1], [x86_64 asm code can be used])\n   HAVE_AMD64_ASM_V=1],\n  [AC_MSG_RESULT(no)])\n])\nAM_CONDITIONAL([HAVE_AMD64_ASM], [test $HAVE_AMD64_ASM_V = 1])\nAC_SUBST(HAVE_AMD64_ASM_V)\n\nHAVE_AVX_ASM_V=0\nAS_IF([test \"$enable_asm\" != \"no\"],[\n  AC_MSG_CHECKING(whether we can assemble AVX opcodes)\n  AC_LINK_IFELSE([AC_LANG_PROGRAM([[\n  ]], [[\n#if defined(__amd64) || defined(__amd64__) || defined(__x86_64__)\n# if defined(__CYGWIN__) || defined(__MINGW32__) || defined(__MINGW64__) || defined(_WIN32) || defined(_WIN64)\n#  error Windows x86_64 calling conventions are not supported yet\n# endif\n/* neat */\n#else\n# error !x86_64\n#endif\n__asm__ __volatile__ (\"vpunpcklqdq %xmm0,%xmm13,%xmm0\");\n]])],\n  [AC_MSG_RESULT(yes)\n   AC_DEFINE([HAVE_AVX_ASM], [1], [AVX opcodes are supported])\n   HAVE_AVX_ASM_V=1],\n  [AC_MSG_RESULT(no)])\n])\nAM_CONDITIONAL([HAVE_AVX_ASM], [test $HAVE_AVX_ASM_V = 1])\nAC_SUBST(HAVE_AVX_ASM_V)\n\nAC_MSG_CHECKING(for 128-bit arithmetic)\nHAVE_TI_MODE_V=0\nAC_COMPILE_IFELSE([AC_LANG_PROGRAM([[\n#if !defined(__clang__) && !defined(__GNUC__) && !defined(__SIZEOF_INT128__)\n# error mode(TI) is a gcc extension, and __int128 is not available\n#endif\n#if defined(__clang__) && !defined(__x86_64__) && !defined(__aarch64__)\n# error clang does not properly handle the 128-bit type on 32-bit systems\n#endif\n#ifndef NATIVE_LITTLE_ENDIAN\n# error libsodium currently expects a little endian CPU for the 128-bit type\n#endif\n#ifdef __EMSCRIPTEN__\n# error emscripten currently doesn't support some operations on integers larger than 64 bits\n#endif\n#include <stddef.h>\n#include <stdint.h>\n#if defined(__SIZEOF_INT128__)\ntypedef unsigned __int128 uint128_t;\n#else\ntypedef unsigned uint128_t __attribute__((mode(TI)));\n#endif\nvoid fcontract(uint128_t *t) {\n  *t += 0x8000000000000 - 1;\n  *t *= *t;\n  *t >>= 84;\n}\n]], [[\n(void) fcontract;\n]])],\n[AC_MSG_RESULT(yes)\n AC_DEFINE([HAVE_TI_MODE], [1], [gcc TI mode is available])\n HAVE_TI_MODE_V=1],\n[AC_MSG_RESULT(no)])\nAM_CONDITIONAL([HAVE_TI_MODE], [test $HAVE_TI_MODE_V = 1])\nAC_SUBST(HAVE_TI_MODE_V)\n\nHAVE_CPUID_V=0\nAS_IF([test \"$enable_asm\" != \"no\"],[\n  AC_MSG_CHECKING(for cpuid instruction)\n  AC_LINK_IFELSE([AC_LANG_PROGRAM([[ ]], [[\nunsigned int cpu_info[4];\n__asm__ __volatile__ (\"xchgl %%ebx, %k1; cpuid; xchgl %%ebx, %k1\" :\n                      \"=a\" (cpu_info[0]), \"=&r\" (cpu_info[1]),\n                      \"=c\" (cpu_info[2]), \"=d\" (cpu_info[3]) :\n                      \"0\" (0U), \"2\" (0U));\n  ]])],\n  [AC_MSG_RESULT(yes)\n   AC_DEFINE([HAVE_CPUID], [1], [cpuid instruction is available])\n   HAVE_CPUID_V=1],\n  [AC_MSG_RESULT(no)])\n  ])\nAC_SUBST(HAVE_CPUID_V)\n\nasm_hide_symbol=\"unsupported\"\nAS_IF([test \"$enable_asm\" != \"no\"],[\n  AC_MSG_CHECKING(if the .private_extern asm directive is supported)\n  AC_LINK_IFELSE([AC_LANG_PROGRAM([[ ]], [[\n__asm__ __volatile__ (\".private_extern dummy_symbol \\n\"\n                      \".private_extern _dummy_symbol \\n\"\n                      \".globl dummy_symbol \\n\"\n                      \".globl _dummy_symbol \\n\"\n                      \"dummy_symbol: \\n\"\n                      \"_dummy_symbol: \\n\"\n                      \"    nop \\n\"\n);\n  ]])],\n  [AC_MSG_RESULT(yes)\n   asm_hide_symbol=\".private_extern\"],\n  [AC_MSG_RESULT(no)])\n\n  AC_MSG_CHECKING(if the .hidden asm directive is supported)\n  AC_LINK_IFELSE([AC_LANG_PROGRAM([[ ]], [[\n__asm__ __volatile__ (\".hidden dummy_symbol \\n\"\n                      \".hidden _dummy_symbol \\n\"\n                      \".globl dummy_symbol \\n\"\n                      \".globl _dummy_symbol \\n\"\n                      \"dummy_symbol: \\n\"\n                      \"_dummy_symbol: \\n\"\n                      \"    nop \\n\"\n);\n  ]])],\n  [AC_MSG_RESULT(yes)\n   AS_IF([test \"$asm_hide_symbol\" = \"unsupported\"],\n          [asm_hide_symbol=\".hidden\"],\n          [AC_MSG_NOTICE([unable to reliably tag symbols as private])\n           asm_hide_symbol=\"unsupported\"])\n  ],\n  [AC_MSG_RESULT(no)])\n\n  AS_IF([test \"$asm_hide_symbol\" != \"unsupported\"],[\n    AC_DEFINE_UNQUOTED([ASM_HIDE_SYMBOL], [$asm_hide_symbol], [directive to hide symbols])\n  ])\n])\n\nAC_MSG_CHECKING(if weak symbols are supported)\nAC_LINK_IFELSE([AC_LANG_PROGRAM([[\n#if !defined(__ELF__) && !defined(__APPLE_CC__)\n# error Support for weak symbols may not be available\n#endif\n__attribute__((weak)) void __dummy(void *x) { }\nvoid f(void *x) { __dummy(x); }\n]], [[ ]]\n)],\n[AC_MSG_RESULT(yes)\n AC_DEFINE([HAVE_WEAK_SYMBOLS], [1], [weak symbols are supported])],\n[AC_MSG_RESULT(no)])\n\nAC_MSG_CHECKING(if atomic operations are supported)\nAC_LINK_IFELSE([AC_LANG_PROGRAM([[ ]], [[\nstatic volatile int _sodium_lock;\n__sync_lock_test_and_set(&_sodium_lock, 1);\n__sync_lock_release(&_sodium_lock);\n]]\n)],\n[AC_MSG_RESULT(yes)\n AC_DEFINE([HAVE_ATOMIC_OPS], [1], [atomic operations are supported])],\n[AC_MSG_RESULT(no)])\n\nAC_MSG_CHECKING(if C11 memory fences are supported)\nAC_LINK_IFELSE([AC_LANG_PROGRAM([[\n#include <stdatomic.h>\n ]], [[\natomic_thread_fence(memory_order_acquire);\n]]\n)],\n[AC_MSG_RESULT(yes)\n AC_DEFINE([HAVE_C11_MEMORY_FENCES], [1], [C11 memory fences are supported])],\n[AC_MSG_RESULT(no)])\n\nAC_MSG_CHECKING(if gcc memory fences are supported)\nAC_LINK_IFELSE([AC_LANG_PROGRAM([[ ]], [[\n__atomic_thread_fence(__ATOMIC_ACQUIRE);\n]]\n)],\n[AC_MSG_RESULT(yes)\n AC_DEFINE([HAVE_GCC_MEMORY_FENCES], [1], [GCC memory fences are supported])],\n[AC_MSG_RESULT(no)])\n\ndnl Checks for functions and headers\n\nAC_FUNC_ALLOCA\nAS_IF([test \"x$EMSCRIPTEN\" = \"x\"],[\n  AC_CHECK_FUNCS([arc4random arc4random_buf])\n  AS_IF([test \"x$WASI\" = \"x\"],[\n    AC_CHECK_FUNCS([mmap mlock madvise mprotect])\n    AC_CHECK_FUNCS([raise])\n    AC_CHECK_FUNCS([sysconf])\n  ])\n  AC_MSG_CHECKING(for getrandom with a standard API)\n  AC_LINK_IFELSE([AC_LANG_PROGRAM([[\n#include <stdlib.h>\n#ifdef HAVE_UNISTD_H\n# include <unistd.h>\n#endif\n#ifdef HAVE_SYS_RANDOM_H\n# include <sys/random.h>\n#endif\n]], [[\nunsigned char buf;\nif (&getrandom != NULL) {\n  (void) getrandom((void *) &buf, 1U, 0U);\n}\n  ]])],\n  [AC_MSG_RESULT(yes)\n   AC_CHECK_FUNCS([getrandom])],\n  [AC_MSG_RESULT(no)\n  ])\n\n  AC_MSG_CHECKING(for getentropy with a standard API)\n  AC_LINK_IFELSE([AC_LANG_PROGRAM([[\n#include <stdlib.h>\n#ifdef HAVE_UNISTD_H\n# include <unistd.h>\n#endif\n#ifdef HAVE_SYS_RANDOM_H\n# include <sys/random.h>\n#endif\n]], [[\nunsigned char buf;\nif (&getentropy != NULL) {\n  (void) getentropy((void *) &buf, 1U);\n}\n  ]])],\n  [AC_MSG_RESULT(yes)\n   AC_CHECK_FUNCS([getentropy])],\n  [AC_MSG_RESULT(no)\n  ])\n])\n\nAS_IF([test \"x$WASI\" = \"x\"],[\n  AC_CHECK_FUNCS([getpid])\n  AC_CHECK_FUNCS([getauxval elf_aux_info])\n])\n\nAC_CHECK_FUNCS([posix_memalign nanosleep clock_gettime])\n\nAS_IF([test \"x$WASI\" = \"x\"],[\n  AC_CHECK_FUNCS([memset_s explicit_bzero memset_explicit explicit_memset])\n])\n\nAC_SUBST([LIBTOOL_EXTRA_FLAGS])\n\nTEST_LDFLAGS=''\nAS_IF([test \"x$EMSCRIPTEN\" != \"x\"],[\n  EXEEXT=.js\n  TEST_LDFLAGS='--pre-js pre.js.inc -sALLOW_TABLE_GROWTH'\n])\nAC_SUBST(TEST_LDFLAGS)\nAM_CONDITIONAL([EMSCRIPTEN], [test \"x$EMSCRIPTEN\" != \"x\"])\nAM_CONDITIONAL([WASI], [test \"x$WASI\" != \"x\"])\n\nAC_DEFINE([CONFIGURED], [1], [the build system was properly configured])\n\ndnl Libtool.\n\nLT_INIT([dlopen win32-dll])\ngl_LD_OUTPUT_DEF\n\ndnl Output.\n\nAH_VERBATIM([NDEBUG], [/* Always evaluate assert() calls */\n#ifdef NDEBUG\n#/**/undef/**/ NDEBUG\n#endif])\n\nAS_IF([test \"x$ENABLE_CWFLAGS\" = \"xyes\"], [\n  CFLAGS=\"$CFLAGS $CWFLAGS\"\n])\n\nAC_CONFIG_FILES([Makefile\n                 builds/Makefile\n                 dist-build/Makefile\n                 libsodium.pc\n                 libsodium-uninstalled.pc\n                 src/Makefile\n                 src/libsodium/Makefile\n                 src/libsodium/include/Makefile\n                 src/libsodium/include/sodium/version.h\n                 test/default/Makefile\n                 test/Makefile\n                 ])\nAC_OUTPUT\n"
  },
  {
    "path": "dist-build/Makefile.am",
    "content": "\nEXTRA_DIST = \\\n\tandroid-build.sh \\\n\tandroid-aar.sh \\\n\tandroid-armv7-a.sh \\\n\tandroid-armv8-a.sh \\\n\tandroid-x86.sh \\\n\tandroid-x86_64.sh \\\n\temscripten.sh \\\n\tapple-xcframework.sh \\\n\tmacos.sh \\\n\tmsys2-win32.sh \\\n\tmsys2-win64.sh \\\n\twasm32-wasi.sh\n"
  },
  {
    "path": "dist-build/android-aar.sh",
    "content": "#! /bin/sh\n\n# Create an AAR with libsodium in all combinations of static | shared | minimal | full.\n#\n# To simplify linking, library variants have distinct names: sodium, sodium-static, sodium-minimal and sodium-minimal-static.\n\nSODIUM_VERSION=\"1.0.23.0\"\n\nif [ -z \"$ANDROID_NDK_HOME\" ]; then\n  echo \"ANDROID_NDK_HOME must be set to the directory containing the Android NDK.\"\n  exit 1\nfi\n\nif [ ! -f \"${ANDROID_NDK_HOME}/ndk-build\" ]; then\n  echo \"The ANDROID_NDK_HOME directory does not contain an 'ndk-build' file.\"\n  exit 1\nfi\n\nif [ ! -d \"${ANDROID_NDK_HOME}/toolchains\" ]; then\n  echo \"The ANDROID_NDK_HOME directory does not contain a 'toolchains' directory.\"\n  exit 1\nfi\n\nif [ ! -f \"${ANDROID_NDK_HOME}/source.properties\" ]; then\n  echo \"The ANDROID_NDK_HOME directory does not contain a 'source.properties' file.\"\n  exit 1\nfi\n\nNDK_VERSION=$(grep \"Pkg.Revision = \" <\"${ANDROID_NDK_HOME}/source.properties\" | cut -f 2 -d '=' | cut -f 2 -d' ' | cut -f 1 -d'.')\nDEST_PATH=$(mktemp -d)\n\nif [ -z \"$NDK_PLATFORM\" ]; then\n  export NDK_PLATFORM=\"android-21\"\n  echo \"Compiling for default platform: [${NDK_PLATFORM}]\"\n  echo \"That can be changed by setting an NDK_PLATFORM environment variable.\"\nfi\n\nSDK_VERSION=$(echo \"$NDK_PLATFORM\" | cut -f2 -d\"-\")\nif [ -z \"$NDK_VERSION\" ]; then\n  echo \"Failed to determine the NDK version.\"\n  exit 1\nfi\nif [ -z \"$SDK_VERSION\" ]; then\n  echo \"Failed to determine the SDK version.\"\n  exit 1\nfi\necho \"NDK version: [$NDK_VERSION]\"\necho \"SDK version: [$SDK_VERSION]\"\n\necho\n\nif which zip >/dev/null; then\n  echo \"The 'zip' command is installed.\"\nelse\n  echo \"The 'zip' command is not installed. Please install it before running this script.\"\n  exit 1\nfi\n\ncd \"$(dirname \"$0\")/../\" || exit\n\ntrap 'kill -TERM -$$' INT\n\nmake_abi_json() {\n  echo \"{\\\"abi\\\":\\\"${NDK_ARCH}\\\",\\\"api\\\":${SDK_VERSION},\\\"ndk\\\":${NDK_VERSION},\\\"stl\\\":\\\"none\\\"}\" >\"$1/abi.json\"\n}\n\nmake_prefab_json() {\n  echo \"{\\\"name\\\":\\\"sodium\\\",\\\"schema_version\\\":1,\\\"dependencies\\\":[],\\\"version\\\":\\\"$SODIUM_VERSION\\\"}\" >\"$1/prefab.json\"\n}\n\nmake_manifest() {\n  echo \"<manifest xmlns:android=\\\"http://schemas.android.com/apk/res/android\\\" package=\\\"com.android.ndk.thirdparty.sodium\\\" android:versionCode=\\\"1\\\" android:versionName=\\\"1.0\\\">\n        <uses-sdk android:minSdkVersion=\\\"$SDK_VERSION\\\" android:targetSdkVersion=\\\"$SDK_VERSION\\\"/>\n</manifest>\" >\"${1}/AndroidManifest.xml\"\n}\n\nmake_prefab_structure() {\n  for variant_dirs in \"prefab\" \"prefab/modules\" \"META-INF\"; do\n    mkdir \"${DEST_PATH}/${variant_dirs}\"\n  done\n\n  make_prefab_json \"${DEST_PATH}/prefab\"\n  make_manifest \"${DEST_PATH}\"\n  cp \"LICENSE\" \"${DEST_PATH}/META-INF\"\n\n  for variant in \\\n    \"prefab/modules/sodium\" \"prefab/modules/sodium-static\" \\\n    \"prefab/modules/sodium-minimal\" \"prefab/modules/sodium-minimal-static\"; do\n    mkdir \"${DEST_PATH}/${variant}\"\n\n    if [ \"$variant\" = \"prefab/modules/sodium-minimal\" ]; then\n      echo \"{\\\"library_name\\\":\\\"libsodium\\\"}\" >\"${DEST_PATH}/${variant}/module.json\"\n    else\n      echo \"{}\" >\"${DEST_PATH}/${variant}/module.json\"\n    fi\n\n    mkdir \"${DEST_PATH}/${variant}/libs\"\n\n    for arch in \"arm64-v8a\" \"armeabi-v7a\" \"x86\" \"x86_64\"; do\n      mkdir \"$DEST_PATH/${variant}/libs/android.${arch}\"\n      mkdir \"$DEST_PATH/${variant}/libs/android.${arch}/include\"\n      NDK_ARCH=\"$arch\"\n\n      make_abi_json \"$DEST_PATH/${variant}/libs/android.${arch}\"\n    done\n  done\n}\n\ncopy_libs() {\n  SRC_DIR=\"libsodium-android-${1}\"\n\n  SHARED_DEST_DIR=\"${DEST_PATH}/prefab/modules/sodium${3}/libs/android.${2}\"\n  STATIC_DEST_DIR=\"${DEST_PATH}/prefab/modules/sodium${3}-static/libs/android.${2}\"\n\n  cp -r \"${SRC_DIR}/include\" \"$SHARED_DEST_DIR\"\n  cp -r \"${SRC_DIR}/include\" \"$STATIC_DEST_DIR\"\n  cp \"${SRC_DIR}/lib/libsodium.so\" \"${SHARED_DEST_DIR}/libsodium.so\"\n  cp \"${SRC_DIR}/lib/libsodium.a\" \"${STATIC_DEST_DIR}/libsodium${3}-static.a\"\n\n  rm -r \"$SRC_DIR\"\n}\n\nbuild_all() {\n  dist-build/android-armv7-a.sh\n  dist-build/android-armv8-a.sh\n  dist-build/android-x86_64.sh\n  dist-build/android-x86.sh\n}\n\nmake_prefab_structure\n\nbuild_all\n\ncopy_libs \"armv7-a\" \"armeabi-v7a\" \"-minimal\"\ncopy_libs \"armv8-a+crypto\" \"arm64-v8a\" \"-minimal\"\ncopy_libs \"i686\" \"x86\" \"-minimal\"\ncopy_libs \"westmere\" \"x86_64\" \"-minimal\"\n\nLIBSODIUM_FULL_BUILD=\"Y\"\nexport LIBSODIUM_FULL_BUILD\n\nbuild_all\n\ncopy_libs \"armv7-a\" \"armeabi-v7a\"\ncopy_libs \"armv8-a+crypto\" \"arm64-v8a\"\ncopy_libs \"i686\" \"x86\"\ncopy_libs \"westmere\" \"x86_64\"\n\nAAR_PATH=\"$(pwd)/libsodium-${SODIUM_VERSION}.aar\"\ncd \"$DEST_PATH\" || exit\nrm \"$AAR_PATH\"\nzip -9 -r \"$AAR_PATH\" META-INF prefab AndroidManifest.xml\ncd .. || exit\nrm -r \"$DEST_PATH\"\n\necho \"\n\nCongrats you have built an AAR containing libsodium!\nThe build used a min Android SDK of version $SDK_VERSION\nYou can build for a different SDK version by specifying NDK_PLATFORM=\\\"android-{SDK_VERSION}\\\"\nas an environment variable before running this script but the defaults should be fine.\n\nTo use the aar with\ngradle or cmake (as set by default for Android Studio projects):\n\n- Edit the app/build.gradle file to add:\n\n    android {\n        buildFeatures {\n            prefab true\n        }\n    }\n\n  and\n\n    dependencies {\n        implementation fileTree(dir:'path/to/aar/',include:['libsodium-$SODIUM_VERSION.aar'])\n    }\n\n  Optionally, store multiple AAR files in the same folder and include '*.aar'\n\n- Edit your module's CMakeLists.txt file to add:\n\n    find_package(sodium REQUIRED CONFIG)\n\n- Then, specify 'sodium::x' as an item in the relevant 'target_link_libraries' statement.\n    The first part is the AAR name and should be 'sodium'.\n    The second part ('x', to be replaced) should be set to:\n      - 'sodium' for the full shared library,\n      - 'sodium-static' for the full static library\n      - 'sodium-minimal' for the minimal shared library, or\n      - 'sodium-minimal-static' for the minimal static library.\n\n  \"\n"
  },
  {
    "path": "dist-build/android-armv7-a.sh",
    "content": "#!/bin/sh\nexport TARGET_ARCH=armv7-a\nexport CFLAGS=\"-Os -mfloat-abi=softfp -mfpu=vfpv3-d16 -mthumb -marm -march=${TARGET_ARCH}\"\nexport LDFLAGS=\"-Wl,-z,max-page-size=16384\"\nARCH=arm HOST_COMPILER=armv7a-linux-androideabi \"$(dirname \"$0\")/android-build.sh\"\n"
  },
  {
    "path": "dist-build/android-armv8-a.sh",
    "content": "#!/bin/sh\nexport TARGET_ARCH=armv8-a+crypto\nexport CFLAGS=\"-Os -march=${TARGET_ARCH}\"\nexport LDFLAGS=\"-Wl,-z,max-page-size=16384\"\nARCH=arm64 HOST_COMPILER=aarch64-linux-android \"$(dirname \"$0\")/android-build.sh\"\n"
  },
  {
    "path": "dist-build/android-build.sh",
    "content": "#! /bin/sh\n\nif [ -z \"$NDK_PLATFORM\" ]; then\n  echo \"No NDK_PLATFORM specified, set to value such as \\\"android-{Min_SDK_VERSION}\\\" or just use android-aar.sh\"\n  exit\nfi\nSDK_VERSION=$(echo \"$NDK_PLATFORM\" | cut -f2 -d\"-\")\nexport NDK_PLATFORM_COMPAT=\"${NDK_PLATFORM_COMPAT:-${NDK_PLATFORM}}\"\nexport NDK_API_VERSION=\"$(echo \"$NDK_PLATFORM\" | sed 's/^android-//')\"\nexport NDK_API_VERSION_COMPAT=\"$(echo \"$NDK_PLATFORM_COMPAT\" | sed 's/^android-//')\"\n\nif [ -z \"$ANDROID_NDK_HOME\" ]; then\n  echo \"ANDROID_NDK_HOME must be set to the directory containing the Android NDK.\"\n  exit 1\nfi\n\nif [ ! -f ./configure ]; then\n  echo \"Can't find ./configure. Wrong directory or haven't run autogen.sh?\" >&2\n  exit 1\nfi\n\nif [ -z \"$TARGET_ARCH\" ] || [ -z \"$ARCH\" ] || [ -z \"$HOST_COMPILER\" ]; then\n  echo \"You shouldn't use android-build.sh directly, use android-[arch].sh instead\" >&2\n  exit 1\nfi\n\nexport PREFIX=\"$(pwd)/libsodium-android-${TARGET_ARCH}\"\nexport TOOLCHAIN_OS_DIR=\"$(uname | tr '[:upper:]' '[:lower:]')-x86_64/\"\nexport TOOLCHAIN_DIR=\"$ANDROID_NDK_HOME/toolchains/llvm/prebuilt/${TOOLCHAIN_OS_DIR}\"\n\nexport PATH=\"${PATH}:${TOOLCHAIN_DIR}/bin\"\n\nexport CC=${CC:-\"${HOST_COMPILER}${SDK_VERSION}-clang\"}\n\necho\necho \"Warnings related to headers being present but not usable are due to functions\"\necho \"that didn't exist in the specified minimum API version level.\"\necho \"They can be safely ignored.\"\necho\n\necho\nif [ \"$NDK_PLATFORM\" != \"$NDK_PLATFORM_COMPAT\" ]; then\n  echo \"Building for platform [${NDK_PLATFORM}], retaining compatibility with platform [${NDK_PLATFORM_COMPAT}]\"\nelse\n  echo \"Building for platform [${NDK_PLATFORM}]\"\nfi\necho\n\nif [ -z \"$LIBSODIUM_FULL_BUILD\" ]; then\n  export LIBSODIUM_ENABLE_MINIMAL_FLAG=\"--enable-minimal\"\nelse\n  export LIBSODIUM_ENABLE_MINIMAL_FLAG=\"\"\nfi\n\n./configure \\\n  --disable-soname-versions \\\n  --disable-pie \\\n  ${LIBSODIUM_ENABLE_MINIMAL_FLAG} \\\n  --host=\"${HOST_COMPILER}\" \\\n  --prefix=\"${PREFIX}\" \\\n  --with-sysroot=\"${TOOLCHAIN_DIR}/sysroot\" || exit 1\n\nif [ -z \"$NDK_PLATFORM\" ]; then\n  echo \"Aborting\"\n  exit 1\nfi\nif [ \"$NDK_PLATFORM\" != \"$NDK_PLATFORM_COMPAT\" ]; then\n  grep -E '^#define ' config.log | sort -u >config-def-compat.log\n  echo\n  echo \"Configuring again for platform [${NDK_PLATFORM}]\"\n  echo\n\n  ./configure \\\n    --disable-soname-versions \\\n    --disable-pie \\\n    ${LIBSODIUM_ENABLE_MINIMAL_FLAG} \\\n    --host=\"${HOST_COMPILER}\" \\\n    --prefix=\"${PREFIX}\" \\\n    --with-sysroot=\"${TOOLCHAIN_DIR}/sysroot\" || exit 1\n\n  grep -E '^#define ' config.log | sort -u >config-def.log\n  if ! cmp config-def.log config-def-compat.log; then\n    echo \"Platform [${NDK_PLATFORM}] is not backwards-compatible with [${NDK_PLATFORM_COMPAT}]\" >&2\n    diff -u config-def.log config-def-compat.log >&2\n    exit 1\n  fi\n  rm -f config-def.log config-def-compat.log\nfi\n\nNPROCESSORS=$(getconf NPROCESSORS_ONLN 2>/dev/null || getconf _NPROCESSORS_ONLN 2>/dev/null)\nPROCESSORS=${NPROCESSORS:-3}\n\nmake clean &&\n  make -j\"${PROCESSORS}\" install &&\n  echo \"libsodium has been installed into ${PREFIX}\"\n"
  },
  {
    "path": "dist-build/android-x86.sh",
    "content": "#!/bin/sh\nexport TARGET_ARCH=i686\nexport CFLAGS=\"-Os -march=${TARGET_ARCH}\"\nexport LDFLAGS=\"-Wl,-z,max-page-size=16384\"\nARCH=x86 HOST_COMPILER=i686-linux-android \"$(dirname \"$0\")/android-build.sh\"\n"
  },
  {
    "path": "dist-build/android-x86_64.sh",
    "content": "#!/bin/sh\nexport TARGET_ARCH=westmere\nexport CFLAGS=\"-Os -march=${TARGET_ARCH}\"\nexport LDFLAGS=\"-Wl,-z,max-page-size=16384\"\nARCH=x86_64 HOST_COMPILER=x86_64-linux-android \"$(dirname \"$0\")/android-build.sh\"\n"
  },
  {
    "path": "dist-build/apple-xcframework.sh",
    "content": "#! /bin/sh\n\nexport PREFIX=\"$(pwd)/libsodium-apple\"\nexport MACOS_ARM64_PREFIX=\"${PREFIX}/tmp/macos-arm64\"\nexport MACOS_ARM64E_PREFIX=\"${PREFIX}/tmp/macos-arm64e\"\nexport MACOS_X86_64_PREFIX=\"${PREFIX}/tmp/macos-x86_64\"\nexport IOS64_PREFIX=\"${PREFIX}/tmp/ios64\"\nexport IOS64E_PREFIX=\"${PREFIX}/tmp/ios64e\"\nexport IOS_SIMULATOR_ARM64_PREFIX=\"${PREFIX}/tmp/ios-simulator-arm64\"\nexport IOS_SIMULATOR_ARM64E_PREFIX=\"${PREFIX}/tmp/ios-simulator-arm64e\"\nexport IOS_SIMULATOR_X86_64_PREFIX=\"${PREFIX}/tmp/ios-simulator-x86_64\"\nexport WATCHOS32_PREFIX=\"${PREFIX}/tmp/watchos32\"\nexport WATCHOS64_32_PREFIX=\"${PREFIX}/tmp/watchos64_32\"\nexport WATCHOS64_PREFIX=\"${PREFIX}/tmp/watchos64\"\nexport WATCHOS64E_PREFIX=\"${PREFIX}/tmp/watchos64e\"\nexport WATCHOS_SIMULATOR_ARM64_PREFIX=\"${PREFIX}/tmp/watchos-simulator-arm64\"\nexport WATCHOS_SIMULATOR_ARM64E_PREFIX=\"${PREFIX}/tmp/watchos-simulator-arm64e\"\nexport WATCHOS_SIMULATOR_I386_PREFIX=\"${PREFIX}/tmp/watchos-simulator-i386\"\nexport WATCHOS_SIMULATOR_X86_64_PREFIX=\"${PREFIX}/tmp/watchos-simulator-x86_64\"\nexport TVOS_PREFIX=\"${PREFIX}/tmp/tvos\"\nexport TVOSE_PREFIX=\"${PREFIX}/tmp/tvose\"\nexport TVOS_SIMULATOR_ARM64_PREFIX=\"${PREFIX}/tmp/tvos-simulator-arm64\"\nexport TVOS_SIMULATOR_ARM64E_PREFIX=\"${PREFIX}/tmp/tvos-simulator-arm644\"\nexport TVOS_SIMULATOR_X86_64_PREFIX=\"${PREFIX}/tmp/tvos-simulator-x86_64\"\nexport VISIONOS_PREFIX=\"${PREFIX}/tmp/visionos\"\nexport VISIONOSE_PREFIX=\"${PREFIX}/tmp/visionose\"\nexport VISIONOS_SIMULATOR_PREFIX=\"${PREFIX}/tmp/visionos-simulator\"\nexport VISIONOSE_SIMULATOR_PREFIX=\"${PREFIX}/tmp/visionose-simulator\"\nexport CATALYST_ARM64_PREFIX=\"${PREFIX}/tmp/catalyst-arm64\"\nexport CATALYST_ARM64E_PREFIX=\"${PREFIX}/tmp/catalyst-arm64e\"\nexport CATALYST_X86_64_PREFIX=\"${PREFIX}/tmp/catalyst-x86_64\"\nexport LOG_FILE=\"${PREFIX}/tmp/build_log\"\nexport XCODEDIR=\"$(xcode-select -p)\"\n\nexport MACOS_VERSION_MIN=${MACOS_VERSION_MIN-\"10.10\"}\nexport IOS_VERSION_MIN=${IOS_VERSION_MIN-\"9.0.0\"}\nexport IOS_SIMULATOR_VERSION_MIN=${IOS_SIMULATOR_VERSION_MIN-$IOS_VERSION_MIN}\nexport WATCHOS_VERSION_MIN=${WATCHOS_VERSION_MIN-\"4.0.0\"}\nexport WATCHOS_SIMULATOR_VERSION_MIN=${WATCHOS_SIMULATOR_VERSION_MIN-$WATCHOS_VERSION_MIN}\nexport TVOS_VERSION_MIN=${TVOS_VERSION_MIN-\"9.0.0\"}\nexport TVOS_SIMULATOR_VERSION_MIN=${TVOS_SIMULATOR_VERSION_MIN-$TVOS_VERSION_MIN}\n\necho\necho \"Warnings related to headers being present but not usable are due to functions\"\necho \"that didn't exist in the specified minimum iOS version level.\"\necho \"They can be safely ignored.\"\necho\necho \"Define the LIBSODIUM_MINIMAL_BUILD environment variable to build a\"\necho \"library without deprecated/undocumented/low-level functions.\"\necho\necho \"Define the LIBSODIUM_SKIP_SIMULATORS environment variable to skip building\"\necho \"the simulators libraries (iOS, watchOS, tvOS, visionOS simulators).\"\necho\n\nif [ \"$LIBSODIUM_MINIMAL_BUILD\" ]; then\n  export LIBSODIUM_ENABLE_MINIMAL_FLAG=\"--enable-minimal\"\nelse\n  export LIBSODIUM_ENABLE_MINIMAL_FLAG=\"\"\nfi\n\nVISIONOS_SUPPORTED=false\n[ -d \"${XCODEDIR}/Platforms/XROS.platform\" ] && VISIONOS_SUPPORTED=true\n\nNPROCESSORS=$(getconf NPROCESSORS_ONLN 2>/dev/null || getconf _NPROCESSORS_ONLN 2>/dev/null)\nPROCESSORS=${NPROCESSORS:-3}\n\nswift_module_map() {\n  echo 'module Clibsodium {'\n  echo '    header \"sodium.h\"'\n  echo '    export *'\n  echo '}'\n}\n\n# Move headers into a Clibsodium subdirectory to avoid module.modulemap collisions\n# when multiple xcframeworks are used together (see swift-sodium issue #276)\nreorganize_headers() {\n  local include_dir=\"$1\"\n  if [ -d \"$include_dir\" ] && [ ! -d \"$include_dir/Clibsodium\" ]; then\n    mkdir -p \"$include_dir/Clibsodium\"\n    # Move all files and directories (except Clibsodium itself) into Clibsodium/\n    for item in \"$include_dir\"/*; do\n      if [ \"$(basename \"$item\")\" != \"Clibsodium\" ]; then\n        mv \"$item\" \"$include_dir/Clibsodium/\"\n      fi\n    done\n  fi\n}\n\nbuild_macos() {\n  export BASEDIR=\"${XCODEDIR}/Platforms/MacOSX.platform/Developer\"\n  export PATH=\"${BASEDIR}/usr/bin:$BASEDIR/usr/sbin:$PATH\"\n\n  ## macOS arm64\n  export CFLAGS=\"-O3 -arch arm64 -mmacosx-version-min=${MACOS_VERSION_MIN}\"\n  export LDFLAGS=\"-arch arm64 -mmacosx-version-min=${MACOS_VERSION_MIN}\"\n\n  make distclean >/dev/null 2>&1\n  ./configure --host=aarch64-apple-darwin23 --prefix=\"$MACOS_ARM64_PREFIX\" \\\n    ${LIBSODIUM_ENABLE_MINIMAL_FLAG} || exit 1\n  make -j${PROCESSORS} install || exit 1\n\n  ## macOS arm64e\n  export CFLAGS=\"-O3 -arch arm64e -mmacosx-version-min=${MACOS_VERSION_MIN}\"\n  export LDFLAGS=\"-arch arm64e -mmacosx-version-min=${MACOS_VERSION_MIN}\"\n\n  make distclean >/dev/null 2>&1\n  ./configure --host=aarch64-apple-darwin23 --prefix=\"$MACOS_ARM64E_PREFIX\" \\\n    ${LIBSODIUM_ENABLE_MINIMAL_FLAG} || exit 1\n  make -j${PROCESSORS} install || exit 1\n\n  ## macOS x86_64\n  export CFLAGS=\"-O3 -arch x86_64 -mmacosx-version-min=${MACOS_VERSION_MIN}\"\n  export LDFLAGS=\"-arch x86_64 -mmacosx-version-min=${MACOS_VERSION_MIN}\"\n\n  make distclean >/dev/null 2>&1\n  ./configure --host=x86_64-apple-darwin23 --prefix=\"$MACOS_X86_64_PREFIX\" \\\n    ${LIBSODIUM_ENABLE_MINIMAL_FLAG} || exit 1\n  make -j${PROCESSORS} install || exit 1\n}\n\nbuild_ios() {\n  export BASEDIR=\"${XCODEDIR}/Platforms/iPhoneOS.platform/Developer\"\n  export PATH=\"${BASEDIR}/usr/bin:$BASEDIR/usr/sbin:$PATH\"\n  export SDK=\"${BASEDIR}/SDKs/iPhoneOS.sdk\"\n\n  ## 64-bit iOS\n  export CFLAGS=\"-O3 -arch arm64 -isysroot ${SDK} -mios-version-min=${IOS_VERSION_MIN}\"\n  export LDFLAGS=\"-arch arm64 -isysroot ${SDK} -mios-version-min=${IOS_VERSION_MIN}\"\n\n  make distclean >/dev/null 2>&1\n  ./configure --build=aarch64-apple-darwin --host=aarch64-apple-darwin23 --prefix=\"$IOS64_PREFIX\" \\\n    ${LIBSODIUM_ENABLE_MINIMAL_FLAG} || exit 1\n  make -j${PROCESSORS} install || exit 1\n\n  ## 64-bit iOS arm64e\n  export CFLAGS=\"-O3 -arch arm64e -isysroot ${SDK} -mios-version-min=${IOS_VERSION_MIN}\"\n  export LDFLAGS=\"-arch arm64e -isysroot ${SDK} -mios-version-min=${IOS_VERSION_MIN}\"\n\n  make distclean >/dev/null 2>&1\n  ./configure --build=aarch64-apple-darwin --host=aarch64-apple-darwin23 --prefix=\"$IOS64E_PREFIX\" \\\n    ${LIBSODIUM_ENABLE_MINIMAL_FLAG} || exit 1\n  make -j${PROCESSORS} install || exit 1\n}\n\nbuild_ios_simulator() {\n  export BASEDIR=\"${XCODEDIR}/Platforms/iPhoneSimulator.platform/Developer\"\n  export PATH=\"${BASEDIR}/usr/bin:$BASEDIR/usr/sbin:$PATH\"\n  export SDK=\"${BASEDIR}/SDKs/iPhoneSimulator.sdk\"\n\n  ## arm64 simulator\n  export CFLAGS=\"-O3 -arch arm64 -isysroot ${SDK} -mios-simulator-version-min=${IOS_SIMULATOR_VERSION_MIN}\"\n  export LDFLAGS=\"-arch arm64 -isysroot ${SDK} -mios-simulator-version-min=${IOS_SIMULATOR_VERSION_MIN}\"\n\n  make distclean >/dev/null 2>&1\n  ./configure --build=aarch64-apple-darwin --host=aarch64-apple-darwin23 --prefix=\"$IOS_SIMULATOR_ARM64_PREFIX\" \\\n    ${LIBSODIUM_ENABLE_MINIMAL_FLAG} || exit 1\n  make -j${PROCESSORS} install || exit 1\n\n  ## arm64e simulator\n  export CFLAGS=\"-O3 -arch arm64e -isysroot ${SDK} -mios-simulator-version-min=${IOS_SIMULATOR_VERSION_MIN}\"\n  export LDFLAGS=\"-arch arm64e -isysroot ${SDK} -mios-simulator-version-min=${IOS_SIMULATOR_VERSION_MIN}\"\n\n  make distclean >/dev/null 2>&1\n  ./configure --build=aarch64-apple-darwin --host=aarch64-apple-darwin23 --prefix=\"$IOS_SIMULATOR_ARM64E_PREFIX\" \\\n    ${LIBSODIUM_ENABLE_MINIMAL_FLAG} || exit 1\n  make -j${PROCESSORS} install || exit 1\n\n  ## x86_64 simulator\n  export CFLAGS=\"-O3 -arch x86_64 -isysroot ${SDK} -mios-simulator-version-min=${IOS_SIMULATOR_VERSION_MIN}\"\n  export LDFLAGS=\"-arch x86_64 -isysroot ${SDK} -mios-simulator-version-min=${IOS_SIMULATOR_VERSION_MIN}\"\n\n  make distclean >/dev/null 2>&1\n  ./configure --build=aarch64-apple-darwin --host=x86_64-apple-darwin23 --prefix=\"$IOS_SIMULATOR_X86_64_PREFIX\" \\\n    ${LIBSODIUM_ENABLE_MINIMAL_FLAG}\n  make -j${PROCESSORS} install || exit 1\n}\n\nbuild_watchos() {\n  export BASEDIR=\"${XCODEDIR}/Platforms/WatchOS.platform/Developer\"\n  export PATH=\"${BASEDIR}/usr/bin:$BASEDIR/usr/sbin:$PATH\"\n  export SDK=\"${BASEDIR}/SDKs/WatchOS.sdk\"\n\n  # 32-bit watchOS\n  export CFLAGS=\"-O3 -mthumb -arch armv7k -isysroot ${SDK} -mwatchos-version-min=${WATCHOS_VERSION_MIN}\"\n  export LDFLAGS=\"-mthumb -arch armv7k -isysroot ${SDK} -mwatchos-version-min=${WATCHOS_VERSION_MIN}\"\n\n  make distclean >/dev/null 2>&1\n  ./configure --build=aarch64-apple-darwin --host=arm-apple-darwin23 --prefix=\"$WATCHOS32_PREFIX\" \\\n    ${LIBSODIUM_ENABLE_MINIMAL_FLAG} || exit 1\n  make -j${PROCESSORS} install || exit 1\n\n  ## 64-bit arm64_32 watchOS\n  export CFLAGS=\"-O3 -mthumb -arch arm64_32 -isysroot ${SDK} -mwatchos-version-min=${WATCHOS_VERSION_MIN}\"\n  export LDFLAGS=\"-mthumb -arch arm64_32 -isysroot ${SDK} -mwatchos-version-min=${WATCHOS_VERSION_MIN}\"\n\n  make distclean >/dev/null 2>&1\n  ./configure --build=aarch64-apple-darwin --host=aarch64-apple-darwin23 --prefix=\"$WATCHOS64_32_PREFIX\" \\\n    ${LIBSODIUM_ENABLE_MINIMAL_FLAG} || exit 1\n  make -j${PROCESSORS} install || exit 1\n\n  ## 64-bit arm64 watchOS\n  export CFLAGS=\"-O3 -mthumb -arch arm64 -isysroot ${SDK} -mwatchos-version-min=${WATCHOS_VERSION_MIN}\"\n  export LDFLAGS=\"-mthumb -arch arm64 -isysroot ${SDK} -mwatchos-version-min=${WATCHOS_VERSION_MIN}\"\n\n  make distclean >/dev/null 2>&1\n  ./configure --build=aarch64-apple-darwin --host=aarch64-apple-darwin23 --prefix=\"$WATCHOS64_PREFIX\" \\\n    ${LIBSODIUM_ENABLE_MINIMAL_FLAG} || exit 1\n  make -j${PROCESSORS} install || exit 1\n\n  ## 64-bit arm64e watchOS\n  export CFLAGS=\"-O3 -mthumb -arch arm64e -isysroot ${SDK} -mwatchos-version-min=${WATCHOS_VERSION_MIN}\"\n  export LDFLAGS=\"-mthumb -arch arm64e -isysroot ${SDK} -mwatchos-version-min=${WATCHOS_VERSION_MIN}\"\n\n  make distclean >/dev/null 2>&1\n  ./configure --build=aarch64-apple-darwin --host=aarch64-apple-darwin23 --prefix=\"$WATCHOS64E_PREFIX\" \\\n    ${LIBSODIUM_ENABLE_MINIMAL_FLAG} || exit 1\n  make -j${PROCESSORS} install || exit 1\n}\n\nbuild_watchos_simulator() {\n  export BASEDIR=\"${XCODEDIR}/Platforms/WatchSimulator.platform/Developer\"\n  export PATH=\"${BASEDIR}/usr/bin:$BASEDIR/usr/sbin:$PATH\"\n  export SDK=\"${BASEDIR}/SDKs/WatchSimulator.sdk\"\n\n  ## arm64 simulator\n  export CFLAGS=\"-O3 -arch arm64 -isysroot ${SDK} -mwatchos-simulator-version-min=${WATCHOS_SIMULATOR_VERSION_MIN}\"\n  export LDFLAGS=\"-arch arm64 -isysroot ${SDK} -mwatchos-simulator-version-min=${WATCHOS_SIMULATOR_VERSION_MIN}\"\n\n  make distclean >/dev/null 2>&1\n  ./configure --build=aarch64-apple-darwin --host=aarch64-apple-darwin23 --prefix=\"$WATCHOS_SIMULATOR_ARM64_PREFIX\" \\\n    ${LIBSODIUM_ENABLE_MINIMAL_FLAG} || exit 1\n  make -j${PROCESSORS} install || exit 1\n\n  ## arm64e simulator\n  export CFLAGS=\"-O3 -arch arm64e -isysroot ${SDK} -mwatchos-simulator-version-min=${WATCHOS_SIMULATOR_VERSION_MIN}\"\n  export LDFLAGS=\"-arch arm64e -isysroot ${SDK} -mwatchos-simulator-version-min=${WATCHOS_SIMULATOR_VERSION_MIN}\"\n\n  make distclean >/dev/null 2>&1\n  ./configure --build=aarch64-apple-darwin --host=aarch64-apple-darwin23 --prefix=\"$WATCHOS_SIMULATOR_ARM64E_PREFIX\" \\\n    ${LIBSODIUM_ENABLE_MINIMAL_FLAG} || exit 1\n  make -j${PROCESSORS} install || exit 1\n\n  ## i386 simulator\n  export CFLAGS=\"-O3 -arch i386 -isysroot ${SDK} -mwatchos-simulator-version-min=${WATCHOS_SIMULATOR_VERSION_MIN}\"\n  export LDFLAGS=\"-arch i386 -isysroot ${SDK} -mwatchos-simulator-version-min=${WATCHOS_SIMULATOR_VERSION_MIN}\"\n\n  make distclean >/dev/null 2>&1\n  ./configure --build=aarch64-apple-darwin --host=i686-apple-darwin23 --prefix=\"$WATCHOS_SIMULATOR_I386_PREFIX\" \\\n    ${LIBSODIUM_ENABLE_MINIMAL_FLAG} || exit 1\n  make -j${PROCESSORS} install || exit 1\n\n  ## x86_64 simulator\n  export CFLAGS=\"-O3 -arch x86_64 -isysroot ${SDK} -mwatchos-simulator-version-min=${WATCHOS_SIMULATOR_VERSION_MIN}\"\n  export LDFLAGS=\"-arch x86_64 -isysroot ${SDK} -mwatchos-simulator-version-min=${WATCHOS_SIMULATOR_VERSION_MIN}\"\n\n  make distclean >/dev/null 2>&1\n  ./configure --build=aarch64-apple-darwin --host=x86_64-apple-darwin23 --prefix=\"$WATCHOS_SIMULATOR_X86_64_PREFIX\" \\\n    ${LIBSODIUM_ENABLE_MINIMAL_FLAG} || exit 1\n  make -j${PROCESSORS} install || exit 1\n}\n\nbuild_tvos() {\n  export BASEDIR=\"${XCODEDIR}/Platforms/AppleTVOS.platform/Developer\"\n  export PATH=\"${BASEDIR}/usr/bin:$BASEDIR/usr/sbin:$PATH\"\n  export SDK=\"${BASEDIR}/SDKs/AppleTVOS.sdk\"\n\n  ## 64-bit tvOS\n  export CFLAGS=\"-O3 -arch arm64 -isysroot ${SDK} -mtvos-version-min=${TVOS_VERSION_MIN}\"\n  export LDFLAGS=\"-arch arm64 -isysroot ${SDK} -mtvos-version-min=${TVOS_VERSION_MIN}\"\n\n  make distclean >/dev/null 2>&1\n  ./configure --build=aarch64-apple-darwin --host=aarch64-apple-darwin23 --prefix=\"$TVOS_PREFIX\" \\\n    ${LIBSODIUM_ENABLE_MINIMAL_FLAG} || exit 1\n  make -j${PROCESSORS} install || exit 1\n\n  ## 64-bit tvOS\n  export CFLAGS=\"-O3 -arch arm64e -isysroot ${SDK} -mtvos-version-min=${TVOS_VERSION_MIN}\"\n  export LDFLAGS=\"-arch arm64e -isysroot ${SDK} -mtvos-version-min=${TVOS_VERSION_MIN}\"\n\n  make distclean >/dev/null 2>&1\n  ./configure --build=aarch64-apple-darwin --host=aarch64-apple-darwin23 --prefix=\"$TVOSE_PREFIX\" \\\n    ${LIBSODIUM_ENABLE_MINIMAL_FLAG} || exit 1\n  make -j${PROCESSORS} install || exit 1\n}\n\nbuild_tvos_simulator() {\n  export BASEDIR=\"${XCODEDIR}/Platforms/AppleTVSimulator.platform/Developer\"\n  export PATH=\"${BASEDIR}/usr/bin:$BASEDIR/usr/sbin:$PATH\"\n  export SDK=\"${BASEDIR}/SDKs/AppleTVSimulator.sdk\"\n\n  ## arm64 simulator\n  export CFLAGS=\"-O3 -arch arm64 -isysroot ${SDK} -mtvos-simulator-version-min=${TVOS_SIMULATOR_VERSION_MIN}\"\n  export LDFLAGS=\"-arch arm64 -isysroot ${SDK} -mtvos-simulator-version-min=${TVOS_SIMULATOR_VERSION_MIN}\"\n\n  make distclean >/dev/null 2>&1\n  ./configure --build=aarch64-apple-darwin --host=aarch64-apple-darwin23 --prefix=\"$TVOS_SIMULATOR_ARM64_PREFIX\" \\\n    ${LIBSODIUM_ENABLE_MINIMAL_FLAG} || exit 1\n  make -j${PROCESSORS} install || exit 1\n\n  ## arm64e simulator\n  export CFLAGS=\"-O3 -arch arm64e -isysroot ${SDK} -mtvos-simulator-version-min=${TVOS_SIMULATOR_VERSION_MIN}\"\n  export LDFLAGS=\"-arch arm64e -isysroot ${SDK} -mtvos-simulator-version-min=${TVOS_SIMULATOR_VERSION_MIN}\"\n\n  make distclean >/dev/null 2>&1\n  ./configure --build=aarch64-apple-darwin --host=aarch64-apple-darwin23 --prefix=\"$TVOS_SIMULATOR_ARM64E_PREFIX\" \\\n    ${LIBSODIUM_ENABLE_MINIMAL_FLAG} || exit 1\n  make -j${PROCESSORS} install || exit 1\n\n  ## x86_64 simulator\n  export CFLAGS=\"-O3 -arch x86_64 -isysroot ${SDK} -mtvos-simulator-version-min=${TVOS_SIMULATOR_VERSION_MIN}\"\n  export LDFLAGS=\"-arch x86_64 -isysroot ${SDK} -mtvos-simulator-version-min=${TVOS_SIMULATOR_VERSION_MIN}\"\n\n  make distclean >/dev/null 2>&1\n  ./configure --build=aarch64-apple-darwin --host=x86_64-apple-darwin23 --prefix=\"$TVOS_SIMULATOR_X86_64_PREFIX\" \\\n    ${LIBSODIUM_ENABLE_MINIMAL_FLAG}\n  make -j${PROCESSORS} install || exit 1\n}\n\nbuild_visionos() {\n  export BASEDIR=\"${XCODEDIR}/Platforms/XROS.platform/Developer\"\n  export PATH=\"${BASEDIR}/usr/bin:$BASEDIR/usr/sbin:$PATH\"\n  export SDK=\"${BASEDIR}/SDKs/XROS.sdk\"\n\n  export CFLAGS=\"-O3 -arch arm64 -isysroot ${SDK}\"\n  export LDFLAGS=\"-arch arm64 -isysroot ${SDK}\"\n\n  make distclean >/dev/null 2>&1\n  ./configure --build=aarch64-apple-darwin --host=aarch64-apple-darwin23 --prefix=\"$VISIONOS_PREFIX\" \\\n    ${LIBSODIUM_ENABLE_MINIMAL_FLAG} || exit 1\n  make -j${PROCESSORS} install || exit 1\n\n  export CFLAGS=\"-O3 -arch arm64e -isysroot ${SDK}\"\n  export LDFLAGS=\"-arch arm64e -isysroot ${SDK}\"\n\n  make distclean >/dev/null 2>&1\n  ./configure --build=aarch64-apple-darwin --host=aarch64-apple-darwin23 --prefix=\"$VISIONOSE_PREFIX\" \\\n    ${LIBSODIUM_ENABLE_MINIMAL_FLAG} || exit 1\n  make -j${PROCESSORS} install || exit 1\n}\n\nbuild_visionos_simulator() {\n  export BASEDIR=\"${XCODEDIR}/Platforms/XRSimulator.platform/Developer\"\n  export PATH=\"${BASEDIR}/usr/bin:$BASEDIR/usr/sbin:$PATH\"\n  export SDK=\"${BASEDIR}/SDKs/XRSimulator.sdk\"\n\n  export CFLAGS=\"-O3 -arch arm64 -isysroot ${SDK}\"\n  export LDFLAGS=\"-arch arm64 -isysroot ${SDK}\"\n\n  make distclean >/dev/null 2>&1\n  ./configure --build=aarch64-apple-darwin --host=aarch64-apple-darwin23 --prefix=\"$VISIONOS_SIMULATOR_PREFIX\" \\\n    ${LIBSODIUM_ENABLE_MINIMAL_FLAG} || exit 1\n  make -j${PROCESSORS} install || exit 1\n\n  export CFLAGS=\"-O3 -arch arm64e -isysroot ${SDK}\"\n  export LDFLAGS=\"-arch arm64e -isysroot ${SDK}\"\n\n  make distclean >/dev/null 2>&1\n  ./configure --build=aarch64-apple-darwin --host=aarch64-apple-darwin23 --prefix=\"$VISIONOSE_SIMULATOR_PREFIX\" \\\n    ${LIBSODIUM_ENABLE_MINIMAL_FLAG} || exit 1\n  make -j${PROCESSORS} install || exit 1\n}\n\nbuild_catalyst() {\n  export BASEDIR=\"${XCODEDIR}/Platforms/MacOSX.platform/Developer\"\n  export PATH=\"${BASEDIR}/usr/bin:$BASEDIR/usr/sbin:$PATH\"\n  export SDK=\"${BASEDIR}/SDKs/MacOSX.sdk\"\n\n  ## arm64 catalyst\n  export CFLAGS=\"-O3 -arch arm64 -target arm64-apple-ios13.1-macabi -isysroot ${SDK}\"\n  export LDFLAGS=\"-arch arm64 -target arm64-apple-ios13.1-macabi -isysroot ${SDK}\"\n\n  make distclean >/dev/null 2>&1\n  ./configure --build=aarch64-apple-darwin --host=aarch64-apple-ios --prefix=\"$CATALYST_ARM64_PREFIX\" \\\n    ${LIBSODIUM_ENABLE_MINIMAL_FLAG} || exit 1\n  make -j${PROCESSORS} install || exit 1\n\n  ## arm64e catalyst\n  export CFLAGS=\"-O3 -arch arm64e -target arm64e-apple-ios13.1-macabi -isysroot ${SDK}\"\n  export LDFLAGS=\"-arch arm64e -target arm64e-apple-ios13.1-macabi -isysroot ${SDK}\"\n\n  make distclean >/dev/null 2>&1\n  ./configure --build=aarch64-apple-darwin --host=aarch64-apple-ios --prefix=\"$CATALYST_ARM64E_PREFIX\" \\\n    ${LIBSODIUM_ENABLE_MINIMAL_FLAG} || exit 1\n  make -j${PROCESSORS} install || exit 1\n\n  ## x86_64 catalyst\n  export CFLAGS=\"-O3 -arch x86_64 -target x86_64-apple-ios13.1-macabi -isysroot ${SDK}\"\n  export LDFLAGS=\"-arch x86_64 -target x86_64-apple-ios13.1-macabi -isysroot ${SDK}\"\n\n  make distclean >/dev/null 2>&1\n  ./configure --build=aarch64-apple-darwin --host=x86_64-apple-ios --prefix=\"$CATALYST_X86_64_PREFIX\" \\\n    ${LIBSODIUM_ENABLE_MINIMAL_FLAG} || exit 1\n  make -j${PROCESSORS} install || exit 1\n}\n\nmkdir -p \"${PREFIX}/tmp\"\n\necho \"Building for macOS...\"\nbuild_macos >\"$LOG_FILE\" 2>&1 || exit 1\necho \"Building for iOS...\"\nbuild_ios >\"$LOG_FILE\" 2>&1 || exit 1\necho \"Building for watchOS...\"\nbuild_watchos >\"$LOG_FILE\" 2>&1 || exit 1\necho \"Building for tvOS...\"\nbuild_tvos >\"$LOG_FILE\" 2>&1 || exit 1\necho \"Building for Catalyst...\"\nbuild_catalyst >\"$LOG_FILE\" 2>&1 || exit 1\nif [ \"$VISIONOS_SUPPORTED\" = true ]; then\n  echo \"Building for visionOS...\"\n  build_visionos >\"$LOG_FILE\" 2>&1 || exit 1\nfi\n\nif [ -z \"$LIBSODIUM_SKIP_SIMULATORS\" ]; then\n  echo \"Building for the iOS simulator...\"\n  build_ios_simulator >\"$LOG_FILE\" 2>&1 || exit 1\n  echo \"Building for the watchOS simulator...\"\n  build_watchos_simulator >\"$LOG_FILE\" 2>&1 || exit 1\n  echo \"Building for the tvOS simulator...\"\n  build_tvos_simulator >\"$LOG_FILE\" 2>&1 || exit 1\n  if [ \"$VISIONOS_SUPPORTED\" = true ]; then\n    echo \"Building for the visionOS simulator...\"\n    build_visionos_simulator >\"$LOG_FILE\" 2>&1 || exit 1\n  fi\nelse\n  echo \"[Skipping the simulators]\"\nfi\n\necho \"Adding the Clibsodium module map for Swift...\"\n\nfind \"$PREFIX\" -name \"include\" -type d -print | while read -r f; do\n  swift_module_map >\"${f}/module.modulemap\"\ndone\n\necho \"Bundling macOS targets...\"\n\nmkdir -p \"${PREFIX}/macos/lib\"\ncp -a \"${MACOS_X86_64_PREFIX}/include\" \"${PREFIX}/macos/\"\nreorganize_headers \"${PREFIX}/macos/include\"\nfor ext in a dylib; do\n  lipo -create \\\n    \"${MACOS_ARM64_PREFIX}/lib/libsodium.${ext}\" \\\n    \"${MACOS_ARM64E_PREFIX}/lib/libsodium.${ext}\" \\\n    \"${MACOS_X86_64_PREFIX}/lib/libsodium.${ext}\" \\\n    -output \"${PREFIX}/macos/lib/libsodium.${ext}\"\ndone\n\necho \"Bundling iOS targets...\"\n\nmkdir -p \"${PREFIX}/ios/lib\"\ncp -a \"${IOS64_PREFIX}/include\" \"${PREFIX}/ios/\"\nreorganize_headers \"${PREFIX}/ios/include\"\nfor ext in a dylib; do\n  LIBRARY_PATHS=\"$IOS64_PREFIX/lib/libsodium.${ext}\"\n  LIBRARY_PATHS=\"$LIBRARY_PATHS $IOS64E_PREFIX/lib/libsodium.${ext}\"\n  lipo -create \\\n    ${LIBRARY_PATHS} \\\n    -output \"$PREFIX/ios/lib/libsodium.${ext}\"\ndone\n\necho \"Bundling watchOS targets...\"\n\nmkdir -p \"${PREFIX}/watchos/lib\"\ncp -a \"${WATCHOS64_32_PREFIX}/include\" \"${PREFIX}/watchos/\"\nreorganize_headers \"${PREFIX}/watchos/include\"\nfor ext in a dylib; do\n  lipo -create \\\n    \"${WATCHOS32_PREFIX}/lib/libsodium.${ext}\" \\\n    \"${WATCHOS64_32_PREFIX}/lib/libsodium.${ext}\" \\\n    \"${WATCHOS64_PREFIX}/lib/libsodium.${ext}\" \\\n    \"${WATCHOS64E_PREFIX}/lib/libsodium.${ext}\" \\\n    -output \"${PREFIX}/watchos/lib/libsodium.${ext}\"\ndone\n\necho \"Bundling tvOS targets...\"\n\nmkdir -p \"${PREFIX}/tvos/lib\"\ncp -a \"${TVOS_PREFIX}/include\" \"${PREFIX}/tvos/\"\nreorganize_headers \"${PREFIX}/tvos/include\"\nfor ext in a dylib; do\n  lipo -create \\\n    \"$TVOS_PREFIX/lib/libsodium.${ext}\" \\\n    \"$TVOSE_PREFIX/lib/libsodium.${ext}\" \\\n    -output \"$PREFIX/tvos/lib/libsodium.${ext}\"\ndone\n\nif [ \"$VISIONOS_SUPPORTED\" = true ]; then\n  echo \"Bundling visionOS targets...\"\n\n  mkdir -p \"${PREFIX}/visionos/lib\"\n  cp -a \"${VISIONOS_PREFIX}/include\" \"${PREFIX}/visionos/\"\n  reorganize_headers \"${PREFIX}/visionos/include\"\n  for ext in a dylib; do\n    lipo -create \\\n      \"$VISIONOS_PREFIX/lib/libsodium.${ext}\" \\\n      \"$VISIONOSE_PREFIX/lib/libsodium.${ext}\" \\\n      -output \"$PREFIX/visionos/lib/libsodium.${ext}\"\n  done\nfi\n\necho \"Bundling Catalyst targets...\"\n\nmkdir -p \"${PREFIX}/catalyst/lib\"\ncp -a \"${CATALYST_X86_64_PREFIX}/include\" \"${PREFIX}/catalyst/\"\nreorganize_headers \"${PREFIX}/catalyst/include\"\nfor ext in a dylib; do\n  if [ ! -f \"${CATALYST_X86_64_PREFIX}/lib/libsodium.${ext}\" ]; then\n    continue\n  fi\n  lipo -create \\\n    \"${CATALYST_ARM64_PREFIX}/lib/libsodium.${ext}\" \\\n    \"${CATALYST_ARM64E_PREFIX}/lib/libsodium.${ext}\" \\\n    \"${CATALYST_X86_64_PREFIX}/lib/libsodium.${ext}\" \\\n    -output \"${PREFIX}/catalyst/lib/libsodium.${ext}\"\ndone\n\nif [ -z \"$LIBSODIUM_SKIP_SIMULATORS\" ]; then\n  echo \"Bundling iOS simulators...\"\n\n  mkdir -p \"${PREFIX}/ios-simulators/lib\"\n  cp -a \"${IOS_SIMULATOR_X86_64_PREFIX}/include\" \"${PREFIX}/ios-simulators/\"\n  reorganize_headers \"${PREFIX}/ios-simulators/include\"\n  for ext in a dylib; do\n    LIBRARY_PATHS=\"${IOS_SIMULATOR_ARM64_PREFIX}/lib/libsodium.${ext}\"\n    LIBRARY_PATHS=\"$LIBRARY_PATHS ${IOS_SIMULATOR_ARM64E_PREFIX}/lib/libsodium.${ext}\"\n    LIBRARY_PATHS=\"$LIBRARY_PATHS ${IOS_SIMULATOR_X86_64_PREFIX}/lib/libsodium.${ext}\"\n    lipo -create \\\n      ${LIBRARY_PATHS} \\\n      -output \"${PREFIX}/ios-simulators/lib/libsodium.${ext}\" || exit 1\n  done\n\n  echo \"Bundling watchOS simulators...\"\n\n  mkdir -p \"${PREFIX}/watchos-simulators/lib\"\n  cp -a \"${WATCHOS_SIMULATOR_X86_64_PREFIX}/include\" \"${PREFIX}/watchos-simulators/\"\n  reorganize_headers \"${PREFIX}/watchos-simulators/include\"\n  for ext in a dylib; do\n    lipo -create \\\n      \"${WATCHOS_SIMULATOR_ARM64_PREFIX}/lib/libsodium.${ext}\" \\\n      \"${WATCHOS_SIMULATOR_ARM64E_PREFIX}/lib/libsodium.${ext}\" \\\n      \"${WATCHOS_SIMULATOR_I386_PREFIX}/lib/libsodium.${ext}\" \\\n      \"${WATCHOS_SIMULATOR_X86_64_PREFIX}/lib/libsodium.${ext}\" \\\n      -output \"${PREFIX}/watchos-simulators/lib/libsodium.${ext}\"\n  done\n\n  echo \"Bundling tvOS simulators...\"\n\n  mkdir -p \"${PREFIX}/tvos-simulators/lib\"\n  cp -a \"${TVOS_SIMULATOR_X86_64_PREFIX}/include\" \"${PREFIX}/tvos-simulators/\"\n  reorganize_headers \"${PREFIX}/tvos-simulators/include\"\n  for ext in a dylib; do\n    lipo -create \\\n      \"${TVOS_SIMULATOR_ARM64_PREFIX}/lib/libsodium.${ext}\" \\\n      \"${TVOS_SIMULATOR_ARM64E_PREFIX}/lib/libsodium.${ext}\" \\\n      \"${TVOS_SIMULATOR_X86_64_PREFIX}/lib/libsodium.${ext}\" \\\n      -output \"${PREFIX}/tvos-simulators/lib/libsodium.${ext}\" || exit 1\n  done\n\n  if [ \"$VISIONOS_SUPPORTED\" = true ]; then\n    echo \"Bundling visionOS simulators...\"\n\n    mkdir -p \"${PREFIX}/visionos-simulators/lib\"\n    cp -a \"${VISIONOS_SIMULATOR_PREFIX}/include\" \"${PREFIX}/visionos-simulators/\"\n    reorganize_headers \"${PREFIX}/visionos-simulators/include\"\n    for ext in a dylib; do\n      lipo -create \\\n        \"${VISIONOS_SIMULATOR_PREFIX}/lib/libsodium.${ext}\" \\\n        \"${VISIONOSE_SIMULATOR_PREFIX}/lib/libsodium.${ext}\" \\\n        -output \"${PREFIX}/visionos-simulators/lib/libsodium.${ext}\" || exit 1\n    done\n  fi\nfi\n\necho \"Creating Clibsodium.xcframework...\"\n\nrm -rf \"${PREFIX}/Clibsodium.xcframework\"\n\nXCFRAMEWORK_ARGS=\"\"\nfor f in macos ios watchos tvos visionos catalyst; do\n  if [ \"$VISIONOS_SUPPORTED\" = false ] && [ \"$f\" = \"visionos\" ]; then\n    continue\n  fi\n  XCFRAMEWORK_ARGS=\"${XCFRAMEWORK_ARGS} -library $(readlink -f ${PREFIX}/${f}/lib/libsodium.a)\"\n  XCFRAMEWORK_ARGS=\"${XCFRAMEWORK_ARGS} -headers $(readlink -f ${PREFIX}/${f}/include)\"\ndone\nif [ -z \"$LIBSODIUM_SKIP_SIMULATORS\" ]; then\n  for f in ios-simulators watchos-simulators tvos-simulators visionos-simulators; do\n    if [ \"$VISIONOS_SUPPORTED\" = false ] && [ \"$f\" = \"visionos-simulators\" ]; then\n      continue\n    fi\n    XCFRAMEWORK_ARGS=\"${XCFRAMEWORK_ARGS} -library $(readlink -f ${PREFIX}/${f}/lib/libsodium.a)\"\n    XCFRAMEWORK_ARGS=\"${XCFRAMEWORK_ARGS} -headers $(readlink -f ${PREFIX}/${f}/include)\"\n  done\nfi\nxcodebuild -create-xcframework \\\n  ${XCFRAMEWORK_ARGS} \\\n  -output \"${PREFIX}/Clibsodium.xcframework\" >/dev/null\n\nls -ld -- \"$PREFIX\"\nls -l -- \"$PREFIX\"\nls -l -- \"$PREFIX/Clibsodium.xcframework\"\n\necho \"Done!\"\n\n# Cleanup\nrm -rf -- \"$PREFIX/tmp\"\nmake distclean >/dev/null\n"
  },
  {
    "path": "dist-build/emscripten-symbols.def",
    "content": "_crypto_aead_aegis128l_abytes 1 1\n_crypto_aead_aegis128l_decrypt 1 1\n_crypto_aead_aegis128l_decrypt_detached 1 1\n_crypto_aead_aegis128l_encrypt 1 1\n_crypto_aead_aegis128l_encrypt_detached 1 1\n_crypto_aead_aegis128l_keybytes 1 1\n_crypto_aead_aegis128l_keygen 1 1\n_crypto_aead_aegis128l_messagebytes_max 1 1\n_crypto_aead_aegis128l_npubbytes 1 1\n_crypto_aead_aegis128l_nsecbytes 1 1\n_crypto_aead_aegis256_abytes 1 1\n_crypto_aead_aegis256_decrypt 1 1\n_crypto_aead_aegis256_decrypt_detached 1 1\n_crypto_aead_aegis256_encrypt 1 1\n_crypto_aead_aegis256_encrypt_detached 1 1\n_crypto_aead_aegis256_keybytes 1 1\n_crypto_aead_aegis256_keygen 1 1\n_crypto_aead_aegis256_messagebytes_max 1 1\n_crypto_aead_aegis256_npubbytes 1 1\n_crypto_aead_aegis256_nsecbytes 1 1\n_crypto_aead_aes256gcm_abytes 0 0\n_crypto_aead_aes256gcm_beforenm 0 0\n_crypto_aead_aes256gcm_decrypt 0 0\n_crypto_aead_aes256gcm_decrypt_afternm 0 0\n_crypto_aead_aes256gcm_decrypt_detached 0 0\n_crypto_aead_aes256gcm_decrypt_detached_afternm 0 0\n_crypto_aead_aes256gcm_encrypt 0 0\n_crypto_aead_aes256gcm_encrypt_afternm 0 0\n_crypto_aead_aes256gcm_encrypt_detached 0 0\n_crypto_aead_aes256gcm_encrypt_detached_afternm 0 0\n_crypto_aead_aes256gcm_is_available 1 1\n_crypto_aead_aes256gcm_keybytes 0 0\n_crypto_aead_aes256gcm_keygen 0 0\n_crypto_aead_aes256gcm_messagebytes_max 0 0\n_crypto_aead_aes256gcm_npubbytes 0 0\n_crypto_aead_aes256gcm_nsecbytes 0 0\n_crypto_aead_aes256gcm_statebytes 0 0\n_crypto_aead_chacha20poly1305_abytes 1 1\n_crypto_aead_chacha20poly1305_decrypt 1 1\n_crypto_aead_chacha20poly1305_decrypt_detached 1 1\n_crypto_aead_chacha20poly1305_encrypt 1 1\n_crypto_aead_chacha20poly1305_encrypt_detached 1 1\n_crypto_aead_chacha20poly1305_ietf_abytes 1 1\n_crypto_aead_chacha20poly1305_ietf_decrypt 1 1\n_crypto_aead_chacha20poly1305_ietf_decrypt_detached 1 1\n_crypto_aead_chacha20poly1305_ietf_encrypt 1 1\n_crypto_aead_chacha20poly1305_ietf_encrypt_detached 1 1\n_crypto_aead_chacha20poly1305_ietf_keybytes 1 1\n_crypto_aead_chacha20poly1305_ietf_keygen 1 1\n_crypto_aead_chacha20poly1305_ietf_messagebytes_max 1 1\n_crypto_aead_chacha20poly1305_ietf_npubbytes 1 1\n_crypto_aead_chacha20poly1305_ietf_nsecbytes 1 1\n_crypto_aead_chacha20poly1305_keybytes 1 1\n_crypto_aead_chacha20poly1305_keygen 1 1\n_crypto_aead_chacha20poly1305_messagebytes_max 1 1\n_crypto_aead_chacha20poly1305_npubbytes 1 1\n_crypto_aead_chacha20poly1305_nsecbytes 1 1\n_crypto_aead_xchacha20poly1305_ietf_abytes 1 1\n_crypto_aead_xchacha20poly1305_ietf_decrypt 1 1\n_crypto_aead_xchacha20poly1305_ietf_decrypt_detached 1 1\n_crypto_aead_xchacha20poly1305_ietf_encrypt 1 1\n_crypto_aead_xchacha20poly1305_ietf_encrypt_detached 1 1\n_crypto_aead_xchacha20poly1305_ietf_keybytes 1 1\n_crypto_aead_xchacha20poly1305_ietf_keygen 1 1\n_crypto_aead_xchacha20poly1305_ietf_messagebytes_max 1 1\n_crypto_aead_xchacha20poly1305_ietf_npubbytes 1 1\n_crypto_aead_xchacha20poly1305_ietf_nsecbytes 1 1\n_crypto_auth 1 1\n_crypto_auth_bytes 1 1\n_crypto_auth_hmacsha256 0 1\n_crypto_auth_hmacsha256_bytes 0 1\n_crypto_auth_hmacsha256_final 0 1\n_crypto_auth_hmacsha256_init 0 1\n_crypto_auth_hmacsha256_keybytes 0 1\n_crypto_auth_hmacsha256_keygen 0 1\n_crypto_auth_hmacsha256_statebytes 0 1\n_crypto_auth_hmacsha256_update 0 1\n_crypto_auth_hmacsha256_verify 0 1\n_crypto_auth_hmacsha512 0 1\n_crypto_auth_hmacsha512_bytes 0 1\n_crypto_auth_hmacsha512_final 0 1\n_crypto_auth_hmacsha512_init 0 1\n_crypto_auth_hmacsha512_keybytes 0 1\n_crypto_auth_hmacsha512_keygen 0 1\n_crypto_auth_hmacsha512_statebytes 0 1\n_crypto_auth_hmacsha512_update 0 1\n_crypto_auth_hmacsha512_verify 0 1\n_crypto_auth_hmacsha512256 0 1\n_crypto_auth_hmacsha512256_bytes 0 1\n_crypto_auth_hmacsha512256_final 0 1\n_crypto_auth_hmacsha512256_init 0 1\n_crypto_auth_hmacsha512256_keybytes 0 1\n_crypto_auth_hmacsha512256_keygen 0 1\n_crypto_auth_hmacsha512256_statebytes 0 1\n_crypto_auth_hmacsha512256_update 0 1\n_crypto_auth_hmacsha512256_verify 0 1\n_crypto_auth_keybytes 1 1\n_crypto_auth_keygen 1 1\n_crypto_auth_primitive 0 1\n_crypto_auth_verify 1 1\n_crypto_box 0 1\n_crypto_box_afternm 0 1\n_crypto_box_beforenm 1 1\n_crypto_box_beforenmbytes 1 1\n_crypto_box_boxzerobytes 0 1\n_crypto_box_curve25519xchacha20poly1305_beforenm 0 1\n_crypto_box_curve25519xchacha20poly1305_beforenmbytes 0 1\n_crypto_box_curve25519xchacha20poly1305_detached 0 1\n_crypto_box_curve25519xchacha20poly1305_detached_afternm 0 1\n_crypto_box_curve25519xchacha20poly1305_easy 0 1\n_crypto_box_curve25519xchacha20poly1305_easy_afternm 0 1\n_crypto_box_curve25519xchacha20poly1305_keypair 0 1\n_crypto_box_curve25519xchacha20poly1305_macbytes 0 1\n_crypto_box_curve25519xchacha20poly1305_messagebytes_max 0 1\n_crypto_box_curve25519xchacha20poly1305_noncebytes 0 1\n_crypto_box_curve25519xchacha20poly1305_open_detached 0 1\n_crypto_box_curve25519xchacha20poly1305_open_detached_afternm 0 1\n_crypto_box_curve25519xchacha20poly1305_open_easy 0 1\n_crypto_box_curve25519xchacha20poly1305_open_easy_afternm 0 1\n_crypto_box_curve25519xchacha20poly1305_publickeybytes 0 1\n_crypto_box_curve25519xchacha20poly1305_seal 0 1\n_crypto_box_curve25519xchacha20poly1305_seal_open 0 1\n_crypto_box_curve25519xchacha20poly1305_sealbytes 0 1\n_crypto_box_curve25519xchacha20poly1305_secretkeybytes 0 1\n_crypto_box_curve25519xchacha20poly1305_seed_keypair 0 1\n_crypto_box_curve25519xchacha20poly1305_seedbytes 0 1\n_crypto_box_curve25519xsalsa20poly1305 0 1\n_crypto_box_curve25519xsalsa20poly1305_afternm 0 1\n_crypto_box_curve25519xsalsa20poly1305_beforenm 0 1\n_crypto_box_curve25519xsalsa20poly1305_beforenmbytes 0 1\n_crypto_box_curve25519xsalsa20poly1305_boxzerobytes 0 1\n_crypto_box_curve25519xsalsa20poly1305_keypair 0 1\n_crypto_box_curve25519xsalsa20poly1305_macbytes 0 1\n_crypto_box_curve25519xsalsa20poly1305_messagebytes_max 0 1\n_crypto_box_curve25519xsalsa20poly1305_noncebytes 0 1\n_crypto_box_curve25519xsalsa20poly1305_open 0 1\n_crypto_box_curve25519xsalsa20poly1305_open_afternm 0 1\n_crypto_box_curve25519xsalsa20poly1305_publickeybytes 0 1\n_crypto_box_curve25519xsalsa20poly1305_secretkeybytes 0 1\n_crypto_box_curve25519xsalsa20poly1305_seed_keypair 0 1\n_crypto_box_curve25519xsalsa20poly1305_seedbytes 0 1\n_crypto_box_curve25519xsalsa20poly1305_zerobytes 0 1\n_crypto_box_detached 1 1\n_crypto_box_detached_afternm 1 1\n_crypto_box_easy 1 1\n_crypto_box_easy_afternm 1 1\n_crypto_box_keypair 1 1\n_crypto_box_macbytes 1 1\n_crypto_box_messagebytes_max 1 1\n_crypto_box_noncebytes 1 1\n_crypto_box_open 0 1\n_crypto_box_open_afternm 0 1\n_crypto_box_open_detached 1 1\n_crypto_box_open_detached_afternm 1 1\n_crypto_box_open_easy 1 1\n_crypto_box_open_easy_afternm 1 1\n_crypto_box_primitive 0 1\n_crypto_box_publickeybytes 1 1\n_crypto_box_seal 1 1\n_crypto_box_seal_open 1 1\n_crypto_box_sealbytes 1 1\n_crypto_box_secretkeybytes 1 1\n_crypto_box_seed_keypair 1 1\n_crypto_box_seedbytes 1 1\n_crypto_box_zerobytes 0 1\n_crypto_core_ed25519_add 0 1\n_crypto_core_ed25519_bytes 0 1\n_crypto_core_ed25519_from_string_nu 0 1\n_crypto_core_ed25519_from_string 0 1\n_crypto_core_ed25519_hashbytes 0 1\n_crypto_core_ed25519_is_valid_point 0 1\n_crypto_core_ed25519_nonreducedscalarbytes 0 1\n_crypto_core_ed25519_random 0 1\n_crypto_core_ed25519_scalar_add 0 1\n_crypto_core_ed25519_scalar_complement 0 1\n_crypto_core_ed25519_scalar_from_string 0 1\n_crypto_core_ed25519_scalar_invert 0 1\n_crypto_core_ed25519_scalar_is_canonical 0 1\n_crypto_core_ed25519_scalar_mul 0 1\n_crypto_core_ed25519_scalar_negate 0 1\n_crypto_core_ed25519_scalar_random 0 1\n_crypto_core_ed25519_scalar_reduce 0 1\n_crypto_core_ed25519_scalar_sub 0 1\n_crypto_core_ed25519_scalarbytes 0 1\n_crypto_core_ed25519_sub 0 1\n_crypto_core_ed25519_uniformbytes 0 1\n_crypto_core_hchacha20 0 1\n_crypto_core_hchacha20_constbytes 0 1\n_crypto_core_hchacha20_inputbytes 0 1\n_crypto_core_hchacha20_keybytes 0 1\n_crypto_core_hchacha20_outputbytes 0 1\n_crypto_core_hsalsa20 0 1\n_crypto_core_hsalsa20_constbytes 0 1\n_crypto_core_hsalsa20_inputbytes 0 1\n_crypto_core_hsalsa20_keybytes 0 1\n_crypto_core_hsalsa20_outputbytes 0 1\n_crypto_core_keccak1600_extract_bytes 0 1\n_crypto_core_keccak1600_init 0 1\n_crypto_core_keccak1600_permute_12 0 1\n_crypto_core_keccak1600_permute_24 0 1\n_crypto_core_keccak1600_statebytes 0 1\n_crypto_core_keccak1600_xor_bytes 0 1\n_crypto_core_ristretto255_add 0 1\n_crypto_core_ristretto255_bytes 0 1\n_crypto_core_ristretto255_from_hash 0 1\n_crypto_core_ristretto255_from_string 0 1\n_crypto_core_ristretto255_hashbytes 0 1\n_crypto_core_ristretto255_is_valid_point 0 1\n_crypto_core_ristretto255_nonreducedscalarbytes 0 1\n_crypto_core_ristretto255_random 0 1\n_crypto_core_ristretto255_scalar_add 0 1\n_crypto_core_ristretto255_scalar_complement 0 1\n_crypto_core_ristretto255_scalar_from_string 0 1\n_crypto_core_ristretto255_scalar_invert 0 1\n_crypto_core_ristretto255_scalar_is_canonical 0 1\n_crypto_core_ristretto255_scalar_mul 0 1\n_crypto_core_ristretto255_scalar_negate 0 1\n_crypto_core_ristretto255_scalar_random 0 1\n_crypto_core_ristretto255_scalar_reduce 0 1\n_crypto_core_ristretto255_scalar_sub 0 1\n_crypto_core_ristretto255_scalarbytes 0 1\n_crypto_core_ristretto255_sub 0 1\n_crypto_core_ristretto255_uniformbytes 0 1\n_crypto_core_salsa20 0 1\n_crypto_core_salsa20_constbytes 0 1\n_crypto_core_salsa20_inputbytes 0 1\n_crypto_core_salsa20_keybytes 0 1\n_crypto_core_salsa20_outputbytes 0 1\n_crypto_core_salsa2012 0 1\n_crypto_core_salsa2012_constbytes 0 1\n_crypto_core_salsa2012_inputbytes 0 1\n_crypto_core_salsa2012_keybytes 0 1\n_crypto_core_salsa2012_outputbytes 0 1\n_crypto_core_salsa208 0 1\n_crypto_core_salsa208_constbytes 0 1\n_crypto_core_salsa208_inputbytes 0 1\n_crypto_core_salsa208_keybytes 0 1\n_crypto_core_salsa208_outputbytes 0 1\n_crypto_generichash 1 1\n_crypto_generichash_blake2b 0 1\n_crypto_generichash_blake2b_bytes 0 1\n_crypto_generichash_blake2b_bytes_max 0 1\n_crypto_generichash_blake2b_bytes_min 0 1\n_crypto_generichash_blake2b_final 0 1\n_crypto_generichash_blake2b_init 0 1\n_crypto_generichash_blake2b_init_salt_personal 0 1\n_crypto_generichash_blake2b_keybytes 0 1\n_crypto_generichash_blake2b_keybytes_max 0 1\n_crypto_generichash_blake2b_keybytes_min 0 1\n_crypto_generichash_blake2b_keygen 0 1\n_crypto_generichash_blake2b_personalbytes 0 1\n_crypto_generichash_blake2b_salt_personal 0 1\n_crypto_generichash_blake2b_saltbytes 0 1\n_crypto_generichash_blake2b_statebytes 0 1\n_crypto_generichash_blake2b_update 0 1\n_crypto_generichash_bytes 1 1\n_crypto_generichash_bytes_max 1 1\n_crypto_generichash_bytes_min 1 1\n_crypto_generichash_final 1 1\n_crypto_generichash_init 1 1\n_crypto_generichash_keybytes 1 1\n_crypto_generichash_keybytes_max 1 1\n_crypto_generichash_keybytes_min 1 1\n_crypto_generichash_keygen 1 1\n_crypto_generichash_primitive 0 1\n_crypto_generichash_statebytes 1 1\n_crypto_generichash_update 1 1\n_crypto_hash 1 1\n_crypto_hash_bytes 1 1\n_crypto_hash_primitive 0 1\n_crypto_hash_sha256 0 1\n_crypto_hash_sha256_bytes 0 1\n_crypto_hash_sha256_final 0 1\n_crypto_hash_sha256_init 0 1\n_crypto_hash_sha256_statebytes 0 1\n_crypto_hash_sha256_update 0 1\n_crypto_hash_sha3256 0 1\n_crypto_hash_sha3256_bytes 0 1\n_crypto_hash_sha3256_init 0 1\n_crypto_hash_sha3256_update 0 1\n_crypto_hash_sha3256_final 0 1\n_crypto_hash_sha3256_statebytes 0 1\n_crypto_hash_sha3512 0 1\n_crypto_hash_sha3512_bytes 0 1\n_crypto_hash_sha3512_init 0 1\n_crypto_hash_sha3512_update 0 1\n_crypto_hash_sha3512_final 0 1\n_crypto_hash_sha3512_statebytes 0 1\n_crypto_hash_sha512 0 1\n_crypto_hash_sha512_bytes 0 1\n_crypto_hash_sha512_final 0 1\n_crypto_hash_sha512_init 0 1\n_crypto_hash_sha512_statebytes 0 1\n_crypto_hash_sha512_update 0 1\n_crypto_ipcrypt_bytes 1 1\n_crypto_ipcrypt_decrypt 1 1\n_crypto_ipcrypt_encrypt 1 1\n_crypto_ipcrypt_keybytes 1 1\n_crypto_ipcrypt_keygen 1 1\n_crypto_ipcrypt_nd_decrypt 1 1\n_crypto_ipcrypt_nd_encrypt 1 1\n_crypto_ipcrypt_nd_inputbytes 1 1\n_crypto_ipcrypt_nd_keybytes 1 1\n_crypto_ipcrypt_nd_keygen 1 1\n_crypto_ipcrypt_nd_outputbytes 1 1\n_crypto_ipcrypt_nd_tweakbytes 1 1\n_crypto_ipcrypt_ndx_decrypt 1 1\n_crypto_ipcrypt_ndx_encrypt 1 1\n_crypto_ipcrypt_ndx_inputbytes 1 1\n_crypto_ipcrypt_ndx_keybytes 1 1\n_crypto_ipcrypt_ndx_keygen 1 1\n_crypto_ipcrypt_ndx_outputbytes 1 1\n_crypto_ipcrypt_ndx_tweakbytes 1 1\n_crypto_ipcrypt_pfx_bytes 1 1\n_crypto_ipcrypt_pfx_decrypt 1 1\n_crypto_ipcrypt_pfx_encrypt 1 1\n_crypto_ipcrypt_pfx_keybytes 1 1\n_crypto_ipcrypt_pfx_keygen 1 1\n_crypto_kdf_blake2b_bytes_max 0 1\n_crypto_kdf_blake2b_bytes_min 0 1\n_crypto_kdf_blake2b_contextbytes 0 1\n_crypto_kdf_blake2b_derive_from_key 0 1\n_crypto_kdf_blake2b_keybytes 0 1\n_crypto_kdf_bytes_max 1 1\n_crypto_kdf_bytes_min 1 1\n_crypto_kdf_contextbytes 1 1\n_crypto_kdf_derive_from_key 1 1\n_crypto_kdf_hkdf_sha256_bytes_max 1 1\n_crypto_kdf_hkdf_sha256_bytes_min 1 1\n_crypto_kdf_hkdf_sha256_expand 1 1\n_crypto_kdf_hkdf_sha256_extract 1 1\n_crypto_kdf_hkdf_sha256_extract_final 1 1\n_crypto_kdf_hkdf_sha256_extract_init 1 1\n_crypto_kdf_hkdf_sha256_extract_update 1 1\n_crypto_kdf_hkdf_sha256_keybytes 1 1\n_crypto_kdf_hkdf_sha256_keygen 1 1\n_crypto_kdf_hkdf_sha256_statebytes 1 1\n_crypto_kdf_hkdf_sha512_bytes_max 1 1\n_crypto_kdf_hkdf_sha512_bytes_min 1 1\n_crypto_kdf_hkdf_sha512_expand 1 1\n_crypto_kdf_hkdf_sha512_extract 1 1\n_crypto_kdf_hkdf_sha512_extract_final 1 1\n_crypto_kdf_hkdf_sha512_extract_init 1 1\n_crypto_kdf_hkdf_sha512_extract_update 1 1\n_crypto_kdf_hkdf_sha512_keybytes 1 1\n_crypto_kdf_hkdf_sha512_keygen 1 1\n_crypto_kdf_hkdf_sha512_statebytes 1 1\n_crypto_kdf_keybytes 1 1\n_crypto_kdf_keygen 1 1\n_crypto_kdf_primitive 0 1\n_crypto_kem_ciphertextbytes 1 1\n_crypto_kem_dec 1 1\n_crypto_kem_enc 1 1\n_crypto_kem_enc_deterministic 1 1\n_crypto_kem_keypair 1 1\n_crypto_kem_primitive 1 1\n_crypto_kem_publickeybytes 1 1\n_crypto_kem_secretkeybytes 1 1\n_crypto_kem_seed_keypair 1 1\n_crypto_kem_seedbytes 1 1\n_crypto_kem_sharedsecretbytes 1 1\n_crypto_kem_mlkem768_ciphertextbytes 1 0\n_crypto_kem_mlkem768_dec 1 0\n_crypto_kem_mlkem768_enc 1 0\n_crypto_kem_mlkem768_enc_deterministic 1 0\n_crypto_kem_mlkem768_keypair 1 0\n_crypto_kem_mlkem768_publickeybytes 1 0\n_crypto_kem_mlkem768_secretkeybytes 1 0\n_crypto_kem_mlkem768_seed_keypair 1 0\n_crypto_kem_mlkem768_seedbytes 1 0\n_crypto_kem_mlkem768_sharedsecretbytes 1 0\n_crypto_kem_xwing_ciphertextbytes 1 0\n_crypto_kem_xwing_dec 1 0\n_crypto_kem_xwing_enc 1 0\n_crypto_kem_xwing_enc_deterministic 1 0\n_crypto_kem_xwing_keypair 1 0\n_crypto_kem_xwing_publickeybytes 1 0\n_crypto_kem_xwing_secretkeybytes 1 0\n_crypto_kem_xwing_seed_keypair 1 0\n_crypto_kem_xwing_seedbytes 1 0\n_crypto_kem_xwing_sharedsecretbytes 1 0\n_crypto_kx_client_session_keys 1 1\n_crypto_kx_keypair 1 1\n_crypto_kx_primitive 0 1\n_crypto_kx_publickeybytes 1 1\n_crypto_kx_secretkeybytes 1 1\n_crypto_kx_seed_keypair 1 1\n_crypto_kx_seedbytes 1 1\n_crypto_kx_server_session_keys 1 1\n_crypto_kx_sessionkeybytes 1 1\n_crypto_onetimeauth 0 1\n_crypto_onetimeauth_bytes 0 1\n_crypto_onetimeauth_final 0 1\n_crypto_onetimeauth_init 0 1\n_crypto_onetimeauth_keybytes 0 1\n_crypto_onetimeauth_keygen 0 1\n_crypto_onetimeauth_poly1305 0 1\n_crypto_onetimeauth_poly1305_bytes 0 1\n_crypto_onetimeauth_poly1305_final 0 1\n_crypto_onetimeauth_poly1305_init 0 1\n_crypto_onetimeauth_poly1305_keybytes 0 1\n_crypto_onetimeauth_poly1305_keygen 0 1\n_crypto_onetimeauth_poly1305_statebytes 0 1\n_crypto_onetimeauth_poly1305_update 0 1\n_crypto_onetimeauth_poly1305_verify 0 1\n_crypto_onetimeauth_primitive 0 1\n_crypto_onetimeauth_statebytes 0 1\n_crypto_onetimeauth_update 0 1\n_crypto_onetimeauth_verify 0 1\n_crypto_pwhash 0 1\n_crypto_pwhash_alg_argon2i13 0 1\n_crypto_pwhash_alg_argon2id13 0 1\n_crypto_pwhash_alg_default 0 1\n_crypto_pwhash_argon2i 0 1\n_crypto_pwhash_argon2i_alg_argon2i13 0 1\n_crypto_pwhash_argon2i_bytes_max 0 1\n_crypto_pwhash_argon2i_bytes_min 0 1\n_crypto_pwhash_argon2i_memlimit_interactive 0 1\n_crypto_pwhash_argon2i_memlimit_max 0 1\n_crypto_pwhash_argon2i_memlimit_min 0 1\n_crypto_pwhash_argon2i_memlimit_moderate 0 1\n_crypto_pwhash_argon2i_memlimit_sensitive 0 1\n_crypto_pwhash_argon2i_opslimit_interactive 0 1\n_crypto_pwhash_argon2i_opslimit_max 0 1\n_crypto_pwhash_argon2i_opslimit_min 0 1\n_crypto_pwhash_argon2i_opslimit_moderate 0 1\n_crypto_pwhash_argon2i_opslimit_sensitive 0 1\n_crypto_pwhash_argon2i_passwd_max 0 1\n_crypto_pwhash_argon2i_passwd_min 0 1\n_crypto_pwhash_argon2i_saltbytes 0 1\n_crypto_pwhash_argon2i_str 0 1\n_crypto_pwhash_argon2i_str_needs_rehash 0 1\n_crypto_pwhash_argon2i_str_verify 0 1\n_crypto_pwhash_argon2i_strbytes 0 1\n_crypto_pwhash_argon2i_strprefix 0 1\n_crypto_pwhash_argon2id 0 1\n_crypto_pwhash_argon2id_alg_argon2id13 0 1\n_crypto_pwhash_argon2id_bytes_max 0 1\n_crypto_pwhash_argon2id_bytes_min 0 1\n_crypto_pwhash_argon2id_memlimit_interactive 0 1\n_crypto_pwhash_argon2id_memlimit_max 0 1\n_crypto_pwhash_argon2id_memlimit_min 0 1\n_crypto_pwhash_argon2id_memlimit_moderate 0 1\n_crypto_pwhash_argon2id_memlimit_sensitive 0 1\n_crypto_pwhash_argon2id_opslimit_interactive 0 1\n_crypto_pwhash_argon2id_opslimit_max 0 1\n_crypto_pwhash_argon2id_opslimit_min 0 1\n_crypto_pwhash_argon2id_opslimit_moderate 0 1\n_crypto_pwhash_argon2id_opslimit_sensitive 0 1\n_crypto_pwhash_argon2id_passwd_max 0 1\n_crypto_pwhash_argon2id_passwd_min 0 1\n_crypto_pwhash_argon2id_saltbytes 0 1\n_crypto_pwhash_argon2id_str 0 1\n_crypto_pwhash_argon2id_str_needs_rehash 0 1\n_crypto_pwhash_argon2id_str_verify 0 1\n_crypto_pwhash_argon2id_strbytes 0 1\n_crypto_pwhash_argon2id_strprefix 0 1\n_crypto_pwhash_bytes_max 0 1\n_crypto_pwhash_bytes_min 0 1\n_crypto_pwhash_memlimit_interactive 0 1\n_crypto_pwhash_memlimit_max 0 1\n_crypto_pwhash_memlimit_min 0 1\n_crypto_pwhash_memlimit_moderate 0 1\n_crypto_pwhash_memlimit_sensitive 0 1\n_crypto_pwhash_opslimit_interactive 0 1\n_crypto_pwhash_opslimit_max 0 1\n_crypto_pwhash_opslimit_min 0 1\n_crypto_pwhash_opslimit_moderate 0 1\n_crypto_pwhash_opslimit_sensitive 0 1\n_crypto_pwhash_passwd_max 0 1\n_crypto_pwhash_passwd_min 0 1\n_crypto_pwhash_primitive 0 1\n_crypto_pwhash_saltbytes 0 1\n_crypto_pwhash_scryptsalsa208sha256 0 1\n_crypto_pwhash_scryptsalsa208sha256_bytes_max 0 1\n_crypto_pwhash_scryptsalsa208sha256_bytes_min 0 1\n_crypto_pwhash_scryptsalsa208sha256_ll 0 1\n_crypto_pwhash_scryptsalsa208sha256_memlimit_interactive 0 1\n_crypto_pwhash_scryptsalsa208sha256_memlimit_max 0 1\n_crypto_pwhash_scryptsalsa208sha256_memlimit_min 0 1\n_crypto_pwhash_scryptsalsa208sha256_memlimit_sensitive 0 1\n_crypto_pwhash_scryptsalsa208sha256_opslimit_interactive 0 1\n_crypto_pwhash_scryptsalsa208sha256_opslimit_max 0 1\n_crypto_pwhash_scryptsalsa208sha256_opslimit_min 0 1\n_crypto_pwhash_scryptsalsa208sha256_opslimit_sensitive 0 1\n_crypto_pwhash_scryptsalsa208sha256_passwd_max 0 1\n_crypto_pwhash_scryptsalsa208sha256_passwd_min 0 1\n_crypto_pwhash_scryptsalsa208sha256_saltbytes 0 1\n_crypto_pwhash_scryptsalsa208sha256_str 0 1\n_crypto_pwhash_scryptsalsa208sha256_str_needs_rehash 0 1\n_crypto_pwhash_scryptsalsa208sha256_str_verify 0 1\n_crypto_pwhash_scryptsalsa208sha256_strbytes 0 1\n_crypto_pwhash_scryptsalsa208sha256_strprefix 0 1\n_crypto_pwhash_str 0 1\n_crypto_pwhash_str_alg 0 1\n_crypto_pwhash_str_needs_rehash 0 1\n_crypto_pwhash_str_verify 0 1\n_crypto_pwhash_strbytes 0 1\n_crypto_pwhash_strprefix 0 1\n_crypto_scalarmult 1 1\n_crypto_scalarmult_base 1 1\n_crypto_scalarmult_bytes 1 1\n_crypto_scalarmult_curve25519 0 1\n_crypto_scalarmult_curve25519_base 0 1\n_crypto_scalarmult_curve25519_bytes 0 1\n_crypto_scalarmult_curve25519_scalarbytes 0 1\n_crypto_scalarmult_ed25519 0 1\n_crypto_scalarmult_ed25519_base 0 1\n_crypto_scalarmult_ed25519_base_noclamp 0 1\n_crypto_scalarmult_ed25519_bytes 0 1\n_crypto_scalarmult_ed25519_noclamp 0 1\n_crypto_scalarmult_ed25519_scalarbytes 0 1\n_crypto_scalarmult_primitive 0 1\n_crypto_scalarmult_ristretto255 0 1\n_crypto_scalarmult_ristretto255_base 0 1\n_crypto_scalarmult_ristretto255_bytes 0 1\n_crypto_scalarmult_ristretto255_scalarbytes 0 1\n_crypto_scalarmult_scalarbytes 1 1\n_crypto_secretbox 0 1\n_crypto_secretbox_boxzerobytes 0 1\n_crypto_secretbox_detached 1 1\n_crypto_secretbox_easy 1 1\n_crypto_secretbox_keybytes 1 1\n_crypto_secretbox_keygen 1 1\n_crypto_secretbox_macbytes 1 1\n_crypto_secretbox_messagebytes_max 1 1\n_crypto_secretbox_noncebytes 1 1\n_crypto_secretbox_open 0 1\n_crypto_secretbox_open_detached 1 1\n_crypto_secretbox_open_easy 1 1\n_crypto_secretbox_primitive 0 1\n_crypto_secretbox_xchacha20poly1305_detached 0 1\n_crypto_secretbox_xchacha20poly1305_easy 0 1\n_crypto_secretbox_xchacha20poly1305_keybytes 0 1\n_crypto_secretbox_xchacha20poly1305_macbytes 0 1\n_crypto_secretbox_xchacha20poly1305_messagebytes_max 0 1\n_crypto_secretbox_xchacha20poly1305_noncebytes 0 1\n_crypto_secretbox_xchacha20poly1305_open_detached 0 1\n_crypto_secretbox_xchacha20poly1305_open_easy 0 1\n_crypto_secretbox_xsalsa20poly1305 0 1\n_crypto_secretbox_xsalsa20poly1305_boxzerobytes 0 1\n_crypto_secretbox_xsalsa20poly1305_keybytes 0 1\n_crypto_secretbox_xsalsa20poly1305_keygen 0 1\n_crypto_secretbox_xsalsa20poly1305_macbytes 0 1\n_crypto_secretbox_xsalsa20poly1305_messagebytes_max 0 1\n_crypto_secretbox_xsalsa20poly1305_noncebytes 0 1\n_crypto_secretbox_xsalsa20poly1305_open 0 1\n_crypto_secretbox_xsalsa20poly1305_zerobytes 0 1\n_crypto_secretbox_zerobytes 0 1\n_crypto_secretstream_xchacha20poly1305_abytes 1 1\n_crypto_secretstream_xchacha20poly1305_headerbytes 1 1\n_crypto_secretstream_xchacha20poly1305_init_pull 1 1\n_crypto_secretstream_xchacha20poly1305_init_push 1 1\n_crypto_secretstream_xchacha20poly1305_keybytes 1 1\n_crypto_secretstream_xchacha20poly1305_keygen 1 1\n_crypto_secretstream_xchacha20poly1305_messagebytes_max 1 1\n_crypto_secretstream_xchacha20poly1305_pull 1 1\n_crypto_secretstream_xchacha20poly1305_push 1 1\n_crypto_secretstream_xchacha20poly1305_rekey 1 1\n_crypto_secretstream_xchacha20poly1305_statebytes 1 1\n_crypto_secretstream_xchacha20poly1305_tag_final 1 1\n_crypto_secretstream_xchacha20poly1305_tag_message 1 1\n_crypto_secretstream_xchacha20poly1305_tag_push 1 1\n_crypto_secretstream_xchacha20poly1305_tag_rekey 1 1\n_crypto_shorthash 1 1\n_crypto_shorthash_bytes 1 1\n_crypto_shorthash_keybytes 1 1\n_crypto_shorthash_keygen 1 1\n_crypto_shorthash_primitive 0 1\n_crypto_shorthash_siphash24 0 1\n_crypto_shorthash_siphash24_bytes 0 1\n_crypto_shorthash_siphash24_keybytes 0 1\n_crypto_shorthash_siphashx24 0 1\n_crypto_shorthash_siphashx24_bytes 0 1\n_crypto_shorthash_siphashx24_keybytes 0 1\n_crypto_sign 1 1\n_crypto_sign_bytes 1 1\n_crypto_sign_detached 1 1\n_crypto_sign_ed25519 0 1\n_crypto_sign_ed25519_bytes 0 1\n_crypto_sign_ed25519_detached 0 1\n_crypto_sign_ed25519_keypair 0 1\n_crypto_sign_ed25519_messagebytes_max 0 1\n_crypto_sign_ed25519_open 0 1\n_crypto_sign_ed25519_pk_to_curve25519 1 1\n_crypto_sign_ed25519_publickeybytes 0 1\n_crypto_sign_ed25519_secretkeybytes 0 1\n_crypto_sign_ed25519_seed_keypair 0 1\n_crypto_sign_ed25519_seedbytes 0 1\n_crypto_sign_ed25519_sk_to_curve25519 1 1\n_crypto_sign_ed25519_sk_to_pk 0 1\n_crypto_sign_ed25519_sk_to_seed 0 1\n_crypto_sign_ed25519_verify_detached 0 1\n_crypto_sign_ed25519ph_final_create 0 1\n_crypto_sign_ed25519ph_final_verify 0 1\n_crypto_sign_ed25519ph_init 0 1\n_crypto_sign_ed25519ph_statebytes 0 1\n_crypto_sign_ed25519ph_update 0 1\n_crypto_sign_final_create 1 1\n_crypto_sign_final_verify 1 1\n_crypto_sign_init 1 1\n_crypto_sign_keypair 1 1\n_crypto_sign_messagebytes_max 1 1\n_crypto_sign_open 1 1\n_crypto_sign_primitive 0 1\n_crypto_sign_publickeybytes 1 1\n_crypto_sign_secretkeybytes 1 1\n_crypto_sign_seed_keypair 1 1\n_crypto_sign_seedbytes 1 1\n_crypto_sign_statebytes 1 1\n_crypto_sign_update 1 1\n_crypto_sign_verify_detached 1 1\n_crypto_stream 0 1\n_crypto_stream_chacha20 0 1\n_crypto_stream_chacha20_ietf 0 1\n_crypto_stream_chacha20_ietf_keybytes 0 1\n_crypto_stream_chacha20_ietf_keygen 0 1\n_crypto_stream_chacha20_ietf_messagebytes_max 0 1\n_crypto_stream_chacha20_ietf_noncebytes 0 1\n_crypto_stream_chacha20_ietf_xor 0 1\n_crypto_stream_chacha20_ietf_xor_ic 0 1\n_crypto_stream_chacha20_keybytes 0 1\n_crypto_stream_chacha20_keygen 0 1\n_crypto_stream_chacha20_messagebytes_max 0 1\n_crypto_stream_chacha20_noncebytes 0 1\n_crypto_stream_chacha20_xor 0 1\n_crypto_stream_chacha20_xor_ic 0 1\n_crypto_stream_keybytes 0 1\n_crypto_stream_keygen 0 1\n_crypto_stream_messagebytes_max 0 1\n_crypto_stream_noncebytes 0 1\n_crypto_stream_primitive 0 1\n_crypto_stream_salsa20 0 1\n_crypto_stream_salsa20_keybytes 0 1\n_crypto_stream_salsa20_keygen 0 1\n_crypto_stream_salsa20_messagebytes_max 0 1\n_crypto_stream_salsa20_noncebytes 0 1\n_crypto_stream_salsa20_xor 0 1\n_crypto_stream_salsa20_xor_ic 0 1\n_crypto_stream_salsa2012 0 1\n_crypto_stream_salsa2012_keybytes 0 1\n_crypto_stream_salsa2012_keygen 0 1\n_crypto_stream_salsa2012_messagebytes_max 0 1\n_crypto_stream_salsa2012_noncebytes 0 1\n_crypto_stream_salsa2012_xor 0 1\n_crypto_stream_salsa208 0 1\n_crypto_stream_salsa208_keybytes 0 1\n_crypto_stream_salsa208_keygen 0 1\n_crypto_stream_salsa208_messagebytes_max 0 1\n_crypto_stream_salsa208_noncebytes 0 1\n_crypto_stream_salsa208_xor 0 1\n_crypto_stream_xchacha20 0 1\n_crypto_stream_xchacha20_keybytes 0 1\n_crypto_stream_xchacha20_keygen 0 1\n_crypto_stream_xchacha20_messagebytes_max 0 1\n_crypto_stream_xchacha20_noncebytes 0 1\n_crypto_stream_xchacha20_xor 0 1\n_crypto_stream_xchacha20_xor_ic 0 1\n_crypto_stream_xor 0 1\n_crypto_stream_xsalsa20 0 1\n_crypto_stream_xsalsa20_keybytes 0 1\n_crypto_stream_xsalsa20_keygen 0 1\n_crypto_stream_xsalsa20_messagebytes_max 0 1\n_crypto_stream_xsalsa20_noncebytes 0 1\n_crypto_stream_xsalsa20_xor 0 1\n_crypto_stream_xsalsa20_xor_ic 0 1\n_crypto_verify_16 0 1\n_crypto_verify_16_bytes 0 1\n_crypto_verify_32 0 1\n_crypto_verify_32_bytes 0 1\n_crypto_verify_64 0 1\n_crypto_verify_64_bytes 0 1\n_crypto_xof_shake128 1 1\n_crypto_xof_shake128_blockbytes 1 1\n_crypto_xof_shake128_domain_standard 1 1\n_crypto_xof_shake128_init 1 1\n_crypto_xof_shake128_init_with_domain 1 1\n_crypto_xof_shake128_squeeze 1 1\n_crypto_xof_shake128_statebytes 1 1\n_crypto_xof_shake128_update 1 1\n_crypto_xof_shake256 1 1\n_crypto_xof_shake256_blockbytes 1 1\n_crypto_xof_shake256_domain_standard 1 1\n_crypto_xof_shake256_init 1 1\n_crypto_xof_shake256_init_with_domain 1 1\n_crypto_xof_shake256_squeeze 1 1\n_crypto_xof_shake256_statebytes 1 1\n_crypto_xof_shake256_update 1 1\n_crypto_xof_turboshake128 1 1\n_crypto_xof_turboshake128_blockbytes 1 1\n_crypto_xof_turboshake128_domain_standard 1 1\n_crypto_xof_turboshake128_init 1 1\n_crypto_xof_turboshake128_init_with_domain 1 1\n_crypto_xof_turboshake128_squeeze 1 1\n_crypto_xof_turboshake128_statebytes 1 1\n_crypto_xof_turboshake128_update 1 1\n_crypto_xof_turboshake256 1 1\n_crypto_xof_turboshake256_blockbytes 1 1\n_crypto_xof_turboshake256_domain_standard 1 1\n_crypto_xof_turboshake256_init 1 1\n_crypto_xof_turboshake256_init_with_domain 1 1\n_crypto_xof_turboshake256_squeeze 1 1\n_crypto_xof_turboshake256_statebytes 1 1\n_crypto_xof_turboshake256_update 1 1\n_randombytes 1 1\n_randombytes_buf 1 1\n_randombytes_buf_deterministic 1 1\n_randombytes_close 1 1\n_randombytes_implementation_name 0 1\n_randombytes_random 1 1\n_randombytes_seedbytes 1 1\n_randombytes_set_implementation 0 0\n_randombytes_stir 1 1\n_randombytes_uniform 1 1\n_sodium_add 0 0\n_sodium_allocarray 0 0\n_sodium_base64_encoded_len 1 1\n_sodium_base642bin 1 1\n_sodium_bin2base64 1 1\n_sodium_bin2ip 1 1\n_sodium_bin2hex 1 1\n_sodium_compare 0 0\n_sodium_free 0 0\n_sodium_hex2bin 1 1\n_sodium_increment 0 0\n_sodium_ip2bin 1 1\n_sodium_init 1 1\n_sodium_is_zero 0 0\n_sodium_library_minimal 1 1\n_sodium_library_version_major 1 1\n_sodium_library_version_minor 1 1\n_sodium_malloc 0 0\n_sodium_memcmp 0 0\n_sodium_memzero 0 0\n_sodium_misuse 0 0\n_sodium_mlock 0 0\n_sodium_mprotect_noaccess 0 0\n_sodium_mprotect_readonly 0 0\n_sodium_mprotect_readwrite 0 0\n_sodium_munlock 0 0\n_sodium_pad 1 1\n_sodium_runtime_has_aesni 0 0\n_sodium_runtime_has_armcrypto 0 0\n_sodium_runtime_has_avx 0 0\n_sodium_runtime_has_avx2 0 0\n_sodium_runtime_has_avx512f 0 0\n_sodium_runtime_has_neon 0 0\n_sodium_runtime_has_pclmul 0 0\n_sodium_runtime_has_rdrand 0 0\n_sodium_runtime_has_sse2 0 0\n_sodium_runtime_has_sse3 0 0\n_sodium_runtime_has_sse41 0 0\n_sodium_runtime_has_ssse3 0 0\n_sodium_set_misuse_handler 0 0\n_sodium_stackzero 0 0\n_sodium_sub 0 0\n_sodium_unpad 1 1\n_sodium_version_string 1 1\n"
  },
  {
    "path": "dist-build/emscripten.sh",
    "content": "#! /bin/sh\n\nexport MAKE_FLAGS='-j4'\nexport EXPORTED_FUNCTIONS_STANDARD='[\"_malloc\",\"_free\",\"_crypto_aead_aegis128l_abytes\",\"_crypto_aead_aegis128l_decrypt\",\"_crypto_aead_aegis128l_decrypt_detached\",\"_crypto_aead_aegis128l_encrypt\",\"_crypto_aead_aegis128l_encrypt_detached\",\"_crypto_aead_aegis128l_keybytes\",\"_crypto_aead_aegis128l_keygen\",\"_crypto_aead_aegis128l_messagebytes_max\",\"_crypto_aead_aegis128l_npubbytes\",\"_crypto_aead_aegis128l_nsecbytes\",\"_crypto_aead_aegis256_abytes\",\"_crypto_aead_aegis256_decrypt\",\"_crypto_aead_aegis256_decrypt_detached\",\"_crypto_aead_aegis256_encrypt\",\"_crypto_aead_aegis256_encrypt_detached\",\"_crypto_aead_aegis256_keybytes\",\"_crypto_aead_aegis256_keygen\",\"_crypto_aead_aegis256_messagebytes_max\",\"_crypto_aead_aegis256_npubbytes\",\"_crypto_aead_aegis256_nsecbytes\",\"_crypto_aead_aes256gcm_is_available\",\"_crypto_aead_chacha20poly1305_abytes\",\"_crypto_aead_chacha20poly1305_decrypt\",\"_crypto_aead_chacha20poly1305_decrypt_detached\",\"_crypto_aead_chacha20poly1305_encrypt\",\"_crypto_aead_chacha20poly1305_encrypt_detached\",\"_crypto_aead_chacha20poly1305_ietf_abytes\",\"_crypto_aead_chacha20poly1305_ietf_decrypt\",\"_crypto_aead_chacha20poly1305_ietf_decrypt_detached\",\"_crypto_aead_chacha20poly1305_ietf_encrypt\",\"_crypto_aead_chacha20poly1305_ietf_encrypt_detached\",\"_crypto_aead_chacha20poly1305_ietf_keybytes\",\"_crypto_aead_chacha20poly1305_ietf_keygen\",\"_crypto_aead_chacha20poly1305_ietf_messagebytes_max\",\"_crypto_aead_chacha20poly1305_ietf_npubbytes\",\"_crypto_aead_chacha20poly1305_ietf_nsecbytes\",\"_crypto_aead_chacha20poly1305_keybytes\",\"_crypto_aead_chacha20poly1305_keygen\",\"_crypto_aead_chacha20poly1305_messagebytes_max\",\"_crypto_aead_chacha20poly1305_npubbytes\",\"_crypto_aead_chacha20poly1305_nsecbytes\",\"_crypto_aead_xchacha20poly1305_ietf_abytes\",\"_crypto_aead_xchacha20poly1305_ietf_decrypt\",\"_crypto_aead_xchacha20poly1305_ietf_decrypt_detached\",\"_crypto_aead_xchacha20poly1305_ietf_encrypt\",\"_crypto_aead_xchacha20poly1305_ietf_encrypt_detached\",\"_crypto_aead_xchacha20poly1305_ietf_keybytes\",\"_crypto_aead_xchacha20poly1305_ietf_keygen\",\"_crypto_aead_xchacha20poly1305_ietf_messagebytes_max\",\"_crypto_aead_xchacha20poly1305_ietf_npubbytes\",\"_crypto_aead_xchacha20poly1305_ietf_nsecbytes\",\"_crypto_auth\",\"_crypto_auth_bytes\",\"_crypto_auth_keybytes\",\"_crypto_auth_keygen\",\"_crypto_auth_verify\",\"_crypto_box_beforenm\",\"_crypto_box_beforenmbytes\",\"_crypto_box_detached\",\"_crypto_box_detached_afternm\",\"_crypto_box_easy\",\"_crypto_box_easy_afternm\",\"_crypto_box_keypair\",\"_crypto_box_macbytes\",\"_crypto_box_messagebytes_max\",\"_crypto_box_noncebytes\",\"_crypto_box_open_detached\",\"_crypto_box_open_detached_afternm\",\"_crypto_box_open_easy\",\"_crypto_box_open_easy_afternm\",\"_crypto_box_publickeybytes\",\"_crypto_box_seal\",\"_crypto_box_seal_open\",\"_crypto_box_sealbytes\",\"_crypto_box_secretkeybytes\",\"_crypto_box_seed_keypair\",\"_crypto_box_seedbytes\",\"_crypto_generichash\",\"_crypto_generichash_bytes\",\"_crypto_generichash_bytes_max\",\"_crypto_generichash_bytes_min\",\"_crypto_generichash_final\",\"_crypto_generichash_init\",\"_crypto_generichash_keybytes\",\"_crypto_generichash_keybytes_max\",\"_crypto_generichash_keybytes_min\",\"_crypto_generichash_keygen\",\"_crypto_generichash_statebytes\",\"_crypto_generichash_update\",\"_crypto_hash\",\"_crypto_hash_bytes\",\"_crypto_ipcrypt_bytes\",\"_crypto_ipcrypt_decrypt\",\"_crypto_ipcrypt_encrypt\",\"_crypto_ipcrypt_keybytes\",\"_crypto_ipcrypt_keygen\",\"_crypto_ipcrypt_nd_decrypt\",\"_crypto_ipcrypt_nd_encrypt\",\"_crypto_ipcrypt_nd_inputbytes\",\"_crypto_ipcrypt_nd_keybytes\",\"_crypto_ipcrypt_nd_keygen\",\"_crypto_ipcrypt_nd_outputbytes\",\"_crypto_ipcrypt_nd_tweakbytes\",\"_crypto_ipcrypt_ndx_decrypt\",\"_crypto_ipcrypt_ndx_encrypt\",\"_crypto_ipcrypt_ndx_inputbytes\",\"_crypto_ipcrypt_ndx_keybytes\",\"_crypto_ipcrypt_ndx_keygen\",\"_crypto_ipcrypt_ndx_outputbytes\",\"_crypto_ipcrypt_ndx_tweakbytes\",\"_crypto_ipcrypt_pfx_bytes\",\"_crypto_ipcrypt_pfx_decrypt\",\"_crypto_ipcrypt_pfx_encrypt\",\"_crypto_ipcrypt_pfx_keybytes\",\"_crypto_ipcrypt_pfx_keygen\",\"_crypto_kdf_bytes_max\",\"_crypto_kdf_bytes_min\",\"_crypto_kdf_contextbytes\",\"_crypto_kdf_derive_from_key\",\"_crypto_kdf_hkdf_sha256_bytes_max\",\"_crypto_kdf_hkdf_sha256_bytes_min\",\"_crypto_kdf_hkdf_sha256_expand\",\"_crypto_kdf_hkdf_sha256_extract\",\"_crypto_kdf_hkdf_sha256_extract_final\",\"_crypto_kdf_hkdf_sha256_extract_init\",\"_crypto_kdf_hkdf_sha256_extract_update\",\"_crypto_kdf_hkdf_sha256_keybytes\",\"_crypto_kdf_hkdf_sha256_keygen\",\"_crypto_kdf_hkdf_sha256_statebytes\",\"_crypto_kdf_hkdf_sha512_bytes_max\",\"_crypto_kdf_hkdf_sha512_bytes_min\",\"_crypto_kdf_hkdf_sha512_expand\",\"_crypto_kdf_hkdf_sha512_extract\",\"_crypto_kdf_hkdf_sha512_extract_final\",\"_crypto_kdf_hkdf_sha512_extract_init\",\"_crypto_kdf_hkdf_sha512_extract_update\",\"_crypto_kdf_hkdf_sha512_keybytes\",\"_crypto_kdf_hkdf_sha512_keygen\",\"_crypto_kdf_hkdf_sha512_statebytes\",\"_crypto_kdf_keybytes\",\"_crypto_kdf_keygen\",\"_crypto_kem_ciphertextbytes\",\"_crypto_kem_dec\",\"_crypto_kem_enc\",\"_crypto_kem_keypair\",\"_crypto_kem_mlkem768_ciphertextbytes\",\"_crypto_kem_mlkem768_dec\",\"_crypto_kem_mlkem768_enc\",\"_crypto_kem_mlkem768_enc_deterministic\",\"_crypto_kem_mlkem768_keypair\",\"_crypto_kem_mlkem768_publickeybytes\",\"_crypto_kem_mlkem768_secretkeybytes\",\"_crypto_kem_mlkem768_seed_keypair\",\"_crypto_kem_mlkem768_seedbytes\",\"_crypto_kem_mlkem768_sharedsecretbytes\",\"_crypto_kem_primitive\",\"_crypto_kem_publickeybytes\",\"_crypto_kem_secretkeybytes\",\"_crypto_kem_seed_keypair\",\"_crypto_kem_seedbytes\",\"_crypto_kem_sharedsecretbytes\",\"_crypto_kem_xwing_ciphertextbytes\",\"_crypto_kem_xwing_dec\",\"_crypto_kem_xwing_enc\",\"_crypto_kem_xwing_enc_deterministic\",\"_crypto_kem_xwing_keypair\",\"_crypto_kem_xwing_publickeybytes\",\"_crypto_kem_xwing_secretkeybytes\",\"_crypto_kem_xwing_seed_keypair\",\"_crypto_kem_xwing_seedbytes\",\"_crypto_kem_xwing_sharedsecretbytes\",\"_crypto_kx_client_session_keys\",\"_crypto_kx_keypair\",\"_crypto_kx_publickeybytes\",\"_crypto_kx_secretkeybytes\",\"_crypto_kx_seed_keypair\",\"_crypto_kx_seedbytes\",\"_crypto_kx_server_session_keys\",\"_crypto_kx_sessionkeybytes\",\"_crypto_scalarmult\",\"_crypto_scalarmult_base\",\"_crypto_scalarmult_bytes\",\"_crypto_scalarmult_scalarbytes\",\"_crypto_secretbox_detached\",\"_crypto_secretbox_easy\",\"_crypto_secretbox_keybytes\",\"_crypto_secretbox_keygen\",\"_crypto_secretbox_macbytes\",\"_crypto_secretbox_messagebytes_max\",\"_crypto_secretbox_noncebytes\",\"_crypto_secretbox_open_detached\",\"_crypto_secretbox_open_easy\",\"_crypto_secretstream_xchacha20poly1305_abytes\",\"_crypto_secretstream_xchacha20poly1305_headerbytes\",\"_crypto_secretstream_xchacha20poly1305_init_pull\",\"_crypto_secretstream_xchacha20poly1305_init_push\",\"_crypto_secretstream_xchacha20poly1305_keybytes\",\"_crypto_secretstream_xchacha20poly1305_keygen\",\"_crypto_secretstream_xchacha20poly1305_messagebytes_max\",\"_crypto_secretstream_xchacha20poly1305_pull\",\"_crypto_secretstream_xchacha20poly1305_push\",\"_crypto_secretstream_xchacha20poly1305_rekey\",\"_crypto_secretstream_xchacha20poly1305_statebytes\",\"_crypto_secretstream_xchacha20poly1305_tag_final\",\"_crypto_secretstream_xchacha20poly1305_tag_message\",\"_crypto_secretstream_xchacha20poly1305_tag_push\",\"_crypto_secretstream_xchacha20poly1305_tag_rekey\",\"_crypto_shorthash\",\"_crypto_shorthash_bytes\",\"_crypto_shorthash_keybytes\",\"_crypto_shorthash_keygen\",\"_crypto_sign\",\"_crypto_sign_bytes\",\"_crypto_sign_detached\",\"_crypto_sign_ed25519_pk_to_curve25519\",\"_crypto_sign_ed25519_sk_to_curve25519\",\"_crypto_sign_final_create\",\"_crypto_sign_final_verify\",\"_crypto_sign_init\",\"_crypto_sign_keypair\",\"_crypto_sign_messagebytes_max\",\"_crypto_sign_open\",\"_crypto_sign_publickeybytes\",\"_crypto_sign_secretkeybytes\",\"_crypto_sign_seed_keypair\",\"_crypto_sign_seedbytes\",\"_crypto_sign_statebytes\",\"_crypto_sign_update\",\"_crypto_sign_verify_detached\",\"_crypto_xof_shake128\",\"_crypto_xof_shake128_blockbytes\",\"_crypto_xof_shake128_domain_standard\",\"_crypto_xof_shake128_init\",\"_crypto_xof_shake128_init_with_domain\",\"_crypto_xof_shake128_squeeze\",\"_crypto_xof_shake128_statebytes\",\"_crypto_xof_shake128_update\",\"_crypto_xof_shake256\",\"_crypto_xof_shake256_blockbytes\",\"_crypto_xof_shake256_domain_standard\",\"_crypto_xof_shake256_init\",\"_crypto_xof_shake256_init_with_domain\",\"_crypto_xof_shake256_squeeze\",\"_crypto_xof_shake256_statebytes\",\"_crypto_xof_shake256_update\",\"_crypto_xof_turboshake128\",\"_crypto_xof_turboshake128_blockbytes\",\"_crypto_xof_turboshake128_domain_standard\",\"_crypto_xof_turboshake128_init\",\"_crypto_xof_turboshake128_init_with_domain\",\"_crypto_xof_turboshake128_squeeze\",\"_crypto_xof_turboshake128_statebytes\",\"_crypto_xof_turboshake128_update\",\"_crypto_xof_turboshake256\",\"_crypto_xof_turboshake256_blockbytes\",\"_crypto_xof_turboshake256_domain_standard\",\"_crypto_xof_turboshake256_init\",\"_crypto_xof_turboshake256_init_with_domain\",\"_crypto_xof_turboshake256_squeeze\",\"_crypto_xof_turboshake256_statebytes\",\"_crypto_xof_turboshake256_update\",\"_randombytes\",\"_randombytes_buf\",\"_randombytes_buf_deterministic\",\"_randombytes_close\",\"_randombytes_random\",\"_randombytes_seedbytes\",\"_randombytes_stir\",\"_randombytes_uniform\",\"_sodium_base64_encoded_len\",\"_sodium_base642bin\",\"_sodium_bin2base64\",\"_sodium_bin2hex\",\"_sodium_bin2ip\",\"_sodium_hex2bin\",\"_sodium_init\",\"_sodium_ip2bin\",\"_sodium_library_minimal\",\"_sodium_library_version_major\",\"_sodium_library_version_minor\",\"_sodium_pad\",\"_sodium_unpad\",\"_sodium_version_string\"]'\nexport EXPORTED_FUNCTIONS_SUMO='[\"_malloc\",\"_free\",\"_crypto_aead_aegis128l_abytes\",\"_crypto_aead_aegis128l_decrypt\",\"_crypto_aead_aegis128l_decrypt_detached\",\"_crypto_aead_aegis128l_encrypt\",\"_crypto_aead_aegis128l_encrypt_detached\",\"_crypto_aead_aegis128l_keybytes\",\"_crypto_aead_aegis128l_keygen\",\"_crypto_aead_aegis128l_messagebytes_max\",\"_crypto_aead_aegis128l_npubbytes\",\"_crypto_aead_aegis128l_nsecbytes\",\"_crypto_aead_aegis256_abytes\",\"_crypto_aead_aegis256_decrypt\",\"_crypto_aead_aegis256_decrypt_detached\",\"_crypto_aead_aegis256_encrypt\",\"_crypto_aead_aegis256_encrypt_detached\",\"_crypto_aead_aegis256_keybytes\",\"_crypto_aead_aegis256_keygen\",\"_crypto_aead_aegis256_messagebytes_max\",\"_crypto_aead_aegis256_npubbytes\",\"_crypto_aead_aegis256_nsecbytes\",\"_crypto_aead_aes256gcm_is_available\",\"_crypto_aead_chacha20poly1305_abytes\",\"_crypto_aead_chacha20poly1305_decrypt\",\"_crypto_aead_chacha20poly1305_decrypt_detached\",\"_crypto_aead_chacha20poly1305_encrypt\",\"_crypto_aead_chacha20poly1305_encrypt_detached\",\"_crypto_aead_chacha20poly1305_ietf_abytes\",\"_crypto_aead_chacha20poly1305_ietf_decrypt\",\"_crypto_aead_chacha20poly1305_ietf_decrypt_detached\",\"_crypto_aead_chacha20poly1305_ietf_encrypt\",\"_crypto_aead_chacha20poly1305_ietf_encrypt_detached\",\"_crypto_aead_chacha20poly1305_ietf_keybytes\",\"_crypto_aead_chacha20poly1305_ietf_keygen\",\"_crypto_aead_chacha20poly1305_ietf_messagebytes_max\",\"_crypto_aead_chacha20poly1305_ietf_npubbytes\",\"_crypto_aead_chacha20poly1305_ietf_nsecbytes\",\"_crypto_aead_chacha20poly1305_keybytes\",\"_crypto_aead_chacha20poly1305_keygen\",\"_crypto_aead_chacha20poly1305_messagebytes_max\",\"_crypto_aead_chacha20poly1305_npubbytes\",\"_crypto_aead_chacha20poly1305_nsecbytes\",\"_crypto_aead_xchacha20poly1305_ietf_abytes\",\"_crypto_aead_xchacha20poly1305_ietf_decrypt\",\"_crypto_aead_xchacha20poly1305_ietf_decrypt_detached\",\"_crypto_aead_xchacha20poly1305_ietf_encrypt\",\"_crypto_aead_xchacha20poly1305_ietf_encrypt_detached\",\"_crypto_aead_xchacha20poly1305_ietf_keybytes\",\"_crypto_aead_xchacha20poly1305_ietf_keygen\",\"_crypto_aead_xchacha20poly1305_ietf_messagebytes_max\",\"_crypto_aead_xchacha20poly1305_ietf_npubbytes\",\"_crypto_aead_xchacha20poly1305_ietf_nsecbytes\",\"_crypto_auth\",\"_crypto_auth_bytes\",\"_crypto_auth_hmacsha256\",\"_crypto_auth_hmacsha256_bytes\",\"_crypto_auth_hmacsha256_final\",\"_crypto_auth_hmacsha256_init\",\"_crypto_auth_hmacsha256_keybytes\",\"_crypto_auth_hmacsha256_keygen\",\"_crypto_auth_hmacsha256_statebytes\",\"_crypto_auth_hmacsha256_update\",\"_crypto_auth_hmacsha256_verify\",\"_crypto_auth_hmacsha512\",\"_crypto_auth_hmacsha512_bytes\",\"_crypto_auth_hmacsha512_final\",\"_crypto_auth_hmacsha512_init\",\"_crypto_auth_hmacsha512_keybytes\",\"_crypto_auth_hmacsha512_keygen\",\"_crypto_auth_hmacsha512_statebytes\",\"_crypto_auth_hmacsha512_update\",\"_crypto_auth_hmacsha512_verify\",\"_crypto_auth_hmacsha512256\",\"_crypto_auth_hmacsha512256_bytes\",\"_crypto_auth_hmacsha512256_final\",\"_crypto_auth_hmacsha512256_init\",\"_crypto_auth_hmacsha512256_keybytes\",\"_crypto_auth_hmacsha512256_keygen\",\"_crypto_auth_hmacsha512256_statebytes\",\"_crypto_auth_hmacsha512256_update\",\"_crypto_auth_hmacsha512256_verify\",\"_crypto_auth_keybytes\",\"_crypto_auth_keygen\",\"_crypto_auth_primitive\",\"_crypto_auth_verify\",\"_crypto_box\",\"_crypto_box_afternm\",\"_crypto_box_beforenm\",\"_crypto_box_beforenmbytes\",\"_crypto_box_boxzerobytes\",\"_crypto_box_curve25519xchacha20poly1305_beforenm\",\"_crypto_box_curve25519xchacha20poly1305_beforenmbytes\",\"_crypto_box_curve25519xchacha20poly1305_detached\",\"_crypto_box_curve25519xchacha20poly1305_detached_afternm\",\"_crypto_box_curve25519xchacha20poly1305_easy\",\"_crypto_box_curve25519xchacha20poly1305_easy_afternm\",\"_crypto_box_curve25519xchacha20poly1305_keypair\",\"_crypto_box_curve25519xchacha20poly1305_macbytes\",\"_crypto_box_curve25519xchacha20poly1305_messagebytes_max\",\"_crypto_box_curve25519xchacha20poly1305_noncebytes\",\"_crypto_box_curve25519xchacha20poly1305_open_detached\",\"_crypto_box_curve25519xchacha20poly1305_open_detached_afternm\",\"_crypto_box_curve25519xchacha20poly1305_open_easy\",\"_crypto_box_curve25519xchacha20poly1305_open_easy_afternm\",\"_crypto_box_curve25519xchacha20poly1305_publickeybytes\",\"_crypto_box_curve25519xchacha20poly1305_seal\",\"_crypto_box_curve25519xchacha20poly1305_seal_open\",\"_crypto_box_curve25519xchacha20poly1305_sealbytes\",\"_crypto_box_curve25519xchacha20poly1305_secretkeybytes\",\"_crypto_box_curve25519xchacha20poly1305_seed_keypair\",\"_crypto_box_curve25519xchacha20poly1305_seedbytes\",\"_crypto_box_curve25519xsalsa20poly1305\",\"_crypto_box_curve25519xsalsa20poly1305_afternm\",\"_crypto_box_curve25519xsalsa20poly1305_beforenm\",\"_crypto_box_curve25519xsalsa20poly1305_beforenmbytes\",\"_crypto_box_curve25519xsalsa20poly1305_boxzerobytes\",\"_crypto_box_curve25519xsalsa20poly1305_keypair\",\"_crypto_box_curve25519xsalsa20poly1305_macbytes\",\"_crypto_box_curve25519xsalsa20poly1305_messagebytes_max\",\"_crypto_box_curve25519xsalsa20poly1305_noncebytes\",\"_crypto_box_curve25519xsalsa20poly1305_open\",\"_crypto_box_curve25519xsalsa20poly1305_open_afternm\",\"_crypto_box_curve25519xsalsa20poly1305_publickeybytes\",\"_crypto_box_curve25519xsalsa20poly1305_secretkeybytes\",\"_crypto_box_curve25519xsalsa20poly1305_seed_keypair\",\"_crypto_box_curve25519xsalsa20poly1305_seedbytes\",\"_crypto_box_curve25519xsalsa20poly1305_zerobytes\",\"_crypto_box_detached\",\"_crypto_box_detached_afternm\",\"_crypto_box_easy\",\"_crypto_box_easy_afternm\",\"_crypto_box_keypair\",\"_crypto_box_macbytes\",\"_crypto_box_messagebytes_max\",\"_crypto_box_noncebytes\",\"_crypto_box_open\",\"_crypto_box_open_afternm\",\"_crypto_box_open_detached\",\"_crypto_box_open_detached_afternm\",\"_crypto_box_open_easy\",\"_crypto_box_open_easy_afternm\",\"_crypto_box_primitive\",\"_crypto_box_publickeybytes\",\"_crypto_box_seal\",\"_crypto_box_seal_open\",\"_crypto_box_sealbytes\",\"_crypto_box_secretkeybytes\",\"_crypto_box_seed_keypair\",\"_crypto_box_seedbytes\",\"_crypto_box_zerobytes\",\"_crypto_core_ed25519_add\",\"_crypto_core_ed25519_bytes\",\"_crypto_core_ed25519_from_string\",\"_crypto_core_ed25519_from_string_nu\",\"_crypto_core_ed25519_hashbytes\",\"_crypto_core_ed25519_is_valid_point\",\"_crypto_core_ed25519_nonreducedscalarbytes\",\"_crypto_core_ed25519_random\",\"_crypto_core_ed25519_scalar_add\",\"_crypto_core_ed25519_scalar_complement\",\"_crypto_core_ed25519_scalar_from_string\",\"_crypto_core_ed25519_scalar_invert\",\"_crypto_core_ed25519_scalar_is_canonical\",\"_crypto_core_ed25519_scalar_mul\",\"_crypto_core_ed25519_scalar_negate\",\"_crypto_core_ed25519_scalar_random\",\"_crypto_core_ed25519_scalar_reduce\",\"_crypto_core_ed25519_scalar_sub\",\"_crypto_core_ed25519_scalarbytes\",\"_crypto_core_ed25519_sub\",\"_crypto_core_ed25519_uniformbytes\",\"_crypto_core_hchacha20\",\"_crypto_core_hchacha20_constbytes\",\"_crypto_core_hchacha20_inputbytes\",\"_crypto_core_hchacha20_keybytes\",\"_crypto_core_hchacha20_outputbytes\",\"_crypto_core_hsalsa20\",\"_crypto_core_hsalsa20_constbytes\",\"_crypto_core_hsalsa20_inputbytes\",\"_crypto_core_hsalsa20_keybytes\",\"_crypto_core_hsalsa20_outputbytes\",\"_crypto_core_keccak1600_extract_bytes\",\"_crypto_core_keccak1600_init\",\"_crypto_core_keccak1600_permute_12\",\"_crypto_core_keccak1600_permute_24\",\"_crypto_core_keccak1600_statebytes\",\"_crypto_core_keccak1600_xor_bytes\",\"_crypto_core_ristretto255_add\",\"_crypto_core_ristretto255_bytes\",\"_crypto_core_ristretto255_from_hash\",\"_crypto_core_ristretto255_from_string\",\"_crypto_core_ristretto255_hashbytes\",\"_crypto_core_ristretto255_is_valid_point\",\"_crypto_core_ristretto255_nonreducedscalarbytes\",\"_crypto_core_ristretto255_random\",\"_crypto_core_ristretto255_scalar_add\",\"_crypto_core_ristretto255_scalar_complement\",\"_crypto_core_ristretto255_scalar_from_string\",\"_crypto_core_ristretto255_scalar_invert\",\"_crypto_core_ristretto255_scalar_is_canonical\",\"_crypto_core_ristretto255_scalar_mul\",\"_crypto_core_ristretto255_scalar_negate\",\"_crypto_core_ristretto255_scalar_random\",\"_crypto_core_ristretto255_scalar_reduce\",\"_crypto_core_ristretto255_scalar_sub\",\"_crypto_core_ristretto255_scalarbytes\",\"_crypto_core_ristretto255_sub\",\"_crypto_core_salsa20\",\"_crypto_core_salsa20_constbytes\",\"_crypto_core_salsa20_inputbytes\",\"_crypto_core_salsa20_keybytes\",\"_crypto_core_salsa20_outputbytes\",\"_crypto_core_salsa2012\",\"_crypto_core_salsa2012_constbytes\",\"_crypto_core_salsa2012_inputbytes\",\"_crypto_core_salsa2012_keybytes\",\"_crypto_core_salsa2012_outputbytes\",\"_crypto_core_salsa208\",\"_crypto_core_salsa208_constbytes\",\"_crypto_core_salsa208_inputbytes\",\"_crypto_core_salsa208_keybytes\",\"_crypto_core_salsa208_outputbytes\",\"_crypto_generichash\",\"_crypto_generichash_blake2b\",\"_crypto_generichash_blake2b_bytes\",\"_crypto_generichash_blake2b_bytes_max\",\"_crypto_generichash_blake2b_bytes_min\",\"_crypto_generichash_blake2b_final\",\"_crypto_generichash_blake2b_init\",\"_crypto_generichash_blake2b_init_salt_personal\",\"_crypto_generichash_blake2b_keybytes\",\"_crypto_generichash_blake2b_keybytes_max\",\"_crypto_generichash_blake2b_keybytes_min\",\"_crypto_generichash_blake2b_keygen\",\"_crypto_generichash_blake2b_personalbytes\",\"_crypto_generichash_blake2b_salt_personal\",\"_crypto_generichash_blake2b_saltbytes\",\"_crypto_generichash_blake2b_statebytes\",\"_crypto_generichash_blake2b_update\",\"_crypto_generichash_bytes\",\"_crypto_generichash_bytes_max\",\"_crypto_generichash_bytes_min\",\"_crypto_generichash_final\",\"_crypto_generichash_init\",\"_crypto_generichash_keybytes\",\"_crypto_generichash_keybytes_max\",\"_crypto_generichash_keybytes_min\",\"_crypto_generichash_keygen\",\"_crypto_generichash_primitive\",\"_crypto_generichash_statebytes\",\"_crypto_generichash_update\",\"_crypto_hash\",\"_crypto_hash_bytes\",\"_crypto_hash_primitive\",\"_crypto_hash_sha256\",\"_crypto_hash_sha256_bytes\",\"_crypto_hash_sha256_final\",\"_crypto_hash_sha256_init\",\"_crypto_hash_sha256_statebytes\",\"_crypto_hash_sha256_update\",\"_crypto_hash_sha3256\",\"_crypto_hash_sha3256_bytes\",\"_crypto_hash_sha3256_final\",\"_crypto_hash_sha3256_init\",\"_crypto_hash_sha3256_statebytes\",\"_crypto_hash_sha3256_update\",\"_crypto_hash_sha3512\",\"_crypto_hash_sha3512_bytes\",\"_crypto_hash_sha3512_final\",\"_crypto_hash_sha3512_init\",\"_crypto_hash_sha3512_statebytes\",\"_crypto_hash_sha3512_update\",\"_crypto_hash_sha512\",\"_crypto_hash_sha512_bytes\",\"_crypto_hash_sha512_final\",\"_crypto_hash_sha512_init\",\"_crypto_hash_sha512_statebytes\",\"_crypto_hash_sha512_update\",\"_crypto_ipcrypt_bytes\",\"_crypto_ipcrypt_decrypt\",\"_crypto_ipcrypt_encrypt\",\"_crypto_ipcrypt_keybytes\",\"_crypto_ipcrypt_keygen\",\"_crypto_ipcrypt_nd_decrypt\",\"_crypto_ipcrypt_nd_encrypt\",\"_crypto_ipcrypt_nd_inputbytes\",\"_crypto_ipcrypt_nd_keybytes\",\"_crypto_ipcrypt_nd_keygen\",\"_crypto_ipcrypt_nd_outputbytes\",\"_crypto_ipcrypt_nd_tweakbytes\",\"_crypto_ipcrypt_ndx_decrypt\",\"_crypto_ipcrypt_ndx_encrypt\",\"_crypto_ipcrypt_ndx_inputbytes\",\"_crypto_ipcrypt_ndx_keybytes\",\"_crypto_ipcrypt_ndx_keygen\",\"_crypto_ipcrypt_ndx_outputbytes\",\"_crypto_ipcrypt_ndx_tweakbytes\",\"_crypto_ipcrypt_pfx_bytes\",\"_crypto_ipcrypt_pfx_decrypt\",\"_crypto_ipcrypt_pfx_encrypt\",\"_crypto_ipcrypt_pfx_keybytes\",\"_crypto_ipcrypt_pfx_keygen\",\"_crypto_kdf_blake2b_bytes_max\",\"_crypto_kdf_blake2b_bytes_min\",\"_crypto_kdf_blake2b_contextbytes\",\"_crypto_kdf_blake2b_derive_from_key\",\"_crypto_kdf_blake2b_keybytes\",\"_crypto_kdf_bytes_max\",\"_crypto_kdf_bytes_min\",\"_crypto_kdf_contextbytes\",\"_crypto_kdf_derive_from_key\",\"_crypto_kdf_hkdf_sha256_bytes_max\",\"_crypto_kdf_hkdf_sha256_bytes_min\",\"_crypto_kdf_hkdf_sha256_expand\",\"_crypto_kdf_hkdf_sha256_extract\",\"_crypto_kdf_hkdf_sha256_extract_final\",\"_crypto_kdf_hkdf_sha256_extract_init\",\"_crypto_kdf_hkdf_sha256_extract_update\",\"_crypto_kdf_hkdf_sha256_keybytes\",\"_crypto_kdf_hkdf_sha256_keygen\",\"_crypto_kdf_hkdf_sha256_statebytes\",\"_crypto_kdf_hkdf_sha512_bytes_max\",\"_crypto_kdf_hkdf_sha512_bytes_min\",\"_crypto_kdf_hkdf_sha512_expand\",\"_crypto_kdf_hkdf_sha512_extract\",\"_crypto_kdf_hkdf_sha512_extract_final\",\"_crypto_kdf_hkdf_sha512_extract_init\",\"_crypto_kdf_hkdf_sha512_extract_update\",\"_crypto_kdf_hkdf_sha512_keybytes\",\"_crypto_kdf_hkdf_sha512_keygen\",\"_crypto_kdf_hkdf_sha512_statebytes\",\"_crypto_kdf_keybytes\",\"_crypto_kdf_keygen\",\"_crypto_kdf_primitive\",\"_crypto_kem_ciphertextbytes\",\"_crypto_kem_dec\",\"_crypto_kem_enc\",\"_crypto_kem_keypair\",\"_crypto_kem_primitive\",\"_crypto_kem_publickeybytes\",\"_crypto_kem_secretkeybytes\",\"_crypto_kem_seed_keypair\",\"_crypto_kem_seedbytes\",\"_crypto_kem_sharedsecretbytes\",\"_crypto_kx_client_session_keys\",\"_crypto_kx_keypair\",\"_crypto_kx_primitive\",\"_crypto_kx_publickeybytes\",\"_crypto_kx_secretkeybytes\",\"_crypto_kx_seed_keypair\",\"_crypto_kx_seedbytes\",\"_crypto_kx_server_session_keys\",\"_crypto_kx_sessionkeybytes\",\"_crypto_onetimeauth\",\"_crypto_onetimeauth_bytes\",\"_crypto_onetimeauth_final\",\"_crypto_onetimeauth_init\",\"_crypto_onetimeauth_keybytes\",\"_crypto_onetimeauth_keygen\",\"_crypto_onetimeauth_poly1305\",\"_crypto_onetimeauth_poly1305_bytes\",\"_crypto_onetimeauth_poly1305_final\",\"_crypto_onetimeauth_poly1305_init\",\"_crypto_onetimeauth_poly1305_keybytes\",\"_crypto_onetimeauth_poly1305_keygen\",\"_crypto_onetimeauth_poly1305_statebytes\",\"_crypto_onetimeauth_poly1305_update\",\"_crypto_onetimeauth_poly1305_verify\",\"_crypto_onetimeauth_primitive\",\"_crypto_onetimeauth_statebytes\",\"_crypto_onetimeauth_update\",\"_crypto_onetimeauth_verify\",\"_crypto_pwhash\",\"_crypto_pwhash_alg_argon2i13\",\"_crypto_pwhash_alg_argon2id13\",\"_crypto_pwhash_alg_default\",\"_crypto_pwhash_argon2i\",\"_crypto_pwhash_argon2i_alg_argon2i13\",\"_crypto_pwhash_argon2i_bytes_max\",\"_crypto_pwhash_argon2i_bytes_min\",\"_crypto_pwhash_argon2i_memlimit_interactive\",\"_crypto_pwhash_argon2i_memlimit_max\",\"_crypto_pwhash_argon2i_memlimit_min\",\"_crypto_pwhash_argon2i_memlimit_moderate\",\"_crypto_pwhash_argon2i_memlimit_sensitive\",\"_crypto_pwhash_argon2i_opslimit_interactive\",\"_crypto_pwhash_argon2i_opslimit_max\",\"_crypto_pwhash_argon2i_opslimit_min\",\"_crypto_pwhash_argon2i_opslimit_moderate\",\"_crypto_pwhash_argon2i_opslimit_sensitive\",\"_crypto_pwhash_argon2i_passwd_max\",\"_crypto_pwhash_argon2i_passwd_min\",\"_crypto_pwhash_argon2i_saltbytes\",\"_crypto_pwhash_argon2i_str\",\"_crypto_pwhash_argon2i_str_needs_rehash\",\"_crypto_pwhash_argon2i_str_verify\",\"_crypto_pwhash_argon2i_strbytes\",\"_crypto_pwhash_argon2i_strprefix\",\"_crypto_pwhash_argon2id\",\"_crypto_pwhash_argon2id_alg_argon2id13\",\"_crypto_pwhash_argon2id_bytes_max\",\"_crypto_pwhash_argon2id_bytes_min\",\"_crypto_pwhash_argon2id_memlimit_interactive\",\"_crypto_pwhash_argon2id_memlimit_max\",\"_crypto_pwhash_argon2id_memlimit_min\",\"_crypto_pwhash_argon2id_memlimit_moderate\",\"_crypto_pwhash_argon2id_memlimit_sensitive\",\"_crypto_pwhash_argon2id_opslimit_interactive\",\"_crypto_pwhash_argon2id_opslimit_max\",\"_crypto_pwhash_argon2id_opslimit_min\",\"_crypto_pwhash_argon2id_opslimit_moderate\",\"_crypto_pwhash_argon2id_opslimit_sensitive\",\"_crypto_pwhash_argon2id_passwd_max\",\"_crypto_pwhash_argon2id_passwd_min\",\"_crypto_pwhash_argon2id_saltbytes\",\"_crypto_pwhash_argon2id_str\",\"_crypto_pwhash_argon2id_str_needs_rehash\",\"_crypto_pwhash_argon2id_str_verify\",\"_crypto_pwhash_argon2id_strbytes\",\"_crypto_pwhash_argon2id_strprefix\",\"_crypto_pwhash_bytes_max\",\"_crypto_pwhash_bytes_min\",\"_crypto_pwhash_memlimit_interactive\",\"_crypto_pwhash_memlimit_max\",\"_crypto_pwhash_memlimit_min\",\"_crypto_pwhash_memlimit_moderate\",\"_crypto_pwhash_memlimit_sensitive\",\"_crypto_pwhash_opslimit_interactive\",\"_crypto_pwhash_opslimit_max\",\"_crypto_pwhash_opslimit_min\",\"_crypto_pwhash_opslimit_moderate\",\"_crypto_pwhash_opslimit_sensitive\",\"_crypto_pwhash_passwd_max\",\"_crypto_pwhash_passwd_min\",\"_crypto_pwhash_primitive\",\"_crypto_pwhash_saltbytes\",\"_crypto_pwhash_scryptsalsa208sha256\",\"_crypto_pwhash_scryptsalsa208sha256_bytes_max\",\"_crypto_pwhash_scryptsalsa208sha256_bytes_min\",\"_crypto_pwhash_scryptsalsa208sha256_ll\",\"_crypto_pwhash_scryptsalsa208sha256_memlimit_interactive\",\"_crypto_pwhash_scryptsalsa208sha256_memlimit_max\",\"_crypto_pwhash_scryptsalsa208sha256_memlimit_min\",\"_crypto_pwhash_scryptsalsa208sha256_memlimit_sensitive\",\"_crypto_pwhash_scryptsalsa208sha256_opslimit_interactive\",\"_crypto_pwhash_scryptsalsa208sha256_opslimit_max\",\"_crypto_pwhash_scryptsalsa208sha256_opslimit_min\",\"_crypto_pwhash_scryptsalsa208sha256_opslimit_sensitive\",\"_crypto_pwhash_scryptsalsa208sha256_passwd_max\",\"_crypto_pwhash_scryptsalsa208sha256_passwd_min\",\"_crypto_pwhash_scryptsalsa208sha256_saltbytes\",\"_crypto_pwhash_scryptsalsa208sha256_str\",\"_crypto_pwhash_scryptsalsa208sha256_str_needs_rehash\",\"_crypto_pwhash_scryptsalsa208sha256_str_verify\",\"_crypto_pwhash_scryptsalsa208sha256_strbytes\",\"_crypto_pwhash_scryptsalsa208sha256_strprefix\",\"_crypto_pwhash_str\",\"_crypto_pwhash_str_alg\",\"_crypto_pwhash_str_needs_rehash\",\"_crypto_pwhash_str_verify\",\"_crypto_pwhash_strbytes\",\"_crypto_pwhash_strprefix\",\"_crypto_scalarmult\",\"_crypto_scalarmult_base\",\"_crypto_scalarmult_bytes\",\"_crypto_scalarmult_curve25519\",\"_crypto_scalarmult_curve25519_base\",\"_crypto_scalarmult_curve25519_bytes\",\"_crypto_scalarmult_curve25519_scalarbytes\",\"_crypto_scalarmult_ed25519\",\"_crypto_scalarmult_ed25519_base\",\"_crypto_scalarmult_ed25519_base_noclamp\",\"_crypto_scalarmult_ed25519_bytes\",\"_crypto_scalarmult_ed25519_noclamp\",\"_crypto_scalarmult_ed25519_scalarbytes\",\"_crypto_scalarmult_primitive\",\"_crypto_scalarmult_ristretto255\",\"_crypto_scalarmult_ristretto255_base\",\"_crypto_scalarmult_ristretto255_bytes\",\"_crypto_scalarmult_ristretto255_scalarbytes\",\"_crypto_scalarmult_scalarbytes\",\"_crypto_secretbox\",\"_crypto_secretbox_boxzerobytes\",\"_crypto_secretbox_detached\",\"_crypto_secretbox_easy\",\"_crypto_secretbox_keybytes\",\"_crypto_secretbox_keygen\",\"_crypto_secretbox_macbytes\",\"_crypto_secretbox_messagebytes_max\",\"_crypto_secretbox_noncebytes\",\"_crypto_secretbox_open\",\"_crypto_secretbox_open_detached\",\"_crypto_secretbox_open_easy\",\"_crypto_secretbox_primitive\",\"_crypto_secretbox_xchacha20poly1305_detached\",\"_crypto_secretbox_xchacha20poly1305_easy\",\"_crypto_secretbox_xchacha20poly1305_keybytes\",\"_crypto_secretbox_xchacha20poly1305_macbytes\",\"_crypto_secretbox_xchacha20poly1305_messagebytes_max\",\"_crypto_secretbox_xchacha20poly1305_noncebytes\",\"_crypto_secretbox_xchacha20poly1305_open_detached\",\"_crypto_secretbox_xchacha20poly1305_open_easy\",\"_crypto_secretbox_xsalsa20poly1305\",\"_crypto_secretbox_xsalsa20poly1305_boxzerobytes\",\"_crypto_secretbox_xsalsa20poly1305_keybytes\",\"_crypto_secretbox_xsalsa20poly1305_keygen\",\"_crypto_secretbox_xsalsa20poly1305_macbytes\",\"_crypto_secretbox_xsalsa20poly1305_messagebytes_max\",\"_crypto_secretbox_xsalsa20poly1305_noncebytes\",\"_crypto_secretbox_xsalsa20poly1305_open\",\"_crypto_secretbox_xsalsa20poly1305_zerobytes\",\"_crypto_secretbox_zerobytes\",\"_crypto_secretstream_xchacha20poly1305_abytes\",\"_crypto_secretstream_xchacha20poly1305_headerbytes\",\"_crypto_secretstream_xchacha20poly1305_init_pull\",\"_crypto_secretstream_xchacha20poly1305_init_push\",\"_crypto_secretstream_xchacha20poly1305_keybytes\",\"_crypto_secretstream_xchacha20poly1305_keygen\",\"_crypto_secretstream_xchacha20poly1305_messagebytes_max\",\"_crypto_secretstream_xchacha20poly1305_pull\",\"_crypto_secretstream_xchacha20poly1305_push\",\"_crypto_secretstream_xchacha20poly1305_rekey\",\"_crypto_secretstream_xchacha20poly1305_statebytes\",\"_crypto_secretstream_xchacha20poly1305_tag_final\",\"_crypto_secretstream_xchacha20poly1305_tag_message\",\"_crypto_secretstream_xchacha20poly1305_tag_push\",\"_crypto_secretstream_xchacha20poly1305_tag_rekey\",\"_crypto_shorthash\",\"_crypto_shorthash_bytes\",\"_crypto_shorthash_keybytes\",\"_crypto_shorthash_keygen\",\"_crypto_shorthash_primitive\",\"_crypto_shorthash_siphash24\",\"_crypto_shorthash_siphash24_bytes\",\"_crypto_shorthash_siphash24_keybytes\",\"_crypto_shorthash_siphashx24\",\"_crypto_shorthash_siphashx24_bytes\",\"_crypto_shorthash_siphashx24_keybytes\",\"_crypto_sign\",\"_crypto_sign_bytes\",\"_crypto_sign_detached\",\"_crypto_sign_ed25519\",\"_crypto_sign_ed25519_bytes\",\"_crypto_sign_ed25519_detached\",\"_crypto_sign_ed25519_keypair\",\"_crypto_sign_ed25519_messagebytes_max\",\"_crypto_sign_ed25519_open\",\"_crypto_sign_ed25519_pk_to_curve25519\",\"_crypto_sign_ed25519_publickeybytes\",\"_crypto_sign_ed25519_secretkeybytes\",\"_crypto_sign_ed25519_seed_keypair\",\"_crypto_sign_ed25519_seedbytes\",\"_crypto_sign_ed25519_sk_to_curve25519\",\"_crypto_sign_ed25519_sk_to_pk\",\"_crypto_sign_ed25519_sk_to_seed\",\"_crypto_sign_ed25519_verify_detached\",\"_crypto_sign_ed25519ph_final_create\",\"_crypto_sign_ed25519ph_final_verify\",\"_crypto_sign_ed25519ph_init\",\"_crypto_sign_ed25519ph_statebytes\",\"_crypto_sign_ed25519ph_update\",\"_crypto_sign_final_create\",\"_crypto_sign_final_verify\",\"_crypto_sign_init\",\"_crypto_sign_keypair\",\"_crypto_sign_messagebytes_max\",\"_crypto_sign_open\",\"_crypto_sign_primitive\",\"_crypto_sign_publickeybytes\",\"_crypto_sign_secretkeybytes\",\"_crypto_sign_seed_keypair\",\"_crypto_sign_seedbytes\",\"_crypto_sign_statebytes\",\"_crypto_sign_update\",\"_crypto_sign_verify_detached\",\"_crypto_stream\",\"_crypto_stream_chacha20\",\"_crypto_stream_chacha20_ietf\",\"_crypto_stream_chacha20_ietf_keybytes\",\"_crypto_stream_chacha20_ietf_keygen\",\"_crypto_stream_chacha20_ietf_messagebytes_max\",\"_crypto_stream_chacha20_ietf_noncebytes\",\"_crypto_stream_chacha20_ietf_xor\",\"_crypto_stream_chacha20_ietf_xor_ic\",\"_crypto_stream_chacha20_keybytes\",\"_crypto_stream_chacha20_keygen\",\"_crypto_stream_chacha20_messagebytes_max\",\"_crypto_stream_chacha20_noncebytes\",\"_crypto_stream_chacha20_xor\",\"_crypto_stream_chacha20_xor_ic\",\"_crypto_stream_keybytes\",\"_crypto_stream_keygen\",\"_crypto_stream_messagebytes_max\",\"_crypto_stream_noncebytes\",\"_crypto_stream_primitive\",\"_crypto_stream_salsa20\",\"_crypto_stream_salsa20_keybytes\",\"_crypto_stream_salsa20_keygen\",\"_crypto_stream_salsa20_messagebytes_max\",\"_crypto_stream_salsa20_noncebytes\",\"_crypto_stream_salsa20_xor\",\"_crypto_stream_salsa20_xor_ic\",\"_crypto_stream_salsa2012\",\"_crypto_stream_salsa2012_keybytes\",\"_crypto_stream_salsa2012_keygen\",\"_crypto_stream_salsa2012_messagebytes_max\",\"_crypto_stream_salsa2012_noncebytes\",\"_crypto_stream_salsa2012_xor\",\"_crypto_stream_salsa208\",\"_crypto_stream_salsa208_keybytes\",\"_crypto_stream_salsa208_keygen\",\"_crypto_stream_salsa208_messagebytes_max\",\"_crypto_stream_salsa208_noncebytes\",\"_crypto_stream_salsa208_xor\",\"_crypto_stream_xchacha20\",\"_crypto_stream_xchacha20_keybytes\",\"_crypto_stream_xchacha20_keygen\",\"_crypto_stream_xchacha20_messagebytes_max\",\"_crypto_stream_xchacha20_noncebytes\",\"_crypto_stream_xchacha20_xor\",\"_crypto_stream_xchacha20_xor_ic\",\"_crypto_stream_xor\",\"_crypto_stream_xsalsa20\",\"_crypto_stream_xsalsa20_keybytes\",\"_crypto_stream_xsalsa20_keygen\",\"_crypto_stream_xsalsa20_messagebytes_max\",\"_crypto_stream_xsalsa20_noncebytes\",\"_crypto_stream_xsalsa20_xor\",\"_crypto_stream_xsalsa20_xor_ic\",\"_crypto_verify_16\",\"_crypto_verify_16_bytes\",\"_crypto_verify_32\",\"_crypto_verify_32_bytes\",\"_crypto_verify_64\",\"_crypto_verify_64_bytes\",\"_crypto_xof_shake128\",\"_crypto_xof_shake128_blockbytes\",\"_crypto_xof_shake128_domain_standard\",\"_crypto_xof_shake128_init\",\"_crypto_xof_shake128_init_with_domain\",\"_crypto_xof_shake128_squeeze\",\"_crypto_xof_shake128_statebytes\",\"_crypto_xof_shake128_update\",\"_crypto_xof_shake256\",\"_crypto_xof_shake256_blockbytes\",\"_crypto_xof_shake256_domain_standard\",\"_crypto_xof_shake256_init\",\"_crypto_xof_shake256_init_with_domain\",\"_crypto_xof_shake256_squeeze\",\"_crypto_xof_shake256_statebytes\",\"_crypto_xof_shake256_update\",\"_crypto_xof_turboshake128\",\"_crypto_xof_turboshake128_blockbytes\",\"_crypto_xof_turboshake128_domain_standard\",\"_crypto_xof_turboshake128_init\",\"_crypto_xof_turboshake128_init_with_domain\",\"_crypto_xof_turboshake128_squeeze\",\"_crypto_xof_turboshake128_statebytes\",\"_crypto_xof_turboshake128_update\",\"_crypto_xof_turboshake256\",\"_crypto_xof_turboshake256_blockbytes\",\"_crypto_xof_turboshake256_domain_standard\",\"_crypto_xof_turboshake256_init\",\"_crypto_xof_turboshake256_init_with_domain\",\"_crypto_xof_turboshake256_squeeze\",\"_crypto_xof_turboshake256_statebytes\",\"_crypto_xof_turboshake256_update\",\"_randombytes\",\"_randombytes_buf\",\"_randombytes_buf_deterministic\",\"_randombytes_close\",\"_randombytes_implementation_name\",\"_randombytes_random\",\"_randombytes_seedbytes\",\"_randombytes_stir\",\"_randombytes_uniform\",\"_sodium_base64_encoded_len\",\"_sodium_base642bin\",\"_sodium_bin2base64\",\"_sodium_bin2hex\",\"_sodium_bin2ip\",\"_sodium_hex2bin\",\"_sodium_init\",\"_sodium_ip2bin\",\"_sodium_library_minimal\",\"_sodium_library_version_major\",\"_sodium_library_version_minor\",\"_sodium_pad\",\"_sodium_unpad\",\"_sodium_version_string\"]'\nexport EXPORTED_RUNTIME_METHODS='[\"UTF8ToString\",\"getValue\",\"setValue\",\"HEAPU8\"]'\nexport JS_RESERVED_MEMORY_STANDARD=16MB\nexport JS_RESERVED_MEMORY_SUMO=80MB\nexport JS_RESERVED_MEMORY_TESTS=16MB\nexport WASM_INITIAL_MEMORY=4MB\nexport LDFLAGS=\"-sALLOW_TABLE_GROWTH\"\nexport LDFLAGS=\"${LDFLAGS} -s ALLOW_MEMORY_GROWTH=1\"\nexport LDFLAGS=\"${LDFLAGS} -s SINGLE_FILE=1 -s SINGLE_FILE_BINARY_ENCODE=0\"\nexport LDFLAGS=\"${LDFLAGS} -s ASSERTIONS=0\"\nexport LDFLAGS=\"${LDFLAGS} -s DISABLE_EXCEPTION_CATCHING=1\"\nexport LDFLAGS=\"${LDFLAGS} -s NODEJS_CATCH_EXIT=0\"\nexport LDFLAGS=\"${LDFLAGS} -s NODEJS_CATCH_REJECTION=0\"\nexport LDFLAGS=\"${LDFLAGS} -s WASM_BIGINT=0\"\nexport LDFLAGS=\"${LDFLAGS} -flto\"\nexport CFLAGS=\"${CFLAGS:+${CFLAGS} }-flto\"\n\n# Parse arguments\nBUILD_TYPE=\"\"\nENABLE_SIMD=\"no\"\n\nfor arg in \"$@\"; do\n  case \"$arg\" in\n    --standard|--sumo|--browser-tests|--tests)\n      BUILD_TYPE=\"$arg\"\n      ;;\n    --simd)\n      ENABLE_SIMD=\"yes\"\n      ;;\n    *)\n      echo \"Unknown argument: $arg\"\n      echo \"Usage: $0 <build_type> [--simd]\"\n      echo \"<build_type> := --standard | --sumo | --browser-tests | --tests\"\n      echo \"Options:\"\n      echo \"  --simd    Enable WebAssembly SIMD128 (faster Argon2, requires WASM SIMD support)\"\n      echo\n      exit 1\n      ;;\n  esac\ndone\n\necho\nif [ \"$BUILD_TYPE\" = \"--standard\" ]; then\n  export EXPORTED_FUNCTIONS=\"$EXPORTED_FUNCTIONS_STANDARD\"\n  export LDFLAGS=\"${LDFLAGS} ${LDFLAGS_DIST}\"\n  export LDFLAGS_JS=\"-s TOTAL_MEMORY=${JS_RESERVED_MEMORY_STANDARD}\"\n  export PREFIX=\"$(pwd)/libsodium-js\"\n  export DONE_FILE=\"$(pwd)/js.done\"\n  export CONFIG_EXTRA=\"--enable-minimal\"\n  export DIST='yes'\n  echo \"Building a standard distribution in [${PREFIX}]\"\nelif [ \"$BUILD_TYPE\" = \"--sumo\" ]; then\n  export EXPORTED_FUNCTIONS=\"$EXPORTED_FUNCTIONS_SUMO\"\n  export LDFLAGS=\"${LDFLAGS} ${LDFLAGS_DIST}\"\n  export LDFLAGS_JS=\"-s TOTAL_MEMORY=${JS_RESERVED_MEMORY_SUMO}\"\n  export PREFIX=\"$(pwd)/libsodium-js-sumo\"\n  export DONE_FILE=\"$(pwd)/js-sumo.done\"\n  export DIST='yes'\n  echo \"Building a sumo distribution in [${PREFIX}]\"\nelif [ \"$BUILD_TYPE\" = \"--browser-tests\" ]; then\n  export EXPORTED_FUNCTIONS=\"$EXPORTED_FUNCTIONS_SUMO\"\n  export CPPFLAGS=\"${CPPFLAGS} -s FORCE_FILESYSTEM=1\"\n  export LDFLAGS=\"${LDFLAGS}\"\n  export LDFLAGS_JS=\"-s TOTAL_MEMORY=${JS_RESERVED_MEMORY_TESTS}\"\n  export PREFIX=\"$(pwd)/libsodium-js-tests\"\n  export DONE_FILE=\"$(pwd)/js-tests-browser.done\"\n  export BROWSER_TESTS='yes'\n  export DIST='no'\n  echo \"Building tests for web browsers in [${PREFIX}]\"\nelif [ \"$BUILD_TYPE\" = \"--tests\" ]; then\n  echo \"Building for testing\"\n  export EXPORTED_FUNCTIONS=\"$EXPORTED_FUNCTIONS_SUMO\"\n  export CPPFLAGS=\"${CPPFLAGS} -s FORCE_FILESYSTEM=1 -DBENCHMARKS -DITERATIONS=10\"\n  export LDFLAGS=\"${LDFLAGS}\"\n  export LDFLAGS_JS=\"-s TOTAL_MEMORY=${JS_RESERVED_MEMORY_TESTS}\"\n  export PREFIX=\"$(pwd)/libsodium-js-tests\"\n  export DONE_FILE=\"$(pwd)/js-tests.done\"\n  export DIST='no'\n  echo \"Building for testing in [${PREFIX}]\"\nelse\n  echo \"Usage: $0 <build_type> [--simd]\"\n  echo \"<build_type> := --standard | --sumo | --browser-tests | --tests\"\n  echo \"Options:\"\n  echo \"  --simd    Enable WebAssembly SIMD128 (faster Argon2, requires WASM SIMD support)\"\n  echo\n  exit 1\nfi\n\nif [ \"$ENABLE_SIMD\" = \"yes\" ]; then\n  echo \"SIMD128 enabled\"\nfi\nexport JS_EXPORTS_FLAGS=\"-s EXPORTED_FUNCTIONS=${EXPORTED_FUNCTIONS} -s EXPORTED_RUNTIME_METHODS=${EXPORTED_RUNTIME_METHODS}\"\n\nrm -f \"$DONE_FILE\"\n\necho\n\nif [ \"$ENABLE_SIMD\" = \"yes\" ]; then\n  export SIMD_CFLAGS=\"-msimd128\"\nelse\n  export SIMD_CFLAGS=\"\"\nfi\n\n# First build without SIMD for asm.js fallback (always needed)\nemconfigure ./configure $CONFIG_EXTRA --disable-shared --prefix=\"$PREFIX\" \\\n  --without-pthreads \\\n  --disable-ssp --disable-asm --disable-pie &&\n  emmake make clean\n[ $? = 0 ] || exit 1\n\nif [ \"$DIST\" = yes ]; then\n  emccLibsodium() {\n    outFile=\"${1}\"\n    shift\n    emcc $CPPFLAGS $LDFLAGS $JS_EXPORTS_FLAGS \"${@}\" \\\n      \"${PREFIX}/lib/libsodium.a\" -o \"${outFile}\" || exit 1\n  }\n  emmake make $MAKE_FLAGS install || exit 1\n\n  # Build asm.js fallback (without SIMD)\n  emccLibsodium \"${PREFIX}/lib/libsodium.asm.tmp.js\" -Oz -s WASM=0 $LDFLAGS_JS\n\n  if [ \"$ENABLE_SIMD\" = \"yes\" ]; then\n    # Rebuild with SIMD for WASM\n    emmake make clean\n    export CFLAGS=\"${CFLAGS:+$CFLAGS }${SIMD_CFLAGS}\"\n    emmake make $MAKE_FLAGS install || exit 1\n  fi\n\n  # Build WASM (with SIMD if enabled)\n  emccLibsodium \"${PREFIX}/lib/libsodium.wasm.tmp.js\" -O3 ${SIMD_CFLAGS} -s WASM=1 -s EVAL_CTORS=2 -s INITIAL_MEMORY=${WASM_INITIAL_MEMORY}\n\n  # Build the output file by concatenating parts to preserve null bytes\n  # (command substitution in heredoc strips null bytes from WASM binary)\n  #\n  # Structure:\n  # 1. pre.tmp.js - module header, opens useBackupModule function\n  # 2. asm.tmp.js - asm.js backup code (INSIDE useBackupModule)\n  # 3. mid.tmp.js - closes useBackupModule, starts outer scope for WASM\n  # 4. wasm.tmp.js - real WASM code (OUTSIDE useBackupModule, at Module.ready level)\n  # 5. end.tmp.js - closes Module.ready promise with fallback\n\n  cat >\"${PREFIX}/lib/libsodium.pre.tmp.js\" <<'PREJS'\n    var Module;\n    if (typeof Module === 'undefined') {\n      Module = {};\n    }\n    var root = Module;\n    if (typeof root['sodium'] !== 'object') {\n      if (typeof global === 'object') {\n        root = global;\n      } else if (typeof window === 'object') {\n        root = window;\n      }\n    }\n    if (typeof Module.getRandomValue === 'undefined') {\n      try {\n        var window_ = 'object' === typeof window ? window : self;\n        var crypto_ = typeof window_.crypto !== 'undefined' ? window_.crypto : window_.msCrypto;\n        var randomValuesStandard = function() {\n          var buf = new Uint32Array(1);\n          crypto_.getRandomValues(buf);\n          return buf[0] >>> 0;\n        };\n        randomValuesStandard();\n        Module.getRandomValue = randomValuesStandard;\n        Module.getRandomBytes = function(ptr, size) {\n          var heapu8 = Module.HEAPU8;\n          var chunk = 65536;\n          while (size > chunk) {\n            var buf = new Uint8Array(chunk);\n            crypto_.getRandomValues(buf);\n            heapu8.set(buf, ptr);\n            ptr += chunk;\n            size -= chunk;\n          }\n          var buf = new Uint8Array(size);\n          crypto_.getRandomValues(buf);\n          heapu8.set(buf, ptr);\n        };\n      } catch (e) {\n        try {\n          var crypto = require('crypto');\n          var randomValueNodeJS = function() {\n            var buf = crypto['randomBytes'](4);\n            return (buf[0] << 24 | buf[1] << 16 | buf[2] << 8 | buf[3]) >>> 0;\n          };\n          randomValueNodeJS();\n          Module.getRandomValue = randomValueNodeJS;\n          Module.getRandomBytes = function(ptr, size) {\n            var buf = crypto['randomBytes'](size);\n            Module.HEAPU8.set(buf, ptr);\n          };\n        } catch (e) {\n          throw 'No secure random number generator found';\n        }\n      }\n    }\n    var _Module = Module;\n    Module.ready = new Promise(function(resolve, reject) {\n      var Module = _Module;\n      Module.onAbort = reject;\n      Module.print = function(what) {\n        typeof(console) !== 'undefined' && console.log(what);\n      }\n      Module.printErr = function(what) {\n        typeof(console) !== 'undefined' && console.warn(what);\n      }\n      Module.onRuntimeInitialized = function() {\n        try {\n          /* Test arbitrary wasm function */\n          Module._crypto_secretbox_keybytes();\n          resolve();\n        } catch (err) {\n          reject(err);\n        }\n      };\n      Module.useBackupModule = function() {\n        return new Promise(function(resolve, reject) {\n          var Module = {};\n          Module.onAbort = reject;\n          Module.getRandomValue = _Module.getRandomValue;\n\n          Module.onRuntimeInitialized = function() {\n            Object.keys(_Module).forEach(function(k) {\n              if (k !== 'getRandomValue') {\n                delete _Module[k];\n              }\n            });\n            Object.keys(Module).forEach(function(k) {\n              _Module[k] = Module[k];\n            });\n            resolve();\n          };\n\nPREJS\n\n  cat >\"${PREFIX}/lib/libsodium.mid.tmp.js\" <<'MIDJS'\n        });\n      };\nMIDJS\n\n  cat >\"${PREFIX}/lib/libsodium.end.tmp.js\" <<'ENDJS'\n    }).catch(function() {\n      return _Module.useBackupModule();\n    });\nENDJS\n\n  # Concatenate all parts, preserving binary content\n  # Note: asm.js goes inside useBackupModule, wasm.js goes outside at Module.ready level\n  cat \"${PREFIX}/lib/libsodium.pre.tmp.js\" > \"${PREFIX}/lib/libsodium.js\"\n  sed \"s|use asm||g\" \"${PREFIX}/lib/libsodium.asm.tmp.js\" >> \"${PREFIX}/lib/libsodium.js\"\n  cat \"${PREFIX}/lib/libsodium.mid.tmp.js\" >> \"${PREFIX}/lib/libsodium.js\"\n  cat \"${PREFIX}/lib/libsodium.wasm.tmp.js\" >> \"${PREFIX}/lib/libsodium.js\"\n  cat \"${PREFIX}/lib/libsodium.end.tmp.js\" >> \"${PREFIX}/lib/libsodium.js\"\n\n  rm \"${PREFIX}/lib/libsodium.pre.tmp.js\" \"${PREFIX}/lib/libsodium.mid.tmp.js\" \"${PREFIX}/lib/libsodium.end.tmp.js\"\n\n  #KEEP rm \"${PREFIX}/lib/libsodium.asm.tmp.js\" \"${PREFIX}/lib/libsodium.wasm.tmp.js\"\n  touch -r \"${PREFIX}/lib/libsodium.js\" \"$DONE_FILE\"\n  ls -l \"${PREFIX}/lib/libsodium.js\"\n  exit 0\nfi\n\nif test \"$JS_RUNTIME\" = \"\"; then\n  for candidate in bun nodejs node /usr/local/bin/bun /usr/local/bin/nodejs /usr/local/bin/node; do\n    if command -v $candidate >/dev/null; then\n      JS_RUNTIME=$candidate\n      break\n    fi\n  done\nfi\n\nfind test/default -type f -name '*.js' -exec rm -f {} \\;\n\nif [ \"x$BROWSER_TESTS\" != \"x\" ]; then\n  echo 'Compiling the test suite for web browsers...' &&\n    emmake make $MAKE_FLAGS CPPFLAGS=\"$CPPFLAGS -DBROWSER_TESTS=1\" check >/dev/null 2>&1\nelse\n  if test \"$JS_RUNTIME\" = \"\"; then\n    echo 'Javascript runtime not found - test suite skipped' >&2\n    exit 1\n  fi\n  echo \"Using [${JS_RUNTIME}] as a Javascript runtime\"\n  echo 'Compiling the test suite...' &&\n    emmake make $MAKE_FLAGS check >/dev/null 2>&1\nfi\n\nif [ \"x$BROWSER_TESTS\" != \"x\" ]; then\n  echo 'Creating the test suite for web browsers'\n  (\n    cd test/default &&\n      mkdir -p browser &&\n      rm -f browser/tests.txt &&\n      for file in *.js; do\n        cp \"$file\" \"browser/${file}\"\n        tname=$(echo \"$file\" | sed 's/.js$//')\n        cp -f \"${tname}.exp\" \"browser/${tname}.exp\"\n        sed \"s/{{tname}}/${tname}/\" index.html.tpl >\"browser/${tname}.html\"\n        echo \"${tname}.html\" >>\"browser/tests.txt\"\n      done\n    touch \"$DONE_FILE\"\n  )\nelse\n  echo 'Running the test suite'\n  (\n    cd test/default &&\n      for file in *.js; do\n        echo \"#! /usr/bin/env ${JS_RUNTIME}\" >\"${file}.tmp\"\n        cat \"$file\" >> \"${file}.tmp\"\n        chmod +x \"${file}.tmp\"\n        mv -f \"${file}.tmp\" \"$file\"\n      done\n  )\n  make $MAKE_FLAGS check || exit 1\n  touch \"$DONE_FILE\"\nfi\n\necho 'Done.'\n"
  },
  {
    "path": "dist-build/generate-emscripten-symbols.sh",
    "content": "#! /bin/sh\n\nset -e\n\nLIBSODIUM=${LIBSODIUM:-/tmp/sodium/lib/libsodium.30.dylib}\n\nsymbols() {\n  {\n    SUMO=\"$1\"\n    while read symbol standard sumo; do\n      found=\"$standard\"\n      if [ \"x$SUMO\" = \"xsumo\" ]; then\n        found=\"$sumo\"\n      fi\n      if [ \"$found\" = \"1\" ]; then\n        eval \"defined_${symbol}=yes\"\n      else\n        eval \"defined_${symbol}=no\"\n      fi\n    done <emscripten-symbols.def\n\n    /usr/bin/nm \"$LIBSODIUM\" |\n      fgrep ' T _' |\n      cut -d' ' -f3 | {\n      while read symbol; do\n        eval \"found=\\$defined_${symbol}\"\n        if [ \"$found\" = \"yes\" ]; then\n          echo \"$symbol\"\n        elif [ \"$found\" != \"no\" ]; then\n          echo >&2\n          echo \"*** [$symbol] was not expected ***\" >&2\n          echo >&2\n          exit 1\n        fi\n      done\n    }\n  } |\n    sort |\n    {\n      out='\"_malloc\",\"_free\"'\n      while read symbol; do\n        if [ ! -z \"$out\" ]; then\n          out=\"${out},\"\n        fi\n        out=\"${out}\\\"${symbol}\\\"\"\n      done\n      echo \"[${out}]\"\n    }\n}\n\nout=$(symbols standard)\nsed s/EXPORTED_FUNCTIONS_STANDARD=\\'.*\\'/EXPORTED_FUNCTIONS_STANDARD=\\'${out}\\'/ <emscripten.sh >emscripten.sh.tmp &&\n  mv -f emscripten.sh.tmp emscripten.sh\n\nout=$(symbols sumo)\nsed s/EXPORTED_FUNCTIONS_SUMO=\\'.*\\'/EXPORTED_FUNCTIONS_SUMO=\\'${out}\\'/ <emscripten.sh >emscripten.sh.tmp &&\n  mv -f emscripten.sh.tmp emscripten.sh\n\nchmod +x emscripten.sh\n"
  },
  {
    "path": "dist-build/macos.sh",
    "content": "#! /bin/sh\n\nexport PREFIX=\"$(pwd)/libsodium-osx\"\nexport MACOS_VERSION_MIN=${MACOS_VERSION_MIN-\"10.10\"}\n\nif [ -z \"$LIBSODIUM_FULL_BUILD\" ]; then\n  export LIBSODIUM_ENABLE_MINIMAL_FLAG=\"--enable-minimal\"\nelse\n  export LIBSODIUM_ENABLE_MINIMAL_FLAG=\"\"\nfi\n\nNPROCESSORS=$(getconf NPROCESSORS_ONLN 2>/dev/null || getconf _NPROCESSORS_ONLN 2>/dev/null)\nPROCESSORS=${NPROCESSORS:-3}\n\nmkdir -p $PREFIX || exit 1\n\nexport CFLAGS=\"-mmacosx-version-min=${MACOS_VERSION_MIN} -O3\"\nexport LDFLAGS=\"-mmacosx-version-min=${MACOS_VERSION_MIN}\"\n\nmake distclean >/dev/null\n./configure ${LIBSODIUM_ENABLE_MINIMAL_FLAG} \\\n  --prefix=\"$PREFIX\" || exit 1\nmake -j${PROCESSORS} check && make -j${PROCESSORS} install || exit 1\n\n# Cleanup\nmake distclean >/dev/null\n"
  },
  {
    "path": "dist-build/msys2-win32.sh",
    "content": "#! /bin/sh\n\nexport CFLAGS=\"-O3 -fomit-frame-pointer -m32 -march=pentium3 -mtune=westmere\"\nexport PREFIX=\"$(pwd)/libsodium-win32\"\n\nif (i686-w64-mingw32-gcc --version >/dev/null 2>&1); then\n  echo MinGW found\nelse\n  echo Please install mingw-w64-i686-gcc >&2\n  exit\nfi\n\n./configure --prefix=\"$PREFIX\" --exec-prefix=\"$PREFIX\" \\\n  --host=i686-w64-mingw32 &&\n  make clean &&\n  make &&\n  make check &&\n  make install\n"
  },
  {
    "path": "dist-build/msys2-win64.sh",
    "content": "#! /bin/sh\n\nexport CFLAGS=\"-O3 -fomit-frame-pointer -m64 -mtune=westmere\"\nexport PREFIX=\"$(pwd)/libsodium-win64\"\n\nif (x86_64-w64-mingw32-gcc --version >/dev/null 2>&1); then\n  echo MinGW found\nelse\n  echo Please install mingw-w64-x86_64-gcc >&2\n  exit\nfi\n\n./configure --prefix=\"$PREFIX\" --exec-prefix=\"$PREFIX\" \\\n  --host=x86_64-w64-mingw32 &&\n  make clean &&\n  make &&\n  make check &&\n  make install\n"
  },
  {
    "path": "dist-build/wasm32-wasi.sh",
    "content": "#! /bin/sh\n\nexport PATH=\"/opt/zig/bin:/opt/zig:/opt/homebrew/bin:$PATH\"\n\nexport PREFIX=\"$(pwd)/libsodium-wasm32-wasi\"\n\nmkdir -p $PREFIX || exit 1\n\nexport CC=\"zig cc\"\nexport CFLAGS=\"--target=wasm32-wasi -O3\"\nexport LDFLAGS=\"-s\"\nexport AR=\"zig ar\"\nexport RANLIB=\"zig ranlib\"\n\nmake distclean >/dev/null\n\nif [ \"x$1\" = \"x--bench\" ]; then\n  export BENCHMARKS=1\n  export CPPFLAGS=\"-DBENCHMARKS -DITERATIONS=200\"\nelse\n  export CPPFLAGS=\"-DED25519_NONDETERMINISTIC=1\"\nfi\n\nif [ -n \"$LIBSODIUM_MINIMAL_BUILD\" ]; then\n  export LIBSODIUM_ENABLE_MINIMAL_FLAG=\"--enable-minimal\"\nelse\n  export LIBSODIUM_ENABLE_MINIMAL_FLAG=\"\"\nfi\n\nif ! ./configure ${LIBSODIUM_ENABLE_MINIMAL_FLAG} \\\n  --prefix=\"$PREFIX\" \\\n  --host=wasm32-wasi \\\n  --disable-pie --disable-ssp --disable-shared --without-pthreads; then\n  cat config.log\n  exit 1\nfi\n\nNPROCESSORS=$(getconf NPROCESSORS_ONLN 2>/dev/null || getconf _NPROCESSORS_ONLN 2>/dev/null)\nPROCESSORS=${NPROCESSORS:-3}\n\nif [ -z \"$BENCHMARKS\" ]; then\n  make -j${PROCESSORS} check && make install && make distclean >/dev/null\nelse\n  make -j${PROCESSORS} && make check\nfi\n"
  },
  {
    "path": "lgtm.yml",
    "content": "extraction:\n  cpp:\n     configure:\n        command:\n        - ./autogen.sh -s\n        - ./configure\n"
  },
  {
    "path": "libsodium-uninstalled.pc.in",
    "content": "Name: @PACKAGE_NAME@\nVersion: @PACKAGE_VERSION@\nDescription: A modern and easy-to-use crypto library\n\nLibs: -L${pcfiledir}/src/libsodium -lsodium\nLibs.private: @PKGCONFIG_LIBS_PRIVATE@\nCflags: -I${pcfiledir}/src/libsodium/include -I@top_srcdir@/src/libsodium/include -I@top_srcdir@/src/libsodium/include/sodium\n"
  },
  {
    "path": "libsodium.pc.in",
    "content": "prefix=@prefix@\nexec_prefix=@exec_prefix@\nlibdir=@libdir@\nincludedir=@includedir@\n\nName: @PACKAGE_NAME@\nVersion: @PACKAGE_VERSION@\nDescription: A modern and easy-to-use crypto library\n\nLibs: -L${libdir} -lsodium\nLibs.private: @PKGCONFIG_LIBS_PRIVATE@\nCflags: -I${includedir}\n"
  },
  {
    "path": "m4/ax_add_fortify_source.m4",
    "content": "# ===========================================================================\n#  https://www.gnu.org/software/autoconf-archive/ax_add_fortify_source.html\n# ===========================================================================\n#\n# SYNOPSIS\n#\n#   AX_ADD_FORTIFY_SOURCE\n#\n# DESCRIPTION\n#\n#   Check whether -D_FORTIFY_SOURCE=2 can be added to CPPFLAGS without macro\n#   redefinition warnings, other cpp warnings or linker. Some distributions\n#   (such as Ubuntu or Gentoo Linux) enable _FORTIFY_SOURCE globally in\n#   their compilers, leading to unnecessary warnings in the form of\n#\n#     <command-line>:0:0: error: \"_FORTIFY_SOURCE\" redefined [-Werror]\n#     <built-in>: note: this is the location of the previous definition\n#\n#   which is a problem if -Werror is enabled. This macro checks whether\n#   _FORTIFY_SOURCE is already defined, and if not, adds -D_FORTIFY_SOURCE=2\n#   to CPPFLAGS.\n#\n#   Newer mingw-w64 msys2 package comes with a bug in\n#   headers-git-7.0.0.5546.d200317d-1. It broke -D_FORTIFY_SOURCE support,\n#   and would need -lssp or -fstack-protector.  See\n#   https://github.com/msys2/MINGW-packages/issues/5803. Try to actually\n#   link it.\n#\n# LICENSE\n#\n#   Copyright (c) 2017 David Seifert <soap@gentoo.org>\n#   Copyright (c) 2019, 2023 Reini Urban <rurban@cpan.org>\n#\n#   Copying and distribution of this file, with or without modification, are\n#   permitted in any medium without royalty provided the copyright notice\n#   and this notice are preserved.  This file is offered as-is, without any\n#   warranty.\n\n#serial 10\n\nAC_DEFUN([AX_ADD_FORTIFY_SOURCE],[\n    ac_save_cflags=$CFLAGS\n    ac_cwerror_flag=yes\n    AX_CHECK_COMPILE_FLAG([-Werror],[CFLAGS=\"$CFLAGS -Werror\"])\n    ax_add_fortify_3_failed=\n    AC_MSG_CHECKING([whether to add -D_FORTIFY_SOURCE=3 to CPPFLAGS])\n    AC_LINK_IFELSE([\n        AC_LANG_PROGRAM([],\n            [[\n                #ifndef _FORTIFY_SOURCE\n                    return 0;\n                #else\n                    _FORTIFY_SOURCE_already_defined;\n                #endif\n            ]]\n        )],\n        AC_LINK_IFELSE([\n            AC_LANG_SOURCE([[\n                #define _FORTIFY_SOURCE 3\n                #include <string.h>\n                int main(void) {\n                    char *s = \" \";\n                    strcpy(s, \"x\");\n                    return strlen(s)-1;\n                }\n              ]]\n            )],\n            [\n              AC_MSG_RESULT([yes])\n              CFLAGS=$ac_save_cflags\n              CPPFLAGS=\"$CPPFLAGS -D_FORTIFY_SOURCE=3\"\n            ], [\n              AC_MSG_RESULT([no])\n              ax_add_fortify_3_failed=1\n            ],\n        ),\n        [\n          AC_MSG_RESULT([no])\n          ax_add_fortify_3_failed=1\n        ])\n    if test -n \"$ax_add_fortify_3_failed\"\n    then\n    AC_MSG_CHECKING([whether to add -D_FORTIFY_SOURCE=2 to CPPFLAGS])\n    AC_LINK_IFELSE([\n        AC_LANG_PROGRAM([],\n            [[\n                #ifndef _FORTIFY_SOURCE\n                    return 0;\n                #else\n                    _FORTIFY_SOURCE_already_defined;\n                #endif\n            ]]\n        )],\n        AC_LINK_IFELSE([\n            AC_LANG_SOURCE([[\n                #define _FORTIFY_SOURCE 2\n                #include <string.h>\n                int main(void) {\n                    char *s = \" \";\n                    strcpy(s, \"x\");\n                    return strlen(s)-1;\n                }\n              ]]\n            )],\n            [\n              AC_MSG_RESULT([yes])\n              CFLAGS=$ac_save_cflags\n              CPPFLAGS=\"$CPPFLAGS -D_FORTIFY_SOURCE=2\"\n            ], [\n              AC_MSG_RESULT([no])\n              CFLAGS=$ac_save_cflags\n            ],\n        ),\n        [\n          AC_MSG_RESULT([no])\n          CFLAGS=$ac_save_cflags\n        ])\n    fi\n])\n"
  },
  {
    "path": "m4/ax_check_catchable_abrt.m4",
    "content": "# SYNOPSIS\n#\n#   AX_CHECK_CATCHABLE_ABRT\n#\n# DESCRIPTION\n#\n#  Check whether SIGABRT can be caught using signal handlers.\n\n#serial 1\n\nAC_DEFUN([AX_CHECK_CATCHABLE_ABRT], [dnl\n    AC_PREREQ(2.64)\n    AS_VAR_PUSHDEF([CACHEVAR], [ax_cv_check_[]_AC_LANG_ABBREV[]CATCHABLE_ABRT])dnl\n    AC_CACHE_CHECK([whether SIGABRT can be caught], CACHEVAR, [\n        AC_RUN_IFELSE([\n            AC_LANG_PROGRAM([[\n#include <signal.h>\n#include <stdlib.h>\n\n#ifndef SIGABRT\n# error SIGABRT is not defined\n#endif\n\nstatic void sigabrt_handler_3(int _)\n{\n    exit(0);\n}\n\nstatic void sigabrt_handler_2(int _)\n{\n    signal(SIGABRT, sigabrt_handler_3);\n    abort();\n    exit(1);\n}\n\nstatic void sigabrt_handler_1(int _)\n{\n    signal(SIGABRT, sigabrt_handler_2);\n    abort();\n    exit(1);\n}\n            ]], [[\nsignal(SIGABRT, sigabrt_handler_1);\nabort();\nexit(1);\n            ]])],\n            [AS_VAR_SET(CACHEVAR, [yes])],\n            [AS_VAR_SET(CACHEVAR, [no])],\n            [AS_VAR_SET(CACHEVAR, [unknown])]\n        )\n    ])\n    AS_VAR_IF(CACHEVAR, yes,\n        [AC_DEFINE([HAVE_CATCHABLE_ABRT], [1], [Define if SIGABRT can be caught using signal handlers])],\n        [AC_MSG_WARN([On this platform, SIGABRT cannot be caught using signal handlers.])]\n    )\n    AS_VAR_POPDEF([CACHEVAR])dnl\n])\n"
  },
  {
    "path": "m4/ax_check_catchable_segv.m4",
    "content": "# SYNOPSIS\n#\n#   AX_CHECK_CATCHABLE_SEGV\n#\n# DESCRIPTION\n#\n#  Check whether segmentation violations can be caught using signal handlers.\n\n#serial 1\n\nAC_DEFUN([AX_CHECK_CATCHABLE_SEGV], [dnl\n    AC_PREREQ(2.64)\n    AS_VAR_PUSHDEF([CACHEVAR], [ax_cv_check_[]_AC_LANG_ABBREV[]CATCHABLE_SEGV])dnl\n    AC_CACHE_CHECK([whether segmentation violations can be caught], CACHEVAR, [\n        AC_RUN_IFELSE([\n            AC_LANG_PROGRAM([[\n#include <signal.h>\n#include <stdlib.h>\nstatic void sig(int _) { exit(0); }\n            ]], [[\nvolatile unsigned char * volatile x = (volatile unsigned char *) malloc(8);\nsize_t i;\n\n#ifdef SIGPROT\nsignal(SIGPROT, sig);\n#endif\nsignal(SIGSEGV, sig);\nsignal(SIGBUS, sig);\n#if !defined(__SANITIZE_ADDRESS__) && !defined(__EMSCRIPTEN__)\n*((volatile unsigned char *) -1) = 0xd0;\n*((volatile unsigned char *) 1) = 0xd0;\nfor (i = 0; i < 10000000; i += 1024) { x[-i] = x[i] = (unsigned char) i; }\n#endif\nfree((void *) x);\nexit(1)\n            ]])],\n            [AS_VAR_SET(CACHEVAR, [yes])],\n            [AS_VAR_SET(CACHEVAR, [no])],\n            [AS_VAR_SET(CACHEVAR, [unknown])]\n        )\n    ])\n    AS_VAR_IF(CACHEVAR, yes,\n        [AC_DEFINE([HAVE_CATCHABLE_SEGV], [1], [Define if segmentation violations can be caught using signal handlers])],\n        [AC_MSG_WARN([On this platform, segmentation violations cannot be caught using signal handlers. This is expected if you enabled a tool such as Address Sanitizer (-fsanitize=address), but be aware that using Address Sanitizer may also significantly reduce performance.])]\n    )\n    AS_VAR_POPDEF([CACHEVAR])dnl\n])\n"
  },
  {
    "path": "m4/ax_check_compile_flag.m4",
    "content": "# ===========================================================================\n#  https://www.gnu.org/software/autoconf-archive/ax_check_compile_flag.html\n# ===========================================================================\n#\n# SYNOPSIS\n#\n#   AX_CHECK_COMPILE_FLAG(FLAG, [ACTION-SUCCESS], [ACTION-FAILURE], [EXTRA-FLAGS], [INPUT])\n#\n# DESCRIPTION\n#\n#   Check whether the given FLAG works with the current language's compiler\n#   or gives an error.  (Warnings, however, are ignored)\n#\n#   ACTION-SUCCESS/ACTION-FAILURE are shell commands to execute on\n#   success/failure.\n#\n#   If EXTRA-FLAGS is defined, it is added to the current language's default\n#   flags (e.g. CFLAGS) when the check is done.  The check is thus made with\n#   the flags: \"CFLAGS EXTRA-FLAGS FLAG\".  This can for example be used to\n#   force the compiler to issue an error when a bad flag is given.\n#\n#   INPUT gives an alternative input source to AC_COMPILE_IFELSE.\n#\n#   NOTE: Implementation based on AX_CFLAGS_GCC_OPTION. Please keep this\n#   macro in sync with AX_CHECK_{PREPROC,LINK}_FLAG.\n#\n# LICENSE\n#\n#   Copyright (c) 2008 Guido U. Draheim <guidod@gmx.de>\n#   Copyright (c) 2011 Maarten Bosmans <mkbosmans@gmail.com>\n#\n#   Copying and distribution of this file, with or without modification, are\n#   permitted in any medium without royalty provided the copyright notice\n#   and this notice are preserved.  This file is offered as-is, without any\n#   warranty.\n\n#serial 6\n\nAC_DEFUN([AX_CHECK_COMPILE_FLAG],\n[AC_PREREQ(2.64)dnl for _AC_LANG_PREFIX and AS_VAR_IF\nAS_VAR_PUSHDEF([CACHEVAR],[ax_cv_check_[]_AC_LANG_ABBREV[]flags_$4_$1])dnl\nAC_CACHE_CHECK([whether _AC_LANG compiler accepts $1], CACHEVAR, [\n  ax_check_save_flags=$[]_AC_LANG_PREFIX[]FLAGS\n  _AC_LANG_PREFIX[]FLAGS=\"$[]_AC_LANG_PREFIX[]FLAGS $4 $1\"\n  AC_LINK_IFELSE([m4_default([$5],[AC_LANG_PROGRAM(\n[#include <time.h>], [time_t x; int fodder = 0; if (fodder > -1000 && time(&x)) return (int) x]\n  )])],\n    [AS_VAR_SET(CACHEVAR,[yes])],\n    [AS_VAR_SET(CACHEVAR,[no])])\n  _AC_LANG_PREFIX[]FLAGS=$ax_check_save_flags])\nAS_VAR_IF(CACHEVAR,yes,\n  [m4_default([$2], :)],\n  [m4_default([$3], :)])\nAS_VAR_POPDEF([CACHEVAR])dnl\n])dnl AX_CHECK_COMPILE_FLAGS\n"
  },
  {
    "path": "m4/ax_check_define.m4",
    "content": "# ===========================================================================\n#     https://www.gnu.org/software/autoconf-archive/ax_check_define.html\n# ===========================================================================\n#\n# SYNOPSIS\n#\n#   AC_CHECK_DEFINE([symbol], [ACTION-IF-FOUND], [ACTION-IF-NOT])\n#   AX_CHECK_DEFINE([includes],[symbol], [ACTION-IF-FOUND], [ACTION-IF-NOT])\n#\n# DESCRIPTION\n#\n#   Complements AC_CHECK_FUNC but it does not check for a function but for a\n#   define to exist. Consider a usage like:\n#\n#    AC_CHECK_DEFINE(__STRICT_ANSI__, CFLAGS=\"$CFLAGS -D_XOPEN_SOURCE=500\")\n#\n# LICENSE\n#\n#   Copyright (c) 2008 Guido U. Draheim <guidod@gmx.de>\n#\n#   Copying and distribution of this file, with or without modification, are\n#   permitted in any medium without royalty provided the copyright notice\n#   and this notice are preserved.  This file is offered as-is, without any\n#   warranty.\n\n#serial 11\n\nAU_ALIAS([AC_CHECK_DEFINED], [AC_CHECK_DEFINE])\nAC_DEFUN([AC_CHECK_DEFINE],[\nAS_VAR_PUSHDEF([ac_var],[ac_cv_defined_$1])dnl\nAC_CACHE_CHECK([for $1 defined], ac_var,\nAC_COMPILE_IFELSE([AC_LANG_PROGRAM([[]], [[\n  #ifdef $1\n  int ok;\n  (void)ok;\n  #else\n  choke me\n  #endif\n]])],[AS_VAR_SET(ac_var, yes)],[AS_VAR_SET(ac_var, no)]))\nAS_IF([test AS_VAR_GET(ac_var) != \"no\"], [$2], [$3])dnl\nAS_VAR_POPDEF([ac_var])dnl\n])\n\nAU_ALIAS([AX_CHECK_DEFINED], [AX_CHECK_DEFINE])\nAC_DEFUN([AX_CHECK_DEFINE],[\nAS_VAR_PUSHDEF([ac_var],[ac_cv_defined_$2_$1])dnl\nAC_CACHE_CHECK([for $2 defined in $1], ac_var,\nAC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <$1>]], [[\n  #ifdef $2\n  int ok;\n  (void)ok;\n  #else\n  choke me\n  #endif\n]])],[AS_VAR_SET(ac_var, yes)],[AS_VAR_SET(ac_var, no)]))\nAS_IF([test AS_VAR_GET(ac_var) != \"no\"], [$3], [$4])dnl\nAS_VAR_POPDEF([ac_var])dnl\n])\n\nAC_DEFUN([AX_CHECK_FUNC],\n[AS_VAR_PUSHDEF([ac_var], [ac_cv_func_$2])dnl\nAC_CACHE_CHECK([for $2], ac_var,\ndnl AC_LANG_FUNC_LINK_TRY\n[AC_LINK_IFELSE([AC_LANG_PROGRAM([$1\n                #undef $2\n                char $2 ();],[\n                char (*f) () = $2;\n                return f != $2; ])],\n                [AS_VAR_SET(ac_var, yes)],\n                [AS_VAR_SET(ac_var, no)])])\nAS_IF([test AS_VAR_GET(ac_var) = yes], [$3], [$4])dnl\nAS_VAR_POPDEF([ac_var])dnl\n])# AC_CHECK_FUNC\n"
  },
  {
    "path": "m4/ax_check_gnu_make.m4",
    "content": "# ===========================================================================\n#    https://www.gnu.org/software/autoconf-archive/ax_check_gnu_make.html\n# ===========================================================================\n#\n# SYNOPSIS\n#\n#   AX_CHECK_GNU_MAKE([run-if-true],[run-if-false])\n#\n# DESCRIPTION\n#\n#   This macro searches for a GNU version of make. If a match is found:\n#\n#     * The makefile variable `ifGNUmake' is set to the empty string, otherwise\n#       it is set to \"#\". This is useful for including a special features in a\n#       Makefile, which cannot be handled by other versions of make.\n#     * The makefile variable `ifnGNUmake' is set to #, otherwise\n#       it is set to the empty string. This is useful for including a special\n#       features in a Makefile, which can be handled\n#       by other versions of make or to specify else like clause.\n#     * The variable `_cv_gnu_make_command` is set to the command to invoke\n#       GNU make if it exists, the empty string otherwise.\n#     * The variable `ax_cv_gnu_make_command` is set to the command to invoke\n#       GNU make by copying `_cv_gnu_make_command`, otherwise it is unset.\n#     * If GNU Make is found, its version is extracted from the output of\n#       `make --version` as the last field of a record of space-separated\n#       columns and saved into the variable `ax_check_gnu_make_version`.\n#     * Additionally if GNU Make is found, run shell code run-if-true\n#       else run shell code run-if-false.\n#\n#   Here is an example of its use:\n#\n#   Makefile.in might contain:\n#\n#     # A failsafe way of putting a dependency rule into a makefile\n#     $(DEPEND):\n#             $(CC) -MM $(srcdir)/*.c > $(DEPEND)\n#\n#     @ifGNUmake@ ifeq ($(DEPEND),$(wildcard $(DEPEND)))\n#     @ifGNUmake@ include $(DEPEND)\n#     @ifGNUmake@ else\n#     fallback code\n#     @ifGNUmake@ endif\n#\n#   Then configure.in would normally contain:\n#\n#     AX_CHECK_GNU_MAKE()\n#     AC_OUTPUT(Makefile)\n#\n#   Then perhaps to cause gnu make to override any other make, we could do\n#   something like this (note that GNU make always looks for GNUmakefile\n#   first):\n#\n#     if  ! test x$_cv_gnu_make_command = x ; then\n#             mv Makefile GNUmakefile\n#             echo .DEFAULT: > Makefile ;\n#             echo \\  $_cv_gnu_make_command \\$@ >> Makefile;\n#     fi\n#\n#   Then, if any (well almost any) other make is called, and GNU make also\n#   exists, then the other make wraps the GNU make.\n#\n# LICENSE\n#\n#   Copyright (c) 2008 John Darrington <j.darrington@elvis.murdoch.edu.au>\n#   Copyright (c) 2015 Enrico M. Crisostomo <enrico.m.crisostomo@gmail.com>\n#\n#   Copying and distribution of this file, with or without modification, are\n#   permitted in any medium without royalty provided the copyright notice\n#   and this notice are preserved. This file is offered as-is, without any\n#   warranty.\n\n#serial 12\n\nAC_DEFUN([AX_CHECK_GNU_MAKE],dnl\n  [AC_PROG_AWK\n  AC_CACHE_CHECK([for GNU make],[_cv_gnu_make_command],[dnl\n    _cv_gnu_make_command=\"\" ;\ndnl Search all the common names for GNU make\n    for a in \"$MAKE\" make gmake gnumake ; do\n      if test -z \"$a\" ; then continue ; fi ;\n      if \"$a\" --version 2> /dev/null | grep GNU 2>&1 > /dev/null ; then\n        _cv_gnu_make_command=$a ;\n        AX_CHECK_GNU_MAKE_HEADLINE=$(\"$a\" --version 2> /dev/null | grep \"GNU Make\")\n        ax_check_gnu_make_version=$(echo ${AX_CHECK_GNU_MAKE_HEADLINE} | ${AWK} -F \" \" '{ print $(NF); }')\n        break ;\n      fi\n    done ;])\ndnl If there was a GNU version, then set @ifGNUmake@ to the empty string, '#' otherwise\n  AS_VAR_IF([_cv_gnu_make_command], [\"\"], [AS_VAR_SET([ifGNUmake], [\"#\"])],   [AS_VAR_SET([ifGNUmake], [\"\"])])\n  AS_VAR_IF([_cv_gnu_make_command], [\"\"], [AS_VAR_SET([ifnGNUmake], [\"\"])],   [AS_VAR_SET([ifnGNUmake], [\"#\"])])\n  AS_VAR_IF([_cv_gnu_make_command], [\"\"], [AS_UNSET(ax_cv_gnu_make_command)], [AS_VAR_SET([ax_cv_gnu_make_command], [${_cv_gnu_make_command}])])\n  AS_VAR_IF([_cv_gnu_make_command], [\"\"],[$2],[$1])\n  AC_SUBST([ifGNUmake])\n  AC_SUBST([ifnGNUmake])\n])\n"
  },
  {
    "path": "m4/ax_check_link_flag.m4",
    "content": "# ===========================================================================\n#    https://www.gnu.org/software/autoconf-archive/ax_check_link_flag.html\n# ===========================================================================\n#\n# SYNOPSIS\n#\n#   AX_CHECK_LINK_FLAG(FLAG, [ACTION-SUCCESS], [ACTION-FAILURE], [EXTRA-FLAGS], [INPUT])\n#\n# DESCRIPTION\n#\n#   Check whether the given FLAG works with the linker or gives an error.\n#   (Warnings, however, are ignored)\n#\n#   ACTION-SUCCESS/ACTION-FAILURE are shell commands to execute on\n#   success/failure.\n#\n#   If EXTRA-FLAGS is defined, it is added to the linker's default flags\n#   when the check is done.  The check is thus made with the flags: \"LDFLAGS\n#   EXTRA-FLAGS FLAG\".  This can for example be used to force the linker to\n#   issue an error when a bad flag is given.\n#\n#   INPUT gives an alternative input source to AC_LINK_IFELSE.\n#\n#   NOTE: Implementation based on AX_CFLAGS_GCC_OPTION. Please keep this\n#   macro in sync with AX_CHECK_{PREPROC,COMPILE}_FLAG.\n#\n# LICENSE\n#\n#   Copyright (c) 2008 Guido U. Draheim <guidod@gmx.de>\n#   Copyright (c) 2011 Maarten Bosmans <mkbosmans@gmail.com>\n#\n#   This program is free software: you can redistribute it and/or modify it\n#   under the terms of the GNU General Public License as published by the\n#   Free Software Foundation, either version 3 of the License, or (at your\n#   option) any later version.\n#\n#   This program is distributed in the hope that it will be useful, but\n#   WITHOUT ANY WARRANTY; without even the implied warranty of\n#   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General\n#   Public License for more details.\n#\n#   You should have received a copy of the GNU General Public License along\n#   with this program. If not, see <https://www.gnu.org/licenses/>.\n#\n#   As a special exception, the respective Autoconf Macro's copyright owner\n#   gives unlimited permission to copy, distribute and modify the configure\n#   scripts that are the output of Autoconf when processing the Macro. You\n#   need not follow the terms of the GNU General Public License when using\n#   or distributing such scripts, even though portions of the text of the\n#   Macro appear in them. The GNU General Public License (GPL) does govern\n#   all other use of the material that constitutes the Autoconf Macro.\n#\n#   This special exception to the GPL applies to versions of the Autoconf\n#   Macro released by the Autoconf Archive. When you make and distribute a\n#   modified version of the Autoconf Macro, you may extend this special\n#   exception to the GPL to apply to your modified version as well.\n\n#serial 5\n\nAC_DEFUN([AX_CHECK_LINK_FLAG],\n[AC_PREREQ(2.64)dnl for _AC_LANG_PREFIX and AS_VAR_IF\nAS_VAR_PUSHDEF([CACHEVAR],[ax_cv_check_ldflags_$4_$1])dnl\nAC_CACHE_CHECK([whether the linker accepts $1], CACHEVAR, [\n  ax_check_save_flags=$LDFLAGS\n  LDFLAGS=\"$LDFLAGS $4 $1\"\n  AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <time.h>]],\n  [[time_t x; int fodder = 0; if (fodder > -1000 && time(&x)) return (int) x]])],\n    [AS_VAR_SET(CACHEVAR,[yes])],\n    [AS_VAR_SET(CACHEVAR,[no])])\n  LDFLAGS=$ax_check_save_flags])\nAS_VAR_IF(CACHEVAR,yes,\n  [m4_default([$2], :)],\n  [m4_default([$3], :)])\nAS_VAR_POPDEF([CACHEVAR])dnl\n])dnl AX_CHECK_LINK_FLAGS\n"
  },
  {
    "path": "m4/ax_pthread.m4",
    "content": "# ===========================================================================\n#        https://www.gnu.org/software/autoconf-archive/ax_pthread.html\n# ===========================================================================\n#\n# SYNOPSIS\n#\n#   AX_PTHREAD([ACTION-IF-FOUND[, ACTION-IF-NOT-FOUND]])\n#\n# DESCRIPTION\n#\n#   This macro figures out how to build C programs using POSIX threads. It\n#   sets the PTHREAD_LIBS output variable to the threads library and linker\n#   flags, and the PTHREAD_CFLAGS output variable to any special C compiler\n#   flags that are needed. (The user can also force certain compiler\n#   flags/libs to be tested by setting these environment variables.)\n#\n#   Also sets PTHREAD_CC and PTHREAD_CXX to any special C compiler that is\n#   needed for multi-threaded programs (defaults to the value of CC\n#   respectively CXX otherwise). (This is necessary on e.g. AIX to use the\n#   special cc_r/CC_r compiler alias.)\n#\n#   NOTE: You are assumed to not only compile your program with these flags,\n#   but also to link with them as well. For example, you might link with\n#   $PTHREAD_CC $CFLAGS $PTHREAD_CFLAGS $LDFLAGS ... $PTHREAD_LIBS $LIBS\n#   $PTHREAD_CXX $CXXFLAGS $PTHREAD_CFLAGS $LDFLAGS ... $PTHREAD_LIBS $LIBS\n#\n#   If you are only building threaded programs, you may wish to use these\n#   variables in your default LIBS, CFLAGS, and CC:\n#\n#     LIBS=\"$PTHREAD_LIBS $LIBS\"\n#     CFLAGS=\"$CFLAGS $PTHREAD_CFLAGS\"\n#     CXXFLAGS=\"$CXXFLAGS $PTHREAD_CFLAGS\"\n#     CC=\"$PTHREAD_CC\"\n#     CXX=\"$PTHREAD_CXX\"\n#\n#   In addition, if the PTHREAD_CREATE_JOINABLE thread-attribute constant\n#   has a nonstandard name, this macro defines PTHREAD_CREATE_JOINABLE to\n#   that name (e.g. PTHREAD_CREATE_UNDETACHED on AIX).\n#\n#   Also HAVE_PTHREAD_PRIO_INHERIT is defined if pthread is found and the\n#   PTHREAD_PRIO_INHERIT symbol is defined when compiling with\n#   PTHREAD_CFLAGS.\n#\n#   ACTION-IF-FOUND is a list of shell commands to run if a threads library\n#   is found, and ACTION-IF-NOT-FOUND is a list of commands to run it if it\n#   is not found. If ACTION-IF-FOUND is not specified, the default action\n#   will define HAVE_PTHREAD.\n#\n#   Please let the authors know if this macro fails on any platform, or if\n#   you have any other suggestions or comments. This macro was based on work\n#   by SGJ on autoconf scripts for FFTW (http://www.fftw.org/) (with help\n#   from M. Frigo), as well as ac_pthread and hb_pthread macros posted by\n#   Alejandro Forero Cuervo to the autoconf macro repository. We are also\n#   grateful for the helpful feedback of numerous users.\n#\n#   Updated for Autoconf 2.68 by Daniel Richard G.\n#\n# LICENSE\n#\n#   Copyright (c) 2008 Steven G. Johnson <stevenj@alum.mit.edu>\n#   Copyright (c) 2011 Daniel Richard G. <skunk@iSKUNK.ORG>\n#   Copyright (c) 2019 Marc Stevens <marc.stevens@cwi.nl>\n#\n#   This program is free software: you can redistribute it and/or modify it\n#   under the terms of the GNU General Public License as published by the\n#   Free Software Foundation, either version 3 of the License, or (at your\n#   option) any later version.\n#\n#   This program is distributed in the hope that it will be useful, but\n#   WITHOUT ANY WARRANTY; without even the implied warranty of\n#   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General\n#   Public License for more details.\n#\n#   You should have received a copy of the GNU General Public License along\n#   with this program. If not, see <https://www.gnu.org/licenses/>.\n#\n#   As a special exception, the respective Autoconf Macro's copyright owner\n#   gives unlimited permission to copy, distribute and modify the configure\n#   scripts that are the output of Autoconf when processing the Macro. You\n#   need not follow the terms of the GNU General Public License when using\n#   or distributing such scripts, even though portions of the text of the\n#   Macro appear in them. The GNU General Public License (GPL) does govern\n#   all other use of the material that constitutes the Autoconf Macro.\n#\n#   This special exception to the GPL applies to versions of the Autoconf\n#   Macro released by the Autoconf Archive. When you make and distribute a\n#   modified version of the Autoconf Macro, you may extend this special\n#   exception to the GPL to apply to your modified version as well.\n\n#serial 31\n\nAU_ALIAS([ACX_PTHREAD], [AX_PTHREAD])\nAC_DEFUN([AX_PTHREAD], [\nAC_REQUIRE([AC_CANONICAL_HOST])\nAC_REQUIRE([AC_PROG_CC])\nAC_REQUIRE([AC_PROG_SED])\nAC_LANG_PUSH([C])\nax_pthread_ok=no\n\n# We used to check for pthread.h first, but this fails if pthread.h\n# requires special compiler flags (e.g. on Tru64 or Sequent).\n# It gets checked for in the link test anyway.\n\n# First of all, check if the user has set any of the PTHREAD_LIBS,\n# etcetera environment variables, and if threads linking works using\n# them:\nif test \"x$PTHREAD_CFLAGS$PTHREAD_LIBS\" != \"x\"; then\n        ax_pthread_save_CC=\"$CC\"\n        ax_pthread_save_CFLAGS=\"$CFLAGS\"\n        ax_pthread_save_LIBS=\"$LIBS\"\n        AS_IF([test \"x$PTHREAD_CC\" != \"x\"], [CC=\"$PTHREAD_CC\"])\n        AS_IF([test \"x$PTHREAD_CXX\" != \"x\"], [CXX=\"$PTHREAD_CXX\"])\n        CFLAGS=\"$CFLAGS $PTHREAD_CFLAGS\"\n        LIBS=\"$PTHREAD_LIBS $LIBS\"\n        AC_MSG_CHECKING([for pthread_join using $CC $PTHREAD_CFLAGS $PTHREAD_LIBS])\n        AC_LINK_IFELSE([AC_LANG_CALL([], [pthread_join])], [ax_pthread_ok=yes])\n        AC_MSG_RESULT([$ax_pthread_ok])\n        if test \"x$ax_pthread_ok\" = \"xno\"; then\n                PTHREAD_LIBS=\"\"\n                PTHREAD_CFLAGS=\"\"\n        fi\n        CC=\"$ax_pthread_save_CC\"\n        CFLAGS=\"$ax_pthread_save_CFLAGS\"\n        LIBS=\"$ax_pthread_save_LIBS\"\nfi\n\n# We must check for the threads library under a number of different\n# names; the ordering is very important because some systems\n# (e.g. DEC) have both -lpthread and -lpthreads, where one of the\n# libraries is broken (non-POSIX).\n\n# Create a list of thread flags to try. Items with a \",\" contain both\n# C compiler flags (before \",\") and linker flags (after \",\"). Other items\n# starting with a \"-\" are C compiler flags, and remaining items are\n# library names, except for \"none\" which indicates that we try without\n# any flags at all, and \"pthread-config\" which is a program returning\n# the flags for the Pth emulation library.\n\nax_pthread_flags=\"pthreads none -Kthread -pthread -pthreads -mthreads pthread --thread-safe -mt pthread-config\"\n\n# The ordering *is* (sometimes) important.  Some notes on the\n# individual items follow:\n\n# pthreads: AIX (must check this before -lpthread)\n# none: in case threads are in libc; should be tried before -Kthread and\n#       other compiler flags to prevent continual compiler warnings\n# -Kthread: Sequent (threads in libc, but -Kthread needed for pthread.h)\n# -pthread: Linux/gcc (kernel threads), BSD/gcc (userland threads), Tru64\n#           (Note: HP C rejects this with \"bad form for `-t' option\")\n# -pthreads: Solaris/gcc (Note: HP C also rejects)\n# -mt: Sun Workshop C (may only link SunOS threads [-lthread], but it\n#      doesn't hurt to check since this sometimes defines pthreads and\n#      -D_REENTRANT too), HP C (must be checked before -lpthread, which\n#      is present but should not be used directly; and before -mthreads,\n#      because the compiler interprets this as \"-mt\" + \"-hreads\")\n# -mthreads: Mingw32/gcc, Lynx/gcc\n# pthread: Linux, etcetera\n# --thread-safe: KAI C++\n# pthread-config: use pthread-config program (for GNU Pth library)\n\ncase $host_os in\n\n        freebsd*)\n\n        # -kthread: FreeBSD kernel threads (preferred to -pthread since SMP-able)\n        # lthread: LinuxThreads port on FreeBSD (also preferred to -pthread)\n\n        ax_pthread_flags=\"-kthread lthread $ax_pthread_flags\"\n        ;;\n\n        hpux*)\n\n        # From the cc(1) man page: \"[-mt] Sets various -D flags to enable\n        # multi-threading and also sets -lpthread.\"\n\n        ax_pthread_flags=\"-mt -pthread pthread $ax_pthread_flags\"\n        ;;\n\n        openedition*)\n\n        # IBM z/OS requires a feature-test macro to be defined in order to\n        # enable POSIX threads at all, so give the user a hint if this is\n        # not set. (We don't define these ourselves, as they can affect\n        # other portions of the system API in unpredictable ways.)\n\n        AC_EGREP_CPP([AX_PTHREAD_ZOS_MISSING],\n            [\n#            if !defined(_OPEN_THREADS) && !defined(_UNIX03_THREADS)\n             AX_PTHREAD_ZOS_MISSING\n#            endif\n            ],\n            [AC_MSG_WARN([IBM z/OS requires -D_OPEN_THREADS or -D_UNIX03_THREADS to enable pthreads support.])])\n        ;;\n\n        solaris*)\n\n        # On Solaris (at least, for some versions), libc contains stubbed\n        # (non-functional) versions of the pthreads routines, so link-based\n        # tests will erroneously succeed. (N.B.: The stubs are missing\n        # pthread_cleanup_push, or rather a function called by this macro,\n        # so we could check for that, but who knows whether they'll stub\n        # that too in a future libc.)  So we'll check first for the\n        # standard Solaris way of linking pthreads (-mt -lpthread).\n\n        ax_pthread_flags=\"-mt,-lpthread pthread $ax_pthread_flags\"\n        ;;\nesac\n\n# Are we compiling with Clang?\n\nAC_CACHE_CHECK([whether $CC is Clang],\n    [ax_cv_PTHREAD_CLANG],\n    [ax_cv_PTHREAD_CLANG=no\n     # Note that Autoconf sets GCC=yes for Clang as well as GCC\n     if test \"x$GCC\" = \"xyes\"; then\n        AC_EGREP_CPP([AX_PTHREAD_CC_IS_CLANG],\n            [/* Note: Clang 2.7 lacks __clang_[a-z]+__ */\n#            if defined(__clang__) && defined(__llvm__)\n             AX_PTHREAD_CC_IS_CLANG\n#            endif\n            ],\n            [ax_cv_PTHREAD_CLANG=yes])\n     fi\n    ])\nax_pthread_clang=\"$ax_cv_PTHREAD_CLANG\"\n\n\n# GCC generally uses -pthread, or -pthreads on some platforms (e.g. SPARC)\n\n# Note that for GCC and Clang -pthread generally implies -lpthread,\n# except when -nostdlib is passed.\n# This is problematic using libtool to build C++ shared libraries with pthread:\n# [1] https://gcc.gnu.org/bugzilla/show_bug.cgi?id=25460\n# [2] https://bugzilla.redhat.com/show_bug.cgi?id=661333\n# [3] https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=468555\n# To solve this, first try -pthread together with -lpthread for GCC\n\nAS_IF([test \"x$GCC\" = \"xyes\"],\n      [ax_pthread_flags=\"-pthread,-lpthread -pthread -pthreads $ax_pthread_flags\"])\n\n# Clang takes -pthread (never supported any other flag), but we'll try with -lpthread first\n\nAS_IF([test \"x$ax_pthread_clang\" = \"xyes\"],\n      [ax_pthread_flags=\"-pthread,-lpthread -pthread\"])\n\n\n# The presence of a feature test macro requesting re-entrant function\n# definitions is, on some systems, a strong hint that pthreads support is\n# correctly enabled\n\ncase $host_os in\n        darwin* | hpux* | linux* | osf* | solaris*)\n        ax_pthread_check_macro=\"_REENTRANT\"\n        ;;\n\n        aix*)\n        ax_pthread_check_macro=\"_THREAD_SAFE\"\n        ;;\n\n        *)\n        ax_pthread_check_macro=\"--\"\n        ;;\nesac\nAS_IF([test \"x$ax_pthread_check_macro\" = \"x--\"],\n      [ax_pthread_check_cond=0],\n      [ax_pthread_check_cond=\"!defined($ax_pthread_check_macro)\"])\n\n\nif test \"x$ax_pthread_ok\" = \"xno\"; then\nfor ax_pthread_try_flag in $ax_pthread_flags; do\n\n        case $ax_pthread_try_flag in\n                none)\n                AC_MSG_CHECKING([whether pthreads work without any flags])\n                ;;\n\n                *,*)\n                PTHREAD_CFLAGS=`echo $ax_pthread_try_flag | sed \"s/^\\(.*\\),\\(.*\\)$/\\1/\"`\n                PTHREAD_LIBS=`echo $ax_pthread_try_flag | sed \"s/^\\(.*\\),\\(.*\\)$/\\2/\"`\n                AC_MSG_CHECKING([whether pthreads work with \"$PTHREAD_CFLAGS\" and \"$PTHREAD_LIBS\"])\n                ;;\n\n                -*)\n                AC_MSG_CHECKING([whether pthreads work with $ax_pthread_try_flag])\n                PTHREAD_CFLAGS=\"$ax_pthread_try_flag\"\n                ;;\n\n                pthread-config)\n                AC_CHECK_PROG([ax_pthread_config], [pthread-config], [yes], [no])\n                AS_IF([test \"x$ax_pthread_config\" = \"xno\"], [continue])\n                PTHREAD_CFLAGS=\"`pthread-config --cflags`\"\n                PTHREAD_LIBS=\"`pthread-config --ldflags` `pthread-config --libs`\"\n                ;;\n\n                *)\n                AC_MSG_CHECKING([for the pthreads library -l$ax_pthread_try_flag])\n                PTHREAD_LIBS=\"-l$ax_pthread_try_flag\"\n                ;;\n        esac\n\n        ax_pthread_save_CFLAGS=\"$CFLAGS\"\n        ax_pthread_save_LIBS=\"$LIBS\"\n        CFLAGS=\"$CFLAGS $PTHREAD_CFLAGS\"\n        LIBS=\"$PTHREAD_LIBS $LIBS\"\n\n        # Check for various functions.  We must include pthread.h,\n        # since some functions may be macros.  (On the Sequent, we\n        # need a special flag -Kthread to make this header compile.)\n        # We check for pthread_join because it is in -lpthread on IRIX\n        # while pthread_create is in libc.  We check for pthread_attr_init\n        # due to DEC craziness with -lpthreads.  We check for\n        # pthread_cleanup_push because it is one of the few pthread\n        # functions on Solaris that doesn't have a non-functional libc stub.\n        # We try pthread_create on general principles.\n\n        AC_LINK_IFELSE([AC_LANG_PROGRAM([#include <pthread.h>\n#                       if $ax_pthread_check_cond\n#                        error \"$ax_pthread_check_macro must be defined\"\n#                       endif\n                        static void *some_global = NULL;\n                        static void routine(void *a)\n                          {\n                             /* To avoid any unused-parameter or\n                                unused-but-set-parameter warning.  */\n                             some_global = a;\n                          }\n                        static void *start_routine(void *a) { return a; }],\n                       [pthread_t th; pthread_attr_t attr;\n                        pthread_create(&th, 0, start_routine, 0);\n                        pthread_join(th, 0);\n                        pthread_attr_init(&attr);\n                        pthread_cleanup_push(routine, 0);\n                        pthread_cleanup_pop(0) /* ; */])],\n            [ax_pthread_ok=yes],\n            [])\n\n        CFLAGS=\"$ax_pthread_save_CFLAGS\"\n        LIBS=\"$ax_pthread_save_LIBS\"\n\n        AC_MSG_RESULT([$ax_pthread_ok])\n        AS_IF([test \"x$ax_pthread_ok\" = \"xyes\"], [break])\n\n        PTHREAD_LIBS=\"\"\n        PTHREAD_CFLAGS=\"\"\ndone\nfi\n\n\n# Clang needs special handling, because older versions handle the -pthread\n# option in a rather... idiosyncratic way\n\nif test \"x$ax_pthread_clang\" = \"xyes\"; then\n\n        # Clang takes -pthread; it has never supported any other flag\n\n        # (Note 1: This will need to be revisited if a system that Clang\n        # supports has POSIX threads in a separate library.  This tends not\n        # to be the way of modern systems, but it's conceivable.)\n\n        # (Note 2: On some systems, notably Darwin, -pthread is not needed\n        # to get POSIX threads support; the API is always present and\n        # active.  We could reasonably leave PTHREAD_CFLAGS empty.  But\n        # -pthread does define _REENTRANT, and while the Darwin headers\n        # ignore this macro, third-party headers might not.)\n\n        # However, older versions of Clang make a point of warning the user\n        # that, in an invocation where only linking and no compilation is\n        # taking place, the -pthread option has no effect (\"argument unused\n        # during compilation\").  They expect -pthread to be passed in only\n        # when source code is being compiled.\n        #\n        # Problem is, this is at odds with the way Automake and most other\n        # C build frameworks function, which is that the same flags used in\n        # compilation (CFLAGS) are also used in linking.  Many systems\n        # supported by AX_PTHREAD require exactly this for POSIX threads\n        # support, and in fact it is often not straightforward to specify a\n        # flag that is used only in the compilation phase and not in\n        # linking.  Such a scenario is extremely rare in practice.\n        #\n        # Even though use of the -pthread flag in linking would only print\n        # a warning, this can be a nuisance for well-run software projects\n        # that build with -Werror.  So if the active version of Clang has\n        # this misfeature, we search for an option to squash it.\n\n        AC_CACHE_CHECK([whether Clang needs flag to prevent \"argument unused\" warning when linking with -pthread],\n            [ax_cv_PTHREAD_CLANG_NO_WARN_FLAG],\n            [ax_cv_PTHREAD_CLANG_NO_WARN_FLAG=unknown\n             # Create an alternate version of $ac_link that compiles and\n             # links in two steps (.c -> .o, .o -> exe) instead of one\n             # (.c -> exe), because the warning occurs only in the second\n             # step\n             ax_pthread_save_ac_link=\"$ac_link\"\n             ax_pthread_sed='s/conftest\\.\\$ac_ext/conftest.$ac_objext/g'\n             ax_pthread_link_step=`AS_ECHO([\"$ac_link\"]) | sed \"$ax_pthread_sed\"`\n             ax_pthread_2step_ac_link=\"($ac_compile) && (echo ==== >&5) && ($ax_pthread_link_step)\"\n             ax_pthread_save_CFLAGS=\"$CFLAGS\"\n             for ax_pthread_try in '' -Qunused-arguments -Wno-unused-command-line-argument unknown; do\n                AS_IF([test \"x$ax_pthread_try\" = \"xunknown\"], [break])\n                CFLAGS=\"-Werror -Wunknown-warning-option $ax_pthread_try -pthread $ax_pthread_save_CFLAGS\"\n                ac_link=\"$ax_pthread_save_ac_link\"\n                AC_LINK_IFELSE([AC_LANG_SOURCE([[int main(void){return 0;}]])],\n                    [ac_link=\"$ax_pthread_2step_ac_link\"\n                     AC_LINK_IFELSE([AC_LANG_SOURCE([[int main(void){return 0;}]])],\n                         [break])\n                    ])\n             done\n             ac_link=\"$ax_pthread_save_ac_link\"\n             CFLAGS=\"$ax_pthread_save_CFLAGS\"\n             AS_IF([test \"x$ax_pthread_try\" = \"x\"], [ax_pthread_try=no])\n             ax_cv_PTHREAD_CLANG_NO_WARN_FLAG=\"$ax_pthread_try\"\n            ])\n\n        case \"$ax_cv_PTHREAD_CLANG_NO_WARN_FLAG\" in\n                no | unknown) ;;\n                *) PTHREAD_CFLAGS=\"$ax_cv_PTHREAD_CLANG_NO_WARN_FLAG $PTHREAD_CFLAGS\" ;;\n        esac\n\nfi # $ax_pthread_clang = yes\n\n\n\n# Various other checks:\nif test \"x$ax_pthread_ok\" = \"xyes\"; then\n        ax_pthread_save_CFLAGS=\"$CFLAGS\"\n        ax_pthread_save_LIBS=\"$LIBS\"\n        CFLAGS=\"$CFLAGS $PTHREAD_CFLAGS\"\n        LIBS=\"$PTHREAD_LIBS $LIBS\"\n\n        # Detect AIX lossage: JOINABLE attribute is called UNDETACHED.\n        AC_CACHE_CHECK([for joinable pthread attribute],\n            [ax_cv_PTHREAD_JOINABLE_ATTR],\n            [ax_cv_PTHREAD_JOINABLE_ATTR=unknown\n             for ax_pthread_attr in PTHREAD_CREATE_JOINABLE PTHREAD_CREATE_UNDETACHED; do\n                 AC_LINK_IFELSE([AC_LANG_PROGRAM([#include <pthread.h>],\n                                                 [int attr = $ax_pthread_attr; return attr /* ; */])],\n                                [ax_cv_PTHREAD_JOINABLE_ATTR=$ax_pthread_attr; break],\n                                [])\n             done\n            ])\n        AS_IF([test \"x$ax_cv_PTHREAD_JOINABLE_ATTR\" != \"xunknown\" && \\\n               test \"x$ax_cv_PTHREAD_JOINABLE_ATTR\" != \"xPTHREAD_CREATE_JOINABLE\" && \\\n               test \"x$ax_pthread_joinable_attr_defined\" != \"xyes\"],\n              [AC_DEFINE_UNQUOTED([PTHREAD_CREATE_JOINABLE],\n                                  [$ax_cv_PTHREAD_JOINABLE_ATTR],\n                                  [Define to necessary symbol if this constant\n                                   uses a non-standard name on your system.])\n               ax_pthread_joinable_attr_defined=yes\n              ])\n\n        AC_CACHE_CHECK([whether more special flags are required for pthreads],\n            [ax_cv_PTHREAD_SPECIAL_FLAGS],\n            [ax_cv_PTHREAD_SPECIAL_FLAGS=no\n             case $host_os in\n             solaris*)\n             ax_cv_PTHREAD_SPECIAL_FLAGS=\"-D_POSIX_PTHREAD_SEMANTICS\"\n             ;;\n             esac\n            ])\n        AS_IF([test \"x$ax_cv_PTHREAD_SPECIAL_FLAGS\" != \"xno\" && \\\n               test \"x$ax_pthread_special_flags_added\" != \"xyes\"],\n              [PTHREAD_CFLAGS=\"$ax_cv_PTHREAD_SPECIAL_FLAGS $PTHREAD_CFLAGS\"\n               ax_pthread_special_flags_added=yes])\n\n        AC_CACHE_CHECK([for PTHREAD_PRIO_INHERIT],\n            [ax_cv_PTHREAD_PRIO_INHERIT],\n            [AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <pthread.h>]],\n                                             [[int i = PTHREAD_PRIO_INHERIT;\n                                               return i;]])],\n                            [ax_cv_PTHREAD_PRIO_INHERIT=yes],\n                            [ax_cv_PTHREAD_PRIO_INHERIT=no])\n            ])\n        AS_IF([test \"x$ax_cv_PTHREAD_PRIO_INHERIT\" = \"xyes\" && \\\n               test \"x$ax_pthread_prio_inherit_defined\" != \"xyes\"],\n              [AC_DEFINE([HAVE_PTHREAD_PRIO_INHERIT], [1], [Have PTHREAD_PRIO_INHERIT.])\n               ax_pthread_prio_inherit_defined=yes\n              ])\n\n        CFLAGS=\"$ax_pthread_save_CFLAGS\"\n        LIBS=\"$ax_pthread_save_LIBS\"\n\n        # More AIX lossage: compile with *_r variant\n        if test \"x$GCC\" != \"xyes\"; then\n            case $host_os in\n                aix*)\n                AS_CASE([\"x/$CC\"],\n                    [x*/c89|x*/c89_128|x*/c99|x*/c99_128|x*/cc|x*/cc128|x*/xlc|x*/xlc_v6|x*/xlc128|x*/xlc128_v6],\n                    [#handle absolute path differently from PATH based program lookup\n                     AS_CASE([\"x$CC\"],\n                         [x/*],\n                         [\n\t\t\t   AS_IF([AS_EXECUTABLE_P([${CC}_r])],[PTHREAD_CC=\"${CC}_r\"])\n\t\t\t   AS_IF([test \"x${CXX}\" != \"x\"], [AS_IF([AS_EXECUTABLE_P([${CXX}_r])],[PTHREAD_CXX=\"${CXX}_r\"])])\n\t\t\t ],\n                         [\n\t\t\t   AC_CHECK_PROGS([PTHREAD_CC],[${CC}_r],[$CC])\n\t\t\t   AS_IF([test \"x${CXX}\" != \"x\"], [AC_CHECK_PROGS([PTHREAD_CXX],[${CXX}_r],[$CXX])])\n\t\t\t ]\n                     )\n                    ])\n                ;;\n            esac\n        fi\nfi\n\ntest -n \"$PTHREAD_CC\" || PTHREAD_CC=\"$CC\"\ntest -n \"$PTHREAD_CXX\" || PTHREAD_CXX=\"$CXX\"\n\nAC_SUBST([PTHREAD_LIBS])\nAC_SUBST([PTHREAD_CFLAGS])\nAC_SUBST([PTHREAD_CC])\nAC_SUBST([PTHREAD_CXX])\n\n# Finally, execute ACTION-IF-FOUND/ACTION-IF-NOT-FOUND:\nif test \"x$ax_pthread_ok\" = \"xyes\"; then\n        ifelse([$1],,[AC_DEFINE([HAVE_PTHREAD],[1],[Define if you have POSIX threads libraries and header files.])],[$1])\n        :\nelse\n        ax_pthread_ok=no\n        $2\nfi\nAC_LANG_POP\n])dnl AX_PTHREAD\n"
  },
  {
    "path": "m4/ax_tls.m4",
    "content": "# ===========================================================================\n#          https://www.gnu.org/software/autoconf-archive/ax_tls.html\n# ===========================================================================\n#\n# SYNOPSIS\n#\n#   AX_TLS([action-if-found], [action-if-not-found])\n#\n# DESCRIPTION\n#\n#   Provides a test for the compiler support of thread local storage (TLS)\n#   extensions. Defines TLS if it is found. Currently knows about C++11,\n#   GCC/ICC, and MSVC. I think SunPro uses the same as GCC, and Borland\n#   apparently supports either.\n#\n# LICENSE\n#\n#   Copyright (c) 2008 Alan Woodland <ajw05@aber.ac.uk>\n#   Copyright (c) 2010 Diego Elio Petteno` <flameeyes@gmail.com>\n#\n#   This program is free software: you can redistribute it and/or modify it\n#   under the terms of the GNU General Public License as published by the\n#   Free Software Foundation, either version 3 of the License, or (at your\n#   option) any later version.\n#\n#   This program is distributed in the hope that it will be useful, but\n#   WITHOUT ANY WARRANTY; without even the implied warranty of\n#   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General\n#   Public License for more details.\n#\n#   You should have received a copy of the GNU General Public License along\n#   with this program. If not, see <https://www.gnu.org/licenses/>.\n#\n#   As a special exception, the respective Autoconf Macro's copyright owner\n#   gives unlimited permission to copy, distribute and modify the configure\n#   scripts that are the output of Autoconf when processing the Macro. You\n#   need not follow the terms of the GNU General Public License when using\n#   or distributing such scripts, even though portions of the text of the\n#   Macro appear in them. The GNU General Public License (GPL) does govern\n#   all other use of the material that constitutes the Autoconf Macro.\n#\n#   This special exception to the GPL applies to versions of the Autoconf\n#   Macro released by the Autoconf Archive. When you make and distribute a\n#   modified version of the Autoconf Macro, you may extend this special\n#   exception to the GPL to apply to your modified version as well.\n\n#serial 15\n\nAC_DEFUN([AX_TLS], [\n  AC_MSG_CHECKING([for thread local storage (TLS) class])\n  AC_CACHE_VAL([ac_cv_tls],\n   [for ax_tls_keyword in thread_local _Thread_local __thread '__declspec(thread)' none; do\n       AS_CASE([$ax_tls_keyword],\n          [none], [ac_cv_tls=none ; break],\n          [AC_COMPILE_IFELSE([AC_LANG_PROGRAM(\n              [#include <stdlib.h>],\n              [static  $ax_tls_keyword  int bar;]\n            )],\n            [ac_cv_tls=$ax_tls_keyword ; break],\n            [ac_cv_tls=none]\n          )]\n        )\n    done ]\n  )\n  AC_MSG_RESULT([$ac_cv_tls])\n\n  AS_IF([test \"$ac_cv_tls\" != \"none\"],\n    [AC_DEFINE_UNQUOTED([TLS],[$ac_cv_tls],[If the compiler supports a TLS storage class, define it to that here])\n     m4_ifnblank([$1],[$1],[[:]])],\n    [m4_ifnblank([$2],[$2],[[:]])])\n])\n"
  },
  {
    "path": "m4/ax_valgrind_check.m4",
    "content": "# ===========================================================================\n#    https://www.gnu.org/software/autoconf-archive/ax_valgrind_check.html\n# ===========================================================================\n#\n# SYNOPSIS\n#\n#   AX_VALGRIND_DFLT(memcheck|helgrind|drd|sgcheck, on|off)\n#   AX_VALGRIND_CHECK()\n#\n# DESCRIPTION\n#\n#   AX_VALGRIND_CHECK checks whether Valgrind is present and, if so, allows\n#   running `make check` under a variety of Valgrind tools to check for\n#   memory and threading errors.\n#\n#   Defines VALGRIND_CHECK_RULES which should be substituted in your\n#   Makefile; and $enable_valgrind which can be used in subsequent configure\n#   output. VALGRIND_ENABLED is defined and substituted, and corresponds to\n#   the value of the --enable-valgrind option, which defaults to being\n#   enabled if Valgrind is installed and disabled otherwise. Individual\n#   Valgrind tools can be disabled via --disable-valgrind-<tool>, the\n#   default is configurable via the AX_VALGRIND_DFLT command or is to use\n#   all commands not disabled via AX_VALGRIND_DFLT. All AX_VALGRIND_DFLT\n#   calls must be made before the call to AX_VALGRIND_CHECK.\n#\n#   If unit tests are written using a shell script and automake's\n#   LOG_COMPILER system, the $(VALGRIND) variable can be used within the\n#   shell scripts to enable Valgrind, as described here:\n#\n#     https://www.gnu.org/software/gnulib/manual/html_node/Running-self_002dtests-under-valgrind.html\n#\n#   Usage example:\n#\n#   configure.ac:\n#\n#     AX_VALGRIND_DFLT([sgcheck], [off])\n#     AX_VALGRIND_CHECK\n#\n#   Makefile.am:\n#\n#     @VALGRIND_CHECK_RULES@\n#     VALGRIND_SUPPRESSIONS_FILES = my-project.supp\n#     EXTRA_DIST = my-project.supp\n#\n#   This results in a \"check-valgrind\" rule being added to any Makefile.am\n#   which includes \"@VALGRIND_CHECK_RULES@\" (assuming the module has been\n#   configured with --enable-valgrind). Running `make check-valgrind` in\n#   that directory will run the module's test suite (`make check`) once for\n#   each of the available Valgrind tools (out of memcheck, helgrind and drd)\n#   while the sgcheck will be skipped unless enabled again on the\n#   commandline with --enable-valgrind-sgcheck. The results for each check\n#   will be output to test-suite-$toolname.log. The target will succeed if\n#   there are zero errors and fail otherwise.\n#\n#   Alternatively, a \"check-valgrind-$TOOL\" rule will be added, for $TOOL in\n#   memcheck, helgrind, drd and sgcheck. These are useful because often only\n#   some of those tools can be ran cleanly on a codebase.\n#\n#   The macro supports running with and without libtool.\n#\n# LICENSE\n#\n#   Copyright (c) 2014, 2015, 2016 Philip Withnall <philip.withnall@collabora.co.uk>\n#\n#   Copying and distribution of this file, with or without modification, are\n#   permitted in any medium without royalty provided the copyright notice\n#   and this notice are preserved.  This file is offered as-is, without any\n#   warranty.\n\n#serial 15\n\ndnl Configured tools\nm4_define([valgrind_tool_list], [[memcheck], [helgrind], [drd], [sgcheck]])\nm4_set_add_all([valgrind_exp_tool_set], [sgcheck])\nm4_foreach([vgtool], [valgrind_tool_list],\n           [m4_define([en_dflt_valgrind_]vgtool, [on])])\n\nAC_DEFUN([AX_VALGRIND_DFLT],[\n\tm4_define([en_dflt_valgrind_$1], [$2])\n])dnl\n\nAC_DEFUN([AX_VALGRIND_CHECK],[\n\tdnl Check for --enable-valgrind\n\tAC_ARG_ENABLE([valgrind],\n\t\t\t\t  [AS_HELP_STRING([--enable-valgrind], [Whether to enable Valgrind on the unit tests (requires GNU make)])],\n\t\t\t\t  [enable_valgrind=$enableval],[enable_valgrind=no])\n\n\tAS_IF([test \"$enable_valgrind\" != \"no\"],[\n\t\t# Check for Valgrind.\n\t\tAC_CHECK_PROG([VALGRIND],[valgrind],[valgrind])\n\t\tAS_IF([test \"$VALGRIND\" = \"\"],[\n\t\t\tAS_IF([test \"$enable_valgrind\" = \"yes\"],[\n\t\t\t\tAC_MSG_ERROR([Could not find valgrind; either install it or reconfigure with --disable-valgrind])\n\t\t\t],[\n\t\t\t\tenable_valgrind=no\n\t\t\t])\n\t\t],[\n\t\t\tenable_valgrind=yes\n\t\t])\n\t])\n\n\tAM_CONDITIONAL([VALGRIND_ENABLED],[test \"$enable_valgrind\" = \"yes\"])\n\tAC_SUBST([VALGRIND_ENABLED],[$enable_valgrind])\n\n\t# Check for Valgrind tools we care about.\n\t[valgrind_enabled_tools=]\n\tm4_foreach([vgtool],[valgrind_tool_list],[\n\t\tAC_ARG_ENABLE([valgrind-]vgtool,\n\t\t    m4_if(m4_defn([en_dflt_valgrind_]vgtool),[off],dnl\n[AS_HELP_STRING([--enable-valgrind-]vgtool, [Whether to use ]vgtool[ during the Valgrind tests])],dnl\n[AS_HELP_STRING([--disable-valgrind-]vgtool, [Whether to skip ]vgtool[ during the Valgrind tests])]),\n\t\t              [enable_valgrind_]vgtool[=$enableval],\n\t\t              [enable_valgrind_]vgtool[=])\n\t\tAS_IF([test \"$enable_valgrind\" = \"no\"],[\n\t\t\tenable_valgrind_]vgtool[=no],\n\t\t      [test \"$enable_valgrind_]vgtool[\" ]dnl\nm4_if(m4_defn([en_dflt_valgrind_]vgtool), [off], [= \"yes\"], [!= \"no\"]),[\n\t\t\tAC_CACHE_CHECK([for Valgrind tool ]vgtool,\n\t\t\t               [ax_cv_valgrind_tool_]vgtool,[\n\t\t\t\tax_cv_valgrind_tool_]vgtool[=no\n\t\t\t\tm4_set_contains([valgrind_exp_tool_set],vgtool,\n\t\t\t\t    [m4_define([vgtoolx],[exp-]vgtool)],\n\t\t\t\t    [m4_define([vgtoolx],vgtool)])\n\t\t\t\tAS_IF([`$VALGRIND --tool=]vgtoolx[ --help >/dev/null 2>&1`],[\n\t\t\t\t\tax_cv_valgrind_tool_]vgtool[=yes\n\t\t\t\t])\n\t\t\t])\n\t\t\tAS_IF([test \"$ax_cv_valgrind_tool_]vgtool[\" = \"no\"],[\n\t\t\t\tAS_IF([test \"$enable_valgrind_]vgtool[\" = \"yes\"],[\n\t\t\t\t\tAC_MSG_ERROR([Valgrind does not support ]vgtool[; reconfigure with --disable-valgrind-]vgtool)\n\t\t\t\t],[\n\t\t\t\t\tenable_valgrind_]vgtool[=no\n\t\t\t\t])\n\t\t\t],[\n\t\t\t\tenable_valgrind_]vgtool[=yes\n\t\t\t])\n\t\t])\n\t\tAS_IF([test \"$enable_valgrind_]vgtool[\" = \"yes\"],[\n\t\t\tvalgrind_enabled_tools=\"$valgrind_enabled_tools ]m4_bpatsubst(vgtool,[^exp-])[\"\n\t\t])\n\t\tAC_SUBST([ENABLE_VALGRIND_]vgtool,[$enable_valgrind_]vgtool)\n\t])\n\tAC_SUBST([valgrind_tools],[\"]m4_join([ ], valgrind_tool_list)[\"])\n\tAC_SUBST([valgrind_enabled_tools],[$valgrind_enabled_tools])\n\n[VALGRIND_CHECK_RULES='\n# Valgrind check\n#\n# Optional:\n#  - VALGRIND_SUPPRESSIONS_FILES: Space-separated list of Valgrind suppressions\n#    files to load. (Default: empty)\n#  - VALGRIND_FLAGS: General flags to pass to all Valgrind tools.\n#    (Default: --num-callers=30)\n#  - VALGRIND_$toolname_FLAGS: Flags to pass to Valgrind $toolname (one of:\n#    memcheck, helgrind, drd, sgcheck). (Default: various)\n\n# Optional variables\nVALGRIND_SUPPRESSIONS ?= $(addprefix --suppressions=,$(VALGRIND_SUPPRESSIONS_FILES))\nVALGRIND_FLAGS ?= --num-callers=30\nVALGRIND_memcheck_FLAGS ?= --leak-check=full --show-reachable=no\nVALGRIND_helgrind_FLAGS ?= --history-level=approx\nVALGRIND_drd_FLAGS ?=\nVALGRIND_sgcheck_FLAGS ?=\n\n# Internal use\nvalgrind_log_files = $(addprefix test-suite-,$(addsuffix .log,$(valgrind_tools)))\n\nvalgrind_memcheck_flags = --tool=memcheck $(VALGRIND_memcheck_FLAGS)\nvalgrind_helgrind_flags = --tool=helgrind $(VALGRIND_helgrind_FLAGS)\nvalgrind_drd_flags = --tool=drd $(VALGRIND_drd_FLAGS)\nvalgrind_sgcheck_flags = --tool=exp-sgcheck $(VALGRIND_sgcheck_FLAGS)\n\nvalgrind_quiet = $(valgrind_quiet_$(V))\nvalgrind_quiet_ = $(valgrind_quiet_$(AM_DEFAULT_VERBOSITY))\nvalgrind_quiet_0 = --quiet\nvalgrind_v_use   = $(valgrind_v_use_$(V))\nvalgrind_v_use_  = $(valgrind_v_use_$(AM_DEFAULT_VERBOSITY))\nvalgrind_v_use_0 = @echo \"  USE   \" $(patsubst check-valgrind-%,%,$''@):;\n\n# Support running with and without libtool.\nifneq ($(LIBTOOL),)\nvalgrind_lt = $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=execute\nelse\nvalgrind_lt =\nendif\n\n# Use recursive makes in order to ignore errors during check\ncheck-valgrind:\nifeq ($(VALGRIND_ENABLED),yes)\n\t$(A''M_V_at)$(MAKE) $(AM_MAKEFLAGS) -k \\\n\t\t$(foreach tool, $(valgrind_enabled_tools), check-valgrind-$(tool))\nelse\n\t@echo \"Need to use GNU make and reconfigure with --enable-valgrind\"\nendif\n\n# Valgrind running\nVALGRIND_TESTS_ENVIRONMENT = \\\n\t$(TESTS_ENVIRONMENT) \\\n\tenv VALGRIND=$(VALGRIND) \\\n\tG_SLICE=always-malloc,debug-blocks \\\n\tG_DEBUG=fatal-warnings,fatal-criticals,gc-friendly\n\nVALGRIND_LOG_COMPILER = \\\n\t$(valgrind_lt) \\\n\t$(VALGRIND) $(VALGRIND_SUPPRESSIONS) --error-exitcode=1 $(VALGRIND_FLAGS)\n\ndefine valgrind_tool_rule =\ncheck-valgrind-$(1):\nifeq ($$(VALGRIND_ENABLED)-$$(ENABLE_VALGRIND_$(1)),yes-yes)\n\t$$(valgrind_v_use)$$(MAKE) check-TESTS \\\n\t\tTESTS_ENVIRONMENT=\"$$(VALGRIND_TESTS_ENVIRONMENT)\" \\\n\t\tLOG_COMPILER=\"$$(VALGRIND_LOG_COMPILER)\" \\\n\t\tLOG_FLAGS=\"$$(valgrind_$(1)_flags)\" \\\n\t\tTEST_SUITE_LOG=test-suite-$(1).log\nelse ifeq ($$(VALGRIND_ENABLED),yes)\n\t@echo \"Need to reconfigure with --enable-valgrind-$(1)\"\nelse\n\t@echo \"Need to reconfigure with --enable-valgrind\"\nendif\nendef\n\n$(foreach tool,$(valgrind_tools),$(eval $(call valgrind_tool_rule,$(tool))))\n\nA''M_DISTCHECK_CONFIGURE_FLAGS ?=\nA''M_DISTCHECK_CONFIGURE_FLAGS += --disable-valgrind\n\nMOSTLYCLEANFILES ?=\nMOSTLYCLEANFILES += $(valgrind_log_files)\n\n.PHONY: check-valgrind $(add-prefix check-valgrind-,$(valgrind_tools))\n']\n\n\tAS_IF([test \"$enable_valgrind\" != \"yes\"], [\n\t\tVALGRIND_CHECK_RULES='\ncheck-valgrind:\n\t@echo \"Need to use GNU make and reconfigure with --enable-valgrind\"'\n\t])\n\n\tAC_SUBST([VALGRIND_CHECK_RULES])\n\tm4_ifdef([_AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE([VALGRIND_CHECK_RULES])])\n])\n"
  },
  {
    "path": "m4/ld-output-def.m4",
    "content": "# ld-output-def.m4 serial 2\ndnl Copyright (C) 2008-2013 Free Software Foundation, Inc.\ndnl This file is free software; the Free Software Foundation\ndnl gives unlimited permission to copy and/or distribute it,\ndnl with or without modifications, as long as this notice is preserved.\n\ndnl From Simon Josefsson\n\n# gl_LD_OUTPUT_DEF()\n# -------------\n# Check if linker supports -Wl,--output-def and define automake\n# conditional HAVE_LD_OUTPUT_DEF if it is.\nAC_DEFUN([gl_LD_OUTPUT_DEF],\n[\n  AC_CACHE_CHECK([if gcc/ld supports -Wl,--output-def],\n    [gl_cv_ld_output_def],\n    [if test \"$enable_shared\" = no; then\n       gl_cv_ld_output_def=\"not needed, shared libraries are disabled\"\n     else\n       gl_ldflags_save=$LDFLAGS\n       LDFLAGS=\"-Wl,--output-def,conftest.def\"\n       AC_LINK_IFELSE([AC_LANG_PROGRAM([])],\n                   [gl_cv_ld_output_def=yes],\n                   [gl_cv_ld_output_def=no])\n       rm -f conftest.def\n       LDFLAGS=\"$gl_ldflags_save\"\n     fi])\n  AM_CONDITIONAL([HAVE_LD_OUTPUT_DEF], test \"x$gl_cv_ld_output_def\" = \"xyes\")\n])\n"
  },
  {
    "path": "packaging/dotnet-core/libsodium.pkgproj",
    "content": "<Project Sdk=\"Microsoft.NET.Sdk\">\n\n  <PropertyGroup>\n    <TargetFramework>netstandard2.0</TargetFramework>\n    <NoBuild>true</NoBuild>\n    <IncludeBuildOutput>false</IncludeBuildOutput>\n    <SuppressDependenciesWhenPacking>true</SuppressDependenciesWhenPacking>\n  </PropertyGroup>\n\n  <PropertyGroup>\n    <PackageId>libsodium</PackageId>\n    <Version>1.0.23.0</Version>\n    <Authors>Frank Denis</Authors>\n    <Description>Internal implementation package not meant for direct consumption. Please do not reference directly.</Description>\n    <Copyright>&#169; $([System.DateTime]::UtcNow.ToString(yyyy)) Frank Denis</Copyright>\n    <PackageLicenseExpression>ISC</PackageLicenseExpression>\n    <PackageRequireLicenseAcceptance>true</PackageRequireLicenseAcceptance>\n    <PackageProjectUrl>https://libsodium.org/</PackageProjectUrl>\n    <RepositoryUrl>https://github.com/jedisct1/libsodium.git</RepositoryUrl>\n    <RepositoryType>git</RepositoryType>\n    <MinClientVersion>4.0</MinClientVersion>\n  </PropertyGroup>\n\n  <ItemGroup>\n    <Content Include=\"LICENSE\" PackagePath=\"\" />\n    <Content Include=\"AUTHORS\" PackagePath=\"\" />\n    <Content Include=\"ChangeLog\" PackagePath=\"\" />\n    <Content Include=\"runtimes/win-x64/native/libsodium.dll\" PackagePath=\"runtimes/win-x64/native/\" />\n    <Content Include=\"runtimes/win-x86/native/libsodium.dll\" PackagePath=\"runtimes/win-x86/native/\" />\n    <Content Include=\"runtimes/win-arm64/native/libsodium.dll\" PackagePath=\"runtimes/win-arm64/native/\" />\n    <Content Include=\"runtimes/linux-x64/native/libsodium.so\" PackagePath=\"runtimes/linux-x64/native/\" />\n    <Content Include=\"runtimes/linux-arm/native/libsodium.so\" PackagePath=\"runtimes/linux-arm/native/\" />\n    <Content Include=\"runtimes/linux-arm64/native/libsodium.so\" PackagePath=\"runtimes/linux-arm64/native/\" />\n    <Content Include=\"runtimes/linux-musl-x64/native/libsodium.so\" PackagePath=\"runtimes/linux-musl-x64/native/\" />\n    <Content Include=\"runtimes/linux-musl-arm/native/libsodium.so\" PackagePath=\"runtimes/linux-musl-arm/native/\" />\n    <Content Include=\"runtimes/linux-musl-arm64/native/libsodium.so\" PackagePath=\"runtimes/linux-musl-arm64/native/\" />\n    <Content Include=\"runtimes/osx-x64/native/libsodium.dylib\" PackagePath=\"runtimes/osx-x64/native/\" />\n    <Content Include=\"runtimes/osx-arm64/native/libsodium.dylib\" PackagePath=\"runtimes/osx-arm64/native/\" />\n    <Content Include=\"runtimes/ios-arm64/native/libsodium.a\" PackagePath=\"runtimes/ios-arm64/native/\" />\n    <Content Include=\"runtimes/tvos-arm64/native/libsodium.a\" PackagePath=\"runtimes/tvos-arm64/native/\" />\n    <Content Include=\"runtimes/maccatalyst-x64/native/libsodium.a\" PackagePath=\"runtimes/maccatalyst-x64/native/\" />\n    <Content Include=\"runtimes/maccatalyst-arm64/native/libsodium.a\" PackagePath=\"runtimes/maccatalyst-arm64/native/\" />\n    <Content Include=\"runtimes/android-arm64/native/libsodium.so\" PackagePath=\"runtimes/android-arm64/native/\" />\n    <Content Include=\"runtimes/android-arm/native/libsodium.so\" PackagePath=\"runtimes/android-arm/native/\" />\n    <Content Include=\"runtimes/android-x64/native/libsodium.so\" PackagePath=\"runtimes/android-x64/native/\" />\n    <Content Include=\"runtimes/android-x86/native/libsodium.so\" PackagePath=\"runtimes/android-x86/native/\" />\n  </ItemGroup>\n\n</Project>\n"
  },
  {
    "path": "packaging/dotnet-core/test.cs",
    "content": "using System;\r\nusing System.Runtime.InteropServices;\r\n\r\ninternal static class Program\r\n{\r\n    internal static int Main()\r\n    {\r\n        Console.WriteLine(\"sodium_version_string: {0}\", Marshal.PtrToStringAnsi(sodium_version_string()));\r\n        Console.WriteLine(\"sodium_library_version_major: {0}\", sodium_library_version_major());\r\n        Console.WriteLine(\"sodium_library_version_minor: {0}\", sodium_library_version_minor());\r\n        Console.WriteLine(\"sodium_library_minimal: {0}\", sodium_library_minimal());\r\n        int error = sodium_init();\r\n        Console.WriteLine(\"sodium_init: {0}\", error);\r\n        if (error == 0)\r\n        {\r\n            randombytes_buf(out ulong buf, (UIntPtr)sizeof(ulong));\r\n            Console.WriteLine(\"randombytes_buf: 0x'{0:X8}'\", buf);\r\n            Console.WriteLine(\"crypto_aead_aes256gcm_is_available: {0}\", crypto_aead_aes256gcm_is_available());\r\n        }\r\n        return error == 0 ? 0 : 1;\r\n    }\r\n\r\n    [DllImport(\"libsodium\", CallingConvention = CallingConvention.Cdecl)]\r\n    private static extern int crypto_aead_aes256gcm_is_available();\r\n\r\n    [DllImport(\"libsodium\", CallingConvention = CallingConvention.Cdecl)]\r\n    private static extern void randombytes_buf(out ulong buf, UIntPtr size);\r\n\r\n    [DllImport(\"libsodium\", CallingConvention = CallingConvention.Cdecl)]\r\n    private static extern int sodium_init();\r\n\r\n    [DllImport(\"libsodium\", CallingConvention = CallingConvention.Cdecl)]\r\n    private static extern int sodium_library_version_major();\r\n\r\n    [DllImport(\"libsodium\", CallingConvention = CallingConvention.Cdecl)]\r\n    private static extern int sodium_library_minimal();\r\n\r\n    [DllImport(\"libsodium\", CallingConvention = CallingConvention.Cdecl)]\r\n    private static extern int sodium_library_version_minor();\r\n\r\n    [DllImport(\"libsodium\", CallingConvention = CallingConvention.Cdecl)]\r\n    private static extern IntPtr sodium_version_string();\r\n}\r\n"
  },
  {
    "path": "regen-msvc/libsodium.vcxproj",
    "content": "﻿<?xml version=\"1.0\" encoding=\"utf-8\"?>\r\n<Project DefaultTargets=\"Build\" ToolsVersion=\"4.0\" xmlns=\"http://schemas.microsoft.com/developer/msbuild/2003\">\r\n  <ItemGroup Label=\"ProjectConfigurations\">\r\n    <ProjectConfiguration Include=\"DebugDLL|Win32\">\r\n      <Configuration>DebugDLL</Configuration>\r\n      <Platform>Win32</Platform>\r\n    </ProjectConfiguration>\r\n    <ProjectConfiguration Include=\"DebugDLL|x64\">\r\n      <Configuration>DebugDLL</Configuration>\r\n      <Platform>x64</Platform>\r\n    </ProjectConfiguration>\r\n    <ProjectConfiguration Include=\"Debug|Win32\">\r\n      <Configuration>Debug</Configuration>\r\n      <Platform>Win32</Platform>\r\n    </ProjectConfiguration>\r\n    <ProjectConfiguration Include=\"Debug|x64\">\r\n      <Configuration>Debug</Configuration>\r\n      <Platform>x64</Platform>\r\n    </ProjectConfiguration>\r\n    <ProjectConfiguration Include=\"ReleaseDLL|Win32\">\r\n      <Configuration>ReleaseDLL</Configuration>\r\n      <Platform>Win32</Platform>\r\n    </ProjectConfiguration>\r\n    <ProjectConfiguration Include=\"ReleaseDLL|x64\">\r\n      <Configuration>ReleaseDLL</Configuration>\r\n      <Platform>x64</Platform>\r\n    </ProjectConfiguration>\r\n    <ProjectConfiguration Include=\"Release|Win32\">\r\n      <Configuration>Release</Configuration>\r\n      <Platform>Win32</Platform>\r\n    </ProjectConfiguration>\r\n    <ProjectConfiguration Include=\"Release|x64\">\r\n      <Configuration>Release</Configuration>\r\n      <Platform>x64</Platform>\r\n    </ProjectConfiguration>\r\n  </ItemGroup>\r\n  <PropertyGroup Label=\"Globals\">\r\n    <ProjectGuid>{A185B162-6CB6-4502-B03F-B56F7699A8D9}</ProjectGuid>\r\n    <Keyword>Win32Proj</Keyword>\r\n    <RootNamespace>libsodium</RootNamespace>\r\n  </PropertyGroup>\r\n  <Import Project=\"$(VCTargetsPath)\\Microsoft.Cpp.Default.props\" />\r\n  <PropertyGroup Condition=\"'$(Configuration)|$(Platform)'=='Debug|Win32'\" Label=\"Configuration\">\r\n    <ConfigurationType>StaticLibrary</ConfigurationType>\r\n    <UseDebugLibraries>true</UseDebugLibraries>\r\n    <CharacterSet>MultiByte</CharacterSet>\r\n    <WholeProgramOptimization>false</WholeProgramOptimization>\r\n    <PlatformToolset>v140</PlatformToolset>\r\n  </PropertyGroup>\r\n  <PropertyGroup Condition=\"'$(Configuration)|$(Platform)'=='DebugDLL|Win32'\" Label=\"Configuration\">\r\n    <ConfigurationType>DynamicLibrary</ConfigurationType>\r\n    <UseDebugLibraries>true</UseDebugLibraries>\r\n    <CharacterSet>MultiByte</CharacterSet>\r\n    <WholeProgramOptimization>false</WholeProgramOptimization>\r\n    <PlatformToolset>v140</PlatformToolset>\r\n  </PropertyGroup>\r\n  <PropertyGroup Condition=\"'$(Configuration)|$(Platform)'=='Debug|x64'\" Label=\"Configuration\">\r\n    <ConfigurationType>StaticLibrary</ConfigurationType>\r\n    <UseDebugLibraries>true</UseDebugLibraries>\r\n    <CharacterSet>MultiByte</CharacterSet>\r\n    <WholeProgramOptimization>false</WholeProgramOptimization>\r\n    <PlatformToolset>v140</PlatformToolset>\r\n  </PropertyGroup>\r\n  <PropertyGroup Condition=\"'$(Configuration)|$(Platform)'=='DebugDLL|x64'\" Label=\"Configuration\">\r\n    <ConfigurationType>DynamicLibrary</ConfigurationType>\r\n    <UseDebugLibraries>true</UseDebugLibraries>\r\n    <CharacterSet>MultiByte</CharacterSet>\r\n    <WholeProgramOptimization>false</WholeProgramOptimization>\r\n    <PlatformToolset>v140</PlatformToolset>\r\n  </PropertyGroup>\r\n  <PropertyGroup Condition=\"'$(Configuration)|$(Platform)'=='Release|Win32'\" Label=\"Configuration\">\r\n    <ConfigurationType>StaticLibrary</ConfigurationType>\r\n    <UseDebugLibraries>false</UseDebugLibraries>\r\n    <WholeProgramOptimization>true</WholeProgramOptimization>\r\n    <CharacterSet>MultiByte</CharacterSet>\r\n    <PlatformToolset>v140</PlatformToolset>\r\n  </PropertyGroup>\r\n  <PropertyGroup Condition=\"'$(Configuration)|$(Platform)'=='ReleaseDLL|Win32'\" Label=\"Configuration\">\r\n    <ConfigurationType>DynamicLibrary</ConfigurationType>\r\n    <UseDebugLibraries>false</UseDebugLibraries>\r\n    <WholeProgramOptimization>true</WholeProgramOptimization>\r\n    <CharacterSet>MultiByte</CharacterSet>\r\n    <PlatformToolset>v140</PlatformToolset>\r\n  </PropertyGroup>\r\n  <PropertyGroup Condition=\"'$(Configuration)|$(Platform)'=='Release|x64'\" Label=\"Configuration\">\r\n    <ConfigurationType>StaticLibrary</ConfigurationType>\r\n    <UseDebugLibraries>false</UseDebugLibraries>\r\n    <WholeProgramOptimization>true</WholeProgramOptimization>\r\n    <CharacterSet>MultiByte</CharacterSet>\r\n    <PlatformToolset>v140</PlatformToolset>\r\n  </PropertyGroup>\r\n  <PropertyGroup Condition=\"'$(Configuration)|$(Platform)'=='ReleaseDLL|x64'\" Label=\"Configuration\">\r\n    <ConfigurationType>DynamicLibrary</ConfigurationType>\r\n    <UseDebugLibraries>false</UseDebugLibraries>\r\n    <WholeProgramOptimization>true</WholeProgramOptimization>\r\n    <CharacterSet>MultiByte</CharacterSet>\r\n    <PlatformToolset>v140</PlatformToolset>\r\n  </PropertyGroup>\r\n  <Import Project=\"$(VCTargetsPath)\\Microsoft.Cpp.props\" />\r\n  <ImportGroup Label=\"ExtensionSettings\">\r\n  </ImportGroup>\r\n  <ImportGroup Label=\"PropertySheets\" Condition=\"'$(Configuration)|$(Platform)'=='Debug|Win32'\">\r\n    <Import Project=\"$(UserRootDir)\\Microsoft.Cpp.$(Platform).user.props\" Condition=\"exists('$(UserRootDir)\\Microsoft.Cpp.$(Platform).user.props')\" Label=\"LocalAppDataPlatform\" />\r\n    <Import Project=\"msvc-scripts\\sodium.props\" />\r\n  </ImportGroup>\r\n  <ImportGroup Condition=\"'$(Configuration)|$(Platform)'=='DebugDLL|Win32'\" Label=\"PropertySheets\">\r\n    <Import Project=\"$(UserRootDir)\\Microsoft.Cpp.$(Platform).user.props\" Condition=\"exists('$(UserRootDir)\\Microsoft.Cpp.$(Platform).user.props')\" Label=\"LocalAppDataPlatform\" />\r\n    <Import Project=\"msvc-scripts\\sodium.props\" />\r\n  </ImportGroup>\r\n  <ImportGroup Condition=\"'$(Configuration)|$(Platform)'=='Debug|x64'\" Label=\"PropertySheets\">\r\n    <Import Project=\"$(UserRootDir)\\Microsoft.Cpp.$(Platform).user.props\" Condition=\"exists('$(UserRootDir)\\Microsoft.Cpp.$(Platform).user.props')\" Label=\"LocalAppDataPlatform\" />\r\n    <Import Project=\"msvc-scripts\\sodium.props\" />\r\n  </ImportGroup>\r\n  <ImportGroup Condition=\"'$(Configuration)|$(Platform)'=='DebugDLL|x64'\" Label=\"PropertySheets\">\r\n    <Import Project=\"$(UserRootDir)\\Microsoft.Cpp.$(Platform).user.props\" Condition=\"exists('$(UserRootDir)\\Microsoft.Cpp.$(Platform).user.props')\" Label=\"LocalAppDataPlatform\" />\r\n    <Import Project=\"msvc-scripts\\sodium.props\" />\r\n  </ImportGroup>\r\n  <ImportGroup Label=\"PropertySheets\" Condition=\"'$(Configuration)|$(Platform)'=='Release|Win32'\">\r\n    <Import Project=\"$(UserRootDir)\\Microsoft.Cpp.$(Platform).user.props\" Condition=\"exists('$(UserRootDir)\\Microsoft.Cpp.$(Platform).user.props')\" Label=\"LocalAppDataPlatform\" />\r\n    <Import Project=\"msvc-scripts\\sodium.props\" />\r\n  </ImportGroup>\r\n  <ImportGroup Condition=\"'$(Configuration)|$(Platform)'=='ReleaseDLL|Win32'\" Label=\"PropertySheets\">\r\n    <Import Project=\"$(UserRootDir)\\Microsoft.Cpp.$(Platform).user.props\" Condition=\"exists('$(UserRootDir)\\Microsoft.Cpp.$(Platform).user.props')\" Label=\"LocalAppDataPlatform\" />\r\n    <Import Project=\"msvc-scripts\\sodium.props\" />\r\n  </ImportGroup>\r\n  <ImportGroup Condition=\"'$(Configuration)|$(Platform)'=='Release|x64'\" Label=\"PropertySheets\">\r\n    <Import Project=\"$(UserRootDir)\\Microsoft.Cpp.$(Platform).user.props\" Condition=\"exists('$(UserRootDir)\\Microsoft.Cpp.$(Platform).user.props')\" Label=\"LocalAppDataPlatform\" />\r\n    <Import Project=\"msvc-scripts\\sodium.props\" />\r\n  </ImportGroup>\r\n  <ImportGroup Condition=\"'$(Configuration)|$(Platform)'=='ReleaseDLL|x64'\" Label=\"PropertySheets\">\r\n    <Import Project=\"$(UserRootDir)\\Microsoft.Cpp.$(Platform).user.props\" Condition=\"exists('$(UserRootDir)\\Microsoft.Cpp.$(Platform).user.props')\" Label=\"LocalAppDataPlatform\" />\r\n    <Import Project=\"msvc-scripts\\sodium.props\" />\r\n  </ImportGroup>\r\n  <PropertyGroup Label=\"UserMacros\" />\r\n  <PropertyGroup Condition=\"'$(Configuration)|$(Platform)'=='Debug|Win32'\">\r\n    <LinkIncremental>true</LinkIncremental>\r\n    <OutDir>$(SolutionDir)Build\\$(Configuration)\\$(Platform)\\</OutDir>\r\n    <IntDir>$(SolutionDir)Build\\$(Configuration)\\$(Platform)\\Intermediate\\</IntDir>\r\n  </PropertyGroup>\r\n  <PropertyGroup Condition=\"'$(Configuration)|$(Platform)'=='DebugDLL|Win32'\">\r\n    <LinkIncremental>true</LinkIncremental>\r\n    <OutDir>$(SolutionDir)Build\\$(Configuration)\\$(Platform)\\</OutDir>\r\n    <IntDir>$(SolutionDir)Build\\$(Configuration)\\$(Platform)\\Intermediate\\</IntDir>\r\n  </PropertyGroup>\r\n  <PropertyGroup Condition=\"'$(Configuration)|$(Platform)'=='Debug|x64'\">\r\n    <LinkIncremental>true</LinkIncremental>\r\n    <OutDir>$(SolutionDir)Build\\$(Configuration)\\$(Platform)\\</OutDir>\r\n    <IntDir>$(SolutionDir)Build\\$(Configuration)\\$(Platform)\\Intermediate\\</IntDir>\r\n  </PropertyGroup>\r\n  <PropertyGroup Condition=\"'$(Configuration)|$(Platform)'=='DebugDLL|x64'\">\r\n    <LinkIncremental>true</LinkIncremental>\r\n    <OutDir>$(SolutionDir)Build\\$(Configuration)\\$(Platform)\\</OutDir>\r\n    <IntDir>$(SolutionDir)Build\\$(Configuration)\\$(Platform)\\Intermediate\\</IntDir>\r\n  </PropertyGroup>\r\n  <PropertyGroup Condition=\"'$(Configuration)|$(Platform)'=='Release|Win32'\">\r\n    <LinkIncremental>false</LinkIncremental>\r\n    <OutDir>$(SolutionDir)Build\\$(Configuration)\\$(Platform)\\</OutDir>\r\n    <IntDir>$(SolutionDir)Build\\$(Configuration)\\$(Platform)\\Intermediate\\</IntDir>\r\n  </PropertyGroup>\r\n  <PropertyGroup Condition=\"'$(Configuration)|$(Platform)'=='ReleaseDLL|Win32'\">\r\n    <LinkIncremental>false</LinkIncremental>\r\n    <OutDir>$(SolutionDir)Build\\$(Configuration)\\$(Platform)\\</OutDir>\r\n    <IntDir>$(SolutionDir)Build\\$(Configuration)\\$(Platform)\\Intermediate\\</IntDir>\r\n  </PropertyGroup>\r\n  <PropertyGroup Condition=\"'$(Configuration)|$(Platform)'=='Release|x64'\">\r\n    <LinkIncremental>false</LinkIncremental>\r\n    <OutDir>$(SolutionDir)Build\\$(Configuration)\\$(Platform)\\</OutDir>\r\n    <IntDir>$(SolutionDir)Build\\$(Configuration)\\$(Platform)\\Intermediate\\</IntDir>\r\n  </PropertyGroup>\r\n  <PropertyGroup Condition=\"'$(Configuration)|$(Platform)'=='ReleaseDLL|x64'\">\r\n    <LinkIncremental>false</LinkIncremental>\r\n    <OutDir>$(SolutionDir)Build\\$(Configuration)\\$(Platform)\\</OutDir>\r\n    <IntDir>$(SolutionDir)Build\\$(Configuration)\\$(Platform)\\Intermediate\\</IntDir>\r\n  </PropertyGroup>\r\n  <ItemDefinitionGroup Condition=\"'$(Configuration)|$(Platform)'=='Debug|Win32'\">\r\n    <ClCompile>\r\n      <PrecompiledHeader>\r\n      </PrecompiledHeader>\r\n      <WarningLevel>Level3</WarningLevel>\r\n      <Optimization>Disabled</Optimization>\r\n      <PreprocessorDefinitions>SODIUM_STATIC;SODIUM_EXPORT=;WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r\n      <DisableSpecificWarnings>4244;%(DisableSpecificWarnings)</DisableSpecificWarnings>\r\n      <RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>\r\n      <AdditionalIncludeDirectories>$(SolutionDir);$(SolutionDir)src\\libsodium\\include\\sodium;$(SolutionDir)src\\libsodium\\include\\sodium;$(SolutionDir)src\\libsodium\\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r\n    </ClCompile>\r\n    <Link>\r\n      <SubSystem>Console</SubSystem>\r\n      <GenerateDebugInformation>true</GenerateDebugInformation>\r\n    </Link>\r\n  </ItemDefinitionGroup>\r\n  <ItemDefinitionGroup Condition=\"'$(Configuration)|$(Platform)'=='DebugDLL|Win32'\">\r\n    <ClCompile>\r\n      <PrecompiledHeader>\r\n      </PrecompiledHeader>\r\n      <WarningLevel>Level3</WarningLevel>\r\n      <Optimization>Disabled</Optimization>\r\n      <PreprocessorDefinitions>SODIUM_EXPORT=__declspec(dllexport);SODIUM_DLL_EXPORT;WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r\n      <DisableSpecificWarnings>4244;%(DisableSpecificWarnings)</DisableSpecificWarnings>\r\n      <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>\r\n      <AdditionalIncludeDirectories>$(SolutionDir);$(SolutionDir)src\\libsodium\\include\\sodium;$(SolutionDir)src\\libsodium\\include\\sodium;$(SolutionDir)src\\libsodium\\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r\n    </ClCompile>\r\n    <Link>\r\n      <SubSystem>Console</SubSystem>\r\n      <GenerateDebugInformation>true</GenerateDebugInformation>\r\n    </Link>\r\n  </ItemDefinitionGroup>\r\n  <ItemDefinitionGroup Condition=\"'$(Configuration)|$(Platform)'=='Debug|x64'\">\r\n    <ClCompile>\r\n      <PrecompiledHeader>\r\n      </PrecompiledHeader>\r\n      <WarningLevel>Level3</WarningLevel>\r\n      <Optimization>Disabled</Optimization>\r\n      <PreprocessorDefinitions>SODIUM_STATIC;SODIUM_EXPORT=;WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r\n      <DisableSpecificWarnings>4244;%(DisableSpecificWarnings)</DisableSpecificWarnings>\r\n      <RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>\r\n    </ClCompile>\r\n    <Link>\r\n      <SubSystem>Console</SubSystem>\r\n      <GenerateDebugInformation>true</GenerateDebugInformation>\r\n    </Link>\r\n  </ItemDefinitionGroup>\r\n  <ItemDefinitionGroup Condition=\"'$(Configuration)|$(Platform)'=='DebugDLL|x64'\">\r\n    <ClCompile>\r\n      <PrecompiledHeader>\r\n      </PrecompiledHeader>\r\n      <WarningLevel>Level3</WarningLevel>\r\n      <Optimization>Disabled</Optimization>\r\n      <PreprocessorDefinitions>SODIUM_EXPORT=__declspec(dllexport);SODIUM_DLL_EXPORT;WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r\n      <DisableSpecificWarnings>4244;%(DisableSpecificWarnings)</DisableSpecificWarnings>\r\n      <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>\r\n    </ClCompile>\r\n    <Link>\r\n      <SubSystem>Console</SubSystem>\r\n      <GenerateDebugInformation>true</GenerateDebugInformation>\r\n    </Link>\r\n  </ItemDefinitionGroup>\r\n  <ItemDefinitionGroup Condition=\"'$(Configuration)|$(Platform)'=='Release|Win32'\">\r\n    <ClCompile>\r\n      <WarningLevel>Level3</WarningLevel>\r\n      <PrecompiledHeader>\r\n      </PrecompiledHeader>\r\n      <Optimization>Full</Optimization>\r\n      <FunctionLevelLinking>true</FunctionLevelLinking>\r\n      <IntrinsicFunctions>true</IntrinsicFunctions>\r\n      <PreprocessorDefinitions>SODIUM_STATIC;SODIUM_EXPORT=;WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r\n      <DisableSpecificWarnings>4244;%(DisableSpecificWarnings)</DisableSpecificWarnings>\r\n      <RuntimeLibrary>MultiThreaded</RuntimeLibrary>\r\n      <FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>\r\n      <AdditionalIncludeDirectories>$(SolutionDir);$(SolutionDir)src\\libsodium\\include\\sodium;$(SolutionDir)src\\libsodium\\include\\sodium;$(SolutionDir)src\\libsodium\\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r\n    </ClCompile>\r\n    <Link>\r\n      <SubSystem>Console</SubSystem>\r\n      <GenerateDebugInformation>true</GenerateDebugInformation>\r\n      <EnableCOMDATFolding>true</EnableCOMDATFolding>\r\n      <OptimizeReferences>true</OptimizeReferences>\r\n    </Link>\r\n  </ItemDefinitionGroup>\r\n  <ItemDefinitionGroup Condition=\"'$(Configuration)|$(Platform)'=='ReleaseDLL|Win32'\">\r\n    <ClCompile>\r\n      <WarningLevel>Level3</WarningLevel>\r\n      <PrecompiledHeader>\r\n      </PrecompiledHeader>\r\n      <Optimization>Full</Optimization>\r\n      <FunctionLevelLinking>true</FunctionLevelLinking>\r\n      <IntrinsicFunctions>true</IntrinsicFunctions>\r\n      <PreprocessorDefinitions>SODIUM_EXPORT=__declspec(dllexport);SODIUM_DLL_EXPORT;WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r\n      <DisableSpecificWarnings>4244;%(DisableSpecificWarnings)</DisableSpecificWarnings>\r\n      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>\r\n      <FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>\r\n      <AdditionalIncludeDirectories>$(SolutionDir);$(SolutionDir)src\\libsodium\\include\\sodium;$(SolutionDir)src\\libsodium\\include\\sodium;$(SolutionDir)src\\libsodium\\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r\n    </ClCompile>\r\n    <Link>\r\n      <SubSystem>Console</SubSystem>\r\n      <GenerateDebugInformation>true</GenerateDebugInformation>\r\n      <EnableCOMDATFolding>true</EnableCOMDATFolding>\r\n      <OptimizeReferences>true</OptimizeReferences>\r\n    </Link>\r\n  </ItemDefinitionGroup>\r\n  <ItemDefinitionGroup Condition=\"'$(Configuration)|$(Platform)'=='Release|x64'\">\r\n    <ClCompile>\r\n      <WarningLevel>Level3</WarningLevel>\r\n      <PrecompiledHeader>\r\n      </PrecompiledHeader>\r\n      <Optimization>MaxSpeed</Optimization>\r\n      <FunctionLevelLinking>true</FunctionLevelLinking>\r\n      <IntrinsicFunctions>true</IntrinsicFunctions>\r\n      <PreprocessorDefinitions>SODIUM_STATIC;SODIUM_EXPORT=;WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r\n      <DisableSpecificWarnings>4244;%(DisableSpecificWarnings)</DisableSpecificWarnings>\r\n      <RuntimeLibrary>MultiThreaded</RuntimeLibrary>\r\n    </ClCompile>\r\n    <Link>\r\n      <SubSystem>Console</SubSystem>\r\n      <GenerateDebugInformation>true</GenerateDebugInformation>\r\n      <EnableCOMDATFolding>true</EnableCOMDATFolding>\r\n      <OptimizeReferences>true</OptimizeReferences>\r\n    </Link>\r\n  </ItemDefinitionGroup>\r\n  <ItemDefinitionGroup Condition=\"'$(Configuration)|$(Platform)'=='ReleaseDLL|x64'\">\r\n    <ClCompile>\r\n      <WarningLevel>Level3</WarningLevel>\r\n      <PrecompiledHeader>\r\n      </PrecompiledHeader>\r\n      <Optimization>MaxSpeed</Optimization>\r\n      <FunctionLevelLinking>true</FunctionLevelLinking>\r\n      <IntrinsicFunctions>true</IntrinsicFunctions>\r\n      <PreprocessorDefinitions>SODIUM_EXPORT=__declspec(dllexport);SODIUM_DLL_EXPORT;WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r\n      <DisableSpecificWarnings>4244;%(DisableSpecificWarnings)</DisableSpecificWarnings>\r\n      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>\r\n    </ClCompile>\r\n    <Link>\r\n      <SubSystem>Console</SubSystem>\r\n      <GenerateDebugInformation>true</GenerateDebugInformation>\r\n      <EnableCOMDATFolding>true</EnableCOMDATFolding>\r\n      <OptimizeReferences>true</OptimizeReferences>\r\n    </Link>\r\n  </ItemDefinitionGroup>\r\n  <ItemGroup>\r\n    \r\n  </ItemGroup>\r\n  <ItemGroup>\r\n    \r\n  </ItemGroup>\r\n  <Import Project=\"$(VCTargetsPath)\\Microsoft.Cpp.targets\" />\r\n  <ImportGroup Label=\"ExtensionTargets\">\r\n  </ImportGroup>\r\n</Project>\r\n"
  },
  {
    "path": "regen-msvc/libsodium.vcxproj.filters",
    "content": "﻿<?xml version=\"1.0\" encoding=\"utf-8\"?>\r\n<Project ToolsVersion=\"4.0\" xmlns=\"http://schemas.microsoft.com/developer/msbuild/2003\">\r\n  <ItemGroup>\r\n    <Filter Include=\"Source Files\">\r\n      <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>\r\n      <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>\r\n    </Filter>\r\n    <Filter Include=\"Header Files\">\r\n      <UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>\r\n      <Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions>\r\n    </Filter>\r\n    <Filter Include=\"Resource Files\">\r\n      <UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>\r\n      <Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms</Extensions>\r\n    </Filter>\r\n  </ItemGroup>\r\n  <ItemGroup>\r\n    \r\n  </ItemGroup>\r\n  <ItemGroup>\r\n    \r\n  </ItemGroup>\r\n</Project>\r\n"
  },
  {
    "path": "regen-msvc/libsodium.vcxproj.filters.tpl",
    "content": "﻿<?xml version=\"1.0\" encoding=\"utf-8\"?>\r\n<Project ToolsVersion=\"4.0\" xmlns=\"http://schemas.microsoft.com/developer/msbuild/2003\">\r\n  <ItemGroup>\r\n    <None Include=\"..\\..\\..\\..\\packaging\\nuget\\package.bat\">\r\n      <Filter>packaging</Filter>\r\n    </None>\r\n    <None Include=\"..\\..\\..\\..\\packaging\\nuget\\package.gsl\">\r\n      <Filter>packaging</Filter>\r\n    </None>\r\n    <None Include=\"..\\..\\..\\..\\packaging\\nuget\\package.nuspec\">\r\n      <Filter>packaging</Filter>\r\n    </None>\r\n    <None Include=\"..\\..\\..\\..\\packaging\\nuget\\package.targets\">\r\n      <Filter>packaging</Filter>\r\n    </None>\r\n    <None Include=\"..\\..\\..\\..\\packaging\\nuget\\package.config\">\r\n      <Filter>packaging</Filter>\r\n    </None>\r\n    <Xml Include=\"..\\..\\..\\..\\packaging\\nuget\\package.xml\">\r\n      <Filter>packaging</Filter>\r\n    </Xml>\r\n  </ItemGroup>\r\n  <ItemGroup>\r\n    <ResourceCompile Include=\"..\\..\\resource.rc\" />\r\n  </ItemGroup>\r\n  <ItemGroup>\r\n    {{f1}}\r\n  </ItemGroup>\r\n  <ItemGroup>\r\n    {{f2}}\r\n  </ItemGroup>\r\n  <ItemGroup>\r\n    {{fd}}\r\n  </ItemGroup>\r\n</Project>\r\n"
  },
  {
    "path": "regen-msvc/libsodium.vcxproj.tpl",
    "content": "﻿<?xml version=\"1.0\" encoding=\"utf-8\"?>\r\n<Project DefaultTargets=\"Build\" ToolsVersion=\"4.0\"\r\n  xmlns=\"http://schemas.microsoft.com/developer/msbuild/2003\">\r\n  <PropertyGroup Label=\"Globals\">\r\n    <ProjectGuid>{A185B162-6CB6-4502-B03F-B56F7699A8D9}</ProjectGuid>\r\n    <ProjectName>libsodium</ProjectName>\r\n    <PlatformToolset>{{platform}}</PlatformToolset>\r\n  </PropertyGroup>\r\n  <ItemGroup Label=\"ProjectConfigurations\">\r\n    {{configurations}}\r\n  </ItemGroup>\r\n  <PropertyGroup Label=\"Configuration\">\r\n    <ConfigurationType Condition=\"$(Configuration.IndexOf('DLL')) == -1\">StaticLibrary</ConfigurationType>\r\n    <ConfigurationType Condition=\"$(Configuration.IndexOf('DLL')) != -1\">DynamicLibrary</ConfigurationType>\r\n  </PropertyGroup>\r\n  <Import Project=\"$(VCTargetsPath)\\Microsoft.Cpp.Default.props\" />\r\n  <Import Project=\"$(VCTargetsPath)\\Microsoft.Cpp.props\" />\r\n  <ImportGroup Label=\"PropertySheets\">\r\n    <Import Project=\"$(ProjectDir)..\\..\\properties\\$(Configuration).props\" />\r\n    <Import Project=\"$(ProjectDir)..\\..\\properties\\Output.props\" />\r\n    <Import Project=\"$(ProjectDir)$(ProjectName).props\" />\r\n  </ImportGroup>\r\n  <ItemGroup>\r\n    {{v1}}\r\n  </ItemGroup>\r\n  <ItemGroup>\r\n    {{v2}}\r\n    <ClInclude Include=\"..\\..\\resource.h\" />\r\n  </ItemGroup>\r\n  <ItemGroup>\r\n    <ResourceCompile Include=\"..\\..\\resource.rc\">\r\n    </ResourceCompile>\r\n  </ItemGroup>\r\n  <Import Project=\"$(VCTargetsPath)\\Microsoft.Cpp.targets\" />\r\n  <ImportGroup Label=\"ExtensionTargets\">\r\n  </ImportGroup>\r\n</Project>\r\n"
  },
  {
    "path": "regen-msvc/regen-msvc.py",
    "content": "#! /usr/bin/env python3\n\nimport glob\nimport os\nimport uuid\n\ndirs = set()\n\ntlv1 = \"\"\nfor file in glob.iglob(\"src/libsodium/**/*.c\", recursive=True):\n    file = file.replace(\"/\", \"\\\\\")\n    tlv1 = tlv1 + '    <ClCompile Include=\"..\\\\..\\\\{}\" />\\r\\n'.format(file)\n\ntlv2 = \"\"\nfor file in glob.iglob(\"src/libsodium/**/*.h\", recursive=True):\n    file = file.replace(\"/\", \"\\\\\")\n    tlv2 = tlv2 + '    <ClInclude Include=\"..\\\\..\\\\{}\" />\\r\\n'.format(file)\n\ntlf1 = \"\"\nfor file in glob.iglob(\"src/libsodium/**/*.c\", recursive=True):\n    file = file.replace(\"/\", \"\\\\\")\n    tlf1 = tlf1 + '    <ClCompile Include=\"..\\\\..\\\\{}\">\\r\\n'.format(file)\n    tlf1 = tlf1 + \"      <Filter>Source Files</Filter>\\r\\n\"\n    tlf1 = tlf1 + \"    </ClCompile>\\r\\n\"\n\ntlf2 = \"\"\nfor file in glob.iglob(\"src/libsodium/**/*.h\", recursive=True):\n    file = file.replace(\"/\", \"\\\\\")\n    tlf2 = tlf2 + '    <ClInclude Include=\"..\\\\..\\\\{}\">\\r\\n'.format(file)\n    tlf2 = tlf2 + \"      <Filter>Header Files</Filter>\\r\\n\"\n    tlf2 = tlf2 + \"    </ClInclude>\\r\\n\"\n\nv1 = \"\"\nfor file in glob.iglob(\"src/libsodium/**/*.c\", recursive=True):\n    file = file.replace(\"/\", \"\\\\\")\n    v1 = v1 + '    <ClCompile Include=\"..\\\\..\\\\..\\\\..\\\\{}\" />\\r\\n'.format(file)\n\nv2 = \"\"\nfor file in glob.iglob(\"src/libsodium/**/*.h\", recursive=True):\n    file = file.replace(\"/\", \"\\\\\")\n    v2 = v2 + '    <ClInclude Include=\"..\\\\..\\\\..\\\\..\\\\{}\" />\\r\\n'.format(file)\n\nf1 = \"\"\nfor file in glob.iglob(\"src/libsodium/**/*.c\", recursive=True):\n    basedir = os.path.dirname(file).replace(\"src/libsodium/\", \"\")\n    t = basedir\n    while t != \"\":\n        dirs.add(t)\n        t = os.path.dirname(t)\n    basedir = basedir.replace(\"/\", \"\\\\\")\n    file = file.replace(\"/\", \"\\\\\")\n    f1 = f1 + '    <ClCompile Include=\"..\\\\..\\\\..\\\\..\\\\{}\">\\r\\n'.format(file)\n    f1 = f1 + \"      <Filter>{}</Filter>\\r\\n\".format(basedir)\n    f1 = f1 + \"    </ClCompile>\\r\\n\"\n\nf2 = \"\"\nfor file in glob.iglob(\"src/libsodium/**/*.h\", recursive=True):\n    basedir = os.path.dirname(file).replace(\"src/libsodium/\", \"\")\n    t = basedir\n    while t != \"\":\n        dirs.add(t)\n        t = os.path.dirname(t)\n    basedir = basedir.replace(\"/\", \"\\\\\")\n    file = file.replace(\"/\", \"\\\\\")\n    f2 = f2 + '    <ClInclude Include=\"..\\\\..\\\\..\\\\..\\\\{}\">\\r\\n'.format(file)\n    f2 = f2 + \"      <Filter>{}</Filter>\\r\\n\".format(basedir)\n    f2 = f2 + \"    </ClInclude>\\r\\n\"\n\nfd = \"\"\ndirs = list(dirs)\ndirs.sort()\nfor dir in dirs:\n    dir = dir.replace(\"/\", \"\\\\\")\n    uid = uuid.uuid3(uuid.UUID(bytes=b\"LibSodiumMSVCUID\"), dir)\n    fd = fd + '    <Filter Include=\"{}\">\\r\\n'.format(dir)\n    fd = fd + \"      <UniqueIdentifier>{{{}}}</UniqueIdentifier>\\r\\n\".format(uid)\n    fd = fd + \"    </Filter>\\r\\n\"\n\n\ndef get_project_configurations(vs_version):\n    projconfig = \"\"\n    configs = [\n        \"DebugDLL\",\n        \"ReleaseDLL\",\n        \"DebugLIB\",\n        \"ReleaseLIB\",\n        \"DebugLTCG\",\n        \"ReleaseLTCG\",\n    ]\n    platforms = [\"Win32\", \"x64\"]\n    # add arm64 platform only for v142+ toolchain (VS2019+)\n    if vs_version >= 142:\n        platforms.append(\"ARM64\")\n    for config in configs:\n        for platform in platforms:\n            projconfig = (\n                projconfig\n                + '    <ProjectConfiguration Include=\"{}|{}\">\\r\\n'.format(\n                    config, platform\n                )\n            )\n            projconfig = (\n                projconfig\n                + \"      <Configuration>{}</Configuration>\\r\\n\".format(config)\n            )\n            projconfig = projconfig + \"      <Platform>{}</Platform>\\r\\n\".format(\n                platform\n            )\n            projconfig = projconfig + \"    </ProjectConfiguration>\\r\\n\"\n    return projconfig\n\n\ndef apply_template(tplfile, outfile, sbox):\n    tpl = \"\"\n    with open(tplfile, \"rb\") as fd:\n        tpl = fd.read()\n    for s in sbox.keys():\n        tpl = tpl.replace(\n            str.encode(\"{{\" + s + \"}}\", \"utf8\"), str.encode(str.strip(sbox[s]), \"utf8\")\n        )\n\n    with open(outfile, \"wb\") as fd:\n        fd.write(tpl)\n\n\nsbox = {\n    \"tlv1\": tlv1,\n    \"tlv2\": tlv2,\n    \"tlf1\": tlf1,\n    \"tlf2\": tlf2,\n    \"v1\": v1,\n    \"v2\": v2,\n    \"f1\": f1,\n    \"f2\": f2,\n    \"fd\": fd,\n}\n\nsd = os.path.dirname(os.path.realpath(__file__))\n\napply_template(\n    sd + \"/tl_libsodium.vcxproj.filters.tpl\",\n    \"ci/appveyor/libsodium.vcxproj.filters\",\n    sbox,\n)\n\nsbox.update({\"platform\": \"v140\"})\nsbox.update({\"configurations\": get_project_configurations(140)})\napply_template(sd + \"/tl_libsodium.vcxproj.tpl\", \"ci/appveyor/libsodium.vcxproj\", sbox)\n\napply_template(\n    sd + \"/libsodium.vcxproj.filters.tpl\",\n    \"builds/msvc/vs2026/libsodium/libsodium.vcxproj.filters\",\n    sbox,\n)\napply_template(\n    sd + \"/libsodium.vcxproj.filters.tpl\",\n    \"builds/msvc/vs2022/libsodium/libsodium.vcxproj.filters\",\n    sbox,\n)\napply_template(\n    sd + \"/libsodium.vcxproj.filters.tpl\",\n    \"builds/msvc/vs2019/libsodium/libsodium.vcxproj.filters\",\n    sbox,\n)\napply_template(\n    sd + \"/libsodium.vcxproj.filters.tpl\",\n    \"builds/msvc/vs2017/libsodium/libsodium.vcxproj.filters\",\n    sbox,\n)\napply_template(\n    sd + \"/libsodium.vcxproj.filters.tpl\",\n    \"builds/msvc/vs2015/libsodium/libsodium.vcxproj.filters\",\n    sbox,\n)\napply_template(\n    sd + \"/libsodium.vcxproj.filters.tpl\",\n    \"builds/msvc/vs2013/libsodium/libsodium.vcxproj.filters\",\n    sbox,\n)\napply_template(\n    sd + \"/libsodium.vcxproj.filters.tpl\",\n    \"builds/msvc/vs2012/libsodium/libsodium.vcxproj.filters\",\n    sbox,\n)\napply_template(\n    sd + \"/libsodium.vcxproj.filters.tpl\",\n    \"builds/msvc/vs2010/libsodium/libsodium.vcxproj.filters\",\n    sbox,\n)\n\nsbox.update({\"platform\": \"v145\"})\nsbox.update({\"configurations\": get_project_configurations(145)})\napply_template(\n    sd + \"/libsodium.vcxproj.tpl\",\n    \"builds/msvc/vs2026/libsodium/libsodium.vcxproj\",\n    sbox,\n)\n\nsbox.update({\"platform\": \"v143\"})\nsbox.update({\"configurations\": get_project_configurations(143)})\napply_template(\n    sd + \"/libsodium.vcxproj.tpl\",\n    \"builds/msvc/vs2022/libsodium/libsodium.vcxproj\",\n    sbox,\n)\n\nsbox.update({\"platform\": \"v142\"})\nsbox.update({\"configurations\": get_project_configurations(142)})\napply_template(\n    sd + \"/libsodium.vcxproj.tpl\",\n    \"builds/msvc/vs2019/libsodium/libsodium.vcxproj\",\n    sbox,\n)\n\nsbox.update({\"platform\": \"v141\"})\nsbox.update({\"configurations\": get_project_configurations(141)})\napply_template(\n    sd + \"/libsodium.vcxproj.tpl\",\n    \"builds/msvc/vs2017/libsodium/libsodium.vcxproj\",\n    sbox,\n)\n\nsbox.update({\"platform\": \"v140\"})\nsbox.update({\"configurations\": get_project_configurations(140)})\napply_template(\n    sd + \"/libsodium.vcxproj.tpl\",\n    \"builds/msvc/vs2015/libsodium/libsodium.vcxproj\",\n    sbox,\n)\n\nsbox.update({\"platform\": \"v120\"})\nsbox.update({\"configurations\": get_project_configurations(120)})\napply_template(\n    sd + \"/libsodium.vcxproj.tpl\",\n    \"builds/msvc/vs2013/libsodium/libsodium.vcxproj\",\n    sbox,\n)\n\nsbox.update({\"platform\": \"v110\"})\nsbox.update({\"configurations\": get_project_configurations(110)})\napply_template(\n    sd + \"/libsodium.vcxproj.tpl\",\n    \"builds/msvc/vs2012/libsodium/libsodium.vcxproj\",\n    sbox,\n)\n\nsbox.update({\"platform\": \"v100\"})\nsbox.update({\"configurations\": get_project_configurations(100)})\napply_template(\n    sd + \"/libsodium.vcxproj.tpl\",\n    \"builds/msvc/vs2010/libsodium/libsodium.vcxproj\",\n    sbox,\n)\n"
  },
  {
    "path": "regen-msvc/tl_libsodium.vcxproj.filters.tpl",
    "content": "﻿<?xml version=\"1.0\" encoding=\"utf-8\"?>\r\n<Project ToolsVersion=\"4.0\" xmlns=\"http://schemas.microsoft.com/developer/msbuild/2003\">\r\n  <ItemGroup>\r\n    <Filter Include=\"Source Files\">\r\n      <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>\r\n      <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>\r\n    </Filter>\r\n    <Filter Include=\"Header Files\">\r\n      <UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>\r\n      <Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions>\r\n    </Filter>\r\n    <Filter Include=\"Resource Files\">\r\n      <UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>\r\n      <Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms</Extensions>\r\n    </Filter>\r\n  </ItemGroup>\r\n  <ItemGroup>\r\n    {{tlf1}}\r\n  </ItemGroup>\r\n  <ItemGroup>\r\n    {{tlf2}}\r\n  </ItemGroup>\r\n</Project>\r\n"
  },
  {
    "path": "regen-msvc/tl_libsodium.vcxproj.tpl",
    "content": "﻿<?xml version=\"1.0\" encoding=\"utf-8\"?>\r\n<Project DefaultTargets=\"Build\" ToolsVersion=\"4.0\"\r\n  xmlns=\"http://schemas.microsoft.com/developer/msbuild/2003\">\r\n  <ItemGroup Label=\"ProjectConfigurations\">\r\n    <ProjectConfiguration Include=\"DebugDLL|Win32\">\r\n      <Configuration>DebugDLL</Configuration>\r\n      <Platform>Win32</Platform>\r\n    </ProjectConfiguration>\r\n    <ProjectConfiguration Include=\"DebugDLL|x64\">\r\n      <Configuration>DebugDLL</Configuration>\r\n      <Platform>x64</Platform>\r\n    </ProjectConfiguration>\r\n    <ProjectConfiguration Include=\"Debug|Win32\">\r\n      <Configuration>Debug</Configuration>\r\n      <Platform>Win32</Platform>\r\n    </ProjectConfiguration>\r\n    <ProjectConfiguration Include=\"Debug|x64\">\r\n      <Configuration>Debug</Configuration>\r\n      <Platform>x64</Platform>\r\n    </ProjectConfiguration>\r\n    <ProjectConfiguration Include=\"ReleaseDLL|Win32\">\r\n      <Configuration>ReleaseDLL</Configuration>\r\n      <Platform>Win32</Platform>\r\n    </ProjectConfiguration>\r\n    <ProjectConfiguration Include=\"ReleaseDLL|x64\">\r\n      <Configuration>ReleaseDLL</Configuration>\r\n      <Platform>x64</Platform>\r\n    </ProjectConfiguration>\r\n    <ProjectConfiguration Include=\"Release|Win32\">\r\n      <Configuration>Release</Configuration>\r\n      <Platform>Win32</Platform>\r\n    </ProjectConfiguration>\r\n    <ProjectConfiguration Include=\"Release|x64\">\r\n      <Configuration>Release</Configuration>\r\n      <Platform>x64</Platform>\r\n    </ProjectConfiguration>\r\n  </ItemGroup>\r\n  <PropertyGroup Label=\"Globals\">\r\n    <ProjectGuid>{A185B162-6CB6-4502-B03F-B56F7699A8D9}</ProjectGuid>\r\n    <Keyword>Win32Proj</Keyword>\r\n    <RootNamespace>libsodium</RootNamespace>\r\n  </PropertyGroup>\r\n  <Import Project=\"$(VCTargetsPath)\\Microsoft.Cpp.Default.props\" />\r\n  <PropertyGroup Condition=\"'$(Configuration)|$(Platform)'=='Debug|Win32'\" Label=\"Configuration\">\r\n    <ConfigurationType>StaticLibrary</ConfigurationType>\r\n    <UseDebugLibraries>true</UseDebugLibraries>\r\n    <CharacterSet>MultiByte</CharacterSet>\r\n    <WholeProgramOptimization>false</WholeProgramOptimization>\r\n    <PlatformToolset>{{platform}}</PlatformToolset>\r\n  </PropertyGroup>\r\n  <PropertyGroup Condition=\"'$(Configuration)|$(Platform)'=='DebugDLL|Win32'\" Label=\"Configuration\">\r\n    <ConfigurationType>DynamicLibrary</ConfigurationType>\r\n    <UseDebugLibraries>true</UseDebugLibraries>\r\n    <CharacterSet>MultiByte</CharacterSet>\r\n    <WholeProgramOptimization>false</WholeProgramOptimization>\r\n    <PlatformToolset>{{platform}}</PlatformToolset>\r\n  </PropertyGroup>\r\n  <PropertyGroup Condition=\"'$(Configuration)|$(Platform)'=='Debug|x64'\" Label=\"Configuration\">\r\n    <ConfigurationType>StaticLibrary</ConfigurationType>\r\n    <UseDebugLibraries>true</UseDebugLibraries>\r\n    <CharacterSet>MultiByte</CharacterSet>\r\n    <WholeProgramOptimization>false</WholeProgramOptimization>\r\n    <PlatformToolset>{{platform}}</PlatformToolset>\r\n  </PropertyGroup>\r\n  <PropertyGroup Condition=\"'$(Configuration)|$(Platform)'=='DebugDLL|x64'\" Label=\"Configuration\">\r\n    <ConfigurationType>DynamicLibrary</ConfigurationType>\r\n    <UseDebugLibraries>true</UseDebugLibraries>\r\n    <CharacterSet>MultiByte</CharacterSet>\r\n    <WholeProgramOptimization>false</WholeProgramOptimization>\r\n    <PlatformToolset>{{platform}}</PlatformToolset>\r\n  </PropertyGroup>\r\n  <PropertyGroup Condition=\"'$(Configuration)|$(Platform)'=='Release|Win32'\" Label=\"Configuration\">\r\n    <ConfigurationType>StaticLibrary</ConfigurationType>\r\n    <UseDebugLibraries>false</UseDebugLibraries>\r\n    <WholeProgramOptimization>true</WholeProgramOptimization>\r\n    <CharacterSet>MultiByte</CharacterSet>\r\n    <PlatformToolset>{{platform}}</PlatformToolset>\r\n  </PropertyGroup>\r\n  <PropertyGroup Condition=\"'$(Configuration)|$(Platform)'=='ReleaseDLL|Win32'\" Label=\"Configuration\">\r\n    <ConfigurationType>DynamicLibrary</ConfigurationType>\r\n    <UseDebugLibraries>false</UseDebugLibraries>\r\n    <WholeProgramOptimization>true</WholeProgramOptimization>\r\n    <CharacterSet>MultiByte</CharacterSet>\r\n    <PlatformToolset>{{platform}}</PlatformToolset>\r\n  </PropertyGroup>\r\n  <PropertyGroup Condition=\"'$(Configuration)|$(Platform)'=='Release|x64'\" Label=\"Configuration\">\r\n    <ConfigurationType>StaticLibrary</ConfigurationType>\r\n    <UseDebugLibraries>false</UseDebugLibraries>\r\n    <WholeProgramOptimization>true</WholeProgramOptimization>\r\n    <CharacterSet>MultiByte</CharacterSet>\r\n    <PlatformToolset>{{platform}}</PlatformToolset>\r\n  </PropertyGroup>\r\n  <PropertyGroup Condition=\"'$(Configuration)|$(Platform)'=='ReleaseDLL|x64'\" Label=\"Configuration\">\r\n    <ConfigurationType>DynamicLibrary</ConfigurationType>\r\n    <UseDebugLibraries>false</UseDebugLibraries>\r\n    <WholeProgramOptimization>true</WholeProgramOptimization>\r\n    <CharacterSet>MultiByte</CharacterSet>\r\n    <PlatformToolset>{{platform}}</PlatformToolset>\r\n  </PropertyGroup>\r\n  <Import Project=\"$(VCTargetsPath)\\Microsoft.Cpp.props\" />\r\n  <ImportGroup Label=\"ExtensionSettings\">\r\n  </ImportGroup>\r\n  <ImportGroup Label=\"PropertySheets\" Condition=\"'$(Configuration)|$(Platform)'=='Debug|Win32'\">\r\n    <Import Project=\"$(UserRootDir)\\Microsoft.Cpp.$(Platform).user.props\" Condition=\"exists('$(UserRootDir)\\Microsoft.Cpp.$(Platform).user.props')\" Label=\"LocalAppDataPlatform\" />\r\n    <Import Project=\"msvc-scripts\\sodium.props\" />\r\n  </ImportGroup>\r\n  <ImportGroup Condition=\"'$(Configuration)|$(Platform)'=='DebugDLL|Win32'\" Label=\"PropertySheets\">\r\n    <Import Project=\"$(UserRootDir)\\Microsoft.Cpp.$(Platform).user.props\" Condition=\"exists('$(UserRootDir)\\Microsoft.Cpp.$(Platform).user.props')\" Label=\"LocalAppDataPlatform\" />\r\n    <Import Project=\"msvc-scripts\\sodium.props\" />\r\n  </ImportGroup>\r\n  <ImportGroup Condition=\"'$(Configuration)|$(Platform)'=='Debug|x64'\" Label=\"PropertySheets\">\r\n    <Import Project=\"$(UserRootDir)\\Microsoft.Cpp.$(Platform).user.props\" Condition=\"exists('$(UserRootDir)\\Microsoft.Cpp.$(Platform).user.props')\" Label=\"LocalAppDataPlatform\" />\r\n    <Import Project=\"msvc-scripts\\sodium.props\" />\r\n  </ImportGroup>\r\n  <ImportGroup Condition=\"'$(Configuration)|$(Platform)'=='DebugDLL|x64'\" Label=\"PropertySheets\">\r\n    <Import Project=\"$(UserRootDir)\\Microsoft.Cpp.$(Platform).user.props\" Condition=\"exists('$(UserRootDir)\\Microsoft.Cpp.$(Platform).user.props')\" Label=\"LocalAppDataPlatform\" />\r\n    <Import Project=\"msvc-scripts\\sodium.props\" />\r\n  </ImportGroup>\r\n  <ImportGroup Label=\"PropertySheets\" Condition=\"'$(Configuration)|$(Platform)'=='Release|Win32'\">\r\n    <Import Project=\"$(UserRootDir)\\Microsoft.Cpp.$(Platform).user.props\" Condition=\"exists('$(UserRootDir)\\Microsoft.Cpp.$(Platform).user.props')\" Label=\"LocalAppDataPlatform\" />\r\n    <Import Project=\"msvc-scripts\\sodium.props\" />\r\n  </ImportGroup>\r\n  <ImportGroup Condition=\"'$(Configuration)|$(Platform)'=='ReleaseDLL|Win32'\" Label=\"PropertySheets\">\r\n    <Import Project=\"$(UserRootDir)\\Microsoft.Cpp.$(Platform).user.props\" Condition=\"exists('$(UserRootDir)\\Microsoft.Cpp.$(Platform).user.props')\" Label=\"LocalAppDataPlatform\" />\r\n    <Import Project=\"msvc-scripts\\sodium.props\" />\r\n  </ImportGroup>\r\n  <ImportGroup Condition=\"'$(Configuration)|$(Platform)'=='Release|x64'\" Label=\"PropertySheets\">\r\n    <Import Project=\"$(UserRootDir)\\Microsoft.Cpp.$(Platform).user.props\" Condition=\"exists('$(UserRootDir)\\Microsoft.Cpp.$(Platform).user.props')\" Label=\"LocalAppDataPlatform\" />\r\n    <Import Project=\"msvc-scripts\\sodium.props\" />\r\n  </ImportGroup>\r\n  <ImportGroup Condition=\"'$(Configuration)|$(Platform)'=='ReleaseDLL|x64'\" Label=\"PropertySheets\">\r\n    <Import Project=\"$(UserRootDir)\\Microsoft.Cpp.$(Platform).user.props\" Condition=\"exists('$(UserRootDir)\\Microsoft.Cpp.$(Platform).user.props')\" Label=\"LocalAppDataPlatform\" />\r\n    <Import Project=\"msvc-scripts\\sodium.props\" />\r\n  </ImportGroup>\r\n  <PropertyGroup Label=\"UserMacros\" />\r\n  <PropertyGroup Condition=\"'$(Configuration)|$(Platform)'=='Debug|Win32'\">\r\n    <LinkIncremental>true</LinkIncremental>\r\n    <OutDir>$(SolutionDir)Build\\$(Configuration)\\$(Platform)\\</OutDir>\r\n    <IntDir>$(SolutionDir)Build\\$(Configuration)\\$(Platform)\\Intermediate\\</IntDir>\r\n  </PropertyGroup>\r\n  <PropertyGroup Condition=\"'$(Configuration)|$(Platform)'=='DebugDLL|Win32'\">\r\n    <LinkIncremental>true</LinkIncremental>\r\n    <OutDir>$(SolutionDir)Build\\$(Configuration)\\$(Platform)\\</OutDir>\r\n    <IntDir>$(SolutionDir)Build\\$(Configuration)\\$(Platform)\\Intermediate\\</IntDir>\r\n  </PropertyGroup>\r\n  <PropertyGroup Condition=\"'$(Configuration)|$(Platform)'=='Debug|x64'\">\r\n    <LinkIncremental>true</LinkIncremental>\r\n    <OutDir>$(SolutionDir)Build\\$(Configuration)\\$(Platform)\\</OutDir>\r\n    <IntDir>$(SolutionDir)Build\\$(Configuration)\\$(Platform)\\Intermediate\\</IntDir>\r\n  </PropertyGroup>\r\n  <PropertyGroup Condition=\"'$(Configuration)|$(Platform)'=='DebugDLL|x64'\">\r\n    <LinkIncremental>true</LinkIncremental>\r\n    <OutDir>$(SolutionDir)Build\\$(Configuration)\\$(Platform)\\</OutDir>\r\n    <IntDir>$(SolutionDir)Build\\$(Configuration)\\$(Platform)\\Intermediate\\</IntDir>\r\n  </PropertyGroup>\r\n  <PropertyGroup Condition=\"'$(Configuration)|$(Platform)'=='Release|Win32'\">\r\n    <LinkIncremental>false</LinkIncremental>\r\n    <OutDir>$(SolutionDir)Build\\$(Configuration)\\$(Platform)\\</OutDir>\r\n    <IntDir>$(SolutionDir)Build\\$(Configuration)\\$(Platform)\\Intermediate\\</IntDir>\r\n  </PropertyGroup>\r\n  <PropertyGroup Condition=\"'$(Configuration)|$(Platform)'=='ReleaseDLL|Win32'\">\r\n    <LinkIncremental>false</LinkIncremental>\r\n    <OutDir>$(SolutionDir)Build\\$(Configuration)\\$(Platform)\\</OutDir>\r\n    <IntDir>$(SolutionDir)Build\\$(Configuration)\\$(Platform)\\Intermediate\\</IntDir>\r\n  </PropertyGroup>\r\n  <PropertyGroup Condition=\"'$(Configuration)|$(Platform)'=='Release|x64'\">\r\n    <LinkIncremental>false</LinkIncremental>\r\n    <OutDir>$(SolutionDir)Build\\$(Configuration)\\$(Platform)\\</OutDir>\r\n    <IntDir>$(SolutionDir)Build\\$(Configuration)\\$(Platform)\\Intermediate\\</IntDir>\r\n  </PropertyGroup>\r\n  <PropertyGroup Condition=\"'$(Configuration)|$(Platform)'=='ReleaseDLL|x64'\">\r\n    <LinkIncremental>false</LinkIncremental>\r\n    <OutDir>$(SolutionDir)Build\\$(Configuration)\\$(Platform)\\</OutDir>\r\n    <IntDir>$(SolutionDir)Build\\$(Configuration)\\$(Platform)\\Intermediate\\</IntDir>\r\n  </PropertyGroup>\r\n  <ItemDefinitionGroup Condition=\"'$(Configuration)|$(Platform)'=='Debug|Win32'\">\r\n    <ClCompile>\r\n      <PrecompiledHeader>\r\n      </PrecompiledHeader>\r\n      <WarningLevel>Level3</WarningLevel>\r\n      <Optimization>Disabled</Optimization>\r\n      <PreprocessorDefinitions>SODIUM_STATIC;SODIUM_EXPORT=;WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r\n      <DisableSpecificWarnings>4244;%(DisableSpecificWarnings)</DisableSpecificWarnings>\r\n      <RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>\r\n      <AdditionalIncludeDirectories>$(SolutionDir);$(SolutionDir)..\\..\\src\\libsodium\\include\\sodium;$(SolutionDir)..\\..\\src\\libsodium\\include\\sodium;$(SolutionDir)..\\..\\src\\libsodium\\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r\n    </ClCompile>\r\n    <Link>\r\n      <SubSystem>Console</SubSystem>\r\n      <GenerateDebugInformation>true</GenerateDebugInformation>\r\n    </Link>\r\n  </ItemDefinitionGroup>\r\n  <ItemDefinitionGroup Condition=\"'$(Configuration)|$(Platform)'=='DebugDLL|Win32'\">\r\n    <ClCompile>\r\n      <PrecompiledHeader>\r\n      </PrecompiledHeader>\r\n      <WarningLevel>Level3</WarningLevel>\r\n      <Optimization>Disabled</Optimization>\r\n      <PreprocessorDefinitions>SODIUM_EXPORT=__declspec(dllexport);SODIUM_DLL_EXPORT;WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r\n      <DisableSpecificWarnings>4244;%(DisableSpecificWarnings)</DisableSpecificWarnings>\r\n      <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>\r\n      <AdditionalIncludeDirectories>$(SolutionDir)..\\..\\;$(SolutionDir)..\\..\\src\\libsodium\\include\\sodium;$(SolutionDir)..\\..\\src\\libsodium\\include\\sodium;$(SolutionDir)..\\..\\src\\libsodium\\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r\n    </ClCompile>\r\n    <Link>\r\n      <SubSystem>Console</SubSystem>\r\n      <GenerateDebugInformation>true</GenerateDebugInformation>\r\n    </Link>\r\n  </ItemDefinitionGroup>\r\n  <ItemDefinitionGroup Condition=\"'$(Configuration)|$(Platform)'=='Debug|x64'\">\r\n    <ClCompile>\r\n      <PrecompiledHeader>\r\n      </PrecompiledHeader>\r\n      <WarningLevel>Level3</WarningLevel>\r\n      <Optimization>Disabled</Optimization>\r\n      <PreprocessorDefinitions>SODIUM_STATIC;SODIUM_EXPORT=;WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r\n      <DisableSpecificWarnings>4244;%(DisableSpecificWarnings)</DisableSpecificWarnings>\r\n      <RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>\r\n    </ClCompile>\r\n    <Link>\r\n      <SubSystem>Console</SubSystem>\r\n      <GenerateDebugInformation>true</GenerateDebugInformation>\r\n    </Link>\r\n  </ItemDefinitionGroup>\r\n  <ItemDefinitionGroup Condition=\"'$(Configuration)|$(Platform)'=='DebugDLL|x64'\">\r\n    <ClCompile>\r\n      <PrecompiledHeader>\r\n      </PrecompiledHeader>\r\n      <WarningLevel>Level3</WarningLevel>\r\n      <Optimization>Disabled</Optimization>\r\n      <PreprocessorDefinitions>SODIUM_EXPORT=__declspec(dllexport);SODIUM_DLL_EXPORT;WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r\n      <DisableSpecificWarnings>4244;%(DisableSpecificWarnings)</DisableSpecificWarnings>\r\n      <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>\r\n    </ClCompile>\r\n    <Link>\r\n      <SubSystem>Console</SubSystem>\r\n      <GenerateDebugInformation>true</GenerateDebugInformation>\r\n    </Link>\r\n  </ItemDefinitionGroup>\r\n  <ItemDefinitionGroup Condition=\"'$(Configuration)|$(Platform)'=='Release|Win32'\">\r\n    <ClCompile>\r\n      <WarningLevel>Level3</WarningLevel>\r\n      <PrecompiledHeader>\r\n      </PrecompiledHeader>\r\n      <Optimization>Full</Optimization>\r\n      <FunctionLevelLinking>true</FunctionLevelLinking>\r\n      <IntrinsicFunctions>true</IntrinsicFunctions>\r\n      <PreprocessorDefinitions>SODIUM_STATIC;SODIUM_EXPORT=;WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r\n      <DisableSpecificWarnings>4244;%(DisableSpecificWarnings)</DisableSpecificWarnings>\r\n      <RuntimeLibrary>MultiThreaded</RuntimeLibrary>\r\n      <FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>\r\n      <AdditionalIncludeDirectories>$(SolutionDir);$(SolutionDir)..\\..\\src\\libsodium\\include\\sodium;$(SolutionDir)..\\..\\src\\libsodium\\include\\sodium;$(SolutionDir)..\\..\\src\\libsodium\\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r\n    </ClCompile>\r\n    <Link>\r\n      <SubSystem>Console</SubSystem>\r\n      <GenerateDebugInformation>true</GenerateDebugInformation>\r\n      <EnableCOMDATFolding>true</EnableCOMDATFolding>\r\n      <OptimizeReferences>true</OptimizeReferences>\r\n    </Link>\r\n  </ItemDefinitionGroup>\r\n  <ItemDefinitionGroup Condition=\"'$(Configuration)|$(Platform)'=='ReleaseDLL|Win32'\">\r\n    <ClCompile>\r\n      <WarningLevel>Level3</WarningLevel>\r\n      <PrecompiledHeader>\r\n      </PrecompiledHeader>\r\n      <Optimization>Full</Optimization>\r\n      <FunctionLevelLinking>true</FunctionLevelLinking>\r\n      <IntrinsicFunctions>true</IntrinsicFunctions>\r\n      <PreprocessorDefinitions>SODIUM_EXPORT=__declspec(dllexport);SODIUM_DLL_EXPORT;WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r\n      <DisableSpecificWarnings>4244;%(DisableSpecificWarnings)</DisableSpecificWarnings>\r\n      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>\r\n      <FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>\r\n      <AdditionalIncludeDirectories>$(SolutionDir);$(SolutionDir)..\\..\\src\\libsodium\\include\\sodium;$(SolutionDir)..\\..\\src\\libsodium\\include\\sodium;$(SolutionDir)..\\..\\src\\libsodium\\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r\n    </ClCompile>\r\n    <Link>\r\n      <SubSystem>Console</SubSystem>\r\n      <GenerateDebugInformation>true</GenerateDebugInformation>\r\n      <EnableCOMDATFolding>true</EnableCOMDATFolding>\r\n      <OptimizeReferences>true</OptimizeReferences>\r\n    </Link>\r\n  </ItemDefinitionGroup>\r\n  <ItemDefinitionGroup Condition=\"'$(Configuration)|$(Platform)'=='Release|x64'\">\r\n    <ClCompile>\r\n      <WarningLevel>Level3</WarningLevel>\r\n      <PrecompiledHeader>\r\n      </PrecompiledHeader>\r\n      <Optimization>MaxSpeed</Optimization>\r\n      <FunctionLevelLinking>true</FunctionLevelLinking>\r\n      <IntrinsicFunctions>true</IntrinsicFunctions>\r\n      <PreprocessorDefinitions>SODIUM_STATIC;SODIUM_EXPORT=;WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r\n      <DisableSpecificWarnings>4244;%(DisableSpecificWarnings)</DisableSpecificWarnings>\r\n      <RuntimeLibrary>MultiThreaded</RuntimeLibrary>\r\n    </ClCompile>\r\n    <Link>\r\n      <SubSystem>Console</SubSystem>\r\n      <GenerateDebugInformation>true</GenerateDebugInformation>\r\n      <EnableCOMDATFolding>true</EnableCOMDATFolding>\r\n      <OptimizeReferences>true</OptimizeReferences>\r\n    </Link>\r\n  </ItemDefinitionGroup>\r\n  <ItemDefinitionGroup Condition=\"'$(Configuration)|$(Platform)'=='ReleaseDLL|x64'\">\r\n    <ClCompile>\r\n      <WarningLevel>Level3</WarningLevel>\r\n      <PrecompiledHeader>\r\n      </PrecompiledHeader>\r\n      <Optimization>MaxSpeed</Optimization>\r\n      <FunctionLevelLinking>true</FunctionLevelLinking>\r\n      <IntrinsicFunctions>true</IntrinsicFunctions>\r\n      <PreprocessorDefinitions>SODIUM_EXPORT=__declspec(dllexport);SODIUM_DLL_EXPORT;WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r\n      <DisableSpecificWarnings>4244;%(DisableSpecificWarnings)</DisableSpecificWarnings>\r\n      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>\r\n    </ClCompile>\r\n    <Link>\r\n      <SubSystem>Console</SubSystem>\r\n      <GenerateDebugInformation>true</GenerateDebugInformation>\r\n      <EnableCOMDATFolding>true</EnableCOMDATFolding>\r\n      <OptimizeReferences>true</OptimizeReferences>\r\n    </Link>\r\n  </ItemDefinitionGroup>\r\n  <ItemGroup>\r\n    {{tlv1}}\r\n  </ItemGroup>\r\n  <ItemGroup>\r\n    {{tlv2}}\r\n    <ClInclude Include=\"..\\..\\builds\\msvc\\resource.h\" />\r\n  </ItemGroup>\r\n  <ItemGroup>\r\n    <ResourceCompile Include=\"..\\..\\builds\\msvc\\resource.rc\">\r\n    </ResourceCompile>\r\n  </ItemGroup>\r\n  <Import Project=\"$(VCTargetsPath)\\Microsoft.Cpp.targets\" />\r\n  <ImportGroup Label=\"ExtensionTargets\">\r\n  </ImportGroup>\r\n</Project>\r\n"
  },
  {
    "path": "src/Makefile.am",
    "content": "\nSUBDIRS = \\\n\tlibsodium\n"
  },
  {
    "path": "src/libsodium/Makefile.am",
    "content": "lib_LTLIBRARIES = \\\n\tlibsodium.la\n\nlibsodium_la_SOURCES = \\\n\tcrypto_aead/aegis128l/aead_aegis128l.c \\\n\tcrypto_aead/aegis128l/aegis128l_common.h \\\n\tcrypto_aead/aegis128l/aegis128l_soft.c \\\n\tcrypto_aead/aegis128l/aegis128l_soft.h \\\n\tcrypto_aead/aegis128l/implementations.h \\\n\tcrypto_aead/aegis256/aead_aegis256.c \\\n\tcrypto_aead/aegis256/aegis256_common.h \\\n\tcrypto_aead/aegis256/aegis256_soft.c \\\n\tcrypto_aead/aegis256/aegis256_soft.h \\\n\tcrypto_aead/aegis256/implementations.h \\\n\tcrypto_aead/aes256gcm/aead_aes256gcm.c \\\n\tcrypto_aead/chacha20poly1305/aead_chacha20poly1305.c \\\n\tcrypto_aead/xchacha20poly1305/aead_xchacha20poly1305.c \\\n\tcrypto_auth/crypto_auth.c \\\n\tcrypto_auth/hmacsha256/auth_hmacsha256.c \\\n\tcrypto_auth/hmacsha512/auth_hmacsha512.c \\\n\tcrypto_auth/hmacsha512256/auth_hmacsha512256.c \\\n\tcrypto_box/crypto_box.c \\\n\tcrypto_box/crypto_box_easy.c \\\n\tcrypto_box/crypto_box_seal.c \\\n\tcrypto_box/curve25519xsalsa20poly1305/box_curve25519xsalsa20poly1305.c \\\n\tcrypto_core/ed25519/core_h2c.c \\\n\tcrypto_core/ed25519/core_h2c.h \\\n\tcrypto_core/ed25519/ref10/ed25519_ref10.c \\\n\tcrypto_core/hchacha20/core_hchacha20.c \\\n\tcrypto_core/hsalsa20/ref2/core_hsalsa20_ref2.c \\\n\tcrypto_core/hsalsa20/core_hsalsa20.c \\\n\tcrypto_core/keccak1600/keccak1600.c \\\n\tcrypto_core/keccak1600/ref/keccak1600_ref.c \\\n\tcrypto_core/keccak1600/ref/keccak1600_ref.h \\\n\tcrypto_core/keccak1600/armsha3/keccak1600_armsha3.c \\\n\tcrypto_core/keccak1600/armsha3/keccak1600_armsha3.h \\\n\tcrypto_core/salsa/ref/core_salsa_ref.c \\\n\tcrypto_core/softaes/softaes.c \\\n\tcrypto_generichash/crypto_generichash.c \\\n\tcrypto_generichash/blake2b/generichash_blake2.c \\\n\tcrypto_generichash/blake2b/ref/blake2.h \\\n\tcrypto_generichash/blake2b/ref/blake2b-compress-ref.c \\\n\tcrypto_generichash/blake2b/ref/blake2b-load-sse2.h \\\n\tcrypto_generichash/blake2b/ref/blake2b-load-sse41.h \\\n\tcrypto_generichash/blake2b/ref/blake2b-load-avx2.h \\\n\tcrypto_generichash/blake2b/ref/blake2b-ref.c \\\n\tcrypto_generichash/blake2b/ref/generichash_blake2b.c \\\n\tcrypto_hash/crypto_hash.c \\\n\tcrypto_hash/sha256/hash_sha256.c \\\n\tcrypto_hash/sha256/cp/hash_sha256_cp.c \\\n\tcrypto_hash/sha512/hash_sha512.c \\\n\tcrypto_hash/sha512/cp/hash_sha512_cp.c \\\n\tcrypto_hash/sha3/hash_sha3.c \\\n\tcrypto_ipcrypt/crypto_ipcrypt.c \\\n\tcrypto_ipcrypt/ipcrypt_soft.c \\\n\tcrypto_ipcrypt/ipcrypt_soft.h \\\n\tcrypto_ipcrypt/implementations.h \\\n\tcrypto_kdf/blake2b/kdf_blake2b.c \\\n\tcrypto_kdf/crypto_kdf.c \\\n\tcrypto_kdf/hkdf/kdf_hkdf_sha256.c \\\n\tcrypto_kdf/hkdf/kdf_hkdf_sha512.c \\\n\tcrypto_kem/crypto_kem.c \\\n\tcrypto_kem/mlkem768/kem_mlkem768.c \\\n\tcrypto_kem/mlkem768/ref/kem_mlkem768_ref.c \\\n\tcrypto_kem/mlkem768/ref/kem_mlkem768_ref.h \\\n\tcrypto_kem/xwing/kem_xwing.c \\\n\tcrypto_kx/crypto_kx.c \\\n\tcrypto_onetimeauth/crypto_onetimeauth.c \\\n\tcrypto_onetimeauth/poly1305/onetimeauth_poly1305.c \\\n\tcrypto_onetimeauth/poly1305/onetimeauth_poly1305.h \\\n\tcrypto_onetimeauth/poly1305/donna/poly1305_donna.h \\\n\tcrypto_onetimeauth/poly1305/donna/poly1305_donna32.h \\\n\tcrypto_onetimeauth/poly1305/donna/poly1305_donna64.h \\\n\tcrypto_onetimeauth/poly1305/donna/poly1305_donna.c \\\n\tcrypto_pwhash/argon2/argon2-core.c \\\n\tcrypto_pwhash/argon2/argon2-core.h \\\n\tcrypto_pwhash/argon2/argon2-encoding.c \\\n\tcrypto_pwhash/argon2/argon2-encoding.h \\\n\tcrypto_pwhash/argon2/argon2-fill-block-ref.c \\\n\tcrypto_pwhash/argon2/argon2-fill-block-wasm32.c \\\n\tcrypto_pwhash/argon2/argon2.c \\\n\tcrypto_pwhash/argon2/argon2.h \\\n\tcrypto_pwhash/argon2/blake2b-long.c \\\n\tcrypto_pwhash/argon2/blake2b-long.h \\\n\tcrypto_pwhash/argon2/blamka-round-ref.h \\\n\tcrypto_pwhash/argon2/blamka-round-wasm32.h \\\n\tcrypto_pwhash/argon2/pwhash_argon2i.c \\\n\tcrypto_pwhash/argon2/pwhash_argon2id.c \\\n\tcrypto_pwhash/crypto_pwhash.c \\\n\tcrypto_scalarmult/crypto_scalarmult.c \\\n\tcrypto_scalarmult/curve25519/ref10/x25519_ref10.c \\\n\tcrypto_scalarmult/curve25519/ref10/x25519_ref10.h \\\n\tcrypto_scalarmult/curve25519/scalarmult_curve25519.c \\\n\tcrypto_scalarmult/curve25519/scalarmult_curve25519.h \\\n\tcrypto_secretbox/crypto_secretbox.c \\\n\tcrypto_secretbox/crypto_secretbox_easy.c \\\n\tcrypto_secretbox/xsalsa20poly1305/secretbox_xsalsa20poly1305.c \\\n\tcrypto_secretstream/xchacha20poly1305/secretstream_xchacha20poly1305.c \\\n\tcrypto_shorthash/crypto_shorthash.c \\\n\tcrypto_shorthash/siphash24/shorthash_siphash24.c \\\n\tcrypto_shorthash/siphash24/ref/shorthash_siphash24_ref.c \\\n\tcrypto_shorthash/siphash24/ref/shorthash_siphash_ref.h \\\n\tcrypto_sign/crypto_sign.c \\\n\tcrypto_sign/ed25519/sign_ed25519.c \\\n\tcrypto_sign/ed25519/ref10/keypair.c \\\n\tcrypto_sign/ed25519/ref10/open.c \\\n\tcrypto_sign/ed25519/ref10/sign.c \\\n\tcrypto_sign/ed25519/ref10/sign_ed25519_ref10.h \\\n\tcrypto_stream/chacha20/stream_chacha20.c \\\n\tcrypto_stream/chacha20/stream_chacha20.h \\\n\tcrypto_stream/chacha20/ref/chacha20_ref.h \\\n\tcrypto_stream/chacha20/ref/chacha20_ref.c \\\n\tcrypto_stream/crypto_stream.c \\\n\tcrypto_stream/salsa20/stream_salsa20.c \\\n\tcrypto_stream/salsa20/stream_salsa20.h \\\n\tcrypto_stream/xsalsa20/stream_xsalsa20.c \\\n\tcrypto_verify/verify.c \\\n\tcrypto_xof/shake128/xof_shake128.c \\\n\tcrypto_xof/shake128/ref/shake128_ref.c \\\n\tcrypto_xof/shake128/ref/shake128_ref.h \\\n\tcrypto_xof/shake256/xof_shake256.c \\\n\tcrypto_xof/shake256/ref/shake256_ref.c \\\n\tcrypto_xof/shake256/ref/shake256_ref.h \\\n\tcrypto_xof/turboshake128/xof_turboshake128.c \\\n\tcrypto_xof/turboshake128/ref/turboshake128_ref.c \\\n\tcrypto_xof/turboshake128/ref/turboshake128_ref.h \\\n\tcrypto_xof/turboshake256/xof_turboshake256.c \\\n\tcrypto_xof/turboshake256/ref/turboshake256_ref.c \\\n\tcrypto_xof/turboshake256/ref/turboshake256_ref.h \\\n\tinclude/sodium/private/asm_cet.h \\\n\tinclude/sodium/private/chacha20_ietf_ext.h \\\n\tinclude/sodium/private/common.h \\\n\tinclude/sodium/private/ed25519_ref10.h \\\n\tinclude/sodium/private/implementations.h \\\n\tinclude/sodium/private/mutex.h \\\n\tinclude/sodium/private/sse2_64_32.h \\\n\tinclude/sodium/private/softaes.h \\\n\tinclude/sodium/private/quirks.h \\\n\trandombytes/randombytes.c \\\n\tsodium/codecs.c \\\n\tsodium/core.c \\\n\tsodium/runtime.c \\\n\tsodium/utils.c \\\n\tsodium/version.c\n\nif HAVE_TI_MODE\nlibsodium_la_SOURCES += \\\n\tcrypto_core/ed25519/ref10/fe_51/base.h \\\n\tcrypto_core/ed25519/ref10/fe_51/base2.h \\\n\tcrypto_core/ed25519/ref10/fe_51/constants.h \\\n\tcrypto_core/ed25519/ref10/fe_51/fe.h \\\n\tinclude/sodium/private/ed25519_ref10_fe_51.h\nelse\nlibsodium_la_SOURCES += \\\n\tcrypto_core/ed25519/ref10/fe_25_5/base.h \\\n\tcrypto_core/ed25519/ref10/fe_25_5/base2.h \\\n\tcrypto_core/ed25519/ref10/fe_25_5/constants.h \\\n\tcrypto_core/ed25519/ref10/fe_25_5/fe.h \\\n\tinclude/sodium/private/ed25519_ref10_fe_25_5.h\nendif\n\nif HAVE_AMD64_ASM\nlibsodium_la_SOURCES += \\\n\tcrypto_stream/salsa20/xmm6/salsa20_xmm6-asm.S \\\n\tcrypto_stream/salsa20/xmm6/salsa20_xmm6.c \\\n\tcrypto_stream/salsa20/xmm6/salsa20_xmm6.h \\\n\tcrypto_stream/salsa20/xmm6/salsa20_xmm6-asm_namespace.h\nelse\nlibsodium_la_SOURCES += \\\n\tcrypto_stream/salsa20/ref/salsa20_ref.c \\\n\tcrypto_stream/salsa20/ref/salsa20_ref.h\nendif\n\nnoinst_HEADERS = \\\n\tcrypto_scalarmult/curve25519/sandy2x/consts.S \\\n\tcrypto_scalarmult/curve25519/sandy2x/fe51_mul.S \\\n\tcrypto_scalarmult/curve25519/sandy2x/fe51_nsquare.S \\\n\tcrypto_scalarmult/curve25519/sandy2x/fe51_pack.S \\\n\tcrypto_scalarmult/curve25519/sandy2x/ladder.S\n\nif HAVE_AVX_ASM\nlibsodium_la_SOURCES += \\\n\tcrypto_scalarmult/curve25519/sandy2x/consts_namespace.h \\\n\tcrypto_scalarmult/curve25519/sandy2x/curve25519_sandy2x.c \\\n\tcrypto_scalarmult/curve25519/sandy2x/curve25519_sandy2x.h \\\n\tcrypto_scalarmult/curve25519/sandy2x/fe.h \\\n\tcrypto_scalarmult/curve25519/sandy2x/fe51.h \\\n\tcrypto_scalarmult/curve25519/sandy2x/fe51_invert.c \\\n\tcrypto_scalarmult/curve25519/sandy2x/fe51_namespace.h \\\n\tcrypto_scalarmult/curve25519/sandy2x/fe_frombytes_sandy2x.c \\\n\tcrypto_scalarmult/curve25519/sandy2x/ladder.h \\\n\tcrypto_scalarmult/curve25519/sandy2x/ladder_namespace.h \\\n\tcrypto_scalarmult/curve25519/sandy2x/sandy2x.S\nendif\n\nif !MINIMAL\nlibsodium_la_SOURCES += \\\n\tcrypto_box/curve25519xchacha20poly1305/box_curve25519xchacha20poly1305.c \\\n\tcrypto_box/curve25519xchacha20poly1305/box_seal_curve25519xchacha20poly1305.c \\\n\tcrypto_core/ed25519/core_ed25519.c \\\n\tcrypto_core/ed25519/core_ristretto255.c \\\n\tcrypto_pwhash/scryptsalsa208sha256/crypto_scrypt-common.c \\\n\tcrypto_pwhash/scryptsalsa208sha256/crypto_scrypt.h \\\n\tcrypto_pwhash/scryptsalsa208sha256/scrypt_platform.c \\\n\tcrypto_pwhash/scryptsalsa208sha256/pbkdf2-sha256.c \\\n\tcrypto_pwhash/scryptsalsa208sha256/pbkdf2-sha256.h \\\n\tcrypto_pwhash/scryptsalsa208sha256/pwhash_scryptsalsa208sha256.c \\\n\tcrypto_pwhash/scryptsalsa208sha256/nosse/pwhash_scryptsalsa208sha256_nosse.c \\\n\tcrypto_scalarmult/ed25519/ref10/scalarmult_ed25519_ref10.c \\\n\tcrypto_scalarmult/ristretto255/ref10/scalarmult_ristretto255_ref10.c \\\n\tcrypto_secretbox/xchacha20poly1305/secretbox_xchacha20poly1305.c \\\n\tcrypto_shorthash/siphash24/shorthash_siphashx24.c \\\n\tcrypto_shorthash/siphash24/ref/shorthash_siphashx24_ref.c \\\n\tcrypto_stream/salsa2012/ref/stream_salsa2012_ref.c \\\n\tcrypto_stream/salsa2012/stream_salsa2012.c \\\n\tcrypto_stream/salsa208/ref/stream_salsa208_ref.c \\\n\tcrypto_stream/salsa208/stream_salsa208.c \\\n\tcrypto_stream/xchacha20/stream_xchacha20.c\nendif\n\nlibsodium_la_LDFLAGS = \\\n\t$(AM_LDFLAGS) \\\n\t-export-dynamic \\\n\t-no-undefined \\\n\t$(LIBTOOL_EXTRA_FLAGS)\n\nlibsodium_la_CPPFLAGS = \\\n\t$(LTDLINCL) \\\n\t-I$(srcdir)/include/sodium \\\n\t-I$(builddir)/include/sodium\n\nif HAVE_LD_OUTPUT_DEF\nlibsodium_la_LDFLAGS += -Wl,--output-def,libsodium-$(DLL_VERSION).def\ndefexecdir = $(bindir)\ndefexec_DATA = libsodium-$(DLL_VERSION).def\nCLEANFILES = $(defexec_DATA)\nlibsodium-$(DLL_VERSION).def: libsodium.la\nendif\n\nSUBDIRS = \\\n\tinclude\n\nlibsodium_la_LIBADD = libaesni.la libarmcrypto.la libsse2.la libssse3.la libsse41.la libavx2.la libavx512f.la\nnoinst_LTLIBRARIES  = libaesni.la libarmcrypto.la libsse2.la libssse3.la libsse41.la libavx2.la libavx512f.la\n\nlibrdrand_la_LDFLAGS = $(libsodium_la_LDFLAGS)\nlibrdrand_la_CPPFLAGS = $(libsodium_la_CPPFLAGS) \\\n\t@CFLAGS_RDRAND@\nlibrdrand_la_SOURCES = \\\n\trandombytes/internal/randombytes_internal_random.c\n\nif !EMSCRIPTEN\nlibsodium_la_LIBADD += librdrand.la\nnoinst_LTLIBRARIES  += librdrand.la\n\nlibsodium_la_SOURCES += \\\n\trandombytes/sysrandom/randombytes_sysrandom.c\nendif\n\nlibarmcrypto_la_LDFLAGS = $(libsodium_la_LDFLAGS)\nlibarmcrypto_la_CPPFLAGS = $(libsodium_la_CPPFLAGS) \\\n\t@CFLAGS_ARMCRYPTO@\nlibarmcrypto_la_SOURCES = \\\n\tcrypto_aead/aegis128l/aegis128l_armcrypto.c \\\n\tcrypto_aead/aegis128l/aegis128l_armcrypto.h \\\n\tcrypto_aead/aegis256/aegis256_armcrypto.c \\\n\tcrypto_aead/aegis256/aegis256_armcrypto.h \\\n\tcrypto_aead/aes256gcm/armcrypto/aead_aes256gcm_armcrypto.c \\\n\tcrypto_ipcrypt/ipcrypt_armcrypto.c \\\n\tcrypto_ipcrypt/ipcrypt_armcrypto.h \\\n\tcrypto_pwhash/argon2/argon2-fill-block-neon.c \\\n\tcrypto_pwhash/argon2/blamka-round-neon.h\n\nlibaesni_la_LDFLAGS = $(libsodium_la_LDFLAGS)\nlibaesni_la_CPPFLAGS = $(libsodium_la_CPPFLAGS) \\\n\t@CFLAGS_SSE2@ @CFLAGS_SSSE3@ @CFLAGS_AVX@ @CFLAGS_AESNI@ @CFLAGS_PCLMUL@\nlibaesni_la_SOURCES = \\\n\tcrypto_aead/aegis128l/aegis128l_aesni.c \\\n\tcrypto_aead/aegis128l/aegis128l_aesni.h \\\n\tcrypto_aead/aegis256/aegis256_aesni.c \\\n\tcrypto_aead/aegis256/aegis256_aesni.h \\\n\tcrypto_aead/aes256gcm/aesni/aead_aes256gcm_aesni.c \\\n\tcrypto_ipcrypt/ipcrypt_aesni.c \\\n\tcrypto_ipcrypt/ipcrypt_aesni.h\n\nlibsse2_la_LDFLAGS = $(libsodium_la_LDFLAGS)\nlibsse2_la_CPPFLAGS = $(libsodium_la_CPPFLAGS) \\\n\t@CFLAGS_SSE2@\nlibsse2_la_SOURCES = \\\n\tcrypto_onetimeauth/poly1305/sse2/poly1305_sse2.c \\\n\tcrypto_onetimeauth/poly1305/sse2/poly1305_sse2.h\nif !MINIMAL\nlibsse2_la_SOURCES += \\\n\tcrypto_pwhash/scryptsalsa208sha256/sse/pwhash_scryptsalsa208sha256_sse.c\nendif\n\nif !HAVE_AMD64_ASM\nlibsse2_la_SOURCES += \\\n\tcrypto_stream/salsa20/xmm6int/salsa20_xmm6int-sse2.c \\\n\tcrypto_stream/salsa20/xmm6int/salsa20_xmm6int-sse2.h \\\n\tcrypto_stream/salsa20/xmm6int/u0.h \\\n\tcrypto_stream/salsa20/xmm6int/u1.h \\\n\tcrypto_stream/salsa20/xmm6int/u4.h\nendif\n\nlibssse3_la_LDFLAGS = $(libsodium_la_LDFLAGS)\nlibssse3_la_CPPFLAGS = $(libsodium_la_CPPFLAGS) \\\n\t@CFLAGS_SSE2@ @CFLAGS_SSSE3@\nlibssse3_la_SOURCES = \\\n\tcrypto_generichash/blake2b/ref/blake2b-compress-ssse3.c \\\n\tcrypto_generichash/blake2b/ref/blake2b-compress-ssse3.h \\\n\tcrypto_pwhash/argon2/argon2-fill-block-ssse3.c \\\n\tcrypto_pwhash/argon2/blamka-round-ssse3.h \\\n\tcrypto_stream/chacha20/dolbeau/chacha20_dolbeau-ssse3.c \\\n\tcrypto_stream/chacha20/dolbeau/chacha20_dolbeau-ssse3.h \\\n\tcrypto_stream/chacha20/dolbeau/u0.h \\\n\tcrypto_stream/chacha20/dolbeau/u1.h \\\n\tcrypto_stream/chacha20/dolbeau/u4.h\n\nlibsse41_la_LDFLAGS = $(libsodium_la_LDFLAGS)\nlibsse41_la_CPPFLAGS = $(libsodium_la_CPPFLAGS) \\\n\t@CFLAGS_SSE2@ @CFLAGS_SSSE3@ @CFLAGS_SSE41@\nlibsse41_la_SOURCES = \\\n\tcrypto_generichash/blake2b/ref/blake2b-compress-sse41.c \\\n\tcrypto_generichash/blake2b/ref/blake2b-compress-sse41.h\n\nlibavx2_la_LDFLAGS = $(libsodium_la_LDFLAGS)\nlibavx2_la_CPPFLAGS = $(libsodium_la_CPPFLAGS) \\\n\t@CFLAGS_SSE2@ @CFLAGS_SSSE3@ @CFLAGS_SSE41@ @CFLAGS_AVX@ @CFLAGS_AVX2@\nlibavx2_la_SOURCES = \\\n\tcrypto_generichash/blake2b/ref/blake2b-compress-avx2.c \\\n\tcrypto_generichash/blake2b/ref/blake2b-compress-avx2.h \\\n\tcrypto_pwhash/argon2/argon2-fill-block-avx2.c \\\n\tcrypto_pwhash/argon2/blamka-round-avx2.h \\\n\tcrypto_stream/chacha20/dolbeau/chacha20_dolbeau-avx2.c \\\n\tcrypto_stream/chacha20/dolbeau/chacha20_dolbeau-avx2.h \\\n\tcrypto_stream/chacha20/dolbeau/u8.h \\\n\tcrypto_stream/salsa20/xmm6int/salsa20_xmm6int-avx2.c \\\n\tcrypto_stream/salsa20/xmm6int/salsa20_xmm6int-avx2.h \\\n\tcrypto_stream/salsa20/xmm6int/u0.h \\\n\tcrypto_stream/salsa20/xmm6int/u1.h \\\n\tcrypto_stream/salsa20/xmm6int/u4.h \\\n\tcrypto_stream/salsa20/xmm6int/u8.h\n\nlibavx512f_la_LDFLAGS = $(libsodium_la_LDFLAGS)\nlibavx512f_la_CPPFLAGS = $(libsodium_la_CPPFLAGS) \\\n\t@CFLAGS_SSE2@ @CFLAGS_SSSE3@ @CFLAGS_SSE41@ @CFLAGS_AVX@ @CFLAGS_AVX2@ @CFLAGS_AVX512F@\nlibavx512f_la_SOURCES = \\\n\tcrypto_pwhash/argon2/argon2-fill-block-avx512f.c \\\n\tcrypto_pwhash/argon2/blamka-round-avx512f.h\n"
  },
  {
    "path": "src/libsodium/crypto_aead/aegis128l/aead_aegis128l.c",
    "content": "\n#include <errno.h>\n#include <stdlib.h>\n\n#include \"core.h\"\n#include \"crypto_aead_aegis128l.h\"\n#include \"private/common.h\"\n#include \"private/implementations.h\"\n#include \"randombytes.h\"\n#include \"runtime.h\"\n\n#include \"aegis128l_soft.h\"\n\n#if defined(HAVE_ARMCRYPTO) && defined(NATIVE_LITTLE_ENDIAN)\n#include \"aegis128l_armcrypto.h\"\n#endif\n\n#if defined(HAVE_AVXINTRIN_H) && defined(HAVE_WMMINTRIN_H)\n#include \"aegis128l_aesni.h\"\n#endif\n\nstatic const aegis128l_implementation *implementation = &aegis128l_soft_implementation;\n\nsize_t\ncrypto_aead_aegis128l_keybytes(void)\n{\n    return crypto_aead_aegis128l_KEYBYTES;\n}\n\nsize_t\ncrypto_aead_aegis128l_nsecbytes(void)\n{\n    return crypto_aead_aegis128l_NSECBYTES;\n}\n\nsize_t\ncrypto_aead_aegis128l_npubbytes(void)\n{\n    return crypto_aead_aegis128l_NPUBBYTES;\n}\n\nsize_t\ncrypto_aead_aegis128l_abytes(void)\n{\n    return crypto_aead_aegis128l_ABYTES;\n}\n\nsize_t\ncrypto_aead_aegis128l_messagebytes_max(void)\n{\n    return crypto_aead_aegis128l_MESSAGEBYTES_MAX;\n}\n\nvoid\ncrypto_aead_aegis128l_keygen(unsigned char k[crypto_aead_aegis128l_KEYBYTES])\n{\n    randombytes_buf(k, crypto_aead_aegis128l_KEYBYTES);\n}\n\nint\ncrypto_aead_aegis128l_encrypt(unsigned char *c, unsigned long long *clen_p, const unsigned char *m,\n                              unsigned long long mlen, const unsigned char *ad,\n                              unsigned long long adlen, const unsigned char *nsec,\n                              const unsigned char *npub, const unsigned char *k)\n{\n    unsigned long long clen = 0ULL;\n    int                ret;\n\n    ret = crypto_aead_aegis128l_encrypt_detached(c, c + mlen, NULL, m, mlen, ad, adlen, nsec, npub,\n                                                 k);\n    if (clen_p != NULL) {\n        if (ret == 0) {\n            clen = mlen + crypto_aead_aegis128l_ABYTES;\n        }\n        *clen_p = clen;\n    }\n    return ret;\n}\n\nint\ncrypto_aead_aegis128l_decrypt(unsigned char *m, unsigned long long *mlen_p, unsigned char *nsec,\n                              const unsigned char *c, unsigned long long clen,\n                              const unsigned char *ad, unsigned long long adlen,\n                              const unsigned char *npub, const unsigned char *k)\n{\n    unsigned long long mlen = 0ULL;\n    int                ret  = -1;\n\n    if (clen >= crypto_aead_aegis128l_ABYTES) {\n        ret = crypto_aead_aegis128l_decrypt_detached(\n            m, nsec, c, clen - crypto_aead_aegis128l_ABYTES,\n            c + clen - crypto_aead_aegis128l_ABYTES, ad, adlen, npub, k);\n    }\n    if (mlen_p != NULL) {\n        if (ret == 0) {\n            mlen = clen - crypto_aead_aegis128l_ABYTES;\n        }\n        *mlen_p = mlen;\n    }\n    return ret;\n}\n\nint\ncrypto_aead_aegis128l_encrypt_detached(unsigned char *c, unsigned char *mac,\n                                       unsigned long long *maclen_p, const unsigned char *m,\n                                       unsigned long long mlen, const unsigned char *ad,\n                                       unsigned long long adlen, const unsigned char *nsec,\n                                       const unsigned char *npub, const unsigned char *k)\n{\n    const size_t maclen = crypto_aead_aegis128l_ABYTES;\n\n    (void) nsec;\n    if (maclen_p != NULL) {\n        *maclen_p = maclen;\n    }\n    if (mlen > crypto_aead_aegis128l_MESSAGEBYTES_MAX ||\n        adlen > crypto_aead_aegis128l_MESSAGEBYTES_MAX) {\n        sodium_misuse(); /* LCOV_EXCL_LINE */\n    }\n    return implementation->encrypt_detached(c, mac, maclen, m, (size_t) mlen, ad, (size_t) adlen,\n                                            npub, k);\n}\n\nint\ncrypto_aead_aegis128l_decrypt_detached(unsigned char *m, unsigned char *nsec,\n                                       const unsigned char *c, unsigned long long clen,\n                                       const unsigned char *mac, const unsigned char *ad,\n                                       unsigned long long adlen, const unsigned char *npub,\n                                       const unsigned char *k)\n{\n    const size_t maclen = crypto_aead_aegis128l_ABYTES;\n\n    (void) nsec;\n    if (clen > crypto_aead_aegis128l_MESSAGEBYTES_MAX ||\n        adlen > crypto_aead_aegis128l_MESSAGEBYTES_MAX) {\n        return -1; /* LCOV_EXCL_LINE */\n    }\n    return implementation->decrypt_detached(m, c, (size_t) clen, mac, maclen, ad, (size_t) adlen,\n                                            npub, k);\n}\n\nint\n_crypto_aead_aegis128l_pick_best_implementation(void)\n{\n    implementation = &aegis128l_soft_implementation;\n\n#if defined(HAVE_ARMCRYPTO) && defined(NATIVE_LITTLE_ENDIAN)\n    if (sodium_runtime_has_armcrypto()) {\n        implementation = &aegis128l_armcrypto_implementation;\n        return 0;\n    }\n#endif\n\n#if defined(HAVE_AVXINTRIN_H) && defined(HAVE_WMMINTRIN_H)\n    if (sodium_runtime_has_aesni() & sodium_runtime_has_avx()) {\n        implementation = &aegis128l_aesni_implementation;\n        return 0;\n    }\n#endif\n    return 0; /* LCOV_EXCL_LINE */\n}\n"
  },
  {
    "path": "src/libsodium/crypto_aead/aegis128l/aegis128l_aesni.c",
    "content": "#include <errno.h>\n#include <stddef.h>\n#include <stdint.h>\n#include <stdlib.h>\n#include <string.h>\n\n#include \"core.h\"\n#include \"crypto_aead_aegis128l.h\"\n#include \"crypto_verify_16.h\"\n#include \"crypto_verify_32.h\"\n#include \"export.h\"\n#include \"utils.h\"\n\n#include \"private/common.h\"\n\n#if defined(HAVE_AVXINTRIN_H) && defined(HAVE_WMMINTRIN_H)\n\n#include \"aegis128l_aesni.h\"\n\n#ifdef __clang__\n#pragma clang attribute push(__attribute__((target(\"aes,avx\"))), apply_to = function)\n#elif defined(__GNUC__)\n#pragma GCC target(\"aes,avx\")\n#endif\n\n#include \"private/sse2_64_32.h\"\n#include <immintrin.h>\n#include <wmmintrin.h>\n\n#define AES_BLOCK_LENGTH 16\n\ntypedef __m128i aes_block_t;\n#define AES_BLOCK_XOR(A, B)       _mm_xor_si128((A), (B))\n#define AES_BLOCK_AND(A, B)       _mm_and_si128((A), (B))\n#define AES_BLOCK_LOAD(A)         _mm_loadu_si128((const aes_block_t *) (const void *) (A))\n#define AES_BLOCK_LOAD_64x2(A, B) _mm_set_epi64x((long long) (A), (long long) (B))\n#define AES_BLOCK_STORE(A, B)     _mm_storeu_si128((aes_block_t *) (void *) (A), (B))\n#define AES_ENC(A, B)             _mm_aesenc_si128((A), (B))\n\nstatic inline void\naegis128l_update(aes_block_t *const state, const aes_block_t d1, const aes_block_t d2)\n{\n    aes_block_t tmp;\n\n    tmp      = state[7];\n    state[7] = AES_ENC(state[6], state[7]);\n    state[6] = AES_ENC(state[5], state[6]);\n    state[5] = AES_ENC(state[4], state[5]);\n    state[4] = AES_ENC(state[3], state[4]);\n    state[3] = AES_ENC(state[2], state[3]);\n    state[2] = AES_ENC(state[1], state[2]);\n    state[1] = AES_ENC(state[0], state[1]);\n    state[0] = AES_ENC(tmp, state[0]);\n\n    state[0] = AES_BLOCK_XOR(state[0], d1);\n    state[4] = AES_BLOCK_XOR(state[4], d2);\n}\n\n#include \"aegis128l_common.h\"\n\nstruct aegis128l_implementation aegis128l_aesni_implementation = { SODIUM_C99(.encrypt_detached =)\n                                                                       encrypt_detached,\n                                                                   SODIUM_C99(.decrypt_detached =)\n                                                                       decrypt_detached };\n\n#ifdef __clang__\n#pragma clang attribute pop\n#endif\n\n#endif\n"
  },
  {
    "path": "src/libsodium/crypto_aead/aegis128l/aegis128l_aesni.h",
    "content": "#ifndef aegis128l_aesni_H\n#define aegis128l_aesni_H\n\n#include \"implementations.h\"\n\nextern struct aegis128l_implementation aegis128l_aesni_implementation;\n\n#endif"
  },
  {
    "path": "src/libsodium/crypto_aead/aegis128l/aegis128l_armcrypto.c",
    "content": "#include <errno.h>\n#include <stddef.h>\n#include <stdint.h>\n#include <stdlib.h>\n#include <string.h>\n\n#include \"core.h\"\n#include \"crypto_aead_aegis128l.h\"\n#include \"crypto_verify_16.h\"\n#include \"crypto_verify_32.h\"\n#include \"export.h\"\n#include \"utils.h\"\n\n#include \"private/common.h\"\n\n#if defined(HAVE_ARMCRYPTO) && defined(NATIVE_LITTLE_ENDIAN)\n\n#include \"aegis128l_armcrypto.h\"\n\n#ifndef __ARM_FEATURE_CRYPTO\n#define __ARM_FEATURE_CRYPTO 1\n#endif\n#ifndef __ARM_FEATURE_AES\n#define __ARM_FEATURE_AES 1\n#endif\n\n#include <arm_neon.h>\n\n#ifdef __clang__\n#pragma clang attribute push(__attribute__((target(\"neon,crypto,aes\"))), apply_to = function)\n#elif defined(__GNUC__)\n#pragma GCC target(\"+simd+crypto\")\n#endif\n\n#define AES_BLOCK_LENGTH 16\n\ntypedef uint8x16_t aes_block_t;\n#define AES_BLOCK_XOR(A, B)       veorq_u8((A), (B))\n#define AES_BLOCK_AND(A, B)       vandq_u8((A), (B))\n#define AES_BLOCK_LOAD(A)         vld1q_u8(A)\n#define AES_BLOCK_LOAD_64x2(A, B) vreinterpretq_u8_u64(vsetq_lane_u64((A), vmovq_n_u64(B), 1))\n#define AES_BLOCK_STORE(A, B)     vst1q_u8((A), (B))\n#define AES_ENC(A, B)             veorq_u8(vaesmcq_u8(vaeseq_u8(vmovq_n_u8(0), (A))), (B))\n\nstatic inline void\naegis128l_update(aes_block_t *const state, const aes_block_t d1, const aes_block_t d2)\n{\n    aes_block_t tmp;\n\n    tmp      = state[7];\n    state[7] = AES_ENC(state[6], state[7]);\n    state[6] = AES_ENC(state[5], state[6]);\n    state[5] = AES_ENC(state[4], state[5]);\n    state[4] = AES_BLOCK_XOR(AES_ENC(state[3], state[4]), d2);\n    state[3] = AES_ENC(state[2], state[3]);\n    state[2] = AES_ENC(state[1], state[2]);\n    state[1] = AES_ENC(state[0], state[1]);\n    state[0] = AES_BLOCK_XOR(AES_ENC(tmp, state[0]), d1);\n}\n\n#include \"aegis128l_common.h\"\n\nstruct aegis128l_implementation aegis128l_armcrypto_implementation = {\n    SODIUM_C99(.encrypt_detached =) encrypt_detached,\n    SODIUM_C99(.decrypt_detached =) decrypt_detached\n};\n\n#ifdef __clang__\n#pragma clang attribute pop\n#endif\n\n#endif\n"
  },
  {
    "path": "src/libsodium/crypto_aead/aegis128l/aegis128l_armcrypto.h",
    "content": "#ifndef aegis128l_armcrypto_H\n#define aegis128l_armcrypto_H\n\n#include \"implementations.h\"\n\nextern struct aegis128l_implementation aegis128l_armcrypto_implementation;\n\n#endif"
  },
  {
    "path": "src/libsodium/crypto_aead/aegis128l/aegis128l_common.h",
    "content": "#define RATE 32\n\nstatic inline void\naegis128l_init(const uint8_t *key, const uint8_t *nonce, aes_block_t *const state)\n{\n    static CRYPTO_ALIGN(AES_BLOCK_LENGTH)\n        const uint8_t c0_[AES_BLOCK_LENGTH] = { 0x00, 0x01, 0x01, 0x02, 0x03, 0x05, 0x08, 0x0d,\n                                                0x15, 0x22, 0x37, 0x59, 0x90, 0xe9, 0x79, 0x62 };\n    static CRYPTO_ALIGN(AES_BLOCK_LENGTH)\n        const uint8_t c1_[AES_BLOCK_LENGTH] = { 0xdb, 0x3d, 0x18, 0x55, 0x6d, 0xc2, 0x2f, 0xf1,\n                                                0x20, 0x11, 0x31, 0x42, 0x73, 0xb5, 0x28, 0xdd };\n\n    const aes_block_t c0 = AES_BLOCK_LOAD(c0_);\n    const aes_block_t c1 = AES_BLOCK_LOAD(c1_);\n    aes_block_t       k;\n    aes_block_t       n;\n    int               i;\n\n    k = AES_BLOCK_LOAD(key);\n    n = AES_BLOCK_LOAD(nonce);\n\n    state[0] = AES_BLOCK_XOR(k, n);\n    state[1] = c1;\n    state[2] = c0;\n    state[3] = c1;\n    state[4] = AES_BLOCK_XOR(k, n);\n    state[5] = AES_BLOCK_XOR(k, c0);\n    state[6] = AES_BLOCK_XOR(k, c1);\n    state[7] = AES_BLOCK_XOR(k, c0);\n    for (i = 0; i < 10; i++) {\n        aegis128l_update(state, n, k);\n    }\n}\n\nstatic inline int\naegis128l_mac(uint8_t *mac, size_t maclen, uint64_t adlen, uint64_t mlen, aes_block_t *const state)\n{\n    aes_block_t tmp;\n    int         i;\n\n    tmp = AES_BLOCK_LOAD_64x2(mlen << 3, adlen << 3);\n    tmp = AES_BLOCK_XOR(tmp, state[2]);\n\n    for (i = 0; i < 7; i++) {\n        aegis128l_update(state, tmp, tmp);\n    }\n\n    if (maclen == 16) {\n        /* LCOV_EXCL_START */\n        tmp = AES_BLOCK_XOR(state[6], AES_BLOCK_XOR(state[5], state[4]));\n        tmp = AES_BLOCK_XOR(tmp, AES_BLOCK_XOR(state[3], state[2]));\n        tmp = AES_BLOCK_XOR(tmp, AES_BLOCK_XOR(state[1], state[0]));\n        AES_BLOCK_STORE(mac, tmp);\n        /* LCOV_EXCL_STOP */\n    } else if (maclen == 32) {\n        tmp = AES_BLOCK_XOR(state[3], state[2]);\n        tmp = AES_BLOCK_XOR(tmp, AES_BLOCK_XOR(state[1], state[0]));\n        AES_BLOCK_STORE(mac, tmp);\n        tmp = AES_BLOCK_XOR(state[7], state[6]);\n        tmp = AES_BLOCK_XOR(tmp, AES_BLOCK_XOR(state[5], state[4]));\n        AES_BLOCK_STORE(mac + 16, tmp);\n    } else {\n        memset(mac, 0, maclen); /* LCOV_EXCL_LINE */\n        return -1;             /* LCOV_EXCL_LINE */\n    }\n    return 0;\n}\n\nstatic inline void\naegis128l_absorb(const uint8_t *const src, aes_block_t *const state)\n{\n    aes_block_t msg0, msg1;\n\n    msg0 = AES_BLOCK_LOAD(src);\n    msg1 = AES_BLOCK_LOAD(src + AES_BLOCK_LENGTH);\n    aegis128l_update(state, msg0, msg1);\n}\n\nstatic inline void\naegis128l_absorb2(const uint8_t *const src, aes_block_t *const state)\n{\n    aes_block_t msg0, msg1, msg2, msg3;\n\n    msg0 = AES_BLOCK_LOAD(src + 0 * AES_BLOCK_LENGTH);\n    msg1 = AES_BLOCK_LOAD(src + 1 * AES_BLOCK_LENGTH);\n    msg2 = AES_BLOCK_LOAD(src + 2 * AES_BLOCK_LENGTH);\n    msg3 = AES_BLOCK_LOAD(src + 3 * AES_BLOCK_LENGTH);\n    aegis128l_update(state, msg0, msg1);\n    aegis128l_update(state, msg2, msg3);\n}\n\nstatic inline void\naegis128l_enc(uint8_t *const dst, const uint8_t *const src, aes_block_t *const state)\n{\n    aes_block_t msg0, msg1;\n    aes_block_t tmp0, tmp1;\n\n    msg0 = AES_BLOCK_LOAD(src);\n    msg1 = AES_BLOCK_LOAD(src + AES_BLOCK_LENGTH);\n    tmp0 = AES_BLOCK_XOR(msg0, state[6]);\n    tmp0 = AES_BLOCK_XOR(tmp0, state[1]);\n    tmp1 = AES_BLOCK_XOR(msg1, state[5]);\n    tmp1 = AES_BLOCK_XOR(tmp1, state[2]);\n    tmp0 = AES_BLOCK_XOR(tmp0, AES_BLOCK_AND(state[2], state[3]));\n    tmp1 = AES_BLOCK_XOR(tmp1, AES_BLOCK_AND(state[6], state[7]));\n    AES_BLOCK_STORE(dst, tmp0);\n    AES_BLOCK_STORE(dst + AES_BLOCK_LENGTH, tmp1);\n\n    aegis128l_update(state, msg0, msg1);\n}\n\nstatic inline void\naegis128l_dec(uint8_t *const dst, const uint8_t *const src, aes_block_t *const state)\n{\n    aes_block_t msg0, msg1;\n\n    msg0 = AES_BLOCK_LOAD(src);\n    msg1 = AES_BLOCK_LOAD(src + AES_BLOCK_LENGTH);\n    msg0 = AES_BLOCK_XOR(msg0, state[6]);\n    msg0 = AES_BLOCK_XOR(msg0, state[1]);\n    msg1 = AES_BLOCK_XOR(msg1, state[5]);\n    msg1 = AES_BLOCK_XOR(msg1, state[2]);\n    msg0 = AES_BLOCK_XOR(msg0, AES_BLOCK_AND(state[2], state[3]));\n    msg1 = AES_BLOCK_XOR(msg1, AES_BLOCK_AND(state[6], state[7]));\n    AES_BLOCK_STORE(dst, msg0);\n    AES_BLOCK_STORE(dst + AES_BLOCK_LENGTH, msg1);\n\n    aegis128l_update(state, msg0, msg1);\n}\n\nstatic inline void\naegis128l_declast(uint8_t *const dst, const uint8_t *const src, size_t len,\n                  aes_block_t *const state)\n{\n    uint8_t     pad[RATE];\n    aes_block_t msg0, msg1;\n\n    memset(pad, 0, sizeof pad);\n    memcpy(pad, src, len);\n\n    msg0 = AES_BLOCK_LOAD(pad);\n    msg1 = AES_BLOCK_LOAD(pad + AES_BLOCK_LENGTH);\n    msg0 = AES_BLOCK_XOR(msg0, state[6]);\n    msg0 = AES_BLOCK_XOR(msg0, state[1]);\n    msg1 = AES_BLOCK_XOR(msg1, state[5]);\n    msg1 = AES_BLOCK_XOR(msg1, state[2]);\n    msg0 = AES_BLOCK_XOR(msg0, AES_BLOCK_AND(state[2], state[3]));\n    msg1 = AES_BLOCK_XOR(msg1, AES_BLOCK_AND(state[6], state[7]));\n    AES_BLOCK_STORE(pad, msg0);\n    AES_BLOCK_STORE(pad + AES_BLOCK_LENGTH, msg1);\n\n    memset(pad + len, 0, sizeof pad - len);\n    memcpy(dst, pad, len);\n\n    msg0 = AES_BLOCK_LOAD(pad);\n    msg1 = AES_BLOCK_LOAD(pad + AES_BLOCK_LENGTH);\n\n    aegis128l_update(state, msg0, msg1);\n}\n\nstatic int\nencrypt_detached(uint8_t *c, uint8_t *mac, size_t maclen, const uint8_t *m, size_t mlen,\n                 const uint8_t *ad, size_t adlen, const uint8_t *npub, const uint8_t *k)\n{\n    aes_block_t                state[8];\n    CRYPTO_ALIGN(RATE) uint8_t src[RATE];\n    CRYPTO_ALIGN(RATE) uint8_t dst[RATE];\n    size_t                     i;\n\n    aegis128l_init(k, npub, state);\n\n    for (i = 0; i + RATE * 2 <= adlen; i += RATE * 2) {\n        aegis128l_absorb2(ad + i, state);\n    }\n    for (; i + RATE <= adlen; i += RATE) {\n        aegis128l_absorb(ad + i, state);\n    }\n    if (adlen % RATE) {\n        memset(src, 0, RATE);\n        memcpy(src, ad + i, adlen % RATE);\n        aegis128l_absorb(src, state);\n    }\n    for (i = 0; i + RATE <= mlen; i += RATE) {\n        aegis128l_enc(c + i, m + i, state);\n    }\n    if (mlen % RATE) {\n        memset(src, 0, RATE);\n        memcpy(src, m + i, mlen % RATE);\n        aegis128l_enc(dst, src, state);\n        memcpy(c + i, dst, mlen % RATE);\n    }\n\n    return aegis128l_mac(mac, maclen, adlen, mlen, state);\n}\n\nstatic int\ndecrypt_detached(uint8_t *m, const uint8_t *c, size_t clen, const uint8_t *mac, size_t maclen,\n                 const uint8_t *ad, size_t adlen, const uint8_t *npub, const uint8_t *k)\n{\n    aes_block_t                state[8];\n    CRYPTO_ALIGN(RATE) uint8_t src[RATE];\n    CRYPTO_ALIGN(RATE) uint8_t dst[RATE];\n    CRYPTO_ALIGN(16) uint8_t   computed_mac[32];\n    const size_t               mlen = clen;\n    size_t                     i;\n    int                        ret;\n\n    aegis128l_init(k, npub, state);\n\n    for (i = 0; i + RATE * 2 <= adlen; i += RATE * 2) {\n        aegis128l_absorb2(ad + i, state);\n    }\n    for (; i + RATE <= adlen; i += RATE) {\n        aegis128l_absorb(ad + i, state);\n    }\n    if (adlen % RATE) {\n        memset(src, 0, RATE);\n        memcpy(src, ad + i, adlen % RATE);\n        aegis128l_absorb(src, state);\n    }\n    if (m != NULL) {\n        for (i = 0; i + RATE <= mlen; i += RATE) {\n            aegis128l_dec(m + i, c + i, state);\n        }\n    } else {\n        for (i = 0; i + RATE <= mlen; i += RATE) {\n            aegis128l_dec(dst, c + i, state);\n        }\n    }\n    if (mlen % RATE) {\n        if (m != NULL) {\n            aegis128l_declast(m + i, c + i, mlen % RATE, state);\n        } else {\n            aegis128l_declast(dst, c + i, mlen % RATE, state);\n        }\n    }\n\n    COMPILER_ASSERT(sizeof computed_mac >= 32);\n    ret = -1;\n    if (aegis128l_mac(computed_mac, maclen, adlen, mlen, state) == 0) {\n        if (maclen == 16) {\n            ret = crypto_verify_16(computed_mac, mac); /* LCOV_EXCL_LINE */\n        } else if (maclen == 32) {\n            ret = crypto_verify_32(computed_mac, mac);\n        }\n    }\n    if (ret != 0) {\n        if (m != NULL) {\n            memset(m, 0, mlen);\n        }\n        return ret;\n    }\n    ACQUIRE_FENCE;\n    return 0;\n}\n"
  },
  {
    "path": "src/libsodium/crypto_aead/aegis128l/aegis128l_soft.c",
    "content": "#include <errno.h>\n#include <stddef.h>\n#include <stdint.h>\n#include <stdlib.h>\n#include <string.h>\n\n#include \"core.h\"\n#include \"crypto_aead_aegis128l.h\"\n#include \"crypto_verify_16.h\"\n#include \"crypto_verify_32.h\"\n#include \"export.h\"\n#include \"utils.h\"\n\n#include \"private/common.h\"\n\n#include \"crypto_aead_aegis128l.h\"\n#include \"private/softaes.h\"\n\n#if 1\n\n#include \"aegis128l_soft.h\"\n\n#define AES_BLOCK_LENGTH 16\n\ntypedef SoftAesBlock aes_block_t;\n#define AES_BLOCK_XOR(A, B)       softaes_block_xor((A), (B))\n#define AES_BLOCK_AND(A, B)       softaes_block_and((A), (B))\n#define AES_BLOCK_LOAD(A)         softaes_block_load(A)\n#define AES_BLOCK_LOAD_64x2(A, B) softaes_block_load64x2((A), (B))\n#define AES_BLOCK_STORE(A, B)     softaes_block_store((A), (B))\n#define AES_ENC(A, B)             softaes_block_encrypt((A), (B))\n\nstatic inline void\naegis128l_update(aes_block_t *const state, const aes_block_t d1, const aes_block_t d2)\n{\n    aes_block_t tmp;\n\n    tmp      = state[7];\n    state[7] = AES_ENC(state[6], state[7]);\n    state[6] = AES_ENC(state[5], state[6]);\n    state[5] = AES_ENC(state[4], state[5]);\n    state[4] = AES_ENC(state[3], state[4]);\n    state[3] = AES_ENC(state[2], state[3]);\n    state[2] = AES_ENC(state[1], state[2]);\n    state[1] = AES_ENC(state[0], state[1]);\n    state[0] = AES_ENC(tmp, state[0]);\n\n    state[0] = AES_BLOCK_XOR(state[0], d1);\n    state[4] = AES_BLOCK_XOR(state[4], d2);\n}\n\n#include \"aegis128l_common.h\"\n\nstruct aegis128l_implementation aegis128l_soft_implementation = { SODIUM_C99(.encrypt_detached =)\n                                                                      encrypt_detached,\n                                                                  SODIUM_C99(.decrypt_detached =)\n                                                                      decrypt_detached };\n\n#endif\n"
  },
  {
    "path": "src/libsodium/crypto_aead/aegis128l/aegis128l_soft.h",
    "content": "#ifndef aegis128l_soft_H\n#define aegis128l_soft_H\n\n#include \"implementations.h\"\n\nextern struct aegis128l_implementation aegis128l_soft_implementation;\n\n#endif\n"
  },
  {
    "path": "src/libsodium/crypto_aead/aegis128l/implementations.h",
    "content": "#ifndef aegis128l_implementations_H\n#define aegis128l_implementations_H\n\n#include <stddef.h>\n#include <stdint.h>\n\n#include \"crypto_aead_aegis128l.h\"\n\ntypedef struct aegis128l_implementation {\n    int (*encrypt_detached)(uint8_t *c, uint8_t *mac, size_t maclen, const uint8_t *m, size_t mlen,\n                            const uint8_t *ad, size_t adlen, const uint8_t *npub, const uint8_t *k);\n    int (*decrypt_detached)(uint8_t *m, const uint8_t *c, size_t clen, const uint8_t *mac,\n                            size_t maclen, const uint8_t *ad, size_t adlen, const uint8_t *npub,\n                            const uint8_t *k);\n} aegis128l_implementation;\n\n#endif\n"
  },
  {
    "path": "src/libsodium/crypto_aead/aegis256/aead_aegis256.c",
    "content": "\n#include <errno.h>\n#include <stdlib.h>\n\n#include \"core.h\"\n#include \"crypto_aead_aegis256.h\"\n#include \"private/common.h\"\n#include \"private/implementations.h\"\n#include \"randombytes.h\"\n#include \"runtime.h\"\n\n#include \"aegis256_soft.h\"\n\n#if defined(HAVE_ARMCRYPTO) && defined(NATIVE_LITTLE_ENDIAN)\n#include \"aegis256_armcrypto.h\"\n#endif\n\n#if defined(HAVE_AVXINTRIN_H) && defined(HAVE_WMMINTRIN_H)\n#include \"aegis256_aesni.h\"\n#endif\n\nstatic const aegis256_implementation *implementation = &aegis256_soft_implementation;\n\nsize_t\ncrypto_aead_aegis256_keybytes(void)\n{\n    return crypto_aead_aegis256_KEYBYTES;\n}\n\nsize_t\ncrypto_aead_aegis256_nsecbytes(void)\n{\n    return crypto_aead_aegis256_NSECBYTES;\n}\n\nsize_t\ncrypto_aead_aegis256_npubbytes(void)\n{\n    return crypto_aead_aegis256_NPUBBYTES;\n}\n\nsize_t\ncrypto_aead_aegis256_abytes(void)\n{\n    return crypto_aead_aegis256_ABYTES;\n}\n\nsize_t\ncrypto_aead_aegis256_messagebytes_max(void)\n{\n    return crypto_aead_aegis256_MESSAGEBYTES_MAX;\n}\n\nvoid\ncrypto_aead_aegis256_keygen(unsigned char k[crypto_aead_aegis256_KEYBYTES])\n{\n    randombytes_buf(k, crypto_aead_aegis256_KEYBYTES);\n}\n\nint\ncrypto_aead_aegis256_encrypt(unsigned char *c, unsigned long long *clen_p, const unsigned char *m,\n                             unsigned long long mlen, const unsigned char *ad,\n                             unsigned long long adlen, const unsigned char *nsec,\n                             const unsigned char *npub, const unsigned char *k)\n{\n    unsigned long long clen = 0ULL;\n    int                ret;\n\n    ret =\n        crypto_aead_aegis256_encrypt_detached(c, c + mlen, NULL, m, mlen, ad, adlen, nsec, npub, k);\n    if (clen_p != NULL) {\n        if (ret == 0) {\n            clen = mlen + crypto_aead_aegis256_ABYTES;\n        }\n        *clen_p = clen;\n    }\n    return ret;\n}\n\nint\ncrypto_aead_aegis256_decrypt(unsigned char *m, unsigned long long *mlen_p, unsigned char *nsec,\n                             const unsigned char *c, unsigned long long clen,\n                             const unsigned char *ad, unsigned long long adlen,\n                             const unsigned char *npub, const unsigned char *k)\n{\n    unsigned long long mlen = 0ULL;\n    int                ret  = -1;\n\n    if (clen >= crypto_aead_aegis256_ABYTES) {\n        ret = crypto_aead_aegis256_decrypt_detached(m, nsec, c, clen - crypto_aead_aegis256_ABYTES,\n                                                    c + clen - crypto_aead_aegis256_ABYTES, ad,\n                                                    adlen, npub, k);\n    }\n    if (mlen_p != NULL) {\n        if (ret == 0) {\n            mlen = clen - crypto_aead_aegis256_ABYTES;\n        }\n        *mlen_p = mlen;\n    }\n    return ret;\n}\n\nint\ncrypto_aead_aegis256_encrypt_detached(unsigned char *c, unsigned char *mac,\n                                      unsigned long long *maclen_p, const unsigned char *m,\n                                      unsigned long long mlen, const unsigned char *ad,\n                                      unsigned long long adlen, const unsigned char *nsec,\n                                      const unsigned char *npub, const unsigned char *k)\n{\n    const size_t maclen = crypto_aead_aegis256_ABYTES;\n\n    (void) nsec;\n    if (maclen_p != NULL) {\n        *maclen_p = maclen;\n    }\n    if (mlen > crypto_aead_aegis256_MESSAGEBYTES_MAX ||\n        adlen > crypto_aead_aegis256_MESSAGEBYTES_MAX) {\n        sodium_misuse(); /* LCOV_EXCL_LINE */\n    }\n    return implementation->encrypt_detached(c, mac, maclen, m, (size_t) mlen, ad, (size_t) adlen,\n                                            npub, k);\n}\n\nint\ncrypto_aead_aegis256_decrypt_detached(unsigned char *m, unsigned char *nsec, const unsigned char *c,\n                                      unsigned long long clen, const unsigned char *mac,\n                                      const unsigned char *ad, unsigned long long adlen,\n                                      const unsigned char *npub, const unsigned char *k)\n{\n    const size_t maclen = crypto_aead_aegis256_ABYTES;\n\n    (void) nsec;\n    if (clen > crypto_aead_aegis256_MESSAGEBYTES_MAX ||\n        adlen > crypto_aead_aegis256_MESSAGEBYTES_MAX) {\n        return -1; /* LCOV_EXCL_LINE */\n    }\n    return implementation->decrypt_detached(m, c, (size_t) clen, mac, maclen, ad, (size_t) adlen,\n                                            npub, k);\n}\n\nint\n_crypto_aead_aegis256_pick_best_implementation(void)\n{\n    implementation = &aegis256_soft_implementation;\n\n#if defined(HAVE_ARMCRYPTO) && defined(NATIVE_LITTLE_ENDIAN)\n    if (sodium_runtime_has_armcrypto()) {\n        implementation = &aegis256_armcrypto_implementation;\n        return 0;\n    }\n#endif\n\n#if defined(HAVE_AVXINTRIN_H) && defined(HAVE_WMMINTRIN_H)\n    if (sodium_runtime_has_aesni() & sodium_runtime_has_avx()) {\n        implementation = &aegis256_aesni_implementation;\n        return 0;\n    }\n#endif\n    return 0; /* LCOV_EXCL_LINE */\n}\n"
  },
  {
    "path": "src/libsodium/crypto_aead/aegis256/aegis256_aesni.c",
    "content": "#include <errno.h>\n#include <stddef.h>\n#include <stdint.h>\n#include <stdlib.h>\n#include <string.h>\n\n#include \"core.h\"\n#include \"crypto_aead_aegis256.h\"\n#include \"crypto_verify_16.h\"\n#include \"crypto_verify_32.h\"\n#include \"export.h\"\n#include \"utils.h\"\n\n#include \"private/common.h\"\n\n#if defined(HAVE_AVXINTRIN_H) && defined(HAVE_WMMINTRIN_H)\n\n#include \"aegis256_aesni.h\"\n\n#ifdef __clang__\n#pragma clang attribute push(__attribute__((target(\"aes,avx\"))), apply_to = function)\n#elif defined(__GNUC__)\n#pragma GCC target(\"aes,avx\")\n#endif\n\n#include \"private/sse2_64_32.h\"\n#include <immintrin.h>\n#include <wmmintrin.h>\n\n#define AES_BLOCK_LENGTH 16\n\ntypedef __m128i aes_block_t;\n#define AES_BLOCK_XOR(A, B)       _mm_xor_si128((A), (B))\n#define AES_BLOCK_AND(A, B)       _mm_and_si128((A), (B))\n#define AES_BLOCK_LOAD(A)         _mm_loadu_si128((const aes_block_t *) (const void *) (A))\n#define AES_BLOCK_LOAD_64x2(A, B) _mm_set_epi64x((long long) (A), (long long) (B))\n#define AES_BLOCK_STORE(A, B)     _mm_storeu_si128((aes_block_t *) (void *) (A), (B))\n#define AES_ENC(A, B)             _mm_aesenc_si128((A), (B))\n\nstatic inline void\naegis256_update(aes_block_t *const state, const aes_block_t d)\n{\n    aes_block_t tmp;\n\n    tmp      = state[5];\n    state[5] = AES_ENC(state[4], state[5]);\n    state[4] = AES_ENC(state[3], state[4]);\n    state[3] = AES_ENC(state[2], state[3]);\n    state[2] = AES_ENC(state[1], state[2]);\n    state[1] = AES_ENC(state[0], state[1]);\n    state[0] = AES_BLOCK_XOR(AES_ENC(tmp, state[0]), d);\n}\n\n#include \"aegis256_common.h\"\n\nstruct aegis256_implementation aegis256_aesni_implementation = { SODIUM_C99(.encrypt_detached =)\n                                                                     encrypt_detached,\n                                                                 SODIUM_C99(.decrypt_detached =)\n                                                                     decrypt_detached };\n\n#ifdef __clang__\n#pragma clang attribute pop\n#endif\n\n#endif\n"
  },
  {
    "path": "src/libsodium/crypto_aead/aegis256/aegis256_aesni.h",
    "content": "#ifndef aegis256_aesni_H\n#define aegis256_aesni_H\n\n#include \"implementations.h\"\n\nextern struct aegis256_implementation aegis256_aesni_implementation;\n\n#endif"
  },
  {
    "path": "src/libsodium/crypto_aead/aegis256/aegis256_armcrypto.c",
    "content": "#include <errno.h>\n#include <stddef.h>\n#include <stdint.h>\n#include <stdlib.h>\n#include <string.h>\n\n#include \"core.h\"\n#include \"crypto_aead_aegis256.h\"\n#include \"crypto_verify_16.h\"\n#include \"crypto_verify_32.h\"\n#include \"export.h\"\n#include \"utils.h\"\n\n#include \"private/common.h\"\n\n#if defined(HAVE_ARMCRYPTO) && defined(NATIVE_LITTLE_ENDIAN)\n\n#include \"aegis256_armcrypto.h\"\n\n#ifndef __ARM_FEATURE_CRYPTO\n#define __ARM_FEATURE_CRYPTO 1\n#endif\n#ifndef __ARM_FEATURE_AES\n#define __ARM_FEATURE_AES 1\n#endif\n\n#include <arm_neon.h>\n\n#ifdef __clang__\n#pragma clang attribute push(__attribute__((target(\"neon,crypto,aes\"))), apply_to = function)\n#elif defined(__GNUC__)\n#pragma GCC target(\"+simd+crypto\")\n#endif\n\n#define AES_BLOCK_LENGTH 16\n\ntypedef uint8x16_t aes_block_t;\n#define AES_BLOCK_XOR(A, B)       veorq_u8((A), (B))\n#define AES_BLOCK_AND(A, B)       vandq_u8((A), (B))\n#define AES_BLOCK_LOAD(A)         vld1q_u8(A)\n#define AES_BLOCK_LOAD_64x2(A, B) vreinterpretq_u8_u64(vsetq_lane_u64((A), vmovq_n_u64(B), 1))\n#define AES_BLOCK_STORE(A, B)     vst1q_u8((A), (B))\n#define AES_ENC(A, B)             veorq_u8(vaesmcq_u8(vaeseq_u8(vmovq_n_u8(0), (A))), (B))\n\nstatic inline void\naegis256_update(aes_block_t *const state, const aes_block_t d)\n{\n    aes_block_t tmp;\n\n    tmp      = state[5];\n    state[5] = AES_ENC(state[4], state[5]);\n    state[4] = AES_ENC(state[3], state[4]);\n    state[3] = AES_ENC(state[2], state[3]);\n    state[2] = AES_ENC(state[1], state[2]);\n    state[1] = AES_ENC(state[0], state[1]);\n    state[0] = AES_BLOCK_XOR(AES_ENC(tmp, state[0]), d);\n}\n\n#include \"aegis256_common.h\"\n\nstruct aegis256_implementation aegis256_armcrypto_implementation = { SODIUM_C99(.encrypt_detached =)\n                                                                         encrypt_detached,\n                                                                     SODIUM_C99(.decrypt_detached =)\n                                                                         decrypt_detached };\n\n#ifdef __clang__\n#pragma clang attribute pop\n#endif\n\n#endif\n"
  },
  {
    "path": "src/libsodium/crypto_aead/aegis256/aegis256_armcrypto.h",
    "content": "#ifndef aegis256_armcrypto_H\n#define aegis256_armcrypto_H\n\n#include \"implementations.h\"\n\nextern struct aegis256_implementation aegis256_armcrypto_implementation;\n\n#endif"
  },
  {
    "path": "src/libsodium/crypto_aead/aegis256/aegis256_common.h",
    "content": "#define RATE 16\n\nstatic inline void\naegis256_init(const uint8_t *key, const uint8_t *nonce, aes_block_t *const state)\n{\n    static CRYPTO_ALIGN(AES_BLOCK_LENGTH)\n        const uint8_t c0_[AES_BLOCK_LENGTH] = { 0x00, 0x01, 0x01, 0x02, 0x03, 0x05, 0x08, 0x0d,\n                                                0x15, 0x22, 0x37, 0x59, 0x90, 0xe9, 0x79, 0x62 };\n    static CRYPTO_ALIGN(AES_BLOCK_LENGTH)\n        const uint8_t c1_[AES_BLOCK_LENGTH] = { 0xdb, 0x3d, 0x18, 0x55, 0x6d, 0xc2, 0x2f, 0xf1,\n                                                0x20, 0x11, 0x31, 0x42, 0x73, 0xb5, 0x28, 0xdd };\n\n    const aes_block_t c0    = AES_BLOCK_LOAD(c0_);\n    const aes_block_t c1    = AES_BLOCK_LOAD(c1_);\n    const aes_block_t k0    = AES_BLOCK_LOAD(key);\n    const aes_block_t k1    = AES_BLOCK_LOAD(key + AES_BLOCK_LENGTH);\n    const aes_block_t n0    = AES_BLOCK_LOAD(nonce);\n    const aes_block_t n1    = AES_BLOCK_LOAD(nonce + AES_BLOCK_LENGTH);\n    const aes_block_t k0_n0 = AES_BLOCK_XOR(k0, n0);\n    const aes_block_t k1_n1 = AES_BLOCK_XOR(k1, n1);\n    int               i;\n\n    state[0] = k0_n0;\n    state[1] = k1_n1;\n    state[2] = c1;\n    state[3] = c0;\n    state[4] = AES_BLOCK_XOR(k0, c0);\n    state[5] = AES_BLOCK_XOR(k1, c1);\n    for (i = 0; i < 4; i++) {\n        aegis256_update(state, k0);\n        aegis256_update(state, k1);\n        aegis256_update(state, k0_n0);\n        aegis256_update(state, k1_n1);\n    }\n}\n\nstatic inline int\naegis256_mac(uint8_t *mac, size_t maclen, uint64_t adlen, uint64_t mlen, aes_block_t *const state)\n{\n    aes_block_t tmp;\n    int         i;\n\n    tmp = AES_BLOCK_LOAD_64x2(mlen << 3, adlen << 3);\n    tmp = AES_BLOCK_XOR(tmp, state[3]);\n\n    for (i = 0; i < 7; i++) {\n        aegis256_update(state, tmp);\n    }\n\n    if (maclen == 16) {\n        /* LCOV_EXCL_START */\n        tmp = AES_BLOCK_XOR(state[5], state[4]);\n        tmp = AES_BLOCK_XOR(tmp, AES_BLOCK_XOR(state[3], state[2]));\n        tmp = AES_BLOCK_XOR(tmp, AES_BLOCK_XOR(state[1], state[0]));\n        AES_BLOCK_STORE(mac, tmp);\n        /* LCOV_EXCL_STOP */\n    } else if (maclen == 32) {\n        tmp = AES_BLOCK_XOR(AES_BLOCK_XOR(state[2], state[1]), state[0]);\n        AES_BLOCK_STORE(mac, tmp);\n        tmp = AES_BLOCK_XOR(AES_BLOCK_XOR(state[5], state[4]), state[3]);\n        AES_BLOCK_STORE(mac + 16, tmp);\n    } else {\n        memset(mac, 0, maclen); /* LCOV_EXCL_LINE */\n        return -1;             /* LCOV_EXCL_LINE */\n    }\n    return 0;\n}\n\nstatic inline void\naegis256_absorb(const uint8_t *const src, aes_block_t *const state)\n{\n    aes_block_t msg;\n\n    msg = AES_BLOCK_LOAD(src);\n    aegis256_update(state, msg);\n}\n\nstatic inline void\naegis256_absorb2(const uint8_t *const src, aes_block_t *const state)\n{\n    aes_block_t msg, msg2;\n\n    msg  = AES_BLOCK_LOAD(src + 0 * AES_BLOCK_LENGTH);\n    msg2 = AES_BLOCK_LOAD(src + 1 * AES_BLOCK_LENGTH);\n    aegis256_update(state, msg);\n    aegis256_update(state, msg2);\n}\n\nstatic inline void\naegis256_enc(uint8_t *const dst, const uint8_t *const src, aes_block_t *const state)\n{\n    aes_block_t msg;\n    aes_block_t tmp;\n\n    msg = AES_BLOCK_LOAD(src);\n    tmp = AES_BLOCK_XOR(msg, state[5]);\n    tmp = AES_BLOCK_XOR(tmp, state[4]);\n    tmp = AES_BLOCK_XOR(tmp, state[1]);\n    tmp = AES_BLOCK_XOR(tmp, AES_BLOCK_AND(state[2], state[3]));\n    AES_BLOCK_STORE(dst, tmp);\n\n    aegis256_update(state, msg);\n}\n\nstatic inline void\naegis256_dec(uint8_t *const dst, const uint8_t *const src, aes_block_t *const state)\n{\n    aes_block_t msg;\n\n    msg = AES_BLOCK_LOAD(src);\n    msg = AES_BLOCK_XOR(msg, state[5]);\n    msg = AES_BLOCK_XOR(msg, state[4]);\n    msg = AES_BLOCK_XOR(msg, state[1]);\n    msg = AES_BLOCK_XOR(msg, AES_BLOCK_AND(state[2], state[3]));\n    AES_BLOCK_STORE(dst, msg);\n\n    aegis256_update(state, msg);\n}\n\nstatic inline void\naegis256_declast(uint8_t *const dst, const uint8_t *const src, size_t len, aes_block_t *const state)\n{\n    uint8_t     pad[RATE];\n    aes_block_t msg;\n\n    memset(pad, 0, sizeof pad);\n    memcpy(pad, src, len);\n\n    msg = AES_BLOCK_LOAD(pad);\n    msg = AES_BLOCK_XOR(msg, state[5]);\n    msg = AES_BLOCK_XOR(msg, state[4]);\n    msg = AES_BLOCK_XOR(msg, state[1]);\n    msg = AES_BLOCK_XOR(msg, AES_BLOCK_AND(state[2], state[3]));\n    AES_BLOCK_STORE(pad, msg);\n\n    memset(pad + len, 0, sizeof pad - len);\n    memcpy(dst, pad, len);\n\n    msg = AES_BLOCK_LOAD(pad);\n\n    aegis256_update(state, msg);\n}\n\nstatic int\nencrypt_detached(uint8_t *c, uint8_t *mac, size_t maclen, const uint8_t *m, size_t mlen,\n                 const uint8_t *ad, size_t adlen, const uint8_t *npub, const uint8_t *k)\n{\n    aes_block_t                state[6];\n    CRYPTO_ALIGN(RATE) uint8_t src[RATE];\n    CRYPTO_ALIGN(RATE) uint8_t dst[RATE];\n    size_t                     i;\n\n    aegis256_init(k, npub, state);\n\n    for (i = 0; i + 2 * RATE <= adlen; i += 2 * RATE) {\n        aegis256_absorb2(ad + i, state);\n    }\n    for (; i + RATE <= adlen; i += RATE) {\n        aegis256_absorb(ad + i, state);\n    }\n    if (adlen % RATE) {\n        memset(src, 0, RATE);\n        memcpy(src, ad + i, adlen % RATE);\n        aegis256_absorb(src, state);\n    }\n    for (i = 0; i + RATE <= mlen; i += RATE) {\n        aegis256_enc(c + i, m + i, state);\n    }\n    if (mlen % RATE) {\n        memset(src, 0, RATE);\n        memcpy(src, m + i, mlen % RATE);\n        aegis256_enc(dst, src, state);\n        memcpy(c + i, dst, mlen % RATE);\n    }\n\n    return aegis256_mac(mac, maclen, adlen, mlen, state);\n}\n\nstatic int\ndecrypt_detached(uint8_t *m, const uint8_t *c, size_t clen, const uint8_t *mac, size_t maclen,\n                 const uint8_t *ad, size_t adlen, const uint8_t *npub, const uint8_t *k)\n{\n    aes_block_t                state[6];\n    CRYPTO_ALIGN(RATE) uint8_t src[RATE];\n    CRYPTO_ALIGN(RATE) uint8_t dst[RATE];\n    CRYPTO_ALIGN(16) uint8_t   computed_mac[32];\n    const size_t               mlen = clen;\n    size_t                     i;\n    int                        ret;\n\n    aegis256_init(k, npub, state);\n\n    for (i = 0; i + 2 * RATE <= adlen; i += 2 * RATE) {\n        aegis256_absorb2(ad + i, state);\n    }\n    for (; i + RATE <= adlen; i += RATE) {\n        aegis256_absorb(ad + i, state);\n    }\n    if (adlen % RATE) {\n        memset(src, 0, RATE);\n        memcpy(src, ad + i, adlen % RATE);\n        aegis256_absorb(src, state);\n    }\n    if (m != NULL) {\n        for (i = 0; i + RATE <= mlen; i += RATE) {\n            aegis256_dec(m + i, c + i, state);\n        }\n    } else {\n        for (i = 0; i + RATE <= mlen; i += RATE) {\n            aegis256_dec(dst, c + i, state);\n        }\n    }\n    if (mlen % RATE) {\n        if (m != NULL) {\n            aegis256_declast(m + i, c + i, mlen % RATE, state);\n        } else {\n            aegis256_declast(dst, c + i, mlen % RATE, state);\n        }\n    }\n\n    COMPILER_ASSERT(sizeof computed_mac >= 32);\n    ret = -1;\n    if (aegis256_mac(computed_mac, maclen, adlen, mlen, state) == 0) {\n        if (maclen == 16) {\n            ret = crypto_verify_16(computed_mac, mac); /* LCOV_EXCL_LINE */\n        } else if (maclen == 32) {\n            ret = crypto_verify_32(computed_mac, mac);\n        }\n    }\n    if (ret != 0) {\n        if (m != NULL) {\n            memset(m, 0, mlen);\n        }\n        return ret;\n    }\n    ACQUIRE_FENCE;\n    return 0;\n}\n"
  },
  {
    "path": "src/libsodium/crypto_aead/aegis256/aegis256_soft.c",
    "content": "#include <errno.h>\n#include <stddef.h>\n#include <stdint.h>\n#include <stdlib.h>\n#include <string.h>\n\n#include \"core.h\"\n#include \"crypto_aead_aegis256.h\"\n#include \"crypto_verify_16.h\"\n#include \"crypto_verify_32.h\"\n#include \"export.h\"\n#include \"utils.h\"\n\n#include \"private/common.h\"\n\n#include \"crypto_aead_aegis256.h\"\n#include \"private/softaes.h\"\n\n#if 1\n\n#include \"aegis256_soft.h\"\n\n#define AES_BLOCK_LENGTH 16\n\ntypedef SoftAesBlock aes_block_t;\n#define AES_BLOCK_XOR(A, B)       softaes_block_xor((A), (B))\n#define AES_BLOCK_AND(A, B)       softaes_block_and((A), (B))\n#define AES_BLOCK_LOAD(A)         softaes_block_load(A)\n#define AES_BLOCK_LOAD_64x2(A, B) softaes_block_load64x2((A), (B))\n#define AES_BLOCK_STORE(A, B)     softaes_block_store((A), (B))\n#define AES_ENC(A, B)             softaes_block_encrypt((A), (B))\n\nstatic inline void\naegis256_update(aes_block_t *const state, const aes_block_t d)\n{\n    aes_block_t tmp;\n\n    tmp      = state[5];\n    state[5] = AES_ENC(state[4], state[5]);\n    state[4] = AES_ENC(state[3], state[4]);\n    state[3] = AES_ENC(state[2], state[3]);\n    state[2] = AES_ENC(state[1], state[2]);\n    state[1] = AES_ENC(state[0], state[1]);\n    state[0] = AES_BLOCK_XOR(AES_ENC(tmp, state[0]), d);\n}\n\n#include \"aegis256_common.h\"\n\nstruct aegis256_implementation aegis256_soft_implementation = { SODIUM_C99(.encrypt_detached =)\n                                                                    encrypt_detached,\n                                                                SODIUM_C99(.decrypt_detached =)\n                                                                    decrypt_detached };\n\n#endif\n"
  },
  {
    "path": "src/libsodium/crypto_aead/aegis256/aegis256_soft.h",
    "content": "#ifndef aegis256_soft_H\n#define aegis256_soft_H\n\n#include \"implementations.h\"\n\nextern struct aegis256_implementation aegis256_soft_implementation;\n\n#endif\n"
  },
  {
    "path": "src/libsodium/crypto_aead/aegis256/implementations.h",
    "content": "#ifndef aegis256_implementations_H\n#define aegis256_implementations_H\n\n#include <stddef.h>\n#include <stdint.h>\n\n#include \"crypto_aead_aegis256.h\"\n\ntypedef struct aegis256_implementation {\n    int (*encrypt_detached)(uint8_t *c, uint8_t *mac, size_t maclen, const uint8_t *m, size_t mlen,\n                            const uint8_t *ad, size_t adlen, const uint8_t *npub, const uint8_t *k);\n    int (*decrypt_detached)(uint8_t *m, const uint8_t *c, size_t clen, const uint8_t *mac,\n                            size_t maclen, const uint8_t *ad, size_t adlen, const uint8_t *npub,\n                            const uint8_t *k);\n} aegis256_implementation;\n\n#endif\n"
  },
  {
    "path": "src/libsodium/crypto_aead/aes256gcm/aead_aes256gcm.c",
    "content": "#include <errno.h>\n#include <stdlib.h>\n\n#include \"crypto_aead_aes256gcm.h\"\n#include \"private/common.h\"\n#include \"randombytes.h\"\n\nsize_t\ncrypto_aead_aes256gcm_keybytes(void)\n{\n    return crypto_aead_aes256gcm_KEYBYTES;\n}\n\nsize_t\ncrypto_aead_aes256gcm_nsecbytes(void)\n{\n    return crypto_aead_aes256gcm_NSECBYTES;\n}\n\nsize_t\ncrypto_aead_aes256gcm_npubbytes(void)\n{\n    return crypto_aead_aes256gcm_NPUBBYTES;\n}\n\nsize_t\ncrypto_aead_aes256gcm_abytes(void)\n{\n    return crypto_aead_aes256gcm_ABYTES;\n}\n\nsize_t\ncrypto_aead_aes256gcm_statebytes(void)\n{\n    return (sizeof(crypto_aead_aes256gcm_state) + (size_t) 15U) & ~(size_t) 15U;\n}\n\nsize_t\ncrypto_aead_aes256gcm_messagebytes_max(void)\n{\n    return crypto_aead_aes256gcm_MESSAGEBYTES_MAX;\n}\n\nvoid\ncrypto_aead_aes256gcm_keygen(unsigned char k[crypto_aead_aes256gcm_KEYBYTES])\n{\n    randombytes_buf(k, crypto_aead_aes256gcm_KEYBYTES);\n}\n\n#if !((defined(HAVE_ARMCRYPTO) && defined(NATIVE_LITTLE_ENDIAN)) || \\\n      (defined(HAVE_TMMINTRIN_H) && defined(HAVE_WMMINTRIN_H)))\n\n#ifndef ENOSYS\n#define ENOSYS ENXIO\n#endif\n\nint\ncrypto_aead_aes256gcm_encrypt_detached(unsigned char *c, unsigned char *mac,\n                                       unsigned long long *maclen_p, const unsigned char *m,\n                                       unsigned long long mlen, const unsigned char *ad,\n                                       unsigned long long adlen, const unsigned char *nsec,\n                                       const unsigned char *npub, const unsigned char *k)\n{\n    errno = ENOSYS;\n    return -1;\n}\n\nint\ncrypto_aead_aes256gcm_encrypt(unsigned char *c, unsigned long long *clen_p, const unsigned char *m,\n                              unsigned long long mlen, const unsigned char *ad,\n                              unsigned long long adlen, const unsigned char *nsec,\n                              const unsigned char *npub, const unsigned char *k)\n{\n    errno = ENOSYS;\n    return -1;\n}\n\nint\ncrypto_aead_aes256gcm_decrypt_detached(unsigned char *m, unsigned char *nsec,\n                                       const unsigned char *c, unsigned long long clen,\n                                       const unsigned char *mac, const unsigned char *ad,\n                                       unsigned long long adlen, const unsigned char *npub,\n                                       const unsigned char *k)\n{\n    errno = ENOSYS;\n    return -1;\n}\n\nint\ncrypto_aead_aes256gcm_decrypt(unsigned char *m, unsigned long long *mlen_p, unsigned char *nsec,\n                              const unsigned char *c, unsigned long long clen,\n                              const unsigned char *ad, unsigned long long adlen,\n                              const unsigned char *npub, const unsigned char *k)\n{\n    errno = ENOSYS;\n    return -1;\n}\n\nint\ncrypto_aead_aes256gcm_beforenm(crypto_aead_aes256gcm_state *st_, const unsigned char *k)\n{\n    errno = ENOSYS;\n    return -1;\n}\n\nint\ncrypto_aead_aes256gcm_encrypt_detached_afternm(unsigned char *c, unsigned char *mac,\n                                               unsigned long long *maclen_p, const unsigned char *m,\n                                               unsigned long long mlen, const unsigned char *ad,\n                                               unsigned long long adlen, const unsigned char *nsec,\n                                               const unsigned char               *npub,\n                                               const crypto_aead_aes256gcm_state *st_)\n{\n    errno = ENOSYS;\n    return -1;\n}\n\nint\ncrypto_aead_aes256gcm_encrypt_afternm(unsigned char *c, unsigned long long *clen_p,\n                                      const unsigned char *m, unsigned long long mlen,\n                                      const unsigned char *ad, unsigned long long adlen,\n                                      const unsigned char *nsec, const unsigned char *npub,\n                                      const crypto_aead_aes256gcm_state *st_)\n{\n    errno = ENOSYS;\n    return -1;\n}\n\nint\ncrypto_aead_aes256gcm_decrypt_detached_afternm(unsigned char *m, unsigned char *nsec,\n                                               const unsigned char *c, unsigned long long clen,\n                                               const unsigned char *mac, const unsigned char *ad,\n                                               unsigned long long adlen, const unsigned char *npub,\n                                               const crypto_aead_aes256gcm_state *st_)\n{\n    errno = ENOSYS;\n    return -1;\n}\n\nint\ncrypto_aead_aes256gcm_decrypt_afternm(unsigned char *m, unsigned long long *mlen_p,\n                                      unsigned char *nsec, const unsigned char *c,\n                                      unsigned long long clen, const unsigned char *ad,\n                                      unsigned long long adlen, const unsigned char *npub,\n                                      const crypto_aead_aes256gcm_state *st_)\n{\n    errno = ENOSYS;\n    return -1;\n}\n\nint\ncrypto_aead_aes256gcm_is_available(void)\n{\n    return 0;\n}\n\n#endif\n"
  },
  {
    "path": "src/libsodium/crypto_aead/aes256gcm/aesni/aead_aes256gcm_aesni.c",
    "content": "#include <errno.h>\n#include <limits.h>\n#include <stdint.h>\n#include <stdlib.h>\n#include <string.h>\n\n#include \"core.h\"\n#include \"crypto_aead_aes256gcm.h\"\n#include \"crypto_verify_16.h\"\n#include \"export.h\"\n#include \"private/common.h\"\n#include \"private/sse2_64_32.h\"\n#include \"randombytes.h\"\n#include \"runtime.h\"\n#include \"utils.h\"\n\n#if defined(HAVE_TMMINTRIN_H) && defined(HAVE_WMMINTRIN_H)\n\n# ifdef __clang__\n#  pragma clang attribute push(__attribute__((target(\"aes,avx,pclmul\"))), apply_to = function)\n# elif defined(__GNUC__)\n#  pragma GCC target(\"aes,avx,pclmul\")\n# endif\n\n#if !defined(_MSC_VER) || _MSC_VER < 1800\n#define __vectorcall\n#endif\n\n#include <tmmintrin.h>\n#include <wmmintrin.h>\n\n#define ABYTES    crypto_aead_aes256gcm_ABYTES\n#define NPUBBYTES crypto_aead_aes256gcm_NPUBBYTES\n#define KEYBYTES  crypto_aead_aes256gcm_KEYBYTES\n\n#define PARALLEL_BLOCKS 7\n#undef USE_KARATSUBA_MULTIPLICATION\n\ntypedef __m128i BlockVec;\n\n#define LOAD128(a)                       _mm_loadu_si128((const BlockVec *) (a))\n#define STORE128(a, b)                   _mm_storeu_si128((BlockVec *) (a), (b))\n#define AES_ENCRYPT(block_vec, rkey)     _mm_aesenc_si128((block_vec), (rkey))\n#define AES_ENCRYPTLAST(block_vec, rkey) _mm_aesenclast_si128((block_vec), (rkey))\n#define AES_KEYGEN(block_vec, rc)        _mm_aeskeygenassist_si128((block_vec), (rc))\n#define XOR128(a, b)                     _mm_xor_si128((a), (b))\n#define AND128(a, b)                     _mm_and_si128((a), (b))\n#define OR128(a, b)                      _mm_or_si128((a), (b))\n#define SET64x2(a, b)                    _mm_set_epi64x((uint64_t) (a), (uint64_t) (b))\n#define ZERO128                          _mm_setzero_si128()\n#define ONE128                           SET64x2(0, 1)\n#define ADD64x2(a, b)                    _mm_add_epi64((a), (b))\n#define SUB64x2(a, b)                    _mm_sub_epi64((a), (b))\n#define SHL64x2(a, b)                    _mm_slli_epi64((a), (b))\n#define SHR64x2(a, b)                    _mm_srli_epi64((a), (b))\n#define REV128(x) \\\n    _mm_shuffle_epi8((x), _mm_set_epi8(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15))\n#define SHUFFLE32x4(x, a, b, c, d) _mm_shuffle_epi32((x), _MM_SHUFFLE((d), (c), (b), (a)))\n#define BYTESHL128(a, b)           _mm_slli_si128(a, b)\n#define BYTESHR128(a, b)           _mm_srli_si128(a, b)\n#define SHL128(a, b)               OR128(SHL64x2((a), (b)), SHR64x2(BYTESHL128((a), 8), 64 - (b)))\n#define CLMULLO128(a, b)           _mm_clmulepi64_si128((a), (b), 0x00)\n#define CLMULHI128(a, b)           _mm_clmulepi64_si128((a), (b), 0x11)\n#define CLMULLOHI128(a, b)         _mm_clmulepi64_si128((a), (b), 0x10)\n#define CLMULHILO128(a, b)         _mm_clmulepi64_si128((a), (b), 0x01)\n#define PREFETCH_READ(x)           _mm_prefetch((x), _MM_HINT_T1)\n#define PREFETCH_WRITE(x)          _mm_prefetch((x), _MM_HINT_T1)\n\n#define ROUNDS 14\n\n#define PC_COUNT (2 * PARALLEL_BLOCKS)\n\ntypedef struct I256 {\n    BlockVec hi;\n    BlockVec lo;\n    BlockVec mid;\n} I256;\n\ntypedef BlockVec Precomp;\n\ntypedef struct GHash {\n    BlockVec acc;\n} GHash;\n\ntypedef struct State {\n    BlockVec rkeys[ROUNDS + 1];\n    Precomp  hx[PC_COUNT];\n} State;\n\nstatic void __vectorcall expand256(const unsigned char key[KEYBYTES], BlockVec rkeys[1 + ROUNDS])\n{\n    BlockVec t1, t2, s;\n    size_t   i = 0;\n\n#define EXPAND_KEY_1(RC)                        \\\n    rkeys[i++] = t2;                            \\\n    s          = AES_KEYGEN(t2, RC);            \\\n    t1         = XOR128(t1, BYTESHL128(t1, 4)); \\\n    t1         = XOR128(t1, BYTESHL128(t1, 8)); \\\n    t1         = XOR128(t1, SHUFFLE32x4(s, 3, 3, 3, 3));\n\n#define EXPAND_KEY_2(RC)                        \\\n    rkeys[i++] = t1;                            \\\n    s          = AES_KEYGEN(t1, RC);            \\\n    t2         = XOR128(t2, BYTESHL128(t2, 4)); \\\n    t2         = XOR128(t2, BYTESHL128(t2, 8)); \\\n    t2         = XOR128(t2, SHUFFLE32x4(s, 2, 2, 2, 2));\n\n    t1 = LOAD128(&key[0]);\n    t2 = LOAD128(&key[16]);\n\n    rkeys[i++] = t1;\n    EXPAND_KEY_1(0x01);\n    EXPAND_KEY_2(0x01);\n    EXPAND_KEY_1(0x02);\n    EXPAND_KEY_2(0x02);\n    EXPAND_KEY_1(0x04);\n    EXPAND_KEY_2(0x04);\n    EXPAND_KEY_1(0x08);\n    EXPAND_KEY_2(0x08);\n    EXPAND_KEY_1(0x10);\n    EXPAND_KEY_2(0x10);\n    EXPAND_KEY_1(0x20);\n    EXPAND_KEY_2(0x20);\n    EXPAND_KEY_1(0x40);\n    rkeys[i++] = t1;\n}\n\n/* Encrypt a single AES block */\n\nstatic inline void\nencrypt(const State *st, unsigned char dst[16], const unsigned char src[16])\n{\n    BlockVec t;\n\n    size_t i;\n\n    t = XOR128(LOAD128(src), st->rkeys[0]);\n    for (i = 1; i < ROUNDS; i++) {\n        t = AES_ENCRYPT(t, st->rkeys[i]);\n    }\n    t = AES_ENCRYPTLAST(t, st->rkeys[ROUNDS]);\n    STORE128(dst, t);\n}\n\n/* Encrypt and add a single AES block */\n\nstatic inline void __vectorcall encrypt_xor_block(const State *st, unsigned char dst[16],\n                                                  const unsigned char src[16],\n                                                  const BlockVec      counter)\n{\n    BlockVec ts;\n    size_t   i;\n\n    ts = XOR128(counter, st->rkeys[0]);\n    for (i = 1; i < ROUNDS; i++) {\n        ts = AES_ENCRYPT(ts, st->rkeys[i]);\n    }\n    ts = AES_ENCRYPTLAST(ts, st->rkeys[i]);\n    ts = XOR128(ts, LOAD128(src));\n    STORE128(dst, ts);\n}\n\n/* Encrypt and add PARALLEL_BLOCKS AES blocks */\n\nstatic inline void __vectorcall encrypt_xor_wide(const State        *st,\n                                                 unsigned char       dst[16 * PARALLEL_BLOCKS],\n                                                 const unsigned char src[16 * PARALLEL_BLOCKS],\n                                                 const BlockVec      counters[PARALLEL_BLOCKS])\n{\n    BlockVec ts[PARALLEL_BLOCKS];\n    size_t   i, j;\n\n    for (j = 0; j < PARALLEL_BLOCKS; j++) {\n        ts[j] = XOR128(counters[j], st->rkeys[0]);\n    }\n    for (i = 1; i < ROUNDS; i++) {\n        for (j = 0; j < PARALLEL_BLOCKS; j++) {\n            ts[j] = AES_ENCRYPT(ts[j], st->rkeys[i]);\n        }\n    }\n    for (j = 0; j < PARALLEL_BLOCKS; j++) {\n        ts[j] = AES_ENCRYPTLAST(ts[j], st->rkeys[i]);\n        ts[j] = XOR128(ts[j], LOAD128(&src[16 * j]));\n    }\n    for (j = 0; j < PARALLEL_BLOCKS; j++) {\n        STORE128(&dst[16 * j], ts[j]);\n    }\n}\n\n/* Square a field element */\n\nstatic inline I256 __vectorcall clsq128(const BlockVec x)\n{\n    const BlockVec r_lo  = CLMULLO128(x, x);\n    const BlockVec r_hi  = CLMULHI128(x, x);\n\n    return (I256) {\n        SODIUM_C99(.hi =) r_hi,\n        SODIUM_C99(.lo =) r_lo,\n        SODIUM_C99(.mid =) ZERO128,\n    };\n}\n\n/* Multiply two field elements -- Textbook multiplication is faster than Karatsuba on some recent\n * CPUs */\n\nstatic inline I256 __vectorcall clmul128(const BlockVec x, const BlockVec y)\n{\n#ifdef USE_KARATSUBA_MULTIPLICATION\n    const BlockVec x_hi  = BYTESHR128(x, 8);\n    const BlockVec y_hi  = BYTESHR128(y, 8);\n    const BlockVec r_lo  = CLMULLO128(x, y);\n    const BlockVec r_hi  = CLMULHI128(x, y);\n    const BlockVec r_mid = XOR128(CLMULLO128(XOR128(x, x_hi), XOR128(y, y_hi)), XOR128(r_lo, r_hi));\n\n    return (I256) {\n        SODIUM_C99(.hi =) r_hi,\n        SODIUM_C99(.lo =) r_lo,\n        SODIUM_C99(.mid =) r_mid,\n    };\n#else\n    const BlockVec r_hi  = CLMULHI128(x, y);\n    const BlockVec r_lo  = CLMULLO128(x, y);\n    const BlockVec r_mid = XOR128(CLMULHILO128(x, y), CLMULLOHI128(x, y));\n\n    return (I256) {\n        SODIUM_C99(.hi =) r_hi,\n        SODIUM_C99(.lo =) r_lo,\n        SODIUM_C99(.mid =) r_mid,\n    };\n#endif\n}\n\n/* Merge the middle word and reduce a field element */\n\nstatic inline BlockVec __vectorcall gcm_reduce(const I256 x)\n{\n    const BlockVec hi = XOR128(x.hi, BYTESHR128(x.mid, 8));\n    const BlockVec lo = XOR128(x.lo, BYTESHL128(x.mid, 8));\n\n    const BlockVec p64 = SET64x2(0, 0xc200000000000000);\n    const BlockVec a   = CLMULLO128(lo, p64);\n    const BlockVec b   = XOR128(SHUFFLE32x4(lo, 2, 3, 0, 1), a);\n    const BlockVec c   = CLMULLO128(b, p64);\n    const BlockVec d   = XOR128(SHUFFLE32x4(b, 2, 3, 0, 1), c);\n\n    return XOR128(d, hi);\n}\n\n/* Precompute powers of H from `from` to `to` */\n\nstatic inline void __vectorcall precomp(Precomp hx[PC_COUNT], const size_t from, const size_t to)\n{\n    const Precomp h = hx[0];\n    size_t        i;\n\n    for (i = from & ~1U; i < to; i += 2) {\n        hx[i]     = gcm_reduce(clmul128(hx[i - 1], h));\n        hx[i + 1] = gcm_reduce(clsq128(hx[i / 2]));\n    }\n}\n\n/* Precompute powers of H given a key and a block count */\n\nstatic void __vectorcall precomp_for_block_count(Precomp             hx[PC_COUNT],\n                                                 const unsigned char gh_key[16],\n                                                 const size_t        block_count)\n{\n    const BlockVec h0    = REV128(LOAD128(gh_key));\n    BlockVec       carry = SET64x2(0xc200000000000000, 1);\n    BlockVec       mask  = SUB64x2(ZERO128, SHR64x2(h0, 63));\n    BlockVec       h0_shifted;\n    BlockVec       h;\n\n    mask       = SHUFFLE32x4(mask, 3, 3, 3, 3);\n    carry      = AND128(carry, mask);\n    h0_shifted = SHL128(h0, 1);\n    h          = XOR128(h0_shifted, carry);\n\n    hx[0] = h;\n    hx[1] = gcm_reduce(clsq128(hx[0]));\n\n    if (block_count >= PC_COUNT) {\n        precomp(hx, 2, PC_COUNT);\n    } else {\n        precomp(hx, 2, block_count);\n    }\n}\n\n/* Initialize a GHash */\n\nstatic inline void\ngh_init(GHash *sth)\n{\n    sth->acc = ZERO128;\n}\n\nstatic inline I256 __vectorcall gh_update0(const GHash *const sth, const unsigned char *const p,\n                                           const Precomp hn)\n{\n    const BlockVec m = REV128(LOAD128(p));\n    return clmul128(XOR128(sth->acc, m), hn);\n}\n\nstatic inline void __vectorcall gh_update(I256 *const u, const unsigned char *p, const Precomp hn)\n{\n    const BlockVec m = REV128(LOAD128(p));\n    const I256     t = clmul128(m, hn);\n    *u = (I256) { SODIUM_C99(.hi =) XOR128(u->hi, t.hi), SODIUM_C99(.lo =) XOR128(u->lo, t.lo),\n                  SODIUM_C99(.mid =) XOR128(u->mid, t.mid) };\n}\n\n/* Absorb ad_len bytes of associated data. There has to be no partial block. */\n\nstatic inline void\ngh_ad_blocks(const State *st, GHash *sth, const unsigned char *ad, size_t ad_len)\n{\n    size_t i;\n\n    i = (size_t) 0U;\n    for (; i + PC_COUNT * 16 <= ad_len; i += PC_COUNT * 16) {\n        I256     u = gh_update0(sth, ad + i, st->hx[PC_COUNT - 1 - 0]);\n        size_t   j;\n\n        for (j = 1; j < PC_COUNT; j += 1) {\n            gh_update(&u, ad + i + j * 16, st->hx[PC_COUNT - 1 - j]);\n        }\n        sth->acc = gcm_reduce(u);\n    }\n    for (; i + PC_COUNT * 16 / 2 <= ad_len; i += PC_COUNT * 16 / 2) {\n        I256     u = gh_update0(sth, ad + i, st->hx[PC_COUNT / 2 - 1 - 0]);\n        size_t   j;\n\n        for (j = 1; j < PC_COUNT / 2; j += 1) {\n            gh_update(&u, ad + i + j * 16, st->hx[PC_COUNT / 2 - 1 - j]);\n        }\n        sth->acc = gcm_reduce(u);\n    }\n    for (; i + 4 * 16 <= ad_len; i += 4 * 16) {\n        size_t   j;\n        I256     u = gh_update0(sth, ad + i, st->hx[4 - 1 - 0]);\n\n        for (j = 1; j < 4; j += 1) {\n            gh_update(&u, ad + i + j * 16, st->hx[4 - 1 - j]);\n        }\n        sth->acc = gcm_reduce(u);\n    }\n    for (; i + 2 * 16 <= ad_len; i += 2 * 16) {\n        size_t   j;\n        I256     u = gh_update0(sth, ad + i, st->hx[2 - 1 - 0]);\n\n        for (j = 1; j < 2; j += 1) {\n            gh_update(&u, ad + i + j * 16, st->hx[2 - 1 - j]);\n        }\n        sth->acc = gcm_reduce(u);\n    }\n    if (i < ad_len) {\n        I256     u = gh_update0(sth, ad + i, st->hx[0]);\n        sth->acc = gcm_reduce(u);\n    }\n}\n\n/* Increment counters */\n\nstatic inline BlockVec __vectorcall incr_counters(BlockVec rev_counters[], BlockVec counter,\n                                                  const size_t n)\n{\n    size_t i;\n\n    const BlockVec one = ONE128;\n    for (i = 0; i < n; i++) {\n        rev_counters[i] = REV128(counter);\n        counter         = ADD64x2(counter, one);\n    }\n    return counter;\n}\n\n/* Compute the number of required blocks to encrypt and authenticate `ad_len` of associated data,\n * and `m_len` of encrypted bytes. Return `0` if limits would be exceeded.*/\n\nstatic inline size_t\nrequired_blocks(const size_t ad_len, const size_t m_len)\n{\n    const size_t ad_blocks = (ad_len + 15) / 16;\n    const size_t m_blocks  = (m_len + 15) / 16;\n\n    if (ad_len > SIZE_MAX - 2 * PARALLEL_BLOCKS * 16 ||\n        m_len > SIZE_MAX - 2 * PARALLEL_BLOCKS * 16 || ad_len < ad_blocks || m_len < m_blocks ||\n        m_blocks >= (1ULL << 32) - 2) {\n        return 0;\n    }\n    return ad_blocks + m_blocks + 1;\n}\n\n/* Generic AES-GCM encryption. \"Generic\" as it can handle arbitrary input sizes,\nunlike a length-limited version that would precompute all the required powers of H */\n\nstatic void\naes_gcm_encrypt_generic(const State *st, GHash *sth, unsigned char mac[ABYTES], unsigned char *dst,\n                        const unsigned char *src, size_t src_len, const unsigned char *ad,\n                        size_t ad_len, unsigned char counter_[16])\n{\n    CRYPTO_ALIGN(32) I256          u;\n    CRYPTO_ALIGN(16) unsigned char last_blocks[2 * 16];\n    const BlockVec                 one = ONE128;\n    BlockVec                       final_block;\n    BlockVec                       rev_counters[PARALLEL_BLOCKS];\n    BlockVec                       counter;\n    size_t                         i;\n    size_t                         j;\n    size_t                         left;\n    size_t                         pi;\n\n    COMPILER_ASSERT(PC_COUNT % PARALLEL_BLOCKS == 0);\n\n    /* Associated data */\n\n    if (ad != NULL && ad_len != 0) {\n        gh_ad_blocks(st, sth, ad, ad_len & ~15);\n        left = ad_len & 15;\n        if (left != 0) {\n            unsigned char pad[16];\n\n            memset(pad, 0, sizeof pad);\n            memcpy(pad, ad + ad_len - left, left);\n            gh_ad_blocks(st, sth, pad, sizeof pad);\n        }\n    }\n\n    /* Encrypted data */\n\n    counter = REV128(LOAD128(counter_));\n    i       = 0;\n\n    /* 2*PARALLEL_BLOCKS aggregation */\n\n    if (src_len - i >= 2 * PARALLEL_BLOCKS * 16) {\n        counter = incr_counters(rev_counters, counter, PARALLEL_BLOCKS);\n        encrypt_xor_wide(st, dst + i, src + i, rev_counters);\n        i += PARALLEL_BLOCKS * 16;\n\n        for (; i + 2 * PARALLEL_BLOCKS * 16 <= src_len; i += 2 * PARALLEL_BLOCKS * 16) {\n            counter = incr_counters(rev_counters, counter, PARALLEL_BLOCKS);\n            encrypt_xor_wide(st, dst + i, src + i, rev_counters);\n\n            PREFETCH_READ(src + i + PARALLEL_BLOCKS * 16);\n#if PARALLEL_BLOCKS >= 64 / 16\n            PREFETCH_READ(src + i + PARALLEL_BLOCKS * 16 + 64);\n#endif\n\n            pi = i - PARALLEL_BLOCKS * 16;\n            u  = gh_update0(sth, dst + pi, st->hx[2 * PARALLEL_BLOCKS - 1 - 0]);\n            for (j = 1; j < PARALLEL_BLOCKS; j += 1) {\n                gh_update(&u, dst + pi + j * 16, st->hx[2 * PARALLEL_BLOCKS - 1 - j]);\n            }\n\n            counter = incr_counters(rev_counters, counter, PARALLEL_BLOCKS);\n            encrypt_xor_wide(st, dst + i + PARALLEL_BLOCKS * 16, src + i + PARALLEL_BLOCKS * 16,\n                             rev_counters);\n\n            PREFETCH_READ(src + i + 2 * PARALLEL_BLOCKS * 16);\n#if PARALLEL_BLOCKS >= 64 / 16\n            PREFETCH_READ(src + i + 2 * PARALLEL_BLOCKS * 16 + 64);\n#endif\n            pi = i;\n            for (j = 0; j < PARALLEL_BLOCKS; j += 1) {\n                gh_update(&u, dst + pi + j * 16, st->hx[PARALLEL_BLOCKS - 1 - j]);\n            }\n            sth->acc = gcm_reduce(u);\n        }\n\n        pi = i - PARALLEL_BLOCKS * 16;\n        u  = gh_update0(sth, dst + pi, st->hx[PARALLEL_BLOCKS - 1 - 0]);\n        for (j = 1; j < PARALLEL_BLOCKS; j += 1) {\n            gh_update(&u, dst + pi + j * 16, st->hx[PARALLEL_BLOCKS - 1 - j]);\n        }\n        sth->acc = gcm_reduce(u);\n    }\n\n    /* PARALLEL_BLOCKS aggregation */\n\n    if (src_len - i >= PARALLEL_BLOCKS * 16) {\n        counter = incr_counters(rev_counters, counter, PARALLEL_BLOCKS);\n        encrypt_xor_wide(st, dst + i, src + i, rev_counters);\n        i += PARALLEL_BLOCKS * 16;\n\n        for (; i + PARALLEL_BLOCKS * 16 <= src_len; i += PARALLEL_BLOCKS * 16) {\n            counter = incr_counters(rev_counters, counter, PARALLEL_BLOCKS);\n            encrypt_xor_wide(st, dst + i, src + i, rev_counters);\n\n            pi = i - PARALLEL_BLOCKS * 16;\n            u  = gh_update0(sth, dst + pi, st->hx[PARALLEL_BLOCKS - 1 - 0]);\n            for (j = 1; j < PARALLEL_BLOCKS; j += 1) {\n                gh_update(&u, dst + pi + j * 16, st->hx[PARALLEL_BLOCKS - 1 - j]);\n            }\n            sth->acc = gcm_reduce(u);\n        }\n\n        pi = i - PARALLEL_BLOCKS * 16;\n        u  = gh_update0(sth, dst + pi, st->hx[PARALLEL_BLOCKS - 1 - 0]);\n        for (j = 1; j < PARALLEL_BLOCKS; j += 1) {\n            gh_update(&u, dst + pi + j * 16, st->hx[PARALLEL_BLOCKS - 1 - j]);\n        }\n        sth->acc = gcm_reduce(u);\n    }\n\n    /* 4-blocks aggregation */\n\n    for (; i + 4 * 16 <= src_len; i += 4 * 16) {\n        counter = incr_counters(rev_counters, counter, 4);\n        for (j = 0; j < 4; j++) {\n            encrypt_xor_block(st, dst + i + j * 16, src + i + j * 16, rev_counters[j]);\n        }\n\n        u = gh_update0(sth, dst + i, st->hx[4 - 1 - 0]);\n        for (j = 1; j < 4; j += 1) {\n            gh_update(&u, dst + i + j * 16, st->hx[4 - 1 - j]);\n        }\n        sth->acc = gcm_reduce(u);\n    }\n\n    /* 2-blocks aggregation */\n\n    for (; i + 2 * 16 <= src_len; i += 2 * 16) {\n        counter = incr_counters(rev_counters, counter, 2);\n        for (j = 0; j < 2; j++) {\n            encrypt_xor_block(st, dst + i + j * 16, src + i + j * 16, rev_counters[j]);\n        }\n\n        u = gh_update0(sth, dst + i, st->hx[2 - 1 - 0]);\n        for (j = 1; j < 2; j += 1) {\n            gh_update(&u, dst + i + j * 16, st->hx[2 - 1 - j]);\n        }\n        sth->acc = gcm_reduce(u);\n    }\n\n    /* Remaining *partial* blocks; if we have 16 bytes left, we want to keep the\n    full block authenticated along with the final block, hence < and not <= */\n\n    for (; i + 16 < src_len; i += 16) {\n        encrypt_xor_block(st, dst + i, src + i, REV128(counter));\n        u        = gh_update0(sth, dst + i, st->hx[1 - 1 - 0]);\n        sth->acc = gcm_reduce(u);\n        counter  = ADD64x2(counter, one);\n    }\n\n    /* Authenticate both the last block of the message and the final block */\n\n    final_block = REV128(SET64x2(ad_len * 8, src_len * 8));\n    STORE32_BE(counter_ + NPUBBYTES, 1);\n    encrypt(st, mac, counter_);\n    left = src_len - i;\n    if (left != 0) {\n        for (j = 0; j < left; j++) {\n            last_blocks[j] = src[i + j];\n        }\n        STORE128(last_blocks + 16, final_block);\n        encrypt_xor_block(st, last_blocks, last_blocks, REV128(counter));\n        for (; j < 16; j++) {\n            last_blocks[j] = 0;\n        }\n        for (j = 0; j < left; j++) {\n            dst[i + j] = last_blocks[j];\n        }\n        gh_ad_blocks(st, sth, last_blocks, 32);\n    } else {\n        STORE128(last_blocks, final_block);\n        gh_ad_blocks(st, sth, last_blocks, 16);\n    }\n    STORE128(mac, XOR128(LOAD128(mac), REV128(sth->acc)));\n}\n\n/* Generic AES-GCM decryption. \"Generic\" as it can handle arbitrary input sizes,\nunlike a length-limited version that would precompute all the required powers of H */\n\nstatic void\naes_gcm_decrypt_generic(const State *st, GHash *sth, unsigned char mac[ABYTES], unsigned char *dst,\n                        const unsigned char *src, size_t src_len, const unsigned char *ad,\n                        size_t ad_len, unsigned char counter_[16])\n{\n    CRYPTO_ALIGN(32) I256          u;\n    CRYPTO_ALIGN(16) unsigned char last_blocks[2 * 16];\n    const BlockVec                 one = ONE128;\n    BlockVec                       final_block;\n    BlockVec                       rev_counters[PARALLEL_BLOCKS];\n    BlockVec                       counter;\n    size_t                         i;\n    size_t                         j;\n    size_t                         left;\n\n    COMPILER_ASSERT(PC_COUNT % PARALLEL_BLOCKS == 0);\n\n    /* Associated data */\n\n    if (ad != NULL && ad_len != 0) {\n        gh_ad_blocks(st, sth, ad, ad_len & ~15);\n        left = ad_len & 15;\n        if (left != 0) {\n            unsigned char pad[16];\n\n            memset(pad, 0, sizeof pad);\n            memcpy(pad, ad + ad_len - left, left);\n            gh_ad_blocks(st, sth, pad, sizeof pad);\n        }\n    }\n\n    /* Encrypted data */\n\n    counter = REV128(LOAD128(counter_));\n    i       = 0;\n\n    /* 2*PARALLEL_BLOCKS aggregation */\n\n    while (i + 2 * PARALLEL_BLOCKS * 16 <= src_len) {\n        counter = incr_counters(rev_counters, counter, PARALLEL_BLOCKS);\n\n        u = gh_update0(sth, src + i, st->hx[2 * PARALLEL_BLOCKS - 1 - 0]);\n        for (j = 1; j < PARALLEL_BLOCKS; j += 1) {\n            gh_update(&u, src + i + j * 16, st->hx[2 * PARALLEL_BLOCKS - 1 - j]);\n        }\n\n        encrypt_xor_wide(st, dst + i, src + i, rev_counters);\n\n        counter = incr_counters(rev_counters, counter, PARALLEL_BLOCKS);\n\n        i += PARALLEL_BLOCKS * 16;\n        for (j = 0; j < PARALLEL_BLOCKS; j += 1) {\n            gh_update(&u, src + i + j * 16, st->hx[PARALLEL_BLOCKS - 1 - j]);\n        }\n        sth->acc = gcm_reduce(u);\n\n        encrypt_xor_wide(st, dst + i, src + i, rev_counters);\n        i += PARALLEL_BLOCKS * 16;\n    }\n\n    /* PARALLEL_BLOCKS aggregation */\n\n    for (; i + PARALLEL_BLOCKS * 16 <= src_len; i += PARALLEL_BLOCKS * 16) {\n        counter = incr_counters(rev_counters, counter, PARALLEL_BLOCKS);\n\n        u = gh_update0(sth, src + i, st->hx[PARALLEL_BLOCKS - 1 - 0]);\n        for (j = 1; j < PARALLEL_BLOCKS; j += 1) {\n            gh_update(&u, src + i + j * 16, st->hx[PARALLEL_BLOCKS - 1 - j]);\n        }\n        sth->acc = gcm_reduce(u);\n\n        encrypt_xor_wide(st, dst + i, src + i, rev_counters);\n    }\n\n    /* 4-blocks aggregation */\n\n    for (; i + 4 * 16 <= src_len; i += 4 * 16) {\n        counter = incr_counters(rev_counters, counter, 4);\n\n        u = gh_update0(sth, src + i, st->hx[4 - 1 - 0]);\n        for (j = 1; j < 4; j += 1) {\n            gh_update(&u, src + i + j * 16, st->hx[4 - 1 - j]);\n        }\n        sth->acc = gcm_reduce(u);\n\n        for (j = 0; j < 4; j++) {\n            encrypt_xor_block(st, dst + i + j * 16, src + i + j * 16, rev_counters[j]);\n        }\n    }\n\n    /* 2-blocks aggregation */\n\n    for (; i + 2 * 16 <= src_len; i += 2 * 16) {\n        counter = incr_counters(rev_counters, counter, 2);\n\n        u = gh_update0(sth, src + i, st->hx[2 - 1 - 0]);\n        for (j = 1; j < 2; j += 1) {\n            gh_update(&u, src + i + j * 16, st->hx[2 - 1 - j]);\n        }\n        sth->acc = gcm_reduce(u);\n\n        for (j = 0; j < 2; j++) {\n            encrypt_xor_block(st, dst + i + j * 16, src + i + j * 16, rev_counters[j]);\n        }\n    }\n\n    /* Remaining *partial* blocks; if we have 16 bytes left, we want to keep the\n    full block authenticated along with the final block, hence < and not <= */\n\n    for (; i + 16 < src_len; i += 16) {\n        u        = gh_update0(sth, src + i, st->hx[1 - 1 - 0]);\n        sth->acc = gcm_reduce(u);\n        encrypt_xor_block(st, dst + i, src + i, REV128(counter));\n        counter = ADD64x2(counter, one);\n    }\n\n    /* Authenticate both the last block of the message and the final block */\n\n    final_block = REV128(SET64x2(ad_len * 8, src_len * 8));\n    STORE32_BE(counter_ + NPUBBYTES, 1);\n    encrypt(st, mac, counter_);\n    left = src_len - i;\n    if (left != 0) {\n        for (j = 0; j < left; j++) {\n            last_blocks[j] = src[i + j];\n        }\n        for (; j < 16; j++) {\n            last_blocks[j] = 0;\n        }\n        STORE128(last_blocks + 16, final_block);\n        gh_ad_blocks(st, sth, last_blocks, 32);\n        encrypt_xor_block(st, last_blocks, last_blocks, REV128(counter));\n        for (j = 0; j < left; j++) {\n            dst[i + j] = last_blocks[j];\n        }\n    } else {\n        STORE128(last_blocks, final_block);\n        gh_ad_blocks(st, sth, last_blocks, 16);\n    }\n    STORE128(mac, XOR128(LOAD128(mac), REV128(sth->acc)));\n}\n\nint\ncrypto_aead_aes256gcm_beforenm(crypto_aead_aes256gcm_state *st_, const unsigned char *k)\n{\n    State                         *st = (State *) (void *) st_;\n    CRYPTO_ALIGN(16) unsigned char h[16];\n\n    COMPILER_ASSERT(sizeof *st_ >= sizeof *st);\n\n    expand256(k, st->rkeys);\n    memset(h, 0, sizeof h);\n    encrypt(st, h, h);\n\n    precomp_for_block_count(st->hx, h, PC_COUNT);\n\n    return 0;\n}\n\nint\ncrypto_aead_aes256gcm_encrypt_detached_afternm(unsigned char *c, unsigned char *mac,\n                                               unsigned long long *maclen_p, const unsigned char *m,\n                                               unsigned long long m_len_, const unsigned char *ad,\n                                               unsigned long long   ad_len_,\n                                               const unsigned char *nsec, const unsigned char *npub,\n                                               const crypto_aead_aes256gcm_state *st_)\n{\n    const State                   *st = (const State *) (const void *) st_;\n    GHash                          sth;\n    CRYPTO_ALIGN(16) unsigned char j[16];\n    size_t                         gh_required_blocks;\n    const size_t                   ad_len = (size_t) ad_len_;\n    const size_t                   m_len  = (size_t) m_len_;\n\n    (void) nsec;\n    if (maclen_p != NULL) {\n        *maclen_p = 0;\n    }\n    if (ad_len_ > SODIUM_SIZE_MAX || m_len_ > SODIUM_SIZE_MAX) {\n        sodium_misuse();\n    }\n    gh_required_blocks = required_blocks(ad_len, m_len);\n    if (gh_required_blocks == 0) {\n        memset(mac, 0xd0, ABYTES);\n        memset(c, 0, m_len);\n        return -1;\n    }\n\n    gh_init(&sth);\n\n    memcpy(j, npub, NPUBBYTES);\n    STORE32_BE(j + NPUBBYTES, 2);\n\n    aes_gcm_encrypt_generic(st, &sth, mac, c, m, m_len, ad, ad_len, j);\n\n    if (maclen_p != NULL) {\n        *maclen_p = ABYTES;\n    }\n    return 0;\n}\n\nint\ncrypto_aead_aes256gcm_encrypt(unsigned char *c, unsigned long long *clen_p, const unsigned char *m,\n                              unsigned long long m_len, const unsigned char *ad,\n                              unsigned long long ad_len, const unsigned char *nsec,\n                              const unsigned char *npub, const unsigned char *k)\n{\n    const int ret = crypto_aead_aes256gcm_encrypt_detached(c, c + m_len, NULL, m, m_len, ad, ad_len,\n                                                           nsec, npub, k);\n    if (clen_p != NULL) {\n        if (ret == 0) {\n            *clen_p = m_len + crypto_aead_aes256gcm_ABYTES;\n        } else {\n            *clen_p = 0;\n        }\n    }\n    return ret;\n}\n\nint\ncrypto_aead_aes256gcm_encrypt_detached(unsigned char *c, unsigned char *mac,\n                                       unsigned long long *maclen_p, const unsigned char *m,\n                                       unsigned long long m_len, const unsigned char *ad,\n                                       unsigned long long ad_len, const unsigned char *nsec,\n                                       const unsigned char *npub, const unsigned char *k)\n{\n    CRYPTO_ALIGN(16) crypto_aead_aes256gcm_state st;\n    int                                          ret;\n\n    PREFETCH_WRITE(c);\n    PREFETCH_READ(m);\n    PREFETCH_READ(ad);\n\n    crypto_aead_aes256gcm_beforenm(&st, k);\n    ret = crypto_aead_aes256gcm_encrypt_detached_afternm(c, mac, maclen_p, m, m_len, ad, ad_len,\n                                                         nsec, npub, &st);\n    sodium_memzero(&st, sizeof st);\n\n    return ret;\n}\n\nint\ncrypto_aead_aes256gcm_encrypt_afternm(unsigned char *c, unsigned long long *clen_p,\n                                      const unsigned char *m, unsigned long long mlen,\n                                      const unsigned char *ad, unsigned long long adlen,\n                                      const unsigned char *nsec, const unsigned char *npub,\n                                      const crypto_aead_aes256gcm_state *st_)\n{\n    int ret = crypto_aead_aes256gcm_encrypt_detached_afternm(c, c + mlen, NULL, m, mlen, ad, adlen,\n                                                             nsec, npub, st_);\n    if (clen_p != NULL) {\n        *clen_p = mlen + crypto_aead_aes256gcm_ABYTES;\n    }\n    return ret;\n}\n\nstatic int\ncrypto_aead_aes256gcm_verify_mac(unsigned char *nsec, const unsigned char *c,\n                                 unsigned long long c_len_, const unsigned char *mac,\n                                 const unsigned char *ad, unsigned long long ad_len_,\n                                 const unsigned char *npub, const crypto_aead_aes256gcm_state *st_)\n{\n    const State                   *st = (const State *) (const void *) st_;\n    GHash                          sth;\n    BlockVec                       final_block;\n    CRYPTO_ALIGN(16) unsigned char j[16];\n    CRYPTO_ALIGN(16) unsigned char computed_mac[16];\n    CRYPTO_ALIGN(16) unsigned char last_block[16];\n    size_t                         gh_required_blocks;\n    size_t                         left;\n    const size_t                   ad_len = (size_t) ad_len_;\n    const size_t                   c_len  = (size_t) c_len_;\n    int                            ret;\n\n    (void) nsec;\n    if (ad_len_ > SODIUM_SIZE_MAX || c_len_ > SODIUM_SIZE_MAX) {\n        sodium_misuse();\n    }\n    gh_required_blocks = required_blocks(ad_len, c_len);\n    if (gh_required_blocks == 0) {\n        return -1;\n    }\n\n    gh_init(&sth);\n\n    memcpy(j, npub, NPUBBYTES);\n    STORE32_BE(j + NPUBBYTES, 2);\n\n    gh_ad_blocks(st, &sth, ad, ad_len & ~15);\n    left = ad_len & 15;\n    if (left != 0) {\n        unsigned char pad[16];\n\n        memset(pad, 0, sizeof pad);\n        memcpy(pad, ad + ad_len - left, left);\n        gh_ad_blocks(st, &sth, pad, sizeof pad);\n    }\n\n    gh_ad_blocks(st, &sth, c, c_len & ~15);\n    left = c_len & 15;\n    if (left != 0) {\n        unsigned char pad[16];\n\n        memset(pad, 0, sizeof pad);\n        memcpy(pad, c + c_len - left, left);\n        gh_ad_blocks(st, &sth, pad, sizeof pad);\n    }\n    final_block = REV128(SET64x2(ad_len * 8, c_len * 8));\n    STORE32_BE(j + NPUBBYTES, 1);\n    encrypt(st, computed_mac, j);\n    STORE128(last_block, final_block);\n    gh_ad_blocks(st, &sth, last_block, 16);\n    STORE128(computed_mac, XOR128(LOAD128(computed_mac), REV128(sth.acc)));\n\n    ret = crypto_verify_16(mac, computed_mac);\n    sodium_memzero(computed_mac, sizeof computed_mac);\n\n    return ret;\n}\n\nint\ncrypto_aead_aes256gcm_decrypt_detached_afternm(unsigned char *m, unsigned char *nsec,\n                                               const unsigned char *c, unsigned long long c_len_,\n                                               const unsigned char *mac, const unsigned char *ad,\n                                               unsigned long long                 ad_len_,\n                                               const unsigned char               *npub,\n                                               const crypto_aead_aes256gcm_state *st_)\n{\n    const State                   *st = (const State *) (const void *) st_;\n    GHash                          sth;\n    CRYPTO_ALIGN(16) unsigned char j[16];\n    unsigned char                  computed_mac[16];\n    size_t                         gh_required_blocks;\n    const size_t                   ad_len = (size_t) ad_len_;\n    const size_t                   c_len  = (size_t) c_len_;\n    const size_t                   m_len = c_len;\n\n    (void) nsec;\n    if (ad_len_ > SODIUM_SIZE_MAX || c_len_ > SODIUM_SIZE_MAX) {\n        sodium_misuse();\n    }\n    if (m == NULL) {\n        return crypto_aead_aes256gcm_verify_mac(nsec, c, c_len, mac, ad, ad_len, npub, st_);\n    }\n    gh_required_blocks = required_blocks(ad_len, m_len);\n    if (gh_required_blocks == 0) {\n        return -1;\n    }\n\n    gh_init(&sth);\n\n    memcpy(j, npub, NPUBBYTES);\n    STORE32_BE(j + NPUBBYTES, 2);\n\n    aes_gcm_decrypt_generic(st, &sth, computed_mac, m, c, m_len, ad, ad_len, j);\n\n    if (crypto_verify_16(mac, computed_mac) != 0) {\n        sodium_memzero(computed_mac, sizeof computed_mac);\n        memset(m, 0xd0, m_len);\n        return -1;\n    }\n    ACQUIRE_FENCE;\n    return 0;\n}\n\nint\ncrypto_aead_aes256gcm_decrypt_afternm(unsigned char *m, unsigned long long *mlen_p,\n                                      unsigned char *nsec, const unsigned char *c,\n                                      unsigned long long clen, const unsigned char *ad,\n                                      unsigned long long adlen, const unsigned char *npub,\n                                      const crypto_aead_aes256gcm_state *st_)\n{\n    unsigned long long mlen = 0ULL;\n    int                ret  = -1;\n\n    if (clen >= ABYTES) {\n        ret = crypto_aead_aes256gcm_decrypt_detached_afternm(\n            m, nsec, c, clen - ABYTES, c + clen - ABYTES, ad, adlen, npub, st_);\n    }\n    if (mlen_p != NULL) {\n        if (ret == 0) {\n            mlen = clen - ABYTES;\n        }\n        *mlen_p = mlen;\n    }\n    return ret;\n}\n\nint\ncrypto_aead_aes256gcm_decrypt_detached(unsigned char *m, unsigned char *nsec,\n                                       const unsigned char *c, unsigned long long clen,\n                                       const unsigned char *mac, const unsigned char *ad,\n                                       unsigned long long adlen, const unsigned char *npub,\n                                       const unsigned char *k)\n{\n    CRYPTO_ALIGN(16) crypto_aead_aes256gcm_state st;\n    int                                          ret;\n\n    PREFETCH_WRITE(m);\n    PREFETCH_READ(c);\n    PREFETCH_READ(ad);\n\n    crypto_aead_aes256gcm_beforenm(&st, k);\n\n    ret = crypto_aead_aes256gcm_decrypt_detached_afternm(\n        m, nsec, c, clen, mac, ad, adlen, npub, (const crypto_aead_aes256gcm_state *) &st);\n    sodium_memzero(&st, sizeof st);\n\n    return ret;\n}\n\nint\ncrypto_aead_aes256gcm_decrypt(unsigned char *m, unsigned long long *mlen_p, unsigned char *nsec,\n                              const unsigned char *c, unsigned long long clen,\n                              const unsigned char *ad, unsigned long long adlen,\n                              const unsigned char *npub, const unsigned char *k)\n{\n    CRYPTO_ALIGN(16) crypto_aead_aes256gcm_state st;\n    int                                          ret;\n\n    PREFETCH_WRITE(m);\n    PREFETCH_READ(c);\n    PREFETCH_READ(ad);\n\n    crypto_aead_aes256gcm_beforenm(&st, k);\n\n    ret = crypto_aead_aes256gcm_decrypt_afternm(m, mlen_p, nsec, c, clen, ad, adlen, npub,\n                                                (const crypto_aead_aes256gcm_state *) &st);\n    sodium_memzero(&st, sizeof st);\n\n    return ret;\n}\n\nint\ncrypto_aead_aes256gcm_is_available(void)\n{\n    return sodium_runtime_has_pclmul() & sodium_runtime_has_aesni() & sodium_runtime_has_avx();\n}\n\n#ifdef __clang__\n# pragma clang attribute pop\n#endif\n\n#endif\n"
  },
  {
    "path": "src/libsodium/crypto_aead/aes256gcm/armcrypto/aead_aes256gcm_armcrypto.c",
    "content": "#include <errno.h>\n#include <limits.h>\n#include <stdint.h>\n#include <stdlib.h>\n#include <string.h>\n\n#include \"core.h\"\n#include \"crypto_aead_aes256gcm.h\"\n#include \"crypto_verify_16.h\"\n#include \"export.h\"\n#include \"private/common.h\"\n#include \"randombytes.h\"\n#include \"runtime.h\"\n#include \"utils.h\"\n\n#if defined(HAVE_ARMCRYPTO) && defined(NATIVE_LITTLE_ENDIAN)\n\n#if !defined(_MSC_VER) || _MSC_VER < 1800\n#define __vectorcall\n#endif\n\n#ifndef __ARM_FEATURE_CRYPTO\n#define __ARM_FEATURE_CRYPTO 1\n#endif\n#ifndef __ARM_FEATURE_AES\n#define __ARM_FEATURE_AES 1\n#endif\n\n#include <arm_neon.h>\n\n#ifdef __clang__\n#pragma clang attribute push(__attribute__((target(\"neon,crypto,aes\"))), apply_to = function)\n#elif defined(__GNUC__)\n#pragma GCC target(\"+simd+crypto\")\n#endif\n\n#define ABYTES    crypto_aead_aes256gcm_ABYTES\n#define NPUBBYTES crypto_aead_aes256gcm_NPUBBYTES\n#define KEYBYTES  crypto_aead_aes256gcm_KEYBYTES\n\n#define PARALLEL_BLOCKS 6\n#undef USE_KARATSUBA_MULTIPLICATION\n\ntypedef uint64x2_t BlockVec;\n\n#define LOAD128(a)     vld1q_u64((const uint64_t *) (const void *) (a))\n#define STORE128(a, b) vst1q_u64((uint64_t *) (void *) (a), (b))\n#define AES_XENCRYPT(block_vec, rkey) \\\n    vreinterpretq_u64_u8(             \\\n        vaesmcq_u8(vaeseq_u8(vreinterpretq_u8_u64(rkey), vreinterpretq_u8_u64(block_vec))))\n#define AES_XENCRYPTLAST(block_vec, rkey) \\\n    vreinterpretq_u64_u8(vaeseq_u8(vreinterpretq_u8_u64(rkey), vreinterpretq_u8_u64(block_vec)))\n#define XOR128(a, b)  veorq_u64((a), (b))\n#define AND128(a, b)  vandq_u64((a), (b))\n#define OR128(a, b)   vorrq_u64((a), (b))\n#define SET64x2(a, b) vsetq_lane_u64((uint64_t) (a), vmovq_n_u64((uint64_t) (b)), 1)\n#define ZERO128       vmovq_n_u64(0)\n#define ONE128        SET64x2(0, 1)\n#define ADD64x2(a, b) vaddq_u64((a), (b))\n#define SUB64x2(a, b) vsubq_u64((a), (b))\n#define SHL64x2(a, b) vshlq_n_u64((a), (b))\n#define SHR64x2(a, b) vshrq_n_u64((a), (b))\n#define BYTESHL128(a, b) vreinterpretq_u64_u8(vextq_u8(vdupq_n_u8(0), vreinterpretq_u8_u64(a), 16 - (b)))\n#define BYTESHR128(a, b) vreinterpretq_u64_u8(vextq_u8(vreinterpretq_u8_u64(a), vdupq_n_u8(0), (b)))\n\n#define SHL128(a, b) OR128(SHL64x2((a), (b)), SHR64x2(BYTESHL128((a), 8), 64 - (b)))\n#define CLMULHI128(a, b) \\\n    vreinterpretq_u64_p128(vmull_high_p64(vreinterpretq_p64_u64(a), vreinterpretq_p64_u64(b)))\n\n#ifdef _MSC_VER\n\nstatic __forceinline uint64x2_t\nREV128_(uint64x2_t x)\n{\n    uint8x16_t t = vrev64q_u8(vreinterpretq_u8_u64(x));\n    return vreinterpretq_u64_u8(vextq_u8(t, t, 8));\n}\n#define REV128(x) REV128_(x)\n\nstatic __forceinline uint64x2_t\nSHUFFLE32x4_(uint64x2_t x, const int a, const int b, const int c, const int d)\n{\n    uint8_t idx[16];\n\n    idx[0]  = (uint8_t) (a * 4);     idx[1]  = (uint8_t) (a * 4 + 1);\n    idx[2]  = (uint8_t) (a * 4 + 2); idx[3]  = (uint8_t) (a * 4 + 3);\n    idx[4]  = (uint8_t) (b * 4);     idx[5]  = (uint8_t) (b * 4 + 1);\n    idx[6]  = (uint8_t) (b * 4 + 2); idx[7]  = (uint8_t) (b * 4 + 3);\n    idx[8]  = (uint8_t) (c * 4);     idx[9]  = (uint8_t) (c * 4 + 1);\n    idx[10] = (uint8_t) (c * 4 + 2); idx[11] = (uint8_t) (c * 4 + 3);\n    idx[12] = (uint8_t) (d * 4);     idx[13] = (uint8_t) (d * 4 + 1);\n    idx[14] = (uint8_t) (d * 4 + 2); idx[15] = (uint8_t) (d * 4 + 3);\n    return vreinterpretq_u64_u8(vqtbl1q_u8(vreinterpretq_u8_u64(x), vld1q_u8(idx)));\n}\n#define SHUFFLE32x4(x, a, b, c, d) SHUFFLE32x4_((x), (a), (b), (c), (d))\n\n#define CLMULLO128(a, b) \\\n    vreinterpretq_u64_p128(vmull_p64(vget_low_p64(vreinterpretq_p64_u64(a)), vget_low_p64(vreinterpretq_p64_u64(b))))\n#define CLMULLOHI128(a, b) \\\n    vreinterpretq_u64_p128(vmull_p64(vget_low_p64(vreinterpretq_p64_u64(a)), vget_high_p64(vreinterpretq_p64_u64(b))))\n#define CLMULHILO128(a, b) \\\n    vreinterpretq_u64_p128(vmull_p64(vget_high_p64(vreinterpretq_p64_u64(a)), vget_low_p64(vreinterpretq_p64_u64(b))))\n\n#define PREFETCH_READ(x)\n#define PREFETCH_WRITE(x)\n\n#else\n\n#define REV128(x)                                                                                  \\\n    vreinterpretq_u64_u8(__builtin_shufflevector(vreinterpretq_u8_u64(x), vreinterpretq_u8_u64(x), \\\n                                                 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2,   \\\n                                                 1, 0))\n#define SHUFFLE32x4(x, a, b, c, d)                                          \\\n    vreinterpretq_u64_u32(__builtin_shufflevector(vreinterpretq_u32_u64(x), \\\n                                                  vreinterpretq_u32_u64(x), (a), (b), (c), (d)))\n\n#define CLMULLO128(a, b) \\\n    vreinterpretq_u64_p128(vmull_p64((poly64_t) vget_low_u64(a), (poly64_t) vget_low_u64(b)))\n#define CLMULLOHI128(a, b) \\\n    vreinterpretq_u64_p128(vmull_p64((poly64_t) vget_low_u64(a), (poly64_t) vget_high_u64(b)))\n#define CLMULHILO128(a, b) \\\n    vreinterpretq_u64_p128(vmull_p64((poly64_t) vget_high_u64(a), (poly64_t) vget_low_u64(b)))\n\n#define PREFETCH_READ(x)  __builtin_prefetch((x), 0, 2)\n#define PREFETCH_WRITE(x) __builtin_prefetch((x), 1, 2);\n\n#endif\n\nstatic inline BlockVec\nAES_KEYGEN(BlockVec block_vec, const int rc)\n{\n#ifdef _MSC_VER\n    static const uint8_t keygen_shuf[16] = {\n        4, 1, 14, 11, 1, 14, 11, 4, 12, 9, 6, 3, 9, 6, 3, 12\n    };\n    uint8x16_t       a = vaeseq_u8(vreinterpretq_u8_u64(block_vec), vdupq_n_u8(0));\n    const uint8x16_t b = vqtbl1q_u8(a, vld1q_u8(keygen_shuf));\n#else\n    uint8x16_t       a = vaeseq_u8(vreinterpretq_u8_u64(block_vec), vmovq_n_u8(0));\n    const uint8x16_t b =\n        __builtin_shufflevector(a, a, 4, 1, 14, 11, 1, 14, 11, 4, 12, 9, 6, 3, 9, 6, 3, 12);\n#endif\n    const uint64x2_t c = SET64x2((uint64_t) rc << 32, (uint64_t) rc << 32);\n    return XOR128(vreinterpretq_u64_u8(b), c);\n}\n\n#define ROUNDS 14\n\n#define PC_COUNT (2 * PARALLEL_BLOCKS)\n\ntypedef struct I256 {\n    BlockVec hi;\n    BlockVec lo;\n    BlockVec mid;\n} I256;\n\ntypedef BlockVec Precomp;\n\ntypedef struct GHash {\n    BlockVec acc;\n} GHash;\n\ntypedef struct State {\n    BlockVec rkeys[ROUNDS + 1];\n    Precomp  hx[PC_COUNT];\n} State;\n\nstatic void __vectorcall expand256(const unsigned char key[KEYBYTES], BlockVec rkeys[1 + ROUNDS])\n{\n    BlockVec t1, t2, s;\n    size_t   i = 0;\n\n#define EXPAND_KEY_1(RC)                        \\\n    rkeys[i++] = t2;                            \\\n    s          = AES_KEYGEN(t2, RC);            \\\n    t1         = XOR128(t1, BYTESHL128(t1, 4)); \\\n    t1         = XOR128(t1, BYTESHL128(t1, 8)); \\\n    t1         = XOR128(t1, SHUFFLE32x4(s, 3, 3, 3, 3));\n\n#define EXPAND_KEY_2(RC)                        \\\n    rkeys[i++] = t1;                            \\\n    s          = AES_KEYGEN(t1, RC);            \\\n    t2         = XOR128(t2, BYTESHL128(t2, 4)); \\\n    t2         = XOR128(t2, BYTESHL128(t2, 8)); \\\n    t2         = XOR128(t2, SHUFFLE32x4(s, 2, 2, 2, 2));\n\n    t1 = LOAD128(&key[0]);\n    t2 = LOAD128(&key[16]);\n\n    rkeys[i++] = t1;\n    EXPAND_KEY_1(0x01);\n    EXPAND_KEY_2(0x01);\n    EXPAND_KEY_1(0x02);\n    EXPAND_KEY_2(0x02);\n    EXPAND_KEY_1(0x04);\n    EXPAND_KEY_2(0x04);\n    EXPAND_KEY_1(0x08);\n    EXPAND_KEY_2(0x08);\n    EXPAND_KEY_1(0x10);\n    EXPAND_KEY_2(0x10);\n    EXPAND_KEY_1(0x20);\n    EXPAND_KEY_2(0x20);\n    EXPAND_KEY_1(0x40);\n    rkeys[i++] = t1;\n}\n\n/* Encrypt a single AES block */\n\nstatic inline void\nencrypt(const State *st, unsigned char dst[16], const unsigned char src[16])\n{\n    BlockVec t;\n\n    size_t i;\n\n    t = AES_XENCRYPT(LOAD128(src), st->rkeys[0]);\n    for (i = 1; i < ROUNDS - 1; i++) {\n        t = AES_XENCRYPT(t, st->rkeys[i]);\n    }\n    t = AES_XENCRYPTLAST(t, st->rkeys[i]);\n    t = XOR128(t, st->rkeys[ROUNDS]);\n    STORE128(dst, t);\n}\n\n/* Encrypt and add a single AES block */\n\nstatic inline void __vectorcall encrypt_xor_block(const State *st, unsigned char dst[16],\n                                                  const unsigned char src[16],\n                                                  const BlockVec      counter)\n{\n    BlockVec ts;\n    size_t   i;\n\n    ts = AES_XENCRYPT(counter, st->rkeys[0]);\n    for (i = 1; i < ROUNDS - 1; i++) {\n        ts = AES_XENCRYPT(ts, st->rkeys[i]);\n    }\n    ts = AES_XENCRYPTLAST(ts, st->rkeys[i]);\n    ts = XOR128(ts, XOR128(st->rkeys[ROUNDS], LOAD128(src)));\n    STORE128(dst, ts);\n}\n\n/* Encrypt and add PARALLEL_BLOCKS AES blocks */\n\nstatic inline void __vectorcall encrypt_xor_wide(const State        *st,\n                                                 unsigned char       dst[16 * PARALLEL_BLOCKS],\n                                                 const unsigned char src[16 * PARALLEL_BLOCKS],\n                                                 const BlockVec      counters[PARALLEL_BLOCKS])\n{\n    BlockVec ts[PARALLEL_BLOCKS];\n    size_t   i, j;\n\n    for (j = 0; j < PARALLEL_BLOCKS; j++) {\n        ts[j] = AES_XENCRYPT(counters[j], st->rkeys[0]);\n    }\n    for (i = 1; i < ROUNDS - 1; i++) {\n        for (j = 0; j < PARALLEL_BLOCKS; j++) {\n            ts[j] = AES_XENCRYPT(ts[j], st->rkeys[i]);\n        }\n    }\n    for (j = 0; j < PARALLEL_BLOCKS; j++) {\n        ts[j] = AES_XENCRYPTLAST(ts[j], st->rkeys[i]);\n        ts[j] = XOR128(ts[j], XOR128(st->rkeys[ROUNDS], LOAD128(&src[16 * j])));\n    }\n    for (j = 0; j < PARALLEL_BLOCKS; j++) {\n        STORE128(&dst[16 * j], ts[j]);\n    }\n}\n\n/* Square a field element */\n\nstatic inline I256 __vectorcall clsq128(const BlockVec x)\n{\n    const BlockVec r_lo  = CLMULLO128(x, x);\n    const BlockVec r_hi  = CLMULHI128(x, x);\n\n    return (I256) {\n        SODIUM_C99(.hi =) r_hi,\n        SODIUM_C99(.lo =) r_lo,\n        SODIUM_C99(.mid =) ZERO128,\n    };\n}\n\n/* Multiply two field elements -- Textbook multiplication is faster than Karatsuba on some recent\n * CPUs */\n\nstatic inline I256 __vectorcall clmul128(const BlockVec x, const BlockVec y)\n{\n#ifdef USE_KARATSUBA_MULTIPLICATION\n    const BlockVec x_hi  = BYTESHR128(x, 8);\n    const BlockVec y_hi  = BYTESHR128(y, 8);\n    const BlockVec r_lo  = CLMULLO128(x, y);\n    const BlockVec r_hi  = CLMULHI128(x, y);\n    const BlockVec r_mid = XOR128(CLMULLO128(XOR128(x, x_hi), XOR128(y, y_hi)), XOR128(r_lo, r_hi));\n\n    return (I256) {\n        SODIUM_C99(.hi =) r_hi,\n        SODIUM_C99(.lo =) r_lo,\n        SODIUM_C99(.mid =) r_mid,\n    };\n#else\n    const BlockVec r_hi  = CLMULHI128(x, y);\n    const BlockVec r_lo  = CLMULLO128(x, y);\n    const BlockVec r_mid = XOR128(CLMULHILO128(x, y), CLMULLOHI128(x, y));\n\n    return (I256) {\n        SODIUM_C99(.hi =) r_hi,\n        SODIUM_C99(.lo =) r_lo,\n        SODIUM_C99(.mid =) r_mid,\n    };\n#endif\n}\n\n/* Merge the middle word and reduce a field element */\n\nstatic inline BlockVec __vectorcall gcm_reduce(const I256 x)\n{\n    const BlockVec hi = XOR128(x.hi, BYTESHR128(x.mid, 8));\n    const BlockVec lo = XOR128(x.lo, BYTESHL128(x.mid, 8));\n\n    const BlockVec p64 = SET64x2(0, 0xc200000000000000);\n    const BlockVec a   = CLMULLO128(lo, p64);\n    const BlockVec b   = XOR128(SHUFFLE32x4(lo, 2, 3, 0, 1), a);\n    const BlockVec c   = CLMULLO128(b, p64);\n    const BlockVec d   = XOR128(SHUFFLE32x4(b, 2, 3, 0, 1), c);\n\n    return XOR128(d, hi);\n}\n\n/* Precompute powers of H from `from` to `to` */\n\nstatic inline void __vectorcall precomp(Precomp hx[PC_COUNT], const size_t from, const size_t to)\n{\n    const Precomp h = hx[0];\n    size_t        i;\n\n    for (i = from & ~1U; i < to; i += 2) {\n        hx[i]     = gcm_reduce(clmul128(hx[i - 1], h));\n        hx[i + 1] = gcm_reduce(clsq128(hx[i / 2]));\n    }\n}\n\n/* Precompute powers of H given a key and a block count */\n\nstatic void __vectorcall precomp_for_block_count(Precomp             hx[PC_COUNT],\n                                                 const unsigned char gh_key[16],\n                                                 const size_t        block_count)\n{\n    const BlockVec h0    = REV128(LOAD128(gh_key));\n    BlockVec       carry = SET64x2(0xc200000000000000, 1);\n    BlockVec       mask  = SUB64x2(ZERO128, SHR64x2(h0, 63));\n    BlockVec       h0_shifted;\n    BlockVec       h;\n\n    mask       = SHUFFLE32x4(mask, 3, 3, 3, 3);\n    carry      = AND128(carry, mask);\n    h0_shifted = SHL128(h0, 1);\n    h          = XOR128(h0_shifted, carry);\n\n    hx[0] = h;\n    hx[1] = gcm_reduce(clsq128(hx[0]));\n\n    if (block_count >= PC_COUNT) {\n        precomp(hx, 2, PC_COUNT);\n    } else {\n        precomp(hx, 2, block_count);\n    }\n}\n\n/* Initialize a GHash */\n\nstatic inline void\ngh_init(GHash *sth)\n{\n    sth->acc = ZERO128;\n}\n\nstatic inline I256 __vectorcall gh_update0(const GHash *const sth, const unsigned char *const p,\n                                           const Precomp hn)\n{\n    const BlockVec m = REV128(LOAD128(p));\n    return clmul128(XOR128(sth->acc, m), hn);\n}\n\nstatic inline void __vectorcall gh_update(I256 *const u, const unsigned char *p, const Precomp hn)\n{\n    const BlockVec m = REV128(LOAD128(p));\n    const I256     t = clmul128(m, hn);\n    *u = (I256) { SODIUM_C99(.hi =) XOR128(u->hi, t.hi), SODIUM_C99(.lo =) XOR128(u->lo, t.lo),\n                  SODIUM_C99(.mid =) XOR128(u->mid, t.mid) };\n}\n\n/* Absorb ad_len bytes of associated data. There has to be no partial block. */\n\nstatic inline void\ngh_ad_blocks(const State *st, GHash *sth, const unsigned char *ad, size_t ad_len)\n{\n    size_t i;\n\n    i = (size_t) 0U;\n    for (; i + PC_COUNT * 16 <= ad_len; i += PC_COUNT * 16) {\n        I256     u = gh_update0(sth, ad + i, st->hx[PC_COUNT - 1 - 0]);\n        size_t   j;\n\n        for (j = 1; j < PC_COUNT; j += 1) {\n            gh_update(&u, ad + i + j * 16, st->hx[PC_COUNT - 1 - j]);\n        }\n        sth->acc = gcm_reduce(u);\n    }\n    for (; i + PC_COUNT * 16 / 2 <= ad_len; i += PC_COUNT * 16 / 2) {\n        I256     u = gh_update0(sth, ad + i, st->hx[PC_COUNT / 2 - 1 - 0]);\n        size_t   j;\n\n        for (j = 1; j < PC_COUNT / 2; j += 1) {\n            gh_update(&u, ad + i + j * 16, st->hx[PC_COUNT / 2 - 1 - j]);\n        }\n        sth->acc = gcm_reduce(u);\n    }\n    for (; i + 4 * 16 <= ad_len; i += 4 * 16) {\n        size_t   j;\n        I256     u = gh_update0(sth, ad + i, st->hx[4 - 1 - 0]);\n\n        for (j = 1; j < 4; j += 1) {\n            gh_update(&u, ad + i + j * 16, st->hx[4 - 1 - j]);\n        }\n        sth->acc = gcm_reduce(u);\n    }\n    for (; i + 2 * 16 <= ad_len; i += 2 * 16) {\n        size_t   j;\n        I256     u = gh_update0(sth, ad + i, st->hx[2 - 1 - 0]);\n\n        for (j = 1; j < 2; j += 1) {\n            gh_update(&u, ad + i + j * 16, st->hx[2 - 1 - j]);\n        }\n        sth->acc = gcm_reduce(u);\n    }\n    if (i < ad_len) {\n        I256     u = gh_update0(sth, ad + i, st->hx[0]);\n        sth->acc = gcm_reduce(u);\n    }\n}\n\n/* Increment counters */\n\nstatic inline BlockVec __vectorcall incr_counters(BlockVec rev_counters[], BlockVec counter,\n                                                  const size_t n)\n{\n    size_t i;\n\n    const BlockVec one = ONE128;\n    for (i = 0; i < n; i++) {\n        rev_counters[i] = REV128(counter);\n        counter         = ADD64x2(counter, one);\n    }\n    return counter;\n}\n\n/* Compute the number of required blocks to encrypt and authenticate `ad_len` of associated data,\n * and `m_len` of encrypted bytes. Return `0` if limits would be exceeded.*/\n\nstatic inline size_t\nrequired_blocks(const size_t ad_len, const size_t m_len)\n{\n    const size_t ad_blocks = (ad_len + 15) / 16;\n    const size_t m_blocks  = (m_len + 15) / 16;\n\n    if (ad_len > SIZE_MAX - 2 * PARALLEL_BLOCKS * 16 ||\n        m_len > SIZE_MAX - 2 * PARALLEL_BLOCKS * 16 || ad_len < ad_blocks || m_len < m_blocks ||\n        m_blocks >= (1ULL << 32) - 2) {\n        return 0;\n    }\n    return ad_blocks + m_blocks + 1;\n}\n\n/* Generic AES-GCM encryption. \"Generic\" as it can handle arbitrary input sizes,\nunlike a length-limited version that would precompute all the required powers of H */\n\nstatic void\naes_gcm_encrypt_generic(const State *st, GHash *sth, unsigned char mac[ABYTES], unsigned char *dst,\n                        const unsigned char *src, size_t src_len, const unsigned char *ad,\n                        size_t ad_len, unsigned char counter_[16])\n{\n    CRYPTO_ALIGN(32) I256          u;\n    CRYPTO_ALIGN(16) unsigned char last_blocks[2 * 16];\n    const BlockVec                 one = ONE128;\n    BlockVec                       final_block;\n    BlockVec                       rev_counters[PARALLEL_BLOCKS];\n    BlockVec                       counter;\n    size_t                         i;\n    size_t                         j;\n    size_t                         left;\n    size_t                         pi;\n\n    COMPILER_ASSERT(PC_COUNT % PARALLEL_BLOCKS == 0);\n\n    /* Associated data */\n\n    if (ad != NULL && ad_len != 0) {\n        gh_ad_blocks(st, sth, ad, ad_len & ~15);\n        left = ad_len & 15;\n        if (left != 0) {\n            unsigned char pad[16];\n\n            memset(pad, 0, sizeof pad);\n            memcpy(pad, ad + ad_len - left, left);\n            gh_ad_blocks(st, sth, pad, sizeof pad);\n        }\n    }\n\n    /* Encrypted data */\n\n    counter = REV128(LOAD128(counter_));\n    i       = 0;\n\n    /* 2*PARALLEL_BLOCKS aggregation */\n\n    if (src_len - i >= 2 * PARALLEL_BLOCKS * 16) {\n        counter = incr_counters(rev_counters, counter, PARALLEL_BLOCKS);\n        encrypt_xor_wide(st, dst + i, src + i, rev_counters);\n        i += PARALLEL_BLOCKS * 16;\n\n        for (; i + 2 * PARALLEL_BLOCKS * 16 <= src_len; i += 2 * PARALLEL_BLOCKS * 16) {\n            counter = incr_counters(rev_counters, counter, PARALLEL_BLOCKS);\n            encrypt_xor_wide(st, dst + i, src + i, rev_counters);\n\n            pi = i - PARALLEL_BLOCKS * 16;\n            u  = gh_update0(sth, dst + pi, st->hx[2 * PARALLEL_BLOCKS - 1 - 0]);\n            for (j = 1; j < PARALLEL_BLOCKS; j += 1) {\n                gh_update(&u, dst + pi + j * 16, st->hx[2 * PARALLEL_BLOCKS - 1 - j]);\n            }\n\n            counter = incr_counters(rev_counters, counter, PARALLEL_BLOCKS);\n            encrypt_xor_wide(st, dst + i + PARALLEL_BLOCKS * 16, src + i + PARALLEL_BLOCKS * 16,\n                             rev_counters);\n\n            pi = i;\n            for (j = 0; j < PARALLEL_BLOCKS; j += 1) {\n                gh_update(&u, dst + pi + j * 16, st->hx[PARALLEL_BLOCKS - 1 - j]);\n            }\n            sth->acc = gcm_reduce(u);\n        }\n\n        pi = i - PARALLEL_BLOCKS * 16;\n        u  = gh_update0(sth, dst + pi, st->hx[PARALLEL_BLOCKS - 1 - 0]);\n        for (j = 1; j < PARALLEL_BLOCKS; j += 1) {\n            gh_update(&u, dst + pi + j * 16, st->hx[PARALLEL_BLOCKS - 1 - j]);\n        }\n        sth->acc = gcm_reduce(u);\n    }\n\n    /* PARALLEL_BLOCKS aggregation */\n\n    if (src_len - i >= PARALLEL_BLOCKS * 16) {\n        counter = incr_counters(rev_counters, counter, PARALLEL_BLOCKS);\n        encrypt_xor_wide(st, dst + i, src + i, rev_counters);\n        i += PARALLEL_BLOCKS * 16;\n\n        for (; i + PARALLEL_BLOCKS * 16 <= src_len; i += PARALLEL_BLOCKS * 16) {\n            counter = incr_counters(rev_counters, counter, PARALLEL_BLOCKS);\n            encrypt_xor_wide(st, dst + i, src + i, rev_counters);\n\n            pi = i - PARALLEL_BLOCKS * 16;\n            u  = gh_update0(sth, dst + pi, st->hx[PARALLEL_BLOCKS - 1 - 0]);\n            for (j = 1; j < PARALLEL_BLOCKS; j += 1) {\n                gh_update(&u, dst + pi + j * 16, st->hx[PARALLEL_BLOCKS - 1 - j]);\n            }\n            sth->acc = gcm_reduce(u);\n        }\n\n        pi = i - PARALLEL_BLOCKS * 16;\n        u  = gh_update0(sth, dst + pi, st->hx[PARALLEL_BLOCKS - 1 - 0]);\n        for (j = 1; j < PARALLEL_BLOCKS; j += 1) {\n            gh_update(&u, dst + pi + j * 16, st->hx[PARALLEL_BLOCKS - 1 - j]);\n        }\n        sth->acc = gcm_reduce(u);\n    }\n\n    /* 4-blocks aggregation */\n\n    for (; i + 4 * 16 <= src_len; i += 4 * 16) {\n        counter = incr_counters(rev_counters, counter, 4);\n        for (j = 0; j < 4; j++) {\n            encrypt_xor_block(st, dst + i + j * 16, src + i + j * 16, rev_counters[j]);\n        }\n\n        u = gh_update0(sth, dst + i, st->hx[4 - 1 - 0]);\n        for (j = 1; j < 4; j += 1) {\n            gh_update(&u, dst + i + j * 16, st->hx[4 - 1 - j]);\n        }\n        sth->acc = gcm_reduce(u);\n    }\n\n    /* 2-blocks aggregation */\n\n    for (; i + 2 * 16 <= src_len; i += 2 * 16) {\n        counter = incr_counters(rev_counters, counter, 2);\n        for (j = 0; j < 2; j++) {\n            encrypt_xor_block(st, dst + i + j * 16, src + i + j * 16, rev_counters[j]);\n        }\n\n        u = gh_update0(sth, dst + i, st->hx[2 - 1 - 0]);\n        for (j = 1; j < 2; j += 1) {\n            gh_update(&u, dst + i + j * 16, st->hx[2 - 1 - j]);\n        }\n        sth->acc = gcm_reduce(u);\n    }\n\n    /* Remaining *partial* blocks; if we have 16 bytes left, we want to keep the\n    full block authenticated along with the final block, hence < and not <= */\n\n    for (; i + 16 < src_len; i += 16) {\n        encrypt_xor_block(st, dst + i, src + i, REV128(counter));\n        u        = gh_update0(sth, dst + i, st->hx[1 - 1 - 0]);\n        sth->acc = gcm_reduce(u);\n        counter  = ADD64x2(counter, one);\n    }\n\n    /* Authenticate both the last block of the message and the final block */\n\n    final_block = REV128(SET64x2(ad_len * 8, src_len * 8));\n    STORE32_BE(counter_ + NPUBBYTES, 1);\n    encrypt(st, mac, counter_);\n    left = src_len - i;\n    if (left != 0) {\n        for (j = 0; j < left; j++) {\n            last_blocks[j] = src[i + j];\n        }\n        STORE128(last_blocks + 16, final_block);\n        encrypt_xor_block(st, last_blocks, last_blocks, REV128(counter));\n        for (; j < 16; j++) {\n            last_blocks[j] = 0;\n        }\n        for (j = 0; j < left; j++) {\n            dst[i + j] = last_blocks[j];\n        }\n        gh_ad_blocks(st, sth, last_blocks, 32);\n    } else {\n        STORE128(last_blocks, final_block);\n        gh_ad_blocks(st, sth, last_blocks, 16);\n    }\n    STORE128(mac, XOR128(LOAD128(mac), REV128(sth->acc)));\n}\n\n/* Generic AES-GCM decryption. \"Generic\" as it can handle arbitrary input sizes,\nunlike a length-limited version that would precompute all the required powers of H */\n\nstatic void\naes_gcm_decrypt_generic(const State *st, GHash *sth, unsigned char mac[ABYTES], unsigned char *dst,\n                        const unsigned char *src, size_t src_len, const unsigned char *ad,\n                        size_t ad_len, unsigned char counter_[16])\n{\n    CRYPTO_ALIGN(32) I256          u;\n    CRYPTO_ALIGN(16) unsigned char last_blocks[2 * 16];\n    const BlockVec                 one = ONE128;\n    BlockVec                       final_block;\n    BlockVec                       rev_counters[PARALLEL_BLOCKS];\n    BlockVec                       counter;\n    size_t                         i;\n    size_t                         j;\n    size_t                         left;\n\n    COMPILER_ASSERT(PC_COUNT % PARALLEL_BLOCKS == 0);\n\n    /* Associated data */\n\n    if (ad != NULL && ad_len != 0) {\n        gh_ad_blocks(st, sth, ad, ad_len & ~15);\n        left = ad_len & 15;\n        if (left != 0) {\n            unsigned char pad[16];\n\n            memset(pad, 0, sizeof pad);\n            memcpy(pad, ad + ad_len - left, left);\n            gh_ad_blocks(st, sth, pad, sizeof pad);\n        }\n    }\n\n    /* Encrypted data */\n\n    counter = REV128(LOAD128(counter_));\n    i       = 0;\n\n    /* 2*PARALLEL_BLOCKS aggregation */\n\n    while (i + 2 * PARALLEL_BLOCKS * 16 <= src_len) {\n        counter = incr_counters(rev_counters, counter, PARALLEL_BLOCKS);\n\n        u = gh_update0(sth, src + i, st->hx[2 * PARALLEL_BLOCKS - 1 - 0]);\n        for (j = 1; j < PARALLEL_BLOCKS; j += 1) {\n            gh_update(&u, src + i + j * 16, st->hx[2 * PARALLEL_BLOCKS - 1 - j]);\n        }\n\n        encrypt_xor_wide(st, dst + i, src + i, rev_counters);\n\n        counter = incr_counters(rev_counters, counter, PARALLEL_BLOCKS);\n\n        i += PARALLEL_BLOCKS * 16;\n        for (j = 0; j < PARALLEL_BLOCKS; j += 1) {\n            gh_update(&u, src + i + j * 16, st->hx[PARALLEL_BLOCKS - 1 - j]);\n        }\n        sth->acc = gcm_reduce(u);\n\n        encrypt_xor_wide(st, dst + i, src + i, rev_counters);\n        i += PARALLEL_BLOCKS * 16;\n    }\n\n    /* PARALLEL_BLOCKS aggregation */\n\n    for (; i + PARALLEL_BLOCKS * 16 <= src_len; i += PARALLEL_BLOCKS * 16) {\n        counter = incr_counters(rev_counters, counter, PARALLEL_BLOCKS);\n\n        u = gh_update0(sth, src + i, st->hx[PARALLEL_BLOCKS - 1 - 0]);\n        for (j = 1; j < PARALLEL_BLOCKS; j += 1) {\n            gh_update(&u, src + i + j * 16, st->hx[PARALLEL_BLOCKS - 1 - j]);\n        }\n        sth->acc = gcm_reduce(u);\n\n        encrypt_xor_wide(st, dst + i, src + i, rev_counters);\n    }\n\n    /* 4-blocks aggregation */\n\n    for (; i + 4 * 16 <= src_len; i += 4 * 16) {\n        counter = incr_counters(rev_counters, counter, 4);\n\n        u = gh_update0(sth, src + i, st->hx[4 - 1 - 0]);\n        for (j = 1; j < 4; j += 1) {\n            gh_update(&u, src + i + j * 16, st->hx[4 - 1 - j]);\n        }\n        sth->acc = gcm_reduce(u);\n\n        for (j = 0; j < 4; j++) {\n            encrypt_xor_block(st, dst + i + j * 16, src + i + j * 16, rev_counters[j]);\n        }\n    }\n\n    /* 2-blocks aggregation */\n\n    for (; i + 2 * 16 <= src_len; i += 2 * 16) {\n        counter = incr_counters(rev_counters, counter, 2);\n\n        u = gh_update0(sth, src + i, st->hx[2 - 1 - 0]);\n        for (j = 1; j < 2; j += 1) {\n            gh_update(&u, src + i + j * 16, st->hx[2 - 1 - j]);\n        }\n        sth->acc = gcm_reduce(u);\n\n        for (j = 0; j < 2; j++) {\n            encrypt_xor_block(st, dst + i + j * 16, src + i + j * 16, rev_counters[j]);\n        }\n    }\n\n    /* Remaining *partial* blocks; if we have 16 bytes left, we want to keep the\n    full block authenticated along with the final block, hence < and not <= */\n\n    for (; i + 16 < src_len; i += 16) {\n        u        = gh_update0(sth, src + i, st->hx[1 - 1 - 0]);\n        sth->acc = gcm_reduce(u);\n        encrypt_xor_block(st, dst + i, src + i, REV128(counter));\n        counter = ADD64x2(counter, one);\n    }\n\n    /* Authenticate both the last block of the message and the final block */\n\n    final_block = REV128(SET64x2(ad_len * 8, src_len * 8));\n    STORE32_BE(counter_ + NPUBBYTES, 1);\n    encrypt(st, mac, counter_);\n    left = src_len - i;\n    if (left != 0) {\n        for (j = 0; j < left; j++) {\n            last_blocks[j] = src[i + j];\n        }\n        for (; j < 16; j++) {\n            last_blocks[j] = 0;\n        }\n        STORE128(last_blocks + 16, final_block);\n        gh_ad_blocks(st, sth, last_blocks, 32);\n        encrypt_xor_block(st, last_blocks, last_blocks, REV128(counter));\n        for (j = 0; j < left; j++) {\n            dst[i + j] = last_blocks[j];\n        }\n    } else {\n        STORE128(last_blocks, final_block);\n        gh_ad_blocks(st, sth, last_blocks, 16);\n    }\n    STORE128(mac, XOR128(LOAD128(mac), REV128(sth->acc)));\n}\n\nint\ncrypto_aead_aes256gcm_beforenm(crypto_aead_aes256gcm_state *st_, const unsigned char *k)\n{\n    State                         *st = (State *) (void *) st_;\n    CRYPTO_ALIGN(16) unsigned char h[16];\n\n    COMPILER_ASSERT(sizeof *st_ >= sizeof *st);\n\n    expand256(k, st->rkeys);\n    memset(h, 0, sizeof h);\n    encrypt(st, h, h);\n\n    precomp_for_block_count(st->hx, h, PC_COUNT);\n\n    return 0;\n}\n\nint\ncrypto_aead_aes256gcm_encrypt_detached_afternm(unsigned char *c, unsigned char *mac,\n                                               unsigned long long *maclen_p, const unsigned char *m,\n                                               unsigned long long m_len_, const unsigned char *ad,\n                                               unsigned long long   ad_len_,\n                                               const unsigned char *nsec, const unsigned char *npub,\n                                               const crypto_aead_aes256gcm_state *st_)\n{\n    const State                   *st = (const State *) (const void *) st_;\n    GHash                          sth;\n    CRYPTO_ALIGN(16) unsigned char j[16];\n    size_t                         gh_required_blocks;\n    const size_t                   ad_len = (size_t) ad_len_;\n    const size_t                   m_len  = (size_t) m_len_;\n\n    (void) nsec;\n    if (maclen_p != NULL) {\n        *maclen_p = 0;\n    }\n    if (ad_len_ > SODIUM_SIZE_MAX || m_len_ > SODIUM_SIZE_MAX) {\n        sodium_misuse();\n    }\n    gh_required_blocks = required_blocks(ad_len, m_len);\n    if (gh_required_blocks == 0) {\n        memset(mac, 0xd0, ABYTES);\n        memset(c, 0, m_len);\n        return -1;\n    }\n\n    gh_init(&sth);\n\n    memcpy(j, npub, NPUBBYTES);\n    STORE32_BE(j + NPUBBYTES, 2);\n\n    aes_gcm_encrypt_generic(st, &sth, mac, c, m, m_len, ad, ad_len, j);\n\n    if (maclen_p != NULL) {\n        *maclen_p = ABYTES;\n    }\n    return 0;\n}\n\nint\ncrypto_aead_aes256gcm_encrypt(unsigned char *c, unsigned long long *clen_p, const unsigned char *m,\n                              unsigned long long m_len, const unsigned char *ad,\n                              unsigned long long ad_len, const unsigned char *nsec,\n                              const unsigned char *npub, const unsigned char *k)\n{\n    const int ret = crypto_aead_aes256gcm_encrypt_detached(c, c + m_len, NULL, m, m_len, ad, ad_len,\n                                                           nsec, npub, k);\n    if (clen_p != NULL) {\n        if (ret == 0) {\n            *clen_p = m_len + crypto_aead_aes256gcm_ABYTES;\n        } else {\n            *clen_p = 0;\n        }\n    }\n    return ret;\n}\n\nint\ncrypto_aead_aes256gcm_encrypt_detached(unsigned char *c, unsigned char *mac,\n                                       unsigned long long *maclen_p, const unsigned char *m,\n                                       unsigned long long m_len, const unsigned char *ad,\n                                       unsigned long long ad_len, const unsigned char *nsec,\n                                       const unsigned char *npub, const unsigned char *k)\n{\n    CRYPTO_ALIGN(16) crypto_aead_aes256gcm_state st;\n    int                                          ret;\n\n    PREFETCH_WRITE(c);\n    PREFETCH_READ(m);\n    PREFETCH_READ(ad);\n\n    crypto_aead_aes256gcm_beforenm(&st, k);\n    ret = crypto_aead_aes256gcm_encrypt_detached_afternm(c, mac, maclen_p, m, m_len, ad, ad_len,\n                                                         nsec, npub, &st);\n    sodium_memzero(&st, sizeof st);\n\n    return ret;\n}\n\nint\ncrypto_aead_aes256gcm_encrypt_afternm(unsigned char *c, unsigned long long *clen_p,\n                                      const unsigned char *m, unsigned long long mlen,\n                                      const unsigned char *ad, unsigned long long adlen,\n                                      const unsigned char *nsec, const unsigned char *npub,\n                                      const crypto_aead_aes256gcm_state *st_)\n{\n    int ret = crypto_aead_aes256gcm_encrypt_detached_afternm(c, c + mlen, NULL, m, mlen, ad, adlen,\n                                                             nsec, npub, st_);\n    if (clen_p != NULL) {\n        *clen_p = mlen + crypto_aead_aes256gcm_ABYTES;\n    }\n    return ret;\n}\n\nstatic int\ncrypto_aead_aes256gcm_verify_mac(unsigned char *nsec, const unsigned char *c,\n                                 unsigned long long c_len_, const unsigned char *mac,\n                                 const unsigned char *ad, unsigned long long ad_len_,\n                                 const unsigned char *npub, const crypto_aead_aes256gcm_state *st_)\n{\n    const State                   *st = (const State *) (const void *) st_;\n    GHash                          sth;\n    BlockVec                       final_block;\n    CRYPTO_ALIGN(16) unsigned char j[16];\n    CRYPTO_ALIGN(16) unsigned char computed_mac[16];\n    CRYPTO_ALIGN(16) unsigned char last_block[16];\n    size_t                         gh_required_blocks;\n    size_t                         left;\n    const size_t                   ad_len = (size_t) ad_len_;\n    const size_t                   c_len  = (size_t) c_len_;\n    int                            ret;\n\n    (void) nsec;\n    if (ad_len_ > SODIUM_SIZE_MAX || c_len_ > SODIUM_SIZE_MAX) {\n        sodium_misuse();\n    }\n    gh_required_blocks = required_blocks(ad_len, c_len);\n    if (gh_required_blocks == 0) {\n        return -1;\n    }\n\n    gh_init(&sth);\n\n    memcpy(j, npub, NPUBBYTES);\n    STORE32_BE(j + NPUBBYTES, 2);\n\n    gh_ad_blocks(st, &sth, ad, ad_len & ~15);\n    left = ad_len & 15;\n    if (left != 0) {\n        unsigned char pad[16];\n\n        memset(pad, 0, sizeof pad);\n        memcpy(pad, ad + ad_len - left, left);\n        gh_ad_blocks(st, &sth, pad, sizeof pad);\n    }\n\n    gh_ad_blocks(st, &sth, c, c_len & ~15);\n    left = c_len & 15;\n    if (left != 0) {\n        unsigned char pad[16];\n\n        memset(pad, 0, sizeof pad);\n        memcpy(pad, c + c_len - left, left);\n        gh_ad_blocks(st, &sth, pad, sizeof pad);\n    }\n    final_block = REV128(SET64x2(ad_len * 8, c_len * 8));\n    STORE32_BE(j + NPUBBYTES, 1);\n    encrypt(st, computed_mac, j);\n    STORE128(last_block, final_block);\n    gh_ad_blocks(st, &sth, last_block, 16);\n    STORE128(computed_mac, XOR128(LOAD128(computed_mac), REV128(sth.acc)));\n\n    ret = crypto_verify_16(mac, computed_mac);\n    sodium_memzero(computed_mac, sizeof computed_mac);\n\n    return ret;\n}\n\nint\ncrypto_aead_aes256gcm_decrypt_detached_afternm(unsigned char *m, unsigned char *nsec,\n                                               const unsigned char *c, unsigned long long c_len_,\n                                               const unsigned char *mac, const unsigned char *ad,\n                                               unsigned long long                 ad_len_,\n                                               const unsigned char               *npub,\n                                               const crypto_aead_aes256gcm_state *st_)\n{\n    const State                   *st = (const State *) (const void *) st_;\n    GHash                          sth;\n    CRYPTO_ALIGN(16) unsigned char j[16];\n    unsigned char                  computed_mac[16];\n    size_t                         gh_required_blocks;\n    const size_t                   ad_len = (size_t) ad_len_;\n    const size_t                   c_len  = (size_t) c_len_;\n    const size_t                   m_len = c_len;\n\n    (void) nsec;\n    if (ad_len_ > SODIUM_SIZE_MAX || c_len_ > SODIUM_SIZE_MAX) {\n        sodium_misuse();\n    }\n    if (m == NULL) {\n        return crypto_aead_aes256gcm_verify_mac(nsec, c, c_len, mac, ad, ad_len, npub, st_);\n    }\n    gh_required_blocks = required_blocks(ad_len, m_len);\n    if (gh_required_blocks == 0) {\n        return -1;\n    }\n\n    gh_init(&sth);\n\n    memcpy(j, npub, NPUBBYTES);\n    STORE32_BE(j + NPUBBYTES, 2);\n\n    aes_gcm_decrypt_generic(st, &sth, computed_mac, m, c, m_len, ad, ad_len, j);\n\n    if (crypto_verify_16(mac, computed_mac) != 0) {\n        sodium_memzero(computed_mac, sizeof computed_mac);\n        memset(m, 0xd0, m_len);\n        return -1;\n    }\n    ACQUIRE_FENCE;\n    return 0;\n}\n\nint\ncrypto_aead_aes256gcm_decrypt_afternm(unsigned char *m, unsigned long long *mlen_p,\n                                      unsigned char *nsec, const unsigned char *c,\n                                      unsigned long long clen, const unsigned char *ad,\n                                      unsigned long long adlen, const unsigned char *npub,\n                                      const crypto_aead_aes256gcm_state *st_)\n{\n    unsigned long long mlen = 0ULL;\n    int                ret  = -1;\n\n    if (clen >= ABYTES) {\n        ret = crypto_aead_aes256gcm_decrypt_detached_afternm(\n            m, nsec, c, clen - ABYTES, c + clen - ABYTES, ad, adlen, npub, st_);\n    }\n    if (mlen_p != NULL) {\n        if (ret == 0) {\n            mlen = clen - ABYTES;\n        }\n        *mlen_p = mlen;\n    }\n    return ret;\n}\n\nint\ncrypto_aead_aes256gcm_decrypt_detached(unsigned char *m, unsigned char *nsec,\n                                       const unsigned char *c, unsigned long long clen,\n                                       const unsigned char *mac, const unsigned char *ad,\n                                       unsigned long long adlen, const unsigned char *npub,\n                                       const unsigned char *k)\n{\n    CRYPTO_ALIGN(16) crypto_aead_aes256gcm_state st;\n    int                                          ret;\n\n    PREFETCH_WRITE(m);\n    PREFETCH_READ(c);\n    PREFETCH_READ(ad);\n\n    crypto_aead_aes256gcm_beforenm(&st, k);\n\n    ret = crypto_aead_aes256gcm_decrypt_detached_afternm(\n        m, nsec, c, clen, mac, ad, adlen, npub, (const crypto_aead_aes256gcm_state *) &st);\n    sodium_memzero(&st, sizeof st);\n\n    return ret;\n}\n\nint\ncrypto_aead_aes256gcm_decrypt(unsigned char *m, unsigned long long *mlen_p, unsigned char *nsec,\n                              const unsigned char *c, unsigned long long clen,\n                              const unsigned char *ad, unsigned long long adlen,\n                              const unsigned char *npub, const unsigned char *k)\n{\n    CRYPTO_ALIGN(16) crypto_aead_aes256gcm_state st;\n    int                                          ret;\n\n    PREFETCH_WRITE(m);\n    PREFETCH_READ(c);\n    PREFETCH_READ(ad);\n\n    crypto_aead_aes256gcm_beforenm(&st, k);\n\n    ret = crypto_aead_aes256gcm_decrypt_afternm(m, mlen_p, nsec, c, clen, ad, adlen, npub,\n                                                (const crypto_aead_aes256gcm_state *) &st);\n    sodium_memzero(&st, sizeof st);\n\n    return ret;\n}\n\nint\ncrypto_aead_aes256gcm_is_available(void)\n{\n    return sodium_runtime_has_armcrypto();\n}\n\n#ifdef __clang__\n#pragma clang attribute pop\n#endif\n\n#endif\n"
  },
  {
    "path": "src/libsodium/crypto_aead/chacha20poly1305/aead_chacha20poly1305.c",
    "content": "\n#include <stdint.h>\n#include <stdlib.h>\n#include <limits.h>\n#include <string.h>\n\n#include \"core.h\"\n#include \"crypto_aead_chacha20poly1305.h\"\n#include \"crypto_onetimeauth_poly1305.h\"\n#include \"crypto_stream_chacha20.h\"\n#include \"crypto_verify_16.h\"\n#include \"randombytes.h\"\n#include \"utils.h\"\n\n#include \"private/chacha20_ietf_ext.h\"\n#include \"private/common.h\"\n\nstatic const unsigned char _pad0[16] = { 0 };\n\nint\ncrypto_aead_chacha20poly1305_encrypt_detached(unsigned char *c,\n                                              unsigned char *mac,\n                                              unsigned long long *maclen_p,\n                                              const unsigned char *m,\n                                              unsigned long long mlen,\n                                              const unsigned char *ad,\n                                              unsigned long long adlen,\n                                              const unsigned char *nsec,\n                                              const unsigned char *npub,\n                                              const unsigned char *k)\n{\n    crypto_onetimeauth_poly1305_state state;\n    unsigned char                     block0[64U];\n    unsigned char                     slen[8U];\n\n    (void) nsec;\n    crypto_stream_chacha20(block0, sizeof block0, npub, k);\n    crypto_onetimeauth_poly1305_init(&state, block0);\n    sodium_memzero(block0, sizeof block0);\n\n    crypto_onetimeauth_poly1305_update(&state, ad, adlen);\n    STORE64_LE(slen, (uint64_t) adlen);\n    crypto_onetimeauth_poly1305_update(&state, slen, sizeof slen);\n\n    crypto_stream_chacha20_xor_ic(c, m, mlen, npub, 1U, k);\n\n    crypto_onetimeauth_poly1305_update(&state, c, mlen);\n    STORE64_LE(slen, (uint64_t) mlen);\n    crypto_onetimeauth_poly1305_update(&state, slen, sizeof slen);\n\n    crypto_onetimeauth_poly1305_final(&state, mac);\n    sodium_memzero(&state, sizeof state);\n\n    if (maclen_p != NULL) {\n        *maclen_p = crypto_aead_chacha20poly1305_ABYTES;\n    }\n    return 0;\n}\n\nint\ncrypto_aead_chacha20poly1305_encrypt(unsigned char *c,\n                                     unsigned long long *clen_p,\n                                     const unsigned char *m,\n                                     unsigned long long mlen,\n                                     const unsigned char *ad,\n                                     unsigned long long adlen,\n                                     const unsigned char *nsec,\n                                     const unsigned char *npub,\n                                     const unsigned char *k)\n{\n    unsigned long long clen = 0ULL;\n    int                ret;\n\n    if (mlen > crypto_aead_chacha20poly1305_MESSAGEBYTES_MAX) {\n        sodium_misuse(); /* LCOV_EXCL_LINE */\n    }\n    ret = crypto_aead_chacha20poly1305_encrypt_detached(c,\n                                                        c + mlen, NULL,\n                                                        m, mlen,\n                                                        ad, adlen,\n                                                        nsec, npub, k);\n    if (clen_p != NULL) {\n        if (ret == 0) {\n            clen = mlen + crypto_aead_chacha20poly1305_ABYTES;\n        }\n        *clen_p = clen;\n    }\n    return ret;\n}\n\nint\ncrypto_aead_chacha20poly1305_ietf_encrypt_detached(unsigned char *c,\n                                                   unsigned char *mac,\n                                                   unsigned long long *maclen_p,\n                                                   const unsigned char *m,\n                                                   unsigned long long mlen,\n                                                   const unsigned char *ad,\n                                                   unsigned long long adlen,\n                                                   const unsigned char *nsec,\n                                                   const unsigned char *npub,\n                                                   const unsigned char *k)\n{\n    crypto_onetimeauth_poly1305_state state;\n    unsigned char                     block0[64U];\n    unsigned char                     slen[8U];\n\n    (void) nsec;\n    crypto_stream_chacha20_ietf(block0, sizeof block0, npub, k);\n    crypto_onetimeauth_poly1305_init(&state, block0);\n    sodium_memzero(block0, sizeof block0);\n\n    crypto_onetimeauth_poly1305_update(&state, ad, adlen);\n    crypto_onetimeauth_poly1305_update(&state, _pad0, (0x10 - adlen) & 0xf);\n\n    crypto_stream_chacha20_ietf_xor_ic(c, m, mlen, npub, 1U, k);\n\n    crypto_onetimeauth_poly1305_update(&state, c, mlen);\n    crypto_onetimeauth_poly1305_update(&state, _pad0, (0x10 - mlen) & 0xf);\n\n    STORE64_LE(slen, (uint64_t) adlen);\n    crypto_onetimeauth_poly1305_update(&state, slen, sizeof slen);\n\n    STORE64_LE(slen, (uint64_t) mlen);\n    crypto_onetimeauth_poly1305_update(&state, slen, sizeof slen);\n\n    crypto_onetimeauth_poly1305_final(&state, mac);\n    sodium_memzero(&state, sizeof state);\n\n    if (maclen_p != NULL) {\n        *maclen_p = crypto_aead_chacha20poly1305_ietf_ABYTES;\n    }\n    return 0;\n}\n\nint\ncrypto_aead_chacha20poly1305_ietf_encrypt(unsigned char *c,\n                                          unsigned long long *clen_p,\n                                          const unsigned char *m,\n                                          unsigned long long mlen,\n                                          const unsigned char *ad,\n                                          unsigned long long adlen,\n                                          const unsigned char *nsec,\n                                          const unsigned char *npub,\n                                          const unsigned char *k)\n{\n    unsigned long long clen = 0ULL;\n    int                ret;\n\n    if (mlen > crypto_aead_chacha20poly1305_ietf_MESSAGEBYTES_MAX) {\n        sodium_misuse(); /* LCOV_EXCL_LINE */\n    }\n    ret = crypto_aead_chacha20poly1305_ietf_encrypt_detached(c,\n                                                             c + mlen, NULL,\n                                                             m, mlen,\n                                                             ad, adlen,\n                                                             nsec, npub, k);\n    if (clen_p != NULL) {\n        if (ret == 0) {\n            clen = mlen + crypto_aead_chacha20poly1305_ietf_ABYTES;\n        }\n        *clen_p = clen;\n    }\n    return ret;\n}\n\nint\ncrypto_aead_chacha20poly1305_decrypt_detached(unsigned char *m,\n                                              unsigned char *nsec,\n                                              const unsigned char *c,\n                                              unsigned long long clen,\n                                              const unsigned char *mac,\n                                              const unsigned char *ad,\n                                              unsigned long long adlen,\n                                              const unsigned char *npub,\n                                              const unsigned char *k)\n{\n    crypto_onetimeauth_poly1305_state state;\n    unsigned char                     block0[64U];\n    unsigned char                     slen[8U];\n    unsigned char                     computed_mac[crypto_aead_chacha20poly1305_ABYTES];\n    unsigned long long                mlen;\n    int                               ret;\n\n    (void) nsec;\n    crypto_stream_chacha20(block0, sizeof block0, npub, k);\n    crypto_onetimeauth_poly1305_init(&state, block0);\n    sodium_memzero(block0, sizeof block0);\n\n    crypto_onetimeauth_poly1305_update(&state, ad, adlen);\n    STORE64_LE(slen, (uint64_t) adlen);\n    crypto_onetimeauth_poly1305_update(&state, slen, sizeof slen);\n\n    mlen = clen;\n    crypto_onetimeauth_poly1305_update(&state, c, mlen);\n    STORE64_LE(slen, (uint64_t) mlen);\n    crypto_onetimeauth_poly1305_update(&state, slen, sizeof slen);\n\n    crypto_onetimeauth_poly1305_final(&state, computed_mac);\n    sodium_memzero(&state, sizeof state);\n\n    COMPILER_ASSERT(sizeof computed_mac == 16U);\n    ret = crypto_verify_16(computed_mac, mac);\n    sodium_memzero(computed_mac, sizeof computed_mac);\n    if (m == NULL) {\n        return ret;\n    }\n    if (ret != 0) {\n        memset(m, 0, mlen);\n        return -1;\n    }\n    ACQUIRE_FENCE;\n    crypto_stream_chacha20_xor_ic(m, c, mlen, npub, 1U, k);\n\n    return 0;\n}\n\nint\ncrypto_aead_chacha20poly1305_decrypt(unsigned char *m,\n                                     unsigned long long *mlen_p,\n                                     unsigned char *nsec,\n                                     const unsigned char *c,\n                                     unsigned long long clen,\n                                     const unsigned char *ad,\n                                     unsigned long long adlen,\n                                     const unsigned char *npub,\n                                     const unsigned char *k)\n{\n    unsigned long long mlen = 0ULL;\n    int                ret = -1;\n\n    if (clen >= crypto_aead_chacha20poly1305_ABYTES) {\n        ret = crypto_aead_chacha20poly1305_decrypt_detached\n            (m, nsec,\n             c, clen - crypto_aead_chacha20poly1305_ABYTES,\n             c + clen - crypto_aead_chacha20poly1305_ABYTES,\n             ad, adlen, npub, k);\n    }\n    if (mlen_p != NULL) {\n        if (ret == 0) {\n            mlen = clen - crypto_aead_chacha20poly1305_ABYTES;\n        }\n        *mlen_p = mlen;\n    }\n    return ret;\n}\n\nint\ncrypto_aead_chacha20poly1305_ietf_decrypt_detached(unsigned char *m,\n                                                   unsigned char *nsec,\n                                                   const unsigned char *c,\n                                                   unsigned long long clen,\n                                                   const unsigned char *mac,\n                                                   const unsigned char *ad,\n                                                   unsigned long long adlen,\n                                                   const unsigned char *npub,\n                                                   const unsigned char *k)\n{\n    crypto_onetimeauth_poly1305_state state;\n    unsigned char                     block0[64U];\n    unsigned char                     slen[8U];\n    unsigned char                     computed_mac[crypto_aead_chacha20poly1305_ietf_ABYTES];\n    unsigned long long                mlen;\n    int                               ret;\n\n    (void) nsec;\n    crypto_stream_chacha20_ietf(block0, sizeof block0, npub, k);\n    crypto_onetimeauth_poly1305_init(&state, block0);\n    sodium_memzero(block0, sizeof block0);\n\n    crypto_onetimeauth_poly1305_update(&state, ad, adlen);\n    crypto_onetimeauth_poly1305_update(&state, _pad0, (0x10 - adlen) & 0xf);\n\n    mlen = clen;\n    crypto_onetimeauth_poly1305_update(&state, c, mlen);\n    crypto_onetimeauth_poly1305_update(&state, _pad0, (0x10 - mlen) & 0xf);\n\n    STORE64_LE(slen, (uint64_t) adlen);\n    crypto_onetimeauth_poly1305_update(&state, slen, sizeof slen);\n\n    STORE64_LE(slen, (uint64_t) mlen);\n    crypto_onetimeauth_poly1305_update(&state, slen, sizeof slen);\n\n    crypto_onetimeauth_poly1305_final(&state, computed_mac);\n    sodium_memzero(&state, sizeof state);\n\n    COMPILER_ASSERT(sizeof computed_mac == 16U);\n    ret = crypto_verify_16(computed_mac, mac);\n    sodium_memzero(computed_mac, sizeof computed_mac);\n    if (m == NULL) {\n        return ret;\n    }\n    if (ret != 0) {\n        memset(m, 0, mlen);\n        return -1;\n    }\n    ACQUIRE_FENCE;\n    crypto_stream_chacha20_ietf_xor_ic(m, c, mlen, npub, 1U, k);\n\n    return 0;\n}\n\nint\ncrypto_aead_chacha20poly1305_ietf_decrypt(unsigned char *m,\n                                          unsigned long long *mlen_p,\n                                          unsigned char *nsec,\n                                          const unsigned char *c,\n                                          unsigned long long clen,\n                                          const unsigned char *ad,\n                                          unsigned long long adlen,\n                                          const unsigned char *npub,\n                                          const unsigned char *k)\n{\n    unsigned long long mlen = 0ULL;\n    int                ret = -1;\n\n    if (clen >= crypto_aead_chacha20poly1305_ietf_ABYTES) {\n        ret = crypto_aead_chacha20poly1305_ietf_decrypt_detached\n            (m, nsec,\n             c, clen - crypto_aead_chacha20poly1305_ietf_ABYTES,\n             c + clen - crypto_aead_chacha20poly1305_ietf_ABYTES,\n             ad, adlen, npub, k);\n    }\n    if (mlen_p != NULL) {\n        if (ret == 0) {\n            mlen = clen - crypto_aead_chacha20poly1305_ietf_ABYTES;\n        }\n        *mlen_p = mlen;\n    }\n    return ret;\n}\n\nsize_t\ncrypto_aead_chacha20poly1305_ietf_keybytes(void)\n{\n    return crypto_aead_chacha20poly1305_ietf_KEYBYTES;\n}\n\nsize_t\ncrypto_aead_chacha20poly1305_ietf_npubbytes(void)\n{\n    return crypto_aead_chacha20poly1305_ietf_NPUBBYTES;\n}\n\nsize_t\ncrypto_aead_chacha20poly1305_ietf_nsecbytes(void)\n{\n    return crypto_aead_chacha20poly1305_ietf_NSECBYTES;\n}\n\nsize_t\ncrypto_aead_chacha20poly1305_ietf_abytes(void)\n{\n    return crypto_aead_chacha20poly1305_ietf_ABYTES;\n}\n\nsize_t\ncrypto_aead_chacha20poly1305_ietf_messagebytes_max(void)\n{\n    return crypto_aead_chacha20poly1305_ietf_MESSAGEBYTES_MAX;\n}\n\nvoid\ncrypto_aead_chacha20poly1305_ietf_keygen(unsigned char k[crypto_aead_chacha20poly1305_ietf_KEYBYTES])\n{\n    randombytes_buf(k, crypto_aead_chacha20poly1305_ietf_KEYBYTES);\n}\n\nsize_t\ncrypto_aead_chacha20poly1305_keybytes(void)\n{\n    return crypto_aead_chacha20poly1305_KEYBYTES;\n}\n\nsize_t\ncrypto_aead_chacha20poly1305_npubbytes(void)\n{\n    return crypto_aead_chacha20poly1305_NPUBBYTES;\n}\n\nsize_t\ncrypto_aead_chacha20poly1305_nsecbytes(void)\n{\n    return crypto_aead_chacha20poly1305_NSECBYTES;\n}\n\nsize_t\ncrypto_aead_chacha20poly1305_abytes(void)\n{\n    return crypto_aead_chacha20poly1305_ABYTES;\n}\n\nsize_t\ncrypto_aead_chacha20poly1305_messagebytes_max(void)\n{\n    return crypto_aead_chacha20poly1305_MESSAGEBYTES_MAX;\n}\n\nvoid\ncrypto_aead_chacha20poly1305_keygen(unsigned char k[crypto_aead_chacha20poly1305_KEYBYTES])\n{\n    randombytes_buf(k, crypto_aead_chacha20poly1305_KEYBYTES);\n}\n"
  },
  {
    "path": "src/libsodium/crypto_aead/xchacha20poly1305/aead_xchacha20poly1305.c",
    "content": "\n#include <stdint.h>\n#include <stdlib.h>\n#include <limits.h>\n#include <string.h>\n\n#include \"core.h\"\n#include \"crypto_aead_chacha20poly1305.h\"\n#include \"crypto_aead_xchacha20poly1305.h\"\n#include \"crypto_core_hchacha20.h\"\n#include \"crypto_onetimeauth_poly1305.h\"\n#include \"crypto_stream_chacha20.h\"\n#include \"crypto_verify_16.h\"\n#include \"randombytes.h\"\n#include \"utils.h\"\n\n#include \"private/chacha20_ietf_ext.h\"\n#include \"private/common.h\"\n\nstatic const unsigned char _pad0[16] = { 0 };\n\nstatic int\n_encrypt_detached(unsigned char *c,\n                  unsigned char *mac,\n                  unsigned long long *maclen_p,\n                  const unsigned char *m,\n                  unsigned long long mlen,\n                  const unsigned char *ad,\n                  unsigned long long adlen,\n                  const unsigned char *nsec,\n                  const unsigned char *npub,\n                  const unsigned char *k)\n{\n    crypto_onetimeauth_poly1305_state state;\n    unsigned char                     block0[64U];\n    unsigned char                     slen[8U];\n\n    (void) nsec;\n    crypto_stream_chacha20_ietf_ext(block0, sizeof block0, npub, k);\n    crypto_onetimeauth_poly1305_init(&state, block0);\n    sodium_memzero(block0, sizeof block0);\n\n    crypto_onetimeauth_poly1305_update(&state, ad, adlen);\n    crypto_onetimeauth_poly1305_update(&state, _pad0, (0x10 - adlen) & 0xf);\n\n    crypto_stream_chacha20_ietf_ext_xor_ic(c, m, mlen, npub, 1U, k);\n\n    crypto_onetimeauth_poly1305_update(&state, c, mlen);\n    crypto_onetimeauth_poly1305_update(&state, _pad0, (0x10 - mlen) & 0xf);\n\n    STORE64_LE(slen, (uint64_t) adlen);\n    crypto_onetimeauth_poly1305_update(&state, slen, sizeof slen);\n\n    STORE64_LE(slen, (uint64_t) mlen);\n    crypto_onetimeauth_poly1305_update(&state, slen, sizeof slen);\n\n    crypto_onetimeauth_poly1305_final(&state, mac);\n    sodium_memzero(&state, sizeof state);\n\n    if (maclen_p != NULL) {\n        *maclen_p = crypto_aead_chacha20poly1305_ietf_ABYTES;\n    }\n    return 0;\n}\n\nstatic int\n_decrypt_detached(unsigned char *m,\n                  unsigned char *nsec,\n                  const unsigned char *c,\n                  unsigned long long clen,\n                  const unsigned char *mac,\n                  const unsigned char *ad,\n                  unsigned long long adlen,\n                  const unsigned char *npub,\n                  const unsigned char *k)\n{\n    crypto_onetimeauth_poly1305_state state;\n    unsigned char                     block0[64U];\n    unsigned char                     slen[8U];\n    unsigned char                     computed_mac[crypto_aead_chacha20poly1305_ietf_ABYTES];\n    unsigned long long                mlen;\n    int                               ret;\n\n    (void) nsec;\n    crypto_stream_chacha20_ietf_ext(block0, sizeof block0, npub, k);\n    crypto_onetimeauth_poly1305_init(&state, block0);\n    sodium_memzero(block0, sizeof block0);\n\n    crypto_onetimeauth_poly1305_update(&state, ad, adlen);\n    crypto_onetimeauth_poly1305_update(&state, _pad0, (0x10 - adlen) & 0xf);\n\n    mlen = clen;\n    crypto_onetimeauth_poly1305_update(&state, c, mlen);\n    crypto_onetimeauth_poly1305_update(&state, _pad0, (0x10 - mlen) & 0xf);\n\n    STORE64_LE(slen, (uint64_t) adlen);\n    crypto_onetimeauth_poly1305_update(&state, slen, sizeof slen);\n\n    STORE64_LE(slen, (uint64_t) mlen);\n    crypto_onetimeauth_poly1305_update(&state, slen, sizeof slen);\n\n    crypto_onetimeauth_poly1305_final(&state, computed_mac);\n    sodium_memzero(&state, sizeof state);\n\n    COMPILER_ASSERT(sizeof computed_mac == 16U);\n    ret = crypto_verify_16(computed_mac, mac);\n    sodium_memzero(computed_mac, sizeof computed_mac);\n    if (m == NULL) {\n        return ret;\n    }\n    if (ret != 0) {\n        memset(m, 0, mlen);\n        return -1;\n    }\n    ACQUIRE_FENCE;\n    crypto_stream_chacha20_ietf_ext_xor_ic(m, c, mlen, npub, 1U, k);\n\n    return 0;\n}\n\nint\ncrypto_aead_xchacha20poly1305_ietf_encrypt_detached(unsigned char *c,\n                                                    unsigned char *mac,\n                                                    unsigned long long *maclen_p,\n                                                    const unsigned char *m,\n                                                    unsigned long long mlen,\n                                                    const unsigned char *ad,\n                                                    unsigned long long adlen,\n                                                    const unsigned char *nsec,\n                                                    const unsigned char *npub,\n                                                    const unsigned char *k)\n{\n    unsigned char k2[crypto_core_hchacha20_OUTPUTBYTES];\n    unsigned char npub2[crypto_aead_chacha20poly1305_ietf_NPUBBYTES] = { 0 };\n    int           ret;\n\n    crypto_core_hchacha20(k2, npub, k, NULL);\n    memcpy(npub2 + 4, npub + crypto_core_hchacha20_INPUTBYTES,\n           crypto_aead_chacha20poly1305_ietf_NPUBBYTES - 4);\n    ret = _encrypt_detached(c, mac, maclen_p, m, mlen, ad, adlen,\n                            nsec, npub2, k2);\n    sodium_memzero(k2, crypto_core_hchacha20_OUTPUTBYTES);\n\n    return ret;\n}\n\nint\ncrypto_aead_xchacha20poly1305_ietf_encrypt(unsigned char *c,\n                                           unsigned long long *clen_p,\n                                           const unsigned char *m,\n                                           unsigned long long mlen,\n                                           const unsigned char *ad,\n                                           unsigned long long adlen,\n                                           const unsigned char *nsec,\n                                           const unsigned char *npub,\n                                           const unsigned char *k)\n{\n    unsigned long long clen = 0ULL;\n    int                ret;\n\n    if (mlen > crypto_aead_xchacha20poly1305_ietf_MESSAGEBYTES_MAX) {\n        sodium_misuse(); /* LCOV_EXCL_LINE */\n    }\n    ret = crypto_aead_xchacha20poly1305_ietf_encrypt_detached\n        (c, c + mlen, NULL, m, mlen, ad, adlen, nsec, npub, k);\n    if (clen_p != NULL) {\n        if (ret == 0) {\n            clen = mlen + crypto_aead_xchacha20poly1305_ietf_ABYTES;\n        }\n        *clen_p = clen;\n    }\n    return ret;\n}\n\nint\ncrypto_aead_xchacha20poly1305_ietf_decrypt_detached(unsigned char *m,\n                                                    unsigned char *nsec,\n                                                    const unsigned char *c,\n                                                    unsigned long long clen,\n                                                    const unsigned char *mac,\n                                                    const unsigned char *ad,\n                                                    unsigned long long adlen,\n                                                    const unsigned char *npub,\n                                                    const unsigned char *k)\n{\n    unsigned char k2[crypto_core_hchacha20_OUTPUTBYTES];\n    unsigned char npub2[crypto_aead_chacha20poly1305_ietf_NPUBBYTES] = { 0 };\n    int           ret;\n\n    crypto_core_hchacha20(k2, npub, k, NULL);\n    memcpy(npub2 + 4, npub + crypto_core_hchacha20_INPUTBYTES,\n           crypto_aead_chacha20poly1305_ietf_NPUBBYTES - 4);\n    ret = _decrypt_detached(m, nsec, c, clen, mac, ad, adlen, npub2, k2);\n    sodium_memzero(k2, crypto_core_hchacha20_OUTPUTBYTES);\n\n    return ret;\n}\n\nint\ncrypto_aead_xchacha20poly1305_ietf_decrypt(unsigned char *m,\n                                           unsigned long long *mlen_p,\n                                           unsigned char *nsec,\n                                           const unsigned char *c,\n                                           unsigned long long clen,\n                                           const unsigned char *ad,\n                                           unsigned long long adlen,\n                                           const unsigned char *npub,\n                                           const unsigned char *k)\n{\n    unsigned long long mlen = 0ULL;\n    int                ret  = -1;\n\n    if (clen >= crypto_aead_xchacha20poly1305_ietf_ABYTES) {\n        ret = crypto_aead_xchacha20poly1305_ietf_decrypt_detached\n            (m, nsec,\n             c, clen - crypto_aead_xchacha20poly1305_ietf_ABYTES,\n             c + clen - crypto_aead_xchacha20poly1305_ietf_ABYTES,\n             ad, adlen, npub, k);\n    }\n    if (mlen_p != NULL) {\n        if (ret == 0) {\n            mlen = clen - crypto_aead_xchacha20poly1305_ietf_ABYTES;\n        }\n        *mlen_p = mlen;\n    }\n    return ret;\n}\n\nsize_t\ncrypto_aead_xchacha20poly1305_ietf_keybytes(void)\n{\n    return crypto_aead_xchacha20poly1305_ietf_KEYBYTES;\n}\n\nsize_t\ncrypto_aead_xchacha20poly1305_ietf_npubbytes(void)\n{\n    return crypto_aead_xchacha20poly1305_ietf_NPUBBYTES;\n}\n\nsize_t\ncrypto_aead_xchacha20poly1305_ietf_nsecbytes(void)\n{\n    return crypto_aead_xchacha20poly1305_ietf_NSECBYTES;\n}\n\nsize_t\ncrypto_aead_xchacha20poly1305_ietf_abytes(void)\n{\n    return crypto_aead_xchacha20poly1305_ietf_ABYTES;\n}\n\nsize_t\ncrypto_aead_xchacha20poly1305_ietf_messagebytes_max(void)\n{\n    return crypto_aead_xchacha20poly1305_ietf_MESSAGEBYTES_MAX;\n}\n\nvoid\ncrypto_aead_xchacha20poly1305_ietf_keygen(unsigned char k[crypto_aead_xchacha20poly1305_ietf_KEYBYTES])\n{\n    randombytes_buf(k, crypto_aead_xchacha20poly1305_ietf_KEYBYTES);\n}\n"
  },
  {
    "path": "src/libsodium/crypto_auth/crypto_auth.c",
    "content": "\n#include \"crypto_auth.h\"\n#include \"randombytes.h\"\n\nsize_t\ncrypto_auth_bytes(void)\n{\n    return crypto_auth_BYTES;\n}\n\nsize_t\ncrypto_auth_keybytes(void)\n{\n    return crypto_auth_KEYBYTES;\n}\n\nconst char *\ncrypto_auth_primitive(void)\n{\n    return crypto_auth_PRIMITIVE;\n}\n\nint\ncrypto_auth(unsigned char *out, const unsigned char *in,\n            unsigned long long inlen, const unsigned char *k)\n{\n    return crypto_auth_hmacsha512256(out, in, inlen, k);\n}\n\nint\ncrypto_auth_verify(const unsigned char *h, const unsigned char *in,\n                   unsigned long long inlen,const unsigned char *k)\n{\n    return crypto_auth_hmacsha512256_verify(h, in, inlen, k);\n}\n\nvoid\ncrypto_auth_keygen(unsigned char k[crypto_auth_KEYBYTES])\n{\n    randombytes_buf(k, crypto_auth_KEYBYTES);\n}\n"
  },
  {
    "path": "src/libsodium/crypto_auth/hmacsha256/auth_hmacsha256.c",
    "content": "\n#include <stddef.h>\n#include <stdint.h>\n#include <string.h>\n\n#include \"core.h\"\n#include \"crypto_auth_hmacsha256.h\"\n#include \"crypto_hash_sha256.h\"\n#include \"crypto_verify_32.h\"\n#include \"randombytes.h\"\n#include \"utils.h\"\n\nsize_t\ncrypto_auth_hmacsha256_bytes(void)\n{\n    return crypto_auth_hmacsha256_BYTES;\n}\n\nsize_t\ncrypto_auth_hmacsha256_keybytes(void)\n{\n    return crypto_auth_hmacsha256_KEYBYTES;\n}\n\nsize_t\ncrypto_auth_hmacsha256_statebytes(void)\n{\n    return sizeof(crypto_auth_hmacsha256_state);\n}\n\nvoid\ncrypto_auth_hmacsha256_keygen(unsigned char k[crypto_auth_hmacsha256_KEYBYTES])\n{\n    randombytes_buf(k, crypto_auth_hmacsha256_KEYBYTES);\n}\n\nint\ncrypto_auth_hmacsha256_init(crypto_auth_hmacsha256_state *state,\n                            const unsigned char *key, size_t keylen)\n{\n    unsigned char pad[64];\n    unsigned char khash[32];\n    size_t        i;\n\n    if (keylen > 64) {\n        crypto_hash_sha256_init(&state->ictx);\n        crypto_hash_sha256_update(&state->ictx, key, keylen);\n        crypto_hash_sha256_final(&state->ictx, khash);\n        key    = khash;\n        keylen = 32;\n    } else if (key == NULL) {\n        if (keylen > 0) {\n            sodium_misuse(); /* LCOV_EXCL_LINE */\n        }\n    }\n    crypto_hash_sha256_init(&state->ictx);\n    memset(pad, 0x36, 64);\n    for (i = 0; i < keylen; i++) {\n        pad[i] ^= key[i];\n    }\n    crypto_hash_sha256_update(&state->ictx, pad, 64);\n\n    crypto_hash_sha256_init(&state->octx);\n    memset(pad, 0x5c, 64);\n    for (i = 0; i < keylen; i++) {\n        pad[i] ^= key[i];\n    }\n    crypto_hash_sha256_update(&state->octx, pad, 64);\n\n    sodium_memzero((void *) pad, sizeof pad);\n    sodium_memzero((void *) khash, sizeof khash);\n\n    return 0;\n}\n\nint\ncrypto_auth_hmacsha256_update(crypto_auth_hmacsha256_state *state,\n                              const unsigned char *in, unsigned long long inlen)\n{\n    crypto_hash_sha256_update(&state->ictx, in, inlen);\n\n    return 0;\n}\n\nint\ncrypto_auth_hmacsha256_final(crypto_auth_hmacsha256_state *state,\n                             unsigned char                *out)\n{\n    unsigned char ihash[32];\n\n    crypto_hash_sha256_final(&state->ictx, ihash);\n    crypto_hash_sha256_update(&state->octx, ihash, 32);\n    crypto_hash_sha256_final(&state->octx, out);\n\n    sodium_memzero((void *) ihash, sizeof ihash);\n\n    return 0;\n}\n\nint\ncrypto_auth_hmacsha256(unsigned char *out, const unsigned char *in,\n                       unsigned long long inlen, const unsigned char *k)\n{\n    crypto_auth_hmacsha256_state state;\n\n    crypto_auth_hmacsha256_init(&state, k, crypto_auth_hmacsha256_KEYBYTES);\n    crypto_auth_hmacsha256_update(&state, in, inlen);\n    crypto_auth_hmacsha256_final(&state, out);\n\n    return 0;\n}\n\nint\ncrypto_auth_hmacsha256_verify(const unsigned char *h, const unsigned char *in,\n                              unsigned long long inlen, const unsigned char *k)\n{\n    unsigned char correct[32];\n\n    crypto_auth_hmacsha256(correct, in, inlen, k);\n\n    return crypto_verify_32(h, correct) | (-(h == correct)) |\n           sodium_memcmp(correct, h, 32);\n}\n"
  },
  {
    "path": "src/libsodium/crypto_auth/hmacsha512/auth_hmacsha512.c",
    "content": "\n#include <stddef.h>\n#include <stdint.h>\n#include <string.h>\n\n#include \"core.h\"\n#include \"crypto_auth_hmacsha512.h\"\n#include \"crypto_hash_sha512.h\"\n#include \"crypto_verify_64.h\"\n#include \"randombytes.h\"\n#include \"utils.h\"\n\nsize_t\ncrypto_auth_hmacsha512_bytes(void)\n{\n    return crypto_auth_hmacsha512_BYTES;\n}\n\nsize_t\ncrypto_auth_hmacsha512_keybytes(void)\n{\n    return crypto_auth_hmacsha512_KEYBYTES;\n}\n\nsize_t\ncrypto_auth_hmacsha512_statebytes(void)\n{\n    return sizeof(crypto_auth_hmacsha512_state);\n}\n\nvoid\ncrypto_auth_hmacsha512_keygen(unsigned char k[crypto_auth_hmacsha512_KEYBYTES])\n{\n    randombytes_buf(k, crypto_auth_hmacsha512_KEYBYTES);\n}\n\nint\ncrypto_auth_hmacsha512_init(crypto_auth_hmacsha512_state *state,\n                            const unsigned char *key, size_t keylen)\n{\n    unsigned char pad[128];\n    unsigned char khash[64];\n    size_t        i;\n\n    if (keylen > 128) {\n        crypto_hash_sha512_init(&state->ictx);\n        crypto_hash_sha512_update(&state->ictx, key, keylen);\n        crypto_hash_sha512_final(&state->ictx, khash);\n        key    = khash;\n        keylen = 64;\n    } else if (key == NULL) {\n        if (keylen > 0) {\n            sodium_misuse(); /* LCOV_EXCL_LINE */\n        }\n    }\n    crypto_hash_sha512_init(&state->ictx);\n    memset(pad, 0x36, 128);\n    for (i = 0; i < keylen; i++) {\n        pad[i] ^= key[i];\n    }\n    crypto_hash_sha512_update(&state->ictx, pad, 128);\n\n    crypto_hash_sha512_init(&state->octx);\n    memset(pad, 0x5c, 128);\n    for (i = 0; i < keylen; i++) {\n        pad[i] ^= key[i];\n    }\n    crypto_hash_sha512_update(&state->octx, pad, 128);\n\n    sodium_memzero((void *) pad, sizeof pad);\n    sodium_memzero((void *) khash, sizeof khash);\n\n    return 0;\n}\n\nint\ncrypto_auth_hmacsha512_update(crypto_auth_hmacsha512_state *state,\n                              const unsigned char *in, unsigned long long inlen)\n{\n    crypto_hash_sha512_update(&state->ictx, in, inlen);\n\n    return 0;\n}\n\nint\ncrypto_auth_hmacsha512_final(crypto_auth_hmacsha512_state *state,\n                             unsigned char                *out)\n{\n    unsigned char ihash[64];\n\n    crypto_hash_sha512_final(&state->ictx, ihash);\n    crypto_hash_sha512_update(&state->octx, ihash, 64);\n    crypto_hash_sha512_final(&state->octx, out);\n\n    sodium_memzero((void *) ihash, sizeof ihash);\n\n    return 0;\n}\n\nint\ncrypto_auth_hmacsha512(unsigned char *out, const unsigned char *in,\n                       unsigned long long inlen, const unsigned char *k)\n{\n    crypto_auth_hmacsha512_state state;\n\n    crypto_auth_hmacsha512_init(&state, k, crypto_auth_hmacsha512_KEYBYTES);\n    crypto_auth_hmacsha512_update(&state, in, inlen);\n    crypto_auth_hmacsha512_final(&state, out);\n\n    return 0;\n}\n\nint\ncrypto_auth_hmacsha512_verify(const unsigned char *h, const unsigned char *in,\n                              unsigned long long inlen, const unsigned char *k)\n{\n    unsigned char correct[64];\n\n    crypto_auth_hmacsha512(correct, in, inlen, k);\n\n    return crypto_verify_64(h, correct) | (-(h == correct)) |\n           sodium_memcmp(correct, h, 64);\n}\n"
  },
  {
    "path": "src/libsodium/crypto_auth/hmacsha512256/auth_hmacsha512256.c",
    "content": "\n#include <stddef.h>\n#include <stdint.h>\n#include <string.h>\n\n#include \"crypto_auth_hmacsha512.h\"\n#include \"crypto_auth_hmacsha512256.h\"\n#include \"crypto_hash_sha512.h\"\n#include \"crypto_verify_32.h\"\n#include \"randombytes.h\"\n#include \"utils.h\"\n\nsize_t\ncrypto_auth_hmacsha512256_bytes(void)\n{\n    return crypto_auth_hmacsha512256_BYTES;\n}\n\nsize_t\ncrypto_auth_hmacsha512256_keybytes(void)\n{\n    return crypto_auth_hmacsha512256_KEYBYTES;\n}\n\nsize_t\ncrypto_auth_hmacsha512256_statebytes(void)\n{\n    return sizeof(crypto_auth_hmacsha512256_state);\n}\n\nvoid\ncrypto_auth_hmacsha512256_keygen(\n    unsigned char k[crypto_auth_hmacsha512256_KEYBYTES])\n{\n    randombytes_buf(k, crypto_auth_hmacsha512256_KEYBYTES);\n}\n\nint\ncrypto_auth_hmacsha512256_init(crypto_auth_hmacsha512256_state *state,\n                               const unsigned char *key, size_t keylen)\n{\n    return crypto_auth_hmacsha512_init((crypto_auth_hmacsha512_state *) state,\n                                       key, keylen);\n}\n\nint\ncrypto_auth_hmacsha512256_update(crypto_auth_hmacsha512256_state *state,\n                                 const unsigned char             *in,\n                                 unsigned long long               inlen)\n{\n    return crypto_auth_hmacsha512_update((crypto_auth_hmacsha512_state *) state,\n                                         in, inlen);\n}\n\nint\ncrypto_auth_hmacsha512256_final(crypto_auth_hmacsha512256_state *state,\n                                unsigned char                   *out)\n{\n    unsigned char out0[64];\n\n    crypto_auth_hmacsha512_final((crypto_auth_hmacsha512_state *) state, out0);\n    memcpy(out, out0, 32);\n\n    return 0;\n}\n\nint\ncrypto_auth_hmacsha512256(unsigned char *out, const unsigned char *in,\n                          unsigned long long inlen, const unsigned char *k)\n{\n    crypto_auth_hmacsha512256_state state;\n\n    crypto_auth_hmacsha512256_init(&state, k,\n                                   crypto_auth_hmacsha512256_KEYBYTES);\n    crypto_auth_hmacsha512256_update(&state, in, inlen);\n    crypto_auth_hmacsha512256_final(&state, out);\n\n    return 0;\n}\n\nint\ncrypto_auth_hmacsha512256_verify(const unsigned char *h,\n                                 const unsigned char *in,\n                                 unsigned long long   inlen,\n                                 const unsigned char *k)\n{\n    unsigned char correct[32];\n\n    crypto_auth_hmacsha512256(correct, in, inlen, k);\n\n    return crypto_verify_32(h, correct) | (-(h == correct)) |\n           sodium_memcmp(correct, h, 32);\n}\n"
  },
  {
    "path": "src/libsodium/crypto_box/crypto_box.c",
    "content": "\n#include \"crypto_box.h\"\n\nsize_t\ncrypto_box_seedbytes(void)\n{\n    return crypto_box_SEEDBYTES;\n}\n\nsize_t\ncrypto_box_publickeybytes(void)\n{\n    return crypto_box_PUBLICKEYBYTES;\n}\n\nsize_t\ncrypto_box_secretkeybytes(void)\n{\n    return crypto_box_SECRETKEYBYTES;\n}\n\nsize_t\ncrypto_box_beforenmbytes(void)\n{\n    return crypto_box_BEFORENMBYTES;\n}\n\nsize_t\ncrypto_box_noncebytes(void)\n{\n    return crypto_box_NONCEBYTES;\n}\n\nsize_t\ncrypto_box_zerobytes(void)\n{\n    return crypto_box_ZEROBYTES;\n}\n\nsize_t\ncrypto_box_boxzerobytes(void)\n{\n    return crypto_box_BOXZEROBYTES;\n}\n\nsize_t\ncrypto_box_macbytes(void)\n{\n    return crypto_box_MACBYTES;\n}\n\nsize_t\ncrypto_box_messagebytes_max(void)\n{\n    return crypto_box_MESSAGEBYTES_MAX;\n}\n\nconst char *\ncrypto_box_primitive(void)\n{\n    return crypto_box_PRIMITIVE;\n}\n\nint\ncrypto_box_seed_keypair(unsigned char *pk, unsigned char *sk,\n                        const unsigned char *seed)\n{\n    return crypto_box_curve25519xsalsa20poly1305_seed_keypair(pk, sk, seed);\n}\n\nint\ncrypto_box_keypair(unsigned char *pk, unsigned char *sk)\n{\n    return crypto_box_curve25519xsalsa20poly1305_keypair(pk, sk);\n}\n\nint\ncrypto_box_beforenm(unsigned char *k, const unsigned char *pk,\n                    const unsigned char *sk)\n{\n    return crypto_box_curve25519xsalsa20poly1305_beforenm(k, pk, sk);\n}\n\nint\ncrypto_box_afternm(unsigned char *c, const unsigned char *m,\n                   unsigned long long mlen, const unsigned char *n,\n                   const unsigned char *k)\n{\n    return crypto_box_curve25519xsalsa20poly1305_afternm(c, m, mlen, n, k);\n}\n\nint\ncrypto_box_open_afternm(unsigned char *m, const unsigned char *c,\n                        unsigned long long clen, const unsigned char *n,\n                        const unsigned char *k)\n{\n    return crypto_box_curve25519xsalsa20poly1305_open_afternm(m, c, clen, n, k);\n}\n\nint\ncrypto_box(unsigned char *c, const unsigned char *m,\n           unsigned long long mlen, const unsigned char *n,\n           const unsigned char *pk, const unsigned char *sk)\n{\n    return crypto_box_curve25519xsalsa20poly1305(c, m, mlen, n, pk, sk);\n}\n\nint\ncrypto_box_open(unsigned char *m, const unsigned char *c,\n                unsigned long long clen, const unsigned char *n,\n                const unsigned char *pk, const unsigned char *sk)\n{\n    return crypto_box_curve25519xsalsa20poly1305_open(m, c, clen, n, pk, sk);\n}\n"
  },
  {
    "path": "src/libsodium/crypto_box/crypto_box_easy.c",
    "content": "\n#include <limits.h>\n#include <stdint.h>\n#include <stdlib.h>\n\n#include \"core.h\"\n#include \"crypto_box.h\"\n#include \"crypto_secretbox.h\"\n#include \"private/common.h\"\n#include \"utils.h\"\n\nint\ncrypto_box_detached_afternm(unsigned char *c, unsigned char *mac,\n                            const unsigned char *m, unsigned long long mlen,\n                            const unsigned char *n, const unsigned char *k)\n{\n    return crypto_secretbox_detached(c, mac, m, mlen, n, k);\n}\n\nint\ncrypto_box_detached(unsigned char *c, unsigned char *mac,\n                    const unsigned char *m, unsigned long long mlen,\n                    const unsigned char *n, const unsigned char *pk,\n                    const unsigned char *sk)\n{\n    unsigned char k[crypto_box_BEFORENMBYTES];\n    int           ret;\n\n    COMPILER_ASSERT(crypto_box_BEFORENMBYTES >= crypto_secretbox_KEYBYTES);\n    if (crypto_box_beforenm(k, pk, sk) != 0) {\n        return -1;\n    }\n    ret = crypto_box_detached_afternm(c, mac, m, mlen, n, k);\n    sodium_memzero(k, sizeof k);\n\n    return ret;\n}\n\nint\ncrypto_box_easy_afternm(unsigned char *c, const unsigned char *m,\n                        unsigned long long mlen, const unsigned char *n,\n                        const unsigned char *k)\n{\n    if (mlen > crypto_box_MESSAGEBYTES_MAX) {\n        sodium_misuse(); /* LCOV_EXCL_LINE */\n    }\n    return crypto_box_detached_afternm(c + crypto_box_MACBYTES, c, m, mlen, n,\n                                       k);\n}\n\nint\ncrypto_box_easy(unsigned char *c, const unsigned char *m,\n                unsigned long long mlen, const unsigned char *n,\n                const unsigned char *pk, const unsigned char *sk)\n{\n    if (mlen > crypto_box_MESSAGEBYTES_MAX) {\n        sodium_misuse(); /* LCOV_EXCL_LINE */\n    }\n    return crypto_box_detached(c + crypto_box_MACBYTES, c, m, mlen, n,\n                               pk, sk);\n}\n\nint\ncrypto_box_open_detached_afternm(unsigned char *m, const unsigned char *c,\n                                 const unsigned char *mac,\n                                 unsigned long long clen,\n                                 const unsigned char *n,\n                                 const unsigned char *k)\n{\n    return crypto_secretbox_open_detached(m, c, mac, clen, n, k);\n}\n\nint\ncrypto_box_open_detached(unsigned char *m, const unsigned char *c,\n                         const unsigned char *mac,\n                         unsigned long long clen, const unsigned char *n,\n                         const unsigned char *pk, const unsigned char *sk)\n{\n    unsigned char k[crypto_box_BEFORENMBYTES];\n    int           ret;\n\n    if (crypto_box_beforenm(k, pk, sk) != 0) {\n        return -1;\n    }\n    ret = crypto_box_open_detached_afternm(m, c, mac, clen, n, k);\n    sodium_memzero(k, sizeof k);\n\n    return ret;\n}\n\nint\ncrypto_box_open_easy_afternm(unsigned char *m, const unsigned char *c,\n                             unsigned long long clen, const unsigned char *n,\n                             const unsigned char *k)\n{\n    if (clen < crypto_box_MACBYTES) {\n        return -1;\n    }\n    return crypto_box_open_detached_afternm(m, c + crypto_box_MACBYTES, c,\n                                            clen - crypto_box_MACBYTES,\n                                            n, k);\n}\n\nint\ncrypto_box_open_easy(unsigned char *m, const unsigned char *c,\n                     unsigned long long clen, const unsigned char *n,\n                     const unsigned char *pk, const unsigned char *sk)\n{\n    if (clen < crypto_box_MACBYTES) {\n        return -1;\n    }\n    return crypto_box_open_detached(m, c + crypto_box_MACBYTES, c,\n                                    clen - crypto_box_MACBYTES,\n                                    n, pk, sk);\n}\n"
  },
  {
    "path": "src/libsodium/crypto_box/crypto_box_seal.c",
    "content": "\n#include <string.h>\n\n#include \"crypto_box.h\"\n#include \"crypto_generichash.h\"\n#include \"private/common.h\"\n#include \"utils.h\"\n\nstatic int\n_crypto_box_seal_nonce(unsigned char *nonce,\n                       const unsigned char *pk1, const unsigned char *pk2)\n{\n    crypto_generichash_state st;\n\n    crypto_generichash_init(&st, NULL, 0U, crypto_box_NONCEBYTES);\n    crypto_generichash_update(&st, pk1, crypto_box_PUBLICKEYBYTES);\n    crypto_generichash_update(&st, pk2, crypto_box_PUBLICKEYBYTES);\n    crypto_generichash_final(&st, nonce, crypto_box_NONCEBYTES);\n\n    return 0;\n}\n\nint\ncrypto_box_seal(unsigned char *c, const unsigned char *m,\n                unsigned long long mlen, const unsigned char *pk)\n{\n    unsigned char nonce[crypto_box_NONCEBYTES];\n    unsigned char epk[crypto_box_PUBLICKEYBYTES];\n    unsigned char esk[crypto_box_SECRETKEYBYTES];\n    int           ret;\n\n    if (crypto_box_keypair(epk, esk) != 0) {\n        return -1; /* LCOV_EXCL_LINE */\n    }\n    _crypto_box_seal_nonce(nonce, epk, pk);\n    ret = crypto_box_easy(c + crypto_box_PUBLICKEYBYTES, m, mlen,\n                          nonce, pk, esk);\n    memcpy(c, epk, crypto_box_PUBLICKEYBYTES);\n    sodium_memzero(esk, sizeof esk);\n\n    return ret;\n}\n\nint\ncrypto_box_seal_open(unsigned char *m, const unsigned char *c,\n                     unsigned long long clen,\n                     const unsigned char *pk, const unsigned char *sk)\n{\n    unsigned char nonce[crypto_box_NONCEBYTES];\n\n    if (clen < crypto_box_SEALBYTES) {\n        return -1;\n    }\n    _crypto_box_seal_nonce(nonce, c, pk);\n\n    COMPILER_ASSERT(crypto_box_PUBLICKEYBYTES < crypto_box_SEALBYTES);\n    return crypto_box_open_easy(m, c + crypto_box_PUBLICKEYBYTES,\n                                clen - crypto_box_PUBLICKEYBYTES,\n                                nonce, c, sk);\n}\n\nsize_t\ncrypto_box_sealbytes(void)\n{\n    return crypto_box_SEALBYTES;\n}\n"
  },
  {
    "path": "src/libsodium/crypto_box/curve25519xchacha20poly1305/box_curve25519xchacha20poly1305.c",
    "content": "\n#include <limits.h>\n#include <stdint.h>\n#include <stdlib.h>\n#include <string.h>\n\n#include \"core.h\"\n#include \"crypto_box_curve25519xchacha20poly1305.h\"\n#include \"crypto_core_hchacha20.h\"\n#include \"crypto_hash_sha512.h\"\n#include \"crypto_scalarmult_curve25519.h\"\n#include \"crypto_secretbox_xchacha20poly1305.h\"\n#include \"private/common.h\"\n#include \"randombytes.h\"\n#include \"utils.h\"\n\nint\ncrypto_box_curve25519xchacha20poly1305_seed_keypair(unsigned char *pk,\n                                                    unsigned char *sk,\n                                                    const unsigned char *seed)\n{\n    unsigned char hash[64];\n\n    crypto_hash_sha512(hash, seed, 32);\n    memcpy(sk, hash, 32);\n    sodium_memzero(hash, sizeof hash);\n\n    return crypto_scalarmult_curve25519_base(pk, sk);\n}\n\nint\ncrypto_box_curve25519xchacha20poly1305_keypair(unsigned char *pk,\n                                               unsigned char *sk)\n{\n    randombytes_buf(sk, 32);\n\n    return crypto_scalarmult_curve25519_base(pk, sk);\n}\n\nint\ncrypto_box_curve25519xchacha20poly1305_beforenm(unsigned char *k,\n                                                const unsigned char *pk,\n                                                const unsigned char *sk)\n{\n    static const unsigned char zero[16] = { 0 };\n    unsigned char s[32];\n\n    if (crypto_scalarmult_curve25519(s, sk, pk) != 0) {\n        return -1;\n    }\n    crypto_core_hchacha20(k, zero, s, NULL);\n    sodium_memzero(s, sizeof s);\n\n    return 0;\n}\n\nint\ncrypto_box_curve25519xchacha20poly1305_detached_afternm(\n    unsigned char *c, unsigned char *mac, const unsigned char *m,\n    unsigned long long mlen, const unsigned char *n, const unsigned char *k)\n{\n    return crypto_secretbox_xchacha20poly1305_detached(c, mac, m, mlen, n, k);\n}\n\nint\ncrypto_box_curve25519xchacha20poly1305_detached(\n    unsigned char *c, unsigned char *mac, const unsigned char *m,\n    unsigned long long mlen, const unsigned char *n, const unsigned char *pk,\n    const unsigned char *sk)\n{\n    unsigned char k[crypto_box_curve25519xchacha20poly1305_BEFORENMBYTES];\n    int           ret;\n\n    COMPILER_ASSERT(crypto_box_curve25519xchacha20poly1305_BEFORENMBYTES >=\n                    crypto_secretbox_xchacha20poly1305_KEYBYTES);\n    if (crypto_box_curve25519xchacha20poly1305_beforenm(k, pk, sk) != 0) {\n        return -1;\n    }\n    ret = crypto_box_curve25519xchacha20poly1305_detached_afternm(c, mac, m,\n                                                                  mlen, n, k);\n    sodium_memzero(k, sizeof k);\n\n    return ret;\n}\n\nint\ncrypto_box_curve25519xchacha20poly1305_easy_afternm(unsigned char *c,\n                                                    const unsigned char *m,\n                                                    unsigned long long mlen,\n                                                    const unsigned char *n,\n                                                    const unsigned char *k)\n{\n    if (mlen > crypto_box_curve25519xchacha20poly1305_MESSAGEBYTES_MAX) {\n        sodium_misuse(); /* LCOV_EXCL_LINE */\n    }\n    return crypto_box_curve25519xchacha20poly1305_detached_afternm(\n        c + crypto_box_curve25519xchacha20poly1305_MACBYTES, c, m, mlen, n, k);\n}\n\nint\ncrypto_box_curve25519xchacha20poly1305_easy(\n    unsigned char *c, const unsigned char *m, unsigned long long mlen,\n    const unsigned char *n, const unsigned char *pk, const unsigned char *sk)\n{\n    if (mlen > crypto_box_curve25519xchacha20poly1305_MESSAGEBYTES_MAX) {\n        sodium_misuse(); /* LCOV_EXCL_LINE */\n    }\n    return crypto_box_curve25519xchacha20poly1305_detached(\n        c + crypto_box_curve25519xchacha20poly1305_MACBYTES, c, m, mlen, n, pk,\n        sk);\n}\n\nint\ncrypto_box_curve25519xchacha20poly1305_open_detached_afternm(\n    unsigned char *m, const unsigned char *c, const unsigned char *mac,\n    unsigned long long clen, const unsigned char *n, const unsigned char *k)\n{\n    return crypto_secretbox_xchacha20poly1305_open_detached(m, c, mac, clen, n,\n                                                            k);\n}\n\nint\ncrypto_box_curve25519xchacha20poly1305_open_detached(\n    unsigned char *m, const unsigned char *c, const unsigned char *mac,\n    unsigned long long clen, const unsigned char *n, const unsigned char *pk,\n    const unsigned char *sk)\n{\n    unsigned char k[crypto_box_curve25519xchacha20poly1305_BEFORENMBYTES];\n    int           ret;\n\n    if (crypto_box_curve25519xchacha20poly1305_beforenm(k, pk, sk) != 0) {\n        return -1;\n    }\n    ret = crypto_box_curve25519xchacha20poly1305_open_detached_afternm(\n        m, c, mac, clen, n, k);\n    sodium_memzero(k, sizeof k);\n\n    return ret;\n}\n\nint\ncrypto_box_curve25519xchacha20poly1305_open_easy_afternm(\n    unsigned char *m, const unsigned char *c, unsigned long long clen,\n    const unsigned char *n, const unsigned char *k)\n{\n    if (clen < crypto_box_curve25519xchacha20poly1305_MACBYTES) {\n        return -1;\n    }\n    return crypto_box_curve25519xchacha20poly1305_open_detached_afternm(\n        m, c + crypto_box_curve25519xchacha20poly1305_MACBYTES, c,\n        clen - crypto_box_curve25519xchacha20poly1305_MACBYTES, n, k);\n}\n\nint\ncrypto_box_curve25519xchacha20poly1305_open_easy(\n    unsigned char *m, const unsigned char *c, unsigned long long clen,\n    const unsigned char *n, const unsigned char *pk, const unsigned char *sk)\n{\n    if (clen < crypto_box_curve25519xchacha20poly1305_MACBYTES) {\n        return -1;\n    }\n    return crypto_box_curve25519xchacha20poly1305_open_detached(\n        m, c + crypto_box_curve25519xchacha20poly1305_MACBYTES, c,\n        clen - crypto_box_curve25519xchacha20poly1305_MACBYTES, n, pk, sk);\n}\n\nsize_t\ncrypto_box_curve25519xchacha20poly1305_seedbytes(void)\n{\n    return crypto_box_curve25519xchacha20poly1305_SEEDBYTES;\n}\n\nsize_t\ncrypto_box_curve25519xchacha20poly1305_publickeybytes(void)\n{\n    return crypto_box_curve25519xchacha20poly1305_PUBLICKEYBYTES;\n}\n\nsize_t\ncrypto_box_curve25519xchacha20poly1305_secretkeybytes(void)\n{\n    return crypto_box_curve25519xchacha20poly1305_SECRETKEYBYTES;\n}\n\nsize_t\ncrypto_box_curve25519xchacha20poly1305_beforenmbytes(void)\n{\n    return crypto_box_curve25519xchacha20poly1305_BEFORENMBYTES;\n}\n\nsize_t\ncrypto_box_curve25519xchacha20poly1305_noncebytes(void)\n{\n    return crypto_box_curve25519xchacha20poly1305_NONCEBYTES;\n}\n\nsize_t\ncrypto_box_curve25519xchacha20poly1305_macbytes(void)\n{\n    return crypto_box_curve25519xchacha20poly1305_MACBYTES;\n}\n\nsize_t\ncrypto_box_curve25519xchacha20poly1305_messagebytes_max(void)\n{\n    return crypto_box_curve25519xchacha20poly1305_MESSAGEBYTES_MAX;\n}\n"
  },
  {
    "path": "src/libsodium/crypto_box/curve25519xchacha20poly1305/box_seal_curve25519xchacha20poly1305.c",
    "content": "\n#include <string.h>\n\n#include \"crypto_box_curve25519xchacha20poly1305.h\"\n#include \"crypto_generichash.h\"\n#include \"private/common.h\"\n#include \"utils.h\"\n\nstatic int\n_crypto_box_curve25519xchacha20poly1305_seal_nonce(unsigned char *nonce,\n                                                   const unsigned char *pk1,\n                                                   const unsigned char *pk2)\n{\n    crypto_generichash_state st;\n\n    crypto_generichash_init(&st, NULL, 0U,\n                            crypto_box_curve25519xchacha20poly1305_NONCEBYTES);\n    crypto_generichash_update(&st, pk1,\n                              crypto_box_curve25519xchacha20poly1305_PUBLICKEYBYTES);\n    crypto_generichash_update(&st, pk2,\n                              crypto_box_curve25519xchacha20poly1305_PUBLICKEYBYTES);\n    crypto_generichash_final(&st, nonce,\n                             crypto_box_curve25519xchacha20poly1305_NONCEBYTES);\n\n    return 0;\n}\n\nint\ncrypto_box_curve25519xchacha20poly1305_seal(unsigned char *c, const unsigned char *m,\n                                            unsigned long long mlen,\n                                            const unsigned char *pk)\n{\n    unsigned char nonce[crypto_box_curve25519xchacha20poly1305_NONCEBYTES];\n    unsigned char epk[crypto_box_curve25519xchacha20poly1305_PUBLICKEYBYTES];\n    unsigned char esk[crypto_box_curve25519xchacha20poly1305_SECRETKEYBYTES];\n    int           ret;\n\n    if (crypto_box_curve25519xchacha20poly1305_keypair(epk, esk) != 0) {\n        return -1; /* LCOV_EXCL_LINE */\n    }\n    _crypto_box_curve25519xchacha20poly1305_seal_nonce(nonce, epk, pk);\n    ret = crypto_box_curve25519xchacha20poly1305_easy(\n         c + crypto_box_curve25519xchacha20poly1305_PUBLICKEYBYTES, m, mlen,\n         nonce, pk, esk);\n    memcpy(c, epk, crypto_box_curve25519xchacha20poly1305_PUBLICKEYBYTES);\n    sodium_memzero(esk, sizeof esk);\n\n    return ret;\n}\n\nint\ncrypto_box_curve25519xchacha20poly1305_seal_open(unsigned char *m, const unsigned char *c,\n                                                 unsigned long long clen,\n                                                 const unsigned char *pk,\n                                                 const unsigned char *sk)\n{\n    unsigned char nonce[crypto_box_curve25519xchacha20poly1305_NONCEBYTES];\n\n    if (clen < crypto_box_curve25519xchacha20poly1305_SEALBYTES) {\n        return -1;\n    }\n    _crypto_box_curve25519xchacha20poly1305_seal_nonce(nonce, c, pk);\n\n    COMPILER_ASSERT(crypto_box_curve25519xchacha20poly1305_PUBLICKEYBYTES <\n                    crypto_box_curve25519xchacha20poly1305_SEALBYTES);\n\n    return crypto_box_curve25519xchacha20poly1305_open_easy(\n         m, c + crypto_box_curve25519xchacha20poly1305_PUBLICKEYBYTES,\n         clen - crypto_box_curve25519xchacha20poly1305_PUBLICKEYBYTES,\n         nonce, c, sk);\n}\n\nsize_t\ncrypto_box_curve25519xchacha20poly1305_sealbytes(void)\n{\n    return crypto_box_curve25519xchacha20poly1305_SEALBYTES;\n}\n"
  },
  {
    "path": "src/libsodium/crypto_box/curve25519xsalsa20poly1305/box_curve25519xsalsa20poly1305.c",
    "content": "#include <string.h>\n\n#include \"crypto_box_curve25519xsalsa20poly1305.h\"\n#include \"crypto_core_hsalsa20.h\"\n#include \"crypto_hash_sha512.h\"\n#include \"crypto_scalarmult_curve25519.h\"\n#include \"crypto_secretbox_xsalsa20poly1305.h\"\n#include \"randombytes.h\"\n#include \"utils.h\"\n\nint\ncrypto_box_curve25519xsalsa20poly1305_seed_keypair(unsigned char *pk,\n                                                   unsigned char *sk,\n                                                   const unsigned char *seed)\n{\n    unsigned char hash[64];\n\n    crypto_hash_sha512(hash, seed, 32);\n    memcpy(sk, hash, 32);\n    sodium_memzero(hash, sizeof hash);\n\n    return crypto_scalarmult_curve25519_base(pk, sk);\n}\n\nint\ncrypto_box_curve25519xsalsa20poly1305_keypair(unsigned char *pk,\n                                              unsigned char *sk)\n{\n    randombytes_buf(sk, 32);\n\n    return crypto_scalarmult_curve25519_base(pk, sk);\n}\n\nint\ncrypto_box_curve25519xsalsa20poly1305_beforenm(unsigned char *k,\n                                               const unsigned char *pk,\n                                               const unsigned char *sk)\n{\n    static const unsigned char zero[16] = { 0 };\n    unsigned char s[32];\n\n    if (crypto_scalarmult_curve25519(s, sk, pk) != 0) {\n        return -1;\n    }\n    crypto_core_hsalsa20(k, zero, s, NULL);\n    sodium_memzero(s, sizeof s);\n\n    return 0;\n}\n\nint\ncrypto_box_curve25519xsalsa20poly1305_afternm(unsigned char *c,\n                                              const unsigned char *m,\n                                              unsigned long long mlen,\n                                              const unsigned char *n,\n                                              const unsigned char *k)\n{\n    return crypto_secretbox_xsalsa20poly1305(c, m, mlen, n, k);\n}\n\nint\ncrypto_box_curve25519xsalsa20poly1305_open_afternm(unsigned char *m,\n                                                   const unsigned char *c,\n                                                   unsigned long long clen,\n                                                   const unsigned char *n,\n                                                   const unsigned char *k)\n{\n    return crypto_secretbox_xsalsa20poly1305_open(m, c, clen, n, k);\n}\n\nint\ncrypto_box_curve25519xsalsa20poly1305(unsigned char *c, const unsigned char *m,\n                                      unsigned long long   mlen,\n                                      const unsigned char *n,\n                                      const unsigned char *pk,\n                                      const unsigned char *sk)\n{\n    unsigned char k[crypto_box_curve25519xsalsa20poly1305_BEFORENMBYTES];\n    int           ret;\n\n    if (crypto_box_curve25519xsalsa20poly1305_beforenm(k, pk, sk) != 0) {\n        return -1;\n    }\n    ret = crypto_box_curve25519xsalsa20poly1305_afternm(c, m, mlen, n, k);\n    sodium_memzero(k, sizeof k);\n\n    return ret;\n}\n\nint\ncrypto_box_curve25519xsalsa20poly1305_open(\n    unsigned char *m, const unsigned char *c, unsigned long long clen,\n    const unsigned char *n, const unsigned char *pk, const unsigned char *sk)\n{\n    unsigned char k[crypto_box_curve25519xsalsa20poly1305_BEFORENMBYTES];\n    int           ret;\n\n    if (crypto_box_curve25519xsalsa20poly1305_beforenm(k, pk, sk) != 0) {\n        return -1;\n    }\n    ret = crypto_box_curve25519xsalsa20poly1305_open_afternm(m, c, clen, n, k);\n    sodium_memzero(k, sizeof k);\n\n    return ret;\n}\n\nsize_t\ncrypto_box_curve25519xsalsa20poly1305_seedbytes(void)\n{\n    return crypto_box_curve25519xsalsa20poly1305_SEEDBYTES;\n}\n\nsize_t\ncrypto_box_curve25519xsalsa20poly1305_publickeybytes(void)\n{\n    return crypto_box_curve25519xsalsa20poly1305_PUBLICKEYBYTES;\n}\n\nsize_t\ncrypto_box_curve25519xsalsa20poly1305_secretkeybytes(void)\n{\n    return crypto_box_curve25519xsalsa20poly1305_SECRETKEYBYTES;\n}\n\nsize_t\ncrypto_box_curve25519xsalsa20poly1305_beforenmbytes(void)\n{\n    return crypto_box_curve25519xsalsa20poly1305_BEFORENMBYTES;\n}\n\nsize_t\ncrypto_box_curve25519xsalsa20poly1305_noncebytes(void)\n{\n    return crypto_box_curve25519xsalsa20poly1305_NONCEBYTES;\n}\n\nsize_t\ncrypto_box_curve25519xsalsa20poly1305_zerobytes(void)\n{\n    return crypto_box_curve25519xsalsa20poly1305_ZEROBYTES;\n}\n\nsize_t\ncrypto_box_curve25519xsalsa20poly1305_boxzerobytes(void)\n{\n    return crypto_box_curve25519xsalsa20poly1305_BOXZEROBYTES;\n}\n\nsize_t\ncrypto_box_curve25519xsalsa20poly1305_macbytes(void)\n{\n    return crypto_box_curve25519xsalsa20poly1305_MACBYTES;\n}\n\nsize_t\ncrypto_box_curve25519xsalsa20poly1305_messagebytes_max(void)\n{\n    return crypto_box_curve25519xsalsa20poly1305_MESSAGEBYTES_MAX;\n}\n"
  },
  {
    "path": "src/libsodium/crypto_core/ed25519/core_ed25519.c",
    "content": "#include <stdint.h>\n#include <stdlib.h>\n#include <string.h>\n\n#include \"core_h2c.h\"\n#include \"crypto_core_ed25519.h\"\n#include \"crypto_hash_sha512.h\"\n#include \"private/common.h\"\n#include \"private/ed25519_ref10.h\"\n#include \"randombytes.h\"\n#include \"utils.h\"\n\nint\ncrypto_core_ed25519_is_valid_point(const unsigned char *p)\n{\n    ge25519_p3 p_p3;\n\n    if (ge25519_is_canonical(p) == 0 ||\n        ge25519_frombytes(&p_p3, p) != 0 ||\n        ge25519_is_on_curve(&p_p3) == 0 ||\n        ge25519_has_small_order(&p_p3) != 0 ||\n        ge25519_is_on_main_subgroup(&p_p3) == 0) {\n        return 0;\n    }\n    return 1;\n}\n\nint\ncrypto_core_ed25519_add(unsigned char *r,\n                        const unsigned char *p, const unsigned char *q)\n{\n    ge25519_p3     p_p3, q_p3, r_p3;\n\n    if (ge25519_frombytes(&p_p3, p) != 0 || ge25519_is_on_curve(&p_p3) == 0 ||\n        ge25519_frombytes(&q_p3, q) != 0 || ge25519_is_on_curve(&q_p3) == 0) {\n        return -1;\n    }\n    ge25519_p3_add(&r_p3, &p_p3, &q_p3);\n    ge25519_p3_tobytes(r, &r_p3);\n\n    return 0;\n}\n\nint\ncrypto_core_ed25519_sub(unsigned char *r,\n                        const unsigned char *p, const unsigned char *q)\n{\n    ge25519_p3     p_p3, q_p3, r_p3;\n\n    if (ge25519_frombytes(&p_p3, p) != 0 || ge25519_is_on_curve(&p_p3) == 0 ||\n        ge25519_frombytes(&q_p3, q) != 0 || ge25519_is_on_curve(&q_p3) == 0) {\n        return -1;\n    }\n    ge25519_p3_sub(&r_p3, &p_p3, &q_p3);\n    ge25519_p3_tobytes(r, &r_p3);\n\n    return 0;\n}\n\n#define HASH_GE_L 48U\n\nstatic int\n_string_to_points(unsigned char * const px, const size_t n,\n                  const unsigned char *ctx, size_t ctx_len,\n                  const unsigned char *msg, size_t msg_len,\n                  int hash_alg)\n{\n    unsigned char h[crypto_core_ed25519_HASHBYTES];\n    unsigned char h_be[2U * HASH_GE_L];\n    size_t        i, j;\n\n    if (n > 2U) {\n        abort(); /* LCOV_EXCL_LINE */\n    }\n    if (core_h2c_string_to_hash(h_be, n * HASH_GE_L, ctx, ctx_len, msg, msg_len,\n                                hash_alg) != 0) {\n        return -1; /* LCOV_EXCL_LINE */\n    }\n    COMPILER_ASSERT(sizeof h >= HASH_GE_L);\n    for (i = 0U; i < n; i++) {\n        for (j = 0U; j < HASH_GE_L; j++) {\n            h[j] = h_be[i * HASH_GE_L + HASH_GE_L - 1U - j];\n        }\n        memset(&h[j], 0, (sizeof h) - j);\n        ge25519_from_hash(&px[i * crypto_core_ed25519_BYTES], h);\n    }\n    return 0;\n}\n\n/* LCOV_EXCL_START */\nint\ncrypto_core_ed25519_from_string_nu(unsigned char p[crypto_core_ed25519_BYTES],\n                                   const unsigned char *ctx, size_t ctx_len,\n                                   const unsigned char *msg, size_t msg_len,\n                                   int hash_alg)\n{\n    return _string_to_points(p, 1, ctx, ctx_len, msg, msg_len, hash_alg);\n}\n\nint\ncrypto_core_ed25519_from_string(unsigned char p[crypto_core_ed25519_BYTES],\n                                   const unsigned char *ctx, size_t ctx_len,\n                                   const unsigned char *msg, size_t msg_len,\n                                   int hash_alg)\n{\n    unsigned char px[2 * crypto_core_ed25519_BYTES];\n\n    if (_string_to_points(px, 2, ctx, ctx_len, msg, msg_len, hash_alg) != 0) {\n        return -1;\n    }\n    return crypto_core_ed25519_add(p, &px[0], &px[crypto_core_ed25519_BYTES]);\n}\n/* LCOV_EXCL_STOP */\n\nvoid\ncrypto_core_ed25519_random(unsigned char *p)\n{\n    unsigned char h[crypto_core_ed25519_UNIFORMBYTES];\n\n    randombytes_buf(h, sizeof h);\n    ge25519_from_uniform(p, h);\n}\n\nvoid\ncrypto_core_ed25519_scalar_random(unsigned char *r)\n{\n    do {\n        randombytes_buf(r, crypto_core_ed25519_SCALARBYTES);\n        r[crypto_core_ed25519_SCALARBYTES - 1] &= 0x1f;\n    } while (sc25519_is_canonical(r) == 0 ||\n             sodium_is_zero(r, crypto_core_ed25519_SCALARBYTES));\n}\n\nint\ncrypto_core_ed25519_scalar_invert(unsigned char *recip, const unsigned char *s)\n{\n    sc25519_invert(recip, s);\n\n    return - sodium_is_zero(s, crypto_core_ed25519_SCALARBYTES);\n}\n\n/* 2^252+27742317777372353535851937790883648493 */\nstatic const unsigned char L[] = {\n    0xed, 0xd3, 0xf5, 0x5c, 0x1a, 0x63, 0x12, 0x58, 0xd6, 0x9c, 0xf7,\n    0xa2, 0xde, 0xf9, 0xde, 0x14, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10\n};\n\nvoid\ncrypto_core_ed25519_scalar_negate(unsigned char *neg, const unsigned char *s)\n{\n    unsigned char t_[crypto_core_ed25519_NONREDUCEDSCALARBYTES];\n    unsigned char s_[crypto_core_ed25519_NONREDUCEDSCALARBYTES];\n\n    COMPILER_ASSERT(crypto_core_ed25519_NONREDUCEDSCALARBYTES >=\n                    2 * crypto_core_ed25519_SCALARBYTES);\n    memset(t_, 0, sizeof t_);\n    memset(s_, 0, sizeof s_);\n    memcpy(t_ + crypto_core_ed25519_SCALARBYTES, L,\n           crypto_core_ed25519_SCALARBYTES);\n    memcpy(s_, s, crypto_core_ed25519_SCALARBYTES);\n    sodium_sub(t_, s_, sizeof t_);\n    sc25519_reduce(t_);\n    memcpy(neg, t_, crypto_core_ed25519_SCALARBYTES);\n}\n\nvoid\ncrypto_core_ed25519_scalar_complement(unsigned char *comp,\n                                      const unsigned char *s)\n{\n    unsigned char t_[crypto_core_ed25519_NONREDUCEDSCALARBYTES];\n    unsigned char s_[crypto_core_ed25519_NONREDUCEDSCALARBYTES];\n\n    COMPILER_ASSERT(crypto_core_ed25519_NONREDUCEDSCALARBYTES >=\n                    2 * crypto_core_ed25519_SCALARBYTES);\n    memset(t_, 0, sizeof t_);\n    memset(s_, 0, sizeof s_);\n    t_[0]++;\n    memcpy(t_ + crypto_core_ed25519_SCALARBYTES, L,\n           crypto_core_ed25519_SCALARBYTES);\n    memcpy(s_, s, crypto_core_ed25519_SCALARBYTES);\n    sodium_sub(t_, s_, sizeof t_);\n    sc25519_reduce(t_);\n    memcpy(comp, t_, crypto_core_ed25519_SCALARBYTES);\n}\n\nvoid\ncrypto_core_ed25519_scalar_add(unsigned char *z, const unsigned char *x,\n                               const unsigned char *y)\n{\n    unsigned char x_[crypto_core_ed25519_NONREDUCEDSCALARBYTES];\n    unsigned char y_[crypto_core_ed25519_NONREDUCEDSCALARBYTES];\n\n    memset(x_, 0, sizeof x_);\n    memset(y_, 0, sizeof y_);\n    memcpy(x_, x, crypto_core_ed25519_SCALARBYTES);\n    memcpy(y_, y, crypto_core_ed25519_SCALARBYTES);\n    sodium_add(x_, y_, crypto_core_ed25519_SCALARBYTES);\n    crypto_core_ed25519_scalar_reduce(z, x_);\n}\n\nvoid\ncrypto_core_ed25519_scalar_sub(unsigned char *z, const unsigned char *x,\n                               const unsigned char *y)\n{\n    unsigned char yn[crypto_core_ed25519_SCALARBYTES];\n\n    crypto_core_ed25519_scalar_negate(yn, y);\n    crypto_core_ed25519_scalar_add(z, x, yn);\n}\n\nvoid\ncrypto_core_ed25519_scalar_mul(unsigned char *z, const unsigned char *x,\n                               const unsigned char *y)\n{\n    sc25519_mul(z, x, y);\n}\n\nvoid\ncrypto_core_ed25519_scalar_reduce(unsigned char *r,\n                                  const unsigned char *s)\n{\n    unsigned char t[crypto_core_ed25519_NONREDUCEDSCALARBYTES];\n\n    memcpy(t, s, sizeof t);\n    sc25519_reduce(t);\n    memcpy(r, t, crypto_core_ed25519_SCALARBYTES);\n    sodium_memzero(t, sizeof t);\n}\n\nint\ncrypto_core_ed25519_scalar_is_canonical(const unsigned char *s)\n{\n    return sc25519_is_canonical(s);\n}\n\n#define HASH_SC_L 48U\n\nint\ncrypto_core_ed25519_scalar_from_string(unsigned char *s,\n                                       const unsigned char *ctx, size_t ctx_len,\n                                       const unsigned char *msg, size_t msg_len,\n                                       int hash_alg)\n{\n    unsigned char h[crypto_core_ed25519_NONREDUCEDSCALARBYTES];\n    unsigned char h_be[HASH_SC_L];\n    size_t        i;\n\n    if (core_h2c_string_to_hash(h_be, sizeof h_be, ctx, ctx_len, msg, msg_len,\n                                hash_alg) != 0) {\n        return -1;\n    }\n    COMPILER_ASSERT(sizeof h >= sizeof h_be);\n    for (i = 0U; i < HASH_SC_L; i++) {\n        h[i] = h_be[HASH_SC_L - 1U - i];\n    }\n    memset(&h[i], 0, (sizeof h) - i);\n    crypto_core_ed25519_scalar_reduce(s, h);\n\n    return 0;\n}\n\nsize_t\ncrypto_core_ed25519_bytes(void)\n{\n    return crypto_core_ed25519_BYTES;\n}\n\nsize_t\ncrypto_core_ed25519_nonreducedscalarbytes(void)\n{\n    return crypto_core_ed25519_NONREDUCEDSCALARBYTES;\n}\n\nsize_t\ncrypto_core_ed25519_uniformbytes(void)\n{\n    return crypto_core_ed25519_UNIFORMBYTES;\n}\n\nsize_t\ncrypto_core_ed25519_hashbytes(void)\n{\n    return crypto_core_ed25519_HASHBYTES;\n}\n\nsize_t\ncrypto_core_ed25519_scalarbytes(void)\n{\n    return crypto_core_ed25519_SCALARBYTES;\n}\n"
  },
  {
    "path": "src/libsodium/crypto_core/ed25519/core_h2c.c",
    "content": "#include <assert.h>\n#include <errno.h>\n#include <stdlib.h>\n\n#include \"core_h2c.h\"\n#include \"crypto_hash_sha256.h\"\n#include \"crypto_hash_sha512.h\"\n#include \"private/common.h\"\n\n#define HASH_BYTES      crypto_hash_sha256_BYTES\n#define HASH_BLOCKBYTES 64U\n\nstatic int\ncore_h2c_string_to_hash_sha256(unsigned char *h, const size_t h_len,\n                               const unsigned char *ctx, size_t ctx_len,\n                               const unsigned char *msg, size_t msg_len)\n{\n    crypto_hash_sha256_state st;\n    const unsigned char      empty_block[HASH_BLOCKBYTES] = { 0 };\n    unsigned char            u0[HASH_BYTES];\n    unsigned char            ux[HASH_BYTES] = { 0 };\n    unsigned char            t[3] = { 0U, (unsigned char) h_len, 0U};\n    unsigned char            ctx_len_u8;\n    size_t                   i, j;\n\n    assert(h_len <= 0xff);\n    if (ctx_len > (size_t) 0xff) {\n        crypto_hash_sha256_init(&st);\n        crypto_hash_sha256_update(&st,\n                                  (const unsigned char *) \"H2C-OVERSIZE-DST-\",\n                                  sizeof \"H2C-OVERSIZE-DST-\" - 1U);\n        crypto_hash_sha256_update(&st, ctx, ctx_len);\n        crypto_hash_sha256_final(&st, u0);\n        ctx = u0;\n        ctx_len = HASH_BYTES;\n        COMPILER_ASSERT(HASH_BYTES <= (size_t) 0xff);\n    }\n    ctx_len_u8 = (unsigned char) ctx_len;\n    crypto_hash_sha256_init(&st);\n    crypto_hash_sha256_update(&st, empty_block, sizeof empty_block);\n    crypto_hash_sha256_update(&st, msg, msg_len);\n    crypto_hash_sha256_update(&st, t, 3U);\n    crypto_hash_sha256_update(&st, ctx, ctx_len);\n    crypto_hash_sha256_update(&st, &ctx_len_u8, 1U);\n    crypto_hash_sha256_final(&st, u0);\n\n    for (i = 0U; i < h_len; i += HASH_BYTES) {\n        for (j = 0U; j < HASH_BYTES; j++) {\n            ux[j] ^= u0[j];\n        }\n        t[2]++;\n        crypto_hash_sha256_init(&st);\n        crypto_hash_sha256_update(&st, ux, HASH_BYTES);\n        crypto_hash_sha256_update(&st, &t[2], 1U);\n        crypto_hash_sha256_update(&st, ctx, ctx_len);\n        crypto_hash_sha256_update(&st, &ctx_len_u8, 1U);\n        crypto_hash_sha256_final(&st, ux);\n        memcpy(&h[i], ux, h_len - i >= (sizeof ux) ? (sizeof ux) : h_len - i);\n    }\n    return 0;\n}\n\n#undef  HASH_BYTES\n#undef  HASH_BLOCKBYTES\n\n#define HASH_BYTES      crypto_hash_sha512_BYTES\n#define HASH_BLOCKBYTES 128U\n\nstatic int\ncore_h2c_string_to_hash_sha512(unsigned char *h, const size_t h_len,\n                               const unsigned char *ctx, size_t ctx_len,\n                               const unsigned char *msg, size_t msg_len)\n{\n    crypto_hash_sha512_state st;\n    const unsigned char      empty_block[HASH_BLOCKBYTES] = { 0 };\n    unsigned char            u0[HASH_BYTES];\n    unsigned char            ux[HASH_BYTES] = { 0 };\n    unsigned char            t[3] = { 0U, (unsigned char) h_len, 0U};\n    unsigned char            ctx_len_u8;\n    size_t                   i, j;\n\n    assert(h_len <= 0xff);\n    if (ctx_len > (size_t) 0xff) {\n        crypto_hash_sha512_init(&st);\n        crypto_hash_sha512_update(&st,\n                                  (const unsigned char *) \"H2C-OVERSIZE-DST-\",\n                                  sizeof \"H2C-OVERSIZE-DST-\" - 1U);\n        crypto_hash_sha512_update(&st, ctx, ctx_len);\n        crypto_hash_sha512_final(&st, u0);\n        ctx = u0;\n        ctx_len = HASH_BYTES;\n        COMPILER_ASSERT(HASH_BYTES <= (size_t) 0xff);\n    }\n    ctx_len_u8 = (unsigned char) ctx_len;\n    crypto_hash_sha512_init(&st);\n    crypto_hash_sha512_update(&st, empty_block, sizeof empty_block);\n    crypto_hash_sha512_update(&st, msg, msg_len);\n    crypto_hash_sha512_update(&st, t, 3U);\n    crypto_hash_sha512_update(&st, ctx, ctx_len);\n    crypto_hash_sha512_update(&st, &ctx_len_u8, 1U);\n    crypto_hash_sha512_final(&st, u0);\n\n    for (i = 0U; i < h_len; i += HASH_BYTES) {\n        for (j = 0U; j < HASH_BYTES; j++) {\n            ux[j] ^= u0[j];\n        }\n        t[2]++;\n        crypto_hash_sha512_init(&st);\n        crypto_hash_sha512_update(&st, ux, HASH_BYTES);\n        crypto_hash_sha512_update(&st, &t[2], 1U);\n        crypto_hash_sha512_update(&st, ctx, ctx_len);\n        crypto_hash_sha512_update(&st, &ctx_len_u8, 1U);\n        crypto_hash_sha512_final(&st, ux);\n        memcpy(&h[i], ux, h_len - i >= (sizeof ux) ? (sizeof ux) : h_len - i);\n    }\n    return 0;\n}\n\nint\ncore_h2c_string_to_hash(unsigned char *h, const size_t h_len,\n                        const unsigned char *ctx, size_t ctx_len,\n                        const unsigned char *msg, size_t msg_len, int hash_alg)\n{\n    switch (hash_alg) {\n    case CORE_H2C_SHA256:\n        return core_h2c_string_to_hash_sha256(h, h_len, ctx, ctx_len, msg, msg_len);\n    case CORE_H2C_SHA512:\n        return core_h2c_string_to_hash_sha512(h, h_len, ctx, ctx_len, msg, msg_len);\n    default:\n        errno = EINVAL;\n        return -1;\n    }\n}\n"
  },
  {
    "path": "src/libsodium/crypto_core/ed25519/core_h2c.h",
    "content": "#ifndef core_h2c_H\n#define core_h2c_H\n\n#include \"private/quirks.h\"\n\n#define CORE_H2C_SHA256 1\n#define CORE_H2C_SHA512 2\n\nint core_h2c_string_to_hash(unsigned char *h, const size_t h_len,\n                            const unsigned char *ctx, size_t ctx_len,\n                            const unsigned char *msg, size_t msg_len,\n                            int hash_alg);\n#endif\n"
  },
  {
    "path": "src/libsodium/crypto_core/ed25519/core_ristretto255.c",
    "content": "\n#include <assert.h>\n#include <stdint.h>\n#include <string.h>\n\n#include \"core_h2c.h\"\n#include \"crypto_core_ed25519.h\"\n#include \"crypto_core_ristretto255.h\"\n#include \"crypto_hash_sha256.h\"\n#include \"private/common.h\"\n#include \"private/ed25519_ref10.h\"\n#include \"randombytes.h\"\n#include \"utils.h\"\n\nint\ncrypto_core_ristretto255_is_valid_point(const unsigned char *p)\n{\n    ge25519_p3 p_p3;\n\n    if (ristretto255_frombytes(&p_p3, p) != 0) {\n        return 0;\n    }\n    return 1;\n}\n\nint\ncrypto_core_ristretto255_add(unsigned char *r,\n                             const unsigned char *p, const unsigned char *q)\n{\n    ge25519_p3     p_p3, q_p3, r_p3;\n\n    if (ristretto255_frombytes(&p_p3, p) != 0 ||\n        ristretto255_frombytes(&q_p3, q) != 0) {\n        return -1;\n    }\n    ge25519_p3_add(&r_p3, &p_p3, &q_p3);\n    ristretto255_p3_tobytes(r, &r_p3);\n\n    return 0;\n}\n\nint\ncrypto_core_ristretto255_sub(unsigned char *r,\n                             const unsigned char *p, const unsigned char *q)\n{\n    ge25519_p3     p_p3, q_p3, r_p3;\n\n    if (ristretto255_frombytes(&p_p3, p) != 0 ||\n        ristretto255_frombytes(&q_p3, q) != 0) {\n        return -1;\n    }\n    ge25519_p3_sub(&r_p3, &p_p3, &q_p3);\n    ristretto255_p3_tobytes(r, &r_p3);\n\n    return 0;\n}\n\nint\ncrypto_core_ristretto255_from_hash(unsigned char *p, const unsigned char *r)\n{\n    ristretto255_from_hash(p, r);\n\n    return 0;\n}\n\nstatic int\n_string_to_element(unsigned char *p,\n                   const unsigned char *ctx, size_t ctx_len,\n                   const unsigned char *msg, size_t msg_len,\n                   int hash_alg)\n{\n    unsigned char h[crypto_core_ristretto255_HASHBYTES];\n\n    if (core_h2c_string_to_hash(h, sizeof h, ctx, ctx_len, msg, msg_len,\n                                hash_alg) != 0) {\n        return -1; /* LCOV_EXCL_LINE */\n    }\n    ristretto255_from_hash(p, h);\n\n    return 0;\n}\n\nint\ncrypto_core_ristretto255_from_string(unsigned char p[crypto_core_ristretto255_BYTES],\n                                        const unsigned char *ctx, size_t ctx_len,\n                                        const unsigned char *msg, size_t msg_len,\n                                        int hash_alg)\n{\n    return _string_to_element(p, ctx, ctx_len, msg, msg_len, hash_alg);\n}\n\nvoid\ncrypto_core_ristretto255_random(unsigned char *p)\n{\n    unsigned char h[crypto_core_ristretto255_HASHBYTES];\n\n    randombytes_buf(h, sizeof h);\n    (void) crypto_core_ristretto255_from_hash(p, h);\n}\n\nvoid\ncrypto_core_ristretto255_scalar_random(unsigned char *r)\n{\n    crypto_core_ed25519_scalar_random(r);\n}\n\nint\ncrypto_core_ristretto255_scalar_invert(unsigned char *recip,\n                                       const unsigned char *s)\n{\n    return crypto_core_ed25519_scalar_invert(recip, s);\n}\n\nvoid\ncrypto_core_ristretto255_scalar_negate(unsigned char *neg,\n                                       const unsigned char *s)\n{\n    crypto_core_ed25519_scalar_negate(neg, s);\n}\n\nvoid\ncrypto_core_ristretto255_scalar_complement(unsigned char *comp,\n                                           const unsigned char *s)\n{\n    crypto_core_ed25519_scalar_complement(comp, s);\n}\n\nvoid\ncrypto_core_ristretto255_scalar_add(unsigned char *z, const unsigned char *x,\n                                    const unsigned char *y)\n{\n    crypto_core_ed25519_scalar_add(z, x, y);\n}\n\nvoid\ncrypto_core_ristretto255_scalar_sub(unsigned char *z, const unsigned char *x,\n                                    const unsigned char *y)\n{\n    crypto_core_ed25519_scalar_sub(z, x, y);\n}\n\nvoid\ncrypto_core_ristretto255_scalar_mul(unsigned char *z, const unsigned char *x,\n                                    const unsigned char *y)\n{\n    sc25519_mul(z, x, y);\n}\n\nvoid\ncrypto_core_ristretto255_scalar_reduce(unsigned char *r,\n                                       const unsigned char *s)\n{\n    crypto_core_ed25519_scalar_reduce(r, s);\n}\n\nint\ncrypto_core_ristretto255_scalar_is_canonical(const unsigned char *s)\n{\n    return sc25519_is_canonical(s);\n}\n\nint\ncrypto_core_ristretto255_scalar_from_string(unsigned char *s,\n                                            const unsigned char *ctx, size_t ctx_len,\n                                            const unsigned char *msg, size_t msg_len,\n                                            int hash_alg)\n{\n    return crypto_core_ed25519_scalar_from_string(s, ctx, ctx_len, msg, msg_len,\n                                                  hash_alg);\n}\n\nsize_t\ncrypto_core_ristretto255_bytes(void)\n{\n    return crypto_core_ristretto255_BYTES;\n}\n\nsize_t\ncrypto_core_ristretto255_nonreducedscalarbytes(void)\n{\n    return crypto_core_ristretto255_NONREDUCEDSCALARBYTES;\n}\n\nsize_t\ncrypto_core_ristretto255_hashbytes(void)\n{\n    return crypto_core_ristretto255_HASHBYTES;\n}\n\nsize_t\ncrypto_core_ristretto255_scalarbytes(void)\n{\n    return crypto_core_ristretto255_SCALARBYTES;\n}\n"
  },
  {
    "path": "src/libsodium/crypto_core/ed25519/ref10/ed25519_ref10.c",
    "content": "#include <stddef.h>\n#include <stdint.h>\n#include <stdlib.h>\n#include <string.h>\n\n#include \"crypto_verify_32.h\"\n#include \"private/common.h\"\n#include \"private/ed25519_ref10.h\"\n#include \"utils.h\"\n\nstatic inline uint64_t\nload_3(const unsigned char *in)\n{\n    uint64_t result;\n\n    result = (uint64_t) in[0];\n    result |= ((uint64_t) in[1]) << 8;\n    result |= ((uint64_t) in[2]) << 16;\n\n    return result;\n}\n\nstatic inline uint64_t\nload_4(const unsigned char *in)\n{\n    uint64_t result;\n\n    result = (uint64_t) in[0];\n    result |= ((uint64_t) in[1]) << 8;\n    result |= ((uint64_t) in[2]) << 16;\n    result |= ((uint64_t) in[3]) << 24;\n\n    return result;\n}\n\n/*\n * Field arithmetic:\n * Use 5*51 bit limbs on 64-bit systems with support for 128 bit arithmetic,\n * and 10*25.5 bit limbs elsewhere.\n *\n * Functions used elsewhere that are candidates for inlining are defined\n * via \"private/ed25519_ref10.h\".\n */\n\n#ifdef HAVE_TI_MODE\n# include \"fe_51/constants.h\"\n# include \"fe_51/fe.h\"\n#else\n# include \"fe_25_5/constants.h\"\n# include \"fe_25_5/fe.h\"\n#endif\n\nstatic inline void\nfe25519_sqmul(fe25519 s, const int n, const fe25519 a)\n{\n    int i;\n\n    for (i = 0; i < n; i++) {\n        fe25519_sq(s, s);\n    }\n    fe25519_mul(s, s, a);\n}\n\n/*\n * Inversion - sets out to 0 if z=0\n */\nvoid\nfe25519_invert(fe25519 out, const fe25519 z)\n{\n    fe25519 t0, t1, t2, t3;\n    int     i;\n\n    fe25519_sq(t0, z);\n    fe25519_sq(t1, t0);\n    fe25519_sq(t1, t1);\n    fe25519_mul(t1, z, t1);\n    fe25519_mul(t0, t0, t1);\n    fe25519_sq(t2, t0);\n    fe25519_mul(t1, t1, t2);\n    fe25519_sq(t2, t1);\n    for (i = 1; i < 5; ++i) {\n        fe25519_sq(t2, t2);\n    }\n    fe25519_mul(t1, t2, t1);\n    fe25519_sq(t2, t1);\n    for (i = 1; i < 10; ++i) {\n        fe25519_sq(t2, t2);\n    }\n    fe25519_mul(t2, t2, t1);\n    fe25519_sq(t3, t2);\n    for (i = 1; i < 20; ++i) {\n        fe25519_sq(t3, t3);\n    }\n    fe25519_mul(t2, t3, t2);\n    for (i = 1; i < 11; ++i) {\n        fe25519_sq(t2, t2);\n    }\n    fe25519_mul(t1, t2, t1);\n    fe25519_sq(t2, t1);\n    for (i = 1; i < 50; ++i) {\n        fe25519_sq(t2, t2);\n    }\n    fe25519_mul(t2, t2, t1);\n    fe25519_sq(t3, t2);\n    for (i = 1; i < 100; ++i) {\n        fe25519_sq(t3, t3);\n    }\n    fe25519_mul(t2, t3, t2);\n    for (i = 1; i < 51; ++i) {\n        fe25519_sq(t2, t2);\n    }\n    fe25519_mul(t1, t2, t1);\n    for (i = 1; i < 6; ++i) {\n        fe25519_sq(t1, t1);\n    }\n    fe25519_mul(out, t1, t0);\n}\n\n/*\n * returns z^((p-5)/8) = z^(2^252-3)\n * used to compute square roots since we have p=5 (mod 8); see Cohen and Frey.\n */\nstatic void\nfe25519_pow22523(fe25519 out, const fe25519 z)\n{\n    fe25519 t0, t1, t2;\n    int     i;\n\n    fe25519_sq(t0, z);\n    fe25519_sq(t1, t0);\n    fe25519_sq(t1, t1);\n    fe25519_mul(t1, z, t1);\n    fe25519_mul(t0, t0, t1);\n    fe25519_sq(t0, t0);\n    fe25519_mul(t0, t1, t0);\n    fe25519_sq(t1, t0);\n    for (i = 1; i < 5; ++i) {\n        fe25519_sq(t1, t1);\n    }\n    fe25519_mul(t0, t1, t0);\n    fe25519_sq(t1, t0);\n    for (i = 1; i < 10; ++i) {\n        fe25519_sq(t1, t1);\n    }\n    fe25519_mul(t1, t1, t0);\n    fe25519_sq(t2, t1);\n    for (i = 1; i < 20; ++i) {\n        fe25519_sq(t2, t2);\n    }\n    fe25519_mul(t1, t2, t1);\n    for (i = 1; i < 11; ++i) {\n        fe25519_sq(t1, t1);\n    }\n    fe25519_mul(t0, t1, t0);\n    fe25519_sq(t1, t0);\n    for (i = 1; i < 50; ++i) {\n        fe25519_sq(t1, t1);\n    }\n    fe25519_mul(t1, t1, t0);\n    fe25519_sq(t2, t1);\n    for (i = 1; i < 100; ++i) {\n        fe25519_sq(t2, t2);\n    }\n    fe25519_mul(t1, t2, t1);\n    for (i = 1; i < 51; ++i) {\n        fe25519_sq(t1, t1);\n    }\n    fe25519_mul(t0, t1, t0);\n    fe25519_sq(t0, t0);\n    fe25519_sq(t0, t0);\n    fe25519_mul(out, t0, z);\n}\n\nstatic inline void\nfe25519_cneg(fe25519 h, unsigned int b)\n{\n    fe25519 negf;\n\n    fe25519_neg(negf, h);\n    fe25519_cmov(h, negf, b);\n}\n\nstatic inline void\nfe25519_abs(fe25519 h)\n{\n    fe25519_cneg(h, fe25519_isnegative(h));\n}\n\nstatic void\nfe25519_unchecked_sqrt(fe25519 x, const fe25519 x2)\n{\n    fe25519 p_root;\n    fe25519 m_root;\n    fe25519 m_root2;\n    fe25519 e;\n\n    fe25519_pow22523(e, x2);\n    fe25519_mul(p_root, e, x2);\n    fe25519_mul(m_root, p_root, fe25519_sqrtm1);\n    fe25519_sq(m_root2, m_root);\n    fe25519_sub(e, x2, m_root2);\n    fe25519_copy(x, p_root);\n    fe25519_cmov(x, m_root, fe25519_iszero(e));\n}\n\nstatic int\nfe25519_sqrt(fe25519 x, const fe25519 x2)\n{\n    fe25519 check;\n    fe25519 x2_copy;\n\n    fe25519_copy(x2_copy, x2);\n    fe25519_unchecked_sqrt(x, x2);\n    fe25519_sq(check, x);\n    fe25519_sub(check, check, x2_copy);\n\n    return fe25519_iszero(check) - 1;\n}\n\nstatic int\nfe25519_notsquare(const fe25519 x)\n{\n    fe25519       _10, _11, _1100, _1111, _11110000, _11111111;\n    fe25519       t, u, v;\n    unsigned char s[32];\n\n    /* Jacobi symbol - x^((p-1)/2) */\n    fe25519_mul(_10, x, x);\n    fe25519_mul(_11, x, _10);\n    fe25519_sq(_1100, _11);\n    fe25519_sq(_1100, _1100);\n    fe25519_mul(_1111, _11, _1100);\n    fe25519_sq(_11110000, _1111);\n    fe25519_sq(_11110000, _11110000);\n    fe25519_sq(_11110000, _11110000);\n    fe25519_sq(_11110000, _11110000);\n    fe25519_mul(_11111111, _1111, _11110000);\n    fe25519_copy(t, _11111111);\n    fe25519_sqmul(t, 2, _11);\n    fe25519_copy(u, t);\n    fe25519_sqmul(t, 10, u);\n    fe25519_sqmul(t, 10, u);\n    fe25519_copy(v, t);\n    fe25519_sqmul(t, 30, v);\n    fe25519_copy(v, t);\n    fe25519_sqmul(t, 60, v);\n    fe25519_copy(v, t);\n    fe25519_sqmul(t, 120, v);\n    fe25519_sqmul(t, 10, u);\n    fe25519_sqmul(t, 3, _11);\n    fe25519_sq(t, t);\n\n    fe25519_tobytes(s, t);\n\n    return s[1] & 1;\n}\n\n/*\n r = p + q\n */\n\nstatic void\nge25519_add_cached(ge25519_p1p1 *r, const ge25519_p3 *p, const ge25519_cached *q)\n{\n    fe25519 t0;\n\n    fe25519_add(r->X, p->Y, p->X);\n    fe25519_sub(r->Y, p->Y, p->X);\n    fe25519_mul(r->Z, r->X, q->YplusX);\n    fe25519_mul(r->Y, r->Y, q->YminusX);\n    fe25519_mul(r->T, q->T2d, p->T);\n    fe25519_mul(r->X, p->Z, q->Z);\n    fe25519_add(t0, r->X, r->X);\n    fe25519_sub(r->X, r->Z, r->Y);\n    fe25519_add(r->Y, r->Z, r->Y);\n    fe25519_add(r->Z, t0, r->T);\n    fe25519_sub(r->T, t0, r->T);\n}\n\nstatic void\nslide_vartime(signed char *r, const unsigned char *a)\n{\n    int i;\n    int b;\n    int k;\n    int ribs;\n    int cmp;\n\n    for (i = 0; i < 256; ++i) {\n        r[i] = 1 & (a[i >> 3] >> (i & 7));\n    }\n    for (i = 0; i < 256; ++i) {\n        if (! r[i]) {\n            continue;\n        }\n        for (b = 1; b <= 6 && i + b < 256; ++b) {\n            if (! r[i + b]) {\n                continue;\n            }\n            ribs = r[i + b] << b;\n            cmp = r[i] + ribs;\n            if (cmp <= 15) {\n                r[i] = cmp;\n                r[i + b] = 0;\n            } else {\n                cmp = r[i] - ribs;\n                if (cmp < -15) {\n                    break;\n                }\n                r[i] = cmp;\n                for (k = i + b; k < 256; ++k) {\n                    if (! r[k]) {\n                        r[k] = 1;\n                        break;\n                    }\n                    r[k] = 0;\n                }\n            }\n        }\n    }\n}\n\nstatic volatile unsigned char optblocker_u8;\n\nint\nge25519_frombytes(ge25519_p3 *h, const unsigned char *s)\n{\n    fe25519 u;\n    fe25519 v;\n    fe25519 vxx;\n    fe25519 m_root_check, p_root_check;\n    fe25519 negx;\n    fe25519 x_sqrtm1;\n    int     has_m_root, has_p_root;\n\n    fe25519_frombytes(h->Y, s);\n    fe25519_1(h->Z);\n    fe25519_sq(u, h->Y);\n    fe25519_mul(v, u, ed25519_d);\n    fe25519_sub(u, u, h->Z); /* u = y^2-1 */\n    fe25519_add(v, v, h->Z); /* v = dy^2+1 */\n\n    fe25519_mul(h->X, u, v);\n    fe25519_pow22523(h->X, h->X);\n    fe25519_mul(h->X, u, h->X); /* u((uv)^((q-5)/8)) */\n\n    fe25519_sq(vxx, h->X);\n    fe25519_mul(vxx, vxx, v);\n    fe25519_sub(m_root_check, vxx, u); /* vx^2-u */\n    fe25519_add(p_root_check, vxx, u); /* vx^2+u */\n    has_m_root = fe25519_iszero(m_root_check);\n    has_p_root = fe25519_iszero(p_root_check);\n    fe25519_mul(x_sqrtm1, h->X, fe25519_sqrtm1); /* x*sqrt(-1) */\n    fe25519_cmov(h->X, x_sqrtm1, 1 - has_m_root);\n\n    fe25519_neg(negx, h->X);\n    fe25519_cmov(h->X, negx, fe25519_isnegative(h->X) ^ (((s[31] >> 5) ^ optblocker_u8) >> 2));\n    fe25519_mul(h->T, h->X, h->Y);\n\n    return (has_m_root | has_p_root) - 1;\n}\n\nint\nge25519_frombytes_negate_vartime(ge25519_p3 *h, const unsigned char *s)\n{\n    fe25519 u;\n    fe25519 v;\n    fe25519 v3;\n    fe25519 vxx;\n    fe25519 m_root_check, p_root_check;\n\n    fe25519_frombytes(h->Y, s);\n    fe25519_1(h->Z);\n    fe25519_sq(u, h->Y);\n    fe25519_mul(v, u, ed25519_d);\n    fe25519_sub(u, u, h->Z); /* u = y^2-1 */\n    fe25519_add(v, v, h->Z); /* v = dy^2+1 */\n\n    fe25519_sq(v3, v);\n    fe25519_mul(v3, v3, v); /* v3 = v^3 */\n    fe25519_sq(h->X, v3);\n    fe25519_mul(h->X, h->X, v);\n    fe25519_mul(h->X, h->X, u); /* x = uv^7 */\n\n    fe25519_pow22523(h->X, h->X); /* x = (uv^7)^((q-5)/8) */\n    fe25519_mul(h->X, h->X, v3);\n    fe25519_mul(h->X, h->X, u); /* x = uv^3(uv^7)^((q-5)/8) */\n\n    fe25519_sq(vxx, h->X);\n    fe25519_mul(vxx, vxx, v);\n    fe25519_sub(m_root_check, vxx, u); /* vx^2-u */\n    if (fe25519_iszero(m_root_check) == 0) {\n        fe25519_add(p_root_check, vxx, u); /* vx^2+u */\n        if (fe25519_iszero(p_root_check) == 0) {\n            return -1;\n        }\n        fe25519_mul(h->X, h->X, fe25519_sqrtm1);\n    }\n\n    if (fe25519_isnegative(h->X) == (s[31] >> 7)) { /* vartime function - compiler optimization is fine */\n        fe25519_neg(h->X, h->X);\n    }\n    fe25519_mul(h->T, h->X, h->Y);\n\n    return 0;\n}\n\n/*\n r = p + q\n */\n\nstatic void\nge25519_add_precomp(ge25519_p1p1 *r, const ge25519_p3 *p, const ge25519_precomp *q)\n{\n    fe25519 t0;\n\n    fe25519_add(r->X, p->Y, p->X);\n    fe25519_sub(r->Y, p->Y, p->X);\n    fe25519_mul(r->Z, r->X, q->yplusx);\n    fe25519_mul(r->Y, r->Y, q->yminusx);\n    fe25519_mul(r->T, q->xy2d, p->T);\n    fe25519_add(t0, p->Z, p->Z);\n    fe25519_sub(r->X, r->Z, r->Y);\n    fe25519_add(r->Y, r->Z, r->Y);\n    fe25519_add(r->Z, t0, r->T);\n    fe25519_sub(r->T, t0, r->T);\n}\n\n/*\n r = p - q\n */\n\nstatic void\nge25519_sub_precomp(ge25519_p1p1 *r, const ge25519_p3 *p, const ge25519_precomp *q)\n{\n    fe25519 t0;\n\n    fe25519_add(r->X, p->Y, p->X);\n    fe25519_sub(r->Y, p->Y, p->X);\n    fe25519_mul(r->Z, r->X, q->yminusx);\n    fe25519_mul(r->Y, r->Y, q->yplusx);\n    fe25519_mul(r->T, q->xy2d, p->T);\n    fe25519_add(t0, p->Z, p->Z);\n    fe25519_sub(r->X, r->Z, r->Y);\n    fe25519_add(r->Y, r->Z, r->Y);\n    fe25519_sub(r->Z, t0, r->T);\n    fe25519_add(r->T, t0, r->T);\n}\n\n/*\n r = p\n */\n\nvoid\nge25519_p1p1_to_p2(ge25519_p2 *r, const ge25519_p1p1 *p)\n{\n    fe25519_mul(r->X, p->X, p->T);\n    fe25519_mul(r->Y, p->Y, p->Z);\n    fe25519_mul(r->Z, p->Z, p->T);\n}\n\n/*\n r = p\n */\n\nvoid\nge25519_p1p1_to_p3(ge25519_p3 *r, const ge25519_p1p1 *p)\n{\n    fe25519_mul(r->X, p->X, p->T);\n    fe25519_mul(r->Y, p->Y, p->Z);\n    fe25519_mul(r->Z, p->Z, p->T);\n    fe25519_mul(r->T, p->X, p->Y);\n}\n\n/*\n r = p\n */\nvoid\nge25519_p2_to_p3(ge25519_p3 *r, const ge25519_p2 *p)\n{\n    fe25519_copy(r->X, p->X);\n    fe25519_copy(r->Y, p->Y);\n    fe25519_copy(r->Z, p->Z);\n    fe25519_mul(r->T, p->X, p->Y);\n}\n\nstatic void\nge25519_p2_0(ge25519_p2 *h)\n{\n    fe25519_0(h->X);\n    fe25519_1(h->Y);\n    fe25519_1(h->Z);\n}\n\n/*\n r = 2 * p\n */\n\nstatic void\nge25519_p2_dbl(ge25519_p1p1 *r, const ge25519_p2 *p)\n{\n    fe25519 t0;\n\n    fe25519_sq(r->X, p->X);\n    fe25519_sq(r->Z, p->Y);\n    fe25519_sq2(r->T, p->Z);\n    fe25519_add(r->Y, p->X, p->Y);\n    fe25519_sq(t0, r->Y);\n    fe25519_add(r->Y, r->Z, r->X);\n    fe25519_sub(r->Z, r->Z, r->X);\n    fe25519_sub(r->X, t0, r->Y);\n    fe25519_sub(r->T, r->T, r->Z);\n}\n\nstatic void\nge25519_p3_0(ge25519_p3 *h)\n{\n    fe25519_0(h->X);\n    fe25519_1(h->Y);\n    fe25519_1(h->Z);\n    fe25519_0(h->T);\n}\n\nstatic void\nge25519_cached_0(ge25519_cached *h)\n{\n    fe25519_1(h->YplusX);\n    fe25519_1(h->YminusX);\n    fe25519_1(h->Z);\n    fe25519_0(h->T2d);\n}\n\n/*\n r = p\n */\n\nstatic void\nge25519_p3_to_cached(ge25519_cached *r, const ge25519_p3 *p)\n{\n    fe25519_add(r->YplusX, p->Y, p->X);\n    fe25519_sub(r->YminusX, p->Y, p->X);\n    fe25519_copy(r->Z, p->Z);\n    fe25519_mul(r->T2d, p->T, ed25519_d2);\n}\n\nstatic void\nge25519_p3_to_precomp(ge25519_precomp *pi, const ge25519_p3 *p)\n{\n    fe25519 recip;\n    fe25519 x;\n    fe25519 y;\n    fe25519 xy;\n\n    fe25519_invert(recip, p->Z);\n    fe25519_mul(x, p->X, recip);\n    fe25519_mul(y, p->Y, recip);\n    fe25519_add(pi->yplusx, y, x);\n    fe25519_sub(pi->yminusx, y, x);\n    fe25519_mul(xy, x, y);\n    fe25519_mul(pi->xy2d, xy, ed25519_d2);\n}\n\n/*\n r = p\n */\n\nstatic void\nge25519_p3_to_p2(ge25519_p2 *r, const ge25519_p3 *p)\n{\n    fe25519_copy(r->X, p->X);\n    fe25519_copy(r->Y, p->Y);\n    fe25519_copy(r->Z, p->Z);\n}\n\nvoid\nge25519_p3_tobytes(unsigned char *s, const ge25519_p3 *h)\n{\n    fe25519 recip;\n    fe25519 x;\n    fe25519 y;\n\n    fe25519_invert(recip, h->Z);\n    fe25519_mul(x, h->X, recip);\n    fe25519_mul(y, h->Y, recip);\n    fe25519_tobytes(s, y);\n    s[31] ^= fe25519_isnegative(x) << 7;\n}\n\n/*\n r = 2 * p\n */\n\nstatic void\nge25519_p3_dbl(ge25519_p1p1 *r, const ge25519_p3 *p)\n{\n    ge25519_p2 q;\n    ge25519_p3_to_p2(&q, p);\n    ge25519_p2_dbl(r, &q);\n}\n\nstatic void\nge25519_precomp_0(ge25519_precomp *h)\n{\n    fe25519_1(h->yplusx);\n    fe25519_1(h->yminusx);\n    fe25519_0(h->xy2d);\n}\n\nstatic unsigned char\nequal(signed char b, signed char c)\n{\n#if defined(HAVE_INLINE_ASM) && defined(__x86_64__)\n    int32_t b32 = (int32_t) b, c32 = (int32_t) c, q32, z32;\n    __asm__ (\"xorl %0,%0\\n movl $1,%1\\n cmpb %b3,%b2\\n cmovel %1,%0\" :\n             \"=&r\"(z32), \"=&r\"(q32) : \"q\"(b32), \"q\"(c32) : \"cc\");\n    return (unsigned char) z32;\n#elif defined(HAVE_INLINE_ASM) && defined(__aarch64__)\n    unsigned char z;\n    __asm__ (\"and %w0,%w1,255\\n cmp %w0,%w2,uxtb\\n cset %w0,eq\" :\n             \"=&r\"(z) : \"r\"(b), \"r\"(c) : \"cc\");\n    return z;\n#else\n    const unsigned char x  = (unsigned char) b ^ (unsigned char) c; /* 0: yes; 1..255: no */\n    uint32_t            y  = (uint32_t) x; /* 0: yes; 1..255: no */\n\n    y--;\n    return ((y >> 29) ^ optblocker_u8) >> 2; /* 1: yes; 0: no */\n#endif\n}\n\nstatic unsigned char\nnegative(signed char b)\n{\n#if defined(HAVE_INLINE_ASM) && defined(__x86_64__)\n    __asm__ (\"shrb $7,%0\" : \"+r\"(b) : : \"cc\");\n    return b;\n#elif defined(HAVE_INLINE_ASM) && defined(__aarch64__)\n    uint8_t x;\n    __asm__ (\"ubfx %w0,%w1,7,1\" : \"=r\"(x) : \"r\"(b) : );\n    return x;\n#else\n    const uint8_t x = (uint8_t) b; /* 0..127: no 128..255: yes */\n    return ((x >> 5) ^ optblocker_u8) >> 2; /* 1: yes; 0: no */\n#endif\n}\n\nstatic void\nge25519_cmov(ge25519_precomp *t, const ge25519_precomp *u, unsigned char b)\n{\n    fe25519_cmov(t->yplusx, u->yplusx, b);\n    fe25519_cmov(t->yminusx, u->yminusx, b);\n    fe25519_cmov(t->xy2d, u->xy2d, b);\n}\n\nstatic void\nge25519_cmov_cached(ge25519_cached *t, const ge25519_cached *u, unsigned char b)\n{\n    fe25519_cmov(t->YplusX, u->YplusX, b);\n    fe25519_cmov(t->YminusX, u->YminusX, b);\n    fe25519_cmov(t->Z, u->Z, b);\n    fe25519_cmov(t->T2d, u->T2d, b);\n}\n\nstatic void\nge25519_cmov8(ge25519_precomp *t, const ge25519_precomp precomp[8], const signed char b)\n{\n    ge25519_precomp     minust;\n    const unsigned char bnegative = negative(b);\n    const unsigned char babs      = b - (((-bnegative) & b) * ((signed char) 1 << 1));\n\n    ge25519_precomp_0(t);\n    ge25519_cmov(t, &precomp[0], equal(babs, 1));\n    ge25519_cmov(t, &precomp[1], equal(babs, 2));\n    ge25519_cmov(t, &precomp[2], equal(babs, 3));\n    ge25519_cmov(t, &precomp[3], equal(babs, 4));\n    ge25519_cmov(t, &precomp[4], equal(babs, 5));\n    ge25519_cmov(t, &precomp[5], equal(babs, 6));\n    ge25519_cmov(t, &precomp[6], equal(babs, 7));\n    ge25519_cmov(t, &precomp[7], equal(babs, 8));\n    fe25519_copy(minust.yplusx, t->yminusx);\n    fe25519_copy(minust.yminusx, t->yplusx);\n    fe25519_neg(minust.xy2d, t->xy2d);\n    ge25519_cmov(t, &minust, bnegative);\n}\n\nstatic void\nge25519_cmov8_base(ge25519_precomp *t, const int pos, const signed char b)\n{\n    static const ge25519_precomp base[32][8] = { /* base[i][j] = (j+1)*256^i*B */\n#ifdef HAVE_TI_MODE\n# include \"fe_51/base.h\"\n#else\n# include \"fe_25_5/base.h\"\n#endif\n    };\n    ge25519_cmov8(t, base[pos], b);\n}\n\nstatic void\nge25519_cmov8_cached(ge25519_cached *t, const ge25519_cached cached[8], const signed char b)\n{\n    ge25519_cached      minust;\n    const unsigned char bnegative = negative(b);\n    const unsigned char babs      = b - (((-bnegative) & b) * ((signed char) 1 << 1));\n\n    ge25519_cached_0(t);\n    ge25519_cmov_cached(t, &cached[0], equal(babs, 1));\n    ge25519_cmov_cached(t, &cached[1], equal(babs, 2));\n    ge25519_cmov_cached(t, &cached[2], equal(babs, 3));\n    ge25519_cmov_cached(t, &cached[3], equal(babs, 4));\n    ge25519_cmov_cached(t, &cached[4], equal(babs, 5));\n    ge25519_cmov_cached(t, &cached[5], equal(babs, 6));\n    ge25519_cmov_cached(t, &cached[6], equal(babs, 7));\n    ge25519_cmov_cached(t, &cached[7], equal(babs, 8));\n    fe25519_copy(minust.YplusX, t->YminusX);\n    fe25519_copy(minust.YminusX, t->YplusX);\n    fe25519_copy(minust.Z, t->Z);\n    fe25519_neg(minust.T2d, t->T2d);\n    ge25519_cmov_cached(t, &minust, bnegative);\n}\n\n/*\n r = p - q\n */\n\nstatic void\nge25519_sub_cached(ge25519_p1p1 *r, const ge25519_p3 *p, const ge25519_cached *q)\n{\n    fe25519 t0;\n\n    fe25519_add(r->X, p->Y, p->X);\n    fe25519_sub(r->Y, p->Y, p->X);\n    fe25519_mul(r->Z, r->X, q->YminusX);\n    fe25519_mul(r->Y, r->Y, q->YplusX);\n    fe25519_mul(r->T, q->T2d, p->T);\n    fe25519_mul(r->X, p->Z, q->Z);\n    fe25519_add(t0, r->X, r->X);\n    fe25519_sub(r->X, r->Z, r->Y);\n    fe25519_add(r->Y, r->Z, r->Y);\n    fe25519_sub(r->Z, t0, r->T);\n    fe25519_add(r->T, t0, r->T);\n}\n\n/* LCOV_EXCL_START */\nvoid\nge25519_tobytes(unsigned char *s, const ge25519_p2 *h)\n{\n    fe25519 recip;\n    fe25519 x;\n    fe25519 y;\n\n    fe25519_invert(recip, h->Z);\n    fe25519_mul(x, h->X, recip);\n    fe25519_mul(y, h->Y, recip);\n    fe25519_tobytes(s, y);\n    s[31] ^= fe25519_isnegative(x) << 7;\n}\n/* LCOV_EXCL_STOP */\n\n/*\n r = a * A + b * B\n where a = a[0]+256*a[1]+...+256^31 a[31].\n and b = b[0]+256*b[1]+...+256^31 b[31].\n B is the Ed25519 base point (x,4/5) with x positive.\n\n Only used for signatures verification.\n */\n\nvoid\nge25519_double_scalarmult_vartime(ge25519_p2 *r, const unsigned char *a,\n                                  const ge25519_p3 *A, const unsigned char *b)\n{\n    static const ge25519_precomp Bi[8] = {\n#ifdef HAVE_TI_MODE\n# include \"fe_51/base2.h\"\n#else\n# include \"fe_25_5/base2.h\"\n#endif\n    };\n    signed char    aslide[256];\n    signed char    bslide[256];\n    ge25519_cached Ai[8]; /* A,3A,5A,7A,9A,11A,13A,15A */\n    ge25519_p1p1   t;\n    ge25519_p3     u;\n    ge25519_p3     A2;\n    int            i;\n\n    slide_vartime(aslide, a);\n    slide_vartime(bslide, b);\n\n    ge25519_p3_to_cached(&Ai[0], A);\n\n    ge25519_p3_dbl(&t, A);\n    ge25519_p1p1_to_p3(&A2, &t);\n\n    ge25519_add_cached(&t, &A2, &Ai[0]);\n    ge25519_p1p1_to_p3(&u, &t);\n    ge25519_p3_to_cached(&Ai[1], &u);\n\n    ge25519_add_cached(&t, &A2, &Ai[1]);\n    ge25519_p1p1_to_p3(&u, &t);\n    ge25519_p3_to_cached(&Ai[2], &u);\n\n    ge25519_add_cached(&t, &A2, &Ai[2]);\n    ge25519_p1p1_to_p3(&u, &t);\n    ge25519_p3_to_cached(&Ai[3], &u);\n\n    ge25519_add_cached(&t, &A2, &Ai[3]);\n    ge25519_p1p1_to_p3(&u, &t);\n    ge25519_p3_to_cached(&Ai[4], &u);\n\n    ge25519_add_cached(&t, &A2, &Ai[4]);\n    ge25519_p1p1_to_p3(&u, &t);\n    ge25519_p3_to_cached(&Ai[5], &u);\n\n    ge25519_add_cached(&t, &A2, &Ai[5]);\n    ge25519_p1p1_to_p3(&u, &t);\n    ge25519_p3_to_cached(&Ai[6], &u);\n\n    ge25519_add_cached(&t, &A2, &Ai[6]);\n    ge25519_p1p1_to_p3(&u, &t);\n    ge25519_p3_to_cached(&Ai[7], &u);\n\n    ge25519_p2_0(r);\n\n    for (i = 255; i >= 0; --i) {\n        if (aslide[i] || bslide[i]) {\n            break;\n        }\n    }\n\n    for (; i >= 0; --i) {\n        ge25519_p2_dbl(&t, r);\n\n        if (aslide[i] > 0) {\n            ge25519_p1p1_to_p3(&u, &t);\n            ge25519_add_cached(&t, &u, &Ai[aslide[i] / 2]);\n        } else if (aslide[i] < 0) {\n            ge25519_p1p1_to_p3(&u, &t);\n            ge25519_sub_cached(&t, &u, &Ai[(-aslide[i]) / 2]);\n        }\n\n        if (bslide[i] > 0) {\n            ge25519_p1p1_to_p3(&u, &t);\n            ge25519_add_precomp(&t, &u, &Bi[bslide[i] / 2]);\n        } else if (bslide[i] < 0) {\n            ge25519_p1p1_to_p3(&u, &t);\n            ge25519_sub_precomp(&t, &u, &Bi[(-bslide[i]) / 2]);\n        }\n\n        ge25519_p1p1_to_p2(r, &t);\n    }\n}\n\n/*\n h = a * p\n where a = a[0]+256*a[1]+...+256^31 a[31]\n\n Preconditions:\n a[31] <= 127\n\n p is public\n */\n\nvoid\nge25519_scalarmult(ge25519_p3 *h, const unsigned char *a, const ge25519_p3 *p)\n{\n    signed char     e[64];\n    signed char     carry;\n    ge25519_p1p1    r;\n    ge25519_p2      s;\n    ge25519_p1p1    t2, t3, t4, t5, t6, t7, t8;\n    ge25519_p3      p2, p3, p4, p5, p6, p7, p8;\n    ge25519_cached  pi[8];\n    ge25519_cached  t;\n    int             i;\n\n    ge25519_p3_to_cached(&pi[1 - 1], p);   /* p */\n\n    ge25519_p3_dbl(&t2, p);\n    ge25519_p1p1_to_p3(&p2, &t2);\n    ge25519_p3_to_cached(&pi[2 - 1], &p2); /* 2p = 2*p */\n\n    ge25519_add_cached(&t3, p, &pi[2 - 1]);\n    ge25519_p1p1_to_p3(&p3, &t3);\n    ge25519_p3_to_cached(&pi[3 - 1], &p3); /* 3p = 2p+p */\n\n    ge25519_p3_dbl(&t4, &p2);\n    ge25519_p1p1_to_p3(&p4, &t4);\n    ge25519_p3_to_cached(&pi[4 - 1], &p4); /* 4p = 2*2p */\n\n    ge25519_add_cached(&t5, p, &pi[4 - 1]);\n    ge25519_p1p1_to_p3(&p5, &t5);\n    ge25519_p3_to_cached(&pi[5 - 1], &p5); /* 5p = 4p+p */\n\n    ge25519_p3_dbl(&t6, &p3);\n    ge25519_p1p1_to_p3(&p6, &t6);\n    ge25519_p3_to_cached(&pi[6 - 1], &p6); /* 6p = 2*3p */\n\n    ge25519_add_cached(&t7, p, &pi[6 - 1]);\n    ge25519_p1p1_to_p3(&p7, &t7);\n    ge25519_p3_to_cached(&pi[7 - 1], &p7); /* 7p = 6p+p */\n\n    ge25519_p3_dbl(&t8, &p4);\n    ge25519_p1p1_to_p3(&p8, &t8);\n    ge25519_p3_to_cached(&pi[8 - 1], &p8); /* 8p = 2*4p */\n\n    for (i = 0; i < 32; ++i) {\n        e[2 * i + 0] = (a[i] >> 0) & 15;\n        e[2 * i + 1] = (a[i] >> 4) & 15;\n    }\n    /* each e[i] is between 0 and 15 */\n    /* e[63] is between 0 and 7 */\n\n    carry = 0;\n    for (i = 0; i < 63; ++i) {\n        e[i] += carry;\n        carry = e[i] + 8;\n        carry >>= 4;\n        e[i] -= carry * ((signed char) 1 << 4);\n    }\n    e[63] += carry;\n    /* each e[i] is between -8 and 8 */\n\n    ge25519_p3_0(h);\n\n    for (i = 63; i != 0; i--) {\n        ge25519_cmov8_cached(&t, pi, e[i]);\n        ge25519_add_cached(&r, h, &t);\n\n        ge25519_p1p1_to_p2(&s, &r);\n        ge25519_p2_dbl(&r, &s);\n        ge25519_p1p1_to_p2(&s, &r);\n        ge25519_p2_dbl(&r, &s);\n        ge25519_p1p1_to_p2(&s, &r);\n        ge25519_p2_dbl(&r, &s);\n        ge25519_p1p1_to_p2(&s, &r);\n        ge25519_p2_dbl(&r, &s);\n\n        ge25519_p1p1_to_p3(h, &r);  /* *16 */\n    }\n    ge25519_cmov8_cached(&t, pi, e[i]);\n    ge25519_add_cached(&r, h, &t);\n\n    ge25519_p1p1_to_p3(h, &r);\n}\n\n/*\n h = a * B (with precomputation)\n where a = a[0]+256*a[1]+...+256^31 a[31]\n B is the Ed25519 base point (x,4/5) with x positive\n (as bytes: 0x5866666666666666666666666666666666666666666666666666666666666666)\n\n Preconditions:\n a[31] <= 127\n */\n\nvoid\nge25519_scalarmult_base(ge25519_p3 *h, const unsigned char *a)\n{\n    signed char     e[64];\n    signed char     carry;\n    ge25519_p1p1    r;\n    ge25519_p2      s;\n    ge25519_precomp t;\n    int             i;\n\n    for (i = 0; i < 32; ++i) {\n        e[2 * i + 0] = (a[i] >> 0) & 15;\n        e[2 * i + 1] = (a[i] >> 4) & 15;\n    }\n    /* each e[i] is between 0 and 15 */\n    /* e[63] is between 0 and 7 */\n\n    carry = 0;\n    for (i = 0; i < 63; ++i) {\n        e[i] += carry;\n        carry = e[i] + 8;\n        carry >>= 4;\n        e[i] -= carry * ((signed char) 1 << 4);\n    }\n    e[63] += carry;\n    /* each e[i] is between -8 and 8 */\n\n    ge25519_p3_0(h);\n\n    for (i = 1; i < 64; i += 2) {\n        ge25519_cmov8_base(&t, i / 2, e[i]);\n        ge25519_add_precomp(&r, h, &t);\n        ge25519_p1p1_to_p3(h, &r);\n    }\n\n    ge25519_p3_dbl(&r, h);\n    ge25519_p1p1_to_p2(&s, &r);\n    ge25519_p2_dbl(&r, &s);\n    ge25519_p1p1_to_p2(&s, &r);\n    ge25519_p2_dbl(&r, &s);\n    ge25519_p1p1_to_p2(&s, &r);\n    ge25519_p2_dbl(&r, &s);\n    ge25519_p1p1_to_p3(h, &r);\n\n    for (i = 0; i < 64; i += 2) {\n        ge25519_cmov8_base(&t, i / 2, e[i]);\n        ge25519_add_precomp(&r, h, &t);\n        ge25519_p1p1_to_p3(h, &r);\n    }\n}\n\n/* r = 2p */\nstatic void\nge25519_p3p3_dbl(ge25519_p3 *r, const ge25519_p3 *p)\n{\n    ge25519_p1p1 p1p1;\n\n    ge25519_p3_dbl(&p1p1, p);\n    ge25519_p1p1_to_p3(r, &p1p1);\n}\n\n/* r = -p */\nstatic void\nge25519_p3_neg(ge25519_p3 *r, const ge25519_p3 *p)\n{\n    fe25519_neg(r->X, p->X);\n    fe25519_copy(r->Y, p->Y);\n    fe25519_copy(r->Z, p->Z);\n    fe25519_neg(r->T, p->T);\n}\n\n/* r = p+q */\nvoid\nge25519_p3_add(ge25519_p3 *r, const ge25519_p3 *p, const ge25519_p3 *q)\n{\n    ge25519_cached q_cached;\n    ge25519_p1p1   p1p1;\n\n    ge25519_p3_to_cached(&q_cached, q);\n    ge25519_add_cached(&p1p1, p, &q_cached);\n    ge25519_p1p1_to_p3(r, &p1p1);\n}\n\n/* r = p-q */\nvoid\nge25519_p3_sub(ge25519_p3 *r, const ge25519_p3 *p, const ge25519_p3 *q)\n{\n    ge25519_p3 q_neg;\n\n    ge25519_p3_neg(&q_neg, q);\n    ge25519_p3_add(r, p, &q_neg);\n}\n\n/* r = r*(2^n)+q */\nstatic void\nge25519_p3_dbladd(ge25519_p3 *r, const int n, const ge25519_p3 *q)\n{\n    ge25519_p2   p2;\n    ge25519_p1p1 p1p1;\n    int          i;\n\n    ge25519_p3_to_p2(&p2, r);\n    for (i = 0; i < n; i++) {\n        ge25519_p2_dbl(&p1p1, &p2);\n        ge25519_p1p1_to_p2(&p2, &p1p1);\n    }\n    ge25519_p1p1_to_p3(r, &p1p1);\n    ge25519_p3_add(r, r, q);\n}\n\n/* multiply by the order of the main subgroup l = 2^252+27742317777372353535851937790883648493 */\nstatic void\nge25519_mul_l(ge25519_p3 *r, const ge25519_p3 *p)\n{\n    ge25519_p3 _10, _11, _100, _110, _1000, _1011, _10000, _100000, _100110,\n        _1000000, _1010000, _1010011, _1100011, _1100111, _1101011, _10010011,\n        _10010111, _10111101, _11010011, _11100111, _11101101, _11110101;\n\n    ge25519_p3p3_dbl(&_10, p);\n    ge25519_p3_add(&_11, p, &_10);\n    ge25519_p3_add(&_100, p, &_11);\n    ge25519_p3_add(&_110, &_10, &_100);\n    ge25519_p3_add(&_1000, &_10, &_110);\n    ge25519_p3_add(&_1011, &_11, &_1000);\n    ge25519_p3p3_dbl(&_10000, &_1000);\n    ge25519_p3p3_dbl(&_100000, &_10000);\n    ge25519_p3_add(&_100110, &_110, &_100000);\n    ge25519_p3p3_dbl(&_1000000, &_100000);\n    ge25519_p3_add(&_1010000, &_10000, &_1000000);\n    ge25519_p3_add(&_1010011, &_11, &_1010000);\n    ge25519_p3_add(&_1100011, &_10000, &_1010011);\n    ge25519_p3_add(&_1100111, &_100, &_1100011);\n    ge25519_p3_add(&_1101011, &_100, &_1100111);\n    ge25519_p3_add(&_10010011, &_1000000, &_1010011);\n    ge25519_p3_add(&_10010111, &_100, &_10010011);\n    ge25519_p3_add(&_10111101, &_100110, &_10010111);\n    ge25519_p3_add(&_11010011, &_1000000, &_10010011);\n    ge25519_p3_add(&_11100111, &_1010000, &_10010111);\n    ge25519_p3_add(&_11101101, &_110, &_11100111);\n    ge25519_p3_add(&_11110101, &_1000, &_11101101);\n\n    ge25519_p3_add(r, &_1011, &_11110101);\n    ge25519_p3_dbladd(r, 126, &_1010011);\n    ge25519_p3_dbladd(r, 9, &_10);\n    ge25519_p3_add(r, r, &_11110101);\n    ge25519_p3_dbladd(r, 7, &_1100111);\n    ge25519_p3_dbladd(r, 9, &_11110101);\n    ge25519_p3_dbladd(r, 11, &_10111101);\n    ge25519_p3_dbladd(r, 8, &_11100111);\n    ge25519_p3_dbladd(r, 9, &_1101011);\n    ge25519_p3_dbladd(r, 6, &_1011);\n    ge25519_p3_dbladd(r, 14, &_10010011);\n    ge25519_p3_dbladd(r, 10, &_1100011);\n    ge25519_p3_dbladd(r, 9, &_10010111);\n    ge25519_p3_dbladd(r, 10, &_11110101);\n    ge25519_p3_dbladd(r, 8, &_11010011);\n    ge25519_p3_dbladd(r, 8, &_11101101);\n}\n\nint\nge25519_is_on_curve(const ge25519_p3 *p)\n{\n    fe25519 x2;\n    fe25519 y2;\n    fe25519 z2;\n    fe25519 z4;\n    fe25519 t0;\n    fe25519 t1;\n\n    fe25519_sq(x2, p->X);\n    fe25519_sq(y2, p->Y);\n    fe25519_sq(z2, p->Z);\n    fe25519_sub(t0, y2, x2);\n    fe25519_mul(t0, t0, z2);\n\n    fe25519_mul(t1, x2, y2);\n    fe25519_mul(t1, t1, ed25519_d);\n    fe25519_sq(z4, z2);\n    fe25519_add(t1, t1, z4);\n    fe25519_sub(t0, t0, t1);\n\n    return fe25519_iszero(t0);\n}\n\nint\nge25519_is_on_main_subgroup(const ge25519_p3 *p)\n{\n    ge25519_p3 pl;\n    fe25519    t;\n\n    ge25519_mul_l(&pl, p);\n\n    fe25519_sub(t, pl.Y, pl.Z);\n\n    return fe25519_iszero(pl.X) & fe25519_iszero(t);\n}\n\nint\nge25519_is_canonical(const unsigned char *s)\n{\n    unsigned char c;\n    unsigned char d;\n    unsigned int  i;\n\n    c = (s[31] & 0x7f) ^ 0x7f;\n    for (i = 30; i > 0; i--) {\n        c |= s[i] ^ 0xff;\n    }\n    c = (((unsigned int) c) - 1U) >> 8;\n    d = (0xed - 1U - (unsigned int) s[0]) >> 8;\n\n    return 1 - (c & d & 1);\n}\n\nint\nge25519_has_small_order(const ge25519_p3 *p)\n{\n    fe25519 y_sqrtm1;\n    fe25519 c;\n    int     ret = 0;\n\n    ret |= fe25519_iszero(p->X);\n    ret |= fe25519_iszero(p->Y);\n    ret |= fe25519_iszero(p->Z);\n    fe25519_mul(y_sqrtm1, p->Y, fe25519_sqrtm1);\n    fe25519_sub(c, y_sqrtm1, p->X);\n    ret |= fe25519_iszero(c);\n    fe25519_add(c, y_sqrtm1, p->X);\n    ret |= fe25519_iszero(c);\n\n    return ret;\n}\n\n/*\n Input:\n a[0]+256*a[1]+...+256^31*a[31] = a\n b[0]+256*b[1]+...+256^31*b[31] = b\n *\n Output:\n s[0]+256*s[1]+...+256^31*s[31] = (ab) mod l\n where l = 2^252 + 27742317777372353535851937790883648493.\n */\n\nvoid\nsc25519_mul(unsigned char s[32], const unsigned char a[32], const unsigned char b[32])\n{\n    int64_t a0  = 2097151 & load_3(a);\n    int64_t a1  = 2097151 & (load_4(a + 2) >> 5);\n    int64_t a2  = 2097151 & (load_3(a + 5) >> 2);\n    int64_t a3  = 2097151 & (load_4(a + 7) >> 7);\n    int64_t a4  = 2097151 & (load_4(a + 10) >> 4);\n    int64_t a5  = 2097151 & (load_3(a + 13) >> 1);\n    int64_t a6  = 2097151 & (load_4(a + 15) >> 6);\n    int64_t a7  = 2097151 & (load_3(a + 18) >> 3);\n    int64_t a8  = 2097151 & load_3(a + 21);\n    int64_t a9  = 2097151 & (load_4(a + 23) >> 5);\n    int64_t a10 = 2097151 & (load_3(a + 26) >> 2);\n    int64_t a11 = (load_4(a + 28) >> 7);\n\n    int64_t b0  = 2097151 & load_3(b);\n    int64_t b1  = 2097151 & (load_4(b + 2) >> 5);\n    int64_t b2  = 2097151 & (load_3(b + 5) >> 2);\n    int64_t b3  = 2097151 & (load_4(b + 7) >> 7);\n    int64_t b4  = 2097151 & (load_4(b + 10) >> 4);\n    int64_t b5  = 2097151 & (load_3(b + 13) >> 1);\n    int64_t b6  = 2097151 & (load_4(b + 15) >> 6);\n    int64_t b7  = 2097151 & (load_3(b + 18) >> 3);\n    int64_t b8  = 2097151 & load_3(b + 21);\n    int64_t b9  = 2097151 & (load_4(b + 23) >> 5);\n    int64_t b10 = 2097151 & (load_3(b + 26) >> 2);\n    int64_t b11 = (load_4(b + 28) >> 7);\n\n    int64_t s0;\n    int64_t s1;\n    int64_t s2;\n    int64_t s3;\n    int64_t s4;\n    int64_t s5;\n    int64_t s6;\n    int64_t s7;\n    int64_t s8;\n    int64_t s9;\n    int64_t s10;\n    int64_t s11;\n    int64_t s12;\n    int64_t s13;\n    int64_t s14;\n    int64_t s15;\n    int64_t s16;\n    int64_t s17;\n    int64_t s18;\n    int64_t s19;\n    int64_t s20;\n    int64_t s21;\n    int64_t s22;\n    int64_t s23;\n\n    int64_t carry0;\n    int64_t carry1;\n    int64_t carry2;\n    int64_t carry3;\n    int64_t carry4;\n    int64_t carry5;\n    int64_t carry6;\n    int64_t carry7;\n    int64_t carry8;\n    int64_t carry9;\n    int64_t carry10;\n    int64_t carry11;\n    int64_t carry12;\n    int64_t carry13;\n    int64_t carry14;\n    int64_t carry15;\n    int64_t carry16;\n    int64_t carry17;\n    int64_t carry18;\n    int64_t carry19;\n    int64_t carry20;\n    int64_t carry21;\n    int64_t carry22;\n\n    s0 = a0 * b0;\n    s1 = a0 * b1 + a1 * b0;\n    s2 = a0 * b2 + a1 * b1 + a2 * b0;\n    s3 = a0 * b3 + a1 * b2 + a2 * b1 + a3 * b0;\n    s4 = a0 * b4 + a1 * b3 + a2 * b2 + a3 * b1 + a4 * b0;\n    s5 = a0 * b5 + a1 * b4 + a2 * b3 + a3 * b2 + a4 * b1 + a5 * b0;\n    s6 = a0 * b6 + a1 * b5 + a2 * b4 + a3 * b3 + a4 * b2 + a5 * b1 + a6 * b0;\n    s7 = a0 * b7 + a1 * b6 + a2 * b5 + a3 * b4 + a4 * b3 + a5 * b2 +\n         a6 * b1 + a7 * b0;\n    s8 = a0 * b8 + a1 * b7 + a2 * b6 + a3 * b5 + a4 * b4 + a5 * b3 +\n         a6 * b2 + a7 * b1 + a8 * b0;\n    s9 = a0 * b9 + a1 * b8 + a2 * b7 + a3 * b6 + a4 * b5 + a5 * b4 +\n         a6 * b3 + a7 * b2 + a8 * b1 + a9 * b0;\n    s10 = a0 * b10 + a1 * b9 + a2 * b8 + a3 * b7 + a4 * b6 + a5 * b5 +\n          a6 * b4 + a7 * b3 + a8 * b2 + a9 * b1 + a10 * b0;\n    s11 = a0 * b11 + a1 * b10 + a2 * b9 + a3 * b8 + a4 * b7 + a5 * b6 +\n          a6 * b5 + a7 * b4 + a8 * b3 + a9 * b2 + a10 * b1 + a11 * b0;\n    s12 = a1 * b11 + a2 * b10 + a3 * b9 + a4 * b8 + a5 * b7 + a6 * b6 +\n          a7 * b5 + a8 * b4 + a9 * b3 + a10 * b2 + a11 * b1;\n    s13 = a2 * b11 + a3 * b10 + a4 * b9 + a5 * b8 + a6 * b7 + a7 * b6 +\n          a8 * b5 + a9 * b4 + a10 * b3 + a11 * b2;\n    s14 = a3 * b11 + a4 * b10 + a5 * b9 + a6 * b8 + a7 * b7 + a8 * b6 +\n          a9 * b5 + a10 * b4 + a11 * b3;\n    s15 = a4 * b11 + a5 * b10 + a6 * b9 + a7 * b8 + a8 * b7 + a9 * b6 +\n          a10 * b5 + a11 * b4;\n    s16 =\n        a5 * b11 + a6 * b10 + a7 * b9 + a8 * b8 + a9 * b7 + a10 * b6 + a11 * b5;\n    s17 = a6 * b11 + a7 * b10 + a8 * b9 + a9 * b8 + a10 * b7 + a11 * b6;\n    s18 = a7 * b11 + a8 * b10 + a9 * b9 + a10 * b8 + a11 * b7;\n    s19 = a8 * b11 + a9 * b10 + a10 * b9 + a11 * b8;\n    s20 = a9 * b11 + a10 * b10 + a11 * b9;\n    s21 = a10 * b11 + a11 * b10;\n    s22 = a11 * b11;\n    s23 = 0;\n\n    carry0 = (s0 + (int64_t) (1L << 20)) >> 21;\n    s1 += carry0;\n    s0 -= carry0 * ((uint64_t) 1L << 21);\n    carry2 = (s2 + (int64_t) (1L << 20)) >> 21;\n    s3 += carry2;\n    s2 -= carry2 * ((uint64_t) 1L << 21);\n    carry4 = (s4 + (int64_t) (1L << 20)) >> 21;\n    s5 += carry4;\n    s4 -= carry4 * ((uint64_t) 1L << 21);\n    carry6 = (s6 + (int64_t) (1L << 20)) >> 21;\n    s7 += carry6;\n    s6 -= carry6 * ((uint64_t) 1L << 21);\n    carry8 = (s8 + (int64_t) (1L << 20)) >> 21;\n    s9 += carry8;\n    s8 -= carry8 * ((uint64_t) 1L << 21);\n    carry10 = (s10 + (int64_t) (1L << 20)) >> 21;\n    s11 += carry10;\n    s10 -= carry10 * ((uint64_t) 1L << 21);\n    carry12 = (s12 + (int64_t) (1L << 20)) >> 21;\n    s13 += carry12;\n    s12 -= carry12 * ((uint64_t) 1L << 21);\n    carry14 = (s14 + (int64_t) (1L << 20)) >> 21;\n    s15 += carry14;\n    s14 -= carry14 * ((uint64_t) 1L << 21);\n    carry16 = (s16 + (int64_t) (1L << 20)) >> 21;\n    s17 += carry16;\n    s16 -= carry16 * ((uint64_t) 1L << 21);\n    carry18 = (s18 + (int64_t) (1L << 20)) >> 21;\n    s19 += carry18;\n    s18 -= carry18 * ((uint64_t) 1L << 21);\n    carry20 = (s20 + (int64_t) (1L << 20)) >> 21;\n    s21 += carry20;\n    s20 -= carry20 * ((uint64_t) 1L << 21);\n    carry22 = (s22 + (int64_t) (1L << 20)) >> 21;\n    s23 += carry22;\n    s22 -= carry22 * ((uint64_t) 1L << 21);\n\n    carry1 = (s1 + (int64_t) (1L << 20)) >> 21;\n    s2 += carry1;\n    s1 -= carry1 * ((uint64_t) 1L << 21);\n    carry3 = (s3 + (int64_t) (1L << 20)) >> 21;\n    s4 += carry3;\n    s3 -= carry3 * ((uint64_t) 1L << 21);\n    carry5 = (s5 + (int64_t) (1L << 20)) >> 21;\n    s6 += carry5;\n    s5 -= carry5 * ((uint64_t) 1L << 21);\n    carry7 = (s7 + (int64_t) (1L << 20)) >> 21;\n    s8 += carry7;\n    s7 -= carry7 * ((uint64_t) 1L << 21);\n    carry9 = (s9 + (int64_t) (1L << 20)) >> 21;\n    s10 += carry9;\n    s9 -= carry9 * ((uint64_t) 1L << 21);\n    carry11 = (s11 + (int64_t) (1L << 20)) >> 21;\n    s12 += carry11;\n    s11 -= carry11 * ((uint64_t) 1L << 21);\n    carry13 = (s13 + (int64_t) (1L << 20)) >> 21;\n    s14 += carry13;\n    s13 -= carry13 * ((uint64_t) 1L << 21);\n    carry15 = (s15 + (int64_t) (1L << 20)) >> 21;\n    s16 += carry15;\n    s15 -= carry15 * ((uint64_t) 1L << 21);\n    carry17 = (s17 + (int64_t) (1L << 20)) >> 21;\n    s18 += carry17;\n    s17 -= carry17 * ((uint64_t) 1L << 21);\n    carry19 = (s19 + (int64_t) (1L << 20)) >> 21;\n    s20 += carry19;\n    s19 -= carry19 * ((uint64_t) 1L << 21);\n    carry21 = (s21 + (int64_t) (1L << 20)) >> 21;\n    s22 += carry21;\n    s21 -= carry21 * ((uint64_t) 1L << 21);\n\n    s11 += s23 * 666643;\n    s12 += s23 * 470296;\n    s13 += s23 * 654183;\n    s14 -= s23 * 997805;\n    s15 += s23 * 136657;\n    s16 -= s23 * 683901;\n\n    s10 += s22 * 666643;\n    s11 += s22 * 470296;\n    s12 += s22 * 654183;\n    s13 -= s22 * 997805;\n    s14 += s22 * 136657;\n    s15 -= s22 * 683901;\n\n    s9 += s21 * 666643;\n    s10 += s21 * 470296;\n    s11 += s21 * 654183;\n    s12 -= s21 * 997805;\n    s13 += s21 * 136657;\n    s14 -= s21 * 683901;\n\n    s8 += s20 * 666643;\n    s9 += s20 * 470296;\n    s10 += s20 * 654183;\n    s11 -= s20 * 997805;\n    s12 += s20 * 136657;\n    s13 -= s20 * 683901;\n\n    s7 += s19 * 666643;\n    s8 += s19 * 470296;\n    s9 += s19 * 654183;\n    s10 -= s19 * 997805;\n    s11 += s19 * 136657;\n    s12 -= s19 * 683901;\n\n    s6 += s18 * 666643;\n    s7 += s18 * 470296;\n    s8 += s18 * 654183;\n    s9 -= s18 * 997805;\n    s10 += s18 * 136657;\n    s11 -= s18 * 683901;\n\n    carry6 = (s6 + (int64_t) (1L << 20)) >> 21;\n    s7 += carry6;\n    s6 -= carry6 * ((uint64_t) 1L << 21);\n    carry8 = (s8 + (int64_t) (1L << 20)) >> 21;\n    s9 += carry8;\n    s8 -= carry8 * ((uint64_t) 1L << 21);\n    carry10 = (s10 + (int64_t) (1L << 20)) >> 21;\n    s11 += carry10;\n    s10 -= carry10 * ((uint64_t) 1L << 21);\n    carry12 = (s12 + (int64_t) (1L << 20)) >> 21;\n    s13 += carry12;\n    s12 -= carry12 * ((uint64_t) 1L << 21);\n    carry14 = (s14 + (int64_t) (1L << 20)) >> 21;\n    s15 += carry14;\n    s14 -= carry14 * ((uint64_t) 1L << 21);\n    carry16 = (s16 + (int64_t) (1L << 20)) >> 21;\n    s17 += carry16;\n    s16 -= carry16 * ((uint64_t) 1L << 21);\n\n    carry7 = (s7 + (int64_t) (1L << 20)) >> 21;\n    s8 += carry7;\n    s7 -= carry7 * ((uint64_t) 1L << 21);\n    carry9 = (s9 + (int64_t) (1L << 20)) >> 21;\n    s10 += carry9;\n    s9 -= carry9 * ((uint64_t) 1L << 21);\n    carry11 = (s11 + (int64_t) (1L << 20)) >> 21;\n    s12 += carry11;\n    s11 -= carry11 * ((uint64_t) 1L << 21);\n    carry13 = (s13 + (int64_t) (1L << 20)) >> 21;\n    s14 += carry13;\n    s13 -= carry13 * ((uint64_t) 1L << 21);\n    carry15 = (s15 + (int64_t) (1L << 20)) >> 21;\n    s16 += carry15;\n    s15 -= carry15 * ((uint64_t) 1L << 21);\n\n    s5 += s17 * 666643;\n    s6 += s17 * 470296;\n    s7 += s17 * 654183;\n    s8 -= s17 * 997805;\n    s9 += s17 * 136657;\n    s10 -= s17 * 683901;\n\n    s4 += s16 * 666643;\n    s5 += s16 * 470296;\n    s6 += s16 * 654183;\n    s7 -= s16 * 997805;\n    s8 += s16 * 136657;\n    s9 -= s16 * 683901;\n\n    s3 += s15 * 666643;\n    s4 += s15 * 470296;\n    s5 += s15 * 654183;\n    s6 -= s15 * 997805;\n    s7 += s15 * 136657;\n    s8 -= s15 * 683901;\n\n    s2 += s14 * 666643;\n    s3 += s14 * 470296;\n    s4 += s14 * 654183;\n    s5 -= s14 * 997805;\n    s6 += s14 * 136657;\n    s7 -= s14 * 683901;\n\n    s1 += s13 * 666643;\n    s2 += s13 * 470296;\n    s3 += s13 * 654183;\n    s4 -= s13 * 997805;\n    s5 += s13 * 136657;\n    s6 -= s13 * 683901;\n\n    s0 += s12 * 666643;\n    s1 += s12 * 470296;\n    s2 += s12 * 654183;\n    s3 -= s12 * 997805;\n    s4 += s12 * 136657;\n    s5 -= s12 * 683901;\n    s12 = 0;\n\n    carry0 = (s0 + (int64_t) (1L << 20)) >> 21;\n    s1 += carry0;\n    s0 -= carry0 * ((uint64_t) 1L << 21);\n    carry2 = (s2 + (int64_t) (1L << 20)) >> 21;\n    s3 += carry2;\n    s2 -= carry2 * ((uint64_t) 1L << 21);\n    carry4 = (s4 + (int64_t) (1L << 20)) >> 21;\n    s5 += carry4;\n    s4 -= carry4 * ((uint64_t) 1L << 21);\n    carry6 = (s6 + (int64_t) (1L << 20)) >> 21;\n    s7 += carry6;\n    s6 -= carry6 * ((uint64_t) 1L << 21);\n    carry8 = (s8 + (int64_t) (1L << 20)) >> 21;\n    s9 += carry8;\n    s8 -= carry8 * ((uint64_t) 1L << 21);\n    carry10 = (s10 + (int64_t) (1L << 20)) >> 21;\n    s11 += carry10;\n    s10 -= carry10 * ((uint64_t) 1L << 21);\n\n    carry1 = (s1 + (int64_t) (1L << 20)) >> 21;\n    s2 += carry1;\n    s1 -= carry1 * ((uint64_t) 1L << 21);\n    carry3 = (s3 + (int64_t) (1L << 20)) >> 21;\n    s4 += carry3;\n    s3 -= carry3 * ((uint64_t) 1L << 21);\n    carry5 = (s5 + (int64_t) (1L << 20)) >> 21;\n    s6 += carry5;\n    s5 -= carry5 * ((uint64_t) 1L << 21);\n    carry7 = (s7 + (int64_t) (1L << 20)) >> 21;\n    s8 += carry7;\n    s7 -= carry7 * ((uint64_t) 1L << 21);\n    carry9 = (s9 + (int64_t) (1L << 20)) >> 21;\n    s10 += carry9;\n    s9 -= carry9 * ((uint64_t) 1L << 21);\n    carry11 = (s11 + (int64_t) (1L << 20)) >> 21;\n    s12 += carry11;\n    s11 -= carry11 * ((uint64_t) 1L << 21);\n\n    s0 += s12 * 666643;\n    s1 += s12 * 470296;\n    s2 += s12 * 654183;\n    s3 -= s12 * 997805;\n    s4 += s12 * 136657;\n    s5 -= s12 * 683901;\n    s12 = 0;\n\n    carry0 = s0 >> 21;\n    s1 += carry0;\n    s0 -= carry0 * ((uint64_t) 1L << 21);\n    carry1 = s1 >> 21;\n    s2 += carry1;\n    s1 -= carry1 * ((uint64_t) 1L << 21);\n    carry2 = s2 >> 21;\n    s3 += carry2;\n    s2 -= carry2 * ((uint64_t) 1L << 21);\n    carry3 = s3 >> 21;\n    s4 += carry3;\n    s3 -= carry3 * ((uint64_t) 1L << 21);\n    carry4 = s4 >> 21;\n    s5 += carry4;\n    s4 -= carry4 * ((uint64_t) 1L << 21);\n    carry5 = s5 >> 21;\n    s6 += carry5;\n    s5 -= carry5 * ((uint64_t) 1L << 21);\n    carry6 = s6 >> 21;\n    s7 += carry6;\n    s6 -= carry6 * ((uint64_t) 1L << 21);\n    carry7 = s7 >> 21;\n    s8 += carry7;\n    s7 -= carry7 * ((uint64_t) 1L << 21);\n    carry8 = s8 >> 21;\n    s9 += carry8;\n    s8 -= carry8 * ((uint64_t) 1L << 21);\n    carry9 = s9 >> 21;\n    s10 += carry9;\n    s9 -= carry9 * ((uint64_t) 1L << 21);\n    carry10 = s10 >> 21;\n    s11 += carry10;\n    s10 -= carry10 * ((uint64_t) 1L << 21);\n    carry11 = s11 >> 21;\n    s12 += carry11;\n    s11 -= carry11 * ((uint64_t) 1L << 21);\n\n    s0 += s12 * 666643;\n    s1 += s12 * 470296;\n    s2 += s12 * 654183;\n    s3 -= s12 * 997805;\n    s4 += s12 * 136657;\n    s5 -= s12 * 683901;\n\n    carry0 = s0 >> 21;\n    s1 += carry0;\n    s0 -= carry0 * ((uint64_t) 1L << 21);\n    carry1 = s1 >> 21;\n    s2 += carry1;\n    s1 -= carry1 * ((uint64_t) 1L << 21);\n    carry2 = s2 >> 21;\n    s3 += carry2;\n    s2 -= carry2 * ((uint64_t) 1L << 21);\n    carry3 = s3 >> 21;\n    s4 += carry3;\n    s3 -= carry3 * ((uint64_t) 1L << 21);\n    carry4 = s4 >> 21;\n    s5 += carry4;\n    s4 -= carry4 * ((uint64_t) 1L << 21);\n    carry5 = s5 >> 21;\n    s6 += carry5;\n    s5 -= carry5 * ((uint64_t) 1L << 21);\n    carry6 = s6 >> 21;\n    s7 += carry6;\n    s6 -= carry6 * ((uint64_t) 1L << 21);\n    carry7 = s7 >> 21;\n    s8 += carry7;\n    s7 -= carry7 * ((uint64_t) 1L << 21);\n    carry8 = s8 >> 21;\n    s9 += carry8;\n    s8 -= carry8 * ((uint64_t) 1L << 21);\n    carry9 = s9 >> 21;\n    s10 += carry9;\n    s9 -= carry9 * ((uint64_t) 1L << 21);\n    carry10 = s10 >> 21;\n    s11 += carry10;\n    s10 -= carry10 * ((uint64_t) 1L << 21);\n\n    s[0]  = s0 >> 0;\n    s[1]  = s0 >> 8;\n    s[2]  = (s0 >> 16) | (s1 * ((uint64_t) 1 << 5));\n    s[3]  = s1 >> 3;\n    s[4]  = s1 >> 11;\n    s[5]  = (s1 >> 19) | (s2 * ((uint64_t) 1 << 2));\n    s[6]  = s2 >> 6;\n    s[7]  = (s2 >> 14) | (s3 * ((uint64_t) 1 << 7));\n    s[8]  = s3 >> 1;\n    s[9]  = s3 >> 9;\n    s[10] = (s3 >> 17) | (s4 * ((uint64_t) 1 << 4));\n    s[11] = s4 >> 4;\n    s[12] = s4 >> 12;\n    s[13] = (s4 >> 20) | (s5 * ((uint64_t) 1 << 1));\n    s[14] = s5 >> 7;\n    s[15] = (s5 >> 15) | (s6 * ((uint64_t) 1 << 6));\n    s[16] = s6 >> 2;\n    s[17] = s6 >> 10;\n    s[18] = (s6 >> 18) | (s7 * ((uint64_t) 1 << 3));\n    s[19] = s7 >> 5;\n    s[20] = s7 >> 13;\n    s[21] = s8 >> 0;\n    s[22] = s8 >> 8;\n    s[23] = (s8 >> 16) | (s9 * ((uint64_t) 1 << 5));\n    s[24] = s9 >> 3;\n    s[25] = s9 >> 11;\n    s[26] = (s9 >> 19) | (s10 * ((uint64_t) 1 << 2));\n    s[27] = s10 >> 6;\n    s[28] = (s10 >> 14) | (s11 * ((uint64_t) 1 << 7));\n    s[29] = s11 >> 1;\n    s[30] = s11 >> 9;\n    s[31] = s11 >> 17;\n}\n\n/*\n Input:\n a[0]+256*a[1]+...+256^31*a[31] = a\n b[0]+256*b[1]+...+256^31*b[31] = b\n c[0]+256*c[1]+...+256^31*c[31] = c\n *\n Output:\n s[0]+256*s[1]+...+256^31*s[31] = (ab+c) mod l\n where l = 2^252 + 27742317777372353535851937790883648493.\n */\n\nvoid\nsc25519_muladd(unsigned char s[32], const unsigned char a[32],\n               const unsigned char b[32], const unsigned char c[32])\n{\n    int64_t a0  = 2097151 & load_3(a);\n    int64_t a1  = 2097151 & (load_4(a + 2) >> 5);\n    int64_t a2  = 2097151 & (load_3(a + 5) >> 2);\n    int64_t a3  = 2097151 & (load_4(a + 7) >> 7);\n    int64_t a4  = 2097151 & (load_4(a + 10) >> 4);\n    int64_t a5  = 2097151 & (load_3(a + 13) >> 1);\n    int64_t a6  = 2097151 & (load_4(a + 15) >> 6);\n    int64_t a7  = 2097151 & (load_3(a + 18) >> 3);\n    int64_t a8  = 2097151 & load_3(a + 21);\n    int64_t a9  = 2097151 & (load_4(a + 23) >> 5);\n    int64_t a10 = 2097151 & (load_3(a + 26) >> 2);\n    int64_t a11 = (load_4(a + 28) >> 7);\n\n    int64_t b0  = 2097151 & load_3(b);\n    int64_t b1  = 2097151 & (load_4(b + 2) >> 5);\n    int64_t b2  = 2097151 & (load_3(b + 5) >> 2);\n    int64_t b3  = 2097151 & (load_4(b + 7) >> 7);\n    int64_t b4  = 2097151 & (load_4(b + 10) >> 4);\n    int64_t b5  = 2097151 & (load_3(b + 13) >> 1);\n    int64_t b6  = 2097151 & (load_4(b + 15) >> 6);\n    int64_t b7  = 2097151 & (load_3(b + 18) >> 3);\n    int64_t b8  = 2097151 & load_3(b + 21);\n    int64_t b9  = 2097151 & (load_4(b + 23) >> 5);\n    int64_t b10 = 2097151 & (load_3(b + 26) >> 2);\n    int64_t b11 = (load_4(b + 28) >> 7);\n\n    int64_t c0  = 2097151 & load_3(c);\n    int64_t c1  = 2097151 & (load_4(c + 2) >> 5);\n    int64_t c2  = 2097151 & (load_3(c + 5) >> 2);\n    int64_t c3  = 2097151 & (load_4(c + 7) >> 7);\n    int64_t c4  = 2097151 & (load_4(c + 10) >> 4);\n    int64_t c5  = 2097151 & (load_3(c + 13) >> 1);\n    int64_t c6  = 2097151 & (load_4(c + 15) >> 6);\n    int64_t c7  = 2097151 & (load_3(c + 18) >> 3);\n    int64_t c8  = 2097151 & load_3(c + 21);\n    int64_t c9  = 2097151 & (load_4(c + 23) >> 5);\n    int64_t c10 = 2097151 & (load_3(c + 26) >> 2);\n    int64_t c11 = (load_4(c + 28) >> 7);\n\n    int64_t s0;\n    int64_t s1;\n    int64_t s2;\n    int64_t s3;\n    int64_t s4;\n    int64_t s5;\n    int64_t s6;\n    int64_t s7;\n    int64_t s8;\n    int64_t s9;\n    int64_t s10;\n    int64_t s11;\n    int64_t s12;\n    int64_t s13;\n    int64_t s14;\n    int64_t s15;\n    int64_t s16;\n    int64_t s17;\n    int64_t s18;\n    int64_t s19;\n    int64_t s20;\n    int64_t s21;\n    int64_t s22;\n    int64_t s23;\n\n    int64_t carry0;\n    int64_t carry1;\n    int64_t carry2;\n    int64_t carry3;\n    int64_t carry4;\n    int64_t carry5;\n    int64_t carry6;\n    int64_t carry7;\n    int64_t carry8;\n    int64_t carry9;\n    int64_t carry10;\n    int64_t carry11;\n    int64_t carry12;\n    int64_t carry13;\n    int64_t carry14;\n    int64_t carry15;\n    int64_t carry16;\n    int64_t carry17;\n    int64_t carry18;\n    int64_t carry19;\n    int64_t carry20;\n    int64_t carry21;\n    int64_t carry22;\n\n    s0 = c0 + a0 * b0;\n    s1 = c1 + a0 * b1 + a1 * b0;\n    s2 = c2 + a0 * b2 + a1 * b1 + a2 * b0;\n    s3 = c3 + a0 * b3 + a1 * b2 + a2 * b1 + a3 * b0;\n    s4 = c4 + a0 * b4 + a1 * b3 + a2 * b2 + a3 * b1 + a4 * b0;\n    s5 = c5 + a0 * b5 + a1 * b4 + a2 * b3 + a3 * b2 + a4 * b1 + a5 * b0;\n    s6 = c6 + a0 * b6 + a1 * b5 + a2 * b4 + a3 * b3 + a4 * b2 + a5 * b1 +\n         a6 * b0;\n    s7 = c7 + a0 * b7 + a1 * b6 + a2 * b5 + a3 * b4 + a4 * b3 + a5 * b2 +\n         a6 * b1 + a7 * b0;\n    s8 = c8 + a0 * b8 + a1 * b7 + a2 * b6 + a3 * b5 + a4 * b4 + a5 * b3 +\n         a6 * b2 + a7 * b1 + a8 * b0;\n    s9 = c9 + a0 * b9 + a1 * b8 + a2 * b7 + a3 * b6 + a4 * b5 + a5 * b4 +\n         a6 * b3 + a7 * b2 + a8 * b1 + a9 * b0;\n    s10 = c10 + a0 * b10 + a1 * b9 + a2 * b8 + a3 * b7 + a4 * b6 + a5 * b5 +\n          a6 * b4 + a7 * b3 + a8 * b2 + a9 * b1 + a10 * b0;\n    s11 = c11 + a0 * b11 + a1 * b10 + a2 * b9 + a3 * b8 + a4 * b7 + a5 * b6 +\n          a6 * b5 + a7 * b4 + a8 * b3 + a9 * b2 + a10 * b1 + a11 * b0;\n    s12 = a1 * b11 + a2 * b10 + a3 * b9 + a4 * b8 + a5 * b7 + a6 * b6 +\n          a7 * b5 + a8 * b4 + a9 * b3 + a10 * b2 + a11 * b1;\n    s13 = a2 * b11 + a3 * b10 + a4 * b9 + a5 * b8 + a6 * b7 + a7 * b6 +\n          a8 * b5 + a9 * b4 + a10 * b3 + a11 * b2;\n    s14 = a3 * b11 + a4 * b10 + a5 * b9 + a6 * b8 + a7 * b7 + a8 * b6 +\n          a9 * b5 + a10 * b4 + a11 * b3;\n    s15 = a4 * b11 + a5 * b10 + a6 * b9 + a7 * b8 + a8 * b7 + a9 * b6 +\n          a10 * b5 + a11 * b4;\n    s16 =\n        a5 * b11 + a6 * b10 + a7 * b9 + a8 * b8 + a9 * b7 + a10 * b6 + a11 * b5;\n    s17 = a6 * b11 + a7 * b10 + a8 * b9 + a9 * b8 + a10 * b7 + a11 * b6;\n    s18 = a7 * b11 + a8 * b10 + a9 * b9 + a10 * b8 + a11 * b7;\n    s19 = a8 * b11 + a9 * b10 + a10 * b9 + a11 * b8;\n    s20 = a9 * b11 + a10 * b10 + a11 * b9;\n    s21 = a10 * b11 + a11 * b10;\n    s22 = a11 * b11;\n    s23 = 0;\n\n    carry0 = (s0 + (int64_t) (1L << 20)) >> 21;\n    s1 += carry0;\n    s0 -= carry0 * ((uint64_t) 1L << 21);\n    carry2 = (s2 + (int64_t) (1L << 20)) >> 21;\n    s3 += carry2;\n    s2 -= carry2 * ((uint64_t) 1L << 21);\n    carry4 = (s4 + (int64_t) (1L << 20)) >> 21;\n    s5 += carry4;\n    s4 -= carry4 * ((uint64_t) 1L << 21);\n    carry6 = (s6 + (int64_t) (1L << 20)) >> 21;\n    s7 += carry6;\n    s6 -= carry6 * ((uint64_t) 1L << 21);\n    carry8 = (s8 + (int64_t) (1L << 20)) >> 21;\n    s9 += carry8;\n    s8 -= carry8 * ((uint64_t) 1L << 21);\n    carry10 = (s10 + (int64_t) (1L << 20)) >> 21;\n    s11 += carry10;\n    s10 -= carry10 * ((uint64_t) 1L << 21);\n    carry12 = (s12 + (int64_t) (1L << 20)) >> 21;\n    s13 += carry12;\n    s12 -= carry12 * ((uint64_t) 1L << 21);\n    carry14 = (s14 + (int64_t) (1L << 20)) >> 21;\n    s15 += carry14;\n    s14 -= carry14 * ((uint64_t) 1L << 21);\n    carry16 = (s16 + (int64_t) (1L << 20)) >> 21;\n    s17 += carry16;\n    s16 -= carry16 * ((uint64_t) 1L << 21);\n    carry18 = (s18 + (int64_t) (1L << 20)) >> 21;\n    s19 += carry18;\n    s18 -= carry18 * ((uint64_t) 1L << 21);\n    carry20 = (s20 + (int64_t) (1L << 20)) >> 21;\n    s21 += carry20;\n    s20 -= carry20 * ((uint64_t) 1L << 21);\n    carry22 = (s22 + (int64_t) (1L << 20)) >> 21;\n    s23 += carry22;\n    s22 -= carry22 * ((uint64_t) 1L << 21);\n\n    carry1 = (s1 + (int64_t) (1L << 20)) >> 21;\n    s2 += carry1;\n    s1 -= carry1 * ((uint64_t) 1L << 21);\n    carry3 = (s3 + (int64_t) (1L << 20)) >> 21;\n    s4 += carry3;\n    s3 -= carry3 * ((uint64_t) 1L << 21);\n    carry5 = (s5 + (int64_t) (1L << 20)) >> 21;\n    s6 += carry5;\n    s5 -= carry5 * ((uint64_t) 1L << 21);\n    carry7 = (s7 + (int64_t) (1L << 20)) >> 21;\n    s8 += carry7;\n    s7 -= carry7 * ((uint64_t) 1L << 21);\n    carry9 = (s9 + (int64_t) (1L << 20)) >> 21;\n    s10 += carry9;\n    s9 -= carry9 * ((uint64_t) 1L << 21);\n    carry11 = (s11 + (int64_t) (1L << 20)) >> 21;\n    s12 += carry11;\n    s11 -= carry11 * ((uint64_t) 1L << 21);\n    carry13 = (s13 + (int64_t) (1L << 20)) >> 21;\n    s14 += carry13;\n    s13 -= carry13 * ((uint64_t) 1L << 21);\n    carry15 = (s15 + (int64_t) (1L << 20)) >> 21;\n    s16 += carry15;\n    s15 -= carry15 * ((uint64_t) 1L << 21);\n    carry17 = (s17 + (int64_t) (1L << 20)) >> 21;\n    s18 += carry17;\n    s17 -= carry17 * ((uint64_t) 1L << 21);\n    carry19 = (s19 + (int64_t) (1L << 20)) >> 21;\n    s20 += carry19;\n    s19 -= carry19 * ((uint64_t) 1L << 21);\n    carry21 = (s21 + (int64_t) (1L << 20)) >> 21;\n    s22 += carry21;\n    s21 -= carry21 * ((uint64_t) 1L << 21);\n\n    s11 += s23 * 666643;\n    s12 += s23 * 470296;\n    s13 += s23 * 654183;\n    s14 -= s23 * 997805;\n    s15 += s23 * 136657;\n    s16 -= s23 * 683901;\n\n    s10 += s22 * 666643;\n    s11 += s22 * 470296;\n    s12 += s22 * 654183;\n    s13 -= s22 * 997805;\n    s14 += s22 * 136657;\n    s15 -= s22 * 683901;\n\n    s9 += s21 * 666643;\n    s10 += s21 * 470296;\n    s11 += s21 * 654183;\n    s12 -= s21 * 997805;\n    s13 += s21 * 136657;\n    s14 -= s21 * 683901;\n\n    s8 += s20 * 666643;\n    s9 += s20 * 470296;\n    s10 += s20 * 654183;\n    s11 -= s20 * 997805;\n    s12 += s20 * 136657;\n    s13 -= s20 * 683901;\n\n    s7 += s19 * 666643;\n    s8 += s19 * 470296;\n    s9 += s19 * 654183;\n    s10 -= s19 * 997805;\n    s11 += s19 * 136657;\n    s12 -= s19 * 683901;\n\n    s6 += s18 * 666643;\n    s7 += s18 * 470296;\n    s8 += s18 * 654183;\n    s9 -= s18 * 997805;\n    s10 += s18 * 136657;\n    s11 -= s18 * 683901;\n\n    carry6 = (s6 + (int64_t) (1L << 20)) >> 21;\n    s7 += carry6;\n    s6 -= carry6 * ((uint64_t) 1L << 21);\n    carry8 = (s8 + (int64_t) (1L << 20)) >> 21;\n    s9 += carry8;\n    s8 -= carry8 * ((uint64_t) 1L << 21);\n    carry10 = (s10 + (int64_t) (1L << 20)) >> 21;\n    s11 += carry10;\n    s10 -= carry10 * ((uint64_t) 1L << 21);\n    carry12 = (s12 + (int64_t) (1L << 20)) >> 21;\n    s13 += carry12;\n    s12 -= carry12 * ((uint64_t) 1L << 21);\n    carry14 = (s14 + (int64_t) (1L << 20)) >> 21;\n    s15 += carry14;\n    s14 -= carry14 * ((uint64_t) 1L << 21);\n    carry16 = (s16 + (int64_t) (1L << 20)) >> 21;\n    s17 += carry16;\n    s16 -= carry16 * ((uint64_t) 1L << 21);\n\n    carry7 = (s7 + (int64_t) (1L << 20)) >> 21;\n    s8 += carry7;\n    s7 -= carry7 * ((uint64_t) 1L << 21);\n    carry9 = (s9 + (int64_t) (1L << 20)) >> 21;\n    s10 += carry9;\n    s9 -= carry9 * ((uint64_t) 1L << 21);\n    carry11 = (s11 + (int64_t) (1L << 20)) >> 21;\n    s12 += carry11;\n    s11 -= carry11 * ((uint64_t) 1L << 21);\n    carry13 = (s13 + (int64_t) (1L << 20)) >> 21;\n    s14 += carry13;\n    s13 -= carry13 * ((uint64_t) 1L << 21);\n    carry15 = (s15 + (int64_t) (1L << 20)) >> 21;\n    s16 += carry15;\n    s15 -= carry15 * ((uint64_t) 1L << 21);\n\n    s5 += s17 * 666643;\n    s6 += s17 * 470296;\n    s7 += s17 * 654183;\n    s8 -= s17 * 997805;\n    s9 += s17 * 136657;\n    s10 -= s17 * 683901;\n\n    s4 += s16 * 666643;\n    s5 += s16 * 470296;\n    s6 += s16 * 654183;\n    s7 -= s16 * 997805;\n    s8 += s16 * 136657;\n    s9 -= s16 * 683901;\n\n    s3 += s15 * 666643;\n    s4 += s15 * 470296;\n    s5 += s15 * 654183;\n    s6 -= s15 * 997805;\n    s7 += s15 * 136657;\n    s8 -= s15 * 683901;\n\n    s2 += s14 * 666643;\n    s3 += s14 * 470296;\n    s4 += s14 * 654183;\n    s5 -= s14 * 997805;\n    s6 += s14 * 136657;\n    s7 -= s14 * 683901;\n\n    s1 += s13 * 666643;\n    s2 += s13 * 470296;\n    s3 += s13 * 654183;\n    s4 -= s13 * 997805;\n    s5 += s13 * 136657;\n    s6 -= s13 * 683901;\n\n    s0 += s12 * 666643;\n    s1 += s12 * 470296;\n    s2 += s12 * 654183;\n    s3 -= s12 * 997805;\n    s4 += s12 * 136657;\n    s5 -= s12 * 683901;\n    s12 = 0;\n\n    carry0 = (s0 + (int64_t) (1L << 20)) >> 21;\n    s1 += carry0;\n    s0 -= carry0 * ((uint64_t) 1L << 21);\n    carry2 = (s2 + (int64_t) (1L << 20)) >> 21;\n    s3 += carry2;\n    s2 -= carry2 * ((uint64_t) 1L << 21);\n    carry4 = (s4 + (int64_t) (1L << 20)) >> 21;\n    s5 += carry4;\n    s4 -= carry4 * ((uint64_t) 1L << 21);\n    carry6 = (s6 + (int64_t) (1L << 20)) >> 21;\n    s7 += carry6;\n    s6 -= carry6 * ((uint64_t) 1L << 21);\n    carry8 = (s8 + (int64_t) (1L << 20)) >> 21;\n    s9 += carry8;\n    s8 -= carry8 * ((uint64_t) 1L << 21);\n    carry10 = (s10 + (int64_t) (1L << 20)) >> 21;\n    s11 += carry10;\n    s10 -= carry10 * ((uint64_t) 1L << 21);\n\n    carry1 = (s1 + (int64_t) (1L << 20)) >> 21;\n    s2 += carry1;\n    s1 -= carry1 * ((uint64_t) 1L << 21);\n    carry3 = (s3 + (int64_t) (1L << 20)) >> 21;\n    s4 += carry3;\n    s3 -= carry3 * ((uint64_t) 1L << 21);\n    carry5 = (s5 + (int64_t) (1L << 20)) >> 21;\n    s6 += carry5;\n    s5 -= carry5 * ((uint64_t) 1L << 21);\n    carry7 = (s7 + (int64_t) (1L << 20)) >> 21;\n    s8 += carry7;\n    s7 -= carry7 * ((uint64_t) 1L << 21);\n    carry9 = (s9 + (int64_t) (1L << 20)) >> 21;\n    s10 += carry9;\n    s9 -= carry9 * ((uint64_t) 1L << 21);\n    carry11 = (s11 + (int64_t) (1L << 20)) >> 21;\n    s12 += carry11;\n    s11 -= carry11 * ((uint64_t) 1L << 21);\n\n    s0 += s12 * 666643;\n    s1 += s12 * 470296;\n    s2 += s12 * 654183;\n    s3 -= s12 * 997805;\n    s4 += s12 * 136657;\n    s5 -= s12 * 683901;\n    s12 = 0;\n\n    carry0 = s0 >> 21;\n    s1 += carry0;\n    s0 -= carry0 * ((uint64_t) 1L << 21);\n    carry1 = s1 >> 21;\n    s2 += carry1;\n    s1 -= carry1 * ((uint64_t) 1L << 21);\n    carry2 = s2 >> 21;\n    s3 += carry2;\n    s2 -= carry2 * ((uint64_t) 1L << 21);\n    carry3 = s3 >> 21;\n    s4 += carry3;\n    s3 -= carry3 * ((uint64_t) 1L << 21);\n    carry4 = s4 >> 21;\n    s5 += carry4;\n    s4 -= carry4 * ((uint64_t) 1L << 21);\n    carry5 = s5 >> 21;\n    s6 += carry5;\n    s5 -= carry5 * ((uint64_t) 1L << 21);\n    carry6 = s6 >> 21;\n    s7 += carry6;\n    s6 -= carry6 * ((uint64_t) 1L << 21);\n    carry7 = s7 >> 21;\n    s8 += carry7;\n    s7 -= carry7 * ((uint64_t) 1L << 21);\n    carry8 = s8 >> 21;\n    s9 += carry8;\n    s8 -= carry8 * ((uint64_t) 1L << 21);\n    carry9 = s9 >> 21;\n    s10 += carry9;\n    s9 -= carry9 * ((uint64_t) 1L << 21);\n    carry10 = s10 >> 21;\n    s11 += carry10;\n    s10 -= carry10 * ((uint64_t) 1L << 21);\n    carry11 = s11 >> 21;\n    s12 += carry11;\n    s11 -= carry11 * ((uint64_t) 1L << 21);\n\n    s0 += s12 * 666643;\n    s1 += s12 * 470296;\n    s2 += s12 * 654183;\n    s3 -= s12 * 997805;\n    s4 += s12 * 136657;\n    s5 -= s12 * 683901;\n\n    carry0 = s0 >> 21;\n    s1 += carry0;\n    s0 -= carry0 * ((uint64_t) 1L << 21);\n    carry1 = s1 >> 21;\n    s2 += carry1;\n    s1 -= carry1 * ((uint64_t) 1L << 21);\n    carry2 = s2 >> 21;\n    s3 += carry2;\n    s2 -= carry2 * ((uint64_t) 1L << 21);\n    carry3 = s3 >> 21;\n    s4 += carry3;\n    s3 -= carry3 * ((uint64_t) 1L << 21);\n    carry4 = s4 >> 21;\n    s5 += carry4;\n    s4 -= carry4 * ((uint64_t) 1L << 21);\n    carry5 = s5 >> 21;\n    s6 += carry5;\n    s5 -= carry5 * ((uint64_t) 1L << 21);\n    carry6 = s6 >> 21;\n    s7 += carry6;\n    s6 -= carry6 * ((uint64_t) 1L << 21);\n    carry7 = s7 >> 21;\n    s8 += carry7;\n    s7 -= carry7 * ((uint64_t) 1L << 21);\n    carry8 = s8 >> 21;\n    s9 += carry8;\n    s8 -= carry8 * ((uint64_t) 1L << 21);\n    carry9 = s9 >> 21;\n    s10 += carry9;\n    s9 -= carry9 * ((uint64_t) 1L << 21);\n    carry10 = s10 >> 21;\n    s11 += carry10;\n    s10 -= carry10 * ((uint64_t) 1L << 21);\n\n    s[0]  = s0 >> 0;\n    s[1]  = s0 >> 8;\n    s[2]  = (s0 >> 16) | (s1 * ((uint64_t) 1 << 5));\n    s[3]  = s1 >> 3;\n    s[4]  = s1 >> 11;\n    s[5]  = (s1 >> 19) | (s2 * ((uint64_t) 1 << 2));\n    s[6]  = s2 >> 6;\n    s[7]  = (s2 >> 14) | (s3 * ((uint64_t) 1 << 7));\n    s[8]  = s3 >> 1;\n    s[9]  = s3 >> 9;\n    s[10] = (s3 >> 17) | (s4 * ((uint64_t) 1 << 4));\n    s[11] = s4 >> 4;\n    s[12] = s4 >> 12;\n    s[13] = (s4 >> 20) | (s5 * ((uint64_t) 1 << 1));\n    s[14] = s5 >> 7;\n    s[15] = (s5 >> 15) | (s6 * ((uint64_t) 1 << 6));\n    s[16] = s6 >> 2;\n    s[17] = s6 >> 10;\n    s[18] = (s6 >> 18) | (s7 * ((uint64_t) 1 << 3));\n    s[19] = s7 >> 5;\n    s[20] = s7 >> 13;\n    s[21] = s8 >> 0;\n    s[22] = s8 >> 8;\n    s[23] = (s8 >> 16) | (s9 * ((uint64_t) 1 << 5));\n    s[24] = s9 >> 3;\n    s[25] = s9 >> 11;\n    s[26] = (s9 >> 19) | (s10 * ((uint64_t) 1 << 2));\n    s[27] = s10 >> 6;\n    s[28] = (s10 >> 14) | (s11 * ((uint64_t) 1 << 7));\n    s[29] = s11 >> 1;\n    s[30] = s11 >> 9;\n    s[31] = s11 >> 17;\n}\n\n/*\n Input:\n a[0]+256*a[1]+...+256^31*a[31] = a\n *\n Output:\n s[0]+256*s[1]+...+256^31*s[31] = a^2 mod l\n where l = 2^252 + 27742317777372353535851937790883648493.\n */\n\nstatic inline void\nsc25519_sq(unsigned char *s, const unsigned char *a)\n{\n    sc25519_mul(s, a, a);\n}\n\n/*\n Input:\n s[0]+256*a[1]+...+256^31*a[31] = a\n n\n *\n Output:\n s[0]+256*s[1]+...+256^31*s[31] = x * s^(s^n) mod l\n where l = 2^252 + 27742317777372353535851937790883648493.\n Overwrites s in place.\n */\n\nstatic inline void\nsc25519_sqmul(unsigned char s[32], const int n, const unsigned char a[32])\n{\n    int i;\n\n    for (i = 0; i < n; i++) {\n        sc25519_sq(s, s);\n    }\n    sc25519_mul(s, s, a);\n}\n\nvoid\nsc25519_invert(unsigned char recip[32], const unsigned char s[32])\n{\n    unsigned char _10[32], _100[32], _1000[32], _10000[32], _100000[32],\n        _1000000[32], _10010011[32], _10010111[32], _100110[32], _1010[32],\n        _1010000[32], _1010011[32], _1011[32], _10110[32], _10111101[32],\n        _11[32], _1100011[32], _1100111[32], _11010011[32], _1101011[32],\n        _11100111[32], _11101011[32], _11110101[32];\n\n    sc25519_sq(_10, s);\n    sc25519_mul(_11, s, _10);\n    sc25519_mul(_100, s, _11);\n    sc25519_sq(_1000, _100);\n    sc25519_mul(_1010, _10, _1000);\n    sc25519_mul(_1011, s, _1010);\n    sc25519_sq(_10000, _1000);\n    sc25519_sq(_10110, _1011);\n    sc25519_mul(_100000, _1010, _10110);\n    sc25519_mul(_100110, _10000, _10110);\n    sc25519_sq(_1000000, _100000);\n    sc25519_mul(_1010000, _10000, _1000000);\n    sc25519_mul(_1010011, _11, _1010000);\n    sc25519_mul(_1100011, _10000, _1010011);\n    sc25519_mul(_1100111, _100, _1100011);\n    sc25519_mul(_1101011, _100, _1100111);\n    sc25519_mul(_10010011, _1000000, _1010011);\n    sc25519_mul(_10010111, _100, _10010011);\n    sc25519_mul(_10111101, _100110, _10010111);\n    sc25519_mul(_11010011, _10110, _10111101);\n    sc25519_mul(_11100111, _1010000, _10010111);\n    sc25519_mul(_11101011, _100, _11100111);\n    sc25519_mul(_11110101, _1010, _11101011);\n\n    sc25519_mul(recip, _1011, _11110101);\n    sc25519_sqmul(recip, 126, _1010011);\n    sc25519_sqmul(recip, 9, _10);\n    sc25519_mul(recip, recip, _11110101);\n    sc25519_sqmul(recip, 7, _1100111);\n    sc25519_sqmul(recip, 9, _11110101);\n    sc25519_sqmul(recip, 11, _10111101);\n    sc25519_sqmul(recip, 8, _11100111);\n    sc25519_sqmul(recip, 9, _1101011);\n    sc25519_sqmul(recip, 6, _1011);\n    sc25519_sqmul(recip, 14, _10010011);\n    sc25519_sqmul(recip, 10, _1100011);\n    sc25519_sqmul(recip, 9, _10010111);\n    sc25519_sqmul(recip, 10, _11110101);\n    sc25519_sqmul(recip, 8, _11010011);\n    sc25519_sqmul(recip, 8, _11101011);\n}\n\n/*\n Input:\n s[0]+256*s[1]+...+256^63*s[63] = s\n *\n Output:\n s[0]+256*s[1]+...+256^31*s[31] = s mod l\n where l = 2^252 + 27742317777372353535851937790883648493.\n Overwrites s in place.\n */\n\nvoid\nsc25519_reduce(unsigned char s[64])\n{\n    int64_t s0  = 2097151 & load_3(s);\n    int64_t s1  = 2097151 & (load_4(s + 2) >> 5);\n    int64_t s2  = 2097151 & (load_3(s + 5) >> 2);\n    int64_t s3  = 2097151 & (load_4(s + 7) >> 7);\n    int64_t s4  = 2097151 & (load_4(s + 10) >> 4);\n    int64_t s5  = 2097151 & (load_3(s + 13) >> 1);\n    int64_t s6  = 2097151 & (load_4(s + 15) >> 6);\n    int64_t s7  = 2097151 & (load_3(s + 18) >> 3);\n    int64_t s8  = 2097151 & load_3(s + 21);\n    int64_t s9  = 2097151 & (load_4(s + 23) >> 5);\n    int64_t s10 = 2097151 & (load_3(s + 26) >> 2);\n    int64_t s11 = 2097151 & (load_4(s + 28) >> 7);\n    int64_t s12 = 2097151 & (load_4(s + 31) >> 4);\n    int64_t s13 = 2097151 & (load_3(s + 34) >> 1);\n    int64_t s14 = 2097151 & (load_4(s + 36) >> 6);\n    int64_t s15 = 2097151 & (load_3(s + 39) >> 3);\n    int64_t s16 = 2097151 & load_3(s + 42);\n    int64_t s17 = 2097151 & (load_4(s + 44) >> 5);\n    int64_t s18 = 2097151 & (load_3(s + 47) >> 2);\n    int64_t s19 = 2097151 & (load_4(s + 49) >> 7);\n    int64_t s20 = 2097151 & (load_4(s + 52) >> 4);\n    int64_t s21 = 2097151 & (load_3(s + 55) >> 1);\n    int64_t s22 = 2097151 & (load_4(s + 57) >> 6);\n    int64_t s23 = (load_4(s + 60) >> 3);\n\n    int64_t carry0;\n    int64_t carry1;\n    int64_t carry2;\n    int64_t carry3;\n    int64_t carry4;\n    int64_t carry5;\n    int64_t carry6;\n    int64_t carry7;\n    int64_t carry8;\n    int64_t carry9;\n    int64_t carry10;\n    int64_t carry11;\n    int64_t carry12;\n    int64_t carry13;\n    int64_t carry14;\n    int64_t carry15;\n    int64_t carry16;\n\n    s11 += s23 * 666643;\n    s12 += s23 * 470296;\n    s13 += s23 * 654183;\n    s14 -= s23 * 997805;\n    s15 += s23 * 136657;\n    s16 -= s23 * 683901;\n\n    s10 += s22 * 666643;\n    s11 += s22 * 470296;\n    s12 += s22 * 654183;\n    s13 -= s22 * 997805;\n    s14 += s22 * 136657;\n    s15 -= s22 * 683901;\n\n    s9 += s21 * 666643;\n    s10 += s21 * 470296;\n    s11 += s21 * 654183;\n    s12 -= s21 * 997805;\n    s13 += s21 * 136657;\n    s14 -= s21 * 683901;\n\n    s8 += s20 * 666643;\n    s9 += s20 * 470296;\n    s10 += s20 * 654183;\n    s11 -= s20 * 997805;\n    s12 += s20 * 136657;\n    s13 -= s20 * 683901;\n\n    s7 += s19 * 666643;\n    s8 += s19 * 470296;\n    s9 += s19 * 654183;\n    s10 -= s19 * 997805;\n    s11 += s19 * 136657;\n    s12 -= s19 * 683901;\n\n    s6 += s18 * 666643;\n    s7 += s18 * 470296;\n    s8 += s18 * 654183;\n    s9 -= s18 * 997805;\n    s10 += s18 * 136657;\n    s11 -= s18 * 683901;\n\n    carry6 = (s6 + (int64_t) (1L << 20)) >> 21;\n    s7 += carry6;\n    s6 -= carry6 * ((uint64_t) 1L << 21);\n    carry8 = (s8 + (int64_t) (1L << 20)) >> 21;\n    s9 += carry8;\n    s8 -= carry8 * ((uint64_t) 1L << 21);\n    carry10 = (s10 + (int64_t) (1L << 20)) >> 21;\n    s11 += carry10;\n    s10 -= carry10 * ((uint64_t) 1L << 21);\n    carry12 = (s12 + (int64_t) (1L << 20)) >> 21;\n    s13 += carry12;\n    s12 -= carry12 * ((uint64_t) 1L << 21);\n    carry14 = (s14 + (int64_t) (1L << 20)) >> 21;\n    s15 += carry14;\n    s14 -= carry14 * ((uint64_t) 1L << 21);\n    carry16 = (s16 + (int64_t) (1L << 20)) >> 21;\n    s17 += carry16;\n    s16 -= carry16 * ((uint64_t) 1L << 21);\n\n    carry7 = (s7 + (int64_t) (1L << 20)) >> 21;\n    s8 += carry7;\n    s7 -= carry7 * ((uint64_t) 1L << 21);\n    carry9 = (s9 + (int64_t) (1L << 20)) >> 21;\n    s10 += carry9;\n    s9 -= carry9 * ((uint64_t) 1L << 21);\n    carry11 = (s11 + (int64_t) (1L << 20)) >> 21;\n    s12 += carry11;\n    s11 -= carry11 * ((uint64_t) 1L << 21);\n    carry13 = (s13 + (int64_t) (1L << 20)) >> 21;\n    s14 += carry13;\n    s13 -= carry13 * ((uint64_t) 1L << 21);\n    carry15 = (s15 + (int64_t) (1L << 20)) >> 21;\n    s16 += carry15;\n    s15 -= carry15 * ((uint64_t) 1L << 21);\n\n    s5 += s17 * 666643;\n    s6 += s17 * 470296;\n    s7 += s17 * 654183;\n    s8 -= s17 * 997805;\n    s9 += s17 * 136657;\n    s10 -= s17 * 683901;\n\n    s4 += s16 * 666643;\n    s5 += s16 * 470296;\n    s6 += s16 * 654183;\n    s7 -= s16 * 997805;\n    s8 += s16 * 136657;\n    s9 -= s16 * 683901;\n\n    s3 += s15 * 666643;\n    s4 += s15 * 470296;\n    s5 += s15 * 654183;\n    s6 -= s15 * 997805;\n    s7 += s15 * 136657;\n    s8 -= s15 * 683901;\n\n    s2 += s14 * 666643;\n    s3 += s14 * 470296;\n    s4 += s14 * 654183;\n    s5 -= s14 * 997805;\n    s6 += s14 * 136657;\n    s7 -= s14 * 683901;\n\n    s1 += s13 * 666643;\n    s2 += s13 * 470296;\n    s3 += s13 * 654183;\n    s4 -= s13 * 997805;\n    s5 += s13 * 136657;\n    s6 -= s13 * 683901;\n\n    s0 += s12 * 666643;\n    s1 += s12 * 470296;\n    s2 += s12 * 654183;\n    s3 -= s12 * 997805;\n    s4 += s12 * 136657;\n    s5 -= s12 * 683901;\n    s12 = 0;\n\n    carry0 = (s0 + (int64_t) (1L << 20)) >> 21;\n    s1 += carry0;\n    s0 -= carry0 * ((uint64_t) 1L << 21);\n    carry2 = (s2 + (int64_t) (1L << 20)) >> 21;\n    s3 += carry2;\n    s2 -= carry2 * ((uint64_t) 1L << 21);\n    carry4 = (s4 + (int64_t) (1L << 20)) >> 21;\n    s5 += carry4;\n    s4 -= carry4 * ((uint64_t) 1L << 21);\n    carry6 = (s6 + (int64_t) (1L << 20)) >> 21;\n    s7 += carry6;\n    s6 -= carry6 * ((uint64_t) 1L << 21);\n    carry8 = (s8 + (int64_t) (1L << 20)) >> 21;\n    s9 += carry8;\n    s8 -= carry8 * ((uint64_t) 1L << 21);\n    carry10 = (s10 + (int64_t) (1L << 20)) >> 21;\n    s11 += carry10;\n    s10 -= carry10 * ((uint64_t) 1L << 21);\n\n    carry1 = (s1 + (int64_t) (1L << 20)) >> 21;\n    s2 += carry1;\n    s1 -= carry1 * ((uint64_t) 1L << 21);\n    carry3 = (s3 + (int64_t) (1L << 20)) >> 21;\n    s4 += carry3;\n    s3 -= carry3 * ((uint64_t) 1L << 21);\n    carry5 = (s5 + (int64_t) (1L << 20)) >> 21;\n    s6 += carry5;\n    s5 -= carry5 * ((uint64_t) 1L << 21);\n    carry7 = (s7 + (int64_t) (1L << 20)) >> 21;\n    s8 += carry7;\n    s7 -= carry7 * ((uint64_t) 1L << 21);\n    carry9 = (s9 + (int64_t) (1L << 20)) >> 21;\n    s10 += carry9;\n    s9 -= carry9 * ((uint64_t) 1L << 21);\n    carry11 = (s11 + (int64_t) (1L << 20)) >> 21;\n    s12 += carry11;\n    s11 -= carry11 * ((uint64_t) 1L << 21);\n\n    s0 += s12 * 666643;\n    s1 += s12 * 470296;\n    s2 += s12 * 654183;\n    s3 -= s12 * 997805;\n    s4 += s12 * 136657;\n    s5 -= s12 * 683901;\n    s12 = 0;\n\n    carry0 = s0 >> 21;\n    s1 += carry0;\n    s0 -= carry0 * ((uint64_t) 1L << 21);\n    carry1 = s1 >> 21;\n    s2 += carry1;\n    s1 -= carry1 * ((uint64_t) 1L << 21);\n    carry2 = s2 >> 21;\n    s3 += carry2;\n    s2 -= carry2 * ((uint64_t) 1L << 21);\n    carry3 = s3 >> 21;\n    s4 += carry3;\n    s3 -= carry3 * ((uint64_t) 1L << 21);\n    carry4 = s4 >> 21;\n    s5 += carry4;\n    s4 -= carry4 * ((uint64_t) 1L << 21);\n    carry5 = s5 >> 21;\n    s6 += carry5;\n    s5 -= carry5 * ((uint64_t) 1L << 21);\n    carry6 = s6 >> 21;\n    s7 += carry6;\n    s6 -= carry6 * ((uint64_t) 1L << 21);\n    carry7 = s7 >> 21;\n    s8 += carry7;\n    s7 -= carry7 * ((uint64_t) 1L << 21);\n    carry8 = s8 >> 21;\n    s9 += carry8;\n    s8 -= carry8 * ((uint64_t) 1L << 21);\n    carry9 = s9 >> 21;\n    s10 += carry9;\n    s9 -= carry9 * ((uint64_t) 1L << 21);\n    carry10 = s10 >> 21;\n    s11 += carry10;\n    s10 -= carry10 * ((uint64_t) 1L << 21);\n    carry11 = s11 >> 21;\n    s12 += carry11;\n    s11 -= carry11 * ((uint64_t) 1L << 21);\n\n    s0 += s12 * 666643;\n    s1 += s12 * 470296;\n    s2 += s12 * 654183;\n    s3 -= s12 * 997805;\n    s4 += s12 * 136657;\n    s5 -= s12 * 683901;\n\n    carry0 = s0 >> 21;\n    s1 += carry0;\n    s0 -= carry0 * ((uint64_t) 1L << 21);\n    carry1 = s1 >> 21;\n    s2 += carry1;\n    s1 -= carry1 * ((uint64_t) 1L << 21);\n    carry2 = s2 >> 21;\n    s3 += carry2;\n    s2 -= carry2 * ((uint64_t) 1L << 21);\n    carry3 = s3 >> 21;\n    s4 += carry3;\n    s3 -= carry3 * ((uint64_t) 1L << 21);\n    carry4 = s4 >> 21;\n    s5 += carry4;\n    s4 -= carry4 * ((uint64_t) 1L << 21);\n    carry5 = s5 >> 21;\n    s6 += carry5;\n    s5 -= carry5 * ((uint64_t) 1L << 21);\n    carry6 = s6 >> 21;\n    s7 += carry6;\n    s6 -= carry6 * ((uint64_t) 1L << 21);\n    carry7 = s7 >> 21;\n    s8 += carry7;\n    s7 -= carry7 * ((uint64_t) 1L << 21);\n    carry8 = s8 >> 21;\n    s9 += carry8;\n    s8 -= carry8 * ((uint64_t) 1L << 21);\n    carry9 = s9 >> 21;\n    s10 += carry9;\n    s9 -= carry9 * ((uint64_t) 1L << 21);\n    carry10 = s10 >> 21;\n    s11 += carry10;\n    s10 -= carry10 * ((uint64_t) 1L << 21);\n\n    s[0]  = s0 >> 0;\n    s[1]  = s0 >> 8;\n    s[2]  = (s0 >> 16) | (s1 * ((uint64_t) 1 << 5));\n    s[3]  = s1 >> 3;\n    s[4]  = s1 >> 11;\n    s[5]  = (s1 >> 19) | (s2 * ((uint64_t) 1 << 2));\n    s[6]  = s2 >> 6;\n    s[7]  = (s2 >> 14) | (s3 * ((uint64_t) 1 << 7));\n    s[8]  = s3 >> 1;\n    s[9]  = s3 >> 9;\n    s[10] = (s3 >> 17) | (s4 * ((uint64_t) 1 << 4));\n    s[11] = s4 >> 4;\n    s[12] = s4 >> 12;\n    s[13] = (s4 >> 20) | (s5 * ((uint64_t) 1 << 1));\n    s[14] = s5 >> 7;\n    s[15] = (s5 >> 15) | (s6 * ((uint64_t) 1 << 6));\n    s[16] = s6 >> 2;\n    s[17] = s6 >> 10;\n    s[18] = (s6 >> 18) | (s7 * ((uint64_t) 1 << 3));\n    s[19] = s7 >> 5;\n    s[20] = s7 >> 13;\n    s[21] = s8 >> 0;\n    s[22] = s8 >> 8;\n    s[23] = (s8 >> 16) | (s9 * ((uint64_t) 1 << 5));\n    s[24] = s9 >> 3;\n    s[25] = s9 >> 11;\n    s[26] = (s9 >> 19) | (s10 * ((uint64_t) 1 << 2));\n    s[27] = s10 >> 6;\n    s[28] = (s10 >> 14) | (s11 * ((uint64_t) 1 << 7));\n    s[29] = s11 >> 1;\n    s[30] = s11 >> 9;\n    s[31] = s11 >> 17;\n}\n\nint\nsc25519_is_canonical(const unsigned char s[32])\n{\n    /* 2^252+27742317777372353535851937790883648493 */\n    static const unsigned char L[32] = {\n        0xed, 0xd3, 0xf5, 0x5c, 0x1a, 0x63, 0x12, 0x58, 0xd6, 0x9c, 0xf7,\n        0xa2, 0xde, 0xf9, 0xde, 0x14, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10\n    };\n    unsigned char c = 0;\n    unsigned char n = 1;\n    unsigned int  i = 32;\n\n    do {\n        i--;\n        c |= ((s[i] - L[i]) >> 8) & n;\n        n &= ((s[i] ^ L[i]) - 1) >> 8;\n    } while (i != 0);\n\n    return (c != 0);\n}\n\n/* montgomery to edwards */\nstatic void\nge25519_mont_to_ed(fe25519 xed, fe25519 yed, const fe25519 x, const fe25519 y)\n{\n    fe25519 one;\n    fe25519 x_plus_one;\n    fe25519 x_minus_one;\n    fe25519 x_plus_one_y_inv;\n\n    fe25519_1(one);\n    fe25519_add(x_plus_one, x, one);\n    fe25519_sub(x_minus_one, x, one);\n\n    /* xed = sqrt(-A-2)*x/y */\n    fe25519_mul(x_plus_one_y_inv, x_plus_one, y);\n    fe25519_invert(x_plus_one_y_inv, x_plus_one_y_inv); /* 1/((x+1)*y) */\n    fe25519_mul(xed, x, ed25519_sqrtam2);\n    fe25519_mul(xed, xed, x_plus_one_y_inv);            /* sqrt(-A-2)*x/((x+1)*y) */\n    fe25519_mul(xed, xed, x_plus_one);\n\n    /* yed = (x-1)/(x+1) */\n    fe25519_mul(yed, x_plus_one_y_inv, y);              /* 1/(x+1) */\n    fe25519_mul(yed, yed, x_minus_one);\n    fe25519_cmov(yed, one, fe25519_iszero(x_plus_one_y_inv));\n}\n\n/* montgomery -- recover y = sqrt(x^3 + A*x^2 + x) */\nstatic int\nge25519_xmont_to_ymont(fe25519 y, const fe25519 x)\n{\n    fe25519 x2;\n    fe25519 x3;\n\n    fe25519_sq(x2, x);\n    fe25519_mul(x3, x, x2);\n    fe25519_mul32(x2, x2, ed25519_A_32);\n    fe25519_add(y, x3, x);\n    fe25519_add(y, y, x2);\n\n    return fe25519_sqrt(y, y);\n}\n\n/* multiply by the cofactor */\nvoid\nge25519_clear_cofactor(ge25519_p3 *p3)\n{\n    ge25519_p1p1 p1;\n    ge25519_p2   p2;\n\n    ge25519_p3_dbl(&p1, p3);\n    ge25519_p1p1_to_p2(&p2, &p1);\n    ge25519_p2_dbl(&p1, &p2);\n    ge25519_p1p1_to_p2(&p2, &p1);\n    ge25519_p2_dbl(&p1, &p2);\n    ge25519_p1p1_to_p3(p3, &p1);\n}\n\nstatic void\nge25519_elligator2(fe25519 x, fe25519 y, const fe25519 r, int *notsquare_p)\n{\n    fe25519       gx1;\n    fe25519       rr2;\n    fe25519       x2, x3, negx;\n    int           notsquare;\n\n    fe25519_sq2(rr2, r);\n    rr2[0]++;\n    fe25519_invert(rr2, rr2);\n    fe25519_mul32(x, rr2, ed25519_A_32);\n    fe25519_neg(x, x); /* x=x1 */\n\n    fe25519_sq(x2, x);\n    fe25519_mul(x3, x, x2);\n    fe25519_mul32(x2, x2, ed25519_A_32); /* x2 = A*x1^2 */\n    fe25519_add(gx1, x3, x);\n    fe25519_add(gx1, gx1, x2); /* gx1 = x1^3 + A*x1^2 + x1 */\n\n    notsquare = fe25519_notsquare(gx1);\n\n    /* gx1 not a square  => x = -x1-A */\n    fe25519_neg(negx, x);\n    fe25519_cmov(x, negx, notsquare);\n    fe25519_0(x2);\n    fe25519_cmov(x2, ed25519_A, notsquare);\n    fe25519_sub(x, x, x2);\n\n    /* y = sqrt(gx1) or sqrt(gx2) with gx2 = gx1 * (A+x1) / -x1 */\n    /* but it is about as fast to just recompute from the curve equation. */\n    if (ge25519_xmont_to_ymont(y, x) != 0) {\n        abort(); /* LCOV_EXCL_LINE */\n    }\n    *notsquare_p = notsquare;\n}\n\nvoid\nge25519_from_uniform(unsigned char s[32], const unsigned char r[32])\n{\n    ge25519_p3    p3;\n    fe25519       x, y, negxed;\n    fe25519       r_fe;\n    int           notsquare;\n    unsigned char x_sign;\n\n    memcpy(s, r, 32);\n    x_sign = ((s[31] >> 5) ^ optblocker_u8) >> 2;\n    s[31] &= 0x7f;\n    fe25519_frombytes(r_fe, s);\n\n    ge25519_elligator2(x, y, r_fe, &notsquare);\n\n    ge25519_mont_to_ed(p3.X, p3.Y, x, y);\n    fe25519_neg(negxed, p3.X);\n    fe25519_cmov(p3.X, negxed, fe25519_isnegative(p3.X) ^ x_sign);\n\n    fe25519_1(p3.Z);\n    fe25519_mul(p3.T, p3.X, p3.Y);\n    ge25519_clear_cofactor(&p3);\n    ge25519_p3_tobytes(s, &p3);\n}\n\nstatic void\nfe25519_reduce64(fe25519 fe_f, const unsigned char h[64])\n{\n    unsigned char fl[32];\n    unsigned char gl[32];\n    fe25519       fe_g;\n    size_t        i;\n\n    memcpy(fl, h, 32);\n    memcpy(gl, h + 32, 32);\n    fl[31] &= 0x7f;\n    gl[31] &= 0x7f;\n    fe25519_frombytes(fe_f, fl);\n    fe25519_frombytes(fe_g, gl);\n    fe_f[0] += (((h[31] >> 5) ^ optblocker_u8) >> 2) * 19 +\n     (((h[63] >> 5) ^ optblocker_u8) >> 2) * 722;\n    for (i = 0; i < sizeof (fe25519) / sizeof fe_f[0]; i++) {\n        fe_f[i] += 38 * fe_g[i];\n    }\n    fe25519_reduce(fe_f, fe_f);\n}\n\n/* LCOV_EXCL_START */\nvoid\nge25519_from_hash(unsigned char s[32], const unsigned char h[64])\n{\n    ge25519_p3    p3;\n    fe25519       fe_f;\n    fe25519       x, y, negy;\n    int           notsquare;\n    unsigned char y_sign;\n\n    fe25519_reduce64(fe_f, h);\n    ge25519_elligator2(x, y, fe_f, &notsquare);\n\n    y_sign = notsquare ^ 1;\n    fe25519_neg(negy, y);\n    fe25519_cmov(y, negy, fe25519_isnegative(y) ^ y_sign);\n\n    ge25519_mont_to_ed(p3.X, p3.Y, x, y);\n\n    fe25519_1(p3.Z);\n    fe25519_mul(p3.T, p3.X, p3.Y);\n    ge25519_clear_cofactor(&p3);\n    ge25519_p3_tobytes(s, &p3);\n}\n/* LCOV_EXCL_STOP */\n\n/* Ristretto group */\n\nstatic int\nristretto255_sqrt_ratio_m1(fe25519 x, const fe25519 u, const fe25519 v)\n{\n    fe25519 v3;\n    fe25519 vxx;\n    fe25519 m_root_check, p_root_check, f_root_check;\n    fe25519 x_sqrtm1;\n    int     has_m_root, has_p_root, has_f_root;\n\n    fe25519_sq(v3, v);\n    fe25519_mul(v3, v3, v); /* v3 = v^3 */\n    fe25519_sq(x, v3);\n    fe25519_mul(x, x, u);\n    fe25519_mul(x, x, v); /* x = uv^7 */\n\n    fe25519_pow22523(x, x); /* x = (uv^7)^((q-5)/8) */\n    fe25519_mul(x, x, v3);\n    fe25519_mul(x, x, u); /* x = uv^3(uv^7)^((q-5)/8) */\n\n    fe25519_sq(vxx, x);\n    fe25519_mul(vxx, vxx, v); /* vx^2 */\n    fe25519_sub(m_root_check, vxx, u); /* vx^2-u */\n    fe25519_add(p_root_check, vxx, u); /* vx^2+u */\n    fe25519_mul(f_root_check, u, fe25519_sqrtm1); /* u*sqrt(-1) */\n    fe25519_add(f_root_check, vxx, f_root_check); /* vx^2+u*sqrt(-1) */\n    has_m_root = fe25519_iszero(m_root_check);\n    has_p_root = fe25519_iszero(p_root_check);\n    has_f_root = fe25519_iszero(f_root_check);\n    fe25519_mul(x_sqrtm1, x, fe25519_sqrtm1); /* x*sqrt(-1) */\n\n    fe25519_cmov(x, x_sqrtm1, has_p_root | has_f_root);\n    fe25519_abs(x);\n\n    return has_m_root | has_p_root;\n}\n\nstatic int\nristretto255_is_canonical(const unsigned char *s)\n{\n    unsigned char c;\n    unsigned char d;\n    unsigned char e;\n    unsigned int  i;\n\n    c = (s[31] & 0x7f) ^ 0x7f;\n    for (i = 30; i > 0; i--) {\n        c |= s[i] ^ 0xff;\n    }\n    c = (((unsigned int) c) - 1U) >> 8;\n    d = (0xed - 1U - (unsigned int) s[0]) >> 8;\n    e = ((s[31] >> 5) ^ optblocker_u8) >> 2;\n\n    return 1 - (((c & d) | e | s[0]) & 1);\n}\n\nint\nristretto255_frombytes(ge25519_p3 *h, const unsigned char *s)\n{\n    fe25519 inv_sqrt;\n    fe25519 one;\n    fe25519 s_;\n    fe25519 ss;\n    fe25519 u1, u2;\n    fe25519 u1u1, u2u2;\n    fe25519 v;\n    fe25519 v_u2u2;\n    int     notsquare;\n\n    if (ristretto255_is_canonical(s) == 0) {\n        return -1;\n    }\n    fe25519_frombytes(s_, s);\n    fe25519_sq(ss, s_);                /* ss = s^2 */\n\n    fe25519_1(u1);\n    fe25519_sub(u1, u1, ss);           /* u1 = 1-ss */\n    fe25519_sq(u1u1, u1);              /* u1u1 = u1^2 */\n\n    fe25519_1(u2);\n    fe25519_add(u2, u2, ss);           /* u2 = 1+ss */\n    fe25519_sq(u2u2, u2);              /* u2u2 = u2^2 */\n\n    fe25519_mul(v, ed25519_d, u1u1);   /* v = d*u1^2 */\n    fe25519_neg(v, v);                 /* v = -d*u1^2 */\n    fe25519_sub(v, v, u2u2);           /* v = -(d*u1^2)-u2^2 */\n\n    fe25519_mul(v_u2u2, v, u2u2);      /* v_u2u2 = v*u2^2 */\n\n    fe25519_1(one);\n    notsquare = ristretto255_sqrt_ratio_m1(inv_sqrt, one, v_u2u2);\n    fe25519_mul(h->X, inv_sqrt, u2);\n    fe25519_mul(h->Y, inv_sqrt, h->X);\n    fe25519_mul(h->Y, h->Y, v);\n\n    fe25519_mul(h->X, h->X, s_);\n    fe25519_add(h->X, h->X, h->X);\n    fe25519_abs(h->X);\n    fe25519_mul(h->Y, u1, h->Y);\n    fe25519_1(h->Z);\n    fe25519_mul(h->T, h->X, h->Y);\n\n    return - ((1 - notsquare) |\n              fe25519_isnegative(h->T) | fe25519_iszero(h->Y));\n}\n\nvoid\nristretto255_p3_tobytes(unsigned char *s, const ge25519_p3 *h)\n{\n    fe25519 den1, den2;\n    fe25519 den_inv;\n    fe25519 eden;\n    fe25519 inv_sqrt;\n    fe25519 ix, iy;\n    fe25519 one;\n    fe25519 s_;\n    fe25519 t_z_inv;\n    fe25519 u1, u2;\n    fe25519 u1_u2u2;\n    fe25519 x_, y_;\n    fe25519 x_z_inv;\n    fe25519 z_inv;\n    fe25519 zmy;\n    int     rotate;\n\n    fe25519_add(u1, h->Z, h->Y);       /* u1 = Z+Y */\n    fe25519_sub(zmy, h->Z, h->Y);      /* zmy = Z-Y */\n    fe25519_mul(u1, u1, zmy);          /* u1 = (Z+Y)*(Z-Y) */\n    fe25519_mul(u2, h->X, h->Y);       /* u2 = X*Y */\n\n    fe25519_sq(u1_u2u2, u2);           /* u1_u2u2 = u2^2 */\n    fe25519_mul(u1_u2u2, u1, u1_u2u2); /* u1_u2u2 = u1*u2^2 */\n\n    fe25519_1(one);\n    (void) ristretto255_sqrt_ratio_m1(inv_sqrt, one, u1_u2u2);\n    fe25519_mul(den1, inv_sqrt, u1);   /* den1 = inv_sqrt*u1 */\n    fe25519_mul(den2, inv_sqrt, u2);   /* den2 = inv_sqrt*u2 */\n    fe25519_mul(z_inv, den1, den2);    /* z_inv = den1*den2 */\n    fe25519_mul(z_inv, z_inv, h->T);   /* z_inv = den1*den2*T */\n\n    fe25519_mul(ix, h->X, fe25519_sqrtm1);       /* ix = X*sqrt(-1) */\n    fe25519_mul(iy, h->Y, fe25519_sqrtm1);       /* iy = Y*sqrt(-1) */\n    fe25519_mul(eden, den1, ed25519_invsqrtamd); /* eden = den1/sqrt(a-d) */\n\n    fe25519_mul(t_z_inv, h->T, z_inv); /* t_z_inv = T*z_inv */\n    rotate = fe25519_isnegative(t_z_inv);\n\n    fe25519_copy(x_, h->X);\n    fe25519_copy(y_, h->Y);\n    fe25519_copy(den_inv, den2);\n\n    fe25519_cmov(x_, iy, rotate);\n    fe25519_cmov(y_, ix, rotate);\n    fe25519_cmov(den_inv, eden, rotate);\n\n    fe25519_mul(x_z_inv, x_, z_inv);\n    fe25519_cneg(y_, fe25519_isnegative(x_z_inv));\n\n    fe25519_sub(s_, h->Z, y_);\n    fe25519_mul(s_, den_inv, s_);\n    fe25519_abs(s_);\n    fe25519_tobytes(s, s_);\n}\n\nstatic void\nristretto255_elligator(ge25519_p3 *p, const fe25519 t)\n{\n    fe25519 c;\n    fe25519 n;\n    fe25519 one;\n    fe25519 r;\n    fe25519 rpd;\n    fe25519 s, s_prime;\n    fe25519 ss;\n    fe25519 u, v;\n    fe25519 w0, w1, w2, w3;\n    int     wasnt_square;\n\n    fe25519_1(one);\n    fe25519_sq(r, t);                  /* r = t^2 */\n    fe25519_mul(r, fe25519_sqrtm1, r); /* r = sqrt(-1)*t^2 */\n    fe25519_add(u, r, one);            /* u = r+1 */\n    fe25519_mul(u, u, ed25519_onemsqd);/* u = (r+1)*(1-d^2) */\n    fe25519_1(c);\n    fe25519_neg(c, c);                 /* c = -1 */\n    fe25519_add(rpd, r, ed25519_d);    /* rpd = r+d */\n    fe25519_mul(v, r, ed25519_d);      /* v = r*d */\n    fe25519_sub(v, c, v);              /* v = c-r*d */\n    fe25519_mul(v, v, rpd);            /* v = (c-r*d)*(r+d) */\n\n    wasnt_square = 1 - ristretto255_sqrt_ratio_m1(s, u, v);\n    fe25519_mul(s_prime, s, t);\n    fe25519_abs(s_prime);\n    fe25519_neg(s_prime, s_prime);     /* s_prime = -|s*t| */\n    fe25519_cmov(s, s_prime, wasnt_square);\n    fe25519_cmov(c, r, wasnt_square);\n\n    fe25519_sub(n, r, one);            /* n = r-1 */\n    fe25519_mul(n, n, c);              /* n = c*(r-1) */\n    fe25519_mul(n, n, ed25519_sqdmone); /* n = c*(r-1)*(d-1)^2 */\n    fe25519_sub(n, n, v);              /* n =  c*(r-1)*(d-1)^2-v */\n\n    fe25519_add(w0, s, s);             /* w0 = 2s */\n    fe25519_mul(w0, w0, v);            /* w0 = 2s*v */\n    fe25519_mul(w1, n, ed25519_sqrtadm1); /* w1 = n*sqrt(ad-1) */\n    fe25519_sq(ss, s);                 /* ss = s^2 */\n    fe25519_sub(w2, one, ss);          /* w2 = 1-s^2 */\n    fe25519_add(w3, one, ss);          /* w3 = 1+s^2 */\n\n    fe25519_mul(p->X, w0, w3);\n    fe25519_mul(p->Y, w2, w1);\n    fe25519_mul(p->Z, w1, w3);\n    fe25519_mul(p->T, w0, w2);\n}\n\nvoid\nristretto255_from_hash(unsigned char s[32], const unsigned char h[64])\n{\n    fe25519        r0, r1;\n    ge25519_p3     p0, p1;\n    ge25519_p3     p;\n\n    fe25519_frombytes(r0, h);\n    fe25519_frombytes(r1, h + 32);\n    ristretto255_elligator(&p0, r0);\n    ristretto255_elligator(&p1, r1);\n    ge25519_p3_add(&p, &p0, &p1);\n    ristretto255_p3_tobytes(s, &p);\n}\n"
  },
  {
    "path": "src/libsodium/crypto_core/ed25519/ref10/fe_25_5/base.h",
    "content": "{ /* 0/31 */\n  {\n    { 25967493, -14356035, 29566456, 3660896, -12694345, 4014787, 27544626, -11754271, -6079156, 2047605 },\n    { -12545711, 934262, -2722910, 3049990, -727428, 9406986, 12720692, 5043384, 19500929, -15469378 },\n    { -8738181, 4489570, 9688441, -14785194, 10184609, -12363380, 29287919, 11864899, -24514362, -4438546 }\n  },\n  {\n    { -12815894, -12976347, -21581243, 11784320, -25355658, -2750717, -11717903, -3814571, -358445, -10211303 },\n    { -21703237, 6903825, 27185491, 6451973, -29577724, -9554005, -15616551, 11189268, -26829678, -5319081 },\n    { 26966642, 11152617, 32442495, 15396054, 14353839, -12752335, -3128826, -9541118, -15472047, -4166697 }\n  },\n  {\n    { 15636291, -9688557, 24204773, -7912398, 616977, -16685262, 27787600, -14772189, 28944400, -1550024 },\n    { 16568933, 4717097, -11556148, -1102322, 15682896, -11807043, 16354577, -11775962, 7689662, 11199574 },\n    { 30464156, -5976125, -11779434, -15670865, 23220365, 15915852, 7512774, 10017326, -17749093, -9920357 }\n  },\n  {\n    { -17036878, 13921892, 10945806, -6033431, 27105052, -16084379, -28926210, 15006023, 3284568, -6276540 },\n    { 23599295, -8306047, -11193664, -7687416, 13236774, 10506355, 7464579, 9656445, 13059162, 10374397 },\n    { 7798556, 16710257, 3033922, 2874086, 28997861, 2835604, 32406664, -3839045, -641708, -101325 }\n  },\n  {\n    { 10861363, 11473154, 27284546, 1981175, -30064349, 12577861, 32867885, 14515107, -15438304, 10819380 },\n    { 4708026, 6336745, 20377586, 9066809, -11272109, 6594696, -25653668, 12483688, -12668491, 5581306 },\n    { 19563160, 16186464, -29386857, 4097519, 10237984, -4348115, 28542350, 13850243, -23678021, -15815942 }\n  },\n  {\n    { -15371964, -12862754, 32573250, 4720197, -26436522, 5875511, -19188627, -15224819, -9818940, -12085777 },\n    { -8549212, 109983, 15149363, 2178705, 22900618, 4543417, 3044240, -15689887, 1762328, 14866737 },\n    { -18199695, -15951423, -10473290, 1707278, -17185920, 3916101, -28236412, 3959421, 27914454, 4383652 }\n  },\n  {\n    { 5153746, 9909285, 1723747, -2777874, 30523605, 5516873, 19480852, 5230134, -23952439, -15175766 },\n    { -30269007, -3463509, 7665486, 10083793, 28475525, 1649722, 20654025, 16520125, 30598449, 7715701 },\n    { 28881845, 14381568, 9657904, 3680757, -20181635, 7843316, -31400660, 1370708, 29794553, -1409300 }\n  },\n  {\n    { 14499471, -2729599, -33191113, -4254652, 28494862, 14271267, 30290735, 10876454, -33154098, 2381726 },\n    { -7195431, -2655363, -14730155, 462251, -27724326, 3941372, -6236617, 3696005, -32300832, 15351955 },\n    { 27431194, 8222322, 16448760, -3907995, -18707002, 11938355, -32961401, -2970515, 29551813, 10109425 }\n  }\n},\n{ /* 1/31 */\n  {\n    { -13657040, -13155431, -31283750, 11777098, 21447386, 6519384, -2378284, -1627556, 10092783, -4764171 },\n    { 27939166, 14210322, 4677035, 16277044, -22964462, -12398139, -32508754, 12005538, -17810127, 12803510 },\n    { 17228999, -15661624, -1233527, 300140, -1224870, -11714777, 30364213, -9038194, 18016357, 4397660 }\n  },\n  {\n    { -10958843, -7690207, 4776341, -14954238, 27850028, -15602212, -26619106, 14544525, -17477504, 982639 },\n    { 29253598, 15796703, -2863982, -9908884, 10057023, 3163536, 7332899, -4120128, -21047696, 9934963 },\n    { 5793303, 16271923, -24131614, -10116404, 29188560, 1206517, -14747930, 4559895, -30123922, -10897950 }\n  },\n  {\n    { -27643952, -11493006, 16282657, -11036493, 28414021, -15012264, 24191034, 4541697, -13338309, 5500568 },\n    { 12650548, -1497113, 9052871, 11355358, -17680037, -8400164, -17430592, 12264343, 10874051, 13524335 },\n    { 25556948, -3045990, 714651, 2510400, 23394682, -10415330, 33119038, 5080568, -22528059, 5376628 }\n  },\n  {\n    { -26088264, -4011052, -17013699, -3537628, -6726793, 1920897, -22321305, -9447443, 4535768, 1569007 },\n    { -2255422, 14606630, -21692440, -8039818, 28430649, 8775819, -30494562, 3044290, 31848280, 12543772 },\n    { -22028579, 2943893, -31857513, 6777306, 13784462, -4292203, -27377195, -2062731, 7718482, 14474653 }\n  },\n  {\n    { 2385315, 2454213, -22631320, 46603, -4437935, -15680415, 656965, -7236665, 24316168, -5253567 },\n    { 13741529, 10911568, -33233417, -8603737, -20177830, -1033297, 33040651, -13424532, -20729456, 8321686 },\n    { 21060490, -2212744, 15712757, -4336099, 1639040, 10656336, 23845965, -11874838, -9984458, 608372 }\n  },\n  {\n    { -13672732, -15087586, -10889693, -7557059, -6036909, 11305547, 1123968, -6780577, 27229399, 23887 },\n    { -23244140, -294205, -11744728, 14712571, -29465699, -2029617, 12797024, -6440308, -1633405, 16678954 },\n    { -29500620, 4770662, -16054387, 14001338, 7830047, 9564805, -1508144, -4795045, -17169265, 4904953 }\n  },\n  {\n    { 24059557, 14617003, 19037157, -15039908, 19766093, -14906429, 5169211, 16191880, 2128236, -4326833 },\n    { -16981152, 4124966, -8540610, -10653797, 30336522, -14105247, -29806336, 916033, -6882542, -2986532 },\n    { -22630907, 12419372, -7134229, -7473371, -16478904, 16739175, 285431, 2763829, 15736322, 4143876 }\n  },\n  {\n    { 2379352, 11839345, -4110402, -5988665, 11274298, 794957, 212801, -14594663, 23527084, -16458268 },\n    { 33431127, -11130478, -17838966, -15626900, 8909499, 8376530, -32625340, 4087881, -15188911, -14416214 },\n    { 1767683, 7197987, -13205226, -2022635, -13091350, 448826, 5799055, 4357868, -4774191, -16323038 }\n  }\n},\n{ /* 2/31 */\n  {\n    { 6721966, 13833823, -23523388, -1551314, 26354293, -11863321, 23365147, -3949732, 7390890, 2759800 },\n    { 4409041, 2052381, 23373853, 10530217, 7676779, -12885954, 21302353, -4264057, 1244380, -12919645 },\n    { -4421239, 7169619, 4982368, -2957590, 30256825, -2777540, 14086413, 9208236, 15886429, 16489664 }\n  },\n  {\n    { 1996075, 10375649, 14346367, 13311202, -6874135, -16438411, -13693198, 398369, -30606455, -712933 },\n    { -25307465, 9795880, -2777414, 14878809, -33531835, 14780363, 13348553, 12076947, -30836462, 5113182 },\n    { -17770784, 11797796, 31950843, 13929123, -25888302, 12288344, -30341101, -7336386, 13847711, 5387222 }\n  },\n  {\n    { -18582163, -3416217, 17824843, -2340966, 22744343, -10442611, 8763061, 3617786, -19600662, 10370991 },\n    { 20246567, -14369378, 22358229, -543712, 18507283, -10413996, 14554437, -8746092, 32232924, 16763880 },\n    { 9648505, 10094563, 26416693, 14745928, -30374318, -6472621, 11094161, 15689506, 3140038, -16510092 }\n  },\n  {\n    { -16160072, 5472695, 31895588, 4744994, 8823515, 10365685, -27224800, 9448613, -28774454, 366295 },\n    { 19153450, 11523972, -11096490, -6503142, -24647631, 5420647, 28344573, 8041113, 719605, 11671788 },\n    { 8678025, 2694440, -6808014, 2517372, 4964326, 11152271, -15432916, -15266516, 27000813, -10195553 }\n  },\n  {\n    { -15157904, 7134312, 8639287, -2814877, -7235688, 10421742, 564065, 5336097, 6750977, -14521026 },\n    { 11836410, -3979488, 26297894, 16080799, 23455045, 15735944, 1695823, -8819122, 8169720, 16220347 },\n    { -18115838, 8653647, 17578566, -6092619, -8025777, -16012763, -11144307, -2627664, -5990708, -14166033 }\n  },\n  {\n    { -23308498, -10968312, 15213228, -10081214, -30853605, -11050004, 27884329, 2847284, 2655861, 1738395 },\n    { -27537433, -14253021, -25336301, -8002780, -9370762, 8129821, 21651608, -3239336, -19087449, -11005278 },\n    { 1533110, 3437855, 23735889, 459276, 29970501, 11335377, 26030092, 5821408, 10478196, 8544890 }\n  },\n  {\n    { 32173121, -16129311, 24896207, 3921497, 22579056, -3410854, 19270449, 12217473, 17789017, -3395995 },\n    { -30552961, -2228401, -15578829, -10147201, 13243889, 517024, 15479401, -3853233, 30460520, 1052596 },\n    { -11614875, 13323618, 32618793, 8175907, -15230173, 12596687, 27491595, -4612359, 3179268, -9478891 }\n  },\n  {\n    { 31947069, -14366651, -4640583, -15339921, -15125977, -6039709, -14756777, -16411740, 19072640, -9511060 },\n    { 11685058, 11822410, 3158003, -13952594, 33402194, -4165066, 5977896, -5215017, 473099, 5040608 },\n    { -20290863, 8198642, -27410132, 11602123, 1290375, -2799760, 28326862, 1721092, -19558642, -3131606 }\n  }\n},\n{ /* 3/31 */\n  {\n    { 7881532, 10687937, 7578723, 7738378, -18951012, -2553952, 21820786, 8076149, -27868496, 11538389 },\n    { -19935666, 3899861, 18283497, -6801568, -15728660, -11249211, 8754525, 7446702, -5676054, 5797016 },\n    { -11295600, -3793569, -15782110, -7964573, 12708869, -8456199, 2014099, -9050574, -2369172, -5877341 }\n  },\n  {\n    { -22472376, -11568741, -27682020, 1146375, 18956691, 16640559, 1192730, -3714199, 15123619, 10811505 },\n    { 14352098, -3419715, -18942044, 10822655, 32750596, 4699007, -70363, 15776356, -28886779, -11974553 },\n    { -28241164, -8072475, -4978962, -5315317, 29416931, 1847569, -20654173, -16484855, 4714547, -9600655 }\n  },\n  {\n    { 15200332, 8368572, 19679101, 15970074, -31872674, 1959451, 24611599, -4543832, -11745876, 12340220 },\n    { 12876937, -10480056, 33134381, 6590940, -6307776, 14872440, 9613953, 8241152, 15370987, 9608631 },\n    { -4143277, -12014408, 8446281, -391603, 4407738, 13629032, -7724868, 15866074, -28210621, -8814099 }\n  },\n  {\n    { 26660628, -15677655, 8393734, 358047, -7401291, 992988, -23904233, 858697, 20571223, 8420556 },\n    { 14620715, 13067227, -15447274, 8264467, 14106269, 15080814, 33531827, 12516406, -21574435, -12476749 },\n    { 236881, 10476226, 57258, -14677024, 6472998, 2466984, 17258519, 7256740, 8791136, 15069930 }\n  },\n  {\n    { 1276410, -9371918, 22949635, -16322807, -23493039, -5702186, 14711875, 4874229, -30663140, -2331391 },\n    { 5855666, 4990204, -13711848, 7294284, -7804282, 1924647, -1423175, -7912378, -33069337, 9234253 },\n    { 20590503, -9018988, 31529744, -7352666, -2706834, 10650548, 31559055, -11609587, 18979186, 13396066 }\n  },\n  {\n    { 24474287, 4968103, 22267082, 4407354, 24063882, -8325180, -18816887, 13594782, 33514650, 7021958 },\n    { -11566906, -6565505, -21365085, 15928892, -26158305, 4315421, -25948728, -3916677, -21480480, 12868082 },\n    { -28635013, 13504661, 19988037, -2132761, 21078225, 6443208, -21446107, 2244500, -12455797, -8089383 }\n  },\n  {\n    { -30595528, 13793479, -5852820, 319136, -25723172, -6263899, 33086546, 8957937, -15233648, 5540521 },\n    { -11630176, -11503902, -8119500, -7643073, 2620056, 1022908, -23710744, -1568984, -16128528, -14962807 },\n    { 23152971, 775386, 27395463, 14006635, -9701118, 4649512, 1689819, 892185, -11513277, -15205948 }\n  },\n  {\n    { 9770129, 9586738, 26496094, 4324120, 1556511, -3550024, 27453819, 4763127, -19179614, 5867134 },\n    { -32765025, 1927590, 31726409, -4753295, 23962434, -16019500, 27846559, 5931263, -29749703, -16108455 },\n    { 27461885, -2977536, 22380810, 1815854, -23033753, -3031938, 7283490, -15148073, -19526700, 7734629 }\n  }\n},\n{ /* 4/31 */\n  {\n    { -8010264, -9590817, -11120403, 6196038, 29344158, -13430885, 7585295, -3176626, 18549497, 15302069 },\n    { -32658337, -6171222, -7672793, -11051681, 6258878, 13504381, 10458790, -6418461, -8872242, 8424746 },\n    { 24687205, 8613276, -30667046, -3233545, 1863892, -1830544, 19206234, 7134917, -11284482, -828919 }\n  },\n  {\n    { 11334899, -9218022, 8025293, 12707519, 17523892, -10476071, 10243738, -14685461, -5066034, 16498837 },\n    { 8911542, 6887158, -9584260, -6958590, 11145641, -9543680, 17303925, -14124238, 6536641, 10543906 },\n    { -28946384, 15479763, -17466835, 568876, -1497683, 11223454, -2669190, -16625574, -27235709, 8876771 }\n  },\n  {\n    { -25742899, -12566864, -15649966, -846607, -33026686, -796288, -33481822, 15824474, -604426, -9039817 },\n    { 10330056, 70051, 7957388, -9002667, 9764902, 15609756, 27698697, -4890037, 1657394, 3084098 },\n    { 10477963, -7470260, 12119566, -13250805, 29016247, -5365589, 31280319, 14396151, -30233575, 15272409 }\n  },\n  {\n    { -12288309, 3169463, 28813183, 16658753, 25116432, -5630466, -25173957, -12636138, -25014757, 1950504 },\n    { -26180358, 9489187, 11053416, -14746161, -31053720, 5825630, -8384306, -8767532, 15341279, 8373727 },\n    { 28685821, 7759505, -14378516, -12002860, -31971820, 4079242, 298136, -10232602, -2878207, 15190420 }\n  },\n  {\n    { -32932876, 13806336, -14337485, -15794431, -24004620, 10940928, 8669718, 2742393, -26033313, -6875003 },\n    { -1580388, -11729417, -25979658, -11445023, -17411874, -10912854, 9291594, -16247779, -12154742, 6048605 },\n    { -30305315, 14843444, 1539301, 11864366, 20201677, 1900163, 13934231, 5128323, 11213262, 9168384 }\n  },\n  {\n    { -26280513, 11007847, 19408960, -940758, -18592965, -4328580, -5088060, -11105150, 20470157, -16398701 },\n    { -23136053, 9282192, 14855179, -15390078, -7362815, -14408560, -22783952, 14461608, 14042978, 5230683 },\n    { 29969567, -2741594, -16711867, -8552442, 9175486, -2468974, 21556951, 3506042, -5933891, -12449708 }\n  },\n  {\n    { -3144746, 8744661, 19704003, 4581278, -20430686, 6830683, -21284170, 8971513, -28539189, 15326563 },\n    { -19464629, 10110288, -17262528, -3503892, -23500387, 1355669, -15523050, 15300988, -20514118, 9168260 },\n    { -5353335, 4488613, -23803248, 16314347, 7780487, -15638939, -28948358, 9601605, 33087103, -9011387 }\n  },\n  {\n    { -19443170, -15512900, -20797467, -12445323, -29824447, 10229461, -27444329, -15000531, -5996870, 15664672 },\n    { 23294591, -16632613, -22650781, -8470978, 27844204, 11461195, 13099750, -2460356, 18151676, 13417686 },\n    { -24722913, -4176517, -31150679, 5988919, -26858785, 6685065, 1661597, -12551441, 15271676, -15452665 }\n  }\n},\n{ /* 5/31 */\n  {\n    { 11433042, -13228665, 8239631, -5279517, -1985436, -725718, -18698764, 2167544, -6921301, -13440182 },\n    { -31436171, 15575146, 30436815, 12192228, -22463353, 9395379, -9917708, -8638997, 12215110, 12028277 },\n    { 14098400, 6555944, 23007258, 5757252, -15427832, -12950502, 30123440, 4617780, -16900089, -655628 }\n  },\n  {\n    { -4026201, -15240835, 11893168, 13718664, -14809462, 1847385, -15819999, 10154009, 23973261, -12684474 },\n    { -26531820, -3695990, -1908898, 2534301, -31870557, -16550355, 18341390, -11419951, 32013174, -10103539 },\n    { -25479301, 10876443, -11771086, -14625140, -12369567, 1838104, 21911214, 6354752, 4425632, -837822 }\n  },\n  {\n    { -10433389, -14612966, 22229858, -3091047, -13191166, 776729, -17415375, -12020462, 4725005, 14044970 },\n    { 19268650, -7304421, 1555349, 8692754, -21474059, -9910664, 6347390, -1411784, -19522291, -16109756 },\n    { -24864089, 12986008, -10898878, -5558584, -11312371, -148526, 19541418, 8180106, 9282262, 10282508 }\n  },\n  {\n    { -26205082, 4428547, -8661196, -13194263, 4098402, -14165257, 15522535, 8372215, 5542595, -10702683 },\n    { -10562541, 14895633, 26814552, -16673850, -17480754, -2489360, -2781891, 6993761, -18093885, 10114655 },\n    { -20107055, -929418, 31422704, 10427861, -7110749, 6150669, -29091755, -11529146, 25953725, -106158 }\n  },\n  {\n    { -4234397, -8039292, -9119125, 3046000, 2101609, -12607294, 19390020, 6094296, -3315279, 12831125 },\n    { -15998678, 7578152, 5310217, 14408357, -33548620, -224739, 31575954, 6326196, 7381791, -2421839 },\n    { -20902779, 3296811, 24736065, -16328389, 18374254, 7318640, 6295303, 8082724, -15362489, 12339664 }\n  },\n  {\n    { 27724736, 2291157, 6088201, -14184798, 1792727, 5857634, 13848414, 15768922, 25091167, 14856294 },\n    { -18866652, 8331043, 24373479, 8541013, -701998, -9269457, 12927300, -12695493, -22182473, -9012899 },\n    { -11423429, -5421590, 11632845, 3405020, 30536730, -11674039, -27260765, 13866390, 30146206, 9142070 }\n  },\n  {\n    { 3924129, -15307516, -13817122, -10054960, 12291820, -668366, -27702774, 9326384, -8237858, 4171294 },\n    { -15921940, 16037937, 6713787, 16606682, -21612135, 2790944, 26396185, 3731949, 345228, -5462949 },\n    { -21327538, 13448259, 25284571, 1143661, 20614966, -8849387, 2031539, -12391231, -16253183, -13582083 }\n  },\n  {\n    { 31016211, -16722429, 26371392, -14451233, -5027349, 14854137, 17477601, 3842657, 28012650, -16405420 },\n    { -5075835, 9368966, -8562079, -4600902, -15249953, 6970560, -9189873, 16292057, -8867157, 3507940 },\n    { 29439664, 3537914, 23333589, 6997794, -17555561, -11018068, -15209202, -15051267, -9164929, 6580396 }\n  }\n},\n{ /* 6/31 */\n  {\n    { -12185861, -7679788, 16438269, 10826160, -8696817, -6235611, 17860444, -9273846, -2095802, 9304567 },\n    { 20714564, -4336911, 29088195, 7406487, 11426967, -5095705, 14792667, -14608617, 5289421, -477127 },\n    { -16665533, -10650790, -6160345, -13305760, 9192020, -1802462, 17271490, 12349094, 26939669, -3752294 }\n  },\n  {\n    { -12889898, 9373458, 31595848, 16374215, 21471720, 13221525, -27283495, -12348559, -3698806, 117887 },\n    { 22263325, -6560050, 3984570, -11174646, -15114008, -566785, 28311253, 5358056, -23319780, 541964 },\n    { 16259219, 3261970, 2309254, -15534474, -16885711, -4581916, 24134070, -16705829, -13337066, -13552195 }\n  },\n  {\n    { 9378160, -13140186, -22845982, -12745264, 28198281, -7244098, -2399684, -717351, 690426, 14876244 },\n    { 24977353, -314384, -8223969, -13465086, 28432343, -1176353, -13068804, -12297348, -22380984, 6618999 },\n    { -1538174, 11685646, 12944378, 13682314, -24389511, -14413193, 8044829, -13817328, 32239829, -5652762 }\n  },\n  {\n    { -18603066, 4762990, -926250, 8885304, -28412480, -3187315, 9781647, -10350059, 32779359, 5095274 },\n    { -33008130, -5214506, -32264887, -3685216, 9460461, -9327423, -24601656, 14506724, 21639561, -2630236 },\n    { -16400943, -13112215, 25239338, 15531969, 3987758, -4499318, -1289502, -6863535, 17874574, 558605 }\n  },\n  {\n    { -13600129, 10240081, 9171883, 16131053, -20869254, 9599700, 33499487, 5080151, 2085892, 5119761 },\n    { -22205145, -2519528, -16381601, 414691, -25019550, 2170430, 30634760, -8363614, -31999993, -5759884 },\n    { -6845704, 15791202, 8550074, -1312654, 29928809, -12092256, 27534430, -7192145, -22351378, 12961482 }\n  },\n  {\n    { -24492060, -9570771, 10368194, 11582341, -23397293, -2245287, 16533930, 8206996, -30194652, -5159638 },\n    { -11121496, -3382234, 2307366, 6362031, -135455, 8868177, -16835630, 7031275, 7589640, 8945490 },\n    { -32152748, 8917967, 6661220, -11677616, -1192060, -15793393, 7251489, -11182180, 24099109, -14456170 }\n  },\n  {\n    { 5019558, -7907470, 4244127, -14714356, -26933272, 6453165, -19118182, -13289025, -6231896, -10280736 },\n    { 10853594, 10721687, 26480089, 5861829, -22995819, 1972175, -1866647, -10557898, -3363451, -6441124 },\n    { -17002408, 5906790, 221599, -6563147, 7828208, -13248918, 24362661, -2008168, -13866408, 7421392 }\n  },\n  {\n    { 8139927, -6546497, 32257646, -5890546, 30375719, 1886181, -21175108, 15441252, 28826358, -4123029 },\n    { 6267086, 9695052, 7709135, -16603597, -32869068, -1886135, 14795160, -7840124, 13746021, -1742048 },\n    { 28584902, 7787108, -6732942, -15050729, 22846041, -7571236, -3181936, -363524, 4771362, -8419958 }\n  }\n},\n{ /* 7/31 */\n  {\n    { 24949256, 6376279, -27466481, -8174608, -18646154, -9930606, 33543569, -12141695, 3569627, 11342593 },\n    { 26514989, 4740088, 27912651, 3697550, 19331575, -11472339, 6809886, 4608608, 7325975, -14801071 },\n    { -11618399, -14554430, -24321212, 7655128, -1369274, 5214312, -27400540, 10258390, -17646694, -8186692 }\n  },\n  {\n    { 11431204, 15823007, 26570245, 14329124, 18029990, 4796082, -31446179, 15580664, 9280358, -3973687 },\n    { -160783, -10326257, -22855316, -4304997, -20861367, -13621002, -32810901, -11181622, -15545091, 4387441 },\n    { -20799378, 12194512, 3937617, -5805892, -27154820, 9340370, -24513992, 8548137, 20617071, -7482001 }\n  },\n  {\n    { -938825, -3930586, -8714311, 16124718, 24603125, -6225393, -13775352, -11875822, 24345683, 10325460 },\n    { -19855277, -1568885, -22202708, 8714034, 14007766, 6928528, 16318175, -1010689, 4766743, 3552007 },\n    { -21751364, -16730916, 1351763, -803421, -4009670, 3950935, 3217514, 14481909, 10988822, -3994762 }\n  },\n  {\n    { 15564307, -14311570, 3101243, 5684148, 30446780, -8051356, 12677127, -6505343, -8295852, 13296005 },\n    { -9442290, 6624296, -30298964, -11913677, -4670981, -2057379, 31521204, 9614054, -30000824, 12074674 },\n    { 4771191, -135239, 14290749, -13089852, 27992298, 14998318, -1413936, -1556716, 29832613, -16391035 }\n  },\n  {\n    { 7064884, -7541174, -19161962, -5067537, -18891269, -2912736, 25825242, 5293297, -27122660, 13101590 },\n    { -2298563, 2439670, -7466610, 1719965, -27267541, -16328445, 32512469, -5317593, -30356070, -4190957 },\n    { -30006540, 10162316, -33180176, 3981723, -16482138, -13070044, 14413974, 9515896, 19568978, 9628812 }\n  },\n  {\n    { 33053803, 199357, 15894591, 1583059, 27380243, -4580435, -17838894, -6106839, -6291786, 3437740 },\n    { -18978877, 3884493, 19469877, 12726490, 15913552, 13614290, -22961733, 70104, 7463304, 4176122 },\n    { -27124001, 10659917, 11482427, -16070381, 12771467, -6635117, -32719404, -5322751, 24216882, 5944158 }\n  },\n  {\n    { 8894125, 7450974, -2664149, -9765752, -28080517, -12389115, 19345746, 14680796, 11632993, 5847885 },\n    { 26942781, -2315317, 9129564, -4906607, 26024105, 11769399, -11518837, 6367194, -9727230, 4782140 },\n    { 19916461, -4828410, -22910704, -11414391, 25606324, -5972441, 33253853, 8220911, 6358847, -1873857 }\n  },\n  {\n    { 801428, -2081702, 16569428, 11065167, 29875704, 96627, 7908388, -4480480, -13538503, 1387155 },\n    { 19646058, 5720633, -11416706, 12814209, 11607948, 12749789, 14147075, 15156355, -21866831, 11835260 },\n    { 19299512, 1155910, 28703737, 14890794, 2925026, 7269399, 26121523, 15467869, -26560550, 5052483 }\n  }\n},\n{ /* 8/31 */\n  {\n    { -3017432, 10058206, 1980837, 3964243, 22160966, 12322533, -6431123, -12618185, 12228557, -7003677 },\n    { 32944382, 14922211, -22844894, 5188528, 21913450, -8719943, 4001465, 13238564, -6114803, 8653815 },\n    { 22865569, -4652735, 27603668, -12545395, 14348958, 8234005, 24808405, 5719875, 28483275, 2841751 }\n  },\n  {\n    { -16420968, -1113305, -327719, -12107856, 21886282, -15552774, -1887966, -315658, 19932058, -12739203 },\n    { -11656086, 10087521, -8864888, -5536143, -19278573, -3055912, 3999228, 13239134, -4777469, -13910208 },\n    { 1382174, -11694719, 17266790, 9194690, -13324356, 9720081, 20403944, 11284705, -14013818, 3093230 }\n  },\n  {\n    { 16650921, -11037932, -1064178, 1570629, -8329746, 7352753, -302424, 16271225, -24049421, -6691850 },\n    { -21911077, -5927941, -4611316, -5560156, -31744103, -10785293, 24123614, 15193618, -21652117, -16739389 },\n    { -9935934, -4289447, -25279823, 4372842, 2087473, 10399484, 31870908, 14690798, 17361620, 11864968 }\n  },\n  {\n    { -11307610, 6210372, 13206574, 5806320, -29017692, -13967200, -12331205, -7486601, -25578460, -16240689 },\n    { 14668462, -12270235, 26039039, 15305210, 25515617, 4542480, 10453892, 6577524, 9145645, -6443880 },\n    { 5974874, 3053895, -9433049, -10385191, -31865124, 3225009, -7972642, 3936128, -5652273, -3050304 }\n  },\n  {\n    { 30625386, -4729400, -25555961, -12792866, -20484575, 7695099, 17097188, -16303496, -27999779, 1803632 },\n    { -3553091, 9865099, -5228566, 4272701, -5673832, -16689700, 14911344, 12196514, -21405489, 7047412 },\n    { 20093277, 9920966, -11138194, -5343857, 13161587, 12044805, -32856851, 4124601, -32343828, -10257566 }\n  },\n  {\n    { -20788824, 14084654, -13531713, 7842147, 19119038, -13822605, 4752377, -8714640, -21679658, 2288038 },\n    { -26819236, -3283715, 29965059, 3039786, -14473765, 2540457, 29457502, 14625692, -24819617, 12570232 },\n    { -1063558, -11551823, 16920318, 12494842, 1278292, -5869109, -21159943, -3498680, -11974704, 4724943 }\n  },\n  {\n    { 17960970, -11775534, -4140968, -9702530, -8876562, -1410617, -12907383, -8659932, -29576300, 1903856 },\n    { 23134274, -14279132, -10681997, -1611936, 20684485, 15770816, -12989750, 3190296, 26955097, 14109738 },\n    { 15308788, 5320727, -30113809, -14318877, 22902008, 7767164, 29425325, -11277562, 31960942, 11934971 }\n  },\n  {\n    { -27395711, 8435796, 4109644, 12222639, -24627868, 14818669, 20638173, 4875028, 10491392, 1379718 },\n    { -13159415, 9197841, 3875503, -8936108, -1383712, -5879801, 33518459, 16176658, 21432314, 12180697 },\n    { -11787308, 11500838, 13787581, -13832590, -22430679, 10140205, 1465425, 12689540, -10301319, -13872883 }\n  }\n},\n{ /* 9/31 */\n  {\n    { 5414091, -15386041, -21007664, 9643570, 12834970, 1186149, -2622916, -1342231, 26128231, 6032912 },\n    { -26337395, -13766162, 32496025, -13653919, 17847801, -12669156, 3604025, 8316894, -25875034, -10437358 },\n    { 3296484, 6223048, 24680646, -12246460, -23052020, 5903205, -8862297, -4639164, 12376617, 3188849 }\n  },\n  {\n    { 29190488, -14659046, 27549113, -1183516, 3520066, -10697301, 32049515, -7309113, -16109234, -9852307 },\n    { -14744486, -9309156, 735818, -598978, -20407687, -5057904, 25246078, -15795669, 18640741, -960977 },\n    { -6928835, -16430795, 10361374, 5642961, 4910474, 12345252, -31638386, -494430, 10530747, 1053335 }\n  },\n  {\n    { -29265967, -14186805, -13538216, -12117373, -19457059, -10655384, -31462369, -2948985, 24018831, 15026644 },\n    { -22592535, -3145277, -2289276, 5953843, -13440189, 9425631, 25310643, 13003497, -2314791, -15145616 },\n    { -27419985, -603321, -8043984, -1669117, -26092265, 13987819, -27297622, 187899, -23166419, -2531735 }\n  },\n  {\n    { -21744398, -13810475, 1844840, 5021428, -10434399, -15911473, 9716667, 16266922, -5070217, 726099 },\n    { 29370922, -6053998, 7334071, -15342259, 9385287, 2247707, -13661962, -4839461, 30007388, -15823341 },\n    { -936379, 16086691, 23751945, -543318, -1167538, -5189036, 9137109, 730663, 9835848, 4555336 }\n  },\n  {\n    { -23376435, 1410446, -22253753, -12899614, 30867635, 15826977, 17693930, 544696, -11985298, 12422646 },\n    { 31117226, -12215734, -13502838, 6561947, -9876867, -12757670, -5118685, -4096706, 29120153, 13924425 },\n    { -17400879, -14233209, 19675799, -2734756, -11006962, -5858820, -9383939, -11317700, 7240931, -237388 }\n  },\n  {\n    { -31361739, -11346780, -15007447, -5856218, -22453340, -12152771, 1222336, 4389483, 3293637, -15551743 },\n    { -16684801, -14444245, 11038544, 11054958, -13801175, -3338533, -24319580, 7733547, 12796905, -6335822 },\n    { -8759414, -10817836, -25418864, 10783769, -30615557, -9746811, -28253339, 3647836, 3222231, -11160462 }\n  },\n  {\n    { 18606113, 1693100, -25448386, -15170272, 4112353, 10045021, 23603893, -2048234, -7550776, 2484985 },\n    { 9255317, -3131197, -12156162, -1004256, 13098013, -9214866, 16377220, -2102812, -19802075, -3034702 },\n    { -22729289, 7496160, -5742199, 11329249, 19991973, -3347502, -31718148, 9936966, -30097688, -10618797 }\n  },\n  {\n    { 21878590, -5001297, 4338336, 13643897, -3036865, 13160960, 19708896, 5415497, -7360503, -4109293 },\n    { 27736861, 10103576, 12500508, 8502413, -3413016, -9633558, 10436918, -1550276, -23659143, -8132100 },\n    { 19492550, -12104365, -29681976, -852630, -3208171, 12403437, 30066266, 8367329, 13243957, 8709688 }\n  }\n},\n{ /* 10/31 */\n  {\n    { 12015105, 2801261, 28198131, 10151021, 24818120, -4743133, -11194191, -5645734, 5150968, 7274186 },\n    { 2831366, -12492146, 1478975, 6122054, 23825128, -12733586, 31097299, 6083058, 31021603, -9793610 },\n    { -2529932, -2229646, 445613, 10720828, -13849527, -11505937, -23507731, 16354465, 15067285, -14147707 }\n  },\n  {\n    { 7840942, 14037873, -33364863, 15934016, -728213, -3642706, 21403988, 1057586, -19379462, -12403220 },\n    { 915865, -16469274, 15608285, -8789130, -24357026, 6060030, -17371319, 8410997, -7220461, 16527025 },\n    { 32922597, -556987, 20336074, -16184568, 10903705, -5384487, 16957574, 52992, 23834301, 6588044 }\n  },\n  {\n    { 32752030, 11232950, 3381995, -8714866, 22652988, -10744103, 17159699, 16689107, -20314580, -1305992 },\n    { -4689649, 9166776, -25710296, -10847306, 11576752, 12733943, 7924251, -2752281, 1976123, -7249027 },\n    { 21251222, 16309901, -2983015, -6783122, 30810597, 12967303, 156041, -3371252, 12331345, -8237197 }\n  },\n  {\n    { 8651614, -4477032, -16085636, -4996994, 13002507, 2950805, 29054427, -5106970, 10008136, -4667901 },\n    { 31486080, 15114593, -14261250, 12951354, 14369431, -7387845, 16347321, -13662089, 8684155, -10532952 },\n    { 19443825, 11385320, 24468943, -9659068, -23919258, 2187569, -26263207, -6086921, 31316348, 14219878 }\n  },\n  {\n    { -28594490, 1193785, 32245219, 11392485, 31092169, 15722801, 27146014, 6992409, 29126555, 9207390 },\n    { 32382935, 1110093, 18477781, 11028262, -27411763, -7548111, -4980517, 10843782, -7957600, -14435730 },\n    { 2814918, 7836403, 27519878, -7868156, -20894015, -11553689, -21494559, 8550130, 28346258, 1994730 }\n  },\n  {\n    { -19578299, 8085545, -14000519, -3948622, 2785838, -16231307, -19516951, 7174894, 22628102, 8115180 },\n    { -30405132, 955511, -11133838, -15078069, -32447087, -13278079, -25651578, 3317160, -9943017, 930272 },\n    { -15303681, -6833769, 28856490, 1357446, 23421993, 1057177, 24091212, -1388970, -22765376, -10650715 }\n  },\n  {\n    { -22751231, -5303997, -12907607, -12768866, -15811511, -7797053, -14839018, -16554220, -1867018, 8398970 },\n    { -31969310, 2106403, -4736360, 1362501, 12813763, 16200670, 22981545, -6291273, 18009408, -15772772 },\n    { -17220923, -9545221, -27784654, 14166835, 29815394, 7444469, 29551787, -3727419, 19288549, 1325865 }\n  },\n  {\n    { 15100157, -15835752, -23923978, -1005098, -26450192, 15509408, 12376730, -3479146, 33166107, -8042750 },\n    { 20909231, 13023121, -9209752, 16251778, -5778415, -8094914, 12412151, 10018715, 2213263, -13878373 },\n    { 32529814, -11074689, 30361439, -16689753, -9135940, 1513226, 22922121, 6382134, -5766928, 8371348 }\n  }\n},\n{ /* 11/31 */\n  {\n    { 9923462, 11271500, 12616794, 3544722, -29998368, -1721626, 12891687, -8193132, -26442943, 10486144 },\n    { -22597207, -7012665, 8587003, -8257861, 4084309, -12970062, 361726, 2610596, -23921530, -11455195 },\n    { 5408411, -1136691, -4969122, 10561668, 24145918, 14240566, 31319731, -4235541, 19985175, -3436086 }\n  },\n  {\n    { -13994457, 16616821, 14549246, 3341099, 32155958, 13648976, -17577068, 8849297, 65030, 8370684 },\n    { -8320926, -12049626, 31204563, 5839400, -20627288, -1057277, -19442942, 6922164, 12743482, -9800518 },\n    { -2361371, 12678785, 28815050, 4759974, -23893047, 4884717, 23783145, 11038569, 18800704, 255233 }\n  },\n  {\n    { -5269658, -1773886, 13957886, 7990715, 23132995, 728773, 13393847, 9066957, 19258688, -14753793 },\n    { -2936654, -10827535, -10432089, 14516793, -3640786, 4372541, -31934921, 2209390, -1524053, 2055794 },\n    { 580882, 16705327, 5468415, -2683018, -30926419, -14696000, -7203346, -8994389, -30021019, 7394435 }\n  },\n  {\n    { 23838809, 1822728, -15738443, 15242727, 8318092, -3733104, -21672180, -3492205, -4821741, 14799921 },\n    { 13345610, 9759151, 3371034, -16137791, 16353039, 8577942, 31129804, 13496856, -9056018, 7402518 },\n    { 2286874, -4435931, -20042458, -2008336, -13696227, 5038122, 11006906, -15760352, 8205061, 1607563 }\n  },\n  {\n    { 14414086, -8002132, 3331830, -3208217, 22249151, -5594188, 18364661, -2906958, 30019587, -9029278 },\n    { -27688051, 1585953, -10775053, 931069, -29120221, -11002319, -14410829, 12029093, 9944378, 8024 },\n    { 4368715, -3709630, 29874200, -15022983, -20230386, -11410704, -16114594, -999085, -8142388, 5640030 }\n  },\n  {\n    { 10299610, 13746483, 11661824, 16234854, 7630238, 5998374, 9809887, -16694564, 15219798, -14327783 },\n    { 27425505, -5719081, 3055006, 10660664, 23458024, 595578, -15398605, -1173195, -18342183, 9742717 },\n    { 6744077, 2427284, 26042789, 2720740, -847906, 1118974, 32324614, 7406442, 12420155, 1994844 }\n  },\n  {\n    { 14012521, -5024720, -18384453, -9578469, -26485342, -3936439, -13033478, -10909803, 24319929, -6446333 },\n    { 16412690, -4507367, 10772641, 15929391, -17068788, -4658621, 10555945, -10484049, -30102368, -4739048 },\n    { 22397382, -7767684, -9293161, -12792868, 17166287, -9755136, -27333065, 6199366, 21880021, -12250760 }\n  },\n  {\n    { -4283307, 5368523, -31117018, 8163389, -30323063, 3209128, 16557151, 8890729, 8840445, 4957760 },\n    { -15447727, 709327, -6919446, -10870178, -29777922, 6522332, -21720181, 12130072, -14796503, 5005757 },\n    { -2114751, -14308128, 23019042, 15765735, -25269683, 6002752, 10183197, -13239326, -16395286, -2176112 }\n  }\n},\n{ /* 12/31 */\n  {\n    { -19025756, 1632005, 13466291, -7995100, -23640451, 16573537, -32013908, -3057104, 22208662, 2000468 },\n    { 3065073, -1412761, -25598674, -361432, -17683065, -5703415, -8164212, 11248527, -3691214, -7414184 },\n    { 10379208, -6045554, 8877319, 1473647, -29291284, -12507580, 16690915, 2553332, -3132688, 16400289 }\n  },\n  {\n    { 15716668, 1254266, -18472690, 7446274, -8448918, 6344164, -22097271, -7285580, 26894937, 9132066 },\n    { 24158887, 12938817, 11085297, -8177598, -28063478, -4457083, -30576463, 64452, -6817084, -2692882 },\n    { 13488534, 7794716, 22236231, 5989356, 25426474, -12578208, 2350710, -3418511, -4688006, 2364226 }\n  },\n  {\n    { 16335052, 9132434, 25640582, 6678888, 1725628, 8517937, -11807024, -11697457, 15445875, -7798101 },\n    { 29004207, -7867081, 28661402, -640412, -12794003, -7943086, 31863255, -4135540, -278050, -15759279 },\n    { -6122061, -14866665, -28614905, 14569919, -10857999, -3591829, 10343412, -6976290, -29828287, -10815811 }\n  },\n  {\n    { 27081650, 3463984, 14099042, -4517604, 1616303, -6205604, 29542636, 15372179, 17293797, 960709 },\n    { 20263915, 11434237, -5765435, 11236810, 13505955, -10857102, -16111345, 6493122, -19384511, 7639714 },\n    { -2830798, -14839232, 25403038, -8215196, -8317012, -16173699, 18006287, -16043750, 29994677, -15808121 }\n  },\n  {\n    { 9769828, 5202651, -24157398, -13631392, -28051003, -11561624, -24613141, -13860782, -31184575, 709464 },\n    { 12286395, 13076066, -21775189, -1176622, -25003198, 4057652, -32018128, -8890874, 16102007, 13205847 },\n    { 13733362, 5599946, 10557076, 3195751, -5557991, 8536970, -25540170, 8525972, 10151379, 10394400 }\n  },\n  {\n    { 4024660, -16137551, 22436262, 12276534, -9099015, -2686099, 19698229, 11743039, -33302334, 8934414 },\n    { -15879800, -4525240, -8580747, -2934061, 14634845, -698278, -9449077, 3137094, -11536886, 11721158 },\n    { 17555939, -5013938, 8268606, 2331751, -22738815, 9761013, 9319229, 8835153, -9205489, -1280045 }\n  },\n  {\n    { -461409, -7830014, 20614118, 16688288, -7514766, -4807119, 22300304, 505429, 6108462, -6183415 },\n    { -5070281, 12367917, -30663534, 3234473, 32617080, -8422642, 29880583, -13483331, -26898490, -7867459 },\n    { -31975283, 5726539, 26934134, 10237677, -3173717, -605053, 24199304, 3795095, 7592688, -14992079 }\n  },\n  {\n    { 21594432, -14964228, 17466408, -4077222, 32537084, 2739898, 6407723, 12018833, -28256052, 4298412 },\n    { -20650503, -11961496, -27236275, 570498, 3767144, -1717540, 13891942, -1569194, 13717174, 10805743 },\n    { -14676630, -15644296, 15287174, 11927123, 24177847, -8175568, -796431, 14860609, -26938930, -5863836 }\n  }\n},\n{ /* 13/31 */\n  {\n    { 12962541, 5311799, -10060768, 11658280, 18855286, -7954201, 13286263, -12808704, -4381056, 9882022 },\n    { 18512079, 11319350, -20123124, 15090309, 18818594, 5271736, -22727904, 3666879, -23967430, -3299429 },\n    { -6789020, -3146043, 16192429, 13241070, 15898607, -14206114, -10084880, -6661110, -2403099, 5276065 }\n  },\n  {\n    { 30169808, -5317648, 26306206, -11750859, 27814964, 7069267, 7152851, 3684982, 1449224, 13082861 },\n    { 10342826, 3098505, 2119311, 193222, 25702612, 12233820, 23697382, 15056736, -21016438, -8202000 },\n    { -33150110, 3261608, 22745853, 7948688, 19370557, -15177665, -26171976, 6482814, -10300080, -11060101 }\n  },\n  {\n    { 32869458, -5408545, 25609743, 15678670, -10687769, -15471071, 26112421, 2521008, -22664288, 6904815 },\n    { 29506923, 4457497, 3377935, -9796444, -30510046, 12935080, 1561737, 3841096, -29003639, -6657642 },\n    { 10340844, -6630377, -18656632, -2278430, 12621151, -13339055, 30878497, -11824370, -25584551, 5181966 }\n  },\n  {\n    { 25940115, -12658025, 17324188, -10307374, -8671468, 15029094, 24396252, -16450922, -2322852, -12388574 },\n    { -21765684, 9916823, -1300409, 4079498, -1028346, 11909559, 1782390, 12641087, 20603771, -6561742 },\n    { -18882287, -11673380, 24849422, 11501709, 13161720, -4768874, 1925523, 11914390, 4662781, 7820689 }\n  },\n  {\n    { 12241050, -425982, 8132691, 9393934, 32846760, -1599620, 29749456, 12172924, 16136752, 15264020 },\n    { -10349955, -14680563, -8211979, 2330220, -17662549, -14545780, 10658213, 6671822, 19012087, 3772772 },\n    { 3753511, -3421066, 10617074, 2028709, 14841030, -6721664, 28718732, -15762884, 20527771, 12988982 }\n  },\n  {\n    { -14822485, -5797269, -3707987, 12689773, -898983, -10914866, -24183046, -10564943, 3299665, -12424953 },\n    { -16777703, -15253301, -9642417, 4978983, 3308785, 8755439, 6943197, 6461331, -25583147, 8991218 },\n    { -17226263, 1816362, -1673288, -6086439, 31783888, -8175991, -32948145, 7417950, -30242287, 1507265 }\n  },\n  {\n    { 29692663, 6829891, -10498800, 4334896, 20945975, -11906496, -28887608, 8209391, 14606362, -10647073 },\n    { -3481570, 8707081, 32188102, 5672294, 22096700, 1711240, -33020695, 9761487, 4170404, -2085325 },\n    { -11587470, 14855945, -4127778, -1531857, -26649089, 15084046, 22186522, 16002000, -14276837, -8400798 }\n  },\n  {\n    { -4811456, 13761029, -31703877, -2483919, -3312471, 7869047, -7113572, -9620092, 13240845, 10965870 },\n    { -7742563, -8256762, -14768334, -13656260, -23232383, 12387166, 4498947, 14147411, 29514390, 4302863 },\n    { -13413405, -12407859, 20757302, -13801832, 14785143, 8976368, -5061276, -2144373, 17846988, -13971927 }\n  }\n},\n{ /* 14/31 */\n  {\n    { -2244452, -754728, -4597030, -1066309, -6247172, 1455299, -21647728, -9214789, -5222701, 12650267 },\n    { -9906797, -16070310, 21134160, 12198166, -27064575, 708126, 387813, 13770293, -19134326, 10958663 },\n    { 22470984, 12369526, 23446014, -5441109, -21520802, -9698723, -11772496, -11574455, -25083830, 4271862 }\n  },\n  {\n    { -25169565, -10053642, -19909332, 15361595, -5984358, 2159192, 75375, -4278529, -32526221, 8469673 },\n    { 15854970, 4148314, -8893890, 7259002, 11666551, 13824734, -30531198, 2697372, 24154791, -9460943 },\n    { 15446137, -15806644, 29759747, 14019369, 30811221, -9610191, -31582008, 12840104, 24913809, 9815020 }\n  },\n  {\n    { -4709286, -5614269, -31841498, -12288893, -14443537, 10799414, -9103676, 13438769, 18735128, 9466238 },\n    { 11933045, 9281483, 5081055, -5183824, -2628162, -4905629, -7727821, -10896103, -22728655, 16199064 },\n    { 14576810, 379472, -26786533, -8317236, -29426508, -10812974, -102766, 1876699, 30801119, 2164795 }\n  },\n  {\n    { 15995086, 3199873, 13672555, 13712240, -19378835, -4647646, -13081610, -15496269, -13492807, 1268052 },\n    { -10290614, -3659039, -3286592, 10948818, 23037027, 3794475, -3470338, -12600221, -17055369, 3565904 },\n    { 29210088, -9419337, -5919792, -4952785, 10834811, -13327726, -16512102, -10820713, -27162222, -14030531 }\n  },\n  {\n    { -13161890, 15508588, 16663704, -8156150, -28349942, 9019123, -29183421, -3769423, 2244111, -14001979 },\n    { -5152875, -3800936, -9306475, -6071583, 16243069, 14684434, -25673088, -16180800, 13491506, 4641841 },\n    { 10813417, 643330, -19188515, -728916, 30292062, -16600078, 27548447, -7721242, 14476989, -12767431 }\n  },\n  {\n    { 10292079, 9984945, 6481436, 8279905, -7251514, 7032743, 27282937, -1644259, -27912810, 12651324 },\n    { -31185513, -813383, 22271204, 11835308, 10201545, 15351028, 17099662, 3988035, 21721536, -3148940 },\n    { 10202177, -6545839, -31373232, -9574638, -32150642, -8119683, -12906320, 3852694, 13216206, 14842320 }\n  },\n  {\n    { -15815640, -10601066, -6538952, -7258995, -6984659, -6581778, -31500847, 13765824, -27434397, 9900184 },\n    { 14465505, -13833331, -32133984, -14738873, -27443187, 12990492, 33046193, 15796406, -7051866, -8040114 },\n    { 30924417, -8279620, 6359016, -12816335, 16508377, 9071735, -25488601, 15413635, 9524356, -7018878 }\n  },\n  {\n    { 12274201, -13175547, 32627641, -1785326, 6736625, 13267305, 5237659, -5109483, 15663516, 4035784 },\n    { -2951309, 8903985, 17349946, 601635, -16432815, -4612556, -13732739, -15889334, -22258478, 4659091 },\n    { -16916263, -4952973, -30393711, -15158821, 20774812, 15897498, 5736189, 15026997, -2178256, -13455585 }\n  }\n},\n{ /* 15/31 */\n  {\n    { -8858980, -2219056, 28571666, -10155518, -474467, -10105698, -3801496, 278095, 23440562, -290208 },\n    { 10226241, -5928702, 15139956, 120818, -14867693, 5218603, 32937275, 11551483, -16571960, -7442864 },\n    { 17932739, -12437276, -24039557, 10749060, 11316803, 7535897, 22503767, 5561594, -3646624, 3898661 }\n  },\n  {\n    { 7749907, -969567, -16339731, -16464, -25018111, 15122143, -1573531, 7152530, 21831162, 1245233 },\n    { 26958459, -14658026, 4314586, 8346991, -5677764, 11960072, -32589295, -620035, -30402091, -16716212 },\n    { -12165896, 9166947, 33491384, 13673479, 29787085, 13096535, 6280834, 14587357, -22338025, 13987525 }\n  },\n  {\n    { -24349909, 7778775, 21116000, 15572597, -4833266, -5357778, -4300898, -5124639, -7469781, -2858068 },\n    { 9681908, -6737123, -31951644, 13591838, -6883821, 386950, 31622781, 6439245, -14581012, 4091397 },\n    { -8426427, 1470727, -28109679, -1596990, 3978627, -5123623, -19622683, 12092163, 29077877, -14741988 }\n  },\n  {\n    { 5269168, -6859726, -13230211, -8020715, 25932563, 1763552, -5606110, -5505881, -20017847, 2357889 },\n    { 32264008, -15407652, -5387735, -1160093, -2091322, -3946900, 23104804, -12869908, 5727338, 189038 },\n    { 14609123, -8954470, -6000566, -16622781, -14577387, -7743898, -26745169, 10942115, -25888931, -14884697 }\n  },\n  {\n    { 20513500, 5557931, -15604613, 7829531, 26413943, -2019404, -21378968, 7471781, 13913677, -5137875 },\n    { -25574376, 11967826, 29233242, 12948236, -6754465, 4713227, -8940970, 14059180, 12878652, 8511905 },\n    { -25656801, 3393631, -2955415, -7075526, -2250709, 9366908, -30223418, 6812974, 5568676, -3127656 }\n  },\n  {\n    { 11630004, 12144454, 2116339, 13606037, 27378885, 15676917, -17408753, -13504373, -14395196, 8070818 },\n    { 27117696, -10007378, -31282771, -5570088, 1127282, 12772488, -29845906, 10483306, -11552749, -1028714 },\n    { 10637467, -5688064, 5674781, 1072708, -26343588, -6982302, -1683975, 9177853, -27493162, 15431203 }\n  },\n  {\n    { 20525145, 10892566, -12742472, 12779443, -29493034, 16150075, -28240519, 14943142, -15056790, -7935931 },\n    { -30024462, 5626926, -551567, -9981087, 753598, 11981191, 25244767, -3239766, -3356550, 9594024 },\n    { -23752644, 2636870, -5163910, -10103818, 585134, 7877383, 11345683, -6492290, 13352335, -10977084 }\n  },\n  {\n    { -1931799, -5407458, 3304649, -12884869, 17015806, -4877091, -29783850, -7752482, -13215537, -319204 },\n    { 20239939, 6607058, 6203985, 3483793, -18386976, -779229, -20723742, 15077870, -22750759, 14523817 },\n    { 27406042, -6041657, 27423596, -4497394, 4996214, 10002360, -28842031, -4545494, -30172742, -4805667 }\n  }\n},\n{ /* 16/31 */\n  {\n    { 11374242, 12660715, 17861383, -12540833, 10935568, 1099227, -13886076, -9091740, -27727044, 11358504 },\n    { -12730809, 10311867, 1510375, 10778093, -2119455, -9145702, 32676003, 11149336, -26123651, 4985768 },\n    { -19096303, 341147, -6197485, -239033, 15756973, -8796662, -983043, 13794114, -19414307, -15621255 }\n  },\n  {\n    { 6490081, 11940286, 25495923, -7726360, 8668373, -8751316, 3367603, 6970005, -1691065, -9004790 },\n    { 1656497, 13457317, 15370807, 6364910, 13605745, 8362338, -19174622, -5475723, -16796596, -5031438 },\n    { -22273315, -13524424, -64685, -4334223, -18605636, -10921968, -20571065, -7007978, -99853, -10237333 }\n  },\n  {\n    { 17747465, 10039260, 19368299, -4050591, -20630635, -16041286, 31992683, -15857976, -29260363, -5511971 },\n    { 31932027, -4986141, -19612382, 16366580, 22023614, 88450, 11371999, -3744247, 4882242, -10626905 },\n    { 29796507, 37186, 19818052, 10115756, -11829032, 3352736, 18551198, 3272828, -5190932, -4162409 }\n  },\n  {\n    { 12501286, 4044383, -8612957, -13392385, -32430052, 5136599, -19230378, -3529697, 330070, -3659409 },\n    { 6384877, 2899513, 17807477, 7663917, -2358888, 12363165, 25366522, -8573892, -271295, 12071499 },\n    { -8365515, -4042521, 25133448, -4517355, -6211027, 2265927, -32769618, 1936675, -5159697, 3829363 }\n  },\n  {\n    { 28425966, -5835433, -577090, -4697198, -14217555, 6870930, 7921550, -6567787, 26333140, 14267664 },\n    { -11067219, 11871231, 27385719, -10559544, -4585914, -11189312, 10004786, -8709488, -21761224, 8930324 },\n    { -21197785, -16396035, 25654216, -1725397, 12282012, 11008919, 1541940, 4757911, -26491501, -16408940 }\n  },\n  {\n    { 13537262, -7759490, -20604840, 10961927, -5922820, -13218065, -13156584, 6217254, -15943699, 13814990 },\n    { -17422573, 15157790, 18705543, 29619, 24409717, -260476, 27361681, 9257833, -1956526, -1776914 },\n    { -25045300, -10191966, 15366585, 15166509, -13105086, 8423556, -29171540, 12361135, -18685978, 4578290 }\n  },\n  {\n    { 24579768, 3711570, 1342322, -11180126, -27005135, 14124956, -22544529, 14074919, 21964432, 8235257 },\n    { -6528613, -2411497, 9442966, -5925588, 12025640, -1487420, -2981514, -1669206, 13006806, 2355433 },\n    { -16304899, -13605259, -6632427, -5142349, 16974359, -10911083, 27202044, 1719366, 1141648, -12796236 }\n  },\n  {\n    { -12863944, -13219986, -8318266, -11018091, -6810145, -4843894, 13475066, -3133972, 32674895, 13715045 },\n    { 11423335, -5468059, 32344216, 8962751, 24989809, 9241752, -13265253, 16086212, -28740881, -15642093 },\n    { -1409668, 12530728, -6368726, 10847387, 19531186, -14132160, -11709148, 7791794, -27245943, 4383347 }\n  }\n},\n{ /* 17/31 */\n  {\n    { -28970898, 5271447, -1266009, -9736989, -12455236, 16732599, -4862407, -4906449, 27193557, 6245191 },\n    { -15193956, 5362278, -1783893, 2695834, 4960227, 12840725, 23061898, 3260492, 22510453, 8577507 },\n    { -12632451, 11257346, -32692994, 13548177, -721004, 10879011, 31168030, 13952092, -29571492, -3635906 }\n  },\n  {\n    { 3877321, -9572739, 32416692, 5405324, -11004407, -13656635, 3759769, 11935320, 5611860, 8164018 },\n    { -16275802, 14667797, 15906460, 12155291, -22111149, -9039718, 32003002, -8832289, 5773085, -8422109 },\n    { -23788118, -8254300, 1950875, 8937633, 18686727, 16459170, -905725, 12376320, 31632953, 190926 }\n  },\n  {\n    { -24593607, -16138885, -8423991, 13378746, 14162407, 6901328, -8288749, 4508564, -25341555, -3627528 },\n    { 8884438, -5884009, 6023974, 10104341, -6881569, -4941533, 18722941, -14786005, -1672488, 827625 },\n    { -32720583, -16289296, -32503547, 7101210, 13354605, 2659080, -1800575, -14108036, -24878478, 1541286 }\n  },\n  {\n    { 2901347, -1117687, 3880376, -10059388, -17620940, -3612781, -21802117, -3567481, 20456845, -1885033 },\n    { 27019610, 12299467, -13658288, -1603234, -12861660, -4861471, -19540150, -5016058, 29439641, 15138866 },\n    { 21536104, -6626420, -32447818, -10690208, -22408077, 5175814, -5420040, -16361163, 7779328, 109896 }\n  },\n  {\n    { 30279744, 14648750, -8044871, 6425558, 13639621, -743509, 28698390, 12180118, 23177719, -554075 },\n    { 26572847, 3405927, -31701700, 12890905, -19265668, 5335866, -6493768, 2378492, 4439158, -13279347 },\n    { -22716706, 3489070, -9225266, -332753, 18875722, -1140095, 14819434, -12731527, -17717757, -5461437 }\n  },\n  {\n    { -5056483, 16566551, 15953661, 3767752, -10436499, 15627060, -820954, 2177225, 8550082, -15114165 },\n    { -18473302, 16596775, -381660, 15663611, 22860960, 15585581, -27844109, -3582739, -23260460, -8428588 },\n    { -32480551, 15707275, -8205912, -5652081, 29464558, 2713815, -22725137, 15860482, -21902570, 1494193 }\n  },\n  {\n    { -19562091, -14087393, -25583872, -9299552, 13127842, 759709, 21923482, 16529112, 8742704, 12967017 },\n    { -28464899, 1553205, 32536856, -10473729, -24691605, -406174, -8914625, -2933896, -29903758, 15553883 },\n    { 21877909, 3230008, 9881174, 10539357, -4797115, 2841332, 11543572, 14513274, 19375923, -12647961 }\n  },\n  {\n    { 8832269, -14495485, 13253511, 5137575, 5037871, 4078777, 24880818, -6222716, 2862653, 9455043 },\n    { 29306751, 5123106, 20245049, -14149889, 9592566, 8447059, -2077124, -2990080, 15511449, 4789663 },\n    { -20679756, 7004547, 8824831, -9434977, -4045704, -3750736, -5754762, 108893, 23513200, 16652362 }\n  }\n},\n{ /* 18/31 */\n  {\n    { -33256173, 4144782, -4476029, -6579123, 10770039, -7155542, -6650416, -12936300, -18319198, 10212860 },\n    { 2756081, 8598110, 7383731, -6859892, 22312759, -1105012, 21179801, 2600940, -9988298, -12506466 },\n    { -24645692, 13317462, -30449259, -15653928, 21365574, -10869657, 11344424, 864440, -2499677, -16710063 }\n  },\n  {\n    { -26432803, 6148329, -17184412, -14474154, 18782929, -275997, -22561534, 211300, 2719757, 4940997 },\n    { -1323882, 3911313, -6948744, 14759765, -30027150, 7851207, 21690126, 8518463, 26699843, 5276295 },\n    { -13149873, -6429067, 9396249, 365013, 24703301, -10488939, 1321586, 149635, -15452774, 7159369 }\n  },\n  {\n    { 9987780, -3404759, 17507962, 9505530, 9731535, -2165514, 22356009, 8312176, 22477218, -8403385 },\n    { 18155857, -16504990, 19744716, 9006923, 15154154, -10538976, 24256460, -4864995, -22548173, 9334109 },\n    { 2986088, -4911893, 10776628, -3473844, 10620590, -7083203, -21413845, 14253545, -22587149, 536906 }\n  },\n  {\n    { 4377756, 8115836, 24567078, 15495314, 11625074, 13064599, 7390551, 10589625, 10838060, -15420424 },\n    { -19342404, 867880, 9277171, -3218459, -14431572, -1986443, 19295826, -15796950, 6378260, 699185 },\n    { 7895026, 4057113, -7081772, -13077756, -17886831, -323126, -716039, 15693155, -5045064, -13373962 }\n  },\n  {\n    { -7737563, -5869402, -14566319, -7406919, 11385654, 13201616, 31730678, -10962840, -3918636, -9669325 },\n    { 10188286, -15770834, -7336361, 13427543, 22223443, 14896287, 30743455, 7116568, -21786507, 5427593 },\n    { 696102, 13206899, 27047647, -10632082, 15285305, -9853179, 10798490, -4578720, 19236243, 12477404 }\n  },\n  {\n    { -11229439, 11243796, -17054270, -8040865, -788228, -8167967, -3897669, 11180504, -23169516, 7733644 },\n    { 17800790, -14036179, -27000429, -11766671, 23887827, 3149671, 23466177, -10538171, 10322027, 15313801 },\n    { 26246234, 11968874, 32263343, -5468728, 6830755, -13323031, -15794704, -101982, -24449242, 10890804 }\n  },\n  {\n    { -31365647, 10271363, -12660625, -6267268, 16690207, -13062544, -14982212, 16484931, 25180797, -5334884 },\n    { -586574, 10376444, -32586414, -11286356, 19801893, 10997610, 2276632, 9482883, 316878, 13820577 },\n    { -9882808, -4510367, -2115506, 16457136, -11100081, 11674996, 30756178, -7515054, 30696930, -3712849 }\n  },\n  {\n    { 32988917, -9603412, 12499366, 7910787, -10617257, -11931514, -7342816, -9985397, -32349517, 7392473 },\n    { -8855661, 15927861, 9866406, -3649411, -2396914, -16655781, -30409476, -9134995, 25112947, -2926644 },\n    { -2504044, -436966, 25621774, -5678772, 15085042, -5479877, -24884878, -13526194, 5537438, -13914319 }\n  }\n},\n{ /* 19/31 */\n  {\n    { -11225584, 2320285, -9584280, 10149187, -33444663, 5808648, -14876251, -1729667, 31234590, 6090599 },\n    { -9633316, 116426, 26083934, 2897444, -6364437, -2688086, 609721, 15878753, -6970405, -9034768 },\n    { -27757857, 247744, -15194774, -9002551, 23288161, -10011936, -23869595, 6503646, 20650474, 1804084 }\n  },\n  {\n    { -27589786, 15456424, 8972517, 8469608, 15640622, 4439847, 3121995, -10329713, 27842616, -202328 },\n    { -15306973, 2839644, 22530074, 10026331, 4602058, 5048462, 28248656, 5031932, -11375082, 12714369 },\n    { 20807691, -7270825, 29286141, 11421711, -27876523, -13868230, -21227475, 1035546, -19733229, 12796920 }\n  },\n  {\n    { 12076899, -14301286, -8785001, -11848922, -25012791, 16400684, -17591495, -12899438, 3480665, -15182815 },\n    { -32361549, 5457597, 28548107, 7833186, 7303070, -11953545, -24363064, -15921875, -33374054, 2771025 },\n    { -21389266, 421932, 26597266, 6860826, 22486084, -6737172, -17137485, -4210226, -24552282, 15673397 }\n  },\n  {\n    { -20184622, 2338216, 19788685, -9620956, -4001265, -8740893, -20271184, 4733254, 3727144, -12934448 },\n    { 6120119, 814863, -11794402, -622716, 6812205, -15747771, 2019594, 7975683, 31123697, -10958981 },\n    { 30069250, -11435332, 30434654, 2958439, 18399564, -976289, 12296869, 9204260, -16432438, 9648165 }\n  },\n  {\n    { 32705432, -1550977, 30705658, 7451065, -11805606, 9631813, 3305266, 5248604, -26008332, -11377501 },\n    { 17219865, 2375039, -31570947, -5575615, -19459679, 9219903, 294711, 15298639, 2662509, -16297073 },\n    { -1172927, -7558695, -4366770, -4287744, -21346413, -8434326, 32087529, -1222777, 32247248, -14389861 }\n  },\n  {\n    { 14312628, 1221556, 17395390, -8700143, -4945741, -8684635, -28197744, -9637817, -16027623, -13378845 },\n    { -1428825, -9678990, -9235681, 6549687, -7383069, -468664, 23046502, 9803137, 17597934, 2346211 },\n    { 18510800, 15337574, 26171504, 981392, -22241552, 7827556, -23491134, -11323352, 3059833, -11782870 }\n  },\n  {\n    { 10141598, 6082907, 17829293, -1947643, 9830092, 13613136, -25556636, -5544586, -33502212, 3592096 },\n    { 33114168, -15889352, -26525686, -13343397, 33076705, 8716171, 1151462, 1521897, -982665, -6837803 },\n    { -32939165, -4255815, 23947181, -324178, -33072974, -12305637, -16637686, 3891704, 26353178, 693168 }\n  },\n  {\n    { 30374239, 1595580, -16884039, 13186931, 4600344, 406904, 9585294, -400668, 31375464, 14369965 },\n    { -14370654, -7772529, 1510301, 6434173, -18784789, -6262728, 32732230, -13108839, 17901441, 16011505 },\n    { 18171223, -11934626, -12500402, 15197122, -11038147, -15230035, -19172240, -16046376, 8764035, 12309598 }\n  }\n},\n{ /* 20/31 */\n  {\n    { 5975908, -5243188, -19459362, -9681747, -11541277, 14015782, -23665757, 1228319, 17544096, -10593782 },\n    { 5811932, -1715293, 3442887, -2269310, -18367348, -8359541, -18044043, -15410127, -5565381, 12348900 },\n    { -31399660, 11407555, 25755363, 6891399, -3256938, 14872274, -24849353, 8141295, -10632534, -585479 }\n  },\n  {\n    { -12675304, 694026, -5076145, 13300344, 14015258, -14451394, -9698672, -11329050, 30944593, 1130208 },\n    { 8247766, -6710942, -26562381, -7709309, -14401939, -14648910, 4652152, 2488540, 23550156, -271232 },\n    { 17294316, -3788438, 7026748, 15626851, 22990044, 113481, 2267737, -5908146, -408818, -137719 }\n  },\n  {\n    { 16091085, -16253926, 18599252, 7340678, 2137637, -1221657, -3364161, 14550936, 3260525, -7166271 },\n    { -4910104, -13332887, 18550887, 10864893, -16459325, -7291596, -23028869, -13204905, -12748722, 2701326 },\n    { -8574695, 16099415, 4629974, -16340524, -20786213, -6005432, -10018363, 9276971, 11329923, 1862132 }\n  },\n  {\n    { 14763076, -15903608, -30918270, 3689867, 3511892, 10313526, -21951088, 12219231, -9037963, -940300 },\n    { 8894987, -3446094, 6150753, 3013931, 301220, 15693451, -31981216, -2909717, -15438168, 11595570 },\n    { 15214962, 3537601, -26238722, -14058872, 4418657, -15230761, 13947276, 10730794, -13489462, -4363670 }\n  },\n  {\n    { -2538306, 7682793, 32759013, 263109, -29984731, -7955452, -22332124, -10188635, 977108, 699994 },\n    { -12466472, 4195084, -9211532, 550904, -15565337, 12917920, 19118110, -439841, -30534533, -14337913 },\n    { 31788461, -14507657, 4799989, 7372237, 8808585, -14747943, 9408237, -10051775, 12493932, -5409317 }\n  },\n  {\n    { -25680606, 5260744, -19235809, -6284470, -3695942, 16566087, 27218280, 2607121, 29375955, 6024730 },\n    { 842132, -2794693, -4763381, -8722815, 26332018, -12405641, 11831880, 6985184, -9940361, 2854096 },\n    { -4847262, -7969331, 2516242, -5847713, 9695691, -7221186, 16512645, 960770, 12121869, 16648078 }\n  },\n  {\n    { -15218652, 14667096, -13336229, 2013717, 30598287, -464137, -31504922, -7882064, 20237806, 2838411 },\n    { -19288047, 4453152, 15298546, -16178388, 22115043, -15972604, 12544294, -13470457, 1068881, -12499905 },\n    { -9558883, -16518835, 33238498, 13506958, 30505848, -1114596, -8486907, -2630053, 12521378, 4845654 }\n  },\n  {\n    { -28198521, 10744108, -2958380, 10199664, 7759311, -13088600, 3409348, -873400, -6482306, -12885870 },\n    { -23561822, 6230156, -20382013, 10655314, -24040585, -11621172, 10477734, -1240216, -3113227, 13974498 },\n    { 12966261, 15550616, -32038948, -1615346, 21025980, -629444, 5642325, 7188737, 18895762, 12629579 }\n  }\n},\n{ /* 21/31 */\n  {\n    { 14741879, -14946887, 22177208, -11721237, 1279741, 8058600, 11758140, 789443, 32195181, 3895677 },\n    { 10758205, 15755439, -4509950, 9243698, -4879422, 6879879, -2204575, -3566119, -8982069, 4429647 },\n    { -2453894, 15725973, -20436342, -10410672, -5803908, -11040220, -7135870, -11642895, 18047436, -15281743 }\n  },\n  {\n    { -25173001, -11307165, 29759956, 11776784, -22262383, -15820455, 10993114, -12850837, -17620701, -9408468 },\n    { 21987233, 700364, -24505048, 14972008, -7774265, -5718395, 32155026, 2581431, -29958985, 8773375 },\n    { -25568350, 454463, -13211935, 16126715, 25240068, 8594567, 20656846, 12017935, -7874389, -13920155 }\n  },\n  {\n    { 6028182, 6263078, -31011806, -11301710, -818919, 2461772, -31841174, -5468042, -1721788, -2776725 },\n    { -12278994, 16624277, 987579, -5922598, 32908203, 1248608, 7719845, -4166698, 28408820, 6816612 },\n    { -10358094, -8237829, 19549651, -12169222, 22082623, 16147817, 20613181, 13982702, -10339570, 5067943 }\n  },\n  {\n    { -30505967, -3821767, 12074681, 13582412, -19877972, 2443951, -19719286, 12746132, 5331210, -10105944 },\n    { 30528811, 3601899, -1957090, 4619785, -27361822, -15436388, 24180793, -12570394, 27679908, -1648928 },\n    { 9402404, -13957065, 32834043, 10838634, -26580150, -13237195, 26653274, -8685565, 22611444, -12715406 }\n  },\n  {\n    { 22190590, 1118029, 22736441, 15130463, -30460692, -5991321, 19189625, -4648942, 4854859, 6622139 },\n    { -8310738, -2953450, -8262579, -3388049, -10401731, -271929, 13424426, -3567227, 26404409, 13001963 },\n    { -31241838, -15415700, -2994250, 8939346, 11562230, -12840670, -26064365, -11621720, -15405155, 11020693 }\n  },\n  {\n    { 1866042, -7949489, -7898649, -10301010, 12483315, 13477547, 3175636, -12424163, 28761762, 1406734 },\n    { -448555, -1777666, 13018551, 3194501, -9580420, -11161737, 24760585, -4347088, 25577411, -13378680 },\n    { -24290378, 4759345, -690653, -1852816, 2066747, 10693769, -29595790, 9884936, -9368926, 4745410 }\n  },\n  {\n    { -9141284, 6049714, -19531061, -4341411, -31260798, 9944276, -15462008, -11311852, 10931924, -11931931 },\n    { -16561513, 14112680, -8012645, 4817318, -8040464, -11414606, -22853429, 10856641, -20470770, 13434654 },\n    { 22759489, -10073434, -16766264, -1871422, 13637442, -10168091, 1765144, -12654326, 28445307, -5364710 }\n  },\n  {\n    { 29875063, 12493613, 2795536, -3786330, 1710620, 15181182, -10195717, -8788675, 9074234, 1167180 },\n    { -26205683, 11014233, -9842651, -2635485, -26908120, 7532294, -18716888, -9535498, 3843903, 9367684 },\n    { -10969595, -6403711, 9591134, 9582310, 11349256, 108879, 16235123, 8601684, -139197, 4242895 }\n  }\n},\n{ /* 22/31 */\n  {\n    { 22092954, -13191123, -2042793, -11968512, 32186753, -11517388, -6574341, 2470660, -27417366, 16625501 },\n    { -11057722, 3042016, 13770083, -9257922, 584236, -544855, -7770857, 2602725, -27351616, 14247413 },\n    { 6314175, -10264892, -32772502, 15957557, -10157730, 168750, -8618807, 14290061, 27108877, -1180880 }\n  },\n  {\n    { -8586597, -7170966, 13241782, 10960156, -32991015, -13794596, 33547976, -11058889, -27148451, 981874 },\n    { 22833440, 9293594, -32649448, -13618667, -9136966, 14756819, -22928859, -13970780, -10479804, -16197962 },\n    { -7768587, 3326786, -28111797, 10783824, 19178761, 14905060, 22680049, 13906969, -15933690, 3797899 }\n  },\n  {\n    { 21721356, -4212746, -12206123, 9310182, -3882239, -13653110, 23740224, -2709232, 20491983, -8042152 },\n    { 9209270, -15135055, -13256557, -6167798, -731016, 15289673, 25947805, 15286587, 30997318, -6703063 },\n    { 7392032, 16618386, 23946583, -8039892, -13265164, -1533858, -14197445, -2321576, 17649998, -250080 }\n  },\n  {\n    { -9301088, -14193827, 30609526, -3049543, -25175069, -1283752, -15241566, -9525724, -2233253, 7662146 },\n    { -17558673, 1763594, -33114336, 15908610, -30040870, -12174295, 7335080, -8472199, -3174674, 3440183 },\n    { -19889700, -5977008, -24111293, -9688870, 10799743, -16571957, 40450, -4431835, 4862400, 1133 }\n  },\n  {\n    { -32856209, -7873957, -5422389, 14860950, -16319031, 7956142, 7258061, 311861, -30594991, -7379421 },\n    { -3773428, -1565936, 28985340, 7499440, 24445838, 9325937, 29727763, 16527196, 18278453, 15405622 },\n    { -4381906, 8508652, -19898366, -3674424, -5984453, 15149970, -13313598, 843523, -21875062, 13626197 }\n  },\n  {\n    { 2281448, -13487055, -10915418, -2609910, 1879358, 16164207, -10783882, 3953792, 13340839, 15928663 },\n    { 31727126, -7179855, -18437503, -8283652, 2875793, -16390330, -25269894, -7014826, -23452306, 5964753 },\n    { 4100420, -5959452, -17179337, 6017714, -18705837, 12227141, -26684835, 11344144, 2538215, -7570755 }\n  },\n  {\n    { -9433605, 6123113, 11159803, -2156608, 30016280, 14966241, -20474983, 1485421, -629256, -15958862 },\n    { -26804558, 4260919, 11851389, 9658551, -32017107, 16367492, -20205425, -13191288, 11659922, -11115118 },\n    { 26180396, 10015009, -30844224, -8581293, 5418197, 9480663, 2231568, -10170080, 33100372, -1306171 }\n  },\n  {\n    { 15121113, -5201871, -10389905, 15427821, -27509937, -15992507, 21670947, 4486675, -5931810, -14466380 },\n    { 16166486, -9483733, -11104130, 6023908, -31926798, -1364923, 2340060, -16254968, -10735770, -10039824 },\n    { 28042865, -3557089, -12126526, 12259706, -3717498, -6945899, 6766453, -8689599, 18036436, 5803270 }\n  }\n},\n{ /* 23/31 */\n  {\n    { -817581, 6763912, 11803561, 1585585, 10958447, -2671165, 23855391, 4598332, -6159431, -14117438 },\n    { -31031306, -14256194, 17332029, -2383520, 31312682, -5967183, 696309, 50292, -20095739, 11763584 },\n    { -594563, -2514283, -32234153, 12643980, 12650761, 14811489, 665117, -12613632, -19773211, -10713562 }\n  },\n  {\n    { 30464590, -11262872, -4127476, -12734478, 19835327, -7105613, -24396175, 2075773, -17020157, 992471 },\n    { 18357185, -6994433, 7766382, 16342475, -29324918, 411174, 14578841, 8080033, -11574335, -10601610 },\n    { 19598397, 10334610, 12555054, 2555664, 18821899, -10339780, 21873263, 16014234, 26224780, 16452269 }\n  },\n  {\n    { -30223925, 5145196, 5944548, 16385966, 3976735, 2009897, -11377804, -7618186, -20533829, 3698650 },\n    { 14187449, 3448569, -10636236, -10810935, -22663880, -3433596, 7268410, -10890444, 27394301, 12015369 },\n    { 19695761, 16087646, 28032085, 12999827, 6817792, 11427614, 20244189, -1312777, -13259127, -3402461 }\n  },\n  {\n    { 30860103, 12735208, -1888245, -4699734, -16974906, 2256940, -8166013, 12298312, -8550524, -10393462 },\n    { -5719826, -11245325, -1910649, 15569035, 26642876, -7587760, -5789354, -15118654, -4976164, 12651793 },\n    { -2848395, 9953421, 11531313, -5282879, 26895123, -12697089, -13118820, -16517902, 9768698, -2533218 }\n  },\n  {\n    { -24719459, 1894651, -287698, -4704085, 15348719, -8156530, 32767513, 12765450, 4940095, 10678226 },\n    { 18860224, 15980149, -18987240, -1562570, -26233012, -11071856, -7843882, 13944024, -24372348, 16582019 },\n    { -15504260, 4970268, -29893044, 4175593, -20993212, -2199756, -11704054, 15444560, -11003761, 7989037 }\n  },\n  {\n    { 31490452, 5568061, -2412803, 2182383, -32336847, 4531686, -32078269, 6200206, -19686113, -14800171 },\n    { -17308668, -15879940, -31522777, -2831, -32887382, 16375549, 8680158, -16371713, 28550068, -6857132 },\n    { -28126887, -5688091, 16837845, -1820458, -6850681, 12700016, -30039981, 4364038, 1155602, 5988841 }\n  },\n  {\n    { 21890435, -13272907, -12624011, 12154349, -7831873, 15300496, 23148983, -4470481, 24618407, 8283181 },\n    { -33136107, -10512751, 9975416, 6841041, -31559793, 16356536, 3070187, -7025928, 1466169, 10740210 },\n    { -1509399, -15488185, -13503385, -10655916, 32799044, 909394, -13938903, -5779719, -32164649, -15327040 }\n  },\n  {\n    { 3960823, -14267803, -28026090, -15918051, -19404858, 13146868, 15567327, 951507, -3260321, -573935 },\n    { 24740841, 5052253, -30094131, 8961361, 25877428, 6165135, -24368180, 14397372, -7380369, -6144105 },\n    { -28888365, 3510803, -28103278, -1158478, -11238128, -10631454, -15441463, -14453128, -1625486, -6494814 }\n  }\n},\n{ /* 24/31 */\n  {\n    { 793299, -9230478, 8836302, -6235707, -27360908, -2369593, 33152843, -4885251, -9906200, -621852 },\n    { 5666233, 525582, 20782575, -8038419, -24538499, 14657740, 16099374, 1468826, -6171428, -15186581 },\n    { -4859255, -3779343, -2917758, -6748019, 7778750, 11688288, -30404353, -9871238, -1558923, -9863646 }\n  },\n  {\n    { 10896332, -7719704, 824275, 472601, -19460308, 3009587, 25248958, 14783338, -30581476, -15757844 },\n    { 10566929, 12612572, -31944212, 11118703, -12633376, 12362879, 21752402, 8822496, 24003793, 14264025 },\n    { 27713862, -7355973, -11008240, 9227530, 27050101, 2504721, 23886875, -13117525, 13958495, -5732453 }\n  },\n  {\n    { -23481610, 4867226, -27247128, 3900521, 29838369, -8212291, -31889399, -10041781, 7340521, -15410068 },\n    { 4646514, -8011124, -22766023, -11532654, 23184553, 8566613, 31366726, -1381061, -15066784, -10375192 },\n    { -17270517, 12723032, -16993061, 14878794, 21619651, -6197576, 27584817, 3093888, -8843694, 3849921 }\n  },\n  {\n    { -9064912, 2103172, 25561640, -15125738, -5239824, 9582958, 32477045, -9017955, 5002294, -15550259 },\n    { -12057553, -11177906, 21115585, -13365155, 8808712, -12030708, 16489530, 13378448, -25845716, 12741426 },\n    { -5946367, 10645103, -30911586, 15390284, -3286982, -7118677, 24306472, 15852464, 28834118, -7646072 }\n  },\n  {\n    { -17335748, -9107057, -24531279, 9434953, -8472084, -583362, -13090771, 455841, 20461858, 5491305 },\n    { 13669248, -16095482, -12481974, -10203039, -14569770, -11893198, -24995986, 11293807, -28588204, -9421832 },\n    { 28497928, 6272777, -33022994, 14470570, 8906179, -1225630, 18504674, -14165166, 29867745, -8795943 }\n  },\n  {\n    { -16207023, 13517196, -27799630, -13697798, 24009064, -6373891, -6367600, -13175392, 22853429, -4012011 },\n    { 24191378, 16712145, -13931797, 15217831, 14542237, 1646131, 18603514, -11037887, 12876623, -2112447 },\n    { 17902668, 4518229, -411702, -2829247, 26878217, 5258055, -12860753, 608397, 16031844, 3723494 }\n  },\n  {\n    { -28632773, 12763728, -20446446, 7577504, 33001348, -13017745, 17558842, -7872890, 23896954, -4314245 },\n    { -20005381, -12011952, 31520464, 605201, 2543521, 5991821, -2945064, 7229064, -9919646, -8826859 },\n    { 28816045, 298879, -28165016, -15920938, 19000928, -1665890, -12680833, -2949325, -18051778, -2082915 }\n  },\n  {\n    { 16000882, -344896, 3493092, -11447198, -29504595, -13159789, 12577740, 16041268, -19715240, 7847707 },\n    { 10151868, 10572098, 27312476, 7922682, 14825339, 4723128, -32855931, -6519018, -10020567, 3852848 },\n    { -11430470, 15697596, -21121557, -4420647, 5386314, 15063598, 16514493, -15932110, 29330899, -15076224 }\n  }\n},\n{ /* 25/31 */\n  {\n    { -25499735, -4378794, -15222908, -6901211, 16615731, 2051784, 3303702, 15490, -27548796, 12314391 },\n    { 15683520, -6003043, 18109120, -9980648, 15337968, -5997823, -16717435, 15921866, 16103996, -3731215 },\n    { -23169824, -10781249, 13588192, -1628807, -3798557, -1074929, -19273607, 5402699, -29815713, -9841101 }\n  },\n  {\n    { 23190676, 2384583, -32714340, 3462154, -29903655, -1529132, -11266856, 8911517, -25205859, 2739713 },\n    { 21374101, -3554250, -33524649, 9874411, 15377179, 11831242, -33529904, 6134907, 4931255, 11987849 },\n    { -7732, -2978858, -16223486, 7277597, 105524, -322051, -31480539, 13861388, -30076310, 10117930 }\n  },\n  {\n    { -29501170, -10744872, -26163768, 13051539, -25625564, 5089643, -6325503, 6704079, 12890019, 15728940 },\n    { -21972360, -11771379, -951059, -4418840, 14704840, 2695116, 903376, -10428139, 12885167, 8311031 },\n    { -17516482, 5352194, 10384213, -13811658, 7506451, 13453191, 26423267, 4384730, 1888765, -5435404 }\n  },\n  {\n    { -25817338, -3107312, -13494599, -3182506, 30896459, -13921729, -32251644, -12707869, -19464434, -3340243 },\n    { -23607977, -2665774, -526091, 4651136, 5765089, 4618330, 6092245, 14845197, 17151279, -9854116 },\n    { -24830458, -12733720, -15165978, 10367250, -29530908, -265356, 22825805, -7087279, -16866484, 16176525 }\n  },\n  {\n    { -23583256, 6564961, 20063689, 3798228, -4740178, 7359225, 2006182, -10363426, -28746253, -10197509 },\n    { -10626600, -4486402, -13320562, -5125317, 3432136, -6393229, 23632037, -1940610, 32808310, 1099883 },\n    { 15030977, 5768825, -27451236, -2887299, -6427378, -15361371, -15277896, -6809350, 2051441, -15225865 }\n  },\n  {\n    { -3362323, -7239372, 7517890, 9824992, 23555850, 295369, 5148398, -14154188, -22686354, 16633660 },\n    { 4577086, -16752288, 13249841, -15304328, 19958763, -14537274, 18559670, -10759549, 8402478, -9864273 },\n    { -28406330, -1051581, -26790155, -907698, -17212414, -11030789, 9453451, -14980072, 17983010, 9967138 }\n  },\n  {\n    { -25762494, 6524722, 26585488, 9969270, 24709298, 1220360, -1677990, 7806337, 17507396, 3651560 },\n    { -10420457, -4118111, 14584639, 15971087, -15768321, 8861010, 26556809, -5574557, -18553322, -11357135 },\n    { 2839101, 14284142, 4029895, 3472686, 14402957, 12689363, -26642121, 8459447, -5605463, -7621941 }\n  },\n  {\n    { -4839289, -3535444, 9744961, 2871048, 25113978, 3187018, -25110813, -849066, 17258084, -7977739 },\n    { 18164541, -10595176, -17154882, -1542417, 19237078, -9745295, 23357533, -15217008, 26908270, 12150756 },\n    { -30264870, -7647865, 5112249, -7036672, -1499807, -6974257, 43168, -5537701, -32302074, 16215819 }\n  }\n},\n{ /* 26/31 */\n  {\n    { -6898905, 9824394, -12304779, -4401089, -31397141, -6276835, 32574489, 12532905, -7503072, -8675347 },\n    { -27343522, -16515468, -27151524, -10722951, 946346, 16291093, 254968, 7168080, 21676107, -1943028 },\n    { 21260961, -8424752, -16831886, -11920822, -23677961, 3968121, -3651949, -6215466, -3556191, -7913075 }\n  },\n  {\n    { 16544754, 13250366, -16804428, 15546242, -4583003, 12757258, -2462308, -8680336, -18907032, -9662799 },\n    { -2415239, -15577728, 18312303, 4964443, -15272530, -12653564, 26820651, 16690659, 25459437, -4564609 },\n    { -25144690, 11425020, 28423002, -11020557, -6144921, -15826224, 9142795, -2391602, -6432418, -1644817 }\n  },\n  {\n    { -23104652, 6253476, 16964147, -3768872, -25113972, -12296437, -27457225, -16344658, 6335692, 7249989 },\n    { -30333227, 13979675, 7503222, -12368314, -11956721, -4621693, -30272269, 2682242, 25993170, -12478523 },\n    { 4364628, 5930691, 32304656, -10044554, -8054781, 15091131, 22857016, -10598955, 31820368, 15075278 }\n  },\n  {\n    { 31879134, -8918693, 17258761, 90626, -8041836, -4917709, 24162788, -9650886, -17970238, 12833045 },\n    { 19073683, 14851414, -24403169, -11860168, 7625278, 11091125, -19619190, 2074449, -9413939, 14905377 },\n    { 24483667, -11935567, -2518866, -11547418, -1553130, 15355506, -25282080, 9253129, 27628530, -7555480 }\n  },\n  {\n    { 17597607, 8340603, 19355617, 552187, 26198470, -3176583, 4593324, -9157582, -14110875, 15297016 },\n    { 510886, 14337390, -31785257, 16638632, 6328095, 2713355, -20217417, -11864220, 8683221, 2921426 },\n    { 18606791, 11874196, 27155355, -5281482, -24031742, 6265446, -25178240, -1278924, 4674690, 13890525 }\n  },\n  {\n    { 13609624, 13069022, -27372361, -13055908, 24360586, 9592974, 14977157, 9835105, 4389687, 288396 },\n    { 9922506, -519394, 13613107, 5883594, -18758345, -434263, -12304062, 8317628, 23388070, 16052080 },\n    { 12720016, 11937594, -31970060, -5028689, 26900120, 8561328, -20155687, -11632979, -14754271, -10812892 }\n  },\n  {\n    { 15961858, 14150409, 26716931, -665832, -22794328, 13603569, 11829573, 7467844, -28822128, 929275 },\n    { 11038231, -11582396, -27310482, -7316562, -10498527, -16307831, -23479533, -9371869, -21393143, 2465074 },\n    { 20017163, -4323226, 27915242, 1529148, 12396362, 15675764, 13817261, -9658066, 2463391, -4622140 }\n  },\n  {\n    { -16358878, -12663911, -12065183, 4996454, -1256422, 1073572, 9583558, 12851107, 4003896, 12673717 },\n    { -1731589, -15155870, -3262930, 16143082, 19294135, 13385325, 14741514, -9103726, 7903886, 2348101 },\n    { 24536016, -16515207, 12715592, -3862155, 1511293, 10047386, -3842346, -7129159, -28377538, 10048127 }\n  }\n},\n{ /* 27/31 */\n  {\n    { -12622226, -6204820, 30718825, 2591312, -10617028, 12192840, 18873298, -7297090, -32297756, 15221632 },\n    { -26478122, -11103864, 11546244, -1852483, 9180880, 7656409, -21343950, 2095755, 29769758, 6593415 },\n    { -31994208, -2907461, 4176912, 3264766, 12538965, -868111, 26312345, -6118678, 30958054, 8292160 }\n  },\n  {\n    { 31429822, -13959116, 29173532, 15632448, 12174511, -2760094, 32808831, 3977186, 26143136, -3148876 },\n    { 22648901, 1402143, -22799984, 13746059, 7936347, 365344, -8668633, -1674433, -3758243, -2304625 },\n    { -15491917, 8012313, -2514730, -12702462, -23965846, -10254029, -1612713, -1535569, -16664475, 8194478 }\n  },\n  {\n    { 27338066, -7507420, -7414224, 10140405, -19026427, -6589889, 27277191, 8855376, 28572286, 3005164 },\n    { 26287124, 4821776, 25476601, -4145903, -3764513, -15788984, -18008582, 1182479, -26094821, -13079595 },\n    { -7171154, 3178080, 23970071, 6201893, -17195577, -4489192, -21876275, -13982627, 32208683, -1198248 }\n  },\n  {\n    { -16657702, 2817643, -10286362, 14811298, 6024667, 13349505, -27315504, -10497842, -27672585, -11539858 },\n    { 15941029, -9405932, -21367050, 8062055, 31876073, -238629, -15278393, -1444429, 15397331, -4130193 },\n    { 8934485, -13485467, -23286397, -13423241, -32446090, 14047986, 31170398, -1441021, -27505566, 15087184 }\n  },\n  {\n    { -18357243, -2156491, 24524913, -16677868, 15520427, -6360776, -15502406, 11461896, 16788528, -5868942 },\n    { -1947386, 16013773, 21750665, 3714552, -17401782, -16055433, -3770287, -10323320, 31322514, -11615635 },\n    { 21426655, -5650218, -13648287, -5347537, -28812189, -4920970, -18275391, -14621414, 13040862, -12112948 }\n  },\n  {\n    { 11293895, 12478086, -27136401, 15083750, -29307421, 14748872, 14555558, -13417103, 1613711, 4896935 },\n    { -25894883, 15323294, -8489791, -8057900, 25967126, -13425460, 2825960, -4897045, -23971776, -11267415 },\n    { -15924766, -5229880, -17443532, 6410664, 3622847, 10243618, 20615400, 12405433, -23753030, -8436416 }\n  },\n  {\n    { -7091295, 12556208, -20191352, 9025187, -17072479, 4333801, 4378436, 2432030, 23097949, -566018 },\n    { 4565804, -16025654, 20084412, -7842817, 1724999, 189254, 24767264, 10103221, -18512313, 2424778 },\n    { 366633, -11976806, 8173090, -6890119, 30788634, 5745705, -7168678, 1344109, -3642553, 12412659 }\n  },\n  {\n    { -24001791, 7690286, 14929416, -168257, -32210835, -13412986, 24162697, -15326504, -3141501, 11179385 },\n    { 18289522, -14724954, 8056945, 16430056, -21729724, 7842514, -6001441, -1486897, -18684645, -11443503 },\n    { 476239, 6601091, -6152790, -9723375, 17503545, -4863900, 27672959, 13403813, 11052904, 5219329 }\n  }\n},\n{ /* 28/31 */\n  {\n    { 20678546, -8375738, -32671898, 8849123, -5009758, 14574752, 31186971, -3973730, 9014762, -8579056 },\n    { -13644050, -10350239, -15962508, 5075808, -1514661, -11534600, -33102500, 9160280, 8473550, -3256838 },\n    { 24900749, 14435722, 17209120, -15292541, -22592275, 9878983, -7689309, -16335821, -24568481, 11788948 }\n  },\n  {\n    { -3118155, -11395194, -13802089, 14797441, 9652448, -6845904, -20037437, 10410733, -24568470, -1458691 },\n    { -15659161, 16736706, -22467150, 10215878, -9097177, 7563911, 11871841, -12505194, -18513325, 8464118 },\n    { -23400612, 8348507, -14585951, -861714, -3950205, -6373419, 14325289, 8628612, 33313881, -8370517 }\n  },\n  {\n    { -20186973, -4967935, 22367356, 5271547, -1097117, -4788838, -24805667, -10236854, -8940735, -5818269 },\n    { -6948785, -1795212, -32625683, -16021179, 32635414, -7374245, 15989197, -12838188, 28358192, -4253904 },\n    { -23561781, -2799059, -32351682, -1661963, -9147719, 10429267, -16637684, 4072016, -5351664, 5596589 }\n  },\n  {\n    { -28236598, -3390048, 12312896, 6213178, 3117142, 16078565, 29266239, 2557221, 1768301, 15373193 },\n    { -7243358, -3246960, -4593467, -7553353, -127927, -912245, -1090902, -4504991, -24660491, 3442910 },\n    { -30210571, 5124043, 14181784, 8197961, 18964734, -11939093, 22597931, 7176455, -18585478, 13365930 }\n  },\n  {\n    { -7877390, -1499958, 8324673, 4690079, 6261860, 890446, 24538107, -8570186, -9689599, -3031667 },\n    { 25008904, -10771599, -4305031, -9638010, 16265036, 15721635, 683793, -11823784, 15723479, -15163481 },\n    { -9660625, 12374379, -27006999, -7026148, -7724114, -12314514, 11879682, 5400171, 519526, -1235876 }\n  },\n  {\n    { 22258397, -16332233, -7869817, 14613016, -22520255, -2950923, -20353881, 7315967, 16648397, 7605640 },\n    { -8081308, -8464597, -8223311, 9719710, 19259459, -15348212, 23994942, -5281555, -9468848, 4763278 },\n    { -21699244, 9220969, -15730624, 1084137, -25476107, -2852390, 31088447, -7764523, -11356529, 728112 }\n  },\n  {\n    { 26047220, -11751471, -6900323, -16521798, 24092068, 9158119, -4273545, -12555558, -29365436, -5498272 },\n    { 17510331, -322857, 5854289, 8403524, 17133918, -3112612, -28111007, 12327945, 10750447, 10014012 },\n    { -10312768, 3936952, 9156313, -8897683, 16498692, -994647, -27481051, -666732, 3424691, 7540221 }\n  },\n  {\n    { 30322361, -6964110, 11361005, -4143317, 7433304, 4989748, -7071422, -16317219, -9244265, 15258046 },\n    { 13054562, -2779497, 19155474, 469045, -12482797, 4566042, 5631406, 2711395, 1062915, -5136345 },\n    { -19240248, -11254599, -29509029, -7499965, -5835763, 13005411, -6066489, 12194497, 32960380, 1459310 }\n  }\n},\n{ /* 29/31 */\n  {\n    { 19852034, 7027924, 23669353, 10020366, 8586503, -6657907, 394197, -6101885, 18638003, -11174937 },\n    { 31395534, 15098109, 26581030, 8030562, -16527914, -5007134, 9012486, -7584354, -6643087, -5442636 },\n    { -9192165, -2347377, -1997099, 4529534, 25766844, 607986, -13222, 9677543, -32294889, -6456008 }\n  },\n  {\n    { -2444496, -149937, 29348902, 8186665, 1873760, 12489863, -30934579, -7839692, -7852844, -8138429 },\n    { -15236356, -15433509, 7766470, 746860, 26346930, -10221762, -27333451, 10754588, -9431476, 5203576 },\n    { 31834314, 14135496, -770007, 5159118, 20917671, -16768096, -7467973, -7337524, 31809243, 7347066 }\n  },\n  {\n    { -9606723, -11874240, 20414459, 13033986, 13716524, -11691881, 19797970, -12211255, 15192876, -2087490 },\n    { -12663563, -2181719, 1168162, -3804809, 26747877, -14138091, 10609330, 12694420, 33473243, -13382104 },\n    { 33184999, 11180355, 15832085, -11385430, -1633671, 225884, 15089336, -11023903, -6135662, 14480053 }\n  },\n  {\n    { 31308717, -5619998, 31030840, -1897099, 15674547, -6582883, 5496208, 13685227, 27595050, 8737275 },\n    { -20318852, -15150239, 10933843, -16178022, 8335352, -7546022, -31008351, -12610604, 26498114, 66511 },\n    { 22644454, -8761729, -16671776, 4884562, -3105614, -13559366, 30540766, -4286747, -13327787, -7515095 }\n  },\n  {\n    { -28017847, 9834845, 18617207, -2681312, -3401956, -13307506, 8205540, 13585437, -17127465, 15115439 },\n    { 23711543, -672915, 31206561, -8362711, 6164647, -9709987, -33535882, -1426096, 8236921, 16492939 },\n    { -23910559, -13515526, -26299483, -4503841, 25005590, -7687270, 19574902, 10071562, 6708380, -6222424 }\n  },\n  {\n    { 2101391, -4930054, 19702731, 2367575, -15427167, 1047675, 5301017, 9328700, 29955601, -11678310 },\n    { 3096359, 9271816, -21620864, -15521844, -14847996, -7592937, -25892142, -12635595, -9917575, 6216608 },\n    { -32615849, 338663, -25195611, 2510422, -29213566, -13820213, 24822830, -6146567, -26767480, 7525079 }\n  },\n  {\n    { -23066649, -13985623, 16133487, -7896178, -3389565, 778788, -910336, -2782495, -19386633, 11994101 },\n    { 21691500, -13624626, -641331, -14367021, 3285881, -3483596, -25064666, 9718258, -7477437, 13381418 },\n    { 18445390, -4202236, 14979846, 11622458, -1727110, -3582980, 23111648, -6375247, 28535282, 15779576 }\n  },\n  {\n    { 30098053, 3089662, -9234387, 16662135, -21306940, 11308411, -14068454, 12021730, 9955285, -16303356 },\n    { 9734894, -14576830, -7473633, -9138735, 2060392, 11313496, -18426029, 9924399, 20194861, 13380996 },\n    { -26378102, -7965207, -22167821, 15789297, -18055342, -6168792, -1984914, 15707771, 26342023, 10146099 }\n  }\n},\n{ /* 30/31 */\n  {\n    { -26016874, -219943, 21339191, -41388, 19745256, -2878700, -29637280, 2227040, 21612326, -545728 },\n    { -13077387, 1184228, 23562814, -5970442, -20351244, -6348714, 25764461, 12243797, -20856566, 11649658 },\n    { -10031494, 11262626, 27384172, 2271902, 26947504, -15997771, 39944, 6114064, 33514190, 2333242 }\n  },\n  {\n    { -21433588, -12421821, 8119782, 7219913, -21830522, -9016134, -6679750, -12670638, 24350578, -13450001 },\n    { -4116307, -11271533, -23886186, 4843615, -30088339, 690623, -31536088, -10406836, 8317860, 12352766 },\n    { 18200138, -14475911, -33087759, -2696619, -23702521, -9102511, -23552096, -2287550, 20712163, 6719373 }\n  },\n  {\n    { 26656208, 6075253, -7858556, 1886072, -28344043, 4262326, 11117530, -3763210, 26224235, -3297458 },\n    { -17168938, -14854097, -3395676, -16369877, -19954045, 14050420, 21728352, 9493610, 18620611, -16428628 },\n    { -13323321, 13325349, 11432106, 5964811, 18609221, 6062965, -5269471, -9725556, -30701573, -16479657 }\n  },\n  {\n    { -23860538, -11233159, 26961357, 1640861, -32413112, -16737940, 12248509, -5240639, 13735342, 1934062 },\n    { 25089769, 6742589, 17081145, -13406266, 21909293, -16067981, -15136294, -3765346, -21277997, 5473616 },\n    { 31883677, -7961101, 1083432, -11572403, 22828471, 13290673, -7125085, 12469656, 29111212, -5451014 }\n  },\n  {\n    { 24244947, -15050407, -26262976, 2791540, -14997599, 16666678, 24367466, 6388839, -10295587, 452383 },\n    { -25640782, -3417841, 5217916, 16224624, 19987036, -4082269, -24236251, -5915248, 15766062, 8407814 },\n    { -20406999, 13990231, 15495425, 16395525, 5377168, 15166495, -8917023, -4388953, -8067909, 2276718 }\n  },\n  {\n    { 30157918, 12924066, -17712050, 9245753, 19895028, 3368142, -23827587, 5096219, 22740376, -7303417 },\n    { 2041139, -14256350, 7783687, 13876377, -25946985, -13352459, 24051124, 13742383, -15637599, 13295222 },\n    { 33338237, -8505733, 12532113, 7977527, 9106186, -1715251, -17720195, -4612972, -4451357, -14669444 }\n  },\n  {\n    { -20045281, 5454097, -14346548, 6447146, 28862071, 1883651, -2469266, -4141880, 7770569, 9620597 },\n    { 23208068, 7979712, 33071466, 8149229, 1758231, -10834995, 30945528, -1694323, -33502340, -14767970 },\n    { 1439958, -16270480, -1079989, -793782, 4625402, 10647766, -5043801, 1220118, 30494170, -11440799 }\n  },\n  {\n    { -5037580, -13028295, -2970559, -3061767, 15640974, -6701666, -26739026, 926050, -1684339, -13333647 },\n    { 13908495, -3549272, 30919928, -6273825, -21521863, 7989039, 9021034, 9078865, 3353509, 4033511 },\n    { -29663431, -15113610, 32259991, -344482, 24295849, -12912123, 23161163, 8839127, 27485041, 7356032 }\n  }\n},\n{ /* 31/31 */\n  {\n    { 9661027, 705443, 11980065, -5370154, -1628543, 14661173, -6346142, 2625015, 28431036, -16771834 },\n    { -23839233, -8311415, -25945511, 7480958, -17681669, -8354183, -22545972, 14150565, 15970762, 4099461 },\n    { 29262576, 16756590, 26350592, -8793563, 8529671, -11208050, 13617293, -9937143, 11465739, 8317062 }\n  },\n  {\n    { -25493081, -6962928, 32500200, -9419051, -23038724, -2302222, 14898637, 3848455, 20969334, -5157516 },\n    { -20384450, -14347713, -18336405, 13884722, -33039454, 2842114, -21610826, -3649888, 11177095, 14989547 },\n    { -24496721, -11716016, 16959896, 2278463, 12066309, 10137771, 13515641, 2581286, -28487508, 9930240 }\n  },\n  {\n    { -17751622, -2097826, 16544300, -13009300, -15914807, -14949081, 18345767, -13403753, 16291481, -5314038 },\n    { -33229194, 2553288, 32678213, 9875984, 8534129, 6889387, -9676774, 6957617, 4368891, 9788741 },\n    { 16660756, 7281060, -10830758, 12911820, 20108584, -8101676, -21722536, -8613148, 16250552, -11111103 }\n  },\n  {\n    { -19765507, 2390526, -16551031, 14161980, 1905286, 6414907, 4689584, 10604807, -30190403, 4782747 },\n    { -1354539, 14736941, -7367442, -13292886, 7710542, -14155590, -9981571, 4383045, 22546403, 437323 },\n    { 31665577, -12180464, -16186830, 1491339, -18368625, 3294682, 27343084, 2786261, -30633590, -14097016 }\n  },\n  {\n    { -14467279, -683715, -33374107, 7448552, 19294360, 14334329, -19690631, 2355319, -19284671, -6114373 },\n    { 15121312, -15796162, 6377020, -6031361, -10798111, -12957845, 18952177, 15496498, -29380133, 11754228 },\n    { -2637277, -13483075, 8488727, -14303896, 12728761, -1622493, 7141596, 11724556, 22761615, -10134141 }\n  },\n  {\n    { 16918416, 11729663, -18083579, 3022987, -31015732, -13339659, -28741185, -12227393, 32851222, 11717399 },\n    { 11166634, 7338049, -6722523, 4531520, -29468672, -7302055, 31474879, 3483633, -1193175, -4030831 },\n    { -185635, 9921305, 31456609, -13536438, -12013818, 13348923, 33142652, 6546660, -19985279, -3948376 }\n  },\n  {\n    { -32460596, 11266712, -11197107, -7899103, 31703694, 3855903, -8537131, -12833048, -30772034, -15486313 },\n    { -18006477, 12709068, 3991746, -6479188, -21491523, -10550425, -31135347, -16049879, 10928917, 3011958 },\n    { -6957757, -15594337, 31696059, 334240, 29576716, 14796075, -30831056, -12805180, 18008031, 10258577 }\n  },\n  {\n    { -22448644, 15655569, 7018479, -4410003, -30314266, -1201591, -1853465, 1367120, 25127874, 6671743 },\n    { 29701166, -14373934, -10878120, 9279288, -17568, 13127210, 21382910, 11042292, 25838796, 4642684 },\n    { -20430234, 14955537, -24126347, 8124619, -5369288, -5990470, 30468147, -13900640, 18423289, 4177476 }\n  }\n}\n"
  },
  {
    "path": "src/libsodium/crypto_core/ed25519/ref10/fe_25_5/base2.h",
    "content": "{\n  { 25967493, -14356035, 29566456, 3660896, -12694345, 4014787, 27544626, -11754271, -6079156, 2047605 },\n  { -12545711, 934262, -2722910, 3049990, -727428, 9406986, 12720692, 5043384, 19500929, -15469378 },\n  { -8738181, 4489570, 9688441, -14785194, 10184609, -12363380, 29287919, 11864899, -24514362, -4438546 }\n},\n{\n  { 15636291, -9688557, 24204773, -7912398, 616977, -16685262, 27787600, -14772189, 28944400, -1550024 },\n  { 16568933, 4717097, -11556148, -1102322, 15682896, -11807043, 16354577, -11775962, 7689662, 11199574 },\n  { 30464156, -5976125, -11779434, -15670865, 23220365, 15915852, 7512774, 10017326, -17749093, -9920357 }\n},\n{\n  { 10861363, 11473154, 27284546, 1981175, -30064349, 12577861, 32867885, 14515107, -15438304, 10819380 },\n  { 4708026, 6336745, 20377586, 9066809, -11272109, 6594696, -25653668, 12483688, -12668491, 5581306 },\n  { 19563160, 16186464, -29386857, 4097519, 10237984, -4348115, 28542350, 13850243, -23678021, -15815942 }\n},\n{\n  { 5153746, 9909285, 1723747, -2777874, 30523605, 5516873, 19480852, 5230134, -23952439, -15175766 },\n  { -30269007, -3463509, 7665486, 10083793, 28475525, 1649722, 20654025, 16520125, 30598449, 7715701 },\n  { 28881845, 14381568, 9657904, 3680757, -20181635, 7843316, -31400660, 1370708, 29794553, -1409300 }\n},\n{\n  { -22518993, -6692182, 14201702, -8745502, -23510406, 8844726, 18474211, -1361450, -13062696, 13821877 },\n  { -6455177, -7839871, 3374702, -4740862, -27098617, -10571707, 31655028, -7212327, 18853322, -14220951 },\n  { 4566830, -12963868, -28974889, -12240689, -7602672, -2830569, -8514358, -10431137, 2207753, -3209784 }\n},\n{\n  { -25154831, -4185821, 29681144, 7868801, -6854661, -9423865, -12437364, -663000, -31111463, -16132436 },\n  { 25576264, -2703214, 7349804, -11814844, 16472782, 9300885, 3844789, 15725684, 171356, 6466918 },\n  { 23103977, 13316479, 9739013, -16149481, 817875, -15038942, 8965339, -14088058, -30714912, 16193877 }\n},\n{\n  { -33521811, 3180713, -2394130, 14003687, -16903474, -16270840, 17238398, 4729455, -18074513, 9256800 },\n  { -25182317, -4174131, 32336398, 5036987, -21236817, 11360617, 22616405, 9761698, -19827198, 630305 },\n  { -13720693, 2639453, -24237460, -7406481, 9494427, -5774029, -6554551, -15960994, -2449256, -14291300 }\n},\n{\n  { -3151181, -5046075, 9282714, 6866145, -31907062, -863023, -18940575, 15033784, 25105118, -7894876 },\n  { -24326370, 15950226, -31801215, -14592823, -11662737, -5090925, 1573892, -2625887, 2198790, -15804619 },\n  { -3099351, 10324967, -2241613, 7453183, -5446979, -2735503, -13812022, -16236442, -32461234, -12290683 }\n}\n"
  },
  {
    "path": "src/libsodium/crypto_core/ed25519/ref10/fe_25_5/constants.h",
    "content": "/* sqrt(-1) */\nstatic const fe25519 fe25519_sqrtm1 = {\n    -32595792, -7943725,  9377950,  3500415, 12389472, -272473, -25146209, -2005654, 326686, 11406482\n};\n\n/* sqrt(-486664) */\nstatic const fe25519 ed25519_sqrtam2 = {\n    -12222970, -8312128, -11511410, 9067497, -15300785, -241793, 25456130, 14121551, -12187136, 3972024\n};\n\n/* 37095705934669439343138083508754565189542113879843219016388785533085940283555 */\nstatic const fe25519 ed25519_d = {\n    -10913610, 13857413, -15372611, 6949391,   114729, -8787816, -6275908, -3247719, -18696448, -12055116\n};\n\n/* 2 * d =\n * 16295367250680780974490674513165176452449235426866156013048779062215315747161\n */\nstatic const fe25519 ed25519_d2 = {\n    -21827239, -5839606,  -30745221, 13898782, 229458, 15978800, -12551817, -6495438, 29715968, 9444199 };\n\n/* A = 486662 */\n#define ed25519_A_32 486662\nstatic const fe25519 ed25519_A = {\n    ed25519_A_32, 0, 0, 0, 0, 0, 0, 0, 0, 0\n};\n\n/* sqrt(ad - 1) with a = -1 (mod p) */\nstatic const fe25519 ed25519_sqrtadm1 = {\n    24849947, -153582, -23613485, 6347715, -21072328, -667138, -25271143, -15367704, -870347, 14525639\n};\n\n/* 1 / sqrt(a - d) */\nstatic const fe25519 ed25519_invsqrtamd = {\n    6111485, 4156064, -27798727, 12243468, -25904040, 120897, 20826367, -7060776, 6093568, -1986012\n};\n\n/* 1 - d ^ 2 */\nstatic const fe25519 ed25519_onemsqd = {\n    6275446, -16617371, -22938544, -3773710, 11667077, 7397348, -27922721, 1766195, -24433858, 672203\n};\n\n/* (d - 1) ^ 2 */\nstatic const fe25519 ed25519_sqdmone = {\n    15551795, -11097455, -13425098, -10125071, -11896535, 10178284, -26634327, 4729244, -5282110, -10116402\n};\n"
  },
  {
    "path": "src/libsodium/crypto_core/ed25519/ref10/fe_25_5/fe.h",
    "content": "#include \"private/quirks.h\"\n\n/*\n Ignores top bit of s.\n */\n\nvoid\nfe25519_frombytes(fe25519 h, const unsigned char *s)\n{\n    int64_t h0 = load_4(s);\n    int64_t h1 = load_3(s + 4) << 6;\n    int64_t h2 = load_3(s + 7) << 5;\n    int64_t h3 = load_3(s + 10) << 3;\n    int64_t h4 = load_3(s + 13) << 2;\n    int64_t h5 = load_4(s + 16);\n    int64_t h6 = load_3(s + 20) << 7;\n    int64_t h7 = load_3(s + 23) << 5;\n    int64_t h8 = load_3(s + 26) << 4;\n    int64_t h9 = (load_3(s + 29) & 8388607) << 2;\n\n    int64_t carry0;\n    int64_t carry1;\n    int64_t carry2;\n    int64_t carry3;\n    int64_t carry4;\n    int64_t carry5;\n    int64_t carry6;\n    int64_t carry7;\n    int64_t carry8;\n    int64_t carry9;\n\n    carry9 = (h9 + (int64_t)(1L << 24)) >> 25;\n    h0 += carry9 * 19;\n    h9 -= carry9 * ((uint64_t) 1L << 25);\n    carry1 = (h1 + (int64_t)(1L << 24)) >> 25;\n    h2 += carry1;\n    h1 -= carry1 * ((uint64_t) 1L << 25);\n    carry3 = (h3 + (int64_t)(1L << 24)) >> 25;\n    h4 += carry3;\n    h3 -= carry3 * ((uint64_t) 1L << 25);\n    carry5 = (h5 + (int64_t)(1L << 24)) >> 25;\n    h6 += carry5;\n    h5 -= carry5 * ((uint64_t) 1L << 25);\n    carry7 = (h7 + (int64_t)(1L << 24)) >> 25;\n    h8 += carry7;\n    h7 -= carry7 * ((uint64_t) 1L << 25);\n\n    carry0 = (h0 + (int64_t)(1L << 25)) >> 26;\n    h1 += carry0;\n    h0 -= carry0 * ((uint64_t) 1L << 26);\n    carry2 = (h2 + (int64_t)(1L << 25)) >> 26;\n    h3 += carry2;\n    h2 -= carry2 * ((uint64_t) 1L << 26);\n    carry4 = (h4 + (int64_t)(1L << 25)) >> 26;\n    h5 += carry4;\n    h4 -= carry4 * ((uint64_t) 1L << 26);\n    carry6 = (h6 + (int64_t)(1L << 25)) >> 26;\n    h7 += carry6;\n    h6 -= carry6 * ((uint64_t) 1L << 26);\n    carry8 = (h8 + (int64_t)(1L << 25)) >> 26;\n    h9 += carry8;\n    h8 -= carry8 * ((uint64_t) 1L << 26);\n\n    h[0] = (int32_t) h0;\n    h[1] = (int32_t) h1;\n    h[2] = (int32_t) h2;\n    h[3] = (int32_t) h3;\n    h[4] = (int32_t) h4;\n    h[5] = (int32_t) h5;\n    h[6] = (int32_t) h6;\n    h[7] = (int32_t) h7;\n    h[8] = (int32_t) h8;\n    h[9] = (int32_t) h9;\n}\n\n/*\n Preconditions:\n |h| bounded by 1.1*2^26,1.1*2^25,1.1*2^26,1.1*2^25,etc.\n\n Write p=2^255-19; q=floor(h/p).\n Basic claim: q = floor(2^(-255)(h + 19 2^(-25)h9 + 2^(-1))).\n\n Proof:\n Have |h|<=p so |q|<=1 so |19^2 2^(-255) q|<1/4.\n Also have |h-2^230 h9|<2^231 so |19 2^(-255)(h-2^230 h9)|<1/4.\n\n Write y=2^(-1)-19^2 2^(-255)q-19 2^(-255)(h-2^230 h9).\n Then 0<y<1.\n\n Write r=h-pq.\n Have 0<=r<=p-1=2^255-20.\n Thus 0<=r+19(2^-255)r<r+19(2^-255)2^255<=2^255-1.\n\n Write x=r+19(2^-255)r+y.\n Then 0<x<2^255 so floor(2^(-255)x) = 0 so floor(q+2^(-255)x) = q.\n\n Have q+2^(-255)x = 2^(-255)(h + 19 2^(-25) h9 + 2^(-1))\n so floor(2^(-255)(h + 19 2^(-25) h9 + 2^(-1))) = q.\n*/\n\nstatic void\nfe25519_reduce(fe25519 h, const fe25519 f)\n{\n    int32_t h0 = f[0];\n    int32_t h1 = f[1];\n    int32_t h2 = f[2];\n    int32_t h3 = f[3];\n    int32_t h4 = f[4];\n    int32_t h5 = f[5];\n    int32_t h6 = f[6];\n    int32_t h7 = f[7];\n    int32_t h8 = f[8];\n    int32_t h9 = f[9];\n\n    int32_t q;\n    int32_t carry0, carry1, carry2, carry3, carry4, carry5, carry6, carry7, carry8, carry9;\n\n    q = (19 * h9 + ((uint32_t) 1L << 24)) >> 25;\n    q = (h0 + q) >> 26;\n    q = (h1 + q) >> 25;\n    q = (h2 + q) >> 26;\n    q = (h3 + q) >> 25;\n    q = (h4 + q) >> 26;\n    q = (h5 + q) >> 25;\n    q = (h6 + q) >> 26;\n    q = (h7 + q) >> 25;\n    q = (h8 + q) >> 26;\n    q = (h9 + q) >> 25;\n\n    /* Goal: Output h-(2^255-19)q, which is between 0 and 2^255-20. */\n    h0 += 19 * q;\n    /* Goal: Output h-2^255 q, which is between 0 and 2^255-20. */\n\n    carry0 = h0 >> 26;\n    h1 += carry0;\n    h0 -= carry0 * ((uint32_t) 1L << 26);\n    carry1 = h1 >> 25;\n    h2 += carry1;\n    h1 -= carry1 * ((uint32_t) 1L << 25);\n    carry2 = h2 >> 26;\n    h3 += carry2;\n    h2 -= carry2 * ((uint32_t) 1L << 26);\n    carry3 = h3 >> 25;\n    h4 += carry3;\n    h3 -= carry3 * ((uint32_t) 1L << 25);\n    carry4 = h4 >> 26;\n    h5 += carry4;\n    h4 -= carry4 * ((uint32_t) 1L << 26);\n    carry5 = h5 >> 25;\n    h6 += carry5;\n    h5 -= carry5 * ((uint32_t) 1L << 25);\n    carry6 = h6 >> 26;\n    h7 += carry6;\n    h6 -= carry6 * ((uint32_t) 1L << 26);\n    carry7 = h7 >> 25;\n    h8 += carry7;\n    h7 -= carry7 * ((uint32_t) 1L << 25);\n    carry8 = h8 >> 26;\n    h9 += carry8;\n    h8 -= carry8 * ((uint32_t) 1L << 26);\n    carry9 = h9 >> 25;\n    h9 -= carry9 * ((uint32_t) 1L << 25);\n\n    h[0] = h0;\n    h[1] = h1;\n    h[2] = h2;\n    h[3] = h3;\n    h[4] = h4;\n    h[5] = h5;\n    h[6] = h6;\n    h[7] = h7;\n    h[8] = h8;\n    h[9] = h9;\n}\n\n/*\n Goal: Output h0+...+2^255 h10-2^255 q, which is between 0 and 2^255-20.\n Have h0+...+2^230 h9 between 0 and 2^255-1;\n evidently 2^255 h10-2^255 q = 0.\n\n Goal: Output h0+...+2^230 h9.\n */\n\nvoid\nfe25519_tobytes(unsigned char *s, const fe25519 h)\n{\n    fe25519 t;\n\n    fe25519_reduce(t, h);\n    s[0]  = t[0] >> 0;\n    s[1]  = t[0] >> 8;\n    s[2]  = t[0] >> 16;\n    s[3]  = (t[0] >> 24) | (t[1] * ((uint32_t) 1 << 2));\n    s[4]  = t[1] >> 6;\n    s[5]  = t[1] >> 14;\n    s[6]  = (t[1] >> 22) | (t[2] * ((uint32_t) 1 << 3));\n    s[7]  = t[2] >> 5;\n    s[8]  = t[2] >> 13;\n    s[9]  = (t[2] >> 21) | (t[3] * ((uint32_t) 1 << 5));\n    s[10] = t[3] >> 3;\n    s[11] = t[3] >> 11;\n    s[12] = (t[3] >> 19) | (t[4] * ((uint32_t) 1 << 6));\n    s[13] = t[4] >> 2;\n    s[14] = t[4] >> 10;\n    s[15] = t[4] >> 18;\n    s[16] = t[5] >> 0;\n    s[17] = t[5] >> 8;\n    s[18] = t[5] >> 16;\n    s[19] = (t[5] >> 24) | (t[6] * ((uint32_t) 1 << 1));\n    s[20] = t[6] >> 7;\n    s[21] = t[6] >> 15;\n    s[22] = (t[6] >> 23) | (t[7] * ((uint32_t) 1 << 3));\n    s[23] = t[7] >> 5;\n    s[24] = t[7] >> 13;\n    s[25] = (t[7] >> 21) | (t[8] * ((uint32_t) 1 << 4));\n    s[26] = t[8] >> 4;\n    s[27] = t[8] >> 12;\n    s[28] = (t[8] >> 20) | (t[9] * ((uint32_t) 1 << 6));\n    s[29] = t[9] >> 2;\n    s[30] = t[9] >> 10;\n    s[31] = t[9] >> 18;\n}\n"
  },
  {
    "path": "src/libsodium/crypto_core/ed25519/ref10/fe_51/base.h",
    "content": "{ /* 0/31 */\n  {\n    { 1288382639258501, 245678601348599, 269427782077623, 1462984067271730, 137412439391563 },\n    { 62697248952638, 204681361388450, 631292143396476, 338455783676468, 1213667448819585 },\n    { 301289933810280, 1259582250014073, 1422107436869536, 796239922652654, 1953934009299142 }\n  },\n  {\n    { 1380971894829527, 790832306631236, 2067202295274102, 1995808275510000, 1566530869037010 },\n    { 463307831301544, 432984605774163, 1610641361907204, 750899048855000, 1894842303421586 },\n    { 748439484463711, 1033211726465151, 1396005112841647, 1611506220286469, 1972177495910992 }\n  },\n  {\n    { 1601611775252272, 1720807796594148, 1132070835939856, 1260455018889551, 2147779492816911 },\n    { 316559037616741, 2177824224946892, 1459442586438991, 1461528397712656, 751590696113597 },\n    { 1850748884277385, 1200145853858453, 1068094770532492, 672251375690438, 1586055907191707 }\n  },\n  {\n    { 934282339813791, 1846903124198670, 1172395437954843, 1007037127761661, 1830588347719256 },\n    { 1694390458783935, 1735906047636159, 705069562067493, 648033061693059, 696214010414170 },\n    { 1121406372216585, 192876649532226, 190294192191717, 1994165897297032, 2245000007398739 }\n  },\n  {\n    { 769950342298419, 132954430919746, 844085933195555, 974092374476333, 726076285546016 },\n    { 425251763115706, 608463272472562, 442562545713235, 837766094556764, 374555092627893 },\n    { 1086255230780037, 274979815921559, 1960002765731872, 929474102396301, 1190409889297339 }\n  },\n  {\n    { 1388594989461809, 316767091099457, 394298842192982, 1230079486801005, 1440737038838979 },\n    { 7380825640100, 146210432690483, 304903576448906, 1198869323871120, 997689833219095 },\n    { 1181317918772081, 114573476638901, 262805072233344, 265712217171332, 294181933805782 }\n  },\n  {\n    { 665000864555967, 2065379846933859, 370231110385876, 350988370788628, 1233371373142985 },\n    { 2019367628972465, 676711900706637, 110710997811333, 1108646842542025, 517791959672113 },\n    { 965130719900578, 247011430587952, 526356006571389, 91986625355052, 2157223321444601 }\n  },\n  {\n    { 2068619540119183, 1966274918058806, 957728544705549, 729906502578991, 159834893065166 },\n    { 2073601412052185, 31021124762708, 264500969797082, 248034690651703, 1030252227928288 },\n    { 551790716293402, 1989538725166328, 801169423371717, 2052451893578887, 678432056995012 }\n  }\n},\n{ /* 1/31 */\n  {\n    { 1368953770187805, 790347636712921, 437508475667162, 2142576377050580, 1932081720066286 },\n    { 953638594433374, 1092333936795051, 1419774766716690, 805677984380077, 859228993502513 },\n    { 1200766035879111, 20142053207432, 1465634435977050, 1645256912097844, 295121984874596 }\n  },\n  {\n    { 1735718747031557, 1248237894295956, 1204753118328107, 976066523550493, 65943769534592 },\n    { 1060098822528990, 1586825862073490, 212301317240126, 1975302711403555, 666724059764335 },\n    { 1091990273418756, 1572899409348578, 80968014455247, 306009358661350, 1520450739132526 }\n  },\n  {\n    { 1480517209436112, 1511153322193952, 1244343858991172, 304788150493241, 369136856496443 },\n    { 2151330273626164, 762045184746182, 1688074332551515, 823046109005759, 907602769079491 },\n    { 2047386910586836, 168470092900250, 1552838872594810, 340951180073789, 360819374702533 }\n  },\n  {\n    { 1982622644432056, 2014393600336956, 128909208804214, 1617792623929191, 105294281913815 },\n    { 980234343912898, 1712256739246056, 588935272190264, 204298813091998, 841798321043288 },\n    { 197561292938973, 454817274782871, 1963754960082318, 2113372252160468, 971377527342673 }\n  },\n  {\n    { 164699448829328, 3127451757672, 1199504971548753, 1766155447043652, 1899238924683527 },\n    { 732262946680281, 1674412764227063, 2182456405662809, 1350894754474250, 558458873295247 },\n    { 2103305098582922, 1960809151316468, 715134605001343, 1454892949167181, 40827143824949 }\n  },\n  {\n    { 1239289043050212, 1744654158124578, 758702410031698, 1796762995074688, 1603056663766 },\n    { 2232056027107988, 987343914584615, 2115594492994461, 1819598072792159, 1119305654014850 },\n    { 320153677847348, 939613871605645, 641883205761567, 1930009789398224, 329165806634126 }\n  },\n  {\n    { 980930490474130, 1242488692177893, 1251446316964684, 1086618677993530, 1961430968465772 },\n    { 276821765317453, 1536835591188030, 1305212741412361, 61473904210175, 2051377036983058 },\n    { 833449923882501, 1750270368490475, 1123347002068295, 185477424765687, 278090826653186 }\n  },\n  {\n    { 794524995833413, 1849907304548286, 53348672473145, 1272368559505217, 1147304168324779 },\n    { 1504846112759364, 1203096289004681, 562139421471418, 274333017451844, 1284344053775441 },\n    { 483048732424432, 2116063063343382, 30120189902313, 292451576741007, 1156379271702225 }\n  }\n},\n{ /* 2/31 */\n  {\n    { 928372153029038, 2147692869914564, 1455665844462196, 1986737809425946, 185207050258089 },\n    { 137732961814206, 706670923917341, 1387038086865771, 1965643813686352, 1384777115696347 },\n    { 481144981981577, 2053319313589856, 2065402289827512, 617954271490316, 1106602634668125 }\n  },\n  {\n    { 696298019648792, 893299659040895, 1148636718636009, 26734077349617, 2203955659340681 },\n    { 657390353372855, 998499966885562, 991893336905797, 810470207106761, 343139804608786 },\n    { 791736669492960, 934767652997115, 824656780392914, 1759463253018643, 361530362383518 }\n  },\n  {\n    { 2022541353055597, 2094700262587466, 1551008075025686, 242785517418164, 695985404963562 },\n    { 1287487199965223, 2215311941380308, 1552928390931986, 1664859529680196, 1125004975265243 },\n    { 677434665154918, 989582503122485, 1817429540898386, 1052904935475344, 1143826298169798 }\n  },\n  {\n    { 367266328308408, 318431188922404, 695629353755355, 634085657580832, 24581612564426 },\n    { 773360688841258, 1815381330538070, 363773437667376, 539629987070205, 783280434248437 },\n    { 180820816194166, 168937968377394, 748416242794470, 1227281252254508, 1567587861004268 }\n  },\n  {\n    { 478775558583645, 2062896624554807, 699391259285399, 358099408427873, 1277310261461761 },\n    { 1984740906540026, 1079164179400229, 1056021349262661, 1659958556483663, 1088529069025527 },\n    { 580736401511151, 1842931091388998, 1177201471228238, 2075460256527244, 1301133425678027 }\n  },\n  {\n    { 1515728832059182, 1575261009617579, 1510246567196186, 191078022609704, 116661716289141 },\n    { 1295295738269652, 1714742313707026, 545583042462581, 2034411676262552, 1513248090013606 },\n    { 230710545179830, 30821514358353, 760704303452229, 390668103790604, 573437871383156 }\n  },\n  {\n    { 1169380107545646, 263167233745614, 2022901299054448, 819900753251120, 2023898464874585 },\n    { 2102254323485823, 1570832666216754, 34696906544624, 1993213739807337, 70638552271463 },\n    { 894132856735058, 548675863558441, 845349339503395, 1942269668326667, 1615682209874691 }\n  },\n  {\n    { 1287670217537834, 1222355136884920, 1846481788678694, 1150426571265110, 1613523400722047 },\n    { 793388516527298, 1315457083650035, 1972286999342417, 1901825953052455, 338269477222410 },\n    { 550201530671806, 778605267108140, 2063911101902983, 115500557286349, 2041641272971022 }\n  }\n},\n{ /* 3/31 */\n  {\n    { 717255318455100, 519313764361315, 2080406977303708, 541981206705521, 774328150311600 },\n    { 261715221532238, 1795354330069993, 1496878026850283, 499739720521052, 389031152673770 },\n    { 1997217696294013, 1717306351628065, 1684313917746180, 1644426076011410, 1857378133465451 }\n  },\n  {\n    { 1475434724792648, 76931896285979, 1116729029771667, 2002544139318042, 725547833803938 },\n    { 2022306639183567, 726296063571875, 315345054448644, 1058733329149221, 1448201136060677 },\n    { 1710065158525665, 1895094923036397, 123988286168546, 1145519900776355, 1607510767693874 }\n  },\n  {\n    { 561605375422540, 1071733543815037, 131496498800990, 1946868434569999, 828138133964203 },\n    { 1548495173745801, 442310529226540, 998072547000384, 553054358385281, 644824326376171 },\n    { 1445526537029440, 2225519789662536, 914628859347385, 1064754194555068, 1660295614401091 }\n  },\n  {\n    { 1199690223111956, 24028135822341, 66638289244341, 57626156285975, 565093967979607 },\n    { 876926774220824, 554618976488214, 1012056309841565, 839961821554611, 1414499340307677 },\n    { 703047626104145, 1266841406201770, 165556500219173, 486991595001879, 1011325891650656 }\n  },\n  {\n    { 1622861044480487, 1156394801573634, 1869132565415504, 327103985777730, 2095342781472284 },\n    { 334886927423922, 489511099221528, 129160865966726, 1720809113143481, 619700195649254 },\n    { 1646545795166119, 1758370782583567, 714746174550637, 1472693650165135, 898994790308209 }\n  },\n  {\n    { 333403773039279, 295772542452938, 1693106465353610, 912330357530760, 471235657950362 },\n    { 1811196219982022, 1068969825533602, 289602974833439, 1988956043611592, 863562343398367 },\n    { 906282429780072, 2108672665779781, 432396390473936, 150625823801893, 1708930497638539 }\n  },\n  {\n    { 925664675702328, 21416848568684, 1831436641861340, 601157008940113, 371818055044496 },\n    { 1479786007267725, 1738881859066675, 68646196476567, 2146507056100328, 1247662817535471 },\n    { 52035296774456, 939969390708103, 312023458773250, 59873523517659, 1231345905848899 }\n  },\n  {\n    { 643355106415761, 290186807495774, 2013561737429023, 319648069511546, 393736678496162 },\n    { 129358342392716, 1932811617704777, 1176749390799681, 398040349861790, 1170779668090425 },\n    { 2051980782668029, 121859921510665, 2048329875753063, 1235229850149665, 519062146124755 }\n  }\n},\n{ /* 4/31 */\n  {\n    { 1608170971973096, 415809060360428, 1350468408164766, 2038620059057678, 1026904485989112 },\n    { 1837656083115103, 1510134048812070, 906263674192061, 1821064197805734, 565375124676301 },\n    { 578027192365650, 2034800251375322, 2128954087207123, 478816193810521, 2196171989962750 }\n  },\n  {\n    { 1633188840273139, 852787172373708, 1548762607215796, 1266275218902681, 1107218203325133 },\n    { 462189358480054, 1784816734159228, 1611334301651368, 1303938263943540, 707589560319424 },\n    { 1038829280972848, 38176604650029, 753193246598573, 1136076426528122, 595709990562434 }\n  },\n  {\n    { 1408451820859834, 2194984964010833, 2198361797561729, 1061962440055713, 1645147963442934 },\n    { 4701053362120, 1647641066302348, 1047553002242085, 1923635013395977, 206970314902065 },\n    { 1750479161778571, 1362553355169293, 1891721260220598, 966109370862782, 1024913988299801 }\n  },\n  {\n    { 212699049131723, 1117950018299775, 1873945661751056, 1403802921984058, 130896082652698 },\n    { 636808533673210, 1262201711667560, 390951380330599, 1663420692697294, 561951321757406 },\n    { 520731594438141, 1446301499955692, 273753264629267, 1565101517999256, 1019411827004672 }\n  },\n  {\n    { 926527492029409, 1191853477411379, 734233225181171, 184038887541270, 1790426146325343 },\n    { 1464651961852572, 1483737295721717, 1519450561335517, 1161429831763785, 405914998179977 },\n    { 996126634382301, 796204125879525, 127517800546509, 344155944689303, 615279846169038 }\n  },\n  {\n    { 738724080975276, 2188666632415296, 1961313708559162, 1506545807547587, 1151301638969740 },\n    { 622917337413835, 1218989177089035, 1284857712846592, 970502061709359, 351025208117090 },\n    { 2067814584765580, 1677855129927492, 2086109782475197, 235286517313238, 1416314046739645 }\n  },\n  {\n    { 586844262630358, 307444381952195, 458399356043426, 602068024507062, 1028548203415243 },\n    { 678489922928203, 2016657584724032, 90977383049628, 1026831907234582, 615271492942522 },\n    { 301225714012278, 1094837270268560, 1202288391010439, 644352775178361, 1647055902137983 }\n  },\n  {\n    { 1210746697896478, 1416608304244708, 686487477217856, 1245131191434135, 1051238336855737 },\n    { 1135604073198207, 1683322080485474, 769147804376683, 2086688130589414, 900445683120379 },\n    { 1971518477615628, 401909519527336, 448627091057375, 1409486868273821, 1214789035034363 }\n  }\n},\n{ /* 5/31 */\n  {\n    { 1364039144731711, 1897497433586190, 2203097701135459, 145461396811251, 1349844460790699 },\n    { 1045230323257973, 818206601145807, 630513189076103, 1672046528998132, 807204017562437 },\n    { 439961968385997, 386362664488986, 1382706320807688, 309894000125359, 2207801346498567 }\n  },\n  {\n    { 1229004686397588, 920643968530863, 123975893911178, 681423993215777, 1400559197080973 },\n    { 2003766096898049, 170074059235165, 1141124258967971, 1485419893480973, 1573762821028725 },\n    { 729905708611432, 1270323270673202, 123353058984288, 426460209632942, 2195574535456672 }\n  },\n  {\n    { 1271140255321235, 2044363183174497, 52125387634689, 1445120246694705, 942541986339084 },\n    { 1761608437466135, 583360847526804, 1586706389685493, 2157056599579261, 1170692369685772 },\n    { 871476219910823, 1878769545097794, 2241832391238412, 548957640601001, 690047440233174 }\n  },\n  {\n    { 297194732135507, 1366347803776820, 1301185512245601, 561849853336294, 1533554921345731 },\n    { 999628998628371, 1132836708493400, 2084741674517453, 469343353015612, 678782988708035 },\n    { 2189427607417022, 699801937082607, 412764402319267, 1478091893643349, 2244675696854460 }\n  },\n  {\n    { 1712292055966563, 204413590624874, 1405738637332841, 408981300829763, 861082219276721 },\n    { 508561155940631, 966928475686665, 2236717801150132, 424543858577297, 2089272956986143 },\n    { 221245220129925, 1156020201681217, 491145634799213, 542422431960839, 828100817819207 }\n  },\n  {\n    { 153756971240384, 1299874139923977, 393099165260502, 1058234455773022, 996989038681183 },\n    { 559086812798481, 573177704212711, 1629737083816402, 1399819713462595, 1646954378266038 },\n    { 1887963056288059, 228507035730124, 1468368348640282, 930557653420194, 613513962454686 }\n  },\n  {\n    { 1224529808187553, 1577022856702685, 2206946542980843, 625883007765001, 279930793512158 },\n    { 1076287717051609, 1114455570543035, 187297059715481, 250446884292121, 1885187512550540 },\n    { 902497362940219, 76749815795675, 1657927525633846, 1420238379745202, 1340321636548352 }\n  },\n  {\n    { 1129576631190784, 1281994010027327, 996844254743018, 257876363489249, 1150850742055018 },\n    { 628740660038789, 1943038498527841, 467786347793886, 1093341428303375, 235413859513003 },\n    { 237425418909360, 469614029179605, 1512389769174935, 1241726368345357, 441602891065214 }\n  }\n},\n{ /* 6/31 */\n  {\n    { 1736417953058555, 726531315520508, 1833335034432527, 1629442561574747, 624418919286085 },\n    { 1960754663920689, 497040957888962, 1909832851283095, 1271432136996826, 2219780368020940 },\n    { 1537037379417136, 1358865369268262, 2130838645654099, 828733687040705, 1999987652890901 }\n  },\n  {\n    { 629042105241814, 1098854999137608, 887281544569320, 1423102019874777, 7911258951561 },\n    { 1811562332665373, 1501882019007673, 2213763501088999, 359573079719636, 36370565049116 },\n    { 218907117361280, 1209298913016966, 1944312619096112, 1130690631451061, 1342327389191701 }\n  },\n  {\n    { 1369976867854704, 1396479602419169, 1765656654398856, 2203659200586299, 998327836117241 },\n    { 2230701885562825, 1348173180338974, 2172856128624598, 1426538746123771, 444193481326151 },\n    { 784210426627951, 918204562375674, 1284546780452985, 1324534636134684, 1872449409642708 }\n  },\n  {\n    { 319638829540294, 596282656808406, 2037902696412608, 1557219121643918, 341938082688094 },\n    { 1901860206695915, 2004489122065736, 1625847061568236, 973529743399879, 2075287685312905 },\n    { 1371853944110545, 1042332820512553, 1949855697918254, 1791195775521505, 37487364849293 }\n  },\n  {\n    { 687200189577855, 1082536651125675, 644224940871546, 340923196057951, 343581346747396 },\n    { 2082717129583892, 27829425539422, 145655066671970, 1690527209845512, 1865260509673478 },\n    { 1059729620568824, 2163709103470266, 1440302280256872, 1769143160546397, 869830310425069 }\n  },\n  {\n    { 1609516219779025, 777277757338817, 2101121130363987, 550762194946473, 1905542338659364 },\n    { 2024821921041576, 426948675450149, 595133284085473, 471860860885970, 600321679413000 },\n    { 598474602406721, 1468128276358244, 1191923149557635, 1501376424093216, 1281662691293476 }\n  },\n  {\n    { 1721138489890707, 1264336102277790, 433064545421287, 1359988423149466, 1561871293409447 },\n    { 719520245587143, 393380711632345, 132350400863381, 1543271270810729, 1819543295798660 },\n    { 396397949784152, 1811354474471839, 1362679985304303, 2117033964846756, 498041172552279 }\n  },\n  {\n    { 1812471844975748, 1856491995543149, 126579494584102, 1036244859282620, 1975108050082550 },\n    { 650623932407995, 1137551288410575, 2125223403615539, 1725658013221271, 2134892965117796 },\n    { 522584000310195, 1241762481390450, 1743702789495384, 2227404127826575, 1686746002148897 }\n  }\n},\n{ /* 7/31 */\n  {\n    { 427904865186312, 1703211129693455, 1585368107547509, 1436984488744336, 761188534613978 },\n    { 318101947455002, 248138407995851, 1481904195303927, 309278454311197, 1258516760217879 },\n    { 1275068538599310, 513726919533379, 349926553492294, 688428871968420, 1702400196000666 }\n  },\n  {\n    { 1061864036265233, 961611260325381, 321859632700838, 1045600629959517, 1985130202504038 },\n    { 1558816436882417, 1962896332636523, 1337709822062152, 1501413830776938, 294436165831932 },\n    { 818359826554971, 1862173000996177, 626821592884859, 573655738872376, 1749691246745455 }\n  },\n  {\n    { 1988022651432119, 1082111498586040, 1834020786104821, 1454826876423687, 692929915223122 },\n    { 2146513703733331, 584788900394667, 464965657279958, 2183973639356127, 238371159456790 },\n    { 1129007025494441, 2197883144413266, 265142755578169, 971864464758890, 1983715884903702 }\n  },\n  {\n    { 1291366624493075, 381456718189114, 1711482489312444, 1815233647702022, 892279782992467 },\n    { 444548969917454, 1452286453853356, 2113731441506810, 645188273895859, 810317625309512 },\n    { 2242724082797924, 1373354730327868, 1006520110883049, 2147330369940688, 1151816104883620 }\n  },\n  {\n    { 1745720200383796, 1911723143175317, 2056329390702074, 355227174309849, 879232794371100 },\n    { 163723479936298, 115424889803150, 1156016391581227, 1894942220753364, 1970549419986329 },\n    { 681981452362484, 267208874112496, 1374683991933094, 638600984916117, 646178654558546 }\n  },\n  {\n    { 13378654854251, 106237307029567, 1944412051589651, 1841976767925457, 230702819835573 },\n    { 260683893467075, 854060306077237, 913639551980112, 4704576840123, 280254810808712 },\n    { 715374893080287, 1173334812210491, 1806524662079626, 1894596008000979, 398905715033393 }\n  },\n  {\n    { 500026409727661, 1596431288195371, 1420380351989370, 985211561521489, 392444930785633 },\n    { 2096421546958141, 1922523000950363, 789831022876840, 427295144688779, 320923973161730 },\n    { 1927770723575450, 1485792977512719, 1850996108474547, 551696031508956, 2126047405475647 }\n  },\n  {\n    { 2112099158080148, 742570803909715, 6484558077432, 1951119898618916, 93090382703416 },\n    { 383905201636970, 859946997631870, 855623867637644, 1017125780577795, 794250831877809 },\n    { 77571826285752, 999304298101753, 487841111777762, 1038031143212339, 339066367948762 }\n  }\n},\n{ /* 8/31 */\n  {\n    { 674994775520533, 266035846330789, 826951213393478, 1405007746162285, 1781791018620876 },\n    { 1001412661522686, 348196197067298, 1666614366723946, 888424995032760, 580747687801357 },\n    { 1939560076207777, 1409892634407635, 552574736069277, 383854338280405, 190706709864139 }\n  },\n  {\n    { 2177087163428741, 1439255351721944, 1208070840382793, 2230616362004769, 1396886392021913 },\n    { 676962063230039, 1880275537148808, 2046721011602706, 888463247083003, 1318301552024067 },\n    { 1466980508178206, 617045217998949, 652303580573628, 757303753529064, 207583137376902 }\n  },\n  {\n    { 1511056752906902, 105403126891277, 493434892772846, 1091943425335976, 1802717338077427 },\n    { 1853982405405128, 1878664056251147, 1528011020803992, 1019626468153565, 1128438412189035 },\n    { 1963939888391106, 293456433791664, 697897559513649, 985882796904380, 796244541237972 }\n  },\n  {\n    { 416770998629779, 389655552427054, 1314476859406756, 1749382513022778, 1161905598739491 },\n    { 1428358296490651, 1027115282420478, 304840698058337, 441410174026628, 1819358356278573 },\n    { 204943430200135, 1554861433819175, 216426658514651, 264149070665950, 2047097371738319 }\n  },\n  {\n    { 1934415182909034, 1393285083565062, 516409331772960, 1157690734993892, 121039666594268 },\n    { 662035583584445, 286736105093098, 1131773000510616, 818494214211439, 472943792054479 },\n    { 665784778135882, 1893179629898606, 808313193813106, 276797254706413, 1563426179676396 }\n  },\n  {\n    { 945205108984232, 526277562959295, 1324180513733566, 1666970227868664, 153547609289173 },\n    { 2031433403516252, 203996615228162, 170487168837083, 981513604791390, 843573964916831 },\n    { 1476570093962618, 838514669399805, 1857930577281364, 2017007352225784, 317085545220047 }\n  },\n  {\n    { 1461557121912842, 1600674043318359, 2157134900399597, 1670641601940616, 127765583803283 },\n    { 1293543509393474, 2143624609202546, 1058361566797508, 214097127393994, 946888515472729 },\n    { 357067959932916, 1290876214345711, 521245575443703, 1494975468601005, 800942377643885 }\n  },\n  {\n    { 566116659100033, 820247422481740, 994464017954148, 327157611686365, 92591318111744 },\n    { 617256647603209, 1652107761099439, 1857213046645471, 1085597175214970, 817432759830522 },\n    { 771808161440705, 1323510426395069, 680497615846440, 851580615547985, 1320806384849017 }\n  }\n},\n{ /* 9/31 */\n  {\n    { 1219260086131915, 647169006596815, 79601124759706, 2161724213426748, 404861897060198 },\n    { 1327968293887866, 1335500852943256, 1401587164534264, 558137311952440, 1551360549268902 },\n    { 417621685193956, 1429953819744454, 396157358457099, 1940470778873255, 214000046234152 }\n  },\n  {\n    { 1268047918491973, 2172375426948536, 1533916099229249, 1761293575457130, 1590622667026765 },\n    { 1627072914981959, 2211603081280073, 1912369601616504, 1191770436221309, 2187309757525860 },\n    { 1149147819689533, 378692712667677, 828475842424202, 2218619146419342, 70688125792186 }\n  },\n  {\n    { 1299739417079761, 1438616663452759, 1536729078504412, 2053896748919838, 1008421032591246 },\n    { 2040723824657366, 399555637875075, 632543375452995, 872649937008051, 1235394727030233 },\n    { 2211311599327900, 2139787259888175, 938706616835350, 12609661139114, 2081897930719789 }\n  },\n  {\n    { 1324994503390450, 336982330582631, 1183998925654177, 1091654665913274, 48727673971319 },\n    { 1845522914617879, 1222198248335542, 150841072760134, 1927029069940982, 1189913404498011 },\n    { 1079559557592645, 2215338383666441, 1903569501302605, 49033973033940, 305703433934152 }\n  },\n  {\n    { 94653405416909, 1386121349852999, 1062130477891762, 36553947479274, 833669648948846 },\n    { 1432015813136298, 440364795295369, 1395647062821501, 1976874522764578, 934452372723352 },\n    { 1296625309219774, 2068273464883862, 1858621048097805, 1492281814208508, 2235868981918946 }\n  },\n  {\n    { 1490330266465570, 1858795661361448, 1436241134969763, 294573218899647, 1208140011028933 },\n    { 1282462923712748, 741885683986255, 2027754642827561, 518989529541027, 1826610009555945 },\n    { 1525827120027511, 723686461809551, 1597702369236987, 244802101764964, 1502833890372311 }\n  },\n  {\n    { 113622036244513, 1233740067745854, 674109952278496, 2114345180342965, 166764512856263 },\n    { 2041668749310338, 2184405322203901, 1633400637611036, 2110682505536899, 2048144390084644 },\n    { 503058759232932, 760293024620937, 2027152777219493, 666858468148475, 1539184379870952 }\n  },\n  {\n    { 1916168475367211, 915626432541343, 883217071712575, 363427871374304, 1976029821251593 },\n    { 678039535434506, 570587290189340, 1605302676614120, 2147762562875701, 1706063797091704 },\n    { 1439489648586438, 2194580753290951, 832380563557396, 561521973970522, 584497280718389 }\n  }\n},\n{ /* 10/31 */\n  {\n    { 187989455492609, 681223515948275, 1933493571072456, 1872921007304880, 488162364135671 },\n    { 1413466089534451, 410844090765630, 1397263346404072, 408227143123410, 1594561803147811 },\n    { 2102170800973153, 719462588665004, 1479649438510153, 1097529543970028, 1302363283777685 }\n  },\n  {\n    { 942065717847195, 1069313679352961, 2007341951411051, 70973416446291, 1419433790163706 },\n    { 1146565545556377, 1661971299445212, 406681704748893, 564452436406089, 1109109865829139 },\n    { 2214421081775077, 1165671861210569, 1890453018796184, 3556249878661, 442116172656317 }\n  },\n  {\n    { 753830546620811, 1666955059895019, 1530775289309243, 1119987029104146, 2164156153857580 },\n    { 615171919212796, 1523849404854568, 854560460547503, 2067097370290715, 1765325848586042 },\n    { 1094538949313667, 1796592198908825, 870221004284388, 2025558921863561, 1699010892802384 }\n  },\n  {\n    { 1951351290725195, 1916457206844795, 198025184438026, 1909076887557595, 1938542290318919 },\n    { 1014323197538413, 869150639940606, 1756009942696599, 1334952557375672, 1544945379082874 },\n    { 764055910920305, 1603590757375439, 146805246592357, 1843313433854297, 954279890114939 }\n  },\n  {\n    { 80113526615750, 764536758732259, 1055139345100233, 469252651759390, 617897512431515 },\n    { 74497112547268, 740094153192149, 1745254631717581, 727713886503130, 1283034364416928 },\n    { 525892105991110, 1723776830270342, 1476444848991936, 573789489857760, 133864092632978 }\n  },\n  {\n    { 542611720192581, 1986812262899321, 1162535242465837, 481498966143464, 544600533583622 },\n    { 64123227344372, 1239927720647794, 1360722983445904, 222610813654661, 62429487187991 },\n    { 1793193323953132, 91096687857833, 70945970938921, 2158587638946380, 1537042406482111 }\n  },\n  {\n    { 1895854577604609, 1394895708949416, 1728548428495944, 1140864900240149, 563645333603061 },\n    { 141358280486863, 91435889572504, 1087208572552643, 1829599652522921, 1193307020643647 },\n    { 1611230858525381, 950720175540785, 499589887488610, 2001656988495019, 88977313255908 }\n  },\n  {\n    { 1189080501479658, 2184348804772597, 1040818725742319, 2018318290311834, 1712060030915354 },\n    { 873966876953756, 1090638350350440, 1708559325189137, 672344594801910, 1320437969700239 },\n    { 1508590048271766, 1131769479776094, 101550868699323, 428297785557897, 561791648661744 }\n  }\n},\n{ /* 11/31 */\n  {\n    { 756417570499462, 237882279232602, 2136263418594016, 1701968045454886, 703713185137472 },\n    { 1781187809325462, 1697624151492346, 1381393690939988, 175194132284669, 1483054666415238 },\n    { 2175517777364616, 708781536456029, 955668231122942, 1967557500069555, 2021208005604118 }\n  },\n  {\n    { 1115135966606887, 224217372950782, 915967306279222, 593866251291540, 561747094208006 },\n    { 1443163092879439, 391875531646162, 2180847134654632, 464538543018753, 1594098196837178 },\n    { 850858855888869, 319436476624586, 327807784938441, 740785849558761, 17128415486016 }\n  },\n  {\n    { 2132756334090067, 536247820155645, 48907151276867, 608473197600695, 1261689545022784 },\n    { 1525176236978354, 974205476721062, 293436255662638, 148269621098039, 137961998433963 },\n    { 1121075518299410, 2071745529082111, 1265567917414828, 1648196578317805, 496232102750820 }\n  },\n  {\n    { 122321229299801, 1022922077493685, 2001275453369484, 2017441881607947, 993205880778002 },\n    { 654925550560074, 1168810995576858, 575655959430926, 905758704861388, 496774564663534 },\n    { 1954109525779738, 2117022646152485, 338102630417180, 1194140505732026, 107881734943492 }\n  },\n  {\n    { 1714785840001267, 2036500018681589, 1876380234251966, 2056717182974196, 1645855254384642 },\n    { 106431476499341, 62482972120563, 1513446655109411, 807258751769522, 538491469114 },\n    { 2002850762893643, 1243624520538135, 1486040410574605, 2184752338181213, 378495998083531 }\n  },\n  {\n    { 922510868424903, 1089502620807680, 402544072617374, 1131446598479839, 1290278588136533 },\n    { 1867998812076769, 715425053580701, 39968586461416, 2173068014586163, 653822651801304 },\n    { 162892278589453, 182585796682149, 75093073137630, 497037941226502, 133871727117371 }\n  },\n  {\n    { 1914596576579670, 1608999621851578, 1987629837704609, 1519655314857977, 1819193753409464 },\n    { 1949315551096831, 1069003344994464, 1939165033499916, 1548227205730856, 1933767655861407 },\n    { 1730519386931635, 1393284965610134, 1597143735726030, 416032382447158, 1429665248828629 }\n  },\n  {\n    { 360275475604565, 547835731063078, 215360904187529, 596646739879007, 332709650425085 },\n    { 47602113726801, 1522314509708010, 437706261372925, 814035330438027, 335930650933545 },\n    { 1291597595523886, 1058020588994081, 402837842324045, 1363323695882781, 2105763393033193 }\n  }\n},\n{ /* 12/31 */\n  {\n    { 109521982566564, 1715257748585139, 1112231216891516, 2046641005101484, 134249157157013 },\n    { 2156991030936798, 2227544497153325, 1869050094431622, 754875860479115, 1754242344267058 },\n    { 1846089562873800, 98894784984326, 1412430299204844, 171351226625762, 1100604760929008 }\n  },\n  {\n    { 84172382130492, 499710970700046, 425749630620778, 1762872794206857, 612842602127960 },\n    { 868309334532756, 1703010512741873, 1952690008738057, 4325269926064, 2071083554962116 },\n    { 523094549451158, 401938899487815, 1407690589076010, 2022387426254453, 158660516411257 }\n  },\n  {\n    { 612867287630009, 448212612103814, 571629077419196, 1466796750919376, 1728478129663858 },\n    { 1723848973783452, 2208822520534681, 1718748322776940, 1974268454121942, 1194212502258141 },\n    { 1254114807944608, 977770684047110, 2010756238954993, 1783628927194099, 1525962994408256 }\n  },\n  {\n    { 232464058235826, 1948628555342434, 1835348780427694, 1031609499437291, 64472106918373 },\n    { 767338676040683, 754089548318405, 1523192045639075, 435746025122062, 512692508440385 },\n    { 1255955808701983, 1700487367990941, 1166401238800299, 1175121994891534, 1190934801395380 }\n  },\n  {\n    { 349144008168292, 1337012557669162, 1475912332999108, 1321618454900458, 47611291904320 },\n    { 877519947135419, 2172838026132651, 272304391224129, 1655143327559984, 886229406429814 },\n    { 375806028254706, 214463229793940, 572906353144089, 572168269875638, 697556386112979 }\n  },\n  {\n    { 1168827102357844, 823864273033637, 2071538752104697, 788062026895924, 599578340743362 },\n    { 1948116082078088, 2054898304487796, 2204939184983900, 210526805152138, 786593586607626 },\n    { 1915320147894736, 156481169009469, 655050471180417, 592917090415421, 2165897438660879 }\n  },\n  {\n    { 1726336468579724, 1119932070398949, 1929199510967666, 33918788322959, 1836837863503150 },\n    { 829996854845988, 217061778005138, 1686565909803640, 1346948817219846, 1723823550730181 },\n    { 384301494966394, 687038900403062, 2211195391021739, 254684538421383, 1245698430589680 }\n  },\n  {\n    { 1247567493562688, 1978182094455847, 183871474792955, 806570235643435, 288461518067916 },\n    { 1449077384734201, 38285445457996, 2136537659177832, 2146493000841573, 725161151123125 },\n    { 1201928866368855, 800415690605445, 1703146756828343, 997278587541744, 1858284414104014 }\n  }\n},\n{ /* 13/31 */\n  {\n    { 356468809648877, 782373916933152, 1718002439402870, 1392222252219254, 663171266061951 },\n    { 759628738230460, 1012693474275852, 353780233086498, 246080061387552, 2030378857679162 },\n    { 2040672435071076, 888593182036908, 1298443657189359, 1804780278521327, 354070726137060 }\n  },\n  {\n    { 1894938527423184, 1463213041477277, 474410505497651, 247294963033299, 877975941029128 },\n    { 207937160991127, 12966911039119, 820997788283092, 1010440472205286, 1701372890140810 },\n    { 218882774543183, 533427444716285, 1233243976733245, 435054256891319, 1509568989549904 }\n  },\n  {\n    { 1888838535711826, 1052177758340622, 1213553803324135, 169182009127332, 463374268115872 },\n    { 299137589460312, 1594371588983567, 868058494039073, 257771590636681, 1805012993142921 },\n    { 1806842755664364, 2098896946025095, 1356630998422878, 1458279806348064, 347755825962072 }\n  },\n  {\n    { 1402334161391744, 1560083671046299, 1008585416617747, 1147797150908892, 1420416683642459 },\n    { 665506704253369, 273770475169863, 799236974202630, 848328990077558, 1811448782807931 },\n    { 1468412523962641, 771866649897997, 1931766110147832, 799561180078482, 524837559150077 }\n  },\n  {\n    { 2223212657821850, 630416247363666, 2144451165500328, 816911130947791, 1024351058410032 },\n    { 1266603897524861, 156378408858100, 1275649024228779, 447738405888420, 253186462063095 },\n    { 2022215964509735, 136144366993649, 1800716593296582, 1193970603800203, 871675847064218 }\n  },\n  {\n    { 1862751661970328, 851596246739884, 1519315554814041, 1542798466547449, 1417975335901520 },\n    { 1228168094547481, 334133883362894, 587567568420081, 433612590281181, 603390400373205 },\n    { 121893973206505, 1843345804916664, 1703118377384911, 497810164760654, 101150811654673 }\n  },\n  {\n    { 458346255946468, 290909935619344, 1452768413850679, 550922875254215, 1537286854336538 },\n    { 584322311184395, 380661238802118, 114839394528060, 655082270500073, 2111856026034852 },\n    { 996965581008991, 2148998626477022, 1012273164934654, 1073876063914522, 1688031788934939 }\n  },\n  {\n    { 923487018849600, 2085106799623355, 528082801620136, 1606206360876188, 735907091712524 },\n    { 1697697887804317, 1335343703828273, 831288615207040, 949416685250051, 288760277392022 },\n    { 1419122478109648, 1325574567803701, 602393874111094, 2107893372601700, 1314159682671307 }\n  }\n},\n{ /* 14/31 */\n  {\n    { 2201150872731804, 2180241023425241, 97663456423163, 1633405770247824, 848945042443986 },\n    { 1173339555550611, 818605084277583, 47521504364289, 924108720564965, 735423405754506 },\n    { 830104860549448, 1886653193241086, 1600929509383773, 1475051275443631, 286679780900937 }\n  },\n  {\n    { 1577111294832995, 1030899169768747, 144900916293530, 1964672592979567, 568390100955250 },\n    { 278388655910247, 487143369099838, 927762205508727, 181017540174210, 1616886700741287 },\n    { 1191033906638969, 940823957346562, 1606870843663445, 861684761499847, 658674867251089 }\n  },\n  {\n    { 1875032594195546, 1427106132796197, 724736390962158, 901860512044740, 635268497268760 },\n    { 622869792298357, 1903919278950367, 1922588621661629, 1520574711600434, 1087100760174640 },\n    { 25465949416618, 1693639527318811, 1526153382657203, 125943137857169, 145276964043999 }\n  },\n  {\n    { 214739857969358, 920212862967915, 1939901550972269, 1211862791775221, 85097515720120 },\n    { 2006245852772938, 734762734836159, 254642929763427, 1406213292755966, 239303749517686 },\n    { 1619678837192149, 1919424032779215, 1357391272956794, 1525634040073113, 1310226789796241 }\n  },\n  {\n    { 1040763709762123, 1704449869235352, 605263070456329, 1998838089036355, 1312142911487502 },\n    { 1996723311435669, 1844342766567060, 985455700466044, 1165924681400960, 311508689870129 },\n    { 43173156290518, 2202883069785309, 1137787467085917, 1733636061944606, 1394992037553852 }\n  },\n  {\n    { 670078326344559, 555655025059356, 471959386282438, 2141455487356409, 849015953823125 },\n    { 2197214573372804, 794254097241315, 1030190060513737, 267632515541902, 2040478049202624 },\n    { 1812516004670529, 1609256702920783, 1706897079364493, 258549904773295, 996051247540686 }\n  },\n  {\n    { 1540374301420584, 1764656898914615, 1810104162020396, 923808779163088, 664390074196579 },\n    { 1323460699404750, 1262690757880991, 871777133477900, 1060078894988977, 1712236889662886 },\n    { 1696163952057966, 1391710137550823, 608793846867416, 1034391509472039, 1780770894075012 }\n  },\n  {\n    { 1367603834210841, 2131988646583224, 890353773628144, 1908908219165595, 270836895252891 },\n    { 597536315471731, 40375058742586, 1942256403956049, 1185484645495932, 312666282024145 },\n    { 1919411405316294, 1234508526402192, 1066863051997083, 1008444703737597, 1348810787701552 }\n  }\n},\n{ /* 15/31 */\n  {\n    { 2102881477513865, 1570274565945361, 1573617900503708, 18662635732583, 2232324307922098 },\n    { 1853931367696942, 8107973870707, 350214504129299, 775206934582587, 1752317649166792 },\n    { 1417148368003523, 721357181628282, 505725498207811, 373232277872983, 261634707184480 }\n  },\n  {\n    { 2186733281493267, 2250694917008620, 1014829812957440, 479998161452389, 83566193876474 },\n    { 1268116367301224, 560157088142809, 802626839600444, 2210189936605713, 1129993785579988 },\n    { 615183387352312, 917611676109240, 878893615973325, 978940963313282, 938686890583575 }\n  },\n  {\n    { 522024729211672, 1045059315315808, 1892245413707790, 1907891107684253, 2059998109500714 },\n    { 1799679152208884, 912132775900387, 25967768040979, 432130448590461, 274568990261996 },\n    { 98698809797682, 2144627600856209, 1907959298569602, 811491302610148, 1262481774981493 }\n  },\n  {\n    { 1791451399743152, 1713538728337276, 118349997257490, 1882306388849954, 158235232210248 },\n    { 1217809823321928, 2173947284933160, 1986927836272325, 1388114931125539, 12686131160169 },\n    { 1650875518872272, 1136263858253897, 1732115601395988, 734312880662190, 1252904681142109 }\n  },\n  {\n    { 372986456113865, 525430915458171, 2116279931702135, 501422713587815, 1907002872974925 },\n    { 803147181835288, 868941437997146, 316299302989663, 943495589630550, 571224287904572 },\n    { 227742695588364, 1776969298667369, 628602552821802, 457210915378118, 2041906378111140 }\n  },\n  {\n    { 815000523470260, 913085688728307, 1052060118271173, 1345536665214223, 541623413135555 },\n    { 1580216071604333, 1877997504342444, 857147161260913, 703522726778478, 2182763974211603 },\n    { 1870080310923419, 71988220958492, 1783225432016732, 615915287105016, 1035570475990230 }\n  },\n  {\n    { 730987750830150, 857613889540280, 1083813157271766, 1002817255970169, 1719228484436074 },\n    { 377616581647602, 1581980403078513, 804044118130621, 2034382823044191, 643844048472185 },\n    { 176957326463017, 1573744060478586, 528642225008045, 1816109618372371, 1515140189765006 }\n  },\n  {\n    { 1888911448245718, 1387110895611080, 1924503794066429, 1731539523700949, 2230378382645454 },\n    { 443392177002051, 233793396845137, 2199506622312416, 1011858706515937, 974676837063129 },\n    { 1846351103143623, 1949984838808427, 671247021915253, 1946756846184401, 1929296930380217 }\n  }\n},\n{ /* 16/31 */\n  {\n    { 849646212452002, 1410198775302919, 73767886183695, 1641663456615812, 762256272452411 },\n    { 692017667358279, 723305578826727, 1638042139863265, 748219305990306, 334589200523901 },\n    { 22893968530686, 2235758574399251, 1661465835630252, 925707319443452, 1203475116966621 }\n  },\n  {\n    { 801299035785166, 1733292596726131, 1664508947088596, 467749120991922, 1647498584535623 },\n    { 903105258014366, 427141894933047, 561187017169777, 1884330244401954, 1914145708422219 },\n    { 1344191060517578, 1960935031767890, 1518838929955259, 1781502350597190, 1564784025565682 }\n  },\n  {\n    { 673723351748086, 1979969272514923, 1175287312495508, 1187589090978666, 1881897672213940 },\n    { 1917185587363432, 1098342571752737, 5935801044414, 2000527662351839, 1538640296181569 },\n    { 2495540013192, 678856913479236, 224998292422872, 219635787698590, 1972465269000940 }\n  },\n  {\n    { 271413961212179, 1353052061471651, 344711291283483, 2014925838520662, 2006221033113941 },\n    { 194583029968109, 514316781467765, 829677956235672, 1676415686873082, 810104584395840 },\n    { 1980510813313589, 1948645276483975, 152063780665900, 129968026417582, 256984195613935 }\n  },\n  {\n    { 1860190562533102, 1936576191345085, 461100292705964, 1811043097042830, 957486749306835 },\n    { 796664815624365, 1543160838872951, 1500897791837765, 1667315977988401, 599303877030711 },\n    { 1151480509533204, 2136010406720455, 738796060240027, 319298003765044, 1150614464349587 }\n  },\n  {\n    { 1731069268103150, 735642447616087, 1364750481334268, 417232839982871, 927108269127661 },\n    { 1017222050227968, 1987716148359, 2234319589635701, 621282683093392, 2132553131763026 },\n    { 1567828528453324, 1017807205202360, 565295260895298, 829541698429100, 307243822276582 }\n  },\n  {\n    { 249079270936248, 1501514259790706, 947909724204848, 944551802437487, 552658763982480 },\n    { 2089966982947227, 1854140343916181, 2151980759220007, 2139781292261749, 158070445864917 },\n    { 1338766321464554, 1906702607371284, 1519569445519894, 115384726262267, 1393058953390992 }\n  },\n  {\n    { 1364621558265400, 1512388234908357, 1926731583198686, 2041482526432505, 920401122333774 },\n    { 1884844597333588, 601480070269079, 620203503079537, 1079527400117915, 1202076693132015 },\n    { 840922919763324, 727955812569642, 1303406629750194, 522898432152867, 294161410441865 }\n  }\n},\n{ /* 17/31 */\n  {\n    { 353760790835310, 1598361541848743, 1122905698202299, 1922533590158905, 419107700666580 },\n    { 359856369838236, 180914355488683, 861726472646627, 218807937262986, 575626773232501 },\n    { 755467689082474, 909202735047934, 730078068932500, 936309075711518, 2007798262842972 }\n  },\n  {\n    { 1609384177904073, 362745185608627, 1335318541768201, 800965770436248, 547877979267412 },\n    { 984339177776787, 815727786505884, 1645154585713747, 1659074964378553, 1686601651984156 },\n    { 1697863093781930, 599794399429786, 1104556219769607, 830560774794755, 12812858601017 }\n  },\n  {\n    { 1168737550514982, 897832437380552, 463140296333799, 302564600022547, 2008360505135501 },\n    { 1856930662813910, 678090852002597, 1920179140755167, 1259527833759868, 55540971895511 },\n    { 1158643631044921, 476554103621892, 178447851439725, 1305025542653569, 103433927680625 }\n  },\n  {\n    { 2176793111709008, 1576725716350391, 2009350167273523, 2012390194631546, 2125297410909580 },\n    { 825403285195098, 2144208587560784, 1925552004644643, 1915177840006985, 1015952128947864 },\n    { 1807108316634472, 1534392066433717, 347342975407218, 1153820745616376, 7375003497471 }\n  },\n  {\n    { 983061001799725, 431211889901241, 2201903782961093, 817393911064341, 2214616493042167 },\n    { 228567918409756, 865093958780220, 358083886450556, 159617889659320, 1360637926292598 },\n    { 234147501399755, 2229469128637390, 2175289352258889, 1397401514549353, 1885288963089922 }\n  },\n  {\n    { 1111762412951562, 252849572507389, 1048714233823341, 146111095601446, 1237505378776770 },\n    { 1113790697840279, 1051167139966244, 1045930658550944, 2011366241542643, 1686166824620755 },\n    { 1054097349305049, 1872495070333352, 182121071220717, 1064378906787311, 100273572924182 }\n  },\n  {\n    { 1306410853171605, 1627717417672447, 50983221088417, 1109249951172250, 870201789081392 },\n    { 104233794644221, 1548919791188248, 2224541913267306, 2054909377116478, 1043803389015153 },\n    { 216762189468802, 707284285441622, 190678557969733, 973969342604308, 1403009538434867 }\n  },\n  {\n    { 1279024291038477, 344776835218310, 273722096017199, 1834200436811442, 634517197663804 },\n    { 343805853118335, 1302216857414201, 566872543223541, 2051138939539004, 321428858384280 },\n    { 470067171324852, 1618629234173951, 2000092177515639, 7307679772789, 1117521120249968 }\n  }\n},\n{ /* 18/31 */\n  {\n    { 278151578291475, 1810282338562947, 1771599529530998, 1383659409671631, 685373414471841 },\n    { 577009397403102, 1791440261786291, 2177643735971638, 174546149911960, 1412505077782326 },\n    { 893719721537457, 1201282458018197, 1522349501711173, 58011597740583, 1130406465887139 }\n  },\n  {\n    { 412607348255453, 1280455764199780, 2233277987330768, 14180080401665, 331584698417165 },\n    { 262483770854550, 990511055108216, 526885552771698, 571664396646158, 354086190278723 },\n    { 1820352417585487, 24495617171480, 1547899057533253, 10041836186225, 480457105094042 }\n  },\n  {\n    { 2023310314989233, 637905337525881, 2106474638900687, 557820711084072, 1687858215057826 },\n    { 1144168702609745, 604444390410187, 1544541121756138, 1925315550126027, 626401428894002 },\n    { 1922168257351784, 2018674099908659, 1776454117494445, 956539191509034, 36031129147635 }\n  },\n  {\n    { 544644538748041, 1039872944430374, 876750409130610, 710657711326551, 1216952687484972 },\n    { 58242421545916, 2035812695641843, 2118491866122923, 1191684463816273, 46921517454099 },\n    { 272268252444639, 1374166457774292, 2230115177009552, 1053149803909880, 1354288411641016 }\n  },\n  {\n    { 1857910905368338, 1754729879288912, 885945464109877, 1516096106802166, 1602902393369811 },\n    { 1193437069800958, 901107149704790, 999672920611411, 477584824802207, 364239578697845 },\n    { 886299989548838, 1538292895758047, 1590564179491896, 1944527126709657, 837344427345298 }\n  },\n  {\n    { 754558365378305, 1712186480903618, 1703656826337531, 750310918489786, 518996040250900 },\n    { 1309847803895382, 1462151862813074, 211370866671570, 1544595152703681, 1027691798954090 },\n    { 803217563745370, 1884799722343599, 1357706345069218, 2244955901722095, 730869460037413 }\n  },\n  {\n    { 689299471295966, 1831210565161071, 1375187341585438, 1106284977546171, 1893781834054269 },\n    { 696351368613042, 1494385251239250, 738037133616932, 636385507851544, 927483222611406 },\n    { 1949114198209333, 1104419699537997, 783495707664463, 1747473107602770, 2002634765788641 }\n  },\n  {\n    { 1607325776830197, 530883941415333, 1451089452727895, 1581691157083423, 496100432831154 },\n    { 1068900648804224, 2006891997072550, 1134049269345549, 1638760646180091, 2055396084625778 },\n    { 2222475519314561, 1870703901472013, 1884051508440561, 1344072275216753, 1318025677799069 }\n  }\n},\n{ /* 19/31 */\n  {\n    { 155711679280656, 681100400509288, 389811735211209, 2135723811340709, 408733211204125 },\n    { 7813206966729, 194444201427550, 2071405409526507, 1065605076176312, 1645486789731291 },\n    { 16625790644959, 1647648827778410, 1579910185572704, 436452271048548, 121070048451050 }\n  },\n  {\n    { 1037263028552531, 568385780377829, 297953104144430, 1558584511931211, 2238221839292471 },\n    { 190565267697443, 672855706028058, 338796554369226, 337687268493904, 853246848691734 },\n    { 1763863028400139, 766498079432444, 1321118624818005, 69494294452268, 858786744165651 }\n  },\n  {\n    { 1292056768563024, 1456632109855638, 1100631247050184, 1386133165675321, 1232898350193752 },\n    { 366253102478259, 525676242508811, 1449610995265438, 1183300845322183, 185960306491545 },\n    { 28315355815982, 460422265558930, 1799675876678724, 1969256312504498, 1051823843138725 }\n  },\n  {\n    { 156914999361983, 1606148405719949, 1665208410108430, 317643278692271, 1383783705665320 },\n    { 54684536365732, 2210010038536222, 1194984798155308, 535239027773705, 1516355079301361 },\n    { 1484387703771650, 198537510937949, 2186282186359116, 617687444857508, 647477376402122 }\n  },\n  {\n    { 2147715541830533, 500032538445817, 646380016884826, 352227855331122, 1488268620408052 },\n    { 159386186465542, 1877626593362941, 618737197060512, 1026674284330807, 1158121760792685 },\n    { 1744544377739822, 1964054180355661, 1685781755873170, 2169740670377448, 1286112621104591 }\n  },\n  {\n    { 81977249784993, 1667943117713086, 1668983819634866, 1605016835177615, 1353960708075544 },\n    { 1602253788689063, 439542044889886, 2220348297664483, 657877410752869, 157451572512238 },\n    { 1029287186166717, 65860128430192, 525298368814832, 1491902500801986, 1461064796385400 }\n  },\n  {\n    { 408216988729246, 2121095722306989, 913562102267595, 1879708920318308, 241061448436731 },\n    { 1185483484383269, 1356339572588553, 584932367316448, 102132779946470, 1792922621116791 },\n    { 1966196870701923, 2230044620318636, 1425982460745905, 261167817826569, 46517743394330 }\n  },\n  {\n    { 107077591595359, 884959942172345, 27306869797400, 2224911448949390, 964352058245223 },\n    { 1730194207717538, 431790042319772, 1831515233279467, 1372080552768581, 1074513929381760 },\n    { 1450880638731607, 1019861580989005, 1229729455116861, 1174945729836143, 826083146840706 }\n  }\n},\n{ /* 20/31 */\n  {\n    { 1899935429242705, 1602068751520477, 940583196550370, 82431069053859, 1540863155745696 },\n    { 2136688454840028, 2099509000964294, 1690800495246475, 1217643678575476, 828720645084218 },\n    { 765548025667841, 462473984016099, 998061409979798, 546353034089527, 2212508972466858 }\n  },\n  {\n    { 46575283771160, 892570971573071, 1281983193144090, 1491520128287375, 75847005908304 },\n    { 1801436127943107, 1734436817907890, 1268728090345068, 167003097070711, 2233597765834956 },\n    { 1997562060465113, 1048700225534011, 7615603985628, 1855310849546841, 2242557647635213 }\n  },\n  {\n    { 1161017320376250, 492624580169043, 2169815802355237, 976496781732542, 1770879511019629 },\n    { 1357044908364776, 729130645262438, 1762469072918979, 1365633616878458, 181282906404941 },\n    { 1080413443139865, 1155205815510486, 1848782073549786, 622566975152580, 124965574467971 }\n  },\n  {\n    { 1184526762066993, 247622751762817, 692129017206356, 820018689412496, 2188697339828085 },\n    { 2020536369003019, 202261491735136, 1053169669150884, 2056531979272544, 778165514694311 },\n    { 237404399610207, 1308324858405118, 1229680749538400, 720131409105291, 1958958863624906 }\n  },\n  {\n    { 515583508038846, 17656978857189, 1717918437373989, 1568052070792483, 46975803123923 },\n    { 281527309158085, 36970532401524, 866906920877543, 2222282602952734, 1289598729589882 },\n    { 1278207464902042, 494742455008756, 1262082121427081, 1577236621659884, 1888786707293291 }\n  },\n  {\n    { 353042527954210, 1830056151907359, 1111731275799225, 174960955838824, 404312815582675 },\n    { 2064251142068628, 1666421603389706, 1419271365315441, 468767774902855, 191535130366583 },\n    { 1716987058588002, 1859366439773457, 1767194234188234, 64476199777924, 1117233614485261 }\n  },\n  {\n    { 984292135520292, 135138246951259, 2220652137473167, 1722843421165029, 190482558012909 },\n    { 298845952651262, 1166086588952562, 1179896526238434, 1347812759398693, 1412945390096208 },\n    { 1143239552672925, 906436640714209, 2177000572812152, 2075299936108548, 325186347798433 }\n  },\n  {\n    { 721024854374772, 684487861263316, 1373438744094159, 2193186935276995, 1387043709851261 },\n    { 418098668140962, 715065997721283, 1471916138376055, 2168570337288357, 937812682637044 },\n    { 1043584187226485, 2143395746619356, 2209558562919611, 482427979307092, 847556718384018 }\n  }\n},\n{ /* 21/31 */\n  {\n    { 1248731221520759, 1465200936117687, 540803492710140, 52978634680892, 261434490176109 },\n    { 1057329623869501, 620334067429122, 461700859268034, 2012481616501857, 297268569108938 },\n    { 1055352180870759, 1553151421852298, 1510903185371259, 1470458349428097, 1226259419062731 }\n  },\n  {\n    { 1492988790301668, 790326625573331, 1190107028409745, 1389394752159193, 1620408196604194 },\n    { 47000654413729, 1004754424173864, 1868044813557703, 173236934059409, 588771199737015 },\n    { 30498470091663, 1082245510489825, 576771653181956, 806509986132686, 1317634017056939 }\n  },\n  {\n    { 420308055751555, 1493354863316002, 165206721528088, 1884845694919786, 2065456951573059 },\n    { 1115636332012334, 1854340990964155, 83792697369514, 1972177451994021, 457455116057587 },\n    { 1698968457310898, 1435137169051090, 1083661677032510, 938363267483709, 340103887207182 }\n  },\n  {\n    { 1995325341336574, 911500251774648, 164010755403692, 855378419194762, 1573601397528842 },\n    { 241719380661528, 310028521317150, 1215881323380194, 1408214976493624, 2141142156467363 },\n    { 1315157046163473, 727368447885818, 1363466668108618, 1668921439990361, 1398483384337907 }\n  },\n  {\n    { 75029678299646, 1015388206460473, 1849729037055212, 1939814616452984, 444404230394954 },\n    { 2053597130993710, 2024431685856332, 2233550957004860, 2012407275509545, 872546993104440 },\n    { 1217269667678610, 599909351968693, 1390077048548598, 1471879360694802, 739586172317596 }\n  },\n  {\n    { 1718318639380794, 1560510726633958, 904462881159922, 1418028351780052, 94404349451937 },\n    { 2132502667405250, 214379346175414, 1502748313768060, 1960071701057800, 1353971822643138 },\n    { 319394212043702, 2127459436033571, 717646691535162, 663366796076914, 318459064945314 }\n  },\n  {\n    { 405989424923593, 1960452633787083, 667349034401665, 1492674260767112, 1451061489880787 },\n    { 947085906234007, 323284730494107, 1485778563977200, 728576821512394, 901584347702286 },\n    { 1575783124125742, 2126210792434375, 1569430791264065, 1402582372904727, 1891780248341114 }\n  },\n  {\n    { 838432205560695, 1997703511451664, 1018791879907867, 1662001808174331, 78328132957753 },\n    { 739152638255629, 2074935399403557, 505483666745895, 1611883356514088, 628654635394878 },\n    { 1822054032121349, 643057948186973, 7306757352712, 577249257962099, 284735863382083 }\n  }\n},\n{ /* 22/31 */\n  {\n    { 1366558556363930, 1448606567552086, 1478881020944768, 165803179355898, 1115718458123498 },\n    { 204146226972102, 1630511199034723, 2215235214174763, 174665910283542, 956127674017216 },\n    { 1562934578796716, 1070893489712745, 11324610642270, 958989751581897, 2172552325473805 }\n  },\n  {\n    { 1770564423056027, 735523631664565, 1326060113795289, 1509650369341127, 65892421582684 },\n    { 623682558650637, 1337866509471512, 990313350206649, 1314236615762469, 1164772974270275 },\n    { 223256821462517, 723690150104139, 1000261663630601, 933280913953265, 254872671543046 }\n  },\n  {\n    { 1969087237026041, 624795725447124, 1335555107635969, 2069986355593023, 1712100149341902 },\n    { 1236103475266979, 1837885883267218, 1026072585230455, 1025865513954973, 1801964901432134 },\n    { 1115241013365517, 1712251818829143, 2148864332502771, 2096001471438138, 2235017246626125 }\n  },\n  {\n    { 1299268198601632, 2047148477845621, 2165648650132450, 1612539282026145, 514197911628890 },\n    { 118352772338543, 1067608711804704, 1434796676193498, 1683240170548391, 230866769907437 },\n    { 1850689576796636, 1601590730430274, 1139674615958142, 1954384401440257, 76039205311 }\n  },\n  {\n    { 1723387471374172, 997301467038410, 533927635123657, 20928644693965, 1756575222802513 },\n    { 2146711623855116, 503278928021499, 625853062251406, 1109121378393107, 1033853809911861 },\n    { 571005965509422, 2005213373292546, 1016697270349626, 56607856974274, 914438579435146 }\n  },\n  {\n    { 1346698876211176, 2076651707527589, 1084761571110205, 265334478828406, 1068954492309671 },\n    { 1769967932677654, 1695893319756416, 1151863389675920, 1781042784397689, 400287774418285 },\n    { 1851867764003121, 403841933237558, 820549523771987, 761292590207581, 1743735048551143 }\n  },\n  {\n    { 410915148140008, 2107072311871739, 1004367461876503, 99684895396761, 1180818713503224 },\n    { 285945406881439, 648174397347453, 1098403762631981, 1366547441102991, 1505876883139217 },\n    { 672095903120153, 1675918957959872, 636236529315028, 1569297300327696, 2164144194785875 }\n  },\n  {\n    { 1902708175321798, 1035343530915438, 1178560808893263, 301095684058146, 1280977479761118 },\n    { 1615357281742403, 404257611616381, 2160201349780978, 1160947379188955, 1578038619549541 },\n    { 2013087639791217, 822734930507457, 1785668418619014, 1668650702946164, 389450875221715 }\n  }\n},\n{ /* 23/31 */\n  {\n    { 453918449698368, 106406819929001, 2072540975937135, 308588860670238, 1304394580755385 },\n    { 1295082798350326, 2091844511495996, 1851348972587817, 3375039684596, 789440738712837 },\n    { 2083069137186154, 848523102004566, 993982213589257, 1405313299916317, 1532824818698468 }\n  },\n  {\n    { 1495961298852430, 1397203457344779, 1774950217066942, 139302743555696, 66603584342787 },\n    { 1782411379088302, 1096724939964781, 27593390721418, 542241850291353, 1540337798439873 },\n    { 693543956581437, 171507720360750, 1557908942697227, 1074697073443438, 1104093109037196 }\n  },\n  {\n    { 345288228393419, 1099643569747172, 134881908403743, 1740551994106740, 248212179299770 },\n    { 231429562203065, 1526290236421172, 2021375064026423, 1520954495658041, 806337791525116 },\n    { 1079623667189886, 872403650198613, 766894200588288, 2163700860774109, 2023464507911816 }\n  },\n  {\n    { 854645372543796, 1936406001954827, 151460662541253, 825325739271555, 1554306377287556 },\n    { 1497138821904622, 1044820250515590, 1742593886423484, 1237204112746837, 849047450816987 },\n    { 667962773375330, 1897271816877105, 1399712621683474, 1143302161683099, 2081798441209593 }\n  },\n  {\n    { 127147851567005, 1936114012888110, 1704424366552046, 856674880716312, 716603621335359 },\n    { 1072409664800960, 2146937497077528, 1508780108920651, 935767602384853, 1112800433544068 },\n    { 333549023751292, 280219272863308, 2104176666454852, 1036466864875785, 536135186520207 }\n  },\n  {\n    { 373666279883137, 146457241530109, 304116267127857, 416088749147715, 1258577131183391 },\n    { 1186115062588401, 2251609796968486, 1098944457878953, 1153112761201374, 1791625503417267 },\n    { 1870078460219737, 2129630962183380, 852283639691142, 292865602592851, 401904317342226 }\n  },\n  {\n    { 1361070124828035, 815664541425524, 1026798897364671, 1951790935390647, 555874891834790 },\n    { 1546301003424277, 459094500062839, 1097668518375311, 1780297770129643, 720763293687608 },\n    { 1212405311403990, 1536693382542438, 61028431067459, 1863929423417129, 1223219538638038 }\n  },\n  {\n    { 1294303766540260, 1183557465955093, 882271357233093, 63854569425375, 2213283684565087 },\n    { 339050984211414, 601386726509773, 413735232134068, 966191255137228, 1839475899458159 },\n    { 235605972169408, 2174055643032978, 1538335001838863, 1281866796917192, 1815940222628465 }\n  }\n},\n{ /* 24/31 */\n  {\n    { 1632352921721536, 1833328609514701, 2092779091951987, 1923956201873226, 2210068022482919 },\n    { 35271216625062, 1712350667021807, 983664255668860, 98571260373038, 1232645608559836 },\n    { 1998172393429622, 1798947921427073, 784387737563581, 1589352214827263, 1589861734168180 }\n  },\n  {\n    { 1733739258725305, 31715717059538, 201969945218860, 992093044556990, 1194308773174556 },\n    { 846415389605137, 746163495539180, 829658752826080, 592067705956946, 957242537821393 },\n    { 1758148849754419, 619249044817679, 168089007997045, 1371497636330523, 1867101418880350 }\n  },\n  {\n    { 326633984209635, 261759506071016, 1700682323676193, 1577907266349064, 1217647663383016 },\n    { 1714182387328607, 1477856482074168, 574895689942184, 2159118410227270, 1555532449716575 },\n    { 853828206885131, 998498946036955, 1835887550391235, 207627336608048, 258363815956050 }\n  },\n  {\n    { 141141474651677, 1236728744905256, 643101419899887, 1646615130509173, 1208239602291765 },\n    { 1501663228068911, 1354879465566912, 1444432675498247, 897812463852601, 855062598754348 },\n    { 714380763546606, 1032824444965790, 1774073483745338, 1063840874947367, 1738680636537158 }\n  },\n  {\n    { 1640635546696252, 633168953192112, 2212651044092396, 30590958583852, 368515260889378 },\n    { 1171650314802029, 1567085444565577, 1453660792008405, 757914533009261, 1619511342778196 },\n    { 420958967093237, 971103481109486, 2169549185607107, 1301191633558497, 1661514101014240 }\n  },\n  {\n    { 907123651818302, 1332556122804146, 1824055253424487, 1367614217442959, 1982558335973172 },\n    { 1121533090144639, 1021251337022187, 110469995947421, 1511059774758394, 2110035908131662 },\n    { 303213233384524, 2061932261128138, 352862124777736, 40828818670255, 249879468482660 }\n  },\n  {\n    { 856559257852200, 508517664949010, 1378193767894916, 1723459126947129, 1962275756614521 },\n    { 1445691340537320, 40614383122127, 402104303144865, 485134269878232, 1659439323587426 },\n    { 20057458979482, 1183363722525800, 2140003847237215, 2053873950687614, 2112017736174909 }\n  },\n  {\n    { 2228654250927986, 1483591363415267, 1368661293910956, 1076511285177291, 526650682059608 },\n    { 709481497028540, 531682216165724, 316963769431931, 1814315888453765, 258560242424104 },\n    { 1053447823660455, 1955135194248683, 1010900954918985, 1182614026976701, 1240051576966610 }\n  }\n},\n{ /* 25/31 */\n  {\n    { 1957943897155497, 1788667368028035, 137692910029106, 1039519607062, 826404763313028 },\n    { 1848942433095597, 1582009882530495, 1849292741020143, 1068498323302788, 2001402229799484 },\n    { 1528282417624269, 2142492439828191, 2179662545816034, 362568973150328, 1591374675250271 }\n  },\n  {\n    { 160026679434388, 232341189218716, 2149181472355545, 598041771119831, 183859001910173 },\n    { 2013278155187349, 662660471354454, 793981225706267, 411706605985744, 804490933124791 },\n    { 2051892037280204, 488391251096321, 2230187337030708, 930221970662692, 679002758255210 }\n  },\n  {\n    { 1530723630438670, 875873929577927, 341560134269988, 449903119530753, 1055551308214179 },\n    { 1461835919309432, 1955256480136428, 180866187813063, 1551979252664528, 557743861963950 },\n    { 359179641731115, 1324915145732949, 902828372691474, 294254275669987, 1887036027752957 }\n  },\n  {\n    { 2043271609454323, 2038225437857464, 1317528426475850, 1398989128982787, 2027639881006861 },\n    { 2072902725256516, 312132452743412, 309930885642209, 996244312618453, 1590501300352303 },\n    { 1397254305160710, 695734355138021, 2233992044438756, 1776180593969996, 1085588199351115 }\n  },\n  {\n    { 440567051331029, 254894786356681, 493869224930222, 1556322069683366, 1567456540319218 },\n    { 1950722461391320, 1907845598854797, 1822757481635527, 2121567704750244, 73811931471221 },\n    { 387139307395758, 2058036430315676, 1220915649965325, 1794832055328951, 1230009312169328 }\n  },\n  {\n    { 1765973779329517, 659344059446977, 19821901606666, 1301928341311214, 1116266004075885 },\n    { 1127572801181483, 1224743760571696, 1276219889847274, 1529738721702581, 1589819666871853 },\n    { 2181229378964934, 2190885205260020, 1511536077659137, 1246504208580490, 668883326494241 }\n  },\n  {\n    { 437866655573314, 669026411194768, 81896997980338, 523874406393178, 245052060935236 },\n    { 1975438052228868, 1071801519999806, 594652299224319, 1877697652668809, 1489635366987285 },\n    { 958592545673770, 233048016518599, 851568750216589, 567703851596087, 1740300006094761 }\n  },\n  {\n    { 2014540178270324, 192672779514432, 213877182641530, 2194819933853411, 1716422829364835 },\n    { 1540769606609725, 2148289943846077, 1597804156127445, 1230603716683868, 815423458809453 },\n    { 1738560251245018, 1779576754536888, 1783765347671392, 1880170990446751, 1088225159617541 }\n  }\n},\n{ /* 26/31 */\n  {\n    { 659303913929492, 1956447718227573, 1830568515922666, 841069049744408, 1669607124206368 },\n    { 1143465490433355, 1532194726196059, 1093276745494697, 481041706116088, 2121405433561163 },\n    { 1686424298744462, 1451806974487153, 266296068846582, 1834686947542675, 1720762336132256 }\n  },\n  {\n    { 889217026388959, 1043290623284660, 856125087551909, 1669272323124636, 1603340330827879 },\n    { 1206396181488998, 333158148435054, 1402633492821422, 1120091191722026, 1945474114550509 },\n    { 766720088232571, 1512222781191002, 1189719893490790, 2091302129467914, 2141418006894941 }\n  },\n  {\n    { 419663647306612, 1998875112167987, 1426599870253707, 1154928355379510, 486538532138187 },\n    { 938160078005954, 1421776319053174, 1941643234741774, 180002183320818, 1414380336750546 },\n    { 398001940109652, 1577721237663248, 1012748649830402, 1540516006905144, 1011684812884559 }\n  },\n  {\n    { 1653276489969630, 6081825167624, 1921777941170836, 1604139841794531, 861211053640641 },\n    { 996661541407379, 1455877387952927, 744312806857277, 139213896196746, 1000282908547789 },\n    { 1450817495603008, 1476865707053229, 1030490562252053, 620966950353376, 1744760161539058 }\n  },\n  {\n    { 559728410002599, 37056661641185, 2038622963352006, 1637244893271723, 1026565352238948 },\n    { 962165956135846, 1116599660248791, 182090178006815, 1455605467021751, 196053588803284 },\n    { 796863823080135, 1897365583584155, 420466939481601, 2165972651724672, 932177357788289 }\n  },\n  {\n    { 877047233620632, 1375632631944375, 643773611882121, 660022738847877, 19353932331831 },\n    { 2216943882299338, 394841323190322, 2222656898319671, 558186553950529, 1077236877025190 },\n    { 801118384953213, 1914330175515892, 574541023311511, 1471123787903705, 1526158900256288 }\n  },\n  {\n    { 949617889087234, 2207116611267331, 912920039141287, 501158539198789, 62362560771472 },\n    { 1474518386765335, 1760793622169197, 1157399790472736, 1622864308058898, 165428294422792 },\n    { 1961673048027128, 102619413083113, 1051982726768458, 1603657989805485, 1941613251499678 }\n  },\n  {\n    { 1401939116319266, 335306339903072, 72046196085786, 862423201496006, 850518754531384 },\n    { 1234706593321979, 1083343891215917, 898273974314935, 1640859118399498, 157578398571149 },\n    { 1143483057726416, 1992614991758919, 674268662140796, 1773370048077526, 674318359920189 }\n  }\n},\n{ /* 27/31 */\n  {\n    { 1835401379538542, 173900035308392, 818247630716732, 1762100412152786, 1021506399448291 },\n    { 1506632088156630, 2127481795522179, 513812919490255, 140643715928370, 442476620300318 },\n    { 2056683376856736, 219094741662735, 2193541883188309, 1841182310235800, 556477468664293 }\n  },\n  {\n    { 1315019427910827, 1049075855992603, 2066573052986543, 266904467185534, 2040482348591520 },\n    { 94096246544434, 922482381166992, 24517828745563, 2139430508542503, 2097139044231004 },\n    { 537697207950515, 1399352016347350, 1563663552106345, 2148749520888918, 549922092988516 }\n  },\n  {\n    { 1747985413252434, 680511052635695, 1809559829982725, 594274250930054, 201673170745982 },\n    { 323583936109569, 1973572998577657, 1192219029966558, 79354804385273, 1374043025560347 },\n    { 213277331329947, 416202017849623, 1950535221091783, 1313441578103244, 2171386783823658 }\n  },\n  {\n    { 189088804229831, 993969372859110, 895870121536987, 1547301535298256, 1477373024911350 },\n    { 1620578418245010, 541035331188469, 2235785724453865, 2154865809088198, 1974627268751826 },\n    { 1346805451740245, 1350981335690626, 942744349501813, 2155094562545502, 1012483751693409 }\n  },\n  {\n    { 2107080134091762, 1132567062788208, 1824935377687210, 769194804343737, 1857941799971888 },\n    { 1074666112436467, 249279386739593, 1174337926625354, 1559013532006480, 1472287775519121 },\n    { 1872620123779532, 1892932666768992, 1921559078394978, 1270573311796160, 1438913646755037 }\n  },\n  {\n    { 837390187648199, 1012253300223599, 989780015893987, 1351393287739814, 328627746545550 },\n    { 1028328827183114, 1711043289969857, 1350832470374933, 1923164689604327, 1495656368846911 },\n    { 1900828492104143, 430212361082163, 687437570852799, 832514536673512, 1685641495940794 }\n  },\n  {\n    { 842632847936398, 605670026766216, 290836444839585, 163210774892356, 2213815011799645 },\n    { 1176336383453996, 1725477294339771, 12700622672454, 678015708818208, 162724078519879 },\n    { 1448049969043497, 1789411762943521, 385587766217753, 90201620913498, 832999441066823 }\n  },\n  {\n    { 516086333293313, 2240508292484616, 1351669528166508, 1223255565316488, 750235824427138 },\n    { 1263624896582495, 1102602401673328, 526302183714372, 2152015839128799, 1483839308490010 },\n    { 442991718646863, 1599275157036458, 1925389027579192, 899514691371390, 350263251085160 }\n  }\n},\n{ /* 28/31 */\n  {\n    { 1689713572022143, 593854559254373, 978095044791970, 1985127338729499, 1676069120347625 },\n    { 1557207018622683, 340631692799603, 1477725909476187, 614735951619419, 2033237123746766 },\n    { 968764929340557, 1225534776710944, 662967304013036, 1155521416178595, 791142883466590 }\n  },\n  {\n    { 1487081286167458, 993039441814934, 1792378982844640, 698652444999874, 2153908693179754 },\n    { 1123181311102823, 685575944875442, 507605465509927, 1412590462117473, 568017325228626 },\n    { 560258797465417, 2193971151466401, 1824086900849026, 579056363542056, 1690063960036441 }\n  },\n  {\n    { 1918407319222416, 353767553059963, 1930426334528099, 1564816146005724, 1861342381708096 },\n    { 2131325168777276, 1176636658428908, 1756922641512981, 1390243617176012, 1966325177038383 },\n    { 2063958120364491, 2140267332393533, 699896251574968, 273268351312140, 375580724713232 }\n  },\n  {\n    { 2024297515263178, 416959329722687, 1079014235017302, 171612225573183, 1031677520051053 },\n    { 2033900009388450, 1744902869870788, 2190580087917640, 1949474984254121, 231049754293748 },\n    { 343868674606581, 550155864008088, 1450580864229630, 481603765195050, 896972360018042 }\n  },\n  {\n    { 2151139328380127, 314745882084928, 59756825775204, 1676664391494651, 2048348075599360 },\n    { 1528930066340597, 1605003907059576, 1055061081337675, 1458319101947665, 1234195845213142 },\n    { 830430507734812, 1780282976102377, 1425386760709037, 362399353095425, 2168861579799910 }\n  },\n  {\n    { 1155762232730333, 980662895504006, 2053766700883521, 490966214077606, 510405877041357 },\n    { 1683750316716132, 652278688286128, 1221798761193539, 1897360681476669, 319658166027343 },\n    { 618808732869972, 72755186759744, 2060379135624181, 1730731526741822, 48862757828238 }\n  },\n  {\n    { 1463171970593505, 1143040711767452, 614590986558883, 1409210575145591, 1882816996436803 },\n    { 2230133264691131, 563950955091024, 2042915975426398, 827314356293472, 672028980152815 },\n    { 264204366029760, 1654686424479449, 2185050199932931, 2207056159091748, 506015669043634 }\n  },\n  {\n    { 1784446333136569, 1973746527984364, 334856327359575, 1156769775884610, 1023950124675478 },\n    { 2065270940578383, 31477096270353, 306421879113491, 181958643936686, 1907105536686083 },\n    { 1496516440779464, 1748485652986458, 872778352227340, 818358834654919, 97932669284220 }\n  }\n},\n{ /* 29/31 */\n  {\n    { 471636015770351, 672455402793577, 1804995246884103, 1842309243470804, 1501862504981682 },\n    { 1013216974933691, 538921919682598, 1915776722521558, 1742822441583877, 1886550687916656 },\n    { 2094270000643336, 303971879192276, 40801275554748, 649448917027930, 1818544418535447 }\n  },\n  {\n    { 2241737709499165, 549397817447461, 838180519319392, 1725686958520781, 1705639080897747 },\n    { 1216074541925116, 50120933933509, 1565829004133810, 721728156134580, 349206064666188 },\n    { 948617110470858, 346222547451945, 1126511960599975, 1759386906004538, 493053284802266 }\n  },\n  {\n    { 1454933046815146, 874696014266362, 1467170975468588, 1432316382418897, 2111710746366763 },\n    { 2105387117364450, 1996463405126433, 1303008614294500, 851908115948209, 1353742049788635 },\n    { 750300956351719, 1487736556065813, 15158817002104, 1511998221598392, 971739901354129 }\n  },\n  {\n    { 1874648163531693, 2124487685930551, 1810030029384882, 918400043048335, 586348627300650 },\n    { 1235084464747900, 1166111146432082, 1745394857881591, 1405516473883040, 4463504151617 },\n    { 1663810156463827, 327797390285791, 1341846161759410, 1964121122800605, 1747470312055380 }\n  },\n  {\n    { 660005247548233, 2071860029952887, 1358748199950107, 911703252219107, 1014379923023831 },\n    { 2206641276178231, 1690587809721504, 1600173622825126, 2156096097634421, 1106822408548216 },\n    { 1344788193552206, 1949552134239140, 1735915881729557, 675891104100469, 1834220014427292 }\n  },\n  {\n    { 1920949492387964, 158885288387530, 70308263664033, 626038464897817, 1468081726101009 },\n    { 622221042073383, 1210146474039168, 1742246422343683, 1403839361379025, 417189490895736 },\n    { 22727256592983, 168471543384997, 1324340989803650, 1839310709638189, 504999476432775 }\n  },\n  {\n    { 1313240518756327, 1721896294296942, 52263574587266, 2065069734239232, 804910473424630 },\n    { 1337466662091884, 1287645354669772, 2018019646776184, 652181229374245, 898011753211715 },\n    { 1969792547910734, 779969968247557, 2011350094423418, 1823964252907487, 1058949448296945 }\n  },\n  {\n    { 207343737062002, 1118176942430253, 758894594548164, 806764629546266, 1157700123092949 },\n    { 1273565321399022, 1638509681964574, 759235866488935, 666015124346707, 897983460943405 },\n    { 1717263794012298, 1059601762860786, 1837819172257618, 1054130665797229, 680893204263559 }\n  }\n},\n{ /* 30/31 */\n  {\n    { 2237039662793603, 2249022333361206, 2058613546633703, 149454094845279, 2215176649164582 },\n    { 79472182719605, 1851130257050174, 1825744808933107, 821667333481068, 781795293511946 },\n    { 755822026485370, 152464789723500, 1178207602290608, 410307889503239, 156581253571278 }\n  },\n  {\n    { 1418185496130297, 484520167728613, 1646737281442950, 1401487684670265, 1349185550126961 },\n    { 1495380034400429, 325049476417173, 46346894893933, 1553408840354856, 828980101835683 },\n    { 1280337889310282, 2070832742866672, 1640940617225222, 2098284908289951, 450929509534434 }\n  },\n  {\n    { 407703353998781, 126572141483652, 286039827513621, 1999255076709338, 2030511179441770 },\n    { 1254958221100483, 1153235960999843, 942907704968834, 637105404087392, 1149293270147267 },\n    { 894249020470196, 400291701616810, 406878712230981, 1599128793487393, 1145868722604026 }\n  },\n  {\n    { 1497955250203334, 110116344653260, 1128535642171976, 1900106496009660, 129792717460909 },\n    { 452487513298665, 1352120549024569, 1173495883910956, 1999111705922009, 367328130454226 },\n    { 1717539401269642, 1475188995688487, 891921989653942, 836824441505699, 1885988485608364 }\n  },\n  {\n    { 1241784121422547, 187337051947583, 1118481812236193, 428747751936362, 30358898927325 },\n    { 2022432361201842, 1088816090685051, 1977843398539868, 1854834215890724, 564238862029357 },\n    { 938868489100585, 1100285072929025, 1017806255688848, 1957262154788833, 152787950560442 }\n  },\n  {\n    { 867319417678923, 620471962942542, 226032203305716, 342001443957629, 1761675818237336 },\n    { 1295072362439987, 931227904689414, 1355731432641687, 922235735834035, 892227229410209 },\n    { 1680989767906154, 535362787031440, 2136691276706570, 1942228485381244, 1267350086882274 }\n  },\n  {\n    { 366018233770527, 432660629755596, 126409707644535, 1973842949591662, 645627343442376 },\n    { 535509430575217, 546885533737322, 1524675609547799, 2138095752851703, 1260738089896827 },\n    { 1159906385590467, 2198530004321610, 714559485023225, 81880727882151, 1484020820037082 }\n  },\n  {\n    { 1377485731340769, 2046328105512000, 1802058637158797, 62146136768173, 1356993908853901 },\n    { 2013612215646735, 1830770575920375, 536135310219832, 609272325580394, 270684344495013 },\n    { 1237542585982777, 2228682050256790, 1385281931622824, 593183794882890, 493654978552689 }\n  }\n},\n{ /* 31/31 */\n  {\n    { 47341488007760, 1891414891220257, 983894663308928, 176161768286818, 1126261115179708 },\n    { 1694030170963455, 502038567066200, 1691160065225467, 949628319562187, 275110186693066 },\n    { 1124515748676336, 1661673816593408, 1499640319059718, 1584929449166988, 558148594103306 }\n  },\n  {\n    { 1784525599998356, 1619698033617383, 2097300287550715, 258265458103756, 1905684794832758 },\n    { 1288941072872766, 931787902039402, 190731008859042, 2006859954667190, 1005931482221702 },\n    { 1465551264822703, 152905080555927, 680334307368453, 173227184634745, 666407097159852 }\n  },\n  {\n    { 2111017076203943, 1378760485794347, 1248583954016456, 1352289194864422, 1895180776543896 },\n    { 171348223915638, 662766099800389, 462338943760497, 466917763340314, 656911292869115 },\n    { 488623681976577, 866497561541722, 1708105560937768, 1673781214218839, 1506146329818807 }\n  },\n  {\n    { 160425464456957, 950394373239689, 430497123340934, 711676555398832, 320964687779005 },\n    { 988979367990485, 1359729327576302, 1301834257246029, 294141160829308, 29348272277475 },\n    { 1434382743317910, 100082049942065, 221102347892623, 186982837860588, 1305765053501834 }\n  },\n  {\n    { 2205916462268190, 499863829790820, 961960554686616, 158062762756985, 1841471168298305 },\n    { 1191737341426592, 1847042034978363, 1382213545049056, 1039952395710448, 788812858896859 },\n    { 1346965964571152, 1291881610839830, 2142916164336056, 786821641205979, 1571709146321039 }\n  },\n  {\n    { 787164375951248, 202869205373189, 1356590421032140, 1431233331032510, 786341368775957 },\n    { 492448143532951, 304105152670757, 1761767168301056, 233782684697790, 1981295323106089 },\n    { 665807507761866, 1343384868355425, 895831046139653, 439338948736892, 1986828765695105 }\n  },\n  {\n    { 756096210874553, 1721699973539149, 258765301727885, 1390588532210645, 1212530909934781 },\n    { 852891097972275, 1816988871354562, 1543772755726524, 1174710635522444, 202129090724628 },\n    { 1205281565824323, 22430498399418, 992947814485516, 1392458699738672, 688441466734558 }\n  },\n  {\n    { 1050627428414972, 1955849529137135, 2171162376368357, 91745868298214, 447733118757826 },\n    { 1287181461435438, 622722465530711, 880952150571872, 741035693459198, 311565274989772 },\n    { 1003649078149734, 545233927396469, 1849786171789880, 1318943684880434, 280345687170552 }\n  }\n}\n"
  },
  {
    "path": "src/libsodium/crypto_core/ed25519/ref10/fe_51/base2.h",
    "content": "{\n  { 1288382639258501, 245678601348599, 269427782077623, 1462984067271730, 137412439391563 },\n  { 62697248952638, 204681361388450, 631292143396476, 338455783676468, 1213667448819585 },\n  { 301289933810280, 1259582250014073, 1422107436869536, 796239922652654, 1953934009299142 }\n},\n{\n  { 1601611775252272, 1720807796594148, 1132070835939856, 1260455018889551, 2147779492816911 },\n  { 316559037616741, 2177824224946892, 1459442586438991, 1461528397712656, 751590696113597 },\n  { 1850748884277385, 1200145853858453, 1068094770532492, 672251375690438, 1586055907191707 }\n},\n{\n  { 769950342298419, 132954430919746, 844085933195555, 974092374476333, 726076285546016 },\n  { 425251763115706, 608463272472562, 442562545713235, 837766094556764, 374555092627893 },\n  { 1086255230780037, 274979815921559, 1960002765731872, 929474102396301, 1190409889297339 }\n},\n{\n  { 665000864555967, 2065379846933859, 370231110385876, 350988370788628, 1233371373142985 },\n  { 2019367628972465, 676711900706637, 110710997811333, 1108646842542025, 517791959672113 },\n  { 965130719900578, 247011430587952, 526356006571389, 91986625355052, 2157223321444601 }\n},\n{\n  { 1802695059465007, 1664899123557221, 593559490740857, 2160434469266659, 927570450755031 },\n  { 1725674970513508, 1933645953859181, 1542344539275782, 1767788773573747, 1297447965928905 },\n  { 1381809363726107, 1430341051343062, 2061843536018959, 1551778050872521, 2036394857967624 }\n},\n{\n  { 1970894096313054, 528066325833207, 1619374932191227, 2207306624415883, 1169170329061080 },\n  { 2070390218572616, 1458919061857835, 624171843017421, 1055332792707765, 433987520732508 },\n  { 893653801273833, 1168026499324677, 1242553501121234, 1306366254304474, 1086752658510815 }\n},\n{\n  { 213454002618221, 939771523987438, 1159882208056014, 317388369627517, 621213314200687 },\n  { 1971678598905747, 338026507889165, 762398079972271, 655096486107477, 42299032696322 },\n  { 177130678690680, 1754759263300204, 1864311296286618, 1180675631479880, 1292726903152791 }\n},\n{\n  { 1913163449625248, 460779200291993, 2193883288642314, 1008900146920800, 1721983679009502 },\n  { 1070401523076875, 1272492007800961, 1910153608563310, 2075579521696771, 1191169788841221 },\n  { 692896803108118, 500174642072499, 2068223309439677, 1162190621851337, 1426986007309901 }\n}\n"
  },
  {
    "path": "src/libsodium/crypto_core/ed25519/ref10/fe_51/constants.h",
    "content": "/* sqrt(-1) */\nstatic const fe25519 fe25519_sqrtm1 = {\n    1718705420411056, 234908883556509, 2233514472574048, 2117202627021982, 765476049583133\n};\n\n/* sqrt(-486664) */\nstatic const fe25519 ed25519_sqrtam2 = {\n    1693982333959686, 608509411481997, 2235573344831311, 947681270984193, 266558006233600\n};\n\n/* 37095705934669439343138083508754565189542113879843219016388785533085940283555 */\nstatic const fe25519 ed25519_d = {\n    929955233495203, 466365720129213, 1662059464998953, 2033849074728123, 1442794654840575\n};\n\n/* 2 * d =\n * 16295367250680780974490674513165176452449235426866156013048779062215315747161\n */\nstatic const fe25519 ed25519_d2 = {\n    1859910466990425, 932731440258426, 1072319116312658, 1815898335770999, 633789495995903\n};\n\n/* A = 486662 */\n#define ed25519_A_32 486662\nstatic const fe25519 ed25519_A = {\n    ed25519_A_32, 0, 0, 0, 0\n};\n\n/* sqrt(ad - 1) with a = -1 (mod p) */\nstatic const fe25519 ed25519_sqrtadm1 = {\n    2241493124984347, 425987919032274, 2207028919301688, 1220490630685848, 974799131293748\n};\n\n/* 1 / sqrt(a - d) */\nstatic const fe25519 ed25519_invsqrtamd = {\n    278908739862762, 821645201101625, 8113234426968, 1777959178193151, 2118520810568447\n};\n\n/* 1 - d ^ 2 */\nstatic const fe25519 ed25519_onemsqd = {\n    1136626929484150, 1998550399581263, 496427632559748, 118527312129759, 45110755273534\n};\n\n/* (d - 1) ^ 2 */\nstatic const fe25519 ed25519_sqdmone = {\n    1507062230895904, 1572317787530805, 683053064812840, 317374165784489, 1572899562415810\n};\n"
  },
  {
    "path": "src/libsodium/crypto_core/ed25519/ref10/fe_51/fe.h",
    "content": "#include \"private/quirks.h\"\n\n/*\n Ignores top bit of s.\n */\n\nvoid\nfe25519_frombytes(fe25519 h, const unsigned char *s)\n{\n    const uint64_t mask = 0x7ffffffffffffULL;\n    uint64_t h0, h1, h2, h3, h4;\n\n    h0 = (LOAD64_LE(s     )      ) & mask;\n    h1 = (LOAD64_LE(s +  6) >>  3) & mask;\n    h2 = (LOAD64_LE(s + 12) >>  6) & mask;\n    h3 = (LOAD64_LE(s + 19) >>  1) & mask;\n    h4 = (LOAD64_LE(s + 24) >> 12) & mask;\n\n    h[0] = h0;\n    h[1] = h1;\n    h[2] = h2;\n    h[3] = h3;\n    h[4] = h4;\n}\n\nstatic void\nfe25519_reduce(fe25519 h, const fe25519 f)\n{\n    const uint64_t mask = 0x7ffffffffffffULL;\n    uint128_t t[5];\n\n    t[0] = f[0];\n    t[1] = f[1];\n    t[2] = f[2];\n    t[3] = f[3];\n    t[4] = f[4];\n\n    t[1] += t[0] >> 51;\n    t[0] &= mask;\n    t[2] += t[1] >> 51;\n    t[1] &= mask;\n    t[3] += t[2] >> 51;\n    t[2] &= mask;\n    t[4] += t[3] >> 51;\n    t[3] &= mask;\n    t[0] += 19 * (t[4] >> 51);\n    t[4] &= mask;\n\n    t[1] += t[0] >> 51;\n    t[0] &= mask;\n    t[2] += t[1] >> 51;\n    t[1] &= mask;\n    t[3] += t[2] >> 51;\n    t[2] &= mask;\n    t[4] += t[3] >> 51;\n    t[3] &= mask;\n    t[0] += 19 * (t[4] >> 51);\n    t[4] &= mask;\n\n    /* now t is between 0 and 2^255-1, properly carried. */\n    /* case 1: between 0 and 2^255-20. case 2: between 2^255-19 and 2^255-1. */\n\n    t[0] += 19ULL;\n\n    t[1] += t[0] >> 51;\n    t[0] &= mask;\n    t[2] += t[1] >> 51;\n    t[1] &= mask;\n    t[3] += t[2] >> 51;\n    t[2] &= mask;\n    t[4] += t[3] >> 51;\n    t[3] &= mask;\n    t[0] += 19ULL * (t[4] >> 51);\n    t[4] &= mask;\n\n    /* now between 19 and 2^255-1 in both cases, and offset by 19. */\n\n    t[0] += 0x8000000000000 - 19ULL;\n    t[1] += 0x8000000000000 - 1ULL;\n    t[2] += 0x8000000000000 - 1ULL;\n    t[3] += 0x8000000000000 - 1ULL;\n    t[4] += 0x8000000000000 - 1ULL;\n\n    /* now between 2^255 and 2^256-20, and offset by 2^255. */\n\n    t[1] += t[0] >> 51;\n    t[0] &= mask;\n    t[2] += t[1] >> 51;\n    t[1] &= mask;\n    t[3] += t[2] >> 51;\n    t[2] &= mask;\n    t[4] += t[3] >> 51;\n    t[3] &= mask;\n    t[4] &= mask;\n\n    h[0] = t[0];\n    h[1] = t[1];\n    h[2] = t[2];\n    h[3] = t[3];\n    h[4] = t[4];\n}\n\nvoid\nfe25519_tobytes(unsigned char *s, const fe25519 h)\n{\n    fe25519  t;\n    uint64_t t0, t1, t2, t3;\n\n    fe25519_reduce(t, h);\n    t0 = t[0] | (t[1] << 51);\n    t1 = (t[1] >> 13) | (t[2] << 38);\n    t2 = (t[2] >> 26) | (t[3] << 25);\n    t3 = (t[3] >> 39) | (t[4] << 12);\n    STORE64_LE(s +  0, t0);\n    STORE64_LE(s +  8, t1);\n    STORE64_LE(s + 16, t2);\n    STORE64_LE(s + 24, t3);\n}\n"
  },
  {
    "path": "src/libsodium/crypto_core/hchacha20/core_hchacha20.c",
    "content": "\n#include <stdint.h>\n#include <stdlib.h>\n\n#include \"crypto_core_hchacha20.h\"\n#include \"private/common.h\"\n\n#define QUARTERROUND(A, B, C, D)     \\\n  do {                               \\\n      A += B; D = ROTL32(D ^ A, 16); \\\n      C += D; B = ROTL32(B ^ C, 12); \\\n      A += B; D = ROTL32(D ^ A,  8); \\\n      C += D; B = ROTL32(B ^ C,  7); \\\n  } while(0)\n\nint\ncrypto_core_hchacha20(unsigned char *out, const unsigned char *in,\n                      const unsigned char *k, const unsigned char *c)\n{\n    int      i;\n    uint32_t x0, x1, x2, x3, x4, x5, x6, x7;\n    uint32_t x8, x9, x10, x11, x12, x13, x14, x15;\n\n    if (c == NULL) {\n        x0 = 0x61707865;\n        x1 = 0x3320646e;\n        x2 = 0x79622d32;\n        x3 = 0x6b206574;\n    } else {\n        x0 = LOAD32_LE(c +  0);\n        x1 = LOAD32_LE(c +  4);\n        x2 = LOAD32_LE(c +  8);\n        x3 = LOAD32_LE(c + 12);\n    }\n    x4  = LOAD32_LE(k +  0);\n    x5  = LOAD32_LE(k +  4);\n    x6  = LOAD32_LE(k +  8);\n    x7  = LOAD32_LE(k + 12);\n    x8  = LOAD32_LE(k + 16);\n    x9  = LOAD32_LE(k + 20);\n    x10 = LOAD32_LE(k + 24);\n    x11 = LOAD32_LE(k + 28);\n    x12 = LOAD32_LE(in +  0);\n    x13 = LOAD32_LE(in +  4);\n    x14 = LOAD32_LE(in +  8);\n    x15 = LOAD32_LE(in + 12);\n\n    for (i = 0; i < 10; i++) {\n        QUARTERROUND(x0, x4,  x8, x12);\n        QUARTERROUND(x1, x5,  x9, x13);\n        QUARTERROUND(x2, x6, x10, x14);\n        QUARTERROUND(x3, x7, x11, x15);\n        QUARTERROUND(x0, x5, x10, x15);\n        QUARTERROUND(x1, x6, x11, x12);\n        QUARTERROUND(x2, x7,  x8, x13);\n        QUARTERROUND(x3, x4,  x9, x14);\n    }\n\n    STORE32_LE(out +  0, x0);\n    STORE32_LE(out +  4, x1);\n    STORE32_LE(out +  8, x2);\n    STORE32_LE(out + 12, x3);\n    STORE32_LE(out + 16, x12);\n    STORE32_LE(out + 20, x13);\n    STORE32_LE(out + 24, x14);\n    STORE32_LE(out + 28, x15);\n\n    return 0;\n}\n\nsize_t\ncrypto_core_hchacha20_outputbytes(void)\n{\n    return crypto_core_hchacha20_OUTPUTBYTES;\n}\n\nsize_t\ncrypto_core_hchacha20_inputbytes(void)\n{\n    return crypto_core_hchacha20_INPUTBYTES;\n}\n\nsize_t\ncrypto_core_hchacha20_keybytes(void)\n{\n    return crypto_core_hchacha20_KEYBYTES;\n}\n\nsize_t\ncrypto_core_hchacha20_constbytes(void)\n{\n    return crypto_core_hchacha20_CONSTBYTES;\n}\n"
  },
  {
    "path": "src/libsodium/crypto_core/hsalsa20/core_hsalsa20.c",
    "content": "#include \"crypto_core_hsalsa20.h\"\n\nsize_t\ncrypto_core_hsalsa20_outputbytes(void) {\n    return crypto_core_hsalsa20_OUTPUTBYTES;\n}\n\nsize_t\ncrypto_core_hsalsa20_inputbytes(void) {\n    return crypto_core_hsalsa20_INPUTBYTES;\n}\n\nsize_t\ncrypto_core_hsalsa20_keybytes(void) {\n    return crypto_core_hsalsa20_KEYBYTES;\n}\n\nsize_t\ncrypto_core_hsalsa20_constbytes(void) {\n    return crypto_core_hsalsa20_CONSTBYTES;\n}\n"
  },
  {
    "path": "src/libsodium/crypto_core/hsalsa20/ref2/core_hsalsa20_ref2.c",
    "content": "/*\nversion 20080912\nD. J. Bernstein\nPublic domain.\n*/\n\n#include <stdint.h>\n#include <stdlib.h>\n\n#include \"crypto_core_hsalsa20.h\"\n#include \"private/common.h\"\n\n#define ROUNDS 20\n#define U32C(v) (v##U)\n\nint\ncrypto_core_hsalsa20(unsigned char *out,\n                     const unsigned char *in,\n                     const unsigned char *k,\n                     const unsigned char *c)\n{\n    uint32_t x0, x1, x2, x3, x4, x5, x6, x7, x8,\n             x9, x10, x11, x12, x13, x14,  x15;\n    int      i;\n\n    if (c == NULL) {\n        x0 = U32C(0x61707865);\n        x5 = U32C(0x3320646e);\n        x10 = U32C(0x79622d32);\n        x15 = U32C(0x6b206574);\n    } else {\n        x0 = LOAD32_LE(c + 0);\n        x5 = LOAD32_LE(c + 4);\n        x10 = LOAD32_LE(c + 8);\n        x15 = LOAD32_LE(c + 12);\n    }\n    x1 = LOAD32_LE(k + 0);\n    x2 = LOAD32_LE(k + 4);\n    x3 = LOAD32_LE(k + 8);\n    x4 = LOAD32_LE(k + 12);\n    x11 = LOAD32_LE(k + 16);\n    x12 = LOAD32_LE(k + 20);\n    x13 = LOAD32_LE(k + 24);\n    x14 = LOAD32_LE(k + 28);\n    x6 = LOAD32_LE(in + 0);\n    x7 = LOAD32_LE(in + 4);\n    x8 = LOAD32_LE(in + 8);\n    x9 = LOAD32_LE(in + 12);\n\n    for (i = ROUNDS; i > 0; i -= 2) {\n        x4 ^= ROTL32(x0 + x12, 7);\n        x8 ^= ROTL32(x4 + x0, 9);\n        x12 ^= ROTL32(x8 + x4, 13);\n        x0 ^= ROTL32(x12 + x8, 18);\n        x9 ^= ROTL32(x5 + x1, 7);\n        x13 ^= ROTL32(x9 + x5, 9);\n        x1 ^= ROTL32(x13 + x9, 13);\n        x5 ^= ROTL32(x1 + x13, 18);\n        x14 ^= ROTL32(x10 + x6, 7);\n        x2 ^= ROTL32(x14 + x10, 9);\n        x6 ^= ROTL32(x2 + x14, 13);\n        x10 ^= ROTL32(x6 + x2, 18);\n        x3 ^= ROTL32(x15 + x11, 7);\n        x7 ^= ROTL32(x3 + x15, 9);\n        x11 ^= ROTL32(x7 + x3, 13);\n        x15 ^= ROTL32(x11 + x7, 18);\n        x1 ^= ROTL32(x0 + x3, 7);\n        x2 ^= ROTL32(x1 + x0, 9);\n        x3 ^= ROTL32(x2 + x1, 13);\n        x0 ^= ROTL32(x3 + x2, 18);\n        x6 ^= ROTL32(x5 + x4, 7);\n        x7 ^= ROTL32(x6 + x5, 9);\n        x4 ^= ROTL32(x7 + x6, 13);\n        x5 ^= ROTL32(x4 + x7, 18);\n        x11 ^= ROTL32(x10 + x9, 7);\n        x8 ^= ROTL32(x11 + x10, 9);\n        x9 ^= ROTL32(x8 + x11, 13);\n        x10 ^= ROTL32(x9 + x8, 18);\n        x12 ^= ROTL32(x15 + x14, 7);\n        x13 ^= ROTL32(x12 + x15, 9);\n        x14 ^= ROTL32(x13 + x12, 13);\n        x15 ^= ROTL32(x14 + x13, 18);\n    }\n\n    STORE32_LE(out + 0, x0);\n    STORE32_LE(out + 4, x5);\n    STORE32_LE(out + 8, x10);\n    STORE32_LE(out + 12, x15);\n    STORE32_LE(out + 16, x6);\n    STORE32_LE(out + 20, x7);\n    STORE32_LE(out + 24, x8);\n    STORE32_LE(out + 28, x9);\n\n    return 0;\n}\n"
  },
  {
    "path": "src/libsodium/crypto_core/keccak1600/armsha3/keccak1600_armsha3.c",
    "content": "#include <stdint.h>\n#include <string.h>\n\n#include \"keccak1600_armsha3.h\"\n#include \"private/common.h\"\n\n#if defined(__ARM_FEATURE_SHA3)\n\n#include <arm_neon.h>\n\n#ifdef __clang__\n# pragma clang attribute push(__attribute__((target(\"neon,sha3\"))), apply_to = function)\n#elif defined(__GNUC__)\n# pragma GCC target(\"+simd+sha3\")\n#endif\n\n#define KECCAK1600_STATEBYTES 200\n\nstatic const uint64_t RC[24] = {\n    0x0000000000000001ULL, 0x0000000000008082ULL, 0x800000000000808aULL, 0x8000000080008000ULL,\n    0x000000000000808bULL, 0x0000000080000001ULL, 0x8000000080008081ULL, 0x8000000000008009ULL,\n    0x000000000000008aULL, 0x0000000000000088ULL, 0x0000000080008009ULL, 0x000000008000000aULL,\n    0x000000008000808bULL, 0x800000000000008bULL, 0x8000000000008089ULL, 0x8000000000008003ULL,\n    0x8000000000008002ULL, 0x8000000000000080ULL, 0x000000000000800aULL, 0x800000008000000aULL,\n    0x8000000080008081ULL, 0x8000000000008080ULL, 0x0000000080000001ULL, 0x8000000080008008ULL\n};\n\n#define ROUND(A, E, rc_idx)                                                    \\\n    do {                                                                       \\\n        uint64x2_t rc = vdupq_n_u64(RC[rc_idx]);                               \\\n        Ca = veor3q_u64(A##ba, veor3q_u64(A##ga, A##ka, A##ma), A##sa);        \\\n        Ce = veor3q_u64(A##be, veor3q_u64(A##ge, A##ke, A##me), A##se);        \\\n        Ci = veor3q_u64(A##bi, veor3q_u64(A##gi, A##ki, A##mi), A##si);        \\\n        Co = veor3q_u64(A##bo, veor3q_u64(A##go, A##ko, A##mo), A##so);        \\\n        Cu = veor3q_u64(A##bu, veor3q_u64(A##gu, A##ku, A##mu), A##su);        \\\n        Da = vrax1q_u64(Cu, Ce);                                               \\\n        De = vrax1q_u64(Ca, Ci);                                               \\\n        Di = vrax1q_u64(Ce, Co);                                               \\\n        Do = vrax1q_u64(Ci, Cu);                                               \\\n        Du = vrax1q_u64(Co, Ca);                                               \\\n        Ba = veorq_u64(A##ba, Da);                                             \\\n        Be = vxarq_u64(A##ge, De, 64 - 44);                                    \\\n        Bi = vxarq_u64(A##ki, Di, 64 - 43);                                    \\\n        Bo = vxarq_u64(A##mo, Do, 64 - 21);                                    \\\n        Bu = vxarq_u64(A##su, Du, 64 - 14);                                    \\\n        E##ba = veorq_u64(vbcaxq_u64(Ba, Bi, Be), rc);                         \\\n        E##be = vbcaxq_u64(Be, Bo, Bi);                                        \\\n        E##bi = vbcaxq_u64(Bi, Bu, Bo);                                        \\\n        E##bo = vbcaxq_u64(Bo, Ba, Bu);                                        \\\n        E##bu = vbcaxq_u64(Bu, Be, Ba);                                        \\\n        Ba = vxarq_u64(A##bo, Do, 64 - 28);                                    \\\n        Be = vxarq_u64(A##gu, Du, 64 - 20);                                    \\\n        Bi = vxarq_u64(A##ka, Da, 64 - 3);                                     \\\n        Bo = vxarq_u64(A##me, De, 64 - 45);                                    \\\n        Bu = vxarq_u64(A##si, Di, 64 - 61);                                    \\\n        E##ga = vbcaxq_u64(Ba, Bi, Be);                                        \\\n        E##ge = vbcaxq_u64(Be, Bo, Bi);                                        \\\n        E##gi = vbcaxq_u64(Bi, Bu, Bo);                                        \\\n        E##go = vbcaxq_u64(Bo, Ba, Bu);                                        \\\n        E##gu = vbcaxq_u64(Bu, Be, Ba);                                        \\\n        Ba = vxarq_u64(A##be, De, 64 - 1);                                     \\\n        Be = vxarq_u64(A##gi, Di, 64 - 6);                                     \\\n        Bi = vxarq_u64(A##ko, Do, 64 - 25);                                    \\\n        Bo = vxarq_u64(A##mu, Du, 64 - 8);                                     \\\n        Bu = vxarq_u64(A##sa, Da, 64 - 18);                                    \\\n        E##ka = vbcaxq_u64(Ba, Bi, Be);                                        \\\n        E##ke = vbcaxq_u64(Be, Bo, Bi);                                        \\\n        E##ki = vbcaxq_u64(Bi, Bu, Bo);                                        \\\n        E##ko = vbcaxq_u64(Bo, Ba, Bu);                                        \\\n        E##ku = vbcaxq_u64(Bu, Be, Ba);                                        \\\n        Ba = vxarq_u64(A##bu, Du, 64 - 27);                                    \\\n        Be = vxarq_u64(A##ga, Da, 64 - 36);                                    \\\n        Bi = vxarq_u64(A##ke, De, 64 - 10);                                    \\\n        Bo = vxarq_u64(A##mi, Di, 64 - 15);                                    \\\n        Bu = vxarq_u64(A##so, Do, 64 - 56);                                    \\\n        E##ma = vbcaxq_u64(Ba, Bi, Be);                                        \\\n        E##me = vbcaxq_u64(Be, Bo, Bi);                                        \\\n        E##mi = vbcaxq_u64(Bi, Bu, Bo);                                        \\\n        E##mo = vbcaxq_u64(Bo, Ba, Bu);                                        \\\n        E##mu = vbcaxq_u64(Bu, Be, Ba);                                        \\\n        Ba = vxarq_u64(A##bi, Di, 64 - 62);                                    \\\n        Be = vxarq_u64(A##go, Do, 64 - 55);                                    \\\n        Bi = vxarq_u64(A##ku, Du, 64 - 39);                                    \\\n        Bo = vxarq_u64(A##ma, Da, 64 - 41);                                    \\\n        Bu = vxarq_u64(A##se, De, 64 - 2);                                     \\\n        E##sa = vbcaxq_u64(Ba, Bi, Be);                                        \\\n        E##se = vbcaxq_u64(Be, Bo, Bi);                                        \\\n        E##si = vbcaxq_u64(Bi, Bu, Bo);                                        \\\n        E##so = vbcaxq_u64(Bo, Ba, Bu);                                        \\\n        E##su = vbcaxq_u64(Bu, Be, Ba);                                        \\\n    } while (0)\n\nstatic void\nkeccakf_24_rounds(uint64_t st[25])\n{\n    uint64x2_t Aba, Abe, Abi, Abo, Abu;\n    uint64x2_t Aga, Age, Agi, Ago, Agu;\n    uint64x2_t Aka, Ake, Aki, Ako, Aku;\n    uint64x2_t Ama, Ame, Ami, Amo, Amu;\n    uint64x2_t Asa, Ase, Asi, Aso, Asu;\n    uint64x2_t Eba, Ebe, Ebi, Ebo, Ebu;\n    uint64x2_t Ega, Ege, Egi, Ego, Egu;\n    uint64x2_t Eka, Eke, Eki, Eko, Eku;\n    uint64x2_t Ema, Eme, Emi, Emo, Emu;\n    uint64x2_t Esa, Ese, Esi, Eso, Esu;\n    uint64x2_t Ca, Ce, Ci, Co, Cu;\n    uint64x2_t Da, De, Di, Do, Du;\n    uint64x2_t Ba, Be, Bi, Bo, Bu;\n\n    Aba = vdupq_n_u64(st[0]);  Abe = vdupq_n_u64(st[1]);\n    Abi = vdupq_n_u64(st[2]);  Abo = vdupq_n_u64(st[3]);\n    Abu = vdupq_n_u64(st[4]);\n    Aga = vdupq_n_u64(st[5]);  Age = vdupq_n_u64(st[6]);\n    Agi = vdupq_n_u64(st[7]);  Ago = vdupq_n_u64(st[8]);\n    Agu = vdupq_n_u64(st[9]);\n    Aka = vdupq_n_u64(st[10]); Ake = vdupq_n_u64(st[11]);\n    Aki = vdupq_n_u64(st[12]); Ako = vdupq_n_u64(st[13]);\n    Aku = vdupq_n_u64(st[14]);\n    Ama = vdupq_n_u64(st[15]); Ame = vdupq_n_u64(st[16]);\n    Ami = vdupq_n_u64(st[17]); Amo = vdupq_n_u64(st[18]);\n    Amu = vdupq_n_u64(st[19]);\n    Asa = vdupq_n_u64(st[20]); Ase = vdupq_n_u64(st[21]);\n    Asi = vdupq_n_u64(st[22]); Aso = vdupq_n_u64(st[23]);\n    Asu = vdupq_n_u64(st[24]);\n\n    ROUND(A, E, 0);  ROUND(E, A, 1);\n    ROUND(A, E, 2);  ROUND(E, A, 3);\n    ROUND(A, E, 4);  ROUND(E, A, 5);\n    ROUND(A, E, 6);  ROUND(E, A, 7);\n    ROUND(A, E, 8);  ROUND(E, A, 9);\n    ROUND(A, E, 10); ROUND(E, A, 11);\n    ROUND(A, E, 12); ROUND(E, A, 13);\n    ROUND(A, E, 14); ROUND(E, A, 15);\n    ROUND(A, E, 16); ROUND(E, A, 17);\n    ROUND(A, E, 18); ROUND(E, A, 19);\n    ROUND(A, E, 20); ROUND(E, A, 21);\n    ROUND(A, E, 22); ROUND(E, A, 23);\n\n    st[0]  = vgetq_lane_u64(Aba, 0); st[1]  = vgetq_lane_u64(Abe, 0);\n    st[2]  = vgetq_lane_u64(Abi, 0); st[3]  = vgetq_lane_u64(Abo, 0);\n    st[4]  = vgetq_lane_u64(Abu, 0);\n    st[5]  = vgetq_lane_u64(Aga, 0); st[6]  = vgetq_lane_u64(Age, 0);\n    st[7]  = vgetq_lane_u64(Agi, 0); st[8]  = vgetq_lane_u64(Ago, 0);\n    st[9]  = vgetq_lane_u64(Agu, 0);\n    st[10] = vgetq_lane_u64(Aka, 0); st[11] = vgetq_lane_u64(Ake, 0);\n    st[12] = vgetq_lane_u64(Aki, 0); st[13] = vgetq_lane_u64(Ako, 0);\n    st[14] = vgetq_lane_u64(Aku, 0);\n    st[15] = vgetq_lane_u64(Ama, 0); st[16] = vgetq_lane_u64(Ame, 0);\n    st[17] = vgetq_lane_u64(Ami, 0); st[18] = vgetq_lane_u64(Amo, 0);\n    st[19] = vgetq_lane_u64(Amu, 0);\n    st[20] = vgetq_lane_u64(Asa, 0); st[21] = vgetq_lane_u64(Ase, 0);\n    st[22] = vgetq_lane_u64(Asi, 0); st[23] = vgetq_lane_u64(Aso, 0);\n    st[24] = vgetq_lane_u64(Asu, 0);\n}\n\nstatic void\nkeccakf_12_rounds(uint64_t st[25])\n{\n    uint64x2_t Aba, Abe, Abi, Abo, Abu;\n    uint64x2_t Aga, Age, Agi, Ago, Agu;\n    uint64x2_t Aka, Ake, Aki, Ako, Aku;\n    uint64x2_t Ama, Ame, Ami, Amo, Amu;\n    uint64x2_t Asa, Ase, Asi, Aso, Asu;\n    uint64x2_t Eba, Ebe, Ebi, Ebo, Ebu;\n    uint64x2_t Ega, Ege, Egi, Ego, Egu;\n    uint64x2_t Eka, Eke, Eki, Eko, Eku;\n    uint64x2_t Ema, Eme, Emi, Emo, Emu;\n    uint64x2_t Esa, Ese, Esi, Eso, Esu;\n    uint64x2_t Ca, Ce, Ci, Co, Cu;\n    uint64x2_t Da, De, Di, Do, Du;\n    uint64x2_t Ba, Be, Bi, Bo, Bu;\n\n    Aba = vdupq_n_u64(st[0]);  Abe = vdupq_n_u64(st[1]);\n    Abi = vdupq_n_u64(st[2]);  Abo = vdupq_n_u64(st[3]);\n    Abu = vdupq_n_u64(st[4]);\n    Aga = vdupq_n_u64(st[5]);  Age = vdupq_n_u64(st[6]);\n    Agi = vdupq_n_u64(st[7]);  Ago = vdupq_n_u64(st[8]);\n    Agu = vdupq_n_u64(st[9]);\n    Aka = vdupq_n_u64(st[10]); Ake = vdupq_n_u64(st[11]);\n    Aki = vdupq_n_u64(st[12]); Ako = vdupq_n_u64(st[13]);\n    Aku = vdupq_n_u64(st[14]);\n    Ama = vdupq_n_u64(st[15]); Ame = vdupq_n_u64(st[16]);\n    Ami = vdupq_n_u64(st[17]); Amo = vdupq_n_u64(st[18]);\n    Amu = vdupq_n_u64(st[19]);\n    Asa = vdupq_n_u64(st[20]); Ase = vdupq_n_u64(st[21]);\n    Asi = vdupq_n_u64(st[22]); Aso = vdupq_n_u64(st[23]);\n    Asu = vdupq_n_u64(st[24]);\n\n    ROUND(A, E, 12); ROUND(E, A, 13);\n    ROUND(A, E, 14); ROUND(E, A, 15);\n    ROUND(A, E, 16); ROUND(E, A, 17);\n    ROUND(A, E, 18); ROUND(E, A, 19);\n    ROUND(A, E, 20); ROUND(E, A, 21);\n    ROUND(A, E, 22); ROUND(E, A, 23);\n\n    st[0]  = vgetq_lane_u64(Aba, 0); st[1]  = vgetq_lane_u64(Abe, 0);\n    st[2]  = vgetq_lane_u64(Abi, 0); st[3]  = vgetq_lane_u64(Abo, 0);\n    st[4]  = vgetq_lane_u64(Abu, 0);\n    st[5]  = vgetq_lane_u64(Aga, 0); st[6]  = vgetq_lane_u64(Age, 0);\n    st[7]  = vgetq_lane_u64(Agi, 0); st[8]  = vgetq_lane_u64(Ago, 0);\n    st[9]  = vgetq_lane_u64(Agu, 0);\n    st[10] = vgetq_lane_u64(Aka, 0); st[11] = vgetq_lane_u64(Ake, 0);\n    st[12] = vgetq_lane_u64(Aki, 0); st[13] = vgetq_lane_u64(Ako, 0);\n    st[14] = vgetq_lane_u64(Aku, 0);\n    st[15] = vgetq_lane_u64(Ama, 0); st[16] = vgetq_lane_u64(Ame, 0);\n    st[17] = vgetq_lane_u64(Ami, 0); st[18] = vgetq_lane_u64(Amo, 0);\n    st[19] = vgetq_lane_u64(Amu, 0);\n    st[20] = vgetq_lane_u64(Asa, 0); st[21] = vgetq_lane_u64(Ase, 0);\n    st[22] = vgetq_lane_u64(Asi, 0); st[23] = vgetq_lane_u64(Aso, 0);\n    st[24] = vgetq_lane_u64(Asu, 0);\n}\n\nvoid\nkeccak1600_armsha3_permute_24(void *state)\n{\n    uint64_t     st[25];\n    unsigned int i;\n\n    for (i = 0U; i < 25U; i++) {\n        st[i] = LOAD64_LE((const unsigned char *) state + i * 8U);\n    }\n\n    keccakf_24_rounds(st);\n\n    for (i = 0U; i < 25U; i++) {\n        STORE64_LE((unsigned char *) state + i * 8U, st[i]);\n    }\n}\n\nvoid\nkeccak1600_armsha3_permute_12(void *state)\n{\n    uint64_t     st[25];\n    unsigned int i;\n\n    for (i = 0U; i < 25U; i++) {\n        st[i] = LOAD64_LE((const unsigned char *) state + i * 8U);\n    }\n\n    keccakf_12_rounds(st);\n\n    for (i = 0U; i < 25U; i++) {\n        STORE64_LE((unsigned char *) state + i * 8U, st[i]);\n    }\n}\n\nvoid\nkeccak1600_armsha3_init(void *state)\n{\n    memset(state, 0, KECCAK1600_STATEBYTES);\n}\n\nvoid\nkeccak1600_armsha3_xor_bytes(void *state, const unsigned char *data, size_t offset, size_t length)\n{\n    unsigned char *st = (unsigned char *) state;\n    size_t         i;\n\n    for (i = 0U; i < length; i++) {\n        st[offset + i] ^= data[i];\n    }\n}\n\nvoid\nkeccak1600_armsha3_extract_bytes(const void *state, unsigned char *data, size_t offset, size_t length)\n{\n    const unsigned char *st = (const unsigned char *) state;\n\n    memcpy(data, st + offset, length);\n}\n\n#ifdef __clang__\n# pragma clang attribute pop\n#endif\n\n#endif /* __ARM_FEATURE_SHA3 */\n"
  },
  {
    "path": "src/libsodium/crypto_core/keccak1600/armsha3/keccak1600_armsha3.h",
    "content": "#ifndef keccak1600_armsha3_H\n#define keccak1600_armsha3_H\n\n#include <stddef.h>\n\n#include \"private/quirks.h\"\n\nvoid keccak1600_armsha3_init(void *state);\n\nvoid keccak1600_armsha3_xor_bytes(void *state, const unsigned char *bytes,\n                                  size_t offset, size_t length);\n\nvoid keccak1600_armsha3_extract_bytes(const void *state, unsigned char *bytes,\n                                      size_t offset, size_t length);\n\nvoid keccak1600_armsha3_permute_24(void *state);\n\nvoid keccak1600_armsha3_permute_12(void *state);\n\n#endif /* keccak1600_armsha3_H */\n"
  },
  {
    "path": "src/libsodium/crypto_core/keccak1600/keccak1600.c",
    "content": "#include \"crypto_core_keccak1600.h\"\n#include \"ref/keccak1600_ref.h\"\n\n#ifdef __ARM_FEATURE_SHA3\n# include \"armsha3/keccak1600_armsha3.h\"\n# define keccak1600_init          keccak1600_armsha3_init\n# define keccak1600_xor_bytes     keccak1600_armsha3_xor_bytes\n# define keccak1600_extract_bytes keccak1600_armsha3_extract_bytes\n# define keccak1600_permute_24    keccak1600_armsha3_permute_24\n# define keccak1600_permute_12    keccak1600_armsha3_permute_12\n#else\n# define keccak1600_init          keccak1600_ref_init\n# define keccak1600_xor_bytes     keccak1600_ref_xor_bytes\n# define keccak1600_extract_bytes keccak1600_ref_extract_bytes\n# define keccak1600_permute_24    keccak1600_ref_permute_24\n# define keccak1600_permute_12    keccak1600_ref_permute_12\n#endif\n\nsize_t\ncrypto_core_keccak1600_statebytes(void)\n{\n    return sizeof(crypto_core_keccak1600_state);\n}\n\nvoid\ncrypto_core_keccak1600_init(crypto_core_keccak1600_state *state)\n{\n    keccak1600_init(state->opaque);\n}\n\nvoid\ncrypto_core_keccak1600_xor_bytes(crypto_core_keccak1600_state *state,\n                                 const unsigned char *bytes, size_t offset,\n                                 size_t length)\n{\n    keccak1600_xor_bytes(state->opaque, bytes, offset, length);\n}\n\nvoid\ncrypto_core_keccak1600_extract_bytes(const crypto_core_keccak1600_state *state,\n                                     unsigned char *bytes, size_t offset,\n                                     size_t length)\n{\n    keccak1600_extract_bytes(state->opaque, bytes, offset, length);\n}\n\nvoid\ncrypto_core_keccak1600_permute_24(crypto_core_keccak1600_state *state)\n{\n    keccak1600_permute_24(state->opaque);\n}\n\nvoid\ncrypto_core_keccak1600_permute_12(crypto_core_keccak1600_state *state)\n{\n    keccak1600_permute_12(state->opaque);\n}\n"
  },
  {
    "path": "src/libsodium/crypto_core/keccak1600/ref/keccak1600_ref.c",
    "content": "#include <stdint.h>\n#include <string.h>\n\n#include \"keccak1600_ref.h\"\n#include \"private/common.h\"\n\n#define KECCAK1600_STATEBYTES 200\n\nstatic const uint64_t keccak_round_constants[24] = {\n    0x0000000000000001ULL, 0x0000000000008082ULL, 0x800000000000808aULL, 0x8000000080008000ULL,\n    0x000000000000808bULL, 0x0000000080000001ULL, 0x8000000080008081ULL, 0x8000000000008009ULL,\n    0x000000000000008aULL, 0x0000000000000088ULL, 0x0000000080008009ULL, 0x000000008000000aULL,\n    0x000000008000808bULL, 0x800000000000008bULL, 0x8000000000008089ULL, 0x8000000000008003ULL,\n    0x8000000000008002ULL, 0x8000000000000080ULL, 0x000000000000800aULL, 0x800000008000000aULL,\n    0x8000000080008081ULL, 0x8000000000008080ULL, 0x0000000080000001ULL, 0x8000000080008008ULL\n};\n\n#define KECCAK_DECLARE_STATE          \\\n    uint64_t Aba, Abe, Abi, Abo, Abu; \\\n    uint64_t Aga, Age, Agi, Ago, Agu; \\\n    uint64_t Aka, Ake, Aki, Ako, Aku; \\\n    uint64_t Ama, Ame, Ami, Amo, Amu; \\\n    uint64_t Asa, Ase, Asi, Aso, Asu; \\\n    uint64_t Bba, Bbe, Bbi, Bbo, Bbu; \\\n    uint64_t Bga, Bge, Bgi, Bgo, Bgu; \\\n    uint64_t Bka, Bke, Bki, Bko, Bku; \\\n    uint64_t Bma, Bme, Bmi, Bmo, Bmu; \\\n    uint64_t Bsa, Bse, Bsi, Bso, Bsu; \\\n    uint64_t Ca, Ce, Ci, Co, Cu;      \\\n    uint64_t Da, De, Di, Do, Du;      \\\n    uint64_t Eba, Ebe, Ebi, Ebo, Ebu; \\\n    uint64_t Ega, Ege, Egi, Ego, Egu; \\\n    uint64_t Eka, Eke, Eki, Eko, Eku; \\\n    uint64_t Ema, Eme, Emi, Emo, Emu; \\\n    uint64_t Esa, Ese, Esi, Eso, Esu\n\n#define KECCAK_PREPARE_THETA          \\\n    Ca = Aba ^ Aga ^ Aka ^ Ama ^ Asa; \\\n    Ce = Abe ^ Age ^ Ake ^ Ame ^ Ase; \\\n    Ci = Abi ^ Agi ^ Aki ^ Ami ^ Asi; \\\n    Co = Abo ^ Ago ^ Ako ^ Amo ^ Aso; \\\n    Cu = Abu ^ Agu ^ Aku ^ Amu ^ Asu\n\n#define KECCAK_THETA_RHO_PI_CHI_IOTA_PRE(round_idx, A, E) \\\n    Da = Cu ^ ROTL64(Ce, 1);                              \\\n    De = Ca ^ ROTL64(Ci, 1);                              \\\n    Di = Ce ^ ROTL64(Co, 1);                              \\\n    Do = Ci ^ ROTL64(Cu, 1);                              \\\n    Du = Co ^ ROTL64(Ca, 1);                              \\\n                                                          \\\n    A##ba ^= Da;                                          \\\n    Bba = A##ba;                                          \\\n    A##ge ^= De;                                          \\\n    Bbe = ROTL64(A##ge, 44);                              \\\n    A##ki ^= Di;                                          \\\n    Bbi = ROTL64(A##ki, 43);                              \\\n    A##mo ^= Do;                                          \\\n    Bbo = ROTL64(A##mo, 21);                              \\\n    A##su ^= Du;                                          \\\n    Bbu   = ROTL64(A##su, 14);                            \\\n    E##ba = Bba ^ ((~Bbe) & Bbi);                         \\\n    E##ba ^= keccak_round_constants[round_idx];           \\\n    Ca    = E##ba;                                        \\\n    E##be = Bbe ^ ((~Bbi) & Bbo);                         \\\n    Ce    = E##be;                                        \\\n    E##bi = Bbi ^ ((~Bbo) & Bbu);                         \\\n    Ci    = E##bi;                                        \\\n    E##bo = Bbo ^ ((~Bbu) & Bba);                         \\\n    Co    = E##bo;                                        \\\n    E##bu = Bbu ^ ((~Bba) & Bbe);                         \\\n    Cu    = E##bu;                                        \\\n                                                          \\\n    A##bo ^= Do;                                          \\\n    Bga = ROTL64(A##bo, 28);                              \\\n    A##gu ^= Du;                                          \\\n    Bge = ROTL64(A##gu, 20);                              \\\n    A##ka ^= Da;                                          \\\n    Bgi = ROTL64(A##ka, 3);                               \\\n    A##me ^= De;                                          \\\n    Bgo = ROTL64(A##me, 45);                              \\\n    A##si ^= Di;                                          \\\n    Bgu   = ROTL64(A##si, 61);                            \\\n    E##ga = Bga ^ ((~Bge) & Bgi);                         \\\n    Ca ^= E##ga;                                          \\\n    E##ge = Bge ^ ((~Bgi) & Bgo);                         \\\n    Ce ^= E##ge;                                          \\\n    E##gi = Bgi ^ ((~Bgo) & Bgu);                         \\\n    Ci ^= E##gi;                                          \\\n    E##go = Bgo ^ ((~Bgu) & Bga);                         \\\n    Co ^= E##go;                                          \\\n    E##gu = Bgu ^ ((~Bga) & Bge);                         \\\n    Cu ^= E##gu;                                          \\\n                                                          \\\n    A##be ^= De;                                          \\\n    Bka = ROTL64(A##be, 1);                               \\\n    A##gi ^= Di;                                          \\\n    Bke = ROTL64(A##gi, 6);                               \\\n    A##ko ^= Do;                                          \\\n    Bki = ROTL64(A##ko, 25);                              \\\n    A##mu ^= Du;                                          \\\n    Bko = ROTL64(A##mu, 8);                               \\\n    A##sa ^= Da;                                          \\\n    Bku   = ROTL64(A##sa, 18);                            \\\n    E##ka = Bka ^ ((~Bke) & Bki);                         \\\n    Ca ^= E##ka;                                          \\\n    E##ke = Bke ^ ((~Bki) & Bko);                         \\\n    Ce ^= E##ke;                                          \\\n    E##ki = Bki ^ ((~Bko) & Bku);                         \\\n    Ci ^= E##ki;                                          \\\n    E##ko = Bko ^ ((~Bku) & Bka);                         \\\n    Co ^= E##ko;                                          \\\n    E##ku = Bku ^ ((~Bka) & Bke);                         \\\n    Cu ^= E##ku;                                          \\\n                                                          \\\n    A##bu ^= Du;                                          \\\n    Bma = ROTL64(A##bu, 27);                              \\\n    A##ga ^= Da;                                          \\\n    Bme = ROTL64(A##ga, 36);                              \\\n    A##ke ^= De;                                          \\\n    Bmi = ROTL64(A##ke, 10);                              \\\n    A##mi ^= Di;                                          \\\n    Bmo = ROTL64(A##mi, 15);                              \\\n    A##so ^= Do;                                          \\\n    Bmu   = ROTL64(A##so, 56);                            \\\n    E##ma = Bma ^ ((~Bme) & Bmi);                         \\\n    Ca ^= E##ma;                                          \\\n    E##me = Bme ^ ((~Bmi) & Bmo);                         \\\n    Ce ^= E##me;                                          \\\n    E##mi = Bmi ^ ((~Bmo) & Bmu);                         \\\n    Ci ^= E##mi;                                          \\\n    E##mo = Bmo ^ ((~Bmu) & Bma);                         \\\n    Co ^= E##mo;                                          \\\n    E##mu = Bmu ^ ((~Bma) & Bme);                         \\\n    Cu ^= E##mu;                                          \\\n                                                          \\\n    A##bi ^= Di;                                          \\\n    Bsa = ROTL64(A##bi, 62);                              \\\n    A##go ^= Do;                                          \\\n    Bse = ROTL64(A##go, 55);                              \\\n    A##ku ^= Du;                                          \\\n    Bsi = ROTL64(A##ku, 39);                              \\\n    A##ma ^= Da;                                          \\\n    Bso = ROTL64(A##ma, 41);                              \\\n    A##se ^= De;                                          \\\n    Bsu   = ROTL64(A##se, 2);                             \\\n    E##sa = Bsa ^ ((~Bse) & Bsi);                         \\\n    Ca ^= E##sa;                                          \\\n    E##se = Bse ^ ((~Bsi) & Bso);                         \\\n    Ce ^= E##se;                                          \\\n    E##si = Bsi ^ ((~Bso) & Bsu);                         \\\n    Ci ^= E##si;                                          \\\n    E##so = Bso ^ ((~Bsu) & Bsa);                         \\\n    Co ^= E##so;                                          \\\n    E##su = Bsu ^ ((~Bsa) & Bse);                         \\\n    Cu ^= E##su\n\n#define KECCAK_THETA_RHO_PI_CHI_IOTA(round_idx, A, E) \\\n    Da = Cu ^ ROTL64(Ce, 1);                          \\\n    De = Ca ^ ROTL64(Ci, 1);                          \\\n    Di = Ce ^ ROTL64(Co, 1);                          \\\n    Do = Ci ^ ROTL64(Cu, 1);                          \\\n    Du = Co ^ ROTL64(Ca, 1);                          \\\n                                                      \\\n    A##ba ^= Da;                                      \\\n    Bba = A##ba;                                      \\\n    A##ge ^= De;                                      \\\n    Bbe = ROTL64(A##ge, 44);                          \\\n    A##ki ^= Di;                                      \\\n    Bbi = ROTL64(A##ki, 43);                          \\\n    A##mo ^= Do;                                      \\\n    Bbo = ROTL64(A##mo, 21);                          \\\n    A##su ^= Du;                                      \\\n    Bbu   = ROTL64(A##su, 14);                        \\\n    E##ba = Bba ^ ((~Bbe) & Bbi);                     \\\n    E##ba ^= keccak_round_constants[round_idx];       \\\n    E##be = Bbe ^ ((~Bbi) & Bbo);                     \\\n    E##bi = Bbi ^ ((~Bbo) & Bbu);                     \\\n    E##bo = Bbo ^ ((~Bbu) & Bba);                     \\\n    E##bu = Bbu ^ ((~Bba) & Bbe);                     \\\n                                                      \\\n    A##bo ^= Do;                                      \\\n    Bga = ROTL64(A##bo, 28);                          \\\n    A##gu ^= Du;                                      \\\n    Bge = ROTL64(A##gu, 20);                          \\\n    A##ka ^= Da;                                      \\\n    Bgi = ROTL64(A##ka, 3);                           \\\n    A##me ^= De;                                      \\\n    Bgo = ROTL64(A##me, 45);                          \\\n    A##si ^= Di;                                      \\\n    Bgu   = ROTL64(A##si, 61);                        \\\n    E##ga = Bga ^ ((~Bge) & Bgi);                     \\\n    E##ge = Bge ^ ((~Bgi) & Bgo);                     \\\n    E##gi = Bgi ^ ((~Bgo) & Bgu);                     \\\n    E##go = Bgo ^ ((~Bgu) & Bga);                     \\\n    E##gu = Bgu ^ ((~Bga) & Bge);                     \\\n                                                      \\\n    A##be ^= De;                                      \\\n    Bka = ROTL64(A##be, 1);                           \\\n    A##gi ^= Di;                                      \\\n    Bke = ROTL64(A##gi, 6);                           \\\n    A##ko ^= Do;                                      \\\n    Bki = ROTL64(A##ko, 25);                          \\\n    A##mu ^= Du;                                      \\\n    Bko = ROTL64(A##mu, 8);                           \\\n    A##sa ^= Da;                                      \\\n    Bku   = ROTL64(A##sa, 18);                        \\\n    E##ka = Bka ^ ((~Bke) & Bki);                     \\\n    E##ke = Bke ^ ((~Bki) & Bko);                     \\\n    E##ki = Bki ^ ((~Bko) & Bku);                     \\\n    E##ko = Bko ^ ((~Bku) & Bka);                     \\\n    E##ku = Bku ^ ((~Bka) & Bke);                     \\\n                                                      \\\n    A##bu ^= Du;                                      \\\n    Bma = ROTL64(A##bu, 27);                          \\\n    A##ga ^= Da;                                      \\\n    Bme = ROTL64(A##ga, 36);                          \\\n    A##ke ^= De;                                      \\\n    Bmi = ROTL64(A##ke, 10);                          \\\n    A##mi ^= Di;                                      \\\n    Bmo = ROTL64(A##mi, 15);                          \\\n    A##so ^= Do;                                      \\\n    Bmu   = ROTL64(A##so, 56);                        \\\n    E##ma = Bma ^ ((~Bme) & Bmi);                     \\\n    E##me = Bme ^ ((~Bmi) & Bmo);                     \\\n    E##mi = Bmi ^ ((~Bmo) & Bmu);                     \\\n    E##mo = Bmo ^ ((~Bmu) & Bma);                     \\\n    E##mu = Bmu ^ ((~Bma) & Bme);                     \\\n                                                      \\\n    A##bi ^= Di;                                      \\\n    Bsa = ROTL64(A##bi, 62);                          \\\n    A##go ^= Do;                                      \\\n    Bse = ROTL64(A##go, 55);                          \\\n    A##ku ^= Du;                                      \\\n    Bsi = ROTL64(A##ku, 39);                          \\\n    A##ma ^= Da;                                      \\\n    Bso = ROTL64(A##ma, 41);                          \\\n    A##se ^= De;                                      \\\n    Bsu   = ROTL64(A##se, 2);                         \\\n    E##sa = Bsa ^ ((~Bse) & Bsi);                     \\\n    E##se = Bse ^ ((~Bsi) & Bso);                     \\\n    E##si = Bsi ^ ((~Bso) & Bsu);                     \\\n    E##so = Bso ^ ((~Bsu) & Bsa);                     \\\n    E##su = Bsu ^ ((~Bsa) & Bse)\n\n#define KECCAK_COPY_FROM_STATE(prefix, src) \\\n    prefix##ba = (src)[0];                  \\\n    prefix##be = (src)[1];                  \\\n    prefix##bi = (src)[2];                  \\\n    prefix##bo = (src)[3];                  \\\n    prefix##bu = (src)[4];                  \\\n    prefix##ga = (src)[5];                  \\\n    prefix##ge = (src)[6];                  \\\n    prefix##gi = (src)[7];                  \\\n    prefix##go = (src)[8];                  \\\n    prefix##gu = (src)[9];                  \\\n    prefix##ka = (src)[10];                 \\\n    prefix##ke = (src)[11];                 \\\n    prefix##ki = (src)[12];                 \\\n    prefix##ko = (src)[13];                 \\\n    prefix##ku = (src)[14];                 \\\n    prefix##ma = (src)[15];                 \\\n    prefix##me = (src)[16];                 \\\n    prefix##mi = (src)[17];                 \\\n    prefix##mo = (src)[18];                 \\\n    prefix##mu = (src)[19];                 \\\n    prefix##sa = (src)[20];                 \\\n    prefix##se = (src)[21];                 \\\n    prefix##si = (src)[22];                 \\\n    prefix##so = (src)[23];                 \\\n    prefix##su = (src)[24]\n\n#define KECCAK_COPY_TO_STATE(dst, prefix) \\\n    (dst)[0]  = prefix##ba;               \\\n    (dst)[1]  = prefix##be;               \\\n    (dst)[2]  = prefix##bi;               \\\n    (dst)[3]  = prefix##bo;               \\\n    (dst)[4]  = prefix##bu;               \\\n    (dst)[5]  = prefix##ga;               \\\n    (dst)[6]  = prefix##ge;               \\\n    (dst)[7]  = prefix##gi;               \\\n    (dst)[8]  = prefix##go;               \\\n    (dst)[9]  = prefix##gu;               \\\n    (dst)[10] = prefix##ka;               \\\n    (dst)[11] = prefix##ke;               \\\n    (dst)[12] = prefix##ki;               \\\n    (dst)[13] = prefix##ko;               \\\n    (dst)[14] = prefix##ku;               \\\n    (dst)[15] = prefix##ma;               \\\n    (dst)[16] = prefix##me;               \\\n    (dst)[17] = prefix##mi;               \\\n    (dst)[18] = prefix##mo;               \\\n    (dst)[19] = prefix##mu;               \\\n    (dst)[20] = prefix##sa;               \\\n    (dst)[21] = prefix##se;               \\\n    (dst)[22] = prefix##si;               \\\n    (dst)[23] = prefix##so;               \\\n    (dst)[24] = prefix##su\n\n#define KECCAK_COPY_STATE(prefix_dst, prefix_src) \\\n    prefix_dst##ba = prefix_src##ba;              \\\n    prefix_dst##be = prefix_src##be;              \\\n    prefix_dst##bi = prefix_src##bi;              \\\n    prefix_dst##bo = prefix_src##bo;              \\\n    prefix_dst##bu = prefix_src##bu;              \\\n    prefix_dst##ga = prefix_src##ga;              \\\n    prefix_dst##ge = prefix_src##ge;              \\\n    prefix_dst##gi = prefix_src##gi;              \\\n    prefix_dst##go = prefix_src##go;              \\\n    prefix_dst##gu = prefix_src##gu;              \\\n    prefix_dst##ka = prefix_src##ka;              \\\n    prefix_dst##ke = prefix_src##ke;              \\\n    prefix_dst##ki = prefix_src##ki;              \\\n    prefix_dst##ko = prefix_src##ko;              \\\n    prefix_dst##ku = prefix_src##ku;              \\\n    prefix_dst##ma = prefix_src##ma;              \\\n    prefix_dst##me = prefix_src##me;              \\\n    prefix_dst##mi = prefix_src##mi;              \\\n    prefix_dst##mo = prefix_src##mo;              \\\n    prefix_dst##mu = prefix_src##mu;              \\\n    prefix_dst##sa = prefix_src##sa;              \\\n    prefix_dst##se = prefix_src##se;              \\\n    prefix_dst##si = prefix_src##si;              \\\n    prefix_dst##so = prefix_src##so;              \\\n    prefix_dst##su = prefix_src##su\n\nstatic void\nkeccakf_24_rounds(uint64_t st[25])\n{\n    uint64_t *state = st;\n\n    KECCAK_DECLARE_STATE;\n\n    KECCAK_COPY_FROM_STATE(A, state);\n    KECCAK_PREPARE_THETA;\n\n    KECCAK_THETA_RHO_PI_CHI_IOTA_PRE(0, A, E);\n    KECCAK_THETA_RHO_PI_CHI_IOTA_PRE(1, E, A);\n    KECCAK_THETA_RHO_PI_CHI_IOTA_PRE(2, A, E);\n    KECCAK_THETA_RHO_PI_CHI_IOTA_PRE(3, E, A);\n    KECCAK_THETA_RHO_PI_CHI_IOTA_PRE(4, A, E);\n    KECCAK_THETA_RHO_PI_CHI_IOTA_PRE(5, E, A);\n    KECCAK_THETA_RHO_PI_CHI_IOTA_PRE(6, A, E);\n    KECCAK_THETA_RHO_PI_CHI_IOTA_PRE(7, E, A);\n    KECCAK_THETA_RHO_PI_CHI_IOTA_PRE(8, A, E);\n    KECCAK_THETA_RHO_PI_CHI_IOTA_PRE(9, E, A);\n    KECCAK_THETA_RHO_PI_CHI_IOTA_PRE(10, A, E);\n    KECCAK_THETA_RHO_PI_CHI_IOTA_PRE(11, E, A);\n    KECCAK_THETA_RHO_PI_CHI_IOTA_PRE(12, A, E);\n    KECCAK_THETA_RHO_PI_CHI_IOTA_PRE(13, E, A);\n    KECCAK_THETA_RHO_PI_CHI_IOTA_PRE(14, A, E);\n    KECCAK_THETA_RHO_PI_CHI_IOTA_PRE(15, E, A);\n    KECCAK_THETA_RHO_PI_CHI_IOTA_PRE(16, A, E);\n    KECCAK_THETA_RHO_PI_CHI_IOTA_PRE(17, E, A);\n    KECCAK_THETA_RHO_PI_CHI_IOTA_PRE(18, A, E);\n    KECCAK_THETA_RHO_PI_CHI_IOTA_PRE(19, E, A);\n    KECCAK_THETA_RHO_PI_CHI_IOTA_PRE(20, A, E);\n    KECCAK_THETA_RHO_PI_CHI_IOTA_PRE(21, E, A);\n    KECCAK_THETA_RHO_PI_CHI_IOTA_PRE(22, A, E);\n    KECCAK_THETA_RHO_PI_CHI_IOTA(23, E, A);\n\n    KECCAK_COPY_TO_STATE(state, A);\n}\n\nstatic void\nkeccakf_12_rounds(uint64_t st[25])\n{\n    uint64_t *state = st;\n\n    KECCAK_DECLARE_STATE;\n\n    KECCAK_COPY_FROM_STATE(A, state);\n    KECCAK_PREPARE_THETA;\n\n    KECCAK_THETA_RHO_PI_CHI_IOTA_PRE(12, A, E);\n    KECCAK_THETA_RHO_PI_CHI_IOTA_PRE(13, E, A);\n    KECCAK_THETA_RHO_PI_CHI_IOTA_PRE(14, A, E);\n    KECCAK_THETA_RHO_PI_CHI_IOTA_PRE(15, E, A);\n    KECCAK_THETA_RHO_PI_CHI_IOTA_PRE(16, A, E);\n    KECCAK_THETA_RHO_PI_CHI_IOTA_PRE(17, E, A);\n    KECCAK_THETA_RHO_PI_CHI_IOTA_PRE(18, A, E);\n    KECCAK_THETA_RHO_PI_CHI_IOTA_PRE(19, E, A);\n    KECCAK_THETA_RHO_PI_CHI_IOTA_PRE(20, A, E);\n    KECCAK_THETA_RHO_PI_CHI_IOTA_PRE(21, E, A);\n    KECCAK_THETA_RHO_PI_CHI_IOTA_PRE(22, A, E);\n    KECCAK_THETA_RHO_PI_CHI_IOTA(23, E, A);\n\n    KECCAK_COPY_TO_STATE(state, A);\n}\n\nvoid\nkeccak1600_ref_permute_24(void *state)\n{\n    uint64_t     st[25];\n    unsigned int i;\n\n    for (i = 0U; i < 25U; i++) {\n        st[i] = LOAD64_LE((const unsigned char *) state + i * 8U);\n    }\n\n    keccakf_24_rounds(st);\n\n    for (i = 0U; i < 25U; i++) {\n        STORE64_LE((unsigned char *) state + i * 8U, st[i]);\n    }\n}\n\nvoid\nkeccak1600_ref_permute_12(void *state)\n{\n    uint64_t     st[25];\n    unsigned int i;\n\n    for (i = 0U; i < 25U; i++) {\n        st[i] = LOAD64_LE((const unsigned char *) state + i * 8U);\n    }\n\n    keccakf_12_rounds(st);\n\n    for (i = 0U; i < 25U; i++) {\n        STORE64_LE((unsigned char *) state + i * 8U, st[i]);\n    }\n}\n\nvoid\nkeccak1600_ref_init(void *state)\n{\n    memset(state, 0, KECCAK1600_STATEBYTES);\n}\n\nvoid\nkeccak1600_ref_xor_bytes(void *state, const unsigned char *data, size_t offset, size_t length)\n{\n    unsigned char *st = (unsigned char *) state;\n    size_t         i;\n\n    for (i = 0U; i < length; i++) {\n        st[offset + i] ^= data[i];\n    }\n}\n\nvoid\nkeccak1600_ref_extract_bytes(const void *state, unsigned char *data, size_t offset, size_t length)\n{\n    const unsigned char *st = (const unsigned char *) state;\n\n    memcpy(data, st + offset, length);\n}\n"
  },
  {
    "path": "src/libsodium/crypto_core/keccak1600/ref/keccak1600_ref.h",
    "content": "#ifndef keccak1600_ref_H\n#define keccak1600_ref_H\n\n#include <stddef.h>\n\n#include \"private/quirks.h\"\n\nvoid keccak1600_ref_init(void *state);\n\nvoid keccak1600_ref_xor_bytes(void *state, const unsigned char *bytes,\n                              size_t offset, size_t length);\n\nvoid keccak1600_ref_extract_bytes(const void *state, unsigned char *bytes,\n                                  size_t offset, size_t length);\n\nvoid keccak1600_ref_permute_24(void *state);\n\nvoid keccak1600_ref_permute_12(void *state);\n\n#endif /* keccak1600_ref_H */\n"
  },
  {
    "path": "src/libsodium/crypto_core/salsa/ref/core_salsa_ref.c",
    "content": "\n#include <stdint.h>\n#include <stdlib.h>\n\n#include \"crypto_core_salsa20.h\"\n#include \"crypto_core_salsa2012.h\"\n#include \"crypto_core_salsa208.h\"\n#include \"private/common.h\"\n\nstatic void\ncrypto_core_salsa(unsigned char *out, const unsigned char *in,\n                  const unsigned char *k, const unsigned char *c,\n                  const int rounds)\n{\n    uint32_t x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14,\n        x15;\n    uint32_t j0, j1, j2, j3, j4, j5, j6, j7, j8, j9, j10, j11, j12, j13, j14,\n        j15;\n    int i;\n\n    j0  = x0  = 0x61707865;\n    j5  = x5  = 0x3320646e;\n    j10 = x10 = 0x79622d32;\n    j15 = x15 = 0x6b206574;\n    if (c != NULL) {\n        j0  = x0  = LOAD32_LE(c + 0);\n        j5  = x5  = LOAD32_LE(c + 4);\n        j10 = x10 = LOAD32_LE(c + 8);\n        j15 = x15 = LOAD32_LE(c + 12);\n    }\n    j1  = x1  = LOAD32_LE(k + 0);\n    j2  = x2  = LOAD32_LE(k + 4);\n    j3  = x3  = LOAD32_LE(k + 8);\n    j4  = x4  = LOAD32_LE(k + 12);\n    j11 = x11 = LOAD32_LE(k + 16);\n    j12 = x12 = LOAD32_LE(k + 20);\n    j13 = x13 = LOAD32_LE(k + 24);\n    j14 = x14 = LOAD32_LE(k + 28);\n\n    j6  = x6  = LOAD32_LE(in + 0);\n    j7  = x7  = LOAD32_LE(in + 4);\n    j8  = x8  = LOAD32_LE(in + 8);\n    j9  = x9  = LOAD32_LE(in + 12);\n\n    for (i = 0; i < rounds; i += 2) {\n        x4  ^= ROTL32(x0  + x12, 7);\n        x8  ^= ROTL32(x4  + x0, 9);\n        x12 ^= ROTL32(x8  + x4, 13);\n        x0  ^= ROTL32(x12 + x8, 18);\n        x9  ^= ROTL32(x5  + x1, 7);\n        x13 ^= ROTL32(x9  + x5, 9);\n        x1  ^= ROTL32(x13 + x9, 13);\n        x5  ^= ROTL32(x1  + x13, 18);\n        x14 ^= ROTL32(x10 + x6, 7);\n        x2  ^= ROTL32(x14 + x10, 9);\n        x6  ^= ROTL32(x2  + x14, 13);\n        x10 ^= ROTL32(x6  + x2, 18);\n        x3  ^= ROTL32(x15 + x11, 7);\n        x7  ^= ROTL32(x3  + x15, 9);\n        x11 ^= ROTL32(x7  + x3, 13);\n        x15 ^= ROTL32(x11 + x7, 18);\n        x1  ^= ROTL32(x0  + x3, 7);\n        x2  ^= ROTL32(x1  + x0, 9);\n        x3  ^= ROTL32(x2  + x1, 13);\n        x0  ^= ROTL32(x3  + x2, 18);\n        x6  ^= ROTL32(x5  + x4, 7);\n        x7  ^= ROTL32(x6  + x5, 9);\n        x4  ^= ROTL32(x7  + x6, 13);\n        x5  ^= ROTL32(x4  + x7, 18);\n        x11 ^= ROTL32(x10 + x9, 7);\n        x8  ^= ROTL32(x11 + x10, 9);\n        x9  ^= ROTL32(x8  + x11, 13);\n        x10 ^= ROTL32(x9  + x8, 18);\n        x12 ^= ROTL32(x15 + x14, 7);\n        x13 ^= ROTL32(x12 + x15, 9);\n        x14 ^= ROTL32(x13 + x12, 13);\n        x15 ^= ROTL32(x14 + x13, 18);\n    }\n    STORE32_LE(out + 0,  x0  + j0);\n    STORE32_LE(out + 4,  x1  + j1);\n    STORE32_LE(out + 8,  x2  + j2);\n    STORE32_LE(out + 12, x3  + j3);\n    STORE32_LE(out + 16, x4  + j4);\n    STORE32_LE(out + 20, x5  + j5);\n    STORE32_LE(out + 24, x6  + j6);\n    STORE32_LE(out + 28, x7  + j7);\n    STORE32_LE(out + 32, x8  + j8);\n    STORE32_LE(out + 36, x9  + j9);\n    STORE32_LE(out + 40, x10 + j10);\n    STORE32_LE(out + 44, x11 + j11);\n    STORE32_LE(out + 48, x12 + j12);\n    STORE32_LE(out + 52, x13 + j13);\n    STORE32_LE(out + 56, x14 + j14);\n    STORE32_LE(out + 60, x15 + j15);\n}\n\nint\ncrypto_core_salsa20(unsigned char *out, const unsigned char *in,\n                    const unsigned char *k, const unsigned char *c)\n{\n    crypto_core_salsa(out, in, k, c, 20);\n    return 0;\n}\n\nsize_t\ncrypto_core_salsa20_outputbytes(void)\n{\n    return crypto_core_salsa20_OUTPUTBYTES;\n}\n\nsize_t\ncrypto_core_salsa20_inputbytes(void)\n{\n    return crypto_core_salsa20_INPUTBYTES;\n}\n\nsize_t\ncrypto_core_salsa20_keybytes(void)\n{\n    return crypto_core_salsa20_KEYBYTES;\n}\n\nsize_t\ncrypto_core_salsa20_constbytes(void)\n{\n    return crypto_core_salsa20_CONSTBYTES;\n}\n\n#ifndef MINIMAL\n/* LCOV_EXCL_START */\nint\ncrypto_core_salsa2012(unsigned char *out, const unsigned char *in,\n                      const unsigned char *k, const unsigned char *c)\n{\n    crypto_core_salsa(out, in, k, c, 12);\n    return 0;\n}\n\nsize_t\ncrypto_core_salsa2012_outputbytes(void)\n{\n    return crypto_core_salsa2012_OUTPUTBYTES;\n}\n\nsize_t\ncrypto_core_salsa2012_inputbytes(void)\n{\n    return crypto_core_salsa2012_INPUTBYTES;\n}\n\nsize_t\ncrypto_core_salsa2012_keybytes(void)\n{\n    return crypto_core_salsa2012_KEYBYTES;\n}\n\nsize_t\ncrypto_core_salsa2012_constbytes(void)\n{\n    return crypto_core_salsa2012_CONSTBYTES;\n}\n\nint\ncrypto_core_salsa208(unsigned char *out, const unsigned char *in,\n                     const unsigned char *k, const unsigned char *c)\n{\n    crypto_core_salsa(out, in, k, c, 8);\n    return 0;\n}\n\nsize_t\ncrypto_core_salsa208_outputbytes(void)\n{\n    return crypto_core_salsa208_OUTPUTBYTES;\n}\n\nsize_t\ncrypto_core_salsa208_inputbytes(void)\n{\n    return crypto_core_salsa208_INPUTBYTES;\n}\n\nsize_t\ncrypto_core_salsa208_keybytes(void)\n{\n    return crypto_core_salsa208_KEYBYTES;\n}\n\nsize_t\ncrypto_core_salsa208_constbytes(void)\n{\n    return crypto_core_salsa208_CONSTBYTES;\n}\n/* LCOV_EXCL_END */\n#endif\n"
  },
  {
    "path": "src/libsodium/crypto_core/softaes/softaes.c",
    "content": "#include <stddef.h>\n#include <stdint.h>\n#include <stdlib.h>\n#include <string.h>\n\n#include \"private/common.h\"\n#include \"private/softaes.h\"\n\n#if defined(__wasm__) && !defined(FAVOR_PERFORMANCE)\n#    define FAVOR_PERFORMANCE\n#endif\n\nstatic const uint8_t SBOX[256] = {\n    0x63, 0x7c, 0x77, 0x7b, 0xf2, 0x6b, 0x6f, 0xc5, 0x30, 0x01, 0x67, 0x2b, 0xfe, 0xd7, 0xab, 0x76,\n    0xca, 0x82, 0xc9, 0x7d, 0xfa, 0x59, 0x47, 0xf0, 0xad, 0xd4, 0xa2, 0xaf, 0x9c, 0xa4, 0x72, 0xc0,\n    0xb7, 0xfd, 0x93, 0x26, 0x36, 0x3f, 0xf7, 0xcc, 0x34, 0xa5, 0xe5, 0xf1, 0x71, 0xd8, 0x31, 0x15,\n    0x04, 0xc7, 0x23, 0xc3, 0x18, 0x96, 0x05, 0x9a, 0x07, 0x12, 0x80, 0xe2, 0xeb, 0x27, 0xb2, 0x75,\n    0x09, 0x83, 0x2c, 0x1a, 0x1b, 0x6e, 0x5a, 0xa0, 0x52, 0x3b, 0xd6, 0xb3, 0x29, 0xe3, 0x2f, 0x84,\n    0x53, 0xd1, 0x00, 0xed, 0x20, 0xfc, 0xb1, 0x5b, 0x6a, 0xcb, 0xbe, 0x39, 0x4a, 0x4c, 0x58, 0xcf,\n    0xd0, 0xef, 0xaa, 0xfb, 0x43, 0x4d, 0x33, 0x85, 0x45, 0xf9, 0x02, 0x7f, 0x50, 0x3c, 0x9f, 0xa8,\n    0x51, 0xa3, 0x40, 0x8f, 0x92, 0x9d, 0x38, 0xf5, 0xbc, 0xb6, 0xda, 0x21, 0x10, 0xff, 0xf3, 0xd2,\n    0xcd, 0x0c, 0x13, 0xec, 0x5f, 0x97, 0x44, 0x17, 0xc4, 0xa7, 0x7e, 0x3d, 0x64, 0x5d, 0x19, 0x73,\n    0x60, 0x81, 0x4f, 0xdc, 0x22, 0x2a, 0x90, 0x88, 0x46, 0xee, 0xb8, 0x14, 0xde, 0x5e, 0x0b, 0xdb,\n    0xe0, 0x32, 0x3a, 0x0a, 0x49, 0x06, 0x24, 0x5c, 0xc2, 0xd3, 0xac, 0x62, 0x91, 0x95, 0xe4, 0x79,\n    0xe7, 0xc8, 0x37, 0x6d, 0x8d, 0xd5, 0x4e, 0xa9, 0x6c, 0x56, 0xf4, 0xea, 0x65, 0x7a, 0xae, 0x08,\n    0xba, 0x78, 0x25, 0x2e, 0x1c, 0xa6, 0xb4, 0xc6, 0xe8, 0xdd, 0x74, 0x1f, 0x4b, 0xbd, 0x8b, 0x8a,\n    0x70, 0x3e, 0xb5, 0x66, 0x48, 0x03, 0xf6, 0x0e, 0x61, 0x35, 0x57, 0xb9, 0x86, 0xc1, 0x1d, 0x9e,\n    0xe1, 0xf8, 0x98, 0x11, 0x69, 0xd9, 0x8e, 0x94, 0x9b, 0x1e, 0x87, 0xe9, 0xce, 0x55, 0x28, 0xdf,\n    0x8c, 0xa1, 0x89, 0x0d, 0xbf, 0xe6, 0x42, 0x68, 0x41, 0x99, 0x2d, 0x0f, 0xb0, 0x54, 0xbb, 0x16\n};\n\nstatic const uint8_t RCON[11] = {\n    0x00, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x1b, 0x36\n};\n\nstatic inline uint32_t\nsub_word(uint32_t w)\n{\n    return ((uint32_t) SBOX[(w >> 0) & 0xff] << 0) | ((uint32_t) SBOX[(w >> 8) & 0xff] << 8) |\n           ((uint32_t) SBOX[(w >> 16) & 0xff] << 16) | ((uint32_t) SBOX[(w >> 24) & 0xff] << 24);\n}\n\nstatic inline uint32_t\nrot_word(uint32_t w)\n{\n    return (w >> 8) | (w << 24);\n}\n\nvoid\nsoftaes_expand_key128(SoftAesBlock rkeys[11], const uint8_t key[16])\n{\n    uint32_t w[44];\n    size_t   i;\n\n    w[0] = (uint32_t) key[0] | ((uint32_t) key[1] << 8) | ((uint32_t) key[2] << 16) |\n           ((uint32_t) key[3] << 24);\n    w[1] = (uint32_t) key[4] | ((uint32_t) key[5] << 8) | ((uint32_t) key[6] << 16) |\n           ((uint32_t) key[7] << 24);\n    w[2] = (uint32_t) key[8] | ((uint32_t) key[9] << 8) | ((uint32_t) key[10] << 16) |\n           ((uint32_t) key[11] << 24);\n    w[3] = (uint32_t) key[12] | ((uint32_t) key[13] << 8) | ((uint32_t) key[14] << 16) |\n           ((uint32_t) key[15] << 24);\n\n    for (i = 4; i < 44; i++) {\n        uint32_t temp = w[i - 1];\n        if (i % 4 == 0) {\n            temp = sub_word(rot_word(temp)) ^ ((uint32_t) RCON[i / 4]);\n        }\n        w[i] = w[i - 4] ^ temp;\n    }\n\n    for (i = 0; i < 11; i++) {\n        rkeys[i].w0 = w[i * 4 + 0];\n        rkeys[i].w1 = w[i * 4 + 1];\n        rkeys[i].w2 = w[i * 4 + 2];\n        rkeys[i].w3 = w[i * 4 + 3];\n    }\n}\n\nvoid\nsoftaes_expand_key256(SoftAesBlock rkeys[15], const uint8_t key[32])\n{\n    uint32_t w[60];\n    size_t   i;\n\n    w[0] = (uint32_t) key[0] | ((uint32_t) key[1] << 8) | ((uint32_t) key[2] << 16) |\n           ((uint32_t) key[3] << 24);\n    w[1] = (uint32_t) key[4] | ((uint32_t) key[5] << 8) | ((uint32_t) key[6] << 16) |\n           ((uint32_t) key[7] << 24);\n    w[2] = (uint32_t) key[8] | ((uint32_t) key[9] << 8) | ((uint32_t) key[10] << 16) |\n           ((uint32_t) key[11] << 24);\n    w[3] = (uint32_t) key[12] | ((uint32_t) key[13] << 8) | ((uint32_t) key[14] << 16) |\n           ((uint32_t) key[15] << 24);\n    w[4] = (uint32_t) key[16] | ((uint32_t) key[17] << 8) | ((uint32_t) key[18] << 16) |\n           ((uint32_t) key[19] << 24);\n    w[5] = (uint32_t) key[20] | ((uint32_t) key[21] << 8) | ((uint32_t) key[22] << 16) |\n           ((uint32_t) key[23] << 24);\n    w[6] = (uint32_t) key[24] | ((uint32_t) key[25] << 8) | ((uint32_t) key[26] << 16) |\n           ((uint32_t) key[27] << 24);\n    w[7] = (uint32_t) key[28] | ((uint32_t) key[29] << 8) | ((uint32_t) key[30] << 16) |\n           ((uint32_t) key[31] << 24);\n\n    for (i = 8; i < 60; i++) {\n        uint32_t temp = w[i - 1];\n        if (i % 8 == 0) {\n            temp = sub_word(rot_word(temp)) ^ ((uint32_t) RCON[i / 8]);\n        } else if (i % 8 == 4) {\n            temp = sub_word(temp);\n        }\n        w[i] = w[i - 8] ^ temp;\n    }\n\n    for (i = 0; i < 15; i++) {\n        rkeys[i].w0 = w[i * 4 + 0];\n        rkeys[i].w1 = w[i * 4 + 1];\n        rkeys[i].w2 = w[i * 4 + 2];\n        rkeys[i].w3 = w[i * 4 + 3];\n    }\n}\n\nstatic inline uint8_t\nxtime(uint8_t a)\n{\n    return (uint8_t) ((a << 1) ^ (((a >> 7) & 1) * 0x1b));\n}\n\nstatic inline uint8_t\ngf_mul_09(uint8_t a)\n{\n    return xtime(xtime(xtime(a))) ^ a;\n}\n\nstatic inline uint8_t\ngf_mul_0b(uint8_t a)\n{\n    return xtime(xtime(xtime(a)) ^ a) ^ a;\n}\n\nstatic inline uint8_t\ngf_mul_0d(uint8_t a)\n{\n    return xtime(xtime(xtime(a) ^ a)) ^ a;\n}\n\nstatic inline uint8_t\ngf_mul_0e(uint8_t a)\n{\n    return xtime(xtime(xtime(a) ^ a) ^ a);\n}\n\nstatic uint32_t\ninv_mix_column(uint32_t col)\n{\n    uint8_t b0 = (uint8_t) col;\n    uint8_t b1 = (uint8_t) (col >> 8);\n    uint8_t b2 = (uint8_t) (col >> 16);\n    uint8_t b3 = (uint8_t) (col >> 24);\n\n    uint8_t r0 = gf_mul_0e(b0) ^ gf_mul_0b(b1) ^ gf_mul_0d(b2) ^ gf_mul_09(b3);\n    uint8_t r1 = gf_mul_09(b0) ^ gf_mul_0e(b1) ^ gf_mul_0b(b2) ^ gf_mul_0d(b3);\n    uint8_t r2 = gf_mul_0d(b0) ^ gf_mul_09(b1) ^ gf_mul_0e(b2) ^ gf_mul_0b(b3);\n    uint8_t r3 = gf_mul_0b(b0) ^ gf_mul_0d(b1) ^ gf_mul_09(b2) ^ gf_mul_0e(b3);\n\n    return (uint32_t) r0 | ((uint32_t) r1 << 8) | ((uint32_t) r2 << 16) | ((uint32_t) r3 << 24);\n}\n\nSoftAesBlock\nsoftaes_inv_mix_columns(const SoftAesBlock block)\n{\n    SoftAesBlock out;\n    out.w0 = inv_mix_column(block.w0);\n    out.w1 = inv_mix_column(block.w1);\n    out.w2 = inv_mix_column(block.w2);\n    out.w3 = inv_mix_column(block.w3);\n    return out;\n}\n\nvoid\nsoftaes_invert_key_schedule128(SoftAesBlock rkeys[11])\n{\n    size_t i;\n\n    for (i = 1; i < 10; i++) {\n        rkeys[i] = softaes_inv_mix_columns(rkeys[i]);\n    }\n}\n\nvoid\nsoftaes_invert_key_schedule256(SoftAesBlock rkeys[15])\n{\n    size_t i;\n\n    for (i = 1; i < 14; i++) {\n        rkeys[i] = softaes_inv_mix_columns(rkeys[i]);\n    }\n}\n\n#ifndef SOFTAES_STRIDE\n#    define SOFTAES_STRIDE 16\n#endif\n\n#ifdef FAVOR_PERFORMANCE\nstatic const uint32_t _aes_lut[1024] = {\n    0xa56363c6, 0x847c7cf8, 0x997777ee, 0x8d7b7bf6, 0x0df2f2ff, 0xbd6b6bd6, 0xb16f6fde, 0x54c5c591,\n    0x50303060, 0x03010102, 0xa96767ce, 0x7d2b2b56, 0x19fefee7, 0x62d7d7b5, 0xe6abab4d, 0x9a7676ec,\n    0x45caca8f, 0x9d82821f, 0x40c9c989, 0x877d7dfa, 0x15fafaef, 0xeb5959b2, 0xc947478e, 0x0bf0f0fb,\n    0xecadad41, 0x67d4d4b3, 0xfda2a25f, 0xeaafaf45, 0xbf9c9c23, 0xf7a4a453, 0x967272e4, 0x5bc0c09b,\n    0xc2b7b775, 0x1cfdfde1, 0xae93933d, 0x6a26264c, 0x5a36366c, 0x413f3f7e, 0x02f7f7f5, 0x4fcccc83,\n    0x5c343468, 0xf4a5a551, 0x34e5e5d1, 0x08f1f1f9, 0x937171e2, 0x73d8d8ab, 0x53313162, 0x3f15152a,\n    0x0c040408, 0x52c7c795, 0x65232346, 0x5ec3c39d, 0x28181830, 0xa1969637, 0x0f05050a, 0xb59a9a2f,\n    0x0907070e, 0x36121224, 0x9b80801b, 0x3de2e2df, 0x26ebebcd, 0x6927274e, 0xcdb2b27f, 0x9f7575ea,\n    0x1b090912, 0x9e83831d, 0x742c2c58, 0x2e1a1a34, 0x2d1b1b36, 0xb26e6edc, 0xee5a5ab4, 0xfba0a05b,\n    0xf65252a4, 0x4d3b3b76, 0x61d6d6b7, 0xceb3b37d, 0x7b292952, 0x3ee3e3dd, 0x712f2f5e, 0x97848413,\n    0xf55353a6, 0x68d1d1b9, 0x00000000, 0x2cededc1, 0x60202040, 0x1ffcfce3, 0xc8b1b179, 0xed5b5bb6,\n    0xbe6a6ad4, 0x46cbcb8d, 0xd9bebe67, 0x4b393972, 0xde4a4a94, 0xd44c4c98, 0xe85858b0, 0x4acfcf85,\n    0x6bd0d0bb, 0x2aefefc5, 0xe5aaaa4f, 0x16fbfbed, 0xc5434386, 0xd74d4d9a, 0x55333366, 0x94858511,\n    0xcf45458a, 0x10f9f9e9, 0x06020204, 0x817f7ffe, 0xf05050a0, 0x443c3c78, 0xba9f9f25, 0xe3a8a84b,\n    0xf35151a2, 0xfea3a35d, 0xc0404080, 0x8a8f8f05, 0xad92923f, 0xbc9d9d21, 0x48383870, 0x04f5f5f1,\n    0xdfbcbc63, 0xc1b6b677, 0x75dadaaf, 0x63212142, 0x30101020, 0x1affffe5, 0x0ef3f3fd, 0x6dd2d2bf,\n    0x4ccdcd81, 0x140c0c18, 0x35131326, 0x2fececc3, 0xe15f5fbe, 0xa2979735, 0xcc444488, 0x3917172e,\n    0x57c4c493, 0xf2a7a755, 0x827e7efc, 0x473d3d7a, 0xac6464c8, 0xe75d5dba, 0x2b191932, 0x957373e6,\n    0xa06060c0, 0x98818119, 0xd14f4f9e, 0x7fdcdca3, 0x66222244, 0x7e2a2a54, 0xab90903b, 0x8388880b,\n    0xca46468c, 0x29eeeec7, 0xd3b8b86b, 0x3c141428, 0x79dedea7, 0xe25e5ebc, 0x1d0b0b16, 0x76dbdbad,\n    0x3be0e0db, 0x56323264, 0x4e3a3a74, 0x1e0a0a14, 0xdb494992, 0x0a06060c, 0x6c242448, 0xe45c5cb8,\n    0x5dc2c29f, 0x6ed3d3bd, 0xefacac43, 0xa66262c4, 0xa8919139, 0xa4959531, 0x37e4e4d3, 0x8b7979f2,\n    0x32e7e7d5, 0x43c8c88b, 0x5937376e, 0xb76d6dda, 0x8c8d8d01, 0x64d5d5b1, 0xd24e4e9c, 0xe0a9a949,\n    0xb46c6cd8, 0xfa5656ac, 0x07f4f4f3, 0x25eaeacf, 0xaf6565ca, 0x8e7a7af4, 0xe9aeae47, 0x18080810,\n    0xd5baba6f, 0x887878f0, 0x6f25254a, 0x722e2e5c, 0x241c1c38, 0xf1a6a657, 0xc7b4b473, 0x51c6c697,\n    0x23e8e8cb, 0x7cdddda1, 0x9c7474e8, 0x211f1f3e, 0xdd4b4b96, 0xdcbdbd61, 0x868b8b0d, 0x858a8a0f,\n    0x907070e0, 0x423e3e7c, 0xc4b5b571, 0xaa6666cc, 0xd8484890, 0x05030306, 0x01f6f6f7, 0x120e0e1c,\n    0xa36161c2, 0x5f35356a, 0xf95757ae, 0xd0b9b969, 0x91868617, 0x58c1c199, 0x271d1d3a, 0xb99e9e27,\n    0x38e1e1d9, 0x13f8f8eb, 0xb398982b, 0x33111122, 0xbb6969d2, 0x70d9d9a9, 0x898e8e07, 0xa7949433,\n    0xb69b9b2d, 0x221e1e3c, 0x92878715, 0x20e9e9c9, 0x49cece87, 0xff5555aa, 0x78282850, 0x7adfdfa5,\n    0x8f8c8c03, 0xf8a1a159, 0x80898909, 0x170d0d1a, 0xdabfbf65, 0x31e6e6d7, 0xc6424284, 0xb86868d0,\n    0xc3414182, 0xb0999929, 0x772d2d5a, 0x110f0f1e, 0xcbb0b07b, 0xfc5454a8, 0xd6bbbb6d, 0x3a16162c,\n    0x6363c6a5, 0x7c7cf884, 0x7777ee99, 0x7b7bf68d, 0xf2f2ff0d, 0x6b6bd6bd, 0x6f6fdeb1, 0xc5c59154,\n    0x30306050, 0x01010203, 0x6767cea9, 0x2b2b567d, 0xfefee719, 0xd7d7b562, 0xabab4de6, 0x7676ec9a,\n    0xcaca8f45, 0x82821f9d, 0xc9c98940, 0x7d7dfa87, 0xfafaef15, 0x5959b2eb, 0x47478ec9, 0xf0f0fb0b,\n    0xadad41ec, 0xd4d4b367, 0xa2a25ffd, 0xafaf45ea, 0x9c9c23bf, 0xa4a453f7, 0x7272e496, 0xc0c09b5b,\n    0xb7b775c2, 0xfdfde11c, 0x93933dae, 0x26264c6a, 0x36366c5a, 0x3f3f7e41, 0xf7f7f502, 0xcccc834f,\n    0x3434685c, 0xa5a551f4, 0xe5e5d134, 0xf1f1f908, 0x7171e293, 0xd8d8ab73, 0x31316253, 0x15152a3f,\n    0x0404080c, 0xc7c79552, 0x23234665, 0xc3c39d5e, 0x18183028, 0x969637a1, 0x05050a0f, 0x9a9a2fb5,\n    0x07070e09, 0x12122436, 0x80801b9b, 0xe2e2df3d, 0xebebcd26, 0x27274e69, 0xb2b27fcd, 0x7575ea9f,\n    0x0909121b, 0x83831d9e, 0x2c2c5874, 0x1a1a342e, 0x1b1b362d, 0x6e6edcb2, 0x5a5ab4ee, 0xa0a05bfb,\n    0x5252a4f6, 0x3b3b764d, 0xd6d6b761, 0xb3b37dce, 0x2929527b, 0xe3e3dd3e, 0x2f2f5e71, 0x84841397,\n    0x5353a6f5, 0xd1d1b968, 0x00000000, 0xededc12c, 0x20204060, 0xfcfce31f, 0xb1b179c8, 0x5b5bb6ed,\n    0x6a6ad4be, 0xcbcb8d46, 0xbebe67d9, 0x3939724b, 0x4a4a94de, 0x4c4c98d4, 0x5858b0e8, 0xcfcf854a,\n    0xd0d0bb6b, 0xefefc52a, 0xaaaa4fe5, 0xfbfbed16, 0x434386c5, 0x4d4d9ad7, 0x33336655, 0x85851194,\n    0x45458acf, 0xf9f9e910, 0x02020406, 0x7f7ffe81, 0x5050a0f0, 0x3c3c7844, 0x9f9f25ba, 0xa8a84be3,\n    0x5151a2f3, 0xa3a35dfe, 0x404080c0, 0x8f8f058a, 0x92923fad, 0x9d9d21bc, 0x38387048, 0xf5f5f104,\n    0xbcbc63df, 0xb6b677c1, 0xdadaaf75, 0x21214263, 0x10102030, 0xffffe51a, 0xf3f3fd0e, 0xd2d2bf6d,\n    0xcdcd814c, 0x0c0c1814, 0x13132635, 0xececc32f, 0x5f5fbee1, 0x979735a2, 0x444488cc, 0x17172e39,\n    0xc4c49357, 0xa7a755f2, 0x7e7efc82, 0x3d3d7a47, 0x6464c8ac, 0x5d5dbae7, 0x1919322b, 0x7373e695,\n    0x6060c0a0, 0x81811998, 0x4f4f9ed1, 0xdcdca37f, 0x22224466, 0x2a2a547e, 0x90903bab, 0x88880b83,\n    0x46468cca, 0xeeeec729, 0xb8b86bd3, 0x1414283c, 0xdedea779, 0x5e5ebce2, 0x0b0b161d, 0xdbdbad76,\n    0xe0e0db3b, 0x32326456, 0x3a3a744e, 0x0a0a141e, 0x494992db, 0x06060c0a, 0x2424486c, 0x5c5cb8e4,\n    0xc2c29f5d, 0xd3d3bd6e, 0xacac43ef, 0x6262c4a6, 0x919139a8, 0x959531a4, 0xe4e4d337, 0x7979f28b,\n    0xe7e7d532, 0xc8c88b43, 0x37376e59, 0x6d6ddab7, 0x8d8d018c, 0xd5d5b164, 0x4e4e9cd2, 0xa9a949e0,\n    0x6c6cd8b4, 0x5656acfa, 0xf4f4f307, 0xeaeacf25, 0x6565caaf, 0x7a7af48e, 0xaeae47e9, 0x08081018,\n    0xbaba6fd5, 0x7878f088, 0x25254a6f, 0x2e2e5c72, 0x1c1c3824, 0xa6a657f1, 0xb4b473c7, 0xc6c69751,\n    0xe8e8cb23, 0xdddda17c, 0x7474e89c, 0x1f1f3e21, 0x4b4b96dd, 0xbdbd61dc, 0x8b8b0d86, 0x8a8a0f85,\n    0x7070e090, 0x3e3e7c42, 0xb5b571c4, 0x6666ccaa, 0x484890d8, 0x03030605, 0xf6f6f701, 0x0e0e1c12,\n    0x6161c2a3, 0x35356a5f, 0x5757aef9, 0xb9b969d0, 0x86861791, 0xc1c19958, 0x1d1d3a27, 0x9e9e27b9,\n    0xe1e1d938, 0xf8f8eb13, 0x98982bb3, 0x11112233, 0x6969d2bb, 0xd9d9a970, 0x8e8e0789, 0x949433a7,\n    0x9b9b2db6, 0x1e1e3c22, 0x87871592, 0xe9e9c920, 0xcece8749, 0x5555aaff, 0x28285078, 0xdfdfa57a,\n    0x8c8c038f, 0xa1a159f8, 0x89890980, 0x0d0d1a17, 0xbfbf65da, 0xe6e6d731, 0x424284c6, 0x6868d0b8,\n    0x414182c3, 0x999929b0, 0x2d2d5a77, 0x0f0f1e11, 0xb0b07bcb, 0x5454a8fc, 0xbbbb6dd6, 0x16162c3a,\n    0x63c6a563, 0x7cf8847c, 0x77ee9977, 0x7bf68d7b, 0xf2ff0df2, 0x6bd6bd6b, 0x6fdeb16f, 0xc59154c5,\n    0x30605030, 0x01020301, 0x67cea967, 0x2b567d2b, 0xfee719fe, 0xd7b562d7, 0xab4de6ab, 0x76ec9a76,\n    0xca8f45ca, 0x821f9d82, 0xc98940c9, 0x7dfa877d, 0xfaef15fa, 0x59b2eb59, 0x478ec947, 0xf0fb0bf0,\n    0xad41ecad, 0xd4b367d4, 0xa25ffda2, 0xaf45eaaf, 0x9c23bf9c, 0xa453f7a4, 0x72e49672, 0xc09b5bc0,\n    0xb775c2b7, 0xfde11cfd, 0x933dae93, 0x264c6a26, 0x366c5a36, 0x3f7e413f, 0xf7f502f7, 0xcc834fcc,\n    0x34685c34, 0xa551f4a5, 0xe5d134e5, 0xf1f908f1, 0x71e29371, 0xd8ab73d8, 0x31625331, 0x152a3f15,\n    0x04080c04, 0xc79552c7, 0x23466523, 0xc39d5ec3, 0x18302818, 0x9637a196, 0x050a0f05, 0x9a2fb59a,\n    0x070e0907, 0x12243612, 0x801b9b80, 0xe2df3de2, 0xebcd26eb, 0x274e6927, 0xb27fcdb2, 0x75ea9f75,\n    0x09121b09, 0x831d9e83, 0x2c58742c, 0x1a342e1a, 0x1b362d1b, 0x6edcb26e, 0x5ab4ee5a, 0xa05bfba0,\n    0x52a4f652, 0x3b764d3b, 0xd6b761d6, 0xb37dceb3, 0x29527b29, 0xe3dd3ee3, 0x2f5e712f, 0x84139784,\n    0x53a6f553, 0xd1b968d1, 0x00000000, 0xedc12ced, 0x20406020, 0xfce31ffc, 0xb179c8b1, 0x5bb6ed5b,\n    0x6ad4be6a, 0xcb8d46cb, 0xbe67d9be, 0x39724b39, 0x4a94de4a, 0x4c98d44c, 0x58b0e858, 0xcf854acf,\n    0xd0bb6bd0, 0xefc52aef, 0xaa4fe5aa, 0xfbed16fb, 0x4386c543, 0x4d9ad74d, 0x33665533, 0x85119485,\n    0x458acf45, 0xf9e910f9, 0x02040602, 0x7ffe817f, 0x50a0f050, 0x3c78443c, 0x9f25ba9f, 0xa84be3a8,\n    0x51a2f351, 0xa35dfea3, 0x4080c040, 0x8f058a8f, 0x923fad92, 0x9d21bc9d, 0x38704838, 0xf5f104f5,\n    0xbc63dfbc, 0xb677c1b6, 0xdaaf75da, 0x21426321, 0x10203010, 0xffe51aff, 0xf3fd0ef3, 0xd2bf6dd2,\n    0xcd814ccd, 0x0c18140c, 0x13263513, 0xecc32fec, 0x5fbee15f, 0x9735a297, 0x4488cc44, 0x172e3917,\n    0xc49357c4, 0xa755f2a7, 0x7efc827e, 0x3d7a473d, 0x64c8ac64, 0x5dbae75d, 0x19322b19, 0x73e69573,\n    0x60c0a060, 0x81199881, 0x4f9ed14f, 0xdca37fdc, 0x22446622, 0x2a547e2a, 0x903bab90, 0x880b8388,\n    0x468cca46, 0xeec729ee, 0xb86bd3b8, 0x14283c14, 0xdea779de, 0x5ebce25e, 0x0b161d0b, 0xdbad76db,\n    0xe0db3be0, 0x32645632, 0x3a744e3a, 0x0a141e0a, 0x4992db49, 0x060c0a06, 0x24486c24, 0x5cb8e45c,\n    0xc29f5dc2, 0xd3bd6ed3, 0xac43efac, 0x62c4a662, 0x9139a891, 0x9531a495, 0xe4d337e4, 0x79f28b79,\n    0xe7d532e7, 0xc88b43c8, 0x376e5937, 0x6ddab76d, 0x8d018c8d, 0xd5b164d5, 0x4e9cd24e, 0xa949e0a9,\n    0x6cd8b46c, 0x56acfa56, 0xf4f307f4, 0xeacf25ea, 0x65caaf65, 0x7af48e7a, 0xae47e9ae, 0x08101808,\n    0xba6fd5ba, 0x78f08878, 0x254a6f25, 0x2e5c722e, 0x1c38241c, 0xa657f1a6, 0xb473c7b4, 0xc69751c6,\n    0xe8cb23e8, 0xdda17cdd, 0x74e89c74, 0x1f3e211f, 0x4b96dd4b, 0xbd61dcbd, 0x8b0d868b, 0x8a0f858a,\n    0x70e09070, 0x3e7c423e, 0xb571c4b5, 0x66ccaa66, 0x4890d848, 0x03060503, 0xf6f701f6, 0x0e1c120e,\n    0x61c2a361, 0x356a5f35, 0x57aef957, 0xb969d0b9, 0x86179186, 0xc19958c1, 0x1d3a271d, 0x9e27b99e,\n    0xe1d938e1, 0xf8eb13f8, 0x982bb398, 0x11223311, 0x69d2bb69, 0xd9a970d9, 0x8e07898e, 0x9433a794,\n    0x9b2db69b, 0x1e3c221e, 0x87159287, 0xe9c920e9, 0xce8749ce, 0x55aaff55, 0x28507828, 0xdfa57adf,\n    0x8c038f8c, 0xa159f8a1, 0x89098089, 0x0d1a170d, 0xbf65dabf, 0xe6d731e6, 0x4284c642, 0x68d0b868,\n    0x4182c341, 0x9929b099, 0x2d5a772d, 0x0f1e110f, 0xb07bcbb0, 0x54a8fc54, 0xbb6dd6bb, 0x162c3a16,\n    0xc6a56363, 0xf8847c7c, 0xee997777, 0xf68d7b7b, 0xff0df2f2, 0xd6bd6b6b, 0xdeb16f6f, 0x9154c5c5,\n    0x60503030, 0x02030101, 0xcea96767, 0x567d2b2b, 0xe719fefe, 0xb562d7d7, 0x4de6abab, 0xec9a7676,\n    0x8f45caca, 0x1f9d8282, 0x8940c9c9, 0xfa877d7d, 0xef15fafa, 0xb2eb5959, 0x8ec94747, 0xfb0bf0f0,\n    0x41ecadad, 0xb367d4d4, 0x5ffda2a2, 0x45eaafaf, 0x23bf9c9c, 0x53f7a4a4, 0xe4967272, 0x9b5bc0c0,\n    0x75c2b7b7, 0xe11cfdfd, 0x3dae9393, 0x4c6a2626, 0x6c5a3636, 0x7e413f3f, 0xf502f7f7, 0x834fcccc,\n    0x685c3434, 0x51f4a5a5, 0xd134e5e5, 0xf908f1f1, 0xe2937171, 0xab73d8d8, 0x62533131, 0x2a3f1515,\n    0x080c0404, 0x9552c7c7, 0x46652323, 0x9d5ec3c3, 0x30281818, 0x37a19696, 0x0a0f0505, 0x2fb59a9a,\n    0x0e090707, 0x24361212, 0x1b9b8080, 0xdf3de2e2, 0xcd26ebeb, 0x4e692727, 0x7fcdb2b2, 0xea9f7575,\n    0x121b0909, 0x1d9e8383, 0x58742c2c, 0x342e1a1a, 0x362d1b1b, 0xdcb26e6e, 0xb4ee5a5a, 0x5bfba0a0,\n    0xa4f65252, 0x764d3b3b, 0xb761d6d6, 0x7dceb3b3, 0x527b2929, 0xdd3ee3e3, 0x5e712f2f, 0x13978484,\n    0xa6f55353, 0xb968d1d1, 0x00000000, 0xc12ceded, 0x40602020, 0xe31ffcfc, 0x79c8b1b1, 0xb6ed5b5b,\n    0xd4be6a6a, 0x8d46cbcb, 0x67d9bebe, 0x724b3939, 0x94de4a4a, 0x98d44c4c, 0xb0e85858, 0x854acfcf,\n    0xbb6bd0d0, 0xc52aefef, 0x4fe5aaaa, 0xed16fbfb, 0x86c54343, 0x9ad74d4d, 0x66553333, 0x11948585,\n    0x8acf4545, 0xe910f9f9, 0x04060202, 0xfe817f7f, 0xa0f05050, 0x78443c3c, 0x25ba9f9f, 0x4be3a8a8,\n    0xa2f35151, 0x5dfea3a3, 0x80c04040, 0x058a8f8f, 0x3fad9292, 0x21bc9d9d, 0x70483838, 0xf104f5f5,\n    0x63dfbcbc, 0x77c1b6b6, 0xaf75dada, 0x42632121, 0x20301010, 0xe51affff, 0xfd0ef3f3, 0xbf6dd2d2,\n    0x814ccdcd, 0x18140c0c, 0x26351313, 0xc32fecec, 0xbee15f5f, 0x35a29797, 0x88cc4444, 0x2e391717,\n    0x9357c4c4, 0x55f2a7a7, 0xfc827e7e, 0x7a473d3d, 0xc8ac6464, 0xbae75d5d, 0x322b1919, 0xe6957373,\n    0xc0a06060, 0x19988181, 0x9ed14f4f, 0xa37fdcdc, 0x44662222, 0x547e2a2a, 0x3bab9090, 0x0b838888,\n    0x8cca4646, 0xc729eeee, 0x6bd3b8b8, 0x283c1414, 0xa779dede, 0xbce25e5e, 0x161d0b0b, 0xad76dbdb,\n    0xdb3be0e0, 0x64563232, 0x744e3a3a, 0x141e0a0a, 0x92db4949, 0x0c0a0606, 0x486c2424, 0xb8e45c5c,\n    0x9f5dc2c2, 0xbd6ed3d3, 0x43efacac, 0xc4a66262, 0x39a89191, 0x31a49595, 0xd337e4e4, 0xf28b7979,\n    0xd532e7e7, 0x8b43c8c8, 0x6e593737, 0xdab76d6d, 0x018c8d8d, 0xb164d5d5, 0x9cd24e4e, 0x49e0a9a9,\n    0xd8b46c6c, 0xacfa5656, 0xf307f4f4, 0xcf25eaea, 0xcaaf6565, 0xf48e7a7a, 0x47e9aeae, 0x10180808,\n    0x6fd5baba, 0xf0887878, 0x4a6f2525, 0x5c722e2e, 0x38241c1c, 0x57f1a6a6, 0x73c7b4b4, 0x9751c6c6,\n    0xcb23e8e8, 0xa17cdddd, 0xe89c7474, 0x3e211f1f, 0x96dd4b4b, 0x61dcbdbd, 0x0d868b8b, 0x0f858a8a,\n    0xe0907070, 0x7c423e3e, 0x71c4b5b5, 0xccaa6666, 0x90d84848, 0x06050303, 0xf701f6f6, 0x1c120e0e,\n    0xc2a36161, 0x6a5f3535, 0xaef95757, 0x69d0b9b9, 0x17918686, 0x9958c1c1, 0x3a271d1d, 0x27b99e9e,\n    0xd938e1e1, 0xeb13f8f8, 0x2bb39898, 0x22331111, 0xd2bb6969, 0xa970d9d9, 0x07898e8e, 0x33a79494,\n    0x2db69b9b, 0x3c221e1e, 0x15928787, 0xc920e9e9, 0x8749cece, 0xaaff5555, 0x50782828, 0xa57adfdf,\n    0x038f8c8c, 0x59f8a1a1, 0x09808989, 0x1a170d0d, 0x65dabfbf, 0xd731e6e6, 0x84c64242, 0xd0b86868,\n    0x82c34141, 0x29b09999, 0x5a772d2d, 0x1e110f0f, 0x7bcbb0b0, 0xa8fc5454, 0x6dd6bbbb, 0x2c3a1616\n};\n\nstatic const uint32_t* const LUT0 = _aes_lut + 0 * 256;\nstatic const uint32_t* const LUT1 = _aes_lut + 1 * 256;\nstatic const uint32_t* const LUT2 = _aes_lut + 2 * 256;\nstatic const uint32_t* const LUT3 = _aes_lut + 3 * 256;\n\nSoftAesBlock\nsoftaes_block_encrypt(const SoftAesBlock block, const SoftAesBlock rk)\n{\n    SoftAesBlock   out;\n    uint8_t        ix0[4], ix1[4], ix2[4], ix3[4];\n    const uint32_t s0 = block.w0;\n    const uint32_t s1 = block.w1;\n    const uint32_t s2 = block.w2;\n    const uint32_t s3 = block.w3;\n\n    ix0[0] = (uint8_t) s0;\n    ix0[1] = (uint8_t) s1;\n    ix0[2] = (uint8_t) s2;\n    ix0[3] = (uint8_t) s3;\n\n    ix1[0] = (uint8_t) (s1 >> 8);\n    ix1[1] = (uint8_t) (s2 >> 8);\n    ix1[2] = (uint8_t) (s3 >> 8);\n    ix1[3] = (uint8_t) (s0 >> 8);\n\n    ix2[0] = (uint8_t) (s2 >> 16);\n    ix2[1] = (uint8_t) (s3 >> 16);\n    ix2[2] = (uint8_t) (s0 >> 16);\n    ix2[3] = (uint8_t) (s1 >> 16);\n\n    ix3[0] = (uint8_t) (s3 >> 24);\n    ix3[1] = (uint8_t) (s0 >> 24);\n    ix3[2] = (uint8_t) (s1 >> 24);\n    ix3[3] = (uint8_t) (s2 >> 24);\n\n    out.w0 = LUT0[ix0[0]];\n    out.w1 = LUT0[ix0[1]];\n    out.w2 = LUT0[ix0[2]];\n    out.w3 = LUT0[ix0[3]];\n\n    out.w0 ^= LUT1[ix1[0]];\n    out.w1 ^= LUT1[ix1[1]];\n    out.w2 ^= LUT1[ix1[2]];\n    out.w3 ^= LUT1[ix1[3]];\n\n    out.w0 ^= LUT2[ix2[0]];\n    out.w1 ^= LUT2[ix2[1]];\n    out.w2 ^= LUT2[ix2[2]];\n    out.w3 ^= LUT2[ix2[3]];\n\n    out.w0 ^= LUT3[ix3[0]];\n    out.w1 ^= LUT3[ix3[1]];\n    out.w2 ^= LUT3[ix3[2]];\n    out.w3 ^= LUT3[ix3[3]];\n\n    out.w0 ^= rk.w0;\n    out.w1 ^= rk.w1;\n    out.w2 ^= rk.w2;\n    out.w3 ^= rk.w3;\n\n    return out;\n}\n\nstatic const uint8_t INV_SBOX[256] = {\n    0x52, 0x09, 0x6a, 0xd5, 0x30, 0x36, 0xa5, 0x38, 0xbf, 0x40, 0xa3, 0x9e, 0x81, 0xf3, 0xd7, 0xfb,\n    0x7c, 0xe3, 0x39, 0x82, 0x9b, 0x2f, 0xff, 0x87, 0x34, 0x8e, 0x43, 0x44, 0xc4, 0xde, 0xe9, 0xcb,\n    0x54, 0x7b, 0x94, 0x32, 0xa6, 0xc2, 0x23, 0x3d, 0xee, 0x4c, 0x95, 0x0b, 0x42, 0xfa, 0xc3, 0x4e,\n    0x08, 0x2e, 0xa1, 0x66, 0x28, 0xd9, 0x24, 0xb2, 0x76, 0x5b, 0xa2, 0x49, 0x6d, 0x8b, 0xd1, 0x25,\n    0x72, 0xf8, 0xf6, 0x64, 0x86, 0x68, 0x98, 0x16, 0xd4, 0xa4, 0x5c, 0xcc, 0x5d, 0x65, 0xb6, 0x92,\n    0x6c, 0x70, 0x48, 0x50, 0xfd, 0xed, 0xb9, 0xda, 0x5e, 0x15, 0x46, 0x57, 0xa7, 0x8d, 0x9d, 0x84,\n    0x90, 0xd8, 0xab, 0x00, 0x8c, 0xbc, 0xd3, 0x0a, 0xf7, 0xe4, 0x58, 0x05, 0xb8, 0xb3, 0x45, 0x06,\n    0xd0, 0x2c, 0x1e, 0x8f, 0xca, 0x3f, 0x0f, 0x02, 0xc1, 0xaf, 0xbd, 0x03, 0x01, 0x13, 0x8a, 0x6b,\n    0x3a, 0x91, 0x11, 0x41, 0x4f, 0x67, 0xdc, 0xea, 0x97, 0xf2, 0xcf, 0xce, 0xf0, 0xb4, 0xe6, 0x73,\n    0x96, 0xac, 0x74, 0x22, 0xe7, 0xad, 0x35, 0x85, 0xe2, 0xf9, 0x37, 0xe8, 0x1c, 0x75, 0xdf, 0x6e,\n    0x47, 0xf1, 0x1a, 0x71, 0x1d, 0x29, 0xc5, 0x89, 0x6f, 0xb7, 0x62, 0x0e, 0xaa, 0x18, 0xbe, 0x1b,\n    0xfc, 0x56, 0x3e, 0x4b, 0xc6, 0xd2, 0x79, 0x20, 0x9a, 0xdb, 0xc0, 0xfe, 0x78, 0xcd, 0x5a, 0xf4,\n    0x1f, 0xdd, 0xa8, 0x33, 0x88, 0x07, 0xc7, 0x31, 0xb1, 0x12, 0x10, 0x59, 0x27, 0x80, 0xec, 0x5f,\n    0x60, 0x51, 0x7f, 0xa9, 0x19, 0xb5, 0x4a, 0x0d, 0x2d, 0xe5, 0x7a, 0x9f, 0x93, 0xc9, 0x9c, 0xef,\n    0xa0, 0xe0, 0x3b, 0x4d, 0xae, 0x2a, 0xf5, 0xb0, 0xc8, 0xeb, 0xbb, 0x3c, 0x83, 0x53, 0x99, 0x61,\n    0x17, 0x2b, 0x04, 0x7e, 0xba, 0x77, 0xd6, 0x26, 0xe1, 0x69, 0x14, 0x63, 0x55, 0x21, 0x0c, 0x7d\n};\n\nSoftAesBlock\nsoftaes_block_decrypt(const SoftAesBlock block, const SoftAesBlock rk)\n{\n    SoftAesBlock out;\n    uint32_t     s0, s1, s2, s3;\n    uint32_t     t0, t1, t2, t3;\n\n    s0 = block.w0;\n    s1 = block.w1;\n    s2 = block.w2;\n    s3 = block.w3;\n\n    t0 = (s0 & 0x000000ff) | (s3 & 0x0000ff00) | (s2 & 0x00ff0000) | (s1 & 0xff000000);\n    t1 = (s1 & 0x000000ff) | (s0 & 0x0000ff00) | (s3 & 0x00ff0000) | (s2 & 0xff000000);\n    t2 = (s2 & 0x000000ff) | (s1 & 0x0000ff00) | (s0 & 0x00ff0000) | (s3 & 0xff000000);\n    t3 = (s3 & 0x000000ff) | (s2 & 0x0000ff00) | (s1 & 0x00ff0000) | (s0 & 0xff000000);\n\n    s0 = (uint32_t) INV_SBOX[t0 & 0xff] | ((uint32_t) INV_SBOX[(t0 >> 8) & 0xff] << 8) |\n         ((uint32_t) INV_SBOX[(t0 >> 16) & 0xff] << 16) |\n         ((uint32_t) INV_SBOX[(t0 >> 24) & 0xff] << 24);\n    s1 = (uint32_t) INV_SBOX[t1 & 0xff] | ((uint32_t) INV_SBOX[(t1 >> 8) & 0xff] << 8) |\n         ((uint32_t) INV_SBOX[(t1 >> 16) & 0xff] << 16) |\n         ((uint32_t) INV_SBOX[(t1 >> 24) & 0xff] << 24);\n    s2 = (uint32_t) INV_SBOX[t2 & 0xff] | ((uint32_t) INV_SBOX[(t2 >> 8) & 0xff] << 8) |\n         ((uint32_t) INV_SBOX[(t2 >> 16) & 0xff] << 16) |\n         ((uint32_t) INV_SBOX[(t2 >> 24) & 0xff] << 24);\n    s3 = (uint32_t) INV_SBOX[t3 & 0xff] | ((uint32_t) INV_SBOX[(t3 >> 8) & 0xff] << 8) |\n         ((uint32_t) INV_SBOX[(t3 >> 16) & 0xff] << 16) |\n         ((uint32_t) INV_SBOX[(t3 >> 24) & 0xff] << 24);\n\n    out.w0 = inv_mix_column(s0) ^ rk.w0;\n    out.w1 = inv_mix_column(s1) ^ rk.w1;\n    out.w2 = inv_mix_column(s2) ^ rk.w2;\n    out.w3 = inv_mix_column(s3) ^ rk.w3;\n\n    return out;\n}\n\nSoftAesBlock\nsoftaes_block_encryptlast(const SoftAesBlock block, const SoftAesBlock rk)\n{\n    SoftAesBlock   out;\n    const uint32_t s0 = block.w0;\n    const uint32_t s1 = block.w1;\n    const uint32_t s2 = block.w2;\n    const uint32_t s3 = block.w3;\n\n    out.w0 = ((uint32_t) SBOX[(s0 >> 0) & 0xff] << 0) | ((uint32_t) SBOX[(s1 >> 8) & 0xff] << 8) |\n             ((uint32_t) SBOX[(s2 >> 16) & 0xff] << 16) |\n             ((uint32_t) SBOX[(s3 >> 24) & 0xff] << 24);\n    out.w1 = ((uint32_t) SBOX[(s1 >> 0) & 0xff] << 0) | ((uint32_t) SBOX[(s2 >> 8) & 0xff] << 8) |\n             ((uint32_t) SBOX[(s3 >> 16) & 0xff] << 16) |\n             ((uint32_t) SBOX[(s0 >> 24) & 0xff] << 24);\n    out.w2 = ((uint32_t) SBOX[(s2 >> 0) & 0xff] << 0) | ((uint32_t) SBOX[(s3 >> 8) & 0xff] << 8) |\n             ((uint32_t) SBOX[(s0 >> 16) & 0xff] << 16) |\n             ((uint32_t) SBOX[(s1 >> 24) & 0xff] << 24);\n    out.w3 = ((uint32_t) SBOX[(s3 >> 0) & 0xff] << 0) | ((uint32_t) SBOX[(s0 >> 8) & 0xff] << 8) |\n             ((uint32_t) SBOX[(s1 >> 16) & 0xff] << 16) |\n             ((uint32_t) SBOX[(s2 >> 24) & 0xff] << 24);\n\n    out.w0 ^= rk.w0;\n    out.w1 ^= rk.w1;\n    out.w2 ^= rk.w2;\n    out.w3 ^= rk.w3;\n\n    return out;\n}\n\nSoftAesBlock\nsoftaes_block_decryptlast(const SoftAesBlock block, const SoftAesBlock rk)\n{\n    SoftAesBlock   out;\n    const uint32_t s0 = block.w0;\n    const uint32_t s1 = block.w1;\n    const uint32_t s2 = block.w2;\n    const uint32_t s3 = block.w3;\n    uint32_t       t0, t1, t2, t3;\n\n    t0 = (s0 & 0x000000ff) | (s3 & 0x0000ff00) | (s2 & 0x00ff0000) | (s1 & 0xff000000);\n    t1 = (s1 & 0x000000ff) | (s0 & 0x0000ff00) | (s3 & 0x00ff0000) | (s2 & 0xff000000);\n    t2 = (s2 & 0x000000ff) | (s1 & 0x0000ff00) | (s0 & 0x00ff0000) | (s3 & 0xff000000);\n    t3 = (s3 & 0x000000ff) | (s2 & 0x0000ff00) | (s1 & 0x00ff0000) | (s0 & 0xff000000);\n\n    out.w0 = ((uint32_t) INV_SBOX[t0 & 0xff] | ((uint32_t) INV_SBOX[(t0 >> 8) & 0xff] << 8) |\n              ((uint32_t) INV_SBOX[(t0 >> 16) & 0xff] << 16) |\n              ((uint32_t) INV_SBOX[(t0 >> 24) & 0xff] << 24)) ^\n             rk.w0;\n    out.w1 = ((uint32_t) INV_SBOX[t1 & 0xff] | ((uint32_t) INV_SBOX[(t1 >> 8) & 0xff] << 8) |\n              ((uint32_t) INV_SBOX[(t1 >> 16) & 0xff] << 16) |\n              ((uint32_t) INV_SBOX[(t1 >> 24) & 0xff] << 24)) ^\n             rk.w1;\n    out.w2 = ((uint32_t) INV_SBOX[t2 & 0xff] | ((uint32_t) INV_SBOX[(t2 >> 8) & 0xff] << 8) |\n              ((uint32_t) INV_SBOX[(t2 >> 16) & 0xff] << 16) |\n              ((uint32_t) INV_SBOX[(t2 >> 24) & 0xff] << 24)) ^\n             rk.w2;\n    out.w3 = ((uint32_t) INV_SBOX[t3 & 0xff] | ((uint32_t) INV_SBOX[(t3 >> 8) & 0xff] << 8) |\n              ((uint32_t) INV_SBOX[(t3 >> 16) & 0xff] << 16) |\n              ((uint32_t) INV_SBOX[(t3 >> 24) & 0xff] << 24)) ^\n             rk.w3;\n\n    return out;\n}\n#else\n\nuint32_t _aes_lut[256] __attribute__((visibility(\"hidden\"))) = {\n    0xa56363c6, 0x847c7cf8, 0x997777ee, 0x8d7b7bf6, 0x0df2f2ff, 0xbd6b6bd6, 0xb16f6fde, 0x54c5c591,\n    0x50303060, 0x03010102, 0xa96767ce, 0x7d2b2b56, 0x19fefee7, 0x62d7d7b5, 0xe6abab4d, 0x9a7676ec,\n    0x45caca8f, 0x9d82821f, 0x40c9c989, 0x877d7dfa, 0x15fafaef, 0xeb5959b2, 0xc947478e, 0x0bf0f0fb,\n    0xecadad41, 0x67d4d4b3, 0xfda2a25f, 0xeaafaf45, 0xbf9c9c23, 0xf7a4a453, 0x967272e4, 0x5bc0c09b,\n    0xc2b7b775, 0x1cfdfde1, 0xae93933d, 0x6a26264c, 0x5a36366c, 0x413f3f7e, 0x02f7f7f5, 0x4fcccc83,\n    0x5c343468, 0xf4a5a551, 0x34e5e5d1, 0x08f1f1f9, 0x937171e2, 0x73d8d8ab, 0x53313162, 0x3f15152a,\n    0x0c040408, 0x52c7c795, 0x65232346, 0x5ec3c39d, 0x28181830, 0xa1969637, 0x0f05050a, 0xb59a9a2f,\n    0x0907070e, 0x36121224, 0x9b80801b, 0x3de2e2df, 0x26ebebcd, 0x6927274e, 0xcdb2b27f, 0x9f7575ea,\n    0x1b090912, 0x9e83831d, 0x742c2c58, 0x2e1a1a34, 0x2d1b1b36, 0xb26e6edc, 0xee5a5ab4, 0xfba0a05b,\n    0xf65252a4, 0x4d3b3b76, 0x61d6d6b7, 0xceb3b37d, 0x7b292952, 0x3ee3e3dd, 0x712f2f5e, 0x97848413,\n    0xf55353a6, 0x68d1d1b9, 0x00000000, 0x2cededc1, 0x60202040, 0x1ffcfce3, 0xc8b1b179, 0xed5b5bb6,\n    0xbe6a6ad4, 0x46cbcb8d, 0xd9bebe67, 0x4b393972, 0xde4a4a94, 0xd44c4c98, 0xe85858b0, 0x4acfcf85,\n    0x6bd0d0bb, 0x2aefefc5, 0xe5aaaa4f, 0x16fbfbed, 0xc5434386, 0xd74d4d9a, 0x55333366, 0x94858511,\n    0xcf45458a, 0x10f9f9e9, 0x06020204, 0x817f7ffe, 0xf05050a0, 0x443c3c78, 0xba9f9f25, 0xe3a8a84b,\n    0xf35151a2, 0xfea3a35d, 0xc0404080, 0x8a8f8f05, 0xad92923f, 0xbc9d9d21, 0x48383870, 0x04f5f5f1,\n    0xdfbcbc63, 0xc1b6b677, 0x75dadaaf, 0x63212142, 0x30101020, 0x1affffe5, 0x0ef3f3fd, 0x6dd2d2bf,\n    0x4ccdcd81, 0x140c0c18, 0x35131326, 0x2fececc3, 0xe15f5fbe, 0xa2979735, 0xcc444488, 0x3917172e,\n    0x57c4c493, 0xf2a7a755, 0x827e7efc, 0x473d3d7a, 0xac6464c8, 0xe75d5dba, 0x2b191932, 0x957373e6,\n    0xa06060c0, 0x98818119, 0xd14f4f9e, 0x7fdcdca3, 0x66222244, 0x7e2a2a54, 0xab90903b, 0x8388880b,\n    0xca46468c, 0x29eeeec7, 0xd3b8b86b, 0x3c141428, 0x79dedea7, 0xe25e5ebc, 0x1d0b0b16, 0x76dbdbad,\n    0x3be0e0db, 0x56323264, 0x4e3a3a74, 0x1e0a0a14, 0xdb494992, 0x0a06060c, 0x6c242448, 0xe45c5cb8,\n    0x5dc2c29f, 0x6ed3d3bd, 0xefacac43, 0xa66262c4, 0xa8919139, 0xa4959531, 0x37e4e4d3, 0x8b7979f2,\n    0x32e7e7d5, 0x43c8c88b, 0x5937376e, 0xb76d6dda, 0x8c8d8d01, 0x64d5d5b1, 0xd24e4e9c, 0xe0a9a949,\n    0xb46c6cd8, 0xfa5656ac, 0x07f4f4f3, 0x25eaeacf, 0xaf6565ca, 0x8e7a7af4, 0xe9aeae47, 0x18080810,\n    0xd5baba6f, 0x887878f0, 0x6f25254a, 0x722e2e5c, 0x241c1c38, 0xf1a6a657, 0xc7b4b473, 0x51c6c697,\n    0x23e8e8cb, 0x7cdddda1, 0x9c7474e8, 0x211f1f3e, 0xdd4b4b96, 0xdcbdbd61, 0x868b8b0d, 0x858a8a0f,\n    0x907070e0, 0x423e3e7c, 0xc4b5b571, 0xaa6666cc, 0xd8484890, 0x05030306, 0x01f6f6f7, 0x120e0e1c,\n    0xa36161c2, 0x5f35356a, 0xf95757ae, 0xd0b9b969, 0x91868617, 0x58c1c199, 0x271d1d3a, 0xb99e9e27,\n    0x38e1e1d9, 0x13f8f8eb, 0xb398982b, 0x33111122, 0xbb6969d2, 0x70d9d9a9, 0x898e8e07, 0xa7949433,\n    0xb69b9b2d, 0x221e1e3c, 0x92878715, 0x20e9e9c9, 0x49cece87, 0xff5555aa, 0x78282850, 0x7adfdfa5,\n    0x8f8c8c03, 0xf8a1a159, 0x80898909, 0x170d0d1a, 0xdabfbf65, 0x31e6e6d7, 0xc6424284, 0xb86868d0,\n    0xc3414182, 0xb0999929, 0x772d2d5a, 0x110f0f1e, 0xcbb0b07b, 0xfc5454a8, 0xd6bbbb6d, 0x3a16162c\n};\n\nstatic const uint32_t* const LUT = _aes_lut;\n\nstatic SoftAesBlock\n_encrypt(const uint8_t ix0[4], const uint8_t ix1[4], const uint8_t ix2[4], const uint8_t ix3[4])\n{\n    CRYPTO_ALIGN(64) uint32_t     t[4][4][256 / SOFTAES_STRIDE];\n    CRYPTO_ALIGN(64) uint8_t      of[4][4];\n    CRYPTO_ALIGN(64) SoftAesBlock out;\n    size_t                        i;\n    size_t                        j;\n\n    for (j = 0; j < 4; j++) {\n        of[j][0] = ix0[j] % SOFTAES_STRIDE;\n        of[j][1] = ix1[j] % SOFTAES_STRIDE;\n        of[j][2] = ix2[j] % SOFTAES_STRIDE;\n        of[j][3] = ix3[j] % SOFTAES_STRIDE;\n    }\n    for (i = 0; i < 256 / SOFTAES_STRIDE; i++) {\n        for (j = 0; j < 4; j++) {\n            t[j][0][i] = LUT[(i * SOFTAES_STRIDE) | of[j][0]];\n            t[j][1][i] = LUT[(i * SOFTAES_STRIDE) | of[j][1]];\n            t[j][2][i] = LUT[(i * SOFTAES_STRIDE) | of[j][2]];\n            t[j][3][i] = LUT[(i * SOFTAES_STRIDE) | of[j][3]];\n        }\n    }\n\n#    ifdef HAVE_INLINE_ASM\n    __asm__ __volatile__(\"\" : : \"r\"(t) : \"memory\");\n#    endif\n\n    out.w0 = t[0][0][ix0[0] / SOFTAES_STRIDE];\n    out.w0 ^= ROTL32(t[0][1][ix1[0] / SOFTAES_STRIDE], 8);\n    out.w0 ^= ROTL32(t[0][2][ix2[0] / SOFTAES_STRIDE], 16);\n    out.w0 ^= ROTL32(t[0][3][ix3[0] / SOFTAES_STRIDE], 24);\n\n    out.w1 = t[1][0][ix0[1] / SOFTAES_STRIDE];\n    out.w1 ^= ROTL32(t[1][1][ix1[1] / SOFTAES_STRIDE], 8);\n    out.w1 ^= ROTL32(t[1][2][ix2[1] / SOFTAES_STRIDE], 16);\n    out.w1 ^= ROTL32(t[1][3][ix3[1] / SOFTAES_STRIDE], 24);\n\n    out.w2 = t[2][0][ix0[2] / SOFTAES_STRIDE];\n    out.w2 ^= ROTL32(t[2][1][ix1[2] / SOFTAES_STRIDE], 8);\n    out.w2 ^= ROTL32(t[2][2][ix2[2] / SOFTAES_STRIDE], 16);\n    out.w2 ^= ROTL32(t[2][3][ix3[2] / SOFTAES_STRIDE], 24);\n\n    out.w3 = t[3][0][ix0[3] / SOFTAES_STRIDE];\n    out.w3 ^= ROTL32(t[3][1][ix1[3] / SOFTAES_STRIDE], 8);\n    out.w3 ^= ROTL32(t[3][2][ix2[3] / SOFTAES_STRIDE], 16);\n    out.w3 ^= ROTL32(t[3][3][ix3[3] / SOFTAES_STRIDE], 24);\n\n    return out;\n}\n\nSoftAesBlock\nsoftaes_block_encrypt(const SoftAesBlock block, const SoftAesBlock rk)\n{\n    CRYPTO_ALIGN(64) SoftAesBlock out;\n    CRYPTO_ALIGN(64) uint8_t      ix0[4], ix1[4], ix2[4], ix3[4];\n    const uint32_t                s0 = block.w0;\n    const uint32_t                s1 = block.w1;\n    const uint32_t                s2 = block.w2;\n    const uint32_t                s3 = block.w3;\n\n    ix0[0] = (uint8_t) s0;\n    ix0[1] = (uint8_t) s1;\n    ix0[2] = (uint8_t) s2;\n    ix0[3] = (uint8_t) s3;\n\n    ix1[0] = (uint8_t) (s1 >> 8);\n    ix1[1] = (uint8_t) (s2 >> 8);\n    ix1[2] = (uint8_t) (s3 >> 8);\n    ix1[3] = (uint8_t) (s0 >> 8);\n\n    ix2[0] = (uint8_t) (s2 >> 16);\n    ix2[1] = (uint8_t) (s3 >> 16);\n    ix2[2] = (uint8_t) (s0 >> 16);\n    ix2[3] = (uint8_t) (s1 >> 16);\n\n    ix3[0] = (uint8_t) (s3 >> 24);\n    ix3[1] = (uint8_t) (s0 >> 24);\n    ix3[2] = (uint8_t) (s1 >> 24);\n    ix3[3] = (uint8_t) (s2 >> 24);\n\n    out = _encrypt(ix0, ix1, ix2, ix3);\n\n    out.w0 ^= rk.w0;\n    out.w1 ^= rk.w1;\n    out.w2 ^= rk.w2;\n    out.w3 ^= rk.w3;\n\n    return out;\n}\n\nstatic const uint8_t INV_SBOX[256] = {\n    0x52, 0x09, 0x6a, 0xd5, 0x30, 0x36, 0xa5, 0x38, 0xbf, 0x40, 0xa3, 0x9e, 0x81, 0xf3, 0xd7, 0xfb,\n    0x7c, 0xe3, 0x39, 0x82, 0x9b, 0x2f, 0xff, 0x87, 0x34, 0x8e, 0x43, 0x44, 0xc4, 0xde, 0xe9, 0xcb,\n    0x54, 0x7b, 0x94, 0x32, 0xa6, 0xc2, 0x23, 0x3d, 0xee, 0x4c, 0x95, 0x0b, 0x42, 0xfa, 0xc3, 0x4e,\n    0x08, 0x2e, 0xa1, 0x66, 0x28, 0xd9, 0x24, 0xb2, 0x76, 0x5b, 0xa2, 0x49, 0x6d, 0x8b, 0xd1, 0x25,\n    0x72, 0xf8, 0xf6, 0x64, 0x86, 0x68, 0x98, 0x16, 0xd4, 0xa4, 0x5c, 0xcc, 0x5d, 0x65, 0xb6, 0x92,\n    0x6c, 0x70, 0x48, 0x50, 0xfd, 0xed, 0xb9, 0xda, 0x5e, 0x15, 0x46, 0x57, 0xa7, 0x8d, 0x9d, 0x84,\n    0x90, 0xd8, 0xab, 0x00, 0x8c, 0xbc, 0xd3, 0x0a, 0xf7, 0xe4, 0x58, 0x05, 0xb8, 0xb3, 0x45, 0x06,\n    0xd0, 0x2c, 0x1e, 0x8f, 0xca, 0x3f, 0x0f, 0x02, 0xc1, 0xaf, 0xbd, 0x03, 0x01, 0x13, 0x8a, 0x6b,\n    0x3a, 0x91, 0x11, 0x41, 0x4f, 0x67, 0xdc, 0xea, 0x97, 0xf2, 0xcf, 0xce, 0xf0, 0xb4, 0xe6, 0x73,\n    0x96, 0xac, 0x74, 0x22, 0xe7, 0xad, 0x35, 0x85, 0xe2, 0xf9, 0x37, 0xe8, 0x1c, 0x75, 0xdf, 0x6e,\n    0x47, 0xf1, 0x1a, 0x71, 0x1d, 0x29, 0xc5, 0x89, 0x6f, 0xb7, 0x62, 0x0e, 0xaa, 0x18, 0xbe, 0x1b,\n    0xfc, 0x56, 0x3e, 0x4b, 0xc6, 0xd2, 0x79, 0x20, 0x9a, 0xdb, 0xc0, 0xfe, 0x78, 0xcd, 0x5a, 0xf4,\n    0x1f, 0xdd, 0xa8, 0x33, 0x88, 0x07, 0xc7, 0x31, 0xb1, 0x12, 0x10, 0x59, 0x27, 0x80, 0xec, 0x5f,\n    0x60, 0x51, 0x7f, 0xa9, 0x19, 0xb5, 0x4a, 0x0d, 0x2d, 0xe5, 0x7a, 0x9f, 0x93, 0xc9, 0x9c, 0xef,\n    0xa0, 0xe0, 0x3b, 0x4d, 0xae, 0x2a, 0xf5, 0xb0, 0xc8, 0xeb, 0xbb, 0x3c, 0x83, 0x53, 0x99, 0x61,\n    0x17, 0x2b, 0x04, 0x7e, 0xba, 0x77, 0xd6, 0x26, 0xe1, 0x69, 0x14, 0x63, 0x55, 0x21, 0x0c, 0x7d\n};\n\nSoftAesBlock\nsoftaes_block_decrypt(const SoftAesBlock block, const SoftAesBlock rk)\n{\n    CRYPTO_ALIGN(64) SoftAesBlock out;\n    uint32_t                      s0, s1, s2, s3;\n    uint32_t                      t0, t1, t2, t3;\n\n    s0 = block.w0;\n    s1 = block.w1;\n    s2 = block.w2;\n    s3 = block.w3;\n\n    t0 = (s0 & 0x000000ff) | (s3 & 0x0000ff00) | (s2 & 0x00ff0000) | (s1 & 0xff000000);\n    t1 = (s1 & 0x000000ff) | (s0 & 0x0000ff00) | (s3 & 0x00ff0000) | (s2 & 0xff000000);\n    t2 = (s2 & 0x000000ff) | (s1 & 0x0000ff00) | (s0 & 0x00ff0000) | (s3 & 0xff000000);\n    t3 = (s3 & 0x000000ff) | (s2 & 0x0000ff00) | (s1 & 0x00ff0000) | (s0 & 0xff000000);\n\n    s0 = (uint32_t) INV_SBOX[t0 & 0xff] | ((uint32_t) INV_SBOX[(t0 >> 8) & 0xff] << 8) |\n         ((uint32_t) INV_SBOX[(t0 >> 16) & 0xff] << 16) |\n         ((uint32_t) INV_SBOX[(t0 >> 24) & 0xff] << 24);\n    s1 = (uint32_t) INV_SBOX[t1 & 0xff] | ((uint32_t) INV_SBOX[(t1 >> 8) & 0xff] << 8) |\n         ((uint32_t) INV_SBOX[(t1 >> 16) & 0xff] << 16) |\n         ((uint32_t) INV_SBOX[(t1 >> 24) & 0xff] << 24);\n    s2 = (uint32_t) INV_SBOX[t2 & 0xff] | ((uint32_t) INV_SBOX[(t2 >> 8) & 0xff] << 8) |\n         ((uint32_t) INV_SBOX[(t2 >> 16) & 0xff] << 16) |\n         ((uint32_t) INV_SBOX[(t2 >> 24) & 0xff] << 24);\n    s3 = (uint32_t) INV_SBOX[t3 & 0xff] | ((uint32_t) INV_SBOX[(t3 >> 8) & 0xff] << 8) |\n         ((uint32_t) INV_SBOX[(t3 >> 16) & 0xff] << 16) |\n         ((uint32_t) INV_SBOX[(t3 >> 24) & 0xff] << 24);\n\n    out.w0 = inv_mix_column(s0) ^ rk.w0;\n    out.w1 = inv_mix_column(s1) ^ rk.w1;\n    out.w2 = inv_mix_column(s2) ^ rk.w2;\n    out.w3 = inv_mix_column(s3) ^ rk.w3;\n\n    return out;\n}\n\nSoftAesBlock\nsoftaes_block_encryptlast(const SoftAesBlock block, const SoftAesBlock rk)\n{\n    CRYPTO_ALIGN(64) SoftAesBlock out;\n    CRYPTO_ALIGN(64) uint8_t      ix[4][4];\n    CRYPTO_ALIGN(64) uint8_t      t[4][256 / SOFTAES_STRIDE];\n    const uint32_t                s0 = block.w0;\n    const uint32_t                s1 = block.w1;\n    const uint32_t                s2 = block.w2;\n    const uint32_t                s3 = block.w3;\n    size_t                        i;\n    size_t                        j;\n\n    ix[0][0] = (uint8_t) s0;\n    ix[0][1] = (uint8_t) (s1 >> 8);\n    ix[0][2] = (uint8_t) (s2 >> 16);\n    ix[0][3] = (uint8_t) (s3 >> 24);\n\n    ix[1][0] = (uint8_t) s1;\n    ix[1][1] = (uint8_t) (s2 >> 8);\n    ix[1][2] = (uint8_t) (s3 >> 16);\n    ix[1][3] = (uint8_t) (s0 >> 24);\n\n    ix[2][0] = (uint8_t) s2;\n    ix[2][1] = (uint8_t) (s3 >> 8);\n    ix[2][2] = (uint8_t) (s0 >> 16);\n    ix[2][3] = (uint8_t) (s1 >> 24);\n\n    ix[3][0] = (uint8_t) s3;\n    ix[3][1] = (uint8_t) (s0 >> 8);\n    ix[3][2] = (uint8_t) (s1 >> 16);\n    ix[3][3] = (uint8_t) (s2 >> 24);\n\n    for (i = 0; i < 256 / SOFTAES_STRIDE; i++) {\n        for (j = 0; j < 4; j++) {\n            t[j][i] = SBOX[(i * SOFTAES_STRIDE) | (ix[0][j] % SOFTAES_STRIDE)];\n        }\n    }\n#    ifdef HAVE_INLINE_ASM\n    __asm__ __volatile__(\"\" : : \"r\"(t) : \"memory\");\n#    endif\n\n    out.w0 = ((uint32_t) t[0][ix[0][0] / SOFTAES_STRIDE] << 0) |\n             ((uint32_t) t[1][ix[0][1] / SOFTAES_STRIDE] << 8) |\n             ((uint32_t) t[2][ix[0][2] / SOFTAES_STRIDE] << 16) |\n             ((uint32_t) t[3][ix[0][3] / SOFTAES_STRIDE] << 24);\n\n    for (i = 0; i < 256 / SOFTAES_STRIDE; i++) {\n        for (j = 0; j < 4; j++) {\n            t[j][i] = SBOX[(i * SOFTAES_STRIDE) | (ix[1][j] % SOFTAES_STRIDE)];\n        }\n    }\n#    ifdef HAVE_INLINE_ASM\n    __asm__ __volatile__(\"\" : : \"r\"(t) : \"memory\");\n#    endif\n\n    out.w1 = ((uint32_t) t[0][ix[1][0] / SOFTAES_STRIDE] << 0) |\n             ((uint32_t) t[1][ix[1][1] / SOFTAES_STRIDE] << 8) |\n             ((uint32_t) t[2][ix[1][2] / SOFTAES_STRIDE] << 16) |\n             ((uint32_t) t[3][ix[1][3] / SOFTAES_STRIDE] << 24);\n\n    for (i = 0; i < 256 / SOFTAES_STRIDE; i++) {\n        for (j = 0; j < 4; j++) {\n            t[j][i] = SBOX[(i * SOFTAES_STRIDE) | (ix[2][j] % SOFTAES_STRIDE)];\n        }\n    }\n#    ifdef HAVE_INLINE_ASM\n    __asm__ __volatile__(\"\" : : \"r\"(t) : \"memory\");\n#    endif\n\n    out.w2 = ((uint32_t) t[0][ix[2][0] / SOFTAES_STRIDE] << 0) |\n             ((uint32_t) t[1][ix[2][1] / SOFTAES_STRIDE] << 8) |\n             ((uint32_t) t[2][ix[2][2] / SOFTAES_STRIDE] << 16) |\n             ((uint32_t) t[3][ix[2][3] / SOFTAES_STRIDE] << 24);\n\n    for (i = 0; i < 256 / SOFTAES_STRIDE; i++) {\n        for (j = 0; j < 4; j++) {\n            t[j][i] = SBOX[(i * SOFTAES_STRIDE) | (ix[3][j] % SOFTAES_STRIDE)];\n        }\n    }\n#    ifdef HAVE_INLINE_ASM\n    __asm__ __volatile__(\"\" : : \"r\"(t) : \"memory\");\n#    endif\n\n    out.w3 = ((uint32_t) t[0][ix[3][0] / SOFTAES_STRIDE] << 0) |\n             ((uint32_t) t[1][ix[3][1] / SOFTAES_STRIDE] << 8) |\n             ((uint32_t) t[2][ix[3][2] / SOFTAES_STRIDE] << 16) |\n             ((uint32_t) t[3][ix[3][3] / SOFTAES_STRIDE] << 24);\n\n    out.w0 ^= rk.w0;\n    out.w1 ^= rk.w1;\n    out.w2 ^= rk.w2;\n    out.w3 ^= rk.w3;\n\n    return out;\n}\n\nSoftAesBlock\nsoftaes_block_decryptlast(const SoftAesBlock block, const SoftAesBlock rk)\n{\n    CRYPTO_ALIGN(64) SoftAesBlock out;\n    const uint32_t                s0 = block.w0;\n    const uint32_t                s1 = block.w1;\n    const uint32_t                s2 = block.w2;\n    const uint32_t                s3 = block.w3;\n    uint32_t                      t0, t1, t2, t3;\n\n    t0 = (s0 & 0x000000ff) | (s3 & 0x0000ff00) | (s2 & 0x00ff0000) | (s1 & 0xff000000);\n    t1 = (s1 & 0x000000ff) | (s0 & 0x0000ff00) | (s3 & 0x00ff0000) | (s2 & 0xff000000);\n    t2 = (s2 & 0x000000ff) | (s1 & 0x0000ff00) | (s0 & 0x00ff0000) | (s3 & 0xff000000);\n    t3 = (s3 & 0x000000ff) | (s2 & 0x0000ff00) | (s1 & 0x00ff0000) | (s0 & 0xff000000);\n\n    out.w0 = ((uint32_t) INV_SBOX[t0 & 0xff] | ((uint32_t) INV_SBOX[(t0 >> 8) & 0xff] << 8) |\n              ((uint32_t) INV_SBOX[(t0 >> 16) & 0xff] << 16) |\n              ((uint32_t) INV_SBOX[(t0 >> 24) & 0xff] << 24)) ^\n             rk.w0;\n    out.w1 = ((uint32_t) INV_SBOX[t1 & 0xff] | ((uint32_t) INV_SBOX[(t1 >> 8) & 0xff] << 8) |\n              ((uint32_t) INV_SBOX[(t1 >> 16) & 0xff] << 16) |\n              ((uint32_t) INV_SBOX[(t1 >> 24) & 0xff] << 24)) ^\n             rk.w1;\n    out.w2 = ((uint32_t) INV_SBOX[t2 & 0xff] | ((uint32_t) INV_SBOX[(t2 >> 8) & 0xff] << 8) |\n              ((uint32_t) INV_SBOX[(t2 >> 16) & 0xff] << 16) |\n              ((uint32_t) INV_SBOX[(t2 >> 24) & 0xff] << 24)) ^\n             rk.w2;\n    out.w3 = ((uint32_t) INV_SBOX[t3 & 0xff] | ((uint32_t) INV_SBOX[(t3 >> 8) & 0xff] << 8) |\n              ((uint32_t) INV_SBOX[(t3 >> 16) & 0xff] << 16) |\n              ((uint32_t) INV_SBOX[(t3 >> 24) & 0xff] << 24)) ^\n             rk.w3;\n\n    return out;\n}\n#endif\n"
  },
  {
    "path": "src/libsodium/crypto_generichash/blake2b/generichash_blake2.c",
    "content": "#include \"crypto_generichash_blake2b.h\"\n#include \"randombytes.h\"\n\nsize_t\ncrypto_generichash_blake2b_bytes_min(void) {\n    return crypto_generichash_blake2b_BYTES_MIN;\n}\n\nsize_t\ncrypto_generichash_blake2b_bytes_max(void) {\n    return crypto_generichash_blake2b_BYTES_MAX;\n}\n\nsize_t\ncrypto_generichash_blake2b_bytes(void) {\n    return crypto_generichash_blake2b_BYTES;\n}\n\nsize_t\ncrypto_generichash_blake2b_keybytes_min(void) {\n    return crypto_generichash_blake2b_KEYBYTES_MIN;\n}\n\nsize_t\ncrypto_generichash_blake2b_keybytes_max(void) {\n    return crypto_generichash_blake2b_KEYBYTES_MAX;\n}\n\nsize_t\ncrypto_generichash_blake2b_keybytes(void) {\n    return crypto_generichash_blake2b_KEYBYTES;\n}\n\nsize_t\ncrypto_generichash_blake2b_saltbytes(void) {\n    return crypto_generichash_blake2b_SALTBYTES;\n}\n\nsize_t\ncrypto_generichash_blake2b_personalbytes(void) {\n    return crypto_generichash_blake2b_PERSONALBYTES;\n}\n\nsize_t\ncrypto_generichash_blake2b_statebytes(void)\n{\n    return (sizeof(crypto_generichash_blake2b_state) + (size_t) 63U)\n        & ~(size_t) 63U;\n}\n\nvoid\ncrypto_generichash_blake2b_keygen(unsigned char k[crypto_generichash_blake2b_KEYBYTES])\n{\n    randombytes_buf(k, crypto_generichash_blake2b_KEYBYTES);\n}\n"
  },
  {
    "path": "src/libsodium/crypto_generichash/blake2b/ref/blake2.h",
    "content": "/*\n   BLAKE2 reference source code package - reference C implementations\n\n   Written in 2012 by Samuel Neves <sneves@dei.uc.pt>\n\n   To the extent possible under law, the author(s) have dedicated all copyright\n   and related and neighboring rights to this software to the public domain\n   worldwide. This software is distributed without any warranty.\n\n   All code is triple-licensed under the\n   [CC0](http://creativecommons.org/publicdomain/zero/1.0), the\n   [OpenSSL Licence](https://www.openssl.org/source/license.html), or\n   the [Apache Public License 2.0](http://www.apache.org/licenses/LICENSE-2.0),\n   at your choosing.\n */\n\n#ifndef blake2_H\n#define blake2_H\n\n#include <stddef.h>\n#include <stdint.h>\n\n#include \"crypto_generichash_blake2b.h\"\n#include \"export.h\"\n#include \"private/quirks.h\"\n\nenum blake2b_constant {\n    BLAKE2B_BLOCKBYTES    = 128,\n    BLAKE2B_OUTBYTES      = 64,\n    BLAKE2B_KEYBYTES      = 64,\n    BLAKE2B_SALTBYTES     = 16,\n    BLAKE2B_PERSONALBYTES = 16\n};\n\n#ifdef __IBMC__\n# pragma pack(1)\n#elif defined(__SUNPRO_C) || defined(__SUNPRO_CC)\n# pragma pack(1)\n#else\n# pragma pack(push, 1)\n#endif\n\ntypedef struct blake2b_param_ {\n    uint8_t digest_length;                   /*  1 */\n    uint8_t key_length;                      /*  2 */\n    uint8_t fanout;                          /*  3 */\n    uint8_t depth;                           /*  4 */\n    uint8_t leaf_length[4];                  /*  8 */\n    uint8_t node_offset[8];                  /* 16 */\n    uint8_t node_depth;                      /* 17 */\n    uint8_t inner_length;                    /* 18 */\n    uint8_t reserved[14];                    /* 32 */\n    uint8_t salt[BLAKE2B_SALTBYTES];         /* 48 */\n    uint8_t personal[BLAKE2B_PERSONALBYTES]; /* 64 */\n} blake2b_param;\n\ntypedef struct blake2b_state {\n    uint64_t h[8];\n    uint64_t t[2];\n    uint64_t f[2];\n    uint8_t  buf[2 * 128];\n    size_t   buflen;\n    uint8_t  last_node;\n} blake2b_state;\n\n#ifdef __IBMC__\n# pragma pack(pop)\n#elif defined(__SUNPRO_C) || defined(__SUNPRO_CC)\n# pragma pack()\n#else\n# pragma pack(pop)\n#endif\n\n/* Streaming API */\nint blake2b_init(blake2b_state *S, const uint8_t outlen);\nint blake2b_init_salt_personal(blake2b_state *S, const uint8_t outlen,\n                               const void *salt, const void *personal);\nint blake2b_init_key(blake2b_state *S, const uint8_t outlen, const void *key,\n                     const uint8_t keylen);\nint blake2b_init_key_salt_personal(blake2b_state *S, const uint8_t outlen,\n                                   const void *key, const uint8_t keylen,\n                                   const void *salt, const void *personal);\nint blake2b_init_param(blake2b_state *S, const blake2b_param *P);\nint blake2b_update(blake2b_state *S, const uint8_t *in, uint64_t inlen);\nint blake2b_final(blake2b_state *S, uint8_t *out, uint8_t outlen);\n\n/* Simple API */\nint blake2b(uint8_t *out, const void *in, const void *key, const uint8_t outlen,\n            const uint64_t inlen, uint8_t keylen);\nint blake2b_salt_personal(uint8_t *out, const void *in, const void *key,\n                          const uint8_t outlen, const uint64_t inlen,\n                          uint8_t keylen, const void *salt,\n                          const void *personal);\n\ntypedef int (*blake2b_compress_fn)(blake2b_state *S,\n                                   const uint8_t  block[BLAKE2B_BLOCKBYTES]);\nint blake2b_pick_best_implementation(void);\nint blake2b_compress_ref(blake2b_state *S,\n                         const uint8_t  block[BLAKE2B_BLOCKBYTES]);\nint blake2b_compress_ssse3(blake2b_state *S,\n                           const uint8_t  block[BLAKE2B_BLOCKBYTES]);\nint blake2b_compress_sse41(blake2b_state *S,\n                           const uint8_t  block[BLAKE2B_BLOCKBYTES]);\nint blake2b_compress_avx2(blake2b_state *S,\n                          const uint8_t  block[BLAKE2B_BLOCKBYTES]);\n\n#endif\n"
  },
  {
    "path": "src/libsodium/crypto_generichash/blake2b/ref/blake2b-compress-avx2.c",
    "content": "\n#define BLAKE2_USE_SSSE3\n#define BLAKE2_USE_SSE41\n#define BLAKE2_USE_AVX2\n\n#include <stdint.h>\n#include <string.h>\n\n#include \"blake2.h\"\n#include \"private/common.h\"\n\n#if defined(HAVE_AVX2INTRIN_H) && defined(HAVE_EMMINTRIN_H) && \\\n    defined(HAVE_TMMINTRIN_H) && defined(HAVE_SMMINTRIN_H)\n\n# ifdef __clang__\n#  pragma clang attribute push(__attribute__((target(\"sse2,ssse3,sse4.1,avx2\"))), apply_to = function)\n# elif defined(__GNUC__)\n#  pragma GCC target(\"sse2,ssse3,sse4.1,avx2\")\n# endif\n\n# include <emmintrin.h>\n# include <immintrin.h>\n# include <smmintrin.h>\n# include <tmmintrin.h>\n# include \"private/sse2_64_32.h\"\n\n# include \"blake2b-compress-avx2.h\"\n\nCRYPTO_ALIGN(64)\nstatic const uint64_t blake2b_IV[8] = {\n    0x6a09e667f3bcc908ULL, 0xbb67ae8584caa73bULL, 0x3c6ef372fe94f82bULL,\n    0xa54ff53a5f1d36f1ULL, 0x510e527fade682d1ULL, 0x9b05688c2b3e6c1fULL,\n    0x1f83d9abfb41bd6bULL, 0x5be0cd19137e2179ULL\n};\n\nint\nblake2b_compress_avx2(blake2b_state *S, const uint8_t block[BLAKE2B_BLOCKBYTES])\n{\n    __m256i a = LOADU(&S->h[0]);\n    __m256i b = LOADU(&S->h[4]);\n    BLAKE2B_COMPRESS_V1(a, b, block, S->t[0], S->t[1], S->f[0], S->f[1]);\n    STOREU(&S->h[0], a);\n    STOREU(&S->h[4], b);\n\n    return 0;\n}\n\n# ifdef __clang__\n#  pragma clang attribute pop\n# endif\n\n#endif\n"
  },
  {
    "path": "src/libsodium/crypto_generichash/blake2b/ref/blake2b-compress-avx2.h",
    "content": "\n#ifndef blake2b_compress_avx2_H\n#define blake2b_compress_avx2_H\n\n#define LOADU128(p) _mm_loadu_si128((const __m128i *) (p))\n#define STOREU128(p, r) _mm_storeu_si128((__m128i *) (p), r)\n\n#define LOADU(p) _mm256_loadu_si256((const __m256i *) (p))\n#define STOREU(p, r) _mm256_storeu_si256((__m256i *) (p), r)\n\n#if defined(__INTEL_COMPILER) || defined(_MSC_VER) || defined(__GNUC__)\n# define LOAD(p) _mm256_load_si256((const __m256i *) (p))\n# define STORE(p, r) _mm256_store_si256((__m256i *) (p), r)\n#else\n# define LOAD(p) LOADU(p)\n# define STORE(p, r) STOREU(p, r)\n#endif\n\nstatic inline uint64_t\nLOADU64(const void *p)\n{\n    uint64_t v;\n    memcpy(&v, p, sizeof v);\n    return v;\n}\n\n#define ROTATE16                                                              \\\n    _mm256_setr_epi8(2, 3, 4, 5, 6, 7, 0, 1, 10, 11, 12, 13, 14, 15, 8, 9, 2, \\\n                     3, 4, 5, 6, 7, 0, 1, 10, 11, 12, 13, 14, 15, 8, 9)\n\n#define ROTATE24                                                              \\\n    _mm256_setr_epi8(3, 4, 5, 6, 7, 0, 1, 2, 11, 12, 13, 14, 15, 8, 9, 10, 3, \\\n                     4, 5, 6, 7, 0, 1, 2, 11, 12, 13, 14, 15, 8, 9, 10)\n\n#define ADD(a, b) _mm256_add_epi64(a, b)\n#define SUB(a, b) _mm256_sub_epi64(a, b)\n\n#define XOR(a, b) _mm256_xor_si256(a, b)\n#define AND(a, b) _mm256_and_si256(a, b)\n#define OR(a, b) _mm256_or_si256(a, b)\n\n#define ROT32(x) _mm256_shuffle_epi32((x), _MM_SHUFFLE(2, 3, 0, 1))\n#define ROT24(x) _mm256_shuffle_epi8((x), ROTATE24)\n#define ROT16(x) _mm256_shuffle_epi8((x), ROTATE16)\n#define ROT63(x) _mm256_or_si256(_mm256_srli_epi64((x), 63), ADD((x), (x)))\n\n#define BLAKE2B_G1_V1(a, b, c, d, m) \\\n    do {                             \\\n        a = ADD(a, m);               \\\n        a = ADD(a, b);               \\\n        d = XOR(d, a);               \\\n        d = ROT32(d);                \\\n        c = ADD(c, d);               \\\n        b = XOR(b, c);               \\\n        b = ROT24(b);                \\\n    } while (0)\n\n#define BLAKE2B_G2_V1(a, b, c, d, m) \\\n    do {                             \\\n        a = ADD(a, m);               \\\n        a = ADD(a, b);               \\\n        d = XOR(d, a);               \\\n        d = ROT16(d);                \\\n        c = ADD(c, d);               \\\n        b = XOR(b, c);               \\\n        b = ROT63(b);                \\\n    } while (0)\n\n#define BLAKE2B_DIAG_V1(a, b, c, d)                               \\\n    do {                                                          \\\n        a = _mm256_permute4x64_epi64(a, _MM_SHUFFLE(2, 1, 0, 3)); \\\n        d = _mm256_permute4x64_epi64(d, _MM_SHUFFLE(1, 0, 3, 2)); \\\n        c = _mm256_permute4x64_epi64(c, _MM_SHUFFLE(0, 3, 2, 1)); \\\n    } while(0)\n\n#define BLAKE2B_UNDIAG_V1(a, b, c, d)                             \\\n    do {                                                          \\\n        a = _mm256_permute4x64_epi64(a, _MM_SHUFFLE(0, 3, 2, 1)); \\\n        d = _mm256_permute4x64_epi64(d, _MM_SHUFFLE(1, 0, 3, 2)); \\\n        c = _mm256_permute4x64_epi64(c, _MM_SHUFFLE(2, 1, 0, 3)); \\\n    } while(0)\n\n#include \"blake2b-load-avx2.h\"\n\n#define BLAKE2B_ROUND_V1(a, b, c, d, r, m) \\\n    do {                                   \\\n        __m256i b0;                        \\\n        BLAKE2B_LOAD_MSG_##r##_1(b0);      \\\n        BLAKE2B_G1_V1(a, b, c, d, b0);     \\\n        BLAKE2B_LOAD_MSG_##r##_2(b0);      \\\n        BLAKE2B_G2_V1(a, b, c, d, b0);     \\\n        BLAKE2B_DIAG_V1(a, b, c, d);       \\\n        BLAKE2B_LOAD_MSG_##r##_3(b0);      \\\n        BLAKE2B_G1_V1(a, b, c, d, b0);     \\\n        BLAKE2B_LOAD_MSG_##r##_4(b0);      \\\n        BLAKE2B_G2_V1(a, b, c, d, b0);     \\\n        BLAKE2B_UNDIAG_V1(a, b, c, d);     \\\n    } while (0)\n\n#define BLAKE2B_ROUNDS_V1(a, b, c, d, m)       \\\n    do {                                       \\\n        BLAKE2B_ROUND_V1(a, b, c, d, 0, (m));  \\\n        BLAKE2B_ROUND_V1(a, b, c, d, 1, (m));  \\\n        BLAKE2B_ROUND_V1(a, b, c, d, 2, (m));  \\\n        BLAKE2B_ROUND_V1(a, b, c, d, 3, (m));  \\\n        BLAKE2B_ROUND_V1(a, b, c, d, 4, (m));  \\\n        BLAKE2B_ROUND_V1(a, b, c, d, 5, (m));  \\\n        BLAKE2B_ROUND_V1(a, b, c, d, 6, (m));  \\\n        BLAKE2B_ROUND_V1(a, b, c, d, 7, (m));  \\\n        BLAKE2B_ROUND_V1(a, b, c, d, 8, (m));  \\\n        BLAKE2B_ROUND_V1(a, b, c, d, 9, (m));  \\\n        BLAKE2B_ROUND_V1(a, b, c, d, 10, (m)); \\\n        BLAKE2B_ROUND_V1(a, b, c, d, 11, (m)); \\\n    } while (0)\n\n#define DECLARE_MESSAGE_WORDS(m)                                         \\\n    const __m256i m0 = _mm256_broadcastsi128_si256(LOADU128((m) + 0));   \\\n    const __m256i m1 = _mm256_broadcastsi128_si256(LOADU128((m) + 16));  \\\n    const __m256i m2 = _mm256_broadcastsi128_si256(LOADU128((m) + 32));  \\\n    const __m256i m3 = _mm256_broadcastsi128_si256(LOADU128((m) + 48));  \\\n    const __m256i m4 = _mm256_broadcastsi128_si256(LOADU128((m) + 64));  \\\n    const __m256i m5 = _mm256_broadcastsi128_si256(LOADU128((m) + 80));  \\\n    const __m256i m6 = _mm256_broadcastsi128_si256(LOADU128((m) + 96));  \\\n    const __m256i m7 = _mm256_broadcastsi128_si256(LOADU128((m) + 112)); \\\n    __m256i       t0, t1;\n\n#define BLAKE2B_COMPRESS_V1(a, b, m, t0, t1, f0, f1)                      \\\n    do {                                                                  \\\n        DECLARE_MESSAGE_WORDS(m)                                          \\\n        const __m256i iv0 = a;                                            \\\n        const __m256i iv1 = b;                                            \\\n        __m256i       c   = LOAD(&blake2b_IV[0]);                         \\\n        __m256i       d =                                                 \\\n            XOR(LOAD(&blake2b_IV[4]), _mm256_set_epi64x(f1, f0, t1, t0)); \\\n        BLAKE2B_ROUNDS_V1(a, b, c, d, m);                                 \\\n        a = XOR(a, c);                                                    \\\n        b = XOR(b, d);                                                    \\\n        a = XOR(a, iv0);                                                  \\\n        b = XOR(b, iv1);                                                  \\\n    } while (0)\n\n#endif\n"
  },
  {
    "path": "src/libsodium/crypto_generichash/blake2b/ref/blake2b-compress-ref.c",
    "content": "\n#include <stdint.h>\n#include <string.h>\n\n#include \"blake2.h\"\n#include \"private/common.h\"\n\nCRYPTO_ALIGN(64)\nstatic const uint64_t blake2b_IV[8] = {\n    0x6a09e667f3bcc908ULL, 0xbb67ae8584caa73bULL, 0x3c6ef372fe94f82bULL,\n    0xa54ff53a5f1d36f1ULL, 0x510e527fade682d1ULL, 0x9b05688c2b3e6c1fULL,\n    0x1f83d9abfb41bd6bULL, 0x5be0cd19137e2179ULL\n};\n\nstatic const uint8_t blake2b_sigma[12][16] = {\n    { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15 },\n    { 14, 10, 4, 8, 9, 15, 13, 6, 1, 12, 0, 2, 11, 7, 5, 3 },\n    { 11, 8, 12, 0, 5, 2, 15, 13, 10, 14, 3, 6, 7, 1, 9, 4 },\n    { 7, 9, 3, 1, 13, 12, 11, 14, 2, 6, 5, 10, 4, 0, 15, 8 },\n    { 9, 0, 5, 7, 2, 4, 10, 15, 14, 1, 11, 12, 6, 8, 3, 13 },\n    { 2, 12, 6, 10, 0, 11, 8, 3, 4, 13, 7, 5, 15, 14, 1, 9 },\n    { 12, 5, 1, 15, 14, 13, 4, 10, 0, 7, 6, 3, 9, 2, 8, 11 },\n    { 13, 11, 7, 14, 12, 1, 3, 9, 5, 0, 15, 4, 8, 6, 2, 10 },\n    { 6, 15, 14, 9, 11, 3, 0, 8, 12, 2, 13, 7, 1, 4, 10, 5 },\n    { 10, 2, 8, 4, 7, 6, 1, 5, 15, 11, 9, 14, 3, 12, 13, 0 },\n    { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15 },\n    { 14, 10, 4, 8, 9, 15, 13, 6, 1, 12, 0, 2, 11, 7, 5, 3 }\n};\n\nint\nblake2b_compress_ref(blake2b_state *S, const uint8_t block[BLAKE2B_BLOCKBYTES])\n{\n    uint64_t m[16];\n    uint64_t v[16];\n    int      i;\n\n    for (i = 0; i < 16; ++i) {\n        m[i] = LOAD64_LE(block + i * sizeof m[i]);\n    }\n    for (i = 0; i < 8; ++i) {\n        v[i] = S->h[i];\n    }\n    v[8]  = blake2b_IV[0];\n    v[9]  = blake2b_IV[1];\n    v[10] = blake2b_IV[2];\n    v[11] = blake2b_IV[3];\n    v[12] = S->t[0] ^ blake2b_IV[4];\n    v[13] = S->t[1] ^ blake2b_IV[5];\n    v[14] = S->f[0] ^ blake2b_IV[6];\n    v[15] = S->f[1] ^ blake2b_IV[7];\n#define G(r, i, a, b, c, d)                      \\\n    do {                                         \\\n        a += b + m[blake2b_sigma[r][2 * i + 0]]; \\\n        d = ROTR64(d ^ a, 32);                   \\\n        c += d;                                  \\\n        b = ROTR64(b ^ c, 24);                   \\\n        a += b + m[blake2b_sigma[r][2 * i + 1]]; \\\n        d = ROTR64(d ^ a, 16);                   \\\n        c += d;                                  \\\n        b = ROTR64(b ^ c, 63);                   \\\n    } while (0)\n#define ROUND(r)                           \\\n    do {                                   \\\n        G(r, 0, v[0], v[4], v[8], v[12]);  \\\n        G(r, 1, v[1], v[5], v[9], v[13]);  \\\n        G(r, 2, v[2], v[6], v[10], v[14]); \\\n        G(r, 3, v[3], v[7], v[11], v[15]); \\\n        G(r, 4, v[0], v[5], v[10], v[15]); \\\n        G(r, 5, v[1], v[6], v[11], v[12]); \\\n        G(r, 6, v[2], v[7], v[8], v[13]);  \\\n        G(r, 7, v[3], v[4], v[9], v[14]);  \\\n    } while (0)\n    ROUND(0);\n    ROUND(1);\n    ROUND(2);\n    ROUND(3);\n    ROUND(4);\n    ROUND(5);\n    ROUND(6);\n    ROUND(7);\n    ROUND(8);\n    ROUND(9);\n    ROUND(10);\n    ROUND(11);\n\n    for (i = 0; i < 8; ++i) {\n        S->h[i] = S->h[i] ^ v[i] ^ v[i + 8];\n    }\n\n#undef G\n#undef ROUND\n    return 0;\n}\n"
  },
  {
    "path": "src/libsodium/crypto_generichash/blake2b/ref/blake2b-compress-sse41.c",
    "content": "\n#define BLAKE2_USE_SSSE3\n#define BLAKE2_USE_SSE41\n\n#include <stdint.h>\n#include <string.h>\n\n#include \"blake2.h\"\n#include \"private/common.h\"\n\n#if defined(HAVE_EMMINTRIN_H) && defined(HAVE_TMMINTRIN_H) && \\\n    defined(HAVE_SMMINTRIN_H)\n\n# ifdef __clang__\n#  pragma clang attribute push(__attribute__((target(\"sse2,ssse3,sse4.1\"))), apply_to = function)\n# elif defined(__GNUC__)\n#  pragma GCC target(\"sse2,ssse3,sse4.1\")\n# endif\n\n# include <emmintrin.h>\n# include <smmintrin.h>\n# include <tmmintrin.h>\n# include \"private/sse2_64_32.h\"\n\n# include \"blake2b-compress-sse41.h\"\n\nCRYPTO_ALIGN(64)\nstatic const uint64_t blake2b_IV[8] = {\n    0x6a09e667f3bcc908ULL, 0xbb67ae8584caa73bULL, 0x3c6ef372fe94f82bULL,\n    0xa54ff53a5f1d36f1ULL, 0x510e527fade682d1ULL, 0x9b05688c2b3e6c1fULL,\n    0x1f83d9abfb41bd6bULL, 0x5be0cd19137e2179ULL\n};\n\nint\nblake2b_compress_sse41(blake2b_state *S,\n                       const uint8_t  block[BLAKE2B_BLOCKBYTES])\n{\n    __m128i       row1l, row1h;\n    __m128i       row2l, row2h;\n    __m128i       row3l, row3h;\n    __m128i       row4l, row4h;\n    __m128i       b0, b1;\n    __m128i       t0, t1;\n    const __m128i r16 =\n        _mm_setr_epi8(2, 3, 4, 5, 6, 7, 0, 1, 10, 11, 12, 13, 14, 15, 8, 9);\n    const __m128i r24 =\n        _mm_setr_epi8(3, 4, 5, 6, 7, 0, 1, 2, 11, 12, 13, 14, 15, 8, 9, 10);\n    const __m128i m0 = LOADU(block + 00);\n    const __m128i m1 = LOADU(block + 16);\n    const __m128i m2 = LOADU(block + 32);\n    const __m128i m3 = LOADU(block + 48);\n    const __m128i m4 = LOADU(block + 64);\n    const __m128i m5 = LOADU(block + 80);\n    const __m128i m6 = LOADU(block + 96);\n    const __m128i m7 = LOADU(block + 112);\n    row1l            = LOADU(&S->h[0]);\n    row1h            = LOADU(&S->h[2]);\n    row2l            = LOADU(&S->h[4]);\n    row2h            = LOADU(&S->h[6]);\n    row3l            = LOADU(&blake2b_IV[0]);\n    row3h            = LOADU(&blake2b_IV[2]);\n    row4l            = _mm_xor_si128(LOADU(&blake2b_IV[4]), LOADU(&S->t[0]));\n    row4h            = _mm_xor_si128(LOADU(&blake2b_IV[6]), LOADU(&S->f[0]));\n    ROUND(0);\n    ROUND(1);\n    ROUND(2);\n    ROUND(3);\n    ROUND(4);\n    ROUND(5);\n    ROUND(6);\n    ROUND(7);\n    ROUND(8);\n    ROUND(9);\n    ROUND(10);\n    ROUND(11);\n    row1l = _mm_xor_si128(row3l, row1l);\n    row1h = _mm_xor_si128(row3h, row1h);\n    STOREU(&S->h[0], _mm_xor_si128(LOADU(&S->h[0]), row1l));\n    STOREU(&S->h[2], _mm_xor_si128(LOADU(&S->h[2]), row1h));\n    row2l = _mm_xor_si128(row4l, row2l);\n    row2h = _mm_xor_si128(row4h, row2h);\n    STOREU(&S->h[4], _mm_xor_si128(LOADU(&S->h[4]), row2l));\n    STOREU(&S->h[6], _mm_xor_si128(LOADU(&S->h[6]), row2h));\n    return 0;\n}\n\n# ifdef __clang__\n#  pragma clang attribute pop\n# endif\n\n#endif\n"
  },
  {
    "path": "src/libsodium/crypto_generichash/blake2b/ref/blake2b-compress-sse41.h",
    "content": "\n#ifndef blake2b_compress_sse41_H\n#define blake2b_compress_sse41_H\n\n#define LOADU(p) _mm_loadu_si128((const __m128i *) (const void *) (p))\n#define STOREU(p, r) _mm_storeu_si128((__m128i *) (void *) (p), r)\n\n#if !(defined(_mm_roti_epi64) && defined(__XOP__))\n#undef  _mm_roti_epi64\n#define _mm_roti_epi64(x, c)                                         \\\n    (-(c) == 32)                                                     \\\n        ? _mm_shuffle_epi32((x), _MM_SHUFFLE(2, 3, 0, 1))            \\\n        : (-(c) == 24)                                               \\\n              ? _mm_shuffle_epi8((x), r24)                           \\\n              : (-(c) == 16)                                         \\\n                    ? _mm_shuffle_epi8((x), r16)                     \\\n                    : (-(c) == 63)                                   \\\n                          ? _mm_xor_si128(_mm_srli_epi64((x), -(c)), \\\n                                          _mm_add_epi64((x), (x)))   \\\n                          : _mm_xor_si128(_mm_srli_epi64((x), -(c)), \\\n                                          _mm_slli_epi64((x), 64 - (-(c))))\n#endif\n\n#define G1(row1l, row2l, row3l, row4l, row1h, row2h, row3h, row4h, b0, b1) \\\n    row1l = _mm_add_epi64(_mm_add_epi64(row1l, b0), row2l);                \\\n    row1h = _mm_add_epi64(_mm_add_epi64(row1h, b1), row2h);                \\\n                                                                           \\\n    row4l = _mm_xor_si128(row4l, row1l);                                   \\\n    row4h = _mm_xor_si128(row4h, row1h);                                   \\\n                                                                           \\\n    row4l = _mm_roti_epi64(row4l, -32);                                    \\\n    row4h = _mm_roti_epi64(row4h, -32);                                    \\\n                                                                           \\\n    row3l = _mm_add_epi64(row3l, row4l);                                   \\\n    row3h = _mm_add_epi64(row3h, row4h);                                   \\\n                                                                           \\\n    row2l = _mm_xor_si128(row2l, row3l);                                   \\\n    row2h = _mm_xor_si128(row2h, row3h);                                   \\\n                                                                           \\\n    row2l = _mm_roti_epi64(row2l, -24);                                    \\\n    row2h = _mm_roti_epi64(row2h, -24);\n\n#define G2(row1l, row2l, row3l, row4l, row1h, row2h, row3h, row4h, b0, b1) \\\n    row1l = _mm_add_epi64(_mm_add_epi64(row1l, b0), row2l);                \\\n    row1h = _mm_add_epi64(_mm_add_epi64(row1h, b1), row2h);                \\\n                                                                           \\\n    row4l = _mm_xor_si128(row4l, row1l);                                   \\\n    row4h = _mm_xor_si128(row4h, row1h);                                   \\\n                                                                           \\\n    row4l = _mm_roti_epi64(row4l, -16);                                    \\\n    row4h = _mm_roti_epi64(row4h, -16);                                    \\\n                                                                           \\\n    row3l = _mm_add_epi64(row3l, row4l);                                   \\\n    row3h = _mm_add_epi64(row3h, row4h);                                   \\\n                                                                           \\\n    row2l = _mm_xor_si128(row2l, row3l);                                   \\\n    row2h = _mm_xor_si128(row2h, row3h);                                   \\\n                                                                           \\\n    row2l = _mm_roti_epi64(row2l, -63);                                    \\\n    row2h = _mm_roti_epi64(row2h, -63);\n\n#define DIAGONALIZE(row1l, row2l, row3l, row4l, row1h, row2h, row3h, row4h) \\\n    t0    = _mm_alignr_epi8(row2h, row2l, 8);                               \\\n    t1    = _mm_alignr_epi8(row2l, row2h, 8);                               \\\n    row2l = t0;                                                             \\\n    row2h = t1;                                                             \\\n                                                                            \\\n    t0    = row3l;                                                          \\\n    row3l = row3h;                                                          \\\n    row3h = t0;                                                             \\\n                                                                            \\\n    t0    = _mm_alignr_epi8(row4h, row4l, 8);                               \\\n    t1    = _mm_alignr_epi8(row4l, row4h, 8);                               \\\n    row4l = t1;                                                             \\\n    row4h = t0;\n\n#define UNDIAGONALIZE(row1l, row2l, row3l, row4l, row1h, row2h, row3h, row4h) \\\n    t0    = _mm_alignr_epi8(row2l, row2h, 8);                                 \\\n    t1    = _mm_alignr_epi8(row2h, row2l, 8);                                 \\\n    row2l = t0;                                                               \\\n    row2h = t1;                                                               \\\n                                                                              \\\n    t0    = row3l;                                                            \\\n    row3l = row3h;                                                            \\\n    row3h = t0;                                                               \\\n                                                                              \\\n    t0    = _mm_alignr_epi8(row4l, row4h, 8);                                 \\\n    t1    = _mm_alignr_epi8(row4h, row4l, 8);                                 \\\n    row4l = t1;                                                               \\\n    row4h = t0;\n\n#include \"blake2b-load-sse41.h\"\n\n#define ROUND(r)                                                         \\\n    LOAD_MSG_##r##_1(b0, b1);                                            \\\n    G1(row1l, row2l, row3l, row4l, row1h, row2h, row3h, row4h, b0, b1);  \\\n    LOAD_MSG_##r##_2(b0, b1);                                            \\\n    G2(row1l, row2l, row3l, row4l, row1h, row2h, row3h, row4h, b0, b1);  \\\n    DIAGONALIZE(row1l, row2l, row3l, row4l, row1h, row2h, row3h, row4h); \\\n    LOAD_MSG_##r##_3(b0, b1);                                            \\\n    G1(row1l, row2l, row3l, row4l, row1h, row2h, row3h, row4h, b0, b1);  \\\n    LOAD_MSG_##r##_4(b0, b1);                                            \\\n    G2(row1l, row2l, row3l, row4l, row1h, row2h, row3h, row4h, b0, b1);  \\\n    UNDIAGONALIZE(row1l, row2l, row3l, row4l, row1h, row2h, row3h, row4h);\n\n#endif\n"
  },
  {
    "path": "src/libsodium/crypto_generichash/blake2b/ref/blake2b-compress-ssse3.c",
    "content": "\n#include <stdint.h>\n#include <string.h>\n\n#include \"blake2.h\"\n#include \"private/common.h\"\n\n#if defined(HAVE_EMMINTRIN_H) && defined(HAVE_TMMINTRIN_H)\n\n# ifdef __clang__\n#  pragma clang attribute push(__attribute__((target(\"sse2,ssse3\"))), apply_to = function)\n# elif defined(__GNUC__)\n#  pragma GCC target(\"sse2,ssse3\")\n# endif\n\n# include <emmintrin.h>\n# include <tmmintrin.h>\n# include \"private/sse2_64_32.h\"\n\n# include \"blake2b-compress-ssse3.h\"\n\nCRYPTO_ALIGN(64)\nstatic const uint64_t blake2b_IV[8] = {\n    0x6a09e667f3bcc908ULL, 0xbb67ae8584caa73bULL, 0x3c6ef372fe94f82bULL,\n    0xa54ff53a5f1d36f1ULL, 0x510e527fade682d1ULL, 0x9b05688c2b3e6c1fULL,\n    0x1f83d9abfb41bd6bULL, 0x5be0cd19137e2179ULL\n};\n\nint\nblake2b_compress_ssse3(blake2b_state *S,\n                       const uint8_t  block[BLAKE2B_BLOCKBYTES])\n{\n    __m128i       row1l, row1h;\n    __m128i       row2l, row2h;\n    __m128i       row3l, row3h;\n    __m128i       row4l, row4h;\n    __m128i       b0, b1;\n    __m128i       t0, t1;\n    const __m128i r16 =\n        _mm_setr_epi8(2, 3, 4, 5, 6, 7, 0, 1, 10, 11, 12, 13, 14, 15, 8, 9);\n    const __m128i r24 =\n        _mm_setr_epi8(3, 4, 5, 6, 7, 0, 1, 2, 11, 12, 13, 14, 15, 8, 9, 10);\n    const uint64_t m0  = ((const uint64_t *) block)[0];\n    const uint64_t m1  = ((const uint64_t *) block)[1];\n    const uint64_t m2  = ((const uint64_t *) block)[2];\n    const uint64_t m3  = ((const uint64_t *) block)[3];\n    const uint64_t m4  = ((const uint64_t *) block)[4];\n    const uint64_t m5  = ((const uint64_t *) block)[5];\n    const uint64_t m6  = ((const uint64_t *) block)[6];\n    const uint64_t m7  = ((const uint64_t *) block)[7];\n    const uint64_t m8  = ((const uint64_t *) block)[8];\n    const uint64_t m9  = ((const uint64_t *) block)[9];\n    const uint64_t m10 = ((const uint64_t *) block)[10];\n    const uint64_t m11 = ((const uint64_t *) block)[11];\n    const uint64_t m12 = ((const uint64_t *) block)[12];\n    const uint64_t m13 = ((const uint64_t *) block)[13];\n    const uint64_t m14 = ((const uint64_t *) block)[14];\n    const uint64_t m15 = ((const uint64_t *) block)[15];\n\n    row1l = LOADU(&S->h[0]);\n    row1h = LOADU(&S->h[2]);\n    row2l = LOADU(&S->h[4]);\n    row2h = LOADU(&S->h[6]);\n    row3l = LOADU(&blake2b_IV[0]);\n    row3h = LOADU(&blake2b_IV[2]);\n    row4l = _mm_xor_si128(LOADU(&blake2b_IV[4]), LOADU(&S->t[0]));\n    row4h = _mm_xor_si128(LOADU(&blake2b_IV[6]), LOADU(&S->f[0]));\n    ROUND(0);\n    ROUND(1);\n    ROUND(2);\n    ROUND(3);\n    ROUND(4);\n    ROUND(5);\n    ROUND(6);\n    ROUND(7);\n    ROUND(8);\n    ROUND(9);\n    ROUND(10);\n    ROUND(11);\n    row1l = _mm_xor_si128(row3l, row1l);\n    row1h = _mm_xor_si128(row3h, row1h);\n    STOREU(&S->h[0], _mm_xor_si128(LOADU(&S->h[0]), row1l));\n    STOREU(&S->h[2], _mm_xor_si128(LOADU(&S->h[2]), row1h));\n    row2l = _mm_xor_si128(row4l, row2l);\n    row2h = _mm_xor_si128(row4h, row2h);\n    STOREU(&S->h[4], _mm_xor_si128(LOADU(&S->h[4]), row2l));\n    STOREU(&S->h[6], _mm_xor_si128(LOADU(&S->h[6]), row2h));\n    return 0;\n}\n\n# ifdef __clang__\n#  pragma clang attribute pop\n# endif\n\n#endif\n"
  },
  {
    "path": "src/libsodium/crypto_generichash/blake2b/ref/blake2b-compress-ssse3.h",
    "content": "\n#ifndef blake2b_compress_ssse3_H\n#define blake2b_compress_ssse3_H\n\n#define LOADU(p) _mm_loadu_si128((const __m128i *) (const void *) (p))\n#define STOREU(p, r) _mm_storeu_si128((__m128i *) (void *) (p), r)\n\n#if !(defined(_mm_roti_epi64) && defined(__XOP__))\n#undef  _mm_roti_epi64\n#define _mm_roti_epi64(x, c)                                         \\\n    (-(c) == 32)                                                     \\\n        ? _mm_shuffle_epi32((x), _MM_SHUFFLE(2, 3, 0, 1))            \\\n        : (-(c) == 24)                                               \\\n              ? _mm_shuffle_epi8((x), r24)                           \\\n              : (-(c) == 16)                                         \\\n                    ? _mm_shuffle_epi8((x), r16)                     \\\n                    : (-(c) == 63)                                   \\\n                          ? _mm_xor_si128(_mm_srli_epi64((x), -(c)), \\\n                                          _mm_add_epi64((x), (x)))   \\\n                          : _mm_xor_si128(_mm_srli_epi64((x), -(c)), \\\n                                          _mm_slli_epi64((x), 64 - (-(c))))\n#endif\n\n#define G1(row1l, row2l, row3l, row4l, row1h, row2h, row3h, row4h, b0, b1) \\\n    row1l = _mm_add_epi64(_mm_add_epi64(row1l, b0), row2l);                \\\n    row1h = _mm_add_epi64(_mm_add_epi64(row1h, b1), row2h);                \\\n                                                                           \\\n    row4l = _mm_xor_si128(row4l, row1l);                                   \\\n    row4h = _mm_xor_si128(row4h, row1h);                                   \\\n                                                                           \\\n    row4l = _mm_roti_epi64(row4l, -32);                                    \\\n    row4h = _mm_roti_epi64(row4h, -32);                                    \\\n                                                                           \\\n    row3l = _mm_add_epi64(row3l, row4l);                                   \\\n    row3h = _mm_add_epi64(row3h, row4h);                                   \\\n                                                                           \\\n    row2l = _mm_xor_si128(row2l, row3l);                                   \\\n    row2h = _mm_xor_si128(row2h, row3h);                                   \\\n                                                                           \\\n    row2l = _mm_roti_epi64(row2l, -24);                                    \\\n    row2h = _mm_roti_epi64(row2h, -24);\n\n#define G2(row1l, row2l, row3l, row4l, row1h, row2h, row3h, row4h, b0, b1) \\\n    row1l = _mm_add_epi64(_mm_add_epi64(row1l, b0), row2l);                \\\n    row1h = _mm_add_epi64(_mm_add_epi64(row1h, b1), row2h);                \\\n                                                                           \\\n    row4l = _mm_xor_si128(row4l, row1l);                                   \\\n    row4h = _mm_xor_si128(row4h, row1h);                                   \\\n                                                                           \\\n    row4l = _mm_roti_epi64(row4l, -16);                                    \\\n    row4h = _mm_roti_epi64(row4h, -16);                                    \\\n                                                                           \\\n    row3l = _mm_add_epi64(row3l, row4l);                                   \\\n    row3h = _mm_add_epi64(row3h, row4h);                                   \\\n                                                                           \\\n    row2l = _mm_xor_si128(row2l, row3l);                                   \\\n    row2h = _mm_xor_si128(row2h, row3h);                                   \\\n                                                                           \\\n    row2l = _mm_roti_epi64(row2l, -63);                                    \\\n    row2h = _mm_roti_epi64(row2h, -63);\n\n#define DIAGONALIZE(row1l, row2l, row3l, row4l, row1h, row2h, row3h, row4h) \\\n    t0    = _mm_alignr_epi8(row2h, row2l, 8);                               \\\n    t1    = _mm_alignr_epi8(row2l, row2h, 8);                               \\\n    row2l = t0;                                                             \\\n    row2h = t1;                                                             \\\n                                                                            \\\n    t0    = row3l;                                                          \\\n    row3l = row3h;                                                          \\\n    row3h = t0;                                                             \\\n                                                                            \\\n    t0    = _mm_alignr_epi8(row4h, row4l, 8);                               \\\n    t1    = _mm_alignr_epi8(row4l, row4h, 8);                               \\\n    row4l = t1;                                                             \\\n    row4h = t0;\n\n#define UNDIAGONALIZE(row1l, row2l, row3l, row4l, row1h, row2h, row3h, row4h) \\\n    t0    = _mm_alignr_epi8(row2l, row2h, 8);                                 \\\n    t1    = _mm_alignr_epi8(row2h, row2l, 8);                                 \\\n    row2l = t0;                                                               \\\n    row2h = t1;                                                               \\\n                                                                              \\\n    t0    = row3l;                                                            \\\n    row3l = row3h;                                                            \\\n    row3h = t0;                                                               \\\n                                                                              \\\n    t0    = _mm_alignr_epi8(row4l, row4h, 8);                                 \\\n    t1    = _mm_alignr_epi8(row4h, row4l, 8);                                 \\\n    row4l = t1;                                                               \\\n    row4h = t0;\n\n#include \"blake2b-load-sse2.h\"\n\n#define ROUND(r)                                                         \\\n    LOAD_MSG_##r##_1(b0, b1);                                            \\\n    G1(row1l, row2l, row3l, row4l, row1h, row2h, row3h, row4h, b0, b1);  \\\n    LOAD_MSG_##r##_2(b0, b1);                                            \\\n    G2(row1l, row2l, row3l, row4l, row1h, row2h, row3h, row4h, b0, b1);  \\\n    DIAGONALIZE(row1l, row2l, row3l, row4l, row1h, row2h, row3h, row4h); \\\n    LOAD_MSG_##r##_3(b0, b1);                                            \\\n    G1(row1l, row2l, row3l, row4l, row1h, row2h, row3h, row4h, b0, b1);  \\\n    LOAD_MSG_##r##_4(b0, b1);                                            \\\n    G2(row1l, row2l, row3l, row4l, row1h, row2h, row3h, row4h, b0, b1);  \\\n    UNDIAGONALIZE(row1l, row2l, row3l, row4l, row1h, row2h, row3h, row4h);\n\n#endif\n"
  },
  {
    "path": "src/libsodium/crypto_generichash/blake2b/ref/blake2b-load-avx2.h",
    "content": "#ifndef blake2b_load_avx2_H\n#define blake2b_load_avx2_H\n\n#define BLAKE2B_LOAD_MSG_0_1(b0)               \\\n    do {                                       \\\n        t0 = _mm256_unpacklo_epi64(m0, m1);    \\\n        t1 = _mm256_unpacklo_epi64(m2, m3);    \\\n        b0 = _mm256_blend_epi32(t0, t1, 0xF0); \\\n    } while (0)\n\n#define BLAKE2B_LOAD_MSG_0_2(b0)               \\\n    do {                                       \\\n        t0 = _mm256_unpackhi_epi64(m0, m1);    \\\n        t1 = _mm256_unpackhi_epi64(m2, m3);    \\\n        b0 = _mm256_blend_epi32(t0, t1, 0xF0); \\\n    } while (0)\n\n#define BLAKE2B_LOAD_MSG_0_3(b0)               \\\n    do {                                       \\\n        t0 = _mm256_unpacklo_epi64(m7, m4);    \\\n        t1 = _mm256_unpacklo_epi64(m5, m6);    \\\n        b0 = _mm256_blend_epi32(t0, t1, 0xF0); \\\n    } while (0)\n\n#define BLAKE2B_LOAD_MSG_0_4(b0)               \\\n    do {                                       \\\n        t0 = _mm256_unpackhi_epi64(m7, m4);    \\\n        t1 = _mm256_unpackhi_epi64(m5, m6);    \\\n        b0 = _mm256_blend_epi32(t0, t1, 0xF0); \\\n    } while (0)\n\n#define BLAKE2B_LOAD_MSG_1_1(b0)               \\\n    do {                                       \\\n        t0 = _mm256_unpacklo_epi64(m7, m2);    \\\n        t1 = _mm256_unpackhi_epi64(m4, m6);    \\\n        b0 = _mm256_blend_epi32(t0, t1, 0xF0); \\\n    } while (0)\n\n#define BLAKE2B_LOAD_MSG_1_2(b0)               \\\n    do {                                       \\\n        t0 = _mm256_unpacklo_epi64(m5, m4);    \\\n        t1 = _mm256_alignr_epi8(m3, m7, 8);    \\\n        b0 = _mm256_blend_epi32(t0, t1, 0xF0); \\\n    } while (0)\n\n#define BLAKE2B_LOAD_MSG_1_3(b0)               \\\n    do {                                       \\\n        t0 = _mm256_unpackhi_epi64(m2, m0);    \\\n        t1 = _mm256_blend_epi32(m5, m0, 0x33); \\\n        b0 = _mm256_blend_epi32(t0, t1, 0xF0); \\\n    } while (0)\n\n#define BLAKE2B_LOAD_MSG_1_4(b0)               \\\n    do {                                       \\\n        t0 = _mm256_alignr_epi8(m6, m1, 8);    \\\n        t1 = _mm256_blend_epi32(m3, m1, 0x33); \\\n        b0 = _mm256_blend_epi32(t0, t1, 0xF0); \\\n    } while (0)\n\n#define BLAKE2B_LOAD_MSG_2_1(b0)               \\\n    do {                                       \\\n        t0 = _mm256_alignr_epi8(m6, m5, 8);    \\\n        t1 = _mm256_unpackhi_epi64(m2, m7);    \\\n        b0 = _mm256_blend_epi32(t0, t1, 0xF0); \\\n    } while (0)\n\n#define BLAKE2B_LOAD_MSG_2_2(b0)               \\\n    do {                                       \\\n        t0 = _mm256_unpacklo_epi64(m4, m0);    \\\n        t1 = _mm256_blend_epi32(m6, m1, 0x33); \\\n        b0 = _mm256_blend_epi32(t0, t1, 0xF0); \\\n    } while (0)\n\n#define BLAKE2B_LOAD_MSG_2_3(b0)               \\\n    do {                                       \\\n        t0 = _mm256_alignr_epi8(m5, m4, 8);    \\\n        t1 = _mm256_unpackhi_epi64(m1, m3);    \\\n        b0 = _mm256_blend_epi32(t0, t1, 0xF0); \\\n    } while (0)\n\n#define BLAKE2B_LOAD_MSG_2_4(b0)               \\\n    do {                                       \\\n        t0 = _mm256_unpacklo_epi64(m2, m7);    \\\n        t1 = _mm256_blend_epi32(m0, m3, 0x33); \\\n        b0 = _mm256_blend_epi32(t0, t1, 0xF0); \\\n    } while (0)\n\n#define BLAKE2B_LOAD_MSG_3_1(b0)               \\\n    do {                                       \\\n        t0 = _mm256_unpackhi_epi64(m3, m1);    \\\n        t1 = _mm256_unpackhi_epi64(m6, m5);    \\\n        b0 = _mm256_blend_epi32(t0, t1, 0xF0); \\\n    } while (0)\n\n#define BLAKE2B_LOAD_MSG_3_2(b0)               \\\n    do {                                       \\\n        t0 = _mm256_unpackhi_epi64(m4, m0);    \\\n        t1 = _mm256_unpacklo_epi64(m6, m7);    \\\n        b0 = _mm256_blend_epi32(t0, t1, 0xF0); \\\n    } while (0)\n\n#define BLAKE2B_LOAD_MSG_3_3(b0)                                \\\n    do {                                                        \\\n        t0 = _mm256_alignr_epi8(m1, m7, 8);                     \\\n        t1 = _mm256_shuffle_epi32(m2, _MM_SHUFFLE(1, 0, 3, 2)); \\\n        b0 = _mm256_blend_epi32(t0, t1, 0xF0);                  \\\n    } while (0)\n\n#define BLAKE2B_LOAD_MSG_3_4(b0)               \\\n    do {                                       \\\n        t0 = _mm256_unpacklo_epi64(m4, m3);    \\\n        t1 = _mm256_unpacklo_epi64(m5, m0);    \\\n        b0 = _mm256_blend_epi32(t0, t1, 0xF0); \\\n    } while (0)\n\n#define BLAKE2B_LOAD_MSG_4_1(b0)               \\\n    do {                                       \\\n        t0 = _mm256_unpackhi_epi64(m4, m2);    \\\n        t1 = _mm256_unpacklo_epi64(m1, m5);    \\\n        b0 = _mm256_blend_epi32(t0, t1, 0xF0); \\\n    } while (0)\n\n#define BLAKE2B_LOAD_MSG_4_2(b0)               \\\n    do {                                       \\\n        t0 = _mm256_blend_epi32(m3, m0, 0x33); \\\n        t1 = _mm256_blend_epi32(m7, m2, 0x33); \\\n        b0 = _mm256_blend_epi32(t0, t1, 0xF0); \\\n    } while (0)\n\n#define BLAKE2B_LOAD_MSG_4_3(b0)               \\\n    do {                                       \\\n        t0 = _mm256_alignr_epi8(m7, m1, 8);    \\\n        t1 = _mm256_alignr_epi8(m3, m5, 8);    \\\n        b0 = _mm256_blend_epi32(t0, t1, 0xF0); \\\n    } while (0)\n\n#define BLAKE2B_LOAD_MSG_4_4(b0)               \\\n    do {                                       \\\n        t0 = _mm256_unpackhi_epi64(m6, m0);    \\\n        t1 = _mm256_unpacklo_epi64(m6, m4);    \\\n        b0 = _mm256_blend_epi32(t0, t1, 0xF0); \\\n    } while (0)\n\n#define BLAKE2B_LOAD_MSG_5_1(b0)               \\\n    do {                                       \\\n        t0 = _mm256_unpacklo_epi64(m1, m3);    \\\n        t1 = _mm256_unpacklo_epi64(m0, m4);    \\\n        b0 = _mm256_blend_epi32(t0, t1, 0xF0); \\\n    } while (0)\n\n#define BLAKE2B_LOAD_MSG_5_2(b0)               \\\n    do {                                       \\\n        t0 = _mm256_unpacklo_epi64(m6, m5);    \\\n        t1 = _mm256_unpackhi_epi64(m5, m1);    \\\n        b0 = _mm256_blend_epi32(t0, t1, 0xF0); \\\n    } while (0)\n\n#define BLAKE2B_LOAD_MSG_5_3(b0)               \\\n    do {                                       \\\n        t0 = _mm256_alignr_epi8(m2, m0, 8);    \\\n        t1 = _mm256_unpackhi_epi64(m3, m7);    \\\n        b0 = _mm256_blend_epi32(t0, t1, 0xF0); \\\n    } while (0)\n\n#define BLAKE2B_LOAD_MSG_5_4(b0)               \\\n    do {                                       \\\n        t0 = _mm256_unpackhi_epi64(m4, m6);    \\\n        t1 = _mm256_alignr_epi8(m7, m2, 8);    \\\n        b0 = _mm256_blend_epi32(t0, t1, 0xF0); \\\n    } while (0)\n\n#define BLAKE2B_LOAD_MSG_6_1(b0)               \\\n    do {                                       \\\n        t0 = _mm256_blend_epi32(m0, m6, 0x33); \\\n        t1 = _mm256_unpacklo_epi64(m7, m2);    \\\n        b0 = _mm256_blend_epi32(t0, t1, 0xF0); \\\n    } while (0)\n\n#define BLAKE2B_LOAD_MSG_6_2(b0)               \\\n    do {                                       \\\n        t0 = _mm256_unpackhi_epi64(m2, m7);    \\\n        t1 = _mm256_alignr_epi8(m5, m6, 8);    \\\n        b0 = _mm256_blend_epi32(t0, t1, 0xF0); \\\n    } while (0)\n\n#define BLAKE2B_LOAD_MSG_6_3(b0)               \\\n    do {                                       \\\n        t0 = _mm256_unpacklo_epi64(m4, m0);    \\\n        t1 = _mm256_blend_epi32(m4, m3, 0x33); \\\n        b0 = _mm256_blend_epi32(t0, t1, 0xF0); \\\n    } while (0)\n\n#define BLAKE2B_LOAD_MSG_6_4(b0)                                \\\n    do {                                                        \\\n        t0 = _mm256_unpackhi_epi64(m5, m3);                     \\\n        t1 = _mm256_shuffle_epi32(m1, _MM_SHUFFLE(1, 0, 3, 2)); \\\n        b0 = _mm256_blend_epi32(t0, t1, 0xF0);                  \\\n    } while (0)\n\n#define BLAKE2B_LOAD_MSG_7_1(b0)               \\\n    do {                                       \\\n        t0 = _mm256_unpackhi_epi64(m6, m3);    \\\n        t1 = _mm256_blend_epi32(m1, m6, 0x33); \\\n        b0 = _mm256_blend_epi32(t0, t1, 0xF0); \\\n    } while (0)\n\n#define BLAKE2B_LOAD_MSG_7_2(b0)               \\\n    do {                                       \\\n        t0 = _mm256_alignr_epi8(m7, m5, 8);    \\\n        t1 = _mm256_unpackhi_epi64(m0, m4);    \\\n        b0 = _mm256_blend_epi32(t0, t1, 0xF0); \\\n    } while (0)\n\n#define BLAKE2B_LOAD_MSG_7_3(b0)               \\\n    do {                                       \\\n        t0 = _mm256_blend_epi32(m2, m1, 0x33); \\\n        t1 = _mm256_alignr_epi8(m4, m7, 8);    \\\n        b0 = _mm256_blend_epi32(t0, t1, 0xF0); \\\n    } while (0)\n\n#define BLAKE2B_LOAD_MSG_7_4(b0)               \\\n    do {                                       \\\n        t0 = _mm256_unpacklo_epi64(m5, m0);    \\\n        t1 = _mm256_unpacklo_epi64(m2, m3);    \\\n        b0 = _mm256_blend_epi32(t0, t1, 0xF0); \\\n    } while (0)\n\n#define BLAKE2B_LOAD_MSG_8_1(b0)               \\\n    do {                                       \\\n        t0 = _mm256_unpacklo_epi64(m3, m7);    \\\n        t1 = _mm256_alignr_epi8(m0, m5, 8);    \\\n        b0 = _mm256_blend_epi32(t0, t1, 0xF0); \\\n    } while (0)\n\n#define BLAKE2B_LOAD_MSG_8_2(b0)               \\\n    do {                                       \\\n        t0 = _mm256_unpackhi_epi64(m7, m4);    \\\n        t1 = _mm256_alignr_epi8(m4, m1, 8);    \\\n        b0 = _mm256_blend_epi32(t0, t1, 0xF0); \\\n    } while (0)\n\n#define BLAKE2B_LOAD_MSG_8_3(b0)               \\\n    do {                                       \\\n        t0 = _mm256_unpacklo_epi64(m5, m6);    \\\n        t1 = _mm256_unpackhi_epi64(m6, m0);    \\\n        b0 = _mm256_blend_epi32(t0, t1, 0xF0); \\\n    } while (0)\n\n#define BLAKE2B_LOAD_MSG_8_4(b0)               \\\n    do {                                       \\\n        t0 = _mm256_alignr_epi8(m1, m2, 8);    \\\n        t1 = _mm256_alignr_epi8(m2, m3, 8);    \\\n        b0 = _mm256_blend_epi32(t0, t1, 0xF0); \\\n    } while (0)\n\n#define BLAKE2B_LOAD_MSG_9_1(b0)               \\\n    do {                                       \\\n        t0 = _mm256_unpacklo_epi64(m5, m4);    \\\n        t1 = _mm256_unpackhi_epi64(m3, m0);    \\\n        b0 = _mm256_blend_epi32(t0, t1, 0xF0); \\\n    } while (0)\n\n#define BLAKE2B_LOAD_MSG_9_2(b0)               \\\n    do {                                       \\\n        t0 = _mm256_unpacklo_epi64(m1, m2);    \\\n        t1 = _mm256_blend_epi32(m2, m3, 0x33); \\\n        b0 = _mm256_blend_epi32(t0, t1, 0xF0); \\\n    } while (0)\n\n#define BLAKE2B_LOAD_MSG_9_3(b0)               \\\n    do {                                       \\\n        t0 = _mm256_unpackhi_epi64(m6, m7);    \\\n        t1 = _mm256_unpackhi_epi64(m4, m1);    \\\n        b0 = _mm256_blend_epi32(t0, t1, 0xF0); \\\n    } while (0)\n\n#define BLAKE2B_LOAD_MSG_9_4(b0)               \\\n    do {                                       \\\n        t0 = _mm256_blend_epi32(m5, m0, 0x33); \\\n        t1 = _mm256_unpacklo_epi64(m7, m6);    \\\n        b0 = _mm256_blend_epi32(t0, t1, 0xF0); \\\n    } while (0)\n\n#define BLAKE2B_LOAD_MSG_10_1(b0)              \\\n    do {                                       \\\n        t0 = _mm256_unpacklo_epi64(m0, m1);    \\\n        t1 = _mm256_unpacklo_epi64(m2, m3);    \\\n        b0 = _mm256_blend_epi32(t0, t1, 0xF0); \\\n    } while (0)\n\n#define BLAKE2B_LOAD_MSG_10_2(b0)              \\\n    do {                                       \\\n        t0 = _mm256_unpackhi_epi64(m0, m1);    \\\n        t1 = _mm256_unpackhi_epi64(m2, m3);    \\\n        b0 = _mm256_blend_epi32(t0, t1, 0xF0); \\\n    } while (0)\n\n#define BLAKE2B_LOAD_MSG_10_3(b0)              \\\n    do {                                       \\\n        t0 = _mm256_unpacklo_epi64(m7, m4);    \\\n        t1 = _mm256_unpacklo_epi64(m5, m6);    \\\n        b0 = _mm256_blend_epi32(t0, t1, 0xF0); \\\n    } while (0)\n\n#define BLAKE2B_LOAD_MSG_10_4(b0)              \\\n    do {                                       \\\n        t0 = _mm256_unpackhi_epi64(m7, m4);    \\\n        t1 = _mm256_unpackhi_epi64(m5, m6);    \\\n        b0 = _mm256_blend_epi32(t0, t1, 0xF0); \\\n    } while (0)\n\n#define BLAKE2B_LOAD_MSG_11_1(b0)              \\\n    do {                                       \\\n        t0 = _mm256_unpacklo_epi64(m7, m2);    \\\n        t1 = _mm256_unpackhi_epi64(m4, m6);    \\\n        b0 = _mm256_blend_epi32(t0, t1, 0xF0); \\\n    } while (0)\n\n#define BLAKE2B_LOAD_MSG_11_2(b0)              \\\n    do {                                       \\\n        t0 = _mm256_unpacklo_epi64(m5, m4);    \\\n        t1 = _mm256_alignr_epi8(m3, m7, 8);    \\\n        b0 = _mm256_blend_epi32(t0, t1, 0xF0); \\\n    } while (0)\n\n#define BLAKE2B_LOAD_MSG_11_3(b0)              \\\n    do {                                       \\\n        t0 = _mm256_unpackhi_epi64(m2, m0);    \\\n        t1 = _mm256_blend_epi32(m5, m0, 0x33); \\\n        b0 = _mm256_blend_epi32(t0, t1, 0xF0); \\\n    } while (0)\n\n#define BLAKE2B_LOAD_MSG_11_4(b0)              \\\n    do {                                       \\\n        t0 = _mm256_alignr_epi8(m6, m1, 8);    \\\n        t1 = _mm256_blend_epi32(m3, m1, 0x33); \\\n        b0 = _mm256_blend_epi32(t0, t1, 0xF0); \\\n    } while (0)\n\n#endif\n"
  },
  {
    "path": "src/libsodium/crypto_generichash/blake2b/ref/blake2b-load-sse2.h",
    "content": "/*\n   BLAKE2 reference source code package - optimized C implementations\n\n   Written in 2012 by Samuel Neves <sneves@dei.uc.pt>\n\n   To the extent possible under law, the author(s) have dedicated all copyright\n   and related and neighboring rights to this software to the public domain\n   worldwide. This software is distributed without any warranty.\n\n   You should have received a copy of the CC0 Public Domain Dedication along\n   with\n   this software. If not, see\n   <http://creativecommons.org/publicdomain/zero/1.0/>.\n*/\n\n#ifndef blake2b_load_sse2_H\n#define blake2b_load_sse2_H\n\n#define LOAD_MSG_0_1(b0, b1)     \\\n    b0 = _mm_set_epi64x(m2, m0); \\\n    b1 = _mm_set_epi64x(m6, m4)\n#define LOAD_MSG_0_2(b0, b1)     \\\n    b0 = _mm_set_epi64x(m3, m1); \\\n    b1 = _mm_set_epi64x(m7, m5)\n#define LOAD_MSG_0_3(b0, b1)      \\\n    b0 = _mm_set_epi64x(m10, m8); \\\n    b1 = _mm_set_epi64x(m14, m12)\n#define LOAD_MSG_0_4(b0, b1)      \\\n    b0 = _mm_set_epi64x(m11, m9); \\\n    b1 = _mm_set_epi64x(m15, m13)\n#define LOAD_MSG_1_1(b0, b1)      \\\n    b0 = _mm_set_epi64x(m4, m14); \\\n    b1 = _mm_set_epi64x(m13, m9)\n#define LOAD_MSG_1_2(b0, b1)      \\\n    b0 = _mm_set_epi64x(m8, m10); \\\n    b1 = _mm_set_epi64x(m6, m15)\n#define LOAD_MSG_1_3(b0, b1)     \\\n    b0 = _mm_set_epi64x(m0, m1); \\\n    b1 = _mm_set_epi64x(m5, m11)\n#define LOAD_MSG_1_4(b0, b1)      \\\n    b0 = _mm_set_epi64x(m2, m12); \\\n    b1 = _mm_set_epi64x(m3, m7)\n#define LOAD_MSG_2_1(b0, b1)       \\\n    b0 = _mm_set_epi64x(m12, m11); \\\n    b1 = _mm_set_epi64x(m15, m5)\n#define LOAD_MSG_2_2(b0, b1)     \\\n    b0 = _mm_set_epi64x(m0, m8); \\\n    b1 = _mm_set_epi64x(m13, m2)\n#define LOAD_MSG_2_3(b0, b1)      \\\n    b0 = _mm_set_epi64x(m3, m10); \\\n    b1 = _mm_set_epi64x(m9, m7)\n#define LOAD_MSG_2_4(b0, b1)      \\\n    b0 = _mm_set_epi64x(m6, m14); \\\n    b1 = _mm_set_epi64x(m4, m1)\n#define LOAD_MSG_3_1(b0, b1)     \\\n    b0 = _mm_set_epi64x(m3, m7); \\\n    b1 = _mm_set_epi64x(m11, m13)\n#define LOAD_MSG_3_2(b0, b1)     \\\n    b0 = _mm_set_epi64x(m1, m9); \\\n    b1 = _mm_set_epi64x(m14, m12)\n#define LOAD_MSG_3_3(b0, b1)     \\\n    b0 = _mm_set_epi64x(m5, m2); \\\n    b1 = _mm_set_epi64x(m15, m4)\n#define LOAD_MSG_3_4(b0, b1)      \\\n    b0 = _mm_set_epi64x(m10, m6); \\\n    b1 = _mm_set_epi64x(m8, m0)\n#define LOAD_MSG_4_1(b0, b1)     \\\n    b0 = _mm_set_epi64x(m5, m9); \\\n    b1 = _mm_set_epi64x(m10, m2)\n#define LOAD_MSG_4_2(b0, b1)     \\\n    b0 = _mm_set_epi64x(m7, m0); \\\n    b1 = _mm_set_epi64x(m15, m4)\n#define LOAD_MSG_4_3(b0, b1)       \\\n    b0 = _mm_set_epi64x(m11, m14); \\\n    b1 = _mm_set_epi64x(m3, m6)\n#define LOAD_MSG_4_4(b0, b1)      \\\n    b0 = _mm_set_epi64x(m12, m1); \\\n    b1 = _mm_set_epi64x(m13, m8)\n#define LOAD_MSG_5_1(b0, b1)     \\\n    b0 = _mm_set_epi64x(m6, m2); \\\n    b1 = _mm_set_epi64x(m8, m0)\n#define LOAD_MSG_5_2(b0, b1)       \\\n    b0 = _mm_set_epi64x(m10, m12); \\\n    b1 = _mm_set_epi64x(m3, m11)\n#define LOAD_MSG_5_3(b0, b1)     \\\n    b0 = _mm_set_epi64x(m7, m4); \\\n    b1 = _mm_set_epi64x(m1, m15)\n#define LOAD_MSG_5_4(b0, b1)      \\\n    b0 = _mm_set_epi64x(m5, m13); \\\n    b1 = _mm_set_epi64x(m9, m14)\n#define LOAD_MSG_6_1(b0, b1)      \\\n    b0 = _mm_set_epi64x(m1, m12); \\\n    b1 = _mm_set_epi64x(m4, m14)\n#define LOAD_MSG_6_2(b0, b1)      \\\n    b0 = _mm_set_epi64x(m15, m5); \\\n    b1 = _mm_set_epi64x(m10, m13)\n#define LOAD_MSG_6_3(b0, b1)     \\\n    b0 = _mm_set_epi64x(m6, m0); \\\n    b1 = _mm_set_epi64x(m8, m9)\n#define LOAD_MSG_6_4(b0, b1)     \\\n    b0 = _mm_set_epi64x(m3, m7); \\\n    b1 = _mm_set_epi64x(m11, m2)\n#define LOAD_MSG_7_1(b0, b1)      \\\n    b0 = _mm_set_epi64x(m7, m13); \\\n    b1 = _mm_set_epi64x(m3, m12)\n#define LOAD_MSG_7_2(b0, b1)       \\\n    b0 = _mm_set_epi64x(m14, m11); \\\n    b1 = _mm_set_epi64x(m9, m1)\n#define LOAD_MSG_7_3(b0, b1)      \\\n    b0 = _mm_set_epi64x(m15, m5); \\\n    b1 = _mm_set_epi64x(m2, m8)\n#define LOAD_MSG_7_4(b0, b1)     \\\n    b0 = _mm_set_epi64x(m4, m0); \\\n    b1 = _mm_set_epi64x(m10, m6)\n#define LOAD_MSG_8_1(b0, b1)      \\\n    b0 = _mm_set_epi64x(m14, m6); \\\n    b1 = _mm_set_epi64x(m0, m11)\n#define LOAD_MSG_8_2(b0, b1)      \\\n    b0 = _mm_set_epi64x(m9, m15); \\\n    b1 = _mm_set_epi64x(m8, m3)\n#define LOAD_MSG_8_3(b0, b1)       \\\n    b0 = _mm_set_epi64x(m13, m12); \\\n    b1 = _mm_set_epi64x(m10, m1)\n#define LOAD_MSG_8_4(b0, b1)     \\\n    b0 = _mm_set_epi64x(m7, m2); \\\n    b1 = _mm_set_epi64x(m5, m4)\n#define LOAD_MSG_9_1(b0, b1)      \\\n    b0 = _mm_set_epi64x(m8, m10); \\\n    b1 = _mm_set_epi64x(m1, m7)\n#define LOAD_MSG_9_2(b0, b1)     \\\n    b0 = _mm_set_epi64x(m4, m2); \\\n    b1 = _mm_set_epi64x(m5, m6)\n#define LOAD_MSG_9_3(b0, b1)      \\\n    b0 = _mm_set_epi64x(m9, m15); \\\n    b1 = _mm_set_epi64x(m13, m3)\n#define LOAD_MSG_9_4(b0, b1)       \\\n    b0 = _mm_set_epi64x(m14, m11); \\\n    b1 = _mm_set_epi64x(m0, m12)\n#define LOAD_MSG_10_1(b0, b1)    \\\n    b0 = _mm_set_epi64x(m2, m0); \\\n    b1 = _mm_set_epi64x(m6, m4)\n#define LOAD_MSG_10_2(b0, b1)    \\\n    b0 = _mm_set_epi64x(m3, m1); \\\n    b1 = _mm_set_epi64x(m7, m5)\n#define LOAD_MSG_10_3(b0, b1)     \\\n    b0 = _mm_set_epi64x(m10, m8); \\\n    b1 = _mm_set_epi64x(m14, m12)\n#define LOAD_MSG_10_4(b0, b1)     \\\n    b0 = _mm_set_epi64x(m11, m9); \\\n    b1 = _mm_set_epi64x(m15, m13)\n#define LOAD_MSG_11_1(b0, b1)     \\\n    b0 = _mm_set_epi64x(m4, m14); \\\n    b1 = _mm_set_epi64x(m13, m9)\n#define LOAD_MSG_11_2(b0, b1)     \\\n    b0 = _mm_set_epi64x(m8, m10); \\\n    b1 = _mm_set_epi64x(m6, m15)\n#define LOAD_MSG_11_3(b0, b1)    \\\n    b0 = _mm_set_epi64x(m0, m1); \\\n    b1 = _mm_set_epi64x(m5, m11)\n#define LOAD_MSG_11_4(b0, b1)     \\\n    b0 = _mm_set_epi64x(m2, m12); \\\n    b1 = _mm_set_epi64x(m3, m7)\n\n#endif\n"
  },
  {
    "path": "src/libsodium/crypto_generichash/blake2b/ref/blake2b-load-sse41.h",
    "content": "/*\n   BLAKE2 reference source code package - optimized C implementations\n\n   Written in 2012 by Samuel Neves <sneves@dei.uc.pt>\n\n   To the extent possible under law, the author(s) have dedicated all copyright\n   and related and neighboring rights to this software to the public domain\n   worldwide. This software is distributed without any warranty.\n\n   You should have received a copy of the CC0 Public Domain Dedication along\n   with\n   this software. If not, see\n   <http://creativecommons.org/publicdomain/zero/1.0/>.\n*/\n\n#ifndef blake2b_load_sse41_H\n#define blake2b_load_sse41_H\n\n#define LOAD_MSG_0_1(b0, b1)             \\\n    do {                                 \\\n        b0 = _mm_unpacklo_epi64(m0, m1); \\\n        b1 = _mm_unpacklo_epi64(m2, m3); \\\n    } while (0)\n\n#define LOAD_MSG_0_2(b0, b1)             \\\n    do {                                 \\\n        b0 = _mm_unpackhi_epi64(m0, m1); \\\n        b1 = _mm_unpackhi_epi64(m2, m3); \\\n    } while (0)\n\n#define LOAD_MSG_0_3(b0, b1)             \\\n    do {                                 \\\n        b0 = _mm_unpacklo_epi64(m4, m5); \\\n        b1 = _mm_unpacklo_epi64(m6, m7); \\\n    } while (0)\n\n#define LOAD_MSG_0_4(b0, b1)             \\\n    do {                                 \\\n        b0 = _mm_unpackhi_epi64(m4, m5); \\\n        b1 = _mm_unpackhi_epi64(m6, m7); \\\n    } while (0)\n\n#define LOAD_MSG_1_1(b0, b1)             \\\n    do {                                 \\\n        b0 = _mm_unpacklo_epi64(m7, m2); \\\n        b1 = _mm_unpackhi_epi64(m4, m6); \\\n    } while (0)\n\n#define LOAD_MSG_1_2(b0, b1)             \\\n    do {                                 \\\n        b0 = _mm_unpacklo_epi64(m5, m4); \\\n        b1 = _mm_alignr_epi8(m3, m7, 8); \\\n    } while (0)\n\n#define LOAD_MSG_1_3(b0, b1)                                 \\\n    do {                                                     \\\n        b0 = _mm_shuffle_epi32(m0, _MM_SHUFFLE(1, 0, 3, 2)); \\\n        b1 = _mm_unpackhi_epi64(m5, m2);                     \\\n    } while (0)\n\n#define LOAD_MSG_1_4(b0, b1)             \\\n    do {                                 \\\n        b0 = _mm_unpacklo_epi64(m6, m1); \\\n        b1 = _mm_unpackhi_epi64(m3, m1); \\\n    } while (0)\n\n#define LOAD_MSG_2_1(b0, b1)             \\\n    do {                                 \\\n        b0 = _mm_alignr_epi8(m6, m5, 8); \\\n        b1 = _mm_unpackhi_epi64(m2, m7); \\\n    } while (0)\n\n#define LOAD_MSG_2_2(b0, b1)                \\\n    do {                                    \\\n        b0 = _mm_unpacklo_epi64(m4, m0);    \\\n        b1 = _mm_blend_epi16(m1, m6, 0xF0); \\\n    } while (0)\n\n#define LOAD_MSG_2_3(b0, b1)                \\\n    do {                                    \\\n        b0 = _mm_blend_epi16(m5, m1, 0xF0); \\\n        b1 = _mm_unpackhi_epi64(m3, m4);    \\\n    } while (0)\n\n#define LOAD_MSG_2_4(b0, b1)             \\\n    do {                                 \\\n        b0 = _mm_unpacklo_epi64(m7, m3); \\\n        b1 = _mm_alignr_epi8(m2, m0, 8); \\\n    } while (0)\n\n#define LOAD_MSG_3_1(b0, b1)             \\\n    do {                                 \\\n        b0 = _mm_unpackhi_epi64(m3, m1); \\\n        b1 = _mm_unpackhi_epi64(m6, m5); \\\n    } while (0)\n\n#define LOAD_MSG_3_2(b0, b1)             \\\n    do {                                 \\\n        b0 = _mm_unpackhi_epi64(m4, m0); \\\n        b1 = _mm_unpacklo_epi64(m6, m7); \\\n    } while (0)\n\n#define LOAD_MSG_3_3(b0, b1)                \\\n    do {                                    \\\n        b0 = _mm_blend_epi16(m1, m2, 0xF0); \\\n        b1 = _mm_blend_epi16(m2, m7, 0xF0); \\\n    } while (0)\n\n#define LOAD_MSG_3_4(b0, b1)             \\\n    do {                                 \\\n        b0 = _mm_unpacklo_epi64(m3, m5); \\\n        b1 = _mm_unpacklo_epi64(m0, m4); \\\n    } while (0)\n\n#define LOAD_MSG_4_1(b0, b1)             \\\n    do {                                 \\\n        b0 = _mm_unpackhi_epi64(m4, m2); \\\n        b1 = _mm_unpacklo_epi64(m1, m5); \\\n    } while (0)\n\n#define LOAD_MSG_4_2(b0, b1)                \\\n    do {                                    \\\n        b0 = _mm_blend_epi16(m0, m3, 0xF0); \\\n        b1 = _mm_blend_epi16(m2, m7, 0xF0); \\\n    } while (0)\n\n#define LOAD_MSG_4_3(b0, b1)                \\\n    do {                                    \\\n        b0 = _mm_blend_epi16(m7, m5, 0xF0); \\\n        b1 = _mm_blend_epi16(m3, m1, 0xF0); \\\n    } while (0)\n\n#define LOAD_MSG_4_4(b0, b1)                \\\n    do {                                    \\\n        b0 = _mm_alignr_epi8(m6, m0, 8);    \\\n        b1 = _mm_blend_epi16(m4, m6, 0xF0); \\\n    } while (0)\n\n#define LOAD_MSG_5_1(b0, b1)             \\\n    do {                                 \\\n        b0 = _mm_unpacklo_epi64(m1, m3); \\\n        b1 = _mm_unpacklo_epi64(m0, m4); \\\n    } while (0)\n\n#define LOAD_MSG_5_2(b0, b1)             \\\n    do {                                 \\\n        b0 = _mm_unpacklo_epi64(m6, m5); \\\n        b1 = _mm_unpackhi_epi64(m5, m1); \\\n    } while (0)\n\n#define LOAD_MSG_5_3(b0, b1)                \\\n    do {                                    \\\n        b0 = _mm_blend_epi16(m2, m3, 0xF0); \\\n        b1 = _mm_unpackhi_epi64(m7, m0);    \\\n    } while (0)\n\n#define LOAD_MSG_5_4(b0, b1)                \\\n    do {                                    \\\n        b0 = _mm_unpackhi_epi64(m6, m2);    \\\n        b1 = _mm_blend_epi16(m7, m4, 0xF0); \\\n    } while (0)\n\n#define LOAD_MSG_6_1(b0, b1)                \\\n    do {                                    \\\n        b0 = _mm_blend_epi16(m6, m0, 0xF0); \\\n        b1 = _mm_unpacklo_epi64(m7, m2);    \\\n    } while (0)\n\n#define LOAD_MSG_6_2(b0, b1)             \\\n    do {                                 \\\n        b0 = _mm_unpackhi_epi64(m2, m7); \\\n        b1 = _mm_alignr_epi8(m5, m6, 8); \\\n    } while (0)\n\n#define LOAD_MSG_6_3(b0, b1)                                 \\\n    do {                                                     \\\n        b0 = _mm_unpacklo_epi64(m0, m3);                     \\\n        b1 = _mm_shuffle_epi32(m4, _MM_SHUFFLE(1, 0, 3, 2)); \\\n    } while (0)\n\n#define LOAD_MSG_6_4(b0, b1)                \\\n    do {                                    \\\n        b0 = _mm_unpackhi_epi64(m3, m1);    \\\n        b1 = _mm_blend_epi16(m1, m5, 0xF0); \\\n    } while (0)\n\n#define LOAD_MSG_7_1(b0, b1)                \\\n    do {                                    \\\n        b0 = _mm_unpackhi_epi64(m6, m3);    \\\n        b1 = _mm_blend_epi16(m6, m1, 0xF0); \\\n    } while (0)\n\n#define LOAD_MSG_7_2(b0, b1)             \\\n    do {                                 \\\n        b0 = _mm_alignr_epi8(m7, m5, 8); \\\n        b1 = _mm_unpackhi_epi64(m0, m4); \\\n    } while (0)\n\n#define LOAD_MSG_7_3(b0, b1)             \\\n    do {                                 \\\n        b0 = _mm_unpackhi_epi64(m2, m7); \\\n        b1 = _mm_unpacklo_epi64(m4, m1); \\\n    } while (0)\n\n#define LOAD_MSG_7_4(b0, b1)             \\\n    do {                                 \\\n        b0 = _mm_unpacklo_epi64(m0, m2); \\\n        b1 = _mm_unpacklo_epi64(m3, m5); \\\n    } while (0)\n\n#define LOAD_MSG_8_1(b0, b1)             \\\n    do {                                 \\\n        b0 = _mm_unpacklo_epi64(m3, m7); \\\n        b1 = _mm_alignr_epi8(m0, m5, 8); \\\n    } while (0)\n\n#define LOAD_MSG_8_2(b0, b1)             \\\n    do {                                 \\\n        b0 = _mm_unpackhi_epi64(m7, m4); \\\n        b1 = _mm_alignr_epi8(m4, m1, 8); \\\n    } while (0)\n\n#define LOAD_MSG_8_3(b0, b1)             \\\n    do {                                 \\\n        b0 = m6;                         \\\n        b1 = _mm_alignr_epi8(m5, m0, 8); \\\n    } while (0)\n\n#define LOAD_MSG_8_4(b0, b1)                \\\n    do {                                    \\\n        b0 = _mm_blend_epi16(m1, m3, 0xF0); \\\n        b1 = m2;                            \\\n    } while (0)\n\n#define LOAD_MSG_9_1(b0, b1)             \\\n    do {                                 \\\n        b0 = _mm_unpacklo_epi64(m5, m4); \\\n        b1 = _mm_unpackhi_epi64(m3, m0); \\\n    } while (0)\n\n#define LOAD_MSG_9_2(b0, b1)                \\\n    do {                                    \\\n        b0 = _mm_unpacklo_epi64(m1, m2);    \\\n        b1 = _mm_blend_epi16(m3, m2, 0xF0); \\\n    } while (0)\n\n#define LOAD_MSG_9_3(b0, b1)             \\\n    do {                                 \\\n        b0 = _mm_unpackhi_epi64(m7, m4); \\\n        b1 = _mm_unpackhi_epi64(m1, m6); \\\n    } while (0)\n\n#define LOAD_MSG_9_4(b0, b1)             \\\n    do {                                 \\\n        b0 = _mm_alignr_epi8(m7, m5, 8); \\\n        b1 = _mm_unpacklo_epi64(m6, m0); \\\n    } while (0)\n\n#define LOAD_MSG_10_1(b0, b1)            \\\n    do {                                 \\\n        b0 = _mm_unpacklo_epi64(m0, m1); \\\n        b1 = _mm_unpacklo_epi64(m2, m3); \\\n    } while (0)\n\n#define LOAD_MSG_10_2(b0, b1)            \\\n    do {                                 \\\n        b0 = _mm_unpackhi_epi64(m0, m1); \\\n        b1 = _mm_unpackhi_epi64(m2, m3); \\\n    } while (0)\n\n#define LOAD_MSG_10_3(b0, b1)            \\\n    do {                                 \\\n        b0 = _mm_unpacklo_epi64(m4, m5); \\\n        b1 = _mm_unpacklo_epi64(m6, m7); \\\n    } while (0)\n\n#define LOAD_MSG_10_4(b0, b1)            \\\n    do {                                 \\\n        b0 = _mm_unpackhi_epi64(m4, m5); \\\n        b1 = _mm_unpackhi_epi64(m6, m7); \\\n    } while (0)\n\n#define LOAD_MSG_11_1(b0, b1)            \\\n    do {                                 \\\n        b0 = _mm_unpacklo_epi64(m7, m2); \\\n        b1 = _mm_unpackhi_epi64(m4, m6); \\\n    } while (0)\n\n#define LOAD_MSG_11_2(b0, b1)            \\\n    do {                                 \\\n        b0 = _mm_unpacklo_epi64(m5, m4); \\\n        b1 = _mm_alignr_epi8(m3, m7, 8); \\\n    } while (0)\n\n#define LOAD_MSG_11_3(b0, b1)                                \\\n    do {                                                     \\\n        b0 = _mm_shuffle_epi32(m0, _MM_SHUFFLE(1, 0, 3, 2)); \\\n        b1 = _mm_unpackhi_epi64(m5, m2);                     \\\n    } while (0)\n\n#define LOAD_MSG_11_4(b0, b1)            \\\n    do {                                 \\\n        b0 = _mm_unpacklo_epi64(m6, m1); \\\n        b1 = _mm_unpackhi_epi64(m3, m1); \\\n    } while (0)\n\n#endif\n"
  },
  {
    "path": "src/libsodium/crypto_generichash/blake2b/ref/blake2b-ref.c",
    "content": "/*\n   BLAKE2 reference source code package - C implementations\n\n   Written in 2012 by Samuel Neves <sneves@dei.uc.pt>\n\n   To the extent possible under law, the author(s) have dedicated all copyright\n   and related and neighboring rights to this software to the public domain\n   worldwide. This software is distributed without any warranty.\n\n   You should have received a copy of the CC0 Public Domain Dedication along\n   with\n   this software. If not, see\n   <http://creativecommons.org/publicdomain/zero/1.0/>.\n*/\n\n#include <assert.h>\n#include <stddef.h>\n#include <stdint.h>\n#include <stdlib.h>\n#include <string.h>\n\n#include \"blake2.h\"\n#include \"core.h\"\n#include \"private/common.h\"\n#include \"runtime.h\"\n#include \"utils.h\"\n\nstatic blake2b_compress_fn blake2b_compress = blake2b_compress_ref;\n\nstatic const uint64_t blake2b_IV[8] = {\n    0x6a09e667f3bcc908ULL, 0xbb67ae8584caa73bULL, 0x3c6ef372fe94f82bULL,\n    0xa54ff53a5f1d36f1ULL, 0x510e527fade682d1ULL, 0x9b05688c2b3e6c1fULL,\n    0x1f83d9abfb41bd6bULL, 0x5be0cd19137e2179ULL\n};\n\n/* LCOV_EXCL_START */\nstatic inline int\nblake2b_set_lastnode(blake2b_state *S)\n{\n    S->f[1] = -1;\n    return 0;\n}\n/* LCOV_EXCL_STOP */\n\nstatic inline int\nblake2b_is_lastblock(const blake2b_state *S)\n{\n    return S->f[0] != 0;\n}\n\nstatic inline int\nblake2b_set_lastblock(blake2b_state *S)\n{\n    if (S->last_node) {\n        blake2b_set_lastnode(S); /* LCOV_EXCL_LINE */\n    }\n    S->f[0] = -1;\n    return 0;\n}\n\nstatic inline int\nblake2b_increment_counter(blake2b_state *S, const uint64_t inc)\n{\n#ifdef HAVE_TI_MODE\n    uint128_t t = ((uint128_t) S->t[1] << 64) | S->t[0];\n    t += inc;\n    S->t[0] = (uint64_t)(t >> 0);\n    S->t[1] = (uint64_t)(t >> 64);\n#else\n    S->t[0] += inc;\n    S->t[1] += (S->t[0] < inc);\n#endif\n    return 0;\n}\n\n/* Parameter-related functions */\nstatic inline int\nblake2b_param_set_salt(blake2b_param *P, const uint8_t salt[BLAKE2B_SALTBYTES])\n{\n    memcpy(P->salt, salt, BLAKE2B_SALTBYTES);\n    return 0;\n}\n\nstatic inline int\nblake2b_param_set_personal(blake2b_param *P,\n                           const uint8_t  personal[BLAKE2B_PERSONALBYTES])\n{\n    memcpy(P->personal, personal, BLAKE2B_PERSONALBYTES);\n    return 0;\n}\n\nstatic inline int\nblake2b_init0(blake2b_state *S)\n{\n    int i;\n\n    for (i  = 0; i < 8; i++) {\n        S->h[i] = blake2b_IV[i];\n    }\n    /* zero everything between .t and .last_node */\n    memset((void *) &S->t, 0,\n           offsetof(blake2b_state, last_node) + sizeof(S->last_node)\n           - offsetof(blake2b_state, t));\n    return 0;\n}\n\n/* init xors IV with input parameter block */\nint\nblake2b_init_param(blake2b_state *S, const blake2b_param *P)\n{\n    size_t         i;\n    const uint8_t *p;\n\n    COMPILER_ASSERT(sizeof *P == 64);\n    blake2b_init0(S);\n    p = (const uint8_t *) (P);\n\n    /* IV XOR ParamBlock */\n    for (i = 0; i < 8; i++) {\n        S->h[i] ^= LOAD64_LE(p + sizeof(S->h[i]) * i);\n    }\n    return 0;\n}\n\nint\nblake2b_init(blake2b_state *S, const uint8_t outlen)\n{\n    blake2b_param P[1];\n\n    if ((!outlen) || (outlen > BLAKE2B_OUTBYTES)) {\n        sodium_misuse(); /* LCOV_EXCL_LINE */\n    }\n    P->digest_length = outlen;\n    P->key_length    = 0;\n    P->fanout        = 1;\n    P->depth         = 1;\n    STORE32_LE(P->leaf_length, 0);\n    STORE64_LE(P->node_offset, 0);\n    P->node_depth   = 0;\n    P->inner_length = 0;\n    memset(P->reserved, 0, sizeof(P->reserved));\n    memset(P->salt, 0, sizeof(P->salt));\n    memset(P->personal, 0, sizeof(P->personal));\n    return blake2b_init_param(S, P);\n}\n\nint\nblake2b_init_salt_personal(blake2b_state *S, const uint8_t outlen,\n                           const void *salt, const void *personal)\n{\n    blake2b_param P[1];\n\n    if ((!outlen) || (outlen > BLAKE2B_OUTBYTES)) {\n        sodium_misuse(); /* LCOV_EXCL_LINE */\n    }\n    P->digest_length = outlen;\n    P->key_length    = 0;\n    P->fanout        = 1;\n    P->depth         = 1;\n    STORE32_LE(P->leaf_length, 0);\n    STORE64_LE(P->node_offset, 0);\n    P->node_depth   = 0;\n    P->inner_length = 0;\n    memset(P->reserved, 0, sizeof(P->reserved));\n    if (salt != NULL) {\n        blake2b_param_set_salt(P, (const uint8_t *) salt);\n    } else {\n        memset(P->salt, 0, sizeof(P->salt));\n    }\n    if (personal != NULL) {\n        blake2b_param_set_personal(P, (const uint8_t *) personal);\n    } else {\n        memset(P->personal, 0, sizeof(P->personal));\n    }\n    return blake2b_init_param(S, P);\n}\n\nint\nblake2b_init_key(blake2b_state *S, const uint8_t outlen, const void *key,\n                 const uint8_t keylen)\n{\n    blake2b_param P[1];\n\n    if ((!outlen) || (outlen > BLAKE2B_OUTBYTES)) {\n        sodium_misuse(); /* LCOV_EXCL_LINE */\n    }\n    if (!key || !keylen || keylen > BLAKE2B_KEYBYTES) {\n        sodium_misuse(); /* LCOV_EXCL_LINE */\n    }\n    P->digest_length = outlen;\n    P->key_length    = keylen;\n    P->fanout        = 1;\n    P->depth         = 1;\n    STORE32_LE(P->leaf_length, 0);\n    STORE64_LE(P->node_offset, 0);\n    P->node_depth   = 0;\n    P->inner_length = 0;\n    memset(P->reserved, 0, sizeof(P->reserved));\n    memset(P->salt, 0, sizeof(P->salt));\n    memset(P->personal, 0, sizeof(P->personal));\n\n    if (blake2b_init_param(S, P) < 0) {\n        sodium_misuse(); /* LCOV_EXCL_LINE */\n    }\n    {\n        uint8_t block[BLAKE2B_BLOCKBYTES];\n        memset(block, 0, BLAKE2B_BLOCKBYTES);\n        memcpy(block, key, keylen); /* key and keylen cannot be 0 */\n        blake2b_update(S, block, BLAKE2B_BLOCKBYTES);\n        sodium_memzero(block, BLAKE2B_BLOCKBYTES); /* Burn the key from stack */\n    }\n    return 0;\n}\n\nint\nblake2b_init_key_salt_personal(blake2b_state *S, const uint8_t outlen,\n                               const void *key, const uint8_t keylen,\n                               const void *salt, const void *personal)\n{\n    blake2b_param P[1];\n\n    if ((!outlen) || (outlen > BLAKE2B_OUTBYTES)) {\n        sodium_misuse(); /* LCOV_EXCL_LINE */\n    }\n    if (!key || !keylen || keylen > BLAKE2B_KEYBYTES) {\n        sodium_misuse(); /* LCOV_EXCL_LINE */\n    }\n    P->digest_length = outlen;\n    P->key_length    = keylen;\n    P->fanout        = 1;\n    P->depth         = 1;\n    STORE32_LE(P->leaf_length, 0);\n    STORE64_LE(P->node_offset, 0);\n    P->node_depth   = 0;\n    P->inner_length = 0;\n    memset(P->reserved, 0, sizeof(P->reserved));\n    if (salt != NULL) {\n        blake2b_param_set_salt(P, (const uint8_t *) salt);\n    } else {\n        memset(P->salt, 0, sizeof(P->salt));\n    }\n    if (personal != NULL) {\n        blake2b_param_set_personal(P, (const uint8_t *) personal);\n    } else {\n        memset(P->personal, 0, sizeof(P->personal));\n    }\n\n    if (blake2b_init_param(S, P) < 0) {\n        sodium_misuse(); /* LCOV_EXCL_LINE */\n    }\n    {\n        uint8_t block[BLAKE2B_BLOCKBYTES];\n        memset(block, 0, BLAKE2B_BLOCKBYTES);\n        memcpy(block, key, keylen); /* key and keylen cannot be 0 */\n        blake2b_update(S, block, BLAKE2B_BLOCKBYTES);\n        sodium_memzero(block, BLAKE2B_BLOCKBYTES); /* Burn the key from stack */\n    }\n    return 0;\n}\n\n/* inlen now in bytes */\nint\nblake2b_update(blake2b_state *S, const uint8_t *in, uint64_t inlen)\n{\n    while (inlen > 0) {\n        size_t left = S->buflen;\n        size_t fill = 2 * BLAKE2B_BLOCKBYTES - left;\n\n        if (inlen > fill) {\n            memcpy(S->buf + left, in, fill); /* Fill buffer */\n            S->buflen += fill;\n            blake2b_increment_counter(S, BLAKE2B_BLOCKBYTES);\n            blake2b_compress(S, S->buf); /* Compress */\n            memcpy(S->buf, S->buf + BLAKE2B_BLOCKBYTES,\n                   BLAKE2B_BLOCKBYTES); /* Shift buffer left */\n            S->buflen -= BLAKE2B_BLOCKBYTES;\n            in += fill;\n            inlen -= fill;\n        } else /* inlen <= fill */\n        {\n            memcpy(S->buf + left, in, inlen);\n            S->buflen += inlen; /* Be lazy, do not compress */\n            in += inlen;\n            inlen -= inlen;\n        }\n    }\n\n    return 0;\n}\n\nint\nblake2b_final(blake2b_state *S, uint8_t *out, uint8_t outlen)\n{\n    unsigned char buffer[BLAKE2B_OUTBYTES];\n\n    if (!outlen || outlen > BLAKE2B_OUTBYTES) {\n        sodium_misuse(); /* LCOV_EXCL_LINE */\n    }\n    if (blake2b_is_lastblock(S)) {\n        return -1;\n    }\n    if (S->buflen > BLAKE2B_BLOCKBYTES) {\n        blake2b_increment_counter(S, BLAKE2B_BLOCKBYTES);\n        blake2b_compress(S, S->buf);\n        S->buflen -= BLAKE2B_BLOCKBYTES;\n        assert(S->buflen <= BLAKE2B_BLOCKBYTES);\n        memcpy(S->buf, S->buf + BLAKE2B_BLOCKBYTES, S->buflen);\n    }\n\n    blake2b_increment_counter(S, S->buflen);\n    blake2b_set_lastblock(S);\n    memset(S->buf + S->buflen, 0,\n           2 * BLAKE2B_BLOCKBYTES - S->buflen); /* Padding */\n    blake2b_compress(S, S->buf);\n\n    COMPILER_ASSERT(sizeof buffer == 64U);\n    STORE64_LE(buffer + 8 * 0, S->h[0]);\n    STORE64_LE(buffer + 8 * 1, S->h[1]);\n    STORE64_LE(buffer + 8 * 2, S->h[2]);\n    STORE64_LE(buffer + 8 * 3, S->h[3]);\n    STORE64_LE(buffer + 8 * 4, S->h[4]);\n    STORE64_LE(buffer + 8 * 5, S->h[5]);\n    STORE64_LE(buffer + 8 * 6, S->h[6]);\n    STORE64_LE(buffer + 8 * 7, S->h[7]);\n    memcpy(out, buffer, outlen); /* outlen <= BLAKE2B_OUTBYTES (64) */\n\n    sodium_memzero(S->h, sizeof S->h);\n    sodium_memzero(S->buf, sizeof S->buf);\n\n    return 0;\n}\n\n/* inlen, at least, should be uint64_t. Others can be size_t. */\nint\nblake2b(uint8_t *out, const void *in, const void *key, const uint8_t outlen,\n        const uint64_t inlen, uint8_t keylen)\n{\n    CRYPTO_ALIGN(64) blake2b_state S[1];\n\n    /* Verify parameters */\n    if (NULL == in && inlen > 0) {\n        sodium_misuse(); /* LCOV_EXCL_LINE */\n    }\n    if (NULL == out) {\n        sodium_misuse(); /* LCOV_EXCL_LINE */\n    }\n    if (!outlen || outlen > BLAKE2B_OUTBYTES) {\n        sodium_misuse(); /* LCOV_EXCL_LINE */\n    }\n    if (NULL == key && keylen > 0) {\n        sodium_misuse(); /* LCOV_EXCL_LINE */\n    }\n    if (keylen > BLAKE2B_KEYBYTES) {\n        sodium_misuse(); /* LCOV_EXCL_LINE */\n    }\n    if (keylen > 0) {\n        if (blake2b_init_key(S, outlen, key, keylen) < 0) {\n            sodium_misuse(); /* LCOV_EXCL_LINE */\n        }\n    } else {\n        if (blake2b_init(S, outlen) < 0) {\n            sodium_misuse(); /* LCOV_EXCL_LINE */\n        }\n    }\n\n    blake2b_update(S, (const uint8_t *) in, inlen);\n    blake2b_final(S, out, outlen);\n    return 0;\n}\n\nint\nblake2b_salt_personal(uint8_t *out, const void *in, const void *key,\n                      const uint8_t outlen, const uint64_t inlen,\n                      uint8_t keylen, const void *salt, const void *personal)\n{\n    CRYPTO_ALIGN(64) blake2b_state S[1];\n\n    /* Verify parameters */\n    if (NULL == in && inlen > 0) {\n        sodium_misuse(); /* LCOV_EXCL_LINE */\n    }\n    if (NULL == out) {\n        sodium_misuse(); /* LCOV_EXCL_LINE */\n    }\n    if (!outlen || outlen > BLAKE2B_OUTBYTES) {\n        sodium_misuse(); /* LCOV_EXCL_LINE */\n    }\n    if (NULL == key && keylen > 0) {\n        sodium_misuse(); /* LCOV_EXCL_LINE */\n    }\n    if (keylen > BLAKE2B_KEYBYTES) {\n        sodium_misuse(); /* LCOV_EXCL_LINE */\n    }\n    if (keylen > 0) {\n        if (blake2b_init_key_salt_personal(S, outlen, key, keylen, salt,\n                                           personal) < 0) {\n            sodium_misuse(); /* LCOV_EXCL_LINE */\n        }\n    } else {\n        if (blake2b_init_salt_personal(S, outlen, salt, personal) < 0) {\n            sodium_misuse(); /* LCOV_EXCL_LINE */\n        }\n    }\n\n    blake2b_update(S, (const uint8_t *) in, inlen);\n    blake2b_final(S, out, outlen);\n    return 0;\n}\n\nint\nblake2b_pick_best_implementation(void)\n{\n/* LCOV_EXCL_START */\n#if defined(HAVE_AVX2INTRIN_H) && defined(HAVE_TMMINTRIN_H) && \\\n    defined(HAVE_SMMINTRIN_H)\n    if (sodium_runtime_has_avx2()) {\n        blake2b_compress = blake2b_compress_avx2;\n        return 0;\n    }\n#endif\n#if defined(HAVE_EMMINTRIN_H) && defined(HAVE_TMMINTRIN_H) && \\\n    defined(HAVE_SMMINTRIN_H)\n    if (sodium_runtime_has_sse41()) {\n        blake2b_compress = blake2b_compress_sse41;\n        return 0;\n    }\n#endif\n#if defined(HAVE_EMMINTRIN_H) && defined(HAVE_TMMINTRIN_H)\n    if (sodium_runtime_has_ssse3()) {\n        blake2b_compress = blake2b_compress_ssse3;\n        return 0;\n    }\n#endif\n    blake2b_compress = blake2b_compress_ref;\n\n    return 0;\n    /* LCOV_EXCL_STOP */\n}\n"
  },
  {
    "path": "src/libsodium/crypto_generichash/blake2b/ref/generichash_blake2b.c",
    "content": "\n#include <assert.h>\n#include <limits.h>\n#include <stdint.h>\n\n#include \"blake2.h\"\n#include \"crypto_generichash_blake2b.h\"\n#include \"private/common.h\"\n#include \"private/implementations.h\"\n\nint\ncrypto_generichash_blake2b(unsigned char *out, size_t outlen,\n                           const unsigned char *in, unsigned long long inlen,\n                           const unsigned char *key, size_t keylen)\n{\n    if (outlen <= 0U || outlen > BLAKE2B_OUTBYTES ||\n        keylen > BLAKE2B_KEYBYTES || inlen > UINT64_MAX) {\n        return -1;\n    }\n    assert(outlen <= UINT8_MAX);\n    assert(keylen <= UINT8_MAX);\n\n    return blake2b((uint8_t *) out, in, key, (uint8_t) outlen, (uint64_t) inlen,\n                   (uint8_t) keylen);\n}\n\nint\ncrypto_generichash_blake2b_salt_personal(\n    unsigned char *out, size_t outlen, const unsigned char *in,\n    unsigned long long inlen, const unsigned char *key, size_t keylen,\n    const unsigned char *salt, const unsigned char *personal)\n{\n    if (outlen <= 0U || outlen > BLAKE2B_OUTBYTES ||\n        keylen > BLAKE2B_KEYBYTES || inlen > UINT64_MAX) {\n        return -1;\n    }\n    assert(outlen <= UINT8_MAX);\n    assert(keylen <= UINT8_MAX);\n\n    return blake2b_salt_personal((uint8_t *) out, in, key, (uint8_t) outlen,\n                                 (uint64_t) inlen, (uint8_t) keylen, salt,\n                                 personal);\n}\n\nint\ncrypto_generichash_blake2b_init(crypto_generichash_blake2b_state *state,\n                                const unsigned char *key, const size_t keylen,\n                                const size_t outlen)\n{\n    if (outlen <= 0U || outlen > BLAKE2B_OUTBYTES ||\n        keylen > BLAKE2B_KEYBYTES) {\n        return -1;\n    }\n    assert(outlen <= UINT8_MAX);\n    assert(keylen <= UINT8_MAX);\n    COMPILER_ASSERT(sizeof(blake2b_state) <= sizeof *state);\n    if (key == NULL || keylen <= 0U) {\n        if (blake2b_init((blake2b_state *) (void *) state, (uint8_t) outlen) != 0) {\n            return -1; /* LCOV_EXCL_LINE */\n        }\n    } else if (blake2b_init_key((blake2b_state *) (void *) state, (uint8_t) outlen, key,\n                                (uint8_t) keylen) != 0) {\n        return -1; /* LCOV_EXCL_LINE */\n    }\n    return 0;\n}\n\nint\ncrypto_generichash_blake2b_init_salt_personal(\n    crypto_generichash_blake2b_state *state, const unsigned char *key,\n    const size_t keylen, const size_t outlen, const unsigned char *salt,\n    const unsigned char *personal)\n{\n    if (outlen <= 0U || outlen > BLAKE2B_OUTBYTES ||\n        keylen > BLAKE2B_KEYBYTES) {\n        return -1;\n    }\n    assert(outlen <= UINT8_MAX);\n    assert(keylen <= UINT8_MAX);\n    if (key == NULL || keylen <= 0U) {\n        if (blake2b_init_salt_personal((blake2b_state *) (void *) state,\n                                       (uint8_t) outlen, salt, personal) != 0) {\n            return -1; /* LCOV_EXCL_LINE */\n        }\n    } else if (blake2b_init_key_salt_personal((blake2b_state *) (void *) state,\n                                              (uint8_t) outlen, key,\n                                              (uint8_t) keylen, salt,\n                                              personal) != 0) {\n        return -1; /* LCOV_EXCL_LINE */\n    }\n    return 0;\n}\n\nint\ncrypto_generichash_blake2b_update(crypto_generichash_blake2b_state *state,\n                                  const unsigned char *in,\n                                  unsigned long long inlen)\n{\n    return blake2b_update((blake2b_state *) (void *) state,\n                          (const uint8_t *) in, (uint64_t) inlen);\n}\n\nint\ncrypto_generichash_blake2b_final(crypto_generichash_blake2b_state *state,\n                                 unsigned char *out, const size_t outlen)\n{\n    assert(outlen <= UINT8_MAX);\n    return blake2b_final((blake2b_state *) (void *) state,\n                         (uint8_t *) out, (uint8_t) outlen);\n}\n\nint\n_crypto_generichash_blake2b_pick_best_implementation(void)\n{\n    return blake2b_pick_best_implementation();\n}\n"
  },
  {
    "path": "src/libsodium/crypto_generichash/crypto_generichash.c",
    "content": "\n#include \"crypto_generichash.h\"\n#include \"randombytes.h\"\n\nsize_t\ncrypto_generichash_bytes_min(void)\n{\n    return crypto_generichash_BYTES_MIN;\n}\n\nsize_t\ncrypto_generichash_bytes_max(void)\n{\n    return crypto_generichash_BYTES_MAX;\n}\n\nsize_t\ncrypto_generichash_bytes(void)\n{\n    return crypto_generichash_BYTES;\n}\n\nsize_t\ncrypto_generichash_keybytes_min(void)\n{\n    return crypto_generichash_KEYBYTES_MIN;\n}\n\nsize_t\ncrypto_generichash_keybytes_max(void)\n{\n    return crypto_generichash_KEYBYTES_MAX;\n}\n\nsize_t\ncrypto_generichash_keybytes(void)\n{\n    return crypto_generichash_KEYBYTES;\n}\n\nconst char *\ncrypto_generichash_primitive(void)\n{\n    return crypto_generichash_PRIMITIVE;\n}\n\nsize_t\ncrypto_generichash_statebytes(void)\n{\n    return (sizeof(crypto_generichash_state) + (size_t) 63U) & ~(size_t) 63U;\n}\n\nint\ncrypto_generichash(unsigned char *out, size_t outlen, const unsigned char *in,\n                   unsigned long long inlen, const unsigned char *key,\n                   size_t keylen)\n{\n    return crypto_generichash_blake2b(out, outlen, in, inlen, key, keylen);\n}\n\nint\ncrypto_generichash_init(crypto_generichash_state *state,\n                        const unsigned char *key,\n                        const size_t keylen, const size_t outlen)\n{\n    return crypto_generichash_blake2b_init\n        ((crypto_generichash_blake2b_state *) state, key, keylen, outlen);\n}\n\nint\ncrypto_generichash_update(crypto_generichash_state *state,\n                          const unsigned char *in,\n                          unsigned long long inlen)\n{\n    return crypto_generichash_blake2b_update\n        ((crypto_generichash_blake2b_state *) state, in, inlen);\n}\n\nint\ncrypto_generichash_final(crypto_generichash_state *state,\n                         unsigned char *out, const size_t outlen)\n{\n    return crypto_generichash_blake2b_final\n        ((crypto_generichash_blake2b_state *) state, out, outlen);\n}\n\nvoid\ncrypto_generichash_keygen(unsigned char k[crypto_generichash_KEYBYTES])\n{\n    randombytes_buf(k, crypto_generichash_KEYBYTES);\n}\n"
  },
  {
    "path": "src/libsodium/crypto_hash/crypto_hash.c",
    "content": "\n#include \"crypto_hash.h\"\n\nsize_t\ncrypto_hash_bytes(void)\n{\n    return crypto_hash_BYTES;\n}\n\nint\ncrypto_hash(unsigned char *out, const unsigned char *in,\n            unsigned long long inlen)\n{\n    return crypto_hash_sha512(out, in, inlen);\n}\n\nconst char *\ncrypto_hash_primitive(void) {\n    return crypto_hash_PRIMITIVE;\n}\n"
  },
  {
    "path": "src/libsodium/crypto_hash/sha256/cp/hash_sha256_cp.c",
    "content": "\n/*-\n * Copyright 2005,2007,2009 Colin Percival\n * All rights reserved.\n *\n * Redistribution and use in source and binary forms, with or without\n * modification, are permitted provided that the following conditions\n * are met:\n * 1. Redistributions of source code must retain the above copyright\n *    notice, this list of conditions and the following disclaimer.\n * 2. Redistributions in binary form must reproduce the above copyright\n *    notice, this list of conditions and the following disclaimer in the\n *    documentation and/or other materials provided with the distribution.\n *\n * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND\n * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\n * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE\n * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE\n * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL\n * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS\n * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)\n * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT\n * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY\n * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF\n * SUCH DAMAGE.\n *\n */\n\n#include <limits.h>\n#include <stdint.h>\n#include <stdlib.h>\n#include <string.h>\n\n#include <sys/types.h>\n\n#include \"crypto_hash_sha256.h\"\n#include \"private/common.h\"\n#include \"utils.h\"\n\n#if defined(__aarch64__) && defined(__ARM_FEATURE_SHA2)\n# define HAVE_SHA256_ARMCRYPTO 1\n# include <arm_neon.h>\n#endif\n\nstatic void\nbe32enc_vect(unsigned char *dst, const uint32_t *src, size_t len)\n{\n    size_t i;\n\n    for (i = 0; i < len / 4; i++) {\n        STORE32_BE(dst + i * 4, src[i]);\n    }\n}\n\n#ifdef HAVE_SHA256_ARMCRYPTO\n\nstatic const uint32_t Krnd[64] = {\n    0x428a2f98, 0x71374491, 0xb5c0fbcf, 0xe9b5dba5, 0x3956c25b, 0x59f111f1,\n    0x923f82a4, 0xab1c5ed5, 0xd807aa98, 0x12835b01, 0x243185be, 0x550c7dc3,\n    0x72be5d74, 0x80deb1fe, 0x9bdc06a7, 0xc19bf174, 0xe49b69c1, 0xefbe4786,\n    0x0fc19dc6, 0x240ca1cc, 0x2de92c6f, 0x4a7484aa, 0x5cb0a9dc, 0x76f988da,\n    0x983e5152, 0xa831c66d, 0xb00327c8, 0xbf597fc7, 0xc6e00bf3, 0xd5a79147,\n    0x06ca6351, 0x14292967, 0x27b70a85, 0x2e1b2138, 0x4d2c6dfc, 0x53380d13,\n    0x650a7354, 0x766a0abb, 0x81c2c92e, 0x92722c85, 0xa2bfe8a1, 0xa81a664b,\n    0xc24b8b70, 0xc76c51a3, 0xd192e819, 0xd6990624, 0xf40e3585, 0x106aa070,\n    0x19a4c116, 0x1e376c08, 0x2748774c, 0x34b0bcb5, 0x391c0cb3, 0x4ed8aa4a,\n    0x5b9cca4f, 0x682e6ff3, 0x748f82ee, 0x78a5636f, 0x84c87814, 0x8cc70208,\n    0x90befffa, 0xa4506ceb, 0xbef9a3f7, 0xc67178f2\n};\n\nstatic void\nSHA256_Transform(uint32_t state[8], const uint8_t block[64], uint32_t W[64],\n                 uint32_t S[8])\n{\n    uint32x4_t STATE0, STATE1;\n    uint32x4_t ABCD_SAVE, EFGH_SAVE;\n    uint32x4_t MSG0, MSG1, MSG2, MSG3;\n    uint32x4_t TMP0, TMP1, TMP2;\n\n    (void) W;\n    (void) S;\n\n    STATE0 = vld1q_u32(&state[0]);\n    STATE1 = vld1q_u32(&state[4]);\n\n    ABCD_SAVE = STATE0;\n    EFGH_SAVE = STATE1;\n\n    MSG0 = vreinterpretq_u32_u8(vrev32q_u8(vld1q_u8(&block[0])));\n    MSG1 = vreinterpretq_u32_u8(vrev32q_u8(vld1q_u8(&block[16])));\n    MSG2 = vreinterpretq_u32_u8(vrev32q_u8(vld1q_u8(&block[32])));\n    MSG3 = vreinterpretq_u32_u8(vrev32q_u8(vld1q_u8(&block[48])));\n\n    TMP0 = vaddq_u32(MSG0, vld1q_u32(&Krnd[0]));\n    TMP2 = STATE0;\n    STATE0 = vsha256hq_u32(STATE0, STATE1, TMP0);\n    STATE1 = vsha256h2q_u32(STATE1, TMP2, TMP0);\n    MSG0 = vsha256su0q_u32(MSG0, MSG1);\n\n    TMP1 = vaddq_u32(MSG1, vld1q_u32(&Krnd[4]));\n    TMP2 = STATE0;\n    STATE0 = vsha256hq_u32(STATE0, STATE1, TMP1);\n    STATE1 = vsha256h2q_u32(STATE1, TMP2, TMP1);\n    MSG0 = vsha256su1q_u32(MSG0, MSG2, MSG3);\n    MSG1 = vsha256su0q_u32(MSG1, MSG2);\n\n    TMP0 = vaddq_u32(MSG2, vld1q_u32(&Krnd[8]));\n    TMP2 = STATE0;\n    STATE0 = vsha256hq_u32(STATE0, STATE1, TMP0);\n    STATE1 = vsha256h2q_u32(STATE1, TMP2, TMP0);\n    MSG1 = vsha256su1q_u32(MSG1, MSG3, MSG0);\n    MSG2 = vsha256su0q_u32(MSG2, MSG3);\n\n    TMP1 = vaddq_u32(MSG3, vld1q_u32(&Krnd[12]));\n    TMP2 = STATE0;\n    STATE0 = vsha256hq_u32(STATE0, STATE1, TMP1);\n    STATE1 = vsha256h2q_u32(STATE1, TMP2, TMP1);\n    MSG2 = vsha256su1q_u32(MSG2, MSG0, MSG1);\n    MSG3 = vsha256su0q_u32(MSG3, MSG0);\n\n    TMP0 = vaddq_u32(MSG0, vld1q_u32(&Krnd[16]));\n    TMP2 = STATE0;\n    STATE0 = vsha256hq_u32(STATE0, STATE1, TMP0);\n    STATE1 = vsha256h2q_u32(STATE1, TMP2, TMP0);\n    MSG3 = vsha256su1q_u32(MSG3, MSG1, MSG2);\n    MSG0 = vsha256su0q_u32(MSG0, MSG1);\n\n    TMP1 = vaddq_u32(MSG1, vld1q_u32(&Krnd[20]));\n    TMP2 = STATE0;\n    STATE0 = vsha256hq_u32(STATE0, STATE1, TMP1);\n    STATE1 = vsha256h2q_u32(STATE1, TMP2, TMP1);\n    MSG0 = vsha256su1q_u32(MSG0, MSG2, MSG3);\n    MSG1 = vsha256su0q_u32(MSG1, MSG2);\n\n    TMP0 = vaddq_u32(MSG2, vld1q_u32(&Krnd[24]));\n    TMP2 = STATE0;\n    STATE0 = vsha256hq_u32(STATE0, STATE1, TMP0);\n    STATE1 = vsha256h2q_u32(STATE1, TMP2, TMP0);\n    MSG1 = vsha256su1q_u32(MSG1, MSG3, MSG0);\n    MSG2 = vsha256su0q_u32(MSG2, MSG3);\n\n    TMP1 = vaddq_u32(MSG3, vld1q_u32(&Krnd[28]));\n    TMP2 = STATE0;\n    STATE0 = vsha256hq_u32(STATE0, STATE1, TMP1);\n    STATE1 = vsha256h2q_u32(STATE1, TMP2, TMP1);\n    MSG2 = vsha256su1q_u32(MSG2, MSG0, MSG1);\n    MSG3 = vsha256su0q_u32(MSG3, MSG0);\n\n    TMP0 = vaddq_u32(MSG0, vld1q_u32(&Krnd[32]));\n    TMP2 = STATE0;\n    STATE0 = vsha256hq_u32(STATE0, STATE1, TMP0);\n    STATE1 = vsha256h2q_u32(STATE1, TMP2, TMP0);\n    MSG3 = vsha256su1q_u32(MSG3, MSG1, MSG2);\n    MSG0 = vsha256su0q_u32(MSG0, MSG1);\n\n    TMP1 = vaddq_u32(MSG1, vld1q_u32(&Krnd[36]));\n    TMP2 = STATE0;\n    STATE0 = vsha256hq_u32(STATE0, STATE1, TMP1);\n    STATE1 = vsha256h2q_u32(STATE1, TMP2, TMP1);\n    MSG0 = vsha256su1q_u32(MSG0, MSG2, MSG3);\n    MSG1 = vsha256su0q_u32(MSG1, MSG2);\n\n    TMP0 = vaddq_u32(MSG2, vld1q_u32(&Krnd[40]));\n    TMP2 = STATE0;\n    STATE0 = vsha256hq_u32(STATE0, STATE1, TMP0);\n    STATE1 = vsha256h2q_u32(STATE1, TMP2, TMP0);\n    MSG1 = vsha256su1q_u32(MSG1, MSG3, MSG0);\n    MSG2 = vsha256su0q_u32(MSG2, MSG3);\n\n    TMP1 = vaddq_u32(MSG3, vld1q_u32(&Krnd[44]));\n    TMP2 = STATE0;\n    STATE0 = vsha256hq_u32(STATE0, STATE1, TMP1);\n    STATE1 = vsha256h2q_u32(STATE1, TMP2, TMP1);\n    MSG2 = vsha256su1q_u32(MSG2, MSG0, MSG1);\n    MSG3 = vsha256su0q_u32(MSG3, MSG0);\n\n    TMP0 = vaddq_u32(MSG0, vld1q_u32(&Krnd[48]));\n    TMP2 = STATE0;\n    STATE0 = vsha256hq_u32(STATE0, STATE1, TMP0);\n    STATE1 = vsha256h2q_u32(STATE1, TMP2, TMP0);\n    MSG3 = vsha256su1q_u32(MSG3, MSG1, MSG2);\n\n    TMP1 = vaddq_u32(MSG1, vld1q_u32(&Krnd[52]));\n    TMP2 = STATE0;\n    STATE0 = vsha256hq_u32(STATE0, STATE1, TMP1);\n    STATE1 = vsha256h2q_u32(STATE1, TMP2, TMP1);\n\n    TMP0 = vaddq_u32(MSG2, vld1q_u32(&Krnd[56]));\n    TMP2 = STATE0;\n    STATE0 = vsha256hq_u32(STATE0, STATE1, TMP0);\n    STATE1 = vsha256h2q_u32(STATE1, TMP2, TMP0);\n\n    TMP1 = vaddq_u32(MSG3, vld1q_u32(&Krnd[60]));\n    TMP2 = STATE0;\n    STATE0 = vsha256hq_u32(STATE0, STATE1, TMP1);\n    STATE1 = vsha256h2q_u32(STATE1, TMP2, TMP1);\n\n    STATE0 = vaddq_u32(STATE0, ABCD_SAVE);\n    STATE1 = vaddq_u32(STATE1, EFGH_SAVE);\n\n    vst1q_u32(&state[0], STATE0);\n    vst1q_u32(&state[4], STATE1);\n}\n\n#else\n\nstatic void\nbe32dec_vect(uint32_t *dst, const unsigned char *src, size_t len)\n{\n    size_t i;\n\n    for (i = 0; i < len / 4; i++) {\n        dst[i] = LOAD32_BE(src + i * 4);\n    }\n}\n\nstatic const uint32_t Krnd[64] = {\n    0x428a2f98, 0x71374491, 0xb5c0fbcf, 0xe9b5dba5, 0x3956c25b, 0x59f111f1,\n    0x923f82a4, 0xab1c5ed5, 0xd807aa98, 0x12835b01, 0x243185be, 0x550c7dc3,\n    0x72be5d74, 0x80deb1fe, 0x9bdc06a7, 0xc19bf174, 0xe49b69c1, 0xefbe4786,\n    0x0fc19dc6, 0x240ca1cc, 0x2de92c6f, 0x4a7484aa, 0x5cb0a9dc, 0x76f988da,\n    0x983e5152, 0xa831c66d, 0xb00327c8, 0xbf597fc7, 0xc6e00bf3, 0xd5a79147,\n    0x06ca6351, 0x14292967, 0x27b70a85, 0x2e1b2138, 0x4d2c6dfc, 0x53380d13,\n    0x650a7354, 0x766a0abb, 0x81c2c92e, 0x92722c85, 0xa2bfe8a1, 0xa81a664b,\n    0xc24b8b70, 0xc76c51a3, 0xd192e819, 0xd6990624, 0xf40e3585, 0x106aa070,\n    0x19a4c116, 0x1e376c08, 0x2748774c, 0x34b0bcb5, 0x391c0cb3, 0x4ed8aa4a,\n    0x5b9cca4f, 0x682e6ff3, 0x748f82ee, 0x78a5636f, 0x84c87814, 0x8cc70208,\n    0x90befffa, 0xa4506ceb, 0xbef9a3f7, 0xc67178f2\n};\n\n#define Ch(x, y, z) ((x & (y ^ z)) ^ z)\n#define Maj(x, y, z) ((x & (y | z)) | (y & z))\n#define SHR(x, n) (x >> n)\n#define ROTR(x, n) ROTR32(x, n)\n#define S0(x) (ROTR(x, 2) ^ ROTR(x, 13) ^ ROTR(x, 22))\n#define S1(x) (ROTR(x, 6) ^ ROTR(x, 11) ^ ROTR(x, 25))\n#define s0(x) (ROTR(x, 7) ^ ROTR(x, 18) ^ SHR(x, 3))\n#define s1(x) (ROTR(x, 17) ^ ROTR(x, 19) ^ SHR(x, 10))\n\n#define RND(a, b, c, d, e, f, g, h, k) \\\n    h += S1(e) + Ch(e, f, g) + k;      \\\n    d += h;                            \\\n    h += S0(a) + Maj(a, b, c);\n\n#define RNDr(S, W, i, ii)                                                   \\\n    RND(S[(64 - i) % 8], S[(65 - i) % 8], S[(66 - i) % 8], S[(67 - i) % 8], \\\n        S[(68 - i) % 8], S[(69 - i) % 8], S[(70 - i) % 8], S[(71 - i) % 8], \\\n        W[i + ii] + Krnd[i + ii])\n\n#define MSCH(W, ii, i) \\\n    W[i + ii + 16] =   \\\n        s1(W[i + ii + 14]) + W[i + ii + 9] + s0(W[i + ii + 1]) + W[i + ii]\n\nstatic void\nSHA256_Transform(uint32_t state[8], const uint8_t block[64], uint32_t W[64],\n                 uint32_t S[8])\n{\n    int i;\n\n    be32dec_vect(W, block, 64);\n    memcpy(S, state, 32);\n    for (i = 0; i < 64; i += 16) {\n        RNDr(S, W, 0, i);\n        RNDr(S, W, 1, i);\n        RNDr(S, W, 2, i);\n        RNDr(S, W, 3, i);\n        RNDr(S, W, 4, i);\n        RNDr(S, W, 5, i);\n        RNDr(S, W, 6, i);\n        RNDr(S, W, 7, i);\n        RNDr(S, W, 8, i);\n        RNDr(S, W, 9, i);\n        RNDr(S, W, 10, i);\n        RNDr(S, W, 11, i);\n        RNDr(S, W, 12, i);\n        RNDr(S, W, 13, i);\n        RNDr(S, W, 14, i);\n        RNDr(S, W, 15, i);\n        if (i == 48) {\n            break;\n        }\n        MSCH(W, 0, i);\n        MSCH(W, 1, i);\n        MSCH(W, 2, i);\n        MSCH(W, 3, i);\n        MSCH(W, 4, i);\n        MSCH(W, 5, i);\n        MSCH(W, 6, i);\n        MSCH(W, 7, i);\n        MSCH(W, 8, i);\n        MSCH(W, 9, i);\n        MSCH(W, 10, i);\n        MSCH(W, 11, i);\n        MSCH(W, 12, i);\n        MSCH(W, 13, i);\n        MSCH(W, 14, i);\n        MSCH(W, 15, i);\n    }\n    for (i = 0; i < 8; i++) {\n        state[i] += S[i];\n    }\n}\n\n#endif\n\nstatic const uint8_t PAD[64] = { 0x80, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n                                 0,    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n                                 0,    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n                                 0,    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n                                 0,    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 };\n\nstatic void\nSHA256_Pad(crypto_hash_sha256_state *state, uint32_t tmp32[64 + 8])\n{\n    unsigned int r;\n    unsigned int i;\n\n    ACQUIRE_FENCE;\n    r = (unsigned int) ((state->count >> 3) & 0x3f);\n    if (r < 56) {\n        for (i = 0; i < 56 - r; i++) {\n            state->buf[r + i] = PAD[i];\n        }\n    } else {\n        for (i = 0; i < 64 - r; i++) {\n            state->buf[r + i] = PAD[i];\n        }\n        SHA256_Transform(state->state, state->buf, &tmp32[0], &tmp32[64]);\n        memset(&state->buf[0], 0, 56);\n    }\n    STORE64_BE(&state->buf[56], state->count);\n    SHA256_Transform(state->state, state->buf, &tmp32[0], &tmp32[64]);\n}\n\nint\ncrypto_hash_sha256_init(crypto_hash_sha256_state *state)\n{\n    static const uint32_t sha256_initial_state[8] = { 0x6a09e667, 0xbb67ae85,\n                                                      0x3c6ef372, 0xa54ff53a,\n                                                      0x510e527f, 0x9b05688c,\n                                                      0x1f83d9ab, 0x5be0cd19 };\n\n    state->count = (uint64_t) 0U;\n    memcpy(state->state, sha256_initial_state, sizeof sha256_initial_state);\n\n    return 0;\n}\n\nint\ncrypto_hash_sha256_update(crypto_hash_sha256_state *state,\n                          const unsigned char *in, unsigned long long inlen)\n{\n    uint32_t           tmp32[64 + 8];\n    unsigned long long i;\n    unsigned long long r;\n\n    if (inlen <= 0U) {\n        return 0;\n    }\n    ACQUIRE_FENCE;\n    r = (unsigned long long) ((state->count >> 3) & 0x3f);\n\n    state->count += ((uint64_t) inlen) << 3;\n    if (inlen < 64 - r) {\n        for (i = 0; i < inlen; i++) {\n            state->buf[r + i] = in[i];\n        }\n        return 0;\n    }\n    for (i = 0; i < 64 - r; i++) {\n        state->buf[r + i] = in[i];\n    }\n    SHA256_Transform(state->state, state->buf, &tmp32[0], &tmp32[64]);\n    in += 64 - r;\n    inlen -= 64 - r;\n\n    while (inlen >= 64) {\n        SHA256_Transform(state->state, in, &tmp32[0], &tmp32[64]);\n        in += 64;\n        inlen -= 64;\n    }\n    inlen &= 63;\n    for (i = 0; i < inlen; i++) {\n        state->buf[i] = in[i];\n    }\n    sodium_memzero((void *) tmp32, sizeof tmp32);\n\n    return 0;\n}\n\nint\ncrypto_hash_sha256_final(crypto_hash_sha256_state *state, unsigned char *out)\n{\n    uint32_t tmp32[64 + 8];\n\n    SHA256_Pad(state, tmp32);\n    be32enc_vect(out, state->state, 32);\n    sodium_memzero((void *) tmp32, sizeof tmp32);\n    sodium_memzero((void *) state, sizeof *state);\n\n    return 0;\n}\n\nint\ncrypto_hash_sha256(unsigned char *out, const unsigned char *in,\n                   unsigned long long inlen)\n{\n    crypto_hash_sha256_state state;\n\n    crypto_hash_sha256_init(&state);\n    crypto_hash_sha256_update(&state, in, inlen);\n    crypto_hash_sha256_final(&state, out);\n\n    return 0;\n}\n"
  },
  {
    "path": "src/libsodium/crypto_hash/sha256/hash_sha256.c",
    "content": "#include \"crypto_hash_sha256.h\"\n\nsize_t\ncrypto_hash_sha256_bytes(void)\n{\n    return crypto_hash_sha256_BYTES;\n}\n\nsize_t\ncrypto_hash_sha256_statebytes(void)\n{\n    return sizeof(crypto_hash_sha256_state);\n}\n"
  },
  {
    "path": "src/libsodium/crypto_hash/sha3/hash_sha3.c",
    "content": "#include <stdint.h>\n#include <string.h>\n\n#include \"crypto_core_keccak1600.h\"\n#include \"crypto_hash_sha3.h\"\n#include \"private/common.h\"\n#include \"utils.h\"\n\n#define SHA3_256_RATE 136\n#define SHA3_512_RATE 72\n#define SHA3_DOMAIN   0x06\n\ntypedef enum { SHA3_PHASE_ABSORBING = 0, SHA3_PHASE_FINALIZED = 1 } sha3_phase;\n\ntypedef struct sha3_state_internal_ {\n    crypto_core_keccak1600_state state;\n    size_t                       offset;\n    size_t                       rate;\n    size_t                       outlen;\n    uint8_t                      phase;\n} sha3_state_internal;\n\nstatic int\nsha3_init(sha3_state_internal *state, size_t rate, size_t outlen)\n{\n    crypto_core_keccak1600_init(&state->state);\n    state->offset = 0;\n    state->rate   = rate;\n    state->outlen = outlen;\n    state->phase  = SHA3_PHASE_ABSORBING;\n\n    return 0;\n}\n\nstatic int\nsha3_update(sha3_state_internal *state, const unsigned char *in, size_t inlen)\n{\n    size_t consumed = 0;\n    size_t chunk_size;\n\n    while (consumed < inlen) {\n        if (state->offset == state->rate) {\n            crypto_core_keccak1600_permute_24(&state->state);\n            state->offset = 0;\n        }\n        chunk_size = state->rate - state->offset;\n        if (chunk_size > inlen - consumed) {\n            chunk_size = inlen - consumed;\n        }\n        crypto_core_keccak1600_xor_bytes(&state->state, &in[consumed], state->offset, chunk_size);\n        state->offset += chunk_size;\n        consumed += chunk_size;\n    }\n\n    return 0;\n}\n\nstatic int\nsha3_final(sha3_state_internal *state, unsigned char *out)\n{\n    unsigned char pad;\n\n    if (state->offset == state->rate) {\n        crypto_core_keccak1600_permute_24(&state->state);\n        state->offset = 0;\n    }\n\n    if (state->offset == state->rate - 1) {\n        pad = (unsigned char) (SHA3_DOMAIN ^ 0x80);\n        crypto_core_keccak1600_xor_bytes(&state->state, &pad, state->offset, 1);\n    } else {\n        pad = SHA3_DOMAIN;\n        crypto_core_keccak1600_xor_bytes(&state->state, &pad, state->offset, 1);\n        pad = 0x80;\n        crypto_core_keccak1600_xor_bytes(&state->state, &pad, state->rate - 1, 1);\n    }\n\n    crypto_core_keccak1600_permute_24(&state->state);\n\n    crypto_core_keccak1600_extract_bytes(&state->state, out, 0, state->outlen);\n\n    sodium_memzero(state, sizeof *state);\n\n    return 0;\n}\n\nsize_t\ncrypto_hash_sha3256_bytes(void)\n{\n    return crypto_hash_sha3256_BYTES;\n}\n\nsize_t\ncrypto_hash_sha3256_statebytes(void)\n{\n    return sizeof(crypto_hash_sha3256_state);\n}\n\nint\ncrypto_hash_sha3256_init(crypto_hash_sha3256_state *state)\n{\n    COMPILER_ASSERT(sizeof(crypto_hash_sha3256_state) >= sizeof(sha3_state_internal));\n    return sha3_init((sha3_state_internal *) (void *) state,\n                     SHA3_256_RATE, crypto_hash_sha3256_BYTES);\n}\n\nint\ncrypto_hash_sha3256_update(crypto_hash_sha3256_state *state,\n                           const unsigned char *in, unsigned long long inlen)\n{\n    return sha3_update((sha3_state_internal *) (void *) state, in, (size_t) inlen);\n}\n\nint\ncrypto_hash_sha3256_final(crypto_hash_sha3256_state *state, unsigned char *out)\n{\n    return sha3_final((sha3_state_internal *) (void *) state, out);\n}\n\nint\ncrypto_hash_sha3256(unsigned char *out, const unsigned char *in, unsigned long long inlen)\n{\n    crypto_hash_sha3256_state state;\n\n    crypto_hash_sha3256_init(&state);\n    crypto_hash_sha3256_update(&state, in, inlen);\n    crypto_hash_sha3256_final(&state, out);\n\n    return 0;\n}\n\nsize_t\ncrypto_hash_sha3512_bytes(void)\n{\n    return crypto_hash_sha3512_BYTES;\n}\n\nsize_t\ncrypto_hash_sha3512_statebytes(void)\n{\n    return sizeof(crypto_hash_sha3512_state);\n}\n\nint\ncrypto_hash_sha3512_init(crypto_hash_sha3512_state *state)\n{\n    COMPILER_ASSERT(sizeof(crypto_hash_sha3512_state) >= sizeof(sha3_state_internal));\n    return sha3_init((sha3_state_internal *) (void *) state,\n                     SHA3_512_RATE, crypto_hash_sha3512_BYTES);\n}\n\nint\ncrypto_hash_sha3512_update(crypto_hash_sha3512_state *state,\n                           const unsigned char *in, unsigned long long inlen)\n{\n    return sha3_update((sha3_state_internal *) (void *) state, in, (size_t) inlen);\n}\n\nint\ncrypto_hash_sha3512_final(crypto_hash_sha3512_state *state, unsigned char *out)\n{\n    return sha3_final((sha3_state_internal *) (void *) state, out);\n}\n\nint\ncrypto_hash_sha3512(unsigned char *out, const unsigned char *in, unsigned long long inlen)\n{\n    crypto_hash_sha3512_state state;\n\n    crypto_hash_sha3512_init(&state);\n    crypto_hash_sha3512_update(&state, in, inlen);\n    crypto_hash_sha3512_final(&state, out);\n\n    return 0;\n}\n"
  },
  {
    "path": "src/libsodium/crypto_hash/sha512/cp/hash_sha512_cp.c",
    "content": "\n/*-\n * Copyright 2005,2007,2009 Colin Percival\n * All rights reserved.\n *\n * Redistribution and use in source and binary forms, with or without\n * modification, are permitted provided that the following conditions\n * are met:\n * 1. Redistributions of source code must retain the above copyright\n *    notice, this list of conditions and the following disclaimer.\n * 2. Redistributions in binary form must reproduce the above copyright\n *    notice, this list of conditions and the following disclaimer in the\n *    documentation and/or other materials provided with the distribution.\n *\n * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND\n * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\n * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE\n * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE\n * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL\n * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS\n * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)\n * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT\n * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY\n * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF\n * SUCH DAMAGE.\n *\n */\n\n#include <limits.h>\n#include <stdint.h>\n#include <stdlib.h>\n#include <string.h>\n\n#include <sys/types.h>\n\n#include \"crypto_hash_sha512.h\"\n#include \"private/common.h\"\n#include \"utils.h\"\n\nstatic void\nbe64enc_vect(unsigned char *dst, const uint64_t *src, size_t len)\n{\n    size_t i;\n\n    for (i = 0; i < len / 8; i++) {\n        STORE64_BE(dst + i * 8, src[i]);\n    }\n}\n\nstatic void\nbe64dec_vect(uint64_t *dst, const unsigned char *src, size_t len)\n{\n    size_t i;\n\n    for (i = 0; i < len / 8; i++) {\n        dst[i] = LOAD64_BE(src + i * 8);\n    }\n}\n\nstatic const uint64_t Krnd[80] = {\n    0x428a2f98d728ae22ULL, 0x7137449123ef65cdULL, 0xb5c0fbcfec4d3b2fULL,\n    0xe9b5dba58189dbbcULL, 0x3956c25bf348b538ULL, 0x59f111f1b605d019ULL,\n    0x923f82a4af194f9bULL, 0xab1c5ed5da6d8118ULL, 0xd807aa98a3030242ULL,\n    0x12835b0145706fbeULL, 0x243185be4ee4b28cULL, 0x550c7dc3d5ffb4e2ULL,\n    0x72be5d74f27b896fULL, 0x80deb1fe3b1696b1ULL, 0x9bdc06a725c71235ULL,\n    0xc19bf174cf692694ULL, 0xe49b69c19ef14ad2ULL, 0xefbe4786384f25e3ULL,\n    0x0fc19dc68b8cd5b5ULL, 0x240ca1cc77ac9c65ULL, 0x2de92c6f592b0275ULL,\n    0x4a7484aa6ea6e483ULL, 0x5cb0a9dcbd41fbd4ULL, 0x76f988da831153b5ULL,\n    0x983e5152ee66dfabULL, 0xa831c66d2db43210ULL, 0xb00327c898fb213fULL,\n    0xbf597fc7beef0ee4ULL, 0xc6e00bf33da88fc2ULL, 0xd5a79147930aa725ULL,\n    0x06ca6351e003826fULL, 0x142929670a0e6e70ULL, 0x27b70a8546d22ffcULL,\n    0x2e1b21385c26c926ULL, 0x4d2c6dfc5ac42aedULL, 0x53380d139d95b3dfULL,\n    0x650a73548baf63deULL, 0x766a0abb3c77b2a8ULL, 0x81c2c92e47edaee6ULL,\n    0x92722c851482353bULL, 0xa2bfe8a14cf10364ULL, 0xa81a664bbc423001ULL,\n    0xc24b8b70d0f89791ULL, 0xc76c51a30654be30ULL, 0xd192e819d6ef5218ULL,\n    0xd69906245565a910ULL, 0xf40e35855771202aULL, 0x106aa07032bbd1b8ULL,\n    0x19a4c116b8d2d0c8ULL, 0x1e376c085141ab53ULL, 0x2748774cdf8eeb99ULL,\n    0x34b0bcb5e19b48a8ULL, 0x391c0cb3c5c95a63ULL, 0x4ed8aa4ae3418acbULL,\n    0x5b9cca4f7763e373ULL, 0x682e6ff3d6b2b8a3ULL, 0x748f82ee5defb2fcULL,\n    0x78a5636f43172f60ULL, 0x84c87814a1f0ab72ULL, 0x8cc702081a6439ecULL,\n    0x90befffa23631e28ULL, 0xa4506cebde82bde9ULL, 0xbef9a3f7b2c67915ULL,\n    0xc67178f2e372532bULL, 0xca273eceea26619cULL, 0xd186b8c721c0c207ULL,\n    0xeada7dd6cde0eb1eULL, 0xf57d4f7fee6ed178ULL, 0x06f067aa72176fbaULL,\n    0x0a637dc5a2c898a6ULL, 0x113f9804bef90daeULL, 0x1b710b35131c471bULL,\n    0x28db77f523047d84ULL, 0x32caab7b40c72493ULL, 0x3c9ebe0a15c9bebcULL,\n    0x431d67c49c100d4cULL, 0x4cc5d4becb3e42b6ULL, 0x597f299cfc657e2aULL,\n    0x5fcb6fab3ad6faecULL, 0x6c44198c4a475817ULL\n};\n\n#define Ch(x, y, z) ((x & (y ^ z)) ^ z)\n#define Maj(x, y, z) ((x & (y | z)) | (y & z))\n#define SHR(x, n) (x >> n)\n#define ROTR(x, n) ROTR64(x, n)\n#define S0(x) (ROTR(x, 28) ^ ROTR(x, 34) ^ ROTR(x, 39))\n#define S1(x) (ROTR(x, 14) ^ ROTR(x, 18) ^ ROTR(x, 41))\n#define s0(x) (ROTR(x, 1) ^ ROTR(x, 8) ^ SHR(x, 7))\n#define s1(x) (ROTR(x, 19) ^ ROTR(x, 61) ^ SHR(x, 6))\n\n#define RND(a, b, c, d, e, f, g, h, k) \\\n    h += S1(e) + Ch(e, f, g) + k;      \\\n    d += h;                            \\\n    h += S0(a) + Maj(a, b, c);\n\n#define RNDr(S, W, i, ii)                                                   \\\n    RND(S[(80 - i) % 8], S[(81 - i) % 8], S[(82 - i) % 8], S[(83 - i) % 8], \\\n        S[(84 - i) % 8], S[(85 - i) % 8], S[(86 - i) % 8], S[(87 - i) % 8], \\\n        W[i + ii] + Krnd[i + ii])\n\n#define MSCH(W, ii, i) \\\n    W[i + ii + 16] =   \\\n        s1(W[i + ii + 14]) + W[i + ii + 9] + s0(W[i + ii + 1]) + W[i + ii]\n\nstatic void\nSHA512_Transform(uint64_t *state, const uint8_t block[128], uint64_t W[80],\n                 uint64_t S[8])\n{\n    int i;\n\n    be64dec_vect(W, block, 128);\n    memcpy(S, state, 64);\n    for (i = 0; i < 80; i += 16) {\n        RNDr(S, W, 0, i);\n        RNDr(S, W, 1, i);\n        RNDr(S, W, 2, i);\n        RNDr(S, W, 3, i);\n        RNDr(S, W, 4, i);\n        RNDr(S, W, 5, i);\n        RNDr(S, W, 6, i);\n        RNDr(S, W, 7, i);\n        RNDr(S, W, 8, i);\n        RNDr(S, W, 9, i);\n        RNDr(S, W, 10, i);\n        RNDr(S, W, 11, i);\n        RNDr(S, W, 12, i);\n        RNDr(S, W, 13, i);\n        RNDr(S, W, 14, i);\n        RNDr(S, W, 15, i);\n        if (i == 64) {\n            break;\n        }\n        MSCH(W, 0, i);\n        MSCH(W, 1, i);\n        MSCH(W, 2, i);\n        MSCH(W, 3, i);\n        MSCH(W, 4, i);\n        MSCH(W, 5, i);\n        MSCH(W, 6, i);\n        MSCH(W, 7, i);\n        MSCH(W, 8, i);\n        MSCH(W, 9, i);\n        MSCH(W, 10, i);\n        MSCH(W, 11, i);\n        MSCH(W, 12, i);\n        MSCH(W, 13, i);\n        MSCH(W, 14, i);\n        MSCH(W, 15, i);\n    }\n    for (i = 0; i < 8; i++) {\n        state[i] += S[i];\n    }\n}\n\nstatic const uint8_t PAD[128] = {\n    0x80, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n    0,    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n    0,    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n    0,    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n    0,    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n    0,    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0\n};\n\nstatic void\nSHA512_Pad(crypto_hash_sha512_state *state, uint64_t tmp64[80 + 8])\n{\n    unsigned int r;\n    unsigned int i;\n\n    ACQUIRE_FENCE;\n    r = (unsigned int) ((state->count[1] >> 3) & 0x7f);\n    if (r < 112) {\n        for (i = 0; i < 112 - r; i++) {\n            state->buf[r + i] = PAD[i];\n        }\n    } else {\n        for (i = 0; i < 128 - r; i++) {\n            state->buf[r + i] = PAD[i];\n        }\n        SHA512_Transform(state->state, state->buf, &tmp64[0], &tmp64[80]);\n        memset(&state->buf[0], 0, 112);\n    }\n    be64enc_vect(&state->buf[112], state->count, 16);\n    SHA512_Transform(state->state, state->buf, &tmp64[0], &tmp64[80]);\n}\n\nint\ncrypto_hash_sha512_init(crypto_hash_sha512_state *state)\n{\n    static const uint64_t sha512_initial_state[8] = {\n        0x6a09e667f3bcc908ULL, 0xbb67ae8584caa73bULL, 0x3c6ef372fe94f82bULL,\n        0xa54ff53a5f1d36f1ULL, 0x510e527fade682d1ULL, 0x9b05688c2b3e6c1fULL,\n        0x1f83d9abfb41bd6bULL, 0x5be0cd19137e2179ULL\n    };\n\n    state->count[0] = state->count[1] = (uint64_t) 0U;\n    memcpy(state->state, sha512_initial_state, sizeof sha512_initial_state);\n\n    return 0;\n}\n\nint\ncrypto_hash_sha512_update(crypto_hash_sha512_state *state,\n                          const unsigned char *in, unsigned long long inlen)\n{\n    uint64_t           tmp64[80 + 8];\n    uint64_t           bitlen[2];\n    unsigned long long i;\n    unsigned long long r;\n\n    if (inlen <= 0U) {\n        return 0;\n    }\n    ACQUIRE_FENCE;\n    r = (unsigned long long) ((state->count[1] >> 3) & 0x7f);\n\n    bitlen[1] = ((uint64_t) inlen) << 3;\n    bitlen[0] = ((uint64_t) inlen) >> 61;\n    /* LCOV_EXCL_START */\n    if ((state->count[1] += bitlen[1]) < bitlen[1]) {\n        state->count[0]++;\n    }\n    /* LCOV_EXCL_STOP */\n    state->count[0] += bitlen[0];\n    if (inlen < 128 - r) {\n        for (i = 0; i < inlen; i++) {\n            state->buf[r + i] = in[i];\n        }\n        return 0;\n    }\n    for (i = 0; i < 128 - r; i++) {\n        state->buf[r + i] = in[i];\n    }\n    SHA512_Transform(state->state, state->buf, &tmp64[0], &tmp64[80]);\n    in += 128 - r;\n    inlen -= 128 - r;\n\n    while (inlen >= 128) {\n        SHA512_Transform(state->state, in, &tmp64[0], &tmp64[80]);\n        in += 128;\n        inlen -= 128;\n    }\n    inlen &= 127;\n    for (i = 0; i < inlen; i++) {\n        state->buf[i] = in[i];\n    }\n    sodium_memzero((void *) tmp64, sizeof tmp64);\n\n    return 0;\n}\n\nint\ncrypto_hash_sha512_final(crypto_hash_sha512_state *state, unsigned char *out)\n{\n    uint64_t tmp64[80 + 8];\n\n    SHA512_Pad(state, tmp64);\n    be64enc_vect(out, state->state, 64);\n    sodium_memzero((void *) tmp64, sizeof tmp64);\n    sodium_memzero((void *) state, sizeof *state);\n\n    return 0;\n}\n\nint\ncrypto_hash_sha512(unsigned char *out, const unsigned char *in,\n                   unsigned long long inlen)\n{\n    crypto_hash_sha512_state state;\n\n    crypto_hash_sha512_init(&state);\n    crypto_hash_sha512_update(&state, in, inlen);\n    crypto_hash_sha512_final(&state, out);\n\n    return 0;\n}\n"
  },
  {
    "path": "src/libsodium/crypto_hash/sha512/hash_sha512.c",
    "content": "#include \"crypto_hash_sha512.h\"\n\nsize_t\ncrypto_hash_sha512_bytes(void)\n{\n    return crypto_hash_sha512_BYTES;\n}\n\nsize_t\ncrypto_hash_sha512_statebytes(void)\n{\n    return sizeof(crypto_hash_sha512_state);\n}\n"
  },
  {
    "path": "src/libsodium/crypto_ipcrypt/crypto_ipcrypt.c",
    "content": "\n#include <stdlib.h>\n\n#include \"core.h\"\n#include \"crypto_ipcrypt.h\"\n#include \"private/common.h\"\n#include \"private/implementations.h\"\n#include \"randombytes.h\"\n#include \"runtime.h\"\n\n#include \"ipcrypt_soft.h\"\n\n#if defined(HAVE_ARMCRYPTO) && defined(NATIVE_LITTLE_ENDIAN)\n#    include \"ipcrypt_armcrypto.h\"\n#endif\n\n#if defined(HAVE_AVXINTRIN_H) && defined(HAVE_WMMINTRIN_H)\n#    include \"ipcrypt_aesni.h\"\n#endif\n\nstatic const ipcrypt_implementation *implementation = &ipcrypt_soft_implementation;\n\nsize_t\ncrypto_ipcrypt_bytes(void)\n{\n    return crypto_ipcrypt_BYTES;\n}\n\nsize_t\ncrypto_ipcrypt_keybytes(void)\n{\n    return crypto_ipcrypt_KEYBYTES;\n}\n\nsize_t\ncrypto_ipcrypt_nd_keybytes(void)\n{\n    return crypto_ipcrypt_ND_KEYBYTES;\n}\n\nsize_t\ncrypto_ipcrypt_nd_tweakbytes(void)\n{\n    return crypto_ipcrypt_ND_TWEAKBYTES;\n}\n\nsize_t\ncrypto_ipcrypt_nd_inputbytes(void)\n{\n    return crypto_ipcrypt_ND_INPUTBYTES;\n}\n\nsize_t\ncrypto_ipcrypt_nd_outputbytes(void)\n{\n    return crypto_ipcrypt_ND_OUTPUTBYTES;\n}\n\nsize_t\ncrypto_ipcrypt_ndx_keybytes(void)\n{\n    return crypto_ipcrypt_NDX_KEYBYTES;\n}\n\nsize_t\ncrypto_ipcrypt_ndx_tweakbytes(void)\n{\n    return crypto_ipcrypt_NDX_TWEAKBYTES;\n}\n\nsize_t\ncrypto_ipcrypt_ndx_inputbytes(void)\n{\n    return crypto_ipcrypt_NDX_INPUTBYTES;\n}\n\nsize_t\ncrypto_ipcrypt_ndx_outputbytes(void)\n{\n    return crypto_ipcrypt_NDX_OUTPUTBYTES;\n}\n\nsize_t\ncrypto_ipcrypt_pfx_keybytes(void)\n{\n    return crypto_ipcrypt_PFX_KEYBYTES;\n}\n\nsize_t\ncrypto_ipcrypt_pfx_bytes(void)\n{\n    return crypto_ipcrypt_PFX_BYTES;\n}\n\nvoid\ncrypto_ipcrypt_keygen(unsigned char k[crypto_ipcrypt_KEYBYTES])\n{\n    randombytes_buf(k, crypto_ipcrypt_KEYBYTES);\n}\n\nvoid\ncrypto_ipcrypt_nd_keygen(unsigned char k[crypto_ipcrypt_ND_KEYBYTES])\n{\n    randombytes_buf(k, crypto_ipcrypt_ND_KEYBYTES);\n}\n\nvoid\ncrypto_ipcrypt_ndx_keygen(unsigned char k[crypto_ipcrypt_NDX_KEYBYTES])\n{\n    randombytes_buf(k, crypto_ipcrypt_NDX_KEYBYTES);\n}\n\nvoid\ncrypto_ipcrypt_pfx_keygen(unsigned char k[crypto_ipcrypt_PFX_KEYBYTES])\n{\n    randombytes_buf(k, crypto_ipcrypt_PFX_KEYBYTES);\n}\n\nvoid\ncrypto_ipcrypt_encrypt(unsigned char       out[crypto_ipcrypt_BYTES],\n                       const unsigned char in[crypto_ipcrypt_BYTES],\n                       const unsigned char k[crypto_ipcrypt_KEYBYTES])\n{\n    implementation->encrypt(out, in, k);\n}\n\nvoid\ncrypto_ipcrypt_decrypt(unsigned char       out[crypto_ipcrypt_BYTES],\n                       const unsigned char in[crypto_ipcrypt_BYTES],\n                       const unsigned char k[crypto_ipcrypt_KEYBYTES])\n{\n    implementation->decrypt(out, in, k);\n}\n\nvoid\ncrypto_ipcrypt_nd_encrypt(unsigned char       out[crypto_ipcrypt_ND_OUTPUTBYTES],\n                          const unsigned char in[crypto_ipcrypt_ND_INPUTBYTES],\n                          const unsigned char t[crypto_ipcrypt_ND_TWEAKBYTES],\n                          const unsigned char k[crypto_ipcrypt_ND_KEYBYTES])\n{\n    implementation->nd_encrypt(out, in, t, k);\n}\n\nvoid\ncrypto_ipcrypt_nd_decrypt(unsigned char       out[crypto_ipcrypt_ND_INPUTBYTES],\n                          const unsigned char in[crypto_ipcrypt_ND_OUTPUTBYTES],\n                          const unsigned char k[crypto_ipcrypt_ND_KEYBYTES])\n{\n    implementation->nd_decrypt(out, in, k);\n}\n\nvoid\ncrypto_ipcrypt_ndx_encrypt(unsigned char       out[crypto_ipcrypt_NDX_OUTPUTBYTES],\n                           const unsigned char in[crypto_ipcrypt_NDX_INPUTBYTES],\n                           const unsigned char t[crypto_ipcrypt_NDX_TWEAKBYTES],\n                           const unsigned char k[crypto_ipcrypt_NDX_KEYBYTES])\n{\n    implementation->ndx_encrypt(out, in, t, k);\n}\n\nvoid\ncrypto_ipcrypt_ndx_decrypt(unsigned char       out[crypto_ipcrypt_NDX_INPUTBYTES],\n                           const unsigned char in[crypto_ipcrypt_NDX_OUTPUTBYTES],\n                           const unsigned char k[crypto_ipcrypt_NDX_KEYBYTES])\n{\n    implementation->ndx_decrypt(out, in, k);\n}\n\nvoid\ncrypto_ipcrypt_pfx_encrypt(unsigned char       out[crypto_ipcrypt_PFX_BYTES],\n                           const unsigned char in[crypto_ipcrypt_PFX_BYTES],\n                           const unsigned char k[crypto_ipcrypt_PFX_KEYBYTES])\n{\n    implementation->pfx_encrypt(out, in, k);\n}\n\nvoid\ncrypto_ipcrypt_pfx_decrypt(unsigned char       out[crypto_ipcrypt_PFX_BYTES],\n                           const unsigned char in[crypto_ipcrypt_PFX_BYTES],\n                           const unsigned char k[crypto_ipcrypt_PFX_KEYBYTES])\n{\n    implementation->pfx_decrypt(out, in, k);\n}\n\nint\n_crypto_ipcrypt_pick_best_implementation(void)\n{\n    implementation = &ipcrypt_soft_implementation;\n\n#if defined(HAVE_ARMCRYPTO) && defined(NATIVE_LITTLE_ENDIAN)\n    if (sodium_runtime_has_armcrypto()) {\n        implementation = &ipcrypt_armcrypto_implementation;\n        return 0;\n    }\n#endif\n\n#if defined(HAVE_AVXINTRIN_H) && defined(HAVE_WMMINTRIN_H)\n    if (sodium_runtime_has_aesni()) {\n        implementation = &ipcrypt_aesni_implementation;\n        return 0;\n    }\n#endif\n    return 0;\n}\n"
  },
  {
    "path": "src/libsodium/crypto_ipcrypt/implementations.h",
    "content": "#ifndef ipcrypt_implementations_H\n#define ipcrypt_implementations_H\n\n#include <stddef.h>\n#include <stdint.h>\n\n#include \"crypto_ipcrypt.h\"\n\ntypedef struct ipcrypt_implementation {\n    void (*encrypt)(uint8_t *out, const uint8_t *in, const uint8_t *k);\n    void (*decrypt)(uint8_t *out, const uint8_t *in, const uint8_t *k);\n    void (*nd_encrypt)(uint8_t *out, const uint8_t *in, const uint8_t *t, const uint8_t *k);\n    void (*nd_decrypt)(uint8_t *out, const uint8_t *in, const uint8_t *k);\n    void (*ndx_encrypt)(uint8_t *out, const uint8_t *in, const uint8_t *t, const uint8_t *k);\n    void (*ndx_decrypt)(uint8_t *out, const uint8_t *in, const uint8_t *k);\n    void (*pfx_encrypt)(uint8_t *out, const uint8_t *in, const uint8_t *k);\n    void (*pfx_decrypt)(uint8_t *out, const uint8_t *in, const uint8_t *k);\n} ipcrypt_implementation;\n\n#endif\n"
  },
  {
    "path": "src/libsodium/crypto_ipcrypt/ipcrypt_aesni.c",
    "content": "#include <stddef.h>\n#include <stdint.h>\n#include <string.h>\n\n#include \"crypto_ipcrypt.h\"\n#include \"utils.h\"\n\n#include \"private/common.h\"\n\n#if defined(HAVE_AVXINTRIN_H) && defined(HAVE_WMMINTRIN_H)\n\n#    include \"ipcrypt_aesni.h\"\n\n#    ifdef __clang__\n#        pragma clang attribute push(__attribute__((target(\"aes,avx\"))), apply_to = function)\n#    elif defined(__GNUC__)\n#        pragma GCC target(\"aes,avx\")\n#    endif\n\n#    include <immintrin.h>\n#    include <wmmintrin.h>\n\n#    define ROUNDS 10\n\ntypedef __m128i BlockVec;\n\n#    define LOAD128(a)                       _mm_loadu_si128((const BlockVec *) (const void *) (a))\n#    define STORE128(a, b)                   _mm_storeu_si128((BlockVec *) (void *) (a), (b))\n#    define AES_ENCRYPT(block_vec, rkey)     _mm_aesenc_si128((block_vec), (rkey))\n#    define AES_ENCRYPTLAST(block_vec, rkey) _mm_aesenclast_si128((block_vec), (rkey))\n#    define AES_DECRYPT(block_vec, rkey)     _mm_aesdec_si128((block_vec), (rkey))\n#    define AES_DECRYPTLAST(block_vec, rkey) _mm_aesdeclast_si128((block_vec), (rkey))\n#    define AES_KEYGEN(block_vec, rc)        _mm_aeskeygenassist_si128((block_vec), (rc))\n#    define AES_IMC(rkey)                    _mm_aesimc_si128(rkey)\n#    define XOR128(a, b)                     _mm_xor_si128((a), (b))\n#    define XOR128_3(a, b, c)                _mm_xor_si128(_mm_xor_si128((a), (b)), (c))\n#    define SET64x2(a, b)                    _mm_set_epi64x((uint64_t) (a), (uint64_t) (b))\n#    define BYTESHL128(a, b)                 _mm_slli_si128(a, b)\n#    define SHUFFLE32x4(x, a, b, c, d)       _mm_shuffle_epi32((x), _MM_SHUFFLE((d), (c), (b), (a)))\n\ntypedef BlockVec KeySchedule[1 + ROUNDS];\n\nstatic void\nexpand_key(BlockVec *rkeys, const uint8_t key[16])\n{\n    BlockVec t, s;\n    size_t   i = 0;\n\n#    define EXPAND_KEY(RC)                        \\\n        rkeys[i++] = t;                           \\\n        s          = AES_KEYGEN(t, RC);           \\\n        t          = XOR128(t, BYTESHL128(t, 4)); \\\n        t          = XOR128(t, BYTESHL128(t, 8)); \\\n        t          = XOR128(t, SHUFFLE32x4(s, 3, 3, 3, 3));\n\n    t = LOAD128(key);\n    EXPAND_KEY(0x01);\n    EXPAND_KEY(0x02);\n    EXPAND_KEY(0x04);\n    EXPAND_KEY(0x08);\n    EXPAND_KEY(0x10);\n    EXPAND_KEY(0x20);\n    EXPAND_KEY(0x40);\n    EXPAND_KEY(0x80);\n    EXPAND_KEY(0x1b);\n    EXPAND_KEY(0x36);\n    rkeys[i++] = t;\n}\n\nstatic void\naes_encrypt(uint8_t out[16], const uint8_t in[16], const BlockVec *rkeys)\n{\n    BlockVec t;\n    size_t   i;\n\n    t = XOR128(LOAD128(in), rkeys[0]);\n    for (i = 1; i < ROUNDS; i++) {\n        t = AES_ENCRYPT(t, rkeys[i]);\n    }\n    t = AES_ENCRYPTLAST(t, rkeys[ROUNDS]);\n    STORE128(out, t);\n}\n\nstatic void\naes_decrypt(uint8_t out[16], const uint8_t in[16], const BlockVec *rkeys)\n{\n    KeySchedule rkeys_inv;\n    BlockVec    t;\n    size_t      i;\n\n    for (i = 0; i < ROUNDS - 1; i++) {\n        rkeys_inv[i] = AES_IMC(rkeys[ROUNDS - 1 - i]);\n    }\n    t = XOR128(LOAD128(in), rkeys[ROUNDS]);\n    for (i = 0; i < ROUNDS - 1; i++) {\n        t = AES_DECRYPT(t, rkeys_inv[i]);\n    }\n    t = AES_DECRYPTLAST(t, rkeys[0]);\n    STORE128(out, t);\n    sodium_memzero(rkeys_inv, sizeof rkeys_inv);\n}\n\nstatic BlockVec\ntweak_expand(const uint8_t tweak[8])\n{\n    return _mm_shuffle_epi8(_mm_loadl_epi64((const __m128i *) (const void *) tweak),\n                            _mm_setr_epi8(0x00, 0x01, -128, -128, 0x02, 0x03, -128, -128, 0x04,\n                                          0x05, -128, -128, 0x06, 0x07, -128, -128));\n}\n\nstatic void\naes_encrypt_with_tweak(uint8_t out[16], const uint8_t in[16], const uint8_t tweak[8],\n                       const BlockVec *rkeys)\n{\n    const BlockVec tweak_block = tweak_expand(tweak);\n    BlockVec       t;\n    size_t         i;\n\n    t = XOR128_3(LOAD128(in), tweak_block, rkeys[0]);\n    for (i = 1; i < ROUNDS; i++) {\n        t = AES_ENCRYPT(t, XOR128(tweak_block, rkeys[i]));\n    }\n    t = AES_ENCRYPTLAST(t, XOR128(tweak_block, rkeys[ROUNDS]));\n    STORE128(out, t);\n}\n\nstatic void\naes_decrypt_with_tweak(uint8_t out[16], const uint8_t in[16], const uint8_t tweak[8],\n                       const BlockVec *rkeys)\n{\n    KeySchedule    rkeys_inv;\n    const BlockVec tweak_block     = tweak_expand(tweak);\n    const BlockVec tweak_block_inv = AES_IMC(tweak_block);\n    BlockVec       t;\n    size_t         i;\n\n    for (i = 0; i < ROUNDS - 1; i++) {\n        rkeys_inv[i] = AES_IMC(rkeys[ROUNDS - 1 - i]);\n    }\n    t = XOR128_3(LOAD128(in), tweak_block, rkeys[ROUNDS]);\n    for (i = 0; i < ROUNDS - 1; i++) {\n        t = AES_DECRYPT(t, XOR128(tweak_block_inv, rkeys_inv[i]));\n    }\n    t = AES_DECRYPTLAST(t, XOR128(tweak_block, rkeys[0]));\n    STORE128(out, t);\n    sodium_memzero(rkeys_inv, sizeof rkeys_inv);\n}\n\nstatic BlockVec\naes_xex_tweak(const uint8_t tweak[16], const BlockVec *tkeys)\n{\n    BlockVec tt;\n    size_t   i;\n\n    tt = XOR128(LOAD128(tweak), tkeys[0]);\n    for (i = 1; i < ROUNDS; i++) {\n        tt = AES_ENCRYPT(tt, tkeys[i]);\n    }\n    tt = AES_ENCRYPTLAST(tt, tkeys[ROUNDS]);\n    return tt;\n}\n\nstatic void\naes_xex_encrypt(uint8_t out[16], const uint8_t in[16], const uint8_t tweak[16],\n                const BlockVec *tkeys, const BlockVec *rkeys)\n{\n    const BlockVec tt = aes_xex_tweak(tweak, tkeys);\n    BlockVec       t;\n    size_t         i;\n\n    t = XOR128(XOR128(LOAD128(in), tt), rkeys[0]);\n    for (i = 1; i < ROUNDS; i++) {\n        t = AES_ENCRYPT(t, rkeys[i]);\n    }\n    t = AES_ENCRYPTLAST(t, XOR128(rkeys[ROUNDS], tt));\n    STORE128(out, t);\n}\n\nstatic void\naes_xex_decrypt(uint8_t out[16], const uint8_t in[16], const uint8_t tweak[16],\n                const BlockVec *tkeys, const BlockVec *rkeys)\n{\n    KeySchedule    rkeys_inv;\n    const BlockVec tt = aes_xex_tweak(tweak, tkeys);\n    BlockVec       t;\n    size_t         i;\n\n    for (i = 0; i < ROUNDS - 1; i++) {\n        rkeys_inv[i] = AES_IMC(rkeys[ROUNDS - 1 - i]);\n    }\n    t = XOR128(XOR128(LOAD128(in), tt), rkeys[ROUNDS]);\n    for (i = 0; i < ROUNDS - 1; i++) {\n        t = AES_DECRYPT(t, rkeys_inv[i]);\n    }\n    t = AES_DECRYPTLAST(t, XOR128(rkeys[0], tt));\n    STORE128(out, t);\n    sodium_memzero(rkeys_inv, sizeof rkeys_inv);\n}\n\nstatic void\nencrypt(uint8_t *out, const uint8_t *in, const uint8_t *k)\n{\n    KeySchedule rkeys;\n\n    expand_key(rkeys, k);\n    aes_encrypt(out, in, rkeys);\n    sodium_memzero(rkeys, sizeof rkeys);\n}\n\nstatic void\ndecrypt(uint8_t *out, const uint8_t *in, const uint8_t *k)\n{\n    KeySchedule rkeys;\n\n    expand_key(rkeys, k);\n    aes_decrypt(out, in, rkeys);\n    sodium_memzero(rkeys, sizeof rkeys);\n}\n\nstatic void\nnd_encrypt(uint8_t *out, const uint8_t *in, const uint8_t *t, const uint8_t *k)\n{\n    KeySchedule rkeys;\n\n    expand_key(rkeys, k);\n    memcpy(out, t, 8);\n    aes_encrypt_with_tweak(out + 8, in, t, rkeys);\n    sodium_memzero(rkeys, sizeof rkeys);\n}\n\nstatic void\nnd_decrypt(uint8_t *out, const uint8_t *in, const uint8_t *k)\n{\n    KeySchedule rkeys;\n\n    expand_key(rkeys, k);\n    aes_decrypt_with_tweak(out, in + 8, in, rkeys);\n    sodium_memzero(rkeys, sizeof rkeys);\n}\n\nstatic void\nndx_encrypt(uint8_t *out, const uint8_t *in, const uint8_t *t, const uint8_t *k)\n{\n    KeySchedule tkeys;\n    KeySchedule rkeys;\n    uint8_t     diff[16];\n    size_t      i;\n    uint8_t     d;\n\n    expand_key(tkeys, k + 16);\n    expand_key(rkeys, k);\n\n    STORE128(diff, XOR128(tkeys[ROUNDS / 2], rkeys[ROUNDS / 2]));\n    d = 0;\n    for (i = 0; i < 16; i++) {\n        d |= diff[i];\n    }\n    if (d == 0) {\n        for (i = 0; i < 16; i++) {\n            diff[i] = k[i] ^ 0x5a;\n        }\n        expand_key(rkeys, diff);\n    }\n\n    memcpy(out, t, 16);\n    aes_xex_encrypt(out + 16, in, t, tkeys, rkeys);\n    sodium_memzero(diff, sizeof diff);\n    sodium_memzero(rkeys, sizeof rkeys);\n    sodium_memzero(tkeys, sizeof tkeys);\n}\n\nstatic void\nndx_decrypt(uint8_t *out, const uint8_t *in, const uint8_t *k)\n{\n    KeySchedule tkeys;\n    KeySchedule rkeys;\n    uint8_t     diff[16];\n    size_t      i;\n    uint8_t     d;\n\n    expand_key(tkeys, k + 16);\n    expand_key(rkeys, k);\n\n    STORE128(diff, XOR128(tkeys[ROUNDS / 2], rkeys[ROUNDS / 2]));\n    d = 0;\n    for (i = 0; i < 16; i++) {\n        d |= diff[i];\n    }\n    if (d == 0) {\n        for (i = 0; i < 16; i++) {\n            diff[i] = k[i] ^ 0x5a;\n        }\n        expand_key(rkeys, diff);\n    }\n\n    aes_xex_decrypt(out, in + 16, in, tkeys, rkeys);\n    sodium_memzero(diff, sizeof diff);\n    sodium_memzero(rkeys, sizeof rkeys);\n    sodium_memzero(tkeys, sizeof tkeys);\n}\n\nstatic int\nis_ipv4_mapped(const uint8_t ip16[16])\n{\n    static const uint8_t ipv4_mapped_prefix[12] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0xff, 0xff };\n\n    return memcmp(ip16, ipv4_mapped_prefix, 12) == 0;\n}\n\nstatic uint8_t\npfx_get_bit(const uint8_t ip16[16], unsigned int bit_index)\n{\n    return (ip16[15 - bit_index / 8] >> (bit_index % 8)) & 1;\n}\n\nstatic void\npfx_set_bit(uint8_t ip16[16], const unsigned int bit_index, const uint8_t bit_value)\n{\n    const size_t  byte_index = 15 - bit_index / 8;\n    const uint8_t bit_mask   = (uint8_t) (1 << (bit_index % 8));\n    uint8_t       mask       = (uint8_t) -((bit_value & 1));\n\n#    if defined(__GNUC__) || defined(__clang__)\n    __asm__ __volatile__(\"\" : \"+r\"(mask) :);\n#    endif\n    ip16[byte_index] = (ip16[byte_index] & ~bit_mask) | (bit_mask & mask);\n}\n\nstatic void\npfx_shift_left(uint8_t ip16[16])\n{\n    BlockVec       v       = LOAD128(ip16);\n    const BlockVec shl     = _mm_add_epi8(v, v);\n    const BlockVec msb     = _mm_and_si128(_mm_srli_epi16(v, 7), _mm_set1_epi8(0x01));\n    const BlockVec carries = _mm_srli_si128(msb, 1);\n    v                      = _mm_or_si128(shl, carries);\n    STORE128(ip16, v);\n}\n\nstatic void\npfx_pad_prefix(uint8_t padded_prefix[16], unsigned int prefix_len_bits)\n{\n    memset(padded_prefix, 0, 16);\n    if (prefix_len_bits == 0) {\n        padded_prefix[15] = 0x01;\n    } else {\n        padded_prefix[3]  = 0x01;\n        padded_prefix[14] = 0xff;\n        padded_prefix[15] = 0xff;\n    }\n}\n\nstatic void\npfx_encrypt(uint8_t *out, const uint8_t *in, const uint8_t *k)\n{\n    KeySchedule  k1keys;\n    KeySchedule  k2keys;\n    uint8_t      diff[16];\n    uint8_t      encrypted[16];\n    uint8_t      padded_prefix[16];\n    uint8_t      t[16];\n    BlockVec     e1, e2, e;\n    unsigned int prefix_start = 0;\n    unsigned int prefix_len_bits;\n    unsigned int bit_pos;\n    uint8_t      cipher_bit;\n    uint8_t      original_bit;\n    size_t       i;\n    uint8_t      d;\n\n    expand_key(k1keys, k);\n    expand_key(k2keys, k + 16);\n\n    STORE128(diff, XOR128(k1keys[ROUNDS / 2], k2keys[ROUNDS / 2]));\n    d = 0;\n    for (i = 0; i < 16; i++) {\n        d |= diff[i];\n    }\n    if (d == 0) {\n        for (i = 0; i < 16; i++) {\n            diff[i] = k[i] ^ 0x5a;\n        }\n        expand_key(k2keys, diff);\n    }\n\n    if (is_ipv4_mapped(in)) {\n        prefix_start = 96;\n    }\n\n    pfx_pad_prefix(padded_prefix, prefix_start);\n\n    memset(encrypted, 0, 16);\n    if (prefix_start == 96) {\n        encrypted[10] = 0xff;\n        encrypted[11] = 0xff;\n    }\n\n    for (prefix_len_bits = prefix_start; prefix_len_bits < 128; prefix_len_bits++) {\n        e1 = XOR128(LOAD128(padded_prefix), k1keys[0]);\n        e2 = XOR128(LOAD128(padded_prefix), k2keys[0]);\n        for (i = 1; i < ROUNDS; i++) {\n            e1 = AES_ENCRYPT(e1, k1keys[i]);\n            e2 = AES_ENCRYPT(e2, k2keys[i]);\n        }\n        e1 = AES_ENCRYPTLAST(e1, k1keys[ROUNDS]);\n        e2 = AES_ENCRYPTLAST(e2, k2keys[ROUNDS]);\n\n        e = XOR128(e1, e2);\n        STORE128(t, e);\n\n        cipher_bit   = t[15] & 1;\n        bit_pos      = 127 - prefix_len_bits;\n        original_bit = pfx_get_bit(in, bit_pos);\n        pfx_set_bit(encrypted, bit_pos, original_bit ^ cipher_bit);\n\n        pfx_shift_left(padded_prefix);\n        pfx_set_bit(padded_prefix, 0, original_bit);\n    }\n\n    memcpy(out, encrypted, 16);\n    sodium_memzero(diff, sizeof diff);\n    sodium_memzero(k2keys, sizeof k2keys);\n    sodium_memzero(k1keys, sizeof k1keys);\n}\n\nstatic void\npfx_decrypt(uint8_t *out, const uint8_t *in, const uint8_t *k)\n{\n    KeySchedule  k1keys;\n    KeySchedule  k2keys;\n    uint8_t      diff[16];\n    uint8_t      decrypted[16];\n    uint8_t      padded_prefix[16];\n    uint8_t      t[16];\n    BlockVec     e1, e2, e;\n    unsigned int prefix_start = 0;\n    unsigned int prefix_len_bits;\n    unsigned int bit_pos;\n    uint8_t      cipher_bit;\n    uint8_t      encrypted_bit;\n    uint8_t      original_bit;\n    size_t       i;\n    uint8_t      d;\n\n    expand_key(k1keys, k);\n    expand_key(k2keys, k + 16);\n\n    STORE128(diff, XOR128(k1keys[ROUNDS / 2], k2keys[ROUNDS / 2]));\n    d = 0;\n    for (i = 0; i < 16; i++) {\n        d |= diff[i];\n    }\n    if (d == 0) {\n        for (i = 0; i < 16; i++) {\n            diff[i] = k[i] ^ 0x5a;\n        }\n        expand_key(k2keys, diff);\n    }\n\n    if (is_ipv4_mapped(in)) {\n        prefix_start = 96;\n    }\n\n    pfx_pad_prefix(padded_prefix, prefix_start);\n\n    memset(decrypted, 0, 16);\n    if (prefix_start == 96) {\n        decrypted[10] = 0xff;\n        decrypted[11] = 0xff;\n    }\n\n    for (prefix_len_bits = prefix_start; prefix_len_bits < 128; prefix_len_bits++) {\n        e1 = XOR128(LOAD128(padded_prefix), k1keys[0]);\n        e2 = XOR128(LOAD128(padded_prefix), k2keys[0]);\n        for (i = 1; i < ROUNDS; i++) {\n            e1 = AES_ENCRYPT(e1, k1keys[i]);\n            e2 = AES_ENCRYPT(e2, k2keys[i]);\n        }\n        e1 = AES_ENCRYPTLAST(e1, k1keys[ROUNDS]);\n        e2 = AES_ENCRYPTLAST(e2, k2keys[ROUNDS]);\n\n        e = XOR128(e1, e2);\n        STORE128(t, e);\n\n        cipher_bit    = t[15] & 1;\n        bit_pos       = 127 - prefix_len_bits;\n        encrypted_bit = pfx_get_bit(in, bit_pos);\n        original_bit  = encrypted_bit ^ cipher_bit;\n        pfx_set_bit(decrypted, bit_pos, original_bit);\n\n        pfx_shift_left(padded_prefix);\n        pfx_set_bit(padded_prefix, 0, original_bit);\n    }\n\n    memcpy(out, decrypted, 16);\n    sodium_memzero(diff, sizeof diff);\n    sodium_memzero(k2keys, sizeof k2keys);\n    sodium_memzero(k1keys, sizeof k1keys);\n}\n\nstruct ipcrypt_implementation ipcrypt_aesni_implementation = {\n    SODIUM_C99(.encrypt =) encrypt,         SODIUM_C99(.decrypt =) decrypt,\n    SODIUM_C99(.nd_encrypt =) nd_encrypt,   SODIUM_C99(.nd_decrypt =) nd_decrypt,\n    SODIUM_C99(.ndx_encrypt =) ndx_encrypt, SODIUM_C99(.ndx_decrypt =) ndx_decrypt,\n    SODIUM_C99(.pfx_encrypt =) pfx_encrypt, SODIUM_C99(.pfx_decrypt =) pfx_decrypt\n};\n\n#    ifdef __clang__\n#        pragma clang attribute pop\n#    endif\n\n#endif\n"
  },
  {
    "path": "src/libsodium/crypto_ipcrypt/ipcrypt_aesni.h",
    "content": "#ifndef ipcrypt_aesni_H\n#define ipcrypt_aesni_H\n\n#include \"implementations.h\"\n\nextern struct ipcrypt_implementation ipcrypt_aesni_implementation;\n\n#endif\n"
  },
  {
    "path": "src/libsodium/crypto_ipcrypt/ipcrypt_armcrypto.c",
    "content": "#include <stddef.h>\n#include <stdint.h>\n#include <string.h>\n\n#include \"crypto_ipcrypt.h\"\n#include \"utils.h\"\n\n#include \"private/common.h\"\n\n#if defined(HAVE_ARMCRYPTO) && defined(NATIVE_LITTLE_ENDIAN)\n\n#    include \"ipcrypt_armcrypto.h\"\n\n#    ifndef __ARM_FEATURE_CRYPTO\n#        define __ARM_FEATURE_CRYPTO 1\n#    endif\n#    ifndef __ARM_FEATURE_AES\n#        define __ARM_FEATURE_AES 1\n#    endif\n\n#    include <arm_neon.h>\n\n#    ifdef __clang__\n#        pragma clang attribute push(__attribute__((target(\"neon,crypto,aes\"))), \\\n                                     apply_to = function)\n#    elif defined(__GNUC__)\n#        pragma GCC target(\"+simd+crypto\")\n#    endif\n\n#    define ROUNDS 10\n\ntypedef uint64x2_t BlockVec;\n\n#    define LOAD128(a)        vld1q_u64((const uint64_t *) (const void *) (a))\n#    define STORE128(a, b)    vst1q_u64((uint64_t *) (void *) (a), (b))\n#    define XOR128(a, b)      veorq_u64((a), (b))\n#    define XOR128_3(a, b, c) veorq_u64(veorq_u64((a), (b)), (c))\n#    define SET64x2(a, b)     vsetq_lane_u64((uint64_t) (a), vmovq_n_u64((uint64_t) (b)), 1)\n#    define BYTESHL128(a, b) \\\n        vreinterpretq_u64_u8(vextq_u8(vdupq_n_u8(0), vreinterpretq_u8_u64(a), 16 - (b)))\n\n#    define AES_XENCRYPT(block_vec, rkey) \\\n        vreinterpretq_u64_u8(             \\\n            vaesmcq_u8(vaeseq_u8(vreinterpretq_u8_u64(rkey), vreinterpretq_u8_u64(block_vec))))\n#    define AES_XENCRYPTLAST(block_vec, rkey) \\\n        vreinterpretq_u64_u8(vaeseq_u8(vreinterpretq_u8_u64(rkey), vreinterpretq_u8_u64(block_vec)))\n#    define AES_XDECRYPT(block_vec, rkey) \\\n        vreinterpretq_u64_u8(             \\\n            vaesimcq_u8(vaesdq_u8(vreinterpretq_u8_u64(rkey), vreinterpretq_u8_u64(block_vec))))\n#    define AES_XDECRYPTLAST(block_vec, rkey) \\\n        vreinterpretq_u64_u8(vaesdq_u8(vreinterpretq_u8_u64(rkey), vreinterpretq_u8_u64(block_vec)))\n#    define RKINVERT(rkey) vreinterpretq_u64_u8(vaesimcq_u8(vreinterpretq_u8_u64(rkey)))\n\n#    define SHUFFLE32x4_3333(x) vreinterpretq_u64_u32(vdupq_laneq_u32(vreinterpretq_u32_u64(x), 3))\n\ntypedef BlockVec KeySchedule[1 + ROUNDS];\n\nstatic BlockVec\nAES_KEYGEN(BlockVec block_vec, const int rc)\n{\n    static const uint8_t aes_keygen_shuffle[16] = {\n        4, 1, 14, 11, 1, 14, 11, 4, 12, 9, 6, 3, 9, 6, 3, 12,\n    };\n    uint8x16_t       a = vaeseq_u8(vreinterpretq_u8_u64(block_vec), vmovq_n_u8(0));\n    const BlockVec   b = vreinterpretq_u64_u8(vqtbl1q_u8(a, vld1q_u8(aes_keygen_shuffle)));\n    const uint64x2_t c = SET64x2((uint64_t) rc << 32, (uint64_t) rc << 32);\n    return XOR128(b, c);\n}\n\nstatic void\nexpand_key(BlockVec *rkeys, const uint8_t key[16])\n{\n    BlockVec t, s;\n    size_t   i = 0;\n\n#    define EXPAND_KEY(RC)                        \\\n        rkeys[i++] = t;                           \\\n        s          = AES_KEYGEN(t, RC);           \\\n        t          = XOR128(t, BYTESHL128(t, 4)); \\\n        t          = XOR128(t, BYTESHL128(t, 8)); \\\n        t          = XOR128(t, SHUFFLE32x4_3333(s));\n\n    t = LOAD128(key);\n    EXPAND_KEY(0x01);\n    EXPAND_KEY(0x02);\n    EXPAND_KEY(0x04);\n    EXPAND_KEY(0x08);\n    EXPAND_KEY(0x10);\n    EXPAND_KEY(0x20);\n    EXPAND_KEY(0x40);\n    EXPAND_KEY(0x80);\n    EXPAND_KEY(0x1b);\n    EXPAND_KEY(0x36);\n    rkeys[i++] = t;\n}\n\nstatic void\naes_encrypt(uint8_t out[16], const uint8_t in[16], const BlockVec *rkeys)\n{\n    BlockVec t;\n    size_t   i;\n\n    t = AES_XENCRYPT(LOAD128(in), rkeys[0]);\n    for (i = 1; i < ROUNDS - 1; i++) {\n        t = AES_XENCRYPT(t, rkeys[i]);\n    }\n    t = AES_XENCRYPTLAST(t, rkeys[i]);\n    t = XOR128(t, rkeys[ROUNDS]);\n    STORE128(out, t);\n}\n\nstatic void\naes_decrypt(uint8_t out[16], const uint8_t in[16], const BlockVec *rkeys)\n{\n    KeySchedule rkeys_inv;\n    BlockVec    t;\n    size_t      i;\n\n    for (i = 0; i < ROUNDS - 1; i++) {\n        rkeys_inv[i] = RKINVERT(rkeys[ROUNDS - 1 - i]);\n    }\n    t = AES_XDECRYPT(LOAD128(in), rkeys[ROUNDS]);\n    for (i = 0; i < ROUNDS - 2; i++) {\n        t = AES_XDECRYPT(t, rkeys_inv[i]);\n    }\n    t = AES_XDECRYPTLAST(t, rkeys_inv[i]);\n    t = XOR128(t, rkeys[0]);\n    STORE128(out, t);\n    sodium_memzero(rkeys_inv, sizeof rkeys_inv);\n}\n\nstatic BlockVec\ntweak_expand(const uint8_t tweak[8])\n{\n    return vreinterpretq_u64_u32(vmovl_u16(vld1_u16((const uint16_t *) (tweak))));\n}\n\nstatic void\naes_encrypt_with_tweak(uint8_t out[16], const uint8_t in[16], const uint8_t tweak[8],\n                       const BlockVec *rkeys)\n{\n    const BlockVec tweak_block = tweak_expand(tweak);\n    BlockVec       t;\n    size_t         i;\n\n    t = AES_XENCRYPT(LOAD128(in), XOR128(tweak_block, rkeys[0]));\n    for (i = 1; i < ROUNDS - 1; i++) {\n        t = AES_XENCRYPT(t, XOR128(tweak_block, rkeys[i]));\n    }\n    t = AES_XENCRYPTLAST(t, XOR128(tweak_block, rkeys[i]));\n    t = XOR128(t, XOR128(tweak_block, rkeys[ROUNDS]));\n    STORE128(out, t);\n}\n\nstatic void\naes_decrypt_with_tweak(uint8_t out[16], const uint8_t in[16], const uint8_t tweak[8],\n                       const BlockVec *rkeys)\n{\n    KeySchedule    rkeys_inv;\n    const BlockVec tweak_block     = tweak_expand(tweak);\n    const BlockVec tweak_block_inv = RKINVERT(tweak_block);\n    BlockVec       t;\n    size_t         i;\n\n    for (i = 0; i < ROUNDS - 1; i++) {\n        rkeys_inv[i] = RKINVERT(rkeys[ROUNDS - 1 - i]);\n    }\n    t = AES_XDECRYPT(LOAD128(in), XOR128(tweak_block, rkeys[ROUNDS]));\n    for (i = 0; i < ROUNDS - 2; i++) {\n        t = AES_XDECRYPT(t, XOR128(tweak_block_inv, rkeys_inv[i]));\n    }\n    t = AES_XDECRYPTLAST(t, XOR128(tweak_block_inv, rkeys_inv[i]));\n    t = XOR128(t, XOR128(tweak_block, rkeys[0]));\n    STORE128(out, t);\n    sodium_memzero(rkeys_inv, sizeof rkeys_inv);\n}\n\nstatic BlockVec\naes_xex_tweak(const uint8_t tweak[16], const BlockVec *tkeys)\n{\n    BlockVec tt;\n    size_t   i;\n\n    tt = AES_XENCRYPT(LOAD128(tweak), tkeys[0]);\n    for (i = 1; i < ROUNDS - 1; i++) {\n        tt = AES_XENCRYPT(tt, tkeys[i]);\n    }\n    tt = AES_XENCRYPTLAST(tt, tkeys[i]);\n    tt = XOR128(tt, tkeys[ROUNDS]);\n    return tt;\n}\n\nstatic void\naes_xex_encrypt(uint8_t out[16], const uint8_t in[16], const uint8_t tweak[16],\n                const BlockVec *tkeys, const BlockVec *rkeys)\n{\n    const BlockVec tt = aes_xex_tweak(tweak, tkeys);\n    BlockVec       t;\n    size_t         i;\n\n    t = AES_XENCRYPT(XOR128(LOAD128(in), tt), rkeys[0]);\n    for (i = 1; i < ROUNDS - 1; i++) {\n        t = AES_XENCRYPT(t, rkeys[i]);\n    }\n    t = AES_XENCRYPTLAST(t, rkeys[i]);\n    t = XOR128_3(t, rkeys[ROUNDS], tt);\n    STORE128(out, t);\n}\n\nstatic void\naes_xex_decrypt(uint8_t out[16], const uint8_t in[16], const uint8_t tweak[16],\n                const BlockVec *tkeys, const BlockVec *rkeys)\n{\n    KeySchedule    rkeys_inv;\n    const BlockVec tt = aes_xex_tweak(tweak, tkeys);\n    BlockVec       t;\n    size_t         i;\n\n    for (i = 0; i < ROUNDS - 1; i++) {\n        rkeys_inv[i] = RKINVERT(rkeys[ROUNDS - 1 - i]);\n    }\n    t = AES_XDECRYPT(XOR128(LOAD128(in), tt), rkeys[ROUNDS]);\n    for (i = 0; i < ROUNDS - 2; i++) {\n        t = AES_XDECRYPT(t, rkeys_inv[i]);\n    }\n    t = AES_XDECRYPTLAST(t, rkeys_inv[i]);\n    t = XOR128_3(t, rkeys[0], tt);\n    STORE128(out, t);\n    sodium_memzero(rkeys_inv, sizeof rkeys_inv);\n}\n\nstatic void\nencrypt(uint8_t *out, const uint8_t *in, const uint8_t *k)\n{\n    KeySchedule rkeys;\n\n    expand_key(rkeys, k);\n    aes_encrypt(out, in, rkeys);\n    sodium_memzero(rkeys, sizeof rkeys);\n}\n\nstatic void\ndecrypt(uint8_t *out, const uint8_t *in, const uint8_t *k)\n{\n    KeySchedule rkeys;\n\n    expand_key(rkeys, k);\n    aes_decrypt(out, in, rkeys);\n    sodium_memzero(rkeys, sizeof rkeys);\n}\n\nstatic void\nnd_encrypt(uint8_t *out, const uint8_t *in, const uint8_t *t, const uint8_t *k)\n{\n    KeySchedule rkeys;\n\n    expand_key(rkeys, k);\n    memcpy(out, t, 8);\n    aes_encrypt_with_tweak(out + 8, in, t, rkeys);\n    sodium_memzero(rkeys, sizeof rkeys);\n}\n\nstatic void\nnd_decrypt(uint8_t *out, const uint8_t *in, const uint8_t *k)\n{\n    KeySchedule rkeys;\n\n    expand_key(rkeys, k);\n    aes_decrypt_with_tweak(out, in + 8, in, rkeys);\n    sodium_memzero(rkeys, sizeof rkeys);\n}\n\nstatic void\nndx_encrypt(uint8_t *out, const uint8_t *in, const uint8_t *t, const uint8_t *k)\n{\n    KeySchedule tkeys;\n    KeySchedule rkeys;\n    uint8_t     diff[16];\n    size_t      i;\n    uint8_t     d;\n\n    expand_key(tkeys, k + 16);\n    expand_key(rkeys, k);\n\n    STORE128(diff, XOR128(tkeys[ROUNDS / 2], rkeys[ROUNDS / 2]));\n    d = 0;\n    for (i = 0; i < 16; i++) {\n        d |= diff[i];\n    }\n    if (d == 0) {\n        for (i = 0; i < 16; i++) {\n            diff[i] = k[i] ^ 0x5a;\n        }\n        expand_key(rkeys, diff);\n    }\n\n    memcpy(out, t, 16);\n    aes_xex_encrypt(out + 16, in, t, tkeys, rkeys);\n    sodium_memzero(diff, sizeof diff);\n    sodium_memzero(rkeys, sizeof rkeys);\n    sodium_memzero(tkeys, sizeof tkeys);\n}\n\nstatic void\nndx_decrypt(uint8_t *out, const uint8_t *in, const uint8_t *k)\n{\n    KeySchedule tkeys;\n    KeySchedule rkeys;\n    uint8_t     diff[16];\n    size_t      i;\n    uint8_t     d;\n\n    expand_key(tkeys, k + 16);\n    expand_key(rkeys, k);\n\n    STORE128(diff, XOR128(tkeys[ROUNDS / 2], rkeys[ROUNDS / 2]));\n    d = 0;\n    for (i = 0; i < 16; i++) {\n        d |= diff[i];\n    }\n    if (d == 0) {\n        for (i = 0; i < 16; i++) {\n            diff[i] = k[i] ^ 0x5a;\n        }\n        expand_key(rkeys, diff);\n    }\n\n    aes_xex_decrypt(out, in + 16, in, tkeys, rkeys);\n    sodium_memzero(diff, sizeof diff);\n    sodium_memzero(rkeys, sizeof rkeys);\n    sodium_memzero(tkeys, sizeof tkeys);\n}\n\nstatic int\nis_ipv4_mapped(const uint8_t ip16[16])\n{\n    static const uint8_t ipv4_mapped_prefix[12] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0xff, 0xff };\n\n    return memcmp(ip16, ipv4_mapped_prefix, 12) == 0;\n}\n\nstatic uint8_t\npfx_get_bit(const uint8_t ip16[16], unsigned int bit_index)\n{\n    return (ip16[15 - bit_index / 8] >> (bit_index % 8)) & 1;\n}\n\nstatic void\npfx_set_bit(uint8_t ip16[16], const unsigned int bit_index, const uint8_t bit_value)\n{\n    const size_t  byte_index = 15 - bit_index / 8;\n    const uint8_t bit_mask   = (uint8_t) (1 << (bit_index % 8));\n    uint8_t       mask       = (uint8_t) -((bit_value & 1));\n\n#    if defined(__GNUC__) || defined(__clang__)\n    __asm__ __volatile__(\"\" : \"+r\"(mask) :);\n#    endif\n    ip16[byte_index] = (ip16[byte_index] & ~bit_mask) | (bit_mask & mask);\n}\n\nstatic void\npfx_shift_left(uint8_t ip16[16])\n{\n    BlockVec         v       = LOAD128(ip16);\n    const uint8x16_t shl     = vshlq_n_u8(vreinterpretq_u8_u64(v), 1);\n    const uint8x16_t msb     = vshrq_n_u8(vreinterpretq_u8_u64(v), 7);\n    const uint8x16_t zero    = vdupq_n_u8(0);\n    const uint8x16_t carries = vextq_u8(msb, zero, 1);\n    v                        = vreinterpretq_u64_u8(vorrq_u8(shl, carries));\n    STORE128(ip16, v);\n}\n\nstatic void\npfx_pad_prefix(uint8_t padded_prefix[16], unsigned int prefix_len_bits)\n{\n    memset(padded_prefix, 0, 16);\n    if (prefix_len_bits == 0) {\n        padded_prefix[15] = 0x01;\n    } else {\n        padded_prefix[3]  = 0x01;\n        padded_prefix[14] = 0xff;\n        padded_prefix[15] = 0xff;\n    }\n}\n\nstatic void\npfx_encrypt(uint8_t *out, const uint8_t *in, const uint8_t *k)\n{\n    KeySchedule  k1keys;\n    KeySchedule  k2keys;\n    uint8_t      diff[16];\n    uint8_t      encrypted[16];\n    uint8_t      padded_prefix[16];\n    uint8_t      t[16];\n    BlockVec     e1, e2, e;\n    unsigned int prefix_start = 0;\n    unsigned int prefix_len_bits;\n    unsigned int bit_pos;\n    uint8_t      cipher_bit;\n    uint8_t      original_bit;\n    size_t       i;\n    uint8_t      d;\n\n    expand_key(k1keys, k);\n    expand_key(k2keys, k + 16);\n\n    STORE128(diff, XOR128(k1keys[ROUNDS / 2], k2keys[ROUNDS / 2]));\n    d = 0;\n    for (i = 0; i < 16; i++) {\n        d |= diff[i];\n    }\n    if (d == 0) {\n        for (i = 0; i < 16; i++) {\n            diff[i] = k[i] ^ 0x5a;\n        }\n        expand_key(k2keys, diff);\n    }\n\n    if (is_ipv4_mapped(in)) {\n        prefix_start = 96;\n    }\n\n    pfx_pad_prefix(padded_prefix, prefix_start);\n\n    memset(encrypted, 0, 16);\n    if (prefix_start == 96) {\n        encrypted[10] = 0xff;\n        encrypted[11] = 0xff;\n    }\n\n    for (prefix_len_bits = prefix_start; prefix_len_bits < 128; prefix_len_bits++) {\n        e1 = AES_XENCRYPT(LOAD128(padded_prefix), k1keys[0]);\n        e2 = AES_XENCRYPT(LOAD128(padded_prefix), k2keys[0]);\n        for (i = 1; i < ROUNDS - 1; i++) {\n            e1 = AES_XENCRYPT(e1, k1keys[i]);\n            e2 = AES_XENCRYPT(e2, k2keys[i]);\n        }\n        e1 = AES_XENCRYPTLAST(e1, k1keys[i]);\n        e2 = AES_XENCRYPTLAST(e2, k2keys[i]);\n        e1 = XOR128(e1, k1keys[ROUNDS]);\n        e2 = XOR128(e2, k2keys[ROUNDS]);\n\n        e = XOR128(e1, e2);\n        STORE128(t, e);\n\n        cipher_bit   = t[15] & 1;\n        bit_pos      = 127 - prefix_len_bits;\n        original_bit = pfx_get_bit(in, bit_pos);\n        pfx_set_bit(encrypted, bit_pos, original_bit ^ cipher_bit);\n\n        pfx_shift_left(padded_prefix);\n        pfx_set_bit(padded_prefix, 0, original_bit);\n    }\n\n    memcpy(out, encrypted, 16);\n    sodium_memzero(diff, sizeof diff);\n    sodium_memzero(k2keys, sizeof k2keys);\n    sodium_memzero(k1keys, sizeof k1keys);\n}\n\nstatic void\npfx_decrypt(uint8_t *out, const uint8_t *in, const uint8_t *k)\n{\n    KeySchedule  k1keys;\n    KeySchedule  k2keys;\n    uint8_t      diff[16];\n    uint8_t      decrypted[16];\n    uint8_t      padded_prefix[16];\n    uint8_t      t[16];\n    BlockVec     e1, e2, e;\n    unsigned int prefix_start = 0;\n    unsigned int prefix_len_bits;\n    unsigned int bit_pos;\n    uint8_t      cipher_bit;\n    uint8_t      encrypted_bit;\n    uint8_t      original_bit;\n    size_t       i;\n    uint8_t      d;\n\n    expand_key(k1keys, k);\n    expand_key(k2keys, k + 16);\n\n    STORE128(diff, XOR128(k1keys[ROUNDS / 2], k2keys[ROUNDS / 2]));\n    d = 0;\n    for (i = 0; i < 16; i++) {\n        d |= diff[i];\n    }\n    if (d == 0) {\n        for (i = 0; i < 16; i++) {\n            diff[i] = k[i] ^ 0x5a;\n        }\n        expand_key(k2keys, diff);\n    }\n\n    if (is_ipv4_mapped(in)) {\n        prefix_start = 96;\n    }\n\n    pfx_pad_prefix(padded_prefix, prefix_start);\n\n    memset(decrypted, 0, 16);\n    if (prefix_start == 96) {\n        decrypted[10] = 0xff;\n        decrypted[11] = 0xff;\n    }\n\n    for (prefix_len_bits = prefix_start; prefix_len_bits < 128; prefix_len_bits++) {\n        e1 = AES_XENCRYPT(LOAD128(padded_prefix), k1keys[0]);\n        e2 = AES_XENCRYPT(LOAD128(padded_prefix), k2keys[0]);\n        for (i = 1; i < ROUNDS - 1; i++) {\n            e1 = AES_XENCRYPT(e1, k1keys[i]);\n            e2 = AES_XENCRYPT(e2, k2keys[i]);\n        }\n        e1 = AES_XENCRYPTLAST(e1, k1keys[i]);\n        e2 = AES_XENCRYPTLAST(e2, k2keys[i]);\n        e1 = XOR128(e1, k1keys[ROUNDS]);\n        e2 = XOR128(e2, k2keys[ROUNDS]);\n\n        e = XOR128(e1, e2);\n        STORE128(t, e);\n\n        cipher_bit    = t[15] & 1;\n        bit_pos       = 127 - prefix_len_bits;\n        encrypted_bit = pfx_get_bit(in, bit_pos);\n        original_bit  = encrypted_bit ^ cipher_bit;\n        pfx_set_bit(decrypted, bit_pos, original_bit);\n\n        pfx_shift_left(padded_prefix);\n        pfx_set_bit(padded_prefix, 0, original_bit);\n    }\n\n    memcpy(out, decrypted, 16);\n    sodium_memzero(diff, sizeof diff);\n    sodium_memzero(k2keys, sizeof k2keys);\n    sodium_memzero(k1keys, sizeof k1keys);\n}\n\nstruct ipcrypt_implementation ipcrypt_armcrypto_implementation = {\n    SODIUM_C99(.encrypt =) encrypt,         SODIUM_C99(.decrypt =) decrypt,\n    SODIUM_C99(.nd_encrypt =) nd_encrypt,   SODIUM_C99(.nd_decrypt =) nd_decrypt,\n    SODIUM_C99(.ndx_encrypt =) ndx_encrypt, SODIUM_C99(.ndx_decrypt =) ndx_decrypt,\n    SODIUM_C99(.pfx_encrypt =) pfx_encrypt, SODIUM_C99(.pfx_decrypt =) pfx_decrypt\n};\n\n#    ifdef __clang__\n#        pragma clang attribute pop\n#    endif\n\n#endif\n"
  },
  {
    "path": "src/libsodium/crypto_ipcrypt/ipcrypt_armcrypto.h",
    "content": "#ifndef ipcrypt_armcrypto_H\n#define ipcrypt_armcrypto_H\n\n#include \"implementations.h\"\n\nextern struct ipcrypt_implementation ipcrypt_armcrypto_implementation;\n\n#endif\n"
  },
  {
    "path": "src/libsodium/crypto_ipcrypt/ipcrypt_soft.c",
    "content": "#include <stddef.h>\n#include <stdint.h>\n#include <string.h>\n\n#include \"crypto_ipcrypt.h\"\n#include \"utils.h\"\n\n#include \"private/common.h\"\n#include \"private/softaes.h\"\n\n#include \"ipcrypt_soft.h\"\n\n#define ROUNDS 10\n\ntypedef SoftAesBlock aes_block_t;\n#define AES_BLOCK_XOR(A, B)       softaes_block_xor((A), (B))\n#define AES_BLOCK_AND(A, B)       softaes_block_and((A), (B))\n#define AES_BLOCK_LOAD(A)         softaes_block_load(A)\n#define AES_BLOCK_LOAD_64x2(A, B) softaes_block_load64x2((A), (B))\n#define AES_BLOCK_STORE(A, B)     softaes_block_store((A), (B))\n#define AES_ENC(A, B)             softaes_block_encrypt((A), (B))\n#define AES_ENCLAST(A, B)         softaes_block_encryptlast((A), (B))\n#define AES_DEC(A, B)             softaes_block_decrypt((A), (B))\n#define AES_DECLAST(A, B)         softaes_block_decryptlast((A), (B))\n#define AES_INV_MIX(A)            softaes_inv_mix_columns((A))\n\ntypedef aes_block_t KeySchedule[1 + ROUNDS];\n\nstatic void\nexpand_key(KeySchedule rkeys, const uint8_t key[16])\n{\n    softaes_expand_key128(rkeys, key);\n}\n\nstatic void\naes_encrypt(uint8_t out[16], const uint8_t in[16], const KeySchedule rkeys)\n{\n    aes_block_t t;\n    size_t      i;\n\n    t = AES_BLOCK_XOR(AES_BLOCK_LOAD(in), rkeys[0]);\n    for (i = 1; i < ROUNDS; i++) {\n        t = AES_ENC(t, rkeys[i]);\n    }\n    t = AES_ENCLAST(t, rkeys[ROUNDS]);\n    AES_BLOCK_STORE(out, t);\n}\n\nstatic void\naes_decrypt(uint8_t out[16], const uint8_t in[16], const KeySchedule rkeys)\n{\n    KeySchedule rkeys_inv;\n    aes_block_t t;\n    size_t      i;\n\n    for (i = 0; i <= ROUNDS; i++) {\n        rkeys_inv[i] = rkeys[i];\n    }\n    softaes_invert_key_schedule128(rkeys_inv);\n\n    t = AES_BLOCK_XOR(AES_BLOCK_LOAD(in), rkeys_inv[ROUNDS]);\n    for (i = ROUNDS - 1; i > 0; i--) {\n        t = AES_DEC(t, rkeys_inv[i]);\n    }\n    t = AES_DECLAST(t, rkeys_inv[0]);\n    AES_BLOCK_STORE(out, t);\n    sodium_memzero(rkeys_inv, sizeof rkeys_inv);\n}\n\nstatic aes_block_t\ntweak_expand(const uint8_t tweak[8])\n{\n    aes_block_t out;\n\n    out.w0 = ((uint32_t) tweak[0]) | ((uint32_t) tweak[1] << 8);\n    out.w1 = ((uint32_t) tweak[2]) | ((uint32_t) tweak[3] << 8);\n    out.w2 = ((uint32_t) tweak[4]) | ((uint32_t) tweak[5] << 8);\n    out.w3 = ((uint32_t) tweak[6]) | ((uint32_t) tweak[7] << 8);\n\n    return out;\n}\n\nstatic void\naes_encrypt_with_tweak(uint8_t out[16], const uint8_t in[16], const uint8_t tweak[8],\n                       const KeySchedule rkeys)\n{\n    const aes_block_t tweak_block = tweak_expand(tweak);\n    aes_block_t       t;\n    size_t            i;\n\n    t = AES_BLOCK_XOR(AES_BLOCK_XOR(AES_BLOCK_LOAD(in), tweak_block), rkeys[0]);\n    for (i = 1; i < ROUNDS; i++) {\n        t = AES_ENC(t, AES_BLOCK_XOR(tweak_block, rkeys[i]));\n    }\n    t = AES_ENCLAST(t, AES_BLOCK_XOR(tweak_block, rkeys[ROUNDS]));\n    AES_BLOCK_STORE(out, t);\n}\n\nstatic void\naes_decrypt_with_tweak(uint8_t out[16], const uint8_t in[16], const uint8_t tweak[8],\n                       const KeySchedule rkeys)\n{\n    KeySchedule       rkeys_inv;\n    const aes_block_t tweak_block     = tweak_expand(tweak);\n    const aes_block_t tweak_block_inv = AES_INV_MIX(tweak_block);\n    aes_block_t       t;\n    size_t            i;\n\n    for (i = 0; i <= ROUNDS; i++) {\n        rkeys_inv[i] = rkeys[i];\n    }\n    softaes_invert_key_schedule128(rkeys_inv);\n\n    t = AES_BLOCK_XOR(AES_BLOCK_XOR(AES_BLOCK_LOAD(in), tweak_block), rkeys_inv[ROUNDS]);\n    for (i = ROUNDS - 1; i > 0; i--) {\n        t = AES_DEC(t, AES_BLOCK_XOR(tweak_block_inv, rkeys_inv[i]));\n    }\n    t = AES_DECLAST(t, AES_BLOCK_XOR(tweak_block, rkeys_inv[0]));\n    AES_BLOCK_STORE(out, t);\n    sodium_memzero(rkeys_inv, sizeof rkeys_inv);\n}\n\nstatic aes_block_t\naes_xex_tweak(const uint8_t tweak[16], const KeySchedule tkeys)\n{\n    aes_block_t tt;\n    size_t      i;\n\n    tt = AES_BLOCK_XOR(AES_BLOCK_LOAD(tweak), tkeys[0]);\n    for (i = 1; i < ROUNDS; i++) {\n        tt = AES_ENC(tt, tkeys[i]);\n    }\n    tt = AES_ENCLAST(tt, tkeys[ROUNDS]);\n    return tt;\n}\n\nstatic void\naes_xex_encrypt(uint8_t out[16], const uint8_t in[16], const uint8_t tweak[16],\n                const KeySchedule tkeys, const KeySchedule rkeys)\n{\n    const aes_block_t tt = aes_xex_tweak(tweak, tkeys);\n    aes_block_t       t;\n    size_t            i;\n\n    t = AES_BLOCK_XOR(AES_BLOCK_XOR(AES_BLOCK_LOAD(in), tt), rkeys[0]);\n    for (i = 1; i < ROUNDS; i++) {\n        t = AES_ENC(t, rkeys[i]);\n    }\n    t = AES_ENCLAST(t, AES_BLOCK_XOR(rkeys[ROUNDS], tt));\n    AES_BLOCK_STORE(out, t);\n}\n\nstatic void\naes_xex_decrypt(uint8_t out[16], const uint8_t in[16], const uint8_t tweak[16],\n                const KeySchedule tkeys, const KeySchedule rkeys)\n{\n    KeySchedule       rkeys_inv;\n    const aes_block_t tt = aes_xex_tweak(tweak, tkeys);\n    aes_block_t       t;\n    size_t            i;\n\n    for (i = 0; i <= ROUNDS; i++) {\n        rkeys_inv[i] = rkeys[i];\n    }\n    softaes_invert_key_schedule128(rkeys_inv);\n\n    t = AES_BLOCK_XOR(AES_BLOCK_XOR(AES_BLOCK_LOAD(in), tt), rkeys_inv[ROUNDS]);\n    for (i = ROUNDS - 1; i > 0; i--) {\n        t = AES_DEC(t, rkeys_inv[i]);\n    }\n    t = AES_DECLAST(t, AES_BLOCK_XOR(rkeys_inv[0], tt));\n    AES_BLOCK_STORE(out, t);\n    sodium_memzero(rkeys_inv, sizeof rkeys_inv);\n}\n\nstatic void\nencrypt(uint8_t *out, const uint8_t *in, const uint8_t *k)\n{\n    KeySchedule rkeys;\n\n    expand_key(rkeys, k);\n    aes_encrypt(out, in, rkeys);\n    sodium_memzero(rkeys, sizeof rkeys);\n}\n\nstatic void\ndecrypt(uint8_t *out, const uint8_t *in, const uint8_t *k)\n{\n    KeySchedule rkeys;\n\n    expand_key(rkeys, k);\n    aes_decrypt(out, in, rkeys);\n    sodium_memzero(rkeys, sizeof rkeys);\n}\n\nstatic void\nnd_encrypt(uint8_t *out, const uint8_t *in, const uint8_t *t, const uint8_t *k)\n{\n    KeySchedule rkeys;\n\n    expand_key(rkeys, k);\n    memcpy(out, t, 8);\n    aes_encrypt_with_tweak(out + 8, in, t, rkeys);\n    sodium_memzero(rkeys, sizeof rkeys);\n}\n\nstatic void\nnd_decrypt(uint8_t *out, const uint8_t *in, const uint8_t *k)\n{\n    KeySchedule rkeys;\n\n    expand_key(rkeys, k);\n    aes_decrypt_with_tweak(out, in + 8, in, rkeys);\n    sodium_memzero(rkeys, sizeof rkeys);\n}\n\nstatic void\nndx_encrypt(uint8_t *out, const uint8_t *in, const uint8_t *t, const uint8_t *k)\n{\n    KeySchedule tkeys;\n    KeySchedule rkeys;\n    uint8_t     diff[16];\n    size_t      i;\n    uint8_t     d;\n\n    expand_key(tkeys, k + 16);\n    expand_key(rkeys, k);\n\n    AES_BLOCK_STORE(diff, AES_BLOCK_XOR(tkeys[ROUNDS / 2], rkeys[ROUNDS / 2]));\n    d = 0;\n    for (i = 0; i < 16; i++) {\n        d |= diff[i];\n    }\n    if (d == 0) {\n        for (i = 0; i < 16; i++) {\n            diff[i] = k[i] ^ 0x5a;\n        }\n        expand_key(rkeys, diff);\n    }\n\n    memcpy(out, t, 16);\n    aes_xex_encrypt(out + 16, in, t, tkeys, rkeys);\n    sodium_memzero(diff, sizeof diff);\n    sodium_memzero(rkeys, sizeof rkeys);\n    sodium_memzero(tkeys, sizeof tkeys);\n}\n\nstatic void\nndx_decrypt(uint8_t *out, const uint8_t *in, const uint8_t *k)\n{\n    KeySchedule tkeys;\n    KeySchedule rkeys;\n    uint8_t     diff[16];\n    size_t      i;\n    uint8_t     d;\n\n    expand_key(tkeys, k + 16);\n    expand_key(rkeys, k);\n\n    AES_BLOCK_STORE(diff, AES_BLOCK_XOR(tkeys[ROUNDS / 2], rkeys[ROUNDS / 2]));\n    d = 0;\n    for (i = 0; i < 16; i++) {\n        d |= diff[i];\n    }\n    if (d == 0) {\n        for (i = 0; i < 16; i++) {\n            diff[i] = k[i] ^ 0x5a;\n        }\n        expand_key(rkeys, diff);\n    }\n\n    aes_xex_decrypt(out, in + 16, in, tkeys, rkeys);\n    sodium_memzero(diff, sizeof diff);\n    sodium_memzero(rkeys, sizeof rkeys);\n    sodium_memzero(tkeys, sizeof tkeys);\n}\n\nstatic int\nis_ipv4_mapped(const uint8_t ip16[16])\n{\n    static const uint8_t ipv4_mapped_prefix[12] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0xff, 0xff };\n\n    return memcmp(ip16, ipv4_mapped_prefix, 12) == 0;\n}\n\nstatic uint8_t\npfx_get_bit(const uint8_t ip16[16], unsigned int bit_index)\n{\n    return (ip16[15 - bit_index / 8] >> (bit_index % 8)) & 1;\n}\n\nstatic void\npfx_set_bit(uint8_t ip16[16], const unsigned int bit_index, const uint8_t bit_value)\n{\n    const size_t  byte_index = 15 - bit_index / 8;\n    const uint8_t bit_mask   = (uint8_t) (1 << (bit_index % 8));\n    uint8_t       mask       = (uint8_t) -((bit_value & 1));\n\n#if defined(__GNUC__) || defined(__clang__)\n    __asm__ __volatile__(\"\" : \"+r\"(mask) :);\n#endif\n    ip16[byte_index] = (ip16[byte_index] & ~bit_mask) | (bit_mask & mask);\n}\n\nstatic void\npfx_shift_left(uint8_t ip16[16])\n{\n    size_t i;\n\n    for (i = 0; i < 15; i++) {\n        ip16[i] = (ip16[i] << 1) | (ip16[i + 1] >> 7);\n    }\n    ip16[15] <<= 1;\n}\n\nstatic void\npfx_pad_prefix(uint8_t padded_prefix[16], unsigned int prefix_len_bits)\n{\n    memset(padded_prefix, 0, 16);\n    if (prefix_len_bits == 0) {\n        padded_prefix[15] = 0x01;\n    } else {\n        padded_prefix[3]  = 0x01;\n        padded_prefix[14] = 0xff;\n        padded_prefix[15] = 0xff;\n    }\n}\n\nstatic void\npfx_encrypt(uint8_t *out, const uint8_t *in, const uint8_t *k)\n{\n    KeySchedule  k1keys;\n    KeySchedule  k2keys;\n    uint8_t      diff[16];\n    uint8_t      encrypted[16];\n    uint8_t      padded_prefix[16];\n    uint8_t      t[16];\n    aes_block_t  e1, e2, e;\n    unsigned int prefix_start = 0;\n    unsigned int prefix_len_bits;\n    unsigned int bit_pos;\n    uint8_t      cipher_bit;\n    uint8_t      original_bit;\n    size_t       i;\n    uint8_t      d;\n\n    expand_key(k1keys, k);\n    expand_key(k2keys, k + 16);\n\n    AES_BLOCK_STORE(diff, AES_BLOCK_XOR(k1keys[ROUNDS / 2], k2keys[ROUNDS / 2]));\n    d = 0;\n    for (i = 0; i < 16; i++) {\n        d |= diff[i];\n    }\n    if (d == 0) {\n        for (i = 0; i < 16; i++) {\n            diff[i] = k[i] ^ 0x5a;\n        }\n        expand_key(k2keys, diff);\n    }\n\n    if (is_ipv4_mapped(in)) {\n        prefix_start = 96;\n    }\n\n    pfx_pad_prefix(padded_prefix, prefix_start);\n\n    memset(encrypted, 0, 16);\n    if (prefix_start == 96) {\n        encrypted[10] = 0xff;\n        encrypted[11] = 0xff;\n    }\n\n    for (prefix_len_bits = prefix_start; prefix_len_bits < 128; prefix_len_bits++) {\n        e1 = AES_BLOCK_XOR(AES_BLOCK_LOAD(padded_prefix), k1keys[0]);\n        e2 = AES_BLOCK_XOR(AES_BLOCK_LOAD(padded_prefix), k2keys[0]);\n        for (i = 1; i < ROUNDS; i++) {\n            e1 = AES_ENC(e1, k1keys[i]);\n            e2 = AES_ENC(e2, k2keys[i]);\n        }\n        e1 = AES_ENCLAST(e1, k1keys[ROUNDS]);\n        e2 = AES_ENCLAST(e2, k2keys[ROUNDS]);\n\n        e = AES_BLOCK_XOR(e1, e2);\n        AES_BLOCK_STORE(t, e);\n\n        cipher_bit   = t[15] & 1;\n        bit_pos      = 127 - prefix_len_bits;\n        original_bit = pfx_get_bit(in, bit_pos);\n        pfx_set_bit(encrypted, bit_pos, original_bit ^ cipher_bit);\n\n        pfx_shift_left(padded_prefix);\n        pfx_set_bit(padded_prefix, 0, original_bit);\n    }\n\n    memcpy(out, encrypted, 16);\n    sodium_memzero(diff, sizeof diff);\n    sodium_memzero(k2keys, sizeof k2keys);\n    sodium_memzero(k1keys, sizeof k1keys);\n}\n\nstatic void\npfx_decrypt(uint8_t *out, const uint8_t *in, const uint8_t *k)\n{\n    KeySchedule  k1keys;\n    KeySchedule  k2keys;\n    uint8_t      diff[16];\n    uint8_t      decrypted[16];\n    uint8_t      padded_prefix[16];\n    uint8_t      t[16];\n    aes_block_t  e1, e2, e;\n    unsigned int prefix_start = 0;\n    unsigned int prefix_len_bits;\n    unsigned int bit_pos;\n    uint8_t      cipher_bit;\n    uint8_t      encrypted_bit;\n    uint8_t      original_bit;\n    size_t       i;\n    uint8_t      d;\n\n    expand_key(k1keys, k);\n    expand_key(k2keys, k + 16);\n\n    AES_BLOCK_STORE(diff, AES_BLOCK_XOR(k1keys[ROUNDS / 2], k2keys[ROUNDS / 2]));\n    d = 0;\n    for (i = 0; i < 16; i++) {\n        d |= diff[i];\n    }\n    if (d == 0) {\n        for (i = 0; i < 16; i++) {\n            diff[i] = k[i] ^ 0x5a;\n        }\n        expand_key(k2keys, diff);\n    }\n\n    if (is_ipv4_mapped(in)) {\n        prefix_start = 96;\n    }\n\n    pfx_pad_prefix(padded_prefix, prefix_start);\n\n    memset(decrypted, 0, 16);\n    if (prefix_start == 96) {\n        decrypted[10] = 0xff;\n        decrypted[11] = 0xff;\n    }\n\n    for (prefix_len_bits = prefix_start; prefix_len_bits < 128; prefix_len_bits++) {\n        e1 = AES_BLOCK_XOR(AES_BLOCK_LOAD(padded_prefix), k1keys[0]);\n        e2 = AES_BLOCK_XOR(AES_BLOCK_LOAD(padded_prefix), k2keys[0]);\n        for (i = 1; i < ROUNDS; i++) {\n            e1 = AES_ENC(e1, k1keys[i]);\n            e2 = AES_ENC(e2, k2keys[i]);\n        }\n        e1 = AES_ENCLAST(e1, k1keys[ROUNDS]);\n        e2 = AES_ENCLAST(e2, k2keys[ROUNDS]);\n\n        e = AES_BLOCK_XOR(e1, e2);\n        AES_BLOCK_STORE(t, e);\n\n        cipher_bit    = t[15] & 1;\n        bit_pos       = 127 - prefix_len_bits;\n        encrypted_bit = pfx_get_bit(in, bit_pos);\n        original_bit  = encrypted_bit ^ cipher_bit;\n        pfx_set_bit(decrypted, bit_pos, original_bit);\n\n        pfx_shift_left(padded_prefix);\n        pfx_set_bit(padded_prefix, 0, original_bit);\n    }\n\n    memcpy(out, decrypted, 16);\n    sodium_memzero(diff, sizeof diff);\n    sodium_memzero(k2keys, sizeof k2keys);\n    sodium_memzero(k1keys, sizeof k1keys);\n}\n\nstruct ipcrypt_implementation ipcrypt_soft_implementation = {\n    SODIUM_C99(.encrypt =) encrypt,         SODIUM_C99(.decrypt =) decrypt,\n    SODIUM_C99(.nd_encrypt =) nd_encrypt,   SODIUM_C99(.nd_decrypt =) nd_decrypt,\n    SODIUM_C99(.ndx_encrypt =) ndx_encrypt, SODIUM_C99(.ndx_decrypt =) ndx_decrypt,\n    SODIUM_C99(.pfx_encrypt =) pfx_encrypt, SODIUM_C99(.pfx_decrypt =) pfx_decrypt\n};\n"
  },
  {
    "path": "src/libsodium/crypto_ipcrypt/ipcrypt_soft.h",
    "content": "#ifndef ipcrypt_soft_H\n#define ipcrypt_soft_H\n\n#include \"implementations.h\"\n\nextern struct ipcrypt_implementation ipcrypt_soft_implementation;\n\n#endif\n"
  },
  {
    "path": "src/libsodium/crypto_kdf/blake2b/kdf_blake2b.c",
    "content": "#include <errno.h>\n\n#include \"crypto_kdf_blake2b.h\"\n#include \"crypto_generichash_blake2b.h\"\n#include \"private/common.h\"\n\nsize_t\ncrypto_kdf_blake2b_bytes_min(void)\n{\n    return crypto_kdf_blake2b_BYTES_MIN;\n}\n\nsize_t\ncrypto_kdf_blake2b_bytes_max(void)\n{\n    return crypto_kdf_blake2b_BYTES_MAX;\n}\n\nsize_t\ncrypto_kdf_blake2b_contextbytes(void)\n{\n    return crypto_kdf_blake2b_CONTEXTBYTES;\n}\n\nsize_t\ncrypto_kdf_blake2b_keybytes(void)\n{\n    return crypto_kdf_blake2b_KEYBYTES;\n}\n\nint crypto_kdf_blake2b_derive_from_key(unsigned char *subkey, size_t subkey_len,\n                                       uint64_t subkey_id,\n                                       const char ctx[crypto_kdf_blake2b_CONTEXTBYTES],\n                                       const unsigned char key[crypto_kdf_blake2b_KEYBYTES])\n{\n    unsigned char ctx_padded[crypto_generichash_blake2b_PERSONALBYTES];\n    unsigned char salt[crypto_generichash_blake2b_SALTBYTES];\n\n    memcpy(ctx_padded, ctx, crypto_kdf_blake2b_CONTEXTBYTES);\n    memset(ctx_padded + crypto_kdf_blake2b_CONTEXTBYTES, 0, sizeof ctx_padded - crypto_kdf_blake2b_CONTEXTBYTES);\n    STORE64_LE(salt, subkey_id);\n    memset(salt + 8, 0, (sizeof salt) - 8);\n    if (subkey_len < crypto_kdf_blake2b_BYTES_MIN ||\n        subkey_len > crypto_kdf_blake2b_BYTES_MAX) {\n        errno = EINVAL;\n        return -1;\n    }\n    return crypto_generichash_blake2b_salt_personal(subkey, subkey_len,\n                                                    NULL, 0,\n                                                    key, crypto_kdf_blake2b_KEYBYTES,\n                                                    salt, ctx_padded);\n}\n"
  },
  {
    "path": "src/libsodium/crypto_kdf/crypto_kdf.c",
    "content": "\n#include \"crypto_kdf.h\"\n#include \"randombytes.h\"\n\nconst char *\ncrypto_kdf_primitive(void)\n{\n    return crypto_kdf_PRIMITIVE;\n}\n\nsize_t\ncrypto_kdf_bytes_min(void)\n{\n    return crypto_kdf_BYTES_MIN;\n}\n\nsize_t\ncrypto_kdf_bytes_max(void)\n{\n    return crypto_kdf_BYTES_MAX;\n}\n\nsize_t\ncrypto_kdf_contextbytes(void)\n{\n    return crypto_kdf_CONTEXTBYTES;\n}\n\nsize_t\ncrypto_kdf_keybytes(void)\n{\n    return crypto_kdf_KEYBYTES;\n}\n\nint\ncrypto_kdf_derive_from_key(unsigned char *subkey, size_t subkey_len,\n                           uint64_t subkey_id,\n                           const char ctx[crypto_kdf_CONTEXTBYTES],\n                           const unsigned char key[crypto_kdf_KEYBYTES])\n{\n    return crypto_kdf_blake2b_derive_from_key(subkey, subkey_len,\n                                              subkey_id, ctx, key);\n}\n\nvoid\ncrypto_kdf_keygen(unsigned char k[crypto_kdf_KEYBYTES])\n{\n    randombytes_buf(k, crypto_kdf_KEYBYTES);\n}\n"
  },
  {
    "path": "src/libsodium/crypto_kdf/hkdf/kdf_hkdf_sha256.c",
    "content": "#include <errno.h>\n#include <string.h>\n\n#include \"crypto_auth_hmacsha256.h\"\n#include \"crypto_kdf.h\"\n#include \"crypto_kdf_hkdf_sha256.h\"\n#include \"randombytes.h\"\n#include \"utils.h\"\n\nint\ncrypto_kdf_hkdf_sha256_extract_init(crypto_kdf_hkdf_sha256_state *state,\n                                    const unsigned char *salt, size_t salt_len)\n{\n    return crypto_auth_hmacsha256_init(&state->st, salt, salt_len);\n}\n\nint\ncrypto_kdf_hkdf_sha256_extract_update(crypto_kdf_hkdf_sha256_state *state,\n                                      const unsigned char *ikm, size_t ikm_len)\n{\n    return crypto_auth_hmacsha256_update(&state->st, ikm, ikm_len);\n}\n\nint\ncrypto_kdf_hkdf_sha256_extract_final(crypto_kdf_hkdf_sha256_state *state,\n                                     unsigned char prk[crypto_kdf_hkdf_sha256_KEYBYTES])\n{\n    crypto_auth_hmacsha256_final(&state->st, prk);\n    sodium_memzero(state, sizeof *state);\n\n    return 0;\n}\n\nint\ncrypto_kdf_hkdf_sha256_extract(\n    unsigned char prk[crypto_kdf_hkdf_sha256_KEYBYTES],\n    const unsigned char *salt, size_t salt_len, const unsigned char *ikm,\n    size_t ikm_len)\n{\n    crypto_kdf_hkdf_sha256_state state;\n\n    crypto_kdf_hkdf_sha256_extract_init(&state, salt, salt_len);\n    crypto_kdf_hkdf_sha256_extract_update(&state, ikm, ikm_len);\n\n    return crypto_kdf_hkdf_sha256_extract_final(&state, prk);\n}\n\nvoid\ncrypto_kdf_hkdf_sha256_keygen(unsigned char prk[crypto_kdf_hkdf_sha256_KEYBYTES])\n{\n    randombytes_buf(prk, crypto_kdf_hkdf_sha256_KEYBYTES);\n}\n\nint\ncrypto_kdf_hkdf_sha256_expand(unsigned char *out, size_t out_len,\n                              const char *ctx, size_t ctx_len,\n                              const unsigned char prk[crypto_kdf_hkdf_sha256_KEYBYTES])\n{\n    crypto_auth_hmacsha256_state st;\n    unsigned char                tmp[crypto_auth_hmacsha256_BYTES];\n    size_t                       i;\n    size_t                       left;\n    unsigned char                counter = 1U;\n\n    if (out_len > crypto_kdf_hkdf_sha256_BYTES_MAX) {\n        errno = EINVAL;\n        return -1;\n    }\n    for (i = (size_t) 0U; i + crypto_auth_hmacsha256_BYTES <= out_len;\n         i += crypto_auth_hmacsha256_BYTES) {\n        crypto_auth_hmacsha256_init(&st, prk, crypto_kdf_hkdf_sha256_KEYBYTES);\n        if (i != (size_t) 0U) {\n            crypto_auth_hmacsha256_update(&st,\n                                          &out[i - crypto_auth_hmacsha256_BYTES],\n                                          crypto_auth_hmacsha256_BYTES);\n        }\n        crypto_auth_hmacsha256_update(&st,\n                                      (const unsigned char *) ctx, ctx_len);\n        crypto_auth_hmacsha256_update(&st, &counter, (size_t) 1U);\n        crypto_auth_hmacsha256_final(&st, &out[i]);\n        counter++;\n    }\n    if ((left = out_len & (crypto_auth_hmacsha256_BYTES - 1U)) != (size_t) 0U) {\n        crypto_auth_hmacsha256_init(&st, prk, crypto_kdf_hkdf_sha256_KEYBYTES);\n        if (i != (size_t) 0U) {\n            crypto_auth_hmacsha256_update(&st,\n                                          &out[i - crypto_auth_hmacsha256_BYTES],\n                                          crypto_auth_hmacsha256_BYTES);\n        }\n        crypto_auth_hmacsha256_update(&st,\n                                      (const unsigned char *) ctx, ctx_len);\n        crypto_auth_hmacsha256_update(&st, &counter, (size_t) 1U);\n        crypto_auth_hmacsha256_final(&st, tmp);\n        memcpy(&out[i], tmp, left);\n        sodium_memzero(tmp, sizeof tmp);\n    }\n    sodium_memzero(&st, sizeof st);\n\n    return 0;\n}\n\nsize_t\ncrypto_kdf_hkdf_sha256_keybytes(void)\n{\n    return crypto_kdf_hkdf_sha256_KEYBYTES;\n}\n\nsize_t\ncrypto_kdf_hkdf_sha256_bytes_min(void)\n{\n    return crypto_kdf_hkdf_sha256_BYTES_MIN;\n}\n\nsize_t\ncrypto_kdf_hkdf_sha256_bytes_max(void)\n{\n    return crypto_kdf_hkdf_sha256_BYTES_MAX;\n}\n\nsize_t crypto_kdf_hkdf_sha256_statebytes(void)\n{\n    return sizeof(crypto_kdf_hkdf_sha256_state);\n}\n"
  },
  {
    "path": "src/libsodium/crypto_kdf/hkdf/kdf_hkdf_sha512.c",
    "content": "#include <errno.h>\n#include <string.h>\n\n#include \"crypto_auth_hmacsha512.h\"\n#include \"crypto_kdf.h\"\n#include \"crypto_kdf_hkdf_sha512.h\"\n#include \"randombytes.h\"\n#include \"utils.h\"\n\nint\ncrypto_kdf_hkdf_sha512_extract_init(crypto_kdf_hkdf_sha512_state *state,\n                                    const unsigned char *salt, size_t salt_len)\n{\n    return crypto_auth_hmacsha512_init(&state->st, salt, salt_len);\n}\n\nint\ncrypto_kdf_hkdf_sha512_extract_update(crypto_kdf_hkdf_sha512_state *state,\n                                      const unsigned char *ikm, size_t ikm_len)\n{\n    return crypto_auth_hmacsha512_update(&state->st, ikm, ikm_len);\n}\n\nint\ncrypto_kdf_hkdf_sha512_extract_final(crypto_kdf_hkdf_sha512_state *state,\n                                     unsigned char prk[crypto_kdf_hkdf_sha512_KEYBYTES])\n{\n    crypto_auth_hmacsha512_final(&state->st, prk);\n    sodium_memzero(state, sizeof *state);\n\n    return 0;\n}\n\nint\ncrypto_kdf_hkdf_sha512_extract(\n    unsigned char prk[crypto_kdf_hkdf_sha512_KEYBYTES],\n    const unsigned char *salt, size_t salt_len, const unsigned char *ikm,\n    size_t ikm_len)\n{\n    crypto_kdf_hkdf_sha512_state state;\n\n    crypto_kdf_hkdf_sha512_extract_init(&state, salt, salt_len);\n    crypto_kdf_hkdf_sha512_extract_update(&state, ikm, ikm_len);\n\n    return crypto_kdf_hkdf_sha512_extract_final(&state, prk);\n}\n\nvoid\ncrypto_kdf_hkdf_sha512_keygen(unsigned char prk[crypto_kdf_hkdf_sha512_KEYBYTES])\n{\n    randombytes_buf(prk, crypto_kdf_hkdf_sha512_KEYBYTES);\n}\n\nint\ncrypto_kdf_hkdf_sha512_expand(unsigned char *out, size_t out_len,\n                              const char *ctx, size_t ctx_len,\n                              const unsigned char prk[crypto_kdf_hkdf_sha512_KEYBYTES])\n{\n    crypto_auth_hmacsha512_state st;\n    unsigned char                tmp[crypto_auth_hmacsha512_BYTES];\n    size_t                       i;\n    size_t                       left;\n    unsigned char                counter = 1U;\n\n    if (out_len > crypto_kdf_hkdf_sha512_BYTES_MAX) {\n        errno = EINVAL;\n        return -1;\n    }\n    for (i = (size_t) 0U; i + crypto_auth_hmacsha512_BYTES <= out_len;\n         i += crypto_auth_hmacsha512_BYTES) {\n        crypto_auth_hmacsha512_init(&st, prk, crypto_kdf_hkdf_sha512_KEYBYTES);\n        if (i != (size_t) 0U) {\n            crypto_auth_hmacsha512_update(&st,\n                                          &out[i - crypto_auth_hmacsha512_BYTES],\n                                          crypto_auth_hmacsha512_BYTES);\n        }\n        crypto_auth_hmacsha512_update(&st,\n                                      (const unsigned char *) ctx, ctx_len);\n        crypto_auth_hmacsha512_update(&st, &counter, (size_t) 1U);\n        crypto_auth_hmacsha512_final(&st, &out[i]);\n        counter++;\n    }\n    if ((left = out_len & (crypto_auth_hmacsha512_BYTES - 1U)) != (size_t) 0U) {\n        crypto_auth_hmacsha512_init(&st, prk, crypto_kdf_hkdf_sha512_KEYBYTES);\n        if (i != (size_t) 0U) {\n            crypto_auth_hmacsha512_update(&st,\n                                          &out[i - crypto_auth_hmacsha512_BYTES],\n                                          crypto_auth_hmacsha512_BYTES);\n        }\n        crypto_auth_hmacsha512_update(&st,\n                                      (const unsigned char *) ctx, ctx_len);\n        crypto_auth_hmacsha512_update(&st, &counter, (size_t) 1U);\n        crypto_auth_hmacsha512_final(&st, tmp);\n        memcpy(&out[i], tmp, left);\n        sodium_memzero(tmp, sizeof tmp);\n    }\n    sodium_memzero(&st, sizeof st);\n\n    return 0;\n}\n\nsize_t\ncrypto_kdf_hkdf_sha512_keybytes(void)\n{\n    return crypto_kdf_hkdf_sha512_KEYBYTES;\n}\n\nsize_t\ncrypto_kdf_hkdf_sha512_bytes_min(void)\n{\n    return crypto_kdf_hkdf_sha512_BYTES_MIN;\n}\n\nsize_t\ncrypto_kdf_hkdf_sha512_bytes_max(void)\n{\n    return crypto_kdf_hkdf_sha512_BYTES_MAX;\n}\n\nsize_t crypto_kdf_hkdf_sha512_statebytes(void)\n{\n    return sizeof(crypto_kdf_hkdf_sha512_state);\n}\n"
  },
  {
    "path": "src/libsodium/crypto_kem/crypto_kem.c",
    "content": "#include \"crypto_kem.h\"\n\nsize_t\ncrypto_kem_publickeybytes(void)\n{\n    return crypto_kem_PUBLICKEYBYTES;\n}\n\nsize_t\ncrypto_kem_secretkeybytes(void)\n{\n    return crypto_kem_SECRETKEYBYTES;\n}\n\nsize_t\ncrypto_kem_ciphertextbytes(void)\n{\n    return crypto_kem_CIPHERTEXTBYTES;\n}\n\nsize_t\ncrypto_kem_sharedsecretbytes(void)\n{\n    return crypto_kem_SHAREDSECRETBYTES;\n}\n\nsize_t\ncrypto_kem_seedbytes(void)\n{\n    return crypto_kem_SEEDBYTES;\n}\n\nconst char *\ncrypto_kem_primitive(void)\n{\n    return crypto_kem_PRIMITIVE;\n}\n\nint\ncrypto_kem_seed_keypair(unsigned char *pk, unsigned char *sk,\n                        const unsigned char *seed)\n{\n    return crypto_kem_xwing_seed_keypair(pk, sk, seed);\n}\n\nint\ncrypto_kem_keypair(unsigned char *pk, unsigned char *sk)\n{\n    return crypto_kem_xwing_keypair(pk, sk);\n}\n\nint\ncrypto_kem_enc(unsigned char *ct, unsigned char *ss, const unsigned char *pk)\n{\n    return crypto_kem_xwing_enc(ct, ss, pk);\n}\n\nint\ncrypto_kem_dec(unsigned char *ss, const unsigned char *ct, const unsigned char *sk)\n{\n    return crypto_kem_xwing_dec(ss, ct, sk);\n}\n"
  },
  {
    "path": "src/libsodium/crypto_kem/mlkem768/kem_mlkem768.c",
    "content": "#include \"crypto_kem_mlkem768.h\"\n#include \"ref/kem_mlkem768_ref.h\"\n\nsize_t\ncrypto_kem_mlkem768_publickeybytes(void)\n{\n    return crypto_kem_mlkem768_PUBLICKEYBYTES;\n}\n\nsize_t\ncrypto_kem_mlkem768_secretkeybytes(void)\n{\n    return crypto_kem_mlkem768_SECRETKEYBYTES;\n}\n\nsize_t\ncrypto_kem_mlkem768_ciphertextbytes(void)\n{\n    return crypto_kem_mlkem768_CIPHERTEXTBYTES;\n}\n\nsize_t\ncrypto_kem_mlkem768_sharedsecretbytes(void)\n{\n    return crypto_kem_mlkem768_SHAREDSECRETBYTES;\n}\n\nsize_t\ncrypto_kem_mlkem768_seedbytes(void)\n{\n    return crypto_kem_mlkem768_SEEDBYTES;\n}\n\nint\ncrypto_kem_mlkem768_seed_keypair(unsigned char *pk, unsigned char *sk, const unsigned char *seed)\n{\n    return mlkem768_ref_seed_keypair(pk, sk, seed);\n}\n\nint\ncrypto_kem_mlkem768_keypair(unsigned char *pk, unsigned char *sk)\n{\n    return mlkem768_ref_keypair(pk, sk);\n}\n\nint\ncrypto_kem_mlkem768_enc(unsigned char *ct, unsigned char *ss, const unsigned char *pk)\n{\n    return mlkem768_ref_enc(ct, ss, pk);\n}\n\nint\ncrypto_kem_mlkem768_enc_deterministic(unsigned char *ct, unsigned char *ss, const unsigned char *pk,\n                                      const unsigned char *seed)\n{\n    return mlkem768_ref_enc_deterministic(ct, ss, pk, seed);\n}\n\nint\ncrypto_kem_mlkem768_dec(unsigned char *ss, const unsigned char *ct, const unsigned char *sk)\n{\n    return mlkem768_ref_dec(ss, ct, sk);\n}\n"
  },
  {
    "path": "src/libsodium/crypto_kem/mlkem768/ref/kem_mlkem768_ref.c",
    "content": "#include <stdint.h>\n#include <string.h>\n\n#include \"crypto_hash_sha3.h\"\n#include \"crypto_kem_mlkem768.h\"\n#include \"crypto_xof_shake128.h\"\n#include \"crypto_xof_shake256.h\"\n#include \"kem_mlkem768_ref.h\"\n#include \"private/common.h\"\n#include \"randombytes.h\"\n#include \"utils.h\"\n\n#define MLKEM768_Q    3329\n#define MLKEM768_N    256\n#define MLKEM768_K    3\n#define MLKEM768_ETA1 2\n#define MLKEM768_ETA2 2\n#define MLKEM768_DU   10\n#define MLKEM768_DV   4\n\n#define MLKEM768_POLYBYTES                 384\n#define MLKEM768_POLYVECBYTES              (MLKEM768_K * MLKEM768_POLYBYTES)\n#define MLKEM768_POLYCOMPRESSEDBYTES_DU    320\n#define MLKEM768_POLYCOMPRESSEDBYTES_DV    128\n#define MLKEM768_POLYVECCOMPRESSEDBYTES_DU (MLKEM768_K * MLKEM768_POLYCOMPRESSEDBYTES_DU)\n\ntypedef struct poly {\n    int16_t coeffs[MLKEM768_N];\n} poly;\n\ntypedef struct polyvec {\n    poly vec[MLKEM768_K];\n} polyvec;\n\nstatic const int16_t zetas[128] = {\n    2285, 2571, 2970, 1812, 1493, 1422, 287,  202,  3158, 622,  1577, 182,  962,  2127, 1855, 1468,\n    573,  2004, 264,  383,  2500, 1458, 1727, 3199, 2648, 1017, 732,  608,  1787, 411,  3124, 1758,\n    1223, 652,  2777, 1015, 2036, 1491, 3047, 1785, 516,  3321, 3009, 2663, 1711, 2167, 126,  1469,\n    2476, 3239, 3058, 830,  107,  1908, 3082, 2378, 2931, 961,  1821, 2604, 448,  2264, 677,  2054,\n    2226, 430,  555,  843,  2078, 871,  1550, 105,  422,  587,  177,  3094, 3038, 2869, 1574, 1653,\n    3083, 778,  1159, 3182, 2552, 1483, 2727, 1119, 1739, 644,  2457, 349,  418,  329,  3173, 3254,\n    817,  1097, 603,  610,  1322, 2044, 1864, 384,  2114, 3193, 1218, 1994, 2455, 220,  2142, 1670,\n    2144, 1799, 2051, 794,  1819, 2475, 2459, 478,  3221, 3021, 996,  991,  958,  1869, 1522, 1628\n};\n\nstatic int16_t\nmontgomery_reduce(int32_t a)\n{\n    int16_t t;\n\n    t = (int16_t) ((uint16_t) a * 62209U);\n    t = (int16_t) ((a - (int32_t) t * MLKEM768_Q) >> 16);\n\n    return t;\n}\n\nstatic int16_t\nbarrett_reduce(int16_t a)\n{\n    int16_t t;\n\n    t = (int16_t) (((int32_t) a * 20159) >> 26);\n    t = a - t * MLKEM768_Q;\n\n    return t;\n}\n\nstatic int16_t\ncsubq(int16_t a)\n{\n    a -= MLKEM768_Q;\n    a += (a >> 15) & MLKEM768_Q;\n\n    return a;\n}\n\nstatic void\npoly_ntt(poly *r)\n{\n    unsigned int len, start, j, k;\n    int16_t      t, zeta;\n\n    k = 1;\n    for (len = 128; len >= 2; len >>= 1) {\n        for (start = 0; start < MLKEM768_N; start = j + len) {\n            zeta = zetas[k++];\n            for (j = start; j < start + len; j++) {\n                t                  = montgomery_reduce((int32_t) zeta * r->coeffs[j + len]);\n                r->coeffs[j + len] = r->coeffs[j] - t;\n                r->coeffs[j]       = r->coeffs[j] + t;\n            }\n        }\n    }\n}\n\nstatic void\npoly_invntt(poly *r)\n{\n    unsigned int  start, len, j, k;\n    int16_t       t, zeta;\n    const int16_t f = 1441;\n\n    k = 127;\n    for (len = 2; len <= 128; len <<= 1) {\n        for (start = 0; start < MLKEM768_N; start = j + len) {\n            zeta = zetas[k--];\n            for (j = start; j < start + len; j++) {\n                t                  = r->coeffs[j];\n                r->coeffs[j]       = barrett_reduce(t + r->coeffs[j + len]);\n                r->coeffs[j + len] = montgomery_reduce((int32_t) zeta * (r->coeffs[j + len] - t));\n            }\n        }\n    }\n    for (j = 0; j < MLKEM768_N; j++) {\n        r->coeffs[j] = montgomery_reduce((int32_t) f * r->coeffs[j]);\n    }\n}\n\nstatic void\npoly_basemul(poly *r, const poly *a, const poly *b)\n{\n    unsigned int i;\n    int16_t      zeta;\n\n    for (i = 0; i < MLKEM768_N / 4; i++) {\n        zeta = zetas[64 + i];\n\n        r->coeffs[4 * i] = montgomery_reduce((int32_t) a->coeffs[4 * i + 1] * b->coeffs[4 * i + 1]);\n        r->coeffs[4 * i] = montgomery_reduce((int32_t) r->coeffs[4 * i] * zeta);\n        r->coeffs[4 * i] += montgomery_reduce((int32_t) a->coeffs[4 * i] * b->coeffs[4 * i]);\n\n        r->coeffs[4 * i + 1] = montgomery_reduce((int32_t) a->coeffs[4 * i] * b->coeffs[4 * i + 1]);\n        r->coeffs[4 * i + 1] +=\n            montgomery_reduce((int32_t) a->coeffs[4 * i + 1] * b->coeffs[4 * i]);\n\n        r->coeffs[4 * i + 2] =\n            montgomery_reduce((int32_t) a->coeffs[4 * i + 3] * b->coeffs[4 * i + 3]);\n        r->coeffs[4 * i + 2] = montgomery_reduce((int32_t) r->coeffs[4 * i + 2] * (-zeta));\n        r->coeffs[4 * i + 2] +=\n            montgomery_reduce((int32_t) a->coeffs[4 * i + 2] * b->coeffs[4 * i + 2]);\n\n        r->coeffs[4 * i + 3] =\n            montgomery_reduce((int32_t) a->coeffs[4 * i + 2] * b->coeffs[4 * i + 3]);\n        r->coeffs[4 * i + 3] +=\n            montgomery_reduce((int32_t) a->coeffs[4 * i + 3] * b->coeffs[4 * i + 2]);\n    }\n}\n\nstatic void\npoly_tomont(poly *r)\n{\n    unsigned int  i;\n    const int16_t f = 1353;\n\n    for (i = 0; i < MLKEM768_N; i++) {\n        r->coeffs[i] = montgomery_reduce((int32_t) f * r->coeffs[i]);\n    }\n}\n\nstatic void\npoly_reduce(poly *r)\n{\n    unsigned int i;\n\n    for (i = 0; i < MLKEM768_N; i++) {\n        r->coeffs[i] = barrett_reduce(r->coeffs[i]);\n    }\n}\n\nstatic void\npoly_add(poly *r, const poly *a, const poly *b)\n{\n    unsigned int i;\n\n    for (i = 0; i < MLKEM768_N; i++) {\n        r->coeffs[i] = a->coeffs[i] + b->coeffs[i];\n    }\n}\n\nstatic void\npoly_sub(poly *r, const poly *a, const poly *b)\n{\n    unsigned int i;\n\n    for (i = 0; i < MLKEM768_N; i++) {\n        r->coeffs[i] = a->coeffs[i] - b->coeffs[i];\n    }\n}\n\nstatic void\npoly_csubq(poly *r)\n{\n    unsigned int i;\n\n    for (i = 0; i < MLKEM768_N; i++) {\n        r->coeffs[i] = csubq(r->coeffs[i]);\n    }\n}\n\nstatic void\npoly_cbd_eta2(poly *r, const unsigned char buf[128])\n{\n    unsigned int i, j;\n    uint32_t     t, d;\n    int16_t      a, b;\n\n    for (i = 0; i < MLKEM768_N / 8; i++) {\n        t = (uint32_t) buf[4 * i] | ((uint32_t) buf[4 * i + 1] << 8) |\n            ((uint32_t) buf[4 * i + 2] << 16) | ((uint32_t) buf[4 * i + 3] << 24);\n\n        d = t & 0x55555555;\n        d += (t >> 1) & 0x55555555;\n\n        for (j = 0; j < 8; j++) {\n            a                    = (d >> (4 * j)) & 0x3;\n            b                    = (d >> (4 * j + 2)) & 0x3;\n            r->coeffs[8 * i + j] = a - b;\n        }\n    }\n}\n\nstatic void\npoly_getnoise_eta2(poly *r, const unsigned char seed[32], uint8_t nonce)\n{\n    unsigned char             buf[MLKEM768_ETA2 * MLKEM768_N / 4];\n    crypto_xof_shake256_state state;\n    unsigned char             extseed[33];\n\n    memcpy(extseed, seed, 32);\n    extseed[32] = nonce;\n\n    crypto_xof_shake256_init(&state);\n    crypto_xof_shake256_update(&state, extseed, 33);\n    crypto_xof_shake256_squeeze(&state, buf, sizeof(buf));\n\n    poly_cbd_eta2(r, buf);\n    sodium_memzero(&state, sizeof state);\n    sodium_memzero(buf, sizeof buf);\n}\n\nstatic void\npoly_frombytes(poly *r, const unsigned char a[MLKEM768_POLYBYTES])\n{\n    unsigned int i;\n\n    for (i = 0; i < MLKEM768_N / 2; i++) {\n        r->coeffs[2 * i]     = ((a[3 * i + 0] >> 0) | ((uint16_t) a[3 * i + 1] << 8)) & 0xFFF;\n        r->coeffs[2 * i + 1] = ((a[3 * i + 1] >> 4) | ((uint16_t) a[3 * i + 2] << 4)) & 0xFFF;\n    }\n}\n\nstatic void\npoly_tobytes(unsigned char r[MLKEM768_POLYBYTES], const poly *a)\n{\n    unsigned int i;\n    uint16_t     t0, t1;\n\n    for (i = 0; i < MLKEM768_N / 2; i++) {\n        t0           = a->coeffs[2 * i];\n        t1           = a->coeffs[2 * i + 1];\n        r[3 * i + 0] = (unsigned char) (t0 >> 0);\n        r[3 * i + 1] = (unsigned char) ((t0 >> 8) | (t1 << 4));\n        r[3 * i + 2] = (unsigned char) (t1 >> 4);\n    }\n}\n\nstatic void\npoly_frommsg(poly *r, const unsigned char msg[32])\n{\n    unsigned int i, j;\n    int16_t      mask;\n\n    for (i = 0; i < MLKEM768_N / 8; i++) {\n        for (j = 0; j < 8; j++) {\n            mask                 = -((msg[i] >> j) & 1);\n            r->coeffs[8 * i + j] = mask & ((MLKEM768_Q + 1) / 2);\n        }\n    }\n}\n\nstatic void\npoly_tomsg(unsigned char msg[32], const poly *a)\n{\n    unsigned int i, j;\n    uint32_t     t;\n\n    for (i = 0; i < MLKEM768_N / 8; i++) {\n        msg[i] = 0;\n        for (j = 0; j < 8; j++) {\n            t = (uint32_t) a->coeffs[8 * i + j];\n            t += (uint32_t) (((int32_t) a->coeffs[8 * i + j] >> 15) & MLKEM768_Q);\n            t = (((t << 1) + MLKEM768_Q / 2) * 80635) >> 28;\n            t &= 1;\n            msg[i] |= t << j;\n        }\n    }\n}\n\nstatic void\npoly_compress_du(unsigned char r[MLKEM768_POLYCOMPRESSEDBYTES_DU], const poly *a)\n{\n    uint32_t     t[4];\n    unsigned int i, j;\n\n    for (i = 0; i < MLKEM768_N / 4; i++) {\n        for (j = 0; j < 4; j++) {\n            t[j] = (uint32_t) a->coeffs[4 * i + j];\n            t[j] += (uint32_t) (((int32_t) a->coeffs[4 * i + j] >> 15) & MLKEM768_Q);\n            t[j] = (uint32_t) ((((uint64_t) t[j] << 10) + MLKEM768_Q / 2) * 161271ULL >> 29);\n            t[j] &= 0x3ff;\n        }\n\n        r[5 * i + 0] = (unsigned char) (t[0] >> 0);\n        r[5 * i + 1] = (unsigned char) ((t[0] >> 8) | (t[1] << 2));\n        r[5 * i + 2] = (unsigned char) ((t[1] >> 6) | (t[2] << 4));\n        r[5 * i + 3] = (unsigned char) ((t[2] >> 4) | (t[3] << 6));\n        r[5 * i + 4] = (unsigned char) (t[3] >> 2);\n    }\n}\n\nstatic void\npoly_decompress_du(poly *r, const unsigned char a[MLKEM768_POLYCOMPRESSEDBYTES_DU])\n{\n    uint16_t     t[4];\n    unsigned int i;\n\n    for (i = 0; i < MLKEM768_N / 4; i++) {\n        t[0] = (a[5 * i + 0] >> 0) | ((uint16_t) a[5 * i + 1] << 8);\n        t[1] = (a[5 * i + 1] >> 2) | ((uint16_t) a[5 * i + 2] << 6);\n        t[2] = (a[5 * i + 2] >> 4) | ((uint16_t) a[5 * i + 3] << 4);\n        t[3] = (a[5 * i + 3] >> 6) | ((uint16_t) a[5 * i + 4] << 2);\n\n        r->coeffs[4 * i + 0] = (int16_t) (((uint32_t) (t[0] & 0x3FF) * MLKEM768_Q + 512) >> 10);\n        r->coeffs[4 * i + 1] = (int16_t) (((uint32_t) (t[1] & 0x3FF) * MLKEM768_Q + 512) >> 10);\n        r->coeffs[4 * i + 2] = (int16_t) (((uint32_t) (t[2] & 0x3FF) * MLKEM768_Q + 512) >> 10);\n        r->coeffs[4 * i + 3] = (int16_t) (((uint32_t) (t[3] & 0x3FF) * MLKEM768_Q + 512) >> 10);\n    }\n}\n\nstatic void\npoly_compress_dv(unsigned char r[MLKEM768_POLYCOMPRESSEDBYTES_DV], const poly *a)\n{\n    uint32_t     t[8];\n    unsigned int i, j;\n\n    for (i = 0; i < MLKEM768_N / 8; i++) {\n        for (j = 0; j < 8; j++) {\n            t[j] = (uint32_t) a->coeffs[8 * i + j];\n            t[j] += (uint32_t) (((int32_t) a->coeffs[8 * i + j] >> 15) & MLKEM768_Q);\n            t[j] = (uint32_t) ((((uint64_t) t[j] << 4) + MLKEM768_Q / 2) * 161271ULL >> 29);\n            t[j] &= 0xf;\n        }\n\n        r[4 * i + 0] = (unsigned char) (t[0] | (t[1] << 4));\n        r[4 * i + 1] = (unsigned char) (t[2] | (t[3] << 4));\n        r[4 * i + 2] = (unsigned char) (t[4] | (t[5] << 4));\n        r[4 * i + 3] = (unsigned char) (t[6] | (t[7] << 4));\n    }\n}\n\nstatic void\npoly_decompress_dv(poly *r, const unsigned char a[MLKEM768_POLYCOMPRESSEDBYTES_DV])\n{\n    unsigned int i;\n\n    for (i = 0; i < MLKEM768_N / 2; i++) {\n        r->coeffs[2 * i + 0] = (int16_t) ((((uint16_t) (a[i] & 15) * MLKEM768_Q) + 8) >> 4);\n        r->coeffs[2 * i + 1] = (int16_t) ((((uint16_t) (a[i] >> 4) * MLKEM768_Q) + 8) >> 4);\n    }\n}\n\nstatic void\npolyvec_ntt(polyvec *r)\n{\n    unsigned int i;\n\n    for (i = 0; i < MLKEM768_K; i++) {\n        poly_ntt(&r->vec[i]);\n    }\n}\n\nstatic void\npolyvec_invntt(polyvec *r)\n{\n    unsigned int i;\n\n    for (i = 0; i < MLKEM768_K; i++) {\n        poly_invntt(&r->vec[i]);\n    }\n}\n\nstatic void\npolyvec_basemul_acc(poly *r, const polyvec *a, const polyvec *b)\n{\n    poly         t;\n    unsigned int i;\n\n    poly_basemul(r, &a->vec[0], &b->vec[0]);\n    for (i = 1; i < MLKEM768_K; i++) {\n        poly_basemul(&t, &a->vec[i], &b->vec[i]);\n        poly_add(r, r, &t);\n    }\n\n    poly_reduce(r);\n}\n\nstatic void\npolyvec_reduce(polyvec *r)\n{\n    unsigned int i;\n\n    for (i = 0; i < MLKEM768_K; i++) {\n        poly_reduce(&r->vec[i]);\n    }\n}\n\nstatic void\npolyvec_csubq(polyvec *r)\n{\n    unsigned int i;\n\n    for (i = 0; i < MLKEM768_K; i++) {\n        poly_csubq(&r->vec[i]);\n    }\n}\n\nstatic void\npolyvec_add(polyvec *r, const polyvec *a, const polyvec *b)\n{\n    unsigned int i;\n\n    for (i = 0; i < MLKEM768_K; i++) {\n        poly_add(&r->vec[i], &a->vec[i], &b->vec[i]);\n    }\n}\n\nstatic void\npolyvec_tobytes(unsigned char r[MLKEM768_POLYVECBYTES], const polyvec *a)\n{\n    unsigned int i;\n\n    for (i = 0; i < MLKEM768_K; i++) {\n        poly_tobytes(r + i * MLKEM768_POLYBYTES, &a->vec[i]);\n    }\n}\n\nstatic void\npolyvec_frombytes(polyvec *r, const unsigned char a[MLKEM768_POLYVECBYTES])\n{\n    unsigned int i;\n\n    for (i = 0; i < MLKEM768_K; i++) {\n        poly_frombytes(&r->vec[i], a + i * MLKEM768_POLYBYTES);\n    }\n}\n\nstatic int\npolyvec_is_canonical(const polyvec *a)\n{\n    unsigned int i, j;\n\n    for (i = 0; i < MLKEM768_K; i++) {\n        for (j = 0; j < MLKEM768_N; j++) {\n            if ((uint16_t) a->vec[i].coeffs[j] >= MLKEM768_Q) {\n                return 0;\n            }\n        }\n    }\n    return 1;\n}\n\nstatic void\npolyvec_compress(unsigned char r[MLKEM768_POLYVECCOMPRESSEDBYTES_DU], const polyvec *a)\n{\n    unsigned int i;\n\n    for (i = 0; i < MLKEM768_K; i++) {\n        poly_compress_du(r + i * MLKEM768_POLYCOMPRESSEDBYTES_DU, &a->vec[i]);\n    }\n}\n\nstatic void\npolyvec_decompress(polyvec *r, const unsigned char a[MLKEM768_POLYVECCOMPRESSEDBYTES_DU])\n{\n    unsigned int i;\n\n    for (i = 0; i < MLKEM768_K; i++) {\n        poly_decompress_du(&r->vec[i], a + i * MLKEM768_POLYCOMPRESSEDBYTES_DU);\n    }\n}\n\nstatic unsigned int\nrej_uniform(int16_t *r, unsigned int len, const unsigned char *buf, unsigned int buflen)\n{\n    unsigned int ctr, pos;\n    uint16_t     val0, val1;\n\n    ctr = pos = 0;\n    while (ctr < len && pos + 3 <= buflen) {\n        val0 = ((buf[pos + 0] >> 0) | ((uint16_t) buf[pos + 1] << 8)) & 0xFFF;\n        val1 = ((buf[pos + 1] >> 4) | ((uint16_t) buf[pos + 2] << 4)) & 0xFFF;\n        pos += 3;\n\n        if (val0 < MLKEM768_Q) {\n            r[ctr++] = (int16_t) val0;\n        }\n        if (ctr < len && val1 < MLKEM768_Q) {\n            r[ctr++] = (int16_t) val1;\n        }\n    }\n\n    return ctr;\n}\n\n#define GEN_MATRIX_NBLOCKS                                                             \\\n    ((12 * MLKEM768_N / 8 * (1 << 12) / MLKEM768_Q + crypto_xof_shake128_BLOCKBYTES) / \\\n     crypto_xof_shake128_BLOCKBYTES)\n\nstatic void\ngen_matrix(polyvec *a, const unsigned char seed[32], int transposed)\n{\n    crypto_xof_shake128_state state;\n    unsigned char             buf[GEN_MATRIX_NBLOCKS * crypto_xof_shake128_BLOCKBYTES + 2];\n    unsigned char             extseed[34];\n    unsigned int              ctr, i, j;\n    unsigned int              buflen;\n\n    memcpy(extseed, seed, 32);\n\n    for (i = 0; i < MLKEM768_K; i++) {\n        for (j = 0; j < MLKEM768_K; j++) {\n            if (transposed) {\n                extseed[32] = (unsigned char) i;\n                extseed[33] = (unsigned char) j;\n            } else {\n                extseed[32] = (unsigned char) j;\n                extseed[33] = (unsigned char) i;\n            }\n\n            crypto_xof_shake128_init(&state);\n            crypto_xof_shake128_update(&state, extseed, 34);\n\n            buflen = GEN_MATRIX_NBLOCKS * crypto_xof_shake128_BLOCKBYTES;\n            crypto_xof_shake128_squeeze(&state, buf, buflen);\n\n            ctr = rej_uniform(a[i].vec[j].coeffs, MLKEM768_N, buf, buflen);\n\n            while (ctr < MLKEM768_N) {\n                crypto_xof_shake128_squeeze(&state, buf, crypto_xof_shake128_BLOCKBYTES);\n                ctr += rej_uniform(a[i].vec[j].coeffs + ctr, MLKEM768_N - ctr, buf,\n                                   crypto_xof_shake128_BLOCKBYTES);\n            }\n        }\n    }\n}\n\nstatic void\nindcpa_keypair(unsigned char       pk[crypto_kem_mlkem768_PUBLICKEYBYTES],\n               unsigned char       sk[MLKEM768_POLYVECBYTES],\n               const unsigned char seed[32])\n{\n    polyvec        a[MLKEM768_K], e, pkpv, skpv;\n    unsigned char  buf[64];\n    unsigned char *publicseed = buf;\n    unsigned char *noiseseed  = buf + 32;\n    unsigned int   i;\n    uint8_t        nonce = 0;\n\n    crypto_hash_sha3512(buf, seed, 33);\n\n    gen_matrix(a, publicseed, 0);\n\n    for (i = 0; i < MLKEM768_K; i++) {\n        poly_getnoise_eta2(&skpv.vec[i], noiseseed, nonce++);\n    }\n    for (i = 0; i < MLKEM768_K; i++) {\n        poly_getnoise_eta2(&e.vec[i], noiseseed, nonce++);\n    }\n\n    polyvec_ntt(&skpv);\n    polyvec_ntt(&e);\n\n    for (i = 0; i < MLKEM768_K; i++) {\n        polyvec_basemul_acc(&pkpv.vec[i], &a[i], &skpv);\n        poly_tomont(&pkpv.vec[i]);\n    }\n\n    polyvec_add(&pkpv, &pkpv, &e);\n    polyvec_reduce(&pkpv);\n    polyvec_csubq(&pkpv);\n    polyvec_reduce(&skpv);\n    polyvec_csubq(&skpv);\n\n    polyvec_tobytes(sk, &skpv);\n    polyvec_tobytes(pk, &pkpv);\n    memcpy(pk + MLKEM768_POLYVECBYTES, publicseed, 32);\n    sodium_memzero(buf, sizeof buf);\n    sodium_memzero(&skpv, sizeof skpv);\n    sodium_memzero(&e, sizeof e);\n}\n\nstatic void\nindcpa_enc(unsigned char       ct[crypto_kem_mlkem768_CIPHERTEXTBYTES],\n           const unsigned char m[32],\n           const unsigned char pk[crypto_kem_mlkem768_PUBLICKEYBYTES],\n           const unsigned char coins[32])\n{\n    polyvec       sp, pkpv, ep, at[MLKEM768_K], b;\n    poly          v, k, epp;\n    unsigned char seed[32];\n    unsigned int  i;\n    uint8_t       nonce = 0;\n\n    memcpy(seed, pk + MLKEM768_POLYVECBYTES, 32);\n\n    polyvec_frombytes(&pkpv, pk);\n\n    poly_frommsg(&k, m);\n\n    gen_matrix(at, seed, 1);\n\n    for (i = 0; i < MLKEM768_K; i++) {\n        poly_getnoise_eta2(&sp.vec[i], coins, nonce++);\n    }\n    for (i = 0; i < MLKEM768_K; i++) {\n        poly_getnoise_eta2(&ep.vec[i], coins, nonce++);\n    }\n    poly_getnoise_eta2(&epp, coins, nonce++);\n\n    polyvec_ntt(&sp);\n    polyvec_reduce(&sp);\n\n    for (i = 0; i < MLKEM768_K; i++) {\n        polyvec_basemul_acc(&b.vec[i], &at[i], &sp);\n    }\n\n    polyvec_basemul_acc(&v, &pkpv, &sp);\n\n    polyvec_invntt(&b);\n    poly_invntt(&v);\n\n    polyvec_add(&b, &b, &ep);\n    poly_add(&v, &v, &epp);\n    poly_add(&v, &v, &k);\n\n    polyvec_reduce(&b);\n    poly_reduce(&v);\n    polyvec_csubq(&b);\n    poly_csubq(&v);\n\n    polyvec_compress(ct, &b);\n    poly_compress_dv(ct + MLKEM768_POLYVECCOMPRESSEDBYTES_DU, &v);\n    sodium_memzero(&sp, sizeof sp);\n    sodium_memzero(&ep, sizeof ep);\n    sodium_memzero(&epp, sizeof epp);\n    sodium_memzero(&k, sizeof k);\n}\n\nstatic void\nindcpa_dec(unsigned char       m[32],\n           const unsigned char ct[crypto_kem_mlkem768_CIPHERTEXTBYTES],\n           const unsigned char sk[MLKEM768_POLYVECBYTES])\n{\n    polyvec b, skpv;\n    poly    v, mp;\n\n    polyvec_decompress(&b, ct);\n    poly_decompress_dv(&v, ct + MLKEM768_POLYVECCOMPRESSEDBYTES_DU);\n\n    polyvec_frombytes(&skpv, sk);\n\n    polyvec_ntt(&b);\n    polyvec_reduce(&b);\n    polyvec_basemul_acc(&mp, &skpv, &b);\n    poly_invntt(&mp);\n\n    poly_sub(&mp, &v, &mp);\n    poly_reduce(&mp);\n    poly_csubq(&mp);\n\n    poly_tomsg(m, &mp);\n    sodium_memzero(&skpv, sizeof skpv);\n    sodium_memzero(&mp, sizeof mp);\n}\n\nstatic void\ncmov(unsigned char *r, const unsigned char *x, size_t len, unsigned char b)\n{\n    size_t        i;\n    unsigned char mask;\n\n    mask = (unsigned char) (-(int) b);\n\n#ifdef HAVE_INLINE_ASM\n    __asm__ __volatile__(\"\" : \"+r\"(mask));\n#endif\n\n    for (i = 0; i < len; i++) {\n        r[i] ^= mask & (r[i] ^ x[i]);\n    }\n}\n\nint\nmlkem768_ref_seed_keypair(unsigned char *pk, unsigned char *sk, const unsigned char *seed)\n{\n    unsigned char indseed[33];\n\n    memcpy(indseed, seed, 32);\n    indseed[32] = MLKEM768_K;\n\n    indcpa_keypair(pk, sk, indseed);\n    sodium_memzero(indseed, sizeof indseed);\n    memcpy(sk + MLKEM768_POLYVECBYTES, pk, crypto_kem_mlkem768_PUBLICKEYBYTES);\n    crypto_hash_sha3256(sk + MLKEM768_POLYVECBYTES + crypto_kem_mlkem768_PUBLICKEYBYTES, pk,\n                        crypto_kem_mlkem768_PUBLICKEYBYTES);\n    memcpy(sk + MLKEM768_POLYVECBYTES + crypto_kem_mlkem768_PUBLICKEYBYTES + 32, seed + 32, 32);\n\n    return 0;\n}\n\nint\nmlkem768_ref_keypair(unsigned char *pk, unsigned char *sk)\n{\n    unsigned char seed[crypto_kem_mlkem768_SEEDBYTES];\n\n    randombytes_buf(seed, crypto_kem_mlkem768_SEEDBYTES);\n    return mlkem768_ref_seed_keypair(pk, sk, seed);\n}\n\nint\nmlkem768_ref_enc_deterministic(unsigned char *ct, unsigned char *ss, const unsigned char *pk,\n                               const unsigned char *seed)\n{\n    polyvec       pkpv;\n    unsigned char buf[64];\n    unsigned char kr[64];\n\n    polyvec_frombytes(&pkpv, pk);\n    if (polyvec_is_canonical(&pkpv) == 0) {\n        return -1;\n    }\n\n    memcpy(buf, seed, 32);\n    crypto_hash_sha3256(buf + 32, pk, crypto_kem_mlkem768_PUBLICKEYBYTES);\n\n    crypto_hash_sha3512(kr, buf, 64);\n\n    indcpa_enc(ct, buf, pk, kr + 32);\n\n    memcpy(ss, kr, crypto_kem_mlkem768_SHAREDSECRETBYTES);\n    sodium_memzero(buf, sizeof buf);\n    sodium_memzero(kr, sizeof kr);\n\n    return 0;\n}\n\nint\nmlkem768_ref_enc(unsigned char *ct, unsigned char *ss, const unsigned char *pk)\n{\n    unsigned char seed[32];\n\n    randombytes_buf(seed, 32);\n    return mlkem768_ref_enc_deterministic(ct, ss, pk, seed);\n}\n\nint\nmlkem768_ref_dec(unsigned char *ss, const unsigned char *ct, const unsigned char *sk)\n{\n    unsigned char        buf[64];\n    unsigned char        kr[64];\n    unsigned char        k_bar[crypto_kem_mlkem768_SHAREDSECRETBYTES];\n    unsigned char        cmp[crypto_kem_mlkem768_CIPHERTEXTBYTES];\n    const unsigned char *pk  = sk + MLKEM768_POLYVECBYTES;\n    const unsigned char *hpk = sk + MLKEM768_POLYVECBYTES + crypto_kem_mlkem768_PUBLICKEYBYTES;\n    const unsigned char *z   = sk + MLKEM768_POLYVECBYTES + crypto_kem_mlkem768_PUBLICKEYBYTES + 32;\n    int                  fail;\n    unsigned int         fail_mask;\n    crypto_xof_shake256_state state;\n\n    indcpa_dec(buf, ct, sk);\n\n    memcpy(buf + 32, hpk, 32);\n\n    crypto_hash_sha3512(kr, buf, 64);\n\n    indcpa_enc(cmp, buf, pk, kr + 32);\n\n    fail = sodium_memcmp(ct, cmp, crypto_kem_mlkem768_CIPHERTEXTBYTES);\n    fail_mask = (unsigned int) fail;\n    fail_mask >>= (sizeof(fail_mask) * 8U - 1U);\n\n    crypto_xof_shake256_init(&state);\n    crypto_xof_shake256_update(&state, z, 32);\n    crypto_xof_shake256_update(&state, ct, crypto_kem_mlkem768_CIPHERTEXTBYTES);\n    crypto_xof_shake256_squeeze(&state, k_bar, crypto_kem_mlkem768_SHAREDSECRETBYTES);\n\n    cmov(kr, k_bar, crypto_kem_mlkem768_SHAREDSECRETBYTES, (unsigned char) fail_mask);\n\n    memcpy(ss, kr, crypto_kem_mlkem768_SHAREDSECRETBYTES);\n    sodium_memzero(buf, sizeof buf);\n    sodium_memzero(kr, sizeof kr);\n    sodium_memzero(k_bar, sizeof k_bar);\n    sodium_memzero(cmp, sizeof cmp);\n    sodium_memzero(&state, sizeof state);\n\n    return 0;\n}\n"
  },
  {
    "path": "src/libsodium/crypto_kem/mlkem768/ref/kem_mlkem768_ref.h",
    "content": "#ifndef kem_mlkem768_ref_H\n#define kem_mlkem768_ref_H\n\n#include <stddef.h>\n#include <stdint.h>\n\n#include \"private/quirks.h\"\n\nint mlkem768_ref_keypair(unsigned char *pk, unsigned char *sk);\n\nint mlkem768_ref_seed_keypair(unsigned char *pk, unsigned char *sk, const unsigned char *seed);\n\nint mlkem768_ref_enc(unsigned char *ct, unsigned char *ss, const unsigned char *pk);\n\nint mlkem768_ref_enc_deterministic(unsigned char *ct, unsigned char *ss, const unsigned char *pk,\n                                   const unsigned char *seed);\n\nint mlkem768_ref_dec(unsigned char *ss, const unsigned char *ct, const unsigned char *sk);\n\n#endif\n"
  },
  {
    "path": "src/libsodium/crypto_kem/xwing/kem_xwing.c",
    "content": "#include <stdint.h>\n#include <string.h>\n\n#include \"crypto_hash_sha3.h\"\n#include \"crypto_kem_mlkem768.h\"\n#include \"crypto_kem_xwing.h\"\n#include \"crypto_scalarmult_curve25519.h\"\n#include \"crypto_xof_shake256.h\"\n#include \"private/common.h\"\n#include \"randombytes.h\"\n#include \"utils.h\"\n\nstatic const unsigned char xwing_label[6] = { 0x5c, 0x2e, 0x2f, 0x2f, 0x5e, 0x5c };\n\nstatic void\nexpand_decaps_key(unsigned char       pk_mlkem[crypto_kem_mlkem768_PUBLICKEYBYTES],\n                  unsigned char       sk_mlkem[crypto_kem_mlkem768_SECRETKEYBYTES],\n                  unsigned char       pk_x25519[crypto_scalarmult_curve25519_BYTES],\n                  unsigned char       sk_x25519[crypto_scalarmult_curve25519_SCALARBYTES],\n                  const unsigned char seed[crypto_kem_xwing_SEEDBYTES])\n{\n    unsigned char expanded[96];\n    unsigned char mlkem_seed[crypto_kem_mlkem768_SEEDBYTES];\n\n    crypto_xof_shake256(expanded, 96, seed, crypto_kem_xwing_SEEDBYTES);\n\n    memcpy(mlkem_seed, expanded, 64);\n    memcpy(sk_x25519, expanded + 64, 32);\n\n    crypto_kem_mlkem768_seed_keypair(pk_mlkem, sk_mlkem, mlkem_seed);\n    crypto_scalarmult_curve25519_base(pk_x25519, sk_x25519);\n\n    sodium_memzero(expanded, sizeof expanded);\n    sodium_memzero(mlkem_seed, sizeof mlkem_seed);\n}\n\nstatic void\ncombiner(unsigned char       ss[crypto_kem_xwing_SHAREDSECRETBYTES],\n         const unsigned char ss_mlkem[crypto_kem_mlkem768_SHAREDSECRETBYTES],\n         const unsigned char ss_x25519[crypto_scalarmult_curve25519_BYTES],\n         const unsigned char ct_x25519[crypto_scalarmult_curve25519_BYTES],\n         const unsigned char pk_x25519[crypto_scalarmult_curve25519_BYTES])\n{\n    crypto_hash_sha3256_state state;\n\n    crypto_hash_sha3256_init(&state);\n    crypto_hash_sha3256_update(&state, ss_mlkem, crypto_kem_mlkem768_SHAREDSECRETBYTES);\n    crypto_hash_sha3256_update(&state, ss_x25519, crypto_scalarmult_curve25519_BYTES);\n    crypto_hash_sha3256_update(&state, ct_x25519, crypto_scalarmult_curve25519_BYTES);\n    crypto_hash_sha3256_update(&state, pk_x25519, crypto_scalarmult_curve25519_BYTES);\n    crypto_hash_sha3256_update(&state, xwing_label, sizeof xwing_label);\n    crypto_hash_sha3256_final(&state, ss);\n}\n\nsize_t\ncrypto_kem_xwing_publickeybytes(void)\n{\n    return crypto_kem_xwing_PUBLICKEYBYTES;\n}\n\nsize_t\ncrypto_kem_xwing_secretkeybytes(void)\n{\n    return crypto_kem_xwing_SECRETKEYBYTES;\n}\n\nsize_t\ncrypto_kem_xwing_ciphertextbytes(void)\n{\n    return crypto_kem_xwing_CIPHERTEXTBYTES;\n}\n\nsize_t\ncrypto_kem_xwing_sharedsecretbytes(void)\n{\n    return crypto_kem_xwing_SHAREDSECRETBYTES;\n}\n\nsize_t\ncrypto_kem_xwing_seedbytes(void)\n{\n    return crypto_kem_xwing_SEEDBYTES;\n}\n\nint\ncrypto_kem_xwing_seed_keypair(unsigned char *pk, unsigned char *sk, const unsigned char *seed)\n{\n    unsigned char pk_mlkem[crypto_kem_mlkem768_PUBLICKEYBYTES];\n    unsigned char sk_mlkem[crypto_kem_mlkem768_SECRETKEYBYTES];\n    unsigned char pk_x25519[crypto_scalarmult_curve25519_BYTES];\n    unsigned char sk_x25519[crypto_scalarmult_curve25519_SCALARBYTES];\n\n    expand_decaps_key(pk_mlkem, sk_mlkem, pk_x25519, sk_x25519, seed);\n\n    memcpy(pk, pk_mlkem, crypto_kem_mlkem768_PUBLICKEYBYTES);\n    memcpy(pk + crypto_kem_mlkem768_PUBLICKEYBYTES, pk_x25519, crypto_scalarmult_curve25519_BYTES);\n\n    memcpy(sk, seed, crypto_kem_xwing_SEEDBYTES);\n\n    sodium_memzero(sk_mlkem, sizeof sk_mlkem);\n    sodium_memzero(sk_x25519, sizeof sk_x25519);\n\n    return 0;\n}\n\nint\ncrypto_kem_xwing_keypair(unsigned char *pk, unsigned char *sk)\n{\n    unsigned char seed[crypto_kem_xwing_SEEDBYTES];\n\n    randombytes_buf(seed, crypto_kem_xwing_SEEDBYTES);\n    crypto_kem_xwing_seed_keypair(pk, sk, seed);\n\n    sodium_memzero(seed, sizeof seed);\n\n    return 0;\n}\n\nint\ncrypto_kem_xwing_enc_deterministic(unsigned char *ct, unsigned char *ss, const unsigned char *pk,\n                                   const unsigned char *seed)\n{\n    const unsigned char *pk_mlkem  = pk;\n    const unsigned char *pk_x25519 = pk + crypto_kem_mlkem768_PUBLICKEYBYTES;\n\n    const unsigned char *seed_mlkem  = seed;\n    const unsigned char *sk_e_x25519 = seed + 32;\n\n    unsigned char ct_mlkem[crypto_kem_mlkem768_CIPHERTEXTBYTES];\n    unsigned char ss_mlkem[crypto_kem_mlkem768_SHAREDSECRETBYTES];\n    unsigned char ct_x25519[crypto_scalarmult_curve25519_BYTES];\n    unsigned char ss_x25519[crypto_scalarmult_curve25519_BYTES];\n\n    if (crypto_kem_mlkem768_enc_deterministic(ct_mlkem, ss_mlkem, pk_mlkem, seed_mlkem) != 0) {\n        return -1; /* LCOV_EXCL_LINE */\n    }\n\n    crypto_scalarmult_curve25519_base(ct_x25519, sk_e_x25519);\n\n    if (crypto_scalarmult_curve25519(ss_x25519, sk_e_x25519, pk_x25519) != 0) {\n        sodium_memzero(ss_mlkem, sizeof ss_mlkem); /* LCOV_EXCL_LINE */\n        return -1;                                 /* LCOV_EXCL_LINE */\n    }\n\n    memcpy(ct, ct_mlkem, crypto_kem_mlkem768_CIPHERTEXTBYTES);\n    memcpy(ct + crypto_kem_mlkem768_CIPHERTEXTBYTES, ct_x25519, crypto_scalarmult_curve25519_BYTES);\n\n    combiner(ss, ss_mlkem, ss_x25519, ct_x25519, pk_x25519);\n\n    sodium_memzero(ss_mlkem, sizeof ss_mlkem);\n    sodium_memzero(ss_x25519, sizeof ss_x25519);\n\n    return 0;\n}\n\nint\ncrypto_kem_xwing_enc(unsigned char *ct, unsigned char *ss, const unsigned char *pk)\n{\n    unsigned char seed[64];\n\n    randombytes_buf(seed, 64);\n    if (crypto_kem_xwing_enc_deterministic(ct, ss, pk, seed) != 0) {\n        sodium_memzero(seed, sizeof seed); /* LCOV_EXCL_LINE */\n        return -1;                         /* LCOV_EXCL_LINE */\n    }\n    sodium_memzero(seed, sizeof seed);\n\n    return 0;\n}\n\nint\ncrypto_kem_xwing_dec(unsigned char *ss, const unsigned char *ct, const unsigned char *sk)\n{\n    unsigned char pk_mlkem[crypto_kem_mlkem768_PUBLICKEYBYTES];\n    unsigned char sk_mlkem[crypto_kem_mlkem768_SECRETKEYBYTES];\n    unsigned char pk_x25519[crypto_scalarmult_curve25519_BYTES];\n    unsigned char sk_x25519[crypto_scalarmult_curve25519_SCALARBYTES];\n\n    const unsigned char *ct_mlkem  = ct;\n    const unsigned char *ct_x25519 = ct + crypto_kem_mlkem768_CIPHERTEXTBYTES;\n\n    unsigned char ss_mlkem[crypto_kem_mlkem768_SHAREDSECRETBYTES];\n    unsigned char ss_x25519[crypto_scalarmult_curve25519_BYTES];\n\n    expand_decaps_key(pk_mlkem, sk_mlkem, pk_x25519, sk_x25519, sk);\n\n    /* LCOV_EXCL_START */\n    if (crypto_kem_mlkem768_dec(ss_mlkem, ct_mlkem, sk_mlkem) != 0) {\n        sodium_memzero(sk_mlkem, sizeof sk_mlkem);\n        sodium_memzero(sk_x25519, sizeof sk_x25519);\n        return -1;\n    }\n\n    if (crypto_scalarmult_curve25519(ss_x25519, sk_x25519, ct_x25519) != 0) {\n        sodium_memzero(ss_mlkem, sizeof ss_mlkem);\n        sodium_memzero(sk_mlkem, sizeof sk_mlkem);\n        sodium_memzero(sk_x25519, sizeof sk_x25519);\n        return -1;\n    }\n    /* LCOV_EXCL_STOP */\n\n    combiner(ss, ss_mlkem, ss_x25519, ct_x25519, pk_x25519);\n\n    sodium_memzero(ss_mlkem, sizeof ss_mlkem);\n    sodium_memzero(ss_x25519, sizeof ss_x25519);\n    sodium_memzero(sk_mlkem, sizeof sk_mlkem);\n    sodium_memzero(sk_x25519, sizeof sk_x25519);\n\n    return 0;\n}\n"
  },
  {
    "path": "src/libsodium/crypto_kx/crypto_kx.c",
    "content": "\n#include <stddef.h>\n\n#include \"core.h\"\n#include \"crypto_generichash.h\"\n#include \"crypto_kx.h\"\n#include \"crypto_scalarmult.h\"\n#include \"private/common.h\"\n#include \"randombytes.h\"\n#include \"utils.h\"\n\nint\ncrypto_kx_seed_keypair(unsigned char pk[crypto_kx_PUBLICKEYBYTES],\n                       unsigned char sk[crypto_kx_SECRETKEYBYTES],\n                       const unsigned char seed[crypto_kx_SEEDBYTES])\n{\n    crypto_generichash(sk, crypto_kx_SECRETKEYBYTES,\n                       seed, crypto_kx_SEEDBYTES, NULL, 0);\n    return crypto_scalarmult_base(pk, sk);\n}\n\nint\ncrypto_kx_keypair(unsigned char pk[crypto_kx_PUBLICKEYBYTES],\n                  unsigned char sk[crypto_kx_SECRETKEYBYTES])\n{\n    COMPILER_ASSERT(crypto_kx_SECRETKEYBYTES == crypto_scalarmult_SCALARBYTES);\n    COMPILER_ASSERT(crypto_kx_PUBLICKEYBYTES == crypto_scalarmult_BYTES);\n\n    randombytes_buf(sk, crypto_kx_SECRETKEYBYTES);\n    return crypto_scalarmult_base(pk, sk);\n}\n\nint\ncrypto_kx_client_session_keys(unsigned char rx[crypto_kx_SESSIONKEYBYTES],\n                              unsigned char tx[crypto_kx_SESSIONKEYBYTES],\n                              const unsigned char client_pk[crypto_kx_PUBLICKEYBYTES],\n                              const unsigned char client_sk[crypto_kx_SECRETKEYBYTES],\n                              const unsigned char server_pk[crypto_kx_PUBLICKEYBYTES])\n{\n    crypto_generichash_state h;\n    unsigned char            q[crypto_scalarmult_BYTES];\n    unsigned char            keys[2 * crypto_kx_SESSIONKEYBYTES];\n    int                      i;\n\n    if (rx == NULL) {\n        rx = tx;\n    }\n    if (tx == NULL) {\n        tx = rx;\n    }\n    if (rx == NULL) {\n        sodium_misuse(); /* LCOV_EXCL_LINE */\n    }\n    if (crypto_scalarmult(q, client_sk, server_pk) != 0) {\n        return -1;\n    }\n    COMPILER_ASSERT(sizeof keys <= crypto_generichash_BYTES_MAX);\n    crypto_generichash_init(&h, NULL, 0U, sizeof keys);\n    crypto_generichash_update(&h, q, crypto_scalarmult_BYTES);\n    sodium_memzero(q, sizeof q);\n    crypto_generichash_update(&h, client_pk, crypto_kx_PUBLICKEYBYTES);\n    crypto_generichash_update(&h, server_pk, crypto_kx_PUBLICKEYBYTES);\n    crypto_generichash_final(&h, keys, sizeof keys);\n    sodium_memzero(&h, sizeof h);\n    for (i = 0; i < crypto_kx_SESSIONKEYBYTES; i++) {\n        rx[i] = keys[i]; /* rx cannot be NULL */\n        tx[i] = keys[i + crypto_kx_SESSIONKEYBYTES]; /* tx cannot be NULL */\n    }\n    sodium_memzero(keys, sizeof keys);\n\n    return 0;\n}\n\nint\ncrypto_kx_server_session_keys(unsigned char rx[crypto_kx_SESSIONKEYBYTES],\n                              unsigned char tx[crypto_kx_SESSIONKEYBYTES],\n                              const unsigned char server_pk[crypto_kx_PUBLICKEYBYTES],\n                              const unsigned char server_sk[crypto_kx_SECRETKEYBYTES],\n                              const unsigned char client_pk[crypto_kx_PUBLICKEYBYTES])\n{\n    crypto_generichash_state h;\n    unsigned char            q[crypto_scalarmult_BYTES];\n    unsigned char            keys[2 * crypto_kx_SESSIONKEYBYTES];\n    int                      i;\n\n    if (rx == NULL) {\n        rx = tx;\n    }\n    if (tx == NULL) {\n        tx = rx;\n    }\n    if (rx == NULL) {\n        sodium_misuse(); /* LCOV_EXCL_LINE */\n    }\n    if (crypto_scalarmult(q, server_sk, client_pk) != 0) {\n        return -1;\n    }\n    COMPILER_ASSERT(sizeof keys <= crypto_generichash_BYTES_MAX);\n    crypto_generichash_init(&h, NULL, 0U, sizeof keys);\n    crypto_generichash_update(&h, q, crypto_scalarmult_BYTES);\n    sodium_memzero(q, sizeof q);\n    crypto_generichash_update(&h, client_pk, crypto_kx_PUBLICKEYBYTES);\n    crypto_generichash_update(&h, server_pk, crypto_kx_PUBLICKEYBYTES);\n    crypto_generichash_final(&h, keys, sizeof keys);\n    sodium_memzero(&h, sizeof h);\n    for (i = 0; i < crypto_kx_SESSIONKEYBYTES; i++) {\n        tx[i] = keys[i];\n        rx[i] = keys[i + crypto_kx_SESSIONKEYBYTES];\n    }\n    sodium_memzero(keys, sizeof keys);\n\n    return 0;\n}\n\nsize_t\ncrypto_kx_publickeybytes(void)\n{\n    return crypto_kx_PUBLICKEYBYTES;\n}\n\nsize_t\ncrypto_kx_secretkeybytes(void)\n{\n    return crypto_kx_SECRETKEYBYTES;\n}\n\nsize_t\ncrypto_kx_seedbytes(void)\n{\n    return crypto_kx_SEEDBYTES;\n}\n\nsize_t\ncrypto_kx_sessionkeybytes(void)\n{\n    return crypto_kx_SESSIONKEYBYTES;\n}\n\nconst char *\ncrypto_kx_primitive(void)\n{\n    return crypto_kx_PRIMITIVE;\n}\n"
  },
  {
    "path": "src/libsodium/crypto_onetimeauth/crypto_onetimeauth.c",
    "content": "\n#include \"crypto_onetimeauth.h\"\n#include \"randombytes.h\"\n\nsize_t\ncrypto_onetimeauth_statebytes(void)\n{\n    return sizeof(crypto_onetimeauth_state);\n}\n\nsize_t\ncrypto_onetimeauth_bytes(void)\n{\n    return crypto_onetimeauth_BYTES;\n}\n\nsize_t\ncrypto_onetimeauth_keybytes(void)\n{\n    return crypto_onetimeauth_KEYBYTES;\n}\n\nint\ncrypto_onetimeauth(unsigned char *out, const unsigned char *in,\n                   unsigned long long inlen, const unsigned char *k)\n{\n    return crypto_onetimeauth_poly1305(out, in, inlen, k);\n}\n\nint\ncrypto_onetimeauth_verify(const unsigned char *h, const unsigned char *in,\n                          unsigned long long inlen, const unsigned char *k)\n{\n    return crypto_onetimeauth_poly1305_verify(h, in, inlen, k);\n}\n\nint\ncrypto_onetimeauth_init(crypto_onetimeauth_state *state,\n                        const unsigned char *key)\n{\n    return crypto_onetimeauth_poly1305_init\n        ((crypto_onetimeauth_poly1305_state *) state, key);\n}\n\nint\ncrypto_onetimeauth_update(crypto_onetimeauth_state *state,\n                          const unsigned char *in,\n                          unsigned long long inlen)\n{\n    return crypto_onetimeauth_poly1305_update\n        ((crypto_onetimeauth_poly1305_state *) state, in, inlen);\n}\n\nint\ncrypto_onetimeauth_final(crypto_onetimeauth_state *state,\n                         unsigned char *out)\n{\n    return crypto_onetimeauth_poly1305_final\n        ((crypto_onetimeauth_poly1305_state *) state, out);\n}\n\nconst char *\ncrypto_onetimeauth_primitive(void)\n{\n    return crypto_onetimeauth_PRIMITIVE;\n}\n\nvoid crypto_onetimeauth_keygen(unsigned char k[crypto_onetimeauth_KEYBYTES])\n{\n    randombytes_buf(k, crypto_onetimeauth_KEYBYTES);\n}\n"
  },
  {
    "path": "src/libsodium/crypto_onetimeauth/poly1305/donna/poly1305_donna.c",
    "content": "\n#include \"poly1305_donna.h\"\n#include \"crypto_verify_16.h\"\n#include \"private/common.h\"\n#include \"utils.h\"\n\n#ifdef HAVE_TI_MODE\n#include \"poly1305_donna64.h\"\n#else\n#include \"poly1305_donna32.h\"\n#endif\n#include \"../onetimeauth_poly1305.h\"\n\nstatic void\npoly1305_update(poly1305_state_internal_t *st, const unsigned char *m,\n                unsigned long long bytes)\n{\n    unsigned long long i;\n\n    /* handle leftover */\n    if (st->leftover) {\n        unsigned long long want = (poly1305_block_size - st->leftover);\n\n        if (want > bytes) {\n            want = bytes;\n        }\n        for (i = 0; i < want; i++) {\n            st->buffer[st->leftover + i] = m[i];\n        }\n        bytes -= want;\n        m += want;\n        st->leftover += want;\n        if (st->leftover < poly1305_block_size) {\n            return;\n        }\n        poly1305_blocks(st, st->buffer, poly1305_block_size);\n        st->leftover = 0;\n    }\n\n    /* process full blocks */\n    if (bytes >= poly1305_block_size) {\n        unsigned long long want = (bytes & ~(poly1305_block_size - 1));\n\n        poly1305_blocks(st, m, want);\n        m += want;\n        bytes -= want;\n    }\n\n    /* store leftover */\n    if (bytes) {\n        for (i = 0; i < bytes; i++) {\n            st->buffer[st->leftover + i] = m[i];\n        }\n        st->leftover += bytes;\n    }\n}\n\nstatic int\ncrypto_onetimeauth_poly1305_donna(unsigned char *out, const unsigned char *m,\n                                  unsigned long long   inlen,\n                                  const unsigned char *key)\n{\n    CRYPTO_ALIGN(64) poly1305_state_internal_t state;\n\n    poly1305_init(&state, key);\n    poly1305_update(&state, m, inlen);\n    poly1305_finish(&state, out);\n\n    return 0;\n}\n\nstatic int\ncrypto_onetimeauth_poly1305_donna_init(crypto_onetimeauth_poly1305_state *state,\n                                       const unsigned char *key)\n{\n    COMPILER_ASSERT(sizeof(crypto_onetimeauth_poly1305_state) >=\n        sizeof(poly1305_state_internal_t));\n    poly1305_init((poly1305_state_internal_t *) (void *) state, key);\n\n    return 0;\n}\n\nstatic int\ncrypto_onetimeauth_poly1305_donna_update(\n    crypto_onetimeauth_poly1305_state *state, const unsigned char *in,\n    unsigned long long inlen)\n{\n    poly1305_update((poly1305_state_internal_t *) (void *) state, in, inlen);\n\n    return 0;\n}\n\nstatic int\ncrypto_onetimeauth_poly1305_donna_final(\n    crypto_onetimeauth_poly1305_state *state, unsigned char *out)\n{\n    poly1305_finish((poly1305_state_internal_t *) (void *) state, out);\n\n    return 0;\n}\n\nstatic int\ncrypto_onetimeauth_poly1305_donna_verify(const unsigned char *h,\n                                         const unsigned char *in,\n                                         unsigned long long   inlen,\n                                         const unsigned char *k)\n{\n    unsigned char correct[16];\n\n    crypto_onetimeauth_poly1305_donna(correct, in, inlen, k);\n\n    return crypto_verify_16(h, correct);\n}\n\nstruct crypto_onetimeauth_poly1305_implementation\n    crypto_onetimeauth_poly1305_donna_implementation = {\n        SODIUM_C99(.onetimeauth =) crypto_onetimeauth_poly1305_donna,\n        SODIUM_C99(.onetimeauth_verify =)\n            crypto_onetimeauth_poly1305_donna_verify,\n        SODIUM_C99(.onetimeauth_init =) crypto_onetimeauth_poly1305_donna_init,\n        SODIUM_C99(.onetimeauth_update =)\n            crypto_onetimeauth_poly1305_donna_update,\n        SODIUM_C99(.onetimeauth_final =) crypto_onetimeauth_poly1305_donna_final\n    };\n"
  },
  {
    "path": "src/libsodium/crypto_onetimeauth/poly1305/donna/poly1305_donna.h",
    "content": "#ifndef poly1305_donna_H\n#define poly1305_donna_H\n\n#include <stddef.h>\n\n#include \"../onetimeauth_poly1305.h\"\n#include \"crypto_onetimeauth_poly1305.h\"\n\nextern struct crypto_onetimeauth_poly1305_implementation\n    crypto_onetimeauth_poly1305_donna_implementation;\n\n#endif /* poly1305_donna_H */\n"
  },
  {
    "path": "src/libsodium/crypto_onetimeauth/poly1305/donna/poly1305_donna32.h",
    "content": "/*\n   poly1305 implementation using 32 bit * 32 bit = 64 bit multiplication\n   and 64 bit addition\n*/\n\n#if defined(_MSC_VER)\n# define POLY1305_NOINLINE __declspec(noinline)\n#elif defined(__clang__) || defined(__GNUC__)\n# define POLY1305_NOINLINE __attribute__((noinline))\n#else\n# define POLY1305_NOINLINE\n#endif\n\n#include \"private/common.h\"\n\n#define poly1305_block_size 16\n\n/* 17 + sizeof(unsigned long long) + 14*sizeof(unsigned long) */\ntypedef struct poly1305_state_internal_t {\n    unsigned long      r[5];\n    unsigned long      h[5];\n    unsigned long      pad[4];\n    unsigned long long leftover;\n    unsigned char      buffer[poly1305_block_size];\n    unsigned char      final;\n} poly1305_state_internal_t;\n\nstatic void\npoly1305_init(poly1305_state_internal_t *st, const unsigned char key[32])\n{\n    /* r &= 0xffffffc0ffffffc0ffffffc0fffffff - wiped after finalization */\n    st->r[0] = (LOAD32_LE(&key[0])) & 0x3ffffff;\n    st->r[1] = (LOAD32_LE(&key[3]) >> 2) & 0x3ffff03;\n    st->r[2] = (LOAD32_LE(&key[6]) >> 4) & 0x3ffc0ff;\n    st->r[3] = (LOAD32_LE(&key[9]) >> 6) & 0x3f03fff;\n    st->r[4] = (LOAD32_LE(&key[12]) >> 8) & 0x00fffff;\n\n    /* h = 0 */\n    st->h[0] = 0;\n    st->h[1] = 0;\n    st->h[2] = 0;\n    st->h[3] = 0;\n    st->h[4] = 0;\n\n    /* save pad for later */\n    st->pad[0] = LOAD32_LE(&key[16]);\n    st->pad[1] = LOAD32_LE(&key[20]);\n    st->pad[2] = LOAD32_LE(&key[24]);\n    st->pad[3] = LOAD32_LE(&key[28]);\n\n    st->leftover = 0;\n    st->final    = 0;\n}\n\nstatic void\npoly1305_blocks(poly1305_state_internal_t *st, const unsigned char *m,\n                unsigned long long bytes)\n{\n    const unsigned long hibit = (st->final) ? 0UL : (1UL << 24); /* 1 << 128 */\n    unsigned long       r0, r1, r2, r3, r4;\n    unsigned long       s1, s2, s3, s4;\n    unsigned long       h0, h1, h2, h3, h4;\n    unsigned long long  d0, d1, d2, d3, d4;\n    unsigned long       c;\n\n    r0 = st->r[0];\n    r1 = st->r[1];\n    r2 = st->r[2];\n    r3 = st->r[3];\n    r4 = st->r[4];\n\n    s1 = r1 * 5;\n    s2 = r2 * 5;\n    s3 = r3 * 5;\n    s4 = r4 * 5;\n\n    h0 = st->h[0];\n    h1 = st->h[1];\n    h2 = st->h[2];\n    h3 = st->h[3];\n    h4 = st->h[4];\n\n    while (bytes >= poly1305_block_size) {\n        /* h += m[i] */\n        h0 += (LOAD32_LE(m + 0)) & 0x3ffffff;\n        h1 += (LOAD32_LE(m + 3) >> 2) & 0x3ffffff;\n        h2 += (LOAD32_LE(m + 6) >> 4) & 0x3ffffff;\n        h3 += (LOAD32_LE(m + 9) >> 6) & 0x3ffffff;\n        h4 += (LOAD32_LE(m + 12) >> 8) | hibit;\n\n        /* h *= r */\n        d0 = ((unsigned long long) h0 * r0) + ((unsigned long long) h1 * s4) +\n             ((unsigned long long) h2 * s3) + ((unsigned long long) h3 * s2) +\n             ((unsigned long long) h4 * s1);\n        d1 = ((unsigned long long) h0 * r1) + ((unsigned long long) h1 * r0) +\n             ((unsigned long long) h2 * s4) + ((unsigned long long) h3 * s3) +\n             ((unsigned long long) h4 * s2);\n        d2 = ((unsigned long long) h0 * r2) + ((unsigned long long) h1 * r1) +\n             ((unsigned long long) h2 * r0) + ((unsigned long long) h3 * s4) +\n             ((unsigned long long) h4 * s3);\n        d3 = ((unsigned long long) h0 * r3) + ((unsigned long long) h1 * r2) +\n             ((unsigned long long) h2 * r1) + ((unsigned long long) h3 * r0) +\n             ((unsigned long long) h4 * s4);\n        d4 = ((unsigned long long) h0 * r4) + ((unsigned long long) h1 * r3) +\n             ((unsigned long long) h2 * r2) + ((unsigned long long) h3 * r1) +\n             ((unsigned long long) h4 * r0);\n\n        /* (partial) h %= p */\n        c  = (unsigned long) (d0 >> 26);\n        h0 = (unsigned long) d0 & 0x3ffffff;\n        d1 += c;\n        c  = (unsigned long) (d1 >> 26);\n        h1 = (unsigned long) d1 & 0x3ffffff;\n        d2 += c;\n        c  = (unsigned long) (d2 >> 26);\n        h2 = (unsigned long) d2 & 0x3ffffff;\n        d3 += c;\n        c  = (unsigned long) (d3 >> 26);\n        h3 = (unsigned long) d3 & 0x3ffffff;\n        d4 += c;\n        c  = (unsigned long) (d4 >> 26);\n        h4 = (unsigned long) d4 & 0x3ffffff;\n        h0 += c * 5;\n        c  = (h0 >> 26);\n        h0 &= 0x3ffffff;\n        h1 += c;\n\n        m += poly1305_block_size;\n        bytes -= poly1305_block_size;\n    }\n\n    st->h[0] = h0;\n    st->h[1] = h1;\n    st->h[2] = h2;\n    st->h[3] = h3;\n    st->h[4] = h4;\n}\n\nstatic POLY1305_NOINLINE void\npoly1305_finish(poly1305_state_internal_t *st, unsigned char mac[16])\n{\n    unsigned long      h0, h1, h2, h3, h4, c;\n    unsigned long      g0, g1, g2, g3, g4;\n    unsigned long long f;\n    unsigned long      mask;\n\n    /* process the remaining block */\n    if (st->leftover) {\n        unsigned long long i = st->leftover;\n\n        st->buffer[i++] = 1;\n        for (; i < poly1305_block_size; i++) {\n            st->buffer[i] = 0;\n        }\n        st->final = 1;\n        poly1305_blocks(st, st->buffer, poly1305_block_size);\n    }\n\n    /* fully carry h */\n    h0 = st->h[0];\n    h1 = st->h[1];\n    h2 = st->h[2];\n    h3 = st->h[3];\n    h4 = st->h[4];\n\n    c  = h1 >> 26;\n    h1 = h1 & 0x3ffffff;\n    h2 += c;\n    c  = h2 >> 26;\n    h2 = h2 & 0x3ffffff;\n    h3 += c;\n    c  = h3 >> 26;\n    h3 = h3 & 0x3ffffff;\n    h4 += c;\n    c  = h4 >> 26;\n    h4 = h4 & 0x3ffffff;\n    h0 += c * 5;\n    c  = h0 >> 26;\n    h0 = h0 & 0x3ffffff;\n    h1 += c;\n\n    /* compute h + -p */\n    g0 = h0 + 5;\n    c  = g0 >> 26;\n    g0 &= 0x3ffffff;\n    g1 = h1 + c;\n    c  = g1 >> 26;\n    g1 &= 0x3ffffff;\n    g2 = h2 + c;\n    c  = g2 >> 26;\n    g2 &= 0x3ffffff;\n    g3 = h3 + c;\n    c  = g3 >> 26;\n    g3 &= 0x3ffffff;\n    g4 = h4 + c - (1UL << 26);\n\n    /* select h if h < p, or h + -p if h >= p */\n    mask = (g4 >> ((sizeof(unsigned long) * 8) - 1)) - 1;\n    g0 &= mask;\n    g1 &= mask;\n    g2 &= mask;\n    g3 &= mask;\n    g4 &= mask;\n    mask = ~mask;\n\n    h0 = (h0 & mask) | g0;\n    h1 = (h1 & mask) | g1;\n    h2 = (h2 & mask) | g2;\n    h3 = (h3 & mask) | g3;\n    h4 = (h4 & mask) | g4;\n\n    /* h = h % (2^128) */\n    h0 = ((h0) | (h1 << 26)) & 0xffffffff;\n    h1 = ((h1 >> 6) | (h2 << 20)) & 0xffffffff;\n    h2 = ((h2 >> 12) | (h3 << 14)) & 0xffffffff;\n    h3 = ((h3 >> 18) | (h4 << 8)) & 0xffffffff;\n\n    /* mac = (h + pad) % (2^128) */\n    f  = (unsigned long long) h0 + st->pad[0];\n    h0 = (unsigned long) f;\n    f  = (unsigned long long) h1 + st->pad[1] + (f >> 32);\n    h1 = (unsigned long) f;\n    f  = (unsigned long long) h2 + st->pad[2] + (f >> 32);\n    h2 = (unsigned long) f;\n    f  = (unsigned long long) h3 + st->pad[3] + (f >> 32);\n    h3 = (unsigned long) f;\n\n    STORE32_LE(mac + 0, (uint32_t) h0);\n    STORE32_LE(mac + 4, (uint32_t) h1);\n    STORE32_LE(mac + 8, (uint32_t) h2);\n    STORE32_LE(mac + 12, (uint32_t) h3);\n\n    /* zero out the state */\n    sodium_memzero((void *) st, sizeof *st);\n}\n"
  },
  {
    "path": "src/libsodium/crypto_onetimeauth/poly1305/donna/poly1305_donna64.h",
    "content": "/*\n   poly1305 implementation using 64 bit * 64 bit = 128 bit multiplication\n   and 128 bit addition\n*/\n\n#include \"private/common.h\"\n\n#define MUL(out, x, y) out = ((uint128_t) x * y)\n#define ADD(out, in) out += in\n#define ADDLO(out, in) out += in\n#define SHR(in, shift) (unsigned long long) (in >> (shift))\n#define LO(in) (unsigned long long) (in)\n\n#if defined(_MSC_VER)\n# define POLY1305_NOINLINE __declspec(noinline)\n#elif defined(__clang__) || defined(__GNUC__)\n# define POLY1305_NOINLINE __attribute__((noinline))\n#else\n# define POLY1305_NOINLINE\n#endif\n\n#define poly1305_block_size 16\n\n/* 17 + sizeof(unsigned long long) + 8*sizeof(unsigned long long) */\ntypedef struct poly1305_state_internal_t {\n    unsigned long long r[3];\n    unsigned long long h[3];\n    unsigned long long pad[2];\n    unsigned long long leftover;\n    unsigned char      buffer[poly1305_block_size];\n    unsigned char      final;\n} poly1305_state_internal_t;\n\nstatic void\npoly1305_init(poly1305_state_internal_t *st, const unsigned char key[32])\n{\n    unsigned long long t0, t1;\n\n    /* r &= 0xffffffc0ffffffc0ffffffc0fffffff */\n    t0 = LOAD64_LE(&key[0]);\n    t1 = LOAD64_LE(&key[8]);\n\n    /* wiped after finalization */\n    st->r[0] = (t0) & 0xffc0fffffff;\n    st->r[1] = ((t0 >> 44) | (t1 << 20)) & 0xfffffc0ffff;\n    st->r[2] = ((t1 >> 24)) & 0x00ffffffc0f;\n\n    /* h = 0 */\n    st->h[0] = 0;\n    st->h[1] = 0;\n    st->h[2] = 0;\n\n    /* save pad for later */\n    st->pad[0] = LOAD64_LE(&key[16]);\n    st->pad[1] = LOAD64_LE(&key[24]);\n\n    st->leftover = 0;\n    st->final    = 0;\n}\n\nstatic void\npoly1305_blocks(poly1305_state_internal_t *st, const unsigned char *m,\n                unsigned long long bytes)\n{\n    const unsigned long long hibit =\n        (st->final) ? 0ULL : (1ULL << 40); /* 1 << 128 */\n    unsigned long long r0, r1, r2;\n    unsigned long long s1, s2;\n    unsigned long long h0, h1, h2;\n    unsigned long long c;\n    uint128_t          d0, d1, d2, d;\n\n    r0 = st->r[0];\n    r1 = st->r[1];\n    r2 = st->r[2];\n\n    h0 = st->h[0];\n    h1 = st->h[1];\n    h2 = st->h[2];\n\n    s1 = r1 * (5 << 2);\n    s2 = r2 * (5 << 2);\n\n    while (bytes >= poly1305_block_size) {\n        unsigned long long t0, t1;\n\n        /* h += m[i] */\n        t0 = LOAD64_LE(&m[0]);\n        t1 = LOAD64_LE(&m[8]);\n\n        h0 += t0 & 0xfffffffffff;\n        h1 += ((t0 >> 44) | (t1 << 20)) & 0xfffffffffff;\n        h2 += (((t1 >> 24)) & 0x3ffffffffff) | hibit;\n\n        /* h *= r */\n        MUL(d0, h0, r0);\n        MUL(d, h1, s2);\n        ADD(d0, d);\n        MUL(d, h2, s1);\n        ADD(d0, d);\n        MUL(d1, h0, r1);\n        MUL(d, h1, r0);\n        ADD(d1, d);\n        MUL(d, h2, s2);\n        ADD(d1, d);\n        MUL(d2, h0, r2);\n        MUL(d, h1, r1);\n        ADD(d2, d);\n        MUL(d, h2, r0);\n        ADD(d2, d);\n\n        /* (partial) h %= p */\n        c  = SHR(d0, 44);\n        h0 = LO(d0) & 0xfffffffffff;\n        ADDLO(d1, c);\n        c  = SHR(d1, 44);\n        h1 = LO(d1) & 0xfffffffffff;\n        ADDLO(d2, c);\n        c  = SHR(d2, 42);\n        h2 = LO(d2) & 0x3ffffffffff;\n        h0 += c * 5;\n        c  = (h0 >> 44);\n        h0 &= 0xfffffffffff;\n        h1 += c;\n\n        m += poly1305_block_size;\n        bytes -= poly1305_block_size;\n    }\n\n    st->h[0] = h0;\n    st->h[1] = h1;\n    st->h[2] = h2;\n}\n\nstatic POLY1305_NOINLINE void\npoly1305_finish(poly1305_state_internal_t *st, unsigned char mac[16])\n{\n    unsigned long long h0, h1, h2, c;\n    unsigned long long g0, g1, g2;\n    unsigned long long t0, t1;\n    unsigned long long mask;\n\n    /* process the remaining block */\n    if (st->leftover) {\n        unsigned long long i = st->leftover;\n\n        st->buffer[i] = 1;\n\n        for (i = i + 1; i < poly1305_block_size; i++) {\n            st->buffer[i] = 0;\n        }\n        st->final = 1;\n        poly1305_blocks(st, st->buffer, poly1305_block_size);\n    }\n\n    /* fully carry h */\n    h0 = st->h[0];\n    h1 = st->h[1];\n    h2 = st->h[2];\n\n    c = h1 >> 44;\n    h1 &= 0xfffffffffff;\n    h2 += c;\n    c = h2 >> 42;\n    h2 &= 0x3ffffffffff;\n    h0 += c * 5;\n    c = h0 >> 44;\n    h0 &= 0xfffffffffff;\n    h1 += c;\n    c = h1 >> 44;\n    h1 &= 0xfffffffffff;\n    h2 += c;\n    c = h2 >> 42;\n    h2 &= 0x3ffffffffff;\n    h0 += c * 5;\n    c = h0 >> 44;\n    h0 &= 0xfffffffffff;\n    h1 += c;\n\n    /* compute h + -p */\n    g0 = h0 + 5;\n    c  = g0 >> 44;\n    g0 &= 0xfffffffffff;\n    g1 = h1 + c;\n    c  = g1 >> 44;\n    g1 &= 0xfffffffffff;\n    g2 = h2 + c - (1ULL << 42);\n\n    /* select h if h < p, or h + -p if h >= p */\n    mask = (g2 >> ((sizeof(unsigned long long) * 8) - 1)) - 1;\n    g0   &= mask;\n    g1   &= mask;\n    g2   &= mask;\n    mask =  ~mask;\n    h0   =  (h0 & mask) | g0;\n    h1   =  (h1 & mask) | g1;\n    h2   =  (h2 & mask) | g2;\n\n    /* h = (h + pad) */\n    t0 = st->pad[0];\n    t1 = st->pad[1];\n\n    h0 += ((t0) & 0xfffffffffff);\n    c = (h0 >> 44);\n    h0 &= 0xfffffffffff;\n    h1 += (((t0 >> 44) | (t1 << 20)) & 0xfffffffffff) + c;\n    c = (h1 >> 44);\n    h1 &= 0xfffffffffff;\n    h2 += (((t1 >> 24)) & 0x3ffffffffff) + c;\n    h2 &= 0x3ffffffffff;\n\n    /* mac = h % (2^128) */\n    h0 = (h0) | (h1 << 44);\n    h1 = (h1 >> 20) | (h2 << 24);\n\n    STORE64_LE(&mac[0], h0);\n    STORE64_LE(&mac[8], h1);\n\n    /* zero out the state */\n    sodium_memzero((void *) st, sizeof *st);\n}\n"
  },
  {
    "path": "src/libsodium/crypto_onetimeauth/poly1305/onetimeauth_poly1305.c",
    "content": "\n#include \"onetimeauth_poly1305.h\"\n#include \"crypto_onetimeauth_poly1305.h\"\n#include \"private/common.h\"\n#include \"private/implementations.h\"\n#include \"randombytes.h\"\n#include \"runtime.h\"\n\n#include \"donna/poly1305_donna.h\"\n#if defined(HAVE_TI_MODE) && defined(HAVE_EMMINTRIN_H)\n# include \"sse2/poly1305_sse2.h\"\n#endif\n\nstatic const crypto_onetimeauth_poly1305_implementation *implementation =\n    &crypto_onetimeauth_poly1305_donna_implementation;\n\nint\ncrypto_onetimeauth_poly1305(unsigned char *out, const unsigned char *in,\n                            unsigned long long inlen, const unsigned char *k)\n{\n    return implementation->onetimeauth(out, in, inlen, k);\n}\n\nint\ncrypto_onetimeauth_poly1305_verify(const unsigned char *h,\n                                   const unsigned char *in,\n                                   unsigned long long   inlen,\n                                   const unsigned char *k)\n{\n    return implementation->onetimeauth_verify(h, in, inlen, k);\n}\n\nint\ncrypto_onetimeauth_poly1305_init(crypto_onetimeauth_poly1305_state *state,\n                                 const unsigned char *key)\n{\n    return implementation->onetimeauth_init(state, key);\n}\n\nint\ncrypto_onetimeauth_poly1305_update(crypto_onetimeauth_poly1305_state *state,\n                                   const unsigned char *in,\n                                   unsigned long long inlen)\n{\n    return implementation->onetimeauth_update(state, in, inlen);\n}\n\nint\ncrypto_onetimeauth_poly1305_final(crypto_onetimeauth_poly1305_state *state,\n                                  unsigned char *out)\n{\n    return implementation->onetimeauth_final(state, out);\n}\n\nsize_t\ncrypto_onetimeauth_poly1305_bytes(void)\n{\n    return crypto_onetimeauth_poly1305_BYTES;\n}\n\nsize_t\ncrypto_onetimeauth_poly1305_keybytes(void)\n{\n    return crypto_onetimeauth_poly1305_KEYBYTES;\n}\n\nsize_t\ncrypto_onetimeauth_poly1305_statebytes(void)\n{\n    return sizeof(crypto_onetimeauth_poly1305_state);\n}\n\nvoid\ncrypto_onetimeauth_poly1305_keygen(\n    unsigned char k[crypto_onetimeauth_poly1305_KEYBYTES])\n{\n    randombytes_buf(k, crypto_onetimeauth_poly1305_KEYBYTES);\n}\n\nint\n_crypto_onetimeauth_poly1305_pick_best_implementation(void)\n{\n    implementation = &crypto_onetimeauth_poly1305_donna_implementation;\n#if defined(HAVE_TI_MODE) && defined(HAVE_EMMINTRIN_H)\n    if (sodium_runtime_has_sse2()) {\n        implementation = &crypto_onetimeauth_poly1305_sse2_implementation;\n    }\n#endif\n    return 0;\n}\n"
  },
  {
    "path": "src/libsodium/crypto_onetimeauth/poly1305/onetimeauth_poly1305.h",
    "content": "\n#ifndef onetimeauth_poly1305_H\n#define onetimeauth_poly1305_H\n\n#include \"crypto_onetimeauth_poly1305.h\"\n\ntypedef struct crypto_onetimeauth_poly1305_implementation {\n    int (*onetimeauth)(unsigned char *out, const unsigned char *in,\n                       unsigned long long inlen, const unsigned char *k);\n    int (*onetimeauth_verify)(const unsigned char *h, const unsigned char *in,\n                              unsigned long long inlen, const unsigned char *k);\n    int (*onetimeauth_init)(crypto_onetimeauth_poly1305_state *state,\n                            const unsigned char *              key);\n    int (*onetimeauth_update)(crypto_onetimeauth_poly1305_state *state,\n                              const unsigned char *              in,\n                              unsigned long long                 inlen);\n    int (*onetimeauth_final)(crypto_onetimeauth_poly1305_state *state,\n                             unsigned char *                    out);\n} crypto_onetimeauth_poly1305_implementation;\n\n#endif\n"
  },
  {
    "path": "src/libsodium/crypto_onetimeauth/poly1305/sse2/poly1305_sse2.c",
    "content": "\n#include <stdint.h>\n#include <string.h>\n\n#include \"../onetimeauth_poly1305.h\"\n#include \"crypto_verify_16.h\"\n#include \"poly1305_sse2.h\"\n#include \"private/common.h\"\n#include \"utils.h\"\n\n#if defined(HAVE_TI_MODE) && defined(HAVE_EMMINTRIN_H)\n\n# ifdef __clang__\n#  pragma clang attribute push(__attribute__((target(\"sse2\"))), apply_to = function)\n# elif defined(__GNUC__)\n#  pragma GCC target(\"sse2\")\n# endif\n\n# include <emmintrin.h>\n# include \"private/sse2_64_32.h\"\n\ntypedef __m128i xmmi;\n\n# if defined(_MSC_VER)\n#  define POLY1305_NOINLINE __declspec(noinline)\n# elif defined(__clang__) || defined(__GNUC__)\n#  define POLY1305_NOINLINE __attribute__((noinline))\n# else\n#  define POLY1305_NOINLINE\n# endif\n\n# define poly1305_block_size 32\n\nenum poly1305_state_flags_t {\n    poly1305_started       = 1,\n    poly1305_final_shift8  = 4,\n    poly1305_final_shift16 = 8,\n    poly1305_final_r2_r    = 16, /* use [r^2,r] for the final block */\n    poly1305_final_r_1     = 32  /* use [r,1] for the final block */\n};\n\ntypedef struct poly1305_state_internal_t {\n    union {\n        uint64_t h[3];\n        uint32_t hh[10];\n    } H;                                            /*  40 bytes */\n    uint32_t           R[5];                        /*  20 bytes */\n    uint32_t           R2[5];                       /*  20 bytes */\n    uint32_t           R4[5];                       /*  20 bytes */\n    uint64_t           pad[2];                      /*  16 bytes */\n    uint64_t           flags;                       /*   8 bytes */\n    unsigned long long leftover;                    /*   8 bytes */\n    unsigned char      buffer[poly1305_block_size]; /*  32 bytes */\n} poly1305_state_internal_t;                        /* 164 bytes total */\n\n/*\n * _mm_loadl_epi64() is turned into a simple MOVQ. So, unaligned accesses are\n * totally fine, even though this intrinsic requires a __m128i* input.\n * This confuses static analysis, so force alignment, only in debug mode.\n */\n# ifdef DEBUG\nstatic xmmi\n_fakealign_mm_loadl_epi64(const void *m)\n{\n    xmmi tmp;\n    memcpy(&tmp, m, 8);\n\n    return _mm_loadl_epi64(&tmp);\n}\n# define _mm_loadl_epi64(X) _fakealign_mm_loadl_epi64(X)\n#endif\n\n/* copy 0-31 bytes */\nstatic inline void\npoly1305_block_copy31(unsigned char *dst, const unsigned char *src,\n                      unsigned long long bytes)\n{\n    if (bytes & 16) {\n        _mm_store_si128((xmmi *) (void *) dst,\n                        _mm_loadu_si128((const xmmi *) (const void *) src));\n        src += 16;\n        dst += 16;\n    }\n    if (bytes & 8) {\n        memcpy(dst, src, 8);\n        src += 8;\n        dst += 8;\n    }\n    if (bytes & 4) {\n        memcpy(dst, src, 4);\n        src += 4;\n        dst += 4;\n    }\n    if (bytes & 2) {\n        memcpy(dst, src, 2);\n        src += 2;\n        dst += 2;\n    }\n    if (bytes & 1) {\n        *dst = *src;\n    }\n}\n\nstatic POLY1305_NOINLINE void\npoly1305_init_ext(poly1305_state_internal_t *st, const unsigned char key[32],\n                  unsigned long long bytes)\n{\n    uint32_t          *R;\n    uint128_t          d[3];\n    uint64_t           r0, r1, r2;\n    uint64_t           rt0, rt1, rt2, st2, c;\n    uint64_t           t0, t1;\n    unsigned long long i;\n\n    if (!bytes) {\n        bytes = ~(unsigned long long) 0;\n    }\n    /* H = 0 */\n    _mm_storeu_si128((xmmi *) (void *) &st->H.hh[0], _mm_setzero_si128());\n    _mm_storeu_si128((xmmi *) (void *) &st->H.hh[4], _mm_setzero_si128());\n    _mm_storeu_si128((xmmi *) (void *) &st->H.hh[8], _mm_setzero_si128());\n\n    /* clamp key */\n    memcpy(&t0, key, 8);\n    memcpy(&t1, key + 8, 8);\n    r0 = t0 & 0xffc0fffffff;\n    t0 >>= 44;\n    t0 |= t1 << 20;\n    r1 = t0 & 0xfffffc0ffff;\n    t1 >>= 24;\n    r2 = t1 & 0x00ffffffc0f;\n\n    /* r^1 */\n    R    = st->R;\n    R[0] = (uint32_t)(r0) &0x3ffffff;\n    R[1] = (uint32_t)((r0 >> 26) | (r1 << 18)) & 0x3ffffff;\n    R[2] = (uint32_t)((r1 >> 8)) & 0x3ffffff;\n    R[3] = (uint32_t)((r1 >> 34) | (r2 << 10)) & 0x3ffffff;\n    R[4] = (uint32_t)((r2 >> 16));\n\n    /* save pad */\n    memcpy(&st->pad[0], key + 16, 8);\n    memcpy(&st->pad[1], key + 24, 8);\n\n    rt0 = r0;\n    rt1 = r1;\n    rt2 = r2;\n\n    /* r^2, r^4 */\n    for (i = 0; i < 2; i++) {\n        if (i == 0) {\n            R = st->R2;\n            if (bytes <= 16) {\n                break;\n            }\n        } else if (i == 1) {\n            R = st->R4;\n            if (bytes < 96) {\n                break;\n            }\n        }\n        st2 = rt2 * (5 << 2);\n\n        d[0] = ((uint128_t) rt0 * rt0) + ((uint128_t)(rt1 * 2) * st2);\n        d[1] = ((uint128_t) rt2 * st2) + ((uint128_t)(rt0 * 2) * rt1);\n        d[2] = ((uint128_t) rt1 * rt1) + ((uint128_t)(rt2 * 2) * rt0);\n\n        rt0 = (uint64_t) d[0] & 0xfffffffffff;\n        c   = (uint64_t)(d[0] >> 44);\n        d[1] += c;\n\n        rt1 = (uint64_t) d[1] & 0xfffffffffff;\n        c   = (uint64_t)(d[1] >> 44);\n        d[2] += c;\n\n        rt2 = (uint64_t) d[2] & 0x3ffffffffff;\n        c   = (uint64_t)(d[2] >> 42);\n        rt0 += c * 5;\n        c   = (rt0 >> 44);\n        rt0 = rt0 & 0xfffffffffff;\n        rt1 += c;\n        c   = (rt1 >> 44);\n        rt1 = rt1 & 0xfffffffffff;\n        rt2 += c; /* even if rt2 overflows, it will still fit in rp4 safely, and\n                     is safe to multiply with */\n\n        R[0] = (uint32_t)(rt0) &0x3ffffff;\n        R[1] = (uint32_t)((rt0 >> 26) | (rt1 << 18)) & 0x3ffffff;\n        R[2] = (uint32_t)((rt1 >> 8)) & 0x3ffffff;\n        R[3] = (uint32_t)((rt1 >> 34) | (rt2 << 10)) & 0x3ffffff;\n        R[4] = (uint32_t)((rt2 >> 16));\n    }\n    st->flags    = 0;\n    st->leftover = 0U;\n}\n\nstatic volatile uint64_t optblocker_u64;\n\nstatic POLY1305_NOINLINE void\npoly1305_blocks(poly1305_state_internal_t *st, const unsigned char *m,\n                unsigned long long bytes)\n{\n    CRYPTO_ALIGN(64)\n    xmmi HIBIT =\n        _mm_shuffle_epi32(_mm_cvtsi32_si128(1 << 24), _MM_SHUFFLE(1, 0, 1, 0));\n    const xmmi MMASK = _mm_shuffle_epi32(_mm_cvtsi32_si128((1 << 26) - 1),\n                                         _MM_SHUFFLE(1, 0, 1, 0));\n    const xmmi FIVE =\n        _mm_shuffle_epi32(_mm_cvtsi32_si128(5), _MM_SHUFFLE(1, 0, 1, 0));\n    xmmi H0, H1, H2, H3, H4;\n    xmmi T0, T1, T2, T3, T4, T5, T6, T7, T8;\n    xmmi M0, M1, M2, M3, M4;\n    xmmi M5, M6, M7, M8;\n    xmmi C1, C2;\n    xmmi R20, R21, R22, R23, R24, S21, S22, S23, S24;\n    xmmi R40, R41, R42, R43, R44, S41, S42, S43, S44;\n\n    if (st->flags & poly1305_final_shift8) {\n        HIBIT = _mm_srli_si128(HIBIT, 8);\n    }\n    if (st->flags & poly1305_final_shift16) {\n        HIBIT = _mm_setzero_si128();\n    }\n    if (!(st->flags & poly1305_started)) {\n        /* H = [Mx,My] */\n        T5 = _mm_unpacklo_epi64(\n            _mm_loadl_epi64((const xmmi *) (const void *) (m + 0)),\n            _mm_loadl_epi64((const xmmi *) (const void *) (m + 16)));\n        T6 = _mm_unpacklo_epi64(\n            _mm_loadl_epi64((const xmmi *) (const void *) (m + 8)),\n            _mm_loadl_epi64((const xmmi *) (const void *) (m + 24)));\n        H0 = _mm_and_si128(MMASK, T5);\n        H1 = _mm_and_si128(MMASK, _mm_srli_epi64(T5, 26));\n        T5 = _mm_or_si128(_mm_srli_epi64(T5, 52), _mm_slli_epi64(T6, 12));\n        H2 = _mm_and_si128(MMASK, T5);\n        H3 = _mm_and_si128(MMASK, _mm_srli_epi64(T5, 26));\n        H4 = _mm_srli_epi64(T6, 40);\n        H4 = _mm_or_si128(H4, HIBIT);\n        m += 32;\n        bytes -= 32;\n        st->flags |= poly1305_started;\n    } else {\n        T0 = _mm_loadu_si128((const xmmi *) (const void *) &st->H.hh[0]);\n        T1 = _mm_loadu_si128((const xmmi *) (const void *) &st->H.hh[4]);\n        T2 = _mm_loadu_si128((const xmmi *) (const void *) &st->H.hh[8]);\n        H0 = _mm_shuffle_epi32(T0, _MM_SHUFFLE(1, 1, 0, 0));\n        H1 = _mm_shuffle_epi32(T0, _MM_SHUFFLE(3, 3, 2, 2));\n        H2 = _mm_shuffle_epi32(T1, _MM_SHUFFLE(1, 1, 0, 0));\n        H3 = _mm_shuffle_epi32(T1, _MM_SHUFFLE(3, 3, 2, 2));\n        H4 = _mm_shuffle_epi32(T2, _MM_SHUFFLE(1, 1, 0, 0));\n    }\n    if (st->flags & (poly1305_final_r2_r | poly1305_final_r_1)) {\n        if (st->flags & poly1305_final_r2_r) {\n            /* use [r^2, r] */\n            T2  = _mm_loadu_si128((const xmmi *) (const void *) &st->R[0]);\n            T3  = _mm_cvtsi32_si128(st->R[4]);\n            T0  = _mm_loadu_si128((const xmmi *) (const void *) &st->R2[0]);\n            T1  = _mm_cvtsi32_si128(st->R2[4]);\n            T4  = _mm_unpacklo_epi32(T0, T2);\n            T5  = _mm_unpackhi_epi32(T0, T2);\n            R24 = _mm_unpacklo_epi64(T1, T3);\n        } else {\n            /* use [r^1, 1] */\n            T0  = _mm_loadu_si128((const xmmi *) (const void *) &st->R[0]);\n            T1  = _mm_cvtsi32_si128(st->R[4]);\n            T2  = _mm_cvtsi32_si128(1);\n            T4  = _mm_unpacklo_epi32(T0, T2);\n            T5  = _mm_unpackhi_epi32(T0, T2);\n            R24 = T1;\n        }\n        R20 = _mm_shuffle_epi32(T4, _MM_SHUFFLE(1, 1, 0, 0));\n        R21 = _mm_shuffle_epi32(T4, _MM_SHUFFLE(3, 3, 2, 2));\n        R22 = _mm_shuffle_epi32(T5, _MM_SHUFFLE(1, 1, 0, 0));\n        R23 = _mm_shuffle_epi32(T5, _MM_SHUFFLE(3, 3, 2, 2));\n    } else {\n        /* use [r^2, r^2] */\n        T0  = _mm_loadu_si128((const xmmi *) (const void *) &st->R2[0]);\n        T1  = _mm_cvtsi32_si128(st->R2[4]);\n        R20 = _mm_shuffle_epi32(T0, _MM_SHUFFLE(0, 0, 0, 0));\n        R21 = _mm_shuffle_epi32(T0, _MM_SHUFFLE(1, 1, 1, 1));\n        R22 = _mm_shuffle_epi32(T0, _MM_SHUFFLE(2, 2, 2, 2));\n        R23 = _mm_shuffle_epi32(T0, _MM_SHUFFLE(3, 3, 3, 3));\n        R24 = _mm_shuffle_epi32(T1, _MM_SHUFFLE(0, 0, 0, 0));\n    }\n    S21 = _mm_mul_epu32(R21, FIVE);\n    S22 = _mm_mul_epu32(R22, FIVE);\n    S23 = _mm_mul_epu32(R23, FIVE);\n    S24 = _mm_mul_epu32(R24, FIVE);\n\n    if (bytes >= 64) {\n        T0  = _mm_loadu_si128((const xmmi *) (const void *) &st->R4[0]);\n        T1  = _mm_cvtsi32_si128(st->R4[4]);\n        R40 = _mm_shuffle_epi32(T0, _MM_SHUFFLE(0, 0, 0, 0));\n        R41 = _mm_shuffle_epi32(T0, _MM_SHUFFLE(1, 1, 1, 1));\n        R42 = _mm_shuffle_epi32(T0, _MM_SHUFFLE(2, 2, 2, 2));\n        R43 = _mm_shuffle_epi32(T0, _MM_SHUFFLE(3, 3, 3, 3));\n        R44 = _mm_shuffle_epi32(T1, _MM_SHUFFLE(0, 0, 0, 0));\n        S41 = _mm_mul_epu32(R41, FIVE);\n        S42 = _mm_mul_epu32(R42, FIVE);\n        S43 = _mm_mul_epu32(R43, FIVE);\n        S44 = _mm_mul_epu32(R44, FIVE);\n\n        while (bytes >= 64) {\n            xmmi v00, v01, v02, v03, v04;\n            xmmi v10, v11, v12, v13, v14;\n            xmmi v20, v21, v22, v23, v24;\n            xmmi v30, v31, v32, v33, v34;\n            xmmi v40, v41, v42, v43, v44;\n            xmmi T14, T15;\n\n            /* H *= [r^4,r^4], preload [Mx,My] */\n            T15 = S42;\n            T0  = H4;\n            T0  = _mm_mul_epu32(T0, S41);\n            v01 = H3;\n            v01 = _mm_mul_epu32(v01, T15);\n            T14 = S43;\n            T1  = H4;\n            T1  = _mm_mul_epu32(T1, T15);\n            v11 = H3;\n            v11 = _mm_mul_epu32(v11, T14);\n            T2  = H4;\n            T2  = _mm_mul_epu32(T2, T14);\n            T0  = _mm_add_epi64(T0, v01);\n            T15 = S44;\n            v02 = H2;\n            v02 = _mm_mul_epu32(v02, T14);\n            T3  = H4;\n            T3  = _mm_mul_epu32(T3, T15);\n            T1  = _mm_add_epi64(T1, v11);\n            v03 = H1;\n            v03 = _mm_mul_epu32(v03, T15);\n            v12 = H2;\n            v12 = _mm_mul_epu32(v12, T15);\n            T0  = _mm_add_epi64(T0, v02);\n            T14 = R40;\n            v21 = H3;\n            v21 = _mm_mul_epu32(v21, T15);\n            v31 = H3;\n            v31 = _mm_mul_epu32(v31, T14);\n            T0  = _mm_add_epi64(T0, v03);\n            T4  = H4;\n            T4  = _mm_mul_epu32(T4, T14);\n            T1  = _mm_add_epi64(T1, v12);\n            v04 = H0;\n            v04 = _mm_mul_epu32(v04, T14);\n            T2  = _mm_add_epi64(T2, v21);\n            v13 = H1;\n            v13 = _mm_mul_epu32(v13, T14);\n            T3  = _mm_add_epi64(T3, v31);\n            T15 = R41;\n            v22 = H2;\n            v22 = _mm_mul_epu32(v22, T14);\n            v32 = H2;\n            v32 = _mm_mul_epu32(v32, T15);\n            T0  = _mm_add_epi64(T0, v04);\n            v41 = H3;\n            v41 = _mm_mul_epu32(v41, T15);\n            T1  = _mm_add_epi64(T1, v13);\n            v14 = H0;\n            v14 = _mm_mul_epu32(v14, T15);\n            T2  = _mm_add_epi64(T2, v22);\n            T14 = R42;\n            T5  = _mm_unpacklo_epi64(\n                _mm_loadl_epi64((const xmmi *) (const void *) (m + 0)),\n                _mm_loadl_epi64((const xmmi *) (const void *) (m + 16)));\n            v23 = H1;\n            v23 = _mm_mul_epu32(v23, T15);\n            T3  = _mm_add_epi64(T3, v32);\n            v33 = H1;\n            v33 = _mm_mul_epu32(v33, T14);\n            T4  = _mm_add_epi64(T4, v41);\n            v42 = H2;\n            v42 = _mm_mul_epu32(v42, T14);\n            T1  = _mm_add_epi64(T1, v14);\n            T15 = R43;\n            T6  = _mm_unpacklo_epi64(\n                _mm_loadl_epi64((const xmmi *) (const void *) (m + 8)),\n                _mm_loadl_epi64((const xmmi *) (const void *) (m + 24)));\n            v24 = H0;\n            v24 = _mm_mul_epu32(v24, T14);\n            T2  = _mm_add_epi64(T2, v23);\n            v34 = H0;\n            v34 = _mm_mul_epu32(v34, T15);\n            T3  = _mm_add_epi64(T3, v33);\n            M0  = _mm_and_si128(MMASK, T5);\n            v43 = H1;\n            v43 = _mm_mul_epu32(v43, T15);\n            T4  = _mm_add_epi64(T4, v42);\n            M1  = _mm_and_si128(MMASK, _mm_srli_epi64(T5, 26));\n            v44 = H0;\n            v44 = _mm_mul_epu32(v44, R44);\n            T2  = _mm_add_epi64(T2, v24);\n            T5  = _mm_or_si128(_mm_srli_epi64(T5, 52), _mm_slli_epi64(T6, 12));\n            T3  = _mm_add_epi64(T3, v34);\n            M3  = _mm_and_si128(MMASK, _mm_srli_epi64(T6, 14));\n            T4  = _mm_add_epi64(T4, v43);\n            M2  = _mm_and_si128(MMASK, T5);\n            T4  = _mm_add_epi64(T4, v44);\n            M4  = _mm_or_si128(_mm_srli_epi64(T6, 40), HIBIT);\n\n            /* H += [Mx',My'] */\n            T5 = _mm_loadu_si128((const xmmi *) (const void *) (m + 32));\n            T6 = _mm_loadu_si128((const xmmi *) (const void *) (m + 48));\n            T7 = _mm_unpacklo_epi32(T5, T6);\n            T8 = _mm_unpackhi_epi32(T5, T6);\n            M5 = _mm_unpacklo_epi32(T7, _mm_setzero_si128());\n            M6 = _mm_unpackhi_epi32(T7, _mm_setzero_si128());\n            M7 = _mm_unpacklo_epi32(T8, _mm_setzero_si128());\n            M8 = _mm_unpackhi_epi32(T8, _mm_setzero_si128());\n            M6 = _mm_slli_epi64(M6, 6);\n            M7 = _mm_slli_epi64(M7, 12);\n            M8 = _mm_slli_epi64(M8, 18);\n            T0 = _mm_add_epi64(T0, M5);\n            T1 = _mm_add_epi64(T1, M6);\n            T2 = _mm_add_epi64(T2, M7);\n            T3 = _mm_add_epi64(T3, M8);\n            T4 = _mm_add_epi64(T4, HIBIT);\n\n            /* H += [Mx,My]*[r^2,r^2] */\n            T15 = S22;\n            v00 = M4;\n            v00 = _mm_mul_epu32(v00, S21);\n            v01 = M3;\n            v01 = _mm_mul_epu32(v01, T15);\n            T14 = S23;\n            v10 = M4;\n            v10 = _mm_mul_epu32(v10, T15);\n            v11 = M3;\n            v11 = _mm_mul_epu32(v11, T14);\n            T0  = _mm_add_epi64(T0, v00);\n            v20 = M4;\n            v20 = _mm_mul_epu32(v20, T14);\n            T0  = _mm_add_epi64(T0, v01);\n            T15 = S24;\n            v02 = M2;\n            v02 = _mm_mul_epu32(v02, T14);\n            T1  = _mm_add_epi64(T1, v10);\n            v30 = M4;\n            v30 = _mm_mul_epu32(v30, T15);\n            T1  = _mm_add_epi64(T1, v11);\n            v03 = M1;\n            v03 = _mm_mul_epu32(v03, T15);\n            T2  = _mm_add_epi64(T2, v20);\n            v12 = M2;\n            v12 = _mm_mul_epu32(v12, T15);\n            T0  = _mm_add_epi64(T0, v02);\n            T14 = R20;\n            v21 = M3;\n            v21 = _mm_mul_epu32(v21, T15);\n            T3  = _mm_add_epi64(T3, v30);\n            v31 = M3;\n            v31 = _mm_mul_epu32(v31, T14);\n            T0  = _mm_add_epi64(T0, v03);\n            v40 = M4;\n            v40 = _mm_mul_epu32(v40, T14);\n            T1  = _mm_add_epi64(T1, v12);\n            v04 = M0;\n            v04 = _mm_mul_epu32(v04, T14);\n            T2  = _mm_add_epi64(T2, v21);\n            v13 = M1;\n            v13 = _mm_mul_epu32(v13, T14);\n            T3  = _mm_add_epi64(T3, v31);\n            T15 = R21;\n            v22 = M2;\n            v22 = _mm_mul_epu32(v22, T14);\n            T4  = _mm_add_epi64(T4, v40);\n            v32 = M2;\n            v32 = _mm_mul_epu32(v32, T15);\n            T0  = _mm_add_epi64(T0, v04);\n            v41 = M3;\n            v41 = _mm_mul_epu32(v41, T15);\n            T1  = _mm_add_epi64(T1, v13);\n            v14 = M0;\n            v14 = _mm_mul_epu32(v14, T15);\n            T2  = _mm_add_epi64(T2, v22);\n            T14 = R22;\n            v23 = M1;\n            v23 = _mm_mul_epu32(v23, T15);\n            T3  = _mm_add_epi64(T3, v32);\n            v33 = M1;\n            v33 = _mm_mul_epu32(v33, T14);\n            T4  = _mm_add_epi64(T4, v41);\n            v42 = M2;\n            v42 = _mm_mul_epu32(v42, T14);\n            T1  = _mm_add_epi64(T1, v14);\n            T15 = R23;\n            v24 = M0;\n            v24 = _mm_mul_epu32(v24, T14);\n            T2  = _mm_add_epi64(T2, v23);\n            v34 = M0;\n            v34 = _mm_mul_epu32(v34, T15);\n            T3  = _mm_add_epi64(T3, v33);\n            v43 = M1;\n            v43 = _mm_mul_epu32(v43, T15);\n            T4  = _mm_add_epi64(T4, v42);\n            v44 = M0;\n            v44 = _mm_mul_epu32(v44, R24);\n            T2  = _mm_add_epi64(T2, v24);\n            T3  = _mm_add_epi64(T3, v34);\n            T4  = _mm_add_epi64(T4, v43);\n            T4  = _mm_add_epi64(T4, v44);\n\n            /* reduce */\n            C1 = _mm_srli_epi64(T0, 26);\n            C2 = _mm_srli_epi64(T3, 26);\n            T0 = _mm_and_si128(T0, MMASK);\n            T3 = _mm_and_si128(T3, MMASK);\n            T1 = _mm_add_epi64(T1, C1);\n            T4 = _mm_add_epi64(T4, C2);\n            C1 = _mm_srli_epi64(T1, 26);\n            C2 = _mm_srli_epi64(T4, 26);\n            T1 = _mm_and_si128(T1, MMASK);\n            T4 = _mm_and_si128(T4, MMASK);\n            T2 = _mm_add_epi64(T2, C1);\n            T0 = _mm_add_epi64(T0, _mm_mul_epu32(C2, FIVE));\n            C1 = _mm_srli_epi64(T2, 26);\n            C2 = _mm_srli_epi64(T0, 26);\n            T2 = _mm_and_si128(T2, MMASK);\n            T0 = _mm_and_si128(T0, MMASK);\n            T3 = _mm_add_epi64(T3, C1);\n            T1 = _mm_add_epi64(T1, C2);\n            C1 = _mm_srli_epi64(T3, 26);\n            T3 = _mm_and_si128(T3, MMASK);\n            T4 = _mm_add_epi64(T4, C1);\n\n            /* Final: H = (H*[r^4,r^4] + [Mx,My]*[r^2,r^2] + [Mx',My']) */\n            H0 = T0;\n            H1 = T1;\n            H2 = T2;\n            H3 = T3;\n            H4 = T4;\n\n            m += 64;\n            bytes -= 64;\n        }\n    }\n\n    if (bytes >= 32) {\n        xmmi v01, v02, v03, v04;\n        xmmi v11, v12, v13, v14;\n        xmmi v21, v22, v23, v24;\n        xmmi v31, v32, v33, v34;\n        xmmi v41, v42, v43, v44;\n        xmmi T14, T15;\n\n        /* H *= [r^2,r^2] */\n        T15 = S22;\n        T0  = H4;\n        T0  = _mm_mul_epu32(T0, S21);\n        v01 = H3;\n        v01 = _mm_mul_epu32(v01, T15);\n        T14 = S23;\n        T1  = H4;\n        T1  = _mm_mul_epu32(T1, T15);\n        v11 = H3;\n        v11 = _mm_mul_epu32(v11, T14);\n        T2  = H4;\n        T2  = _mm_mul_epu32(T2, T14);\n        T0  = _mm_add_epi64(T0, v01);\n        T15 = S24;\n        v02 = H2;\n        v02 = _mm_mul_epu32(v02, T14);\n        T3  = H4;\n        T3  = _mm_mul_epu32(T3, T15);\n        T1  = _mm_add_epi64(T1, v11);\n        v03 = H1;\n        v03 = _mm_mul_epu32(v03, T15);\n        v12 = H2;\n        v12 = _mm_mul_epu32(v12, T15);\n        T0  = _mm_add_epi64(T0, v02);\n        T14 = R20;\n        v21 = H3;\n        v21 = _mm_mul_epu32(v21, T15);\n        v31 = H3;\n        v31 = _mm_mul_epu32(v31, T14);\n        T0  = _mm_add_epi64(T0, v03);\n        T4  = H4;\n        T4  = _mm_mul_epu32(T4, T14);\n        T1  = _mm_add_epi64(T1, v12);\n        v04 = H0;\n        v04 = _mm_mul_epu32(v04, T14);\n        T2  = _mm_add_epi64(T2, v21);\n        v13 = H1;\n        v13 = _mm_mul_epu32(v13, T14);\n        T3  = _mm_add_epi64(T3, v31);\n        T15 = R21;\n        v22 = H2;\n        v22 = _mm_mul_epu32(v22, T14);\n        v32 = H2;\n        v32 = _mm_mul_epu32(v32, T15);\n        T0  = _mm_add_epi64(T0, v04);\n        v41 = H3;\n        v41 = _mm_mul_epu32(v41, T15);\n        T1  = _mm_add_epi64(T1, v13);\n        v14 = H0;\n        v14 = _mm_mul_epu32(v14, T15);\n        T2  = _mm_add_epi64(T2, v22);\n        T14 = R22;\n        v23 = H1;\n        v23 = _mm_mul_epu32(v23, T15);\n        T3  = _mm_add_epi64(T3, v32);\n        v33 = H1;\n        v33 = _mm_mul_epu32(v33, T14);\n        T4  = _mm_add_epi64(T4, v41);\n        v42 = H2;\n        v42 = _mm_mul_epu32(v42, T14);\n        T1  = _mm_add_epi64(T1, v14);\n        T15 = R23;\n        v24 = H0;\n        v24 = _mm_mul_epu32(v24, T14);\n        T2  = _mm_add_epi64(T2, v23);\n        v34 = H0;\n        v34 = _mm_mul_epu32(v34, T15);\n        T3  = _mm_add_epi64(T3, v33);\n        v43 = H1;\n        v43 = _mm_mul_epu32(v43, T15);\n        T4  = _mm_add_epi64(T4, v42);\n        v44 = H0;\n        v44 = _mm_mul_epu32(v44, R24);\n        T2  = _mm_add_epi64(T2, v24);\n        T3  = _mm_add_epi64(T3, v34);\n        T4  = _mm_add_epi64(T4, v43);\n        T4  = _mm_add_epi64(T4, v44);\n\n        /* H += [Mx,My] */\n        if (m) {\n            T5 = _mm_loadu_si128((const xmmi *) (const void *) (m + 0));\n            T6 = _mm_loadu_si128((const xmmi *) (const void *) (m + 16));\n            T7 = _mm_unpacklo_epi32(T5, T6);\n            T8 = _mm_unpackhi_epi32(T5, T6);\n            M0 = _mm_unpacklo_epi32(T7, _mm_setzero_si128());\n            M1 = _mm_unpackhi_epi32(T7, _mm_setzero_si128());\n            M2 = _mm_unpacklo_epi32(T8, _mm_setzero_si128());\n            M3 = _mm_unpackhi_epi32(T8, _mm_setzero_si128());\n            M1 = _mm_slli_epi64(M1, 6);\n            M2 = _mm_slli_epi64(M2, 12);\n            M3 = _mm_slli_epi64(M3, 18);\n            T0 = _mm_add_epi64(T0, M0);\n            T1 = _mm_add_epi64(T1, M1);\n            T2 = _mm_add_epi64(T2, M2);\n            T3 = _mm_add_epi64(T3, M3);\n            T4 = _mm_add_epi64(T4, HIBIT);\n        }\n\n        /* reduce */\n        C1 = _mm_srli_epi64(T0, 26);\n        C2 = _mm_srli_epi64(T3, 26);\n        T0 = _mm_and_si128(T0, MMASK);\n        T3 = _mm_and_si128(T3, MMASK);\n        T1 = _mm_add_epi64(T1, C1);\n        T4 = _mm_add_epi64(T4, C2);\n        C1 = _mm_srli_epi64(T1, 26);\n        C2 = _mm_srli_epi64(T4, 26);\n        T1 = _mm_and_si128(T1, MMASK);\n        T4 = _mm_and_si128(T4, MMASK);\n        T2 = _mm_add_epi64(T2, C1);\n        T0 = _mm_add_epi64(T0, _mm_mul_epu32(C2, FIVE));\n        C1 = _mm_srli_epi64(T2, 26);\n        C2 = _mm_srli_epi64(T0, 26);\n        T2 = _mm_and_si128(T2, MMASK);\n        T0 = _mm_and_si128(T0, MMASK);\n        T3 = _mm_add_epi64(T3, C1);\n        T1 = _mm_add_epi64(T1, C2);\n        C1 = _mm_srli_epi64(T3, 26);\n        T3 = _mm_and_si128(T3, MMASK);\n        T4 = _mm_add_epi64(T4, C1);\n\n        /* H = (H*[r^2,r^2] + [Mx,My]) */\n        H0 = T0;\n        H1 = T1;\n        H2 = T2;\n        H3 = T3;\n        H4 = T4;\n    }\n\n    if (m) {\n        T0 = _mm_shuffle_epi32(H0, _MM_SHUFFLE(0, 0, 2, 0));\n        T1 = _mm_shuffle_epi32(H1, _MM_SHUFFLE(0, 0, 2, 0));\n        T2 = _mm_shuffle_epi32(H2, _MM_SHUFFLE(0, 0, 2, 0));\n        T3 = _mm_shuffle_epi32(H3, _MM_SHUFFLE(0, 0, 2, 0));\n        T4 = _mm_shuffle_epi32(H4, _MM_SHUFFLE(0, 0, 2, 0));\n        T0 = _mm_unpacklo_epi64(T0, T1);\n        T1 = _mm_unpacklo_epi64(T2, T3);\n        _mm_storeu_si128((xmmi *) (void *) &st->H.hh[0], T0);\n        _mm_storeu_si128((xmmi *) (void *) &st->H.hh[4], T1);\n        _mm_storel_epi64((xmmi *) (void *) &st->H.hh[8], T4);\n    } else {\n        uint32_t t0, t1, t2, t3, t4, b;\n        uint64_t h0, h1, h2, g0, g1, g2, c, nc;\n\n        /* H = H[0]+H[1] */\n        T0 = H0;\n        T1 = H1;\n        T2 = H2;\n        T3 = H3;\n        T4 = H4;\n\n        T0 = _mm_add_epi64(T0, _mm_srli_si128(T0, 8));\n        T1 = _mm_add_epi64(T1, _mm_srli_si128(T1, 8));\n        T2 = _mm_add_epi64(T2, _mm_srli_si128(T2, 8));\n        T3 = _mm_add_epi64(T3, _mm_srli_si128(T3, 8));\n        T4 = _mm_add_epi64(T4, _mm_srli_si128(T4, 8));\n\n        t0 = _mm_cvtsi128_si32(T0);\n        b  = (t0 >> 26);\n        t0 &= 0x3ffffff;\n        t1 = _mm_cvtsi128_si32(T1) + b;\n        b  = (t1 >> 26);\n        t1 &= 0x3ffffff;\n        t2 = _mm_cvtsi128_si32(T2) + b;\n        b  = (t2 >> 26);\n        t2 &= 0x3ffffff;\n        t3 = _mm_cvtsi128_si32(T3) + b;\n        b  = (t3 >> 26);\n        t3 &= 0x3ffffff;\n        t4 = _mm_cvtsi128_si32(T4) + b;\n\n        /* everything except t4 is in range, so this is all safe */\n        h0 = (((uint64_t) t0) | ((uint64_t) t1 << 26)) & 0xfffffffffffull;\n        h1 = (((uint64_t) t1 >> 18) | ((uint64_t) t2 << 8) |\n              ((uint64_t) t3 << 34)) &\n             0xfffffffffffull;\n        h2 = (((uint64_t) t3 >> 10) | ((uint64_t) t4 << 16));\n\n        c = (h2 >> 42);\n        h2 &= 0x3ffffffffff;\n        h0 += c * 5;\n        c = (h0 >> 44);\n        h0 &= 0xfffffffffff;\n        h1 += c;\n        c = (h1 >> 44);\n        h1 &= 0xfffffffffff;\n        h2 += c;\n        c = (h2 >> 42);\n        h2 &= 0x3ffffffffff;\n        h0 += c * 5;\n        c = (h0 >> 44);\n        h0 &= 0xfffffffffff;\n        h1 += c;\n\n        g0 = h0 + 5;\n        c  = (g0 >> 44);\n        g0 &= 0xfffffffffff;\n        g1 = h1 + c;\n        c  = (g1 >> 44);\n        g1 &= 0xfffffffffff;\n        g2 = h2 + c - ((uint64_t) 1 << 42);\n\n        c  = (((g2 >> 61) ^ optblocker_u64) >> 2) - 1;\n        nc = ~c;\n        h0 = (h0 & nc) | (g0 & c);\n        h1 = (h1 & nc) | (g1 & c);\n        h2 = (h2 & nc) | (g2 & c);\n\n        st->H.h[0] = h0;\n        st->H.h[1] = h1;\n        st->H.h[2] = h2;\n    }\n}\n\nstatic void\npoly1305_update(poly1305_state_internal_t *st, const unsigned char *m,\n                unsigned long long bytes)\n{\n    unsigned long long i;\n\n    /* handle leftover */\n    if (st->leftover) {\n        unsigned long long want = (poly1305_block_size - st->leftover);\n\n        if (want > bytes) {\n            want = bytes;\n        }\n        for (i = 0; i < want; i++) {\n            st->buffer[st->leftover + i] = m[i];\n        }\n        bytes -= want;\n        m += want;\n        st->leftover += want;\n        if (st->leftover < poly1305_block_size) {\n            return;\n        }\n        poly1305_blocks(st, st->buffer, poly1305_block_size);\n        st->leftover = 0;\n    }\n\n    /* process full blocks */\n    if (bytes >= poly1305_block_size) {\n        unsigned long long want = (bytes & ~(poly1305_block_size - 1));\n\n        poly1305_blocks(st, m, want);\n        m += want;\n        bytes -= want;\n    }\n\n    /* store leftover */\n    if (bytes) {\n        for (i = 0; i < bytes; i++) {\n            st->buffer[st->leftover + i] = m[i];\n        }\n        st->leftover += bytes;\n    }\n}\n\nstatic POLY1305_NOINLINE void\npoly1305_finish_ext(poly1305_state_internal_t *st, const unsigned char *m,\n                    unsigned long long leftover, unsigned char mac[16])\n{\n    uint64_t h0, h1, h2;\n\n    if (leftover) {\n        CRYPTO_ALIGN(16) unsigned char final[32] = { 0 };\n\n        poly1305_block_copy31(final, m, leftover);\n        if (leftover != 16) {\n            final[leftover] = 1;\n        }\n        st->flags |=\n            (leftover >= 16) ? poly1305_final_shift8 : poly1305_final_shift16;\n        poly1305_blocks(st, final, 32);\n    }\n\n    if (st->flags & poly1305_started) {\n        /* finalize, H *= [r^2,r], or H *= [r,1] */\n        if (!leftover || (leftover > 16)) {\n            st->flags |= poly1305_final_r2_r;\n        } else {\n            st->flags |= poly1305_final_r_1;\n        }\n        poly1305_blocks(st, NULL, 32);\n    }\n\n    h0 = st->H.h[0];\n    h1 = st->H.h[1];\n    h2 = st->H.h[2];\n\n    /* pad */\n    h0 = ((h0) | (h1 << 44));\n    h1 = ((h1 >> 20) | (h2 << 24));\n#ifdef HAVE_AMD64_ASM\n    __asm__ __volatile__(\n        \"addq %2, %0 ;\\n\"\n        \"adcq %3, %1 ;\\n\"\n        : \"+r\"(h0), \"+r\"(h1)\n        : \"r\"(st->pad[0]), \"r\"(st->pad[1])\n        : \"flags\", \"cc\");\n#else\n    {\n        uint128_t h;\n\n        memcpy(&h, &st->pad[0], 16);\n        h += ((uint128_t) h1 << 64) | h0;\n        h0 = (uint64_t) h;\n        h1 = (uint64_t)(h >> 64);\n    }\n#endif\n    _mm_storeu_si128((xmmi *) (void *) st + 0, _mm_setzero_si128());\n    _mm_storeu_si128((xmmi *) (void *) st + 1, _mm_setzero_si128());\n    _mm_storeu_si128((xmmi *) (void *) st + 2, _mm_setzero_si128());\n    _mm_storeu_si128((xmmi *) (void *) st + 3, _mm_setzero_si128());\n    _mm_storeu_si128((xmmi *) (void *) st + 4, _mm_setzero_si128());\n    _mm_storeu_si128((xmmi *) (void *) st + 5, _mm_setzero_si128());\n    _mm_storeu_si128((xmmi *) (void *) st + 6, _mm_setzero_si128());\n    _mm_storeu_si128((xmmi *) (void *) st + 7, _mm_setzero_si128());\n\n    memcpy(&mac[0], &h0, 8);\n    memcpy(&mac[8], &h1, 8);\n\n    sodium_memzero((void *) st, sizeof *st);\n}\n\nstatic void\npoly1305_finish(poly1305_state_internal_t *st, unsigned char mac[16])\n{\n    poly1305_finish_ext(st, st->buffer, st->leftover, mac);\n}\n\nstatic int\ncrypto_onetimeauth_poly1305_sse2_init(crypto_onetimeauth_poly1305_state *state,\n                                      const unsigned char *key)\n{\n    COMPILER_ASSERT(sizeof(crypto_onetimeauth_poly1305_state) >=\n                    sizeof(poly1305_state_internal_t));\n    poly1305_init_ext((poly1305_state_internal_t *) (void *) state, key, 0U);\n\n    return 0;\n}\n\nstatic int\ncrypto_onetimeauth_poly1305_sse2_update(\n    crypto_onetimeauth_poly1305_state *state, const unsigned char *in,\n    unsigned long long inlen)\n{\n    poly1305_update((poly1305_state_internal_t *) (void *) state, in, inlen);\n\n    return 0;\n}\n\nstatic int\ncrypto_onetimeauth_poly1305_sse2_final(crypto_onetimeauth_poly1305_state *state,\n                                       unsigned char *out)\n{\n    poly1305_finish((poly1305_state_internal_t *) (void *) state, out);\n\n    return 0;\n}\n\nstatic int\ncrypto_onetimeauth_poly1305_sse2(unsigned char *out, const unsigned char *m,\n                                 unsigned long long   inlen,\n                                 const unsigned char *key)\n{\n    CRYPTO_ALIGN(64) poly1305_state_internal_t st;\n    unsigned long long                         blocks;\n\n    poly1305_init_ext(&st, key, inlen);\n    blocks = inlen & ~31;\n    if (blocks > 0) {\n        poly1305_blocks(&st, m, blocks);\n        m += blocks;\n        inlen -= blocks;\n    }\n    poly1305_finish_ext(&st, m, inlen, out);\n\n    return 0;\n}\n\nstatic int\ncrypto_onetimeauth_poly1305_sse2_verify(const unsigned char *h,\n                                        const unsigned char *in,\n                                        unsigned long long   inlen,\n                                        const unsigned char *k)\n{\n    unsigned char correct[16];\n\n    crypto_onetimeauth_poly1305_sse2(correct, in, inlen, k);\n\n    return crypto_verify_16(h, correct);\n}\n\nstruct crypto_onetimeauth_poly1305_implementation\n    crypto_onetimeauth_poly1305_sse2_implementation = {\n        SODIUM_C99(.onetimeauth =) crypto_onetimeauth_poly1305_sse2,\n        SODIUM_C99(.onetimeauth_verify =)\n            crypto_onetimeauth_poly1305_sse2_verify,\n        SODIUM_C99(.onetimeauth_init =) crypto_onetimeauth_poly1305_sse2_init,\n        SODIUM_C99(.onetimeauth_update =)\n            crypto_onetimeauth_poly1305_sse2_update,\n        SODIUM_C99(.onetimeauth_final =) crypto_onetimeauth_poly1305_sse2_final\n    };\n\n#ifdef __clang__\n# pragma clang attribute pop\n#endif\n\n#endif\n"
  },
  {
    "path": "src/libsodium/crypto_onetimeauth/poly1305/sse2/poly1305_sse2.h",
    "content": "#ifndef poly1305_sse2_H\n#define poly1305_sse2_H\n\n#include <stddef.h>\n\n#include \"../onetimeauth_poly1305.h\"\n#include \"crypto_onetimeauth_poly1305.h\"\n\nextern struct crypto_onetimeauth_poly1305_implementation\n    crypto_onetimeauth_poly1305_sse2_implementation;\n\n#endif /* poly1305_sse2_H */\n"
  },
  {
    "path": "src/libsodium/crypto_pwhash/argon2/argon2-core.c",
    "content": "/*\n * Argon2 source code package\n *\n * Written by Daniel Dinu and Dmitry Khovratovich, 2015\n *\n * This work is licensed under a Creative Commons CC0 1.0 License/Waiver.\n *\n * You should have received a copy of the CC0 Public Domain Dedication along\n * with\n * this software. If not, see\n * <http://creativecommons.org/publicdomain/zero/1.0/>.\n */\n\n#include <errno.h>\n#include <stddef.h>\n#include <stdint.h>\n#include <stdlib.h>\n#include <string.h>\n\n#include <sys/types.h>\n#ifdef HAVE_SYS_MMAN_H\n# include <sys/mman.h>\n#endif\n\n#include \"crypto_generichash_blake2b.h\"\n#include \"private/common.h\"\n#include \"private/implementations.h\"\n#include \"runtime.h\"\n#include \"utils.h\"\n\n#include \"argon2-core.h\"\n#include \"blake2b-long.h\"\n\n#if !defined(MAP_ANON) && defined(MAP_ANONYMOUS)\n# define MAP_ANON MAP_ANONYMOUS\n#endif\n#ifndef MAP_NOCORE\n# ifdef MAP_CONCEAL\n#  define MAP_NOCORE MAP_CONCEAL\n# else\n#  define MAP_NOCORE 0\n# endif\n#endif\n#ifndef MAP_POPULATE\n# define MAP_POPULATE 0\n#endif\n\n#if (defined(__aarch64__) || defined(_M_ARM64)) && \\\n    (defined(__ARM_NEON) || defined(__ARM_NEON__))\nstatic fill_segment_fn fill_segment = argon2_fill_segment_neon;\n#else\nstatic fill_segment_fn fill_segment = argon2_fill_segment_ref;\n#endif\n\nstatic void\nload_block(block *dst, const void *input)\n{\n    unsigned i;\n    for (i = 0; i < ARGON2_QWORDS_IN_BLOCK; ++i) {\n        dst->v[i] = LOAD64_LE((const uint8_t *) input + i * sizeof(dst->v[i]));\n    }\n}\n\nstatic void\nstore_block(void *output, const block *src)\n{\n    unsigned i;\n    for (i = 0; i < ARGON2_QWORDS_IN_BLOCK; ++i) {\n        STORE64_LE((uint8_t *) output + i * sizeof(src->v[i]), src->v[i]);\n    }\n}\n\n/***************Memory allocators*****************/\n/* Allocates memory to the given pointer\n * @param memory pointer to the pointer to the memory\n * @param m_cost number of blocks to allocate in the memory\n * @return ARGON2_OK if @memory is a valid pointer and memory is allocated\n */\nstatic int allocate_memory(block_region **region, uint32_t m_cost);\n\nstatic int\nallocate_memory(block_region **region, uint32_t m_cost)\n{\n    void  *base;\n    block *memory;\n    size_t memory_size;\n\n    if (region == NULL) {\n        return ARGON2_MEMORY_ALLOCATION_ERROR; /* LCOV_EXCL_LINE */\n    }\n    memory_size = sizeof(block) * m_cost;\n    if (m_cost == 0 || memory_size / m_cost != sizeof(block)) {\n        return ARGON2_MEMORY_ALLOCATION_ERROR; /* LCOV_EXCL_LINE */\n    }\n    *region = (block_region *) malloc(sizeof(block_region));\n    if (*region == NULL) {\n        return ARGON2_MEMORY_ALLOCATION_ERROR; /* LCOV_EXCL_LINE */\n    }\n    (*region)->base = (*region)->memory = NULL;\n\n#if defined(MAP_ANON) && defined(HAVE_MMAP)\n    if ((base = mmap(NULL, memory_size, PROT_READ | PROT_WRITE,\n                     MAP_ANON | MAP_PRIVATE | MAP_NOCORE | MAP_POPULATE,\n                     -1, 0)) == MAP_FAILED) {\n        base = NULL; /* LCOV_EXCL_LINE */\n    }                /* LCOV_EXCL_LINE */\n    memory = (block *) base;\n#elif defined(HAVE_POSIX_MEMALIGN)\n    if ((errno = posix_memalign((void **) &base, 64, memory_size)) != 0) {\n        base = NULL;\n    }\n    memory = (block *) base;\n#else\n    memory = NULL;\n    if (memory_size + 63 < memory_size) {\n        base  = NULL;\n        errno = ENOMEM;\n    } else if ((base = malloc(memory_size + 63)) != NULL) {\n        uint8_t *aligned = ((uint8_t *) base) + 63;\n        aligned -= (uintptr_t) aligned & 63;\n        memory = (block *) aligned;\n    }\n#endif\n    if (base == NULL) {\n        /* LCOV_EXCL_START */\n        free(*region);\n        *region = NULL;\n        return ARGON2_MEMORY_ALLOCATION_ERROR;\n        /* LCOV_EXCL_STOP */\n    }\n    (*region)->base   = base;\n    (*region)->memory = memory;\n    (*region)->size   = memory_size;\n\n    return ARGON2_OK;\n}\n\n/*********Memory functions*/\n\n/* Deallocates memory\n * @param memory pointer to the blocks\n */\nstatic void free_memory(block_region *region);\n\nstatic void\nfree_memory(block_region *region)\n{\n    if (region != NULL && region->base != NULL) {\n#if defined(MAP_ANON) && defined(HAVE_MMAP)\n        if (munmap(region->base, region->size)) {\n            return; /* LCOV_EXCL_LINE */\n        }\n#else\n        free(region->base);\n#endif\n    }\n    free(region);\n}\n\nstatic void\nargon2_free_instance(argon2_instance_t *instance, int flags)\n{\n    /* Deallocate the memory */\n    free(instance->pseudo_rands);\n    instance->pseudo_rands = NULL;\n    free_memory(instance->region);\n    instance->region = NULL;\n}\n\nvoid\nargon2_finalize(const argon2_context *context, argon2_instance_t *instance)\n{\n    if (context != NULL && instance != NULL) {\n        block    blockhash;\n        uint32_t l;\n\n        copy_block(&blockhash,\n                   instance->region->memory + instance->lane_length - 1);\n\n        /* XOR the last blocks */\n        for (l = 1; l < instance->lanes; ++l) {\n            uint32_t last_block_in_lane =\n                l * instance->lane_length + (instance->lane_length - 1);\n            xor_block(&blockhash,\n                      instance->region->memory + last_block_in_lane);\n        }\n\n        /* Hash the result */\n        {\n            uint8_t blockhash_bytes[ARGON2_BLOCK_SIZE];\n            store_block(blockhash_bytes, &blockhash);\n            blake2b_long(context->out, context->outlen, blockhash_bytes,\n                         ARGON2_BLOCK_SIZE);\n            sodium_memzero(blockhash.v,\n                           ARGON2_BLOCK_SIZE); /* clear blockhash */\n            sodium_memzero(blockhash_bytes,\n                           ARGON2_BLOCK_SIZE); /* clear blockhash_bytes */\n        }\n\n        argon2_free_instance(instance, context->flags);\n    }\n}\n\nvoid\nargon2_fill_memory_blocks(argon2_instance_t *instance, uint32_t pass)\n{\n    argon2_position_t position;\n    uint32_t l;\n    uint32_t s;\n\n    if (instance == NULL || instance->lanes == 0) {\n        return; /* LCOV_EXCL_LINE */\n    }\n\n    position.pass = pass;\n    for (s = 0; s < ARGON2_SYNC_POINTS; ++s) {\n        position.slice = (uint8_t) s;\n        for (l = 0; l < instance->lanes; ++l) {\n            position.lane  = l;\n            position.index = 0;\n            fill_segment(instance, position);\n        }\n    }\n}\n\nint\nargon2_validate_inputs(const argon2_context *context)\n{\n    /* LCOV_EXCL_START */\n    if (NULL == context) {\n        return ARGON2_INCORRECT_PARAMETER;\n    }\n\n    if (NULL == context->out) {\n        return ARGON2_OUTPUT_PTR_NULL;\n    }\n\n    /* Validate output length */\n    if (ARGON2_MIN_OUTLEN > context->outlen) {\n        return ARGON2_OUTPUT_TOO_SHORT;\n    }\n\n    if (ARGON2_MAX_OUTLEN < context->outlen) {\n        return ARGON2_OUTPUT_TOO_LONG;\n    }\n\n    /* Validate password (required param) */\n    if (NULL == context->pwd) {\n        if (0 != context->pwdlen) {\n            return ARGON2_PWD_PTR_MISMATCH;\n        }\n    }\n\n    if (ARGON2_MIN_PWD_LENGTH > context->pwdlen) {\n        return ARGON2_PWD_TOO_SHORT;\n    }\n\n    if (ARGON2_MAX_PWD_LENGTH < context->pwdlen) {\n        return ARGON2_PWD_TOO_LONG;\n    }\n\n    /* Validate salt (required param) */\n    if (NULL == context->salt) {\n        if (0 != context->saltlen) {\n            return ARGON2_SALT_PTR_MISMATCH;\n        }\n    }\n\n    if (ARGON2_MIN_SALT_LENGTH > context->saltlen) {\n        return ARGON2_SALT_TOO_SHORT;\n    }\n\n    if (ARGON2_MAX_SALT_LENGTH < context->saltlen) {\n        return ARGON2_SALT_TOO_LONG;\n    }\n\n    /* Validate secret (optional param) */\n    if (NULL == context->secret) {\n        if (0 != context->secretlen) {\n            return ARGON2_SECRET_PTR_MISMATCH;\n        }\n    } else {\n        if (ARGON2_MIN_SECRET > context->secretlen) {\n            return ARGON2_SECRET_TOO_SHORT;\n        }\n\n        if (ARGON2_MAX_SECRET < context->secretlen) {\n            return ARGON2_SECRET_TOO_LONG;\n        }\n    }\n\n    /* Validate associated data (optional param) */\n    if (NULL == context->ad) {\n        if (0 != context->adlen) {\n            return ARGON2_AD_PTR_MISMATCH;\n        }\n    } else {\n        if (ARGON2_MIN_AD_LENGTH > context->adlen) {\n            return ARGON2_AD_TOO_SHORT;\n        }\n\n        if (ARGON2_MAX_AD_LENGTH < context->adlen) {\n            return ARGON2_AD_TOO_LONG;\n        }\n    }\n\n    /* Validate lanes */\n    if (ARGON2_MIN_LANES > context->lanes) {\n        return ARGON2_LANES_TOO_FEW;\n    }\n\n    if (ARGON2_MAX_LANES < context->lanes) {\n        return ARGON2_LANES_TOO_MANY;\n    }\n\n    /* Validate memory cost */\n    if (ARGON2_MIN_MEMORY > context->m_cost) {\n        return ARGON2_MEMORY_TOO_LITTLE;\n    }\n\n    if (ARGON2_MAX_MEMORY < context->m_cost) {\n        return ARGON2_MEMORY_TOO_MUCH;\n    }\n\n    if (context->m_cost < 8 * context->lanes) {\n        return ARGON2_MEMORY_TOO_LITTLE;\n    }\n\n    /* Validate time cost */\n    if (ARGON2_MIN_TIME > context->t_cost) {\n        return ARGON2_TIME_TOO_SMALL;\n    }\n\n    if (ARGON2_MAX_TIME < context->t_cost) {\n        return ARGON2_TIME_TOO_LARGE;\n    }\n\n    /* Validate threads */\n    if (ARGON2_MIN_THREADS > context->threads) {\n        return ARGON2_THREADS_TOO_FEW;\n    }\n\n    if (ARGON2_MAX_THREADS < context->threads) {\n        return ARGON2_THREADS_TOO_MANY;\n    }\n    /* LCOV_EXCL_STOP */\n\n    return ARGON2_OK;\n}\n\nstatic void\nargon2_fill_first_blocks(uint8_t *blockhash, const argon2_instance_t *instance)\n{\n    uint32_t l;\n    /* Make the first and second block in each lane as G(H0||i||0) or\n       G(H0||i||1) */\n    uint8_t blockhash_bytes[ARGON2_BLOCK_SIZE];\n    for (l = 0; l < instance->lanes; ++l) {\n        STORE32_LE(blockhash + ARGON2_PREHASH_DIGEST_LENGTH, 0);\n        STORE32_LE(blockhash + ARGON2_PREHASH_DIGEST_LENGTH + 4, l);\n        blake2b_long(blockhash_bytes, ARGON2_BLOCK_SIZE, blockhash,\n                     ARGON2_PREHASH_SEED_LENGTH);\n        load_block(&instance->region->memory[l * instance->lane_length + 0],\n                   blockhash_bytes);\n\n        STORE32_LE(blockhash + ARGON2_PREHASH_DIGEST_LENGTH, 1);\n        blake2b_long(blockhash_bytes, ARGON2_BLOCK_SIZE, blockhash,\n                     ARGON2_PREHASH_SEED_LENGTH);\n        load_block(&instance->region->memory[l * instance->lane_length + 1],\n                   blockhash_bytes);\n    }\n    sodium_memzero(blockhash_bytes, ARGON2_BLOCK_SIZE);\n}\n\nstatic void\nargon2_initial_hash(uint8_t *blockhash, argon2_context *context,\n                    argon2_type type)\n{\n    crypto_generichash_blake2b_state BlakeHash;\n    uint8_t                          value[4U /* sizeof(uint32_t) */];\n\n    if (NULL == context || NULL == blockhash) {\n        return; /* LCOV_EXCL_LINE */\n    }\n\n    crypto_generichash_blake2b_init(&BlakeHash, NULL, 0U,\n                                    ARGON2_PREHASH_DIGEST_LENGTH);\n\n    STORE32_LE(value, context->lanes);\n    crypto_generichash_blake2b_update(&BlakeHash, value, sizeof(value));\n\n    STORE32_LE(value, context->outlen);\n    crypto_generichash_blake2b_update(&BlakeHash, value, sizeof(value));\n\n    STORE32_LE(value, context->m_cost);\n    crypto_generichash_blake2b_update(&BlakeHash, value, sizeof(value));\n\n    STORE32_LE(value, context->t_cost);\n    crypto_generichash_blake2b_update(&BlakeHash, value, sizeof(value));\n\n    STORE32_LE(value, ARGON2_VERSION_NUMBER);\n    crypto_generichash_blake2b_update(&BlakeHash, value, sizeof(value));\n\n    STORE32_LE(value, (uint32_t) type);\n    crypto_generichash_blake2b_update(&BlakeHash, value, sizeof(value));\n\n    STORE32_LE(value, context->pwdlen);\n    crypto_generichash_blake2b_update(&BlakeHash, value, sizeof(value));\n\n    if (context->pwd != NULL) {\n        crypto_generichash_blake2b_update(\n            &BlakeHash, (const uint8_t *) context->pwd, context->pwdlen);\n\n        /* LCOV_EXCL_START */\n        if (context->flags & ARGON2_FLAG_CLEAR_PASSWORD) {\n            sodium_memzero(context->pwd, context->pwdlen);\n            context->pwdlen = 0;\n        }\n        /* LCOV_EXCL_STOP */\n    }\n\n    STORE32_LE(value, context->saltlen);\n    crypto_generichash_blake2b_update(&BlakeHash, value, sizeof(value));\n\n    if (context->salt != NULL) {\n        crypto_generichash_blake2b_update(\n            &BlakeHash, (const uint8_t *) context->salt, context->saltlen);\n    }\n\n    STORE32_LE(value, context->secretlen);\n    crypto_generichash_blake2b_update(&BlakeHash, value, sizeof(value));\n\n    /* LCOV_EXCL_START */\n    if (context->secret != NULL) {\n        crypto_generichash_blake2b_update(\n            &BlakeHash, (const uint8_t *) context->secret, context->secretlen);\n\n        if (context->flags & ARGON2_FLAG_CLEAR_SECRET) {\n            sodium_memzero(context->secret, context->secretlen);\n            context->secretlen = 0;\n        }\n    }\n    /* LCOV_EXCL_STOP */\n\n    STORE32_LE(value, context->adlen);\n    crypto_generichash_blake2b_update(&BlakeHash, value, sizeof(value));\n\n    /* LCOV_EXCL_START */\n    if (context->ad != NULL) {\n        crypto_generichash_blake2b_update(\n            &BlakeHash, (const uint8_t *) context->ad, context->adlen);\n    }\n    /* LCOV_EXCL_STOP */\n\n    crypto_generichash_blake2b_final(&BlakeHash, blockhash,\n                                     ARGON2_PREHASH_DIGEST_LENGTH);\n}\n\nint\nargon2_initialize(argon2_instance_t *instance, argon2_context *context)\n{\n    uint8_t blockhash[ARGON2_PREHASH_SEED_LENGTH];\n    int     result = ARGON2_OK;\n\n    if (instance == NULL || context == NULL) {\n        return ARGON2_INCORRECT_PARAMETER; /* LCOV_EXCL_LINE */\n    }\n\n    /* 1. Memory allocation */\n\n    if ((instance->pseudo_rands = (uint64_t *)\n         malloc(sizeof(uint64_t) * instance->segment_length)) == NULL) {\n        return ARGON2_MEMORY_ALLOCATION_ERROR; /* LCOV_EXCL_LINE */\n    }\n\n    result = allocate_memory(&(instance->region), instance->memory_blocks);\n    if (ARGON2_OK != result) {\n        argon2_free_instance(instance, context->flags); /* LCOV_EXCL_LINE */\n        return result;                                   /* LCOV_EXCL_LINE */\n    }\n\n    /* 2. Initial hashing */\n    /* H_0 + 8 extra bytes to produce the first blocks */\n    /* uint8_t blockhash[ARGON2_PREHASH_SEED_LENGTH]; */\n    /* Hashing all inputs */\n    argon2_initial_hash(blockhash, context, instance->type);\n    /* Zeroing 8 extra bytes */\n    sodium_memzero(blockhash + ARGON2_PREHASH_DIGEST_LENGTH,\n                   ARGON2_PREHASH_SEED_LENGTH - ARGON2_PREHASH_DIGEST_LENGTH);\n\n    /* 3. Creating first blocks, we always have at least two blocks in a slice\n     */\n    argon2_fill_first_blocks(blockhash, instance);\n    /* Clearing the hash */\n    sodium_memzero(blockhash, ARGON2_PREHASH_SEED_LENGTH);\n\n    return ARGON2_OK;\n}\n\nstatic int\nargon2_pick_best_implementation(void)\n{\n/* LCOV_EXCL_START */\n#if defined(__wasm_simd128__)\n    fill_segment = argon2_fill_segment_wasm32;\n    return 0;\n#endif\n#if defined(HAVE_AVX512FINTRIN_H) && defined(HAVE_AVX2INTRIN_H) && \\\n    defined(HAVE_TMMINTRIN_H) && defined(HAVE_SMMINTRIN_H)\n    if (sodium_runtime_has_avx512f()) {\n        fill_segment = argon2_fill_segment_avx512f;\n        return 0;\n    }\n#endif\n#if defined(HAVE_AVX2INTRIN_H) && defined(HAVE_TMMINTRIN_H) && \\\n    defined(HAVE_SMMINTRIN_H)\n    if (sodium_runtime_has_avx2()) {\n        fill_segment = argon2_fill_segment_avx2;\n        return 0;\n    }\n#endif\n#if defined(HAVE_EMMINTRIN_H) && defined(HAVE_TMMINTRIN_H)\n    if (sodium_runtime_has_ssse3()) {\n        fill_segment = argon2_fill_segment_ssse3;\n        return 0;\n    }\n#endif\n#if (defined(__aarch64__) || defined(_M_ARM64)) && \\\n    (defined(__ARM_NEON) || defined(__ARM_NEON__))\n    fill_segment = argon2_fill_segment_neon;\n#else\n    fill_segment = argon2_fill_segment_ref;\n#endif\n\n    return 0;\n    /* LCOV_EXCL_STOP */\n}\n\nint\n_crypto_pwhash_argon2_pick_best_implementation(void)\n{\n    return argon2_pick_best_implementation();\n}\n"
  },
  {
    "path": "src/libsodium/crypto_pwhash/argon2/argon2-core.h",
    "content": "/*\n * Argon2 source code package\n *\n * Written by Daniel Dinu and Dmitry Khovratovich, 2015\n *\n * This work is licensed under a Creative Commons CC0 1.0 License/Waiver.\n *\n * You should have received a copy of the CC0 Public Domain Dedication along\n * with\n * this software. If not, see\n * <http://creativecommons.org/publicdomain/zero/1.0/>.\n */\n\n#ifndef argon2_core_H\n#define argon2_core_H\n\n#include <string.h>\n\n#include \"argon2.h\"\n#include \"private/quirks.h\"\n\n/*************************Argon2 internal\n * constants**************************************************/\n\nenum argon2_ctx_constants {\n    /* Version of the algorithm */\n    ARGON2_VERSION_NUMBER = 0x13,\n\n    /* Memory block size in bytes */\n    ARGON2_BLOCK_SIZE      = 1024,\n    ARGON2_QWORDS_IN_BLOCK = ARGON2_BLOCK_SIZE / 8,\n    ARGON2_OWORDS_IN_BLOCK = ARGON2_BLOCK_SIZE / 16,\n    ARGON2_HWORDS_IN_BLOCK = ARGON2_BLOCK_SIZE / 32,\n    ARGON2_512BIT_WORDS_IN_BLOCK = ARGON2_BLOCK_SIZE / 64,\n\n    /* Number of pseudo-random values generated by one call to Blake in Argon2i\n       to\n       generate reference block positions */\n    ARGON2_ADDRESSES_IN_BLOCK = 128,\n\n    /* Pre-hashing digest length and its extension*/\n    ARGON2_PREHASH_DIGEST_LENGTH = 64,\n    ARGON2_PREHASH_SEED_LENGTH   = 72\n};\n\n/*************************Argon2 internal data\n * types**************************************************/\n\n/*\n * Structure for the (1KB) memory block implemented as 128 64-bit words.\n * Memory blocks can be copied, XORed. Internal words can be accessed by [] (no\n * bounds checking).\n */\ntypedef struct block_ {\n    uint64_t v[ARGON2_QWORDS_IN_BLOCK];\n} block;\n\ntypedef struct block_region_ {\n    void * base;\n    block *memory;\n    size_t size;\n} block_region;\n\n/*****************Functions that work with the block******************/\n\n/* Initialize each byte of the block with @in */\nstatic inline void\ninit_block_value(block *b, uint8_t in)\n{\n    memset(b->v, in, sizeof(b->v));\n}\n\n/* Copy block @src to block @dst */\nstatic inline void\ncopy_block(block *dst, const block *src)\n{\n    memcpy(dst->v, src->v, sizeof(uint64_t) * ARGON2_QWORDS_IN_BLOCK);\n}\n\n/* XOR @src onto @dst bytewise */\nstatic inline void\nxor_block(block *dst, const block *src)\n{\n    int i;\n    for (i = 0; i < ARGON2_QWORDS_IN_BLOCK; ++i) {\n        dst->v[i] ^= src->v[i];\n    }\n}\n\n/*\n * Argon2 instance: memory pointer, number of passes, amount of memory, type,\n * and derived values.\n * Used to evaluate the number and location of blocks to construct in each\n * thread\n */\ntypedef struct Argon2_instance_t {\n    block_region *region;        /* Memory region pointer */\n    uint64_t     *pseudo_rands;\n    uint32_t      passes;        /* Number of passes */\n    uint32_t      current_pass;\n    uint32_t      memory_blocks; /* Number of blocks in memory */\n    uint32_t      segment_length;\n    uint32_t      lane_length;\n    uint32_t      lanes;\n    uint32_t      threads;\n    argon2_type   type;\n    int           print_internals; /* whether to print the memory blocks */\n} argon2_instance_t;\n\n/*\n * Argon2 position: where we construct the block right now. Used to distribute\n * work between threads.\n */\ntypedef struct Argon2_position_t {\n    uint32_t pass;\n    uint32_t lane;\n    uint8_t  slice;\n    uint32_t index;\n} argon2_position_t;\n\n/*Struct that holds the inputs for thread handling FillSegment*/\ntypedef struct Argon2_thread_data {\n    argon2_instance_t *instance_ptr;\n    argon2_position_t  pos;\n} argon2_thread_data;\n\n/*************************Argon2 core\n * functions**************************************************/\n\n/*\n * Computes absolute position of reference block in the lane following a skewed\n * distribution and using a pseudo-random value as input\n * @param instance Pointer to the current instance\n * @param position Pointer to the current position\n * @param pseudo_rand 32-bit pseudo-random value used to determine the position\n * @param same_lane Indicates if the block will be taken from the current lane.\n * If so we can reference the current segment\n * @pre All pointers must be valid\n */\nstatic uint32_t index_alpha(const argon2_instance_t *instance,\n                            const argon2_position_t *position, uint32_t pseudo_rand,\n                            int same_lane)\n{\n    /*\n     * Pass 0:\n     *      This lane : all already finished segments plus already constructed\n     * blocks in this segment\n     *      Other lanes : all already finished segments\n     * Pass 1+:\n     *      This lane : (SYNC_POINTS - 1) last segments plus already constructed\n     * blocks in this segment\n     *      Other lanes : (SYNC_POINTS - 1) last segments\n     */\n    uint32_t reference_area_size;\n    uint64_t relative_position, absolute_position;\n    uint32_t start_position;\n\n    if (position->pass == 0) {\n        /* First pass */\n        if (position->slice == 0) {\n            /* First slice */\n            reference_area_size =\n                position->index - 1; /* all but the previous */\n        } else {\n            if (same_lane) {\n                /* The same lane => add current segment */\n                reference_area_size =\n                    position->slice * instance->segment_length +\n                    position->index - 1;\n            } else {\n                reference_area_size =\n                    position->slice * instance->segment_length +\n                    ((position->index == 0) ? (-1) : 0);\n            }\n        }\n    } else {\n        /* Second pass */\n        if (same_lane) {\n            reference_area_size = instance->lane_length -\n                                  instance->segment_length + position->index -\n                                  1;\n        } else {\n            reference_area_size = instance->lane_length -\n                                  instance->segment_length +\n                                  ((position->index == 0) ? (-1) : 0);\n        }\n    }\n\n    /* 1.2.4. Mapping pseudo_rand to 0..<reference_area_size-1> and produce\n     * relative position */\n    relative_position = pseudo_rand;\n    relative_position = relative_position * relative_position >> 32;\n    relative_position = reference_area_size - 1 -\n                        (reference_area_size * relative_position >> 32);\n\n    /* 1.2.5 Computing starting position */\n    start_position = 0;\n\n    if (position->pass != 0) {\n        start_position = (position->slice == ARGON2_SYNC_POINTS - 1)\n                             ? 0\n                             : (position->slice + 1) * instance->segment_length;\n    }\n\n    /* 1.2.6. Computing absolute position */\n    absolute_position = start_position + relative_position - instance->lane_length;\n    absolute_position += instance->lane_length & (absolute_position >> 32);\n    return (uint32_t) absolute_position;\n}\n\n/*\n * Function that validates all inputs against predefined restrictions and return\n * an error code\n * @param context Pointer to current Argon2 context\n * @return ARGON2_OK if everything is all right, otherwise one of error codes\n * (all defined in <argon2.h>\n */\nint argon2_validate_inputs(const argon2_context *context);\n\n/*\n * Function allocates memory, hashes the inputs with Blake,  and creates first\n * two blocks. Returns the pointer to the main memory with 2 blocks per lane\n * initialized\n * @param  context  Pointer to the Argon2 internal structure containing memory\n * pointer, and parameters for time and space requirements.\n * @param  instance Current Argon2 instance\n * @return Zero if successful, -1 if memory failed to allocate. @context->state\n * will be modified if successful.\n */\nint argon2_initialize(argon2_instance_t *instance, argon2_context *context);\n\n/*\n * XORing the last block of each lane, hashing it, making the tag. Deallocates\n * the memory.\n * @param context Pointer to current Argon2 context (use only the out parameters\n * from it)\n * @param instance Pointer to current instance of Argon2\n * @pre instance->state must point to necessary amount of memory\n * @pre context->out must point to outlen bytes of memory\n * @pre if context->free_cbk is not NULL, it should point to a function that\n * deallocates memory\n */\nvoid argon2_finalize(const argon2_context *context,\n                     argon2_instance_t *instance);\n\n/*\n * Function that fills the segment using previous segments also from other\n * threads\n * @param instance Pointer to the current instance\n * @param position Current position\n * @pre all block pointers must be valid\n */\ntypedef void (*fill_segment_fn)(const argon2_instance_t *instance,\n                                argon2_position_t        position);\nvoid argon2_fill_segment_avx512f(const argon2_instance_t *instance,\n                                 argon2_position_t        position);\nvoid argon2_fill_segment_avx2(const argon2_instance_t *instance,\n                              argon2_position_t        position);\nvoid argon2_fill_segment_ssse3(const argon2_instance_t *instance,\n                               argon2_position_t        position);\nvoid argon2_fill_segment_wasm32(const argon2_instance_t *instance,\n                                argon2_position_t        position);\nvoid argon2_fill_segment_neon(const argon2_instance_t *instance,\n                              argon2_position_t        position);\nvoid argon2_fill_segment_ref(const argon2_instance_t *instance,\n                             argon2_position_t        position);\n\n/*\n * Function that fills the entire memory t_cost times based on the first two\n * blocks in each lane\n * @param instance Pointer to the current instance\n * @return Zero if successful, -1 if memory failed to allocate\n */\nvoid argon2_fill_memory_blocks(argon2_instance_t *instance, uint32_t pass);\n\n#endif\n"
  },
  {
    "path": "src/libsodium/crypto_pwhash/argon2/argon2-encoding.c",
    "content": "#include \"argon2-encoding.h\"\n#include \"argon2-core.h\"\n#include \"utils.h\"\n#include <limits.h>\n#include <stddef.h>\n#include <stdlib.h>\n#include <string.h>\n\n/*\n * Example code for a decoder and encoder of \"hash strings\", with Argon2\n * parameters.\n *\n * The code was originally written by Thomas Pornin <pornin@bolet.org>,\n * to whom comments and remarks may be sent. It is released under what\n * should amount to Public Domain or its closest equivalent; the\n * following mantra is supposed to incarnate that fact with all the\n * proper legal rituals:\n *\n * ---------------------------------------------------------------------\n * This file is provided under the terms of Creative Commons CC0 1.0\n * Public Domain Dedication. To the extent possible under law, the\n * author (Thomas Pornin) has waived all copyright and related or\n * neighboring rights to this file. This work is published from: Canada.\n * ---------------------------------------------------------------------\n *\n * Copyright (c) 2015 Thomas Pornin\n */\n\n/* ==================================================================== */\n\n/*\n * Decode decimal integer from 'str'; the value is written in '*v'.\n * Returned value is a pointer to the next non-decimal character in the\n * string. If there is no digit at all, or the value encoding is not\n * minimal (extra leading zeros), or the value does not fit in an\n * 'unsigned long', then NULL is returned.\n */\nstatic const char *\ndecode_decimal(const char *str, unsigned long *v)\n{\n    const char    *orig;\n    unsigned long  acc;\n\n    acc = 0;\n    for (orig = str;; str++) {\n        int c;\n\n        c = *str;\n        if (c < '0' || c > '9') {\n            break;\n        }\n        c -= '0';\n        if (acc > (ULONG_MAX / 10)) {\n            return NULL; /* LCOV_EXCL_LINE */\n        }\n        acc *= 10;\n        if ((unsigned long) c > (ULONG_MAX - acc)) {\n            return NULL; /* LCOV_EXCL_LINE */\n        }\n        acc += (unsigned long) c;\n    }\n    if (str == orig || (*orig == '0' && str != (orig + 1))) {\n        return NULL; /* LCOV_EXCL_LINE */\n    }\n    *v = acc;\n    return str;\n}\n\n/* ==================================================================== */\n/*\n * Code specific to Argon2.\n *\n * The code below applies the following format:\n *\n *  $argon2<T>[$v=<num>]$m=<num>,t=<num>,p=<num>$<bin>$<bin>\n *\n * where <T> is either 'i', <num> is a decimal integer (positive, fits in an\n * 'unsigned long') and <bin> is Base64-encoded data (no '=' padding characters,\n * no newline or whitespace).\n *\n * The last two binary chunks (encoded in Base64) are, in that order,\n * the salt and the output. Both are required. The binary salt length and the\n * output length must be in the allowed ranges defined in argon2.h.\n *\n * The ctx struct must contain buffers large enough to hold the salt and pwd\n * when it is fed into argon2_decode_string.\n */\n\n/*\n * Decode an Argon2i hash string into the provided structure 'ctx'.\n * Returned value is ARGON2_OK on success.\n */\nint\nargon2_decode_string(argon2_context *ctx, const char *str, argon2_type type)\n{\n/* Prefix checking */\n#define CC(prefix)                               \\\n    do {                                         \\\n        size_t cc_len = strlen(prefix);          \\\n        if (strncmp(str, prefix, cc_len) != 0) { \\\n            return ARGON2_DECODING_FAIL;         \\\n        }                                        \\\n        str += cc_len;                           \\\n    } while ((void) 0, 0)\n\n/* Optional prefix checking with supplied code */\n#define CC_opt(prefix, code)                     \\\n    do {                                         \\\n        size_t cc_len = strlen(prefix);          \\\n        if (strncmp(str, prefix, cc_len) == 0) { \\\n            str += cc_len;                       \\\n            {                                    \\\n                code;                            \\\n            }                                    \\\n        }                                        \\\n    } while ((void) 0, 0)\n\n/* Decoding prefix into decimal */\n#define DECIMAL(x)                         \\\n    do {                                   \\\n        unsigned long dec_x;               \\\n        str = decode_decimal(str, &dec_x); \\\n        if (str == NULL) {                 \\\n            return ARGON2_DECODING_FAIL;   \\\n        }                                  \\\n        (x) = dec_x;                       \\\n    } while ((void) 0, 0)\n\n/* Decoding prefix into uint32_t decimal */\n#define DECIMAL_U32(x)                           \\\n    do {                                         \\\n        unsigned long dec_x;                     \\\n        str = decode_decimal(str, &dec_x);       \\\n        if (str == NULL || dec_x > UINT32_MAX) { \\\n            return ARGON2_DECODING_FAIL;         \\\n        }                                        \\\n        (x) = (uint32_t)dec_x;                   \\\n    } while ((void)0, 0)\n\n/* Decoding base64 into a binary buffer */\n#define BIN(buf, max_len, len)                                                   \\\n    do {                                                                         \\\n        size_t bin_len = (max_len);                                              \\\n        const char *str_end;                                                     \\\n        if (sodium_base642bin((buf), (max_len), str, strlen(str), NULL,          \\\n                              &bin_len, &str_end,                                \\\n                              sodium_base64_VARIANT_ORIGINAL_NO_PADDING) != 0 || \\\n            bin_len > UINT32_MAX) {                                              \\\n            return ARGON2_DECODING_FAIL;                                         \\\n        }                                                                        \\\n        (len) = (uint32_t) bin_len;                                              \\\n        str = str_end;                                                           \\\n    } while ((void) 0, 0)\n\n    size_t        maxsaltlen = ctx->saltlen;\n    size_t        maxoutlen  = ctx->outlen;\n    int           validation_result;\n    uint32_t      version = 0;\n\n    ctx->saltlen = 0;\n    ctx->outlen  = 0;\n\n    if (type == Argon2_id) {\n        CC(\"$argon2id\");\n    } else if (type == Argon2_i) {\n        CC(\"$argon2i\");\n    } else {\n        return ARGON2_INCORRECT_TYPE; /* LCOV_EXCL_LINE */\n    }\n    CC(\"$v=\");\n    DECIMAL_U32(version);\n    if (version != ARGON2_VERSION_NUMBER) {\n        return ARGON2_INCORRECT_TYPE;\n    }\n    CC(\"$m=\");\n    DECIMAL_U32(ctx->m_cost);\n    if (ctx->m_cost > UINT32_MAX) {\n        return ARGON2_INCORRECT_TYPE; /* LCOV_EXCL_LINE */\n    }\n    CC(\",t=\");\n    DECIMAL_U32(ctx->t_cost);\n    if (ctx->t_cost > UINT32_MAX) {\n        return ARGON2_INCORRECT_TYPE; /* LCOV_EXCL_LINE */\n    }\n    CC(\",p=\");\n    DECIMAL_U32(ctx->lanes);\n    if (ctx->lanes > UINT32_MAX) {\n        return ARGON2_INCORRECT_TYPE; /* LCOV_EXCL_LINE */\n    }\n    ctx->threads = ctx->lanes;\n\n    CC(\"$\");\n    BIN(ctx->salt, maxsaltlen, ctx->saltlen);\n    CC(\"$\");\n    BIN(ctx->out, maxoutlen, ctx->outlen);\n    validation_result = argon2_validate_inputs(ctx);\n    if (validation_result != ARGON2_OK) {\n        return validation_result;\n    }\n    if (*str == 0) {\n        return ARGON2_OK;\n    }\n    return ARGON2_DECODING_FAIL;\n\n#undef CC\n#undef CC_opt\n#undef DECIMAL\n#undef BIN\n}\n\n#define U32_STR_MAXSIZE 11U\n\nstatic void\nu32_to_string(char *str, uint32_t x)\n{\n    char   tmp[U32_STR_MAXSIZE - 1U];\n    size_t i;\n\n    i = sizeof tmp;\n    do {\n        tmp[--i] = (x % (uint32_t) 10U) + '0';\n        x /= (uint32_t) 10U;\n    } while (x != 0U && i != 0U);\n    memcpy(str, &tmp[i], (sizeof tmp) - i);\n    str[(sizeof tmp) - i] = 0;\n}\n\n/*\n * Encode an argon2i hash string into the provided buffer. 'dst_len'\n * contains the size, in characters, of the 'dst' buffer; if 'dst_len'\n * is less than the number of required characters (including the\n * terminating 0), then this function returns 0.\n *\n * If pp->output_len is 0, then the hash string will be a salt string\n * (no output). if pp->salt_len is also 0, then the string will be a\n * parameter-only string (no salt and no output).\n *\n * On success, ARGON2_OK is returned.\n */\nint\nargon2_encode_string(char *dst, size_t dst_len, argon2_context *ctx,\n                     argon2_type type)\n{\n#define SS(str)                          \\\n    do {                                 \\\n        size_t pp_len = strlen(str);     \\\n        if (pp_len >= dst_len) {         \\\n            return ARGON2_ENCODING_FAIL; \\\n        }                                \\\n        memcpy(dst, str, pp_len + 1);    \\\n        dst += pp_len;                   \\\n        dst_len -= pp_len;               \\\n    } while ((void) 0, 0)\n\n#define SX(x)                      \\\n    do {                           \\\n        char tmp[U32_STR_MAXSIZE]; \\\n        u32_to_string(tmp, x);     \\\n        SS(tmp);                   \\\n    } while ((void) 0, 0)\n\n#define SB(buf, len)                                                                \\\n    do {                                                                            \\\n        size_t sb_len;                                                              \\\n        if (sodium_bin2base64(dst, dst_len, (buf), (len),                           \\\n                              sodium_base64_VARIANT_ORIGINAL_NO_PADDING) == NULL) { \\\n            return ARGON2_ENCODING_FAIL;                                            \\\n        }                                                                           \\\n        sb_len = strlen(dst);                                                       \\\n        dst += sb_len;                                                              \\\n        dst_len -= sb_len;                                                          \\\n    } while ((void) 0, 0)\n\n    int validation_result;\n\n    switch (type) {\n    case Argon2_id:\n        SS(\"$argon2id$v=\"); break;\n    case Argon2_i:\n        SS(\"$argon2i$v=\"); break;\n    default:\n        return ARGON2_ENCODING_FAIL; /* LCOV_EXCL_LINE */\n    }\n    validation_result = argon2_validate_inputs(ctx);\n    if (validation_result != ARGON2_OK) {\n        return validation_result; /* LCOV_EXCL_LINE */\n    }\n    SX(ARGON2_VERSION_NUMBER);\n    SS(\"$m=\");\n    SX(ctx->m_cost);\n    SS(\",t=\");\n    SX(ctx->t_cost);\n    SS(\",p=\");\n    SX(ctx->lanes);\n\n    SS(\"$\");\n    SB(ctx->salt, ctx->saltlen);\n\n    SS(\"$\");\n    SB(ctx->out, ctx->outlen);\n    return ARGON2_OK;\n\n#undef SS\n#undef SX\n#undef SB\n}\n"
  },
  {
    "path": "src/libsodium/crypto_pwhash/argon2/argon2-encoding.h",
    "content": "#ifndef argon2_encoding_H\n#define argon2_encoding_H\n\n#include \"argon2.h\"\n#include \"private/quirks.h\"\n\n/*\n * encode an Argon2 hash string into the provided buffer. 'dst_len'\n * contains the size, in characters, of the 'dst' buffer; if 'dst_len'\n * is less than the number of required characters (including the\n * terminating 0), then this function returns 0.\n *\n * if ctx->outlen is 0, then the hash string will be a salt string\n * (no output). if ctx->saltlen is also 0, then the string will be a\n * parameter-only string (no salt and no output).\n *\n * On success, ARGON2_OK is returned.\n *\n * No other parameters are checked\n */\nint argon2_encode_string(char *dst, size_t dst_len, argon2_context *ctx,\n                         argon2_type type);\n\n/*\n * Decodes an Argon2 hash string into the provided structure 'ctx'.\n * The fields ctx.saltlen, ctx.adlen, ctx.outlen set the maximal salt, ad, out\n * length values\n * that are allowed; invalid input string causes an error\n *\n * Returned value is ARGON2_OK on success.\n */\nint argon2_decode_string(argon2_context *ctx, const char *str,\n                         argon2_type type);\n\n#endif\n"
  },
  {
    "path": "src/libsodium/crypto_pwhash/argon2/argon2-fill-block-avx2.c",
    "content": "/*\n * Argon2 source code package\n *\n * Written by Daniel Dinu and Dmitry Khovratovich, 2015\n *\n * This work is licensed under a Creative Commons CC0 1.0 License/Waiver.\n *\n * You should have received a copy of the CC0 Public Domain Dedication along\n * with\n * this software. If not, see\n * <http://creativecommons.org/publicdomain/zero/1.0/>.\n */\n\n#include <stdint.h>\n#include <stdlib.h>\n#include <string.h>\n\n#include \"argon2-core.h\"\n#include \"argon2.h\"\n#include \"private/common.h\"\n\n#if defined(HAVE_AVX2INTRIN_H) && defined(HAVE_EMMINTRIN_H) && \\\n    defined(HAVE_TMMINTRIN_H) && defined(HAVE_SMMINTRIN_H)\n\n# ifdef __clang__\n#  pragma clang attribute push(__attribute__((target(\"sse2,ssse3,sse4.1,avx2\"))), apply_to = function)\n# elif defined(__GNUC__)\n#  pragma GCC target(\"sse2,ssse3,sse4.1,avx2\")\n# endif\n\n# ifdef _MSC_VER\n#  include <intrin.h> /* for _mm_set_epi64x */\n# endif\n# include <emmintrin.h>\n# include <immintrin.h>\n# include <smmintrin.h>\n# include <tmmintrin.h>\n# include \"private/sse2_64_32.h\"\n\n# include \"blamka-round-avx2.h\"\n\nstatic void\nfill_block(__m256i *state, const uint8_t *ref_block, uint8_t *next_block)\n{\n    __m256i  block_XY[ARGON2_HWORDS_IN_BLOCK];\n    uint32_t i;\n\n    for (i = 0; i < ARGON2_HWORDS_IN_BLOCK; i++) {\n        block_XY[i] = state[i] = _mm256_xor_si256(\n            state[i], _mm256_loadu_si256((__m256i const *) (&ref_block[32 * i])));\n    }\n\n    for (i = 0; i < 4; ++i) {\n        BLAKE2_ROUND_1(state[8 * i + 0], state[8 * i + 4], state[8 * i + 1], state[8 * i + 5],\n                       state[8 * i + 2], state[8 * i + 6], state[8 * i + 3], state[8 * i + 7]);\n    }\n\n    for (i = 0; i < 4; ++i) {\n        BLAKE2_ROUND_2(state[ 0 + i], state[ 4 + i], state[ 8 + i], state[12 + i],\n                       state[16 + i], state[20 + i], state[24 + i], state[28 + i]);\n    }\n\n    for (i = 0; i < ARGON2_HWORDS_IN_BLOCK; i++) {\n        state[i] = _mm256_xor_si256(state[i], block_XY[i]);\n        _mm256_storeu_si256((__m256i *) (&next_block[32 * i]), state[i]);\n    }\n}\n\nstatic void\nfill_block_with_xor(__m256i *state, const uint8_t *ref_block,\n                    uint8_t *next_block)\n{\n    __m256i  block_XY[ARGON2_HWORDS_IN_BLOCK];\n    uint32_t i;\n\n    for (i = 0; i < ARGON2_HWORDS_IN_BLOCK; i++) {\n        state[i] = _mm256_xor_si256(\n            state[i], _mm256_loadu_si256((__m256i const *) (&ref_block[32 * i])));\n        block_XY[i] = _mm256_xor_si256(\n            state[i], _mm256_loadu_si256((__m256i const *) (&next_block[32 * i])));\n    }\n\n    for (i = 0; i < 4; ++i) {\n        BLAKE2_ROUND_1(state[8 * i + 0], state[8 * i + 4], state[8 * i + 1], state[8 * i + 5],\n                       state[8 * i + 2], state[8 * i + 6], state[8 * i + 3], state[8 * i + 7]);\n    }\n\n    for (i = 0; i < 4; ++i) {\n        BLAKE2_ROUND_2(state[ 0 + i], state[ 4 + i], state[ 8 + i], state[12 + i],\n                       state[16 + i], state[20 + i], state[24 + i], state[28 + i]);\n    }\n\n    for (i = 0; i < ARGON2_HWORDS_IN_BLOCK; i++) {\n        state[i] = _mm256_xor_si256(state[i], block_XY[i]);\n        _mm256_storeu_si256((__m256i *) (&next_block[32 * i]), state[i]);\n    }\n}\n\nstatic void\ngenerate_addresses(const argon2_instance_t *instance,\n                   const argon2_position_t *position, uint64_t *pseudo_rands)\n{\n    block    address_block, input_block, tmp_block;\n    uint32_t i;\n\n    init_block_value(&address_block, 0);\n    init_block_value(&input_block, 0);\n\n    if (instance != NULL && position != NULL) {\n        input_block.v[0] = position->pass;\n        input_block.v[1] = position->lane;\n        input_block.v[2] = position->slice;\n        input_block.v[3] = instance->memory_blocks;\n        input_block.v[4] = instance->passes;\n        input_block.v[5] = instance->type;\n\n        for (i = 0; i < instance->segment_length; ++i) {\n            if (i % ARGON2_ADDRESSES_IN_BLOCK == 0) {\n                /* Temporary zero-initialized blocks */\n                __m256i zero_block[ARGON2_HWORDS_IN_BLOCK];\n                __m256i zero2_block[ARGON2_HWORDS_IN_BLOCK];\n\n                memset(zero_block, 0, sizeof(zero_block));\n                memset(zero2_block, 0, sizeof(zero2_block));\n                init_block_value(&address_block, 0);\n                init_block_value(&tmp_block, 0);\n                /* Increasing index counter */\n                input_block.v[6]++;\n                /* First iteration of G */\n                fill_block_with_xor(zero_block, (uint8_t *) &input_block.v,\n                                    (uint8_t *) &tmp_block.v);\n                /* Second iteration of G */\n                fill_block_with_xor(zero2_block, (uint8_t *) &tmp_block.v,\n                                    (uint8_t *) &address_block.v);\n            }\n\n            pseudo_rands[i] = address_block.v[i % ARGON2_ADDRESSES_IN_BLOCK];\n        }\n    }\n}\n\nvoid\nargon2_fill_segment_avx2(const argon2_instance_t *instance,\n                         argon2_position_t        position)\n{\n    block    *ref_block = NULL, *curr_block = NULL;\n    uint64_t  pseudo_rand, ref_index, ref_lane;\n    uint32_t  prev_offset, curr_offset;\n    uint32_t  starting_index, i;\n    __m256i   state[ARGON2_HWORDS_IN_BLOCK];\n    int       data_independent_addressing = 1;\n\n    /* Pseudo-random values that determine the reference block position */\n    uint64_t *pseudo_rands = NULL;\n\n    if (instance == NULL) {\n        return;\n    }\n\n    if (instance->type == Argon2_id &&\n        (position.pass != 0 || position.slice >= ARGON2_SYNC_POINTS / 2)) {\n        data_independent_addressing = 0;\n    }\n\n    pseudo_rands = instance->pseudo_rands;\n\n    if (data_independent_addressing) {\n        generate_addresses(instance, &position, pseudo_rands);\n    }\n\n    starting_index = 0;\n\n    if ((0 == position.pass) && (0 == position.slice)) {\n        starting_index = 2; /* we have already generated the first two blocks */\n    }\n\n    /* Offset of the current block */\n    curr_offset = position.lane * instance->lane_length +\n                  position.slice * instance->segment_length + starting_index;\n\n    if (0 == curr_offset % instance->lane_length) {\n        /* Last block in this lane */\n        prev_offset = curr_offset + instance->lane_length - 1;\n    } else {\n        /* Previous block */\n        prev_offset = curr_offset - 1;\n    }\n\n    memcpy(state, ((instance->region->memory + prev_offset)->v),\n           ARGON2_BLOCK_SIZE);\n\n    for (i = starting_index; i < instance->segment_length;\n         ++i, ++curr_offset, ++prev_offset) {\n        /*1.1 Rotating prev_offset if needed */\n        if (curr_offset % instance->lane_length == 1) {\n            prev_offset = curr_offset - 1;\n        }\n\n        /* 1.2 Computing the index of the reference block */\n        /* 1.2.1 Taking pseudo-random value from the previous block */\n        if (data_independent_addressing) {\n#pragma warning(push)\n#pragma warning(disable : 6385)\n            pseudo_rand = pseudo_rands[i];\n#pragma warning(pop)\n        } else {\n            pseudo_rand = instance->region->memory[prev_offset].v[0];\n        }\n\n        /* 1.2.2 Computing the lane of the reference block */\n        ref_lane = ((pseudo_rand >> 32)) % instance->lanes;\n\n        if ((position.pass == 0) && (position.slice == 0)) {\n            /* Can not reference other lanes yet */\n            ref_lane = position.lane;\n        }\n\n        /* 1.2.3 Computing the number of possible reference block within the\n         * lane.\n         */\n        position.index = i;\n        ref_index = index_alpha(instance, &position, pseudo_rand & 0xFFFFFFFF,\n                                ref_lane == position.lane);\n\n        /* 2 Creating a new block */\n        ref_block = instance->region->memory +\n                    instance->lane_length * ref_lane + ref_index;\n        curr_block = instance->region->memory + curr_offset;\n        if (position.pass != 0) {\n            fill_block_with_xor(state, (uint8_t *) ref_block->v,\n                                (uint8_t *) curr_block->v);\n        } else {\n            fill_block(state, (uint8_t *) ref_block->v,\n                       (uint8_t *) curr_block->v);\n        }\n    }\n}\n\n#ifdef __clang__\n# pragma clang attribute pop\n#endif\n\n#endif\n"
  },
  {
    "path": "src/libsodium/crypto_pwhash/argon2/argon2-fill-block-avx512f.c",
    "content": "/*\n * Argon2 source code package\n *\n * Written by Daniel Dinu and Dmitry Khovratovich, 2015\n *\n * This work is licensed under a Creative Commons CC0 1.0 License/Waiver.\n *\n * You should have received a copy of the CC0 Public Domain Dedication along\n * with\n * this software. If not, see\n * <http://creativecommons.org/publicdomain/zero/1.0/>.\n */\n\n#include <stdint.h>\n#include <stdlib.h>\n#include <string.h>\n\n#include \"argon2-core.h\"\n#include \"argon2.h\"\n#include \"private/common.h\"\n\n#if defined(HAVE_AVX512FINTRIN_H) && defined(HAVE_AVX2INTRIN_H) && \\\n    defined(HAVE_EMMINTRIN_H) &&  defined(HAVE_TMMINTRIN_H) && defined(HAVE_SMMINTRIN_H)\n\n# ifdef __clang__\n#  if __clang_major__ >= 18 && __clang_major__ < 22\n#   pragma clang attribute push(__attribute__((target(\"sse2,ssse3,sse4.1,avx2,avx512f,evex512\"))), apply_to = function)\n#  else\n#   pragma clang attribute push(__attribute__((target(\"sse2,ssse3,sse4.1,avx2,avx512f\"))), apply_to = function)\n#  endif\n# elif defined(__GNUC__)\n#  pragma GCC target(\"sse2,ssse3,sse4.1,avx2,avx512f\")\n# endif\n\n# ifdef _MSC_VER\n#  include <intrin.h> /* for _mm_set_epi64x */\n# endif\n# include <emmintrin.h>\n# include <immintrin.h>\n# include <smmintrin.h>\n# include <tmmintrin.h>\n# include \"private/sse2_64_32.h\"\n\n# include \"blamka-round-avx512f.h\"\n\nstatic void\nfill_block(__m512i *state, const uint8_t *ref_block, uint8_t *next_block)\n{\n    __m512i  block_XY[ARGON2_512BIT_WORDS_IN_BLOCK];\n    uint32_t i;\n\n    for (i = 0; i < ARGON2_512BIT_WORDS_IN_BLOCK; i++) {\n        block_XY[i] = state[i] = _mm512_xor_si512(\n            state[i], _mm512_loadu_si512((__m512i const *) (&ref_block[64 * i])));\n    }\n\n    for (i = 0; i < 2; ++i) {\n        BLAKE2_ROUND_1(\n            state[8 * i + 0], state[8 * i + 1], state[8 * i + 2], state[8 * i + 3],\n            state[8 * i + 4], state[8 * i + 5], state[8 * i + 6], state[8 * i + 7]);\n    }\n\n    for (i = 0; i < 2; ++i) {\n        BLAKE2_ROUND_2(\n            state[2 * 0 + i], state[2 * 1 + i], state[2 * 2 + i], state[2 * 3 + i],\n            state[2 * 4 + i], state[2 * 5 + i], state[2 * 6 + i], state[2 * 7 + i]);\n    }\n\n    for (i = 0; i < ARGON2_512BIT_WORDS_IN_BLOCK; i++) {\n        state[i] = _mm512_xor_si512(state[i], block_XY[i]);\n        _mm512_storeu_si512((__m512i *) (&next_block[64 * i]), state[i]);\n    }\n}\n\nstatic void\nfill_block_with_xor(__m512i *state, const uint8_t *ref_block,\n                    uint8_t *next_block)\n{\n    __m512i  block_XY[ARGON2_512BIT_WORDS_IN_BLOCK];\n    uint32_t i;\n\n    for (i = 0; i < ARGON2_512BIT_WORDS_IN_BLOCK; i++) {\n        state[i] = _mm512_xor_si512(\n            state[i], _mm512_loadu_si512((__m512i const *) (&ref_block[64 * i])));\n        block_XY[i] = _mm512_xor_si512(\n            state[i], _mm512_loadu_si512((__m512i const *) (&next_block[64 * i])));\n    }\n\n    for (i = 0; i < 2; ++i) {\n        BLAKE2_ROUND_1(\n            state[8 * i + 0], state[8 * i + 1], state[8 * i + 2], state[8 * i + 3],\n            state[8 * i + 4], state[8 * i + 5], state[8 * i + 6], state[8 * i + 7]);\n    }\n\n    for (i = 0; i < 2; ++i) {\n        BLAKE2_ROUND_2(\n            state[2 * 0 + i], state[2 * 1 + i], state[2 * 2 + i], state[2 * 3 + i],\n            state[2 * 4 + i], state[2 * 5 + i], state[2 * 6 + i], state[2 * 7 + i]);\n    }\n\n    for (i = 0; i < ARGON2_512BIT_WORDS_IN_BLOCK; i++) {\n        state[i] = _mm512_xor_si512(state[i], block_XY[i]);\n        _mm512_storeu_si512((__m512i *) (&next_block[64 * i]), state[i]);\n    }\n}\n\nstatic void\ngenerate_addresses(const argon2_instance_t *instance,\n                   const argon2_position_t *position, uint64_t *pseudo_rands)\n{\n    block    address_block, input_block, tmp_block;\n    uint32_t i;\n\n    init_block_value(&address_block, 0);\n    init_block_value(&input_block, 0);\n\n    if (instance != NULL && position != NULL) {\n        input_block.v[0] = position->pass;\n        input_block.v[1] = position->lane;\n        input_block.v[2] = position->slice;\n        input_block.v[3] = instance->memory_blocks;\n        input_block.v[4] = instance->passes;\n        input_block.v[5] = instance->type;\n\n        for (i = 0; i < instance->segment_length; ++i) {\n            if (i % ARGON2_ADDRESSES_IN_BLOCK == 0) {\n                /* Temporary zero-initialized blocks */\n                __m512i zero_block[ARGON2_512BIT_WORDS_IN_BLOCK];\n                __m512i zero2_block[ARGON2_512BIT_WORDS_IN_BLOCK];\n\n                memset(zero_block, 0, sizeof(zero_block));\n                memset(zero2_block, 0, sizeof(zero2_block));\n                init_block_value(&address_block, 0);\n                init_block_value(&tmp_block, 0);\n                /* Increasing index counter */\n                input_block.v[6]++;\n                /* First iteration of G */\n                fill_block_with_xor(zero_block, (uint8_t *) &input_block.v,\n                                    (uint8_t *) &tmp_block.v);\n                /* Second iteration of G */\n                fill_block_with_xor(zero2_block, (uint8_t *) &tmp_block.v,\n                                    (uint8_t *) &address_block.v);\n            }\n\n            pseudo_rands[i] = address_block.v[i % ARGON2_ADDRESSES_IN_BLOCK];\n        }\n    }\n}\n\nvoid\nargon2_fill_segment_avx512f(const argon2_instance_t *instance,\n                            argon2_position_t        position)\n{\n    block    *ref_block = NULL, *curr_block = NULL;\n    uint64_t  pseudo_rand, ref_index, ref_lane;\n    uint32_t  prev_offset, curr_offset;\n    uint32_t  starting_index, i;\n    __m512i   state[ARGON2_512BIT_WORDS_IN_BLOCK];\n    int       data_independent_addressing = 1;\n\n    /* Pseudo-random values that determine the reference block position */\n    uint64_t *pseudo_rands = NULL;\n\n    if (instance == NULL) {\n        return;\n    }\n\n    if (instance->type == Argon2_id &&\n        (position.pass != 0 || position.slice >= ARGON2_SYNC_POINTS / 2)) {\n        data_independent_addressing = 0;\n    }\n\n    pseudo_rands = instance->pseudo_rands;\n\n    if (data_independent_addressing) {\n        generate_addresses(instance, &position, pseudo_rands);\n    }\n\n    starting_index = 0;\n\n    if ((0 == position.pass) && (0 == position.slice)) {\n        starting_index = 2; /* we have already generated the first two blocks */\n    }\n\n    /* Offset of the current block */\n    curr_offset = position.lane * instance->lane_length +\n                  position.slice * instance->segment_length + starting_index;\n\n    if (0 == curr_offset % instance->lane_length) {\n        /* Last block in this lane */\n        prev_offset = curr_offset + instance->lane_length - 1;\n    } else {\n        /* Previous block */\n        prev_offset = curr_offset - 1;\n    }\n\n    memcpy(state, ((instance->region->memory + prev_offset)->v),\n           ARGON2_BLOCK_SIZE);\n\n    for (i = starting_index; i < instance->segment_length;\n         ++i, ++curr_offset, ++prev_offset) {\n        /*1.1 Rotating prev_offset if needed */\n        if (curr_offset % instance->lane_length == 1) {\n            prev_offset = curr_offset - 1;\n        }\n\n        /* 1.2 Computing the index of the reference block */\n        /* 1.2.1 Taking pseudo-random value from the previous block */\n        if (data_independent_addressing) {\n#pragma warning(push)\n#pragma warning(disable : 6385)\n            pseudo_rand = pseudo_rands[i];\n#pragma warning(pop)\n        } else {\n            pseudo_rand = instance->region->memory[prev_offset].v[0];\n        }\n\n        /* 1.2.2 Computing the lane of the reference block */\n        ref_lane = ((pseudo_rand >> 32)) % instance->lanes;\n\n        if ((position.pass == 0) && (position.slice == 0)) {\n            /* Can not reference other lanes yet */\n            ref_lane = position.lane;\n        }\n\n        /* 1.2.3 Computing the number of possible reference block within the\n         * lane.\n         */\n        position.index = i;\n        ref_index = index_alpha(instance, &position, pseudo_rand & 0xFFFFFFFF,\n                                ref_lane == position.lane);\n\n        /* 2 Creating a new block */\n        ref_block = instance->region->memory +\n                    instance->lane_length * ref_lane + ref_index;\n        curr_block = instance->region->memory + curr_offset;\n        if (position.pass != 0) {\n            fill_block_with_xor(state, (uint8_t *) ref_block->v,\n                                (uint8_t *) curr_block->v);\n        } else {\n            fill_block(state, (uint8_t *) ref_block->v,\n                       (uint8_t *) curr_block->v);\n        }\n    }\n}\n\n#ifdef __clang__\n# pragma clang attribute pop\n#endif\n\n#endif\n"
  },
  {
    "path": "src/libsodium/crypto_pwhash/argon2/argon2-fill-block-neon.c",
    "content": "/*\n * Argon2 source code package\n *\n * Written by Daniel Dinu and Dmitry Khovratovich, 2015\n *\n * This work is licensed under a Creative Commons CC0 1.0 License/Waiver.\n *\n * You should have received a copy of the CC0 Public Domain Dedication along\n * with\n * this software. If not, see\n * <http://creativecommons.org/publicdomain/zero/1.0/>.\n *\n * AARCH64 NEON implementation ported from SSSE3 version.\n */\n\n#include <stdint.h>\n#include <stdlib.h>\n#include <string.h>\n\n#include \"argon2-core.h\"\n#include \"argon2.h\"\n#include \"private/common.h\"\n\n#if (defined(__aarch64__) || defined(_M_ARM64)) && \\\n    (defined(__ARM_NEON) || defined(__ARM_NEON__))\n\n# include <arm_neon.h>\n# include \"blamka-round-neon.h\"\n\nstatic void\nfill_block(uint64x2_t *state, const uint8_t *ref_block, uint8_t *next_block)\n{\n    uint64x2_t block_XY[ARGON2_OWORDS_IN_BLOCK];\n    uint32_t   i;\n\n    for (i = 0; i < ARGON2_OWORDS_IN_BLOCK; i++) {\n        block_XY[i] = state[i] = veorq_u64(\n            state[i], vld1q_u64((const uint64_t *) (&ref_block[16 * i])));\n    }\n\n    for (i = 0; i < 8; ++i) {\n        BLAKE2_ROUND_NEON(state[8 * i + 0], state[8 * i + 1], state[8 * i + 2],\n                          state[8 * i + 3], state[8 * i + 4], state[8 * i + 5],\n                          state[8 * i + 6], state[8 * i + 7]);\n    }\n\n    for (i = 0; i < 8; ++i) {\n        BLAKE2_ROUND_NEON(state[8 * 0 + i], state[8 * 1 + i], state[8 * 2 + i],\n                          state[8 * 3 + i], state[8 * 4 + i], state[8 * 5 + i],\n                          state[8 * 6 + i], state[8 * 7 + i]);\n    }\n\n    for (i = 0; i < ARGON2_OWORDS_IN_BLOCK; i++) {\n        state[i] = veorq_u64(state[i], block_XY[i]);\n        vst1q_u64((uint64_t *) (&next_block[16 * i]), state[i]);\n    }\n}\n\nstatic void\nfill_block_with_xor(uint64x2_t *state, const uint8_t *ref_block,\n                    uint8_t *next_block)\n{\n    uint64x2_t block_XY[ARGON2_OWORDS_IN_BLOCK];\n    uint32_t   i;\n\n    for (i = 0; i < ARGON2_OWORDS_IN_BLOCK; i++) {\n        state[i] = veorq_u64(\n            state[i], vld1q_u64((const uint64_t *) (&ref_block[16 * i])));\n        block_XY[i] = veorq_u64(\n            state[i], vld1q_u64((const uint64_t *) (&next_block[16 * i])));\n    }\n\n    for (i = 0; i < 8; ++i) {\n        BLAKE2_ROUND_NEON(state[8 * i + 0], state[8 * i + 1], state[8 * i + 2],\n                          state[8 * i + 3], state[8 * i + 4], state[8 * i + 5],\n                          state[8 * i + 6], state[8 * i + 7]);\n    }\n\n    for (i = 0; i < 8; ++i) {\n        BLAKE2_ROUND_NEON(state[8 * 0 + i], state[8 * 1 + i], state[8 * 2 + i],\n                          state[8 * 3 + i], state[8 * 4 + i], state[8 * 5 + i],\n                          state[8 * 6 + i], state[8 * 7 + i]);\n    }\n\n    for (i = 0; i < ARGON2_OWORDS_IN_BLOCK; i++) {\n        state[i] = veorq_u64(state[i], block_XY[i]);\n        vst1q_u64((uint64_t *) (&next_block[16 * i]), state[i]);\n    }\n}\n\nstatic void\ngenerate_addresses(const argon2_instance_t *instance,\n                   const argon2_position_t *position, uint64_t *pseudo_rands)\n{\n    block    address_block, input_block, tmp_block;\n    uint32_t i;\n\n    init_block_value(&address_block, 0);\n    init_block_value(&input_block, 0);\n\n    if (instance != NULL && position != NULL) {\n        input_block.v[0] = position->pass;\n        input_block.v[1] = position->lane;\n        input_block.v[2] = position->slice;\n        input_block.v[3] = instance->memory_blocks;\n        input_block.v[4] = instance->passes;\n        input_block.v[5] = instance->type;\n\n        for (i = 0; i < instance->segment_length; ++i) {\n            if (i % ARGON2_ADDRESSES_IN_BLOCK == 0) {\n                uint64x2_t zero_block[ARGON2_OWORDS_IN_BLOCK];\n                uint64x2_t zero2_block[ARGON2_OWORDS_IN_BLOCK];\n\n                memset(zero_block, 0, sizeof(zero_block));\n                memset(zero2_block, 0, sizeof(zero2_block));\n                init_block_value(&address_block, 0);\n                init_block_value(&tmp_block, 0);\n\n                input_block.v[6]++;\n\n                fill_block_with_xor(zero_block, (uint8_t *) &input_block.v,\n                                    (uint8_t *) &tmp_block.v);\n                fill_block_with_xor(zero2_block, (uint8_t *) &tmp_block.v,\n                                    (uint8_t *) &address_block.v);\n            }\n\n            pseudo_rands[i] = address_block.v[i % ARGON2_ADDRESSES_IN_BLOCK];\n        }\n    }\n}\n\nvoid\nargon2_fill_segment_neon(const argon2_instance_t *instance,\n                         argon2_position_t        position)\n{\n    block     *ref_block = NULL, *curr_block = NULL;\n    uint64_t   pseudo_rand, ref_index, ref_lane;\n    uint32_t   prev_offset, curr_offset;\n    uint32_t   starting_index, i;\n    uint64x2_t state[ARGON2_OWORDS_IN_BLOCK];\n    int        data_independent_addressing = 1;\n\n    uint64_t *pseudo_rands = NULL;\n\n    if (instance == NULL) {\n        return;\n    }\n\n    if (instance->type == Argon2_id &&\n        (position.pass != 0 || position.slice >= ARGON2_SYNC_POINTS / 2)) {\n        data_independent_addressing = 0;\n    }\n\n    pseudo_rands = instance->pseudo_rands;\n\n    if (data_independent_addressing) {\n        generate_addresses(instance, &position, pseudo_rands);\n    }\n\n    starting_index = 0;\n\n    if ((0 == position.pass) && (0 == position.slice)) {\n        starting_index = 2;\n    }\n\n    curr_offset = position.lane * instance->lane_length +\n                  position.slice * instance->segment_length + starting_index;\n\n    if (0 == curr_offset % instance->lane_length) {\n        prev_offset = curr_offset + instance->lane_length - 1;\n    } else {\n        prev_offset = curr_offset - 1;\n    }\n\n    memcpy(state, ((instance->region->memory + prev_offset)->v),\n           ARGON2_BLOCK_SIZE);\n\n    for (i = starting_index; i < instance->segment_length;\n         ++i, ++curr_offset, ++prev_offset) {\n        if (curr_offset % instance->lane_length == 1) {\n            prev_offset = curr_offset - 1;\n        }\n\n        if (data_independent_addressing) {\n#pragma warning(push)\n#pragma warning(disable : 6385)\n            pseudo_rand = pseudo_rands[i];\n#pragma warning(pop)\n        } else {\n            pseudo_rand = instance->region->memory[prev_offset].v[0];\n        }\n\n        ref_lane = ((pseudo_rand >> 32)) % instance->lanes;\n\n        if ((position.pass == 0) && (position.slice == 0)) {\n            ref_lane = position.lane;\n        }\n\n        position.index = i;\n        ref_index = index_alpha(instance, &position, pseudo_rand & 0xFFFFFFFF,\n                                ref_lane == position.lane);\n\n        ref_block = instance->region->memory +\n                    instance->lane_length * ref_lane + ref_index;\n        curr_block = instance->region->memory + curr_offset;\n        if (position.pass != 0) {\n            fill_block_with_xor(state, (uint8_t *) ref_block->v,\n                                (uint8_t *) curr_block->v);\n        } else {\n            fill_block(state, (uint8_t *) ref_block->v,\n                       (uint8_t *) curr_block->v);\n        }\n    }\n}\n\n#endif\n"
  },
  {
    "path": "src/libsodium/crypto_pwhash/argon2/argon2-fill-block-ref.c",
    "content": "/*\n * Argon2 source code package\n *\n * Written by Daniel Dinu and Dmitry Khovratovich, 2015\n *\n * This work is licensed under a Creative Commons CC0 1.0 License/Waiver.\n *\n * You should have received a copy of the CC0 Public Domain Dedication along\n * with\n * this software. If not, see\n * <http://creativecommons.org/publicdomain/zero/1.0/>.\n */\n\n#include <stdint.h>\n#include <stdlib.h>\n#include <string.h>\n\n#include \"argon2-core.h\"\n#include \"argon2.h\"\n#include \"blamka-round-ref.h\"\n#include \"private/common.h\"\n\nstatic void\nfill_block(const block *prev_block, const block *ref_block, block *next_block)\n{\n    block    blockR, block_tmp;\n    unsigned i;\n\n    copy_block(&blockR, ref_block);\n    xor_block(&blockR, prev_block);\n    copy_block(&block_tmp, &blockR);\n    /* Now blockR = ref_block + prev_block and block_tmp = ref_block + prev_block\n       Apply Blake2 on columns of 64-bit words: (0,1,...,15), then\n       (16,17,..31)... finally (112,113,...127) */\n    for (i = 0; i < 8; ++i) {\n        BLAKE2_ROUND_NOMSG(\n            blockR.v[16 * i], blockR.v[16 * i + 1], blockR.v[16 * i + 2],\n            blockR.v[16 * i + 3], blockR.v[16 * i + 4], blockR.v[16 * i + 5],\n            blockR.v[16 * i + 6], blockR.v[16 * i + 7], blockR.v[16 * i + 8],\n            blockR.v[16 * i + 9], blockR.v[16 * i + 10], blockR.v[16 * i + 11],\n            blockR.v[16 * i + 12], blockR.v[16 * i + 13], blockR.v[16 * i + 14],\n            blockR.v[16 * i + 15]);\n    }\n\n    /* Apply Blake2 on rows of 64-bit words: (0,1,16,17,...112,113), then\n       (2,3,18,19,...,114,115).. finally (14,15,30,31,...,126,127) */\n    for (i = 0; i < 8; i++) {\n        BLAKE2_ROUND_NOMSG(\n            blockR.v[2 * i], blockR.v[2 * i + 1], blockR.v[2 * i + 16],\n            blockR.v[2 * i + 17], blockR.v[2 * i + 32], blockR.v[2 * i + 33],\n            blockR.v[2 * i + 48], blockR.v[2 * i + 49], blockR.v[2 * i + 64],\n            blockR.v[2 * i + 65], blockR.v[2 * i + 80], blockR.v[2 * i + 81],\n            blockR.v[2 * i + 96], blockR.v[2 * i + 97], blockR.v[2 * i + 112],\n            blockR.v[2 * i + 113]);\n    }\n\n    copy_block(next_block, &block_tmp);\n    xor_block(next_block, &blockR);\n}\n\nstatic void\nfill_block_with_xor(const block *prev_block, const block *ref_block,\n                    block *next_block)\n{\n    block    blockR, block_tmp;\n    unsigned i;\n\n    copy_block(&blockR, ref_block);\n    xor_block(&blockR, prev_block);\n    copy_block(&block_tmp, &blockR);\n    xor_block(&block_tmp,\n              next_block); /* Saving the next block contents for XOR over */\n    /* Now blockR = ref_block + prev_block and block_tmp = ref_block + prev_block\n     * + next_block */\n    /* Apply Blake2 on columns of 64-bit words: (0,1,...,15) , then\n       (16,17,..31)... finally (112,113,...127) */\n    for (i = 0; i < 8; ++i) {\n        BLAKE2_ROUND_NOMSG(\n            blockR.v[16 * i], blockR.v[16 * i + 1], blockR.v[16 * i + 2],\n            blockR.v[16 * i + 3], blockR.v[16 * i + 4], blockR.v[16 * i + 5],\n            blockR.v[16 * i + 6], blockR.v[16 * i + 7], blockR.v[16 * i + 8],\n            blockR.v[16 * i + 9], blockR.v[16 * i + 10], blockR.v[16 * i + 11],\n            blockR.v[16 * i + 12], blockR.v[16 * i + 13], blockR.v[16 * i + 14],\n            blockR.v[16 * i + 15]);\n    }\n\n    /* Apply Blake2 on rows of 64-bit words: (0,1,16,17,...112,113), then\n       (2,3,18,19,...,114,115).. finally (14,15,30,31,...,126,127) */\n    for (i = 0; i < 8; i++) {\n        BLAKE2_ROUND_NOMSG(\n            blockR.v[2 * i], blockR.v[2 * i + 1], blockR.v[2 * i + 16],\n            blockR.v[2 * i + 17], blockR.v[2 * i + 32], blockR.v[2 * i + 33],\n            blockR.v[2 * i + 48], blockR.v[2 * i + 49], blockR.v[2 * i + 64],\n            blockR.v[2 * i + 65], blockR.v[2 * i + 80], blockR.v[2 * i + 81],\n            blockR.v[2 * i + 96], blockR.v[2 * i + 97], blockR.v[2 * i + 112],\n            blockR.v[2 * i + 113]);\n    }\n\n    copy_block(next_block, &block_tmp);\n    xor_block(next_block, &blockR);\n}\n\n/*\n * Generate pseudo-random values to reference blocks in the segment and puts\n * them into the array\n * @param instance Pointer to the current instance\n * @param position Pointer to the current position\n * @param pseudo_rands Pointer to the array of 64-bit values\n * @pre pseudo_rands must point to @a instance->segment_length allocated values\n */\nstatic void\ngenerate_addresses(const argon2_instance_t *instance,\n                   const argon2_position_t *position, uint64_t *pseudo_rands)\n{\n    block    zero_block, input_block, address_block, tmp_block;\n    uint32_t i;\n\n    init_block_value(&zero_block, 0);\n    init_block_value(&input_block, 0);\n\n    if (instance != NULL && position != NULL) {\n        input_block.v[0] = position->pass;\n        input_block.v[1] = position->lane;\n        input_block.v[2] = position->slice;\n        input_block.v[3] = instance->memory_blocks;\n        input_block.v[4] = instance->passes;\n        input_block.v[5] = instance->type;\n\n        for (i = 0; i < instance->segment_length; ++i) {\n            if (i % ARGON2_ADDRESSES_IN_BLOCK == 0) {\n                input_block.v[6]++;\n                init_block_value(&tmp_block, 0);\n                init_block_value(&address_block, 0);\n                fill_block_with_xor(&zero_block, &input_block, &tmp_block);\n                fill_block_with_xor(&zero_block, &tmp_block, &address_block);\n            }\n\n            pseudo_rands[i] = address_block.v[i % ARGON2_ADDRESSES_IN_BLOCK];\n        }\n    }\n}\n\nvoid\nargon2_fill_segment_ref(const argon2_instance_t *instance,\n                        argon2_position_t position)\n{\n    block    *ref_block = NULL, *curr_block = NULL;\n    /* Pseudo-random values that determine the reference block position */\n    uint64_t *pseudo_rands = NULL;\n    uint64_t  pseudo_rand, ref_index, ref_lane;\n    uint32_t  prev_offset, curr_offset;\n    uint32_t  starting_index;\n    uint32_t  i;\n    int       data_independent_addressing = 1;\n\n    if (instance == NULL) {\n        return;\n    }\n\n    if (instance->type == Argon2_id &&\n        (position.pass != 0 || position.slice >= ARGON2_SYNC_POINTS / 2)) {\n        data_independent_addressing = 0;\n    }\n\n    pseudo_rands = instance->pseudo_rands;\n\n    if (data_independent_addressing) {\n        generate_addresses(instance, &position, pseudo_rands);\n    }\n\n    starting_index = 0;\n\n    if ((0 == position.pass) && (0 == position.slice)) {\n        starting_index = 2; /* we have already generated the first two blocks */\n    }\n\n    /* Offset of the current block */\n    curr_offset = position.lane * instance->lane_length +\n                  position.slice * instance->segment_length + starting_index;\n\n    if (0 == curr_offset % instance->lane_length) {\n        /* Last block in this lane */\n        prev_offset = curr_offset + instance->lane_length - 1;\n    } else {\n        /* Previous block */\n        prev_offset = curr_offset - 1;\n    }\n\n    for (i = starting_index; i < instance->segment_length;\n         ++i, ++curr_offset, ++prev_offset) {\n        /*1.1 Rotating prev_offset if needed */\n        if (curr_offset % instance->lane_length == 1) {\n            prev_offset = curr_offset - 1;\n        }\n\n        /* 1.2 Computing the index of the reference block */\n        /* 1.2.1 Taking pseudo-random value from the previous block */\n        if (data_independent_addressing) {\n#pragma warning(push)\n#pragma warning(disable : 6385)\n            pseudo_rand = pseudo_rands[i];\n#pragma warning(pop)\n        } else {\n            pseudo_rand = instance->region->memory[prev_offset].v[0];\n        }\n\n        /* 1.2.2 Computing the lane of the reference block */\n        ref_lane = ((pseudo_rand >> 32)) % instance->lanes;\n\n        if ((position.pass == 0) && (position.slice == 0)) {\n            /* Can not reference other lanes yet */\n            ref_lane = position.lane;\n        }\n\n        /* 1.2.3 Computing the number of possible reference block within the\n         * lane.\n         */\n        position.index = i;\n        ref_index = index_alpha(instance, &position, pseudo_rand & 0xFFFFFFFF,\n                                ref_lane == position.lane);\n\n        /* 2 Creating a new block */\n        ref_block = instance->region->memory +\n                    instance->lane_length * ref_lane + ref_index;\n        curr_block = instance->region->memory + curr_offset;\n        if (position.pass != 0) {\n            fill_block_with_xor(instance->region->memory + prev_offset,\n                                ref_block, curr_block);\n        } else {\n            fill_block(instance->region->memory + prev_offset, ref_block,\n                       curr_block);\n        }\n    }\n}\n"
  },
  {
    "path": "src/libsodium/crypto_pwhash/argon2/argon2-fill-block-ssse3.c",
    "content": "/*\n * Argon2 source code package\n *\n * Written by Daniel Dinu and Dmitry Khovratovich, 2015\n *\n * This work is licensed under a Creative Commons CC0 1.0 License/Waiver.\n *\n * You should have received a copy of the CC0 Public Domain Dedication along\n * with\n * this software. If not, see\n * <http://creativecommons.org/publicdomain/zero/1.0/>.\n */\n\n#include <stdint.h>\n#include <stdlib.h>\n#include <string.h>\n\n#include \"argon2-core.h\"\n#include \"argon2.h\"\n#include \"private/common.h\"\n\n#if defined(HAVE_EMMINTRIN_H) && defined(HAVE_TMMINTRIN_H)\n\n# ifdef __clang__\n#  pragma clang attribute push(__attribute__((target(\"sse2,ssse3\"))), apply_to = function)\n# elif defined(__GNUC__)\n#  pragma GCC target(\"sse2,ssse3\")\n# endif\n\n# ifdef _MSC_VER\n#  include <intrin.h> /* for _mm_set_epi64x */\n# endif\n# include <emmintrin.h>\n# include <tmmintrin.h>\n# include \"private/sse2_64_32.h\"\n\n# include \"blamka-round-ssse3.h\"\n\nstatic void\nfill_block(__m128i *state, const uint8_t *ref_block, uint8_t *next_block)\n{\n    __m128i  block_XY[ARGON2_OWORDS_IN_BLOCK];\n    uint32_t i;\n\n    for (i = 0; i < ARGON2_OWORDS_IN_BLOCK; i++) {\n        block_XY[i] = state[i] = _mm_xor_si128(\n            state[i], _mm_loadu_si128((__m128i const *) (&ref_block[16 * i])));\n    }\n\n    for (i = 0; i < 8; ++i) {\n        BLAKE2_ROUND(state[8 * i + 0], state[8 * i + 1], state[8 * i + 2],\n                     state[8 * i + 3], state[8 * i + 4], state[8 * i + 5],\n                     state[8 * i + 6], state[8 * i + 7]);\n    }\n\n    for (i = 0; i < 8; ++i) {\n        BLAKE2_ROUND(state[8 * 0 + i], state[8 * 1 + i], state[8 * 2 + i],\n                     state[8 * 3 + i], state[8 * 4 + i], state[8 * 5 + i],\n                     state[8 * 6 + i], state[8 * 7 + i]);\n    }\n\n    for (i = 0; i < ARGON2_OWORDS_IN_BLOCK; i++) {\n        state[i] = _mm_xor_si128(state[i], block_XY[i]);\n        _mm_storeu_si128((__m128i *) (&next_block[16 * i]), state[i]);\n    }\n}\n\nstatic void\nfill_block_with_xor(__m128i *state, const uint8_t *ref_block,\n                    uint8_t *next_block)\n{\n    __m128i  block_XY[ARGON2_OWORDS_IN_BLOCK];\n    uint32_t i;\n\n    for (i = 0; i < ARGON2_OWORDS_IN_BLOCK; i++) {\n        state[i] = _mm_xor_si128(\n            state[i], _mm_loadu_si128((__m128i const *) (&ref_block[16 * i])));\n        block_XY[i] = _mm_xor_si128(\n            state[i], _mm_loadu_si128((__m128i const *) (&next_block[16 * i])));\n    }\n\n    for (i = 0; i < 8; ++i) {\n        BLAKE2_ROUND(state[8 * i + 0], state[8 * i + 1], state[8 * i + 2],\n                     state[8 * i + 3], state[8 * i + 4], state[8 * i + 5],\n                     state[8 * i + 6], state[8 * i + 7]);\n    }\n\n    for (i = 0; i < 8; ++i) {\n        BLAKE2_ROUND(state[8 * 0 + i], state[8 * 1 + i], state[8 * 2 + i],\n                     state[8 * 3 + i], state[8 * 4 + i], state[8 * 5 + i],\n                     state[8 * 6 + i], state[8 * 7 + i]);\n    }\n\n    for (i = 0; i < ARGON2_OWORDS_IN_BLOCK; i++) {\n        state[i] = _mm_xor_si128(state[i], block_XY[i]);\n        _mm_storeu_si128((__m128i *) (&next_block[16 * i]), state[i]);\n    }\n}\n\nstatic void\ngenerate_addresses(const argon2_instance_t *instance,\n                   const argon2_position_t *position, uint64_t *pseudo_rands)\n{\n    block    address_block, input_block, tmp_block;\n    uint32_t i;\n\n    init_block_value(&address_block, 0);\n    init_block_value(&input_block, 0);\n\n    if (instance != NULL && position != NULL) {\n        input_block.v[0] = position->pass;\n        input_block.v[1] = position->lane;\n        input_block.v[2] = position->slice;\n        input_block.v[3] = instance->memory_blocks;\n        input_block.v[4] = instance->passes;\n        input_block.v[5] = instance->type;\n\n        for (i = 0; i < instance->segment_length; ++i) {\n            if (i % ARGON2_ADDRESSES_IN_BLOCK == 0) {\n                /* Temporary zero-initialized blocks */\n                __m128i zero_block[ARGON2_OWORDS_IN_BLOCK];\n                __m128i zero2_block[ARGON2_OWORDS_IN_BLOCK];\n\n                memset(zero_block, 0, sizeof(zero_block));\n                memset(zero2_block, 0, sizeof(zero2_block));\n                init_block_value(&address_block, 0);\n                init_block_value(&tmp_block, 0);\n                /* Increasing index counter */\n                input_block.v[6]++;\n                /* First iteration of G */\n                fill_block_with_xor(zero_block, (uint8_t *) &input_block.v,\n                                    (uint8_t *) &tmp_block.v);\n                /* Second iteration of G */\n                fill_block_with_xor(zero2_block, (uint8_t *) &tmp_block.v,\n                                    (uint8_t *) &address_block.v);\n            }\n\n            pseudo_rands[i] = address_block.v[i % ARGON2_ADDRESSES_IN_BLOCK];\n        }\n    }\n}\n\nvoid\nargon2_fill_segment_ssse3(const argon2_instance_t *instance,\n                          argon2_position_t        position)\n{\n    block    *ref_block = NULL, *curr_block = NULL;\n    uint64_t  pseudo_rand, ref_index, ref_lane;\n    uint32_t  prev_offset, curr_offset;\n    uint32_t  starting_index, i;\n    __m128i   state[ARGON2_OWORDS_IN_BLOCK];\n    int       data_independent_addressing = 1;\n\n    /* Pseudo-random values that determine the reference block position */\n    uint64_t *pseudo_rands = NULL;\n\n    if (instance == NULL) {\n        return;\n    }\n\n    if (instance->type == Argon2_id &&\n        (position.pass != 0 || position.slice >= ARGON2_SYNC_POINTS / 2)) {\n        data_independent_addressing = 0;\n    }\n\n    pseudo_rands = instance->pseudo_rands;\n\n    if (data_independent_addressing) {\n        generate_addresses(instance, &position, pseudo_rands);\n    }\n\n    starting_index = 0;\n\n    if ((0 == position.pass) && (0 == position.slice)) {\n        starting_index = 2; /* we have already generated the first two blocks */\n    }\n\n    /* Offset of the current block */\n    curr_offset = position.lane * instance->lane_length +\n                  position.slice * instance->segment_length + starting_index;\n\n    if (0 == curr_offset % instance->lane_length) {\n        /* Last block in this lane */\n        prev_offset = curr_offset + instance->lane_length - 1;\n    } else {\n        /* Previous block */\n        prev_offset = curr_offset - 1;\n    }\n\n    memcpy(state, ((instance->region->memory + prev_offset)->v),\n           ARGON2_BLOCK_SIZE);\n\n    for (i = starting_index; i < instance->segment_length;\n         ++i, ++curr_offset, ++prev_offset) {\n        /*1.1 Rotating prev_offset if needed */\n        if (curr_offset % instance->lane_length == 1) {\n            prev_offset = curr_offset - 1;\n        }\n\n        /* 1.2 Computing the index of the reference block */\n        /* 1.2.1 Taking pseudo-random value from the previous block */\n        if (data_independent_addressing) {\n#pragma warning(push)\n#pragma warning(disable : 6385)\n            pseudo_rand = pseudo_rands[i];\n#pragma warning(pop)\n        } else {\n            pseudo_rand = instance->region->memory[prev_offset].v[0];\n        }\n\n        /* 1.2.2 Computing the lane of the reference block */\n        ref_lane = ((pseudo_rand >> 32)) % instance->lanes;\n\n        if ((position.pass == 0) && (position.slice == 0)) {\n            /* Can not reference other lanes yet */\n            ref_lane = position.lane;\n        }\n\n        /* 1.2.3 Computing the number of possible reference block within the\n         * lane.\n         */\n        position.index = i;\n        ref_index = index_alpha(instance, &position, pseudo_rand & 0xFFFFFFFF,\n                                ref_lane == position.lane);\n\n        /* 2 Creating a new block */\n        ref_block = instance->region->memory +\n                    instance->lane_length * ref_lane + ref_index;\n        curr_block = instance->region->memory + curr_offset;\n        if (position.pass != 0) {\n            fill_block_with_xor(state, (uint8_t *) ref_block->v,\n                                (uint8_t *) curr_block->v);\n        } else {\n            fill_block(state, (uint8_t *) ref_block->v,\n                       (uint8_t *) curr_block->v);\n        }\n    }\n}\n\n#ifdef __clang__\n# pragma clang attribute pop\n#endif\n\n#endif\n"
  },
  {
    "path": "src/libsodium/crypto_pwhash/argon2/argon2-fill-block-wasm32.c",
    "content": "/*\n * Argon2 source code package\n *\n * Written by Daniel Dinu and Dmitry Khovratovich, 2015\n *\n * This work is licensed under a Creative Commons CC0 1.0 License/Waiver.\n *\n * You should have received a copy of the CC0 Public Domain Dedication along\n * with\n * this software. If not, see\n * <http://creativecommons.org/publicdomain/zero/1.0/>.\n *\n * WebAssembly SIMD port of the SSSE3 implementation.\n */\n\n#include <stdint.h>\n#include <stdlib.h>\n#include <string.h>\n\n#include \"argon2-core.h\"\n#include \"argon2.h\"\n#include \"private/common.h\"\n\n#if defined(__wasm_simd128__)\n\n#include <wasm_simd128.h>\n\n#include \"blamka-round-wasm32.h\"\n\nstatic void\nfill_block(v128_t *state, const uint8_t *ref_block, uint8_t *next_block)\n{\n    v128_t   block_XY[ARGON2_OWORDS_IN_BLOCK];\n    uint32_t i;\n\n    for (i = 0; i < ARGON2_OWORDS_IN_BLOCK; i++) {\n        block_XY[i] = state[i] = wasm_v128_xor(\n            state[i], wasm_v128_load((const v128_t *) (&ref_block[16 * i])));\n    }\n\n    for (i = 0; i < 8; ++i) {\n        BLAKE2_ROUND_WASM(state[8 * i + 0], state[8 * i + 1], state[8 * i + 2],\n                          state[8 * i + 3], state[8 * i + 4], state[8 * i + 5],\n                          state[8 * i + 6], state[8 * i + 7]);\n    }\n\n    for (i = 0; i < 8; ++i) {\n        BLAKE2_ROUND_WASM(state[8 * 0 + i], state[8 * 1 + i], state[8 * 2 + i],\n                          state[8 * 3 + i], state[8 * 4 + i], state[8 * 5 + i],\n                          state[8 * 6 + i], state[8 * 7 + i]);\n    }\n\n    for (i = 0; i < ARGON2_OWORDS_IN_BLOCK; i++) {\n        state[i] = wasm_v128_xor(state[i], block_XY[i]);\n        wasm_v128_store((v128_t *) (&next_block[16 * i]), state[i]);\n    }\n}\n\nstatic void\nfill_block_with_xor(v128_t *state, const uint8_t *ref_block,\n                    uint8_t *next_block)\n{\n    v128_t   block_XY[ARGON2_OWORDS_IN_BLOCK];\n    uint32_t i;\n\n    for (i = 0; i < ARGON2_OWORDS_IN_BLOCK; i++) {\n        state[i] = wasm_v128_xor(\n            state[i], wasm_v128_load((const v128_t *) (&ref_block[16 * i])));\n        block_XY[i] = wasm_v128_xor(\n            state[i], wasm_v128_load((const v128_t *) (&next_block[16 * i])));\n    }\n\n    for (i = 0; i < 8; ++i) {\n        BLAKE2_ROUND_WASM(state[8 * i + 0], state[8 * i + 1], state[8 * i + 2],\n                          state[8 * i + 3], state[8 * i + 4], state[8 * i + 5],\n                          state[8 * i + 6], state[8 * i + 7]);\n    }\n\n    for (i = 0; i < 8; ++i) {\n        BLAKE2_ROUND_WASM(state[8 * 0 + i], state[8 * 1 + i], state[8 * 2 + i],\n                          state[8 * 3 + i], state[8 * 4 + i], state[8 * 5 + i],\n                          state[8 * 6 + i], state[8 * 7 + i]);\n    }\n\n    for (i = 0; i < ARGON2_OWORDS_IN_BLOCK; i++) {\n        state[i] = wasm_v128_xor(state[i], block_XY[i]);\n        wasm_v128_store((v128_t *) (&next_block[16 * i]), state[i]);\n    }\n}\n\nstatic void\ngenerate_addresses(const argon2_instance_t *instance,\n                   const argon2_position_t *position, uint64_t *pseudo_rands)\n{\n    block    address_block, input_block, tmp_block;\n    uint32_t i;\n\n    init_block_value(&address_block, 0);\n    init_block_value(&input_block, 0);\n\n    if (instance != NULL && position != NULL) {\n        input_block.v[0] = position->pass;\n        input_block.v[1] = position->lane;\n        input_block.v[2] = position->slice;\n        input_block.v[3] = instance->memory_blocks;\n        input_block.v[4] = instance->passes;\n        input_block.v[5] = instance->type;\n\n        for (i = 0; i < instance->segment_length; ++i) {\n            if (i % ARGON2_ADDRESSES_IN_BLOCK == 0) {\n                v128_t zero_block[ARGON2_OWORDS_IN_BLOCK];\n                v128_t zero2_block[ARGON2_OWORDS_IN_BLOCK];\n\n                memset(zero_block, 0, sizeof(zero_block));\n                memset(zero2_block, 0, sizeof(zero2_block));\n                init_block_value(&address_block, 0);\n                init_block_value(&tmp_block, 0);\n                input_block.v[6]++;\n                fill_block_with_xor(zero_block, (uint8_t *) &input_block.v,\n                                    (uint8_t *) &tmp_block.v);\n                fill_block_with_xor(zero2_block, (uint8_t *) &tmp_block.v,\n                                    (uint8_t *) &address_block.v);\n            }\n\n            pseudo_rands[i] = address_block.v[i % ARGON2_ADDRESSES_IN_BLOCK];\n        }\n    }\n}\n\nvoid\nargon2_fill_segment_wasm32(const argon2_instance_t *instance,\n                           argon2_position_t        position)\n{\n    block    *ref_block = NULL, *curr_block = NULL;\n    uint64_t  pseudo_rand, ref_index, ref_lane;\n    uint32_t  prev_offset, curr_offset;\n    uint32_t  starting_index, i;\n    v128_t    state[ARGON2_OWORDS_IN_BLOCK];\n    int       data_independent_addressing = 1;\n\n    uint64_t *pseudo_rands = NULL;\n\n    if (instance == NULL) {\n        return;\n    }\n\n    if (instance->type == Argon2_id &&\n        (position.pass != 0 || position.slice >= ARGON2_SYNC_POINTS / 2)) {\n        data_independent_addressing = 0;\n    }\n\n    pseudo_rands = instance->pseudo_rands;\n\n    if (data_independent_addressing) {\n        generate_addresses(instance, &position, pseudo_rands);\n    }\n\n    starting_index = 0;\n\n    if ((0 == position.pass) && (0 == position.slice)) {\n        starting_index = 2;\n    }\n\n    curr_offset = position.lane * instance->lane_length +\n                  position.slice * instance->segment_length + starting_index;\n\n    if (0 == curr_offset % instance->lane_length) {\n        prev_offset = curr_offset + instance->lane_length - 1;\n    } else {\n        prev_offset = curr_offset - 1;\n    }\n\n    memcpy(state, ((instance->region->memory + prev_offset)->v),\n           ARGON2_BLOCK_SIZE);\n\n    for (i = starting_index; i < instance->segment_length;\n         ++i, ++curr_offset, ++prev_offset) {\n        if (curr_offset % instance->lane_length == 1) {\n            prev_offset = curr_offset - 1;\n        }\n\n        if (data_independent_addressing) {\n#pragma warning(push)\n#pragma warning(disable : 6385)\n            pseudo_rand = pseudo_rands[i];\n#pragma warning(pop)\n        } else {\n            pseudo_rand = instance->region->memory[prev_offset].v[0];\n        }\n\n        ref_lane = ((pseudo_rand >> 32)) % instance->lanes;\n\n        if ((position.pass == 0) && (position.slice == 0)) {\n            ref_lane = position.lane;\n        }\n\n        position.index = i;\n        ref_index = index_alpha(instance, &position, pseudo_rand & 0xFFFFFFFF,\n                                ref_lane == position.lane);\n\n        ref_block = instance->region->memory +\n                    instance->lane_length * ref_lane + ref_index;\n        curr_block = instance->region->memory + curr_offset;\n        if (position.pass != 0) {\n            fill_block_with_xor(state, (uint8_t *) ref_block->v,\n                                (uint8_t *) curr_block->v);\n        } else {\n            fill_block(state, (uint8_t *) ref_block->v,\n                       (uint8_t *) curr_block->v);\n        }\n    }\n}\n\n#endif\n"
  },
  {
    "path": "src/libsodium/crypto_pwhash/argon2/argon2.c",
    "content": "/*\n * Argon2 source code package\n *\n * Written by Daniel Dinu and Dmitry Khovratovich, 2015\n *\n * This work is licensed under a Creative Commons CC0 1.0 License/Waiver.\n *\n * You should have received a copy of the CC0 Public Domain Dedication along\n * with\n * this software. If not, see\n * <http://creativecommons.org/publicdomain/zero/1.0/>.\n */\n\n#include <limits.h>\n#include <stddef.h>\n#include <stdint.h>\n#include <stdlib.h>\n#include <string.h>\n\n#include \"randombytes.h\"\n#include \"utils.h\"\n\n#include \"argon2-core.h\"\n#include \"argon2-encoding.h\"\n#include \"argon2.h\"\n\nint\nargon2_ctx(argon2_context *context, argon2_type type)\n{\n    /* 1. Validate all inputs */\n    int               result = argon2_validate_inputs(context);\n    uint32_t          memory_blocks, segment_length;\n    uint32_t          pass;\n    argon2_instance_t instance;\n\n    if (ARGON2_OK != result) {\n        return result; /* LCOV_EXCL_LINE */\n    }\n\n    if (type != Argon2_id && type != Argon2_i) {\n        return ARGON2_INCORRECT_TYPE; /* LCOV_EXCL_LINE */\n    }\n\n    /* 2. Align memory size */\n    /* Minimum memory_blocks = 8L blocks, where L is the number of lanes */\n    memory_blocks = context->m_cost;\n\n    if (memory_blocks < 2 * ARGON2_SYNC_POINTS * context->lanes) {\n        memory_blocks = 2 * ARGON2_SYNC_POINTS * context->lanes; /* LCOV_EXCL_LINE */\n    }\n\n    segment_length = memory_blocks / (context->lanes * ARGON2_SYNC_POINTS);\n    /* Ensure that all segments have equal length */\n    memory_blocks = segment_length * (context->lanes * ARGON2_SYNC_POINTS);\n\n    instance.region         = NULL;\n    instance.passes         = context->t_cost;\n    instance.current_pass   = ~ 0U;\n    instance.memory_blocks  = memory_blocks;\n    instance.segment_length = segment_length;\n    instance.lane_length    = segment_length * ARGON2_SYNC_POINTS;\n    instance.lanes          = context->lanes;\n    instance.threads        = context->threads;\n    instance.type           = type;\n\n    /* 3. Initialization: Hashing inputs, allocating memory, filling first\n     * blocks\n     */\n    result = argon2_initialize(&instance, context);\n\n    if (ARGON2_OK != result) {\n        return result; /* LCOV_EXCL_LINE */\n    }\n\n    /* 4. Filling memory */\n    for (pass = 0; pass < instance.passes; pass++) {\n        argon2_fill_memory_blocks(&instance, pass);\n    }\n\n    /* 5. Finalization */\n    argon2_finalize(context, &instance);\n\n    return ARGON2_OK;\n}\n\nint\nargon2_hash(const uint32_t t_cost, const uint32_t m_cost,\n            const uint32_t parallelism, const void *pwd, const size_t pwdlen,\n            const void *salt, const size_t saltlen, void *hash,\n            const size_t hashlen, char *encoded, const size_t encodedlen,\n            argon2_type type)\n{\n    argon2_context context;\n    int            result;\n    uint8_t       *out;\n\n    if (hash != NULL) {\n        randombytes_buf(hash, hashlen);\n    }\n\n    if (pwdlen > ARGON2_MAX_PWD_LENGTH) {\n        return ARGON2_PWD_TOO_LONG; /* LCOV_EXCL_LINE */\n    }\n\n    if (hashlen > ARGON2_MAX_OUTLEN) {\n        return ARGON2_OUTPUT_TOO_LONG; /* LCOV_EXCL_LINE */\n    }\n\n    if (saltlen > ARGON2_MAX_SALT_LENGTH) {\n        return ARGON2_SALT_TOO_LONG; /* LCOV_EXCL_LINE */\n    }\n\n    out = (uint8_t *) malloc(hashlen);\n    if (!out) {\n        return ARGON2_MEMORY_ALLOCATION_ERROR; /* LCOV_EXCL_LINE */\n    }\n\n    context.out       = (uint8_t *) out;\n    context.outlen    = (uint32_t) hashlen;\n    context.pwd       = (uint8_t *) pwd;\n    context.pwdlen    = (uint32_t) pwdlen;\n    context.salt      = (uint8_t *) salt;\n    context.saltlen   = (uint32_t) saltlen;\n    context.secret    = NULL;\n    context.secretlen = 0;\n    context.ad        = NULL;\n    context.adlen     = 0;\n    context.t_cost    = t_cost;\n    context.m_cost    = m_cost;\n    context.lanes     = parallelism;\n    context.threads   = parallelism;\n    context.flags     = ARGON2_DEFAULT_FLAGS;\n\n    result = argon2_ctx(&context, type);\n\n    /* LCOV_EXCL_START */\n    if (result != ARGON2_OK) {\n        sodium_memzero(out, hashlen);\n        free(out);\n        return result;\n    }\n    /* LCOV_EXCL_STOP */\n\n    /* if encoding requested, write it */\n    if (encoded && encodedlen) {\n        if (argon2_encode_string(encoded, encodedlen,\n                                 &context, type) != ARGON2_OK) {\n            /* LCOV_EXCL_START */\n            sodium_memzero(out, hashlen);\n            sodium_memzero(encoded, encodedlen);\n            free(out);\n            return ARGON2_ENCODING_FAIL;\n            /* LCOV_EXCL_STOP */\n        }\n    }\n\n    /* if raw hash requested, write it */\n    if (hash) {\n        memcpy(hash, out, hashlen);\n    }\n\n    sodium_memzero(out, hashlen);\n    free(out);\n\n    return ARGON2_OK;\n}\n\nint\nargon2i_hash_encoded(const uint32_t t_cost, const uint32_t m_cost,\n                     const uint32_t parallelism, const void *pwd,\n                     const size_t pwdlen, const void *salt,\n                     const size_t saltlen, const size_t hashlen, char *encoded,\n                     const size_t encodedlen)\n{\n    return argon2_hash(t_cost, m_cost, parallelism, pwd, pwdlen, salt, saltlen,\n                       NULL, hashlen, encoded, encodedlen, Argon2_i);\n}\n\nint\nargon2i_hash_raw(const uint32_t t_cost, const uint32_t m_cost,\n                 const uint32_t parallelism, const void *pwd,\n                 const size_t pwdlen, const void *salt, const size_t saltlen,\n                 void *hash, const size_t hashlen)\n{\n    return argon2_hash(t_cost, m_cost, parallelism, pwd, pwdlen, salt, saltlen,\n                       hash, hashlen, NULL, 0, Argon2_i);\n}\n\nint\nargon2id_hash_encoded(const uint32_t t_cost, const uint32_t m_cost,\n                      const uint32_t parallelism, const void *pwd,\n                      const size_t pwdlen, const void *salt,\n                      const size_t saltlen, const size_t hashlen, char *encoded,\n                      const size_t encodedlen)\n{\n    return argon2_hash(t_cost, m_cost, parallelism, pwd, pwdlen, salt, saltlen,\n                       NULL, hashlen, encoded, encodedlen, Argon2_id);\n}\n\nint\nargon2id_hash_raw(const uint32_t t_cost, const uint32_t m_cost,\n                  const uint32_t parallelism, const void *pwd,\n                  const size_t pwdlen, const void *salt, const size_t saltlen,\n                  void *hash, const size_t hashlen)\n{\n    return argon2_hash(t_cost, m_cost, parallelism, pwd, pwdlen, salt, saltlen,\n                       hash, hashlen, NULL, 0, Argon2_id);\n}\n\nint\nargon2_verify(const char *encoded, const void *pwd, const size_t pwdlen,\n              argon2_type type)\n{\n    argon2_context ctx;\n    uint8_t       *out;\n    int            decode_result;\n    int            ret;\n    size_t         encoded_len;\n\n    memset(&ctx, 0, sizeof ctx);\n\n    ctx.pwd       = NULL;\n    ctx.pwdlen    = 0;\n    ctx.secret    = NULL;\n    ctx.secretlen = 0;\n\n    /* max values, to be updated in argon2_decode_string */\n    encoded_len = strlen(encoded);\n    if (encoded_len > UINT32_MAX) {\n        return ARGON2_DECODING_LENGTH_FAIL; /* LCOV_EXCL_LINE */\n    }\n    ctx.adlen   = (uint32_t) encoded_len;\n    ctx.saltlen = (uint32_t) encoded_len;\n    ctx.outlen  = (uint32_t) encoded_len;\n\n    ctx.ad   = (uint8_t *) malloc(ctx.adlen);\n    ctx.salt = (uint8_t *) malloc(ctx.saltlen);\n    ctx.out  = (uint8_t *) malloc(ctx.outlen);\n    /* LCOV_EXCL_START */\n    if (!ctx.out || !ctx.salt || !ctx.ad) {\n        free(ctx.ad);\n        free(ctx.salt);\n        free(ctx.out);\n        return ARGON2_MEMORY_ALLOCATION_ERROR;\n    }\n    /* LCOV_EXCL_STOP */\n    out = (uint8_t *) malloc(ctx.outlen);\n    if (!out) {\n        /* LCOV_EXCL_START */\n        free(ctx.ad);\n        free(ctx.salt);\n        free(ctx.out);\n        return ARGON2_MEMORY_ALLOCATION_ERROR;\n        /* LCOV_EXCL_STOP */\n    }\n\n    decode_result = argon2_decode_string(&ctx, encoded, type);\n    if (decode_result != ARGON2_OK) {\n        free(ctx.ad);\n        free(ctx.salt);\n        free(ctx.out);\n        free(out);\n        return decode_result;\n    }\n\n    ret = argon2_hash(ctx.t_cost, ctx.m_cost, ctx.threads, pwd, pwdlen,\n                      ctx.salt, ctx.saltlen, out, ctx.outlen, NULL, 0, type);\n\n    free(ctx.ad);\n    free(ctx.salt);\n\n    if (ret == ARGON2_OK && sodium_memcmp(out, ctx.out, ctx.outlen) != 0) {\n        ret = ARGON2_VERIFY_MISMATCH;\n    }\n    free(out);\n    free(ctx.out);\n\n    return ret;\n}\n\nint\nargon2i_verify(const char *encoded, const void *pwd, const size_t pwdlen)\n{\n    return argon2_verify(encoded, pwd, pwdlen, Argon2_i);\n}\n\nint\nargon2id_verify(const char *encoded, const void *pwd, const size_t pwdlen)\n{\n    return argon2_verify(encoded, pwd, pwdlen, Argon2_id);\n}\n"
  },
  {
    "path": "src/libsodium/crypto_pwhash/argon2/argon2.h",
    "content": "/*\n * Argon2 source code package\n *\n * Written by Daniel Dinu and Dmitry Khovratovich, 2015\n *\n * This work is licensed under a Creative Commons CC0 1.0 License/Waiver.\n *\n * You should have received a copy of the CC0 Public Domain Dedication along\n * with this software. If not, see\n * <http://creativecommons.org/publicdomain/zero/1.0/>.\n */\n#ifndef argon2_H\n#define argon2_H\n\n#include <limits.h>\n#include <stddef.h>\n#include <stdint.h>\n\n#include \"private/quirks.h\"\n\n/*\n * Argon2 input parameter restrictions\n */\n\n/* Minimum and maximum number of lanes (degree of parallelism) */\n#define ARGON2_MIN_LANES UINT32_C(1)\n#define ARGON2_MAX_LANES UINT32_C(0xFFFFFF)\n\n/* Minimum and maximum number of threads */\n#define ARGON2_MIN_THREADS UINT32_C(1)\n#define ARGON2_MAX_THREADS UINT32_C(0xFFFFFF)\n\n/* Number of synchronization points between lanes per pass */\n#define ARGON2_SYNC_POINTS UINT32_C(4)\n\n/* Minimum and maximum digest size in bytes */\n#define ARGON2_MIN_OUTLEN UINT32_C(16)\n#define ARGON2_MAX_OUTLEN UINT32_C(0xFFFFFFFF)\n\n/* Minimum and maximum number of memory blocks (each of BLOCK_SIZE bytes) */\n#define ARGON2_MIN_MEMORY (2 * ARGON2_SYNC_POINTS) /* 2 blocks per slice */\n\n#define ARGON2_MIN(a, b) ((a) < (b) ? (a) : (b))\n/* Max memory size is half the addressing space, topping at 2^32 blocks (4 TB)\n */\n#define ARGON2_MAX_MEMORY_BITS \\\n    ARGON2_MIN(UINT32_C(32), (sizeof(void *) * CHAR_BIT - 10 - 1))\n#define ARGON2_MAX_MEMORY \\\n    ARGON2_MIN(UINT32_C(0xFFFFFFFF), UINT64_C(1) << ARGON2_MAX_MEMORY_BITS)\n\n/* Minimum and maximum number of passes */\n#define ARGON2_MIN_TIME UINT32_C(1)\n#define ARGON2_MAX_TIME UINT32_C(0xFFFFFFFF)\n\n/* Minimum and maximum password length in bytes */\n#define ARGON2_MIN_PWD_LENGTH UINT32_C(0)\n#define ARGON2_MAX_PWD_LENGTH UINT32_C(0xFFFFFFFF)\n\n/* Minimum and maximum associated data length in bytes */\n#define ARGON2_MIN_AD_LENGTH UINT32_C(0)\n#define ARGON2_MAX_AD_LENGTH UINT32_C(0xFFFFFFFF)\n\n/* Minimum and maximum salt length in bytes */\n#define ARGON2_MIN_SALT_LENGTH UINT32_C(8)\n#define ARGON2_MAX_SALT_LENGTH UINT32_C(0xFFFFFFFF)\n\n/* Minimum and maximum key length in bytes */\n#define ARGON2_MIN_SECRET UINT32_C(0)\n#define ARGON2_MAX_SECRET UINT32_C(0xFFFFFFFF)\n\n#define ARGON2_FLAG_CLEAR_PASSWORD (UINT32_C(1) << 0)\n#define ARGON2_FLAG_CLEAR_SECRET (UINT32_C(1) << 1)\n#define ARGON2_DEFAULT_FLAGS (UINT32_C(0))\n\n/* Error codes */\ntypedef enum Argon2_ErrorCodes {\n    ARGON2_OK = 0,\n\n    ARGON2_OUTPUT_PTR_NULL = -1,\n\n    ARGON2_OUTPUT_TOO_SHORT = -2,\n    ARGON2_OUTPUT_TOO_LONG  = -3,\n\n    ARGON2_PWD_TOO_SHORT = -4,\n    ARGON2_PWD_TOO_LONG  = -5,\n\n    ARGON2_SALT_TOO_SHORT = -6,\n    ARGON2_SALT_TOO_LONG  = -7,\n\n    ARGON2_AD_TOO_SHORT = -8,\n    ARGON2_AD_TOO_LONG  = -9,\n\n    ARGON2_SECRET_TOO_SHORT = -10,\n    ARGON2_SECRET_TOO_LONG  = -11,\n\n    ARGON2_TIME_TOO_SMALL = -12,\n    ARGON2_TIME_TOO_LARGE = -13,\n\n    ARGON2_MEMORY_TOO_LITTLE = -14,\n    ARGON2_MEMORY_TOO_MUCH   = -15,\n\n    ARGON2_LANES_TOO_FEW  = -16,\n    ARGON2_LANES_TOO_MANY = -17,\n\n    ARGON2_PWD_PTR_MISMATCH    = -18, /* NULL ptr with non-zero length */\n    ARGON2_SALT_PTR_MISMATCH   = -19, /* NULL ptr with non-zero length */\n    ARGON2_SECRET_PTR_MISMATCH = -20, /* NULL ptr with non-zero length */\n    ARGON2_AD_PTR_MISMATCH     = -21, /* NULL ptr with non-zero length */\n\n    ARGON2_MEMORY_ALLOCATION_ERROR = -22,\n\n    ARGON2_FREE_MEMORY_CBK_NULL     = -23,\n    ARGON2_ALLOCATE_MEMORY_CBK_NULL = -24,\n\n    ARGON2_INCORRECT_PARAMETER = -25,\n    ARGON2_INCORRECT_TYPE      = -26,\n\n    ARGON2_OUT_PTR_MISMATCH = -27,\n\n    ARGON2_THREADS_TOO_FEW  = -28,\n    ARGON2_THREADS_TOO_MANY = -29,\n\n    ARGON2_MISSING_ARGS = -30,\n\n    ARGON2_ENCODING_FAIL = -31,\n\n    ARGON2_DECODING_FAIL = -32,\n\n    ARGON2_THREAD_FAIL = -33,\n\n    ARGON2_DECODING_LENGTH_FAIL = -34,\n\n    ARGON2_VERIFY_MISMATCH = -35\n} argon2_error_codes;\n\n/* Argon2 external data structures */\n\n/*\n * Context: structure to hold Argon2 inputs:\n * output array and its length,\n * password and its length,\n * salt and its length,\n * secret and its length,\n * associated data and its length,\n * number of passes, amount of used memory (in KBytes, can be rounded up a bit)\n * number of parallel threads that will be run.\n * All the parameters above affect the output hash value.\n * Additionally, two function pointers can be provided to allocate and\n * deallocate the memory (if NULL, memory will be allocated internally).\n * Also, three flags indicate whether to erase password, secret as soon as they\n * are pre-hashed (and thus not needed anymore), and the entire memory\n *****\n * Simplest situation: you have output array out[8], password is stored in\n * pwd[32], salt is stored in salt[16], you do not have keys nor associated\n * data.\n * You need to spend 1 GB of RAM and you run 5 passes of Argon2 with 4 parallel\n * lanes.\n * You want to erase the password, but you're OK with last pass not being\n * erased.\n * You want to use the default memory allocator.\n * Then you initialize:\n * Argon2_Context(out,8,pwd,32,salt,16,NULL,0,NULL,0,5,1<<20,4,4,NULL,NULL,true,false,false,false).\n */\ntypedef struct Argon2_Context {\n    uint8_t *out;    /* output array */\n    uint32_t outlen; /* digest length */\n\n    uint8_t *pwd;    /* password array */\n    uint32_t pwdlen; /* password length */\n\n    uint8_t *salt;    /* salt array */\n    uint32_t saltlen; /* salt length */\n\n    uint8_t *secret;    /* key array */\n    uint32_t secretlen; /* key length */\n\n    uint8_t *ad;    /* associated data array */\n    uint32_t adlen; /* associated data length */\n\n    uint32_t t_cost;  /* number of passes */\n    uint32_t m_cost;  /* amount of memory requested (KB) */\n    uint32_t lanes;   /* number of lanes */\n    uint32_t threads; /* maximum number of threads */\n\n    uint32_t flags; /* array of bool options */\n} argon2_context;\n\n/* Argon2 primitive type */\ntypedef enum Argon2_type { Argon2_i = 1, Argon2_id = 2 } argon2_type;\n\n/*\n * Function that performs memory-hard hashing with certain degree of parallelism\n * @param  context  Pointer to the Argon2 internal structure\n * @return Error code if something is wrong, ARGON2_OK otherwise\n */\nint argon2_ctx(argon2_context *context, argon2_type type);\n\n/**\n * Hashes a password with Argon2i, producing an encoded hash\n * @param t_cost Number of iterations\n * @param m_cost Sets memory usage to m_cost kibibytes\n * @param parallelism Number of threads and compute lanes\n * @param pwd Pointer to password\n * @param pwdlen Password size in bytes\n * @param salt Pointer to salt\n * @param saltlen Salt size in bytes\n * @param hashlen Desired length of the hash in bytes\n * @param encoded Buffer where to write the encoded hash\n * @param encodedlen Size of the buffer (thus max size of the encoded hash)\n * @pre   Different parallelism levels will give different results\n * @pre   Returns ARGON2_OK if successful\n */\nint argon2i_hash_encoded(const uint32_t t_cost, const uint32_t m_cost,\n                         const uint32_t parallelism, const void *pwd,\n                         const size_t pwdlen, const void *salt,\n                         const size_t saltlen, const size_t hashlen,\n                         char *encoded, const size_t encodedlen);\n\n/**\n * Hashes a password with Argon2id, producing an encoded hash\n * @param t_cost Number of iterations\n * @param m_cost Sets memory usage to m_cost kibibytes\n * @param parallelism Number of threads and compute lanes\n * @param pwd Pointer to password\n * @param pwdlen Password size in bytes\n * @param salt Pointer to salt\n * @param saltlen Salt size in bytes\n * @param hashlen Desired length of the hash in bytes\n * @param encoded Buffer where to write the encoded hash\n * @param encodedlen Size of the buffer (thus max size of the encoded hash)\n * @pre   Different parallelism levels will give different results\n * @pre   Returns ARGON2_OK if successful\n */\nint argon2id_hash_encoded(const uint32_t t_cost, const uint32_t m_cost,\n                          const uint32_t parallelism, const void *pwd,\n                          const size_t pwdlen, const void *salt,\n                          const size_t saltlen, const size_t hashlen,\n                          char *encoded, const size_t encodedlen);\n\n/**\n * Hashes a password with Argon2i, producing a raw hash\n * @param t_cost Number of iterations\n * @param m_cost Sets memory usage to m_cost kibibytes\n * @param parallelism Number of threads and compute lanes\n * @param pwd Pointer to password\n * @param pwdlen Password size in bytes\n * @param salt Pointer to salt\n * @param saltlen Salt size in bytes\n * @param hash Buffer where to write the raw hash\n * @param hashlen Desired length of the hash in bytes\n * @pre   Different parallelism levels will give different results\n * @pre   Returns ARGON2_OK if successful\n */\nint argon2i_hash_raw(const uint32_t t_cost, const uint32_t m_cost,\n                     const uint32_t parallelism, const void *pwd,\n                     const size_t pwdlen, const void *salt,\n                     const size_t saltlen, void *hash, const size_t hashlen);\n\n/**\n * Hashes a password with Argon2id, producing a raw hash\n * @param t_cost Number of iterations\n * @param m_cost Sets memory usage to m_cost kibibytes\n * @param parallelism Number of threads and compute lanes\n * @param pwd Pointer to password\n * @param pwdlen Password size in bytes\n * @param salt Pointer to salt\n * @param saltlen Salt size in bytes\n * @param hash Buffer where to write the raw hash\n * @param hashlen Desired length of the hash in bytes\n * @pre   Different parallelism levels will give different results\n * @pre   Returns ARGON2_OK if successful\n */\nint argon2id_hash_raw(const uint32_t t_cost, const uint32_t m_cost,\n                      const uint32_t parallelism, const void *pwd,\n                      const size_t pwdlen, const void *salt,\n                      const size_t saltlen, void *hash, const size_t hashlen);\n\n/* generic function underlying the above ones */\nint argon2_hash(const uint32_t t_cost, const uint32_t m_cost,\n                const uint32_t parallelism, const void *pwd,\n                const size_t pwdlen, const void *salt, const size_t saltlen,\n                void *hash, const size_t hashlen, char *encoded,\n                const size_t encodedlen, argon2_type type);\n\n/**\n * Verifies a password against an encoded string\n * Encoded string is restricted as in argon2_validate_inputs()\n * @param encoded String encoding parameters, salt, hash\n * @param pwd Pointer to password\n * @pre   Returns ARGON2_OK if successful\n */\nint argon2i_verify(const char *encoded, const void *pwd, const size_t pwdlen);\n\n/**\n * Verifies a password against an encoded string\n * Encoded string is restricted as in argon2_validate_inputs()\n * @param encoded String encoding parameters, salt, hash\n * @param pwd Pointer to password\n * @pre   Returns ARGON2_OK if successful\n */\nint argon2id_verify(const char *encoded, const void *pwd, const size_t pwdlen);\n\n/* generic function underlying the above ones */\nint argon2_verify(const char *encoded, const void *pwd, const size_t pwdlen,\n                  argon2_type type);\n#endif\n"
  },
  {
    "path": "src/libsodium/crypto_pwhash/argon2/blake2b-long.c",
    "content": "#include <limits.h>\n#include <stdint.h>\n#include <stdlib.h>\n#include <string.h>\n\n#include \"crypto_generichash_blake2b.h\"\n#include \"private/common.h\"\n#include \"utils.h\"\n\n#include \"blake2b-long.h\"\n\nint\nblake2b_long(void *pout, size_t outlen, const void *in, size_t inlen)\n{\n    uint8_t *out = (uint8_t *) pout;\n    crypto_generichash_blake2b_state blake_state;\n    uint8_t outlen_bytes[4 /* sizeof(uint32_t) */] = { 0 };\n    int     ret = -1;\n\n    if (outlen > UINT32_MAX) {\n        goto fail; /* LCOV_EXCL_LINE */\n    }\n\n    /* Ensure little-endian byte order! */\n    STORE32_LE(outlen_bytes, (uint32_t) outlen);\n\n#define TRY(statement)   \\\n    do {                 \\\n        ret = statement; \\\n        if (ret < 0) {   \\\n            goto fail;   \\\n        }                \\\n    } while ((void) 0, 0)\n\n    if (outlen <= crypto_generichash_blake2b_BYTES_MAX) {\n        TRY(crypto_generichash_blake2b_init(&blake_state, NULL, 0U, outlen));\n        TRY(crypto_generichash_blake2b_update(&blake_state, outlen_bytes,\n                                              sizeof(outlen_bytes)));\n        TRY(crypto_generichash_blake2b_update(\n            &blake_state, (const unsigned char *) in, inlen));\n        TRY(crypto_generichash_blake2b_final(&blake_state, out, outlen));\n    } else {\n        uint32_t toproduce;\n        uint8_t  out_buffer[crypto_generichash_blake2b_BYTES_MAX];\n        uint8_t  in_buffer[crypto_generichash_blake2b_BYTES_MAX];\n        TRY(crypto_generichash_blake2b_init(\n            &blake_state, NULL, 0U, crypto_generichash_blake2b_BYTES_MAX));\n        TRY(crypto_generichash_blake2b_update(&blake_state, outlen_bytes,\n                                              sizeof(outlen_bytes)));\n        TRY(crypto_generichash_blake2b_update(\n            &blake_state, (const unsigned char *) in, inlen));\n        TRY(crypto_generichash_blake2b_final(\n            &blake_state, out_buffer, crypto_generichash_blake2b_BYTES_MAX));\n        memcpy(out, out_buffer, crypto_generichash_blake2b_BYTES_MAX / 2);\n        out += crypto_generichash_blake2b_BYTES_MAX / 2;\n        toproduce =\n            (uint32_t) outlen - crypto_generichash_blake2b_BYTES_MAX / 2;\n\n        while (toproduce > crypto_generichash_blake2b_BYTES_MAX) {\n            memcpy(in_buffer, out_buffer, crypto_generichash_blake2b_BYTES_MAX);\n            TRY(crypto_generichash_blake2b(\n                out_buffer, crypto_generichash_blake2b_BYTES_MAX, in_buffer,\n                crypto_generichash_blake2b_BYTES_MAX, NULL, 0U));\n            memcpy(out, out_buffer, crypto_generichash_blake2b_BYTES_MAX / 2);\n            out += crypto_generichash_blake2b_BYTES_MAX / 2;\n            toproduce -= crypto_generichash_blake2b_BYTES_MAX / 2;\n        }\n\n        memcpy(in_buffer, out_buffer, crypto_generichash_blake2b_BYTES_MAX);\n        TRY(crypto_generichash_blake2b(out_buffer, toproduce, in_buffer,\n                                       crypto_generichash_blake2b_BYTES_MAX,\n                                       NULL, 0U));\n        memcpy(out, out_buffer, toproduce);\n    }\nfail:\n    sodium_memzero(&blake_state, sizeof(blake_state));\n    return ret;\n#undef TRY\n}\n"
  },
  {
    "path": "src/libsodium/crypto_pwhash/argon2/blake2b-long.h",
    "content": "#ifndef blake2b_long_H\n#define blake2b_long_H\n\n#include <stddef.h>\n#include \"private/quirks.h\"\n\nint blake2b_long(void *pout, size_t outlen, const void *in, size_t inlen);\n\n#endif\n"
  },
  {
    "path": "src/libsodium/crypto_pwhash/argon2/blamka-round-avx2.h",
    "content": "#ifndef blamka_round_avx2_H\n#define blamka_round_avx2_H\n\n#include \"private/common.h\"\n#include \"private/sse2_64_32.h\"\n\n#define rotr32(x) _mm256_shuffle_epi32(x, _MM_SHUFFLE(2, 3, 0, 1))\n#define rotr24(x) _mm256_shuffle_epi8(x, _mm256_setr_epi8(3, 4, 5, 6, 7, 0, 1, 2, 11, 12, 13, 14, 15, 8, 9, 10, 3, 4, 5, 6, 7, 0, 1, 2, 11, 12, 13, 14, 15, 8, 9, 10))\n#define rotr16(x) _mm256_shuffle_epi8(x, _mm256_setr_epi8(2, 3, 4, 5, 6, 7, 0, 1, 10, 11, 12, 13, 14, 15, 8, 9, 2, 3, 4, 5, 6, 7, 0, 1, 10, 11, 12, 13, 14, 15, 8, 9))\n#define rotr63(x) _mm256_xor_si256(_mm256_srli_epi64((x), 63), _mm256_add_epi64((x), (x)))\n\n#define G1_AVX2(A0, A1, B0, B1, C0, C1, D0, D1) \\\n    do { \\\n        __m256i ml = _mm256_mul_epu32(A0, B0); \\\n        ml = _mm256_add_epi64(ml, ml); \\\n        A0 = _mm256_add_epi64(A0, _mm256_add_epi64(B0, ml)); \\\n        D0 = _mm256_xor_si256(D0, A0); \\\n        D0 = rotr32(D0); \\\n        \\\n        ml = _mm256_mul_epu32(C0, D0); \\\n        ml = _mm256_add_epi64(ml, ml); \\\n        C0 = _mm256_add_epi64(C0, _mm256_add_epi64(D0, ml)); \\\n        \\\n        B0 = _mm256_xor_si256(B0, C0); \\\n        B0 = rotr24(B0); \\\n        \\\n        ml = _mm256_mul_epu32(A1, B1); \\\n        ml = _mm256_add_epi64(ml, ml); \\\n        A1 = _mm256_add_epi64(A1, _mm256_add_epi64(B1, ml)); \\\n        D1 = _mm256_xor_si256(D1, A1); \\\n        D1 = rotr32(D1); \\\n        \\\n        ml = _mm256_mul_epu32(C1, D1); \\\n        ml = _mm256_add_epi64(ml, ml); \\\n        C1 = _mm256_add_epi64(C1, _mm256_add_epi64(D1, ml)); \\\n        \\\n        B1 = _mm256_xor_si256(B1, C1); \\\n        B1 = rotr24(B1); \\\n    } while((void)0, 0);\n\n#define G2_AVX2(A0, A1, B0, B1, C0, C1, D0, D1) \\\n    do { \\\n        __m256i ml = _mm256_mul_epu32(A0, B0); \\\n        ml = _mm256_add_epi64(ml, ml); \\\n        A0 = _mm256_add_epi64(A0, _mm256_add_epi64(B0, ml)); \\\n        D0 = _mm256_xor_si256(D0, A0); \\\n        D0 = rotr16(D0); \\\n        \\\n        ml = _mm256_mul_epu32(C0, D0); \\\n        ml = _mm256_add_epi64(ml, ml); \\\n        C0 = _mm256_add_epi64(C0, _mm256_add_epi64(D0, ml)); \\\n        B0 = _mm256_xor_si256(B0, C0); \\\n        B0 = rotr63(B0); \\\n        \\\n        ml = _mm256_mul_epu32(A1, B1); \\\n        ml = _mm256_add_epi64(ml, ml); \\\n        A1 = _mm256_add_epi64(A1, _mm256_add_epi64(B1, ml)); \\\n        D1 = _mm256_xor_si256(D1, A1); \\\n        D1 = rotr16(D1); \\\n        \\\n        ml = _mm256_mul_epu32(C1, D1); \\\n        ml = _mm256_add_epi64(ml, ml); \\\n        C1 = _mm256_add_epi64(C1, _mm256_add_epi64(D1, ml)); \\\n        B1 = _mm256_xor_si256(B1, C1); \\\n        B1 = rotr63(B1); \\\n    } while((void)0, 0);\n\n#define DIAGONALIZE_1(A0, B0, C0, D0, A1, B1, C1, D1) \\\n    do { \\\n        B0 = _mm256_permute4x64_epi64(B0, _MM_SHUFFLE(0, 3, 2, 1)); \\\n        C0 = _mm256_permute4x64_epi64(C0, _MM_SHUFFLE(1, 0, 3, 2)); \\\n        D0 = _mm256_permute4x64_epi64(D0, _MM_SHUFFLE(2, 1, 0, 3)); \\\n        \\\n        B1 = _mm256_permute4x64_epi64(B1, _MM_SHUFFLE(0, 3, 2, 1)); \\\n        C1 = _mm256_permute4x64_epi64(C1, _MM_SHUFFLE(1, 0, 3, 2)); \\\n        D1 = _mm256_permute4x64_epi64(D1, _MM_SHUFFLE(2, 1, 0, 3)); \\\n    } while((void)0, 0);\n\n#define DIAGONALIZE_2(A0, A1, B0, B1, C0, C1, D0, D1) \\\n    do { \\\n        __m256i tmp1 = _mm256_blend_epi32(B0, B1, 0xCC); \\\n        __m256i tmp2 = _mm256_blend_epi32(B0, B1, 0x33); \\\n        B1 = _mm256_permute4x64_epi64(tmp1, _MM_SHUFFLE(2,3,0,1)); \\\n        B0 = _mm256_permute4x64_epi64(tmp2, _MM_SHUFFLE(2,3,0,1)); \\\n        \\\n        tmp1 = C0; \\\n        C0 = C1; \\\n        C1 = tmp1; \\\n        \\\n        tmp1 = _mm256_blend_epi32(D0, D1, 0xCC); \\\n        tmp2 = _mm256_blend_epi32(D0, D1, 0x33); \\\n        D0 = _mm256_permute4x64_epi64(tmp1, _MM_SHUFFLE(2,3,0,1)); \\\n        D1 = _mm256_permute4x64_epi64(tmp2, _MM_SHUFFLE(2,3,0,1)); \\\n    } while(0);\n\n#define UNDIAGONALIZE_1(A0, B0, C0, D0, A1, B1, C1, D1) \\\n    do { \\\n        B0 = _mm256_permute4x64_epi64(B0, _MM_SHUFFLE(2, 1, 0, 3)); \\\n        C0 = _mm256_permute4x64_epi64(C0, _MM_SHUFFLE(1, 0, 3, 2)); \\\n        D0 = _mm256_permute4x64_epi64(D0, _MM_SHUFFLE(0, 3, 2, 1)); \\\n        \\\n        B1 = _mm256_permute4x64_epi64(B1, _MM_SHUFFLE(2, 1, 0, 3)); \\\n        C1 = _mm256_permute4x64_epi64(C1, _MM_SHUFFLE(1, 0, 3, 2)); \\\n        D1 = _mm256_permute4x64_epi64(D1, _MM_SHUFFLE(0, 3, 2, 1)); \\\n    } while((void)0, 0);\n\n#define UNDIAGONALIZE_2(A0, A1, B0, B1, C0, C1, D0, D1) \\\n    do { \\\n        __m256i tmp1 = _mm256_blend_epi32(B0, B1, 0xCC); \\\n        __m256i tmp2 = _mm256_blend_epi32(B0, B1, 0x33); \\\n        B0 = _mm256_permute4x64_epi64(tmp1, _MM_SHUFFLE(2,3,0,1)); \\\n        B1 = _mm256_permute4x64_epi64(tmp2, _MM_SHUFFLE(2,3,0,1)); \\\n        \\\n        tmp1 = C0; \\\n        C0 = C1; \\\n        C1 = tmp1; \\\n        \\\n        tmp1 = _mm256_blend_epi32(D0, D1, 0x33); \\\n        tmp2 = _mm256_blend_epi32(D0, D1, 0xCC); \\\n        D0 = _mm256_permute4x64_epi64(tmp1, _MM_SHUFFLE(2,3,0,1)); \\\n        D1 = _mm256_permute4x64_epi64(tmp2, _MM_SHUFFLE(2,3,0,1)); \\\n    } while((void)0, 0);\n\n#define BLAKE2_ROUND_1(A0, A1, B0, B1, C0, C1, D0, D1) \\\n    do{ \\\n        G1_AVX2(A0, A1, B0, B1, C0, C1, D0, D1) \\\n        G2_AVX2(A0, A1, B0, B1, C0, C1, D0, D1) \\\n        \\\n        DIAGONALIZE_1(A0, B0, C0, D0, A1, B1, C1, D1) \\\n        \\\n        G1_AVX2(A0, A1, B0, B1, C0, C1, D0, D1) \\\n        G2_AVX2(A0, A1, B0, B1, C0, C1, D0, D1) \\\n        \\\n        UNDIAGONALIZE_1(A0, B0, C0, D0, A1, B1, C1, D1) \\\n    } while((void)0, 0);\n\n#define BLAKE2_ROUND_2(A0, A1, B0, B1, C0, C1, D0, D1) \\\n    do{ \\\n        G1_AVX2(A0, A1, B0, B1, C0, C1, D0, D1) \\\n        G2_AVX2(A0, A1, B0, B1, C0, C1, D0, D1) \\\n        \\\n        DIAGONALIZE_2(A0, A1, B0, B1, C0, C1, D0, D1) \\\n        \\\n        G1_AVX2(A0, A1, B0, B1, C0, C1, D0, D1) \\\n        G2_AVX2(A0, A1, B0, B1, C0, C1, D0, D1) \\\n        \\\n        UNDIAGONALIZE_2(A0, A1, B0, B1, C0, C1, D0, D1) \\\n    } while((void)0, 0);\n\n#endif\n"
  },
  {
    "path": "src/libsodium/crypto_pwhash/argon2/blamka-round-avx512f.h",
    "content": "#ifndef blamka_round_avx512f_H\n#define blamka_round_avx512f_H\n\n#include \"private/common.h\"\n#include \"private/sse2_64_32.h\"\n\n#define ror64(x, n) _mm512_ror_epi64((x), (n))\n\nstatic inline __m512i\nmuladd(__m512i x, __m512i y)\n{\n    __m512i z = _mm512_mul_epu32(x, y);\n\n    return _mm512_add_epi64(_mm512_add_epi64(x, y), _mm512_add_epi64(z, z));\n}\n\n#define G1_AVX512F(A0, B0, C0, D0, A1, B1, C1, D1) \\\n    do { \\\n        A0 = muladd(A0, B0); \\\n        A1 = muladd(A1, B1); \\\n        \\\n        D0 = _mm512_xor_si512(D0, A0); \\\n        D1 = _mm512_xor_si512(D1, A1); \\\n        \\\n        D0 = ror64(D0, 32); \\\n        D1 = ror64(D1, 32); \\\n        \\\n        C0 = muladd(C0, D0); \\\n        C1 = muladd(C1, D1); \\\n        \\\n        B0 = _mm512_xor_si512(B0, C0); \\\n        B1 = _mm512_xor_si512(B1, C1); \\\n        \\\n        B0 = ror64(B0, 24); \\\n        B1 = ror64(B1, 24); \\\n    } while ((void)0, 0)\n\n#define G2_AVX512F(A0, B0, C0, D0, A1, B1, C1, D1) \\\n    do { \\\n        A0 = muladd(A0, B0); \\\n        A1 = muladd(A1, B1); \\\n        \\\n        D0 = _mm512_xor_si512(D0, A0); \\\n        D1 = _mm512_xor_si512(D1, A1); \\\n        \\\n        D0 = ror64(D0, 16); \\\n        D1 = ror64(D1, 16); \\\n        \\\n        C0 = muladd(C0, D0); \\\n        C1 = muladd(C1, D1); \\\n        \\\n        B0 = _mm512_xor_si512(B0, C0); \\\n        B1 = _mm512_xor_si512(B1, C1); \\\n        \\\n        B0 = ror64(B0, 63); \\\n        B1 = ror64(B1, 63); \\\n    } while ((void)0, 0)\n\n#define DIAGONALIZE(A0, B0, C0, D0, A1, B1, C1, D1) \\\n    do { \\\n        B0 = _mm512_permutex_epi64(B0, _MM_SHUFFLE(0, 3, 2, 1)); \\\n        B1 = _mm512_permutex_epi64(B1, _MM_SHUFFLE(0, 3, 2, 1)); \\\n        \\\n        C0 = _mm512_permutex_epi64(C0, _MM_SHUFFLE(1, 0, 3, 2)); \\\n        C1 = _mm512_permutex_epi64(C1, _MM_SHUFFLE(1, 0, 3, 2)); \\\n        \\\n        D0 = _mm512_permutex_epi64(D0, _MM_SHUFFLE(2, 1, 0, 3)); \\\n        D1 = _mm512_permutex_epi64(D1, _MM_SHUFFLE(2, 1, 0, 3)); \\\n    } while ((void)0, 0)\n\n#define UNDIAGONALIZE(A0, B0, C0, D0, A1, B1, C1, D1) \\\n    do { \\\n        B0 = _mm512_permutex_epi64(B0, _MM_SHUFFLE(2, 1, 0, 3)); \\\n        B1 = _mm512_permutex_epi64(B1, _MM_SHUFFLE(2, 1, 0, 3)); \\\n        \\\n        C0 = _mm512_permutex_epi64(C0, _MM_SHUFFLE(1, 0, 3, 2)); \\\n        C1 = _mm512_permutex_epi64(C1, _MM_SHUFFLE(1, 0, 3, 2)); \\\n        \\\n        D0 = _mm512_permutex_epi64(D0, _MM_SHUFFLE(0, 3, 2, 1)); \\\n        D1 = _mm512_permutex_epi64(D1, _MM_SHUFFLE(0, 3, 2, 1)); \\\n    } while ((void)0, 0)\n\n#define BLAKE2_ROUND(A0, B0, C0, D0, A1, B1, C1, D1) \\\n    do { \\\n        G1_AVX512F(A0, B0, C0, D0, A1, B1, C1, D1); \\\n        G2_AVX512F(A0, B0, C0, D0, A1, B1, C1, D1); \\\n        \\\n        DIAGONALIZE(A0, B0, C0, D0, A1, B1, C1, D1); \\\n        \\\n        G1_AVX512F(A0, B0, C0, D0, A1, B1, C1, D1); \\\n        G2_AVX512F(A0, B0, C0, D0, A1, B1, C1, D1); \\\n        \\\n        UNDIAGONALIZE(A0, B0, C0, D0, A1, B1, C1, D1); \\\n    } while ((void)0, 0)\n\n#define SWAP_HALVES(A0, A1) \\\n    do { \\\n        __m512i t0, t1; \\\n        t0 = _mm512_shuffle_i64x2(A0, A1, _MM_SHUFFLE(1, 0, 1, 0)); \\\n        t1 = _mm512_shuffle_i64x2(A0, A1, _MM_SHUFFLE(3, 2, 3, 2)); \\\n        A0 = t0; \\\n        A1 = t1; \\\n    } while((void)0, 0)\n\n#define SWAP_QUARTERS(A0, A1) \\\n    do { \\\n        SWAP_HALVES(A0, A1); \\\n        A0 = _mm512_permutexvar_epi64(_mm512_setr_epi64(0, 1, 4, 5, 2, 3, 6, 7), A0); \\\n        A1 = _mm512_permutexvar_epi64(_mm512_setr_epi64(0, 1, 4, 5, 2, 3, 6, 7), A1); \\\n    } while((void)0, 0)\n\n#define UNSWAP_QUARTERS(A0, A1) \\\n    do { \\\n        A0 = _mm512_permutexvar_epi64(_mm512_setr_epi64(0, 1, 4, 5, 2, 3, 6, 7), A0); \\\n        A1 = _mm512_permutexvar_epi64(_mm512_setr_epi64(0, 1, 4, 5, 2, 3, 6, 7), A1); \\\n        SWAP_HALVES(A0, A1); \\\n    } while((void)0, 0)\n\n#define BLAKE2_ROUND_1(A0, C0, B0, D0, A1, C1, B1, D1) \\\n    do { \\\n        SWAP_HALVES(A0, B0); \\\n        SWAP_HALVES(C0, D0); \\\n        SWAP_HALVES(A1, B1); \\\n        SWAP_HALVES(C1, D1); \\\n        BLAKE2_ROUND(A0, B0, C0, D0, A1, B1, C1, D1); \\\n        SWAP_HALVES(A0, B0); \\\n        SWAP_HALVES(C0, D0); \\\n        SWAP_HALVES(A1, B1); \\\n        SWAP_HALVES(C1, D1); \\\n    } while ((void)0, 0)\n\n#define BLAKE2_ROUND_2(A0, A1, B0, B1, C0, C1, D0, D1) \\\n    do { \\\n        SWAP_QUARTERS(A0, A1); \\\n        SWAP_QUARTERS(B0, B1); \\\n        SWAP_QUARTERS(C0, C1); \\\n        SWAP_QUARTERS(D0, D1); \\\n        BLAKE2_ROUND(A0, B0, C0, D0, A1, B1, C1, D1); \\\n        UNSWAP_QUARTERS(A0, A1); \\\n        UNSWAP_QUARTERS(B0, B1); \\\n        UNSWAP_QUARTERS(C0, C1); \\\n        UNSWAP_QUARTERS(D0, D1); \\\n    } while ((void)0, 0)\n\n#endif\n"
  },
  {
    "path": "src/libsodium/crypto_pwhash/argon2/blamka-round-neon.h",
    "content": "#ifndef blamka_round_neon_H\n#define blamka_round_neon_H\n\n#include <arm_neon.h>\n\n#include \"private/common.h\"\n\nstatic inline uint64x2_t\nfBlaMka_neon(uint64x2_t x, uint64x2_t y)\n{\n    const uint32x2_t x_lo = vmovn_u64(x);\n    const uint32x2_t y_lo = vmovn_u64(y);\n    const uint64x2_t z    = vmull_u32(x_lo, y_lo);\n\n    return vaddq_u64(vaddq_u64(x, y), vaddq_u64(z, z));\n}\n\nstatic inline uint64x2_t\nrotr64_32_neon(uint64x2_t x)\n{\n    return vreinterpretq_u64_u32(vrev64q_u32(vreinterpretq_u32_u64(x)));\n}\n\nstatic inline uint64x2_t\nrotr64_24_neon(uint64x2_t x)\n{\n    static const uint8_t rot24_tbl[16] = {\n        3, 4, 5, 6, 7, 0, 1, 2,\n        11, 12, 13, 14, 15, 8, 9, 10\n    };\n    const uint8x16_t tbl = vld1q_u8(rot24_tbl);\n    return vreinterpretq_u64_u8(vqtbl1q_u8(vreinterpretq_u8_u64(x), tbl));\n}\n\nstatic inline uint64x2_t\nrotr64_16_neon(uint64x2_t x)\n{\n    static const uint8_t rot16_tbl[16] = {\n        2, 3, 4, 5, 6, 7, 0, 1,\n        10, 11, 12, 13, 14, 15, 8, 9\n    };\n    const uint8x16_t tbl = vld1q_u8(rot16_tbl);\n    return vreinterpretq_u64_u8(vqtbl1q_u8(vreinterpretq_u8_u64(x), tbl));\n}\n\nstatic inline uint64x2_t\nrotr64_63_neon(uint64x2_t x)\n{\n    return veorq_u64(vshrq_n_u64(x, 63), vaddq_u64(x, x));\n}\n\n#define G1_NEON(A0, B0, C0, D0, A1, B1, C1, D1) \\\n    do {                                        \\\n        A0 = fBlaMka_neon(A0, B0);              \\\n        A1 = fBlaMka_neon(A1, B1);              \\\n                                                \\\n        D0 = veorq_u64(D0, A0);                 \\\n        D1 = veorq_u64(D1, A1);                 \\\n                                                \\\n        D0 = rotr64_32_neon(D0);                \\\n        D1 = rotr64_32_neon(D1);                \\\n                                                \\\n        C0 = fBlaMka_neon(C0, D0);              \\\n        C1 = fBlaMka_neon(C1, D1);              \\\n                                                \\\n        B0 = veorq_u64(B0, C0);                 \\\n        B1 = veorq_u64(B1, C1);                 \\\n                                                \\\n        B0 = rotr64_24_neon(B0);                \\\n        B1 = rotr64_24_neon(B1);                \\\n    } while ((void) 0, 0)\n\n#define G2_NEON(A0, B0, C0, D0, A1, B1, C1, D1) \\\n    do {                                        \\\n        A0 = fBlaMka_neon(A0, B0);              \\\n        A1 = fBlaMka_neon(A1, B1);              \\\n                                                \\\n        D0 = veorq_u64(D0, A0);                 \\\n        D1 = veorq_u64(D1, A1);                 \\\n                                                \\\n        D0 = rotr64_16_neon(D0);                \\\n        D1 = rotr64_16_neon(D1);                \\\n                                                \\\n        C0 = fBlaMka_neon(C0, D0);              \\\n        C1 = fBlaMka_neon(C1, D1);              \\\n                                                \\\n        B0 = veorq_u64(B0, C0);                 \\\n        B1 = veorq_u64(B1, C1);                 \\\n                                                \\\n        B0 = rotr64_63_neon(B0);                \\\n        B1 = rotr64_63_neon(B1);                \\\n    } while ((void) 0, 0)\n\n#define DIAGONALIZE_NEON(A0, B0, C0, D0, A1, B1, C1, D1) \\\n    do {                                                 \\\n        uint64x2_t t0, t1;                               \\\n                                                         \\\n        t0 = vreinterpretq_u64_u8(                       \\\n            vextq_u8(vreinterpretq_u8_u64(B0),           \\\n                     vreinterpretq_u8_u64(B1), 8));      \\\n        t1 = vreinterpretq_u64_u8(                       \\\n            vextq_u8(vreinterpretq_u8_u64(B1),           \\\n                     vreinterpretq_u8_u64(B0), 8));      \\\n        B0 = t0;                                         \\\n        B1 = t1;                                         \\\n                                                         \\\n        t0 = C0;                                         \\\n        C0 = C1;                                         \\\n        C1 = t0;                                         \\\n                                                         \\\n        t0 = vreinterpretq_u64_u8(                       \\\n            vextq_u8(vreinterpretq_u8_u64(D0),           \\\n                     vreinterpretq_u8_u64(D1), 8));      \\\n        t1 = vreinterpretq_u64_u8(                       \\\n            vextq_u8(vreinterpretq_u8_u64(D1),           \\\n                     vreinterpretq_u8_u64(D0), 8));      \\\n        D0 = t1;                                         \\\n        D1 = t0;                                         \\\n    } while ((void) 0, 0)\n\n#define UNDIAGONALIZE_NEON(A0, B0, C0, D0, A1, B1, C1, D1) \\\n    do {                                                   \\\n        uint64x2_t t0, t1;                                 \\\n                                                           \\\n        t0 = vreinterpretq_u64_u8(                         \\\n            vextq_u8(vreinterpretq_u8_u64(B1),             \\\n                     vreinterpretq_u8_u64(B0), 8));        \\\n        t1 = vreinterpretq_u64_u8(                         \\\n            vextq_u8(vreinterpretq_u8_u64(B0),             \\\n                     vreinterpretq_u8_u64(B1), 8));        \\\n        B0 = t0;                                           \\\n        B1 = t1;                                           \\\n                                                           \\\n        t0 = C0;                                           \\\n        C0 = C1;                                           \\\n        C1 = t0;                                           \\\n                                                           \\\n        t0 = vreinterpretq_u64_u8(                         \\\n            vextq_u8(vreinterpretq_u8_u64(D1),             \\\n                     vreinterpretq_u8_u64(D0), 8));        \\\n        t1 = vreinterpretq_u64_u8(                         \\\n            vextq_u8(vreinterpretq_u8_u64(D0),             \\\n                     vreinterpretq_u8_u64(D1), 8));        \\\n        D0 = t1;                                           \\\n        D1 = t0;                                           \\\n    } while ((void) 0, 0)\n\n#define BLAKE2_ROUND_NEON(A0, A1, B0, B1, C0, C1, D0, D1)   \\\n    do {                                                    \\\n        G1_NEON(A0, B0, C0, D0, A1, B1, C1, D1);            \\\n        G2_NEON(A0, B0, C0, D0, A1, B1, C1, D1);            \\\n                                                            \\\n        DIAGONALIZE_NEON(A0, B0, C0, D0, A1, B1, C1, D1);   \\\n                                                            \\\n        G1_NEON(A0, B0, C0, D0, A1, B1, C1, D1);            \\\n        G2_NEON(A0, B0, C0, D0, A1, B1, C1, D1);            \\\n                                                            \\\n        UNDIAGONALIZE_NEON(A0, B0, C0, D0, A1, B1, C1, D1); \\\n    } while ((void) 0, 0)\n\n#endif\n"
  },
  {
    "path": "src/libsodium/crypto_pwhash/argon2/blamka-round-ref.h",
    "content": "#ifndef blamka_round_ref_H\n#define blamka_round_ref_H\n\n#include \"private/common.h\"\n\n/*designed by the Lyra PHC team */\nstatic inline uint64_t\nfBlaMka(uint64_t x, uint64_t y)\n{\n    const uint64_t m  = UINT64_C(0xFFFFFFFF);\n    const uint64_t xy = (x & m) * (y & m);\n    return x + y + 2 * xy;\n}\n\n#define G(a, b, c, d)          \\\n    do {                       \\\n        a = fBlaMka(a, b);     \\\n        d = ROTR64(d ^ a, 32); \\\n        c = fBlaMka(c, d);     \\\n        b = ROTR64(b ^ c, 24); \\\n        a = fBlaMka(a, b);     \\\n        d = ROTR64(d ^ a, 16); \\\n        c = fBlaMka(c, d);     \\\n        b = ROTR64(b ^ c, 63); \\\n    } while ((void) 0, 0)\n\n#define BLAKE2_ROUND_NOMSG(v0, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, \\\n                           v12, v13, v14, v15)                               \\\n    do {                                                                     \\\n        G(v0, v4, v8, v12);                                                  \\\n        G(v1, v5, v9, v13);                                                  \\\n        G(v2, v6, v10, v14);                                                 \\\n        G(v3, v7, v11, v15);                                                 \\\n        G(v0, v5, v10, v15);                                                 \\\n        G(v1, v6, v11, v12);                                                 \\\n        G(v2, v7, v8, v13);                                                  \\\n        G(v3, v4, v9, v14);                                                  \\\n    } while ((void) 0, 0)\n\n#endif\n"
  },
  {
    "path": "src/libsodium/crypto_pwhash/argon2/blamka-round-ssse3.h",
    "content": "#ifndef blamka_round_ssse3_H\n#define blamka_round_ssse3_H\n\n#include \"private/common.h\"\n#include \"private/sse2_64_32.h\"\n\n#define r16 \\\n    (_mm_setr_epi8(2, 3, 4, 5, 6, 7, 0, 1, 10, 11, 12, 13, 14, 15, 8, 9))\n#define r24 \\\n    (_mm_setr_epi8(3, 4, 5, 6, 7, 0, 1, 2, 11, 12, 13, 14, 15, 8, 9, 10))\n\n#if !(defined(_mm_roti_epi64) && defined(__XOP__))\n#undef  _mm_roti_epi64\n#define _mm_roti_epi64(x, c)                                         \\\n    (-(c) == 32)                                                     \\\n        ? _mm_shuffle_epi32((x), _MM_SHUFFLE(2, 3, 0, 1))            \\\n        : (-(c) == 24)                                               \\\n              ? _mm_shuffle_epi8((x), r24)                           \\\n              : (-(c) == 16)                                         \\\n                    ? _mm_shuffle_epi8((x), r16)                     \\\n                    : (-(c) == 63)                                   \\\n                          ? _mm_xor_si128(_mm_srli_epi64((x), -(c)), \\\n                                          _mm_add_epi64((x), (x)))   \\\n                          : _mm_xor_si128(_mm_srli_epi64((x), -(c)), \\\n                                          _mm_slli_epi64((x), 64 - (-(c))))\n#endif\n\nstatic inline __m128i\nfBlaMka(__m128i x, __m128i y)\n{\n    const __m128i z = _mm_mul_epu32(x, y);\n    return _mm_add_epi64(_mm_add_epi64(x, y), _mm_add_epi64(z, z));\n}\n\n#define G1(A0, B0, C0, D0, A1, B1, C1, D1) \\\n    do {                                   \\\n        A0 = fBlaMka(A0, B0);              \\\n        A1 = fBlaMka(A1, B1);              \\\n                                           \\\n        D0 = _mm_xor_si128(D0, A0);        \\\n        D1 = _mm_xor_si128(D1, A1);        \\\n                                           \\\n        D0 = _mm_roti_epi64(D0, -32);      \\\n        D1 = _mm_roti_epi64(D1, -32);      \\\n                                           \\\n        C0 = fBlaMka(C0, D0);              \\\n        C1 = fBlaMka(C1, D1);              \\\n                                           \\\n        B0 = _mm_xor_si128(B0, C0);        \\\n        B1 = _mm_xor_si128(B1, C1);        \\\n                                           \\\n        B0 = _mm_roti_epi64(B0, -24);      \\\n        B1 = _mm_roti_epi64(B1, -24);      \\\n    } while ((void) 0, 0)\n\n#define G2(A0, B0, C0, D0, A1, B1, C1, D1) \\\n    do {                                   \\\n        A0 = fBlaMka(A0, B0);              \\\n        A1 = fBlaMka(A1, B1);              \\\n                                           \\\n        D0 = _mm_xor_si128(D0, A0);        \\\n        D1 = _mm_xor_si128(D1, A1);        \\\n                                           \\\n        D0 = _mm_roti_epi64(D0, -16);      \\\n        D1 = _mm_roti_epi64(D1, -16);      \\\n                                           \\\n        C0 = fBlaMka(C0, D0);              \\\n        C1 = fBlaMka(C1, D1);              \\\n                                           \\\n        B0 = _mm_xor_si128(B0, C0);        \\\n        B1 = _mm_xor_si128(B1, C1);        \\\n                                           \\\n        B0 = _mm_roti_epi64(B0, -63);      \\\n        B1 = _mm_roti_epi64(B1, -63);      \\\n    } while ((void) 0, 0)\n\n#define DIAGONALIZE(A0, B0, C0, D0, A1, B1, C1, D1) \\\n    do {                                            \\\n        __m128i t0 = _mm_alignr_epi8(B1, B0, 8);    \\\n        __m128i t1 = _mm_alignr_epi8(B0, B1, 8);    \\\n        B0         = t0;                            \\\n        B1         = t1;                            \\\n                                                    \\\n        t0 = C0;                                    \\\n        C0 = C1;                                    \\\n        C1 = t0;                                    \\\n                                                    \\\n        t0 = _mm_alignr_epi8(D1, D0, 8);            \\\n        t1 = _mm_alignr_epi8(D0, D1, 8);            \\\n        D0 = t1;                                    \\\n        D1 = t0;                                    \\\n    } while ((void) 0, 0)\n\n#define UNDIAGONALIZE(A0, B0, C0, D0, A1, B1, C1, D1) \\\n    do {                                              \\\n        __m128i t0 = _mm_alignr_epi8(B0, B1, 8);      \\\n        __m128i t1 = _mm_alignr_epi8(B1, B0, 8);      \\\n        B0         = t0;                              \\\n        B1         = t1;                              \\\n                                                      \\\n        t0 = C0;                                      \\\n        C0 = C1;                                      \\\n        C1 = t0;                                      \\\n                                                      \\\n        t0 = _mm_alignr_epi8(D0, D1, 8);              \\\n        t1 = _mm_alignr_epi8(D1, D0, 8);              \\\n        D0 = t1;                                      \\\n        D1 = t0;                                      \\\n    } while ((void) 0, 0)\n\n#define BLAKE2_ROUND(A0, A1, B0, B1, C0, C1, D0, D1)   \\\n    do {                                               \\\n        G1(A0, B0, C0, D0, A1, B1, C1, D1);            \\\n        G2(A0, B0, C0, D0, A1, B1, C1, D1);            \\\n                                                       \\\n        DIAGONALIZE(A0, B0, C0, D0, A1, B1, C1, D1);   \\\n                                                       \\\n        G1(A0, B0, C0, D0, A1, B1, C1, D1);            \\\n        G2(A0, B0, C0, D0, A1, B1, C1, D1);            \\\n                                                       \\\n        UNDIAGONALIZE(A0, B0, C0, D0, A1, B1, C1, D1); \\\n    } while ((void) 0, 0)\n\n#endif\n"
  },
  {
    "path": "src/libsodium/crypto_pwhash/argon2/blamka-round-wasm32.h",
    "content": "#ifndef blamka_round_wasm32_H\n#define blamka_round_wasm32_H\n\n#include <wasm_simd128.h>\n#include \"private/common.h\"\n\nstatic inline v128_t\nfBlaMka_wasm(v128_t x, v128_t y)\n{\n    const v128_t z = wasm_u64x2_extmul_low_u32x4(x, y);\n    return wasm_i64x2_add(wasm_i64x2_add(x, y), wasm_i64x2_add(z, z));\n}\n\nstatic inline v128_t\nrotr64_32_wasm(v128_t x)\n{\n    return wasm_i32x4_shuffle(x, x, 1, 0, 3, 2);\n}\n\nstatic inline v128_t\nrotr64_24_wasm(v128_t x)\n{\n    return wasm_v128_or(wasm_u64x2_shr(x, 24), wasm_i64x2_shl(x, 40));\n}\n\nstatic inline v128_t\nrotr64_16_wasm(v128_t x)\n{\n    return wasm_v128_or(wasm_u64x2_shr(x, 16), wasm_i64x2_shl(x, 48));\n}\n\nstatic inline v128_t\nrotr64_63_wasm(v128_t x)\n{\n    return wasm_v128_or(wasm_u64x2_shr(x, 63), wasm_i64x2_shl(x, 1));\n}\n\n#define G1_WASM(A0, B0, C0, D0, A1, B1, C1, D1) \\\n    do {                                        \\\n        A0 = fBlaMka_wasm(A0, B0);              \\\n        A1 = fBlaMka_wasm(A1, B1);              \\\n                                                \\\n        D0 = wasm_v128_xor(D0, A0);             \\\n        D1 = wasm_v128_xor(D1, A1);             \\\n                                                \\\n        D0 = rotr64_32_wasm(D0);                \\\n        D1 = rotr64_32_wasm(D1);                \\\n                                                \\\n        C0 = fBlaMka_wasm(C0, D0);              \\\n        C1 = fBlaMka_wasm(C1, D1);              \\\n                                                \\\n        B0 = wasm_v128_xor(B0, C0);             \\\n        B1 = wasm_v128_xor(B1, C1);             \\\n                                                \\\n        B0 = rotr64_24_wasm(B0);                \\\n        B1 = rotr64_24_wasm(B1);                \\\n    } while ((void) 0, 0)\n\n#define G2_WASM(A0, B0, C0, D0, A1, B1, C1, D1) \\\n    do {                                        \\\n        A0 = fBlaMka_wasm(A0, B0);              \\\n        A1 = fBlaMka_wasm(A1, B1);              \\\n                                                \\\n        D0 = wasm_v128_xor(D0, A0);             \\\n        D1 = wasm_v128_xor(D1, A1);             \\\n                                                \\\n        D0 = rotr64_16_wasm(D0);                \\\n        D1 = rotr64_16_wasm(D1);                \\\n                                                \\\n        C0 = fBlaMka_wasm(C0, D0);              \\\n        C1 = fBlaMka_wasm(C1, D1);              \\\n                                                \\\n        B0 = wasm_v128_xor(B0, C0);             \\\n        B1 = wasm_v128_xor(B1, C1);             \\\n                                                \\\n        B0 = rotr64_63_wasm(B0);                \\\n        B1 = rotr64_63_wasm(B1);                \\\n    } while ((void) 0, 0)\n\nstatic inline v128_t\nwasm_alignr_8(v128_t a, v128_t b)\n{\n    return wasm_i8x16_shuffle(b, a, 8, 9, 10, 11, 12, 13, 14, 15,\n                              16, 17, 18, 19, 20, 21, 22, 23);\n}\n\n#define DIAGONALIZE_WASM(A0, B0, C0, D0, A1, B1, C1, D1) \\\n    do {                                                 \\\n        v128_t t0 = wasm_alignr_8(B1, B0);               \\\n        v128_t t1 = wasm_alignr_8(B0, B1);               \\\n        B0        = t0;                                  \\\n        B1        = t1;                                  \\\n                                                         \\\n        t0 = C0;                                         \\\n        C0 = C1;                                         \\\n        C1 = t0;                                         \\\n                                                         \\\n        t0 = wasm_alignr_8(D1, D0);                      \\\n        t1 = wasm_alignr_8(D0, D1);                      \\\n        D0 = t1;                                         \\\n        D1 = t0;                                         \\\n    } while ((void) 0, 0)\n\n#define UNDIAGONALIZE_WASM(A0, B0, C0, D0, A1, B1, C1, D1) \\\n    do {                                                   \\\n        v128_t t0 = wasm_alignr_8(B0, B1);                 \\\n        v128_t t1 = wasm_alignr_8(B1, B0);                 \\\n        B0        = t0;                                    \\\n        B1        = t1;                                    \\\n                                                           \\\n        t0 = C0;                                           \\\n        C0 = C1;                                           \\\n        C1 = t0;                                           \\\n                                                           \\\n        t0 = wasm_alignr_8(D0, D1);                        \\\n        t1 = wasm_alignr_8(D1, D0);                        \\\n        D0 = t1;                                           \\\n        D1 = t0;                                           \\\n    } while ((void) 0, 0)\n\n#define BLAKE2_ROUND_WASM(A0, A1, B0, B1, C0, C1, D0, D1)   \\\n    do {                                                    \\\n        G1_WASM(A0, B0, C0, D0, A1, B1, C1, D1);            \\\n        G2_WASM(A0, B0, C0, D0, A1, B1, C1, D1);            \\\n                                                            \\\n        DIAGONALIZE_WASM(A0, B0, C0, D0, A1, B1, C1, D1);   \\\n                                                            \\\n        G1_WASM(A0, B0, C0, D0, A1, B1, C1, D1);            \\\n        G2_WASM(A0, B0, C0, D0, A1, B1, C1, D1);            \\\n                                                            \\\n        UNDIAGONALIZE_WASM(A0, B0, C0, D0, A1, B1, C1, D1); \\\n    } while ((void) 0, 0)\n\n#endif\n"
  },
  {
    "path": "src/libsodium/crypto_pwhash/argon2/pwhash_argon2i.c",
    "content": "\n#include <errno.h>\n#include <limits.h>\n#include <stddef.h>\n#include <stdint.h>\n#include <stdlib.h>\n#include <string.h>\n\n#include \"argon2-core.h\"\n#include \"argon2-encoding.h\"\n#include \"argon2.h\"\n#include \"crypto_pwhash.h\"\n#include \"crypto_pwhash_argon2i.h\"\n#include \"crypto_pwhash_argon2id.h\"\n#include \"private/common.h\"\n#include \"randombytes.h\"\n#include \"utils.h\"\n\n#define STR_HASHBYTES 32U\n\nint\ncrypto_pwhash_argon2i_alg_argon2i13(void)\n{\n    return crypto_pwhash_argon2i_ALG_ARGON2I13;\n}\n\nsize_t\ncrypto_pwhash_argon2i_bytes_min(void)\n{\n    COMPILER_ASSERT(crypto_pwhash_argon2i_BYTES_MIN >= ARGON2_MIN_OUTLEN);\n    return crypto_pwhash_argon2i_BYTES_MIN;\n}\n\nsize_t\ncrypto_pwhash_argon2i_bytes_max(void)\n{\n    COMPILER_ASSERT(crypto_pwhash_argon2i_BYTES_MAX <= ARGON2_MAX_OUTLEN);\n    return crypto_pwhash_argon2i_BYTES_MAX;\n}\n\nsize_t\ncrypto_pwhash_argon2i_passwd_min(void)\n{\n    COMPILER_ASSERT(crypto_pwhash_argon2i_PASSWD_MIN >= ARGON2_MIN_PWD_LENGTH);\n    return crypto_pwhash_argon2i_PASSWD_MIN;\n}\n\nsize_t\ncrypto_pwhash_argon2i_passwd_max(void)\n{\n    COMPILER_ASSERT(crypto_pwhash_argon2i_PASSWD_MAX <= ARGON2_MAX_PWD_LENGTH);\n    return crypto_pwhash_argon2i_PASSWD_MAX;\n}\n\nsize_t\ncrypto_pwhash_argon2i_saltbytes(void)\n{\n    COMPILER_ASSERT(crypto_pwhash_argon2i_SALTBYTES >= ARGON2_MIN_SALT_LENGTH);\n    COMPILER_ASSERT(crypto_pwhash_argon2i_SALTBYTES <= ARGON2_MAX_SALT_LENGTH);\n    return crypto_pwhash_argon2i_SALTBYTES;\n}\n\nsize_t\ncrypto_pwhash_argon2i_strbytes(void)\n{\n    return crypto_pwhash_argon2i_STRBYTES;\n}\n\nconst char*\ncrypto_pwhash_argon2i_strprefix(void)\n{\n    return crypto_pwhash_argon2i_STRPREFIX;\n}\n\nunsigned long long\ncrypto_pwhash_argon2i_opslimit_min(void)\n{\n    COMPILER_ASSERT(crypto_pwhash_argon2i_OPSLIMIT_MIN >= ARGON2_MIN_TIME);\n    return crypto_pwhash_argon2i_OPSLIMIT_MIN;\n}\n\nunsigned long long\ncrypto_pwhash_argon2i_opslimit_max(void)\n{\n    COMPILER_ASSERT(crypto_pwhash_argon2i_OPSLIMIT_MAX <= ARGON2_MAX_TIME);\n    return crypto_pwhash_argon2i_OPSLIMIT_MAX;\n}\n\nsize_t\ncrypto_pwhash_argon2i_memlimit_min(void)\n{\n    COMPILER_ASSERT((crypto_pwhash_argon2i_MEMLIMIT_MIN / 1024U) >= ARGON2_MIN_MEMORY);\n    return crypto_pwhash_argon2i_MEMLIMIT_MIN;\n}\n\nsize_t\ncrypto_pwhash_argon2i_memlimit_max(void)\n{\n    COMPILER_ASSERT((crypto_pwhash_argon2i_MEMLIMIT_MAX / 1024U) <= ARGON2_MAX_MEMORY);\n    return crypto_pwhash_argon2i_MEMLIMIT_MAX;\n}\n\nunsigned long long\ncrypto_pwhash_argon2i_opslimit_interactive(void)\n{\n    return crypto_pwhash_argon2i_OPSLIMIT_INTERACTIVE;\n}\n\nsize_t\ncrypto_pwhash_argon2i_memlimit_interactive(void)\n{\n    return crypto_pwhash_argon2i_MEMLIMIT_INTERACTIVE;\n}\n\nunsigned long long\ncrypto_pwhash_argon2i_opslimit_moderate(void)\n{\n    return crypto_pwhash_argon2i_OPSLIMIT_MODERATE;\n}\n\nsize_t\ncrypto_pwhash_argon2i_memlimit_moderate(void)\n{\n    return crypto_pwhash_argon2i_MEMLIMIT_MODERATE;\n}\n\nunsigned long long\ncrypto_pwhash_argon2i_opslimit_sensitive(void)\n{\n    return crypto_pwhash_argon2i_OPSLIMIT_SENSITIVE;\n}\n\nsize_t\ncrypto_pwhash_argon2i_memlimit_sensitive(void)\n{\n    return crypto_pwhash_argon2i_MEMLIMIT_SENSITIVE;\n}\n\nint\ncrypto_pwhash_argon2i(unsigned char *const out, unsigned long long outlen,\n                      const char *const passwd, unsigned long long passwdlen,\n                      const unsigned char *const salt,\n                      unsigned long long opslimit, size_t memlimit, int alg)\n{\n    memset(out, 0, outlen);\n    if (outlen > crypto_pwhash_argon2i_BYTES_MAX) {\n        errno = EFBIG; /* LCOV_EXCL_LINE */\n        return -1;     /* LCOV_EXCL_LINE */\n    }\n    if (outlen < crypto_pwhash_argon2i_BYTES_MIN) {\n        errno = EINVAL;\n        return -1;\n    }\n    if (passwdlen > crypto_pwhash_argon2i_PASSWD_MAX ||\n        opslimit > crypto_pwhash_argon2i_OPSLIMIT_MAX ||\n        memlimit > crypto_pwhash_argon2i_MEMLIMIT_MAX) {\n        errno = EFBIG;\n        return -1;\n    }\n    if (passwdlen < crypto_pwhash_argon2i_PASSWD_MIN ||\n        opslimit < crypto_pwhash_argon2i_OPSLIMIT_MIN ||\n        memlimit < crypto_pwhash_argon2i_MEMLIMIT_MIN) {\n        errno = EINVAL;\n        return -1;\n    }\n    if ((const void *) out == (const void *) passwd) {\n        errno = EINVAL; /* LCOV_EXCL_LINE */\n        return -1;      /* LCOV_EXCL_LINE */\n    }\n    switch (alg) {\n    case crypto_pwhash_argon2i_ALG_ARGON2I13:\n        if (argon2i_hash_raw((uint32_t) opslimit, (uint32_t) (memlimit / 1024U),\n                             (uint32_t) 1U, passwd, (size_t) passwdlen, salt,\n                             (size_t) crypto_pwhash_argon2i_SALTBYTES, out,\n                             (size_t) outlen) != ARGON2_OK) {\n            return -1; /* LCOV_EXCL_LINE */\n        }\n        return 0;\n    default:\n        errno = EINVAL;\n        return -1;\n    }\n}\n\nint\ncrypto_pwhash_argon2i_str(char out[crypto_pwhash_argon2i_STRBYTES],\n                          const char *const passwd,\n                          unsigned long long passwdlen,\n                          unsigned long long opslimit, size_t memlimit)\n{\n    unsigned char salt[crypto_pwhash_argon2i_SALTBYTES];\n\n    memset(out, 0, crypto_pwhash_argon2i_STRBYTES);\n    if (passwdlen > crypto_pwhash_argon2i_PASSWD_MAX ||\n        opslimit > crypto_pwhash_argon2i_OPSLIMIT_MAX ||\n        memlimit > crypto_pwhash_argon2i_MEMLIMIT_MAX) {\n        errno = EFBIG;\n        return -1;\n    }\n    if (passwdlen < crypto_pwhash_argon2i_PASSWD_MIN ||\n        opslimit < crypto_pwhash_argon2i_OPSLIMIT_MIN ||\n        memlimit < crypto_pwhash_argon2i_MEMLIMIT_MIN) {\n        errno = EINVAL;\n        return -1;\n    }\n    randombytes_buf(salt, sizeof salt);\n    if (argon2i_hash_encoded((uint32_t) opslimit, (uint32_t) (memlimit / 1024U),\n                             (uint32_t) 1U, passwd, (size_t) passwdlen, salt,\n                             sizeof salt, STR_HASHBYTES, out,\n                             crypto_pwhash_argon2i_STRBYTES) != ARGON2_OK) {\n        return -1; /* LCOV_EXCL_LINE */\n    }\n    return 0;\n}\n\nint\ncrypto_pwhash_argon2i_str_verify(const char * str,\n                                 const char * const passwd,\n                                 unsigned long long passwdlen)\n{\n    int verify_ret;\n\n    if (passwdlen > crypto_pwhash_argon2i_PASSWD_MAX) {\n        errno = EFBIG;\n        return -1;\n    }\n    /* LCOV_EXCL_START */\n    if (passwdlen < crypto_pwhash_argon2i_PASSWD_MIN) {\n        errno = EINVAL;\n        return -1;\n    }\n    /* LCOV_EXCL_STOP */\n\n    verify_ret = argon2i_verify(str, passwd, (size_t) passwdlen);\n    if (verify_ret == ARGON2_OK) {\n        return 0;\n    }\n    if (verify_ret == ARGON2_VERIFY_MISMATCH) {\n        errno = EINVAL;\n    }\n    return -1;\n}\n\nstatic int\n_needs_rehash(const char *str, unsigned long long opslimit, size_t memlimit,\n              argon2_type type)\n{\n    unsigned char  *fodder;\n    argon2_context  ctx;\n    size_t          fodder_len;\n    int             ret = -1;\n\n    fodder_len = strlen(str);\n    memlimit /= 1024U;\n    if (opslimit > UINT32_MAX || memlimit > UINT32_MAX ||\n        fodder_len >= crypto_pwhash_STRBYTES) {\n        errno = EINVAL;\n        return -1;\n    }\n    memset(&ctx, 0, sizeof ctx);\n    if ((fodder = (unsigned char *) calloc(fodder_len, 1U)) == NULL) {\n        return -1; /* LCOV_EXCL_LINE */\n    }\n    ctx.out    = ctx.pwd       = ctx.salt    = fodder;\n    ctx.outlen = ctx.pwdlen    = ctx.saltlen = (uint32_t) fodder_len;\n    ctx.ad     = ctx.secret    = NULL;\n    ctx.adlen  = ctx.secretlen = 0U;\n    if (argon2_decode_string(&ctx, str, type) != 0) {\n        errno = EINVAL;\n        ret = -1;\n    } else if (ctx.t_cost != (uint32_t) opslimit ||\n               ctx.m_cost != (uint32_t) memlimit) {\n        ret = 1;\n    } else {\n        ret = 0;\n    }\n    free(fodder);\n\n    return ret;\n}\n\nint\ncrypto_pwhash_argon2i_str_needs_rehash(const char * str,\n                                       unsigned long long opslimit, size_t memlimit)\n{\n    return _needs_rehash(str, opslimit, memlimit, Argon2_i);\n}\n\nint\ncrypto_pwhash_argon2id_str_needs_rehash(const char * str,\n                                        unsigned long long opslimit, size_t memlimit)\n{\n    return _needs_rehash(str, opslimit, memlimit, Argon2_id);\n}\n"
  },
  {
    "path": "src/libsodium/crypto_pwhash/argon2/pwhash_argon2id.c",
    "content": "\n#include <errno.h>\n#include <limits.h>\n#include <stddef.h>\n#include <stdint.h>\n#include <string.h>\n\n#include \"argon2-core.h\"\n#include \"argon2.h\"\n#include \"crypto_pwhash_argon2id.h\"\n#include \"private/common.h\"\n#include \"randombytes.h\"\n#include \"utils.h\"\n\n#define STR_HASHBYTES 32U\n\nint\ncrypto_pwhash_argon2id_alg_argon2id13(void)\n{\n    return crypto_pwhash_argon2id_ALG_ARGON2ID13;\n}\n\nsize_t\ncrypto_pwhash_argon2id_bytes_min(void)\n{\n    COMPILER_ASSERT(crypto_pwhash_argon2id_BYTES_MIN >= ARGON2_MIN_OUTLEN);\n    return crypto_pwhash_argon2id_BYTES_MIN;\n}\n\nsize_t\ncrypto_pwhash_argon2id_bytes_max(void)\n{\n    COMPILER_ASSERT(crypto_pwhash_argon2id_BYTES_MAX <= ARGON2_MAX_OUTLEN);\n    return crypto_pwhash_argon2id_BYTES_MAX;\n}\n\nsize_t\ncrypto_pwhash_argon2id_passwd_min(void)\n{\n    COMPILER_ASSERT(crypto_pwhash_argon2id_PASSWD_MIN >= ARGON2_MIN_PWD_LENGTH);\n    return crypto_pwhash_argon2id_PASSWD_MIN;\n}\n\nsize_t\ncrypto_pwhash_argon2id_passwd_max(void)\n{\n    COMPILER_ASSERT(crypto_pwhash_argon2id_PASSWD_MAX <= ARGON2_MAX_PWD_LENGTH);\n    return crypto_pwhash_argon2id_PASSWD_MAX;\n}\n\nsize_t\ncrypto_pwhash_argon2id_saltbytes(void)\n{\n    COMPILER_ASSERT(crypto_pwhash_argon2id_SALTBYTES >= ARGON2_MIN_SALT_LENGTH);\n    COMPILER_ASSERT(crypto_pwhash_argon2id_SALTBYTES <= ARGON2_MAX_SALT_LENGTH);\n    return crypto_pwhash_argon2id_SALTBYTES;\n}\n\nsize_t\ncrypto_pwhash_argon2id_strbytes(void)\n{\n    return crypto_pwhash_argon2id_STRBYTES;\n}\n\nconst char*\ncrypto_pwhash_argon2id_strprefix(void)\n{\n    return crypto_pwhash_argon2id_STRPREFIX;\n}\n\nunsigned long long\ncrypto_pwhash_argon2id_opslimit_min(void)\n{\n    COMPILER_ASSERT(crypto_pwhash_argon2id_OPSLIMIT_MIN >= ARGON2_MIN_TIME);\n    return crypto_pwhash_argon2id_OPSLIMIT_MIN;\n}\n\nunsigned long long\ncrypto_pwhash_argon2id_opslimit_max(void)\n{\n    COMPILER_ASSERT(crypto_pwhash_argon2id_OPSLIMIT_MAX <= ARGON2_MAX_TIME);\n    return crypto_pwhash_argon2id_OPSLIMIT_MAX;\n}\n\nsize_t\ncrypto_pwhash_argon2id_memlimit_min(void)\n{\n    COMPILER_ASSERT((crypto_pwhash_argon2id_MEMLIMIT_MIN / 1024U) >= ARGON2_MIN_MEMORY);\n    return crypto_pwhash_argon2id_MEMLIMIT_MIN;\n}\n\nsize_t\ncrypto_pwhash_argon2id_memlimit_max(void)\n{\n    COMPILER_ASSERT((crypto_pwhash_argon2id_MEMLIMIT_MAX / 1024U) <= ARGON2_MAX_MEMORY);\n    return crypto_pwhash_argon2id_MEMLIMIT_MAX;\n}\n\nunsigned long long\ncrypto_pwhash_argon2id_opslimit_interactive(void)\n{\n    return crypto_pwhash_argon2id_OPSLIMIT_INTERACTIVE;\n}\n\nsize_t\ncrypto_pwhash_argon2id_memlimit_interactive(void)\n{\n    return crypto_pwhash_argon2id_MEMLIMIT_INTERACTIVE;\n}\n\nunsigned long long\ncrypto_pwhash_argon2id_opslimit_moderate(void)\n{\n    return crypto_pwhash_argon2id_OPSLIMIT_MODERATE;\n}\n\nsize_t\ncrypto_pwhash_argon2id_memlimit_moderate(void)\n{\n    return crypto_pwhash_argon2id_MEMLIMIT_MODERATE;\n}\n\nunsigned long long\ncrypto_pwhash_argon2id_opslimit_sensitive(void)\n{\n    return crypto_pwhash_argon2id_OPSLIMIT_SENSITIVE;\n}\n\nsize_t\ncrypto_pwhash_argon2id_memlimit_sensitive(void)\n{\n    return crypto_pwhash_argon2id_MEMLIMIT_SENSITIVE;\n}\n\nint\ncrypto_pwhash_argon2id(unsigned char *const out, unsigned long long outlen,\n                       const char *const passwd, unsigned long long passwdlen,\n                       const unsigned char *const salt,\n                       unsigned long long opslimit, size_t memlimit, int alg)\n{\n    memset(out, 0, outlen);\n    if (outlen > crypto_pwhash_argon2id_BYTES_MAX) {\n        errno = EFBIG; /* LCOV_EXCL_LINE */\n        return -1;     /* LCOV_EXCL_LINE */\n    }\n    if (outlen < crypto_pwhash_argon2id_BYTES_MIN) {\n        errno = EINVAL;\n        return -1;\n    }\n    if (passwdlen > crypto_pwhash_argon2id_PASSWD_MAX ||\n        opslimit > crypto_pwhash_argon2id_OPSLIMIT_MAX ||\n        memlimit > crypto_pwhash_argon2id_MEMLIMIT_MAX) {\n        errno = EFBIG;\n        return -1;\n    }\n    if (passwdlen < crypto_pwhash_argon2id_PASSWD_MIN ||\n        opslimit < crypto_pwhash_argon2id_OPSLIMIT_MIN ||\n        memlimit < crypto_pwhash_argon2id_MEMLIMIT_MIN) {\n        errno = EINVAL;\n        return -1;\n    }\n    if ((const void *) out == (const void *) passwd) {\n        errno = EINVAL; /* LCOV_EXCL_LINE */\n        return -1;      /* LCOV_EXCL_LINE */\n    }\n    switch (alg) {\n    case crypto_pwhash_argon2id_ALG_ARGON2ID13:\n        if (argon2id_hash_raw((uint32_t) opslimit, (uint32_t) (memlimit / 1024U),\n                              (uint32_t) 1U, passwd, (size_t) passwdlen, salt,\n                              (size_t) crypto_pwhash_argon2id_SALTBYTES, out,\n                              (size_t) outlen) != ARGON2_OK) {\n            return -1; /* LCOV_EXCL_LINE */\n        }\n        return 0;\n    default:\n        errno = EINVAL;\n        return -1;\n    }\n}\n\nint\ncrypto_pwhash_argon2id_str(char out[crypto_pwhash_argon2id_STRBYTES],\n                           const char *const passwd,\n                           unsigned long long passwdlen,\n                           unsigned long long opslimit, size_t memlimit)\n{\n    unsigned char salt[crypto_pwhash_argon2id_SALTBYTES];\n\n    memset(out, 0, crypto_pwhash_argon2id_STRBYTES);\n    if (passwdlen > crypto_pwhash_argon2id_PASSWD_MAX ||\n        opslimit > crypto_pwhash_argon2id_OPSLIMIT_MAX ||\n        memlimit > crypto_pwhash_argon2id_MEMLIMIT_MAX) {\n        errno = EFBIG;\n        return -1;\n    }\n    if (passwdlen < crypto_pwhash_argon2id_PASSWD_MIN ||\n        opslimit < crypto_pwhash_argon2id_OPSLIMIT_MIN ||\n        memlimit < crypto_pwhash_argon2id_MEMLIMIT_MIN) {\n        errno = EINVAL;\n        return -1;\n    }\n    randombytes_buf(salt, sizeof salt);\n    if (argon2id_hash_encoded((uint32_t) opslimit, (uint32_t) (memlimit / 1024U),\n                              (uint32_t) 1U, passwd, (size_t) passwdlen, salt,\n                              sizeof salt, STR_HASHBYTES, out,\n                              crypto_pwhash_argon2id_STRBYTES) != ARGON2_OK) {\n        return -1; /* LCOV_EXCL_LINE */\n    }\n    return 0;\n}\n\nint\ncrypto_pwhash_argon2id_str_verify(const char * str,\n                                  const char * const passwd,\n                                  unsigned long long passwdlen)\n{\n    int verify_ret;\n\n    if (passwdlen > crypto_pwhash_argon2id_PASSWD_MAX) {\n        errno = EFBIG; /* LCOV_EXCL_LINE */\n        return -1;     /* LCOV_EXCL_LINE */\n    }\n    /* LCOV_EXCL_START */\n    if (passwdlen < crypto_pwhash_argon2id_PASSWD_MIN) {\n        errno = EINVAL;\n        return -1;\n    }\n    /* LCOV_EXCL_STOP */\n\n    verify_ret = argon2id_verify(str, passwd, (size_t) passwdlen);\n    if (verify_ret == ARGON2_OK) {\n        return 0;\n    }\n    if (verify_ret == ARGON2_VERIFY_MISMATCH) {\n        errno = EINVAL;\n    }\n    return -1;\n}\n"
  },
  {
    "path": "src/libsodium/crypto_pwhash/crypto_pwhash.c",
    "content": "\n#include <errno.h>\n#include <string.h>\n\n#include \"core.h\"\n#include \"crypto_pwhash.h\"\n\nint\ncrypto_pwhash_alg_argon2i13(void)\n{\n    return crypto_pwhash_ALG_ARGON2I13;\n}\n\nint\ncrypto_pwhash_alg_argon2id13(void)\n{\n    return crypto_pwhash_ALG_ARGON2ID13;\n}\n\nint\ncrypto_pwhash_alg_default(void)\n{\n    return crypto_pwhash_ALG_DEFAULT;\n}\n\nsize_t\ncrypto_pwhash_bytes_min(void)\n{\n    return crypto_pwhash_BYTES_MIN;\n}\n\nsize_t\ncrypto_pwhash_bytes_max(void)\n{\n    return crypto_pwhash_BYTES_MAX;\n}\n\nsize_t\ncrypto_pwhash_passwd_min(void)\n{\n    return crypto_pwhash_PASSWD_MIN;\n}\n\nsize_t\ncrypto_pwhash_passwd_max(void)\n{\n    return crypto_pwhash_PASSWD_MAX;\n}\n\nsize_t\ncrypto_pwhash_saltbytes(void)\n{\n    return crypto_pwhash_SALTBYTES;\n}\n\nsize_t\ncrypto_pwhash_strbytes(void)\n{\n    return crypto_pwhash_STRBYTES;\n}\n\nconst char *\ncrypto_pwhash_strprefix(void)\n{\n    return crypto_pwhash_STRPREFIX;\n}\n\nunsigned long long\ncrypto_pwhash_opslimit_min(void)\n{\n    return crypto_pwhash_OPSLIMIT_MIN;\n}\n\nunsigned long long\ncrypto_pwhash_opslimit_max(void)\n{\n    return crypto_pwhash_OPSLIMIT_MAX;\n}\n\nsize_t\ncrypto_pwhash_memlimit_min(void)\n{\n    return crypto_pwhash_MEMLIMIT_MIN;\n}\n\nsize_t\ncrypto_pwhash_memlimit_max(void)\n{\n    return crypto_pwhash_MEMLIMIT_MAX;\n}\n\nunsigned long long\ncrypto_pwhash_opslimit_interactive(void)\n{\n    return crypto_pwhash_OPSLIMIT_INTERACTIVE;\n}\n\nsize_t\ncrypto_pwhash_memlimit_interactive(void)\n{\n    return crypto_pwhash_MEMLIMIT_INTERACTIVE;\n}\n\nunsigned long long\ncrypto_pwhash_opslimit_moderate(void)\n{\n    return crypto_pwhash_OPSLIMIT_MODERATE;\n}\n\nsize_t\ncrypto_pwhash_memlimit_moderate(void)\n{\n    return crypto_pwhash_MEMLIMIT_MODERATE;\n}\n\nunsigned long long\ncrypto_pwhash_opslimit_sensitive(void)\n{\n    return crypto_pwhash_OPSLIMIT_SENSITIVE;\n}\n\nsize_t\ncrypto_pwhash_memlimit_sensitive(void)\n{\n    return crypto_pwhash_MEMLIMIT_SENSITIVE;\n}\n\nint\ncrypto_pwhash(unsigned char * const out, unsigned long long outlen,\n              const char * const passwd, unsigned long long passwdlen,\n              const unsigned char * const salt,\n              unsigned long long opslimit, size_t memlimit, int alg)\n{\n    switch (alg) {\n    case crypto_pwhash_ALG_ARGON2I13:\n        return crypto_pwhash_argon2i(out, outlen, passwd, passwdlen, salt,\n                                     opslimit, memlimit, alg);\n    case crypto_pwhash_ALG_ARGON2ID13:\n        return crypto_pwhash_argon2id(out, outlen, passwd, passwdlen, salt,\n                                      opslimit, memlimit, alg);\n    default:\n        errno = EINVAL;\n        return -1;\n    }\n}\n\nint\ncrypto_pwhash_str(char out[crypto_pwhash_STRBYTES],\n                  const char * const passwd, unsigned long long passwdlen,\n                  unsigned long long opslimit, size_t memlimit)\n{\n    return crypto_pwhash_argon2id_str(out, passwd, passwdlen,\n                                      opslimit, memlimit);\n}\n\nint\ncrypto_pwhash_str_alg(char out[crypto_pwhash_STRBYTES],\n                      const char * const passwd, unsigned long long passwdlen,\n                      unsigned long long opslimit, size_t memlimit, int alg)\n{\n    switch (alg) {\n    case crypto_pwhash_ALG_ARGON2I13:\n        return crypto_pwhash_argon2i_str(out, passwd, passwdlen,\n                                         opslimit, memlimit);\n    case crypto_pwhash_ALG_ARGON2ID13:\n        return crypto_pwhash_argon2id_str(out, passwd, passwdlen,\n                                          opslimit, memlimit);\n    }\n    sodium_misuse(); /* LCOV_EXCL_LINE */\n    /* NOTREACHED */\n    return -1; /* LCOV_EXCL_LINE */\n}\n\nint\ncrypto_pwhash_str_verify(const char * str,\n                         const char * const passwd,\n                         unsigned long long passwdlen)\n{\n    if (strncmp(str, crypto_pwhash_argon2id_STRPREFIX,\n                sizeof crypto_pwhash_argon2id_STRPREFIX - 1) == 0) {\n        return crypto_pwhash_argon2id_str_verify(str, passwd, passwdlen);\n    }\n    if (strncmp(str, crypto_pwhash_argon2i_STRPREFIX,\n                sizeof crypto_pwhash_argon2i_STRPREFIX - 1) == 0) {\n        return crypto_pwhash_argon2i_str_verify(str, passwd, passwdlen);\n    }\n    errno = EINVAL;\n\n    return -1;\n}\n\nint\ncrypto_pwhash_str_needs_rehash(const char * str,\n                               unsigned long long opslimit, size_t memlimit)\n{\n    if (strncmp(str, crypto_pwhash_argon2id_STRPREFIX,\n                sizeof crypto_pwhash_argon2id_STRPREFIX - 1) == 0) {\n        return crypto_pwhash_argon2id_str_needs_rehash(str, opslimit, memlimit);\n    }\n    if (strncmp(str, crypto_pwhash_argon2i_STRPREFIX,\n                sizeof crypto_pwhash_argon2i_STRPREFIX - 1) == 0) {\n        return crypto_pwhash_argon2i_str_needs_rehash(str, opslimit, memlimit);\n    }\n    errno = EINVAL;\n\n    return -1;\n}\n\nconst char *\ncrypto_pwhash_primitive(void) {\n    return crypto_pwhash_PRIMITIVE;\n}\n"
  },
  {
    "path": "src/libsodium/crypto_pwhash/scryptsalsa208sha256/crypto_scrypt-common.c",
    "content": "/*-\n * Copyright 2013 Alexander Peslyak\n * All rights reserved.\n *\n * Redistribution and use in source and binary forms, with or without\n * modification, are permitted.\n *\n * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND\n * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\n * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE\n * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE\n * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL\n * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS\n * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)\n * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT\n * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY\n * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF\n * SUCH DAMAGE.\n */\n\n#include <stdint.h>\n#include <string.h>\n\n#include \"crypto_pwhash_scryptsalsa208sha256.h\"\n#include \"crypto_scrypt.h\"\n#include \"private/common.h\"\n#include \"randombytes.h\"\n#include \"runtime.h\"\n#include \"utils.h\"\n\nstatic const char *const itoa64 =\n    \"./0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz\";\n\nstatic uint8_t *\nencode64_uint32(uint8_t *dst, size_t dstlen, uint32_t src, uint32_t srcbits)\n{\n    uint32_t bit;\n\n    for (bit = 0; bit < srcbits; bit += 6) {\n        if (dstlen < 1) {\n            return NULL; /* LCOV_EXCL_LINE */\n        }\n        *dst++ = itoa64[src & 0x3f];\n        dstlen--;\n        src >>= 6;\n    }\n    return dst;\n}\n\nstatic uint8_t *\nencode64(uint8_t *dst, size_t dstlen, const uint8_t *src, size_t srclen)\n{\n    size_t i;\n\n    for (i = 0; i < srclen;) {\n        uint8_t *dnext;\n        uint32_t value = 0, bits = 0;\n\n        do {\n            value |= (uint32_t) src[i++] << bits;\n            bits += 8;\n        } while (bits < 24 && i < srclen);\n\n        dnext = encode64_uint32(dst, dstlen, value, bits);\n        if (!dnext) {\n            return NULL; /* LCOV_EXCL_LINE */\n        }\n        dstlen -= dnext - dst;\n        dst = dnext;\n    }\n    return dst;\n}\n\nstatic int\ndecode64_one(uint32_t *dst, uint8_t src)\n{\n    const char *ptr = strchr(itoa64, src);\n\n    if (ptr) {\n        *dst = (uint32_t)(ptr - itoa64);\n        return 0;\n    }\n    *dst = 0;\n\n    return -1;\n}\n\nstatic const uint8_t *\ndecode64_uint32(uint32_t *dst, uint32_t dstbits, const uint8_t *src)\n{\n    uint32_t bit;\n    uint32_t value;\n\n    value = 0;\n    for (bit = 0; bit < dstbits; bit += 6) {\n        uint32_t one;\n        if (decode64_one(&one, *src)) {\n            *dst = 0;\n            return NULL;\n        }\n        src++;\n        value |= one << bit;\n    }\n    *dst = value;\n\n    return src;\n}\n\nconst uint8_t *\nescrypt_parse_setting(const uint8_t *setting,\n                      uint32_t *N_log2_p, uint32_t *r_p, uint32_t *p_p)\n{\n    const uint8_t *src;\n\n    if (setting[0] != '$' || setting[1] != '7' || setting[2] != '$') {\n        return NULL;\n    }\n    src = setting + 3;\n\n    if (decode64_one(N_log2_p, *src)) {\n        return NULL;\n    }\n    src++;\n\n    src = decode64_uint32(r_p, 30, src);\n    if (!src) {\n        return NULL;\n    }\n\n    src = decode64_uint32(p_p, 30, src);\n    if (!src) {\n        return NULL;\n    }\n    return src;\n}\n\nuint8_t *\nescrypt_r(escrypt_local_t *local, const uint8_t *passwd, size_t passwdlen,\n          const uint8_t *setting, uint8_t *buf, size_t buflen)\n{\n    uint8_t        hash[crypto_pwhash_scryptsalsa208sha256_STRHASHBYTES];\n    escrypt_kdf_t  escrypt_kdf;\n    const uint8_t *src;\n    const uint8_t *salt;\n    uint8_t       *dst;\n    size_t         prefixlen;\n    size_t         saltlen;\n    size_t         need;\n    uint64_t       N;\n    uint32_t       N_log2;\n    uint32_t       r;\n    uint32_t       p;\n\n    if (buf != NULL) {\n        randombytes_buf(buf, buflen);\n    }\n\n    src = escrypt_parse_setting(setting, &N_log2, &r, &p);\n    if (!src) {\n        return NULL;\n    }\n    N = (uint64_t) 1 << N_log2;\n    prefixlen = src - setting;\n\n    salt = src;\n    src  = (const uint8_t *) strrchr((const char *) salt, '$');\n    if (src) {\n        saltlen = src - salt;\n    } else {\n        saltlen = strlen((const char *) salt);\n    }\n    need = prefixlen + saltlen + 1 +\n           crypto_pwhash_scryptsalsa208sha256_STRHASHBYTES_ENCODED + 1;\n    if (buf == NULL || need > buflen || need < saltlen) {\n        return NULL;\n    }\n#ifdef HAVE_EMMINTRIN_H\n    escrypt_kdf =\n        sodium_runtime_has_sse2() ? escrypt_kdf_sse : escrypt_kdf_nosse;\n#else\n    escrypt_kdf = escrypt_kdf_nosse;\n#endif\n    if (escrypt_kdf(local, passwd, passwdlen, salt, saltlen, N, r, p, hash,\n                    sizeof(hash))) {\n        return NULL;\n    }\n    dst = buf;\n    memcpy(dst, setting, prefixlen + saltlen);\n    dst += prefixlen + saltlen;\n    *dst++ = '$';\n\n    dst = encode64(dst, buflen - (dst - buf), hash, sizeof(hash));\n    sodium_memzero(hash, sizeof hash);\n    if (!dst || dst >= buf + buflen) {\n        return NULL; /* Can't happen LCOV_EXCL_LINE */\n    }\n    *dst = 0; /* NUL termination */\n\n    return buf;\n}\n\nuint8_t *\nescrypt_gensalt_r(uint32_t N_log2, uint32_t r, uint32_t p, const uint8_t *src,\n                  size_t srclen, uint8_t *buf, size_t buflen)\n{\n    uint8_t *dst;\n    size_t   prefixlen =\n        (sizeof \"$7$\" - 1U) + (1U /* N_log2 */) + (5U /* r */) + (5U /* p */);\n    size_t saltlen = BYTES2CHARS(srclen);\n    size_t need;\n\n    need = prefixlen + saltlen + 1;\n    if (need > buflen || need < saltlen || saltlen < srclen) {\n        return NULL; /* LCOV_EXCL_LINE */\n    }\n    if (N_log2 > 63 || ((uint64_t) r * (uint64_t) p >= (1U << 30))) {\n        return NULL; /* LCOV_EXCL_LINE */\n    }\n    dst    = buf;\n    *dst++ = '$';\n    *dst++ = '7';\n    *dst++ = '$';\n\n    *dst++ = itoa64[N_log2];\n\n    dst = encode64_uint32(dst, buflen - (dst - buf), r, 30);\n    if (!dst) {\n        return NULL; /* Can't happen LCOV_EXCL_LINE */\n    }\n    dst = encode64_uint32(dst, buflen - (dst - buf), p, 30);\n    if (!dst) {\n        return NULL; /* Can't happen LCOV_EXCL_LINE */\n    }\n    dst = encode64(dst, buflen - (dst - buf), src, srclen);\n    if (!dst || dst >= buf + buflen) {\n        return NULL; /* Can't happen LCOV_EXCL_LINE */\n    }\n    *dst = 0; /* NUL termination */\n\n    return buf;\n}\n\nint\ncrypto_pwhash_scryptsalsa208sha256_ll(const uint8_t *passwd, size_t passwdlen,\n                                      const uint8_t *salt, size_t saltlen,\n                                      uint64_t N, uint32_t r, uint32_t p,\n                                      uint8_t *buf, size_t buflen)\n{\n    escrypt_kdf_t   escrypt_kdf;\n    escrypt_local_t local;\n    int             retval;\n\n    if (escrypt_init_local(&local)) {\n        return -1; /* LCOV_EXCL_LINE */\n    }\n#if defined(HAVE_EMMINTRIN_H)\n    escrypt_kdf =\n        sodium_runtime_has_sse2() ? escrypt_kdf_sse : escrypt_kdf_nosse;\n#else\n    escrypt_kdf = escrypt_kdf_nosse;\n#endif\n    retval = escrypt_kdf(&local, passwd, passwdlen, salt, saltlen, N, r, p, buf,\n                         buflen);\n    if (escrypt_free_local(&local)) {\n        return -1; /* LCOV_EXCL_LINE */\n    }\n    return retval;\n}\n"
  },
  {
    "path": "src/libsodium/crypto_pwhash/scryptsalsa208sha256/crypto_scrypt.h",
    "content": "/*-\n * Copyright 2009 Colin Percival\n * Copyright 2013 Alexander Peslyak\n * All rights reserved.\n *\n * Redistribution and use in source and binary forms, with or without\n * modification, are permitted provided that the following conditions\n * are met:\n * 1. Redistributions of source code must retain the above copyright\n *    notice, this list of conditions and the following disclaimer.\n * 2. Redistributions in binary form must reproduce the above copyright\n *    notice, this list of conditions and the following disclaimer in the\n *    documentation and/or other materials provided with the distribution.\n *\n * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND\n * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\n * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE\n * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE\n * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL\n * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS\n * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)\n * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT\n * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY\n * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF\n * SUCH DAMAGE.\n *\n * This file was originally written by Colin Percival as part of the Tarsnap\n * online backup system.\n */\n#ifndef crypto_scrypt_H\n#define crypto_scrypt_H\n\n#include <limits.h>\n#include <stddef.h>\n#include <stdint.h>\n\n#include \"private/quirks.h\"\n\n#define crypto_pwhash_scryptsalsa208sha256_STRPREFIXBYTES 14\n#define crypto_pwhash_scryptsalsa208sha256_STRSETTINGBYTES 57\n#define crypto_pwhash_scryptsalsa208sha256_STRSALTBYTES 32\n#define crypto_pwhash_scryptsalsa208sha256_STRSALTBYTES_ENCODED 43\n#define crypto_pwhash_scryptsalsa208sha256_STRHASHBYTES 32\n#define crypto_pwhash_scryptsalsa208sha256_STRHASHBYTES_ENCODED 43\n\n#define BYTES2CHARS(bytes) ((((bytes) *8) + 5) / 6)\n\ntypedef struct {\n    void * base, *aligned;\n    size_t size;\n} escrypt_region_t;\n\ntypedef escrypt_region_t escrypt_local_t;\n\nint escrypt_init_local(escrypt_local_t *__local);\n\nint escrypt_free_local(escrypt_local_t *__local);\n\nvoid *escrypt_alloc_region(escrypt_region_t *region, size_t size);\nint escrypt_free_region(escrypt_region_t *region);\n\ntypedef int (*escrypt_kdf_t)(escrypt_local_t *__local, const uint8_t *__passwd,\n                             size_t __passwdlen, const uint8_t *__salt,\n                             size_t __saltlen, uint64_t __N, uint32_t __r,\n                             uint32_t __p, uint8_t *__buf, size_t __buflen);\n\nint escrypt_kdf_nosse(escrypt_local_t *__local, const uint8_t *__passwd,\n                      size_t __passwdlen, const uint8_t *__salt,\n                      size_t __saltlen, uint64_t __N, uint32_t __r,\n                      uint32_t __p, uint8_t *__buf, size_t __buflen);\n\nint escrypt_kdf_sse(escrypt_local_t *__local, const uint8_t *__passwd,\n                    size_t __passwdlen, const uint8_t *__salt,\n                    size_t __saltlen, uint64_t __N, uint32_t __r,\n                    uint32_t __p, uint8_t *__buf, size_t __buflen);\n\nuint8_t *escrypt_r(escrypt_local_t *__local, const uint8_t *__passwd,\n                   size_t __passwdlen, const uint8_t *__setting,\n                   uint8_t *__buf, size_t __buflen);\n\nuint8_t *escrypt_gensalt_r(uint32_t __N_log2, uint32_t __r, uint32_t __p,\n                           const uint8_t *__src, size_t __srclen,\n                           uint8_t *__buf, size_t __buflen);\n\nconst uint8_t *escrypt_parse_setting(const uint8_t *setting,\n                                     uint32_t *N_log2_p, uint32_t *r_p,\n                                     uint32_t *p_p);\n\n#endif /* !_CRYPTO_SCRYPT_H_ */\n"
  },
  {
    "path": "src/libsodium/crypto_pwhash/scryptsalsa208sha256/nosse/pwhash_scryptsalsa208sha256_nosse.c",
    "content": "/*-\n * Copyright 2009 Colin Percival\n * Copyright 2013 Alexander Peslyak\n * All rights reserved.\n *\n * Redistribution and use in source and binary forms, with or without\n * modification, are permitted provided that the following conditions\n * are met:\n * 1. Redistributions of source code must retain the above copyright\n *    notice, this list of conditions and the following disclaimer.\n * 2. Redistributions in binary form must reproduce the above copyright\n *    notice, this list of conditions and the following disclaimer in the\n *    documentation and/or other materials provided with the distribution.\n *\n * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND\n * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\n * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE\n * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE\n * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL\n * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS\n * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)\n * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT\n * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY\n * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF\n * SUCH DAMAGE.\n *\n * This file was originally written by Colin Percival as part of the Tarsnap\n * online backup system.\n */\n\n#include <errno.h>\n#include <limits.h>\n#include <stdint.h>\n#include <stdlib.h>\n#include <string.h>\n\n#include \"../crypto_scrypt.h\"\n#include \"../pbkdf2-sha256.h\"\n#include \"private/common.h\"\n\nstatic inline void\nblkcpy(uint32_t *dest, const uint32_t *src, size_t len)\n{\n    memcpy(dest, src, len * 64);\n}\n\nstatic inline void\nblkxor(uint32_t *dest, const uint32_t *src, size_t len)\n{\n    size_t i;\n\n    for (i = 0; i < len * 16; i++) {\n        dest[i] ^= src[i];\n    }\n}\n\n/*\n * salsa20_8(B):\n * Apply the salsa20/8 core to the provided block.\n */\nstatic void\nsalsa20_8(uint32_t B[16])\n{\n    uint32_t x[16];\n    size_t   i;\n\n    blkcpy(x, B, 1);\n    for (i = 0; i < 8; i += 2) {\n#define R(a, b) (((a) << (b)) | ((a) >> (32 - (b))))\n        /* Operate on columns. */\n        x[4] ^= R(x[0] + x[12], 7);\n        x[8] ^= R(x[4] + x[0], 9);\n        x[12] ^= R(x[8] + x[4], 13);\n        x[0] ^= R(x[12] + x[8], 18);\n\n        x[9] ^= R(x[5] + x[1], 7);\n        x[13] ^= R(x[9] + x[5], 9);\n        x[1] ^= R(x[13] + x[9], 13);\n        x[5] ^= R(x[1] + x[13], 18);\n\n        x[14] ^= R(x[10] + x[6], 7);\n        x[2] ^= R(x[14] + x[10], 9);\n        x[6] ^= R(x[2] + x[14], 13);\n        x[10] ^= R(x[6] + x[2], 18);\n\n        x[3] ^= R(x[15] + x[11], 7);\n        x[7] ^= R(x[3] + x[15], 9);\n        x[11] ^= R(x[7] + x[3], 13);\n        x[15] ^= R(x[11] + x[7], 18);\n\n        /* Operate on rows. */\n        x[1] ^= R(x[0] + x[3], 7);\n        x[2] ^= R(x[1] + x[0], 9);\n        x[3] ^= R(x[2] + x[1], 13);\n        x[0] ^= R(x[3] + x[2], 18);\n\n        x[6] ^= R(x[5] + x[4], 7);\n        x[7] ^= R(x[6] + x[5], 9);\n        x[4] ^= R(x[7] + x[6], 13);\n        x[5] ^= R(x[4] + x[7], 18);\n\n        x[11] ^= R(x[10] + x[9], 7);\n        x[8] ^= R(x[11] + x[10], 9);\n        x[9] ^= R(x[8] + x[11], 13);\n        x[10] ^= R(x[9] + x[8], 18);\n\n        x[12] ^= R(x[15] + x[14], 7);\n        x[13] ^= R(x[12] + x[15], 9);\n        x[14] ^= R(x[13] + x[12], 13);\n        x[15] ^= R(x[14] + x[13], 18);\n#undef R\n    }\n    for (i = 0; i < 16; i++) {\n        B[i] += x[i];\n    }\n}\n\n/*\n * blockmix_salsa8(Bin, Bout, X, r):\n * Compute Bout = BlockMix_{salsa20/8, r}(Bin).\n * The input Bin must be 128r bytes in length;\n * The output Bout must also be the same size.\n * The temporary space X must be 64 bytes.\n */\nstatic void\nblockmix_salsa8(const uint32_t *Bin, uint32_t *Bout, uint32_t *X, size_t r)\n{\n    size_t i;\n\n    /* 1: X <-- B_{2r - 1} */\n    blkcpy(X, &Bin[(2 * r - 1) * 16], 1);\n\n    /* 2: for i = 0 to 2r - 1 do */\n    for (i = 0; i < 2 * r; i += 2) {\n        /* 3: X <-- H(X \\xor B_i) */\n        blkxor(X, &Bin[i * 16], 1);\n        salsa20_8(X);\n\n        /* 4: Y_i <-- X */\n        /* 6: B' <-- (Y_0, Y_2 ... Y_{2r-2}, Y_1, Y_3 ... Y_{2r-1}) */\n        blkcpy(&Bout[i * 8], X, 1);\n\n        /* 3: X <-- H(X \\xor B_i) */\n        blkxor(X, &Bin[i * 16 + 16], 1);\n        salsa20_8(X);\n\n        /* 4: Y_i <-- X */\n        /* 6: B' <-- (Y_0, Y_2 ... Y_{2r-2}, Y_1, Y_3 ... Y_{2r-1}) */\n        blkcpy(&Bout[i * 8 + r * 16], X, 1);\n    }\n}\n\n/*\n * integerify(B, r):\n * Return the result of parsing B_{2r-1} as a little-endian integer.\n */\nstatic inline uint64_t\nintegerify(const uint32_t *B, size_t r)\n{\n    const uint32_t *X = B + (2 * r - 1) * 16;\n\n    return ((uint64_t) (X[1]) << 32) + X[0];\n}\n\n/*\n * smix(B, r, N, V, XY):\n * Compute B = SMix_r(B, N).  The input B must be 128r bytes in length;\n * the temporary storage V must be 128rN bytes in length; the temporary\n * storage XY must be 256r + 64 bytes in length.  The value N must be a\n * power of 2 greater than 1.  The arrays B, V, and XY must be aligned to a\n * multiple of 64 bytes.\n */\nstatic void\nsmix(uint8_t *B, size_t r, uint64_t N, uint32_t *V, uint32_t *XY)\n{\n    uint32_t *X = XY;\n    uint32_t *Y = &XY[32 * r];\n    uint32_t *Z = &XY[64 * r];\n    uint64_t  i;\n    uint64_t  j;\n    size_t    k;\n\n    /* 1: X <-- B */\n    for (k = 0; k < 32 * r; k++) {\n        X[k] = LOAD32_LE(&B[4 * k]);\n    }\n    /* 2: for i = 0 to N - 1 do */\n    for (i = 0; i < N; i += 2) {\n        /* 3: V_i <-- X */\n        blkcpy(&V[i * (32 * r)], X, 2 * r);\n\n        /* 4: X <-- H(X) */\n        blockmix_salsa8(X, Y, Z, r);\n\n        /* 3: V_i <-- X */\n        blkcpy(&V[(i + 1) * (32 * r)], Y, 2 * r);\n\n        /* 4: X <-- H(X) */\n        blockmix_salsa8(Y, X, Z, r);\n    }\n\n    /* 6: for i = 0 to N - 1 do */\n    for (i = 0; i < N; i += 2) {\n        /* 7: j <-- Integerify(X) mod N */\n        j = integerify(X, r) & (N - 1);\n\n        /* 8: X <-- H(X \\xor V_j) */\n        blkxor(X, &V[j * (32 * r)], 2 * r);\n        blockmix_salsa8(X, Y, Z, r);\n\n        /* 7: j <-- Integerify(X) mod N */\n        j = integerify(Y, r) & (N - 1);\n\n        /* 8: X <-- H(X \\xor V_j) */\n        blkxor(Y, &V[j * (32 * r)], 2 * r);\n        blockmix_salsa8(Y, X, Z, r);\n    }\n    /* 10: B' <-- X */\n    for (k = 0; k < 32 * r; k++) {\n        STORE32_LE(&B[4 * k], X[k]);\n    }\n}\n\n/*\n * escrypt_kdf(local, passwd, passwdlen, salt, saltlen,\n *     N, r, p, buf, buflen):\n * Compute scrypt(passwd[0 .. passwdlen - 1], salt[0 .. saltlen - 1], N, r,\n * p, buflen) and write the result into buf.  The parameters r, p, and buflen\n * must satisfy r * p < 2^30 and buflen <= (2^32 - 1) * 32.  The parameter N\n * must be a power of 2 greater than 1.\n *\n * Return 0 on success; or -1 on error.\n */\nint\nescrypt_kdf_nosse(escrypt_local_t *local, const uint8_t *passwd,\n                  size_t passwdlen, const uint8_t *salt, size_t saltlen,\n                  uint64_t N, uint32_t _r, uint32_t _p, uint8_t *buf,\n                  size_t buflen)\n{\n    size_t    B_size, V_size, XY_size, need;\n    uint8_t * B;\n    uint32_t *V, *XY;\n    size_t    r = _r, p = _p;\n    uint32_t  i;\n\n/* Sanity-check parameters. */\n#if SIZE_MAX > UINT32_MAX\n    if (buflen > (((uint64_t)(1) << 32) - 1) * 32) {\n        errno = EFBIG;\n        return -1;\n    }\n#endif\n    if ((uint64_t)(r) * (uint64_t)(p) >= ((uint64_t) 1 << 30)) {\n        errno = EFBIG;\n        return -1;\n    }\n    if (N > UINT32_MAX) {\n        errno = EFBIG;\n        return -1;\n    }\n    if (((N & (N - 1)) != 0) || (N < 2)) {\n        errno = EINVAL;\n        return -1;\n    }\n    if (r == 0 || p == 0) {\n        errno = EINVAL;\n        return -1;\n    }\n    if ((r > SIZE_MAX / 128 / p) ||\n#if SIZE_MAX / 256 <= UINT32_MAX\n        (r > SIZE_MAX / 256) ||\n#endif\n        (N > SIZE_MAX / 128 / r)) {\n        errno = ENOMEM;\n        return -1;\n    }\n\n    /* Allocate memory. */\n    B_size = (size_t) 128 * r * p;\n    V_size = (size_t) 128 * r * (size_t) N;\n    need   = B_size + V_size;\n    if (need < V_size) {\n        errno = ENOMEM;\n        return -1;\n    }\n    XY_size = (size_t) 256 * r + 64;\n    need += XY_size;\n    if (need < XY_size) {\n        errno = ENOMEM;\n        return -1;\n    }\n    if (local->size < need) {\n        if (escrypt_free_region(local)) {\n            return -1;\n        }\n        if (!escrypt_alloc_region(local, need)) {\n            return -1;\n        }\n    }\n    B  = (uint8_t *) local->aligned;\n    V  = (uint32_t *) ((uint8_t *) B + B_size);\n    XY = (uint32_t *) ((uint8_t *) V + V_size);\n\n    /* 1: (B_0 ... B_{p-1}) <-- PBKDF2(P, S, 1, p * MFLen) */\n    escrypt_PBKDF2_SHA256(passwd, passwdlen, salt, saltlen, 1, B, B_size);\n\n    /* 2: for i = 0 to p - 1 do */\n    for (i = 0; i < p; i++) {\n        /* 3: B_i <-- MF(B_i, N) */\n        smix(&B[(size_t) 128 * i * r], r, N, V, XY);\n    }\n\n    /* 5: DK <-- PBKDF2(P, B, 1, dkLen) */\n    escrypt_PBKDF2_SHA256(passwd, passwdlen, B, B_size, 1, buf, buflen);\n\n    /* Success! */\n    return 0;\n}\n"
  },
  {
    "path": "src/libsodium/crypto_pwhash/scryptsalsa208sha256/pbkdf2-sha256.c",
    "content": "/*-\n * Copyright 2005,2007,2009 Colin Percival\n * All rights reserved.\n *\n * Redistribution and use in source and binary forms, with or without\n * modification, are permitted provided that the following conditions\n * are met:\n * 1. Redistributions of source code must retain the above copyright\n *    notice, this list of conditions and the following disclaimer.\n * 2. Redistributions in binary form must reproduce the above copyright\n *    notice, this list of conditions and the following disclaimer in the\n *    documentation and/or other materials provided with the distribution.\n *\n * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND\n * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\n * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE\n * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE\n * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL\n * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS\n * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)\n * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT\n * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY\n * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF\n * SUCH DAMAGE.\n */\n\n#include <limits.h>\n#include <stdint.h>\n#include <stdlib.h>\n#include <string.h>\n\n#include <sys/types.h>\n\n#include \"core.h\"\n#include \"crypto_auth_hmacsha256.h\"\n#include \"crypto_pwhash_scryptsalsa208sha256.h\"\n#include \"pbkdf2-sha256.h\"\n#include \"private/common.h\"\n#include \"utils.h\"\n\n/**\n * escrypt_PBKDF2_SHA256(passwd, passwdlen, salt, saltlen, c, buf, dkLen):\n * Compute PBKDF2(passwd, salt, c, dkLen) using HMAC-SHA256 as the PRF, and\n * write the output to buf.  The value dkLen must be at most 32 * (2^32 - 1).\n */\nvoid\nescrypt_PBKDF2_SHA256(const uint8_t *passwd, size_t passwdlen,\n                      const uint8_t *salt, size_t saltlen, uint64_t c,\n                      uint8_t *buf, size_t dkLen)\n{\n    crypto_auth_hmacsha256_state PShctx, hctx;\n    size_t                       i;\n    uint8_t                      ivec[4];\n    uint8_t                      U[32];\n    uint8_t                      T[32];\n    uint64_t                     j;\n    int                          k;\n    size_t                       clen;\n\n#if SIZE_MAX > 0x1fffffffe0ULL\n    COMPILER_ASSERT(crypto_pwhash_scryptsalsa208sha256_BYTES_MAX\n                    <= 0x1fffffffe0ULL);\n    if (dkLen > 0x1fffffffe0ULL) {\n        sodium_misuse(); /* LCOV_EXCL_LINE */\n    }\n#endif\n    crypto_auth_hmacsha256_init(&PShctx, passwd, passwdlen);\n    crypto_auth_hmacsha256_update(&PShctx, salt, saltlen);\n\n    for (i = 0; i * 32 < dkLen; i++) {\n        STORE32_BE(ivec, (uint32_t)(i + 1));\n        memcpy(&hctx, &PShctx, sizeof(crypto_auth_hmacsha256_state));\n        crypto_auth_hmacsha256_update(&hctx, ivec, 4);\n        crypto_auth_hmacsha256_final(&hctx, U);\n\n        memcpy(T, U, 32);\n        /* LCOV_EXCL_START */\n        for (j = 2; j <= c; j++) {\n            crypto_auth_hmacsha256_init(&hctx, passwd, passwdlen);\n            crypto_auth_hmacsha256_update(&hctx, U, 32);\n            crypto_auth_hmacsha256_final(&hctx, U);\n\n            for (k = 0; k < 32; k++) {\n                T[k] ^= U[k];\n            }\n        }\n        /* LCOV_EXCL_STOP */\n\n        clen = dkLen - i * 32;\n        if (clen > 32) {\n            clen = 32;\n        }\n        memcpy(&buf[i * 32], T, clen);\n    }\n    sodium_memzero((void *) &PShctx, sizeof PShctx);\n}\n"
  },
  {
    "path": "src/libsodium/crypto_pwhash/scryptsalsa208sha256/pbkdf2-sha256.h",
    "content": "/*-\n * Copyright 2005,2007,2009 Colin Percival\n * All rights reserved.\n *\n * Redistribution and use in source and binary forms, with or without\n * modification, are permitted provided that the following conditions\n * are met:\n * 1. Redistributions of source code must retain the above copyright\n *    notice, this list of conditions and the following disclaimer.\n * 2. Redistributions in binary form must reproduce the above copyright\n *    notice, this list of conditions and the following disclaimer in the\n *    documentation and/or other materials provided with the distribution.\n *\n * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND\n * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\n * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE\n * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE\n * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL\n * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS\n * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)\n * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT\n * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY\n * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF\n * SUCH DAMAGE.\n *\n */\n\n#ifndef pbkdf2_sha256_H\n#define pbkdf2_sha256_H\n\n#include <stdint.h>\n\n#include <sys/types.h>\n\n#include \"crypto_auth_hmacsha256.h\"\n#include \"private/quirks.h\"\n\n/**\n * escrypt_PBKDF2_SHA256(passwd, passwdlen, salt, saltlen, c, buf, dkLen):\n * Compute PBKDF2(passwd, salt, c, dkLen) using HMAC-SHA256 as the PRF, and\n * write the output to buf.  The value dkLen must be at most 32 * (2^32 - 1).\n */\nvoid escrypt_PBKDF2_SHA256(const uint8_t *, size_t, const uint8_t *, size_t,\n                           uint64_t, uint8_t *, size_t);\n\n#endif /* !_SHA256_H_ */\n"
  },
  {
    "path": "src/libsodium/crypto_pwhash/scryptsalsa208sha256/pwhash_scryptsalsa208sha256.c",
    "content": "\n#include <errno.h>\n#include <limits.h>\n#include <stddef.h>\n#include <stdint.h>\n#include <string.h>\n\n#include \"crypto_pwhash_scryptsalsa208sha256.h\"\n#include \"crypto_scrypt.h\"\n#include \"private/common.h\"\n#include \"randombytes.h\"\n#include \"utils.h\"\n\n#define SETTING_SIZE(saltbytes)                                              \\\n    ((sizeof \"$7$\" - 1U) + (1U /* N_log2 */) + (5U /* r */) + (5U /* p */) + \\\n     BYTES2CHARS(saltbytes))\n\nstatic int\npickparams(unsigned long long opslimit, const size_t memlimit,\n           uint32_t *const N_log2, uint32_t *const p, uint32_t *const r)\n{\n    unsigned long long maxN;\n    unsigned long long maxrp;\n\n    if (opslimit < 32768) {\n        opslimit = 32768;\n    }\n    *r = 8;\n    if (opslimit < memlimit / 32) {\n        *p = 1;\n        maxN = opslimit / (*r * 4);\n        for (*N_log2 = 1; *N_log2 < 63; *N_log2 += 1) {\n            if ((uint64_t)(1) << *N_log2 > maxN / 2) {\n                break;\n            }\n        }\n    } else {\n        maxN = memlimit / ((size_t) *r * 128);\n        for (*N_log2 = 1; *N_log2 < 63; *N_log2 += 1) {\n            if ((uint64_t)(1) << *N_log2 > maxN / 2) {\n                break;\n            }\n        }\n        maxrp = (opslimit / 4) / ((uint64_t)(1) << *N_log2);\n        /* LCOV_EXCL_START */\n        if (maxrp > 0x3fffffff) {\n            maxrp = 0x3fffffff;\n        }\n        /* LCOV_EXCL_STOP */\n        *p = (uint32_t)(maxrp) / *r;\n    }\n    return 0;\n}\n\nstatic size_t\nsodium_strnlen(const char *str, size_t maxlen)\n{\n    size_t i = 0U;\n\n    ACQUIRE_FENCE;\n    while (i < maxlen && str[i] != 0) {\n        i++;\n    }\n    return i;\n}\n\nsize_t\ncrypto_pwhash_scryptsalsa208sha256_bytes_min(void)\n{\n    return crypto_pwhash_scryptsalsa208sha256_BYTES_MIN;\n}\n\nsize_t\ncrypto_pwhash_scryptsalsa208sha256_bytes_max(void)\n{\n    return crypto_pwhash_scryptsalsa208sha256_BYTES_MAX;\n}\n\nsize_t\ncrypto_pwhash_scryptsalsa208sha256_passwd_min(void)\n{\n    return crypto_pwhash_scryptsalsa208sha256_PASSWD_MIN;\n}\n\nsize_t\ncrypto_pwhash_scryptsalsa208sha256_passwd_max(void)\n{\n    return crypto_pwhash_scryptsalsa208sha256_PASSWD_MAX;\n}\n\nsize_t\ncrypto_pwhash_scryptsalsa208sha256_saltbytes(void)\n{\n    return crypto_pwhash_scryptsalsa208sha256_SALTBYTES;\n}\n\nsize_t\ncrypto_pwhash_scryptsalsa208sha256_strbytes(void)\n{\n    return crypto_pwhash_scryptsalsa208sha256_STRBYTES;\n}\n\nconst char *\ncrypto_pwhash_scryptsalsa208sha256_strprefix(void)\n{\n    return crypto_pwhash_scryptsalsa208sha256_STRPREFIX;\n}\n\nunsigned long long\ncrypto_pwhash_scryptsalsa208sha256_opslimit_min(void)\n{\n    return crypto_pwhash_scryptsalsa208sha256_OPSLIMIT_MIN;\n}\n\nunsigned long long\ncrypto_pwhash_scryptsalsa208sha256_opslimit_max(void)\n{\n    return crypto_pwhash_scryptsalsa208sha256_OPSLIMIT_MAX;\n}\n\nsize_t\ncrypto_pwhash_scryptsalsa208sha256_memlimit_min(void)\n{\n    return crypto_pwhash_scryptsalsa208sha256_MEMLIMIT_MIN;\n}\n\nsize_t\ncrypto_pwhash_scryptsalsa208sha256_memlimit_max(void)\n{\n    return crypto_pwhash_scryptsalsa208sha256_MEMLIMIT_MAX;\n}\n\nunsigned long long\ncrypto_pwhash_scryptsalsa208sha256_opslimit_interactive(void)\n{\n    return crypto_pwhash_scryptsalsa208sha256_OPSLIMIT_INTERACTIVE;\n}\n\nsize_t\ncrypto_pwhash_scryptsalsa208sha256_memlimit_interactive(void)\n{\n    return crypto_pwhash_scryptsalsa208sha256_MEMLIMIT_INTERACTIVE;\n}\n\nunsigned long long\ncrypto_pwhash_scryptsalsa208sha256_opslimit_sensitive(void)\n{\n    return crypto_pwhash_scryptsalsa208sha256_OPSLIMIT_SENSITIVE;\n}\n\nsize_t\ncrypto_pwhash_scryptsalsa208sha256_memlimit_sensitive(void)\n{\n    return crypto_pwhash_scryptsalsa208sha256_MEMLIMIT_SENSITIVE;\n}\n\nint\ncrypto_pwhash_scryptsalsa208sha256(unsigned char *const       out,\n                                   unsigned long long         outlen,\n                                   const char *const          passwd,\n                                   unsigned long long         passwdlen,\n                                   const unsigned char *const salt,\n                                   unsigned long long opslimit, size_t memlimit)\n{\n    uint32_t N_log2;\n    uint32_t p;\n    uint32_t r;\n\n    memset(out, 0, outlen);\n    if (passwdlen > crypto_pwhash_scryptsalsa208sha256_PASSWD_MAX ||\n        outlen > crypto_pwhash_scryptsalsa208sha256_BYTES_MAX) {\n        errno = EFBIG; /* LCOV_EXCL_LINE */\n        return -1;     /* LCOV_EXCL_LINE */\n    }\n    if (outlen < crypto_pwhash_scryptsalsa208sha256_BYTES_MIN ||\n        pickparams(opslimit, memlimit, &N_log2, &p, &r) != 0) {\n        errno = EINVAL; /* LCOV_EXCL_LINE */\n        return -1;      /* LCOV_EXCL_LINE */\n    }\n    if ((const void *) out == (const void *) passwd) {\n        errno = EINVAL; /* LCOV_EXCL_LINE */\n        return -1;      /* LCOV_EXCL_LINE */\n    }\n    return crypto_pwhash_scryptsalsa208sha256_ll(\n        (const uint8_t *) passwd, (size_t) passwdlen, (const uint8_t *) salt,\n        crypto_pwhash_scryptsalsa208sha256_SALTBYTES, (uint64_t)(1) << N_log2,\n        r, p, out, (size_t) outlen);\n}\n\nint\ncrypto_pwhash_scryptsalsa208sha256_str(\n    char              out[crypto_pwhash_scryptsalsa208sha256_STRBYTES],\n    const char *const passwd, unsigned long long passwdlen,\n    unsigned long long opslimit, size_t memlimit)\n{\n    uint8_t salt[crypto_pwhash_scryptsalsa208sha256_STRSALTBYTES];\n    char    setting[crypto_pwhash_scryptsalsa208sha256_STRSETTINGBYTES + 1U];\n    escrypt_local_t escrypt_local;\n    uint32_t        N_log2;\n    uint32_t        p;\n    uint32_t        r;\n\n    memset(out, 0, crypto_pwhash_scryptsalsa208sha256_STRBYTES);\n    if (passwdlen > crypto_pwhash_scryptsalsa208sha256_PASSWD_MAX) {\n        errno = EFBIG; /* LCOV_EXCL_LINE */\n        return -1;     /* LCOV_EXCL_LINE */\n    }\n    if (passwdlen < crypto_pwhash_scryptsalsa208sha256_PASSWD_MIN ||\n        pickparams(opslimit, memlimit, &N_log2, &p, &r) != 0) {\n        errno = EINVAL; /* LCOV_EXCL_LINE */\n        return -1;      /* LCOV_EXCL_LINE */\n    }\n    randombytes_buf(salt, sizeof salt);\n    if (escrypt_gensalt_r(N_log2, r, p, salt, sizeof salt, (uint8_t *) setting,\n                          sizeof setting) == NULL) {\n        errno = EINVAL; /* LCOV_EXCL_LINE */\n        return -1;      /* LCOV_EXCL_LINE */\n    }\n    if (escrypt_init_local(&escrypt_local) != 0) {\n        return -1; /* LCOV_EXCL_LINE */\n    }\n    if (escrypt_r(&escrypt_local, (const uint8_t *) passwd, (size_t) passwdlen,\n                  (const uint8_t *) setting, (uint8_t *) out,\n                  crypto_pwhash_scryptsalsa208sha256_STRBYTES) == NULL) {\n        /* LCOV_EXCL_START */\n        escrypt_free_local(&escrypt_local);\n        errno = EINVAL;\n        return -1;\n        /* LCOV_EXCL_STOP */\n    }\n    escrypt_free_local(&escrypt_local);\n\n    COMPILER_ASSERT(\n        SETTING_SIZE(crypto_pwhash_scryptsalsa208sha256_STRSALTBYTES) ==\n        crypto_pwhash_scryptsalsa208sha256_STRSETTINGBYTES);\n    COMPILER_ASSERT(\n        crypto_pwhash_scryptsalsa208sha256_STRSETTINGBYTES + 1U +\n            crypto_pwhash_scryptsalsa208sha256_STRHASHBYTES_ENCODED + 1U ==\n        crypto_pwhash_scryptsalsa208sha256_STRBYTES);\n\n    return 0;\n}\n\nint\ncrypto_pwhash_scryptsalsa208sha256_str_verify(\n    const char        *str,\n    const char *const passwd, unsigned long long passwdlen)\n{\n    char            wanted[crypto_pwhash_scryptsalsa208sha256_STRBYTES];\n    escrypt_local_t escrypt_local;\n    int             ret = -1;\n\n    if (sodium_strnlen(str, crypto_pwhash_scryptsalsa208sha256_STRBYTES) !=\n        crypto_pwhash_scryptsalsa208sha256_STRBYTES - 1U) {\n        return -1;\n    }\n    if (escrypt_init_local(&escrypt_local) != 0) {\n        return -1; /* LCOV_EXCL_LINE */\n    }\n    memset(wanted, 0, sizeof wanted);\n    if (escrypt_r(&escrypt_local, (const uint8_t *) passwd, (size_t) passwdlen,\n                  (const uint8_t *) str, (uint8_t *) wanted,\n                  sizeof wanted) == NULL) {\n        escrypt_free_local(&escrypt_local);\n        return -1;\n    }\n    escrypt_free_local(&escrypt_local);\n    ret = sodium_memcmp(wanted, str, sizeof wanted);\n    sodium_memzero(wanted, sizeof wanted);\n\n    return ret;\n}\n\nint\ncrypto_pwhash_scryptsalsa208sha256_str_needs_rehash(\n    const char * str,\n    unsigned long long opslimit, size_t memlimit)\n{\n    uint32_t N_log2, N_log2_;\n    uint32_t p, p_;\n    uint32_t r, r_;\n\n    if (pickparams(opslimit, memlimit, &N_log2, &p, &r) != 0) {\n        errno = EINVAL; /* LCOV_EXCL_LINE */\n        return -1;      /* LCOV_EXCL_LINE */\n    }\n    if (sodium_strnlen(str, crypto_pwhash_scryptsalsa208sha256_STRBYTES) !=\n        crypto_pwhash_scryptsalsa208sha256_STRBYTES - 1U) {\n        errno = EINVAL;\n        return -1;\n    }\n    if (escrypt_parse_setting((const uint8_t *) str,\n                              &N_log2_, &r_, &p_) == NULL) {\n        errno = EINVAL; /* LCOV_EXCL_LINE */\n        return -1;      /* LCOV_EXCL_LINE */\n    }\n    if (N_log2 != N_log2_ || r != r_ || p != p_) {\n        return 1;\n    }\n    return 0;\n}\n"
  },
  {
    "path": "src/libsodium/crypto_pwhash/scryptsalsa208sha256/scrypt_platform.c",
    "content": "/*-\n * Copyright 2013 Alexander Peslyak\n * All rights reserved.\n *\n * Redistribution and use in source and binary forms, with or without\n * modification, are permitted.\n *\n * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND\n * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\n * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE\n * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE\n * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL\n * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS\n * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)\n * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT\n * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY\n * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF\n * SUCH DAMAGE.\n */\n\n#ifdef HAVE_SYS_MMAN_H\n#include <sys/mman.h>\n#endif\n#include <errno.h>\n#include <stdlib.h>\n\n#include \"crypto_scrypt.h\"\n#include \"runtime.h\"\n\n#if !defined(MAP_ANON) && defined(MAP_ANONYMOUS)\n# define MAP_ANON MAP_ANONYMOUS\n#endif\n#ifndef MAP_NOCORE\n# ifdef MAP_CONCEAL\n#  define MAP_NOCORE MAP_CONCEAL\n# else\n#  define MAP_NOCORE 0\n# endif\n#endif\n#ifndef MAP_POPULATE\n# define MAP_POPULATE 0\n#endif\n\nvoid *\nescrypt_alloc_region(escrypt_region_t *region, size_t size)\n{\n    uint8_t *base, *aligned;\n#if defined(MAP_ANON) && defined(HAVE_MMAP)\n    if ((base = (uint8_t *) mmap(NULL, size, PROT_READ | PROT_WRITE,\n                                 MAP_ANON | MAP_PRIVATE | MAP_NOCORE | MAP_POPULATE,\n                                 -1, 0)) == MAP_FAILED) {\n        base = NULL; /* LCOV_EXCL_LINE */\n    }                /* LCOV_EXCL_LINE */\n    aligned  = base;\n#elif defined(HAVE_POSIX_MEMALIGN)\n    if ((errno = posix_memalign((void **) &base, 64, size)) != 0) {\n        base = NULL;\n    }\n    aligned = base;\n#else\n    base = aligned = NULL;\n    if (size + 63 < size) {\n        errno = ENOMEM;\n    } else if ((base = (uint8_t *) malloc(size + 63)) != NULL) {\n        aligned = base + 63;\n        aligned -= (uintptr_t) aligned & 63;\n    }\n#endif\n    region->base    = base;\n    region->aligned = aligned;\n    region->size    = base ? size : 0;\n\n    return aligned;\n}\n\nstatic inline void\ninit_region(escrypt_region_t *region)\n{\n    region->base = region->aligned = NULL;\n    region->size                   = 0;\n}\n\nint\nescrypt_free_region(escrypt_region_t *region)\n{\n    if (region->base) {\n#if defined(MAP_ANON) && defined(HAVE_MMAP)\n        if (munmap(region->base, region->size)) {\n            return -1; /* LCOV_EXCL_LINE */\n        }\n#else\n        free(region->base);\n#endif\n    }\n    init_region(region);\n\n    return 0;\n}\n\nint\nescrypt_init_local(escrypt_local_t *local)\n{\n    init_region(local);\n\n    return 0;\n}\n\nint\nescrypt_free_local(escrypt_local_t *local)\n{\n    return escrypt_free_region(local);\n}\n"
  },
  {
    "path": "src/libsodium/crypto_pwhash/scryptsalsa208sha256/sse/pwhash_scryptsalsa208sha256_sse.c",
    "content": "/*-\n * Copyright 2009 Colin Percival\n * Copyright 2012,2013 Alexander Peslyak\n * All rights reserved.\n *\n * Redistribution and use in source and binary forms, with or without\n * modification, are permitted provided that the following conditions\n * are met:\n * 1. Redistributions of source code must retain the above copyright\n *    notice, this list of conditions and the following disclaimer.\n * 2. Redistributions in binary form must reproduce the above copyright\n *    notice, this list of conditions and the following disclaimer in the\n *    documentation and/or other materials provided with the distribution.\n *\n * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND\n * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\n * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE\n * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE\n * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL\n * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS\n * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)\n * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT\n * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY\n * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF\n * SUCH DAMAGE.\n *\n * This file was originally written by Colin Percival as part of the Tarsnap\n * online backup system.\n */\n\n#include <errno.h>\n#include <limits.h>\n#include <stdint.h>\n#include <stdlib.h>\n#include <string.h>\n\n#include \"private/common.h\"\n\n#ifdef HAVE_EMMINTRIN_H\n\n# ifdef __clang__\n#  pragma clang attribute push(__attribute__((target(\"sse2\"))), apply_to = function)\n# elif defined(__GNUC__)\n#  pragma GCC target(\"sse2\")\n# endif\n\n# include <emmintrin.h>\n\n# include \"private/sse2_64_32.h\"\n\n# include \"../crypto_scrypt.h\"\n# include \"../pbkdf2-sha256.h\"\n\n# define ARX(out, in1, in2, s)                                     \\\n    {                                                              \\\n        __m128i T = _mm_add_epi32(in1, in2);                       \\\n        out       = _mm_xor_si128(out, _mm_slli_epi32(T, s));      \\\n        out       = _mm_xor_si128(out, _mm_srli_epi32(T, 32 - s)); \\\n    }\n\n# define SALSA20_2ROUNDS              \\\n    /* Operate on \"columns\". */       \\\n    ARX(X1, X0, X3, 7)                \\\n    ARX(X2, X1, X0, 9)                \\\n    ARX(X3, X2, X1, 13)               \\\n    ARX(X0, X3, X2, 18)               \\\n                                      \\\n    /* Rearrange data. */             \\\n    X1 = _mm_shuffle_epi32(X1, 0x93); \\\n    X2 = _mm_shuffle_epi32(X2, 0x4E); \\\n    X3 = _mm_shuffle_epi32(X3, 0x39); \\\n                                      \\\n    /* Operate on \"rows\". */          \\\n    ARX(X3, X0, X1, 7)                \\\n    ARX(X2, X3, X0, 9)                \\\n    ARX(X1, X2, X3, 13)               \\\n    ARX(X0, X1, X2, 18)               \\\n                                      \\\n    /* Rearrange data. */             \\\n    X1 = _mm_shuffle_epi32(X1, 0x39); \\\n    X2 = _mm_shuffle_epi32(X2, 0x4E); \\\n    X3 = _mm_shuffle_epi32(X3, 0x93);\n\n/*\n * Apply the salsa20/8 core to the block provided in (X0 ... X3) ^ (Z0 ... Z3).\n */\n# define SALSA20_8_XOR(in, out)                               \\\n    {                                                         \\\n        __m128i Y0 = X0 = _mm_xor_si128(X0, (in)[0]);         \\\n        __m128i Y1 = X1 = _mm_xor_si128(X1, (in)[1]);         \\\n        __m128i Y2 = X2 = _mm_xor_si128(X2, (in)[2]);         \\\n        __m128i Y3 = X3 = _mm_xor_si128(X3, (in)[3]);         \\\n        SALSA20_2ROUNDS                                       \\\n        SALSA20_2ROUNDS                                       \\\n        SALSA20_2ROUNDS                                       \\\n        SALSA20_2ROUNDS(out)[0] = X0 = _mm_add_epi32(X0, Y0); \\\n        (out)[1] = X1 = _mm_add_epi32(X1, Y1);                \\\n        (out)[2] = X2 = _mm_add_epi32(X2, Y2);                \\\n        (out)[3] = X3 = _mm_add_epi32(X3, Y3);                \\\n    }\n\n/*\n * blockmix_salsa8(Bin, Bout, r):\n * Compute Bout = BlockMix_{salsa20/8, r}(Bin).\n * The input Bin must be 128r bytes in length;\n * the output Bout must also be the same size.\n */\nstatic inline void\nblockmix_salsa8(const __m128i *Bin, __m128i *Bout, size_t r)\n{\n    __m128i X0, X1, X2, X3;\n    size_t  i;\n\n    /* 1: X <-- B_{2r - 1} */\n    X0 = Bin[8 * r - 4];\n    X1 = Bin[8 * r - 3];\n    X2 = Bin[8 * r - 2];\n    X3 = Bin[8 * r - 1];\n\n    /* 3: X <-- H(X \\xor B_i) */\n    /* 4: Y_i <-- X */\n    /* 6: B' <-- (Y_0, Y_2 ... Y_{2r-2}, Y_1, Y_3 ... Y_{2r-1}) */\n    SALSA20_8_XOR(Bin, Bout)\n\n    /* 2: for i = 0 to 2r - 1 do */\n    r--;\n    for (i = 0; i < r;) {\n        /* 3: X <-- H(X \\xor B_i) */\n        /* 4: Y_i <-- X */\n        /* 6: B' <-- (Y_0, Y_2 ... Y_{2r-2}, Y_1, Y_3 ... Y_{2r-1}) */\n        SALSA20_8_XOR(&Bin[i * 8 + 4], &Bout[(r + i) * 4 + 4])\n\n        i++;\n\n        /* 3: X <-- H(X \\xor B_i) */\n        /* 4: Y_i <-- X */\n        /* 6: B' <-- (Y_0, Y_2 ... Y_{2r-2}, Y_1, Y_3 ... Y_{2r-1}) */\n        SALSA20_8_XOR(&Bin[i * 8], &Bout[i * 4])\n    }\n\n    /* 3: X <-- H(X \\xor B_i) */\n    /* 4: Y_i <-- X */\n    /* 6: B' <-- (Y_0, Y_2 ... Y_{2r-2}, Y_1, Y_3 ... Y_{2r-1}) */\n    SALSA20_8_XOR(&Bin[i * 8 + 4], &Bout[(r + i) * 4 + 4])\n}\n\n# define XOR4(in)                    \\\n    X0 = _mm_xor_si128(X0, (in)[0]); \\\n    X1 = _mm_xor_si128(X1, (in)[1]); \\\n    X2 = _mm_xor_si128(X2, (in)[2]); \\\n    X3 = _mm_xor_si128(X3, (in)[3]);\n\n# define XOR4_2(in1, in2)                   \\\n    X0 = _mm_xor_si128((in1)[0], (in2)[0]); \\\n    X1 = _mm_xor_si128((in1)[1], (in2)[1]); \\\n    X2 = _mm_xor_si128((in1)[2], (in2)[2]); \\\n    X3 = _mm_xor_si128((in1)[3], (in2)[3]);\n\nstatic inline uint32_t\nblockmix_salsa8_xor(const __m128i *Bin1, const __m128i *Bin2, __m128i *Bout,\n                    size_t r)\n{\n    __m128i X0, X1, X2, X3;\n    size_t  i;\n\n    /* 1: X <-- B_{2r - 1} */\n    XOR4_2(&Bin1[8 * r - 4], &Bin2[8 * r - 4])\n\n    /* 3: X <-- H(X \\xor B_i) */\n    /* 4: Y_i <-- X */\n    /* 6: B' <-- (Y_0, Y_2 ... Y_{2r-2}, Y_1, Y_3 ... Y_{2r-1}) */\n    XOR4(Bin1)\n    SALSA20_8_XOR(Bin2, Bout)\n\n    /* 2: for i = 0 to 2r - 1 do */\n    r--;\n    for (i = 0; i < r;) {\n        /* 3: X <-- H(X \\xor B_i) */\n        /* 4: Y_i <-- X */\n        /* 6: B' <-- (Y_0, Y_2 ... Y_{2r-2}, Y_1, Y_3 ... Y_{2r-1}) */\n        XOR4(&Bin1[i * 8 + 4])\n        SALSA20_8_XOR(&Bin2[i * 8 + 4], &Bout[(r + i) * 4 + 4])\n\n        i++;\n\n        /* 3: X <-- H(X \\xor B_i) */\n        /* 4: Y_i <-- X */\n        /* 6: B' <-- (Y_0, Y_2 ... Y_{2r-2}, Y_1, Y_3 ... Y_{2r-1}) */\n        XOR4(&Bin1[i * 8])\n        SALSA20_8_XOR(&Bin2[i * 8], &Bout[i * 4])\n    }\n\n    /* 3: X <-- H(X \\xor B_i) */\n    /* 4: Y_i <-- X */\n    /* 6: B' <-- (Y_0, Y_2 ... Y_{2r-2}, Y_1, Y_3 ... Y_{2r-1}) */\n    XOR4(&Bin1[i * 8 + 4])\n    SALSA20_8_XOR(&Bin2[i * 8 + 4], &Bout[(r + i) * 4 + 4])\n\n    return _mm_cvtsi128_si32(X0);\n}\n\n# undef ARX\n# undef SALSA20_2ROUNDS\n# undef SALSA20_8_XOR\n# undef XOR4\n# undef XOR4_2\n\n/*\n * integerify(B, r):\n * Return the result of parsing B_{2r-1} as a little-endian integer.\n * Note that B's layout is permuted compared to the generic implementation.\n */\nstatic inline uint64_t\nintegerify(const __m128i *B, size_t r)\n{\n    const __m128i * X  = B + (2*r - 1) * 4;\n    const uint32_t X0  = (uint32_t) _mm_cvtsi128_si32(X[0]);\n    const uint32_t X13 = (uint32_t) _mm_cvtsi128_si32(_mm_srli_si128(X[3], 4));\n\n    return (((uint64_t)(X13) << 32) + X0);\n}\n\n/*\n * smix(B, r, N, V, XY):\n * Compute B = SMix_r(B, N).  The input B must be 128r bytes in length;\n * the temporary storage V must be 128rN bytes in length; the temporary\n * storage XY must be 256r + 64 bytes in length.  The value N must be a\n * power of 2 greater than 1.  The arrays B, V, and XY must be aligned to a\n * multiple of 64 bytes.\n */\nstatic void\nsmix(uint8_t *B, size_t r, uint64_t N, void *V, void *XY)\n{\n    size_t    s   = 128 * r;\n    __m128i  *X   = (__m128i *) V, *Y;\n    uint32_t *X32 = (uint32_t *) V;\n    uint64_t  i, j;\n    size_t    k;\n\n    /* 1: X <-- B */\n    /* 3: V_i <-- X */\n    for (k = 0; k < 2 * r; k++) {\n        for (i = 0; i < 16; i++) {\n            X32[k * 16 + i] = LOAD32_LE(&B[(k * 16 + (i * 5 % 16)) * 4]);\n        }\n    }\n\n    /* 2: for i = 0 to N - 1 do */\n    for (i = 1; i < N - 1; i += 2) {\n        /* 4: X <-- H(X) */\n        /* 3: V_i <-- X */\n        Y = (__m128i *) ((uintptr_t)(V) + i * s);\n        blockmix_salsa8(X, Y, r);\n\n        /* 4: X <-- H(X) */\n        /* 3: V_i <-- X */\n        X = (__m128i *) ((uintptr_t)(V) + (i + 1) * s);\n        blockmix_salsa8(Y, X, r);\n    }\n\n    /* 4: X <-- H(X) */\n    /* 3: V_i <-- X */\n    Y = (__m128i *) ((uintptr_t)(V) + i * s);\n    blockmix_salsa8(X, Y, r);\n\n    /* 4: X <-- H(X) */\n    /* 3: V_i <-- X */\n    X = (__m128i *) XY;\n    blockmix_salsa8(Y, X, r);\n\n    X32 = (uint32_t *) XY;\n    Y   = (__m128i *) ((uintptr_t)(XY) + s);\n\n    /* 7: j <-- Integerify(X) mod N */\n    j = integerify(X, r) & (N - 1);\n\n    /* 6: for i = 0 to N - 1 do */\n    for (i = 0; i < N; i += 2) {\n        __m128i *V_j = (__m128i *) ((uintptr_t)(V) + j * s);\n\n        /* 8: X <-- H(X \\xor V_j) */\n        /* 7: j <-- Integerify(X) mod N */\n        j   = blockmix_salsa8_xor(X, V_j, Y, r) & (N - 1);\n        V_j = (__m128i *) ((uintptr_t)(V) + j * s);\n\n        /* 8: X <-- H(X \\xor V_j) */\n        /* 7: j <-- Integerify(X) mod N */\n        j = blockmix_salsa8_xor(Y, V_j, X, r) & (N - 1);\n    }\n\n    /* 10: B' <-- X */\n    for (k = 0; k < 2 * r; k++) {\n        for (i = 0; i < 16; i++) {\n            STORE32_LE(&B[(k * 16 + (i * 5 % 16)) * 4], X32[k * 16 + i]);\n        }\n    }\n}\n\n/*\n * escrypt_kdf(local, passwd, passwdlen, salt, saltlen,\n *     N, r, p, buf, buflen):\n * Compute scrypt(passwd[0 .. passwdlen - 1], salt[0 .. saltlen - 1], N, r,\n * p, buflen) and write the result into buf.  The parameters r, p, and buflen\n * must satisfy r * p < 2^30 and buflen <= (2^32 - 1) * 32.  The parameter N\n * must be a power of 2 greater than 1.\n *\n * Return 0 on success; or -1 on error.\n */\nint\nescrypt_kdf_sse(escrypt_local_t *local, const uint8_t *passwd, size_t passwdlen,\n                const uint8_t *salt, size_t saltlen, uint64_t N, uint32_t _r,\n                uint32_t _p, uint8_t *buf, size_t buflen)\n{\n    size_t    B_size, V_size, XY_size, need;\n    uint8_t * B;\n    uint32_t *V, *XY;\n    size_t    r = _r, p = _p;\n    uint32_t  i;\n\n/* Sanity-check parameters. */\n# if SIZE_MAX > UINT32_MAX\n/* LCOV_EXCL_START */\n    if (buflen > (((uint64_t)(1) << 32) - 1) * 32) {\n        errno = EFBIG;\n        return -1;\n    }\n/* LCOV_EXCL_END */\n# endif\n    if ((uint64_t)(r) * (uint64_t)(p) >= ((uint64_t) 1 << 30)) {\n        errno = EFBIG;\n        return -1;\n    }\n    if (N > UINT32_MAX) {\n        errno = EFBIG;\n        return -1;\n    }\n    if (((N & (N - 1)) != 0) || (N < 2)) {\n        errno = EINVAL;\n        return -1;\n    }\n    if (r == 0 || p == 0) {\n        errno = EINVAL;\n        return -1;\n    }\n/* LCOV_EXCL_START */\n    if ((r > SIZE_MAX / 128 / p) ||\n# if SIZE_MAX / 256 <= UINT32_MAX\n        (r > SIZE_MAX / 256) ||\n# endif\n        (N > SIZE_MAX / 128 / r)) {\n        errno = ENOMEM;\n        return -1;\n    }\n/* LCOV_EXCL_END */\n\n    /* Allocate memory. */\n    B_size = (size_t) 128 * r * p;\n    V_size = (size_t) 128 * r * N;\n    need   = B_size + V_size;\n/* LCOV_EXCL_START */\n    if (need < V_size) {\n        errno = ENOMEM;\n        return -1;\n    }\n/* LCOV_EXCL_END */\n    XY_size = (size_t) 256 * r + 64;\n    need += XY_size;\n/* LCOV_EXCL_START */\n    if (need < XY_size) {\n        errno = ENOMEM;\n        return -1;\n    }\n/* LCOV_EXCL_END */\n    if (local->size < need) {\n        if (escrypt_free_region(local)) {\n            return -1; /* LCOV_EXCL_LINE */\n        }\n        if (!escrypt_alloc_region(local, need)) {\n            return -1; /* LCOV_EXCL_LINE */\n        }\n    }\n    B  = (uint8_t *) local->aligned;\n    V  = (uint32_t *) ((uint8_t *) B + B_size);\n    XY = (uint32_t *) ((uint8_t *) V + V_size);\n\n    /* 1: (B_0 ... B_{p-1}) <-- PBKDF2(P, S, 1, p * MFLen) */\n    escrypt_PBKDF2_SHA256(passwd, passwdlen, salt, saltlen, 1, B, B_size);\n\n    /* 2: for i = 0 to p - 1 do */\n    for (i = 0; i < p; i++) {\n        /* 3: B_i <-- MF(B_i, N) */\n        smix(&B[(size_t) 128 * i * r], r, N, V, XY);\n    }\n\n    /* 5: DK <-- PBKDF2(P, B, 1, dkLen) */\n    escrypt_PBKDF2_SHA256(passwd, passwdlen, B, B_size, 1, buf, buflen);\n\n    /* Success! */\n    return 0;\n}\n\n# ifdef __clang__\n#  pragma clang attribute pop\n# endif\n\n#endif\n"
  },
  {
    "path": "src/libsodium/crypto_scalarmult/crypto_scalarmult.c",
    "content": "\n#include \"crypto_scalarmult.h\"\n\nconst char *\ncrypto_scalarmult_primitive(void)\n{\n    return crypto_scalarmult_PRIMITIVE;\n}\n\nint\ncrypto_scalarmult_base(unsigned char *q, const unsigned char *n)\n{\n    return crypto_scalarmult_curve25519_base(q, n);\n}\n\nint\ncrypto_scalarmult(unsigned char *q, const unsigned char *n,\n                  const unsigned char *p)\n{\n    return crypto_scalarmult_curve25519(q, n, p);\n}\n\nsize_t\ncrypto_scalarmult_bytes(void)\n{\n    return crypto_scalarmult_BYTES;\n}\n\nsize_t\ncrypto_scalarmult_scalarbytes(void)\n{\n    return crypto_scalarmult_SCALARBYTES;\n}\n"
  },
  {
    "path": "src/libsodium/crypto_scalarmult/curve25519/ref10/x25519_ref10.c",
    "content": "\n#include <stddef.h>\n#include <stdint.h>\n\n#include \"../scalarmult_curve25519.h\"\n#include \"export.h\"\n#include \"private/ed25519_ref10.h\"\n#include \"utils.h\"\n#include \"x25519_ref10.h\"\n\n/*\n * Reject small order points early to mitigate the implications of\n * unexpected optimizations that would affect the ref10 code.\n * See https://eprint.iacr.org/2017/806.pdf for reference.\n */\nstatic int\nhas_small_order(const unsigned char s[32])\n{\n    CRYPTO_ALIGN(16)\n    static const unsigned char blocklist[][32] = {\n        /* 0 (order 4) */\n        { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n          0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n          0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },\n        /* 1 (order 1) */\n        { 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n          0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n          0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },\n        /* 325606250916557431795983626356110631294008115727848805560023387167927233504\n           (order 8) */\n        { 0xe0, 0xeb, 0x7a, 0x7c, 0x3b, 0x41, 0xb8, 0xae, 0x16, 0x56, 0xe3,\n          0xfa, 0xf1, 0x9f, 0xc4, 0x6a, 0xda, 0x09, 0x8d, 0xeb, 0x9c, 0x32,\n          0xb1, 0xfd, 0x86, 0x62, 0x05, 0x16, 0x5f, 0x49, 0xb8, 0x00 },\n        /* 39382357235489614581723060781553021112529911719440698176882885853963445705823\n           (order 8) */\n        { 0x5f, 0x9c, 0x95, 0xbc, 0xa3, 0x50, 0x8c, 0x24, 0xb1, 0xd0, 0xb1,\n          0x55, 0x9c, 0x83, 0xef, 0x5b, 0x04, 0x44, 0x5c, 0xc4, 0x58, 0x1c,\n          0x8e, 0x86, 0xd8, 0x22, 0x4e, 0xdd, 0xd0, 0x9f, 0x11, 0x57 },\n        /* p-1 (order 2) */\n        { 0xec, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,\n          0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,\n          0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f },\n        /* p (=0, order 4) */\n        { 0xed, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,\n          0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,\n          0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f },\n        /* p+1 (=1, order 1) */\n        { 0xee, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,\n          0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,\n          0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f }\n    };\n    unsigned char c[7] = { 0 };\n    unsigned int  k;\n    size_t        i, j;\n\n    COMPILER_ASSERT(7 == sizeof blocklist / sizeof blocklist[0]);\n    for (j = 0; j < 31; j++) {\n        for (i = 0; i < sizeof blocklist / sizeof blocklist[0]; i++) {\n            c[i] |= s[j] ^ blocklist[i][j];\n        }\n    }\n    for (i = 0; i < sizeof blocklist / sizeof blocklist[0]; i++) {\n        c[i] |= (s[j] & 0x7f) ^ blocklist[i][j];\n    }\n    k = 0;\n    for (i = 0; i < sizeof blocklist / sizeof blocklist[0]; i++) {\n        k |= (c[i] - 1);\n    }\n    return (int) ((k >> 8) & 1);\n}\n\nstatic int\ncrypto_scalarmult_curve25519_ref10(unsigned char *q,\n                                   const unsigned char *n,\n                                   const unsigned char *p)\n{\n    unsigned char  t[32];\n    unsigned int   i;\n    fe25519        x1, x2, x3, z2, z3;\n    fe25519        a, b, aa, bb, e, da, cb;\n    int            pos;\n    unsigned int   swap;\n    unsigned int   bit;\n\n    if (has_small_order(p)) {\n        return -1;\n    }\n    for (i = 0; i < 32; i++) {\n        t[i] = n[i];\n    }\n    t[0] &= 248;\n    t[31] &= 127;\n    t[31] |= 64;\n    fe25519_frombytes(x1, p);\n    fe25519_1(x2);\n    fe25519_0(z2);\n    fe25519_copy(x3, x1);\n    fe25519_1(z3);\n\n    swap = 0;\n    for (pos = 254; pos >= 0; --pos) {\n        bit = t[pos / 8] >> (pos & 7);\n        bit &= 1;\n        swap ^= bit;\n        fe25519_cswap(x2, x3, swap);\n        fe25519_cswap(z2, z3, swap);\n        swap = bit;\n        fe25519_add(a, x2, z2);\n        fe25519_sub(b, x2, z2);\n        fe25519_sq(aa, a);\n        fe25519_sq(bb, b);\n        fe25519_mul(x2, aa, bb);\n        fe25519_sub(e, aa, bb);\n        fe25519_sub(da, x3, z3);\n        fe25519_mul(da, da, a);\n        fe25519_add(cb, x3, z3);\n        fe25519_mul(cb, cb, b);\n        fe25519_add(x3, da, cb);\n        fe25519_sq(x3, x3);\n        fe25519_sub(z3, da, cb);\n        fe25519_sq(z3, z3);\n        fe25519_mul(z3, z3, x1);\n        fe25519_mul32(z2, e, 121666);\n        fe25519_add(z2, z2, bb);\n        fe25519_mul(z2, z2, e);\n    }\n    fe25519_cswap(x2, x3, swap);\n    fe25519_cswap(z2, z3, swap);\n\n    fe25519_invert(z2, z2);\n    fe25519_mul(x2, x2, z2);\n    fe25519_tobytes(q, x2);\n\n    sodium_memzero(t, sizeof t);\n\n    return 0;\n}\n\nstatic void\nedwards_to_montgomery(fe25519 montgomeryX, const fe25519 edwardsY, const fe25519 edwardsZ)\n{\n    fe25519 tempX;\n    fe25519 tempZ;\n\n    fe25519_add(tempX, edwardsZ, edwardsY);\n    fe25519_sub(tempZ, edwardsZ, edwardsY);\n    fe25519_invert(tempZ, tempZ);\n    fe25519_mul(montgomeryX, tempX, tempZ);\n}\n\nstatic int\ncrypto_scalarmult_curve25519_ref10_base(unsigned char *q,\n                                        const unsigned char *n)\n{\n    unsigned char *t = q;\n    ge25519_p3     A;\n    fe25519        pk;\n    unsigned int   i;\n\n    for (i = 0; i < 32; i++) {\n        t[i] = n[i];\n    }\n    t[0] &= 248;\n    t[31] &= 127;\n    t[31] |= 64;\n    ge25519_scalarmult_base(&A, t);\n    edwards_to_montgomery(pk, A.Y, A.Z);\n    fe25519_tobytes(q, pk);\n\n    return 0;\n}\n\nstruct crypto_scalarmult_curve25519_implementation\n    crypto_scalarmult_curve25519_ref10_implementation = {\n        SODIUM_C99(.mult =) crypto_scalarmult_curve25519_ref10,\n        SODIUM_C99(.mult_base =) crypto_scalarmult_curve25519_ref10_base\n    };\n"
  },
  {
    "path": "src/libsodium/crypto_scalarmult/curve25519/ref10/x25519_ref10.h",
    "content": "#ifndef x25519_ref10_H\n#define x25519_ref10_H\n\n#include \"crypto_scalarmult_curve25519.h\"\n#include \"../scalarmult_curve25519.h\"\n\nextern struct crypto_scalarmult_curve25519_implementation\n    crypto_scalarmult_curve25519_ref10_implementation;\n\n#endif\n"
  },
  {
    "path": "src/libsodium/crypto_scalarmult/curve25519/sandy2x/consts.S",
    "content": "#ifdef IN_SANDY2X\n\n/*\n   REDMASK51 is from amd64-51/consts.s.\n*/\n\n#include \"consts_namespace.h\"\n.data\n.p2align 4\nv0_0: .quad 0, 0\nv1_0: .quad 1, 0\nv2_1: .quad 2, 1\nv9_0: .quad 9, 0\nv9_9: .quad 9, 9\nv19_19: .quad 19, 19\nv38_1: .quad 38, 1\nv38_38: .quad 38, 38\nv121666_121666: .quad 121666, 121666\nm25: .quad 33554431, 33554431\nm26: .quad 67108863, 67108863\nsubc0: .quad 0x07FFFFDA, 0x03FFFFFE\nsubc2: .quad 0x07FFFFFE, 0x03FFFFFE\nREDMASK51:   .quad 0x0007FFFFFFFFFFFF\n\n#endif\n"
  },
  {
    "path": "src/libsodium/crypto_scalarmult/curve25519/sandy2x/consts_namespace.h",
    "content": "#ifndef consts_namespace_H\n#define consts_namespace_H\n\n#define v0_0 _sodium_scalarmult_curve25519_sandy2x_v0_0\n#define v1_0 _sodium_scalarmult_curve25519_sandy2x_v1_0\n#define v2_1 _sodium_scalarmult_curve25519_sandy2x_v2_1\n#define v9_0 _sodium_scalarmult_curve25519_sandy2x_v9_0\n#define v9_9 _sodium_scalarmult_curve25519_sandy2x_v9_9\n#define v19_19 _sodium_scalarmult_curve25519_sandy2x_v19_19\n#define v38_1 _sodium_scalarmult_curve25519_sandy2x_v38_1\n#define v38_38 _sodium_scalarmult_curve25519_sandy2x_v38_38\n#define v121666_121666 _sodium_scalarmult_curve25519_sandy2x_v121666_121666\n#define m25 _sodium_scalarmult_curve25519_sandy2x_m25\n#define m26 _sodium_scalarmult_curve25519_sandy2x_m26\n#define subc0 _sodium_scalarmult_curve25519_sandy2x_subc0\n#define subc2 _sodium_scalarmult_curve25519_sandy2x_subc2\n#define REDMASK51 _sodium_scalarmult_curve25519_sandy2x_REDMASK51\n\n#endif /* ifndef consts_namespace_H */\n\n"
  },
  {
    "path": "src/libsodium/crypto_scalarmult/curve25519/sandy2x/curve25519_sandy2x.c",
    "content": "/*\n   This file is adapted from ref10/scalarmult.c:\n   The code for Montgomery ladder is replaced by the ladder assembly function;\n   Inversion is done in the same way as amd64-51/.\n   (fe is first converted into fe51 after Montgomery ladder)\n*/\n\n#include <stddef.h>\n\n#ifdef HAVE_AVX_ASM\n\n#include \"utils.h\"\n#include \"curve25519_sandy2x.h\"\n#include \"../scalarmult_curve25519.h\"\n#include \"fe.h\"\n#include \"fe51.h\"\n#include \"ladder.h\"\n\n#define x1 var[0]\n#define x2 var[1]\n#define z2 var[2]\n\nstatic int\ncrypto_scalarmult_curve25519_sandy2x(unsigned char *q, const unsigned char *n,\n                                     const unsigned char *p)\n{\n    unsigned char  t[32];\n    fe             var[3];\n    fe51           x_51;\n    fe51           z_51;\n    unsigned int   i;\n\n    for (i = 0; i < 32; i++) {\n        t[i] = n[i];\n    }\n    t[0] &= 248;\n    t[31] &= 127;\n    t[31] |= 64;\n\n    fe_frombytes(x1, p);\n\n    ladder(var, t);\n\n    z_51.v[0] = (z2[1] << 26) + z2[0];\n    z_51.v[1] = (z2[3] << 26) + z2[2];\n    z_51.v[2] = (z2[5] << 26) + z2[4];\n    z_51.v[3] = (z2[7] << 26) + z2[6];\n    z_51.v[4] = (z2[9] << 26) + z2[8];\n\n    x_51.v[0] = (x2[1] << 26) + x2[0];\n    x_51.v[1] = (x2[3] << 26) + x2[2];\n    x_51.v[2] = (x2[5] << 26) + x2[4];\n    x_51.v[3] = (x2[7] << 26) + x2[6];\n    x_51.v[4] = (x2[9] << 26) + x2[8];\n\n    fe51_invert(&z_51, &z_51);\n    fe51_mul(&x_51, &x_51, &z_51);\n    fe51_pack(q, &x_51);\n\n    sodium_memzero(t, sizeof t);\n\n    return 0;\n}\n\nstruct crypto_scalarmult_curve25519_implementation\ncrypto_scalarmult_curve25519_sandy2x_implementation = {\n    SODIUM_C99(.mult = ) crypto_scalarmult_curve25519_sandy2x,\n    SODIUM_C99(.mult_base = ) NULL\n};\n\n#endif\n"
  },
  {
    "path": "src/libsodium/crypto_scalarmult/curve25519/sandy2x/curve25519_sandy2x.h",
    "content": "#ifndef curve25519_sandy2x_H\n#define curve25519_sandy2x_H\n\n#include \"crypto_scalarmult_curve25519.h\"\n\nextern struct crypto_scalarmult_curve25519_implementation\n    crypto_scalarmult_curve25519_sandy2x_implementation;\n\n#endif\n"
  },
  {
    "path": "src/libsodium/crypto_scalarmult/curve25519/sandy2x/fe.h",
    "content": "/*\n   This file is adapted from ref10/fe.h:\n   All the redundant functions are removed.\n*/\n\n#ifndef fe_H\n#define fe_H\n\n#include <stdint.h>\n#include <stdlib.h>\n\ntypedef uint64_t fe[10];\n\n/*\nfe means field element.\nHere the field is \\Z/(2^255-19).\nAn element t, entries t[0]...t[9], represents the integer\nt[0]+2^26 t[1]+2^51 t[2]+2^77 t[3]+2^102 t[4]+...+2^230 t[9].\nBounds on each t[i] vary depending on context.\n*/\n\n#define fe_frombytes _sodium_scalarmult_curve25519_sandy2x_fe_frombytes\n\nextern void fe_frombytes(fe, const unsigned char *);\n\n#endif\n"
  },
  {
    "path": "src/libsodium/crypto_scalarmult/curve25519/sandy2x/fe51.h",
    "content": "/*\n   This file is adapted from amd64-51/fe25519.h:\n   'fe25519' is renamed as 'fe51';\n   All the redundant functions are removed;\n   New function fe51_nsquare is introduced.\n*/\n\n#ifndef fe51_H\n#define fe51_H\n\n#ifdef __cplusplus\nextern \"C\" {\n#endif\n\n#include <stdint.h>\n#include <stdlib.h>\n\n#include \"fe51_namespace.h\"\n\ntypedef struct\n{\n    uint64_t v[5];\n}\nfe51;\n\nextern void fe51_pack(unsigned char *, const fe51 *);\nextern void fe51_mul(fe51 *, const fe51 *, const fe51 *);\nextern void fe51_nsquare(fe51 *, const fe51 *, int);\nextern void fe51_invert(fe51 *, const fe51 *);\n\n#ifdef __cplusplus\n}\n#endif\n\n#endif\n"
  },
  {
    "path": "src/libsodium/crypto_scalarmult/curve25519/sandy2x/fe51_invert.c",
    "content": "/*\n   This file is adapted from amd64-51/fe25519_invert.c:\n   Loops of squares are replaced by nsquares for better performance.\n*/\n\n#include \"fe51.h\"\n\n#ifdef HAVE_AVX_ASM\n\n#define fe51_square(x, y) fe51_nsquare(x, y, 1)\n\nvoid\nfe51_invert(fe51 *r, const fe51 *x)\n{\n    fe51 z2;\n    fe51 z9;\n    fe51 z11;\n    fe51 z2_5_0;\n    fe51 z2_10_0;\n    fe51 z2_20_0;\n    fe51 z2_50_0;\n    fe51 z2_100_0;\n    fe51 t;\n\n    /* 2 */ fe51_square(&z2,x);\n    /* 4 */ fe51_square(&t,&z2);\n    /* 8 */ fe51_square(&t,&t);\n    /* 9 */ fe51_mul(&z9,&t,x);\n    /* 11 */ fe51_mul(&z11,&z9,&z2);\n    /* 22 */ fe51_square(&t,&z11);\n    /* 2^5 - 2^0 = 31 */ fe51_mul(&z2_5_0,&t,&z9);\n\n    /* 2^10 - 2^5 */ fe51_nsquare(&t,&z2_5_0, 5);\n    /* 2^10 - 2^0 */ fe51_mul(&z2_10_0,&t,&z2_5_0);\n\n    /* 2^20 - 2^10 */ fe51_nsquare(&t,&z2_10_0, 10);\n    /* 2^20 - 2^0 */ fe51_mul(&z2_20_0,&t,&z2_10_0);\n\n    /* 2^40 - 2^20 */ fe51_nsquare(&t,&z2_20_0, 20);\n    /* 2^40 - 2^0 */ fe51_mul(&t,&t,&z2_20_0);\n\n    /* 2^50 - 2^10 */ fe51_nsquare(&t,&t,10);\n    /* 2^50 - 2^0 */ fe51_mul(&z2_50_0,&t,&z2_10_0);\n\n    /* 2^100 - 2^50 */ fe51_nsquare(&t,&z2_50_0, 50);\n    /* 2^100 - 2^0 */ fe51_mul(&z2_100_0,&t,&z2_50_0);\n\n    /* 2^200 - 2^100 */ fe51_nsquare(&t,&z2_100_0, 100);\n    /* 2^200 - 2^0 */ fe51_mul(&t,&t,&z2_100_0);\n\n    /* 2^250 - 2^50 */ fe51_nsquare(&t,&t, 50);\n    /* 2^250 - 2^0 */ fe51_mul(&t,&t,&z2_50_0);\n\n    /* 2^255 - 2^5 */ fe51_nsquare(&t,&t,5);\n    /* 2^255 - 21 */ fe51_mul(r,&t,&z11);\n}\n\n#endif\n"
  },
  {
    "path": "src/libsodium/crypto_scalarmult/curve25519/sandy2x/fe51_mul.S",
    "content": "#ifdef IN_SANDY2X\n\n/*\n   This file is basically amd64-51/fe25519_mul.s.\n*/\n#include \"private/asm_cet.h\"\n#include \"fe51_namespace.h\"\n#include \"consts_namespace.h\"\n.text\n.p2align 5\n#ifdef ASM_HIDE_SYMBOL\nASM_HIDE_SYMBOL fe51_mul\nASM_HIDE_SYMBOL _fe51_mul\n#endif\n.globl fe51_mul\n.globl _fe51_mul\n#ifdef __ELF__\n.type fe51_mul, @function\n.type _fe51_mul, @function\n#endif\nfe51_mul:\n_fe51_mul:\n\n_CET_ENDBR\nmov %rsp,%r11\nand $31,%r11\nadd $96,%r11\nsub %r11,%rsp\nmovq %r11,0(%rsp)\nmovq %r12,8(%rsp)\nmovq %r13,16(%rsp)\nmovq %r14,24(%rsp)\nmovq %r15,32(%rsp)\nmovq %rbx,40(%rsp)\nmovq %rbp,48(%rsp)\nmov  %rdx,%rcx\nmovq   24(%rsi),%rdx\nimulq  $19,%rdx,%rax\nmovq %rax,64(%rsp)\nmulq  16(%rcx)\nmov  %rax,%r8\nmov  %rdx,%r9\nmovq   32(%rsi),%rdx\nimulq  $19,%rdx,%rax\nmovq %rax,72(%rsp)\nmulq  8(%rcx)\nadd  %rax,%r8\nadc %rdx,%r9\nmovq   0(%rsi),%rax\nmulq  0(%rcx)\nadd  %rax,%r8\nadc %rdx,%r9\nmovq   0(%rsi),%rax\nmulq  8(%rcx)\nmov  %rax,%r10\nmov  %rdx,%r11\nmovq   0(%rsi),%rax\nmulq  16(%rcx)\nmov  %rax,%r12\nmov  %rdx,%r13\nmovq   0(%rsi),%rax\nmulq  24(%rcx)\nmov  %rax,%r14\nmov  %rdx,%r15\nmovq   0(%rsi),%rax\nmulq  32(%rcx)\nmov  %rax,%rbx\nmov  %rdx,%rbp\nmovq   8(%rsi),%rax\nmulq  0(%rcx)\nadd  %rax,%r10\nadc %rdx,%r11\nmovq   8(%rsi),%rax\nmulq  8(%rcx)\nadd  %rax,%r12\nadc %rdx,%r13\nmovq   8(%rsi),%rax\nmulq  16(%rcx)\nadd  %rax,%r14\nadc %rdx,%r15\nmovq   8(%rsi),%rax\nmulq  24(%rcx)\nadd  %rax,%rbx\nadc %rdx,%rbp\nmovq   8(%rsi),%rdx\nimulq  $19,%rdx,%rax\nmulq  32(%rcx)\nadd  %rax,%r8\nadc %rdx,%r9\nmovq   16(%rsi),%rax\nmulq  0(%rcx)\nadd  %rax,%r12\nadc %rdx,%r13\nmovq   16(%rsi),%rax\nmulq  8(%rcx)\nadd  %rax,%r14\nadc %rdx,%r15\nmovq   16(%rsi),%rax\nmulq  16(%rcx)\nadd  %rax,%rbx\nadc %rdx,%rbp\nmovq   16(%rsi),%rdx\nimulq  $19,%rdx,%rax\nmulq  24(%rcx)\nadd  %rax,%r8\nadc %rdx,%r9\nmovq   16(%rsi),%rdx\nimulq  $19,%rdx,%rax\nmulq  32(%rcx)\nadd  %rax,%r10\nadc %rdx,%r11\nmovq   24(%rsi),%rax\nmulq  0(%rcx)\nadd  %rax,%r14\nadc %rdx,%r15\nmovq   24(%rsi),%rax\nmulq  8(%rcx)\nadd  %rax,%rbx\nadc %rdx,%rbp\nmovq 64(%rsp),%rax\nmulq  24(%rcx)\nadd  %rax,%r10\nadc %rdx,%r11\nmovq 64(%rsp),%rax\nmulq  32(%rcx)\nadd  %rax,%r12\nadc %rdx,%r13\nmovq   32(%rsi),%rax\nmulq  0(%rcx)\nadd  %rax,%rbx\nadc %rdx,%rbp\nmovq 72(%rsp),%rax\nmulq  16(%rcx)\nadd  %rax,%r10\nadc %rdx,%r11\nmovq 72(%rsp),%rax\nmulq  24(%rcx)\nadd  %rax,%r12\nadc %rdx,%r13\nmovq 72(%rsp),%rax\nmulq  32(%rcx)\nadd  %rax,%r14\nadc %rdx,%r15\nmovq REDMASK51(%rip),%rsi\nshld $13,%r8,%r9\nand  %rsi,%r8\nshld $13,%r10,%r11\nand  %rsi,%r10\nadd  %r9,%r10\nshld $13,%r12,%r13\nand  %rsi,%r12\nadd  %r11,%r12\nshld $13,%r14,%r15\nand  %rsi,%r14\nadd  %r13,%r14\nshld $13,%rbx,%rbp\nand  %rsi,%rbx\nadd  %r15,%rbx\nimulq  $19,%rbp,%rdx\nadd  %rdx,%r8\nmov  %r8,%rdx\nshr  $51,%rdx\nadd  %r10,%rdx\nmov  %rdx,%rcx\nshr  $51,%rdx\nand  %rsi,%r8\nadd  %r12,%rdx\nmov  %rdx,%r9\nshr  $51,%rdx\nand  %rsi,%rcx\nadd  %r14,%rdx\nmov  %rdx,%rax\nshr  $51,%rdx\nand  %rsi,%r9\nadd  %rbx,%rdx\nmov  %rdx,%r10\nshr  $51,%rdx\nand  %rsi,%rax\nimulq  $19,%rdx,%rdx\nadd  %rdx,%r8\nand  %rsi,%r10\nmovq   %r8,0(%rdi)\nmovq   %rcx,8(%rdi)\nmovq   %r9,16(%rdi)\nmovq   %rax,24(%rdi)\nmovq   %r10,32(%rdi)\nmovq 0(%rsp),%r11\nmovq 8(%rsp),%r12\nmovq 16(%rsp),%r13\nmovq 24(%rsp),%r14\nmovq 32(%rsp),%r15\nmovq 40(%rsp),%rbx\nmovq 48(%rsp),%rbp\nadd %r11,%rsp\nmov %rdi,%rax\nmov %rsi,%rdx\nret\n\n#endif\n"
  },
  {
    "path": "src/libsodium/crypto_scalarmult/curve25519/sandy2x/fe51_namespace.h",
    "content": "#ifndef fe51_namespace_H\n#define fe51_namespace_H\n\n#define  fe51              _sodium_scalarmult_curve25519_sandy2x_fe51\n#define _fe51             __sodium_scalarmult_curve25519_sandy2x_fe51\n#define  fe51_pack         _sodium_scalarmult_curve25519_sandy2x_fe51_pack\n#define _fe51_pack        __sodium_scalarmult_curve25519_sandy2x_fe51_pack\n#define  fe51_mul          _sodium_scalarmult_curve25519_sandy2x_fe51_mul\n#define _fe51_mul         __sodium_scalarmult_curve25519_sandy2x_fe51_mul\n#define  fe51_nsquare      _sodium_scalarmult_curve25519_sandy2x_fe51_nsquare\n#define _fe51_nsquare     __sodium_scalarmult_curve25519_sandy2x_fe51_nsquare\n\n#define  fe51_invert       _sodium_scalarmult_curve25519_sandy2x_fe51_invert\n\n#endif /* ifndef fe51_namespace_H */\n\n"
  },
  {
    "path": "src/libsodium/crypto_scalarmult/curve25519/sandy2x/fe51_nsquare.S",
    "content": "#ifdef IN_SANDY2X\n\n/*\n   This file is adapted from amd64-51/fe25519_square.s:\n   Adding loop to perform n squares.\n*/\n#include \"private/asm_cet.h\"\n#include \"fe51_namespace.h\"\n#include \"consts_namespace.h\"\n.p2align 5\n\n#ifdef ASM_HIDE_SYMBOL\nASM_HIDE_SYMBOL fe51_nsquare\nASM_HIDE_SYMBOL _fe51_nsquare\n#endif\n.globl fe51_nsquare\n.globl _fe51_nsquare\n#ifdef __ELF__\n.type  fe51_nsquare, @function\n.type _fe51_nsquare, @function\n#endif\nfe51_nsquare:\n_fe51_nsquare:\n\n_CET_ENDBR\nmov %rsp,%r11\nand $31,%r11\nadd $64,%r11\nsub %r11,%rsp\nmovq %r11,0(%rsp)\nmovq %r12,8(%rsp)\nmovq %r13,16(%rsp)\nmovq %r14,24(%rsp)\nmovq %r15,32(%rsp)\nmovq %rbx,40(%rsp)\nmovq %rbp,48(%rsp)\nmovq   0(%rsi),%rcx\nmovq   8(%rsi),%r8\nmovq   16(%rsi),%r9\nmovq   24(%rsi),%rax\nmovq   32(%rsi),%rsi\nmovq   %r9,16(%rdi)\nmovq   %rax,24(%rdi)\nmovq   %rsi,32(%rdi)\nmov  %rdx,%rsi\n\n.p2align 4\n._loop:\nsub  $1,%rsi\nmov  %rcx,%rax\nmul  %rcx\nadd  %rcx,%rcx\nmov  %rax,%r9\nmov  %rdx,%r10\nmov  %rcx,%rax\nmul  %r8\nmov  %rax,%r11\nmov  %rdx,%r12\nmov  %rcx,%rax\nmulq  16(%rdi)\nmov  %rax,%r13\nmov  %rdx,%r14\nmov  %rcx,%rax\nmulq  24(%rdi)\nmov  %rax,%r15\nmov  %rdx,%rbx\nmov  %rcx,%rax\nmulq  32(%rdi)\nmov  %rax,%rcx\nmov  %rdx,%rbp\nmov  %r8,%rax\nmul  %r8\nadd  %r8,%r8\nadd  %rax,%r13\nadc %rdx,%r14\nmov  %r8,%rax\nmulq  16(%rdi)\nadd  %rax,%r15\nadc %rdx,%rbx\nmov  %r8,%rax\nimulq  $19, %r8,%r8\nmulq  24(%rdi)\nadd  %rax,%rcx\nadc %rdx,%rbp\nmov  %r8,%rax\nmulq  32(%rdi)\nadd  %rax,%r9\nadc %rdx,%r10\nmovq   16(%rdi),%rax\nmulq  16(%rdi)\nadd  %rax,%rcx\nadc %rdx,%rbp\nshld $13,%rcx,%rbp\nmovq   16(%rdi),%rax\nimulq  $38, %rax,%rax\nmulq  24(%rdi)\nadd  %rax,%r9\nadc %rdx,%r10\nshld $13,%r9,%r10\nmovq   16(%rdi),%rax\nimulq  $38, %rax,%rax\nmulq  32(%rdi)\nadd  %rax,%r11\nadc %rdx,%r12\nmovq   24(%rdi),%rax\nimulq  $19, %rax,%rax\nmulq  24(%rdi)\nadd  %rax,%r11\nadc %rdx,%r12\nshld $13,%r11,%r12\nmovq   24(%rdi),%rax\nimulq  $38, %rax,%rax\nmulq  32(%rdi)\nadd  %rax,%r13\nadc %rdx,%r14\nshld $13,%r13,%r14\nmovq   32(%rdi),%rax\nimulq  $19, %rax,%rax\nmulq  32(%rdi)\nadd  %rax,%r15\nadc %rdx,%rbx\nshld $13,%r15,%rbx\nmovq REDMASK51(%rip),%rdx\nand  %rdx,%rcx\nadd  %rbx,%rcx\nand  %rdx,%r9\nand  %rdx,%r11\nadd  %r10,%r11\nand  %rdx,%r13\nadd  %r12,%r13\nand  %rdx,%r15\nadd  %r14,%r15\nimulq  $19, %rbp,%rbp\nlea  (%r9,%rbp),%r9\nmov  %r9,%rax\nshr  $51,%r9\nadd  %r11,%r9\nand  %rdx,%rax\nmov  %r9,%r8\nshr  $51,%r9\nadd  %r13,%r9\nand  %rdx,%r8\nmov  %r9,%r10\nshr  $51,%r9\nadd  %r15,%r9\nand  %rdx,%r10\nmovq   %r10,16(%rdi)\nmov  %r9,%r10\nshr  $51,%r9\nadd  %rcx,%r9\nand  %rdx,%r10\nmovq   %r10,24(%rdi)\nmov  %r9,%r10\nshr  $51,%r9\nimulq  $19, %r9,%r9\nlea  (%rax,%r9),%rcx\nand  %rdx,%r10\nmovq   %r10,32(%rdi)\ncmp  $0,%rsi\njne ._loop\n\nmovq   %rcx,0(%rdi)\nmovq   %r8,8(%rdi)\nmovq 0(%rsp),%r11\nmovq 8(%rsp),%r12\nmovq 16(%rsp),%r13\nmovq 24(%rsp),%r14\nmovq 32(%rsp),%r15\nmovq 40(%rsp),%rbx\nmovq 48(%rsp),%rbp\nadd %r11,%rsp\nret\n\n#endif\n"
  },
  {
    "path": "src/libsodium/crypto_scalarmult/curve25519/sandy2x/fe51_pack.S",
    "content": "#ifdef IN_SANDY2X\n\n/*\n   This file is the result of merging \n   amd64-51/fe25519_pack.c and amd64-51/fe25519_freeze.s.\n*/\n#include \"private/asm_cet.h\"\n#include \"fe51_namespace.h\"\n#include \"consts_namespace.h\"\n.p2align 5\n\n#ifdef ASM_HIDE_SYMBOL\nASM_HIDE_SYMBOL fe51_pack\nASM_HIDE_SYMBOL _fe51_pack\n#endif\n.globl fe51_pack\n.globl _fe51_pack\n#ifdef __ELF__\n.type  fe51_pack, @function\n.type _fe51_pack, @function\n#endif\nfe51_pack:\n_fe51_pack:\n\n_CET_ENDBR\nmov %rsp,%r11\nand $31,%r11\nadd $32,%r11\nsub %r11,%rsp\nmovq %r11,0(%rsp)\nmovq %r12,8(%rsp)\nmovq   0(%rsi),%rdx\nmovq   8(%rsi),%rcx\nmovq   16(%rsi),%r8\nmovq   24(%rsi),%r9\nmovq   32(%rsi),%rsi\nmovq REDMASK51(%rip),%rax\nlea  -18(%rax),%r10\nmov  $3,%r11\n\n.p2align 4\n._reduceloop:\nmov  %rdx,%r12\nshr  $51,%r12\nand  %rax,%rdx\nadd  %r12,%rcx\nmov  %rcx,%r12\nshr  $51,%r12\nand  %rax,%rcx\nadd  %r12,%r8\nmov  %r8,%r12\nshr  $51,%r12\nand  %rax,%r8\nadd  %r12,%r9\nmov  %r9,%r12\nshr  $51,%r12\nand  %rax,%r9\nadd  %r12,%rsi\nmov  %rsi,%r12\nshr  $51,%r12\nand  %rax,%rsi\nimulq  $19, %r12,%r12\nadd  %r12,%rdx\nsub  $1,%r11\nja ._reduceloop\n\nmov  $1,%r12\ncmp  %r10,%rdx\ncmovl %r11,%r12\ncmp  %rax,%rcx\ncmovne %r11,%r12\ncmp  %rax,%r8\ncmovne %r11,%r12\ncmp  %rax,%r9\ncmovne %r11,%r12\ncmp  %rax,%rsi\ncmovne %r11,%r12\nneg  %r12\nand  %r12,%rax\nand  %r12,%r10\nsub  %r10,%rdx\nsub  %rax,%rcx\nsub  %rax,%r8\nsub  %rax,%r9\nsub  %rax,%rsi\nmov  %rdx,%rax\nand  $0xFF,%eax\nmovb   %al,0(%rdi)\nmov  %rdx,%rax\nshr  $8,%rax\nand  $0xFF,%eax\nmovb   %al,1(%rdi)\nmov  %rdx,%rax\nshr  $16,%rax\nand  $0xFF,%eax\nmovb   %al,2(%rdi)\nmov  %rdx,%rax\nshr  $24,%rax\nand  $0xFF,%eax\nmovb   %al,3(%rdi)\nmov  %rdx,%rax\nshr  $32,%rax\nand  $0xFF,%eax\nmovb   %al,4(%rdi)\nmov  %rdx,%rax\nshr  $40,%rax\nand  $0xFF,%eax\nmovb   %al,5(%rdi)\nmov  %rdx,%rdx\nshr  $48,%rdx\nmov  %rcx,%rax\nshl  $3,%rax\nand  $0xF8,%eax\nxor  %rdx,%rax\nmovb   %al,6(%rdi)\nmov  %rcx,%rdx\nshr  $5,%rdx\nand  $0xFF,%edx\nmovb   %dl,7(%rdi)\nmov  %rcx,%rdx\nshr  $13,%rdx\nand  $0xFF,%edx\nmovb   %dl,8(%rdi)\nmov  %rcx,%rdx\nshr  $21,%rdx\nand  $0xFF,%edx\nmovb   %dl,9(%rdi)\nmov  %rcx,%rdx\nshr  $29,%rdx\nand  $0xFF,%edx\nmovb   %dl,10(%rdi)\nmov  %rcx,%rdx\nshr  $37,%rdx\nand  $0xFF,%edx\nmovb   %dl,11(%rdi)\nmov  %rcx,%rdx\nshr  $45,%rdx\nmov  %r8,%rcx\nshl  $6,%rcx\nand  $0xC0,%ecx\nxor  %rdx,%rcx\nmovb   %cl,12(%rdi)\nmov  %r8,%rdx\nshr  $2,%rdx\nand  $0xFF,%edx\nmovb   %dl,13(%rdi)\nmov  %r8,%rdx\nshr  $10,%rdx\nand  $0xFF,%edx\nmovb   %dl,14(%rdi)\nmov  %r8,%rdx\nshr  $18,%rdx\nand  $0xFF,%edx\nmovb   %dl,15(%rdi)\nmov  %r8,%rdx\nshr  $26,%rdx\nand  $0xFF,%edx\nmovb   %dl,16(%rdi)\nmov  %r8,%rdx\nshr  $34,%rdx\nand  $0xFF,%edx\nmovb   %dl,17(%rdi)\nmov  %r8,%rdx\nshr  $42,%rdx\nmovb   %dl,18(%rdi)\nmov  %r8,%rdx\nshr  $50,%rdx\nmov  %r9,%rcx\nshl  $1,%rcx\nand  $0xFE,%ecx\nxor  %rdx,%rcx\nmovb   %cl,19(%rdi)\nmov  %r9,%rdx\nshr  $7,%rdx\nand  $0xFF,%edx\nmovb   %dl,20(%rdi)\nmov  %r9,%rdx\nshr  $15,%rdx\nand  $0xFF,%edx\nmovb   %dl,21(%rdi)\nmov  %r9,%rdx\nshr  $23,%rdx\nand  $0xFF,%edx\nmovb   %dl,22(%rdi)\nmov  %r9,%rdx\nshr  $31,%rdx\nand  $0xFF,%edx\nmovb   %dl,23(%rdi)\nmov  %r9,%rdx\nshr  $39,%rdx\nand  $0xFF,%edx\nmovb   %dl,24(%rdi)\nmov  %r9,%rdx\nshr  $47,%rdx\nmov  %rsi,%rcx\nshl  $4,%rcx\nand  $0xF0,%ecx\nxor  %rdx,%rcx\nmovb   %cl,25(%rdi)\nmov  %rsi,%rdx\nshr  $4,%rdx\nand  $0xFF,%edx\nmovb   %dl,26(%rdi)\nmov  %rsi,%rdx\nshr  $12,%rdx\nand  $0xFF,%edx\nmovb   %dl,27(%rdi)\nmov  %rsi,%rdx\nshr  $20,%rdx\nand  $0xFF,%edx\nmovb   %dl,28(%rdi)\nmov  %rsi,%rdx\nshr  $28,%rdx\nand  $0xFF,%edx\nmovb   %dl,29(%rdi)\nmov  %rsi,%rdx\nshr  $36,%rdx\nand  $0xFF,%edx\nmovb   %dl,30(%rdi)\nmov  %rsi,%rsi\nshr  $44,%rsi\nmovb   %sil,31(%rdi)\nmovq 0(%rsp),%r11\nmovq 8(%rsp),%r12\nadd %r11,%rsp\nret\n\n#endif\n"
  },
  {
    "path": "src/libsodium/crypto_scalarmult/curve25519/sandy2x/fe_frombytes_sandy2x.c",
    "content": "/*\n   This file is basically ref10/fe_frombytes.h.\n*/\n\n#include \"fe.h\"\n\n#ifdef HAVE_AVX_ASM\n\nstatic uint64_t\nload_3(const unsigned char *in)\n{\n    uint64_t result;\n    result = (uint64_t) in[0];\n    result |= ((uint64_t) in[1]) << 8;\n    result |= ((uint64_t) in[2]) << 16;\n    return result;\n}\n\nstatic uint64_t\nload_4(const unsigned char *in)\n{\n    uint64_t result;\n    result = (uint64_t) in[0];\n    result |= ((uint64_t) in[1]) << 8;\n    result |= ((uint64_t) in[2]) << 16;\n    result |= ((uint64_t) in[3]) << 24;\n    return result;\n}\n\nvoid\nfe_frombytes(fe h, const unsigned char *s)\n{\n    uint64_t h0 = load_4(s);\n    uint64_t h1 = load_3(s + 4) << 6;\n    uint64_t h2 = load_3(s + 7) << 5;\n    uint64_t h3 = load_3(s + 10) << 3;\n    uint64_t h4 = load_3(s + 13) << 2;\n    uint64_t h5 = load_4(s + 16);\n    uint64_t h6 = load_3(s + 20) << 7;\n    uint64_t h7 = load_3(s + 23) << 5;\n    uint64_t h8 = load_3(s + 26) << 4;\n    uint64_t h9 = (load_3(s + 29) & 8388607) << 2;\n    uint64_t carry0;\n    uint64_t carry1;\n    uint64_t carry2;\n    uint64_t carry3;\n    uint64_t carry4;\n    uint64_t carry5;\n    uint64_t carry6;\n    uint64_t carry7;\n    uint64_t carry8;\n    uint64_t carry9;\n\n    carry9 = h9 >> 25; h0 += carry9 * 19; h9 &= 0x1FFFFFF;\n    carry1 = h1 >> 25; h2 += carry1; h1 &= 0x1FFFFFF;\n    carry3 = h3 >> 25; h4 += carry3; h3 &= 0x1FFFFFF;\n    carry5 = h5 >> 25; h6 += carry5; h5 &= 0x1FFFFFF;\n    carry7 = h7 >> 25; h8 += carry7; h7 &= 0x1FFFFFF;\n\n    carry0 = h0 >> 26; h1 += carry0; h0 &= 0x3FFFFFF;\n    carry2 = h2 >> 26; h3 += carry2; h2 &= 0x3FFFFFF;\n    carry4 = h4 >> 26; h5 += carry4; h4 &= 0x3FFFFFF;\n    carry6 = h6 >> 26; h7 += carry6; h6 &= 0x3FFFFFF;\n    carry8 = h8 >> 26; h9 += carry8; h8 &= 0x3FFFFFF;\n\n    h[0] = h0;\n    h[1] = h1;\n    h[2] = h2;\n    h[3] = h3;\n    h[4] = h4;\n    h[5] = h5;\n    h[6] = h6;\n    h[7] = h7;\n    h[8] = h8;\n    h[9] = h9;\n}\n\n#endif\n"
  },
  {
    "path": "src/libsodium/crypto_scalarmult/curve25519/sandy2x/ladder.S",
    "content": "#ifdef IN_SANDY2X\n\n#include \"private/asm_cet.h\"\n#include \"ladder_namespace.h\"\n#include \"consts_namespace.h\"\n.p2align 5\n\n#ifdef ASM_HIDE_SYMBOL\nASM_HIDE_SYMBOL ladder\nASM_HIDE_SYMBOL _ladder\n#endif\n.globl ladder\n.globl _ladder\n#ifdef __ELF__\n.type  ladder, @function\n.type _ladder, @function\n#endif\nladder:\n_ladder:\n\n_CET_ENDBR\nmov %rsp,%r11\nand $31,%r11\nadd $1856,%r11\nsub %r11,%rsp\nmovq %r11,1824(%rsp)\nmovq %r12,1832(%rsp)\nmovq %r13,1840(%rsp)\nmovq %r14,1848(%rsp)\nvmovdqa v0_0(%rip),%xmm0\nvmovdqa v1_0(%rip),%xmm1\nvmovdqu 0(%rdi),%xmm2\nvmovdqa %xmm2,0(%rsp)\nvmovdqu 16(%rdi),%xmm2\nvmovdqa %xmm2,16(%rsp)\nvmovdqu 32(%rdi),%xmm2\nvmovdqa %xmm2,32(%rsp)\nvmovdqu 48(%rdi),%xmm2\nvmovdqa %xmm2,48(%rsp)\nvmovdqu 64(%rdi),%xmm2\nvmovdqa %xmm2,64(%rsp)\nvmovdqa %xmm1,80(%rsp)\nvmovdqa %xmm0,96(%rsp)\nvmovdqa %xmm0,112(%rsp)\nvmovdqa %xmm0,128(%rsp)\nvmovdqa %xmm0,144(%rsp)\nvmovdqa %xmm1,%xmm0\nvpxor %xmm1,%xmm1,%xmm1\nvpxor %xmm2,%xmm2,%xmm2\nvpxor %xmm3,%xmm3,%xmm3\nvpxor %xmm4,%xmm4,%xmm4\nvpxor %xmm5,%xmm5,%xmm5\nvpxor %xmm6,%xmm6,%xmm6\nvpxor %xmm7,%xmm7,%xmm7\nvpxor %xmm8,%xmm8,%xmm8\nvpxor %xmm9,%xmm9,%xmm9\nvmovdqu 0(%rdi),%xmm10\nvmovdqa %xmm10,160(%rsp)\nvmovdqu 16(%rdi),%xmm10\nvmovdqa %xmm10,176(%rsp)\nvpmuludq v19_19(%rip),%xmm10,%xmm10\nvmovdqa %xmm10,192(%rsp)\nvmovdqu 32(%rdi),%xmm10\nvmovdqa %xmm10,208(%rsp)\nvpmuludq v19_19(%rip),%xmm10,%xmm10\nvmovdqa %xmm10,224(%rsp)\nvmovdqu 48(%rdi),%xmm10\nvmovdqa %xmm10,240(%rsp)\nvpmuludq v19_19(%rip),%xmm10,%xmm10\nvmovdqa %xmm10,256(%rsp)\nvmovdqu 64(%rdi),%xmm10\nvmovdqa %xmm10,272(%rsp)\nvpmuludq v19_19(%rip),%xmm10,%xmm10\nvmovdqa %xmm10,288(%rsp)\nvmovdqu 8(%rdi),%xmm10\nvpmuludq v2_1(%rip),%xmm10,%xmm10\nvmovdqa %xmm10,304(%rsp)\nvpmuludq v19_19(%rip),%xmm10,%xmm10\nvmovdqa %xmm10,320(%rsp)\nvmovdqu 24(%rdi),%xmm10\nvpmuludq v2_1(%rip),%xmm10,%xmm10\nvmovdqa %xmm10,336(%rsp)\nvpmuludq v19_19(%rip),%xmm10,%xmm10\nvmovdqa %xmm10,352(%rsp)\nvmovdqu 40(%rdi),%xmm10\nvpmuludq v2_1(%rip),%xmm10,%xmm10\nvmovdqa %xmm10,368(%rsp)\nvpmuludq v19_19(%rip),%xmm10,%xmm10\nvmovdqa %xmm10,384(%rsp)\nvmovdqu 56(%rdi),%xmm10\nvpmuludq v2_1(%rip),%xmm10,%xmm10\nvmovdqa %xmm10,400(%rsp)\nvpmuludq v19_19(%rip),%xmm10,%xmm10\nvmovdqa %xmm10,416(%rsp)\nvmovdqu 0(%rdi),%xmm10\nvmovdqu 64(%rdi),%xmm11\nvblendps $12, %xmm11, %xmm10, %xmm10\nvpshufd $2,%xmm10,%xmm10\nvpmuludq v38_1(%rip),%xmm10,%xmm10\nvmovdqa %xmm10,432(%rsp)\nmovq   0(%rsi),%rdx\nmovq   8(%rsi),%rcx\nmovq   16(%rsi),%r8\nmovq   24(%rsi),%r9\nshrd $1,%rcx,%rdx\nshrd $1,%r8,%rcx\nshrd $1,%r9,%r8\nshr  $1,%r9\nxorq 0(%rsi),%rdx\nxorq 8(%rsi),%rcx\nxorq 16(%rsi),%r8\nxorq 24(%rsi),%r9\nleaq 800(%rsp),%rsi\nmov  $64,%rax\n\n.p2align 4\n._ladder_small_loop:\nmov  %rdx,%r10\nmov  %rcx,%r11\nmov  %r8,%r12\nmov  %r9,%r13\nshr  $1,%rdx\nshr  $1,%rcx\nshr  $1,%r8\nshr  $1,%r9\nand  $1,%r10d\nand  $1,%r11d\nand  $1,%r12d\nand  $1,%r13d\nneg  %r10\nneg  %r11\nneg  %r12\nneg  %r13\nmovl   %r10d,0(%rsi)\nmovl   %r11d,256(%rsi)\nmovl   %r12d,512(%rsi)\nmovl   %r13d,768(%rsi)\nadd  $4,%rsi\nsub  $1,%rax\njne ._ladder_small_loop\nmov  $255,%rdx\nadd  $760,%rsi\n\n.p2align 4\n._ladder_loop:\nsub  $1,%rdx\nvbroadcastss 0(%rsi),%xmm10\nsub  $4,%rsi\nvmovdqa 0(%rsp),%xmm11\nvmovdqa 80(%rsp),%xmm12\nvpxor %xmm11,%xmm0,%xmm13\nvpand %xmm10,%xmm13,%xmm13\nvpxor %xmm13,%xmm0,%xmm0\nvpxor %xmm13,%xmm11,%xmm11\nvpxor %xmm12,%xmm1,%xmm13\nvpand %xmm10,%xmm13,%xmm13\nvpxor %xmm13,%xmm1,%xmm1\nvpxor %xmm13,%xmm12,%xmm12\nvmovdqa 16(%rsp),%xmm13\nvmovdqa 96(%rsp),%xmm14\nvpxor %xmm13,%xmm2,%xmm15\nvpand %xmm10,%xmm15,%xmm15\nvpxor %xmm15,%xmm2,%xmm2\nvpxor %xmm15,%xmm13,%xmm13\nvpxor %xmm14,%xmm3,%xmm15\nvpand %xmm10,%xmm15,%xmm15\nvpxor %xmm15,%xmm3,%xmm3\nvpxor %xmm15,%xmm14,%xmm14\nvmovdqa %xmm13,0(%rsp)\nvmovdqa %xmm14,16(%rsp)\nvmovdqa 32(%rsp),%xmm13\nvmovdqa 112(%rsp),%xmm14\nvpxor %xmm13,%xmm4,%xmm15\nvpand %xmm10,%xmm15,%xmm15\nvpxor %xmm15,%xmm4,%xmm4\nvpxor %xmm15,%xmm13,%xmm13\nvpxor %xmm14,%xmm5,%xmm15\nvpand %xmm10,%xmm15,%xmm15\nvpxor %xmm15,%xmm5,%xmm5\nvpxor %xmm15,%xmm14,%xmm14\nvmovdqa %xmm13,32(%rsp)\nvmovdqa %xmm14,80(%rsp)\nvmovdqa 48(%rsp),%xmm13\nvmovdqa 128(%rsp),%xmm14\nvpxor %xmm13,%xmm6,%xmm15\nvpand %xmm10,%xmm15,%xmm15\nvpxor %xmm15,%xmm6,%xmm6\nvpxor %xmm15,%xmm13,%xmm13\nvpxor %xmm14,%xmm7,%xmm15\nvpand %xmm10,%xmm15,%xmm15\nvpxor %xmm15,%xmm7,%xmm7\nvpxor %xmm15,%xmm14,%xmm14\nvmovdqa %xmm13,48(%rsp)\nvmovdqa %xmm14,96(%rsp)\nvmovdqa 64(%rsp),%xmm13\nvmovdqa 144(%rsp),%xmm14\nvpxor %xmm13,%xmm8,%xmm15\nvpand %xmm10,%xmm15,%xmm15\nvpxor %xmm15,%xmm8,%xmm8\nvpxor %xmm15,%xmm13,%xmm13\nvpxor %xmm14,%xmm9,%xmm15\nvpand %xmm10,%xmm15,%xmm15\nvpxor %xmm15,%xmm9,%xmm9\nvpxor %xmm15,%xmm14,%xmm14\nvmovdqa %xmm13,64(%rsp)\nvmovdqa %xmm14,112(%rsp)\nvpaddq subc0(%rip),%xmm11,%xmm10\nvpsubq %xmm12,%xmm10,%xmm10\nvpaddq %xmm12,%xmm11,%xmm11\nvpunpckhqdq %xmm10,%xmm11,%xmm12\nvpunpcklqdq %xmm10,%xmm11,%xmm10\nvpaddq %xmm1,%xmm0,%xmm11\nvpaddq subc0(%rip),%xmm0,%xmm0\nvpsubq %xmm1,%xmm0,%xmm0\nvpunpckhqdq %xmm11,%xmm0,%xmm1\nvpunpcklqdq %xmm11,%xmm0,%xmm0\nvpmuludq %xmm0,%xmm10,%xmm11\nvpmuludq %xmm1,%xmm10,%xmm13\nvmovdqa %xmm1,128(%rsp)\nvpaddq %xmm1,%xmm1,%xmm1\nvpmuludq %xmm0,%xmm12,%xmm14\nvmovdqa %xmm0,144(%rsp)\nvpaddq %xmm14,%xmm13,%xmm13\nvpmuludq %xmm1,%xmm12,%xmm0\nvmovdqa %xmm1,448(%rsp)\nvpaddq %xmm3,%xmm2,%xmm1\nvpaddq subc2(%rip),%xmm2,%xmm2\nvpsubq %xmm3,%xmm2,%xmm2\nvpunpckhqdq %xmm1,%xmm2,%xmm3\nvpunpcklqdq %xmm1,%xmm2,%xmm1\nvpmuludq %xmm1,%xmm10,%xmm2\nvpaddq %xmm2,%xmm0,%xmm0\nvpmuludq %xmm3,%xmm10,%xmm2\nvmovdqa %xmm3,464(%rsp)\nvpaddq %xmm3,%xmm3,%xmm3\nvpmuludq %xmm1,%xmm12,%xmm14\nvmovdqa %xmm1,480(%rsp)\nvpaddq %xmm14,%xmm2,%xmm2\nvpmuludq %xmm3,%xmm12,%xmm1\nvmovdqa %xmm3,496(%rsp)\nvpaddq %xmm5,%xmm4,%xmm3\nvpaddq subc2(%rip),%xmm4,%xmm4\nvpsubq %xmm5,%xmm4,%xmm4\nvpunpckhqdq %xmm3,%xmm4,%xmm5\nvpunpcklqdq %xmm3,%xmm4,%xmm3\nvpmuludq %xmm3,%xmm10,%xmm4\nvpaddq %xmm4,%xmm1,%xmm1\nvpmuludq %xmm5,%xmm10,%xmm4\nvmovdqa %xmm5,512(%rsp)\nvpaddq %xmm5,%xmm5,%xmm5\nvpmuludq %xmm3,%xmm12,%xmm14\nvmovdqa %xmm3,528(%rsp)\nvpaddq %xmm14,%xmm4,%xmm4\nvpaddq %xmm7,%xmm6,%xmm3\nvpaddq subc2(%rip),%xmm6,%xmm6\nvpsubq %xmm7,%xmm6,%xmm6\nvpunpckhqdq %xmm3,%xmm6,%xmm7\nvpunpcklqdq %xmm3,%xmm6,%xmm3\nvpmuludq %xmm3,%xmm10,%xmm6\nvpmuludq %xmm5,%xmm12,%xmm14\nvmovdqa %xmm5,544(%rsp)\nvpmuludq v19_19(%rip),%xmm5,%xmm5\nvmovdqa %xmm5,560(%rsp)\nvpaddq %xmm14,%xmm6,%xmm6\nvpmuludq %xmm7,%xmm10,%xmm5\nvmovdqa %xmm7,576(%rsp)\nvpaddq %xmm7,%xmm7,%xmm7\nvpmuludq %xmm3,%xmm12,%xmm14\nvmovdqa %xmm3,592(%rsp)\nvpaddq %xmm14,%xmm5,%xmm5\nvpmuludq v19_19(%rip),%xmm3,%xmm3\nvmovdqa %xmm3,608(%rsp)\nvpaddq %xmm9,%xmm8,%xmm3\nvpaddq subc2(%rip),%xmm8,%xmm8\nvpsubq %xmm9,%xmm8,%xmm8\nvpunpckhqdq %xmm3,%xmm8,%xmm9\nvpunpcklqdq %xmm3,%xmm8,%xmm3\nvmovdqa %xmm3,624(%rsp)\nvpmuludq %xmm7,%xmm12,%xmm8\nvmovdqa %xmm7,640(%rsp)\nvpmuludq v19_19(%rip),%xmm7,%xmm7\nvmovdqa %xmm7,656(%rsp)\nvpmuludq %xmm3,%xmm10,%xmm7\nvpaddq %xmm7,%xmm8,%xmm8\nvpmuludq %xmm9,%xmm10,%xmm7\nvmovdqa %xmm9,672(%rsp)\nvpaddq %xmm9,%xmm9,%xmm9\nvpmuludq %xmm3,%xmm12,%xmm10\nvpaddq %xmm10,%xmm7,%xmm7\nvpmuludq v19_19(%rip),%xmm3,%xmm3\nvmovdqa %xmm3,688(%rsp)\nvpmuludq v19_19(%rip),%xmm12,%xmm12\nvpmuludq %xmm9,%xmm12,%xmm3\nvmovdqa %xmm9,704(%rsp)\nvpaddq %xmm3,%xmm11,%xmm11\nvmovdqa 0(%rsp),%xmm3\nvmovdqa 16(%rsp),%xmm9\nvpaddq subc2(%rip),%xmm3,%xmm10\nvpsubq %xmm9,%xmm10,%xmm10\nvpaddq %xmm9,%xmm3,%xmm3\nvpunpckhqdq %xmm10,%xmm3,%xmm9\nvpunpcklqdq %xmm10,%xmm3,%xmm3\nvpmuludq 144(%rsp),%xmm3,%xmm10\nvpaddq %xmm10,%xmm0,%xmm0\nvpmuludq 128(%rsp),%xmm3,%xmm10\nvpaddq %xmm10,%xmm2,%xmm2\nvpmuludq 480(%rsp),%xmm3,%xmm10\nvpaddq %xmm10,%xmm1,%xmm1\nvpmuludq 464(%rsp),%xmm3,%xmm10\nvpaddq %xmm10,%xmm4,%xmm4\nvpmuludq 528(%rsp),%xmm3,%xmm10\nvpaddq %xmm10,%xmm6,%xmm6\nvpmuludq 512(%rsp),%xmm3,%xmm10\nvpaddq %xmm10,%xmm5,%xmm5\nvpmuludq 592(%rsp),%xmm3,%xmm10\nvpaddq %xmm10,%xmm8,%xmm8\nvpmuludq 576(%rsp),%xmm3,%xmm10\nvpaddq %xmm10,%xmm7,%xmm7\nvpmuludq v19_19(%rip),%xmm3,%xmm3\nvpmuludq 624(%rsp),%xmm3,%xmm10\nvpaddq %xmm10,%xmm11,%xmm11\nvpmuludq 672(%rsp),%xmm3,%xmm3\nvpaddq %xmm3,%xmm13,%xmm13\nvpmuludq 144(%rsp),%xmm9,%xmm3\nvpaddq %xmm3,%xmm2,%xmm2\nvpmuludq 448(%rsp),%xmm9,%xmm3\nvpaddq %xmm3,%xmm1,%xmm1\nvpmuludq 480(%rsp),%xmm9,%xmm3\nvpaddq %xmm3,%xmm4,%xmm4\nvpmuludq 496(%rsp),%xmm9,%xmm3\nvpaddq %xmm3,%xmm6,%xmm6\nvpmuludq 528(%rsp),%xmm9,%xmm3\nvpaddq %xmm3,%xmm5,%xmm5\nvpmuludq 544(%rsp),%xmm9,%xmm3\nvpaddq %xmm3,%xmm8,%xmm8\nvpmuludq 592(%rsp),%xmm9,%xmm3\nvpaddq %xmm3,%xmm7,%xmm7\nvpmuludq v19_19(%rip),%xmm9,%xmm9\nvpmuludq 640(%rsp),%xmm9,%xmm3\nvpaddq %xmm3,%xmm11,%xmm11\nvpmuludq 624(%rsp),%xmm9,%xmm3\nvpaddq %xmm3,%xmm13,%xmm13\nvpmuludq 704(%rsp),%xmm9,%xmm9\nvpaddq %xmm9,%xmm0,%xmm0\nvmovdqa 32(%rsp),%xmm3\nvmovdqa 80(%rsp),%xmm9\nvpaddq subc2(%rip),%xmm3,%xmm10\nvpsubq %xmm9,%xmm10,%xmm10\nvpaddq %xmm9,%xmm3,%xmm3\nvpunpckhqdq %xmm10,%xmm3,%xmm9\nvpunpcklqdq %xmm10,%xmm3,%xmm3\nvpmuludq 144(%rsp),%xmm3,%xmm10\nvpaddq %xmm10,%xmm1,%xmm1\nvpmuludq 128(%rsp),%xmm3,%xmm10\nvpaddq %xmm10,%xmm4,%xmm4\nvpmuludq 480(%rsp),%xmm3,%xmm10\nvpaddq %xmm10,%xmm6,%xmm6\nvpmuludq 464(%rsp),%xmm3,%xmm10\nvpaddq %xmm10,%xmm5,%xmm5\nvpmuludq 528(%rsp),%xmm3,%xmm10\nvpaddq %xmm10,%xmm8,%xmm8\nvpmuludq 512(%rsp),%xmm3,%xmm10\nvpaddq %xmm10,%xmm7,%xmm7\nvpmuludq v19_19(%rip),%xmm3,%xmm3\nvpmuludq 592(%rsp),%xmm3,%xmm10\nvpaddq %xmm10,%xmm11,%xmm11\nvpmuludq 576(%rsp),%xmm3,%xmm10\nvpaddq %xmm10,%xmm13,%xmm13\nvpmuludq 624(%rsp),%xmm3,%xmm10\nvpaddq %xmm10,%xmm0,%xmm0\nvpmuludq 672(%rsp),%xmm3,%xmm3\nvpaddq %xmm3,%xmm2,%xmm2\nvpmuludq 144(%rsp),%xmm9,%xmm3\nvpaddq %xmm3,%xmm4,%xmm4\nvpmuludq 448(%rsp),%xmm9,%xmm3\nvpaddq %xmm3,%xmm6,%xmm6\nvpmuludq 480(%rsp),%xmm9,%xmm3\nvpaddq %xmm3,%xmm5,%xmm5\nvpmuludq 496(%rsp),%xmm9,%xmm3\nvpaddq %xmm3,%xmm8,%xmm8\nvpmuludq 528(%rsp),%xmm9,%xmm3\nvpaddq %xmm3,%xmm7,%xmm7\nvpmuludq v19_19(%rip),%xmm9,%xmm9\nvpmuludq 544(%rsp),%xmm9,%xmm3\nvpaddq %xmm3,%xmm11,%xmm11\nvpmuludq 592(%rsp),%xmm9,%xmm3\nvpaddq %xmm3,%xmm13,%xmm13\nvpmuludq 640(%rsp),%xmm9,%xmm3\nvpaddq %xmm3,%xmm0,%xmm0\nvpmuludq 624(%rsp),%xmm9,%xmm3\nvpaddq %xmm3,%xmm2,%xmm2\nvpmuludq 704(%rsp),%xmm9,%xmm9\nvpaddq %xmm9,%xmm1,%xmm1\nvmovdqa 48(%rsp),%xmm3\nvmovdqa 96(%rsp),%xmm9\nvpaddq subc2(%rip),%xmm3,%xmm10\nvpsubq %xmm9,%xmm10,%xmm10\nvpaddq %xmm9,%xmm3,%xmm3\nvpunpckhqdq %xmm10,%xmm3,%xmm9\nvpunpcklqdq %xmm10,%xmm3,%xmm3\nvpmuludq 144(%rsp),%xmm3,%xmm10\nvpaddq %xmm10,%xmm6,%xmm6\nvpmuludq 128(%rsp),%xmm3,%xmm10\nvpaddq %xmm10,%xmm5,%xmm5\nvpmuludq 480(%rsp),%xmm3,%xmm10\nvpaddq %xmm10,%xmm8,%xmm8\nvpmuludq 464(%rsp),%xmm3,%xmm10\nvpaddq %xmm10,%xmm7,%xmm7\nvpmuludq v19_19(%rip),%xmm3,%xmm3\nvpmuludq 528(%rsp),%xmm3,%xmm10\nvpaddq %xmm10,%xmm11,%xmm11\nvpmuludq 512(%rsp),%xmm3,%xmm10\nvpaddq %xmm10,%xmm13,%xmm13\nvpmuludq 592(%rsp),%xmm3,%xmm10\nvpaddq %xmm10,%xmm0,%xmm0\nvpmuludq 576(%rsp),%xmm3,%xmm10\nvpaddq %xmm10,%xmm2,%xmm2\nvpmuludq 624(%rsp),%xmm3,%xmm10\nvpaddq %xmm10,%xmm1,%xmm1\nvpmuludq 672(%rsp),%xmm3,%xmm3\nvpaddq %xmm3,%xmm4,%xmm4\nvpmuludq 144(%rsp),%xmm9,%xmm3\nvpaddq %xmm3,%xmm5,%xmm5\nvpmuludq 448(%rsp),%xmm9,%xmm3\nvpaddq %xmm3,%xmm8,%xmm8\nvpmuludq 480(%rsp),%xmm9,%xmm3\nvpaddq %xmm3,%xmm7,%xmm7\nvpmuludq v19_19(%rip),%xmm9,%xmm9\nvpmuludq 496(%rsp),%xmm9,%xmm3\nvpaddq %xmm3,%xmm11,%xmm11\nvpmuludq 528(%rsp),%xmm9,%xmm3\nvpaddq %xmm3,%xmm13,%xmm13\nvpmuludq 544(%rsp),%xmm9,%xmm3\nvpaddq %xmm3,%xmm0,%xmm0\nvpmuludq 592(%rsp),%xmm9,%xmm3\nvpaddq %xmm3,%xmm2,%xmm2\nvpmuludq 640(%rsp),%xmm9,%xmm3\nvpaddq %xmm3,%xmm1,%xmm1\nvpmuludq 624(%rsp),%xmm9,%xmm3\nvpaddq %xmm3,%xmm4,%xmm4\nvpmuludq 704(%rsp),%xmm9,%xmm9\nvpaddq %xmm9,%xmm6,%xmm6\nvmovdqa 64(%rsp),%xmm3\nvmovdqa 112(%rsp),%xmm9\nvpaddq subc2(%rip),%xmm3,%xmm10\nvpsubq %xmm9,%xmm10,%xmm10\nvpaddq %xmm9,%xmm3,%xmm3\nvpunpckhqdq %xmm10,%xmm3,%xmm9\nvpunpcklqdq %xmm10,%xmm3,%xmm3\nvpmuludq 144(%rsp),%xmm3,%xmm10\nvpaddq %xmm10,%xmm8,%xmm8\nvpmuludq 128(%rsp),%xmm3,%xmm10\nvpaddq %xmm10,%xmm7,%xmm7\nvpmuludq v19_19(%rip),%xmm3,%xmm3\nvpmuludq 480(%rsp),%xmm3,%xmm10\nvpaddq %xmm10,%xmm11,%xmm11\nvpmuludq 464(%rsp),%xmm3,%xmm10\nvpaddq %xmm10,%xmm13,%xmm13\nvpmuludq 528(%rsp),%xmm3,%xmm10\nvpaddq %xmm10,%xmm0,%xmm0\nvpmuludq 512(%rsp),%xmm3,%xmm10\nvpaddq %xmm10,%xmm2,%xmm2\nvpmuludq 592(%rsp),%xmm3,%xmm10\nvpaddq %xmm10,%xmm1,%xmm1\nvpmuludq 576(%rsp),%xmm3,%xmm10\nvpaddq %xmm10,%xmm4,%xmm4\nvpmuludq 624(%rsp),%xmm3,%xmm10\nvpaddq %xmm10,%xmm6,%xmm6\nvpmuludq 672(%rsp),%xmm3,%xmm3\nvpaddq %xmm3,%xmm5,%xmm5\nvpmuludq 144(%rsp),%xmm9,%xmm3\nvpaddq %xmm3,%xmm7,%xmm7\nvpmuludq v19_19(%rip),%xmm9,%xmm9\nvpmuludq 448(%rsp),%xmm9,%xmm3\nvpaddq %xmm3,%xmm11,%xmm11\nvpmuludq 480(%rsp),%xmm9,%xmm3\nvpaddq %xmm3,%xmm13,%xmm13\nvpmuludq 496(%rsp),%xmm9,%xmm3\nvpaddq %xmm3,%xmm0,%xmm0\nvpmuludq 528(%rsp),%xmm9,%xmm3\nvpaddq %xmm3,%xmm2,%xmm2\nvpmuludq 544(%rsp),%xmm9,%xmm3\nvpaddq %xmm3,%xmm1,%xmm1\nvpmuludq 592(%rsp),%xmm9,%xmm3\nvpaddq %xmm3,%xmm4,%xmm4\nvpmuludq 640(%rsp),%xmm9,%xmm3\nvpaddq %xmm3,%xmm6,%xmm6\nvpmuludq 624(%rsp),%xmm9,%xmm3\nvpaddq %xmm3,%xmm5,%xmm5\nvpmuludq 704(%rsp),%xmm9,%xmm9\nvpaddq %xmm9,%xmm8,%xmm8\nvpsrlq $25,%xmm4,%xmm3\nvpaddq %xmm3,%xmm6,%xmm6\nvpand m25(%rip),%xmm4,%xmm4\nvpsrlq $26,%xmm11,%xmm3\nvpaddq %xmm3,%xmm13,%xmm13\nvpand m26(%rip),%xmm11,%xmm11\nvpsrlq $26,%xmm6,%xmm3\nvpaddq %xmm3,%xmm5,%xmm5\nvpand m26(%rip),%xmm6,%xmm6\nvpsrlq $25,%xmm13,%xmm3\nvpaddq %xmm3,%xmm0,%xmm0\nvpand m25(%rip),%xmm13,%xmm13\nvpsrlq $25,%xmm5,%xmm3\nvpaddq %xmm3,%xmm8,%xmm8\nvpand m25(%rip),%xmm5,%xmm5\nvpsrlq $26,%xmm0,%xmm3\nvpaddq %xmm3,%xmm2,%xmm2\nvpand m26(%rip),%xmm0,%xmm0\nvpsrlq $26,%xmm8,%xmm3\nvpaddq %xmm3,%xmm7,%xmm7\nvpand m26(%rip),%xmm8,%xmm8\nvpsrlq $25,%xmm2,%xmm3\nvpaddq %xmm3,%xmm1,%xmm1\nvpand m25(%rip),%xmm2,%xmm2\nvpsrlq $25,%xmm7,%xmm3\nvpsllq $4,%xmm3,%xmm9\nvpaddq %xmm3,%xmm11,%xmm11\nvpsllq $1,%xmm3,%xmm3\nvpaddq %xmm3,%xmm9,%xmm9\nvpaddq %xmm9,%xmm11,%xmm11\nvpand m25(%rip),%xmm7,%xmm7\nvpsrlq $26,%xmm1,%xmm3\nvpaddq %xmm3,%xmm4,%xmm4\nvpand m26(%rip),%xmm1,%xmm1\nvpsrlq $26,%xmm11,%xmm3\nvpaddq %xmm3,%xmm13,%xmm13\nvpand m26(%rip),%xmm11,%xmm11\nvpsrlq $25,%xmm4,%xmm3\nvpaddq %xmm3,%xmm6,%xmm6\nvpand m25(%rip),%xmm4,%xmm4\nvpunpcklqdq %xmm13,%xmm11,%xmm3\nvpunpckhqdq %xmm13,%xmm11,%xmm9\nvpaddq subc0(%rip),%xmm9,%xmm10\nvpsubq %xmm3,%xmm10,%xmm10\nvpaddq %xmm9,%xmm3,%xmm3\nvpunpckhqdq %xmm3,%xmm10,%xmm9\nvpunpcklqdq %xmm3,%xmm10,%xmm10\nvpmuludq %xmm10,%xmm10,%xmm3\nvpaddq %xmm10,%xmm10,%xmm10\nvpmuludq %xmm9,%xmm10,%xmm11\nvpunpcklqdq %xmm2,%xmm0,%xmm12\nvpunpckhqdq %xmm2,%xmm0,%xmm0\nvpaddq subc2(%rip),%xmm0,%xmm2\nvpsubq %xmm12,%xmm2,%xmm2\nvpaddq %xmm0,%xmm12,%xmm12\nvpunpckhqdq %xmm12,%xmm2,%xmm0\nvpunpcklqdq %xmm12,%xmm2,%xmm2\nvpmuludq %xmm2,%xmm10,%xmm12\nvpaddq %xmm9,%xmm9,%xmm13\nvpmuludq %xmm13,%xmm9,%xmm9\nvpaddq %xmm9,%xmm12,%xmm12\nvpmuludq %xmm0,%xmm10,%xmm9\nvpmuludq %xmm2,%xmm13,%xmm14\nvpaddq %xmm14,%xmm9,%xmm9\nvpunpcklqdq %xmm4,%xmm1,%xmm14\nvpunpckhqdq %xmm4,%xmm1,%xmm1\nvpaddq subc2(%rip),%xmm1,%xmm4\nvpsubq %xmm14,%xmm4,%xmm4\nvpaddq %xmm1,%xmm14,%xmm14\nvpunpckhqdq %xmm14,%xmm4,%xmm1\nvpunpcklqdq %xmm14,%xmm4,%xmm4\nvmovdqa %xmm1,0(%rsp)\nvpaddq %xmm1,%xmm1,%xmm1\nvmovdqa %xmm1,16(%rsp)\nvpmuludq v19_19(%rip),%xmm1,%xmm1\nvmovdqa %xmm1,32(%rsp)\nvpmuludq %xmm4,%xmm10,%xmm1\nvpmuludq %xmm2,%xmm2,%xmm14\nvpaddq %xmm14,%xmm1,%xmm1\nvpmuludq 0(%rsp),%xmm10,%xmm14\nvpmuludq %xmm4,%xmm13,%xmm15\nvpaddq %xmm15,%xmm14,%xmm14\nvpunpcklqdq %xmm5,%xmm6,%xmm15\nvpunpckhqdq %xmm5,%xmm6,%xmm5\nvpaddq subc2(%rip),%xmm5,%xmm6\nvpsubq %xmm15,%xmm6,%xmm6\nvpaddq %xmm5,%xmm15,%xmm15\nvpunpckhqdq %xmm15,%xmm6,%xmm5\nvpunpcklqdq %xmm15,%xmm6,%xmm6\nvmovdqa %xmm6,48(%rsp)\nvpmuludq v19_19(%rip),%xmm6,%xmm6\nvmovdqa %xmm6,64(%rsp)\nvmovdqa %xmm5,80(%rsp)\nvpmuludq v38_38(%rip),%xmm5,%xmm5\nvmovdqa %xmm5,96(%rsp)\nvpmuludq 48(%rsp),%xmm10,%xmm5\nvpaddq %xmm0,%xmm0,%xmm6\nvpmuludq %xmm6,%xmm0,%xmm0\nvpaddq %xmm0,%xmm5,%xmm5\nvpmuludq 80(%rsp),%xmm10,%xmm0\nvpmuludq %xmm4,%xmm6,%xmm15\nvpaddq %xmm15,%xmm0,%xmm0\nvpmuludq %xmm6,%xmm13,%xmm15\nvpaddq %xmm15,%xmm1,%xmm1\nvpmuludq %xmm6,%xmm2,%xmm15\nvpaddq %xmm15,%xmm14,%xmm14\nvpunpcklqdq %xmm7,%xmm8,%xmm15\nvpunpckhqdq %xmm7,%xmm8,%xmm7\nvpaddq subc2(%rip),%xmm7,%xmm8\nvpsubq %xmm15,%xmm8,%xmm8\nvpaddq %xmm7,%xmm15,%xmm15\nvpunpckhqdq %xmm15,%xmm8,%xmm7\nvpunpcklqdq %xmm15,%xmm8,%xmm8\nvmovdqa %xmm8,112(%rsp)\nvpmuludq v19_19(%rip),%xmm8,%xmm8\nvmovdqa %xmm8,448(%rsp)\nvpmuludq 112(%rsp),%xmm10,%xmm8\nvpmuludq %xmm7,%xmm10,%xmm10\nvpmuludq v38_38(%rip),%xmm7,%xmm15\nvpmuludq %xmm15,%xmm7,%xmm7\nvpaddq %xmm7,%xmm8,%xmm8\nvpmuludq %xmm15,%xmm13,%xmm7\nvpaddq %xmm7,%xmm3,%xmm3\nvpmuludq %xmm15,%xmm2,%xmm7\nvpaddq %xmm7,%xmm11,%xmm11\nvpmuludq 80(%rsp),%xmm13,%xmm7\nvpaddq %xmm7,%xmm7,%xmm7\nvpaddq %xmm7,%xmm8,%xmm8\nvpmuludq 16(%rsp),%xmm13,%xmm7\nvpaddq %xmm7,%xmm5,%xmm5\nvpmuludq 48(%rsp),%xmm13,%xmm7\nvpaddq %xmm7,%xmm0,%xmm0\nvpmuludq 112(%rsp),%xmm13,%xmm7\nvpaddq %xmm7,%xmm10,%xmm10\nvpmuludq %xmm15,%xmm6,%xmm7\nvpaddq %xmm7,%xmm12,%xmm12\nvpmuludq %xmm15,%xmm4,%xmm7\nvpaddq %xmm7,%xmm9,%xmm9\nvpaddq %xmm2,%xmm2,%xmm2\nvpmuludq %xmm4,%xmm2,%xmm7\nvpaddq %xmm7,%xmm5,%xmm5\nvpmuludq 448(%rsp),%xmm2,%xmm7\nvpaddq %xmm7,%xmm3,%xmm3\nvpmuludq 448(%rsp),%xmm6,%xmm7\nvpaddq %xmm7,%xmm11,%xmm11\nvpmuludq 0(%rsp),%xmm2,%xmm7\nvpaddq %xmm7,%xmm0,%xmm0\nvpmuludq 48(%rsp),%xmm2,%xmm7\nvpaddq %xmm7,%xmm8,%xmm8\nvpmuludq 80(%rsp),%xmm2,%xmm2\nvpaddq %xmm2,%xmm10,%xmm10\nvpmuludq 96(%rsp),%xmm4,%xmm2\nvpaddq %xmm2,%xmm11,%xmm11\nvpmuludq %xmm4,%xmm4,%xmm2\nvpaddq %xmm2,%xmm8,%xmm8\nvpaddq %xmm4,%xmm4,%xmm2\nvpmuludq 448(%rsp),%xmm2,%xmm4\nvpaddq %xmm4,%xmm12,%xmm12\nvpmuludq 16(%rsp),%xmm15,%xmm4\nvpaddq %xmm4,%xmm1,%xmm1\nvpmuludq 48(%rsp),%xmm15,%xmm4\nvpaddq %xmm4,%xmm14,%xmm14\nvpmuludq 96(%rsp),%xmm6,%xmm4\nvpaddq %xmm4,%xmm3,%xmm3\nvmovdqa 16(%rsp),%xmm4\nvpmuludq 448(%rsp),%xmm4,%xmm4\nvpaddq %xmm4,%xmm9,%xmm9\nvpmuludq 16(%rsp),%xmm6,%xmm4\nvpaddq %xmm4,%xmm8,%xmm8\nvpmuludq 48(%rsp),%xmm6,%xmm4\nvpaddq %xmm4,%xmm10,%xmm10\nvpmuludq 80(%rsp),%xmm15,%xmm4\nvpaddq %xmm4,%xmm4,%xmm4\nvpaddq %xmm4,%xmm5,%xmm5\nvpmuludq 112(%rsp),%xmm15,%xmm4\nvpaddq %xmm4,%xmm0,%xmm0\nvmovdqa 48(%rsp),%xmm4\nvpaddq %xmm4,%xmm4,%xmm4\nvpmuludq 448(%rsp),%xmm4,%xmm4\nvpaddq %xmm4,%xmm1,%xmm1\nvmovdqa 80(%rsp),%xmm4\nvpaddq %xmm4,%xmm4,%xmm4\nvpmuludq 448(%rsp),%xmm4,%xmm4\nvpaddq %xmm4,%xmm14,%xmm14\nvpmuludq 64(%rsp),%xmm2,%xmm4\nvpaddq %xmm4,%xmm3,%xmm3\nvmovdqa 16(%rsp),%xmm4\nvpmuludq 64(%rsp),%xmm4,%xmm4\nvpaddq %xmm4,%xmm11,%xmm11\nvmovdqa 16(%rsp),%xmm4\nvpmuludq 96(%rsp),%xmm4,%xmm4\nvpaddq %xmm4,%xmm12,%xmm12\nvmovdqa 48(%rsp),%xmm4\nvpmuludq 96(%rsp),%xmm4,%xmm4\nvpaddq %xmm4,%xmm9,%xmm9\nvpmuludq 0(%rsp),%xmm2,%xmm2\nvpaddq %xmm2,%xmm10,%xmm10\nvmovdqa 32(%rsp),%xmm2\nvpmuludq 0(%rsp),%xmm2,%xmm2\nvpaddq %xmm2,%xmm3,%xmm3\nvmovdqa 64(%rsp),%xmm2\nvpmuludq 48(%rsp),%xmm2,%xmm2\nvpaddq %xmm2,%xmm12,%xmm12\nvmovdqa 96(%rsp),%xmm2\nvpmuludq 80(%rsp),%xmm2,%xmm2\nvpaddq %xmm2,%xmm1,%xmm1\nvmovdqa 448(%rsp),%xmm2\nvpmuludq 112(%rsp),%xmm2,%xmm2\nvpaddq %xmm2,%xmm5,%xmm5\nvpsrlq $26,%xmm3,%xmm2\nvpaddq %xmm2,%xmm11,%xmm11\nvpand m26(%rip),%xmm3,%xmm3\nvpsrlq $25,%xmm14,%xmm2\nvpaddq %xmm2,%xmm5,%xmm5\nvpand m25(%rip),%xmm14,%xmm14\nvpsrlq $25,%xmm11,%xmm2\nvpaddq %xmm2,%xmm12,%xmm12\nvpand m25(%rip),%xmm11,%xmm11\nvpsrlq $26,%xmm5,%xmm2\nvpaddq %xmm2,%xmm0,%xmm0\nvpand m26(%rip),%xmm5,%xmm5\nvpsrlq $26,%xmm12,%xmm2\nvpaddq %xmm2,%xmm9,%xmm9\nvpand m26(%rip),%xmm12,%xmm12\nvpsrlq $25,%xmm0,%xmm2\nvpaddq %xmm2,%xmm8,%xmm8\nvpand m25(%rip),%xmm0,%xmm0\nvpsrlq $25,%xmm9,%xmm2\nvpaddq %xmm2,%xmm1,%xmm1\nvpand m25(%rip),%xmm9,%xmm9\nvpsrlq $26,%xmm8,%xmm2\nvpaddq %xmm2,%xmm10,%xmm10\nvpand m26(%rip),%xmm8,%xmm8\nvpsrlq $26,%xmm1,%xmm2\nvpaddq %xmm2,%xmm14,%xmm14\nvpand m26(%rip),%xmm1,%xmm1\nvpsrlq $25,%xmm10,%xmm2\nvpsllq $4,%xmm2,%xmm4\nvpaddq %xmm2,%xmm3,%xmm3\nvpsllq $1,%xmm2,%xmm2\nvpaddq %xmm2,%xmm4,%xmm4\nvpaddq %xmm4,%xmm3,%xmm3\nvpand m25(%rip),%xmm10,%xmm10\nvpsrlq $25,%xmm14,%xmm2\nvpaddq %xmm2,%xmm5,%xmm5\nvpand m25(%rip),%xmm14,%xmm14\nvpsrlq $26,%xmm3,%xmm2\nvpaddq %xmm2,%xmm11,%xmm11\nvpand m26(%rip),%xmm3,%xmm3\nvpunpckhqdq %xmm11,%xmm3,%xmm2\nvmovdqa %xmm2,0(%rsp)\nvpshufd $0,%xmm3,%xmm2\nvpshufd $0,%xmm11,%xmm3\nvpmuludq 160(%rsp),%xmm2,%xmm4\nvpmuludq 432(%rsp),%xmm3,%xmm6\nvpaddq %xmm6,%xmm4,%xmm4\nvpmuludq 176(%rsp),%xmm2,%xmm6\nvpmuludq 304(%rsp),%xmm3,%xmm7\nvpaddq %xmm7,%xmm6,%xmm6\nvpmuludq 208(%rsp),%xmm2,%xmm7\nvpmuludq 336(%rsp),%xmm3,%xmm11\nvpaddq %xmm11,%xmm7,%xmm7\nvpmuludq 240(%rsp),%xmm2,%xmm11\nvpmuludq 368(%rsp),%xmm3,%xmm13\nvpaddq %xmm13,%xmm11,%xmm11\nvpmuludq 272(%rsp),%xmm2,%xmm2\nvpmuludq 400(%rsp),%xmm3,%xmm3\nvpaddq %xmm3,%xmm2,%xmm2\nvpunpckhqdq %xmm9,%xmm12,%xmm3\nvmovdqa %xmm3,16(%rsp)\nvpshufd $0,%xmm12,%xmm3\nvpshufd $0,%xmm9,%xmm9\nvpmuludq 288(%rsp),%xmm3,%xmm12\nvpaddq %xmm12,%xmm4,%xmm4\nvpmuludq 416(%rsp),%xmm9,%xmm12\nvpaddq %xmm12,%xmm4,%xmm4\nvpmuludq 160(%rsp),%xmm3,%xmm12\nvpaddq %xmm12,%xmm6,%xmm6\nvpmuludq 432(%rsp),%xmm9,%xmm12\nvpaddq %xmm12,%xmm6,%xmm6\nvpmuludq 176(%rsp),%xmm3,%xmm12\nvpaddq %xmm12,%xmm7,%xmm7\nvpmuludq 304(%rsp),%xmm9,%xmm12\nvpaddq %xmm12,%xmm7,%xmm7\nvpmuludq 208(%rsp),%xmm3,%xmm12\nvpaddq %xmm12,%xmm11,%xmm11\nvpmuludq 336(%rsp),%xmm9,%xmm12\nvpaddq %xmm12,%xmm11,%xmm11\nvpmuludq 240(%rsp),%xmm3,%xmm3\nvpaddq %xmm3,%xmm2,%xmm2\nvpmuludq 368(%rsp),%xmm9,%xmm3\nvpaddq %xmm3,%xmm2,%xmm2\nvpunpckhqdq %xmm14,%xmm1,%xmm3\nvmovdqa %xmm3,32(%rsp)\nvpshufd $0,%xmm1,%xmm1\nvpshufd $0,%xmm14,%xmm3\nvpmuludq 256(%rsp),%xmm1,%xmm9\nvpaddq %xmm9,%xmm4,%xmm4\nvpmuludq 384(%rsp),%xmm3,%xmm9\nvpaddq %xmm9,%xmm4,%xmm4\nvpmuludq 288(%rsp),%xmm1,%xmm9\nvpaddq %xmm9,%xmm6,%xmm6\nvpmuludq 416(%rsp),%xmm3,%xmm9\nvpaddq %xmm9,%xmm6,%xmm6\nvpmuludq 160(%rsp),%xmm1,%xmm9\nvpaddq %xmm9,%xmm7,%xmm7\nvpmuludq 432(%rsp),%xmm3,%xmm9\nvpaddq %xmm9,%xmm7,%xmm7\nvpmuludq 176(%rsp),%xmm1,%xmm9\nvpaddq %xmm9,%xmm11,%xmm11\nvpmuludq 304(%rsp),%xmm3,%xmm9\nvpaddq %xmm9,%xmm11,%xmm11\nvpmuludq 208(%rsp),%xmm1,%xmm1\nvpaddq %xmm1,%xmm2,%xmm2\nvpmuludq 336(%rsp),%xmm3,%xmm1\nvpaddq %xmm1,%xmm2,%xmm2\nvpunpckhqdq %xmm0,%xmm5,%xmm1\nvmovdqa %xmm1,48(%rsp)\nvpshufd $0,%xmm5,%xmm1\nvpshufd $0,%xmm0,%xmm0\nvpmuludq 224(%rsp),%xmm1,%xmm3\nvpaddq %xmm3,%xmm4,%xmm4\nvpmuludq 352(%rsp),%xmm0,%xmm3\nvpaddq %xmm3,%xmm4,%xmm4\nvpmuludq 256(%rsp),%xmm1,%xmm3\nvpaddq %xmm3,%xmm6,%xmm6\nvpmuludq 384(%rsp),%xmm0,%xmm3\nvpaddq %xmm3,%xmm6,%xmm6\nvpmuludq 288(%rsp),%xmm1,%xmm3\nvpaddq %xmm3,%xmm7,%xmm7\nvpmuludq 416(%rsp),%xmm0,%xmm3\nvpaddq %xmm3,%xmm7,%xmm7\nvpmuludq 160(%rsp),%xmm1,%xmm3\nvpaddq %xmm3,%xmm11,%xmm11\nvpmuludq 432(%rsp),%xmm0,%xmm3\nvpaddq %xmm3,%xmm11,%xmm11\nvpmuludq 176(%rsp),%xmm1,%xmm1\nvpaddq %xmm1,%xmm2,%xmm2\nvpmuludq 304(%rsp),%xmm0,%xmm0\nvpaddq %xmm0,%xmm2,%xmm2\nvpunpckhqdq %xmm10,%xmm8,%xmm0\nvmovdqa %xmm0,64(%rsp)\nvpshufd $0,%xmm8,%xmm0\nvpshufd $0,%xmm10,%xmm1\nvpmuludq 192(%rsp),%xmm0,%xmm3\nvpaddq %xmm3,%xmm4,%xmm4\nvpmuludq 320(%rsp),%xmm1,%xmm3\nvpaddq %xmm3,%xmm4,%xmm4\nvpmuludq 224(%rsp),%xmm0,%xmm3\nvpaddq %xmm3,%xmm6,%xmm6\nvpmuludq 352(%rsp),%xmm1,%xmm3\nvpaddq %xmm3,%xmm6,%xmm6\nvpmuludq 256(%rsp),%xmm0,%xmm3\nvpaddq %xmm3,%xmm7,%xmm7\nvpmuludq 384(%rsp),%xmm1,%xmm3\nvpaddq %xmm3,%xmm7,%xmm7\nvpmuludq 288(%rsp),%xmm0,%xmm3\nvpaddq %xmm3,%xmm11,%xmm11\nvpmuludq 416(%rsp),%xmm1,%xmm3\nvpaddq %xmm3,%xmm11,%xmm11\nvpmuludq 160(%rsp),%xmm0,%xmm0\nvpaddq %xmm0,%xmm2,%xmm2\nvpmuludq 432(%rsp),%xmm1,%xmm0\nvpaddq %xmm0,%xmm2,%xmm2\nvmovdqa %xmm4,80(%rsp)\nvmovdqa %xmm6,96(%rsp)\nvmovdqa %xmm7,112(%rsp)\nvmovdqa %xmm11,448(%rsp)\nvmovdqa %xmm2,496(%rsp)\nvmovdqa 144(%rsp),%xmm0\nvpmuludq %xmm0,%xmm0,%xmm1\nvpaddq %xmm0,%xmm0,%xmm0\nvmovdqa 128(%rsp),%xmm2\nvpmuludq %xmm2,%xmm0,%xmm3\nvmovdqa 480(%rsp),%xmm4\nvpmuludq %xmm4,%xmm0,%xmm5\nvmovdqa 464(%rsp),%xmm6\nvpmuludq %xmm6,%xmm0,%xmm7\nvmovdqa 528(%rsp),%xmm8\nvpmuludq %xmm8,%xmm0,%xmm9\nvpmuludq 512(%rsp),%xmm0,%xmm10\nvpmuludq 592(%rsp),%xmm0,%xmm11\nvpmuludq 576(%rsp),%xmm0,%xmm12\nvpmuludq 624(%rsp),%xmm0,%xmm13\nvmovdqa 672(%rsp),%xmm14\nvpmuludq %xmm14,%xmm0,%xmm0\nvpmuludq v38_38(%rip),%xmm14,%xmm15\nvpmuludq %xmm15,%xmm14,%xmm14\nvpaddq %xmm14,%xmm13,%xmm13\nvpaddq %xmm6,%xmm6,%xmm14\nvpmuludq %xmm14,%xmm6,%xmm6\nvpaddq %xmm6,%xmm11,%xmm11\nvpaddq %xmm2,%xmm2,%xmm6\nvpmuludq %xmm6,%xmm2,%xmm2\nvpaddq %xmm2,%xmm5,%xmm5\nvpmuludq %xmm15,%xmm6,%xmm2\nvpaddq %xmm2,%xmm1,%xmm1\nvpmuludq %xmm15,%xmm4,%xmm2\nvpaddq %xmm2,%xmm3,%xmm3\nvpmuludq 544(%rsp),%xmm6,%xmm2\nvpaddq %xmm2,%xmm11,%xmm11\nvpmuludq 592(%rsp),%xmm6,%xmm2\nvpaddq %xmm2,%xmm12,%xmm12\nvpmuludq 640(%rsp),%xmm6,%xmm2\nvpaddq %xmm2,%xmm13,%xmm13\nvpmuludq 624(%rsp),%xmm6,%xmm2\nvpaddq %xmm2,%xmm0,%xmm0\nvpmuludq %xmm4,%xmm6,%xmm2\nvpaddq %xmm2,%xmm7,%xmm7\nvpmuludq %xmm14,%xmm6,%xmm2\nvpaddq %xmm2,%xmm9,%xmm9\nvpmuludq %xmm8,%xmm6,%xmm2\nvpaddq %xmm2,%xmm10,%xmm10\nvpmuludq %xmm15,%xmm14,%xmm2\nvpaddq %xmm2,%xmm5,%xmm5\nvpmuludq %xmm15,%xmm8,%xmm2\nvpaddq %xmm2,%xmm7,%xmm7\nvpmuludq %xmm4,%xmm4,%xmm2\nvpaddq %xmm2,%xmm9,%xmm9\nvpmuludq %xmm14,%xmm4,%xmm2\nvpaddq %xmm2,%xmm10,%xmm10\nvpaddq %xmm4,%xmm4,%xmm2\nvpmuludq %xmm8,%xmm2,%xmm4\nvpaddq %xmm4,%xmm11,%xmm11\nvpmuludq 688(%rsp),%xmm2,%xmm4\nvpaddq %xmm4,%xmm1,%xmm1\nvpmuludq 688(%rsp),%xmm14,%xmm4\nvpaddq %xmm4,%xmm3,%xmm3\nvpmuludq 512(%rsp),%xmm2,%xmm4\nvpaddq %xmm4,%xmm12,%xmm12\nvpmuludq 592(%rsp),%xmm2,%xmm4\nvpaddq %xmm4,%xmm13,%xmm13\nvpmuludq 576(%rsp),%xmm2,%xmm2\nvpaddq %xmm2,%xmm0,%xmm0\nvpmuludq 656(%rsp),%xmm8,%xmm2\nvpaddq %xmm2,%xmm3,%xmm3\nvpmuludq %xmm8,%xmm14,%xmm2\nvpaddq %xmm2,%xmm12,%xmm12\nvpmuludq %xmm8,%xmm8,%xmm2\nvpaddq %xmm2,%xmm13,%xmm13\nvpaddq %xmm8,%xmm8,%xmm2\nvpmuludq 688(%rsp),%xmm2,%xmm4\nvpaddq %xmm4,%xmm5,%xmm5\nvpmuludq 544(%rsp),%xmm15,%xmm4\nvpaddq %xmm4,%xmm9,%xmm9\nvpmuludq 592(%rsp),%xmm15,%xmm4\nvpaddq %xmm4,%xmm10,%xmm10\nvpmuludq 656(%rsp),%xmm14,%xmm4\nvpaddq %xmm4,%xmm1,%xmm1\nvmovdqa 544(%rsp),%xmm4\nvpmuludq 688(%rsp),%xmm4,%xmm4\nvpaddq %xmm4,%xmm7,%xmm7\nvpmuludq 544(%rsp),%xmm14,%xmm4\nvpaddq %xmm4,%xmm13,%xmm13\nvpmuludq 592(%rsp),%xmm14,%xmm4\nvpaddq %xmm4,%xmm0,%xmm0\nvpmuludq 640(%rsp),%xmm15,%xmm4\nvpaddq %xmm4,%xmm11,%xmm11\nvpmuludq 624(%rsp),%xmm15,%xmm4\nvpaddq %xmm4,%xmm12,%xmm12\nvmovdqa 592(%rsp),%xmm4\nvpaddq %xmm4,%xmm4,%xmm4\nvpmuludq 688(%rsp),%xmm4,%xmm4\nvpaddq %xmm4,%xmm9,%xmm9\nvpmuludq 608(%rsp),%xmm2,%xmm4\nvpaddq %xmm4,%xmm1,%xmm1\nvmovdqa 544(%rsp),%xmm4\nvpmuludq 608(%rsp),%xmm4,%xmm4\nvpaddq %xmm4,%xmm3,%xmm3\nvmovdqa 544(%rsp),%xmm4\nvpmuludq 656(%rsp),%xmm4,%xmm4\nvpaddq %xmm4,%xmm5,%xmm5\nvmovdqa 592(%rsp),%xmm4\nvpmuludq 656(%rsp),%xmm4,%xmm4\nvpaddq %xmm4,%xmm7,%xmm7\nvmovdqa 640(%rsp),%xmm4\nvpmuludq 688(%rsp),%xmm4,%xmm4\nvpaddq %xmm4,%xmm10,%xmm10\nvpmuludq 512(%rsp),%xmm2,%xmm2\nvpaddq %xmm2,%xmm0,%xmm0\nvmovdqa 560(%rsp),%xmm2\nvpmuludq 512(%rsp),%xmm2,%xmm2\nvpaddq %xmm2,%xmm1,%xmm1\nvmovdqa 608(%rsp),%xmm2\nvpmuludq 592(%rsp),%xmm2,%xmm2\nvpaddq %xmm2,%xmm5,%xmm5\nvmovdqa 656(%rsp),%xmm2\nvpmuludq 576(%rsp),%xmm2,%xmm2\nvpaddq %xmm2,%xmm9,%xmm9\nvmovdqa 688(%rsp),%xmm2\nvpmuludq 624(%rsp),%xmm2,%xmm2\nvpaddq %xmm2,%xmm11,%xmm11\nvpsrlq $26,%xmm1,%xmm2\nvpaddq %xmm2,%xmm3,%xmm3\nvpand m26(%rip),%xmm1,%xmm1\nvpsrlq $25,%xmm10,%xmm2\nvpaddq %xmm2,%xmm11,%xmm11\nvpand m25(%rip),%xmm10,%xmm10\nvpsrlq $25,%xmm3,%xmm2\nvpaddq %xmm2,%xmm5,%xmm5\nvpand m25(%rip),%xmm3,%xmm3\nvpsrlq $26,%xmm11,%xmm2\nvpaddq %xmm2,%xmm12,%xmm12\nvpand m26(%rip),%xmm11,%xmm11\nvpsrlq $26,%xmm5,%xmm2\nvpaddq %xmm2,%xmm7,%xmm7\nvpand m26(%rip),%xmm5,%xmm5\nvpsrlq $25,%xmm12,%xmm2\nvpaddq %xmm2,%xmm13,%xmm13\nvpand m25(%rip),%xmm12,%xmm12\nvpsrlq $25,%xmm7,%xmm2\nvpaddq %xmm2,%xmm9,%xmm9\nvpand m25(%rip),%xmm7,%xmm7\nvpsrlq $26,%xmm13,%xmm2\nvpaddq %xmm2,%xmm0,%xmm0\nvpand m26(%rip),%xmm13,%xmm13\nvpsrlq $26,%xmm9,%xmm2\nvpaddq %xmm2,%xmm10,%xmm10\nvpand m26(%rip),%xmm9,%xmm9\nvpsrlq $25,%xmm0,%xmm2\nvpsllq $4,%xmm2,%xmm4\nvpaddq %xmm2,%xmm1,%xmm1\nvpsllq $1,%xmm2,%xmm2\nvpaddq %xmm2,%xmm4,%xmm4\nvpaddq %xmm4,%xmm1,%xmm1\nvpand m25(%rip),%xmm0,%xmm0\nvpsrlq $25,%xmm10,%xmm2\nvpaddq %xmm2,%xmm11,%xmm11\nvpand m25(%rip),%xmm10,%xmm10\nvpsrlq $26,%xmm1,%xmm2\nvpaddq %xmm2,%xmm3,%xmm3\nvpand m26(%rip),%xmm1,%xmm1\nvpunpckhqdq %xmm3,%xmm1,%xmm2\nvpunpcklqdq %xmm3,%xmm1,%xmm1\nvmovdqa %xmm1,464(%rsp)\nvpaddq subc0(%rip),%xmm2,%xmm3\nvpsubq %xmm1,%xmm3,%xmm3\nvpunpckhqdq %xmm3,%xmm2,%xmm1\nvpunpcklqdq %xmm3,%xmm2,%xmm2\nvmovdqa %xmm2,480(%rsp)\nvmovdqa %xmm1,512(%rsp)\nvpsllq $1,%xmm1,%xmm1\nvmovdqa %xmm1,528(%rsp)\nvpmuludq v121666_121666(%rip),%xmm3,%xmm3\nvmovdqa 80(%rsp),%xmm1\nvpunpcklqdq %xmm1,%xmm3,%xmm2\nvpunpckhqdq %xmm1,%xmm3,%xmm1\nvpunpckhqdq %xmm7,%xmm5,%xmm3\nvpunpcklqdq %xmm7,%xmm5,%xmm4\nvmovdqa %xmm4,544(%rsp)\nvpaddq subc2(%rip),%xmm3,%xmm5\nvpsubq %xmm4,%xmm5,%xmm5\nvpunpckhqdq %xmm5,%xmm3,%xmm4\nvpunpcklqdq %xmm5,%xmm3,%xmm3\nvmovdqa %xmm3,560(%rsp)\nvmovdqa %xmm4,576(%rsp)\nvpsllq $1,%xmm4,%xmm4\nvmovdqa %xmm4,592(%rsp)\nvpmuludq v121666_121666(%rip),%xmm5,%xmm5\nvmovdqa 96(%rsp),%xmm3\nvpunpcklqdq %xmm3,%xmm5,%xmm4\nvpunpckhqdq %xmm3,%xmm5,%xmm3\nvpunpckhqdq %xmm10,%xmm9,%xmm5\nvpunpcklqdq %xmm10,%xmm9,%xmm6\nvmovdqa %xmm6,608(%rsp)\nvpaddq subc2(%rip),%xmm5,%xmm7\nvpsubq %xmm6,%xmm7,%xmm7\nvpunpckhqdq %xmm7,%xmm5,%xmm6\nvpunpcklqdq %xmm7,%xmm5,%xmm5\nvmovdqa %xmm5,624(%rsp)\nvmovdqa %xmm6,640(%rsp)\nvpsllq $1,%xmm6,%xmm6\nvmovdqa %xmm6,656(%rsp)\nvpmuludq v121666_121666(%rip),%xmm7,%xmm7\nvmovdqa 112(%rsp),%xmm5\nvpunpcklqdq %xmm5,%xmm7,%xmm6\nvpunpckhqdq %xmm5,%xmm7,%xmm5\nvpunpckhqdq %xmm12,%xmm11,%xmm7\nvpunpcklqdq %xmm12,%xmm11,%xmm8\nvmovdqa %xmm8,672(%rsp)\nvpaddq subc2(%rip),%xmm7,%xmm9\nvpsubq %xmm8,%xmm9,%xmm9\nvpunpckhqdq %xmm9,%xmm7,%xmm8\nvpunpcklqdq %xmm9,%xmm7,%xmm7\nvmovdqa %xmm7,688(%rsp)\nvmovdqa %xmm8,704(%rsp)\nvpsllq $1,%xmm8,%xmm8\nvmovdqa %xmm8,720(%rsp)\nvpmuludq v121666_121666(%rip),%xmm9,%xmm9\nvmovdqa 448(%rsp),%xmm7\nvpunpcklqdq %xmm7,%xmm9,%xmm8\nvpunpckhqdq %xmm7,%xmm9,%xmm7\nvpunpckhqdq %xmm0,%xmm13,%xmm9\nvpunpcklqdq %xmm0,%xmm13,%xmm0\nvmovdqa %xmm0,448(%rsp)\nvpaddq subc2(%rip),%xmm9,%xmm10\nvpsubq %xmm0,%xmm10,%xmm10\nvpunpckhqdq %xmm10,%xmm9,%xmm0\nvpunpcklqdq %xmm10,%xmm9,%xmm9\nvmovdqa %xmm9,736(%rsp)\nvmovdqa %xmm0,752(%rsp)\nvpsllq $1,%xmm0,%xmm0\nvmovdqa %xmm0,768(%rsp)\nvpmuludq v121666_121666(%rip),%xmm10,%xmm10\nvmovdqa 496(%rsp),%xmm0\nvpunpcklqdq %xmm0,%xmm10,%xmm9\nvpunpckhqdq %xmm0,%xmm10,%xmm0\nvpsrlq $26,%xmm2,%xmm10\nvpaddq %xmm10,%xmm1,%xmm1\nvpand m26(%rip),%xmm2,%xmm2\nvpsrlq $25,%xmm5,%xmm10\nvpaddq %xmm10,%xmm8,%xmm8\nvpand m25(%rip),%xmm5,%xmm5\nvpsrlq $25,%xmm1,%xmm10\nvpaddq %xmm10,%xmm4,%xmm4\nvpand m25(%rip),%xmm1,%xmm1\nvpsrlq $26,%xmm8,%xmm10\nvpaddq %xmm10,%xmm7,%xmm7\nvpand m26(%rip),%xmm8,%xmm8\nvpsrlq $26,%xmm4,%xmm10\nvpaddq %xmm10,%xmm3,%xmm3\nvpand m26(%rip),%xmm4,%xmm4\nvpsrlq $25,%xmm7,%xmm10\nvpaddq %xmm10,%xmm9,%xmm9\nvpand m25(%rip),%xmm7,%xmm7\nvpsrlq $25,%xmm3,%xmm10\nvpaddq %xmm10,%xmm6,%xmm6\nvpand m25(%rip),%xmm3,%xmm3\nvpsrlq $26,%xmm9,%xmm10\nvpaddq %xmm10,%xmm0,%xmm0\nvpand m26(%rip),%xmm9,%xmm9\nvpsrlq $26,%xmm6,%xmm10\nvpaddq %xmm10,%xmm5,%xmm5\nvpand m26(%rip),%xmm6,%xmm6\nvpsrlq $25,%xmm0,%xmm10\nvpsllq $4,%xmm10,%xmm11\nvpaddq %xmm10,%xmm2,%xmm2\nvpsllq $1,%xmm10,%xmm10\nvpaddq %xmm10,%xmm11,%xmm11\nvpaddq %xmm11,%xmm2,%xmm2\nvpand m25(%rip),%xmm0,%xmm0\nvpsrlq $25,%xmm5,%xmm10\nvpaddq %xmm10,%xmm8,%xmm8\nvpand m25(%rip),%xmm5,%xmm5\nvpsrlq $26,%xmm2,%xmm10\nvpaddq %xmm10,%xmm1,%xmm1\nvpand m26(%rip),%xmm2,%xmm2\nvpunpckhqdq %xmm1,%xmm2,%xmm10\nvmovdqa %xmm10,80(%rsp)\nvpunpcklqdq %xmm1,%xmm2,%xmm1\nvpunpckhqdq %xmm3,%xmm4,%xmm2\nvmovdqa %xmm2,96(%rsp)\nvpunpcklqdq %xmm3,%xmm4,%xmm2\nvpunpckhqdq %xmm5,%xmm6,%xmm3\nvmovdqa %xmm3,112(%rsp)\nvpunpcklqdq %xmm5,%xmm6,%xmm3\nvpunpckhqdq %xmm7,%xmm8,%xmm4\nvmovdqa %xmm4,128(%rsp)\nvpunpcklqdq %xmm7,%xmm8,%xmm4\nvpunpckhqdq %xmm0,%xmm9,%xmm5\nvmovdqa %xmm5,144(%rsp)\nvpunpcklqdq %xmm0,%xmm9,%xmm0\nvmovdqa 464(%rsp),%xmm5\nvpaddq %xmm5,%xmm1,%xmm1\nvpunpcklqdq %xmm1,%xmm5,%xmm6\nvpunpckhqdq %xmm1,%xmm5,%xmm1\nvpmuludq 512(%rsp),%xmm6,%xmm5\nvpmuludq 480(%rsp),%xmm1,%xmm7\nvpaddq %xmm7,%xmm5,%xmm5\nvpmuludq 560(%rsp),%xmm6,%xmm7\nvpmuludq 528(%rsp),%xmm1,%xmm8\nvpaddq %xmm8,%xmm7,%xmm7\nvpmuludq 576(%rsp),%xmm6,%xmm8\nvpmuludq 560(%rsp),%xmm1,%xmm9\nvpaddq %xmm9,%xmm8,%xmm8\nvpmuludq 624(%rsp),%xmm6,%xmm9\nvpmuludq 592(%rsp),%xmm1,%xmm10\nvpaddq %xmm10,%xmm9,%xmm9\nvpmuludq 640(%rsp),%xmm6,%xmm10\nvpmuludq 624(%rsp),%xmm1,%xmm11\nvpaddq %xmm11,%xmm10,%xmm10\nvpmuludq 688(%rsp),%xmm6,%xmm11\nvpmuludq 656(%rsp),%xmm1,%xmm12\nvpaddq %xmm12,%xmm11,%xmm11\nvpmuludq 704(%rsp),%xmm6,%xmm12\nvpmuludq 688(%rsp),%xmm1,%xmm13\nvpaddq %xmm13,%xmm12,%xmm12\nvpmuludq 736(%rsp),%xmm6,%xmm13\nvpmuludq 720(%rsp),%xmm1,%xmm14\nvpaddq %xmm14,%xmm13,%xmm13\nvpmuludq 752(%rsp),%xmm6,%xmm14\nvpmuludq 736(%rsp),%xmm1,%xmm15\nvpaddq %xmm15,%xmm14,%xmm14\nvpmuludq 480(%rsp),%xmm6,%xmm6\nvpmuludq v19_19(%rip),%xmm1,%xmm1\nvpmuludq 768(%rsp),%xmm1,%xmm1\nvpaddq %xmm1,%xmm6,%xmm6\nvmovdqa 544(%rsp),%xmm1\nvpaddq %xmm1,%xmm2,%xmm2\nvpunpcklqdq %xmm2,%xmm1,%xmm15\nvpunpckhqdq %xmm2,%xmm1,%xmm1\nvpmuludq 480(%rsp),%xmm15,%xmm2\nvpaddq %xmm2,%xmm7,%xmm7\nvpmuludq 512(%rsp),%xmm15,%xmm2\nvpaddq %xmm2,%xmm8,%xmm8\nvpmuludq 560(%rsp),%xmm15,%xmm2\nvpaddq %xmm2,%xmm9,%xmm9\nvpmuludq 576(%rsp),%xmm15,%xmm2\nvpaddq %xmm2,%xmm10,%xmm10\nvpmuludq 624(%rsp),%xmm15,%xmm2\nvpaddq %xmm2,%xmm11,%xmm11\nvpmuludq 640(%rsp),%xmm15,%xmm2\nvpaddq %xmm2,%xmm12,%xmm12\nvpmuludq 688(%rsp),%xmm15,%xmm2\nvpaddq %xmm2,%xmm13,%xmm13\nvpmuludq 704(%rsp),%xmm15,%xmm2\nvpaddq %xmm2,%xmm14,%xmm14\nvpmuludq v19_19(%rip),%xmm15,%xmm15\nvpmuludq 736(%rsp),%xmm15,%xmm2\nvpaddq %xmm2,%xmm6,%xmm6\nvpmuludq 752(%rsp),%xmm15,%xmm15\nvpaddq %xmm15,%xmm5,%xmm5\nvpmuludq 480(%rsp),%xmm1,%xmm2\nvpaddq %xmm2,%xmm8,%xmm8\nvpmuludq 528(%rsp),%xmm1,%xmm2\nvpaddq %xmm2,%xmm9,%xmm9\nvpmuludq 560(%rsp),%xmm1,%xmm2\nvpaddq %xmm2,%xmm10,%xmm10\nvpmuludq 592(%rsp),%xmm1,%xmm2\nvpaddq %xmm2,%xmm11,%xmm11\nvpmuludq 624(%rsp),%xmm1,%xmm2\nvpaddq %xmm2,%xmm12,%xmm12\nvpmuludq 656(%rsp),%xmm1,%xmm2\nvpaddq %xmm2,%xmm13,%xmm13\nvpmuludq 688(%rsp),%xmm1,%xmm2\nvpaddq %xmm2,%xmm14,%xmm14\nvpmuludq v19_19(%rip),%xmm1,%xmm1\nvpmuludq 720(%rsp),%xmm1,%xmm2\nvpaddq %xmm2,%xmm6,%xmm6\nvpmuludq 736(%rsp),%xmm1,%xmm2\nvpaddq %xmm2,%xmm5,%xmm5\nvpmuludq 768(%rsp),%xmm1,%xmm1\nvpaddq %xmm1,%xmm7,%xmm7\nvmovdqa 608(%rsp),%xmm1\nvpaddq %xmm1,%xmm3,%xmm3\nvpunpcklqdq %xmm3,%xmm1,%xmm2\nvpunpckhqdq %xmm3,%xmm1,%xmm1\nvpmuludq 480(%rsp),%xmm2,%xmm3\nvpaddq %xmm3,%xmm9,%xmm9\nvpmuludq 512(%rsp),%xmm2,%xmm3\nvpaddq %xmm3,%xmm10,%xmm10\nvpmuludq 560(%rsp),%xmm2,%xmm3\nvpaddq %xmm3,%xmm11,%xmm11\nvpmuludq 576(%rsp),%xmm2,%xmm3\nvpaddq %xmm3,%xmm12,%xmm12\nvpmuludq 624(%rsp),%xmm2,%xmm3\nvpaddq %xmm3,%xmm13,%xmm13\nvpmuludq 640(%rsp),%xmm2,%xmm3\nvpaddq %xmm3,%xmm14,%xmm14\nvpmuludq v19_19(%rip),%xmm2,%xmm2\nvpmuludq 688(%rsp),%xmm2,%xmm3\nvpaddq %xmm3,%xmm6,%xmm6\nvpmuludq 704(%rsp),%xmm2,%xmm3\nvpaddq %xmm3,%xmm5,%xmm5\nvpmuludq 736(%rsp),%xmm2,%xmm3\nvpaddq %xmm3,%xmm7,%xmm7\nvpmuludq 752(%rsp),%xmm2,%xmm2\nvpaddq %xmm2,%xmm8,%xmm8\nvpmuludq 480(%rsp),%xmm1,%xmm2\nvpaddq %xmm2,%xmm10,%xmm10\nvpmuludq 528(%rsp),%xmm1,%xmm2\nvpaddq %xmm2,%xmm11,%xmm11\nvpmuludq 560(%rsp),%xmm1,%xmm2\nvpaddq %xmm2,%xmm12,%xmm12\nvpmuludq 592(%rsp),%xmm1,%xmm2\nvpaddq %xmm2,%xmm13,%xmm13\nvpmuludq 624(%rsp),%xmm1,%xmm2\nvpaddq %xmm2,%xmm14,%xmm14\nvpmuludq v19_19(%rip),%xmm1,%xmm1\nvpmuludq 656(%rsp),%xmm1,%xmm2\nvpaddq %xmm2,%xmm6,%xmm6\nvpmuludq 688(%rsp),%xmm1,%xmm2\nvpaddq %xmm2,%xmm5,%xmm5\nvpmuludq 720(%rsp),%xmm1,%xmm2\nvpaddq %xmm2,%xmm7,%xmm7\nvpmuludq 736(%rsp),%xmm1,%xmm2\nvpaddq %xmm2,%xmm8,%xmm8\nvpmuludq 768(%rsp),%xmm1,%xmm1\nvpaddq %xmm1,%xmm9,%xmm9\nvmovdqa 672(%rsp),%xmm1\nvpaddq %xmm1,%xmm4,%xmm4\nvpunpcklqdq %xmm4,%xmm1,%xmm2\nvpunpckhqdq %xmm4,%xmm1,%xmm1\nvpmuludq 480(%rsp),%xmm2,%xmm3\nvpaddq %xmm3,%xmm11,%xmm11\nvpmuludq 512(%rsp),%xmm2,%xmm3\nvpaddq %xmm3,%xmm12,%xmm12\nvpmuludq 560(%rsp),%xmm2,%xmm3\nvpaddq %xmm3,%xmm13,%xmm13\nvpmuludq 576(%rsp),%xmm2,%xmm3\nvpaddq %xmm3,%xmm14,%xmm14\nvpmuludq v19_19(%rip),%xmm2,%xmm2\nvpmuludq 624(%rsp),%xmm2,%xmm3\nvpaddq %xmm3,%xmm6,%xmm6\nvpmuludq 640(%rsp),%xmm2,%xmm3\nvpaddq %xmm3,%xmm5,%xmm5\nvpmuludq 688(%rsp),%xmm2,%xmm3\nvpaddq %xmm3,%xmm7,%xmm7\nvpmuludq 704(%rsp),%xmm2,%xmm3\nvpaddq %xmm3,%xmm8,%xmm8\nvpmuludq 736(%rsp),%xmm2,%xmm3\nvpaddq %xmm3,%xmm9,%xmm9\nvpmuludq 752(%rsp),%xmm2,%xmm2\nvpaddq %xmm2,%xmm10,%xmm10\nvpmuludq 480(%rsp),%xmm1,%xmm2\nvpaddq %xmm2,%xmm12,%xmm12\nvpmuludq 528(%rsp),%xmm1,%xmm2\nvpaddq %xmm2,%xmm13,%xmm13\nvpmuludq 560(%rsp),%xmm1,%xmm2\nvpaddq %xmm2,%xmm14,%xmm14\nvpmuludq v19_19(%rip),%xmm1,%xmm1\nvpmuludq 592(%rsp),%xmm1,%xmm2\nvpaddq %xmm2,%xmm6,%xmm6\nvpmuludq 624(%rsp),%xmm1,%xmm2\nvpaddq %xmm2,%xmm5,%xmm5\nvpmuludq 656(%rsp),%xmm1,%xmm2\nvpaddq %xmm2,%xmm7,%xmm7\nvpmuludq 688(%rsp),%xmm1,%xmm2\nvpaddq %xmm2,%xmm8,%xmm8\nvpmuludq 720(%rsp),%xmm1,%xmm2\nvpaddq %xmm2,%xmm9,%xmm9\nvpmuludq 736(%rsp),%xmm1,%xmm2\nvpaddq %xmm2,%xmm10,%xmm10\nvpmuludq 768(%rsp),%xmm1,%xmm1\nvpaddq %xmm1,%xmm11,%xmm11\nvmovdqa 448(%rsp),%xmm1\nvpaddq %xmm1,%xmm0,%xmm0\nvpunpcklqdq %xmm0,%xmm1,%xmm2\nvpunpckhqdq %xmm0,%xmm1,%xmm0\nvpmuludq 480(%rsp),%xmm2,%xmm1\nvpaddq %xmm1,%xmm13,%xmm13\nvpmuludq 512(%rsp),%xmm2,%xmm1\nvpaddq %xmm1,%xmm14,%xmm14\nvpmuludq v19_19(%rip),%xmm2,%xmm2\nvpmuludq 560(%rsp),%xmm2,%xmm1\nvpaddq %xmm1,%xmm6,%xmm6\nvpmuludq 576(%rsp),%xmm2,%xmm1\nvpaddq %xmm1,%xmm5,%xmm5\nvpmuludq 624(%rsp),%xmm2,%xmm1\nvpaddq %xmm1,%xmm7,%xmm7\nvpmuludq 640(%rsp),%xmm2,%xmm1\nvpaddq %xmm1,%xmm8,%xmm8\nvpmuludq 688(%rsp),%xmm2,%xmm1\nvpaddq %xmm1,%xmm9,%xmm9\nvpmuludq 704(%rsp),%xmm2,%xmm1\nvpaddq %xmm1,%xmm10,%xmm10\nvpmuludq 736(%rsp),%xmm2,%xmm1\nvpaddq %xmm1,%xmm11,%xmm11\nvpmuludq 752(%rsp),%xmm2,%xmm2\nvpaddq %xmm2,%xmm12,%xmm12\nvpmuludq 480(%rsp),%xmm0,%xmm1\nvpaddq %xmm1,%xmm14,%xmm14\nvpmuludq v19_19(%rip),%xmm0,%xmm0\nvpmuludq 528(%rsp),%xmm0,%xmm1\nvpaddq %xmm1,%xmm6,%xmm6\nvpmuludq 560(%rsp),%xmm0,%xmm1\nvpaddq %xmm1,%xmm5,%xmm5\nvpmuludq 592(%rsp),%xmm0,%xmm1\nvpaddq %xmm1,%xmm7,%xmm7\nvpmuludq 624(%rsp),%xmm0,%xmm1\nvpaddq %xmm1,%xmm8,%xmm8\nvpmuludq 656(%rsp),%xmm0,%xmm1\nvpaddq %xmm1,%xmm9,%xmm9\nvpmuludq 688(%rsp),%xmm0,%xmm1\nvpaddq %xmm1,%xmm10,%xmm10\nvpmuludq 720(%rsp),%xmm0,%xmm1\nvpaddq %xmm1,%xmm11,%xmm11\nvpmuludq 736(%rsp),%xmm0,%xmm1\nvpaddq %xmm1,%xmm12,%xmm12\nvpmuludq 768(%rsp),%xmm0,%xmm0\nvpaddq %xmm0,%xmm13,%xmm13\nvpsrlq $26,%xmm6,%xmm0\nvpaddq %xmm0,%xmm5,%xmm5\nvpand m26(%rip),%xmm6,%xmm6\nvpsrlq $25,%xmm10,%xmm0\nvpaddq %xmm0,%xmm11,%xmm11\nvpand m25(%rip),%xmm10,%xmm10\nvpsrlq $25,%xmm5,%xmm0\nvpaddq %xmm0,%xmm7,%xmm7\nvpand m25(%rip),%xmm5,%xmm5\nvpsrlq $26,%xmm11,%xmm0\nvpaddq %xmm0,%xmm12,%xmm12\nvpand m26(%rip),%xmm11,%xmm11\nvpsrlq $26,%xmm7,%xmm0\nvpaddq %xmm0,%xmm8,%xmm8\nvpand m26(%rip),%xmm7,%xmm7\nvpsrlq $25,%xmm12,%xmm0\nvpaddq %xmm0,%xmm13,%xmm13\nvpand m25(%rip),%xmm12,%xmm12\nvpsrlq $25,%xmm8,%xmm0\nvpaddq %xmm0,%xmm9,%xmm9\nvpand m25(%rip),%xmm8,%xmm8\nvpsrlq $26,%xmm13,%xmm0\nvpaddq %xmm0,%xmm14,%xmm14\nvpand m26(%rip),%xmm13,%xmm13\nvpsrlq $26,%xmm9,%xmm0\nvpaddq %xmm0,%xmm10,%xmm10\nvpand m26(%rip),%xmm9,%xmm9\nvpsrlq $25,%xmm14,%xmm0\nvpsllq $4,%xmm0,%xmm1\nvpaddq %xmm0,%xmm6,%xmm6\nvpsllq $1,%xmm0,%xmm0\nvpaddq %xmm0,%xmm1,%xmm1\nvpaddq %xmm1,%xmm6,%xmm6\nvpand m25(%rip),%xmm14,%xmm14\nvpsrlq $25,%xmm10,%xmm0\nvpaddq %xmm0,%xmm11,%xmm11\nvpand m25(%rip),%xmm10,%xmm10\nvpsrlq $26,%xmm6,%xmm0\nvpaddq %xmm0,%xmm5,%xmm5\nvpand m26(%rip),%xmm6,%xmm6\nvpunpckhqdq %xmm5,%xmm6,%xmm1\nvpunpcklqdq %xmm5,%xmm6,%xmm0\nvpunpckhqdq %xmm8,%xmm7,%xmm3\nvpunpcklqdq %xmm8,%xmm7,%xmm2\nvpunpckhqdq %xmm10,%xmm9,%xmm5\nvpunpcklqdq %xmm10,%xmm9,%xmm4\nvpunpckhqdq %xmm12,%xmm11,%xmm7\nvpunpcklqdq %xmm12,%xmm11,%xmm6\nvpunpckhqdq %xmm14,%xmm13,%xmm9\nvpunpcklqdq %xmm14,%xmm13,%xmm8\ncmp  $0,%rdx\njne ._ladder_loop\nvmovdqu %xmm1,160(%rdi)\nvmovdqu %xmm0,80(%rdi)\nvmovdqu %xmm3,176(%rdi)\nvmovdqu %xmm2,96(%rdi)\nvmovdqu %xmm5,192(%rdi)\nvmovdqu %xmm4,112(%rdi)\nvmovdqu %xmm7,208(%rdi)\nvmovdqu %xmm6,128(%rdi)\nvmovdqu %xmm9,224(%rdi)\nvmovdqu %xmm8,144(%rdi)\nmovq 1824(%rsp),%r11\nmovq 1832(%rsp),%r12\nmovq 1840(%rsp),%r13\nmovq 1848(%rsp),%r14\nadd %r11,%rsp\nret\n\n#endif\n"
  },
  {
    "path": "src/libsodium/crypto_scalarmult/curve25519/sandy2x/ladder.h",
    "content": "#ifndef ladder_H\n#define ladder_H\n\n#ifdef __cplusplus\nextern \"C\" {\n#endif\n\n#include \"fe.h\"\n#include \"ladder_namespace.h\"\n\nextern void ladder(fe *, const unsigned char *);\n\n#ifdef __cplusplus\n}\n#endif\n\n#endif /* ifndef ladder_H */\n\n"
  },
  {
    "path": "src/libsodium/crypto_scalarmult/curve25519/sandy2x/ladder_namespace.h",
    "content": "#ifndef ladder_namespace_H\n#define ladder_namespace_H\n\n#define  ladder  _sodium_scalarmult_curve25519_sandy2x_ladder\n#define _ladder __sodium_scalarmult_curve25519_sandy2x_ladder\n\n#endif /* ifndef ladder_namespace_H */\n\n"
  },
  {
    "path": "src/libsodium/crypto_scalarmult/curve25519/sandy2x/sandy2x.S",
    "content": "#ifdef HAVE_AVX_ASM\n\n#define IN_SANDY2X\n\n#include \"consts.S\"\n#include \"fe51_mul.S\"\n#include \"fe51_nsquare.S\"\n#include \"fe51_pack.S\"\n#include \"ladder.S\"\n\n#if defined(__linux__) && defined(__ELF__)\n.section .note.GNU-stack,\"\",%progbits\n#endif\n\n#endif\n"
  },
  {
    "path": "src/libsodium/crypto_scalarmult/curve25519/scalarmult_curve25519.c",
    "content": "\n#include \"crypto_scalarmult_curve25519.h\"\n#include \"private/implementations.h\"\n#include \"scalarmult_curve25519.h\"\n#include \"runtime.h\"\n\n#ifdef HAVE_AVX_ASM\n# include \"sandy2x/curve25519_sandy2x.h\"\n#endif\n#include \"ref10/x25519_ref10.h\"\nstatic const crypto_scalarmult_curve25519_implementation *implementation =\n    &crypto_scalarmult_curve25519_ref10_implementation;\n\nint\ncrypto_scalarmult_curve25519(unsigned char *q, const unsigned char *n,\n                             const unsigned char *p)\n{\n    size_t                 i;\n    volatile unsigned char d = 0;\n\n    if (implementation->mult(q, n, p) != 0) {\n        return -1; /* LCOV_EXCL_LINE */\n    }\n    for (i = 0; i < crypto_scalarmult_curve25519_BYTES; i++) {\n        d |= q[i];\n    }\n    return -(1 & ((d - 1) >> 8));\n}\n\nint\ncrypto_scalarmult_curve25519_base(unsigned char *q, const unsigned char *n)\n{\n    return crypto_scalarmult_curve25519_ref10_implementation\n        .mult_base(q, n);\n}\n\nsize_t\ncrypto_scalarmult_curve25519_bytes(void)\n{\n    return crypto_scalarmult_curve25519_BYTES;\n}\n\nsize_t\ncrypto_scalarmult_curve25519_scalarbytes(void)\n{\n    return crypto_scalarmult_curve25519_SCALARBYTES;\n}\n\nint\n_crypto_scalarmult_curve25519_pick_best_implementation(void)\n{\n    implementation = &crypto_scalarmult_curve25519_ref10_implementation;\n\n#ifdef HAVE_AVX_ASM\n    if (sodium_runtime_has_avx()) {\n        implementation = &crypto_scalarmult_curve25519_sandy2x_implementation;\n    }\n#endif\n    return 0;\n}\n"
  },
  {
    "path": "src/libsodium/crypto_scalarmult/curve25519/scalarmult_curve25519.h",
    "content": "\n#ifndef scalarmult_curve25519_H\n#define scalarmult_curve25519_H\n\ntypedef struct crypto_scalarmult_curve25519_implementation {\n    int (*mult)(unsigned char *q, const unsigned char *n,\n                const unsigned char *p);\n    int (*mult_base)(unsigned char *q, const unsigned char *n);\n} crypto_scalarmult_curve25519_implementation;\n\n#endif\n"
  },
  {
    "path": "src/libsodium/crypto_scalarmult/ed25519/ref10/scalarmult_ed25519_ref10.c",
    "content": "\n#include <string.h>\n\n#include \"crypto_scalarmult_ed25519.h\"\n#include \"private/ed25519_ref10.h\"\n#include \"utils.h\"\n\nstatic int\n_crypto_scalarmult_ed25519_is_inf(const unsigned char s[32])\n{\n    unsigned char c;\n    unsigned int  i;\n\n    c = s[0] ^ 0x01;\n    for (i = 1; i < 31; i++) {\n        c |= s[i];\n    }\n    c |= s[31] & 0x7f;\n\n    return ((((unsigned int) c) - 1U) >> 8) & 1;\n}\n\nstatic inline void\n_crypto_scalarmult_ed25519_clamp(unsigned char k[32])\n{\n    k[0] &= 248;\n    k[31] |= 64;\n}\n\nstatic int\n_crypto_scalarmult_ed25519(unsigned char *q, const unsigned char *n,\n                           const unsigned char *p, const int clamp)\n{\n    unsigned char *t = q;\n    ge25519_p3     Q;\n    ge25519_p3     P;\n    unsigned int   i;\n\n    if (ge25519_is_canonical(p) == 0 || ge25519_frombytes(&P, p) != 0 ||\n        ge25519_has_small_order(&P) != 0 || ge25519_is_on_main_subgroup(&P) == 0) {\n        return -1;\n    }\n    for (i = 0; i < 32; ++i) {\n        t[i] = n[i];\n    }\n    if (clamp != 0) {\n        _crypto_scalarmult_ed25519_clamp(t);\n    }\n    t[31] &= 127;\n\n    ge25519_scalarmult(&Q, t, &P);\n    ge25519_p3_tobytes(q, &Q);\n    if (_crypto_scalarmult_ed25519_is_inf(q) != 0 || sodium_is_zero(n, 32)) {\n        return -1;\n    }\n    return 0;\n}\n\nint\ncrypto_scalarmult_ed25519(unsigned char *q, const unsigned char *n,\n                          const unsigned char *p)\n{\n    return _crypto_scalarmult_ed25519(q, n, p, 1);\n}\n\nint\ncrypto_scalarmult_ed25519_noclamp(unsigned char *q, const unsigned char *n,\n                                  const unsigned char *p)\n{\n    return _crypto_scalarmult_ed25519(q, n, p, 0);\n}\n\nstatic int\n_crypto_scalarmult_ed25519_base(unsigned char *q,\n                                const unsigned char *n, const int clamp)\n{\n    unsigned char *t = q;\n    ge25519_p3     Q;\n    unsigned int   i;\n\n    for (i = 0; i < 32; ++i) {\n        t[i] = n[i];\n    }\n    if (clamp != 0) {\n        _crypto_scalarmult_ed25519_clamp(t);\n    }\n    t[31] &= 127;\n\n    ge25519_scalarmult_base(&Q, t);\n    ge25519_p3_tobytes(q, &Q);\n    if (_crypto_scalarmult_ed25519_is_inf(q) != 0 || sodium_is_zero(n, 32)) {\n        return -1;\n    }\n    return 0;\n}\n\nint\ncrypto_scalarmult_ed25519_base(unsigned char *q,\n                               const unsigned char *n)\n{\n    return _crypto_scalarmult_ed25519_base(q, n, 1);\n}\n\nint\ncrypto_scalarmult_ed25519_base_noclamp(unsigned char *q,\n                                       const unsigned char *n)\n{\n    return _crypto_scalarmult_ed25519_base(q, n, 0);\n}\n\nsize_t\ncrypto_scalarmult_ed25519_bytes(void)\n{\n    return crypto_scalarmult_ed25519_BYTES;\n}\n\nsize_t\ncrypto_scalarmult_ed25519_scalarbytes(void)\n{\n    return crypto_scalarmult_ed25519_SCALARBYTES;\n}\n"
  },
  {
    "path": "src/libsodium/crypto_scalarmult/ristretto255/ref10/scalarmult_ristretto255_ref10.c",
    "content": "\n#include <string.h>\n\n#include \"crypto_scalarmult_ed25519.h\"\n#include \"crypto_scalarmult_ristretto255.h\"\n#include \"private/ed25519_ref10.h\"\n#include \"utils.h\"\n\nint\ncrypto_scalarmult_ristretto255(unsigned char *q, const unsigned char *n,\n                               const unsigned char *p)\n{\n    unsigned char *t = q;\n    ge25519_p3     Q;\n    ge25519_p3     P;\n    unsigned int   i;\n\n    if (ristretto255_frombytes(&P, p) != 0) {\n        return -1;\n    }\n    for (i = 0; i < 32; ++i) {\n        t[i] = n[i];\n    }\n    t[31] &= 127;\n    ge25519_scalarmult(&Q, t, &P);\n    ristretto255_p3_tobytes(q, &Q);\n    if (sodium_is_zero(q, 32)) {\n        return -1;\n    }\n    return 0;\n}\n\nint\ncrypto_scalarmult_ristretto255_base(unsigned char *q,\n                                    const unsigned char *n)\n{\n    unsigned char *t = q;\n    ge25519_p3     Q;\n    unsigned int   i;\n\n    for (i = 0; i < 32; ++i) {\n        t[i] = n[i];\n    }\n    t[31] &= 127;\n    ge25519_scalarmult_base(&Q, t);\n    ristretto255_p3_tobytes(q, &Q);\n    if (sodium_is_zero(q, 32)) {\n        return -1;\n    }\n    return 0;\n}\n\nsize_t\ncrypto_scalarmult_ristretto255_bytes(void)\n{\n    return crypto_scalarmult_ristretto255_BYTES;\n}\n\nsize_t\ncrypto_scalarmult_ristretto255_scalarbytes(void)\n{\n    return crypto_scalarmult_ristretto255_SCALARBYTES;\n}\n"
  },
  {
    "path": "src/libsodium/crypto_secretbox/crypto_secretbox.c",
    "content": "\n#include \"crypto_secretbox.h\"\n#include \"randombytes.h\"\n\nsize_t\ncrypto_secretbox_keybytes(void)\n{\n    return crypto_secretbox_KEYBYTES;\n}\n\nsize_t\ncrypto_secretbox_noncebytes(void)\n{\n    return crypto_secretbox_NONCEBYTES;\n}\n\nsize_t\ncrypto_secretbox_zerobytes(void)\n{\n    return crypto_secretbox_ZEROBYTES;\n}\n\nsize_t\ncrypto_secretbox_boxzerobytes(void)\n{\n    return crypto_secretbox_BOXZEROBYTES;\n}\n\nsize_t\ncrypto_secretbox_macbytes(void)\n{\n    return crypto_secretbox_MACBYTES;\n}\n\nsize_t\ncrypto_secretbox_messagebytes_max(void)\n{\n    return crypto_secretbox_MESSAGEBYTES_MAX;\n}\n\nconst char *\ncrypto_secretbox_primitive(void)\n{\n    return crypto_secretbox_PRIMITIVE;\n}\n\nint\ncrypto_secretbox(unsigned char *c, const unsigned char *m,\n                 unsigned long long mlen, const unsigned char *n,\n                 const unsigned char *k)\n{\n    return crypto_secretbox_xsalsa20poly1305(c, m, mlen, n, k);\n}\n\nint\ncrypto_secretbox_open(unsigned char *m, const unsigned char *c,\n                      unsigned long long clen, const unsigned char *n,\n                      const unsigned char *k)\n{\n    return crypto_secretbox_xsalsa20poly1305_open(m, c, clen, n, k);\n}\n\nvoid\ncrypto_secretbox_keygen(unsigned char k[crypto_secretbox_KEYBYTES])\n{\n    randombytes_buf(k, crypto_secretbox_KEYBYTES);\n}\n"
  },
  {
    "path": "src/libsodium/crypto_secretbox/crypto_secretbox_easy.c",
    "content": "\n#include <assert.h>\n#include <limits.h>\n#include <stdint.h>\n#include <stdlib.h>\n#include <string.h>\n\n#include \"core.h\"\n#include \"crypto_core_hsalsa20.h\"\n#include \"crypto_onetimeauth_poly1305.h\"\n#include \"crypto_secretbox.h\"\n#include \"crypto_stream_salsa20.h\"\n#include \"private/common.h\"\n#include \"utils.h\"\n\nint\ncrypto_secretbox_detached(unsigned char *c, unsigned char *mac,\n                          const unsigned char *m,\n                          unsigned long long mlen, const unsigned char *n,\n                          const unsigned char *k)\n{\n    crypto_onetimeauth_poly1305_state state;\n    unsigned char                     block0[64U];\n    unsigned char                     subkey[crypto_stream_salsa20_KEYBYTES];\n    unsigned long long                i;\n    unsigned long long                mlen0;\n\n    crypto_core_hsalsa20(subkey, n, k, NULL);\n\n    /*\n     * Allow the m and c buffers to partially overlap, by calling\n     * memmove() if necessary.\n     *\n     * Note that there is no fully portable way to compare pointers.\n     * Some tools even report undefined behavior, despite the conversion.\n     * Nevertheless, this works on all supported platforms.\n     */\n    if (((uintptr_t) c > (uintptr_t) m &&\n         (uintptr_t) c - (uintptr_t) m < mlen) ||\n        ((uintptr_t) m > (uintptr_t) c &&\n         (uintptr_t) m - (uintptr_t) c < mlen)) { /* LCOV_EXCL_LINE */\n        memmove(c, m, mlen);\n        m = c;\n    }\n    memset(block0, 0U, crypto_secretbox_ZEROBYTES);\n    COMPILER_ASSERT(64U >= crypto_secretbox_ZEROBYTES);\n    mlen0 = mlen;\n    if (mlen0 > 64U - crypto_secretbox_ZEROBYTES) {\n        mlen0 = 64U - crypto_secretbox_ZEROBYTES;\n    }\n    for (i = 0U; i < mlen0; i++) {\n        block0[i + crypto_secretbox_ZEROBYTES] = m[i];\n    }\n    crypto_stream_salsa20_xor(block0, block0, 64U, n + 16, subkey);\n    COMPILER_ASSERT(crypto_secretbox_ZEROBYTES >=\n                    crypto_onetimeauth_poly1305_KEYBYTES);\n    crypto_onetimeauth_poly1305_init(&state, block0);\n\n    for (i = 0U; i < mlen0; i++) {\n        c[i] = block0[crypto_secretbox_ZEROBYTES + i];\n    }\n    sodium_memzero(block0, sizeof block0);\n    if (mlen > mlen0) {\n        crypto_stream_salsa20_xor_ic(c + mlen0, m + mlen0, mlen - mlen0,\n                                     n + 16, 1U, subkey);\n    }\n    sodium_memzero(subkey, sizeof subkey);\n\n    crypto_onetimeauth_poly1305_update(&state, c, mlen);\n    crypto_onetimeauth_poly1305_final(&state, mac);\n    sodium_memzero(&state, sizeof state);\n\n    return 0;\n}\n\nint\ncrypto_secretbox_easy(unsigned char *c, const unsigned char *m,\n                      unsigned long long mlen, const unsigned char *n,\n                      const unsigned char *k)\n{\n    if (mlen > crypto_secretbox_MESSAGEBYTES_MAX) {\n        sodium_misuse(); /* LCOV_EXCL_LINE */\n    }\n    return crypto_secretbox_detached(c + crypto_secretbox_MACBYTES,\n                                     c, m, mlen, n, k);\n}\n\nint\ncrypto_secretbox_open_detached(unsigned char *m, const unsigned char *c,\n                               const unsigned char *mac,\n                               unsigned long long clen,\n                               const unsigned char *n,\n                               const unsigned char *k)\n{\n    unsigned char      block0[64U];\n    unsigned char      subkey[crypto_stream_salsa20_KEYBYTES];\n    unsigned long long i;\n    unsigned long long mlen0;\n\n    crypto_core_hsalsa20(subkey, n, k, NULL);\n\n    memset(block0, 0U, crypto_secretbox_ZEROBYTES);\n    mlen0 = clen;\n    if (mlen0 > 64U - crypto_secretbox_ZEROBYTES) {\n        mlen0 = 64U - crypto_secretbox_ZEROBYTES;\n    }\n    for (i = 0U; i < mlen0; i++) {\n        block0[crypto_secretbox_ZEROBYTES + i] = c[i];\n    }\n    crypto_stream_salsa20_xor(block0, block0, 64, n + 16, subkey);\n    if (crypto_onetimeauth_poly1305_verify(mac, c, clen, block0) != 0) {\n        sodium_memzero(subkey, sizeof subkey);\n        return -1;\n    }\n    if (m == NULL) {\n        sodium_memzero(subkey, sizeof subkey);\n        return 0;\n    }\n    ACQUIRE_FENCE;\n\n    /*\n     * Allow the m and c buffers to partially overlap, by calling\n     * memmove() if necessary.\n     *\n     * Note that there is no fully portable way to compare pointers.\n     * Some tools even report undefined behavior, despite the conversion.\n     * Nevertheless, this works on all supported platforms.\n     */\n    if (((uintptr_t) c > (uintptr_t) m &&\n         (uintptr_t) c - (uintptr_t) m < clen) ||\n        ((uintptr_t) m > (uintptr_t) c &&\n         (uintptr_t) m - (uintptr_t) c < clen)) { /* LCOV_EXCL_LINE */\n        memmove(m, c, clen);\n        c = m;\n    }\n    for (i = 0U; i < mlen0; i++) {\n        m[i] = block0[crypto_secretbox_ZEROBYTES + i];\n    }\n    sodium_memzero(block0, sizeof block0);\n    if (clen > mlen0) {\n        crypto_stream_salsa20_xor_ic(m + mlen0, c + mlen0, clen - mlen0,\n                                     n + 16, 1U, subkey);\n    }\n    sodium_memzero(subkey, sizeof subkey);\n\n    return 0;\n}\n\nint\ncrypto_secretbox_open_easy(unsigned char *m, const unsigned char *c,\n                           unsigned long long clen, const unsigned char *n,\n                           const unsigned char *k)\n{\n    if (clen < crypto_secretbox_MACBYTES) {\n        return -1;\n    }\n    return crypto_secretbox_open_detached(m, c + crypto_secretbox_MACBYTES, c,\n                                          clen - crypto_secretbox_MACBYTES,\n                                          n, k);\n}\n"
  },
  {
    "path": "src/libsodium/crypto_secretbox/xchacha20poly1305/secretbox_xchacha20poly1305.c",
    "content": "\n#include <assert.h>\n#include <limits.h>\n#include <stdint.h>\n#include <stdlib.h>\n#include <string.h>\n\n#include \"core.h\"\n#include \"crypto_core_hchacha20.h\"\n#include \"crypto_onetimeauth_poly1305.h\"\n#include \"crypto_secretbox_xchacha20poly1305.h\"\n#include \"crypto_stream_chacha20.h\"\n#include \"private/common.h\"\n#include \"utils.h\"\n\n#define crypto_secretbox_xchacha20poly1305_ZEROBYTES 32U\n\nint\ncrypto_secretbox_xchacha20poly1305_detached(unsigned char *c,\n                                            unsigned char *mac,\n                                            const unsigned char *m,\n                                            unsigned long long mlen,\n                                            const unsigned char *n,\n                                            const unsigned char *k)\n{\n    crypto_onetimeauth_poly1305_state state;\n    unsigned char                     block0[64U];\n    unsigned char                     subkey[crypto_stream_chacha20_KEYBYTES];\n    unsigned long long                i;\n    unsigned long long                mlen0;\n\n    crypto_core_hchacha20(subkey, n, k, NULL);\n\n    /*\n     * Allow the m and c buffers to partially overlap, by calling\n     * memmove() if necessary.\n     *\n     * Note that there is no fully portable way to compare pointers.\n     * Some tools even report undefined behavior, despite the conversion.\n     * Nevertheless, this works on all supported platforms.\n     */\n    if (((uintptr_t) c > (uintptr_t) m &&\n         (uintptr_t) c - (uintptr_t) m < mlen) ||\n        ((uintptr_t) m > (uintptr_t) c &&\n         (uintptr_t) m - (uintptr_t) c < mlen)) { /* LCOV_EXCL_LINE */\n        memmove(c, m, mlen);\n        m = c;\n    }\n    memset(block0, 0U, crypto_secretbox_xchacha20poly1305_ZEROBYTES);\n    COMPILER_ASSERT(64U >= crypto_secretbox_xchacha20poly1305_ZEROBYTES);\n    mlen0 = mlen;\n    if (mlen0 > 64U - crypto_secretbox_xchacha20poly1305_ZEROBYTES) {\n        mlen0 = 64U - crypto_secretbox_xchacha20poly1305_ZEROBYTES;\n    }\n    for (i = 0U; i < mlen0; i++) {\n        block0[i + crypto_secretbox_xchacha20poly1305_ZEROBYTES] = m[i];\n    }\n    crypto_stream_chacha20_xor(block0, block0,\n                               mlen0 + crypto_secretbox_xchacha20poly1305_ZEROBYTES,\n                               n + 16, subkey);\n    COMPILER_ASSERT(crypto_secretbox_xchacha20poly1305_ZEROBYTES >=\n                    crypto_onetimeauth_poly1305_KEYBYTES);\n    crypto_onetimeauth_poly1305_init(&state, block0);\n\n    for (i = 0U; i < mlen0; i++) {\n        c[i] = block0[crypto_secretbox_xchacha20poly1305_ZEROBYTES + i];\n    }\n    sodium_memzero(block0, sizeof block0);\n    if (mlen > mlen0) {\n        crypto_stream_chacha20_xor_ic(c + mlen0, m + mlen0, mlen - mlen0,\n                                      n + 16, 1U, subkey);\n    }\n    sodium_memzero(subkey, sizeof subkey);\n\n    crypto_onetimeauth_poly1305_update(&state, c, mlen);\n    crypto_onetimeauth_poly1305_final(&state, mac);\n    sodium_memzero(&state, sizeof state);\n\n    return 0;\n}\n\nint\ncrypto_secretbox_xchacha20poly1305_easy(unsigned char *c,\n                                        const unsigned char *m,\n                                        unsigned long long mlen,\n                                        const unsigned char *n,\n                                        const unsigned char *k)\n{\n    if (mlen > crypto_secretbox_xchacha20poly1305_MESSAGEBYTES_MAX) {\n        sodium_misuse(); /* LCOV_EXCL_LINE */\n    }\n    return crypto_secretbox_xchacha20poly1305_detached\n        (c + crypto_secretbox_xchacha20poly1305_MACBYTES, c, m, mlen, n, k);\n}\n\nint\ncrypto_secretbox_xchacha20poly1305_open_detached(unsigned char *m,\n                                                 const unsigned char *c,\n                                                 const unsigned char *mac,\n                                                 unsigned long long clen,\n                                                 const unsigned char *n,\n                                                 const unsigned char *k)\n{\n    unsigned char      block0[64U];\n    unsigned char      subkey[crypto_stream_chacha20_KEYBYTES];\n    unsigned long long i;\n    unsigned long long mlen0;\n\n    crypto_core_hchacha20(subkey, n, k, NULL);\n\n    memset(block0, 0, crypto_secretbox_xchacha20poly1305_ZEROBYTES);\n    mlen0 = clen;\n    if (mlen0 > 64U - crypto_secretbox_xchacha20poly1305_ZEROBYTES) {\n        mlen0 = 64U - crypto_secretbox_xchacha20poly1305_ZEROBYTES;\n    }\n    for (i = 0U; i < mlen0; i++) {\n        block0[crypto_secretbox_xchacha20poly1305_ZEROBYTES + i] = c[i];\n    }\n    crypto_stream_chacha20_xor(block0, block0, 64, n + 16, subkey);\n    if (crypto_onetimeauth_poly1305_verify(mac, c, clen, block0) != 0) {\n        sodium_memzero(subkey, sizeof subkey);\n        return -1;\n    }\n    if (m == NULL) {\n        sodium_memzero(subkey, sizeof subkey);\n        return 0;\n    }\n    ACQUIRE_FENCE;\n\n    /*\n     * Allow the m and c buffers to partially overlap, by calling\n     * memmove() if necessary.\n     *\n     * Note that there is no fully portable way to compare pointers.\n     * Some tools even report undefined behavior, despite the conversion.\n     * Nevertheless, this works on all supported platforms.\n     */\n    if (((uintptr_t) c > (uintptr_t) m &&\n         (uintptr_t) c - (uintptr_t) m < clen) ||\n        ((uintptr_t) m > (uintptr_t) c &&\n         (uintptr_t) m - (uintptr_t) c < clen)) { /* LCOV_EXCL_LINE */\n        memmove(m, c, clen);\n        c = m;\n    }\n    for (i = 0U; i < mlen0; i++) {\n        m[i] = block0[crypto_secretbox_xchacha20poly1305_ZEROBYTES + i];\n    }\n    if (clen > mlen0) {\n        crypto_stream_chacha20_xor_ic(m + mlen0, c + mlen0, clen - mlen0,\n                                      n + 16, 1U, subkey);\n    }\n    sodium_memzero(subkey, sizeof subkey);\n\n    return 0;\n}\n\nint\ncrypto_secretbox_xchacha20poly1305_open_easy(unsigned char *m,\n                                             const unsigned char *c,\n                                             unsigned long long clen,\n                                             const unsigned char *n,\n                                             const unsigned char *k)\n{\n    if (clen < crypto_secretbox_xchacha20poly1305_MACBYTES) {\n        return -1;\n    }\n    return crypto_secretbox_xchacha20poly1305_open_detached\n        (m, c + crypto_secretbox_xchacha20poly1305_MACBYTES, c,\n         clen - crypto_secretbox_xchacha20poly1305_MACBYTES, n, k);\n}\n\nsize_t\ncrypto_secretbox_xchacha20poly1305_keybytes(void)\n{\n    return crypto_secretbox_xchacha20poly1305_KEYBYTES;\n}\n\nsize_t\ncrypto_secretbox_xchacha20poly1305_noncebytes(void)\n{\n    return crypto_secretbox_xchacha20poly1305_NONCEBYTES;\n}\n\nsize_t\ncrypto_secretbox_xchacha20poly1305_macbytes(void)\n{\n    return crypto_secretbox_xchacha20poly1305_MACBYTES;\n}\n\nsize_t\ncrypto_secretbox_xchacha20poly1305_messagebytes_max(void)\n{\n    return crypto_secretbox_xchacha20poly1305_MESSAGEBYTES_MAX;\n}\n"
  },
  {
    "path": "src/libsodium/crypto_secretbox/xsalsa20poly1305/secretbox_xsalsa20poly1305.c",
    "content": "#include \"crypto_onetimeauth_poly1305.h\"\n#include \"crypto_secretbox_xsalsa20poly1305.h\"\n#include \"crypto_stream_xsalsa20.h\"\n#include \"randombytes.h\"\n#include \"private/common.h\"\n\nint\ncrypto_secretbox_xsalsa20poly1305(unsigned char *c, const unsigned char *m,\n                                  unsigned long long mlen,\n                                  const unsigned char *n,\n                                  const unsigned char *k)\n{\n    int i;\n\n    if (mlen < 32) {\n        return -1;\n    }\n    crypto_stream_xsalsa20_xor(c, m, mlen, n, k);\n    crypto_onetimeauth_poly1305(c + 16, c + 32, mlen - 32, c);\n    for (i = 0; i < 16; ++i) {\n        c[i] = 0;\n    }\n    return 0;\n}\n\nint\ncrypto_secretbox_xsalsa20poly1305_open(unsigned char *m, const unsigned char *c,\n                                       unsigned long long clen,\n                                       const unsigned char *n,\n                                       const unsigned char *k)\n{\n    unsigned char subkey[32];\n    int           i;\n\n    if (clen < 32) {\n        return -1;\n    }\n    crypto_stream_xsalsa20(subkey, 32, n, k);\n    if (crypto_onetimeauth_poly1305_verify(c + 16, c + 32,\n                                           clen - 32, subkey) != 0) {\n        return -1;\n    }\n    ACQUIRE_FENCE;\n    crypto_stream_xsalsa20_xor(m, c, clen, n, k);\n    for (i = 0; i < 32; ++i) {\n        m[i] = 0;\n    }\n    return 0;\n}\n\nsize_t\ncrypto_secretbox_xsalsa20poly1305_keybytes(void)\n{\n    return crypto_secretbox_xsalsa20poly1305_KEYBYTES;\n}\n\nsize_t\ncrypto_secretbox_xsalsa20poly1305_noncebytes(void)\n{\n    return crypto_secretbox_xsalsa20poly1305_NONCEBYTES;\n}\n\nsize_t\ncrypto_secretbox_xsalsa20poly1305_zerobytes(void)\n{\n    return crypto_secretbox_xsalsa20poly1305_ZEROBYTES;\n}\n\nsize_t\ncrypto_secretbox_xsalsa20poly1305_boxzerobytes(void)\n{\n    return crypto_secretbox_xsalsa20poly1305_BOXZEROBYTES;\n}\n\nsize_t\ncrypto_secretbox_xsalsa20poly1305_macbytes(void)\n{\n    return crypto_secretbox_xsalsa20poly1305_MACBYTES;\n}\n\nsize_t\ncrypto_secretbox_xsalsa20poly1305_messagebytes_max(void)\n{\n    return crypto_secretbox_xsalsa20poly1305_MESSAGEBYTES_MAX;\n}\n\nvoid\ncrypto_secretbox_xsalsa20poly1305_keygen(unsigned char k[crypto_secretbox_xsalsa20poly1305_KEYBYTES])\n{\n    randombytes_buf(k, crypto_secretbox_xsalsa20poly1305_KEYBYTES);\n}\n"
  },
  {
    "path": "src/libsodium/crypto_secretstream/xchacha20poly1305/secretstream_xchacha20poly1305.c",
    "content": "#include <stdint.h>\n#include <stdlib.h>\n#include <limits.h>\n#include <string.h>\n\n#include \"core.h\"\n#include \"crypto_aead_chacha20poly1305.h\"\n#include \"crypto_aead_xchacha20poly1305.h\"\n#include \"crypto_core_hchacha20.h\"\n#include \"crypto_onetimeauth_poly1305.h\"\n#include \"crypto_secretstream_xchacha20poly1305.h\"\n#include \"randombytes.h\"\n#include \"utils.h\"\n\n#include \"private/common.h\"\n\n#define crypto_secretstream_xchacha20poly1305_COUNTERBYTES  4U\n#define crypto_secretstream_xchacha20poly1305_INONCEBYTES   8U\n\n#define STATE_COUNTER(STATE) ((STATE)->nonce)\n#define STATE_INONCE(STATE)  ((STATE)->nonce + \\\n                              crypto_secretstream_xchacha20poly1305_COUNTERBYTES)\n\nstatic const unsigned char _pad0[16] = { 0 };\n\nstatic inline void\n_crypto_secretstream_xchacha20poly1305_counter_reset\n    (crypto_secretstream_xchacha20poly1305_state *state)\n{\n    memset(STATE_COUNTER(state), 0,\n           crypto_secretstream_xchacha20poly1305_COUNTERBYTES);\n    STATE_COUNTER(state)[0] = 1;\n}\n\nvoid\ncrypto_secretstream_xchacha20poly1305_keygen\n   (unsigned char k[crypto_secretstream_xchacha20poly1305_KEYBYTES])\n{\n    randombytes_buf(k, crypto_secretstream_xchacha20poly1305_KEYBYTES);\n}\n\nint\ncrypto_secretstream_xchacha20poly1305_init_push\n   (crypto_secretstream_xchacha20poly1305_state *state,\n    unsigned char out[crypto_secretstream_xchacha20poly1305_HEADERBYTES],\n    const unsigned char k[crypto_secretstream_xchacha20poly1305_KEYBYTES])\n{\n    COMPILER_ASSERT(crypto_secretstream_xchacha20poly1305_HEADERBYTES ==\n                    crypto_core_hchacha20_INPUTBYTES +\n                    crypto_secretstream_xchacha20poly1305_INONCEBYTES);\n    COMPILER_ASSERT(crypto_secretstream_xchacha20poly1305_HEADERBYTES ==\n                    crypto_aead_xchacha20poly1305_ietf_NPUBBYTES);\n    COMPILER_ASSERT(sizeof state->nonce ==\n                    crypto_secretstream_xchacha20poly1305_INONCEBYTES +\n                    crypto_secretstream_xchacha20poly1305_COUNTERBYTES);\n\n    randombytes_buf(out, crypto_secretstream_xchacha20poly1305_HEADERBYTES);\n    crypto_core_hchacha20(state->k, out, k, NULL);\n    _crypto_secretstream_xchacha20poly1305_counter_reset(state);\n    memcpy(STATE_INONCE(state), out + crypto_core_hchacha20_INPUTBYTES,\n           crypto_secretstream_xchacha20poly1305_INONCEBYTES);\n    memset(state->_pad, 0, sizeof state->_pad);\n\n    return 0;\n}\n\nint\ncrypto_secretstream_xchacha20poly1305_init_pull\n   (crypto_secretstream_xchacha20poly1305_state *state,\n    const unsigned char in[crypto_secretstream_xchacha20poly1305_HEADERBYTES],\n    const unsigned char k[crypto_secretstream_xchacha20poly1305_KEYBYTES])\n{\n    crypto_core_hchacha20(state->k, in, k, NULL);\n    _crypto_secretstream_xchacha20poly1305_counter_reset(state);\n    memcpy(STATE_INONCE(state), in + crypto_core_hchacha20_INPUTBYTES,\n           crypto_secretstream_xchacha20poly1305_INONCEBYTES);\n    memset(state->_pad, 0, sizeof state->_pad);\n\n    return 0;\n}\n\nvoid\ncrypto_secretstream_xchacha20poly1305_rekey\n    (crypto_secretstream_xchacha20poly1305_state *state)\n{\n    unsigned char new_key_and_inonce[crypto_stream_chacha20_ietf_KEYBYTES +\n                                     crypto_secretstream_xchacha20poly1305_INONCEBYTES];\n    size_t        i;\n\n    for (i = 0U; i < crypto_stream_chacha20_ietf_KEYBYTES; i++) {\n        new_key_and_inonce[i] = state->k[i];\n    }\n    for (i = 0U; i < crypto_secretstream_xchacha20poly1305_INONCEBYTES; i++) {\n        new_key_and_inonce[crypto_stream_chacha20_ietf_KEYBYTES + i] =\n            STATE_INONCE(state)[i];\n    }\n    crypto_stream_chacha20_ietf_xor(new_key_and_inonce, new_key_and_inonce,\n                                    sizeof new_key_and_inonce,\n                                    state->nonce, state->k);\n    for (i = 0U; i < crypto_stream_chacha20_ietf_KEYBYTES; i++) {\n        state->k[i] = new_key_and_inonce[i];\n    }\n    for (i = 0U; i < crypto_secretstream_xchacha20poly1305_INONCEBYTES; i++) {\n        STATE_INONCE(state)[i] =\n            new_key_and_inonce[crypto_stream_chacha20_ietf_KEYBYTES + i];\n    }\n    _crypto_secretstream_xchacha20poly1305_counter_reset(state);\n}\n\nint\ncrypto_secretstream_xchacha20poly1305_push\n   (crypto_secretstream_xchacha20poly1305_state *state,\n    unsigned char *out, unsigned long long *outlen_p,\n    const unsigned char *m, unsigned long long mlen,\n    const unsigned char *ad, unsigned long long adlen, unsigned char tag)\n{\n    crypto_onetimeauth_poly1305_state poly1305_state;\n    unsigned char                     block[64U];\n    unsigned char                     slen[8U];\n    unsigned char                    *c;\n    unsigned char                    *mac;\n\n    if (outlen_p != NULL) {\n        *outlen_p = 0U;\n    }\n    COMPILER_ASSERT(crypto_secretstream_xchacha20poly1305_MESSAGEBYTES_MAX\n                    <= crypto_aead_chacha20poly1305_ietf_MESSAGEBYTES_MAX);\n    if (mlen > crypto_secretstream_xchacha20poly1305_MESSAGEBYTES_MAX) {\n        sodium_misuse(); /* LCOV_EXCL_LINE */\n    }\n    crypto_stream_chacha20_ietf(block, sizeof block, state->nonce, state->k);\n    crypto_onetimeauth_poly1305_init(&poly1305_state, block);\n    sodium_memzero(block, sizeof block);\n\n    crypto_onetimeauth_poly1305_update(&poly1305_state, ad, adlen);\n    crypto_onetimeauth_poly1305_update(&poly1305_state, _pad0,\n                                       (0x10 - adlen) & 0xf);\n    memset(block, 0, sizeof block);\n    block[0] = tag;\n\n    crypto_stream_chacha20_ietf_xor_ic(block, block, sizeof block,\n                                       state->nonce, 1U, state->k);\n    crypto_onetimeauth_poly1305_update(&poly1305_state, block, sizeof block);\n    out[0] = block[0];\n\n    c = out + (sizeof tag);\n    crypto_stream_chacha20_ietf_xor_ic(c, m, mlen, state->nonce, 2U, state->k);\n    crypto_onetimeauth_poly1305_update(&poly1305_state, c, mlen);\n    crypto_onetimeauth_poly1305_update\n        (&poly1305_state, _pad0, (0x10 - (sizeof block) + mlen) & 0xf);\n    /* should have been (0x10 - (sizeof block + mlen)) & 0xf to keep input blocks aligned */\n\n    STORE64_LE(slen, (uint64_t) adlen);\n    crypto_onetimeauth_poly1305_update(&poly1305_state, slen, sizeof slen);\n    STORE64_LE(slen, (sizeof block) + mlen);\n    crypto_onetimeauth_poly1305_update(&poly1305_state, slen, sizeof slen);\n\n    mac = c + mlen;\n    crypto_onetimeauth_poly1305_final(&poly1305_state, mac);\n    sodium_memzero(&poly1305_state, sizeof poly1305_state);\n\n    COMPILER_ASSERT(crypto_onetimeauth_poly1305_BYTES >=\n                    crypto_secretstream_xchacha20poly1305_INONCEBYTES);\n    XOR_BUF(STATE_INONCE(state), mac,\n            crypto_secretstream_xchacha20poly1305_INONCEBYTES);\n    sodium_increment(STATE_COUNTER(state),\n                     crypto_secretstream_xchacha20poly1305_COUNTERBYTES);\n    if ((tag & crypto_secretstream_xchacha20poly1305_TAG_REKEY) != 0 ||\n        sodium_is_zero(STATE_COUNTER(state),\n                       crypto_secretstream_xchacha20poly1305_COUNTERBYTES)) {\n        crypto_secretstream_xchacha20poly1305_rekey(state);\n    }\n    if (outlen_p != NULL) {\n        *outlen_p = crypto_secretstream_xchacha20poly1305_ABYTES + mlen;\n    }\n    return 0;\n}\n\nint\ncrypto_secretstream_xchacha20poly1305_pull\n   (crypto_secretstream_xchacha20poly1305_state *state,\n    unsigned char *m, unsigned long long *mlen_p, unsigned char *tag_p,\n    const unsigned char *in, unsigned long long inlen,\n    const unsigned char *ad, unsigned long long adlen)\n{\n    crypto_onetimeauth_poly1305_state poly1305_state;\n    unsigned char                     block[64U];\n    unsigned char                     slen[8U];\n    unsigned char                     mac[crypto_onetimeauth_poly1305_BYTES];\n    const unsigned char              *c;\n    const unsigned char              *stored_mac;\n    unsigned long long                mlen;\n    unsigned char                     tag;\n\n    if (mlen_p != NULL) {\n        *mlen_p = 0U;\n    }\n    if (tag_p != NULL) {\n        *tag_p = 0xff;\n    }\n    if (inlen < crypto_secretstream_xchacha20poly1305_ABYTES) {\n        return -1;\n    }\n    mlen = inlen - crypto_secretstream_xchacha20poly1305_ABYTES;\n    if (mlen > crypto_secretstream_xchacha20poly1305_MESSAGEBYTES_MAX) {\n        sodium_misuse(); /* LCOV_EXCL_LINE */\n    }\n    crypto_stream_chacha20_ietf(block, sizeof block, state->nonce, state->k);\n    crypto_onetimeauth_poly1305_init(&poly1305_state, block);\n    sodium_memzero(block, sizeof block);\n\n    crypto_onetimeauth_poly1305_update(&poly1305_state, ad, adlen);\n    crypto_onetimeauth_poly1305_update(&poly1305_state, _pad0,\n                                       (0x10 - adlen) & 0xf);\n\n    memset(block, 0, sizeof block);\n    block[0] = in[0];\n    crypto_stream_chacha20_ietf_xor_ic(block, block, sizeof block,\n                                       state->nonce, 1U, state->k);\n    tag = block[0];\n    block[0] = in[0];\n    crypto_onetimeauth_poly1305_update(&poly1305_state, block, sizeof block);\n\n    c = in + (sizeof tag);\n    crypto_onetimeauth_poly1305_update(&poly1305_state, c, mlen);\n    crypto_onetimeauth_poly1305_update\n        (&poly1305_state, _pad0, (0x10 - (sizeof block) + mlen) & 0xf);\n    /* should have been (0x10 - (sizeof block + mlen)) & 0xf to keep input blocks aligned */\n\n    STORE64_LE(slen, (uint64_t) adlen);\n    crypto_onetimeauth_poly1305_update(&poly1305_state, slen, sizeof slen);\n    STORE64_LE(slen, (sizeof block) + mlen);\n    crypto_onetimeauth_poly1305_update(&poly1305_state, slen, sizeof slen);\n\n    crypto_onetimeauth_poly1305_final(&poly1305_state, mac);\n    sodium_memzero(&poly1305_state, sizeof poly1305_state);\n\n    stored_mac = c + mlen;\n    if (sodium_memcmp(mac, stored_mac, sizeof mac) != 0) {\n        sodium_memzero(mac, sizeof mac);\n        return -1;\n    }\n\n    ACQUIRE_FENCE;\n    crypto_stream_chacha20_ietf_xor_ic(m, c, mlen, state->nonce, 2U, state->k);\n    XOR_BUF(STATE_INONCE(state), mac,\n            crypto_secretstream_xchacha20poly1305_INONCEBYTES);\n    sodium_increment(STATE_COUNTER(state),\n                     crypto_secretstream_xchacha20poly1305_COUNTERBYTES);\n    if ((tag & crypto_secretstream_xchacha20poly1305_TAG_REKEY) != 0 ||\n        sodium_is_zero(STATE_COUNTER(state),\n                       crypto_secretstream_xchacha20poly1305_COUNTERBYTES)) {\n        crypto_secretstream_xchacha20poly1305_rekey(state);\n    }\n    if (mlen_p != NULL) {\n        *mlen_p = mlen;\n    }\n    if (tag_p != NULL) {\n        *tag_p = tag;\n    }\n    return 0;\n}\n\nsize_t\ncrypto_secretstream_xchacha20poly1305_statebytes(void)\n{\n    return sizeof(crypto_secretstream_xchacha20poly1305_state);\n}\n\nsize_t\ncrypto_secretstream_xchacha20poly1305_abytes(void)\n{\n    return crypto_secretstream_xchacha20poly1305_ABYTES;\n}\n\nsize_t\ncrypto_secretstream_xchacha20poly1305_headerbytes(void)\n{\n    return crypto_secretstream_xchacha20poly1305_HEADERBYTES;\n}\n\nsize_t\ncrypto_secretstream_xchacha20poly1305_keybytes(void)\n{\n    return crypto_secretstream_xchacha20poly1305_KEYBYTES;\n}\n\nsize_t\ncrypto_secretstream_xchacha20poly1305_messagebytes_max(void)\n{\n    return crypto_secretstream_xchacha20poly1305_MESSAGEBYTES_MAX;\n}\n\nunsigned char\ncrypto_secretstream_xchacha20poly1305_tag_message(void)\n{\n    return crypto_secretstream_xchacha20poly1305_TAG_MESSAGE;\n}\n\nunsigned char\ncrypto_secretstream_xchacha20poly1305_tag_push(void)\n{\n    return crypto_secretstream_xchacha20poly1305_TAG_PUSH;\n}\n\nunsigned char\ncrypto_secretstream_xchacha20poly1305_tag_rekey(void)\n{\n    return crypto_secretstream_xchacha20poly1305_TAG_REKEY;\n}\n\nunsigned char\ncrypto_secretstream_xchacha20poly1305_tag_final(void)\n{\n    return crypto_secretstream_xchacha20poly1305_TAG_FINAL;\n}\n"
  },
  {
    "path": "src/libsodium/crypto_shorthash/crypto_shorthash.c",
    "content": "\n#include \"crypto_shorthash.h\"\n#include \"randombytes.h\"\n\nsize_t\ncrypto_shorthash_bytes(void)\n{\n    return crypto_shorthash_BYTES;\n}\n\nsize_t\ncrypto_shorthash_keybytes(void)\n{\n    return crypto_shorthash_KEYBYTES;\n}\n\nconst char *\ncrypto_shorthash_primitive(void)\n{\n    return crypto_shorthash_PRIMITIVE;\n}\n\nint\ncrypto_shorthash(unsigned char *out, const unsigned char *in,\n                 unsigned long long inlen, const unsigned char *k)\n{\n    return crypto_shorthash_siphash24(out, in, inlen, k);\n}\n\nvoid\ncrypto_shorthash_keygen(unsigned char k[crypto_shorthash_KEYBYTES])\n{\n    randombytes_buf(k, crypto_shorthash_KEYBYTES);\n}\n"
  },
  {
    "path": "src/libsodium/crypto_shorthash/siphash24/ref/shorthash_siphash24_ref.c",
    "content": "#include \"crypto_shorthash_siphash24.h\"\n#include \"private/common.h\"\n#include \"shorthash_siphash_ref.h\"\n\nint\ncrypto_shorthash_siphash24(unsigned char *out, const unsigned char *in,\n                           unsigned long long inlen, const unsigned char *k)\n{\n    /* \"somepseudorandomlygeneratedbytes\" */\n    uint64_t       v0 = 0x736f6d6570736575ULL;\n    uint64_t       v1 = 0x646f72616e646f6dULL;\n    uint64_t       v2 = 0x6c7967656e657261ULL;\n    uint64_t       v3 = 0x7465646279746573ULL;\n    uint64_t       b;\n    uint64_t       k0 = LOAD64_LE(k);\n    uint64_t       k1 = LOAD64_LE(k + 8);\n    uint64_t       m;\n    const uint8_t *end  = in + inlen - (inlen % sizeof(uint64_t));\n    const int      left = inlen & 7;\n\n    b = ((uint64_t) inlen) << 56;\n    v3 ^= k1;\n    v2 ^= k0;\n    v1 ^= k1;\n    v0 ^= k0;\n    for (; in != end; in += 8) {\n        m = LOAD64_LE(in);\n        v3 ^= m;\n        SIPROUND;\n        SIPROUND;\n        v0 ^= m;\n    }\n    switch (left) {\n    case 7:\n        b |= ((uint64_t) in[6]) << 48;\n        /* FALLTHRU */\n    case 6:\n        b |= ((uint64_t) in[5]) << 40;\n        /* FALLTHRU */\n    case 5:\n        b |= ((uint64_t) in[4]) << 32;\n        /* FALLTHRU */\n    case 4:\n        b |= ((uint64_t) in[3]) << 24;\n        /* FALLTHRU */\n    case 3:\n        b |= ((uint64_t) in[2]) << 16;\n        /* FALLTHRU */\n    case 2:\n        b |= ((uint64_t) in[1]) << 8;\n        /* FALLTHRU */\n    case 1:\n        b |= ((uint64_t) in[0]);\n        break;\n    case 0:\n        break;\n    }\n    v3 ^= b;\n    SIPROUND;\n    SIPROUND;\n    v0 ^= b;\n    v2 ^= 0xff;\n    SIPROUND;\n    SIPROUND;\n    SIPROUND;\n    SIPROUND;\n    b = v0 ^ v1 ^ v2 ^ v3;\n    STORE64_LE(out, b);\n\n    return 0;\n}\n"
  },
  {
    "path": "src/libsodium/crypto_shorthash/siphash24/ref/shorthash_siphash_ref.h",
    "content": "#ifndef shorthash_siphash_H\n#define shorthash_siphash_H\n\n#include \"private/common.h\"\n\n#define SIPROUND             \\\n    do {                     \\\n        v0 += v1;            \\\n        v1 = ROTL64(v1, 13); \\\n        v1 ^= v0;            \\\n        v0 = ROTL64(v0, 32); \\\n        v2 += v3;            \\\n        v3 = ROTL64(v3, 16); \\\n        v3 ^= v2;            \\\n        v0 += v3;            \\\n        v3 = ROTL64(v3, 21); \\\n        v3 ^= v0;            \\\n        v2 += v1;            \\\n        v1 = ROTL64(v1, 17); \\\n        v1 ^= v2;            \\\n        v2 = ROTL64(v2, 32); \\\n    } while (0)\n\n#endif\n"
  },
  {
    "path": "src/libsodium/crypto_shorthash/siphash24/ref/shorthash_siphashx24_ref.c",
    "content": "#include \"crypto_shorthash_siphash24.h\"\n#include \"private/common.h\"\n#include \"shorthash_siphash_ref.h\"\n\nint\ncrypto_shorthash_siphashx24(unsigned char *out, const unsigned char *in,\n                            unsigned long long inlen, const unsigned char *k)\n{\n    uint64_t       v0 = 0x736f6d6570736575ULL;\n    uint64_t       v1 = 0x646f72616e646f83ULL;\n    uint64_t       v2 = 0x6c7967656e657261ULL;\n    uint64_t       v3 = 0x7465646279746573ULL;\n    uint64_t       b;\n    uint64_t       k0 = LOAD64_LE(k);\n    uint64_t       k1 = LOAD64_LE(k + 8);\n    uint64_t       m;\n    const uint8_t *end  = in + inlen - (inlen % sizeof(uint64_t));\n    const int      left = inlen & 7;\n\n    b = ((uint64_t) inlen) << 56;\n    v3 ^= k1;\n    v2 ^= k0;\n    v1 ^= k1;\n    v0 ^= k0;\n    for (; in != end; in += 8) {\n        m = LOAD64_LE(in);\n        v3 ^= m;\n        SIPROUND;\n        SIPROUND;\n        v0 ^= m;\n    }\n    switch (left) {\n    case 7:\n        b |= ((uint64_t) in[6]) << 48;\n        /* FALLTHRU */\n    case 6:\n        b |= ((uint64_t) in[5]) << 40;\n        /* FALLTHRU */\n    case 5:\n        b |= ((uint64_t) in[4]) << 32;\n        /* FALLTHRU */\n    case 4:\n        b |= ((uint64_t) in[3]) << 24;\n        /* FALLTHRU */\n    case 3:\n        b |= ((uint64_t) in[2]) << 16;\n        /* FALLTHRU */\n    case 2:\n        b |= ((uint64_t) in[1]) << 8;\n        /* FALLTHRU */\n    case 1:\n        b |= ((uint64_t) in[0]);\n        break;\n    case 0:\n        break;\n    }\n    v3 ^= b;\n    SIPROUND;\n    SIPROUND;\n    v0 ^= b;\n    v2 ^= 0xee;\n    SIPROUND;\n    SIPROUND;\n    SIPROUND;\n    SIPROUND;\n    b = v0 ^ v1 ^ v2 ^ v3;\n    STORE64_LE(out, b);\n    v1 ^= 0xdd;\n    SIPROUND;\n    SIPROUND;\n    SIPROUND;\n    SIPROUND;\n    b = v0 ^ v1 ^ v2 ^ v3;\n    STORE64_LE(out + 8, b);\n\n    return 0;\n}\n"
  },
  {
    "path": "src/libsodium/crypto_shorthash/siphash24/shorthash_siphash24.c",
    "content": "#include \"crypto_shorthash_siphash24.h\"\n\nsize_t\ncrypto_shorthash_siphash24_bytes(void) {\n    return crypto_shorthash_siphash24_BYTES;\n}\n\nsize_t\ncrypto_shorthash_siphash24_keybytes(void) {\n    return crypto_shorthash_siphash24_KEYBYTES;\n}\n"
  },
  {
    "path": "src/libsodium/crypto_shorthash/siphash24/shorthash_siphashx24.c",
    "content": "#include \"crypto_shorthash_siphash24.h\"\n\nsize_t\ncrypto_shorthash_siphashx24_bytes(void) {\n    return crypto_shorthash_siphashx24_BYTES;\n}\n\nsize_t\ncrypto_shorthash_siphashx24_keybytes(void) {\n    return crypto_shorthash_siphashx24_KEYBYTES;\n}\n"
  },
  {
    "path": "src/libsodium/crypto_sign/crypto_sign.c",
    "content": "\n#include \"crypto_sign.h\"\n\nsize_t\ncrypto_sign_statebytes(void)\n{\n    return sizeof(crypto_sign_state);\n}\n\nsize_t\ncrypto_sign_bytes(void)\n{\n    return crypto_sign_BYTES;\n}\n\nsize_t\ncrypto_sign_seedbytes(void)\n{\n    return crypto_sign_SEEDBYTES;\n}\n\nsize_t\ncrypto_sign_publickeybytes(void)\n{\n    return crypto_sign_PUBLICKEYBYTES;\n}\n\nsize_t\ncrypto_sign_secretkeybytes(void)\n{\n    return crypto_sign_SECRETKEYBYTES;\n}\n\nsize_t\ncrypto_sign_messagebytes_max(void)\n{\n    return crypto_sign_MESSAGEBYTES_MAX;\n}\n\nconst char *\ncrypto_sign_primitive(void)\n{\n    return crypto_sign_PRIMITIVE;\n}\n\nint\ncrypto_sign_seed_keypair(unsigned char *pk, unsigned char *sk,\n                         const unsigned char *seed)\n{\n    return crypto_sign_ed25519_seed_keypair(pk, sk, seed);\n}\n\nint\ncrypto_sign_keypair(unsigned char *pk, unsigned char *sk)\n{\n    return crypto_sign_ed25519_keypair(pk, sk);\n}\n\nint\ncrypto_sign(unsigned char *sm, unsigned long long *smlen_p,\n            const unsigned char *m, unsigned long long mlen,\n            const unsigned char *sk)\n{\n    return crypto_sign_ed25519(sm, smlen_p, m, mlen, sk);\n}\n\nint\ncrypto_sign_open(unsigned char *m, unsigned long long *mlen_p,\n                 const unsigned char *sm, unsigned long long smlen,\n                 const unsigned char *pk)\n{\n    return crypto_sign_ed25519_open(m, mlen_p, sm, smlen, pk);\n}\n\nint\ncrypto_sign_detached(unsigned char *sig, unsigned long long *siglen_p,\n                     const unsigned char *m, unsigned long long mlen,\n                     const unsigned char *sk)\n{\n    return crypto_sign_ed25519_detached(sig, siglen_p, m, mlen, sk);\n}\n\nint\ncrypto_sign_verify_detached(const unsigned char *sig, const unsigned char *m,\n                            unsigned long long mlen, const unsigned char *pk)\n{\n    return crypto_sign_ed25519_verify_detached(sig, m, mlen, pk);\n}\n\nint\ncrypto_sign_init(crypto_sign_state *state)\n{\n    return crypto_sign_ed25519ph_init(state);\n}\n\nint\ncrypto_sign_update(crypto_sign_state *state, const unsigned char *m,\n                   unsigned long long mlen)\n{\n    return crypto_sign_ed25519ph_update(state, m, mlen);\n}\n\nint\ncrypto_sign_final_create(crypto_sign_state *state, unsigned char *sig,\n                         unsigned long long *siglen_p, const unsigned char *sk)\n{\n    return crypto_sign_ed25519ph_final_create(state, sig, siglen_p, sk);\n}\n\nint\ncrypto_sign_final_verify(crypto_sign_state *state, const unsigned char *sig,\n                         const unsigned char *pk)\n{\n    return crypto_sign_ed25519ph_final_verify(state, sig, pk);\n}\n"
  },
  {
    "path": "src/libsodium/crypto_sign/ed25519/ref10/keypair.c",
    "content": "\n#include <string.h>\n\n#include \"crypto_hash_sha512.h\"\n#include \"crypto_scalarmult_curve25519.h\"\n#include \"crypto_sign_ed25519.h\"\n#include \"sign_ed25519_ref10.h\"\n#include \"private/ed25519_ref10.h\"\n#include \"randombytes.h\"\n#include \"utils.h\"\n\nint\ncrypto_sign_ed25519_seed_keypair(unsigned char *pk, unsigned char *sk,\n                                 const unsigned char *seed)\n{\n    ge25519_p3 A;\n\n    crypto_hash_sha512(sk, seed, 32);\n    sk[0] &= 248;\n    sk[31] &= 127;\n    sk[31] |= 64;\n\n    ge25519_scalarmult_base(&A, sk);\n    ge25519_p3_tobytes(pk, &A);\n\n    memmove(sk, seed, 32);\n    memmove(sk + 32, pk, 32);\n\n    return 0;\n}\n\nint\ncrypto_sign_ed25519_keypair(unsigned char *pk, unsigned char *sk)\n{\n    unsigned char seed[32];\n    int           ret;\n\n    randombytes_buf(seed, sizeof seed);\n    ret = crypto_sign_ed25519_seed_keypair(pk, sk, seed);\n    sodium_memzero(seed, sizeof seed);\n\n    return ret;\n}\n\nint\ncrypto_sign_ed25519_pk_to_curve25519(unsigned char *curve25519_pk,\n                                     const unsigned char *ed25519_pk)\n{\n    ge25519_p3 A;\n    fe25519    x;\n    fe25519    one_minus_y;\n\n    if (ge25519_frombytes_negate_vartime(&A, ed25519_pk) != 0 ||\n        ge25519_has_small_order(&A) != 0 ||\n        ge25519_is_on_main_subgroup(&A) == 0) {\n        return -1;\n    }\n    fe25519_1(one_minus_y);\n    /* assumes A.Z=1 */\n    fe25519_sub(one_minus_y, one_minus_y, A.Y);\n    fe25519_1(x);\n    fe25519_add(x, x, A.Y);\n    fe25519_invert(one_minus_y, one_minus_y);\n    fe25519_mul(x, x, one_minus_y);\n    fe25519_tobytes(curve25519_pk, x);\n\n    return 0;\n}\n\nint\ncrypto_sign_ed25519_sk_to_curve25519(unsigned char *curve25519_sk,\n                                     const unsigned char *ed25519_sk)\n{\n    unsigned char h[crypto_hash_sha512_BYTES];\n\n    crypto_hash_sha512(h, ed25519_sk, 32);\n    h[0] &= 248;\n    h[31] &= 127;\n    h[31] |= 64;\n    memcpy(curve25519_sk, h, crypto_scalarmult_curve25519_BYTES);\n    sodium_memzero(h, sizeof h);\n\n    return 0;\n}\n"
  },
  {
    "path": "src/libsodium/crypto_sign/ed25519/ref10/open.c",
    "content": "\n#include <limits.h>\n#include <stdint.h>\n#include <string.h>\n\n#include \"crypto_hash_sha512.h\"\n#include \"crypto_sign_ed25519.h\"\n#include \"crypto_verify_32.h\"\n#include \"sign_ed25519_ref10.h\"\n#include \"private/common.h\"\n#include \"private/ed25519_ref10.h\"\n#include \"utils.h\"\n\nint\n_crypto_sign_ed25519_verify_detached(const unsigned char *sig,\n                                     const unsigned char *m,\n                                     unsigned long long   mlen,\n                                     const unsigned char *pk,\n                                     int prehashed)\n{\n    crypto_hash_sha512_state hs;\n    unsigned char            h[64];\n    ge25519_p3               check;\n    ge25519_p3               expected_r;\n    ge25519_p3               A;\n    ge25519_p3               sb_ah;\n    ge25519_p2               sb_ah_p2;\n\n    ACQUIRE_FENCE;\n#ifdef ED25519_COMPAT\n    if (sig[63] & 224) {\n        return -1;\n    }\n#else\n    if ((sig[63] & 240) != 0 &&\n        sc25519_is_canonical(sig + 32) == 0) {\n        return -1;\n    }\n    if (ge25519_is_canonical(pk) == 0) {\n        return -1;\n    }\n#endif\n    if (ge25519_frombytes_negate_vartime(&A, pk) != 0 ||\n        ge25519_has_small_order(&A) != 0) {\n        return -1;\n    }\n    if (ge25519_frombytes(&expected_r, sig) != 0 ||\n        ge25519_has_small_order(&expected_r) != 0) {\n        return -1;\n    }\n    _crypto_sign_ed25519_ref10_hinit(&hs, prehashed);\n    crypto_hash_sha512_update(&hs, sig, 32);\n    crypto_hash_sha512_update(&hs, pk, 32);\n    crypto_hash_sha512_update(&hs, m, mlen);\n    crypto_hash_sha512_final(&hs, h);\n    sc25519_reduce(h);\n\n    ge25519_double_scalarmult_vartime(&sb_ah_p2, h, &A, sig + 32);\n    ge25519_p2_to_p3(&sb_ah, &sb_ah_p2);\n    ge25519_p3_sub(&check, &expected_r, &sb_ah);\n\n    return ge25519_has_small_order(&check) - 1;\n}\n\nint\ncrypto_sign_ed25519_verify_detached(const unsigned char *sig,\n                                    const unsigned char *m,\n                                    unsigned long long   mlen,\n                                    const unsigned char *pk)\n{\n    return _crypto_sign_ed25519_verify_detached(sig, m, mlen, pk, 0);\n}\n\nint\ncrypto_sign_ed25519_open(unsigned char *m, unsigned long long *mlen_p,\n                         const unsigned char *sm, unsigned long long smlen,\n                         const unsigned char *pk)\n{\n    unsigned long long mlen;\n\n    if (smlen < 64 || smlen - 64 > crypto_sign_ed25519_MESSAGEBYTES_MAX) {\n        goto badsig;\n    }\n    mlen = smlen - 64;\n    if (crypto_sign_ed25519_verify_detached(sm, sm + 64, mlen, pk) != 0) {\n        if (m != NULL) {\n            memset(m, 0, mlen);\n        }\n        goto badsig;\n    }\n    if (mlen_p != NULL) {\n        *mlen_p = mlen;\n    }\n    if (m != NULL) {\n        memmove(m, sm + 64, mlen);\n    }\n    return 0;\n\nbadsig:\n    if (mlen_p != NULL) {\n        *mlen_p = 0;\n    }\n    return -1;\n}\n"
  },
  {
    "path": "src/libsodium/crypto_sign/ed25519/ref10/sign.c",
    "content": "\n#include <string.h>\n\n#include \"crypto_hash_sha512.h\"\n#include \"crypto_sign_ed25519.h\"\n#include \"sign_ed25519_ref10.h\"\n#include \"private/ed25519_ref10.h\"\n#include \"randombytes.h\"\n#include \"utils.h\"\n\nvoid\n_crypto_sign_ed25519_ref10_hinit(crypto_hash_sha512_state *hs, int prehashed)\n{\n    static const unsigned char DOM2PREFIX[32 + 2] = {\n        'S', 'i', 'g', 'E', 'd', '2', '5', '5', '1', '9', ' ',\n        'n', 'o', ' ',\n        'E', 'd', '2', '5', '5', '1', '9', ' ',\n        'c', 'o', 'l', 'l', 'i', 's', 'i', 'o', 'n', 's', 1, 0\n    };\n\n    crypto_hash_sha512_init(hs);\n    if (prehashed) {\n        crypto_hash_sha512_update(hs, DOM2PREFIX, sizeof DOM2PREFIX);\n    }\n}\n\nstatic inline void\n_crypto_sign_ed25519_clamp(unsigned char k[32])\n{\n    k[0] &= 248;\n    k[31] &= 127;\n    k[31] |= 64;\n}\n\n#ifdef ED25519_NONDETERMINISTIC\n/* r = hash(k || K || noise || pad || M) (mod q) */\nstatic void\n_crypto_sign_ed25519_synthetic_r_hv(crypto_hash_sha512_state *hs,\n                                    unsigned char tmp[64],\n                                    const unsigned char az[64])\n{\n    crypto_hash_sha512_update(hs, az, 64);\n    randombytes_buf(tmp, 32);\n    memset(tmp + 32, 0, 32);\n    crypto_hash_sha512_update(hs, tmp, 64);\n}\n#endif\n\nint\n_crypto_sign_ed25519_detached(unsigned char *sig, unsigned long long *siglen_p,\n                              const unsigned char *m, unsigned long long mlen,\n                              const unsigned char *sk, int prehashed)\n{\n    crypto_hash_sha512_state hs;\n    unsigned char            az[64];\n    unsigned char            nonce[64];\n    unsigned char            hram[64];\n    ge25519_p3               R;\n\n    _crypto_sign_ed25519_ref10_hinit(&hs, prehashed);\n\n    crypto_hash_sha512(az, sk, 32);\n#ifdef ED25519_NONDETERMINISTIC\n    _crypto_sign_ed25519_synthetic_r_hv(&hs, nonce /* tmp */, az);\n#else\n    crypto_hash_sha512_update(&hs, az + 32, 32);\n#endif\n\n    crypto_hash_sha512_update(&hs, m, mlen);\n    crypto_hash_sha512_final(&hs, nonce);\n\n    memmove(sig + 32, sk + 32, 32);\n\n    sc25519_reduce(nonce);\n    ge25519_scalarmult_base(&R, nonce);\n    ge25519_p3_tobytes(sig, &R);\n\n    _crypto_sign_ed25519_ref10_hinit(&hs, prehashed);\n    crypto_hash_sha512_update(&hs, sig, 64);\n    crypto_hash_sha512_update(&hs, m, mlen);\n    crypto_hash_sha512_final(&hs, hram);\n\n    sc25519_reduce(hram);\n    _crypto_sign_ed25519_clamp(az);\n    sc25519_muladd(sig + 32, hram, az, nonce);\n\n    sodium_memzero(az, sizeof az);\n    sodium_memzero(nonce, sizeof nonce);\n\n    if (siglen_p != NULL) {\n        *siglen_p = 64U;\n    }\n    return 0;\n}\n\nint\ncrypto_sign_ed25519_detached(unsigned char *sig, unsigned long long *siglen_p,\n                             const unsigned char *m, unsigned long long mlen,\n                             const unsigned char *sk)\n{\n    return _crypto_sign_ed25519_detached(sig, siglen_p, m, mlen, sk, 0);\n}\n\nint\ncrypto_sign_ed25519(unsigned char *sm, unsigned long long *smlen_p,\n                    const unsigned char *m, unsigned long long mlen,\n                    const unsigned char *sk)\n{\n    unsigned long long siglen;\n\n    memmove(sm + crypto_sign_ed25519_BYTES, m, mlen);\n    /* LCOV_EXCL_START */\n    if (crypto_sign_ed25519_detached(\n            sm, &siglen, sm + crypto_sign_ed25519_BYTES, mlen, sk) != 0 ||\n        siglen != crypto_sign_ed25519_BYTES) {\n        if (smlen_p != NULL) {\n            *smlen_p = 0;\n        }\n        memset(sm, 0, mlen + crypto_sign_ed25519_BYTES);\n        return -1;\n    }\n    /* LCOV_EXCL_STOP */\n\n    if (smlen_p != NULL) {\n        *smlen_p = mlen + siglen;\n    }\n    return 0;\n}\n"
  },
  {
    "path": "src/libsodium/crypto_sign/ed25519/ref10/sign_ed25519_ref10.h",
    "content": "#ifndef sign_ed25519_ref10_H\n#define sign_ed25519_ref10_H\n\n#include \"private/quirks.h\"\n\nvoid _crypto_sign_ed25519_ref10_hinit(crypto_hash_sha512_state *hs,\n                                      int prehashed);\n\nint _crypto_sign_ed25519_detached(unsigned char *sig,\n                                  unsigned long long *siglen_p,\n                                  const unsigned char *m,\n                                  unsigned long long mlen,\n                                  const unsigned char *sk, int prehashed);\n\nint _crypto_sign_ed25519_verify_detached(const unsigned char *sig,\n                                         const unsigned char *m,\n                                         unsigned long long   mlen,\n                                         const unsigned char *pk,\n                                         int prehashed);\n#endif\n"
  },
  {
    "path": "src/libsodium/crypto_sign/ed25519/sign_ed25519.c",
    "content": "\n#include <string.h>\n\n#include \"crypto_hash_sha512.h\"\n#include \"crypto_sign_ed25519.h\"\n#include \"ref10/sign_ed25519_ref10.h\"\n\nsize_t\ncrypto_sign_ed25519ph_statebytes(void)\n{\n    return sizeof(crypto_sign_ed25519ph_state);\n}\n\nsize_t\ncrypto_sign_ed25519_bytes(void)\n{\n    return crypto_sign_ed25519_BYTES;\n}\n\nsize_t\ncrypto_sign_ed25519_seedbytes(void)\n{\n    return crypto_sign_ed25519_SEEDBYTES;\n}\n\nsize_t\ncrypto_sign_ed25519_publickeybytes(void)\n{\n    return crypto_sign_ed25519_PUBLICKEYBYTES;\n}\n\nsize_t\ncrypto_sign_ed25519_secretkeybytes(void)\n{\n    return crypto_sign_ed25519_SECRETKEYBYTES;\n}\n\nsize_t\ncrypto_sign_ed25519_messagebytes_max(void)\n{\n    return crypto_sign_ed25519_MESSAGEBYTES_MAX;\n}\n\nint\ncrypto_sign_ed25519_sk_to_seed(unsigned char *seed, const unsigned char *sk)\n{\n    memmove(seed, sk, crypto_sign_ed25519_SEEDBYTES);\n\n    return 0;\n}\n\nint\ncrypto_sign_ed25519_sk_to_pk(unsigned char *pk, const unsigned char *sk)\n{\n    memmove(pk, sk + crypto_sign_ed25519_SEEDBYTES,\n            crypto_sign_ed25519_PUBLICKEYBYTES);\n    return 0;\n}\n\nint\ncrypto_sign_ed25519ph_init(crypto_sign_ed25519ph_state *state)\n{\n    crypto_hash_sha512_init(&state->hs);\n    return 0;\n}\n\nint\ncrypto_sign_ed25519ph_update(crypto_sign_ed25519ph_state *state,\n                             const unsigned char *m, unsigned long long mlen)\n{\n    return crypto_hash_sha512_update(&state->hs, m, mlen);\n}\n\nint\ncrypto_sign_ed25519ph_final_create(crypto_sign_ed25519ph_state *state,\n                                   unsigned char               *sig,\n                                   unsigned long long          *siglen_p,\n                                   const unsigned char         *sk)\n{\n    unsigned char ph[crypto_hash_sha512_BYTES];\n\n    crypto_hash_sha512_final(&state->hs, ph);\n\n    return _crypto_sign_ed25519_detached(sig, siglen_p, ph, sizeof ph, sk, 1);\n}\n\nint\ncrypto_sign_ed25519ph_final_verify(crypto_sign_ed25519ph_state *state,\n                                   const unsigned char         *sig,\n                                   const unsigned char         *pk)\n{\n    unsigned char ph[crypto_hash_sha512_BYTES];\n\n    crypto_hash_sha512_final(&state->hs, ph);\n\n    return _crypto_sign_ed25519_verify_detached(sig, ph, sizeof ph, pk, 1);\n}\n"
  },
  {
    "path": "src/libsodium/crypto_stream/chacha20/dolbeau/chacha20_dolbeau-avx2.c",
    "content": "\n#include <stdint.h>\n#include <stdlib.h>\n#include <string.h>\n\n#include \"core.h\"\n#include \"crypto_stream_chacha20.h\"\n#include \"private/common.h\"\n#include \"utils.h\"\n\n#if defined(HAVE_AVX2INTRIN_H) && defined(HAVE_EMMINTRIN_H) && \\\n        defined(HAVE_TMMINTRIN_H) && defined(HAVE_SMMINTRIN_H)\n\n# ifdef __clang__\n#  pragma clang attribute push(__attribute__((target(\"sse2,ssse3,sse4.1,avx2\"))), apply_to = function)\n# elif defined(__GNUC__)\n#  pragma GCC target(\"sse2,ssse3,sse4.1,avx2\")\n# endif\n\n# include <emmintrin.h>\n# include <immintrin.h>\n# include <smmintrin.h>\n# include <tmmintrin.h>\n# include \"private/sse2_64_32.h\"\n\n# include \"../stream_chacha20.h\"\n# include \"chacha20_dolbeau-avx2.h\"\n\n# define ROUNDS 20\n\ntypedef struct chacha_ctx {\n    uint32_t input[16];\n} chacha_ctx;\n\nstatic void\nchacha_keysetup(chacha_ctx *ctx, const uint8_t *k)\n{\n    ctx->input[0]  = 0x61707865;\n    ctx->input[1]  = 0x3320646e;\n    ctx->input[2]  = 0x79622d32;\n    ctx->input[3]  = 0x6b206574;\n    ctx->input[4]  = LOAD32_LE(k + 0);\n    ctx->input[5]  = LOAD32_LE(k + 4);\n    ctx->input[6]  = LOAD32_LE(k + 8);\n    ctx->input[7]  = LOAD32_LE(k + 12);\n    ctx->input[8]  = LOAD32_LE(k + 16);\n    ctx->input[9]  = LOAD32_LE(k + 20);\n    ctx->input[10] = LOAD32_LE(k + 24);\n    ctx->input[11] = LOAD32_LE(k + 28);\n}\n\nstatic void\nchacha_ivsetup(chacha_ctx *ctx, const uint8_t *iv, const uint8_t *counter)\n{\n    ctx->input[12] = counter == NULL ? 0 : LOAD32_LE(counter + 0);\n    ctx->input[13] = counter == NULL ? 0 : LOAD32_LE(counter + 4);\n    ctx->input[14] = LOAD32_LE(iv + 0);\n    ctx->input[15] = LOAD32_LE(iv + 4);\n}\n\nstatic void\nchacha_ietf_ivsetup(chacha_ctx *ctx, const uint8_t *iv, const uint8_t *counter)\n{\n    ctx->input[12] = counter == NULL ? 0 : LOAD32_LE(counter);\n    ctx->input[13] = LOAD32_LE(iv + 0);\n    ctx->input[14] = LOAD32_LE(iv + 4);\n    ctx->input[15] = LOAD32_LE(iv + 8);\n}\n\nstatic void\nchacha20_encrypt_bytes(chacha_ctx *ctx, const uint8_t *m, uint8_t *c,\n                       unsigned long long bytes)\n{\n    uint32_t * const x = &ctx->input[0];\n\n    if (!bytes) {\n        return; /* LCOV_EXCL_LINE */\n    }\n# include \"u8.h\"\n# include \"u4.h\"\n# include \"u1.h\"\n# include \"u0.h\"\n}\n\nstatic int\nstream_ref(unsigned char *c, unsigned long long clen, const unsigned char *n,\n           const unsigned char *k)\n{\n    struct chacha_ctx ctx;\n\n    if (!clen) {\n        return 0;\n    }\n    COMPILER_ASSERT(crypto_stream_chacha20_KEYBYTES == 256 / 8);\n    chacha_keysetup(&ctx, k);\n    chacha_ivsetup(&ctx, n, NULL);\n    memset(c, 0, clen);\n    chacha20_encrypt_bytes(&ctx, c, c, clen);\n    sodium_memzero(&ctx, sizeof ctx);\n\n    return 0;\n}\n\nstatic int\nstream_ietf_ext_ref(unsigned char *c, unsigned long long clen,\n                    const unsigned char *n, const unsigned char *k)\n{\n    struct chacha_ctx ctx;\n\n    if (!clen) {\n        return 0;\n    }\n    COMPILER_ASSERT(crypto_stream_chacha20_KEYBYTES == 256 / 8);\n    chacha_keysetup(&ctx, k);\n    chacha_ietf_ivsetup(&ctx, n, NULL);\n    memset(c, 0, clen);\n    chacha20_encrypt_bytes(&ctx, c, c, clen);\n    sodium_memzero(&ctx, sizeof ctx);\n\n    return 0;\n}\n\nstatic int\nstream_ref_xor_ic(unsigned char *c, const unsigned char *m,\n                  unsigned long long mlen, const unsigned char *n, uint64_t ic,\n                  const unsigned char *k)\n{\n    struct chacha_ctx ctx;\n    uint8_t           ic_bytes[8];\n    uint32_t          ic_high;\n    uint32_t          ic_low;\n\n    if (!mlen) {\n        return 0;\n    }\n    ic_high = (uint32_t) (ic >> 32);\n    ic_low  = (uint32_t) ic;\n    STORE32_LE(&ic_bytes[0], ic_low);\n    STORE32_LE(&ic_bytes[4], ic_high);\n    chacha_keysetup(&ctx, k);\n    chacha_ivsetup(&ctx, n, ic_bytes);\n    chacha20_encrypt_bytes(&ctx, m, c, mlen);\n    sodium_memzero(&ctx, sizeof ctx);\n\n    return 0;\n}\n\nstatic int\nstream_ietf_ext_ref_xor_ic(unsigned char *c, const unsigned char *m,\n                           unsigned long long mlen, const unsigned char *n,\n                           uint32_t ic, const unsigned char *k)\n{\n    struct chacha_ctx ctx;\n    uint8_t           ic_bytes[4];\n\n    if (!mlen) {\n        return 0;\n    }\n    STORE32_LE(ic_bytes, ic);\n    chacha_keysetup(&ctx, k);\n    chacha_ietf_ivsetup(&ctx, n, ic_bytes);\n    chacha20_encrypt_bytes(&ctx, m, c, mlen);\n    sodium_memzero(&ctx, sizeof ctx);\n\n    return 0;\n}\n\nstruct crypto_stream_chacha20_implementation\n    crypto_stream_chacha20_dolbeau_avx2_implementation = {\n        SODIUM_C99(.stream =) stream_ref,\n        SODIUM_C99(.stream_ietf_ext =) stream_ietf_ext_ref,\n        SODIUM_C99(.stream_xor_ic =) stream_ref_xor_ic,\n        SODIUM_C99(.stream_ietf_ext_xor_ic =) stream_ietf_ext_ref_xor_ic\n    };\n\n# ifdef __clang__\n#  pragma clang attribute pop\n# endif\n\n#endif\n"
  },
  {
    "path": "src/libsodium/crypto_stream/chacha20/dolbeau/chacha20_dolbeau-avx2.h",
    "content": "\n#include <stdint.h>\n\n#include \"../stream_chacha20.h\"\n#include \"crypto_stream_chacha20.h\"\n\nextern struct crypto_stream_chacha20_implementation\n    crypto_stream_chacha20_dolbeau_avx2_implementation;\n"
  },
  {
    "path": "src/libsodium/crypto_stream/chacha20/dolbeau/chacha20_dolbeau-ssse3.c",
    "content": "\n#include <stdint.h>\n#include <stdlib.h>\n#include <string.h>\n\n#include \"core.h\"\n#include \"crypto_stream_chacha20.h\"\n#include \"private/common.h\"\n#include \"utils.h\"\n\n#if defined(HAVE_EMMINTRIN_H) && defined(HAVE_TMMINTRIN_H)\n\n# ifdef __clang__\n#  pragma clang attribute push(__attribute__((target(\"sse2,ssse3\"))), apply_to = function)\n# elif defined(__GNUC__)\n#  pragma GCC target(\"sse2,ssse3\")\n# endif\n\n# include <emmintrin.h>\n# include <tmmintrin.h>\n# include \"private/sse2_64_32.h\"\n\n# include \"../stream_chacha20.h\"\n# include \"chacha20_dolbeau-ssse3.h\"\n\n# define ROUNDS 20\n\ntypedef struct chacha_ctx {\n    uint32_t input[16];\n} chacha_ctx;\n\nstatic void\nchacha_keysetup(chacha_ctx *ctx, const uint8_t *k)\n{\n    ctx->input[0]  = 0x61707865;\n    ctx->input[1]  = 0x3320646e;\n    ctx->input[2]  = 0x79622d32;\n    ctx->input[3]  = 0x6b206574;\n    ctx->input[4]  = LOAD32_LE(k + 0);\n    ctx->input[5]  = LOAD32_LE(k + 4);\n    ctx->input[6]  = LOAD32_LE(k + 8);\n    ctx->input[7]  = LOAD32_LE(k + 12);\n    ctx->input[8]  = LOAD32_LE(k + 16);\n    ctx->input[9]  = LOAD32_LE(k + 20);\n    ctx->input[10] = LOAD32_LE(k + 24);\n    ctx->input[11] = LOAD32_LE(k + 28);\n}\n\nstatic void\nchacha_ivsetup(chacha_ctx *ctx, const uint8_t *iv, const uint8_t *counter)\n{\n    ctx->input[12] = counter == NULL ? 0 : LOAD32_LE(counter + 0);\n    ctx->input[13] = counter == NULL ? 0 : LOAD32_LE(counter + 4);\n    ctx->input[14] = LOAD32_LE(iv + 0);\n    ctx->input[15] = LOAD32_LE(iv + 4);\n}\n\nstatic void\nchacha_ietf_ivsetup(chacha_ctx *ctx, const uint8_t *iv, const uint8_t *counter)\n{\n    ctx->input[12] = counter == NULL ? 0 : LOAD32_LE(counter);\n    ctx->input[13] = LOAD32_LE(iv + 0);\n    ctx->input[14] = LOAD32_LE(iv + 4);\n    ctx->input[15] = LOAD32_LE(iv + 8);\n}\n\nstatic void\nchacha20_encrypt_bytes(chacha_ctx *ctx, const uint8_t *m, uint8_t *c,\n                       unsigned long long bytes)\n{\n    uint32_t * const x = &ctx->input[0];\n\n    if (!bytes) {\n        return; /* LCOV_EXCL_LINE */\n    }\n# include \"u4.h\"\n# include \"u1.h\"\n# include \"u0.h\"\n}\n\nstatic int\nstream_ref(unsigned char *c, unsigned long long clen, const unsigned char *n,\n           const unsigned char *k)\n{\n    struct chacha_ctx ctx;\n\n    if (!clen) {\n        return 0;\n    }\n    COMPILER_ASSERT(crypto_stream_chacha20_KEYBYTES == 256 / 8);\n    chacha_keysetup(&ctx, k);\n    chacha_ivsetup(&ctx, n, NULL);\n    memset(c, 0, clen);\n    chacha20_encrypt_bytes(&ctx, c, c, clen);\n    sodium_memzero(&ctx, sizeof ctx);\n\n    return 0;\n}\n\nstatic int\nstream_ietf_ext_ref(unsigned char *c, unsigned long long clen,\n                    const unsigned char *n, const unsigned char *k)\n{\n    struct chacha_ctx ctx;\n\n    if (!clen) {\n        return 0;\n    }\n    COMPILER_ASSERT(crypto_stream_chacha20_KEYBYTES == 256 / 8);\n    chacha_keysetup(&ctx, k);\n    chacha_ietf_ivsetup(&ctx, n, NULL);\n    memset(c, 0, clen);\n    chacha20_encrypt_bytes(&ctx, c, c, clen);\n    sodium_memzero(&ctx, sizeof ctx);\n\n    return 0;\n}\n\nstatic int\nstream_ref_xor_ic(unsigned char *c, const unsigned char *m,\n                  unsigned long long mlen, const unsigned char *n, uint64_t ic,\n                  const unsigned char *k)\n{\n    struct chacha_ctx ctx;\n    uint8_t           ic_bytes[8];\n    uint32_t          ic_high;\n    uint32_t          ic_low;\n\n    if (!mlen) {\n        return 0;\n    }\n    ic_high = (uint32_t) (ic >> 32);\n    ic_low  = (uint32_t) ic;\n    STORE32_LE(&ic_bytes[0], ic_low);\n    STORE32_LE(&ic_bytes[4], ic_high);\n    chacha_keysetup(&ctx, k);\n    chacha_ivsetup(&ctx, n, ic_bytes);\n    chacha20_encrypt_bytes(&ctx, m, c, mlen);\n    sodium_memzero(&ctx, sizeof ctx);\n\n    return 0;\n}\n\nstatic int\nstream_ietf_ext_ref_xor_ic(unsigned char *c, const unsigned char *m,\n                           unsigned long long mlen, const unsigned char *n,\n                           uint32_t ic, const unsigned char *k)\n{\n    struct chacha_ctx ctx;\n    uint8_t           ic_bytes[4];\n\n    if (!mlen) {\n        return 0;\n    }\n    STORE32_LE(ic_bytes, ic);\n    chacha_keysetup(&ctx, k);\n    chacha_ietf_ivsetup(&ctx, n, ic_bytes);\n    chacha20_encrypt_bytes(&ctx, m, c, mlen);\n    sodium_memzero(&ctx, sizeof ctx);\n\n    return 0;\n}\n\nstruct crypto_stream_chacha20_implementation\n    crypto_stream_chacha20_dolbeau_ssse3_implementation = {\n        SODIUM_C99(.stream =) stream_ref,\n        SODIUM_C99(.stream_ietf_ext =) stream_ietf_ext_ref,\n        SODIUM_C99(.stream_xor_ic =) stream_ref_xor_ic,\n        SODIUM_C99(.stream_ietf_ext_xor_ic =) stream_ietf_ext_ref_xor_ic\n    };\n\n# ifdef __clang__\n#  pragma clang attribute pop\n# endif\n\n#endif\n"
  },
  {
    "path": "src/libsodium/crypto_stream/chacha20/dolbeau/chacha20_dolbeau-ssse3.h",
    "content": "\n#include <stdint.h>\n\n#include \"../stream_chacha20.h\"\n#include \"crypto_stream_chacha20.h\"\n\nextern struct crypto_stream_chacha20_implementation\n    crypto_stream_chacha20_dolbeau_ssse3_implementation;\n"
  },
  {
    "path": "src/libsodium/crypto_stream/chacha20/dolbeau/u0.h",
    "content": "if (bytes > 0) {\n    __m128i       x_0, x_1, x_2, x_3;\n    __m128i       t_1;\n    const __m128i rot16 =\n        _mm_set_epi8(13, 12, 15, 14, 9, 8, 11, 10, 5, 4, 7, 6, 1, 0, 3, 2);\n    const __m128i rot8 =\n        _mm_set_epi8(14, 13, 12, 15, 10, 9, 8, 11, 6, 5, 4, 7, 2, 1, 0, 3);\n    uint8_t partialblock[64];\n\n    unsigned int i;\n\n    x_0 = _mm_loadu_si128((const __m128i*) (x + 0));\n    x_1 = _mm_loadu_si128((const __m128i*) (x + 4));\n    x_2 = _mm_loadu_si128((const __m128i*) (x + 8));\n    x_3 = _mm_loadu_si128((const __m128i*) (x + 12));\n\n    for (i = 0; i < ROUNDS; i += 2) {\n        x_0 = _mm_add_epi32(x_0, x_1);\n        x_3 = _mm_xor_si128(x_3, x_0);\n        x_3 = _mm_shuffle_epi8(x_3, rot16);\n\n        x_2 = _mm_add_epi32(x_2, x_3);\n        x_1 = _mm_xor_si128(x_1, x_2);\n\n        t_1 = x_1;\n        x_1 = _mm_slli_epi32(x_1, 12);\n        t_1 = _mm_srli_epi32(t_1, 20);\n        x_1 = _mm_xor_si128(x_1, t_1);\n\n        x_0 = _mm_add_epi32(x_0, x_1);\n        x_3 = _mm_xor_si128(x_3, x_0);\n        x_0 = _mm_shuffle_epi32(x_0, 0x93);\n        x_3 = _mm_shuffle_epi8(x_3, rot8);\n\n        x_2 = _mm_add_epi32(x_2, x_3);\n        x_3 = _mm_shuffle_epi32(x_3, 0x4e);\n        x_1 = _mm_xor_si128(x_1, x_2);\n        x_2 = _mm_shuffle_epi32(x_2, 0x39);\n\n        t_1 = x_1;\n        x_1 = _mm_slli_epi32(x_1, 7);\n        t_1 = _mm_srli_epi32(t_1, 25);\n        x_1 = _mm_xor_si128(x_1, t_1);\n\n        x_0 = _mm_add_epi32(x_0, x_1);\n        x_3 = _mm_xor_si128(x_3, x_0);\n        x_3 = _mm_shuffle_epi8(x_3, rot16);\n\n        x_2 = _mm_add_epi32(x_2, x_3);\n        x_1 = _mm_xor_si128(x_1, x_2);\n\n        t_1 = x_1;\n        x_1 = _mm_slli_epi32(x_1, 12);\n        t_1 = _mm_srli_epi32(t_1, 20);\n        x_1 = _mm_xor_si128(x_1, t_1);\n\n        x_0 = _mm_add_epi32(x_0, x_1);\n        x_3 = _mm_xor_si128(x_3, x_0);\n        x_0 = _mm_shuffle_epi32(x_0, 0x39);\n        x_3 = _mm_shuffle_epi8(x_3, rot8);\n\n        x_2 = _mm_add_epi32(x_2, x_3);\n        x_3 = _mm_shuffle_epi32(x_3, 0x4e);\n        x_1 = _mm_xor_si128(x_1, x_2);\n        x_2 = _mm_shuffle_epi32(x_2, 0x93);\n\n        t_1 = x_1;\n        x_1 = _mm_slli_epi32(x_1, 7);\n        t_1 = _mm_srli_epi32(t_1, 25);\n        x_1 = _mm_xor_si128(x_1, t_1);\n    }\n    x_0 = _mm_add_epi32(x_0, _mm_loadu_si128((const __m128i*) (x + 0)));\n    x_1 = _mm_add_epi32(x_1, _mm_loadu_si128((const __m128i*) (x + 4)));\n    x_2 = _mm_add_epi32(x_2, _mm_loadu_si128((const __m128i*) (x + 8)));\n    x_3 = _mm_add_epi32(x_3, _mm_loadu_si128((const __m128i*) (x + 12)));\n    _mm_storeu_si128((__m128i*) (partialblock + 0), x_0);\n    _mm_storeu_si128((__m128i*) (partialblock + 16), x_1);\n    _mm_storeu_si128((__m128i*) (partialblock + 32), x_2);\n    _mm_storeu_si128((__m128i*) (partialblock + 48), x_3);\n\n    for (i = 0; i < bytes; i++) {\n        c[i] = m[i] ^ partialblock[i];\n    }\n\n    sodium_memzero(partialblock, sizeof partialblock);\n}\n"
  },
  {
    "path": "src/libsodium/crypto_stream/chacha20/dolbeau/u1.h",
    "content": "while (bytes >= 64) {\n    __m128i       x_0, x_1, x_2, x_3;\n    __m128i       t_1;\n    const __m128i rot16 =\n        _mm_set_epi8(13, 12, 15, 14, 9, 8, 11, 10, 5, 4, 7, 6, 1, 0, 3, 2);\n    const __m128i rot8 =\n        _mm_set_epi8(14, 13, 12, 15, 10, 9, 8, 11, 6, 5, 4, 7, 2, 1, 0, 3);\n\n    uint32_t in12;\n    uint32_t in13;\n    int      i;\n\n    x_0 = _mm_loadu_si128((const __m128i*) (x + 0));\n    x_1 = _mm_loadu_si128((const __m128i*) (x + 4));\n    x_2 = _mm_loadu_si128((const __m128i*) (x + 8));\n    x_3 = _mm_loadu_si128((const __m128i*) (x + 12));\n\n    for (i = 0; i < ROUNDS; i += 2) {\n        x_0 = _mm_add_epi32(x_0, x_1);\n        x_3 = _mm_xor_si128(x_3, x_0);\n        x_3 = _mm_shuffle_epi8(x_3, rot16);\n\n        x_2 = _mm_add_epi32(x_2, x_3);\n        x_1 = _mm_xor_si128(x_1, x_2);\n\n        t_1 = x_1;\n        x_1 = _mm_slli_epi32(x_1, 12);\n        t_1 = _mm_srli_epi32(t_1, 20);\n        x_1 = _mm_xor_si128(x_1, t_1);\n\n        x_0 = _mm_add_epi32(x_0, x_1);\n        x_3 = _mm_xor_si128(x_3, x_0);\n        x_0 = _mm_shuffle_epi32(x_0, 0x93);\n        x_3 = _mm_shuffle_epi8(x_3, rot8);\n\n        x_2 = _mm_add_epi32(x_2, x_3);\n        x_3 = _mm_shuffle_epi32(x_3, 0x4e);\n        x_1 = _mm_xor_si128(x_1, x_2);\n        x_2 = _mm_shuffle_epi32(x_2, 0x39);\n\n        t_1 = x_1;\n        x_1 = _mm_slli_epi32(x_1, 7);\n        t_1 = _mm_srli_epi32(t_1, 25);\n        x_1 = _mm_xor_si128(x_1, t_1);\n\n        x_0 = _mm_add_epi32(x_0, x_1);\n        x_3 = _mm_xor_si128(x_3, x_0);\n        x_3 = _mm_shuffle_epi8(x_3, rot16);\n\n        x_2 = _mm_add_epi32(x_2, x_3);\n        x_1 = _mm_xor_si128(x_1, x_2);\n\n        t_1 = x_1;\n        x_1 = _mm_slli_epi32(x_1, 12);\n        t_1 = _mm_srli_epi32(t_1, 20);\n        x_1 = _mm_xor_si128(x_1, t_1);\n\n        x_0 = _mm_add_epi32(x_0, x_1);\n        x_3 = _mm_xor_si128(x_3, x_0);\n        x_0 = _mm_shuffle_epi32(x_0, 0x39);\n        x_3 = _mm_shuffle_epi8(x_3, rot8);\n\n        x_2 = _mm_add_epi32(x_2, x_3);\n        x_3 = _mm_shuffle_epi32(x_3, 0x4e);\n        x_1 = _mm_xor_si128(x_1, x_2);\n        x_2 = _mm_shuffle_epi32(x_2, 0x93);\n\n        t_1 = x_1;\n        x_1 = _mm_slli_epi32(x_1, 7);\n        t_1 = _mm_srli_epi32(t_1, 25);\n        x_1 = _mm_xor_si128(x_1, t_1);\n    }\n    x_0 = _mm_add_epi32(x_0, _mm_loadu_si128((const __m128i*) (x + 0)));\n    x_1 = _mm_add_epi32(x_1, _mm_loadu_si128((const __m128i*) (x + 4)));\n    x_2 = _mm_add_epi32(x_2, _mm_loadu_si128((const __m128i*) (x + 8)));\n    x_3 = _mm_add_epi32(x_3, _mm_loadu_si128((const __m128i*) (x + 12)));\n    x_0 = _mm_xor_si128(x_0, _mm_loadu_si128((const __m128i*) (m + 0)));\n    x_1 = _mm_xor_si128(x_1, _mm_loadu_si128((const __m128i*) (m + 16)));\n    x_2 = _mm_xor_si128(x_2, _mm_loadu_si128((const __m128i*) (m + 32)));\n    x_3 = _mm_xor_si128(x_3, _mm_loadu_si128((const __m128i*) (m + 48)));\n    _mm_storeu_si128((__m128i*) (c + 0), x_0);\n    _mm_storeu_si128((__m128i*) (c + 16), x_1);\n    _mm_storeu_si128((__m128i*) (c + 32), x_2);\n    _mm_storeu_si128((__m128i*) (c + 48), x_3);\n\n    in12 = x[12];\n    in13 = x[13];\n    in12++;\n    if (in12 == 0) {\n        in13++;\n    }\n    x[12] = in12;\n    x[13] = in13;\n\n    bytes -= 64;\n    c += 64;\n    m += 64;\n}\n"
  },
  {
    "path": "src/libsodium/crypto_stream/chacha20/dolbeau/u4.h",
    "content": "\n#define VEC4_ROT(A, IMM) \\\n    _mm_or_si128(_mm_slli_epi32(A, IMM), _mm_srli_epi32(A, (32 - IMM)))\n\n/* same, but replace 2 of the shift/shift/or \"rotation\" by byte shuffles (8 &\n * 16) (better) */\n#define VEC4_QUARTERROUND_SHUFFLE(A, B, C, D) \\\n    x_##A = _mm_add_epi32(x_##A, x_##B);      \\\n    t_##A = _mm_xor_si128(x_##D, x_##A);      \\\n    x_##D = _mm_shuffle_epi8(t_##A, rot16);   \\\n    x_##C = _mm_add_epi32(x_##C, x_##D);      \\\n    t_##C = _mm_xor_si128(x_##B, x_##C);      \\\n    x_##B = VEC4_ROT(t_##C, 12);              \\\n    x_##A = _mm_add_epi32(x_##A, x_##B);      \\\n    t_##A = _mm_xor_si128(x_##D, x_##A);      \\\n    x_##D = _mm_shuffle_epi8(t_##A, rot8);    \\\n    x_##C = _mm_add_epi32(x_##C, x_##D);      \\\n    t_##C = _mm_xor_si128(x_##B, x_##C);      \\\n    x_##B = VEC4_ROT(t_##C, 7)\n\n#define VEC4_QUARTERROUND(A, B, C, D) VEC4_QUARTERROUND_SHUFFLE(A, B, C, D)\n\nif (bytes >= 256) {\n    /* constant for shuffling bytes (replacing multiple-of-8 rotates) */\n    __m128i rot16 =\n        _mm_set_epi8(13, 12, 15, 14, 9, 8, 11, 10, 5, 4, 7, 6, 1, 0, 3, 2);\n    __m128i rot8 =\n        _mm_set_epi8(14, 13, 12, 15, 10, 9, 8, 11, 6, 5, 4, 7, 2, 1, 0, 3);\n\n    __m128i x_0  = _mm_set1_epi32(x[0]);\n    __m128i x_1  = _mm_set1_epi32(x[1]);\n    __m128i x_2  = _mm_set1_epi32(x[2]);\n    __m128i x_3  = _mm_set1_epi32(x[3]);\n    __m128i x_4  = _mm_set1_epi32(x[4]);\n    __m128i x_5  = _mm_set1_epi32(x[5]);\n    __m128i x_6  = _mm_set1_epi32(x[6]);\n    __m128i x_7  = _mm_set1_epi32(x[7]);\n    __m128i x_8  = _mm_set1_epi32(x[8]);\n    __m128i x_9  = _mm_set1_epi32(x[9]);\n    __m128i x_10 = _mm_set1_epi32(x[10]);\n    __m128i x_11 = _mm_set1_epi32(x[11]);\n    __m128i x_12;\n    __m128i x_13;\n    __m128i x_14   = _mm_set1_epi32(x[14]);\n    __m128i x_15   = _mm_set1_epi32(x[15]);\n    __m128i orig0  = x_0;\n    __m128i orig1  = x_1;\n    __m128i orig2  = x_2;\n    __m128i orig3  = x_3;\n    __m128i orig4  = x_4;\n    __m128i orig5  = x_5;\n    __m128i orig6  = x_6;\n    __m128i orig7  = x_7;\n    __m128i orig8  = x_8;\n    __m128i orig9  = x_9;\n    __m128i orig10 = x_10;\n    __m128i orig11 = x_11;\n    __m128i orig12;\n    __m128i orig13;\n    __m128i orig14 = x_14;\n    __m128i orig15 = x_15;\n    __m128i t_0, t_1, t_2, t_3, t_4, t_5, t_6, t_7, t_8, t_9, t_10, t_11, t_12,\n        t_13, t_14, t_15;\n\n    uint32_t in12, in13;\n    int      i;\n\n    while (bytes >= 256) {\n        const __m128i addv12 = _mm_set_epi64x(1, 0);\n        const __m128i addv13 = _mm_set_epi64x(3, 2);\n        __m128i       t12, t13;\n        uint64_t      in1213;\n\n        x_0  = orig0;\n        x_1  = orig1;\n        x_2  = orig2;\n        x_3  = orig3;\n        x_4  = orig4;\n        x_5  = orig5;\n        x_6  = orig6;\n        x_7  = orig7;\n        x_8  = orig8;\n        x_9  = orig9;\n        x_10 = orig10;\n        x_11 = orig11;\n        x_14 = orig14;\n        x_15 = orig15;\n\n        in12   = x[12];\n        in13   = x[13];\n        in1213 = ((uint64_t) in12) | (((uint64_t) in13) << 32);\n        t12    = _mm_set1_epi64x(in1213);\n        t13    = _mm_set1_epi64x(in1213);\n\n        x_12 = _mm_add_epi64(addv12, t12);\n        x_13 = _mm_add_epi64(addv13, t13);\n\n        t12 = _mm_unpacklo_epi32(x_12, x_13);\n        t13 = _mm_unpackhi_epi32(x_12, x_13);\n\n        x_12 = _mm_unpacklo_epi32(t12, t13);\n        x_13 = _mm_unpackhi_epi32(t12, t13);\n\n        orig12 = x_12;\n        orig13 = x_13;\n\n        in1213 += 4;\n\n        x[12] = in1213 & 0xFFFFFFFF;\n        x[13] = (in1213 >> 32) & 0xFFFFFFFF;\n\n        for (i = 0; i < ROUNDS; i += 2) {\n            VEC4_QUARTERROUND(0, 4, 8, 12);\n            VEC4_QUARTERROUND(1, 5, 9, 13);\n            VEC4_QUARTERROUND(2, 6, 10, 14);\n            VEC4_QUARTERROUND(3, 7, 11, 15);\n            VEC4_QUARTERROUND(0, 5, 10, 15);\n            VEC4_QUARTERROUND(1, 6, 11, 12);\n            VEC4_QUARTERROUND(2, 7, 8, 13);\n            VEC4_QUARTERROUND(3, 4, 9, 14);\n        }\n\n#define ONEQUAD_TRANSPOSE(A, B, C, D)                                          \\\n    {                                                                          \\\n        __m128i t0, t1, t2, t3;                                                \\\n                                                                               \\\n        x_##A = _mm_add_epi32(x_##A, orig##A);                                 \\\n        x_##B = _mm_add_epi32(x_##B, orig##B);                                 \\\n        x_##C = _mm_add_epi32(x_##C, orig##C);                                 \\\n        x_##D = _mm_add_epi32(x_##D, orig##D);                                 \\\n        t_##A = _mm_unpacklo_epi32(x_##A, x_##B);                              \\\n        t_##B = _mm_unpacklo_epi32(x_##C, x_##D);                              \\\n        t_##C = _mm_unpackhi_epi32(x_##A, x_##B);                              \\\n        t_##D = _mm_unpackhi_epi32(x_##C, x_##D);                              \\\n        x_##A = _mm_unpacklo_epi64(t_##A, t_##B);                              \\\n        x_##B = _mm_unpackhi_epi64(t_##A, t_##B);                              \\\n        x_##C = _mm_unpacklo_epi64(t_##C, t_##D);                              \\\n        x_##D = _mm_unpackhi_epi64(t_##C, t_##D);                              \\\n                                                                               \\\n        t0 = _mm_xor_si128(x_##A, _mm_loadu_si128((const __m128i*) (m + 0)));  \\\n        _mm_storeu_si128((__m128i*) (c + 0), t0);                              \\\n        t1 = _mm_xor_si128(x_##B, _mm_loadu_si128((const __m128i*) (m + 64))); \\\n        _mm_storeu_si128((__m128i*) (c + 64), t1);                             \\\n        t2 =                                                                   \\\n            _mm_xor_si128(x_##C, _mm_loadu_si128((const __m128i*) (m + 128))); \\\n        _mm_storeu_si128((__m128i*) (c + 128), t2);                            \\\n        t3 =                                                                   \\\n            _mm_xor_si128(x_##D, _mm_loadu_si128((const __m128i*) (m + 192))); \\\n        _mm_storeu_si128((__m128i*) (c + 192), t3);                            \\\n    }\n\n#define ONEQUAD(A, B, C, D) ONEQUAD_TRANSPOSE(A, B, C, D)\n\n        ONEQUAD(0, 1, 2, 3);\n        m += 16;\n        c += 16;\n        ONEQUAD(4, 5, 6, 7);\n        m += 16;\n        c += 16;\n        ONEQUAD(8, 9, 10, 11);\n        m += 16;\n        c += 16;\n        ONEQUAD(12, 13, 14, 15);\n        m -= 48;\n        c -= 48;\n\n#undef ONEQUAD\n#undef ONEQUAD_TRANSPOSE\n\n        bytes -= 256;\n        c += 256;\n        m += 256;\n    }\n}\n#undef VEC4_ROT\n#undef VEC4_QUARTERROUND\n#undef VEC4_QUARTERROUND_SHUFFLE\n"
  },
  {
    "path": "src/libsodium/crypto_stream/chacha20/dolbeau/u8.h",
    "content": "\n#define VEC8_ROT(A, IMM) \\\n    _mm256_or_si256(_mm256_slli_epi32(A, IMM), _mm256_srli_epi32(A, (32 - IMM)))\n\n/* same, but replace 2 of the shift/shift/or \"rotation\" by byte shuffles (8 &\n * 16) (better) */\n#define VEC8_QUARTERROUND_SHUFFLE(A, B, C, D)  \\\n    x_##A = _mm256_add_epi32(x_##A, x_##B);    \\\n    t_##A = _mm256_xor_si256(x_##D, x_##A);    \\\n    x_##D = _mm256_shuffle_epi8(t_##A, rot16); \\\n    x_##C = _mm256_add_epi32(x_##C, x_##D);    \\\n    t_##C = _mm256_xor_si256(x_##B, x_##C);    \\\n    x_##B = VEC8_ROT(t_##C, 12);               \\\n    x_##A = _mm256_add_epi32(x_##A, x_##B);    \\\n    t_##A = _mm256_xor_si256(x_##D, x_##A);    \\\n    x_##D = _mm256_shuffle_epi8(t_##A, rot8);  \\\n    x_##C = _mm256_add_epi32(x_##C, x_##D);    \\\n    t_##C = _mm256_xor_si256(x_##B, x_##C);    \\\n    x_##B = VEC8_ROT(t_##C, 7)\n\n#define VEC8_QUARTERROUND(A, B, C, D) VEC8_QUARTERROUND_SHUFFLE(A, B, C, D)\n\n#define VEC8_LINE1(A, B, C, D)              \\\n    x_##A = _mm256_add_epi32(x_##A, x_##B); \\\n    x_##D = _mm256_shuffle_epi8(_mm256_xor_si256(x_##D, x_##A), rot16)\n#define VEC8_LINE2(A, B, C, D)              \\\n    x_##C = _mm256_add_epi32(x_##C, x_##D); \\\n    x_##B = VEC8_ROT(_mm256_xor_si256(x_##B, x_##C), 12)\n#define VEC8_LINE3(A, B, C, D)              \\\n    x_##A = _mm256_add_epi32(x_##A, x_##B); \\\n    x_##D = _mm256_shuffle_epi8(_mm256_xor_si256(x_##D, x_##A), rot8)\n#define VEC8_LINE4(A, B, C, D)              \\\n    x_##C = _mm256_add_epi32(x_##C, x_##D); \\\n    x_##B = VEC8_ROT(_mm256_xor_si256(x_##B, x_##C), 7)\n\n#define VEC8_ROUND_SEQ(A1, B1, C1, D1, A2, B2, C2, D2, A3, B3, C3, D3, A4, B4, \\\n                       C4, D4)                                                 \\\n    VEC8_LINE1(A1, B1, C1, D1);                                                \\\n    VEC8_LINE1(A2, B2, C2, D2);                                                \\\n    VEC8_LINE1(A3, B3, C3, D3);                                                \\\n    VEC8_LINE1(A4, B4, C4, D4);                                                \\\n    VEC8_LINE2(A1, B1, C1, D1);                                                \\\n    VEC8_LINE2(A2, B2, C2, D2);                                                \\\n    VEC8_LINE2(A3, B3, C3, D3);                                                \\\n    VEC8_LINE2(A4, B4, C4, D4);                                                \\\n    VEC8_LINE3(A1, B1, C1, D1);                                                \\\n    VEC8_LINE3(A2, B2, C2, D2);                                                \\\n    VEC8_LINE3(A3, B3, C3, D3);                                                \\\n    VEC8_LINE3(A4, B4, C4, D4);                                                \\\n    VEC8_LINE4(A1, B1, C1, D1);                                                \\\n    VEC8_LINE4(A2, B2, C2, D2);                                                \\\n    VEC8_LINE4(A3, B3, C3, D3);                                                \\\n    VEC8_LINE4(A4, B4, C4, D4)\n\n#define VEC8_ROUND_HALF(A1, B1, C1, D1, A2, B2, C2, D2, A3, B3, C3, D3, A4, \\\n                        B4, C4, D4)                                         \\\n    VEC8_LINE1(A1, B1, C1, D1);                                             \\\n    VEC8_LINE1(A2, B2, C2, D2);                                             \\\n    VEC8_LINE2(A1, B1, C1, D1);                                             \\\n    VEC8_LINE2(A2, B2, C2, D2);                                             \\\n    VEC8_LINE3(A1, B1, C1, D1);                                             \\\n    VEC8_LINE3(A2, B2, C2, D2);                                             \\\n    VEC8_LINE4(A1, B1, C1, D1);                                             \\\n    VEC8_LINE4(A2, B2, C2, D2);                                             \\\n    VEC8_LINE1(A3, B3, C3, D3);                                             \\\n    VEC8_LINE1(A4, B4, C4, D4);                                             \\\n    VEC8_LINE2(A3, B3, C3, D3);                                             \\\n    VEC8_LINE2(A4, B4, C4, D4);                                             \\\n    VEC8_LINE3(A3, B3, C3, D3);                                             \\\n    VEC8_LINE3(A4, B4, C4, D4);                                             \\\n    VEC8_LINE4(A3, B3, C3, D3);                                             \\\n    VEC8_LINE4(A4, B4, C4, D4)\n\n#define VEC8_ROUND_HALFANDHALF(A1, B1, C1, D1, A2, B2, C2, D2, A3, B3, C3, D3, \\\n                               A4, B4, C4, D4)                                 \\\n    VEC8_LINE1(A1, B1, C1, D1);                                                \\\n    VEC8_LINE1(A2, B2, C2, D2);                                                \\\n    VEC8_LINE2(A1, B1, C1, D1);                                                \\\n    VEC8_LINE2(A2, B2, C2, D2);                                                \\\n    VEC8_LINE1(A3, B3, C3, D3);                                                \\\n    VEC8_LINE1(A4, B4, C4, D4);                                                \\\n    VEC8_LINE2(A3, B3, C3, D3);                                                \\\n    VEC8_LINE2(A4, B4, C4, D4);                                                \\\n    VEC8_LINE3(A1, B1, C1, D1);                                                \\\n    VEC8_LINE3(A2, B2, C2, D2);                                                \\\n    VEC8_LINE4(A1, B1, C1, D1);                                                \\\n    VEC8_LINE4(A2, B2, C2, D2);                                                \\\n    VEC8_LINE3(A3, B3, C3, D3);                                                \\\n    VEC8_LINE3(A4, B4, C4, D4);                                                \\\n    VEC8_LINE4(A3, B3, C3, D3);                                                \\\n    VEC8_LINE4(A4, B4, C4, D4)\n\n#define VEC8_ROUND(A1, B1, C1, D1, A2, B2, C2, D2, A3, B3, C3, D3, A4, B4, C4, \\\n                   D4)                                                         \\\n    VEC8_ROUND_SEQ(A1, B1, C1, D1, A2, B2, C2, D2, A3, B3, C3, D3, A4, B4, C4, \\\n                   D4)\n\nif (bytes >= 512) {\n    /* constant for shuffling bytes (replacing multiple-of-8 rotates) */\n    __m256i rot16 =\n        _mm256_set_epi8(13, 12, 15, 14, 9, 8, 11, 10, 5, 4, 7, 6, 1, 0, 3, 2,\n                        13, 12, 15, 14, 9, 8, 11, 10, 5, 4, 7, 6, 1, 0, 3, 2);\n    __m256i rot8 =\n        _mm256_set_epi8(14, 13, 12, 15, 10, 9, 8, 11, 6, 5, 4, 7, 2, 1, 0, 3,\n                        14, 13, 12, 15, 10, 9, 8, 11, 6, 5, 4, 7, 2, 1, 0, 3);\n    uint32_t in12, in13;\n\n    /* the naive way seems as fast (if not a bit faster) than the vector way */\n    __m256i x_0  = _mm256_set1_epi32(x[0]);\n    __m256i x_1  = _mm256_set1_epi32(x[1]);\n    __m256i x_2  = _mm256_set1_epi32(x[2]);\n    __m256i x_3  = _mm256_set1_epi32(x[3]);\n    __m256i x_4  = _mm256_set1_epi32(x[4]);\n    __m256i x_5  = _mm256_set1_epi32(x[5]);\n    __m256i x_6  = _mm256_set1_epi32(x[6]);\n    __m256i x_7  = _mm256_set1_epi32(x[7]);\n    __m256i x_8  = _mm256_set1_epi32(x[8]);\n    __m256i x_9  = _mm256_set1_epi32(x[9]);\n    __m256i x_10 = _mm256_set1_epi32(x[10]);\n    __m256i x_11 = _mm256_set1_epi32(x[11]);\n    __m256i x_12;\n    __m256i x_13;\n    __m256i x_14 = _mm256_set1_epi32(x[14]);\n    __m256i x_15 = _mm256_set1_epi32(x[15]);\n\n    __m256i orig0  = x_0;\n    __m256i orig1  = x_1;\n    __m256i orig2  = x_2;\n    __m256i orig3  = x_3;\n    __m256i orig4  = x_4;\n    __m256i orig5  = x_5;\n    __m256i orig6  = x_6;\n    __m256i orig7  = x_7;\n    __m256i orig8  = x_8;\n    __m256i orig9  = x_9;\n    __m256i orig10 = x_10;\n    __m256i orig11 = x_11;\n    __m256i orig12;\n    __m256i orig13;\n    __m256i orig14 = x_14;\n    __m256i orig15 = x_15;\n    __m256i t_0, t_1, t_2, t_3, t_4, t_5, t_6, t_7, t_8, t_9, t_10, t_11, t_12,\n        t_13, t_14, t_15;\n\n    while (bytes >= 512) {\n        const __m256i addv12  = _mm256_set_epi64x(3, 2, 1, 0);\n        const __m256i addv13  = _mm256_set_epi64x(7, 6, 5, 4);\n        const __m256i permute = _mm256_set_epi32(7, 6, 3, 2, 5, 4, 1, 0);\n        __m256i       t12, t13;\n\n        uint64_t in1213;\n        int      i;\n\n        x_0  = orig0;\n        x_1  = orig1;\n        x_2  = orig2;\n        x_3  = orig3;\n        x_4  = orig4;\n        x_5  = orig5;\n        x_6  = orig6;\n        x_7  = orig7;\n        x_8  = orig8;\n        x_9  = orig9;\n        x_10 = orig10;\n        x_11 = orig11;\n        x_14 = orig14;\n        x_15 = orig15;\n\n        in12   = x[12];\n        in13   = x[13];\n        in1213 = ((uint64_t) in12) | (((uint64_t) in13) << 32);\n        x_12 = x_13 = _mm256_broadcastq_epi64(_mm_cvtsi64_si128(in1213));\n\n        t12 = _mm256_add_epi64(addv12, x_12);\n        t13 = _mm256_add_epi64(addv13, x_13);\n\n        x_12 = _mm256_unpacklo_epi32(t12, t13);\n        x_13 = _mm256_unpackhi_epi32(t12, t13);\n\n        t12 = _mm256_unpacklo_epi32(x_12, x_13);\n        t13 = _mm256_unpackhi_epi32(x_12, x_13);\n\n        /* required because unpack* are intra-lane */\n        x_12 = _mm256_permutevar8x32_epi32(t12, permute);\n        x_13 = _mm256_permutevar8x32_epi32(t13, permute);\n\n        orig12 = x_12;\n        orig13 = x_13;\n\n        in1213 += 8;\n\n        x[12] = in1213 & 0xFFFFFFFF;\n        x[13] = (in1213 >> 32) & 0xFFFFFFFF;\n\n        for (i = 0; i < ROUNDS; i += 2) {\n            VEC8_ROUND(0, 4, 8, 12, 1, 5, 9, 13, 2, 6, 10, 14, 3, 7, 11, 15);\n            VEC8_ROUND(0, 5, 10, 15, 1, 6, 11, 12, 2, 7, 8, 13, 3, 4, 9, 14);\n        }\n\n#define ONEQUAD_TRANSPOSE(A, B, C, D)                                     \\\n    {                                                                     \\\n        __m128i t0, t1, t2, t3;                                           \\\n        x_##A = _mm256_add_epi32(x_##A, orig##A);                         \\\n        x_##B = _mm256_add_epi32(x_##B, orig##B);                         \\\n        x_##C = _mm256_add_epi32(x_##C, orig##C);                         \\\n        x_##D = _mm256_add_epi32(x_##D, orig##D);                         \\\n        t_##A = _mm256_unpacklo_epi32(x_##A, x_##B);                      \\\n        t_##B = _mm256_unpacklo_epi32(x_##C, x_##D);                      \\\n        t_##C = _mm256_unpackhi_epi32(x_##A, x_##B);                      \\\n        t_##D = _mm256_unpackhi_epi32(x_##C, x_##D);                      \\\n        x_##A = _mm256_unpacklo_epi64(t_##A, t_##B);                      \\\n        x_##B = _mm256_unpackhi_epi64(t_##A, t_##B);                      \\\n        x_##C = _mm256_unpacklo_epi64(t_##C, t_##D);                      \\\n        x_##D = _mm256_unpackhi_epi64(t_##C, t_##D);                      \\\n        t0    = _mm_xor_si128(_mm256_extracti128_si256(x_##A, 0),         \\\n                           _mm_loadu_si128((const __m128i*) (m + 0))); \\\n        _mm_storeu_si128((__m128i*) (c + 0), t0);                         \\\n        t1 = _mm_xor_si128(_mm256_extracti128_si256(x_##B, 0),            \\\n                           _mm_loadu_si128((const __m128i*) (m + 64)));   \\\n        _mm_storeu_si128((__m128i*) (c + 64), t1);                        \\\n        t2 = _mm_xor_si128(_mm256_extracti128_si256(x_##C, 0),            \\\n                           _mm_loadu_si128((const __m128i*) (m + 128)));  \\\n        _mm_storeu_si128((__m128i*) (c + 128), t2);                       \\\n        t3 = _mm_xor_si128(_mm256_extracti128_si256(x_##D, 0),            \\\n                           _mm_loadu_si128((const __m128i*) (m + 192)));  \\\n        _mm_storeu_si128((__m128i*) (c + 192), t3);                       \\\n        t0 = _mm_xor_si128(_mm256_extracti128_si256(x_##A, 1),            \\\n                           _mm_loadu_si128((const __m128i*) (m + 256)));  \\\n        _mm_storeu_si128((__m128i*) (c + 256), t0);                       \\\n        t1 = _mm_xor_si128(_mm256_extracti128_si256(x_##B, 1),            \\\n                           _mm_loadu_si128((const __m128i*) (m + 320)));  \\\n        _mm_storeu_si128((__m128i*) (c + 320), t1);                       \\\n        t2 = _mm_xor_si128(_mm256_extracti128_si256(x_##C, 1),            \\\n                           _mm_loadu_si128((const __m128i*) (m + 384)));  \\\n        _mm_storeu_si128((__m128i*) (c + 384), t2);                       \\\n        t3 = _mm_xor_si128(_mm256_extracti128_si256(x_##D, 1),            \\\n                           _mm_loadu_si128((const __m128i*) (m + 448)));  \\\n        _mm_storeu_si128((__m128i*) (c + 448), t3);                       \\\n    }\n\n#define ONEQUAD(A, B, C, D) ONEQUAD_TRANSPOSE(A, B, C, D)\n\n#define ONEQUAD_UNPCK(A, B, C, D)                    \\\n    {                                                \\\n        x_##A = _mm256_add_epi32(x_##A, orig##A);    \\\n        x_##B = _mm256_add_epi32(x_##B, orig##B);    \\\n        x_##C = _mm256_add_epi32(x_##C, orig##C);    \\\n        x_##D = _mm256_add_epi32(x_##D, orig##D);    \\\n        t_##A = _mm256_unpacklo_epi32(x_##A, x_##B); \\\n        t_##B = _mm256_unpacklo_epi32(x_##C, x_##D); \\\n        t_##C = _mm256_unpackhi_epi32(x_##A, x_##B); \\\n        t_##D = _mm256_unpackhi_epi32(x_##C, x_##D); \\\n        x_##A = _mm256_unpacklo_epi64(t_##A, t_##B); \\\n        x_##B = _mm256_unpackhi_epi64(t_##A, t_##B); \\\n        x_##C = _mm256_unpacklo_epi64(t_##C, t_##D); \\\n        x_##D = _mm256_unpackhi_epi64(t_##C, t_##D); \\\n    }\n\n#define ONEOCTO(A, B, C, D, A2, B2, C2, D2)                          \\\n    {                                                                \\\n        ONEQUAD_UNPCK(A, B, C, D);                                   \\\n        ONEQUAD_UNPCK(A2, B2, C2, D2);                               \\\n        t_##A  = _mm256_permute2x128_si256(x_##A, x_##A2, 0x20);     \\\n        t_##A2 = _mm256_permute2x128_si256(x_##A, x_##A2, 0x31);     \\\n        t_##B  = _mm256_permute2x128_si256(x_##B, x_##B2, 0x20);     \\\n        t_##B2 = _mm256_permute2x128_si256(x_##B, x_##B2, 0x31);     \\\n        t_##C  = _mm256_permute2x128_si256(x_##C, x_##C2, 0x20);     \\\n        t_##C2 = _mm256_permute2x128_si256(x_##C, x_##C2, 0x31);     \\\n        t_##D  = _mm256_permute2x128_si256(x_##D, x_##D2, 0x20);     \\\n        t_##D2 = _mm256_permute2x128_si256(x_##D, x_##D2, 0x31);     \\\n        t_##A  = _mm256_xor_si256(                                   \\\n            t_##A, _mm256_loadu_si256((const __m256i*) (m + 0)));   \\\n        t_##B = _mm256_xor_si256(                                    \\\n            t_##B, _mm256_loadu_si256((const __m256i*) (m + 64)));   \\\n        t_##C = _mm256_xor_si256(                                    \\\n            t_##C, _mm256_loadu_si256((const __m256i*) (m + 128)));  \\\n        t_##D = _mm256_xor_si256(                                    \\\n            t_##D, _mm256_loadu_si256((const __m256i*) (m + 192)));  \\\n        t_##A2 = _mm256_xor_si256(                                   \\\n            t_##A2, _mm256_loadu_si256((const __m256i*) (m + 256))); \\\n        t_##B2 = _mm256_xor_si256(                                   \\\n            t_##B2, _mm256_loadu_si256((const __m256i*) (m + 320))); \\\n        t_##C2 = _mm256_xor_si256(                                   \\\n            t_##C2, _mm256_loadu_si256((const __m256i*) (m + 384))); \\\n        t_##D2 = _mm256_xor_si256(                                   \\\n            t_##D2, _mm256_loadu_si256((const __m256i*) (m + 448))); \\\n        _mm256_storeu_si256((__m256i*) (c + 0), t_##A);              \\\n        _mm256_storeu_si256((__m256i*) (c + 64), t_##B);             \\\n        _mm256_storeu_si256((__m256i*) (c + 128), t_##C);            \\\n        _mm256_storeu_si256((__m256i*) (c + 192), t_##D);            \\\n        _mm256_storeu_si256((__m256i*) (c + 256), t_##A2);           \\\n        _mm256_storeu_si256((__m256i*) (c + 320), t_##B2);           \\\n        _mm256_storeu_si256((__m256i*) (c + 384), t_##C2);           \\\n        _mm256_storeu_si256((__m256i*) (c + 448), t_##D2);           \\\n    }\n\n        ONEOCTO(0, 1, 2, 3, 4, 5, 6, 7);\n        m += 32;\n        c += 32;\n        ONEOCTO(8, 9, 10, 11, 12, 13, 14, 15);\n        m -= 32;\n        c -= 32;\n\n#undef ONEQUAD\n#undef ONEQUAD_TRANSPOSE\n#undef ONEQUAD_UNPCK\n#undef ONEOCTO\n\n        bytes -= 512;\n        c += 512;\n        m += 512;\n    }\n}\n#undef VEC8_ROT\n#undef VEC8_QUARTERROUND\n#undef VEC8_QUARTERROUND_NAIVE\n#undef VEC8_QUARTERROUND_SHUFFLE\n#undef VEC8_QUARTERROUND_SHUFFLE2\n#undef VEC8_LINE1\n#undef VEC8_LINE2\n#undef VEC8_LINE3\n#undef VEC8_LINE4\n#undef VEC8_ROUND\n#undef VEC8_ROUND_SEQ\n#undef VEC8_ROUND_HALF\n#undef VEC8_ROUND_HALFANDHALF\n"
  },
  {
    "path": "src/libsodium/crypto_stream/chacha20/ref/chacha20_ref.c",
    "content": "\n/*\n chacha-merged.c version 20080118\n D. J. Bernstein\n Public domain.\n */\n\n#include <stdint.h>\n#include <stdlib.h>\n#include <string.h>\n\n#include \"core.h\"\n#include \"crypto_stream_chacha20.h\"\n#include \"private/common.h\"\n#include \"utils.h\"\n\n#include \"../stream_chacha20.h\"\n#include \"chacha20_ref.h\"\n\nstruct chacha_ctx {\n    uint32_t input[16];\n};\n\ntypedef struct chacha_ctx chacha_ctx;\n\n#define U32C(v) (v##U)\n\n#define U32V(v) ((uint32_t)(v) &U32C(0xFFFFFFFF))\n\n#define ROTATE(v, c) (ROTL32(v, c))\n#define XOR(v, w) ((v) ^ (w))\n#define PLUS(v, w) (U32V((v) + (w)))\n#define PLUSONE(v) (PLUS((v), 1))\n\n#define QUARTERROUND(a, b, c, d) \\\n    a = PLUS(a, b);              \\\n    d = ROTATE(XOR(d, a), 16);   \\\n    c = PLUS(c, d);              \\\n    b = ROTATE(XOR(b, c), 12);   \\\n    a = PLUS(a, b);              \\\n    d = ROTATE(XOR(d, a), 8);    \\\n    c = PLUS(c, d);              \\\n    b = ROTATE(XOR(b, c), 7);\n\nstatic void\nchacha_keysetup(chacha_ctx *ctx, const uint8_t *k)\n{\n    ctx->input[0]  = U32C(0x61707865);\n    ctx->input[1]  = U32C(0x3320646e);\n    ctx->input[2]  = U32C(0x79622d32);\n    ctx->input[3]  = U32C(0x6b206574);\n    ctx->input[4]  = LOAD32_LE(k + 0);\n    ctx->input[5]  = LOAD32_LE(k + 4);\n    ctx->input[6]  = LOAD32_LE(k + 8);\n    ctx->input[7]  = LOAD32_LE(k + 12);\n    ctx->input[8]  = LOAD32_LE(k + 16);\n    ctx->input[9]  = LOAD32_LE(k + 20);\n    ctx->input[10] = LOAD32_LE(k + 24);\n    ctx->input[11] = LOAD32_LE(k + 28);\n}\n\nstatic void\nchacha_ivsetup(chacha_ctx *ctx, const uint8_t *iv, const uint8_t *counter)\n{\n    ctx->input[12] = counter == NULL ? 0 : LOAD32_LE(counter + 0);\n    ctx->input[13] = counter == NULL ? 0 : LOAD32_LE(counter + 4);\n    ctx->input[14] = LOAD32_LE(iv + 0);\n    ctx->input[15] = LOAD32_LE(iv + 4);\n}\n\nstatic void\nchacha_ietf_ivsetup(chacha_ctx *ctx, const uint8_t *iv, const uint8_t *counter)\n{\n    ctx->input[12] = counter == NULL ? 0 : LOAD32_LE(counter);\n    ctx->input[13] = LOAD32_LE(iv + 0);\n    ctx->input[14] = LOAD32_LE(iv + 4);\n    ctx->input[15] = LOAD32_LE(iv + 8);\n}\n\nstatic void\nchacha20_encrypt_bytes(chacha_ctx *ctx, const uint8_t *m, uint8_t *c,\n                       unsigned long long bytes)\n{\n    uint32_t x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14,\n        x15;\n    uint32_t j0, j1, j2, j3, j4, j5, j6, j7, j8, j9, j10, j11, j12, j13, j14,\n        j15;\n    uint8_t     *ctarget = NULL;\n    uint8_t      tmp[64];\n    unsigned int i;\n\n    if (!bytes) {\n        return; /* LCOV_EXCL_LINE */\n    }\n    j0  = ctx->input[0];\n    j1  = ctx->input[1];\n    j2  = ctx->input[2];\n    j3  = ctx->input[3];\n    j4  = ctx->input[4];\n    j5  = ctx->input[5];\n    j6  = ctx->input[6];\n    j7  = ctx->input[7];\n    j8  = ctx->input[8];\n    j9  = ctx->input[9];\n    j10 = ctx->input[10];\n    j11 = ctx->input[11];\n    j12 = ctx->input[12];\n    j13 = ctx->input[13];\n    j14 = ctx->input[14];\n    j15 = ctx->input[15];\n\n    for (;;) {\n        if (bytes < 64) {\n            memset(tmp, 0, 64);\n            for (i = 0; i < bytes; ++i) {\n                tmp[i] = m[i];\n            }\n            m       = tmp;\n            ctarget = c;\n            c       = tmp;\n        }\n        x0  = j0;\n        x1  = j1;\n        x2  = j2;\n        x3  = j3;\n        x4  = j4;\n        x5  = j5;\n        x6  = j6;\n        x7  = j7;\n        x8  = j8;\n        x9  = j9;\n        x10 = j10;\n        x11 = j11;\n        x12 = j12;\n        x13 = j13;\n        x14 = j14;\n        x15 = j15;\n        for (i = 20; i > 0; i -= 2) {\n            QUARTERROUND(x0, x4, x8, x12)\n            QUARTERROUND(x1, x5, x9, x13)\n            QUARTERROUND(x2, x6, x10, x14)\n            QUARTERROUND(x3, x7, x11, x15)\n            QUARTERROUND(x0, x5, x10, x15)\n            QUARTERROUND(x1, x6, x11, x12)\n            QUARTERROUND(x2, x7, x8, x13)\n            QUARTERROUND(x3, x4, x9, x14)\n        }\n        x0  = PLUS(x0, j0);\n        x1  = PLUS(x1, j1);\n        x2  = PLUS(x2, j2);\n        x3  = PLUS(x3, j3);\n        x4  = PLUS(x4, j4);\n        x5  = PLUS(x5, j5);\n        x6  = PLUS(x6, j6);\n        x7  = PLUS(x7, j7);\n        x8  = PLUS(x8, j8);\n        x9  = PLUS(x9, j9);\n        x10 = PLUS(x10, j10);\n        x11 = PLUS(x11, j11);\n        x12 = PLUS(x12, j12);\n        x13 = PLUS(x13, j13);\n        x14 = PLUS(x14, j14);\n        x15 = PLUS(x15, j15);\n\n        x0  = XOR(x0, LOAD32_LE(m + 0));\n        x1  = XOR(x1, LOAD32_LE(m + 4));\n        x2  = XOR(x2, LOAD32_LE(m + 8));\n        x3  = XOR(x3, LOAD32_LE(m + 12));\n        x4  = XOR(x4, LOAD32_LE(m + 16));\n        x5  = XOR(x5, LOAD32_LE(m + 20));\n        x6  = XOR(x6, LOAD32_LE(m + 24));\n        x7  = XOR(x7, LOAD32_LE(m + 28));\n        x8  = XOR(x8, LOAD32_LE(m + 32));\n        x9  = XOR(x9, LOAD32_LE(m + 36));\n        x10 = XOR(x10, LOAD32_LE(m + 40));\n        x11 = XOR(x11, LOAD32_LE(m + 44));\n        x12 = XOR(x12, LOAD32_LE(m + 48));\n        x13 = XOR(x13, LOAD32_LE(m + 52));\n        x14 = XOR(x14, LOAD32_LE(m + 56));\n        x15 = XOR(x15, LOAD32_LE(m + 60));\n\n        j12 = PLUSONE(j12);\n        /* LCOV_EXCL_START */\n        if (!j12) {\n            j13 = PLUSONE(j13);\n        }\n        /* LCOV_EXCL_STOP */\n\n        STORE32_LE(c + 0, x0);\n        STORE32_LE(c + 4, x1);\n        STORE32_LE(c + 8, x2);\n        STORE32_LE(c + 12, x3);\n        STORE32_LE(c + 16, x4);\n        STORE32_LE(c + 20, x5);\n        STORE32_LE(c + 24, x6);\n        STORE32_LE(c + 28, x7);\n        STORE32_LE(c + 32, x8);\n        STORE32_LE(c + 36, x9);\n        STORE32_LE(c + 40, x10);\n        STORE32_LE(c + 44, x11);\n        STORE32_LE(c + 48, x12);\n        STORE32_LE(c + 52, x13);\n        STORE32_LE(c + 56, x14);\n        STORE32_LE(c + 60, x15);\n\n        if (bytes <= 64) {\n            if (bytes < 64) {\n                for (i = 0; i < (unsigned int) bytes; ++i) {\n                    ctarget[i] = c[i]; /* ctarget cannot be NULL */\n                }\n            }\n            ctx->input[12] = j12;\n            ctx->input[13] = j13;\n\n            return;\n        }\n        bytes -= 64;\n        c += 64;\n        m += 64;\n    }\n}\n\nstatic int\nstream_ref(unsigned char *c, unsigned long long clen, const unsigned char *n,\n           const unsigned char *k)\n{\n    struct chacha_ctx ctx;\n\n    if (!clen) {\n        return 0;\n    }\n    COMPILER_ASSERT(crypto_stream_chacha20_KEYBYTES == 256 / 8);\n    chacha_keysetup(&ctx, k);\n    chacha_ivsetup(&ctx, n, NULL);\n    memset(c, 0, clen);\n    chacha20_encrypt_bytes(&ctx, c, c, clen);\n    sodium_memzero(&ctx, sizeof ctx);\n\n    return 0;\n}\n\nstatic int\nstream_ietf_ext_ref(unsigned char *c, unsigned long long clen,\n                    const unsigned char *n, const unsigned char *k)\n{\n    struct chacha_ctx ctx;\n\n    if (!clen) {\n        return 0;\n    }\n    COMPILER_ASSERT(crypto_stream_chacha20_KEYBYTES == 256 / 8);\n    chacha_keysetup(&ctx, k);\n    chacha_ietf_ivsetup(&ctx, n, NULL);\n    memset(c, 0, clen);\n    chacha20_encrypt_bytes(&ctx, c, c, clen);\n    sodium_memzero(&ctx, sizeof ctx);\n\n    return 0;\n}\n\nstatic int\nstream_ref_xor_ic(unsigned char *c, const unsigned char *m,\n                  unsigned long long mlen, const unsigned char *n, uint64_t ic,\n                  const unsigned char *k)\n{\n    struct chacha_ctx ctx;\n    uint8_t           ic_bytes[8];\n    uint32_t          ic_high;\n    uint32_t          ic_low;\n\n    if (!mlen) {\n        return 0;\n    }\n    ic_high = U32V(ic >> 32);\n    ic_low  = U32V(ic);\n    STORE32_LE(&ic_bytes[0], ic_low);\n    STORE32_LE(&ic_bytes[4], ic_high);\n    chacha_keysetup(&ctx, k);\n    chacha_ivsetup(&ctx, n, ic_bytes);\n    chacha20_encrypt_bytes(&ctx, m, c, mlen);\n    sodium_memzero(&ctx, sizeof ctx);\n\n    return 0;\n}\n\nstatic int\nstream_ietf_ext_ref_xor_ic(unsigned char *c, const unsigned char *m,\n                           unsigned long long mlen, const unsigned char *n,\n                           uint32_t ic, const unsigned char *k)\n{\n    struct chacha_ctx ctx;\n    uint8_t           ic_bytes[4];\n\n    if (!mlen) {\n        return 0;\n    }\n    STORE32_LE(ic_bytes, ic);\n    chacha_keysetup(&ctx, k);\n    chacha_ietf_ivsetup(&ctx, n, ic_bytes);\n    chacha20_encrypt_bytes(&ctx, m, c, mlen);\n    sodium_memzero(&ctx, sizeof ctx);\n\n    return 0;\n}\n\nstruct crypto_stream_chacha20_implementation\n    crypto_stream_chacha20_ref_implementation = {\n        SODIUM_C99(.stream =) stream_ref,\n        SODIUM_C99(.stream_ietf_ext =) stream_ietf_ext_ref,\n        SODIUM_C99(.stream_xor_ic =) stream_ref_xor_ic,\n        SODIUM_C99(.stream_ietf_ext_xor_ic =) stream_ietf_ext_ref_xor_ic\n    };\n"
  },
  {
    "path": "src/libsodium/crypto_stream/chacha20/ref/chacha20_ref.h",
    "content": "\n#include <stdint.h>\n\n#include \"../stream_chacha20.h\"\n#include \"crypto_stream_chacha20.h\"\n\nextern struct crypto_stream_chacha20_implementation\n    crypto_stream_chacha20_ref_implementation;\n"
  },
  {
    "path": "src/libsodium/crypto_stream/chacha20/stream_chacha20.c",
    "content": "#include \"crypto_stream_chacha20.h\"\n#include \"core.h\"\n#include \"private/chacha20_ietf_ext.h\"\n#include \"private/common.h\"\n#include \"private/implementations.h\"\n#include \"randombytes.h\"\n#include \"runtime.h\"\n#include \"stream_chacha20.h\"\n\n#include \"ref/chacha20_ref.h\"\n#if defined(HAVE_AVX2INTRIN_H) && defined(HAVE_EMMINTRIN_H) && \\\n    defined(HAVE_TMMINTRIN_H) && defined(HAVE_SMMINTRIN_H)\n# include \"dolbeau/chacha20_dolbeau-avx2.h\"\n#endif\n#if defined(HAVE_EMMINTRIN_H) && defined(HAVE_TMMINTRIN_H)\n# include \"dolbeau/chacha20_dolbeau-ssse3.h\"\n#endif\n\nstatic const crypto_stream_chacha20_implementation *implementation =\n    &crypto_stream_chacha20_ref_implementation;\n\nsize_t\ncrypto_stream_chacha20_keybytes(void) {\n    return crypto_stream_chacha20_KEYBYTES;\n}\n\nsize_t\ncrypto_stream_chacha20_noncebytes(void) {\n    return crypto_stream_chacha20_NONCEBYTES;\n}\n\nsize_t\ncrypto_stream_chacha20_messagebytes_max(void)\n{\n    return crypto_stream_chacha20_MESSAGEBYTES_MAX;\n}\n\nsize_t\ncrypto_stream_chacha20_ietf_keybytes(void) {\n    return crypto_stream_chacha20_ietf_KEYBYTES;\n}\n\nsize_t\ncrypto_stream_chacha20_ietf_noncebytes(void) {\n    return crypto_stream_chacha20_ietf_NONCEBYTES;\n}\n\nsize_t\ncrypto_stream_chacha20_ietf_messagebytes_max(void)\n{\n    return crypto_stream_chacha20_ietf_MESSAGEBYTES_MAX;\n}\n\nint\ncrypto_stream_chacha20(unsigned char *c, unsigned long long clen,\n                       const unsigned char *n, const unsigned char *k)\n{\n    if (clen > crypto_stream_chacha20_MESSAGEBYTES_MAX) {\n        sodium_misuse(); /* LCOV_EXCL_LINE */\n    }\n    return implementation->stream(c, clen, n, k);\n}\n\nint\ncrypto_stream_chacha20_xor_ic(unsigned char *c, const unsigned char *m,\n                              unsigned long long mlen,\n                              const unsigned char *n, uint64_t ic,\n                              const unsigned char *k)\n{\n    if (mlen > crypto_stream_chacha20_MESSAGEBYTES_MAX) {\n        sodium_misuse(); /* LCOV_EXCL_LINE */\n    }\n    return implementation->stream_xor_ic(c, m, mlen, n, ic, k);\n}\n\nint\ncrypto_stream_chacha20_xor(unsigned char *c, const unsigned char *m,\n                           unsigned long long mlen, const unsigned char *n,\n                           const unsigned char *k)\n{\n    if (mlen > crypto_stream_chacha20_MESSAGEBYTES_MAX) {\n        sodium_misuse(); /* LCOV_EXCL_LINE */\n    }\n    return implementation->stream_xor_ic(c, m, mlen, n, 0U, k);\n}\n\nint\ncrypto_stream_chacha20_ietf_ext(unsigned char *c, unsigned long long clen,\n                                const unsigned char *n, const unsigned char *k)\n{\n    if (clen > crypto_stream_chacha20_MESSAGEBYTES_MAX) {\n        sodium_misuse(); /* LCOV_EXCL_LINE */\n    }\n    return implementation->stream_ietf_ext(c, clen, n, k);\n}\n\nint\ncrypto_stream_chacha20_ietf_ext_xor_ic(unsigned char *c, const unsigned char *m,\n                                       unsigned long long mlen,\n                                       const unsigned char *n, uint32_t ic,\n                                       const unsigned char *k)\n{\n    if (mlen > crypto_stream_chacha20_MESSAGEBYTES_MAX) {\n        sodium_misuse(); /* LCOV_EXCL_LINE */\n    }\n    return implementation->stream_ietf_ext_xor_ic(c, m, mlen, n, ic, k);\n}\n\nstatic int\ncrypto_stream_chacha20_ietf_ext_xor(unsigned char *c, const unsigned char *m,\n                                    unsigned long long mlen, const unsigned char *n,\n                                    const unsigned char *k)\n{\n    if (mlen > crypto_stream_chacha20_MESSAGEBYTES_MAX) {\n        sodium_misuse(); /* LCOV_EXCL_LINE */\n    }\n    return implementation->stream_ietf_ext_xor_ic(c, m, mlen, n, 0U, k);\n}\n\nint\ncrypto_stream_chacha20_ietf(unsigned char *c, unsigned long long clen,\n                            const unsigned char *n, const unsigned char *k)\n{\n    if (clen > crypto_stream_chacha20_ietf_MESSAGEBYTES_MAX) {\n        sodium_misuse(); /* LCOV_EXCL_LINE */\n    }\n    return crypto_stream_chacha20_ietf_ext(c, clen, n, k);\n}\n\nint\ncrypto_stream_chacha20_ietf_xor_ic(unsigned char *c, const unsigned char *m,\n                                   unsigned long long mlen,\n                                   const unsigned char *n, uint32_t ic,\n                                   const unsigned char *k)\n{\n    if ((unsigned long long) ic >\n        (64ULL * (1ULL << 32)) / 64ULL - (mlen + 63ULL) / 64ULL) {\n        sodium_misuse(); /* LCOV_EXCL_LINE */\n    }\n    return crypto_stream_chacha20_ietf_ext_xor_ic(c, m, mlen, n, ic, k);\n}\n\nint\ncrypto_stream_chacha20_ietf_xor(unsigned char *c, const unsigned char *m,\n                                unsigned long long mlen, const unsigned char *n,\n                                const unsigned char *k)\n{\n    if (mlen > crypto_stream_chacha20_ietf_MESSAGEBYTES_MAX) {\n        sodium_misuse(); /* LCOV_EXCL_LINE */\n    }\n    return crypto_stream_chacha20_ietf_ext_xor(c, m, mlen, n, k);\n}\n\nvoid\ncrypto_stream_chacha20_ietf_keygen(unsigned char k[crypto_stream_chacha20_ietf_KEYBYTES])\n{\n    randombytes_buf(k, crypto_stream_chacha20_ietf_KEYBYTES);\n}\n\nvoid\ncrypto_stream_chacha20_keygen(unsigned char k[crypto_stream_chacha20_KEYBYTES])\n{\n    randombytes_buf(k, crypto_stream_chacha20_KEYBYTES);\n}\n\nint\n_crypto_stream_chacha20_pick_best_implementation(void)\n{\n    implementation = &crypto_stream_chacha20_ref_implementation;\n#if defined(HAVE_AVX2INTRIN_H) && defined(HAVE_EMMINTRIN_H) && \\\n    defined(HAVE_TMMINTRIN_H) && defined(HAVE_SMMINTRIN_H)\n    if (sodium_runtime_has_avx2()) {\n        implementation = &crypto_stream_chacha20_dolbeau_avx2_implementation;\n        return 0;\n    }\n#endif\n#if defined(HAVE_EMMINTRIN_H) && defined(HAVE_TMMINTRIN_H)\n    if (sodium_runtime_has_ssse3()) {\n        implementation = &crypto_stream_chacha20_dolbeau_ssse3_implementation;\n        return 0;\n    }\n#endif\n    return 0;\n}\n"
  },
  {
    "path": "src/libsodium/crypto_stream/chacha20/stream_chacha20.h",
    "content": "\n#ifndef stream_chacha20_H\n#define stream_chacha20_H\n\n#include <stdint.h>\n\ntypedef struct crypto_stream_chacha20_implementation {\n    int (*stream)(unsigned char *c, unsigned long long clen,\n                  const unsigned char *n, const unsigned char *k);\n    int (*stream_ietf_ext)(unsigned char *c, unsigned long long clen,\n                           const unsigned char *n, const unsigned char *k);\n    int (*stream_xor_ic)(unsigned char *c, const unsigned char *m,\n                         unsigned long long mlen,\n                         const unsigned char *n, uint64_t ic,\n                         const unsigned char *k);\n    int (*stream_ietf_ext_xor_ic)(unsigned char *c, const unsigned char *m,\n                                  unsigned long long mlen,\n                                  const unsigned char *n, uint32_t ic,\n                                  const unsigned char *k);\n} crypto_stream_chacha20_implementation;\n\n#endif\n"
  },
  {
    "path": "src/libsodium/crypto_stream/crypto_stream.c",
    "content": "\n#include \"crypto_stream.h\"\n#include \"randombytes.h\"\n\nsize_t\ncrypto_stream_keybytes(void)\n{\n    return crypto_stream_KEYBYTES;\n}\n\nsize_t\ncrypto_stream_noncebytes(void)\n{\n    return crypto_stream_NONCEBYTES;\n}\n\nsize_t\ncrypto_stream_messagebytes_max(void)\n{\n    return crypto_stream_MESSAGEBYTES_MAX;\n}\n\nconst char *\ncrypto_stream_primitive(void)\n{\n    return crypto_stream_PRIMITIVE;\n}\n\nint\ncrypto_stream(unsigned char *c, unsigned long long clen,\n              const unsigned char *n, const unsigned char *k)\n{\n    return crypto_stream_xsalsa20(c, clen, n, k);\n}\n\n\nint\ncrypto_stream_xor(unsigned char *c, const unsigned char *m,\n                  unsigned long long mlen, const unsigned char *n,\n                  const unsigned char *k)\n{\n    return crypto_stream_xsalsa20_xor(c, m, mlen, n, k);\n}\n\nvoid\ncrypto_stream_keygen(unsigned char k[crypto_stream_KEYBYTES])\n{\n    randombytes_buf(k, crypto_stream_KEYBYTES);\n}\n"
  },
  {
    "path": "src/libsodium/crypto_stream/salsa20/ref/salsa20_ref.c",
    "content": "/*\nversion 20140420\nD. J. Bernstein\nPublic domain.\n*/\n\n#include <stdint.h>\n\n#include \"crypto_core_salsa20.h\"\n#include \"crypto_stream_salsa20.h\"\n#include \"utils.h\"\n\n#include \"../stream_salsa20.h\"\n#include \"salsa20_ref.h\"\n\n#ifndef HAVE_AMD64_ASM\n\nstatic int\nstream_ref(unsigned char *c, unsigned long long clen, const unsigned char *n,\n           const unsigned char *k)\n{\n    unsigned char in[16];\n    unsigned char block[64];\n    unsigned char kcopy[32];\n    unsigned int  i;\n    unsigned int  u;\n\n    if (!clen) {\n        return 0;\n    }\n    for (i = 0; i < 32; i++) {\n        kcopy[i] = k[i];\n    }\n    for (i = 0; i < 8; i++) {\n        in[i] = n[i];\n    }\n    for (i = 8; i < 16; i++) {\n        in[i] = 0;\n    }\n    while (clen >= 64) {\n        crypto_core_salsa20(c, in, kcopy, NULL);\n        u = 1;\n        for (i = 8; i < 16; i++) {\n            u += (unsigned int) in[i];\n            in[i] = u;\n            u >>= 8;\n        }\n        clen -= 64;\n        c += 64;\n    }\n    if (clen) {\n        crypto_core_salsa20(block, in, kcopy, NULL);\n        for (i = 0; i < (unsigned int) clen; i++) {\n            c[i] = block[i];\n        }\n    }\n    sodium_memzero(block, sizeof block);\n    sodium_memzero(kcopy, sizeof kcopy);\n\n    return 0;\n}\n\nstatic int\nstream_ref_xor_ic(unsigned char *c, const unsigned char *m,\n                  unsigned long long mlen, const unsigned char *n, uint64_t ic,\n                  const unsigned char *k)\n{\n    unsigned char in[16];\n    unsigned char block[64];\n    unsigned char kcopy[32];\n    unsigned int  i;\n    unsigned int  u;\n\n    if (!mlen) {\n        return 0;\n    }\n    for (i = 0; i < 32; i++) {\n        kcopy[i] = k[i];\n    }\n    for (i = 0; i < 8; i++) {\n        in[i] = n[i];\n    }\n    for (i = 8; i < 16; i++) {\n        in[i] = (unsigned char) (ic & 0xff);\n        ic >>= 8;\n    }\n    while (mlen >= 64) {\n        crypto_core_salsa20(block, in, kcopy, NULL);\n        for (i = 0; i < 64; i++) {\n            c[i] = m[i] ^ block[i];\n        }\n        u = 1;\n        for (i = 8; i < 16; i++) {\n            u += (unsigned int) in[i];\n            in[i] = u;\n            u >>= 8;\n        }\n        mlen -= 64;\n        c += 64;\n        m += 64;\n    }\n    if (mlen) {\n        crypto_core_salsa20(block, in, kcopy, NULL);\n        for (i = 0; i < (unsigned int) mlen; i++) {\n            c[i] = m[i] ^ block[i];\n        }\n    }\n    sodium_memzero(block, sizeof block);\n    sodium_memzero(kcopy, sizeof kcopy);\n\n    return 0;\n}\n\nstruct crypto_stream_salsa20_implementation\n    crypto_stream_salsa20_ref_implementation = {\n        SODIUM_C99(.stream =) stream_ref,\n        SODIUM_C99(.stream_xor_ic =) stream_ref_xor_ic,\n    };\n\n#endif\n"
  },
  {
    "path": "src/libsodium/crypto_stream/salsa20/ref/salsa20_ref.h",
    "content": "\n#include <stdint.h>\n\n#include \"../stream_salsa20.h\"\n#include \"crypto_stream_salsa20.h\"\n\nextern struct crypto_stream_salsa20_implementation\n    crypto_stream_salsa20_ref_implementation;\n"
  },
  {
    "path": "src/libsodium/crypto_stream/salsa20/stream_salsa20.c",
    "content": "#include \"crypto_stream_salsa20.h\"\n#include \"private/common.h\"\n#include \"private/implementations.h\"\n#include \"randombytes.h\"\n#include \"runtime.h\"\n#include \"stream_salsa20.h\"\n\n#ifdef HAVE_AMD64_ASM\n# include \"xmm6/salsa20_xmm6.h\"\n#else\n# include \"ref/salsa20_ref.h\"\n#endif\n#if !defined(HAVE_AMD64_ASM) && defined(HAVE_EMMINTRIN_H)\n# include \"xmm6int/salsa20_xmm6int-sse2.h\"\n#endif\n#if defined(HAVE_AVX2INTRIN_H) && defined(HAVE_EMMINTRIN_H) && \\\n    defined(HAVE_TMMINTRIN_H) && defined(HAVE_SMMINTRIN_H)\n# include \"xmm6int/salsa20_xmm6int-avx2.h\"\n#endif\n\n#if HAVE_AMD64_ASM\nstatic const crypto_stream_salsa20_implementation *implementation =\n    &crypto_stream_salsa20_xmm6_implementation;\n#else\nstatic const crypto_stream_salsa20_implementation *implementation =\n    &crypto_stream_salsa20_ref_implementation;\n#endif\n\nsize_t\ncrypto_stream_salsa20_keybytes(void)\n{\n    return crypto_stream_salsa20_KEYBYTES;\n}\n\nsize_t\ncrypto_stream_salsa20_noncebytes(void)\n{\n    return crypto_stream_salsa20_NONCEBYTES;\n}\n\nsize_t\ncrypto_stream_salsa20_messagebytes_max(void)\n{\n    return crypto_stream_salsa20_MESSAGEBYTES_MAX;\n}\n\nint\ncrypto_stream_salsa20(unsigned char *c, unsigned long long clen,\n                      const unsigned char *n, const unsigned char *k)\n{\n    return implementation->stream(c, clen, n, k);\n}\n\nint\ncrypto_stream_salsa20_xor_ic(unsigned char *c, const unsigned char *m,\n                             unsigned long long mlen,\n                             const unsigned char *n, uint64_t ic,\n                             const unsigned char *k)\n{\n    return implementation->stream_xor_ic(c, m, mlen, n, ic, k);\n}\n\nint\ncrypto_stream_salsa20_xor(unsigned char *c, const unsigned char *m,\n                          unsigned long long mlen, const unsigned char *n,\n                          const unsigned char *k)\n{\n    return implementation->stream_xor_ic(c, m, mlen, n, 0U, k);\n}\n\nvoid\ncrypto_stream_salsa20_keygen(unsigned char k[crypto_stream_salsa20_KEYBYTES])\n{\n    randombytes_buf(k, crypto_stream_salsa20_KEYBYTES);\n}\n\nint\n_crypto_stream_salsa20_pick_best_implementation(void)\n{\n#ifdef HAVE_AMD64_ASM\n    implementation = &crypto_stream_salsa20_xmm6_implementation;\n#else\n    implementation = &crypto_stream_salsa20_ref_implementation;\n#endif\n\n#if defined(HAVE_AVX2INTRIN_H) && defined(HAVE_EMMINTRIN_H) && \\\n    defined(HAVE_TMMINTRIN_H) && defined(HAVE_SMMINTRIN_H)\n    if (sodium_runtime_has_avx2()) {\n        implementation = &crypto_stream_salsa20_xmm6int_avx2_implementation;\n        return 0;\n    }\n#endif\n#if !defined(HAVE_AMD64_ASM) && defined(HAVE_EMMINTRIN_H)\n    if (sodium_runtime_has_sse2()) {\n        implementation = &crypto_stream_salsa20_xmm6int_sse2_implementation;\n        return 0;\n    }\n#endif\n    return 0; /* LCOV_EXCL_LINE */\n}\n"
  },
  {
    "path": "src/libsodium/crypto_stream/salsa20/stream_salsa20.h",
    "content": "\n#ifndef stream_salsa20_H\n#define stream_salsa20_H\n\n#include <stdint.h>\n\n#include \"private/quirks.h\"\n\ntypedef struct crypto_stream_salsa20_implementation {\n    int (*stream)(unsigned char *c, unsigned long long clen,\n                  const unsigned char *n, const unsigned char *k);\n    int (*stream_xor_ic)(unsigned char *c, const unsigned char *m,\n                         unsigned long long mlen,\n                         const unsigned char *n, uint64_t ic,\n                         const unsigned char *k);\n} crypto_stream_salsa20_implementation;\n\n#endif\n"
  },
  {
    "path": "src/libsodium/crypto_stream/salsa20/xmm6/salsa20_xmm6-asm.S",
    "content": "#ifdef HAVE_AMD64_ASM\n\n#include \"private/asm_cet.h\"\n#include \"salsa20_xmm6-asm_namespace.h\"\n\n.text\n.p2align 5\n\n#ifdef ASM_HIDE_SYMBOL\nASM_HIDE_SYMBOL stream_salsa20_xmm6\nASM_HIDE_SYMBOL _stream_salsa20_xmm6\n#endif\n.globl  stream_salsa20_xmm6\n.globl _stream_salsa20_xmm6\n#ifdef __ELF__\n.type  stream_salsa20_xmm6, @function\n.type _stream_salsa20_xmm6, @function\n#endif\nstream_salsa20_xmm6:\n_stream_salsa20_xmm6:\n\n_CET_ENDBR\nmov %rsp,%r11\nand $31,%r11\nadd $512,%r11\nsub %r11,%rsp\nmovq %r11,416(%rsp)\nmovq %r12,424(%rsp)\nmovq %r13,432(%rsp)\nmovq %r14,440(%rsp)\nmovq %r15,448(%rsp)\nmovq %rbx,456(%rsp)\nmovq %rbp,464(%rsp)\nmov  %rsi,%r9\nmov  %rdi,%rdi\nmov  %rdi,%rsi\nmov  %rdx,%rdx\nmov  %rcx,%r10\ncmp  $0,%r9\njbe ._done\nmov  $0,%rax\nmov  %r9,%rcx\nrep stosb\nsub  %r9,%rdi\nmovq $0,472(%rsp)\njmp ._start\n\n.text\n.p2align 5\n\n#ifdef ASM_HIDE_SYMBOL\nASM_HIDE_SYMBOL stream_salsa20_xmm6_xor_ic\nASM_HIDE_SYMBOL _stream_salsa20_xmm6_xor_ic\n#endif\n.globl  stream_salsa20_xmm6_xor_ic\n.globl _stream_salsa20_xmm6_xor_ic\n#ifdef __ELF__\n.type  stream_salsa20_xmm6_xor_ic, @function\n.type _stream_salsa20_xmm6_xor_ic, @function\n#endif\nstream_salsa20_xmm6_xor_ic:\n_stream_salsa20_xmm6_xor_ic:\n\n_CET_ENDBR\nmov %rsp,%r11\nand $31,%r11\nadd $512,%r11\nsub %r11,%rsp\nmovq %r11,416(%rsp)\nmovq %r12,424(%rsp)\nmovq %r13,432(%rsp)\nmovq %r14,440(%rsp)\nmovq %r15,448(%rsp)\nmovq %rbx,456(%rsp)\nmovq %rbp,464(%rsp)\nmov  %rdi,%rdi\nmov  %rsi,%rsi\nmov  %r9,%r10\nmovq %r8,472(%rsp)\nmov  %rdx,%r9\nmov  %rcx,%rdx\ncmp  $0,%r9\njbe ._done\n\n._start:\nmovl   20(%r10),%ecx\nmovl   0(%r10),%r8d\nmovl   0(%rdx),%eax\nmovl   16(%r10),%r11d\nmovl %ecx,64(%rsp)\nmovl %r8d,4+64(%rsp)\nmovl %eax,8+64(%rsp)\nmovl %r11d,12+64(%rsp)\nmovl   24(%r10),%r8d\nmovl   4(%r10),%eax\nmovl   4(%rdx),%edx\nmovq 472(%rsp),%rcx\nmovl %ecx,80(%rsp)\nmovl %r8d,4+80(%rsp)\nmovl %eax,8+80(%rsp)\nmovl %edx,12+80(%rsp)\nmovl   12(%r10),%edx\nshr  $32,%rcx\nmovl   28(%r10),%r8d\nmovl   8(%r10),%eax\nmovl %edx,96(%rsp)\nmovl %ecx,4+96(%rsp)\nmovl %r8d,8+96(%rsp)\nmovl %eax,12+96(%rsp)\nmov  $1634760805,%rdx\nmov  $857760878,%rcx\nmov  $2036477234,%r8\nmov  $1797285236,%rax\nmovl %edx,112(%rsp)\nmovl %ecx,4+112(%rsp)\nmovl %r8d,8+112(%rsp)\nmovl %eax,12+112(%rsp)\ncmp  $256,%r9\njb ._bytesbetween1and255\nmovdqa 112(%rsp),%xmm0\npshufd $0x55,%xmm0,%xmm1\npshufd $0xaa,%xmm0,%xmm2\npshufd $0xff,%xmm0,%xmm3\npshufd $0x00,%xmm0,%xmm0\nmovdqa %xmm1,128(%rsp)\nmovdqa %xmm2,144(%rsp)\nmovdqa %xmm3,160(%rsp)\nmovdqa %xmm0,176(%rsp)\nmovdqa 64(%rsp),%xmm0\npshufd $0xaa,%xmm0,%xmm1\npshufd $0xff,%xmm0,%xmm2\npshufd $0x00,%xmm0,%xmm3\npshufd $0x55,%xmm0,%xmm0\nmovdqa %xmm1,192(%rsp)\nmovdqa %xmm2,208(%rsp)\nmovdqa %xmm3,224(%rsp)\nmovdqa %xmm0,240(%rsp)\nmovdqa 80(%rsp),%xmm0\npshufd $0xff,%xmm0,%xmm1\npshufd $0x55,%xmm0,%xmm2\npshufd $0xaa,%xmm0,%xmm0\nmovdqa %xmm1,256(%rsp)\nmovdqa %xmm2,272(%rsp)\nmovdqa %xmm0,288(%rsp)\nmovdqa 96(%rsp),%xmm0\npshufd $0x00,%xmm0,%xmm1\npshufd $0xaa,%xmm0,%xmm2\npshufd $0xff,%xmm0,%xmm0\nmovdqa %xmm1,304(%rsp)\nmovdqa %xmm2,320(%rsp)\nmovdqa %xmm0,336(%rsp)\n\n.p2align 4\n._bytesatleast256:\nmovq 472(%rsp),%rdx\nmov  %rdx,%rcx\nshr  $32,%rcx\nmovl %edx,352(%rsp)\nmovl %ecx,368(%rsp)\nadd  $1,%rdx\nmov  %rdx,%rcx\nshr  $32,%rcx\nmovl %edx,4+352(%rsp)\nmovl %ecx,4+368(%rsp)\nadd  $1,%rdx\nmov  %rdx,%rcx\nshr  $32,%rcx\nmovl %edx,8+352(%rsp)\nmovl %ecx,8+368(%rsp)\nadd  $1,%rdx\nmov  %rdx,%rcx\nshr  $32,%rcx\nmovl %edx,12+352(%rsp)\nmovl %ecx,12+368(%rsp)\nadd  $1,%rdx\nmov  %rdx,%rcx\nshr  $32,%rcx\nmovl %edx,80(%rsp)\nmovl %ecx,4+96(%rsp)\nmovq %rdx,472(%rsp)\nmovq %r9,480(%rsp)\nmov  $20,%rdx\nmovdqa 128(%rsp),%xmm0\nmovdqa 144(%rsp),%xmm1\nmovdqa 160(%rsp),%xmm2\nmovdqa 320(%rsp),%xmm3\nmovdqa 336(%rsp),%xmm4\nmovdqa 192(%rsp),%xmm5\nmovdqa 208(%rsp),%xmm6\nmovdqa 240(%rsp),%xmm7\nmovdqa 256(%rsp),%xmm8\nmovdqa 272(%rsp),%xmm9\nmovdqa 288(%rsp),%xmm10\nmovdqa 368(%rsp),%xmm11\nmovdqa 176(%rsp),%xmm12\nmovdqa 224(%rsp),%xmm13\nmovdqa 304(%rsp),%xmm14\nmovdqa 352(%rsp),%xmm15\n\n.p2align 4\n._mainloop1:\nmovdqa %xmm1,384(%rsp)\nmovdqa %xmm2,400(%rsp)\nmovdqa %xmm13,%xmm1\npaddd %xmm12,%xmm1\nmovdqa %xmm1,%xmm2\npslld $7,%xmm1\npxor  %xmm1,%xmm14\npsrld $25,%xmm2\npxor  %xmm2,%xmm14\nmovdqa %xmm7,%xmm1\npaddd %xmm0,%xmm1\nmovdqa %xmm1,%xmm2\npslld $7,%xmm1\npxor  %xmm1,%xmm11\npsrld $25,%xmm2\npxor  %xmm2,%xmm11\nmovdqa %xmm12,%xmm1\npaddd %xmm14,%xmm1\nmovdqa %xmm1,%xmm2\npslld $9,%xmm1\npxor  %xmm1,%xmm15\npsrld $23,%xmm2\npxor  %xmm2,%xmm15\nmovdqa %xmm0,%xmm1\npaddd %xmm11,%xmm1\nmovdqa %xmm1,%xmm2\npslld $9,%xmm1\npxor  %xmm1,%xmm9\npsrld $23,%xmm2\npxor  %xmm2,%xmm9\nmovdqa %xmm14,%xmm1\npaddd %xmm15,%xmm1\nmovdqa %xmm1,%xmm2\npslld $13,%xmm1\npxor  %xmm1,%xmm13\npsrld $19,%xmm2\npxor  %xmm2,%xmm13\nmovdqa %xmm11,%xmm1\npaddd %xmm9,%xmm1\nmovdqa %xmm1,%xmm2\npslld $13,%xmm1\npxor  %xmm1,%xmm7\npsrld $19,%xmm2\npxor  %xmm2,%xmm7\nmovdqa %xmm15,%xmm1\npaddd %xmm13,%xmm1\nmovdqa %xmm1,%xmm2\npslld $18,%xmm1\npxor  %xmm1,%xmm12\npsrld $14,%xmm2\npxor  %xmm2,%xmm12\nmovdqa 384(%rsp),%xmm1\nmovdqa %xmm12,384(%rsp)\nmovdqa %xmm9,%xmm2\npaddd %xmm7,%xmm2\nmovdqa %xmm2,%xmm12\npslld $18,%xmm2\npxor  %xmm2,%xmm0\npsrld $14,%xmm12\npxor  %xmm12,%xmm0\nmovdqa %xmm5,%xmm2\npaddd %xmm1,%xmm2\nmovdqa %xmm2,%xmm12\npslld $7,%xmm2\npxor  %xmm2,%xmm3\npsrld $25,%xmm12\npxor  %xmm12,%xmm3\nmovdqa 400(%rsp),%xmm2\nmovdqa %xmm0,400(%rsp)\nmovdqa %xmm6,%xmm0\npaddd %xmm2,%xmm0\nmovdqa %xmm0,%xmm12\npslld $7,%xmm0\npxor  %xmm0,%xmm4\npsrld $25,%xmm12\npxor  %xmm12,%xmm4\nmovdqa %xmm1,%xmm0\npaddd %xmm3,%xmm0\nmovdqa %xmm0,%xmm12\npslld $9,%xmm0\npxor  %xmm0,%xmm10\npsrld $23,%xmm12\npxor  %xmm12,%xmm10\nmovdqa %xmm2,%xmm0\npaddd %xmm4,%xmm0\nmovdqa %xmm0,%xmm12\npslld $9,%xmm0\npxor  %xmm0,%xmm8\npsrld $23,%xmm12\npxor  %xmm12,%xmm8\nmovdqa %xmm3,%xmm0\npaddd %xmm10,%xmm0\nmovdqa %xmm0,%xmm12\npslld $13,%xmm0\npxor  %xmm0,%xmm5\npsrld $19,%xmm12\npxor  %xmm12,%xmm5\nmovdqa %xmm4,%xmm0\npaddd %xmm8,%xmm0\nmovdqa %xmm0,%xmm12\npslld $13,%xmm0\npxor  %xmm0,%xmm6\npsrld $19,%xmm12\npxor  %xmm12,%xmm6\nmovdqa %xmm10,%xmm0\npaddd %xmm5,%xmm0\nmovdqa %xmm0,%xmm12\npslld $18,%xmm0\npxor  %xmm0,%xmm1\npsrld $14,%xmm12\npxor  %xmm12,%xmm1\nmovdqa 384(%rsp),%xmm0\nmovdqa %xmm1,384(%rsp)\nmovdqa %xmm4,%xmm1\npaddd %xmm0,%xmm1\nmovdqa %xmm1,%xmm12\npslld $7,%xmm1\npxor  %xmm1,%xmm7\npsrld $25,%xmm12\npxor  %xmm12,%xmm7\nmovdqa %xmm8,%xmm1\npaddd %xmm6,%xmm1\nmovdqa %xmm1,%xmm12\npslld $18,%xmm1\npxor  %xmm1,%xmm2\npsrld $14,%xmm12\npxor  %xmm12,%xmm2\nmovdqa 400(%rsp),%xmm12\nmovdqa %xmm2,400(%rsp)\nmovdqa %xmm14,%xmm1\npaddd %xmm12,%xmm1\nmovdqa %xmm1,%xmm2\npslld $7,%xmm1\npxor  %xmm1,%xmm5\npsrld $25,%xmm2\npxor  %xmm2,%xmm5\nmovdqa %xmm0,%xmm1\npaddd %xmm7,%xmm1\nmovdqa %xmm1,%xmm2\npslld $9,%xmm1\npxor  %xmm1,%xmm10\npsrld $23,%xmm2\npxor  %xmm2,%xmm10\nmovdqa %xmm12,%xmm1\npaddd %xmm5,%xmm1\nmovdqa %xmm1,%xmm2\npslld $9,%xmm1\npxor  %xmm1,%xmm8\npsrld $23,%xmm2\npxor  %xmm2,%xmm8\nmovdqa %xmm7,%xmm1\npaddd %xmm10,%xmm1\nmovdqa %xmm1,%xmm2\npslld $13,%xmm1\npxor  %xmm1,%xmm4\npsrld $19,%xmm2\npxor  %xmm2,%xmm4\nmovdqa %xmm5,%xmm1\npaddd %xmm8,%xmm1\nmovdqa %xmm1,%xmm2\npslld $13,%xmm1\npxor  %xmm1,%xmm14\npsrld $19,%xmm2\npxor  %xmm2,%xmm14\nmovdqa %xmm10,%xmm1\npaddd %xmm4,%xmm1\nmovdqa %xmm1,%xmm2\npslld $18,%xmm1\npxor  %xmm1,%xmm0\npsrld $14,%xmm2\npxor  %xmm2,%xmm0\nmovdqa 384(%rsp),%xmm1\nmovdqa %xmm0,384(%rsp)\nmovdqa %xmm8,%xmm0\npaddd %xmm14,%xmm0\nmovdqa %xmm0,%xmm2\npslld $18,%xmm0\npxor  %xmm0,%xmm12\npsrld $14,%xmm2\npxor  %xmm2,%xmm12\nmovdqa %xmm11,%xmm0\npaddd %xmm1,%xmm0\nmovdqa %xmm0,%xmm2\npslld $7,%xmm0\npxor  %xmm0,%xmm6\npsrld $25,%xmm2\npxor  %xmm2,%xmm6\nmovdqa 400(%rsp),%xmm2\nmovdqa %xmm12,400(%rsp)\nmovdqa %xmm3,%xmm0\npaddd %xmm2,%xmm0\nmovdqa %xmm0,%xmm12\npslld $7,%xmm0\npxor  %xmm0,%xmm13\npsrld $25,%xmm12\npxor  %xmm12,%xmm13\nmovdqa %xmm1,%xmm0\npaddd %xmm6,%xmm0\nmovdqa %xmm0,%xmm12\npslld $9,%xmm0\npxor  %xmm0,%xmm15\npsrld $23,%xmm12\npxor  %xmm12,%xmm15\nmovdqa %xmm2,%xmm0\npaddd %xmm13,%xmm0\nmovdqa %xmm0,%xmm12\npslld $9,%xmm0\npxor  %xmm0,%xmm9\npsrld $23,%xmm12\npxor  %xmm12,%xmm9\nmovdqa %xmm6,%xmm0\npaddd %xmm15,%xmm0\nmovdqa %xmm0,%xmm12\npslld $13,%xmm0\npxor  %xmm0,%xmm11\npsrld $19,%xmm12\npxor  %xmm12,%xmm11\nmovdqa %xmm13,%xmm0\npaddd %xmm9,%xmm0\nmovdqa %xmm0,%xmm12\npslld $13,%xmm0\npxor  %xmm0,%xmm3\npsrld $19,%xmm12\npxor  %xmm12,%xmm3\nmovdqa %xmm15,%xmm0\npaddd %xmm11,%xmm0\nmovdqa %xmm0,%xmm12\npslld $18,%xmm0\npxor  %xmm0,%xmm1\npsrld $14,%xmm12\npxor  %xmm12,%xmm1\nmovdqa %xmm9,%xmm0\npaddd %xmm3,%xmm0\nmovdqa %xmm0,%xmm12\npslld $18,%xmm0\npxor  %xmm0,%xmm2\npsrld $14,%xmm12\npxor  %xmm12,%xmm2\nmovdqa 384(%rsp),%xmm12\nmovdqa 400(%rsp),%xmm0\nsub  $2,%rdx\nja ._mainloop1\n\npaddd 176(%rsp),%xmm12\npaddd 240(%rsp),%xmm7\npaddd 288(%rsp),%xmm10\npaddd 336(%rsp),%xmm4\nmovd   %xmm12,%rdx\nmovd   %xmm7,%rcx\nmovd   %xmm10,%r8\nmovd   %xmm4,%r9\npshufd $0x39,%xmm12,%xmm12\npshufd $0x39,%xmm7,%xmm7\npshufd $0x39,%xmm10,%xmm10\npshufd $0x39,%xmm4,%xmm4\nxorl 0(%rsi),%edx\nxorl 4(%rsi),%ecx\nxorl 8(%rsi),%r8d\nxorl 12(%rsi),%r9d\nmovl   %edx,0(%rdi)\nmovl   %ecx,4(%rdi)\nmovl   %r8d,8(%rdi)\nmovl   %r9d,12(%rdi)\nmovd   %xmm12,%rdx\nmovd   %xmm7,%rcx\nmovd   %xmm10,%r8\nmovd   %xmm4,%r9\npshufd $0x39,%xmm12,%xmm12\npshufd $0x39,%xmm7,%xmm7\npshufd $0x39,%xmm10,%xmm10\npshufd $0x39,%xmm4,%xmm4\nxorl 64(%rsi),%edx\nxorl 68(%rsi),%ecx\nxorl 72(%rsi),%r8d\nxorl 76(%rsi),%r9d\nmovl   %edx,64(%rdi)\nmovl   %ecx,68(%rdi)\nmovl   %r8d,72(%rdi)\nmovl   %r9d,76(%rdi)\nmovd   %xmm12,%rdx\nmovd   %xmm7,%rcx\nmovd   %xmm10,%r8\nmovd   %xmm4,%r9\npshufd $0x39,%xmm12,%xmm12\npshufd $0x39,%xmm7,%xmm7\npshufd $0x39,%xmm10,%xmm10\npshufd $0x39,%xmm4,%xmm4\nxorl 128(%rsi),%edx\nxorl 132(%rsi),%ecx\nxorl 136(%rsi),%r8d\nxorl 140(%rsi),%r9d\nmovl   %edx,128(%rdi)\nmovl   %ecx,132(%rdi)\nmovl   %r8d,136(%rdi)\nmovl   %r9d,140(%rdi)\nmovd   %xmm12,%rdx\nmovd   %xmm7,%rcx\nmovd   %xmm10,%r8\nmovd   %xmm4,%r9\nxorl 192(%rsi),%edx\nxorl 196(%rsi),%ecx\nxorl 200(%rsi),%r8d\nxorl 204(%rsi),%r9d\nmovl   %edx,192(%rdi)\nmovl   %ecx,196(%rdi)\nmovl   %r8d,200(%rdi)\nmovl   %r9d,204(%rdi)\npaddd 304(%rsp),%xmm14\npaddd 128(%rsp),%xmm0\npaddd 192(%rsp),%xmm5\npaddd 256(%rsp),%xmm8\nmovd   %xmm14,%rdx\nmovd   %xmm0,%rcx\nmovd   %xmm5,%r8\nmovd   %xmm8,%r9\npshufd $0x39,%xmm14,%xmm14\npshufd $0x39,%xmm0,%xmm0\npshufd $0x39,%xmm5,%xmm5\npshufd $0x39,%xmm8,%xmm8\nxorl 16(%rsi),%edx\nxorl 20(%rsi),%ecx\nxorl 24(%rsi),%r8d\nxorl 28(%rsi),%r9d\nmovl   %edx,16(%rdi)\nmovl   %ecx,20(%rdi)\nmovl   %r8d,24(%rdi)\nmovl   %r9d,28(%rdi)\nmovd   %xmm14,%rdx\nmovd   %xmm0,%rcx\nmovd   %xmm5,%r8\nmovd   %xmm8,%r9\npshufd $0x39,%xmm14,%xmm14\npshufd $0x39,%xmm0,%xmm0\npshufd $0x39,%xmm5,%xmm5\npshufd $0x39,%xmm8,%xmm8\nxorl 80(%rsi),%edx\nxorl 84(%rsi),%ecx\nxorl 88(%rsi),%r8d\nxorl 92(%rsi),%r9d\nmovl   %edx,80(%rdi)\nmovl   %ecx,84(%rdi)\nmovl   %r8d,88(%rdi)\nmovl   %r9d,92(%rdi)\nmovd   %xmm14,%rdx\nmovd   %xmm0,%rcx\nmovd   %xmm5,%r8\nmovd   %xmm8,%r9\npshufd $0x39,%xmm14,%xmm14\npshufd $0x39,%xmm0,%xmm0\npshufd $0x39,%xmm5,%xmm5\npshufd $0x39,%xmm8,%xmm8\nxorl 144(%rsi),%edx\nxorl 148(%rsi),%ecx\nxorl 152(%rsi),%r8d\nxorl 156(%rsi),%r9d\nmovl   %edx,144(%rdi)\nmovl   %ecx,148(%rdi)\nmovl   %r8d,152(%rdi)\nmovl   %r9d,156(%rdi)\nmovd   %xmm14,%rdx\nmovd   %xmm0,%rcx\nmovd   %xmm5,%r8\nmovd   %xmm8,%r9\nxorl 208(%rsi),%edx\nxorl 212(%rsi),%ecx\nxorl 216(%rsi),%r8d\nxorl 220(%rsi),%r9d\nmovl   %edx,208(%rdi)\nmovl   %ecx,212(%rdi)\nmovl   %r8d,216(%rdi)\nmovl   %r9d,220(%rdi)\npaddd 352(%rsp),%xmm15\npaddd 368(%rsp),%xmm11\npaddd 144(%rsp),%xmm1\npaddd 208(%rsp),%xmm6\nmovd   %xmm15,%rdx\nmovd   %xmm11,%rcx\nmovd   %xmm1,%r8\nmovd   %xmm6,%r9\npshufd $0x39,%xmm15,%xmm15\npshufd $0x39,%xmm11,%xmm11\npshufd $0x39,%xmm1,%xmm1\npshufd $0x39,%xmm6,%xmm6\nxorl 32(%rsi),%edx\nxorl 36(%rsi),%ecx\nxorl 40(%rsi),%r8d\nxorl 44(%rsi),%r9d\nmovl   %edx,32(%rdi)\nmovl   %ecx,36(%rdi)\nmovl   %r8d,40(%rdi)\nmovl   %r9d,44(%rdi)\nmovd   %xmm15,%rdx\nmovd   %xmm11,%rcx\nmovd   %xmm1,%r8\nmovd   %xmm6,%r9\npshufd $0x39,%xmm15,%xmm15\npshufd $0x39,%xmm11,%xmm11\npshufd $0x39,%xmm1,%xmm1\npshufd $0x39,%xmm6,%xmm6\nxorl 96(%rsi),%edx\nxorl 100(%rsi),%ecx\nxorl 104(%rsi),%r8d\nxorl 108(%rsi),%r9d\nmovl   %edx,96(%rdi)\nmovl   %ecx,100(%rdi)\nmovl   %r8d,104(%rdi)\nmovl   %r9d,108(%rdi)\nmovd   %xmm15,%rdx\nmovd   %xmm11,%rcx\nmovd   %xmm1,%r8\nmovd   %xmm6,%r9\npshufd $0x39,%xmm15,%xmm15\npshufd $0x39,%xmm11,%xmm11\npshufd $0x39,%xmm1,%xmm1\npshufd $0x39,%xmm6,%xmm6\nxorl 160(%rsi),%edx\nxorl 164(%rsi),%ecx\nxorl 168(%rsi),%r8d\nxorl 172(%rsi),%r9d\nmovl   %edx,160(%rdi)\nmovl   %ecx,164(%rdi)\nmovl   %r8d,168(%rdi)\nmovl   %r9d,172(%rdi)\nmovd   %xmm15,%rdx\nmovd   %xmm11,%rcx\nmovd   %xmm1,%r8\nmovd   %xmm6,%r9\nxorl 224(%rsi),%edx\nxorl 228(%rsi),%ecx\nxorl 232(%rsi),%r8d\nxorl 236(%rsi),%r9d\nmovl   %edx,224(%rdi)\nmovl   %ecx,228(%rdi)\nmovl   %r8d,232(%rdi)\nmovl   %r9d,236(%rdi)\npaddd 224(%rsp),%xmm13\npaddd 272(%rsp),%xmm9\npaddd 320(%rsp),%xmm3\npaddd 160(%rsp),%xmm2\nmovd   %xmm13,%rdx\nmovd   %xmm9,%rcx\nmovd   %xmm3,%r8\nmovd   %xmm2,%r9\npshufd $0x39,%xmm13,%xmm13\npshufd $0x39,%xmm9,%xmm9\npshufd $0x39,%xmm3,%xmm3\npshufd $0x39,%xmm2,%xmm2\nxorl 48(%rsi),%edx\nxorl 52(%rsi),%ecx\nxorl 56(%rsi),%r8d\nxorl 60(%rsi),%r9d\nmovl   %edx,48(%rdi)\nmovl   %ecx,52(%rdi)\nmovl   %r8d,56(%rdi)\nmovl   %r9d,60(%rdi)\nmovd   %xmm13,%rdx\nmovd   %xmm9,%rcx\nmovd   %xmm3,%r8\nmovd   %xmm2,%r9\npshufd $0x39,%xmm13,%xmm13\npshufd $0x39,%xmm9,%xmm9\npshufd $0x39,%xmm3,%xmm3\npshufd $0x39,%xmm2,%xmm2\nxorl 112(%rsi),%edx\nxorl 116(%rsi),%ecx\nxorl 120(%rsi),%r8d\nxorl 124(%rsi),%r9d\nmovl   %edx,112(%rdi)\nmovl   %ecx,116(%rdi)\nmovl   %r8d,120(%rdi)\nmovl   %r9d,124(%rdi)\nmovd   %xmm13,%rdx\nmovd   %xmm9,%rcx\nmovd   %xmm3,%r8\nmovd   %xmm2,%r9\npshufd $0x39,%xmm13,%xmm13\npshufd $0x39,%xmm9,%xmm9\npshufd $0x39,%xmm3,%xmm3\npshufd $0x39,%xmm2,%xmm2\nxorl 176(%rsi),%edx\nxorl 180(%rsi),%ecx\nxorl 184(%rsi),%r8d\nxorl 188(%rsi),%r9d\nmovl   %edx,176(%rdi)\nmovl   %ecx,180(%rdi)\nmovl   %r8d,184(%rdi)\nmovl   %r9d,188(%rdi)\nmovd   %xmm13,%rdx\nmovd   %xmm9,%rcx\nmovd   %xmm3,%r8\nmovd   %xmm2,%r9\nxorl 240(%rsi),%edx\nxorl 244(%rsi),%ecx\nxorl 248(%rsi),%r8d\nxorl 252(%rsi),%r9d\nmovl   %edx,240(%rdi)\nmovl   %ecx,244(%rdi)\nmovl   %r8d,248(%rdi)\nmovl   %r9d,252(%rdi)\nmovq 480(%rsp),%r9\nsub  $256,%r9\nadd  $256,%rsi\nadd  $256,%rdi\ncmp  $256,%r9\njae ._bytesatleast256\n\ncmp  $0,%r9\njbe ._done\n\n._bytesbetween1and255:\ncmp  $64,%r9\njae ._nocopy\n\nmov  %rdi,%rdx\nleaq 0(%rsp),%rdi\nmov  %r9,%rcx\nrep movsb\nleaq 0(%rsp),%rdi\nleaq 0(%rsp),%rsi\n\n._nocopy:\nmovq %r9,480(%rsp)\nmovdqa 112(%rsp),%xmm0\nmovdqa 64(%rsp),%xmm1\nmovdqa 80(%rsp),%xmm2\nmovdqa 96(%rsp),%xmm3\nmovdqa %xmm1,%xmm4\nmov  $20,%rcx\n\n.p2align 4\n._mainloop2:\npaddd %xmm0,%xmm4\nmovdqa %xmm0,%xmm5\nmovdqa %xmm4,%xmm6\npslld $7,%xmm4\npsrld $25,%xmm6\npxor  %xmm4,%xmm3\npxor  %xmm6,%xmm3\npaddd %xmm3,%xmm5\nmovdqa %xmm3,%xmm4\nmovdqa %xmm5,%xmm6\npslld $9,%xmm5\npsrld $23,%xmm6\npxor  %xmm5,%xmm2\npshufd $0x93,%xmm3,%xmm3\npxor  %xmm6,%xmm2\npaddd %xmm2,%xmm4\nmovdqa %xmm2,%xmm5\nmovdqa %xmm4,%xmm6\npslld $13,%xmm4\npsrld $19,%xmm6\npxor  %xmm4,%xmm1\npshufd $0x4e,%xmm2,%xmm2\npxor  %xmm6,%xmm1\npaddd %xmm1,%xmm5\nmovdqa %xmm3,%xmm4\nmovdqa %xmm5,%xmm6\npslld $18,%xmm5\npsrld $14,%xmm6\npxor  %xmm5,%xmm0\npshufd $0x39,%xmm1,%xmm1\npxor  %xmm6,%xmm0\npaddd %xmm0,%xmm4\nmovdqa %xmm0,%xmm5\nmovdqa %xmm4,%xmm6\npslld $7,%xmm4\npsrld $25,%xmm6\npxor  %xmm4,%xmm1\npxor  %xmm6,%xmm1\npaddd %xmm1,%xmm5\nmovdqa %xmm1,%xmm4\nmovdqa %xmm5,%xmm6\npslld $9,%xmm5\npsrld $23,%xmm6\npxor  %xmm5,%xmm2\npshufd $0x93,%xmm1,%xmm1\npxor  %xmm6,%xmm2\npaddd %xmm2,%xmm4\nmovdqa %xmm2,%xmm5\nmovdqa %xmm4,%xmm6\npslld $13,%xmm4\npsrld $19,%xmm6\npxor  %xmm4,%xmm3\npshufd $0x4e,%xmm2,%xmm2\npxor  %xmm6,%xmm3\npaddd %xmm3,%xmm5\nmovdqa %xmm1,%xmm4\nmovdqa %xmm5,%xmm6\npslld $18,%xmm5\npsrld $14,%xmm6\npxor  %xmm5,%xmm0\npshufd $0x39,%xmm3,%xmm3\npxor  %xmm6,%xmm0\npaddd %xmm0,%xmm4\nmovdqa %xmm0,%xmm5\nmovdqa %xmm4,%xmm6\npslld $7,%xmm4\npsrld $25,%xmm6\npxor  %xmm4,%xmm3\npxor  %xmm6,%xmm3\npaddd %xmm3,%xmm5\nmovdqa %xmm3,%xmm4\nmovdqa %xmm5,%xmm6\npslld $9,%xmm5\npsrld $23,%xmm6\npxor  %xmm5,%xmm2\npshufd $0x93,%xmm3,%xmm3\npxor  %xmm6,%xmm2\npaddd %xmm2,%xmm4\nmovdqa %xmm2,%xmm5\nmovdqa %xmm4,%xmm6\npslld $13,%xmm4\npsrld $19,%xmm6\npxor  %xmm4,%xmm1\npshufd $0x4e,%xmm2,%xmm2\npxor  %xmm6,%xmm1\npaddd %xmm1,%xmm5\nmovdqa %xmm3,%xmm4\nmovdqa %xmm5,%xmm6\npslld $18,%xmm5\npsrld $14,%xmm6\npxor  %xmm5,%xmm0\npshufd $0x39,%xmm1,%xmm1\npxor  %xmm6,%xmm0\npaddd %xmm0,%xmm4\nmovdqa %xmm0,%xmm5\nmovdqa %xmm4,%xmm6\npslld $7,%xmm4\npsrld $25,%xmm6\npxor  %xmm4,%xmm1\npxor  %xmm6,%xmm1\npaddd %xmm1,%xmm5\nmovdqa %xmm1,%xmm4\nmovdqa %xmm5,%xmm6\npslld $9,%xmm5\npsrld $23,%xmm6\npxor  %xmm5,%xmm2\npshufd $0x93,%xmm1,%xmm1\npxor  %xmm6,%xmm2\npaddd %xmm2,%xmm4\nmovdqa %xmm2,%xmm5\nmovdqa %xmm4,%xmm6\npslld $13,%xmm4\npsrld $19,%xmm6\npxor  %xmm4,%xmm3\npshufd $0x4e,%xmm2,%xmm2\npxor  %xmm6,%xmm3\nsub  $4,%rcx\npaddd %xmm3,%xmm5\nmovdqa %xmm1,%xmm4\nmovdqa %xmm5,%xmm6\npslld $18,%xmm5\npxor   %xmm7,%xmm7\npsrld $14,%xmm6\npxor  %xmm5,%xmm0\npshufd $0x39,%xmm3,%xmm3\npxor  %xmm6,%xmm0\nja ._mainloop2\n\npaddd 112(%rsp),%xmm0\npaddd 64(%rsp),%xmm1\npaddd 80(%rsp),%xmm2\npaddd 96(%rsp),%xmm3\nmovd   %xmm0,%rcx\nmovd   %xmm1,%r8\nmovd   %xmm2,%r9\nmovd   %xmm3,%rax\npshufd $0x39,%xmm0,%xmm0\npshufd $0x39,%xmm1,%xmm1\npshufd $0x39,%xmm2,%xmm2\npshufd $0x39,%xmm3,%xmm3\nxorl 0(%rsi),%ecx\nxorl 48(%rsi),%r8d\nxorl 32(%rsi),%r9d\nxorl 16(%rsi),%eax\nmovl   %ecx,0(%rdi)\nmovl   %r8d,48(%rdi)\nmovl   %r9d,32(%rdi)\nmovl   %eax,16(%rdi)\nmovd   %xmm0,%rcx\nmovd   %xmm1,%r8\nmovd   %xmm2,%r9\nmovd   %xmm3,%rax\npshufd $0x39,%xmm0,%xmm0\npshufd $0x39,%xmm1,%xmm1\npshufd $0x39,%xmm2,%xmm2\npshufd $0x39,%xmm3,%xmm3\nxorl 20(%rsi),%ecx\nxorl 4(%rsi),%r8d\nxorl 52(%rsi),%r9d\nxorl 36(%rsi),%eax\nmovl   %ecx,20(%rdi)\nmovl   %r8d,4(%rdi)\nmovl   %r9d,52(%rdi)\nmovl   %eax,36(%rdi)\nmovd   %xmm0,%rcx\nmovd   %xmm1,%r8\nmovd   %xmm2,%r9\nmovd   %xmm3,%rax\npshufd $0x39,%xmm0,%xmm0\npshufd $0x39,%xmm1,%xmm1\npshufd $0x39,%xmm2,%xmm2\npshufd $0x39,%xmm3,%xmm3\nxorl 40(%rsi),%ecx\nxorl 24(%rsi),%r8d\nxorl 8(%rsi),%r9d\nxorl 56(%rsi),%eax\nmovl   %ecx,40(%rdi)\nmovl   %r8d,24(%rdi)\nmovl   %r9d,8(%rdi)\nmovl   %eax,56(%rdi)\nmovd   %xmm0,%rcx\nmovd   %xmm1,%r8\nmovd   %xmm2,%r9\nmovd   %xmm3,%rax\nxorl 60(%rsi),%ecx\nxorl 44(%rsi),%r8d\nxorl 28(%rsi),%r9d\nxorl 12(%rsi),%eax\nmovl   %ecx,60(%rdi)\nmovl   %r8d,44(%rdi)\nmovl   %r9d,28(%rdi)\nmovl   %eax,12(%rdi)\nmovq 480(%rsp),%r9\nmovq 472(%rsp),%rcx\nadd  $1,%rcx\nmov  %rcx,%r8\nshr  $32,%r8\nmovl %ecx,80(%rsp)\nmovl %r8d,4+96(%rsp)\nmovq %rcx,472(%rsp)\ncmp  $64,%r9\nja ._bytesatleast65\njae ._bytesatleast64\n\nmov  %rdi,%rsi\nmov  %rdx,%rdi\nmov  %r9,%rcx\nrep movsb\n\n._bytesatleast64:\n._done:\nmovq 416(%rsp),%r11\nmovq 424(%rsp),%r12\nmovq 432(%rsp),%r13\nmovq 440(%rsp),%r14\nmovq 448(%rsp),%r15\nmovq 456(%rsp),%rbx\nmovq 464(%rsp),%rbp\nadd %r11,%rsp\nxor %rax,%rax\nmov %rsi,%rdx\nret\n\n._bytesatleast65:\nsub  $64,%r9\nadd  $64,%rdi\nadd  $64,%rsi\njmp ._bytesbetween1and255\n\n#endif\n\n#if defined(__linux__) && defined(__ELF__)\n.section .note.GNU-stack,\"\",%progbits\n#endif\n"
  },
  {
    "path": "src/libsodium/crypto_stream/salsa20/xmm6/salsa20_xmm6-asm_namespace.h",
    "content": "#ifndef salsa20_xmm6_asm_namespace_H\n#define salsa20_xmm6_asm_namespace_H\n\n#define stream_salsa20_xmm6 _sodium_stream_salsa20_xmm6\n#define _stream_salsa20_xmm6 __sodium_stream_salsa20_xmm6\n\n#define stream_salsa20_xmm6_xor_ic _sodium_stream_salsa20_xmm6_xor_ic\n#define _stream_salsa20_xmm6_xor_ic __sodium_stream_salsa20_xmm6_xor_ic\n\n#endif\n"
  },
  {
    "path": "src/libsodium/crypto_stream/salsa20/xmm6/salsa20_xmm6.c",
    "content": "\n#include <stdint.h>\n\n#include \"utils.h\"\n\n#include \"../stream_salsa20.h\"\n#include \"salsa20_xmm6.h\"\n\n#ifdef HAVE_AMD64_ASM\n\n#ifdef __cplusplus\nextern \"C\" {\n#endif\nextern int stream_salsa20_xmm6(unsigned char *c, unsigned long long clen,\n                               const unsigned char *n, const unsigned char *k);\n\nextern int stream_salsa20_xmm6_xor_ic(unsigned char *c, const unsigned char *m,\n                                      unsigned long long mlen,\n                                      const unsigned char *n,\n                                      uint64_t ic, const unsigned char *k);\n#ifdef __cplusplus\n}\n#endif\n\nstruct crypto_stream_salsa20_implementation\n    crypto_stream_salsa20_xmm6_implementation = {\n        SODIUM_C99(.stream =) stream_salsa20_xmm6,\n        SODIUM_C99(.stream_xor_ic =) stream_salsa20_xmm6_xor_ic,\n    };\n\n#endif\n"
  },
  {
    "path": "src/libsodium/crypto_stream/salsa20/xmm6/salsa20_xmm6.h",
    "content": "\n#include <stdint.h>\n\n#include \"../stream_salsa20.h\"\n#include \"crypto_stream_salsa20.h\"\n#include \"salsa20_xmm6-asm_namespace.h\"\n\nextern struct crypto_stream_salsa20_implementation\n    crypto_stream_salsa20_xmm6_implementation;\n"
  },
  {
    "path": "src/libsodium/crypto_stream/salsa20/xmm6int/salsa20_xmm6int-avx2.c",
    "content": "\n#include <stdint.h>\n#include <stdlib.h>\n#include <string.h>\n\n#include \"crypto_stream_salsa20.h\"\n#include \"private/common.h\"\n#include \"utils.h\"\n\n#if defined(HAVE_AVX2INTRIN_H) && defined(HAVE_EMMINTRIN_H) && \\\n    defined(HAVE_TMMINTRIN_H) && defined(HAVE_SMMINTRIN_H)\n\n# ifdef __clang__\n#  pragma clang attribute push(__attribute__((target(\"sse2,ssse3,sse4.1,avx2\"))), apply_to = function)\n# elif defined(__GNUC__)\n#  pragma GCC target(\"sse2,ssse3,sse4.1,avx2\")\n# endif\n\n# include <emmintrin.h>\n# include <immintrin.h>\n# include <smmintrin.h>\n# include <tmmintrin.h>\n# include \"private/sse2_64_32.h\"\n\n# include \"../stream_salsa20.h\"\n# include \"salsa20_xmm6int-avx2.h\"\n\n# define ROUNDS 20\n\ntypedef struct salsa_ctx {\n    uint32_t input[16];\n} salsa_ctx;\n\nstatic const int TR[16] = {\n    0, 5, 10, 15, 12, 1, 6, 11, 8, 13, 2, 7, 4, 9, 14, 3\n};\n\nstatic void\nsalsa_keysetup(salsa_ctx *ctx, const uint8_t *k)\n{\n    ctx->input[TR[1]]  = LOAD32_LE(k + 0);\n    ctx->input[TR[2]]  = LOAD32_LE(k + 4);\n    ctx->input[TR[3]]  = LOAD32_LE(k + 8);\n    ctx->input[TR[4]]  = LOAD32_LE(k + 12);\n    ctx->input[TR[11]] = LOAD32_LE(k + 16);\n    ctx->input[TR[12]] = LOAD32_LE(k + 20);\n    ctx->input[TR[13]] = LOAD32_LE(k + 24);\n    ctx->input[TR[14]] = LOAD32_LE(k + 28);\n    ctx->input[TR[0]]  = 0x61707865;\n    ctx->input[TR[5]]  = 0x3320646e;\n    ctx->input[TR[10]] = 0x79622d32;\n    ctx->input[TR[15]] = 0x6b206574;\n}\n\nstatic void\nsalsa_ivsetup(salsa_ctx *ctx, const uint8_t *iv, const uint8_t *counter)\n{\n    ctx->input[TR[6]] = LOAD32_LE(iv + 0);\n    ctx->input[TR[7]] = LOAD32_LE(iv + 4);\n    ctx->input[TR[8]] = counter == NULL ? 0 : LOAD32_LE(counter + 0);\n    ctx->input[TR[9]] = counter == NULL ? 0 : LOAD32_LE(counter + 4);\n}\n\nstatic void\nsalsa20_encrypt_bytes(salsa_ctx *ctx, const uint8_t *m, uint8_t *c,\n                      unsigned long long bytes)\n{\n    uint32_t * const x = &ctx->input[0];\n\n    if (!bytes) {\n        return; /* LCOV_EXCL_LINE */\n    }\n\n#include \"u8.h\"\n#include \"u4.h\"\n#include \"u1.h\"\n#include \"u0.h\"\n}\n\nstatic int\nstream_avx2(unsigned char *c, unsigned long long clen, const unsigned char *n,\n            const unsigned char *k)\n{\n    struct salsa_ctx ctx;\n\n    if (!clen) {\n        return 0;\n    }\n    COMPILER_ASSERT(crypto_stream_salsa20_KEYBYTES == 256 / 8);\n    salsa_keysetup(&ctx, k);\n    salsa_ivsetup(&ctx, n, NULL);\n    memset(c, 0, clen);\n    salsa20_encrypt_bytes(&ctx, c, c, clen);\n    sodium_memzero(&ctx, sizeof ctx);\n\n    return 0;\n}\n\nstatic int\nstream_avx2_xor_ic(unsigned char *c, const unsigned char *m,\n                   unsigned long long mlen, const unsigned char *n, uint64_t ic,\n                   const unsigned char *k)\n{\n    struct salsa_ctx ctx;\n    uint8_t          ic_bytes[8];\n    uint32_t         ic_high;\n    uint32_t         ic_low;\n\n    if (!mlen) {\n        return 0;\n    }\n    ic_high = (uint32_t) (ic >> 32);\n    ic_low  = (uint32_t) ic;\n    STORE32_LE(&ic_bytes[0], ic_low);\n    STORE32_LE(&ic_bytes[4], ic_high);\n    salsa_keysetup(&ctx, k);\n    salsa_ivsetup(&ctx, n, ic_bytes);\n    salsa20_encrypt_bytes(&ctx, m, c, mlen);\n    sodium_memzero(&ctx, sizeof ctx);\n\n    return 0;\n}\n\nstruct crypto_stream_salsa20_implementation\n    crypto_stream_salsa20_xmm6int_avx2_implementation = {\n        SODIUM_C99(.stream =) stream_avx2,\n        SODIUM_C99(.stream_xor_ic =) stream_avx2_xor_ic\n    };\n\n#ifdef __clang__\n# pragma clang attribute pop\n#endif\n\n#endif\n"
  },
  {
    "path": "src/libsodium/crypto_stream/salsa20/xmm6int/salsa20_xmm6int-avx2.h",
    "content": "\n#include <stdint.h>\n\n#include \"../stream_salsa20.h\"\n#include \"crypto_stream_salsa20.h\"\n\nextern struct crypto_stream_salsa20_implementation\n    crypto_stream_salsa20_xmm6int_avx2_implementation;\n"
  },
  {
    "path": "src/libsodium/crypto_stream/salsa20/xmm6int/salsa20_xmm6int-sse2.c",
    "content": "\n#include <stdint.h>\n#include <stdlib.h>\n#include <string.h>\n\n#include \"crypto_stream_salsa20.h\"\n#include \"private/common.h\"\n#include \"utils.h\"\n\n#ifdef HAVE_EMMINTRIN_H\n\n# ifdef __clang__\n#  pragma clang attribute push(__attribute__((target(\"sse2\"))), apply_to = function)\n# elif defined(__GNUC__)\n#  pragma GCC target(\"sse2\")\n# endif\n# include <emmintrin.h>\n# include \"private/sse2_64_32.h\"\n\n# include \"../stream_salsa20.h\"\n# include \"salsa20_xmm6int-sse2.h\"\n\n# define ROUNDS 20\n\ntypedef struct salsa_ctx {\n    uint32_t input[16];\n} salsa_ctx;\n\nstatic const int TR[16] = {\n    0, 5, 10, 15, 12, 1, 6, 11, 8, 13, 2, 7, 4, 9, 14, 3\n};\n\nstatic void\nsalsa_keysetup(salsa_ctx *ctx, const uint8_t *k)\n{\n    ctx->input[TR[1]]  = LOAD32_LE(k + 0);\n    ctx->input[TR[2]]  = LOAD32_LE(k + 4);\n    ctx->input[TR[3]]  = LOAD32_LE(k + 8);\n    ctx->input[TR[4]]  = LOAD32_LE(k + 12);\n    ctx->input[TR[11]] = LOAD32_LE(k + 16);\n    ctx->input[TR[12]] = LOAD32_LE(k + 20);\n    ctx->input[TR[13]] = LOAD32_LE(k + 24);\n    ctx->input[TR[14]] = LOAD32_LE(k + 28);\n    ctx->input[TR[0]]  = 0x61707865;\n    ctx->input[TR[5]]  = 0x3320646e;\n    ctx->input[TR[10]] = 0x79622d32;\n    ctx->input[TR[15]] = 0x6b206574;\n}\n\nstatic void\nsalsa_ivsetup(salsa_ctx *ctx, const uint8_t *iv, const uint8_t *counter)\n{\n    ctx->input[TR[6]] = LOAD32_LE(iv + 0);\n    ctx->input[TR[7]] = LOAD32_LE(iv + 4);\n    ctx->input[TR[8]] = counter == NULL ? 0 : LOAD32_LE(counter + 0);\n    ctx->input[TR[9]] = counter == NULL ? 0 : LOAD32_LE(counter + 4);\n}\n\nstatic void\nsalsa20_encrypt_bytes(salsa_ctx *ctx, const uint8_t *m, uint8_t *c,\n                      unsigned long long bytes)\n{\n    uint32_t * const x = &ctx->input[0];\n\n    if (!bytes) {\n        return; /* LCOV_EXCL_LINE */\n    }\n\n#include \"u4.h\"\n#include \"u1.h\"\n#include \"u0.h\"\n}\n\nstatic int\nstream_sse2(unsigned char *c, unsigned long long clen, const unsigned char *n,\n            const unsigned char *k)\n{\n    struct salsa_ctx ctx;\n\n    if (!clen) {\n        return 0;\n    }\n    COMPILER_ASSERT(crypto_stream_salsa20_KEYBYTES == 256 / 8);\n    salsa_keysetup(&ctx, k);\n    salsa_ivsetup(&ctx, n, NULL);\n    memset(c, 0, clen);\n    salsa20_encrypt_bytes(&ctx, c, c, clen);\n    sodium_memzero(&ctx, sizeof ctx);\n\n    return 0;\n}\n\nstatic int\nstream_sse2_xor_ic(unsigned char *c, const unsigned char *m,\n                   unsigned long long mlen, const unsigned char *n, uint64_t ic,\n                   const unsigned char *k)\n{\n    struct salsa_ctx ctx;\n    uint8_t          ic_bytes[8];\n    uint32_t         ic_high;\n    uint32_t         ic_low;\n\n    if (!mlen) {\n        return 0;\n    }\n    ic_high = (uint32_t) (ic >> 32);\n    ic_low  = (uint32_t) (ic);\n    STORE32_LE(&ic_bytes[0], ic_low);\n    STORE32_LE(&ic_bytes[4], ic_high);\n    salsa_keysetup(&ctx, k);\n    salsa_ivsetup(&ctx, n, ic_bytes);\n    salsa20_encrypt_bytes(&ctx, m, c, mlen);\n    sodium_memzero(&ctx, sizeof ctx);\n\n    return 0;\n}\n\nstruct crypto_stream_salsa20_implementation\n    crypto_stream_salsa20_xmm6int_sse2_implementation = {\n        SODIUM_C99(.stream =) stream_sse2,\n        SODIUM_C99(.stream_xor_ic =) stream_sse2_xor_ic\n    };\n\n#ifdef __clang__\n# pragma clang attribute pop\n#endif\n\n#endif\n"
  },
  {
    "path": "src/libsodium/crypto_stream/salsa20/xmm6int/salsa20_xmm6int-sse2.h",
    "content": "\n#include <stdint.h>\n\n#include \"../stream_salsa20.h\"\n#include \"crypto_stream_salsa20.h\"\n\nextern struct crypto_stream_salsa20_implementation\n    crypto_stream_salsa20_xmm6int_sse2_implementation;\n"
  },
  {
    "path": "src/libsodium/crypto_stream/salsa20/xmm6int/u0.h",
    "content": "if (bytes > 0) {\n    __m128i diag0 = _mm_loadu_si128((const __m128i *) (x + 0));\n    __m128i diag1 = _mm_loadu_si128((const __m128i *) (x + 4));\n    __m128i diag2 = _mm_loadu_si128((const __m128i *) (x + 8));\n    __m128i diag3 = _mm_loadu_si128((const __m128i *) (x + 12));\n    __m128i a0, a1, a2, a3, a4, a5, a6, a7;\n    __m128i b0, b1, b2, b3, b4, b5, b6, b7;\n    uint8_t partialblock[64] = { 0 };\n\n    unsigned int i;\n\n    a0 = diag1;\n    for (i = 0; i < ROUNDS; i += 4) {\n        a0    = _mm_add_epi32(a0, diag0);\n        a1    = diag0;\n        b0    = a0;\n        a0    = _mm_slli_epi32(a0, 7);\n        b0    = _mm_srli_epi32(b0, 25);\n        diag3 = _mm_xor_si128(diag3, a0);\n\n        diag3 = _mm_xor_si128(diag3, b0);\n\n        a1    = _mm_add_epi32(a1, diag3);\n        a2    = diag3;\n        b1    = a1;\n        a1    = _mm_slli_epi32(a1, 9);\n        b1    = _mm_srli_epi32(b1, 23);\n        diag2 = _mm_xor_si128(diag2, a1);\n        diag3 = _mm_shuffle_epi32(diag3, 0x93);\n        diag2 = _mm_xor_si128(diag2, b1);\n\n        a2    = _mm_add_epi32(a2, diag2);\n        a3    = diag2;\n        b2    = a2;\n        a2    = _mm_slli_epi32(a2, 13);\n        b2    = _mm_srli_epi32(b2, 19);\n        diag1 = _mm_xor_si128(diag1, a2);\n        diag2 = _mm_shuffle_epi32(diag2, 0x4e);\n        diag1 = _mm_xor_si128(diag1, b2);\n\n        a3    = _mm_add_epi32(a3, diag1);\n        a4    = diag3;\n        b3    = a3;\n        a3    = _mm_slli_epi32(a3, 18);\n        b3    = _mm_srli_epi32(b3, 14);\n        diag0 = _mm_xor_si128(diag0, a3);\n        diag1 = _mm_shuffle_epi32(diag1, 0x39);\n        diag0 = _mm_xor_si128(diag0, b3);\n\n        a4    = _mm_add_epi32(a4, diag0);\n        a5    = diag0;\n        b4    = a4;\n        a4    = _mm_slli_epi32(a4, 7);\n        b4    = _mm_srli_epi32(b4, 25);\n        diag1 = _mm_xor_si128(diag1, a4);\n\n        diag1 = _mm_xor_si128(diag1, b4);\n\n        a5    = _mm_add_epi32(a5, diag1);\n        a6    = diag1;\n        b5    = a5;\n        a5    = _mm_slli_epi32(a5, 9);\n        b5    = _mm_srli_epi32(b5, 23);\n        diag2 = _mm_xor_si128(diag2, a5);\n        diag1 = _mm_shuffle_epi32(diag1, 0x93);\n        diag2 = _mm_xor_si128(diag2, b5);\n\n        a6    = _mm_add_epi32(a6, diag2);\n        a7    = diag2;\n        b6    = a6;\n        a6    = _mm_slli_epi32(a6, 13);\n        b6    = _mm_srli_epi32(b6, 19);\n        diag3 = _mm_xor_si128(diag3, a6);\n        diag2 = _mm_shuffle_epi32(diag2, 0x4e);\n        diag3 = _mm_xor_si128(diag3, b6);\n\n        a7    = _mm_add_epi32(a7, diag3);\n        a0    = diag1;\n        b7    = a7;\n        a7    = _mm_slli_epi32(a7, 18);\n        b7    = _mm_srli_epi32(b7, 14);\n        diag0 = _mm_xor_si128(diag0, a7);\n        diag3 = _mm_shuffle_epi32(diag3, 0x39);\n        diag0 = _mm_xor_si128(diag0, b7);\n\n        a0    = _mm_add_epi32(a0, diag0);\n        a1    = diag0;\n        b0    = a0;\n        a0    = _mm_slli_epi32(a0, 7);\n        b0    = _mm_srli_epi32(b0, 25);\n        diag3 = _mm_xor_si128(diag3, a0);\n\n        diag3 = _mm_xor_si128(diag3, b0);\n\n        a1    = _mm_add_epi32(a1, diag3);\n        a2    = diag3;\n        b1    = a1;\n        a1    = _mm_slli_epi32(a1, 9);\n        b1    = _mm_srli_epi32(b1, 23);\n        diag2 = _mm_xor_si128(diag2, a1);\n        diag3 = _mm_shuffle_epi32(diag3, 0x93);\n        diag2 = _mm_xor_si128(diag2, b1);\n\n        a2    = _mm_add_epi32(a2, diag2);\n        a3    = diag2;\n        b2    = a2;\n        a2    = _mm_slli_epi32(a2, 13);\n        b2    = _mm_srli_epi32(b2, 19);\n        diag1 = _mm_xor_si128(diag1, a2);\n        diag2 = _mm_shuffle_epi32(diag2, 0x4e);\n        diag1 = _mm_xor_si128(diag1, b2);\n\n        a3    = _mm_add_epi32(a3, diag1);\n        a4    = diag3;\n        b3    = a3;\n        a3    = _mm_slli_epi32(a3, 18);\n        b3    = _mm_srli_epi32(b3, 14);\n        diag0 = _mm_xor_si128(diag0, a3);\n        diag1 = _mm_shuffle_epi32(diag1, 0x39);\n        diag0 = _mm_xor_si128(diag0, b3);\n\n        a4    = _mm_add_epi32(a4, diag0);\n        a5    = diag0;\n        b4    = a4;\n        a4    = _mm_slli_epi32(a4, 7);\n        b4    = _mm_srli_epi32(b4, 25);\n        diag1 = _mm_xor_si128(diag1, a4);\n\n        diag1 = _mm_xor_si128(diag1, b4);\n\n        a5    = _mm_add_epi32(a5, diag1);\n        a6    = diag1;\n        b5    = a5;\n        a5    = _mm_slli_epi32(a5, 9);\n        b5    = _mm_srli_epi32(b5, 23);\n        diag2 = _mm_xor_si128(diag2, a5);\n        diag1 = _mm_shuffle_epi32(diag1, 0x93);\n        diag2 = _mm_xor_si128(diag2, b5);\n\n        a6    = _mm_add_epi32(a6, diag2);\n        a7    = diag2;\n        b6    = a6;\n        a6    = _mm_slli_epi32(a6, 13);\n        b6    = _mm_srli_epi32(b6, 19);\n        diag3 = _mm_xor_si128(diag3, a6);\n        diag2 = _mm_shuffle_epi32(diag2, 0x4e);\n        diag3 = _mm_xor_si128(diag3, b6);\n\n        a7    = _mm_add_epi32(a7, diag3);\n        a0    = diag1;\n        b7    = a7;\n        a7    = _mm_slli_epi32(a7, 18);\n        b7    = _mm_srli_epi32(b7, 14);\n        diag0 = _mm_xor_si128(diag0, a7);\n        diag3 = _mm_shuffle_epi32(diag3, 0x39);\n        diag0 = _mm_xor_si128(diag0, b7);\n    }\n\n    diag0 = _mm_add_epi32(diag0, _mm_loadu_si128((const __m128i *) (x + 0)));\n    diag1 = _mm_add_epi32(diag1, _mm_loadu_si128((const __m128i *) (x + 4)));\n    diag2 = _mm_add_epi32(diag2, _mm_loadu_si128((const __m128i *) (x + 8)));\n    diag3 = _mm_add_epi32(diag3, _mm_loadu_si128((const __m128i *) (x + 12)));\n\n#define ONEQUAD_SHUFFLE(A, B, C, D)                                              \\\n    do {                                                                         \\\n        uint32_t in##A                         = _mm_cvtsi128_si32(diag0);       \\\n        uint32_t in##B                         = _mm_cvtsi128_si32(diag1);       \\\n        uint32_t in##C                         = _mm_cvtsi128_si32(diag2);       \\\n        uint32_t in##D                         = _mm_cvtsi128_si32(diag3);       \\\n        diag0                                  = _mm_shuffle_epi32(diag0, 0x39); \\\n        diag1                                  = _mm_shuffle_epi32(diag1, 0x39); \\\n        diag2                                  = _mm_shuffle_epi32(diag2, 0x39); \\\n        diag3                                  = _mm_shuffle_epi32(diag3, 0x39); \\\n        *(uint32_t *) (partialblock + (A * 4)) = in##A;                          \\\n        *(uint32_t *) (partialblock + (B * 4)) = in##B;                          \\\n        *(uint32_t *) (partialblock + (C * 4)) = in##C;                          \\\n        *(uint32_t *) (partialblock + (D * 4)) = in##D;                          \\\n    } while (0)\n\n#define ONEQUAD(A, B, C, D) ONEQUAD_SHUFFLE(A, B, C, D)\n\n    ONEQUAD(0, 12, 8, 4);\n    ONEQUAD(5, 1, 13, 9);\n    ONEQUAD(10, 6, 2, 14);\n    ONEQUAD(15, 11, 7, 3);\n\n#undef ONEQUAD\n#undef ONEQUAD_SHUFFLE\n\n    for (i = 0; i < bytes; i++) {\n        c[i] = m[i] ^ partialblock[i];\n    }\n\n    sodium_memzero(partialblock, sizeof partialblock);\n}\n"
  },
  {
    "path": "src/libsodium/crypto_stream/salsa20/xmm6int/u1.h",
    "content": "while (bytes >= 64) {\n    __m128i diag0 = _mm_loadu_si128((const __m128i *) (x + 0));\n    __m128i diag1 = _mm_loadu_si128((const __m128i *) (x + 4));\n    __m128i diag2 = _mm_loadu_si128((const __m128i *) (x + 8));\n    __m128i diag3 = _mm_loadu_si128((const __m128i *) (x + 12));\n    __m128i a0, a1, a2, a3, a4, a5, a6, a7;\n    __m128i b0, b1, b2, b3, b4, b5, b6, b7;\n\n    uint32_t in8;\n    uint32_t in9;\n    int      i;\n\n    a0 = diag1;\n    for (i = 0; i < ROUNDS; i += 4) {\n        a0    = _mm_add_epi32(a0, diag0);\n        a1    = diag0;\n        b0    = a0;\n        a0    = _mm_slli_epi32(a0, 7);\n        b0    = _mm_srli_epi32(b0, 25);\n        diag3 = _mm_xor_si128(diag3, a0);\n\n        diag3 = _mm_xor_si128(diag3, b0);\n\n        a1    = _mm_add_epi32(a1, diag3);\n        a2    = diag3;\n        b1    = a1;\n        a1    = _mm_slli_epi32(a1, 9);\n        b1    = _mm_srli_epi32(b1, 23);\n        diag2 = _mm_xor_si128(diag2, a1);\n        diag3 = _mm_shuffle_epi32(diag3, 0x93);\n        diag2 = _mm_xor_si128(diag2, b1);\n\n        a2    = _mm_add_epi32(a2, diag2);\n        a3    = diag2;\n        b2    = a2;\n        a2    = _mm_slli_epi32(a2, 13);\n        b2    = _mm_srli_epi32(b2, 19);\n        diag1 = _mm_xor_si128(diag1, a2);\n        diag2 = _mm_shuffle_epi32(diag2, 0x4e);\n        diag1 = _mm_xor_si128(diag1, b2);\n\n        a3    = _mm_add_epi32(a3, diag1);\n        a4    = diag3;\n        b3    = a3;\n        a3    = _mm_slli_epi32(a3, 18);\n        b3    = _mm_srli_epi32(b3, 14);\n        diag0 = _mm_xor_si128(diag0, a3);\n        diag1 = _mm_shuffle_epi32(diag1, 0x39);\n        diag0 = _mm_xor_si128(diag0, b3);\n\n        a4    = _mm_add_epi32(a4, diag0);\n        a5    = diag0;\n        b4    = a4;\n        a4    = _mm_slli_epi32(a4, 7);\n        b4    = _mm_srli_epi32(b4, 25);\n        diag1 = _mm_xor_si128(diag1, a4);\n\n        diag1 = _mm_xor_si128(diag1, b4);\n\n        a5    = _mm_add_epi32(a5, diag1);\n        a6    = diag1;\n        b5    = a5;\n        a5    = _mm_slli_epi32(a5, 9);\n        b5    = _mm_srli_epi32(b5, 23);\n        diag2 = _mm_xor_si128(diag2, a5);\n        diag1 = _mm_shuffle_epi32(diag1, 0x93);\n        diag2 = _mm_xor_si128(diag2, b5);\n\n        a6    = _mm_add_epi32(a6, diag2);\n        a7    = diag2;\n        b6    = a6;\n        a6    = _mm_slli_epi32(a6, 13);\n        b6    = _mm_srli_epi32(b6, 19);\n        diag3 = _mm_xor_si128(diag3, a6);\n        diag2 = _mm_shuffle_epi32(diag2, 0x4e);\n        diag3 = _mm_xor_si128(diag3, b6);\n\n        a7    = _mm_add_epi32(a7, diag3);\n        a0    = diag1;\n        b7    = a7;\n        a7    = _mm_slli_epi32(a7, 18);\n        b7    = _mm_srli_epi32(b7, 14);\n        diag0 = _mm_xor_si128(diag0, a7);\n        diag3 = _mm_shuffle_epi32(diag3, 0x39);\n        diag0 = _mm_xor_si128(diag0, b7);\n\n        a0    = _mm_add_epi32(a0, diag0);\n        a1    = diag0;\n        b0    = a0;\n        a0    = _mm_slli_epi32(a0, 7);\n        b0    = _mm_srli_epi32(b0, 25);\n        diag3 = _mm_xor_si128(diag3, a0);\n\n        diag3 = _mm_xor_si128(diag3, b0);\n\n        a1    = _mm_add_epi32(a1, diag3);\n        a2    = diag3;\n        b1    = a1;\n        a1    = _mm_slli_epi32(a1, 9);\n        b1    = _mm_srli_epi32(b1, 23);\n        diag2 = _mm_xor_si128(diag2, a1);\n        diag3 = _mm_shuffle_epi32(diag3, 0x93);\n        diag2 = _mm_xor_si128(diag2, b1);\n\n        a2    = _mm_add_epi32(a2, diag2);\n        a3    = diag2;\n        b2    = a2;\n        a2    = _mm_slli_epi32(a2, 13);\n        b2    = _mm_srli_epi32(b2, 19);\n        diag1 = _mm_xor_si128(diag1, a2);\n        diag2 = _mm_shuffle_epi32(diag2, 0x4e);\n        diag1 = _mm_xor_si128(diag1, b2);\n\n        a3    = _mm_add_epi32(a3, diag1);\n        a4    = diag3;\n        b3    = a3;\n        a3    = _mm_slli_epi32(a3, 18);\n        b3    = _mm_srli_epi32(b3, 14);\n        diag0 = _mm_xor_si128(diag0, a3);\n        diag1 = _mm_shuffle_epi32(diag1, 0x39);\n        diag0 = _mm_xor_si128(diag0, b3);\n\n        a4    = _mm_add_epi32(a4, diag0);\n        a5    = diag0;\n        b4    = a4;\n        a4    = _mm_slli_epi32(a4, 7);\n        b4    = _mm_srli_epi32(b4, 25);\n        diag1 = _mm_xor_si128(diag1, a4);\n\n        diag1 = _mm_xor_si128(diag1, b4);\n\n        a5    = _mm_add_epi32(a5, diag1);\n        a6    = diag1;\n        b5    = a5;\n        a5    = _mm_slli_epi32(a5, 9);\n        b5    = _mm_srli_epi32(b5, 23);\n        diag2 = _mm_xor_si128(diag2, a5);\n        diag1 = _mm_shuffle_epi32(diag1, 0x93);\n        diag2 = _mm_xor_si128(diag2, b5);\n\n        a6    = _mm_add_epi32(a6, diag2);\n        a7    = diag2;\n        b6    = a6;\n        a6    = _mm_slli_epi32(a6, 13);\n        b6    = _mm_srli_epi32(b6, 19);\n        diag3 = _mm_xor_si128(diag3, a6);\n        diag2 = _mm_shuffle_epi32(diag2, 0x4e);\n        diag3 = _mm_xor_si128(diag3, b6);\n\n        a7    = _mm_add_epi32(a7, diag3);\n        a0    = diag1;\n        b7    = a7;\n        a7    = _mm_slli_epi32(a7, 18);\n        b7    = _mm_srli_epi32(b7, 14);\n        diag0 = _mm_xor_si128(diag0, a7);\n        diag3 = _mm_shuffle_epi32(diag3, 0x39);\n        diag0 = _mm_xor_si128(diag0, b7);\n    }\n\n    diag0 = _mm_add_epi32(diag0, _mm_loadu_si128((const __m128i *) (x + 0)));\n    diag1 = _mm_add_epi32(diag1, _mm_loadu_si128((const __m128i *) (x + 4)));\n    diag2 = _mm_add_epi32(diag2, _mm_loadu_si128((const __m128i *) (x + 8)));\n    diag3 = _mm_add_epi32(diag3, _mm_loadu_si128((const __m128i *) (x + 12)));\n\n#define ONEQUAD_SHUFFLE(A, B, C, D)                      \\\n    do {                                                 \\\n        uint32_t in##A = _mm_cvtsi128_si32(diag0);       \\\n        uint32_t in##B = _mm_cvtsi128_si32(diag1);       \\\n        uint32_t in##C = _mm_cvtsi128_si32(diag2);       \\\n        uint32_t in##D = _mm_cvtsi128_si32(diag3);       \\\n        diag0          = _mm_shuffle_epi32(diag0, 0x39); \\\n        diag1          = _mm_shuffle_epi32(diag1, 0x39); \\\n        diag2          = _mm_shuffle_epi32(diag2, 0x39); \\\n        diag3          = _mm_shuffle_epi32(diag3, 0x39); \\\n        in##A ^= *(const uint32_t *) (m + (A * 4));      \\\n        in##B ^= *(const uint32_t *) (m + (B * 4));      \\\n        in##C ^= *(const uint32_t *) (m + (C * 4));      \\\n        in##D ^= *(const uint32_t *) (m + (D * 4));      \\\n        *(uint32_t *) (c + (A * 4)) = in##A;             \\\n        *(uint32_t *) (c + (B * 4)) = in##B;             \\\n        *(uint32_t *) (c + (C * 4)) = in##C;             \\\n        *(uint32_t *) (c + (D * 4)) = in##D;             \\\n    } while (0)\n\n#define ONEQUAD(A, B, C, D) ONEQUAD_SHUFFLE(A, B, C, D)\n\n    ONEQUAD(0, 12, 8, 4);\n    ONEQUAD(5, 1, 13, 9);\n    ONEQUAD(10, 6, 2, 14);\n    ONEQUAD(15, 11, 7, 3);\n\n#undef ONEQUAD\n#undef ONEQUAD_SHUFFLE\n\n    in8 = x[8];\n    in9 = x[13];\n    in8++;\n    if (in8 == 0) {\n        in9++;\n    }\n    x[8]  = in8;\n    x[13] = in9;\n\n    c += 64;\n    m += 64;\n    bytes -= 64;\n}\n"
  },
  {
    "path": "src/libsodium/crypto_stream/salsa20/xmm6int/u4.h",
    "content": "if (bytes >= 256) {\n    __m128i y0, y1, y2, y3, y4, y5, y6, y7, y8, y9, y10, y11, y12, y13, y14,\n        y15;\n    __m128i z0, z1, z2, z3, z4, z5, z6, z7, z8, z9, z10, z11, z12, z13, z14,\n        z15;\n    __m128i orig0, orig1, orig2, orig3, orig4, orig5, orig6, orig7, orig8,\n        orig9, orig10, orig11, orig12, orig13, orig14, orig15;\n\n    uint32_t in8;\n    uint32_t in9;\n    int      i;\n\n    /* element broadcast immediate for _mm_shuffle_epi32 are in order:\n       0x00, 0x55, 0xaa, 0xff */\n    z0  = _mm_loadu_si128((const __m128i *) (x + 0));\n    z5  = _mm_shuffle_epi32(z0, 0x55);\n    z10 = _mm_shuffle_epi32(z0, 0xaa);\n    z15 = _mm_shuffle_epi32(z0, 0xff);\n    z0  = _mm_shuffle_epi32(z0, 0x00);\n    z1  = _mm_loadu_si128((const __m128i *) (x + 4));\n    z6  = _mm_shuffle_epi32(z1, 0xaa);\n    z11 = _mm_shuffle_epi32(z1, 0xff);\n    z12 = _mm_shuffle_epi32(z1, 0x00);\n    z1  = _mm_shuffle_epi32(z1, 0x55);\n    z2  = _mm_loadu_si128((const __m128i *) (x + 8));\n    z7  = _mm_shuffle_epi32(z2, 0xff);\n    z13 = _mm_shuffle_epi32(z2, 0x55);\n    z2  = _mm_shuffle_epi32(z2, 0xaa);\n    /* no z8 -> first half of the nonce, will fill later */\n    z3  = _mm_loadu_si128((const __m128i *) (x + 12));\n    z4  = _mm_shuffle_epi32(z3, 0x00);\n    z14 = _mm_shuffle_epi32(z3, 0xaa);\n    z3  = _mm_shuffle_epi32(z3, 0xff);\n    /* no z9 -> second half of the nonce, will fill later */\n    orig0  = z0;\n    orig1  = z1;\n    orig2  = z2;\n    orig3  = z3;\n    orig4  = z4;\n    orig5  = z5;\n    orig6  = z6;\n    orig7  = z7;\n    orig10 = z10;\n    orig11 = z11;\n    orig12 = z12;\n    orig13 = z13;\n    orig14 = z14;\n    orig15 = z15;\n\n    while (bytes >= 256) {\n        /* vector implementation for z8 and z9 */\n        /* not sure if it helps for only 4 blocks */\n        const __m128i addv8 = _mm_set_epi64x(1, 0);\n        const __m128i addv9 = _mm_set_epi64x(3, 2);\n        __m128i       t8, t9;\n        uint64_t      in89;\n\n        in8  = x[8];\n        in9  = x[13];\n        in89 = ((uint64_t) in8) | (((uint64_t) in9) << 32);\n        t8   = _mm_set1_epi64x(in89);\n        t9   = _mm_set1_epi64x(in89);\n\n        z8 = _mm_add_epi64(addv8, t8);\n        z9 = _mm_add_epi64(addv9, t9);\n\n        t8 = _mm_unpacklo_epi32(z8, z9);\n        t9 = _mm_unpackhi_epi32(z8, z9);\n\n        z8 = _mm_unpacklo_epi32(t8, t9);\n        z9 = _mm_unpackhi_epi32(t8, t9);\n\n        orig8 = z8;\n        orig9 = z9;\n\n        in89 += 4;\n\n        x[8]  = in89 & 0xFFFFFFFF;\n        x[13] = (in89 >> 32) & 0xFFFFFFFF;\n\n        z5  = orig5;\n        z10 = orig10;\n        z15 = orig15;\n        z14 = orig14;\n        z3  = orig3;\n        z6  = orig6;\n        z11 = orig11;\n        z1  = orig1;\n\n        z7  = orig7;\n        z13 = orig13;\n        z2  = orig2;\n        z9  = orig9;\n        z0  = orig0;\n        z12 = orig12;\n        z4  = orig4;\n        z8  = orig8;\n\n        for (i = 0; i < ROUNDS; i += 2) {\n            /* the inner loop is a direct translation (regexp search/replace)\n             * from the amd64-xmm6 ASM */\n            __m128i r0, r1, r2, r3, r4, r5, r6, r7, r8, r9, r10, r11, r12, r13,\n                r14, r15;\n\n            y4 = z12;\n            y4 = _mm_add_epi32(y4, z0);\n            r4 = y4;\n            y4 = _mm_slli_epi32(y4, 7);\n            z4 = _mm_xor_si128(z4, y4);\n            r4 = _mm_srli_epi32(r4, 25);\n            z4 = _mm_xor_si128(z4, r4);\n\n            y9 = z1;\n            y9 = _mm_add_epi32(y9, z5);\n            r9 = y9;\n            y9 = _mm_slli_epi32(y9, 7);\n            z9 = _mm_xor_si128(z9, y9);\n            r9 = _mm_srli_epi32(r9, 25);\n            z9 = _mm_xor_si128(z9, r9);\n\n            y8 = z0;\n            y8 = _mm_add_epi32(y8, z4);\n            r8 = y8;\n            y8 = _mm_slli_epi32(y8, 9);\n            z8 = _mm_xor_si128(z8, y8);\n            r8 = _mm_srli_epi32(r8, 23);\n            z8 = _mm_xor_si128(z8, r8);\n\n            y13 = z5;\n            y13 = _mm_add_epi32(y13, z9);\n            r13 = y13;\n            y13 = _mm_slli_epi32(y13, 9);\n            z13 = _mm_xor_si128(z13, y13);\n            r13 = _mm_srli_epi32(r13, 23);\n            z13 = _mm_xor_si128(z13, r13);\n\n            y12 = z4;\n            y12 = _mm_add_epi32(y12, z8);\n            r12 = y12;\n            y12 = _mm_slli_epi32(y12, 13);\n            z12 = _mm_xor_si128(z12, y12);\n            r12 = _mm_srli_epi32(r12, 19);\n            z12 = _mm_xor_si128(z12, r12);\n\n            y1 = z9;\n            y1 = _mm_add_epi32(y1, z13);\n            r1 = y1;\n            y1 = _mm_slli_epi32(y1, 13);\n            z1 = _mm_xor_si128(z1, y1);\n            r1 = _mm_srli_epi32(r1, 19);\n            z1 = _mm_xor_si128(z1, r1);\n\n            y0 = z8;\n            y0 = _mm_add_epi32(y0, z12);\n            r0 = y0;\n            y0 = _mm_slli_epi32(y0, 18);\n            z0 = _mm_xor_si128(z0, y0);\n            r0 = _mm_srli_epi32(r0, 14);\n            z0 = _mm_xor_si128(z0, r0);\n\n            y5 = z13;\n            y5 = _mm_add_epi32(y5, z1);\n            r5 = y5;\n            y5 = _mm_slli_epi32(y5, 18);\n            z5 = _mm_xor_si128(z5, y5);\n            r5 = _mm_srli_epi32(r5, 14);\n            z5 = _mm_xor_si128(z5, r5);\n\n            y14 = z6;\n            y14 = _mm_add_epi32(y14, z10);\n            r14 = y14;\n            y14 = _mm_slli_epi32(y14, 7);\n            z14 = _mm_xor_si128(z14, y14);\n            r14 = _mm_srli_epi32(r14, 25);\n            z14 = _mm_xor_si128(z14, r14);\n\n            y3 = z11;\n            y3 = _mm_add_epi32(y3, z15);\n            r3 = y3;\n            y3 = _mm_slli_epi32(y3, 7);\n            z3 = _mm_xor_si128(z3, y3);\n            r3 = _mm_srli_epi32(r3, 25);\n            z3 = _mm_xor_si128(z3, r3);\n\n            y2 = z10;\n            y2 = _mm_add_epi32(y2, z14);\n            r2 = y2;\n            y2 = _mm_slli_epi32(y2, 9);\n            z2 = _mm_xor_si128(z2, y2);\n            r2 = _mm_srli_epi32(r2, 23);\n            z2 = _mm_xor_si128(z2, r2);\n\n            y7 = z15;\n            y7 = _mm_add_epi32(y7, z3);\n            r7 = y7;\n            y7 = _mm_slli_epi32(y7, 9);\n            z7 = _mm_xor_si128(z7, y7);\n            r7 = _mm_srli_epi32(r7, 23);\n            z7 = _mm_xor_si128(z7, r7);\n\n            y6 = z14;\n            y6 = _mm_add_epi32(y6, z2);\n            r6 = y6;\n            y6 = _mm_slli_epi32(y6, 13);\n            z6 = _mm_xor_si128(z6, y6);\n            r6 = _mm_srli_epi32(r6, 19);\n            z6 = _mm_xor_si128(z6, r6);\n\n            y11 = z3;\n            y11 = _mm_add_epi32(y11, z7);\n            r11 = y11;\n            y11 = _mm_slli_epi32(y11, 13);\n            z11 = _mm_xor_si128(z11, y11);\n            r11 = _mm_srli_epi32(r11, 19);\n            z11 = _mm_xor_si128(z11, r11);\n\n            y10 = z2;\n            y10 = _mm_add_epi32(y10, z6);\n            r10 = y10;\n            y10 = _mm_slli_epi32(y10, 18);\n            z10 = _mm_xor_si128(z10, y10);\n            r10 = _mm_srli_epi32(r10, 14);\n            z10 = _mm_xor_si128(z10, r10);\n\n            y1 = z3;\n            y1 = _mm_add_epi32(y1, z0);\n            r1 = y1;\n            y1 = _mm_slli_epi32(y1, 7);\n            z1 = _mm_xor_si128(z1, y1);\n            r1 = _mm_srli_epi32(r1, 25);\n            z1 = _mm_xor_si128(z1, r1);\n\n            y15 = z7;\n            y15 = _mm_add_epi32(y15, z11);\n            r15 = y15;\n            y15 = _mm_slli_epi32(y15, 18);\n            z15 = _mm_xor_si128(z15, y15);\n            r15 = _mm_srli_epi32(r15, 14);\n            z15 = _mm_xor_si128(z15, r15);\n\n            y6 = z4;\n            y6 = _mm_add_epi32(y6, z5);\n            r6 = y6;\n            y6 = _mm_slli_epi32(y6, 7);\n            z6 = _mm_xor_si128(z6, y6);\n            r6 = _mm_srli_epi32(r6, 25);\n            z6 = _mm_xor_si128(z6, r6);\n\n            y2 = z0;\n            y2 = _mm_add_epi32(y2, z1);\n            r2 = y2;\n            y2 = _mm_slli_epi32(y2, 9);\n            z2 = _mm_xor_si128(z2, y2);\n            r2 = _mm_srli_epi32(r2, 23);\n            z2 = _mm_xor_si128(z2, r2);\n\n            y7 = z5;\n            y7 = _mm_add_epi32(y7, z6);\n            r7 = y7;\n            y7 = _mm_slli_epi32(y7, 9);\n            z7 = _mm_xor_si128(z7, y7);\n            r7 = _mm_srli_epi32(r7, 23);\n            z7 = _mm_xor_si128(z7, r7);\n\n            y3 = z1;\n            y3 = _mm_add_epi32(y3, z2);\n            r3 = y3;\n            y3 = _mm_slli_epi32(y3, 13);\n            z3 = _mm_xor_si128(z3, y3);\n            r3 = _mm_srli_epi32(r3, 19);\n            z3 = _mm_xor_si128(z3, r3);\n\n            y4 = z6;\n            y4 = _mm_add_epi32(y4, z7);\n            r4 = y4;\n            y4 = _mm_slli_epi32(y4, 13);\n            z4 = _mm_xor_si128(z4, y4);\n            r4 = _mm_srli_epi32(r4, 19);\n            z4 = _mm_xor_si128(z4, r4);\n\n            y0 = z2;\n            y0 = _mm_add_epi32(y0, z3);\n            r0 = y0;\n            y0 = _mm_slli_epi32(y0, 18);\n            z0 = _mm_xor_si128(z0, y0);\n            r0 = _mm_srli_epi32(r0, 14);\n            z0 = _mm_xor_si128(z0, r0);\n\n            y5 = z7;\n            y5 = _mm_add_epi32(y5, z4);\n            r5 = y5;\n            y5 = _mm_slli_epi32(y5, 18);\n            z5 = _mm_xor_si128(z5, y5);\n            r5 = _mm_srli_epi32(r5, 14);\n            z5 = _mm_xor_si128(z5, r5);\n\n            y11 = z9;\n            y11 = _mm_add_epi32(y11, z10);\n            r11 = y11;\n            y11 = _mm_slli_epi32(y11, 7);\n            z11 = _mm_xor_si128(z11, y11);\n            r11 = _mm_srli_epi32(r11, 25);\n            z11 = _mm_xor_si128(z11, r11);\n\n            y12 = z14;\n            y12 = _mm_add_epi32(y12, z15);\n            r12 = y12;\n            y12 = _mm_slli_epi32(y12, 7);\n            z12 = _mm_xor_si128(z12, y12);\n            r12 = _mm_srli_epi32(r12, 25);\n            z12 = _mm_xor_si128(z12, r12);\n\n            y8 = z10;\n            y8 = _mm_add_epi32(y8, z11);\n            r8 = y8;\n            y8 = _mm_slli_epi32(y8, 9);\n            z8 = _mm_xor_si128(z8, y8);\n            r8 = _mm_srli_epi32(r8, 23);\n            z8 = _mm_xor_si128(z8, r8);\n\n            y13 = z15;\n            y13 = _mm_add_epi32(y13, z12);\n            r13 = y13;\n            y13 = _mm_slli_epi32(y13, 9);\n            z13 = _mm_xor_si128(z13, y13);\n            r13 = _mm_srli_epi32(r13, 23);\n            z13 = _mm_xor_si128(z13, r13);\n\n            y9 = z11;\n            y9 = _mm_add_epi32(y9, z8);\n            r9 = y9;\n            y9 = _mm_slli_epi32(y9, 13);\n            z9 = _mm_xor_si128(z9, y9);\n            r9 = _mm_srli_epi32(r9, 19);\n            z9 = _mm_xor_si128(z9, r9);\n\n            y14 = z12;\n            y14 = _mm_add_epi32(y14, z13);\n            r14 = y14;\n            y14 = _mm_slli_epi32(y14, 13);\n            z14 = _mm_xor_si128(z14, y14);\n            r14 = _mm_srli_epi32(r14, 19);\n            z14 = _mm_xor_si128(z14, r14);\n\n            y10 = z8;\n            y10 = _mm_add_epi32(y10, z9);\n            r10 = y10;\n            y10 = _mm_slli_epi32(y10, 18);\n            z10 = _mm_xor_si128(z10, y10);\n            r10 = _mm_srli_epi32(r10, 14);\n            z10 = _mm_xor_si128(z10, r10);\n\n            y15 = z13;\n            y15 = _mm_add_epi32(y15, z14);\n            r15 = y15;\n            y15 = _mm_slli_epi32(y15, 18);\n            z15 = _mm_xor_si128(z15, y15);\n            r15 = _mm_srli_epi32(r15, 14);\n            z15 = _mm_xor_si128(z15, r15);\n        }\n\n/* store data ; this macro replicates the original amd64-xmm6 code */\n#define ONEQUAD_SHUFFLE(A, B, C, D)        \\\n    z##A  = _mm_add_epi32(z##A, orig##A);  \\\n    z##B  = _mm_add_epi32(z##B, orig##B);  \\\n    z##C  = _mm_add_epi32(z##C, orig##C);  \\\n    z##D  = _mm_add_epi32(z##D, orig##D);  \\\n    in##A = _mm_cvtsi128_si32(z##A);       \\\n    in##B = _mm_cvtsi128_si32(z##B);       \\\n    in##C = _mm_cvtsi128_si32(z##C);       \\\n    in##D = _mm_cvtsi128_si32(z##D);       \\\n    z##A  = _mm_shuffle_epi32(z##A, 0x39); \\\n    z##B  = _mm_shuffle_epi32(z##B, 0x39); \\\n    z##C  = _mm_shuffle_epi32(z##C, 0x39); \\\n    z##D  = _mm_shuffle_epi32(z##D, 0x39); \\\n                                           \\\n    in##A ^= *(uint32_t *) (m + 0);        \\\n    in##B ^= *(uint32_t *) (m + 4);        \\\n    in##C ^= *(uint32_t *) (m + 8);        \\\n    in##D ^= *(uint32_t *) (m + 12);       \\\n                                           \\\n    *(uint32_t *) (c + 0)  = in##A;        \\\n    *(uint32_t *) (c + 4)  = in##B;        \\\n    *(uint32_t *) (c + 8)  = in##C;        \\\n    *(uint32_t *) (c + 12) = in##D;        \\\n                                           \\\n    in##A = _mm_cvtsi128_si32(z##A);       \\\n    in##B = _mm_cvtsi128_si32(z##B);       \\\n    in##C = _mm_cvtsi128_si32(z##C);       \\\n    in##D = _mm_cvtsi128_si32(z##D);       \\\n    z##A  = _mm_shuffle_epi32(z##A, 0x39); \\\n    z##B  = _mm_shuffle_epi32(z##B, 0x39); \\\n    z##C  = _mm_shuffle_epi32(z##C, 0x39); \\\n    z##D  = _mm_shuffle_epi32(z##D, 0x39); \\\n                                           \\\n    in##A ^= *(uint32_t *) (m + 64);       \\\n    in##B ^= *(uint32_t *) (m + 68);       \\\n    in##C ^= *(uint32_t *) (m + 72);       \\\n    in##D ^= *(uint32_t *) (m + 76);       \\\n    *(uint32_t *) (c + 64) = in##A;        \\\n    *(uint32_t *) (c + 68) = in##B;        \\\n    *(uint32_t *) (c + 72) = in##C;        \\\n    *(uint32_t *) (c + 76) = in##D;        \\\n                                           \\\n    in##A = _mm_cvtsi128_si32(z##A);       \\\n    in##B = _mm_cvtsi128_si32(z##B);       \\\n    in##C = _mm_cvtsi128_si32(z##C);       \\\n    in##D = _mm_cvtsi128_si32(z##D);       \\\n    z##A  = _mm_shuffle_epi32(z##A, 0x39); \\\n    z##B  = _mm_shuffle_epi32(z##B, 0x39); \\\n    z##C  = _mm_shuffle_epi32(z##C, 0x39); \\\n    z##D  = _mm_shuffle_epi32(z##D, 0x39); \\\n                                           \\\n    in##A ^= *(uint32_t *) (m + 128);      \\\n    in##B ^= *(uint32_t *) (m + 132);      \\\n    in##C ^= *(uint32_t *) (m + 136);      \\\n    in##D ^= *(uint32_t *) (m + 140);      \\\n    *(uint32_t *) (c + 128) = in##A;       \\\n    *(uint32_t *) (c + 132) = in##B;       \\\n    *(uint32_t *) (c + 136) = in##C;       \\\n    *(uint32_t *) (c + 140) = in##D;       \\\n                                           \\\n    in##A = _mm_cvtsi128_si32(z##A);       \\\n    in##B = _mm_cvtsi128_si32(z##B);       \\\n    in##C = _mm_cvtsi128_si32(z##C);       \\\n    in##D = _mm_cvtsi128_si32(z##D);       \\\n                                           \\\n    in##A ^= *(uint32_t *) (m + 192);      \\\n    in##B ^= *(uint32_t *) (m + 196);      \\\n    in##C ^= *(uint32_t *) (m + 200);      \\\n    in##D ^= *(uint32_t *) (m + 204);      \\\n    *(uint32_t *) (c + 192) = in##A;       \\\n    *(uint32_t *) (c + 196) = in##B;       \\\n    *(uint32_t *) (c + 200) = in##C;       \\\n    *(uint32_t *) (c + 204) = in##D\n\n/* store data ; this macro replaces shuffle+mov by a direct extract; not much\n * difference */\n#define ONEQUAD_EXTRACT(A, B, C, D)       \\\n    z##A  = _mm_add_epi32(z##A, orig##A); \\\n    z##B  = _mm_add_epi32(z##B, orig##B); \\\n    z##C  = _mm_add_epi32(z##C, orig##C); \\\n    z##D  = _mm_add_epi32(z##D, orig##D); \\\n    in##A = _mm_cvtsi128_si32(z##A);      \\\n    in##B = _mm_cvtsi128_si32(z##B);      \\\n    in##C = _mm_cvtsi128_si32(z##C);      \\\n    in##D = _mm_cvtsi128_si32(z##D);      \\\n    in##A ^= *(uint32_t *) (m + 0);       \\\n    in##B ^= *(uint32_t *) (m + 4);       \\\n    in##C ^= *(uint32_t *) (m + 8);       \\\n    in##D ^= *(uint32_t *) (m + 12);      \\\n    *(uint32_t *) (c + 0)  = in##A;       \\\n    *(uint32_t *) (c + 4)  = in##B;       \\\n    *(uint32_t *) (c + 8)  = in##C;       \\\n    *(uint32_t *) (c + 12) = in##D;       \\\n                                          \\\n    in##A = _mm_extract_epi32(z##A, 1);   \\\n    in##B = _mm_extract_epi32(z##B, 1);   \\\n    in##C = _mm_extract_epi32(z##C, 1);   \\\n    in##D = _mm_extract_epi32(z##D, 1);   \\\n                                          \\\n    in##A ^= *(uint32_t *) (m + 64);      \\\n    in##B ^= *(uint32_t *) (m + 68);      \\\n    in##C ^= *(uint32_t *) (m + 72);      \\\n    in##D ^= *(uint32_t *) (m + 76);      \\\n    *(uint32_t *) (c + 64) = in##A;       \\\n    *(uint32_t *) (c + 68) = in##B;       \\\n    *(uint32_t *) (c + 72) = in##C;       \\\n    *(uint32_t *) (c + 76) = in##D;       \\\n                                          \\\n    in##A = _mm_extract_epi32(z##A, 2);   \\\n    in##B = _mm_extract_epi32(z##B, 2);   \\\n    in##C = _mm_extract_epi32(z##C, 2);   \\\n    in##D = _mm_extract_epi32(z##D, 2);   \\\n                                          \\\n    in##A ^= *(uint32_t *) (m + 128);     \\\n    in##B ^= *(uint32_t *) (m + 132);     \\\n    in##C ^= *(uint32_t *) (m + 136);     \\\n    in##D ^= *(uint32_t *) (m + 140);     \\\n    *(uint32_t *) (c + 128) = in##A;      \\\n    *(uint32_t *) (c + 132) = in##B;      \\\n    *(uint32_t *) (c + 136) = in##C;      \\\n    *(uint32_t *) (c + 140) = in##D;      \\\n                                          \\\n    in##A = _mm_extract_epi32(z##A, 3);   \\\n    in##B = _mm_extract_epi32(z##B, 3);   \\\n    in##C = _mm_extract_epi32(z##C, 3);   \\\n    in##D = _mm_extract_epi32(z##D, 3);   \\\n                                          \\\n    in##A ^= *(uint32_t *) (m + 192);     \\\n    in##B ^= *(uint32_t *) (m + 196);     \\\n    in##C ^= *(uint32_t *) (m + 200);     \\\n    in##D ^= *(uint32_t *) (m + 204);     \\\n    *(uint32_t *) (c + 192) = in##A;      \\\n    *(uint32_t *) (c + 196) = in##B;      \\\n    *(uint32_t *) (c + 200) = in##C;      \\\n    *(uint32_t *) (c + 204) = in##D\n\n/* store data ; this macro first transpose data in-registers, and then store\n * them in memory. much faster with icc. */\n#define ONEQUAD_TRANSPOSE(A, B, C, D)                                         \\\n    z##A = _mm_add_epi32(z##A, orig##A);                                      \\\n    z##B = _mm_add_epi32(z##B, orig##B);                                      \\\n    z##C = _mm_add_epi32(z##C, orig##C);                                      \\\n    z##D = _mm_add_epi32(z##D, orig##D);                                      \\\n    y##A = _mm_unpacklo_epi32(z##A, z##B);                                    \\\n    y##B = _mm_unpacklo_epi32(z##C, z##D);                                    \\\n    y##C = _mm_unpackhi_epi32(z##A, z##B);                                    \\\n    y##D = _mm_unpackhi_epi32(z##C, z##D);                                    \\\n    z##A = _mm_unpacklo_epi64(y##A, y##B);                                    \\\n    z##B = _mm_unpackhi_epi64(y##A, y##B);                                    \\\n    z##C = _mm_unpacklo_epi64(y##C, y##D);                                    \\\n    z##D = _mm_unpackhi_epi64(y##C, y##D);                                    \\\n    y##A = _mm_xor_si128(z##A, _mm_loadu_si128((const __m128i *) (m + 0)));   \\\n    _mm_storeu_si128((__m128i *) (c + 0), y##A);                              \\\n    y##B = _mm_xor_si128(z##B, _mm_loadu_si128((const __m128i *) (m + 64)));  \\\n    _mm_storeu_si128((__m128i *) (c + 64), y##B);                             \\\n    y##C = _mm_xor_si128(z##C, _mm_loadu_si128((const __m128i *) (m + 128))); \\\n    _mm_storeu_si128((__m128i *) (c + 128), y##C);                            \\\n    y##D = _mm_xor_si128(z##D, _mm_loadu_si128((const __m128i *) (m + 192))); \\\n    _mm_storeu_si128((__m128i *) (c + 192), y##D)\n\n#define ONEQUAD(A, B, C, D) ONEQUAD_TRANSPOSE(A, B, C, D)\n\n        ONEQUAD(0, 1, 2, 3);\n        m += 16;\n        c += 16;\n        ONEQUAD(4, 5, 6, 7);\n        m += 16;\n        c += 16;\n        ONEQUAD(8, 9, 10, 11);\n        m += 16;\n        c += 16;\n        ONEQUAD(12, 13, 14, 15);\n        m -= 48;\n        c -= 48;\n\n#undef ONEQUAD\n#undef ONEQUAD_TRANSPOSE\n#undef ONEQUAD_EXTRACT\n#undef ONEQUAD_SHUFFLE\n\n        bytes -= 256;\n        c += 256;\n        m += 256;\n    }\n}\n"
  },
  {
    "path": "src/libsodium/crypto_stream/salsa20/xmm6int/u8.h",
    "content": "if (bytes >= 512) {\n    __m256i y0, y1, y2, y3, y4, y5, y6, y7, y8, y9, y10, y11, y12, y13, y14,\n        y15;\n\n    /* the naive way seems as fast (if not a bit faster) than the vector way */\n    __m256i z0  = _mm256_set1_epi32(x[0]);\n    __m256i z5  = _mm256_set1_epi32(x[1]);\n    __m256i z10 = _mm256_set1_epi32(x[2]);\n    __m256i z15 = _mm256_set1_epi32(x[3]);\n    __m256i z12 = _mm256_set1_epi32(x[4]);\n    __m256i z1  = _mm256_set1_epi32(x[5]);\n    __m256i z6  = _mm256_set1_epi32(x[6]);\n    __m256i z11 = _mm256_set1_epi32(x[7]);\n    __m256i z8; /* useless */\n    __m256i z13 = _mm256_set1_epi32(x[9]);\n    __m256i z2  = _mm256_set1_epi32(x[10]);\n    __m256i z7  = _mm256_set1_epi32(x[11]);\n    __m256i z4  = _mm256_set1_epi32(x[12]);\n    __m256i z9; /* useless */\n    __m256i z14 = _mm256_set1_epi32(x[14]);\n    __m256i z3  = _mm256_set1_epi32(x[15]);\n\n    __m256i orig0 = z0;\n    __m256i orig1 = z1;\n    __m256i orig2 = z2;\n    __m256i orig3 = z3;\n    __m256i orig4 = z4;\n    __m256i orig5 = z5;\n    __m256i orig6 = z6;\n    __m256i orig7 = z7;\n    __m256i orig8;\n    __m256i orig9;\n    __m256i orig10 = z10;\n    __m256i orig11 = z11;\n    __m256i orig12 = z12;\n    __m256i orig13 = z13;\n    __m256i orig14 = z14;\n    __m256i orig15 = z15;\n\n    uint32_t in8;\n    uint32_t in9;\n    int      i;\n\n    while (bytes >= 512) {\n        /* vector implementation for z8 and z9 */\n        /* faster than the naive version for 8 blocks */\n        const __m256i addv8   = _mm256_set_epi64x(3, 2, 1, 0);\n        const __m256i addv9   = _mm256_set_epi64x(7, 6, 5, 4);\n        const __m256i permute = _mm256_set_epi32(7, 6, 3, 2, 5, 4, 1, 0);\n\n        __m256i  t8, t9;\n        uint64_t in89;\n\n        in8  = x[8];\n        in9  = x[13]; /* see arrays above for the address translation */\n        in89 = ((uint64_t) in8) | (((uint64_t) in9) << 32);\n\n        z8 = z9 = _mm256_broadcastq_epi64(_mm_cvtsi64_si128(in89));\n\n        t8 = _mm256_add_epi64(addv8, z8);\n        t9 = _mm256_add_epi64(addv9, z9);\n\n        z8 = _mm256_unpacklo_epi32(t8, t9);\n        z9 = _mm256_unpackhi_epi32(t8, t9);\n\n        t8 = _mm256_unpacklo_epi32(z8, z9);\n        t9 = _mm256_unpackhi_epi32(z8, z9);\n\n        /* required because unpack* are intra-lane */\n        z8 = _mm256_permutevar8x32_epi32(t8, permute);\n        z9 = _mm256_permutevar8x32_epi32(t9, permute);\n\n        orig8 = z8;\n        orig9 = z9;\n\n        in89 += 8;\n\n        x[8]  = in89 & 0xFFFFFFFF;\n        x[13] = (in89 >> 32) & 0xFFFFFFFF;\n\n        z5  = orig5;\n        z10 = orig10;\n        z15 = orig15;\n        z14 = orig14;\n        z3  = orig3;\n        z6  = orig6;\n        z11 = orig11;\n        z1  = orig1;\n\n        z7  = orig7;\n        z13 = orig13;\n        z2  = orig2;\n        z9  = orig9;\n        z0  = orig0;\n        z12 = orig12;\n        z4  = orig4;\n        z8  = orig8;\n\n        for (i = 0; i < ROUNDS; i += 2) {\n            /* the inner loop is a direct translation (regexp search/replace)\n             * from the amd64-xmm6 ASM */\n            __m256i r0, r1, r2, r3, r4, r5, r6, r7, r8, r9, r10, r11, r12, r13,\n                r14, r15;\n\n            y4 = z12;\n            y4 = _mm256_add_epi32(y4, z0);\n            r4 = y4;\n            y4 = _mm256_slli_epi32(y4, 7);\n            z4 = _mm256_xor_si256(z4, y4);\n            r4 = _mm256_srli_epi32(r4, 25);\n            z4 = _mm256_xor_si256(z4, r4);\n\n            y9 = z1;\n            y9 = _mm256_add_epi32(y9, z5);\n            r9 = y9;\n            y9 = _mm256_slli_epi32(y9, 7);\n            z9 = _mm256_xor_si256(z9, y9);\n            r9 = _mm256_srli_epi32(r9, 25);\n            z9 = _mm256_xor_si256(z9, r9);\n\n            y8 = z0;\n            y8 = _mm256_add_epi32(y8, z4);\n            r8 = y8;\n            y8 = _mm256_slli_epi32(y8, 9);\n            z8 = _mm256_xor_si256(z8, y8);\n            r8 = _mm256_srli_epi32(r8, 23);\n            z8 = _mm256_xor_si256(z8, r8);\n\n            y13 = z5;\n            y13 = _mm256_add_epi32(y13, z9);\n            r13 = y13;\n            y13 = _mm256_slli_epi32(y13, 9);\n            z13 = _mm256_xor_si256(z13, y13);\n            r13 = _mm256_srli_epi32(r13, 23);\n            z13 = _mm256_xor_si256(z13, r13);\n\n            y12 = z4;\n            y12 = _mm256_add_epi32(y12, z8);\n            r12 = y12;\n            y12 = _mm256_slli_epi32(y12, 13);\n            z12 = _mm256_xor_si256(z12, y12);\n            r12 = _mm256_srli_epi32(r12, 19);\n            z12 = _mm256_xor_si256(z12, r12);\n\n            y1 = z9;\n            y1 = _mm256_add_epi32(y1, z13);\n            r1 = y1;\n            y1 = _mm256_slli_epi32(y1, 13);\n            z1 = _mm256_xor_si256(z1, y1);\n            r1 = _mm256_srli_epi32(r1, 19);\n            z1 = _mm256_xor_si256(z1, r1);\n\n            y0 = z8;\n            y0 = _mm256_add_epi32(y0, z12);\n            r0 = y0;\n            y0 = _mm256_slli_epi32(y0, 18);\n            z0 = _mm256_xor_si256(z0, y0);\n            r0 = _mm256_srli_epi32(r0, 14);\n            z0 = _mm256_xor_si256(z0, r0);\n\n            y5 = z13;\n            y5 = _mm256_add_epi32(y5, z1);\n            r5 = y5;\n            y5 = _mm256_slli_epi32(y5, 18);\n            z5 = _mm256_xor_si256(z5, y5);\n            r5 = _mm256_srli_epi32(r5, 14);\n            z5 = _mm256_xor_si256(z5, r5);\n\n            y14 = z6;\n            y14 = _mm256_add_epi32(y14, z10);\n            r14 = y14;\n            y14 = _mm256_slli_epi32(y14, 7);\n            z14 = _mm256_xor_si256(z14, y14);\n            r14 = _mm256_srli_epi32(r14, 25);\n            z14 = _mm256_xor_si256(z14, r14);\n\n            y3 = z11;\n            y3 = _mm256_add_epi32(y3, z15);\n            r3 = y3;\n            y3 = _mm256_slli_epi32(y3, 7);\n            z3 = _mm256_xor_si256(z3, y3);\n            r3 = _mm256_srli_epi32(r3, 25);\n            z3 = _mm256_xor_si256(z3, r3);\n\n            y2 = z10;\n            y2 = _mm256_add_epi32(y2, z14);\n            r2 = y2;\n            y2 = _mm256_slli_epi32(y2, 9);\n            z2 = _mm256_xor_si256(z2, y2);\n            r2 = _mm256_srli_epi32(r2, 23);\n            z2 = _mm256_xor_si256(z2, r2);\n\n            y7 = z15;\n            y7 = _mm256_add_epi32(y7, z3);\n            r7 = y7;\n            y7 = _mm256_slli_epi32(y7, 9);\n            z7 = _mm256_xor_si256(z7, y7);\n            r7 = _mm256_srli_epi32(r7, 23);\n            z7 = _mm256_xor_si256(z7, r7);\n\n            y6 = z14;\n            y6 = _mm256_add_epi32(y6, z2);\n            r6 = y6;\n            y6 = _mm256_slli_epi32(y6, 13);\n            z6 = _mm256_xor_si256(z6, y6);\n            r6 = _mm256_srli_epi32(r6, 19);\n            z6 = _mm256_xor_si256(z6, r6);\n\n            y11 = z3;\n            y11 = _mm256_add_epi32(y11, z7);\n            r11 = y11;\n            y11 = _mm256_slli_epi32(y11, 13);\n            z11 = _mm256_xor_si256(z11, y11);\n            r11 = _mm256_srli_epi32(r11, 19);\n            z11 = _mm256_xor_si256(z11, r11);\n\n            y10 = z2;\n            y10 = _mm256_add_epi32(y10, z6);\n            r10 = y10;\n            y10 = _mm256_slli_epi32(y10, 18);\n            z10 = _mm256_xor_si256(z10, y10);\n            r10 = _mm256_srli_epi32(r10, 14);\n            z10 = _mm256_xor_si256(z10, r10);\n\n            y1 = z3;\n            y1 = _mm256_add_epi32(y1, z0);\n            r1 = y1;\n            y1 = _mm256_slli_epi32(y1, 7);\n            z1 = _mm256_xor_si256(z1, y1);\n            r1 = _mm256_srli_epi32(r1, 25);\n            z1 = _mm256_xor_si256(z1, r1);\n\n            y15 = z7;\n            y15 = _mm256_add_epi32(y15, z11);\n            r15 = y15;\n            y15 = _mm256_slli_epi32(y15, 18);\n            z15 = _mm256_xor_si256(z15, y15);\n            r15 = _mm256_srli_epi32(r15, 14);\n            z15 = _mm256_xor_si256(z15, r15);\n\n            y6 = z4;\n            y6 = _mm256_add_epi32(y6, z5);\n            r6 = y6;\n            y6 = _mm256_slli_epi32(y6, 7);\n            z6 = _mm256_xor_si256(z6, y6);\n            r6 = _mm256_srli_epi32(r6, 25);\n            z6 = _mm256_xor_si256(z6, r6);\n\n            y2 = z0;\n            y2 = _mm256_add_epi32(y2, z1);\n            r2 = y2;\n            y2 = _mm256_slli_epi32(y2, 9);\n            z2 = _mm256_xor_si256(z2, y2);\n            r2 = _mm256_srli_epi32(r2, 23);\n            z2 = _mm256_xor_si256(z2, r2);\n\n            y7 = z5;\n            y7 = _mm256_add_epi32(y7, z6);\n            r7 = y7;\n            y7 = _mm256_slli_epi32(y7, 9);\n            z7 = _mm256_xor_si256(z7, y7);\n            r7 = _mm256_srli_epi32(r7, 23);\n            z7 = _mm256_xor_si256(z7, r7);\n\n            y3 = z1;\n            y3 = _mm256_add_epi32(y3, z2);\n            r3 = y3;\n            y3 = _mm256_slli_epi32(y3, 13);\n            z3 = _mm256_xor_si256(z3, y3);\n            r3 = _mm256_srli_epi32(r3, 19);\n            z3 = _mm256_xor_si256(z3, r3);\n\n            y4 = z6;\n            y4 = _mm256_add_epi32(y4, z7);\n            r4 = y4;\n            y4 = _mm256_slli_epi32(y4, 13);\n            z4 = _mm256_xor_si256(z4, y4);\n            r4 = _mm256_srli_epi32(r4, 19);\n            z4 = _mm256_xor_si256(z4, r4);\n\n            y0 = z2;\n            y0 = _mm256_add_epi32(y0, z3);\n            r0 = y0;\n            y0 = _mm256_slli_epi32(y0, 18);\n            z0 = _mm256_xor_si256(z0, y0);\n            r0 = _mm256_srli_epi32(r0, 14);\n            z0 = _mm256_xor_si256(z0, r0);\n\n            y5 = z7;\n            y5 = _mm256_add_epi32(y5, z4);\n            r5 = y5;\n            y5 = _mm256_slli_epi32(y5, 18);\n            z5 = _mm256_xor_si256(z5, y5);\n            r5 = _mm256_srli_epi32(r5, 14);\n            z5 = _mm256_xor_si256(z5, r5);\n\n            y11 = z9;\n            y11 = _mm256_add_epi32(y11, z10);\n            r11 = y11;\n            y11 = _mm256_slli_epi32(y11, 7);\n            z11 = _mm256_xor_si256(z11, y11);\n            r11 = _mm256_srli_epi32(r11, 25);\n            z11 = _mm256_xor_si256(z11, r11);\n\n            y12 = z14;\n            y12 = _mm256_add_epi32(y12, z15);\n            r12 = y12;\n            y12 = _mm256_slli_epi32(y12, 7);\n            z12 = _mm256_xor_si256(z12, y12);\n            r12 = _mm256_srli_epi32(r12, 25);\n            z12 = _mm256_xor_si256(z12, r12);\n\n            y8 = z10;\n            y8 = _mm256_add_epi32(y8, z11);\n            r8 = y8;\n            y8 = _mm256_slli_epi32(y8, 9);\n            z8 = _mm256_xor_si256(z8, y8);\n            r8 = _mm256_srli_epi32(r8, 23);\n            z8 = _mm256_xor_si256(z8, r8);\n\n            y13 = z15;\n            y13 = _mm256_add_epi32(y13, z12);\n            r13 = y13;\n            y13 = _mm256_slli_epi32(y13, 9);\n            z13 = _mm256_xor_si256(z13, y13);\n            r13 = _mm256_srli_epi32(r13, 23);\n            z13 = _mm256_xor_si256(z13, r13);\n\n            y9 = z11;\n            y9 = _mm256_add_epi32(y9, z8);\n            r9 = y9;\n            y9 = _mm256_slli_epi32(y9, 13);\n            z9 = _mm256_xor_si256(z9, y9);\n            r9 = _mm256_srli_epi32(r9, 19);\n            z9 = _mm256_xor_si256(z9, r9);\n\n            y14 = z12;\n            y14 = _mm256_add_epi32(y14, z13);\n            r14 = y14;\n            y14 = _mm256_slli_epi32(y14, 13);\n            z14 = _mm256_xor_si256(z14, y14);\n            r14 = _mm256_srli_epi32(r14, 19);\n            z14 = _mm256_xor_si256(z14, r14);\n\n            y10 = z8;\n            y10 = _mm256_add_epi32(y10, z9);\n            r10 = y10;\n            y10 = _mm256_slli_epi32(y10, 18);\n            z10 = _mm256_xor_si256(z10, y10);\n            r10 = _mm256_srli_epi32(r10, 14);\n            z10 = _mm256_xor_si256(z10, r10);\n\n            y15 = z13;\n            y15 = _mm256_add_epi32(y15, z14);\n            r15 = y15;\n            y15 = _mm256_slli_epi32(y15, 18);\n            z15 = _mm256_xor_si256(z15, y15);\n            r15 = _mm256_srli_epi32(r15, 14);\n            z15 = _mm256_xor_si256(z15, r15);\n        }\n\n/* store data ; this macro first transpose data in-registers, and then store\n * them in memory. much faster with icc. */\n#define ONEQUAD_TRANSPOSE(A, B, C, D)                                    \\\n    {                                                                    \\\n        __m128i t0, t1, t2, t3;                                          \\\n        z##A = _mm256_add_epi32(z##A, orig##A);                          \\\n        z##B = _mm256_add_epi32(z##B, orig##B);                          \\\n        z##C = _mm256_add_epi32(z##C, orig##C);                          \\\n        z##D = _mm256_add_epi32(z##D, orig##D);                          \\\n        y##A = _mm256_unpacklo_epi32(z##A, z##B);                        \\\n        y##B = _mm256_unpacklo_epi32(z##C, z##D);                        \\\n        y##C = _mm256_unpackhi_epi32(z##A, z##B);                        \\\n        y##D = _mm256_unpackhi_epi32(z##C, z##D);                        \\\n        z##A = _mm256_unpacklo_epi64(y##A, y##B);                        \\\n        z##B = _mm256_unpackhi_epi64(y##A, y##B);                        \\\n        z##C = _mm256_unpacklo_epi64(y##C, y##D);                        \\\n        z##D = _mm256_unpackhi_epi64(y##C, y##D);                        \\\n        t0   = _mm_xor_si128(_mm256_extracti128_si256(z##A, 0),          \\\n                           _mm_loadu_si128((const __m128i*) (m + 0))); \\\n        _mm_storeu_si128((__m128i*) (c + 0), t0);                        \\\n        t1 = _mm_xor_si128(_mm256_extracti128_si256(z##B, 0),            \\\n                           _mm_loadu_si128((const __m128i*) (m + 64)));  \\\n        _mm_storeu_si128((__m128i*) (c + 64), t1);                       \\\n        t2 = _mm_xor_si128(_mm256_extracti128_si256(z##C, 0),            \\\n                           _mm_loadu_si128((const __m128i*) (m + 128))); \\\n        _mm_storeu_si128((__m128i*) (c + 128), t2);                      \\\n        t3 = _mm_xor_si128(_mm256_extracti128_si256(z##D, 0),            \\\n                           _mm_loadu_si128((const __m128i*) (m + 192))); \\\n        _mm_storeu_si128((__m128i*) (c + 192), t3);                      \\\n        t0 = _mm_xor_si128(_mm256_extracti128_si256(z##A, 1),            \\\n                           _mm_loadu_si128((const __m128i*) (m + 256))); \\\n        _mm_storeu_si128((__m128i*) (c + 256), t0);                      \\\n        t1 = _mm_xor_si128(_mm256_extracti128_si256(z##B, 1),            \\\n                           _mm_loadu_si128((const __m128i*) (m + 320))); \\\n        _mm_storeu_si128((__m128i*) (c + 320), t1);                      \\\n        t2 = _mm_xor_si128(_mm256_extracti128_si256(z##C, 1),            \\\n                           _mm_loadu_si128((const __m128i*) (m + 384))); \\\n        _mm_storeu_si128((__m128i*) (c + 384), t2);                      \\\n        t3 = _mm_xor_si128(_mm256_extracti128_si256(z##D, 1),            \\\n                           _mm_loadu_si128((const __m128i*) (m + 448))); \\\n        _mm_storeu_si128((__m128i*) (c + 448), t3);                      \\\n    }\n\n#define ONEQUAD(A, B, C, D) ONEQUAD_TRANSPOSE(A, B, C, D)\n\n#define ONEQUAD_UNPCK(A, B, C, D)                 \\\n    {                                             \\\n        z##A = _mm256_add_epi32(z##A, orig##A);   \\\n        z##B = _mm256_add_epi32(z##B, orig##B);   \\\n        z##C = _mm256_add_epi32(z##C, orig##C);   \\\n        z##D = _mm256_add_epi32(z##D, orig##D);   \\\n        y##A = _mm256_unpacklo_epi32(z##A, z##B); \\\n        y##B = _mm256_unpacklo_epi32(z##C, z##D); \\\n        y##C = _mm256_unpackhi_epi32(z##A, z##B); \\\n        y##D = _mm256_unpackhi_epi32(z##C, z##D); \\\n        z##A = _mm256_unpacklo_epi64(y##A, y##B); \\\n        z##B = _mm256_unpackhi_epi64(y##A, y##B); \\\n        z##C = _mm256_unpacklo_epi64(y##C, y##D); \\\n        z##D = _mm256_unpackhi_epi64(y##C, y##D); \\\n    }\n\n#define ONEOCTO(A, B, C, D, A2, B2, C2, D2)                                    \\\n    {                                                                          \\\n        ONEQUAD_UNPCK(A, B, C, D);                                             \\\n        ONEQUAD_UNPCK(A2, B2, C2, D2);                                         \\\n        y##A  = _mm256_permute2x128_si256(z##A, z##A2, 0x20);                  \\\n        y##A2 = _mm256_permute2x128_si256(z##A, z##A2, 0x31);                  \\\n        y##B  = _mm256_permute2x128_si256(z##B, z##B2, 0x20);                  \\\n        y##B2 = _mm256_permute2x128_si256(z##B, z##B2, 0x31);                  \\\n        y##C  = _mm256_permute2x128_si256(z##C, z##C2, 0x20);                  \\\n        y##C2 = _mm256_permute2x128_si256(z##C, z##C2, 0x31);                  \\\n        y##D  = _mm256_permute2x128_si256(z##D, z##D2, 0x20);                  \\\n        y##D2 = _mm256_permute2x128_si256(z##D, z##D2, 0x31);                  \\\n        y##A  = _mm256_xor_si256(y##A,                                         \\\n                                _mm256_loadu_si256((const __m256i*) (m + 0))); \\\n        y##B  = _mm256_xor_si256(                                              \\\n            y##B, _mm256_loadu_si256((const __m256i*) (m + 64)));              \\\n        y##C = _mm256_xor_si256(                                               \\\n            y##C, _mm256_loadu_si256((const __m256i*) (m + 128)));             \\\n        y##D = _mm256_xor_si256(                                               \\\n            y##D, _mm256_loadu_si256((const __m256i*) (m + 192)));             \\\n        y##A2 = _mm256_xor_si256(                                              \\\n            y##A2, _mm256_loadu_si256((const __m256i*) (m + 256)));            \\\n        y##B2 = _mm256_xor_si256(                                              \\\n            y##B2, _mm256_loadu_si256((const __m256i*) (m + 320)));            \\\n        y##C2 = _mm256_xor_si256(                                              \\\n            y##C2, _mm256_loadu_si256((const __m256i*) (m + 384)));            \\\n        y##D2 = _mm256_xor_si256(                                              \\\n            y##D2, _mm256_loadu_si256((const __m256i*) (m + 448)));            \\\n        _mm256_storeu_si256((__m256i*) (c + 0), y##A);                         \\\n        _mm256_storeu_si256((__m256i*) (c + 64), y##B);                        \\\n        _mm256_storeu_si256((__m256i*) (c + 128), y##C);                       \\\n        _mm256_storeu_si256((__m256i*) (c + 192), y##D);                       \\\n        _mm256_storeu_si256((__m256i*) (c + 256), y##A2);                      \\\n        _mm256_storeu_si256((__m256i*) (c + 320), y##B2);                      \\\n        _mm256_storeu_si256((__m256i*) (c + 384), y##C2);                      \\\n        _mm256_storeu_si256((__m256i*) (c + 448), y##D2);                      \\\n    }\n\n        ONEOCTO(0, 1, 2, 3, 4, 5, 6, 7);\n        m += 32;\n        c += 32;\n        ONEOCTO(8, 9, 10, 11, 12, 13, 14, 15);\n        m -= 32;\n        c -= 32;\n\n#undef ONEQUAD\n#undef ONEQUAD_TRANSPOSE\n#undef ONEQUAD_UNPCK\n#undef ONEOCTO\n\n        bytes -= 512;\n        c += 512;\n        m += 512;\n    }\n}\n"
  },
  {
    "path": "src/libsodium/crypto_stream/salsa2012/ref/stream_salsa2012_ref.c",
    "content": "/*\nversion 20140420\nD. J. Bernstein\nPublic domain.\n*/\n\n#include <stdint.h>\n\n#include \"crypto_core_salsa2012.h\"\n#include \"crypto_stream_salsa2012.h\"\n#include \"utils.h\"\n\nint\ncrypto_stream_salsa2012(unsigned char *c, unsigned long long clen,\n                        const unsigned char *n, const unsigned char *k)\n{\n    unsigned char in[16];\n    unsigned char block[64];\n    unsigned char kcopy[32];\n    unsigned int  i;\n    unsigned int  u;\n\n    if (!clen) {\n        return 0;\n    }\n    for (i = 0; i < 32; ++i) {\n        kcopy[i] = k[i];\n    }\n    for (i = 0; i < 8; ++i) {\n        in[i] = n[i];\n    }\n    for (i = 8; i < 16; ++i) {\n        in[i] = 0;\n    }\n    while (clen >= 64) {\n        crypto_core_salsa2012(c, in, kcopy, NULL);\n        u = 1;\n        for (i = 8; i < 16; ++i) {\n            u += (unsigned int)in[i];\n            in[i] = u;\n            u >>= 8;\n        }\n        clen -= 64;\n        c += 64;\n    }\n    if (clen) {\n        crypto_core_salsa2012(block, in, kcopy, NULL);\n        for (i = 0; i < (unsigned int)clen; ++i) {\n            c[i] = block[i];\n        }\n    }\n    sodium_memzero(block, sizeof block);\n    sodium_memzero(kcopy, sizeof kcopy);\n\n    return 0;\n}\n\nint\ncrypto_stream_salsa2012_xor(unsigned char *c, const unsigned char *m,\n                            unsigned long long mlen, const unsigned char *n,\n                            const unsigned char *k)\n{\n    unsigned char in[16];\n    unsigned char block[64];\n    unsigned char kcopy[32];\n    unsigned int  i;\n    unsigned int  u;\n\n    if (!mlen) {\n        return 0;\n    }\n    for (i = 0; i < 32; ++i) {\n        kcopy[i] = k[i];\n    }\n    for (i = 0; i < 8; ++i) {\n        in[i] = n[i];\n    }\n    for (i = 8; i < 16; ++i) {\n        in[i] = 0;\n    }\n    while (mlen >= 64) {\n        crypto_core_salsa2012(block, in, kcopy, NULL);\n        for (i = 0; i < 64; ++i) {\n            c[i] = m[i] ^ block[i];\n        }\n        u = 1;\n        for (i = 8; i < 16; ++i) {\n            u += (unsigned int)in[i];\n            in[i] = u;\n            u >>= 8;\n        }\n        mlen -= 64;\n        c += 64;\n        m += 64;\n    }\n    if (mlen) {\n        crypto_core_salsa2012(block, in, kcopy, NULL);\n        for (i = 0; i < (unsigned int)mlen; ++i) {\n            c[i] = m[i] ^ block[i];\n        }\n    }\n    sodium_memzero(block, sizeof block);\n    sodium_memzero(kcopy, sizeof kcopy);\n\n    return 0;\n}\n"
  },
  {
    "path": "src/libsodium/crypto_stream/salsa2012/stream_salsa2012.c",
    "content": "#include \"crypto_stream_salsa2012.h\"\n#include \"randombytes.h\"\n\nsize_t\ncrypto_stream_salsa2012_keybytes(void)\n{\n    return crypto_stream_salsa2012_KEYBYTES;\n}\n\nsize_t\ncrypto_stream_salsa2012_noncebytes(void)\n{\n    return crypto_stream_salsa2012_NONCEBYTES;\n}\n\nsize_t\ncrypto_stream_salsa2012_messagebytes_max(void)\n{\n    return crypto_stream_salsa2012_MESSAGEBYTES_MAX;\n}\n\nvoid\ncrypto_stream_salsa2012_keygen(unsigned char k[crypto_stream_salsa2012_KEYBYTES])\n{\n    randombytes_buf(k, crypto_stream_salsa2012_KEYBYTES);\n}\n"
  },
  {
    "path": "src/libsodium/crypto_stream/salsa208/ref/stream_salsa208_ref.c",
    "content": "/*\nversion 20140420\nD. J. Bernstein\nPublic domain.\n*/\n\n#include <stdint.h>\n\n#include \"crypto_core_salsa208.h\"\n#include \"crypto_stream_salsa208.h\"\n#include \"utils.h\"\n\n/* LCOV_EXCL_START */\n\nint\ncrypto_stream_salsa208(unsigned char *c, unsigned long long clen,\n                       const unsigned char *n, const unsigned char *k)\n{\n    unsigned char in[16];\n    unsigned char block[64];\n    unsigned char kcopy[32];\n    unsigned int  i;\n    unsigned int  u;\n\n    if (!clen) {\n        return 0;\n    }\n    for (i = 0; i < 32; ++i) {\n        kcopy[i] = k[i];\n    }\n    for (i = 0; i < 8; ++i) {\n        in[i] = n[i];\n    }\n    for (i = 8; i < 16; ++i) {\n        in[i] = 0;\n    }\n    while (clen >= 64) {\n        crypto_core_salsa208(c, in, kcopy, NULL);\n        u = 1;\n        for (i = 8; i < 16; ++i) {\n            u += (unsigned int)in[i];\n            in[i] = u;\n            u >>= 8;\n        }\n        clen -= 64;\n        c += 64;\n    }\n    if (clen) {\n        crypto_core_salsa208(block, in, kcopy, NULL);\n        for (i = 0; i < (unsigned int)clen; ++i) {\n            c[i] = block[i];\n        }\n    }\n    sodium_memzero(block, sizeof block);\n    sodium_memzero(kcopy, sizeof kcopy);\n\n    return 0;\n}\n\nint\ncrypto_stream_salsa208_xor(unsigned char *c, const unsigned char *m,\n                           unsigned long long mlen, const unsigned char *n,\n                           const unsigned char *k)\n{\n    unsigned char in[16];\n    unsigned char block[64];\n    unsigned char kcopy[32];\n    unsigned int  i;\n    unsigned int  u;\n\n    if (!mlen) {\n        return 0;\n    }\n    for (i = 0; i < 32; ++i) {\n        kcopy[i] = k[i];\n    }\n    for (i = 0; i < 8; ++i) {\n        in[i] = n[i];\n    }\n    for (i = 8; i < 16; ++i) {\n        in[i] = 0;\n    }\n    while (mlen >= 64) {\n        crypto_core_salsa208(block, in, kcopy, NULL);\n        for (i = 0; i < 64; ++i) {\n            c[i] = m[i] ^ block[i];\n        }\n        u = 1;\n        for (i = 8; i < 16; ++i) {\n            u += (unsigned int)in[i];\n            in[i] = u;\n            u >>= 8;\n        }\n        mlen -= 64;\n        c += 64;\n        m += 64;\n    }\n    if (mlen) {\n        crypto_core_salsa208(block, in, kcopy, NULL);\n        for (i = 0; i < (unsigned int)mlen; ++i) {\n            c[i] = m[i] ^ block[i];\n        }\n    }\n    sodium_memzero(block, sizeof block);\n    sodium_memzero(kcopy, sizeof kcopy);\n\n    return 0;\n}\n\n/* LCOV_EXCL_STOP */\n"
  },
  {
    "path": "src/libsodium/crypto_stream/salsa208/stream_salsa208.c",
    "content": "#include \"crypto_stream_salsa208.h\"\n#include \"randombytes.h\"\n\n/* LCOV_EXCL_START */\n\nsize_t\ncrypto_stream_salsa208_keybytes(void)\n{\n    return crypto_stream_salsa208_KEYBYTES;\n}\n\nsize_t\ncrypto_stream_salsa208_noncebytes(void)\n{\n    return crypto_stream_salsa208_NONCEBYTES;\n}\n\nsize_t\ncrypto_stream_salsa208_messagebytes_max(void)\n{\n    return crypto_stream_salsa208_MESSAGEBYTES_MAX;\n}\n\nvoid\ncrypto_stream_salsa208_keygen(unsigned char k[crypto_stream_salsa208_KEYBYTES])\n{\n    randombytes_buf(k, crypto_stream_salsa208_KEYBYTES);\n}\n\n/* LCOV_EXCL_STOP */\n"
  },
  {
    "path": "src/libsodium/crypto_stream/xchacha20/stream_xchacha20.c",
    "content": "\n#include <stdlib.h>\n\n#include \"crypto_core_hchacha20.h\"\n#include \"crypto_stream_chacha20.h\"\n#include \"crypto_stream_xchacha20.h\"\n#include \"private/common.h\"\n#include \"randombytes.h\"\n\nsize_t\ncrypto_stream_xchacha20_keybytes(void)\n{\n    return crypto_stream_xchacha20_KEYBYTES;\n}\n\nsize_t\ncrypto_stream_xchacha20_noncebytes(void)\n{\n    return crypto_stream_xchacha20_NONCEBYTES;\n}\n\nsize_t\ncrypto_stream_xchacha20_messagebytes_max(void)\n{\n    return crypto_stream_xchacha20_MESSAGEBYTES_MAX;\n}\n\nint\ncrypto_stream_xchacha20(unsigned char *c, unsigned long long clen,\n                        const unsigned char *n, const unsigned char *k)\n{\n    unsigned char k2[crypto_core_hchacha20_OUTPUTBYTES];\n\n    crypto_core_hchacha20(k2, n, k, NULL);\n    COMPILER_ASSERT(crypto_stream_chacha20_KEYBYTES <= sizeof k2);\n    COMPILER_ASSERT(crypto_stream_chacha20_NONCEBYTES ==\n                    crypto_stream_xchacha20_NONCEBYTES -\n                    crypto_core_hchacha20_INPUTBYTES);\n\n    return crypto_stream_chacha20(c, clen, n + crypto_core_hchacha20_INPUTBYTES,\n                                  k2);\n}\n\nint\ncrypto_stream_xchacha20_xor_ic(unsigned char *c, const unsigned char *m,\n                               unsigned long long mlen, const unsigned char *n,\n                               uint64_t ic, const unsigned char *k)\n{\n    unsigned char k2[crypto_core_hchacha20_OUTPUTBYTES];\n\n    crypto_core_hchacha20(k2, n, k, NULL);\n    return crypto_stream_chacha20_xor_ic(\n        c, m, mlen, n + crypto_core_hchacha20_INPUTBYTES, ic, k2);\n}\n\nint\ncrypto_stream_xchacha20_xor(unsigned char *c, const unsigned char *m,\n                            unsigned long long mlen, const unsigned char *n,\n                            const unsigned char *k)\n{\n    return crypto_stream_xchacha20_xor_ic(c, m, mlen, n, 0U, k);\n}\n\nvoid\ncrypto_stream_xchacha20_keygen(\n    unsigned char k[crypto_stream_xchacha20_KEYBYTES])\n{\n    randombytes_buf(k, crypto_stream_xchacha20_KEYBYTES);\n}\n"
  },
  {
    "path": "src/libsodium/crypto_stream/xsalsa20/stream_xsalsa20.c",
    "content": "#include \"crypto_core_hsalsa20.h\"\n#include \"crypto_stream_salsa20.h\"\n#include \"crypto_stream_xsalsa20.h\"\n#include \"randombytes.h\"\n#include \"utils.h\"\n\nint\ncrypto_stream_xsalsa20(unsigned char *c, unsigned long long clen,\n                       const unsigned char *n, const unsigned char *k)\n{\n    unsigned char subkey[32];\n    int           ret;\n\n    crypto_core_hsalsa20(subkey, n, k, NULL);\n    ret = crypto_stream_salsa20(c, clen, n + 16, subkey);\n    sodium_memzero(subkey, sizeof subkey);\n\n    return ret;\n}\n\nint\ncrypto_stream_xsalsa20_xor_ic(unsigned char *c, const unsigned char *m,\n                              unsigned long long mlen, const unsigned char *n,\n                              uint64_t ic, const unsigned char *k)\n{\n    unsigned char subkey[32];\n    int           ret;\n\n    crypto_core_hsalsa20(subkey, n, k, NULL);\n    ret = crypto_stream_salsa20_xor_ic(c, m, mlen, n + 16, ic, subkey);\n    sodium_memzero(subkey, sizeof subkey);\n\n    return ret;\n}\n\nint\ncrypto_stream_xsalsa20_xor(unsigned char *c, const unsigned char *m,\n                           unsigned long long mlen, const unsigned char *n,\n                           const unsigned char *k)\n{\n    return crypto_stream_xsalsa20_xor_ic(c, m, mlen, n, 0ULL, k);\n}\n\nsize_t\ncrypto_stream_xsalsa20_keybytes(void)\n{\n    return crypto_stream_xsalsa20_KEYBYTES;\n}\n\nsize_t\ncrypto_stream_xsalsa20_noncebytes(void)\n{\n    return crypto_stream_xsalsa20_NONCEBYTES;\n}\n\nsize_t\ncrypto_stream_xsalsa20_messagebytes_max(void)\n{\n    return crypto_stream_xsalsa20_MESSAGEBYTES_MAX;\n}\n\nvoid\ncrypto_stream_xsalsa20_keygen(unsigned char k[crypto_stream_xsalsa20_KEYBYTES])\n{\n    randombytes_buf(k, crypto_stream_xsalsa20_KEYBYTES);\n}\n"
  },
  {
    "path": "src/libsodium/crypto_verify/verify.c",
    "content": "\n#include <stddef.h>\n#include <stdint.h>\n\n#include \"crypto_verify_16.h\"\n#include \"crypto_verify_32.h\"\n#include \"crypto_verify_64.h\"\n#include \"private/common.h\"\n\nsize_t\ncrypto_verify_16_bytes(void)\n{\n    return crypto_verify_16_BYTES;\n}\n\nsize_t\ncrypto_verify_32_bytes(void)\n{\n    return crypto_verify_32_BYTES;\n}\n\nsize_t\ncrypto_verify_64_bytes(void)\n{\n    return crypto_verify_64_BYTES;\n}\n\n#if defined(HAVE_EMMINTRIN_H) && defined(__SSE2__)\n\n# include <emmintrin.h>\n\nstatic inline int\ncrypto_verify_n(const unsigned char *x_, const unsigned char *y_,\n                const int n)\n{\n    const    __m128i zero = _mm_setzero_si128();\n    volatile __m128i v1, v2, z;\n    volatile int     m;\n    int              i;\n\n    const volatile __m128i *volatile x =\n        (const volatile __m128i *volatile) (const void *) x_;\n    const volatile __m128i *volatile y =\n        (const volatile __m128i *volatile) (const void *) y_;\n    v1 = _mm_loadu_si128((const __m128i *) &x[0]);\n    v2 = _mm_loadu_si128((const __m128i *) &y[0]);\n    z = _mm_xor_si128(v1, v2);\n    for (i = 1; i < n / 16; i++) {\n        v1 = _mm_loadu_si128((const __m128i *) &x[i]);\n        v2 = _mm_loadu_si128((const __m128i *) &y[i]);\n        z = _mm_or_si128(z, _mm_xor_si128(v1, v2));\n    }\n    m = _mm_movemask_epi8(_mm_cmpeq_epi32(z, zero));\n    v1 = zero; v2 = zero; z = zero;\n\n    return (int) (((uint32_t) m + 1U) >> 16) - 1;\n}\n\n#else\n\nstatic volatile uint16_t optblocker_u16;\n\nstatic inline int\ncrypto_verify_n(const unsigned char *x_, const unsigned char *y_,\n                const int n)\n{\n    const volatile unsigned char *volatile x =\n        (const volatile unsigned char *volatile) x_;\n    const volatile unsigned char *volatile y =\n        (const volatile unsigned char *volatile) y_;\n    volatile uint16_t d = 0U;\n    int               i;\n\n    for (i = 0; i < n; i++) {\n        d |= x[i] ^ y[i];\n    }\n# ifdef HAVE_INLINE_ASM\n    __asm__ __volatile__(\"\" : \"+r\"(d) :);\n# endif\n    d--;\n    d = ((d >> 13) ^ optblocker_u16) >> 2;\n\n    return (int) d - 1;\n}\n\n#endif\n\nint\ncrypto_verify_16(const unsigned char *x, const unsigned char *y)\n{\n    return crypto_verify_n(x, y, crypto_verify_16_BYTES);\n}\n\nint\ncrypto_verify_32(const unsigned char *x, const unsigned char *y)\n{\n    return crypto_verify_n(x, y, crypto_verify_32_BYTES);\n}\n\nint\ncrypto_verify_64(const unsigned char *x, const unsigned char *y)\n{\n    return crypto_verify_n(x, y, crypto_verify_64_BYTES);\n}\n"
  },
  {
    "path": "src/libsodium/crypto_xof/shake128/ref/shake128_ref.c",
    "content": "#include <stdint.h>\n#include <string.h>\n\n#include \"crypto_core_keccak1600.h\"\n#include \"crypto_xof_shake128.h\"\n#include \"private/common.h\"\n#include \"shake128_ref.h\"\n\nint\nshake128_ref_init_with_domain(shake128_state_internal *state, unsigned char domain)\n{\n    crypto_core_keccak1600_init(&state->state);\n    state->offset = 0;\n    state->phase  = SHAKE128_PHASE_ABSORBING;\n    state->domain = domain;\n\n    return 0;\n}\n\nint\nshake128_ref_init(shake128_state_internal *state)\n{\n    return shake128_ref_init_with_domain(state, crypto_xof_shake128_DOMAIN_STANDARD);\n}\n\nint\nshake128_ref_update(shake128_state_internal *state, const unsigned char *in, size_t inlen)\n{\n    size_t consumed = 0;\n    size_t chunk_size;\n    int    ret = 0;\n\n    if (state->phase != SHAKE128_PHASE_ABSORBING) {\n        crypto_core_keccak1600_permute_24(&state->state);\n        state->phase  = SHAKE128_PHASE_ABSORBING;\n        state->offset = 0;\n        ret = -1;\n    }\n\n    while (consumed < inlen) {\n        if (state->offset == SHAKE128_RATE) {\n            crypto_core_keccak1600_permute_24(&state->state);\n            state->offset = 0;\n        }\n        chunk_size = SHAKE128_RATE - state->offset;\n        if (chunk_size > inlen - consumed) {\n            chunk_size = inlen - consumed;\n        }\n        crypto_core_keccak1600_xor_bytes(&state->state, &in[consumed], state->offset, chunk_size);\n        state->offset += chunk_size;\n        consumed += chunk_size;\n    }\n\n    return ret;\n}\n\nstatic void\nshake128_finalize(shake128_state_internal *state)\n{\n    unsigned char pad;\n\n    /* If the rate is exactly full, process that block before padding */\n    if (state->offset == SHAKE128_RATE) {\n        crypto_core_keccak1600_permute_24(&state->state);\n        state->offset = 0;\n    }\n\n    /* Apply padding: domain byte at current position, 0x80 at last byte */\n    if (state->offset == SHAKE128_RATE - 1) {\n        /* Special case: padding fits in one byte */\n        pad = (unsigned char) (state->domain ^ 0x80);\n        crypto_core_keccak1600_xor_bytes(&state->state, &pad, state->offset, 1);\n    } else {\n        /* Normal case: domain and 0x80 at different positions */\n        crypto_core_keccak1600_xor_bytes(&state->state, &state->domain, state->offset, 1);\n        pad = 0x80;\n        crypto_core_keccak1600_xor_bytes(&state->state, &pad, SHAKE128_RATE - 1, 1);\n    }\n\n    /* Final permutation */\n    crypto_core_keccak1600_permute_24(&state->state);\n\n    state->offset = 0;\n    state->phase  = SHAKE128_PHASE_SQUEEZING;\n}\n\nint\nshake128_ref_squeeze(shake128_state_internal *state, unsigned char *out, size_t outlen)\n{\n    size_t extracted = 0;\n    size_t chunk_size;\n\n    if (state->phase == SHAKE128_PHASE_ABSORBING) {\n        shake128_finalize(state);\n    }\n\n    while (extracted < outlen) {\n        if (state->offset == SHAKE128_RATE) {\n            crypto_core_keccak1600_permute_24(&state->state);\n            state->offset = 0;\n        }\n        chunk_size = SHAKE128_RATE - state->offset;\n        if (chunk_size > outlen - extracted) {\n            chunk_size = outlen - extracted;\n        }\n        crypto_core_keccak1600_extract_bytes(&state->state, &out[extracted], state->offset,\n                                             chunk_size);\n        state->offset += chunk_size;\n        extracted += chunk_size;\n    }\n\n    return 0;\n}\n\nint\nshake128_ref(unsigned char *out, size_t outlen, const unsigned char *in, size_t inlen)\n{\n    shake128_state_internal state;\n\n    shake128_ref_init(&state);\n    shake128_ref_update(&state, in, inlen);\n    shake128_ref_squeeze(&state, out, outlen);\n\n    return 0;\n}\n"
  },
  {
    "path": "src/libsodium/crypto_xof/shake128/ref/shake128_ref.h",
    "content": "#ifndef shake128_ref_H\n#define shake128_ref_H\n\n#include <stddef.h>\n#include <stdint.h>\n\n#include \"crypto_core_keccak1600.h\"\n\n#define SHAKE128_RATE 168\n\ntypedef enum { SHAKE128_PHASE_ABSORBING = 0, SHAKE128_PHASE_SQUEEZING = 1 } shake128_phase;\n\ntypedef struct shake128_state_internal_ {\n    crypto_core_keccak1600_state state;\n    size_t                       offset;\n    uint8_t                      phase;\n    unsigned char                domain;\n} shake128_state_internal;\n\nint shake128_ref(unsigned char *out, size_t outlen, const unsigned char *in, size_t inlen);\n\nint shake128_ref_init(shake128_state_internal *state);\n\nint shake128_ref_init_with_domain(shake128_state_internal *state, unsigned char domain);\n\nint shake128_ref_update(shake128_state_internal *state, const unsigned char *in, size_t inlen);\n\nint shake128_ref_squeeze(shake128_state_internal *state, unsigned char *out, size_t outlen);\n\n#endif /* shake128_ref_H */\n"
  },
  {
    "path": "src/libsodium/crypto_xof/shake128/xof_shake128.c",
    "content": "#include \"crypto_xof_shake128.h\"\n#include \"private/common.h\"\n#include \"ref/shake128_ref.h\"\n\nsize_t\ncrypto_xof_shake128_blockbytes(void)\n{\n    return crypto_xof_shake128_BLOCKBYTES;\n}\n\nsize_t\ncrypto_xof_shake128_statebytes(void)\n{\n    return crypto_xof_shake128_STATEBYTES;\n}\n\nunsigned char\ncrypto_xof_shake128_domain_standard(void)\n{\n    return crypto_xof_shake128_DOMAIN_STANDARD;\n}\n\nint\ncrypto_xof_shake128(unsigned char *out, size_t outlen, const unsigned char *in,\n                    unsigned long long inlen)\n{\n    COMPILER_ASSERT(sizeof(crypto_xof_shake128_state) >= sizeof(shake128_state_internal));\n\n    return shake128_ref(out, outlen, in, (size_t) inlen);\n}\n\nint\ncrypto_xof_shake128_init(crypto_xof_shake128_state *state)\n{\n    shake128_state_internal *st = (shake128_state_internal *) (void *) state;\n\n    COMPILER_ASSERT(sizeof(crypto_xof_shake128_state) >= sizeof(shake128_state_internal));\n\n    return shake128_ref_init(st);\n}\n\nint\ncrypto_xof_shake128_init_with_domain(crypto_xof_shake128_state *state, unsigned char domain)\n{\n    shake128_state_internal *st = (shake128_state_internal *) (void *) state;\n\n    COMPILER_ASSERT(sizeof(crypto_xof_shake128_state) >= sizeof(shake128_state_internal));\n\n    return shake128_ref_init_with_domain(st, domain);\n}\n\nint\ncrypto_xof_shake128_update(crypto_xof_shake128_state *state,\n                           const unsigned char       *in,\n                           unsigned long long         inlen)\n{\n    shake128_state_internal *st = (shake128_state_internal *) (void *) state;\n\n    return shake128_ref_update(st, in, (size_t) inlen);\n}\n\nint\ncrypto_xof_shake128_squeeze(crypto_xof_shake128_state *state, unsigned char *out, size_t outlen)\n{\n    shake128_state_internal *st = (shake128_state_internal *) (void *) state;\n\n    return shake128_ref_squeeze(st, out, outlen);\n}\n"
  },
  {
    "path": "src/libsodium/crypto_xof/shake256/ref/shake256_ref.c",
    "content": "#include <stdint.h>\n#include <string.h>\n\n#include \"crypto_core_keccak1600.h\"\n#include \"crypto_xof_shake256.h\"\n#include \"private/common.h\"\n#include \"shake256_ref.h\"\n\nint\nshake256_ref_init_with_domain(shake256_state_internal *state, unsigned char domain)\n{\n    crypto_core_keccak1600_init(&state->state);\n    state->offset = 0;\n    state->phase  = SHAKE256_PHASE_ABSORBING;\n    state->domain = domain;\n\n    return 0;\n}\n\nint\nshake256_ref_init(shake256_state_internal *state)\n{\n    return shake256_ref_init_with_domain(state, crypto_xof_shake256_DOMAIN_STANDARD);\n}\n\nint\nshake256_ref_update(shake256_state_internal *state, const unsigned char *in, size_t inlen)\n{\n    size_t consumed = 0;\n    size_t chunk_size;\n    int    ret = 0;\n\n    if (state->phase != SHAKE256_PHASE_ABSORBING) {\n        crypto_core_keccak1600_permute_24(&state->state);\n        state->phase  = SHAKE256_PHASE_ABSORBING;\n        state->offset = 0;\n        ret = -1;\n    }\n\n    while (consumed < inlen) {\n        if (state->offset == SHAKE256_RATE) {\n            crypto_core_keccak1600_permute_24(&state->state);\n            state->offset = 0;\n        }\n        chunk_size = SHAKE256_RATE - state->offset;\n        if (chunk_size > inlen - consumed) {\n            chunk_size = inlen - consumed;\n        }\n        crypto_core_keccak1600_xor_bytes(&state->state, &in[consumed], state->offset, chunk_size);\n        state->offset += chunk_size;\n        consumed += chunk_size;\n    }\n\n    return ret;\n}\n\nstatic void\nshake256_finalize(shake256_state_internal *state)\n{\n    unsigned char pad;\n\n    /* If the rate is exactly full, process that block before padding */\n    if (state->offset == SHAKE256_RATE) {\n        crypto_core_keccak1600_permute_24(&state->state);\n        state->offset = 0;\n    }\n\n    /* Apply padding: domain byte at current position, 0x80 at last byte */\n    if (state->offset == SHAKE256_RATE - 1) {\n        /* Special case: padding fits in one byte */\n        pad = (unsigned char) (state->domain ^ 0x80);\n        crypto_core_keccak1600_xor_bytes(&state->state, &pad, state->offset, 1);\n    } else {\n        /* Normal case: domain and 0x80 at different positions */\n        crypto_core_keccak1600_xor_bytes(&state->state, &state->domain, state->offset, 1);\n        pad = 0x80;\n        crypto_core_keccak1600_xor_bytes(&state->state, &pad, SHAKE256_RATE - 1, 1);\n    }\n\n    /* Final permutation */\n    crypto_core_keccak1600_permute_24(&state->state);\n\n    state->offset = 0;\n    state->phase  = SHAKE256_PHASE_SQUEEZING;\n}\n\nint\nshake256_ref_squeeze(shake256_state_internal *state, unsigned char *out, size_t outlen)\n{\n    size_t extracted = 0;\n    size_t chunk_size;\n\n    if (state->phase == SHAKE256_PHASE_ABSORBING) {\n        shake256_finalize(state);\n    }\n\n    while (extracted < outlen) {\n        if (state->offset == SHAKE256_RATE) {\n            crypto_core_keccak1600_permute_24(&state->state);\n            state->offset = 0;\n        }\n        chunk_size = SHAKE256_RATE - state->offset;\n        if (chunk_size > outlen - extracted) {\n            chunk_size = outlen - extracted;\n        }\n        crypto_core_keccak1600_extract_bytes(&state->state, &out[extracted], state->offset,\n                                             chunk_size);\n        state->offset += chunk_size;\n        extracted += chunk_size;\n    }\n\n    return 0;\n}\n\nint\nshake256_ref(unsigned char *out, size_t outlen, const unsigned char *in, size_t inlen)\n{\n    shake256_state_internal state;\n\n    shake256_ref_init(&state);\n    shake256_ref_update(&state, in, inlen);\n    shake256_ref_squeeze(&state, out, outlen);\n\n    return 0;\n}\n"
  },
  {
    "path": "src/libsodium/crypto_xof/shake256/ref/shake256_ref.h",
    "content": "#ifndef shake256_ref_H\n#define shake256_ref_H\n\n#include <stddef.h>\n#include <stdint.h>\n\n#include \"crypto_core_keccak1600.h\"\n\n#define SHAKE256_RATE 136\n\ntypedef enum { SHAKE256_PHASE_ABSORBING = 0, SHAKE256_PHASE_SQUEEZING = 1 } shake256_phase;\n\ntypedef struct shake256_state_internal_ {\n    crypto_core_keccak1600_state state;\n    size_t                       offset;\n    uint8_t                      phase;\n    unsigned char                domain;\n} shake256_state_internal;\n\nint shake256_ref(unsigned char *out, size_t outlen, const unsigned char *in, size_t inlen);\n\nint shake256_ref_init(shake256_state_internal *state);\n\nint shake256_ref_init_with_domain(shake256_state_internal *state, unsigned char domain);\n\nint shake256_ref_update(shake256_state_internal *state, const unsigned char *in, size_t inlen);\n\nint shake256_ref_squeeze(shake256_state_internal *state, unsigned char *out, size_t outlen);\n\n#endif /* shake256_ref_H */\n"
  },
  {
    "path": "src/libsodium/crypto_xof/shake256/xof_shake256.c",
    "content": "#include \"crypto_xof_shake256.h\"\n#include \"private/common.h\"\n#include \"ref/shake256_ref.h\"\n\nsize_t\ncrypto_xof_shake256_blockbytes(void)\n{\n    return crypto_xof_shake256_BLOCKBYTES;\n}\n\nsize_t\ncrypto_xof_shake256_statebytes(void)\n{\n    return crypto_xof_shake256_STATEBYTES;\n}\n\nunsigned char\ncrypto_xof_shake256_domain_standard(void)\n{\n    return crypto_xof_shake256_DOMAIN_STANDARD;\n}\n\nint\ncrypto_xof_shake256(unsigned char *out, size_t outlen, const unsigned char *in,\n                    unsigned long long inlen)\n{\n    COMPILER_ASSERT(sizeof(crypto_xof_shake256_state) >= sizeof(shake256_state_internal));\n\n    return shake256_ref(out, outlen, in, (size_t) inlen);\n}\n\nint\ncrypto_xof_shake256_init(crypto_xof_shake256_state *state)\n{\n    shake256_state_internal *st = (shake256_state_internal *) (void *) state;\n\n    COMPILER_ASSERT(sizeof(crypto_xof_shake256_state) >= sizeof(shake256_state_internal));\n\n    return shake256_ref_init(st);\n}\n\nint\ncrypto_xof_shake256_init_with_domain(crypto_xof_shake256_state *state, unsigned char domain)\n{\n    shake256_state_internal *st = (shake256_state_internal *) (void *) state;\n\n    COMPILER_ASSERT(sizeof(crypto_xof_shake256_state) >= sizeof(shake256_state_internal));\n\n    return shake256_ref_init_with_domain(st, domain);\n}\n\nint\ncrypto_xof_shake256_update(crypto_xof_shake256_state *state,\n                           const unsigned char       *in,\n                           unsigned long long         inlen)\n{\n    shake256_state_internal *st = (shake256_state_internal *) (void *) state;\n\n    return shake256_ref_update(st, in, (size_t) inlen);\n}\n\nint\ncrypto_xof_shake256_squeeze(crypto_xof_shake256_state *state, unsigned char *out, size_t outlen)\n{\n    shake256_state_internal *st = (shake256_state_internal *) (void *) state;\n\n    return shake256_ref_squeeze(st, out, outlen);\n}\n"
  },
  {
    "path": "src/libsodium/crypto_xof/turboshake128/ref/turboshake128_ref.c",
    "content": "#include <stdint.h>\n#include <string.h>\n\n#include \"crypto_core_keccak1600.h\"\n#include \"crypto_xof_turboshake128.h\"\n#include \"private/common.h\"\n#include \"turboshake128_ref.h\"\n\nint\nturboshake128_ref_init_with_domain(turboshake128_state_internal *state, unsigned char domain)\n{\n    crypto_core_keccak1600_init(&state->state);\n    state->offset = 0;\n    state->phase  = TURBOSHAKE128_PHASE_ABSORBING;\n    state->domain = domain;\n\n    return 0;\n}\n\nint\nturboshake128_ref_init(turboshake128_state_internal *state)\n{\n    return turboshake128_ref_init_with_domain(state, crypto_xof_turboshake128_DOMAIN_STANDARD);\n}\n\nint\nturboshake128_ref_update(turboshake128_state_internal *state, const unsigned char *in, size_t inlen)\n{\n    size_t consumed = 0;\n    size_t chunk_size;\n    int    ret = 0;\n\n    if (state->phase != TURBOSHAKE128_PHASE_ABSORBING) {\n        crypto_core_keccak1600_permute_12(&state->state);\n        state->phase  = TURBOSHAKE128_PHASE_ABSORBING;\n        state->offset = 0;\n        ret = -1;\n    }\n\n    while (consumed < inlen) {\n        if (state->offset == TURBOSHAKE128_RATE) {\n            crypto_core_keccak1600_permute_12(&state->state);\n            state->offset = 0;\n        }\n        chunk_size = TURBOSHAKE128_RATE - state->offset;\n        if (chunk_size > inlen - consumed) {\n            chunk_size = inlen - consumed;\n        }\n        crypto_core_keccak1600_xor_bytes(&state->state, &in[consumed], state->offset, chunk_size);\n        state->offset += chunk_size;\n        consumed += chunk_size;\n    }\n\n    return ret;\n}\n\nstatic void\nturboshake128_finalize(turboshake128_state_internal *state)\n{\n    unsigned char pad;\n\n    /* If the rate is exactly full, process that block before padding */\n    if (state->offset == TURBOSHAKE128_RATE) {\n        crypto_core_keccak1600_permute_12(&state->state);\n        state->offset = 0;\n    }\n\n    /* Apply padding: domain byte at current position, 0x80 at last byte */\n    if (state->offset == TURBOSHAKE128_RATE - 1) {\n        /* Special case: padding fits in one byte */\n        pad = (unsigned char) (state->domain ^ 0x80);\n        crypto_core_keccak1600_xor_bytes(&state->state, &pad, state->offset, 1);\n    } else {\n        /* Normal case: domain and 0x80 at different positions */\n        crypto_core_keccak1600_xor_bytes(&state->state, &state->domain, state->offset, 1);\n        pad = 0x80;\n        crypto_core_keccak1600_xor_bytes(&state->state, &pad, TURBOSHAKE128_RATE - 1, 1);\n    }\n\n    /* Final permutation (12 rounds for TurboSHAKE) */\n    crypto_core_keccak1600_permute_12(&state->state);\n\n    state->offset = 0;\n    state->phase  = TURBOSHAKE128_PHASE_SQUEEZING;\n}\n\nint\nturboshake128_ref_squeeze(turboshake128_state_internal *state, unsigned char *out, size_t outlen)\n{\n    size_t extracted = 0;\n    size_t chunk_size;\n\n    if (state->phase == TURBOSHAKE128_PHASE_ABSORBING) {\n        turboshake128_finalize(state);\n    }\n\n    while (extracted < outlen) {\n        if (state->offset == TURBOSHAKE128_RATE) {\n            crypto_core_keccak1600_permute_12(&state->state);\n            state->offset = 0;\n        }\n        chunk_size = TURBOSHAKE128_RATE - state->offset;\n        if (chunk_size > outlen - extracted) {\n            chunk_size = outlen - extracted;\n        }\n        crypto_core_keccak1600_extract_bytes(&state->state, &out[extracted], state->offset,\n                                             chunk_size);\n        state->offset += chunk_size;\n        extracted += chunk_size;\n    }\n\n    return 0;\n}\n\nint\nturboshake128_ref(unsigned char *out, size_t outlen, const unsigned char *in, size_t inlen)\n{\n    turboshake128_state_internal state;\n\n    turboshake128_ref_init(&state);\n    turboshake128_ref_update(&state, in, inlen);\n    turboshake128_ref_squeeze(&state, out, outlen);\n\n    return 0;\n}\n"
  },
  {
    "path": "src/libsodium/crypto_xof/turboshake128/ref/turboshake128_ref.h",
    "content": "#ifndef turboshake128_ref_H\n#define turboshake128_ref_H\n\n#include <stddef.h>\n#include <stdint.h>\n\n#include \"crypto_core_keccak1600.h\"\n\n#define TURBOSHAKE128_RATE 168\n\ntypedef enum {\n    TURBOSHAKE128_PHASE_ABSORBING = 0,\n    TURBOSHAKE128_PHASE_SQUEEZING = 1\n} turboshake128_phase;\n\ntypedef struct turboshake128_state_internal_ {\n    crypto_core_keccak1600_state state;\n    size_t                       offset;\n    uint8_t                      phase;\n    unsigned char                domain;\n} turboshake128_state_internal;\n\nint turboshake128_ref(unsigned char *out, size_t outlen, const unsigned char *in, size_t inlen);\n\nint turboshake128_ref_init(turboshake128_state_internal *state);\n\nint turboshake128_ref_init_with_domain(turboshake128_state_internal *state, unsigned char domain);\n\nint turboshake128_ref_update(turboshake128_state_internal *state,\n                             const unsigned char          *in,\n                             size_t                        inlen);\n\nint turboshake128_ref_squeeze(turboshake128_state_internal *state, unsigned char *out,\n                              size_t outlen);\n\n#endif /* turboshake128_ref_H */\n"
  },
  {
    "path": "src/libsodium/crypto_xof/turboshake128/xof_turboshake128.c",
    "content": "#include \"crypto_xof_turboshake128.h\"\n#include \"private/common.h\"\n#include \"ref/turboshake128_ref.h\"\n\nsize_t\ncrypto_xof_turboshake128_blockbytes(void)\n{\n    return crypto_xof_turboshake128_BLOCKBYTES;\n}\n\nsize_t\ncrypto_xof_turboshake128_statebytes(void)\n{\n    return crypto_xof_turboshake128_STATEBYTES;\n}\n\nunsigned char\ncrypto_xof_turboshake128_domain_standard(void)\n{\n    return crypto_xof_turboshake128_DOMAIN_STANDARD;\n}\n\nint\ncrypto_xof_turboshake128(unsigned char *out, size_t outlen, const unsigned char *in,\n                         unsigned long long inlen)\n{\n    COMPILER_ASSERT(sizeof(crypto_xof_turboshake128_state) >= sizeof(turboshake128_state_internal));\n\n    return turboshake128_ref(out, outlen, in, (size_t) inlen);\n}\n\nint\ncrypto_xof_turboshake128_init(crypto_xof_turboshake128_state *state)\n{\n    turboshake128_state_internal *st = (turboshake128_state_internal *) (void *) state;\n\n    COMPILER_ASSERT(sizeof(crypto_xof_turboshake128_state) >= sizeof(turboshake128_state_internal));\n\n    return turboshake128_ref_init(st);\n}\n\nint\ncrypto_xof_turboshake128_init_with_domain(crypto_xof_turboshake128_state *state,\n                                          unsigned char                   domain)\n{\n    turboshake128_state_internal *st = (turboshake128_state_internal *) (void *) state;\n\n    COMPILER_ASSERT(sizeof(crypto_xof_turboshake128_state) >= sizeof(turboshake128_state_internal));\n\n    return turboshake128_ref_init_with_domain(st, domain);\n}\n\nint\ncrypto_xof_turboshake128_update(crypto_xof_turboshake128_state *state,\n                                const unsigned char            *in,\n                                unsigned long long              inlen)\n{\n    turboshake128_state_internal *st = (turboshake128_state_internal *) (void *) state;\n\n    return turboshake128_ref_update(st, in, (size_t) inlen);\n}\n\nint\ncrypto_xof_turboshake128_squeeze(crypto_xof_turboshake128_state *state, unsigned char *out,\n                                 size_t outlen)\n{\n    turboshake128_state_internal *st = (turboshake128_state_internal *) (void *) state;\n\n    return turboshake128_ref_squeeze(st, out, outlen);\n}\n"
  },
  {
    "path": "src/libsodium/crypto_xof/turboshake256/ref/turboshake256_ref.c",
    "content": "#include <stdint.h>\n#include <string.h>\n\n#include \"crypto_core_keccak1600.h\"\n#include \"crypto_xof_turboshake256.h\"\n#include \"private/common.h\"\n#include \"turboshake256_ref.h\"\n\nint\nturboshake256_ref_init_with_domain(turboshake256_state_internal *state, unsigned char domain)\n{\n    crypto_core_keccak1600_init(&state->state);\n    state->offset = 0;\n    state->phase  = TURBOSHAKE256_PHASE_ABSORBING;\n    state->domain = domain;\n\n    return 0;\n}\n\nint\nturboshake256_ref_init(turboshake256_state_internal *state)\n{\n    return turboshake256_ref_init_with_domain(state, crypto_xof_turboshake256_DOMAIN_STANDARD);\n}\n\nint\nturboshake256_ref_update(turboshake256_state_internal *state, const unsigned char *in, size_t inlen)\n{\n    size_t consumed = 0;\n    size_t chunk_size;\n    int    ret = 0;\n\n    if (state->phase != TURBOSHAKE256_PHASE_ABSORBING) {\n        crypto_core_keccak1600_permute_12(&state->state);\n        state->phase  = TURBOSHAKE256_PHASE_ABSORBING;\n        state->offset = 0;\n        ret = -1;\n    }\n\n    while (consumed < inlen) {\n        if (state->offset == TURBOSHAKE256_RATE) {\n            crypto_core_keccak1600_permute_12(&state->state);\n            state->offset = 0;\n        }\n        chunk_size = TURBOSHAKE256_RATE - state->offset;\n        if (chunk_size > inlen - consumed) {\n            chunk_size = inlen - consumed;\n        }\n        crypto_core_keccak1600_xor_bytes(&state->state, &in[consumed], state->offset, chunk_size);\n        state->offset += chunk_size;\n        consumed += chunk_size;\n    }\n\n    return ret;\n}\n\nstatic void\nturboshake256_finalize(turboshake256_state_internal *state)\n{\n    unsigned char pad;\n\n    /* If the rate is exactly full, process that block before padding */\n    if (state->offset == TURBOSHAKE256_RATE) {\n        crypto_core_keccak1600_permute_12(&state->state);\n        state->offset = 0;\n    }\n\n    /* Apply padding: domain byte at current position, 0x80 at last byte */\n    if (state->offset == TURBOSHAKE256_RATE - 1) {\n        /* Special case: padding fits in one byte */\n        pad = (unsigned char) (state->domain ^ 0x80);\n        crypto_core_keccak1600_xor_bytes(&state->state, &pad, state->offset, 1);\n    } else {\n        /* Normal case: domain and 0x80 at different positions */\n        crypto_core_keccak1600_xor_bytes(&state->state, &state->domain, state->offset, 1);\n        pad = 0x80;\n        crypto_core_keccak1600_xor_bytes(&state->state, &pad, TURBOSHAKE256_RATE - 1, 1);\n    }\n\n    /* Final permutation (12 rounds for TurboSHAKE) */\n    crypto_core_keccak1600_permute_12(&state->state);\n\n    state->offset = 0;\n    state->phase  = TURBOSHAKE256_PHASE_SQUEEZING;\n}\n\nint\nturboshake256_ref_squeeze(turboshake256_state_internal *state, unsigned char *out, size_t outlen)\n{\n    size_t extracted = 0;\n    size_t chunk_size;\n\n    if (state->phase == TURBOSHAKE256_PHASE_ABSORBING) {\n        turboshake256_finalize(state);\n    }\n\n    while (extracted < outlen) {\n        if (state->offset == TURBOSHAKE256_RATE) {\n            crypto_core_keccak1600_permute_12(&state->state);\n            state->offset = 0;\n        }\n        chunk_size = TURBOSHAKE256_RATE - state->offset;\n        if (chunk_size > outlen - extracted) {\n            chunk_size = outlen - extracted;\n        }\n        crypto_core_keccak1600_extract_bytes(&state->state, &out[extracted], state->offset,\n                                             chunk_size);\n        state->offset += chunk_size;\n        extracted += chunk_size;\n    }\n\n    return 0;\n}\n\nint\nturboshake256_ref(unsigned char *out, size_t outlen, const unsigned char *in, size_t inlen)\n{\n    turboshake256_state_internal state;\n\n    turboshake256_ref_init(&state);\n    turboshake256_ref_update(&state, in, inlen);\n    turboshake256_ref_squeeze(&state, out, outlen);\n\n    return 0;\n}\n"
  },
  {
    "path": "src/libsodium/crypto_xof/turboshake256/ref/turboshake256_ref.h",
    "content": "#ifndef turboshake256_ref_H\n#define turboshake256_ref_H\n\n#include <stddef.h>\n#include <stdint.h>\n\n#include \"crypto_core_keccak1600.h\"\n\n#define TURBOSHAKE256_RATE 136\n\ntypedef enum {\n    TURBOSHAKE256_PHASE_ABSORBING = 0,\n    TURBOSHAKE256_PHASE_SQUEEZING = 1\n} turboshake256_phase;\n\ntypedef struct turboshake256_state_internal_ {\n    crypto_core_keccak1600_state state;\n    size_t                       offset;\n    uint8_t                      phase;\n    unsigned char                domain;\n} turboshake256_state_internal;\n\nint turboshake256_ref(unsigned char *out, size_t outlen, const unsigned char *in, size_t inlen);\n\nint turboshake256_ref_init(turboshake256_state_internal *state);\n\nint turboshake256_ref_init_with_domain(turboshake256_state_internal *state, unsigned char domain);\n\nint turboshake256_ref_update(turboshake256_state_internal *state,\n                             const unsigned char          *in,\n                             size_t                        inlen);\n\nint turboshake256_ref_squeeze(turboshake256_state_internal *state, unsigned char *out,\n                              size_t outlen);\n\n#endif /* turboshake256_ref_H */\n"
  },
  {
    "path": "src/libsodium/crypto_xof/turboshake256/xof_turboshake256.c",
    "content": "#include \"crypto_xof_turboshake256.h\"\n#include \"private/common.h\"\n#include \"ref/turboshake256_ref.h\"\n\nsize_t\ncrypto_xof_turboshake256_blockbytes(void)\n{\n    return crypto_xof_turboshake256_BLOCKBYTES;\n}\n\nsize_t\ncrypto_xof_turboshake256_statebytes(void)\n{\n    return crypto_xof_turboshake256_STATEBYTES;\n}\n\nunsigned char\ncrypto_xof_turboshake256_domain_standard(void)\n{\n    return crypto_xof_turboshake256_DOMAIN_STANDARD;\n}\n\nint\ncrypto_xof_turboshake256(unsigned char *out, size_t outlen, const unsigned char *in,\n                         unsigned long long inlen)\n{\n    COMPILER_ASSERT(sizeof(crypto_xof_turboshake256_state) >= sizeof(turboshake256_state_internal));\n\n    return turboshake256_ref(out, outlen, in, (size_t) inlen);\n}\n\nint\ncrypto_xof_turboshake256_init(crypto_xof_turboshake256_state *state)\n{\n    turboshake256_state_internal *st = (turboshake256_state_internal *) (void *) state;\n\n    COMPILER_ASSERT(sizeof(crypto_xof_turboshake256_state) >= sizeof(turboshake256_state_internal));\n\n    return turboshake256_ref_init(st);\n}\n\nint\ncrypto_xof_turboshake256_init_with_domain(crypto_xof_turboshake256_state *state,\n                                          unsigned char                   domain)\n{\n    turboshake256_state_internal *st = (turboshake256_state_internal *) (void *) state;\n\n    COMPILER_ASSERT(sizeof(crypto_xof_turboshake256_state) >= sizeof(turboshake256_state_internal));\n\n    return turboshake256_ref_init_with_domain(st, domain);\n}\n\nint\ncrypto_xof_turboshake256_update(crypto_xof_turboshake256_state *state,\n                                const unsigned char            *in,\n                                unsigned long long              inlen)\n{\n    turboshake256_state_internal *st = (turboshake256_state_internal *) (void *) state;\n\n    return turboshake256_ref_update(st, in, (size_t) inlen);\n}\n\nint\ncrypto_xof_turboshake256_squeeze(crypto_xof_turboshake256_state *state, unsigned char *out,\n                                 size_t outlen)\n{\n    turboshake256_state_internal *st = (turboshake256_state_internal *) (void *) state;\n\n    return turboshake256_ref_squeeze(st, out, outlen);\n}\n"
  },
  {
    "path": "src/libsodium/include/Makefile.am",
    "content": "\nSODIUM_EXPORT = \\\n\tsodium.h \\\n\tsodium/core.h \\\n\tsodium/crypto_aead_aes256gcm.h \\\n\tsodium/crypto_aead_aegis128l.h \\\n\tsodium/crypto_aead_aegis256.h \\\n\tsodium/crypto_aead_chacha20poly1305.h \\\n\tsodium/crypto_aead_xchacha20poly1305.h \\\n\tsodium/crypto_auth.h \\\n\tsodium/crypto_auth_hmacsha256.h \\\n\tsodium/crypto_auth_hmacsha512.h \\\n\tsodium/crypto_auth_hmacsha512256.h \\\n\tsodium/crypto_box.h \\\n\tsodium/crypto_box_curve25519xchacha20poly1305.h \\\n\tsodium/crypto_box_curve25519xsalsa20poly1305.h \\\n\tsodium/crypto_core_ed25519.h \\\n\tsodium/crypto_core_ristretto255.h \\\n\tsodium/crypto_core_hchacha20.h \\\n\tsodium/crypto_core_hsalsa20.h \\\n\tsodium/crypto_core_keccak1600.h \\\n\tsodium/crypto_core_salsa20.h \\\n\tsodium/crypto_core_salsa2012.h \\\n\tsodium/crypto_core_salsa208.h \\\n\tsodium/crypto_generichash.h \\\n\tsodium/crypto_generichash_blake2b.h \\\n\tsodium/crypto_hash.h \\\n\tsodium/crypto_hash_sha256.h \\\n\tsodium/crypto_hash_sha3.h \\\n\tsodium/crypto_hash_sha512.h \\\n\tsodium/crypto_ipcrypt.h \\\n\tsodium/crypto_kdf.h \\\n\tsodium/crypto_kdf_blake2b.h \\\n\tsodium/crypto_kdf_hkdf_sha256.h \\\n\tsodium/crypto_kdf_hkdf_sha512.h \\\n\tsodium/crypto_kem.h \\\n\tsodium/crypto_kem_mlkem768.h \\\n\tsodium/crypto_kem_xwing.h \\\n\tsodium/crypto_kx.h \\\n\tsodium/crypto_onetimeauth.h \\\n\tsodium/crypto_onetimeauth_poly1305.h \\\n\tsodium/crypto_pwhash.h \\\n\tsodium/crypto_pwhash_argon2i.h \\\n\tsodium/crypto_pwhash_argon2id.h \\\n\tsodium/crypto_pwhash_scryptsalsa208sha256.h \\\n\tsodium/crypto_scalarmult.h \\\n\tsodium/crypto_scalarmult_curve25519.h \\\n\tsodium/crypto_scalarmult_ed25519.h \\\n\tsodium/crypto_scalarmult_ristretto255.h \\\n\tsodium/crypto_secretbox.h \\\n\tsodium/crypto_secretbox_xchacha20poly1305.h \\\n\tsodium/crypto_secretbox_xsalsa20poly1305.h \\\n\tsodium/crypto_secretstream_xchacha20poly1305.h \\\n\tsodium/crypto_shorthash.h \\\n\tsodium/crypto_shorthash_siphash24.h \\\n\tsodium/crypto_sign.h \\\n\tsodium/crypto_sign_ed25519.h \\\n\tsodium/crypto_stream.h \\\n\tsodium/crypto_stream_chacha20.h \\\n\tsodium/crypto_stream_salsa20.h \\\n\tsodium/crypto_stream_salsa2012.h \\\n\tsodium/crypto_stream_salsa208.h \\\n\tsodium/crypto_stream_xchacha20.h \\\n\tsodium/crypto_stream_xsalsa20.h \\\n\tsodium/crypto_verify_16.h \\\n\tsodium/crypto_verify_32.h \\\n\tsodium/crypto_verify_64.h \\\n\tsodium/crypto_xof_shake128.h \\\n\tsodium/crypto_xof_shake256.h \\\n\tsodium/crypto_xof_turboshake128.h \\\n\tsodium/crypto_xof_turboshake256.h \\\n\tsodium/export.h \\\n\tsodium/randombytes.h \\\n\tsodium/randombytes_internal_random.h \\\n\tsodium/randombytes_sysrandom.h \\\n\tsodium/runtime.h \\\n\tsodium/utils.h\n\nEXTRA_SRC = $(SODIUM_EXPORT) \\\n\tsodium/version.h.in\n\nnobase_include_HEADERS = $(SODIUM_EXPORT)\n\nnobase_nodist_include_HEADERS = \\\n\tsodium/version.h\n"
  },
  {
    "path": "src/libsodium/include/sodium/core.h",
    "content": "\n#ifndef sodium_core_H\n#define sodium_core_H\n\n#include \"export.h\"\n\n#ifdef __cplusplus\nextern \"C\" {\n#endif\n\nSODIUM_EXPORT\nint sodium_init(void)\n            __attribute__ ((warn_unused_result));\n\n/* ---- */\n\nSODIUM_EXPORT\nint sodium_set_misuse_handler(void (*handler)(void));\n\nSODIUM_EXPORT\nvoid sodium_misuse(void)\n            __attribute__ ((noreturn));\n\n#ifdef __cplusplus\n}\n#endif\n\n#endif\n"
  },
  {
    "path": "src/libsodium/include/sodium/crypto_aead_aegis128l.h",
    "content": "#ifndef crypto_aead_aegis128l_H\n#define crypto_aead_aegis128l_H\n\n#include <stddef.h>\n\n#include \"export.h\"\n\n#ifdef __cplusplus\n#ifdef __GNUC__\n#pragma GCC diagnostic ignored \"-Wlong-long\"\n#endif\nextern \"C\" {\n#endif\n\n#define crypto_aead_aegis128l_KEYBYTES 16U\nSODIUM_EXPORT\nsize_t crypto_aead_aegis128l_keybytes(void);\n\n#define crypto_aead_aegis128l_NSECBYTES 0U\nSODIUM_EXPORT\nsize_t crypto_aead_aegis128l_nsecbytes(void);\n\n#define crypto_aead_aegis128l_NPUBBYTES 16U\nSODIUM_EXPORT\nsize_t crypto_aead_aegis128l_npubbytes(void);\n\n#define crypto_aead_aegis128l_ABYTES 32U\nSODIUM_EXPORT\nsize_t crypto_aead_aegis128l_abytes(void);\n\n#define crypto_aead_aegis128l_MESSAGEBYTES_MAX \\\n    SODIUM_MIN(SODIUM_SIZE_MAX - crypto_aead_aegis128l_ABYTES, (1ULL << 61) - 1)\nSODIUM_EXPORT\nsize_t crypto_aead_aegis128l_messagebytes_max(void);\n\nSODIUM_EXPORT\nint crypto_aead_aegis128l_encrypt(unsigned char       *c,\n                                  unsigned long long  *clen_p,\n                                  const unsigned char *m,\n                                  unsigned long long   mlen,\n                                  const unsigned char *ad,\n                                  unsigned long long   adlen,\n                                  const unsigned char *nsec,\n                                  const unsigned char *npub,\n                                  const unsigned char *k) __attribute__((nonnull(1, 8, 9)));\n\nSODIUM_EXPORT\nint crypto_aead_aegis128l_decrypt(unsigned char       *m,\n                                  unsigned long long  *mlen_p,\n                                  unsigned char       *nsec,\n                                  const unsigned char *c,\n                                  unsigned long long   clen,\n                                  const unsigned char *ad,\n                                  unsigned long long   adlen,\n                                  const unsigned char *npub,\n                                  const unsigned char *k) __attribute__((warn_unused_result))\n__attribute__((nonnull(4, 8, 9)));\n\nSODIUM_EXPORT\nint crypto_aead_aegis128l_encrypt_detached(unsigned char       *c,\n                                           unsigned char       *mac,\n                                           unsigned long long  *maclen_p,\n                                           const unsigned char *m,\n                                           unsigned long long   mlen,\n                                           const unsigned char *ad,\n                                           unsigned long long   adlen,\n                                           const unsigned char *nsec,\n                                           const unsigned char *npub,\n                                           const unsigned char *k)\n    __attribute__((nonnull(1, 2, 9, 10)));\n\nSODIUM_EXPORT\nint crypto_aead_aegis128l_decrypt_detached(unsigned char       *m,\n                                           unsigned char       *nsec,\n                                           const unsigned char *c,\n                                           unsigned long long   clen,\n                                           const unsigned char *mac,\n                                           const unsigned char *ad,\n                                           unsigned long long   adlen,\n                                           const unsigned char *npub,\n                                           const unsigned char *k)\n    __attribute__((warn_unused_result)) __attribute__((nonnull(3, 5, 8, 9)));\n\nSODIUM_EXPORT\nvoid crypto_aead_aegis128l_keygen(unsigned char k[crypto_aead_aegis128l_KEYBYTES])\n    __attribute__((nonnull));\n\n#ifdef __cplusplus\n}\n#endif\n\n#endif\n"
  },
  {
    "path": "src/libsodium/include/sodium/crypto_aead_aegis256.h",
    "content": "#ifndef crypto_aead_aegis256_H\n#define crypto_aead_aegis256_H\n\n#include <stddef.h>\n\n#include \"export.h\"\n\n#ifdef __cplusplus\n#ifdef __GNUC__\n#pragma GCC diagnostic ignored \"-Wlong-long\"\n#endif\nextern \"C\" {\n#endif\n\n#define crypto_aead_aegis256_KEYBYTES 32U\nSODIUM_EXPORT\nsize_t crypto_aead_aegis256_keybytes(void);\n\n#define crypto_aead_aegis256_NSECBYTES 0U\nSODIUM_EXPORT\nsize_t crypto_aead_aegis256_nsecbytes(void);\n\n#define crypto_aead_aegis256_NPUBBYTES 32U\nSODIUM_EXPORT\nsize_t crypto_aead_aegis256_npubbytes(void);\n\n#define crypto_aead_aegis256_ABYTES 32U\nSODIUM_EXPORT\nsize_t crypto_aead_aegis256_abytes(void);\n\n#define crypto_aead_aegis256_MESSAGEBYTES_MAX \\\n    SODIUM_MIN(SODIUM_SIZE_MAX - crypto_aead_aegis256_ABYTES, (1ULL << 61) - 1)\nSODIUM_EXPORT\nsize_t crypto_aead_aegis256_messagebytes_max(void);\n\nSODIUM_EXPORT\nint crypto_aead_aegis256_encrypt(unsigned char       *c,\n                                 unsigned long long  *clen_p,\n                                 const unsigned char *m,\n                                 unsigned long long   mlen,\n                                 const unsigned char *ad,\n                                 unsigned long long   adlen,\n                                 const unsigned char *nsec,\n                                 const unsigned char *npub,\n                                 const unsigned char *k) __attribute__((nonnull(1, 8, 9)));\n\nSODIUM_EXPORT\nint crypto_aead_aegis256_decrypt(unsigned char       *m,\n                                 unsigned long long  *mlen_p,\n                                 unsigned char       *nsec,\n                                 const unsigned char *c,\n                                 unsigned long long   clen,\n                                 const unsigned char *ad,\n                                 unsigned long long   adlen,\n                                 const unsigned char *npub,\n                                 const unsigned char *k) __attribute__((warn_unused_result))\n__attribute__((nonnull(4, 8, 9)));\n\nSODIUM_EXPORT\nint crypto_aead_aegis256_encrypt_detached(unsigned char       *c,\n                                          unsigned char       *mac,\n                                          unsigned long long  *maclen_p,\n                                          const unsigned char *m,\n                                          unsigned long long   mlen,\n                                          const unsigned char *ad,\n                                          unsigned long long   adlen,\n                                          const unsigned char *nsec,\n                                          const unsigned char *npub,\n                                          const unsigned char *k)\n    __attribute__((nonnull(1, 2, 9, 10)));\n\nSODIUM_EXPORT\nint crypto_aead_aegis256_decrypt_detached(unsigned char       *m,\n                                          unsigned char       *nsec,\n                                          const unsigned char *c,\n                                          unsigned long long   clen,\n                                          const unsigned char *mac,\n                                          const unsigned char *ad,\n                                          unsigned long long   adlen,\n                                          const unsigned char *npub,\n                                          const unsigned char *k)\n    __attribute__((warn_unused_result)) __attribute__((nonnull(3, 5, 8, 9)));\n\nSODIUM_EXPORT\nvoid crypto_aead_aegis256_keygen(unsigned char k[crypto_aead_aegis256_KEYBYTES])\n    __attribute__((nonnull));\n\n#ifdef __cplusplus\n}\n#endif\n\n#endif\n"
  },
  {
    "path": "src/libsodium/include/sodium/crypto_aead_aes256gcm.h",
    "content": "#ifndef crypto_aead_aes256gcm_H\n#define crypto_aead_aes256gcm_H\n\n/*\n * WARNING: Despite being the most popular AEAD construction due to its\n * use in TLS, safely using AES-GCM in a different context is tricky.\n *\n * No more than ~ 350 GB of input data should be encrypted with a given key.\n * This is for ~ 16 KB messages -- Actual figures vary according to\n * message sizes.\n *\n * In addition, nonces are short and repeated nonces would totally destroy\n * the security of this scheme.\n *\n * Nonces should thus come from atomic counters, which can be difficult to\n * set up in a distributed environment.\n *\n * Unless you absolutely need AES-GCM, use crypto_aead_xchacha20poly1305_ietf_*()\n * instead. It doesn't have any of these limitations.\n * Or, if you don't need to authenticate additional data, just stick to\n * crypto_secretbox().\n */\n\n#include <stddef.h>\n#include \"export.h\"\n\n#ifdef __cplusplus\n# ifdef __GNUC__\n#  pragma GCC diagnostic ignored \"-Wlong-long\"\n# endif\nextern \"C\" {\n#endif\n\nSODIUM_EXPORT\nint crypto_aead_aes256gcm_is_available(void);\n\n#define crypto_aead_aes256gcm_KEYBYTES  32U\nSODIUM_EXPORT\nsize_t crypto_aead_aes256gcm_keybytes(void);\n\n#define crypto_aead_aes256gcm_NSECBYTES 0U\nSODIUM_EXPORT\nsize_t crypto_aead_aes256gcm_nsecbytes(void);\n\n#define crypto_aead_aes256gcm_NPUBBYTES 12U\nSODIUM_EXPORT\nsize_t crypto_aead_aes256gcm_npubbytes(void);\n\n#define crypto_aead_aes256gcm_ABYTES    16U\nSODIUM_EXPORT\nsize_t crypto_aead_aes256gcm_abytes(void);\n\n#define crypto_aead_aes256gcm_MESSAGEBYTES_MAX \\\n    SODIUM_MIN(SODIUM_SIZE_MAX - crypto_aead_aes256gcm_ABYTES, \\\n               (16ULL * ((1ULL << 32) - 2ULL)))\nSODIUM_EXPORT\nsize_t crypto_aead_aes256gcm_messagebytes_max(void);\n\ntypedef struct CRYPTO_ALIGN(16) crypto_aead_aes256gcm_state_ {\n    unsigned char opaque[512];\n} crypto_aead_aes256gcm_state;\n\nSODIUM_EXPORT\nsize_t crypto_aead_aes256gcm_statebytes(void);\n\nSODIUM_EXPORT\nint crypto_aead_aes256gcm_encrypt(unsigned char *c,\n                                  unsigned long long *clen_p,\n                                  const unsigned char *m,\n                                  unsigned long long mlen,\n                                  const unsigned char *ad,\n                                  unsigned long long adlen,\n                                  const unsigned char *nsec,\n                                  const unsigned char *npub,\n                                  const unsigned char *k)\n            __attribute__ ((nonnull(1, 8, 9)));\n\nSODIUM_EXPORT\nint crypto_aead_aes256gcm_decrypt(unsigned char *m,\n                                  unsigned long long *mlen_p,\n                                  unsigned char *nsec,\n                                  const unsigned char *c,\n                                  unsigned long long clen,\n                                  const unsigned char *ad,\n                                  unsigned long long adlen,\n                                  const unsigned char *npub,\n                                  const unsigned char *k)\n            __attribute__ ((warn_unused_result)) __attribute__ ((nonnull(4, 8, 9)));\n\nSODIUM_EXPORT\nint crypto_aead_aes256gcm_encrypt_detached(unsigned char *c,\n                                           unsigned char *mac,\n                                           unsigned long long *maclen_p,\n                                           const unsigned char *m,\n                                           unsigned long long mlen,\n                                           const unsigned char *ad,\n                                           unsigned long long adlen,\n                                           const unsigned char *nsec,\n                                           const unsigned char *npub,\n                                           const unsigned char *k)\n            __attribute__ ((nonnull(1, 2, 9, 10)));\n\nSODIUM_EXPORT\nint crypto_aead_aes256gcm_decrypt_detached(unsigned char *m,\n                                           unsigned char *nsec,\n                                           const unsigned char *c,\n                                           unsigned long long clen,\n                                           const unsigned char *mac,\n                                           const unsigned char *ad,\n                                           unsigned long long adlen,\n                                           const unsigned char *npub,\n                                           const unsigned char *k)\n            __attribute__ ((warn_unused_result)) __attribute__ ((nonnull(3, 5, 8, 9)));\n\n/* -- Precomputation interface -- */\n\nSODIUM_EXPORT\nint crypto_aead_aes256gcm_beforenm(crypto_aead_aes256gcm_state *ctx_,\n                                   const unsigned char *k)\n            __attribute__ ((nonnull));\n\nSODIUM_EXPORT\nint crypto_aead_aes256gcm_encrypt_afternm(unsigned char *c,\n                                          unsigned long long *clen_p,\n                                          const unsigned char *m,\n                                          unsigned long long mlen,\n                                          const unsigned char *ad,\n                                          unsigned long long adlen,\n                                          const unsigned char *nsec,\n                                          const unsigned char *npub,\n                                          const crypto_aead_aes256gcm_state *ctx_)\n            __attribute__ ((nonnull(1, 8, 9)));\n\nSODIUM_EXPORT\nint crypto_aead_aes256gcm_decrypt_afternm(unsigned char *m,\n                                          unsigned long long *mlen_p,\n                                          unsigned char *nsec,\n                                          const unsigned char *c,\n                                          unsigned long long clen,\n                                          const unsigned char *ad,\n                                          unsigned long long adlen,\n                                          const unsigned char *npub,\n                                          const crypto_aead_aes256gcm_state *ctx_)\n            __attribute__ ((warn_unused_result)) __attribute__ ((nonnull(4, 8, 9)));\n\nSODIUM_EXPORT\nint crypto_aead_aes256gcm_encrypt_detached_afternm(unsigned char *c,\n                                                   unsigned char *mac,\n                                                   unsigned long long *maclen_p,\n                                                   const unsigned char *m,\n                                                   unsigned long long mlen,\n                                                   const unsigned char *ad,\n                                                   unsigned long long adlen,\n                                                   const unsigned char *nsec,\n                                                   const unsigned char *npub,\n                                                   const crypto_aead_aes256gcm_state *ctx_)\n            __attribute__ ((nonnull(1, 2, 9, 10)));\n\nSODIUM_EXPORT\nint crypto_aead_aes256gcm_decrypt_detached_afternm(unsigned char *m,\n                                                   unsigned char *nsec,\n                                                   const unsigned char *c,\n                                                   unsigned long long clen,\n                                                   const unsigned char *mac,\n                                                   const unsigned char *ad,\n                                                   unsigned long long adlen,\n                                                   const unsigned char *npub,\n                                                   const crypto_aead_aes256gcm_state *ctx_)\n            __attribute__ ((warn_unused_result)) __attribute__ ((nonnull(3, 5, 8, 9)));\n\nSODIUM_EXPORT\nvoid crypto_aead_aes256gcm_keygen(unsigned char k[crypto_aead_aes256gcm_KEYBYTES])\n            __attribute__ ((nonnull));\n\n#ifdef __cplusplus\n}\n#endif\n\n#endif\n"
  },
  {
    "path": "src/libsodium/include/sodium/crypto_aead_chacha20poly1305.h",
    "content": "#ifndef crypto_aead_chacha20poly1305_H\n#define crypto_aead_chacha20poly1305_H\n\n#include <stddef.h>\n#include \"export.h\"\n\n#ifdef __cplusplus\n# ifdef __GNUC__\n#  pragma GCC diagnostic ignored \"-Wlong-long\"\n# endif\nextern \"C\" {\n#endif\n\n/* -- IETF ChaCha20-Poly1305 construction with a 96-bit nonce and a 32-bit internal counter -- */\n\n#define crypto_aead_chacha20poly1305_ietf_KEYBYTES 32U\nSODIUM_EXPORT\nsize_t crypto_aead_chacha20poly1305_ietf_keybytes(void);\n\n#define crypto_aead_chacha20poly1305_ietf_NSECBYTES 0U\nSODIUM_EXPORT\nsize_t crypto_aead_chacha20poly1305_ietf_nsecbytes(void);\n\n#define crypto_aead_chacha20poly1305_ietf_NPUBBYTES 12U\n\nSODIUM_EXPORT\nsize_t crypto_aead_chacha20poly1305_ietf_npubbytes(void);\n\n#define crypto_aead_chacha20poly1305_ietf_ABYTES 16U\nSODIUM_EXPORT\nsize_t crypto_aead_chacha20poly1305_ietf_abytes(void);\n\n#define crypto_aead_chacha20poly1305_ietf_MESSAGEBYTES_MAX \\\n    SODIUM_MIN(SODIUM_SIZE_MAX - crypto_aead_chacha20poly1305_ietf_ABYTES, \\\n               (64ULL * ((1ULL << 32) - 1ULL)))\nSODIUM_EXPORT\nsize_t crypto_aead_chacha20poly1305_ietf_messagebytes_max(void);\n\nSODIUM_EXPORT\nint crypto_aead_chacha20poly1305_ietf_encrypt(unsigned char *c,\n                                              unsigned long long *clen_p,\n                                              const unsigned char *m,\n                                              unsigned long long mlen,\n                                              const unsigned char *ad,\n                                              unsigned long long adlen,\n                                              const unsigned char *nsec,\n                                              const unsigned char *npub,\n                                              const unsigned char *k)\n            __attribute__ ((nonnull(1, 8, 9)));\n\nSODIUM_EXPORT\nint crypto_aead_chacha20poly1305_ietf_decrypt(unsigned char *m,\n                                              unsigned long long *mlen_p,\n                                              unsigned char *nsec,\n                                              const unsigned char *c,\n                                              unsigned long long clen,\n                                              const unsigned char *ad,\n                                              unsigned long long adlen,\n                                              const unsigned char *npub,\n                                              const unsigned char *k)\n            __attribute__ ((warn_unused_result)) __attribute__ ((nonnull(4, 8, 9)));\n\nSODIUM_EXPORT\nint crypto_aead_chacha20poly1305_ietf_encrypt_detached(unsigned char *c,\n                                                       unsigned char *mac,\n                                                       unsigned long long *maclen_p,\n                                                       const unsigned char *m,\n                                                       unsigned long long mlen,\n                                                       const unsigned char *ad,\n                                                       unsigned long long adlen,\n                                                       const unsigned char *nsec,\n                                                       const unsigned char *npub,\n                                                       const unsigned char *k)\n            __attribute__ ((nonnull(1, 2, 9, 10)));\n\nSODIUM_EXPORT\nint crypto_aead_chacha20poly1305_ietf_decrypt_detached(unsigned char *m,\n                                                       unsigned char *nsec,\n                                                       const unsigned char *c,\n                                                       unsigned long long clen,\n                                                       const unsigned char *mac,\n                                                       const unsigned char *ad,\n                                                       unsigned long long adlen,\n                                                       const unsigned char *npub,\n                                                       const unsigned char *k)\n            __attribute__ ((warn_unused_result)) __attribute__ ((nonnull(3, 5, 8, 9)));\n\nSODIUM_EXPORT\nvoid crypto_aead_chacha20poly1305_ietf_keygen(unsigned char k[crypto_aead_chacha20poly1305_ietf_KEYBYTES])\n            __attribute__ ((nonnull));\n\n/* -- Original ChaCha20-Poly1305 construction with a 64-bit nonce and a 64-bit internal counter -- */\n\n#define crypto_aead_chacha20poly1305_KEYBYTES 32U\nSODIUM_EXPORT\nsize_t crypto_aead_chacha20poly1305_keybytes(void);\n\n#define crypto_aead_chacha20poly1305_NSECBYTES 0U\nSODIUM_EXPORT\nsize_t crypto_aead_chacha20poly1305_nsecbytes(void);\n\n#define crypto_aead_chacha20poly1305_NPUBBYTES 8U\nSODIUM_EXPORT\nsize_t crypto_aead_chacha20poly1305_npubbytes(void);\n\n#define crypto_aead_chacha20poly1305_ABYTES 16U\nSODIUM_EXPORT\nsize_t crypto_aead_chacha20poly1305_abytes(void);\n\n#define crypto_aead_chacha20poly1305_MESSAGEBYTES_MAX \\\n    (SODIUM_SIZE_MAX - crypto_aead_chacha20poly1305_ABYTES)\nSODIUM_EXPORT\nsize_t crypto_aead_chacha20poly1305_messagebytes_max(void);\n\nSODIUM_EXPORT\nint crypto_aead_chacha20poly1305_encrypt(unsigned char *c,\n                                         unsigned long long *clen_p,\n                                         const unsigned char *m,\n                                         unsigned long long mlen,\n                                         const unsigned char *ad,\n                                         unsigned long long adlen,\n                                         const unsigned char *nsec,\n                                         const unsigned char *npub,\n                                         const unsigned char *k)\n            __attribute__ ((nonnull(1, 8, 9)));\n\nSODIUM_EXPORT\nint crypto_aead_chacha20poly1305_decrypt(unsigned char *m,\n                                         unsigned long long *mlen_p,\n                                         unsigned char *nsec,\n                                         const unsigned char *c,\n                                         unsigned long long clen,\n                                         const unsigned char *ad,\n                                         unsigned long long adlen,\n                                         const unsigned char *npub,\n                                         const unsigned char *k)\n            __attribute__ ((warn_unused_result)) __attribute__ ((nonnull(4, 8, 9)));\n\nSODIUM_EXPORT\nint crypto_aead_chacha20poly1305_encrypt_detached(unsigned char *c,\n                                                  unsigned char *mac,\n                                                  unsigned long long *maclen_p,\n                                                  const unsigned char *m,\n                                                  unsigned long long mlen,\n                                                  const unsigned char *ad,\n                                                  unsigned long long adlen,\n                                                  const unsigned char *nsec,\n                                                  const unsigned char *npub,\n                                                  const unsigned char *k)\n            __attribute__ ((nonnull(1, 2, 9, 10)));\n\nSODIUM_EXPORT\nint crypto_aead_chacha20poly1305_decrypt_detached(unsigned char *m,\n                                                  unsigned char *nsec,\n                                                  const unsigned char *c,\n                                                  unsigned long long clen,\n                                                  const unsigned char *mac,\n                                                  const unsigned char *ad,\n                                                  unsigned long long adlen,\n                                                  const unsigned char *npub,\n                                                  const unsigned char *k)\n            __attribute__ ((warn_unused_result)) __attribute__ ((nonnull(3, 5, 8, 9)));\n\nSODIUM_EXPORT\nvoid crypto_aead_chacha20poly1305_keygen(unsigned char k[crypto_aead_chacha20poly1305_KEYBYTES])\n            __attribute__ ((nonnull));\n\n/* Aliases */\n\n#define crypto_aead_chacha20poly1305_IETF_KEYBYTES         crypto_aead_chacha20poly1305_ietf_KEYBYTES\n#define crypto_aead_chacha20poly1305_IETF_NSECBYTES        crypto_aead_chacha20poly1305_ietf_NSECBYTES\n#define crypto_aead_chacha20poly1305_IETF_NPUBBYTES        crypto_aead_chacha20poly1305_ietf_NPUBBYTES\n#define crypto_aead_chacha20poly1305_IETF_ABYTES           crypto_aead_chacha20poly1305_ietf_ABYTES\n#define crypto_aead_chacha20poly1305_IETF_MESSAGEBYTES_MAX crypto_aead_chacha20poly1305_ietf_MESSAGEBYTES_MAX\n\n#ifdef __cplusplus\n}\n#endif\n\n#endif\n"
  },
  {
    "path": "src/libsodium/include/sodium/crypto_aead_xchacha20poly1305.h",
    "content": "#ifndef crypto_aead_xchacha20poly1305_H\n#define crypto_aead_xchacha20poly1305_H\n\n#include <stddef.h>\n#include \"export.h\"\n\n#ifdef __cplusplus\n# ifdef __GNUC__\n#  pragma GCC diagnostic ignored \"-Wlong-long\"\n# endif\nextern \"C\" {\n#endif\n\n#define crypto_aead_xchacha20poly1305_ietf_KEYBYTES 32U\nSODIUM_EXPORT\nsize_t crypto_aead_xchacha20poly1305_ietf_keybytes(void);\n\n#define crypto_aead_xchacha20poly1305_ietf_NSECBYTES 0U\nSODIUM_EXPORT\nsize_t crypto_aead_xchacha20poly1305_ietf_nsecbytes(void);\n\n#define crypto_aead_xchacha20poly1305_ietf_NPUBBYTES 24U\nSODIUM_EXPORT\nsize_t crypto_aead_xchacha20poly1305_ietf_npubbytes(void);\n\n#define crypto_aead_xchacha20poly1305_ietf_ABYTES 16U\nSODIUM_EXPORT\nsize_t crypto_aead_xchacha20poly1305_ietf_abytes(void);\n\n#define crypto_aead_xchacha20poly1305_ietf_MESSAGEBYTES_MAX \\\n    (SODIUM_SIZE_MAX - crypto_aead_xchacha20poly1305_ietf_ABYTES)\nSODIUM_EXPORT\nsize_t crypto_aead_xchacha20poly1305_ietf_messagebytes_max(void);\n\nSODIUM_EXPORT\nint crypto_aead_xchacha20poly1305_ietf_encrypt(unsigned char *c,\n                                               unsigned long long *clen_p,\n                                               const unsigned char *m,\n                                               unsigned long long mlen,\n                                               const unsigned char *ad,\n                                               unsigned long long adlen,\n                                               const unsigned char *nsec,\n                                               const unsigned char *npub,\n                                               const unsigned char *k)\n            __attribute__ ((nonnull(1, 8, 9)));\n\nSODIUM_EXPORT\nint crypto_aead_xchacha20poly1305_ietf_decrypt(unsigned char *m,\n                                               unsigned long long *mlen_p,\n                                               unsigned char *nsec,\n                                               const unsigned char *c,\n                                               unsigned long long clen,\n                                               const unsigned char *ad,\n                                               unsigned long long adlen,\n                                               const unsigned char *npub,\n                                               const unsigned char *k)\n            __attribute__ ((warn_unused_result)) __attribute__ ((nonnull(4, 8, 9)));\n\nSODIUM_EXPORT\nint crypto_aead_xchacha20poly1305_ietf_encrypt_detached(unsigned char *c,\n                                                        unsigned char *mac,\n                                                        unsigned long long *maclen_p,\n                                                        const unsigned char *m,\n                                                        unsigned long long mlen,\n                                                        const unsigned char *ad,\n                                                        unsigned long long adlen,\n                                                        const unsigned char *nsec,\n                                                        const unsigned char *npub,\n                                                        const unsigned char *k)\n            __attribute__ ((nonnull(1, 2, 9, 10)));\n\nSODIUM_EXPORT\nint crypto_aead_xchacha20poly1305_ietf_decrypt_detached(unsigned char *m,\n                                                        unsigned char *nsec,\n                                                        const unsigned char *c,\n                                                        unsigned long long clen,\n                                                        const unsigned char *mac,\n                                                        const unsigned char *ad,\n                                                        unsigned long long adlen,\n                                                        const unsigned char *npub,\n                                                        const unsigned char *k)\n            __attribute__ ((warn_unused_result)) __attribute__ ((nonnull(3, 5, 8, 9)));\n\nSODIUM_EXPORT\nvoid crypto_aead_xchacha20poly1305_ietf_keygen(unsigned char k[crypto_aead_xchacha20poly1305_ietf_KEYBYTES])\n            __attribute__ ((nonnull));\n\n/* Aliases */\n\n#define crypto_aead_xchacha20poly1305_IETF_KEYBYTES         crypto_aead_xchacha20poly1305_ietf_KEYBYTES\n#define crypto_aead_xchacha20poly1305_IETF_NSECBYTES        crypto_aead_xchacha20poly1305_ietf_NSECBYTES\n#define crypto_aead_xchacha20poly1305_IETF_NPUBBYTES        crypto_aead_xchacha20poly1305_ietf_NPUBBYTES\n#define crypto_aead_xchacha20poly1305_IETF_ABYTES           crypto_aead_xchacha20poly1305_ietf_ABYTES\n#define crypto_aead_xchacha20poly1305_IETF_MESSAGEBYTES_MAX crypto_aead_xchacha20poly1305_ietf_MESSAGEBYTES_MAX\n\n#ifdef __cplusplus\n}\n#endif\n\n#endif\n"
  },
  {
    "path": "src/libsodium/include/sodium/crypto_auth.h",
    "content": "#ifndef crypto_auth_H\n#define crypto_auth_H\n\n#include <stddef.h>\n\n#include \"crypto_auth_hmacsha512256.h\"\n#include \"export.h\"\n\n#ifdef __cplusplus\n# ifdef __GNUC__\n#  pragma GCC diagnostic ignored \"-Wlong-long\"\n# endif\nextern \"C\" {\n#endif\n\n#define crypto_auth_BYTES crypto_auth_hmacsha512256_BYTES\nSODIUM_EXPORT\nsize_t  crypto_auth_bytes(void);\n\n#define crypto_auth_KEYBYTES crypto_auth_hmacsha512256_KEYBYTES\nSODIUM_EXPORT\nsize_t  crypto_auth_keybytes(void);\n\n#define crypto_auth_PRIMITIVE \"hmacsha512256\"\nSODIUM_EXPORT\nconst char *crypto_auth_primitive(void);\n\nSODIUM_EXPORT\nint crypto_auth(unsigned char *out, const unsigned char *in,\n                unsigned long long inlen, const unsigned char *k)\n            __attribute__ ((nonnull(1, 4)));\n\nSODIUM_EXPORT\nint crypto_auth_verify(const unsigned char *h, const unsigned char *in,\n                       unsigned long long inlen, const unsigned char *k)\n            __attribute__ ((warn_unused_result)) __attribute__ ((nonnull(1, 4)));\n\nSODIUM_EXPORT\nvoid crypto_auth_keygen(unsigned char k[crypto_auth_KEYBYTES])\n            __attribute__ ((nonnull));\n\n#ifdef __cplusplus\n}\n#endif\n\n#endif\n"
  },
  {
    "path": "src/libsodium/include/sodium/crypto_auth_hmacsha256.h",
    "content": "#ifndef crypto_auth_hmacsha256_H\n#define crypto_auth_hmacsha256_H\n\n#include <stddef.h>\n#include \"crypto_hash_sha256.h\"\n#include \"export.h\"\n\n#ifdef __cplusplus\n# ifdef __GNUC__\n#  pragma GCC diagnostic ignored \"-Wlong-long\"\n# endif\nextern \"C\" {\n#endif\n\n#define crypto_auth_hmacsha256_BYTES 32U\nSODIUM_EXPORT\nsize_t crypto_auth_hmacsha256_bytes(void);\n\n#define crypto_auth_hmacsha256_KEYBYTES 32U\nSODIUM_EXPORT\nsize_t crypto_auth_hmacsha256_keybytes(void);\n\nSODIUM_EXPORT\nint crypto_auth_hmacsha256(unsigned char *out,\n                           const unsigned char *in,\n                           unsigned long long inlen,\n                           const unsigned char *k) __attribute__ ((nonnull(1, 4)));\n\nSODIUM_EXPORT\nint crypto_auth_hmacsha256_verify(const unsigned char *h,\n                                  const unsigned char *in,\n                                  unsigned long long inlen,\n                                  const unsigned char *k)\n            __attribute__ ((warn_unused_result)) __attribute__ ((nonnull(1, 4)));\n\n/* ------------------------------------------------------------------------- */\n\ntypedef struct crypto_auth_hmacsha256_state {\n    crypto_hash_sha256_state ictx;\n    crypto_hash_sha256_state octx;\n} crypto_auth_hmacsha256_state;\n\nSODIUM_EXPORT\nsize_t crypto_auth_hmacsha256_statebytes(void);\n\nSODIUM_EXPORT\nint crypto_auth_hmacsha256_init(crypto_auth_hmacsha256_state *state,\n                                const unsigned char *key,\n                                size_t keylen) __attribute__ ((nonnull(1)));\n\nSODIUM_EXPORT\nint crypto_auth_hmacsha256_update(crypto_auth_hmacsha256_state *state,\n                                  const unsigned char *in,\n                                  unsigned long long inlen)\n            __attribute__ ((nonnull(1)));\n\nSODIUM_EXPORT\nint crypto_auth_hmacsha256_final(crypto_auth_hmacsha256_state *state,\n                                 unsigned char *out) __attribute__ ((nonnull));\n\n\nSODIUM_EXPORT\nvoid crypto_auth_hmacsha256_keygen(unsigned char k[crypto_auth_hmacsha256_KEYBYTES])\n            __attribute__ ((nonnull));\n\n#ifdef __cplusplus\n}\n#endif\n\n#endif\n"
  },
  {
    "path": "src/libsodium/include/sodium/crypto_auth_hmacsha512.h",
    "content": "#ifndef crypto_auth_hmacsha512_H\n#define crypto_auth_hmacsha512_H\n\n#include <stddef.h>\n#include \"crypto_hash_sha512.h\"\n#include \"export.h\"\n\n#ifdef __cplusplus\n# ifdef __GNUC__\n#  pragma GCC diagnostic ignored \"-Wlong-long\"\n# endif\nextern \"C\" {\n#endif\n\n#define crypto_auth_hmacsha512_BYTES 64U\nSODIUM_EXPORT\nsize_t crypto_auth_hmacsha512_bytes(void);\n\n#define crypto_auth_hmacsha512_KEYBYTES 32U\nSODIUM_EXPORT\nsize_t crypto_auth_hmacsha512_keybytes(void);\n\nSODIUM_EXPORT\nint crypto_auth_hmacsha512(unsigned char *out,\n                           const unsigned char *in,\n                           unsigned long long inlen,\n                           const unsigned char *k) __attribute__ ((nonnull(1, 4)));\n\nSODIUM_EXPORT\nint crypto_auth_hmacsha512_verify(const unsigned char *h,\n                                  const unsigned char *in,\n                                  unsigned long long inlen,\n                                  const unsigned char *k)\n            __attribute__ ((warn_unused_result)) __attribute__ ((nonnull(1, 4)));\n\n/* ------------------------------------------------------------------------- */\n\ntypedef struct crypto_auth_hmacsha512_state {\n    crypto_hash_sha512_state ictx;\n    crypto_hash_sha512_state octx;\n} crypto_auth_hmacsha512_state;\n\nSODIUM_EXPORT\nsize_t crypto_auth_hmacsha512_statebytes(void);\n\nSODIUM_EXPORT\nint crypto_auth_hmacsha512_init(crypto_auth_hmacsha512_state *state,\n                                const unsigned char *key,\n                                size_t keylen) __attribute__ ((nonnull(1)));\n\nSODIUM_EXPORT\nint crypto_auth_hmacsha512_update(crypto_auth_hmacsha512_state *state,\n                                  const unsigned char *in,\n                                  unsigned long long inlen) __attribute__ ((nonnull(1)));\n\nSODIUM_EXPORT\nint crypto_auth_hmacsha512_final(crypto_auth_hmacsha512_state *state,\n                                 unsigned char *out) __attribute__ ((nonnull));\n\nSODIUM_EXPORT\nvoid crypto_auth_hmacsha512_keygen(unsigned char k[crypto_auth_hmacsha512_KEYBYTES])\n            __attribute__ ((nonnull));\n\n#ifdef __cplusplus\n}\n#endif\n\n#endif\n"
  },
  {
    "path": "src/libsodium/include/sodium/crypto_auth_hmacsha512256.h",
    "content": "#ifndef crypto_auth_hmacsha512256_H\n#define crypto_auth_hmacsha512256_H\n\n#include <stddef.h>\n#include \"crypto_auth_hmacsha512.h\"\n#include \"export.h\"\n\n#ifdef __cplusplus\n# ifdef __GNUC__\n#  pragma GCC diagnostic ignored \"-Wlong-long\"\n# endif\nextern \"C\" {\n#endif\n\n#define crypto_auth_hmacsha512256_BYTES 32U\nSODIUM_EXPORT\nsize_t crypto_auth_hmacsha512256_bytes(void);\n\n#define crypto_auth_hmacsha512256_KEYBYTES 32U\nSODIUM_EXPORT\nsize_t crypto_auth_hmacsha512256_keybytes(void);\n\nSODIUM_EXPORT\nint crypto_auth_hmacsha512256(unsigned char *out,\n                              const unsigned char *in,\n                              unsigned long long inlen,\n                              const unsigned char *k) __attribute__ ((nonnull(1, 4)));\n\nSODIUM_EXPORT\nint crypto_auth_hmacsha512256_verify(const unsigned char *h,\n                                     const unsigned char *in,\n                                     unsigned long long inlen,\n                                     const unsigned char *k)\n            __attribute__ ((warn_unused_result)) __attribute__ ((nonnull(1, 4)));\n\n/* ------------------------------------------------------------------------- */\n\ntypedef crypto_auth_hmacsha512_state crypto_auth_hmacsha512256_state;\n\nSODIUM_EXPORT\nsize_t crypto_auth_hmacsha512256_statebytes(void);\n\nSODIUM_EXPORT\nint crypto_auth_hmacsha512256_init(crypto_auth_hmacsha512256_state *state,\n                                   const unsigned char *key,\n                                   size_t keylen) __attribute__ ((nonnull));\n\nSODIUM_EXPORT\nint crypto_auth_hmacsha512256_update(crypto_auth_hmacsha512256_state *state,\n                                     const unsigned char *in,\n                                     unsigned long long inlen) __attribute__ ((nonnull(1)));\n\nSODIUM_EXPORT\nint crypto_auth_hmacsha512256_final(crypto_auth_hmacsha512256_state *state,\n                                    unsigned char *out) __attribute__ ((nonnull));\n\nSODIUM_EXPORT\nvoid crypto_auth_hmacsha512256_keygen(unsigned char k[crypto_auth_hmacsha512256_KEYBYTES])\n            __attribute__ ((nonnull));\n\n#ifdef __cplusplus\n}\n#endif\n\n#endif\n"
  },
  {
    "path": "src/libsodium/include/sodium/crypto_box.h",
    "content": "#ifndef crypto_box_H\n#define crypto_box_H\n\n/*\n * THREAD SAFETY: crypto_box_keypair() is thread-safe,\n * provided that sodium_init() was called before.\n *\n * Other functions are always thread-safe.\n */\n\n#include <stddef.h>\n\n#include \"crypto_box_curve25519xsalsa20poly1305.h\"\n#include \"export.h\"\n\n#ifdef __cplusplus\n# ifdef __GNUC__\n#  pragma GCC diagnostic ignored \"-Wlong-long\"\n# endif\nextern \"C\" {\n#endif\n\n#define crypto_box_SEEDBYTES crypto_box_curve25519xsalsa20poly1305_SEEDBYTES\nSODIUM_EXPORT\nsize_t  crypto_box_seedbytes(void);\n\n#define crypto_box_PUBLICKEYBYTES crypto_box_curve25519xsalsa20poly1305_PUBLICKEYBYTES\nSODIUM_EXPORT\nsize_t  crypto_box_publickeybytes(void);\n\n#define crypto_box_SECRETKEYBYTES crypto_box_curve25519xsalsa20poly1305_SECRETKEYBYTES\nSODIUM_EXPORT\nsize_t  crypto_box_secretkeybytes(void);\n\n#define crypto_box_NONCEBYTES crypto_box_curve25519xsalsa20poly1305_NONCEBYTES\nSODIUM_EXPORT\nsize_t  crypto_box_noncebytes(void);\n\n#define crypto_box_MACBYTES crypto_box_curve25519xsalsa20poly1305_MACBYTES\nSODIUM_EXPORT\nsize_t  crypto_box_macbytes(void);\n\n#define crypto_box_MESSAGEBYTES_MAX crypto_box_curve25519xsalsa20poly1305_MESSAGEBYTES_MAX\nSODIUM_EXPORT\nsize_t  crypto_box_messagebytes_max(void);\n\n#define crypto_box_PRIMITIVE \"curve25519xsalsa20poly1305\"\nSODIUM_EXPORT\nconst char *crypto_box_primitive(void);\n\nSODIUM_EXPORT\nint crypto_box_seed_keypair(unsigned char *pk, unsigned char *sk,\n                            const unsigned char *seed)\n            __attribute__ ((nonnull));\n\nSODIUM_EXPORT\nint crypto_box_keypair(unsigned char *pk, unsigned char *sk)\n            __attribute__ ((nonnull));\n\nSODIUM_EXPORT\nint crypto_box_easy(unsigned char *c, const unsigned char *m,\n                    unsigned long long mlen, const unsigned char *n,\n                    const unsigned char *pk, const unsigned char *sk)\n            __attribute__ ((warn_unused_result)) __attribute__ ((nonnull(1, 4, 5, 6)));\n\nSODIUM_EXPORT\nint crypto_box_open_easy(unsigned char *m, const unsigned char *c,\n                         unsigned long long clen, const unsigned char *n,\n                         const unsigned char *pk, const unsigned char *sk)\n            __attribute__ ((warn_unused_result)) __attribute__ ((nonnull(2, 4, 5, 6)));\n\nSODIUM_EXPORT\nint crypto_box_detached(unsigned char *c, unsigned char *mac,\n                        const unsigned char *m, unsigned long long mlen,\n                        const unsigned char *n, const unsigned char *pk,\n                        const unsigned char *sk)\n            __attribute__ ((warn_unused_result)) __attribute__ ((nonnull(1, 2, 5, 6, 7)));\n\nSODIUM_EXPORT\nint crypto_box_open_detached(unsigned char *m, const unsigned char *c,\n                             const unsigned char *mac,\n                             unsigned long long clen,\n                             const unsigned char *n,\n                             const unsigned char *pk,\n                             const unsigned char *sk)\n            __attribute__ ((warn_unused_result)) __attribute__ ((nonnull(2, 3, 5, 6, 7)));\n\n/* -- Precomputation interface -- */\n\n#define crypto_box_BEFORENMBYTES crypto_box_curve25519xsalsa20poly1305_BEFORENMBYTES\nSODIUM_EXPORT\nsize_t  crypto_box_beforenmbytes(void);\n\nSODIUM_EXPORT\nint crypto_box_beforenm(unsigned char *k, const unsigned char *pk,\n                        const unsigned char *sk)\n            __attribute__ ((warn_unused_result)) __attribute__ ((nonnull));\n\nSODIUM_EXPORT\nint crypto_box_easy_afternm(unsigned char *c, const unsigned char *m,\n                            unsigned long long mlen, const unsigned char *n,\n                            const unsigned char *k) __attribute__ ((nonnull(1, 4, 5)));\n\nSODIUM_EXPORT\nint crypto_box_open_easy_afternm(unsigned char *m, const unsigned char *c,\n                                 unsigned long long clen, const unsigned char *n,\n                                 const unsigned char *k)\n            __attribute__ ((warn_unused_result)) __attribute__ ((nonnull(2, 4, 5)));\n\nSODIUM_EXPORT\nint crypto_box_detached_afternm(unsigned char *c, unsigned char *mac,\n                                const unsigned char *m, unsigned long long mlen,\n                                const unsigned char *n, const unsigned char *k)\n            __attribute__ ((nonnull(1, 2, 5, 6)));\n\nSODIUM_EXPORT\nint crypto_box_open_detached_afternm(unsigned char *m, const unsigned char *c,\n                                     const unsigned char *mac,\n                                     unsigned long long clen, const unsigned char *n,\n                                     const unsigned char *k)\n            __attribute__ ((warn_unused_result)) __attribute__ ((nonnull(2, 3, 5, 6)));\n\n/* -- Ephemeral SK interface -- */\n\n#define crypto_box_SEALBYTES (crypto_box_PUBLICKEYBYTES + crypto_box_MACBYTES)\nSODIUM_EXPORT\nsize_t crypto_box_sealbytes(void);\n\nSODIUM_EXPORT\nint crypto_box_seal(unsigned char *c, const unsigned char *m,\n                    unsigned long long mlen, const unsigned char *pk)\n            __attribute__ ((nonnull(1, 4)));\n\nSODIUM_EXPORT\nint crypto_box_seal_open(unsigned char *m, const unsigned char *c,\n                         unsigned long long clen,\n                         const unsigned char *pk, const unsigned char *sk)\n            __attribute__ ((warn_unused_result)) __attribute__ ((nonnull(2, 4, 5)));\n\n/* -- NaCl compatibility interface ; Requires padding -- */\n\n#define crypto_box_ZEROBYTES crypto_box_curve25519xsalsa20poly1305_ZEROBYTES\nSODIUM_EXPORT\nsize_t  crypto_box_zerobytes(void) __attribute__ ((deprecated));\n\n#define crypto_box_BOXZEROBYTES crypto_box_curve25519xsalsa20poly1305_BOXZEROBYTES\nSODIUM_EXPORT\nsize_t  crypto_box_boxzerobytes(void) __attribute__ ((deprecated));\n\nSODIUM_EXPORT\nint crypto_box(unsigned char *c, const unsigned char *m,\n               unsigned long long mlen, const unsigned char *n,\n               const unsigned char *pk, const unsigned char *sk)\n            __attribute__ ((deprecated)) __attribute__ ((warn_unused_result)) __attribute__ ((nonnull(1, 4, 5, 6)));\n\nSODIUM_EXPORT\nint crypto_box_open(unsigned char *m, const unsigned char *c,\n                    unsigned long long clen, const unsigned char *n,\n                    const unsigned char *pk, const unsigned char *sk)\n            __attribute__ ((deprecated)) __attribute__ ((warn_unused_result)) __attribute__ ((nonnull(2, 4, 5, 6)));\n\nSODIUM_EXPORT\nint crypto_box_afternm(unsigned char *c, const unsigned char *m,\n                       unsigned long long mlen, const unsigned char *n,\n                       const unsigned char *k) __attribute__ ((deprecated)) __attribute__ ((nonnull(1, 4, 5)));\n\nSODIUM_EXPORT\nint crypto_box_open_afternm(unsigned char *m, const unsigned char *c,\n                            unsigned long long clen, const unsigned char *n,\n                            const unsigned char *k)\n            __attribute__ ((warn_unused_result)) __attribute__ ((deprecated)) __attribute__ ((nonnull(2, 4, 5)));\n\n#ifdef __cplusplus\n}\n#endif\n\n#endif\n"
  },
  {
    "path": "src/libsodium/include/sodium/crypto_box_curve25519xchacha20poly1305.h",
    "content": "\n#ifndef crypto_box_curve25519xchacha20poly1305_H\n#define crypto_box_curve25519xchacha20poly1305_H\n\n#include <stddef.h>\n#include \"crypto_stream_xchacha20.h\"\n#include \"export.h\"\n\n#ifdef __cplusplus\n# ifdef __GNUC__\n#  pragma GCC diagnostic ignored \"-Wlong-long\"\n# endif\nextern \"C\" {\n#endif\n\n#define crypto_box_curve25519xchacha20poly1305_SEEDBYTES 32U\nSODIUM_EXPORT\nsize_t crypto_box_curve25519xchacha20poly1305_seedbytes(void);\n\n#define crypto_box_curve25519xchacha20poly1305_PUBLICKEYBYTES 32U\nSODIUM_EXPORT\nsize_t crypto_box_curve25519xchacha20poly1305_publickeybytes(void);\n\n#define crypto_box_curve25519xchacha20poly1305_SECRETKEYBYTES 32U\nSODIUM_EXPORT\nsize_t crypto_box_curve25519xchacha20poly1305_secretkeybytes(void);\n\n#define crypto_box_curve25519xchacha20poly1305_BEFORENMBYTES 32U\nSODIUM_EXPORT\nsize_t crypto_box_curve25519xchacha20poly1305_beforenmbytes(void);\n\n#define crypto_box_curve25519xchacha20poly1305_NONCEBYTES 24U\nSODIUM_EXPORT\nsize_t crypto_box_curve25519xchacha20poly1305_noncebytes(void);\n\n#define crypto_box_curve25519xchacha20poly1305_MACBYTES 16U\nSODIUM_EXPORT\nsize_t crypto_box_curve25519xchacha20poly1305_macbytes(void);\n\n#define crypto_box_curve25519xchacha20poly1305_MESSAGEBYTES_MAX \\\n    (crypto_stream_xchacha20_MESSAGEBYTES_MAX - crypto_box_curve25519xchacha20poly1305_MACBYTES)\nSODIUM_EXPORT\nsize_t crypto_box_curve25519xchacha20poly1305_messagebytes_max(void);\n\nSODIUM_EXPORT\nint crypto_box_curve25519xchacha20poly1305_seed_keypair(unsigned char *pk,\n                                                        unsigned char *sk,\n                                                        const unsigned char *seed)\n            __attribute__ ((nonnull));\n\nSODIUM_EXPORT\nint crypto_box_curve25519xchacha20poly1305_keypair(unsigned char *pk,\n                                                   unsigned char *sk)\n            __attribute__ ((nonnull));\n\nSODIUM_EXPORT\nint crypto_box_curve25519xchacha20poly1305_easy(unsigned char *c,\n                                                const unsigned char *m,\n                                                unsigned long long mlen,\n                                                const unsigned char *n,\n                                                const unsigned char *pk,\n                                                const unsigned char *sk)\n            __attribute__ ((warn_unused_result)) __attribute__ ((nonnull(1, 4, 5, 6)));\n\nSODIUM_EXPORT\nint crypto_box_curve25519xchacha20poly1305_open_easy(unsigned char *m,\n                                                     const unsigned char *c,\n                                                     unsigned long long clen,\n                                                     const unsigned char *n,\n                                                     const unsigned char *pk,\n                                                     const unsigned char *sk)\n            __attribute__ ((warn_unused_result)) __attribute__ ((nonnull(2, 4, 5, 6)));\n\nSODIUM_EXPORT\nint crypto_box_curve25519xchacha20poly1305_detached(unsigned char *c,\n                                                    unsigned char *mac,\n                                                    const unsigned char *m,\n                                                    unsigned long long mlen,\n                                                    const unsigned char *n,\n                                                    const unsigned char *pk,\n                                                    const unsigned char *sk)\n            __attribute__ ((warn_unused_result)) __attribute__ ((nonnull(1, 2, 5, 6, 7)));\n\nSODIUM_EXPORT\nint crypto_box_curve25519xchacha20poly1305_open_detached(unsigned char *m,\n                                                         const unsigned char *c,\n                                                         const unsigned char *mac,\n                                                         unsigned long long clen,\n                                                         const unsigned char *n,\n                                                         const unsigned char *pk,\n                                                         const unsigned char *sk)\n            __attribute__ ((warn_unused_result)) __attribute__ ((nonnull(2, 3, 5, 6, 7)));\n\n/* -- Precomputation interface -- */\n\nSODIUM_EXPORT\nint crypto_box_curve25519xchacha20poly1305_beforenm(unsigned char *k,\n                                                    const unsigned char *pk,\n                                                    const unsigned char *sk)\n            __attribute__ ((warn_unused_result)) __attribute__ ((nonnull));\n\nSODIUM_EXPORT\nint crypto_box_curve25519xchacha20poly1305_easy_afternm(unsigned char *c,\n                                                        const unsigned char *m,\n                                                        unsigned long long mlen,\n                                                        const unsigned char *n,\n                                                        const unsigned char *k)\n            __attribute__ ((nonnull(1, 4, 5)));\n\nSODIUM_EXPORT\nint crypto_box_curve25519xchacha20poly1305_open_easy_afternm(unsigned char *m,\n                                                             const unsigned char *c,\n                                                             unsigned long long clen,\n                                                             const unsigned char *n,\n                                                             const unsigned char *k)\n            __attribute__ ((warn_unused_result)) __attribute__ ((nonnull(2, 4, 5)));\n\nSODIUM_EXPORT\nint crypto_box_curve25519xchacha20poly1305_detached_afternm(unsigned char *c,\n                                                            unsigned char *mac,\n                                                            const unsigned char *m,\n                                                            unsigned long long mlen,\n                                                            const unsigned char *n,\n                                                            const unsigned char *k)\n            __attribute__ ((nonnull(1, 2, 5, 6)));\n\nSODIUM_EXPORT\nint crypto_box_curve25519xchacha20poly1305_open_detached_afternm(unsigned char *m,\n                                                                 const unsigned char *c,\n                                                                 const unsigned char *mac,\n                                                                 unsigned long long clen,\n                                                                 const unsigned char *n,\n                                                                 const unsigned char *k)\n            __attribute__ ((warn_unused_result)) __attribute__ ((nonnull(2, 3, 5, 6)));\n\n/* -- Ephemeral SK interface -- */\n\n#define crypto_box_curve25519xchacha20poly1305_SEALBYTES \\\n    (crypto_box_curve25519xchacha20poly1305_PUBLICKEYBYTES + \\\n     crypto_box_curve25519xchacha20poly1305_MACBYTES)\n\nSODIUM_EXPORT\nsize_t crypto_box_curve25519xchacha20poly1305_sealbytes(void);\n\nSODIUM_EXPORT\nint crypto_box_curve25519xchacha20poly1305_seal(unsigned char *c,\n                                                const unsigned char *m,\n                                                unsigned long long mlen,\n                                                const unsigned char *pk)\n            __attribute__ ((nonnull(1, 4)));\n\nSODIUM_EXPORT\nint crypto_box_curve25519xchacha20poly1305_seal_open(unsigned char *m,\n                                                     const unsigned char *c,\n                                                     unsigned long long clen,\n                                                     const unsigned char *pk,\n                                                     const unsigned char *sk)\n            __attribute__ ((warn_unused_result)) __attribute__ ((nonnull(2, 4, 5)));\n\n#ifdef __cplusplus\n}\n#endif\n\n#endif\n"
  },
  {
    "path": "src/libsodium/include/sodium/crypto_box_curve25519xsalsa20poly1305.h",
    "content": "#ifndef crypto_box_curve25519xsalsa20poly1305_H\n#define crypto_box_curve25519xsalsa20poly1305_H\n\n#include <stddef.h>\n#include \"crypto_stream_xsalsa20.h\"\n#include \"export.h\"\n\n#ifdef __cplusplus\n# ifdef __GNUC__\n#  pragma GCC diagnostic ignored \"-Wlong-long\"\n# endif\nextern \"C\" {\n#endif\n\n#define crypto_box_curve25519xsalsa20poly1305_SEEDBYTES 32U\nSODIUM_EXPORT\nsize_t crypto_box_curve25519xsalsa20poly1305_seedbytes(void);\n\n#define crypto_box_curve25519xsalsa20poly1305_PUBLICKEYBYTES 32U\nSODIUM_EXPORT\nsize_t crypto_box_curve25519xsalsa20poly1305_publickeybytes(void);\n\n#define crypto_box_curve25519xsalsa20poly1305_SECRETKEYBYTES 32U\nSODIUM_EXPORT\nsize_t crypto_box_curve25519xsalsa20poly1305_secretkeybytes(void);\n\n#define crypto_box_curve25519xsalsa20poly1305_BEFORENMBYTES 32U\nSODIUM_EXPORT\nsize_t crypto_box_curve25519xsalsa20poly1305_beforenmbytes(void);\n\n#define crypto_box_curve25519xsalsa20poly1305_NONCEBYTES 24U\nSODIUM_EXPORT\nsize_t crypto_box_curve25519xsalsa20poly1305_noncebytes(void);\n\n#define crypto_box_curve25519xsalsa20poly1305_MACBYTES 16U\nSODIUM_EXPORT\nsize_t crypto_box_curve25519xsalsa20poly1305_macbytes(void);\n\n/* Only for the libsodium API - The NaCl compatibility API would require BOXZEROBYTES extra bytes */\n#define crypto_box_curve25519xsalsa20poly1305_MESSAGEBYTES_MAX \\\n    (crypto_stream_xsalsa20_MESSAGEBYTES_MAX - crypto_box_curve25519xsalsa20poly1305_MACBYTES)\nSODIUM_EXPORT\nsize_t crypto_box_curve25519xsalsa20poly1305_messagebytes_max(void);\n\nSODIUM_EXPORT\nint crypto_box_curve25519xsalsa20poly1305_seed_keypair(unsigned char *pk,\n                                                       unsigned char *sk,\n                                                       const unsigned char *seed)\n            __attribute__ ((nonnull));\n\nSODIUM_EXPORT\nint crypto_box_curve25519xsalsa20poly1305_keypair(unsigned char *pk,\n                                                  unsigned char *sk)\n            __attribute__ ((nonnull));\n\nSODIUM_EXPORT\nint crypto_box_curve25519xsalsa20poly1305_beforenm(unsigned char *k,\n                                                   const unsigned char *pk,\n                                                   const unsigned char *sk)\n            __attribute__ ((warn_unused_result)) __attribute__ ((nonnull));\n\n/* -- NaCl compatibility interface ; Requires padding -- */\n\n#define crypto_box_curve25519xsalsa20poly1305_BOXZEROBYTES 16U\nSODIUM_EXPORT\nsize_t crypto_box_curve25519xsalsa20poly1305_boxzerobytes(void);\n\n#define crypto_box_curve25519xsalsa20poly1305_ZEROBYTES \\\n    (crypto_box_curve25519xsalsa20poly1305_BOXZEROBYTES + \\\n     crypto_box_curve25519xsalsa20poly1305_MACBYTES)\nSODIUM_EXPORT\nsize_t crypto_box_curve25519xsalsa20poly1305_zerobytes(void)\n            __attribute__ ((deprecated));\n\nSODIUM_EXPORT\nint crypto_box_curve25519xsalsa20poly1305(unsigned char *c,\n                                          const unsigned char *m,\n                                          unsigned long long mlen,\n                                          const unsigned char *n,\n                                          const unsigned char *pk,\n                                          const unsigned char *sk)\n            __attribute__ ((deprecated)) __attribute__ ((warn_unused_result)) __attribute__ ((nonnull(1, 4, 5, 6)));\n\nSODIUM_EXPORT\nint crypto_box_curve25519xsalsa20poly1305_open(unsigned char *m,\n                                               const unsigned char *c,\n                                               unsigned long long clen,\n                                               const unsigned char *n,\n                                               const unsigned char *pk,\n                                               const unsigned char *sk)\n            __attribute__ ((deprecated)) __attribute__ ((warn_unused_result)) __attribute__ ((nonnull(2, 4, 5, 6)));\n\nSODIUM_EXPORT\nint crypto_box_curve25519xsalsa20poly1305_afternm(unsigned char *c,\n                                                  const unsigned char *m,\n                                                  unsigned long long mlen,\n                                                  const unsigned char *n,\n                                                  const unsigned char *k)\n            __attribute__ ((deprecated)) __attribute__ ((nonnull(1, 4, 5)));\n\nSODIUM_EXPORT\nint crypto_box_curve25519xsalsa20poly1305_open_afternm(unsigned char *m,\n                                                       const unsigned char *c,\n                                                       unsigned long long clen,\n                                                       const unsigned char *n,\n                                                       const unsigned char *k)\n            __attribute__ ((deprecated)) __attribute__ ((warn_unused_result)) __attribute__ ((nonnull(2, 4, 5)));\n\n#ifdef __cplusplus\n}\n#endif\n\n#endif\n"
  },
  {
    "path": "src/libsodium/include/sodium/crypto_core_ed25519.h",
    "content": "#ifndef crypto_core_ed25519_H\n#define crypto_core_ed25519_H\n\n#include <stddef.h>\n#include \"export.h\"\n\n#ifdef __cplusplus\nextern \"C\" {\n#endif\n\n#define crypto_core_ed25519_BYTES 32\nSODIUM_EXPORT\nsize_t crypto_core_ed25519_bytes(void);\n\n#define crypto_core_ed25519_UNIFORMBYTES 32\nSODIUM_EXPORT\nsize_t crypto_core_ed25519_uniformbytes(void);\n\n#define crypto_core_ed25519_HASHBYTES 64\nSODIUM_EXPORT\nsize_t crypto_core_ed25519_hashbytes(void);\n\n#define crypto_core_ed25519_SCALARBYTES 32\nSODIUM_EXPORT\nsize_t crypto_core_ed25519_scalarbytes(void);\n\n#define crypto_core_ed25519_NONREDUCEDSCALARBYTES 64\nSODIUM_EXPORT\nsize_t crypto_core_ed25519_nonreducedscalarbytes(void);\n\n#define crypto_core_ed25519_H2CSHA256 1\n#define crypto_core_ed25519_H2CSHA512 2\n\nSODIUM_EXPORT\nint crypto_core_ed25519_is_valid_point(const unsigned char *p)\n            __attribute__ ((nonnull));\n\nSODIUM_EXPORT\nint crypto_core_ed25519_add(unsigned char *r,\n                            const unsigned char *p, const unsigned char *q)\n            __attribute__ ((nonnull));\n\nSODIUM_EXPORT\nint crypto_core_ed25519_sub(unsigned char *r,\n                            const unsigned char *p, const unsigned char *q)\n            __attribute__ ((nonnull));\n\nSODIUM_EXPORT\nint crypto_core_ed25519_from_string_nu(unsigned char p[crypto_core_ed25519_BYTES],\n                                       const unsigned char *ctx, size_t ctx_len,\n                                       const unsigned char *msg, size_t msg_len,\n                                       int hash_alg)\n            __attribute__ ((nonnull(1)));\n\nSODIUM_EXPORT\nint crypto_core_ed25519_from_string(unsigned char p[crypto_core_ed25519_BYTES],\n                                    const unsigned char *ctx, size_t ctx_len,\n                                    const unsigned char *msg, size_t msg_len,\n                                    int hash_alg)\n            __attribute__ ((nonnull(1)));\n\nSODIUM_EXPORT\nvoid crypto_core_ed25519_random(unsigned char *p)\n            __attribute__ ((nonnull));\n\nSODIUM_EXPORT\nvoid crypto_core_ed25519_scalar_random(unsigned char *r)\n            __attribute__ ((nonnull));\n\nSODIUM_EXPORT\nint crypto_core_ed25519_scalar_invert(unsigned char *recip, const unsigned char *s)\n            __attribute__ ((nonnull));\n\nSODIUM_EXPORT\nvoid crypto_core_ed25519_scalar_negate(unsigned char *neg, const unsigned char *s)\n            __attribute__ ((nonnull));\n\nSODIUM_EXPORT\nvoid crypto_core_ed25519_scalar_complement(unsigned char *comp, const unsigned char *s)\n            __attribute__ ((nonnull));\n\nSODIUM_EXPORT\nvoid crypto_core_ed25519_scalar_add(unsigned char *z, const unsigned char *x,\n                                    const unsigned char *y)\n            __attribute__ ((nonnull));\n\nSODIUM_EXPORT\nvoid crypto_core_ed25519_scalar_sub(unsigned char *z, const unsigned char *x,\n                                    const unsigned char *y)\n            __attribute__ ((nonnull));\n\nSODIUM_EXPORT\nvoid crypto_core_ed25519_scalar_mul(unsigned char *z, const unsigned char *x,\n                                    const unsigned char *y)\n            __attribute__ ((nonnull));\n\n/*\n * The interval `s` is sampled from should be at least 317 bits to ensure almost\n * uniformity of `r` over `L`.\n */\nSODIUM_EXPORT\nvoid crypto_core_ed25519_scalar_reduce(unsigned char *r, const unsigned char *s)\n            __attribute__ ((nonnull));\n\nSODIUM_EXPORT\nint crypto_core_ed25519_scalar_from_string(unsigned char *s,\n                                           const unsigned char *ctx, size_t ctx_len,\n                                           const unsigned char *msg, size_t msg_len,\n                                           int hash_alg)\n            __attribute__ ((nonnull(1)));\n\nSODIUM_EXPORT\nint crypto_core_ed25519_scalar_is_canonical(const unsigned char *s)\n            __attribute__ ((nonnull));\n\n#ifdef __cplusplus\n}\n#endif\n\n#endif\n"
  },
  {
    "path": "src/libsodium/include/sodium/crypto_core_hchacha20.h",
    "content": "#ifndef crypto_core_hchacha20_H\n#define crypto_core_hchacha20_H\n\n#include <stddef.h>\n#include \"export.h\"\n\n#ifdef __cplusplus\nextern \"C\" {\n#endif\n\n#define crypto_core_hchacha20_OUTPUTBYTES 32U\nSODIUM_EXPORT\nsize_t crypto_core_hchacha20_outputbytes(void);\n\n#define crypto_core_hchacha20_INPUTBYTES 16U\nSODIUM_EXPORT\nsize_t crypto_core_hchacha20_inputbytes(void);\n\n#define crypto_core_hchacha20_KEYBYTES 32U\nSODIUM_EXPORT\nsize_t crypto_core_hchacha20_keybytes(void);\n\n#define crypto_core_hchacha20_CONSTBYTES 16U\nSODIUM_EXPORT\nsize_t crypto_core_hchacha20_constbytes(void);\n\nSODIUM_EXPORT\nint crypto_core_hchacha20(unsigned char *out, const unsigned char *in,\n                          const unsigned char *k, const unsigned char *c)\n            __attribute__ ((nonnull(1, 2, 3)));\n\n#ifdef __cplusplus\n}\n#endif\n\n#endif\n"
  },
  {
    "path": "src/libsodium/include/sodium/crypto_core_hsalsa20.h",
    "content": "#ifndef crypto_core_hsalsa20_H\n#define crypto_core_hsalsa20_H\n\n#include <stddef.h>\n#include \"export.h\"\n\n#ifdef __cplusplus\nextern \"C\" {\n#endif\n\n#define crypto_core_hsalsa20_OUTPUTBYTES 32U\nSODIUM_EXPORT\nsize_t crypto_core_hsalsa20_outputbytes(void);\n\n#define crypto_core_hsalsa20_INPUTBYTES 16U\nSODIUM_EXPORT\nsize_t crypto_core_hsalsa20_inputbytes(void);\n\n#define crypto_core_hsalsa20_KEYBYTES 32U\nSODIUM_EXPORT\nsize_t crypto_core_hsalsa20_keybytes(void);\n\n#define crypto_core_hsalsa20_CONSTBYTES 16U\nSODIUM_EXPORT\nsize_t crypto_core_hsalsa20_constbytes(void);\n\nSODIUM_EXPORT\nint crypto_core_hsalsa20(unsigned char *out, const unsigned char *in,\n                         const unsigned char *k, const unsigned char *c)\n            __attribute__ ((nonnull(1, 2, 3)));\n\n#ifdef __cplusplus\n}\n#endif\n\n#endif\n"
  },
  {
    "path": "src/libsodium/include/sodium/crypto_core_keccak1600.h",
    "content": "#ifndef crypto_core_keccak1600_H\n#define crypto_core_keccak1600_H\n\n#include <stddef.h>\n\n#include \"export.h\"\n\n#ifdef __cplusplus\n# ifdef __GNUC__\n#  pragma GCC diagnostic ignored \"-Wlong-long\"\n# endif\nextern \"C\" {\n#endif\n\n#ifdef __IBMC__\n# pragma pack(1)\n#elif defined(__SUNPRO_C) || defined(__SUNPRO_CC)\n# pragma pack(1)\n#else\n# pragma pack(push, 1)\n#endif\n\ntypedef struct CRYPTO_ALIGN(16) crypto_core_keccak1600_state {\n    unsigned char opaque[224];\n} crypto_core_keccak1600_state;\n\n#ifdef __IBMC__\n# pragma pack(pop)\n#elif defined(__SUNPRO_C) || defined(__SUNPRO_CC)\n# pragma pack()\n#else\n# pragma pack(pop)\n#endif\n\nSODIUM_EXPORT\nsize_t crypto_core_keccak1600_statebytes(void);\n\nSODIUM_EXPORT\nvoid crypto_core_keccak1600_init(crypto_core_keccak1600_state *state)\n            __attribute__ ((nonnull));\n\nSODIUM_EXPORT\nvoid crypto_core_keccak1600_xor_bytes(crypto_core_keccak1600_state *state,\n                                      const unsigned char *bytes,\n                                      size_t offset, size_t length)\n            __attribute__ ((nonnull));\n\nSODIUM_EXPORT\nvoid crypto_core_keccak1600_extract_bytes(const crypto_core_keccak1600_state *state,\n                                          unsigned char *bytes,\n                                          size_t offset, size_t length)\n            __attribute__ ((nonnull));\n\nSODIUM_EXPORT\nvoid crypto_core_keccak1600_permute_24(crypto_core_keccak1600_state *state)\n            __attribute__ ((nonnull));\n\nSODIUM_EXPORT\nvoid crypto_core_keccak1600_permute_12(crypto_core_keccak1600_state *state)\n            __attribute__ ((nonnull));\n\n#ifdef __cplusplus\n}\n#endif\n\n#endif\n"
  },
  {
    "path": "src/libsodium/include/sodium/crypto_core_ristretto255.h",
    "content": "#ifndef crypto_core_ristretto255_H\n#define crypto_core_ristretto255_H\n\n#include <stddef.h>\n#include \"export.h\"\n\n#ifdef __cplusplus\nextern \"C\" {\n#endif\n\n#define crypto_core_ristretto255_BYTES 32\nSODIUM_EXPORT\nsize_t crypto_core_ristretto255_bytes(void);\n\n#define crypto_core_ristretto255_HASHBYTES 64\nSODIUM_EXPORT\nsize_t crypto_core_ristretto255_hashbytes(void);\n\n#define crypto_core_ristretto255_SCALARBYTES 32\nSODIUM_EXPORT\nsize_t crypto_core_ristretto255_scalarbytes(void);\n\n#define crypto_core_ristretto255_NONREDUCEDSCALARBYTES 64\nSODIUM_EXPORT\nsize_t crypto_core_ristretto255_nonreducedscalarbytes(void);\n\n#define crypto_core_ristretto255_H2CSHA256 1\n#define crypto_core_ristretto255_H2CSHA512 2\n\nSODIUM_EXPORT\nint crypto_core_ristretto255_is_valid_point(const unsigned char *p)\n            __attribute__ ((nonnull));\n\nSODIUM_EXPORT\nint crypto_core_ristretto255_add(unsigned char *r,\n                                 const unsigned char *p, const unsigned char *q)\n            __attribute__ ((nonnull));\n\nSODIUM_EXPORT\nint crypto_core_ristretto255_sub(unsigned char *r,\n                                 const unsigned char *p, const unsigned char *q)\n            __attribute__ ((nonnull));\n\nSODIUM_EXPORT\nint crypto_core_ristretto255_from_hash(unsigned char *p,\n                                       const unsigned char *r)\n            __attribute__ ((nonnull));\n\nSODIUM_EXPORT\nint crypto_core_ristretto255_from_string(unsigned char p[crypto_core_ristretto255_BYTES],\n                                         const unsigned char *ctx, size_t ctx_len,\n                                         const unsigned char *msg, size_t msg_len,\n                                         int hash_alg)\n            __attribute__ ((nonnull(1)));\n\nSODIUM_EXPORT\nvoid crypto_core_ristretto255_random(unsigned char *p)\n            __attribute__ ((nonnull));\n\nSODIUM_EXPORT\nvoid crypto_core_ristretto255_scalar_random(unsigned char *r)\n            __attribute__ ((nonnull));\n\nSODIUM_EXPORT\nint crypto_core_ristretto255_scalar_invert(unsigned char *recip,\n                                           const unsigned char *s)\n            __attribute__ ((nonnull));\n\nSODIUM_EXPORT\nvoid crypto_core_ristretto255_scalar_negate(unsigned char *neg,\n                                            const unsigned char *s)\n            __attribute__ ((nonnull));\n\nSODIUM_EXPORT\nvoid crypto_core_ristretto255_scalar_complement(unsigned char *comp,\n                                                const unsigned char *s)\n            __attribute__ ((nonnull));\n\nSODIUM_EXPORT\nvoid crypto_core_ristretto255_scalar_add(unsigned char *z,\n                                         const unsigned char *x,\n                                         const unsigned char *y)\n            __attribute__ ((nonnull));\n\nSODIUM_EXPORT\nvoid crypto_core_ristretto255_scalar_sub(unsigned char *z,\n                                         const unsigned char *x,\n                                         const unsigned char *y)\n            __attribute__ ((nonnull));\n\nSODIUM_EXPORT\nvoid crypto_core_ristretto255_scalar_mul(unsigned char *z,\n                                         const unsigned char *x,\n                                         const unsigned char *y)\n            __attribute__ ((nonnull));\n\n/*\n * The interval `s` is sampled from should be at least 317 bits to ensure almost\n * uniformity of `r` over `L`.\n */\nSODIUM_EXPORT\nvoid crypto_core_ristretto255_scalar_reduce(unsigned char *r,\n                                            const unsigned char *s)\n            __attribute__ ((nonnull));\n\nSODIUM_EXPORT\nint crypto_core_ristretto255_scalar_from_string(unsigned char *s,\n                                                const unsigned char *ctx, size_t ctx_len,\n                                                const unsigned char *msg, size_t msg_len,\n                                                int hash_alg)\n            __attribute__ ((nonnull(1)));\n\nSODIUM_EXPORT\nint crypto_core_ristretto255_scalar_is_canonical(const unsigned char *s)\n            __attribute__ ((nonnull));\n\n#ifdef __cplusplus\n}\n#endif\n\n#endif\n"
  },
  {
    "path": "src/libsodium/include/sodium/crypto_core_salsa20.h",
    "content": "#ifndef crypto_core_salsa20_H\n#define crypto_core_salsa20_H\n\n#include <stddef.h>\n#include \"export.h\"\n\n#ifdef __cplusplus\nextern \"C\" {\n#endif\n\n#define crypto_core_salsa20_OUTPUTBYTES 64U\nSODIUM_EXPORT\nsize_t crypto_core_salsa20_outputbytes(void);\n\n#define crypto_core_salsa20_INPUTBYTES 16U\nSODIUM_EXPORT\nsize_t crypto_core_salsa20_inputbytes(void);\n\n#define crypto_core_salsa20_KEYBYTES 32U\nSODIUM_EXPORT\nsize_t crypto_core_salsa20_keybytes(void);\n\n#define crypto_core_salsa20_CONSTBYTES 16U\nSODIUM_EXPORT\nsize_t crypto_core_salsa20_constbytes(void);\n\nSODIUM_EXPORT\nint crypto_core_salsa20(unsigned char *out, const unsigned char *in,\n                        const unsigned char *k, const unsigned char *c)\n            __attribute__ ((nonnull(1, 2, 3)));\n\n#ifdef __cplusplus\n}\n#endif\n\n#endif\n"
  },
  {
    "path": "src/libsodium/include/sodium/crypto_core_salsa2012.h",
    "content": "#ifndef crypto_core_salsa2012_H\n#define crypto_core_salsa2012_H\n\n#include <stddef.h>\n#include \"export.h\"\n\n#ifdef __cplusplus\nextern \"C\" {\n#endif\n\n#define crypto_core_salsa2012_OUTPUTBYTES 64U\nSODIUM_EXPORT\nsize_t crypto_core_salsa2012_outputbytes(void);\n\n#define crypto_core_salsa2012_INPUTBYTES 16U\nSODIUM_EXPORT\nsize_t crypto_core_salsa2012_inputbytes(void);\n\n#define crypto_core_salsa2012_KEYBYTES 32U\nSODIUM_EXPORT\nsize_t crypto_core_salsa2012_keybytes(void);\n\n#define crypto_core_salsa2012_CONSTBYTES 16U\nSODIUM_EXPORT\nsize_t crypto_core_salsa2012_constbytes(void);\n\nSODIUM_EXPORT\nint crypto_core_salsa2012(unsigned char *out, const unsigned char *in,\n                          const unsigned char *k, const unsigned char *c)\n            __attribute__ ((nonnull(1, 2, 3)));\n\n#ifdef __cplusplus\n}\n#endif\n\n#endif\n"
  },
  {
    "path": "src/libsodium/include/sodium/crypto_core_salsa208.h",
    "content": "#ifndef crypto_core_salsa208_H\n#define crypto_core_salsa208_H\n\n#include <stddef.h>\n#include \"export.h\"\n\n#ifdef __cplusplus\nextern \"C\" {\n#endif\n\n#define crypto_core_salsa208_OUTPUTBYTES 64U\nSODIUM_EXPORT\nsize_t crypto_core_salsa208_outputbytes(void)\n            __attribute__ ((deprecated));\n\n#define crypto_core_salsa208_INPUTBYTES 16U\nSODIUM_EXPORT\nsize_t crypto_core_salsa208_inputbytes(void)\n            __attribute__ ((deprecated));\n\n#define crypto_core_salsa208_KEYBYTES 32U\nSODIUM_EXPORT\nsize_t crypto_core_salsa208_keybytes(void)\n            __attribute__ ((deprecated));\n\n#define crypto_core_salsa208_CONSTBYTES 16U\nSODIUM_EXPORT\nsize_t crypto_core_salsa208_constbytes(void)\n            __attribute__ ((deprecated));\n\nSODIUM_EXPORT\nint crypto_core_salsa208(unsigned char *out, const unsigned char *in,\n                         const unsigned char *k, const unsigned char *c)\n            __attribute__ ((nonnull(1, 2, 3)));\n\n#ifdef __cplusplus\n}\n#endif\n\n#endif\n"
  },
  {
    "path": "src/libsodium/include/sodium/crypto_generichash.h",
    "content": "#ifndef crypto_generichash_H\n#define crypto_generichash_H\n\n#include <stddef.h>\n\n#include \"crypto_generichash_blake2b.h\"\n#include \"export.h\"\n\n#ifdef __cplusplus\n# ifdef __GNUC__\n#  pragma GCC diagnostic ignored \"-Wlong-long\"\n# endif\nextern \"C\" {\n#endif\n\n#define crypto_generichash_BYTES_MIN crypto_generichash_blake2b_BYTES_MIN\nSODIUM_EXPORT\nsize_t  crypto_generichash_bytes_min(void);\n\n#define crypto_generichash_BYTES_MAX crypto_generichash_blake2b_BYTES_MAX\nSODIUM_EXPORT\nsize_t  crypto_generichash_bytes_max(void);\n\n#define crypto_generichash_BYTES crypto_generichash_blake2b_BYTES\nSODIUM_EXPORT\nsize_t  crypto_generichash_bytes(void);\n\n#define crypto_generichash_KEYBYTES_MIN crypto_generichash_blake2b_KEYBYTES_MIN\nSODIUM_EXPORT\nsize_t  crypto_generichash_keybytes_min(void);\n\n#define crypto_generichash_KEYBYTES_MAX crypto_generichash_blake2b_KEYBYTES_MAX\nSODIUM_EXPORT\nsize_t  crypto_generichash_keybytes_max(void);\n\n#define crypto_generichash_KEYBYTES crypto_generichash_blake2b_KEYBYTES\nSODIUM_EXPORT\nsize_t  crypto_generichash_keybytes(void);\n\n#define crypto_generichash_PRIMITIVE \"blake2b\"\nSODIUM_EXPORT\nconst char *crypto_generichash_primitive(void);\n\n/*\n * Important when writing bindings for other programming languages:\n * the state address should be 64-bytes aligned.\n */\ntypedef crypto_generichash_blake2b_state crypto_generichash_state;\n\nSODIUM_EXPORT\nsize_t  crypto_generichash_statebytes(void);\n\nSODIUM_EXPORT\nint crypto_generichash(unsigned char *out, size_t outlen,\n                       const unsigned char *in, unsigned long long inlen,\n                       const unsigned char *key, size_t keylen)\n            __attribute__ ((nonnull(1)));\n\nSODIUM_EXPORT\nint crypto_generichash_init(crypto_generichash_state *state,\n                            const unsigned char *key,\n                            const size_t keylen, const size_t outlen)\n            __attribute__ ((nonnull(1)));\n\nSODIUM_EXPORT\nint crypto_generichash_update(crypto_generichash_state *state,\n                              const unsigned char *in,\n                              unsigned long long inlen)\n            __attribute__ ((nonnull(1)));\n\nSODIUM_EXPORT\nint crypto_generichash_final(crypto_generichash_state *state,\n                             unsigned char *out, const size_t outlen)\n            __attribute__ ((nonnull));\n\nSODIUM_EXPORT\nvoid crypto_generichash_keygen(unsigned char k[crypto_generichash_KEYBYTES])\n            __attribute__ ((nonnull));\n\n#ifdef __cplusplus\n}\n#endif\n\n#endif\n"
  },
  {
    "path": "src/libsodium/include/sodium/crypto_generichash_blake2b.h",
    "content": "#ifndef crypto_generichash_blake2b_H\n#define crypto_generichash_blake2b_H\n\n#include <stddef.h>\n#include <stdint.h>\n#include <stdlib.h>\n\n#include \"export.h\"\n\n#ifdef __cplusplus\n# ifdef __GNUC__\n#  pragma GCC diagnostic ignored \"-Wlong-long\"\n# endif\nextern \"C\" {\n#endif\n\n#ifdef __IBMC__\n# pragma pack(1)\n#elif defined(__SUNPRO_C) || defined(__SUNPRO_CC)\n# pragma pack(1)\n#else\n# pragma pack(push, 1)\n#endif\n\ntypedef struct CRYPTO_ALIGN(64) crypto_generichash_blake2b_state {\n    unsigned char opaque[384];\n} crypto_generichash_blake2b_state;\n\n#ifdef __IBMC__\n# pragma pack(pop)\n#elif defined(__SUNPRO_C) || defined(__SUNPRO_CC)\n# pragma pack()\n#else\n# pragma pack(pop)\n#endif\n\n#define crypto_generichash_blake2b_BYTES_MIN     16U\nSODIUM_EXPORT\nsize_t crypto_generichash_blake2b_bytes_min(void);\n\n#define crypto_generichash_blake2b_BYTES_MAX     64U\nSODIUM_EXPORT\nsize_t crypto_generichash_blake2b_bytes_max(void);\n\n#define crypto_generichash_blake2b_BYTES         32U\nSODIUM_EXPORT\nsize_t crypto_generichash_blake2b_bytes(void);\n\n#define crypto_generichash_blake2b_KEYBYTES_MIN  16U\nSODIUM_EXPORT\nsize_t crypto_generichash_blake2b_keybytes_min(void);\n\n#define crypto_generichash_blake2b_KEYBYTES_MAX  64U\nSODIUM_EXPORT\nsize_t crypto_generichash_blake2b_keybytes_max(void);\n\n#define crypto_generichash_blake2b_KEYBYTES      32U\nSODIUM_EXPORT\nsize_t crypto_generichash_blake2b_keybytes(void);\n\n#define crypto_generichash_blake2b_SALTBYTES     16U\nSODIUM_EXPORT\nsize_t crypto_generichash_blake2b_saltbytes(void);\n\n#define crypto_generichash_blake2b_PERSONALBYTES 16U\nSODIUM_EXPORT\nsize_t crypto_generichash_blake2b_personalbytes(void);\n\nSODIUM_EXPORT\nsize_t crypto_generichash_blake2b_statebytes(void);\n\nSODIUM_EXPORT\nint crypto_generichash_blake2b(unsigned char *out, size_t outlen,\n                               const unsigned char *in,\n                               unsigned long long inlen,\n                               const unsigned char *key, size_t keylen)\n            __attribute__ ((nonnull(1)));\n\nSODIUM_EXPORT\nint crypto_generichash_blake2b_salt_personal(unsigned char *out, size_t outlen,\n                                             const unsigned char *in,\n                                             unsigned long long inlen,\n                                             const unsigned char *key,\n                                             size_t keylen,\n                                             const unsigned char *salt,\n                                             const unsigned char *personal)\n            __attribute__ ((nonnull(1)));\n\nSODIUM_EXPORT\nint crypto_generichash_blake2b_init(crypto_generichash_blake2b_state *state,\n                                    const unsigned char *key,\n                                    const size_t keylen, const size_t outlen)\n            __attribute__ ((nonnull(1)));\n\nSODIUM_EXPORT\nint crypto_generichash_blake2b_init_salt_personal(crypto_generichash_blake2b_state *state,\n                                                  const unsigned char *key,\n                                                  const size_t keylen, const size_t outlen,\n                                                  const unsigned char *salt,\n                                                  const unsigned char *personal)\n            __attribute__ ((nonnull(1)));\n\nSODIUM_EXPORT\nint crypto_generichash_blake2b_update(crypto_generichash_blake2b_state *state,\n                                      const unsigned char *in,\n                                      unsigned long long inlen)\n            __attribute__ ((nonnull(1)));\n\nSODIUM_EXPORT\nint crypto_generichash_blake2b_final(crypto_generichash_blake2b_state *state,\n                                     unsigned char *out,\n                                     const size_t outlen) __attribute__ ((nonnull));\n\nSODIUM_EXPORT\nvoid crypto_generichash_blake2b_keygen(unsigned char k[crypto_generichash_blake2b_KEYBYTES])\n            __attribute__ ((nonnull));\n\n#ifdef __cplusplus\n}\n#endif\n\n#endif\n"
  },
  {
    "path": "src/libsodium/include/sodium/crypto_hash.h",
    "content": "#ifndef crypto_hash_H\n#define crypto_hash_H\n\n/*\n * WARNING: Unless you absolutely need to use SHA512 for interoperability,\n * purposes, you might want to consider crypto_generichash() instead.\n * Unlike SHA512, crypto_generichash() is not vulnerable to length\n * extension attacks.\n */\n\n#include <stddef.h>\n\n#include \"crypto_hash_sha512.h\"\n#include \"export.h\"\n\n#ifdef __cplusplus\n# ifdef __GNUC__\n#  pragma GCC diagnostic ignored \"-Wlong-long\"\n# endif\nextern \"C\" {\n#endif\n\n#define crypto_hash_BYTES crypto_hash_sha512_BYTES\nSODIUM_EXPORT\nsize_t crypto_hash_bytes(void);\n\nSODIUM_EXPORT\nint crypto_hash(unsigned char *out, const unsigned char *in,\n                unsigned long long inlen) __attribute__ ((nonnull(1)));\n\n#define crypto_hash_PRIMITIVE \"sha512\"\nSODIUM_EXPORT\nconst char *crypto_hash_primitive(void)\n            __attribute__ ((warn_unused_result));\n\n#ifdef __cplusplus\n}\n#endif\n\n#endif\n"
  },
  {
    "path": "src/libsodium/include/sodium/crypto_hash_sha256.h",
    "content": "#ifndef crypto_hash_sha256_H\n#define crypto_hash_sha256_H\n\n/*\n * WARNING: Unless you absolutely need to use SHA256 for interoperability\n * purposes, you might want to consider crypto_generichash() instead.\n * Unlike SHA256, crypto_generichash() is not vulnerable to length\n * extension attacks.\n */\n\n#include <stddef.h>\n#include <stdint.h>\n#include <stdlib.h>\n\n#include \"export.h\"\n\n#ifdef __cplusplus\n# ifdef __GNUC__\n#  pragma GCC diagnostic ignored \"-Wlong-long\"\n# endif\nextern \"C\" {\n#endif\n\ntypedef struct crypto_hash_sha256_state {\n    uint32_t state[8];\n    uint64_t count;\n    uint8_t  buf[64];\n} crypto_hash_sha256_state;\n\nSODIUM_EXPORT\nsize_t crypto_hash_sha256_statebytes(void);\n\n#define crypto_hash_sha256_BYTES 32U\nSODIUM_EXPORT\nsize_t crypto_hash_sha256_bytes(void);\n\nSODIUM_EXPORT\nint crypto_hash_sha256(unsigned char *out, const unsigned char *in,\n                       unsigned long long inlen) __attribute__ ((nonnull(1)));\n\nSODIUM_EXPORT\nint crypto_hash_sha256_init(crypto_hash_sha256_state *state)\n            __attribute__ ((nonnull));\n\nSODIUM_EXPORT\nint crypto_hash_sha256_update(crypto_hash_sha256_state *state,\n                              const unsigned char *in,\n                              unsigned long long inlen)\n            __attribute__ ((nonnull(1)));\n\nSODIUM_EXPORT\nint crypto_hash_sha256_final(crypto_hash_sha256_state *state,\n                             unsigned char *out)\n            __attribute__ ((nonnull));\n\n#ifdef __cplusplus\n}\n#endif\n\n#endif\n"
  },
  {
    "path": "src/libsodium/include/sodium/crypto_hash_sha3.h",
    "content": "#ifndef crypto_hash_sha3_H\n#define crypto_hash_sha3_H\n\n#include <stddef.h>\n#include <stdint.h>\n\n#include \"export.h\"\n\n#ifdef __cplusplus\n# ifdef __GNUC__\n#  pragma GCC diagnostic ignored \"-Wlong-long\"\n# endif\nextern \"C\" {\n#endif\n\ntypedef struct CRYPTO_ALIGN(16) crypto_hash_sha3256_state {\n    unsigned char opaque[256];\n} crypto_hash_sha3256_state;\n\nSODIUM_EXPORT\nsize_t crypto_hash_sha3256_statebytes(void);\n\n#define crypto_hash_sha3256_BYTES 32U\nSODIUM_EXPORT\nsize_t crypto_hash_sha3256_bytes(void);\n\nSODIUM_EXPORT\nint crypto_hash_sha3256(unsigned char *out, const unsigned char *in,\n                        unsigned long long inlen) __attribute__ ((nonnull(1)));\n\nSODIUM_EXPORT\nint crypto_hash_sha3256_init(crypto_hash_sha3256_state *state)\n            __attribute__ ((nonnull));\n\nSODIUM_EXPORT\nint crypto_hash_sha3256_update(crypto_hash_sha3256_state *state,\n                               const unsigned char *in,\n                               unsigned long long inlen)\n            __attribute__ ((nonnull(1)));\n\nSODIUM_EXPORT\nint crypto_hash_sha3256_final(crypto_hash_sha3256_state *state,\n                              unsigned char *out)\n            __attribute__ ((nonnull));\n\ntypedef struct CRYPTO_ALIGN(16) crypto_hash_sha3512_state {\n    unsigned char opaque[256];\n} crypto_hash_sha3512_state;\n\nSODIUM_EXPORT\nsize_t crypto_hash_sha3512_statebytes(void);\n\n#define crypto_hash_sha3512_BYTES 64U\nSODIUM_EXPORT\nsize_t crypto_hash_sha3512_bytes(void);\n\nSODIUM_EXPORT\nint crypto_hash_sha3512(unsigned char *out, const unsigned char *in,\n                        unsigned long long inlen) __attribute__ ((nonnull(1)));\n\nSODIUM_EXPORT\nint crypto_hash_sha3512_init(crypto_hash_sha3512_state *state)\n            __attribute__ ((nonnull));\n\nSODIUM_EXPORT\nint crypto_hash_sha3512_update(crypto_hash_sha3512_state *state,\n                               const unsigned char *in,\n                               unsigned long long inlen)\n            __attribute__ ((nonnull(1)));\n\nSODIUM_EXPORT\nint crypto_hash_sha3512_final(crypto_hash_sha3512_state *state,\n                              unsigned char *out)\n            __attribute__ ((nonnull));\n\n#ifdef __cplusplus\n}\n#endif\n\n#endif\n"
  },
  {
    "path": "src/libsodium/include/sodium/crypto_hash_sha512.h",
    "content": "#ifndef crypto_hash_sha512_H\n#define crypto_hash_sha512_H\n\n/*\n * WARNING: Unless you absolutely need to use SHA512 for interoperability\n * purposes, you might want to consider crypto_generichash() instead.\n * Unlike SHA512, crypto_generichash() is not vulnerable to length\n * extension attacks.\n */\n\n#include <stddef.h>\n#include <stdint.h>\n#include <stdlib.h>\n\n#include \"export.h\"\n\n#ifdef __cplusplus\n# ifdef __GNUC__\n#  pragma GCC diagnostic ignored \"-Wlong-long\"\n# endif\nextern \"C\" {\n#endif\n\ntypedef struct crypto_hash_sha512_state {\n    uint64_t state[8];\n    uint64_t count[2];\n    uint8_t  buf[128];\n} crypto_hash_sha512_state;\n\nSODIUM_EXPORT\nsize_t crypto_hash_sha512_statebytes(void);\n\n#define crypto_hash_sha512_BYTES 64U\nSODIUM_EXPORT\nsize_t crypto_hash_sha512_bytes(void);\n\nSODIUM_EXPORT\nint crypto_hash_sha512(unsigned char *out, const unsigned char *in,\n                       unsigned long long inlen) __attribute__ ((nonnull(1)));\n\nSODIUM_EXPORT\nint crypto_hash_sha512_init(crypto_hash_sha512_state *state)\n            __attribute__ ((nonnull));\n\nSODIUM_EXPORT\nint crypto_hash_sha512_update(crypto_hash_sha512_state *state,\n                              const unsigned char *in,\n                              unsigned long long inlen)\n            __attribute__ ((nonnull(1)));\n\nSODIUM_EXPORT\nint crypto_hash_sha512_final(crypto_hash_sha512_state *state,\n                             unsigned char *out)\n            __attribute__ ((nonnull));\n\n#ifdef __cplusplus\n}\n#endif\n\n#endif\n"
  },
  {
    "path": "src/libsodium/include/sodium/crypto_ipcrypt.h",
    "content": "#ifndef crypto_ipcrypt_H\n#define crypto_ipcrypt_H\n\n#include <stddef.h>\n\n#include \"export.h\"\n\n#ifdef __cplusplus\n#    ifdef __GNUC__\n#        pragma GCC diagnostic ignored \"-Wlong-long\"\n#    endif\nextern \"C\" {\n#endif\n\n#define crypto_ipcrypt_BYTES 16U\nSODIUM_EXPORT\nsize_t crypto_ipcrypt_bytes(void);\n\n#define crypto_ipcrypt_KEYBYTES 16U\nSODIUM_EXPORT\nsize_t crypto_ipcrypt_keybytes(void);\n\n#define crypto_ipcrypt_ND_KEYBYTES 16U\nSODIUM_EXPORT\nsize_t crypto_ipcrypt_nd_keybytes(void);\n\n#define crypto_ipcrypt_ND_TWEAKBYTES 8U\nSODIUM_EXPORT\nsize_t crypto_ipcrypt_nd_tweakbytes(void);\n\n#define crypto_ipcrypt_ND_INPUTBYTES 16U\nSODIUM_EXPORT\nsize_t crypto_ipcrypt_nd_inputbytes(void);\n\n#define crypto_ipcrypt_ND_OUTPUTBYTES 24U\nSODIUM_EXPORT\nsize_t crypto_ipcrypt_nd_outputbytes(void);\n\n#define crypto_ipcrypt_NDX_KEYBYTES 32U\nSODIUM_EXPORT\nsize_t crypto_ipcrypt_ndx_keybytes(void);\n\n#define crypto_ipcrypt_NDX_TWEAKBYTES 16U\nSODIUM_EXPORT\nsize_t crypto_ipcrypt_ndx_tweakbytes(void);\n\n#define crypto_ipcrypt_NDX_INPUTBYTES 16U\nSODIUM_EXPORT\nsize_t crypto_ipcrypt_ndx_inputbytes(void);\n\n#define crypto_ipcrypt_NDX_OUTPUTBYTES 32U\nSODIUM_EXPORT\nsize_t crypto_ipcrypt_ndx_outputbytes(void);\n\n#define crypto_ipcrypt_PFX_KEYBYTES 32U\nSODIUM_EXPORT\nsize_t crypto_ipcrypt_pfx_keybytes(void);\n\n#define crypto_ipcrypt_PFX_BYTES 16U\nSODIUM_EXPORT\nsize_t crypto_ipcrypt_pfx_bytes(void);\n\nSODIUM_EXPORT\nvoid crypto_ipcrypt_keygen(unsigned char k[crypto_ipcrypt_KEYBYTES]) __attribute__((nonnull));\n\nSODIUM_EXPORT\nvoid crypto_ipcrypt_nd_keygen(unsigned char k[crypto_ipcrypt_ND_KEYBYTES])\n    __attribute__((nonnull));\n\nSODIUM_EXPORT\nvoid crypto_ipcrypt_ndx_keygen(unsigned char k[crypto_ipcrypt_NDX_KEYBYTES])\n    __attribute__((nonnull));\n\nSODIUM_EXPORT\nvoid crypto_ipcrypt_pfx_keygen(unsigned char k[crypto_ipcrypt_PFX_KEYBYTES])\n    __attribute__((nonnull));\n\nSODIUM_EXPORT\nvoid crypto_ipcrypt_encrypt(unsigned char       out[crypto_ipcrypt_BYTES],\n                            const unsigned char in[crypto_ipcrypt_BYTES],\n                            const unsigned char k[crypto_ipcrypt_KEYBYTES])\n    __attribute__((nonnull));\n\nSODIUM_EXPORT\nvoid crypto_ipcrypt_decrypt(unsigned char       out[crypto_ipcrypt_BYTES],\n                            const unsigned char in[crypto_ipcrypt_BYTES],\n                            const unsigned char k[crypto_ipcrypt_KEYBYTES])\n    __attribute__((nonnull));\n\nSODIUM_EXPORT\nvoid crypto_ipcrypt_nd_encrypt(unsigned char       out[crypto_ipcrypt_ND_OUTPUTBYTES],\n                               const unsigned char in[crypto_ipcrypt_ND_INPUTBYTES],\n                               const unsigned char t[crypto_ipcrypt_ND_TWEAKBYTES],\n                               const unsigned char k[crypto_ipcrypt_ND_KEYBYTES])\n    __attribute__((nonnull));\n\nSODIUM_EXPORT\nvoid crypto_ipcrypt_nd_decrypt(unsigned char       out[crypto_ipcrypt_ND_INPUTBYTES],\n                               const unsigned char in[crypto_ipcrypt_ND_OUTPUTBYTES],\n                               const unsigned char k[crypto_ipcrypt_ND_KEYBYTES])\n    __attribute__((nonnull));\n\nSODIUM_EXPORT\nvoid crypto_ipcrypt_ndx_encrypt(unsigned char       out[crypto_ipcrypt_NDX_OUTPUTBYTES],\n                                const unsigned char in[crypto_ipcrypt_NDX_INPUTBYTES],\n                                const unsigned char t[crypto_ipcrypt_NDX_TWEAKBYTES],\n                                const unsigned char k[crypto_ipcrypt_NDX_KEYBYTES])\n    __attribute__((nonnull));\n\nSODIUM_EXPORT\nvoid crypto_ipcrypt_ndx_decrypt(unsigned char       out[crypto_ipcrypt_NDX_INPUTBYTES],\n                                const unsigned char in[crypto_ipcrypt_NDX_OUTPUTBYTES],\n                                const unsigned char k[crypto_ipcrypt_NDX_KEYBYTES])\n    __attribute__((nonnull));\n\nSODIUM_EXPORT\nvoid crypto_ipcrypt_pfx_encrypt(unsigned char       out[crypto_ipcrypt_PFX_BYTES],\n                                const unsigned char in[crypto_ipcrypt_PFX_BYTES],\n                                const unsigned char k[crypto_ipcrypt_PFX_KEYBYTES])\n    __attribute__((nonnull));\n\nSODIUM_EXPORT\nvoid crypto_ipcrypt_pfx_decrypt(unsigned char       out[crypto_ipcrypt_PFX_BYTES],\n                                const unsigned char in[crypto_ipcrypt_PFX_BYTES],\n                                const unsigned char k[crypto_ipcrypt_PFX_KEYBYTES])\n    __attribute__((nonnull));\n\n#ifdef __cplusplus\n}\n#endif\n\n#endif\n"
  },
  {
    "path": "src/libsodium/include/sodium/crypto_kdf.h",
    "content": "#ifndef crypto_kdf_H\n#define crypto_kdf_H\n\n#include <stddef.h>\n#include <stdint.h>\n\n#include \"crypto_kdf_blake2b.h\"\n#include \"export.h\"\n\n#ifdef __cplusplus\n# ifdef __GNUC__\n#  pragma GCC diagnostic ignored \"-Wlong-long\"\n# endif\nextern \"C\" {\n#endif\n\n#define crypto_kdf_BYTES_MIN crypto_kdf_blake2b_BYTES_MIN\nSODIUM_EXPORT\nsize_t crypto_kdf_bytes_min(void);\n\n#define crypto_kdf_BYTES_MAX crypto_kdf_blake2b_BYTES_MAX\nSODIUM_EXPORT\nsize_t crypto_kdf_bytes_max(void);\n\n#define crypto_kdf_CONTEXTBYTES crypto_kdf_blake2b_CONTEXTBYTES\nSODIUM_EXPORT\nsize_t crypto_kdf_contextbytes(void);\n\n#define crypto_kdf_KEYBYTES crypto_kdf_blake2b_KEYBYTES\nSODIUM_EXPORT\nsize_t crypto_kdf_keybytes(void);\n\n#define crypto_kdf_PRIMITIVE \"blake2b\"\nSODIUM_EXPORT\nconst char *crypto_kdf_primitive(void)\n            __attribute__ ((warn_unused_result));\n\nSODIUM_EXPORT\nint crypto_kdf_derive_from_key(unsigned char *subkey, size_t subkey_len,\n                               uint64_t subkey_id,\n                               const char ctx[crypto_kdf_CONTEXTBYTES],\n                               const unsigned char key[crypto_kdf_KEYBYTES])\n            __attribute__ ((nonnull));\n\nSODIUM_EXPORT\nvoid crypto_kdf_keygen(unsigned char k[crypto_kdf_KEYBYTES])\n            __attribute__ ((nonnull));\n\n#ifdef __cplusplus\n}\n#endif\n\n#endif\n"
  },
  {
    "path": "src/libsodium/include/sodium/crypto_kdf_blake2b.h",
    "content": "#ifndef crypto_kdf_blake2b_H\n#define crypto_kdf_blake2b_H\n\n#include <stddef.h>\n#include <stdint.h>\n#include <stdlib.h>\n\n#include \"export.h\"\n\n#ifdef __cplusplus\n# ifdef __GNUC__\n#  pragma GCC diagnostic ignored \"-Wlong-long\"\n# endif\nextern \"C\" {\n#endif\n\n#define crypto_kdf_blake2b_BYTES_MIN 16\nSODIUM_EXPORT\nsize_t crypto_kdf_blake2b_bytes_min(void);\n\n#define crypto_kdf_blake2b_BYTES_MAX 64\nSODIUM_EXPORT\nsize_t crypto_kdf_blake2b_bytes_max(void);\n\n#define crypto_kdf_blake2b_CONTEXTBYTES 8\nSODIUM_EXPORT\nsize_t crypto_kdf_blake2b_contextbytes(void);\n\n#define crypto_kdf_blake2b_KEYBYTES 32\nSODIUM_EXPORT\nsize_t crypto_kdf_blake2b_keybytes(void);\n\nSODIUM_EXPORT\nint crypto_kdf_blake2b_derive_from_key(unsigned char *subkey, size_t subkey_len,\n                                       uint64_t subkey_id,\n                                       const char ctx[crypto_kdf_blake2b_CONTEXTBYTES],\n                                       const unsigned char key[crypto_kdf_blake2b_KEYBYTES])\n            __attribute__ ((nonnull));\n\n#ifdef __cplusplus\n}\n#endif\n\n#endif\n"
  },
  {
    "path": "src/libsodium/include/sodium/crypto_kdf_hkdf_sha256.h",
    "content": "#ifndef crypto_kdf_hkdf_sha256_H\n#define crypto_kdf_hkdf_sha256_H\n\n#include <stddef.h>\n#include <stdint.h>\n#include <stdlib.h>\n\n#include \"crypto_kdf.h\"\n#include \"crypto_auth_hmacsha256.h\"\n#include \"export.h\"\n\n#ifdef __cplusplus\n# ifdef __GNUC__\n#  pragma GCC diagnostic ignored \"-Wlong-long\"\n# endif\nextern \"C\" {\n#endif\n\n#define crypto_kdf_hkdf_sha256_KEYBYTES crypto_auth_hmacsha256_BYTES\nSODIUM_EXPORT\nsize_t crypto_kdf_hkdf_sha256_keybytes(void);\n\n#define crypto_kdf_hkdf_sha256_BYTES_MIN 0U\nSODIUM_EXPORT\nsize_t crypto_kdf_hkdf_sha256_bytes_min(void);\n\n#define crypto_kdf_hkdf_sha256_BYTES_MAX (0xff * crypto_auth_hmacsha256_BYTES)\nSODIUM_EXPORT\nsize_t crypto_kdf_hkdf_sha256_bytes_max(void);\n\nSODIUM_EXPORT\nint crypto_kdf_hkdf_sha256_extract(unsigned char prk[crypto_kdf_hkdf_sha256_KEYBYTES],\n                                   const unsigned char *salt, size_t salt_len,\n                                   const unsigned char *ikm, size_t ikm_len)\n            __attribute__ ((nonnull(4)));\n\nSODIUM_EXPORT\nvoid crypto_kdf_hkdf_sha256_keygen(unsigned char prk[crypto_kdf_hkdf_sha256_KEYBYTES]);\n\nSODIUM_EXPORT\nint crypto_kdf_hkdf_sha256_expand(unsigned char *out, size_t out_len,\n                                  const char *ctx, size_t ctx_len,\n                                  const unsigned char prk[crypto_kdf_hkdf_sha256_KEYBYTES])\n            __attribute__ ((nonnull(1)));\n\n/* ------------------------------------------------------------------------- */\n\ntypedef struct crypto_kdf_hkdf_sha256_state {\n    crypto_auth_hmacsha256_state st;\n} crypto_kdf_hkdf_sha256_state;\n\nSODIUM_EXPORT\nsize_t crypto_kdf_hkdf_sha256_statebytes(void);\n\nSODIUM_EXPORT\nint crypto_kdf_hkdf_sha256_extract_init(crypto_kdf_hkdf_sha256_state *state,\n                                        const unsigned char *salt, size_t salt_len)\n            __attribute__ ((nonnull(1)));\n\nSODIUM_EXPORT\nint crypto_kdf_hkdf_sha256_extract_update(crypto_kdf_hkdf_sha256_state *state,\n                                          const unsigned char *ikm, size_t ikm_len)\n            __attribute__ ((nonnull));\n\nSODIUM_EXPORT\nint crypto_kdf_hkdf_sha256_extract_final(crypto_kdf_hkdf_sha256_state *state,\n                                         unsigned char prk[crypto_kdf_hkdf_sha256_KEYBYTES])\n            __attribute__ ((nonnull));\n\n#ifdef __cplusplus\n}\n#endif\n\n#endif\n"
  },
  {
    "path": "src/libsodium/include/sodium/crypto_kdf_hkdf_sha512.h",
    "content": "#ifndef crypto_kdf_hkdf_sha512_H\n#define crypto_kdf_hkdf_sha512_H\n\n#include <stddef.h>\n#include <stdint.h>\n#include <stdlib.h>\n\n#include \"crypto_kdf.h\"\n#include \"crypto_auth_hmacsha512.h\"\n#include \"export.h\"\n\n#ifdef __cplusplus\n# ifdef __GNUC__\n#  pragma GCC diagnostic ignored \"-Wlong-long\"\n# endif\nextern \"C\" {\n#endif\n\n#define crypto_kdf_hkdf_sha512_KEYBYTES crypto_auth_hmacsha512_BYTES\nSODIUM_EXPORT\nsize_t crypto_kdf_hkdf_sha512_keybytes(void);\n\n#define crypto_kdf_hkdf_sha512_BYTES_MIN 0U\nSODIUM_EXPORT\nsize_t crypto_kdf_hkdf_sha512_bytes_min(void);\n\n#define crypto_kdf_hkdf_sha512_BYTES_MAX (0xff * crypto_auth_hmacsha512_BYTES)\nSODIUM_EXPORT\nsize_t crypto_kdf_hkdf_sha512_bytes_max(void);\n\nSODIUM_EXPORT\nint crypto_kdf_hkdf_sha512_extract(unsigned char prk[crypto_kdf_hkdf_sha512_KEYBYTES],\n                                   const unsigned char *salt, size_t salt_len,\n                                   const unsigned char *ikm, size_t ikm_len)\n            __attribute__ ((nonnull(1)));\n\nSODIUM_EXPORT\nvoid crypto_kdf_hkdf_sha512_keygen(unsigned char prk[crypto_kdf_hkdf_sha512_KEYBYTES])\n            __attribute__ ((nonnull));\n\nSODIUM_EXPORT\nint crypto_kdf_hkdf_sha512_expand(unsigned char *out, size_t out_len,\n                                  const char *ctx, size_t ctx_len,\n                                  const unsigned char prk[crypto_kdf_hkdf_sha512_KEYBYTES])\n            __attribute__ ((nonnull(1)));\n\n/* ------------------------------------------------------------------------- */\n\ntypedef struct crypto_kdf_hkdf_sha512_state {\n    crypto_auth_hmacsha512_state st;\n} crypto_kdf_hkdf_sha512_state;\n\nSODIUM_EXPORT\nsize_t crypto_kdf_hkdf_sha512_statebytes(void);\n\nSODIUM_EXPORT\nint crypto_kdf_hkdf_sha512_extract_init(crypto_kdf_hkdf_sha512_state *state,\n                                        const unsigned char *salt, size_t salt_len)\n            __attribute__ ((nonnull(1)));\n\nSODIUM_EXPORT\nint crypto_kdf_hkdf_sha512_extract_update(crypto_kdf_hkdf_sha512_state *state,\n                                          const unsigned char *ikm, size_t ikm_len)\n            __attribute__ ((nonnull));\n\nSODIUM_EXPORT\nint crypto_kdf_hkdf_sha512_extract_final(crypto_kdf_hkdf_sha512_state *state,\n                                         unsigned char prk[crypto_kdf_hkdf_sha512_KEYBYTES])\n            __attribute__ ((nonnull));\n\n#ifdef __cplusplus\n}\n#endif\n\n#endif\n"
  },
  {
    "path": "src/libsodium/include/sodium/crypto_kem.h",
    "content": "#ifndef crypto_kem_H\n#define crypto_kem_H\n\n/*\n * THREAD SAFETY: crypto_kem_keypair() is thread-safe,\n * provided that sodium_init() was called before.\n *\n * Other functions are always thread-safe.\n */\n\n#include <stddef.h>\n\n#include \"crypto_kem_xwing.h\"\n#include \"export.h\"\n\n#ifdef __cplusplus\n# ifdef __GNUC__\n#  pragma GCC diagnostic ignored \"-Wlong-long\"\n# endif\nextern \"C\" {\n#endif\n\n#define crypto_kem_PUBLICKEYBYTES crypto_kem_xwing_PUBLICKEYBYTES\nSODIUM_EXPORT\nsize_t crypto_kem_publickeybytes(void);\n\n#define crypto_kem_SECRETKEYBYTES crypto_kem_xwing_SECRETKEYBYTES\nSODIUM_EXPORT\nsize_t crypto_kem_secretkeybytes(void);\n\n#define crypto_kem_CIPHERTEXTBYTES crypto_kem_xwing_CIPHERTEXTBYTES\nSODIUM_EXPORT\nsize_t crypto_kem_ciphertextbytes(void);\n\n#define crypto_kem_SHAREDSECRETBYTES crypto_kem_xwing_SHAREDSECRETBYTES\nSODIUM_EXPORT\nsize_t crypto_kem_sharedsecretbytes(void);\n\n#define crypto_kem_SEEDBYTES crypto_kem_xwing_SEEDBYTES\nSODIUM_EXPORT\nsize_t crypto_kem_seedbytes(void);\n\n#define crypto_kem_PRIMITIVE \"xwing\"\nSODIUM_EXPORT\nconst char *crypto_kem_primitive(void);\n\nSODIUM_EXPORT\nint crypto_kem_seed_keypair(unsigned char *pk, unsigned char *sk,\n                            const unsigned char *seed)\n            __attribute__ ((nonnull));\n\nSODIUM_EXPORT\nint crypto_kem_keypair(unsigned char *pk, unsigned char *sk)\n            __attribute__ ((nonnull));\n\nSODIUM_EXPORT\nint crypto_kem_enc(unsigned char *ct, unsigned char *ss,\n                   const unsigned char *pk)\n            __attribute__ ((warn_unused_result)) __attribute__ ((nonnull));\n\nSODIUM_EXPORT\nint crypto_kem_dec(unsigned char *ss, const unsigned char *ct,\n                   const unsigned char *sk)\n            __attribute__ ((warn_unused_result)) __attribute__ ((nonnull));\n\n#ifdef __cplusplus\n}\n#endif\n\n#endif\n"
  },
  {
    "path": "src/libsodium/include/sodium/crypto_kem_mlkem768.h",
    "content": "#ifndef crypto_kem_mlkem768_H\n#define crypto_kem_mlkem768_H\n\n#include <stddef.h>\n\n#include \"export.h\"\n\n#ifdef __cplusplus\n#    ifdef __GNUC__\n#        pragma GCC diagnostic ignored \"-Wlong-long\"\n#    endif\nextern \"C\" {\n#endif\n\n#define crypto_kem_mlkem768_PUBLICKEYBYTES 1184U\nSODIUM_EXPORT\nsize_t crypto_kem_mlkem768_publickeybytes(void);\n\n#define crypto_kem_mlkem768_SECRETKEYBYTES 2400U\nSODIUM_EXPORT\nsize_t crypto_kem_mlkem768_secretkeybytes(void);\n\n#define crypto_kem_mlkem768_CIPHERTEXTBYTES 1088U\nSODIUM_EXPORT\nsize_t crypto_kem_mlkem768_ciphertextbytes(void);\n\n#define crypto_kem_mlkem768_SHAREDSECRETBYTES 32U\nSODIUM_EXPORT\nsize_t crypto_kem_mlkem768_sharedsecretbytes(void);\n\n#define crypto_kem_mlkem768_SEEDBYTES 64U\nSODIUM_EXPORT\nsize_t crypto_kem_mlkem768_seedbytes(void);\n\nSODIUM_EXPORT\nint crypto_kem_mlkem768_seed_keypair(unsigned char       pk[crypto_kem_mlkem768_PUBLICKEYBYTES],\n                                     unsigned char       sk[crypto_kem_mlkem768_SECRETKEYBYTES],\n                                     const unsigned char seed[crypto_kem_mlkem768_SEEDBYTES])\n    __attribute__((nonnull));\n\nSODIUM_EXPORT\nint crypto_kem_mlkem768_keypair(unsigned char pk[crypto_kem_mlkem768_PUBLICKEYBYTES],\n                                unsigned char sk[crypto_kem_mlkem768_SECRETKEYBYTES])\n    __attribute__((nonnull));\n\nSODIUM_EXPORT\nint crypto_kem_mlkem768_enc(unsigned char       ct[crypto_kem_mlkem768_CIPHERTEXTBYTES],\n                            unsigned char       ss[crypto_kem_mlkem768_SHAREDSECRETBYTES],\n                            const unsigned char pk[crypto_kem_mlkem768_PUBLICKEYBYTES])\n    __attribute__((warn_unused_result)) __attribute__((nonnull));\n\nSODIUM_EXPORT\nint\ncrypto_kem_mlkem768_enc_deterministic(unsigned char       ct[crypto_kem_mlkem768_CIPHERTEXTBYTES],\n                                      unsigned char       ss[crypto_kem_mlkem768_SHAREDSECRETBYTES],\n                                      const unsigned char pk[crypto_kem_mlkem768_PUBLICKEYBYTES],\n                                      const unsigned char seed[32])\n    __attribute__((warn_unused_result)) __attribute__((nonnull));\n\nSODIUM_EXPORT\nint crypto_kem_mlkem768_dec(unsigned char       ss[crypto_kem_mlkem768_SHAREDSECRETBYTES],\n                            const unsigned char ct[crypto_kem_mlkem768_CIPHERTEXTBYTES],\n                            const unsigned char sk[crypto_kem_mlkem768_SECRETKEYBYTES])\n    __attribute__((warn_unused_result)) __attribute__((nonnull));\n\n#ifdef __cplusplus\n}\n#endif\n\n#endif\n"
  },
  {
    "path": "src/libsodium/include/sodium/crypto_kem_xwing.h",
    "content": "#ifndef crypto_kem_xwing_H\n#define crypto_kem_xwing_H\n\n#include <stddef.h>\n\n#include \"export.h\"\n\n#ifdef __cplusplus\n#    ifdef __GNUC__\n#        pragma GCC diagnostic ignored \"-Wlong-long\"\n#    endif\nextern \"C\" {\n#endif\n\n#define crypto_kem_xwing_PUBLICKEYBYTES 1216U\nSODIUM_EXPORT\nsize_t crypto_kem_xwing_publickeybytes(void);\n\n#define crypto_kem_xwing_SECRETKEYBYTES 32U\nSODIUM_EXPORT\nsize_t crypto_kem_xwing_secretkeybytes(void);\n\n#define crypto_kem_xwing_CIPHERTEXTBYTES 1120U\nSODIUM_EXPORT\nsize_t crypto_kem_xwing_ciphertextbytes(void);\n\n#define crypto_kem_xwing_SHAREDSECRETBYTES 32U\nSODIUM_EXPORT\nsize_t crypto_kem_xwing_sharedsecretbytes(void);\n\n#define crypto_kem_xwing_SEEDBYTES 32U\nSODIUM_EXPORT\nsize_t crypto_kem_xwing_seedbytes(void);\n\nSODIUM_EXPORT\nint crypto_kem_xwing_seed_keypair(unsigned char       pk[crypto_kem_xwing_PUBLICKEYBYTES],\n                                  unsigned char       sk[crypto_kem_xwing_SECRETKEYBYTES],\n                                  const unsigned char seed[crypto_kem_xwing_SEEDBYTES])\n    __attribute__((nonnull));\n\nSODIUM_EXPORT\nint crypto_kem_xwing_keypair(unsigned char pk[crypto_kem_xwing_PUBLICKEYBYTES],\n                             unsigned char sk[crypto_kem_xwing_SECRETKEYBYTES])\n    __attribute__((nonnull));\n\nSODIUM_EXPORT\nint crypto_kem_xwing_enc(unsigned char       ct[crypto_kem_xwing_CIPHERTEXTBYTES],\n                         unsigned char       ss[crypto_kem_xwing_SHAREDSECRETBYTES],\n                         const unsigned char pk[crypto_kem_xwing_PUBLICKEYBYTES])\n    __attribute__((warn_unused_result)) __attribute__((nonnull));\n\nSODIUM_EXPORT\nint crypto_kem_xwing_enc_deterministic(unsigned char       ct[crypto_kem_xwing_CIPHERTEXTBYTES],\n                                       unsigned char       ss[crypto_kem_xwing_SHAREDSECRETBYTES],\n                                       const unsigned char pk[crypto_kem_xwing_PUBLICKEYBYTES],\n                                       const unsigned char seed[64])\n    __attribute__((warn_unused_result)) __attribute__((nonnull));\n\nSODIUM_EXPORT\nint crypto_kem_xwing_dec(unsigned char       ss[crypto_kem_xwing_SHAREDSECRETBYTES],\n                         const unsigned char ct[crypto_kem_xwing_CIPHERTEXTBYTES],\n                         const unsigned char sk[crypto_kem_xwing_SECRETKEYBYTES])\n    __attribute__((warn_unused_result)) __attribute__((nonnull));\n\n#ifdef __cplusplus\n}\n#endif\n\n#endif\n"
  },
  {
    "path": "src/libsodium/include/sodium/crypto_kx.h",
    "content": "#ifndef crypto_kx_H\n#define crypto_kx_H\n\n#include <stddef.h>\n\n#include \"export.h\"\n\n#ifdef __cplusplus\n# ifdef __GNUC__\n#  pragma GCC diagnostic ignored \"-Wlong-long\"\n# endif\nextern \"C\" {\n#endif\n\n#define crypto_kx_PUBLICKEYBYTES 32\nSODIUM_EXPORT\nsize_t crypto_kx_publickeybytes(void);\n\n#define crypto_kx_SECRETKEYBYTES 32\nSODIUM_EXPORT\nsize_t crypto_kx_secretkeybytes(void);\n\n#define crypto_kx_SEEDBYTES 32\nSODIUM_EXPORT\nsize_t crypto_kx_seedbytes(void);\n\n#define crypto_kx_SESSIONKEYBYTES 32\nSODIUM_EXPORT\nsize_t crypto_kx_sessionkeybytes(void);\n\n#define crypto_kx_PRIMITIVE \"x25519blake2b\"\nSODIUM_EXPORT\nconst char *crypto_kx_primitive(void);\n\nSODIUM_EXPORT\nint crypto_kx_seed_keypair(unsigned char pk[crypto_kx_PUBLICKEYBYTES],\n                           unsigned char sk[crypto_kx_SECRETKEYBYTES],\n                           const unsigned char seed[crypto_kx_SEEDBYTES])\n            __attribute__ ((nonnull));\n\nSODIUM_EXPORT\nint crypto_kx_keypair(unsigned char pk[crypto_kx_PUBLICKEYBYTES],\n                      unsigned char sk[crypto_kx_SECRETKEYBYTES])\n            __attribute__ ((nonnull));\n\nSODIUM_EXPORT\nint crypto_kx_client_session_keys(unsigned char rx[crypto_kx_SESSIONKEYBYTES],\n                                  unsigned char tx[crypto_kx_SESSIONKEYBYTES],\n                                  const unsigned char client_pk[crypto_kx_PUBLICKEYBYTES],\n                                  const unsigned char client_sk[crypto_kx_SECRETKEYBYTES],\n                                  const unsigned char server_pk[crypto_kx_PUBLICKEYBYTES])\n            __attribute__ ((warn_unused_result))  __attribute__ ((nonnull(3, 4, 5)));\n\nSODIUM_EXPORT\nint crypto_kx_server_session_keys(unsigned char rx[crypto_kx_SESSIONKEYBYTES],\n                                  unsigned char tx[crypto_kx_SESSIONKEYBYTES],\n                                  const unsigned char server_pk[crypto_kx_PUBLICKEYBYTES],\n                                  const unsigned char server_sk[crypto_kx_SECRETKEYBYTES],\n                                  const unsigned char client_pk[crypto_kx_PUBLICKEYBYTES])\n            __attribute__ ((warn_unused_result))  __attribute__ ((nonnull(3, 4, 5)));\n\n#ifdef __cplusplus\n}\n#endif\n\n#endif\n"
  },
  {
    "path": "src/libsodium/include/sodium/crypto_onetimeauth.h",
    "content": "#ifndef crypto_onetimeauth_H\n#define crypto_onetimeauth_H\n\n#include <stddef.h>\n\n#include \"crypto_onetimeauth_poly1305.h\"\n#include \"export.h\"\n\n#ifdef __cplusplus\n# ifdef __GNUC__\n#  pragma GCC diagnostic ignored \"-Wlong-long\"\n# endif\nextern \"C\" {\n#endif\n\ntypedef crypto_onetimeauth_poly1305_state crypto_onetimeauth_state;\n\nSODIUM_EXPORT\nsize_t  crypto_onetimeauth_statebytes(void);\n\n#define crypto_onetimeauth_BYTES crypto_onetimeauth_poly1305_BYTES\nSODIUM_EXPORT\nsize_t  crypto_onetimeauth_bytes(void);\n\n#define crypto_onetimeauth_KEYBYTES crypto_onetimeauth_poly1305_KEYBYTES\nSODIUM_EXPORT\nsize_t  crypto_onetimeauth_keybytes(void);\n\n#define crypto_onetimeauth_PRIMITIVE \"poly1305\"\nSODIUM_EXPORT\nconst char *crypto_onetimeauth_primitive(void);\n\nSODIUM_EXPORT\nint crypto_onetimeauth(unsigned char *out, const unsigned char *in,\n                       unsigned long long inlen, const unsigned char *k)\n            __attribute__ ((nonnull(1, 4)));\n\nSODIUM_EXPORT\nint crypto_onetimeauth_verify(const unsigned char *h, const unsigned char *in,\n                              unsigned long long inlen, const unsigned char *k)\n            __attribute__ ((warn_unused_result)) __attribute__ ((nonnull(1, 4)));\n\nSODIUM_EXPORT\nint crypto_onetimeauth_init(crypto_onetimeauth_state *state,\n                            const unsigned char *key) __attribute__ ((nonnull));\n\nSODIUM_EXPORT\nint crypto_onetimeauth_update(crypto_onetimeauth_state *state,\n                              const unsigned char *in,\n                              unsigned long long inlen)\n            __attribute__ ((nonnull(1)));\n\nSODIUM_EXPORT\nint crypto_onetimeauth_final(crypto_onetimeauth_state *state,\n                             unsigned char *out) __attribute__ ((nonnull));\n\nSODIUM_EXPORT\nvoid crypto_onetimeauth_keygen(unsigned char k[crypto_onetimeauth_KEYBYTES])\n            __attribute__ ((nonnull));\n\n#ifdef __cplusplus\n}\n#endif\n\n#endif\n"
  },
  {
    "path": "src/libsodium/include/sodium/crypto_onetimeauth_poly1305.h",
    "content": "#ifndef crypto_onetimeauth_poly1305_H\n#define crypto_onetimeauth_poly1305_H\n\n#include <stddef.h>\n#include <stdint.h>\n#include <stdlib.h>\n\n#include <sys/types.h>\n\n#include \"export.h\"\n\n#ifdef __cplusplus\n# ifdef __GNUC__\n#  pragma GCC diagnostic ignored \"-Wlong-long\"\n# endif\nextern \"C\" {\n#endif\n\ntypedef struct CRYPTO_ALIGN(16) crypto_onetimeauth_poly1305_state {\n    unsigned char opaque[256];\n} crypto_onetimeauth_poly1305_state;\n\nSODIUM_EXPORT\nsize_t crypto_onetimeauth_poly1305_statebytes(void);\n\n#define crypto_onetimeauth_poly1305_BYTES 16U\nSODIUM_EXPORT\nsize_t crypto_onetimeauth_poly1305_bytes(void);\n\n#define crypto_onetimeauth_poly1305_KEYBYTES 32U\nSODIUM_EXPORT\nsize_t crypto_onetimeauth_poly1305_keybytes(void);\n\nSODIUM_EXPORT\nint crypto_onetimeauth_poly1305(unsigned char *out,\n                                const unsigned char *in,\n                                unsigned long long inlen,\n                                const unsigned char *k)\n            __attribute__ ((nonnull(1, 4)));\n\nSODIUM_EXPORT\nint crypto_onetimeauth_poly1305_verify(const unsigned char *h,\n                                       const unsigned char *in,\n                                       unsigned long long inlen,\n                                       const unsigned char *k)\n            __attribute__ ((warn_unused_result)) __attribute__ ((nonnull(1, 4)));\n\nSODIUM_EXPORT\nint crypto_onetimeauth_poly1305_init(crypto_onetimeauth_poly1305_state *state,\n                                     const unsigned char *key)\n            __attribute__ ((nonnull));\n\nSODIUM_EXPORT\nint crypto_onetimeauth_poly1305_update(crypto_onetimeauth_poly1305_state *state,\n                                       const unsigned char *in,\n                                       unsigned long long inlen)\n            __attribute__ ((nonnull(1)));\n\nSODIUM_EXPORT\nint crypto_onetimeauth_poly1305_final(crypto_onetimeauth_poly1305_state *state,\n                                      unsigned char *out)\n            __attribute__ ((nonnull));\n\nSODIUM_EXPORT\nvoid crypto_onetimeauth_poly1305_keygen(unsigned char k[crypto_onetimeauth_poly1305_KEYBYTES])\n            __attribute__ ((nonnull));\n\n#ifdef __cplusplus\n}\n#endif\n\n#endif\n"
  },
  {
    "path": "src/libsodium/include/sodium/crypto_pwhash.h",
    "content": "#ifndef crypto_pwhash_H\n#define crypto_pwhash_H\n\n#include <stddef.h>\n\n#include \"crypto_pwhash_argon2i.h\"\n#include \"crypto_pwhash_argon2id.h\"\n#include \"export.h\"\n\n#ifdef __cplusplus\n# ifdef __GNUC__\n#  pragma GCC diagnostic ignored \"-Wlong-long\"\n# endif\nextern \"C\" {\n#endif\n\n#define crypto_pwhash_ALG_ARGON2I13 crypto_pwhash_argon2i_ALG_ARGON2I13\nSODIUM_EXPORT\nint crypto_pwhash_alg_argon2i13(void);\n\n#define crypto_pwhash_ALG_ARGON2ID13 crypto_pwhash_argon2id_ALG_ARGON2ID13\nSODIUM_EXPORT\nint crypto_pwhash_alg_argon2id13(void);\n\n#define crypto_pwhash_ALG_DEFAULT crypto_pwhash_ALG_ARGON2ID13\nSODIUM_EXPORT\nint crypto_pwhash_alg_default(void);\n\n#define crypto_pwhash_BYTES_MIN crypto_pwhash_argon2id_BYTES_MIN\nSODIUM_EXPORT\nsize_t crypto_pwhash_bytes_min(void);\n\n#define crypto_pwhash_BYTES_MAX crypto_pwhash_argon2id_BYTES_MAX\nSODIUM_EXPORT\nsize_t crypto_pwhash_bytes_max(void);\n\n#define crypto_pwhash_PASSWD_MIN crypto_pwhash_argon2id_PASSWD_MIN\nSODIUM_EXPORT\nsize_t crypto_pwhash_passwd_min(void);\n\n#define crypto_pwhash_PASSWD_MAX crypto_pwhash_argon2id_PASSWD_MAX\nSODIUM_EXPORT\nsize_t crypto_pwhash_passwd_max(void);\n\n#define crypto_pwhash_SALTBYTES crypto_pwhash_argon2id_SALTBYTES\nSODIUM_EXPORT\nsize_t crypto_pwhash_saltbytes(void);\n\n#define crypto_pwhash_STRBYTES crypto_pwhash_argon2id_STRBYTES\nSODIUM_EXPORT\nsize_t crypto_pwhash_strbytes(void);\n\n#define crypto_pwhash_STRPREFIX crypto_pwhash_argon2id_STRPREFIX\nSODIUM_EXPORT\nconst char *crypto_pwhash_strprefix(void);\n\n#define crypto_pwhash_OPSLIMIT_MIN crypto_pwhash_argon2id_OPSLIMIT_MIN\nSODIUM_EXPORT\nunsigned long long crypto_pwhash_opslimit_min(void);\n\n#define crypto_pwhash_OPSLIMIT_MAX crypto_pwhash_argon2id_OPSLIMIT_MAX\nSODIUM_EXPORT\nunsigned long long crypto_pwhash_opslimit_max(void);\n\n#define crypto_pwhash_MEMLIMIT_MIN crypto_pwhash_argon2id_MEMLIMIT_MIN\nSODIUM_EXPORT\nsize_t crypto_pwhash_memlimit_min(void);\n\n#define crypto_pwhash_MEMLIMIT_MAX crypto_pwhash_argon2id_MEMLIMIT_MAX\nSODIUM_EXPORT\nsize_t crypto_pwhash_memlimit_max(void);\n\n#define crypto_pwhash_OPSLIMIT_INTERACTIVE crypto_pwhash_argon2id_OPSLIMIT_INTERACTIVE\nSODIUM_EXPORT\nunsigned long long crypto_pwhash_opslimit_interactive(void);\n\n#define crypto_pwhash_MEMLIMIT_INTERACTIVE crypto_pwhash_argon2id_MEMLIMIT_INTERACTIVE\nSODIUM_EXPORT\nsize_t crypto_pwhash_memlimit_interactive(void);\n\n#define crypto_pwhash_OPSLIMIT_MODERATE crypto_pwhash_argon2id_OPSLIMIT_MODERATE\nSODIUM_EXPORT\nunsigned long long crypto_pwhash_opslimit_moderate(void);\n\n#define crypto_pwhash_MEMLIMIT_MODERATE crypto_pwhash_argon2id_MEMLIMIT_MODERATE\nSODIUM_EXPORT\nsize_t crypto_pwhash_memlimit_moderate(void);\n\n#define crypto_pwhash_OPSLIMIT_SENSITIVE crypto_pwhash_argon2id_OPSLIMIT_SENSITIVE\nSODIUM_EXPORT\nunsigned long long crypto_pwhash_opslimit_sensitive(void);\n\n#define crypto_pwhash_MEMLIMIT_SENSITIVE crypto_pwhash_argon2id_MEMLIMIT_SENSITIVE\nSODIUM_EXPORT\nsize_t crypto_pwhash_memlimit_sensitive(void);\n\n/*\n * With this function, do not forget to store all parameters, including the\n * algorithm identifier in order to produce deterministic output.\n * The crypto_pwhash_* definitions, including crypto_pwhash_ALG_DEFAULT,\n * may change.\n */\nSODIUM_EXPORT\nint crypto_pwhash(unsigned char * const out, unsigned long long outlen,\n                  const char * const passwd, unsigned long long passwdlen,\n                  const unsigned char * const salt,\n                  unsigned long long opslimit, size_t memlimit, int alg)\n            __attribute__ ((warn_unused_result)) __attribute__ ((nonnull));\n\n/*\n * The output string already includes all the required parameters, including\n * the algorithm identifier. The string is all that has to be stored in\n * order to verify a password.\n */\nSODIUM_EXPORT\nint crypto_pwhash_str(char out[crypto_pwhash_STRBYTES],\n                      const char * const passwd, unsigned long long passwdlen,\n                      unsigned long long opslimit, size_t memlimit)\n            __attribute__ ((warn_unused_result)) __attribute__ ((nonnull));\n\nSODIUM_EXPORT\nint crypto_pwhash_str_alg(char out[crypto_pwhash_STRBYTES],\n                          const char * const passwd, unsigned long long passwdlen,\n                          unsigned long long opslimit, size_t memlimit, int alg)\n            __attribute__ ((warn_unused_result)) __attribute__ ((nonnull));\n\nSODIUM_EXPORT\nint crypto_pwhash_str_verify(const char *str,\n                             const char * const passwd,\n                             unsigned long long passwdlen)\n            __attribute__ ((warn_unused_result)) __attribute__ ((nonnull));\n\nSODIUM_EXPORT\nint crypto_pwhash_str_needs_rehash(const char *str,\n                                   unsigned long long opslimit, size_t memlimit)\n            __attribute__ ((warn_unused_result)) __attribute__ ((nonnull));\n\n#define crypto_pwhash_PRIMITIVE \"argon2id,argon2i\"\nSODIUM_EXPORT\nconst char *crypto_pwhash_primitive(void)\n            __attribute__ ((warn_unused_result));\n\n#ifdef __cplusplus\n}\n#endif\n\n#endif\n"
  },
  {
    "path": "src/libsodium/include/sodium/crypto_pwhash_argon2i.h",
    "content": "#ifndef crypto_pwhash_argon2i_H\n#define crypto_pwhash_argon2i_H\n\n#include <limits.h>\n#include <stddef.h>\n#include <stdint.h>\n\n#include \"export.h\"\n\n#ifdef __cplusplus\n# ifdef __GNUC__\n#  pragma GCC diagnostic ignored \"-Wlong-long\"\n# endif\nextern \"C\" {\n#endif\n\n#define crypto_pwhash_argon2i_ALG_ARGON2I13 1\nSODIUM_EXPORT\nint crypto_pwhash_argon2i_alg_argon2i13(void);\n\n#define crypto_pwhash_argon2i_BYTES_MIN 16U\nSODIUM_EXPORT\nsize_t crypto_pwhash_argon2i_bytes_min(void);\n\n#define crypto_pwhash_argon2i_BYTES_MAX SODIUM_MIN(SODIUM_SIZE_MAX, 4294967295U)\nSODIUM_EXPORT\nsize_t crypto_pwhash_argon2i_bytes_max(void);\n\n#define crypto_pwhash_argon2i_PASSWD_MIN 0U\nSODIUM_EXPORT\nsize_t crypto_pwhash_argon2i_passwd_min(void);\n\n#define crypto_pwhash_argon2i_PASSWD_MAX 4294967295U\nSODIUM_EXPORT\nsize_t crypto_pwhash_argon2i_passwd_max(void);\n\n#define crypto_pwhash_argon2i_SALTBYTES 16U\nSODIUM_EXPORT\nsize_t crypto_pwhash_argon2i_saltbytes(void);\n\n#define crypto_pwhash_argon2i_STRBYTES 128U\nSODIUM_EXPORT\nsize_t crypto_pwhash_argon2i_strbytes(void);\n\n#define crypto_pwhash_argon2i_STRPREFIX \"$argon2i$\"\nSODIUM_EXPORT\nconst char *crypto_pwhash_argon2i_strprefix(void);\n\n#define crypto_pwhash_argon2i_OPSLIMIT_MIN 3U\nSODIUM_EXPORT\nunsigned long long crypto_pwhash_argon2i_opslimit_min(void);\n\n#define crypto_pwhash_argon2i_OPSLIMIT_MAX 4294967295U\nSODIUM_EXPORT\nunsigned long long crypto_pwhash_argon2i_opslimit_max(void);\n\n#define crypto_pwhash_argon2i_MEMLIMIT_MIN 8192U\nSODIUM_EXPORT\nsize_t crypto_pwhash_argon2i_memlimit_min(void);\n\n#define crypto_pwhash_argon2i_MEMLIMIT_MAX \\\n    ((SIZE_MAX >= 4398046510080U) ? 4398046510080U : (SIZE_MAX >= 2147483648U) ? 2147483648U : 32768U)\nSODIUM_EXPORT\nsize_t crypto_pwhash_argon2i_memlimit_max(void);\n\n#define crypto_pwhash_argon2i_OPSLIMIT_INTERACTIVE 4U\nSODIUM_EXPORT\nunsigned long long crypto_pwhash_argon2i_opslimit_interactive(void);\n\n#define crypto_pwhash_argon2i_MEMLIMIT_INTERACTIVE 33554432U\nSODIUM_EXPORT\nsize_t crypto_pwhash_argon2i_memlimit_interactive(void);\n\n#define crypto_pwhash_argon2i_OPSLIMIT_MODERATE 6U\nSODIUM_EXPORT\nunsigned long long crypto_pwhash_argon2i_opslimit_moderate(void);\n\n#define crypto_pwhash_argon2i_MEMLIMIT_MODERATE 134217728U\nSODIUM_EXPORT\nsize_t crypto_pwhash_argon2i_memlimit_moderate(void);\n\n#define crypto_pwhash_argon2i_OPSLIMIT_SENSITIVE 8U\nSODIUM_EXPORT\nunsigned long long crypto_pwhash_argon2i_opslimit_sensitive(void);\n\n#define crypto_pwhash_argon2i_MEMLIMIT_SENSITIVE 536870912U\nSODIUM_EXPORT\nsize_t crypto_pwhash_argon2i_memlimit_sensitive(void);\n\nSODIUM_EXPORT\nint crypto_pwhash_argon2i(unsigned char * const out,\n                          unsigned long long outlen,\n                          const char * const passwd,\n                          unsigned long long passwdlen,\n                          const unsigned char * const salt,\n                          unsigned long long opslimit, size_t memlimit,\n                          int alg)\n            __attribute__ ((warn_unused_result)) __attribute__ ((nonnull));\n\nSODIUM_EXPORT\nint crypto_pwhash_argon2i_str(char out[crypto_pwhash_argon2i_STRBYTES],\n                              const char * const passwd,\n                              unsigned long long passwdlen,\n                              unsigned long long opslimit, size_t memlimit)\n            __attribute__ ((warn_unused_result)) __attribute__ ((nonnull));\n\nSODIUM_EXPORT\nint crypto_pwhash_argon2i_str_verify(const char * str,\n                                     const char * const passwd,\n                                     unsigned long long passwdlen)\n            __attribute__ ((warn_unused_result)) __attribute__ ((nonnull));\n\nSODIUM_EXPORT\nint crypto_pwhash_argon2i_str_needs_rehash(const char * str,\n                                           unsigned long long opslimit, size_t memlimit)\n            __attribute__ ((warn_unused_result))  __attribute__ ((nonnull));\n\n#ifdef __cplusplus\n}\n#endif\n\n#endif\n"
  },
  {
    "path": "src/libsodium/include/sodium/crypto_pwhash_argon2id.h",
    "content": "#ifndef crypto_pwhash_argon2id_H\n#define crypto_pwhash_argon2id_H\n\n#include <limits.h>\n#include <stddef.h>\n#include <stdint.h>\n\n#include \"export.h\"\n\n#ifdef __cplusplus\n# ifdef __GNUC__\n#  pragma GCC diagnostic ignored \"-Wlong-long\"\n# endif\nextern \"C\" {\n#endif\n\n#define crypto_pwhash_argon2id_ALG_ARGON2ID13 2\nSODIUM_EXPORT\nint crypto_pwhash_argon2id_alg_argon2id13(void);\n\n#define crypto_pwhash_argon2id_BYTES_MIN 16U\nSODIUM_EXPORT\nsize_t crypto_pwhash_argon2id_bytes_min(void);\n\n#define crypto_pwhash_argon2id_BYTES_MAX SODIUM_MIN(SODIUM_SIZE_MAX, 4294967295U)\nSODIUM_EXPORT\nsize_t crypto_pwhash_argon2id_bytes_max(void);\n\n#define crypto_pwhash_argon2id_PASSWD_MIN 0U\nSODIUM_EXPORT\nsize_t crypto_pwhash_argon2id_passwd_min(void);\n\n#define crypto_pwhash_argon2id_PASSWD_MAX 4294967295U\nSODIUM_EXPORT\nsize_t crypto_pwhash_argon2id_passwd_max(void);\n\n#define crypto_pwhash_argon2id_SALTBYTES 16U\nSODIUM_EXPORT\nsize_t crypto_pwhash_argon2id_saltbytes(void);\n\n#define crypto_pwhash_argon2id_STRBYTES 128U\nSODIUM_EXPORT\nsize_t crypto_pwhash_argon2id_strbytes(void);\n\n#define crypto_pwhash_argon2id_STRPREFIX \"$argon2id$\"\nSODIUM_EXPORT\nconst char *crypto_pwhash_argon2id_strprefix(void);\n\n#define crypto_pwhash_argon2id_OPSLIMIT_MIN 1U\nSODIUM_EXPORT\nunsigned long long crypto_pwhash_argon2id_opslimit_min(void);\n\n#define crypto_pwhash_argon2id_OPSLIMIT_MAX 4294967295U\nSODIUM_EXPORT\nunsigned long long crypto_pwhash_argon2id_opslimit_max(void);\n\n#define crypto_pwhash_argon2id_MEMLIMIT_MIN 8192U\nSODIUM_EXPORT\nsize_t crypto_pwhash_argon2id_memlimit_min(void);\n\n#define crypto_pwhash_argon2id_MEMLIMIT_MAX \\\n    ((SIZE_MAX >= 4398046510080U) ? 4398046510080U : (SIZE_MAX >= 2147483648U) ? 2147483648U : 32768U)\nSODIUM_EXPORT\nsize_t crypto_pwhash_argon2id_memlimit_max(void);\n\n#define crypto_pwhash_argon2id_OPSLIMIT_INTERACTIVE 2U\nSODIUM_EXPORT\nunsigned long long crypto_pwhash_argon2id_opslimit_interactive(void);\n\n#define crypto_pwhash_argon2id_MEMLIMIT_INTERACTIVE 67108864U\nSODIUM_EXPORT\nsize_t crypto_pwhash_argon2id_memlimit_interactive(void);\n\n#define crypto_pwhash_argon2id_OPSLIMIT_MODERATE 3U\nSODIUM_EXPORT\nunsigned long long crypto_pwhash_argon2id_opslimit_moderate(void);\n\n#define crypto_pwhash_argon2id_MEMLIMIT_MODERATE 268435456U\nSODIUM_EXPORT\nsize_t crypto_pwhash_argon2id_memlimit_moderate(void);\n\n#define crypto_pwhash_argon2id_OPSLIMIT_SENSITIVE 4U\nSODIUM_EXPORT\nunsigned long long crypto_pwhash_argon2id_opslimit_sensitive(void);\n\n#define crypto_pwhash_argon2id_MEMLIMIT_SENSITIVE 1073741824U\nSODIUM_EXPORT\nsize_t crypto_pwhash_argon2id_memlimit_sensitive(void);\n\nSODIUM_EXPORT\nint crypto_pwhash_argon2id(unsigned char * const out,\n                           unsigned long long outlen,\n                           const char * const passwd,\n                           unsigned long long passwdlen,\n                           const unsigned char * const salt,\n                           unsigned long long opslimit, size_t memlimit,\n                           int alg)\n            __attribute__ ((warn_unused_result)) __attribute__ ((nonnull));\n\nSODIUM_EXPORT\nint crypto_pwhash_argon2id_str(char out[crypto_pwhash_argon2id_STRBYTES],\n                               const char * const passwd,\n                               unsigned long long passwdlen,\n                               unsigned long long opslimit, size_t memlimit)\n            __attribute__ ((warn_unused_result)) __attribute__ ((nonnull));\n\nSODIUM_EXPORT\nint crypto_pwhash_argon2id_str_verify(const char * str,\n                                      const char * const passwd,\n                                      unsigned long long passwdlen)\n            __attribute__ ((warn_unused_result))  __attribute__ ((nonnull));\n\nSODIUM_EXPORT\nint crypto_pwhash_argon2id_str_needs_rehash(const char * str,\n                                            unsigned long long opslimit, size_t memlimit)\n            __attribute__ ((warn_unused_result))  __attribute__ ((nonnull));\n\n#ifdef __cplusplus\n}\n#endif\n\n#endif\n"
  },
  {
    "path": "src/libsodium/include/sodium/crypto_pwhash_scryptsalsa208sha256.h",
    "content": "#ifndef crypto_pwhash_scryptsalsa208sha256_H\n#define crypto_pwhash_scryptsalsa208sha256_H\n\n#include <limits.h>\n#include <stddef.h>\n#include <stdint.h>\n\n#include \"export.h\"\n\n#ifdef __cplusplus\n# ifdef __GNUC__\n#  pragma GCC diagnostic ignored \"-Wlong-long\"\n# endif\nextern \"C\" {\n#endif\n\n#define crypto_pwhash_scryptsalsa208sha256_BYTES_MIN 16U\nSODIUM_EXPORT\nsize_t crypto_pwhash_scryptsalsa208sha256_bytes_min(void);\n\n#define crypto_pwhash_scryptsalsa208sha256_BYTES_MAX \\\n    SODIUM_MIN(SODIUM_SIZE_MAX, 0x1fffffffe0ULL)\nSODIUM_EXPORT\nsize_t crypto_pwhash_scryptsalsa208sha256_bytes_max(void);\n\n#define crypto_pwhash_scryptsalsa208sha256_PASSWD_MIN 0U\nSODIUM_EXPORT\nsize_t crypto_pwhash_scryptsalsa208sha256_passwd_min(void);\n\n#define crypto_pwhash_scryptsalsa208sha256_PASSWD_MAX SODIUM_SIZE_MAX\nSODIUM_EXPORT\nsize_t crypto_pwhash_scryptsalsa208sha256_passwd_max(void);\n\n#define crypto_pwhash_scryptsalsa208sha256_SALTBYTES 32U\nSODIUM_EXPORT\nsize_t crypto_pwhash_scryptsalsa208sha256_saltbytes(void);\n\n#define crypto_pwhash_scryptsalsa208sha256_STRBYTES 102U\nSODIUM_EXPORT\nsize_t crypto_pwhash_scryptsalsa208sha256_strbytes(void);\n\n#define crypto_pwhash_scryptsalsa208sha256_STRPREFIX \"$7$\"\nSODIUM_EXPORT\nconst char *crypto_pwhash_scryptsalsa208sha256_strprefix(void);\n\n#define crypto_pwhash_scryptsalsa208sha256_OPSLIMIT_MIN 32768U\nSODIUM_EXPORT\nunsigned long long crypto_pwhash_scryptsalsa208sha256_opslimit_min(void);\n\n#define crypto_pwhash_scryptsalsa208sha256_OPSLIMIT_MAX 4294967295U\nSODIUM_EXPORT\nunsigned long long crypto_pwhash_scryptsalsa208sha256_opslimit_max(void);\n\n#define crypto_pwhash_scryptsalsa208sha256_MEMLIMIT_MIN 16777216U\nSODIUM_EXPORT\nsize_t crypto_pwhash_scryptsalsa208sha256_memlimit_min(void);\n\n#define crypto_pwhash_scryptsalsa208sha256_MEMLIMIT_MAX \\\n    SODIUM_MIN(SIZE_MAX, 68719476736ULL)\nSODIUM_EXPORT\nsize_t crypto_pwhash_scryptsalsa208sha256_memlimit_max(void);\n\n#define crypto_pwhash_scryptsalsa208sha256_OPSLIMIT_INTERACTIVE 524288U\nSODIUM_EXPORT\nunsigned long long crypto_pwhash_scryptsalsa208sha256_opslimit_interactive(void);\n\n#define crypto_pwhash_scryptsalsa208sha256_MEMLIMIT_INTERACTIVE 16777216U\nSODIUM_EXPORT\nsize_t crypto_pwhash_scryptsalsa208sha256_memlimit_interactive(void);\n\n#define crypto_pwhash_scryptsalsa208sha256_OPSLIMIT_SENSITIVE 33554432U\nSODIUM_EXPORT\nunsigned long long crypto_pwhash_scryptsalsa208sha256_opslimit_sensitive(void);\n\n#define crypto_pwhash_scryptsalsa208sha256_MEMLIMIT_SENSITIVE 1073741824U\nSODIUM_EXPORT\nsize_t crypto_pwhash_scryptsalsa208sha256_memlimit_sensitive(void);\n\nSODIUM_EXPORT\nint crypto_pwhash_scryptsalsa208sha256(unsigned char * const out,\n                                       unsigned long long outlen,\n                                       const char * const passwd,\n                                       unsigned long long passwdlen,\n                                       const unsigned char * const salt,\n                                       unsigned long long opslimit,\n                                       size_t memlimit)\n            __attribute__ ((warn_unused_result)) __attribute__ ((nonnull));\n\nSODIUM_EXPORT\nint crypto_pwhash_scryptsalsa208sha256_str(char out[crypto_pwhash_scryptsalsa208sha256_STRBYTES],\n                                           const char * const passwd,\n                                           unsigned long long passwdlen,\n                                           unsigned long long opslimit,\n                                           size_t memlimit)\n            __attribute__ ((warn_unused_result)) __attribute__ ((nonnull));\n\nSODIUM_EXPORT\nint crypto_pwhash_scryptsalsa208sha256_str_verify(const char * str,\n                                                  const char * const passwd,\n                                                  unsigned long long passwdlen)\n            __attribute__ ((warn_unused_result)) __attribute__ ((nonnull));\n\nSODIUM_EXPORT\nint crypto_pwhash_scryptsalsa208sha256_ll(const uint8_t * passwd, size_t passwdlen,\n                                          const uint8_t * salt, size_t saltlen,\n                                          uint64_t N, uint32_t r, uint32_t p,\n                                          uint8_t * buf, size_t buflen)\n            __attribute__ ((warn_unused_result)) __attribute__ ((nonnull));\n\nSODIUM_EXPORT\nint crypto_pwhash_scryptsalsa208sha256_str_needs_rehash(const char * str,\n                                                        unsigned long long opslimit,\n                                                        size_t memlimit)\n            __attribute__ ((warn_unused_result))  __attribute__ ((nonnull));\n\n#ifdef __cplusplus\n}\n#endif\n\n#endif\n"
  },
  {
    "path": "src/libsodium/include/sodium/crypto_scalarmult.h",
    "content": "#ifndef crypto_scalarmult_H\n#define crypto_scalarmult_H\n\n#include <stddef.h>\n\n#include \"crypto_scalarmult_curve25519.h\"\n#include \"export.h\"\n\n#ifdef __cplusplus\nextern \"C\" {\n#endif\n\n#define crypto_scalarmult_BYTES crypto_scalarmult_curve25519_BYTES\nSODIUM_EXPORT\nsize_t  crypto_scalarmult_bytes(void);\n\n#define crypto_scalarmult_SCALARBYTES crypto_scalarmult_curve25519_SCALARBYTES\nSODIUM_EXPORT\nsize_t  crypto_scalarmult_scalarbytes(void);\n\n#define crypto_scalarmult_PRIMITIVE \"curve25519\"\nSODIUM_EXPORT\nconst char *crypto_scalarmult_primitive(void);\n\nSODIUM_EXPORT\nint crypto_scalarmult_base(unsigned char *q, const unsigned char *n)\n            __attribute__ ((nonnull));\n\n/*\n * NOTE: Do not use the result of this function directly for key exchange.\n *\n * Hash the result with the public keys in order to compute a shared\n * secret key: H(q || client_pk || server_pk)\n *\n * Or unless this is not an option, use the crypto_kx() API instead.\n */\nSODIUM_EXPORT\nint crypto_scalarmult(unsigned char *q, const unsigned char *n,\n                      const unsigned char *p)\n            __attribute__ ((warn_unused_result)) __attribute__ ((nonnull));\n\n#ifdef __cplusplus\n}\n#endif\n\n#endif\n"
  },
  {
    "path": "src/libsodium/include/sodium/crypto_scalarmult_curve25519.h",
    "content": "#ifndef crypto_scalarmult_curve25519_H\n#define crypto_scalarmult_curve25519_H\n\n#include <stddef.h>\n\n#include \"export.h\"\n\n#ifdef __cplusplus\nextern \"C\" {\n#endif\n\n#define crypto_scalarmult_curve25519_BYTES 32U\nSODIUM_EXPORT\nsize_t crypto_scalarmult_curve25519_bytes(void);\n\n#define crypto_scalarmult_curve25519_SCALARBYTES 32U\nSODIUM_EXPORT\nsize_t crypto_scalarmult_curve25519_scalarbytes(void);\n\n/*\n * NOTE: Do not use the result of this function directly for key exchange.\n *\n * Hash the result with the public keys in order to compute a shared\n * secret key: H(q || client_pk || server_pk)\n *\n * Or unless this is not an option, use the crypto_kx() API instead.\n */\nSODIUM_EXPORT\nint crypto_scalarmult_curve25519(unsigned char *q, const unsigned char *n,\n                                 const unsigned char *p)\n            __attribute__ ((warn_unused_result)) __attribute__ ((nonnull));\n\nSODIUM_EXPORT\nint crypto_scalarmult_curve25519_base(unsigned char *q,\n                                      const unsigned char *n)\n            __attribute__ ((nonnull));\n\n#ifdef __cplusplus\n}\n#endif\n\n#endif\n"
  },
  {
    "path": "src/libsodium/include/sodium/crypto_scalarmult_ed25519.h",
    "content": "\n#ifndef crypto_scalarmult_ed25519_H\n#define crypto_scalarmult_ed25519_H\n\n#include <stddef.h>\n\n#include \"export.h\"\n\n#ifdef __cplusplus\nextern \"C\" {\n#endif\n\n#define crypto_scalarmult_ed25519_BYTES 32U\nSODIUM_EXPORT\nsize_t crypto_scalarmult_ed25519_bytes(void);\n\n#define crypto_scalarmult_ed25519_SCALARBYTES 32U\nSODIUM_EXPORT\nsize_t crypto_scalarmult_ed25519_scalarbytes(void);\n\n/*\n * NOTE: Do not use the result of this function directly for key exchange.\n *\n * Hash the result with the public keys in order to compute a shared\n * secret key: H(q || client_pk || server_pk)\n *\n * Or unless this is not an option, use the crypto_kx() API instead.\n */\nSODIUM_EXPORT\nint crypto_scalarmult_ed25519(unsigned char *q, const unsigned char *n,\n                              const unsigned char *p)\n            __attribute__ ((warn_unused_result)) __attribute__ ((nonnull));\n\nSODIUM_EXPORT\nint crypto_scalarmult_ed25519_noclamp(unsigned char *q, const unsigned char *n,\n                                      const unsigned char *p)\n            __attribute__ ((warn_unused_result)) __attribute__ ((nonnull));\n\nSODIUM_EXPORT\nint crypto_scalarmult_ed25519_base(unsigned char *q, const unsigned char *n)\n            __attribute__ ((nonnull));\n\nSODIUM_EXPORT\nint crypto_scalarmult_ed25519_base_noclamp(unsigned char *q, const unsigned char *n)\n            __attribute__ ((nonnull));\n\n#ifdef __cplusplus\n}\n#endif\n\n#endif\n"
  },
  {
    "path": "src/libsodium/include/sodium/crypto_scalarmult_ristretto255.h",
    "content": "\n#ifndef crypto_scalarmult_ristretto255_H\n#define crypto_scalarmult_ristretto255_H\n\n#include <stddef.h>\n\n#include \"export.h\"\n\n#ifdef __cplusplus\nextern \"C\" {\n#endif\n\n#define crypto_scalarmult_ristretto255_BYTES 32U\nSODIUM_EXPORT\nsize_t crypto_scalarmult_ristretto255_bytes(void);\n\n#define crypto_scalarmult_ristretto255_SCALARBYTES 32U\nSODIUM_EXPORT\nsize_t crypto_scalarmult_ristretto255_scalarbytes(void);\n\n/*\n * NOTE: Do not use the result of this function directly for key exchange.\n *\n * Hash the result with the public keys in order to compute a shared\n * secret key: H(q || client_pk || server_pk)\n *\n * Or unless this is not an option, use the crypto_kx() API instead.\n */\nSODIUM_EXPORT\nint crypto_scalarmult_ristretto255(unsigned char *q, const unsigned char *n,\n                                   const unsigned char *p)\n            __attribute__ ((warn_unused_result)) __attribute__ ((nonnull));\n\nSODIUM_EXPORT\nint crypto_scalarmult_ristretto255_base(unsigned char *q,\n                                        const unsigned char *n)\n            __attribute__ ((nonnull));\n\n#ifdef __cplusplus\n}\n#endif\n\n#endif\n"
  },
  {
    "path": "src/libsodium/include/sodium/crypto_secretbox.h",
    "content": "#ifndef crypto_secretbox_H\n#define crypto_secretbox_H\n\n#include <stddef.h>\n\n#include \"crypto_secretbox_xsalsa20poly1305.h\"\n#include \"export.h\"\n\n#ifdef __cplusplus\n# ifdef __GNUC__\n#  pragma GCC diagnostic ignored \"-Wlong-long\"\n# endif\nextern \"C\" {\n#endif\n\n#define crypto_secretbox_KEYBYTES crypto_secretbox_xsalsa20poly1305_KEYBYTES\nSODIUM_EXPORT\nsize_t  crypto_secretbox_keybytes(void);\n\n#define crypto_secretbox_NONCEBYTES crypto_secretbox_xsalsa20poly1305_NONCEBYTES\nSODIUM_EXPORT\nsize_t  crypto_secretbox_noncebytes(void);\n\n#define crypto_secretbox_MACBYTES crypto_secretbox_xsalsa20poly1305_MACBYTES\nSODIUM_EXPORT\nsize_t  crypto_secretbox_macbytes(void);\n\n#define crypto_secretbox_PRIMITIVE \"xsalsa20poly1305\"\nSODIUM_EXPORT\nconst char *crypto_secretbox_primitive(void);\n\n#define crypto_secretbox_MESSAGEBYTES_MAX crypto_secretbox_xsalsa20poly1305_MESSAGEBYTES_MAX\nSODIUM_EXPORT\nsize_t crypto_secretbox_messagebytes_max(void);\n\nSODIUM_EXPORT\nint crypto_secretbox_easy(unsigned char *c, const unsigned char *m,\n                          unsigned long long mlen, const unsigned char *n,\n                          const unsigned char *k) __attribute__ ((nonnull(1, 4, 5)));\n\nSODIUM_EXPORT\nint crypto_secretbox_open_easy(unsigned char *m, const unsigned char *c,\n                               unsigned long long clen, const unsigned char *n,\n                               const unsigned char *k)\n            __attribute__ ((warn_unused_result)) __attribute__ ((nonnull(2, 4, 5)));\n\nSODIUM_EXPORT\nint crypto_secretbox_detached(unsigned char *c, unsigned char *mac,\n                              const unsigned char *m,\n                              unsigned long long mlen,\n                              const unsigned char *n,\n                              const unsigned char *k)\n            __attribute__ ((nonnull(1, 2, 5, 6)));\n\nSODIUM_EXPORT\nint crypto_secretbox_open_detached(unsigned char *m,\n                                   const unsigned char *c,\n                                   const unsigned char *mac,\n                                   unsigned long long clen,\n                                   const unsigned char *n,\n                                   const unsigned char *k)\n            __attribute__ ((warn_unused_result)) __attribute__ ((nonnull(2, 3, 5, 6)));\n\nSODIUM_EXPORT\nvoid crypto_secretbox_keygen(unsigned char k[crypto_secretbox_KEYBYTES])\n            __attribute__ ((nonnull));\n\n/* -- NaCl compatibility interface ; Requires padding -- */\n\n#define crypto_secretbox_ZEROBYTES crypto_secretbox_xsalsa20poly1305_ZEROBYTES\nSODIUM_EXPORT\nsize_t  crypto_secretbox_zerobytes(void) __attribute__ ((deprecated));\n\n#define crypto_secretbox_BOXZEROBYTES crypto_secretbox_xsalsa20poly1305_BOXZEROBYTES\nSODIUM_EXPORT\nsize_t  crypto_secretbox_boxzerobytes(void) __attribute__ ((deprecated));\n\nSODIUM_EXPORT\nint crypto_secretbox(unsigned char *c, const unsigned char *m,\n                     unsigned long long mlen, const unsigned char *n,\n                     const unsigned char *k)\n            __attribute__ ((deprecated)) __attribute__ ((nonnull(1, 4, 5)));\n\nSODIUM_EXPORT\nint crypto_secretbox_open(unsigned char *m, const unsigned char *c,\n                          unsigned long long clen, const unsigned char *n,\n                          const unsigned char *k)\n            __attribute__ ((deprecated)) __attribute__ ((warn_unused_result)) __attribute__ ((nonnull(2, 4, 5)));\n\n#ifdef __cplusplus\n}\n#endif\n\n#endif\n"
  },
  {
    "path": "src/libsodium/include/sodium/crypto_secretbox_xchacha20poly1305.h",
    "content": "#ifndef crypto_secretbox_xchacha20poly1305_H\n#define crypto_secretbox_xchacha20poly1305_H\n\n#include <stddef.h>\n#include \"crypto_stream_xchacha20.h\"\n#include \"export.h\"\n\n#ifdef __cplusplus\n# ifdef __GNUC__\n#  pragma GCC diagnostic ignored \"-Wlong-long\"\n# endif\nextern \"C\" {\n#endif\n\n#define crypto_secretbox_xchacha20poly1305_KEYBYTES 32U\nSODIUM_EXPORT\nsize_t crypto_secretbox_xchacha20poly1305_keybytes(void);\n\n#define crypto_secretbox_xchacha20poly1305_NONCEBYTES 24U\nSODIUM_EXPORT\nsize_t crypto_secretbox_xchacha20poly1305_noncebytes(void);\n\n#define crypto_secretbox_xchacha20poly1305_MACBYTES 16U\nSODIUM_EXPORT\nsize_t crypto_secretbox_xchacha20poly1305_macbytes(void);\n\n#define crypto_secretbox_xchacha20poly1305_MESSAGEBYTES_MAX \\\n    (crypto_stream_xchacha20_MESSAGEBYTES_MAX - crypto_secretbox_xchacha20poly1305_MACBYTES)\nSODIUM_EXPORT\nsize_t crypto_secretbox_xchacha20poly1305_messagebytes_max(void);\n\nSODIUM_EXPORT\nint crypto_secretbox_xchacha20poly1305_easy(unsigned char *c,\n                                            const unsigned char *m,\n                                            unsigned long long mlen,\n                                            const unsigned char *n,\n                                            const unsigned char *k)\n            __attribute__ ((nonnull(1, 4, 5)));\n\nSODIUM_EXPORT\nint crypto_secretbox_xchacha20poly1305_open_easy(unsigned char *m,\n                                                 const unsigned char *c,\n                                                 unsigned long long clen,\n                                                 const unsigned char *n,\n                                                 const unsigned char *k)\n            __attribute__ ((warn_unused_result)) __attribute__ ((nonnull(2, 4, 5)));\n\nSODIUM_EXPORT\nint crypto_secretbox_xchacha20poly1305_detached(unsigned char *c,\n                                                unsigned char *mac,\n                                                const unsigned char *m,\n                                                unsigned long long mlen,\n                                                const unsigned char *n,\n                                                const unsigned char *k)\n            __attribute__ ((nonnull(1, 2, 5, 6)));\n\nSODIUM_EXPORT\nint crypto_secretbox_xchacha20poly1305_open_detached(unsigned char *m,\n                                                     const unsigned char *c,\n                                                     const unsigned char *mac,\n                                                     unsigned long long clen,\n                                                     const unsigned char *n,\n                                                     const unsigned char *k)\n            __attribute__ ((warn_unused_result)) __attribute__ ((nonnull(2, 3, 5, 6)));\n\n#ifdef __cplusplus\n}\n#endif\n\n#endif\n"
  },
  {
    "path": "src/libsodium/include/sodium/crypto_secretbox_xsalsa20poly1305.h",
    "content": "#ifndef crypto_secretbox_xsalsa20poly1305_H\n#define crypto_secretbox_xsalsa20poly1305_H\n\n#include <stddef.h>\n#include \"crypto_stream_xsalsa20.h\"\n#include \"export.h\"\n\n#ifdef __cplusplus\n# ifdef __GNUC__\n#  pragma GCC diagnostic ignored \"-Wlong-long\"\n# endif\nextern \"C\" {\n#endif\n\n#define crypto_secretbox_xsalsa20poly1305_KEYBYTES 32U\nSODIUM_EXPORT\nsize_t crypto_secretbox_xsalsa20poly1305_keybytes(void);\n\n#define crypto_secretbox_xsalsa20poly1305_NONCEBYTES 24U\nSODIUM_EXPORT\nsize_t crypto_secretbox_xsalsa20poly1305_noncebytes(void);\n\n#define crypto_secretbox_xsalsa20poly1305_MACBYTES 16U\nSODIUM_EXPORT\nsize_t crypto_secretbox_xsalsa20poly1305_macbytes(void);\n\n/* Only for the libsodium API - The NaCl compatibility API would require BOXZEROBYTES extra bytes */\n#define crypto_secretbox_xsalsa20poly1305_MESSAGEBYTES_MAX \\\n    (crypto_stream_xsalsa20_MESSAGEBYTES_MAX - crypto_secretbox_xsalsa20poly1305_MACBYTES)\nSODIUM_EXPORT\nsize_t crypto_secretbox_xsalsa20poly1305_messagebytes_max(void);\n\nSODIUM_EXPORT\nvoid crypto_secretbox_xsalsa20poly1305_keygen(unsigned char k[crypto_secretbox_xsalsa20poly1305_KEYBYTES])\n            __attribute__ ((nonnull));\n\n/* -- NaCl compatibility interface ; Requires padding -- */\n\n#define crypto_secretbox_xsalsa20poly1305_BOXZEROBYTES 16U\nSODIUM_EXPORT\nsize_t crypto_secretbox_xsalsa20poly1305_boxzerobytes(void)\n            __attribute__ ((deprecated));\n\n#define crypto_secretbox_xsalsa20poly1305_ZEROBYTES \\\n    (crypto_secretbox_xsalsa20poly1305_BOXZEROBYTES + \\\n     crypto_secretbox_xsalsa20poly1305_MACBYTES)\nSODIUM_EXPORT\nsize_t crypto_secretbox_xsalsa20poly1305_zerobytes(void)\n            __attribute__ ((deprecated));\n\nSODIUM_EXPORT\nint crypto_secretbox_xsalsa20poly1305(unsigned char *c,\n                                      const unsigned char *m,\n                                      unsigned long long mlen,\n                                      const unsigned char *n,\n                                      const unsigned char *k)\n            __attribute__ ((deprecated)) __attribute__ ((nonnull(1, 4, 5)));\n\nSODIUM_EXPORT\nint crypto_secretbox_xsalsa20poly1305_open(unsigned char *m,\n                                           const unsigned char *c,\n                                           unsigned long long clen,\n                                           const unsigned char *n,\n                                           const unsigned char *k)\n            __attribute__ ((deprecated)) __attribute__ ((warn_unused_result)) __attribute__ ((nonnull(2, 4, 5)));\n\n#ifdef __cplusplus\n}\n#endif\n\n#endif\n"
  },
  {
    "path": "src/libsodium/include/sodium/crypto_secretstream_xchacha20poly1305.h",
    "content": "#ifndef crypto_secretstream_xchacha20poly1305_H\n#define crypto_secretstream_xchacha20poly1305_H\n\n#include <stddef.h>\n\n#include \"crypto_aead_xchacha20poly1305.h\"\n#include \"crypto_stream_chacha20.h\"\n#include \"export.h\"\n\n#ifdef __cplusplus\n# ifdef __GNUC__\n#  pragma GCC diagnostic ignored \"-Wlong-long\"\n# endif\nextern \"C\" {\n#endif\n\n#define crypto_secretstream_xchacha20poly1305_ABYTES \\\n    (1U + crypto_aead_xchacha20poly1305_ietf_ABYTES)\nSODIUM_EXPORT\nsize_t crypto_secretstream_xchacha20poly1305_abytes(void);\n\n#define crypto_secretstream_xchacha20poly1305_HEADERBYTES \\\n    crypto_aead_xchacha20poly1305_ietf_NPUBBYTES\nSODIUM_EXPORT\nsize_t crypto_secretstream_xchacha20poly1305_headerbytes(void);\n\n#define crypto_secretstream_xchacha20poly1305_KEYBYTES \\\n    crypto_aead_xchacha20poly1305_ietf_KEYBYTES\nSODIUM_EXPORT\nsize_t crypto_secretstream_xchacha20poly1305_keybytes(void);\n\n#define crypto_secretstream_xchacha20poly1305_MESSAGEBYTES_MAX \\\n    SODIUM_MIN(SODIUM_SIZE_MAX - crypto_secretstream_xchacha20poly1305_ABYTES, \\\n              (64ULL * ((1ULL << 32) - 2ULL)))\nSODIUM_EXPORT\nsize_t crypto_secretstream_xchacha20poly1305_messagebytes_max(void);\n\n#define crypto_secretstream_xchacha20poly1305_TAG_MESSAGE 0x00\nSODIUM_EXPORT\nunsigned char crypto_secretstream_xchacha20poly1305_tag_message(void);\n\n#define crypto_secretstream_xchacha20poly1305_TAG_PUSH    0x01\nSODIUM_EXPORT\nunsigned char crypto_secretstream_xchacha20poly1305_tag_push(void);\n\n#define crypto_secretstream_xchacha20poly1305_TAG_REKEY   0x02\nSODIUM_EXPORT\nunsigned char crypto_secretstream_xchacha20poly1305_tag_rekey(void);\n\n#define crypto_secretstream_xchacha20poly1305_TAG_FINAL \\\n    (crypto_secretstream_xchacha20poly1305_TAG_PUSH | \\\n     crypto_secretstream_xchacha20poly1305_TAG_REKEY)\nSODIUM_EXPORT\nunsigned char crypto_secretstream_xchacha20poly1305_tag_final(void);\n\ntypedef struct crypto_secretstream_xchacha20poly1305_state {\n    unsigned char k[crypto_stream_chacha20_ietf_KEYBYTES];\n    unsigned char nonce[crypto_stream_chacha20_ietf_NONCEBYTES];\n    unsigned char _pad[8];\n} crypto_secretstream_xchacha20poly1305_state;\n\nSODIUM_EXPORT\nsize_t crypto_secretstream_xchacha20poly1305_statebytes(void);\n\nSODIUM_EXPORT\nvoid crypto_secretstream_xchacha20poly1305_keygen\n   (unsigned char k[crypto_secretstream_xchacha20poly1305_KEYBYTES])\n            __attribute__ ((nonnull));\n\nSODIUM_EXPORT\nint crypto_secretstream_xchacha20poly1305_init_push\n   (crypto_secretstream_xchacha20poly1305_state *state,\n    unsigned char header[crypto_secretstream_xchacha20poly1305_HEADERBYTES],\n    const unsigned char k[crypto_secretstream_xchacha20poly1305_KEYBYTES])\n            __attribute__ ((nonnull));\n\nSODIUM_EXPORT\nint crypto_secretstream_xchacha20poly1305_push\n   (crypto_secretstream_xchacha20poly1305_state *state,\n    unsigned char *c, unsigned long long *clen_p,\n    const unsigned char *m, unsigned long long mlen,\n    const unsigned char *ad, unsigned long long adlen, unsigned char tag)\n            __attribute__ ((nonnull(1)));\n\nSODIUM_EXPORT\nint crypto_secretstream_xchacha20poly1305_init_pull\n   (crypto_secretstream_xchacha20poly1305_state *state,\n    const unsigned char header[crypto_secretstream_xchacha20poly1305_HEADERBYTES],\n    const unsigned char k[crypto_secretstream_xchacha20poly1305_KEYBYTES])\n            __attribute__ ((nonnull));\n\nSODIUM_EXPORT\nint crypto_secretstream_xchacha20poly1305_pull\n   (crypto_secretstream_xchacha20poly1305_state *state,\n    unsigned char *m, unsigned long long *mlen_p, unsigned char *tag_p,\n    const unsigned char *c, unsigned long long clen,\n    const unsigned char *ad, unsigned long long adlen)\n            __attribute__ ((nonnull(1)));\n\nSODIUM_EXPORT\nvoid crypto_secretstream_xchacha20poly1305_rekey\n    (crypto_secretstream_xchacha20poly1305_state *state);\n\n#ifdef __cplusplus\n}\n#endif\n\n#endif\n"
  },
  {
    "path": "src/libsodium/include/sodium/crypto_shorthash.h",
    "content": "#ifndef crypto_shorthash_H\n#define crypto_shorthash_H\n\n#include <stddef.h>\n\n#include \"crypto_shorthash_siphash24.h\"\n#include \"export.h\"\n\n#ifdef __cplusplus\n# ifdef __GNUC__\n#  pragma GCC diagnostic ignored \"-Wlong-long\"\n# endif\nextern \"C\" {\n#endif\n\n#define crypto_shorthash_BYTES crypto_shorthash_siphash24_BYTES\nSODIUM_EXPORT\nsize_t  crypto_shorthash_bytes(void);\n\n#define crypto_shorthash_KEYBYTES crypto_shorthash_siphash24_KEYBYTES\nSODIUM_EXPORT\nsize_t  crypto_shorthash_keybytes(void);\n\n#define crypto_shorthash_PRIMITIVE \"siphash24\"\nSODIUM_EXPORT\nconst char *crypto_shorthash_primitive(void);\n\nSODIUM_EXPORT\nint crypto_shorthash(unsigned char *out, const unsigned char *in,\n                     unsigned long long inlen, const unsigned char *k)\n            __attribute__ ((nonnull(1, 4)));\n\nSODIUM_EXPORT\nvoid crypto_shorthash_keygen(unsigned char k[crypto_shorthash_KEYBYTES])\n            __attribute__ ((nonnull));\n\n#ifdef __cplusplus\n}\n#endif\n\n#endif\n"
  },
  {
    "path": "src/libsodium/include/sodium/crypto_shorthash_siphash24.h",
    "content": "#ifndef crypto_shorthash_siphash24_H\n#define crypto_shorthash_siphash24_H\n\n#include <stddef.h>\n#include \"export.h\"\n\n#ifdef __cplusplus\n# ifdef __GNUC__\n#  pragma GCC diagnostic ignored \"-Wlong-long\"\n# endif\nextern \"C\" {\n#endif\n\n/* -- 64-bit output -- */\n\n#define crypto_shorthash_siphash24_BYTES 8U\nSODIUM_EXPORT\nsize_t crypto_shorthash_siphash24_bytes(void);\n\n#define crypto_shorthash_siphash24_KEYBYTES 16U\nSODIUM_EXPORT\nsize_t crypto_shorthash_siphash24_keybytes(void);\n\nSODIUM_EXPORT\nint crypto_shorthash_siphash24(unsigned char *out, const unsigned char *in,\n                               unsigned long long inlen, const unsigned char *k)\n            __attribute__ ((nonnull(1, 4)));\n\n#ifndef SODIUM_LIBRARY_MINIMAL\n/* -- 128-bit output -- */\n\n#define crypto_shorthash_siphashx24_BYTES 16U\nSODIUM_EXPORT\nsize_t crypto_shorthash_siphashx24_bytes(void);\n\n#define crypto_shorthash_siphashx24_KEYBYTES 16U\nSODIUM_EXPORT\nsize_t crypto_shorthash_siphashx24_keybytes(void);\n\nSODIUM_EXPORT\nint crypto_shorthash_siphashx24(unsigned char *out, const unsigned char *in,\n                                unsigned long long inlen, const unsigned char *k)\n            __attribute__ ((nonnull(1, 4)));\n#endif\n\n#ifdef __cplusplus\n}\n#endif\n\n#endif\n"
  },
  {
    "path": "src/libsodium/include/sodium/crypto_sign.h",
    "content": "#ifndef crypto_sign_H\n#define crypto_sign_H\n\n/*\n * THREAD SAFETY: crypto_sign_keypair() is thread-safe,\n * provided that sodium_init() was called before.\n *\n * Other functions, including crypto_sign_seed_keypair() are always thread-safe.\n */\n\n#include <stddef.h>\n\n#include \"crypto_sign_ed25519.h\"\n#include \"export.h\"\n\n#ifdef __cplusplus\n# ifdef __GNUC__\n#  pragma GCC diagnostic ignored \"-Wlong-long\"\n# endif\nextern \"C\" {\n#endif\n\ntypedef crypto_sign_ed25519ph_state crypto_sign_state;\n\nSODIUM_EXPORT\nsize_t  crypto_sign_statebytes(void);\n\n#define crypto_sign_BYTES crypto_sign_ed25519_BYTES\nSODIUM_EXPORT\nsize_t  crypto_sign_bytes(void);\n\n#define crypto_sign_SEEDBYTES crypto_sign_ed25519_SEEDBYTES\nSODIUM_EXPORT\nsize_t  crypto_sign_seedbytes(void);\n\n#define crypto_sign_PUBLICKEYBYTES crypto_sign_ed25519_PUBLICKEYBYTES\nSODIUM_EXPORT\nsize_t  crypto_sign_publickeybytes(void);\n\n#define crypto_sign_SECRETKEYBYTES crypto_sign_ed25519_SECRETKEYBYTES\nSODIUM_EXPORT\nsize_t  crypto_sign_secretkeybytes(void);\n\n#define crypto_sign_MESSAGEBYTES_MAX crypto_sign_ed25519_MESSAGEBYTES_MAX\nSODIUM_EXPORT\nsize_t  crypto_sign_messagebytes_max(void);\n\n#define crypto_sign_PRIMITIVE \"ed25519\"\nSODIUM_EXPORT\nconst char *crypto_sign_primitive(void);\n\nSODIUM_EXPORT\nint crypto_sign_seed_keypair(unsigned char *pk, unsigned char *sk,\n                             const unsigned char *seed)\n            __attribute__ ((nonnull));\n\nSODIUM_EXPORT\nint crypto_sign_keypair(unsigned char *pk, unsigned char *sk)\n            __attribute__ ((nonnull));\n\nSODIUM_EXPORT\nint crypto_sign(unsigned char *sm, unsigned long long *smlen_p,\n                const unsigned char *m, unsigned long long mlen,\n                const unsigned char *sk) __attribute__ ((nonnull(1, 5)));\n\nSODIUM_EXPORT\nint crypto_sign_open(unsigned char *m, unsigned long long *mlen_p,\n                     const unsigned char *sm, unsigned long long smlen,\n                     const unsigned char *pk)\n            __attribute__ ((warn_unused_result)) __attribute__ ((nonnull(3, 5)));\n\nSODIUM_EXPORT\nint crypto_sign_detached(unsigned char *sig, unsigned long long *siglen_p,\n                         const unsigned char *m, unsigned long long mlen,\n                         const unsigned char *sk) __attribute__ ((nonnull(1, 5)));\n\nSODIUM_EXPORT\nint crypto_sign_verify_detached(const unsigned char *sig,\n                                const unsigned char *m,\n                                unsigned long long mlen,\n                                const unsigned char *pk)\n            __attribute__ ((warn_unused_result)) __attribute__ ((nonnull(1, 4)));\n\nSODIUM_EXPORT\nint crypto_sign_init(crypto_sign_state *state);\n\nSODIUM_EXPORT\nint crypto_sign_update(crypto_sign_state *state,\n                       const unsigned char *m, unsigned long long mlen)\n            __attribute__ ((nonnull(1)));\n\nSODIUM_EXPORT\nint crypto_sign_final_create(crypto_sign_state *state, unsigned char *sig,\n                             unsigned long long *siglen_p,\n                             const unsigned char *sk)\n            __attribute__ ((nonnull(1, 2, 4)));\n\nSODIUM_EXPORT\nint crypto_sign_final_verify(crypto_sign_state *state, const unsigned char *sig,\n                             const unsigned char *pk)\n            __attribute__ ((warn_unused_result)) __attribute__ ((nonnull));\n\n#ifdef __cplusplus\n}\n#endif\n\n#endif\n"
  },
  {
    "path": "src/libsodium/include/sodium/crypto_sign_ed25519.h",
    "content": "#ifndef crypto_sign_ed25519_H\n#define crypto_sign_ed25519_H\n\n#include <stddef.h>\n#include \"crypto_hash_sha512.h\"\n#include \"export.h\"\n\n#ifdef __cplusplus\n# ifdef __GNUC__\n#  pragma GCC diagnostic ignored \"-Wlong-long\"\n# endif\nextern \"C\" {\n#endif\n\ntypedef struct crypto_sign_ed25519ph_state {\n    crypto_hash_sha512_state hs;\n} crypto_sign_ed25519ph_state;\n\nSODIUM_EXPORT\nsize_t crypto_sign_ed25519ph_statebytes(void);\n\n#define crypto_sign_ed25519_BYTES 64U\nSODIUM_EXPORT\nsize_t crypto_sign_ed25519_bytes(void);\n\n#define crypto_sign_ed25519_SEEDBYTES 32U\nSODIUM_EXPORT\nsize_t crypto_sign_ed25519_seedbytes(void);\n\n#define crypto_sign_ed25519_PUBLICKEYBYTES 32U\nSODIUM_EXPORT\nsize_t crypto_sign_ed25519_publickeybytes(void);\n\n#define crypto_sign_ed25519_SECRETKEYBYTES (32U + 32U)\nSODIUM_EXPORT\nsize_t crypto_sign_ed25519_secretkeybytes(void);\n\n#define crypto_sign_ed25519_MESSAGEBYTES_MAX (SODIUM_SIZE_MAX - crypto_sign_ed25519_BYTES)\nSODIUM_EXPORT\nsize_t crypto_sign_ed25519_messagebytes_max(void);\n\nSODIUM_EXPORT\nint crypto_sign_ed25519(unsigned char *sm, unsigned long long *smlen_p,\n                        const unsigned char *m, unsigned long long mlen,\n                        const unsigned char *sk)\n            __attribute__ ((nonnull(1, 5)));\n\nSODIUM_EXPORT\nint crypto_sign_ed25519_open(unsigned char *m, unsigned long long *mlen_p,\n                             const unsigned char *sm, unsigned long long smlen,\n                             const unsigned char *pk)\n            __attribute__ ((warn_unused_result)) __attribute__ ((nonnull(3, 5)));\n\nSODIUM_EXPORT\nint crypto_sign_ed25519_detached(unsigned char *sig,\n                                 unsigned long long *siglen_p,\n                                 const unsigned char *m,\n                                 unsigned long long mlen,\n                                 const unsigned char *sk)\n            __attribute__ ((nonnull(1, 5)));\n\nSODIUM_EXPORT\nint crypto_sign_ed25519_verify_detached(const unsigned char *sig,\n                                        const unsigned char *m,\n                                        unsigned long long mlen,\n                                        const unsigned char *pk)\n            __attribute__ ((warn_unused_result)) __attribute__ ((nonnull(1, 4)));\n\nSODIUM_EXPORT\nint crypto_sign_ed25519_keypair(unsigned char *pk, unsigned char *sk)\n            __attribute__ ((nonnull));\n\nSODIUM_EXPORT\nint crypto_sign_ed25519_seed_keypair(unsigned char *pk, unsigned char *sk,\n                                     const unsigned char *seed)\n            __attribute__ ((nonnull));\n\nSODIUM_EXPORT\nint crypto_sign_ed25519_pk_to_curve25519(unsigned char *curve25519_pk,\n                                         const unsigned char *ed25519_pk)\n            __attribute__ ((warn_unused_result)) __attribute__ ((nonnull));\n\nSODIUM_EXPORT\nint crypto_sign_ed25519_sk_to_curve25519(unsigned char *curve25519_sk,\n                                         const unsigned char *ed25519_sk)\n            __attribute__ ((nonnull));\n\nSODIUM_EXPORT\nint crypto_sign_ed25519_sk_to_seed(unsigned char *seed,\n                                   const unsigned char *sk)\n            __attribute__ ((nonnull));\n\nSODIUM_EXPORT\nint crypto_sign_ed25519_sk_to_pk(unsigned char *pk, const unsigned char *sk)\n            __attribute__ ((nonnull));\n\nSODIUM_EXPORT\nint crypto_sign_ed25519ph_init(crypto_sign_ed25519ph_state *state)\n            __attribute__ ((nonnull));\n\nSODIUM_EXPORT\nint crypto_sign_ed25519ph_update(crypto_sign_ed25519ph_state *state,\n                                 const unsigned char *m,\n                                 unsigned long long mlen)\n            __attribute__ ((nonnull(1)));\n\nSODIUM_EXPORT\nint crypto_sign_ed25519ph_final_create(crypto_sign_ed25519ph_state *state,\n                                       unsigned char *sig,\n                                       unsigned long long *siglen_p,\n                                       const unsigned char *sk)\n            __attribute__ ((nonnull(1, 2, 4)));\n\nSODIUM_EXPORT\nint crypto_sign_ed25519ph_final_verify(crypto_sign_ed25519ph_state *state,\n                                       const unsigned char *sig,\n                                       const unsigned char *pk)\n            __attribute__ ((warn_unused_result)) __attribute__ ((nonnull));\n\n#ifdef __cplusplus\n}\n#endif\n\n#endif\n"
  },
  {
    "path": "src/libsodium/include/sodium/crypto_stream.h",
    "content": "#ifndef crypto_stream_H\n#define crypto_stream_H\n\n/*\n *  WARNING: This is just a stream cipher. It is NOT authenticated encryption.\n *  While it provides some protection against eavesdropping, it does NOT\n *  provide any security against active attacks.\n *  Unless you know what you're doing, what you are looking for is probably\n *  the crypto_box functions.\n */\n\n#include <stddef.h>\n\n#include \"crypto_stream_xsalsa20.h\"\n#include \"export.h\"\n\n#ifdef __cplusplus\n# ifdef __GNUC__\n#  pragma GCC diagnostic ignored \"-Wlong-long\"\n# endif\nextern \"C\" {\n#endif\n\n#define crypto_stream_KEYBYTES crypto_stream_xsalsa20_KEYBYTES\nSODIUM_EXPORT\nsize_t  crypto_stream_keybytes(void);\n\n#define crypto_stream_NONCEBYTES crypto_stream_xsalsa20_NONCEBYTES\nSODIUM_EXPORT\nsize_t  crypto_stream_noncebytes(void);\n\n#define crypto_stream_MESSAGEBYTES_MAX crypto_stream_xsalsa20_MESSAGEBYTES_MAX\nSODIUM_EXPORT\nsize_t  crypto_stream_messagebytes_max(void);\n\n#define crypto_stream_PRIMITIVE \"xsalsa20\"\nSODIUM_EXPORT\nconst char *crypto_stream_primitive(void);\n\nSODIUM_EXPORT\nint crypto_stream(unsigned char *c, unsigned long long clen,\n                  const unsigned char *n, const unsigned char *k)\n            __attribute__ ((nonnull));\n\nSODIUM_EXPORT\nint crypto_stream_xor(unsigned char *c, const unsigned char *m,\n                      unsigned long long mlen, const unsigned char *n,\n                      const unsigned char *k)\n            __attribute__ ((nonnull(1, 4, 5)));\n\nSODIUM_EXPORT\nvoid crypto_stream_keygen(unsigned char k[crypto_stream_KEYBYTES])\n            __attribute__ ((nonnull));\n\n#ifdef __cplusplus\n}\n#endif\n\n#endif\n"
  },
  {
    "path": "src/libsodium/include/sodium/crypto_stream_chacha20.h",
    "content": "#ifndef crypto_stream_chacha20_H\n#define crypto_stream_chacha20_H\n\n/*\n *  WARNING: This is just a stream cipher. It is NOT authenticated encryption.\n *  While it provides some protection against eavesdropping, it does NOT\n *  provide any security against active attacks.\n *  Unless you know what you're doing, what you are looking for is probably\n *  the crypto_box functions.\n */\n\n#include <stddef.h>\n#include <stdint.h>\n#include \"export.h\"\n\n#ifdef __cplusplus\n# ifdef __GNUC__\n#  pragma GCC diagnostic ignored \"-Wlong-long\"\n# endif\nextern \"C\" {\n#endif\n\n#define crypto_stream_chacha20_KEYBYTES 32U\nSODIUM_EXPORT\nsize_t crypto_stream_chacha20_keybytes(void);\n\n#define crypto_stream_chacha20_NONCEBYTES 8U\nSODIUM_EXPORT\nsize_t crypto_stream_chacha20_noncebytes(void);\n\n#define crypto_stream_chacha20_MESSAGEBYTES_MAX SODIUM_SIZE_MAX\nSODIUM_EXPORT\nsize_t crypto_stream_chacha20_messagebytes_max(void);\n\n/* ChaCha20 with a 64-bit nonce and a 64-bit counter, as originally designed */\n\nSODIUM_EXPORT\nint crypto_stream_chacha20(unsigned char *c, unsigned long long clen,\n                           const unsigned char *n, const unsigned char *k)\n            __attribute__ ((nonnull));\n\nSODIUM_EXPORT\nint crypto_stream_chacha20_xor(unsigned char *c, const unsigned char *m,\n                               unsigned long long mlen, const unsigned char *n,\n                               const unsigned char *k)\n            __attribute__ ((nonnull(1, 4, 5)));\n\nSODIUM_EXPORT\nint crypto_stream_chacha20_xor_ic(unsigned char *c, const unsigned char *m,\n                                  unsigned long long mlen,\n                                  const unsigned char *n, uint64_t ic,\n                                  const unsigned char *k)\n            __attribute__ ((nonnull(1, 4, 6)));\n\nSODIUM_EXPORT\nvoid crypto_stream_chacha20_keygen(unsigned char k[crypto_stream_chacha20_KEYBYTES])\n            __attribute__ ((nonnull));\n\n/* ChaCha20 with a 96-bit nonce and a 32-bit counter (IETF) */\n\n#define crypto_stream_chacha20_ietf_KEYBYTES 32U\nSODIUM_EXPORT\nsize_t crypto_stream_chacha20_ietf_keybytes(void);\n\n#define crypto_stream_chacha20_ietf_NONCEBYTES 12U\nSODIUM_EXPORT\nsize_t crypto_stream_chacha20_ietf_noncebytes(void);\n\n#define crypto_stream_chacha20_ietf_MESSAGEBYTES_MAX \\\n    SODIUM_MIN(SODIUM_SIZE_MAX, 64ULL * (1ULL << 32))\nSODIUM_EXPORT\nsize_t crypto_stream_chacha20_ietf_messagebytes_max(void);\n\nSODIUM_EXPORT\nint crypto_stream_chacha20_ietf(unsigned char *c, unsigned long long clen,\n                                const unsigned char *n, const unsigned char *k)\n            __attribute__ ((nonnull));\n\nSODIUM_EXPORT\nint crypto_stream_chacha20_ietf_xor(unsigned char *c, const unsigned char *m,\n                                    unsigned long long mlen, const unsigned char *n,\n                                    const unsigned char *k)\n            __attribute__ ((nonnull(1, 4, 5)));\n\nSODIUM_EXPORT\nint crypto_stream_chacha20_ietf_xor_ic(unsigned char *c, const unsigned char *m,\n                                       unsigned long long mlen,\n                                       const unsigned char *n, uint32_t ic,\n                                       const unsigned char *k)\n            __attribute__ ((nonnull(1, 4, 6)));\n\nSODIUM_EXPORT\nvoid crypto_stream_chacha20_ietf_keygen(unsigned char k[crypto_stream_chacha20_ietf_KEYBYTES])\n            __attribute__ ((nonnull));\n\n/* Aliases */\n\n#define crypto_stream_chacha20_IETF_KEYBYTES crypto_stream_chacha20_ietf_KEYBYTES\n#define crypto_stream_chacha20_IETF_NONCEBYTES crypto_stream_chacha20_ietf_NONCEBYTES\n#define crypto_stream_chacha20_IETF_MESSAGEBYTES_MAX crypto_stream_chacha20_ietf_MESSAGEBYTES_MAX\n\n#ifdef __cplusplus\n}\n#endif\n\n#endif\n"
  },
  {
    "path": "src/libsodium/include/sodium/crypto_stream_salsa20.h",
    "content": "#ifndef crypto_stream_salsa20_H\n#define crypto_stream_salsa20_H\n\n/*\n *  WARNING: This is just a stream cipher. It is NOT authenticated encryption.\n *  While it provides some protection against eavesdropping, it does NOT\n *  provide any security against active attacks.\n *  Unless you know what you're doing, what you are looking for is probably\n *  the crypto_box functions.\n */\n\n#include <stddef.h>\n#include <stdint.h>\n#include \"export.h\"\n\n#ifdef __cplusplus\n# ifdef __GNUC__\n#  pragma GCC diagnostic ignored \"-Wlong-long\"\n# endif\nextern \"C\" {\n#endif\n\n#define crypto_stream_salsa20_KEYBYTES 32U\nSODIUM_EXPORT\nsize_t crypto_stream_salsa20_keybytes(void);\n\n#define crypto_stream_salsa20_NONCEBYTES 8U\nSODIUM_EXPORT\nsize_t crypto_stream_salsa20_noncebytes(void);\n\n#define crypto_stream_salsa20_MESSAGEBYTES_MAX SODIUM_SIZE_MAX\nSODIUM_EXPORT\nsize_t crypto_stream_salsa20_messagebytes_max(void);\n\nSODIUM_EXPORT\nint crypto_stream_salsa20(unsigned char *c, unsigned long long clen,\n                          const unsigned char *n, const unsigned char *k)\n            __attribute__ ((nonnull));\n\nSODIUM_EXPORT\nint crypto_stream_salsa20_xor(unsigned char *c, const unsigned char *m,\n                              unsigned long long mlen, const unsigned char *n,\n                              const unsigned char *k)\n            __attribute__ ((nonnull(1, 4, 5)));\n\nSODIUM_EXPORT\nint crypto_stream_salsa20_xor_ic(unsigned char *c, const unsigned char *m,\n                                 unsigned long long mlen,\n                                 const unsigned char *n, uint64_t ic,\n                                 const unsigned char *k)\n            __attribute__ ((nonnull(1, 4, 6)));\n\nSODIUM_EXPORT\nvoid crypto_stream_salsa20_keygen(unsigned char k[crypto_stream_salsa20_KEYBYTES])\n            __attribute__ ((nonnull));\n\n#ifdef __cplusplus\n}\n#endif\n\n#endif\n"
  },
  {
    "path": "src/libsodium/include/sodium/crypto_stream_salsa2012.h",
    "content": "#ifndef crypto_stream_salsa2012_H\n#define crypto_stream_salsa2012_H\n\n/*\n *  WARNING: This is just a stream cipher. It is NOT authenticated encryption.\n *  While it provides some protection against eavesdropping, it does NOT\n *  provide any security against active attacks.\n *  Unless you know what you're doing, what you are looking for is probably\n *  the crypto_box functions.\n */\n\n#include <stddef.h>\n#include \"export.h\"\n\n#ifdef __cplusplus\n# ifdef __GNUC__\n#  pragma GCC diagnostic ignored \"-Wlong-long\"\n# endif\nextern \"C\" {\n#endif\n\n#define crypto_stream_salsa2012_KEYBYTES 32U\nSODIUM_EXPORT\nsize_t crypto_stream_salsa2012_keybytes(void);\n\n#define crypto_stream_salsa2012_NONCEBYTES 8U\nSODIUM_EXPORT\nsize_t crypto_stream_salsa2012_noncebytes(void);\n\n#define crypto_stream_salsa2012_MESSAGEBYTES_MAX SODIUM_SIZE_MAX\nSODIUM_EXPORT\nsize_t crypto_stream_salsa2012_messagebytes_max(void);\n\nSODIUM_EXPORT\nint crypto_stream_salsa2012(unsigned char *c, unsigned long long clen,\n                            const unsigned char *n, const unsigned char *k)\n            __attribute__ ((nonnull));\n\nSODIUM_EXPORT\nint crypto_stream_salsa2012_xor(unsigned char *c, const unsigned char *m,\n                                unsigned long long mlen, const unsigned char *n,\n                                const unsigned char *k)\n            __attribute__ ((nonnull(1, 4, 5)));\n\nSODIUM_EXPORT\nvoid crypto_stream_salsa2012_keygen(unsigned char k[crypto_stream_salsa2012_KEYBYTES])\n            __attribute__ ((nonnull));\n\n#ifdef __cplusplus\n}\n#endif\n\n#endif\n"
  },
  {
    "path": "src/libsodium/include/sodium/crypto_stream_salsa208.h",
    "content": "#ifndef crypto_stream_salsa208_H\n#define crypto_stream_salsa208_H\n\n/*\n *  WARNING: This is just a stream cipher. It is NOT authenticated encryption.\n *  While it provides some protection against eavesdropping, it does NOT\n *  provide any security against active attacks.\n *  Unless you know what you're doing, what you are looking for is probably\n *  the crypto_box functions.\n */\n\n#include <stddef.h>\n#include \"export.h\"\n\n#ifdef __cplusplus\n# ifdef __GNUC__\n#  pragma GCC diagnostic ignored \"-Wlong-long\"\n# endif\nextern \"C\" {\n#endif\n\n#define crypto_stream_salsa208_KEYBYTES 32U\nSODIUM_EXPORT\nsize_t crypto_stream_salsa208_keybytes(void)\n            __attribute__ ((deprecated));\n\n#define crypto_stream_salsa208_NONCEBYTES 8U\nSODIUM_EXPORT\nsize_t crypto_stream_salsa208_noncebytes(void)\n            __attribute__ ((deprecated));\n\n#define crypto_stream_salsa208_MESSAGEBYTES_MAX SODIUM_SIZE_MAX\n    SODIUM_EXPORT\nsize_t crypto_stream_salsa208_messagebytes_max(void)\n            __attribute__ ((deprecated));\n\nSODIUM_EXPORT\nint crypto_stream_salsa208(unsigned char *c, unsigned long long clen,\n                           const unsigned char *n, const unsigned char *k)\n            __attribute__ ((deprecated)) __attribute__ ((nonnull));\n\nSODIUM_EXPORT\nint crypto_stream_salsa208_xor(unsigned char *c, const unsigned char *m,\n                               unsigned long long mlen, const unsigned char *n,\n                               const unsigned char *k)\n            __attribute__ ((deprecated)) __attribute__ ((nonnull(1, 4, 5)));\n\nSODIUM_EXPORT\nvoid crypto_stream_salsa208_keygen(unsigned char k[crypto_stream_salsa208_KEYBYTES])\n            __attribute__ ((deprecated)) __attribute__ ((nonnull));\n\n#ifdef __cplusplus\n}\n#endif\n\n#endif\n"
  },
  {
    "path": "src/libsodium/include/sodium/crypto_stream_xchacha20.h",
    "content": "#ifndef crypto_stream_xchacha20_H\n#define crypto_stream_xchacha20_H\n\n/*\n *  WARNING: This is just a stream cipher. It is NOT authenticated encryption.\n *  While it provides some protection against eavesdropping, it does NOT\n *  provide any security against active attacks.\n *  Unless you know what you're doing, what you are looking for is probably\n *  the crypto_box functions.\n */\n\n#include <stddef.h>\n#include <stdint.h>\n#include \"export.h\"\n\n#ifdef __cplusplus\n# ifdef __GNUC__\n#  pragma GCC diagnostic ignored \"-Wlong-long\"\n# endif\nextern \"C\" {\n#endif\n\n#define crypto_stream_xchacha20_KEYBYTES 32U\nSODIUM_EXPORT\nsize_t crypto_stream_xchacha20_keybytes(void);\n\n#define crypto_stream_xchacha20_NONCEBYTES 24U\nSODIUM_EXPORT\nsize_t crypto_stream_xchacha20_noncebytes(void);\n\n#define crypto_stream_xchacha20_MESSAGEBYTES_MAX SODIUM_SIZE_MAX\nSODIUM_EXPORT\nsize_t crypto_stream_xchacha20_messagebytes_max(void);\n\nSODIUM_EXPORT\nint crypto_stream_xchacha20(unsigned char *c, unsigned long long clen,\n                            const unsigned char *n, const unsigned char *k)\n            __attribute__ ((nonnull));\n\nSODIUM_EXPORT\nint crypto_stream_xchacha20_xor(unsigned char *c, const unsigned char *m,\n                                unsigned long long mlen, const unsigned char *n,\n                                const unsigned char *k)\n            __attribute__ ((nonnull(1, 4, 5)));\n\nSODIUM_EXPORT\nint crypto_stream_xchacha20_xor_ic(unsigned char *c, const unsigned char *m,\n                                   unsigned long long mlen,\n                                   const unsigned char *n, uint64_t ic,\n                                   const unsigned char *k)\n            __attribute__ ((nonnull(1, 4, 6)));\n\nSODIUM_EXPORT\nvoid crypto_stream_xchacha20_keygen(unsigned char k[crypto_stream_xchacha20_KEYBYTES])\n            __attribute__ ((nonnull));\n\n#ifdef __cplusplus\n}\n#endif\n\n#endif\n"
  },
  {
    "path": "src/libsodium/include/sodium/crypto_stream_xsalsa20.h",
    "content": "#ifndef crypto_stream_xsalsa20_H\n#define crypto_stream_xsalsa20_H\n\n/*\n *  WARNING: This is just a stream cipher. It is NOT authenticated encryption.\n *  While it provides some protection against eavesdropping, it does NOT\n *  provide any security against active attacks.\n *  Unless you know what you're doing, what you are looking for is probably\n *  the crypto_box functions.\n */\n\n#include <stddef.h>\n#include <stdint.h>\n#include \"export.h\"\n\n#ifdef __cplusplus\n# ifdef __GNUC__\n#  pragma GCC diagnostic ignored \"-Wlong-long\"\n# endif\nextern \"C\" {\n#endif\n\n#define crypto_stream_xsalsa20_KEYBYTES 32U\nSODIUM_EXPORT\nsize_t crypto_stream_xsalsa20_keybytes(void);\n\n#define crypto_stream_xsalsa20_NONCEBYTES 24U\nSODIUM_EXPORT\nsize_t crypto_stream_xsalsa20_noncebytes(void);\n\n#define crypto_stream_xsalsa20_MESSAGEBYTES_MAX SODIUM_SIZE_MAX\nSODIUM_EXPORT\nsize_t crypto_stream_xsalsa20_messagebytes_max(void);\n\nSODIUM_EXPORT\nint crypto_stream_xsalsa20(unsigned char *c, unsigned long long clen,\n                           const unsigned char *n, const unsigned char *k)\n            __attribute__ ((nonnull));\n\nSODIUM_EXPORT\nint crypto_stream_xsalsa20_xor(unsigned char *c, const unsigned char *m,\n                               unsigned long long mlen, const unsigned char *n,\n                               const unsigned char *k)\n            __attribute__ ((nonnull(1, 4, 5)));\n\nSODIUM_EXPORT\nint crypto_stream_xsalsa20_xor_ic(unsigned char *c, const unsigned char *m,\n                                  unsigned long long mlen,\n                                  const unsigned char *n, uint64_t ic,\n                                  const unsigned char *k)\n            __attribute__ ((nonnull(1, 4, 6)));\n\nSODIUM_EXPORT\nvoid crypto_stream_xsalsa20_keygen(unsigned char k[crypto_stream_xsalsa20_KEYBYTES])\n            __attribute__ ((nonnull));\n\n#ifdef __cplusplus\n}\n#endif\n\n#endif\n"
  },
  {
    "path": "src/libsodium/include/sodium/crypto_verify_16.h",
    "content": "#ifndef crypto_verify_16_H\n#define crypto_verify_16_H\n\n#include <stddef.h>\n#include \"export.h\"\n\n#ifdef __cplusplus\nextern \"C\" {\n#endif\n\n#define crypto_verify_16_BYTES 16U\nSODIUM_EXPORT\nsize_t crypto_verify_16_bytes(void);\n\nSODIUM_EXPORT\nint crypto_verify_16(const unsigned char *x, const unsigned char *y)\n            __attribute__ ((warn_unused_result)) __attribute__ ((nonnull));\n\n#ifdef __cplusplus\n}\n#endif\n\n#endif\n"
  },
  {
    "path": "src/libsodium/include/sodium/crypto_verify_32.h",
    "content": "#ifndef crypto_verify_32_H\n#define crypto_verify_32_H\n\n#include <stddef.h>\n#include \"export.h\"\n\n#ifdef __cplusplus\nextern \"C\" {\n#endif\n\n#define crypto_verify_32_BYTES 32U\nSODIUM_EXPORT\nsize_t crypto_verify_32_bytes(void);\n\nSODIUM_EXPORT\nint crypto_verify_32(const unsigned char *x, const unsigned char *y)\n            __attribute__ ((warn_unused_result)) __attribute__ ((nonnull));\n\n#ifdef __cplusplus\n}\n#endif\n\n#endif\n"
  },
  {
    "path": "src/libsodium/include/sodium/crypto_verify_64.h",
    "content": "#ifndef crypto_verify_64_H\n#define crypto_verify_64_H\n\n#include <stddef.h>\n#include \"export.h\"\n\n#ifdef __cplusplus\nextern \"C\" {\n#endif\n\n#define crypto_verify_64_BYTES 64U\nSODIUM_EXPORT\nsize_t crypto_verify_64_bytes(void);\n\nSODIUM_EXPORT\nint crypto_verify_64(const unsigned char *x, const unsigned char *y)\n            __attribute__ ((warn_unused_result)) __attribute__ ((nonnull));\n\n#ifdef __cplusplus\n}\n#endif\n\n#endif\n"
  },
  {
    "path": "src/libsodium/include/sodium/crypto_xof_shake128.h",
    "content": "#ifndef crypto_xof_shake128_H\n#define crypto_xof_shake128_H\n\n#include <stddef.h>\n\n#include \"export.h\"\n\n#ifdef __cplusplus\n#    ifdef __GNUC__\n#        pragma GCC diagnostic ignored \"-Wlong-long\"\n#    endif\nextern \"C\" {\n#endif\n\n#define crypto_xof_shake128_BLOCKBYTES 168U\nSODIUM_EXPORT\nsize_t crypto_xof_shake128_blockbytes(void);\n\n#define crypto_xof_shake128_STATEBYTES 256U\nSODIUM_EXPORT\nsize_t crypto_xof_shake128_statebytes(void);\n\n#define crypto_xof_shake128_DOMAIN_STANDARD 0x1FU\nSODIUM_EXPORT\nunsigned char crypto_xof_shake128_domain_standard(void);\n\ntypedef struct CRYPTO_ALIGN(16) crypto_xof_shake128_state {\n    unsigned char opaque[256];\n} crypto_xof_shake128_state;\n\nSODIUM_EXPORT\nint crypto_xof_shake128(unsigned char *out, size_t outlen, const unsigned char *in,\n                        unsigned long long inlen) __attribute__((nonnull(1)));\n\nSODIUM_EXPORT\nint crypto_xof_shake128_init(crypto_xof_shake128_state *state) __attribute__((nonnull));\n\nSODIUM_EXPORT\nint crypto_xof_shake128_init_with_domain(crypto_xof_shake128_state *state, unsigned char domain)\n    __attribute__((nonnull));\n\nSODIUM_EXPORT\nint crypto_xof_shake128_update(crypto_xof_shake128_state *state,\n                               const unsigned char       *in,\n                               unsigned long long         inlen) __attribute__((nonnull(1)));\n\nSODIUM_EXPORT\nint crypto_xof_shake128_squeeze(crypto_xof_shake128_state *state, unsigned char *out, size_t outlen)\n    __attribute__((nonnull));\n\n#ifdef __cplusplus\n}\n#endif\n\n#endif\n"
  },
  {
    "path": "src/libsodium/include/sodium/crypto_xof_shake256.h",
    "content": "#ifndef crypto_xof_shake256_H\n#define crypto_xof_shake256_H\n\n#include \"export.h\"\n#include <stddef.h>\n\n#ifdef __cplusplus\nextern \"C\" {\n#endif\n\n#define crypto_xof_shake256_BLOCKBYTES 136U\nSODIUM_EXPORT\nsize_t crypto_xof_shake256_blockbytes(void);\n\n#define crypto_xof_shake256_STATEBYTES 256U\nSODIUM_EXPORT\nsize_t crypto_xof_shake256_statebytes(void);\n\n#define crypto_xof_shake256_DOMAIN_STANDARD 0x1FU\nSODIUM_EXPORT\nunsigned char crypto_xof_shake256_domain_standard(void);\n\ntypedef struct CRYPTO_ALIGN(16) crypto_xof_shake256_state {\n    unsigned char opaque[256];\n} crypto_xof_shake256_state;\n\n/* One-shot API */\nSODIUM_EXPORT\nint crypto_xof_shake256(unsigned char *out, size_t outlen, const unsigned char *in,\n                        unsigned long long inlen) __attribute__((nonnull(1)));\n\n/* Streaming API with standard domain */\nSODIUM_EXPORT\nint crypto_xof_shake256_init(crypto_xof_shake256_state *state) __attribute__((nonnull));\n\n/* Streaming API with custom domain */\nSODIUM_EXPORT\nint crypto_xof_shake256_init_with_domain(crypto_xof_shake256_state *state, unsigned char domain)\n    __attribute__((nonnull));\n\nSODIUM_EXPORT\nint crypto_xof_shake256_update(crypto_xof_shake256_state *state,\n                               const unsigned char       *in,\n                               unsigned long long         inlen) __attribute__((nonnull(1)));\n\nSODIUM_EXPORT\nint crypto_xof_shake256_squeeze(crypto_xof_shake256_state *state, unsigned char *out, size_t outlen)\n    __attribute__((nonnull));\n\n#ifdef __cplusplus\n}\n#endif\n\n#endif\n"
  },
  {
    "path": "src/libsodium/include/sodium/crypto_xof_turboshake128.h",
    "content": "#ifndef crypto_xof_turboshake128_H\n#define crypto_xof_turboshake128_H\n\n#include \"export.h\"\n#include <stddef.h>\n\n#ifdef __cplusplus\nextern \"C\" {\n#endif\n\n#define crypto_xof_turboshake128_BLOCKBYTES 168U\nSODIUM_EXPORT\nsize_t crypto_xof_turboshake128_blockbytes(void);\n\n#define crypto_xof_turboshake128_STATEBYTES 256U\nSODIUM_EXPORT\nsize_t crypto_xof_turboshake128_statebytes(void);\n\n#define crypto_xof_turboshake128_DOMAIN_STANDARD 0x1FU\nSODIUM_EXPORT\nunsigned char crypto_xof_turboshake128_domain_standard(void);\n\ntypedef struct CRYPTO_ALIGN(16) crypto_xof_turboshake128_state {\n    unsigned char opaque[256];\n} crypto_xof_turboshake128_state;\n\n/* One-shot API */\nSODIUM_EXPORT\nint crypto_xof_turboshake128(unsigned char *out, size_t outlen, const unsigned char *in,\n                             unsigned long long inlen) __attribute__((nonnull(1)));\n\n/* Streaming API with standard domain */\nSODIUM_EXPORT\nint crypto_xof_turboshake128_init(crypto_xof_turboshake128_state *state) __attribute__((nonnull));\n\n/* Streaming API with custom domain */\nSODIUM_EXPORT\nint crypto_xof_turboshake128_init_with_domain(crypto_xof_turboshake128_state *state,\n                                              unsigned char domain) __attribute__((nonnull));\n\nSODIUM_EXPORT\nint crypto_xof_turboshake128_update(crypto_xof_turboshake128_state *state,\n                                    const unsigned char            *in,\n                                    unsigned long long inlen) __attribute__((nonnull(1)));\n\nSODIUM_EXPORT\nint crypto_xof_turboshake128_squeeze(crypto_xof_turboshake128_state *state, unsigned char *out,\n                                     size_t outlen) __attribute__((nonnull));\n\n#ifdef __cplusplus\n}\n#endif\n\n#endif\n"
  },
  {
    "path": "src/libsodium/include/sodium/crypto_xof_turboshake256.h",
    "content": "#ifndef crypto_xof_turboshake256_H\n#define crypto_xof_turboshake256_H\n\n#include \"export.h\"\n#include <stddef.h>\n\n#ifdef __cplusplus\nextern \"C\" {\n#endif\n\n#define crypto_xof_turboshake256_BLOCKBYTES 136U\nSODIUM_EXPORT\nsize_t crypto_xof_turboshake256_blockbytes(void);\n\n#define crypto_xof_turboshake256_STATEBYTES 256U\nSODIUM_EXPORT\nsize_t crypto_xof_turboshake256_statebytes(void);\n\n#define crypto_xof_turboshake256_DOMAIN_STANDARD 0x1FU\nSODIUM_EXPORT\nunsigned char crypto_xof_turboshake256_domain_standard(void);\n\ntypedef struct CRYPTO_ALIGN(16) crypto_xof_turboshake256_state {\n    unsigned char opaque[256];\n} crypto_xof_turboshake256_state;\n\n/* One-shot API */\nSODIUM_EXPORT\nint crypto_xof_turboshake256(unsigned char *out, size_t outlen, const unsigned char *in,\n                             unsigned long long inlen) __attribute__((nonnull(1)));\n\n/* Streaming API with standard domain */\nSODIUM_EXPORT\nint crypto_xof_turboshake256_init(crypto_xof_turboshake256_state *state) __attribute__((nonnull));\n\n/* Streaming API with custom domain */\nSODIUM_EXPORT\nint crypto_xof_turboshake256_init_with_domain(crypto_xof_turboshake256_state *state,\n                                              unsigned char domain) __attribute__((nonnull));\n\nSODIUM_EXPORT\nint crypto_xof_turboshake256_update(crypto_xof_turboshake256_state *state,\n                                    const unsigned char            *in,\n                                    unsigned long long inlen) __attribute__((nonnull(1)));\n\nSODIUM_EXPORT\nint crypto_xof_turboshake256_squeeze(crypto_xof_turboshake256_state *state, unsigned char *out,\n                                     size_t outlen) __attribute__((nonnull));\n\n#ifdef __cplusplus\n}\n#endif\n\n#endif\n"
  },
  {
    "path": "src/libsodium/include/sodium/export.h",
    "content": "\n#ifndef sodium_export_H\n#define sodium_export_H\n\n#include <stddef.h>\n#include <stdint.h>\n#include <limits.h>\n\n#if !defined(__clang__) && !defined(__GNUC__)\n# ifdef __attribute__\n#  undef __attribute__\n# endif\n# define __attribute__(a)\n#endif\n\n#ifdef SODIUM_STATIC\n# define SODIUM_EXPORT\n# define SODIUM_EXPORT_WEAK\n#else\n# if defined(_MSC_VER)\n#  ifdef SODIUM_DLL_EXPORT\n#   define SODIUM_EXPORT __declspec(dllexport)\n#  else\n#   define SODIUM_EXPORT __declspec(dllimport)\n#  endif\n# else\n#  if defined(__SUNPRO_C)\n#   ifndef __GNU_C__\n#    define SODIUM_EXPORT __attribute__ (visibility(__global))\n#   else\n#    define SODIUM_EXPORT __attribute__ __global\n#   endif\n#  elif defined(_MSG_VER)\n#   define SODIUM_EXPORT extern __declspec(dllexport)\n#  else\n#   define SODIUM_EXPORT __attribute__ ((visibility (\"default\")))\n#  endif\n# endif\n# if defined(__ELF__) && !defined(SODIUM_DISABLE_WEAK_FUNCTIONS)\n#  define SODIUM_EXPORT_WEAK SODIUM_EXPORT __attribute__((weak))\n# else\n#  define SODIUM_EXPORT_WEAK SODIUM_EXPORT\n# endif\n#endif\n\n#ifndef CRYPTO_ALIGN\n# if defined(__INTEL_COMPILER) || defined(_MSC_VER)\n#  define CRYPTO_ALIGN(x) __declspec(align(x))\n# else\n#  define CRYPTO_ALIGN(x) __attribute__ ((aligned(x)))\n# endif\n#endif\n\n#define SODIUM_MIN(A, B) ((A) < (B) ? (A) : (B))\n#define SODIUM_SIZE_MAX SODIUM_MIN(UINT64_MAX, SIZE_MAX)\n\n#endif\n"
  },
  {
    "path": "src/libsodium/include/sodium/private/asm_cet.h",
    "content": "#ifndef asm_cet_H\n#define asm_cet_H 1\n\n#if HAVE_CET_H\n# include <cet.h>\n#endif\n#ifndef _CET_ENDBR\n# define _CET_ENDBR\n#endif\n\n#endif\n"
  },
  {
    "path": "src/libsodium/include/sodium/private/chacha20_ietf_ext.h",
    "content": "#ifndef chacha20_ietf_ext_H\n#define chacha20_ietf_ext_H\n\n#include <stdint.h>\n\n#include \"private/quirks.h\"\n\n/* The ietf_ext variant allows the internal counter to overflow into the IV */\n\nint crypto_stream_chacha20_ietf_ext(unsigned char *c, unsigned long long clen,\n                                    const unsigned char *n, const unsigned char *k);\n\nint crypto_stream_chacha20_ietf_ext_xor_ic(unsigned char *c, const unsigned char *m,\n                                           unsigned long long mlen,\n                                           const unsigned char *n, uint32_t ic,\n                                           const unsigned char *k);\n#endif\n\n"
  },
  {
    "path": "src/libsodium/include/sodium/private/common.h",
    "content": "#ifndef common_H\n#define common_H 1\n\n#if !defined(_MSC_VER) && !defined(DEV_MODE) && 1\n# warning *** This is unstable, untested, development code.\n# warning *** It might not compile. It might not work as expected.\n# warning *** It might be totally insecure.\n# warning *** Do not use this except if you are planning to contribute code.\n# warning *** Use releases available at https://download.libsodium.org/libsodium/releases/ instead.\n# warning *** Alternatively, use the \"stable\" branch in the git repository.\n#endif\n\n#if !defined(_MSC_VER) && (!defined(CONFIGURED) || CONFIGURED != 1)\n# warning *** The library is being compiled using an undocumented method.\n# warning *** This is not supported. It has not been tested, it might not\n# warning *** work as expected, and performance is likely to be suboptimal.\n#endif\n\n#include <stdint.h>\n#include <stdlib.h>\n#include <string.h>\n\n#include \"private/quirks.h\"\n\n#define COMPILER_ASSERT(X) (void) sizeof(char[(X) ? 1 : -1])\n\n#ifdef HAVE_TI_MODE\n# if defined(__SIZEOF_INT128__)\ntypedef unsigned __int128 uint128_t;\n# else\ntypedef unsigned uint128_t __attribute__((mode(TI)));\n# endif\n#endif\n\n#ifdef _MSC_VER\n\n# define ROTL32(X, B) _rotl((X), (B))\n# define ROTL64(X, B) _rotl64((X), (B))\n# define ROTR32(X, B) _rotr((X), (B))\n# define ROTR64(X, B) _rotr64((X), (B))\n\n#else\n\n# define ROTL32(X, B) rotl32((X), (B))\nstatic inline uint32_t\nrotl32(const uint32_t x, const int b)\n{\n    return (x << b) | (x >> (32 - b));\n}\n\n# define ROTL64(X, B) rotl64((X), (B))\nstatic inline uint64_t\nrotl64(const uint64_t x, const int b)\n{\n    return (x << b) | (x >> (64 - b));\n}\n\n# define ROTR32(X, B) rotr32((X), (B))\nstatic inline uint32_t\nrotr32(const uint32_t x, const int b)\n{\n    return (x >> b) | (x << (32 - b));\n}\n\n# define ROTR64(X, B) rotr64((X), (B))\nstatic inline uint64_t\nrotr64(const uint64_t x, const int b)\n{\n    return (x >> b) | (x << (64 - b));\n}\n\n#endif /* _MSC_VER */\n\n#define LOAD64_LE(SRC) load64_le(SRC)\nstatic inline uint64_t\nload64_le(const uint8_t src[8])\n{\n#ifdef NATIVE_LITTLE_ENDIAN\n    uint64_t w;\n    memcpy(&w, src, sizeof w);\n    return w;\n#else\n    uint64_t w = (uint64_t) src[0];\n    w |= (uint64_t) src[1] <<  8;\n    w |= (uint64_t) src[2] << 16;\n    w |= (uint64_t) src[3] << 24;\n    w |= (uint64_t) src[4] << 32;\n    w |= (uint64_t) src[5] << 40;\n    w |= (uint64_t) src[6] << 48;\n    w |= (uint64_t) src[7] << 56;\n    return w;\n#endif\n}\n\n#define STORE64_LE(DST, W) store64_le((DST), (W))\nstatic inline void\nstore64_le(uint8_t dst[8], uint64_t w)\n{\n#ifdef NATIVE_LITTLE_ENDIAN\n    memcpy(dst, &w, sizeof w);\n#else\n    dst[0] = (uint8_t) w; w >>= 8;\n    dst[1] = (uint8_t) w; w >>= 8;\n    dst[2] = (uint8_t) w; w >>= 8;\n    dst[3] = (uint8_t) w; w >>= 8;\n    dst[4] = (uint8_t) w; w >>= 8;\n    dst[5] = (uint8_t) w; w >>= 8;\n    dst[6] = (uint8_t) w; w >>= 8;\n    dst[7] = (uint8_t) w;\n#endif\n}\n\n#define LOAD32_LE(SRC) load32_le(SRC)\nstatic inline uint32_t\nload32_le(const uint8_t src[4])\n{\n#ifdef NATIVE_LITTLE_ENDIAN\n    uint32_t w;\n    memcpy(&w, src, sizeof w);\n    return w;\n#else\n    uint32_t w = (uint32_t) src[0];\n    w |= (uint32_t) src[1] <<  8;\n    w |= (uint32_t) src[2] << 16;\n    w |= (uint32_t) src[3] << 24;\n    return w;\n#endif\n}\n\n#define STORE32_LE(DST, W) store32_le((DST), (W))\nstatic inline void\nstore32_le(uint8_t dst[4], uint32_t w)\n{\n#ifdef NATIVE_LITTLE_ENDIAN\n    memcpy(dst, &w, sizeof w);\n#else\n    dst[0] = (uint8_t) w; w >>= 8;\n    dst[1] = (uint8_t) w; w >>= 8;\n    dst[2] = (uint8_t) w; w >>= 8;\n    dst[3] = (uint8_t) w;\n#endif\n}\n\n/* ----- */\n\n#define LOAD64_BE(SRC) load64_be(SRC)\nstatic inline uint64_t\nload64_be(const uint8_t src[8])\n{\n#ifdef NATIVE_BIG_ENDIAN\n    uint64_t w;\n    memcpy(&w, src, sizeof w);\n    return w;\n#else\n    uint64_t w = (uint64_t) src[7];\n    w |= (uint64_t) src[6] <<  8;\n    w |= (uint64_t) src[5] << 16;\n    w |= (uint64_t) src[4] << 24;\n    w |= (uint64_t) src[3] << 32;\n    w |= (uint64_t) src[2] << 40;\n    w |= (uint64_t) src[1] << 48;\n    w |= (uint64_t) src[0] << 56;\n    return w;\n#endif\n}\n\n#define STORE64_BE(DST, W) store64_be((DST), (W))\nstatic inline void\nstore64_be(uint8_t dst[8], uint64_t w)\n{\n#ifdef NATIVE_BIG_ENDIAN\n    memcpy(dst, &w, sizeof w);\n#else\n    dst[7] = (uint8_t) w; w >>= 8;\n    dst[6] = (uint8_t) w; w >>= 8;\n    dst[5] = (uint8_t) w; w >>= 8;\n    dst[4] = (uint8_t) w; w >>= 8;\n    dst[3] = (uint8_t) w; w >>= 8;\n    dst[2] = (uint8_t) w; w >>= 8;\n    dst[1] = (uint8_t) w; w >>= 8;\n    dst[0] = (uint8_t) w;\n#endif\n}\n\n#define LOAD32_BE(SRC) load32_be(SRC)\nstatic inline uint32_t\nload32_be(const uint8_t src[4])\n{\n#ifdef NATIVE_BIG_ENDIAN\n    uint32_t w;\n    memcpy(&w, src, sizeof w);\n    return w;\n#else\n    uint32_t w = (uint32_t) src[3];\n    w |= (uint32_t) src[2] <<  8;\n    w |= (uint32_t) src[1] << 16;\n    w |= (uint32_t) src[0] << 24;\n    return w;\n#endif\n}\n\n#define STORE32_BE(DST, W) store32_be((DST), (W))\nstatic inline void\nstore32_be(uint8_t dst[4], uint32_t w)\n{\n#ifdef NATIVE_BIG_ENDIAN\n    memcpy(dst, &w, sizeof w);\n#else\n    dst[3] = (uint8_t) w; w >>= 8;\n    dst[2] = (uint8_t) w; w >>= 8;\n    dst[1] = (uint8_t) w; w >>= 8;\n    dst[0] = (uint8_t) w;\n#endif\n}\n\n#define XOR_BUF(OUT, IN, N) xor_buf((OUT), (IN), (N))\nstatic inline void\nxor_buf(unsigned char *out, const unsigned char *in, size_t n)\n{\n    size_t i;\n\n    for (i = 0; i < n; i++) {\n        out[i] ^= in[i];\n    }\n}\n\n#if !defined(__clang__) && !defined(__GNUC__)\n# ifdef __attribute__\n#  undef __attribute__\n# endif\n# define __attribute__(a)\n#endif\n\n#ifndef CRYPTO_ALIGN\n# if defined(__INTEL_COMPILER) || defined(_MSC_VER)\n#  define CRYPTO_ALIGN(x) __declspec(align(x))\n# else\n#  define CRYPTO_ALIGN(x) __attribute__ ((aligned(x)))\n# endif\n#endif\n\n#ifdef _MSC_VER\n\n# if defined(_M_X64) || defined(_M_IX86)\n#  include <intrin.h>\n\n#  define HAVE_INTRIN_H    1\n#  define HAVE_MMINTRIN_H  1\n#  define HAVE_EMMINTRIN_H 1\n#  define HAVE_PMMINTRIN_H 1\n#  define HAVE_TMMINTRIN_H 1\n#  define HAVE_SMMINTRIN_H 1\n#  define HAVE_AVXINTRIN_H 1\n#  if _MSC_VER >= 1600\n#   define HAVE_WMMINTRIN_H 1\n#  endif\n#  if _MSC_VER >= 1700 && defined(_M_X64)\n#   define HAVE_AVX2INTRIN_H 1\n#  endif\n#  if _MSC_VER >= 1910 && defined(_M_X64)\n#   define HAVE_AVX512FINTRIN_H 1\n#  endif\n\n# elif defined(_M_ARM64)\n\n#  ifndef __ARM_ARCH\n#   define __ARM_ARCH 1\n#  endif\n#  ifndef __ARM_NEON\n#   define __ARM_NEON 1\n#  endif\n#  define HAVE_ARMCRYPTO 1\n\n# endif /* _MSC_VER */\n\n#elif defined(HAVE_INTRIN_H)\n# include <intrin.h>\n#endif\n\n#ifdef HAVE_LIBCTGRIND\nextern void ct_poison  (const void *, size_t);\nextern void ct_unpoison(const void *, size_t);\n# define POISON(X, L)   ct_poison((X), (L))\n# define UNPOISON(X, L) ct_unpoison((X), (L))\n#else\n# define POISON(X, L)   (void) 0\n# define UNPOISON(X, L) (void) 0\n#endif\n\n#ifdef HAVE_GCC_MEMORY_FENCES\n# define ACQUIRE_FENCE __atomic_thread_fence(__ATOMIC_ACQUIRE)\n#elif defined(HAVE_C11_MEMORY_FENCES)\n# define ACQUIRE_FENCE atomic_thread_fence(memory_order_acquire)\n#else\n# define ACQUIRE_FENCE (void) 0\n#endif\n\n#endif\n"
  },
  {
    "path": "src/libsodium/include/sodium/private/ed25519_ref10.h",
    "content": "#ifndef ed25519_ref10_H\n#define ed25519_ref10_H\n\n#include <stddef.h>\n#include <stdint.h>\n\n#include \"private/quirks.h\"\n\n/*\n fe means field element.\n Here the field is \\Z/(2^255-19).\n */\n\n#ifdef HAVE_TI_MODE\ntypedef uint64_t fe25519[5];\n#else\ntypedef int32_t fe25519[10];\n#endif\n\nvoid fe25519_invert(fe25519 out, const fe25519 z);\nvoid fe25519_frombytes(fe25519 h, const unsigned char *s);\nvoid fe25519_tobytes(unsigned char *s, const fe25519 h);\n\n#ifdef HAVE_TI_MODE\n# include \"ed25519_ref10_fe_51.h\"\n#else\n# include \"ed25519_ref10_fe_25_5.h\"\n#endif\n\n/*\n ge means group element.\n\n Here the group is the set of pairs (x,y) of field elements\n satisfying -x^2 + y^2 = 1 + d x^2y^2\n where d = -121665/121666.\n\n Representations:\n ge25519_p2 (projective): (X:Y:Z) satisfying x=X/Z, y=Y/Z\n ge25519_p3 (extended): (X:Y:Z:T) satisfying x=X/Z, y=Y/Z, XY=ZT\n ge25519_p1p1 (completed): ((X:Z),(Y:T)) satisfying x=X/Z, y=Y/T\n ge25519_precomp (Duif): (y+x,y-x,2dxy)\n */\n\ntypedef struct {\n    fe25519 X;\n    fe25519 Y;\n    fe25519 Z;\n} ge25519_p2;\n\ntypedef struct {\n    fe25519 X;\n    fe25519 Y;\n    fe25519 Z;\n    fe25519 T;\n} ge25519_p3;\n\ntypedef struct {\n    fe25519 X;\n    fe25519 Y;\n    fe25519 Z;\n    fe25519 T;\n} ge25519_p1p1;\n\ntypedef struct {\n    fe25519 yplusx;\n    fe25519 yminusx;\n    fe25519 xy2d;\n} ge25519_precomp;\n\ntypedef struct {\n    fe25519 YplusX;\n    fe25519 YminusX;\n    fe25519 Z;\n    fe25519 T2d;\n} ge25519_cached;\n\nvoid ge25519_tobytes(unsigned char *s, const ge25519_p2 *h);\n\nvoid ge25519_p3_tobytes(unsigned char *s, const ge25519_p3 *h);\n\nint ge25519_frombytes(ge25519_p3 *h, const unsigned char *s);\n\nint ge25519_frombytes_negate_vartime(ge25519_p3 *h, const unsigned char *s);\n\nvoid ge25519_p1p1_to_p2(ge25519_p2 *r, const ge25519_p1p1 *p);\n\nvoid ge25519_p1p1_to_p3(ge25519_p3 *r, const ge25519_p1p1 *p);\n\nvoid ge25519_p2_to_p3(ge25519_p3 *r, const ge25519_p2 *p);\n\nvoid ge25519_p3_add(ge25519_p3 *r, const ge25519_p3 *p, const ge25519_p3 *q);\n\nvoid ge25519_p3_sub(ge25519_p3 *r, const ge25519_p3 *p, const ge25519_p3 *q);\n\nvoid ge25519_scalarmult_base(ge25519_p3 *h, const unsigned char *a);\n\nvoid ge25519_double_scalarmult_vartime(ge25519_p2 *r, const unsigned char *a,\n                                       const ge25519_p3 *A,\n                                       const unsigned char *b);\n\nvoid ge25519_scalarmult(ge25519_p3 *h, const unsigned char *a,\n                        const ge25519_p3 *p);\n\nvoid ge25519_clear_cofactor(ge25519_p3 *p3);\n\nint ge25519_is_canonical(const unsigned char *s);\n\nint ge25519_is_on_curve(const ge25519_p3 *p);\n\nint ge25519_is_on_main_subgroup(const ge25519_p3 *p);\n\nint ge25519_has_small_order(const ge25519_p3 *p);\n\nvoid ge25519_from_uniform(unsigned char s[32], const unsigned char r[32]);\n\nvoid ge25519_from_hash(unsigned char s[32], const unsigned char h[64]);\n\n/*\n Ristretto group\n */\n\nint ristretto255_frombytes(ge25519_p3 *h, const unsigned char *s);\n\nvoid ristretto255_p3_tobytes(unsigned char *s, const ge25519_p3 *h);\n\nvoid ristretto255_from_hash(unsigned char s[32], const unsigned char h[64]);\n\n/*\n The set of scalars is \\Z/l\n where l = 2^252 + 27742317777372353535851937790883648493.\n */\n\nvoid sc25519_invert(unsigned char recip[32], const unsigned char s[32]);\n\nvoid sc25519_reduce(unsigned char s[64]);\n\nvoid sc25519_mul(unsigned char s[32], const unsigned char a[32],\n                 const unsigned char b[32]);\n\nvoid sc25519_muladd(unsigned char s[32], const unsigned char a[32],\n                    const unsigned char b[32], const unsigned char c[32]);\n\nint sc25519_is_canonical(const unsigned char s[32]);\n\n#endif\n"
  },
  {
    "path": "src/libsodium/include/sodium/private/ed25519_ref10_fe_25_5.h",
    "content": "#include <string.h>\n\n#include \"private/common.h\"\n#include \"private/quirks.h\"\n#include \"utils.h\"\n\n/*\n h = 0\n */\n\nstatic inline void\nfe25519_0(fe25519 h)\n{\n    memset(&h[0], 0, 10 * sizeof h[0]);\n}\n\n/*\n h = 1\n */\n\nstatic inline void\nfe25519_1(fe25519 h)\n{\n    h[0] = 1;\n    h[1] = 0;\n    memset(&h[2], 0, 8 * sizeof h[0]);\n}\n\n/*\n h = f + g\n Can overlap h with f or g.\n *\n Preconditions:\n |f| bounded by 1.1*2^25,1.1*2^24,1.1*2^25,1.1*2^24,etc.\n |g| bounded by 1.1*2^25,1.1*2^24,1.1*2^25,1.1*2^24,etc.\n *\n Postconditions:\n |h| bounded by 1.1*2^26,1.1*2^25,1.1*2^26,1.1*2^25,etc.\n */\n\nstatic inline void\nfe25519_add(fe25519 h, const fe25519 f, const fe25519 g)\n{\n    int32_t h0 = f[0] + g[0];\n    int32_t h1 = f[1] + g[1];\n    int32_t h2 = f[2] + g[2];\n    int32_t h3 = f[3] + g[3];\n    int32_t h4 = f[4] + g[4];\n    int32_t h5 = f[5] + g[5];\n    int32_t h6 = f[6] + g[6];\n    int32_t h7 = f[7] + g[7];\n    int32_t h8 = f[8] + g[8];\n    int32_t h9 = f[9] + g[9];\n\n    h[0] = h0;\n    h[1] = h1;\n    h[2] = h2;\n    h[3] = h3;\n    h[4] = h4;\n    h[5] = h5;\n    h[6] = h6;\n    h[7] = h7;\n    h[8] = h8;\n    h[9] = h9;\n}\n\n/*\n h = f - g\n Can overlap h with f or g.\n *\n Preconditions:\n |f| bounded by 1.1*2^25,1.1*2^24,1.1*2^25,1.1*2^24,etc.\n |g| bounded by 1.1*2^25,1.1*2^24,1.1*2^25,1.1*2^24,etc.\n *\n Postconditions:\n |h| bounded by 1.1*2^26,1.1*2^25,1.1*2^26,1.1*2^25,etc.\n */\n\nstatic void\nfe25519_sub(fe25519 h, const fe25519 f, const fe25519 g)\n{\n    int32_t h0 = f[0] - g[0];\n    int32_t h1 = f[1] - g[1];\n    int32_t h2 = f[2] - g[2];\n    int32_t h3 = f[3] - g[3];\n    int32_t h4 = f[4] - g[4];\n    int32_t h5 = f[5] - g[5];\n    int32_t h6 = f[6] - g[6];\n    int32_t h7 = f[7] - g[7];\n    int32_t h8 = f[8] - g[8];\n    int32_t h9 = f[9] - g[9];\n\n    h[0] = h0;\n    h[1] = h1;\n    h[2] = h2;\n    h[3] = h3;\n    h[4] = h4;\n    h[5] = h5;\n    h[6] = h6;\n    h[7] = h7;\n    h[8] = h8;\n    h[9] = h9;\n}\n\n/*\n h = -f\n *\n Preconditions:\n |f| bounded by 1.1*2^25,1.1*2^24,1.1*2^25,1.1*2^24,etc.\n *\n Postconditions:\n |h| bounded by 1.1*2^25,1.1*2^24,1.1*2^25,1.1*2^24,etc.\n */\n\nstatic inline void\nfe25519_neg(fe25519 h, const fe25519 f)\n{\n    int32_t h0 = -f[0];\n    int32_t h1 = -f[1];\n    int32_t h2 = -f[2];\n    int32_t h3 = -f[3];\n    int32_t h4 = -f[4];\n    int32_t h5 = -f[5];\n    int32_t h6 = -f[6];\n    int32_t h7 = -f[7];\n    int32_t h8 = -f[8];\n    int32_t h9 = -f[9];\n\n    h[0] = h0;\n    h[1] = h1;\n    h[2] = h2;\n    h[3] = h3;\n    h[4] = h4;\n    h[5] = h5;\n    h[6] = h6;\n    h[7] = h7;\n    h[8] = h8;\n    h[9] = h9;\n}\n\n/*\n Replace (f,g) with (g,g) if b == 1;\n replace (f,g) with (f,g) if b == 0.\n *\n Preconditions: b in {0,1}.\n */\n\nstatic void\nfe25519_cmov(fe25519 f, const fe25519 g, unsigned int b)\n{\n    uint32_t mask = (uint32_t) (-(int32_t) b);\n    int32_t  f0, f1, f2, f3, f4, f5, f6, f7, f8, f9;\n    int32_t  x0, x1, x2, x3, x4, x5, x6, x7, x8, x9;\n\n    f0 = f[0];\n    f1 = f[1];\n    f2 = f[2];\n    f3 = f[3];\n    f4 = f[4];\n    f5 = f[5];\n    f6 = f[6];\n    f7 = f[7];\n    f8 = f[8];\n    f9 = f[9];\n\n    x0 = f0 ^ g[0];\n    x1 = f1 ^ g[1];\n    x2 = f2 ^ g[2];\n    x3 = f3 ^ g[3];\n    x4 = f4 ^ g[4];\n    x5 = f5 ^ g[5];\n    x6 = f6 ^ g[6];\n    x7 = f7 ^ g[7];\n    x8 = f8 ^ g[8];\n    x9 = f9 ^ g[9];\n\n#ifdef HAVE_INLINE_ASM\n    __asm__ __volatile__(\"\" : \"+r\"(mask));\n#endif\n\n    x0 &= mask;\n    x1 &= mask;\n    x2 &= mask;\n    x3 &= mask;\n    x4 &= mask;\n    x5 &= mask;\n    x6 &= mask;\n    x7 &= mask;\n    x8 &= mask;\n    x9 &= mask;\n\n    f[0] = f0 ^ x0;\n    f[1] = f1 ^ x1;\n    f[2] = f2 ^ x2;\n    f[3] = f3 ^ x3;\n    f[4] = f4 ^ x4;\n    f[5] = f5 ^ x5;\n    f[6] = f6 ^ x6;\n    f[7] = f7 ^ x7;\n    f[8] = f8 ^ x8;\n    f[9] = f9 ^ x9;\n}\n\nstatic void\nfe25519_cswap(fe25519 f, fe25519 g, unsigned int b)\n{\n    uint32_t mask = (uint32_t) (-(int64_t) b);\n    int32_t  f0, f1, f2, f3, f4, f5, f6, f7, f8, f9;\n    int32_t  g0, g1, g2, g3, g4, g5, g6, g7, g8, g9;\n    int32_t  x0, x1, x2, x3, x4, x5, x6, x7, x8, x9;\n\n    f0 = f[0];\n    f1 = f[1];\n    f2 = f[2];\n    f3 = f[3];\n    f4 = f[4];\n    f5 = f[5];\n    f6 = f[6];\n    f7 = f[7];\n    f8 = f[8];\n    f9 = f[9];\n\n    g0 = g[0];\n    g1 = g[1];\n    g2 = g[2];\n    g3 = g[3];\n    g4 = g[4];\n    g5 = g[5];\n    g6 = g[6];\n    g7 = g[7];\n    g8 = g[8];\n    g9 = g[9];\n\n    x0 = f0 ^ g0;\n    x1 = f1 ^ g1;\n    x2 = f2 ^ g2;\n    x3 = f3 ^ g3;\n    x4 = f4 ^ g4;\n    x5 = f5 ^ g5;\n    x6 = f6 ^ g6;\n    x7 = f7 ^ g7;\n    x8 = f8 ^ g8;\n    x9 = f9 ^ g9;\n\n#ifdef HAVE_INLINE_ASM\n    __asm__ __volatile__(\"\" : \"+r\"(mask));\n#endif\n\n    x0 &= mask;\n    x1 &= mask;\n    x2 &= mask;\n    x3 &= mask;\n    x4 &= mask;\n    x5 &= mask;\n    x6 &= mask;\n    x7 &= mask;\n    x8 &= mask;\n    x9 &= mask;\n\n    f[0] = f0 ^ x0;\n    f[1] = f1 ^ x1;\n    f[2] = f2 ^ x2;\n    f[3] = f3 ^ x3;\n    f[4] = f4 ^ x4;\n    f[5] = f5 ^ x5;\n    f[6] = f6 ^ x6;\n    f[7] = f7 ^ x7;\n    f[8] = f8 ^ x8;\n    f[9] = f9 ^ x9;\n\n    g[0] = g0 ^ x0;\n    g[1] = g1 ^ x1;\n    g[2] = g2 ^ x2;\n    g[3] = g3 ^ x3;\n    g[4] = g4 ^ x4;\n    g[5] = g5 ^ x5;\n    g[6] = g6 ^ x6;\n    g[7] = g7 ^ x7;\n    g[8] = g8 ^ x8;\n    g[9] = g9 ^ x9;\n}\n\n/*\n h = f\n */\n\nstatic inline void\nfe25519_copy(fe25519 h, const fe25519 f)\n{\n    memcpy(h, f, 10 * sizeof h[0]);\n}\n\n/*\n return 1 if f is in {1,3,5,...,q-2}\n return 0 if f is in {0,2,4,...,q-1}\n\n Preconditions:\n |f| bounded by 1.1*2^26,1.1*2^25,1.1*2^26,1.1*2^25,etc.\n */\n\nstatic inline int\nfe25519_isnegative(const fe25519 f)\n{\n    unsigned char s[32];\n\n    fe25519_tobytes(s, f);\n\n    return s[0] & 1;\n}\n\n/*\n return 1 if f == 0\n return 0 if f != 0\n\n Preconditions:\n |f| bounded by 1.1*2^26,1.1*2^25,1.1*2^26,1.1*2^25,etc.\n */\n\nstatic inline int\nfe25519_iszero(const fe25519 f)\n{\n    unsigned char s[32];\n\n    fe25519_tobytes(s, f);\n\n    return sodium_is_zero(s, 32);\n}\n\n/*\n h = f * g\n Can overlap h with f or g.\n *\n Preconditions:\n |f| bounded by 1.65*2^26,1.65*2^25,1.65*2^26,1.65*2^25,etc.\n |g| bounded by 1.65*2^26,1.65*2^25,1.65*2^26,1.65*2^25,etc.\n *\n Postconditions:\n |h| bounded by 1.01*2^25,1.01*2^24,1.01*2^25,1.01*2^24,etc.\n */\n\n/*\n Notes on implementation strategy:\n *\n Using schoolbook multiplication.\n Karatsuba would save a little in some cost models.\n *\n Most multiplications by 2 and 19 are 32-bit precomputations;\n cheaper than 64-bit postcomputations.\n *\n There is one remaining multiplication by 19 in the carry chain;\n one *19 precomputation can be merged into this,\n but the resulting data flow is considerably less clean.\n *\n There are 12 carries below.\n 10 of them are 2-way parallelizable and vectorizable.\n Can get away with 11 carries, but then data flow is much deeper.\n *\n With tighter constraints on inputs can squeeze carries into int32.\n */\n\nstatic void\nfe25519_mul(fe25519 h, const fe25519 f, const fe25519 g)\n{\n    int32_t f0 = f[0];\n    int32_t f1 = f[1];\n    int32_t f2 = f[2];\n    int32_t f3 = f[3];\n    int32_t f4 = f[4];\n    int32_t f5 = f[5];\n    int32_t f6 = f[6];\n    int32_t f7 = f[7];\n    int32_t f8 = f[8];\n    int32_t f9 = f[9];\n\n    int32_t g0 = g[0];\n    int32_t g1 = g[1];\n    int32_t g2 = g[2];\n    int32_t g3 = g[3];\n    int32_t g4 = g[4];\n    int32_t g5 = g[5];\n    int32_t g6 = g[6];\n    int32_t g7 = g[7];\n    int32_t g8 = g[8];\n    int32_t g9 = g[9];\n\n    int32_t g1_19 = 19 * g1; /* 1.959375*2^29 */\n    int32_t g2_19 = 19 * g2; /* 1.959375*2^30; still ok */\n    int32_t g3_19 = 19 * g3;\n    int32_t g4_19 = 19 * g4;\n    int32_t g5_19 = 19 * g5;\n    int32_t g6_19 = 19 * g6;\n    int32_t g7_19 = 19 * g7;\n    int32_t g8_19 = 19 * g8;\n    int32_t g9_19 = 19 * g9;\n    int32_t f1_2  = 2 * f1;\n    int32_t f3_2  = 2 * f3;\n    int32_t f5_2  = 2 * f5;\n    int32_t f7_2  = 2 * f7;\n    int32_t f9_2  = 2 * f9;\n\n    int64_t f0g0    = f0 * (int64_t) g0;\n    int64_t f0g1    = f0 * (int64_t) g1;\n    int64_t f0g2    = f0 * (int64_t) g2;\n    int64_t f0g3    = f0 * (int64_t) g3;\n    int64_t f0g4    = f0 * (int64_t) g4;\n    int64_t f0g5    = f0 * (int64_t) g5;\n    int64_t f0g6    = f0 * (int64_t) g6;\n    int64_t f0g7    = f0 * (int64_t) g7;\n    int64_t f0g8    = f0 * (int64_t) g8;\n    int64_t f0g9    = f0 * (int64_t) g9;\n    int64_t f1g0    = f1 * (int64_t) g0;\n    int64_t f1g1_2  = f1_2 * (int64_t) g1;\n    int64_t f1g2    = f1 * (int64_t) g2;\n    int64_t f1g3_2  = f1_2 * (int64_t) g3;\n    int64_t f1g4    = f1 * (int64_t) g4;\n    int64_t f1g5_2  = f1_2 * (int64_t) g5;\n    int64_t f1g6    = f1 * (int64_t) g6;\n    int64_t f1g7_2  = f1_2 * (int64_t) g7;\n    int64_t f1g8    = f1 * (int64_t) g8;\n    int64_t f1g9_38 = f1_2 * (int64_t) g9_19;\n    int64_t f2g0    = f2 * (int64_t) g0;\n    int64_t f2g1    = f2 * (int64_t) g1;\n    int64_t f2g2    = f2 * (int64_t) g2;\n    int64_t f2g3    = f2 * (int64_t) g3;\n    int64_t f2g4    = f2 * (int64_t) g4;\n    int64_t f2g5    = f2 * (int64_t) g5;\n    int64_t f2g6    = f2 * (int64_t) g6;\n    int64_t f2g7    = f2 * (int64_t) g7;\n    int64_t f2g8_19 = f2 * (int64_t) g8_19;\n    int64_t f2g9_19 = f2 * (int64_t) g9_19;\n    int64_t f3g0    = f3 * (int64_t) g0;\n    int64_t f3g1_2  = f3_2 * (int64_t) g1;\n    int64_t f3g2    = f3 * (int64_t) g2;\n    int64_t f3g3_2  = f3_2 * (int64_t) g3;\n    int64_t f3g4    = f3 * (int64_t) g4;\n    int64_t f3g5_2  = f3_2 * (int64_t) g5;\n    int64_t f3g6    = f3 * (int64_t) g6;\n    int64_t f3g7_38 = f3_2 * (int64_t) g7_19;\n    int64_t f3g8_19 = f3 * (int64_t) g8_19;\n    int64_t f3g9_38 = f3_2 * (int64_t) g9_19;\n    int64_t f4g0    = f4 * (int64_t) g0;\n    int64_t f4g1    = f4 * (int64_t) g1;\n    int64_t f4g2    = f4 * (int64_t) g2;\n    int64_t f4g3    = f4 * (int64_t) g3;\n    int64_t f4g4    = f4 * (int64_t) g4;\n    int64_t f4g5    = f4 * (int64_t) g5;\n    int64_t f4g6_19 = f4 * (int64_t) g6_19;\n    int64_t f4g7_19 = f4 * (int64_t) g7_19;\n    int64_t f4g8_19 = f4 * (int64_t) g8_19;\n    int64_t f4g9_19 = f4 * (int64_t) g9_19;\n    int64_t f5g0    = f5 * (int64_t) g0;\n    int64_t f5g1_2  = f5_2 * (int64_t) g1;\n    int64_t f5g2    = f5 * (int64_t) g2;\n    int64_t f5g3_2  = f5_2 * (int64_t) g3;\n    int64_t f5g4    = f5 * (int64_t) g4;\n    int64_t f5g5_38 = f5_2 * (int64_t) g5_19;\n    int64_t f5g6_19 = f5 * (int64_t) g6_19;\n    int64_t f5g7_38 = f5_2 * (int64_t) g7_19;\n    int64_t f5g8_19 = f5 * (int64_t) g8_19;\n    int64_t f5g9_38 = f5_2 * (int64_t) g9_19;\n    int64_t f6g0    = f6 * (int64_t) g0;\n    int64_t f6g1    = f6 * (int64_t) g1;\n    int64_t f6g2    = f6 * (int64_t) g2;\n    int64_t f6g3    = f6 * (int64_t) g3;\n    int64_t f6g4_19 = f6 * (int64_t) g4_19;\n    int64_t f6g5_19 = f6 * (int64_t) g5_19;\n    int64_t f6g6_19 = f6 * (int64_t) g6_19;\n    int64_t f6g7_19 = f6 * (int64_t) g7_19;\n    int64_t f6g8_19 = f6 * (int64_t) g8_19;\n    int64_t f6g9_19 = f6 * (int64_t) g9_19;\n    int64_t f7g0    = f7 * (int64_t) g0;\n    int64_t f7g1_2  = f7_2 * (int64_t) g1;\n    int64_t f7g2    = f7 * (int64_t) g2;\n    int64_t f7g3_38 = f7_2 * (int64_t) g3_19;\n    int64_t f7g4_19 = f7 * (int64_t) g4_19;\n    int64_t f7g5_38 = f7_2 * (int64_t) g5_19;\n    int64_t f7g6_19 = f7 * (int64_t) g6_19;\n    int64_t f7g7_38 = f7_2 * (int64_t) g7_19;\n    int64_t f7g8_19 = f7 * (int64_t) g8_19;\n    int64_t f7g9_38 = f7_2 * (int64_t) g9_19;\n    int64_t f8g0    = f8 * (int64_t) g0;\n    int64_t f8g1    = f8 * (int64_t) g1;\n    int64_t f8g2_19 = f8 * (int64_t) g2_19;\n    int64_t f8g3_19 = f8 * (int64_t) g3_19;\n    int64_t f8g4_19 = f8 * (int64_t) g4_19;\n    int64_t f8g5_19 = f8 * (int64_t) g5_19;\n    int64_t f8g6_19 = f8 * (int64_t) g6_19;\n    int64_t f8g7_19 = f8 * (int64_t) g7_19;\n    int64_t f8g8_19 = f8 * (int64_t) g8_19;\n    int64_t f8g9_19 = f8 * (int64_t) g9_19;\n    int64_t f9g0    = f9 * (int64_t) g0;\n    int64_t f9g1_38 = f9_2 * (int64_t) g1_19;\n    int64_t f9g2_19 = f9 * (int64_t) g2_19;\n    int64_t f9g3_38 = f9_2 * (int64_t) g3_19;\n    int64_t f9g4_19 = f9 * (int64_t) g4_19;\n    int64_t f9g5_38 = f9_2 * (int64_t) g5_19;\n    int64_t f9g6_19 = f9 * (int64_t) g6_19;\n    int64_t f9g7_38 = f9_2 * (int64_t) g7_19;\n    int64_t f9g8_19 = f9 * (int64_t) g8_19;\n    int64_t f9g9_38 = f9_2 * (int64_t) g9_19;\n\n    int64_t h0 = f0g0 + f1g9_38 + f2g8_19 + f3g7_38 + f4g6_19 + f5g5_38 +\n                 f6g4_19 + f7g3_38 + f8g2_19 + f9g1_38;\n    int64_t h1 = f0g1 + f1g0 + f2g9_19 + f3g8_19 + f4g7_19 + f5g6_19 + f6g5_19 +\n                 f7g4_19 + f8g3_19 + f9g2_19;\n    int64_t h2 = f0g2 + f1g1_2 + f2g0 + f3g9_38 + f4g8_19 + f5g7_38 + f6g6_19 +\n                 f7g5_38 + f8g4_19 + f9g3_38;\n    int64_t h3 = f0g3 + f1g2 + f2g1 + f3g0 + f4g9_19 + f5g8_19 + f6g7_19 +\n                 f7g6_19 + f8g5_19 + f9g4_19;\n    int64_t h4 = f0g4 + f1g3_2 + f2g2 + f3g1_2 + f4g0 + f5g9_38 + f6g8_19 +\n                 f7g7_38 + f8g6_19 + f9g5_38;\n    int64_t h5 = f0g5 + f1g4 + f2g3 + f3g2 + f4g1 + f5g0 + f6g9_19 + f7g8_19 +\n                 f8g7_19 + f9g6_19;\n    int64_t h6 = f0g6 + f1g5_2 + f2g4 + f3g3_2 + f4g2 + f5g1_2 + f6g0 +\n                 f7g9_38 + f8g8_19 + f9g7_38;\n    int64_t h7 = f0g7 + f1g6 + f2g5 + f3g4 + f4g3 + f5g2 + f6g1 + f7g0 +\n                 f8g9_19 + f9g8_19;\n    int64_t h8 = f0g8 + f1g7_2 + f2g6 + f3g5_2 + f4g4 + f5g3_2 + f6g2 + f7g1_2 +\n                 f8g0 + f9g9_38;\n    int64_t h9 =\n        f0g9 + f1g8 + f2g7 + f3g6 + f4g5 + f5g4 + f6g3 + f7g2 + f8g1 + f9g0;\n\n    int64_t carry0;\n    int64_t carry1;\n    int64_t carry2;\n    int64_t carry3;\n    int64_t carry4;\n    int64_t carry5;\n    int64_t carry6;\n    int64_t carry7;\n    int64_t carry8;\n    int64_t carry9;\n\n    /*\n     |h0| <= (1.65*1.65*2^52*(1+19+19+19+19)+1.65*1.65*2^50*(38+38+38+38+38))\n     i.e. |h0| <= 1.4*2^60; narrower ranges for h2, h4, h6, h8\n     |h1| <= (1.65*1.65*2^51*(1+1+19+19+19+19+19+19+19+19))\n     i.e. |h1| <= 1.7*2^59; narrower ranges for h3, h5, h7, h9\n     */\n\n    carry0 = (h0 + (int64_t)(1L << 25)) >> 26;\n    h1 += carry0;\n    h0 -= carry0 * ((uint64_t) 1L << 26);\n    carry4 = (h4 + (int64_t)(1L << 25)) >> 26;\n    h5 += carry4;\n    h4 -= carry4 * ((uint64_t) 1L << 26);\n    /* |h0| <= 2^25 */\n    /* |h4| <= 2^25 */\n    /* |h1| <= 1.71*2^59 */\n    /* |h5| <= 1.71*2^59 */\n\n    carry1 = (h1 + (int64_t)(1L << 24)) >> 25;\n    h2 += carry1;\n    h1 -= carry1 * ((uint64_t) 1L << 25);\n    carry5 = (h5 + (int64_t)(1L << 24)) >> 25;\n    h6 += carry5;\n    h5 -= carry5 * ((uint64_t) 1L << 25);\n    /* |h1| <= 2^24; from now on fits into int32 */\n    /* |h5| <= 2^24; from now on fits into int32 */\n    /* |h2| <= 1.41*2^60 */\n    /* |h6| <= 1.41*2^60 */\n\n    carry2 = (h2 + (int64_t)(1L << 25)) >> 26;\n    h3 += carry2;\n    h2 -= carry2 * ((uint64_t) 1L << 26);\n    carry6 = (h6 + (int64_t)(1L << 25)) >> 26;\n    h7 += carry6;\n    h6 -= carry6 * ((uint64_t) 1L << 26);\n    /* |h2| <= 2^25; from now on fits into int32 unchanged */\n    /* |h6| <= 2^25; from now on fits into int32 unchanged */\n    /* |h3| <= 1.71*2^59 */\n    /* |h7| <= 1.71*2^59 */\n\n    carry3 = (h3 + (int64_t)(1L << 24)) >> 25;\n    h4 += carry3;\n    h3 -= carry3 * ((uint64_t) 1L << 25);\n    carry7 = (h7 + (int64_t)(1L << 24)) >> 25;\n    h8 += carry7;\n    h7 -= carry7 * ((uint64_t) 1L << 25);\n    /* |h3| <= 2^24; from now on fits into int32 unchanged */\n    /* |h7| <= 2^24; from now on fits into int32 unchanged */\n    /* |h4| <= 1.72*2^34 */\n    /* |h8| <= 1.41*2^60 */\n\n    carry4 = (h4 + (int64_t)(1L << 25)) >> 26;\n    h5 += carry4;\n    h4 -= carry4 * ((uint64_t) 1L << 26);\n    carry8 = (h8 + (int64_t)(1L << 25)) >> 26;\n    h9 += carry8;\n    h8 -= carry8 * ((uint64_t) 1L << 26);\n    /* |h4| <= 2^25; from now on fits into int32 unchanged */\n    /* |h8| <= 2^25; from now on fits into int32 unchanged */\n    /* |h5| <= 1.01*2^24 */\n    /* |h9| <= 1.71*2^59 */\n\n    carry9 = (h9 + (int64_t)(1L << 24)) >> 25;\n    h0 += carry9 * 19;\n    h9 -= carry9 * ((uint64_t) 1L << 25);\n    /* |h9| <= 2^24; from now on fits into int32 unchanged */\n    /* |h0| <= 1.1*2^39 */\n\n    carry0 = (h0 + (int64_t)(1L << 25)) >> 26;\n    h1 += carry0;\n    h0 -= carry0 * ((uint64_t) 1L << 26);\n    /* |h0| <= 2^25; from now on fits into int32 unchanged */\n    /* |h1| <= 1.01*2^24 */\n\n    h[0] = (int32_t) h0;\n    h[1] = (int32_t) h1;\n    h[2] = (int32_t) h2;\n    h[3] = (int32_t) h3;\n    h[4] = (int32_t) h4;\n    h[5] = (int32_t) h5;\n    h[6] = (int32_t) h6;\n    h[7] = (int32_t) h7;\n    h[8] = (int32_t) h8;\n    h[9] = (int32_t) h9;\n}\n\n/*\n h = f * f\n Can overlap h with f.\n *\n Preconditions:\n |f| bounded by 1.65*2^26,1.65*2^25,1.65*2^26,1.65*2^25,etc.\n *\n Postconditions:\n |h| bounded by 1.01*2^25,1.01*2^24,1.01*2^25,1.01*2^24,etc.\n */\n\nstatic void\nfe25519_sq(fe25519 h, const fe25519 f)\n{\n    int32_t f0 = f[0];\n    int32_t f1 = f[1];\n    int32_t f2 = f[2];\n    int32_t f3 = f[3];\n    int32_t f4 = f[4];\n    int32_t f5 = f[5];\n    int32_t f6 = f[6];\n    int32_t f7 = f[7];\n    int32_t f8 = f[8];\n    int32_t f9 = f[9];\n\n    int32_t f0_2  = 2 * f0;\n    int32_t f1_2  = 2 * f1;\n    int32_t f2_2  = 2 * f2;\n    int32_t f3_2  = 2 * f3;\n    int32_t f4_2  = 2 * f4;\n    int32_t f5_2  = 2 * f5;\n    int32_t f6_2  = 2 * f6;\n    int32_t f7_2  = 2 * f7;\n    int32_t f5_38 = 38 * f5; /* 1.959375*2^30 */\n    int32_t f6_19 = 19 * f6; /* 1.959375*2^30 */\n    int32_t f7_38 = 38 * f7; /* 1.959375*2^30 */\n    int32_t f8_19 = 19 * f8; /* 1.959375*2^30 */\n    int32_t f9_38 = 38 * f9; /* 1.959375*2^30 */\n\n    int64_t f0f0    = f0 * (int64_t) f0;\n    int64_t f0f1_2  = f0_2 * (int64_t) f1;\n    int64_t f0f2_2  = f0_2 * (int64_t) f2;\n    int64_t f0f3_2  = f0_2 * (int64_t) f3;\n    int64_t f0f4_2  = f0_2 * (int64_t) f4;\n    int64_t f0f5_2  = f0_2 * (int64_t) f5;\n    int64_t f0f6_2  = f0_2 * (int64_t) f6;\n    int64_t f0f7_2  = f0_2 * (int64_t) f7;\n    int64_t f0f8_2  = f0_2 * (int64_t) f8;\n    int64_t f0f9_2  = f0_2 * (int64_t) f9;\n    int64_t f1f1_2  = f1_2 * (int64_t) f1;\n    int64_t f1f2_2  = f1_2 * (int64_t) f2;\n    int64_t f1f3_4  = f1_2 * (int64_t) f3_2;\n    int64_t f1f4_2  = f1_2 * (int64_t) f4;\n    int64_t f1f5_4  = f1_2 * (int64_t) f5_2;\n    int64_t f1f6_2  = f1_2 * (int64_t) f6;\n    int64_t f1f7_4  = f1_2 * (int64_t) f7_2;\n    int64_t f1f8_2  = f1_2 * (int64_t) f8;\n    int64_t f1f9_76 = f1_2 * (int64_t) f9_38;\n    int64_t f2f2    = f2 * (int64_t) f2;\n    int64_t f2f3_2  = f2_2 * (int64_t) f3;\n    int64_t f2f4_2  = f2_2 * (int64_t) f4;\n    int64_t f2f5_2  = f2_2 * (int64_t) f5;\n    int64_t f2f6_2  = f2_2 * (int64_t) f6;\n    int64_t f2f7_2  = f2_2 * (int64_t) f7;\n    int64_t f2f8_38 = f2_2 * (int64_t) f8_19;\n    int64_t f2f9_38 = f2 * (int64_t) f9_38;\n    int64_t f3f3_2  = f3_2 * (int64_t) f3;\n    int64_t f3f4_2  = f3_2 * (int64_t) f4;\n    int64_t f3f5_4  = f3_2 * (int64_t) f5_2;\n    int64_t f3f6_2  = f3_2 * (int64_t) f6;\n    int64_t f3f7_76 = f3_2 * (int64_t) f7_38;\n    int64_t f3f8_38 = f3_2 * (int64_t) f8_19;\n    int64_t f3f9_76 = f3_2 * (int64_t) f9_38;\n    int64_t f4f4    = f4 * (int64_t) f4;\n    int64_t f4f5_2  = f4_2 * (int64_t) f5;\n    int64_t f4f6_38 = f4_2 * (int64_t) f6_19;\n    int64_t f4f7_38 = f4 * (int64_t) f7_38;\n    int64_t f4f8_38 = f4_2 * (int64_t) f8_19;\n    int64_t f4f9_38 = f4 * (int64_t) f9_38;\n    int64_t f5f5_38 = f5 * (int64_t) f5_38;\n    int64_t f5f6_38 = f5_2 * (int64_t) f6_19;\n    int64_t f5f7_76 = f5_2 * (int64_t) f7_38;\n    int64_t f5f8_38 = f5_2 * (int64_t) f8_19;\n    int64_t f5f9_76 = f5_2 * (int64_t) f9_38;\n    int64_t f6f6_19 = f6 * (int64_t) f6_19;\n    int64_t f6f7_38 = f6 * (int64_t) f7_38;\n    int64_t f6f8_38 = f6_2 * (int64_t) f8_19;\n    int64_t f6f9_38 = f6 * (int64_t) f9_38;\n    int64_t f7f7_38 = f7 * (int64_t) f7_38;\n    int64_t f7f8_38 = f7_2 * (int64_t) f8_19;\n    int64_t f7f9_76 = f7_2 * (int64_t) f9_38;\n    int64_t f8f8_19 = f8 * (int64_t) f8_19;\n    int64_t f8f9_38 = f8 * (int64_t) f9_38;\n    int64_t f9f9_38 = f9 * (int64_t) f9_38;\n\n    int64_t h0 = f0f0 + f1f9_76 + f2f8_38 + f3f7_76 + f4f6_38 + f5f5_38;\n    int64_t h1 = f0f1_2 + f2f9_38 + f3f8_38 + f4f7_38 + f5f6_38;\n    int64_t h2 = f0f2_2 + f1f1_2 + f3f9_76 + f4f8_38 + f5f7_76 + f6f6_19;\n    int64_t h3 = f0f3_2 + f1f2_2 + f4f9_38 + f5f8_38 + f6f7_38;\n    int64_t h4 = f0f4_2 + f1f3_4 + f2f2 + f5f9_76 + f6f8_38 + f7f7_38;\n    int64_t h5 = f0f5_2 + f1f4_2 + f2f3_2 + f6f9_38 + f7f8_38;\n    int64_t h6 = f0f6_2 + f1f5_4 + f2f4_2 + f3f3_2 + f7f9_76 + f8f8_19;\n    int64_t h7 = f0f7_2 + f1f6_2 + f2f5_2 + f3f4_2 + f8f9_38;\n    int64_t h8 = f0f8_2 + f1f7_4 + f2f6_2 + f3f5_4 + f4f4 + f9f9_38;\n    int64_t h9 = f0f9_2 + f1f8_2 + f2f7_2 + f3f6_2 + f4f5_2;\n\n    int64_t carry0;\n    int64_t carry1;\n    int64_t carry2;\n    int64_t carry3;\n    int64_t carry4;\n    int64_t carry5;\n    int64_t carry6;\n    int64_t carry7;\n    int64_t carry8;\n    int64_t carry9;\n\n    carry0 = (h0 + (int64_t)(1L << 25)) >> 26;\n    h1 += carry0;\n    h0 -= carry0 * ((uint64_t) 1L << 26);\n    carry4 = (h4 + (int64_t)(1L << 25)) >> 26;\n    h5 += carry4;\n    h4 -= carry4 * ((uint64_t) 1L << 26);\n\n    carry1 = (h1 + (int64_t)(1L << 24)) >> 25;\n    h2 += carry1;\n    h1 -= carry1 * ((uint64_t) 1L << 25);\n    carry5 = (h5 + (int64_t)(1L << 24)) >> 25;\n    h6 += carry5;\n    h5 -= carry5 * ((uint64_t) 1L << 25);\n\n    carry2 = (h2 + (int64_t)(1L << 25)) >> 26;\n    h3 += carry2;\n    h2 -= carry2 * ((uint64_t) 1L << 26);\n    carry6 = (h6 + (int64_t)(1L << 25)) >> 26;\n    h7 += carry6;\n    h6 -= carry6 * ((uint64_t) 1L << 26);\n\n    carry3 = (h3 + (int64_t)(1L << 24)) >> 25;\n    h4 += carry3;\n    h3 -= carry3 * ((uint64_t) 1L << 25);\n    carry7 = (h7 + (int64_t)(1L << 24)) >> 25;\n    h8 += carry7;\n    h7 -= carry7 * ((uint64_t) 1L << 25);\n\n    carry4 = (h4 + (int64_t)(1L << 25)) >> 26;\n    h5 += carry4;\n    h4 -= carry4 * ((uint64_t) 1L << 26);\n    carry8 = (h8 + (int64_t)(1L << 25)) >> 26;\n    h9 += carry8;\n    h8 -= carry8 * ((uint64_t) 1L << 26);\n\n    carry9 = (h9 + (int64_t)(1L << 24)) >> 25;\n    h0 += carry9 * 19;\n    h9 -= carry9 * ((uint64_t) 1L << 25);\n\n    carry0 = (h0 + (int64_t)(1L << 25)) >> 26;\n    h1 += carry0;\n    h0 -= carry0 * ((uint64_t) 1L << 26);\n\n    h[0] = (int32_t) h0;\n    h[1] = (int32_t) h1;\n    h[2] = (int32_t) h2;\n    h[3] = (int32_t) h3;\n    h[4] = (int32_t) h4;\n    h[5] = (int32_t) h5;\n    h[6] = (int32_t) h6;\n    h[7] = (int32_t) h7;\n    h[8] = (int32_t) h8;\n    h[9] = (int32_t) h9;\n}\n\n/*\n h = 2 * f * f\n Can overlap h with f.\n *\n Preconditions:\n |f| bounded by 1.65*2^26,1.65*2^25,1.65*2^26,1.65*2^25,etc.\n *\n Postconditions:\n |h| bounded by 1.01*2^25,1.01*2^24,1.01*2^25,1.01*2^24,etc.\n */\n\nstatic void\nfe25519_sq2(fe25519 h, const fe25519 f)\n{\n    int32_t f0 = f[0];\n    int32_t f1 = f[1];\n    int32_t f2 = f[2];\n    int32_t f3 = f[3];\n    int32_t f4 = f[4];\n    int32_t f5 = f[5];\n    int32_t f6 = f[6];\n    int32_t f7 = f[7];\n    int32_t f8 = f[8];\n    int32_t f9 = f[9];\n\n    int32_t f0_2  = 2 * f0;\n    int32_t f1_2  = 2 * f1;\n    int32_t f2_2  = 2 * f2;\n    int32_t f3_2  = 2 * f3;\n    int32_t f4_2  = 2 * f4;\n    int32_t f5_2  = 2 * f5;\n    int32_t f6_2  = 2 * f6;\n    int32_t f7_2  = 2 * f7;\n    int32_t f5_38 = 38 * f5; /* 1.959375*2^30 */\n    int32_t f6_19 = 19 * f6; /* 1.959375*2^30 */\n    int32_t f7_38 = 38 * f7; /* 1.959375*2^30 */\n    int32_t f8_19 = 19 * f8; /* 1.959375*2^30 */\n    int32_t f9_38 = 38 * f9; /* 1.959375*2^30 */\n\n    int64_t f0f0    = f0 * (int64_t) f0;\n    int64_t f0f1_2  = f0_2 * (int64_t) f1;\n    int64_t f0f2_2  = f0_2 * (int64_t) f2;\n    int64_t f0f3_2  = f0_2 * (int64_t) f3;\n    int64_t f0f4_2  = f0_2 * (int64_t) f4;\n    int64_t f0f5_2  = f0_2 * (int64_t) f5;\n    int64_t f0f6_2  = f0_2 * (int64_t) f6;\n    int64_t f0f7_2  = f0_2 * (int64_t) f7;\n    int64_t f0f8_2  = f0_2 * (int64_t) f8;\n    int64_t f0f9_2  = f0_2 * (int64_t) f9;\n    int64_t f1f1_2  = f1_2 * (int64_t) f1;\n    int64_t f1f2_2  = f1_2 * (int64_t) f2;\n    int64_t f1f3_4  = f1_2 * (int64_t) f3_2;\n    int64_t f1f4_2  = f1_2 * (int64_t) f4;\n    int64_t f1f5_4  = f1_2 * (int64_t) f5_2;\n    int64_t f1f6_2  = f1_2 * (int64_t) f6;\n    int64_t f1f7_4  = f1_2 * (int64_t) f7_2;\n    int64_t f1f8_2  = f1_2 * (int64_t) f8;\n    int64_t f1f9_76 = f1_2 * (int64_t) f9_38;\n    int64_t f2f2    = f2 * (int64_t) f2;\n    int64_t f2f3_2  = f2_2 * (int64_t) f3;\n    int64_t f2f4_2  = f2_2 * (int64_t) f4;\n    int64_t f2f5_2  = f2_2 * (int64_t) f5;\n    int64_t f2f6_2  = f2_2 * (int64_t) f6;\n    int64_t f2f7_2  = f2_2 * (int64_t) f7;\n    int64_t f2f8_38 = f2_2 * (int64_t) f8_19;\n    int64_t f2f9_38 = f2 * (int64_t) f9_38;\n    int64_t f3f3_2  = f3_2 * (int64_t) f3;\n    int64_t f3f4_2  = f3_2 * (int64_t) f4;\n    int64_t f3f5_4  = f3_2 * (int64_t) f5_2;\n    int64_t f3f6_2  = f3_2 * (int64_t) f6;\n    int64_t f3f7_76 = f3_2 * (int64_t) f7_38;\n    int64_t f3f8_38 = f3_2 * (int64_t) f8_19;\n    int64_t f3f9_76 = f3_2 * (int64_t) f9_38;\n    int64_t f4f4    = f4 * (int64_t) f4;\n    int64_t f4f5_2  = f4_2 * (int64_t) f5;\n    int64_t f4f6_38 = f4_2 * (int64_t) f6_19;\n    int64_t f4f7_38 = f4 * (int64_t) f7_38;\n    int64_t f4f8_38 = f4_2 * (int64_t) f8_19;\n    int64_t f4f9_38 = f4 * (int64_t) f9_38;\n    int64_t f5f5_38 = f5 * (int64_t) f5_38;\n    int64_t f5f6_38 = f5_2 * (int64_t) f6_19;\n    int64_t f5f7_76 = f5_2 * (int64_t) f7_38;\n    int64_t f5f8_38 = f5_2 * (int64_t) f8_19;\n    int64_t f5f9_76 = f5_2 * (int64_t) f9_38;\n    int64_t f6f6_19 = f6 * (int64_t) f6_19;\n    int64_t f6f7_38 = f6 * (int64_t) f7_38;\n    int64_t f6f8_38 = f6_2 * (int64_t) f8_19;\n    int64_t f6f9_38 = f6 * (int64_t) f9_38;\n    int64_t f7f7_38 = f7 * (int64_t) f7_38;\n    int64_t f7f8_38 = f7_2 * (int64_t) f8_19;\n    int64_t f7f9_76 = f7_2 * (int64_t) f9_38;\n    int64_t f8f8_19 = f8 * (int64_t) f8_19;\n    int64_t f8f9_38 = f8 * (int64_t) f9_38;\n    int64_t f9f9_38 = f9 * (int64_t) f9_38;\n\n    int64_t h0 = f0f0 + f1f9_76 + f2f8_38 + f3f7_76 + f4f6_38 + f5f5_38;\n    int64_t h1 = f0f1_2 + f2f9_38 + f3f8_38 + f4f7_38 + f5f6_38;\n    int64_t h2 = f0f2_2 + f1f1_2 + f3f9_76 + f4f8_38 + f5f7_76 + f6f6_19;\n    int64_t h3 = f0f3_2 + f1f2_2 + f4f9_38 + f5f8_38 + f6f7_38;\n    int64_t h4 = f0f4_2 + f1f3_4 + f2f2 + f5f9_76 + f6f8_38 + f7f7_38;\n    int64_t h5 = f0f5_2 + f1f4_2 + f2f3_2 + f6f9_38 + f7f8_38;\n    int64_t h6 = f0f6_2 + f1f5_4 + f2f4_2 + f3f3_2 + f7f9_76 + f8f8_19;\n    int64_t h7 = f0f7_2 + f1f6_2 + f2f5_2 + f3f4_2 + f8f9_38;\n    int64_t h8 = f0f8_2 + f1f7_4 + f2f6_2 + f3f5_4 + f4f4 + f9f9_38;\n    int64_t h9 = f0f9_2 + f1f8_2 + f2f7_2 + f3f6_2 + f4f5_2;\n\n    int64_t carry0;\n    int64_t carry1;\n    int64_t carry2;\n    int64_t carry3;\n    int64_t carry4;\n    int64_t carry5;\n    int64_t carry6;\n    int64_t carry7;\n    int64_t carry8;\n    int64_t carry9;\n\n    h0 += h0;\n    h1 += h1;\n    h2 += h2;\n    h3 += h3;\n    h4 += h4;\n    h5 += h5;\n    h6 += h6;\n    h7 += h7;\n    h8 += h8;\n    h9 += h9;\n\n    carry0 = (h0 + (int64_t)(1L << 25)) >> 26;\n    h1 += carry0;\n    h0 -= carry0 * ((uint64_t) 1L << 26);\n    carry4 = (h4 + (int64_t)(1L << 25)) >> 26;\n    h5 += carry4;\n    h4 -= carry4 * ((uint64_t) 1L << 26);\n\n    carry1 = (h1 + (int64_t)(1L << 24)) >> 25;\n    h2 += carry1;\n    h1 -= carry1 * ((uint64_t) 1L << 25);\n    carry5 = (h5 + (int64_t)(1L << 24)) >> 25;\n    h6 += carry5;\n    h5 -= carry5 * ((uint64_t) 1L << 25);\n\n    carry2 = (h2 + (int64_t)(1L << 25)) >> 26;\n    h3 += carry2;\n    h2 -= carry2 * ((uint64_t) 1L << 26);\n    carry6 = (h6 + (int64_t)(1L << 25)) >> 26;\n    h7 += carry6;\n    h6 -= carry6 * ((uint64_t) 1L << 26);\n\n    carry3 = (h3 + (int64_t)(1L << 24)) >> 25;\n    h4 += carry3;\n    h3 -= carry3 * ((uint64_t) 1L << 25);\n    carry7 = (h7 + (int64_t)(1L << 24)) >> 25;\n    h8 += carry7;\n    h7 -= carry7 * ((uint64_t) 1L << 25);\n\n    carry4 = (h4 + (int64_t)(1L << 25)) >> 26;\n    h5 += carry4;\n    h4 -= carry4 * ((uint64_t) 1L << 26);\n    carry8 = (h8 + (int64_t)(1L << 25)) >> 26;\n    h9 += carry8;\n    h8 -= carry8 * ((uint64_t) 1L << 26);\n\n    carry9 = (h9 + (int64_t)(1L << 24)) >> 25;\n    h0 += carry9 * 19;\n    h9 -= carry9 * ((uint64_t) 1L << 25);\n\n    carry0 = (h0 + (int64_t)(1L << 25)) >> 26;\n    h1 += carry0;\n    h0 -= carry0 * ((uint64_t) 1L << 26);\n\n    h[0] = (int32_t) h0;\n    h[1] = (int32_t) h1;\n    h[2] = (int32_t) h2;\n    h[3] = (int32_t) h3;\n    h[4] = (int32_t) h4;\n    h[5] = (int32_t) h5;\n    h[6] = (int32_t) h6;\n    h[7] = (int32_t) h7;\n    h[8] = (int32_t) h8;\n    h[9] = (int32_t) h9;\n}\n\nstatic inline void\nfe25519_mul32(fe25519 h, const fe25519 f, uint32_t n)\n{\n    int64_t sn = (int64_t) n;\n    int32_t f0 = f[0];\n    int32_t f1 = f[1];\n    int32_t f2 = f[2];\n    int32_t f3 = f[3];\n    int32_t f4 = f[4];\n    int32_t f5 = f[5];\n    int32_t f6 = f[6];\n    int32_t f7 = f[7];\n    int32_t f8 = f[8];\n    int32_t f9 = f[9];\n    int64_t h0 = f0 * sn;\n    int64_t h1 = f1 * sn;\n    int64_t h2 = f2 * sn;\n    int64_t h3 = f3 * sn;\n    int64_t h4 = f4 * sn;\n    int64_t h5 = f5 * sn;\n    int64_t h6 = f6 * sn;\n    int64_t h7 = f7 * sn;\n    int64_t h8 = f8 * sn;\n    int64_t h9 = f9 * sn;\n    int64_t carry0, carry1, carry2, carry3, carry4, carry5, carry6, carry7,\n            carry8, carry9;\n\n    carry9 = (h9 + ((int64_t) 1 << 24)) >> 25;\n    h0 += carry9 * 19;\n    h9 -= carry9 * ((int64_t) 1 << 25);\n    carry1 = (h1 + ((int64_t) 1 << 24)) >> 25;\n    h2 += carry1;\n    h1 -= carry1 * ((int64_t) 1 << 25);\n    carry3 = (h3 + ((int64_t) 1 << 24)) >> 25;\n    h4 += carry3;\n    h3 -= carry3 * ((int64_t) 1 << 25);\n    carry5 = (h5 + ((int64_t) 1 << 24)) >> 25;\n    h6 += carry5;\n    h5 -= carry5 * ((int64_t) 1 << 25);\n    carry7 = (h7 + ((int64_t) 1 << 24)) >> 25;\n    h8 += carry7;\n    h7 -= carry7 * ((int64_t) 1 << 25);\n\n    carry0 = (h0 + ((int64_t) 1 << 25)) >> 26;\n    h1 += carry0;\n    h0 -= carry0 * ((int64_t) 1 << 26);\n    carry2 = (h2 + ((int64_t) 1 << 25)) >> 26;\n    h3 += carry2;\n    h2 -= carry2 * ((int64_t) 1 << 26);\n    carry4 = (h4 + ((int64_t) 1 << 25)) >> 26;\n    h5 += carry4;\n    h4 -= carry4 * ((int64_t) 1 << 26);\n    carry6 = (h6 + ((int64_t) 1 << 25)) >> 26;\n    h7 += carry6;\n    h6 -= carry6 * ((int64_t) 1 << 26);\n    carry8 = (h8 + ((int64_t) 1 << 25)) >> 26;\n    h9 += carry8;\n    h8 -= carry8 * ((int64_t) 1 << 26);\n\n    h[0] = (int32_t) h0;\n    h[1] = (int32_t) h1;\n    h[2] = (int32_t) h2;\n    h[3] = (int32_t) h3;\n    h[4] = (int32_t) h4;\n    h[5] = (int32_t) h5;\n    h[6] = (int32_t) h6;\n    h[7] = (int32_t) h7;\n    h[8] = (int32_t) h8;\n    h[9] = (int32_t) h9;\n}\n"
  },
  {
    "path": "src/libsodium/include/sodium/private/ed25519_ref10_fe_51.h",
    "content": "#include <string.h>\n\n#include \"private/common.h\"\n#include \"private/quirks.h\"\n#include \"utils.h\"\n\n/*\n h = 0\n */\n\nstatic inline void\nfe25519_0(fe25519 h)\n{\n    memset(&h[0], 0, 5 * sizeof h[0]);\n}\n\n/*\n h = 1\n */\n\nstatic inline void\nfe25519_1(fe25519 h)\n{\n    h[0] = 1;\n    memset(&h[1], 0, 4 * sizeof h[0]);\n}\n\n/*\n h = f + g\n Can overlap h with f or g.\n */\n\nstatic inline void\nfe25519_add(fe25519 h, const fe25519 f, const fe25519 g)\n{\n    uint64_t h0 = f[0] + g[0];\n    uint64_t h1 = f[1] + g[1];\n    uint64_t h2 = f[2] + g[2];\n    uint64_t h3 = f[3] + g[3];\n    uint64_t h4 = f[4] + g[4];\n\n    h[0] = h0;\n    h[1] = h1;\n    h[2] = h2;\n    h[3] = h3;\n    h[4] = h4;\n}\n\n/*\n h = f - g\n */\n\nstatic void\nfe25519_sub(fe25519 h, const fe25519 f, const fe25519 g)\n{\n    const uint64_t mask = 0x7ffffffffffffULL;\n    uint64_t h0, h1, h2, h3, h4;\n\n    h0 = g[0];\n    h1 = g[1];\n    h2 = g[2];\n    h3 = g[3];\n    h4 = g[4];\n\n    h1 += h0 >> 51;\n    h0 &= mask;\n    h2 += h1 >> 51;\n    h1 &= mask;\n    h3 += h2 >> 51;\n    h2 &= mask;\n    h4 += h3 >> 51;\n    h3 &= mask;\n    h0 += 19ULL * (h4 >> 51);\n    h4 &= mask;\n\n    h0 = (f[0] + 0xfffffffffffdaULL) - h0;\n    h1 = (f[1] + 0xffffffffffffeULL) - h1;\n    h2 = (f[2] + 0xffffffffffffeULL) - h2;\n    h3 = (f[3] + 0xffffffffffffeULL) - h3;\n    h4 = (f[4] + 0xffffffffffffeULL) - h4;\n\n    h[0] = h0;\n    h[1] = h1;\n    h[2] = h2;\n    h[3] = h3;\n    h[4] = h4;\n}\n\n/*\n h = -f\n */\n\nstatic inline void\nfe25519_neg(fe25519 h, const fe25519 f)\n{\n    fe25519 zero;\n\n    fe25519_0(zero);\n    fe25519_sub(h, zero, f);\n}\n\n/*\n Replace (f,g) with (g,g) if b == 1;\n replace (f,g) with (f,g) if b == 0.\n *\n Preconditions: b in {0,1}.\n */\n\nstatic void\nfe25519_cmov(fe25519 f, const fe25519 g, unsigned int b)\n{\n#ifdef HAVE_AMD64_ASM\n    uint64_t t0, t1, t2;\n\n    __asm__ __volatile__\n    (\n        \"test      %[c],     %[c]\\n\"\n        \"movq     (%[b]),    %[t0]\\n\"\n        \"cmoveq   (%[a]),    %[t0]\\n\"\n        \"movq    8(%[b]),    %[t1]\\n\"\n        \"cmoveq  8(%[a]),    %[t1]\\n\"\n        \"movq   16(%[b]),    %[t2]\\n\"\n        \"cmoveq 16(%[a]),    %[t2]\\n\"\n        \"movq      %[t0],   (%[a])\\n\"\n        \"movq      %[t1],  8(%[a])\\n\"\n        \"movq   24(%[b]),    %[t0]\\n\"\n        \"cmoveq 24(%[a]),    %[t0]\\n\"\n        \"movq   32(%[b]),    %[t1]\\n\"\n        \"cmoveq 32(%[a]),    %[t1]\\n\"\n        \"movq      %[t2], 16(%[a])\\n\"\n        \"movq      %[t0], 24(%[a])\\n\"\n        \"movq      %[t1], 32(%[a])\\n\"\n      : [ t0 ] \"=&r\"(t0), [ t1 ] \"=&r\"(t1), [ t2 ] \"=&r\"(t2)\n      : [ a ] \"r\"(f), [ b ] \"r\"(g), [ c ] \"r\"(b)\n      : \"cc\", \"memory\");\n#else\n    uint64_t mask = (uint64_t) (-(int64_t) b);\n    uint64_t f0, f1, f2, f3, f4;\n    uint64_t x0, x1, x2, x3, x4;\n\n    f0 = f[0];\n    f1 = f[1];\n    f2 = f[2];\n    f3 = f[3];\n    f4 = f[4];\n\n    x0 = f0 ^ g[0];\n    x1 = f1 ^ g[1];\n    x2 = f2 ^ g[2];\n    x3 = f3 ^ g[3];\n    x4 = f4 ^ g[4];\n\n# ifdef HAVE_INLINE_ASM\n    __asm__ __volatile__(\"\" : \"+r\"(mask));\n# endif\n\n    x0 &= mask;\n    x1 &= mask;\n    x2 &= mask;\n    x3 &= mask;\n    x4 &= mask;\n\n    f[0] = f0 ^ x0;\n    f[1] = f1 ^ x1;\n    f[2] = f2 ^ x2;\n    f[3] = f3 ^ x3;\n    f[4] = f4 ^ x4;\n#endif\n}\n\n/*\nReplace (f,g) with (g,f) if b == 1;\nreplace (f,g) with (f,g) if b == 0.\n\nPreconditions: b in {0,1}.\n*/\n\nstatic void\nfe25519_cswap(fe25519 f, fe25519 g, unsigned int b)\n{\n    uint64_t mask = (uint64_t) (-(int64_t) b);\n    uint64_t f0, f1, f2, f3, f4;\n    uint64_t g0, g1, g2, g3, g4;\n    uint64_t x0, x1, x2, x3, x4;\n\n    f0 = f[0];\n    f1 = f[1];\n    f2 = f[2];\n    f3 = f[3];\n    f4 = f[4];\n\n    g0 = g[0];\n    g1 = g[1];\n    g2 = g[2];\n    g3 = g[3];\n    g4 = g[4];\n\n    x0 = f0 ^ g0;\n    x1 = f1 ^ g1;\n    x2 = f2 ^ g2;\n    x3 = f3 ^ g3;\n    x4 = f4 ^ g4;\n\n# ifdef HAVE_INLINE_ASM\n    __asm__ __volatile__(\"\" : \"+r\"(mask));\n# endif\n\n    x0 &= mask;\n    x1 &= mask;\n    x2 &= mask;\n    x3 &= mask;\n    x4 &= mask;\n\n    f[0] = f0 ^ x0;\n    f[1] = f1 ^ x1;\n    f[2] = f2 ^ x2;\n    f[3] = f3 ^ x3;\n    f[4] = f4 ^ x4;\n\n    g[0] = g0 ^ x0;\n    g[1] = g1 ^ x1;\n    g[2] = g2 ^ x2;\n    g[3] = g3 ^ x3;\n    g[4] = g4 ^ x4;\n}\n\n/*\n h = f\n */\n\nstatic inline void\nfe25519_copy(fe25519 h, const fe25519 f)\n{\n    memcpy(h, f, 5 * sizeof h[0]);\n}\n\n/*\n return 1 if f is in {1,3,5,...,q-2}\n return 0 if f is in {0,2,4,...,q-1}\n */\n\nstatic inline int\nfe25519_isnegative(const fe25519 f)\n{\n    unsigned char s[32];\n\n    fe25519_tobytes(s, f);\n\n    return s[0] & 1;\n}\n\n/*\n return 1 if f == 0\n return 0 if f != 0\n */\n\nstatic inline int\nfe25519_iszero(const fe25519 f)\n{\n    unsigned char s[32];\n\n    fe25519_tobytes(s, f);\n\n    return sodium_is_zero(s, 32);\n}\n\n/*\n h = f * g\n Can overlap h with f or g.\n */\n\nstatic void\nfe25519_mul(fe25519 h, const fe25519 f, const fe25519 g)\n{\n    const uint64_t mask = 0x7ffffffffffffULL;\n    uint128_t r0, r1, r2, r3, r4;\n    uint128_t f0, f1, f2, f3, f4;\n    uint128_t f1_19, f2_19, f3_19, f4_19;\n    uint128_t g0, g1, g2, g3, g4;\n    uint64_t  r00, r01, r02, r03, r04;\n    uint64_t  carry;\n\n    f0 = (uint128_t) f[0];\n    f1 = (uint128_t) f[1];\n    f2 = (uint128_t) f[2];\n    f3 = (uint128_t) f[3];\n    f4 = (uint128_t) f[4];\n\n    g0 = (uint128_t) g[0];\n    g1 = (uint128_t) g[1];\n    g2 = (uint128_t) g[2];\n    g3 = (uint128_t) g[3];\n    g4 = (uint128_t) g[4];\n\n    f1_19 = 19ULL * f1;\n    f2_19 = 19ULL * f2;\n    f3_19 = 19ULL * f3;\n    f4_19 = 19ULL * f4;\n\n    r0 = f0 * g0 + f1_19 * g4 + f2_19 * g3 + f3_19 * g2 + f4_19 * g1;\n    r1 = f0 * g1 +    f1 * g0 + f2_19 * g4 + f3_19 * g3 + f4_19 * g2;\n    r2 = f0 * g2 +    f1 * g1 +    f2 * g0 + f3_19 * g4 + f4_19 * g3;\n    r3 = f0 * g3 +    f1 * g2 +    f2 * g1 +    f3 * g0 + f4_19 * g4;\n    r4 = f0 * g4 +    f1 * g3 +    f2 * g2 +    f3 * g1 +    f4 * g0;\n\n    r00    = ((uint64_t) r0) & mask;\n    carry  = (uint64_t) (r0 >> 51);\n    r1    += carry;\n    r01    = ((uint64_t) r1) & mask;\n    carry  = (uint64_t) (r1 >> 51);\n    r2    += carry;\n    r02    = ((uint64_t) r2) & mask;\n    carry  = (uint64_t) (r2 >> 51);\n    r3    += carry;\n    r03    = ((uint64_t) r3) & mask;\n    carry  = (uint64_t) (r3 >> 51);\n    r4    += carry;\n    r04    = ((uint64_t) r4) & mask;\n    carry  = (uint64_t) (r4 >> 51);\n    r00   += 19ULL * carry;\n    carry  = r00 >> 51;\n    r00   &= mask;\n    r01   += carry;\n    carry  = r01 >> 51;\n    r01   &= mask;\n    r02   += carry;\n\n    h[0] = r00;\n    h[1] = r01;\n    h[2] = r02;\n    h[3] = r03;\n    h[4] = r04;\n}\n\n/*\n h = f * f\n Can overlap h with f.\n */\n\nstatic void\nfe25519_sq(fe25519 h, const fe25519 f)\n{\n    const uint64_t mask = 0x7ffffffffffffULL;\n    uint128_t r0, r1, r2, r3, r4;\n    uint128_t f0, f1, f2, f3, f4;\n    uint128_t f0_2, f1_2, f1_38, f2_38, f3_38, f3_19, f4_19;\n    uint64_t  r00, r01, r02, r03, r04;\n    uint64_t  carry;\n\n    f0 = (uint128_t) f[0];\n    f1 = (uint128_t) f[1];\n    f2 = (uint128_t) f[2];\n    f3 = (uint128_t) f[3];\n    f4 = (uint128_t) f[4];\n\n    f0_2 = f0 << 1;\n    f1_2 = f1 << 1;\n\n    f1_38 = 38ULL * f1;\n    f2_38 = 38ULL * f2;\n    f3_38 = 38ULL * f3;\n\n    f3_19 = 19ULL * f3;\n    f4_19 = 19ULL * f4;\n\n    r0 =   f0 * f0 + f1_38 * f4 + f2_38 * f3;\n    r1 = f0_2 * f1 + f2_38 * f4 + f3_19 * f3;\n    r2 = f0_2 * f2 +    f1 * f1 + f3_38 * f4;\n    r3 = f0_2 * f3 +  f1_2 * f2 + f4_19 * f4;\n    r4 = f0_2 * f4 +  f1_2 * f3 +    f2 * f2;\n\n    r00    = ((uint64_t) r0) & mask;\n    carry  = (uint64_t) (r0 >> 51);\n    r1    += carry;\n    r01    = ((uint64_t) r1) & mask;\n    carry  = (uint64_t) (r1 >> 51);\n    r2    += carry;\n    r02    = ((uint64_t) r2) & mask;\n    carry  = (uint64_t) (r2 >> 51);\n    r3    += carry;\n    r03    = ((uint64_t) r3) & mask;\n    carry  = (uint64_t) (r3 >> 51);\n    r4    += carry;\n    r04    = ((uint64_t) r4) & mask;\n    carry  = (uint64_t) (r4 >> 51);\n    r00   += 19ULL * carry;\n    carry  = r00 >> 51;\n    r00   &= mask;\n    r01   += carry;\n    carry  = r01 >> 51;\n    r01   &= mask;\n    r02   += carry;\n\n    h[0] = r00;\n    h[1] = r01;\n    h[2] = r02;\n    h[3] = r03;\n    h[4] = r04;\n}\n\n/*\n h = 2 * f * f\n Can overlap h with f.\n*/\n\nstatic void\nfe25519_sq2(fe25519 h, const fe25519 f)\n{\n    const uint64_t mask = 0x7ffffffffffffULL;\n    uint128_t r0, r1, r2, r3, r4;\n    uint128_t f0, f1, f2, f3, f4;\n    uint128_t f0_2, f1_2, f1_38, f2_38, f3_38, f3_19, f4_19;\n    uint64_t  r00, r01, r02, r03, r04;\n    uint64_t  carry;\n\n    f0 = (uint128_t) f[0];\n    f1 = (uint128_t) f[1];\n    f2 = (uint128_t) f[2];\n    f3 = (uint128_t) f[3];\n    f4 = (uint128_t) f[4];\n\n    f0_2 = f0 << 1;\n    f1_2 = f1 << 1;\n\n    f1_38 = 38ULL * f1;\n    f2_38 = 38ULL * f2;\n    f3_38 = 38ULL * f3;\n\n    f3_19 = 19ULL * f3;\n    f4_19 = 19ULL * f4;\n\n    r0 =   f0 * f0 + f1_38 * f4 + f2_38 * f3;\n    r1 = f0_2 * f1 + f2_38 * f4 + f3_19 * f3;\n    r2 = f0_2 * f2 +    f1 * f1 + f3_38 * f4;\n    r3 = f0_2 * f3 +  f1_2 * f2 + f4_19 * f4;\n    r4 = f0_2 * f4 +  f1_2 * f3 +    f2 * f2;\n\n    r0 <<= 1;\n    r1 <<= 1;\n    r2 <<= 1;\n    r3 <<= 1;\n    r4 <<= 1;\n\n    r00    = ((uint64_t) r0) & mask;\n    carry  = (uint64_t) (r0 >> 51);\n    r1    += carry;\n    r01    = ((uint64_t) r1) & mask;\n    carry  = (uint64_t) (r1 >> 51);\n    r2    += carry;\n    r02    = ((uint64_t) r2) & mask;\n    carry  = (uint64_t) (r2 >> 51);\n    r3    += carry;\n    r03    = ((uint64_t) r3) & mask;\n    carry  = (uint64_t) (r3 >> 51);\n    r4    += carry;\n    r04    = ((uint64_t) r4) & mask;\n    carry  = (uint64_t) (r4 >> 51);\n    r00   += 19ULL * carry;\n    carry  = r00 >> 51;\n    r00   &= mask;\n    r01   += carry;\n    carry  = r01 >> 51;\n    r01   &= mask;\n    r02   += carry;\n\n    h[0] = r00;\n    h[1] = r01;\n    h[2] = r02;\n    h[3] = r03;\n    h[4] = r04;\n}\n\nstatic inline void\nfe25519_mul32(fe25519 h, const fe25519 f, uint32_t n)\n{\n    const uint64_t mask = 0x7ffffffffffffULL;\n    uint128_t a;\n    uint128_t sn = (uint128_t) n;\n    uint64_t  h0, h1, h2, h3, h4;\n\n    a  = f[0] * sn;\n    h0 = ((uint64_t) a) & mask;\n    a  = f[1] * sn + ((uint64_t) (a >> 51));\n    h1 = ((uint64_t) a) & mask;\n    a  = f[2] * sn + ((uint64_t) (a >> 51));\n    h2 = ((uint64_t) a) & mask;\n    a  = f[3] * sn + ((uint64_t) (a >> 51));\n    h3 = ((uint64_t) a) & mask;\n    a  = f[4] * sn + ((uint64_t) (a >> 51));\n    h4 = ((uint64_t) a) & mask;\n\n    h0 += (a >> 51) * 19ULL;\n\n    h[0] = h0;\n    h[1] = h1;\n    h[2] = h2;\n    h[3] = h3;\n    h[4] = h4;\n}\n"
  },
  {
    "path": "src/libsodium/include/sodium/private/implementations.h",
    "content": "#ifndef implementations_H\n#define implementations_H\n\n#include \"private/quirks.h\"\n\nint _crypto_generichash_blake2b_pick_best_implementation(void);\nint _crypto_onetimeauth_poly1305_pick_best_implementation(void);\nint _crypto_pwhash_argon2_pick_best_implementation(void);\nint _crypto_scalarmult_curve25519_pick_best_implementation(void);\nint _crypto_stream_chacha20_pick_best_implementation(void);\nint _crypto_stream_salsa20_pick_best_implementation(void);\nint _crypto_aead_aegis128l_pick_best_implementation(void);\nint _crypto_aead_aegis256_pick_best_implementation(void);\nint _crypto_ipcrypt_pick_best_implementation(void);\n\n#endif\n"
  },
  {
    "path": "src/libsodium/include/sodium/private/mutex.h",
    "content": "#ifndef mutex_H\n#define mutex_H 1\n\n#include \"private/quirks.h\"\n\nextern int sodium_crit_enter(void);\nextern int sodium_crit_leave(void);\n\n#endif\n"
  },
  {
    "path": "src/libsodium/include/sodium/private/quirks.h",
    "content": "/* This is an automatically generated file */\n\n#ifndef quirks_H\n#ifndef NO_QUIRKS\n\n#define argon2_ctx _sodium_argon2_ctx\n#define argon2_decode_string _sodium_argon2_decode_string\n#define argon2_encode_string _sodium_argon2_encode_string\n#define argon2_fill_memory_blocks _sodium_argon2_fill_memory_blocks\n#define argon2_fill_segment_avx2 _sodium_argon2_fill_segment_avx2\n#define argon2_fill_segment_avx512f _sodium_argon2_fill_segment_avx512f\n#define argon2_fill_segment_neon _sodium_argon2_fill_segment_neon\n#define argon2_fill_segment_ref _sodium_argon2_fill_segment_ref\n#define argon2_fill_segment_ssse3 _sodium_argon2_fill_segment_ssse3\n#define argon2_finalize _sodium_argon2_finalize\n#define argon2_hash _sodium_argon2_hash\n#define argon2_initialize _sodium_argon2_initialize\n#define argon2_validate_inputs _sodium_argon2_validate_inputs\n#define argon2_verify _sodium_argon2_verify\n#define argon2i_hash_encoded _sodium_argon2i_hash_encoded\n#define argon2i_hash_raw _sodium_argon2i_hash_raw\n#define argon2i_verify _sodium_argon2i_verify\n#define argon2id_hash_encoded _sodium_argon2id_hash_encoded\n#define argon2id_hash_raw _sodium_argon2id_hash_raw\n#define argon2id_verify _sodium_argon2id_verify\n#define blake2b _sodium_blake2b\n#define blake2b_compress_avx2 _sodium_blake2b_compress_avx2\n#define blake2b_compress_ref _sodium_blake2b_compress_ref\n#define blake2b_compress_sse41 _sodium_blake2b_compress_sse41\n#define blake2b_compress_ssse3 _sodium_blake2b_compress_ssse3\n#define blake2b_final _sodium_blake2b_final\n#define blake2b_init _sodium_blake2b_init\n#define blake2b_init_key _sodium_blake2b_init_key\n#define blake2b_init_key_salt_personal _sodium_blake2b_init_key_salt_personal\n#define blake2b_init_param _sodium_blake2b_init_param\n#define blake2b_init_salt_personal _sodium_blake2b_init_salt_personal\n#define blake2b_long _sodium_blake2b_long\n#define blake2b_pick_best_implementation _sodium_blake2b_pick_best_implementation\n#define blake2b_salt_personal _sodium_blake2b_salt_personal\n#define blake2b_update _sodium_blake2b_update\n#define core_h2c_string_to_hash _sodium_core_h2c_string_to_hash\n#define escrypt_PBKDF2_SHA256 _sodium_escrypt_PBKDF2_SHA256\n#define escrypt_alloc_region _sodium_escrypt_alloc_region\n#define escrypt_free_local _sodium_escrypt_free_local\n#define escrypt_free_region _sodium_escrypt_free_region\n#define escrypt_gensalt_r _sodium_escrypt_gensalt_r\n#define escrypt_init_local _sodium_escrypt_init_local\n#define escrypt_kdf_nosse _sodium_escrypt_kdf_nosse\n#define escrypt_kdf_sse _sodium_escrypt_kdf_sse\n#define escrypt_parse_setting _sodium_escrypt_parse_setting\n#define escrypt_r _sodium_escrypt_r\n#define fe25519_frombytes _sodium_fe25519_frombytes\n#define fe25519_invert _sodium_fe25519_invert\n#define fe25519_tobytes _sodium_fe25519_tobytes\n#define ge25519_clear_cofactor _sodium_ge25519_clear_cofactor\n#define ge25519_double_scalarmult_vartime _sodium_ge25519_double_scalarmult_vartime\n#define ge25519_from_hash _sodium_ge25519_from_hash\n#define ge25519_from_uniform _sodium_ge25519_from_uniform\n#define ge25519_frombytes _sodium_ge25519_frombytes\n#define ge25519_frombytes_negate_vartime _sodium_ge25519_frombytes_negate_vartime\n#define ge25519_has_small_order _sodium_ge25519_has_small_order\n#define ge25519_is_canonical _sodium_ge25519_is_canonical\n#define ge25519_is_on_curve _sodium_ge25519_is_on_curve\n#define ge25519_is_on_main_subgroup _sodium_ge25519_is_on_main_subgroup\n#define ge25519_p1p1_to_p2 _sodium_ge25519_p1p1_to_p2\n#define ge25519_p1p1_to_p3 _sodium_ge25519_p1p1_to_p3\n#define ge25519_p2_to_p3 _sodium_ge25519_p2_to_p3\n#define ge25519_p3_add _sodium_ge25519_p3_add\n#define ge25519_p3_sub _sodium_ge25519_p3_sub\n#define ge25519_p3_tobytes _sodium_ge25519_p3_tobytes\n#define ge25519_scalarmult _sodium_ge25519_scalarmult\n#define ge25519_scalarmult_base _sodium_ge25519_scalarmult_base\n#define ge25519_tobytes _sodium_ge25519_tobytes\n#define keccak1600_armsha3_extract_bytes _sodium_keccak1600_armsha3_extract_bytes\n#define keccak1600_armsha3_init _sodium_keccak1600_armsha3_init\n#define keccak1600_armsha3_permute_12 _sodium_keccak1600_armsha3_permute_12\n#define keccak1600_armsha3_permute_24 _sodium_keccak1600_armsha3_permute_24\n#define keccak1600_armsha3_xor_bytes _sodium_keccak1600_armsha3_xor_bytes\n#define keccak1600_ref_extract_bytes _sodium_keccak1600_ref_extract_bytes\n#define keccak1600_ref_init _sodium_keccak1600_ref_init\n#define keccak1600_ref_permute_12 _sodium_keccak1600_ref_permute_12\n#define keccak1600_ref_permute_24 _sodium_keccak1600_ref_permute_24\n#define keccak1600_ref_xor_bytes _sodium_keccak1600_ref_xor_bytes\n#define mlkem768_ref_dec _sodium_mlkem768_ref_dec\n#define mlkem768_ref_enc _sodium_mlkem768_ref_enc\n#define mlkem768_ref_enc_deterministic _sodium_mlkem768_ref_enc_deterministic\n#define mlkem768_ref_keypair _sodium_mlkem768_ref_keypair\n#define mlkem768_ref_seed_keypair _sodium_mlkem768_ref_seed_keypair\n#define ristretto255_from_hash _sodium_ristretto255_from_hash\n#define ristretto255_frombytes _sodium_ristretto255_frombytes\n#define ristretto255_p3_tobytes _sodium_ristretto255_p3_tobytes\n#define sc25519_invert _sodium_sc25519_invert\n#define sc25519_is_canonical _sodium_sc25519_is_canonical\n#define sc25519_mul _sodium_sc25519_mul\n#define sc25519_muladd _sodium_sc25519_muladd\n#define sc25519_reduce _sodium_sc25519_reduce\n#define shake128_ref _sodium_shake128_ref\n#define shake128_ref_init _sodium_shake128_ref_init\n#define shake128_ref_init_with_domain _sodium_shake128_ref_init_with_domain\n#define shake128_ref_squeeze _sodium_shake128_ref_squeeze\n#define shake128_ref_update _sodium_shake128_ref_update\n#define shake256_ref _sodium_shake256_ref\n#define shake256_ref_init _sodium_shake256_ref_init\n#define shake256_ref_init_with_domain _sodium_shake256_ref_init_with_domain\n#define shake256_ref_squeeze _sodium_shake256_ref_squeeze\n#define shake256_ref_update _sodium_shake256_ref_update\n#define softaes_block_decrypt _sodium_softaes_block_decrypt\n#define softaes_block_decryptlast _sodium_softaes_block_decryptlast\n#define softaes_block_encrypt _sodium_softaes_block_encrypt\n#define softaes_block_encryptlast _sodium_softaes_block_encryptlast\n#define softaes_expand_key128 _sodium_softaes_expand_key128\n#define softaes_expand_key256 _sodium_softaes_expand_key256\n#define softaes_inv_mix_columns _sodium_softaes_inv_mix_columns\n#define softaes_invert_key_schedule128 _sodium_softaes_invert_key_schedule128\n#define softaes_invert_key_schedule256 _sodium_softaes_invert_key_schedule256\n#define turboshake128_ref _sodium_turboshake128_ref\n#define turboshake128_ref_init _sodium_turboshake128_ref_init\n#define turboshake128_ref_init_with_domain _sodium_turboshake128_ref_init_with_domain\n#define turboshake128_ref_squeeze _sodium_turboshake128_ref_squeeze\n#define turboshake128_ref_update _sodium_turboshake128_ref_update\n#define turboshake256_ref _sodium_turboshake256_ref\n#define turboshake256_ref_init _sodium_turboshake256_ref_init\n#define turboshake256_ref_init_with_domain _sodium_turboshake256_ref_init_with_domain\n#define turboshake256_ref_squeeze _sodium_turboshake256_ref_squeeze\n#define turboshake256_ref_update _sodium_turboshake256_ref_update\n\n#endif\n#endif\n"
  },
  {
    "path": "src/libsodium/include/sodium/private/softaes.h",
    "content": "#ifndef softaes_H\n#    define softaes_H 1\n\n#    include <stdint.h>\n\n#    include \"private/common.h\"\n\ntypedef struct SoftAesBlock {\n    uint32_t w0;\n    uint32_t w1;\n    uint32_t w2;\n    uint32_t w3;\n} SoftAesBlock;\n\nvoid         softaes_expand_key128(SoftAesBlock rkeys[11], const uint8_t key[16]);\nvoid         softaes_expand_key256(SoftAesBlock rkeys[15], const uint8_t key[32]);\nSoftAesBlock softaes_inv_mix_columns(const SoftAesBlock block);\nvoid         softaes_invert_key_schedule128(SoftAesBlock rkeys[11]);\nvoid         softaes_invert_key_schedule256(SoftAesBlock rkeys[15]);\nSoftAesBlock softaes_block_encrypt(const SoftAesBlock block, const SoftAesBlock rk);\nSoftAesBlock softaes_block_decrypt(const SoftAesBlock block, const SoftAesBlock rk);\nSoftAesBlock softaes_block_encryptlast(const SoftAesBlock block, const SoftAesBlock rk);\nSoftAesBlock softaes_block_decryptlast(const SoftAesBlock block, const SoftAesBlock rk);\n\nstatic inline SoftAesBlock\nsoftaes_block_load(const uint8_t in[16])\n{\n    const SoftAesBlock out = { LOAD32_LE(in + 0), LOAD32_LE(in + 4), LOAD32_LE(in + 8),\n                               LOAD32_LE(in + 12) };\n    return out;\n}\n\nstatic inline SoftAesBlock\nsoftaes_block_load64x2(const uint64_t a, const uint64_t b)\n{\n    const SoftAesBlock out = { (uint32_t) b, (uint32_t) (b >> 32), (uint32_t) a,\n                               (uint32_t) (a >> 32) };\n    return out;\n}\n\nstatic inline void\nsoftaes_block_store(uint8_t out[16], const SoftAesBlock in)\n{\n    STORE32_LE(out + 0, in.w0);\n    STORE32_LE(out + 4, in.w1);\n    STORE32_LE(out + 8, in.w2);\n    STORE32_LE(out + 12, in.w3);\n}\n\nstatic inline SoftAesBlock\nsoftaes_block_xor(const SoftAesBlock a, const SoftAesBlock b)\n{\n    const SoftAesBlock out = { a.w0 ^ b.w0, a.w1 ^ b.w1, a.w2 ^ b.w2, a.w3 ^ b.w3 };\n    return out;\n}\n\nstatic inline SoftAesBlock\nsoftaes_block_and(const SoftAesBlock a, const SoftAesBlock b)\n{\n    const SoftAesBlock out = { a.w0 & b.w0, a.w1 & b.w1, a.w2 & b.w2, a.w3 & b.w3 };\n    return out;\n}\n\n#endif\n"
  },
  {
    "path": "src/libsodium/include/sodium/private/sse2_64_32.h",
    "content": "#ifndef sse2_64_32_H\n#define sse2_64_32_H 1\n\n#include \"private/common.h\"\n\n#ifdef HAVE_INTRIN_H\n# include <intrin.h>\n#endif\n\n#if defined(HAVE_EMMINTRIN_H) && \\\n    !(defined(__amd64) || defined(__amd64__) || defined(__x86_64__) || \\\n      defined(_M_X64))\n\n# include <emmintrin.h>\n# include <stdint.h>\n\n# ifndef _mm_set_epi64x\n#  define _mm_set_epi64x(Q0, Q1) sodium__mm_set_epi64x((Q0), (Q1))\nstatic inline __m128i\nsodium__mm_set_epi64x(int64_t q1, int64_t q0)\n{\n    union { int64_t as64; int32_t as32[2]; } x0, x1;\n    x0.as64 = q0; x1.as64 = q1;\n    return _mm_set_epi32(x1.as32[1], x1.as32[0], x0.as32[1], x0.as32[0]);\n}\n# endif\n\n# ifndef _mm_set1_epi64x\n#  define _mm_set1_epi64x(Q) sodium__mm_set1_epi64x(Q)\nstatic inline __m128i\nsodium__mm_set1_epi64x(int64_t q)\n{\n    return _mm_set_epi64x(q, q);\n}\n# endif\n\n# ifndef _mm_cvtsi64_si128\n#  define _mm_cvtsi64_si128(Q) sodium__mm_cvtsi64_si128(Q)\nstatic inline __m128i\nsodium__mm_cvtsi64_si128(int64_t q)\n{\n    union { int64_t as64; int32_t as32[2]; } x;\n    x.as64 = q;\n    return _mm_setr_epi32(x.as32[0], x.as32[1], 0, 0);\n}\n# endif\n\n#endif\n\n#endif\n"
  },
  {
    "path": "src/libsodium/include/sodium/randombytes.h",
    "content": "\n#ifndef randombytes_H\n#define randombytes_H\n\n#include <stddef.h>\n#include <stdint.h>\n\n#include <sys/types.h>\n\n#include \"export.h\"\n\n#ifdef __cplusplus\n# ifdef __GNUC__\n#  pragma GCC diagnostic ignored \"-Wlong-long\"\n# endif\nextern \"C\" {\n#endif\n\ntypedef struct randombytes_implementation {\n    const char *(*implementation_name)(void); /* required */\n    uint32_t    (*random)(void);              /* required */\n    void        (*stir)(void);                /* optional */\n    uint32_t    (*uniform)(const uint32_t upper_bound); /* optional, a default implementation will be used if NULL */\n    void        (*buf)(void * const buf, const size_t size); /* required */\n    int         (*close)(void);               /* optional */\n} randombytes_implementation;\n\n#define randombytes_BYTES_MAX SODIUM_MIN(SODIUM_SIZE_MAX, 0xffffffffUL)\n\n#define randombytes_SEEDBYTES 32U\nSODIUM_EXPORT\nsize_t randombytes_seedbytes(void);\n\nSODIUM_EXPORT\nvoid randombytes_buf(void * const buf, const size_t size)\n            __attribute__ ((nonnull));\n\nSODIUM_EXPORT\nvoid randombytes_buf_deterministic(void * const buf, const size_t size,\n                                   const unsigned char seed[randombytes_SEEDBYTES])\n            __attribute__ ((nonnull));\n\nSODIUM_EXPORT\nuint32_t randombytes_random(void);\n\nSODIUM_EXPORT\nuint32_t randombytes_uniform(const uint32_t upper_bound);\n\nSODIUM_EXPORT\nvoid randombytes_stir(void);\n\nSODIUM_EXPORT\nint randombytes_close(void);\n\nSODIUM_EXPORT\nint randombytes_set_implementation(const randombytes_implementation *impl)\n            __attribute__ ((nonnull));\n\nSODIUM_EXPORT\nconst char *randombytes_implementation_name(void);\n\n/* -- NaCl compatibility interface -- */\n\nSODIUM_EXPORT\nvoid randombytes(unsigned char * const buf, const unsigned long long buf_len)\n            __attribute__ ((nonnull));\n\n#ifdef __cplusplus\n}\n#endif\n\n#endif\n"
  },
  {
    "path": "src/libsodium/include/sodium/randombytes_internal_random.h",
    "content": "\n#ifndef randombytes_internal_random_H\n#define randombytes_internal_random_H\n\n#include \"export.h\"\n#include \"randombytes.h\"\n\n#ifdef __cplusplus\nextern \"C\" {\n#endif\n\nSODIUM_EXPORT\nextern struct randombytes_implementation randombytes_internal_implementation;\n\n/* Backwards compatibility with libsodium < 1.0.18 */\n#define randombytes_salsa20_implementation randombytes_internal_implementation\n\n#ifdef __cplusplus\n}\n#endif\n\n#endif\n"
  },
  {
    "path": "src/libsodium/include/sodium/randombytes_sysrandom.h",
    "content": "\n#ifndef randombytes_sysrandom_H\n#define randombytes_sysrandom_H\n\n#include \"export.h\"\n#include \"randombytes.h\"\n\n#ifdef __cplusplus\nextern \"C\" {\n#endif\n\nSODIUM_EXPORT\nextern struct randombytes_implementation randombytes_sysrandom_implementation;\n\n#ifdef __cplusplus\n}\n#endif\n\n#endif\n"
  },
  {
    "path": "src/libsodium/include/sodium/runtime.h",
    "content": "\n#ifndef sodium_runtime_H\n#define sodium_runtime_H\n\n#include \"export.h\"\n\n#ifdef __cplusplus\nextern \"C\" {\n#endif\n\nSODIUM_EXPORT_WEAK\nint sodium_runtime_has_neon(void);\n\nSODIUM_EXPORT_WEAK\nint sodium_runtime_has_armcrypto(void);\n\nSODIUM_EXPORT_WEAK\nint sodium_runtime_has_sse2(void);\n\nSODIUM_EXPORT_WEAK\nint sodium_runtime_has_sse3(void);\n\nSODIUM_EXPORT_WEAK\nint sodium_runtime_has_ssse3(void);\n\nSODIUM_EXPORT_WEAK\nint sodium_runtime_has_sse41(void);\n\nSODIUM_EXPORT_WEAK\nint sodium_runtime_has_avx(void);\n\nSODIUM_EXPORT_WEAK\nint sodium_runtime_has_avx2(void);\n\nSODIUM_EXPORT_WEAK\nint sodium_runtime_has_avx512f(void);\n\nSODIUM_EXPORT_WEAK\nint sodium_runtime_has_pclmul(void);\n\nSODIUM_EXPORT_WEAK\nint sodium_runtime_has_aesni(void);\n\nSODIUM_EXPORT_WEAK\nint sodium_runtime_has_rdrand(void);\n\n/* ------------------------------------------------------------------------- */\n\nint _sodium_runtime_get_cpu_features(void);\n\n#ifdef __cplusplus\n}\n#endif\n\n#endif\n"
  },
  {
    "path": "src/libsodium/include/sodium/utils.h",
    "content": "\n#ifndef sodium_utils_H\n#define sodium_utils_H\n\n#include <stddef.h>\n\n#include \"export.h\"\n\n#ifdef __cplusplus\nextern \"C\" {\n#endif\n\n#ifndef SODIUM_C99\n# if defined(__cplusplus) || !defined(__STDC_VERSION__) || __STDC_VERSION__ < 199901L\n#  define SODIUM_C99(X)\n# else\n#  define SODIUM_C99(X) X\n# endif\n#endif\n\nSODIUM_EXPORT\nvoid sodium_memzero(void *const pnt, const size_t len);\n\nSODIUM_EXPORT\nvoid sodium_stackzero(const size_t len);\n\n/*\n * WARNING: sodium_memcmp() must be used to verify if two secret keys\n * are equal, in constant time.\n * It returns 0 if the keys are equal, and -1 if they differ.\n * This function is not designed for lexicographical comparisons.\n */\nSODIUM_EXPORT\nint sodium_memcmp(const void *const b1_, const void *const b2_, size_t len)\n    __attribute__((warn_unused_result));\n\n/*\n * sodium_compare() returns -1 if b1_ < b2_, 1 if b1_ > b2_ and 0 if b1_ == b2_\n * It is suitable for lexicographical comparisons, or to compare nonces\n * and counters stored in little-endian format.\n * However, it is slower than sodium_memcmp().\n */\nSODIUM_EXPORT\nint sodium_compare(const unsigned char *b1_, const unsigned char *b2_, size_t len)\n    __attribute__((warn_unused_result));\n\nSODIUM_EXPORT\nint sodium_is_zero(const unsigned char *n, const size_t nlen);\n\nSODIUM_EXPORT\nvoid sodium_increment(unsigned char *n, const size_t nlen);\n\nSODIUM_EXPORT\nvoid sodium_add(unsigned char *a, const unsigned char *b, const size_t len);\n\nSODIUM_EXPORT\nvoid sodium_sub(unsigned char *a, const unsigned char *b, const size_t len);\n\nSODIUM_EXPORT\nchar *sodium_bin2hex(char *const hex, const size_t hex_maxlen, const unsigned char *const bin,\n                     const size_t bin_len) __attribute__((nonnull(1)));\n\nSODIUM_EXPORT\nint sodium_hex2bin(unsigned char *const bin, const size_t bin_maxlen, const char *const hex,\n                   const size_t hex_len, const char *const ignore, size_t *const bin_len,\n                   const char **const hex_end) __attribute__((nonnull(1)));\n\n#define sodium_base64_VARIANT_ORIGINAL            1\n#define sodium_base64_VARIANT_ORIGINAL_NO_PADDING 3\n#define sodium_base64_VARIANT_URLSAFE             5\n#define sodium_base64_VARIANT_URLSAFE_NO_PADDING  7\n\n/*\n * Computes the required length to encode BIN_LEN bytes as a base64 string\n * using the given variant. The computed length includes a trailing \\0.\n */\n#define sodium_base64_ENCODED_LEN(BIN_LEN, VARIANT)                                              \\\n    (((BIN_LEN) / 3U) * 4U +                                                                     \\\n     ((((BIN_LEN) - ((BIN_LEN) / 3U) * 3U) | (((BIN_LEN) - ((BIN_LEN) / 3U) * 3U) >> 1)) & 1U) * \\\n         (4U - (~((((VARIANT) & 2U) >> 1) - 1U) & (3U - ((BIN_LEN) - ((BIN_LEN) / 3U) * 3U)))) + \\\n     1U)\n\nSODIUM_EXPORT\nsize_t sodium_base64_encoded_len(const size_t bin_len, const int variant);\n\nSODIUM_EXPORT\nchar *sodium_bin2base64(char *const b64, const size_t b64_maxlen, const unsigned char *const bin,\n                        const size_t bin_len, const int variant) __attribute__((nonnull(1)));\n\nSODIUM_EXPORT\nint sodium_base642bin(unsigned char *const bin, const size_t bin_maxlen, const char *const b64,\n                      const size_t b64_len, const char *const ignore, size_t *const bin_len,\n                      const char **const b64_end, const int variant) __attribute__((nonnull(1)));\n\nSODIUM_EXPORT\nint sodium_ip2bin(unsigned char bin[16], const char *ip, size_t ip_len)\n    __attribute__((warn_unused_result)) __attribute__((nonnull));\n\nSODIUM_EXPORT\nchar *sodium_bin2ip(char *ip, size_t ip_maxlen, const unsigned char bin[16])\n    __attribute__((nonnull));\n\nSODIUM_EXPORT\nint sodium_mlock(void *const addr, const size_t len) __attribute__((nonnull));\n\nSODIUM_EXPORT\nint sodium_munlock(void *const addr, const size_t len) __attribute__((nonnull));\n\n/* WARNING: sodium_malloc() and sodium_allocarray() are not general-purpose\n * allocation functions.\n *\n * They return a pointer to a region filled with 0xd0 bytes, immediately\n * followed by a guard page. As a result, accessing a single byte after the\n * requested allocation size will intentionally trigger a segmentation fault.\n *\n * A canary and an additional guard page placed before the beginning of the\n * region may also kill the process if a buffer underflow is detected.\n *\n * The memory layout is:\n * [unprotected region size (read only)][guard page (no access)][unprotected pages\n * (read/write)][guard page (no access)]\n *\n * The layout of the unprotected pages is:\n * [optional padding][16-bytes canary][user region]\n *\n * Important limitations:\n * - These functions are significantly slower than standard allocation functions.\n * - Each allocation requires 3 or 4 additional pages.\n * - The returned address will not be aligned if the allocation size is not\n *   a multiple of the required alignment. For this reason, these functions\n *   are designed to store data such as secret keys and messages.\n *\n * sodium_malloc() can be used to allocate any libsodium data structure.\n *\n * The crypto_generichash_state structure is packed and its length is\n * either 357 or 361 bytes. When using sodium_malloc() to allocate a\n * crypto_generichash_state structure, padding must be added to ensure\n * proper alignment. Use crypto_generichash_statebytes() rather than sizeof():\n *\n *     state = sodium_malloc(crypto_generichash_statebytes());\n */\n\nSODIUM_EXPORT\nvoid *sodium_malloc(const size_t size) __attribute__((malloc));\n\nSODIUM_EXPORT\nvoid *sodium_allocarray(size_t count, size_t size) __attribute__((malloc));\n\nSODIUM_EXPORT\nvoid sodium_free(void *ptr);\n\nSODIUM_EXPORT\nint sodium_mprotect_noaccess(void *ptr) __attribute__((nonnull));\n\nSODIUM_EXPORT\nint sodium_mprotect_readonly(void *ptr) __attribute__((nonnull));\n\nSODIUM_EXPORT\nint sodium_mprotect_readwrite(void *ptr) __attribute__((nonnull));\n\nSODIUM_EXPORT\nint sodium_pad(size_t *padded_buflen_p, unsigned char *buf, size_t unpadded_buflen,\n               size_t blocksize, size_t max_buflen) __attribute__((nonnull(2)));\n\nSODIUM_EXPORT\nint sodium_unpad(size_t *unpadded_buflen_p, const unsigned char *buf, size_t padded_buflen,\n                 size_t blocksize) __attribute__((nonnull(2)));\n\n/* -------- */\n\nint _sodium_alloc_init(void);\n\n#ifdef __cplusplus\n}\n#endif\n\n#endif\n"
  },
  {
    "path": "src/libsodium/include/sodium/version.h.in",
    "content": "\n#ifndef sodium_version_H\n#define sodium_version_H\n\n#include \"export.h\"\n\n#define SODIUM_VERSION_STRING \"@VERSION@\"\n\n#define SODIUM_LIBRARY_VERSION_MAJOR @SODIUM_LIBRARY_VERSION_MAJOR@\n#define SODIUM_LIBRARY_VERSION_MINOR @SODIUM_LIBRARY_VERSION_MINOR@\n@SODIUM_LIBRARY_MINIMAL_DEF@\n\n#ifdef __cplusplus\nextern \"C\" {\n#endif\n\nSODIUM_EXPORT\nconst char *sodium_version_string(void);\n\nSODIUM_EXPORT\nint         sodium_library_version_major(void);\n\nSODIUM_EXPORT\nint         sodium_library_version_minor(void);\n\nSODIUM_EXPORT\nint         sodium_library_minimal(void);\n\n#ifdef __cplusplus\n}\n#endif\n\n#endif\n"
  },
  {
    "path": "src/libsodium/include/sodium.h",
    "content": "\n#ifndef sodium_H\n#define sodium_H\n\n#include \"sodium/version.h\"\n\n#include \"sodium/core.h\"\n#include \"sodium/crypto_aead_aes256gcm.h\"\n#include \"sodium/crypto_aead_aegis128l.h\"\n#include \"sodium/crypto_aead_aegis256.h\"\n#include \"sodium/crypto_aead_chacha20poly1305.h\"\n#include \"sodium/crypto_aead_xchacha20poly1305.h\"\n#include \"sodium/crypto_auth.h\"\n#include \"sodium/crypto_auth_hmacsha256.h\"\n#include \"sodium/crypto_auth_hmacsha512.h\"\n#include \"sodium/crypto_auth_hmacsha512256.h\"\n#include \"sodium/crypto_box.h\"\n#include \"sodium/crypto_box_curve25519xsalsa20poly1305.h\"\n#include \"sodium/crypto_core_hsalsa20.h\"\n#include \"sodium/crypto_core_hchacha20.h\"\n#include \"sodium/crypto_core_keccak1600.h\"\n#include \"sodium/crypto_core_salsa20.h\"\n#include \"sodium/crypto_core_salsa2012.h\"\n#include \"sodium/crypto_core_salsa208.h\"\n#include \"sodium/crypto_generichash.h\"\n#include \"sodium/crypto_generichash_blake2b.h\"\n#include \"sodium/crypto_hash.h\"\n#include \"sodium/crypto_hash_sha256.h\"\n#include \"sodium/crypto_hash_sha3.h\"\n#include \"sodium/crypto_hash_sha512.h\"\n#include \"sodium/crypto_ipcrypt.h\"\n#include \"sodium/crypto_kdf.h\"\n#include \"sodium/crypto_kdf_hkdf_sha256.h\"\n#include \"sodium/crypto_kdf_hkdf_sha512.h\"\n#include \"sodium/crypto_kdf_blake2b.h\"\n#include \"sodium/crypto_kem.h\"\n#include \"sodium/crypto_kem_mlkem768.h\"\n#include \"sodium/crypto_kem_xwing.h\"\n#include \"sodium/crypto_kx.h\"\n#include \"sodium/crypto_onetimeauth.h\"\n#include \"sodium/crypto_onetimeauth_poly1305.h\"\n#include \"sodium/crypto_pwhash.h\"\n#include \"sodium/crypto_pwhash_argon2i.h\"\n#include \"sodium/crypto_scalarmult.h\"\n#include \"sodium/crypto_scalarmult_curve25519.h\"\n#include \"sodium/crypto_secretbox.h\"\n#include \"sodium/crypto_secretbox_xsalsa20poly1305.h\"\n#include \"sodium/crypto_secretstream_xchacha20poly1305.h\"\n#include \"sodium/crypto_shorthash.h\"\n#include \"sodium/crypto_shorthash_siphash24.h\"\n#include \"sodium/crypto_sign.h\"\n#include \"sodium/crypto_sign_ed25519.h\"\n#include \"sodium/crypto_stream.h\"\n#include \"sodium/crypto_stream_chacha20.h\"\n#include \"sodium/crypto_stream_salsa20.h\"\n#include \"sodium/crypto_stream_xsalsa20.h\"\n#include \"sodium/crypto_verify_16.h\"\n#include \"sodium/crypto_verify_32.h\"\n#include \"sodium/crypto_verify_64.h\"\n#include \"sodium/crypto_xof_shake128.h\"\n#include \"sodium/crypto_xof_shake256.h\"\n#include \"sodium/crypto_xof_turboshake128.h\"\n#include \"sodium/crypto_xof_turboshake256.h\"\n#include \"sodium/randombytes.h\"\n#include \"sodium/randombytes_internal_random.h\"\n#include \"sodium/randombytes_sysrandom.h\"\n#include \"sodium/runtime.h\"\n#include \"sodium/utils.h\"\n\n#ifndef SODIUM_LIBRARY_MINIMAL\n# include \"sodium/crypto_box_curve25519xchacha20poly1305.h\"\n# include \"sodium/crypto_core_ed25519.h\"\n# include \"sodium/crypto_core_ristretto255.h\"\n# include \"sodium/crypto_scalarmult_ed25519.h\"\n# include \"sodium/crypto_scalarmult_ristretto255.h\"\n# include \"sodium/crypto_secretbox_xchacha20poly1305.h\"\n# include \"sodium/crypto_pwhash_scryptsalsa208sha256.h\"\n# include \"sodium/crypto_stream_salsa2012.h\"\n# include \"sodium/crypto_stream_salsa208.h\"\n# include \"sodium/crypto_stream_xchacha20.h\"\n#endif\n\n#endif\n"
  },
  {
    "path": "src/libsodium/randombytes/internal/randombytes_internal_random.c",
    "content": "\n#include <assert.h>\n#include <errno.h>\n#include <fcntl.h>\n#include <limits.h>\n#include <stdint.h>\n#include <stdlib.h>\n#include <string.h>\n#if !defined(_MSC_VER) && !defined(__BORLANDC__)\n# include <unistd.h>\n#endif\n#if !defined(__STDC_NO_THREADS__) && defined(HAVE_THREADS_H)\n# include <threads.h>\n#endif\n\n#include <sys/types.h>\n#ifndef _WIN32\n# include <sys/stat.h>\n# include <sys/time.h>\n#endif\n#ifdef __linux__\n# define _LINUX_SOURCE\n#endif\n#ifdef HAVE_SYS_RANDOM_H\n# include <sys/random.h>\n#endif\n#ifdef __linux__\n# ifdef HAVE_GETRANDOM\n#  define HAVE_LINUX_COMPATIBLE_GETRANDOM\n# else\n#  include <sys/syscall.h>\n#  if defined(SYS_getrandom) && defined(__NR_getrandom)\n#   define getrandom(B, S, F) syscall(SYS_getrandom, (B), (int) (S), (F))\n#   define HAVE_LINUX_COMPATIBLE_GETRANDOM\n#  endif\n# endif\n#elif defined(__midipix__)\n# define HAVE_LINUX_COMPATIBLE_GETRANDOM\n#elif defined(__FreeBSD__)\n# include <sys/param.h>\n# if defined(__FreeBSD_version) && __FreeBSD_version >= 1200000\n#  define HAVE_LINUX_COMPATIBLE_GETRANDOM\n# endif\n#endif\n#ifdef HAVE_COMMONCRYPTO_COMMONRANDOM_H\n# include <CommonCrypto/CommonRandom.h>\n#endif\n#if !defined(NO_BLOCKING_RANDOM_POLL) && defined(__linux__)\n# define BLOCK_ON_DEV_RANDOM\n#endif\n#ifdef BLOCK_ON_DEV_RANDOM\n# include <poll.h>\n#endif\n\n#include \"core.h\"\n#include \"crypto_core_hchacha20.h\"\n#include \"crypto_stream_chacha20.h\"\n#include \"private/common.h\"\n#include \"randombytes.h\"\n#include \"randombytes_internal_random.h\"\n#include \"runtime.h\"\n#include \"utils.h\"\n\n#ifdef _WIN32\n# include <windows.h>\n# include <sys/timeb.h>\n# define RtlGenRandom SystemFunction036\n# if defined(__cplusplus)\nextern \"C\"\n# endif\nBOOLEAN NTAPI RtlGenRandom(PVOID RandomBuffer, ULONG RandomBufferLength);\n# pragma comment(lib, \"advapi32.lib\")\n# ifdef __BORLANDC__\n#  define _ftime ftime\n#  define _timeb timeb\n# endif\n#endif\n\n#define INTERNAL_RANDOM_BLOCK_SIZE crypto_core_hchacha20_OUTPUTBYTES\n\n#if defined(__OpenBSD__) || defined(__CloudABI__) || defined(__wasi__)\n# define HAVE_SAFE_ARC4RANDOM 1\n#endif\n#if defined(__CloudABI__) || defined(__wasm__)\n# define NONEXISTENT_DEV_RANDOM 1\n#endif\n\n#ifndef SSIZE_MAX\n# define SSIZE_MAX (SIZE_MAX / 2 - 1)\n#endif\n#ifndef S_ISNAM\n# ifdef __COMPCERT__\n#  define S_ISNAM(X) 1\n# else\n#  define S_ISNAM(X) 0\n# endif\n#endif\n\n#if !defined(TLS) && !defined(__STDC_NO_THREADS__) && \\\n    defined(__STDC_VERSION__) && __STDC_VERSION__ >= 201112L\n# define TLS _Thread_local\n#endif\n#ifndef TLS\n# ifdef _WIN32\n#  define TLS __declspec(thread)\n# else\n#  define TLS\n# endif\n#endif\n\n#ifdef HAVE_RDRAND\n# ifdef __clang__\n#  pragma clang attribute push(__attribute__((target(\"rdrnd\"))), apply_to = function)\n# elif defined(__GNUC__)\n#  pragma GCC target(\"rdrnd\")\n# endif\n# include <immintrin.h>\n#endif\n\ntypedef struct InternalRandomGlobal_ {\n    int           initialized;\n    int           random_data_source_fd;\n    int           getentropy_available;\n    int           getrandom_available;\n    int           rdrand_available;\n#ifdef HAVE_GETPID\n    pid_t         pid;\n#endif\n} InternalRandomGlobal;\n\ntypedef struct InternalRandom_ {\n    int           initialized;\n    size_t        rnd32_outleft;\n    unsigned char key[crypto_stream_chacha20_KEYBYTES];\n    unsigned char rnd32[16U * INTERNAL_RANDOM_BLOCK_SIZE];\n    uint64_t      nonce;\n} InternalRandom;\n\nstatic InternalRandomGlobal global = {\n    SODIUM_C99(.initialized =) 0,\n    SODIUM_C99(.random_data_source_fd =) -1\n};\n\nstatic TLS InternalRandom stream = {\n    SODIUM_C99(.initialized =) 0,\n    SODIUM_C99(.rnd32_outleft =) (size_t) 0U\n};\n\n\n/*\n * Get a high-resolution timestamp, as a uint64_t value\n */\n\n#ifdef _WIN32\nstatic uint64_t\nsodium_hrtime(void)\n{\n    struct _timeb tb;\n# pragma warning(push)\n# pragma warning(disable: 4996)\n    _ftime(&tb);\n# pragma warning(pop)\n    return ((uint64_t) tb.time) * 1000000U + ((uint64_t) tb.millitm) * 1000U;\n}\n\n#else /* _WIN32 */\n\nstatic uint64_t\nsodium_hrtime(void)\n{\n    struct timeval tv;\n\n    if (gettimeofday(&tv, NULL) != 0) {\n        sodium_misuse(); /* LCOV_EXCL_LINE */\n    }\n    return ((uint64_t) tv.tv_sec) * 1000000U + (uint64_t) tv.tv_usec;\n}\n#endif /* _WIN32 */\n\n/*\n * Initialize the entropy source\n */\n\n#ifdef _WIN32\n\nstatic void\nrandombytes_internal_random_init(void)\n{\n    global.rdrand_available = sodium_runtime_has_rdrand();\n}\n\n#else /* _WIN32 */\n\n# ifdef HAVE_COMMONCRYPTO_COMMONRANDOM_H\nstatic int\nrandombytes_getentropy(void * const buf, const size_t size)\n{\n    if (CCRandomGenerateBytes(buf, size) != kCCSuccess) {\n        return -1; /* LCOV_EXCL_LINE */\n    }\n    return 0;\n}\n\n# elif defined(HAVE_GETENTROPY)\n\nstatic int\n_randombytes_getentropy(void * const buf, const size_t size)\n{\n    assert(size <= 256U);\n    /* LCOV_EXCL_START */\n    if (&getentropy == NULL) {\n        errno = ENOSYS;\n        return -1;\n    }\n    /* LCOV_EXCL_END */\n    if (getentropy(buf, size) != 0) {\n        return -1; /* LCOV_EXCL_LINE */\n    }\n    return 0;\n}\n\nstatic int\nrandombytes_getentropy(void * const buf_, size_t size)\n{\n    unsigned char *buf = (unsigned char *) buf_;\n    size_t         chunk_size = 256U;\n\n    do {\n        if (size < chunk_size) {\n            chunk_size = size;\n            assert(chunk_size > (size_t) 0U);\n        }\n        if (_randombytes_getentropy(buf, chunk_size) != 0) {\n            return -1; /* LCOV_EXCL_LINE */\n        }\n        size -= chunk_size;\n        buf += chunk_size;\n    } while (size > (size_t) 0U);\n\n    return 0;\n}\n\n# elif defined(HAVE_LINUX_COMPATIBLE_GETRANDOM)\n\nstatic int\n_randombytes_linux_getrandom(void * const buf, const size_t size)\n{\n    int readnb;\n\n    assert(size <= 256U);\n    do {\n        readnb = getrandom(buf, size, 0);\n    } while (readnb < 0 && (errno == EINTR || errno == EAGAIN));\n\n    return (readnb == (int) size) - 1;\n}\n\nstatic int\nrandombytes_linux_getrandom(void * const buf_, size_t size)\n{\n    unsigned char *buf = (unsigned char *) buf_;\n    size_t         chunk_size = 256U;\n\n    do {\n        if (size < chunk_size) {\n            chunk_size = size;\n            assert(chunk_size > (size_t) 0U);\n        }\n        if (_randombytes_linux_getrandom(buf, chunk_size) != 0) {\n            return -1;\n        }\n        size -= chunk_size;\n        buf += chunk_size;\n    } while (size > (size_t) 0U);\n\n    return 0;\n}\n# endif\n\n# ifndef NONEXISTENT_DEV_RANDOM\n\n#  ifdef BLOCK_ON_DEV_RANDOM\nstatic int\nrandombytes_block_on_dev_random(void)\n{\n    struct pollfd pfd;\n    int           fd;\n    int           pret;\n\n    fd = open(\"/dev/random\", O_RDONLY);\n    if (fd == -1) {\n        return 0;\n    }\n    pfd.fd = fd;\n    pfd.events = POLLIN;\n    pfd.revents = 0;\n    do {\n        pret = poll(&pfd, 1, -1);\n    } while (pret < 0 && (errno == EINTR || errno == EAGAIN));\n    if (pret != 1) {\n        (void) close(fd);\n        errno = EIO;\n        return -1;\n    }\n    return close(fd);\n}\n#  endif\n\n/* LCOV_EXCL_START */\nstatic int\nrandombytes_internal_random_random_dev_open(void)\n{\n    struct stat       st;\n    static const char *devices[] = {\n#  ifndef USE_BLOCKING_RANDOM\n        \"/dev/urandom\",\n#  endif\n        \"/dev/random\", NULL\n    };\n    const char      **device = devices;\n    int               fd;\n\n#  ifdef BLOCK_ON_DEV_RANDOM\n    if (randombytes_block_on_dev_random() != 0) {\n        return -1;\n    }\n#  endif\n    do {\n        fd = open(*device, O_RDONLY);\n        if (fd != -1) {\n            if (fstat(fd, &st) == 0 && (S_ISNAM(st.st_mode) || S_ISCHR(st.st_mode))) {\n#  if defined(F_SETFD) && defined(FD_CLOEXEC)\n                (void) fcntl(fd, F_SETFD, fcntl(fd, F_GETFD) | FD_CLOEXEC);\n#  endif\n                return fd;\n            }\n            (void) close(fd);\n        } else if (errno == EINTR) {\n            continue;\n        }\n        device++;\n    } while (*device != NULL);\n\n    errno = EIO;\n    return -1;\n}\n/* LCOV_EXCL_STOP */\n\nstatic ssize_t\nsafe_read(const int fd, void * const buf_, size_t size)\n{\n    unsigned char *buf = (unsigned char *) buf_;\n    ssize_t        readnb;\n\n    assert(size > (size_t) 0U);\n    assert(size <= SSIZE_MAX);\n    do {\n        while ((readnb = read(fd, buf, size)) < (ssize_t) 0 &&\n               (errno == EINTR || errno == EAGAIN)); /* LCOV_EXCL_LINE */\n        if (readnb < (ssize_t) 0) {\n            return readnb; /* LCOV_EXCL_LINE */\n        }\n        if (readnb == (ssize_t) 0) {\n            break; /* LCOV_EXCL_LINE */\n        }\n        size -= (size_t) readnb;\n        buf += readnb;\n    } while (size > (ssize_t) 0);\n\n    return (ssize_t) (buf - (unsigned char *) buf_);\n}\n\n# endif /* !NONEXISTENT_DEV_RANDOM */\n\nstatic void\nrandombytes_internal_random_init(void)\n{\n    const int errno_save = errno;\n\n    global.rdrand_available = sodium_runtime_has_rdrand();\n    global.getentropy_available = 0;\n    global.getrandom_available = 0;\n\n# ifdef HAVE_GETENTROPY\n    {\n        unsigned char fodder[16];\n\n        if (randombytes_getentropy(fodder, sizeof fodder) == 0) {\n            global.getentropy_available = 1;\n            errno = errno_save;\n            return;\n        }\n    }\n# elif defined(HAVE_LINUX_COMPATIBLE_GETRANDOM)\n    {\n        unsigned char fodder[16];\n\n        if (randombytes_linux_getrandom(fodder, sizeof fodder) == 0) {\n            global.getrandom_available = 1;\n            errno = errno_save;\n            return;\n        }\n    }\n# endif\n/* LCOV_EXCL_START */\n# if !defined(NONEXISTENT_DEV_RANDOM)\n    assert((global.getentropy_available | global.getrandom_available) == 0);\n    if ((global.random_data_source_fd =\n         randombytes_internal_random_random_dev_open()) == -1) {\n        sodium_misuse(); /* LCOV_EXCL_LINE */\n    }\n    errno = errno_save;\n    return;\n# endif\n/* LCOV_EXCL_STOP */\n# ifndef HAVE_SAFE_ARC4RANDOM\n    sodium_misuse();\n# endif\n}\n\n#endif /* _WIN32 */\n\n/*\n * (Re)seed the generator using the entropy source\n */\n\nstatic void\nrandombytes_internal_random_stir(void)\n{\n    stream.nonce = sodium_hrtime();\n    assert(stream.nonce != (uint64_t) 0U);\n    memset(stream.rnd32, 0, sizeof stream.rnd32);\n    stream.rnd32_outleft = (size_t) 0U;\n    if (global.initialized == 0) {\n        randombytes_internal_random_init();\n        global.initialized = 1;\n    }\n#ifdef HAVE_GETPID\n    global.pid = getpid();\n#endif\n\n#ifndef _WIN32\n\n# ifdef HAVE_GETENTROPY\n     if (global.getentropy_available != 0) {\n         if (randombytes_getentropy(stream.key, sizeof stream.key) != 0) {\n             sodium_misuse(); /* LCOV_EXCL_LINE */\n         }\n     }\n# elif defined(HAVE_LINUX_COMPATIBLE_GETRANDOM)\n     if (global.getrandom_available != 0) {\n         if (randombytes_linux_getrandom(stream.key, sizeof stream.key) != 0) {\n             sodium_misuse(); /* LCOV_EXCL_LINE */\n         }\n     }\n# elif defined(NONEXISTENT_DEV_RANDOM) && defined(HAVE_SAFE_ARC4RANDOM)\n    arc4random_buf(stream.key, sizeof stream.key);\n# elif !defined(NONEXISTENT_DEV_RANDOM)\n    if (global.random_data_source_fd == -1 ||\n        safe_read(global.random_data_source_fd, stream.key,\n                  sizeof stream.key) != (ssize_t) sizeof stream.key) {\n        sodium_misuse(); /* LCOV_EXCL_LINE */\n    }\n# else\n    sodium_misuse();\n# endif\n\n#else /* _WIN32 */\n    if (! RtlGenRandom((PVOID) stream.key, (ULONG) sizeof stream.key)) {\n        sodium_misuse(); /* LCOV_EXCL_LINE */\n    }\n#endif\n\n    stream.initialized = 1;\n}\n\n/*\n * Reseed the generator if it hasn't been initialized yet\n */\n\nstatic void\nrandombytes_internal_random_stir_if_needed(void)\n{\n#ifdef HAVE_GETPID\n    if (stream.initialized == 0) {\n        randombytes_internal_random_stir();\n    } else if (global.pid != getpid()) {\n        sodium_misuse(); /* LCOV_EXCL_LINE */\n    }\n#else\n    if (stream.initialized == 0) {\n        randombytes_internal_random_stir();\n    }\n#endif\n}\n\n/*\n * Close the stream, free global resources\n */\n\n#ifdef _WIN32\nstatic int\nrandombytes_internal_random_close(void)\n{\n    int ret = -1;\n\n    if (global.initialized != 0) {\n        global.initialized = 0;\n        ret = 0;\n    }\n    sodium_memzero(&stream, sizeof stream);\n\n    return ret;\n}\n#else\nstatic int\nrandombytes_internal_random_close(void)\n{\n    int ret = -1;\n\n# ifdef HAVE_GETENTROPY\n    if (global.getentropy_available != 0) {\n        ret = 0;\n    }\n# elif defined(HAVE_LINUX_COMPATIBLE_GETRANDOM)\n    if (global.getrandom_available != 0) {\n        ret = 0;\n    }\n# elif !defined(NONEXISTENT_DEV_RANDOM) && defined(HAVE_SAFE_ARC4RANDOM)\n    ret = 0;\n# else\n    if (global.random_data_source_fd != -1 &&\n        close(global.random_data_source_fd) == 0) {\n        global.random_data_source_fd = -1;\n        global.initialized = 0;\n# ifdef HAVE_GETPID\n        global.pid = (pid_t) 0;\n# endif\n        ret = 0;\n    }\n# endif\n\n    sodium_memzero(&stream, sizeof stream);\n\n    return ret;\n}\n#endif\n\n/*\n * RDRAND is only used to mitigate prediction if a key is compromised\n */\n\nstatic void\nrandombytes_internal_random_xorhwrand(void)\n{\n/* LCOV_EXCL_START */\n#ifdef HAVE_RDRAND\n    unsigned int r;\n\n    if (global.rdrand_available == 0) {\n        return;\n    }\n    (void) _rdrand32_step(&r);\n    * (uint32_t *) (void *)\n        &stream.key[crypto_stream_chacha20_KEYBYTES - 4] ^= (uint32_t) r;\n#endif\n/* LCOV_EXCL_STOP */\n}\n\n/*\n * XOR the key with another same-length secret\n */\n\nstatic inline void\nrandombytes_internal_random_xorkey(const unsigned char * const mix)\n{\n    unsigned char *key = stream.key;\n    size_t         i;\n\n    for (i = (size_t) 0U; i < sizeof stream.key; i++) {\n        key[i] ^= mix[i];\n    }\n}\n\n/*\n * Put `size` random bytes into `buf` and overwrite the key\n */\n\nstatic void\nrandombytes_internal_random_buf(void * const buf, const size_t size)\n{\n    size_t i;\n    int    ret;\n\n    randombytes_internal_random_stir_if_needed();\n    COMPILER_ASSERT(sizeof stream.nonce == crypto_stream_chacha20_NONCEBYTES);\n#if defined(ULLONG_MAX) && defined(SIZE_MAX)\n# if SIZE_MAX > ULLONG_MAX\n    /* coverity[result_independent_of_operands] */\n    assert(size <= ULLONG_MAX);\n# endif\n#endif\n    ret = crypto_stream_chacha20((unsigned char *) buf, (unsigned long long) size,\n                                 (unsigned char *) &stream.nonce, stream.key);\n    assert(ret == 0);\n    for (i = 0U; i < sizeof size; i++) {\n        stream.key[i] ^= ((const unsigned char *) (const void *) &size)[i];\n    }\n    randombytes_internal_random_xorhwrand();\n    stream.nonce++;\n    crypto_stream_chacha20_xor(stream.key, stream.key, sizeof stream.key,\n                               (unsigned char *) &stream.nonce, stream.key);\n}\n\n/*\n * Pop a 32-bit value from the random pool\n *\n * Overwrite the key after the pool gets refilled.\n */\n\nstatic uint32_t\nrandombytes_internal_random(void)\n{\n    uint32_t val;\n    int      ret;\n\n    COMPILER_ASSERT(sizeof stream.rnd32 >= (sizeof stream.key) + (sizeof val));\n    COMPILER_ASSERT(((sizeof stream.rnd32) - (sizeof stream.key))\n                    % sizeof val == (size_t) 0U);\n    if (stream.rnd32_outleft <= (size_t) 0U) {\n        randombytes_internal_random_stir_if_needed();\n        COMPILER_ASSERT(sizeof stream.nonce == crypto_stream_chacha20_NONCEBYTES);\n        ret = crypto_stream_chacha20((unsigned char *) stream.rnd32,\n                                     (unsigned long long) sizeof stream.rnd32,\n                                     (unsigned char *) &stream.nonce,\n                                     stream.key);\n        assert(ret == 0);\n        stream.rnd32_outleft = (sizeof stream.rnd32) - (sizeof stream.key);\n        randombytes_internal_random_xorhwrand();\n        randombytes_internal_random_xorkey(&stream.rnd32[stream.rnd32_outleft]);\n        memset(&stream.rnd32[stream.rnd32_outleft], 0, sizeof stream.key);\n        stream.nonce++;\n    }\n    stream.rnd32_outleft -= sizeof val;\n    memcpy(&val, &stream.rnd32[stream.rnd32_outleft], sizeof val);\n    memset(&stream.rnd32[stream.rnd32_outleft], 0, sizeof val);\n\n    return val;\n}\n\nstatic const char *\nrandombytes_internal_implementation_name(void)\n{\n    return \"internal\";\n}\n\nstruct randombytes_implementation randombytes_internal_implementation = {\n    SODIUM_C99(.implementation_name =) randombytes_internal_implementation_name,\n    SODIUM_C99(.random =) randombytes_internal_random,\n    SODIUM_C99(.stir =) randombytes_internal_random_stir,\n    SODIUM_C99(.uniform =) NULL,\n    SODIUM_C99(.buf =) randombytes_internal_random_buf,\n    SODIUM_C99(.close =) randombytes_internal_random_close\n};\n\n#ifdef HAVE_RDRAND\n# ifdef __clang__\n#  pragma clang attribute pop\n# endif\n#endif\n"
  },
  {
    "path": "src/libsodium/randombytes/randombytes.c",
    "content": "\n#include <assert.h>\n#include <limits.h>\n#include <stdint.h>\n#include <stdlib.h>\n\n#include <sys/types.h>\n\n#ifdef __EMSCRIPTEN__\n# include <emscripten.h>\n#endif\n\n#include \"core.h\"\n#include \"crypto_stream_chacha20.h\"\n#include \"randombytes.h\"\n#ifndef RANDOMBYTES_CUSTOM_IMPLEMENTATION\n# ifdef RANDOMBYTES_DEFAULT_IMPLEMENTATION\n#  include \"randombytes_internal.h\"\n# endif\n# include \"randombytes_sysrandom.h\"\n#endif\n#include \"private/common.h\"\n\n/* C++Builder defines a \"random\" macro */\n#undef random\n\nstatic const randombytes_implementation *implementation;\n\n#ifndef RANDOMBYTES_DEFAULT_IMPLEMENTATION\n# ifdef __EMSCRIPTEN__\n#  define RANDOMBYTES_DEFAULT_IMPLEMENTATION NULL\n# else\n#  define RANDOMBYTES_DEFAULT_IMPLEMENTATION &randombytes_sysrandom_implementation\n# endif\n#endif\n\n#ifdef __EMSCRIPTEN__\nstatic const char *\njavascript_implementation_name(void)\n{\n    return \"js\";\n}\n\nstatic uint32_t\njavascript_random(void)\n{\n    return EM_ASM_INT_V({\n        return Module.getRandomValue();\n    });\n}\n\nstatic void\njavascript_stir(void)\n{\n    EM_ASM({\n        if (Module.getRandomValue === undefined) {\n            try {\n                var window_ = 'object' === typeof window ? window : self;\n                var crypto_ = typeof window_.crypto !== 'undefined' ? window_.crypto : window_.msCrypto;\n                crypto_ = (crypto_ === undefined) ? crypto : crypto_;\n                var randomValuesStandard = function() {\n                    var buf = new Uint32Array(1);\n                    crypto_.getRandomValues(buf);\n                    return buf[0] >>> 0;\n                };\n                randomValuesStandard();\n                Module.getRandomValue = randomValuesStandard;\n                Module.getRandomBytes = function(ptr, size) {\n                    var heapu8 = Module.HEAPU8;\n                    var chunk = 65536;\n                    while (size > chunk) {\n                        var buf = new Uint8Array(chunk);\n                        crypto_.getRandomValues(buf);\n                        heapu8.set(buf, ptr);\n                        ptr += chunk;\n                        size -= chunk;\n                    }\n                    var buf = new Uint8Array(size);\n                    crypto_.getRandomValues(buf);\n                    heapu8.set(buf, ptr);\n                };\n            } catch (e) {\n                try {\n                    var crypto = require('crypto');\n                    var randomValueNodeJS = function() {\n                        var buf = crypto['randomBytes'](4);\n                        return (buf[0] << 24 | buf[1] << 16 | buf[2] << 8 | buf[3]) >>> 0;\n                    };\n                    randomValueNodeJS();\n                    Module.getRandomValue = randomValueNodeJS;\n                    Module.getRandomBytes = function(ptr, size) {\n                        var buf = crypto['randomBytes'](size);\n                        Module.HEAPU8.set(buf, ptr);\n                    };\n                } catch (e) {\n                    throw 'No secure random number generator found';\n                }\n            }\n        }\n        if (Module.getRandomBytes === undefined) {\n            Module.getRandomBytes = function(ptr, size) {\n                var heapu8 = Module.HEAPU8;\n                for (var i = 0; i < size; i++) {\n                    heapu8[ptr + i] = Module.getRandomValue() & 0xff;\n                }\n            };\n        }\n    });\n}\n\nstatic void\njavascript_buf(void * const buf, const size_t size)\n{\n    if (size > (size_t) 0U) {\n        EM_ASM({\n            if (Module.getRandomBytes === undefined) {\n                Module.getRandomBytes = function(ptr, size) {\n                    var heapu8 = Module.HEAPU8;\n                    for (var i = 0; i < size; i++) {\n                        heapu8[ptr + i] = Module.getRandomValue() & 0xff;\n                    }\n                };\n            }\n            Module.getRandomBytes($0, $1);\n        }, buf, size);\n    }\n}\n#endif\n\nstatic void\nrandombytes_init_if_needed(void)\n{\n    if (implementation == NULL) {\n#ifdef __EMSCRIPTEN__\n        static randombytes_implementation javascript_implementation;\n        javascript_implementation.implementation_name = javascript_implementation_name;\n        javascript_implementation.random = javascript_random;\n        javascript_implementation.stir = javascript_stir;\n        javascript_implementation.buf = javascript_buf;\n        implementation = &javascript_implementation;\n#else\n        implementation = RANDOMBYTES_DEFAULT_IMPLEMENTATION;\n#endif\n        randombytes_stir();\n    }\n}\n\nint\nrandombytes_set_implementation(const randombytes_implementation *impl)\n{\n    implementation = impl;\n    return 0;\n}\n\nconst char *\nrandombytes_implementation_name(void)\n{\n    randombytes_init_if_needed();\n    return implementation->implementation_name();\n}\n\nuint32_t\nrandombytes_random(void)\n{\n    randombytes_init_if_needed();\n    return implementation->random();\n}\n\nvoid\nrandombytes_stir(void)\n{\n    randombytes_init_if_needed();\n    if (implementation->stir != NULL) {\n        implementation->stir();\n    }\n}\n\nuint32_t\nrandombytes_uniform(const uint32_t upper_bound)\n{\n    uint32_t min;\n    uint32_t r;\n\n    randombytes_init_if_needed();\n    if (implementation->uniform != NULL) {\n        return implementation->uniform(upper_bound);\n    }\n    if (upper_bound < 2) {\n        return 0;\n    }\n    min = (1U + ~upper_bound) % upper_bound; /* = 2**32 mod upper_bound */\n    do {\n        r = randombytes_random();\n    } while (r < min);\n    /* r is now clamped to a set whose size mod upper_bound == 0\n     * the worst case (2**31+1) requires ~ 2 attempts */\n\n    return r % upper_bound;\n}\n\nvoid\nrandombytes_buf(void * const buf, const size_t size)\n{\n    randombytes_init_if_needed();\n    if (size > (size_t) 0U) {\n        implementation->buf(buf, size);\n    }\n}\n\nvoid\nrandombytes_buf_deterministic(void * const buf, const size_t size,\n                              const unsigned char seed[randombytes_SEEDBYTES])\n{\n    static const unsigned char nonce[crypto_stream_chacha20_ietf_NONCEBYTES] = {\n        'L', 'i', 'b', 's', 'o', 'd', 'i', 'u', 'm', 'D', 'R', 'G'\n    };\n\n    COMPILER_ASSERT(randombytes_SEEDBYTES == crypto_stream_chacha20_ietf_KEYBYTES);\n#if SIZE_MAX > 0x4000000000ULL\n    COMPILER_ASSERT(randombytes_BYTES_MAX <= 0x4000000000ULL);\n    if (size > 0x4000000000ULL) {\n        sodium_misuse(); /* LCOV_EXCL_LINE */\n    }\n#endif\n    crypto_stream_chacha20_ietf((unsigned char *) buf, (unsigned long long) size,\n                                nonce, seed);\n}\n\nsize_t\nrandombytes_seedbytes(void)\n{\n    return randombytes_SEEDBYTES;\n}\n\nint\nrandombytes_close(void)\n{\n    if (implementation != NULL && implementation->close != NULL) {\n        return implementation->close();\n    }\n    return 0;\n}\n\nvoid\nrandombytes(unsigned char * const buf, const unsigned long long buf_len)\n{\n    assert(buf_len <= SIZE_MAX);\n    randombytes_buf(buf, (size_t) buf_len);\n}\n"
  },
  {
    "path": "src/libsodium/randombytes/sysrandom/randombytes_sysrandom.c",
    "content": "#include <assert.h>\n#include <errno.h>\n#include <fcntl.h>\n#include <limits.h>\n#include <stdint.h>\n#include <string.h>\n#ifndef _WIN32\n# include <unistd.h>\n#endif\n#include <stdlib.h>\n\n#include <sys/types.h>\n#ifndef _WIN32\n# include <sys/stat.h>\n# include <sys/time.h>\n#endif\n#ifdef __linux__\n# define _LINUX_SOURCE\n#endif\n#ifdef HAVE_SYS_RANDOM_H\n# include <sys/random.h>\n#endif\n#ifdef __linux__\n# ifdef HAVE_GETRANDOM\n#  define HAVE_LINUX_COMPATIBLE_GETRANDOM\n# else\n#  include <sys/syscall.h>\n#  if defined(SYS_getrandom) && defined(__NR_getrandom)\n#   define getrandom(B, S, F) syscall(SYS_getrandom, (B), (int) (S), (F))\n#   define HAVE_LINUX_COMPATIBLE_GETRANDOM\n#  endif\n# endif\n#elif defined(__midipix__)\n# define HAVE_LINUX_COMPATIBLE_GETRANDOM\n#elif defined(__FreeBSD__) || defined(__DragonFly__)\n# include <sys/param.h>\n# if (defined(__FreeBSD_version) && __FreeBSD_version >= 1200000) || \\\n     (defined(__DragonFly_version) && __DragonFly_version >= 500700)\n#  define HAVE_LINUX_COMPATIBLE_GETRANDOM\n# endif\n#endif\n#if !defined(NO_BLOCKING_RANDOM_POLL) && defined(__linux__)\n# define BLOCK_ON_DEV_RANDOM\n#endif\n#ifdef BLOCK_ON_DEV_RANDOM\n# include <poll.h>\n#endif\n\n#include \"core.h\"\n#include \"private/common.h\"\n#include \"randombytes.h\"\n#include \"randombytes_sysrandom.h\"\n#include \"utils.h\"\n\n#ifdef _WIN32\n/* `RtlGenRandom` is used over `CryptGenRandom` on Microsoft Windows based systems:\n *  - `CryptGenRandom` requires pulling in `CryptoAPI` which causes unnecessary\n *     memory overhead if this API is not being used for other purposes\n *  - `RtlGenRandom` is thus called directly instead. A detailed explanation\n *     can be found here: https://blogs.msdn.microsoft.com/michael_howard/2005/01/14/cryptographically-secure-random-number-on-windows-without-using-cryptoapi/\n *\n * In spite of the disclaimer on the `RtlGenRandom` documentation page that was\n * written back in the Windows XP days, this function is here to stay. The CRT\n * function `rand_s()` directly depends on it, so touching it would break many\n * applications released since Windows XP.\n *\n * Also note that Rust, Firefox and BoringSSL (thus, Google Chrome and everything\n * based on Chromium) also depend on it, and that libsodium allows the RNG to be\n * replaced without patching nor recompiling the library.\n */\n# include <windows.h>\n# define RtlGenRandom SystemFunction036\n# if defined(__cplusplus)\nextern \"C\"\n# endif\nBOOLEAN NTAPI RtlGenRandom(PVOID RandomBuffer, ULONG RandomBufferLength);\n# pragma comment(lib, \"advapi32.lib\")\n#endif\n\n#if defined(__OpenBSD__) || defined(__CloudABI__) || defined(__wasi__)\n# define HAVE_SAFE_ARC4RANDOM 1\n#endif\n\n#ifndef SSIZE_MAX\n# define SSIZE_MAX (SIZE_MAX / 2 - 1)\n#endif\n\n#ifdef HAVE_SAFE_ARC4RANDOM\n\nstatic uint32_t\nrandombytes_sysrandom(void)\n{\n    return arc4random();\n}\n\nstatic void\nrandombytes_sysrandom_stir(void)\n{\n}\n\nstatic void\nrandombytes_sysrandom_buf(void * const buf, const size_t size)\n{\n    arc4random_buf(buf, size);\n}\n\nstatic int\nrandombytes_sysrandom_close(void)\n{\n    return 0;\n}\n\n#else /* HAVE_SAFE_ARC4RANDOM */\n\ntypedef struct SysRandom_ {\n    int random_data_source_fd;\n    int initialized;\n    int getrandom_available;\n} SysRandom;\n\nstatic SysRandom stream = {\n    SODIUM_C99(.random_data_source_fd =) -1,\n    SODIUM_C99(.initialized =) 0,\n    SODIUM_C99(.getrandom_available =) 0\n};\n\n# ifndef _WIN32\nstatic ssize_t\nsafe_read(const int fd, void * const buf_, size_t size)\n{\n    unsigned char *buf = (unsigned char *) buf_;\n    ssize_t        readnb;\n\n    assert(size > (size_t) 0U);\n    assert(size <= SSIZE_MAX);\n    do {\n        while ((readnb = read(fd, buf, size)) < (ssize_t) 0 &&\n               (errno == EINTR || errno == EAGAIN)); /* LCOV_EXCL_LINE */\n        if (readnb < (ssize_t) 0) {\n            return readnb; /* LCOV_EXCL_LINE */\n        }\n        if (readnb == (ssize_t) 0) {\n            break; /* LCOV_EXCL_LINE */\n        }\n        size -= (size_t) readnb;\n        buf += readnb;\n    } while (size > (ssize_t) 0);\n\n    return (ssize_t) (buf - (unsigned char *) buf_);\n}\n\n#  ifdef BLOCK_ON_DEV_RANDOM\nstatic int\nrandombytes_block_on_dev_random(void)\n{\n    struct pollfd pfd;\n    int           fd;\n    int           pret;\n\n    fd = open(\"/dev/random\", O_RDONLY);\n    if (fd == -1) {\n        return 0;\n    }\n    pfd.fd = fd;\n    pfd.events = POLLIN;\n    pfd.revents = 0;\n    do {\n        pret = poll(&pfd, 1, -1);\n    } while (pret < 0 && (errno == EINTR || errno == EAGAIN));\n    if (pret != 1) {\n        (void) close(fd);\n        errno = EIO;\n        return -1;\n    }\n    return close(fd);\n}\n#  endif /* BLOCK_ON_DEV_RANDOM */\n\nstatic int\nrandombytes_sysrandom_random_dev_open(void)\n{\n/* LCOV_EXCL_START */\n    struct stat        st;\n    static const char *devices[] = {\n#  ifndef USE_BLOCKING_RANDOM\n        \"/dev/urandom\",\n#  endif\n        \"/dev/random\", NULL\n    };\n    const char       **device = devices;\n    int                fd;\n\n#  ifdef BLOCK_ON_DEV_RANDOM\n    if (randombytes_block_on_dev_random() != 0) {\n        return -1;\n    }\n#  endif\n    do {\n        fd = open(*device, O_RDONLY);\n        if (fd != -1) {\n            if (fstat(fd, &st) == 0 &&\n#  ifdef __COMPCERT__\n                1\n#  elif defined(S_ISNAM)\n                (S_ISNAM(st.st_mode) || S_ISCHR(st.st_mode))\n#  else\n                S_ISCHR(st.st_mode)\n#  endif\n               ) {\n#  if defined(F_SETFD) && defined(FD_CLOEXEC)\n                (void) fcntl(fd, F_SETFD, fcntl(fd, F_GETFD) | FD_CLOEXEC);\n#  endif\n                return fd;\n            }\n            (void) close(fd);\n        } else if (errno == EINTR) {\n            continue;\n        }\n        device++;\n    } while (*device != NULL);\n\n    errno = EIO;\n    return -1;\n/* LCOV_EXCL_STOP */\n}\n\n#  ifdef HAVE_LINUX_COMPATIBLE_GETRANDOM\nstatic int\n_randombytes_linux_getrandom(void * const buf, const size_t size)\n{\n    int readnb;\n\n    assert(size <= 256U);\n    do {\n        readnb = getrandom(buf, size, 0);\n    } while (readnb < 0 && (errno == EINTR || errno == EAGAIN));\n\n    return (readnb == (int) size) - 1;\n}\n\nstatic int\nrandombytes_linux_getrandom(void * const buf_, size_t size)\n{\n    unsigned char *buf = (unsigned char *) buf_;\n    size_t         chunk_size = 256U;\n\n    do {\n        if (size < chunk_size) {\n            chunk_size = size;\n            assert(chunk_size > (size_t) 0U);\n        }\n        if (_randombytes_linux_getrandom(buf, chunk_size) != 0) {\n            return -1;\n        }\n        size -= chunk_size;\n        buf += chunk_size;\n    } while (size > (size_t) 0U);\n\n    return 0;\n}\n#  endif /* HAVE_LINUX_COMPATIBLE_GETRANDOM */\n\nstatic void\nrandombytes_sysrandom_init(void)\n{\n    const int     errno_save = errno;\n\n#  ifdef HAVE_LINUX_COMPATIBLE_GETRANDOM\n    {\n        unsigned char fodder[16];\n\n        if (randombytes_linux_getrandom(fodder, sizeof fodder) == 0) {\n            stream.getrandom_available = 1;\n            errno = errno_save;\n            return;\n        }\n        stream.getrandom_available = 0;\n    }\n#  endif\n\n    if ((stream.random_data_source_fd =\n         randombytes_sysrandom_random_dev_open()) == -1) {\n        sodium_misuse(); /* LCOV_EXCL_LINE */\n    }\n    errno = errno_save;\n}\n\n# else /* _WIN32 */\n\nstatic void\nrandombytes_sysrandom_init(void)\n{\n}\n# endif /* _WIN32 */\n\nstatic void\nrandombytes_sysrandom_stir(void)\n{\n    if (stream.initialized == 0) {\n        randombytes_sysrandom_init();\n        stream.initialized = 1;\n    }\n}\n\nstatic void\nrandombytes_sysrandom_stir_if_needed(void)\n{\n    if (stream.initialized == 0) {\n        randombytes_sysrandom_stir();\n    }\n}\n\nstatic int\nrandombytes_sysrandom_close(void)\n{\n    int ret = -1;\n\n# ifndef _WIN32\n    if (stream.random_data_source_fd != -1 &&\n        close(stream.random_data_source_fd) == 0) {\n        stream.random_data_source_fd = -1;\n        stream.initialized = 0;\n        ret = 0;\n    }\n#  ifdef HAVE_LINUX_COMPATIBLE_GETRANDOM\n    if (stream.getrandom_available != 0) {\n        ret = 0;\n    }\n#  endif\n# else /* _WIN32 */\n    if (stream.initialized != 0) {\n        stream.initialized = 0;\n        ret = 0;\n    }\n# endif /* _WIN32 */\n    return ret;\n}\n\nstatic void\nrandombytes_sysrandom_buf(void * const buf, const size_t size)\n{\n    randombytes_sysrandom_stir_if_needed();\n# if defined(ULLONG_MAX) && defined(SIZE_MAX)\n#  if SIZE_MAX > ULLONG_MAX\n    /* coverity[result_independent_of_operands] */\n    assert(size <= ULLONG_MAX);\n#  endif\n# endif\n# ifndef _WIN32\n#  ifdef HAVE_LINUX_COMPATIBLE_GETRANDOM\n    if (stream.getrandom_available != 0) {\n        if (randombytes_linux_getrandom(buf, size) != 0) {\n            sodium_misuse(); /* LCOV_EXCL_LINE */\n        }\n        return;\n    }\n#  endif\n    if (stream.random_data_source_fd == -1 ||\n        safe_read(stream.random_data_source_fd, buf, size) != (ssize_t) size) {\n        sodium_misuse(); /* LCOV_EXCL_LINE */\n    }\n# else /* _WIN32 */\n    COMPILER_ASSERT(randombytes_BYTES_MAX <= 0xffffffffUL);\n    if (size > (size_t) 0xffffffffUL) {\n        sodium_misuse(); /* LCOV_EXCL_LINE */\n    }\n    if (! RtlGenRandom((PVOID) buf, (ULONG) size)) {\n        sodium_misuse(); /* LCOV_EXCL_LINE */\n    }\n# endif /* _WIN32 */\n}\n\nstatic uint32_t\nrandombytes_sysrandom(void)\n{\n    uint32_t r;\n\n    randombytes_sysrandom_buf(&r, sizeof r);\n\n    return r;\n}\n\n#endif /* HAVE_SAFE_ARC4RANDOM */\n\nstatic const char *\nrandombytes_sysrandom_implementation_name(void)\n{\n    return \"sysrandom\";\n}\n\nstruct randombytes_implementation randombytes_sysrandom_implementation = {\n    SODIUM_C99(.implementation_name =) randombytes_sysrandom_implementation_name,\n    SODIUM_C99(.random =) randombytes_sysrandom,\n    SODIUM_C99(.stir =) randombytes_sysrandom_stir,\n    SODIUM_C99(.uniform =) NULL,\n    SODIUM_C99(.buf =) randombytes_sysrandom_buf,\n    SODIUM_C99(.close =) randombytes_sysrandom_close\n};\n"
  },
  {
    "path": "src/libsodium/sodium/codecs.c",
    "content": "#include <assert.h>\n#include <ctype.h>\n#include <errno.h>\n#include <limits.h>\n#include <stddef.h>\n#include <stdint.h>\n#include <stdlib.h>\n#include <string.h>\n\n#include \"core.h\"\n#include \"private/common.h\"\n#include \"utils.h\"\n\n/* Derived from original code by CodesInChaos */\nchar *\nsodium_bin2hex(char *const hex, const size_t hex_maxlen,\n               const unsigned char *const bin, const size_t bin_len)\n{\n    size_t       i = (size_t) 0U;\n    unsigned int x;\n    int          b;\n    int          c;\n\n    if (bin_len >= SIZE_MAX / 2 || hex_maxlen <= bin_len * 2U) {\n        sodium_misuse(); /* LCOV_EXCL_LINE */\n    }\n    while (i < bin_len) {\n        c = bin[i] & 0xf;\n        b = bin[i] >> 4;\n        x = (unsigned char) (87U + c + (((c - 10U) >> 8) & ~38U)) << 8 |\n            (unsigned char) (87U + b + (((b - 10U) >> 8) & ~38U));\n        hex[i * 2U] = (char) x;\n        x >>= 8;\n        hex[i * 2U + 1U] = (char) x;\n        i++;\n    }\n    hex[i * 2U] = 0U;\n\n    return hex;\n}\n\nint\nsodium_hex2bin(unsigned char *const bin, const size_t bin_maxlen,\n               const char *const hex, const size_t hex_len,\n               const char *const ignore, size_t *const bin_len,\n               const char **const hex_end)\n{\n    size_t        bin_pos = (size_t) 0U;\n    size_t        hex_pos = (size_t) 0U;\n    int           ret     = 0;\n    unsigned char c;\n    unsigned char c_acc = 0U;\n    unsigned char c_alpha0, c_alpha;\n    unsigned char c_num0, c_num;\n    unsigned char c_val;\n    unsigned char state = 0U;\n\n    while (hex_pos < hex_len) {\n        c        = (unsigned char) hex[hex_pos];\n        c_num    = c ^ 48U;\n        c_num0   = (c_num - 10U) >> 8;\n        c_alpha  = (c & ~32U) - 55U;\n        c_alpha0 = ((c_alpha - 10U) ^ (c_alpha - 16U)) >> 8;\n        if ((c_num0 | c_alpha0) == 0U) {\n            if (ignore != NULL && state == 0U && strchr(ignore, c) != NULL) {\n                hex_pos++;\n                continue;\n            }\n            break;\n        }\n        c_val = (c_num0 & c_num) | (c_alpha0 & c_alpha);\n        if (bin_pos >= bin_maxlen) {\n            ret   = -1;\n            errno = ERANGE;\n            break;\n        }\n        if (state == 0U) {\n            c_acc = c_val * 16U;\n        } else {\n            bin[bin_pos++] = c_acc | c_val;\n        }\n        state = ~state;\n        hex_pos++;\n    }\n    if (state != 0U) {\n        hex_pos--;\n        errno = EINVAL;\n        ret = -1;\n    }\n    if (ret != 0) {\n        bin_pos = (size_t) 0U;\n    }\n    if (hex_end != NULL) {\n        *hex_end = &hex[hex_pos];\n    } else if (hex_pos != hex_len) {\n        errno = EINVAL;\n        ret = -1;\n    }\n    if (bin_len != NULL) {\n        *bin_len = bin_pos;\n    }\n    return ret;\n}\n\n/*\n * Some macros for constant-time comparisons. These work over values in\n * the 0..255 range. Returned value is 0x00 on \"false\", 0xFF on \"true\".\n *\n * Original code by Thomas Pornin.\n */\n#define EQ(x, y) \\\n    ((((0U - ((unsigned int) (x) ^ (unsigned int) (y))) >> 8) & 0xFF) ^ 0xFF)\n#define GT(x, y) ((((unsigned int) (y) - (unsigned int) (x)) >> 8) & 0xFF)\n#define GE(x, y) (GT(y, x) ^ 0xFF)\n#define LT(x, y) GT(y, x)\n#define LE(x, y) GE(y, x)\n\nstatic int\nb64_byte_to_char(unsigned int x)\n{\n    return (LT(x, 26) & (x + 'A')) |\n           (GE(x, 26) & LT(x, 52) & (x + ('a' - 26))) |\n           (GE(x, 52) & LT(x, 62) & (x + ('0' - 52))) | (EQ(x, 62) & '+') |\n           (EQ(x, 63) & '/');\n}\n\nstatic unsigned int\nb64_char_to_byte(int c)\n{\n    const unsigned int x =\n        (GE(c, 'A') & LE(c, 'Z') & (c - 'A')) |\n        (GE(c, 'a') & LE(c, 'z') & (c - ('a' - 26))) |\n        (GE(c, '0') & LE(c, '9') & (c - ('0' - 52))) | (EQ(c, '+') & 62) |\n        (EQ(c, '/') & 63);\n\n    return x | (EQ(x, 0) & (EQ(c, 'A') ^ 0xFF));\n}\n\nstatic int\nb64_byte_to_urlsafe_char(unsigned int x)\n{\n    return (LT(x, 26) & (x + 'A')) |\n           (GE(x, 26) & LT(x, 52) & (x + ('a' - 26))) |\n           (GE(x, 52) & LT(x, 62) & (x + ('0' - 52))) | (EQ(x, 62) & '-') |\n           (EQ(x, 63) & '_');\n}\n\nstatic unsigned int\nb64_urlsafe_char_to_byte(int c)\n{\n    const unsigned x =\n        (GE(c, 'A') & LE(c, 'Z') & (c - 'A')) |\n        (GE(c, 'a') & LE(c, 'z') & (c - ('a' - 26))) |\n        (GE(c, '0') & LE(c, '9') & (c - ('0' - 52))) | (EQ(c, '-') & 62) |\n        (EQ(c, '_') & 63);\n\n    return x | (EQ(x, 0) & (EQ(c, 'A') ^ 0xFF));\n}\n\n\n#define VARIANT_NO_PADDING_MASK 0x2U\n#define VARIANT_URLSAFE_MASK    0x4U\n\nstatic void\nsodium_base64_check_variant(const int variant)\n{\n    if ((((unsigned int) variant) & ~ 0x6U) != 0x1U) {\n        sodium_misuse(); /* LCOV_EXCL_LINE */\n    }\n}\n\nsize_t\nsodium_base64_encoded_len(const size_t bin_len, const int variant)\n{\n    sodium_base64_check_variant(variant);\n\n    return sodium_base64_ENCODED_LEN(bin_len, variant);\n}\n\nchar *\nsodium_bin2base64(char * const b64, const size_t b64_maxlen,\n                  const unsigned char * const bin, const size_t bin_len,\n                  const int variant)\n{\n    size_t       acc_len = (size_t) 0;\n    size_t       b64_len;\n    size_t       b64_pos = (size_t) 0;\n    size_t       bin_pos = (size_t) 0;\n    size_t       nibbles;\n    size_t       remainder;\n    unsigned int acc = 0U;\n\n    sodium_base64_check_variant(variant);\n    nibbles = bin_len / 3;\n    remainder = bin_len - 3 * nibbles;\n    b64_len = nibbles * 4;\n    if (remainder != 0) {\n        if ((((unsigned int) variant) & VARIANT_NO_PADDING_MASK) == 0U) {\n            b64_len += 4;\n        } else {\n            b64_len += 2 + (remainder >> 1);\n        }\n    }\n    if (b64_maxlen <= b64_len) {\n        sodium_misuse(); /* LCOV_EXCL_LINE */\n    }\n    if ((((unsigned int) variant) & VARIANT_URLSAFE_MASK) != 0U) {\n        while (bin_pos < bin_len) {\n            acc = (acc << 8) + bin[bin_pos++];\n            acc_len += 8;\n            while (acc_len >= 6) {\n                acc_len -= 6;\n                b64[b64_pos++] = (char) b64_byte_to_urlsafe_char((acc >> acc_len) & 0x3F);\n            }\n        }\n        if (acc_len > 0) {\n            b64[b64_pos++] = (char) b64_byte_to_urlsafe_char((acc << (6 - acc_len)) & 0x3F);\n        }\n    } else {\n        while (bin_pos < bin_len) {\n            acc = (acc << 8) + bin[bin_pos++];\n            acc_len += 8;\n            while (acc_len >= 6) {\n                acc_len -= 6;\n                b64[b64_pos++] = (char) b64_byte_to_char((acc >> acc_len) & 0x3F);\n            }\n        }\n        if (acc_len > 0) {\n            b64[b64_pos++] = (char) b64_byte_to_char((acc << (6 - acc_len)) & 0x3F);\n        }\n    }\n    assert(b64_pos <= b64_len);\n    while (b64_pos < b64_len) {\n        b64[b64_pos++] = '=';\n    }\n    do {\n        b64[b64_pos++] = 0U;\n    } while (b64_pos < b64_maxlen);\n\n    return b64;\n}\n\nstatic int\n_sodium_base642bin_skip_padding(const char * const b64, const size_t b64_len,\n                                size_t * const b64_pos_p,\n                                const char * const ignore, size_t padding_len)\n{\n    int c;\n\n    while (padding_len > 0) {\n        if (*b64_pos_p >= b64_len) {\n            errno = ERANGE;\n            return -1;\n        }\n        ACQUIRE_FENCE;\n        c = b64[*b64_pos_p];\n        if (c == '=') {\n            padding_len--;\n        } else if (ignore == NULL || strchr(ignore, c) == NULL) {\n            errno = EINVAL;\n            return -1;\n        }\n        (*b64_pos_p)++;\n    }\n    return 0;\n}\n\nint\nsodium_base642bin(unsigned char * const bin, const size_t bin_maxlen,\n                  const char * const b64, const size_t b64_len,\n                  const char * const ignore, size_t * const bin_len,\n                  const char ** const b64_end, const int variant)\n{\n    size_t       acc_len = (size_t) 0;\n    size_t       b64_pos = (size_t) 0;\n    size_t       bin_pos = (size_t) 0;\n    int          is_urlsafe;\n    int          ret = 0;\n    unsigned int acc = 0U;\n    unsigned int d;\n    char         c;\n\n    sodium_base64_check_variant(variant);\n    is_urlsafe = ((unsigned int) variant) & VARIANT_URLSAFE_MASK;\n    while (b64_pos < b64_len) {\n        c = b64[b64_pos];\n        if (is_urlsafe) {\n            d = b64_urlsafe_char_to_byte(c);\n        } else {\n            d = b64_char_to_byte(c);\n        }\n        if (d == 0xFF) {\n            if (ignore != NULL && strchr(ignore, c) != NULL) {\n                b64_pos++;\n                continue;\n            }\n            break;\n        }\n        acc = (acc << 6) + d;\n        acc_len += 6;\n        if (acc_len >= 8) {\n            acc_len -= 8;\n            if (bin_pos >= bin_maxlen) {\n                errno = ERANGE;\n                ret = -1;\n                break;\n            }\n            bin[bin_pos++] = (acc >> acc_len) & 0xFF;\n        }\n        b64_pos++;\n    }\n    if (acc_len > 4U || (acc & ((1U << acc_len) - 1U)) != 0U) {\n        ret = -1;\n    } else if (ret == 0 &&\n               (((unsigned int) variant) & VARIANT_NO_PADDING_MASK) == 0U) {\n        ret = _sodium_base642bin_skip_padding(b64, b64_len, &b64_pos, ignore,\n                                              acc_len / 2);\n    }\n    if (ret != 0) {\n        bin_pos = (size_t) 0U;\n    } else if (ignore != NULL) {\n        while (b64_pos < b64_len && strchr(ignore, b64[b64_pos]) != NULL) {\n            b64_pos++;\n        }\n    }\n    if (b64_end != NULL) {\n        *b64_end = &b64[b64_pos];\n    } else if (b64_pos != b64_len) {\n        errno = EINVAL;\n        ret = -1;\n    }\n    if (bin_len != NULL) {\n        *bin_len = bin_pos;\n    }\n    return ret;\n}\n\nstatic int\nip_hex_digit(int ch)\n{\n    if (ch >= '0' && ch <= '9') {\n        return ch - '0';\n    }\n    if (((unsigned int) ch | 32U) >= 'a' && ((unsigned int) ch | 32U) <= 'f') {\n        return ((unsigned int) ch | 32U) - 'a' + 10;\n    }\n    return -1;\n}\n\nstatic int\nparse_ipv4(const char *src, const char *end, unsigned char out[4])\n{\n    const char *p = src;\n    int         i;\n\n    if (src == NULL || end == NULL || out == NULL || src >= end) {\n        return 0;\n    }\n    for (i = 0; i < 4; i++) {\n        unsigned int val    = 0U;\n        int          digits = 0;\n\n        while (p < end && *p >= '0' && *p <= '9') {\n            val = val * 10U + (unsigned int) (*p++ - '0');\n            if (++digits > 3 || val > 255U) {\n                return 0;\n            }\n        }\n        if (digits == 0) {\n            return 0;\n        }\n        out[i] = (unsigned char) val;\n\n        if (i < 3) {\n            if (p >= end || *p++ != '.') {\n                return 0;\n            }\n        }\n    }\n    return p == end;\n}\n\nstatic int\nparse_ipv6(const char *src, const char *end, unsigned char out[16])\n{\n    unsigned char  tmp[16]    = { 0 };\n    unsigned char *tp         = tmp;\n    unsigned char *endp       = tmp + 16;\n    unsigned char *colonp     = NULL;\n    const char    *p          = src;\n    const char    *curtok     = src;\n    unsigned int   val        = 0U;\n    int            saw_xdigit = 0;\n    int            xdigits    = 0;\n    int            ch;\n    int            hv;\n\n    if (src == NULL || end == NULL || out == NULL || src >= end) {\n        return 0;\n    }\n    if (*p == ':') {\n        if (++p >= end || *p != ':') {\n            return 0;\n        }\n        colonp = tp;\n        curtok = ++p;\n    }\n    while (p < end) {\n        ch = *p;\n\n        if (ch == ':') {\n            if (!saw_xdigit) {\n                if (colonp != NULL) {\n                    return 0;\n                }\n                colonp = tp;\n                curtok = ++p;\n                continue;\n            }\n            if (tp + 2 > endp) {\n                return 0;\n            }\n            *tp++      = (unsigned char) (val >> 8);\n            *tp++      = (unsigned char) (val & 0xffU);\n            val        = 0U;\n            saw_xdigit = 0;\n            xdigits    = 0;\n            curtok     = ++p;\n            if (p >= end) {\n                return 0;\n            }\n            continue;\n        }\n        if (ch == '.') {\n            if (tp + 4 > endp || parse_ipv4(curtok, end, tp) == 0) {\n                return 0;\n            }\n            tp += 4;\n            saw_xdigit = 0;\n            break;\n        }\n        hv = ip_hex_digit(ch);\n        if (hv < 0 || xdigits >= 4) {\n            return 0;\n        }\n        val        = (val << 4) | (unsigned int) hv;\n        saw_xdigit = 1;\n        xdigits++;\n        p++;\n    }\n    if (saw_xdigit) {\n        if (tp + 2 > endp) {\n            return 0;\n        }\n        *tp++ = (unsigned char) (val >> 8);\n        *tp++ = (unsigned char) (val & 0xffU);\n    }\n    if (colonp != NULL) {\n        size_t n = (size_t) (tp - colonp);\n\n        if (tp == endp) {\n            return 0;\n        }\n        memmove(endp - n, colonp, n);\n        memset(colonp, 0, (size_t) (endp - n - colonp));\n        tp = endp;\n    }\n    if (tp != endp) {\n        return 0;\n    }\n    memcpy(out, tmp, 16U);\n\n    return 1;\n}\n\nint\nsodium_ip2bin(unsigned char bin[16], const char *ip, size_t ip_len)\n{\n    const char   *ip_end = ip + ip_len;\n    const char   *end;\n    const char   *z;\n    unsigned char v4[4];\n\n    for (end = ip; end < ip_end && *end != 0 && *end != '%'; end++) {\n        /* empty */\n    }\n    if (end < ip_end && *end == '%') {\n        for (z = end + 1; z < ip_end && *z != 0; z++) {\n            if (isspace((unsigned char) *z)) {\n                return -1;\n            }\n        }\n        if (z == end + 1) {\n            return -1;\n        }\n    }\n    if (memchr(ip, ':', (size_t) (end - ip)) != NULL) {\n        return parse_ipv6(ip, end, bin) != 0 ? 0 : -1;\n    }\n    if (end < ip_end && *end == '%') {\n        return -1;\n    }\n    if (parse_ipv4(ip, end, v4) == 0) {\n        return -1;\n    }\n    memset(bin, 0, 10U);\n    bin[10] = 0xffU;\n    bin[11] = 0xffU;\n    memcpy(bin + 12, v4, 4U);\n\n    return 0;\n}\n\nstatic const unsigned char ipv4_mapped_prefix[12] = { 0U, 0U, 0U, 0U, 0U,    0U,\n                                                      0U, 0U, 0U, 0U, 0xffU, 0xffU };\n\nstatic void\nip_write_num(char **p, unsigned int val, int base)\n{\n    char buf[4];\n    int  n = 0;\n\n    do {\n        unsigned int d = val % (unsigned int) base;\n\n        buf[n++] = (char) (d < 10U ? '0' + d : 'a' + d - 10U);\n        val /= (unsigned int) base;\n    } while (val != 0U);\n\n    while (n-- > 0) {\n        *(*p)++ = buf[n];\n    }\n}\n\nchar *\nsodium_bin2ip(char *ip, size_t ip_maxlen, const unsigned char bin[16])\n{\n    char   buf[46];\n    char  *p = buf;\n    int    i;\n    int    best_start = -1;\n    int    best_len   = 0;\n    int    cur_start  = -1;\n    int    cur_len    = 0;\n    size_t len;\n\n    if (ip_maxlen <= 2U) {\n        return NULL;\n    }\n    if (memcmp(bin, ipv4_mapped_prefix, 12U) == 0) {\n        for (i = 0; i < 4; i++) {\n            if (i != 0) {\n                *p++ = '.';\n            }\n            ip_write_num(&p, (unsigned int) bin[12 + i], 10);\n        }\n        len = (size_t) (p - buf);\n        if (len >= ip_maxlen) {\n            return NULL;\n        }\n        memcpy(ip, buf, len + 1U);\n        ip[len] = 0;\n\n        return ip;\n    }\n    for (i = 0; i < 8; i++) {\n        unsigned int word = ((unsigned int) bin[i * 2] << 8) | (unsigned int) bin[i * 2 + 1];\n\n        if (word == 0U) {\n            if (cur_start < 0) {\n                cur_start = i;\n            }\n            cur_len++;\n        } else {\n            if (cur_len > best_len) {\n                best_start = cur_start;\n                best_len   = cur_len;\n            }\n            cur_start = -1;\n            cur_len   = 0;\n        }\n    }\n    if (cur_len > best_len) {\n        best_start = cur_start;\n        best_len   = cur_len;\n    }\n    if (best_len < 2) {\n        best_start = -1;\n    }\n    for (i = 0; i < 8; i++) {\n        if (i == best_start) {\n            *p++ = ':';\n            *p++ = ':';\n            i += best_len - 1;\n            continue;\n        }\n        if (i != 0 && (best_start < 0 || i != best_start + best_len)) {\n            *p++ = ':';\n        }\n        ip_write_num(&p, ((unsigned int) bin[i * 2] << 8) | (unsigned int) bin[i * 2 + 1], 16);\n    }\n    len = (size_t) (p - buf);\n    if (len >= ip_maxlen) {\n        return NULL;\n    }\n    memcpy(ip, buf, len);\n    ip[len] = 0;\n\n    return ip;\n}\n"
  },
  {
    "path": "src/libsodium/sodium/core.c",
    "content": "\n#include <assert.h>\n#include <stdlib.h>\n#include <string.h>\n#include <time.h>\n#ifdef _WIN32\n# include <windows.h>\n#elif defined(HAVE_PTHREAD)\n# include <pthread.h>\n#endif\n\n#include \"core.h\"\n#include \"crypto_generichash.h\"\n#include \"crypto_onetimeauth.h\"\n#include \"crypto_scalarmult.h\"\n#include \"crypto_stream_chacha20.h\"\n#include \"crypto_stream_salsa20.h\"\n#include \"randombytes.h\"\n#include \"runtime.h\"\n#include \"utils.h\"\n#include \"private/implementations.h\"\n#include \"private/mutex.h\"\n\nstatic volatile int initialized;\nstatic volatile int locked;\n\nint\nsodium_init(void)\n{\n    if (sodium_crit_enter() != 0) {\n        return -1; /* LCOV_EXCL_LINE */\n    }\n    if (initialized != 0) {\n        if (sodium_crit_leave() != 0) {\n            return -1; /* LCOV_EXCL_LINE */\n        }\n        return 1;\n    }\n    _sodium_runtime_get_cpu_features();\n    randombytes_stir();\n    _sodium_alloc_init();\n    _crypto_pwhash_argon2_pick_best_implementation();\n    _crypto_generichash_blake2b_pick_best_implementation();\n    _crypto_onetimeauth_poly1305_pick_best_implementation();\n    _crypto_scalarmult_curve25519_pick_best_implementation();\n    _crypto_stream_chacha20_pick_best_implementation();\n    _crypto_stream_salsa20_pick_best_implementation();\n    _crypto_aead_aegis128l_pick_best_implementation();\n    _crypto_aead_aegis256_pick_best_implementation();\n    _crypto_ipcrypt_pick_best_implementation();\n    initialized = 1;\n    if (sodium_crit_leave() != 0) {\n        return -1; /* LCOV_EXCL_LINE */\n    }\n    return 0;\n}\n\n#ifdef _WIN32\n\nstatic CRITICAL_SECTION _sodium_lock;\nstatic volatile LONG    _sodium_lock_initialized;\n\nstatic int\n_sodium_crit_init(void)\n{\n    LONG status = 0L;\n\n    while ((status = InterlockedCompareExchange(&_sodium_lock_initialized,\n                                                1L, 0L)) == 1L) {\n        Sleep(0);\n    }\n\n    switch (status) {\n    case 0L:\n        InitializeCriticalSection(&_sodium_lock);\n        return InterlockedExchange(&_sodium_lock_initialized, 2L) == 1L ? 0 : -1;\n    case 2L:\n        return 0;\n    default: /* should never be reached */\n        return -1;\n    }\n}\n\nint\nsodium_crit_enter(void)\n{\n    if (_sodium_crit_init() != 0) {\n        return -1; /* LCOV_EXCL_LINE */\n    }\n    EnterCriticalSection(&_sodium_lock);\n    assert(locked == 0);\n    locked = 1;\n\n    return 0;\n}\n\nint\nsodium_crit_leave(void)\n{\n    if (locked == 0) {\n# ifdef EPERM\n        errno = EPERM;\n# endif\n        return -1;\n    }\n    locked = 0;\n    LeaveCriticalSection(&_sodium_lock);\n\n    return 0;\n}\n\n#elif defined(HAVE_PTHREAD) && !defined(__EMSCRIPTEN__)\n\nstatic pthread_mutex_t _sodium_lock = PTHREAD_MUTEX_INITIALIZER;\n\nint\nsodium_crit_enter(void)\n{\n    int ret;\n\n    if ((ret = pthread_mutex_lock(&_sodium_lock)) == 0) {\n        assert(locked == 0);\n        locked = 1;\n    }\n    return ret;\n}\n\nint\nsodium_crit_leave(void)\n{\n    if (locked == 0) {\n# ifdef EPERM\n        errno = EPERM;\n# endif\n        return -1;\n    }\n    locked = 0;\n\n    return pthread_mutex_unlock(&_sodium_lock);\n}\n\n#elif defined(HAVE_ATOMIC_OPS) && !defined(__EMSCRIPTEN__)\n\nstatic volatile int _sodium_lock;\n\nint\nsodium_crit_enter(void)\n{\n# ifdef HAVE_NANOSLEEP\n    struct timespec q;\n    memset(&q, 0, sizeof q);\n# endif\n    while (__sync_lock_test_and_set(&_sodium_lock, 1) != 0) {\n# ifdef HAVE_NANOSLEEP\n        (void) nanosleep(&q, NULL);\n# elif defined(__x86_64__) || defined(__i386__)\n        __asm__ __volatile__ (\"pause\":::\"memory\");\n# elif defined(__aarch64__) || defined(_M_ARM64)\n        __asm__ __volatile__ (\"yield\":::\"memory\");\n# endif\n    }\n    return 0;\n}\n\nint\nsodium_crit_leave(void)\n{\n    __sync_lock_release(&_sodium_lock);\n\n    return 0;\n}\n\n#else\n\nint\nsodium_crit_enter(void)\n{\n    return 0;\n}\n\nint\nsodium_crit_leave(void)\n{\n    return 0;\n}\n\n#endif\n\nstatic void (*_misuse_handler)(void);\n\nvoid\nsodium_misuse(void)\n{\n    void (*handler)(void);\n\n    (void) sodium_crit_leave();\n    if (sodium_crit_enter() == 0) {\n        handler = _misuse_handler;\n        if (handler != NULL) {\n            handler();\n        }\n    }\n/* LCOV_EXCL_START */\n    abort();\n}\n/* LCOV_EXCL_STOP */\n\nint\nsodium_set_misuse_handler(void (*handler)(void))\n{\n    if (sodium_crit_enter() != 0) {\n        return -1; /* LCOV_EXCL_LINE */\n    }\n    _misuse_handler = handler;\n    if (sodium_crit_leave() != 0) {\n        return -1; /* LCOV_EXCL_LINE */\n    }\n    return 0;\n}\n\n#if defined(_WIN32) && !defined(SODIUM_STATIC)\nBOOL WINAPI DllMain(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpReserved) {\n    (void) hinstDLL;\n    (void) lpReserved;\n\n    if (fdwReason == DLL_PROCESS_DETACH && _sodium_lock_initialized == 2) {\n        DeleteCriticalSection(&_sodium_lock);\n    }\n    return TRUE;\n}\n#endif\n"
  },
  {
    "path": "src/libsodium/sodium/runtime.c",
    "content": "#include <stddef.h>\n#include <stdint.h>\n#ifdef HAVE_ANDROID_GETCPUFEATURES\n# include <cpu-features.h>\n#endif\n#ifdef __APPLE__\n# include <sys/types.h>\n# include <sys/sysctl.h>\n# include <mach/machine.h>\n#endif\n#ifdef HAVE_SYS_AUXV_H\n# include <sys/auxv.h>\n#endif\n#if defined(_MSC_VER) && (defined(_M_X64) || defined(_M_IX86))\n# include <intrin.h>\n#endif\n\n#include \"private/common.h\"\n#include \"runtime.h\"\n\ntypedef struct CPUFeatures_ {\n    int initialized;\n    int has_neon;\n    int has_armcrypto;\n    int has_sse2;\n    int has_sse3;\n    int has_ssse3;\n    int has_sse41;\n    int has_avx;\n    int has_avx2;\n    int has_avx512f;\n    int has_pclmul;\n    int has_aesni;\n    int has_rdrand;\n} CPUFeatures;\n\nstatic CPUFeatures _cpu_features;\n\n#define CPUID_EBX_AVX2    0x00000020\n#define CPUID_EBX_AVX512F 0x00010000\n\n#define CPUID_ECX_SSE3    0x00000001\n#define CPUID_ECX_PCLMUL  0x00000002\n#define CPUID_ECX_SSSE3   0x00000200\n#define CPUID_ECX_SSE41   0x00080000\n#define CPUID_ECX_AESNI   0x02000000\n#define CPUID_ECX_XSAVE   0x04000000\n#define CPUID_ECX_OSXSAVE 0x08000000\n#define CPUID_ECX_AVX     0x10000000\n#define CPUID_ECX_RDRAND  0x40000000\n\n#define CPUID_EDX_SSE2    0x04000000\n\n#define XCR0_SSE       0x00000002\n#define XCR0_AVX       0x00000004\n#define XCR0_OPMASK    0x00000020\n#define XCR0_ZMM_HI256 0x00000040\n#define XCR0_HI16_ZMM  0x00000080\n\nstatic int\n_sodium_runtime_arm_cpu_features(CPUFeatures * const cpu_features)\n{\n    cpu_features->has_neon = 0;\n    cpu_features->has_armcrypto = 0;\n\n#ifndef __ARM_ARCH\n    return -1; /* LCOV_EXCL_LINE */\n#endif\n\n#if defined(__ARM_NEON) || defined(__aarch64__) || defined(_M_ARM64)\n    cpu_features->has_neon = 1;\n#elif defined(HAVE_ANDROID_GETCPUFEATURES)\n    cpu_features->has_neon =\n        (android_getCpuFeatures() & ANDROID_CPU_ARM64_FEATURE_ASIMD) != 0x0;\n#elif (defined(__aarch64__) || defined(_M_ARM64)) && defined(AT_HWCAP)\n# ifdef HAVE_GETAUXVAL\n    cpu_features->has_neon = (getauxval(AT_HWCAP) & (1L << 1)) != 0;\n# elif defined(HAVE_ELF_AUX_INFO)\n    {\n        unsigned long buf;\n        if (elf_aux_info(AT_HWCAP, (void *) &buf, (int) sizeof buf) == 0) {\n            cpu_features->has_neon = (buf & (1L << 1)) != 0;\n        }\n    }\n# endif\n#elif defined(__arm__) && defined(AT_HWCAP)\n# ifdef HAVE_GETAUXVAL\n    cpu_features->has_neon = (getauxval(AT_HWCAP) & (1L << 12)) != 0;\n# elif defined(HAVE_ELF_AUX_INFO)\n    {\n        unsigned long buf;\n        if (elf_aux_info(AT_HWCAP, (void *) &buf, (int) sizeof buf) == 0) {\n            cpu_features->has_neon = (buf & (1L << 12)) != 0;\n        }\n    }\n# endif\n#endif\n\n    if (cpu_features->has_neon == 0) {\n        return 0;\n    }\n\n#if defined(__ARM_FEATURE_CRYPTO) && defined(__ARM_FEATURE_AES)\n    cpu_features->has_armcrypto = 1;\n#elif defined(_M_ARM64)\n    cpu_features->has_armcrypto = 1; /* assuming all CPUs supported by ARM Windows have the crypto extensions */\n#elif defined(__APPLE__) && defined(CPU_TYPE_ARM64) && defined(CPU_SUBTYPE_ARM64E)\n    {\n        cpu_type_t    cpu_type;\n        cpu_subtype_t cpu_subtype;\n        size_t        cpu_type_len = sizeof cpu_type;\n        size_t        cpu_subtype_len = sizeof cpu_subtype;\n\n        if (sysctlbyname(\"hw.cputype\", &cpu_type, &cpu_type_len,\n                         NULL, 0) == 0 && cpu_type == CPU_TYPE_ARM64 &&\n            sysctlbyname(\"hw.cpusubtype\", &cpu_subtype, &cpu_subtype_len,\n                         NULL, 0) == 0 &&\n            (cpu_subtype == CPU_SUBTYPE_ARM64E ||\n                cpu_subtype == CPU_SUBTYPE_ARM64_V8)) {\n            cpu_features->has_armcrypto = 1;\n        }\n    }\n#elif defined(HAVE_ANDROID_GETCPUFEATURES)\n    cpu_features->has_armcrypto =\n        (android_getCpuFeatures() & ANDROID_CPU_ARM64_FEATURE_AES) != 0x0;\n#elif (defined(__aarch64__) || defined(_M_ARM64)) && defined(AT_HWCAP)\n# ifdef HAVE_GETAUXVAL\n    cpu_features->has_armcrypto = (getauxval(AT_HWCAP) & (1L << 3)) != 0;\n# elif defined(HAVE_ELF_AUX_INFO)\n    {\n        unsigned long buf;\n        if (elf_aux_info(AT_HWCAP, (void *) &buf, (int) sizeof buf) == 0) {\n            cpu_features->has_armcrypto = (buf & (1L << 3)) != 0;\n        }\n    }\n# endif\n#elif defined(__arm__) && defined(AT_HWCAP2)\n# ifdef HAVE_GETAUXVAL\n    cpu_features->has_armcrypto = (getauxval(AT_HWCAP2) & (1L << 0)) != 0;\n# elif defined(HAVE_ELF_AUX_INFO)\n    {\n        unsigned long buf;\n        if (elf_aux_info(AT_HWCAP2, (void *) &buf, (int) sizeof buf) == 0) {\n            cpu_features->has_armcrypto = (buf & (1L << 0)) != 0;\n        }\n    }\n# endif\n#endif\n\n    return 0;\n}\n\nstatic void\n_cpuid(unsigned int cpu_info[4U], const unsigned int cpu_info_type)\n{\n    /*\n     * Visual Studio has a __cpuid() intrinsic with 2 parameters,\n     * but clang defines _MSC_VER as an incompatible __cpuid() macro\n     * with 5 parameters, that may be defined if <cpuid.h> is\n     * unintentionally included.\n     */\n#if defined(_MSC_VER) && (defined(_M_X64) || defined(_M_IX86)) && !defined(__cpuid)\n    __cpuid((int *) cpu_info, cpu_info_type);\n#elif defined(HAVE_CPUID)\n    cpu_info[0] = cpu_info[1] = cpu_info[2] = cpu_info[3] = 0;\n# ifdef __i386__\n    __asm__ __volatile__(\n        \"pushfl; pushfl; \"\n        \"popl %0; \"\n        \"movl %0, %1; xorl %2, %0; \"\n        \"pushl %0; \"\n        \"popfl; pushfl; popl %0; popfl\"\n        : \"=&r\"(cpu_info[0]), \"=&r\"(cpu_info[1])\n        : \"i\"(0x200000));\n    if (((cpu_info[0] ^ cpu_info[1]) & 0x200000) == 0x0) {\n        return; /* LCOV_EXCL_LINE */\n    }\n# endif\n# ifdef __i386__\n    __asm__ __volatile__(\"xchgl %%ebx, %k1; cpuid; xchgl %%ebx, %k1\"\n                         : \"=a\"(cpu_info[0]), \"=&r\"(cpu_info[1]),\n                           \"=c\"(cpu_info[2]), \"=d\"(cpu_info[3])\n                         : \"0\"(cpu_info_type), \"2\"(0U));\n# elif defined(__x86_64__)\n    __asm__ __volatile__(\"xchgq %%rbx, %q1; cpuid; xchgq %%rbx, %q1\"\n                         : \"=a\"(cpu_info[0]), \"=&r\"(cpu_info[1]),\n                           \"=c\"(cpu_info[2]), \"=d\"(cpu_info[3])\n                         : \"0\"(cpu_info_type), \"2\"(0U));\n# else\n    __asm__ __volatile__(\"cpuid\"\n                         : \"=a\"(cpu_info[0]), \"=b\"(cpu_info[1]),\n                           \"=c\"(cpu_info[2]), \"=d\"(cpu_info[3])\n                         : \"0\"(cpu_info_type), \"2\"(0U));\n# endif\n#else\n    (void) cpu_info_type;\n    cpu_info[0] = cpu_info[1] = cpu_info[2] = cpu_info[3] = 0;\n#endif\n}\n\nstatic int\n_sodium_runtime_intel_cpu_features(CPUFeatures * const cpu_features)\n{\n    unsigned int cpu_info[4];\n    uint32_t     xcr0 = 0U;\n\n    _cpuid(cpu_info, 0x0);\n    if (cpu_info[0] == 0U) {\n        return -1; /* LCOV_EXCL_LINE */\n    }\n    _cpuid(cpu_info, 0x00000001);\n#ifdef HAVE_EMMINTRIN_H\n    cpu_features->has_sse2 = ((cpu_info[3] & CPUID_EDX_SSE2) != 0x0);\n#else\n    cpu_features->has_sse2   = 0;\n#endif\n\n#ifdef HAVE_PMMINTRIN_H\n    cpu_features->has_sse3 = ((cpu_info[2] & CPUID_ECX_SSE3) != 0x0);\n#else\n    cpu_features->has_sse3   = 0;\n#endif\n\n#ifdef HAVE_TMMINTRIN_H\n    cpu_features->has_ssse3 = ((cpu_info[2] & CPUID_ECX_SSSE3) != 0x0);\n#else\n    cpu_features->has_ssse3  = 0;\n#endif\n\n#ifdef HAVE_SMMINTRIN_H\n    cpu_features->has_sse41 = ((cpu_info[2] & CPUID_ECX_SSE41) != 0x0);\n#else\n    cpu_features->has_sse41  = 0;\n#endif\n\n    cpu_features->has_avx = 0;\n\n    (void) xcr0;\n#ifdef HAVE_AVXINTRIN_H\n    if ((cpu_info[2] & (CPUID_ECX_AVX | CPUID_ECX_XSAVE | CPUID_ECX_OSXSAVE)) ==\n        (CPUID_ECX_AVX | CPUID_ECX_XSAVE | CPUID_ECX_OSXSAVE)) {\n        xcr0 = 0U;\n# if defined(HAVE__XGETBV) || \\\n        (defined(_MSC_VER) && defined(_XCR_XFEATURE_ENABLED_MASK) && _MSC_FULL_VER >= 160040219)\n        xcr0 = (uint32_t) _xgetbv(0);\n# elif defined(_MSC_VER) && defined(_M_IX86)\n        /*\n         * Visual Studio documentation states that eax/ecx/edx don't need to\n         * be preserved in inline assembly code. But that doesn't seem to\n         * always hold true on Visual Studio 2010.\n         */\n        __asm {\n            push eax\n            push ecx\n            push edx\n            xor ecx, ecx\n            _asm _emit 0x0f _asm _emit 0x01 _asm _emit 0xd0\n            mov xcr0, eax\n            pop edx\n            pop ecx\n            pop eax\n        }\n# elif defined(HAVE_AVX_ASM)\n        __asm__ __volatile__(\".byte 0x0f, 0x01, 0xd0\" /* XGETBV */\n                             : \"=a\"(xcr0)\n                             : \"c\"((uint32_t) 0U)\n                             : \"%edx\");\n# endif\n        if ((xcr0 & (XCR0_SSE | XCR0_AVX)) == (XCR0_SSE | XCR0_AVX)) {\n            cpu_features->has_avx = 1;\n        }\n    }\n#endif\n\n    cpu_features->has_avx2 = 0;\n#ifdef HAVE_AVX2INTRIN_H\n    if (cpu_features->has_avx) {\n        unsigned int cpu_info7[4];\n\n        _cpuid(cpu_info7, 0x00000007);\n        cpu_features->has_avx2 = ((cpu_info7[1] & CPUID_EBX_AVX2) != 0x0);\n    }\n#endif\n\n    cpu_features->has_avx512f = 0;\n#ifdef HAVE_AVX512FINTRIN_H\n    if (cpu_features->has_avx2) {\n        unsigned int cpu_info7[4];\n\n        _cpuid(cpu_info7, 0x00000007);\n        /* LCOV_EXCL_START */\n        if ((cpu_info7[1] & CPUID_EBX_AVX512F) == CPUID_EBX_AVX512F &&\n            (xcr0 & (XCR0_OPMASK | XCR0_ZMM_HI256 | XCR0_HI16_ZMM))\n            == (XCR0_OPMASK | XCR0_ZMM_HI256 | XCR0_HI16_ZMM)) {\n            cpu_features->has_avx512f = 1;\n        }\n        /* LCOV_EXCL_STOP */\n    }\n#endif\n\n#ifdef HAVE_WMMINTRIN_H\n    cpu_features->has_pclmul = ((cpu_info[2] & CPUID_ECX_PCLMUL) != 0x0);\n    cpu_features->has_aesni  = ((cpu_info[2] & CPUID_ECX_AESNI) != 0x0);\n#else\n    cpu_features->has_pclmul = 0;\n    cpu_features->has_aesni  = 0;\n#endif\n\n#ifdef HAVE_RDRAND\n    cpu_features->has_rdrand = ((cpu_info[2] & CPUID_ECX_RDRAND) != 0x0);\n#else\n    cpu_features->has_rdrand = 0;\n#endif\n\n    return 0;\n}\n\nint\n_sodium_runtime_get_cpu_features(void)\n{\n    int ret = -1;\n\n    ret &= _sodium_runtime_arm_cpu_features(&_cpu_features);\n    ret &= _sodium_runtime_intel_cpu_features(&_cpu_features);\n    _cpu_features.initialized = 1;\n\n    return ret;\n}\n\nint\nsodium_runtime_has_neon(void)\n{\n    return _cpu_features.has_neon;\n}\n\nint\nsodium_runtime_has_armcrypto(void)\n{\n    return _cpu_features.has_armcrypto;\n}\n\nint\nsodium_runtime_has_sse2(void)\n{\n    return _cpu_features.has_sse2;\n}\n\nint\nsodium_runtime_has_sse3(void)\n{\n    return _cpu_features.has_sse3;\n}\n\nint\nsodium_runtime_has_ssse3(void)\n{\n    return _cpu_features.has_ssse3;\n}\n\nint\nsodium_runtime_has_sse41(void)\n{\n    return _cpu_features.has_sse41;\n}\n\nint\nsodium_runtime_has_avx(void)\n{\n    return _cpu_features.has_avx;\n}\n\nint\nsodium_runtime_has_avx2(void)\n{\n    return _cpu_features.has_avx2;\n}\n\nint\nsodium_runtime_has_avx512f(void)\n{\n    return _cpu_features.has_avx512f;\n}\n\nint\nsodium_runtime_has_pclmul(void)\n{\n    return _cpu_features.has_pclmul;\n}\n\nint\nsodium_runtime_has_aesni(void)\n{\n    return _cpu_features.has_aesni;\n}\n\nint\nsodium_runtime_has_rdrand(void)\n{\n    return _cpu_features.has_rdrand;\n}\n"
  },
  {
    "path": "src/libsodium/sodium/utils.c",
    "content": "#ifndef __STDC_WANT_LIB_EXT1__\n# define __STDC_WANT_LIB_EXT1__ 1\n#endif\n#include <assert.h>\n#include <errno.h>\n#include <limits.h>\n#include <stddef.h>\n#include <stdint.h>\n#include <stdlib.h>\n#include <string.h>\n\n#if defined(HAVE_RAISE) && !defined(__wasm__)\n# include <signal.h>\n#endif\n\n#ifdef HAVE_SYS_MMAN_H\n# include <sys/mman.h>\n#endif\n\n#ifdef HAVE_SYS_PARAM_H\n# include <sys/param.h>\n#endif\n\n#ifdef _WIN32\n# include <windows.h>\n# include <wincrypt.h>\n#else\n# include <unistd.h>\n#endif\n\n#ifndef HAVE_C_VARARRAYS\n# ifdef HAVE_ALLOCA_H\n#  include <alloca.h>\n# elif !defined(alloca)\n#  if defined(__clang__) || defined(__GNUC__)\n#   define alloca __builtin_alloca\n#  elif defined _AIX\n#   define alloca __alloca\n#  elif defined _MSC_VER\n#   include <malloc.h>\n#   define alloca _alloca\n#  else\n#   include <stddef.h>\n#   ifdef  __cplusplus\nextern \"C\"\n#   endif\nvoid *alloca (size_t);\n#  endif\n# endif\n#endif\n\n#include \"core.h\"\n#include \"crypto_generichash.h\"\n#include \"crypto_stream.h\"\n#include \"randombytes.h\"\n#include \"private/common.h\"\n#include \"utils.h\"\n\n#ifndef ENOSYS\n# define ENOSYS ENXIO\n#endif\n\n#if defined(_WIN32) && \\\n    (!defined(WINAPI_FAMILY) || WINAPI_FAMILY == WINAPI_FAMILY_DESKTOP_APP)\n# define WINAPI_DESKTOP\n#endif\n\n#define CANARY_SIZE 16U\n#define GARBAGE_VALUE 0xdb\n\n#ifndef MAP_NOCORE\n# ifdef MAP_CONCEAL\n#  define MAP_NOCORE MAP_CONCEAL\n# else\n#  define MAP_NOCORE 0\n# endif\n#endif\n#if !defined(MAP_ANON) && defined(MAP_ANONYMOUS)\n# define MAP_ANON MAP_ANONYMOUS\n#endif\n#if defined(WINAPI_DESKTOP) || (defined(MAP_ANON) && defined(HAVE_MMAP)) || \\\n    defined(HAVE_POSIX_MEMALIGN)\n# define HAVE_ALIGNED_MALLOC\n#endif\n\n#if defined(HAVE_MPROTECT) && \\\n    !(defined(PROT_NONE) && defined(PROT_READ) && defined(PROT_WRITE))\n# undef HAVE_MPROTECT\n#endif\n#if defined(HAVE_ALIGNED_MALLOC) && \\\n    (defined(WINAPI_DESKTOP) || defined(HAVE_MPROTECT))\n# define HAVE_PAGE_PROTECTION\n#endif\n#if !defined(MADV_DODUMP) && defined(MADV_CORE)\n# define MADV_DODUMP   MADV_CORE\n# define MADV_DONTDUMP MADV_NOCORE\n#endif\n\n#ifndef DEFAULT_PAGE_SIZE\n# ifdef PAGE_SIZE\n#  define DEFAULT_PAGE_SIZE PAGE_SIZE\n# else\n#  define DEFAULT_PAGE_SIZE 0x10000\n# endif\n#endif\n\nstatic size_t        page_size = DEFAULT_PAGE_SIZE;\nstatic unsigned char canary[CANARY_SIZE];\n\n/* LCOV_EXCL_START */\n#ifdef HAVE_WEAK_SYMBOLS\n__attribute__((weak)) void\n_sodium_dummy_symbol_to_prevent_memzero_lto(void *const  pnt,\n                                            const size_t len);\n__attribute__((weak)) void\n_sodium_dummy_symbol_to_prevent_memzero_lto(void *const  pnt,\n                                            const size_t len)\n{\n    (void) pnt; /* LCOV_EXCL_LINE */\n    (void) len; /* LCOV_EXCL_LINE */\n}\n#endif\n/* LCOV_EXCL_STOP */\n\nvoid\nsodium_memzero(void * const pnt, const size_t len)\n{\n#if defined(_WIN32) && !defined(__CRT_INLINE)\n    SecureZeroMemory(pnt, len);\n#elif defined(HAVE_MEMSET_S)\n    if (len > 0U && memset_s(pnt, (rsize_t) len, 0, (rsize_t) len) != 0) {\n        sodium_misuse(); /* LCOV_EXCL_LINE */\n    }\n#elif defined(HAVE_EXPLICIT_BZERO)\n    explicit_bzero(pnt, len);\n#elif defined(HAVE_MEMSET_EXPLICIT)\n    memset_explicit(pnt, 0, len);\n#elif defined(HAVE_EXPLICIT_MEMSET)\n    explicit_memset(pnt, 0, len);\n#elif HAVE_WEAK_SYMBOLS\n    if (len > 0U) {\n        memset(pnt, 0, len);\n        _sodium_dummy_symbol_to_prevent_memzero_lto(pnt, len);\n    }\n# ifdef HAVE_INLINE_ASM\n    __asm__ __volatile__ (\"\" : : \"r\"(pnt) : \"memory\");\n# endif\n#else\n    volatile unsigned char *volatile pnt_ =\n        (volatile unsigned char *volatile) pnt;\n    size_t i = (size_t) 0U;\n\n    while (i < len) {\n        pnt_[i++] = 0U;\n    }\n#endif\n}\n\nvoid\nsodium_stackzero(const size_t len)\n{\n#ifdef HAVE_C_VARARRAYS\n    unsigned char fodder[len];\n    sodium_memzero(fodder, len);\n#elif HAVE_ALLOCA\n    sodium_memzero(alloca(len), len);\n#endif\n}\n\n#ifdef HAVE_WEAK_SYMBOLS\n__attribute__((weak)) void\n_sodium_dummy_symbol_to_prevent_memcmp_lto(const unsigned char *b1,\n                                           const unsigned char *b2,\n                                           const size_t         len);\n__attribute__((weak)) void\n_sodium_dummy_symbol_to_prevent_memcmp_lto(const unsigned char *b1,\n                                           const unsigned char *b2,\n                                           const size_t         len)\n{\n    (void) b1;\n    (void) b2;\n    (void) len;\n}\n#endif\n\nint\nsodium_memcmp(const void *const b1_, const void *const b2_, size_t len)\n{\n#ifdef HAVE_WEAK_SYMBOLS\n    const unsigned char *b1 = (const unsigned char *) b1_;\n    const unsigned char *b2 = (const unsigned char *) b2_;\n#else\n    const volatile unsigned char *volatile b1 =\n        (const volatile unsigned char *volatile) b1_;\n    const volatile unsigned char *volatile b2 =\n        (const volatile unsigned char *volatile) b2_;\n#endif\n    size_t                 i;\n    volatile unsigned char d = 0U;\n\n#if HAVE_WEAK_SYMBOLS\n    _sodium_dummy_symbol_to_prevent_memcmp_lto(b1, b2, len);\n#endif\n    for (i = 0U; i < len; i++) {\n        d |= b1[i] ^ b2[i];\n    }\n    return (1 & ((d - 1) >> 8)) - 1;\n}\n\n#ifdef HAVE_WEAK_SYMBOLS\n__attribute__((weak)) void\n_sodium_dummy_symbol_to_prevent_compare_lto(const unsigned char *b1,\n                                            const unsigned char *b2,\n                                            const size_t         len);\n__attribute__((weak)) void\n_sodium_dummy_symbol_to_prevent_compare_lto(const unsigned char *b1,\n                                            const unsigned char *b2,\n                                            const size_t         len)\n{\n    (void) b1;\n    (void) b2;\n    (void) len;\n}\n#endif\n\nint\nsodium_compare(const unsigned char *b1_, const unsigned char *b2_, size_t len)\n{\n#ifdef HAVE_WEAK_SYMBOLS\n    const unsigned char *b1 = b1_;\n    const unsigned char *b2 = b2_;\n#else\n    const volatile unsigned char *volatile b1 =\n        (const volatile unsigned char *volatile) b1_;\n    const volatile unsigned char *volatile b2 =\n        (const volatile unsigned char *volatile) b2_;\n#endif\n    size_t                 i;\n    volatile unsigned char gt = 0U;\n    volatile unsigned char eq = 1U;\n    uint16_t               x1, x2;\n\n#if HAVE_WEAK_SYMBOLS\n    _sodium_dummy_symbol_to_prevent_compare_lto(b1, b2, len);\n#endif\n    i = len;\n    while (i != 0U) {\n        i--;\n        x1 = b1[i];\n        x2 = b2[i];\n        gt |= (((unsigned int) x2 - (unsigned int) x1) >> 8) & eq;\n        eq &= (((unsigned int) (x2 ^ x1)) - 1) >> 8;\n    }\n    return (int) (gt + gt + eq) - 1;\n}\n\nint\nsodium_is_zero(const unsigned char *n, const size_t nlen)\n{\n    size_t                 i;\n    volatile unsigned char d = 0U;\n\n    for (i = 0U; i < nlen; i++) {\n        d |= n[i];\n    }\n    return 1 & ((d - 1) >> 8);\n}\n\nvoid\nsodium_increment(unsigned char *n, const size_t nlen)\n{\n    size_t        i = 0U;\n    uint_fast16_t c = 1U;\n\n#ifdef HAVE_AMD64_ASM\n    uint64_t t64, t64_2;\n    uint32_t t32;\n\n    if (nlen == 12U) {\n        __asm__ __volatile__(\n            \"xorq %[t64], %[t64] \\n\"\n            \"xorl %[t32], %[t32] \\n\"\n            \"stc \\n\"\n            \"adcq %[t64], (%[out]) \\n\"\n            \"adcl %[t32], 8(%[out]) \\n\"\n            : [t64] \"=&r\"(t64), [t32] \"=&r\"(t32)\n            : [out] \"D\"(n)\n            : \"memory\", \"flags\", \"cc\");\n        return;\n    } else if (nlen == 24U) {\n        __asm__ __volatile__(\n            \"movq $1, %[t64] \\n\"\n            \"xorq %[t64_2], %[t64_2] \\n\"\n            \"addq %[t64], (%[out]) \\n\"\n            \"adcq %[t64_2], 8(%[out]) \\n\"\n            \"adcq %[t64_2], 16(%[out]) \\n\"\n            : [t64] \"=&r\"(t64), [t64_2] \"=&r\"(t64_2)\n            : [out] \"D\"(n)\n            : \"memory\", \"flags\", \"cc\");\n        return;\n    } else if (nlen == 8U) {\n        __asm__ __volatile__(\"incq (%[out]) \\n\"\n                             :\n                             : [out] \"D\"(n)\n                             : \"memory\", \"flags\", \"cc\");\n        return;\n    }\n#endif\n    for (; i < nlen; i++) {\n        c += (uint_fast16_t) n[i];\n        n[i] = (unsigned char) c;\n        c >>= 8;\n    }\n}\n\nvoid\nsodium_add(unsigned char *a, const unsigned char *b, const size_t len)\n{\n    size_t        i;\n    uint_fast16_t c = 0U;\n\n#ifdef HAVE_AMD64_ASM\n    uint64_t t64, t64_2, t64_3;\n    uint32_t t32;\n\n    if (len == 12U) {\n        __asm__ __volatile__(\n            \"movq (%[in]), %[t64] \\n\"\n            \"movl 8(%[in]), %[t32] \\n\"\n            \"addq %[t64], (%[out]) \\n\"\n            \"adcl %[t32], 8(%[out]) \\n\"\n            : [t64] \"=&r\"(t64), [t32] \"=&r\"(t32)\n            : [in] \"S\"(b), [out] \"D\"(a)\n            : \"memory\", \"flags\", \"cc\");\n        return;\n    } else if (len == 24U) {\n        __asm__ __volatile__(\n            \"movq (%[in]), %[t64] \\n\"\n            \"movq 8(%[in]), %[t64_2] \\n\"\n            \"movq 16(%[in]), %[t64_3] \\n\"\n            \"addq %[t64], (%[out]) \\n\"\n            \"adcq %[t64_2], 8(%[out]) \\n\"\n            \"adcq %[t64_3], 16(%[out]) \\n\"\n            : [t64] \"=&r\"(t64), [t64_2] \"=&r\"(t64_2), [t64_3] \"=&r\"(t64_3)\n            : [in] \"S\"(b), [out] \"D\"(a)\n            : \"memory\", \"flags\", \"cc\");\n        return;\n    } else if (len == 8U) {\n        __asm__ __volatile__(\n            \"movq (%[in]), %[t64] \\n\"\n            \"addq %[t64], (%[out]) \\n\"\n            : [t64] \"=&r\"(t64)\n            : [in] \"S\"(b), [out] \"D\"(a)\n            : \"memory\", \"flags\", \"cc\");\n        return;\n    }\n#endif\n    for (i = 0U; i < len; i++) {\n        c += (uint_fast16_t) a[i] + (uint_fast16_t) b[i];\n        a[i] = (unsigned char) c;\n        c >>= 8;\n    }\n}\n\nvoid\nsodium_sub(unsigned char *a, const unsigned char *b, const size_t len)\n{\n    uint_fast16_t c = 0U;\n    size_t        i;\n\n#ifdef HAVE_AMD64_ASM\n    uint64_t t64_1, t64_2, t64_3, t64_4;\n    uint64_t t64_5, t64_6, t64_7, t64_8;\n\n    if (len == 64U) {\n        __asm__ __volatile__(\n            \"movq   (%[in]), %[t64_1] \\n\"\n            \"movq  8(%[in]), %[t64_2] \\n\"\n            \"movq 16(%[in]), %[t64_3] \\n\"\n            \"movq 24(%[in]), %[t64_4] \\n\"\n            \"movq 32(%[in]), %[t64_5] \\n\"\n            \"movq 40(%[in]), %[t64_6] \\n\"\n            \"movq 48(%[in]), %[t64_7] \\n\"\n            \"movq 56(%[in]), %[t64_8] \\n\"\n            \"subq %[t64_1],   (%[out]) \\n\"\n            \"sbbq %[t64_2],  8(%[out]) \\n\"\n            \"sbbq %[t64_3], 16(%[out]) \\n\"\n            \"sbbq %[t64_4], 24(%[out]) \\n\"\n            \"sbbq %[t64_5], 32(%[out]) \\n\"\n            \"sbbq %[t64_6], 40(%[out]) \\n\"\n            \"sbbq %[t64_7], 48(%[out]) \\n\"\n            \"sbbq %[t64_8], 56(%[out]) \\n\"\n            : [t64_1] \"=&r\"(t64_1), [t64_2] \"=&r\"(t64_2), [t64_3] \"=&r\"(t64_3), [t64_4] \"=&r\"(t64_4),\n              [t64_5] \"=&r\"(t64_5), [t64_6] \"=&r\"(t64_6), [t64_7] \"=&r\"(t64_7), [t64_8] \"=&r\"(t64_8)\n            : [in] \"S\"(b), [out] \"D\"(a)\n            : \"memory\", \"flags\", \"cc\");\n        return;\n    }\n#endif\n    for (i = 0U; i < len; i++) {\n        c = (uint_fast16_t) a[i] - (uint_fast16_t) b[i] - c;\n        a[i] = (unsigned char) c;\n        c = (c >> 8) & 1U;\n    }\n}\n\nint\n_sodium_alloc_init(void)\n{\n#ifdef HAVE_ALIGNED_MALLOC\n# if defined(_SC_PAGESIZE) && defined(HAVE_SYSCONF)\n    long page_size_ = sysconf(_SC_PAGESIZE);\n    if (page_size_ > 0L) {\n        page_size = (size_t) page_size_;\n    }\n# elif defined(WINAPI_DESKTOP)\n    SYSTEM_INFO si;\n    GetSystemInfo(&si);\n    page_size = (size_t) si.dwPageSize;\n# elif !defined(PAGE_SIZE)\n#  warning Unknown page size\n# endif\n    if (page_size < CANARY_SIZE || page_size < sizeof(size_t)) {\n        sodium_misuse(); /* LCOV_EXCL_LINE */\n    }\n#endif\n    randombytes_buf(canary, CANARY_SIZE);\n\n    return 0;\n}\n\nint\nsodium_mlock(void *const addr, const size_t len)\n{\n#if defined(MADV_DONTDUMP) && defined(HAVE_MADVISE)\n    (void) madvise(addr, len, MADV_DONTDUMP);\n#endif\n#ifdef HAVE_MLOCK\n    return mlock(addr, len);\n#elif defined(WINAPI_DESKTOP)\n    return -(VirtualLock(addr, len) == 0);\n#else\n    errno = ENOSYS;\n    return -1;\n#endif\n}\n\nint\nsodium_munlock(void *const addr, const size_t len)\n{\n    sodium_memzero(addr, len);\n#if defined(MADV_DODUMP) && defined(HAVE_MADVISE)\n    (void) madvise(addr, len, MADV_DODUMP);\n#endif\n#ifdef HAVE_MLOCK\n    return munlock(addr, len);\n#elif defined(WINAPI_DESKTOP)\n    return -(VirtualUnlock(addr, len) == 0);\n#else\n    errno = ENOSYS;\n    return -1;\n#endif\n}\n\nstatic int\n_mprotect_noaccess(void *ptr, size_t size)\n{\n#ifdef HAVE_MPROTECT\n    return mprotect(ptr, size, PROT_NONE);\n#elif defined(WINAPI_DESKTOP)\n    DWORD old;\n    return -(VirtualProtect(ptr, size, PAGE_NOACCESS, &old) == 0);\n#else\n    errno = ENOSYS;\n    return -1;\n#endif\n}\n\nstatic int\n_mprotect_readonly(void *ptr, size_t size)\n{\n#ifdef HAVE_MPROTECT\n    return mprotect(ptr, size, PROT_READ);\n#elif defined(WINAPI_DESKTOP)\n    DWORD old;\n    return -(VirtualProtect(ptr, size, PAGE_READONLY, &old) == 0);\n#else\n    errno = ENOSYS;\n    return -1;\n#endif\n}\n\nstatic int\n_mprotect_readwrite(void *ptr, size_t size)\n{\n#ifdef HAVE_MPROTECT\n    return mprotect(ptr, size, PROT_READ | PROT_WRITE);\n#elif defined(WINAPI_DESKTOP)\n    DWORD old;\n    return -(VirtualProtect(ptr, size, PAGE_READWRITE, &old) == 0);\n#else\n    errno = ENOSYS;\n    return -1;\n#endif\n}\n\n#ifdef HAVE_ALIGNED_MALLOC\n\n/* LCOV_EXCL_START */\n__attribute__((noreturn)) static void\n_out_of_bounds(void)\n{\n# if defined(HAVE_RAISE) && !defined(__wasm__)\n#  ifdef SIGPROT\n    raise(SIGPROT);\n#  elif defined(SIGSEGV)\n    raise(SIGSEGV);\n#  elif defined(SIGKILL)\n    raise(SIGKILL);\n#  endif\n# endif\n    abort(); /* not something we want any higher-level API to catch */\n}\n/* LCOV_EXCL_STOP */\n\nstatic inline size_t\n_page_round(const size_t size)\n{\n    const size_t page_mask = page_size - 1U;\n\n    return (size + page_mask) & ~page_mask;\n}\n\nstatic __attribute__((malloc)) unsigned char *\n_alloc_aligned(const size_t size)\n{\n    void *ptr;\n\n# if defined(MAP_ANON) && defined(HAVE_MMAP)\n    if ((ptr = mmap(NULL, size, PROT_READ | PROT_WRITE,\n                    MAP_ANON | MAP_PRIVATE | MAP_NOCORE, -1, 0)) ==\n        MAP_FAILED) {\n        ptr = NULL; /* LCOV_EXCL_LINE */\n    }               /* LCOV_EXCL_LINE */\n# elif defined(HAVE_POSIX_MEMALIGN)\n    if (posix_memalign(&ptr, page_size, size) != 0) {\n        ptr = NULL; /* LCOV_EXCL_LINE */\n    }               /* LCOV_EXCL_LINE */\n# elif defined(WINAPI_DESKTOP)\n    ptr = VirtualAlloc(NULL, size, MEM_COMMIT | MEM_RESERVE, PAGE_READWRITE);\n# else\n#  error Bug\n# endif\n    return (unsigned char *) ptr;\n}\n\nstatic void\n_free_aligned(unsigned char *const ptr, const size_t size)\n{\n# if defined(MAP_ANON) && defined(HAVE_MMAP)\n    (void) munmap(ptr, size);\n# elif defined(HAVE_POSIX_MEMALIGN)\n    free(ptr);\n# elif defined(WINAPI_DESKTOP)\n    VirtualFree(ptr, 0U, MEM_RELEASE);\n# else\n#  error Bug\n#endif\n}\n\nstatic unsigned char *\n_unprotected_ptr_from_user_ptr(void *const ptr)\n{\n    uintptr_t      unprotected_ptr_u;\n    unsigned char *canary_ptr;\n    size_t         page_mask;\n\n    canary_ptr = ((unsigned char *) ptr) - sizeof canary;\n    page_mask = page_size - 1U;\n    unprotected_ptr_u = ((uintptr_t) canary_ptr & (uintptr_t) ~page_mask);\n    if (unprotected_ptr_u <= page_size * 2U) {\n        sodium_misuse(); /* LCOV_EXCL_LINE */\n    }\n    return (unsigned char *) unprotected_ptr_u;\n}\n\n#endif /* HAVE_ALIGNED_MALLOC */\n\n#ifndef HAVE_ALIGNED_MALLOC\nstatic __attribute__((malloc)) void *\n_sodium_malloc(const size_t size)\n{\n    return malloc(size > (size_t) 0U ? size : (size_t) 1U);\n}\n#else\nstatic __attribute__((malloc)) void *\n_sodium_malloc(const size_t size)\n{\n    void          *user_ptr;\n    unsigned char *base_ptr;\n    unsigned char *canary_ptr;\n    unsigned char *unprotected_ptr;\n    size_t         size_with_canary;\n    size_t         total_size;\n    size_t         unprotected_size;\n\n    if (size >= (size_t) SIZE_MAX - page_size * 4U) {\n        errno = ENOMEM;\n        return NULL;\n    }\n    if (page_size <= sizeof canary || page_size < sizeof unprotected_size) {\n        sodium_misuse(); /* LCOV_EXCL_LINE */\n    }\n    size_with_canary = (sizeof canary) + size;\n    unprotected_size = _page_round(size_with_canary);\n    total_size       = page_size + page_size + unprotected_size + page_size;\n    if ((base_ptr = _alloc_aligned(total_size)) == NULL) {\n        return NULL; /* LCOV_EXCL_LINE */\n    }\n    unprotected_ptr = base_ptr + page_size * 2U;\n    _mprotect_noaccess(base_ptr + page_size, page_size);\n# ifndef HAVE_PAGE_PROTECTION\n    memcpy(unprotected_ptr + unprotected_size, canary, sizeof canary);\n# endif\n    _mprotect_noaccess(unprotected_ptr + unprotected_size, page_size);\n    (void) sodium_mlock(unprotected_ptr, unprotected_size); /* not a hard error in the context of sodium_malloc() */\n    canary_ptr =\n        unprotected_ptr + _page_round(size_with_canary) - size_with_canary;\n    user_ptr = canary_ptr + sizeof canary;\n    memcpy(canary_ptr, canary, sizeof canary);\n    memcpy(base_ptr, &unprotected_size, sizeof unprotected_size);\n    _mprotect_readonly(base_ptr, page_size);\n    assert(_unprotected_ptr_from_user_ptr(user_ptr) == unprotected_ptr);\n\n    return user_ptr;\n}\n#endif /* !HAVE_ALIGNED_MALLOC */\n\n__attribute__((malloc)) void *\nsodium_malloc(const size_t size)\n{\n    void *ptr;\n\n    if ((ptr = _sodium_malloc(size)) == NULL) {\n        return NULL;\n    }\n    memset(ptr, (int) GARBAGE_VALUE, size);\n\n    return ptr;\n}\n\n__attribute__((malloc)) void *\nsodium_allocarray(size_t count, size_t size)\n{\n    if (count > (size_t) 0U && size >= (size_t) SIZE_MAX / count) {\n        errno = ENOMEM;\n        return NULL;\n    }\n    return sodium_malloc(count * size);\n}\n\n#ifndef HAVE_ALIGNED_MALLOC\nvoid\nsodium_free(void *ptr)\n{\n    free(ptr);\n}\n#else\nvoid\nsodium_free(void *ptr)\n{\n    unsigned char *base_ptr;\n    unsigned char *canary_ptr;\n    unsigned char *unprotected_ptr;\n    size_t         total_size;\n    size_t         unprotected_size;\n\n    if (ptr == NULL) {\n        return;\n    }\n    canary_ptr      = ((unsigned char *) ptr) - sizeof canary;\n    unprotected_ptr = _unprotected_ptr_from_user_ptr(ptr);\n    base_ptr        = unprotected_ptr - page_size * 2U;\n    memcpy(&unprotected_size, base_ptr, sizeof unprotected_size);\n    total_size = page_size + page_size + unprotected_size + page_size;\n    _mprotect_readwrite(base_ptr, total_size);\n    if (sodium_memcmp(canary_ptr, canary, sizeof canary) != 0) {\n        _out_of_bounds(); /* LCOV_EXCL_LINE */\n    }\n# ifndef HAVE_PAGE_PROTECTION\n    if (sodium_memcmp(unprotected_ptr + unprotected_size, canary,\n                      sizeof canary) != 0) {\n        _out_of_bounds();\n    }\n# endif\n    (void) sodium_munlock(unprotected_ptr, unprotected_size);\n    _free_aligned(base_ptr, total_size);\n}\n#endif /* HAVE_ALIGNED_MALLOC */\n\n#ifndef HAVE_PAGE_PROTECTION\nstatic int\n_sodium_mprotect(void *ptr, int (*cb)(void *ptr, size_t size))\n{\n    (void) ptr;\n    (void) cb;\n    errno = ENOSYS;\n    return -1;\n}\n#else\nstatic int\n_sodium_mprotect(void *ptr, int (*cb)(void *ptr, size_t size))\n{\n    unsigned char *base_ptr;\n    unsigned char *unprotected_ptr;\n    size_t         unprotected_size;\n\n    unprotected_ptr = _unprotected_ptr_from_user_ptr(ptr);\n    base_ptr        = unprotected_ptr - page_size * 2U;\n    memcpy(&unprotected_size, base_ptr, sizeof unprotected_size);\n\n    return cb(unprotected_ptr, unprotected_size);\n}\n#endif\n\nint\nsodium_mprotect_noaccess(void *ptr)\n{\n    return _sodium_mprotect(ptr, _mprotect_noaccess);\n}\n\nint\nsodium_mprotect_readonly(void *ptr)\n{\n    return _sodium_mprotect(ptr, _mprotect_readonly);\n}\n\nint\nsodium_mprotect_readwrite(void *ptr)\n{\n    return _sodium_mprotect(ptr, _mprotect_readwrite);\n}\n\nint\nsodium_pad(size_t *padded_buflen_p, unsigned char *buf,\n           size_t unpadded_buflen, size_t blocksize, size_t max_buflen)\n{\n    unsigned char          *tail;\n    size_t                  i;\n    size_t                  xpadlen;\n    size_t                  xpadded_len;\n    volatile unsigned char  mask;\n    unsigned char           barrier_mask;\n\n    if (blocksize <= 0U) {\n        return -1;\n    }\n    xpadlen = blocksize - 1U;\n    if ((blocksize & (blocksize - 1U)) == 0U) {\n        xpadlen -= unpadded_buflen & (blocksize - 1U);\n    } else {\n        xpadlen -= unpadded_buflen % blocksize;\n    }\n    if ((size_t) SIZE_MAX - unpadded_buflen <= xpadlen) {\n        sodium_misuse(); /* LCOV_EXCL_LINE */\n    }\n    xpadded_len = unpadded_buflen + xpadlen;\n    if (xpadded_len >= max_buflen) {\n        return -1;\n    }\n    tail = &buf[xpadded_len];\n    if (padded_buflen_p != NULL) {\n        *padded_buflen_p = xpadded_len + 1U;\n    }\n    mask = 0U;\n    for (i = 0; i < blocksize; i++) {\n        barrier_mask = (unsigned char) (((i ^ xpadlen) - 1U)\n           >> ((sizeof(size_t) - 1) * CHAR_BIT));\n        *(tail - i) = ((*(tail - i)) & mask) | (0x80 & barrier_mask);\n        mask |= barrier_mask;\n    }\n    return 0;\n}\n\nint\nsodium_unpad(size_t *unpadded_buflen_p, const unsigned char *buf,\n             size_t padded_buflen, size_t blocksize)\n{\n    const unsigned char *tail;\n    unsigned char        acc = 0U;\n    unsigned char        c;\n    unsigned char        valid = 0U;\n    volatile size_t      pad_len = 0U;\n    size_t               i;\n    size_t               is_barrier;\n\n    if (padded_buflen < blocksize || blocksize <= 0U) {\n        return -1;\n    }\n    tail = &buf[padded_buflen - 1U];\n\n    for (i = 0U; i < blocksize; i++) {\n        c = *(tail - i);\n        is_barrier =\n            (( (acc - 1U) & (pad_len - 1U) & ((c ^ 0x80) - 1U) ) >> 8) & 1U;\n        acc |= c;\n        pad_len |= i & (1U + ~is_barrier);\n        valid |= (unsigned char) is_barrier;\n    }\n    *unpadded_buflen_p = padded_buflen - 1U - pad_len;\n\n    return (int) (valid - 1U);\n}\n"
  },
  {
    "path": "src/libsodium/sodium/version.c",
    "content": "\n#include \"version.h\"\n\nconst char *\nsodium_version_string(void)\n{\n    return SODIUM_VERSION_STRING;\n}\n\nint\nsodium_library_version_major(void)\n{\n    return SODIUM_LIBRARY_VERSION_MAJOR;\n}\n\nint\nsodium_library_version_minor(void)\n{\n    return SODIUM_LIBRARY_VERSION_MINOR;\n}\n\nint\nsodium_library_minimal(void)\n{\n#ifdef SODIUM_LIBRARY_MINIMAL\n    return 1;\n#else\n    return 0;\n#endif\n}\n"
  },
  {
    "path": "test/Makefile.am",
    "content": "SUBDIRS = \\\n\tdefault\n\nEXTRA_DIST = \\\n\tquirks/quirks.h\n"
  },
  {
    "path": "test/check-version-consistency.sh",
    "content": "#! /bin/bash\n\nRED='\\033[0;31m'\nGREEN='\\033[0;32m'\nYELLOW='\\033[1;33m'\nNC='\\033[0m'\n\nerrors=0\nwarnings=0\n\nerror() {\n    echo -e \"${RED}ERROR:${NC} $1\"\n    errors=$((errors + 1))\n}\n\nwarn() {\n    echo -e \"${YELLOW}WARNING:${NC} $1\"\n    warnings=$((warnings + 1))\n}\n\nok() {\n    echo -e \"${GREEN}OK:${NC} $1\"\n}\n\n# Extract version from configure.ac (source of truth)\nif [ ! -f configure.ac ]; then\n    echo \"ERROR: configure.ac not found. Run from repository root.\"\n    exit 1\nfi\n\nVERSION=$(sed -n 's/^AC_INIT(\\[libsodium\\],\\[\\([0-9]*\\.[0-9]*\\.[0-9]*\\)\\].*/\\1/p' configure.ac)\nMAJOR=$(sed -n 's/^SODIUM_LIBRARY_VERSION_MAJOR=\\([0-9]*\\)/\\1/p' configure.ac)\nMINOR=$(sed -n 's/^SODIUM_LIBRARY_VERSION_MINOR=\\([0-9]*\\)/\\1/p' configure.ac)\nDLL_VERSION=$(sed -n 's/^DLL_VERSION=\\([0-9]*\\)/\\1/p' configure.ac)\nLIBTOOL_VERSION=$(sed -n 's/^SODIUM_LIBRARY_VERSION=\\([0-9]*:[0-9]*:[0-9]*\\)/\\1/p' configure.ac)\n\nif [ -z \"$VERSION\" ] || [ -z \"$MAJOR\" ] || [ -z \"$MINOR\" ]; then\n    echo \"ERROR: Could not extract version from configure.ac\"\n    exit 1\nfi\n\necho \"Source of truth (configure.ac):\"\necho \"  VERSION: $VERSION\"\necho \"  SODIUM_LIBRARY_VERSION_MAJOR: $MAJOR\"\necho \"  SODIUM_LIBRARY_VERSION_MINOR: $MINOR\"\necho \"  DLL_VERSION: $DLL_VERSION\"\necho \"  SODIUM_LIBRARY_VERSION (libtool): $LIBTOOL_VERSION\"\necho \"\"\n\n# Check DLL_VERSION matches MAJOR\nif [ \"$DLL_VERSION\" != \"$MAJOR\" ]; then\n    error \"DLL_VERSION ($DLL_VERSION) should match SODIUM_LIBRARY_VERSION_MAJOR ($MAJOR)\"\nelse\n    ok \"DLL_VERSION matches MAJOR\"\nfi\n\necho \"\"\necho \"Checking version files...\"\necho \"\"\n\n# 1. src/libsodium/include/sodium/version.h\nFILE=\"src/libsodium/include/sodium/version.h\"\nif [ -f \"$FILE\" ]; then\n    VH_VERSION=$(sed -n 's/.*#define SODIUM_VERSION_STRING \"\\([0-9]*\\.[0-9]*\\.[0-9]*\\)\".*/\\1/p' \"$FILE\")\n    VH_MAJOR=$(sed -n 's/.*#define SODIUM_LIBRARY_VERSION_MAJOR \\([0-9]*\\).*/\\1/p' \"$FILE\")\n    VH_MINOR=$(sed -n 's/.*#define SODIUM_LIBRARY_VERSION_MINOR \\([0-9]*\\).*/\\1/p' \"$FILE\")\n\n    if [ \"$VH_VERSION\" != \"$VERSION\" ]; then\n        error \"$FILE: SODIUM_VERSION_STRING is '$VH_VERSION', expected '$VERSION'\"\n    else\n        ok \"$FILE: SODIUM_VERSION_STRING\"\n    fi\n\n    if [ \"$VH_MAJOR\" != \"$MAJOR\" ]; then\n        error \"$FILE: SODIUM_LIBRARY_VERSION_MAJOR is '$VH_MAJOR', expected '$MAJOR'\"\n    else\n        ok \"$FILE: SODIUM_LIBRARY_VERSION_MAJOR\"\n    fi\n\n    if [ \"$VH_MINOR\" != \"$MINOR\" ]; then\n        error \"$FILE: SODIUM_LIBRARY_VERSION_MINOR is '$VH_MINOR', expected '$MINOR'\"\n    else\n        ok \"$FILE: SODIUM_LIBRARY_VERSION_MINOR\"\n    fi\nelse\n    warn \"$FILE not found (may need to run ./configure first)\"\nfi\n\n# 2. builds/msvc/version.h (should be copy of version.h)\nFILE=\"builds/msvc/version.h\"\nif [ -f \"$FILE\" ]; then\n    MVH_VERSION=$(sed -n 's/.*#define SODIUM_VERSION_STRING \"\\([0-9]*\\.[0-9]*\\.[0-9]*\\)\".*/\\1/p' \"$FILE\")\n    MVH_MAJOR=$(sed -n 's/.*#define SODIUM_LIBRARY_VERSION_MAJOR \\([0-9]*\\).*/\\1/p' \"$FILE\")\n    MVH_MINOR=$(sed -n 's/.*#define SODIUM_LIBRARY_VERSION_MINOR \\([0-9]*\\).*/\\1/p' \"$FILE\")\n\n    if [ \"$MVH_VERSION\" != \"$VERSION\" ]; then\n        error \"$FILE: SODIUM_VERSION_STRING is '$MVH_VERSION', expected '$VERSION'\"\n    else\n        ok \"$FILE: SODIUM_VERSION_STRING\"\n    fi\n\n    if [ \"$MVH_MAJOR\" != \"$MAJOR\" ]; then\n        error \"$FILE: SODIUM_LIBRARY_VERSION_MAJOR is '$MVH_MAJOR', expected '$MAJOR'\"\n    else\n        ok \"$FILE: SODIUM_LIBRARY_VERSION_MAJOR\"\n    fi\n\n    if [ \"$MVH_MINOR\" != \"$MINOR\" ]; then\n        error \"$FILE: SODIUM_LIBRARY_VERSION_MINOR is '$MVH_MINOR', expected '$MINOR'\"\n    else\n        ok \"$FILE: SODIUM_LIBRARY_VERSION_MINOR\"\n    fi\nelse\n    error \"$FILE not found\"\nfi\n\n# 3. builds/msvc/resource.rc\nFILE=\"builds/msvc/resource.rc\"\nif [ -f \"$FILE\" ]; then\n    RC_VERSION=$(sed -n 's/.*#define LIBSODIUM_VERSION_STRING \"\\([0-9]*\\.[0-9]*\\.[0-9]*\\).*/\\1/p' \"$FILE\")\n    RC_BIN=$(sed -n 's/.*#define LIBSODIUM_VERSION_BIN \\([0-9]*,[0-9]*,[0-9]*\\).*/\\1/p' \"$FILE\")\n    EXPECTED_BIN=$(echo \"$VERSION\" | tr '.' ',')\n\n    if [ \"$RC_VERSION\" != \"$VERSION\" ]; then\n        error \"$FILE: LIBSODIUM_VERSION_STRING is '$RC_VERSION', expected '$VERSION'\"\n    else\n        ok \"$FILE: LIBSODIUM_VERSION_STRING\"\n    fi\n\n    if [ \"$RC_BIN\" != \"$EXPECTED_BIN\" ]; then\n        error \"$FILE: LIBSODIUM_VERSION_BIN is '$RC_BIN', expected '$EXPECTED_BIN'\"\n    else\n        ok \"$FILE: LIBSODIUM_VERSION_BIN\"\n    fi\nelse\n    error \"$FILE not found\"\nfi\n\n# 4. ci/appveyor/msvc-scripts/process.bat\nFILE=\"ci/appveyor/msvc-scripts/process.bat\"\nif [ -f \"$FILE\" ]; then\n    BAT_VERSION=$(sed -n 's/.*@VERSION@\\/\\([0-9]*\\.[0-9]*\\.[0-9]*\\)\\/.*/\\1/p' \"$FILE\")\n    BAT_MAJOR=$(sed -n 's/.*@SODIUM_LIBRARY_VERSION_MAJOR@\\/\\([0-9]*\\)\\/.*/\\1/p' \"$FILE\")\n    BAT_MINOR=$(sed -n 's/.*@SODIUM_LIBRARY_VERSION_MINOR@\\/\\([0-9]*\\)\\/.*/\\1/p' \"$FILE\")\n\n    if [ \"$BAT_VERSION\" != \"$VERSION\" ]; then\n        error \"$FILE: VERSION is '$BAT_VERSION', expected '$VERSION'\"\n    else\n        ok \"$FILE: VERSION\"\n    fi\n\n    if [ \"$BAT_MAJOR\" != \"$MAJOR\" ]; then\n        error \"$FILE: MAJOR is '$BAT_MAJOR', expected '$MAJOR'\"\n    else\n        ok \"$FILE: MAJOR\"\n    fi\n\n    if [ \"$BAT_MINOR\" != \"$MINOR\" ]; then\n        error \"$FILE: MINOR is '$BAT_MINOR', expected '$MINOR'\"\n    else\n        ok \"$FILE: MINOR\"\n    fi\nelse\n    error \"$FILE not found\"\nfi\n\n# 5. appveyor.yml\nFILE=\"appveyor.yml\"\nif [ -f \"$FILE\" ]; then\n    AV_VERSION=$(sed -n 's/^version: \\([0-9]*\\.[0-9]*\\.[0-9]*\\).*/\\1/p' \"$FILE\")\n\n    if [ \"$AV_VERSION\" != \"$VERSION\" ]; then\n        error \"$FILE: version is '$AV_VERSION', expected '$VERSION'\"\n    else\n        ok \"$FILE: version\"\n    fi\nelse\n    error \"$FILE not found\"\nfi\n\n# 6. dist-build/android-aar.sh\nFILE=\"dist-build/android-aar.sh\"\nif [ -f \"$FILE\" ]; then\n    AAR_VERSION=$(sed -n 's/^SODIUM_VERSION=\"\\([0-9]*\\.[0-9]*\\.[0-9]*\\).*/\\1/p' \"$FILE\")\n\n    if [ \"$AAR_VERSION\" != \"$VERSION\" ]; then\n        error \"$FILE: SODIUM_VERSION is '$AAR_VERSION', expected '$VERSION'\"\n    else\n        ok \"$FILE: SODIUM_VERSION\"\n    fi\nelse\n    error \"$FILE not found\"\nfi\n\n# 7. packaging/dotnet-core/libsodium.pkgproj\nFILE=\"packaging/dotnet-core/libsodium.pkgproj\"\nif [ -f \"$FILE\" ]; then\n    PKG_VERSION=$(sed -n 's/.*<Version>\\([0-9]*\\.[0-9]*\\.[0-9]*\\).*/\\1/p' \"$FILE\")\n\n    if [ \"$PKG_VERSION\" != \"$VERSION\" ]; then\n        error \"$FILE: Version is '$PKG_VERSION', expected '$VERSION'\"\n    else\n        ok \"$FILE: Version\"\n    fi\nelse\n    error \"$FILE not found\"\nfi\n\n# 8. packaging/nuget/package.config (uses 4-part version: X.Y.Z.0)\nFILE=\"packaging/nuget/package.config\"\nif [ -f \"$FILE\" ]; then\n    NUGET_VERSION=$(sed -n 's/.*version *= *\"\\([0-9]*\\.[0-9]*\\.[0-9]*\\).*/\\1/p' \"$FILE\")\n    NUGET_PATHVER=$(sed -n 's/.*pathversion=\"\\([0-9_]*\\)\".*/\\1/p' \"$FILE\")\n    EXPECTED_PATHVER=\"${VERSION}_0\"\n    EXPECTED_PATHVER=$(echo \"$EXPECTED_PATHVER\" | tr '.' '_')\n\n    if [ \"$NUGET_VERSION\" != \"$VERSION\" ]; then\n        error \"$FILE: version is '$NUGET_VERSION', expected '$VERSION'\"\n    else\n        ok \"$FILE: version\"\n    fi\n\n    if [ \"$NUGET_PATHVER\" != \"$EXPECTED_PATHVER\" ]; then\n        error \"$FILE: pathversion is '$NUGET_PATHVER', expected '$EXPECTED_PATHVER'\"\n    else\n        ok \"$FILE: pathversion\"\n    fi\nfi\n\n# 9. configure (generated from configure.ac)\nFILE=\"configure\"\nif [ -f \"$FILE\" ]; then\n    CONF_VERSION=$(sed -n \"s/^PACKAGE_VERSION='\\([0-9]*\\.[0-9]*\\.[0-9]*\\)'/\\1/p\" \"$FILE\")\n    CONF_MAJOR=$(sed -n 's/^SODIUM_LIBRARY_VERSION_MAJOR=\\([0-9]*\\)/\\1/p' \"$FILE\")\n    CONF_MINOR=$(sed -n 's/^SODIUM_LIBRARY_VERSION_MINOR=\\([0-9]*\\)/\\1/p' \"$FILE\")\n\n    if [ \"$CONF_VERSION\" != \"$VERSION\" ]; then\n        error \"$FILE: PACKAGE_VERSION is '$CONF_VERSION', expected '$VERSION' (run ./autogen.sh)\"\n    else\n        ok \"$FILE: PACKAGE_VERSION\"\n    fi\n\n    if [ \"$CONF_MAJOR\" != \"$MAJOR\" ]; then\n        error \"$FILE: SODIUM_LIBRARY_VERSION_MAJOR is '$CONF_MAJOR', expected '$MAJOR' (run ./autogen.sh)\"\n    else\n        ok \"$FILE: SODIUM_LIBRARY_VERSION_MAJOR\"\n    fi\n\n    if [ \"$CONF_MINOR\" != \"$MINOR\" ]; then\n        error \"$FILE: SODIUM_LIBRARY_VERSION_MINOR is '$CONF_MINOR', expected '$MINOR' (run ./autogen.sh)\"\n    else\n        ok \"$FILE: SODIUM_LIBRARY_VERSION_MINOR\"\n    fi\nelse\n    warn \"$FILE not found (run ./autogen.sh to generate)\"\nfi\n\necho \"\"\necho \"==========================================\"\nif [ $errors -gt 0 ]; then\n    echo -e \"${RED}FAILED:${NC} $errors error(s), $warnings warning(s)\"\n    exit 1\nelif [ $warnings -gt 0 ]; then\n    echo -e \"${YELLOW}PASSED WITH WARNINGS:${NC} $warnings warning(s)\"\n    exit 0\nelse\n    echo -e \"${GREEN}PASSED:${NC} All version checks passed\"\n    exit 0\nfi\n"
  },
  {
    "path": "test/constcheck.sh",
    "content": "#! /bin/sh\n\nCT='ct.c'\n\necho '#include <assert.h>' > \"$CT\"\necho '#include <sodium.h>' >> \"$CT\"\necho 'int main(void) {' >> \"$CT\"\nfor macro in $(grep -Er '#define crypto_.*BYTES(_[A-Z]+)? ' src/libsodium/include | \\\n               cut -d: -f2- | cut -d' ' -f2 | sort -u); do\n  func=$(echo \"$macro\" | tr A-Z a-z)\n  echo \"    assert($func() == $macro);\" >> \"$CT\"\ndone\necho \"return 0; }\" >> \"$CT\"\n\nCPPFLAGS=\"${CPPFLAGS} -Wno-deprecated-declarations\"\nCPPFLAGS=\"${CPPFLAGS} -Isrc/libsodium/include\"\nLDFLAGS=\"${LDFLAGS} -Lsrc/libsodium/.libs\"\n${CC:-cc} \"$CT\" $CPPFLAGS $CFLAGS $LDFLAGS -lsodium || exit 1\nDYLD_LIBRARY_PATH=src/libsodium/.libs:$DYLD_LIBRARY_PATH ./a.out || exit 1\nrm -f a.out \"$CT\"\n\n"
  },
  {
    "path": "test/default/Makefile.am",
    "content": "\nEXTRA_DIST = \\\n\trun.sh \\\n\tcmptest.h \\\n\twasi-test-wrapper.sh \\\n\twintest.bat \\\n\tpre.js.inc \\\n\taead_aegis128l.exp \\\n\taead_aegis256.exp \\\n\taead_aes256gcm.exp \\\n\taead_aes256gcm2.exp \\\n\taead_chacha20poly1305.exp \\\n\taead_chacha20poly13052.exp \\\n\taead_xchacha20poly1305.exp \\\n\tauth.exp \\\n\tauth2.exp \\\n\tauth3.exp \\\n\tauth5.exp \\\n\tauth6.exp \\\n\tauth7.exp \\\n\tbox.exp \\\n\tbox2.exp \\\n\tbox7.exp \\\n\tbox8.exp \\\n\tbox_easy.exp \\\n\tbox_easy2.exp \\\n\tbox_seal.exp \\\n\tbox_seed.exp \\\n\tchacha20.exp \\\n\tcodecs.exp \\\n\tcodecs2.exp \\\n\tcodecs3.exp \\\n\tcore_ed25519.exp \\\n\tcore_ed25519_h2c.exp \\\n\tcore_ristretto255.exp \\\n\tcore_ristretto255_h2c.exp \\\n\tcore1.exp \\\n\tcore2.exp \\\n\tcore3.exp \\\n\tcore4.exp \\\n\tcore5.exp \\\n\tcore6.exp \\\n\tcore_keccak1600.exp \\\n\ted25519_convert.exp \\\n\tgenerichash.exp \\\n\tgenerichash2.exp \\\n\tgenerichash3.exp \\\n\thash.exp \\\n\thash3.exp \\\n\thash_sha3256.exp \\\n\thash_sha3512.exp \\\n\tipcrypt.exp \\\n\tkdf.exp \\\n\tkdf_hkdf.exp \\\n\tkdf_hkdf2.exp \\\n\tkdf_hkdf3.exp \\\n\tkdf_hkdf4.exp \\\n\tkem.exp \\\n\tkem_mlkem768.exp \\\n\tkem_xwing.exp \\\n\tkeygen.exp \\\n\tkx.exp \\\n\tmetamorphic.exp \\\n\tmisuse.exp \\\n\tonetimeauth.exp \\\n\tonetimeauth2.exp \\\n\tonetimeauth7.exp \\\n\tpwhash_argon2i.exp \\\n\tpwhash_argon2id.exp \\\n\tpwhash_argon2id2.exp \\\n\tpwhash_scrypt.exp \\\n\tpwhash_scrypt_ll.exp \\\n\trandombytes.exp \\\n\tscalarmult.exp \\\n\tscalarmult_ed25519.exp \\\n\tscalarmult_ristretto255.exp \\\n\tscalarmult2.exp \\\n\tscalarmult5.exp \\\n\tscalarmult6.exp \\\n\tscalarmult7.exp \\\n\tscalarmult8.exp \\\n\tsecretbox.exp \\\n\tsecretbox2.exp \\\n\tsecretbox7.exp \\\n\tsecretbox8.exp \\\n\tsecretbox_easy.exp \\\n\tsecretbox_easy2.exp \\\n\tsecretstream_xchacha20poly1305.exp \\\n\tshorthash.exp \\\n\tsign.exp \\\n\tsign2.exp \\\n\tsiphashx24.exp \\\n\tsodium_core.exp \\\n\tsodium_utils.exp \\\n\tsodium_utils2.exp \\\n\tsodium_utils3.exp \\\n\tsodium_utils4.exp \\\n\tsodium_version.exp \\\n\tstream.exp \\\n\tstream2.exp \\\n\tstream3.exp \\\n\tstream4.exp \\\n\tstream5.exp \\\n\tstream6.exp \\\n\tverify1.exp \\\n\txchacha20.exp \\\n\txof_shake128.exp \\\n\txof_shake256.exp \\\n\txof_turboshake128.exp \\\n\txof_turboshake256.exp \\\n\txof2.exp\n\nDISTCLEANFILES = \\\n\taead_aegis128l.res \\\n\taead_aegis256.res \\\n\taead_aes256gcm.res \\\n\taead_aes256gcm2.res \\\n\taead_chacha20poly1305.res \\\n\taead_chacha20poly13052.res \\\n\taead_xchacha20poly1305.res \\\n\tauth.res \\\n\tauth2.res \\\n\tauth3.res \\\n\tauth5.res \\\n\tauth6.res \\\n\tauth7.res \\\n\tbox.res \\\n\tbox2.res \\\n\tbox7.res \\\n\tbox8.res \\\n\tbox_easy.res \\\n\tbox_easy2.res \\\n\tbox_seal.res \\\n\tbox_seed.res \\\n\tchacha20.res \\\n\tcodecs.res \\\n\tcodecs2.res \\\n\tcodecs3.res \\\n\tcore_ed25519.res \\\n\tcore_ed25519_h2c.res \\\n\tcore_ristretto255.res \\\n\tcore_ristretto255_h2c.res \\\n\tcore1.res \\\n\tcore2.res \\\n\tcore3.res \\\n\tcore4.res \\\n\tcore5.res \\\n\tcore6.res \\\n\tcore_keccak1600.res \\\n\ted25519_convert.res \\\n\tgenerichash.res \\\n\tgenerichash2.res \\\n\tgenerichash3.res \\\n\thash.res \\\n\thash2.res \\\n\thash3.res \\\n\thash_sha3256.res \\\n\thash_sha3512.res \\\n\tipcrypt.res \\\n\tkdf.res \\\n\tkdf_hkdf.res \\\n\tkdf_hkdf2.res \\\n\tkdf_hkdf3.res \\\n\tkdf_hkdf4.res \\\n\tkem.res \\\n\tkem_mlkem768.res \\\n\tkem_xwing.res \\\n\tkeygen.res \\\n\tkx.res \\\n\tmetamorphic.res \\\n\tmisuse.res \\\n\tonetimeauth.res \\\n\tonetimeauth2.res \\\n\tonetimeauth7.res \\\n\tpwhash_argon2i.res \\\n\tpwhash_argon2id.res \\\n\tpwhash_argon2id2.res \\\n\tpwhash_scrypt.res \\\n\tpwhash_scrypt_ll.res \\\n\trandombytes.res \\\n\tscalarmult.res \\\n\tscalarmult_ed25519.res \\\n\tscalarmult_ristretto255.res \\\n\tscalarmult2.res \\\n\tscalarmult5.res \\\n\tscalarmult6.res \\\n\tscalarmult7.res \\\n\tscalarmult8.res \\\n\tsecretbox.res \\\n\tsecretbox2.res \\\n\tsecretbox7.res \\\n\tsecretbox8.res \\\n\tsecretbox_easy.res \\\n\tsecretbox_easy2.res \\\n\tsecretstream_xchacha20poly1305.res \\\n\tshorthash.res \\\n\tsign.res \\\n\tsign2.res \\\n\tsiphashx24.res \\\n\tsodium_core.res \\\n\tsodium_utils.res \\\n\tsodium_utils2.res \\\n\tsodium_utils3.res \\\n\tsodium_utils4.res \\\n\tsodium_version.res \\\n\tstream.res \\\n\tstream2.res \\\n\tstream3.res \\\n\tstream4.res \\\n\tstream5.res \\\n\tstream6.res \\\n\tverify1.res \\\n\txchacha20.res \\\n\txof_shake128.res \\\n\txof_shake256.res \\\n\txof_turboshake128.res \\\n\txof_turboshake256.res \\\n\txof2.res\n\nAM_CPPFLAGS = \\\n\t-DTEST_SRCDIR=\\\"@srcdir@\\\" \\\n\t-I$(top_srcdir)/src/libsodium/include \\\n\t-I$(top_srcdir)/src/libsodium/include/sodium \\\n\t-I$(top_builddir)/src/libsodium/include \\\n\t-I$(top_builddir)/src/libsodium/include/sodium \\\n\t-I$(top_srcdir)/test/quirks\n\nAM_LDFLAGS = @TEST_LDFLAGS@\n\nTESTS_TARGETS = \\\n\taead_aegis128l \\\n\taead_aegis256 \\\n\taead_aes256gcm \\\n\taead_aes256gcm2 \\\n\taead_chacha20poly1305 \\\n\taead_chacha20poly13052 \\\n\taead_xchacha20poly1305 \\\n\tauth \\\n\tauth2 \\\n\tauth3 \\\n\tauth5 \\\n\tauth6 \\\n\tauth7 \\\n\tbox \\\n\tbox2 \\\n\tbox7 \\\n\tbox8 \\\n\tbox_easy \\\n\tbox_easy2 \\\n\tbox_seal \\\n\tbox_seed \\\n\tchacha20 \\\n\tcodecs \\\n\tcodecs2 \\\n\tcodecs3 \\\n\tcore1 \\\n\tcore2 \\\n\tcore3 \\\n\tcore4 \\\n\tcore5 \\\n\tcore6 \\\n\tcore_keccak1600 \\\n\ted25519_convert \\\n\tgenerichash \\\n\tgenerichash2 \\\n\tgenerichash3 \\\n\thash \\\n\thash3 \\\n\thash_sha3256 \\\n\thash_sha3512 \\\n\tipcrypt \\\n\tkdf \\\n\tkem \\\n\tkem_mlkem768 \\\n\tkem_xwing \\\n\tkeygen \\\n\tkx \\\n\tmetamorphic \\\n\tmisuse \\\n\tonetimeauth \\\n\tonetimeauth2 \\\n\tonetimeauth7 \\\n\tpwhash_argon2i \\\n\tpwhash_argon2id \\\n\tpwhash_argon2id2 \\\n\trandombytes \\\n\tscalarmult \\\n\tscalarmult2 \\\n\tscalarmult5 \\\n\tscalarmult6 \\\n\tscalarmult7 \\\n\tscalarmult8 \\\n\tsecretbox \\\n\tsecretbox2 \\\n\tsecretbox7 \\\n\tsecretbox8 \\\n\tsecretbox_easy \\\n\tsecretbox_easy2 \\\n\tsecretstream_xchacha20poly1305 \\\n\tshorthash \\\n\tsign \\\n\tsign2 \\\n\tsodium_core \\\n\tsodium_utils \\\n\tsodium_version \\\n\tstream \\\n\tstream2 \\\n\tstream3 \\\n\tstream4 \\\n\tverify1 \\\n\txof_shake128 \\\n\txof_shake256 \\\n\txof_turboshake128 \\\n\txof_turboshake256 \\\n\txof2\n\nif !EMSCRIPTEN\nTESTS_TARGETS += \\\n\tsodium_utils2 \\\n\tsodium_utils3 \\\n\tsodium_utils4\nendif\n\ncheck_PROGRAMS = $(TESTS_TARGETS)\n\nTESTS = $(TESTS_TARGETS)\n\nTESTS_LDADD = \\\n\t${top_builddir}/src/libsodium/libsodium.la\n\naead_aegis128l_SOURCE                 = cmptest.h aead_aegis128l.c\naead_aegis128l_LDADD                  = $(TESTS_LDADD)\n\naead_aegis256_SOURCE                  = cmptest.h aead_aegis256.c\naead_aegis256_LDADD                   = $(TESTS_LDADD)\n\naead_aes256gcm_SOURCE                 = cmptest.h aead_aes256gcm.c\naead_aes256gcm_LDADD                  = $(TESTS_LDADD)\n\naead_aes256gcm2_SOURCE                = cmptest.h aead_aes256gcm2.c\naead_aes256gcm2_LDADD                 = $(TESTS_LDADD)\n\naead_chacha20poly1305_SOURCE          = cmptest.h aead_chacha20poly1305.c\naead_chacha20poly1305_LDADD           = $(TESTS_LDADD)\n\naead_chacha20poly13052_SOURCE         = cmptest.h aead_chacha20poly13052.c\naead_chacha20poly13052_LDADD          = $(TESTS_LDADD)\n\naead_xchacha20poly1305_SOURCE         = cmptest.h aead_xchacha20poly1305.c\naead_xchacha20poly1305_LDADD          = $(TESTS_LDADD)\n\nauth_SOURCE               = cmptest.h auth.c\nauth_LDADD                = $(TESTS_LDADD)\n\nauth2_SOURCE              = cmptest.h auth2.c\nauth2_LDADD               = $(TESTS_LDADD)\n\nauth3_SOURCE              = cmptest.h auth3.c\nauth3_LDADD               = $(TESTS_LDADD)\n\nauth5_SOURCE              = cmptest.h auth5.c quirks.h\nauth5_LDADD               = $(TESTS_LDADD)\n\nauth6_SOURCE              = cmptest.h auth6.c quirks.h\nauth6_LDADD               = $(TESTS_LDADD)\n\nauth7_SOURCE              = cmptest.h auth7.c quirks.h\nauth7_LDADD               = $(TESTS_LDADD)\n\nbox_SOURCE                = cmptest.h box.c\nbox_LDADD                 = $(TESTS_LDADD)\n\nbox2_SOURCE               = cmptest.h box2.c\nbox2_LDADD                = $(TESTS_LDADD)\n\nbox7_SOURCE               = cmptest.h box7.c\nbox7_LDADD                = $(TESTS_LDADD)\n\nbox8_SOURCE               = cmptest.h box8.c\nbox8_LDADD                = $(TESTS_LDADD)\n\nbox_easy_SOURCE           = cmptest.h box_easy.c\nbox_easy_LDADD            = $(TESTS_LDADD)\n\nbox_easy2_SOURCE          = cmptest.h box_easy2.c\nbox_easy2_LDADD           = $(TESTS_LDADD)\n\nbox_seal_SOURCE           = cmptest.h box_seal.c\nbox_seal_LDADD            = $(TESTS_LDADD)\n\nbox_seed_SOURCE           = cmptest.h box_seed.c\nbox_seed_LDADD            = $(TESTS_LDADD)\n\nchacha20_SOURCE           = cmptest.h chacha20.c\nchacha20_LDADD            = $(TESTS_LDADD)\n\ncodecs_SOURCE             = cmptest.h codecs.c\ncodecs_LDADD              = $(TESTS_LDADD)\n\ncodecs2_SOURCE            = cmptest.h codecs2.c\ncodecs2_LDADD             = $(TESTS_LDADD)\n\ncodecs3_SOURCE            = cmptest.h codecs3.c\ncodecs3_LDADD             = $(TESTS_LDADD)\n\ncore_ed25519_SOURCE       = cmptest.h core_ed25519.c\ncore_ed25519_LDADD        = $(TESTS_LDADD)\n\ncore_ed25519_h2c_SOURCE   = cmptest.h core_ed25519_h2c.c\ncore_ed25519_h2c_LDADD    = $(TESTS_LDADD)\n\ncore_ristretto255_SOURCE  = cmptest.h core_ristretto255.c\ncore_ristretto255_LDADD   = $(TESTS_LDADD)\n\ncore_ristretto255_h2c_SOURCE  = cmptest.h core_ristretto255_h2c.c\ncore_ristretto255_h2c_LDADD   = $(TESTS_LDADD)\n\ncore1_SOURCE              = cmptest.h core1.c\ncore1_LDADD               = $(TESTS_LDADD)\n\ncore2_SOURCE              = cmptest.h core2.c\ncore2_LDADD               = $(TESTS_LDADD)\n\ncore3_SOURCE              = cmptest.h core3.c\ncore3_LDADD               = $(TESTS_LDADD)\n\ncore4_SOURCE              = cmptest.h core4.c\ncore4_LDADD               = $(TESTS_LDADD)\n\ncore5_SOURCE              = cmptest.h core5.c\ncore5_LDADD               = $(TESTS_LDADD)\n\ncore6_SOURCE              = cmptest.h core6.c\ncore6_LDADD               = $(TESTS_LDADD)\n\ncore_keccak1600_SOURCE    = cmptest.h core_keccak1600.c\ncore_keccak1600_LDADD     = $(TESTS_LDADD)\n\ned25519_convert_SOURCE    = cmptest.h ed25519_convert.c\ned25519_convert_LDADD     = $(TESTS_LDADD)\n\ngenerichash_SOURCE        = cmptest.h generichash.c\ngenerichash_LDADD         = $(TESTS_LDADD)\n\ngenerichash2_SOURCE       = cmptest.h generichash2.c\ngenerichash2_LDADD        = $(TESTS_LDADD)\n\ngenerichash3_SOURCE       = cmptest.h generichash3.c\ngenerichash3_LDADD        = $(TESTS_LDADD)\n\nhash_SOURCE               = cmptest.h hash.c\nhash_LDADD                = $(TESTS_LDADD)\n\nhash3_SOURCE              = cmptest.h hash3.c\nhash3_LDADD               = $(TESTS_LDADD)\n\nhash_sha3256_SOURCE       = cmptest.h hash_sha3256.c\nhash_sha3256_LDADD        = $(TESTS_LDADD)\n\nhash_sha3512_SOURCE       = cmptest.h hash_sha3512.c\nhash_sha3512_LDADD        = $(TESTS_LDADD)\n\nipcrypt_SOURCE            = cmptest.h ipcrypt.c\nipcrypt_LDADD             = $(TESTS_LDADD)\n\nkdf_SOURCE                = cmptest.h kdf.c\nkdf_LDADD                 = $(TESTS_LDADD)\n\nkdf_hkdf_SOURCE            = cmptest.h kdf_hkdf.c\nkdf_hkdf_LDADD             = $(TESTS_LDADD)\n\nkdf_hkdf2_SOURCE           = cmptest.h kdf_hkdf2.c\nkdf_hkdf2_LDADD            = $(TESTS_LDADD)\n\nkdf_hkdf3_SOURCE           = cmptest.h kdf_hkdf3.c\nkdf_hkdf3_LDADD            = $(TESTS_LDADD)\n\nkdf_hkdf4_SOURCE           = cmptest.h kdf_hkdf4.c\nkdf_hkdf4_LDADD            = $(TESTS_LDADD)\n\nkem_SOURCE                 = cmptest.h kem.c\nkem_LDADD                  = $(TESTS_LDADD)\n\nkem_mlkem768_SOURCE        = cmptest.h kem_mlkem768.c\nkem_mlkem768_LDADD         = $(TESTS_LDADD)\n\nkem_xwing_SOURCE           = cmptest.h kem_xwing.c\nkem_xwing_LDADD            = $(TESTS_LDADD)\n\nkeygen_SOURCE             = cmptest.h keygen.c\nkeygen_LDADD              = $(TESTS_LDADD)\n\nkx_SOURCE                 = cmptest.h kx.c\nkx_LDADD                  = $(TESTS_LDADD)\n\nmetamorphic_SOURCE        = cmptest.h metamorphic.c\nmetamorphic_LDADD         = $(TESTS_LDADD)\n\nmisuse_SOURCE             = cmptest.h misuse.c\nmisuse_LDADD              = $(TESTS_LDADD)\n\nonetimeauth_SOURCE        = cmptest.h onetimeauth.c\nonetimeauth_LDADD         = $(TESTS_LDADD)\n\nonetimeauth2_SOURCE       = cmptest.h onetimeauth2.c\nonetimeauth2_LDADD        = $(TESTS_LDADD)\n\nonetimeauth7_SOURCE       = cmptest.h onetimeauth7.c\nonetimeauth7_LDADD        = $(TESTS_LDADD)\n\npwhash_argon2i_SOURCE     = cmptest.h pwhash_argon2i.c\npwhash_argon2i_LDADD      = $(TESTS_LDADD)\n\npwhash_argon2id_SOURCE    = cmptest.h pwhash_argon2id.c\npwhash_argon2id_LDADD     = $(TESTS_LDADD)\n\npwhash_argon2id2_SOURCE   = cmptest.h pwhash_argon2id2.c\npwhash_argon2id2_LDADD    = $(TESTS_LDADD)\n\npwhash_scrypt_SOURCE      = cmptest.h pwhash_scrypt.c\npwhash_scrypt_LDADD       = $(TESTS_LDADD)\n\npwhash_scrypt_ll_SOURCE   = cmptest.h pwhash_scrypt_ll.c\npwhash_scrypt_ll_LDADD    = $(TESTS_LDADD)\n\nrandombytes_SOURCE        = cmptest.h randombytes.c\nrandombytes_LDADD         = $(TESTS_LDADD)\n\nscalarmult_SOURCE         = cmptest.h scalarmult.c\nscalarmult_LDADD          = $(TESTS_LDADD)\n\nscalarmult_ed25519_SOURCE = cmptest.h scalarmult_ed25519.c\nscalarmult_ed25519_LDADD  = $(TESTS_LDADD)\n\nscalarmult_ristretto255_SOURCE = cmptest.h scalarmult_ristretto255.c\nscalarmult_ristretto255_LDADD  = $(TESTS_LDADD)\n\nscalarmult2_SOURCE        = cmptest.h scalarmult2.c\nscalarmult2_LDADD         = $(TESTS_LDADD)\n\nscalarmult5_SOURCE        = cmptest.h scalarmult5.c\nscalarmult5_LDADD         = $(TESTS_LDADD)\n\nscalarmult6_SOURCE        = cmptest.h scalarmult6.c\nscalarmult6_LDADD         = $(TESTS_LDADD)\n\nscalarmult7_SOURCE        = cmptest.h scalarmult7.c\nscalarmult7_LDADD         = $(TESTS_LDADD)\n\nscalarmult8_SOURCE        = cmptest.h scalarmult8.c\nscalarmult8_LDADD         = $(TESTS_LDADD)\n\nsecretbox_SOURCE          = cmptest.h secretbox.c\nsecretbox_LDADD           = $(TESTS_LDADD)\n\nsecretbox2_SOURCE         = cmptest.h secretbox2.c\nsecretbox2_LDADD          = $(TESTS_LDADD)\n\nsecretbox7_SOURCE         = cmptest.h secretbox7.c\nsecretbox7_LDADD          = $(TESTS_LDADD)\n\nsecretbox8_SOURCE         = cmptest.h secretbox8.c\nsecretbox8_LDADD          = $(TESTS_LDADD)\n\nsecretbox_easy_SOURCE     = cmptest.h secretbox_easy.c\nsecretbox_easy_LDADD      = $(TESTS_LDADD)\n\nsecretbox_easy2_SOURCE    = cmptest.h secretbox_easy2.c\nsecretbox_easy2_LDADD     = $(TESTS_LDADD)\n\nsecretstream_xchacha20poly1305_SOURCE = cmptest.h secretstream_xchacha20poly1305.c\nsecretstream_xchacha20poly1305_LDADD  = $(TESTS_LDADD)\n\nshorthash_SOURCE          = cmptest.h shorthash.c\nshorthash_LDADD           = $(TESTS_LDADD)\n\nsign_SOURCE               = cmptest.h sign.c\nsign_LDADD                = $(TESTS_LDADD)\n\nsign2_SOURCE              = cmptest.h sign2.c\nsign2_LDADD               = $(TESTS_LDADD)\n\nsiphashx24_SOURCE         = cmptest.h siphashx24.c\nsiphashx24_LDADD          = $(TESTS_LDADD)\n\nsodium_core_SOURCE        = cmptest.h sodium_core.c\nsodium_core_LDADD         = $(TESTS_LDADD)\n\nsodium_utils_SOURCE       = cmptest.h sodium_utils.c\nsodium_utils_LDADD        = $(TESTS_LDADD)\n\nsodium_utils2_SOURCE      = cmptest.h sodium_utils2.c\nsodium_utils2_LDADD       = $(TESTS_LDADD)\n\nsodium_utils3_SOURCE      = cmptest.h sodium_utils3.c\nsodium_utils3_LDADD       = $(TESTS_LDADD)\n\nsodium_utils4_SOURCE      = cmptest.h sodium_utils4.c\nsodium_utils4_LDADD       = $(TESTS_LDADD)\n\nsodium_version_SOURCE     = cmptest.h sodium_version.c\nsodium_version_LDADD      = $(TESTS_LDADD)\n\nstream_SOURCE             = cmptest.h stream.c\nstream_LDADD              = $(TESTS_LDADD)\n\nstream2_SOURCE            = cmptest.h stream2.c\nstream2_LDADD             = $(TESTS_LDADD)\n\nstream3_SOURCE            = cmptest.h stream3.c\nstream3_LDADD             = $(TESTS_LDADD)\n\nstream4_SOURCE            = cmptest.h stream4.c\nstream4_LDADD             = $(TESTS_LDADD)\n\nstream5_SOURCE            = cmptest.h stream5.c\nstream5_LDADD             = $(TESTS_LDADD)\n\nstream6_SOURCE            = cmptest.h stream6.c\nstream6_LDADD             = $(TESTS_LDADD)\n\nverify1_SOURCE            = cmptest.h verify1.c\nverify1_LDADD             = $(TESTS_LDADD)\n\nxchacha20_SOURCE          = cmptest.h xchacha20.c\nxchacha20_LDADD           = $(TESTS_LDADD)\n\nxof_shake128_SOURCE       = cmptest.h xof_shake128.c\nxof_shake128_LDADD        = $(TESTS_LDADD)\n\nxof_shake256_SOURCE       = cmptest.h xof_shake256.c\nxof_shake256_LDADD        = $(TESTS_LDADD)\n\nxof_turboshake128_SOURCE  = cmptest.h xof_turboshake128.c\nxof_turboshake128_LDADD   = $(TESTS_LDADD)\n\nxof_turboshake256_SOURCE  = cmptest.h xof_turboshake256.c\nxof_turboshake256_LDADD   = $(TESTS_LDADD)\n\nxof2_SOURCE               = cmptest.h xof2.c\nxof2_LDADD                = $(TESTS_LDADD)\n\nif !MINIMAL\nTESTS_TARGETS += \\\n\tcore_ed25519 \\\n\tcore_ed25519_h2c \\\n\tcore_ristretto255 \\\n\tcore_ristretto255_h2c \\\n\tkdf_hkdf \\\n\tkdf_hkdf2 \\\n\tkdf_hkdf3 \\\n\tkdf_hkdf4 \\\n\tpwhash_scrypt \\\n\tstream5 \\\n\tstream6 \\\n\tpwhash_scrypt_ll \\\n\tscalarmult_ed25519 \\\n\tscalarmult_ristretto255 \\\n\tsiphashx24 \\\n\txchacha20\nendif\n\nif WASI\nLOG_COMPILER = ./wasi-test-wrapper.sh\nendif\n\nverify: check\n\n@VALGRIND_CHECK_RULES@\n"
  },
  {
    "path": "test/default/aead_aegis128l.c",
    "content": "#define TEST_NAME \"aead_aegis128l\"\n#include \"cmptest.h\"\n\nstatic struct {\n    const char *key_hex;\n    const char *nonce_hex;\n    const char *message_hex;\n    const char *ad_hex;\n    const char *ciphertext_hex;\n    const char *mac_hex;\n} tests[] = {\n    { \"54662e55bb4771f9711fe5301d7412fe\", \"e51d417ab10a2931d8d22a9fffb98e3a\",\n      \"04f672f8cdb3e71d032d52c064bc33ecf8aad3d40c41d5806cc306766c057c50b500af5c550d076d34cc3a74a2b4\"\n      \"bed195ffa3e8eddf953aefe9aed2bc14349c700ab7e4cb974fb31615a9ff70fb44307055523ab378b133fefc8830\"\n      \"13ce23bb01b23aeda15f85e65cdf02a291a0454900cb261872d5205737fd7410\",\n      \"3b762e3ab5d06cb2896b852ea70303f289f2775401b7808e30272f\",\n      \"d6736371f35eb067244dd7963ad2e0cd3949452cbd4c220be55082498ed3b230f579d78844311652a9958e82f172\"\n      \"bb8072c4b1114ec531a6ccb340ddd86caf32a0d4c9c45738e9ec9c0d9154612f7d90465f3a277bebd667c0af0edb\"\n      \"6935d8dffbdee96c1a96e4c4318f5d3bc90c1c8d5729e1a402f765bdc9b26b08\",\n      \"ee9595bb3f1b32000578ffb751b508655b3cae8fecaf44f40d740fa0347e283a\" },\n    { \"46a5c72e03d900b48f829df00ecb88b9\", \"b25187e4b77b6770c35c7a962584597d\",\n      \"fc8083311b38a80c04e57d069661b273264310906781eb7e4e44c6416f7336267674a44a7c54ed6361b43ef95005\"\n      \"14e5d9e71f8b5c33aece756b64f3ed011922facbec7c3ffd27d01a853435bde551372806bd0c\",\n      \"b73c81239e01cd81b0de13247ca4e3528b87f3078e2b674a667430b1dbdc3e93657131e654a4182b4c4ab01a33b3\"\n      \"6e946f1fcc55aab06fc6f56d\",\n      \"51189448af53ae3630c06a167ceefe6b9b5eba746fb9b53f4b3104d2b15b6020fa8998e182eb9c9d6b6463939e50\"\n      \"723780f983733206ae6f11b986d95abe83555e64f8d3242d7e8055fcb8e2df8e41d318f06728\",\n      \"caf8957f9ebc9a88469c04089962487a3c77040b82661616c5d5c83e974eae1e\" },\n    { \"e343d75de99e6d73543968437d3dcf6a\", \"317a5808ed5debf6f527a780e0896b2d\",\n      \"247045cb40dea9c514a885444c526ac867b1b80e4728a23b63f596\", \"323094c01e\",\n      \"18cb5d2fc5e27bdda5ba16f1320da42049759368548e5bd96f2dbc\",\n      \"5d3e88816daf20f11018456b58b2614050b93b222f03be079b39a9bb2de49f47\" },\n    { \"7db9c2721a03931c880f9e714bbf2211\", \"27f642398299ada7fdda1895ee4589f0\",\n      \"dc5180954df0c3391a60b44cbf70aee72b7dbb2addc90a0bf2ceac6113287eb501fe1ea9f4c51822664b82fe0279\"\n      \"b039f4\",\n      \"6dd5e43033fa6f021059a353edaf1f870387693054d0a2360fd1f6941a68f48ba972a1bc0816a446a6186e4a9a2f\"\n      \"9df556bf709470137b8e60d9daa2\",\n      \"c8a7d9131cebfa5388003cc30deac523aa9b09d148affff06ba40400e09ca900db770e07cedf5cd0647f6723c810\"\n      \"ffcb59\",\n      \"2c17a7022f6500450e86c8afdd60d3da535c2322fdf84f3dc67429e6ad92673f\" },\n    { \"bef8a47bbf0ffc4ab56ad5d9899f42b6\", \"3a2195a5196a0d785e04b38dd62f056d\",\n      \"5aa0dc37e4db1de35789398b25dc656d05cdc6737de4e30ce944b304ec752bbd10ebfa51feff99dfcfe26b8526cc\"\n      \"9b0cf1ba3d1685fb26cfc0c8888fd3cdf55577a516328b289eebda2e14f15eeb1d0f4207efebe3803618d43d9968\"\n      \"8e6c\",\n      \"a4a290a0d719b1aaf58f24152402b2f36957f44ea8a2d76b045390f5e0a3559a8ec5b2f871fc6095152183b7be75\"\n      \"65d4953b593f854b8477e29ce0cdddce5cf8739ab56288c26c81921f1fbae38b90b287b4622ca8b5b6c0b4b02196\"\n      \"e73ee56af6ae427ca7ae3ca0\",\n      \"0ead975179d64f2b927440bf9ef666ab921e7a3b0832949f31315c2931451c5ddf810c17ad0330073922c07a18eb\"\n      \"665aca01c05de58f7d159a74884f9d90cc10dc8c017ab61b820fc3dd32be52f3f7265e3a7a912a230b2a7ed19992\"\n      \"e693\",\n      \"f61ace25382fc3f88ec63eab23a6f9f6d1be65d149428bbb778a77428f909863\" },\n    { \"01f1cea5b7e20db64a67502bb4715033\", \"7336701bbc2d766167b57c452d010f02\",\n      \"b3669d31ef8040dd6f462624977d69cfd1869fb19946595759b7265eb98b51f579fddce4bd38452fe3\",\n      \"d007e9ce654ec9a8b44e3655dcac889176fbf8012b133c4effe70b716eff43264d67d84a3d8504858c01002957ca\"\n      \"c6eb75d94635fb708343a18e20615e4ecb963bd98a8e7bee66520fba5c2991541c1e7863c1c97ae7ba6c3c34f116\"\n      \"1518097b6e75dcfb3aa3e93995eb39\",\n      \"4e643f7a1b8c0d595c8ff2b00c0145deb5bfa13d8a1b75d7a731f2258b690e1a3b2ce2cbacc6d05c42\",\n      \"8f33c6494f971462bcf82a508f341905b8febf9a9d25363ce853d59230d5e60b\" },\n    { \"76d53860e1c45cf60d76d8336948e337\", \"579c0f0993f13470fa301cd4c6fbe99a\",\n      \"d0f5d2b3b824fe01ca36d00d47434519b2112195093a06d9d07d7f4f9c5b8f2a4c68668265c40d6edd6e12b5a350\"\n      \"e4af11f1ee6226bf307a1a6c25318c0d3aa0421edf565ad42d524f69d0fef06c236c1f0d0e50261e205f381c3e11\"\n      \"96dd8827b9990d674288f8250596\",\n      \"a7a77cc847afdfb9dc8ceccc621462302f31233a830b3827ca68618e604c95ba8615f6ebb5ff1c2c66727e70c038\"\n      \"554619f96f79d08902fc70111f853766a2db04e51d\",\n      \"def4fcb75110820298f08a8a4941434deccb952dec01215f5e7f5a2509fcb9e2a994a77d5eaa617da9cf2f03483f\"\n      \"aff5831506e5617707b88e08195b6a993219898c3ead769ebaa002934d3c80023833d7ce4a7a989596de6fe78eb0\"\n      \"237e8caab0a9fcd2625af80caad6\",\n      \"a4a60bf81cb2ce55df3c5864eac4c93d7748010a1adb6e5110d389e0501d7004\" },\n    { \"cd05e08e14686623fd334780439c4ae3\", \"d05ba5a655bf7b1be7500f205c9c80b9\",\n      \"021c20518825c167a746a728578a0f470b2035c7b39c75f3e492bcc2e6e96035c4fff65dfbfa93cbc7a37828a0cd\"\n      \"62bf1b20b3bb89425ae647e021cde586f652eb98c98b1ac1018c6fe3e046f41545bbfdbf94dca48e465aaed8efb7\"\n      \"eab5ea143e5b95b72a078f8fb58d8ecfdd9a3a968e2468b6\",\n      \"be9255f750498ce672c877285e649318bd5bf07cdc5902b7de61a8415b6fbf20b1e432ebc9f8f9c8e3094ff6dffd\"\n      \"1b1e0c3cc5\",\n      \"faa851ddfe54b01cf1a3caf34815c6db0145ddebd1f34ca9edd479bd4a3bb4bac21c2b5d365ff4d389a764bcc143\"\n      \"6e51267ed3e4f225b7cda1fbf25d221d91b59aed0b4d20f71859f41e85e15a02e2bcd59913d8ae019d1f01ede317\"\n      \"b4ff94ed2b05650259a705c3b2be2c2a9c82a4809dab7b03\",\n      \"83b60061bc457578effce5462091e0a2b1f8ee35dbdb6a6b17e4e6179df6eb18\" },\n    { \"6870a5652199e2f17407185bd7cf18eb\", \"942988922482351c317244b26587c560\",\n      \"49b2f6765f7f552f8704671271d703b3b02157f71ed84e64481be8bbd4f3493bfd3f313ac62ba4e9a7d86288533a\"\n      \"7bc7a4257cad5db04bb80d6574e473519eccd15cd2\",\n      \"6cc34a81ee984b436947b31574473e0a849a341db0ebc67f64efb39c9e118f65cfb25d1d898b4ee8052f700cb43c\"\n      \"be744d70b71d2086a89ad12dd67feceacb092a861ba80e41808c625fbdce017d51916e1fb5b38b0beebb27478d83\"\n      \"90ec79b3f3902a4ac22d79\",\n      \"82d3ae3aea3870e40fa48da698adcb596eb43fb063866f6231bb744b687e32e72117a03da08a635e4ed0f255f28f\"\n      \"3db6f0b8a7238d0244994a507fe75ddd17138b0605\",\n      \"a3feae07a737428751dc2c92301bc012b0d5c9c41a7543d248d6213a90343565\" },\n    { \"15a87aee858f5723beb477b2cc039d14\", \"6ce71c763784e59fba852ae39b25de3a\",\n      \"25d1d38a8e9e8c34564abbfcba69035ce2f78df8626543e7639f2f23d742853e34880e7bc6d684ed3075abdfb91e\"\n      \"36076242dc53d60513333f59d139e680aa246b0e7e6092e8d4e6ab471459068c2a83b07e8b7969c911e3bff7558c\"\n      \"af02b3f3e6de7ae9122d533558868d993b8242b2328834a88cd656a941\",\n      \"26fde5885fd22bdcba8b5c1b5f66d09c7da7bfef2790e6dd2a98a351056044495fe4\",\n      \"2e241f3f96e8bde7d2b5cfad94461d6c7282405c77918a2a8731711175211814e20e72ce01139643f58a2336c05c\"\n      \"c27458f042ff063bc73fbee2ca8c099ff1f3fbe8517fce6cd3d54567220218cc67b4ef52767f75fe514e8ec49013\"\n      \"d9fa787685a5a81efe550248f342eaade9cd61fb5037634f2bf621c944\",\n      \"694a5b5ae2081becf4d38b2958d3557438b9f04dbefbe649baa91924e17e4d88\" },\n    { \"23e2250df6b870b6eebbce928cd1a80f\", \"279f73beda18846d7170c29414590029\",\n      \"9cdd4e34495b4a03ca2c5bef9074c1\",\n      \"f306eb122b1907b4b6bccc77984ea7be4a28f9ca3615135d4c84ad74d7469efefbbff997bb495806a3d9ab274b42\"\n      \"28cb894fceeb24c4905e121efbd3ce8be668dfee4f9e38584ba6c3374337d3c884cdaddcd96f63df225ddc879e0b\"\n      \"a4bce0125dd0\",\n      \"8821c6d2c36ae97bef1b9d78c1afba\",\n      \"155b5b0c92176ed1a2248bc86b04570620e97a2a601a3d730d53236f43696c28\" },\n    { \"82f02cd289d07f40acf9a1d2b1cf7f06\", \"09162f09c3893bd2c5e4f2c8f6ec9930\",\n      \"29f1d0e8aef96c9936eb5bcb32b0f751b25a7a46d4cc5a33d5f96dcaea757b2b\",\n      \"4ccb0ba7f1b2eecbe3dc3ba47f797201ca656ab04e5b38df9b95ef24ba02a5ef04a9a8122f954048581d275e\",\n      \"6b8f329fa3e905b7c0df490f18a13ab3b6be6701cba59a1ee7c12d054c500e58\",\n      \"8c97a1010a25a9e9047d4dded0235450f488d3c18b460316e5ef5517edc82e3b\" },\n    { \"a28c7a79d3d7d7b372c5cb4eb66201ba\", \"3c27d1ca6e8fd19cbf2dbd81c87d2ac0\",\n      \"0ff33640432edcf34a2df2527ca13a0340d5adcae1d10589edbc89701f5093efeaf6d7d3f97a778052a76a6efe7b\"\n      \"37021a4fbc8205f26f17dbd0c68b60c6403c4160985255aeac23c3bc88b1d8c11fd4197ba366962c\",\n      \"96bec6c8014708e9142a8ea0fd496f89f5a2414f4296ae0a185b13f362f2\",\n      \"f20be34587afaa4300683655ea16a292bfc7f2779cb771e520c6b0952e41a2b89e45f6c4b571779d573f1383b5e3\"\n      \"11f71ca89379b8a3eb9d9cde72b16e0f782058e9bb4df4731cbd7c67af1c459061ccff149da3bcdc\",\n      \"d9dd91cdfc19da4a95fca7229f296a74aafc0d78b2b398e7dc089cfc6309d281\" },\n    { \"24d66092958836e491cf974f34ee7ca9\", \"1c04e8166ef37a2a5d34b4462a7ca8bd\",\n      \"01a77fb558d8d94c16eccc82b49f53823597272de8e6df070fefd202042665ef5788bab86c70dc3e571e3b372654\"\n      \"494e552ef00462bf0f7fdeca8efbaa51f3da63e6f18fd13a4668b7fb1a89464a09a17d9ce709b0b8f079d6bf93ed\"\n      \"4871c0\",\n      \"3c082dae68ee1cd6b8d1ef79593132e68e373eec746d13583f28d42730bfa18ed77ee83ad6c3db24bcda6d5e2925\"\n      \"970dc01d1968b744cf3753e597ef831dcab728ce66ef3da0ab872cb0dedf77922a57abfb\",\n      \"47ec41abfe34c4ece7ff8f3ba179238f38f3e527d97d7f3f6ada79a9609e715cd0acec31f0a0df25c7ac0bb894fe\"\n      \"791cc467a098710e92af75a14e68d9241c160d4587f7da279deaa9cc9d9c5a6e97b231021ab2ba9c63473cf269ef\"\n      \"294d1b\",\n      \"807d350484ead90c1470efc0c6e334999b204444034151c3b80961faa4b821d3\" },\n    { \"78f67aada609c94a7c79f2fe9bf9c82e\", \"9ad46b00946c799b17b683ed3d920896\",\n      \"3fc884334f762cede042a56b4a89ad9eaf474459371f2daf7c157a352cd5ae6d45662593bd3eaba7bf59ed569429\"\n      \"c52153599f02e3263b2784be00e52e30d0347553fe8aa70a071c3f2e34593d1e78692f9a194800571eaaeedcf297\"\n      \"0784426959e0\",\n      \"80bb105971fd223f89efae15ae1b5e252c7e1c761b6abd5509d8354adbbb5007928763e715aad67b2109ac60afc7\"\n      \"3e386a75084c77a5af1021ddb4bc636c32a70ee95c6ef5eea9cba0d1c944754f328208ff78f7b0718899bacdf5d6\"\n      \"e603e1b098acbffc83a86a0e122078338e0bd5\",\n      \"325ce1b0bb065488f9f74f779bdc433da58412b3834005b4661491e7d9d6c2a371560ca7d649093a7ab2475548ed\"\n      \"b37b425c23f75eb1bf79b972714469174fc85665dbe2af774719d803c2426f067ae68da1ae0783ae376970055cc2\"\n      \"8d484ecae2e3\",\n      \"5f755de0d9a033967a9d23e3357332ad9640983fc121cc9104c8e79b37a9ea6d\" },\n    { \"ba4c7e6a36e4684631fa5ede07b678cf\", \"ed722d3769b33d82626ce89bb4d212d9\",\n      \"ae106ad8029d73ff984de16db70772ca9adec5f2bffb1d92e12412b6f76f855463f47f1739d6e9a1fab5a9b7ff3e\"\n      \"ad419efd7fd7b31a0c5b9b992aa8d0ad754cb5ba371adfc60a5cdbcae37c4653b9cf5f46b015d31a03e10e288256\"\n      \"7d2c44255c30f1\",\n      \"1955a221ff4b3f271876a4bc04cfb41449881f6ff3a7e9aacaa1e992a5218af3294027709c1ec594bf863000ddb7\"\n      \"d561ca4c3f42340ee932e71eb8efd1b7dbd19f6ef0de28d437355b2b4cd1527cee849a315fc9a35ecb6e458e4af4\"\n      \"df07a9e108a0\",\n      \"aa24653b20af5925a19e486d0b28e3bafdb240aa984c8b365792443a5411c8385c8197d0a13f1a8a7686c02cc0f7\"\n      \"adbe1230736362afeb3c0ada988dec6d35fd298768866f64aac8dd560250e27bb1007a3fd4c312a8ce3af4af9ed2\"\n      \"7d5859ae56a3ac\",\n      \"b06f562123bfc9c4e36e2299da0d6987c2c191c2486ac2ff9e2baa156ce6cb81\" },\n    { \"639668e0b0fbb192b83f870048d29c1c\", \"48ed7de6da13ba38a1e748eb9ea57529\", \"1ceca7\",\n      \"604b7b904ba56e1f2d17556236150e5bd19ba125f92e9adef0f75b38356fc9a1851ba34105805cae7e99dc7bdcf8\"\n      \"744c44f06e709c345cadcffde348d2d55c5c36cf5ee1f288509e7a878dc00daa3d9593afafd7a0d94fa78960b3ca\"\n      \"9fdb2b7d5746d1f4702080fadaf0cd6785373a16ceed056641aa4afe725e\",\n      \"0f5286\", \"b6b24c01ae14d452da68d75693fe772340ee1310d329281370c6c54231372be2\" },\n    { \"94b94725497880ff10d89572b62d1029\", \"bbdb56d8112d298fd5686b93787e0011\",\n      \"f062bbe085b5f49ae4064f9ffd\", \"de189cbb1821775cb97888f25d4781ddb82d4664634f41\",\n      \"d317f2a31eaa3f23e84fc3eaa9\",\n      \"5098967201169e8ab8242b8e09322165127ef2155795f62fc1e55e6a72363fac\" },\n    { \"8e6f1217eaf84aee8e5897f5860f184c\", \"a4e099068ad0b67f28b6902a40921dca\",\n      \"53c939f8d167e49980f8fd3ccc4a2ae3\",\n      \"4bb7fccecf15f0b32be37860507fc53812713194e2844855894ef916abbf9b5d\",\n      \"92e47292a4f02cc22d3392d1b6a089ce\",\n      \"a3eb3e03808499409b00f0bb635c6fbf12062469edb45f5bb252c08748e131ed\" },\n    { \"6968acc00e83184e6024167672c5df8a\", \"2d5b193c93e8aa5302fb5bb20cd59504\", \"bd6b6830\",\n      \"7f4e725f4b0f84454e823b8193f1d8b39d78a8b12f1a2250beb0def895dd0aef8960652c071a82d9ad89910d9728\"\n      \"7e72848fba1623f441d4955a019f5c1a955b054db858722b1f15210c3a752fdbd2bd631620cc56c2c30d78ccb162\"\n      \"72eeeea1\",\n      \"c01c9b02\", \"9910104c7d6d91e99c167d027c4190701a21c2fcadc9874b1744cfda7b75b8c6\" },\n    { \"1e7e0ef737799bb1e00ccd4e31da5ff9\", \"9d1111da7d3d329ab5d824404e4bdd60\",\n      \"76cbec797c2364c6ed70901db527c6a3471a84f8d297c64c9dbffd7c3204503ca6e51c8c88757500ed503ba86d73\"\n      \"67baf6b9f3f5f2b69308bef97232e67698ae10896ed70a66a7c40115770f3192b9168f66a359270c753bfffc5496\"\n      \"58fc7aba3d3943221e125a6f88e025cc024b753693\",\n      \"7e6c97d0fee9f249c7510c2a0abf9530ac49cecfffe2ae37c9d38ba60cd012d3e00b696ee54591\",\n      \"b04070df9cc5d032d1914eb69f9afeda61559ed98c7e5fbeb81930b242cd30cf097e4130b0cc45b3e3178ba5ff25\"\n      \"98493e1d1fe22fd14f3cc2de08fd8cbb3539d4c71c606adb7826c2a9e05ac36a6795293cdfab6d07fcfdedac099f\"\n      \"1ab9bfec63a32f7633e424e684ca8744b4ad2288ed\",\n      \"a0b933e1a706046c38967971e50c0ce9ececaabd188092313c654e9f297cf18a\" },\n    { \"6dbf15415dae57093e6774f4a1b7e4d8\", \"bba38b490d740d7b3df0c9283d4a530c\",\n      \"fafe1562e69a0f5149e0ee65d14b42098a8a53a58d2cf07fd86f6c64cc4e67d9b5cf3655b5ed7f722d2073a3e9cc\"\n      \"8372efd9620a32d6443a328436dd5ae394700ddc171bef8cb0674b1fab87b3e93aa426aee92c7ff733c33f9e4e49\"\n      \"f614043a7fb42cf657e4e3c2\",\n      \"c742a929d2a766dde0fb0ce2d0faf790bd6c5feb63cb3126402aac7ef7c9ddfd408cd22bc6928a9b67426e20c3d9\"\n      \"b340cd7231f87ffbc29a8e6c23602b9dc434f5ab06bb8c049803b45cf088b919e8584091ecfca7259e0d130ddf4c\"\n      \"a45d44291024446f58f1271f\",\n      \"d8dda53eeb8b375930698379836e64014c22bd885b5b5cafb4dc65ed00aa947acb2792c46dfed8ecd155b21cfc98\"\n      \"ff163b403e3a9961805436678fd34942354094bc47663165341ed0b949c0ecb4da5499c1c8c87eab99ddfd0fc2d8\"\n      \"0a9a520461e3dc402c3d4b4f\",\n      \"f8e4c1f827d4c5dbe00e7794effc567089b8128a5b11e3c6c2e5e36414b4618a\" },\n    { \"a6d38f5cebee041a0afe035caad48443\", \"cb7e7813c7018b25782f77e0ae7c84c7\",\n      \"6ef6c5d92f3acf78b3e2c8334038f364a51193e4e559b1458dd74c44269e69a7a6af22f531680c63270b22ee7154\"\n      \"7d72abc9b87bc5639a1b3a13f8613ad4d1742e8209ab\",\n      \"d536bed277bbb5a9\",\n      \"457fff7d0e1b61def59fbe99e81c08bc370bcac0240c9cec6d6a0de2c37f9950f5b2d12b8b21126af18d757c743a\"\n      \"2a9bf451ebcba235f9f48c31a63674f0e8a1c5af5094\",\n      \"269ee12821b981d794399bb759d233db2d60c1dcbc3a9a87dbb068551b032f1d\" },\n    { \"753eb1d49c102d1e3a9bcfbcb1cfa369\", \"0e0cc4395844d363ceccc8a07a92a2d8\",\n      \"5166ac0bdba2b660af164fc847e4ad300675cda9f0acda47567f7952eea7084832f6dbfa0aae9f403a5bbbe307ad\"\n      \"40845cb08347588063ad3f1df766790c023f160ce21bdf372fb48e0f7e2ced50cb3f86c2fb257ad7863fadc5fe69\"\n      \"92bf1c4508308b259480007a628aacee94c258c91cd847f3d05251dadb96\",\n      \"5f590a65034eba433e57a9d089b2924f5f8482db6a467ea435478afc\",\n      \"f2fa7ed4fccf0388b7bb291977d2214d03dd30c4f81bab2df8f2c1cfaa46ff2fd14733cd7b8fefb6dd020ecab3eb\"\n      \"478d1fe0b849e057512fe7b897b171771a2b68d7fe6d9b70dcfbb6307dacba5409b7fdafc49752e4392111474388\"\n      \"afb6d79ed21a60c59234bafad676f88f7653765b4dc758c9fd930b2632a0\",\n      \"352c935b482696f9a4f40de117ac4efe5c38952c8a45e23242a86c66e79f7f4d\" },\n    { \"711a437629429db2e14058e2a826dcbf\", \"eb036d6e483a212ff6ee25d970fe1ac3\",\n      \"29937c0efb36ed27fe7709d7179b4f38a2fc191b5e8d9616b58f6dc9ba2ab74e13bbdcd233e8726d90f7ded06c38\"\n      \"61582f27158732f997df9091446befe75855ab05b348d68f96e45445f44c31e9ba3e4d7be96d9c8e806535e79079\"\n      \"139c71fcc599fea8701e0c2edf606986eff1535afdfa51d1be2dfdee\",\n      \"\",\n      \"4a61f5d6b8e746bf6fb49ca2b16c22f4e9ffcdc89a3137b39bf5445fb6b989d5200f0c8d5538891a5e8979b5cd8c\"\n      \"734128b4e4ad98b0cd598c40ec9be74725dbca84c65a52f17ac983330b0b74e4193540f6357c3bcde4e8d8fc6942\"\n      \"314ba68115bf2a682756e3c42008803a81532708a0e7b5e3b8436145\",\n      \"4af113e2b6165247c2760ab445c6985306c81fb9ccebb8df0e57b0b044c52736\" },\n    { \"a26d6028473bf7de23851d00d514455b\", \"05b87c16ebee8bb62365d265ac6818a2\",\n      \"baeef99e6d4d15be9ff68a5d94aee7afa3d898cf42f94ad572b089659708658534d198dd3fba47a48611e8d78da\"\n      \"d\",\n      \"5d77dd8066d3cea3b0762602ba6ae3d1ae1c27d1ebe70bfcdc068912def545362a5bd2\",\n      \"e4365eac2e7b5d02e7fc6c110895bcf193a0ebe28e81d0f6128a95e3e9183582ebb964d666972bd7fff8cd3870c\"\n      \"a\",\n      \"515045f7ad90ab569a6c8b90808d64346334e71d03db18d07d19f40b2b94fc7d\" },\n    { \"9bb0e363275374f1771ababb7b96851c\", \"08cf3a6355ffbe621ea874e917729d4e\",\n      \"b380355f794d31e6e85fc81a49fdc2af2104471609692f94c994a710be5cabdc9c9a61b94fc3f76927c1cd5c9a53\"\n      \"55a0e8ec55a69ef114b3963ec95137b9ff84240c2a71d3b3459056d1a183eae21cc5a7c109e937faf8f61b6232fa\"\n      \"30951f030047d7555b60f85a318833afcea80ee4d88a98\",\n      \"a7fc199cb07b6e5e498dbe590af4a4d95d35b043a97d52e11cc1092c70250112e070e49fcb8a3e7bbfca3d0c4467\"\n      \"ba332c0dad277a997f2a603fd2d016979c24b3870a\",\n      \"f8ec2722a9aa97d0cab77f7833e6bddc9570bb79a159feec2dac9d2366e7eabeb9d74ab53a846fd8ad052a740dba\"\n      \"39801b681e4da903939387ac3578eec4547dc97c43a8824db11cdae4e7ca8330c9a2d4249853a7285c54498e59d6\"\n      \"45546a5bb5858b8ddfe37a14242d9750b02ccb41b92bbf\",\n      \"1f6822430a2fea84595ad870c833951814a0792cce0cd414bf9f744bfa7c9f72\" },\n    { \"7458fcb1fa1a886924a044eccab9c5b2\", \"30565643aa9bae844b87bd459628d093\",\n      \"4227dc17d3e0ec8363c84b989f72d235d3991e57ebe8a6fcbcab1053edf3b323cbf5f5f45aa142494ab0afe78c\",\n      \"d07afef73f3cabbed475b69fa30aac8af674b74448cfd4d6ecb0c5c1b5b58d0c7173eaee440be65715d780d61d34\"\n      \"6dede7c52724bd76207ada9a3707c1326dffefd04fb29321db617d12b4a607452a5b197460bc524a40672628e5b9\"\n      \"d45f821a5b\",\n      \"50c568868de4b49df40d33e6b25abd6b2dfd2f22bdc12a18ee2407dfe82cd3bfa2fc344c91ba6544e079446073\",\n      \"5d9f885ee5dafd1ef4a2d0a951941f1d03acf8adc3652ec34e5b6ca4bf7ed18b\" },\n    { \"68df4e697e83c55c822bb3637bb52d54\", \"1b0df23e69aa907856ccb9ca4d6c51b5\",\n      \"59242d6e2d7e612d2aee7e8c08f53f172e0f93d57b0c08e7cffda90da5b2703eed8192511f6f1bd59e9ae781b4f1\"\n      \"156ae06ec38b5bc1f5dddefee49f561d692f832030f7a1b506c0ebe26447b3eab68172e7e7810b13d425f6c78e1d\"\n      \"6591cb4a24a61c5f9554a083283485175c18cf5df4ecf2f87c98615de9ccb3\",\n      \"fe9643236be4e7aa3998f44b4336a4c1f8fec28e17\",\n      \"46e15eda413037249e584ea1e3007166d70bf9c998ca2a8386bdb8efde70f3bd35a9b0877e333451f7789f4d8b4e\"\n      \"797170445eef5f818bd321574e66b7881cdb546eb5528dce75cdd1683e715b2ac7ad259954bca62d8f0f0066fa6a\"\n      \"df50f9e13dbe3ca1e503957cb5f8a2dfce0ca7377ca51989e3d8e5275893ab\",\n      \"6afa564c9f5a650cdd7284589134c6c1379fb798af9330bec354ab1221539e86\" },\n    { \"a4b06bbf87393d2b921dcba697274f07\", \"5c14d51c52d95ac040e1060a0ffa21eb\",\n      \"8c85ddd8d3f446608e656052062f0cd58e6d58\",\n      \"847d3b95895426225d08865cc9a329f6f14e63bc5a66fb6f2a05bf8eb9bc8166e6fef29e1d573acdb4c3bc699dae\"\n      \"adff7df5d6e8dbe2ef713008afcf9b6e97ce6cab4d90594fa4430ecba5bb62a7938f03d57869\",\n      \"cf6c47fec422ee29226b6cbc5092bf670b5434\",\n      \"0d57758c68a9524557fd6f6742d24a00467846456a5bbb1271e2a5e8c3ccbea3\" },\n    { \"50034800a878a3e570364540fc862b77\", \"bc92f50c2630f7fe354399fa9a6fc48f\",\n      \"23a93e636d1924a60f3461de1020b73ba18fc3854c9dc9f166d7d4d1912503bdf1\",\n      \"23d5009057b76a00d92db6b280a3a30ba08ba3afec6312197f06ee01dc4a22d73ea010e02b65af7968d8977f9762\"\n      \"ff5a6dde278d8b351d3b8efb32cf7cc8a70a7a8b3d79\",\n      \"2cf9f00b66c63518354ea59510c178d75499866218eb5a031a0dc4d743ac8c05c9\",\n      \"7681550d340ca003acb18bde30e7a26b23022f9e71dc0d7801ea6e9e569784f3\" },\n    { \"d68448b73ae9bd161c9f1f36dbf6163d\", \"3345d820331958c63dd7a129d3ea0de1\",\n      \"ffa236070dc5b464eb034a9332041a014cd7852b498be2dc498dcdab4151d71f47c7a6b17a176c5999a7574fab5f\"\n      \"f469cd02226492a38693eb2296a4a7cc2857b28b5b61\",\n      \"c790bb04036883e6e4a6912a9b0afc36607e12b0d457d4b5f6c120cf0c009caa087fc2710439\",\n      \"1474d60067d082706bb0cd823b22582ddc0fd68412ea0e399b03988e616ac5ca0a7a8da6e6fe29292b57046c289a\"\n      \"d8a52360ecd19655bb801c6eaa2ccd66ccb14c4c3748\",\n      \"a1d80340487279787a1dcfd1082fe04d557c072f9b558cc78c956c1b06a0683b\" },\n    { \"519fee7049473c7c41f3bcf7b2f63a69\", \"be227d2bb97f2eef62d5fd9203cb63a9\",\n      \"0c121fbcfb4f4f8f150281140e49d71dc5ed82ac4a30263a6b2d92c55ac6fe4f43f64c0f526d3df642c04a5c51e5\"\n      \"8703c381701b1f4618cf66e27c60dd5e6558b48028d5fb11339c4f2547a3aefd8100\",\n      \"9ebb3c33eda54164b54bf95d4fbe113333edb0fdd62c24532fbd4cb91b11e08b1e74487dbb0f3daaa08c566e759d\"\n      \"53ea3974cc3685ec460e608f7d01fd2dc23d9bc283c73ab492bc9fa2ff458d268667504cd47e585826\",\n      \"c0e22cc3aa610bda350a2ebe8f530c05cafa19e7060b064c276a06f0bb430b79839c51e6b22aabf429616480382c\"\n      \"86f8c04ea397c976bb08caf8f35c38208e476787ce229a7a300c5411471548b15d9a\",\n      \"7891d41aa7d6f935761dc0454a7919d511f629fdc3f38f4932eb0148d870a24f\" },\n    { \"58bd2c73aedb31baca592e42d614c68a\", \"bbf76585731b6334fd314e771d9e404f\",\n      \"d238c5f0677c86c001e66691ea9eb8aee429fc490d38abccfed3a546b5f05398288e7232880fa3d485fe3862c546\"\n      \"9f980d9ff4caced1cbbe7f97adc15b6919876b8cbdd35320a20eda8a1ad6e853164b0e0ffb2f702e1d6a0eae8b27\"\n      \"577bdd4e5a17e6d8\",\n      \"86147d2debc30111b82c1ccc41a13dab1aff144bf2810695a40d02bdeaf519669a1b81864edf\",\n      \"94fccab0dce48d5aaf42ef59764cba95b42410e2d6b2c87c95d8dbc15421c45d7a556e25296df9167cd46def7d10\"\n      \"602aeebd0e7e909c52ab7a22f833e976fb76b9b39b1c2889587582d44ad8f484f0382804d7481f1a8d6c903b1319\"\n      \"0c213102ae273378\",\n      \"67a012ae5452dc293645179c0fbe23d2f79ecf435e4fa09208ddf8bbd8bf8b37\" },\n    { \"a27d07b0976574c43edba5619b3c1f27\", \"879f4114bf61f1d7b487bcdff6c90778\",\n      \"302994dba80c2268f5b1c77bfad0b780a9be6437a07dcf1fee61e8e72f7fd3ceac24a01be486a2eddc901a19a0f1\"\n      \"0eaa94cf46b604f98a90c0f62fa6476d27a338bd046fffc26570\",\n      \"b97a43027c5dcb8a95\",\n      \"633c76783dcb88ff677a6f567685ada02d787eb9aa3a527a45fd415180f1fc19cfddcb90583621c2609558703c7c\"\n      \"5ed548650c98e591fac7a692b1f921284ebd8b86d3a1f26f1ad2\",\n      \"1f54a298784b2ad47bdbe5c982b51b2eb5f8c96bc4b46a57dd703dbd7e1b199a\" },\n    { \"d55658dd1f27af02885d0f431fb2ebb2\", \"0aba0b9dfc9831aef0203bc61a601176\",\n      \"05805491b667d9ff38147d96493db29441e188243f72668c7ba61b\",\n      \"df403489e3bb67eeae8440569f6fbc1ae072305f5047c5105a7e4e5349d3732d75572298253f60e3821c721941c0\"\n      \"2dd761edfb081d09b3c7528a0e786a6fcbab709727e7d614ecc604def19c78fe061040bd636d842b16e96158db07\"\n      \"d6c2521ad54778acc78f12b450db0474ef700dfd547f9c5b\",\n      \"2e8adbea0e9ef5068fc3abb39ccef59616420d4fa038e2f35b560c\",\n      \"d1f27edf1046f8ad30e9900c43a317744dadc934e6ceeb63184e0663ba80df77\" },\n    { \"adff46e4d7d78b3db5c74c712534db37\", \"c54185637dd281ebf672393cf9bad28f\",\n      \"b3850ad942e221753e4bf30140eb5569cfd9972246b9a6a35f7a8512db333aec59d380973d6a6505d99cb004dd47\"\n      \"b33e32f4f238b1342e6756d3619414c31bde45\",\n      \"59bc7a834189b930c8cbff769ef63b5e1a08c352ed779853b36bcd3d0ca7b4e35bd6cdaf2538ebf0e3a0d7cbcf3b\"\n      \"cd2b66b910967c226a1da42f84c4a8f81e19161c6593e2c0a0fdddd3c6ab3a864037fbf976e8aebd33d4450be989\"\n      \"3da2e37e728916b663944e3fa6ba543d1010\",\n      \"5cc93a30fd8f71befd87fc50112c156b53abfc97466f36e3315915a7d4147f0b3641177b9d08ec13e7315957d078\"\n      \"ec73eb0a93a3b7a51e3db63a396e6ea2adfba7\",\n      \"9c14e5bcf26a00fa0bb04256cc32736d0f2300ea93a51f8e4ba69d15ff11121a\" },\n    { \"4a5d7c201ddae018edc9783413dd0329\", \"eb7e038948d3bf61d2cd29d2fe722603\",\n      \"3e6a17d47db58690b895619128645a2782d17e9a3735c1450a7c8e13a9f212208fcf256f\",\n      \"65b8cebd83d3197118fe81dddce22b3947653e04a48d05b4a2dbc42a89e62b0d6b61d5f31487af\",\n      \"a1a858d13540281e1d0a9a82e3caef64ff742e51b1f7476d318729508a68840b371fd300\",\n      \"62b25795c2cfc4d7f8c1058256ed2d0e73374f8e33a106319a67778387150217\" },\n    { \"83190fd90c68cf63648dbc5daa442e3e\", \"3c3683fb5d3f1446f8c0d0127fc59d5f\",\n      \"a5136deb0a795dccc18889c23e9bb21640864981a4ecd903e8fb62\",\n      \"13066ef4f97501fe1854da6e2d57ed43e4c074ad45b7218536e7dd8368a4ee8c6f2b63199fc0a9a679e2b198bd3a\"\n      \"43e6e8bbd6\",\n      \"0c8cc3bde1f4933729293718686301b1ce50f5e7521655016f8432\",\n      \"cbfa761976091ca1ffaadb4278f141f83bd6b5270f78cbcdf61018a744ae2fe4\" },\n    { \"05bed4c00afcb8ecacda8daba02585a1\", \"ed014d4e9eb504c70d5d3153473dc146\",\n      \"6fab5ff04c5a74a0a96948501de9167597a42fde4c50ab27719dd1e2b0e0fc0fe6e48e97c79d2a71fcb5e7ef60c6\"\n      \"7a32bf865decb39bf5ac17969177b2fac849a38e08bbaa3be0d6dcee9ff685ba97e9b54514624d51c270065508c0\"\n      \"3e96f28667e3c79f6a68859a85048301779da7e2254b1bd1662ae3ea15e0332c\",\n      \"ebb614315ba4b7d69632656d5a4d2810112862ea3e443148100bf2e89d059bc9e2d9563bf34b823c57108ca9a88e\"\n      \"4b07441f0ceca4713e2af56f40f35d6f2223d37e9eeb61739a65933712763104a67488d2022a5e033e240969a4d3\"\n      \"3966b4527035eef0970c69660ab3ee5c00ac815a9ee52d767b0a937b\",\n      \"6edcebf7ac2cd10be8a9a595a00e68e2d3127f5de640323791229141caded658e99fa59539077027ed7b7a433a79\"\n      \"4bd523ec59f504978964d3e17eb388956e43395ec89b252a93b317c64580426d1ab0b633a972524084be5d488645\"\n      \"8718ed42f47967eddabdf7b2f440818e0aab9d932c10a4c7283d05b84ef74a6b\",\n      \"7be2b003c341d5a7d1a7fbbefd6170d8be25e785230bb6adb70785416eabb281\" },\n    { \"53e1b8de6176c05e04f5a4787e733b3e\", \"574de8c0f914115c9267f7852280fbe8\",\n      \"0ef099d6995b41d4e9227c3aa59da313160afaa32e1753422c1eb45bf102e806aa996a54606c78320e85da74deb3\"\n      \"9e8b0059bffe32780ec784abf6bd540d3c01e9f13c4209bec2\",\n      \"3d9ca3718f31b4f37f988ec676fc3b5492a44792d1a4f8fd7cc4726fae899f102841e7f5c04b2ae2c5f9eb204c5b\"\n      \"74222d89c2bd36b1500b2dd81e9643142becec1b88aa7a0d7ea4c81fb7e8fb37ec1a58e0383e\",\n      \"5cf9292077dbcc9557a1cef51de815facf02a89c9e29ac62098c8e4d0cb49c4f55ed55dd9dc9c36a634ceb8f4dd4\"\n      \"75837582b9be1c17030c0546b335be95fded1c416e4599851e\",\n      \"782baaaec2b50b6bcb07d00c6eacb7fa8ac084113bad5a1d6dbe8c80340443e8\" },\n    { \"81118e9376e515a93dbdda15e58ff387\", \"75a0f02a8e78a0d2d0097cee863aa576\",\n      \"f30c353db4dcb2320ba5fba118e50526800fda7ebabef05bdf15aee5d9b70f2ab697937d77a01bb4bb460fcc4233\"\n      \"acc3b970f4f434e9ea85f30aed7d247115fc5db1c333ac6a008dfe65ee02b930ea097d046f2923bf84785d47f382\"\n      \"b19651948d69a6e4b861a7112c4e1804f6435f70\",\n      \"6f75857a795e6aff71994dacae41c2b2d9d6d7e67fbaed6d2e20bf89da461f509ef3d284341a8a2059ef1b97e9e6\"\n      \"820f1a72ad703e71999be36fd7156d3e3f35663eb4db44a858e08bceb154af51360feadf3bca8f20\",\n      \"0376339c7324168426dbc1f36ee91603f844352817b575ffb25ca6a75e2d0f0d77d853230b7e5a4823195c406298\"\n      \"bc3781b40df001d9cfdff16de970df4ffd0aa652fc7732c6311e2665daad93bb2576d43e1a58837513c62a8b74cd\"\n      \"e75901f9520a29a10e4dad9e4aa981c5e72d6cc0\",\n      \"d5db09ad858cbf4f860e527aac44bafedcfb01653818baeabfc8efeec0e3a9e5\" },\n    { \"2d60824c89bbeb4e2b72434aa0356587\", \"20ad2c51679a7246ca6d0a47ba7292e8\",\n      \"17aa9ed83ff674f959085ecde2a6c5026325265a143d2c772337056a3c66abb5d742f33be39697194fb1\",\n      \"283fa29dc399d07116e43c85eec0adc8a76221669a9bba6554f8e828b680\",\n      \"40fddfe3b15925fe189b25aeb6616538958d43f0c64806f6286a5efc8a4faee98d02314eace7619bd2a3\",\n      \"4d9f99a5248b8c7ed7ecac6397969bb92799a3e206239bcfbca54ca2b2325f9a\" },\n    { \"e2e2a29db958c6a3f68a52825b844c2a\", \"3210fe0cede911318435fefee1d921d9\", \"45f5fc3a\",\n      \"91209d1202574e\", \"2067b789\",\n      \"8869621138c4b08670fd8b6ede57933e4036e9c2a635e367f12a4dd7b19e1d73\" },\n    { \"24affb4e364dfcb9be823bda04cdf045\", \"d7db8f0fd20b87ea4ad5e85e026b4b42\",\n      \"296e2b8040a3907fbd8789f660f85f3b49c6050092029a2b\",\n      \"42f31798f0016547fc9126a6919c14fdee91bc68f839dabb24d2249ff5e001b6a2308b57bfa6baa84e635123e8c2\"\n      \"110c\",\n      \"3af391d72e60751b10d3f009814673d64cb86a0dc998cbf5\",\n      \"388f9d6b3b3765f7361cf130f3418f1d81f3c4220b37046d82ba47ba252424d6\" },\n    { \"e8d14e976fed8be59625b034419fde86\", \"1d3a06b7b80217caa5a4e237c2b94549\",\n      \"fa2d4f764e7399bd346f60f1cee797a9624809373daa3803cdb12717fb48503263b21ab1d99dfde20d588458993d\"\n      \"8c33384e897973a9dd74bb7e308c8fdd6a46a9\",\n      \"8c0c2e14cf2ed5c7147d8c50b4c28b232a80247344f21a61dfe4065fdc559200b7a0046e58606e3a3615ff54bb60\"\n      \"5e7a5f001d215de255ba75366f6be3dd1fd4858aa9e8904ca99647387b1a17c7ff\",\n      \"9427f3a18a22e801a3d7d863cccf4fc8dfc23a51bffab61235e2bdbae311ecc321db38128730818cec04f51ba5f0\"\n      \"c3e6b7327402a2a63c95c184f7946756f2c94e\",\n      \"70a800b87eeed41887887449465656d777659f183f9cb335d2a253fe09816cfe\" },\n    { \"73e9b0ca8fb59181dac10130454e3a7c\", \"81c9a08c95fb942c42003aff680b11ea\",\n      \"971adb65be3d885bc115724cc33a0f53aa47606e7bd5\",\n      \"03cc2f305af325f4fa14de7ae8e89a03d040e812f0f4a7f82d72441d83b85a424f3ebc34ad\",\n      \"18ff36eaf9e6f49530db6f886fd85a77d55289d85fcd\",\n      \"0bde31d7323ac029d9900c897aca4b0d42f33d46bab1974affe35a4095139184\" },\n    { \"59f15a1479f5dbd9c1b879475de9d2e7\", \"060ac95c956235bcc003dfdc92da5d89\",\n      \"a17b5ffce4cc08b23a8b8cd7735e11822f9672691b4dac380835729694f39da377e4d3fd23ef7b8b40a355e271bb\"\n      \"fbb8cd632481c7cdb67d99d314609174b10cf370fd9b9ab872346c631127f873573ef61776bb8e154b55bab6d845\"\n      \"44cd8fe5f7611840a057\",\n      \"9faf2f97e14d2be029\",\n      \"3a4986b25ac4ebbdf8c62e74790e79f860c5c131f68b540a7a9f0504cbbc36b7484fe76713a53f354f4970613a97\"\n      \"6a4cc55ed7480d5c5acf876977b74e622926c8309b65a5edd3ea2ad7c2805f2859ce1e2805577d409760b2cf8e84\"\n      \"cda7097478491bab3fd9\",\n      \"81ab6e4c949f5f8552f8a5f067073a0563a4ea6a9ae83810d76937e1a370cda1\" },\n    { \"5dc5206e6145ce81ffbce717cb425955\", \"a7a6fda319439a67cb679b3cc6076dd7\",\n      \"4244fc95829a69089920\",\n      \"92f48b403ce97f87118605d24314981ec34b958ca0036f0b6acef5e20bfddee370e13bb2cc676dd8d4547668aacc\"\n      \"7dfde6af12727789f6ef811e63b391cfa9c4a68ca89e6bd978f38f9228dd9c24e968c4e59e3d34963d6ee942f788\"\n      \"e0b5625ad95bd3eb6ae67ffcaf2e4ee9a9cbbd15c40385ae\",\n      \"adc2915b7813f367bd80\", \"30cff01d2431cc61bacb6445d7e3e604de19ea532a2db3adcc1a978d9cdf3dcf\" },\n    { \"8d88268afada2ee19bdc754147d6b04f\", \"119588763bcbdec984a226e9dff179ce\",\n      \"04deb10354489349a273c5cd5d02ee1d71cbda2a20743bdc2cbc48788b9da779ad2f3f1dec4cceb3132b2e4a1c43\"\n      \"02c8f9ecd1d37fef\",\n      \"0f32a44fb0edff2f0d2334029e59715f5fe2b8e896068b8488f43b567c0d6fa3de5bfa99c6c8f055e3889309e088\"\n      \"22eea3a683d6907675b6f0072438be\",\n      \"bda6c7381492f48849c00a86ba72c8162c09981f593547682b88b7bc6e051a9ab9fa1602e879b8f1e5145bb61925\"\n      \"30e7faa76be34dc2\",\n      \"dac7ad31ca2f77427665d8255bb24e7604403434770869ee202598e649950dae\" },\n    { \"0049493db4ab12f83fe50f0fb2a88961\", \"fd0dd2556a03ebe50b41446250d56e52\",\n      \"1d3139deaf1046e234189942c2249a7aee9d644f934e6a203a8a69e7683557551dfade301cef8abb29d7308c5a28\"\n      \"93a52ce6b1493bf2232606e79c0ae51b0a55cfc0434f2e669cbc56fe7176fd04a1278918c14791e00f88de41d563\"\n      \"d3\",\n      \"4c92be6ed0634323014b9ae5c9401f751c5b710c12df357a694c1c25d906ab3beb5bbaa002208e787f448dd0cef8\"\n      \"4d3d\",\n      \"dc3bb7e4baadeb7c32f70cef3144d04ad199ec429ca6b695f87f997c6e5db58e9d60b34d89ccfe49d5e62c267a87\"\n      \"1ab7818137f523cde68036ad1d8f7db0b80286ceda9734b32ad73f7f0eaf8d19c80fe74866c1cf785f44513b918a\"\n      \"24\",\n      \"51a9d0fb861eca8a334632ade9f37e319a283d7b33cf0894b2e4e545d01afe75\" },\n    { \"b6279f439261d1dfa4b85151caa60e75\", \"d0b003ce641633d48413bf3bbcde6b5c\",\n      \"39ee6f13a66b4ee74cda034a3bfed3fcf36f101f1e5b646d1c93e019174e4bd850417fcd5755264476124a5ee8e6\"\n      \"8cf2fcb9fba50f872fb1d33a025f8c572b4b5ff034d9ad77ecd33981bdfe3e9554253522\",\n      \"c635cbbf8eace8f911d093544536f38fcfa14b78b1e1eb069c42a351cbc70b7d1f5e93bceacadaf0c9198d3b2ffe\"\n      \"54db45cfac70c05d4aecb0c801194642cc070ed223a9e3b65b735af796373db7fb6e3285ee3fd3579dd74be0cd29\"\n      \"37f6f825dc3bd77ff7674b06a9ac\",\n      \"9787ff29777e12f86c7281c57c5a345278fa96d8fc6ed949be284bb79f97b34da9f256a6be673ab93829492159e7\"\n      \"ba1a19dc727e16ec57e388447c6616626c6af3412cc70432c3dbeafa35b044e7e53456c1\",\n      \"9fb598560f6e1085c32baaeb48e643f0ae1b5a2c3a8ffbc0a9d88821c893330f\" },\n    { \"81d8c7bf41cb0e54fa51899660637877\", \"044d29eb40264aa36b976a766108ac88\",\n      \"4712680db09039894cd72e86db111d63c4bcb62058f84f83ef419cc21e36f2169ca340375ff69f9280fa60c99d86\"\n      \"a03dec4673901a7029784be2cdae3f63590da312a448d24eef063304545e553fd01ce6ee088e43c8b02c51b155ba\"\n      \"da983ea1aca4bad804406aad3c92ac75ce4c\",\n      \"897f0ea8d69b962913a9a59ca36b65aa7aefe39d3a\",\n      \"1d5cff8679946302451dc9aed1c601ce46a6f31ef17a53af6ab130605cc2a41da08c932a13b72983ba8cc5837604\"\n      \"0cc17e3182993dd593f4fc8f2965825173656325942e97db98c584ff0bc913633888a0812ea7675d130d690f9fe8\"\n      \"d6eb7f1655de1938fa0163b02c50c8a122df\",\n      \"96887b58e80e7c7716cfc5ef37c2b5a6bffb401733b82a0bd31510613f033a05\" },\n    { \"8d35dc035a1039af8f3dc653857cef8c\", \"a0df1b717a186cfe86a0ac8343e80217\",\n      \"572bf5295915e7b2f817bd137a6608e09fcb7bad29887b9209eb29e944f2d3231717f9a112e68756948c1fc71dcf\"\n      \"6245a0130bbffeef74ccf3ff3860ca5a23753f7539b7a268fb08434b73ba9adc385e6f9ccbfd213f812d7b64d8d6\"\n      \"d7bfce1e236c5fd857\",\n      \"94714396e2dc4bc13a6d628563b0db14e189695810a4925a90826de63327942db0508e7453\",\n      \"6f2364c357e257e9b412018a1c702f0d0c1170751393b1f73999f77927d4ec1454e78eda131af56b1b46e348f877\"\n      \"5e6a022a746b31ee135651bb2a14e21cbc3f333c13df02a3de6d5128ff1145514605d98e984c28dfa89cbfd2f0d8\"\n      \"bc41af3e4c73e7ddc0\",\n      \"8df601cc113253733da78d2f06eaba71d45d2026e77c30918ff8c176b54f75a5\" },\n    { \"4666ffed66ee2dc3ed18e6345384e828\", \"8c5c38610ee79b818c18e95ed2baf026\",\n      \"dd2baf24c168f99d1868712a43dfda4717650c26c36378127800d8cf\",\n      \"196a5357a0d6c588acc29f85cf38b78b61e0810feefb965d\",\n      \"a58828aa09a6f25e7d4775ba7a2b303085bd5fb43cd61bcd19c8bb8a\",\n      \"3f54d97c03f05417d44d62925d9a0e2c457fcc8befd1c388499c3e38bf89e163\" },\n    { \"2d5464646342ceb3039a9d2fa406b90a\", \"8f045fec196343f938902e1bf706e34b\",\n      \"260ab30c42d3356dc39837b28f6f387accc2527aa853dd58f54426d52cdb9ffc0a5ca5a5c00761a7299e72d48874\"\n      \"b46ffe18dfaf38f19cfad76d7c9cb4a4cd7784cfb125a58673972b4bb8c894da2a8969f68cb27fab746f8d62fef6\"\n      \"0664900833dfca7e0be03eb5908f12e74bacda9d35b06e\",\n      \"d4aa5263a31fcc8ccc9e1127f7ba6ea2d3ccc72cd7e98e442890ad3f8763856d90e362\",\n      \"51ede001d1e4ca8a3de43186651a011cd14f4bf93e9375e910a8974ea411343b68e8f6ce80cfc945ae7d9c5adf76\"\n      \"e1c0f93de8f5dc48f36b82b65886776f1298b36a2f012140da048da77e09e4d57426abe2b894c425aeb2050b0eea\"\n      \"2d8f8255b733bb814abf3ef3d530d87dd7e1504bd683f4\",\n      \"890d5d33a9dfa3807e5e20e4824d13fdce5f7ccaeee1f3448a4b21a085277370\" },\n    { \"723efa25ce1bf1748d86d9da611be9b1\", \"aff260690905ed2e8618c20963e4b7c9\",\n      \"f7e3eb593d3966c015d63ea0e9211beceb8fa6d9a202bb4fd4128c3177c5\",\n      \"3950b62147fc16429392d41cc4188d5c82537204e93edc7abfe7ce3404f9aa1474ebc4acd8e18aa652a87ee99c24\"\n      \"15f9214963becd44720684f67aa814903cde\",\n      \"9d7ee643a2cec28c467d2cc88aa539341dfbc82f72b5d940feecd11d4a7d\",\n      \"eadd8931af484ec1f3c3e18f7acc0dacec73dd80836e03957b595b2022c8ac21\" },\n    { \"784197d89800aad00105ff7487b6e5df\", \"fdded94dfbb72c77ad81b2ccaaa2de2e\",\n      \"b14ad4fc08d08cb0601289a7ff9127f26c4036606a50bdd2921baadffbc75749b8ca33ddf7b6ac\",\n      \"b82cbea4eaf532d52046bf0bfaf22ec2\",\n      \"a625b4da553686296d5c6f5ce526c4f84c4af779c67cd328c16a7985c9a28737130da855b1f3aa\",\n      \"1807d55856630efb2794c74810522703b71bed188d5d918b8d265fb12a8bdc9b\" },\n    { \"4dda1ff559520020513e0a8e554da28e\", \"8b183c7e23130aade134ff8e539d8053\",\n      \"e56d6364a87fb7f40af02b672fd337705ab8a02a5fbf2c2a639a872da16895774d90658269437160cd22d7370ab0\"\n      \"fd3e81d746\",\n      \"675b6d9e6c4c479798038b06561f1ac0dba2ce54988efa3393cb6265d901df1f815937a6e42db8c64c76dae0c8ab\"\n      \"a0ee20\",\n      \"0b2f31b8b15ec535c7e8c732e91f4e119bca192b1fe2eaabdac037dd1568e4a8d786c7048c16ebd4c513324b18ac\"\n      \"9ee0281fac\",\n      \"4809fc5e0e21e6344364f0dd59d380740c36c1b1d22e22de5c1190c0044a98fa\" },\n    { \"66dbe969ec0adfbe1b99874de53417d8\", \"13ee71e9dc02d592700c04ca0bcc6344\",\n      \"fb420a6751909185796656a952759b4b794bd4eb98c82456af4f596093f5615962e62a9ce3fd9c4e0cb31a649cb5\"\n      \"c17d30f66ad3d52e16589b174102cb5ad9973ce03f44cd3776e0d9c538d255ffe81ddff81e06cff8e4d8adef4f08\"\n      \"cca416d52ee3aade52341e5cfb5de80c71\",\n      \"db499d6cf13840accc40e3d14733662885768f7541b2615138c498b087e51b20f1c0c373a589b510de546d372a40\"\n      \"cad0f92ac3f6f7bc1b85290c4553c83b\",\n      \"7a7786b03d18c1f2edb2d9015da13a327f364895751c32b8ab840079b08e47870b4ecb49474d2da2bc0a53977aeb\"\n      \"4d63f3b4e56f6a3d22ccd64fbe098fb9b27eb5e5b1f179ac69eb3d57175bf9ee37345e6f48161adcaa27bfb53638\"\n      \"89e38cf7297b3fb9b41a0d61e751ca5184\",\n      \"18d7dd7f471d491883ad31f046ff3451d02dbc85fe59f43c5b67c53c21cd9f19\" },\n    { \"3a00ee1e8877248065cd26e3b9a857de\", \"950529b19697df5b0ce43a3f429e9509\",\n      \"d6fdd1746e8e7c7b84adef010951f60fd19b5aa74b1a8ab1ef2dbd5487318fdf7844b436dd1063f10e609bc58604\"\n      \"ada5c41ae2ea1b5303f84c\",\n      \"30a5f3a4e4543dca2b4d53a59a6a11b97a7d\",\n      \"06ffcb4a0da10ae1a5a1c5b6205ccf4882a9c796370e7793d9b3ff3a857c156b3285e3dcc2181d8c0df26167ab4f\"\n      \"8709db6870c9e10e75b90f\",\n      \"6127c870f1aad279a83c79ce8226147782f709fe81f8c8740eb47bea34c2a558\" },\n    { \"b611b23912f0c44c8f0a452e181016a3\", \"aa0321dae967b75f958a3949fa08fda2\",\n      \"16320a4eabdcbbb1e600058d308cd8aa650ec35985906489d1ed3210ad402589b33de4a68088cec878461e54ce60\"\n      \"ebac399457d4f4ffaea77fef304f9363817fd797afac854d0ca313321fbaca4b0f\",\n      \"d0b0ea43a3fcbcf70e5d4b21ad115e503ada6f43a74a0585481b249db3c00645f06005b1b3da91600a14a40ae5c0\"\n      \"45127cf8cb6bcb\",\n      \"39f3258b852471d9b9a289027f26c3a7e49fa8cb61983c429b3b306edb1f0d34d9718774005d71ef2e89212c6c53\"\n      \"8f647335d85a2d0b4c72b97a7eee96d5b6976a602d82a294bc2a4887b16aa327f6\",\n      \"411aac7435b623d80d284a1a6533dba99d7a44e4de22bbb22b09a4812c6f27e5\" },\n    { \"2ed2ab0c5548c1e97879a6c3ec7ebadc\", \"3e15d94c7dd22593caa8be653b6d59d2\",\n      \"76b1d92662d472c87ba9b27e2756cf62513ec190f709996e\",\n      \"f1e64c14a92e952036305ceef2535f65295b2803f7396a5e88f2ac993e201782e2f1edba92011a1530278b6d3d1c\"\n      \"9a\",\n      \"8c9fe2da6b58f0a9d40609bfd9ac6855badaef814588ebc8\",\n      \"b212a9d7ef27a5228e1c02ba78cc92068c2251c162348e1d87da2afc53616571\" },\n    { \"37263267c4f24129d9db09a2a96d7c14\", \"39e5c4f2b36c9ed5077765b89cea1bed\", \"3581b4424c\",\n      \"6ea6a9f99350a38601162f2e24928ee2\", \"9ace0569f7\",\n      \"746536436bc496acc8bab10e6ae17d5d1d6113b3fad96df462107c3b4b6bf96e\" }\n};\n\nstatic int\ntv(void)\n{\n    unsigned char     *ad;\n    unsigned char     *ciphertext;\n    unsigned char     *decrypted;\n    unsigned char     *detached_ciphertext;\n    unsigned char     *expected_ciphertext;\n    unsigned char     *key;\n    unsigned char     *message;\n    unsigned char     *mac;\n    unsigned char     *nonce;\n    char              *hex;\n    unsigned long long found_ciphertext_len;\n    unsigned long long found_mac_len;\n    unsigned long long found_message_len;\n    size_t             ad_len;\n    size_t             ciphertext_len;\n    size_t             detached_ciphertext_len;\n    size_t             i = 0U;\n    size_t             message_len;\n\n    key   = (unsigned char *) sodium_malloc(crypto_aead_aegis128l_KEYBYTES);\n    nonce = (unsigned char *) sodium_malloc(crypto_aead_aegis128l_NPUBBYTES);\n    mac   = (unsigned char *) sodium_malloc(crypto_aead_aegis128l_ABYTES);\n\n    do {\n        assert(strlen(tests[i].key_hex) == 2 * crypto_aead_aegis128l_KEYBYTES);\n        sodium_hex2bin(key, crypto_aead_aegis128l_KEYBYTES, tests[i].key_hex,\n                       strlen(tests[i].key_hex), NULL, NULL, NULL);\n        assert(strlen(tests[i].nonce_hex) == 2 * crypto_aead_aegis128l_NPUBBYTES);\n        sodium_hex2bin(nonce, crypto_aead_aegis128l_NPUBBYTES, tests[i].nonce_hex,\n                       strlen(tests[i].nonce_hex), NULL, NULL, NULL);\n        message_len = strlen(tests[i].message_hex) / 2;\n        message     = (unsigned char *) sodium_malloc(message_len);\n        sodium_hex2bin(message, message_len, tests[i].message_hex, strlen(tests[i].message_hex),\n                       NULL, NULL, NULL);\n        ad_len = strlen(tests[i].ad_hex) / 2;\n        ad     = (unsigned char *) sodium_malloc(ad_len);\n        sodium_hex2bin(ad, ad_len, tests[i].ad_hex, strlen(tests[i].ad_hex), NULL, NULL, NULL);\n        ciphertext_len          = message_len + crypto_aead_aegis128l_ABYTES;\n        detached_ciphertext_len = message_len;\n        expected_ciphertext     = (unsigned char *) sodium_malloc(ciphertext_len);\n        assert(strlen(tests[i].ciphertext_hex) == 2 * message_len);\n        sodium_hex2bin(expected_ciphertext, message_len, tests[i].ciphertext_hex,\n                       strlen(tests[i].ciphertext_hex), NULL, NULL, NULL);\n        assert(strlen(tests[i].mac_hex) == 2 * crypto_aead_aegis128l_ABYTES);\n        sodium_hex2bin(expected_ciphertext + message_len, crypto_aead_aegis128l_ABYTES,\n                       tests[i].mac_hex, strlen(tests[i].mac_hex), NULL, NULL, NULL);\n        ciphertext          = (unsigned char *) sodium_malloc(ciphertext_len);\n        detached_ciphertext = (unsigned char *) sodium_malloc(detached_ciphertext_len);\n\n        crypto_aead_aegis128l_encrypt_detached(detached_ciphertext, mac, &found_mac_len, message,\n                                               message_len, ad, ad_len, NULL, nonce, key);\n        assert(found_mac_len == crypto_aead_aegis128l_ABYTES);\n        if (memcmp(detached_ciphertext, expected_ciphertext, detached_ciphertext_len) != 0 ||\n            memcmp(mac, expected_ciphertext + message_len, crypto_aead_aegis128l_ABYTES) != 0) {\n            printf(\"Detached encryption of test vector #%u failed\\n\", (unsigned int) i);\n            hex = (char *) sodium_malloc((size_t) ciphertext_len * 2 + 1);\n            sodium_bin2hex(hex, (size_t) ciphertext_len * 2 + 1, ciphertext, ciphertext_len);\n            printf(\"Computed: [%s]\\n\", hex);\n            sodium_free(hex);\n        }\n\n        crypto_aead_aegis128l_encrypt(ciphertext, &found_ciphertext_len, message, message_len, ad,\n                                      ad_len, NULL, nonce, key);\n\n        assert((size_t) found_ciphertext_len == ciphertext_len);\n        if (memcmp(ciphertext, expected_ciphertext, ciphertext_len) != 0) {\n            printf(\"Encryption of test vector #%u failed\\n\", (unsigned int) i);\n            hex = (char *) sodium_malloc((size_t) found_ciphertext_len * 2 + 1);\n            sodium_bin2hex(hex, (size_t) found_ciphertext_len * 2 + 1, ciphertext, ciphertext_len);\n            printf(\"Computed: [%s]\\n\", hex);\n            sodium_free(hex);\n        }\n\n        decrypted         = (unsigned char *) sodium_malloc(message_len);\n        found_message_len = 1;\n        if (crypto_aead_aegis128l_decrypt(decrypted, &found_message_len, NULL, ciphertext,\n                                          randombytes_uniform((uint32_t) ciphertext_len), ad,\n                                          ad_len, nonce, key) != -1) {\n            printf(\"Verification of test vector #%u after truncation succeeded\\n\",\n                   (unsigned int) i);\n        }\n        if (found_message_len != 0) {\n            printf(\"Message length should have been set to zero after a failure\\n\");\n        }\n        if (crypto_aead_aegis128l_decrypt(decrypted, &found_message_len, NULL, guard_page,\n                                          randombytes_uniform(crypto_aead_aegis128l_ABYTES), ad,\n                                          ad_len, nonce, key) != -1) {\n            printf(\"Verification of test vector #%u with a truncated tag failed\\n\",\n                   (unsigned int) i);\n        }\n        if (i == 0 && crypto_aead_aegis128l_decrypt(NULL, NULL, NULL, ciphertext, ciphertext_len,\n                                                    ad, ad_len, nonce, key) != 0) {\n            printf(\"Verification of test vector #%u's tag failed\\n\", (unsigned int) i);\n        }\n        if (crypto_aead_aegis128l_decrypt(decrypted, &found_message_len, NULL, ciphertext,\n                                          ciphertext_len, ad, ad_len, nonce, key) != 0) {\n            printf(\"Verification of test vector #%u failed\\n\", (unsigned int) i);\n        }\n        assert((size_t) found_message_len == message_len);\n        if (memcmp(decrypted, message, message_len) != 0) {\n            printf(\"Incorrect decryption of test vector #%u\\n\", (unsigned int) i);\n        }\n        memset(decrypted, 0xd0, message_len);\n        if (crypto_aead_aegis128l_decrypt_detached(decrypted, NULL, detached_ciphertext,\n                                                   detached_ciphertext_len, mac, ad, ad_len, nonce,\n                                                   key) != 0) {\n            printf(\"Detached verification of test vector #%u failed\\n\", (unsigned int) i);\n        }\n        if (memcmp(decrypted, message, message_len) != 0) {\n            printf(\"Incorrect decryption of test vector #%u\\n\", (unsigned int) i);\n        }\n\n        sodium_free(message);\n        sodium_free(ad);\n        sodium_free(expected_ciphertext);\n        sodium_free(ciphertext);\n        sodium_free(decrypted);\n        sodium_free(detached_ciphertext);\n    } while (++i < (sizeof tests) / (sizeof tests[0]));\n\n    sodium_free(key);\n    sodium_free(mac);\n    sodium_free(nonce);\n\n    return 0;\n}\n\nint\nmain(void)\n{\n    tv();\n    assert(crypto_aead_aegis128l_keybytes() == crypto_aead_aegis128l_KEYBYTES);\n    assert(crypto_aead_aegis128l_nsecbytes() == crypto_aead_aegis128l_NSECBYTES);\n    assert(crypto_aead_aegis128l_npubbytes() == crypto_aead_aegis128l_NPUBBYTES);\n    assert(crypto_aead_aegis128l_abytes() == crypto_aead_aegis128l_ABYTES);\n    assert(crypto_aead_aegis128l_messagebytes_max() == crypto_aead_aegis128l_MESSAGEBYTES_MAX);\n\n    {\n        unsigned char k[crypto_aead_aegis128l_KEYBYTES];\n        crypto_aead_aegis128l_keygen(k);\n        assert(!sodium_is_zero(k, sizeof k));\n    }\n    printf(\"OK\\n\");\n\n    return 0;\n}\n"
  },
  {
    "path": "test/default/aead_aegis128l.exp",
    "content": "OK\n"
  },
  {
    "path": "test/default/aead_aegis256.c",
    "content": "#define TEST_NAME \"aead_aegis256\"\n#include \"cmptest.h\"\n\nstatic struct {\n    const char *key_hex;\n    const char *nonce_hex;\n    const char *message_hex;\n    const char *ad_hex;\n    const char *ciphertext_hex;\n    const char *mac_hex;\n} tests[] = {\n    { \"7083505997f52fdf86548d86ee87c1429ed91f108cd56384dc840269ef7fdd73\",\n      \"18cd778e6f5b1d35d4ca975fd719a17aaf22c3eba01928b6a78bac5810c92c75\",\n      \"5d6691271eb1b2261d1b34fa7560e274b83373343c2e49b2b6a82bc0f20cee85cd608d195c1a16679d720441c95f\"\n      \"ae86631f3f2cd27f38f71cedc79aaca7fdddbd4da4eeb97632366db65ca21acd85b41fd1a9de688bddff433a4757\"\n      \"eb084e6816dbc8ff93f5995804\",\n      \"af5b16a480e6a1400be15c8e6b194c2aca175e3b5c3f3fbbeca865f9390a\",\n      \"0943a3e659b86e267ffea969ddd6d6d63aa35d1a1f31fb6f47205104b132da65799cc64cc9f66ffa5ec479550c2c\"\n      \"5dfa006f827ef02e3ab4dae3446bf93ccb5c17e1ec0393f161fca94f2944d041f162e9c964558b6b57d3bb393b97\"\n      \"43b1f8338ff878a154800fd16c\",\n      \"480091eb823480e8b29c7aa96ffd55a026ac3d7fa16787c36c25865131a639a4\" },\n    { \"c88bb05b2aec1218e1a5026511e6d44de7bd502588e9e2a01591b39c5ead76ff\",\n      \"4a485f226a73f0c4e16242e8234841cdf6af1771eb278e7f35428d03eb5b4cf0\",\n      \"2a4c06941ec356390542d7d7833fd68fc85a00c0452281f87dee6f10180d02182791232c7007fde35dfd5a901afa\"\n      \"896296f9f344db717994d078fbd3a4cec8d782d2bdc205f3709827b776fd5c863a952fea97a14a6c2ee3f20432b8\"\n      \"baa084470179078bd6a83597478b2fd9ae00ecb424822cb0d61e9a55a4\",\n      \"38a9809dbdd2579010d38bf5314f255b\",\n      \"b8565db06c2fa493e09b6764f4d09296422095eb6e9890f606654713bfee6f362a123688b61f254f315f18b20bcc\"\n      \"5ed8b0b4f2224de9f498e3ef03532a8bcddb361f5ace8ff491bab8b3d06550496501264f9f48ebad277e74921467\"\n      \"89d0fc1a3b1e3e81598370a4183683d1fee25a9a1fe359c836932746b9\",\n      \"5d5d35e0299dea47956a2e2143cdace4de8d228784d6717ae5a6bf5ea6b3ed04\" },\n    { \"77b473865175ebd5ddf9c382bac227029c25bdb836e683a138e4618cc964488b\",\n      \"f183d8de1e6dd4ccefa79fe22fabfda58e68dd29116d13408042f0713a4ee5f8\",\n      \"9888b8ee03c3217a777b7558a31e331909570ea196f02c8cffad2c8dc6499b8125363c06a71c057842666bfb5c6a\"\n      \"cc937d2eecd960330c2361abdd88a4b191557ddf5102de75ddc7e09aee9862f32e24f1db3847a5f5b379fb32e2ef\"\n      \"7ffb0d3a60\",\n      \"0679fd74a846965e33e558676115d843e440fa37092fbd5c57c82fd914210fcf948f911b04632d66be46248d772b\"\n      \"3eb9f55b537e54b1ec751b63f035c8\",\n      \"3464d835302583ade6ed99e23333e865d3308f31a6cb65bcefdc9a1b9b4d0e0f75513188480dac4a64922af44413\"\n      \"24ce7de74eb9f7f4e414f6177a4814edc96313694b99ff8dd36b2f7f79c7ecd70ec475abe1c1909238767f172fd6\"\n      \"b95e92c025\",\n      \"33527e829a3db1929cd643d5251ee19482aab7f2d74635cbf8370f1e1621ecdf\" },\n    { \"b8c6e8cea59ca9fd2922530ee61911c1ed1c5af98be8fb03cbb449adcea0ed83\",\n      \"af5bc1abe7bafadee790390277874cdfcc1ac1955f249d1131555d345832f555\",\n      \"b6c15f560be043d06aa27e15d8c901af6b19db7a15e1\",\n      \"d899366a0b4e4d86cce5ba61aca2a84349c8de5757e008e94e7d7a3703\",\n      \"4c8496dfa6c419ef3c4867769a9014bd17118c22eef5\",\n      \"f81ceacaaae6263c33f836fa26d92b0f08eb0796135c7fe312c93add6a208e8a\" },\n    { \"d4ed0fe94cda2be7e50d57833158c84180b4cb7dec95d5ba774b6b5e1b0597bd\",\n      \"cae41ba20bfd124270b76c13d61c1dffd7a42017731546d41aa071c22b9967cc\",\n      \"1cd4b85fa6c14d5adea84ed3167479c1cd18e77792cca73a540aa16a00e50ba62ddd12a62911b21d3ee108651693\"\n      \"7f33ed7756c7ec93b3\",\n      \"35564745c05bc961994ea03764eb02044f9e7b2f6130d6d1f041580d6b3ea7ade2b6e231dacc5e97db01\",\n      \"a1f64f45985a89303d1fdacf6f31ad745a8015350f1afe63d6ecc26677f661addd3c229ed76f4c627b1e902f8ce8\"\n      \"c42fd08baef481e86e\",\n      \"c706b2f13d4e76b4e024a2d72540637a8d9ff5e626d6bffeb7801c58ccab0c2e\" },\n    { \"d755d9d980e8cb221955b63c19f3989eecce945f61307a0593bd7cbea6577e1d\",\n      \"9f83666d787e5ceb0e17fc1b084b3734dc3ea88dda73b1b7ed53be7491f4637f\",\n      \"d1093941fdb3d9710cfcbe504be2434c17296d0b7e0f4e4058e79062f2b2cf3cbe2007ae2e5d391ebf3fc1e07e4e\"\n      \"e7d1705044c9bc2bf08e97a4d8\",\n      \"f2a1432fba86dc01b3bfbf3206943bfa3dc66e9f54b576c57f61ad515555b0c371dcfcec45eaa58ca06654b6cd47\"\n      \"6aaaaf1b2602c03f9e41a2cefc265d10f19d42bda0b07aac8e86\",\n      \"58e044943cf3b73e48ce75c048464fedb0445b02bffc00c1998b212f48f48c93e89dbfbf36cfade1112629e8deb2\"\n      \"67c55118c10ab67b7ef2740fc2\",\n      \"0179f0edd217214881e90c1be3b513170d1292603c484a55499e1bc70970d5ed\" },\n    { \"152f15933e4ae26192bd3aaecea29daf77e9b2bcd97e7eae7637025de8a3d3ac\",\n      \"e177be02348efb533fc2e9d5a259cef80aabeec97da50c937e8d5f7c6eeb32ce\",\n      \"ef86da6d5b0dab27a444a95ef5c237baa5819b863dcf0232d0162dceda8f180e1b9c6b9d94ccc0692eb52923783e\"\n      \"f9de17497f1da62d6524bbf432aa6c3bbc1e851310218a03ef97ac6676eb6ec30ba6ab131802b992a11417cd00e6\"\n      \"270ac73dec8dad88ecc3cba25734ef7de3b8e3cceb5d19778d6808\",\n      \"221b1875425844e48c2111fa59b6df729a924a43b3869ab64f8291dca8f12be34d62d11ac94f9f308e0744d5d5f4\"\n      \"564fe9fc1e014cefee3cf7706ace4643871d41f1ad5c616adbcc1e9701a3b4\",\n      \"dc48260eb047397f41c4d0a0ffe394557aaff8b149cf4b16e7c22754095f51b626ded66e3db9d4cbd98421ee9d8e\"\n      \"7c6eb72b607cd462f1fb3ab0c41b2cc84ad320c781ccda9aefa1a68ff5d280500a17c7959e869f45f97bf09cd0bf\"\n      \"2c4c068d2b9603710ca8f71f82acd47faefdebdd0abc9b45c83388\",\n      \"97191234839a54c00143463e8e8c863f5710e520ee9d9b9ce051076696bc8b52\" },\n    { \"873edbe818233d0f51bcfc1d5340cc4712c909de36f963e6157f128b8a71e3a8\",\n      \"16e7637700a6fc10539c056663d12ec85bd529f1e6adb131a3853578f5d27c12\",\n      \"db38cdcecbd99003978832d29cf6a34acb4d0e6293e37d2795fcded538ba37d6a11ed41430dc9f4c0cfd27587d60\"\n      \"7846f42aa30682bcc295097053821b80b5869b4a0b852ba7ac1d7b784ea0e76b2d033678011889a5adbf7e091cdb\"\n      \"b9754f828b7519f1179e2426ca6bf80a509e34729c854a5052e61adf8d\",\n      \"0b0bd264fb5030f84da620f07099f42dfbad57c314102a1f7fc0b452ebb7966ad4b88ea773aa07\",\n      \"de67a4eb8821625d4451734993d93e0fafd2c55c761afb097bfccba898e6d634be975d5f2ce8d456785a089c9b40\"\n      \"724d8ea41095c1cc80f070c3ababc9258e5eea504831b034baccff61d8f73c220d5bdb1244c8a675f2d6081abea8\"\n      \"f59088b99583cae22f8bd37fa030f94d5bfe1c9e799aa71bb41874b17f\",\n      \"8665ecac1758be7eea0b5f482ce8024ce3c78b3f51af3ee4e0b440f24db2f451\" },\n    { \"b04b735c74d2286302e5994e126a8a8f52af38d6cb094279ac883b560a52a6a6\",\n      \"6af57ad705792ac2f71a61bcea9ab38a9a5acc510de7995b66f3ae4cd2079aa4\",\n      \"1c052ab52a21894287fa7f763b12f49b2edd6a0cd266e93207573d08d75ec31b294d171f0098f804020cc12056c6\"\n      \"0f8d396ec94d97eae1c07a874849e39a3302e8c3b538de6c9e268fb922f6875ee5bbc264137035a76d9ceb269dc0\"\n      \"988517a302c2bace2fb6efc4ffaa2c1455a16b6cd0\",\n      \"52618046f112a5a35780e370c713987e24609c38157e5fd5d51ed36324359b0615af70f801b05a98ceb1\",\n      \"7183180c37ab14f38ed084bdd2aaa4e8d8e8442b526214f594054e0379a2aba6992804afa8c63bb1e580d7d905d0\"\n      \"c46536970e98bf7cb921e95db8faf388e7c98cc08496a7036b90a2e4efdfbcf79610edbc9f905067358b13934825\"\n      \"c0ed2e3c3d1f03f7ceb812945f77fcb7731f805b1c\",\n      \"483a6b3a7d5de797f0911d2a514350d5ae5af89aefe1245cb08cf8c7487eb99a\" },\n    { \"5bd7cbff6b469c03643cabb99dc50f905091fc9cfcd6d8f28e74ac1a33fd0198\",\n      \"3b458a51fdb6b9d5a7071a22825a79f2844c5ac7ae91014ed7862499dcf10461\",\n      \"4eda7997fa3b9e12e39eb00b209b43af9949c017660e523e78d0e483f23e9113b662f42a164db3511d\",\n      \"808d8a8523a983a2afb2f9daed913efdc19a3c1ca3315382ffe757426e7ef65bc1d83d8e6af95191f3c30de29806\"\n      \"5be1e5d14d0dba8f82281aa2fde67684cf7eb6f32ca4de7a116caa796f2b27222f93b9275f4b95f08c4a4e8d6b13\"\n      \"cd326c16daf232c8\",\n      \"98959acc116ede75df052f4028783105408022ed6db9516e8a27f18c2b4d59f1bcaa7163e0811203a2\",\n      \"edff06bd132fd3031cfa5a47803d5169289a29d304f7091b20dec2b284a0e271\" },\n    { \"1bc0dea26d8583e51cece0df7021522adb9336450929715fecb497c43cfba717\",\n      \"7cced62d655e703f54824f4e2ceb6e5af1507e2000f1bfec9e50eb87328c2218\",\n      \"edeb537b66dc39d20ef6ca5647e6f34df0f5dce2964d227b0c444613f951edbbc532b5576735e9dbf39177ccf807\"\n      \"1e5fe9fa011bf8ab7fe9f716acd50847f7a9ce35262b22f04486f1e956e09005249b5ed70e68ca9896802c4ff9b8\"\n      \"019fab057bbd5ecddaebb6a079e57cb6e39c95f6748b22cf3703e30a5e\",\n      \"36febc6e0763391b6b1031478fd485b54d427b88d06d3582c10263\",\n      \"5f75548b3bdc53e80c61fe8659f2b90350a59dff4477fad24764621dbc35ebbb6d71f80c556a825a2bba962561a9\"\n      \"db3360311438d4b3eb7452926dc5ec88d451be66eeaa491cc21837ec202b3e71b3ec2d0ed2f53ec59da253fc9920\"\n      \"482545f570e3b2e4ecb3629757f3c721fc462a380504aa8fa9fc8880fa\",\n      \"9e46a21c41a40101ca413017cadc2fed4fc3ff390a57fc0643784871af07492f\" },\n    { \"230bf249a043d34effa31974328fce207daf3ce10b42e5b44073b70e9566b1bf\",\n      \"de67af72aa00fe1798e8b41be2528f36a45aeb3d957bbcc5c01490e4a786437d\",\n      \"12403a1905c9da8bd546946612e7d4ddab1c716a533cbd5898240b4c68c675c2f18b72dd40c218bc6f7599edb573\"\n      \"f89af867ab3c05fcef8c78b9bd0a267e8db3d9ab1dd04dd14a11f9c9e0\",\n      \"77fe28a72f7029da86bfbcddcb819f7068afc07a249e207ae80f0acb90\",\n      \"e9f1c7e28b1581f25448b1e21de4fe67c3ff432338b2f7364460b6b1f666a2ddb5b9cc896c3f410445d00c146952\"\n      \"180ad1a36944aad13956e6ff95449bcf8bb6cdb1b3e87112507663441c\",\n      \"7174e0d47bd83c1a8cf9cb14127d26bad67bf413e146bdfceab4e79b7ef13c70\" },\n    { \"c9675c6e2c0d8cf9f45f17faff568943e4a9038df4472908dd631c5ba8a29c2f\",\n      \"bc07c8de4778d50f5dbf324e3f9e377b82e6defdb84163bc9447f156bb70beb7\",\n      \"d2c4c2773ac5fcbfe43869bafa8278709a32dc395be3df8360562184d47675133ff716c620fe4d18902dfb41d09b\"\n      \"205c87a9a2acd268f9d5662c9e4b12c50181d93ec7b676cb7afd0639f2b3c1154f7489cdf926a85f51c62eb16c47\"\n      \"b1bde2b46df56ffc9438b395\",\n      \"88a976fd2e7ab25e492f90a1901d7d3982b678217d4b248066c6d8e7a97af0aa93d04300eb0fc0be23a5db41b1c5\"\n      \"62efc21c6057c57cd723894d9735d3a651240c6c30e7afc2be2192081c4622ff1d7390e81182642a4d532dda34e2\"\n      \"ed45994ce50e1524ce\",\n      \"15f5a70290975933cbb70f830200fdd876732952577ef9c0bce0293e78c0525a1209eba2531d9c58cb742ecb4555\"\n      \"d4c9cb6bbe69c62a0910e633d14351d3b8f0c3c6734ed9adc384c294bc4935d0026fcd50d513750826da12ecb5f4\"\n      \"6b7c6595550547b963de030e\",\n      \"da44d1dc3de8523cb2dc0b3d5012f0920ef4665fb676bd4ff66fd6662db058ea\" },\n    { \"c4de2cc53d61339da13f360f88ae40b1895067680a7a9d28b3d281bb2a7d2f34\",\n      \"29428c6b06edddd68e8f4973fc2a698fc49c71230bb97da4fbcdafb7f945c9de\",\n      \"e9d1f0438a405d57816cf8eb37d3bbada217837db578d7c8e26355ecffc3b497732a54ae509fe8402f30239dca95\"\n      \"9b0aa7bd436f23c31e2b9cec889f3bc82d4ad2d4af9c6f978a14b1a8dd325d8976368af2d3f04b83ee343a0bea47\"\n      \"0bf8d56913986121402a49ed4a68c6526cb53d41ac\",\n      \"74\",\n      \"f1bc93dc853b7989e79d34615742488c52221d9d277560406fae0dca1a086ec09ae034a37424556922cd6661bb01\"\n      \"a389aa00823fe3e2fb84e9811a078bdcbb4da5e949fefd45988131846259c64b45b279b7cce15ad2b1ba0b52db1d\"\n      \"e7d39b07458bba7b26a4a4081fa3b0b6aa53b73d6d\",\n      \"ff4527b7c136c8c92b151e0658ff456262fe74a07747f9437445d9336919939a\" },\n    { \"0d0b70db983f4afeac46cb5e042ca51a6a85cdc500f2dfb2f97282d2f96d3235\",\n      \"a1280a20ba18cf8977c63450318ff1f6c4303b20c111fc733212e37e11cbd38e\",\n      \"d9db68a084a6aaacdbfa1cfd7ab1f9b4fde06f18ff093d9f5a04afb9f1a23a573125906fbe126e8fc0f51e65465a\"\n      \"09c1167bb6fbb623f311fe07f564ad4216a01b597d4d756acfc736b905a26dcbad3c6aae8bb7043039d06561ff59\"\n      \"7924d623767105024c170113b6\",\n      \"0a9d9525935e346ede23c3eee268c24f1070959d392d1aa1c4234cc19cce7807c477ac8e9062ff302015952aa910\"\n      \"6de9db40c8d20e022f3617\",\n      \"2f517ff86b32f3841fd9cfd34fbbf2bfb77b190dd2bdb74f438914d95809d52d20f07af6fa7a03913a517a6cf3dc\"\n      \"591045eb4fd7fa0b55d80ca54d48ee85d56841fd44db7585e5d0ad8f27264751157be2190b85f224623a40c4c821\"\n      \"cc8c7c680c548204e7f742d749\",\n      \"054df03cbd4f45572ecee0a8fe80b37eeca1f17881bd12c42ad6575a5ef304c5\" },\n    { \"8011b1043674d753172302aa123478a121640daf4317957545749d0be6a91698\",\n      \"57bd1ac0f3db407989f88a762f60b3eabd03d3bc3bae577f3818b15c0974ae9c\",\n      \"be1833fd169fd745acaa7d8584c457657433e6a3237225a086d47806804120613d78344e097ecc6a5f869d07\",\n      \"\",\n      \"e34dff511e16bf12570a6828843c414b8fdced120db36ea0223e8700f57bea4c9dfbec5d3195caa633d52ee8\",\n      \"0ac3f0459608a7f38b5b77c3f38c73f9ebc48253b316830b9583bcd51ba5c995\" },\n    { \"d4af433d4d7598a8bf02f3e34ba9014a85f92e7ff946d51ea7fa9a4f5cab09dc\",\n      \"4fa45413eca04bccc3c732e18fc6442646e5d809afc00e1e749a8b8f84d6926c\",\n      \"b867dea7593a03b7b7762052e58b18483163c0828f5ebecb8cbbe4d55c7f1a4ceadf55f4c3a979e619763377cfba\"\n      \"4f88e9e692c2794ee862b2aed63902879e11c5ee167ea4fc266a4556fbb54357ad243f92418a1d13c987f5b260e\"\n      \"d\",\n      \"ee4ff169ca\",\n      \"e2e12b2510c72d2d59ad8bf30235d14f3e85824e19b09f4e84eed629325b5a5368178dc94dac13b9aa262f12592f\"\n      \"8748bbed8581dad74895fe73dac4cc3a5f17ba480903ab86d349d68cfa0e4dcedea3321ffe1023b092cc77853a0\"\n      \"7\",\n      \"07a59bb7b8f5805195197a01bf6f628c689024dd64218f0a2a9b77aa5cd6b357\" },\n    { \"2eb12f163119cd1262e0dbb26338486bc75c183026cbc71bed601f6cde324bb7\",\n      \"c59654bef68ff95760ce8fdd39f480a3655c650647d00e49620b9938f917535d\",\n      \"9cf103fd377ee14f1fd775530b5153eb31789755382697aef6008f59b0404bcf3fe34509835308cfac8cfed2678f\"\n      \"523815615423831317ad7770ef74145db7a72ca9462ecd50d7b19a0d50e894bdadbb0f63d6624c80c85836bfabf4\"\n      \"4359f700fe04b5e6bf1db1b4ded24fe9054e7318\",\n      \"a3fb893a7baf646371e92f3c34c6700e6a9306bd7e905a25be4bd7d6239416ca94a1a31b59068729\",\n      \"22139c2d9bedf4a0535c22de56fe441df6752a692a99c10c186b439fde9954e815d6e81d0bfa0a7c3caf60808343\"\n      \"3e9b8d32321392f41ae03e5b67cd7801362c371223a98989b00c79fb42d4b25cc222ef6a4fe415654030e67ec506\"\n      \"44bbc93fe83c20e1a30259a14ae1ec82ac4759d8\",\n      \"83b054697569ad69e55ee1b1491b9353255c4cef4c0f31a0db8090b7dd06ce0b\" },\n    { \"553928dbf68b2dfdacd75bacda2cbb4fb33d81f55731f8ac6615631ed4169784\",\n      \"92e86bd57fafd57c88a090397a72f7af5967fb623eec8892b358abd1665f88ac\",\n      \"b305ac06529bc8483fdc6d765a535ccbc8125a27b8d72fa2450053ad4be45beede300f87e035a05538b3\",\n      \"1f80c2c7694a35f5653ab2fc2cc93614d959f2136bd4cf2918d2a20d6440e8ae73a652e08b7987d1df8c\",\n      \"4885419082270c83c03f5d4869adc63cd2f940bf527e8474c7c61a748fc883b74e5ffbd8b0cd3e780a92\",\n      \"ef4b2bbe41b9c4e58e207fe9fdbb0e9aed224989d9b9a77e78003b1c2fd7bc31\" },\n    { \"4d6ffdfc693ab2d94d760163bb9b31728a2762c26236f04859b7b31b98c0e159\",\n      \"e412d9b3b1b40c740ce56cdc0bec430c0ba4f95f5d83124244cebae8295b31c5\",\n      \"ff03d03191d459d57a628a8d69d398214699bf88c2ce8694e2dcbe6d9c987056a50319ef387363b6266fb8d3e15a\"\n      \"fe3b2eeb964800799c0686c3d6f0b27d9523592690ba7d765e9a21d62e113788076267cb50193d64b43156b3683e\"\n      \"7ab0758e\",\n      \"78c96946f355a8153659dd06b41b75b8109b0c31c0d6ff2feb90c875a3b211f01061f73a88a9d42550c807676dd3\"\n      \"a405516da1d2639395cb4df526e046d621ec997c1c4fc858b60ff9051f2ee093fc8f032f367bf25b3f32361d8aec\"\n      \"5c0e239dbb129316411e96da198d6fb512\",\n      \"4c3083ed17c2de0981fcfd38bc244c6e6d0756fa3c23b22fe770c0c952159b6e112c6f4b6686aef4bbd0be98bcb2\"\n      \"c32c44af09425f70cbe031d08798ef258a820dcd3029d2b0a857615a939e2a008ef14b949f5bd4ccb4607c8a8a4f\"\n      \"c5f1236e\",\n      \"bfa101aea1676baa3b5205d45b572425ef7da415984796d2b76f01fe5e37e919\" },\n    { \"c9bde00bad3334e5792b5c1e5a8fda8ea7f7eed152c0a3feceb565208017af73\",\n      \"2ee41bb5c473206ec00ec597548161573e8c2adf7387f88e4fcf64c84a2f5905\",\n      \"b7dac21337a4029b80ae0ce7578eb0eb45c76eb84d68c4dde73690162b377118237fd1f466ce1d7d7638945779e0\"\n      \"b148047c61b63c7e05c877f75f4a52865efe94fb65ee99e4b0d79242c69c3aad1c425d017a71eb26adc2594a6a52\"\n      \"16eb72b736f40a91001b13c91d13d5b057ff05ea883ccff3eb6033679b7b41a62f\",\n      \"26b1dbda8f99f9492955fab6891c3de81e4535ed525fdc6d98beebef67067fefb1674359525cacb2119d016876fe\"\n      \"b5dd\",\n      \"6249b44800c9d47ca20cfc1726563befbedf20639735d441917f52cbcc7ef72d5b095c6a15a7bf1239f8b93a62d9\"\n      \"bd5e7f47b05ab9f12b4da72392ab4ba093de150fb8b7b61ea92e6a3204b178e2e1c066102ea9aea6241749ebdfba\"\n      \"4b307ab0a5471d1d43fc930dc29a1ed5e687d41883c69d0de38ffdd25ce4d8ea33\",\n      \"53bf7cee58474076330dc64d1eeff748df909700dd942d8d59da2447b9f84fec\" },\n    { \"6466a65e9fe920b026739645b446cafb70919a5d03a7e890537bf88c620c5bdf\",\n      \"db812442fcc36f2deb4b04a9c32354579abd8a57c185654dc8ce5af21f5e5463\",\n      \"39917090786a9532f0700bbdd94d960491d89b68b2b9b1425ef8db67b735ff08d73cb171d911eb94eda3354e252b\"\n      \"ee238408ced860a8c1657fdf8c9afea4f4bd041173ae22f236c238d38e469c89b2b2bc73d3ec88cda37530362939\"\n      \"34732295e29dda\",\n      \"34c8b124c1e26a893aeee4b228214ce840cd9e49f1ab7bbfbb4d90c808215be99c9da5d0d426d5933f6aaf9d1af5\"\n      \"78c1a6f2b56e6b4c2ef41f6fa67e7f2693f36b3e21223a5428a8a24d2db24d\",\n      \"e1d4206c53b1072c317a494b43323a65d4f17afd6f02f865d94c425f80153add9d611175e9f0bb45c51d7f469272\"\n      \"10bfeafdcbf29cf3e1de3c01f4fc3fa94848af52293e3f48be11d1efa5d6e2aefb62385c97ab1dc7aaa96bd0210b\"\n      \"af8a7c732386b8\",\n      \"bb406b111937304d1ede67719247747cb082efa5e8743364b763ef0e9af1059b\" },\n    { \"be69e13f684ade9206fc567da10871fa4bface67e86e23b9bab7da87f5c2f39c\",\n      \"d8b143fd6fe42e1ddf4460592c2c3239e2dd97bad39066b86d121b658395bdce\",\n      \"4f7c016b4ad5d4822e125851ea3cff387ed83933c6e20965225c34e5da784ba36585e38293c6508eca322e9a9bfb\"\n      \"21b3d5b5b0866c2d32b850072abfebf5417f9cf7c1b3e995338b99cab418b9812863c051fd03131c82b999bfa107\"\n      \"bb987a83528931e75a5f4ca0de75f0\",\n      \"0d32bb65ce4936e3c9eed5cea33bec6cdc7c4e105c132a2dd663bb2cb0fa2ca62fa1fd55ee46ba39853c04655a84\"\n      \"fcb4eec40e5a810e8ecc01063420cae63259ed33cb3fac23b343cbfaa7d9bb30ea45f824d0eaff4d836845baf675\"\n      \"6564c66e3aef9457baa1c70e3a9b6cf4\",\n      \"4cb6bb6308675a9a03f72d1fbf1d2b7b092bb4743e6f8e6d4f8bc176e1778eb226efd8b33a14c3bf0a554d7cd648\"\n      \"80dff4adf7fe622d8b2a51d5a3becc06f77046eb98f6f8b7e4c9a9cbf24eb7a384f87912146662a065f22b984e9f\"\n      \"11bbba929183d4152c2dd607f87714\",\n      \"c06e27543c2dad50440824ab41013fa2fb34bc1c47222e5a157fe2a8d8324c18\" },\n    { \"e365b446bd38e82eec6f10ef0ab21ee388ad485f08935ab5b27d812c77c8c2eb\",\n      \"b5d1efebc38b831ef46617bfc282e47e20a844c326c35981b0af5e97cf151cef\",\n      \"a04e8c9a01dcc73001fc6a53\", \"c6064f3f164594ab4bfe65c76c753d81e110a255d3cd9e512c3ef38d54\",\n      \"bca8a253d89f09d92b364671\",\n      \"4ef59bdf41cb393aada19b052ed31e568855c6edb37d286078ea3c8b8969061b\" },\n    { \"f6c8e88d9e0da3770d3499977a5b9f9d071731244c6b0ccac921261ca799c4ca\",\n      \"de6b3d103cf9efc4cb7d60dd3458e7c5a348692ab63a87c8ff611a336f0bf63b\",\n      \"5eda6f7400227d5f0c4f8910c621dcd6ef0c4f9d2d9fb3feab68b3b162fc3db362acfb61c55b06febf04546a3bb0\"\n      \"02dd6f3b9e2f531cafb7a6b1d31c29483526b2958eddbc9f2eab5717e1\",\n      \"0dff4615b2084f8e01dce6ecf3edfc785f1cc51361f32f29b7e5c49c82f9666454f2143b9fffaac5ad9ef9fc0aab\"\n      \"e91245cc050d5e21dd3d31bb508072d8a23d3e289aede9e95bef1bc8c8dd6d1401409234237f7e4df6db44cf9290\"\n      \"ebca5ee8a69768eb6dc29dcc5aabde\",\n      \"50c1b3be72fed8b6feeeeac72b999bf7f24bec747d30dee62f91753e7a26fdb4666cbea2f437232e57edb331ef32\"\n      \"7119b8b41572e8a6198fd4377e6657520d6e833fac4b2b2b1ea4c01923\",\n      \"342804e54894f812c0879615dd7d4b8959d36f00b03c3e183148ebba41d34d88\" },\n    { \"c9268f6053542789747187da6140b7566024b623dc9691a534bd730764b20a63\",\n      \"b0cd1ad38a01130f0b312be85a9dd570937c0fa1050ec7c3aa31befc400b8283\", \"60bf644abf31501722\",\n      \"3091f60cfb9fa8946e8a06b1a663e60b54a24f2e5f8eb5282d980a21878c794efaa2f6f699300e3facc64197c5\",\n      \"a3bdd452eecc7c431d\", \"32d6f160b3c802fc4a92344f6edd6bd47cc83630ac76b3f7d2d8ea38bf1d8886\" },\n    { \"491c6c8be1926521f6abfdaff5f95c5fc6ee07a800fffb4715e36c5de167e8f3\",\n      \"747cf6c78d7462846364b00f21a26b18c49d7bc3878f478af38a7dedf86c9ab1\",\n      \"9ca6b63dce33c54e7122ef72a5bec5552b1cd8099596ed8917ff694390e970248f1ef672e985121c\",\n      \"3d545120992929ab79fbe41da239705bbd20ab461daeb3f13b74069b0797b02699abe360382669e6752564f6525c\"\n      \"349b0bf6a8833445d14ad99d2cfa1212e20874603760682769ec1abdf33186de04d33621d8\",\n      \"f5a2cf25a6e22b71786ebf2adeb78d0675d08711b0cc9f1bbc6b065f056f1948570ebf4dc8df1574\",\n      \"8c7250ec14c5e10239d1d8d275059a09dce220b496a4869f82718258f52d004f\" },\n    { \"512cb5bfea47aa81a414e0e9c866daa1f2f7d7562a9ff7616ca182642695e9c2\",\n      \"39f87cc65699610a3a5b84abaf4d8333e1f83f640b7673ba630d53eb608f3c57\",\n      \"371b10a048dc329eadda98b1ab87a8fbcf817eac1fc0a40f5a8c3e34e1b735dd4bf2f185964a\",\n      \"96fdeb760af9a39b819676fbd7cf6e025de97d9a735012b0fc2aaf2f845b4d76e97220920b7beb1b7f920e0795cd\"\n      \"e96ff923865a5eec1a08fd88c837b2ac0b38e860b1ac5d5054e46c6538fd916f46e8bb17751cf152a3dd531762a8\"\n      \"abbafe38198dfbd35ce232ec1927b8f47d1833db9bdebf6f7d92eb029056835ae0\",\n      \"dfa26829a13b2383e59180b896920d0a8dc02d11ab91fcea5e004416517cbb465f951447237b\",\n      \"7325d446ad6af8023893386201dc1a8c7b3d603d13241a5bbc33f6248d42cd48\" },\n    { \"f2ffec87944d3061075de87038cfed1797276d8c6857433c9458677f67e090b8\",\n      \"7aef11906a27ec49ace7193bf61183e4c67835c9c26b50381c7ec18b81e4bac4\",\n      \"1460c5acbb61d26d0af31b565d3696e50d6dc022c528f11569dde0ad691b32fb20538236028d51b98d441ba5ef52\"\n      \"7ace9a59ee9784c9ff14e8a1d03b2450bb75aba2a91ddf1827c14ef131\",\n      \"d95e3d49c922e70c4c34edbde880239eec5bad1c13158a07d6a13462a8978158cadb13ee5f2cc95a21673b6ce25d\"\n      \"7c30f0c8acdfa55c259c6d03a4b25d22fa65\",\n      \"bfb8d129ab8a3898eb71aa46e2d976c44d790803420ce1b6c77c399ac19842b1486339571b82d84a0461a946664a\"\n      \"68e6387b4bec56ee0acc08bec0100175d670ebdb6a9c36fcd13126762a\",\n      \"2956d57d9089e44a5c34400b411210dd35c261a9354f6ef1d07235224f2f3b85\" },\n    { \"5c2b46c8c5e5a4661c26ad19be10a781cb845c824a403a6bb708c738e90d9c46\",\n      \"b80e79dc4b26bb75d284f0346697816efd98b0412549d4ab09e5453b14a1362f\",\n      \"ead1a7d4f2a4d5d5a979e16cdbd32005a5b5506968e18d68a598ba5c0fe2863839ecb029450b0b2d0966558a890c\"\n      \"af2b2c5ee750be7784f583b6d3e0bed0cb5d4fa6f7fd098dbe05ba8416c400faf2034c3074dc1ef7d7ee63ea1cfe\"\n      \"d18526d394c445848a959fee\",\n      \"9aa44ce6a70328ac8455e5648a34176e\",\n      \"09633b3761e956bca7602b876d9b5429e64e56c2b39ee00484ce92ffa7395751cfd43f6c46ac3b0552fbc2280404\"\n      \"df446cdd8632a41fc7989c4d603b3f6b7efbd075aaceeb3e01bbe60ef88b696ac22f41fec3d7b65b35c0c45d8bfb\"\n      \"0cc99d80316b913968089e28\",\n      \"2e1954215e5487ac78177f851a580067ff75de270b664e962240f38a42f67150\" },\n    { \"05fead6fb5a0f2be62533e0a29377010bac0a25c753155d56de340a094e7c426\",\n      \"aa6663a20646cdcc620fcf23c31deac51ef80b68bc8c5df1f91197066763eb39\",\n      \"5e9162142770449251a541fcb7798ee6a59ef56c518a96742b4186f3d27e3a8ef9855dd5c0c586cf957725726a5d\"\n      \"9518919c54b07b87630c8f5079b49aa656d03b0a10ae7aa498c1eaf4bf0660ff999c8080524843ff8a8137d95921\"\n      \"b8425ff6a3cbac4f52c198f9932af067ef734ca00b682f6ad0ef0e\",\n      \"08fffcc594bc5d08a1f6473b604289aa885d9b199c2acbc56493cbd740a5127ed1e218a719076a310301954e54f3\"\n      \"8b682eb9f50cb05d2335e7d82bb88487f333\",\n      \"211957354e5bd50bc25009e2cdb0adbad870d25aa02c3759bebb29ea2de74afd194aa82edf530086b07569588e5f\"\n      \"bc3618f762712d63844c8177d7d24b2d9d5f6be5ff98cf7ea678ac7022a15c17430c20213ef276284ceb7f35e00f\"\n      \"2b33a124a88d9aa6ca5eb37afa4076b051f94e2c2018cd90bfb499\",\n      \"79edf8d61edd0c8d23e2337c3cc7db00a622215540796800dd4c01be03958587\" },\n    { \"96cfab5f246dfcf8b33a9e80fb15f90a089a9078dabacbe767082da806cb4fc9\",\n      \"6a0ad0d16594d33730b03a7b40b86581fda3661264ea17f3a4327160a30f181d\",\n      \"61b0d79387c11ac4a87c37a9b3\", \"a62d02eac118d047cae4ebd58ce97a7c99ed90f4a4bee9a442\",\n      \"d0762aa4c8d20934e91a999ca5\",\n      \"c0dc96d5ad1cdff9445e163c0df739880bb4dd741f4ca70eef655b213b53773e\" },\n    { \"4206ea8a06c8fdfa6aa47e76e317c3108169d142f6de50927345a2825767a7db\",\n      \"b9c7d7ce4503a4ca01b8762ff383f0c13c240d0c9ad691cabb61a73fb1ea7dd0\",\n      \"0915f9ff74e3b4cc4d9faedd463176e8b4d259aca80b64fedb9427394fc5950d1db2ee8a57\",\n      \"4b283f58f0938a62ba97144ac872b231bd93c8bc14c7bbe22f993598544d90991d713e289cc3\",\n      \"963202b6d18e7742621ccdefd04ba47457aa639ec78ea6ebc277d062117fcb7f7efbe926e7\",\n      \"33d965ed6fff8369f9e2173f784c19795ba93776e9de83fe0292830c0ad52dc5\" },\n    { \"7729253efc6935859e8e7cbb15850aeb37e0e3fbc017754c9583d7b4353d37f6\",\n      \"8b66e8adf9bdc7907e2127485410c30bd8488901d0c75857b35c087eb9e21d18\",\n      \"ea7d864e9e1b537c409601fa7b35ed10e66b71ad6a81aae70ab07cc69123a459b9020034dd165a46035ce9ab29e7\"\n      \"01d3622a76947e7adbf6c6fecfb4316f35e24fb01a5f46cf57\",\n      \"a3788e4450cd6edc283dc66866a7d03b1250b8868364bdfa6017cd9a518046304c4e46f5203e547fbf9c5f416429\"\n      \"41b198ea1f640ae2f6431caf544fff17a09fb288904fc3f1686c496f7c3dd47f9fe013a9\",\n      \"01a5877237bc6b94f0597df25ff9482976a5ff545dd26759efa03b10280d5f9a058c7bb1c230be66977d463df1ae\"\n      \"3ddc3d7ab02c10313320b5dab74a22dc0a6d9158cd3900a184\",\n      \"7539465a447f836c3d2e6abfc53a8d9af7914d2fcb738735d64051f8f14d59c0\" },\n    { \"d0c627cef866ebdab7a8030be47a9aae4e97311a3a1896de7971c78feba16dfa\",\n      \"505b133a1f82a9eb4c57c485d139197fd3e59dbb07b9c8a02a32438f6502fd90\",\n      \"206f537aac47c77eff924a9b3e74ea85623945e1c24490\",\n      \"636238aea904adc5f4582d48a00357c4aa57ff1f822fdbf49cadf780f5e346f0153d8ecd353073517fe4f080\",\n      \"c44ce4e69f32651596fc5fec1f9f59cfa62c7a44f7281f\",\n      \"36d1db8dfadc687ed88ccedc2796b8aa76337ed49e999091186659586295b6a8\" },\n    { \"e13e72cd7f25a23b4f605050771ce73980ac37ea3c2104a17a6dccfae70b795f\",\n      \"3720f810b9d2fc0c01abe11477689b78ba6515488483b747fdf66f243f2bb387\",\n      \"f2468d65f0c10f82d7989e84b500178f011bc98c199f0bc299c882644373f554ef4a6eb8ff008bf005aa8b40da2\"\n      \"1\",\n      \"1041f65b724df64dd279659ade61cddf90672f490453aed4f019dd86fe5eee3c15c359b01d0f91a34a67bb67b4ac\"\n      \"f51e229ada29499a0503fcb6eff20be9f59b4ff57b73e173dcb1faddbb111e645149321883c02b7f2ec265009e1e\"\n      \"8331905cef72a24111fd80de344b420b51e4daa88e6b3b054dd96f4536f5\",\n      \"79e9eb1f7879d2c2b27e52f3f00fa7c0e813da9bd741f1a3955ea9de04703a8624f6b7b91b0d720c95432bb57fd\"\n      \"a\",\n      \"4071822c3d3d92142be2437266fba4701e5c28cab4c11e3ac32d245351b66135\" },\n    { \"1caf2693aa463ae93d13f6b687d7a19fdf047c30d054c2fdb5e07e88b5ab5a08\",\n      \"86603e8c83f17abf6af5d8571e4f78955440c1aa97bb6a6e146d787fcc1d4e50\",\n      \"ea9eddcc4ac951c60afae654d012b307f21c823da4ca44b3276c7f7006ce82c07d8caefa665636d6f5031e31bc7\"\n      \"7\",\n      \"cfbaf3cac9237f19986571ec0e39ed09b1a5107cfde57bea24b3f5dba56bb7db7459c4fa82ade76f63ec59e9400f\"\n      \"4f51188734811bb563131f49c2e2d71841334b596a63470b2dfe3a421cc657129b449628e5c1ce39a57ff07f2130\"\n      \"643a725637014eeba27ff95146a99a06e2584cb9bb3f12\",\n      \"de9912a8bec65989ba4c82daaeebb14aa21246bdcd52d01ae5d4e1aa3d70a12277651c75d62569349e0e4cebd80\"\n      \"b\",\n      \"7af7d1875ed73bf8db71707992f07ffb5fcaa82f5a821c0d3a9000443db1bc45\" },\n    { \"cb1a72f1752672a7fc0ccaf10c76257c047fb767f42c3f23cabc78d35a8cae4d\",\n      \"a48db1fa02317b85f1787ed869f1b13250d7f582304594fdf4a2899d50e22c3f\",\n      \"25f09554ecaab85e2d00c6e76e31222a9ac91b79fe9eccadb6fd38bdb948502849ea5ed30470d0d94335a64fbfe0\"\n      \"d01f5a5b6afb95a40c5406c43e022520c2c727d53f66846e35fa3fedb4c7efa44a16\",\n      \"72c88fc1764d922dcc6f3a61e444213e6f7877ef585c65a57ab9814813c9ae73b5a4619b316a6cec5e34241ed2f3\"\n      \"cc530d105de4e5ca356ad66cb95f2aef4cedff42a0522f5f7d9d7a9f2fa54901e914a5b733791ef5236b78d06533\"\n      \"5477a5eac9d626da94b36a76c3f702\",\n      \"ca4afd213fa1a13a18e6ec57488012451cb648902e367edf72902944422f3dddbfd4946f5b34292c39ddd84e5c76\"\n      \"91afa22f359cec4dd14afd210a5df66a5799aea2bb57c17f29fcf9c3aeb9c528c260\",\n      \"21ac240f5e13978f67a5a233e6ecadc5e555fa3c5637d29661ed9196556b231e\" },\n    { \"34eeeed632897724c59cc20d82ec745af1a6b43665ac88290c11b9baeda6b80a\",\n      \"562c76d4ff6201116aa3ba82056b43d8106565553efa4f65be2776ec7346156c\",\n      \"485560e1c34a3f1068a77cfd144054f1add7ac802d013adf462fa1e112fef5ca2ee8b48c1a37f1d62c06\",\n      \"26f75dda69bd27835c891b9d556fb7312ed524c8f4fed9029ad963eae7a43f85a6dec0146b919e195bcbcf7eeac0\"\n      \"09ac5aac9ec784175e0d18a25693\",\n      \"4a7861fc50e5c17910876b4cc45b1249ca8b8ed3940e82f5f6bf6e0a161263c66005ce91edd32f876c4c\",\n      \"72b792ed7d8e1d5c044c452daab093029c63881044bfa97a819204f8fd87c499\" },\n    { \"ffae6a920ea2fc5baea3c3278f8cbba1f1ab3f07f2499cc87eeb3df3858d67d4\",\n      \"81a53e4c40e507e2071b7f9464914a273065ec7f24c5e6e5d0bb77f6fce20b76\",\n      \"484672fe6dbd8223fa1cc097886e9b73e971a6120b9f909dec308cf1df8d02181216b35ca756025dc50f6bfe3d19\"\n      \"2cc5531ad9bb4dccbc1687afc507539b5fd6259c80f55fb55cee1708485f78d013a03851e4e6ce28c0\",\n      \"8bb27c47b62c7048b6117e0c631313d2e165c277742a2a1cdddd\",\n      \"8027f08446e70cb72e52679809488940fe1965ec18bf1c56882cc412e41f7727efc55acd6c2b996b5fac79bf13bf\"\n      \"ddc7e03b3900f57589215a37ff34241329ca7b5da9ee238ed7fdaf5b1bbbb172e040d1dccc6acbd8ae\",\n      \"d25734872533b137110dec26861bcb77fe062c0c41775a2a05ccb86365bcac09\" },\n    { \"57f2386e011a547a48e5c8c170bdc2758e246d4fdb4b5f90f06945efb6bf6c9e\",\n      \"8647b48a6ac27f0b6b68f09d9a264963b0b62c8cc8b454ccef9c503e6d568b33\",\n      \"523120a8a391e743e7e2d60fa509345da8145db83631881bcf21c0c56b47990966ee08a36b361d2660268bfebaa2\"\n      \"2d4f5a8584c1c04a27693adfef76e910eeac0454c4c1aa3b\",\n      \"e7b43a9582ba177e97df8725092ae30620a9066c1cdfa627dda1042f5a325a46496c4b200baff0e0709c52ed0ed8\"\n      \"2ab11af1efec1e05d044f50d25a38eaf6da2fc2709e609df95f2dc6500d30caca60e421a169ac0f1f69b1d774f37\"\n      \"5b942edfc4151e0c78\",\n      \"a032008e9601e05f87694a001918c0389b66d13ea514f4c2d5c891591856a3e45472f74b14c409376060ecd90de7\"\n      \"b700b0048cd84bac232f5211768e4185086d7992103be87e\",\n      \"ce7174bc583746a5183676f5af292df91213a864bae6e6783cc51543cd18e80c\" },\n    { \"29f1e4ad600bc24f64d2a99669f7317add8e61d5d3a3dcda1968b398e7ab3a8d\",\n      \"15190e8300313a59c0c6c4dcb0358cc88f7e856240091f1b1bc599a2ff3aca00\",\n      \"b01d68b18df703fa9d166efd6aa3ac15fd48dc99f4ac806194f0f500be971560b3135ae422095a\",\n      \"cf90cd99d137d5bb0203c0a97f5d4842f4c0ad975df8a5dd863269b37e94fbcd941f220736ea4987e9cfb73b17c9\"\n      \"39be601c40daa99133b9a0f98bdc4e4b77bc47d307354119a2fab2771285048a273aa859f99a4ceb6bcf5bae19d7\"\n      \"b9d766529d53e29a384304af8de07e\",\n      \"321523038cedbe3da195d701835cf62941e6260c3c4ce5466e1fe14b36bccfc0bfcf4955f1f061\",\n      \"75b72ea023300ea4fd27926d097e49d4955c6dd6747ea38d2c33bb21ca61e168\" },\n    { \"4600adc836738547a6e1fb257d6a7c290d4895dcbff2e071dc38bac04f338a30\",\n      \"ab2f8f6a728f1bab52541407027c51a1619c1db32985120f5ab40cef22e08edd\", \"f8cbb1362eab78f7\",\n      \"7adb0527d13748950fc60a8f6879ec1116c73817e343958965359c8f7f7465b26fe5da1f43112465be72751de684\"\n      \"600456e97856aee757161f6157dafac3\",\n      \"26baa1fd39aa3c33\", \"147f674a8345d803d23714b057bf8c030ffb002b6f9dac1a1a7d7582dd89b746\" },\n    { \"01f560d41c4dcdb3906e687c5fe23c070b9a8a9653987706f3357037d7d512d2\",\n      \"a47633929b3fbfafd2c29d25ab1e8e3b6402aeecff25d60761355ef44ace4cb0\",\n      \"6e085d40606a8042e71fc16b720cec34e47d9bd5e0676f74b6be17f7c78b53ab910980ed7b0622c248006c0ff9e9\"\n      \"4b66b8944acfe6857f3241d0abdd8d70a4a81eb0c0a86dde53849e34643b9f37e173ed218d88bea948a240\",\n      \"d7631a8eea17f31555b3d4abf16439f763501827180a1f5e58389f796f1c0b468f41ea3ff2e1c76cd02d180c9df1\"\n      \"e19f6524b2a8d006f2f954f340a2f0a5a97946d39c34b935f5da5b081f18ecf457b6f0b33a37185ea8af64aa0ade\"\n      \"40026580dafe1a5dfd2c4a7acfa8a8254897c7fd3b\",\n      \"c309272b71ffd6ee1ed80b91ad22fe88d0488fa7c2dc4539f3452d6d6d1508c162bb8df3ec1fa5ebbd8ab738387d\"\n      \"5b0e649cfd83e17b3e943ccedf4548171c82cb8f0b2ae39c48d78df07e282cc40c3068dc70f1fc080114c1\",\n      \"786061e81d76bc07550cab11bc1ba1765b41e2967bc8736e11029968cbd85ba4\" },\n    { \"c440e9504cfb4544932adc72ff5fc1b657ba0aae703b1bff33805b7f9b81412d\",\n      \"df08a05337a532382953728ef1e921b772d435803e671a02e9cdba82522714a1\",\n      \"9dfa0945de0d4c2cb76aa55f8b55761911163b87993db7964760dc5e807f003b6875f74eb34cc160942f580bfba4\"\n      \"d96d967d50b1b20b0643ae1a2c73691b6bfb64403350272686fc8bb3a8e3a5674761c2204ca240e37005\",\n      \"0c9f5ad3e58b9bf021e09b83564c8d74b1b2bf7c8cba0dc8177084a4e1a07bb84c30c3566103f538\",\n      \"279ac5eb9bf6e01cd50a0eda161658f331226f4c8d43fdb793ae07f353e6fc2f2821a01a02be62f515af80633215\"\n      \"a908aad8e5199c4ff23a38277ff8f16f15058d69fca995718c0d837b6db3bbb5842dd21c07ca35b21bd4\",\n      \"16f09ea8657c053e907bdf8f822936f2cac056af25e0240633c80ae0baf7ade2\" },\n    { \"ca81440758e13fe0b847ea81be8037b1be4cf995f805d4f40c1f421c9864ab9d\",\n      \"aed156910fd8af6af094c74c0ca0fba932b436bc282e0c5c910ffd3651777117\", \"fd83897f98974ac8\",\n      \"64ff6ab0506574c5020e14c45a009192a7a17ffbf6761393e17a86aaf339264a5c72e9e2b7fd22832a999076dbd4\"\n      \"9c75145228ba6d36b0372042e22435f34577a2c3e1c89e2e1846dbc393d57064f016d0487d591fc6b7f8499701f8\"\n      \"2568182041929386c821b74a53232dd596b300a13fa09949939967e58b2c0cf2de5b8b\",\n      \"cc1913d2e48750a0\", \"59db1143754b19f380fb1d1b9296fa992b7c2f5adc56f451349d1ff95cd2a1d9\" },\n    { \"a657ee84d894bb98db137d57121d149eee96447353225f701b4c0c8bfc5d9497\",\n      \"1edcd529feb85cd69e484c0989a9b60776437dd4dcf988e3bfcce5bead13f331\",\n      \"4fd8a593ef021f81603e430e0c9eef2fa2e7cab56d86b13a9ecfee70fb96a7bb0cdc7b23df061ff73b96a289faf0\"\n      \"c0756f0c2e4692489e58391eae3574539f40189fb8735735deda0c8d71ff361155a0d3a574b193a31746f0272001\"\n      \"fbe8f840dbb4f16f522c90096ae5d76209af6eb2e423109d2bf0\",\n      \"fd167c49f8e588d06df1ac5d94d61538e399d0c531aa0ac0f9a1c030dbd3e8b649796917f4f8f8078b104352b156\"\n      \"4a042ccffd30c19340e067d4f17b0bacc47e121a8808d06b1ea6bcc06ffbc1bdaed0999dca79212c8df6ec\",\n      \"99f8a75bbaef042167ebfb927e6ff5bdc23e3a2084e539780ffbdc20d9be6d21e761381f23937f3179aeff80469b\"\n      \"a65b8d2169c5695ad2dc64e39d165eb7e57ded4ab07182ca59e516b41dc463c2093425d9dcf6a377312e4437d441\"\n      \"6d063324d24945f86c57a060cdb4c182fb3c9094e6c43af38a8d\",\n      \"977af18c47b4e1bf3f6ee45ae865d3e3dd6ebc953c4ee636c3e560beb433c5d6\" },\n    { \"0cb4ac9b372daf29e69a698a434c67bf822f88eabe81c2fbd1869b151bec66ad\",\n      \"b34c3f1d39ac43e9a10ed22019b858a679fc4c629b7554e4b205ec3f31d601d7\",\n      \"40da148ae0cd9eb7d108fe5b04664e6369ac4f24465737a33f2a16164e67a84a403a66ea3f4166b4304f\",\n      \"1559e36d745dd40b60d8006bfa6ad62f9f1a8a7992de66bbc71d8ddf18fd68ce01e7910a972a028334f686c3b214\"\n      \"d725d3606eb3b762d69fb1460b95e949a724d09977c41b13fb094e16e186ddd429515e939e641cc38e5f6c492f3c\"\n      \"f7495cbe2b474c48f1890e214edfb8580d1de07855084d69ae241b421ae6\",\n      \"e2c7a3fcd1d66a1f71301dfcfc459ad8c3485f2586a4594a02e46d35dbc4e637e9562cee2e317adc7120\",\n      \"feae706283fea438eaa7c20641bb8446e9695cd9a0292f99b3b3ed4609a28dee\" },\n    { \"b38e1805f202898c64975134d2369d065b808ca28ac8562bef3dd97b96650b3c\",\n      \"1bd55d1c60a6f84094c52906fb2f711aacb93831fee6dc27fb6a746f4c412012\",\n      \"d4817734cb56d6bd3321c7a3dc4e23d5481703d72075ae6127f1f366a0624bc1e2ac175db9ee2fe4a9c0a016d1d9\"\n      \"955c652970a05dbb4b16f7d2e7275b9a915bc39df5effea00190b77eeb6fd056cb2951cada1d8ef9c8e9ca0de03d\"\n      \"7b2d659c947c9a82ab512641ae734f82\",\n      \"1be672d193cec78c85db5636ebdfe4f087ab5a2fccff0885fb39b60f901e8d6921e4d285b5daa19dac9032d6b03a\"\n      \"2a81740ba4ffd833e90a942253e607a800c1ff92\",\n      \"5be3df33c976077a603612ee85cfdf388953e958e5ee0c53271058258dbcc1fa8e493e044467fd00229b64337644\"\n      \"8e9958dae478e59808839daa20c983159be864a905f97e7e00bf82ac97bfd9d005f3282886b7c1df0b505f75741c\"\n      \"518bedea91f800fcb135688940a38022\",\n      \"5fe7fac48f68d44c9c8d8be7ac95025fb4bf890650af092d1228c4858a8c1a9f\" },\n    { \"bdeb596ed2056c8a78eb1f33340d2b8b0789cc456d6e8db9bb45516233900e29\",\n      \"7096012b1bf4f66f48c1f26ab48d8594d244be86426438993ed1cfad84376c90\",\n      \"5f3638865cb87188951620dfbcf77c6da914372635542fca218b74f5808090f8ff72919975744dff1a6693a759da\"\n      \"7579ee01c449246e12783546333d9201ddd0e9941acbedc6c1995b09\",\n      \"186d83c27e4831ef0c472840230860513d15b0f3df6a27ce2decb7a53c15e38c3b043c8a\",\n      \"399b4dbc243c979b481b18a29415fff5065c9da5367679a2bbe60b5864352fa096c65cc51c9d5054844b8f0cdacb\"\n      \"c638f8defdc81b7d80a9f5b1fa58201f0c513dbb192ea93a05dda87f\",\n      \"7f5644fb9adcbc68a86621c4d6d7b1b32a62cda6ccdbe2d5fa8e708a4de8a3f5\" },\n    { \"42985b7c9c97ec16bba3c36bcf82e93205c35a57428262d9e45a7fd494a9020d\",\n      \"be4b2dd3dde2e7a773f7b85f0acb48d65bdbf4d8bfc103eee72697c8834a5058\",\n      \"6bfc05bc2457a43f50a7391a2c38627fb0429a446ac684e7552cd54c07b9608f716ceeb50d6bc0563247163213e6\"\n      \"2ca2bbb5067dd00b3d884795a11dab0c96e23419ce7779554bf39c50edd6ae225998cf96d1effe70c81d348a938b\"\n      \"116fcae5d402f35aa2900673376576\",\n      \"a7f9f0d4a1cdeb5abf1d927f6968beab9c6ead6995f484c016\",\n      \"985b208c4938d0fd9ac7b653e0d04445fd9666044e79a766c746354cf7c949e8724170dd76245f2af71ac34d379b\"\n      \"0be203bcb863f40081564ba161087605a9863f5b39c2c7d0f7876c84b02d9131f5284ce5d837662575efedcbb3b0\"\n      \"12053e2c4b15ef4ee0010840552759\",\n      \"ac55330373905d10205b0884596166370c6c9c52af6a358bbf09195b3e2f2626\" },\n    { \"50034fdf7205a542055cf377ef546d1fe01ae8c7581806688c04279aeccf76de\",\n      \"215de8afdde0916097f91dda6fecbd18c5e65bc685e10488e99a225a5887d92b\",\n      \"dcd4b2ef9dd40e50adc8ce3fb674801d650e\",\n      \"6f1ce70899b24793fd8ad89784d62ebc43b750faa9bc63fa44e707cb6877dc400dbcb85500a386add1052bbf090c\"\n      \"637c8c618428040226209023a0db954ac26824ce40ba5021bb19d1a65ee3e3c4261c9801bd85b9c282753072\",\n      \"df3e9901518fa830aaacab9a5635c861aab5\",\n      \"b2a32c41c181a42175cd9108135f815663981c51f43af547e7942f77ebdc46aa\" },\n    { \"782358a4bf3258130b1ab345e76184bd37eeff55c6efe7b8489626e5ba01741b\",\n      \"3ae5c450b1f426cedd3f5445ee785b6c2718d587f4239053cbad839e7e19f044\", \"454e\",\n      \"bc5971d3c8a7284f6218685581fc0e67572e5f124405136021536da07ec4d443015de3a708e72eaa943f5b5fb8f4\"\n      \"85472a3999e95dc3ab7cf72ecba533006681a49f39b5d5768e9ed22e3cfc7d20d3744308a6518d46a0\",\n      \"8a75\", \"d5cf51a52be53fc9b297efd9c0f3421e598143718f7f46fc3dd542f166a65e8f\" },\n    { \"5958a371e26fff28efef8a6e71a0b81b4a14e3cf57ac75d215376e050468806b\",\n      \"1293abdd7b6c43483f8caa43836922fb3a92feb4eb1476f4fa5ec4f06a0431f7\",\n      \"06544eb4f4baafd8880df8a4e1da38d3111149aef41669b56ae2\", \"5f6cd8814bf4915f08cbf1\",\n      \"e4b718de939d6fbb41e32b57098b08fa16bd39ccc085625d0546\",\n      \"d1a48afe22b3c7d28e239f103b93b0a200428f4bb8e80fcb2e5110fd1ed780eb\" },\n    { \"7bdcad0b011743f3dec12c999ac89b28f60e03564cd076fbf0183457846e606b\",\n      \"e008a14a3fb5e56e89e02d5fec31b37b3fb6357682bc3db3368f25987f6205c2\",\n      \"c2bc1a650114c6d522d2f928c6a65fb6abcca554336dfb70b51f61558a349387b35462bba19c3f8f13488fd4812f\"\n      \"9d6d58d04a6ca93e8dad62a5f695a0834dd99f876294\",\n      \"18066e9f8cdd274090f075f3047a455ca6be1ec4d1672acb013f328a1d981bece9b9c9f0f38dd25db8523b885b47\"\n      \"cfaba4844d5bb3972591bdc2b68062e7fb0e08773506e7851a18fbc6cd29c29358a347ea195a10f5a7d874010909\"\n      \"278395f2f9820ee8eb6655602b7b44c6c1642b9c157cc5c1a454e1b18b46\",\n      \"bcf887985dc0e45a156b522f02c4b2adbf90a2b30f4a30ee68505df9c61d3857a6216a827c98d1d7df6dc664a526\"\n      \"32b61361f4d86ca646c83f690015535b149c545efed3\",\n      \"bd2cbde77f6ef4955e956d440226534942f7a41a659eb826647b3a99a57efa87\" },\n    { \"21505992872622190e47da3d4a985ceaf356b35e096429bdff8e4a21fcbeccac\",\n      \"8b4ab2427a4177cd205fda2b2b31f8f5ecc5ff591262791f88f54535f3054977\",\n      \"1ceea40aba4d9328718e9939eaba25f5b558ed0df855e743cc958506b4d0c5e44d0690b9637bf94a30e861ed9260\"\n      \"e254d602be895f173453a7977236846c4687d2b38470f074b07e16e67721646989421cf5081555fa7bef42a83066\"\n      \"6e6c2c9b61ba14932210\",\n      \"106f5b1fed2f5d3a102733ef6fbb7e190e508e7e8cb73766bf18fa4d50b87d6f83144f9b616dceef6c0b085f09e4\"\n      \"27f7f0985a535fd9edf3bc05aa8dbc0db601cb4f90761420164fba50a68c5a87322fecbe28c902b03035e88d499a\"\n      \"f758eb2049659f2561ee6c5210579f8c0c\",\n      \"1562c0d501518e478b0c5561b32a79bbf5249d0eb8db411190454b4f3a458bfc200f65af91a22eb0fce63c726cb2\"\n      \"b51023d294c9a35e0ff842da517d6f91b6126c0ecfccd72cfc35d7ef98f11ebbb4cd071c2eafeda598a5ccf4e09d\"\n      \"8cff52ed583d968525a7\",\n      \"1dfe935ef87488e515897c850bc899d4a9844d512969802e98be90c0343bc146\" },\n    { \"337bd1641222ad96608b0928eb3e05fee02a6fb1e2f66cb4c9b698d1d96ee39b\",\n      \"b532f2e6485513a5b21a6326beded2b3a74bc49c74db3f7a23e440e5bc864e7d\",\n      \"9cdf9d6c42cff95ca0bf8d199962f55ce013348fb06d878b10a344ad5a7b2b2981b0e44ddb7dda1f74bcd24f3ff1\"\n      \"bb63da249bb02234edf123305759780e45ace82aac7a95adbd1c7e72741e374c82a4524146d13589ef28ee593678\"\n      \"9e65724b10406aff6d19d0fee8289033c094bed67df3fd45b0bdd52fccc25492cd335a\",\n      \"efa6fdd7e4c161a5cc2eb6d67b14d6d8f16ecd3c52e8c9720709c321de05973b51750a7286120a50b3039e54c4c5\"\n      \"e09785f815ddb5eb528b43e972bf4c60e41252\",\n      \"4616337212a9b1fb827ad8729cf40a8309330dcc958ac0d5f73c9e57279de69280065e13fd1309153243c1303cf1\"\n      \"16227392c9ce4b8ab505a580c06926587378c83f49c30021a1f4038180fedbe90259a9d468c87bdff827da1d01a1\"\n      \"23fbd5b091d62d3b17e3ce7f4e83cba4510dc1e41b420c2ffc7544464befe9eb5a898d\",\n      \"709914dea13632a2127159bf004a73349efc090a46bfecec911c63679a1540e6\" },\n    { \"88f3c9cd7b2f27295c5defc7ba7071996ae5d558192c1a4788efe8a3bc3559d0\",\n      \"d1ec8bbec1bd039825009a00b35522ad81c8de7bbfb698551f880b05319330c6\",\n      \"5fc7d4fba7f9018c91533584a5e61be925559d1c8b1270621aaa2f0f51ec69ee7b14628841e2a234f3ed4279e589\"\n      \"bc40339928d600f79a051db41699a98a263864ae34909a7c37e9c833c106bc5e996c730879d7b94d18c87741a3e7\"\n      \"2bbbd30a5c7a\",\n      \"9c\",\n      \"efec904dfe14b42ca52b083ca46fc0ab80877b425e8cfbafdbcdf8600bcaa64afa05119ebbdd0f8db82ae71236c2\"\n      \"4cac6cc53b9e0ec701f94ae4a9217f9f63ad426394793cebb1f0af7ba4bf0dc8ac621c48e2a435955afc79f095ba\"\n      \"518e20bbe360\",\n      \"1ed588fb6966a006fccc5f5a6e57949f9389f89c3e346bd8851610a0b159e958\" },\n    { \"db7c3c7c7e5aa8a1c5cd5173bfb0d25958db4038a3d8deb705c102935fea8f21\",\n      \"315686635d388d5b2ecf3b12a8450280d92555a6920f6ad3b48ba3b4f8ec5053\",\n      \"939b319d85880267f8be72b69d2a22ba2460bbd7ce68cfc9398afce09c4f0005cf510db2aa894dcbf08120f07640\"\n      \"255a9464056ec16765521f23d602b5af51cab7133cf01123b3038cd7dc47fdd7801c46fd628de0aa\",\n      \"b2da\",\n      \"783dbc7d88eb43f69d7330326e58555f58df2e75a019586beb5e4a303a3b3e4439677fd7e00a6826372cb2bc15c2\"\n      \"5ab445bb0dfa8aae1f4d9b5d6ded219e69037c161c7fd5911bf08e3179419dbef05d37df75fb19c2\",\n      \"b96409a14cdac61218fcc2ece389e570ac6c665856f36d98fa01be4d767b960c\" },\n    { \"cf1f1538739072f57ebf0fa4090a63c72cf8f5bb904effb6051073596ed1dd19\",\n      \"41e11d23771626febef2435eaefddf0c93a484ea6c4c7fa0bfd48f93e50b646d\",\n      \"a22ba67dac88efd1988863f8991bfc9dbb9dc1a34e3866b0a51e088671971225fed3bc0369b0bccb436249d6fa30\"\n      \"e7\",\n      \"80d7f1fc70203411f8827cd7eec9888f26e39e055d8fd1c2876e1e252b3b14363f493100f157d8246c29b973a490\"\n      \"338dfa0bcb52221d260875a65e22a56f655a55330933b35e2937c53a625a55bf40564fc58f742ecf54aed0536ca3\"\n      \"f7c59f6d\",\n      \"b3c76b03eb90c78ca281f178f30a92a98ed9966698ceb24f15f6c5ebf2e65ec4880543847005a58006a0829d2d00\"\n      \"b3\",\n      \"22f4354c7487a2db0c8c2249fe96909ea1cc9a053447b4a83ad396e3b3ec87ca\" },\n    { \"38a7aa902690a3e1b285953e0121eae7304815e12a015fa98cbd227e6f7d73c1\",\n      \"f23f9ac01c0b118b684f10031836f7c92e8a70eea0e916dba2952b685ae2c148\",\n      \"995580acc337ee1216802b1a45daf0df12280eb94953ac61916d35eee038e5ea1d1f53da1c6a3e17d54dd1555e79\"\n      \"c4ac988494f805715f59f2404eee2fdb592fa538928d\",\n      \"6b726ca02fa44684e7d92ddb0b6e2f30d6a6e75b537f209d21bf2375718b4092286ea592f3c1750af21b12f64961\"\n      \"1370ee4bfac05e0281c9731242c507a56d9d6522c26e172fb406f3e61efbf3c346917988a1dc85c829d51d3954a0\"\n      \"825d2ca4d0e2a784c78ea07bfc5973e80fe6b34ccfe72457\",\n      \"c73f3832441f59ce54910fd16dca9e2bd59a168ccd658ba3eb87fbb1ba561f63ad73ecf9618481bc6e8c8020c60e\"\n      \"8194cc65bdea155f0f6cc79adaf2334c099793efba4a\",\n      \"5c52422a24f79990f26224082d375bf81eaf5df242389c894cf89c4d0131d01e\" },\n    { \"aa54db3f1c5e6405d443afcf4a463974448435f4002d64044a21a04c269759b9\",\n      \"0711d3a79176e4c75ac8cc1ecdbadd4203a6a4b9eda4c2ef17150f493d645b8b\",\n      \"5a80d351e6a2682a6ceeb374acf59de7e7\",\n      \"171077e40c0a689d44003bd1ce56c08b81f6fa3c118cf448f5e8b6386328d5e3465132e5bdf4f73e60b1b1e6e021\"\n      \"d05f6881fe7ec8be523ae7e6c57dd1b0af6939b79dc785d584400dfb71aabc336817e295a922aa1d46b873ad3863\"\n      \"3099ffbecbf43527a1e64f98d82cf85a18\",\n      \"5026a9cbdd2239c6a9abd45e36d5b46b14\",\n      \"afe7bea6340c227c0f062e73a05e1be4aa63b93d35f2322322d3e855e0ef5887\" },\n    { \"c3dddd6891c6081f6b478a6cf89574636c8905efbc8079ef1924b97036a050ef\",\n      \"abc30e2892910e8c3fb83d4cb6f93eea614a7ff03b750e31ad5fc74ab77e0715\",\n      \"079db15c3fc075189ca979ae738e72f0e5a35410b0b746d2d92874f58214cedd7e69a5337485ff038a44f18cbb6c\"\n      \"9bb02bc396aa128b87e7888011e803fd9f43dd43494dfb2b58981d1f95820be9d37cec3bc4f779861cf59137f764\"\n      \"dd88ea41cf044d9a\",\n      \"56c59f42c3429832f9f2333099d2c422ea40cf36162b162e6cda56a9\",\n      \"6910f3c047011cf301c6d8458ca4d1c40aafc129476a9c89da7b35ced9479edd3c7cbd5c1ae7a8fabff159cce121\"\n      \"c170c1e1a884255b08758d640371d26eb031ae92d1deb7091f202bff0698ca059eae8ae572ada217b6d3df5d446a\"\n      \"a5aef503eda02f5e\",\n      \"f5d285ebf784c68df40ff4324bf79d0808d43f0739d297f4238b833a7cf9c013\" },\n    { \"77716c56b9f0e158530b24ae8bc160f827eb4a11ee3b1bb3fbef3922e41d58c1\",\n      \"f340f377c03ffca01829e013ba7a175b158ac51e5ec84e13dcc1a1974e157557\",\n      \"2b9b2bf80c7c65d0a2d243cfac9d01ec9a0250b5e985d430f5eed4ca6aa62b31e3f5d4256a9c998fc588c69486ad\"\n      \"41618d8b9094468f9e74b6\",\n      \"d314a97f25ebbb16aa2d8a444c70474b5733fa18507c544515ac905450507c708868a7c3847705fcc3b7651a72a2\"\n      \"15675a24d44aec160c562c1d68f859dcd4b9aa3569595e040ef6\",\n      \"a58d41ed071ccfd12e01de4038783e6b23f84f55354dc0368a025cb9ceff0aa01d9e77badba040fdbc5cd984f95f\"\n      \"4c6c6ad1151f02b5687ffd\",\n      \"f66ee48f6ab2bbdf3ebd292a11c997bfd6f81ef5a9b61f0c9c5f9e77d7fa2624\" }\n};\n\nstatic int\ntv(void)\n{\n    unsigned char     *ad;\n    unsigned char     *ciphertext;\n    unsigned char     *decrypted;\n    unsigned char     *detached_ciphertext;\n    unsigned char     *expected_ciphertext;\n    unsigned char     *key;\n    unsigned char     *message;\n    unsigned char     *mac;\n    unsigned char     *nonce;\n    char              *hex;\n    unsigned long long found_ciphertext_len;\n    unsigned long long found_mac_len;\n    unsigned long long found_message_len;\n    size_t             ad_len;\n    size_t             ciphertext_len;\n    size_t             detached_ciphertext_len;\n    size_t             i = 0U;\n    size_t             message_len;\n\n    key   = (unsigned char *) sodium_malloc(crypto_aead_aegis256_KEYBYTES);\n    nonce = (unsigned char *) sodium_malloc(crypto_aead_aegis256_NPUBBYTES);\n    mac   = (unsigned char *) sodium_malloc(crypto_aead_aegis256_ABYTES);\n\n    do {\n        assert(strlen(tests[i].key_hex) == 2 * crypto_aead_aegis256_KEYBYTES);\n        sodium_hex2bin(key, crypto_aead_aegis256_KEYBYTES, tests[i].key_hex,\n                       strlen(tests[i].key_hex), NULL, NULL, NULL);\n        assert(strlen(tests[i].nonce_hex) == 2 * crypto_aead_aegis256_NPUBBYTES);\n        sodium_hex2bin(nonce, crypto_aead_aegis256_NPUBBYTES, tests[i].nonce_hex,\n                       strlen(tests[i].nonce_hex), NULL, NULL, NULL);\n        message_len = strlen(tests[i].message_hex) / 2;\n        message     = (unsigned char *) sodium_malloc(message_len);\n        sodium_hex2bin(message, message_len, tests[i].message_hex, strlen(tests[i].message_hex),\n                       NULL, NULL, NULL);\n        ad_len = strlen(tests[i].ad_hex) / 2;\n        ad     = (unsigned char *) sodium_malloc(ad_len);\n        sodium_hex2bin(ad, ad_len, tests[i].ad_hex, strlen(tests[i].ad_hex), NULL, NULL, NULL);\n        ciphertext_len          = message_len + crypto_aead_aegis256_ABYTES;\n        detached_ciphertext_len = message_len;\n        expected_ciphertext     = (unsigned char *) sodium_malloc(ciphertext_len);\n        assert(strlen(tests[i].ciphertext_hex) == 2 * message_len);\n        sodium_hex2bin(expected_ciphertext, message_len, tests[i].ciphertext_hex,\n                       strlen(tests[i].ciphertext_hex), NULL, NULL, NULL);\n        assert(strlen(tests[i].mac_hex) == 2 * crypto_aead_aegis256_ABYTES);\n        sodium_hex2bin(expected_ciphertext + message_len, crypto_aead_aegis256_ABYTES,\n                       tests[i].mac_hex, strlen(tests[i].mac_hex), NULL, NULL, NULL);\n        ciphertext          = (unsigned char *) sodium_malloc(ciphertext_len);\n        detached_ciphertext = (unsigned char *) sodium_malloc(detached_ciphertext_len);\n\n        crypto_aead_aegis256_encrypt_detached(detached_ciphertext, mac, &found_mac_len, message,\n                                              message_len, ad, ad_len, NULL, nonce, key);\n        assert(found_mac_len == crypto_aead_aegis256_ABYTES);\n        if (memcmp(detached_ciphertext, expected_ciphertext, detached_ciphertext_len) != 0 ||\n            memcmp(mac, expected_ciphertext + message_len, crypto_aead_aegis256_ABYTES) != 0) {\n            printf(\"Detached encryption of test vector #%u failed\\n\", (unsigned int) i);\n            hex = (char *) sodium_malloc((size_t) ciphertext_len * 2 + 1);\n            sodium_bin2hex(hex, (size_t) ciphertext_len * 2 + 1, ciphertext, ciphertext_len);\n            printf(\"Computed: [%s]\\n\", hex);\n            sodium_free(hex);\n        }\n\n        crypto_aead_aegis256_encrypt(ciphertext, &found_ciphertext_len, message, message_len, ad,\n                                     ad_len, NULL, nonce, key);\n\n        assert((size_t) found_ciphertext_len == ciphertext_len);\n        if (memcmp(ciphertext, expected_ciphertext, ciphertext_len) != 0) {\n            printf(\"Encryption of test vector #%u failed\\n\", (unsigned int) i);\n            hex = (char *) sodium_malloc((size_t) found_ciphertext_len * 2 + 1);\n            sodium_bin2hex(hex, (size_t) found_ciphertext_len * 2 + 1, ciphertext, ciphertext_len);\n            printf(\"Computed: [%s]\\n\", hex);\n            sodium_free(hex);\n        }\n\n        decrypted         = (unsigned char *) sodium_malloc(message_len);\n        found_message_len = 1;\n        if (crypto_aead_aegis256_decrypt(decrypted, &found_message_len, NULL, ciphertext,\n                                         randombytes_uniform((uint32_t) ciphertext_len), ad, ad_len,\n                                         nonce, key) != -1) {\n            printf(\"Verification of test vector #%u after truncation succeeded\\n\",\n                   (unsigned int) i);\n        }\n        if (found_message_len != 0) {\n            printf(\"Message length should have been set to zero after a failure\\n\");\n        }\n        if (crypto_aead_aegis256_decrypt(decrypted, &found_message_len, NULL, guard_page,\n                                         randombytes_uniform(crypto_aead_aegis256_ABYTES), ad,\n                                         ad_len, nonce, key) != -1) {\n            printf(\"Verification of test vector #%u with a truncated tag failed\\n\",\n                   (unsigned int) i);\n        }\n        if (i == 0 && crypto_aead_aegis256_decrypt(NULL, NULL, NULL, ciphertext, ciphertext_len, ad,\n                                                   ad_len, nonce, key) != 0) {\n            printf(\"Verification of test vector #%u's tag failed\\n\", (unsigned int) i);\n        }\n        if (crypto_aead_aegis256_decrypt(decrypted, &found_message_len, NULL, ciphertext,\n                                         ciphertext_len, ad, ad_len, nonce, key) != 0) {\n            printf(\"Verification of test vector #%u failed\\n\", (unsigned int) i);\n        }\n        assert((size_t) found_message_len == message_len);\n        if (memcmp(decrypted, message, message_len) != 0) {\n            printf(\"Incorrect decryption of test vector #%u\\n\", (unsigned int) i);\n        }\n        memset(decrypted, 0xd0, message_len);\n        if (crypto_aead_aegis256_decrypt_detached(decrypted, NULL, detached_ciphertext,\n                                                  detached_ciphertext_len, mac, ad, ad_len, nonce,\n                                                  key) != 0) {\n            printf(\"Detached verification of test vector #%u failed\\n\", (unsigned int) i);\n        }\n        if (memcmp(decrypted, message, message_len) != 0) {\n            printf(\"Incorrect decryption of test vector #%u\\n\", (unsigned int) i);\n        }\n\n        sodium_free(message);\n        sodium_free(ad);\n        sodium_free(expected_ciphertext);\n        sodium_free(ciphertext);\n        sodium_free(decrypted);\n        sodium_free(detached_ciphertext);\n    } while (++i < (sizeof tests) / (sizeof tests[0]));\n\n    sodium_free(key);\n    sodium_free(mac);\n    sodium_free(nonce);\n\n    return 0;\n}\n\nint\nmain(void)\n{\n    tv();\n    assert(crypto_aead_aegis256_keybytes() == crypto_aead_aegis256_KEYBYTES);\n    assert(crypto_aead_aegis256_nsecbytes() == crypto_aead_aegis256_NSECBYTES);\n    assert(crypto_aead_aegis256_npubbytes() == crypto_aead_aegis256_NPUBBYTES);\n    assert(crypto_aead_aegis256_abytes() == crypto_aead_aegis256_ABYTES);\n    assert(crypto_aead_aegis256_messagebytes_max() == crypto_aead_aegis256_MESSAGEBYTES_MAX);\n\n    {\n        unsigned char k[crypto_aead_aegis256_KEYBYTES];\n        crypto_aead_aegis256_keygen(k);\n        assert(!sodium_is_zero(k, sizeof k));\n    }\n    printf(\"OK\\n\");\n\n    return 0;\n}\n"
  },
  {
    "path": "test/default/aead_aegis256.exp",
    "content": "OK\n"
  },
  {
    "path": "test/default/aead_aes256gcm.c",
    "content": "\n#define TEST_NAME \"aead_aes256gcm\"\n#include \"cmptest.h\"\n\nstatic struct {\n    const char *key_hex;\n    const char *nonce_hex;\n    const char *message_hex;\n    const char *ad_hex;\n    const char *ciphertext_hex;\n    const char *mac_hex;\n} tests[] = {\n    {\n        \"b52c505a37d78eda5dd34f20c22540ea1b58963cf8e5bf8ffa85f9f2492505b4\",\n        \"516c33929df5a3284ff463d7\",\n        \"\",\n        \"\",\n        \"\",\n        \"bdc1ac884d332457a1d2664f168c76f0\",\n    },\n    {\n        \"5fe0861cdc2690ce69b3658c7f26f8458eec1c9243c5ba0845305d897e96ca0f\",\n        \"770ac1a5a3d476d5d96944a1\",\n        \"\",\n        \"\",\n        \"\",\n        \"196d691e1047093ca4b3d2ef4baba216\",\n    },\n    {\n        \"7620b79b17b21b06d97019aa70e1ca105e1c03d2a0cf8b20b5a0ce5c3903e548\",\n        \"60f56eb7a4b38d4f03395511\",\n        \"\",\n        \"\",\n        \"\",\n        \"f570c38202d94564bab39f75617bc87a\",\n    },\n    {\n        \"7e2db00321189476d144c5f27e787087302a48b5f7786cd91e93641628c2328b\",\n        \"ea9d525bf01de7b2234b606a\",\n        \"\",\n        \"\",\n        \"\",\n        \"db9df5f14f6c9f2ae81fd421412ddbbb\",\n    },\n    {\n        \"a23dfb84b5976b46b1830d93bcf61941cae5e409e4f5551dc684bdcef9876480\",\n        \"5aa345908048de10a2bd3d32\",\n        \"\",\n        \"\",\n        \"\",\n        \"f28217649230bd7a40a9a4ddabc67c43\",\n    },\n    {\n        \"dfe928f86430b78add7bb7696023e6153d76977e56103b180253490affb9431c\",\n        \"1dd0785af9f58979a10bd62d\",\n        \"\",\n        \"\",\n        \"\",\n        \"a55eb09e9edef58d9f671d72207f8b3c\",\n    },\n    {\n        \"34048db81591ee68224956bd6989e1630fcf068d7ff726ae81e5b29f548cfcfb\",\n        \"1621d34cff2a5b250c7b76fc\",\n        \"\",\n        \"\",\n        \"\",\n        \"4992ec3d57cccfa58fd8916c59b70b11\",\n    },\n    {\n        \"a1114f8749c72b8cef62e7503f1ad921d33eeede32b0b5b8e0d6807aa233d0ad\",\n        \"a190ed3ff2e238be56f90bd6\",\n        \"\",\n        \"\",\n        \"\",\n        \"c8464d95d540fb191156fbbc1608842a\",\n    },\n    {\n        \"ddbb99dc3102d31102c0e14b238518605766c5b23d9bea52c7c5a771042c85a0\",\n        \"95d15ed75c6a109aac1b1d86\",\n        \"\",\n        \"\",\n        \"\",\n        \"813d1da3775cacd78e96d86f036cff96\",\n    },\n    {\n        \"1faa506b8f13a2e6660af78d92915adf333658f748f4e48fa20135a29e9abe5f\",\n        \"e50f278d3662c99d750f60d3\",\n        \"\",\n        \"\",\n        \"\",\n        \"aec7ece66b7344afd6f6cc7419cf6027\",\n    },\n    {\n        \"f30b5942faf57d4c13e7a82495aedf1b4e603539b2e1599317cc6e53225a2493\",\n        \"336c388e18e6abf92bb739a9\",\n        \"\",\n        \"\",\n        \"\",\n        \"ddaf8ef4cb2f8a6d401f3be5ff0baf6a\",\n    },\n    {\n        \"daf4d9c12c5d29fc3fa936532c96196e56ae842e47063a4b29bfff2a35ed9280\",\n        \"5381f21197e093b96cdac4fa\",\n        \"\",\n        \"\",\n        \"\",\n        \"7f1832c7f7cd7812a004b79c3d399473\",\n    },\n    {\n        \"6b524754149c81401d29a4b8a6f4a47833372806b2d4083ff17f2db3bfc17bca\",\n        \"ac7d3d618ab690555ec24408\",\n        \"\",\n        \"\",\n        \"\",\n        \"db07a885e2bd39da74116d06c316a5c9\",\n    },\n    {\n        \"cff083303ff40a1f66c4aed1ac7f50628fe7e9311f5d037ebf49f4a4b9f0223f\",\n        \"45d46e1baadcfbc8f0e922ff\",\n        \"\",\n        \"\",\n        \"\",\n        \"1687c6d459ea481bf88e4b2263227906\",\n    },\n    {\n        \"3954f60cddbb39d2d8b058adf545d5b82490c8ae9283afa5278689041d415a3a\",\n        \"8fb3d98ef24fba03746ac84f\",\n        \"\",\n        \"\",\n        \"\",\n        \"7fb130855dfe7a373313361f33f55237\",\n    },\n    {\n        \"78dc4e0aaf52d935c3c01eea57428f00ca1fd475f5da86a49c8dd73d68c8e223\",\n        \"d79cf22d504cc793c3fb6c8a\",\n        \"\",\n        \"b96baa8c1c75a671bfb2d08d06be5f36\",\n        \"\",\n        \"3e5d486aa2e30b22e040b85723a06e76\",\n    },\n    {\n        \"4457ff33683cca6ca493878bdc00373893a9763412eef8cddb54f91318e0da88\",\n        \"699d1f29d7b8c55300bb1fd2\",\n        \"\",\n        \"6749daeea367d0e9809e2dc2f309e6e3\",\n        \"\",\n        \"d60c74d2517fde4a74e0cd4709ed43a9\",\n    },\n    {\n        \"4d01c96ef9d98d4fb4e9b61be5efa772c9788545b3eac39eb1cacb997a5f0792\",\n        \"32124a4d9e576aea2589f238\",\n        \"\",\n        \"d72bad0c38495eda50d55811945ee205\",\n        \"\",\n        \"6d6397c9e2030f5b8053bfe510f3f2cf\",\n    },\n    {\n        \"8378193a4ce64180814bd60591d1054a04dbc4da02afde453799cd6888ee0c6c\",\n        \"bd8b4e352c7f69878a475435\",\n        \"\",\n        \"1c6b343c4d045cbba562bae3e5ff1b18\",\n        \"\",\n        \"0833967a6a53ba24e75c0372a6a17bda\",\n    },\n    {\n        \"22fc82db5b606998ad45099b7978b5b4f9dd4ea6017e57370ac56141caaabd12\",\n        \"880d05c5ee599e5f151e302f\",\n        \"\",\n        \"3e3eb5747e390f7bc80e748233484ffc\",\n        \"\",\n        \"2e122a478e64463286f8b489dcdd09c8\",\n    },\n    {\n        \"fc00960ddd698d35728c5ac607596b51b3f89741d14c25b8badac91976120d99\",\n        \"a424a32a237f0df530f05e30\",\n        \"\",\n        \"cfb7e05e3157f0c90549d5c786506311\",\n        \"\",\n        \"dcdcb9e4004b852a0da12bdf255b4ddd\",\n    },\n    {\n        \"69749943092f5605bf971e185c191c618261b2c7cc1693cda1080ca2fd8d5111\",\n        \"bd0d62c02ee682069bd1e128\",\n        \"\",\n        \"6967dce878f03b643bf5cdba596a7af3\",\n        \"\",\n        \"378f796ae543e1b29115cc18acd193f4\",\n    },\n    {\n        \"fc4875db84819834b1cb43828d2f0ae3473aa380111c2737e82a9ab11fea1f19\",\n        \"da6a684d3ff63a2d109decd6\",\n        \"\",\n        \"91b6fa2ab4de44282ffc86c8cde6e7f5\",\n        \"\",\n        \"504e81d2e7877e4dad6f31cdeb07bdbd\",\n    },\n    {\n        \"9f9fe7d2a26dcf59d684f1c0945b5ffafe0a4746845ed317d35f3ed76c93044d\",\n        \"13b59971cd4dd36b19ac7104\",\n        \"\",\n        \"190a6934f45f89c90067c2f62e04c53b\",\n        \"\",\n        \"4f636a294bfbf51fc0e131d694d5c222\",\n    },\n    {\n        \"ab9155d7d81ba6f33193695cf4566a9b6e97a3e409f57159ae6ca49655cca071\",\n        \"26a9f8d665d163ddb92d035d\",\n        \"\",\n        \"4a203ac26b951a1f673c6605653ec02d\",\n        \"\",\n        \"437ea77a3879f010691e288d6269a996\",\n    },\n    {\n        \"0f1c62dd80b4a6d09ee9d787b1b04327aa361529ffa3407560414ac47b7ef7bc\",\n        \"c87613a3b70d2a048f32cb9a\",\n        \"\",\n        \"8f23d404be2d9e888d219f1b40aa29e8\",\n        \"\",\n        \"36d8a309acbb8716c9c08c7f5de4911e\",\n    },\n    {\n        \"f3e954a38956df890255f01709e457b33f4bfe7ecb36d0ee50f2500471eebcde\",\n        \"9799abd3c52110c704b0f36a\",\n        \"\",\n        \"ddb70173f44157755b6c9b7058f40cb7\",\n        \"\",\n        \"b323ae3abcb415c7f420876c980f4858\",\n    },\n    {\n        \"0625316534fbd82fe8fdea50fa573c462022c42f79e8b21360e5a6dce66dde28\",\n        \"da64a674907cd6cf248f5fbb\",\n        \"\",\n        \"f24d48e04f5a0d987ba7c745b73b0364\",\n        \"\",\n        \"df360b810f27e794673a8bb2dc0d68b0\",\n    },\n    {\n        \"28f045ac7c4fe5d4b01a9dcd5f1ad3efff1c4f170fc8ab8758d97292868d5828\",\n        \"5d85de95b0bdc44514143919\",\n        \"\",\n        \"601d2158f17ab3c7b4dcb6950fbdcdde\",\n        \"\",\n        \"42c3f527418cf2c3f5d5010ccba8f271\",\n    },\n    {\n        \"19310eed5f5f44eb47075c105eb31e36bbfd1310f741b9baa66a81138d357242\",\n        \"a1247120138fa4f0e96c992c\",\n        \"\",\n        \"29d746414333e0f72b4c3f44ec6bfe42\",\n        \"\",\n        \"d5997e2f956df3fa2c2388e20f30c480\",\n    },\n    {\n        \"886cff5f3e6b8d0e1ad0a38fcdb26de97e8acbe79f6bed66959a598fa5047d65\",\n        \"3a8efa1cd74bbab5448f9945\",\n        \"\",\n        \"519fee519d25c7a304d6c6aa1897ee1eb8c59655\",\n        \"\",\n        \"f6d47505ec96c98a42dc3ae719877b87\",\n    },\n    {\n        \"6937a57d35fe6dc3fc420b123bccdce874bd4c18f2e7c01ce2faf33d3944fd9d\",\n        \"a87247797b758467b96310f3\",\n        \"\",\n        \"ead961939a33dd578f8e93db8b28a1c85362905f\",\n        \"\",\n        \"599de3ecf22cb867f03f7f6d9fd7428a\",\n    },\n    {\n        \"e65a331776c9dcdf5eba6c59e05ec079d97473bcdce84daf836be323456263a0\",\n        \"ca731f768da01d02eb8e727e\",\n        \"\",\n        \"d7274586517bf1d8da866f4a47ad0bcf2948a862\",\n        \"\",\n        \"a8abe7a8085f25130a7206d37a8aaf6d\",\n    },\n    {\n        \"77bb1b6ef898683c981b2fc899319ffbb6000edca22566b634db3a3c804059e5\",\n        \"354a19283769b3b991b05a4c\",\n        \"\",\n        \"b5566251a8a8bec212dc08113229ff8590168800\",\n        \"\",\n        \"e5c2dccf8fc7f296cac95d7071cb8d7d\",\n    },\n    {\n        \"2a43308d520a59ed51e47a3a915e1dbf20a91f0886506e481ad3de65d50975b4\",\n        \"bcbf99733d8ec90cb23e6ce6\",\n        \"\",\n        \"eb88288729289d26fe0e757a99ad8eec96106053\",\n        \"\",\n        \"01b0196933aa49123eab4e1571250383\",\n    },\n    {\n        \"2379b35f85102db4e7aecc52b705bc695d4768d412e2d7bebe999236783972ff\",\n        \"918998c4801037b1cd102faa\",\n        \"\",\n        \"b3722309e0f066225e8d1659084ebb07a93b435d\",\n        \"\",\n        \"dfb18aee99d1f67f5748d4b4843cb649\",\n    },\n    {\n        \"98b3cb7537167e6d14a2a8b2310fe94b715c729fdf85216568150b556d0797ba\",\n        \"bca5e2e5a6b30f18d263c6b2\",\n        \"\",\n        \"260d3d72db70d677a4e3e1f3e11431217a2e4713\",\n        \"\",\n        \"d6b7560f8ac2f0a90bad42a6a07204bc\",\n    },\n    {\n        \"30341ae0f199b10a15175d00913d5029526ab7f761c0b936a7dd5f1b1583429d\",\n        \"dbe109a8ce5f7b241e99f7af\",\n        \"\",\n        \"fe4bdee5ca9c4806fa024715fbf66ab845285fa7\",\n        \"\",\n        \"ae91daed658e26c0d126575147af9899\",\n    },\n    {\n        \"8232b6a1d2e367e9ce1ea8d42fcfc83a4bc8bdec465c6ba326e353ad9255f207\",\n        \"cd2fb5ff9cf0f39868ad8685\",\n        \"\",\n        \"02418b3dde54924a9628de06004c0882ae4ec3bb\",\n        \"\",\n        \"d5308f63708675ced19b2710afd2db49\",\n    },\n    {\n        \"f9a132a50a508145ffd8294e68944ea436ce0f9a97e181f5e0d6c5d272311fc1\",\n        \"892991b54e94b9d57442ccaf\",\n        \"\",\n        \"4e0fbd3799da250fa27911b7e68d7623bfe60a53\",\n        \"\",\n        \"89881d5f786e6d53e0d19c3b4e6887d8\",\n    },\n    {\n        \"0e3746e5064633ea9311b2b8427c536af92717de20eeb6260db1333c3d8a8114\",\n        \"f84c3a1c94533f7f25cec0ac\",\n        \"\",\n        \"8c0d41e6135338c8d3e63e2a5fa0a9667ec9a580\",\n        \"\",\n        \"479ccfe9241de2c474f2edebbb385c09\",\n    },\n    {\n        \"b997e9b0746abaaed6e64b63bdf64882526ad92e24a2f5649df055c9ec0f1daa\",\n        \"f141d8d71b033755022f0a7d\",\n        \"\",\n        \"681d6583f527b1a92f66caae9b1d4d028e2e631e\",\n        \"\",\n        \"b30442a6395ec13246c48b21ffc65509\",\n    },\n    {\n        \"87660ec1700d4e9f88a323a49f0b871e6aaf434a2d8448d04d4a22f6561028e0\",\n        \"2a07b42593cd24f0a6fe406c\",\n        \"\",\n        \"1dd239b57185b7e457ced73ebba043057f049edd\",\n        \"\",\n        \"df7a501049b37a534098cb45cb9c21b7\",\n    },\n    {\n        \"ea4792e1f1717b77a00de4d109e627549b165c82af35f33ca7e1a6b8ed62f14f\",\n        \"7453cc8b46fe4b93bcc48381\",\n        \"\",\n        \"46d98970a636e7cd7b76fc362ae88298436f834f\",\n        \"\",\n        \"518dbacd36be6fba5c12871678a55516\",\n    },\n    {\n        \"34892cdd1d48ca166f7ba73182cb97336c2c754ac160a3e37183d6fb5078cec3\",\n        \"ed3198c5861b78c71a6a4eec\",\n        \"\",\n        \"a6fa6d0dd1e0b95b4609951bbbe714de0ae0ccfa\",\n        \"\",\n        \"c6387795096b348ecf1d1f6caaa3c813\",\n    },\n    {\n        \"f4069bb739d07d0cafdcbc609ca01597f985c43db63bbaaa0debbb04d384e49c\",\n        \"d25ff30fdc3d464fe173e805\",\n        \"\",\n        \"3e1449c4837f0892f9d55127c75c4b25d69be334baf5f19394d2d8bb460cbf2120e14736d0f634aa792feca20e455f11\",\n        \"\",\n        \"805ec2931c2181e5bfb74fa0a975f0cf\",\n    },\n    {\n        \"62189dcc4beb97462d6c0927d8a270d39a1b07d72d0ad28840badd4f68cf9c8b\",\n        \"859fda5247c888823a4b8032\",\n        \"\",\n        \"b28d1621ee110f4c9d709fad764bba2dd6d291bc003748faac6d901937120d41c1b7ce67633763e99e05c71363fceca8\",\n        \"\",\n        \"27330907d0002880bbb4c1a1d23c0be2\",\n    },\n    {\n        \"59012d85a1b90aeb0359e6384c9991e7be219319f5b891c92c384ade2f371816\",\n        \"3c9cde00c23912cff9689c7c\",\n        \"\",\n        \"e5daf473a470860b55210a483c0d1a978d8add843c2c097f73a3cda49ac4a614c8e887d94e6692309d2ed97ebe1eaf5d\",\n        \"\",\n        \"048239e4e5c2c8b33890a7c950cda852\",\n    },\n    {\n        \"4be09b408ad68b890f94be5efa7fe9c917362712a3480c57cd3844935f35acb7\",\n        \"8f350bd3b8eea173fc7370bc\",\n        \"\",\n        \"2819d65aec942198ca97d4435efd9dd4d4393b96cf5ba44f09bce4ba135fc8636e8275dcb515414b8befd32f91fc4822\",\n        \"\",\n        \"a133cb7a7d0471dbac61fb41589a2efe\",\n    },\n    {\n        \"13cb965a4d9d1a36efad9f6ca1ba76386a5bb160d80b0917277102357ac7afc8\",\n        \"f313adec42a66d13c3958180\",\n        \"\",\n        \"717b48358898e5ccfea4289049adcc1bb0db3b3ebd1767ac24fb2b7d37dc80ea2316c17f14fb51b5e18cd5bb09afe414\",\n        \"\",\n        \"81b4ef7a84dc4a0b1fddbefe37f53852\",\n    },\n    {\n        \"d27f1bebbbdef0edca393a6261b0338abbc491262eab0737f55246458f6668cc\",\n        \"fc062f857886e278f3a567d2\",\n        \"\",\n        \"2bae92dea64aa99189de8ea4c046745306002e02cfb46a41444ce8bfcc329bd4205963d9ab5357b026a4a34b1a861771\",\n        \"\",\n        \"5c5a6c4613f1e522596330d45f243fdd\",\n    },\n    {\n        \"7b4d19cd3569f74c7b5df61ab78379ee6bfa15105d21b10bf6096699539006d0\",\n        \"fbed5695c4a739eded97b1e3\",\n        \"\",\n        \"c6f2e5d663bfaf668d014550ef2e66bf89978799a785f1f2c79a2cb3eb3f2fd4076207d5f7e1c284b4af5cffc4e46198\",\n        \"\",\n        \"7101b434fb90c7f95b9b7a0deeeb5c81\",\n    },\n    {\n        \"d3431488d8f048590bd76ec66e71421ef09f655d7cf8043bf32f75b4b2e7efcc\",\n        \"cc766e98b40a81519fa46392\",\n        \"\",\n        \"93320179fdb40cbc1ccf00b872a3b4a5f6c70b56e43a84fcac5eb454a0a19a747d452042611bf3bbaafd925e806ffe8e\",\n        \"\",\n        \"3afcc336ce8b7191eab04ad679163c2a\",\n    },\n    {\n        \"a440948c0378561c3956813c031f81573208c7ffa815114ef2eee1eb642e74c6\",\n        \"c1f4ffe54b8680832eed8819\",\n        \"\",\n        \"253438f132b18e8483074561898c5652b43a82cc941e8b4ae37e792a8ed6ec5ce2bcec9f1ffcf4216e46696307bb774a\",\n        \"\",\n        \"129445f0a3c979a112a3afb10a24e245\",\n    },\n    {\n        \"798706b651033d9e9bf2ce064fb12be7df7308cf45df44776588cd391c49ff85\",\n        \"5a43368a39e7ffb775edfaf4\",\n        \"\",\n        \"926b74fe6381ebd35757e42e8e557601f2287bfc133a13fd86d61c01aa84f39713bf99a8dc07b812f0274c9d3280a138\",\n        \"\",\n        \"89fe481a3d95c03a0a9d4ee3e3f0ed4a\",\n    },\n    {\n        \"c3aa2a39a9fef4a466618d1288bb62f8da7b1cb760ccc8f1be3e99e076f08eff\",\n        \"9965ba5e23d9453d7267ca5b\",\n        \"\",\n        \"93efb6a2affc304cb25dfd49aa3e3ccdb25ceac3d3cea90dd99e38976978217ad5f2b990d10b91725c7fd2035ecc6a30\",\n        \"\",\n        \"00a94c18a4572dcf4f9e2226a03d4c07\",\n    },\n    {\n        \"14e06858008f7e77186a2b3a7928a0c7fcee22136bc36f53553f20fa5c37edcd\",\n        \"32ebe0dc9ada849b5eda7b48\",\n        \"\",\n        \"6c0152abfa485b8cd67c154a5f0411f22121379774d745f40ee577b028fd0e188297581561ae972223d75a24b488aed7\",\n        \"\",\n        \"2625b0ba6ee02b58bc529e43e2eb471b\",\n    },\n    {\n        \"fbb56b11c51a093ce169a6990399c4d741f62b3cc61f9e8a609a1b6ae8e7e965\",\n        \"9c5a953247e91aceceb9defb\",\n        \"\",\n        \"46cb5c4f617916a9b1b2e03272cb0590ce716498533047d73c81e4cbe9278a3686116f5632753ea2df52efb3551aea2d\",\n        \"\",\n        \"4f3b82e6be4f08756071f2c46c31fedf\",\n    },\n    {\n        \"b303bf02f6a8dbb5bc4baccab0800db5ee06de648e2fae299b95f135c9b107cc\",\n        \"906495b67ef4ce00b44422fa\",\n        \"\",\n        \"872c6c370926535c3fa1baec031e31e7c6c82808c8a060742dbef114961c314f1986b2131a9d91f30f53067ec012c6b7\",\n        \"\",\n        \"64dde37169082d181a69107f60c5c6bb\",\n    },\n    {\n        \"29f5f8075903063cb6d7050669b1f74e08a3f79ef566292dfdef1c06a408e1ab\",\n        \"35f25c48b4b5355e78b9fb3a\",\n        \"\",\n        \"107e2e23159fc5c0748ca7a077e5cc053fa5c682ff5269d350ee817f8b5de4d3972041d107b1e2f2e54ca93b72cd0408\",\n        \"\",\n        \"fee5a9baebb5be0165deaa867e967a9e\",\n    },\n    {\n        \"03ccb7dbc7b8425465c2c3fc39ed0593929ffd02a45ff583bd89b79c6f646fe9\",\n        \"fd119985533bd5520b301d12\",\n        \"\",\n        \"98e68c10bf4b5ae62d434928fc6405147c6301417303ef3a703dcfd2c0c339a4d0a89bd29fe61fecf1066ab06d7a5c31a48ffbfed22f749b17e9bd0dc1c6f8fbd6fd4587184db964d5456132106d782338c3f117ec05229b0899\",\n        \"\",\n        \"cf54e7141349b66f248154427810c87a\",\n    },\n    {\n        \"57e112cd45f2c57ddb819ea651c206763163ef016ceead5c4eae40f2bbe0e4b4\",\n        \"188022c2125d2b1fcf9e4769\",\n        \"\",\n        \"09c8f445ce5b71465695f838c4bb2b00624a1c9185a3d552546d9d2ee4870007aaf3007008f8ae9affb7588b88d09a90e58b457f88f1e3752e3fb949ce378670b67a95f8cf7f5c7ceb650efd735dbc652cae06e546a5dbd861bd\",\n        \"\",\n        \"9efcddfa0be21582a05749f4050d29fe\",\n    },\n    {\n        \"a4ddf3cab7453aaefad616fd65d63d13005e9459c17d3173cd6ed7f2a86c921f\",\n        \"06177b24c58f3be4f3dd4920\",\n        \"\",\n        \"f95b046d80485e411c56b834209d3abd5a8a9ddf72b1b916679adfdde893044315a5f4967fd0405ec297aa332f676ff0fa5bd795eb609b2e4f088db1cdf37ccff0735a5e53c4c12173a0026aea42388a7d7153a8830b8a901cf9\",\n        \"\",\n        \"9d1bd8ecb3276906138d0b03fcb8c1bb\",\n    },\n    {\n        \"24a92b24e85903cd4aaabfe07c310df5a4f8f459e03a63cbd1b47855b09c0be8\",\n        \"22e756dc898d4cf122080612\",\n        \"\",\n        \"2e01b2536dbe376be144296f5c38fb099e008f962b9f0e896334b6408393bff1020a0e442477abfdb1727213b6ccc577f5e16cb057c8945a07e307264b65979aed96b5995f40250ffbaaa1a1f0eccf394015f6290f5e64dfe5ca\",\n        \"\",\n        \"0d7f1aed4708a03b0c80b2a18785c96d\",\n    },\n    {\n        \"15276fc64438578e0ec53366b90a0e23d93910fec10dc3003d9b3f3fa72db702\",\n        \"c5e931946d5caebc227656d2\",\n        \"\",\n        \"3f967c83ba02e77c14e9d41185eb87f172250e93edb0f82b6742c124298ab69418358eddefa39fedc3cade9d80f036d864a59ead37c87727c56c701a8cd9634469ff31c704f5ee39354157e6558467b92824da36b1c071bedfe9\",\n        \"\",\n        \"a0ffa19adcf31d061cd0dd46d24015ef\",\n    },\n    {\n        \"ec09804a048bb854c71618b5a3a1c590910fc8a68455139b719486d2280ea59a\",\n        \"d0b1247e7121a9276ac18ca3\",\n        \"\",\n        \"66b1d39d414596308e866b04476e053b71acd1cd07ce80939577ebbeace0430f7e4c0c185fe1d97ac7569950c83db40bbed0f1d173e1aa0dc28b4773705032d97551f7fcef7f55e4b69f88df650032dfc5232c156641104b5397\",\n        \"\",\n        \"8440e6d864ab778f9be478f203162d86\",\n    },\n    {\n        \"4adf86bfa547725e4b80365a5a327c107040facfff007dc35102066bd6a995c4\",\n        \"b1018cc331911255a55a0795\",\n        \"\",\n        \"053ca4428c990b4456d3c1895d5d52deff675896de9faa53d8cf241255f4a31dc3399f15d83be380256616e5af043abfb37552655adf4f2e68dda24bc3736951134f359d9c0e288bb798b6c3ea46239231a3cb280066db9862e7\",\n        \"\",\n        \"c7424f38084930bfc5edc1fcf1e7608d\",\n    },\n    {\n        \"3c92e0d1e39a3c766573c4646c768c402ccff48a56682a93433512abf0456e00\",\n        \"d57f319e590191841d2b98bd\",\n        \"\",\n        \"840d9394aa240e52ba152151c12acd1cd44881e8549dc832b71a45da7efcc74fb7e844d9fec25e5d497b8fb8f47f328c8d99045a19e366e6ce5e19dc26f67a81a94fa6c97c314d886e7b56eff144c09f6fa519db6308bc73422e\",\n        \"\",\n        \"cb4ef72dbda4914d7434f9686f823e2f\",\n    },\n    {\n        \"b66ba39733888a9e0a2e30452844161dc33cb383c02ce16c4efad5452509b5b5\",\n        \"937cb665e37059b2e40359f2\",\n        \"\",\n        \"dbcd9694a8834860034e8ede3a5bd419fcf91c005ad99f488aa623f581622093f9d41e6a68e20fd202f302bcfc4417ca89090bfcd4d5224e8ff4eb5bbae4ecb27baa239f59c2f99cd47c0a269c497906b41a8f320a3dd2dc2de2\",\n        \"\",\n        \"bdc8249302d9d666cf7168317c118743\",\n    },\n    {\n        \"2f9fcd1043455695638c991a1b1d35ad57c18ef0727322747b7991abc3d787f3\",\n        \"d06cf548f62869f4bed7a318\",\n        \"\",\n        \"432023c12cf1f614e1005112a17dbe6c5d54022a95cf6335a5bc55004c75f09a5699739ecf928e1c78d03dad5096a17a084afe1cc22041bbdfb5985bd08b0dcc59d2b08cd86b7aad597c4cd7b4ba6d6a7370b83995a6511a1f9e\",\n        \"\",\n        \"322eb84fb6884f10cfb766c2e3ec779e\",\n    },\n    {\n        \"21c5839a63e1230c06b086341c96ab74585e69bced94332caeb1fa77d510c24f\",\n        \"5ab6e5ed6ee733be7250858c\",\n        \"\",\n        \"c92f08e30f67d42516133c48e97b65cc9e124365e110aba5e7b2cbe83debcc99edf4eb0007af052bda22d85900271b1897af4fd9ace6a2d09d984ac3de79d05de0b105a81b12542b2c48e27d409fd6992dd062d6055d6fc66842\",\n        \"\",\n        \"53b0e450309d146459f2a1e46c9d9e23\",\n    },\n    {\n        \"25a144f0fdba184125d81a87e7ed82fad33c701a094a67a81fe4692dc69afa31\",\n        \"8bf575c5c2b45b4efc6746e4\",\n        \"\",\n        \"2a367cb0d3b7c5b8320b3cf95e82b6ba0bba1d09a2055885dedd9ef5641623682212103238b8f775cce42ddfd4f66382f2c3a5e8d6dff9163ced83580a75705574026b55db90f75f8abb3014c9a707021dedc075da38bebbf0a0\",\n        \"\",\n        \"0e2ce9cac8dfcedb0572ec6cab621efd\",\n    },\n    {\n        \"42bc841b3b03a807cd366a35ecec8a6aebef7c4cba0ec8cb8da0da41df8ccef1\",\n        \"1bd46f85df5f4b3a126ee315\",\n        \"\",\n        \"ede3dcddbdc7d8e5d034c01661332ec349cb4e7a9fbaaf7abe2c647587db86cd427ce66908e070bc49ef838747e06b45ac486dfbea6f8698b4625e21e69db8327ec05cfd74accbe67ab644948cdb554af179a1e264e08fe16641\",\n        \"\",\n        \"633ab6aaf5b32b53a794f6be6262fc5f\",\n    },\n    {\n        \"c25b8500be73210596fc4a9fb4d84d1a3379a91e3f0a6cc4177d996046627679\",\n        \"b56c48c0c4cd318b20437002\",\n        \"\",\n        \"bcd14dd043fdc8c327957e1c1428698543ec8602521a7c74788d296d37d4828f10f90656883d2531c702ebda2dc0a68dab00154577454455fad986ff8e0973098dbf370ff703ed98222b945726ed9be7909210ddbc672e99fdd9\",\n        \"\",\n        \"8171d4ff60fe7ef6de0288326aa73223\",\n    },\n    {\n        \"dd95259bc8eefa3e493cb1a6ba1d8ee2b341d5230d50363094a2cc3433b3d9b9\",\n        \"a1a6ced084f4f13990750a9e\",\n        \"\",\n        \"d46db90e13684b26149cb3b7f776e228a0538fa1892c418aaad07aa08d3076f4a52bee8f130ff560db2b8d1009e9260fa6233fc22733e050c9e4f7cc699062765e261dffff1159e9060b26c8065dfab04055b58c82c340d987c9\",\n        \"\",\n        \"9e120b01899fe2cb3e3a0b0c05045940\",\n    },\n    {\n        \"31bdadd96698c204aa9ce1448ea94ae1fb4a9a0b3c9d773b51bb1822666b8f22\",\n        \"0d18e06c7c725ac9e362e1ce\",\n        \"2db5168e932556f8089a0622981d017d\",\n        \"\",\n        \"fa4362189661d163fcd6a56d8bf0405a\",\n        \"d636ac1bbedd5cc3ee727dc2ab4a9489\",\n    },\n    {\n        \"460fc864972261c2560e1eb88761ff1c992b982497bd2ac36c04071cbb8e5d99\",\n        \"8a4a16b9e210eb68bcb6f58d\",\n        \"99e4e926ffe927f691893fb79a96b067\",\n        \"\",\n        \"133fc15751621b5f325c7ff71ce08324\",\n        \"ec4e87e0cf74a13618d0b68636ba9fa7\",\n    },\n    {\n        \"f78a2ba3c5bd164de134a030ca09e99463ea7e967b92c4b0a0870796480297e5\",\n        \"2bb92fcb726c278a2fa35a88\",\n        \"f562509ed139a6bbe7ab545ac616250c\",\n        \"\",\n        \"e2f787996e37d3b47294bf7ebba5ee25\",\n        \"00f613eee9bdad6c9ee7765db1cb45c0\",\n    },\n    {\n        \"48e6af212da1386500454c94a201640c2151b28079240e40d72d2a5fd7d54234\",\n        \"ef0ff062220eb817dc2ece94\",\n        \"c7afeecec1408ad155b177c2dc7138b0\",\n        \"\",\n        \"9432a620e6a22307e06a321d66846fd4\",\n        \"e3ea499192f2cd8d3ab3edfc55897415\",\n    },\n    {\n        \"79cd8d750fc8ea62a2714edcd9b32867c7c4da906c56e23a644552f5b812e75a\",\n        \"9bbfdb81015d2b57dead2de5\",\n        \"f980ad8c55ebd31ee6f98f44e92bff55\",\n        \"\",\n        \"41a34d1e759c859e91b8cf5d3ded1970\",\n        \"68cd98406d5b322571e750c30aa49834\",\n    },\n    {\n        \"130ae450c18efb851057aaa79575a0a090194be8b2c95469a0e8e380a8f48f42\",\n        \"b269115396f81b39e0c38f47\",\n        \"036cf36280dee8355c82abc4c1fdb778\",\n        \"\",\n        \"09f7568fd8181652e556f0dda5a49ed5\",\n        \"d10b61947cae275b7034f5259ba6fc28\",\n    },\n    {\n        \"9c7121289aefc67090cabed53ad11658be72a5372761b9d735e81d2bfc0e3267\",\n        \"ade1702d2051b8dd203b5419\",\n        \"b95bcaa2b31403d76859a4c301c50b56\",\n        \"\",\n        \"628285e6489090dde1b9a60674785003\",\n        \"9f516af3f3b93d610edbc5ba6e2d115f\",\n    },\n    {\n        \"0400b42897011fc20fd2280a52ef905d6ebf1b055b48c97067bd786d678ec4ea\",\n        \"0abfb0a41496b453358409d9\",\n        \"20c8230191e35f4e9b269d59cf5521f6\",\n        \"\",\n        \"dd8c38087daffbbb3ebb57ebf5ee5f78\",\n        \"bfb07aa5049ee350ec6fb1397f37087b\",\n    },\n    {\n        \"56690798978c154ff250ba78e463765f2f0ce69709a4551bd8cb3addeda087b6\",\n        \"cf37c286c18ad4ea3d0ba6a0\",\n        \"2d328124a8d58d56d0775eed93de1a88\",\n        \"\",\n        \"3b0a0267f6ecde3a78b30903ebd4ca6e\",\n        \"1fd2006409fc636379f3d4067eca0988\",\n    },\n    {\n        \"8a02a33bdf87e7845d7a8ae3c8727e704f4fd08c1f2083282d8cb3a5d3cedee9\",\n        \"599f5896851c968ed808323b\",\n        \"4ade8b32d56723fb8f65ce40825e27c9\",\n        \"\",\n        \"cb9133796b9075657840421a46022b63\",\n        \"a79e453c6fad8a5a4c2a8e87821c7f88\",\n    },\n    {\n        \"23aaa78a5915b14f00cf285f38ee275a2db97cb4ab14d1aac8b9a73ff1e66467\",\n        \"4a675ec9be1aab9632dd9f59\",\n        \"56659c06a00a2e8ed1ac60572eee3ef7\",\n        \"\",\n        \"e6c01723bfbfa398d9c9aac8c683bb12\",\n        \"4a2f78a9975d4a1b5f503a4a2cb71553\",\n    },\n    {\n        \"fe647f72e95c469027f4d7778429a2e8e90d090268d4fa7df44f65c0af84190a\",\n        \"4f40ae2a83a9b480e4686c90\",\n        \"31fd6cce3f0d2b0d18e0af01c4b5609e\",\n        \"\",\n        \"54c769fd542f0d3022f1335a7c410b61\",\n        \"106cb7cbcd967da6cad646039c753474\",\n    },\n    {\n        \"fce205515f0551b1797128a2132d8e002ea5ab1beb99c5e7e8329398cf478e10\",\n        \"20209a0d4a3b9bfddeef39a0\",\n        \"7d663e31a2f6ffef17e536684dae2e87\",\n        \"\",\n        \"6529712030fb659dc11ab719f6a4c402\",\n        \"58699464d062aba505508c576c4e07dd\",\n    },\n    {\n        \"cd33003ff18f6f3369dd9a35381261ba660ce0a769864475152e677066540337\",\n        \"20bffe9064ce76d275204138\",\n        \"acaf53d4dd2fe12cd44450b0d9adcc92\",\n        \"\",\n        \"a669fda0444b180165f90815dc992b33\",\n        \"6e31f5a56c4790cedcc2368c51d0639b\",\n    },\n    {\n        \"381873b5f9579d8241f0c61f0d9e327bb9f678691714aaa48ea7d92678d43fe7\",\n        \"3fc8bec23603158e012d65e5\",\n        \"7b622e9b408fe91f6fa800ecef838d36\",\n        \"\",\n        \"8ca4de5b4e2ab22431a009f3ddd01bae\",\n        \"b3a7f80e3edf322622731550164cd747\",\n    },\n    {\n        \"92e11dcdaa866f5ce790fd24501f92509aacf4cb8b1339d50c9c1240935dd08b\",\n        \"ac93a1a6145299bde902f21a\",\n        \"2d71bcfa914e4ac045b2aa60955fad24\",\n        \"1e0889016f67601c8ebea4943bc23ad6\",\n        \"8995ae2e6df3dbf96fac7b7137bae67f\",\n        \"eca5aa77d51d4a0a14d9c51e1da474ab\",\n    },\n    {\n        \"7da3bccaffb3464178ca7c722379836db50ce0bfb47640b9572163865332e486\",\n        \"c04fd2e701c3dc62b68738b3\",\n        \"fd671cab1ee21f0df6bb610bf94f0e69\",\n        \"fec0311013202e4ffdc4204926ae0ddf\",\n        \"6be61b17b7f7d494a7cdf270562f37ba\",\n        \"5e702a38323fe1160b780d17adad3e96\",\n    },\n    {\n        \"a359b9584beec189527f8842dda6b6d4c6a5db2f889635715fa3bcd7967c0a71\",\n        \"8616c4cde11b34a944caba32\",\n        \"33a46b7539d64c6e1bdb91ba221e3007\",\n        \"e1796fca20cb3d3ab0ade69b2a18891e\",\n        \"b0d316e95f3f3390ba10d0274965c62b\",\n        \"aeaedcf8a012cc32ef25a62790e9334c\",\n    },\n    {\n        \"8c83238e7b3b58278200b54940d779d0a0750673aab0bf2f5808dd15dc1a8c49\",\n        \"70f8f4ebe408f61a35077956\",\n        \"6e57f8572dd5b2247410f0d4c7424186\",\n        \"e1cbf83924f1b8d1014b97db56c25a15\",\n        \"4a11acb9611251df01f79f16f8201ffb\",\n        \"9732be4ad0569586753d90fabb06f62c\",\n    },\n    {\n        \"fe21919bb320af8744c9e862b5b7cf8b81ad3ad1fb0e7d7d710a688d3eed154b\",\n        \"38bc3917aa1925f40850c082\",\n        \"aea53b1ea79a71c3a4b83c92a0c979f1\",\n        \"f24102fa7e6b819bb3ff47f90844db9c\",\n        \"2fb8b697bf8f7a2eea25fe702a3ae0a9\",\n        \"5be77e827737ad7c4f79e0e343fe010d\",\n    },\n    {\n        \"499e8a3f39ac4abc62dd4e1a6133042e74785972b6b501bfaffefc8bb29fd312\",\n        \"5c728dbbef9dcc0ff483e891\",\n        \"b44014c7fc6b3f15d126a881fbe2bd2b\",\n        \"82300dab592f840ae991efa3623a6203\",\n        \"578fe5e1aef7619f392c027c838a239e\",\n        \"49fdc724f05eb56ea9e3fd14b61ad567\",\n    },\n    {\n        \"2775d3e7a8fc665bb9a59edc22eb136add194824ed8f2adb449177404c739716\",\n        \"73f16c054e166696df679a2e\",\n        \"c9f3bce40310b6c0a3fd62742e4f3617\",\n        \"23199a1c9b7244913952ca4f7e7444f4\",\n        \"72c85c10756266d00a9a4340b2cb3137\",\n        \"5881e4565b42394e62d5daf0d1ebc593\",\n    },\n    {\n        \"425a341c67e6d873870f54e2cc5a2984c734e81729c0dbaaeee050309f1ce674\",\n        \"0c09b7b4e9e097317b791433\",\n        \"76dda644b3faca509b37def0319f30cc\",\n        \"4300a721547846761e4bf8df2b6ec1d6\",\n        \"1dd80daa0fc9e47e43897c64a6663f5e\",\n        \"5d69b34d8c3b12f783faaea7e93685db\",\n    },\n    {\n        \"dd5c48988a6e9f9f60be801ba5c090f224a1b53d6601ec5858eab7b7784a8d5e\",\n        \"43562d48cd4110a66d9ca64e\",\n        \"2cda2761fd0be2b03f9714fce8d0e303\",\n        \"55e568309fc6cb0fb0e0e7d2511d4116\",\n        \"f2cfb6f5446e7aa172adfcd66b92a98d\",\n        \"e099c64d2966e780ce7d2eaae97f47d8\",\n    },\n    {\n        \"2bdad9c3e5de6e4e101b7f16e727c690db95eacf4b0ccbdec7aab6fb9fc80486\",\n        \"a5cf3967d244074d2153c576\",\n        \"84c867ec36cc6fe3487f5192fdfd390b\",\n        \"6bdae72b5ed0e4d1f10064ebd02cf85c\",\n        \"53c8fa437c1b5fa91abbd6508b3878ce\",\n        \"7859593d127324be8b9cf1d43ead4d82\",\n    },\n    {\n        \"01e92afdb5d956be12d38b09252966c5728d26f3c72e54bb62bbc55ae590e716\",\n        \"886e55364eeb90e87ac79bbe\",\n        \"6c6570385f3d6d937e54a3a2e95bc9eb\",\n        \"c76aabb7f44b942a81feb50249d2131a\",\n        \"423b749a507f437b431114962180d352\",\n        \"54d859320a49281368297da7d4e37326\",\n    },\n    {\n        \"46921319217598cb64256fe49abca1f18a9d1dbca360f8630afb5c6137cb42b5\",\n        \"290827cf981415760ec3b37a\",\n        \"480d32b191c2e201aed03680f93ea2da\",\n        \"535ee80b12f581baaf8027e6e3900e31\",\n        \"89ace4f73583fb1ac260dea99b54055e\",\n        \"7b8b8358363c175a66e6fb48d1bc2222\",\n    },\n    {\n        \"e18cd9b01b59bc0de1502efb74c3642997fe7dfb8d80c8a73caffe7726807d33\",\n        \"bd087b384c40841b3839ba02\",\n        \"62f7f3a12b8c5f6747fcfe192d850b19\",\n        \"fe69f837961b1d83f27fbf68e6791a1c\",\n        \"bacfccf6397424e96caf761e71dd3e3a\",\n        \"9c9a5b65420f83e766c7c051680e8e58\",\n    },\n    {\n        \"68ee463b3153d9a042e5e3685def6f90f7659a203441de337fb94831cbeae9b2\",\n        \"9c4a9254c485236cf838de7e\",\n        \"73731054514f3fb0102c7a1df809f212\",\n        \"d55820e7acbb27d23c7df32938cf7d42\",\n        \"13b7823cac37f40eb811e3c966d16a67\",\n        \"76288c33a66ff6451e2cec6c4ba4935e\",\n    },\n    {\n        \"64bd594daf279e3172f9aa713b35b7fce8f43083792bc7d1f10919131f400a7b\",\n        \"339a2c40e9d9507c34228649\",\n        \"2b794cb4c98450463a3e225ab33f3f30\",\n        \"2b9544807b362ebfd88146e2b02c9270\",\n        \"434d703b8d1069ad8036288b7c2d1ae6\",\n        \"7d31e397c0c943cbb16cfb9539a6a17d\",\n    },\n    {\n        \"83688deb4af8007f9b713b47cfa6c73e35ea7a3aa4ecdb414dded03bf7a0fd3a\",\n        \"0b459724904e010a46901cf3\",\n        \"33d893a2114ce06fc15d55e454cf90c3\",\n        \"794a14ccd178c8ebfd1379dc704c5e208f9d8424\",\n        \"cc66bee423e3fcd4c0865715e9586696\",\n        \"0fb291bd3dba94a1dfd8b286cfb97ac5\",\n    },\n    {\n        \"013f549af9ecc2ee0259d5fc2311059cb6f10f6cd6ced3b543babe7438a88251\",\n        \"e45e759a3bfe4b652dc66d5b\",\n        \"79490d4d233ba594ece1142e310a9857\",\n        \"b5fe530a5bafce7ae79b3c15471fa68334ab378e\",\n        \"619443034e4437b893a45a4c89fad851\",\n        \"6da8a991b690ff6a442087a356f8e9e3\",\n    },\n    {\n        \"4b2815c531d2fceab303ec8bca739a97abca9373b7d415ad9d6c6fa9782518cc\",\n        \"47d647a72b3b5fe19f5d80f7\",\n        \"d3f6a645779e07517bd0688872e0a49b\",\n        \"20fd79bd0ee538f42b7264a5d098af9a30959bf5\",\n        \"00be3b295899c455110a0ae833140c4d\",\n        \"d054e3997c0085e87055b79829ec3629\",\n    },\n    {\n        \"2503b909a569f618f7eb186e4c4b81dbfe974c553e2a16a29aea6846293e1a51\",\n        \"e4fa3dc131a910c75f61a38b\",\n        \"188d542f8a815695c48c3a882158958c\",\n        \"f80edf9b51f8fd66f57ce9af5967ec028245eb6e\",\n        \"4d39b5494ca12b770099a8eb0c178aca\",\n        \"adda54ad0c7f848c1c72758406b49355\",\n    },\n    {\n        \"6c8f34f14569f625aad7b232f59fa8b187ab24fadcdbaf7d8eb45da8f914e673\",\n        \"6e2f886dd97be0e4c5bd488b\",\n        \"ac8aa71cfbf1e968ef5515531576e314\",\n        \"772ec23e49dbe1d923b1018fc2bef4b579e46241\",\n        \"cb0ce70345e950b429e710c47d9c8d9b\",\n        \"9dceea98c438b1d9c154e5386180966d\",\n    },\n    {\n        \"182fe560614e1c6adfd1566ac44856df723dcb7e171a7c5796b6d3f83ef3d233\",\n        \"8484abca6877a8622bfd2e3c\",\n        \"92ca46b40f2c75755a28943a68a8d81c\",\n        \"2618c0f7fe97772a0c97638cca238a967987c5e5\",\n        \"ed1941b330f4275d05899f8677d73637\",\n        \"3fe93f1f5ffa4844963de1dc964d1996\",\n    },\n    {\n        \"65a290b2fabe7cd5fb2f6d627e9f1f79c2c714bffb4fb86e9df3e5eab28320ed\",\n        \"5a5ed4d5592a189f0737cf47\",\n        \"662dda0f9c8f92bc906e90288100501c\",\n        \"ad1c7f7a7fb7f8fef4819c1dd1a67e007c99a87b\",\n        \"8eb7cb5f0418da43f7e051c588776186\",\n        \"2b15399ee23690bbf5252fb26a01ae34\",\n    },\n    {\n        \"7b720d31cd62966dd4d002c9ea41bcfc419e6d285dfab0023ba21b34e754cb2f\",\n        \"e1fb1f9229b451b72f89c333\",\n        \"1aa2948ed804f24e5d783b1bc959e086\",\n        \"7fdae42d0cf6a13873d3092c41dd3a19a9ea90f9\",\n        \"8631d3c6b6647866b868421b6a3a548a\",\n        \"a31febbe169d8d6f391a5e60ef6243a0\",\n    },\n    {\n        \"a2aec8f3438ab4d6d9ae566a2cf9101ad3a3cc20f83674c2e208e8ca5abac2bb\",\n        \"815c020686c52ae5ddc81680\",\n        \"a5ccf8b4eac22f0e1aac10b8d62cdc69\",\n        \"86120ce3aa81445a86d971fdb7b3b33c07b25bd6\",\n        \"364c9ade7097e75f99187e5571ec2e52\",\n        \"64c322ae7a8dbf3d2407b12601e50942\",\n    },\n    {\n        \"e5104cfcbfa30e56915d9cf79efcf064a1d4ce1919b8c20de47eab0c106d67c1\",\n        \"d1a5ec793597745c7a31b605\",\n        \"7b6b303381441f3fdf9a0cf79ee2e9e0\",\n        \"9931678430ff3aa765b871b703dfcc43fb1b8594\",\n        \"425d48a76001bed9da270636be1f770b\",\n        \"76ff43a157a6748250a3fdee7446ed22\",\n    },\n    {\n        \"f461d1b75a72d942aa096384dc20cf8514a9ad9a9720660add3f318284ca3014\",\n        \"d0495f25874e5714a1149e94\",\n        \"d9e4b967fdca8c8bae838a5da95d7cce\",\n        \"1133f372e3db22456e7ea92f29dff7f1d92864d3\",\n        \"1df711e6fbcba22b0564c6e36051a3f7\",\n        \"f0563b7494d5159289b644afc4e8e397\",\n    },\n    {\n        \"a9a98ef5076ceb45c4b60a93aeba102507f977bc9b70ded1ad7d422108cdaa65\",\n        \"54a1bc67e3a8a3e44deec232\",\n        \"ede93dd1eaa7c9859a0f709f86a48776\",\n        \"10cfef05e2cd1edd30db5c028bd936a03df03bdc\",\n        \"3d3b61f553ab59a9f093cac45afa5ac0\",\n        \"7814cfc873b3398d997d8bb38ead58ef\",\n    },\n    {\n        \"d9e17c9882600dd4d2edbeae9a224d8588ff5aa210bd902d1080a6911010c5c5\",\n        \"817f3501e977a45a9e110fd4\",\n        \"d74d968ea80121aea0d7a2a45cd5388c\",\n        \"d216284811321b7591528f0af5a3f2768429e4e8\",\n        \"1587c8b00e2c197f32a21019feeee99a\",\n        \"63ea43c03d00f8ae5724589cb6f64480\",\n    },\n    {\n        \"ec251b45cb70259846db530aff11b63be00a951827020e9d746659bef2b1fd6f\",\n        \"e41652e57b624abd84fe173a\",\n        \"75023f51ba81b680b44ea352c43f700c\",\n        \"92dd2b00b9dc6c613011e5dee477e10a6e52389c\",\n        \"29274599a95d63f054ae0c9b9df3e68d\",\n        \"eb19983b9f90a0e9f556213d7c4df0f9\",\n    },\n    {\n        \"61f71fdbe29f56bb0fdf8a9da80cef695c969a2776a88e62cb3d39fca47b18e3\",\n        \"77f1d75ab0e3a0ed9bf2b981\",\n        \"110a5c09703482ef1343396d0c3852d3\",\n        \"c882691811d3de6c927d1c9f2a0f15f782d55c21\",\n        \"7e9daa4983283facd29a93037eb70bb0\",\n        \"244930965913ebe0fa7a0eb547b159fb\",\n    },\n    {\n        \"e4fed339c7b0cd267305d11ab0d5c3273632e8872d35bdc367a1363438239a35\",\n        \"0365882cf75432cfd23cbd42\",\n        \"fff39a087de39a03919fbd2f2fa5f513\",\n        \"8a97d2af5d41160ac2ff7dd8ba098e7aa4d618f0f455957d6a6d0801796747ba57c32dfbaaaf15176528fe3a0e4550c9\",\n        \"8d9e68f03f7e5f4a0ffaa7650d026d08\",\n        \"3554542c478c0635285a61d1b51f6afa\",\n    },\n    {\n        \"bd93c7bfc850b33c86484e04859ed374beaee9d613bdca6f072d1d182aeebd04\",\n        \"6414c7749effb9af7e5c4762\",\n        \"b6de1699931f2252efc98d491d22ee12\",\n        \"76f43d5664c7ac1b4de43f2e2c4bc71f6918e0762f40e5dd5597ef4ff215855a4fd26d3ea6ccbd4e10789948fa692433\",\n        \"a6c7e52f2018b823506e48064ffe6ee4\",\n        \"175e653c9036f66835f10cf1c82d1741\",\n    },\n    {\n        \"df0125a826c7fe49243d89cbdd7562aafd2103fa2783cf901976b5f5d481cdcb\",\n        \"f63c1461b2964929d035d9bf\",\n        \"cc27ff68f981e4d6fb1918427c3d6b9e\",\n        \"0bf602ec47593e44ac1b88244455fa04359e338057b0a0ba057cb506d546d4d6d8538640fe7dd3d5864bd33b5a33d768\",\n        \"b8fa150af93078574ac7c4615f88647d\",\n        \"4584553ac3ccdf8b0efae517652d3a18\",\n    },\n    {\n        \"d33ea320cec0e43dfc1e3d1d8ccca2dd7e30ad3ea18ad7141cc83645d18771ae\",\n        \"540009f321f41d00202e473b\",\n        \"e56cdd522d526d8d0cd18131a19ee4fd\",\n        \"a41162e1fe875a81fbb5667f73c5d4cbbb9c3956002f7867047edec15bdcac1206e519ee9c238c371a38a485c710da60\",\n        \"8b624b6f5483f42f36c85dc7cf3e9609\",\n        \"2651e978d9eaa6c5f4db52391ac9bc7c\",\n    },\n    {\n        \"7f35f5979b23321e6449f0f5ef99f2e7b796d52d560cc77aabfb621dbf3a6530\",\n        \"cf0f6f3eed4cf374da714c77\",\n        \"4e9f53affdb5b1e91bf423d29c54401a\",\n        \"a676d35d93e12bfe0603f6aef2c3dd892a9b1ad22d476c3509d313256d4e98e4dda4e46e93b54cf59c2b90608a8fb3ad\",\n        \"1714d55ef83df2927ee95ff22f1d90e6\",\n        \"4962a91d1071dd2c05934968d21eb43c\",\n    },\n    {\n        \"06ecc134993506cf539b1e797a519fe1d9f34321fe6a0b05f1936285c35c93a4\",\n        \"f2190861d1140bd080d79906\",\n        \"519c1fc45a628ec16c515427796711f7\",\n        \"a04f2723c2521181437ad63f7910481d5de98f3e2561cec3a177bdbcb5048619738852e0fb212a3caa741a353e4e89a8\",\n        \"b36c793224ce3bb1b54144398fbdedb6\",\n        \"0030e6e84f6f8eb474ce8e071c2953dd\",\n    },\n    {\n        \"734fa8b423b91e0ecccc7f554480eef57a82423a9f92b28d464320fba405a71c\",\n        \"a6b5c78bb5791f4d121390ce\",\n        \"b496a99b39e0e94bb5829cfc3d7b3856\",\n        \"9ce25ff9b55dfa04e4271999a47cba8af8e83a390b090d1c4306b40ce8882624b662ff5867896396789295c19ec80d07\",\n        \"904081a40484bb6454fc52cb6674e737\",\n        \"6a0787cf3921a71c35b5054954527823\",\n    },\n    {\n        \"d106280b84f25b294f71c261f66a65c2efd9680e19f50316d237975052796392\",\n        \"cfc6aa2aeba468c66bf4553f\",\n        \"57e937f8b9b814e965bb569fcf63aaac\",\n        \"012a43f9903a3808bf34fd6f77d831d9154205ded589964cae60d2e49c856b7a4100a55c8cd02f5e476f62e988dcbd2b\",\n        \"c835f5d4fd30fe9b2edb4aff24803c60\",\n        \"e88426bb4619807f18a9cc9839754777\",\n    },\n    {\n        \"81eb63bc47aba313d964a5335cfb039051520b3112fa54cab368e5243947d450\",\n        \"18cc5dd875753ff51cc6f441\",\n        \"45f51399dff6a0dcd43f35256616d6be\",\n        \"24f766c56777312494245a4e6c7dbebbae4026e0907eadbc20a488982678161de7b924473c0a81ee59a0fa6905952b33\",\n        \"a2fc7b0784ec4233142f9cde12ab9e98\",\n        \"4e60b8561cacfe7133740cd2bddefaa0\",\n    },\n    {\n        \"0a997863786a4e97332224ed484ffca508b166f0603687200d99fd6accd45d83\",\n        \"7a9acabd4b8d3e1036293a07\",\n        \"9d2c9ff39f57c96ecce287c68c5cd6eb\",\n        \"525fc5ac7fe93c183a3ef7c75e3fbd52dce956855aff385966f4d79966bdb3ec2019c466584d21bfee74511a77d82adb\",\n        \"238441c65b2a1c41b302da0f52d40770\",\n        \"c351d93ab9491cdfb7fa15e7a251de22\",\n    },\n    {\n        \"acbfeb7c595b704960c1097e93d3906534c23444c8acc1f8e969ce6c3fe8a46b\",\n        \"28922ecac3013806c11660e6\",\n        \"e0d8c52d60c6ed6980abd4348f3f96f1\",\n        \"b1fe886107013ebdeb19315a9d096ed81803951a508f56f68202a7df00bebae0742dd1128c200952a049ef0cd7cfe4e6\",\n        \"56fe1cf2c1d193b9b33badbf846f52cc\",\n        \"1cb4c14f50a54a64813ffc810f31f9f8\",\n    },\n    {\n        \"f6e768475c33269596da1f5a5a38547a885006bebb9134e21274d8456e9f5529\",\n        \"3579e5ac51d1f1b82ea352ca\",\n        \"0aa481f856f8b96547672e5ae5370f9e\",\n        \"6929b6053ba148304366164f79b1b9f592c9cb9bce65094cec5cb8b0fc63e20d86b17c8bf5a7b089a63c5eac1824ee93\",\n        \"b2f4edf5f0b0bfc590fead6239b0f2fb\",\n        \"2540ceb5ef247c95d63df84c46468533\",\n    },\n    {\n        \"2ca76112300bed65b87ba6ec887cd514f4633c1c96565fec8e3e69ae2ba88401\",\n        \"964864510a8c957dcfb97d2f\",\n        \"0aff24b4c5aa45b81ce08ec2439be446\",\n        \"5aebdfd153a18763f36ecc9e8e9a01cb7b3f21e435b35b0da937c67e87c9ec058d08060a95e1eda0a5ab6546cca45094\",\n        \"03da1f5a1403dbdd9f75a26113608ec0\",\n        \"a1c215d0c552a6061aa2b60afc3667a6\",\n    },\n    {\n        \"c0ff018b6c337dde685c8279cf6de59d7ce4b288032b819e074b671e72abbc91\",\n        \"f12e6b1e85f87ef4c9ccbb7b\",\n        \"f7512bbfa2d40d14be71b70f70701c99\",\n        \"0577e8d28c0e9e5cde3c8b2a1a2aa8e2fc3ec8e96768405fcfbd623be7fc4e2e395c59b5b3a8ea117ef211320bc1f857\",\n        \"0187b4c2d52486b4417e5a013d553e5e\",\n        \"dba451e7339be8ebed3ea9683d1b4552\",\n    },\n    {\n        \"d90c6948ac2353867e943069196a2c4d0c4d51e34e2505661b1d76f3e5f17ac5\",\n        \"07e5623f474e2f0fe9f4c7d2\",\n        \"8a9fb1b384c0d1728099a4f7cb002f07\",\n        \"0de97574ae1bc6d3ef06c6ce03513ca47dff4728803e0aacc50564ee32b775fd535f5c8c30186550d99bff6f384af2dd\",\n        \"4234a3a9fb199c3b293357983e8ac30b\",\n        \"d51e6f071dbab126f5fc9732967108ef\",\n    },\n    {\n        \"80d755e24d129e68a5259ec2cf618e39317074a83c8961d3768ceb2ed8d5c3d7\",\n        \"7598c07ba7b16cd12cf50813\",\n        \"5e7fd1298c4f15aa0f1c1e47217aa7a9\",\n        \"0e94f4c48fd0c9690c853ad2a5e197c5de262137b69ed0cdfa28d8d12413e4ffff15374e1cccb0423e8ed829a954a335ed705a272ad7f9abd1057c849bb0d54b768e9d79879ec552461cc04adb6ca0040c5dd5bc733d21a93702\",\n        \"5762a38cf3f2fdf3645d2f6696a7eead\",\n        \"8a6708e69468915c5367573924fe1ae3\",\n    },\n    {\n        \"dda7977efa1be95a0e41ed8bcd2aa648621945c95a9e28b63919e1d92d269fc3\",\n        \"053f6e1be42af8894a6e86a0\",\n        \"6fa9b08176e9963927afba1e5f969a42\",\n        \"cb5114a001989339657427eb88329d6ce9c69694dc91a69b7557d62184e57832ec76d162fc9c47490bb3d78e5899445cecf85d36cb1f07fed5a3d82aaf7e9590f3ed74ad13b13c8adbfc7f29d7b151448d6f29d11d0bd3d03b76\",\n        \"d4adbff3ec8edade29b9a1b748c31b54\",\n        \"3b331733c753858c22d309ceb0f9488c\",\n    },\n    {\n        \"d7da934ad057dc06bd1ec234fcc4efdc5119037a440b5827de25915f22dd47e5\",\n        \"1b54c4ea37d2395ef70dcc72\",\n        \"86d5567658361198348207ede7a46da6\",\n        \"735de4596a80e64e38a12ab24ef73881d6ed3b533cb2c101025c3615acd2114150feeca84ade4e563bc4a300eb4a0cd97a184a293f0ac063e4f3c61e7fcdb331bcc6459fafaf0e2dda881f34eb717f4ee8c4b6890d3ef59721f3\",\n        \"70a1c1d7c200ba5ae1b6f29917bb19f2\",\n        \"a25d51cccb198bed33de0b98df249c2d\",\n    },\n    {\n        \"930ebb4b9b9c35094be374cc0b700c437b3c46b45d489a716c30f93cd5f986c9\",\n        \"7a21e5febd82ec9b97bfbe83\",\n        \"980086665d08a365f6bbe20ae51116f7\",\n        \"9f2ed5f6cf9e2d6505d3c99a8f81a7dfc5658dd085eba966c8b3206230973a086ec36fe948573baee108fca941bce53dad73180877cd497976209c1adf8a9861f0215560df064caf0ef2f99445c11816f5b8deeafedd682b5fb2\",\n        \"05baaefdeb0c33674a8064a2e9951aaf\",\n        \"2ec7efd2564d4e09a6ab852f3af49939\",\n    },\n    {\n        \"70213d8949a65f463d13206071fab1b4c6b614fd3cee0d340d2d806de6714a93\",\n        \"f8529d3e4f155cbb1ffb3d0a\",\n        \"47d47a5fd32a2a416f921cc7f00c0f81\",\n        \"112360db39b867dabaaa1d777bd881df2104b69fba15a4f37a832f5da38ad8a8c7c46db93e5b4eadf8b9a5a75508ad1457994c133c5ac85509eedfb13b90a2cf6c56a3c778582939362008608b08f9c4866a0e38744572114598\",\n        \"b220b69bd851a17fbc5b725fb912f11e\",\n        \"4c3436943d58501c0826ae5827bc063e\",\n    },\n    {\n        \"7a5834230ebbbf616630f2edb3ad4320182433c0546ac1e34bc9fd046e4a0ed9\",\n        \"d27dd6212b6defdcbbc701bb\",\n        \"b4def1251427ade064a9614e353dda3f\",\n        \"3bc12f3bb88ea4f8a2184959bb9cd68911a78458b27e9b528ccecafe7f13f303dc714722875f26b136d18a3acfe82b53ad5e13c71f3f6db4b0fd59fffd9cd4422c73f2c31ac97010e5edf5950dc908e8df3d7e1cbf7c34a8521e\",\n        \"88f94965b4350750e11a2dc139ccaef1\",\n        \"8a61f0166e70c9bfdd198403e53a68a5\",\n    },\n    {\n        \"c3f10586f246aacadcce3701441770c03cfec940afe1908c4c537df4e01c50a0\",\n        \"4f52faa1fa67a0e5f4196452\",\n        \"79d97ea3a2edd65045821ea745a44742\",\n        \"46f9a22b4e52e1526513a952dbee3b91f69595501e0177d50ff364638588c08d92fab8c58a969bdcc84c468d8498c4f06392b99ed5e0c484507fc48dc18d87c40e2ed848b43150be9d36f14cf2cef1310ba4a745adcc7bdc41f6\",\n        \"560cf716e56190e9397c2f103629eb1f\",\n        \"ff7c9124879644e80555687d273c55d8\",\n    },\n    {\n        \"ad70ebcf889e88b867ded0e4838ca66d6991499046a5671d99e91ed463ae78b1\",\n        \"561e13b335718fcbee364100\",\n        \"82d5568872a4cef12238c0feb14f0fb4\",\n        \"e037bd7306eec185b9cb4e3bf295232da19005957086d62e6fb342284f05feaa0e81d6c95071e7e4d7b6aad7b00f7e7863dd0fc16303a8304bb8855305f28067f4be71eed95ff90e046382116229f0fd3d2c3ef2e87e0d0e7950\",\n        \"771c6d091f8190ddbdb8886d9ce2ebd5\",\n        \"5009abd1ebeb26dab852346ea6d8aee3\",\n    },\n    {\n        \"a452fa24b381e7165ee90f3371c2b0db2176f848a0354c78e92f2f1f89bbc511\",\n        \"4bd904dfe18241eb5455d912\",\n        \"3f43df23ea940f3680a4b679b56db579\",\n        \"64f1a9d21deb183cff84f1aef5be83dbfc72e275f229eb5d59ace143605e8901dfa8f4724be24c86b5429bc84b629971fe1f9663b7537427b45dfb67d5f04506df4ee2c33d7f15af9f6e86058b131b7e6042b43a55bf6915f048\",\n        \"c054974c4562f8536aef2734f10e09fc\",\n        \"2c5cafaf7b1f7581c5ec13080994e33c\",\n    },\n    {\n        \"209ea3c4dd0420a4d63dbb72099a0202c9b0709f3b1221565f890511eef8005b\",\n        \"43775083e4008816129f5d40\",\n        \"b4967f8c4fb1b34b6ff43a22d34fae5c\",\n        \"9abc653a2347fc6e5a8cb9bdc251dff7c56109797c387494c0ed55570330961eb5b11087603e08ad293d0dd55571008e62d1163f67cf829e28d27beba65553bd11d8838f8a7a5f1fe05500befbaf97839801e99ecf998882c707\",\n        \"a8d22a6e25232938d3f8600a66be80da\",\n        \"2ef93cc03c17bbfb6626144697fd2422\",\n    },\n    {\n        \"dabd63ac5274b26842c2695c9850d7accc1693ee2aeee1e2e1338bbbc5b80f87\",\n        \"fd6790d620f12870b1d99b31\",\n        \"4a28048f5683679a557630a661f030e2\",\n        \"e4a06b9b205a7faadb21dc7fea8a0de0e013d717b61b24ec42f81afc8cdbc055573e971375da2fa5103a091317eab13b6a110ea211af257feabf52abafec23fd5b114b013d5c052199020573f8b7b7ae6958f733e87efa0426c2\",\n        \"196d0345df259b47665bc233b798ebba\",\n        \"b0729d8b427ad048a7396cedf2257338\",\n    },\n    {\n        \"b238df5e52e649d4b0a05e53020ac59e7d5bf49b8d04f8c30c356ed62dba9ed1\",\n        \"f153f093c9a3479f999eda04\",\n        \"d48e779766afa73d7e04fc6fc3fa825e\",\n        \"45b5df0c15140e5ce7a19f4e02834e6027971e3e0e719626c29081a6301e95c71214345afac1908bb75ff2d3281261e6c5f41dc4e4796f054174a64f8e177f3f33321edfbd263e204135699428a09f34eb344211bfb9fac9afba\",\n        \"b1989eb510843d8f35205dc3f949522f\",\n        \"616089990729228f673099514824d9b4\",\n    },\n    {\n        \"f3dc2456d3b8947591a2d82b7319226b0f346cd4361bcc13b56da43e072a2774\",\n        \"7a8acb5a84d7d01e3c00499e\",\n        \"ad075da908231ff9aae30daa6b847143\",\n        \"5e6be069effee27d34a8087c0d193f9f13e6440dc9fabfe24f6c867f831d06789d0dce92b2e3ff3ab9fe14202a8b42f384c25e3f3753dd503ec907a9b877f1707d64e4ac42909a7dee00c87c4a09d04de331515460ed101f5187\",\n        \"9f224f2a1a1fbaade8b87b748971c0ac\",\n        \"cb5089d9dfaebf98e4b36ebc5f9a1a50\",\n    },\n    {\n        \"f5a56b69a1562c77e8edebc327a20295c2eba7d406d899a622c53539626c9d72\",\n        \"a395b8aca4508a6a5f3cb4d8\",\n        \"7de4638701bd2b600d7f8d26da7a75bc\",\n        \"2e4fca2b163e4403971716015386cd81bdd1e57f00f2936da408098341011f2644a38ddad799f70eaa54f6e430d4853ff2b9c44a35123670879a83120bd555c76b95b70de0c8054f9d08539a5795e70a2446d7b9fab3f7887c6b\",\n        \"6508be2698ba9889b4e445b99190a5c5\",\n        \"3394106f257c2e15c815430f60bc24ba\",\n    },\n    {\n        \"376371a780947256c52f07d80bb25a4d7e919ca8bd693b1a0ccbca748d2ce620\",\n        \"27d7170f6f70f2fc40dfca78\",\n        \"7a279f9f8568b7c307490549b259226c\",\n        \"272c3559398ad774fa4b6895afc92870b2b92d310fa0debf0b7960e1fe38bfda64acd2fef26d6b177d8ab11d8afceee77374c6c18ad405d5ae323ad65fb6b04f0c809319133712f47636c5e042f15ed02f37ee7a10c643d7b178\",\n        \"32284379d8c40ec18ee5774085d7d870\",\n        \"dcdee1a757f9758c944d296b1dabe7b2\",\n    },\n    {\n        \"82c4f12eeec3b2d3d157b0f992d292b237478d2cecc1d5f161389b97f999057a\",\n        \"7b40b20f5f397177990ef2d1\",\n        \"982a296ee1cd7086afad976945\",\n        \"\",\n        \"ec8e05a0471d6b43a59ca5335f\",\n        \"113ddeafc62373cac2f5951bb9165249\",\n    },\n    {\n        \"db4340af2f835a6c6d7ea0ca9d83ca81ba02c29b7410f221cb6071114e393240\",\n        \"40e438357dd80a85cac3349e\",\n        \"8ddb3397bd42853193cb0f80c9\",\n        \"\",\n        \"b694118c85c41abf69e229cb0f\",\n        \"c07f1b8aafbd152f697eb67f2a85fe45\",\n    },\n    {\n        \"acad4a3588a7c5ec67832baee242b007c8f42ed7425d5a7e57b1070b7be2677e\",\n        \"b11704ba368abadf8b0c2b98\",\n        \"2656b5fbec8a3666cad5f460b7\",\n        \"\",\n        \"35c7114cabe39203df19413a99\",\n        \"16f4c7e5becf00db1223476a14c43ebc\",\n    },\n    {\n        \"e5a0eb92cc2b064e1bc80891faf1fab5e9a17a9c3a984e25416720e30e6c2b21\",\n        \"4742357c335913153ff0eb0f\",\n        \"8499893e16b0ba8b007d54665a\",\n        \"\",\n        \"eb8e6175f1fe38eb1acf95fd51\",\n        \"88a8b74bb74fda553e91020a23deed45\",\n    },\n    {\n        \"e78c477053f5dae5c02941061d397bc38dda5de3c9c8660a19de66c56c57fd22\",\n        \"4f52c67c2bb748d192a5a4e2\",\n        \"91593e21e1f883af5c32d9be07\",\n        \"\",\n        \"e37fbc56b0af200a7aa1bbe34e\",\n        \"29fe54eaaccf5e382601a15603c9f28c\",\n    },\n    {\n        \"d0b13482037639aa797471a52b60f353b42e0ed271daa4f38a9293191cb78b72\",\n        \"40fb7cae46adf3771bf3756a\",\n        \"938f40ac8e0e3b956aac5e9184\",\n        \"\",\n        \"7dca05a1abe81928ccfb2164dd\",\n        \"5ea53ee170d9ab5f6cc047854e47cf60\",\n    },\n    {\n        \"46da5ec688feead76a1ddcd60befb45074a2ef2254d7be26abdfd84629dbbc32\",\n        \"9fb3b2b03925f476fc9a35f3\",\n        \"a41adc9fb4e25a8adef1180ec8\",\n        \"\",\n        \"f55d4cbe9b14cea051fe7a2477\",\n        \"824753da0113d21186699dbb366c0589\",\n    },\n    {\n        \"de3adf89f2fe246c07b0ce035f4af73cf2f65e5034dcfecfe9d7690ae1bdbd96\",\n        \"a94aa4df0d8451644a5056c0\",\n        \"96825f6d6301db14a8d78fc2f4\",\n        \"\",\n        \"784c6c3c24a022637cbc907c48\",\n        \"1eeaeddcdb4c72c4e8966950a319a4ef\",\n    },\n    {\n        \"03c362288883327f6289bc1824e1c329ce485e0ce0e8d3405245283cf0f2eae2\",\n        \"5de9f882c915c72729b2245c\",\n        \"f5c1c8d41de01d9c08d9f47ece\",\n        \"\",\n        \"61af621953a126a2d1de559e92\",\n        \"fbdeb761238f2b70c5fb3dde0a7978f3\",\n    },\n    {\n        \"e9ead7c59100b768aa6367d80c04a49bcd19fa8cc2e158dc8edeec3ea39b657d\",\n        \"e81854665d2e0a97150fbab3\",\n        \"f8ccf69c52a873695367a42940\",\n        \"\",\n        \"af2a7199602ee9ed2020c7b4cd\",\n        \"29715945ab1c034ecfcd91a466fc822e\",\n    },\n    {\n        \"bc3e5b0fe423205904c32f870b9adec9d736a1616624043e819533fa97ed9b79\",\n        \"335fe5180135673ce1a75144\",\n        \"295df9665eef999204f92acf24\",\n        \"\",\n        \"3ac2a8a1b505a84677adfdb396\",\n        \"21f20aa0bb77d46d7290bc9c97a7a7bd\",\n    },\n    {\n        \"ce889c73e0d64e272aba4bf9777afc7ee6457ddc9626ad931708ed7530d71b99\",\n        \"fe61a6cda62fecd4e3b0c562\",\n        \"e2ae40ba5b4103b1a3066c1b57\",\n        \"\",\n        \"185aa3508a37e6712b28191ec2\",\n        \"9ec1d567585aa467730cce92e536728e\",\n    },\n    {\n        \"41e0cb1aed2fe53e0b688acb042a0c710a3c3ae3205b07c0af5191073abdfba9\",\n        \"2f56e35216d88d34d08f6872\",\n        \"6482df0e4150e73dac51dc3220\",\n        \"\",\n        \"9cb09b9927dfbe0f228e0a4307\",\n        \"fe7e87a596d63e2ab2aae46b64d466e8\",\n    },\n    {\n        \"52a7662954d525cb00602b1ff5e937d41065ac4b921e284ffac73c04cfd462a0\",\n        \"baffe73856ab1a47fb1feebf\",\n        \"9d0b5ca712f97caa1875d3ad87\",\n        \"\",\n        \"fd01165380aedd6be226a66af3\",\n        \"35a492e39952c26456850b0172d723d1\",\n    },\n    {\n        \"c4badb9766986faeb888b1db33060a9cd1f02e1afe7aaaea072d905750cb7352\",\n        \"cc6966e9d81a298a561416d4\",\n        \"de68fb51731b45e7c2c5063923\",\n        \"\",\n        \"f5be41f2c8c32e01098d433057\",\n        \"c82b1b012916ab6ed851d59829dad8ab\",\n    },\n    {\n        \"dad89d9be9bba138cdcf8752c45b579d7e27c3dbb40f53e771dd8cfd500aa2d5\",\n        \"cfb2aec82cfa6c7d89ee72ff\",\n        \"b526ba1050177d05b0f72f8d67\",\n        \"6e43784a91851a77667a02198e28dc32\",\n        \"8b29e66e924ecae84f6d8f7d68\",\n        \"1e365805c8f28b2ed8a5cadfd9079158\",\n    },\n    {\n        \"0d35d3dbd99cd5e088caf686b1cead9defe0c6001463e92e6d9fcdc2b0dcbaf6\",\n        \"f9139eb9368d69ac48479d1f\",\n        \"5e2103eb3e739298c9f5c6ba0e\",\n        \"825cc713bb41c789c1ace0f2d0dd3377\",\n        \"8ff3870eec0176d9f0c6c1b1a2\",\n        \"344234475538dc78c01f249f673e0862\",\n    },\n    {\n        \"d35d64f1872bdcb422228f0d63f8e48977ed68d143f648ae2cd852f944b0e6dd\",\n        \"0b2184aadbe8b515924dda5e\",\n        \"c8f999aa1a08871d74db490cf3\",\n        \"888f328d9e9eebbb9cb2704b5b880d66\",\n        \"ad0d5e7c1065a34b27a256d144\",\n        \"8c8e7076950f7f2aeba62e1e761650d5\",\n    },\n    {\n        \"9484b7ce3c118a8a2d556c2f7ba41fca34f60c9ea1070171459c9e7487c9537e\",\n        \"87bc033522ae84d2abe863c5\",\n        \"14d8004793190563825e273dda\",\n        \"07ee18737b9bf8223979a01c59a90eb4\",\n        \"43034a2c57ccacc367796d766a\",\n        \"4c981ca8b6e9e52092f5435e7ef55fbb\",\n    },\n    {\n        \"4f4539e4a80ec01a14d6bb1bae0010f8a8b3f2cd0ac01adf239a9b2b755f0614\",\n        \"2b6f00ce1570432bf52fdcac\",\n        \"820cc9389e7e74ca1cbb5a5fe6\",\n        \"0d72a13effe40544c57cc18005b998cb\",\n        \"99553fdf3e777e2a4b3b6a5538\",\n        \"3cbf51640a3a93c3662c738e98fb36a2\",\n    },\n    {\n        \"2f5e93ee24a8cd2fc6d3765f12d2179ddb8397783e136af9e0ac75f16fca451e\",\n        \"0dc3c70a191f3722641fd701\",\n        \"4e96463793cdeda403668c4aee\",\n        \"ebab30cbcc99905354e4ee6f07c7db87\",\n        \"ab03f8ca7b1b150bdc26d4e691\",\n        \"020546afff4290c4c8ef7fc38035ebfd\",\n    },\n    {\n        \"a902e15d06ef5ad334d0ec6502e936ee53ef3f3608f7708848b11cefa92983d1\",\n        \"b9f3e966efa43ab4aca1f2d8\",\n        \"393ff3dfe51cd43543e4e29fcc\",\n        \"2eaa35c00bf1cf8a81919bd04b43fd97\",\n        \"7e8928b450c622ac8efe29d5a0\",\n        \"5a285de95990aef171629350bbcaf46e\",\n    },\n    {\n        \"96657976da7692004e271b594e8304f77db9c9e77859246bb30a16239ba76a53\",\n        \"79226100afea30644876e79a\",\n        \"2b0833a065c3853ee27c8968d0\",\n        \"ede7a9072a0086b9a1e55d900747cf76\",\n        \"19373168f1a4052a57c6b8146f\",\n        \"debbf044325384b90a0c442d95455fb9\",\n    },\n    {\n        \"630ea13eb5f52378b976ba2662f824dc622920759a15d2e341c446b03ea7bd5c\",\n        \"0f9ebe47682f93d44c4db314\",\n        \"5c734964878a4250a3bf61fdd6\",\n        \"5ad8e9cffe622e9f35bdb185473868e5\",\n        \"67cb6d943340d002d3323fcc4e\",\n        \"f5dc0f88f236560c4e2a6d6c15d3c0de\",\n    },\n    {\n        \"c64f8a3ac230dce61b53d7b584f2309384274d4b32d404bc0c491f129781e52d\",\n        \"7f4b3bcf763f9e2d08516a6d\",\n        \"fe581128ae9832d27ec58bd7ac\",\n        \"89ed6945547ee5998de1bb2d2f0bef1e\",\n        \"81d7a8fdaf42b5716b892199c9\",\n        \"8183aaff4c0973fe56c02c2e0c7e4457\",\n    },\n    {\n        \"dd73670fb221f7ee185f5818065e22dda3780fc900fc02ef00232c661d7bffce\",\n        \"c33de65344cfbf228e1652bd\",\n        \"ada4d98147b30e5a901229952a\",\n        \"e1a5e52427f1c5b887575a6f2c445429\",\n        \"6ed4e4bd1f953d47c5288c48f4\",\n        \"404e3a9b9f5ddab9ee169a7c7c2cf7af\",\n    },\n    {\n        \"f6c5d9562b7dbdd0bf628ddc9d660c27841b06a638f56601f408f23aa2f66f4e\",\n        \"67280bcb945ba6eda1c6c80a\",\n        \"f4caead242d180fbd2e6d32d0c\",\n        \"5b33716567b6c67b78ea5cd9349bcaaf\",\n        \"fdfa39517d89ea47e6ccb0f831\",\n        \"91f9b540ca90e310a1f5c12c03d8c25e\",\n    },\n    {\n        \"ce1d242f13de7638b870e0aa85843ea43a9255a4fa4d32057347f38e0267daeb\",\n        \"86562be4621b4d5eb1983075\",\n        \"d20e59a8ef1a7de9096c3e6746\",\n        \"d48a9490a0b7deb023460608b7db79ce\",\n        \"35ce69fb15d01159c52266537c\",\n        \"dc48f7b8d3feeeb26fcf63c0d2a889ec\",\n    },\n    {\n        \"512753cea7c8a6165f2ebbd3768cc7b951029bd527b126233cf0841aff7568c7\",\n        \"b79221802d8d97978041fe84\",\n        \"c63d6c1006b615275c085730b1\",\n        \"22fa0605b955a33468f3e60160b907f2\",\n        \"bdb5d7f24732bdba1d2a429108\",\n        \"fca923d2941a6fd9d596b86c3afb0ad9\",\n    },\n    {\n        \"e7b18429e3edded2d992ca27afab99e438b8aff25fc8460201fabe08e7d48ec2\",\n        \"9db9b7320aaac68538e37bf7\",\n        \"c4713bc67a59928eee50039901\",\n        \"283e12a26e1646087b5b9d8c123dde1f\",\n        \"a5932f92bda107d28f2a8aaa74\",\n        \"9a1357fd8ed21fe14d1ca2e597c3ef17\",\n    },\n    {\n        \"69b458f2644af9020463b40ee503cdf083d693815e2659051ae0d039e606a970\",\n        \"8d1da8ab5f91ccd09205944b\",\n        \"f3e0e09224256bf21a83a5de8d\",\n        \"036ad5e5494ef817a8af2f5828784a4bfedd1653\",\n        \"c0a62d77e6031bfdc6b13ae217\",\n        \"a794a9aaee48cd92e47761bf1baff0af\",\n    },\n    {\n        \"97431e565e8370a4879de962746a2fd67eca868b1c8e51eece2c1f94f74af407\",\n        \"17fb63066e2726d282ecc610\",\n        \"e21629cc973fbe40176e621d9d\",\n        \"78e7374da7c77be5938de8dd76cf0308618306a9\",\n        \"80dbd469de480389ba6c2fca52\",\n        \"4e284abb8b4f9f13c7497ae56df05fa5\",\n    },\n    {\n        \"2b14ad68f442f7f92a72c7ba909bcf995c827b439d39a02f77c9bf8f84ab04dc\",\n        \"4c847ea59f83d82b0ac0bc37\",\n        \"b3c4b26ebbfc717f51e874587d\",\n        \"8eb650f662be23191e88f1cd0422e57453090e21\",\n        \"3e288478688e60178920090814\",\n        \"a928dc026986823062f37ec825c67b95\",\n    },\n    {\n        \"11f41bf7d4b9ac7b0035ce54481ed1502ff05cfae02ffba9e502f61bfe785351\",\n        \"06f5cf8c12c236e094c32014\",\n        \"bee374a32293cad5e1b28419b3\",\n        \"d15cbde6290b7723625c99ffa82a9c4c03ed214d\",\n        \"3f8122deb6dbe0ff596441203d\",\n        \"60ef7f3723710b9ab744f8eea00267f7\",\n    },\n    {\n        \"18ca572da055a2ebb479be6d6d7164e78f592b159cdea76e9fe208062d7b3fa1\",\n        \"1b041e534ae20748262f3929\",\n        \"cda2fa0015361ecf684c6ba7d1\",\n        \"e8a925d7ce18dd456b071cb4c46655940efbe991\",\n        \"740d8d578e2e7522c31019f471\",\n        \"f2eeb5af1bfedd10570a137fe2566c3f\",\n    },\n    {\n        \"0de2ac5bfec9e8a859c3b6b86dde0537029cdca2d0844bf3e1d98f370e199be1\",\n        \"1778e308e0221288f1eb4c5a\",\n        \"575d93a3416763cbd371b5a671\",\n        \"1362264f5655f71986aa788efd48f6fc13bb6ab4\",\n        \"8f8df7ca83bf876b63c78e2c9a\",\n        \"16c74e315aab97efafbe95c9dcaa2d0c\",\n    },\n    {\n        \"b381535a085bc4808fa7a139c7204e8a87c7145dfc8f3900df1fa9a9844fab35\",\n        \"21ddc54d3c633f4a344a0e42\",\n        \"e4d958cee583010bbfd3a53021\",\n        \"7ac3ba600e08363ddb57c45a8670bb4abb869db0\",\n        \"c42c81a312759cdb032aafe852\",\n        \"0c472591db3df8a7c67164591542dcc9\",\n    },\n    {\n        \"29f21e5029ea4964b96dc6f4c34b2df4cce02f2fcf0f168ffd470e7858e0a0ad\",\n        \"63a1c1ccc328280a90ff96fe\",\n        \"dc12113764c13c21432ca1ba33\",\n        \"454f447433f0948581956c4be1b19d932e89b492\",\n        \"1cb45aac5def93daef806b781e\",\n        \"f4b0723c89607b66c392049ba042db63\",\n    },\n    {\n        \"2733d3aa52a9d70a9fbd6ce2364bb5f9004902aa5eeb17446e08f2bdcc41db15\",\n        \"196c4addb84a58beb3674a7a\",\n        \"cbc50cafda2544bcd291e8a025\",\n        \"c9826fe31f29b55b9d0f9da9795869a1a98befe5\",\n        \"7a89cc58ccb97ad3e54ca4a9c8\",\n        \"3990d9aba210182996fdbd91c2ae4801\",\n    },\n    {\n        \"0c4b9005b407415c19672bcd0ebe169f66fe404f22529baf55568e0901e94922\",\n        \"e51381e959a1f5688c938576\",\n        \"c6179bd3451d9299b727e8bd0a\",\n        \"0b512faeb4da740dcc1e30d3c7ea61035e8570b7\",\n        \"4d3fe086c990f16020b4c5eed6\",\n        \"9ff2297845814719f851ab0943117efb\",\n    },\n    {\n        \"fee442ba37c351ec094a48794216a51d208c6a5ba0e5bdb8f3c0f0dfc1e4ed63\",\n        \"a666f2f0d42214dbaa6a2658\",\n        \"a2cf3ea0e43e435261cb663a3b\",\n        \"7198c12810345403862c5374092cc79b669baecc\",\n        \"713d4050f8c7fd63c0c1bf2ad9\",\n        \"250a35e2b45ba6b0fe24512f8213d8cb\",\n    },\n    {\n        \"77f754d0cf7dbdaf75cfe965ab131e8cd39087ee6d986dec4ad2ff08ebd7f14b\",\n        \"e28a14f3107ca190d824ed5f\",\n        \"54a97a74889e55d8043451c796\",\n        \"1decf0cbc50a9da6dad4a785a941e4b95ce5aaa8\",\n        \"eedbf8dd81eb19184589dcb157\",\n        \"7749edd752fab7e50dbc3b0b47678bf6\",\n    },\n    {\n        \"0523f232001e68bd65a79837bbaf70ec2e20851301d8e12fddb5926acb2100cb\",\n        \"2bb8d5cb3ceb15107582e1fa\",\n        \"6b4cdc9f9c5082d86a1d2e68fe\",\n        \"1f55bba71cb63df431ef8832c77499ee3c502067\",\n        \"079fe90ef517ed2f614a3cd8ce\",\n        \"539c30590a2527f1d52dfae92920794c\",\n    },\n    {\n        \"54c56ee869ebb112a408717eb40af6937fe51eb061b42277a10537e7db346b6a\",\n        \"5bfb63e2f3e5b2e1b4343480\",\n        \"75f9496b8d0ca96ed3af02dcab\",\n        \"740ab07b9c5de2afa37f0788ae5230535c18203d\",\n        \"827902e58c4c8b7af976f61842\",\n        \"036ee6473c2138f2a2c2841438cb0edc\",\n    },\n    {\n        \"d968ffdbed6ffc259b4310e2e97e42d877ef5d86d2169928c51031983779a485\",\n        \"633d0d8d3613c83b40df99dd\",\n        \"08cfc65fea9b07f0c01d29dfdf\",\n        \"9aadc8d8975ec0a3f5c960ce72aaec8ef0b42034\",\n        \"7b450f162bdedc301b96a3ac36\",\n        \"970d97344b1451f3f969aeb972d352e6\",\n    },\n    {\n        \"5f671466378f470ba5f5160e2209f3d95a48b7e560625d5a08654414de23aee2\",\n        \"6b3c08a663d04132243dd96c\",\n        \"c428592d9f8a7f107ec4d0df05\",\n        \"12965559c31d538f937bda6eee9c93b0387318dc5d9496fb1c3a0b9b978dbfebff2a5823974ee9d679834dbe59f7ec51\",\n        \"1d8d7fe4357080c817303ce19c\",\n        \"e88d6b566fdc7b4fd62106bd2eb806ec\",\n    },\n    {\n        \"fbcc2e7faa4295080e40b141bef829ba9d34e0691231ad6c62b5109009d74b5e\",\n        \"7f35d9ec651c5b0966573e2f\",\n        \"cdd251d449551fec080425d565\",\n        \"6330d16002a8fd51762043f2df06ecc9c535c96ebe33526d8faf767c2c2af3cd01f4e02fa102f15ce0236d9c9cef26de\",\n        \"514c5523024dd4c7d59bd73b15\",\n        \"d3a399843e5776aa348e3e5e56482fff\",\n    },\n    {\n        \"04ef660ec041f5c0c24209f959ccf1a2a7cdb0dba22b134ea9f75e6f1efdae4a\",\n        \"0f5f6fbca29358217c8a6b67\",\n        \"0835b312191f30f931e65aa05f\",\n        \"505e205d13ec945391c7d6516af86255e82f38433f40404d4f1e42d23b33eb9e6dea5820dad60622d3a825fc8f01a5d2\",\n        \"5ddc0f5963f0290c1a0fb65be7\",\n        \"106d1f8d26abe4b4b1e590cd5d85e737\",\n    },\n    {\n        \"42d3ff74284395fb9db9b8c7a444fa400f7fc6b985a7fec2478667c7f17cf3ba\",\n        \"89230fbed59d1226a093ad28\",\n        \"d8339e3618ba57a243a27c85d6\",\n        \"60342f97310446266b2e47b18e008979d07fc181151ac0939b495e7f31de1d0e74042532840ab91686efd7a402d27a94\",\n        \"9bb6fa36fa167016109d521ac0\",\n        \"600909ef32ca62951ecbdc811caa7778\",\n    },\n    {\n        \"e115c6468606a5f9b8e9a7c220d7d7684d686c9210a669770b6e4bf24447cd17\",\n        \"029c7c9ee2d3ab26843e8b41\",\n        \"7abf84842f9867cfc5eabc7032\",\n        \"1befd9f97f99fc096deafde5e158ac86716c0ba32454988fe48ba4737684361849a221c03fc0948cb25b5f29d6a0cb2a\",\n        \"851c7047fb09646fbddb824531\",\n        \"d0ac4110c8d768f0a804ecda387cfa30\",\n    },\n    {\n        \"56552f0cef34673a4c958ff55ad0b32c6ababa06cb3ae90178ab1c9a1f29c0e5\",\n        \"b34d24935407e8592247ffff\",\n        \"dbd6cc358b28ab66a69f5238d4\",\n        \"b199437da189486a8fd1c2fa1fe3ebbb116f0ef41415bb7c8065272fb0b2fe8edca9cd0d4255d467e77f2834be557474\",\n        \"76dc8d035e5ca4001e4e3fcb18\",\n        \"49c01f735da1131cd42b01b746fd38de\",\n    },\n    {\n        \"d4f405ba556e6fe74b7e6dbdd7a8eae36376d1ca7a98d567d108729aeae5c326\",\n        \"df6637c98a6592843e0b81ef\",\n        \"abe87641e9a5169f90179d3099\",\n        \"a5328cbabdfe6c3c1d4f5152189072dade71e2bacd857d3ce37ee9e3161eb0f20de5a29b7999fd9c7c60cdc03751bd1b\",\n        \"06f9cf9677745e78c6c02bf06b\",\n        \"5a3a76da0703c24a9588afb2ac1a9e13\",\n    },\n    {\n        \"4f667f65ea4569264456e25de498579036d6a604c18baf770bb626d8a1c68e4f\",\n        \"43e27d275abefdd45137c8ff\",\n        \"eaa2498ce27e5658489381b6ec\",\n        \"264b807b4631d7c87ee9f1507082f5af9218f531b4630141f3c94939aa7cf81c71ea540783995560bf7e6e02d196227f\",\n        \"bac018bf2e7090e7f217ab3365\",\n        \"13e5a16a9ce7a88cda640de2c4fdc07e\",\n    },\n    {\n        \"f5624a166759ef0b8168af6565649f7797fa92476e008c407458101e75831312\",\n        \"521ca79ffc8930349abfc052\",\n        \"1fab3def2ea13e815f8746093b\",\n        \"6e2771ecd637361cb6b947148910f7d9206d6af176c510bb5dd5bc9b97ac015fb05537affbc1756625715374172fb456\",\n        \"ca72ff15a7eb62a2839bcf0c43\",\n        \"475fff6d9e2382583c9614020844b92a\",\n    },\n    {\n        \"ac1383a3c783d3d0667e944cbe1a6159647b96afa922557eb1cb6407546b98ca\",\n        \"70366112dbe1bd905b900e3a\",\n        \"b8dd871f9d866867efbe551c3b\",\n        \"b7c1865927737bee802415277cf1a25b7380774a9d27b6a3253f077d36e9c4142df2bbbf3c03414ac09161626ce9367c\",\n        \"ba181874380841791f64881534\",\n        \"c5641edf42c446873372bbbde1146642\",\n    },\n    {\n        \"f37499d9b6ad2e7618e30a23082673008f3ae1938b9397c02a4da2453fb7e403\",\n        \"18e112ea6a998d6f9705f7e0\",\n        \"31560b2114a248ffe0696fa130\",\n        \"736f1a71fb259f46c6519bb87451f238f47d80c74a016604499b02568f1c7bedf70f9597d7b62c1698c4f2631f4e9706\",\n        \"0163f558be0142ebabde29a7bc\",\n        \"45579ce07ee64cdac3a7a42109ff44e7\",\n    },\n    {\n        \"50b7f5118ef7ee22b107d93ceab9881ef9658931e80385d1ae92501b95e47d62\",\n        \"d5113665039169978b7dc4db\",\n        \"9ba4cd5e600277f4c786ce827e\",\n        \"68ff6c63e94cb7dd2b8413662a56c88dc130b79b8b2e2388c1089b61fa51ea37819109b5ef64da1250f5d6b5d74cc392\",\n        \"67842199482b28be56f7570d11\",\n        \"79e03841843fe32337b7c7409a2153bc\",\n    },\n    {\n        \"d396941c9c59e6a7bc7d71bd56daf6eabe4bfb943151cdb9895103384b8f38b4\",\n        \"f408f8c21f3825d7a87643ed\",\n        \"dc8ad6a50812b25f1b0af70bee\",\n        \"947bd9a904e03fdd2c91d038d26d48ac6e32afcad908eacd42a25f6240964656d5a493242d3f8a19119a4cd9957d9c42\",\n        \"57e6d821079bb8a79027f30e25\",\n        \"de8c26d5a3da6be24b3f6ea1e2a0f0c6\",\n    },\n    {\n        \"eca22b3a29761fd40031b5c27d60adbcfac3a8e87feb9380c429cfbcda27bd06\",\n        \"4e6fe3d1f989d2efb8293168\",\n        \"44d6a6af7d90be17aac02049a4\",\n        \"29beb1f0bb6b568268b9c7383991a09fd03da7e1639488169e4f58ec6451cad6d4c62086eee59df64e52a36527733d8c\",\n        \"9aaa295bb3db7f6335a4c8cf2f\",\n        \"55f7577163a130c0dbcde243ef216885\",\n    },\n    {\n        \"fa3ce8b099f3a392624bc433b5265235b65c0952cfc54817be2a8003d057903c\",\n        \"3168b4e50efe96b3d3aed600\",\n        \"84ed3ccd428d3783ecea180b3b\",\n        \"d451fa64d73b7d7eee8f8143c40bab8e3f7a58ee018acda23224974f64ac7e1e389f5058ec08664bf56492b932d15f42\",\n        \"ee2bd527568a4e7537c8f939b6\",\n        \"f4615f7dfdffec8a2d52c992456210ad\",\n    },\n    {\n        \"ff9506b4d46ba54128876fadfcc673a4c927c618ea7d95cfcaa508cbc8f7fc66\",\n        \"3742ad2208a0484345eee1be\",\n        \"7fd0d6cadc92cad27bb2d7d8c8\",\n        \"f1360a27fdc244be8739d85af6491c762a693aafe668c449515fdeeedb6a90aeee3891bbc8b69adc6a6426cb12fcdebc32c9f58c5259d128b91efa28620a3a9a0168b0ff5e76951cb41647ba4aa1f87fac0d97ac580e42cffc7e\",\n        \"bdb8346b28eb4d7226493611a6\",\n        \"7484d827b767647f44c7f94a39f8175c\",\n    },\n    {\n        \"b65b7e27d552395f5f444f031d5118fb4fb226deb0ac4e82784b901accd43c51\",\n        \"2493026855dd1c1da3af7b7e\",\n        \"8adb36d2c2358e505b5d214ad0\",\n        \"b78e31b1793c2b758494e9c8ae7d3cee6e3697d40ffba04d3c6cbe25e12eeea365d5a2e7b46c4245771b7b2eb2062a640e6090d9f81caf63207865bb4f2c4cf6af81898560e3aeaa521dcd2c336e0ec57faffef58683a72710b9\",\n        \"e9f19548d66ef3c16b711b89e2\",\n        \"e7efc91bbf2026c3519010d65628e85f\",\n    },\n    {\n        \"8e4f8859bc838f6a2e7deb1849c27b78878285e00caad67507d5e79105669674\",\n        \"e71d0ebb691a4c31fdd9879c\",\n        \"bd1713d8d276df4367bf3cbb81\",\n        \"47ca6cef3ca77997ef1b04e3721469be440ad6812aa3674ae92ca016b391d202e29932edfa83029eccae90bd8dbe4b434e7304b28fe249b380b2c3c49324fd5b3e469e3e135abc1c9fd77828b409c7482e6a63461c0597b14e5c\",\n        \"eecbfb74e314628b0e3f827881\",\n        \"c9ea890294d7e10f38b88e7c7493c5f8\",\n    },\n    {\n        \"2530cdcb2a789000822588a31bdc87c09234838da2d6ae1259c7049186525f11\",\n        \"0c509faa257dbb0e743a53ac\",\n        \"a8edc524930ce4c20897c66f75\",\n        \"92a92cb8c1984ede806028cc45ac95574167ee83f03a707cc4b0fb8ad70907e0016e38b650f4a75bc83a625e3c670701d43bfb0326d1c4fe7c68410733c0c874c920389d164bf67a9032e2e837f5e9e324b97932d1f917ba7dca\",\n        \"1f658c7a1f41152b22999ed1b7\",\n        \"cf3e4fef775d9c6ff3695be2602a90d8\",\n    },\n    {\n        \"54c31fb2fb4aab6a82ce188e6afa71a3354811099d1203fe1f991746f7342f90\",\n        \"f0fe974bdbe1694dc3b06cc6\",\n        \"fbb7b3730f0cd7b1052a5298ee\",\n        \"2879e05e0f8dd4402425eabb0dc184dcd07d46d54d775d7c2b76b0f76b3eed5f7ca93c6ae71bf509c270490269ea869ed6603fdf7113aa625648ab8ed88210f8b30ec9c94bca5757ca3d77491f64109101165636b068e3095cb4\",\n        \"3a5a2a8aa93c462cfb80f1f728\",\n        \"59ef9d54ee01fb6cd54bd0e08f74096f\",\n    },\n    {\n        \"8084061d0f7858a65c3a3557215ed46f1590278ca97a45dcb095d2a0979f2e3f\",\n        \"6973898b1a8f72856415675b\",\n        \"200d0445cb09eb52f54d2f74c6\",\n        \"8b543e294546848c3308ccea302f0238b7dffc1706d03657c190ea745cc75bcd5a437993e787828ea7fe42fea1d5c6f7229a72ea65f0d0c190989a590ab49c54726633282c689eef8cf852af263b5edf63e449fd5440730003ca\",\n        \"ec242c358193ca6187c89aa7a5\",\n        \"967428ac6956525ba81d5901ed259407\",\n    },\n    {\n        \"2aad7db82df4a0d2ec85218da9d61ade98f65feeb8532d8eb728ef8aac220da6\",\n        \"029ac2e9f5dc3d76b0d1f9df\",\n        \"ba363912f6207c54aecd26b627\",\n        \"d6f4b6232d17b1bc307912a15f39ccd185a465ee860279e98eb9551498d7b078271ebabdda7211e6b4ab187043171bc5e4bf9ffcf89a778430e735df29410a45ca354b0003433c6bc8593ee82e7c096a32eac76d11daa7d64150\",\n        \"bfcad32611da275a0f0821517c\",\n        \"9ea37bdcaafad69caf06d67fb18dd001\",\n    },\n    {\n        \"f70bb950ab56f12f1efc2376d32a59d16ef3ef5969e0106ab40cc314c9b0c7e8\",\n        \"3b3b29ba422c2bacafeeb8b3\",\n        \"029929277043dc0379f152a484\",\n        \"464ac0c84b9ff17a0e7c39a65f89682a89b8787553a6275f0d55effaabef2114072c739f9831a5d5a5133ae4de14eb51346b318b255a1bff57e50c433e1e69a00fe1a8b6f6b621d515d670d89e148f6b65d6eb4c54878cb819ce\",\n        \"c0b97d6d1a95d708d6dc7d2b95\",\n        \"322eb4395bf4d4dd070b8f9f6195f8ee\",\n    },\n    {\n        \"f4950f01cb11fdd9afb297f7aa852facfac354ff96557befa5f657678de6cefb\",\n        \"aba7d864f29cbc449cd93e33\",\n        \"e6daf59ef54ac7405984fc4c4e\",\n        \"852f624cea7a8c20e189e0c79f578c0d770c4bf7c4e691649eba992f6de89d7bf2078aff94803a3dc62628e02a80a01957722e2a931fc56283d84ab68ce11ae867835c2d9700df130048ea8eaaca41f1a9059be2acaea6e0f7f2\",\n        \"d01d36ff8009b4082279abb906\",\n        \"d9a36c8008493bd95c09049299cbd075\",\n    },\n    {\n        \"714261ef4f02fb4efb0e6b5aed96d7b3ceac6551a57cf679da179c01aac5ee0e\",\n        \"3b7d15c7fd877461a789255a\",\n        \"815de8b0382fe60cb0d3782ee9\",\n        \"7621e58152336ee415f037f2e11581fe4da545c18d6e80177d5ab5dda89a25e8057d6fccec3757759a6e86e631080c0b17baa8be0b8fe579d3bfa97937ee242b6faacfc09425853df4dc26bc263ed1083a73ffc978c9265f8069\",\n        \"29c566ea47752a31a380fd0e7c\",\n        \"b279340a384dbbae721c54e9183b3966\",\n    },\n    {\n        \"53459ba5a2e49d1a7c2fb6ad9e6961b4dbe5158cb9266eff425d6dcccaaf8073\",\n        \"3c97dc635a75fbe2c33c9a41\",\n        \"03fbfe5842ed781990ca8be728\",\n        \"7fe308afe58a927680bee3368301f4dc7c47811fc09f1b9922a092a497b9c6b67c857fdcc32da1011acb110b3c1475bef303f1a609479485cc400ee8f38381c45d078708ad49f226f95dd9c81478d1ee2b53c3b906d96f8ddd76\",\n        \"5865e5a1ec711732a4ee871bff\",\n        \"856a653ec214178096bed423e30a36e9\",\n    },\n    {\n        \"f0501583c226d2519ed23fcc6f2cffd2f013eb91aa07b3a5a2073d6e2bd10cef\",\n        \"29a922ad9bdeddc2e298b99f\",\n        \"035eb6922345c02a81435d9e77\",\n        \"d84f54bac09ea92afe0a7335cb0bb5f68425490fd2fb6c3b99218f49856ed427ec902e510b899d54951fe84cdbfd112608d1e999f64ecc9cd4be3a0114c1c34875dbf35a1b0be421659f99d69b32e968cebfca6f95837e3edeb4\",\n        \"095971f99af467805a62bfb882\",\n        \"d5ff2b7beac260e517ea3eca13ff1e77\",\n    },\n    {\n        \"78e6789b596c71cb3becc833cf823d2ebb18ca2e26c27e26a55ef95df7353971\",\n        \"65da9c7a9f17b11246bcf8db\",\n        \"003e82a147df3c953400f87ab5\",\n        \"d49aee7ffd31e7c8d831d97ae894a00473adbc5071f6099d567caaef85c295d5143a1316ff82753cc35d3efc60f7e5101ddd811336b404d598f6c439cce6b47fcbebb15d1c342e4151b355025a03b4397260b4a7e6444fa57b5b\",\n        \"abcceced40209fc30a5590fee8\",\n        \"0a203973b81375949ebd932597efd495\",\n    },\n    {\n        \"816b3e6ca31d59688c20bcd1fa4285197735d8734289ca19a4730e56f1631ccf\",\n        \"4c191ac994f86985c180ccd4\",\n        \"b2060dd86bc307133b7d365830\",\n        \"b3dcd643c68ccce186570c63288c8722b8a13dfaf9e71f44f1eeb454a44dddf5f955540cd46c9f3b6f820588f71936d7a8c54c7b7bc43f58bb48e6416149feae7a3f8d8198a970811627489266a871e8cb87878cdb3a48be65f5\",\n        \"53e65880ad0012a75f1188996f\",\n        \"9ca8a71a45eb4402a6b03106bae330d1\",\n    },\n    {\n        \"a07ba57478061bd7abddd762971cf2e47141891f76c3d1c150b53eee5704557d\",\n        \"5adfb85b2d9e239c5146501d\",\n        \"67c8824c1837cfdec6edcd719c\",\n        \"937b3ed73e67ca0b02f9eb736a668362d4d0447c15f6083099a7f90c7c49318dd72f6baa74da22ff53b56c24fb9a1b1d6c4e29f4ac4d917220ebe3c8d760999da7be9e1e8f6a171133640c9196f9ee3cdb76a5a342a95a05c8c4\",\n        \"1eb85c6682850e849eb37927e5\",\n        \"8079f705cf551a5484132cd0f0c5297c\",\n    },\n    {\n        \"268ed1b5d7c9c7304f9cae5fc437b4cd3aebe2ec65f0d85c3918d3d3b5bba89b\",\n        \"9ed9d8180564e0e945f5e5d4\",\n        \"fe29a40d8ebf57262bdb87191d01843f4ca4b2de97d88273154a0b7d9e2fdb80\",\n        \"\",\n        \"791a4a026f16f3a5ea06274bf02baab469860abde5e645f3dd473a5acddeecfc\",\n        \"05b2b74db0662550435ef1900e136b15\",\n    },\n    {\n        \"c772a8d5e9f3384f16be2c34bf9afd9ebf86b69e6f610cd195a9db169e9be17e\",\n        \"9b8e079f9971d7352e6810a3\",\n        \"7f13fcaf0db79d792823a9271b1213a98d116eff7e8e3c86ddeb6a0a03f13afa\",\n        \"\",\n        \"d29e2bf3518668a14f17a3e4e76e1b43685734b801118d33a23238f34d18aa40\",\n        \"8e02b0b7d172cf5e2578f5b30fac2e7a\",\n    },\n    {\n        \"d5924b31676e2354fe7dafffaf529749598ea1bf5e4c44f5b60240e09d8036aa\",\n        \"5d847784f0bcd79cb84fcf1d\",\n        \"6fd80c8f0d4de081a93c16b84dec697a1e4f9d80a6af497c561572645eac0d63\",\n        \"\",\n        \"282cc9d2308a443019cfdc4d79854accc7731ee36902bafe3ffaca6484327b82\",\n        \"4dc5e0f2ab91bdfd31f2bdcf06af9667\",\n    },\n    {\n        \"b328c6d7946221a08c4f0509b52992a139890cdd8eae1956851f110c49602cb5\",\n        \"1a433c33ca12ce26cf3dffff\",\n        \"217bdc314a4d335c72b5267b424fc8e31f4bb118e6cfaeacf5548f4ba8f51980\",\n        \"\",\n        \"a322944e07bf84ab424ffa75fd0309e8691c9036b08f344ba76ce0774f43b351\",\n        \"14dd6b1c2b224533ccc9fee8d2881358\",\n    },\n    {\n        \"c2080965d21d229c0d0d6c56cbce83880120c21a48172a64560b90dc4ce1ffbe\",\n        \"928d6c0195f5f0974f38730b\",\n        \"864397271e1b242aa1dff38e78aa89353e1554ba907318a0aaad44f26fcd567d\",\n        \"\",\n        \"7de4f941f44bd0f268b2a47b9c4927cc10537bbed739d52ab099fde4033041d1\",\n        \"b51a59931817257619e7be1091128c49\",\n    },\n    {\n        \"dd6b7e2584edf1f1e6c2c0dd1f72161a92d2cba99856554f820de1256d48c099\",\n        \"fe9d553c75067e8dbae1ab67\",\n        \"f9f86f7762859f11d6e7ef56178657ddcded532843446f86a23eac35aa2dd3c0\",\n        \"\",\n        \"f7aaa1711c8092783b05b4e5e6c9c6944e991bd59c94b9d0356df00a66e2db5b\",\n        \"c61edd176c8322a01d8c5f3df09252e9\",\n    },\n    {\n        \"37f39137416bafde6f75022a7a527cc593b6000a83ff51ec04871a0ff5360e4e\",\n        \"a291484c3de8bec6b47f525f\",\n        \"fafd94cede8b5a0730394bec68a8e77dba288d6ccaa8e1563a81d6e7ccc7fc97\",\n        \"\",\n        \"44dc868006b21d49284016565ffb3979cc4271d967628bf7cdaf86db888e92e5\",\n        \"01a2b578aa2f41ec6379a44a31cc019c\",\n    },\n    {\n        \"a2ef619054164073c06a191b6431c4c0bc2690508dcb6e88a8396a1391291483\",\n        \"16c6d20224b556a8ad7e6007\",\n        \"949a9f85966f4a317cf592e70c5fb59c4cacbd08140c8169ba10b2e8791ae57b\",\n        \"\",\n        \"b5054a392e5f0672e7922ac243b93b432e8c58274ff4a6d3aa8cb654e494e2f2\",\n        \"cf2bbdb740369c140e93e251e6f5c875\",\n    },\n    {\n        \"76f386bc8b93831903901b5eda1f7795af8adcecffa8aef004b754a353c62d8e\",\n        \"96618b357c41f41a2c48343b\",\n        \"36108edad5de3bfb0258df7709fbbb1a157c36321f8de72eb8320e9aa1794933\",\n        \"\",\n        \"b2093a4fc8ff0daefc1c786b6b04324a80d77941a88e0a7a6ef0a62beb8ed283\",\n        \"e55ea0456af9cdff2cad4eebbf00da1b\",\n    },\n    {\n        \"6fb2d130bbad1924cab37d071553b12169e978a805bf74cb4c23d5ccd393d7bb\",\n        \"76826741225a391fdce4d3b6\",\n        \"c49b80080e2efeb5724b9e5b53ba0c302e97bd16f1a6bbec01e1ca6c35a42a3c\",\n        \"\",\n        \"62fbe5466a7ff83ff719f4927e00e9319e1bb7e835c5d6b4e9d4bc5a8d6e2beb\",\n        \"df72da7a66cb5257836f3c19ecadcd55\",\n    },\n    {\n        \"402e8113970257d9437807620098370243536a105cca4fbc81a1ff2d48874f48\",\n        \"c924c19c4d14905a2bdf63bf\",\n        \"917b9585f65e59bf4d242bb0802966045dd29fbc66911277baecdfcc818c3c35\",\n        \"\",\n        \"5b6594edcddbb338f4e813687f4f23a75a64c21e3cf5d2e7c9af0f7e3ee3e616\",\n        \"f1cccd93a4411247c8b6830addd72c6f\",\n    },\n    {\n        \"2aac499cb0eb72b4598acff4330df6cd764978997d5ace51da88e0c18671bde9\",\n        \"fd16cdc39d7f0b92e1f95c97\",\n        \"e7b75bfa35c9a004d0b68265623a9b06b6d4493ea0ad4f6c777ba5add8c7bbbb\",\n        \"\",\n        \"c3d0a0f7ce9720c95aac86151aad634884ddfa62df58f18394537f6504d9a8aa\",\n        \"76749a1ec70236b267fc340d5fbb6da3\",\n    },\n    {\n        \"a2a502d6bb19089351e228d5cbff203e54fc31f2772253df08557875d964c231\",\n        \"0ebb5af4a462a1e6ded7164a\",\n        \"bbecc89450c07b8de631155e5d7cc7a9d26376bb57d7458d49b4c36e140490f3\",\n        \"\",\n        \"fd09c950890441fcaaa8809a8998079abb88741c6672abae12383ffd724f8299\",\n        \"22fac246058bf142c5f26812a635b480\",\n    },\n    {\n        \"ce2d289e20c76f75c135c8118d5cbf5f2828026f0b639588a3eb4ad752cea548\",\n        \"bb08526dd8bd1c3bb58d0999\",\n        \"56f5db1e796a0c4633a8d570182c39e3c8451e7ba485b98d38a2c926a1b92a46\",\n        \"\",\n        \"a41005df18734d4f3f99f19ef8fc43b16ef431207cb0466341bf164b58e23533\",\n        \"a45c2a1ef6aec75cc22d71807dab3c27\",\n    },\n    {\n        \"66e418d0ec97b420b1b5365d1b6d5cd7c5ac1a5653739120d4aec3c94c93c287\",\n        \"989f94480266e3652488184e\",\n        \"e5052b19d7f827fd60f45c8925809fd2217ec4d16aa89bbf95c86a1c1e42bd36\",\n        \"\",\n        \"f341630574ee92942cf4c5ecd3721ae74b32c557379dfe8351bd1c6661a240da\",\n        \"e85fb655ef432e19580e0426dd405a3e\",\n    },\n    {\n        \"37ccdba1d929d6436c16bba5b5ff34deec88ed7df3d15d0f4ddf80c0c731ee1f\",\n        \"5c1b21c8998ed6299006d3f9\",\n        \"ad4260e3cdc76bcc10c7b2c06b80b3be948258e5ef20c508a81f51e96a518388\",\n        \"22ed235946235a85a45bc5fad7140bfa\",\n        \"3b335f8b08d33ccdcad228a74700f1007542a4d1e7fc1ebe3f447fe71af29816\",\n        \"1fbf49cc46f458bf6e88f6370975e6d4\",\n    },\n    {\n        \"2c11470e6f136bec73351619288f819fb2bbba451857aadfb78384074612778a\",\n        \"4e6cc2bcc15a46d51e88958d\",\n        \"3b3186a02475f536d80d8bd326ecc8b33dd04f66f8ba1d20917952410b05c2ed\",\n        \"05d29369922fdac1a7b37f07953fe175\",\n        \"6380945a08977e87b294b9e412a26aebeeb8960c512439bac36636763cd91c0c\",\n        \"1029a3c4be1d90123c1b404513efde53\",\n    },\n    {\n        \"df25ea377c784d743846555a10cfaa044936535649e94da21811bad9cea957b5\",\n        \"35f5f8e950c1f57ad3dfb1fa\",\n        \"98941a807ac8f16eef0b3d3c7bbdfd55d01736c5b3360d92b4358a5a8919380b\",\n        \"28eb4677110ccb6edc8d2013dc8f46ec\",\n        \"24a07532e981aaf3106eab8dfbb2d2078342e2eaee027e148f06aca68f6a1c50\",\n        \"131373ed4a0e3f584ae978d42daa6f3a\",\n    },\n    {\n        \"106168ea651f22c54196a06f1a10bcf4e620d93e4dc0824d798f44f9219c6177\",\n        \"4064dcbd631cf20b05ae22de\",\n        \"b0d3da2b96b8889c92e445abbea4c6d0d5d44d7fbcc7dade4c92f6bcddbf06e1\",\n        \"a36e2fb9cd96a8ca9ae2b193aa498efd\",\n        \"f55a6d8a6965ea451637bec7548cfb1ffe59fc0ce6ea6a937cb5dd32b3d45d5f\",\n        \"8d1bf2715041f817f11631fc9910c629\",\n    },\n    {\n        \"272d1649a3dd804de0962d3e07064a7054c00a6234ab1b0cdcf685ab394837e5\",\n        \"955b5897f6b9806bbec5c33e\",\n        \"36e57c29c08c51ad7fa91c0416f976cfd011780eb44cc5abd34c7b431b093b8d\",\n        \"33e618ecbbe5eb0566df21c3c34b7e25\",\n        \"cd6aeb345081dc0bb2c8b4d19b280658fb87c0f2bd0f4c9da694dc1feeb32f4e\",\n        \"dd37eac6bd6a4d3618241738779735d7\",\n    },\n    {\n        \"3dab6a51bb7af334dd4b79a7d139550c88f0778d43c21fc4ad33f983a13515cb\",\n        \"362eaa67cab3d1ed48e9f388\",\n        \"3eb7f5f0a4ca9aa7000497602c6124433a60a8fcd91b20175b4ee87e6b10a2d7\",\n        \"52852150786e6547a2618e15c77110b6\",\n        \"cc3316041b88733839249b756ffa00bbec6211942f604f26c4a35ed32e6eeaff\",\n        \"5936c5500240d50c0da0fcdc248f176e\",\n    },\n    {\n        \"0ea606521b935d5b4b66df89fb372d35c4d6d2c03767367e38de0d4c27761d56\",\n        \"0d3168318a4f76392699640b\",\n        \"f450b36d6c49411897bce39001d73ff01b5e8566179e36dacac7064cab5c6270\",\n        \"3bd8849070cf034c4298f40f33b0b839\",\n        \"3b15fad18726c4eaa70502b3f3b32c5092d1d92835e6460665fc50dda953a191\",\n        \"11fd3fddf61e010c17fbedd4bd5fb012\",\n    },\n    {\n        \"c8c4f9e0bd289ef1bd16104a8074fb073dd9035ab937ab076fb5801e2295aa2f\",\n        \"be699d9d98ec1f724da8bd0f\",\n        \"49fe9407a719d41e658587809cfed7a5b49941c2d6378f3c0afe612f54f058a1\",\n        \"a985c7489732038c3190cb52be23737c\",\n        \"17a9aaa6a3c68ba1f6cb26fdd6536c207e3c9ce58f43e4ecfd38d3387a798a0f\",\n        \"d832cb4814142562fedfe45b36126cb8\",\n    },\n    {\n        \"52d0f20b0ca7a6f9e5c5b8549d5910f1b5b344fc6852392f983558e3c593be24\",\n        \"d5c618a940a5a5d9cc813f27\",\n        \"a9fed8a29355685321f978e59c40135309306cd41b25349fe671dc7990951c68\",\n        \"61823f7e39ed76143ca7249d149bdf57\",\n        \"509c540e558d0bf0a3b776cddfbfddc15486748a7f9952b17c1cbd6869c263f4\",\n        \"42e35ee3f7119f87fb52b5d75b8ab8ec\",\n    },\n    {\n        \"5d291a8f1a6433a41076702d9d8a8c196e464550ed900ce8c2a36f4d10483954\",\n        \"c4ba743ee692e5d00b5ae2c6\",\n        \"605d519b26182458fea68dddd86033390fc545f843ae817850a2a4574add015d\",\n        \"878fa6720ab30e0287f6903acd2dca19\",\n        \"1c2f153f2374d3945cca9757dc18d9a15a93276526285a6e316ee32a72092c34\",\n        \"e7905e856c88c6ece4bb47781becf923\",\n    },\n    {\n        \"09e2724d4017cd57e967000e4da2cd5c5c18ccfb06c33b7ce62a7641e4bb0b73\",\n        \"9ea18b420a10177289ab370b\",\n        \"6f5dfa86d5df4febd752265c56390049e7cda60c2644c84ab413932faad15b15\",\n        \"a8e77939423d5894d307fd60278d162a\",\n        \"35e37a9b913eb58b72262e92d7584d44bf9a8442f1b2f3da3a5d05ec6a2a31e2\",\n        \"1a95023b1a4a3e885520ec79e1a3aef9\",\n    },\n    {\n        \"8544a9f4f6c0efdff3da90cfa3ee53fbe1f8de159d29537c803e1651da153718\",\n        \"be406029a1d0c25d09af94cf\",\n        \"7e88a65646ed138b7c749366d16e41dbafd9987ad2373bb9d0b6ce0c1a4d6661\",\n        \"599dbb73897d045a1bd87385e60323a2\",\n        \"38ffbf9ffff8d6a92090584e6dace1c6a47d3d5709a25e470557d5c8f5dd1851\",\n        \"d5b2e83c47df404de9a7cd95d3cbe7ab\",\n    },\n    {\n        \"35b9d2a5db3b06e7720cec794dae615029a491c417f235498e0496cd8183d1bf\",\n        \"b382987916e19752dd9ecc0c\",\n        \"76b290496901c5824ad167433dbb6d6b5856d41913ee97ec81e70cf6a170e35c\",\n        \"e0aa3a1f1df601366c59a390f4f06c3b\",\n        \"78347400d6799e77e11e76c0ecfd311becf31f74f14b3a71e6d526ce57015c8b\",\n        \"bf8dec2feac7cfe9f330bdfc92737b33\",\n    },\n    {\n        \"d707eab3c167b73efeb08c50e12b1569a275487ea136f52736c0f3ce66b69fa3\",\n        \"11116f34182e52428642e747\",\n        \"a0c4818362035b16b50de445d558ea5cf8844bf5c84b96232999a2279806cc45\",\n        \"ae9f90331800c358716c92667f79f748\",\n        \"91c77404b20028ef0fd4dd7f8b65b6594af94a1e7fc79cfbdb108265354fc71b\",\n        \"6c3410d4b915dbad745715202c04e9a4\",\n    },\n    {\n        \"405d13ee48d3b9fc26bcfca776b2af6c745d8fc34171622f8c6c4be5a54b8b65\",\n        \"add1524abb1b846f0f6577da\",\n        \"e06475990d6e3990266de1bd025c3b1910c0736c81050885f2bfc13ec78e9d96\",\n        \"0b1c4c3ba877bca5846b2c1f2b0e2105\",\n        \"6399f7e6d6c680fc41bac8bee3836b9a4241403d5a19e4919f396ce37b238d38\",\n        \"e754f400d76c76e03c63ea88cf64ccba\",\n    },\n    {\n        \"5853c020946b35f2c58ec427152b840420c40029636adcbb027471378cfdde0f\",\n        \"eec313dd07cc1b3e6b068a47\",\n        \"ce7458e56aef9061cb0c42ec2315565e6168f5a6249ffd31610b6d17ab64935e\",\n        \"1389b522c24a774181700553f0246bbabdd38d6f\",\n        \"eadc3b8766a77ded1a58cb727eca2a9790496c298654cda78febf0da16b6903b\",\n        \"3d49a5b32fde7eafcce90079217ffb57\",\n    },\n    {\n        \"5019ac0617fea10517a2a2714e6cd369c681be340c2a24611306edcd9d5c3928\",\n        \"fd1fa6b5cab9aa8d56418abb\",\n        \"4349221f6647a906a47e64b5a7a1deb2f7caf5c3fef16f0b968d625bca363dca\",\n        \"953bcbd731a139c5de3a2b75e9ffa4f48018266a\",\n        \"dbce650508dab5f499767651ee734692f7b157341977692d2ca879799e8f54aa\",\n        \"20239e97e2db4985f07e271ba545bbbf\",\n    },\n    {\n        \"c8cee90a8b9ad6094d469e5d1edc30d667608e89b26200cac77efd7e52af36fd\",\n        \"5a1aa9c8e635281ee1fb9df7\",\n        \"728d9221891bd75c8e60b7dd6f53edcfd1ab1cebc63a6ce54be220b5b362233b\",\n        \"0538b3b64da72aac591bc59991a140eff206b3f7\",\n        \"b753eb6b87f0c8778c3ea3a74fba3b31ced6d2da94d43d482ab0431806a80d75\",\n        \"b21d29cf6fd04571ffcaf317d384df11\",\n    },\n    {\n        \"b4b77710f86ffd463fc14bb9eaa4424b2b3a581778e5511a094a08fb204cab59\",\n        \"3e4b12bf55633bf48d104620\",\n        \"6f44a8df11dce27df075ea10ddeb7566ca6c988a334cf56e8540f71166d7c0d1\",\n        \"3e3b4c9369266266098326217b5677a40297cb87\",\n        \"31f82f5cb1cd5c4b4819b61aa9377abebe8fca76978b1199178462c7c1c4e2b2\",\n        \"1b3a535768e8480d75ec91b2e7b55efd\",\n    },\n    {\n        \"0a8fb75498a139223c763d52bbe3d42f813de370fa36b81edc4553d4219d2d5d\",\n        \"7d6cb675fded3efef908a11a\",\n        \"81b69ca354de3b04d76ee62334cb981e55f0210f1174d391655d0f6712921a0e\",\n        \"2314ad86b248f1ed2878e7c562b533bf2dda5a29\",\n        \"6a23d30737f4a72b1e07ba23d17fde43a4498e2e60d3e1b0c8e6ea26a2bb331a\",\n        \"7fcac442fb657910c62a74b1d0638902\",\n    },\n    {\n        \"a84315058849690c2b88062aef81134d338526baa7090e865fcaad94bbf51ca5\",\n        \"a487cfa701447b495aab41e0\",\n        \"18074e14dc0a14d4439f1d710927ed8c200154c8492f77f10f653e0bf6070ca6\",\n        \"7c4416b0cf13ac76bec6687a6840dc703e91bb86\",\n        \"80f40b7e335d40fc5859e87f385e14798a253818e8ad73b1799c1419638246a4\",\n        \"b4c7c76d8863e784eb6029cd160ef6de\",\n    },\n    {\n        \"82833bcaaec56f6abbb3378f7d65daf6e6f6f2a0d1e858c7219f53a7840f4e00\",\n        \"4bc9b028a00be8feb5232978\",\n        \"d9b2383123a27a93bce85add8392b938093b40e82f182e484bf4f84fa3bfb3f0\",\n        \"76fc8ed57154cd8a9b3d02c87061edd2a8157811\",\n        \"383efe971438cd2b2cbb399d74a3fb3eedd394f1862addc58e9fdd4c421402d2\",\n        \"fd803c4fa917f7ff649a6aac013a96b1\",\n    },\n    {\n        \"ee4634c49c5672c660968a42862698f6c1b2c7b79efd1605c24af8ff9ff8366c\",\n        \"877912b2f35888d2810612cc\",\n        \"9512a5268a0cb3fbd916ddb820dce77f1e0dbb52c8ffc7a74be077119e9245e4\",\n        \"93bd669db4f1354ef6c8addb0cf729e46d5c3846\",\n        \"69af0ac954e0d69043851d89f1538ebcb42769857eba27dbe4ad4fd60fd75537\",\n        \"3ee443873e2f7f7ea601fe3d7e5211e2\",\n    },\n    {\n        \"442f4bbc468433411e49486a15c5eed577f5007380ff126d9974f3bd3fe4e3c4\",\n        \"1e7133aaa8af826dc646ec62\",\n        \"7f8069e5c356ece135d98bb563c8b411ea90ea3b673dfd92e1ba9c459efae61f\",\n        \"577662f611446b5b31814930029edb949a30dcb9\",\n        \"b962952750eb2bce313e1a85a72e3c9cc2ea7e58c353ea37df2c9f0723995ca7\",\n        \"e633fe9f10cedf0f0d02aa2ddcf47d86\",\n    },\n    {\n        \"3a29aec009f44fdd2b1bc07cb7836f29d8589774bd0d74089a68d9e67827d6d8\",\n        \"a42c5fb61573c72688ac31d8\",\n        \"d36eb81506c0a0e4ebcac9b4b1acebb38b94b8f2ce3d6f85a8f705fa40cb987a\",\n        \"2ee2582d544e1663f1d7a0b5033bcb0fce13b3e5\",\n        \"179ef449daaacb961f88c39b4457d6638f304762bd695924ca9ebd01a3e99b9f\",\n        \"1fee176c7a5d214748e1d47b77f4bcc8\",\n    },\n    {\n        \"ed47660054294f3c913c97b869317cbddc395d757bef7d29b8ccbdd2c54e99d3\",\n        \"770a00642c67eff93c9f1f56\",\n        \"034193397cbd0eb414459273a88808db2d0711e46f80d7883212c443d9e31b54\",\n        \"06210fca2018d2357256c09197730e9777caea96\",\n        \"6a250ebd3390229d46b691142743dba1c432c0feaa0f0dd19d0ce4e6a8918d80\",\n        \"a5f6e975592b472907c34b93bfc69dde\",\n    },\n    {\n        \"9539844493362dc3f913308f7e12a2a0e02afdbd8869877b30ce0397fb0349dc\",\n        \"eadda3132079195a54fde2c1\",\n        \"62349a0b1e40a9f31eadf27073682da15f0a05cf4566ee718b28325f7d8eaba0\",\n        \"0ae4a90cb292c4e519b525755af6c720b3145a1e\",\n        \"ad6c9521bf78d1d95673edd150f2b8dd28f10625d67fa25f1fb42d132ba7fcfa\",\n        \"916242a9cb80dffcb6d3ae05c278819a\",\n    },\n    {\n        \"3b4eb08d27ae0b77605ae628a1b54a5402026550679fab0a20752bee510d3d92\",\n        \"28a20c40f49a00493da3488a\",\n        \"c8a47edcf84872f53f96ef41ce05ca37cbc3854b556d6e606f0a8a32d0861907\",\n        \"0591390e2d14ebe62aeb1741c26448ce55b28cab\",\n        \"a3e8cbf84df8529838f79315c7f1a0b7bb3ad4c4d036ec317b1810b274ee3080\",\n        \"0a8f66daeb7f0a88756909c4e93fcd36\",\n    },\n    {\n        \"0cccea8f1f6ce141690e246cf4cb9f35b66baf6e6986b8e0b4cfdd13fcdbc8c3\",\n        \"929f07be5aa7bae7607bae3c\",\n        \"9fa5214c599523c695d37937b02f78837f6406960b2a03bf9a6db34bd35e3dc7\",\n        \"b851e610be70a994808b34ca73f45f1ea973de65\",\n        \"917ecc8b00b53f7fb0732d66848a106e91f60acf2dcf180832a74d5993c658da\",\n        \"2959e20746bbb6ab66dfd29b9477799a\",\n    },\n    {\n        \"ecbfaef2345b34f31fbf6d68efb385e5833df8b6e6ae621ede02baf9735d2dba\",\n        \"50c3527b1a35ccb318b446de\",\n        \"634f6dd60783d1f952353fd1d359b9ee4f4afa53cc13e81c5adfe24b46baf08f\",\n        \"f8981548bde6ee6c1745f947de191bf29997fadf\",\n        \"705e5f67ab889ba238118e3fd9b90b68be801995ae307378d93b50977cf90588\",\n        \"12d14468ac18cc9936bd565f8ad42d0d\",\n    },\n    {\n        \"dc776f0156c15d032623854b625c61868e5db84b7b6f9fbd3672f12f0025e0f6\",\n        \"67130951c4a57f6ae7f13241\",\n        \"9378a727a5119595ad631b12a5a6bc8a91756ef09c8d6eaa2b718fe86876da20\",\n        \"fd0920faeb7b212932280a009bac969145e5c316cf3922622c3705c3457c4e9f124b2076994323fbcfb523f8ed16d241\",\n        \"6d958c20870d401a3c1f7a0ac092c97774d451c09f7aae992a8841ff0ab9d60d\",\n        \"b876831b4ecd7242963b040aa45c4114\",\n    },\n    {\n        \"07b3b8735d67a05632c557076ac41293f52540bac0521573e8c0414ec36f7220\",\n        \"0046420eee8d56de35e2f7d5\",\n        \"4835d489828325a0cb38a59fc29cfeedccae25f2e9c399281d9b7641fb609765\",\n        \"d51cedf9a30e476de37c90b2f60882193630c7497a921ab01590a26bce8cb247e3b5590e7b07b955956ca89c7a041988\",\n        \"46eb31cd98b6cc3ecafe1cd1fc2d45fa693667cbd3a7d2c5f8c10296827ea83c\",\n        \"36cd4e76dd0679887477bfb96cf1c5f6\",\n    },\n    {\n        \"0219f14b9ca6506c1388177c4ae6ee64ad2ac0256ebbf8c219b40df6e8571d70\",\n        \"3420a87c4b9b23ba81eb221e\",\n        \"348f7a4ca944f252e4562c66dacf01fb10d70a3c8f5b280a2829567a2a94e47e\",\n        \"54dc2277b8d1aae660ffcc326e2c5d9e16b8ca17288601aacd02b3eea8bc5cc60718639aa189506b7b333b87da86e940\",\n        \"58c92119bfb6ad53e387cac6728ce73b82e18f6e5bfbfca5f5acc370cd8c76a4\",\n        \"e7f9e3e3dae6d0a3470d8f597291180c\",\n    },\n    {\n        \"87440ee7f6febf3e14ef0a917a87c5d61260fefc979eeaeac0a64662c98cb4f7\",\n        \"7c48bc75e58f21cc9989d691\",\n        \"f8e40a6a985f424898a7996307a077c487406c5312eefe055ea5b17a4b22087b\",\n        \"e0c66e5db1c7665a015ba7e21e08ff3de5b4a5fcd5d35e41db7e97ccd0c3df657ae803c3529d375420ad75ac9621cea0\",\n        \"5a118fc3dbdaf6bc9490d372b7623af76da7841bf9820a9c6624a15eff6a69c2\",\n        \"0ddc2ae087d9b8ca2249ea5aa3dbd4c7\",\n    },\n    {\n        \"b12425796f63bf5435740f9039fa66367fc7702d675c61b2dec4435feeea07f8\",\n        \"f26727053e6d67c2d2bf1e69\",\n        \"9df079d98a6e4dbe277a8545f4f6c19fe130f4a84bdd6b760a049fba21d4e99a\",\n        \"e50fca2e5a81ae56ca07f34c4b5da140d368cceab08494f5e28f746cbfefdc285b79b33cf4969fe618b77ab7baafe271\",\n        \"845f00202e2e894516d8f4a4021430e531967098c9a94024c7113c9a1b91c8cd\",\n        \"3566c75967ae00198e39ebe9f0ac697f\",\n    },\n    {\n        \"674dfb625b8b0ce1dadbbbcbf7e151c5b2cecf0a1bc4e07f4734f3a6792350cd\",\n        \"99e7b76e6686449616ad36c7\",\n        \"0a744a72e536a0484db47091609228d803bcfa9a8daf579e3039e3645f7688e2\",\n        \"2ab1573e5a94ca2997590840bd9c62e6add55e4d3eac12c895d2ec637791caa41d46ed91e6064db627e1fbef71d31d01\",\n        \"e550ee77069709f5199be3c618f2a4178e4d719ab73df41cbfe32c52777138ff\",\n        \"134ac3fa8bd4af7ee836f4a3421d9e99\",\n    },\n    {\n        \"10c1de5f741560dae5be23e15649f0114db52949560bb6cdf2d4883247392ee1\",\n        \"7cf73c1472cd60d8d35fde51\",\n        \"05becd366aebaa2e609f507dd2dd4433b2aba0634b0eb9a5bf7ded4cc8fbed72\",\n        \"d3fa8b6f607a20a18dd7eac85eabef69d4fb5a074d8e7d1bf15d07732ed80e020163b475f209c4b0cbfa00d65d1e82ef\",\n        \"280f0c306e1a3aab8ff9ab3e4a9adc2e9ae4e4e1a06f190d11b3b4dc4280e4f3\",\n        \"3bc8be845bf5ff844c07337c2cfd5f80\",\n    },\n    {\n        \"e8d6ab5e514645dd7e051b028f5bfe624c72f44f30279577365aea65d4a8a819\",\n        \"30b0d654ee5b79c2cfb24100\",\n        \"19be7e0feedd402bf4b05995a38e5f423c033de016e3ae83ea8c3c1cba658e1e\",\n        \"082e534bf860d0061ec2dad34d6b0db8cba1c651f2c705356ff271e47365b0b18f8ddb3a3c2269b437fb0703c9ad367a\",\n        \"8573800c737d2480b2885ce714ac6a15f23287b1d12949a3d76effbe82b593bd\",\n        \"50110884292151f51213ccb2fe934d88\",\n    },\n    {\n        \"2d1eaf5e62ca80fd1515a811c0e4c045aba8c769df03d57f7493eb623ed8b941\",\n        \"abf190b05df2e6556cb34b47\",\n        \"9c7cd522ed5c0af3e57da08d2653ef77eb973734f360572bbcb15a2a6cbd60b9\",\n        \"75ab9bd39c24e498a54d85a8b76a4126dc1879f2a30270a42609763e045a4021785b6134f283fd81c195c3188e78752d\",\n        \"5fdfdaccb105e5408c375af8ca63a67afaba7ccbcd591acca9a86d92f92fd0f7\",\n        \"49940b7610618b3a5cb3912339e06b3c\",\n    },\n    {\n        \"b6020677e098c59e19eacf26732473d843aafd6bf999c707bb08ab896406918d\",\n        \"807167ef2b84b32d1df4a94c\",\n        \"3199d6b95d133ba5b7eadc420080a0b249c84f4960bd369d6bf9e313627cf670\",\n        \"06225d410ada3e04157da7e5481d7d9f2285845824aac0c0e033244ed4c1b19615354c224ba8b7093c5651d10ef952fe\",\n        \"4618adbfa5ea4ee260e310140b385232b7c3ad46887aa2107f7dafffd85cda22\",\n        \"2d76307bf55826dfeb58a171b6fa80e4\",\n    },\n    {\n        \"f75456c4918d0bea72f546a9a1e2db0b6ab9bcd9782b5eb1c2700e729921d666\",\n        \"c75b83134e7b9188e5800ffe\",\n        \"f9a23abbd0f2b367ce16c2a0613cd293ac7e66cbe020eaeb5deb09d5031fd992\",\n        \"5ef46c9eb5865cab2c8a35f9c4c434614a6c9f1b5c479739f7434d3326cff1e70b0d2877c084a71c7a9d33d258d304bb\",\n        \"56e4efe6c0944153b65ed4909845219842b9b88f54d8d8394051132afb95d391\",\n        \"255e2c8c43f8979c440c3581bff6cf65\",\n    },\n    {\n        \"9831c5c12e53e8a961642e93ddb2e13a38506acd0cf422e6ad9fbaeabce7b3f2\",\n        \"bff29de3d6869e5fa75b96f9\",\n        \"b1edbed58ed34e99f718db0608e54dd31883baec1c8a0799c4ff8a5dad468de4\",\n        \"67ebeecb74cc81fdfee8065f8b1c1f5012bf788953bec9525e896611b827084a8e6baa0ce40ee70bc699b152bc6ed903\",\n        \"13845db7e33bab1f5766a7fadfb942748e779753d97f143e645ccfcbd7c23b23\",\n        \"10dbe8a3e1901c8b88b0ab1441664d32\",\n    },\n    {\n        \"a02c2d4a43f0f7f1db57c07f13f07f588edfe069a9d83c9b76e9511946c4fc48\",\n        \"84677438592dcaf683d08a67\",\n        \"ad5a884dad20ffa88794c4fca39f2ca01c6f67657ab38e5cf86ac5597318ef07\",\n        \"d5dea0cd6080af49a1c6b4d69ace674a622f84f9f190b2db8a22e084a66500b52ff20a8d04f62a7aeaedb67e2258598c\",\n        \"83da16ae07ee0e885484c1330a6255a6e7ac22915c63cbefaabc6f9f059dd69d\",\n        \"42c4a270705493d85ad7bbcfda86dffb\",\n    },\n    {\n        \"feba412b641bc762bfa79ef17c3ea16e5630605470db096e36ffd33813641ace\",\n        \"e3633f21e7c63a459d5d1670\",\n        \"9326572bd33551322ca42fcfb7cef8be41d78725f392c34907ecd1fe5572bff1\",\n        \"b7ee0233863b0e185b2f46181eb5fc0718832e1e76e7d4115a4c1f7e998c41319ccef44f5db89e8c5f077bd553d7bf42\",\n        \"5019ea98cc9dc9368432c6d58f9e144f55446e763c0a8b4d8a6ce26f3dd95260\",\n        \"1010beb9cd6e9b611280a5395f08bca9\",\n    },\n    {\n        \"21bd5691f7af1ce765f099e3c5c09786936982834efd81dd5527c7c322f90e83\",\n        \"36a59e523df04bc7feb74944\",\n        \"77e539dfdab4cfb9309a75c2ee9f9e9aa1b4651568b05390d73da19f12ccbe78\",\n        \"48aef5872f67f524b54598781c3b28f9cbcf353066c3670370fca44e132761203100b5e6c7352a930f7e9cbf28a8e1ce\",\n        \"c21483731f7fe1b8a17d6e133eda16db7d73ddd7e34b47eec2f99b3bbc9669aa\",\n        \"15f9265bc523298cefb20337f878b283\",\n    },\n    {\n        \"26bf255bee60ef0f653769e7034db95b8c791752754e575c761059e9ee8dcf78\",\n        \"cecd97ab07ce57c1612744f5\",\n        \"96983917a036650763aca2b4e927d95ffc74339519ed40c4336dba91edfbf9ad\",\n        \"afebbe9f260f8c118e52b84d8880a34622675faef334cdb41be9385b7d059b79c0f8a432d25f8b71e781b177fce4d4c57ac5734543e85d7513f96382ff4b2d4b95b2f1fdbaf9e78bbd1db13a7dd26e8a4ac83a3e8ab42d1d545f\",\n        \"e34b1540a769f7913331d66796e00bdc3ee0f258cf244eb7663375cc5ad6c658\",\n        \"3841f02beb7a7fca7e578922d0a2f80c\",\n    },\n    {\n        \"74ce3121c18bbff4756ad10d0f293bb1ea3f93490daad0249cd3b05e223c9747\",\n        \"81107afb4c264f65ae0002b1\",\n        \"7a133385ead593c3907806bec12240943f00a8c3c1b0ac73b8b81af2d3192c6f\",\n        \"f00847f848d758494afd90b6c49375e0e76e26dcba284e9a608eae33b87ad2deac28ccf40d2db154bbe10dc0fd69b09c9b8920f0f74ea62dd68df275074e288e76a290336b3bf6b485c0159525c362092408f51167c8e59e218f\",\n        \"64bd17f3e8f71a4844b970d4ebc119961812efb9015b818e8d88b906d5efbd76\",\n        \"46d0e42aa046237efee17eab6d9cfb75\",\n    },\n    {\n        \"4c669a1969c97d56da30a46236c15407e06aada686205eed3bd7796b02c97a4b\",\n        \"0a07758d5ad44766e051da6c\",\n        \"cd59bb307be76f11304f69ac8b151e1628ac61dec81086e7f24fd5bd83df8856\",\n        \"0b8277114cbf7ee16c9bbda1ab40419a02e469ebb295883f0a833c3cb755ded44a3c410034a201f7d91b43519fbabb55b974834be5d5afc7aea7c84b44a14e8e16dd68a3e8cc79ad2bf76d0ceb33d58ddb6378b45681ceaa0f2f\",\n        \"bc62ce0b23cf4aa8e16b4450c8ab8c629a53949f01e68b875ecc5c45ff6d3ab0\",\n        \"5ffeda728914031006f271c3d9986f2d\",\n    },\n    {\n        \"a23296632913051e438114deb782fb955b75acc35e86e7e9fdaf4e9025b87f12\",\n        \"ad50db40f80f15214e43ffd7\",\n        \"b71116cc27b5a5844d9b51a4a720cb3f06d55d6aaeaeaf921236424db8617204\",\n        \"a6f96f5a89bfd8c8f34cd07045270d80e58ea62f1f0b10f2506a954f272af0bc71df96ad3fa8eed52c45e0b868091dc4f75d9e0eaf15a0a858a71bf7036c5607110cbfe47ad9b6d02e942fcfae88d4c792a1f824e60e3cf98a37\",\n        \"8e9e4b0ac93ab8e73688d6b4723d8c5ef399ead72246c7aa7a0783a8bfe29936\",\n        \"b7dea91e4b357ce805edeea3f91392d2\",\n    },\n    {\n        \"4036a07bdd4e10eb545f3d9124c9f766d2d0c8c59fc0d5835ac55dcfaebfc3a1\",\n        \"815828fbb964497cdadccaad\",\n        \"717f22faff8066182e46d32dbac7831ec24272871c45c7c12ca779f868e7739a\",\n        \"0bc0e3931388bcb091463bae2989a93bde103bc14fc5d39f9448ca90367e86336b188f73218b2b0ab72a9a564ad5ff32544c5afeacecadfa55d2fb66925a88299dbf58f425cf49e31f42ac4edace743fdf9680d20ec845afc278\",\n        \"e8c3b0342964c7a71f084d44ba2f93742bccd9821b30087d11b53bbe8b085808\",\n        \"86ddd9c469849cb6b100c339ca62717d\",\n    },\n    {\n        \"714bc3ba3839ac6707863a40aa3db5a2eebcb38dc6ec6d22b083cef244fb09f7\",\n        \"2cfe1c51d894e5ef2f5a2c3c\",\n        \"0cc4a18bbfea87de0ac3446c777be38ca843d16f93be2c12c790fda4de94c9bf\",\n        \"84e3d46af2ecb717a39024d62bbc24d119f5aff57569dfef94e7db71ad5aff864abacdc5f8554e18ed5129cfb3366d349c52b3d1a111b867e8772140749e7f33e2e64259968486e32f047d21120da73c77757c4595ccac1b5713\",\n        \"0857c8fb93412fde69bad287b43deea36506d7ee061d6844d00a7e77418f702f\",\n        \"24a9e5290957074807d55ad705adaa89\",\n    },\n    {\n        \"2f93b5a37be1a43853bf1fd578061d0744e6bd89337cde20177d1e95a2b642c4\",\n        \"52b6d91557ae15aa792ce4b7\",\n        \"0fcaa316a135d81052509dd85f688aed2e5fd4261e174f435cf1c4115aa6f354\",\n        \"992ba9efa287a5c3e5177bd4931af498982a1728b56b3d7c4b28476905e29f83326c4f3223a28844fc9b9d84d4f6cd859074aff647a35dde28e1ee889faab3bb9c09a4c3fbf2a16460d48a40dc53378d4673f4325e6aa3992a71\",\n        \"f99774cef3c15af33cda3cb449cd335ffe4f27435edf83aff4a4f4c2d2df6647\",\n        \"c5e09b83b1c2cc81e48a1f7c62b7bb35\",\n    },\n    {\n        \"531ca845af7bf731c49c3136407322b1c0f6b32b8eaebf03744b2edc1202d096\",\n        \"baf13b85202bbfc899fc73f7\",\n        \"d4e9783f537c738200e7ba7526605f359a98c9f10cafaa2f433c40f3e5081a36\",\n        \"e2ba9cf548b4f6fb206f224250d85af327fde8d08916686ae770203dc29c694f8902b02222fd287f28ce6091006368c3949bea2937ff0bdedb7dbbd013ccf0a15ee0af8c56fe211b7c311e182f27707f59e09492b3604e80c6c5\",\n        \"642f544929202128a783b985d36f60964c7d78e1d41f5d1bfe27de3ae0180df3\",\n        \"e333528c59ee1909750ed72fd1309ee1\",\n    },\n    {\n        \"3add17568daa9d441aa7a89bf88fa4e6998a921d57e494a254080445bc9b6f35\",\n        \"b290f4a52496380218c3dcf5\",\n        \"2c6908cb34215f89a3f3a3c892e8887f2efa496a15ab913fc7d34cc70c0dff79\",\n        \"0bc9cc13eb2890aa60515c2297a99f092f6e516236c0dec9f986ea98b8a180680f2c6c20bd4354c33433a4c6f6a25e632f90ebef3a383c3592268b483eebf5f5db006929e7987edbcac4755d3afd1cdf9b02954ebd4fef53d5f6\",\n        \"2cf3beae94fd5e6a4126a8ec8a7166b0aacb8b8bbce45d6106b78d3456d05149\",\n        \"ce1509b1bd5c47a593702618b0d79f6c\",\n    },\n    {\n        \"1c1dcfd4c4cc4beb71d6e368f739d8e681dfe48fbae39728386c9dfc08825743\",\n        \"0deceb69ce0dc776a3a71b4c\",\n        \"b12700258ace7b16e40f4e86886892837168b256a170937a3b89063a9a0d68f7\",\n        \"a3af2db672292431fa8ee1fa5b197593b13e58a68c4129401d0942474d5f4cbe62093aaa5453f6d355d2f4b6dc8abde58ce863d1be5f9ecf39730a49565b3b6882a0a641c0b5d156a4107309dd150fd1f1634ea4e5100b3d4f88\",\n        \"3ea7f1c0d613323e095558ddde53247420fa0eef17997a1e9c5ba93d5f24c46f\",\n        \"70534a87c258905d35806f4439f6906e\",\n    },\n    {\n        \"f2724153aac9d50f350878d3c498bc3dd782d90cce5cce4ae14126c0e1fbb3cf\",\n        \"1c07b61c5316659bad65cca9\",\n        \"067ccbd0206f1f05d2872210dc5717a0585e8195d72afd0c77da11b9b3710e44\",\n        \"e69db7fcd3b590a6d32052612034036d5c8bffa5e5e9b742ffe75a9fbba89dd576dec08154cf4e6d36f0fdd4419bdf50adc1974a80ea313421c926dffa87565b4bd0c1e84f2ff305af91877f830f145bb13dfa7efa5e3aa682e6\",\n        \"9aba433eef383466a1291bd486c3ce5e0ed126010e0a77bf037c5eaed2c72460\",\n        \"f30a155e35400bb0540883e8e09b4afd\",\n    },\n    {\n        \"a2544eb2047c97cfcaf0ec1427c5df395472285233a93ffccda8fee660aced56\",\n        \"a751bea3c769bb5db25ab109\",\n        \"b9514cc01a357605918f9cc19123dcc8db328c605ca0eb9d69d871afeea1dcfb\",\n        \"eb9e09884de1454d6aeb0d6c82375f2428992031ea6cabf6a29aa6a4de49a353e4ffae043dad18ae651b20b7bca13f5c327ca9f132014bfa86e716d4724e05a1ef675521a6607a536756e6a8c16bb885b64815f1eb5ec282ce8e\",\n        \"cb442b17088f6ac5f24c7a04f0050559386f3a57131b92a54142c7a556fdb935\",\n        \"5f80c5c0cdf0c7890bfd1fbd58c33081\",\n    },\n    {\n        \"ceb057782efb1e85d805448af946a9b4d4128bf09a12473cce1e8ef8bfd2869d\",\n        \"406f9730e9b1e421e428439b\",\n        \"0815723d5367b1328cac632fa26e23f2b814a1d59a2971d94d02ebd7ecf5c14a\",\n        \"0772ae00e1ca05d096cf533fd3de2818ac783edfca0eee7686a6290f3357481e883fb2f895b9a4f4004c56b8a1265242cfdf1fb4af7edc41ed78c5f4ffe9c4080d4a17318f9c56ecdb3a06f3c748535387d56a096943a76d46f6\",\n        \"9d82355d8e460896201be15fd95fed48a8524666d987ab078550883034d0253c\",\n        \"a0bee8ac0e636d64d3b1eb33fd6f21d4\",\n    },\n    {\n        \"7dbdbdfe36d4936940ad6d6f76c67c2851a0477f0aa7d6797bfdf2b7878ef7e0\",\n        \"bc672b224b4b6b91fc3fd697\",\n        \"dfea463d35f0fa20487b606d6ccfd422a5b707f16527b422bf1d68a77db67e9c\",\n        \"faacb84ec7cfadd731de2f7c0892d7e38cbfb782b48412331af0b3eab602a722cad1069dea0052beb5ca70e2ee476c340c6193bcc60f939aabe446bf3ce958fe11a2ffc90241f0a7e4e274f0c1441def795893895bd848bf0f0e\",\n        \"0ddc2281b1fcb904864a43657bc72357cf73fc1f16520caad7cddde10f846bd9\",\n        \"9d96699450aa9707695e5de56597101b\",\n    },\n    {\n        \"187214df6e2d80ee8e9aae1fc569acd41589e952ddcbe8da018550d103767122\",\n        \"56db334422b6c5e93460d013\",\n        \"53355283186719a9146c7305e3d1959a11ccf197570b855a43cbc7563a053c73\",\n        \"cbedb7ccfbf56dfd72e530bfe16b4f5aac48a90204bcb7a8cae1046010882cfc8b526e7562a7880914e61b60cbd605165242737d85eeed583c98cab3443874e5989ec9cde001adf7de9c9967de5178f75b8412b0c4d6fec5af72\",\n        \"c2262585966bc9c23dc7cc1059d060211e86f3b3161d38b153635fbea4a28c05\",\n        \"a94297c584dfcd10ee5df19a2ee5c3d2\",\n    },\n    {\n        \"1fded32d5999de4a76e0f8082108823aef60417e1896cf4218a2fa90f632ec8a\",\n        \"1f3afa4711e9474f32e70462\",\n        \"06b2c75853df9aeb17befd33cea81c630b0fc53667ff45199c629c8e15dce41e530aa792f796b8138eeab2e86c7b7bee1d40b0\",\n        \"\",\n        \"91fbd061ddc5a7fcc9513fcdfdc9c3a7c5d4d64cedf6a9c24ab8a77c36eefbf1c5dc00bc50121b96456c8cd8b6ff1f8b3e480f\",\n        \"30096d340f3d5c42d82a6f475def23eb\",\n    },\n    {\n        \"b405ac89724f8b555bfee1eaa369cd854003e9fae415f28c5a199d4d6efc83d6\",\n        \"cec71a13b14c4d9bd024ef29\",\n        \"ab4fd35bef66addfd2856b3881ff2c74fdc09c82abe339f49736d69b2bd0a71a6b4fe8fc53f50f8b7d6d6d6138ab442c7f653f\",\n        \"\",\n        \"69a079bca9a6a26707bbfa7fd83d5d091edc88a7f7ff08bd8656d8f2c92144ff23400fcb5c370b596ad6711f386e18f2629e76\",\n        \"6d2b7861a3c59ba5a3e3a11c92bb2b14\",\n    },\n    {\n        \"fad40c82264dc9b8d9a42c10a234138344b0133a708d8899da934bfee2bdd6b8\",\n        \"0dade2c95a9b85a8d2bc13ef\",\n        \"664ea95d511b2cfdb9e5fb87efdd41cbfb88f3ff47a7d2b8830967e39071a89b948754ffb0ed34c357ed6d4b4b2f8a76615c03\",\n        \"\",\n        \"ea94dcbf52b22226dda91d9bfc96fb382730b213b66e30960b0d20d2417036cbaa9e359984eea947232526e175f49739095e69\",\n        \"5ca8905d469fffec6fba7435ebdffdaf\",\n    },\n    {\n        \"aa5fca688cc83283ecf39454679948f4d30aa8cb43db7cc4da4eff1669d6c52f\",\n        \"4b2d7b699a5259f9b541fa49\",\n        \"c691f3b8f3917efb76825108c0e37dc33e7a8342764ce68a62a2dc1a5c940594961fcd5c0df05394a5c0fff66c254c6b26a549\",\n        \"\",\n        \"2cd380ebd6b2cf1b80831cff3d6dc2b6770778ad0d0a91d03eb8553696800f84311d337302519d1036feaab8c8eb845882c5f0\",\n        \"5de4ef67bf8896fbe82c01dca041d590\",\n    },\n    {\n        \"1c7690d5d845fceabba227b11ca221f4d6d302233641016d9cd3a158c3e36017\",\n        \"93bca8de6b11a4830c5f5f64\",\n        \"3c79a39878a605f3ac63a256f68c8a66369cc3cd7af680d19692b485a7ba58ce1d536707c55eda5b256c8b29bbf0b4cbeb4fc4\",\n        \"\",\n        \"c9e48684df13afccdb1d9ceaa483759022e59c3111188c1eceb02eaf308035b0428db826de862d925a3c55af0b61fd8f09a74d\",\n        \"8f577e8730c19858cad8e0124f311dd9\",\n    },\n    {\n        \"dbdb5132f126e62ce5b74bf85a2ac33b276588a3fc91d1bb5c7405a1bf68418b\",\n        \"64f9e16489995e1a99568118\",\n        \"b2740a3d5647aa5aaeb98a2e7bbf31edaea1ebacd63ad96b4e2688f1ff08af8ee4071bf26941c517d74523668ca1f9dfdbcaab\",\n        \"\",\n        \"e5fec362d26a1286b7fd2ec0fa876017437c7bce242293ff03d72c2f321d9e39316a6aa7404a65ccd84890c2f527c1232b58d5\",\n        \"dfa591ee2372699758d2cc43bfcbd2ba\",\n    },\n    {\n        \"8433a85f16c7c921476c83d042cb713eb11a83fc0cffe31dde97907f060b4ee9\",\n        \"55ffc85ffd1cdea8b8c48382\",\n        \"23bc3983ba5b3be91c8a6aa148a99995241ee9e82ce44e1184beb742affbe48f545c9a980480cf1fab758a46e4711ea9267466\",\n        \"\",\n        \"2f4bdc7b8b8cec1863e3145871554778c43963b527f8413bb9779935c138a34d86d7c76a9e6af689902f316191e12f34126a42\",\n        \"7dc63156b12c9868e6b9a5843df2d79e\",\n    },\n    {\n        \"5d7bf55457929c65e4f2a97cbdcc9b432405b1352451ccc958bceebce557491d\",\n        \"f45ae70c264ed6e1cc132978\",\n        \"ba5ac2a16d84b0df5a6e40f097d9d44bf21de1fcec06e4c7857463963e5c65c936d37d78867f253ce25690811bf39463e5702a\",\n        \"\",\n        \"47c16f87ebf00ba3e50416b44b99976c2db579423c3a3420479c477cd5ef57621c9c0cee7520acb55e739cc5435bc8665a2a0c\",\n        \"456054ecb55cf7e75f9543def2c6e98c\",\n    },\n    {\n        \"595f259c55abe00ae07535ca5d9b09d6efb9f7e9abb64605c337acbd6b14fc7e\",\n        \"92f258071d79af3e63672285\",\n        \"a6fee33eb110a2d769bbc52b0f36969c287874f665681477a25fc4c48015c541fbe2394133ba490a34ee2dd67b898177849a91\",\n        \"\",\n        \"bbca4a9e09ae9690c0f6f8d405e53dccd666aa9c5fa13c8758bc30abe1ddd1bcce0d36a1eaaaaffef20cd3c5970b9673f8a65c\",\n        \"26ccecb9976fd6ac9c2c0f372c52c821\",\n    },\n    {\n        \"251227f72c481a7e064cbbaa5489bc85d740c1e6edea2282154507877ed56819\",\n        \"db7193d9cd7aeced99062a1c\",\n        \"cccffd58fded7e589481da18beec51562481f4b28c2944819c37f7125d56dceca0ef0bb6f7d7eeb5b7a2bd6b551254e9edff3a\",\n        \"\",\n        \"1cc08d75a03d32ee9a7ae88e0071406dbee1c306383cf41731f3c547f3377b92f7cc28b3c1066601f54753fbd689af5dbc5448\",\n        \"a0c7b7444229a8cfef24a31ee2de9961\",\n    },\n    {\n        \"f256504fc78fff7139c42ed1510edf9ac5de27da706401aa9c67fd982d435911\",\n        \"8adcf2d678abcef9dd45e8f9\",\n        \"d1b6db2b2c81751170d9e1a39997539e3e926ca4a43298cdd3eb6fe8678b508cdb90a8a94171abe2673894405eda5977694d7a\",\n        \"\",\n        \"76205d63b9c5144e5daa8ac7e51f19fa96e71a3106ab779b67a8358ab5d60ef77197706266e2c214138334a3ed66ceccb5a6cd\",\n        \"c1fe53cf85fbcbff932c6e1d026ea1d5\",\n    },\n    {\n        \"21d296335f58515a90537a6ca3a38536eba1f899a2927447a3be3f0add70bea5\",\n        \"2be3ad164fcbcf8ee6708535\",\n        \"ad278650092883d348be63e991231ef857641e5efc0cab9bb28f360becc3c103d2794785024f187beaf9665b986380c92946a7\",\n        \"\",\n        \"b852aeba704e9d89448ba180a0bfde9e975a21cc073d0c02701215872ed7469f00fe349294ba2d72bf3c7780b72c76101ba148\",\n        \"bdd6d708b45ae54cd8482e4c5480a3c1\",\n    },\n    {\n        \"d42380580e3491ddfbc0ec32424e3a281cbe71aa7505ff5ab8d24e64fbe47518\",\n        \"fbed88de61d605a7137ffeb2\",\n        \"4887a6ef947888bf80e4c40d9769650506eb4f4a5fd241b42c9046e3a2cf119db002f89a9eba1d11b7a378be6b27d6f8fc86c9\",\n        \"\",\n        \"87aa27f96187ce27e26caf71ba5ba4e37705fd86ca9291ea68d6c6f9030291cdbff58bff1e6741590b268367e1f1b8c4b94cd4\",\n        \"d1690a6fe403c4754fd3773d89395ecd\",\n    },\n    {\n        \"5511727ecd92acec510d5d8c0c49b3caacd2140431cf51e09437ebd8ca82e2ce\",\n        \"ae80d03696e23464c881ccff\",\n        \"184b086646ef95111ccb3d319f3124f4d4d241f9d731ce26662ea39e43457e30b0bd739b5d5dbceb353ce0c3647a3a4c87e3b0\",\n        \"\",\n        \"aa28cb257698963dfc3e3fe86368d881ac066eb8ee215a7c0ed72e4d081db0b940071e2e64ff6204960da8e3464daf4cb7f37b\",\n        \"c1578aa6e3325ee4b5e9fb9ee62a7028\",\n    },\n    {\n        \"d48f3072bbd535a2df0a2864feb33b488596cd523ad1623b1cefe7b8cbefcf4a\",\n        \"bbf2a537d285444d94f5e944\",\n        \"060c585bd51539afdd8ff871440db36bfdce33b7f039321b0a63273a318bd25375a2d9615b236cfe63d627c6c561535ddfb6bd\",\n        \"\",\n        \"993d5d692c218570d294ab90d5f7aa683dc0e470efac279a776040f3b49386813f68b0db6a7aef59025cc38520fb318a1eac55\",\n        \"8cd808438a8f5b6a69ff3ae255bf2cb2\",\n    },\n    {\n        \"5fe01c4baf01cbe07796d5aaef6ec1f45193a98a223594ae4f0ef4952e82e330\",\n        \"bd587321566c7f1a5dd8652d\",\n        \"881dc6c7a5d4509f3c4bd2daab08f165ddc204489aa8134562a4eac3d0bcad7965847b102733bb63d1e5c598ece0c3e5dadddd\",\n        \"9013617817dda947e135ee6dd3653382\",\n        \"16e375b4973b339d3f746c1c5a568bc7526e909ddff1e19c95c94a6ccff210c9a4a40679de5760c396ac0e2ceb1234f9f5fe26\",\n        \"abd3d26d65a6275f7a4f56b422acab49\",\n    },\n    {\n        \"885a9b124137e40bd0f697771317e401ce36327e61a8f9d0b80f4798f30a731d\",\n        \"beebc2f5a26fd2cab1e9c395\",\n        \"427ec568ad8367c202f5d9999240f9994cc113500154f7f49e9ca27cc8154143b855238bca5c7bd6d9852b4eebd41e4eb98f16\",\n        \"2e8bdde32258a5fcd8cd21037d0545eb\",\n        \"a1d83aab6864db463d9d7c22419462bde0740355c1147c62b4c4f23ceeaf65b16b873b1cc7e698dff6e3d19cf9da33e8cbcba7\",\n        \"4fdbfd5210afa3556ec0fdc48b98e1eb\",\n    },\n    {\n        \"21c190e2b52e27b107f7a24b913a34bd5b7022060c5a4dec9ab289ff8ae67e2d\",\n        \"b28a61e6c1dfa7f76d086063\",\n        \"4e1b9528cf46b1dd889858d3904d41d3174dcb225923f923d80adbfe6eec144b1d4eb3690d0b8519c99beaee25bb50fd2d148f\",\n        \"d80657377ddbbed1f9b8d824b3c4d876\",\n        \"7126fa807aa6b61a60958fe4cc8682bb256e5bbdc499d04a6caa81b23f9e67d3da4cf1994b5a8ecc7bce641864d0519a6509cd\",\n        \"d3e96568f2cd1a48771ee4f67ad042c1\",\n    },\n    {\n        \"11c33ae37680130c51ed11bfaf0fcb6ed4fc7d903ff432b811763d2c7ef83a33\",\n        \"0f224d26dbf632cebdce3b8b\",\n        \"f8a2affe5a7e67f2c62622e4a56804b48e529d1faf9096f94409224129921ce46aed898dd5391746e8170e05f91e0524166625\",\n        \"dee803732ff662cba9f861227f8b67cf\",\n        \"3856558375c363b25e8f9e9e2eb63cf0e76a1c6e228893c7b22da4a69b682528b4a4ca2b99e7a537390e2d1e05a68f3e39c4e9\",\n        \"9b12691b2002ca9227035c68ea941ef3\",\n    },\n    {\n        \"3b291794fbb9152c3e4f4de4608a9137d277bd651f97e738afaa548d97b4ec60\",\n        \"4d1c69c6da96c085d31422ba\",\n        \"21b3ca1f47a0c7f6ebd097eda69d9e5b5fbf5c24d781658003cfd443ae7096be19e1cd3c14fe9738efb00847697fccb466ae1b\",\n        \"f3a5fa61a4e987413a8fab4aa51d895d\",\n        \"6c1439cd2cb564e7944fd52f316e84aeffc3fd8024df5a7d95a87c4d31a0f8ea17f21442c709a83b326d067d5f8e3005ebe22a\",\n        \"e58048f2c1f806e09552c2e5cdf1b9d9\",\n    },\n    {\n        \"8e7a8e7b129326e5410c8ae67fbd318de1909caba1d2b79210793c6b2c6e61c7\",\n        \"8e48513fdd971861ef7b5dc3\",\n        \"ef6b4145910139293631db87a0d7782a1d95db568e857598128582e8914b4fa7c03c1b83e5624a2eb4c340c8ad7e6736a3e700\",\n        \"80bb66a4727095b6c201fb3d82b0fcf5\",\n        \"e302687c0548973897a27c31911fc87ee93d8758c4ded68d6bd6415eaaf86bcc45fa6a1ef8a6ae068820549b170405b3fc0925\",\n        \"ff5c193952558e5a120e672f566be411\",\n    },\n    {\n        \"d687e0262f7af2768570df90b698094e03b668ce6183b6c6b6ca385dcd622729\",\n        \"50f6904f2d8466daa33c2461\",\n        \"79e3067d94464e019a7c8af10b53adf5b09426d35f2257c3cbaffe1ff720565c07e77aeef06f9d03a2353053992073a4ed1fc8\",\n        \"e8fa99432929d66f10205ad3e9592151\",\n        \"18f6e6aeecc8dc5a3d0b63a2a8b7bfaf695bd9c49a7392dbfa8ed44771eebe27f94589d8a430da4cf03a8693bc7525e1fcac82\",\n        \"3c864eaa1b0ae44a7f0ad9ba287ba800\",\n    },\n    {\n        \"26dc5ce74b4d64d1dc2221cdd6a63d7a9226134708299cd719a68f636b6b5ebd\",\n        \"0294c54ff4ed30782222c834\",\n        \"ae4c7f040d3a5ff108e29381e7a0830221d5378b13b87ef0703c327686d30af004902d4ddb59d5787fecea4731eaa8042443d5\",\n        \"2a9fb326f98bbe2d2cf57bae9ecbeff7\",\n        \"9601aec6bc6e8a09d054a01e500a4e4cdcc7c2cf83122656be7c26fc7dc1a773a40be7e8a049a6cdf059e93a23ca441ef1ca96\",\n        \"b620a8a0c8fe6117f22735c0ca29434c\",\n    },\n    {\n        \"7fa0644efc7f2e8df4b311f54ba8b8c975b2c2aa97962f8ca8a322541bedaa9d\",\n        \"5e774e45a07eeb9721734412\",\n        \"84d1c75455e4c57419a9d78a90efc232c179517fe94aff53a4b8f7575db5af627f3d008006f216ecfc49ab8da8927ff5dc3959\",\n        \"6ad673daa8c412bf280ea39ba0d9b6d4\",\n        \"e2f00b5a86b3dec2b77e54db328c8d954d4b716f9735e5798b05d65c512674d56e88bda0d486685a45d5c249719884329e3297\",\n        \"0ce8eb54d5ad35dd2cb3fa75e7b70e33\",\n    },\n    {\n        \"91d0429f2c45cf8ab01d50b9f04daaaccbe0503c9f115f9457c83a043dc83b23\",\n        \"34401d8d922eebac1829f22e\",\n        \"d600d82a3c20c94792362959de440c93119a718ac749fa88aa606fc99cb02b4ca9ba958d28dc85f0523c99d82f43f58c5f979b\",\n        \"1b29de9321aebc3ff9d1c2507aee80e9\",\n        \"84cbc9936eb7270080bb7024780113d064eccb63d3da0bd6bce4f8737d28304bfb6102f3ae9c394cc6452633fc551582bbfe1d\",\n        \"e132dc8a31d21f24ea0e69dfb6b26557\",\n    },\n    {\n        \"44e6411b9fbfcef387d0ca07b719181c7567e27dba59e8e1c3cc1763cfeaca04\",\n        \"25a1cfd97bd8e63de5d65974\",\n        \"db28a592b1f3603c287991a69cc64eacdd62046445a8ba4067575f12553de155d06a9b40ddf58fec56c8171687b9cb54b1f346\",\n        \"4b1751b074ab649d27fd3f2c4d7ee33a\",\n        \"36bf6bb761b2248fe71a620e34e9d18e12a74ca42c9a9a21d30345995a83eb44bcae3c67c020730cd8d5e51a741694cc396469\",\n        \"e69ebf80a88d6eca41ae87cdcab4e1f2\",\n    },\n    {\n        \"a94bfcefae90f9078860db80ccc50819eadf7cce29df3279f94f5eea97009ef2\",\n        \"f481bcb7f5da296e9454ff78\",\n        \"97d0c7dfcab32a386f51d92e89333ec84eecd552e68d14cf48b75067bf0e1946ad03a5d063b852ca053c929088af45d0884a88\",\n        \"9f80d845577818df9ba984ee552ae203\",\n        \"18a1c9bfe1b1dfdd06e465df347c1e942b37b3e48cb0c905841a593b5b0d0330feb3b8970dbc9429252a897f0f8e12860ea39a\",\n        \"10cf4d335b8d8e7e8bbaf49222a1cd66\",\n    },\n    {\n        \"a50a60e568ff35a610ef9479c08bbc7bb64c373fc853f37fa6b350250a26f232\",\n        \"5ada1d4aca883d7bd6fa869f\",\n        \"9ea44e72a1d21395cd81d20db05816441010efd8f811b75bb143ab47f55eefce4eec5f606fa5d98b260d7e5df4a7474cbd8599\",\n        \"cc7a7a541be7a6d1b846354cb6a571e6\",\n        \"4165b135187faeb395d4531c062738e0d47df8bed91982eb32e391a6b3711f117b6fae0afde791de3e72fcf96d2b53ff1a621a\",\n        \"e2cbfea2100585b2cbe5107da17ff77a\",\n    },\n    {\n        \"5ff3311461d247ceb1eaf591292fcba54308dd3484fd1851e09a12b8f6663fc1\",\n        \"61af2e6aec183129cf053c2b\",\n        \"920df8b2888a74022ede6919ed0bf48ccf51e395fe5bfa69a6209ff9a46674024eaa4f43ae2c933730b9fdc8ad216130447cc8\",\n        \"5eafed6674f2ae83397df923e059db49\",\n        \"0e35e1208168b639e012df398bc8bf2b19b08d46af0353cd78f6d1b7ae14e6224c1da6fdc9433b171f1cd2b512d5f1acd84f03\",\n        \"5bc77eb02e4d51e2019446b468498d0e\",\n    },\n    {\n        \"42e93547eee7e18ec9620dd3dc0e2b1cf3e5d448198a902ded3f935da9d35b33\",\n        \"e02e12ba92a6046af11adf0e\",\n        \"6c3704b32527ace3d5236687c4a98a1ad5a4f83c04af2f62c9e87e7f3d0469327919d810bb6c44fd3c9b146852583a44ed2f3c\",\n        \"ac3d536981e3cabc81211646e14f2f92\",\n        \"8b6506af703ae3158eb61e2f9c2b63de403b2ebc6b1e6759ceb99c08aa66cb07d1d913ac4acd7af9b9e03b3af602bcaf2bb65e\",\n        \"a6ce2ccb236fc99e87b76cc412a79031\",\n    },\n    {\n        \"24501ad384e473963d476edcfe08205237acfd49b5b8f33857f8114e863fec7f\",\n        \"9ff18563b978ec281b3f2794\",\n        \"27f348f9cdc0c5bd5e66b1ccb63ad920ff2219d14e8d631b3872265cf117ee86757accb158bd9abb3868fdc0d0b074b5f01b2c\",\n        \"adb5ec720ccf9898500028bf34afccbcaca126ef\",\n        \"eb7cb754c824e8d96f7c6d9b76c7d26fb874ffbf1d65c6f64a698d839b0b06145dae82057ad55994cf59ad7f67c0fa5e85fab8\",\n        \"bc95c532fecc594c36d1550286a7a3f0\",\n    },\n    {\n        \"fb43f5ab4a1738a30c1e053d484a94254125d55dccee1ad67c368bc1a985d235\",\n        \"9fbb5f8252db0bca21f1c230\",\n        \"34b797bb82250e23c5e796db2c37e488b3b99d1b981cea5e5b0c61a0b39adb6bd6ef1f50722e2e4f81115cfcf53f842e2a6c08\",\n        \"98f8ae1735c39f732e2cbee1156dabeb854ec7a2\",\n        \"871cd53d95a8b806bd4821e6c4456204d27fd704ba3d07ce25872dc604ea5c5ea13322186b7489db4fa060c1fd4159692612c8\",\n        \"07b48e4a32fac47e115d7ac7445d8330\",\n    },\n    {\n        \"9f953b9f2f3bb4103a4b34d8ca2ec3720df7fedf8c69cac900bd75338beababe\",\n        \"eb731ae04e39f3eb88cc77fa\",\n        \"3b80d5ac12ba9dad9d9ff30a73732674e11c9edf9bb057fd1c6adc97cf6c5fa3ee8690ad4c51b10b3bd5da9a28e6275cbe28cb\",\n        \"d44a07d869ac0d89b15262a1e8e1aa74f09bcb82\",\n        \"1533ce8e2fc6ab485aef6fcfb08ded83ae549a7111fce2a1d8a3f691f35182ce46fce6204d7dafb8d3206c4e4b645bc3f5afd1\",\n        \"f09265c21f90ef79b309a93db73d9290\",\n    },\n    {\n        \"2426e2d1cd9545ec2fb7ab9137ad852734333925bfc5674763d6ee906e81c091\",\n        \"49a094a71d393b36daa4a591\",\n        \"7cbe7982d365a55d147c954583f9760a09948ab73ebbe1b2c1d69ed58e092a347392192cfe8bce18ca43ee19af7652331bd92c\",\n        \"177309cfc913e3f5c093e8b1319ba81826d43ce5\",\n        \"cab992e17cf6ec69fd3c67ea0424bcd67475a7f1f16e6733c4419d1b5a755f78d6eda8e368360d403800a08f0d52b4bc0aa0ab\",\n        \"b125f8caee9e54b9f9414b1c09021ed8\",\n    },\n    {\n        \"8dc1b24bcbbee3cb8e14b344166d461d00c7490041edc9fa07e19cc82a3ed9c4\",\n        \"31768ad18c971b188d947019\",\n        \"84e4f79dbb7209cbaf70e4fefe137c494786c899602783e9c034296978d7f0c571f7ea9d80ed0cc4723124872d7326890300c1\",\n        \"eb3673b64560cca7bda76a1de7ae1014ee1acaee\",\n        \"2402acd865d4b731bc9395eae0e57d38fdf5ce847ac7aef75791a52c7573ea9b3a296e62cb1ed97c4bd34be50ee7f3d75747cf\",\n        \"665abb725498ede2b0df655fc1765a2b\",\n    },\n    {\n        \"bc898f643a5f2cd864c10b507b4b803b4ff4ace61fadcc7bcd98af394731b791\",\n        \"cc447d83c0a6734a79778c64\",\n        \"124eb963cdb56fa49c70a9b1aa682445c55065f26859f1d16eef7cfe491587533eedd7e23deabddfc5550c2fa6a08b17822699\",\n        \"e932bd2e0e6c550d136f725e14c53d27ffb20f6a\",\n        \"45d8908ef9eef369e78b7ea0b7d023a92c63648271927efe9b0220eb09ed96f3b635c6ec8bfc68b4c228b712494bb37f4c7f1a\",\n        \"47899857494bac28d2176a9c923026b2\",\n    },\n    {\n        \"8e82a85466ee024eb1ae10c4982d6a95e6dbe5582299ab37fe89a9db80ab51a6\",\n        \"04cfd489e18eeb7a4a8ab36b\",\n        \"3aa2e4eaed18c4602715ae77379e9083708af9f9b49031324d41abca61440319c8c8e6dbcc20006a825b12ced00b2286848a94\",\n        \"7bb54b1a6ed0ca387268a146430c0bfa2602a8fd\",\n        \"674b1391937074642408eeae9b748ca629da9fd00281824f5a108f6078ee78f98749392bb6e29b53e53e4b11739ac53a8e653b\",\n        \"e320a873a9c2e8ef455698c37ea59a6d\",\n    },\n    {\n        \"f1f2c5503ebf35ac1373c29e2305e963f89f6ed015a181b70fb549429805d5d9\",\n        \"2fb5c6a24f406872755db05c\",\n        \"b4a2809198035c277637bb1c2927fb5c60b49ef9087c800012d8663d997983fcb78d51a054114a24e1e1b5214b58e7dee47195\",\n        \"92c1f3489aed90aedafb55562a34b3f4be29e101\",\n        \"f051a3a968278a46630b2894a0d386c18fa034960d8ddd14e88e1071afbbca5baf02967c2270117b4fb2bd4cfd032174505f99\",\n        \"6f1db5293660b6904f7f008e409bdc06\",\n    },\n    {\n        \"f0338d26d74bd1768da5bb79c59fab2b4abe1966324048790c44bc98a6b34b6c\",\n        \"c8269e4406fa0be1cf057b2f\",\n        \"323c373e4d85a1fd21f387fdd8c7e6aeebd5aae893d7af286cb214600cba8b9eb06df085a2dc5aed870259f7f3cc81d3eb53bd\",\n        \"13fb0edcba095cef9c4343a0629fd5020f03729d\",\n        \"08572b9cf9bcfd21d4403a1218d94476b9ee8c3b94c56625c21ccaf4c0efa34cf22a532389210793699c9de1ab14f8c4c52928\",\n        \"29968c9fb610940cee9fd5b2f7c8ba21\",\n    },\n    {\n        \"a67648285b65b9196060aaa02af279170164353e38fb77c3968c403cfa9acdc8\",\n        \"0822d6b3e91eccb7e14245fd\",\n        \"b5d271768c12ccabf89eb2d58cbde840c26d1c9b3692581f90c8b0d7b2cff31ae9192d284f5448de7d924a7b08f115edae75aa\",\n        \"0d9a5af7ac27438d92534d97ff4378274790e59f\",\n        \"b59041eed7abc2ff507d1932b5c55ac52728e5ac6648dcc74b38870db6181b1989f95a0144f0db368ec50414cfda0b977141e3\",\n        \"1d12ce89e1261d73470f3ae36ab87288\",\n    },\n    {\n        \"51162b2435f3cf43471f4cc0ffac98b438501ee9b887843a66e9951ca35b8767\",\n        \"dcb902eaa837ed22bf5fa636\",\n        \"3edf43358f5109a4dfb4a02987170a67cdd170f6028f7708bdd7726f476b882b9640270f2270f7babfa384181c8e58c15d04c4\",\n        \"4d459905ff89aed07dcda43a3d191a3da9309faa\",\n        \"046a2313d36cbc43b6d0787e5ef37d153090a31d0f6656004034be72b9b07ace3a8abe8614362282d87da40c29c60a1a9f5c40\",\n        \"c7410b5cb94d2877c189983791cee82e\",\n    },\n    {\n        \"2fa2beb1cde2226f28fb42a5fb0af3fc58fbb76bf14aa436e6535d466456a0f4\",\n        \"50190514a3740b3c0b1df576\",\n        \"a5e0b4837dfca263ba286abf7940b6e70fabb55d8dee5028617c1190fbd327f79b79d2f34db6076ab07cecff7114b15ca02a33\",\n        \"25142928c1ae9c7b850309e07df359389db539fc\",\n        \"850fd22bd0897b98ce40bc6c1345a9d59abf796b1b8c34ee8b377e54ee7d59dec05c022ecae96ffdfa1311bdd4e7a9d35aac47\",\n        \"4b5ab89b4f627ca32d12a1791c286870\",\n    },\n    {\n        \"a92a797ce2b2f382030b77a1abe94c8076eee88de2dc4929350b244dbdaddd30\",\n        \"716f577401a7893c42c91710\",\n        \"9d26ff79a89720fab6e4cda85887e3c0c3f86a4670d065c8ea68042b6f9f16dd2c5b31acb36331f5b1e50f08c492dc12eebd9e\",\n        \"8642681f1839b88990c2a939f00c9b90766dadac\",\n        \"3080bcf3604cf81f5f2c6edc80dfe5d877168a9903598a700a0bbae188fadc7a8b76a04b40400f9252d7f9437fa8f024a3bdeb\",\n        \"8fc56f6bf48efb00476886b2a03ecb89\",\n    },\n    {\n        \"89d0723e5a087456b7b709b8b21be380b463ba3dc9b79170e9947526798fe91c\",\n        \"68e2f307b7d49d4d9c041755\",\n        \"7fe2afb710e8fd49cca1c2ba8fd0814594fba4d667017630e170a8a379fa5837bf370ca1cd4c98bd8c4f13eb7068ffa71ab07c\",\n        \"b34805b30703a62b6d37c93f2443e1a33154b5fb\",\n        \"b841012752bbf1dfa7b59366dbf353bf98b61ff2e6e7a13d64d9dcb58b771003c8842ac002aac1fa8ca00a21eaf101ab44f380\",\n        \"73a93e2722db63c2bbf470d5193b2230\",\n    },\n    {\n        \"329a6e94b1cce693e445694650d62b8c2c9ab03a09e6d4eca05c48291e576b89\",\n        \"78f471bc32f8637a213e87ac\",\n        \"65264d75e1a176a7e966e59109cd074ac5d54740eb0c58084af023e5599eb611846199579d95ba94b6d25ee4d9074b9714f231\",\n        \"c00c465524e2e2f8a55c0793ed9af851be45a70e\",\n        \"964d665d1e3c1018dfd883e217cfe4c856cc844f7644b53bb68fbe66f8541fa43ac54e92a2b194d6d8929fe031e94b3e70eca0\",\n        \"fd511385711236f2e99e6da5042007b7\",\n    },\n    {\n        \"463b412911767d57a0b33969e674ffe7845d313b88c6fe312f3d724be68e1fca\",\n        \"611ce6f9a6880750de7da6cb\",\n        \"e7d1dcf668e2876861940e012fe52a98dacbd78ab63c08842cc9801ea581682ad54af0c34d0d7f6f59e8ee0bf4900e0fd85042\",\n        \"0a682fbc6192e1b47a5e0868787ffdafe5a50cead3575849990cdd2ea9b3597749403efb4a56684f0c6bde352d4aeec5\",\n        \"8886e196010cb3849d9c1a182abe1eeab0a5f3ca423c3669a4a8703c0f146e8e956fb122e0d721b869d2b6fcd4216d7d4d3758\",\n        \"2469cecd70fd98fec9264f71df1aee9a\",\n    },\n    {\n        \"55f9171a03c21e09e3a5fd771e56bffb775ebb190319f3dc214c4b19f72e5482\",\n        \"14f3bf95a08e8f52eb46fbf9\",\n        \"af6b17fd67bc1173b063fc6f0941483cee9cbbbbed3a4dcff55a74b0c9535b977efa640e5b1a30faa859fd3daa8dd780cc94a0\",\n        \"bac1ddefd111d471e75f0efb0f8127b4da923ecc788a5c91e3e2f65e2943e4caf42f54896604af19ed0b4d8697d45ab9\",\n        \"3ae8678089522371fe4bd4da99ffd83a32988e0728aa3a4970ded1fe73bc30c2eb1fe24c0ff5ab549ac7e567d7036628fd718d\",\n        \"cf59603e05f4ed1d2da04e19399b8512\",\n    },\n    {\n        \"54601d1538e5f04dc3fe95e483e40dec0aaa58375dc868da167c9a599ed345d9\",\n        \"c5150872e45c341c2b99c69a\",\n        \"ae87c08c7610a125e7aa6f93fac0f80472530b2ce4d7194f5f4cb8ac025323c6c43a806788ef50c5028764ec32f2839005c813\",\n        \"93cd7ee8648a64c59d54cdac455b05ffdfc2effe8b19b50babd8c1a8c21f5dc8dc6050e2347f4cd28701594b9f8d4de5\",\n        \"d5f005dc67bdc9738407ce2401977f59c9c83520e262d0c8db7fe47ae0eada30d674694f008e222f9733a6e63d81499e247567\",\n        \"3470155144c74929980134db6995dd88\",\n    },\n    {\n        \"e966c470cbecc819260640d5404c84382e6e649da96d29cad2d4412e671ed802\",\n        \"b3a92d6f49fe2cb9c144d339\",\n        \"7adf6fcb41d59b8d2b663010c3d4cf5f5f0b95cf754f76f8626c4428467e5c6684e77e7857b1cc755762e9ea9117e3bb077040\",\n        \"dfa62a3a4b5b3af6770cfd3cef3bbb4cce3f64925782a9a8a6e15fe3744d8f9310400dd04e8d7966c03850539e440aa5\",\n        \"5f5b09486e6cd2a854e5622b4988e2408fddaca42c21d946c5cd789fe5a1306ef33c8cd44467ad7aa4c8152bce656a20367284\",\n        \"2b388109afdada6473435230d747b4eb\",\n    },\n    {\n        \"4a8a12c0575ec65ae1c5784d2829bc7b04818eb00bd4c90a0d032ea281076e27\",\n        \"959f113b705397fb738018b0\",\n        \"0c5571195586e4fc7096fb86cfcd6684081446f3d7adc33a897f03ac4ff6c3cc2019b67bd3184c86070764f6deaa8a10d0d81f\",\n        \"adb8bc96142a1025122dc22f826957197af33dcdcf6b7ab56bc1a5e17e8534e48b8daf685faf9543bb343614bdf6737f\",\n        \"84212d5991231d35c4e8621163e5b370a0105a05856866e74df72c0808c062981570d32d274ea732fa4d29f9cfa7839cadbe6a\",\n        \"39cee3b8fa0bf92605666ccd9eb19840\",\n    },\n    {\n        \"6197a4fa7cfcedeff223f69ea68b4ddf54b683350c20875be353077e9bbce346\",\n        \"1a69ecabd42c53c0ec64fcd0\",\n        \"40a487b4daf866c20f3c4911a0586709c3344aa988dc9c464bcf36cc4e3d92701e611e60cf69f3edbf76cd27ff6ba935026d7f\",\n        \"b20a7ca5b5b603f661587e01f7ef171823ef463c187ded77a3d616400cc1d2b0b688ac9e927498341560cbc8eb9a4198\",\n        \"06420fa038ee62db30cc05bfe34c8d2c39a9d439653907c512ed606511921fe76110913a5bfb6b6c7b23d7f8883f5ab65f4b14\",\n        \"4d3097c9919002cd1da83f29820312ed\",\n    },\n    {\n        \"c9dbe185023ecaa78be9bfac1b91b9da6bd7c11349feb69e6b0be83a838e77b2\",\n        \"8940fa7c6afd3f7a09ec93b6\",\n        \"075be0d61273e6975978d0b88b3fa38fc398d4d0f22a342a8afa5562af0e7c8fa548f0d8faec898a20c97e851754992c1ed4a3\",\n        \"f17bd357608365e66b98e49191cdc2a3813bba5a1b7988aa8aaaaad4b86d0ef4e2698cad799d63fcd2a5e87c0e3e929a\",\n        \"615c1097d577363a77bfc7dd57179acb68166e78021b3397d7029ce33cbc848f036b9c07989eeb9f42aeaeebe8542f103b1d32\",\n        \"a22ab25fd8a6127469e8ce9ff686d575\",\n    },\n    {\n        \"e6cdcf497a6e119009bf43ac183d2dd4d4e967964ef92811f69eb18d92923305\",\n        \"3e88459a76e1dcc890788297\",\n        \"72a3dfb555ba0029fc3d1c85b836f76135bd1858189efdde2db29045f2c26e6a65627d81a0b85ca42e8269d432a41154e929ac\",\n        \"a359f86ec918537d80a84da7b66bca700c1ff9ec7f8695a30808d484da218d15ae89c5f943e71778445130191f779001\",\n        \"9ae3f8ccae0bb5789b1105118760c406e41175a76612435cb0c8be225ea6b368c9d08c9d9a24b512d1458e94af79e3060ab69e\",\n        \"ac3bbc8fd6a7097df6f298411c23e385\",\n    },\n    {\n        \"de5531b50888b61d63af2210ee23f46d91a5e60312bd578584af586bf22ea756\",\n        \"0fde8689b0348bbcfaa89fec\",\n        \"80621e54eef1c92afb1f64ed860e39311eea7e2cca6f5624008c1d2e581d7112b7ee0b559fc3db575b7b7c42ee4f2a20442dc0\",\n        \"22db97cd5f359f12aec66c51c7da79ba629db4c8c7e5501be2ec1e4cc3f3944b6e3057d093bc68b735b5156950f91804\",\n        \"933018419a32b7bf65f9777c44889a44b32d61ceddbb46839366ce2ca2ffeb1833f46559e59c93bb07f622d9633f13932cf7f1\",\n        \"25023a4ee9bdbf525cfef888e2480f86\",\n    },\n    {\n        \"bc0c6368a9bb2622f6d5ba12de581f003336c298adac34499bf26b11e630f891\",\n        \"2aa8f30b567cf1edd818e42d\",\n        \"1dcc1a3167fba55c00d3383e26d386eaa0449154599992da7f7f6598f41b3eb8e4d0a9143dfcab963f5c390a6ae2010fbcf6ec\",\n        \"0e28ebf87eb757e83031fb836f7b049a46bd740b0a39c9b798d2407e1150da86dfe84121c7c98449559453ad7558e779\",\n        \"78d00a6e3302369817b9cf1f24ea13c41751382e3fea74403d094737e32fb507184cfebce48d10b4ce8db12ef961e4df2c8e95\",\n        \"c0aff3594f86b58e229c7ad05c2b84f0\",\n    },\n    {\n        \"5d98a0c7ad6f9c0b116613ca5082250356a6a9bca55fe1a4a2962b733214dac4\",\n        \"8b2d8e8d83bdd6a3125dd997\",\n        \"4f3685c2cfbc856379d1fd00f9611fe4c0a4b9c4013fe1bee144449709a6a7e31ff6fb0da74ed464b066b03b50f19cd7f5f9bc\",\n        \"2f20636d46ce37e9bb0ca0c41d819e3eabcedacbd1ca3ced112d3ad620bbd3b2effe80d3ec8760706e8f14db83139a70\",\n        \"8e178c0e3e5d22b3be897e0b8879b0d53fef2efb9946ccff6d717b001e3033f2cc22d01d9551e9c0749de704fbe3189328cbb0\",\n        \"541b7db823e37b5ed323626b9c6748f6\",\n    },\n    {\n        \"d80a2703e982de1a2fe706ffe6e389f351ab356ccf056df045e2941b42ef21a4\",\n        \"1521ab8f7242cba05427f429\",\n        \"6f9fde28e85776a49cfbad1459d94611757a3cd996aa6e2d702d0483a4d88d532131ebd405b351226b16d19d30d32807a1d511\",\n        \"5395de90d6bec7c159ab9d6cfa663bdc6295d025e1fcc8b760b9ba42d785eda218dabc6fa7c0f733ad77f61682bff2db\",\n        \"1e72a8495ceadaf0d31b28ba7cb7c37ccb117761d38fe7dd98eb230ff4ea0b400401e9b5311a7be9b2a533523ad469e2fdb233\",\n        \"bb174b7624c935ff75b3b77ff7068a98\",\n    },\n    {\n        \"6d5c69d7135c0b5b7fef512c127fa788092f1a908358ab658b8f23e463409aa5\",\n        \"b36cccad38cd6148a384a026\",\n        \"b4e74f5c56f2ea056d9ff931525944dfad207e063ba226c354e0320a50449967e964580d9b57028c14005aba6865f8bc6a3ef8\",\n        \"b19f4616bb1452251a2a7dbf78f920194f139e0424d27683621d1ee1e865737c2466e058439c8e122e582a7b63607ce9\",\n        \"1ce12cd5502efa9ea259584ae9b3c7dbd9444380d4b77a2c787f9b2257019b23ee183dffebb3106a26b18d8a23445626a578e2\",\n        \"62945e31bae3181855b69c37898ac5bf\",\n    },\n    {\n        \"e6afe3c4db2c1d13edb1c5931b2b4b515ec0fd6201139ee1ea55cec92263830e\",\n        \"358bd9ea64177d1e23a41726\",\n        \"710bb3394b094ee7d053bc6599b26dafd337e8a61c580d0446c3bf195e77ca5132c8ec3a47a61579dce38360bba7c65e4d5634\",\n        \"7e0f841cddd7eeebd1ec7b7b8d0e2f71656e5e9ff3cfa739c0b9d0ec4941a0b3f3b396690dbe5f5082d6fb6dd701c68d\",\n        \"4574a8db515b41c14c2a962dff34e2161a7195c491b11b79889aff93c5b79a6455df9fe8ef5c5b9edb5da1aa9fe66058b9065f\",\n        \"7c928d7f5cbac9bb4b5928fe727899eb\",\n    },\n    {\n        \"5cb962278d79417b7795499e8b92befe4228f3ba5f31992201aa356a6d139a67\",\n        \"76f7e7608f09a05f336994cf\",\n        \"2e12cbd468086aa70e2ecd1ddef561e85c225dd083e5956f5c67503344b0ea982bb5044dafbcc02a5b9be1e9b988902d80172b\",\n        \"032de3fdec273fc8446c2bf767e201f2c7c190acf9d6d321a24a0462cbc3356e798fe23d6c1b4fe83be9c95d71c05504\",\n        \"c959344a46aa5216d2b37c832436eb72a4a363a6df5642cfbbfd640dea1d64c80bd97eabc1aab192969ee0b799e592a13d2351\",\n        \"51b227eaf7228a4419f2f3b79b53463a\",\n    },\n    {\n        \"148579a3cbca86d5520d66c0ec71ca5f7e41ba78e56dc6eebd566fed547fe691\",\n        \"b08a5ea1927499c6ecbfd4e0\",\n        \"9d0b15fdf1bd595f91f8b3abc0f7dec927dfd4799935a1795d9ce00c9b879434420fe42c275a7cd7b39d638fb81ca52b49dc41\",\n        \"e4f963f015ffbb99ee3349bbaf7e8e8e6c2a71c230a48f9d59860a29091d2747e01a5ca572347e247d25f56ba7ae8e05cde2be3c97931292c02370208ecd097ef692687fecf2f419d3200162a6480a57dad408a0dfeb492e2c5d\",\n        \"2097e372950a5e9383c675e89eea1c314f999159f5611344b298cda45e62843716f215f82ee663919c64002a5c198d7878fd3f\",\n        \"adbecdb0d5c2224d804d2886ff9a5760\",\n    },\n    {\n        \"e49af19182faef0ebeeba9f2d3be044e77b1212358366e4ef59e008aebcd9788\",\n        \"e7f37d79a6a487a5a703edbb\",\n        \"461cd0caf7427a3d44408d825ed719237272ecd503b9094d1f62c97d63ed83a0b50bdc804ffdd7991da7a5b6dcf48d4bcd2cbc\",\n        \"19a9a1cfc647346781bef51ed9070d05f99a0e0192a223c5cd2522dbdf97d9739dd39fb178ade3339e68774b058aa03e9a20a9a205bc05f32381df4d63396ef691fefd5a71b49a2ad82d5ea428778ca47ee1398792762413cff4\",\n        \"32ca3588e3e56eb4c8301b009d8b84b8a900b2b88ca3c21944205e9dd7311757b51394ae90d8bb3807b471677614f4198af909\",\n        \"3e403d035c71d88f1be1a256c89ba6ad\",\n    },\n    {\n        \"c277df045d0a1a3956958f271055c229d2634427b1d73e99d54920da69f72e01\",\n        \"79e24f84bc77a21a6cb14ee2\",\n        \"5ca68d858cc30b1cb0514c4e9de98e1a1a835df401f69e9ec6f1bcb1158f09114dff551683b3827457f77e17a7097b1ea69eac\",\n        \"ca09282238d492029afbd30ea9b4aa9d448d77b4b41a791c35ebe3f8e5034ac71210117a843fae647cea020712c27e5c8f85acf933d5e28430c7770862d8dbb197cbbcfe49dd63f6aa05fbd13e32c459342698dfee5935c7c321\",\n        \"5c5223c8eda59a8dc28b08e6c21482a46e5d84d32c7050bf144fc57f4e8094de133198da7b4b8398b167204aff837da15d9ab2\",\n        \"378885950a4491bee3cd681d3c957b9a\",\n    },\n    {\n        \"4d07f78d19e6d8bb32bf209f138307890f0f1ae39362779ff2bf1f9b734fe653\",\n        \"d983a5d5af78a3b1cd5fbd58\",\n        \"94f0bbc4340d97d854e25cc7ce85ea1e781e68bf6f639e0a981bb03e3c209cbf5127171cb0fff65bc3ecac92774d10146d1ac5\",\n        \"a3dc9ff9210bc4b3276909883db2c2aa0762cd22b46901a248c0372d073e7778b9c1d8469b26bb42406e484ef7747f71dea785fc0020a2eac17e0ac3fbe0453629efd68d5678fbecc10af8ffbe7828f826defb638763f4ecfe82\",\n        \"6543b4d97fccd273b36436fef719ac31bf0e5c4c058ea71aea2a0e5b60e329be6ea81ce386e6e9fe4480e58363c3b2036865ac\",\n        \"924cf7c0770f228a4b92e9b2a11fc70b\",\n    },\n    {\n        \"9572b9c57abdf1caae3bebc0e4bbf9e556b5cbacca2c4756050fefd10a666155\",\n        \"de292a9858caaccdcab6a433\",\n        \"6f420a32708ccd4df0d3149e8c1d88dceba66ee4546f38db07046ebf30f47627f7fdda1dd79783adabe5f6b6853857b99b864c\",\n        \"a042d97a9b8f6caf51c5f24522d7ed83e2c5d8ec6b37ef2598134a30e57319300c3fdf92fb1d9797f5ef00971f662aae768f69f9ca0455bd6d1059d5f85b8ecb977006b833f90ac2d5bbf4498c83f4d1a42584c0dfc4a2e2453c\",\n        \"a9af961d61ab578cc1348eb6f729603f481c5d9bf9bee3a13eda022bd09c03a4f207c21c45c0232a9742ae8f0c54b4278a3a63\",\n        \"eff9bb26156ec76f0060cd93a959e055\",\n    },\n    {\n        \"3cc8671c4d25c3cbc887f4dcbd64e531e91cf6252f6ee9c29d9988d20ab6747f\",\n        \"f960a09c0b5067280926a9c3\",\n        \"5b58717b0b32076566b58bf37c6133e61468b2be67715fb0007fe390c4b5578decf55502a4e3c12e7bdf0ba98784d126e4753a\",\n        \"79d73a7ff86698e6114a0f465373fbee029e042424c439b22e3ad37b36b9e02bab82e16844114e99e39c169f462fe61b87c4627c394384acc9531680706e4e56491a304c6075cca37c64db24468c1fb9519605c83f0ee3e0316a\",\n        \"1d0be097470c1ac30619f63c3961152ab27db88ce694b7bba4db185cb31803cc7bab890e931c90766621bfe5d887eb0cd6995d\",\n        \"dbd57ea091ff16fc7dbc5435030cc74e\",\n    },\n    {\n        \"882068be4552d7ad224fc8fa2af00d6abf76ccf1a7689d75f6f0e9bd82c1215e\",\n        \"890a5315992f12674d1c8018\",\n        \"8464c03e0280cb1f63c054a24a050e980f60cc7313f09f2092c45d77bbe9ad2a8c1f6cdca2acd8c57c87e887edadb66bcb66c4\",\n        \"916721df816b1cad531dee8e4a8e634d43ed87db99609bcc986d16bfac2cff577d536d749a5c3625de53c5351825c228911f0a64be1fc9738a26394efe5332c0762bf59b65d3f1c5aafa9ca2e63eccd59568e6c0269950911a71\",\n        \"020e297d907177dba12dde4bfe1b0ff9b6a9d9db0695193e4181449e157137b59b488616ba151b06d889f8498ce373d2396ab9\",\n        \"e48537ecb27460b477a6e7c3463dbcb0\",\n    },\n    {\n        \"4deadcf0f7e19231f8afcb6fb902b105bef23f2fa9323a51833ff8368ccb4f91\",\n        \"6d4d01abd587ed110e512ed2\",\n        \"75686e0fdd3fd96f3e6dfafd7a2a907f9f375d93943cb2229bd72b032bf624af4fc72071289386e3dccc45959e47ab42b261a2\",\n        \"31a2797318104b2dc9977e599435b041c56bafe5e7d901a58614c2d3fb9d220e3fd3e2828cef69e0604ed73340cb1e21967294dcd874893942442200b2a5b860ee8cf91e1d8eb3d364d0e43e84f6379f434a1ae17c236b216842\",\n        \"8feaf9a089599812117a67aed2f4bf3431ff1f6cfd64ea5ff475287abb4ff1ab6b3e4f8a55d1c6b3f08594f403e771ec7e9956\",\n        \"5040407621712e053591179e1689698e\",\n    },\n    {\n        \"80f1c515f10d79cdbee275213aa9ac0845e2cf42874f7e695081cb103abf1a27\",\n        \"399d5f9b218b62ff60c267bd\",\n        \"9e95221873f65282dd1ec75494d2500e62a2b6edda5a6f33b3d4dd7516ef25cf4154472e61c6aed2749c5a7d86637052b00f54\",\n        \"d2a8fff8ae24a6a5efc75764549a765222df317e323a798cbb8a23d1af8fdf8a3b767f55703b1c0feba3912d4234441978191262f1999c69caa4e9a3e0454c143af0022cd6e44cec14149f9e9964a1f2c5e5a6e3e768bd870060\",\n        \"4f996562e23ebbfd4fe26523aee9525b13d6e134e72d21bdc7f195c6403501fd8300b6e597b668f199f93591ba742a91b54454\",\n        \"2da1c7325f58575d275abf96c7fa9e51\",\n    },\n    {\n        \"c2c6e9be5a480a4a56bfcd0e268faa2276093bd1f7e8ce61e746d003decc761e\",\n        \"c1541eb25721d4856df8f928\",\n        \"87d22e0318fbbb420b86b0585bd12c14645ff2c742e5639b3a114cc96c5f738edfbe2055116f259e3d6c14cb6d8fca45708289\",\n        \"f34e79e5fe437eda03ccfef2f1d6319df51a71c9891863e4b98a7298bd64490460354db5a28b0fadcb815024ea17f3b84810e27954afb1fdf44f0defb930b1793684a781310b9af95b4bcf0a727a2cb0ac529b805811b3721d98\",\n        \"b5d6e57c7aa0240e0b6e332d3b3323b525a3d8a553ad041ba599e909188da537c3293d1687fb967882d16a5615b84e95f9dd77\",\n        \"1cce334cec4b51216cac0fc620cdadf9\",\n    },\n    {\n        \"ea0d6184a71456e27f9ac82dfc7f6694c898f7c0d19d1cb0db4e575dd0094bb6\",\n        \"5018fb816d515511bfb939d5\",\n        \"083147d0c80f134f7393855c8a95bf6e6abd6f9a7b1fca584e8bfc6b5dc13a8edbfd473e232c041d9be9ee7709dc86b3aa320a\",\n        \"8bc6bd0a263212bd7281fd1a45e512fca104f859358eae9293a297c529a0abaffd8a77507b9069040f2b3141a7620691e110a8b593b956d8e3e71694506b89018a03861c1ba6082687adce15a874c73477430cef075eba077a93\",\n        \"f0a5c4941782e2f2941dd05acee29b65341773f2e8d51935a3f4fa6f268ff030c880976cf1ee858f6571abd8411b695a2fadf0\",\n        \"067d8cc2d38c30697272daa00c7f70cf\",\n    },\n    {\n        \"c624feb6cb0d78d634b627134c692f0bf5debf84d8639e22ff27ce2ace49d438\",\n        \"a54f4f1204255f6b312222cd\",\n        \"ec34f45c1b70fd56518cc5c404cc13330ab7d51c10f4d2cfeb26b097ae76897191ec1b3953b0086e425c7da221d29f65d5ccf3\",\n        \"d9099ba6be50dca77e0b9803766ad993132479fbab43b8f4126a7f9ef673ac0caf2de235e1e84ad9fe505c43d1ac779f5072c025c14ea0d930ce39db8c5930baada23b3e4654470e559fcb6eb1c133a77318b87cc7913e12d404\",\n        \"713d28a5123d65e82cca6e7fd919e1e5e3bdaab12ae715cf8b7c974eb5f62be8c3b42637074c6b891f6c6033eb4b7e61db9f0b\",\n        \"01ededff6e4d1dce4ac790218e208ebe\",\n    },\n    {\n        \"1afc68b32596198ae0f3a8612751c2413322e8054ff2ac6bede3d4a1ee20ee62\",\n        \"356860e76e794492de6a68f3\",\n        \"293041038f9e8edee23d2f18bce87b522380f1fa18b3021830a54ab891da8548095228ed9860176152e27945d66254f0db8590\",\n        \"205e44009e0ef963838aff615b35c9f1271d487cf719677d956718bce8ab676cceb636ad381432c5c790c26b07051b661a2fec4e607f9644f84993c8335db21ae36b6008bab2883ad7541809bf5f49272295c1c1f1cf8c678553\",\n        \"e06109680d5fefd345665ec9a5b2e7bf3ece3af1b62841a95c453e7753b5a1d6d8a10b3c6c42df1f23832b74e74871821f1c0b\",\n        \"953d8d04f70e2af055ac902a455235b2\",\n    },\n    {\n        \"f61b723359e798fefecc26b10b168dc331c639079598f1f651166cc58c671ee1\",\n        \"b07e9407b592d4fd95509343\",\n        \"2724f1ad6b5b409a59c7f2ff649eb24b4a33a03d7a0426e29a6ea3aa91b4f00699fbed75bb7189964303e2e9fe3a7e5f74b7a1\",\n        \"1429c6f27828cb94ad5e62451da10fd574660cec2b8f279a19bbb8a167a630d3ac60db04e8faa02204792e49aed4501844a419d3ecdff0d03799866fee81a91187b08a44d5bb617ff3b2cef79cd48750ea20903e1d3627a17730\",\n        \"362bad8de943dce8f53edf682d02e1d893c23c5272b13fd35b492f8477083a8c34027db32b6131931f03555ac5fbc6dbb13801\",\n        \"a51775606343755691f125019b44fdfc\",\n    },\n    {\n        \"6be7f4d18ff0fbdd9b3b3cacaba4629a0c617387079add62f6ce1584b33faad1\",\n        \"fda568c9cb13d9c176bcef03\",\n        \"4df668e99d5068604a48bcca5baa8245435928558a83d68d7b0b081861224e9bd39ea8f2d55a635949e66c6f6a7ff5cc34dd94\",\n        \"11ebeb97dd4a9925c1fbe2b9af77392058d2d971e42db15da39f090d7bc132573c34bf7d92a2d72dc66ee6840c3ff07985b8976ee8d8f36bf47ae330b899fdc60652dd5a23c45f3680f11951f019e0697c8acfcaa95f01b9c7dd\",\n        \"488b40ad594e1845ccdd9e9467fc5e1afbbfde34e57d45bfcd30b61cc326d57fe8e3f31a39cdebf00f60bbd2c3cdf69f756eff\",\n        \"3bf3fbab9b48486fd08a5552604df639\",\n    },\n    {\n        \"83C093B58DE7FFE1C0DA926AC43FB3609AC1C80FEE1B624497EF942E2F79A823\",\n        \"7CFDE9F9E33724C68932D612\",\n        \"\",\n        \"84C5D513D2AAF6E5BBD2727788E523008932D6127CFDE9F9E33724C608000F101112131415161718191A1B1C1D1E1F202122232425262728292A2B2C2D2E2F303132333435363738393A3B3C3D3E3F0005\",\n        \"\",\n        \"6EE160E8FAECA4B36C86B234920CA975\"\n    },\n    {\n        \"4C973DBC7364621674F8B5B89E5C15511FCED9216490FB1C1A2CAA0FFE0407E5\",\n        \"7AE8E2CA4EC500012E58495C\",\n        \"08000F101112131415161718191A1B1C1D1E1F202122232425262728292A2B2C2D2E2F303132333435363738393A3B3C3D3E3F404142434445464748490008\",\n        \"68F2E77696CE7AE8E2CA4EC588E54D002E58495C\",\n        \"BA8AE31BC506486D6873E4FCE460E7DC57591FF00611F31C3834FE1C04AD80B66803AFCF5B27E6333FA67C99DA47C2F0CED68D531BD741A943CFF7A6713BD0\",\n        \"2611CD7DAA01D61C5C886DC1A8170107\"\n    },\n    {\n        \"0000000000000000000000000000000000000000000000000000000000000000\",\n        \"000000000000000000000000\",\n        \"\",\n        \"d9313225f88406e5a55909c5aff5269a86a7a9531534f7da2e4c303d8a318a721c3c0c95956809532fcf0e2449a6b525b16aedf5aa0de657ba637b391aafd255522dc1f099567d07f47f37a32a84427d643a8cdcbfe5c0c97598a2bd2555d1aa8cb08e48590dbb3da7b08b1056828838c5f61e6393ba7a0abcc9f662898015ad\",\n        \"\",\n        \"f4c58f80a3a1a9cd52755214bdbb6ad0\"\n    },\n    {\n        \"0000000000000000000000000000000000000000000000000000000000000000\",\n        \"000000000000000000000000\",\n        \"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n        \"\",\n        \"cea7403d4d606b6e074ec5d3baf39d18726003ca37a62a74d1a2f58e7506358edd4ab1284d4ae17b41e85924470c36f7\",\n        \"0eb41c52b074ecacb213f6de062f7897\"\n    },\n    {\n        \"0000000000000000000000000000000000000000000000000000000000000000\",\n        \"000000000000000000000000\",\n        \"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n        \"\",\n        \"cea7403d4d606b6e074ec5d3baf39d18726003ca37a62a74d1a2f58e7506358edd4ab1284d4ae17b41e85924470c36f74741cbe181bb7f30617c1de3ab0c3a1fd0c48f7321a82d376095ace0419167a0bcaf49b0c0cea62de6bc1c66545e1dadabfa77cd6e85da245fb0bdc5e52cfc29ba0ae1ab2837e0f36387b70e93176012\",\n        \"ae1753b346fd6971d20cb69a2d6148bc\"\n    },\n    {\n        \"0000000000000000000000000000000000000000000000000000000000000000\",\n        \"ffffffff0000000000000000\",\n        \"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n        \"\",\n        \"ee2491af7588cbd4ccccaea18a6118cdf00222178a0b53be8a7a0ef9806991a81c70151316ef97ffea3d83e8905d933c253b56a63f115a2cd4005281bfbdd9a07a1b19d7e07caf3f90a11228785d7bf749449598214a4222c3c476ea5df9d60250b8d66787b568762a5cb70149e2957c1cc5ef636113b1e1752096ec404fe2b6\",\n        \"0c23c9176aedc5bacbca56f777324aa4\"\n    },\n    {\n        \"0000000000000000000000000000000000000000000000000000000000000000\",\n        \"ffffffffffffffffffffffff\",\n        \"010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002\",\n        \"0102030405060708090a0b0c0d\",\n        \"d3b089dead85b8b6874327390d0fff1575051e2a96243ab8ca0927447f58d7053d99918491eeeee470cd929077ccb404ef140354241e12e2e36e3aea89a06e79c064479d7cdd711220dff6059ab913a1ea3ba7bcdb2d5b8746a990ec54cf2aab55c11c9c849ab552fc03cc4425db4e54b13d334e9ef145805c73680d7899b64bab\",\n        \"c9ee768b5473f678ac00203affa6a34e\"\n    },\n    {\n        \"843ffcf5d2b72694d19ed01d01249412d5cb4a08f134d246513633e84d006bbb\",\n        \"dbcca32ebf9b804617c3aa9e\",\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f\",\n        \"00000000000000000000000000000000101112131415161718191a1b1c1d1e1f\",\n        \"3847bb9e60181f62ba36beae09cc3cfeb5958a16e37c72e87add8be814ee6dbbb98c0727709c84d26a6adf5e7b4e17cdfd84977b328d3eda489a30ff8d1875b530239d4abaf15a5903f516cac0c91b3a\",\n        \"39fa8fc1c78405e86326c97d428cd1c6\"\n    }\n};\n\nstatic int\ntv(void)\n{\n    unsigned char      *ad;\n    unsigned char      *ciphertext;\n    unsigned char      *ciphertext2;\n    unsigned char      *decrypted;\n    unsigned char      *detached_ciphertext;\n    unsigned char      *expected_ciphertext;\n    unsigned char      *key;\n    unsigned char      *message;\n    unsigned char      *mac;\n    unsigned char      *nonce;\n    char               *hex;\n    unsigned long long  found_ciphertext_len;\n    unsigned long long  found_mac_len;\n    unsigned long long  found_message_len;\n    size_t              ad_len;\n    size_t              ciphertext_len;\n    size_t              detached_ciphertext_len;\n    size_t              i = 0U;\n    size_t              message_len;\n    int                 res;\n\n    key = (unsigned char *) sodium_malloc(crypto_aead_aes256gcm_KEYBYTES);\n    nonce = (unsigned char *) sodium_malloc(crypto_aead_aes256gcm_NPUBBYTES);\n    mac = (unsigned char *) sodium_malloc(crypto_aead_aes256gcm_ABYTES);\n\n    do {\n        assert(strlen(tests[i].key_hex) == 2 * crypto_aead_aes256gcm_KEYBYTES);\n        sodium_hex2bin(key, crypto_aead_aes256gcm_KEYBYTES,\n                       tests[i].key_hex, strlen(tests[i].key_hex),\n                       NULL, NULL, NULL);\n        assert(strlen(tests[i].nonce_hex) == 2 * crypto_aead_aes256gcm_NPUBBYTES);\n        sodium_hex2bin(nonce, crypto_aead_aes256gcm_NPUBBYTES,\n                       tests[i].nonce_hex, strlen(tests[i].nonce_hex),\n                       NULL, NULL, NULL);\n        message_len = strlen(tests[i].message_hex) / 2;\n        message = (unsigned char *) sodium_malloc(message_len);\n        sodium_hex2bin(message, message_len,\n                       tests[i].message_hex, strlen(tests[i].message_hex),\n                       NULL, NULL, NULL);\n        ad_len = strlen(tests[i].ad_hex) / 2;\n        ad = (unsigned char *) sodium_malloc(ad_len);\n        sodium_hex2bin(ad, ad_len,\n                       tests[i].ad_hex, strlen(tests[i].ad_hex),\n                       NULL, NULL, NULL);\n        ciphertext_len = message_len + crypto_aead_aes256gcm_ABYTES;\n        detached_ciphertext_len = message_len;\n        expected_ciphertext = (unsigned char *) sodium_malloc(ciphertext_len);\n        assert(strlen(tests[i].ciphertext_hex) == 2 * message_len);\n        sodium_hex2bin(expected_ciphertext, message_len,\n                       tests[i].ciphertext_hex, strlen(tests[i].ciphertext_hex),\n                       NULL, NULL, NULL);\n        assert(strlen(tests[i].mac_hex) == 2 * crypto_aead_aes256gcm_ABYTES);\n        sodium_hex2bin(expected_ciphertext + message_len, crypto_aead_aes256gcm_ABYTES,\n                       tests[i].mac_hex, strlen(tests[i].mac_hex),\n                       NULL, NULL, NULL);\n        ciphertext = (unsigned char *) sodium_malloc(ciphertext_len);\n        detached_ciphertext = (unsigned char *) sodium_malloc(detached_ciphertext_len);\n\n        res = crypto_aead_aes256gcm_encrypt_detached(detached_ciphertext, mac,\n                                                     &found_mac_len,\n                                                     message, message_len,\n                                                     ad, ad_len, NULL, nonce, key);\n        assert(found_mac_len == crypto_aead_aes256gcm_ABYTES);\n        if (memcmp(detached_ciphertext, expected_ciphertext,\n                   detached_ciphertext_len) != 0 ||\n            memcmp(mac, expected_ciphertext + message_len,\n                   crypto_aead_aes256gcm_ABYTES) != 0) {\n            printf(\"Detached encryption of test vector #%u failed (res=%d)\\n\",\n                   (unsigned int) i, res);\n            hex = (char *) sodium_malloc((size_t) ciphertext_len * 2 + 1);\n            sodium_bin2hex(hex, (size_t) detached_ciphertext_len * 2 + 1,\n                           detached_ciphertext, detached_ciphertext_len);\n            printf(\"Computed: [%s]\\n\", hex);\n            sodium_bin2hex(hex, (size_t) detached_ciphertext_len * 2 + 1,\n                           expected_ciphertext, detached_ciphertext_len);\n            printf(\"Expected: [%s]\\n\", hex);\n            sodium_bin2hex(hex, (size_t) found_mac_len * 2 + 1,\n                           mac, found_mac_len);\n            printf(\"Computed mac: [%s]\\n\", hex);\n            sodium_bin2hex(hex, (size_t) found_mac_len * 2 + 1,\n                           expected_ciphertext + message_len, found_mac_len);\n            printf(\"Expected mac: [%s]\\n\", hex);\n            sodium_free(hex);\n        }\n\n        res = crypto_aead_aes256gcm_encrypt(ciphertext, &found_ciphertext_len,\n                                            message, message_len,\n                                            ad, ad_len, NULL, nonce, key);\n\n        assert((size_t) found_ciphertext_len == ciphertext_len);\n        if (memcmp(ciphertext, expected_ciphertext, ciphertext_len) != 0) {\n            printf(\"Encryption of test vector #%u failed (res=%d)\\n\",\n                   (unsigned int) i, res);\n            hex = (char *) sodium_malloc((size_t) found_ciphertext_len * 2 + 1);\n            sodium_bin2hex(hex, (size_t) found_ciphertext_len * 2 + 1,\n                           ciphertext, ciphertext_len);\n            printf(\"Computed: [%s]\\n\", hex);\n            sodium_bin2hex(hex, (size_t) ciphertext_len * 2 + 1,\n                           expected_ciphertext, ciphertext_len);\n            printf(\"Expected: [%s]\\n\", hex);\n            sodium_free(hex);\n        }\n\n        decrypted = (unsigned char *) sodium_malloc(message_len);\n        found_message_len = 1;\n        if (crypto_aead_aes256gcm_decrypt(decrypted, &found_message_len,\n                                          NULL, ciphertext,\n                                          randombytes_uniform((uint32_t) ciphertext_len),\n                                          ad, ad_len, nonce, key) != -1) {\n            printf(\"Verification of test vector #%u after truncation succeeded\\n\",\n                   (unsigned int) i);\n        }\n        if (found_message_len != 0) {\n            printf(\"Message length should have been set to zero after a failure\\n\");\n        }\n        if (crypto_aead_aes256gcm_decrypt(decrypted, &found_message_len,\n                                          NULL, guard_page,\n                                          randombytes_uniform(crypto_aead_aes256gcm_ABYTES),\n                                          ad, ad_len, nonce, key) != -1) {\n            printf(\"Verification of test vector #%u with a truncated tag failed\\n\",\n                   (unsigned int) i);\n        }\n        if (i == 0 && crypto_aead_aes256gcm_decrypt(NULL, NULL,\n                                                    NULL, ciphertext, ciphertext_len,\n                                                    ad, ad_len, nonce, key) != 0) {\n            printf(\"Verification of test vector #%u's tag failed\\n\", (unsigned int) i);\n        }\n        if (crypto_aead_aes256gcm_decrypt(decrypted, &found_message_len,\n                                          NULL, ciphertext, ciphertext_len,\n                                          ad, ad_len, nonce, key) != 0) {\n            printf(\"Verification of test vector #%u failed\\n\", (unsigned int) i);\n        }\n        assert((size_t) found_message_len == message_len);\n        if (memcmp(decrypted, message, message_len) != 0) {\n            printf(\"Incorrect decryption of test vector #%u\\n\", (unsigned int) i);\n        }\n        memset(decrypted, 0xd0, message_len);\n        if (crypto_aead_aes256gcm_decrypt_detached(decrypted,\n                                                   NULL, detached_ciphertext,\n                                                   detached_ciphertext_len,\n                                                   mac, ad, ad_len, nonce, key) != 0) {\n            printf(\"Detached verification of test vector #%u failed\\n\", (unsigned int) i);\n        }\n        if (memcmp(decrypted, message, message_len) != 0) {\n            printf(\"Incorrect decryption of test vector #%u\\n\", (unsigned int) i);\n        }\n\n        ciphertext2 = (unsigned char *) sodium_malloc(ciphertext_len);\n        crypto_aead_aes256gcm_encrypt(ciphertext, &found_ciphertext_len, message,\n                                      message_len, ad, ad_len, NULL, nonce, key);\n        assert(found_ciphertext_len == ciphertext_len);\n        memcpy(ciphertext2, message, message_len);\n        crypto_aead_aes256gcm_encrypt(ciphertext2, &found_ciphertext_len,\n                                      ciphertext2, message_len, ad, ad_len, NULL,\n                                      nonce, key);\n        assert(found_ciphertext_len == ciphertext_len);\n        assert(memcmp(ciphertext, ciphertext2, ciphertext_len) == 0);\n        if (crypto_aead_aes256gcm_decrypt(ciphertext2, &found_message_len, NULL,\n                                          ciphertext2, ciphertext_len, ad, ad_len,\n                                          nonce, key) != 0) {\n            printf(\"In-place decryption of vector #%u failed\\n\", (unsigned int) i);\n        }\n        assert(found_message_len == message_len);\n        assert(memcmp(ciphertext2, message, message_len) == 0);\n        if (crypto_aead_aes256gcm_decrypt(message, &found_message_len, NULL,\n                                          ciphertext, ciphertext_len, ad, ad_len,\n                                          nonce, key) != 0) {\n            printf(\"Decryption of vector #%u failed\\n\", (unsigned int) i);\n        }\n        assert(found_message_len == message_len);\n        assert(memcmp(ciphertext2, message, message_len) == 0);\n\n        sodium_free(ciphertext2);\n        sodium_free(message);\n        sodium_free(ad);\n        sodium_free(expected_ciphertext);\n        sodium_free(ciphertext);\n        sodium_free(decrypted);\n        sodium_free(detached_ciphertext);\n    } while (++i < (sizeof tests) / (sizeof tests[0]));\n\n    sodium_free(key);\n    sodium_free(mac);\n    sodium_free(nonce);\n\n    return 0;\n}\n\nstatic int\ntv2(void)\n{\n    unsigned char *ciphertext;\n    unsigned char *message;\n    unsigned char *message2;\n    unsigned char *nonce;\n    unsigned char *key;\n    size_t         message_len;\n    size_t         ciphertext_len;\n    int            i;\n\n    for (i = 0; i < 250; i++) {\n        message_len = randombytes_uniform(1000);\n        ciphertext_len = message_len + crypto_aead_aes256gcm_ABYTES;\n        message = (unsigned char *) sodium_malloc(message_len);\n        message2 = (unsigned char *) sodium_malloc(message_len);\n        ciphertext = (unsigned char *) sodium_malloc(ciphertext_len);\n        nonce = (unsigned char *) sodium_malloc(crypto_aead_aes256gcm_NPUBBYTES);\n        key = (unsigned char *) sodium_malloc(crypto_aead_aes256gcm_KEYBYTES);\n\n        crypto_aead_aes256gcm_keygen(key);\n        randombytes_buf(nonce, crypto_aead_aes256gcm_NPUBBYTES);\n        randombytes_buf(message, message_len);\n        crypto_aead_aes256gcm_encrypt(ciphertext, NULL, message, message_len,\n                                      NULL, 0, NULL, nonce, key);\n        if (crypto_aead_aes256gcm_decrypt(message2, NULL, NULL,\n                                          ciphertext, ciphertext_len,\n                                          NULL, 0, nonce, key) != 0) {\n            printf(\"Decryption of random ciphertext failed\");\n        }\n        assert(message_len == 0 || memcmp(message, message2, message_len) == 0);\n        sodium_free(key);\n        sodium_free(nonce);\n        sodium_free(ciphertext);\n        sodium_free(message2);\n        sodium_free(message);\n    }\n\n    return 0;\n}\n\nint\nmain(void)\n{\n    if (crypto_aead_aes256gcm_is_available()) {\n        tv();\n        tv2();\n    }\n    assert(crypto_aead_aes256gcm_keybytes() == crypto_aead_aes256gcm_KEYBYTES);\n    assert(crypto_aead_aes256gcm_nsecbytes() == crypto_aead_aes256gcm_NSECBYTES);\n    assert(crypto_aead_aes256gcm_npubbytes() == crypto_aead_aes256gcm_NPUBBYTES);\n    assert(crypto_aead_aes256gcm_abytes() == crypto_aead_aes256gcm_ABYTES);\n    assert(crypto_aead_aes256gcm_statebytes() >= sizeof(crypto_aead_aes256gcm_state));\n    assert(crypto_aead_aes256gcm_messagebytes_max() == crypto_aead_aes256gcm_MESSAGEBYTES_MAX);\n    printf(\"OK\\n\");\n\n    return 0;\n}\n"
  },
  {
    "path": "test/default/aead_aes256gcm.exp",
    "content": "OK\n"
  },
  {
    "path": "test/default/aead_aes256gcm2.c",
    "content": "\n#define TEST_NAME \"aead_aes256gcm2\"\n#include \"cmptest.h\"\n\nstatic struct {\n    const char *key_hex;\n    const char  nonce_hex[crypto_aead_aes256gcm_NPUBBYTES * 2 + 1];\n    const char *ad_hex;\n    const char *message_hex;\n    const char *detached_ciphertext_hex;\n    const char  mac_hex[crypto_aead_aes256gcm_ABYTES * 2 + 1];\n    const char *outcome;\n} tests[] = {\n    { \"92ace3e348cd821092cd921aa3546374299ab46209691bc28b8752d17f123c20\",\n      \"00112233445566778899aabb\", \"00000000ffffffff\", \"00010203040506070809\",\n      \"e27abdd2d2a53d2f136b\", \"9a4a2579529301bcfb71c78d4060f52c\", \"valid\" },\n    { \"29d3a44f8723dc640239100c365423a312934ac80239212ac3df3421a2098123\",\n      \"00112233445566778899aabb\", \"aabbccddeeff\", \"\", \"\",\n      \"2a7d77fa526b8250cb296078926b5020\", \"valid\" },\n    { \"cc56b680552eb75008f5484b4cb803fa5063ebd6eab91f6ab6aef4916a766273\",\n      \"99e23ec48985bccdeeab60f1\", \"\", \"2a\", \"06\",\n      \"633c1e9703ef744ffffb40edf9d14355\", \"valid\" },\n    { \"51e4bf2bad92b7aff1a4bc05550ba81df4b96fabf41c12c7b00e60e48db7e152\",\n      \"4f07afedfdc3b6c2361823d3\", \"\", \"be3308f72a2c6aed\", \"cf332a12fdee800b\",\n      \"602e8d7c4799d62c140c9bb834876b09\", \"valid\" },\n    { \"67119627bd988eda906219e08c0d0d779a07d208ce8a4fe0709af755eeec6dcb\",\n      \"68ab7fdbf61901dad461d23c\", \"\", \"51f8c1f731ea14acdb210a6d973e07\",\n      \"43fc101bff4b32bfadd3daf57a590e\", \"ec04aacb7148a8b8be44cb7eaf4efa69\",\n      \"valid\" },\n    { \"59d4eafb4de0cfc7d3db99a8f54b15d7b39f0acc8da69763b019c1699f87674a\",\n      \"2fcb1b38a99e71b84740ad9b\", \"\", \"549b365af913f3b081131ccb6b825588\",\n      \"f58c16690122d75356907fd96b570fca\", \"28752c20153092818faba2a334640d6e\",\n      \"valid\" },\n    { \"3b2458d8176e1621c0cc24c0c0e24c1e80d72f7ee9149a4b166176629616d011\",\n      \"45aaa3e5d16d2d42dc03445d\", \"\", \"3ff1514b1c503915918f0c0c31094a6e1f\",\n      \"73a6b6f45f6ccc5131e07f2caa1f2e2f56\", \"2d7379ec1db5952d4e95d30c340b1b1d\",\n      \"valid\" },\n    { \"0212a8de5007ed87b33f1a7090b6114f9e08cefd9607f2c276bdcfdbc5ce9cd7\",\n      \"e6b1adf2fd58a8762c65f31b\", \"\",\n      \"10f1ecf9c60584665d9ae5efe279e7f7377eea6916d2b111\",\n      \"0843fff52d934fc7a071ea62c0bd351ce85678cde3ea2c9e\",\n      \"7355fde599006715053813ce696237a8\", \"valid\" },\n    { \"b279f57e19c8f53f2f963f5f2519fdb7c1779be2ca2b3ae8e1128b7d6c627fc4\",\n      \"98bc2c7438d5cd7665d76f6e\", \"c0\",\n      \"fcc515b294408c8645c9183e3f4ecee5127846d1\",\n      \"eb5500e3825952866d911253f8de860c00831c81\",\n      \"ecb660e1fb0541ec41e8d68a64141b3a\", \"valid\" },\n    { \"cdccfe3f46d782ef47df4e72f0c02d9c7f774def970d23486f11a57f54247f17\",\n      \"376187894605a8d45e30de51\", \"956846a209e087ed\",\n      \"e28e0e9f9d22463ac0e42639b530f42102fded75\",\n      \"feca44952447015b5df1f456df8ca4bb4eee2ce2\",\n      \"082e91924deeb77880e1b1c84f9b8d30\", \"valid\" },\n    { \"f32364b1d339d82e4f132d8f4a0ec1ff7e746517fa07ef1a7f422f4e25a48194\",\n      \"5a86a50a0e8a179c734b996d\", \"ab2ac7c44c60bdf8228c7884adb20184\",\n      \"43891bccb522b1e72a6b53cf31c074e9d6c2df8e\",\n      \"43dda832e942e286da314daa99bef5071d9d2c78\",\n      \"c3922583476ced575404ddb85dd8cd44\", \"valid\" },\n    { \"ff0089ee870a4a39f645b0a5da774f7a5911e9696fc9cad646452c2aa8595a12\",\n      \"bc2a7757d0ce2d8b1f14ccd9\",\n      \"972ab4e06390caae8f99dd6e2187be6c7ff2c08a24be16ef\",\n      \"748b28031621d95ee61812b4b4f47d04c6fc2ff3\",\n      \"a929ee7e67c7a2f91bbcec6389a3caf43ab49305\",\n      \"ebec6774b955e789591c822dab739e12\", \"valid\" },\n    { \"00112233445566778899aabbccddeeff102132435465768798a9bacbdcedfe0f\",\n      \"000000000000000000000000\", \"\", \"561008fa07a68f5c61285cd013464eaf\",\n      \"23293e9b07ca7d1b0cae7cc489a973b3\", \"ffffffffffffffffffffffffffffffff\",\n      \"valid\" },\n    { \"00112233445566778899aabbccddeeff102132435465768798a9bacbdcedfe0f\",\n      \"ffffffffffffffffffffffff\", \"\", \"c6152244cea1978d3e0bc274cf8c0b3b\",\n      \"7cb6fc7c6abc009efe9551a99f36a421\", \"00000000000000000000000000000000\",\n      \"valid\" },\n    { \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\",\n      \"505152535455565758595a5b\", \"\", \"202122232425262728292a2b2c2d2e2f\",\n      \"b2061457c0759fc1749f174ee1ccadfa\", \"9de8fef6d8ab1bf1bf887232eab590dd\",\n      \"invalid\" },\n    { \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\",\n      \"505152535455565758595a5b\", \"\", \"202122232425262728292a2b2c2d2e2f\",\n      \"b2061457c0759fc1749f174ee1ccadfa\", \"9ee8fef6d8ab1bf1bf887232eab590dd\",\n      \"invalid\" },\n    { \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\",\n      \"505152535455565758595a5b\", \"\", \"202122232425262728292a2b2c2d2e2f\",\n      \"b2061457c0759fc1749f174ee1ccadfa\", \"1ce8fef6d8ab1bf1bf887232eab590dd\",\n      \"invalid\" },\n    { \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\",\n      \"505152535455565758595a5b\", \"\", \"202122232425262728292a2b2c2d2e2f\",\n      \"b2061457c0759fc1749f174ee1ccadfa\", \"9ce9fef6d8ab1bf1bf887232eab590dd\",\n      \"invalid\" },\n    { \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\",\n      \"505152535455565758595a5b\", \"\", \"202122232425262728292a2b2c2d2e2f\",\n      \"b2061457c0759fc1749f174ee1ccadfa\", \"9ce8fe76d8ab1bf1bf887232eab590dd\",\n      \"invalid\" },\n    { \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\",\n      \"505152535455565758595a5b\", \"\", \"202122232425262728292a2b2c2d2e2f\",\n      \"b2061457c0759fc1749f174ee1ccadfa\", \"9ce8fef6d9ab1bf1bf887232eab590dd\",\n      \"invalid\" },\n    { \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\",\n      \"505152535455565758595a5b\", \"\", \"202122232425262728292a2b2c2d2e2f\",\n      \"b2061457c0759fc1749f174ee1ccadfa\", \"9ce8fef6daab1bf1bf887232eab590dd\",\n      \"invalid\" },\n    { \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\",\n      \"505152535455565758595a5b\", \"\", \"202122232425262728292a2b2c2d2e2f\",\n      \"b2061457c0759fc1749f174ee1ccadfa\", \"9ce8fef6d8ab1b71bf887232eab590dd\",\n      \"invalid\" },\n    { \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\",\n      \"505152535455565758595a5b\", \"\", \"202122232425262728292a2b2c2d2e2f\",\n      \"b2061457c0759fc1749f174ee1ccadfa\", \"9ce8fef6d8ab1bf1be887232eab590dd\",\n      \"invalid\" },\n    { \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\",\n      \"505152535455565758595a5b\", \"\", \"202122232425262728292a2b2c2d2e2f\",\n      \"b2061457c0759fc1749f174ee1ccadfa\", \"9ce8fef6d8ab1bf13f887232eab590dd\",\n      \"invalid\" },\n    { \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\",\n      \"505152535455565758595a5b\", \"\", \"202122232425262728292a2b2c2d2e2f\",\n      \"b2061457c0759fc1749f174ee1ccadfa\", \"9ce8fef6d8ab1bf1bfa87232eab590dd\",\n      \"invalid\" },\n    { \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\",\n      \"505152535455565758595a5b\", \"\", \"202122232425262728292a2b2c2d2e2f\",\n      \"b2061457c0759fc1749f174ee1ccadfa\", \"9ce8fef6d8ab1bf1bf887332eab590dd\",\n      \"invalid\" },\n    { \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\",\n      \"505152535455565758595a5b\", \"\", \"202122232425262728292a2b2c2d2e2f\",\n      \"b2061457c0759fc1749f174ee1ccadfa\", \"9ce8fef6d8ab1bf1bf887232ebb590dd\",\n      \"invalid\" },\n    { \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\",\n      \"505152535455565758595a5b\", \"\", \"202122232425262728292a2b2c2d2e2f\",\n      \"b2061457c0759fc1749f174ee1ccadfa\", \"9ce8fef6d8ab1bf1bf887232e8b590dd\",\n      \"invalid\" },\n    { \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\",\n      \"505152535455565758595a5b\", \"\", \"202122232425262728292a2b2c2d2e2f\",\n      \"b2061457c0759fc1749f174ee1ccadfa\", \"9ce8fef6d8ab1bf1bf8872326ab590dd\",\n      \"invalid\" },\n    { \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\",\n      \"505152535455565758595a5b\", \"\", \"202122232425262728292a2b2c2d2e2f\",\n      \"b2061457c0759fc1749f174ee1ccadfa\", \"9ce8fef6d8ab1bf1bf887232eab590dc\",\n      \"invalid\" },\n    { \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\",\n      \"505152535455565758595a5b\", \"\", \"202122232425262728292a2b2c2d2e2f\",\n      \"b2061457c0759fc1749f174ee1ccadfa\", \"9ce8fef6d8ab1bf1bf887232eab590df\",\n      \"invalid\" },\n    { \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\",\n      \"505152535455565758595a5b\", \"\", \"202122232425262728292a2b2c2d2e2f\",\n      \"b2061457c0759fc1749f174ee1ccadfa\", \"9ce8fef6d8ab1bf1bf887232eab5909d\",\n      \"invalid\" },\n    { \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\",\n      \"505152535455565758595a5b\", \"\", \"202122232425262728292a2b2c2d2e2f\",\n      \"b2061457c0759fc1749f174ee1ccadfa\", \"9ce8fef6d8ab1bf1bf887232eab5905d\",\n      \"invalid\" },\n    { \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\",\n      \"505152535455565758595a5b\", \"\", \"202122232425262728292a2b2c2d2e2f\",\n      \"b2061457c0759fc1749f174ee1ccadfa\", \"9de8fef6d8ab1bf1be887232eab590dd\",\n      \"invalid\" },\n    { \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\",\n      \"505152535455565758595a5b\", \"\", \"202122232425262728292a2b2c2d2e2f\",\n      \"b2061457c0759fc1749f174ee1ccadfa\", \"9ce8fe76d8ab1b71bf887232eab590dd\",\n      \"invalid\" },\n    { \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\",\n      \"505152535455565758595a5b\", \"\", \"202122232425262728292a2b2c2d2e2f\",\n      \"b2061457c0759fc1749f174ee1ccadfa\", \"9ce8fef6d8ab1b71bf887232eab5905d\",\n      \"invalid\" },\n    { \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\",\n      \"505152535455565758595a5b\", \"\", \"202122232425262728292a2b2c2d2e2f\",\n      \"b2061457c0759fc1749f174ee1ccadfa\", \"631701092754e40e40778dcd154a6f22\",\n      \"invalid\" },\n    { \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\",\n      \"505152535455565758595a5b\", \"\", \"202122232425262728292a2b2c2d2e2f\",\n      \"b2061457c0759fc1749f174ee1ccadfa\", \"00000000000000000000000000000000\",\n      \"invalid\" },\n    { \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\",\n      \"505152535455565758595a5b\", \"\", \"202122232425262728292a2b2c2d2e2f\",\n      \"b2061457c0759fc1749f174ee1ccadfa\", \"ffffffffffffffffffffffffffffffff\",\n      \"invalid\" },\n    { \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\",\n      \"505152535455565758595a5b\", \"\", \"202122232425262728292a2b2c2d2e2f\",\n      \"b2061457c0759fc1749f174ee1ccadfa\", \"1c687e76582b9b713f08f2b26a35105d\",\n      \"invalid\" },\n    { \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\",\n      \"505152535455565758595a5b\", \"\", \"202122232425262728292a2b2c2d2e2f\",\n      \"b2061457c0759fc1749f174ee1ccadfa\", \"9de9fff7d9aa1af0be897333ebb491dc\",\n      \"invalid\" }\n};\n\nstatic int\ntv(void)\n{\n    unsigned char *ad;\n    unsigned char *decrypted;\n    unsigned char *detached_ciphertext;\n    unsigned char *key;\n    unsigned char *message;\n    unsigned char *mac;\n    unsigned char *nonce;\n    size_t         ad_len;\n    size_t         detached_ciphertext_len;\n    size_t         message_len;\n    unsigned int   i;\n\n    key   = (unsigned char *) sodium_malloc(crypto_aead_aes256gcm_KEYBYTES);\n    nonce = (unsigned char *) sodium_malloc(crypto_aead_aes256gcm_NPUBBYTES);\n    mac   = (unsigned char *) sodium_malloc(crypto_aead_aes256gcm_ABYTES);\n\n    for (i = 0U; i < (sizeof tests) / (sizeof tests[0]); i++) {\n        assert(strlen(tests[i].key_hex) == 2 * crypto_aead_aes256gcm_KEYBYTES);\n        sodium_hex2bin(key, crypto_aead_aes256gcm_KEYBYTES, tests[i].key_hex,\n                       strlen(tests[i].key_hex), NULL, NULL, NULL);\n\n        assert(strlen(tests[i].nonce_hex) ==\n               2 * crypto_aead_aes256gcm_NPUBBYTES);\n        sodium_hex2bin(nonce, crypto_aead_aes256gcm_NPUBBYTES,\n                       tests[i].nonce_hex, strlen(tests[i].nonce_hex), NULL,\n                       NULL, NULL);\n\n        message_len = strlen(tests[i].message_hex) / 2;\n        message     = (unsigned char *) sodium_malloc(message_len);\n        sodium_hex2bin(message, message_len, tests[i].message_hex,\n                       strlen(tests[i].message_hex), NULL, NULL, NULL);\n\n        ad_len = strlen(tests[i].ad_hex) / 2;\n        ad     = (unsigned char *) sodium_malloc(ad_len);\n        sodium_hex2bin(ad, ad_len, tests[i].ad_hex, strlen(tests[i].ad_hex),\n                       NULL, NULL, NULL);\n\n        detached_ciphertext_len = message_len;\n        assert(strlen(tests[i].detached_ciphertext_hex) == 2 * message_len);\n        assert(strlen(tests[i].mac_hex) == 2 * crypto_aead_aes256gcm_ABYTES);\n        sodium_hex2bin(mac, crypto_aead_aes256gcm_ABYTES, tests[i].mac_hex,\n                       strlen(tests[i].mac_hex), NULL, NULL, NULL);\n\n        detached_ciphertext =\n            (unsigned char *) sodium_malloc(detached_ciphertext_len);\n        sodium_hex2bin(detached_ciphertext, detached_ciphertext_len,\n                       tests[i].detached_ciphertext_hex,\n                       strlen(tests[i].detached_ciphertext_hex), NULL, NULL,\n                       NULL);\n\n        decrypted = (unsigned char *) sodium_malloc(message_len);\n        if (crypto_aead_aes256gcm_decrypt_detached(\n                decrypted, NULL, detached_ciphertext, detached_ciphertext_len,\n                mac, ad, ad_len, nonce, key) == 0) {\n            if (strcmp(tests[i].outcome, \"valid\") != 0) {\n                printf(\"*** test case %u succeeded, was supposed to be %s\\n\", i,\n                       tests[i].outcome);\n            }\n            if (memcmp(decrypted, message, message_len) != 0) {\n                printf(\"Incorrect decryption of test vector #%u\\n\",\n                       (unsigned int) i);\n            }\n        } else {\n            if (strcmp(tests[i].outcome, \"invalid\") != 0) {\n                printf(\"*** test case %u failed, was supposed to be %s\\n\", i,\n                       tests[i].outcome);\n            }\n        }\n\n        sodium_free(message);\n        sodium_free(ad);\n        sodium_free(decrypted);\n        sodium_free(detached_ciphertext);\n    }\n\n    sodium_free(key);\n    sodium_free(mac);\n    sodium_free(nonce);\n\n    return 0;\n}\n\nint\nmain(void)\n{\n    if (crypto_aead_aes256gcm_is_available()) {\n        crypto_aead_aes256gcm_state st;\n        unsigned char               key[crypto_aead_aes256gcm_KEYBYTES];\n        unsigned char               nonce[crypto_aead_aes256gcm_NPUBBYTES];\n        unsigned char               m[16] = { 0 };\n        unsigned char               c[16 + crypto_aead_aes256gcm_ABYTES];\n        unsigned long long          clen;\n\n        tv();\n\n        crypto_aead_aes256gcm_keygen(key);\n        randombytes_buf(nonce, sizeof nonce);\n        crypto_aead_aes256gcm_beforenm(&st, key);\n        assert(crypto_aead_aes256gcm_encrypt_afternm(\n                   c, &clen, m, 16, NULL, 0, NULL, nonce, &st) == 0);\n        assert(clen == 16 + crypto_aead_aes256gcm_ABYTES);\n        assert(crypto_aead_aes256gcm_decrypt_afternm(\n                   m, NULL, NULL, c, clen, NULL, 0, nonce, &st) == 0);\n    }\n    printf(\"OK\\n\");\n\n    return 0;\n}\n"
  },
  {
    "path": "test/default/aead_aes256gcm2.exp",
    "content": "OK\n"
  },
  {
    "path": "test/default/aead_chacha20poly1305.c",
    "content": "\n#define TEST_NAME \"aead_chacha20poly1305\"\n#include \"cmptest.h\"\n\nstatic int\ntv(void)\n{\n#undef  MLEN\n#define MLEN 10U\n#undef  ADLEN\n#define ADLEN 10U\n#undef  CLEN\n#define CLEN (MLEN + crypto_aead_chacha20poly1305_ABYTES)\n    static const unsigned char firstkey[crypto_aead_chacha20poly1305_KEYBYTES]\n        = { 0x42, 0x90, 0xbc, 0xb1, 0x54, 0x17, 0x35, 0x31, 0xf3, 0x14, 0xaf,\n            0x57, 0xf3, 0xbe, 0x3b, 0x50, 0x06, 0xda, 0x37, 0x1e, 0xce, 0x27,\n            0x2a, 0xfa, 0x1b, 0x5d, 0xbd, 0xd1, 0x10, 0x0a, 0x10, 0x07 };\n    static const unsigned char m[MLEN]\n        = { 0x86, 0xd0, 0x99, 0x74, 0x84, 0x0b, 0xde, 0xd2, 0xa5, 0xca };\n    static const unsigned char nonce[crypto_aead_chacha20poly1305_NPUBBYTES]\n        = { 0xcd, 0x7c, 0xf6, 0x7b, 0xe3, 0x9c, 0x79, 0x4a };\n    static const unsigned char ad[ADLEN]\n        = { 0x87, 0xe2, 0x29, 0xd4, 0x50, 0x08, 0x45, 0xa0, 0x79, 0xc0 };\n    unsigned char *c = (unsigned char *) sodium_malloc(CLEN);\n    unsigned char *detached_c = (unsigned char *) sodium_malloc(MLEN);\n    unsigned char *mac = (unsigned char *) sodium_malloc(crypto_aead_chacha20poly1305_ABYTES);\n    unsigned char *m2 = (unsigned char *) sodium_malloc(MLEN);\n    unsigned long long found_clen;\n    unsigned long long found_maclen;\n    unsigned long long m2len;\n    size_t i;\n\n    crypto_aead_chacha20poly1305_encrypt(c, &found_clen, m, MLEN,\n                                         ad, ADLEN,\n                                         NULL, nonce, firstkey);\n    if (found_clen != CLEN) {\n        printf(\"found_clen is not properly set\\n\");\n    }\n    for (i = 0U; i < CLEN; ++i) {\n        printf(\",0x%02x\", (unsigned int) c[i]);\n        if (i % 8 == 7) {\n            printf(\"\\n\");\n        }\n    }\n    printf(\"\\n\");\n    crypto_aead_chacha20poly1305_encrypt_detached(detached_c,\n                                                  mac, &found_maclen,\n                                                  m, MLEN, ad, ADLEN,\n                                                  NULL, nonce, firstkey);\n    if (found_maclen != crypto_aead_chacha20poly1305_abytes()) {\n        printf(\"found_maclen is not properly set\\n\");\n    }\n    if (memcmp(detached_c, c, MLEN) != 0) {\n        printf(\"detached ciphertext is bogus\\n\");\n    }\n\n    if (crypto_aead_chacha20poly1305_decrypt(m2, &m2len, NULL, c, CLEN,\n                                             ad, ADLEN,\n                                             nonce, firstkey) != 0) {\n        printf(\"crypto_aead_chacha20poly1305_decrypt() failed\\n\");\n    }\n    if (m2len != MLEN) {\n        printf(\"m2len is not properly set\\n\");\n    }\n    if (memcmp(m, m2, MLEN) != 0) {\n        printf(\"m != m2\\n\");\n    }\n    memset(m2, 0, m2len);\n    assert(crypto_aead_chacha20poly1305_decrypt_detached(NULL, NULL,\n                                                         c, MLEN, mac,\n                                                         ad, ADLEN,\n                                                         nonce, firstkey) == 0);\n    if (crypto_aead_chacha20poly1305_decrypt_detached(m2, NULL,\n                                                      c, MLEN, mac,\n                                                      ad, ADLEN,\n                                                      nonce, firstkey) != 0) {\n        printf(\"crypto_aead_chacha20poly1305_decrypt_detached() failed\\n\");\n    }\n    if (memcmp(m, m2, MLEN) != 0) {\n        printf(\"detached m != m2\\n\");\n    }\n\n    for (i = 0U; i < CLEN; i++) {\n        c[i] ^= (i + 1U);\n        if (crypto_aead_chacha20poly1305_decrypt(m2, NULL, NULL, c, CLEN,\n                                                 ad, ADLEN, nonce, firstkey)\n            == 0 || memcmp(m, m2, MLEN) == 0) {\n            printf(\"message can be forged\\n\");\n        }\n        c[i] ^= (i + 1U);\n    }\n\n    crypto_aead_chacha20poly1305_encrypt(c, &found_clen, m, MLEN,\n                                         NULL, 0U, NULL, nonce, firstkey);\n    if (found_clen != CLEN) {\n        printf(\"found_clen is not properly set (adlen=0)\\n\");\n    }\n    for (i = 0U; i < CLEN; ++i) {\n        printf(\",0x%02x\", (unsigned int) c[i]);\n        if (i % 8 == 7) {\n            printf(\"\\n\");\n        }\n    }\n    printf(\"\\n\");\n\n    if (crypto_aead_chacha20poly1305_decrypt(m2, &m2len, NULL, c, CLEN,\n                                             NULL, 0U, nonce, firstkey) != 0) {\n        printf(\"crypto_aead_chacha20poly1305_decrypt() failed (adlen=0)\\n\");\n    }\n    if (m2len != MLEN) {\n        printf(\"m2len is not properly set (adlen=0)\\n\");\n    }\n    if (memcmp(m, m2, MLEN) != 0) {\n        printf(\"m != m2 (adlen=0)\\n\");\n    }\n    m2len = 1;\n    if (crypto_aead_chacha20poly1305_decrypt(\n            m2, &m2len, NULL, guard_page,\n            randombytes_uniform(crypto_aead_chacha20poly1305_ABYTES),\n            NULL, 0U, nonce, firstkey) != -1) {\n        printf(\"crypto_aead_chacha20poly1305_decrypt() worked with a short \"\n               \"ciphertext\\n\");\n    }\n    if (m2len != 0) {\n        printf(\"Message length should have been set to zero after a failure\\n\");\n    }\n    m2len = 1;\n    if (crypto_aead_chacha20poly1305_decrypt(m2, &m2len, NULL, c, 0U, NULL, 0U,\n                                             nonce, firstkey) != -1) {\n        printf(\"crypto_aead_chacha20poly1305_decrypt() worked with an empty \"\n               \"ciphertext\\n\");\n    }\n    if (m2len != 0) {\n        printf(\"Message length should have been set to zero after a failure\\n\");\n    }\n\n    memcpy(c, m, MLEN);\n    crypto_aead_chacha20poly1305_encrypt(c, &found_clen, c, MLEN,\n                                         NULL, 0U, NULL, nonce, firstkey);\n    if (found_clen != CLEN) {\n        printf(\"found_clen is not properly set (adlen=0)\\n\");\n    }\n    for (i = 0U; i < CLEN; ++i) {\n        printf(\",0x%02x\", (unsigned int) c[i]);\n        if (i % 8 == 7) {\n            printf(\"\\n\");\n        }\n    }\n    printf(\"\\n\");\n\n    if (crypto_aead_chacha20poly1305_decrypt(c, &m2len, NULL, c, CLEN,\n                                             NULL, 0U, nonce, firstkey) != 0) {\n        printf(\"crypto_aead_chacha20poly1305_decrypt() failed (adlen=0)\\n\");\n    }\n    if (m2len != MLEN) {\n        printf(\"m2len is not properly set (adlen=0)\\n\");\n    }\n    if (memcmp(m, c, MLEN) != 0) {\n        printf(\"m != c (adlen=0)\\n\");\n    }\n\n    sodium_free(c);\n    sodium_free(detached_c);\n    sodium_free(mac);\n    sodium_free(m2);\n\n    assert(crypto_aead_chacha20poly1305_keybytes() > 0U);\n    assert(crypto_aead_chacha20poly1305_npubbytes() > 0U);\n    assert(crypto_aead_chacha20poly1305_nsecbytes() == 0U);\n    assert(crypto_aead_chacha20poly1305_messagebytes_max() > 0U);\n    assert(crypto_aead_chacha20poly1305_messagebytes_max() == crypto_aead_chacha20poly1305_MESSAGEBYTES_MAX);\n    assert(crypto_aead_chacha20poly1305_keybytes() == crypto_aead_chacha20poly1305_KEYBYTES);\n    assert(crypto_aead_chacha20poly1305_nsecbytes() == crypto_aead_chacha20poly1305_NSECBYTES);\n    assert(crypto_aead_chacha20poly1305_npubbytes() == crypto_aead_chacha20poly1305_NPUBBYTES);\n    assert(crypto_aead_chacha20poly1305_abytes() == crypto_aead_chacha20poly1305_ABYTES);\n\n    return 0;\n}\n\nstatic int\ntv_ietf(void)\n{\n#undef  MLEN\n#define MLEN 114U\n#undef  ADLEN\n#define ADLEN 12U\n#undef  CLEN\n#define CLEN (MLEN + crypto_aead_chacha20poly1305_ietf_ABYTES)\n    static const unsigned char firstkey[crypto_aead_chacha20poly1305_ietf_KEYBYTES]\n        = {\n            0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87,\n            0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f,\n            0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97,\n            0x98, 0x99, 0x9a, 0x9b, 0x9c, 0x9d, 0x9e, 0x9f\n        };\n#undef  MESSAGE\n#define MESSAGE \"Ladies and Gentlemen of the class of '99: If I could offer you \" \\\n\"only one tip for the future, sunscreen would be it.\"\n    unsigned char *m = (unsigned char *) sodium_malloc(MLEN);\n    static const unsigned char nonce[crypto_aead_chacha20poly1305_ietf_NPUBBYTES]\n        = { 0x07, 0x00, 0x00, 0x00,\n            0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47 };\n    static const unsigned char ad[ADLEN]\n        = { 0x50, 0x51, 0x52, 0x53, 0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7 };\n    unsigned char *c = (unsigned char *) sodium_malloc(CLEN);\n    unsigned char *detached_c = (unsigned char *) sodium_malloc(MLEN);\n    unsigned char *mac = (unsigned char *) sodium_malloc(crypto_aead_chacha20poly1305_ietf_ABYTES);\n    unsigned char *m2 = (unsigned char *) sodium_malloc(MLEN);\n    unsigned long long found_clen;\n    unsigned long long found_maclen;\n    unsigned long long m2len;\n    size_t i;\n\n    assert(sizeof MESSAGE - 1U == MLEN);\n    memcpy(m, MESSAGE, MLEN);\n    crypto_aead_chacha20poly1305_ietf_encrypt(c, &found_clen, m, MLEN,\n                                              ad, ADLEN,\n                                              NULL, nonce, firstkey);\n    if (found_clen != MLEN + crypto_aead_chacha20poly1305_ietf_abytes()) {\n        printf(\"found_clen is not properly set\\n\");\n    }\n    for (i = 0U; i < CLEN; ++i) {\n        printf(\",0x%02x\", (unsigned int) c[i]);\n        if (i % 8 == 7) {\n            printf(\"\\n\");\n        }\n    }\n    printf(\"\\n\");\n    crypto_aead_chacha20poly1305_ietf_encrypt_detached(detached_c,\n                                                       mac, &found_maclen,\n                                                       m, MLEN,\n                                                       ad, ADLEN,\n                                                       NULL, nonce, firstkey);\n    if (found_maclen != crypto_aead_chacha20poly1305_ietf_abytes()) {\n        printf(\"found_maclen is not properly set\\n\");\n    }\n    if (memcmp(detached_c, c, MLEN) != 0) {\n        printf(\"detached ciphertext is bogus\\n\");\n    }\n\n    if (crypto_aead_chacha20poly1305_ietf_decrypt(m2, &m2len, NULL, c, CLEN, ad,\n                                                  ADLEN, nonce, firstkey) != 0) {\n        printf(\"crypto_aead_chacha20poly1305_ietf_decrypt() failed\\n\");\n    }\n    if (m2len != MLEN) {\n        printf(\"m2len is not properly set\\n\");\n    }\n    if (memcmp(m, m2, MLEN) != 0) {\n        printf(\"m != m2\\n\");\n    }\n    memset(m2, 0, m2len);\n    assert(crypto_aead_chacha20poly1305_ietf_decrypt_detached(NULL, NULL,\n                                                              c, MLEN, mac,\n                                                              ad, ADLEN,\n                                                              nonce, firstkey) == 0);\n    if (crypto_aead_chacha20poly1305_ietf_decrypt_detached(m2, NULL,\n                                                           c, MLEN, mac,\n                                                           ad, ADLEN,\n                                                           nonce, firstkey) != 0) {\n        printf(\"crypto_aead_chacha20poly1305_ietf_decrypt_detached() failed\\n\");\n    }\n    if (memcmp(m, m2, MLEN) != 0) {\n        printf(\"detached m != m2\\n\");\n    }\n\n    for (i = 0U; i < CLEN; i++) {\n        c[i] ^= (i + 1U);\n        if (crypto_aead_chacha20poly1305_ietf_decrypt(m2, NULL, NULL, c, CLEN,\n                                                      ad, ADLEN, nonce, firstkey)\n            == 0 || memcmp(m, m2, MLEN) == 0) {\n            printf(\"message can be forged\\n\");\n        }\n        c[i] ^= (i + 1U);\n    }\n    crypto_aead_chacha20poly1305_ietf_encrypt(c, &found_clen, m, MLEN,\n                                              NULL, 0U, NULL, nonce, firstkey);\n    if (found_clen != CLEN) {\n        printf(\"clen is not properly set (adlen=0)\\n\");\n    }\n    for (i = 0U; i < CLEN; ++i) {\n        printf(\",0x%02x\", (unsigned int) c[i]);\n        if (i % 8 == 7) {\n            printf(\"\\n\");\n        }\n    }\n    printf(\"\\n\");\n    if (crypto_aead_chacha20poly1305_ietf_decrypt(m2, &m2len, NULL, c, CLEN,\n                                                  NULL, 0U, nonce, firstkey) != 0) {\n        printf(\"crypto_aead_chacha20poly1305_ietf_decrypt() failed (adlen=0)\\n\");\n    }\n    if (m2len != MLEN) {\n        printf(\"m2len is not properly set (adlen=0)\\n\");\n    }\n    if (memcmp(m, m2, MLEN) != 0) {\n        printf(\"m != m2 (adlen=0)\\n\");\n    }\n    m2len = 1;\n    if (crypto_aead_chacha20poly1305_ietf_decrypt(\n            m2, &m2len, NULL, guard_page,\n            randombytes_uniform(crypto_aead_chacha20poly1305_ietf_ABYTES),\n            NULL, 0U, nonce, firstkey) != -1) {\n        printf(\"crypto_aead_chacha20poly1305_ietf_decrypt() worked with a short \"\n               \"ciphertext\\n\");\n    }\n    if (m2len != 0) {\n        printf(\"Message length should have been set to zero after a failure\\n\");\n    }\n    m2len = 1;\n    if (crypto_aead_chacha20poly1305_ietf_decrypt(m2, &m2len, NULL, c, 0U, NULL, 0U,\n                                                  nonce, firstkey) != -1) {\n        printf(\"crypto_aead_chacha20poly1305_ietf_decrypt() worked with an empty \"\n               \"ciphertext\\n\");\n    }\n    if (m2len != 0) {\n        printf(\"Message length should have been set to zero after a failure\\n\");\n    }\n\n    memcpy(c, m, MLEN);\n    crypto_aead_chacha20poly1305_ietf_encrypt(c, &found_clen, c, MLEN,\n                                              NULL, 0U, NULL, nonce, firstkey);\n    if (found_clen != CLEN) {\n        printf(\"clen is not properly set (adlen=0)\\n\");\n    }\n    for (i = 0U; i < CLEN; ++i) {\n        printf(\",0x%02x\", (unsigned int) c[i]);\n        if (i % 8 == 7) {\n            printf(\"\\n\");\n        }\n    }\n    printf(\"\\n\");\n\n    if (crypto_aead_chacha20poly1305_ietf_decrypt(c, &m2len, NULL, c, CLEN,\n                                                  NULL, 0U, nonce, firstkey) != 0) {\n        printf(\"crypto_aead_chacha20poly1305_ietf_decrypt() failed (adlen=0)\\n\");\n    }\n    if (m2len != MLEN) {\n        printf(\"m2len is not properly set (adlen=0)\\n\");\n    }\n    if (memcmp(m, c, MLEN) != 0) {\n        printf(\"m != c (adlen=0)\\n\");\n    }\n\n    sodium_free(c);\n    sodium_free(detached_c);\n    sodium_free(mac);\n    sodium_free(m2);\n    sodium_free(m);\n\n    assert(crypto_aead_chacha20poly1305_ietf_keybytes() > 0U);\n    assert(crypto_aead_chacha20poly1305_ietf_keybytes() == crypto_aead_chacha20poly1305_keybytes());\n    assert(crypto_aead_chacha20poly1305_ietf_npubbytes() > 0U);\n    assert(crypto_aead_chacha20poly1305_ietf_npubbytes() > crypto_aead_chacha20poly1305_npubbytes());\n    assert(crypto_aead_chacha20poly1305_ietf_nsecbytes() == 0U);\n    assert(crypto_aead_chacha20poly1305_ietf_nsecbytes() == crypto_aead_chacha20poly1305_nsecbytes());\n    assert(crypto_aead_chacha20poly1305_ietf_messagebytes_max() == crypto_aead_chacha20poly1305_ietf_MESSAGEBYTES_MAX);\n    assert(crypto_aead_chacha20poly1305_IETF_KEYBYTES  == crypto_aead_chacha20poly1305_ietf_KEYBYTES);\n    assert(crypto_aead_chacha20poly1305_IETF_NSECBYTES == crypto_aead_chacha20poly1305_ietf_NSECBYTES);\n    assert(crypto_aead_chacha20poly1305_IETF_NPUBBYTES == crypto_aead_chacha20poly1305_ietf_NPUBBYTES);\n    assert(crypto_aead_chacha20poly1305_IETF_ABYTES    == crypto_aead_chacha20poly1305_ietf_ABYTES);\n    assert(crypto_aead_chacha20poly1305_IETF_MESSAGEBYTES_MAX == crypto_aead_chacha20poly1305_ietf_MESSAGEBYTES_MAX);\n\n    return 0;\n}\n\nint\nmain(void)\n{\n    tv();\n    tv_ietf();\n\n    return 0;\n}\n"
  },
  {
    "path": "test/default/aead_chacha20poly1305.exp",
    "content": ",0xe3,0xe4,0x46,0xf7,0xed,0xe9,0xa1,0x9b\n,0x62,0xa4,0x67,0x7d,0xab,0xf4,0xe3,0xd2\n,0x4b,0x87,0x6b,0xb2,0x84,0x75,0x38,0x96\n,0xe1,0xd6\n,0xe3,0xe4,0x46,0xf7,0xed,0xe9,0xa1,0x9b\n,0x62,0xa4,0x69,0xe7,0x78,0x9b,0xcd,0x95\n,0x4e,0x65,0x8e,0xd3,0x84,0x23,0xe2,0x31\n,0x61,0xdc\n,0xe3,0xe4,0x46,0xf7,0xed,0xe9,0xa1,0x9b\n,0x62,0xa4,0x69,0xe7,0x78,0x9b,0xcd,0x95\n,0x4e,0x65,0x8e,0xd3,0x84,0x23,0xe2,0x31\n,0x61,0xdc\n,0xd3,0x1a,0x8d,0x34,0x64,0x8e,0x60,0xdb\n,0x7b,0x86,0xaf,0xbc,0x53,0xef,0x7e,0xc2\n,0xa4,0xad,0xed,0x51,0x29,0x6e,0x08,0xfe\n,0xa9,0xe2,0xb5,0xa7,0x36,0xee,0x62,0xd6\n,0x3d,0xbe,0xa4,0x5e,0x8c,0xa9,0x67,0x12\n,0x82,0xfa,0xfb,0x69,0xda,0x92,0x72,0x8b\n,0x1a,0x71,0xde,0x0a,0x9e,0x06,0x0b,0x29\n,0x05,0xd6,0xa5,0xb6,0x7e,0xcd,0x3b,0x36\n,0x92,0xdd,0xbd,0x7f,0x2d,0x77,0x8b,0x8c\n,0x98,0x03,0xae,0xe3,0x28,0x09,0x1b,0x58\n,0xfa,0xb3,0x24,0xe4,0xfa,0xd6,0x75,0x94\n,0x55,0x85,0x80,0x8b,0x48,0x31,0xd7,0xbc\n,0x3f,0xf4,0xde,0xf0,0x8e,0x4b,0x7a,0x9d\n,0xe5,0x76,0xd2,0x65,0x86,0xce,0xc6,0x4b\n,0x61,0x16,0x1a,0xe1,0x0b,0x59,0x4f,0x09\n,0xe2,0x6a,0x7e,0x90,0x2e,0xcb,0xd0,0x60\n,0x06,0x91\n,0xd3,0x1a,0x8d,0x34,0x64,0x8e,0x60,0xdb\n,0x7b,0x86,0xaf,0xbc,0x53,0xef,0x7e,0xc2\n,0xa4,0xad,0xed,0x51,0x29,0x6e,0x08,0xfe\n,0xa9,0xe2,0xb5,0xa7,0x36,0xee,0x62,0xd6\n,0x3d,0xbe,0xa4,0x5e,0x8c,0xa9,0x67,0x12\n,0x82,0xfa,0xfb,0x69,0xda,0x92,0x72,0x8b\n,0x1a,0x71,0xde,0x0a,0x9e,0x06,0x0b,0x29\n,0x05,0xd6,0xa5,0xb6,0x7e,0xcd,0x3b,0x36\n,0x92,0xdd,0xbd,0x7f,0x2d,0x77,0x8b,0x8c\n,0x98,0x03,0xae,0xe3,0x28,0x09,0x1b,0x58\n,0xfa,0xb3,0x24,0xe4,0xfa,0xd6,0x75,0x94\n,0x55,0x85,0x80,0x8b,0x48,0x31,0xd7,0xbc\n,0x3f,0xf4,0xde,0xf0,0x8e,0x4b,0x7a,0x9d\n,0xe5,0x76,0xd2,0x65,0x86,0xce,0xc6,0x4b\n,0x61,0x16,0x6a,0x23,0xa4,0x68,0x1f,0xd5\n,0x94,0x56,0xae,0xa1,0xd2,0x9f,0x82,0x47\n,0x72,0x16\n,0xd3,0x1a,0x8d,0x34,0x64,0x8e,0x60,0xdb\n,0x7b,0x86,0xaf,0xbc,0x53,0xef,0x7e,0xc2\n,0xa4,0xad,0xed,0x51,0x29,0x6e,0x08,0xfe\n,0xa9,0xe2,0xb5,0xa7,0x36,0xee,0x62,0xd6\n,0x3d,0xbe,0xa4,0x5e,0x8c,0xa9,0x67,0x12\n,0x82,0xfa,0xfb,0x69,0xda,0x92,0x72,0x8b\n,0x1a,0x71,0xde,0x0a,0x9e,0x06,0x0b,0x29\n,0x05,0xd6,0xa5,0xb6,0x7e,0xcd,0x3b,0x36\n,0x92,0xdd,0xbd,0x7f,0x2d,0x77,0x8b,0x8c\n,0x98,0x03,0xae,0xe3,0x28,0x09,0x1b,0x58\n,0xfa,0xb3,0x24,0xe4,0xfa,0xd6,0x75,0x94\n,0x55,0x85,0x80,0x8b,0x48,0x31,0xd7,0xbc\n,0x3f,0xf4,0xde,0xf0,0x8e,0x4b,0x7a,0x9d\n,0xe5,0x76,0xd2,0x65,0x86,0xce,0xc6,0x4b\n,0x61,0x16,0x6a,0x23,0xa4,0x68,0x1f,0xd5\n,0x94,0x56,0xae,0xa1,0xd2,0x9f,0x82,0x47\n,0x72,0x16\n"
  },
  {
    "path": "test/default/aead_chacha20poly13052.c",
    "content": "\n#define TEST_NAME \"aead_chacha20poly13052\"\n#include \"cmptest.h\"\n\nstatic struct {\n    const char *key_hex;\n    const char  nonce_hex[crypto_aead_chacha20poly1305_ietf_NPUBBYTES * 2 + 1];\n    const char *ad_hex;\n    const char *message_hex;\n    const char *detached_ciphertext_hex;\n    const char  mac_hex[crypto_aead_chacha20poly1305_ietf_ABYTES * 2 + 1];\n    const char *outcome;\n} tests[] = {\n    { \"808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9f\",\n      \"070000004041424344454647\", \"50515253c0c1c2c3c4c5c6c7\",\n      \"4c616469657320616e642047656e746c656d656e206f662074686520636c617373206f66\"\n      \"202739393a204966204920636f756c64206f6666657220796f75206f6e6c79206f6e6520\"\n      \"74697020666f7220746865206675747572652c2073756e73637265656e20776f756c6420\"\n      \"62652069742e\",\n      \"d31a8d34648e60db7b86afbc53ef7ec2a4aded51296e08fea9e2b5a736ee62d63dbea45e\"\n      \"8ca9671282fafb69da92728b1a71de0a9e060b2905d6a5b67ecd3b3692ddbd7f2d778b8c\"\n      \"9803aee328091b58fab324e4fad675945585808b4831d7bc3ff4def08e4b7a9de576d265\"\n      \"86cec64b6116\",\n      \"1ae10b594f09e26a7e902ecbd0600691\", \"valid\" },\n    { \"80ba3192c803ce965ea371d5ff073cf0f43b6a2ab576b208426e11409c09b9b0\",\n      \"4da5bf8dfd5852c1ea12379d\", \"\", \"\", \"\",\n      \"76acb342cf3166a5b63c0c0ea1383c8d\", \"valid\" },\n    { \"7a4cd759172e02eb204db2c3f5c746227df584fc1345196391dbb9577a250742\",\n      \"a92ef0ac991dd516a3c6f689\", \"bd506764f2d2c410\", \"\", \"\",\n      \"906fa6284b52f87b7359cbaa7563c709\", \"valid\" },\n    { \"cc56b680552eb75008f5484b4cb803fa5063ebd6eab91f6ab6aef4916a766273\",\n      \"99e23ec48985bccdeeab60f1\", \"\", \"2a\", \"3a\",\n      \"cac27dec0968801e9f6eded69d807522\", \"valid\" },\n    { \"46f0254965f769d52bdb4a70b443199f8ef207520d1220c55e4b70f0fda620ee\",\n      \"ab0dca716ee051d2782f4403\", \"91ca6c592cbcca53\", \"51\", \"c4\",\n      \"168310ca45b1f7c66cad4e99e43f72b9\", \"valid\" },\n    { \"2f7f7e4f592bb389194989743507bf3ee9cbde1786b6695fe6c025fd9ba4c100\",\n      \"461af122e9f2e0347e03f2db\", \"\", \"5c60\", \"4d13\",\n      \"91e8b61efb39c122195453077b22e5e2\", \"valid\" },\n    { \"c8833dce5ea9f248aa2030eacfe72bffe69a620caf793344e5718fe0d7ab1a58\",\n      \"61546ba5f1720590b6040ac6\", \"88364fc8060518bf\", \"ddf2\", \"b60d\",\n      \"ead0fd4697ec2e5558237719d02437a2\", \"valid\" },\n    { \"55568158d3a6483f1f7021eab69b703f614251cadc1af5d34a374fdbfc5adac7\",\n      \"3c4e654d663fa4596dc55bb7\", \"\", \"ab85e9c1571731\", \"5dfe3440dbb3c3\",\n      \"ed7a434e2602d394281e0afa9fb7aa42\", \"valid\" },\n    { \"e3c09e7fab1aefb516da6a33022a1dd4eb272c80d540c5da52a730f34d840d7f\",\n      \"58389375c69ee398de948396\", \"84e46be8c0919053\", \"4ee5cda20d4290\",\n      \"4bd47212941ce3\", \"185f1408ee7fbf18f5abad6e2253a1ba\", \"valid\" },\n    { \"51e4bf2bad92b7aff1a4bc05550ba81df4b96fabf41c12c7b00e60e48db7e152\",\n      \"4f07afedfdc3b6c2361823d3\", \"\", \"be3308f72a2c6aed\", \"8e9439a56eeec817\",\n      \"fbe8a6ed8fabb1937539dd6c00e90021\", \"valid\" },\n    { \"1131c1418577a054de7a4ac551950f1a053f9ae46e5b75fe4abd5608d7cddadd\",\n      \"b4ea666ee119563366484a78\", \"66c0ae70076cb14d\", \"a4c9c2801b71f7df\",\n      \"b9b910433af052b0\", \"4530f51aeee024e0a445a6328fa67a18\", \"valid\" },\n    { \"99b62bd5afbe3fb015bde93f0abf483957a1c3eb3ca59cb50b39f7f8a9cc51be\",\n      \"9a59fce26df0005e07538656\", \"\", \"42baae5978feaf5c368d14e0\",\n      \"ff7dc203b26c467a6b50db33\", \"578c0f2758c2e14e36d4fc106dcb29b4\", \"valid\" },\n    { \"85f35b6282cff440bc1020c8136ff27031110fa63ec16f1e825118b006b91257\",\n      \"58dbd4ad2c4ad35dd906e9ce\", \"a506e1a5c69093f9\",\n      \"fdc85b94a4b2a6b759b1a0da\", \"9f8816de0994e938d9e53f95\",\n      \"d086fc6c9d8fa915fd8423a7cf05072f\", \"valid\" },\n    { \"67119627bd988eda906219e08c0d0d779a07d208ce8a4fe0709af755eeec6dcb\",\n      \"68ab7fdbf61901dad461d23c\", \"\", \"51f8c1f731ea14acdb210a6d973e07\",\n      \"0b29638e1fbdd6df53970be2210042\", \"2a9134087d67a46e79178d0a93f5e1d2\",\n      \"valid\" },\n    { \"e6f1118d41e4b43fb58221b7ed79673834e0d8ac5c4fa60bbc8bc4893a58894d\",\n      \"d95b3243afaef714c5035b6a\", \"6453a53384632212\",\n      \"97469da667d6110f9cbda1d1a20673\", \"32db66c4a3819d81557455e5980fed\",\n      \"feae30dec94e6ad3a9eea06a0d703917\", \"valid\" },\n    { \"59d4eafb4de0cfc7d3db99a8f54b15d7b39f0acc8da69763b019c1699f87674a\",\n      \"2fcb1b38a99e71b84740ad9b\", \"\", \"549b365af913f3b081131ccb6b825588\",\n      \"e9110e9f56ab3ca483500ceabab67a13\", \"836ccabf15a6a22a51c1071cfa68fa0c\",\n      \"valid\" },\n    { \"b907a45075513fe8a8019edee3f2591487b2a030b03c6e1d771c862571d2ea1e\",\n      \"118a6964c2d3e380071f5266\", \"034585621af8d7ff\",\n      \"55a465644f5b650928cbee7c063214d6\", \"e4b113cb775945f3d3a8ae9ec141c00c\",\n      \"7c43f16ce096d0dc27c95849dc383b7d\", \"valid\" },\n    { \"3b2458d8176e1621c0cc24c0c0e24c1e80d72f7ee9149a4b166176629616d011\",\n      \"45aaa3e5d16d2d42dc03445d\", \"\", \"3ff1514b1c503915918f0c0c31094a6e1f\",\n      \"02cc3acb5ee1fcdd12a03bb857976474d3\", \"d83b7463a2c3800fe958c28eaa290813\",\n      \"valid\" },\n    { \"f60c6a1b625725f76c7037b48fe3577fa7f7b87b1bd5a982176d182306ffb870\",\n      \"f0384fb876121410633d993d\", \"9aaf299eeea78f79\",\n      \"63858ca3e2ce69887b578a3c167b421c9c\",\n      \"35766488d2bc7c2b8d17cbbb9abfad9e6d\", \"1f391e657b2738dda08448cba2811ceb\",\n      \"valid\" },\n    { \"0212a8de5007ed87b33f1a7090b6114f9e08cefd9607f2c276bdcfdbc5ce9cd7\",\n      \"e6b1adf2fd58a8762c65f31b\", \"\",\n      \"10f1ecf9c60584665d9ae5efe279e7f7377eea6916d2b111\",\n      \"42f26c56cb4be21d9d8d0c80fc99dde00d75f38074bfe764\",\n      \"54aa7e13d48fff7d7557039457040a3a\", \"valid\" },\n    { \"c5bc09565646e7edda954f1f739223dada20b95c44ab033d0fae4b0283d18be3\",\n      \"6b282ebecc541bcd7834ed55\", \"3e8bc5ade182ff08\",\n      \"9222f9018e54fd6de1200806a9ee8e4cc904d29f25cba193\",\n      \"123032437b4bfd6920e8f7e7e0087ae4889ebe7a0ad0e900\",\n      \"3cf68f179550da63d3b96c2d55411865\", \"valid\" },\n    { \"2eb51c469aa8eb9e6c54a8349bae50a20f0e382711bba1152c424f03b6671d71\",\n      \"04a9be03508a5f31371a6fd2\", \"\",\n      \"b053999286a2824f42cc8c203ab24e2c97a685adcc2ad32662558e55a5c729\",\n      \"45c7d6b53acad4abb68876a6e96a48fb59524d2c92c9d8a189c9fd2db91746\",\n      \"566d3ca10e311b695f3eae1551652493\", \"valid\" },\n    { \"7f5b74c07ed1b40fd14358fe2ff2a740c116c7706510e6a437f19ea49911cec4\",\n      \"470a339ecb3219b8b81a1f8b\", \"374618a06ea98a48\",\n      \"f45206abc25552b2abc9ab7fa243035fedaaddc3b2293956f1ea6e7156e7eb\",\n      \"46a80c4187024720084627580080dde5a3f4a11093a7076ed6f3d326bc7b70\",\n      \"534d4aa2835a52e72d14df0e4f47f25f\", \"valid\" },\n    { \"e1731d5854e1b70cb3ffe8b786a2b3ebf0994370954757b9dc8c7bc5354634a3\",\n      \"72cfd90ef3026ca22b7e6e6a\", \"\",\n      \"b9c554cbc36ac18ae897df7beecac1dbeb4eafa156bb60ce2e5d48f05715e678\",\n      \"ea29afa49d36e8760f5fe19723b9811ed5d519934a440f5081ac430b953b0e21\",\n      \"222541af46b86533c6b68d2ff108a7ea\", \"valid\" },\n    { \"27d860631b0485a410702fea61bc873f3442260caded4abde25b786a2d97f145\",\n      \"262880d475f3dac5340dd1b8\", \"2333e5ce0f93b059\",\n      \"6b2604996cd30c14a13a5257ed6cffd3bc5e29d6b97eb1799eb335e281ea451e\",\n      \"6dad637897544d8bf6be9507ed4d1bb2e954bc427e5de729daf50762846ff2f4\",\n      \"7b997d93c982189d7095dc794c746232\", \"valid\" },\n    { \"cf0d40a4644e5f51815165d5301b22631f4544c49a1878e3a0a5e8e1aae0f264\",\n      \"e74a515e7e2102b90bef55d2\", \"\",\n      \"973d0c753826bae466cf9abb3493152e9de7819e2bd0c71171346b4d2cebf8041aa3cedc\"\n      \"0dfd7b467e26228bc86c9a\",\n      \"fba78ae4f9d808a62e3da40be2cb7700c3613d9eb2c529c652e76a432c658d27095f0eb8\"\n      \"f940c324981ea935e507f9\",\n      \"8f046956db3a512908bd7afc8f2ab0a9\", \"valid\" },\n    { \"6cbfd71c645d184cf5d23c402bdb0d25ec54898c8a0273d42eb5be109fdcb2ac\",\n      \"d4d807341683825b31cd4d95\", \"b3e4064683b02d84\",\n      \"a98995504df16f748bfb7785ff91eeb3b660ea9ed3450c3d5e7b0e79ef653659a9978d75\"\n      \"542ef91c456762215640b9\",\n      \"a1ffed80761829ecce242e0e88b138049016bca018da2b6e19986b3e318cae8d806198fb\"\n      \"4c527cc39350ebddeac573\",\n      \"c4cbf0befda0b70242c640d7cd02d7a3\", \"valid\" },\n    { \"5b1d1035c0b17ee0b0444767f80a25b8c1b741f4b50a4d3052226baa1c6fb701\",\n      \"d61040a313ed492823cc065b\", \"\",\n      \"d096803181beef9e008ff85d5ddc38ddacf0f09ee5f7e07f1e4079cb64d0dc8f5e6711cd\"\n      \"4921a7887de76e2678fdc67618f1185586bfea9d4c685d50e4bb9a82\",\n      \"9a4ef22b181677b5755c08f747c0f8d8e8d4c18a9cc2405c12bb51bb1872c8e8b877678b\"\n      \"ec442cfcbb0ff464a64b74332cf072898c7e0eddf6232ea6e27efe50\",\n      \"9ff3427a0f32fa566d9ca0a78aefc013\", \"valid\" },\n    { \"97d635c4f47574d9998a90875da1d3a284b755b2d39297a5725235190e10a97e\",\n      \"d31c21aba175b70de4ebb19c\", \"7193f623663321a2\",\n      \"94ee166d6d6ecf8832437136b4ae805d428864359586d9193a25016293edba443c58e07e\"\n      \"7b7195ec5bd84582a9d56c8d4a108c7d7ce34e6c6f8ea1bec0567317\",\n      \"5fbbdecc34be201614f636031eeb42f1cace3c79a12cffd871ee8e73820c829749f1abb4\"\n      \"294367849fb6c2aa56bda8a3078f723d7c1c852024b017b58973fb1e\",\n      \"09263da7b4cb921452f97dca40f580ec\", \"valid\" },\n    { \"fe6e55bdaed1f7284ca5fc0f8c5f2b8df56dc0f49e8ca66a41995e783351f901\",\n      \"17c86a8abbb7e003acde2799\", \"\",\n      \"b429eb80fb8fe8baeda0c85b9c333458e7c2992e558475069d12d45c2221756412158803\"\n      \"2297eff56783742a5fc22d7410ffb29d66098661d76f126c3c27689e43b37267cac5a3a6\"\n      \"d3ab49e391da29cd3054a5692e2807e4c3ea46c8761d50f592\",\n      \"d0102f6c258bf49742cec34cf2d0fedf23d105fb4c84cf98515e1bc9a64f8ad5be8f0721\"\n      \"bde50645d00083c3a263a31053b760245f52ae2866a5ec83b19f61be1d30d5c5d9fecc4c\"\n      \"bbe08fd385813a2aa39a00ff9c10f7f23702add1e4b2ffa31c\",\n      \"41865fc71de12b19612127ce49993bb0\", \"valid\" },\n    { \"aabc063474e65c4c3e9bdc480dea97b45110c8618846ff6b15bdd2a4a5682c4e\",\n      \"46362f45d6379e63e5229460\", \"a11c40b603767330\",\n      \"ceb534ce50dc23ff638ace3ef63ab2cc2973eeada80785fc165d06c2f5100ff5e8ab2882\"\n      \"c475afcd05ccd49f2e7d8f55ef3a72e3dc51d6852b8e6b9e7aece57be6556b0b6d9413e3\"\n      \"3fc5fc24a9a205ad59574bb39d944a92dc47970d84a6ad3176\",\n      \"7545391b51de01d5c53dfaca777909063e58edee4bb1227e7110ac4d2620c2aec2f848f5\"\n      \"6deeb037a8dced75afa8a6c890e2dee42f950bb33d9e2424d08a505d899563973ed38870\"\n      \"f3de6ee2adc7fe072c366c14e2cf7ca62fb3d36bee11685461\",\n      \"b70d44ef8c66c5c7bbf10dcadd7facf6\", \"valid\" },\n    { \"7d00b48095adfa3272050607b264185002ba99957c498be022770f2ce2f3143c\",\n      \"87345f1055fd9e2102d50656\", \"02\", \"e5ccaa441bc814688f8f6e8f28b500b2\",\n      \"7e72f5a185af16a611921b438f749f0b\", \"1242c670732334029adfe1c5001651e4\",\n      \"valid\" },\n    { \"6432717f1db85e41ac7836bce25185a080d5762b9e2b18444b6ec72c3bd8e4dc\",\n      \"87a3163ec0598ad95b3aa713\", \"b648\", \"02cde168fba3f544bbd0332f7adeada8\",\n      \"85f29a719557cdd14d1f8fffab6d9e60\", \"732ca32becd515a1ed353f542e999858\",\n      \"valid\" },\n    { \"8e34cf73d245a1082a920b86364eb896c4946467bcb3d58929fcb36690e6394f\",\n      \"6f573aa86baa492ba46596df\", \"bd4cd02fc7502bbdbdf6c9a3cbe8f0\",\n      \"16ddd23ff53f3d23c06334487040eb47\", \"c1b295936d56fadac03e5f742bff73a1\",\n      \"39c457dbab66382babb3b55800cda5b8\", \"valid\" },\n    { \"cb5575f5c7c45c91cf320b139fb594237560d0a3e6f865a67d4f633f2c08f016\",\n      \"1a6518f02ede1da6809266d9\", \"89cce9fb47441d07e0245a66fe8b778b\",\n      \"623b7850c321e2cf0c6fbcc8dfd1aff2\", \"c84c9bb7c61c1bcb17772a1c500c5095\",\n      \"dbadf7a5138ca03459a2cd65831e092f\", \"valid\" },\n    { \"a5569e729a69b24ba6e0ff15c4627897436824c941e9d00b2e93fddc4ba77657\",\n      \"564dee49ab00d240fc1068c3\", \"d19f2d989095f7ab03a5fde84416e00c0e\",\n      \"87b3a4d7b26d8d3203a0de1d64ef82e3\", \"94bc80621ed1e71b1fd2b5c3a15e3568\",\n      \"333511861796978401598b963722f5b3\", \"valid\" },\n    { \"56207465b4e48e6d04630f4a42f35cfc163ab289c22a2b4784f6f9290330bee0\",\n      \"df8713e87ec3dbcfad14d53e\",\n      \"5e6470facd99c1d81e37cd44015fe19480a2a4d3352a4ff560c0640fdbda\",\n      \"e601b38557797da2f8a4106a089d1da6\", \"299b5d3f3d03c087209a16e285143111\",\n      \"4b454ed198de117e83ec49fa8d8508d6\", \"valid\" },\n    { \"3937986af86dafc1ba0c4672d8abc46c207062682d9c264ab06d6c5807205130\",\n      \"8df4b15a888c33286a7b7651\",\n      \"ba446f6f9a0ced22450feb10737d9007fd69abc19b1d4d9049a5551e86ec2b37\",\n      \"dc9e9eaf11e314182df6a4eba17aec9c\", \"605bbf90aeb974f6602bc778056f0dca\",\n      \"38ea23d99054b46b42ffe004129d2204\", \"valid\" },\n    { \"36372abcdb78e0279646ac3d176b9674e9154eecf0d5469c651ec7e16b4c1199\",\n      \"be40e5f1a11817a0a8fa8949\",\n      \"d41a828d5e71829247021905402ea257dccbc3b80fcd5675056b68bb59e62e8873\",\n      \"81ce84ede9b35859cc8c49a8f6be7dc6\", \"7b7ce0d824809a70de32562ccf2c2bbd\",\n      \"15d44a00ce0d19b4231f921e22bc0a43\", \"valid\" },\n    { \"9f1479ed097d7fe529c11f2f5add9aaff4a1ca0b68997a2cb7f79749bd90aaf4\",\n      \"84c87dae4eee27730ec35d12\",\n      \"3f2dd49bbf09d69a78a3d80ea2566614fc379474196c1aae84583da73d7ff85c6f42ca42\"\n      \"056a9792cc1b9fb3c7d261\",\n      \"a66747c89e857af3a18e2c79500087ed\", \"ca82bff3e2f310ccc976672c4415e69b\",\n      \"57638c62a5d85ded774f913c813ea032\", \"valid\" },\n    { \"808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9f\",\n      \"000000000000000001ee3200\", \"00000000000000000000000000000000\",\n      \"256d40888094178355d304846443fee8df99470303fb3b7b80e030beebd329be\",\n      \"0000000000000000000000000000000000000000000000000000000000000000\",\n      \"e6d3d7324a1cbba777bbb0ecdda37807\", \"valid\" },\n    { \"808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9f\",\n      \"000000000000000001ee3200\", \"00000000000000000000000000000000\",\n      \"256d40888094178355d304846443fee8df99470303fb3b7b80e030beebd329bee3bcdb5b\"\n      \"1edefcfe8bcda1b6a15c8c2b0869ffd2ec5e26e553b7b227fe87fdbd\",\n      \"000000000000000000000000000000000000000000000000000000000000000000000000\"\n      \"00000000000000000000000000000000000000000000000000000000\",\n      \"062de6795f274fd2a305d76980bc9cce\", \"valid\" },\n    { \"808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9f\",\n      \"000000000000000001ee3200\", \"00000000000000000000000000000000\",\n      \"256d40888094178355d304846443fee8df99470303fb3b7b80e030beebd329bee3bcdb5b\"\n      \"1edefcfe8bcda1b6a15c8c2b0869ffd2ec5e26e553b7b227fe87fdbd7ada44424269bffa\"\n      \"5527f270acf68502b74c5ae2e60c0580981a4938459392c49bb2f284b646efc7f3f0b136\"\n      \"1dc348ed77d30bc57692ed38fbac0188380488c7\",\n      \"000000000000000000000000000000000000000000000000000000000000000000000000\"\n      \"000000000000000000000000000000000000000000000000000000000000000000000000\"\n      \"000000000000000000000000000000000000000000000000000000000000000000000000\"\n      \"0000000000000000000000000000000000000000\",\n      \"d8b47902baaeafb34203051529af282e\", \"valid\" },\n    { \"808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9f\",\n      \"000000000000000001ee3200\", \"ffffffffffffffffffffffffffffffff\",\n      \"da92bf777f6be87caa2cfb7b9bbc01172066b8fcfc04c4847f1fcf41142cd641\",\n      \"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\",\n      \"b3891c849cb52c27747edfcf31213bb6\", \"valid\" },\n    { \"808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9f\",\n      \"000000000000000001ee3200\", \"ffffffffffffffffffffffffffffffff\",\n      \"da92bf777f6be87caa2cfb7b9bbc01172066b8fcfc04c4847f1fcf41142cd6411c4324a4\"\n      \"e121030174325e495ea373d4f796002d13a1d91aac484dd801780242\",\n      \"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\"\n      \"ffffffffffffffffffffffffffffffffffffffffffffffffffffffff\",\n      \"f0c12d26ef03029b62c008da27c5dc68\", \"valid\" },\n    { \"808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9f\",\n      \"000000000000000001ee3200\", \"ffffffffffffffffffffffffffffffff\",\n      \"da92bf777f6be87caa2cfb7b9bbc01172066b8fcfc04c4847f1fcf41142cd6411c4324a4\"\n      \"e121030174325e495ea373d4f796002d13a1d91aac484dd8017802428525bbbdbd964005\"\n      \"aad80d8f53097afd48b3a51d19f3fa7f67e5b6c7ba6c6d3b644d0d7b49b910380c0f4ec9\"\n      \"e23cb712882cf43a896d12c70453fe77c7fb7738\",\n      \"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\"\n      \"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\"\n      \"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\"\n      \"ffffffffffffffffffffffffffffffffffffffff\",\n      \"ee65783001c25691fa28d0f5f1c1d762\", \"valid\" },\n    { \"808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9f\",\n      \"000000000000000001ee3200\", \"00000080000000800000008000000080\",\n      \"256d40088094170355d304046443fe68df99478303fb3bfb80e0303eebd3293e\",\n      \"0000008000000080000000800000008000000080000000800000008000000080\",\n      \"79ba7a29f5a7bb75797af87a610129a4\", \"valid\" },\n    { \"808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9f\",\n      \"000000000000000001ee3200\", \"00000080000000800000008000000080\",\n      \"256d40088094170355d304046443fe68df99478303fb3bfb80e0303eebd3293ee3bcdbdb\"\n      \"1edefc7e8bcda136a15c8cab0869ff52ec5e266553b7b2a7fe87fd3d\",\n      \"000000800000008000000080000000800000008000000080000000800000008000000080\"\n      \"00000080000000800000008000000080000000800000008000000080\",\n      \"36b1743819e1b9ba1551e8ed922a959a\", \"valid\" },\n    { \"808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9f\",\n      \"000000000000000001ee3200\", \"00000080000000800000008000000080\",\n      \"256d40088094170355d304046443fe68df99478303fb3bfb80e0303eebd3293ee3bcdbdb\"\n      \"1edefc7e8bcda136a15c8cab0869ff52ec5e266553b7b2a7fe87fd3d7ada44c24269bf7a\"\n      \"5527f2f0acf68582b74c5a62e60c0500981a49b8459392449bb2f204b646ef47f3f0b1b6\"\n      \"1dc3486d77d30b457692edb8fbac010838048847\",\n      \"000000800000008000000080000000800000008000000080000000800000008000000080\"\n      \"000000800000008000000080000000800000008000000080000000800000008000000080\"\n      \"000000800000008000000080000000800000008000000080000000800000008000000080\"\n      \"0000008000000080000000800000008000000080\",\n      \"feac4955554e806f3a1902e24432c08a\", \"valid\" },\n    { \"808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9f\",\n      \"000000000000000001ee3200\", \"ffffff7fffffff7fffffff7fffffff7f\",\n      \"da92bff77f6be8fcaa2cfbfb9bbc01972066b87cfc04c4047f1fcfc1142cd6c1\",\n      \"ffffff7fffffff7fffffff7fffffff7fffffff7fffffff7fffffff7fffffff7f\",\n      \"20a3798df1292c5972bf9741aec38a19\", \"valid\" },\n    { \"808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9f\",\n      \"000000000000000001ee3200\", \"ffffff7fffffff7fffffff7fffffff7f\",\n      \"da92bff77f6be8fcaa2cfbfb9bbc01972066b87cfc04c4047f1fcfc1142cd6c11c432424\"\n      \"e121038174325ec95ea37354f79600ad13a1d99aac484d58017802c2\",\n      \"ffffff7fffffff7fffffff7fffffff7fffffff7fffffff7fffffff7fffffff7fffffff7f\"\n      \"ffffff7fffffff7fffffff7fffffff7fffffff7fffffff7fffffff7f\",\n      \"c03d9f67354a97b2f074f7551557e49c\", \"valid\" },\n    { \"808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9f\",\n      \"000000000000000001ee3200\", \"ffffff7fffffff7fffffff7fffffff7f\",\n      \"da92bff77f6be8fcaa2cfbfb9bbc01972066b87cfc04c4047f1fcfc1142cd6c11c432424\"\n      \"e121038174325ec95ea37354f79600ad13a1d99aac484d58017802c28525bb3dbd964085\"\n      \"aad80d0f53097a7d48b3a59d19f3faff67e5b647ba6c6dbb644d0dfb49b910b80c0f4e49\"\n      \"e23cb792882cf4ba896d12470453fef7c7fb77b8\",\n      \"ffffff7fffffff7fffffff7fffffff7fffffff7fffffff7fffffff7fffffff7fffffff7f\"\n      \"ffffff7fffffff7fffffff7fffffff7fffffff7fffffff7fffffff7fffffff7fffffff7f\"\n      \"ffffff7fffffff7fffffff7fffffff7fffffff7fffffff7fffffff7fffffff7fffffff7f\"\n      \"ffffff7fffffff7fffffff7fffffff7fffffff7f\",\n      \"c86da8dd652286d50213d328d63e4006\", \"valid\" },\n    { \"808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9f\",\n      \"000000000000000001ee3200\", \"7fffffff7fffffff7fffffff7fffffff\",\n      \"5a92bf77ff6be87c2a2cfb7b1bbc0117a066b8fc7c04c484ff1fcf41942cd641\",\n      \"7fffffff7fffffff7fffffff7fffffff7fffffff7fffffff7fffffff7fffffff\",\n      \"bede9083ceb36ddfe5fa811f95471c67\", \"valid\" },\n    { \"808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9f\",\n      \"000000000000000001ee3200\", \"7fffffff7fffffff7fffffff7fffffff\",\n      \"5a92bf77ff6be87c2a2cfb7b1bbc0117a066b8fc7c04c484ff1fcf41942cd6419c4324a4\"\n      \"61210301f4325e49dea373d47796002d93a1d91a2c484dd881780242\",\n      \"7fffffff7fffffff7fffffff7fffffff7fffffff7fffffff7fffffff7fffffff7fffffff\"\n      \"7fffffff7fffffff7fffffff7fffffff7fffffff7fffffff7fffffff\",\n      \"300874bb0692b689dead9ae15b067390\", \"valid\" },\n    { \"808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9f\",\n      \"000000000000000001ee3200\", \"7fffffff7fffffff7fffffff7fffffff\",\n      \"5a92bf77ff6be87c2a2cfb7b1bbc0117a066b8fc7c04c484ff1fcf41942cd6419c4324a4\"\n      \"61210301f4325e49dea373d47796002d93a1d91a2c484dd8817802420525bbbd3d964005\"\n      \"2ad80d8fd3097afdc8b3a51d99f3fa7fe7e5b6c73a6c6d3be44d0d7bc9b910388c0f4ec9\"\n      \"623cb712082cf43a096d12c78453fe7747fb7738\",\n      \"7fffffff7fffffff7fffffff7fffffff7fffffff7fffffff7fffffff7fffffff7fffffff\"\n      \"7fffffff7fffffff7fffffff7fffffff7fffffff7fffffff7fffffff7fffffff7fffffff\"\n      \"7fffffff7fffffff7fffffff7fffffff7fffffff7fffffff7fffffff7fffffff7fffffff\"\n      \"7fffffff7fffffff7fffffff7fffffff7fffffff\",\n      \"99cad85f45ca40942d0d4d5e950ade22\", \"valid\" },\n    { \"808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9f\",\n      \"000000000000000001ee3200\", \"00000000ffffffff00000000ffffffff\",\n      \"256d40887f6be87c55d304849bbc0117df994703fc04c48480e030be142cd641\",\n      \"00000000ffffffff00000000ffffffff00000000ffffffff00000000ffffffff\",\n      \"8bbe145272e7c2d9a1891a3ab0983d9d\", \"valid\" },\n    { \"808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9f\",\n      \"000000000000000001ee3200\", \"00000000ffffffff00000000ffffffff\",\n      \"256d40887f6be87c55d304849bbc0117df994703fc04c48480e030be142cd641e3bcdb5b\"\n      \"e12103018bcda1b65ea373d40869ffd213a1d91a53b7b22701780242\",\n      \"00000000ffffffff00000000ffffffff00000000ffffffff00000000ffffffff00000000\"\n      \"ffffffff00000000ffffffff00000000ffffffff00000000ffffffff\",\n      \"3b41861913a8f6de7f61e225631bc382\", \"valid\" },\n    { \"808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9f\",\n      \"000000000000000001ee3200\", \"00000000ffffffff00000000ffffffff\",\n      \"256d40887f6be87c55d304849bbc0117df994703fc04c48480e030be142cd641e3bcdb5b\"\n      \"e12103018bcda1b65ea373d40869ffd213a1d91a53b7b227017802427ada4442bd964005\"\n      \"5527f27053097afdb74c5ae219f3fa7f981a4938ba6c6d3b9bb2f28449b91038f3f0b136\"\n      \"e23cb71277d30bc5896d12c7fbac0188c7fb7738\",\n      \"00000000ffffffff00000000ffffffff00000000ffffffff00000000ffffffff00000000\"\n      \"ffffffff00000000ffffffff00000000ffffffff00000000ffffffff00000000ffffffff\"\n      \"00000000ffffffff00000000ffffffff00000000ffffffff00000000ffffffff00000000\"\n      \"ffffffff00000000ffffffff00000000ffffffff\",\n      \"8428bcf023ec6bf31fd9efb203ff0871\", \"valid\" },\n    { \"808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9f\",\n      \"000000000000000001ee3200\", \"ffffffff00000000ffffffff00000000\",\n      \"da92bf7780941783aa2cfb7b6443fee82066b8fc03fb3b7b7f1fcf41ebd329be\",\n      \"ffffffff00000000ffffffff00000000ffffffff00000000ffffffff00000000\",\n      \"139fdf6474ea24f549b075825f2c7620\", \"valid\" },\n    { \"808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9f\",\n      \"000000000000000001ee3200\", \"ffffffff00000000ffffffff00000000\",\n      \"da92bf7780941783aa2cfb7b6443fee82066b8fc03fb3b7b7f1fcf41ebd329be1c4324a4\"\n      \"1edefcfe74325e49a15c8c2bf796002dec5e26e5ac484dd8fe87fdbd\",\n      \"ffffffff00000000ffffffff00000000ffffffff00000000ffffffff00000000ffffffff\"\n      \"00000000ffffffff00000000ffffffff00000000ffffffff00000000\",\n      \"bbad8d863b835a8e8664fd1d4566b6b4\", \"valid\" },\n    { \"808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9f\",\n      \"000000000000000001ee3200\", \"ffffffff00000000ffffffff00000000\",\n      \"da92bf7780941783aa2cfb7b6443fee82066b8fc03fb3b7b7f1fcf41ebd329be1c4324a4\"\n      \"1edefcfe74325e49a15c8c2bf796002dec5e26e5ac484dd8fe87fdbd8525bbbd4269bffa\"\n      \"aad80d8facf6850248b3a51de60c058067e5b6c7459392c4644d0d7bb646efc70c0f4ec9\"\n      \"1dc348ed882cf43a7692ed380453fe77380488c7\",\n      \"ffffffff00000000ffffffff00000000ffffffff00000000ffffffff00000000ffffffff\"\n      \"00000000ffffffff00000000ffffffff00000000ffffffff00000000ffffffff00000000\"\n      \"ffffffff00000000ffffffff00000000ffffffff00000000ffffffff00000000ffffffff\"\n      \"00000000ffffffff00000000ffffffff00000000\",\n      \"42f2354297849a511d53e5571772f71f\", \"valid\" },\n    { \"00112233445566778899aabbccddeeff00112233445566778899aabbccddeeff\",\n      \"000102030405060708090a0b\", \"616164\", \"\", \"\",\n      \"a2e3fdf9fba6861b5ad2607f40b7f447\", \"invalid\" },\n    { \"00112233445566778899aabbccddeeff00112233445566778899aabbccddeeff\",\n      \"000102030405060708090a0b\", \"616164\", \"\", \"\",\n      \"a1e3fdf9fba6861b5ad2607f40b7f447\", \"invalid\" },\n    { \"00112233445566778899aabbccddeeff00112233445566778899aabbccddeeff\",\n      \"000102030405060708090a0b\", \"616164\", \"\", \"\",\n      \"23e3fdf9fba6861b5ad2607f40b7f447\", \"invalid\" },\n    { \"00112233445566778899aabbccddeeff00112233445566778899aabbccddeeff\",\n      \"000102030405060708090a0b\", \"616164\", \"\", \"\",\n      \"a3e2fdf9fba6861b5ad2607f40b7f447\", \"invalid\" },\n    { \"00112233445566778899aabbccddeeff00112233445566778899aabbccddeeff\",\n      \"000102030405060708090a0b\", \"616164\", \"\", \"\",\n      \"a3e3fd79fba6861b5ad2607f40b7f447\", \"invalid\" },\n    { \"00112233445566778899aabbccddeeff00112233445566778899aabbccddeeff\",\n      \"000102030405060708090a0b\", \"616164\", \"\", \"\",\n      \"a3e3fdf9faa6861b5ad2607f40b7f447\", \"invalid\" },\n    { \"00112233445566778899aabbccddeeff00112233445566778899aabbccddeeff\",\n      \"000102030405060708090a0b\", \"616164\", \"\", \"\",\n      \"a3e3fdf9f9a6861b5ad2607f40b7f447\", \"invalid\" },\n    { \"00112233445566778899aabbccddeeff00112233445566778899aabbccddeeff\",\n      \"000102030405060708090a0b\", \"616164\", \"\", \"\",\n      \"a3e3fdf9fba6869b5ad2607f40b7f447\", \"invalid\" },\n    { \"00112233445566778899aabbccddeeff00112233445566778899aabbccddeeff\",\n      \"000102030405060708090a0b\", \"616164\", \"\", \"\",\n      \"a3e3fdf9fba6861b5bd2607f40b7f447\", \"invalid\" },\n    { \"00112233445566778899aabbccddeeff00112233445566778899aabbccddeeff\",\n      \"000102030405060708090a0b\", \"616164\", \"\", \"\",\n      \"a3e3fdf9fba6861b5af2607f40b7f447\", \"invalid\" },\n    { \"00112233445566778899aabbccddeeff00112233445566778899aabbccddeeff\",\n      \"000102030405060708090a0b\", \"616164\", \"\", \"\",\n      \"a3e3fdf9fba6861b5ad2617f40b7f447\", \"invalid\" },\n    { \"00112233445566778899aabbccddeeff00112233445566778899aabbccddeeff\",\n      \"000102030405060708090a0b\", \"616164\", \"\", \"\",\n      \"a3e3fdf9fba6861b5ad2607f41b7f447\", \"invalid\" },\n    { \"00112233445566778899aabbccddeeff00112233445566778899aabbccddeeff\",\n      \"000102030405060708090a0b\", \"616164\", \"\", \"\",\n      \"a3e3fdf9fba6861b5ad2607f42b7f447\", \"invalid\" },\n    { \"00112233445566778899aabbccddeeff00112233445566778899aabbccddeeff\",\n      \"000102030405060708090a0b\", \"616164\", \"\", \"\",\n      \"a3e3fdf9fba6861b5ad2607f40b7f446\", \"invalid\" },\n    { \"00112233445566778899aabbccddeeff00112233445566778899aabbccddeeff\",\n      \"000102030405060708090a0b\", \"616164\", \"\", \"\",\n      \"a3e3fdf9fba6861b5ad2607f40b7f445\", \"invalid\" },\n    { \"00112233445566778899aabbccddeeff00112233445566778899aabbccddeeff\",\n      \"000102030405060708090a0b\", \"616164\", \"\", \"\",\n      \"a3e3fdf9fba6861b5ad2607f40b7f407\", \"invalid\" },\n    { \"00112233445566778899aabbccddeeff00112233445566778899aabbccddeeff\",\n      \"000102030405060708090a0b\", \"616164\", \"\", \"\",\n      \"a3e3fdf9fba6861b5ad2607f40b7f4c7\", \"invalid\" },\n    { \"00112233445566778899aabbccddeeff00112233445566778899aabbccddeeff\",\n      \"000102030405060708090a0b\", \"616164\", \"\", \"\",\n      \"a3e3fdf9fba6869b5ad2607f40b7f4c7\", \"invalid\" },\n    { \"00112233445566778899aabbccddeeff00112233445566778899aabbccddeeff\",\n      \"000102030405060708090a0b\", \"616164\", \"\", \"\",\n      \"00000000000000000000000000000000\", \"invalid\" },\n    { \"00112233445566778899aabbccddeeff00112233445566778899aabbccddeeff\",\n      \"000102030405060708090a0b\", \"616164\", \"\", \"\",\n      \"ffffffffffffffffffffffffffffffff\", \"invalid\" },\n    { \"00112233445566778899aabbccddeeff00112233445566778899aabbccddeeff\",\n      \"000102030405060708090a0b\", \"616164\", \"00000000000000000000000000000000\",\n      \"2cf8ae525fc86025268a4e1d88bead19\", \"26da374f17b7f1b23844a5490bfc4001\",\n      \"invalid\" },\n    { \"00112233445566778899aabbccddeeff00112233445566778899aabbccddeeff\",\n      \"000102030405060708090a0b\", \"616164\", \"00000000000000000000000000000000\",\n      \"2cf8ae525fc86025268a4e1d88bead19\", \"25da374f17b7f1b23844a5490bfc4001\",\n      \"invalid\" },\n    { \"00112233445566778899aabbccddeeff00112233445566778899aabbccddeeff\",\n      \"000102030405060708090a0b\", \"616164\", \"00000000000000000000000000000000\",\n      \"2cf8ae525fc86025268a4e1d88bead19\", \"a7da374f17b7f1b23844a5490bfc4001\",\n      \"invalid\" },\n    { \"00112233445566778899aabbccddeeff00112233445566778899aabbccddeeff\",\n      \"000102030405060708090a0b\", \"616164\", \"00000000000000000000000000000000\",\n      \"2cf8ae525fc86025268a4e1d88bead19\", \"27db374f17b7f1b23844a5490bfc4001\",\n      \"invalid\" },\n    { \"00112233445566778899aabbccddeeff00112233445566778899aabbccddeeff\",\n      \"000102030405060708090a0b\", \"616164\", \"00000000000000000000000000000000\",\n      \"2cf8ae525fc86025268a4e1d88bead19\", \"27da37cf17b7f1b23844a5490bfc4001\",\n      \"invalid\" },\n    { \"00112233445566778899aabbccddeeff00112233445566778899aabbccddeeff\",\n      \"000102030405060708090a0b\", \"616164\", \"00000000000000000000000000000000\",\n      \"2cf8ae525fc86025268a4e1d88bead19\", \"27da374f16b7f1b23844a5490bfc4001\",\n      \"invalid\" },\n    { \"00112233445566778899aabbccddeeff00112233445566778899aabbccddeeff\",\n      \"000102030405060708090a0b\", \"616164\", \"00000000000000000000000000000000\",\n      \"2cf8ae525fc86025268a4e1d88bead19\", \"27da374f15b7f1b23844a5490bfc4001\",\n      \"invalid\" },\n    { \"00112233445566778899aabbccddeeff00112233445566778899aabbccddeeff\",\n      \"000102030405060708090a0b\", \"616164\", \"00000000000000000000000000000000\",\n      \"2cf8ae525fc86025268a4e1d88bead19\", \"27da374f17b7f1323844a5490bfc4001\",\n      \"invalid\" },\n    { \"00112233445566778899aabbccddeeff00112233445566778899aabbccddeeff\",\n      \"000102030405060708090a0b\", \"616164\", \"00000000000000000000000000000000\",\n      \"2cf8ae525fc86025268a4e1d88bead19\", \"27da374f17b7f1b23944a5490bfc4001\",\n      \"invalid\" },\n    { \"00112233445566778899aabbccddeeff00112233445566778899aabbccddeeff\",\n      \"000102030405060708090a0b\", \"616164\", \"00000000000000000000000000000000\",\n      \"2cf8ae525fc86025268a4e1d88bead19\", \"27da374f17b7f1b23864a5490bfc4001\",\n      \"invalid\" },\n    { \"00112233445566778899aabbccddeeff00112233445566778899aabbccddeeff\",\n      \"000102030405060708090a0b\", \"616164\", \"00000000000000000000000000000000\",\n      \"2cf8ae525fc86025268a4e1d88bead19\", \"27da374f17b7f1b23844a4490bfc4001\",\n      \"invalid\" },\n    { \"00112233445566778899aabbccddeeff00112233445566778899aabbccddeeff\",\n      \"000102030405060708090a0b\", \"616164\", \"00000000000000000000000000000000\",\n      \"2cf8ae525fc86025268a4e1d88bead19\", \"27da374f17b7f1b23844a5490afc4001\",\n      \"invalid\" },\n    { \"00112233445566778899aabbccddeeff00112233445566778899aabbccddeeff\",\n      \"000102030405060708090a0b\", \"616164\", \"00000000000000000000000000000000\",\n      \"2cf8ae525fc86025268a4e1d88bead19\", \"27da374f17b7f1b23844a54909fc4001\",\n      \"invalid\" },\n    { \"00112233445566778899aabbccddeeff00112233445566778899aabbccddeeff\",\n      \"000102030405060708090a0b\", \"616164\", \"00000000000000000000000000000000\",\n      \"2cf8ae525fc86025268a4e1d88bead19\", \"27da374f17b7f1b23844a5490bfc4000\",\n      \"invalid\" },\n    { \"00112233445566778899aabbccddeeff00112233445566778899aabbccddeeff\",\n      \"000102030405060708090a0b\", \"616164\", \"00000000000000000000000000000000\",\n      \"2cf8ae525fc86025268a4e1d88bead19\", \"27da374f17b7f1b23844a5490bfc4003\",\n      \"invalid\" },\n    { \"00112233445566778899aabbccddeeff00112233445566778899aabbccddeeff\",\n      \"000102030405060708090a0b\", \"616164\", \"00000000000000000000000000000000\",\n      \"2cf8ae525fc86025268a4e1d88bead19\", \"27da374f17b7f1b23844a5490bfc4041\",\n      \"invalid\" },\n    { \"00112233445566778899aabbccddeeff00112233445566778899aabbccddeeff\",\n      \"000102030405060708090a0b\", \"616164\", \"00000000000000000000000000000000\",\n      \"2cf8ae525fc86025268a4e1d88bead19\", \"27da374f17b7f1b23844a5490bfc4081\",\n      \"invalid\" },\n    { \"00112233445566778899aabbccddeeff00112233445566778899aabbccddeeff\",\n      \"000102030405060708090a0b\", \"616164\", \"00000000000000000000000000000000\",\n      \"2cf8ae525fc86025268a4e1d88bead19\", \"27da374f17b7f1323844a5490bfc4081\",\n      \"invalid\" },\n    { \"00112233445566778899aabbccddeeff00112233445566778899aabbccddeeff\",\n      \"000102030405060708090a0b\", \"616164\", \"00000000000000000000000000000000\",\n      \"2cf8ae525fc86025268a4e1d88bead19\", \"00000000000000000000000000000000\",\n      \"invalid\" },\n    { \"00112233445566778899aabbccddeeff00112233445566778899aabbccddeeff\",\n      \"000102030405060708090a0b\", \"616164\", \"00000000000000000000000000000000\",\n      \"2cf8ae525fc86025268a4e1d88bead19\", \"ffffffffffffffffffffffffffffffff\",\n      \"invalid\" },\n    { \"3030303030303030303030303030303030303030303030303030303030303030\",\n      \"30303030303030300002506e\",\n      \"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\"\n      \"ffffffffffffffffffffffffffffffffffffffffffffffffffffffff\",\n      \"d4500bf009493551c380adf52c573a69df7e8b762463330facc16a5726be7190c63c5a1c\"\n      \"926584a096756828dcdc64acdf963d931bf1dae238f3f157224ac4b542d785b0dd84db6b\"\n      \"e3bc5a3663e84149ffbed09e54f78f16a8223b24cb019f58b21b0e551e7aa07327629551\"\n      \"376ccbc3937671a0629bd95c9915c78555771e7a\",\n      \"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\"\n      \"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\"\n      \"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\"\n      \"ffffffffffffffffffffffffffffffffffffffff\",\n      \"0b300d8da56c2185755279553c4c82ca\", \"valid\" },\n    { \"3030303030303030303030303030303030303030303030303030303030303030\",\n      \"3030303030303030000318a5\",\n      \"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\"\n      \"ffffffffffffffffffffffffffffffffffffffffffffffffffffffff\",\n      \"7de87f6729945275d0655da4c7fde4569e16f111b5eb26c22d859e3ff822eced3a6dd9a6\"\n      \"0f22957f7b7c857e8822eb9fe0b8d7022141f2d0b48f4b5612d322a88dd0fe0b4d917932\"\n      \"4f7c6c9e990efbd80e5ed6775826498b1efe0f71a0f3ec5b29cb28c2540a7dcd51b7daae\"\n      \"e0ff4a7f3ac1ee54c29ee4c170de408f66692194\",\n      \"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\"\n      \"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\"\n      \"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\"\n      \"ffffffffffffffffffffffffffffffffffffffff\",\n      \"c578e2aa44d309b7b6a5193bdc6118f5\", \"valid\" },\n    { \"3030303030303030303030303030303030303030303030303030303030303030\",\n      \"00000000000000000007b4f0\",\n      \"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\"\n      \"ffffffffffffffffffffffffffffffffffffffffffffffffffffffff\",\n      \"1b996f9a3ccc6785de22ff5b8add9502ce03a0faf5992a09522cdd1206d220b8f8bd07d1\"\n      \"f1f5a1bd9a71d11c7f579b855818c08d4de036393183b7f590b335aed8de5b57b13c5fed\"\n      \"e2441c3e184aa9d46e61598506b3e11c43c62cbcaceced33190875b012218b1930fb7c38\"\n      \"ec45ac11c353d0cf938dccb9efad8fedbe46daa5\",\n      \"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\"\n      \"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\"\n      \"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\"\n      \"ffffffffffffffffffffffffffffffffffffffff\",\n      \"4b0bda8ad043830d8319ab82c50c7663\", \"valid\" },\n    { \"3030303030303030303030303030303030303030303030303030303030303030\",\n      \"00000000000000000020fb66\",\n      \"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\"\n      \"ffffffffffffffffffffffffffffffffffffffffffffffffffffffff\",\n      \"86cbacae4d3f74ae01213e0551cc15160ea1be8408e3d5d74f01464995a69e6176cb9e02\"\n      \"b2247ed299892f9182a45caf4c69405611766edfafdc285519ea30480c44f05e781eacf8\"\n      \"fcecc7090abb28fa5fd585ac8cda7e8772e594e4ce6c883281932e0f89f877a1f04d9c32\"\n      \"b06cf90b0e762b430c4d517c97107068f498ef7f\",\n      \"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\"\n      \"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\"\n      \"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\"\n      \"ffffffffffffffffffffffffffffffffffffffff\",\n      \"4bc98f72c494c2a43c2b15a1043f1cfa\", \"valid\" },\n    { \"3030303030303030303030303030303030303030303030303030303030303030\",\n      \"00000000000000000038bb90\",\n      \"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\"\n      \"ffffffffffffffffffffffffffffffffffffffffffffffffffffffff\",\n      \"fab1cddf4fe198ef63add881d6ead6c57637bbe92018ca7c0b96fba0871e932db1fbf907\"\n      \"61be25df8dfaf931ce5757e617b3d7a9f0bf0ffe5d591a33c143b8f53fd0b5a19609fd62\"\n      \"e5c251a4281a200cfdc34f281710406f4e37625446ff6ef224913deb0d89af337128e3d1\"\n      \"55d16d3ec3246041432143e9ab3a6d2ccc2f4d62\",\n      \"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\"\n      \"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\"\n      \"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\"\n      \"ffffffffffffffffffffffffffffffffffffffff\",\n      \"f7e9e151b02533c74658bfc7737c680d\", \"valid\" },\n    { \"3030303030303030303030303030303030303030303030303030303030303030\",\n      \"00000000000000000070484a\",\n      \"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\"\n      \"ffffffffffffffffffffffffffffffffffffffffffffffffffffffff\",\n      \"227202be7f3515e9d1c02eea2f1950b6481b048a4c91506cb40d504e6c949f82d197c25a\"\n      \"d17dc721651125782ac7a71247feaef32f1f250ce4bb8f79acaa179d45a7b0545f092432\"\n      \"5efa87d5e441d28478c61f2223ee67c3b41f4394535e2a24369a2e16613c459490c14fb1\"\n      \"d755fe53fbe1ee45b1b21f7162e2fcaa742abefd\",\n      \"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\"\n      \"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\"\n      \"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\"\n      \"ffffffffffffffffffffffffffffffffffffffff\",\n      \"795bcff647c553c2e4eb6e0eafd9e04e\", \"valid\" },\n    { \"3030303030303030303030303030303030303030303030303030303030303030\",\n      \"000000000000000000932f40\",\n      \"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\"\n      \"ffffffffffffffffffffffffffffffffffffffffffffffffffffffff\",\n      \"fae58345c16cb0f5cc537f2b1b3469c969463b3ea71bcf6b98d669a8e60e04fc08d5fd06\"\n      \"9c362638e3400ef4cb242e27e2245e68cb9ec583da5340b12edf423b7326ad20feeb57da\"\n      \"ca2e0467a32899b42df8e56d84e006bc8a7acc731e7c1f6becb5719f7077f0d4f4c61ab1\"\n      \"1ebac1001801ce33c4e4a77d831d3ce34e8410e1\",\n      \"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\"\n      \"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\"\n      \"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\"\n      \"ffffffffffffffffffffffffffffffffffffffff\",\n      \"1946d653960f947a74d3e8093cf48502\", \"valid\" },\n    { \"3030303030303030303030303030303030303030303030303030303030303030\",\n      \"000000000000000000e29335\",\n      \"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\"\n      \"ffffffffffffffffffffffffffffffffffffffffffffffffffffffff\",\n      \"ebb216ddd7ca709215f503df9ce63c5cd2194e7d9099e8a90b2afaad5eba35069925a603\"\n      \"fdbc341aaed41505b10941fa3856a7e247b1040709746cfc2096caa631b2fff41c250506\"\n      \"d889c1c90671ade853ee6394c19192a5cf3710d1073099e5bc946582fc0fab9f543c716a\"\n      \"e2486a8683fdca39d2e14f23d00a582664f4ecb1\",\n      \"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\"\n      \"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\"\n      \"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\"\n      \"ffffffffffffffffffffffffffffffffffffffff\",\n      \"36c3002985dd21baf895d633573f12c0\", \"valid\" },\n    { \"808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9f\",\n      \"0000000000000000000ef7d5\",\n      \"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\"\n      \"ffffffffffffffffffffffffffffffffffffffffffffffffffffffff\",\n      \"408ae6ef1c7ef0fb2c2d610816fc7849efa58f78273f5f166ea65f81b575747d035b3040\"\n      \"fede1eb9459788669788408e00413b3e376d152d204aa2b7a83558fcd48a0ef7a26b1cd6\"\n      \"d35d23b3f5dfe0ca77a4ce32b94abf83da2aefcaf068380879e89fb0a3829595cf44c385\"\n      \"2ae2cc662b689f9355d9c183801f6acc313f8907\",\n      \"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\"\n      \"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\"\n      \"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\"\n      \"ffffffffffffffffffffffffffffffffffffffff\",\n      \"6514518e0a264142e0b7351f967fc2ae\", \"valid\" },\n    { \"808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9f\",\n      \"0000000000000000003dfce4\",\n      \"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\"\n      \"ffffffffffffffffffffffffffffffffffffffffffffffffffffffff\",\n      \"0a0a24499bcade58cf1576c312aca984718cb4cc7e0153f5a9015810859644dfc021174e\"\n      \"0b060a397448de8b484a8603be680a6934c0906f30dd17eae2d4c5faa777f8ca53370e08\"\n      \"331b88c342bac959787bbb33930e3b56be86da7f2a6eb1f94089d1d181074d4302f8e055\"\n      \"2d0de1fab306a21b42d4c3ba6e6f0cbcc81e877a\",\n      \"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\"\n      \"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\"\n      \"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\"\n      \"ffffffffffffffffffffffffffffffffffffffff\",\n      \"4c194da6a99fd65b40e9cad798f44b19\", \"valid\" },\n    { \"808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9f\",\n      \"0000000000000000018486a8\",\n      \"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\"\n      \"ffffffffffffffffffffffffffffffffffffffffffffffffffffffff\",\n      \"4a0aaff8494729188691701340f3ce2b8a78eed3a0f065994b72484e7991d25c29aa075e\"\n      \"b1fc16de93fe069058112ab284a3ed18780326d1258a47222fa633d8b29f3bd9150b239b\"\n      \"1546c2bb9b9f410febead396000ee477701532c3d0f5fbf895d280196d2f737c5e9fec50\"\n      \"d92bb0df5d7e513be5b8ea971310d5bf16ba7aee\",\n      \"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\"\n      \"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\"\n      \"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\"\n      \"ffffffffffffffffffffffffffffffffffffffff\",\n      \"c8ae7788cd2874abc138541e11fd0587\", \"valid\" },\n    { \"808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9f\",\n      \"0000000000000000064c2d52\",\n      \"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\"\n      \"ffffffffffffffffffffffffffffffffffffffffffffffffffffffff\",\n      \"ff9428d079351f665cd001354319875c783d35f613e6d9093d38e975c38fe3b89f7aed35\"\n      \"cb5a2fcaa0346efb936554649cf6378171eae4396ea15dc240d1abf4472d9096524fa1b2\"\n      \"b023b8b288222773d4d206616f9293f65b45dbbc74e7c2edfbcbbf1cfb679bb739a5862d\"\n      \"e2bcb937f74d5bf8671c5a8a5092f61d54c9aa5b\",\n      \"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\"\n      \"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\"\n      \"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\"\n      \"ffffffffffffffffffffffffffffffffffffffff\",\n      \"933a5163c7f62368327b3fbc1036c943\", \"valid\" },\n    { \"808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9f\",\n      \"000102030405060708090a0b\",\n      \"85ffffffffffffffffffffffffffffffa6902fcbc883bbc180b256ae34ad7f00\",\n      \"9a49c40f8b48d7c66d1db4e53f20f2dd4aaa241ddab26b5bc0e218b72c3390f2df3ebd01\"\n      \"76704419972bcdbc6bbcb3e4e74a71528ef51263ce24e0d575e0e44d\",\n      \"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\"\n      \"ffffffffffffffffffffffffffffffffffffffffffffffffffffffff\",\n      \"000102030405060708090a0b0c0d0e0f\", \"valid\" },\n    { \"808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9f\",\n      \"000102030405060708090a0b\",\n      \"ffffffffffffffffffffffffffffffff247e50642a1c0a2f8f77219609dba958\",\n      \"9a49c40f8b48d7c66d1db4e53f20f2dd4aaa241ddab26b5bc0e218b72c3390f2df3ebd01\"\n      \"76704419972bcdbc6bbcb3e4e74a71528ef51263ce24e0d575e0e44d\",\n      \"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\"\n      \"ffffffffffffffffffffffffffffffffffffffffffffffffffffffff\",\n      \"00000000000000000000000000000000\", \"valid\" },\n    { \"808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9f\",\n      \"000102030405060708090a0b\",\n      \"7cffffffffffffffffffffffffffffffd9e72c064ac8961f3fa585e0e2abd600\",\n      \"9a49c40f8b48d7c66d1db4e53f20f2dd4aaa241ddab26b5bc0e218b72c3390f2df3ebd01\"\n      \"76704419972bcdbc6bbcb3e4e74a71528ef51263ce24e0d575e0e44d\",\n      \"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\"\n      \"ffffffffffffffffffffffffffffffffffffffffffffffffffffffff\",\n      \"ffffffffffffffffffffffffffffffff\", \"valid\" },\n    { \"808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9f\",\n      \"000102030405060708090a0b\",\n      \"65ffffffffffffffffffffffffffffff95af0f4d0b686eaeccca4307d596f502\",\n      \"9a49c40f8b48d7c66d1db4e53f20f2dd4aaa241ddab26b5bc0e218b72c3390f2df3ebd01\"\n      \"76704419972bcdbc6bbcb3e4e74a71528ef51263ce24e0d575e0e44d\",\n      \"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\"\n      \"ffffffffffffffffffffffffffffffffffffffffffffffffffffffff\",\n      \"00000080000000800000008000000080\", \"valid\" },\n    { \"808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9f\",\n      \"000102030405060708090a0b\",\n      \"ffffffffffffffffffffffffffffffff8540b464357707be3a39d55c34f8bcb3\",\n      \"9a49c40f8b48d7c66d1db4e53f20f2dd4aaa241ddab26b5bc0e218b72c3390f2df3ebd01\"\n      \"76704419972bcdbc6bbcb3e4e74a71528ef51263ce24e0d575e0e44d\",\n      \"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\"\n      \"ffffffffffffffffffffffffffffffffffffffffffffffffffffffff\",\n      \"ffffff7fffffff7fffffff7fffffff7f\", \"valid\" },\n    { \"808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9f\",\n      \"000102030405060708090a0b\",\n      \"4fffffffffffffffffffffffffffffff6623d990b898d830d212af2383330701\",\n      \"9a49c40f8b48d7c66d1db4e53f20f2dd4aaa241ddab26b5bc0e218b72c3390f2df3ebd01\"\n      \"76704419972bcdbc6bbcb3e4e74a71528ef51263ce24e0d575e0e44d\",\n      \"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\"\n      \"ffffffffffffffffffffffffffffffffffffffffffffffffffffffff\",\n      \"01000000010000000100000001000000\", \"valid\" },\n    { \"808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9f\",\n      \"000102030405060708090a0b\",\n      \"83ffffffffffffffffffffffffffffff5f16d09f17787211b7d484e024f89701\",\n      \"9a49c40f8b48d7c66d1db4e53f20f2dd4aaa241ddab26b5bc0e218b72c3390f2df3ebd01\"\n      \"76704419972bcdbc6bbcb3e4e74a71528ef51263ce24e0d575e0e44d\",\n      \"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\"\n      \"ffffffffffffffffffffffffffffffffffffffffffffffffffffffff\",\n      \"ffffffff000000000000000000000000\", \"valid\" },\n    { \"808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9f\",\n      \"0000000000000000064c2d52\", \"ffffffff\",\n      \"005235d2a919f28d3db7664a34ae6b444d3d35f613e6d9093d38e975c38fe3b85b8b9450\"\n      \"9e2b74a36d346e33d572659ba9f6378171eae4396ea15dc240d1abf483dce9f3073efadb\"\n      \"7d23b87ace35168c\",\n      \"0039e2fd2fd312149e989880884813e7caffffffffffffffffffffffffffffff3b0e869a\"\n      \"aa8ea49632ffff37b9e8ce00caffffffffffffffffffffffffffffff3b0e869aaa8ea496\"\n      \"32ffff37b9e8ce00\",\n      \"a519ac1a35b4a57787510af78d8d200a\", \"valid\" },\n    { \"808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9f\",\n      \"0000000000000000064c2d52\", \"ffffffff\",\n      \"d39428d079351f665cd001354319875ce5da78766fa19290c031f75208506745ae7aed35\"\n      \"cb5a2fcaa0346efb93655464496ddeb05509c6efffab75eb2df4ab09762d9096524fa1b2\"\n      \"b023b8b2882227730149ef504b71b120ca4ff39519c2c210\",\n      \"d3ffffffffffffffffffffffffffffff6218b27f83b8b46602f6e1d834207b02ceffffff\"\n      \"ffffffffffffffffffffffff2a6416cedb1cdd296ef5d7d692daff02ceffffffffffffff\"\n      \"ffffffffffffffff2a6416cedb1cdd296ef5d7d692daff02\",\n      \"302fe82ab0a09af64400d015ae83d9cc\", \"valid\" },\n    { \"808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9f\",\n      \"0000000000000000064c2d52\", \"ffffffff\",\n      \"e99428d079351f665cd001354319875c6df1394edc539b5b3a0957be0fb85946807aed35\"\n      \"cb5a2fcaa0346efb93655464d1769fe806bbfeb6f590950f2eac9e0a582d9096524fa1b2\"\n      \"b023b8b2882227739952ae0818c38979c07413711a9af713\",\n      \"e9ffffffffffffffffffffffffffffffea33f347304abdadf8ce413433c84501e0ffffff\"\n      \"ffffffffffffffffffffffffb27f579688aee57064ce37329182ca01e0ffffffffffffff\"\n      \"ffffffffffffffffb27f579688aee57064ce37329182ca01\",\n      \"98a7e836e0ee4d023500d0557ec2cbe0\", \"valid\" },\n    { \"808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9f\",\n      \"0000000000000000064c2d52\", \"ffffffff\",\n      \"ff9428d079351f665cd001354319875c64f90f5b2692b860d4596ff4b3402c5c00b9bb53\"\n      \"707aa667d356fe50c7199694033561e7caca6d941dc3cd6914ad6904\",\n      \"ffffffffffffffffffffffffffffffffe33bc552ca8b9e96169e797e8f30301b603ca999\"\n      \"44df76528c9d6f54ab833d0f603ca99944df76528c9d6f54ab833d0f\",\n      \"6ab8dce2c59da4737130b0252f68a8d8\", \"valid\" },\n    { \"808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9f\",\n      \"0000000000000000064c2d52\", \"ffffffff\",\n      \"689428d079351f665cd001354319875cb08f25675b9bcbf6e38407de2ec75a479f7aed35\"\n      \"cb5a2fcaa0346efb936554642d2af7cd6b080501d31ba54fb2eb7596472d9096524fa1b2\"\n      \"b023b8b288222773650ec62d757072cee6ff233186dd1c8f\",\n      \"68ffffffffffffffffffffffffffffff374def6eb782ed002143115412b74600ffffffff\"\n      \"ffffffffffffffffffffffff4e233fb3e51d1ec7424507720dc5219dffffffffffffffff\"\n      \"ffffffffffffffff4e233fb3e51d1ec7424507720dc5219d\",\n      \"044dea608880412bfdffcf35579e9b26\", \"valid\" },\n    { \"808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9f\",\n      \"0000000000000000064c2d52\", \"ffffffff\",\n      \"6d9428d079351f665cd001354319875ca161b5ab040900629efeff78d7d86b459f7aed35\"\n      \"cb5a2fcaa0346efb93655464c6f8078cc8ef12a0ff657d6d08db10b8472d9096524fa1b2\"\n      \"b023b8b2882227738edc366cd697656fca81fb133ced79a1\",\n      \"6dffffffffffffffffffffffffffffff26a37fa2e81026945c39e9f2eba87702ffffffff\"\n      \"ffffffffffffffffffffffffa5f1cff246fa09666e3bdf50b7f544b3ffffffffffffffff\"\n      \"ffffffffffffffffa5f1cff246fa09666e3bdf50b7f544b3\",\n      \"1e6bea6314542e2ef9ffcf450b2e982b\", \"valid\" },\n    { \"808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9f\",\n      \"0000000000000000064c2d52\", \"ffffffff\",\n      \"ff9428d079351f665cd001354319875cfc01b891e5f0f9128d7d1c579192b69863414415\"\n      \"b69968959a7291b7a5af134860cd9ea10c29a36654e7a28e761becd8\",\n      \"ffffffffffffffffffffffffffffffff7bc3729809e9dfe44fba0addade2aadf03c456df\"\n      \"823cb8a0c5b900b3c935b8d303c456df823cb8a0c5b900b3c935b8d3\",\n      \"ed2017c8dba4775629049d786e3bceb1\", \"valid\" },\n    { \"808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9f\",\n      \"0000000000000000064c2d52\", \"ffffffff\",\n      \"ff9428d079351f665cd001354319875c6b6dc9d21a819e70b577f44137d3d6bd1335f5eb\"\n      \"44494077b26449a54b6c7c7510b92f5ffef98b847cf17a9c98d883e5\",\n      \"ffffffffffffffffffffffffffffffffecaf03dbf698b88677b0e2cb0ba3cafa73b0e721\"\n      \"70ec9042edafd8a127f6d7ee73b0e72170ec9042edafd8a127f6d7ee\",\n      \"073f17cb6778645925049d8822cbcab6\", \"valid\" },\n    { \"808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9f\",\n      \"0000000000000000064c2d52\", \"ffffffff\",\n      \"ffcb2b1106f8234c5e99d4db4c7048de323d35f613e6d9093d38e975c38fe3b816e9884a\"\n      \"114f0e9266cea3885fe36b9fd6f6378171eae4396ea15dc240d1abf4cebef5e9885a80ea\"\n      \"76d975c144a41888\",\n      \"ffa0fc3e8032c3d5fdb62a11f096307db5ffffffffffffffffffffffffffffff766c9a80\"\n      \"25eadea73905328c3379c004b5ffffffffffffffffffffffffffffff766c9a8025eadea7\"\n      \"3905328c3379c004\",\n      \"8b9bb4b4861289658c696a8340150405\", \"valid\" },\n    { \"808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9f\",\n      \"0000000000000000064c2d52\", \"ffffffff\",\n      \"6f9e70ed3b8baca026e46a5a0943158d213d35f613e6d9093d38e975c38fe3b80c612c5e\"\n      \"8d89a873dbcaad5b7346429bc5f6378171eae4396ea15dc240d1abf4d43651fd149c260b\"\n      \"cbdd7b126801318c\",\n      \"6ff5a7c2bd414c3985cb9490b5a56d2ea6ffffffffffffffffffffffffffffff6ce43e94\"\n      \"b92c784684013c5f1fdce900a6ffffffffffffffffffffffffffffff6ce43e94b92c7846\"\n      \"84013c5f1fdce900\",\n      \"8b3bbd51644459568d81ca1fa72ce404\", \"valid\" },\n    { \"808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9f\",\n      \"0000000000000000064c2d52\", \"ffffffff\",\n      \"412b080a3e19c10d44a1af1eabdeb4ce353d35f613e6d9093d38e975c38fe3b86b839433\"\n      \"0921486ca11d291c3e97ee9ad1f6378171eae4396ea15dc240d1abf4b3d4e9909034c614\"\n      \"b10aff5525d09d8d\",\n      \"4140df25b8d32194e78e51d41738cc6db2ffffffffffffffffffffffffffffff0b0686f9\"\n      \"3d849859fed6b818520d4501b2ffffffffffffffffffffffffffffff0b0686f93d849859\"\n      \"fed6b818520d4501\",\n      \"86fbab2b4a94f47aa56f0aea65d11008\", \"valid\" },\n    { \"808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9f\",\n      \"0000000000000000064c2d52\", \"ffffffff\",\n      \"b247a74723491aacacaad709c91e932b313d35f613e6d9093d38e975c38fe3b89ade04e7\"\n      \"5bb701d9660601b34765de98d5f6378171eae4396ea15dc240d1abf442897944c2a28fa1\"\n      \"7611d7fa5c22ad8f\",\n      \"b22c7068a583fa350f8529c375f8eb88b6fffffffffffffffffffffffffffffffa5b162d\"\n      \"6f12d1ec39cd90b72bff7503b6fffffffffffffffffffffffffffffffa5b162d6f12d1ec\"\n      \"39cd90b72bff7503\",\n      \"a019ac2ed667e17da16f0afa19610d0d\", \"valid\" },\n    { \"808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9f\",\n      \"0000000000000000064c2d52\", \"ffffffff\",\n      \"740f9e49f610efa585b659ca6ed8b4992d3d35f613e6d9093d38e975c38fe3b8412d96af\"\n      \"be80ec3e79d451b00a2db29ac9f6378171eae4396ea15dc240d1abf4997aeb0c27956246\"\n      \"69c387f9116ac18d\",\n      \"7464496670da0f3c2699a700d23ecc3aaaffffffffffffffffffffffffffffff21a88465\"\n      \"8a253c0b261fc0b466b71901aaffffffffffffffffffffffffffffff21a884658a253c0b\"\n      \"261fc0b466b71901\",\n      \"736e18181696a5889c3159faabab20fd\", \"valid\" },\n    { \"808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9f\",\n      \"0000000000000000064c2d52\", \"ffffffff\",\n      \"adba5d105bc8aa062c2336cb889ddbd5373d35f613e6d9093d38e975c38fe3b8177c5ffe\"\n      \"2875f468f6c2965748f3599ad3f6378171eae4396ea15dc240d1abf4cf2b225db1607a10\"\n      \"e6d5401e53b42a8d\",\n      \"add18a3fdd024a9f8f0cc801347ba376b0ffffffffffffffffffffffffffffff77f94d34\"\n      \"1cd0245da90907532469f201b0ffffffffffffffffffffffffffffff77f94d341cd0245d\"\n      \"a90907532469f201\",\n      \"bad58f10a91e6a889aba32fd17d8331a\", \"valid\" },\n    { \"808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9f\",\n      \"0000000000000000064c2d52\", \"ffffffff\",\n      \"fe9428d079351f665cd001354319875cc001edc5da442e719bce9abe273af144b47aed35\"\n      \"cb5a2fcaa0346efb9365546448025f41fa4e336c786957a2a7c4930a6c2d9096524fa1b2\"\n      \"b023b8b28822277300266ea1e43644a34d8dd1dc93f2fa13\",\n      \"feffffffffffffffffffffffffffffff47c327cc365d088759098c341b4aed03d4ffffff\"\n      \"ffffffffffffffffffffffff2b0b973f745b28aae937f59f18eac701d4ffffffffffffff\"\n      \"ffffffffffffffff2b0b973f745b28aae937f59f18eac701\",\n      \"d68ce174079add028dd05cf814630488\", \"valid\" },\n    { \"808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9f\",\n      \"0000000000000000064c2d52\", \"ffffffff\",\n      \"b513b06ab9ac14435acb8aa3a37afdb6543d35f613e6d9093d38e975c38fe3b861950193\"\n      \"b1bf0311ff117989aed9a999b0f6378171eae4396ea15dc240d1abf4b9c27c3028aa8d69\"\n      \"ef06afc0b59eda8e\",\n      \"b57867453f66f4daf9e474691f9c8515d3ffffffffffffffffffffffffffffff01101359\"\n      \"851ad324a0dae88dc2430202d3ffffffffffffffffffffffffffffff01101359851ad324\"\n      \"a0dae88dc2430202\",\n      \"aa48a3887d4b059699c2fdf9c6787e0a\", \"valid\" },\n    { \"808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9f\",\n      \"0000000000000000064c2d52\", \"ffffffff\",\n      \"ff9428d079351f665cd001354319875cd4f109e814cea85a08c011d850dd1dcbcf7aed35\"\n      \"cb5a2fcaa0346efb936554645340b85a9aa08296b77a5fc3961f660f172d9096524fa1b2\"\n      \"b023b8b2882227731b6489ba84d8f559829ed9bda2290f16\",\n      \"ffffffffffffffffffffffffffffffff5333c3e1f8d78eacca0707526cad018cafffffff\"\n      \"ffffffffffffffffffffffff3049702414b599502624fdfe29313204afffffffffffffff\"\n      \"ffffffffffffffff3049702414b599502624fdfe29313204\",\n      \"b936a817f2211af129e2cf160fd42bcb\", \"valid\" },\n    { \"808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9f\",\n      \"0000000000000000064c2d52\", \"ffffffff\",\n      \"ff9428d079351f665cd001354319875cdf4c62032d4119b588477e99925a56d9d67aed35\"\n      \"cb5a2fcaa0346efb93655464fa84f0645536421b2bb9246ec219ed0b0e2d9096524fa1b2\"\n      \"b023b8b288222773b2a0c1844b4e35d41e5da210f62f8412\",\n      \"ffffffffffffffffffffffffffffffff588ea80ac1583f434a806813ae2a4a9eb6ffffff\"\n      \"ffffffffffffffffffffffff998d381adb2359ddbae786537d37b900b6ffffffffffffff\"\n      \"ffffffffffffffff998d381adb2359ddbae786537d37b900\",\n      \"9f7ac4351f6b91e63097a713115d05be\", \"valid\" },\n    { \"808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9f\",\n      \"0000000000000000064c2d52\", \"ffffffff\",\n      \"ff9428d079351f665cd001354319875c13f80a006dc1bbdad639a92fc7eca655f77aed35\"\n      \"cb5a2fcaa0346efb936554646348b8fd29bf96d563a517e27d7bfc0f2f2d9096524fa1b2\"\n      \"b023b8b2882227732b6c891d37c7e11a5641919c494d9516\",\n      \"ffffffffffffffffffffffffffffffff943ac00981d89d2c14febfa5fb9cba1297ffffff\"\n      \"ffffffffffffffffffffffff00417083a7aa8d13f2fbb5dfc255a80497ffffffffffffff\"\n      \"ffffffffffffffff00417083a7aa8d13f2fbb5dfc255a804\",\n      \"9a18a828070269f44700d009e7171cc9\", \"valid\" },\n    { \"808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9f\",\n      \"0000000000000000064c2d52\", \"ffffffff\",\n      \"ff9428d079351f665cd001354319875c82e59b4582915038f933811e652dc66afc7aed35\"\n      \"cb5a2fcaa0346efb93655464b671c8cac270c265a0ac2f535799880a242d9096524fa1b2\"\n      \"b023b8b288222773fe55f92adc08b5aa9548a92d63afe113\",\n      \"ffffffffffffffffffffffffffffffff0527514c6e8876ce3bf49794595dda2d9cffffff\"\n      \"ffffffffffffffffffffffffd57800b44c65d9a331f28d6ee8b7dc019cffffffffffffff\"\n      \"ffffffffffffffffd57800b44c65d9a331f28d6ee8b7dc01\",\n      \"b436a82b93d555f74300d0199ba718ce\", \"valid\" },\n    { \"808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9f\",\n      \"0000000000000000064c2d52\", \"ffffffff\",\n      \"ff9428d079351f665cd001354319875cf1d12887b7216986a12d79098b6de60fc07aed35\"\n      \"cb5a2fcaa0346efb93655464a7c75899f3e60af1fcb6c7307d87590f182d9096524fa1b2\"\n      \"b023b8b288222773efe36979ed9e7d3ec952414e49b13016\",\n      \"ffffffffffffffffffffffffffffffff7613e28e5b384f7063ea6f83b71dfa48a0ffffff\"\n      \"ffffffffffffffffffffffffc4ce90e77df311376de8650dc2a90d04a0ffffffffffffff\"\n      \"ffffffffffffffffc4ce90e77df311376de8650dc2a90d04\",\n      \"ce54a82e1fa942fa3f00d0294f3715d3\", \"valid\" },\n    { \"808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9f\",\n      \"0000000000000000064c2d52\", \"ffffffff\",\n      \"cbf1da9e0ba9377374e69e1c0e600cfc343d35f613e6d9093d38e975c38fe3b8be3fa66b\"\n      \"6ce7808aa3e45949f944649fd0f6378171eae4396ea15dc240d1abf46668dbc8f5f20ef2\"\n      \"b3f38f00e2031788\",\n      \"cb9a0db18d63d7ead7c960d6b286745fb3ffffffffffffffffffffffffffffffdebab4a1\"\n      \"584250bffc2fc84d95decf04b3ffffffffffffffffffffffffffffffdebab4a1584250bf\"\n      \"fc2fc84d95decf04\",\n      \"2383ab0b799205699b510aa709bf31f1\", \"valid\" },\n    { \"808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9f\",\n      \"0000000000000000064c2d52\", \"ffffffff\",\n      \"8f278694c4e9daebd58d3e5b966e8b68423d35f613e6d9093d38e975c38fe3b80653e7a3\"\n      \"31718833acc3b9adff1c3198a6f6378171eae4396ea15dc240d1abf4de049a00a864064b\"\n      \"bcd46fe4e45b428f\",\n      \"8f4c51bb42233a7276a2c0912a88f3cbc5ffffffffffffffffffffffffffffff66d6f569\"\n      \"05d45806f30828a993869a03c5ffffffffffffffffffffffffffffff66d6f56905d45806\"\n      \"f30828a993869a03\",\n      \"8bfbab17a9e0b8748b510ae7d9fd2305\", \"valid\" },\n    { \"808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9f\",\n      \"0000000000000000064c2d52\", \"ffffffff\",\n      \"d59428d079351f665cd001354319875c9a22d70a48e24fddcdd4419de64c8f44fc7aed35\"\n      \"cb5a2fcaa0346efb9365546477b5c907d9c9e1ea51851a204aad9f0a242d9096524fa1b2\"\n      \"b023b8b2882227733f91f8e7c7b1962564619c5e7e9bf613\",\n      \"d5ffffffffffffffffffffffffffffff1de01d03a4fb692b0f135717da3c93039cffffff\"\n      \"ffffffffffffffffffffffff14bc017957dcfa2cc0dbb81df583cb019cffffffffffffff\"\n      \"ffffffffffffffff14bc017957dcfa2cc0dbb81df583cb01\",\n      \"49bc6e9fc51c4d503036644d842773d2\", \"valid\" },\n    { \"808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9f\",\n      \"0000000000000000064c2d52\", \"ffffffff\",\n      \"db9428d079351f665cd001354319875c75d5643aa5af934d8cce392cc3eedb47c07aed35\"\n      \"cb5a2fcaa0346efb93655464601b5ad2067f28066a8f3281715ba808182d9096524fa1b2\"\n      \"b023b8b288222773283f6b3218075fc95f6bb4ff456dc111\",\n      \"dbfffffffffffffffffffffffffffffff217ae3349b6b5bb4e092fa6ff9ec700a0ffffff\"\n      \"ffffffffffffffffffffffff031292ac886a33c0fbd190bcce75fc03a0ffffffffffffff\"\n      \"ffffffffffffffff031292ac886a33c0fbd190bcce75fc03\",\n      \"63da6ea251f039532c36645d38b76fd7\", \"valid\" },\n    { \"808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9f\",\n      \"0000000000000000064c2d52\", \"ffffffff\",\n      \"939428d079351f665cd001354319875c624839604216e403ebcc6af559ec8b43977aed35\"\n      \"cb5a2fcaa0346efb93655464d8c8c3fa1a9e474abe52d02c8187e90f4f2d9096524fa1b2\"\n      \"b023b8b28822277390ecf21a04e630858bb65652b5b18016\",\n      \"93ffffffffffffffffffffffffffffffe58af369ae0fc2f5290b7c7f659c9704f7ffffff\"\n      \"ffffffffffffffffffffffffbbc10b84948b5c8c2f0c72113ea9bd04f7ffffffffffffff\"\n      \"ffffffffffffffffbbc10b84948b5c8c2f0c72113ea9bd04\",\n      \"73eb2724b5c405f04d00d0f15840a1c1\", \"valid\" }\n};\n\nstatic int\ntv(void)\n{\n    unsigned char *ad;\n    unsigned char *decrypted;\n    unsigned char *detached_ciphertext;\n    unsigned char *key;\n    unsigned char *message;\n    unsigned char *mac;\n    unsigned char *nonce;\n    size_t         ad_len;\n    size_t         detached_ciphertext_len;\n    size_t         message_len;\n    unsigned int   i;\n\n    key = (unsigned char *) sodium_malloc(\n        crypto_aead_chacha20poly1305_ietf_KEYBYTES);\n    nonce = (unsigned char *) sodium_malloc(\n        crypto_aead_chacha20poly1305_ietf_NPUBBYTES);\n    mac = (unsigned char *) sodium_malloc(\n        crypto_aead_chacha20poly1305_ietf_ABYTES);\n\n    for (i = 0U; i < (sizeof tests) / (sizeof tests[0]); i++) {\n        assert(strlen(tests[i].key_hex) ==\n               2 * crypto_aead_chacha20poly1305_ietf_KEYBYTES);\n        sodium_hex2bin(key, crypto_aead_chacha20poly1305_ietf_KEYBYTES,\n                       tests[i].key_hex, strlen(tests[i].key_hex), NULL, NULL,\n                       NULL);\n\n        assert(strlen(tests[i].nonce_hex) ==\n               2 * crypto_aead_chacha20poly1305_ietf_NPUBBYTES);\n        sodium_hex2bin(nonce, crypto_aead_chacha20poly1305_ietf_NPUBBYTES,\n                       tests[i].nonce_hex, strlen(tests[i].nonce_hex), NULL,\n                       NULL, NULL);\n\n        message_len = strlen(tests[i].message_hex) / 2;\n        message     = (unsigned char *) sodium_malloc(message_len);\n        sodium_hex2bin(message, message_len, tests[i].message_hex,\n                       strlen(tests[i].message_hex), NULL, NULL, NULL);\n\n        ad_len = strlen(tests[i].ad_hex) / 2;\n        ad     = (unsigned char *) sodium_malloc(ad_len);\n        sodium_hex2bin(ad, ad_len, tests[i].ad_hex, strlen(tests[i].ad_hex),\n                       NULL, NULL, NULL);\n\n        detached_ciphertext_len = message_len;\n        assert(strlen(tests[i].detached_ciphertext_hex) == 2 * message_len);\n        assert(strlen(tests[i].mac_hex) ==\n               2 * crypto_aead_chacha20poly1305_ietf_ABYTES);\n        sodium_hex2bin(mac, crypto_aead_chacha20poly1305_ietf_ABYTES,\n                       tests[i].mac_hex, strlen(tests[i].mac_hex), NULL, NULL,\n                       NULL);\n\n        detached_ciphertext =\n            (unsigned char *) sodium_malloc(detached_ciphertext_len);\n        sodium_hex2bin(detached_ciphertext, detached_ciphertext_len,\n                       tests[i].detached_ciphertext_hex,\n                       strlen(tests[i].detached_ciphertext_hex), NULL, NULL,\n                       NULL);\n\n        decrypted = (unsigned char *) sodium_malloc(message_len);\n        if (crypto_aead_chacha20poly1305_ietf_decrypt_detached(\n                decrypted, NULL, detached_ciphertext, detached_ciphertext_len,\n                mac, ad, ad_len, nonce, key) == 0) {\n            if (strcmp(tests[i].outcome, \"valid\") != 0) {\n                printf(\"*** test case %u succeeded, was supposed to be %s\\n\", i,\n                       tests[i].outcome);\n            }\n            if (memcmp(decrypted, message, message_len) != 0) {\n                printf(\"Incorrect decryption of test vector #%u\\n\",\n                       (unsigned int) i);\n            }\n        } else {\n            if (strcmp(tests[i].outcome, \"invalid\") != 0) {\n                printf(\"*** test case %u failed, was supposed to be %s\\n\", i,\n                       tests[i].outcome);\n            }\n        }\n\n        sodium_free(message);\n        sodium_free(ad);\n        sodium_free(decrypted);\n        sodium_free(detached_ciphertext);\n    }\n\n    sodium_free(key);\n    sodium_free(mac);\n    sodium_free(nonce);\n\n    return 0;\n}\n\nint\nmain(void)\n{\n    tv();\n    printf(\"OK\\n\");\n\n    return 0;\n}\n"
  },
  {
    "path": "test/default/aead_chacha20poly13052.exp",
    "content": "OK\n"
  },
  {
    "path": "test/default/aead_xchacha20poly1305.c",
    "content": "\n#define TEST_NAME \"aead_xchacha20poly1305\"\n#include \"cmptest.h\"\n\nstatic int\ntv(void)\n{\n#undef  MLEN\n#define MLEN 114U\n#undef  ADLEN\n#define ADLEN 12U\n#undef  CLEN\n#define CLEN (MLEN + crypto_aead_xchacha20poly1305_ietf_ABYTES)\n    static const unsigned char firstkey[crypto_aead_xchacha20poly1305_ietf_KEYBYTES]\n        = {\n            0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87,\n            0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f,\n            0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97,\n            0x98, 0x99, 0x9a, 0x9b, 0x9c, 0x9d, 0x9e, 0x9f\n        };\n#undef  MESSAGE\n#define MESSAGE \"Ladies and Gentlemen of the class of '99: If I could offer you \" \\\n    \"only one tip for the future, sunscreen would be it.\"\n    unsigned char *m = (unsigned char *) sodium_malloc(MLEN);\n    static const unsigned char nonce[crypto_aead_xchacha20poly1305_ietf_NPUBBYTES]\n        = { 0x07, 0x00, 0x00, 0x00, 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47,\n            0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, 0x50, 0x51, 0x52, 0x53 };\n    static const unsigned char ad[ADLEN]\n        = { 0x50, 0x51, 0x52, 0x53, 0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7 };\n    unsigned char *c = (unsigned char *) sodium_malloc(CLEN);\n    unsigned char *detached_c = (unsigned char *) sodium_malloc(MLEN);\n    unsigned char *key2 = (unsigned char *) sodium_malloc(crypto_aead_xchacha20poly1305_ietf_KEYBYTES);\n    unsigned char *mac = (unsigned char *) sodium_malloc(crypto_aead_xchacha20poly1305_ietf_ABYTES);\n    unsigned char *m2 = (unsigned char *) sodium_malloc(MLEN);\n    unsigned long long found_clen;\n    unsigned long long found_maclen;\n    unsigned long long m2len;\n    size_t i;\n\n    assert(sizeof MESSAGE - 1U == MLEN);\n    memcpy(m, MESSAGE, MLEN);\n    crypto_aead_xchacha20poly1305_ietf_encrypt(c, &found_clen, m, MLEN,\n                                               ad, ADLEN,\n                                               NULL, nonce, firstkey);\n    if (found_clen != MLEN + crypto_aead_xchacha20poly1305_ietf_abytes()) {\n        printf(\"found_clen is not properly set\\n\");\n    }\n    for (i = 0U; i < CLEN; ++i) {\n        printf(\",0x%02x\", (unsigned int) c[i]);\n        if (i % 8 == 7) {\n            printf(\"\\n\");\n        }\n    }\n    printf(\"\\n\");\n    crypto_aead_xchacha20poly1305_ietf_encrypt_detached(detached_c,\n                                                        mac, &found_maclen,\n                                                        m, MLEN,\n                                                        ad, ADLEN,\n                                                        NULL, nonce, firstkey);\n    if (found_maclen != crypto_aead_xchacha20poly1305_ietf_abytes()) {\n        printf(\"found_maclen is not properly set\\n\");\n    }\n    if (memcmp(detached_c, c, MLEN) != 0) {\n        printf(\"detached ciphertext is bogus\\n\");\n    }\n\n    if (crypto_aead_xchacha20poly1305_ietf_decrypt(NULL, 0, NULL, c, CLEN, ad,\n                                                   ADLEN, nonce, firstkey) != 0) {\n        printf(\"crypto_aead_xchacha20poly1305_ietf_decrypt() tag-only verification failed\\n\");\n    }\n    if (crypto_aead_xchacha20poly1305_ietf_decrypt(m2, &m2len, NULL, c, CLEN, ad,\n                                                   ADLEN, nonce, firstkey) != 0) {\n        printf(\"crypto_aead_xchacha20poly1305_ietf_decrypt() failed\\n\");\n    }\n    if (m2len != MLEN) {\n        printf(\"m2len is not properly set\\n\");\n    }\n    if (memcmp(m, m2, MLEN) != 0) {\n        printf(\"m != m2\\n\");\n    }\n    memset(m2, 0, m2len);\n    if (crypto_aead_xchacha20poly1305_ietf_decrypt_detached(m2, NULL,\n                                                            c, MLEN, mac,\n                                                            ad, ADLEN,\n                                                            nonce, firstkey) != 0) {\n        printf(\"crypto_aead_xchacha20poly1305_ietf_decrypt_detached() failed\\n\");\n    }\n    if (memcmp(m, m2, MLEN) != 0) {\n        printf(\"detached m != m2\\n\");\n    }\n\n    for (i = 0U; i < CLEN; i++) {\n        c[i] ^= (i + 1U);\n        if (crypto_aead_xchacha20poly1305_ietf_decrypt(m2, NULL, NULL, c, CLEN,\n                                                       ad, ADLEN, nonce, firstkey)\n            == 0 || memcmp(m, m2, MLEN) == 0) {\n            printf(\"message can be forged\\n\");\n        }\n        c[i] ^= (i + 1U);\n    }\n    crypto_aead_xchacha20poly1305_ietf_encrypt(c, &found_clen, m, MLEN,\n                                               NULL, 0U, NULL, nonce, firstkey);\n    if (found_clen != CLEN) {\n        printf(\"clen is not properly set (adlen=0)\\n\");\n    }\n    for (i = 0U; i < CLEN; ++i) {\n        printf(\",0x%02x\", (unsigned int) c[i]);\n        if (i % 8 == 7) {\n            printf(\"\\n\");\n        }\n    }\n    printf(\"\\n\");\n    if (crypto_aead_xchacha20poly1305_ietf_decrypt(m2, &m2len, NULL, c, CLEN,\n                                                   NULL, 0U, nonce, firstkey) != 0) {\n        printf(\"crypto_aead_xchacha20poly1305_ietf_decrypt() failed (adlen=0)\\n\");\n    }\n    if (m2len != MLEN) {\n        printf(\"m2len is not properly set (adlen=0)\\n\");\n    }\n    if (memcmp(m, m2, MLEN) != 0) {\n        printf(\"m != m2 (adlen=0)\\n\");\n    }\n    m2len = 1;\n    if (crypto_aead_xchacha20poly1305_ietf_decrypt(\n            m2, &m2len, NULL, guard_page,\n            randombytes_uniform(crypto_aead_xchacha20poly1305_ietf_ABYTES),\n            NULL, 0U, nonce, firstkey) != -1) {\n        printf(\"crypto_aead_xchacha20poly1305_ietf_decrypt() worked with a short \"\n               \"ciphertext\\n\");\n    }\n    if (m2len != 0) {\n        printf(\"Message length should have been set to zero after a failure\\n\");\n    }\n    m2len = 1;\n    if (crypto_aead_xchacha20poly1305_ietf_decrypt(m2, &m2len, NULL, c, 0U, NULL, 0U,\n                                                  nonce, firstkey) != -1) {\n        printf(\"crypto_aead_xchacha20poly1305_ietf_decrypt() worked with an empty \"\n               \"ciphertext\\n\");\n    }\n    if (m2len != 0) {\n        printf(\"Message length should have been set to zero after a failure\\n\");\n    }\n\n    memcpy(c, m, MLEN);\n    crypto_aead_xchacha20poly1305_ietf_encrypt(c, &found_clen, c, MLEN,\n                                               NULL, 0U, NULL, nonce, firstkey);\n    if (found_clen != CLEN) {\n        printf(\"clen is not properly set (adlen=0)\\n\");\n    }\n    for (i = 0U; i < CLEN; ++i) {\n        printf(\",0x%02x\", (unsigned int) c[i]);\n        if (i % 8 == 7) {\n            printf(\"\\n\");\n        }\n    }\n    printf(\"\\n\");\n\n    if (crypto_aead_xchacha20poly1305_ietf_decrypt(c, &m2len, NULL, c, CLEN,\n                                                   NULL, 0U, nonce, firstkey) != 0) {\n        printf(\"crypto_aead_xchacha20poly1305_ietf_decrypt() failed (adlen=0)\\n\");\n    }\n    if (m2len != MLEN) {\n        printf(\"m2len is not properly set (adlen=0)\\n\");\n    }\n    if (memcmp(m, c, MLEN) != 0) {\n        printf(\"m != c (adlen=0)\\n\");\n    }\n\n    crypto_aead_xchacha20poly1305_ietf_keygen(key2);\n    if (crypto_aead_xchacha20poly1305_ietf_decrypt(c, &m2len, NULL, c, CLEN,\n                                                   NULL, 0U, nonce, key2) == 0) {\n        printf(\"crypto_aead_xchacha20poly1305_ietf_decrypt() with a wrong key should have failed\\n\");\n    }\n\n    sodium_free(c);\n    sodium_free(detached_c);\n    sodium_free(key2);\n    sodium_free(mac);\n    sodium_free(m2);\n    sodium_free(m);\n\n    assert(crypto_aead_xchacha20poly1305_ietf_abytes() == crypto_aead_xchacha20poly1305_ietf_ABYTES);\n    assert(crypto_aead_xchacha20poly1305_ietf_keybytes() == crypto_aead_xchacha20poly1305_ietf_KEYBYTES);\n    assert(crypto_aead_xchacha20poly1305_ietf_npubbytes() == crypto_aead_xchacha20poly1305_ietf_NPUBBYTES);\n    assert(crypto_aead_xchacha20poly1305_ietf_nsecbytes() == 0U);\n    assert(crypto_aead_xchacha20poly1305_ietf_nsecbytes() == crypto_aead_xchacha20poly1305_ietf_NSECBYTES);\n    assert(crypto_aead_xchacha20poly1305_ietf_messagebytes_max() == crypto_aead_xchacha20poly1305_ietf_MESSAGEBYTES_MAX);\n    assert(crypto_aead_xchacha20poly1305_IETF_KEYBYTES  == crypto_aead_xchacha20poly1305_ietf_KEYBYTES);\n    assert(crypto_aead_xchacha20poly1305_IETF_NSECBYTES == crypto_aead_xchacha20poly1305_ietf_NSECBYTES);\n    assert(crypto_aead_xchacha20poly1305_IETF_NPUBBYTES == crypto_aead_xchacha20poly1305_ietf_NPUBBYTES);\n    assert(crypto_aead_xchacha20poly1305_IETF_ABYTES    == crypto_aead_xchacha20poly1305_ietf_ABYTES);\n    assert(crypto_aead_xchacha20poly1305_IETF_MESSAGEBYTES_MAX == crypto_aead_xchacha20poly1305_ietf_MESSAGEBYTES_MAX);\n\n    return 0;\n}\n\nint\nmain(void)\n{\n    tv();\n\n    return 0;\n}\n"
  },
  {
    "path": "test/default/aead_xchacha20poly1305.exp",
    "content": ",0xf8,0xeb,0xea,0x48,0x75,0x04,0x40,0x66\n,0xfc,0x16,0x2a,0x06,0x04,0xe1,0x71,0xfe\n,0xec,0xfb,0x3d,0x20,0x42,0x52,0x48,0x56\n,0x3b,0xcf,0xd5,0xa1,0x55,0xdc,0xc4,0x7b\n,0xbd,0xa7,0x0b,0x86,0xe5,0xab,0x9b,0x55\n,0x00,0x2b,0xd1,0x27,0x4c,0x02,0xdb,0x35\n,0x32,0x1a,0xcd,0x7a,0xf8,0xb2,0xe2,0xd2\n,0x50,0x15,0xe1,0x36,0xb7,0x67,0x94,0x58\n,0xe9,0xf4,0x32,0x43,0xbf,0x71,0x9d,0x63\n,0x9b,0xad,0xb5,0xfe,0xac,0x03,0xf8,0x0a\n,0x19,0xa9,0x6e,0xf1,0x0c,0xb1,0xd1,0x53\n,0x33,0xa8,0x37,0xb9,0x09,0x46,0xba,0x38\n,0x54,0xee,0x74,0xda,0x3f,0x25,0x85,0xef\n,0xc7,0xe1,0xe1,0x70,0xe1,0x7e,0x15,0xe5\n,0x63,0xe7,0x76,0x01,0xf4,0xf8,0x5c,0xaf\n,0xa8,0xe5,0x87,0x76,0x14,0xe1,0x43,0xe6\n,0x84,0x20\n,0xf8,0xeb,0xea,0x48,0x75,0x04,0x40,0x66\n,0xfc,0x16,0x2a,0x06,0x04,0xe1,0x71,0xfe\n,0xec,0xfb,0x3d,0x20,0x42,0x52,0x48,0x56\n,0x3b,0xcf,0xd5,0xa1,0x55,0xdc,0xc4,0x7b\n,0xbd,0xa7,0x0b,0x86,0xe5,0xab,0x9b,0x55\n,0x00,0x2b,0xd1,0x27,0x4c,0x02,0xdb,0x35\n,0x32,0x1a,0xcd,0x7a,0xf8,0xb2,0xe2,0xd2\n,0x50,0x15,0xe1,0x36,0xb7,0x67,0x94,0x58\n,0xe9,0xf4,0x32,0x43,0xbf,0x71,0x9d,0x63\n,0x9b,0xad,0xb5,0xfe,0xac,0x03,0xf8,0x0a\n,0x19,0xa9,0x6e,0xf1,0x0c,0xb1,0xd1,0x53\n,0x33,0xa8,0x37,0xb9,0x09,0x46,0xba,0x38\n,0x54,0xee,0x74,0xda,0x3f,0x25,0x85,0xef\n,0xc7,0xe1,0xe1,0x70,0xe1,0x7e,0x15,0xe5\n,0x63,0xe7,0xe0,0x96,0xe0,0x33,0xd9,0x1b\n,0x63,0xf7,0xac,0x92,0xe9,0x97,0x2e,0x0d\n,0x43,0xe5\n,0xf8,0xeb,0xea,0x48,0x75,0x04,0x40,0x66\n,0xfc,0x16,0x2a,0x06,0x04,0xe1,0x71,0xfe\n,0xec,0xfb,0x3d,0x20,0x42,0x52,0x48,0x56\n,0x3b,0xcf,0xd5,0xa1,0x55,0xdc,0xc4,0x7b\n,0xbd,0xa7,0x0b,0x86,0xe5,0xab,0x9b,0x55\n,0x00,0x2b,0xd1,0x27,0x4c,0x02,0xdb,0x35\n,0x32,0x1a,0xcd,0x7a,0xf8,0xb2,0xe2,0xd2\n,0x50,0x15,0xe1,0x36,0xb7,0x67,0x94,0x58\n,0xe9,0xf4,0x32,0x43,0xbf,0x71,0x9d,0x63\n,0x9b,0xad,0xb5,0xfe,0xac,0x03,0xf8,0x0a\n,0x19,0xa9,0x6e,0xf1,0x0c,0xb1,0xd1,0x53\n,0x33,0xa8,0x37,0xb9,0x09,0x46,0xba,0x38\n,0x54,0xee,0x74,0xda,0x3f,0x25,0x85,0xef\n,0xc7,0xe1,0xe1,0x70,0xe1,0x7e,0x15,0xe5\n,0x63,0xe7,0xe0,0x96,0xe0,0x33,0xd9,0x1b\n,0x63,0xf7,0xac,0x92,0xe9,0x97,0x2e,0x0d\n,0x43,0xe5\n"
  },
  {
    "path": "test/default/auth.c",
    "content": "\n#define TEST_NAME \"auth\"\n#include \"cmptest.h\"\n\n/* \"Test Case 2\" from RFC 4231 */\nstatic unsigned char key[32] = \"Jefe\";\nstatic unsigned char c[]     = \"what do ya want for nothing?\";\n\n/* Hacker manifesto */\nstatic unsigned char key2[] =\n    \"Another one got caught today, it's all over the papers. \\\"Teenager \"\n    \"Arrested in Computer Crime Scandal\\\", \\\"Hacker Arrested after Bank \"\n    \"Tampering\\\"... Damn kids. They're all alike.\";\n\nstatic unsigned char a[crypto_auth_BYTES];\nstatic unsigned char a2[crypto_auth_hmacsha512_BYTES];\nstatic unsigned char a3[crypto_auth_hmacsha512_BYTES];\n\nint\nmain(void)\n{\n    crypto_auth_hmacsha512_state st;\n    crypto_auth_hmacsha256_state st256;\n    crypto_auth_hmacsha512256_state st512_256;\n    size_t                       i;\n\n    assert(crypto_auth_hmacsha512_statebytes() ==\n           sizeof(crypto_auth_hmacsha512_state));\n    crypto_auth(a, c, sizeof c - 1U, key);\n    for (i = 0; i < sizeof a; ++i) {\n        printf(\",0x%02x\", (unsigned int) a[i]);\n        if (i % 8 == 7)\n            printf(\"\\n\");\n    }\n    printf(\"\\n\");\n\n    crypto_auth_hmacsha512_init(&st, key, sizeof key);\n    crypto_auth_hmacsha512_update(&st, c, 1U);\n    crypto_auth_hmacsha512_update(&st, c, sizeof c - 2U);\n    crypto_auth_hmacsha512_final(&st, a2);\n    for (i = 0; i < sizeof a2; ++i) {\n        printf(\",0x%02x\", (unsigned int) a2[i]);\n        if (i % 8 == 7)\n            printf(\"\\n\");\n    }\n    printf(\"\\n\");\n\n    crypto_auth_hmacsha512_init(&st, key2, sizeof key2);\n    crypto_auth_hmacsha512_update(&st, c, 1U);\n    crypto_auth_hmacsha512_update(&st, c, sizeof c - 2U);\n    crypto_auth_hmacsha512_final(&st, a2);\n    for (i = 0; i < sizeof a2; ++i) {\n        printf(\",0x%02x\", (unsigned int) a2[i]);\n        if (i % 8 == 7)\n            printf(\"\\n\");\n    }\n\n    memset(a2, 0, sizeof a2);\n    crypto_auth_hmacsha256_init(&st256, key2, sizeof key2);\n    crypto_auth_hmacsha256_update(&st256, guard_page, 0U);\n    crypto_auth_hmacsha256_update(&st256, c, 1U);\n    crypto_auth_hmacsha256_update(&st256, c, sizeof c - 2U);\n    crypto_auth_hmacsha256_final(&st256, a2);\n    for (i = 0; i < sizeof a2; ++i) {\n        printf(\",0x%02x\", (unsigned int) a2[i]);\n        if (i % 8 == 7)\n            printf(\"\\n\");\n    }\n\n    /* Empty message tests: HMAC-SHA512 */\n    memset(a2, 0, sizeof a2);\n    crypto_auth_hmacsha512_init(&st, key, sizeof key);\n    crypto_auth_hmacsha512_final(&st, a2);\n\n    memset(a3, 0, sizeof a3);\n    crypto_auth_hmacsha512_init(&st, key, sizeof key);\n    crypto_auth_hmacsha512_update(&st, a2, 0U);\n    crypto_auth_hmacsha512_final(&st, a3);\n    assert(sodium_memcmp(a2, a3, sizeof a2) == 0);\n\n    memset(a3, 0, sizeof a3);\n    crypto_auth_hmacsha512_init(&st, key, sizeof key);\n    crypto_auth_hmacsha512_update(&st, guard_page, 0U);\n    crypto_auth_hmacsha512_final(&st, a3);\n    assert(sodium_memcmp(a2, a3, sizeof a2) == 0);\n\n    /* Empty message tests: HMAC-SHA512-256 */\n    memset(a2, 0, sizeof a2);\n    crypto_auth_hmacsha512256_init(&st512_256, key, sizeof key);\n    crypto_auth_hmacsha512256_final(&st512_256, a2);\n\n    memset(a3, 0, sizeof a3);\n    crypto_auth_hmacsha512256_init(&st512_256, key, sizeof key);\n    crypto_auth_hmacsha512256_update(&st512_256, a2, 0U);\n    crypto_auth_hmacsha512256_final(&st512_256, a3);\n    assert(sodium_memcmp(a2, a3, sizeof a2) == 0);\n\n    memset(a3, 0, sizeof a3);\n    crypto_auth_hmacsha512256_init(&st512_256, key, sizeof key);\n    crypto_auth_hmacsha512256_update(&st512_256, guard_page, 0U);\n    crypto_auth_hmacsha512256_final(&st512_256, a3);\n    assert(sodium_memcmp(a2, a3, sizeof a2) == 0);\n\n    /* Empty message tests: HMAC-SHA256 */\n\n    memset(a2, 0, sizeof a2);\n    crypto_auth_hmacsha256_init(&st256, key, sizeof key);\n    crypto_auth_hmacsha256_final(&st256, a2);\n\n    memset(a3, 0, sizeof a3);\n    crypto_auth_hmacsha256_init(&st256, key, sizeof key);\n    crypto_auth_hmacsha256_update(&st256, a2, 0U);\n    crypto_auth_hmacsha256_final(&st256, a3);\n    assert(sodium_memcmp(a2, a3, sizeof a2) == 0);\n\n    memset(a3, 0, sizeof a3);\n    crypto_auth_hmacsha256_init(&st256, key, sizeof key);\n    crypto_auth_hmacsha256_update(&st256, guard_page, 0U);\n    crypto_auth_hmacsha256_final(&st256, a3);\n    assert(sodium_memcmp(a2, a3, sizeof a2) == 0);\n\n    /* --- */\n\n    assert(crypto_auth_bytes() > 0U);\n    assert(crypto_auth_keybytes() > 0U);\n    assert(strcmp(crypto_auth_primitive(), \"hmacsha512256\") == 0);\n    assert(crypto_auth_hmacsha256_bytes() > 0U);\n    assert(crypto_auth_hmacsha256_keybytes() > 0U);\n    assert(crypto_auth_hmacsha512_bytes() > 0U);\n    assert(crypto_auth_hmacsha512_keybytes() > 0U);\n    assert(crypto_auth_hmacsha512256_bytes() == crypto_auth_bytes());\n    assert(crypto_auth_hmacsha512256_keybytes() == crypto_auth_keybytes());\n    assert(crypto_auth_hmacsha512256_statebytes() >=\n           crypto_auth_hmacsha512256_keybytes());\n    assert(crypto_auth_hmacsha256_statebytes() ==\n           sizeof(crypto_auth_hmacsha256_state));\n    assert(crypto_auth_hmacsha512_statebytes() ==\n           sizeof(crypto_auth_hmacsha512_state));\n\n    return 0;\n}\n"
  },
  {
    "path": "test/default/auth.exp",
    "content": ",0x16,0x4b,0x7a,0x7b,0xfc,0xf8,0x19,0xe2\n,0xe3,0x95,0xfb,0xe7,0x3b,0x56,0xe0,0xa3\n,0x87,0xbd,0x64,0x22,0x2e,0x83,0x1f,0xd6\n,0x10,0x27,0x0c,0xd7,0xea,0x25,0x05,0x54\n\n,0x7b,0x9d,0x83,0x38,0xeb,0x1e,0x3d,0xdd\n,0xba,0x8a,0x9a,0x35,0x08,0xd0,0x34,0xa1\n,0xec,0xbe,0x75,0x11,0x37,0xfa,0x1b,0xcb\n,0xa0,0xf9,0x2a,0x3e,0x6d,0xfc,0x79,0x80\n,0xb8,0x81,0xa8,0x64,0x5f,0x92,0x67,0x22\n,0x74,0x37,0x96,0x4b,0xf3,0x07,0x0b,0xe2\n,0xb3,0x36,0xb3,0xa3,0x20,0xf8,0x25,0xce\n,0xc9,0x87,0x2d,0xb2,0x50,0x4b,0xf3,0x6d\n\n,0x73,0xe0,0x0d,0xcb,0xf4,0xf8,0xa3,0x33\n,0x30,0xac,0x52,0xed,0x2c,0xc9,0xd1,0xb2\n,0xef,0xb1,0x77,0x13,0xd3,0xec,0xe3,0x96\n,0x14,0x9f,0x37,0x65,0x3c,0xfe,0x70,0xe7\n,0x1f,0x2c,0x6f,0x9a,0x62,0xc3,0xc5,0x3a\n,0x31,0x8a,0x9a,0x0b,0x3b,0x78,0x60,0xa4\n,0x31,0x6f,0x72,0x9b,0x8d,0x30,0x0f,0x15\n,0x9b,0x2f,0x60,0x93,0xa8,0x60,0xc1,0xed\n,0x62,0x27,0xe4,0xce,0x7c,0x7f,0xe7,0xa4\n,0xba,0x9e,0x2a,0xc3,0x42,0xc3,0x5d,0x24\n,0x03,0x3e,0x38,0x8c,0x9b,0xdc,0x29,0x9b\n,0x4a,0x50,0x50,0xf6,0x71,0x70,0xf4,0x83\n,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00\n,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00\n,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00\n,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00\n"
  },
  {
    "path": "test/default/auth2.c",
    "content": "/* \"Test Case AUTH256-4\" from RFC 4868 */\n\n#define TEST_NAME \"auth2\"\n#include \"cmptest.h\"\n\nstatic unsigned char key[32] = {\n    0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b,\n    0x0c, 0x0d, 0x0e, 0x0f, 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16,\n    0x17, 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, 0x20\n};\n\nstatic unsigned char c[50] = { 0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd,\n                               0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd,\n                               0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd,\n                               0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd,\n                               0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd,\n                               0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd,\n                               0xcd, 0xcd };\n\nstatic unsigned char a[32];\n\nint\nmain(void)\n{\n    int i;\n\n    crypto_auth_hmacsha256(a, c, sizeof c, key);\n    for (i = 0; i < 32; ++i) {\n        printf(\",0x%02x\", (unsigned int) a[i]);\n        if (i % 8 == 7)\n            printf(\"\\n\");\n    }\n    return 0;\n}\n"
  },
  {
    "path": "test/default/auth2.exp",
    "content": ",0x37,0x2e,0xfc,0xf9,0xb4,0x0b,0x35,0xc2\n,0x11,0x5b,0x13,0x46,0x90,0x3d,0x2e,0xf4\n,0x2f,0xce,0xd4,0x6f,0x08,0x46,0xe7,0x25\n,0x7b,0xb1,0x56,0xd3,0xd7,0xb3,0x0d,0x3f\n"
  },
  {
    "path": "test/default/auth3.c",
    "content": "/* \"Test Case AUTH256-4\" from RFC 4868 */\n\n#define TEST_NAME \"auth3\"\n#include \"cmptest.h\"\n\nstatic unsigned char key[32] = {\n    0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b,\n    0x0c, 0x0d, 0x0e, 0x0f, 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16,\n    0x17, 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, 0x20\n};\n\nstatic unsigned char c[50] = { 0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd,\n                               0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd,\n                               0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd,\n                               0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd,\n                               0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd,\n                               0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd,\n                               0xcd, 0xcd };\n\nstatic unsigned char a[32] = { 0x37, 0x2e, 0xfc, 0xf9, 0xb4, 0x0b, 0x35, 0xc2,\n                               0x11, 0x5b, 0x13, 0x46, 0x90, 0x3d, 0x2e, 0xf4,\n                               0x2f, 0xce, 0xd4, 0x6f, 0x08, 0x46, 0xe7, 0x25,\n                               0x7b, 0xb1, 0x56, 0xd3, 0xd7, 0xb3, 0x0d, 0x3f };\n\nint\nmain(void)\n{\n    static unsigned char a2[crypto_auth_hmacsha256_BYTES];\n\n    printf(\"%d\\n\", crypto_auth_hmacsha256_verify(a, c, sizeof c, key));\n\n    crypto_auth_hmacsha256(a2, guard_page, 0U, key);\n    assert(crypto_auth_hmacsha256_verify(a2, guard_page, 0U, key) == 0);\n\n    return 0;\n}\n"
  },
  {
    "path": "test/default/auth3.exp",
    "content": "0\n"
  },
  {
    "path": "test/default/auth5.c",
    "content": "\n#define TEST_NAME \"auth5\"\n#include \"cmptest.h\"\n\nstatic unsigned char key[32];\nstatic unsigned char c[1000];\nstatic unsigned char a[32];\n\nint\nmain(void)\n{\n    size_t clen;\n\n    for (clen = 0; clen < 1000; ++clen) {\n        crypto_auth_keygen(key);\n        randombytes_buf(c, clen);\n        crypto_auth(a, c, clen, key);\n        if (crypto_auth_verify(a, c, clen, key) != 0) {\n            printf(\"fail %u\\n\", (unsigned int) clen);\n            return 100;\n        }\n        if (clen > 0) {\n            c[rand() % clen] += 1 + (rand() % 255);\n            if (crypto_auth_verify(a, c, clen, key) == 0) {\n                printf(\"forgery %u\\n\", (unsigned int) clen);\n                return 100;\n            }\n            a[rand() % sizeof a] += 1 + (rand() % 255);\n            if (crypto_auth_verify(a, c, clen, key) == 0) {\n                printf(\"forgery %u\\n\", (unsigned int) clen);\n                return 100;\n            }\n        }\n    }\n\n    crypto_auth_keygen(key);\n    crypto_auth(a, guard_page, 0U, key);\n    assert(crypto_auth_verify(a, guard_page, 0U, key) == 0);\n\n    return 0;\n}\n"
  },
  {
    "path": "test/default/auth5.exp",
    "content": ""
  },
  {
    "path": "test/default/auth6.c",
    "content": "\n#define TEST_NAME \"auth6\"\n#include \"cmptest.h\"\n\n/* \"Test Case 2\" from RFC 4231 */\nstatic unsigned char key[32] = \"Jefe\";\nstatic unsigned char c[]     = \"what do ya want for nothing?\";\n\nstatic unsigned char a[64];\n\nint\nmain(void)\n{\n    int i;\n\n    crypto_auth_hmacsha512(a, c, sizeof c - 1U, key);\n    for (i = 0; i < 64; ++i) {\n        printf(\",0x%02x\", (unsigned int) a[i]);\n        if (i % 8 == 7)\n            printf(\"\\n\");\n    }\n    return 0;\n}\n"
  },
  {
    "path": "test/default/auth6.exp",
    "content": ",0x16,0x4b,0x7a,0x7b,0xfc,0xf8,0x19,0xe2\n,0xe3,0x95,0xfb,0xe7,0x3b,0x56,0xe0,0xa3\n,0x87,0xbd,0x64,0x22,0x2e,0x83,0x1f,0xd6\n,0x10,0x27,0x0c,0xd7,0xea,0x25,0x05,0x54\n,0x97,0x58,0xbf,0x75,0xc0,0x5a,0x99,0x4a\n,0x6d,0x03,0x4f,0x65,0xf8,0xf0,0xe6,0xfd\n,0xca,0xea,0xb1,0xa3,0x4d,0x4a,0x6b,0x4b\n,0x63,0x6e,0x07,0x0a,0x38,0xbc,0xe7,0x37\n"
  },
  {
    "path": "test/default/auth7.c",
    "content": "\n#define TEST_NAME \"auth7\"\n#include \"cmptest.h\"\n\nstatic unsigned char key[32];\nstatic unsigned char c[600];\nstatic unsigned char a[64];\n\nint\nmain(void)\n{\n    size_t clen;\n\n    for (clen = 0; clen < sizeof c; ++clen) {\n        crypto_auth_keygen(key);\n        randombytes_buf(c, clen);\n        crypto_auth_hmacsha512(a, c, clen, key);\n        if (crypto_auth_hmacsha512_verify(a, c, clen, key) != 0) {\n            printf(\"fail %u\\n\", (unsigned int) clen);\n            return 100;\n        }\n        if (clen > 0) {\n            c[(size_t) rand() % clen] += 1 + (rand() % 255);\n            if (crypto_auth_hmacsha512_verify(a, c, clen, key) == 0) {\n                printf(\"forgery %u\\n\", (unsigned int) clen);\n                return 100;\n            }\n            a[rand() % sizeof a] += 1 + (rand() % 255);\n            if (crypto_auth_hmacsha512_verify(a, c, clen, key) == 0) {\n                printf(\"forgery %u\\n\", (unsigned int) clen);\n                return 100;\n            }\n        }\n    }\n\n    crypto_auth_keygen(key);\n    crypto_auth_hmacsha512(a, guard_page, 0U, key);\n    assert(crypto_auth_hmacsha512_verify(a, guard_page, 0U, key) == 0);\n\n    return 0;\n}\n"
  },
  {
    "path": "test/default/auth7.exp",
    "content": ""
  },
  {
    "path": "test/default/box.c",
    "content": "\n#define TEST_NAME \"box\"\n#include \"cmptest.h\"\n\nstatic const unsigned char alicesk[32] = {\n    0x77, 0x07, 0x6d, 0x0a, 0x73, 0x18, 0xa5, 0x7d, 0x3c, 0x16, 0xc1,\n    0x72, 0x51, 0xb2, 0x66, 0x45, 0xdf, 0x4c, 0x2f, 0x87, 0xeb, 0xc0,\n    0x99, 0x2a, 0xb1, 0x77, 0xfb, 0xa5, 0x1d, 0xb9, 0x2c, 0x2a\n};\n\nstatic const unsigned char bobpk[32] = {\n    0xde, 0x9e, 0xdb, 0x7d, 0x7b, 0x7d, 0xc1, 0xb4, 0xd3, 0x5b, 0x61,\n    0xc2, 0xec, 0xe4, 0x35, 0x37, 0x3f, 0x83, 0x43, 0xc8, 0x5b, 0x78,\n    0x67, 0x4d, 0xad, 0xfc, 0x7e, 0x14, 0x6f, 0x88, 0x2b, 0x4f\n};\n\nstatic const unsigned char small_order_p[crypto_box_PUBLICKEYBYTES] = {\n    0xe0, 0xeb, 0x7a, 0x7c, 0x3b, 0x41, 0xb8, 0xae, 0x16, 0x56, 0xe3,\n    0xfa, 0xf1, 0x9f, 0xc4, 0x6a, 0xda, 0x09, 0x8d, 0xeb, 0x9c, 0x32,\n    0xb1, 0xfd, 0x86, 0x62, 0x05, 0x16, 0x5f, 0x49, 0xb8, 0x00\n};\n\nstatic const unsigned char nonce[24] = { 0x69, 0x69, 0x6e, 0xe9, 0x55, 0xb6,\n                                         0x2b, 0x73, 0xcd, 0x62, 0xbd, 0xa8,\n                                         0x75, 0xfc, 0x73, 0xd6, 0x82, 0x19,\n                                         0xe0, 0x03, 0x6b, 0x7a, 0x0b, 0x37 };\n\n/* API requires first 32 bytes to be 0 */\nstatic const unsigned char m[163] = {\n    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,\n    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,\n    0,    0,    0,    0,    0,    0,    0,    0,    0xbe, 0x07, 0x5f, 0xc5,\n    0x3c, 0x81, 0xf2, 0xd5, 0xcf, 0x14, 0x13, 0x16, 0xeb, 0xeb, 0x0c, 0x7b,\n    0x52, 0x28, 0xc5, 0x2a, 0x4c, 0x62, 0xcb, 0xd4, 0x4b, 0x66, 0x84, 0x9b,\n    0x64, 0x24, 0x4f, 0xfc, 0xe5, 0xec, 0xba, 0xaf, 0x33, 0xbd, 0x75, 0x1a,\n    0x1a, 0xc7, 0x28, 0xd4, 0x5e, 0x6c, 0x61, 0x29, 0x6c, 0xdc, 0x3c, 0x01,\n    0x23, 0x35, 0x61, 0xf4, 0x1d, 0xb6, 0x6c, 0xce, 0x31, 0x4a, 0xdb, 0x31,\n    0x0e, 0x3b, 0xe8, 0x25, 0x0c, 0x46, 0xf0, 0x6d, 0xce, 0xea, 0x3a, 0x7f,\n    0xa1, 0x34, 0x80, 0x57, 0xe2, 0xf6, 0x55, 0x6a, 0xd6, 0xb1, 0x31, 0x8a,\n    0x02, 0x4a, 0x83, 0x8f, 0x21, 0xaf, 0x1f, 0xde, 0x04, 0x89, 0x77, 0xeb,\n    0x48, 0xf5, 0x9f, 0xfd, 0x49, 0x24, 0xca, 0x1c, 0x60, 0x90, 0x2e, 0x52,\n    0xf0, 0xa0, 0x89, 0xbc, 0x76, 0x89, 0x70, 0x40, 0xe0, 0x82, 0xf9, 0x37,\n    0x76, 0x38, 0x48, 0x64, 0x5e, 0x07, 0x05\n};\n\nstatic unsigned char c[163];\n\nint\nmain(void)\n{\n    unsigned char k[crypto_box_BEFORENMBYTES];\n    int           i;\n    int           ret;\n\n    ret = crypto_box(c, m, 163, nonce, bobpk, alicesk);\n    assert(ret == 0);\n    for (i = 16; i < 163; ++i) {\n        printf(\",0x%02x\", (unsigned int) c[i]);\n        if (i % 8 == 7)\n            printf(\"\\n\");\n    }\n    printf(\"\\n\");\n\n    ret = crypto_box(c, m, 163, nonce, small_order_p, alicesk);\n    assert(ret == -1);\n\n    memset(c, 0, sizeof c);\n\n    ret = crypto_box_beforenm(k, bobpk, alicesk);\n    assert(ret == 0);\n    crypto_box_afternm(c, m, 163, nonce, k);\n    for (i = 16; i < 163; ++i) {\n        printf(\",0x%02x\", (unsigned int) c[i]);\n        if (i % 8 == 7)\n            printf(\"\\n\");\n    }\n    printf(\"\\n\");\n\n    ret = crypto_box_beforenm(k, small_order_p, alicesk);\n    assert(ret == -1);\n\n    assert(crypto_box_seedbytes() > 0U);\n    assert(crypto_box_publickeybytes() > 0U);\n    assert(crypto_box_secretkeybytes() > 0U);\n    assert(crypto_box_beforenmbytes() > 0U);\n    assert(crypto_box_noncebytes() > 0U);\n    assert(crypto_box_zerobytes() > 0U);\n    assert(crypto_box_boxzerobytes() > 0U);\n    assert(crypto_box_macbytes() > 0U);\n    assert(crypto_box_messagebytes_max() > 0U);\n    assert(strcmp(crypto_box_primitive(), \"curve25519xsalsa20poly1305\") == 0);\n    assert(crypto_box_curve25519xsalsa20poly1305_seedbytes() ==\n           crypto_box_seedbytes());\n    assert(crypto_box_curve25519xsalsa20poly1305_publickeybytes() ==\n           crypto_box_publickeybytes());\n    assert(crypto_box_curve25519xsalsa20poly1305_secretkeybytes() ==\n           crypto_box_secretkeybytes());\n    assert(crypto_box_curve25519xsalsa20poly1305_beforenmbytes() ==\n           crypto_box_beforenmbytes());\n    assert(crypto_box_curve25519xsalsa20poly1305_noncebytes() ==\n           crypto_box_noncebytes());\n    assert(crypto_box_curve25519xsalsa20poly1305_zerobytes() ==\n           crypto_box_zerobytes());\n    assert(crypto_box_curve25519xsalsa20poly1305_boxzerobytes() ==\n           crypto_box_boxzerobytes());\n    assert(crypto_box_curve25519xsalsa20poly1305_macbytes() ==\n           crypto_box_macbytes());\n    assert(crypto_box_curve25519xsalsa20poly1305_messagebytes_max() ==\n           crypto_box_messagebytes_max());\n\n    return 0;\n}\n"
  },
  {
    "path": "test/default/box.exp",
    "content": ",0xf3,0xff,0xc7,0x70,0x3f,0x94,0x00,0xe5\n,0x2a,0x7d,0xfb,0x4b,0x3d,0x33,0x05,0xd9\n,0x8e,0x99,0x3b,0x9f,0x48,0x68,0x12,0x73\n,0xc2,0x96,0x50,0xba,0x32,0xfc,0x76,0xce\n,0x48,0x33,0x2e,0xa7,0x16,0x4d,0x96,0xa4\n,0x47,0x6f,0xb8,0xc5,0x31,0xa1,0x18,0x6a\n,0xc0,0xdf,0xc1,0x7c,0x98,0xdc,0xe8,0x7b\n,0x4d,0xa7,0xf0,0x11,0xec,0x48,0xc9,0x72\n,0x71,0xd2,0xc2,0x0f,0x9b,0x92,0x8f,0xe2\n,0x27,0x0d,0x6f,0xb8,0x63,0xd5,0x17,0x38\n,0xb4,0x8e,0xee,0xe3,0x14,0xa7,0xcc,0x8a\n,0xb9,0x32,0x16,0x45,0x48,0xe5,0x26,0xae\n,0x90,0x22,0x43,0x68,0x51,0x7a,0xcf,0xea\n,0xbd,0x6b,0xb3,0x73,0x2b,0xc0,0xe9,0xda\n,0x99,0x83,0x2b,0x61,0xca,0x01,0xb6,0xde\n,0x56,0x24,0x4a,0x9e,0x88,0xd5,0xf9,0xb3\n,0x79,0x73,0xf6,0x22,0xa4,0x3d,0x14,0xa6\n,0x59,0x9b,0x1f,0x65,0x4c,0xb4,0x5a,0x74\n,0xe3,0x55,0xa5\n,0xf3,0xff,0xc7,0x70,0x3f,0x94,0x00,0xe5\n,0x2a,0x7d,0xfb,0x4b,0x3d,0x33,0x05,0xd9\n,0x8e,0x99,0x3b,0x9f,0x48,0x68,0x12,0x73\n,0xc2,0x96,0x50,0xba,0x32,0xfc,0x76,0xce\n,0x48,0x33,0x2e,0xa7,0x16,0x4d,0x96,0xa4\n,0x47,0x6f,0xb8,0xc5,0x31,0xa1,0x18,0x6a\n,0xc0,0xdf,0xc1,0x7c,0x98,0xdc,0xe8,0x7b\n,0x4d,0xa7,0xf0,0x11,0xec,0x48,0xc9,0x72\n,0x71,0xd2,0xc2,0x0f,0x9b,0x92,0x8f,0xe2\n,0x27,0x0d,0x6f,0xb8,0x63,0xd5,0x17,0x38\n,0xb4,0x8e,0xee,0xe3,0x14,0xa7,0xcc,0x8a\n,0xb9,0x32,0x16,0x45,0x48,0xe5,0x26,0xae\n,0x90,0x22,0x43,0x68,0x51,0x7a,0xcf,0xea\n,0xbd,0x6b,0xb3,0x73,0x2b,0xc0,0xe9,0xda\n,0x99,0x83,0x2b,0x61,0xca,0x01,0xb6,0xde\n,0x56,0x24,0x4a,0x9e,0x88,0xd5,0xf9,0xb3\n,0x79,0x73,0xf6,0x22,0xa4,0x3d,0x14,0xa6\n,0x59,0x9b,0x1f,0x65,0x4c,0xb4,0x5a,0x74\n,0xe3,0x55,0xa5\n"
  },
  {
    "path": "test/default/box2.c",
    "content": "\n#define TEST_NAME \"box2\"\n#include \"cmptest.h\"\n\nstatic unsigned char bobsk[32] = { 0x5d, 0xab, 0x08, 0x7e, 0x62, 0x4a, 0x8a,\n                                   0x4b, 0x79, 0xe1, 0x7f, 0x8b, 0x83, 0x80,\n                                   0x0e, 0xe6, 0x6f, 0x3b, 0xb1, 0x29, 0x26,\n                                   0x18, 0xb6, 0xfd, 0x1c, 0x2f, 0x8b, 0x27,\n                                   0xff, 0x88, 0xe0, 0xeb };\n\nstatic unsigned char alicepk[32] = { 0x85, 0x20, 0xf0, 0x09, 0x89, 0x30, 0xa7,\n                                     0x54, 0x74, 0x8b, 0x7d, 0xdc, 0xb4, 0x3e,\n                                     0xf7, 0x5a, 0x0d, 0xbf, 0x3a, 0x0d, 0x26,\n                                     0x38, 0x1a, 0xf4, 0xeb, 0xa4, 0xa9, 0x8e,\n                                     0xaa, 0x9b, 0x4e, 0x6a };\n\nstatic const unsigned char small_order_p[crypto_box_PUBLICKEYBYTES] = {\n    0xe0, 0xeb, 0x7a, 0x7c, 0x3b, 0x41, 0xb8, 0xae, 0x16, 0x56, 0xe3,\n    0xfa, 0xf1, 0x9f, 0xc4, 0x6a, 0xda, 0x09, 0x8d, 0xeb, 0x9c, 0x32,\n    0xb1, 0xfd, 0x86, 0x62, 0x05, 0x16, 0x5f, 0x49, 0xb8, 0x00\n};\n\nstatic unsigned char nonce[24] = { 0x69, 0x69, 0x6e, 0xe9, 0x55, 0xb6,\n                                   0x2b, 0x73, 0xcd, 0x62, 0xbd, 0xa8,\n                                   0x75, 0xfc, 0x73, 0xd6, 0x82, 0x19,\n                                   0xe0, 0x03, 0x6b, 0x7a, 0x0b, 0x37 };\n\n/* API requires first 16 bytes to be 0 */\nstatic unsigned char c[163] = {\n    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,\n    0,    0,    0,    0,    0xf3, 0xff, 0xc7, 0x70, 0x3f, 0x94, 0x00, 0xe5,\n    0x2a, 0x7d, 0xfb, 0x4b, 0x3d, 0x33, 0x05, 0xd9, 0x8e, 0x99, 0x3b, 0x9f,\n    0x48, 0x68, 0x12, 0x73, 0xc2, 0x96, 0x50, 0xba, 0x32, 0xfc, 0x76, 0xce,\n    0x48, 0x33, 0x2e, 0xa7, 0x16, 0x4d, 0x96, 0xa4, 0x47, 0x6f, 0xb8, 0xc5,\n    0x31, 0xa1, 0x18, 0x6a, 0xc0, 0xdf, 0xc1, 0x7c, 0x98, 0xdc, 0xe8, 0x7b,\n    0x4d, 0xa7, 0xf0, 0x11, 0xec, 0x48, 0xc9, 0x72, 0x71, 0xd2, 0xc2, 0x0f,\n    0x9b, 0x92, 0x8f, 0xe2, 0x27, 0x0d, 0x6f, 0xb8, 0x63, 0xd5, 0x17, 0x38,\n    0xb4, 0x8e, 0xee, 0xe3, 0x14, 0xa7, 0xcc, 0x8a, 0xb9, 0x32, 0x16, 0x45,\n    0x48, 0xe5, 0x26, 0xae, 0x90, 0x22, 0x43, 0x68, 0x51, 0x7a, 0xcf, 0xea,\n    0xbd, 0x6b, 0xb3, 0x73, 0x2b, 0xc0, 0xe9, 0xda, 0x99, 0x83, 0x2b, 0x61,\n    0xca, 0x01, 0xb6, 0xde, 0x56, 0x24, 0x4a, 0x9e, 0x88, 0xd5, 0xf9, 0xb3,\n    0x79, 0x73, 0xf6, 0x22, 0xa4, 0x3d, 0x14, 0xa6, 0x59, 0x9b, 0x1f, 0x65,\n    0x4c, 0xb4, 0x5a, 0x74, 0xe3, 0x55, 0xa5\n};\n\nstatic unsigned char m[163];\n\nint\nmain(void)\n{\n    unsigned char k[crypto_box_BEFORENMBYTES];\n    int           i;\n    int           ret;\n\n    if (crypto_box_open(m, c, 163, nonce, alicepk, bobsk) == 0) {\n        for (i = 32; i < 163; ++i) {\n            printf(\",0x%02x\", (unsigned int) m[i]);\n            if (i % 8 == 7)\n                printf(\"\\n\");\n        }\n        printf(\"\\n\");\n    }\n    ret = crypto_box_open(m, c, 163, nonce, small_order_p, bobsk);\n    assert(ret == -1);\n\n    memset(m, 0, sizeof m);\n    ret = crypto_box_beforenm(k, small_order_p, bobsk);\n    assert(ret == -1);\n    ret = crypto_box_beforenm(k, alicepk, bobsk);\n    assert(ret == 0);\n    if (crypto_box_open_afternm(m, c, 163, nonce, k) == 0) {\n        for (i = 32; i < 163; ++i) {\n            printf(\",0x%02x\", (unsigned int) m[i]);\n            if (i % 8 == 7)\n                printf(\"\\n\");\n        }\n        printf(\"\\n\");\n    }\n    return 0;\n}\n"
  },
  {
    "path": "test/default/box2.exp",
    "content": ",0xbe,0x07,0x5f,0xc5,0x3c,0x81,0xf2,0xd5\n,0xcf,0x14,0x13,0x16,0xeb,0xeb,0x0c,0x7b\n,0x52,0x28,0xc5,0x2a,0x4c,0x62,0xcb,0xd4\n,0x4b,0x66,0x84,0x9b,0x64,0x24,0x4f,0xfc\n,0xe5,0xec,0xba,0xaf,0x33,0xbd,0x75,0x1a\n,0x1a,0xc7,0x28,0xd4,0x5e,0x6c,0x61,0x29\n,0x6c,0xdc,0x3c,0x01,0x23,0x35,0x61,0xf4\n,0x1d,0xb6,0x6c,0xce,0x31,0x4a,0xdb,0x31\n,0x0e,0x3b,0xe8,0x25,0x0c,0x46,0xf0,0x6d\n,0xce,0xea,0x3a,0x7f,0xa1,0x34,0x80,0x57\n,0xe2,0xf6,0x55,0x6a,0xd6,0xb1,0x31,0x8a\n,0x02,0x4a,0x83,0x8f,0x21,0xaf,0x1f,0xde\n,0x04,0x89,0x77,0xeb,0x48,0xf5,0x9f,0xfd\n,0x49,0x24,0xca,0x1c,0x60,0x90,0x2e,0x52\n,0xf0,0xa0,0x89,0xbc,0x76,0x89,0x70,0x40\n,0xe0,0x82,0xf9,0x37,0x76,0x38,0x48,0x64\n,0x5e,0x07,0x05\n,0xbe,0x07,0x5f,0xc5,0x3c,0x81,0xf2,0xd5\n,0xcf,0x14,0x13,0x16,0xeb,0xeb,0x0c,0x7b\n,0x52,0x28,0xc5,0x2a,0x4c,0x62,0xcb,0xd4\n,0x4b,0x66,0x84,0x9b,0x64,0x24,0x4f,0xfc\n,0xe5,0xec,0xba,0xaf,0x33,0xbd,0x75,0x1a\n,0x1a,0xc7,0x28,0xd4,0x5e,0x6c,0x61,0x29\n,0x6c,0xdc,0x3c,0x01,0x23,0x35,0x61,0xf4\n,0x1d,0xb6,0x6c,0xce,0x31,0x4a,0xdb,0x31\n,0x0e,0x3b,0xe8,0x25,0x0c,0x46,0xf0,0x6d\n,0xce,0xea,0x3a,0x7f,0xa1,0x34,0x80,0x57\n,0xe2,0xf6,0x55,0x6a,0xd6,0xb1,0x31,0x8a\n,0x02,0x4a,0x83,0x8f,0x21,0xaf,0x1f,0xde\n,0x04,0x89,0x77,0xeb,0x48,0xf5,0x9f,0xfd\n,0x49,0x24,0xca,0x1c,0x60,0x90,0x2e,0x52\n,0xf0,0xa0,0x89,0xbc,0x76,0x89,0x70,0x40\n,0xe0,0x82,0xf9,0x37,0x76,0x38,0x48,0x64\n,0x5e,0x07,0x05\n"
  },
  {
    "path": "test/default/box7.c",
    "content": "\n#define TEST_NAME \"box7\"\n#include \"cmptest.h\"\n\nstatic unsigned char alicesk[crypto_box_SECRETKEYBYTES];\nstatic unsigned char alicepk[crypto_box_PUBLICKEYBYTES];\nstatic unsigned char bobsk[crypto_box_SECRETKEYBYTES];\nstatic unsigned char bobpk[crypto_box_PUBLICKEYBYTES];\nstatic unsigned char n[crypto_box_NONCEBYTES];\n\nint\nmain(void)\n{\n    unsigned char *m;\n    unsigned char *c;\n    unsigned char *m2;\n    size_t         mlen;\n    size_t         mlen_max = 1000;\n    size_t         i;\n    int            ret;\n\n    m  = (unsigned char *) sodium_malloc(mlen_max);\n    c  = (unsigned char *) sodium_malloc(mlen_max);\n    m2 = (unsigned char *) sodium_malloc(mlen_max);\n    memset(m, 0, crypto_box_ZEROBYTES);\n    crypto_box_keypair(alicepk, alicesk);\n    crypto_box_keypair(bobpk, bobsk);\n    for (mlen = 0; mlen + crypto_box_ZEROBYTES <= mlen_max; mlen++) {\n        randombytes_buf(n, crypto_box_NONCEBYTES);\n        randombytes_buf(m + crypto_box_ZEROBYTES, mlen);\n        ret = crypto_box(c, m, mlen + crypto_box_ZEROBYTES, n, bobpk, alicesk);\n        assert(ret == 0);\n        if (crypto_box_open(m2, c, mlen + crypto_box_ZEROBYTES, n, alicepk,\n                            bobsk) == 0) {\n            for (i = 0; i < mlen + crypto_box_ZEROBYTES; ++i) {\n                if (m2[i] != m[i]) {\n                    printf(\"bad decryption\\n\");\n                    break;\n                }\n            }\n        } else {\n            printf(\"ciphertext fails verification\\n\");\n        }\n    }\n    sodium_free(m);\n    sodium_free(c);\n    sodium_free(m2);\n\n    return 0;\n}\n"
  },
  {
    "path": "test/default/box7.exp",
    "content": ""
  },
  {
    "path": "test/default/box8.c",
    "content": "\n#define TEST_NAME \"box8\"\n#include \"cmptest.h\"\n\nstatic unsigned char alicesk[crypto_box_SECRETKEYBYTES];\nstatic unsigned char alicepk[crypto_box_PUBLICKEYBYTES];\nstatic unsigned char bobsk[crypto_box_SECRETKEYBYTES];\nstatic unsigned char bobpk[crypto_box_PUBLICKEYBYTES];\nstatic unsigned char n[crypto_box_NONCEBYTES];\n\nint\nmain(void)\n{\n    unsigned char *m;\n    unsigned char *c;\n    unsigned char *m2;\n    size_t         mlen;\n    size_t         mlen_max = 1000;\n    size_t         i;\n    int            faults;\n    int            ret;\n\n    m  = (unsigned char *) sodium_malloc(mlen_max);\n    c  = (unsigned char *) sodium_malloc(mlen_max);\n    m2 = (unsigned char *) sodium_malloc(mlen_max);\n    crypto_box_keypair(alicepk, alicesk);\n    crypto_box_keypair(bobpk, bobsk);\n    for (mlen = 0; mlen + crypto_box_ZEROBYTES <= mlen_max; mlen++) {\n        randombytes_buf(n, crypto_box_NONCEBYTES);\n        randombytes_buf(m + crypto_box_ZEROBYTES, mlen);\n        ret = crypto_box(c, m, mlen + crypto_box_ZEROBYTES, n, bobpk, alicesk);\n        assert(ret == 0);\n#ifdef BROWSER_TESTS\n        faults = 1;\n#else\n        faults = 5;\n#endif\n        while (faults > 0) {\n            c[rand() % (mlen + crypto_box_ZEROBYTES)] = rand();\n            if (crypto_box_open(m2, c, mlen + crypto_box_ZEROBYTES, n, alicepk,\n                                bobsk) == 0) {\n                for (i = 0; i < mlen + crypto_box_ZEROBYTES; ++i) {\n                    if (m2[i] != m[i]) {\n                        printf(\"forgery\\n\");\n                        return 100;\n                    }\n                }\n            } else {\n                faults--;\n            }\n        }\n    }\n    sodium_free(m);\n    sodium_free(c);\n    sodium_free(m2);\n\n    return 0;\n}\n"
  },
  {
    "path": "test/default/box8.exp",
    "content": ""
  },
  {
    "path": "test/default/box_easy.c",
    "content": "\n#define TEST_NAME \"box_easy\"\n#include \"cmptest.h\"\n\nstatic unsigned char alicesk[32] = { 0x77, 0x07, 0x6d, 0x0a, 0x73, 0x18, 0xa5,\n                                     0x7d, 0x3c, 0x16, 0xc1, 0x72, 0x51, 0xb2,\n                                     0x66, 0x45, 0xdf, 0x4c, 0x2f, 0x87, 0xeb,\n                                     0xc0, 0x99, 0x2a, 0xb1, 0x77, 0xfb, 0xa5,\n                                     0x1d, 0xb9, 0x2c, 0x2a };\n\nstatic unsigned char bobpk[32] = { 0xde, 0x9e, 0xdb, 0x7d, 0x7b, 0x7d, 0xc1,\n                                   0xb4, 0xd3, 0x5b, 0x61, 0xc2, 0xec, 0xe4,\n                                   0x35, 0x37, 0x3f, 0x83, 0x43, 0xc8, 0x5b,\n                                   0x78, 0x67, 0x4d, 0xad, 0xfc, 0x7e, 0x14,\n                                   0x6f, 0x88, 0x2b, 0x4f };\n\nstatic unsigned char nonce[24] = { 0x69, 0x69, 0x6e, 0xe9, 0x55, 0xb6,\n                                   0x2b, 0x73, 0xcd, 0x62, 0xbd, 0xa8,\n                                   0x75, 0xfc, 0x73, 0xd6, 0x82, 0x19,\n                                   0xe0, 0x03, 0x6b, 0x7a, 0x0b, 0x37 };\n\nstatic unsigned char m[131] = {\n    0xbe, 0x07, 0x5f, 0xc5, 0x3c, 0x81, 0xf2, 0xd5, 0xcf, 0x14, 0x13, 0x16,\n    0xeb, 0xeb, 0x0c, 0x7b, 0x52, 0x28, 0xc5, 0x2a, 0x4c, 0x62, 0xcb, 0xd4,\n    0x4b, 0x66, 0x84, 0x9b, 0x64, 0x24, 0x4f, 0xfc, 0xe5, 0xec, 0xba, 0xaf,\n    0x33, 0xbd, 0x75, 0x1a, 0x1a, 0xc7, 0x28, 0xd4, 0x5e, 0x6c, 0x61, 0x29,\n    0x6c, 0xdc, 0x3c, 0x01, 0x23, 0x35, 0x61, 0xf4, 0x1d, 0xb6, 0x6c, 0xce,\n    0x31, 0x4a, 0xdb, 0x31, 0x0e, 0x3b, 0xe8, 0x25, 0x0c, 0x46, 0xf0, 0x6d,\n    0xce, 0xea, 0x3a, 0x7f, 0xa1, 0x34, 0x80, 0x57, 0xe2, 0xf6, 0x55, 0x6a,\n    0xd6, 0xb1, 0x31, 0x8a, 0x02, 0x4a, 0x83, 0x8f, 0x21, 0xaf, 0x1f, 0xde,\n    0x04, 0x89, 0x77, 0xeb, 0x48, 0xf5, 0x9f, 0xfd, 0x49, 0x24, 0xca, 0x1c,\n    0x60, 0x90, 0x2e, 0x52, 0xf0, 0xa0, 0x89, 0xbc, 0x76, 0x89, 0x70, 0x40,\n    0xe0, 0x82, 0xf9, 0x37, 0x76, 0x38, 0x48, 0x64, 0x5e, 0x07, 0x05\n};\n\nstatic unsigned char c[147 + crypto_box_MACBYTES];\n\nint\nmain(void)\n{\n    size_t i;\n    int    ret;\n\n    ret = crypto_box_easy(c, m, 131, nonce, bobpk, alicesk);\n    assert(ret == 0);\n    for (i = 0; i < 131 + crypto_box_MACBYTES; ++i) {\n        printf(\",0x%02x\", (unsigned int) c[i]);\n    }\n    printf(\"\\n\");\n\n    /* Null message */\n\n    ret = crypto_box_easy(c, guard_page, 0, nonce, bobpk, alicesk);\n    assert(ret == 0);\n    for (i = 0; i < 1 + crypto_box_MACBYTES; ++i) {\n        printf(\",0x%02x\", (unsigned int) c[i]);\n    }\n    printf(\"\\n\");\n\n    ret =\n        crypto_box_open_easy(c, c, crypto_box_MACBYTES, nonce, bobpk, alicesk);\n    assert(ret == 0);\n    for (i = 0; i < 1 + crypto_box_MACBYTES; ++i) {\n        printf(\",0x%02x\", (unsigned int) c[i]);\n    }\n    printf(\"\\n\");\n    c[randombytes_uniform(crypto_box_MACBYTES)]++;\n    ret = crypto_box_open_easy(c, c, crypto_box_MACBYTES, nonce, bobpk, alicesk);\n    assert(ret == -1);\n\n    return 0;\n}\n"
  },
  {
    "path": "test/default/box_easy.exp",
    "content": ",0xf3,0xff,0xc7,0x70,0x3f,0x94,0x00,0xe5,0x2a,0x7d,0xfb,0x4b,0x3d,0x33,0x05,0xd9,0x8e,0x99,0x3b,0x9f,0x48,0x68,0x12,0x73,0xc2,0x96,0x50,0xba,0x32,0xfc,0x76,0xce,0x48,0x33,0x2e,0xa7,0x16,0x4d,0x96,0xa4,0x47,0x6f,0xb8,0xc5,0x31,0xa1,0x18,0x6a,0xc0,0xdf,0xc1,0x7c,0x98,0xdc,0xe8,0x7b,0x4d,0xa7,0xf0,0x11,0xec,0x48,0xc9,0x72,0x71,0xd2,0xc2,0x0f,0x9b,0x92,0x8f,0xe2,0x27,0x0d,0x6f,0xb8,0x63,0xd5,0x17,0x38,0xb4,0x8e,0xee,0xe3,0x14,0xa7,0xcc,0x8a,0xb9,0x32,0x16,0x45,0x48,0xe5,0x26,0xae,0x90,0x22,0x43,0x68,0x51,0x7a,0xcf,0xea,0xbd,0x6b,0xb3,0x73,0x2b,0xc0,0xe9,0xda,0x99,0x83,0x2b,0x61,0xca,0x01,0xb6,0xde,0x56,0x24,0x4a,0x9e,0x88,0xd5,0xf9,0xb3,0x79,0x73,0xf6,0x22,0xa4,0x3d,0x14,0xa6,0x59,0x9b,0x1f,0x65,0x4c,0xb4,0x5a,0x74,0xe3,0x55,0xa5\n,0x25,0x39,0x12,0x1d,0x8e,0x23,0x4e,0x65,0x2d,0x65,0x1f,0xa4,0xc8,0xcf,0xf8,0x80,0x8e\n,0x25,0x39,0x12,0x1d,0x8e,0x23,0x4e,0x65,0x2d,0x65,0x1f,0xa4,0xc8,0xcf,0xf8,0x80,0x8e\n"
  },
  {
    "path": "test/default/box_easy2.c",
    "content": "\n#define TEST_NAME \"box_easy2\"\n#include \"cmptest.h\"\n\nstatic const unsigned char small_order_p[crypto_box_PUBLICKEYBYTES] = {\n    0xe0, 0xeb, 0x7a, 0x7c, 0x3b, 0x41, 0xb8, 0xae, 0x16, 0x56, 0xe3,\n    0xfa, 0xf1, 0x9f, 0xc4, 0x6a, 0xda, 0x09, 0x8d, 0xeb, 0x9c, 0x32,\n    0xb1, 0xfd, 0x86, 0x62, 0x05, 0x16, 0x5f, 0x49, 0xb8, 0x00\n};\n\nint\nmain(void)\n{\n    unsigned char *alicepk;\n    unsigned char *alicesk;\n    unsigned char *bobpk;\n    unsigned char *bobsk;\n    unsigned char *mac;\n    unsigned char *nonce;\n    unsigned char *k1;\n    unsigned char *k2;\n    unsigned char *m;\n    unsigned char *m2;\n    unsigned char *c;\n    size_t         mlen;\n    size_t         i;\n    size_t         m_size;\n    size_t         m2_size;\n    size_t         c_size;\n    int            ret;\n\n    m2_size = m_size = 7U + randombytes_uniform(1000);\n    c_size           = crypto_box_MACBYTES + m_size;\n    m                = (unsigned char *) sodium_malloc(m_size);\n    m2               = (unsigned char *) sodium_malloc(m2_size);\n    c                = (unsigned char *) sodium_malloc(c_size);\n    alicepk = (unsigned char *) sodium_malloc(crypto_box_PUBLICKEYBYTES);\n    alicesk = (unsigned char *) sodium_malloc(crypto_box_SECRETKEYBYTES);\n    bobpk   = (unsigned char *) sodium_malloc(crypto_box_PUBLICKEYBYTES);\n    bobsk   = (unsigned char *) sodium_malloc(crypto_box_SECRETKEYBYTES);\n    mac     = (unsigned char *) sodium_malloc(crypto_box_MACBYTES);\n    nonce   = (unsigned char *) sodium_malloc(crypto_box_NONCEBYTES);\n    k1      = (unsigned char *) sodium_malloc(crypto_box_BEFORENMBYTES);\n    k2      = (unsigned char *) sodium_malloc(crypto_box_BEFORENMBYTES);\n    crypto_box_keypair(alicepk, alicesk);\n    crypto_box_keypair(bobpk, bobsk);\n    mlen = (size_t) randombytes_uniform((uint32_t) m_size) + 1U;\n    randombytes_buf(m, mlen);\n    randombytes_buf(nonce, crypto_box_NONCEBYTES);\n    ret = crypto_box_easy(c, m, mlen, nonce, bobpk, alicesk);\n    assert(ret == 0);\n    if (crypto_box_open_easy(m2, c,\n                             (unsigned long long) mlen + crypto_box_MACBYTES,\n                             nonce, alicepk, bobsk) != 0) {\n        printf(\"open() failed\");\n        return 1;\n    }\n    printf(\"%d\\n\", memcmp(m, m2, mlen));\n\n    for (i = 0; i < mlen + crypto_box_MACBYTES - 1; i++) {\n        if (crypto_box_open_easy(m2, c, (unsigned long long) i, nonce, alicepk,\n                                 bobsk) == 0) {\n            printf(\"short open() should have failed\");\n            return 1;\n        }\n    }\n    memcpy(c, m, mlen);\n    ret =\n        crypto_box_easy(c, c, (unsigned long long) mlen, nonce, bobpk, alicesk);\n    assert(ret == 0);\n    printf(\"%d\\n\", memcmp(m, c, mlen) == 0);\n    printf(\"%d\\n\", memcmp(m, c + crypto_box_MACBYTES, mlen) == 0);\n    if (crypto_box_open_easy(c, c,\n                             (unsigned long long) mlen + crypto_box_MACBYTES,\n                             nonce, alicepk, bobsk) != 0) {\n        printf(\"crypto_box_open_easy() failed\\n\");\n    }\n\n    ret = crypto_box_beforenm(k1, small_order_p, bobsk);\n    assert(ret == -1);\n    ret = crypto_box_beforenm(k2, small_order_p, alicesk);\n    assert(ret == -1);\n\n    ret = crypto_box_beforenm(k1, alicepk, bobsk);\n    assert(ret == 0);\n    ret = crypto_box_beforenm(k2, bobpk, alicesk);\n    assert(ret == 0);\n\n    memset(m2, 0, m2_size);\n\n    if (crypto_box_easy_afternm(c, m, 0, nonce, k1) != 0) {\n        printf(\n            \"crypto_box_easy_afternm() with a null ciphertext should have \"\n            \"worked\\n\");\n    }\n    crypto_box_easy_afternm(c, m, (unsigned long long) mlen, nonce, k1);\n    if (crypto_box_open_easy_afternm(\n            m2, c, (unsigned long long) mlen + crypto_box_MACBYTES, nonce,\n            k2) != 0) {\n        printf(\"crypto_box_open_easy_afternm() failed\\n\");\n    }\n    printf(\"%d\\n\", memcmp(m, m2, mlen));\n    if (crypto_box_open_easy_afternm(m2, c, crypto_box_MACBYTES - 1U, nonce,\n                                     k2) == 0) {\n        printf(\n            \"crypto_box_open_easy_afternm() with a huge ciphertext should have \"\n            \"failed\\n\");\n    }\n    memset(m2, 0, m2_size);\n    ret = crypto_box_detached(c, mac, m, (unsigned long long) mlen, nonce,\n                              small_order_p, bobsk);\n    assert(ret == -1);\n    ret = crypto_box_detached(c, mac, m, (unsigned long long) mlen, nonce,\n                              alicepk, bobsk);\n    assert(ret == 0);\n    if (crypto_box_open_detached(m2, c, mac, (unsigned long long) mlen, nonce,\n                                 small_order_p, alicesk) != -1) {\n        printf(\"crypto_box_open_detached() with a weak key passed\\n\");\n    }\n    if (crypto_box_open_detached(m2, c, mac, (unsigned long long) mlen, nonce,\n                                 bobpk, alicesk) != 0) {\n        printf(\"crypto_box_open_detached() failed\\n\");\n    }\n    printf(\"%d\\n\", memcmp(m, m2, mlen));\n\n    memset(m2, 0, m2_size);\n    crypto_box_detached_afternm(c, mac, m, (unsigned long long) mlen, nonce,\n                                k1);\n    if (crypto_box_open_detached_afternm(m2, c, mac, (unsigned long long) mlen,\n                                         nonce, k2) != 0) {\n        printf(\"crypto_box_open_detached_afternm() failed\\n\");\n    }\n    printf(\"%d\\n\", memcmp(m, m2, mlen));\n\n    sodium_free(alicepk);\n    sodium_free(alicesk);\n    sodium_free(bobpk);\n    sodium_free(bobsk);\n    sodium_free(mac);\n    sodium_free(nonce);\n    sodium_free(k1);\n    sodium_free(k2);\n    sodium_free(m);\n    sodium_free(m2);\n    sodium_free(c);\n    printf(\"OK\\n\");\n\n    return 0;\n}\n"
  },
  {
    "path": "test/default/box_easy2.exp",
    "content": "0\n0\n0\n0\n0\n0\nOK\n"
  },
  {
    "path": "test/default/box_seal.c",
    "content": "\n#define TEST_NAME \"box_seal\"\n#include \"cmptest.h\"\n\nstatic\nvoid tv1(void)\n{\n    unsigned char  pk[crypto_box_PUBLICKEYBYTES];\n    unsigned char  sk[crypto_box_SECRETKEYBYTES];\n    unsigned char *c;\n    unsigned char *m;\n    unsigned char *m2;\n    size_t         m_len;\n    size_t         c_len;\n\n    crypto_box_keypair(pk, sk);\n    m_len = (size_t) randombytes_uniform(1000);\n    c_len = crypto_box_SEALBYTES + m_len;\n    m     = (unsigned char *) sodium_malloc(m_len);\n    m2    = (unsigned char *) sodium_malloc(m_len);\n    c     = (unsigned char *) sodium_malloc(c_len);\n    randombytes_buf(m, m_len);\n    if (crypto_box_seal(c, m, m_len, pk) != 0) {\n        printf(\"crypto_box_seal() failure\\n\");\n        return;\n    }\n    if (crypto_box_seal_open(m2, c, c_len, pk, sk) != 0) {\n        printf(\"crypto_box_seal_open() failure\\n\");\n        return;\n    }\n    printf(\"%d\\n\", memcmp(m, m2, m_len));\n\n    printf(\"%d\\n\", crypto_box_seal_open(m, c, 0U, pk, sk));\n    printf(\"%d\\n\", crypto_box_seal_open(m, c, c_len - 1U, pk, sk));\n    printf(\"%d\\n\", crypto_box_seal_open(m, c, c_len, sk, pk));\n\n    sodium_free(c);\n    sodium_free(m);\n    sodium_free(m2);\n\n    assert(crypto_box_sealbytes() == crypto_box_SEALBYTES);\n}\n\nstatic\nvoid tv2(void)\n{\n    unsigned char  pk[crypto_box_PUBLICKEYBYTES];\n    unsigned char  sk[crypto_box_SECRETKEYBYTES];\n    unsigned char *cm;\n    unsigned char *m2;\n    size_t         m_len;\n    size_t         cm_len;\n\n    crypto_box_keypair(pk, sk);\n    m_len = (size_t) randombytes_uniform(1000);\n    cm_len = crypto_box_SEALBYTES + m_len;\n    m2    = (unsigned char *) sodium_malloc(m_len);\n    cm    = (unsigned char *) sodium_malloc(cm_len);\n    randombytes_buf(cm, m_len);\n    if (crypto_box_seal(cm, cm, m_len, pk) != 0) {\n        printf(\"crypto_box_seal() failure\\n\");\n        return;\n    }\n    if (crypto_box_seal_open(m2, cm, cm_len, pk, sk) != 0) {\n        printf(\"crypto_box_seal_open() failure\\n\");\n        return;\n    }\n    assert(m_len < 8 || memcmp(cm, m2, m_len) != 0);\n    sodium_free(cm);\n    sodium_free(m2);\n}\n\n#ifndef SODIUM_LIBRARY_MINIMAL\nstatic\nvoid tv3(void)\n{\n    unsigned char  pk[crypto_box_curve25519xchacha20poly1305_PUBLICKEYBYTES];\n    unsigned char  sk[crypto_box_curve25519xchacha20poly1305_SECRETKEYBYTES];\n    unsigned char *c;\n    unsigned char *m;\n    unsigned char *m2;\n    size_t         m_len;\n    size_t         c_len;\n\n    crypto_box_curve25519xchacha20poly1305_keypair(pk, sk);\n    m_len = (size_t) randombytes_uniform(1000);\n    c_len = crypto_box_curve25519xchacha20poly1305_SEALBYTES + m_len;\n    m     = (unsigned char *) sodium_malloc(m_len);\n    m2    = (unsigned char *) sodium_malloc(m_len);\n    c     = (unsigned char *) sodium_malloc(c_len);\n    randombytes_buf(m, m_len);\n    if (crypto_box_curve25519xchacha20poly1305_seal(c, m, m_len, pk) != 0) {\n        printf(\"crypto_box_curve25519xchacha20poly1305_seal() failure\\n\");\n        return;\n    }\n    if (crypto_box_curve25519xchacha20poly1305_seal_open(m2, c, c_len, pk, sk) != 0) {\n        printf(\"crypto_box_curve25519xchacha20poly1305_seal_open() failure\\n\");\n        return;\n    }\n    printf(\"%d\\n\", memcmp(m, m2, m_len));\n\n    printf(\"%d\\n\", crypto_box_curve25519xchacha20poly1305_seal_open(m, c, 0U, pk, sk));\n    printf(\"%d\\n\", crypto_box_curve25519xchacha20poly1305_seal_open(m, c, c_len - 1U, pk, sk));\n    printf(\"%d\\n\", crypto_box_curve25519xchacha20poly1305_seal_open(m, c, c_len, sk, pk));\n\n    sodium_free(c);\n    sodium_free(m);\n    sodium_free(m2);\n\n    assert(crypto_box_curve25519xchacha20poly1305_sealbytes() ==\n           crypto_box_curve25519xchacha20poly1305_SEALBYTES);\n}\n\nstatic\nvoid tv4(void)\n{\n    unsigned char  pk[crypto_box_curve25519xchacha20poly1305_PUBLICKEYBYTES];\n    unsigned char  sk[crypto_box_curve25519xchacha20poly1305_SECRETKEYBYTES];\n    unsigned char *cm;\n    unsigned char *m2;\n    size_t         m_len;\n    size_t         cm_len;\n\n    crypto_box_curve25519xchacha20poly1305_keypair(pk, sk);\n    m_len = (size_t) randombytes_uniform(1000);\n    cm_len = crypto_box_curve25519xchacha20poly1305_SEALBYTES + m_len;\n    m2    = (unsigned char *) sodium_malloc(m_len);\n    cm    = (unsigned char *) sodium_malloc(cm_len);\n    randombytes_buf(cm, m_len);\n    if (crypto_box_curve25519xchacha20poly1305_seal(cm, cm, m_len, pk) != 0) {\n        printf(\"crypto_box_curve25519xchacha20poly1305_seal() failure\\n\");\n        return;\n    }\n    if (crypto_box_curve25519xchacha20poly1305_seal_open(m2, cm, cm_len, pk, sk) != 0) {\n        printf(\"crypto_box_curve25519xchacha20poly1305_seal_open() failure\\n\");\n        return;\n    }\n    assert(m_len < 8 || memcmp(cm, m2, m_len) != 0);\n    sodium_free(cm);\n    sodium_free(m2);\n}\n\n#else\n\nstatic\nvoid tv3(void)\n{\n    printf(\"0\\n-1\\n-1\\n-1\\n\");\n}\n\nstatic\nvoid tv4(void)\n{ }\n#endif\n\nint\nmain(void)\n{\n    tv1();\n    tv2();\n    tv3();\n    tv4();\n\n    return 0;\n}\n"
  },
  {
    "path": "test/default/box_seal.exp",
    "content": "0\n-1\n-1\n-1\n0\n-1\n-1\n-1\n"
  },
  {
    "path": "test/default/box_seed.c",
    "content": "\n#define TEST_NAME \"box_seed\"\n#include \"cmptest.h\"\n\nstatic unsigned char seed[32] = { 0x77, 0x07, 0x6d, 0x0a, 0x73, 0x18, 0xa5,\n                                  0x7d, 0x3c, 0x16, 0xc1, 0x72, 0x51, 0xb2,\n                                  0x66, 0x45, 0xdf, 0x4c, 0x2f, 0x87, 0xeb,\n                                  0xc0, 0x99, 0x2a, 0xb1, 0x77, 0xfb, 0xa5,\n                                  0x1d, 0xb9, 0x2c, 0x2a };\n\nint\nmain(void)\n{\n    int           i;\n    unsigned char sk[32];\n    unsigned char pk[32];\n\n    crypto_box_seed_keypair(pk, sk, seed);\n    for (i = 0; i < 32; ++i) {\n        printf(\",0x%02x\", (unsigned int) pk[i]);\n        if (i % 8 == 7)\n            printf(\"\\n\");\n    }\n    for (i = 0; i < 32; ++i) {\n        printf(\",0x%02x\", (unsigned int) sk[i]);\n        if (i % 8 == 7)\n            printf(\"\\n\");\n    }\n    return 0;\n}\n"
  },
  {
    "path": "test/default/box_seed.exp",
    "content": ",0xed,0x77,0x49,0xb4,0xd9,0x89,0xf6,0x95\n,0x7f,0x3b,0xfd,0xe6,0xc5,0x67,0x67,0xe9\n,0x88,0xe2,0x1c,0x9f,0x87,0x84,0xd9,0x1d\n,0x61,0x00,0x11,0xcd,0x55,0x3f,0x9b,0x06\n,0xac,0xcd,0x44,0xeb,0x8e,0x93,0x31,0x9c\n,0x05,0x70,0xbc,0x11,0x00,0x5c,0x0e,0x01\n,0x89,0xd3,0x4f,0xf0,0x2f,0x6c,0x17,0x77\n,0x34,0x11,0xad,0x19,0x12,0x93,0xc9,0x8f\n"
  },
  {
    "path": "test/default/chacha20.c",
    "content": "\n#define TEST_NAME \"chacha20\"\n#include \"cmptest.h\"\n\nstatic\nvoid tv(void)\n{\n    static struct {\n        const char *key_hex;\n        const char *nonce_hex;\n    } tests[]\n      = { { \"0000000000000000000000000000000000000000000000000000000000000000\",\n            \"0000000000000000\" },\n          { \"0000000000000000000000000000000000000000000000000000000000000001\",\n            \"0000000000000000\" },\n          { \"0000000000000000000000000000000000000000000000000000000000000000\",\n            \"0000000000000001\" },\n          { \"0000000000000000000000000000000000000000000000000000000000000000\",\n            \"0100000000000000\" },\n          { \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\",\n            \"0001020304050607\" } };\n    unsigned char  key[crypto_stream_chacha20_KEYBYTES];\n    unsigned char  nonce[crypto_stream_chacha20_NONCEBYTES];\n    unsigned char *part;\n    unsigned char  out[160];\n    unsigned char  zero[160];\n    char           out_hex[160 * 2 + 1];\n    size_t         i = 0U;\n    size_t         plen;\n\n    memset(zero, 0, sizeof zero);\n    do {\n        sodium_hex2bin((unsigned char *)key, sizeof key, tests[i].key_hex,\n                       strlen(tests[i].key_hex), NULL, NULL, NULL);\n        sodium_hex2bin(nonce, sizeof nonce, tests[i].nonce_hex,\n                       strlen(tests[i].nonce_hex), NULL, NULL, NULL);\n        crypto_stream_chacha20(out, sizeof out, nonce, key);\n        sodium_bin2hex(out_hex, sizeof out_hex, out, sizeof out);\n        printf(\"[%s]\\n\", out_hex);\n        for (plen = 1U; plen < sizeof out; plen++) {\n            part = (unsigned char *) sodium_malloc(plen);\n            crypto_stream_chacha20_xor(part, out, plen, nonce, key);\n            if (memcmp(part, zero, plen) != 0) {\n                printf(\"Failed with length %lu\\n\", (unsigned long) plen);\n            }\n            sodium_free(part);\n        }\n    } while (++i < (sizeof tests) / (sizeof tests[0]));\n    assert(66 <= sizeof out);\n    for (plen = 1U; plen < 66; plen += 3) {\n        memset(out, (int) (plen & 0xff), sizeof out);\n        crypto_stream_chacha20(out, plen, nonce, key);\n        sodium_bin2hex(out_hex, sizeof out_hex, out, sizeof out);\n        printf(\"[%s]\\n\", out_hex);\n    }\n    randombytes_buf(out, sizeof out);\n    crypto_stream_chacha20(out, sizeof out, nonce, key);\n    sodium_bin2hex(out_hex, sizeof out_hex, out, sizeof out);\n    printf(\"[%s]\\n\", out_hex);\n\n    assert(crypto_stream_chacha20(out, 0U, nonce, key) == 0);\n    assert(crypto_stream_chacha20_xor(out, out, 0U, nonce, key) == 0);\n    assert(crypto_stream_chacha20_xor(out, out, 0U, nonce, key) == 0);\n    assert(crypto_stream_chacha20_xor_ic(out, out, 0U, nonce, 1U, key) == 0);\n\n    memset(out, 0x42, sizeof out);\n    crypto_stream_chacha20_xor(out, out, sizeof out, nonce, key);\n    sodium_bin2hex(out_hex, sizeof out_hex, out, sizeof out);\n    printf(\"[%s]\\n\", out_hex);\n\n    crypto_stream_chacha20_xor_ic(out, out, sizeof out, nonce, 0U, key);\n    sodium_bin2hex(out_hex, sizeof out_hex, out, sizeof out);\n    printf(\"[%s]\\n\", out_hex);\n\n    crypto_stream_chacha20_xor_ic(out, out, sizeof out, nonce, 1U, key);\n    sodium_bin2hex(out_hex, sizeof out_hex, out, sizeof out);\n    printf(\"[%s]\\n\", out_hex);\n}\n\nstatic\nvoid tv_ietf(void)\n{\n    static struct {\n        const char *key_hex;\n        const char *nonce_hex;\n        uint32_t    ic;\n    } tests[]\n      = { { \"0000000000000000000000000000000000000000000000000000000000000000\",\n            \"000000000000000000000000\",\n            0U },\n          { \"0000000000000000000000000000000000000000000000000000000000000000\",\n            \"000000000000000000000000\",\n            1U },\n          { \"0000000000000000000000000000000000000000000000000000000000000001\",\n            \"000000000000000000000000\",\n            1U },\n          { \"00ff000000000000000000000000000000000000000000000000000000000000\",\n            \"000000000000000000000000\",\n            2U },\n          { \"0000000000000000000000000000000000000000000000000000000000000000\",\n            \"000000000000000000000002\",\n            0U },\n          { \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\",\n            \"000000090000004a00000000\",\n            1U },\n          { \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\",\n            \"000000090000004a00000000\",\n            0xfeffffff }};\n    unsigned char  key[crypto_stream_chacha20_KEYBYTES];\n    unsigned char  nonce[crypto_stream_chacha20_IETF_NONCEBYTES];\n    unsigned char *part;\n    unsigned char  out[160];\n    unsigned char  zero[160];\n    char           out_hex[160 * 2 + 1];\n    size_t         i = 0U;\n    size_t         plen;\n\n    memset(zero, 0, sizeof zero);\n    do {\n        sodium_hex2bin((unsigned char *)key, sizeof key, tests[i].key_hex,\n                       strlen(tests[i].key_hex), \": \", NULL, NULL);\n        sodium_hex2bin(nonce, sizeof nonce, tests[i].nonce_hex,\n                       strlen(tests[i].nonce_hex), \": \", NULL, NULL);\n        memset(out, 0, sizeof out);\n        crypto_stream_chacha20_ietf_xor_ic(out, out, sizeof out, nonce, tests[i].ic, key);\n        sodium_bin2hex(out_hex, sizeof out_hex, out, sizeof out);\n        printf(\"[%s]\\n\", out_hex);\n        for (plen = 1U; plen < sizeof out; plen++) {\n            part = (unsigned char *) sodium_malloc(plen);\n            crypto_stream_chacha20_ietf_xor_ic(part, out, plen, nonce, tests[i].ic, key);\n            if (memcmp(part, zero, plen) != 0) {\n                printf(\"Failed with length %lu\\n\", (unsigned long) plen);\n            }\n            sodium_free(part);\n        }\n    } while (++i < (sizeof tests) / (sizeof tests[0]));\n    assert(66 <= sizeof out);\n    for (plen = 1U; plen < 66; plen += 3) {\n        memset(out, (int) (plen & 0xff), sizeof out);\n        crypto_stream_chacha20_ietf(out, plen, nonce, key);\n        sodium_bin2hex(out_hex, sizeof out_hex, out, sizeof out);\n        printf(\"[%s]\\n\", out_hex);\n    }\n    randombytes_buf(out, sizeof out);\n    crypto_stream_chacha20_ietf(out, sizeof out, nonce, key);\n    sodium_bin2hex(out_hex, sizeof out_hex, out, sizeof out);\n    printf(\"[%s]\\n\", out_hex);\n\n    assert(crypto_stream_chacha20_ietf(out, 0U, nonce, key) == 0);\n    assert(crypto_stream_chacha20_ietf_xor(out, out, 0U, nonce, key) == 0);\n    assert(crypto_stream_chacha20_ietf_xor(out, out, 0U, nonce, key) == 0);\n    assert(crypto_stream_chacha20_ietf_xor_ic(out, out, 0U, nonce, 1U, key) == 0);\n\n    memset(out, 0x42, sizeof out);\n    crypto_stream_chacha20_ietf_xor(out, out, sizeof out, nonce, key);\n    sodium_bin2hex(out_hex, sizeof out_hex, out, sizeof out);\n    printf(\"[%s]\\n\", out_hex);\n\n    crypto_stream_chacha20_ietf_xor_ic(out, out, sizeof out, nonce, 0U, key);\n    sodium_bin2hex(out_hex, sizeof out_hex, out, sizeof out);\n    printf(\"[%s]\\n\", out_hex);\n\n    crypto_stream_chacha20_ietf_xor_ic(out, out, sizeof out, nonce, 1U, key);\n    sodium_bin2hex(out_hex, sizeof out_hex, out, sizeof out);\n    printf(\"[%s]\\n\", out_hex);\n}\n\nint\nmain(void)\n{\n    tv();\n    tv_ietf();\n\n    assert(crypto_stream_chacha20_keybytes() > 0U);\n    assert(crypto_stream_chacha20_keybytes() == crypto_stream_chacha20_KEYBYTES);\n    assert(crypto_stream_chacha20_noncebytes() > 0U);\n    assert(crypto_stream_chacha20_noncebytes() == crypto_stream_chacha20_NONCEBYTES);\n    assert(crypto_stream_chacha20_messagebytes_max() == crypto_stream_chacha20_MESSAGEBYTES_MAX);\n    assert(crypto_stream_chacha20_ietf_keybytes() > 0U);\n    assert(crypto_stream_chacha20_ietf_keybytes() == crypto_stream_chacha20_ietf_KEYBYTES);\n    assert(crypto_stream_chacha20_ietf_noncebytes() > 0U);\n    assert(crypto_stream_chacha20_ietf_noncebytes() == crypto_stream_chacha20_ietf_NONCEBYTES);\n    assert(crypto_stream_chacha20_ietf_messagebytes_max() == crypto_stream_chacha20_ietf_MESSAGEBYTES_MAX);\n\n    return 0;\n}\n"
  },
  {
    "path": "test/default/chacha20.exp",
    "content": "[76b8e0ada0f13d90405d6ae55386bd28bdd219b8a08ded1aa836efcc8b770dc7da41597c5157488d7724e03fb8d84a376a43b8f41518a11cc387b669b2ee65869f07e7be5551387a98ba977c732d080dcb0f29a048e3656912c6533e32ee7aed29b721769ce64e43d57133b074d839d531ed1f28510afb45ace10a1f4b794d6f2d09a0e663266ce1ae7ed1081968a0758e718e997bd362c6b0c34634a9a0b35d]\n[4540f05a9f1fb296d7736e7b208e3c96eb4fe1834688d2604f450952ed432d41bbe2a0b6ea7566d2a5d1e7e20d42af2c53d792b1c43fea817e9ad275ae5469633aeb5224ecf849929b9d828db1ced4dd832025e8018b8160b82284f3c949aa5a8eca00bbb4a73bdad192b5c42f73f2fd4e273644c8b36125a64addeb006c13a096d68b9ff7b57e7090f880392effd5b297a83bbaf2fbe8cf5d4618965e3dc776]\n[de9cba7bf3d69ef5e786dc63973f653a0b49e015adbff7134fcb7df137821031e85a050278a7084527214f73efc7fa5b5277062eb7a0433e445f41e31afab757283547e3d3d30ee0371c1e6025ff4c91b794a291cf7568d48ff84b37329e2730b12738a072a2b2c7169e326fe4893a7b2421bb910b79599a7ce4fbaee86be427c5ee0e8225eb6f48231fd504939d59eac8bd106cc138779b893c54da8758f62a]\n[ef3fdfd6c61578fbf5cf35bd3dd33b8009631634d21e42ac33960bd138e50d32111e4caf237ee53ca8ad6426194a88545ddc497a0b466e7d6bbdb0041b2f586b5305e5e44aff19b235936144675efbe4409eb7e8e5f1430f5f5836aeb49bb5328b017c4b9dc11f8a03863fa803dc71d5726b2b6b31aa32708afe5af1d6b690584d58792b271e5fdb92c486051c48b79a4d48a109bb2d0477956e74c25e93c3c2]\n[f798a189f195e66982105ffb640bb7757f579da31602fc93ec01ac56f85ac3c134a4547b733b46413042c9440049176905d3be59ea1c53f15916155c2be8241a38008b9a26bc35941e2444177c8ade6689de95264986d95889fb60e84629c9bd9a5acb1cc118be563eb9b3a4a472f82e09a7e778492b562ef7130e88dfe031c79db9d4f7c7a899151b9a475032b63fc385245fe054e3dd5a97a5f576fe064025]\n[f7010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101]\n[f798a189040404040404040404040404040404040404040404040404040404040404040404040404040404040404040404040404040404040404040404040404040404040404040404040404040404040404040404040404040404040404040404040404040404040404040404040404040404040404040404040404040404040404040404040404040404040404040404040404040404040404040404040404]\n[f798a189f195e6070707070707070707070707070707070707070707070707070707070707070707070707070707070707070707070707070707070707070707070707070707070707070707070707070707070707070707070707070707070707070707070707070707070707070707070707070707070707070707070707070707070707070707070707070707070707070707070707070707070707070707]\n[f798a189f195e66982100a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a]\n[f798a189f195e66982105ffb640d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d]\n[f798a189f195e66982105ffb640bb775101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010]\n[f798a189f195e66982105ffb640bb7757f579d131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313]\n[f798a189f195e66982105ffb640bb7757f579da31602161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616]\n[f798a189f195e66982105ffb640bb7757f579da31602fc93ec191919191919191919191919191919191919191919191919191919191919191919191919191919191919191919191919191919191919191919191919191919191919191919191919191919191919191919191919191919191919191919191919191919191919191919191919191919191919191919191919191919191919191919191919191919]\n[f798a189f195e66982105ffb640bb7757f579da31602fc93ec01ac561c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c]\n[f798a189f195e66982105ffb640bb7757f579da31602fc93ec01ac56f85ac31f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f]\n[f798a189f195e66982105ffb640bb7757f579da31602fc93ec01ac56f85ac3c134a4222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222]\n[f798a189f195e66982105ffb640bb7757f579da31602fc93ec01ac56f85ac3c134a4547b73252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525]\n[f798a189f195e66982105ffb640bb7757f579da31602fc93ec01ac56f85ac3c134a4547b733b4641282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828]\n[f798a189f195e66982105ffb640bb7757f579da31602fc93ec01ac56f85ac3c134a4547b733b46413042c92b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b]\n[f798a189f195e66982105ffb640bb7757f579da31602fc93ec01ac56f85ac3c134a4547b733b46413042c94400492e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e]\n[f798a189f195e66982105ffb640bb7757f579da31602fc93ec01ac56f85ac3c134a4547b733b46413042c9440049176905313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131]\n[f798a189f195e66982105ffb640bb7757f579da31602fc93ec01ac56f85ac3c134a4547b733b46413042c9440049176905d3be59343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434]\n[f798a189f195e66982105ffb640bb7757f579da31602fc93ec01ac56f85ac3c134a4547b733b46413042c9440049176905d3be59ea1c53373737373737373737373737373737373737373737373737373737373737373737373737373737373737373737373737373737373737373737373737373737373737373737373737373737373737373737373737373737373737373737373737373737373737373737]\n[f798a189f195e66982105ffb640bb7757f579da31602fc93ec01ac56f85ac3c134a4547b733b46413042c9440049176905d3be59ea1c53f159163a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a]\n[f798a189f195e66982105ffb640bb7757f579da31602fc93ec01ac56f85ac3c134a4547b733b46413042c9440049176905d3be59ea1c53f15916155c2b3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d]\n[f798a189f195e66982105ffb640bb7757f579da31602fc93ec01ac56f85ac3c134a4547b733b46413042c9440049176905d3be59ea1c53f15916155c2be8241a404040404040404040404040404040404040404040404040404040404040404040404040404040404040404040404040404040404040404040404040404040404040404040404040404040404040404040404040404040404040404040404040]\n[f798a189f195e66982105ffb640bb7757f579da31602fc93ec01ac56f85ac3c134a4547b733b46413042c9440049176905d3be59ea1c53f15916155c2be8241a38008b9a26bc35941e2444177c8ade6689de95264986d95889fb60e84629c9bd9a5acb1cc118be563eb9b3a4a472f82e09a7e778492b562ef7130e88dfe031c79db9d4f7c7a899151b9a475032b63fc385245fe054e3dd5a97a5f576fe064025]\n[b5dae3cbb3d7a42bc0521db92649f5373d15dfe15440bed1ae43ee14ba18818376e616393179040372008b06420b552b4791fc1ba85e11b31b54571e69aa66587a42c9d864fe77d65c6606553ec89c24cb9cd7640bc49b1acbb922aa046b8bffd818895e835afc147cfbf1e6e630ba6c4be5a53a0b69146cb5514cca9da27385dffb96b585eadb5759d8051270f47d81c7661da216a19f18d5e7b734bc440267]\n[42424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242]\n[7a42c9d864fe77d65c6606553ec89c24cb9cd7640bc49b1acbb922aa046b8bffd818895e835afc147cfbf1e6e630ba6c4be5a53a0b69146cb5514cca9da27385dffb96b585eadb5759d8051270f47d81c7661da216a19f18d5e7b734bc440267918c466e1428f08745f37a99c77c7f2b1b244bd4162e8b86e4a8bf85358202954ced04b52fef7b3ba787744e715554285ecb0ed6e133c528d69d346abc0ce8b0]\n[76b8e0ada0f13d90405d6ae55386bd28bdd219b8a08ded1aa836efcc8b770dc7da41597c5157488d7724e03fb8d84a376a43b8f41518a11cc387b669b2ee65869f07e7be5551387a98ba977c732d080dcb0f29a048e3656912c6533e32ee7aed29b721769ce64e43d57133b074d839d531ed1f28510afb45ace10a1f4b794d6f2d09a0e663266ce1ae7ed1081968a0758e718e997bd362c6b0c34634a9a0b35d]\n[9f07e7be5551387a98ba977c732d080dcb0f29a048e3656912c6533e32ee7aed29b721769ce64e43d57133b074d839d531ed1f28510afb45ace10a1f4b794d6f2d09a0e663266ce1ae7ed1081968a0758e718e997bd362c6b0c34634a9a0b35d012737681f7b5d0f281e3afde458bc1e73d2d313c9cf94c05ff3716240a248f21320a058d7b3566bd520daaa3ed2bf0ac5b8b120fb852773c3639734b45c91a4]\n[3aeb5224ecf849929b9d828db1ced4dd832025e8018b8160b82284f3c949aa5a8eca00bbb4a73bdad192b5c42f73f2fd4e273644c8b36125a64addeb006c13a096d68b9ff7b57e7090f880392effd5b297a83bbaf2fbe8cf5d4618965e3dc776cd430d9b4e7eda8a767fb0e860319aadb5fd96a855de1fbfc92cb0489190cfdd87da6dbf1f736a2d499941ca097e5170bd685578611323120cebf296181ed4f5]\n[72d54dfbf12ec44b362692df94137f328fea8da73990265ec1bbbea1ae9af0ca13b25aa26cb4a648cb9b9d1be65b2c0924a66c54d545ec1b7374f4872e99f096bf74dbd52cc4fc95ceb6097fe5e65358c9dbc0a5ecbf7894a132a9a54ae3e951f2e9f209aa9c3d9a877ac9dab62433d2961a17d103e455dfb7337c90f6857aad233065955a212b5c7a8eab4dc8a629e5b6b8ba914afd06de7177054b33d21c96]\n[c2c64d378cd536374ae204b9ef933fcd1a8b2288b3dfa49672ab765b54ee27c78a970e0e955c14f3a88e741b97c286f75f8fc299e8148362fa198a39531bed6d1a91288c874ec254f322c2a197340c55bb3e9b3998f7de2309486a0bb494abd20c9c5ef99c1370d61e77f408ac5514f49202bcc6828d45409d2d1416f8ae106b06ebd2541256264fa415bd54cb12e1d4449ed85299a1b7a249b75ff6c89b2e3f]\n[10f1e7e4d13b5915500fdd1fa32071c4c7d1f4c733c068030422aa9ac3d46c4ed2826446079faa0914c2d705d98b02a2b5129cd1de164eb9cbd083e8a2503c4e0a88837739d7bf4ef8ccacb0ea2bb9d69d56c394aa351dfda5bf459f0a2e9fe8e721f89255f9c486bf21679c683d4f9c5cf2fa27865526005b06ca374c86af3bdcbfbdcb83be65862ed5c20eae5a43241d6a92da6dca9a156be25297f51c2718]\n[75924bad7831b25662dbac54b46827990b6168ae990e7bd7e1fd2ad282bf23ef052c7d1a0a6c1ef862070943a0d4da24705fbc006dfb85e2af18c0a264d772a44c70fbedac9d6a6867ff6be0a32826507f2c784101583211c9e2453d4cc8b283d5e86682bd4bf511271b91dbd351415f5a009d1f78b64085a9a4341be7d42e2679d57e2747097f0129950e2c9e9ca1356022d45da252af71ac37f351a2e77911]\n[8a010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101]\n[8adc91fd040404040404040404040404040404040404040404040404040404040404040404040404040404040404040404040404040404040404040404040404040404040404040404040404040404040404040404040404040404040404040404040404040404040404040404040404040404040404040404040404040404040404040404040404040404040404040404040404040404040404040404040404]\n[8adc91fd9ff4f0070707070707070707070707070707070707070707070707070707070707070707070707070707070707070707070707070707070707070707070707070707070707070707070707070707070707070707070707070707070707070707070707070707070707070707070707070707070707070707070707070707070707070707070707070707070707070707070707070707070707070707]\n[8adc91fd9ff4f0f51b0f0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a]\n[8adc91fd9ff4f0f51b0fad50ff0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d]\n[8adc91fd9ff4f0f51b0fad50ff15d637101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010]\n[8adc91fd9ff4f0f51b0fad50ff15d637e40efd131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313]\n[8adc91fd9ff4f0f51b0fad50ff15d637e40efda206cc161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616]\n[8adc91fd9ff4f0f51b0fad50ff15d637e40efda206cc52c783191919191919191919191919191919191919191919191919191919191919191919191919191919191919191919191919191919191919191919191919191919191919191919191919191919191919191919191919191919191919191919191919191919191919191919191919191919191919191919191919191919191919191919191919191919]\n[8adc91fd9ff4f0f51b0fad50ff15d637e40efda206cc52c783a742001c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c]\n[8adc91fd9ff4f0f51b0fad50ff15d637e40efda206cc52c783a74200503c151f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f]\n[8adc91fd9ff4f0f51b0fad50ff15d637e40efda206cc52c783a74200503c1582cd98222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222]\n[8adc91fd9ff4f0f51b0fad50ff15d637e40efda206cc52c783a74200503c1582cd9833367d252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525]\n[8adc91fd9ff4f0f51b0fad50ff15d637e40efda206cc52c783a74200503c1582cd9833367d0a54d5282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828]\n[8adc91fd9ff4f0f51b0fad50ff15d637e40efda206cc52c783a74200503c1582cd9833367d0a54d57d3c9e2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b]\n[8adc91fd9ff4f0f51b0fad50ff15d637e40efda206cc52c783a74200503c1582cd9833367d0a54d57d3c9e998f492e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e]\n[8adc91fd9ff4f0f51b0fad50ff15d637e40efda206cc52c783a74200503c1582cd9833367d0a54d57d3c9e998f490ee69c313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131]\n[8adc91fd9ff4f0f51b0fad50ff15d637e40efda206cc52c783a74200503c1582cd9833367d0a54d57d3c9e998f490ee69ca34c1f343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434]\n[8adc91fd9ff4f0f51b0fad50ff15d637e40efda206cc52c783a74200503c1582cd9833367d0a54d57d3c9e998f490ee69ca34c1ff9e939373737373737373737373737373737373737373737373737373737373737373737373737373737373737373737373737373737373737373737373737373737373737373737373737373737373737373737373737373737373737373737373737373737373737373737]\n[8adc91fd9ff4f0f51b0fad50ff15d637e40efda206cc52c783a74200503c1582cd9833367d0a54d57d3c9e998f490ee69ca34c1ff9e939a755843a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a]\n[8adc91fd9ff4f0f51b0fad50ff15d637e40efda206cc52c783a74200503c1582cd9833367d0a54d57d3c9e998f490ee69ca34c1ff9e939a75584c52d693d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d]\n[8adc91fd9ff4f0f51b0fad50ff15d637e40efda206cc52c783a74200503c1582cd9833367d0a54d57d3c9e998f490ee69ca34c1ff9e939a75584c52d690a35d4404040404040404040404040404040404040404040404040404040404040404040404040404040404040404040404040404040404040404040404040404040404040404040404040404040404040404040404040404040404040404040404040]\n[8adc91fd9ff4f0f51b0fad50ff15d637e40efda206cc52c783a74200503c1582cd9833367d0a54d57d3c9e998f490ee69ca34c1ff9e939a75584c52d690a35d410f1e7e4d13b5915500fdd1fa32071c4c7d1f4c733c068030422aa9ac3d46c4ed2826446079faa0914c2d705d98b02a2b5129cd1de164eb9cbd083e8a2503c4e0a88837739d7bf4ef8ccacb0ea2bb9d69d56c394aa351dfda5bf459f0a2e9fe8]\n[c89ed3bfddb6b2b7594def12bd579475a64cbfe0448e1085c1e50042127e57c08fda71743f4816973f7edcdbcd0b4ca4dee10e5dbbab7be517c6876f2b48779652b3a5a693791b57124d9f5de16233868593b68571822a414660e8d881962e0c90c0260445dde84b568095479bc940e0f750de939c540cfb8992c1aae0127e0c48cac1357b95fd0cba8eeef2a869fb94df1481d6e8775fbfe7fd07dd486cddaa]\n[42424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242]\n[52b3a5a693791b57124d9f5de16233868593b68571822a414660e8d881962e0c90c0260445dde84b568095479bc940e0f750de939c540cfb8992c1aae0127e0c48cac1357b95fd0cba8eeef2a869fb94df1481d6e8775fbfe7fd07dd486cddaaa563bad017bb86c4fd6325de2a7f0dde1eb0b865c4176442194488750ec4ed799efdff89c1fc27c46c97804cec1801665f28d0982f88d85729a010d5b75e655a]\n"
  },
  {
    "path": "test/default/cmptest.h",
    "content": "\n#ifndef __CMPTEST_H__\n#define __CMPTEST_H__\n\n#ifdef NDEBUG\n#/**/undef/**/ NDEBUG\n#endif\n\n#include <assert.h>\n#include <errno.h>\n#include <limits.h>\n#include <stdio.h>\n#include <stdint.h>\n#include <stdlib.h>\n#include <string.h>\n\n#include \"sodium.h\"\n#include \"quirks.h\"\n\n#ifdef __EMSCRIPTEN__\n# undef TEST_SRCDIR\n# define TEST_SRCDIR \"/test-data\"\n#endif\n#ifndef TEST_SRCDIR\n# define TEST_SRCDIR \".\"\n#endif\n\n#define TEST_NAME_RES TEST_NAME \".res\"\n#define TEST_NAME_OUT TEST_SRCDIR \"/\" TEST_NAME \".exp\"\n\n#ifdef HAVE_ARC4RANDOM\n# undef rand\n# define rand(X) arc4random(X)\n#endif\n\nint xmain(void);\n\nstatic unsigned char *guard_page;\n\n#ifdef BENCHMARKS\n\n# include <sys/time.h>\n\n# ifndef ITERATIONS\n#  define ITERATIONS 128\n# endif\n\nstruct {\n    void   *pnt;\n    size_t  size;\n} mempool[1024];\n\nstatic size_t mempool_idx;\n\nstatic __attribute__((malloc)) void *mempool_alloc(size_t size)\n{\n    size_t i;\n    if (size >= (size_t) 0x80000000 - (size_t) 0x00000fff) {\n        return NULL;\n    }\n    size = (size + (size_t) 0x00000fff) & ~ (size_t) 0x00000fff;\n    for (i = 0U; i < mempool_idx; i++) {\n        if (mempool[i].size >= (size | (size_t) 0x80000000)) {\n            mempool[i].size &= ~ (size_t) 0x80000000;\n            return mempool[i].pnt;\n        }\n    }\n    if (mempool_idx >= sizeof mempool / sizeof mempool[0]) {\n        return NULL;\n    }\n    mempool[mempool_idx].size = size;\n    return (mempool[mempool_idx++].pnt = (void *) malloc(size));\n}\n\nstatic void mempool_free(void *pnt)\n{\n    size_t i;\n    for (i = 0U; i < mempool_idx; i++) {\n        if (mempool[i].pnt == pnt) {\n            if ((mempool[i].size & (size_t) 0x80000000) != (size_t) 0x0) {\n                break;\n            }\n            mempool[i].size |= (size_t) 0x80000000;\n            return;\n        }\n    }\n    abort();\n}\n\nstatic __attribute__((malloc)) void *mempool_allocarray(size_t count, size_t size)\n{\n    if (count > (size_t) 0U && size >= (size_t) SIZE_MAX / count) {\n        return NULL;\n    }\n    return mempool_alloc(count * size);\n}\n\nstatic int mempool_free_all(void)\n{\n    size_t i;\n    int    ret = 0;\n\n    for (i = 0U; i < mempool_idx; i++) {\n        if ((mempool[i].size & (size_t) 0x80000000) == (size_t) 0x0) {\n            ret = -1;\n        }\n        free(mempool[i].pnt);\n        mempool[i].pnt = NULL;\n    }\n    mempool_idx = (size_t) 0U;\n\n    return ret;\n}\n\n#define sodium_malloc(X)        mempool_alloc(X)\n#define sodium_free(X)          mempool_free(X)\n#define sodium_allocarray(X, Y) mempool_allocarray((X), (Y))\n\nstatic unsigned long long now(void)\n{\n#if defined(HAVE_CLOCK_GETTIME) && defined(CLOCK_MONOTONIC)\n    struct timespec tp;\n\n    if (clock_gettime(CLOCK_MONOTONIC, &tp) != 0) {\n        abort();\n    }\n    return (unsigned long long) tp.tv_sec * 1000000ULL +\n        (unsigned long long) tp.tv_nsec / 1000ULL;\n#else\n    struct timeval tp;\n\n    if (gettimeofday(&tp, NULL) != 0) {\n        abort();\n    }\n    return (unsigned long long) tp.tv_sec * 1000000ULL +\n        (unsigned long long) tp.tv_usec;\n#endif\n}\n\nint main(void)\n{\n    unsigned long long ts_start;\n    unsigned long long ts_end;\n    unsigned int       i;\n\n    if (sodium_init() != 0) {\n        return 99;\n    }\n\n#ifndef __EMSCRIPTEN__\n    randombytes_set_implementation(&randombytes_salsa20_implementation);\n#endif\n    ts_start = now();\n    for (i = 0; i < ITERATIONS; i++) {\n        if (xmain() != 0) {\n            abort();\n        }\n    }\n    ts_end = now();\n    printf(\"%llu\\n\", 1000000ULL * (ts_end - ts_start) / ITERATIONS);\n    if (mempool_free_all() != 0) {\n        fprintf(stderr, \"** memory leaks detected **\\n\");\n        return 99;\n    }\n    return 0;\n}\n\n#undef  printf\n#define printf(...) do { } while(0)\n\n#elif !defined(BROWSER_TESTS)\n\nstatic FILE *fp_res;\n\nint main(void)\n{\n    FILE          *fp_out;\n    unsigned char *_guard_page;\n    int           c;\n\n    if ((fp_res = fopen(TEST_NAME_RES, \"w+\")) == NULL) {\n        perror(\"fopen(\" TEST_NAME_RES \")\");\n        return 99;\n    }\n    if (sodium_init() != 0) {\n        return 99;\n    }\n# if defined(__EMSCRIPTEN__) || defined(__SANITIZE_ADDRESS__)\n    guard_page = _guard_page = NULL;\n#else\n    if ((_guard_page = (unsigned char *) sodium_malloc(0)) == NULL) {\n        perror(\"sodium_malloc()\");\n        return 99;\n    }\n    guard_page = _guard_page + 1;\n#endif\n    if (xmain() != 0) {\n        return 99;\n    }\n    fflush(fp_res);\n    rewind(fp_res);\n    if ((fp_out = fopen(TEST_NAME_OUT, \"r\")) == NULL) {\n        perror(\"fopen(\" TEST_NAME_OUT \")\");\n        return 99;\n    }\n    do {\n        if ((c = fgetc(fp_res)) != fgetc(fp_out)) {\n            return 99;\n        }\n    } while (c != EOF);\n    sodium_free(_guard_page);\n\n    return 0;\n}\n\n#undef  printf\n#define printf(...) fprintf(fp_res, __VA_ARGS__)\n\n#else\n\nint main(void)\n{\n    if (sodium_init() != 0) {\n        return 99;\n    }\n    if (xmain() != 0) {\n        return 99;\n    }\n    printf(\"--- SUCCESS ---\\n\");\n\n    return 0;\n}\n\n#endif\n\n#define main xmain\n\n#endif\n"
  },
  {
    "path": "test/default/codecs.c",
    "content": "#define TEST_NAME \"codecs\"\n#include \"cmptest.h\"\n\nint\nmain(void)\n{\n    unsigned char  buf1[1000];\n    char           buf3[33];\n    unsigned char  buf4[4];\n    const char    *b64;\n    char          *b64_;\n    const char    *b64_end;\n    unsigned char *bin;\n    const char    *hex;\n    const char    *hex_end;\n    size_t         b64_len;\n    size_t         bin_len;\n    unsigned int   i;\n\n    printf(\"%s\\n\",\n           sodium_bin2hex(buf3, 33U, (const unsigned char *) \"0123456789ABCDEF\",\n                          16U));\n    printf(\"bin2hex(..., guard_page, 0):%s\\n\",\n           sodium_bin2hex(buf3, sizeof buf3, guard_page, 0U));\n    printf(\"bin2hex(..., \\\"\\\", 0):%s\\n\",\n           sodium_bin2hex(buf3, sizeof buf3, (const unsigned char *) \"\", 0U));\n\n    hex = \"Cafe : 6942\";\n    sodium_hex2bin(buf4, sizeof buf4, hex, strlen(hex), \": \", &bin_len,\n                   &hex_end);\n    printf(\"%lu:%02x%02x%02x%02x\\n\", (unsigned long) bin_len,\n           buf4[0], buf4[1], buf4[2], buf4[3]);\n    printf(\"dt1: %ld\\n\", (long) (hex_end - hex));\n\n    hex = \"Cafe : 6942\";\n    sodium_hex2bin(buf4, sizeof buf4, hex, strlen(hex), \": \", &bin_len, NULL);\n    printf(\"%lu:%02x%02x%02x%02x\\n\", (unsigned long) bin_len,\n           buf4[0], buf4[1], buf4[2], buf4[3]);\n\n    hex = \"deadbeef\";\n    if (sodium_hex2bin(buf1, 1U, hex, 8U, NULL, &bin_len, &hex_end) != -1) {\n        printf(\"sodium_hex2bin() overflow not detected\\n\");\n    }\n    printf(\"dt2: %ld\\n\", (long) (hex_end - hex));\n\n    hex = \"de:ad:be:eff\";\n    if (sodium_hex2bin(buf1, 4U, hex, 12U, \":\", &bin_len, &hex_end) != -1) {\n        printf(\n            \"sodium_hex2bin() with an odd input length and a short output \"\n            \"buffer\\n\");\n    }\n    printf(\"dt3: %ld\\n\", (long) (hex_end - hex));\n\n    hex = \"de:ad:be:eff\";\n    if (sodium_hex2bin(buf1, sizeof buf1, hex, 12U, \":\",\n                       &bin_len, &hex_end) != -1) {\n        printf(\"sodium_hex2bin() with an odd input length\\n\");\n    }\n    printf(\"dt4: %ld\\n\", (long) (hex_end - hex));\n\n    hex = \"de:ad:be:eff\";\n    if (sodium_hex2bin(buf1, sizeof buf1, hex, 13U, \":\",\n                       &bin_len, &hex_end) != -1) {\n        printf(\"sodium_hex2bin() with an odd input length (2)\\n\");\n    }\n    printf(\"dt5: %ld\\n\", (long) (hex_end - hex));\n\n    hex = \"de:ad:be:eff\";\n    if (sodium_hex2bin(buf1, sizeof buf1, hex, 12U, \":\",\n                       &bin_len, NULL) != -1) {\n        printf(\"sodium_hex2bin() with an odd input length and no end pointer\\n\");\n    }\n\n    hex = \"de:ad:be:ef*\";\n    if (sodium_hex2bin(buf1, sizeof buf1, hex, 12U, \":\",\n                       &bin_len, &hex_end) != 0) {\n        printf(\"sodium_hex2bin() with an extra character and an end pointer\\n\");\n    }\n    printf(\"dt6: %ld\\n\", (long) (hex_end - hex));\n\n    hex = \"de:ad:be:ef*\";\n    if (sodium_hex2bin(buf1, sizeof buf1, hex, 12U, \":\",\n                       &bin_len, NULL) != -1) {\n        printf(\"sodium_hex2bin() with an extra character and no end pointer\\n\");\n    }\n\n    assert(sodium_hex2bin(buf4, sizeof buf4, (const char *) guard_page, 0U,\n                          NULL, &bin_len, NULL) == 0);\n    assert(bin_len == 0);\n\n    assert(sodium_hex2bin(buf4, sizeof buf4, \"\", 0U, NULL, &bin_len, NULL) == 0);\n    assert(bin_len == 0);\n\n    printf(\"%s\\n\",\n           sodium_bin2base64(buf3, 31U, (const unsigned char *) \"\\xfb\\xf0\\xf1\" \"0123456789ABCDEFab\",\n                             21U, sodium_base64_VARIANT_ORIGINAL));\n    printf(\"%s\\n\",\n           sodium_bin2base64(buf3, 33U, (const unsigned char *) \"\\xfb\\xf0\\xf1\" \"0123456789ABCDEFabc\",\n                             22U, sodium_base64_VARIANT_ORIGINAL_NO_PADDING));\n    printf(\"%s\\n\",\n           sodium_bin2base64(buf3, 31U, (const unsigned char *) \"\\xfb\\xf0\\xf1\" \"0123456789ABCDEFab\",\n                             21U, sodium_base64_VARIANT_URLSAFE));\n    printf(\"%s\\n\",\n           sodium_bin2base64(buf3, 33U, (const unsigned char *) \"\\xfb\\xf0\\xf1\" \"0123456789ABCDEFabc\",\n                             22U, sodium_base64_VARIANT_URLSAFE_NO_PADDING));\n    printf(\"%s\\n\",\n           sodium_bin2base64(buf3, 1U, guard_page,\n                             0U, sodium_base64_VARIANT_ORIGINAL));\n    printf(\"%s\\n\",\n           sodium_bin2base64(buf3, 5U, (const unsigned char *) \"a\",\n                             1U, sodium_base64_VARIANT_ORIGINAL));\n    printf(\"%s\\n\",\n           sodium_bin2base64(buf3, 5U, (const unsigned char *) \"ab\",\n                             2U, sodium_base64_VARIANT_ORIGINAL));\n    printf(\"%s\\n\",\n           sodium_bin2base64(buf3, 5U, (const unsigned char *) \"abc\",\n                             3U, sodium_base64_VARIANT_ORIGINAL));\n    printf(\"%s\\n\",\n           sodium_bin2base64(buf3, 1U, guard_page,\n                             0U, sodium_base64_VARIANT_ORIGINAL_NO_PADDING));\n    printf(\"%s\\n\",\n           sodium_bin2base64(buf3, 3U, (const unsigned char *) \"a\",\n                             1U, sodium_base64_VARIANT_ORIGINAL_NO_PADDING));\n    printf(\"%s\\n\",\n           sodium_bin2base64(buf3, 4U, (const unsigned char *) \"ab\",\n                             2U, sodium_base64_VARIANT_ORIGINAL_NO_PADDING));\n    printf(\"%s\\n\",\n           sodium_bin2base64(buf3, 5U, (const unsigned char *) \"abc\",\n                             3U, sodium_base64_VARIANT_ORIGINAL_NO_PADDING));\n\n    b64 = \"VGhpcyBpcyBhIGpvdXJu\" \"\\n\" \"ZXkgaW50by\" \" \" \"Bzb3VuZA==\";\n    memset(buf4, '*', sizeof buf4);\n    assert(sodium_base642bin(buf4, sizeof buf4, b64, strlen(b64), \"\\n\\r \", &bin_len,\n                             &b64_end, sodium_base64_VARIANT_ORIGINAL) == -1);\n    buf4[bin_len] = 0;\n    printf(\"[%s]\\n\", (const char *) buf4);\n    printf(\"[%s]\\n\", b64_end);\n\n    memset(buf1, '*', sizeof buf1);\n    assert(sodium_base642bin(buf1, sizeof buf1, b64, strlen(b64), \"\\n\\r \", &bin_len,\n                             &b64_end, sodium_base64_VARIANT_ORIGINAL) == 0);\n    buf1[bin_len] = 0;\n    printf(\"[%s]\\n\", (const char *) buf1);\n    assert(*b64_end == 0);\n\n    memset(buf1, '*', sizeof buf1);\n    assert(sodium_base642bin(buf1, sizeof buf1, b64, strlen(b64), NULL, &bin_len,\n                             &b64_end, sodium_base64_VARIANT_ORIGINAL) == 0);\n    buf1[bin_len] = 0;\n    printf(\"[%s]\\n\", (const char *) buf1);\n    printf(\"[%s]\\n\", b64_end);\n\n    assert(sodium_base642bin(buf1, sizeof buf1, b64, strlen(b64), NULL, NULL,\n                             &b64_end, sodium_base64_VARIANT_ORIGINAL) == 0);\n    assert(sodium_base642bin(buf1, sizeof buf1, b64, strlen(b64), NULL, NULL,\n                             &b64_end, sodium_base64_VARIANT_ORIGINAL_NO_PADDING) == 0);\n    assert(sodium_base642bin(buf1, sizeof buf1, b64, strlen(b64), \" \\r\\n\", NULL,\n                             &b64_end, sodium_base64_VARIANT_ORIGINAL_NO_PADDING) == 0);\n    assert(sodium_base642bin(buf1, sizeof buf1, b64, strlen(b64), NULL, NULL,\n                             &b64_end, sodium_base64_VARIANT_URLSAFE_NO_PADDING) == 0);\n    assert(sodium_base642bin(buf1, sizeof buf1, b64, strlen(b64), \" \\r\\n\", NULL,\n                             &b64_end, sodium_base64_VARIANT_URLSAFE_NO_PADDING) == 0);\n\n    assert(sodium_base642bin(buf1, sizeof buf1, b64, strlen(b64), NULL, NULL,\n                             NULL, sodium_base64_VARIANT_ORIGINAL) == -1);\n    assert(sodium_base642bin(buf1, sizeof buf1, b64, strlen(b64), NULL, NULL,\n                             NULL, sodium_base64_VARIANT_ORIGINAL_NO_PADDING) == -1);\n    assert(sodium_base642bin(buf1, sizeof buf1, b64, strlen(b64), \" \\r\\n\", NULL,\n                             NULL, sodium_base64_VARIANT_ORIGINAL_NO_PADDING) == -1);\n    assert(sodium_base642bin(buf1, sizeof buf1, b64, strlen(b64), NULL, NULL,\n                             NULL, sodium_base64_VARIANT_URLSAFE_NO_PADDING) == -1);\n    assert(sodium_base642bin(buf1, sizeof buf1, b64, strlen(b64), \" \\r\\n\", NULL,\n                             NULL, sodium_base64_VARIANT_URLSAFE_NO_PADDING) == -1);\n\n    assert(sodium_base642bin(guard_page, (size_t) 10U, \"a=\", (size_t) 2U, NULL, NULL, NULL,\n                             sodium_base64_VARIANT_URLSAFE) == -1);\n    assert(sodium_base642bin(guard_page, (size_t) 10U, \"a*\", (size_t) 2U, NULL, NULL, NULL,\n                             sodium_base64_VARIANT_URLSAFE) == -1);\n    assert(sodium_base642bin(guard_page, (size_t) 10U, \"a*\", (size_t) 2U, \"~\", NULL, NULL,\n                             sodium_base64_VARIANT_URLSAFE) == -1);\n    assert(sodium_base642bin(guard_page, (size_t) 10U, \"a*\", (size_t) 2U, \"*\", NULL, NULL,\n                             sodium_base64_VARIANT_URLSAFE) == -1);\n    assert(sodium_base642bin(guard_page, (size_t) 10U, \"a==\", (size_t) 3U, NULL, NULL, NULL,\n                             sodium_base64_VARIANT_URLSAFE) == -1);\n    assert(sodium_base642bin(guard_page, (size_t) 10U, \"a=*\", (size_t) 3U, NULL, NULL, NULL,\n                             sodium_base64_VARIANT_URLSAFE) == -1);\n    assert(sodium_base642bin(guard_page, (size_t) 10U, \"a=*\", (size_t) 3U, \"~\", NULL, NULL,\n                             sodium_base64_VARIANT_URLSAFE) == -1);\n    assert(sodium_base642bin(guard_page, (size_t) 10U, \"a=*\", (size_t) 3U, \"*\", NULL, NULL,\n                             sodium_base64_VARIANT_URLSAFE) == -1);\n\n    assert(sodium_base642bin(buf1, sizeof buf1, \"O1R\", (size_t) 3U, NULL, NULL, NULL,\n                             sodium_base64_VARIANT_ORIGINAL_NO_PADDING) == -1);\n    assert(sodium_base642bin(buf1, sizeof buf1, \"O1Q\", (size_t) 3U, NULL, NULL, NULL,\n                             sodium_base64_VARIANT_ORIGINAL_NO_PADDING) == 0);\n    assert(sodium_base642bin(buf1, sizeof buf1, \"O1\", (size_t) 2U, NULL, NULL, NULL,\n                             sodium_base64_VARIANT_ORIGINAL_NO_PADDING) == -1);\n    assert(sodium_base642bin(buf1, sizeof buf1, \"Ow\", (size_t) 2U, NULL, NULL, NULL,\n                             sodium_base64_VARIANT_ORIGINAL_NO_PADDING) == 0);\n    assert(sodium_base642bin(buf1, sizeof buf1, \"O\", (size_t) 1U, NULL, NULL, NULL,\n                             sodium_base64_VARIANT_ORIGINAL_NO_PADDING) == -1);\n\n    assert(sodium_base642bin(buf1, sizeof buf1, \"\", (size_t) 0U, NULL, NULL, NULL,\n                             sodium_base64_VARIANT_ORIGINAL) == 0);\n    assert(sodium_base642bin(buf1, sizeof buf1, \"A\", (size_t) 1U, NULL, NULL, NULL,\n                             sodium_base64_VARIANT_ORIGINAL) == -1);\n    assert(sodium_base642bin(buf1, sizeof buf1, \"AA\", (size_t) 2U, NULL, NULL, NULL,\n                             sodium_base64_VARIANT_ORIGINAL) == -1);\n    assert(sodium_base642bin(buf1, sizeof buf1, \"kaw\", (size_t) 3U, NULL, NULL, NULL,\n                             sodium_base64_VARIANT_ORIGINAL) == -1);\n    assert(sodium_base642bin(buf1, sizeof buf1, \"kQ*\", (size_t) 3U, \"@\", NULL, NULL,\n                             sodium_base64_VARIANT_ORIGINAL) == -1);\n    assert(sodium_base642bin(buf1, sizeof buf1, \"kQ*\", (size_t) 3U, \"*\", NULL, NULL,\n                             sodium_base64_VARIANT_ORIGINAL) == -1);\n    assert(sodium_base642bin(buf1, sizeof buf1, \"kaw=**\", (size_t) 6U, \"*\", NULL, NULL,\n                             sodium_base64_VARIANT_ORIGINAL) == 0);\n    assert(sodium_base642bin(buf1, sizeof buf1, \"kaw*=*\", (size_t) 6U, \"~*\", NULL, NULL,\n                             sodium_base64_VARIANT_ORIGINAL) == 0);\n    assert(sodium_base642bin(buf1, sizeof buf1, \"ka*w*=*\", (size_t) 7U, \"*~\", NULL, NULL,\n                             sodium_base64_VARIANT_ORIGINAL) == 0);\n\n    assert(sodium_base642bin(buf1, sizeof buf1, (const char *) guard_page, 0U,\n                             NULL, &bin_len, NULL, sodium_base64_VARIANT_ORIGINAL) == 0);\n    assert(bin_len == 0);\n\n    assert(sodium_base642bin(buf1, sizeof buf1, \"\", 0U, NULL, &bin_len, NULL,\n                             sodium_base64_VARIANT_ORIGINAL) == 0);\n    assert(bin_len == 0);\n\n    for (i = 0; i < 1000; i++) {\n        assert(sizeof buf1 >= 100);\n        bin_len = (size_t) randombytes_uniform(100);\n        bin = (unsigned char *) sodium_malloc(bin_len);\n        b64_len = (bin_len + 2U) / 3U * 4U + 1U;\n        assert(b64_len == sodium_base64_encoded_len(bin_len, sodium_base64_VARIANT_URLSAFE));\n        b64_ = (char *) sodium_malloc(b64_len);\n        randombytes_buf(bin, bin_len);\n        memcpy(buf1, bin, bin_len);\n        b64 = sodium_bin2base64(b64_, b64_len, bin, bin_len,\n                                sodium_base64_VARIANT_URLSAFE);\n        assert(b64 != NULL);\n        assert(sodium_base642bin(bin, bin_len + 10, b64, b64_len,\n                                 NULL, NULL, &b64_end,\n                                 sodium_base64_VARIANT_URLSAFE) == 0);\n        assert(b64_end == &b64[b64_len - 1]);\n        assert(memcmp(bin, buf1, bin_len) == 0);\n        sodium_free(bin);\n        sodium_free(b64_);\n    }\n\n    {\n        unsigned char ip_bytes[16];\n        unsigned char ip_expected[16];\n        char          ip_str[46];\n\n        assert(sodium_ip2bin(ip_bytes, \"192.168.1.1\", strlen(\"192.168.1.1\")) == 0);\n        memset(ip_expected, 0, 10);\n        ip_expected[10] = 0xff;\n        ip_expected[11] = 0xff;\n        ip_expected[12] = 192;\n        ip_expected[13] = 168;\n        ip_expected[14] = 1;\n        ip_expected[15] = 1;\n        assert(memcmp(ip_bytes, ip_expected, 16) == 0);\n        printf(\"ip2bytes(192.168.1.1): OK\\n\");\n\n        assert(sodium_ip2bin(ip_bytes, \"0.0.0.0\", strlen(\"0.0.0.0\")) == 0);\n        assert(sodium_ip2bin(ip_bytes, \"255.255.255.255\", strlen(\"255.255.255.255\")) == 0);\n        assert(sodium_ip2bin(ip_bytes, \"127.0.0.1\", strlen(\"127.0.0.1\")) == 0);\n        printf(\"ip2bytes IPv4 basic: OK\\n\");\n\n        assert(sodium_ip2bin(ip_bytes, \"256.1.1.1\", strlen(\"256.1.1.1\")) == -1);\n        assert(sodium_ip2bin(ip_bytes, \"1.999.1.1\", strlen(\"1.999.1.1\")) == -1);\n        assert(sodium_ip2bin(ip_bytes, \"192.168.1\", strlen(\"192.168.1\")) == -1);\n        assert(sodium_ip2bin(ip_bytes, \"192.168.1.1.1\", strlen(\"192.168.1.1.1\")) == -1);\n        assert(sodium_ip2bin(ip_bytes, \"\", 0) == -1);\n        assert(sodium_ip2bin(ip_bytes, \".1.2.3\", strlen(\".1.2.3\")) == -1);\n        assert(sodium_ip2bin(ip_bytes, \"1.2.3.\", strlen(\"1.2.3.\")) == -1);\n        assert(sodium_ip2bin(ip_bytes, \"1..2.3\", strlen(\"1..2.3\")) == -1);\n        assert(sodium_ip2bin(ip_bytes, \"1.2.a.3\", strlen(\"1.2.a.3\")) == -1);\n        printf(\"ip2bytes IPv4 invalid: OK\\n\");\n\n        assert(sodium_ip2bin(ip_bytes, \"2001:db8:85a3:0:0:8a2e:370:7334\", strlen(\"2001:db8:85a3:0:0:8a2e:370:7334\")) == 0);\n        ip_expected[0]  = 0x20; ip_expected[1]  = 0x01;\n        ip_expected[2]  = 0x0d; ip_expected[3]  = 0xb8;\n        ip_expected[4]  = 0x85; ip_expected[5]  = 0xa3;\n        ip_expected[6]  = 0x00; ip_expected[7]  = 0x00;\n        ip_expected[8]  = 0x00; ip_expected[9]  = 0x00;\n        ip_expected[10] = 0x8a; ip_expected[11] = 0x2e;\n        ip_expected[12] = 0x03; ip_expected[13] = 0x70;\n        ip_expected[14] = 0x73; ip_expected[15] = 0x34;\n        assert(memcmp(ip_bytes, ip_expected, 16) == 0);\n        printf(\"ip2bytes(2001:db8:85a3:0:0:8a2e:370:7334): OK\\n\");\n\n        assert(sodium_ip2bin(ip_bytes, \"::1\", strlen(\"::1\")) == 0);\n        memset(ip_expected, 0, 16);\n        ip_expected[15] = 1;\n        assert(memcmp(ip_bytes, ip_expected, 16) == 0);\n\n        assert(sodium_ip2bin(ip_bytes, \"::\", strlen(\"::\")) == 0);\n        memset(ip_expected, 0, 16);\n        assert(memcmp(ip_bytes, ip_expected, 16) == 0);\n\n        assert(sodium_ip2bin(ip_bytes, \"2001:db8::1\", strlen(\"2001:db8::1\")) == 0);\n        assert(sodium_ip2bin(ip_bytes, \"fe80::1\", strlen(\"fe80::1\")) == 0);\n        printf(\"ip2bytes IPv6 compressed: OK\\n\");\n\n        assert(sodium_ip2bin(ip_bytes, \"fe80::1%eth0\", strlen(\"fe80::1%eth0\")) == 0);\n        assert(sodium_ip2bin(ip_bytes, \"fe80::1%15\", strlen(\"fe80::1%15\")) == 0);\n        printf(\"ip2bytes IPv6 zone: OK\\n\");\n\n        assert(sodium_ip2bin(ip_bytes, \"2001:::1\", strlen(\"2001:::1\")) == -1);\n        assert(sodium_ip2bin(ip_bytes, \"2001::1::1\", strlen(\"2001::1::1\")) == -1);\n        assert(sodium_ip2bin(ip_bytes, \"1:2:3:4:5:6:7:8:9\", strlen(\"1:2:3:4:5:6:7:8:9\")) == -1);\n        assert(sodium_ip2bin(ip_bytes, \"12345:1:1:1:1:1:1:1\", strlen(\"12345:1:1:1:1:1:1:1\")) == -1);\n        assert(sodium_ip2bin(ip_bytes, \"2001:db8:g:1:1:1:1:1\", strlen(\"2001:db8:g:1:1:1:1:1\")) == -1);\n        assert(sodium_ip2bin(ip_bytes, \":2001:db8::1\", strlen(\":2001:db8::1\")) == -1);\n        assert(sodium_ip2bin(ip_bytes, \"2001:db8:1:\", strlen(\"2001:db8:1:\")) == -1);\n        assert(sodium_ip2bin(ip_bytes, \"fe80::1%\", strlen(\"fe80::1%\")) == -1);\n        printf(\"ip2bytes IPv6 invalid: OK\\n\");\n\n        assert(sodium_ip2bin(ip_bytes, \"::ffff:192.168.1.1\", strlen(\"::ffff:192.168.1.1\")) == 0);\n        memset(ip_expected, 0, 10);\n        ip_expected[10] = 0xff;\n        ip_expected[11] = 0xff;\n        ip_expected[12] = 192;\n        ip_expected[13] = 168;\n        ip_expected[14] = 1;\n        ip_expected[15] = 1;\n        assert(memcmp(ip_bytes, ip_expected, 16) == 0);\n        printf(\"ip2bytes IPv4-mapped: OK\\n\");\n\n        printf(\"ip NULL handling: OK\\n\");\n\n        memset(ip_bytes, 0, 10);\n        ip_bytes[10] = 0xff;\n        ip_bytes[11] = 0xff;\n        ip_bytes[12] = 192;\n        ip_bytes[13] = 168;\n        ip_bytes[14] = 1;\n        ip_bytes[15] = 1;\n        assert(sodium_bin2ip(ip_str, sizeof(ip_str), ip_bytes) != NULL);\n        assert(strcmp(ip_str, \"192.168.1.1\") == 0);\n\n        ip_bytes[12] = 0;\n        ip_bytes[13] = 0;\n        ip_bytes[14] = 0;\n        ip_bytes[15] = 0;\n        assert(sodium_bin2ip(ip_str, sizeof(ip_str), ip_bytes) != NULL);\n        assert(strcmp(ip_str, \"0.0.0.0\") == 0);\n\n        ip_bytes[12] = 255;\n        ip_bytes[13] = 255;\n        ip_bytes[14] = 255;\n        ip_bytes[15] = 255;\n        assert(sodium_bin2ip(ip_str, sizeof(ip_str), ip_bytes) != NULL);\n        assert(strcmp(ip_str, \"255.255.255.255\") == 0);\n        printf(\"bytes2ip IPv4: OK\\n\");\n\n        memset(ip_bytes, 0, 16);\n        ip_bytes[15] = 1;\n        assert(sodium_bin2ip(ip_str, sizeof(ip_str), ip_bytes) != NULL);\n        assert(strcmp(ip_str, \"::1\") == 0);\n\n        memset(ip_bytes, 0, 16);\n        assert(sodium_bin2ip(ip_str, sizeof(ip_str), ip_bytes) != NULL);\n        assert(strcmp(ip_str, \"::\") == 0);\n\n        memset(ip_bytes, 0xff, 16);\n        assert(sodium_bin2ip(ip_str, sizeof(ip_str), ip_bytes) != NULL);\n        assert(strcmp(ip_str, \"ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff\") == 0);\n        printf(\"bytes2ip IPv6: OK\\n\");\n\n        memset(ip_bytes, 0, 10);\n        ip_bytes[10] = 0xff;\n        ip_bytes[11] = 0xff;\n        ip_bytes[12] = 255;\n        ip_bytes[13] = 255;\n        ip_bytes[14] = 255;\n        ip_bytes[15] = 255;\n        assert(sodium_bin2ip(ip_str, 16, ip_bytes) != NULL);\n        assert(sodium_bin2ip(ip_str, 15, ip_bytes) == NULL);\n\n        memset(ip_bytes, 0xff, 16);\n        assert(sodium_bin2ip(ip_str, 40, ip_bytes) != NULL);\n        assert(sodium_bin2ip(ip_str, 39, ip_bytes) == NULL);\n\n        memset(ip_bytes, 0, 16);\n        assert(sodium_bin2ip(ip_str, 3, ip_bytes) != NULL);\n        assert(sodium_bin2ip(ip_str, 2, ip_bytes) == NULL);\n        printf(\"bytes2ip buffer size: OK\\n\");\n\n        assert(sodium_ip2bin(ip_bytes, \"10.20.30.40\", strlen(\"10.20.30.40\")) == 0);\n        assert(sodium_bin2ip(ip_str, sizeof(ip_str), ip_bytes) != NULL);\n        assert(strcmp(ip_str, \"10.20.30.40\") == 0);\n\n        assert(sodium_ip2bin(ip_bytes, \"::1\", strlen(\"::1\")) == 0);\n        assert(sodium_bin2ip(ip_str, sizeof(ip_str), ip_bytes) != NULL);\n        assert(strcmp(ip_str, \"::1\") == 0);\n\n        assert(sodium_ip2bin(ip_bytes, \"2001:db8::1\", strlen(\"2001:db8::1\")) == 0);\n        assert(sodium_bin2ip(ip_str, sizeof(ip_str), ip_bytes) != NULL);\n        assert(strcmp(ip_str, \"2001:db8::1\") == 0);\n\n        assert(sodium_ip2bin(ip_bytes, \"2001:db8:85a3:1234:5678:8a2e:370:7334\", strlen(\"2001:db8:85a3:1234:5678:8a2e:370:7334\")) == 0);\n        assert(sodium_bin2ip(ip_str, sizeof(ip_str), ip_bytes) != NULL);\n        assert(strcmp(ip_str, \"2001:db8:85a3:1234:5678:8a2e:370:7334\") == 0);\n        printf(\"ip round-trip: OK\\n\");\n\n        {\n            unsigned char lower[16], upper[16], mixed[16];\n            assert(sodium_ip2bin(lower, \"abcd:ef01:2345:6789:abcd:ef01:2345:6789\", strlen(\"abcd:ef01:2345:6789:abcd:ef01:2345:6789\")) == 0);\n            assert(sodium_ip2bin(upper, \"ABCD:EF01:2345:6789:ABCD:EF01:2345:6789\", strlen(\"ABCD:EF01:2345:6789:ABCD:EF01:2345:6789\")) == 0);\n            assert(sodium_ip2bin(mixed, \"AbCd:eF01:2345:6789:aBcD:Ef01:2345:6789\", strlen(\"AbCd:eF01:2345:6789:aBcD:Ef01:2345:6789\")) == 0);\n            assert(memcmp(lower, upper, 16) == 0);\n            assert(memcmp(lower, mixed, 16) == 0);\n        }\n        printf(\"ip case insensitive: OK\\n\");\n\n        {\n            unsigned char direct[16], mapped[16];\n            assert(sodium_ip2bin(direct, \"192.168.1.1\", strlen(\"192.168.1.1\")) == 0);\n            assert(sodium_ip2bin(mapped, \"::ffff:192.168.1.1\", strlen(\"::ffff:192.168.1.1\")) == 0);\n            assert(memcmp(direct, mapped, 16) == 0);\n        }\n        printf(\"ip IPv4-mapped equivalence: OK\\n\");\n\n        {\n            unsigned char ip1[16], ip2[16];\n\n            assert(sodium_ip2bin(ip1, \"192.168.1.1\", 100) == 0);\n            assert(sodium_ip2bin(ip2, \"192.168.1.1\", strlen(\"192.168.1.1\")) == 0);\n            assert(memcmp(ip1, ip2, 16) == 0);\n\n            assert(sodium_ip2bin(ip1, \"::1\", 100) == 0);\n            assert(sodium_ip2bin(ip2, \"::1\", strlen(\"::1\")) == 0);\n            assert(memcmp(ip1, ip2, 16) == 0);\n\n            assert(sodium_ip2bin(ip1, \"fe80::1%eth0\", 100) == 0);\n            assert(sodium_ip2bin(ip2, \"fe80::1%eth0\", strlen(\"fe80::1%eth0\")) == 0);\n            assert(memcmp(ip1, ip2, 16) == 0);\n        }\n        printf(\"ip src_len larger than string: OK\\n\");\n\n        {\n            unsigned char ip_bytes[16], ip_expected[16];\n\n            assert(sodium_ip2bin(ip_bytes, \"192.168.1.1\", 3) == -1);\n            assert(sodium_ip2bin(ip_bytes, \"192.168.1.1\", 10) == -1);\n            assert(sodium_ip2bin(ip_bytes, \"2001:db8::1\", 5) == -1);\n\n            assert(sodium_ip2bin(ip_bytes, \"::1\", 2) == 0);\n            memset(ip_expected, 0, 16);\n            assert(memcmp(ip_bytes, ip_expected, 16) == 0);\n        }\n        printf(\"ip src_len shorter than IP: OK\\n\");\n    }\n\n    return 0;\n}\n"
  },
  {
    "path": "test/default/codecs.exp",
    "content": "30313233343536373839414243444546\nbin2hex(..., guard_page, 0):\nbin2hex(..., \"\", 0):\n4:cafe6942\ndt1: 11\n4:cafe6942\ndt2: 2\ndt3: 11\ndt4: 11\ndt5: 11\ndt6: 11\n+/DxMDEyMzQ1Njc4OUFCQ0RFRmFi\n+/DxMDEyMzQ1Njc4OUFCQ0RFRmFiYw\n-_DxMDEyMzQ1Njc4OUFCQ0RFRmFi\n-_DxMDEyMzQ1Njc4OUFCQ0RFRmFiYw\n\nYQ==\nYWI=\nYWJj\n\nYQ\nYWI\nYWJj\n[]\n[BpcyBhIGpvdXJu\nZXkgaW50by Bzb3VuZA==]\n[This is a journey into sound]\n[This is a journ]\n[\nZXkgaW50by Bzb3VuZA==]\nip2bytes(192.168.1.1): OK\nip2bytes IPv4 basic: OK\nip2bytes IPv4 invalid: OK\nip2bytes(2001:db8:85a3:0:0:8a2e:370:7334): OK\nip2bytes IPv6 compressed: OK\nip2bytes IPv6 zone: OK\nip2bytes IPv6 invalid: OK\nip2bytes IPv4-mapped: OK\nip NULL handling: OK\nbytes2ip IPv4: OK\nbytes2ip IPv6: OK\nbytes2ip buffer size: OK\nip round-trip: OK\nip case insensitive: OK\nip IPv4-mapped equivalence: OK\nip src_len larger than string: OK\nip src_len shorter than IP: OK\n"
  },
  {
    "path": "test/default/codecs2.c",
    "content": "\n#define TEST_NAME \"codecs2\"\n#include \"cmptest.h\"\n\nint\nmain(void)\n{\n    unsigned char ip_bytes[16];\n\n    assert(sodium_ip2bin(ip_bytes, \"fe80::1%eth 0\",\n                         strlen(\"fe80::1%eth 0\")) == -1);\n    assert(sodium_ip2bin(ip_bytes, \"fe80::1%\\t\",\n                         strlen(\"fe80::1%\\t\")) == -1);\n    assert(sodium_ip2bin(ip_bytes, \"fe80::1%eth\\n0\",\n                         strlen(\"fe80::1%eth\\n0\")) == -1);\n    printf(\"ip2bin: zone with whitespace rejected: OK\\n\");\n\n    assert(sodium_ip2bin(ip_bytes, \"192.168.1.1%zone\",\n                         strlen(\"192.168.1.1%zone\")) == -1);\n    assert(sodium_ip2bin(ip_bytes, \"10.0.0.1%1\",\n                         strlen(\"10.0.0.1%1\")) == -1);\n    printf(\"ip2bin: IPv4 with zone rejected: OK\\n\");\n\n    assert(sodium_ip2bin(ip_bytes, \"fe80::1%eth0\",\n                         strlen(\"fe80::1%eth0\")) == 0);\n    printf(\"ip2bin: valid IPv6 zone: OK\\n\");\n\n    return 0;\n}\n"
  },
  {
    "path": "test/default/codecs2.exp",
    "content": "ip2bin: zone with whitespace rejected: OK\nip2bin: IPv4 with zone rejected: OK\nip2bin: valid IPv6 zone: OK\n"
  },
  {
    "path": "test/default/codecs3.c",
    "content": "#define TEST_NAME \"codecs3\"\n#include \"cmptest.h\"\n\nint\nmain(void)\n{\n    unsigned char ip_bytes[16];\n\n    assert(sodium_ip2bin(ip_bytes, \"::1:2:3:4:5:6:7:8\",\n                         strlen(\"::1:2:3:4:5:6:7:8\")) == -1);\n    printf(\"ipv6 double-colon full address: rejected\\n\");\n\n    assert(sodium_ip2bin(ip_bytes, \"1:2:3:4:5:6:7\",\n                         strlen(\"1:2:3:4:5:6:7\")) == -1);\n    printf(\"ipv6 too few groups: rejected\\n\");\n\n    assert(sodium_ip2bin(ip_bytes, \"1:2:3:4:5:6:7:8:9\",\n                         strlen(\"1:2:3:4:5:6:7:8:9\")) == -1);\n    printf(\"ipv6 too many groups: rejected\\n\");\n\n    assert(sodium_ip2bin(ip_bytes, \"1:2:3:4:5:6:7:8:a\",\n                         strlen(\"1:2:3:4:5:6:7:8:a\")) == -1);\n    printf(\"ipv6 too many groups at end: rejected\\n\");\n\n    assert(sodium_ip2bin(ip_bytes, \"1:2:3:4:5:6:7:192.168.1.1\",\n                         strlen(\"1:2:3:4:5:6:7:192.168.1.1\")) == -1);\n    printf(\"ipv6 embedded IPv4 too many groups: rejected\\n\");\n\n    assert(sodium_ip2bin(ip_bytes, \"::999.1.1.1\",\n                         strlen(\"::999.1.1.1\")) == -1);\n    printf(\"ipv6 embedded IPv4 invalid: rejected\\n\");\n\n    assert(sodium_ip2bin(ip_bytes, \"::192.168.1.1\",\n                         strlen(\"::192.168.1.1\")) == 0);\n    printf(\"ipv6 embedded IPv4 valid: ok\\n\");\n\n    assert(sodium_ip2bin(ip_bytes, \"1:2:3:4:5:6:7:8:\",\n                         strlen(\"1:2:3:4:5:6:7:8:\")) == -1);\n    printf(\"ipv6 trailing colon: rejected\\n\");\n\n    assert(sodium_ip2bin(ip_bytes, \":1:2:3:4:5:6:7:8\",\n                         strlen(\":1:2:3:4:5:6:7:8\")) == -1);\n    printf(\"ipv6 single leading colon: rejected\\n\");\n\n    assert(sodium_ip2bin(ip_bytes, \"1:2:3:4:5:6:7:8\",\n                         strlen(\"1:2:3:4:5:6:7:8\")) == 0);\n    assert(ip_bytes[0] == 0 && ip_bytes[1] == 1);\n    assert(ip_bytes[14] == 0 && ip_bytes[15] == 8);\n    printf(\"ipv6 full 8 groups: ok\\n\");\n\n    assert(sodium_ip2bin(ip_bytes, \"1:2:3:4:5:6:1.2.3.4\",\n                         strlen(\"1:2:3:4:5:6:1.2.3.4\")) == 0);\n    printf(\"ipv6 embedded IPv4 6 groups: ok\\n\");\n\n    return 0;\n}\n"
  },
  {
    "path": "test/default/codecs3.exp",
    "content": "ipv6 double-colon full address: rejected\nipv6 too few groups: rejected\nipv6 too many groups: rejected\nipv6 too many groups at end: rejected\nipv6 embedded IPv4 too many groups: rejected\nipv6 embedded IPv4 invalid: rejected\nipv6 embedded IPv4 valid: ok\nipv6 trailing colon: rejected\nipv6 single leading colon: rejected\nipv6 full 8 groups: ok\nipv6 embedded IPv4 6 groups: ok\n"
  },
  {
    "path": "test/default/core1.c",
    "content": "\n#define TEST_NAME \"core1\"\n#include \"cmptest.h\"\n\nstatic unsigned char shared[32] = { 0x4a, 0x5d, 0x9d, 0x5b, 0xa4, 0xce, 0x2d,\n                                    0xe1, 0x72, 0x8e, 0x3b, 0xf4, 0x80, 0x35,\n                                    0x0f, 0x25, 0xe0, 0x7e, 0x21, 0xc9, 0x47,\n                                    0xd1, 0x9e, 0x33, 0x76, 0xf0, 0x9b, 0x3c,\n                                    0x1e, 0x16, 0x17, 0x42 };\n\nstatic unsigned char zero[32];\n\nstatic unsigned char c[16] = { 0x65, 0x78, 0x70, 0x61, 0x6e, 0x64, 0x20, 0x33,\n                               0x32, 0x2d, 0x62, 0x79, 0x74, 0x65, 0x20, 0x6b };\n\nstatic unsigned char firstkey[32];\n\nint\nmain(void)\n{\n    int i;\n\n    crypto_core_hsalsa20(firstkey, zero, shared, c);\n    for (i = 0; i < 32; ++i) {\n        if (i > 0) {\n            printf(\",\");\n        } else {\n            printf(\" \");\n        }\n        printf(\"0x%02x\", (unsigned int) firstkey[i]);\n        if (i % 8 == 7) {\n            printf(\"\\n\");\n        }\n    }\n    assert(crypto_core_hsalsa20_outputbytes() > 0U);\n    assert(crypto_core_hsalsa20_inputbytes() > 0U);\n    assert(crypto_core_hsalsa20_keybytes() > 0U);\n    assert(crypto_core_hsalsa20_constbytes() > 0U);\n\n    return 0;\n}\n"
  },
  {
    "path": "test/default/core1.exp",
    "content": " 0x1b,0x27,0x55,0x64,0x73,0xe9,0x85,0xd4\n,0x62,0xcd,0x51,0x19,0x7a,0x9a,0x46,0xc7\n,0x60,0x09,0x54,0x9e,0xac,0x64,0x74,0xf2\n,0x06,0xc4,0xee,0x08,0x44,0xf6,0x83,0x89\n"
  },
  {
    "path": "test/default/core2.c",
    "content": "\n#define TEST_NAME \"core2\"\n#include \"cmptest.h\"\n\nstatic unsigned char firstkey[32] = { 0x1b, 0x27, 0x55, 0x64, 0x73, 0xe9, 0x85,\n                                      0xd4, 0x62, 0xcd, 0x51, 0x19, 0x7a, 0x9a,\n                                      0x46, 0xc7, 0x60, 0x09, 0x54, 0x9e, 0xac,\n                                      0x64, 0x74, 0xf2, 0x06, 0xc4, 0xee, 0x08,\n                                      0x44, 0xf6, 0x83, 0x89 };\n\nstatic unsigned char nonceprefix[16] = { 0x69, 0x69, 0x6e, 0xe9, 0x55, 0xb6,\n                                         0x2b, 0x73, 0xcd, 0x62, 0xbd, 0xa8,\n                                         0x75, 0xfc, 0x73, 0xd6 };\n\nstatic unsigned char c[16] = { 0x65, 0x78, 0x70, 0x61, 0x6e, 0x64, 0x20, 0x33,\n                               0x32, 0x2d, 0x62, 0x79, 0x74, 0x65, 0x20, 0x6b };\n\nstatic unsigned char secondkey[32];\n\nint\nmain(void)\n{\n    int i;\n\n    crypto_core_hsalsa20(secondkey, nonceprefix, firstkey, c);\n    for (i = 0; i < 32; ++i) {\n        if (i > 0) {\n            printf(\",\");\n        } else {\n            printf(\" \");\n        }\n        printf(\"0x%02x\", (unsigned int) secondkey[i]);\n        if (i % 8 == 7) {\n            printf(\"\\n\");\n        }\n    }\n    return 0;\n}\n"
  },
  {
    "path": "test/default/core2.exp",
    "content": " 0xdc,0x90,0x8d,0xda,0x0b,0x93,0x44,0xa9\n,0x53,0x62,0x9b,0x73,0x38,0x20,0x77,0x88\n,0x80,0xf3,0xce,0xb4,0x21,0xbb,0x61,0xb9\n,0x1c,0xbd,0x4c,0x3e,0x66,0x25,0x6c,0xe4\n"
  },
  {
    "path": "test/default/core3.c",
    "content": "\n#define TEST_NAME \"core3\"\n#include \"cmptest.h\"\n\nstatic unsigned char SECONDKEY[32] = { 0xdc, 0x90, 0x8d, 0xda, 0x0b, 0x93, 0x44,\n                                       0xa9, 0x53, 0x62, 0x9b, 0x73, 0x38, 0x20,\n                                       0x77, 0x88, 0x80, 0xf3, 0xce, 0xb4, 0x21,\n                                       0xbb, 0x61, 0xb9, 0x1c, 0xbd, 0x4c, 0x3e,\n                                       0x66, 0x25, 0x6c, 0xe4 };\n\nstatic unsigned char NONCESUFFIX[8] = { 0x82, 0x19, 0xe0, 0x03,\n                                        0x6b, 0x7a, 0x0b, 0x37 };\n\nstatic unsigned char C[16] = { 0x65, 0x78, 0x70, 0x61, 0x6e, 0x64, 0x20, 0x33,\n                               0x32, 0x2d, 0x62, 0x79, 0x74, 0x65, 0x20, 0x6b };\n\nint\nmain(void)\n{\n    unsigned char *secondkey;\n    unsigned char *c;\n    unsigned char *noncesuffix;\n    unsigned char *in;\n    unsigned char *output;\n    unsigned char *h;\n    size_t         output_len = 64 * 256 * 256;\n    size_t         pos = 0;\n    int            i;\n\n    pos = 0;\n    secondkey = (unsigned char *) sodium_malloc(32);\n    memcpy(secondkey, SECONDKEY, 32);\n    noncesuffix = (unsigned char *) sodium_malloc(8);\n    memcpy(noncesuffix, NONCESUFFIX, 8);\n    c = (unsigned char *) sodium_malloc(16);\n    memcpy(c, C, 16);\n    in = (unsigned char *) sodium_malloc(16);\n    output = (unsigned char *) sodium_malloc(output_len);\n    h = (unsigned char *) sodium_malloc(32);\n\n    for (i = 0; i < 8; i++) {\n        in[i] = noncesuffix[i];\n    }\n    for (; i < 16; i++) {\n        in[i] = 0;\n    }\n    do {\n        do {\n            crypto_core_salsa20(output + pos, in, secondkey, c);\n            pos += 64;\n            in[8]++;\n        } while (in[8] != 0);\n        in[9]++;\n    } while (in[9] != 0);\n\n    crypto_hash_sha256(h, output, output_len);\n\n    for (i = 0; i < 32; ++i) {\n        printf(\"%02x\", h[i]);\n    }\n    printf(\"\\n\");\n\n#ifndef SODIUM_LIBRARY_MINIMAL\n    pos = 0;\n    do {\n        do {\n            crypto_core_salsa2012(output + pos, in, secondkey, c);\n            pos += 64;\n            in[8]++;\n        } while (in[8] != 0);\n        in[9]++;\n    } while (in[9] != 0);\n\n    crypto_hash_sha256(h, output, output_len);\n\n    for (i = 0; i < 32; ++i) {\n        printf(\"%02x\", h[i]);\n    }\n    printf(\"\\n\");\n\n    pos = 0;\n    do {\n        do {\n            crypto_core_salsa208(output + pos, in, secondkey, c);\n            pos += 64;\n            in[8]++;\n        } while (in[8] != 0);\n        in[9]++;\n    } while (in[9] != 0);\n\n    crypto_hash_sha256(h, output, output_len);\n\n    for (i = 0; i < 32; ++i) {\n        printf(\"%02x\", h[i]);\n    }\n    printf(\"\\n\");\n#else\n    printf(\"a4e3147dddd2ba7775939b50208a22eb3277d4e4bad8a1cfbc999c6bd392b638\\n\"\n           \"017421baa9959cbe894bd003ec87938254f47c1e757eb66cf89c353d0c2b68de\\n\");\n#endif\n\n    sodium_free(h);\n    sodium_free(output);\n    sodium_free(in);\n    sodium_free(c);\n    sodium_free(noncesuffix);\n    sodium_free(secondkey);\n\n    assert(crypto_core_salsa20_outputbytes() == crypto_core_salsa20_OUTPUTBYTES);\n    assert(crypto_core_salsa20_inputbytes() == crypto_core_salsa20_INPUTBYTES);\n    assert(crypto_core_salsa20_keybytes() == crypto_core_salsa20_KEYBYTES);\n    assert(crypto_core_salsa20_constbytes() == crypto_core_salsa20_CONSTBYTES);\n\n    return 0;\n}\n"
  },
  {
    "path": "test/default/core3.exp",
    "content": "662b9d0e3463029156069b12f918691a98f7dfb2ca0393c96bbfc6b1fbd630a2\na4e3147dddd2ba7775939b50208a22eb3277d4e4bad8a1cfbc999c6bd392b638\n017421baa9959cbe894bd003ec87938254f47c1e757eb66cf89c353d0c2b68de\n"
  },
  {
    "path": "test/default/core4.c",
    "content": "\n#define TEST_NAME \"core4\"\n#include \"cmptest.h\"\n\nstatic unsigned char k[32] = { 1,   2,   3,   4,   5,   6,   7,   8,\n                               9,   10,  11,  12,  13,  14,  15,  16,\n                               201, 202, 203, 204, 205, 206, 207, 208,\n                               209, 210, 211, 212, 213, 214, 215, 216 };\n\nstatic unsigned char in[16] = { 101, 102, 103, 104, 105, 106, 107, 108,\n                                109, 110, 111, 112, 113, 114, 115, 116 };\n\nstatic unsigned char c[16] = { 101, 120, 112, 97,  110, 100, 32, 51,\n                               50,  45,  98,  121, 116, 101, 32, 107 };\n\nstatic unsigned char out[64];\n\nint\nmain(void)\n{\n    int i;\n\n    crypto_core_salsa20(out, in, k, c);\n    for (i = 0; i < 64; ++i) {\n        if (i > 0) {\n            printf(\",\");\n        } else {\n            printf(\" \");\n        }\n        printf(\"%3u\", (unsigned int) out[i]);\n        if (i % 8 == 7) {\n            printf(\"\\n\");\n        }\n    }\n    return 0;\n}\n"
  },
  {
    "path": "test/default/core4.exp",
    "content": "  69, 37, 68, 39, 41, 15,107,193\n,255,139,122,  6,170,233,217, 98\n, 89,144,182,106, 21, 51,200, 65\n,239, 49,222, 34,215,114, 40,126\n,104,197,  7,225,197,153, 31,  2\n,102, 78, 76,176, 84,245,246,184\n,177,160,133,130,  6, 72,149,119\n,192,195,132,236,234,103,246, 74\n"
  },
  {
    "path": "test/default/core5.c",
    "content": "\n#define TEST_NAME \"core5\"\n#include \"cmptest.h\"\n\nstatic unsigned char k[32] = { 0xee, 0x30, 0x4f, 0xca, 0x27, 0x00, 0x8d, 0x8c,\n                               0x12, 0x6f, 0x90, 0x02, 0x79, 0x01, 0xd8, 0x0f,\n                               0x7f, 0x1d, 0x8b, 0x8d, 0xc9, 0x36, 0xcf, 0x3b,\n                               0x9f, 0x81, 0x96, 0x92, 0x82, 0x7e, 0x57, 0x77 };\n\nstatic unsigned char in[16] = {\n    0x81, 0x91, 0x8e, 0xf2, 0xa5, 0xe0, 0xda, 0x9b,\n    0x3e, 0x90, 0x60, 0x52, 0x1e, 0x4b, 0xb3, 0x52\n};\n\nstatic unsigned char c[16] = { 101, 120, 112, 97,  110, 100, 32, 51,\n                               50,  45,  98,  121, 116, 101, 32, 107 };\n\nunsigned char out[32];\n\nint\nmain(void)\n{\n    int i;\n\n    crypto_core_hsalsa20(out, in, k, c);\n    for (i = 0; i < 32; ++i) {\n        printf(\",0x%02x\", (unsigned int) out[i]);\n        if (i % 8 == 7) {\n            printf(\"\\n\");\n        }\n    }\n    return 0;\n}\n"
  },
  {
    "path": "test/default/core5.exp",
    "content": ",0xbc,0x1b,0x30,0xfc,0x07,0x2c,0xc1,0x40\n,0x75,0xe4,0xba,0xa7,0x31,0xb5,0xa8,0x45\n,0xea,0x9b,0x11,0xe9,0xa5,0x19,0x1f,0x94\n,0xe1,0x8c,0xba,0x8f,0xd8,0x21,0xa7,0xcd\n"
  },
  {
    "path": "test/default/core6.c",
    "content": "\n#define TEST_NAME \"core6\"\n#include \"cmptest.h\"\n\nstatic unsigned char k[32] = { 0xee, 0x30, 0x4f, 0xca, 0x27, 0x00, 0x8d, 0x8c,\n                               0x12, 0x6f, 0x90, 0x02, 0x79, 0x01, 0xd8, 0x0f,\n                               0x7f, 0x1d, 0x8b, 0x8d, 0xc9, 0x36, 0xcf, 0x3b,\n                               0x9f, 0x81, 0x96, 0x92, 0x82, 0x7e, 0x57, 0x77 };\n\nstatic unsigned char in[16] = {\n    0x81, 0x91, 0x8e, 0xf2, 0xa5, 0xe0, 0xda, 0x9b,\n    0x3e, 0x90, 0x60, 0x52, 0x1e, 0x4b, 0xb3, 0x52\n};\n\nstatic unsigned char c[16] = { 101, 120, 112, 97,  110, 100, 32, 51,\n                               50,  45,  98,  121, 116, 101, 32, 107 };\n\nstatic unsigned char out[64];\n\nstatic void\nprint(unsigned char *x, unsigned char *y)\n{\n    int          i;\n    unsigned int borrow = 0;\n\n    for (i = 0; i < 4; ++i) {\n        unsigned int xi = x[i];\n        unsigned int yi = y[i];\n        printf(\",0x%02x\", 255 & (xi - yi - borrow));\n        borrow = (xi < yi + borrow);\n    }\n}\n\nint\nmain(void)\n{\n    crypto_core_salsa20(out, in, k, c);\n    print(out, c);\n    print(out + 20, c + 4);\n    printf(\"\\n\");\n    print(out + 40, c + 8);\n    print(out + 60, c + 12);\n    printf(\"\\n\");\n    print(out + 24, in);\n    print(out + 28, in + 4);\n    printf(\"\\n\");\n    print(out + 32, in + 8);\n    print(out + 36, in + 12);\n    printf(\"\\n\");\n\n    return 0;\n}\n"
  },
  {
    "path": "test/default/core6.exp",
    "content": ",0xbc,0x1b,0x30,0xfc,0x07,0x2c,0xc1,0x40\n,0x75,0xe4,0xba,0xa7,0x31,0xb5,0xa8,0x45\n,0xea,0x9b,0x11,0xe9,0xa5,0x19,0x1f,0x94\n,0xe1,0x8c,0xba,0x8f,0xd8,0x21,0xa7,0xcd\n"
  },
  {
    "path": "test/default/core_ed25519.c",
    "content": "#define TEST_NAME \"core_ed25519\"\n#include \"cmptest.h\"\n\nstatic const unsigned char non_canonical_p[32] = {\n    0xf6, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,\n    0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f\n};\nstatic const unsigned char non_canonical_invalid_p[32] = {\n    0xf5, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,\n    0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f\n};\nstatic const unsigned char max_canonical_p[32] = {\n    0xe4, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,\n    0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f\n};\nstatic const unsigned char not_main_subgroup_p[32] = {\n    0x95, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99,\n    0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99\n};\nstatic const unsigned char L_p1[32] = {\n    0xee, 0xd3, 0xf5, 0x5c, 0x1a, 0x63, 0x12, 0x58, 0xd6, 0x9c, 0xf7, 0xa2, 0xde, 0xf9, 0xde, 0x14,\n    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10\n};\nstatic const unsigned char L[32] = {\n    0xed, 0xd3, 0xf5, 0x5c, 0x1a, 0x63, 0x12, 0x58, 0xd6, 0x9c, 0xf7, 0xa2, 0xde, 0xf9, 0xde, 0x14,\n    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10\n};\nstatic const unsigned char L_1[32] = {\n    0xec, 0xd3, 0xf5, 0x5c, 0x1a, 0x63, 0x12, 0x58, 0xd6, 0x9c, 0xf7, 0xa2, 0xde, 0xf9, 0xde, 0x14,\n    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10\n};\nstatic const unsigned char sc_8[32] = {\n    0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00\n};\nstatic const unsigned char sc_highbit[32] = {\n    0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80\n};\n\nstatic void\nadd_P(unsigned char * const S)\n{\n    static const unsigned char P[32] = {\n        0xed, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,\n        0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,\n        0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,\n        0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f\n    };\n\n    sodium_add(S, P, sizeof P);\n}\n\nstatic void\nadd_l64(unsigned char * const S)\n{\n    static const unsigned char l[crypto_core_ed25519_NONREDUCEDSCALARBYTES] =\n      { 0xed, 0xd3, 0xf5, 0x5c, 0x1a, 0x63, 0x12, 0x58,\n        0xd6, 0x9c, 0xf7, 0xa2, 0xde, 0xf9, 0xde, 0x14,\n        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10,\n        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 };\n\n    sodium_add(S, l, sizeof l);\n}\n\nint\nmain(void)\n{\n    unsigned char *h;\n    unsigned char *p, *p2, *p3;\n    unsigned char *sc, *sc2, *sc3;\n    unsigned char *sc64;\n    char          *hex;\n    unsigned int   i, j;\n\n    h = (unsigned char *) sodium_malloc(crypto_core_ed25519_HASHBYTES);\n    p = (unsigned char *) sodium_malloc(crypto_core_ed25519_BYTES);\n    for (i = 0; i < 500; i++) {\n        crypto_core_ed25519_random(p);\n        if (crypto_core_ed25519_is_valid_point(p) == 0) {\n            printf(\"crypto_core_ed25519_random() returned an invalid point\\n\");\n        }\n    }\n\n    p2 = (unsigned char *) sodium_malloc(crypto_core_ed25519_BYTES);\n    p3 = (unsigned char *) sodium_malloc(crypto_core_ed25519_BYTES);\n\n    crypto_core_ed25519_random(p2);\n\n    j = 1 + (unsigned int) randombytes_uniform(100);\n    memcpy(p3, p, crypto_core_ed25519_BYTES);\n    for (i = 0; i < j; i++) {\n        crypto_core_ed25519_add(p, p, p2);\n        if (crypto_core_ed25519_is_valid_point(p) != 1) {\n            printf(\"crypto_core_add() returned an invalid point\\n\");\n        }\n    }\n    if (memcmp(p, p3, crypto_core_ed25519_BYTES) == 0) {\n        printf(\"crypto_core_add() failed\\n\");\n    }\n    for (i = 0; i < j; i++) {\n        crypto_core_ed25519_sub(p, p, p2);\n    }\n    if (memcmp(p, p3, crypto_core_ed25519_BYTES) != 0) {\n        printf(\"crypto_core_add() or crypto_core_sub() failed\\n\");\n    }\n    sc = (unsigned char *) sodium_malloc(crypto_scalarmult_ed25519_SCALARBYTES);\n    memset(sc, 0, crypto_scalarmult_ed25519_SCALARBYTES);\n    sc[0] = 8;\n    memcpy(p2, p, crypto_core_ed25519_BYTES);\n    memcpy(p3, p, crypto_core_ed25519_BYTES);\n\n    for (i = 0; i < 254; i++) {\n        crypto_core_ed25519_add(p2, p2, p2);\n    }\n    for (i = 0; i < 8; i++) {\n        crypto_core_ed25519_add(p2, p2, p);\n    }\n    if (crypto_scalarmult_ed25519(p3, sc, p) != 0) {\n        printf(\"crypto_scalarmult_ed25519() failed\\n\");\n    }\n    if (memcmp(p2, p3, crypto_core_ed25519_BYTES) != 0) {\n        printf(\"crypto_scalarmult_ed25519() is inconsistent with crypto_core_ed25519_add()\\n\");\n    }\n\n    assert(crypto_core_ed25519_is_valid_point(p) == 1);\n\n    memset(p, 0, crypto_core_ed25519_BYTES);\n    assert(crypto_core_ed25519_is_valid_point(p) == 0);\n\n    p[0] = 1;\n    assert(crypto_core_ed25519_is_valid_point(p) == 0);\n\n    p[0] = 2;\n    assert(crypto_core_ed25519_is_valid_point(p) == 0);\n\n    p[0] = 9;\n    assert(crypto_core_ed25519_is_valid_point(p) == 0);\n\n    assert(crypto_core_ed25519_is_valid_point(max_canonical_p) == 1);\n    assert(crypto_core_ed25519_is_valid_point(non_canonical_invalid_p) == 0);\n    assert(crypto_core_ed25519_is_valid_point(non_canonical_p) == 0);\n    assert(crypto_core_ed25519_is_valid_point(not_main_subgroup_p) == 0);\n\n    memcpy(p2, p, crypto_core_ed25519_BYTES);\n    add_P(p2);\n    crypto_core_ed25519_add(p3, p2, p2);\n    crypto_core_ed25519_sub(p3, p3, p2);\n    assert(memcmp(p2, p, crypto_core_ed25519_BYTES) != 0);\n    assert(memcmp(p3, p, crypto_core_ed25519_BYTES) == 0);\n\n    p[0] = 2;\n    assert(crypto_core_ed25519_add(p3, p2, p) == -1);\n    assert(crypto_core_ed25519_add(p3, p2, non_canonical_p) == 0);\n    assert(crypto_core_ed25519_add(p3, p2, non_canonical_invalid_p) == -1);\n    assert(crypto_core_ed25519_add(p3, p, p3) == -1);\n    assert(crypto_core_ed25519_add(p3, non_canonical_p, p3) == 0);\n    assert(crypto_core_ed25519_add(p3, non_canonical_invalid_p, p3) == -1);\n\n    assert(crypto_core_ed25519_sub(p3, p2, p) == -1);\n    assert(crypto_core_ed25519_sub(p3, p2, non_canonical_p) == 0);\n    assert(crypto_core_ed25519_sub(p3, p2, non_canonical_invalid_p) == -1);\n    assert(crypto_core_ed25519_sub(p3, p, p3) == -1);\n    assert(crypto_core_ed25519_sub(p3, non_canonical_p, p3) == 0);\n    assert(crypto_core_ed25519_sub(p3, non_canonical_invalid_p, p3) == -1);\n\n    for (i = 0; i < 1000; i++) {\n        crypto_core_ed25519_random(p);\n        do {\n            crypto_core_ed25519_scalar_random(sc);\n        } while (sodium_is_zero(sc, crypto_core_ed25519_SCALARBYTES));\n        if (crypto_scalarmult_ed25519_noclamp(p2, sc, p) != 0) {\n            printf(\"crypto_scalarmult_ed25519_noclamp() failed\\n\");\n        }\n        assert(crypto_core_ed25519_is_valid_point(p2));\n        if (crypto_core_ed25519_scalar_invert(sc, sc) != 0) {\n            printf(\"crypto_core_ed25519_scalar_invert() failed\\n\");\n        }\n        if (crypto_scalarmult_ed25519_noclamp(p3, sc, p2) != 0) {\n            printf(\"crypto_scalarmult_ed25519_noclamp() failed\\n\");\n        }\n        assert(memcmp(p3, p, crypto_core_ed25519_BYTES) == 0);\n    }\n\n    sc64 = (unsigned char *) sodium_malloc(64);\n    crypto_core_ed25519_scalar_random(sc);\n    memcpy(sc64, sc, crypto_core_ed25519_BYTES);\n    memset(sc64 + crypto_core_ed25519_BYTES, 0,\n           64 - crypto_core_ed25519_BYTES);\n    i = (unsigned int) randombytes_uniform(100);\n    do {\n        add_l64(sc64);\n    } while (i-- > 0);\n    crypto_core_ed25519_scalar_reduce(sc64, sc64);\n    if (memcmp(sc64, sc, crypto_core_ed25519_BYTES) != 0) {\n        printf(\"crypto_core_ed25519_scalar_reduce() failed\\n\");\n    }\n\n    crypto_core_ed25519_random(p);\n    memcpy(p2, p, crypto_core_ed25519_BYTES);\n    crypto_core_ed25519_scalar_random(sc);\n    if (crypto_scalarmult_ed25519_noclamp(p, sc, p) != 0) {\n        printf(\"crypto_scalarmult_ed25519_noclamp() failed (3)\\n\");\n    }\n    crypto_core_ed25519_scalar_negate(sc, sc);\n    if (crypto_scalarmult_ed25519_noclamp(p2, sc, p2) != 0) {\n        printf(\"crypto_scalarmult_ed25519_noclamp() failed (4)\\n\");\n    }\n    crypto_core_ed25519_add(p, p, p2);\n    assert(p[0] == 0x01);\n    for (i = 1; i < crypto_core_ed25519_BYTES; i++) {\n        assert(p[i] == 0);\n    }\n\n    hex = (char *) sodium_malloc(crypto_core_ed25519_SCALARBYTES * 2 + 1);\n\n    for (i = 0; i < crypto_core_ed25519_SCALARBYTES; i++) {\n        sc[i] = 255 - i;\n    }\n    if (crypto_core_ed25519_scalar_invert(sc, sc) != 0) {\n        printf(\"crypto_core_ed25519_scalar_invert() failed\\n\");\n    }\n    sodium_bin2hex(hex, crypto_core_ed25519_SCALARBYTES * 2 + 1,\n                   sc, crypto_core_ed25519_SCALARBYTES);\n    printf(\"inv1: %s\\n\", hex);\n    if (crypto_core_ed25519_scalar_invert(sc, sc) != 0) {\n        printf(\"crypto_core_ed25519_scalar_invert() failed\\n\");\n    }\n    sodium_bin2hex(hex, crypto_core_ed25519_SCALARBYTES * 2 + 1,\n                   sc, crypto_core_ed25519_SCALARBYTES);\n    printf(\"inv2: %s\\n\", hex);\n    for (i = 0; i < crypto_core_ed25519_SCALARBYTES; i++) {\n        sc[i] = 32 - i;\n    }\n    if (crypto_core_ed25519_scalar_invert(sc, sc) != 0) {\n        printf(\"crypto_core_ed25519_scalar_invert() failed\\n\");\n    }\n\n    sodium_bin2hex(hex, crypto_core_ed25519_SCALARBYTES * 2 + 1,\n                   sc, crypto_core_ed25519_SCALARBYTES);\n    printf(\"inv3: %s\\n\", hex);\n    if (crypto_core_ed25519_scalar_invert(sc, sc) != 0) {\n        printf(\"crypto_core_ed25519_scalar_invert() failed\\n\");\n    }\n    sodium_bin2hex(hex, crypto_core_ed25519_SCALARBYTES * 2 + 1,\n                   sc, crypto_core_ed25519_SCALARBYTES);\n    printf(\"inv4: %s\\n\", hex);\n\n    for (i = 0; i < crypto_core_ed25519_SCALARBYTES; i++) {\n        sc[i] = 255 - i;\n    }\n    crypto_core_ed25519_scalar_negate(sc, sc);\n    sodium_bin2hex(hex, crypto_core_ed25519_SCALARBYTES * 2 + 1,\n                   sc, crypto_core_ed25519_SCALARBYTES);\n    printf(\"neg1: %s\\n\", hex);\n    crypto_core_ed25519_scalar_negate(sc, sc);\n    sodium_bin2hex(hex, crypto_core_ed25519_SCALARBYTES * 2 + 1,\n                   sc, crypto_core_ed25519_SCALARBYTES);\n    printf(\"neg2: %s\\n\", hex);\n    for (i = 0; i < crypto_core_ed25519_SCALARBYTES; i++) {\n        sc[i] = 32 - i;\n    }\n    crypto_core_ed25519_scalar_negate(sc, sc);\n    sodium_bin2hex(hex, crypto_core_ed25519_SCALARBYTES * 2 + 1,\n                   sc, crypto_core_ed25519_SCALARBYTES);\n    printf(\"neg3: %s\\n\", hex);\n    crypto_core_ed25519_scalar_negate(sc, sc);\n    sodium_bin2hex(hex, crypto_core_ed25519_SCALARBYTES * 2 + 1,\n                   sc, crypto_core_ed25519_SCALARBYTES);\n    printf(\"neg4: %s\\n\", hex);\n\n    for (i = 0; i < crypto_core_ed25519_SCALARBYTES; i++) {\n        sc[i] = 255 - i;\n    }\n    crypto_core_ed25519_scalar_complement(sc, sc);\n    sodium_bin2hex(hex, crypto_core_ed25519_SCALARBYTES * 2 + 1,\n                   sc, crypto_core_ed25519_SCALARBYTES);\n    printf(\"comp1: %s\\n\", hex);\n    crypto_core_ed25519_scalar_complement(sc, sc);\n    sodium_bin2hex(hex, crypto_core_ed25519_SCALARBYTES * 2 + 1,\n                   sc, crypto_core_ed25519_SCALARBYTES);\n    printf(\"comp2: %s\\n\", hex);\n    for (i = 0; i < crypto_core_ed25519_SCALARBYTES; i++) {\n        sc[i] = 32 - i;\n    }\n    crypto_core_ed25519_scalar_complement(sc, sc);\n    sodium_bin2hex(hex, crypto_core_ed25519_SCALARBYTES * 2 + 1,\n                   sc, crypto_core_ed25519_SCALARBYTES);\n    printf(\"comp3: %s\\n\", hex);\n    crypto_core_ed25519_scalar_complement(sc, sc);\n    sodium_bin2hex(hex, crypto_core_ed25519_SCALARBYTES * 2 + 1,\n                   sc, crypto_core_ed25519_SCALARBYTES);\n    printf(\"comp4: %s\\n\", hex);\n\n    sc2 = (unsigned char *) sodium_malloc(crypto_core_ed25519_SCALARBYTES);\n    sc3 = (unsigned char *) sodium_malloc(crypto_core_ed25519_SCALARBYTES);\n    for (i = 0; i < 1000; i++) {\n        randombytes_buf(sc, crypto_core_ed25519_SCALARBYTES);\n        randombytes_buf(sc2, crypto_core_ed25519_SCALARBYTES);\n        sc[crypto_core_ed25519_SCALARBYTES - 1] &= 0x7f;\n        sc2[crypto_core_ed25519_SCALARBYTES - 1] &= 0x7f;\n        crypto_core_ed25519_scalar_add(sc3, sc, sc2);\n        assert(!sodium_is_zero(sc, crypto_core_ed25519_SCALARBYTES));\n        crypto_core_ed25519_scalar_sub(sc3, sc3, sc2);\n        assert(!sodium_is_zero(sc, crypto_core_ed25519_SCALARBYTES));\n        crypto_core_ed25519_scalar_sub(sc3, sc3, sc);\n        assert(sodium_is_zero(sc3, crypto_core_ed25519_SCALARBYTES));\n    }\n\n    memset(sc, 0x69, crypto_core_ed25519_SCALARBYTES);\n    memset(sc2, 0x42, crypto_core_ed25519_SCALARBYTES);\n    crypto_core_ed25519_scalar_add(sc, sc, sc2);\n    crypto_core_ed25519_scalar_add(sc, sc2, sc);\n    sodium_bin2hex(hex, crypto_core_ed25519_SCALARBYTES * 2 + 1,\n                   sc, crypto_core_ed25519_SCALARBYTES);\n    printf(\"add1: %s\\n\", hex);\n\n    crypto_core_ed25519_scalar_sub(sc, sc2, sc);\n    crypto_core_ed25519_scalar_sub(sc, sc, sc2);\n    sodium_bin2hex(hex, crypto_core_ed25519_SCALARBYTES * 2 + 1,\n                   sc, crypto_core_ed25519_SCALARBYTES);\n    printf(\"sub1: %s\\n\", hex);\n\n    memset(sc, 0xcd, crypto_core_ed25519_SCALARBYTES);\n    memset(sc2, 0x42, crypto_core_ed25519_SCALARBYTES);\n    crypto_core_ed25519_scalar_add(sc, sc, sc2);\n    crypto_core_ed25519_scalar_add(sc, sc2, sc);\n    sodium_bin2hex(hex, crypto_core_ed25519_SCALARBYTES * 2 + 1,\n                   sc, crypto_core_ed25519_SCALARBYTES);\n    printf(\"add2: %s\\n\", hex);\n\n    crypto_core_ed25519_scalar_sub(sc, sc2, sc);\n    crypto_core_ed25519_scalar_sub(sc, sc, sc2);\n    sodium_bin2hex(hex, crypto_core_ed25519_SCALARBYTES * 2 + 1,\n                   sc, crypto_core_ed25519_SCALARBYTES);\n    printf(\"sub2: %s\\n\", hex);\n\n    memset(sc, 0x69, crypto_core_ed25519_SCALARBYTES);\n    memset(sc2, 0x42, crypto_core_ed25519_SCALARBYTES);\n    for (i = 0; i < 100; i++) {\n        crypto_core_ed25519_scalar_mul(sc, sc, sc2);\n        crypto_core_ed25519_scalar_mul(sc2, sc, sc2);\n    }\n    sodium_bin2hex(hex, crypto_core_ed25519_SCALARBYTES * 2 + 1,\n                   sc2, crypto_core_ed25519_SCALARBYTES);\n    printf(\"mul: %s\\n\", hex);\n    for (i = 0; i < 1000; i++) {\n        crypto_core_ed25519_scalar_random(sc);\n        memset(sc2, 0, crypto_core_ed25519_SCALARBYTES);\n        crypto_core_ed25519_scalar_mul(sc3, sc, sc2);\n        assert(sodium_is_zero(sc3, crypto_core_ed25519_SCALARBYTES));\n\n        sc2[0]++;\n        crypto_core_ed25519_scalar_mul(sc3, sc, sc2);\n        assert(memcmp(sc3, sc, crypto_core_ed25519_SCALARBYTES) == 0);\n\n        sc2[0]++;\n        crypto_core_ed25519_scalar_mul(sc3, sc, sc2);\n        crypto_core_ed25519_scalar_sub(sc3, sc3, sc);\n        crypto_core_ed25519_scalar_sub(sc3, sc3, sc);\n        assert(sodium_is_zero(sc3, crypto_core_ed25519_SCALARBYTES));\n\n        do {\n            crypto_core_ed25519_scalar_random(sc2);\n        } while (sodium_is_zero(sc2, crypto_core_ed25519_SCALARBYTES));\n        crypto_core_ed25519_scalar_mul(sc3, sc, sc2);\n        crypto_core_ed25519_scalar_invert(sc2, sc2);\n        crypto_core_ed25519_scalar_mul(sc3, sc3, sc2);\n        assert(memcmp(sc3, sc, crypto_core_ed25519_SCALARBYTES) == 0);\n\n        sc[31] |= 0x11;\n        memset(sc2, 0, crypto_core_ed25519_SCALARBYTES);\n        sc2[0] = 1;\n        crypto_core_ed25519_scalar_mul(sc3, sc, sc2);\n        assert(memcmp(sc3, sc, crypto_core_ed25519_SCALARBYTES) != 0);\n    }\n\n    crypto_core_ed25519_scalar_mul(sc, L_1, sc_8);\n    sodium_bin2hex(hex, crypto_core_ed25519_SCALARBYTES * 2 + 1,\n                   sc, crypto_core_ed25519_SCALARBYTES);\n    printf(\"(L-1)*8: %s\\n\", hex);\n    crypto_core_ed25519_scalar_mul(sc, sc_8, L_1);\n    sodium_bin2hex(hex, crypto_core_ed25519_SCALARBYTES * 2 + 1,\n                   sc, crypto_core_ed25519_SCALARBYTES);\n    printf(\"8(L-1): %s\\n\", hex);\n    crypto_core_ed25519_scalar_mul(sc, L_1, L_1);\n    sodium_bin2hex(hex, crypto_core_ed25519_SCALARBYTES * 2 + 1,\n                   sc, crypto_core_ed25519_SCALARBYTES);\n    printf(\"(L-1)^2: %s\\n\", hex);\n    crypto_core_ed25519_scalar_mul(sc, L, sc_8);\n\n    crypto_core_ed25519_scalar_mul(sc, L_p1, sc_8);\n    sodium_bin2hex(hex, crypto_core_ed25519_SCALARBYTES * 2 + 1,\n                   sc, crypto_core_ed25519_SCALARBYTES);\n    printf(\"(L+1)*8: %s\\n\", hex);\n    crypto_core_ed25519_scalar_mul(sc, sc_8, L_p1);\n    sodium_bin2hex(hex, crypto_core_ed25519_SCALARBYTES * 2 + 1,\n                   sc, crypto_core_ed25519_SCALARBYTES);\n    printf(\"8(L+1): %s\\n\", hex);\n    crypto_core_ed25519_scalar_mul(sc, L_p1, L_p1);\n    sodium_bin2hex(hex, crypto_core_ed25519_SCALARBYTES * 2 + 1,\n                   sc, crypto_core_ed25519_SCALARBYTES);\n    printf(\"(L+1)^2: %s\\n\", hex);\n\n    crypto_core_ed25519_scalar_mul(sc, L_1, sc_highbit);\n    sodium_bin2hex(hex, crypto_core_ed25519_SCALARBYTES * 2 + 1,\n                   sc, crypto_core_ed25519_SCALARBYTES);\n    printf(\"(L-1)h: %s\\n\", hex);\n    crypto_core_ed25519_scalar_mul(sc, sc_highbit, L_1);\n    sodium_bin2hex(hex, crypto_core_ed25519_SCALARBYTES * 2 + 1,\n                   sc, crypto_core_ed25519_SCALARBYTES);\n    printf(\"h(L-1): %s\\n\", hex);\n    crypto_core_ed25519_scalar_mul(sc, L_p1, sc_highbit);\n    sodium_bin2hex(hex, crypto_core_ed25519_SCALARBYTES * 2 + 1,\n                   sc, crypto_core_ed25519_SCALARBYTES);\n    printf(\"(L+1)h: %s\\n\", hex);\n    crypto_core_ed25519_scalar_mul(sc, sc_highbit, L_p1);\n    sodium_bin2hex(hex, crypto_core_ed25519_SCALARBYTES * 2 + 1,\n                   sc, crypto_core_ed25519_SCALARBYTES);\n    printf(\"h(L+1): %s\\n\", hex);\n    crypto_core_ed25519_scalar_mul(sc, sc_highbit, sc_highbit);\n    sodium_bin2hex(hex, crypto_core_ed25519_SCALARBYTES * 2 + 1,\n                   sc, crypto_core_ed25519_SCALARBYTES);\n    printf(\"h^2: %s\\n\", hex);\n\n    crypto_core_ed25519_scalar_mul(sc, L, sc_8);\n    assert(sodium_is_zero(sc, crypto_core_ed25519_SCALARBYTES));\n    crypto_core_ed25519_scalar_mul(sc, sc_8, L);\n    assert(sodium_is_zero(sc, crypto_core_ed25519_SCALARBYTES));\n    crypto_core_ed25519_scalar_mul(sc, L, L);\n    assert(sodium_is_zero(sc, crypto_core_ed25519_SCALARBYTES));\n    crypto_core_ed25519_scalar_mul(sc, L, L_1);\n    assert(sodium_is_zero(sc, crypto_core_ed25519_SCALARBYTES));\n    crypto_core_ed25519_scalar_mul(sc, L_1, L);\n    assert(sodium_is_zero(sc, crypto_core_ed25519_SCALARBYTES));\n\n    crypto_core_ed25519_scalar_add(sc, L_1, sc_8);\n    sodium_bin2hex(hex, crypto_core_ed25519_SCALARBYTES * 2 + 1,\n                   sc, crypto_core_ed25519_SCALARBYTES);\n    printf(\"(L-1)+8: %s\\n\", hex);\n    crypto_core_ed25519_scalar_add(sc, sc_8, L_1);\n    sodium_bin2hex(hex, crypto_core_ed25519_SCALARBYTES * 2 + 1,\n                   sc, crypto_core_ed25519_SCALARBYTES);\n    printf(\"8+(L-1): %s\\n\", hex);\n    crypto_core_ed25519_scalar_add(sc, L_1, L_1);\n    sodium_bin2hex(hex, crypto_core_ed25519_SCALARBYTES * 2 + 1,\n                   sc, crypto_core_ed25519_SCALARBYTES);\n    printf(\"(L-1)*2: %s\\n\", hex);\n    crypto_core_ed25519_scalar_add(sc, L, sc_8);\n\n    crypto_core_ed25519_scalar_add(sc, L_p1, sc_8);\n    sodium_bin2hex(hex, crypto_core_ed25519_SCALARBYTES * 2 + 1,\n                   sc, crypto_core_ed25519_SCALARBYTES);\n    printf(\"(L+1)+8: %s\\n\", hex);\n    crypto_core_ed25519_scalar_add(sc, sc_8, L_p1);\n    sodium_bin2hex(hex, crypto_core_ed25519_SCALARBYTES * 2 + 1,\n                   sc, crypto_core_ed25519_SCALARBYTES);\n    printf(\"8+(L+1): %s\\n\", hex);\n    crypto_core_ed25519_scalar_add(sc, L_p1, L_p1);\n    sodium_bin2hex(hex, crypto_core_ed25519_SCALARBYTES * 2 + 1,\n                   sc, crypto_core_ed25519_SCALARBYTES);\n    printf(\"(L+1)*2: %s\\n\", hex);\n\n    crypto_core_ed25519_scalar_add(sc, L_1, sc_highbit);\n    sodium_bin2hex(hex, crypto_core_ed25519_SCALARBYTES * 2 + 1,\n                   sc, crypto_core_ed25519_SCALARBYTES);\n    printf(\"(L-1)+h: %s\\n\", hex);\n    crypto_core_ed25519_scalar_add(sc, sc_highbit, L_1);\n    sodium_bin2hex(hex, crypto_core_ed25519_SCALARBYTES * 2 + 1,\n                   sc, crypto_core_ed25519_SCALARBYTES);\n    printf(\"h+(L-1): %s\\n\", hex);\n    crypto_core_ed25519_scalar_add(sc, L_p1, sc_highbit);\n    sodium_bin2hex(hex, crypto_core_ed25519_SCALARBYTES * 2 + 1,\n                   sc, crypto_core_ed25519_SCALARBYTES);\n    printf(\"(L+1)+h: %s\\n\", hex);\n    crypto_core_ed25519_scalar_add(sc, sc_highbit, L_p1);\n    sodium_bin2hex(hex, crypto_core_ed25519_SCALARBYTES * 2 + 1,\n                   sc, crypto_core_ed25519_SCALARBYTES);\n    printf(\"h+(L+1): %s\\n\", hex);\n    crypto_core_ed25519_scalar_add(sc, sc_highbit, sc_highbit);\n    sodium_bin2hex(hex, crypto_core_ed25519_SCALARBYTES * 2 + 1,\n                   sc, crypto_core_ed25519_SCALARBYTES);\n    printf(\"h*2: %s\\n\", hex);\n\n    sodium_free(hex);\n    sodium_free(sc64);\n    sodium_free(sc3);\n    sodium_free(sc2);\n    sodium_free(sc);\n    sodium_free(p3);\n    sodium_free(p2);\n    sodium_free(p);\n    sodium_free(h);\n\n    assert(crypto_core_ed25519_BYTES == crypto_core_ed25519_bytes());\n    assert(crypto_core_ed25519_SCALARBYTES == crypto_core_ed25519_scalarbytes());\n    assert(crypto_core_ed25519_NONREDUCEDSCALARBYTES == crypto_core_ed25519_nonreducedscalarbytes());\n    assert(crypto_core_ed25519_NONREDUCEDSCALARBYTES >= crypto_core_ed25519_SCALARBYTES);\n    assert(crypto_core_ed25519_UNIFORMBYTES == crypto_core_ed25519_uniformbytes());\n    assert(crypto_core_ed25519_UNIFORMBYTES >= crypto_core_ed25519_BYTES);\n    assert(crypto_core_ed25519_HASHBYTES == crypto_core_ed25519_hashbytes());\n    assert(crypto_core_ed25519_HASHBYTES >= 2 * crypto_core_ed25519_BYTES);\n\n    printf(\"OK\\n\");\n\n    return 0;\n}\n"
  },
  {
    "path": "test/default/core_ed25519.exp",
    "content": "inv1: 5858cdec40a044b1548b3bb08f8ce0d71103d1f887df84ebc502643dac4df40b\ninv2: 09688ce78a8ff8273f636b0bc748c0cceeeeedecebeae9e8e7e6e5e4e3e2e100\ninv3: f70b4f272b47bd6a1015a511fb3c9fc1b9c21ca4ca2e17d5a225b4c410b9b60d\ninv4: 201f1e1d1c1b1a191817161514131211100f0e0d0c0b0a090807060504030201\nneg1: e46b69758fd3193097398c9717b11e48111112131415161718191a1b1c1d1e0f\nneg2: 09688ce78a8ff8273f636b0bc748c0cceeeeedecebeae9e8e7e6e5e4e3e2e100\nneg3: cdb4d73ffe47f83ebe85e18dcae6cc03f0f0f1f2f3f4f5f6f7f8f9fafbfcfd0e\nneg4: 201f1e1d1c1b1a191817161514131211100f0e0d0c0b0a090807060504030201\ncomp1: e56b69758fd3193097398c9717b11e48111112131415161718191a1b1c1d1e0f\ncomp2: 09688ce78a8ff8273f636b0bc748c0cceeeeedecebeae9e8e7e6e5e4e3e2e100\ncomp3: ceb4d73ffe47f83ebe85e18dcae6cc03f0f0f1f2f3f4f5f6f7f8f9fafbfcfd0e\ncomp4: 201f1e1d1c1b1a191817161514131211100f0e0d0c0b0a090807060504030201\nadd1: f7567cd87c82ec1c355a6304c143bcc9ecedededededededededededededed0d\nsub1: f67c79849de0253ba142949e1db6224b13121212121212121212121212121202\nadd2: b02e8581ce62f69922427c23f970f7e951525252525252525252525252525202\nsub2: 3da570db4b001cbeb35a7b7fe588e72aaeadadadadadadadadadadadadadad0d\nmul: 4453ef38408c06677c1b810e4bf8b1991f01c88716fbfa2f075a518b77da400b\n(L-1)*8: e5d3f55c1a631258d69cf7a2def9de1400000000000000000000000000000010\n8(L-1): e5d3f55c1a631258d69cf7a2def9de1400000000000000000000000000000010\n(L-1)^2: 0100000000000000000000000000000000000000000000000000000000000000\n(L+1)*8: 0800000000000000000000000000000000000000000000000000000000000000\n8(L+1): 0800000000000000000000000000000000000000000000000000000000000000\n(L+1)^2: 0100000000000000000000000000000000000000000000000000000000000000\n(L-1)h: 609faee7d21893c0b2e6bc17f5cef7a600000000000000000000000000000000\nh(L-1): 609faee7d21893c0b2e6bc17f5cef7a600000000000000000000000000000000\n(L+1)h: 8d344775474a7f9723b63a8be92ae76dffffffffffffffffffffffffffffff0f\nh(L+1): 8d344775474a7f9723b63a8be92ae76dffffffffffffffffffffffffffffff0f\nh^2: 726cf51b9ec1dda146af8c58ffd22d148f6ffd85f41cbb738f260cdf4650e60c\n(L-1)+8: 0700000000000000000000000000000000000000000000000000000000000000\n8+(L-1): 0700000000000000000000000000000000000000000000000000000000000000\n(L-1)*2: ebd3f55c1a631258d69cf7a2def9de1400000000000000000000000000000010\n(L+1)+8: 0900000000000000000000000000000000000000000000000000000000000000\n8+(L+1): 0900000000000000000000000000000000000000000000000000000000000000\n(L+1)*2: 0200000000000000000000000000000000000000000000000000000000000000\n(L-1)+h: 8c344775474a7f9723b63a8be92ae76dffffffffffffffffffffffffffffff0f\nh+(L-1): 8c344775474a7f9723b63a8be92ae76dffffffffffffffffffffffffffffff0f\n(L+1)+h: 8e344775474a7f9723b63a8be92ae76dffffffffffffffffffffffffffffff0f\nh+(L+1): 8e344775474a7f9723b63a8be92ae76dffffffffffffffffffffffffffffff0f\nh*2: 1000000000000000000000000000000000000000000000000000000000000000\nOK\n"
  },
  {
    "path": "test/default/core_ed25519_h2c.c",
    "content": "#define TEST_NAME \"core_ed25519_h2c\"\n#include \"cmptest.h\"\n\ntypedef struct TestData_ {\n    int         ro;\n    const char *msg;\n    const char  tv_x[64 + 1];\n    const char  tv_y[64 + 1];\n} TestData;\n\nstatic TestData test_data[] = {\n    { 0, \"\",\n      \"1ff2b70ecf862799e11b7ae744e3489aa058ce805dd323a936375a84695e76da\",\n      \"222e314d04a4d5725e9f2aff9fb2a6b69ef375a1214eb19021ceab2d687f0f9b\" },\n    { 0, \"abc\",\n      \"5f13cc69c891d86927eb37bd4afc6672360007c63f68a33ab423a3aa040fd2a8\",\n      \"67732d50f9a26f73111dd1ed5dba225614e538599db58ba30aaea1f5c827fa42\" },\n    { 0, \"abcdef0123456789\",\n      \"1dd2fefce934ecfd7aae6ec998de088d7dd03316aa1847198aecf699ba6613f1\",\n      \"2f8a6c24dd1adde73909cada6a4a137577b0f179d336685c4a955a0a8e1a86fb\" },\n    { 0,\n      \"q128_\"\n      \"qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\"\n      \"qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\",\n      \"35fbdc5143e8a97afd3096f2b843e07df72e15bfca2eaf6879bf97c5d3362f73\",\n      \"2af6ff6ef5ebba128b0774f4296cb4c2279a074658b083b8dcca91f57a603450\" },\n    { 0,\n      \"a512_\"\n      \"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\"\n      \"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\"\n      \"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\"\n      \"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\"\n      \"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\"\n      \"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\"\n      \"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\"\n      \"aaaaaaaa\",\n      \"6e5e1f37e99345887fc12111575fc1c3e36df4b289b8759d23af14d774b66bff\",\n      \"2c90c3d39eb18ff291d33441b35f3262cdd307162cc97c31bfcc7a4245891a37\" },\n    { 1, \"\",\n      \"3c3da6925a3c3c268448dcabb47ccde5439559d9599646a8260e47b1e4822fc6\",\n      \"09a6c8561a0b22bef63124c588ce4c62ea83a3c899763af26d795302e115dc21\" },\n    { 1, \"abc\",\n      \"608040b42285cc0d72cbb3985c6b04c935370c7361f4b7fbdb1ae7f8c1a8ecad\",\n      \"1a8395b88338f22e435bbd301183e7f20a5f9de643f11882fb237f88268a5531\" },\n    { 1, \"abcdef0123456789\",\n      \"6d7fabf47a2dc03fe7d47f7dddd21082c5fb8f86743cd020f3fb147d57161472\",\n      \"53060a3d140e7fbcda641ed3cf42c88a75411e648a1add71217f70ea8ec561a6\" },\n    { 1,\n      \"q128_\"\n      \"qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\"\n      \"qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\",\n      \"5fb0b92acedd16f3bcb0ef83f5c7b7a9466b5f1e0d8d217421878ea3686f8524\",\n      \"2eca15e355fcfa39d2982f67ddb0eea138e2994f5956ed37b7f72eea5e89d2f7\" },\n    { 1,\n      \"a512_\"\n      \"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\"\n      \"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\"\n      \"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\"\n      \"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\"\n      \"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\"\n      \"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\"\n      \"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\"\n      \"aaaaaaaa\",\n      \"0efcfde5898a839b00997fbe40d2ebe950bc81181afbd5cd6b9618aa336c1e8c\",\n      \"6dc2fc04f266c5c27f236a80b14f92ccd051ef1ff027f26a07f8c0f327d8f995\" }\n};\n\nstatic void\ntest_scalar_from_string(void)\n{\n    static const struct {\n        int         hash_alg;\n        const char *msg;\n        size_t      msg_len;\n        const char *ctx;\n        size_t      ctx_len;\n        const char  expected[65];\n    } scalar_tvs[] = {\n        { 1, \"\", 0U, \"test-dst\", 8U,\n          \"28dae5fcb05a81163b41a90fc54e3e815613194ddd44b1e718bfab7457536705\" },\n        { 2, \"\", 0U, \"test-dst\", 8U,\n          \"110d25b6c0f2ab15d9387d4d77847e62c3b133da1bcc71e588076765c74e0b03\" },\n        { 1, \"abc\", 3U, \"test-dst\", 8U,\n          \"8a2383018254b8b57b624f049bc2e72c1c401ad0959b10d1d24ad863fcb5060c\" },\n        { 2, \"abc\", 3U, \"test-dst\", 8U,\n          \"cc954e2d86fdba2af74270642bd6375bdf13e485077bb56a648aaf243d4a8007\" },\n        { 2, \"\", 0U, \"\", 0U,\n          \"c9fb227ffae5fa378f3e6cbbafe054989748daae21c9ebe907f7b68d14093a06\" }\n    };\n    unsigned char  s_ed[crypto_core_ed25519_SCALARBYTES];\n    unsigned char  expected_s[crypto_core_ed25519_SCALARBYTES];\n    char           s_hex[crypto_core_ed25519_SCALARBYTES * 2U + 1U];\n    size_t         oversized_len = 256U;\n    unsigned char *big_ctx;\n    size_t         t;\n\n    for (t = 0U; t < sizeof scalar_tvs / sizeof scalar_tvs[0]; t++) {\n        sodium_hex2bin(expected_s, sizeof expected_s,\n                       scalar_tvs[t].expected, (size_t) -1U,\n                       NULL, NULL, NULL);\n        if (crypto_core_ed25519_scalar_from_string(\n                s_ed,\n                (const unsigned char *) scalar_tvs[t].ctx,\n                scalar_tvs[t].ctx_len,\n                (const unsigned char *) scalar_tvs[t].msg,\n                scalar_tvs[t].msg_len,\n                scalar_tvs[t].hash_alg) != 0) {\n            printf(\"scalar_from_string: ed25519 call failed for tv %u\\n\",\n                   (unsigned) t);\n            continue;\n        }\n        if (memcmp(s_ed, expected_s, sizeof expected_s) != 0) {\n            sodium_bin2hex(s_hex, sizeof s_hex, s_ed, sizeof s_ed);\n            printf(\"scalar_from_string: ed25519 KAT %u mismatch: %s\\n\",\n                   (unsigned) t, s_hex);\n        }\n        if (crypto_core_ed25519_scalar_is_canonical(s_ed) != 1) {\n            printf(\"scalar_from_string: ed25519 result %u not canonical\\n\",\n                   (unsigned) t);\n        }\n    }\n\n    if (crypto_core_ed25519_scalar_from_string(\n            s_ed,\n            (const unsigned char *) \"test-dst\", 8U,\n            (const unsigned char *) \"abc\", 3U,\n            0) != -1) {\n        printf(\"scalar_from_string: invalid hash_alg 0 should fail\\n\");\n    }\n    if (crypto_core_ed25519_scalar_from_string(\n            s_ed,\n            (const unsigned char *) \"test-dst\", 8U,\n            (const unsigned char *) \"abc\", 3U,\n            99) != -1) {\n        printf(\"scalar_from_string: invalid hash_alg 99 should fail\\n\");\n    }\n\n    big_ctx = (unsigned char *) sodium_malloc(oversized_len);\n    memset(big_ctx, 'X', oversized_len);\n\n    if (crypto_core_ed25519_scalar_from_string(\n            s_ed, big_ctx, oversized_len,\n            (const unsigned char *) \"abc\", 3U, 2) != 0) {\n        printf(\"scalar_from_string: oversized DST SHA-512 failed\\n\");\n    }\n    sodium_bin2hex(s_hex, sizeof s_hex, s_ed, sizeof s_ed);\n    printf(\"scalar_from_string oversized DST/sha512: %s\\n\", s_hex);\n\n    if (crypto_core_ed25519_scalar_from_string(\n            s_ed, big_ctx, oversized_len,\n            (const unsigned char *) \"abc\", 3U, 1) != 0) {\n        printf(\"scalar_from_string: oversized DST SHA-256 failed\\n\");\n    }\n    sodium_bin2hex(s_hex, sizeof s_hex, s_ed, sizeof s_ed);\n    printf(\"scalar_from_string oversized DST/sha256: %s\\n\", s_hex);\n\n    sodium_free(big_ctx);\n}\n\n#define H2CHASH crypto_core_ed25519_H2CSHA512\n\nstatic void\ntest_from_string(void)\n{\n    unsigned char *expected_xr, *expected_x;\n    unsigned char *expected_yr, *expected_y, *y;\n    unsigned char  expected_x_sign;\n    char *         expected_y_hex, *y_hex;\n    char *         oversized_ctx;\n    size_t         i, j;\n    size_t         oversized_ctx_len = 500U;\n\n    expected_xr = (unsigned char *) sodium_malloc(crypto_core_ed25519_BYTES);\n    expected_x  = (unsigned char *) sodium_malloc(crypto_core_ed25519_BYTES);\n    expected_yr = (unsigned char *) sodium_malloc(crypto_core_ed25519_BYTES);\n    expected_y  = (unsigned char *) sodium_malloc(crypto_core_ed25519_BYTES);\n    y           = (unsigned char *) sodium_malloc(crypto_core_ed25519_BYTES);\n    expected_y_hex =\n        (char *) sodium_malloc(crypto_core_ed25519_BYTES * 2U + 1U);\n    y_hex = (char *) sodium_malloc(crypto_core_ed25519_BYTES * 2U + 1U);\n    for (i = 0U; i < (sizeof test_data) / (sizeof test_data[0]); i++) {\n        sodium_hex2bin(expected_xr, crypto_core_ed25519_BYTES,\n                       test_data[i].tv_x, (size_t) -1U, NULL, NULL, NULL);\n        for (j = 0; j < crypto_core_ed25519_BYTES; j++) {\n            expected_x[j] = expected_xr[crypto_core_ed25519_BYTES - 1U - j];\n        }\n        expected_x_sign = expected_x[0] & 1;\n\n        sodium_hex2bin(expected_yr, crypto_core_ed25519_BYTES,\n                       test_data[i].tv_y, (size_t) -1U, NULL, NULL, NULL);\n        for (j = 0; j < crypto_core_ed25519_BYTES; j++) {\n            expected_y[j] = expected_yr[crypto_core_ed25519_BYTES - 1U - j];\n        }\n        if (test_data[i].ro == 0) {\n            if (crypto_core_ed25519_from_string_nu(\n                    y,\n                    (const unsigned char *) \"QUUX-V01-CS02-with-edwards25519_XMD:SHA-512_ELL2_NU_\",\n                    sizeof(\"QUUX-V01-CS02-with-edwards25519_XMD:SHA-512_ELL2_NU_\") - 1U,\n                    (const unsigned char *) test_data[i].msg,\n                    strlen(test_data[i].msg), H2CHASH) != 0) {\n                printf(\"crypto_core_ed25519_from_string_nu() failed\\n\");\n            }\n        } else {\n            if (crypto_core_ed25519_from_string(\n                    y,\n                    (const unsigned char *) \"QUUX-V01-CS02-with-edwards25519_XMD:SHA-512_ELL2_RO_\",\n                    sizeof(\"QUUX-V01-CS02-with-edwards25519_XMD:SHA-512_ELL2_RO_\") - 1U,\n                    (const unsigned char *) test_data[i].msg,\n                    strlen(test_data[i].msg), H2CHASH) != 0) {\n                printf(\"crypto_core_ed25519_from_string() failed\\n\");\n            }\n        }\n        if (((y[crypto_core_ed25519_BYTES - 1U] >> 7) & 1) != expected_x_sign) {\n            printf(\"Test #%u failed - x sign bit mismatch\\n\", (unsigned) i);\n        }\n        y[crypto_core_ed25519_BYTES - 1U] &= 0x7f;\n        if (memcmp(y, expected_y, crypto_core_ed25519_BYTES) != 0) {\n            sodium_bin2hex(expected_y_hex, crypto_core_ed25519_BYTES * 2U + 1U,\n                           expected_y, crypto_core_ed25519_BYTES);\n            sodium_bin2hex(y_hex, crypto_core_ed25519_BYTES * 2U + 1U, y,\n                           crypto_core_ed25519_BYTES);\n            printf(\"Test #%u failed - expected [%s] got [%s]\\n\", (unsigned) i,\n                   expected_y_hex, y_hex);\n        }\n    }\n\n    if (crypto_core_ed25519_from_string_nu(y, NULL, 0U, (const unsigned char *) \"msg\",\n                                           3U, H2CHASH) != 0 ||\n        crypto_core_ed25519_from_string_nu(y, (const unsigned char *) \"\", 0U,\n                                           guard_page, 0U, H2CHASH) != 0 ||\n        crypto_core_ed25519_from_string(\n            y, NULL, 0U, (const unsigned char *) \"msg\", 3U, H2CHASH) != 0 ||\n        crypto_core_ed25519_from_string(y, (const unsigned char *) \"\", 0U,\n                                           guard_page, 0U, H2CHASH) != 0) {\n        printf(\"Failed with empty parameters\");\n    }\n\n    oversized_ctx = (char *) sodium_malloc(oversized_ctx_len);\n    memset(oversized_ctx, 'X', oversized_ctx_len);\n    crypto_core_ed25519_from_string_nu(y, (const unsigned char *) oversized_ctx,\n                                       oversized_ctx_len - 1U,\n                                       (const unsigned char *) \"msg\", 3U,\n                                       H2CHASH);\n    sodium_bin2hex(y_hex, crypto_core_ed25519_BYTES * 2U + 1U, y,\n                   crypto_core_ed25519_BYTES);\n    printf(\"NU with oversized context: %s\\n\", y_hex);\n    crypto_core_ed25519_from_string(y, (const unsigned char *) oversized_ctx,\n                                       oversized_ctx_len - 1U,\n                                       (const unsigned char *) \"msg\", 3U,\n                                       H2CHASH);\n    sodium_bin2hex(y_hex, crypto_core_ed25519_BYTES * 2U + 1U, y,\n                   crypto_core_ed25519_BYTES);\n    printf(\"RO with oversized context: %s\\n\", y_hex);\n    sodium_free(oversized_ctx);\n    sodium_free(y_hex);\n    sodium_free(expected_y_hex);\n    sodium_free(y);\n    sodium_free(expected_y);\n    sodium_free(expected_yr);\n    sodium_free(expected_x);\n    sodium_free(expected_xr);\n}\n\nint\nmain(void)\n{\n    test_scalar_from_string();\n    test_from_string();\n\n    printf(\"OK\\n\");\n\n    return 0;\n}\n"
  },
  {
    "path": "test/default/core_ed25519_h2c.exp",
    "content": "scalar_from_string oversized DST/sha512: 65a9285a623f62fb45d3f7f1598bb32d361c0e504d70d8401f28784af854cc09\nscalar_from_string oversized DST/sha256: 9520c0e0dc6af766f5708c4a4b355dba66cf15462f2556c6fa8ccc03aaa0e102\nNU with oversized context: 998ca2fdd0ade350cb6c279173dfd4a6a42f46ca5c2928871aacff60c16546e3\nRO with oversized context: 5ed4ae2ab665a7a9543f6e9887dc8f8f68a7720fdf32b971f3be71d9c9549ff4\nOK\n"
  },
  {
    "path": "test/default/core_keccak1600.c",
    "content": "\n#define TEST_NAME \"core_keccak1600\"\n#include \"cmptest.h\"\n\nstatic void\nprint_hex(const char *label, const unsigned char *data, size_t len)\n{\n    size_t i;\n    printf(\"%s\", label);\n    for (i = 0; i < len; i++) {\n        printf(\"%02x\", data[i]);\n    }\n    printf(\"\\n\");\n}\n\nstatic int\ncompare_states(const char *label, const unsigned char *actual, const unsigned char *expected,\n               size_t len)\n{\n    size_t i, j;\n    for (i = 0; i < len; i++) {\n        if (actual[i] != expected[i]) {\n            printf(\"FAIL: %s mismatch at byte %u\\n\", label, (unsigned int) i);\n            printf(\"  Expected: \");\n            for (j = 0; j < len; j++) {\n                printf(\"%02x\", expected[j]);\n            }\n            printf(\"\\n  Got:      \");\n            for (j = 0; j < len; j++) {\n                printf(\"%02x\", actual[j]);\n            }\n            printf(\"\\n\");\n            return -1;\n        }\n    }\n    printf(\"PASS: %s\\n\", label);\n    return 0;\n}\n\nint\nmain(void)\n{\n    crypto_core_keccak1600_state state;\n    unsigned char                extracted[64];\n    unsigned char                test_data[64];\n    unsigned char                sentinel[64];\n    crypto_core_keccak1600_state state_12, state_24;\n    unsigned char                last_byte;\n    size_t                       i;\n    int                          test_failures = 0;\n    int                          differs;\n\n    /* Test vectors for Keccak-f[1600] (24 rounds) */\n    /* Test vector 1: All-zero input for Keccak-f[1600] */\n    static const unsigned char keccak_f_1600_zero_input[200]    = { 0 };\n    static const unsigned char keccak_f_1600_zero_expected[200] = {\n        0xe7, 0xdd, 0xe1, 0x40, 0x79, 0x8f, 0x25, 0xf1, 0x8a, 0x47, 0xc0, 0x33, 0xf9, 0xcc, 0xd5,\n        0x84, 0xee, 0xa9, 0x5a, 0xa6, 0x1e, 0x26, 0x98, 0xd5, 0x4d, 0x49, 0x80, 0x6f, 0x30, 0x47,\n        0x15, 0xbd, 0x57, 0xd0, 0x53, 0x62, 0x05, 0x4e, 0x28, 0x8b, 0xd4, 0x6f, 0x8e, 0x7f, 0x2d,\n        0xa4, 0x97, 0xff, 0xc4, 0x47, 0x46, 0xa4, 0xa0, 0xe5, 0xfe, 0x90, 0x76, 0x2e, 0x19, 0xd6,\n        0x0c, 0xda, 0x5b, 0x8c, 0x9c, 0x05, 0x19, 0x1b, 0xf7, 0xa6, 0x30, 0xad, 0x64, 0xfc, 0x8f,\n        0xd0, 0xb7, 0x5a, 0x93, 0x30, 0x35, 0xd6, 0x17, 0x23, 0x3f, 0xa9, 0x5a, 0xeb, 0x03, 0x21,\n        0x71, 0x0d, 0x26, 0xe6, 0xa6, 0xa9, 0x5f, 0x55, 0xcf, 0xdb, 0x16, 0x7c, 0xa5, 0x81, 0x26,\n        0xc8, 0x47, 0x03, 0xcd, 0x31, 0xb8, 0x43, 0x9f, 0x56, 0xa5, 0x11, 0x1a, 0x2f, 0xf2, 0x01,\n        0x61, 0xae, 0xd9, 0x21, 0x5a, 0x63, 0xe5, 0x05, 0xf2, 0x70, 0xc9, 0x8c, 0xf2, 0xfe, 0xbe,\n        0x64, 0x11, 0x66, 0xc4, 0x7b, 0x95, 0x70, 0x36, 0x61, 0xcb, 0x0e, 0xd0, 0x4f, 0x55, 0x5a,\n        0x7c, 0xb8, 0xc8, 0x32, 0xcf, 0x1c, 0x8a, 0xe8, 0x3e, 0x8c, 0x14, 0x26, 0x3a, 0xae, 0x22,\n        0x79, 0x0c, 0x94, 0xe4, 0x09, 0xc5, 0xa2, 0x24, 0xf9, 0x41, 0x18, 0xc2, 0x65, 0x04, 0xe7,\n        0x26, 0x35, 0xf5, 0x16, 0x3b, 0xa1, 0x30, 0x7f, 0xe9, 0x44, 0xf6, 0x75, 0x49, 0xa2, 0xec,\n        0x5c, 0x7b, 0xff, 0xf1, 0xea\n    };\n\n    /* Test vector 2: Pattern input for Keccak-f[1600] */\n    static const unsigned char keccak_f_1600_pattern_input[200] = {\n        0xa3, 0xa3, 0xa3, 0xa3, 0xa3, 0xa3, 0xa3, 0xa3, 0xa3, 0xa3, 0xa3, 0xa3, 0xa3, 0xa3, 0xa3,\n        0xa3, 0xa3, 0xa3, 0xa3, 0xa3, 0xa3, 0xa3, 0xa3, 0xa3, 0xa3, 0xa3, 0xa3, 0xa3, 0xa3, 0xa3,\n        0xa3, 0xa3, 0xa3, 0xa3, 0xa3, 0xa3, 0xa3, 0xa3, 0xa3, 0xa3, 0xa3, 0xa3, 0xa3, 0xa3, 0xa3,\n        0xa3, 0xa3, 0xa3, 0xa3, 0xa3, 0xa3, 0xa3, 0xa3, 0xa3, 0xa3, 0xa3, 0xa3, 0xa3, 0xa3, 0xa3,\n        0xa3, 0xa3, 0xa3, 0xa3, 0xa3, 0xa3, 0xa3, 0xa3, 0xa3, 0xa3, 0xa3, 0xa3, 0xa3, 0xa3, 0xa3,\n        0xa3, 0xa3, 0xa3, 0xa3, 0xa3, 0xa3, 0xa3, 0xa3, 0xa3, 0xa3, 0xa3, 0xa3, 0xa3, 0xa3, 0xa3,\n        0xa3, 0xa3, 0xa3, 0xa3, 0xa3, 0xa3, 0xa3, 0xa3, 0xa3, 0xa3, 0xa3, 0xa3, 0xa3, 0xa3, 0xa3,\n        0xa3, 0xa3, 0xa3, 0xa3, 0xa3, 0xa3, 0xa3, 0xa3, 0xa3, 0xa3, 0xa3, 0xa3, 0xa3, 0xa3, 0xa3,\n        0xa3, 0xa3, 0xa3, 0xa3, 0xa3, 0xa3, 0xa3, 0xa3, 0xa3, 0xa3, 0xa3, 0xa3, 0xa3, 0xa3, 0xa3,\n        0xa3, 0xa3, 0xa3, 0xa3, 0xa3, 0xa3, 0xa3, 0xa3, 0xa3, 0xa3, 0xa3, 0xa3, 0xa3, 0xa3, 0xa3,\n        0xa3, 0xa3, 0xa3, 0xa3, 0xa3, 0xa3, 0xa3, 0xa3, 0xa3, 0xa3, 0xa3, 0xa3, 0xa3, 0xa3, 0xa3,\n        0xa3, 0xa3, 0xa3, 0xa3, 0xa3, 0xa3, 0xa3, 0xa3, 0xa3, 0xa3, 0xa3, 0xa3, 0xa3, 0xa3, 0xa3,\n        0xa3, 0xa3, 0xa3, 0xa3, 0xa3, 0xa3, 0xa3, 0xa3, 0xa3, 0xa3, 0xa3, 0xa3, 0xa3, 0xa3, 0xa3,\n        0xa3, 0xa3, 0xa3, 0xa3, 0xa3\n    };\n    static const unsigned char keccak_f_1600_pattern_expected[200] = {\n        0xcc, 0x44, 0x83, 0xfe, 0xb5, 0x5e, 0x43, 0xf4, 0x6d, 0x88, 0x81, 0xbd, 0x35, 0x8e, 0xbf,\n        0x75, 0x9a, 0x06, 0xe7, 0xcd, 0x81, 0xf5, 0xca, 0x48, 0xbf, 0xb7, 0x1b, 0x19, 0xc8, 0x02,\n        0x61, 0x45, 0x00, 0x0a, 0x17, 0x39, 0xb1, 0x18, 0x89, 0xc7, 0x3d, 0x53, 0xa9, 0x78, 0x17,\n        0xd2, 0x82, 0x4e, 0x52, 0xe6, 0x76, 0xbd, 0xe5, 0xce, 0xee, 0x9a, 0x86, 0x6e, 0x8b, 0x4c,\n        0xca, 0x8c, 0xf2, 0x99, 0xd8, 0x18, 0x53, 0xa0, 0x06, 0x15, 0x02, 0xff, 0x1a, 0x7b, 0x11,\n        0x82, 0x7c, 0x96, 0x7d, 0x8c, 0xf2, 0xc6, 0x21, 0xa6, 0x24, 0xda, 0x96, 0x75, 0xd2, 0xab,\n        0xc9, 0x30, 0x89, 0x22, 0x18, 0x14, 0x7e, 0xa9, 0x07, 0xa6, 0xf0, 0x88, 0x7a, 0x86, 0x6c,\n        0x7b, 0x79, 0x89, 0xe0, 0x6c, 0xcf, 0x82, 0x66, 0x62, 0x63, 0x79, 0x98, 0x37, 0x44, 0xce,\n        0x1d, 0xe1, 0xb1, 0xb5, 0x12, 0xca, 0x63, 0x6f, 0x25, 0x47, 0x14, 0x1d, 0xef, 0x48, 0x47,\n        0xac, 0x64, 0x6a, 0x76, 0xbc, 0x25, 0xbc, 0xed, 0x98, 0xb7, 0x34, 0xfd, 0xd6, 0x65, 0x15,\n        0x4d, 0x85, 0xe8, 0x1e, 0x65, 0x08, 0x09, 0x28, 0x19, 0x39, 0x04, 0xf7, 0x6f, 0xec, 0x96,\n        0x27, 0xa2, 0x23, 0x3b, 0x2f, 0x75, 0x02, 0x09, 0x25, 0x0d, 0x46, 0xb9, 0x77, 0x65, 0xd0,\n        0x19, 0xa5, 0x5a, 0x97, 0xc8, 0xf9, 0x81, 0x4b, 0xfd, 0xb5, 0x38, 0xb9, 0xbc, 0x68, 0x55,\n        0xac, 0x35, 0x1b, 0xf1, 0xe4\n    };\n\n    /* Test vectors for Keccak-p[1600,12] (12 rounds, TurboSHAKE) */\n    /* Test vector 3: All-zero input for Keccak-p[1600,12] */\n    static const unsigned char keccak_p_12_zero_expected[200] = {\n        0x17, 0x86, 0xa7, 0xb9, 0x38, 0x54, 0x5e, 0x8e, 0x1e, 0xd0, 0x59, 0xf2, 0x50, 0x6a, 0xcd,\n        0xd9, 0x35, 0x1f, 0xa9, 0x52, 0xc6, 0xe7, 0xb8, 0x87, 0xc5, 0xe0, 0xe4, 0xcd, 0x67, 0xe0,\n        0x93, 0x10, 0x45, 0x5a, 0xd9, 0xf2, 0x90, 0xab, 0x33, 0xb0, 0x45, 0x1a, 0xdd, 0xa8, 0x72,\n        0x2f, 0xa7, 0xe0, 0x9c, 0x2f, 0x67, 0x14, 0xaa, 0x80, 0x37, 0xc5, 0x1d, 0x07, 0x51, 0x00,\n        0xf5, 0x47, 0xdd, 0x3e, 0xcc, 0x8a, 0x17, 0x0c, 0x31, 0x1d, 0xa3, 0xb3, 0xa0, 0xaa, 0x57,\n        0x92, 0xa5, 0x86, 0xb5, 0x79, 0x9b, 0xf9, 0xb1, 0xb3, 0x3d, 0x7c, 0x4a, 0xbc, 0x93, 0x67,\n        0x8a, 0xe6, 0x63, 0x40, 0x87, 0x68, 0x66, 0x25, 0x0e, 0x2e, 0x33, 0x03, 0x6c, 0x5c, 0xda,\n        0x30, 0xf0, 0xb9, 0x02, 0x12, 0xaa, 0x9c, 0x9f, 0x7a, 0xcf, 0x2b, 0x78, 0x9a, 0x3b, 0x5f,\n        0x23, 0x79, 0xae, 0x61, 0xe0, 0xc1, 0x36, 0xe5, 0xec, 0x87, 0x3c, 0xb7, 0x18, 0xb6, 0xe9,\n        0x6d, 0xc2, 0x8a, 0x91, 0x70, 0xf1, 0xd1, 0xbe, 0x2a, 0xb7, 0x24, 0xed, 0xda, 0x53, 0xbd,\n        0xab, 0x6a, 0x5a, 0xe1, 0x2e, 0x2c, 0x6a, 0x41, 0xc1, 0xbf, 0xaf, 0x52, 0x09, 0xb9, 0x36,\n        0xe0, 0xcf, 0xc6, 0xd7, 0x60, 0x70, 0xdc, 0x17, 0x36, 0x50, 0x45, 0xe4, 0x7a, 0x9f, 0xc2,\n        0xb2, 0x11, 0x56, 0x62, 0x7a, 0x64, 0x30, 0x2c, 0xdb, 0x71, 0x36, 0xd4, 0x1c, 0xa0, 0x2c,\n        0x22, 0x76, 0x0d, 0xfd, 0xcf\n    };\n\n    printf(\"=== Keccak-1600 Core Function Tests ===\\n\\n\");\n\n    /* Test 1: Init function */\n    printf(\"Test 1: crypto_core_keccak1600_init\\n\");\n    memset(state.opaque, 0xFF, 200);\n    crypto_core_keccak1600_init(&state);\n    for (i = 0; i < 200; i++) {\n        if (state.opaque[i] != 0) {\n            printf(\"  FAIL: State not zeroed at byte %u\\n\", (unsigned int) i);\n            test_failures++;\n            break;\n        }\n    }\n    if (i == 200) {\n        printf(\"  PASS: State initialized to zeros\\n\\n\");\n    }\n\n    /* Test 2: XOR and extract functions */\n    printf(\"Test 2: crypto_core_keccak1600_xor_bytes and extract_bytes\\n\");\n    crypto_core_keccak1600_init(&state);\n    for (i = 0; i < sizeof test_data; i++) {\n        test_data[i] = (unsigned char) i;\n    }\n\n    /* Edge case: zero-length XOR/extract should be a no-op (test at offset 0 and at end) */\n    {\n        static const size_t offsets[] = { 0, 200 };\n        size_t              t;\n        for (t = 0; t < sizeof offsets / sizeof offsets[0]; t++) {\n            crypto_core_keccak1600_init(&state);\n            memset(extracted, 0xA5, sizeof extracted);\n            memset(sentinel, 0xA5, sizeof sentinel);\n            crypto_core_keccak1600_xor_bytes(&state, test_data, offsets[t], 0);\n            crypto_core_keccak1600_extract_bytes(&state, extracted, offsets[t], 0);\n            for (i = 0; i < 200; i++) {\n                if (state.opaque[i] != 0) {\n                    printf(\"  FAIL: XOR length 0 at offset %u modified state\\n\\n\",\n                           (unsigned) offsets[t]);\n                    test_failures++;\n                    break;\n                }\n            }\n            if (memcmp(extracted, sentinel, sizeof extracted) != 0) {\n                printf(\"  FAIL: extract length 0 at offset %u modified output\\n\\n\",\n                       (unsigned) offsets[t]);\n                test_failures++;\n            }\n        }\n    }\n\n    /* Edge case: XOR/extract last byte */\n    crypto_core_keccak1600_init(&state);\n    memset(extracted, 0, sizeof extracted);\n    last_byte = 0x5A;\n    crypto_core_keccak1600_xor_bytes(&state, &last_byte, 199, 1);\n    crypto_core_keccak1600_extract_bytes(&state, extracted, 199, 1);\n    if (extracted[0] != last_byte) {\n        printf(\"  FAIL: XOR/extract last byte mismatch\\n\\n\");\n        test_failures++;\n    }\n\n    crypto_core_keccak1600_init(&state);\n    crypto_core_keccak1600_xor_bytes(&state, test_data, 0, sizeof test_data);\n    crypto_core_keccak1600_extract_bytes(&state, extracted, 0, sizeof test_data);\n    if (memcmp(extracted, test_data, sizeof test_data) == 0) {\n        printf(\"  PASS: XOR and extract work correctly\\n\\n\");\n    } else {\n        printf(\"  FAIL: XOR/extract mismatch\\n\\n\");\n        test_failures++;\n    }\n\n    /* Test 3: Keccak-f[1600] with all-zero input (24 rounds) */\n    printf(\"Test 3: Keccak-f[1600] (24 rounds) - Zero input\\n\");\n    memcpy(state.opaque, keccak_f_1600_zero_input, 200);\n    crypto_core_keccak1600_permute_24(&state);\n    test_failures +=\n        compare_states(\"  Keccak-f[1600] zero\", state.opaque, keccak_f_1600_zero_expected, 200);\n    printf(\"\\n\");\n\n    /* Test 4: Keccak-f[1600] with pattern input (24 rounds) */\n    printf(\"Test 4: Keccak-f[1600] (24 rounds) - Pattern 0xa3 input\\n\");\n    memcpy(state.opaque, keccak_f_1600_pattern_input, 200);\n    crypto_core_keccak1600_permute_24(&state);\n    test_failures +=\n        compare_states(\"  Keccak-f[1600] pattern\", state.opaque, keccak_f_1600_pattern_expected, 200);\n    printf(\"\\n\");\n\n    /* Test 5: Keccak-p[1600,12] with all-zero input (12 rounds) */\n    printf(\"Test 5: Keccak-p[1600,12] (12 rounds) - Zero input\\n\");\n    crypto_core_keccak1600_init(&state);\n    crypto_core_keccak1600_permute_12(&state);\n    test_failures +=\n        compare_states(\"  Keccak-p[1600,12] zero\", state.opaque, keccak_p_12_zero_expected, 200);\n    printf(\"\\n\");\n\n    /* Test 6: Verify 12 and 24 rounds produce different outputs */\n    printf(\"Test 6: Verify 12-round and 24-round differ\\n\");\n    crypto_core_keccak1600_init(&state_12);\n    crypto_core_keccak1600_init(&state_24);\n    crypto_core_keccak1600_permute_12(&state_12);\n    crypto_core_keccak1600_permute_24(&state_24);\n\n    differs = 0;\n    for (i = 0; i < 200; i++) {\n        if (state_12.opaque[i] != state_24.opaque[i]) {\n            differs = 1;\n            break;\n        }\n    }\n    if (differs) {\n        printf(\"  PASS: 12-round and 24-round produce different outputs\\n\");\n        printf(\"    First difference at byte %u: 12-round=0x%02x, 24-round=0x%02x\\n\\n\",\n               (unsigned int) i, state_12.opaque[i], state_24.opaque[i]);\n    } else {\n        printf(\"  FAIL: 12-round and 24-round produce identical outputs\\n\\n\");\n        test_failures++;\n    }\n\n    /* Test 7: Multiple permutations */\n    printf(\"Test 7: Double permutation consistency\\n\");\n    crypto_core_keccak1600_init(&state);\n    crypto_core_keccak1600_permute_24(&state);\n    memcpy(state_24.opaque, state.opaque, 200);\n    crypto_core_keccak1600_permute_24(&state);\n    printf(\"  After 24+24 rounds: \");\n    print_hex(\"\", state.opaque, 32);\n\n    crypto_core_keccak1600_init(&state);\n    crypto_core_keccak1600_permute_12(&state);\n    memcpy(state_12.opaque, state.opaque, 200);\n    crypto_core_keccak1600_permute_12(&state);\n    printf(\"  After 12+12 rounds: \");\n    print_hex(\"\", state.opaque, 32);\n    printf(\"\\n\");\n\n    /* Final summary */\n    printf(\"=== Test Summary ===\\n\");\n    if (test_failures == 0) {\n        printf(\"All tests PASSED!\\n\");\n        return 0;\n    } else {\n        printf(\"FAILED: %d test(s) failed\\n\", test_failures);\n        return 1;\n    }\n}\n"
  },
  {
    "path": "test/default/core_keccak1600.exp",
    "content": "=== Keccak-1600 Core Function Tests ===\n\nTest 1: crypto_core_keccak1600_init\n  PASS: State initialized to zeros\n\nTest 2: crypto_core_keccak1600_xor_bytes and extract_bytes\n  PASS: XOR and extract work correctly\n\nTest 3: Keccak-f[1600] (24 rounds) - Zero input\nPASS:   Keccak-f[1600] zero\n\nTest 4: Keccak-f[1600] (24 rounds) - Pattern 0xa3 input\nPASS:   Keccak-f[1600] pattern\n\nTest 5: Keccak-p[1600,12] (12 rounds) - Zero input\nPASS:   Keccak-p[1600,12] zero\n\nTest 6: Verify 12-round and 24-round differ\n  PASS: 12-round and 24-round produce different outputs\n    First difference at byte 0: 12-round=0x17, 24-round=0xe7\n\nTest 7: Double permutation consistency\n  After 24+24 rounds: 3ccb6ef94d955c2d6db55770d02c336a6c6bd770128d3d0994d06955b2d9208a\n  After 12+12 rounds: 048cbb36dc66034bc96a2de69835165f46e73b55de051b436c7a6154c9469f48\n\n=== Test Summary ===\nAll tests PASSED!\n"
  },
  {
    "path": "test/default/core_ristretto255.c",
    "content": "#define TEST_NAME \"core_ristretto255\"\n#include \"cmptest.h\"\n\nstatic void\ntv1(void)\n{\n    static const char *bad_encodings_hex[] = {\n        /* Non-canonical field encodings */\n        \"00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\",\n        \"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f\",\n        \"f3ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f\",\n        \"edffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f\",\n        \"0100000000000000000000000000000000000000000000000000000000000080\",\n\n        /* Negative field elements */\n        \"0100000000000000000000000000000000000000000000000000000000000000\",\n        \"01ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f\",\n        \"ed57ffd8c914fb201471d1c3d245ce3c746fcbe63a3679d51b6a516ebebe0e20\",\n        \"c34c4e1826e5d403b78e246e88aa051c36ccf0aafebffe137d148a2bf9104562\",\n        \"c940e5a4404157cfb1628b108db051a8d439e1a421394ec4ebccb9ec92a8ac78\",\n        \"47cfc5497c53dc8e61c91d17fd626ffb1c49e2bca94eed052281b510b1117a24\",\n        \"f1c6165d33367351b0da8f6e4511010c68174a03b6581212c71c0e1d026c3c72\",\n        \"87260f7a2f12495118360f02c26a470f450dadf34a413d21042b43b9d93e1309\",\n\n        /* Non-square x^2 */\n        \"26948d35ca62e643e26a83177332e6b6afeb9d08e4268b650f1f5bbd8d81d371\",\n        \"4eac077a713c57b4f4397629a4145982c661f48044dd3f96427d40b147d9742f\",\n        \"de6a7b00deadc788eb6b6c8d20c0ae96c2f2019078fa604fee5b87d6e989ad7b\",\n        \"bcab477be20861e01e4a0e295284146a510150d9817763caf1a6f4b422d67042\",\n        \"2a292df7e32cababbd9de088d1d1abec9fc0440f637ed2fba145094dc14bea08\",\n        \"f4a9e534fc0d216c44b218fa0c42d99635a0127ee2e53c712f70609649fdff22\",\n        \"8268436f8c4126196cf64b3c7ddbda90746a378625f9813dd9b8457077256731\",\n        \"2810e5cbc2cc4d4eece54f61c6f69758e289aa7ab440b3cbeaa21995c2f4232b\",\n\n        /* Negative xy value */\n        \"3eb858e78f5a7254d8c9731174a94f76755fd3941c0ac93735c07ba14579630e\",\n        \"a45fdc55c76448c049a1ab33f17023edfb2be3581e9c7aade8a6125215e04220\",\n        \"d483fe813c6ba647ebbfd3ec41adca1c6130c2beeee9d9bf065c8d151c5f396e\",\n        \"8a2e1d30050198c65a54483123960ccc38aef6848e1ec8f5f780e8523769ba32\",\n        \"32888462f8b486c68ad7dd9610be5192bbeaf3b443951ac1a8118419d9fa097b\",\n        \"227142501b9d4355ccba290404bde41575b037693cef1f438c47f8fbf35d1165\",\n        \"5c37cc491da847cfeb9281d407efc41e15144c876e0170b499a96a22ed31e01e\",\n        \"445425117cb8c90edcbc7c1cc0e74f747f2c1efa5630a967c64f287792a48a4b\",\n\n        /* s = -1, which causes y = 0 */\n        \"ecffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f\"\n    };\n    unsigned char *s;\n    size_t         i;\n\n    s = (unsigned char *) sodium_malloc(crypto_core_ristretto255_BYTES);\n    for (i = 0; i < sizeof bad_encodings_hex / sizeof bad_encodings_hex[0]; i++) {\n        sodium_hex2bin(s, crypto_core_ristretto255_BYTES, bad_encodings_hex[i],\n                       crypto_core_ristretto255_BYTES * 2 + 1,\n                       NULL, NULL, NULL);\n        if (crypto_core_ristretto255_is_valid_point(s)) {\n            printf(\"[%s] was not rejected\\n\", bad_encodings_hex[i]);\n        }\n    }\n    sodium_free(s);\n};\n\nstatic void\ntv2(void)\n{\n    static const char *hash_hex[] = {\n        \"5d1be09e3d0c82fc538112490e35701979d99e06ca3e2b5b54bffe8b4dc772c1\"\n        \"4d98b696a1bbfb5ca32c436cc61c16563790306c79eaca7705668b47dffe5bb6\",\n\n        \"f116b34b8f17ceb56e8732a60d913dd10cce47a6d53bee9204be8b44f6678b27\"\n        \"0102a56902e2488c46120e9276cfe54638286b9e4b3cdb470b542d46c2068d38\",\n\n        \"8422e1bbdaab52938b81fd602effb6f89110e1e57208ad12d9ad767e2e25510c\"\n        \"27140775f9337088b982d83d7fcf0b2fa1edffe51952cbe7365e95c86eaf325c\",\n\n        \"ac22415129b61427bf464e17baee8db65940c233b98afce8d17c57beeb7876c2\"\n        \"150d15af1cb1fb824bbd14955f2b57d08d388aab431a391cfc33d5bafb5dbbaf\",\n\n        \"165d697a1ef3d5cf3c38565beefcf88c0f282b8e7dbd28544c483432f1cec767\"\n        \"5debea8ebb4e5fe7d6f6e5db15f15587ac4d4d4a1de7191e0c1ca6664abcc413\",\n\n        \"a836e6c9a9ca9f1e8d486273ad56a78c70cf18f0ce10abb1c7172ddd605d7fd2\"\n        \"979854f47ae1ccf204a33102095b4200e5befc0465accc263175485f0e17ea5c\",\n\n        \"2cdc11eaeb95daf01189417cdddbf95952993aa9cb9c640eb5058d09702c7462\"\n        \"2c9965a697a3b345ec24ee56335b556e677b30e6f90ac77d781064f866a3c982\"\n    };\n    unsigned char *s;\n    unsigned char *u;\n    char          *hex;\n    size_t         i;\n\n    s = (unsigned char *) sodium_malloc(crypto_core_ristretto255_BYTES);\n    u = (unsigned char *) sodium_malloc(crypto_core_ristretto255_HASHBYTES);\n    hex = (char *) sodium_malloc(crypto_core_ristretto255_BYTES * 2 + 1);\n    for (i = 0; i < sizeof hash_hex / sizeof hash_hex[0]; i++) {\n        sodium_hex2bin(u, crypto_core_ristretto255_HASHBYTES, hash_hex[i],\n                       crypto_core_ristretto255_HASHBYTES * 2 + 1,\n                       NULL, NULL, NULL);\n        crypto_core_ristretto255_from_hash(s, u);\n        sodium_bin2hex(hex, crypto_core_ristretto255_BYTES * 2 + 1,\n                       s, crypto_core_ristretto255_BYTES);\n        printf(\"%s\\n\", hex);\n    }\n    sodium_free(hex);\n    sodium_free(u);\n    sodium_free(s);\n}\n\nstatic void\ntv3(void)\n{\n    static const unsigned char l[crypto_core_ed25519_BYTES] =\n      { 0xed, 0xd3, 0xf5, 0x5c, 0x1a, 0x63, 0x12, 0x58,\n        0xd6, 0x9c, 0xf7, 0xa2, 0xde, 0xf9, 0xde, 0x14,\n        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10 };\n\n    unsigned char *r =\n        (unsigned char *) sodium_malloc(crypto_core_ristretto255_SCALARBYTES);\n    unsigned char *r_inv =\n        (unsigned char *) sodium_malloc(crypto_core_ristretto255_SCALARBYTES);\n    unsigned char *ru =\n        (unsigned char *) sodium_malloc(crypto_core_ristretto255_HASHBYTES);\n    unsigned char *s =\n        (unsigned char *) sodium_malloc(crypto_core_ristretto255_BYTES);\n    unsigned char *s_ =\n        (unsigned char *) sodium_malloc(crypto_core_ristretto255_BYTES);\n    unsigned char *s2 =\n        (unsigned char *) sodium_malloc(crypto_core_ristretto255_BYTES);\n    int            i;\n\n    for (i = 0; i < 1000; i++) {\n        crypto_core_ristretto255_scalar_random(r);\n        if (crypto_scalarmult_ristretto255_base(s, r) != 0 ||\n            crypto_core_ristretto255_is_valid_point(s) != 1) {\n            printf(\"crypto_scalarmult_ristretto255_base() failed\\n\");\n        }\n        crypto_core_ristretto255_random(s);\n        if (crypto_core_ristretto255_is_valid_point(s) != 1) {\n            printf(\"crypto_core_ristretto255_random() failed\\n\");\n        }\n        if (crypto_scalarmult_ristretto255(s, l, s) == 0) {\n            printf(\"s*l != inf (1)\\n\");\n        }\n        randombytes_buf(ru, crypto_core_ristretto255_HASHBYTES);\n        if (crypto_core_ristretto255_from_hash(s, ru) != 0 ||\n            crypto_core_ristretto255_is_valid_point(s) != 1) {\n            printf(\"crypto_core_ristretto255_from_hash() failed\\n\");\n        }\n        if (crypto_scalarmult_ristretto255(s2, l, s) == 0) {\n            printf(\"s*l != inf (2)\\n\");\n        }\n        if (crypto_scalarmult_ristretto255(s2, r, s) != 0  ||\n            crypto_core_ristretto255_is_valid_point(s2) != 1) {\n            printf(\"crypto_scalarmult_ristretto255() failed\\n\");\n        }\n        if (crypto_core_ristretto255_scalar_invert(r_inv, r) != 0) {\n            printf(\"crypto_core_ristretto255_scalar_invert() failed\\n\");\n        }\n        if (crypto_scalarmult_ristretto255(s_, r_inv, s2) != 0  ||\n            crypto_core_ristretto255_is_valid_point(s_) != 1) {\n            printf(\"crypto_scalarmult_ristretto255() failed\\n\");\n        }\n        if (memcmp(s, s_, crypto_core_ristretto255_BYTES) != 0) {\n            printf(\"inversion failed\\n\");\n        }\n        if (crypto_scalarmult_ristretto255(s2, l, s2) == 0) {\n            printf(\"s*l != inf (3)\\n\");\n        }\n        if (crypto_core_ristretto255_add(s2, s, s_) != 0) {\n            printf(\"addition failed\");\n        }\n        if (crypto_core_ristretto255_sub(s2, s2, s_) != 0) {\n            printf(\"subtraction failed\");\n        }\n        if (crypto_core_ristretto255_is_valid_point(s2) == 0) {\n            printf(\"invalid point\");\n        }\n        if (memcmp(s, s2, crypto_core_ristretto255_BYTES) != 0) {\n            printf(\"s2 + s - s_ != s\\n\");\n        }\n        if (crypto_core_ristretto255_sub(s2, s2, s) != 0) {\n            printf(\"subtraction failed\");\n        }\n        if (crypto_core_ristretto255_is_valid_point(s2) == -1) {\n            printf(\"s + s' - s - s' != 0\");\n        }\n    }\n\n    crypto_core_ristretto255_random(s);\n    memset(s_, 0xfe, crypto_core_ristretto255_BYTES);\n    assert(crypto_core_ristretto255_add(s2, s_, s) == -1);\n    assert(crypto_core_ristretto255_add(s2, s, s_) == -1);\n    assert(crypto_core_ristretto255_add(s2, s_, s_) == -1);\n    assert(crypto_core_ristretto255_add(s2, s, s) == 0);\n    assert(crypto_core_ristretto255_sub(s2, s_, s) == -1);\n    assert(crypto_core_ristretto255_sub(s2, s, s_) == -1);\n    assert(crypto_core_ristretto255_sub(s2, s_, s_) == -1);\n    assert(crypto_core_ristretto255_sub(s2, s, s) == 0);\n\n    sodium_free(s2);\n    sodium_free(s_);\n    sodium_free(s);\n    sodium_free(ru);\n    sodium_free(r_inv);\n    sodium_free(r);\n}\n\nstatic void\ntv4(void)\n{\n    unsigned char *r;\n    unsigned char *s1;\n    unsigned char *s2;\n    unsigned char *s3;\n    unsigned char *s4;\n\n    r = (unsigned char *) sodium_malloc(crypto_core_ristretto255_NONREDUCEDSCALARBYTES);\n    s1 = (unsigned char *) sodium_malloc(crypto_core_ristretto255_SCALARBYTES);\n    s2 = (unsigned char *) sodium_malloc(crypto_core_ristretto255_SCALARBYTES);\n    s3 = (unsigned char *) sodium_malloc(crypto_core_ristretto255_SCALARBYTES);\n    s4 = (unsigned char *) sodium_malloc(crypto_core_ristretto255_SCALARBYTES);\n\n    crypto_core_ristretto255_scalar_random(s1);\n    randombytes_buf(r, crypto_core_ristretto255_NONREDUCEDSCALARBYTES);\n    crypto_core_ristretto255_scalar_reduce(s2, r);\n    memcpy(s4, s1, crypto_core_ristretto255_SCALARBYTES);\n    crypto_core_ristretto255_scalar_add(s3, s1, s2);\n    crypto_core_ristretto255_scalar_sub(s4, s1, s2);\n    crypto_core_ristretto255_scalar_add(s2, s3, s4);\n    crypto_core_ristretto255_scalar_sub(s2, s2, s1);\n    crypto_core_ristretto255_scalar_mul(s2, s3, s2);\n    crypto_core_ristretto255_scalar_invert(s4, s3);\n    crypto_core_ristretto255_scalar_mul(s2, s2, s4);\n    crypto_core_ristretto255_scalar_negate(s1, s1);\n    crypto_core_ristretto255_scalar_add(s2, s2, s1);\n    crypto_core_ristretto255_scalar_complement(s1, s2);\n    s1[0]--;\n    assert(sodium_is_zero(s1, crypto_core_ristretto255_SCALARBYTES));\n\n    sodium_free(s1);\n    sodium_free(s2);\n    sodium_free(s3);\n    sodium_free(s4);\n    sodium_free(r);\n}\n\nint\nmain(void)\n{\n    tv1();\n    tv2();\n    tv3();\n    tv4();\n\n    assert(crypto_core_ristretto255_BYTES == crypto_core_ristretto255_bytes());\n    assert(crypto_core_ristretto255_SCALARBYTES == crypto_core_ristretto255_scalarbytes());\n    assert(crypto_core_ristretto255_NONREDUCEDSCALARBYTES == crypto_core_ristretto255_nonreducedscalarbytes());\n    assert(crypto_core_ristretto255_NONREDUCEDSCALARBYTES >= crypto_core_ristretto255_SCALARBYTES);\n    assert(crypto_core_ristretto255_HASHBYTES == crypto_core_ristretto255_hashbytes());\n    assert(crypto_core_ristretto255_HASHBYTES >= crypto_core_ristretto255_BYTES);\n    assert(crypto_core_ristretto255_BYTES == crypto_core_ed25519_BYTES);\n    assert(crypto_core_ristretto255_SCALARBYTES == crypto_core_ed25519_SCALARBYTES);\n    assert(crypto_core_ristretto255_NONREDUCEDSCALARBYTES == crypto_core_ed25519_NONREDUCEDSCALARBYTES);\n    assert(crypto_core_ristretto255_HASHBYTES >= 2 * crypto_core_ed25519_UNIFORMBYTES);\n\n    printf(\"OK\\n\");\n\n    return 0;\n}\n"
  },
  {
    "path": "test/default/core_ristretto255.exp",
    "content": "3066f82a1a747d45120d1740f14358531a8f04bbffe6a819f86dfe50f44a0a46\nf26e5b6f7d362d2d2a94c5d0e7602cb4773c95a2e5c31a64f133189fa76ed61b\n006ccd2a9e6867e6a2c5cea83d3302cc9de128dd2a9a57dd8ee7b9d7ffe02826\nf8f0c87cf237953c5890aec3998169005dae3eca1fbb04548c635953c817f92a\nae81e7dedf20a497e10c304a765c1767a42d6e06029758d2d7e8ef7cc4c41179\ne2705652ff9f5e44d3e841bf1c251cf7dddb77d140870d1ab2ed64f1a9ce8628\n80bd07262511cdde4863f8a7434cef696750681cb9510eea557088f76d9e5065\nOK\n"
  },
  {
    "path": "test/default/core_ristretto255_h2c.c",
    "content": "#define TEST_NAME \"core_ristretto255_h2c\"\n#include \"cmptest.h\"\n\n/*\n * Test vectors derived from RFC 9497 (OPRFs Using Prime-Order Groups)\n */\n\ntypedef struct TestData_ {\n    unsigned char mode;\n    const char   *input_hex;\n    const char    expected_hex[65];\n} TestData;\n\nstatic TestData test_data[] = {\n    /* OPRF mode 0, RFC 9497 A.1.1, Test Vector 1 */\n    { 0x00, \"00\",\n      \"5873db2e5f8f4f544ce3e574c74c487f03bc64a2cf63b7c913908091aab03357\" },\n    /* OPRF mode 0, RFC 9497 A.1.1, Test Vector 2 */\n    { 0x00, \"5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a\",\n      \"743d49d207339ae67aef8f4d0777744e5a604b94df5cbcc13e3dd87e79985a39\" },\n    /* VOPRF mode 1, RFC 9497 A.1.2, Test Vector 1 */\n    { 0x01, \"00\",\n      \"868c9140811d0dc38291c7bbc0bd8f301d0d4e8b15f65e442184a233b8791703\" },\n    /* VOPRF mode 1, RFC 9497 A.1.2, Test Vector 2 */\n    { 0x01, \"5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a\",\n      \"caff66fcdc41da4d87ccc72aaac70c6e267a4b55c3dc9489bb365a70a04f1a52\" },\n    /* POPRF mode 2, RFC 9497 A.1.3, Test Vector 1 */\n    { 0x02, \"00\",\n      \"5e121666a7c49e1f24b59fef212aa9c8556e096d3f1598cc02f5c70215b32d73\" },\n    /* POPRF mode 2, RFC 9497 A.1.3, Test Vector 2 */\n    { 0x02, \"5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a\",\n      \"785596d91746f8ff32f9f95af448408435284e5935932572caa9e7e0b04fdb03\" }\n};\n\nstatic void\ntest_scalar_from_string(void)\n{\n    static const struct {\n        int         hash_alg;\n        const char *msg;\n        size_t      msg_len;\n        const char *ctx;\n        size_t      ctx_len;\n        const char  expected[65];\n    } scalar_tvs[] = {\n        { 1, \"\", 0U, \"test-dst\", 8U,\n          \"28dae5fcb05a81163b41a90fc54e3e815613194ddd44b1e718bfab7457536705\" },\n        { 2, \"\", 0U, \"test-dst\", 8U,\n          \"110d25b6c0f2ab15d9387d4d77847e62c3b133da1bcc71e588076765c74e0b03\" },\n        { 1, \"abc\", 3U, \"test-dst\", 8U,\n          \"8a2383018254b8b57b624f049bc2e72c1c401ad0959b10d1d24ad863fcb5060c\" },\n        { 2, \"abc\", 3U, \"test-dst\", 8U,\n          \"cc954e2d86fdba2af74270642bd6375bdf13e485077bb56a648aaf243d4a8007\" },\n        { 2, \"\", 0U, \"\", 0U,\n          \"c9fb227ffae5fa378f3e6cbbafe054989748daae21c9ebe907f7b68d14093a06\" }\n    };\n    unsigned char  s[crypto_core_ristretto255_SCALARBYTES];\n    unsigned char  expected_s[crypto_core_ristretto255_SCALARBYTES];\n    char           s_hex[crypto_core_ristretto255_SCALARBYTES * 2U + 1U];\n    size_t         oversized_len = 256U;\n    unsigned char *big_ctx;\n    size_t         t;\n\n    for (t = 0U; t < sizeof scalar_tvs / sizeof scalar_tvs[0]; t++) {\n        sodium_hex2bin(expected_s, sizeof expected_s,\n                       scalar_tvs[t].expected, (size_t) -1U,\n                       NULL, NULL, NULL);\n        if (crypto_core_ristretto255_scalar_from_string(\n                s,\n                (const unsigned char *) scalar_tvs[t].ctx,\n                scalar_tvs[t].ctx_len,\n                (const unsigned char *) scalar_tvs[t].msg,\n                scalar_tvs[t].msg_len,\n                scalar_tvs[t].hash_alg) != 0) {\n            printf(\"scalar_from_string: call failed for tv %u\\n\",\n                   (unsigned) t);\n            continue;\n        }\n        if (memcmp(s, expected_s, sizeof expected_s) != 0) {\n            sodium_bin2hex(s_hex, sizeof s_hex, s, sizeof s);\n            printf(\"scalar_from_string: KAT %u mismatch: %s\\n\",\n                   (unsigned) t, s_hex);\n        }\n        if (crypto_core_ristretto255_scalar_is_canonical(s) != 1) {\n            printf(\"scalar_from_string: result %u not canonical\\n\",\n                   (unsigned) t);\n        }\n    }\n\n    if (crypto_core_ristretto255_scalar_from_string(\n            s,\n            (const unsigned char *) \"test-dst\", 8U,\n            (const unsigned char *) \"abc\", 3U,\n            0) != -1) {\n        printf(\"scalar_from_string: invalid hash_alg 0 should fail\\n\");\n    }\n    if (crypto_core_ristretto255_scalar_from_string(\n            s,\n            (const unsigned char *) \"test-dst\", 8U,\n            (const unsigned char *) \"abc\", 3U,\n            99) != -1) {\n        printf(\"scalar_from_string: invalid hash_alg 99 should fail\\n\");\n    }\n\n    big_ctx = (unsigned char *) sodium_malloc(oversized_len);\n    memset(big_ctx, 'X', oversized_len);\n\n    if (crypto_core_ristretto255_scalar_from_string(\n            s, big_ctx, oversized_len,\n            (const unsigned char *) \"abc\", 3U, 2) != 0) {\n        printf(\"scalar_from_string: oversized DST SHA-512 failed\\n\");\n    }\n    sodium_bin2hex(s_hex, sizeof s_hex, s, sizeof s);\n    printf(\"scalar_from_string oversized DST/sha512: %s\\n\", s_hex);\n\n    if (crypto_core_ristretto255_scalar_from_string(\n            s, big_ctx, oversized_len,\n            (const unsigned char *) \"abc\", 3U, 1) != 0) {\n        printf(\"scalar_from_string: oversized DST SHA-256 failed\\n\");\n    }\n    sodium_bin2hex(s_hex, sizeof s_hex, s, sizeof s);\n    printf(\"scalar_from_string oversized DST/sha256: %s\\n\", s_hex);\n\n    sodium_free(big_ctx);\n}\n\n#define H2CHASH crypto_core_ristretto255_H2CSHA512\n\nstatic void\ntest_from_string(void)\n{\n    unsigned char *p, *expected, *input;\n    char          *p_hex, *expected_hex;\n    char          *oversized_ctx;\n    size_t         i;\n    size_t         oversized_ctx_len = 500U;\n    size_t         input_len;\n\n    unsigned char dst[] = {\n        'H','a','s','h','T','o','G','r','o','u','p','-',\n        'O','P','R','F','V','1','-', 0x00, '-',\n        'r','i','s','t','r','e','t','t','o','2','5','5','-',\n        'S','H','A','5','1','2'\n    };\n    const size_t dst_len     = sizeof dst;\n    const size_t mode_offset = 19U;\n\n    p            = (unsigned char *) sodium_malloc(crypto_core_ristretto255_BYTES);\n    expected     = (unsigned char *) sodium_malloc(crypto_core_ristretto255_BYTES);\n    input        = (unsigned char *) sodium_malloc(256U);\n    p_hex        = (char *) sodium_malloc(crypto_core_ristretto255_BYTES * 2U + 1U);\n    expected_hex = (char *) sodium_malloc(crypto_core_ristretto255_BYTES * 2U + 1U);\n\n    for (i = 0U; i < (sizeof test_data) / (sizeof test_data[0]); i++) {\n        dst[mode_offset] = test_data[i].mode;\n\n        input_len = strlen(test_data[i].input_hex) / 2U;\n        sodium_hex2bin(input, 256U,\n                       test_data[i].input_hex, strlen(test_data[i].input_hex),\n                       NULL, NULL, NULL);\n        sodium_hex2bin(expected, crypto_core_ristretto255_BYTES,\n                       test_data[i].expected_hex, 64U, NULL, NULL, NULL);\n\n        if (crypto_core_ristretto255_from_string(\n                p, dst, dst_len, input, input_len, H2CHASH) != 0) {\n            printf(\"crypto_core_ristretto255_from_string() failed (test #%u)\\n\",\n                   (unsigned) i);\n            continue;\n        }\n        if (memcmp(p, expected, crypto_core_ristretto255_BYTES) != 0) {\n            sodium_bin2hex(expected_hex, crypto_core_ristretto255_BYTES * 2U + 1U,\n                           expected, crypto_core_ristretto255_BYTES);\n            sodium_bin2hex(p_hex, crypto_core_ristretto255_BYTES * 2U + 1U,\n                           p, crypto_core_ristretto255_BYTES);\n            printf(\"Test #%u failed - expected [%s] got [%s]\\n\",\n                   (unsigned) i, expected_hex, p_hex);\n        }\n    }\n\n    if (crypto_core_ristretto255_from_string(\n            p, NULL, 0U, (const unsigned char *) \"msg\", 3U, H2CHASH) != 0 ||\n        crypto_core_ristretto255_from_string(\n            p, (const unsigned char *) \"\", 0U, guard_page, 0U, H2CHASH) != 0) {\n        printf(\"Failed with empty parameters\\n\");\n    }\n\n    oversized_ctx = (char *) sodium_malloc(oversized_ctx_len);\n    memset(oversized_ctx, 'X', oversized_ctx_len);\n    crypto_core_ristretto255_from_string(\n        p, (const unsigned char *) oversized_ctx, oversized_ctx_len - 1U,\n        (const unsigned char *) \"msg\", 3U, H2CHASH);\n    sodium_bin2hex(p_hex, crypto_core_ristretto255_BYTES * 2U + 1U,\n                   p, crypto_core_ristretto255_BYTES);\n    printf(\"RO with oversized context: %s\\n\", p_hex);\n\n    sodium_free(oversized_ctx);\n    sodium_free(expected_hex);\n    sodium_free(p_hex);\n    sodium_free(input);\n    sodium_free(expected);\n    sodium_free(p);\n}\n\nint\nmain(void)\n{\n    test_scalar_from_string();\n    test_from_string();\n\n    printf(\"OK\\n\");\n\n    return 0;\n}\n"
  },
  {
    "path": "test/default/core_ristretto255_h2c.exp",
    "content": "scalar_from_string oversized DST/sha512: 65a9285a623f62fb45d3f7f1598bb32d361c0e504d70d8401f28784af854cc09\nscalar_from_string oversized DST/sha256: 9520c0e0dc6af766f5708c4a4b355dba66cf15462f2556c6fa8ccc03aaa0e102\nRO with oversized context: eedf0384646af8a94b9c8153490ce78f2e79f301800b33f4bfa655bcdc4fb135\nOK\n"
  },
  {
    "path": "test/default/ed25519_convert.c",
    "content": "\n#define TEST_NAME \"ed25519_convert\"\n#include \"cmptest.h\"\n\nstatic const unsigned char keypair_seed[crypto_sign_ed25519_SEEDBYTES] = {\n    0x42, 0x11, 0x51, 0xa4, 0x59, 0xfa, 0xea, 0xde, 0x3d, 0x24, 0x71,\n    0x15, 0xf9, 0x4a, 0xed, 0xae, 0x42, 0x31, 0x81, 0x24, 0x09, 0x5a,\n    0xfa, 0xbe, 0x4d, 0x14, 0x51, 0xa5, 0x59, 0xfa, 0xed, 0xee\n};\n\nint\nmain(void)\n{\n    unsigned char ed25519_pk[crypto_sign_ed25519_PUBLICKEYBYTES];\n    unsigned char ed25519_skpk[crypto_sign_ed25519_SECRETKEYBYTES];\n    unsigned char curve25519_pk[crypto_scalarmult_curve25519_BYTES];\n    unsigned char curve25519_pk2[crypto_scalarmult_curve25519_BYTES];\n    unsigned char curve25519_sk[crypto_scalarmult_curve25519_BYTES];\n    char          curve25519_pk_hex[crypto_scalarmult_curve25519_BYTES * 2 + 1];\n    char          curve25519_sk_hex[crypto_scalarmult_curve25519_BYTES * 2 + 1];\n    unsigned int  i;\n\n    assert(crypto_sign_ed25519_SEEDBYTES <= crypto_hash_sha512_BYTES);\n    crypto_sign_ed25519_seed_keypair(ed25519_pk, ed25519_skpk, keypair_seed);\n\n    if (crypto_sign_ed25519_pk_to_curve25519(curve25519_pk, ed25519_pk) != 0) {\n        printf(\"conversion failed\\n\");\n    }\n    crypto_sign_ed25519_sk_to_curve25519(curve25519_sk, ed25519_skpk);\n    sodium_bin2hex(curve25519_pk_hex, sizeof curve25519_pk_hex, curve25519_pk,\n                   sizeof curve25519_pk);\n    sodium_bin2hex(curve25519_sk_hex, sizeof curve25519_sk_hex, curve25519_sk,\n                   sizeof curve25519_sk);\n\n    printf(\"curve25519 pk: [%s]\\n\", curve25519_pk_hex);\n    printf(\"curve25519 sk: [%s]\\n\", curve25519_sk_hex);\n\n    for (i = 0U; i < 500U; i++) {\n        crypto_sign_ed25519_keypair(ed25519_pk, ed25519_skpk);\n        if (crypto_sign_ed25519_pk_to_curve25519(curve25519_pk, ed25519_pk) !=\n            0) {\n            printf(\"conversion failed\\n\");\n        }\n        crypto_sign_ed25519_sk_to_curve25519(curve25519_sk, ed25519_skpk);\n        crypto_scalarmult_curve25519_base(curve25519_pk2, curve25519_sk);\n        if (memcmp(curve25519_pk, curve25519_pk2, sizeof curve25519_pk) != 0) {\n            printf(\"conversion failed\\n\");\n        }\n    }\n\n    sodium_hex2bin(ed25519_pk, crypto_sign_ed25519_PUBLICKEYBYTES,\n                   \"0000000000000000000000000000000000000000000000000000000000000000\"\n                   \"0000000000000000000000000000000000000000000000000000000000000000\",\n                   64, NULL, NULL, NULL);\n    assert(crypto_sign_ed25519_pk_to_curve25519(curve25519_pk, ed25519_pk) == -1);\n    sodium_hex2bin(ed25519_pk, crypto_sign_ed25519_PUBLICKEYBYTES,\n                   \"0200000000000000000000000000000000000000000000000000000000000000\"\n                   \"0000000000000000000000000000000000000000000000000000000000000000\",\n                   64, NULL, NULL, NULL);\n    assert(crypto_sign_ed25519_pk_to_curve25519(curve25519_pk, ed25519_pk) == -1);\n    sodium_hex2bin(ed25519_pk, crypto_sign_ed25519_PUBLICKEYBYTES,\n                   \"0500000000000000000000000000000000000000000000000000000000000000\"\n                   \"0000000000000000000000000000000000000000000000000000000000000000\",\n                   64, NULL, NULL, NULL);\n    assert(crypto_sign_ed25519_pk_to_curve25519(curve25519_pk, ed25519_pk) == -1);\n\n    printf(\"ok\\n\");\n\n    return 0;\n}\n"
  },
  {
    "path": "test/default/ed25519_convert.exp",
    "content": "curve25519 pk: [f1814f0e8ff1043d8a44d25babff3cedcae6c22c3edaa48f857ae70de2baae50]\ncurve25519 sk: [8052030376d47112be7f73ed7a019293dd12ad910b654455798b4667d73de166]\nok\n"
  },
  {
    "path": "test/default/generichash.c",
    "content": "\n#define TEST_NAME \"generichash\"\n#include \"cmptest.h\"\n\n#define MAXLEN 64\n\nstatic struct {\n    const char *in_hex;\n    const char *key_hex;\n    const char *out_hex;\n} tests[] = {\n    {\n        \"\",\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\",\n        \"10ebb67700b1868efb4417987acf4690ae9d972fb7a590c2f02871799aaa4786b5e996e8f0f4eb981fc214b005f42d2ff4233499391653df7aefcbc13fc51568\"\n    },\n    {\n        \"00\",\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\",\n        \"961f6dd1e4dd30f63901690c512e78e4b45e4742ed197c3c5e45c549fd25f2e4187b0bc9fe30492b16b0d0bc4ef9b0f34c7003fac09a5ef1532e69430234cebd\"\n    },\n    {\n        \"0001\",\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\",\n        \"da2cfbe2d8409a0f38026113884f84b50156371ae304c4430173d08a99d9fb1b983164a3770706d537f49e0c916d9f32b95cc37a95b99d857436f0232c88a965\"\n    },\n    {\n        \"000102\",\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\",\n        \"33d0825dddf7ada99b0e7e307104ad07ca9cfd9692214f1561356315e784f3e5a17e364ae9dbb14cb2036df932b77f4b292761365fb328de7afdc6d8998f5fc1\"\n    },\n    {\n        \"00010203\",\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\",\n        \"beaa5a3d08f3807143cf621d95cd690514d0b49efff9c91d24b59241ec0eefa5f60196d407048bba8d2146828ebcb0488d8842fd56bb4f6df8e19c4b4daab8ac\"\n    },\n    {\n        \"0001020304\",\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\",\n        \"098084b51fd13deae5f4320de94a688ee07baea2800486689a8636117b46c1f4c1f6af7f74ae7c857600456a58a3af251dc4723a64cc7c0a5ab6d9cac91c20bb\"\n    },\n    {\n        \"000102030405\",\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\",\n        \"6044540d560853eb1c57df0077dd381094781cdb9073e5b1b3d3f6c7829e12066bbaca96d989a690de72ca3133a83652ba284a6d62942b271ffa2620c9e75b1f\"\n    },\n    {\n        \"00010203040506\",\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\",\n        \"7a8cfe9b90f75f7ecb3acc053aaed6193112b6f6a4aeeb3f65d3de541942deb9e2228152a3c4bbbe72fc3b12629528cfbb09fe630f0474339f54abf453e2ed52\"\n    },\n    {\n        \"0001020304050607\",\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\",\n        \"380beaf6ea7cc9365e270ef0e6f3a64fb902acae51dd5512f84259ad2c91f4bc4108db73192a5bbfb0cbcf71e46c3e21aee1c5e860dc96e8eb0b7b8426e6abe9\"\n    },\n    {\n        \"000102030405060708\",\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\",\n        \"60fe3c4535e1b59d9a61ea8500bfac41a69dffb1ceadd9aca323e9a625b64da5763bad7226da02b9c8c4f1a5de140ac5a6c1124e4f718ce0b28ea47393aa6637\"\n    },\n    {\n        \"00010203040506070809\",\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\",\n        \"4fe181f54ad63a2983feaaf77d1e7235c2beb17fa328b6d9505bda327df19fc37f02c4b6f0368ce23147313a8e5738b5fa2a95b29de1c7f8264eb77b69f585cd\"\n    },\n    {\n        \"000102030405060708090a\",\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\",\n        \"f228773ce3f3a42b5f144d63237a72d99693adb8837d0e112a8a0f8ffff2c362857ac49c11ec740d1500749dac9b1f4548108bf3155794dcc9e4082849e2b85b\"\n    },\n    {\n        \"000102030405060708090a0b\",\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\",\n        \"962452a8455cc56c8511317e3b1f3b2c37df75f588e94325fdd77070359cf63a9ae6e930936fdf8e1e08ffca440cfb72c28f06d89a2151d1c46cd5b268ef8563\"\n    },\n    {\n        \"000102030405060708090a0b0c\",\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\",\n        \"43d44bfa18768c59896bf7ed1765cb2d14af8c260266039099b25a603e4ddc5039d6ef3a91847d1088d401c0c7e847781a8a590d33a3c6cb4df0fab1c2f22355\"\n    },\n    {\n        \"000102030405060708090a0b0c0d\",\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\",\n        \"dcffa9d58c2a4ca2cdbb0c7aa4c4c1d45165190089f4e983bb1c2cab4aaeff1fa2b5ee516fecd780540240bf37e56c8bcca7fab980e1e61c9400d8a9a5b14ac6\"\n    },\n    {\n        \"000102030405060708090a0b0c0d0e\",\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\",\n        \"6fbf31b45ab0c0b8dad1c0f5f4061379912dde5aa922099a030b725c73346c524291adef89d2f6fd8dfcda6d07dad811a9314536c2915ed45da34947e83de34e\"\n    },\n    {\n        \"000102030405060708090a0b0c0d0e0f\",\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\",\n        \"a0c65bddde8adef57282b04b11e7bc8aab105b99231b750c021f4a735cb1bcfab87553bba3abb0c3e64a0b6955285185a0bd35fb8cfde557329bebb1f629ee93\"\n    },\n    {\n        \"000102030405060708090a0b0c0d0e0f10\",\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\",\n        \"f99d815550558e81eca2f96718aed10d86f3f1cfb675cce06b0eff02f617c5a42c5aa760270f2679da2677c5aeb94f1142277f21c7f79f3c4f0cce4ed8ee62b1\"\n    },\n    {\n        \"000102030405060708090a0b0c0d0e0f1011\",\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\",\n        \"95391da8fc7b917a2044b3d6f5374e1ca072b41454d572c7356c05fd4bc1e0f40b8bb8b4a9f6bce9be2c4623c399b0dca0dab05cb7281b71a21b0ebcd9e55670\"\n    },\n    {\n        \"000102030405060708090a0b0c0d0e0f101112\",\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\",\n        \"04b9cd3d20d221c09ac86913d3dc63041989a9a1e694f1e639a3ba7e451840f750c2fc191d56ad61f2e7936bc0ac8e094b60caeed878c18799045402d61ceaf9\"\n    },\n    {\n        \"000102030405060708090a0b0c0d0e0f10111213\",\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\",\n        \"ec0e0ef707e4ed6c0c66f9e089e4954b058030d2dd86398fe84059631f9ee591d9d77375355149178c0cf8f8e7c49ed2a5e4f95488a2247067c208510fadc44c\"\n    },\n    {\n        \"000102030405060708090a0b0c0d0e0f1011121314\",\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\",\n        \"9a37cce273b79c09913677510eaf7688e89b3314d3532fd2764c39de022a2945b5710d13517af8ddc0316624e73bec1ce67df15228302036f330ab0cb4d218dd\"\n    },\n    {\n        \"000102030405060708090a0b0c0d0e0f101112131415\",\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\",\n        \"4cf9bb8fb3d4de8b38b2f262d3c40f46dfe747e8fc0a414c193d9fcf753106ce47a18f172f12e8a2f1c26726545358e5ee28c9e2213a8787aafbc516d2343152\"\n    },\n    {\n        \"000102030405060708090a0b0c0d0e0f10111213141516\",\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\",\n        \"64e0c63af9c808fd893137129867fd91939d53f2af04be4fa268006100069b2d69daa5c5d8ed7fddcb2a70eeecdf2b105dd46a1e3b7311728f639ab489326bc9\"\n    },\n    {\n        \"000102030405060708090a0b0c0d0e0f1011121314151617\",\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\",\n        \"5e9c93158d659b2def06b0c3c7565045542662d6eee8a96a89b78ade09fe8b3dcc096d4fe48815d88d8f82620156602af541955e1f6ca30dce14e254c326b88f\"\n    },\n    {\n        \"000102030405060708090a0b0c0d0e0f101112131415161718\",\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\",\n        \"7775dff889458dd11aef417276853e21335eb88e4dec9cfb4e9edb49820088551a2ca60339f12066101169f0dfe84b098fddb148d9da6b3d613df263889ad64b\"\n    },\n    {\n        \"000102030405060708090a0b0c0d0e0f10111213141516171819\",\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\",\n        \"f0d2805afbb91f743951351a6d024f9353a23c7ce1fc2b051b3a8b968c233f46f50f806ecb1568ffaa0b60661e334b21dde04f8fa155ac740eeb42e20b60d764\"\n    },\n    {\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a\",\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\",\n        \"86a2af316e7d7754201b942e275364ac12ea8962ab5bd8d7fb276dc5fbffc8f9a28cae4e4867df6780d9b72524160927c855da5b6078e0b554aa91e31cb9ca1d\"\n    },\n    {\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b\",\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\",\n        \"10bdf0caa0802705e706369baf8a3f79d72c0a03a80675a7bbb00be3a45e516424d1ee88efb56f6d5777545ae6e27765c3a8f5e493fc308915638933a1dfee55\"\n    },\n    {\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c\",\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\",\n        \"b01781092b1748459e2e4ec178696627bf4ebafebba774ecf018b79a68aeb84917bf0b84bb79d17b743151144cd66b7b33a4b9e52c76c4e112050ff5385b7f0b\"\n    },\n    {\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d\",\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\",\n        \"c6dbc61dec6eaeac81e3d5f755203c8e220551534a0b2fd105a91889945a638550204f44093dd998c076205dffad703a0e5cd3c7f438a7e634cd59fededb539e\"\n    },\n    {\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e\",\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\",\n        \"eba51acffb4cea31db4b8d87e9bf7dd48fe97b0253ae67aa580f9ac4a9d941f2bea518ee286818cc9f633f2a3b9fb68e594b48cdd6d515bf1d52ba6c85a203a7\"\n    },\n    {\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\",\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\",\n        \"86221f3ada52037b72224f105d7999231c5e5534d03da9d9c0a12acb68460cd375daf8e24386286f9668f72326dbf99ba094392437d398e95bb8161d717f8991\"\n    },\n    {\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f20\",\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\",\n        \"5595e05c13a7ec4dc8f41fb70cb50a71bce17c024ff6de7af618d0cc4e9c32d9570d6d3ea45b86525491030c0d8f2b1836d5778c1ce735c17707df364d054347\"\n    },\n    {\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f2021\",\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\",\n        \"ce0f4f6aca89590a37fe034dd74dd5fa65eb1cbd0a41508aaddc09351a3cea6d18cb2189c54b700c009f4cbf0521c7ea01be61c5ae09cb54f27bc1b44d658c82\"\n    },\n    {\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122\",\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\",\n        \"7ee80b06a215a3bca970c77cda8761822bc103d44fa4b33f4d07dcb997e36d55298bceae12241b3fa07fa63be5576068da387b8d5859aeab701369848b176d42\"\n    },\n    {\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f20212223\",\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\",\n        \"940a84b6a84d109aab208c024c6ce9647676ba0aaa11f86dbb7018f9fd2220a6d901a9027f9abcf935372727cbf09ebd61a2a2eeb87653e8ecad1bab85dc8327\"\n    },\n    {\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f2021222324\",\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\",\n        \"2020b78264a82d9f4151141adba8d44bf20c5ec062eee9b595a11f9e84901bf148f298e0c9f8777dcdbc7cc4670aac356cc2ad8ccb1629f16f6a76bcefbee760\"\n    },\n    {\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425\",\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\",\n        \"d1b897b0e075ba68ab572adf9d9c436663e43eb3d8e62d92fc49c9be214e6f27873fe215a65170e6bea902408a25b49506f47babd07cecf7113ec10c5dd31252\"\n    },\n    {\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f20212223242526\",\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\",\n        \"b14d0c62abfa469a357177e594c10c194243ed2025ab8aa5ad2fa41ad318e0ff48cd5e60bec07b13634a711d2326e488a985f31e31153399e73088efc86a5c55\"\n    },\n    {\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f2021222324252627\",\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\",\n        \"4169c5cc808d2697dc2a82430dc23e3cd356dc70a94566810502b8d655b39abf9e7f902fe717e0389219859e1945df1af6ada42e4ccda55a197b7100a30c30a1\"\n    },\n    {\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728\",\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\",\n        \"258a4edb113d66c839c8b1c91f15f35ade609f11cd7f8681a4045b9fef7b0b24c82cda06a5f2067b368825e3914e53d6948ede92efd6e8387fa2e537239b5bee\"\n    },\n    {\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f20212223242526272829\",\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\",\n        \"79d2d8696d30f30fb34657761171a11e6c3f1e64cbe7bebee159cb95bfaf812b4f411e2f26d9c421dc2c284a3342d823ec293849e42d1e46b0a4ac1e3c86abaa\"\n    },\n    {\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a\",\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\",\n        \"8b9436010dc5dee992ae38aea97f2cd63b946d94fedd2ec9671dcde3bd4ce9564d555c66c15bb2b900df72edb6b891ebcadfeff63c9ea4036a998be7973981e7\"\n    },\n    {\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b\",\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\",\n        \"c8f68e696ed28242bf997f5b3b34959508e42d613810f1e2a435c96ed2ff560c7022f361a9234b9837feee90bf47922ee0fd5f8ddf823718d86d1e16c6090071\"\n    },\n    {\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c\",\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\",\n        \"b02d3eee4860d5868b2c39ce39bfe81011290564dd678c85e8783f29302dfc1399ba95b6b53cd9ebbf400cca1db0ab67e19a325f2d115812d25d00978ad1bca4\"\n    },\n    {\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d\",\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\",\n        \"7693ea73af3ac4dad21ca0d8da85b3118a7d1c6024cfaf557699868217bc0c2f44a199bc6c0edd519798ba05bd5b1b4484346a47c2cadf6bf30b785cc88b2baf\"\n    },\n    {\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e\",\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\",\n        \"a0e5c1c0031c02e48b7f09a5e896ee9aef2f17fc9e18e997d7f6cac7ae316422c2b1e77984e5f3a73cb45deed5d3f84600105e6ee38f2d090c7d0442ea34c46d\"\n    },\n    {\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f\",\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\",\n        \"41daa6adcfdb69f1440c37b596440165c15ada596813e2e22f060fcd551f24dee8e04ba6890387886ceec4a7a0d7fc6b44506392ec3822c0d8c1acfc7d5aebe8\"\n    },\n    {\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f30\",\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\",\n        \"14d4d40d5984d84c5cf7523b7798b254e275a3a8cc0a1bd06ebc0bee726856acc3cbf516ff667cda2058ad5c3412254460a82c92187041363cc77a4dc215e487\"\n    },\n    {\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f3031\",\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\",\n        \"d0e7a1e2b9a447fee83e2277e9ff8010c2f375ae12fa7aaa8ca5a6317868a26a367a0b69fbc1cf32a55d34eb370663016f3d2110230eba754028a56f54acf57c\"\n    },\n    {\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132\",\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\",\n        \"e771aa8db5a3e043e8178f39a0857ba04a3f18e4aa05743cf8d222b0b095825350ba422f63382a23d92e4149074e816a36c1cd28284d146267940b31f8818ea2\"\n    },\n    {\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f30313233\",\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\",\n        \"feb4fd6f9e87a56bef398b3284d2bda5b5b0e166583a66b61e538457ff0584872c21a32962b9928ffab58de4af2edd4e15d8b35570523207ff4e2a5aa7754caa\"\n    },\n    {\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f3031323334\",\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\",\n        \"462f17bf005fb1c1b9e671779f665209ec2873e3e411f98dabf240a1d5ec3f95ce6796b6fc23fe171903b502023467dec7273ff74879b92967a2a43a5a183d33\"\n    },\n    {\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435\",\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\",\n        \"d3338193b64553dbd38d144bea71c5915bb110e2d88180dbc5db364fd6171df317fc7268831b5aef75e4342b2fad8797ba39eddcef80e6ec08159350b1ad696d\"\n    },\n    {\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f30313233343536\",\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\",\n        \"e1590d585a3d39f7cb599abd479070966409a6846d4377acf4471d065d5db94129cc9be92573b05ed226be1e9b7cb0cabe87918589f80dadd4ef5ef25a93d28e\"\n    },\n    {\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f3031323334353637\",\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\",\n        \"f8f3726ac5a26cc80132493a6fedcb0e60760c09cfc84cad178175986819665e76842d7b9fedf76dddebf5d3f56faaad4477587af21606d396ae570d8e719af2\"\n    },\n    {\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738\",\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\",\n        \"30186055c07949948183c850e9a756cc09937e247d9d928e869e20bafc3cd9721719d34e04a0899b92c736084550186886efba2e790d8be6ebf040b209c439a4\"\n    },\n    {\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f30313233343536373839\",\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\",\n        \"f3c4276cb863637712c241c444c5cc1e3554e0fddb174d035819dd83eb700b4ce88df3ab3841ba02085e1a99b4e17310c5341075c0458ba376c95a6818fbb3e2\"\n    },\n    {\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a\",\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\",\n        \"0aa007c4dd9d5832393040a1583c930bca7dc5e77ea53add7e2b3f7c8e231368043520d4a3ef53c969b6bbfd025946f632bd7f765d53c21003b8f983f75e2a6a\"\n    },\n    {\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b\",\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\",\n        \"08e9464720533b23a04ec24f7ae8c103145f765387d738777d3d343477fd1c58db052142cab754ea674378e18766c53542f71970171cc4f81694246b717d7564\"\n    },\n    {\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c\",\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\",\n        \"d37ff7ad297993e7ec21e0f1b4b5ae719cdc83c5db687527f27516cbffa822888a6810ee5c1ca7bfe3321119be1ab7bfa0a502671c8329494df7ad6f522d440f\"\n    },\n    {\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d\",\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\",\n        \"dd9042f6e464dcf86b1262f6accfafbd8cfd902ed3ed89abf78ffa482dbdeeb6969842394c9a1168ae3d481a017842f660002d42447c6b22f7b72f21aae021c9\"\n    },\n    {\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e\",\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\",\n        \"bd965bf31e87d70327536f2a341cebc4768eca275fa05ef98f7f1b71a0351298de006fba73fe6733ed01d75801b4a928e54231b38e38c562b2e33ea1284992fa\"\n    },\n    {\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\",\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\",\n        \"65676d800617972fbd87e4b9514e1c67402b7a331096d3bfac22f1abb95374abc942f16e9ab0ead33b87c91968a6e509e119ff07787b3ef483e1dcdccf6e3022\"\n    },\n    {\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f40\",\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\",\n        \"939fa189699c5d2c81ddd1ffc1fa207c970b6a3685bb29ce1d3e99d42f2f7442da53e95a72907314f4588399a3ff5b0a92beb3f6be2694f9f86ecf2952d5b41c\"\n    },\n    {\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f4041\",\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\",\n        \"c516541701863f91005f314108ceece3c643e04fc8c42fd2ff556220e616aaa6a48aeb97a84bad74782e8dff96a1a2fa949339d722edcaa32b57067041df88cc\"\n    },\n    {\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142\",\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\",\n        \"987fd6e0d6857c553eaebb3d34970a2c2f6e89a3548f492521722b80a1c21a153892346d2cba6444212d56da9a26e324dccbc0dcde85d4d2ee4399eec5a64e8f\"\n    },\n    {\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f40414243\",\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\",\n        \"ae56deb1c2328d9c4017706bce6e99d41349053ba9d336d677c4c27d9fd50ae6aee17e853154e1f4fe7672346da2eaa31eea53fcf24a22804f11d03da6abfc2b\"\n    },\n    {\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f4041424344\",\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\",\n        \"49d6a608c9bde4491870498572ac31aac3fa40938b38a7818f72383eb040ad39532bc06571e13d767e6945ab77c0bdc3b0284253343f9f6c1244ebf2ff0df866\"\n    },\n    {\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445\",\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\",\n        \"da582ad8c5370b4469af862aa6467a2293b2b28bd80ae0e91f425ad3d47249fdf98825cc86f14028c3308c9804c78bfeeeee461444ce243687e1a50522456a1d\"\n    },\n    {\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f40414243444546\",\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\",\n        \"d5266aa3331194aef852eed86d7b5b2633a0af1c735906f2e13279f14931a9fc3b0eac5ce9245273bd1aa92905abe16278ef7efd47694789a7283b77da3c70f8\"\n    },\n    {\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f4041424344454647\",\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\",\n        \"2962734c28252186a9a1111c732ad4de4506d4b4480916303eb7991d659ccda07a9911914bc75c418ab7a4541757ad054796e26797feaf36e9f6ad43f14b35a4\"\n    },\n    {\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748\",\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\",\n        \"e8b79ec5d06e111bdfafd71e9f5760f00ac8ac5d8bf768f9ff6f08b8f026096b1cc3a4c973333019f1e3553e77da3f98cb9f542e0a90e5f8a940cc58e59844b3\"\n    },\n    {\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f40414243444546474849\",\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\",\n        \"dfb320c44f9d41d1efdcc015f08dd5539e526e39c87d509ae6812a969e5431bf4fa7d91ffd03b981e0d544cf72d7b1c0374f8801482e6dea2ef903877eba675e\"\n    },\n    {\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a\",\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\",\n        \"d88675118fdb55a5fb365ac2af1d217bf526ce1ee9c94b2f0090b2c58a06ca58187d7fe57c7bed9d26fca067b4110eefcd9a0a345de872abe20de368001b0745\"\n    },\n    {\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b\",\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\",\n        \"b893f2fc41f7b0dd6e2f6aa2e0370c0cff7df09e3acfcc0e920b6e6fad0ef747c40668417d342b80d2351e8c175f20897a062e9765e6c67b539b6ba8b9170545\"\n    },\n    {\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c\",\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\",\n        \"6c67ec5697accd235c59b486d7b70baeedcbd4aa64ebd4eef3c7eac189561a726250aec4d48cadcafbbe2ce3c16ce2d691a8cce06e8879556d4483ed7165c063\"\n    },\n    {\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d\",\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\",\n        \"f1aa2b044f8f0c638a3f362e677b5d891d6fd2ab0765f6ee1e4987de057ead357883d9b405b9d609eea1b869d97fb16d9b51017c553f3b93c0a1e0f1296fedcd\"\n    },\n    {\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e\",\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\",\n        \"cbaa259572d4aebfc1917acddc582b9f8dfaa928a198ca7acd0f2aa76a134a90252e6298a65b08186a350d5b7626699f8cb721a3ea5921b753ae3a2dce24ba3a\"\n    },\n    {\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f\",\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\",\n        \"fa1549c9796cd4d303dcf452c1fbd5744fd9b9b47003d920b92de34839d07ef2a29ded68f6fc9e6c45e071a2e48bd50c5084e96b657dd0404045a1ddefe282ed\"\n    },\n    {\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f50\",\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\",\n        \"5cf2ac897ab444dcb5c8d87c495dbdb34e1838b6b629427caa51702ad0f9688525f13bec503a3c3a2c80a65e0b5715e8afab00ffa56ec455a49a1ad30aa24fcd\"\n    },\n    {\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f5051\",\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\",\n        \"9aaf80207bace17bb7ab145757d5696bde32406ef22b44292ef65d4519c3bb2ad41a59b62cc3e94b6fa96d32a7faadae28af7d35097219aa3fd8cda31e40c275\"\n    },\n    {\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152\",\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\",\n        \"af88b163402c86745cb650c2988fb95211b94b03ef290eed9662034241fd51cf398f8073e369354c43eae1052f9b63b08191caa138aa54fea889cc7024236897\"\n    },\n    {\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f50515253\",\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\",\n        \"48fa7d64e1ceee27b9864db5ada4b53d00c9bc7626555813d3cd6730ab3cc06ff342d727905e33171bde6e8476e77fb1720861e94b73a2c538d254746285f430\"\n    },\n    {\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f5051525354\",\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\",\n        \"0e6fd97a85e904f87bfe85bbeb34f69e1f18105cf4ed4f87aec36c6e8b5f68bd2a6f3dc8a9ecb2b61db4eedb6b2ea10bf9cb0251fb0f8b344abf7f366b6de5ab\"\n    },\n    {\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455\",\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\",\n        \"06622da5787176287fdc8fed440bad187d830099c94e6d04c8e9c954cda70c8bb9e1fc4a6d0baa831b9b78ef6648681a4867a11da93ee36e5e6a37d87fc63f6f\"\n    },\n    {\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f50515253545556\",\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\",\n        \"1da6772b58fabf9c61f68d412c82f182c0236d7d575ef0b58dd22458d643cd1dfc93b03871c316d8430d312995d4197f0874c99172ba004a01ee295abac24e46\"\n    },\n    {\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f5051525354555657\",\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\",\n        \"3cd2d9320b7b1d5fb9aab951a76023fa667be14a9124e394513918a3f44096ae4904ba0ffc150b63bc7ab1eeb9a6e257e5c8f000a70394a5afd842715de15f29\"\n    },\n    {\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758\",\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\",\n        \"04cdc14f7434e0b4be70cb41db4c779a88eaef6accebcb41f2d42fffe7f32a8e281b5c103a27021d0d08362250753cdf70292195a53a48728ceb5844c2d98bab\"\n    },\n    {\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f50515253545556575859\",\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\",\n        \"9071b7a8a075d0095b8fb3ae5113785735ab98e2b52faf91d5b89e44aac5b5d4ebbf91223b0ff4c71905da55342e64655d6ef8c89a4768c3f93a6dc0366b5bc8\"\n    },\n    {\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a\",\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\",\n        \"ebb30240dd96c7bc8d0abe49aa4edcbb4afdc51ff9aaf720d3f9e7fbb0f9c6d6571350501769fc4ebd0b2141247ff400d4fd4be414edf37757bb90a32ac5c65a\"\n    },\n    {\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b\",\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\",\n        \"8532c58bf3c8015d9d1cbe00eef1f5082f8f3632fbe9f1ed4f9dfb1fa79e8283066d77c44c4af943d76b300364aecbd0648c8a8939bd204123f4b56260422dec\"\n    },\n    {\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c\",\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\",\n        \"fe9846d64f7c7708696f840e2d76cb4408b6595c2f81ec6a28a7f2f20cb88cfe6ac0b9e9b8244f08bd7095c350c1d0842f64fb01bb7f532dfcd47371b0aeeb79\"\n    },\n    {\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d\",\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\",\n        \"28f17ea6fb6c42092dc264257e29746321fb5bdaea9873c2a7fa9d8f53818e899e161bc77dfe8090afd82bf2266c5c1bc930a8d1547624439e662ef695f26f24\"\n    },\n    {\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e\",\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\",\n        \"ec6b7d7f030d4850acae3cb615c21dd25206d63e84d1db8d957370737ba0e98467ea0ce274c66199901eaec18a08525715f53bfdb0aacb613d342ebdceeddc3b\"\n    },\n    {\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f\",\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\",\n        \"b403d3691c03b0d3418df327d5860d34bbfcc4519bfbce36bf33b208385fadb9186bc78a76c489d89fd57e7dc75412d23bcd1dae8470ce9274754bb8585b13c5\"\n    },\n    {\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f60\",\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\",\n        \"31fc79738b8772b3f55cd8178813b3b52d0db5a419d30ba9495c4b9da0219fac6df8e7c23a811551a62b827f256ecdb8124ac8a6792ccfecc3b3012722e94463\"\n    },\n    {\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f6061\",\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\",\n        \"bb2039ec287091bcc9642fc90049e73732e02e577e2862b32216ae9bedcd730c4c284ef3968c368b7d37584f97bd4b4dc6ef6127acfe2e6ae2509124e66c8af4\"\n    },\n    {\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162\",\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\",\n        \"f53d68d13f45edfcb9bd415e2831e938350d5380d3432278fc1c0c381fcb7c65c82dafe051d8c8b0d44e0974a0e59ec7bf7ed0459f86e96f329fc79752510fd3\"\n    },\n    {\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f60616263\",\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\",\n        \"8d568c7984f0ecdf7640fbc483b5d8c9f86634f6f43291841b309a350ab9c1137d24066b09da9944bac54d5bb6580d836047aac74ab724b887ebf93d4b32eca9\"\n    },\n    {\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f6061626364\",\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\",\n        \"c0b65ce5a96ff774c456cac3b5f2c4cd359b4ff53ef93a3da0778be4900d1e8da1601e769e8f1b02d2a2f8c5b9fa10b44f1c186985468feeb008730283a6657d\"\n    },\n    {\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465\",\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\",\n        \"4900bba6f5fb103ece8ec96ada13a5c3c85488e05551da6b6b33d988e611ec0fe2e3c2aa48ea6ae8986a3a231b223c5d27cec2eadde91ce07981ee652862d1e4\"\n    },\n    {\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f60616263646566\",\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\",\n        \"c7f5c37c7285f927f76443414d4357ff789647d7a005a5a787e03c346b57f49f21b64fa9cf4b7e45573e23049017567121a9c3d4b2b73ec5e9413577525db45a\"\n    },\n    {\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f6061626364656667\",\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\",\n        \"ec7096330736fdb2d64b5653e7475da746c23a4613a82687a28062d3236364284ac01720ffb406cfe265c0df626a188c9e5963ace5d3d5bb363e32c38c2190a6\"\n    },\n    {\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768\",\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\",\n        \"82e744c75f4649ec52b80771a77d475a3bc091989556960e276a5f9ead92a03f718742cdcfeaee5cb85c44af198adc43a4a428f5f0c2ddb0be36059f06d7df73\"\n    },\n    {\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f60616263646566676869\",\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\",\n        \"2834b7a7170f1f5b68559ab78c1050ec21c919740b784a9072f6e5d69f828d70c919c5039fb148e39e2c8a52118378b064ca8d5001cd10a5478387b966715ed6\"\n    },\n    {\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a\",\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\",\n        \"16b4ada883f72f853bb7ef253efcab0c3e2161687ad61543a0d2824f91c1f81347d86be709b16996e17f2dd486927b0288ad38d13063c4a9672c39397d3789b6\"\n    },\n    {\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b\",\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\",\n        \"78d048f3a69d8b54ae0ed63a573ae350d89f7c6cf1f3688930de899afa037697629b314e5cd303aa62feea72a25bf42b304b6c6bcb27fae21c16d925e1fbdac3\"\n    },\n    {\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c\",\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\",\n        \"0f746a48749287ada77a82961f05a4da4abdb7d77b1220f836d09ec814359c0ec0239b8c7b9ff9e02f569d1b301ef67c4612d1de4f730f81c12c40cc063c5caa\"\n    },\n    {\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d\",\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\",\n        \"f0fc859d3bd195fbdc2d591e4cdac15179ec0f1dc821c11df1f0c1d26e6260aaa65b79fafacafd7d3ad61e600f250905f5878c87452897647a35b995bcadc3a3\"\n    },\n    {\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e\",\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\",\n        \"2620f687e8625f6a412460b42e2cef67634208ce10a0cbd4dff7044a41b7880077e9f8dc3b8d1216d3376a21e015b58fb279b521d83f9388c7382c8505590b9b\"\n    },\n    {\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f\",\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\",\n        \"227e3aed8d2cb10b918fcb04f9de3e6d0a57e08476d93759cd7b2ed54a1cbf0239c528fb04bbf288253e601d3bc38b21794afef90b17094a182cac557745e75f\"\n    },\n    {\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f70\",\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\",\n        \"1a929901b09c25f27d6b35be7b2f1c4745131fdebca7f3e2451926720434e0db6e74fd693ad29b777dc3355c592a361c4873b01133a57c2e3b7075cbdb86f4fc\"\n    },\n    {\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f7071\",\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\",\n        \"5fd7968bc2fe34f220b5e3dc5af9571742d73b7d60819f2888b629072b96a9d8ab2d91b82d0a9aaba61bbd39958132fcc4257023d1eca591b3054e2dc81c8200\"\n    },\n    {\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172\",\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\",\n        \"dfcce8cf32870cc6a503eadafc87fd6f78918b9b4d0737db6810be996b5497e7e5cc80e312f61e71ff3e9624436073156403f735f56b0b01845c18f6caf772e6\"\n    },\n    {\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f70717273\",\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\",\n        \"02f7ef3a9ce0fff960f67032b296efca3061f4934d690749f2d01c35c81c14f39a67fa350bc8a0359bf1724bffc3bca6d7c7bba4791fd522a3ad353c02ec5aa8\"\n    },\n    {\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f7071727374\",\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\",\n        \"64be5c6aba65d594844ae78bb022e5bebe127fd6b6ffa5a13703855ab63b624dcd1a363f99203f632ec386f3ea767fc992e8ed9686586aa27555a8599d5b808f\"\n    },\n    {\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475\",\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\",\n        \"f78585505c4eaa54a8b5be70a61e735e0ff97af944ddb3001e35d86c4e2199d976104b6ae31750a36a726ed285064f5981b503889fef822fcdc2898dddb7889a\"\n    },\n    {\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f70717273747576\",\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\",\n        \"e4b5566033869572edfd87479a5bb73c80e8759b91232879d96b1dda36c012076ee5a2ed7ae2de63ef8406a06aea82c188031b560beafb583fb3de9e57952a7e\"\n    },\n    {\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f7071727374757677\",\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\",\n        \"e1b3e7ed867f6c9484a2a97f7715f25e25294e992e41f6a7c161ffc2adc6daaeb7113102d5e6090287fe6ad94ce5d6b739c6ca240b05c76fb73f25dd024bf935\"\n    },\n    {\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778\",\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\",\n        \"85fd085fdc12a080983df07bd7012b0d402a0f4043fcb2775adf0bad174f9b08d1676e476985785c0a5dcc41dbff6d95ef4d66a3fbdc4a74b82ba52da0512b74\"\n    },\n    {\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f70717273747576777879\",\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\",\n        \"aed8fa764b0fbff821e05233d2f7b0900ec44d826f95e93c343c1bc3ba5a24374b1d616e7e7aba453a0ada5e4fab5382409e0d42ce9c2bc7fb39a99c340c20f0\"\n    },\n    {\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a\",\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\",\n        \"7ba3b2e297233522eeb343bd3ebcfd835a04007735e87f0ca300cbee6d416565162171581e4020ff4cf176450f1291ea2285cb9ebffe4c56660627685145051c\"\n    },\n    {\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b\",\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\",\n        \"de748bcf89ec88084721e16b85f30adb1a6134d664b5843569babc5bbd1a15ca9b61803c901a4fef32965a1749c9f3a4e243e173939dc5a8dc495c671ab52145\"\n    },\n    {\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c\",\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\",\n        \"aaf4d2bdf200a919706d9842dce16c98140d34bc433df320aba9bd429e549aa7a3397652a4d768277786cf993cde2338673ed2e6b66c961fefb82cd20c93338f\"\n    },\n    {\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d\",\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\",\n        \"c408218968b788bf864f0997e6bc4c3dba68b276e2125a4843296052ff93bf5767b8cdce7131f0876430c1165fec6c4f47adaa4fd8bcfacef463b5d3d0fa61a0\"\n    },\n    {\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e\",\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\",\n        \"76d2d819c92bce55fa8e092ab1bf9b9eab237a25267986cacf2b8ee14d214d730dc9a5aa2d7b596e86a1fd8fa0804c77402d2fcd45083688b218b1cdfa0dcbcb\"\n    },\n    {\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f\",\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\",\n        \"72065ee4dd91c2d8509fa1fc28a37c7fc9fa7d5b3f8ad3d0d7a25626b57b1b44788d4caf806290425f9890a3a2a35a905ab4b37acfd0da6e4517b2525c9651e4\"\n    },\n    {\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f80\",\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\",\n        \"64475dfe7600d7171bea0b394e27c9b00d8e74dd1e416a79473682ad3dfdbb706631558055cfc8a40e07bd015a4540dcdea15883cbbf31412df1de1cd4152b91\"\n    },\n    {\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f8081\",\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\",\n        \"12cd1674a4488a5d7c2b3160d2e2c4b58371bedad793418d6f19c6ee385d70b3e06739369d4df910edb0b0a54cbff43d54544cd37ab3a06cfa0a3ddac8b66c89\"\n    },\n    {\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182\",\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\",\n        \"60756966479dedc6dd4bcff8ea7d1d4ce4d4af2e7b097e32e3763518441147cc12b3c0ee6d2ecabf1198cec92e86a3616fba4f4e872f5825330adbb4c1dee444\"\n    },\n    {\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f80818283\",\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\",\n        \"a7803bcb71bc1d0f4383dde1e0612e04f872b715ad30815c2249cf34abb8b024915cb2fc9f4e7cc4c8cfd45be2d5a91eab0941c7d270e2da4ca4a9f7ac68663a\"\n    },\n    {\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f8081828384\",\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\",\n        \"b84ef6a7229a34a750d9a98ee2529871816b87fbe3bc45b45fa5ae82d5141540211165c3c5d7a7476ba5a4aa06d66476f0d9dc49a3f1ee72c3acabd498967414\"\n    },\n    {\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485\",\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\",\n        \"fae4b6d8efc3f8c8e64d001dabec3a21f544e82714745251b2b4b393f2f43e0da3d403c64db95a2cb6e23ebb7b9e94cdd5ddac54f07c4a61bd3cb10aa6f93b49\"\n    },\n    {\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f80818283848586\",\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\",\n        \"34f7286605a122369540141ded79b8957255da2d4155abbf5a8dbb89c8eb7ede8eeef1daa46dc29d751d045dc3b1d658bb64b80ff8589eddb3824b13da235a6b\"\n    },\n    {\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f8081828384858687\",\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\",\n        \"3b3b48434be27b9eababba43bf6b35f14b30f6a88dc2e750c358470d6b3aa3c18e47db4017fa55106d8252f016371a00f5f8b070b74ba5f23cffc5511c9f09f0\"\n    },\n    {\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788\",\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\",\n        \"ba289ebd6562c48c3e10a8ad6ce02e73433d1e93d7c9279d4d60a7e879ee11f441a000f48ed9f7c4ed87a45136d7dccdca482109c78a51062b3ba4044ada2469\"\n    },\n    {\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f80818283848586878889\",\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\",\n        \"022939e2386c5a37049856c850a2bb10a13dfea4212b4c732a8840a9ffa5faf54875c5448816b2785a007da8a8d2bc7d71a54e4e6571f10b600cbdb25d13ede3\"\n    },\n    {\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a\",\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\",\n        \"e6fec19d89ce8717b1a087024670fe026f6c7cbda11caef959bb2d351bf856f8055d1c0ebdaaa9d1b17886fc2c562b5e99642fc064710c0d3488a02b5ed7f6fd\"\n    },\n    {\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b\",\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\",\n        \"94c96f02a8f576aca32ba61c2b206f907285d9299b83ac175c209a8d43d53bfe683dd1d83e7549cb906c28f59ab7c46f8751366a28c39dd5fe2693c9019666c8\"\n    },\n    {\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c\",\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\",\n        \"31a0cd215ebd2cb61de5b9edc91e6195e31c59a5648d5c9f737e125b2605708f2e325ab3381c8dce1a3e958886f1ecdc60318f882cfe20a24191352e617b0f21\"\n    },\n    {\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d\",\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\",\n        \"91ab504a522dce78779f4c6c6ba2e6b6db5565c76d3e7e7c920caf7f757ef9db7c8fcf10e57f03379ea9bf75eb59895d96e149800b6aae01db778bb90afbc989\"\n    },\n    {\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e\",\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\",\n        \"d85cabc6bd5b1a01a5afd8c6734740da9fd1c1acc6db29bfc8a2e5b668b028b6b3154bfb8703fa3180251d589ad38040ceb707c4bad1b5343cb426b61eaa49c1\"\n    },\n    {\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f\",\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\",\n        \"d62efbec2ca9c1f8bd66ce8b3f6a898cb3f7566ba6568c618ad1feb2b65b76c3ce1dd20f7395372faf28427f61c9278049cf0140df434f5633048c86b81e0399\"\n    },\n    {\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f90\",\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\",\n        \"7c8fdc6175439e2c3db15bafa7fb06143a6a23bc90f449e79deef73c3d492a671715c193b6fea9f036050b946069856b897e08c00768f5ee5ddcf70b7cd6d0e0\"\n    },\n    {\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f9091\",\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\",\n        \"58602ee7468e6bc9df21bd51b23c005f72d6cb013f0a1b48cbec5eca299299f97f09f54a9a01483eaeb315a6478bad37ba47ca1347c7c8fc9e6695592c91d723\"\n    },\n    {\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f909192\",\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\",\n        \"27f5b79ed256b050993d793496edf4807c1d85a7b0a67c9c4fa99860750b0ae66989670a8ffd7856d7ce411599e58c4d77b232a62bef64d15275be46a68235ff\"\n    },\n    {\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f90919293\",\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\",\n        \"3957a976b9f1887bf004a8dca942c92d2b37ea52600f25e0c9bc5707d0279c00c6e85a839b0d2d8eb59c51d94788ebe62474a791cadf52cccf20f5070b6573fc\"\n    },\n    {\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f9091929394\",\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\",\n        \"eaa2376d55380bf772ecca9cb0aa4668c95c707162fa86d518c8ce0ca9bf7362b9f2a0adc3ff59922df921b94567e81e452f6c1a07fc817cebe99604b3505d38\"\n    },\n    {\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f909192939495\",\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\",\n        \"c1e2c78b6b2734e2480ec550434cb5d613111adcc21d475545c3b1b7e6ff12444476e5c055132e2229dc0f807044bb919b1a5662dd38a9ee65e243a3911aed1a\"\n    },\n    {\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f90919293949596\",\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\",\n        \"8ab48713389dd0fcf9f965d3ce66b1e559a1f8c58741d67683cd971354f452e62d0207a65e436c5d5d8f8ee71c6abfe50e669004c302b31a7ea8311d4a916051\"\n    },\n    {\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f9091929394959697\",\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\",\n        \"24ce0addaa4c65038bd1b1c0f1452a0b128777aabc94a29df2fd6c7e2f85f8ab9ac7eff516b0e0a825c84a24cfe492eaad0a6308e46dd42fe8333ab971bb30ca\"\n    },\n    {\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f909192939495969798\",\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\",\n        \"5154f929ee03045b6b0c0004fa778edee1d139893267cc84825ad7b36c63de32798e4a166d24686561354f63b00709a1364b3c241de3febf0754045897467cd4\"\n    },\n    {\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f90919293949596979899\",\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\",\n        \"e74e907920fd87bd5ad636dd11085e50ee70459c443e1ce5809af2bc2eba39f9e6d7128e0e3712c316da06f4705d78a4838e28121d4344a2c79c5e0db307a677\"\n    },\n    {\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f909192939495969798999a\",\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\",\n        \"bf91a22334bac20f3fd80663b3cd06c4e8802f30e6b59f90d3035cc9798a217ed5a31abbda7fa6842827bdf2a7a1c21f6fcfccbb54c6c52926f32da816269be1\"\n    },\n    {\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f909192939495969798999a9b\",\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\",\n        \"d9d5c74be5121b0bd742f26bffb8c89f89171f3f934913492b0903c271bbe2b3395ef259669bef43b57f7fcc3027db01823f6baee66e4f9fead4d6726c741fce\"\n    },\n    {\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c\",\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\",\n        \"50c8b8cf34cd879f80e2faab3230b0c0e1cc3e9dcadeb1b9d97ab923415dd9a1fe38addd5c11756c67990b256e95ad6d8f9fedce10bf1c90679cde0ecf1be347\"\n    },\n    {\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d\",\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\",\n        \"0a386e7cd5dd9b77a035e09fe6fee2c8ce61b5383c87ea43205059c5e4cd4f4408319bb0a82360f6a58e6c9ce3f487c446063bf813bc6ba535e17fc1826cfc91\"\n    },\n    {\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e\",\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\",\n        \"1f1459cb6b61cbac5f0efe8fc487538f42548987fcd56221cfa7beb22504769e792c45adfb1d6b3d60d7b749c8a75b0bdf14e8ea721b95dca538ca6e25711209\"\n    },\n    {\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9f\",\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\",\n        \"e58b3836b7d8fedbb50ca5725c6571e74c0785e97821dab8b6298c10e4c079d4a6cdf22f0fedb55032925c16748115f01a105e77e00cee3d07924dc0d8f90659\"\n    },\n    {\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0\",\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\",\n        \"b929cc6505f020158672deda56d0db081a2ee34c00c1100029bdf8ea98034fa4bf3e8655ec697fe36f40553c5bb46801644a627d3342f4fc92b61f03290fb381\"\n    },\n    {\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1\",\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\",\n        \"72d353994b49d3e03153929a1e4d4f188ee58ab9e72ee8e512f29bc773913819ce057ddd7002c0433ee0a16114e3d156dd2c4a7e80ee53378b8670f23e33ef56\"\n    },\n    {\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2\",\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\",\n        \"c70ef9bfd775d408176737a0736d68517ce1aaad7e81a93c8c1ed967ea214f56c8a377b1763e676615b60f3988241eae6eab9685a5124929d28188f29eab06f7\"\n    },\n    {\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2a3\",\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\",\n        \"c230f0802679cb33822ef8b3b21bf7a9a28942092901d7dac3760300831026cf354c9232df3e084d9903130c601f63c1f4a4a4b8106e468cd443bbe5a734f45f\"\n    },\n    {\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2a3a4\",\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\",\n        \"6f43094cafb5ebf1f7a4937ec50f56a4c9da303cbb55ac1f27f1f1976cd96beda9464f0e7b9c54620b8a9fba983164b8be3578425a024f5fe199c36356b88972\"\n    },\n    {\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5\",\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\",\n        \"3745273f4c38225db2337381871a0c6aafd3af9b018c88aa02025850a5dc3a42a1a3e03e56cbf1b0876d63a441f1d2856a39b8801eb5af325201c415d65e97fe\"\n    },\n    {\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6\",\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\",\n        \"c50c44cca3ec3edaae779a7e179450ebdda2f97067c690aa6c5a4ac7c30139bb27c0df4db3220e63cb110d64f37ffe078db72653e2daacf93ae3f0a2d1a7eb2e\"\n    },\n    {\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7\",\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\",\n        \"8aef263e385cbc61e19b28914243262af5afe8726af3ce39a79c27028cf3ecd3f8d2dfd9cfc9ad91b58f6f20778fd5f02894a3d91c7d57d1e4b866a7f364b6be\"\n    },\n    {\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8\",\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\",\n        \"28696141de6e2d9bcb3235578a66166c1448d3e905a1b482d423be4bc5369bc8c74dae0acc9cc123e1d8ddce9f97917e8c019c552da32d39d2219b9abf0fa8c8\"\n    },\n    {\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9\",\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\",\n        \"2fb9eb2085830181903a9dafe3db428ee15be7662224efd643371fb25646aee716e531eca69b2bdc8233f1a8081fa43da1500302975a77f42fa592136710e9dc\"\n    },\n    {\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aa\",\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\",\n        \"66f9a7143f7a3314a669bf2e24bbb35014261d639f495b6c9c1f104fe8e320aca60d4550d69d52edbd5a3cdeb4014ae65b1d87aa770b69ae5c15f4330b0b0ad8\"\n    },\n    {\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aaab\",\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\",\n        \"f4c4dd1d594c3565e3e25ca43dad82f62abea4835ed4cd811bcd975e46279828d44d4c62c3679f1b7f7b9dd4571d7b49557347b8c5460cbdc1bef690fb2a08c0\"\n    },\n    {\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aaabac\",\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\",\n        \"8f1dc9649c3a84551f8f6e91cac68242a43b1f8f328ee92280257387fa7559aa6db12e4aeadc2d26099178749c6864b357f3f83b2fb3efa8d2a8db056bed6bcc\"\n    },\n    {\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aaabacad\",\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\",\n        \"3139c1a7f97afd1675d460ebbc07f2728aa150df849624511ee04b743ba0a833092f18c12dc91b4dd243f333402f59fe28abdbbbae301e7b659c7a26d5c0f979\"\n    },\n    {\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aaabacadae\",\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\",\n        \"06f94a2996158a819fe34c40de3cf0379fd9fb85b3e363ba3926a0e7d960e3f4c2e0c70c7ce0ccb2a64fc29869f6e7ab12bd4d3f14fce943279027e785fb5c29\"\n    },\n    {\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aaabacadaeaf\",\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\",\n        \"c29c399ef3eee8961e87565c1ce263925fc3d0ce267d13e48dd9e732ee67b0f69fad56401b0f10fcaac119201046cca28c5b14abdea3212ae65562f7f138db3d\"\n    },\n    {\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aaabacadaeafb0\",\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\",\n        \"4cec4c9df52eef05c3f6faaa9791bc7445937183224ecc37a1e58d0132d35617531d7e795f52af7b1eb9d147de1292d345fe341823f8e6bc1e5badca5c656108\"\n    },\n    {\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aaabacadaeafb0b1\",\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\",\n        \"898bfbae93b3e18d00697eab7d9704fa36ec339d076131cefdf30edbe8d9cc81c3a80b129659b163a323bab9793d4feed92d54dae966c77529764a09be88db45\"\n    },\n    {\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2\",\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\",\n        \"ee9bd0469d3aaf4f14035be48a2c3b84d9b4b1fff1d945e1f1c1d38980a951be197b25fe22c731f20aeacc930ba9c4a1f4762227617ad350fdabb4e80273a0f4\"\n    },\n    {\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3\",\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\",\n        \"3d4d3113300581cd96acbf091c3d0f3c310138cd6979e6026cde623e2dd1b24d4a8638bed1073344783ad0649cc6305ccec04beb49f31c633088a99b65130267\"\n    },\n    {\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4\",\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\",\n        \"95c0591ad91f921ac7be6d9ce37e0663ed8011c1cfd6d0162a5572e94368bac02024485e6a39854aa46fe38e97d6c6b1947cd272d86b06bb5b2f78b9b68d559d\"\n    },\n    {\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5\",\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\",\n        \"227b79ded368153bf46c0a3ca978bfdbef31f3024a5665842468490b0ff748ae04e7832ed4c9f49de9b1706709d623e5c8c15e3caecae8d5e433430ff72f20eb\"\n    },\n    {\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6\",\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\",\n        \"5d34f3952f0105eef88ae8b64c6ce95ebfade0e02c69b08762a8712d2e4911ad3f941fc4034dc9b2e479fdbcd279b902faf5d838bb2e0c6495d372b5b7029813\"\n    },\n    {\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b7\",\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\",\n        \"7f939bf8353abce49e77f14f3750af20b7b03902e1a1e7fb6aaf76d0259cd401a83190f15640e74f3e6c5a90e839c7821f6474757f75c7bf9002084ddc7a62dc\"\n    },\n    {\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8\",\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\",\n        \"062b61a2f9a33a71d7d0a06119644c70b0716a504de7e5e1be49bd7b86e7ed6817714f9f0fc313d06129597e9a2235ec8521de36f7290a90ccfc1ffa6d0aee29\"\n    },\n    {\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9\",\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\",\n        \"f29e01eeae64311eb7f1c6422f946bf7bea36379523e7b2bbaba7d1d34a22d5ea5f1c5a09d5ce1fe682cced9a4798d1a05b46cd72dff5c1b355440b2a2d476bc\"\n    },\n    {\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9ba\",\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\",\n        \"ec38cd3bbab3ef35d7cb6d5c914298351d8a9dc97fcee051a8a02f58e3ed6184d0b7810a5615411ab1b95209c3c810114fdeb22452084e77f3f847c6dbaafe16\"\n    },\n    {\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9babb\",\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\",\n        \"c2aef5e0ca43e82641565b8cb943aa8ba53550caef793b6532fafad94b816082f0113a3ea2f63608ab40437ecc0f0229cb8fa224dcf1c478a67d9b64162b92d1\"\n    },\n    {\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbc\",\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\",\n        \"15f534efff7105cd1c254d074e27d5898b89313b7d366dc2d7d87113fa7d53aae13f6dba487ad8103d5e854c91fdb6e1e74b2ef6d1431769c30767dde067a35c\"\n    },\n    {\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbd\",\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\",\n        \"89acbca0b169897a0a2714c2df8c95b5b79cb69390142b7d6018bb3e3076b099b79a964152a9d912b1b86412b7e372e9cecad7f25d4cbab8a317be36492a67d7\"\n    },\n    {\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbe\",\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\",\n        \"e3c0739190ed849c9c962fd9dbb55e207e624fcac1eb417691515499eea8d8267b7e8f1287a63633af5011fde8c4ddf55bfdf722edf88831414f2cfaed59cb9a\"\n    },\n    {\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebf\",\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\",\n        \"8d6cf87c08380d2d1506eee46fd4222d21d8c04e585fbfd08269c98f702833a156326a0724656400ee09351d57b440175e2a5de93cc5f80db6daf83576cf75fa\"\n    },\n    {\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0\",\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\",\n        \"da24bede383666d563eeed37f6319baf20d5c75d1635a6ba5ef4cfa1ac95487e96f8c08af600aab87c986ebad49fc70a58b4890b9c876e091016daf49e1d322e\"\n    },\n    {\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0c1\",\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\",\n        \"f9d1d1b1e87ea7ae753a029750cc1cf3d0157d41805e245c5617bb934e732f0ae3180b78e05bfe76c7c3051e3e3ac78b9b50c05142657e1e03215d6ec7bfd0fc\"\n    },\n    {\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0c1c2\",\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\",\n        \"11b7bc1668032048aa43343de476395e814bbbc223678db951a1b03a021efac948cfbe215f97fe9a72a2f6bc039e3956bfa417c1a9f10d6d7ba5d3d32ff323e5\"\n    },\n    {\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0c1c2c3\",\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\",\n        \"b8d9000e4fc2b066edb91afee8e7eb0f24e3a201db8b6793c0608581e628ed0bcc4e5aa6787992a4bcc44e288093e63ee83abd0bc3ec6d0934a674a4da13838a\"\n    },\n    {\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0c1c2c3c4\",\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\",\n        \"ce325e294f9b6719d6b61278276ae06a2564c03bb0b783fafe785bdf89c7d5acd83e78756d301b445699024eaeb77b54d477336ec2a4f332f2b3f88765ddb0c3\"\n    },\n    {\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0c1c2c3c4c5\",\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\",\n        \"29acc30e9603ae2fccf90bf97e6cc463ebe28c1b2f9b4b765e70537c25c702a29dcbfbf14c99c54345ba2b51f17b77b5f15db92bbad8fa95c471f5d070a137cc\"\n    },\n    {\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0c1c2c3c4c5c6\",\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\",\n        \"3379cbaae562a87b4c0425550ffdd6bfe1203f0d666cc7ea095be407a5dfe61ee91441cd5154b3e53b4f5fb31ad4c7a9ad5c7af4ae679aa51a54003a54ca6b2d\"\n    },\n    {\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0c1c2c3c4c5c6c7\",\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\",\n        \"3095a349d245708c7cf550118703d7302c27b60af5d4e67fc978f8a4e60953c7a04f92fcf41aee64321ccb707a895851552b1e37b00bc5e6b72fa5bcef9e3fff\"\n    },\n    {\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0c1c2c3c4c5c6c7c8\",\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\",\n        \"07262d738b09321f4dbccec4bb26f48cb0f0ed246ce0b31b9a6e7bc683049f1f3e5545f28ce932dd985c5ab0f43bd6de0770560af329065ed2e49d34624c2cbb\"\n    },\n    {\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0c1c2c3c4c5c6c7c8c9\",\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\",\n        \"b6405eca8ee3316c87061cc6ec18dba53e6c250c63ba1f3bae9e55dd3498036af08cd272aa24d713c6020d77ab2f3919af1a32f307420618ab97e73953994fb4\"\n    },\n    {\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0c1c2c3c4c5c6c7c8c9ca\",\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\",\n        \"7ee682f63148ee45f6e5315da81e5c6e557c2c34641fc509c7a5701088c38a74756168e2cd8d351e88fd1a451f360a01f5b2580f9b5a2e8cfc138f3dd59a3ffc\"\n    },\n    {\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0c1c2c3c4c5c6c7c8c9cacb\",\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\",\n        \"1d263c179d6b268f6fa016f3a4f29e943891125ed8593c81256059f5a7b44af2dcb2030d175c00e62ecaf7ee96682aa07ab20a611024a28532b1c25b86657902\"\n    },\n    {\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0c1c2c3c4c5c6c7c8c9cacbcc\",\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\",\n        \"106d132cbdb4cd2597812846e2bc1bf732fec5f0a5f65dbb39ec4e6dc64ab2ce6d24630d0f15a805c3540025d84afa98e36703c3dbee713e72dde8465bc1be7e\"\n    },\n    {\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0c1c2c3c4c5c6c7c8c9cacbcccd\",\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\",\n        \"0e79968226650667a8d862ea8da4891af56a4e3a8b6d1750e394f0dea76d640d85077bcec2cc86886e506751b4f6a5838f7f0b5fef765d9dc90dcdcbaf079f08\"\n    },\n    {\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0c1c2c3c4c5c6c7c8c9cacbcccdce\",\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\",\n        \"521156a82ab0c4e566e5844d5e31ad9aaf144bbd5a464fdca34dbd5717e8ff711d3ffebbfa085d67fe996a34f6d3e4e60b1396bf4b1610c263bdbb834d560816\"\n    },\n    {\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0c1c2c3c4c5c6c7c8c9cacbcccdcecf\",\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\",\n        \"1aba88befc55bc25efbce02db8b9933e46f57661baeabeb21cc2574d2a518a3cba5dc5a38e49713440b25f9c744e75f6b85c9d8f4681f676160f6105357b8406\"\n    },\n    {\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0\",\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\",\n        \"5a9949fcb2c473cda968ac1b5d08566dc2d816d960f57e63b898fa701cf8ebd3f59b124d95bfbbedc5f1cf0e17d5eaed0c02c50b69d8a402cabcca4433b51fd4\"\n    },\n    {\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1\",\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\",\n        \"b0cead09807c672af2eb2b0f06dde46cf5370e15a4096b1a7d7cbb36ec31c205fbefca00b7a4162fa89fb4fb3eb78d79770c23f44e7206664ce3cd931c291e5d\"\n    },\n    {\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2\",\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\",\n        \"bb6664931ec97044e45b2ae420ae1c551a8874bc937d08e969399c3964ebdba8346cdd5d09caafe4c28ba7ec788191ceca65ddd6f95f18583e040d0f30d0364d\"\n    },\n    {\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3\",\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\",\n        \"65bc770a5faa3792369803683e844b0be7ee96f29f6d6a35568006bd5590f9a4ef639b7a8061c7b0424b66b60ac34af3119905f33a9d8c3ae18382ca9b689900\"\n    },\n    {\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4\",\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\",\n        \"ea9b4dca333336aaf839a45c6eaa48b8cb4c7ddabffea4f643d6357ea6628a480a5b45f2b052c1b07d1fedca918b6f1139d80f74c24510dcbaa4be70eacc1b06\"\n    },\n    {\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5\",\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\",\n        \"e6342fb4a780ad975d0e24bce149989b91d360557e87994f6b457b895575cc02d0c15bad3ce7577f4c63927ff13f3e381ff7e72bdbe745324844a9d27e3f1c01\"\n    },\n    {\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6\",\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\",\n        \"3e209c9b33e8e461178ab46b1c64b49a07fb745f1c8bc95fbfb94c6b87c69516651b264ef980937fad41238b91ddc011a5dd777c7efd4494b4b6ecd3a9c22ac0\"\n    },\n    {\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7\",\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\",\n        \"fd6a3d5b1875d80486d6e69694a56dbb04a99a4d051f15db2689776ba1c4882e6d462a603b7015dc9f4b7450f05394303b8652cfb404a266962c41bae6e18a94\"\n    },\n    {\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8\",\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\",\n        \"951e27517e6bad9e4195fc8671dee3e7e9be69cee1422cb9fecfce0dba875f7b310b93ee3a3d558f941f635f668ff832d2c1d033c5e2f0997e4c66f147344e02\"\n    },\n    {\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8d9\",\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\",\n        \"8eba2f874f1ae84041903c7c4253c82292530fc8509550bfdc34c95c7e2889d5650b0ad8cb988e5c4894cb87fbfbb19612ea93ccc4c5cad17158b9763464b492\"\n    },\n    {\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8d9da\",\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\",\n        \"16f712eaa1b7c6354719a8e7dbdfaf55e4063a4d277d947550019b38dfb564830911057d50506136e2394c3b28945cc964967d54e3000c2181626cfb9b73efd2\"\n    },\n    {\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8d9dadb\",\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\",\n        \"c39639e7d5c7fb8cdd0fd3e6a52096039437122f21c78f1679cea9d78a734c56ecbeb28654b4f18e342c331f6f7229ec4b4bc281b2d80a6eb50043f31796c88c\"\n    },\n    {\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8d9dadbdc\",\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\",\n        \"72d081af99f8a173dcc9a0ac4eb3557405639a29084b54a40172912a2f8a395129d5536f0918e902f9e8fa6000995f4168ddc5f893011be6a0dbc9b8a1a3f5bb\"\n    },\n    {\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8d9dadbdcdd\",\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\",\n        \"c11aa81e5efd24d5fc27ee586cfd8847fbb0e27601ccece5ecca0198e3c7765393bb74457c7e7a27eb9170350e1fb53857177506be3e762cc0f14d8c3afe9077\"\n    },\n    {\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8d9dadbdcddde\",\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\",\n        \"c28f2150b452e6c0c424bcde6f8d72007f9310fed7f2f87de0dbb64f4479d6c1441ba66f44b2accee61609177ed340128b407ecec7c64bbe50d63d22d8627727\"\n    },\n    {\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8d9dadbdcdddedf\",\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\",\n        \"f63d88122877ec30b8c8b00d22e89000a966426112bd44166e2f525b769ccbe9b286d437a0129130dde1a86c43e04bedb594e671d98283afe64ce331de9828fd\"\n    },\n    {\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8d9dadbdcdddedfe0\",\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\",\n        \"348b0532880b88a6614a8d7408c3f913357fbb60e995c60205be9139e74998aede7f4581e42f6b52698f7fa1219708c14498067fd1e09502de83a77dd281150c\"\n    },\n    {\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8d9dadbdcdddedfe0e1\",\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\",\n        \"5133dc8bef725359dff59792d85eaf75b7e1dcd1978b01c35b1b85fcebc63388ad99a17b6346a217dc1a9622ebd122ecf6913c4d31a6b52a695b86af00d741a0\"\n    },\n    {\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8d9dadbdcdddedfe0e1e2\",\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\",\n        \"2753c4c0e98ecad806e88780ec27fccd0f5c1ab547f9e4bf1659d192c23aa2cc971b58b6802580baef8adc3b776ef7086b2545c2987f348ee3719cdef258c403\"\n    },\n    {\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8d9dadbdcdddedfe0e1e2e3\",\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\",\n        \"b1663573ce4b9d8caefc865012f3e39714b9898a5da6ce17c25a6a47931a9ddb9bbe98adaa553beed436e89578455416c2a52a525cf2862b8d1d49a2531b7391\"\n    },\n    {\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8d9dadbdcdddedfe0e1e2e3e4\",\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\",\n        \"64f58bd6bfc856f5e873b2a2956ea0eda0d6db0da39c8c7fc67c9f9feefcff3072cdf9e6ea37f69a44f0c61aa0da3693c2db5b54960c0281a088151db42b11e8\"\n    },\n    {\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8d9dadbdcdddedfe0e1e2e3e4e5\",\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\",\n        \"0764c7be28125d9065c4b98a69d60aede703547c66a12e17e1c618994132f5ef82482c1e3fe3146cc65376cc109f0138ed9a80e49f1f3c7d610d2f2432f20605\"\n    },\n    {\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8d9dadbdcdddedfe0e1e2e3e4e5e6\",\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\",\n        \"f748784398a2ff03ebeb07e155e66116a839741a336e32da71ec696001f0ad1b25cd48c69cfca7265eca1dd71904a0ce748ac4124f3571076dfa7116a9cf00e9\"\n    },\n    {\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8d9dadbdcdddedfe0e1e2e3e4e5e6e7\",\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\",\n        \"3f0dbc0186bceb6b785ba78d2a2a013c910be157bdaffae81bb6663b1a73722f7f1228795f3ecada87cf6ef0078474af73f31eca0cc200ed975b6893f761cb6d\"\n    },\n    {\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8d9dadbdcdddedfe0e1e2e3e4e5e6e7e8\",\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\",\n        \"d4762cd4599876ca75b2b8fe249944dbd27ace741fdab93616cbc6e425460feb51d4e7adcc38180e7fc47c89024a7f56191adb878dfde4ead62223f5a2610efe\"\n    },\n    {\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8d9dadbdcdddedfe0e1e2e3e4e5e6e7e8e9\",\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\",\n        \"cd36b3d5b4c91b90fcbba79513cfee1907d8645a162afd0cd4cf4192d4a5f4c892183a8eacdb2b6b6a9d9aa8c11ac1b261b380dbee24ca468f1bfd043c58eefe\"\n    },\n    {\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8d9dadbdcdddedfe0e1e2e3e4e5e6e7e8e9ea\",\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\",\n        \"98593452281661a53c48a9d8cd790826c1a1ce567738053d0bee4a91a3d5bd92eefdbabebe3204f2031ca5f781bda99ef5d8ae56e5b04a9e1ecd21b0eb05d3e1\"\n    },\n    {\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8d9dadbdcdddedfe0e1e2e3e4e5e6e7e8e9eaeb\",\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\",\n        \"771f57dd2775ccdab55921d3e8e30ccf484d61fe1c1b9c2ae819d0fb2a12fab9be70c4a7a138da84e8280435daade5bbe66af0836a154f817fb17f3397e725a3\"\n    },\n    {\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8d9dadbdcdddedfe0e1e2e3e4e5e6e7e8e9eaebec\",\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\",\n        \"c60897c6f828e21f16fbb5f15b323f87b6c8955eabf1d38061f707f608abdd993fac3070633e286cf8339ce295dd352df4b4b40b2f29da1dd50b3a05d079e6bb\"\n    },\n    {\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8d9dadbdcdddedfe0e1e2e3e4e5e6e7e8e9eaebeced\",\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\",\n        \"8210cd2c2d3b135c2cf07fa0d1433cd771f325d075c6469d9c7f1ba0943cd4ab09808cabf4acb9ce5bb88b498929b4b847f681ad2c490d042db2aec94214b06b\"\n    },\n    {\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8d9dadbdcdddedfe0e1e2e3e4e5e6e7e8e9eaebecedee\",\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\",\n        \"1d4edfffd8fd80f7e4107840fa3aa31e32598491e4af7013c197a65b7f36dd3ac4b478456111cd4309d9243510782fa31b7c4c95fa951520d020eb7e5c36e4ef\"\n    },\n    {\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8d9dadbdcdddedfe0e1e2e3e4e5e6e7e8e9eaebecedeeef\",\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\",\n        \"af8e6e91fab46ce4873e1a50a8ef448cc29121f7f74deef34a71ef89cc00d9274bc6c2454bbb3230d8b2ec94c62b1dec85f3593bfa30ea6f7a44d7c09465a253\"\n    },\n    {\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8d9dadbdcdddedfe0e1e2e3e4e5e6e7e8e9eaebecedeeeff0\",\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\",\n        \"29fd384ed4906f2d13aa9fe7af905990938bed807f1832454a372ab412eea1f5625a1fcc9ac8343b7c67c5aba6e0b1cc4644654913692c6b39eb9187ceacd3ec\"\n    },\n    {\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8d9dadbdcdddedfe0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1\",\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\",\n        \"a268c7885d9874a51c44dffed8ea53e94f78456e0b2ed99ff5a3924760813826d960a15edbedbb5de5226ba4b074e71b05c55b9756bb79e55c02754c2c7b6c8a\"\n    },\n    {\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8d9dadbdcdddedfe0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2\",\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\",\n        \"0cf8545488d56a86817cd7ecb10f7116b7ea530a45b6ea497b6c72c997e09e3d0da8698f46bb006fc977c2cd3d1177463ac9057fdd1662c85d0c126443c10473\"\n    },\n    {\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8d9dadbdcdddedfe0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3\",\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\",\n        \"b39614268fdd8781515e2cfebf89b4d5402bab10c226e6344e6b9ae000fb0d6c79cb2f3ec80e80eaeb1980d2f8698916bd2e9f747236655116649cd3ca23a837\"\n    },\n    {\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8d9dadbdcdddedfe0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4\",\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\",\n        \"74bef092fc6f1e5dba3663a3fb003b2a5ba257496536d99f62b9d73f8f9eb3ce9ff3eec709eb883655ec9eb896b9128f2afc89cf7d1ab58a72f4a3bf034d2b4a\"\n    },\n    {\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8d9dadbdcdddedfe0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5\",\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\",\n        \"3a988d38d75611f3ef38b8774980b33e573b6c57bee0469ba5eed9b44f29945e7347967fba2c162e1c3be7f310f2f75ee2381e7bfd6b3f0baea8d95dfb1dafb1\"\n    },\n    {\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8d9dadbdcdddedfe0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6\",\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\",\n        \"58aedfce6f67ddc85a28c992f1c0bd0969f041e66f1ee88020a125cbfcfebcd61709c9c4eba192c15e69f020d462486019fa8dea0cd7a42921a19d2fe546d43d\"\n    },\n    {\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8d9dadbdcdddedfe0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7\",\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\",\n        \"9347bd291473e6b4e368437b8e561e065f649a6d8ada479ad09b1999a8f26b91cf6120fd3bfe014e83f23acfa4c0ad7b3712b2c3c0733270663112ccd9285cd9\"\n    },\n    {\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8d9dadbdcdddedfe0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8\",\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\",\n        \"b32163e7c5dbb5f51fdc11d2eac875efbbcb7e7699090a7e7ff8a8d50795af5d74d9ff98543ef8cdf89ac13d0485278756e0ef00c817745661e1d59fe38e7537\"\n    },\n    {\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8d9dadbdcdddedfe0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9\",\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\",\n        \"1085d78307b1c4b008c57a2e7e5b234658a0a82e4ff1e4aaac72b312fda0fe27d233bc5b10e9cc17fdc7697b540c7d95eb215a19a1a0e20e1abfa126efd568c7\"\n    },\n    {\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8d9dadbdcdddedfe0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fa\",\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\",\n        \"4e5c734c7dde011d83eac2b7347b373594f92d7091b9ca34cb9c6f39bdf5a8d2f134379e16d822f6522170ccf2ddd55c84b9e6c64fc927ac4cf8dfb2a17701f2\"\n    },\n    {\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8d9dadbdcdddedfe0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafb\",\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\",\n        \"695d83bd990a1117b3d0ce06cc888027d12a054c2677fd82f0d4fbfc93575523e7991a5e35a3752e9b70ce62992e268a877744cdd435f5f130869c9a2074b338\"\n    },\n    {\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8d9dadbdcdddedfe0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfc\",\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\",\n        \"a6213743568e3b3158b9184301f3690847554c68457cb40fc9a4b8cfd8d4a118c301a07737aeda0f929c68913c5f51c80394f53bff1c3e83b2e40ca97eba9e15\"\n    },\n    {\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8d9dadbdcdddedfe0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfd\",\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\",\n        \"d444bfa2362a96df213d070e33fa841f51334e4e76866b8139e8af3bb3398be2dfaddcbc56b9146de9f68118dc5829e74b0c28d7711907b121f9161cb92b69a9\"\n    },\n    {\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8d9dadbdcdddedfe0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfe\",\n        \"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\",\n        \"142709d62e28fcccd0af97fad0f8465b971e82201dc51070faa0372aa43e92484be1c1e73ba10906d5d1853db6a4106e0a7bf9800d373d6dee2d46d62ef2a461\"\n    }\n};\n\nstatic int\ntv(void)\n{\n    unsigned char *expected_out;\n    unsigned char *in;\n    unsigned char *key;\n    unsigned char *out;\n    size_t         i = 0U;\n    size_t         in_len;\n\n    key = (unsigned char *) sodium_malloc(crypto_generichash_KEYBYTES_MAX);\n    out = (unsigned char *) sodium_malloc(crypto_generichash_BYTES_MAX);\n    expected_out = (unsigned char *) sodium_malloc(crypto_generichash_BYTES_MAX);\n    do {\n        assert(strlen(tests[i].key_hex) == 2 * crypto_generichash_KEYBYTES_MAX);\n        sodium_hex2bin(key, crypto_generichash_KEYBYTES_MAX,\n                       tests[i].key_hex, strlen(tests[i].key_hex),\n                       NULL, NULL, NULL);\n        assert(strlen(tests[i].out_hex) == 2 * crypto_generichash_BYTES_MAX);\n        sodium_hex2bin(expected_out, crypto_generichash_BYTES_MAX,\n                       tests[i].out_hex, strlen(tests[i].out_hex),\n                       NULL, NULL, NULL);\n        in_len = strlen(tests[i].in_hex) / 2;\n        in = (unsigned char *) sodium_malloc(in_len);\n        sodium_hex2bin(in, in_len, tests[i].in_hex, strlen(tests[i].in_hex),\n                       NULL, NULL, NULL);\n        crypto_generichash(out, crypto_generichash_BYTES_MAX,\n                           in, (unsigned long long) in_len,\n                           key, crypto_generichash_KEYBYTES_MAX);\n        if (memcmp(out, expected_out, crypto_generichash_BYTES_MAX) != 0) {\n            printf(\"Test vector #%u failed\\n\", (unsigned int) i);\n        }\n        sodium_free(in);\n    } while (++i < (sizeof tests) / (sizeof tests[0]));\n    sodium_free(key);\n    sodium_free(out);\n    sodium_free(expected_out);\n\n    return 0;\n}\n\nint\nmain(void)\n{\n    unsigned char in[MAXLEN];\n    unsigned char out[crypto_generichash_BYTES_MAX];\n    unsigned char k[crypto_generichash_KEYBYTES_MAX];\n    size_t        h;\n    size_t        i;\n    size_t        j;\n\n    tv();\n\n    for (h = 0; h < crypto_generichash_KEYBYTES_MAX; ++h) {\n        k[h] = (unsigned char) h;\n    }\n\n    for (i = 0; i < MAXLEN; ++i) {\n        in[i] = (unsigned char) i;\n        crypto_generichash(out, 1 + i % crypto_generichash_BYTES_MAX, in,\n                           (unsigned long long) i, k,\n                           1 + i % crypto_generichash_KEYBYTES_MAX);\n        for (j = 0; j < 1 + i % crypto_generichash_BYTES_MAX; ++j) {\n            printf(\"%02x\", (unsigned int) out[j]);\n        }\n        printf(\"\\n\");\n    }\n\n    memset(out, 0, sizeof out);\n    crypto_generichash(out, crypto_generichash_BYTES_MAX, in,\n                       (unsigned long long) i, k, 0U);\n    for (j = 0; j < crypto_generichash_BYTES_MAX; ++j) {\n        printf(\"%02x\", (unsigned int) out[j]);\n    }\n    printf(\"\\n\");\n\n    assert(crypto_generichash(guard_page, 0,\n                              in, (unsigned long long) sizeof in,\n                              k, sizeof k) == -1);\n    assert(crypto_generichash(guard_page, crypto_generichash_BYTES_MAX + 1,\n                              in, (unsigned long long) sizeof in,\n                              k, sizeof k) == -1);\n    assert(crypto_generichash(guard_page, (unsigned long long) sizeof in,\n                              in, (unsigned long long) sizeof in,\n                              k, crypto_generichash_KEYBYTES_MAX + 1) == -1);\n\n    assert(crypto_generichash_bytes_min() > 0U);\n    assert(crypto_generichash_bytes_max() > 0U);\n    assert(crypto_generichash_bytes() > 0U);\n    assert(crypto_generichash_bytes() >= crypto_generichash_bytes_min());\n    assert(crypto_generichash_bytes() <= crypto_generichash_bytes_max());\n    assert(crypto_generichash_keybytes_min() > 0U);\n    assert(crypto_generichash_keybytes_max() > 0U);\n    assert(crypto_generichash_keybytes() > 0U);\n    assert(crypto_generichash_keybytes() >= crypto_generichash_keybytes_min());\n    assert(crypto_generichash_keybytes() <= crypto_generichash_keybytes_max());\n    assert(strcmp(crypto_generichash_primitive(), \"blake2b\") == 0);\n    assert(crypto_generichash_bytes_min()\n           == crypto_generichash_blake2b_bytes_min());\n    assert(crypto_generichash_bytes_max()\n           == crypto_generichash_blake2b_bytes_max());\n    assert(crypto_generichash_bytes() == crypto_generichash_blake2b_bytes());\n    assert(crypto_generichash_keybytes_min()\n           == crypto_generichash_blake2b_keybytes_min());\n    assert(crypto_generichash_keybytes_max()\n           == crypto_generichash_blake2b_keybytes_max());\n    assert(crypto_generichash_keybytes()\n           == crypto_generichash_blake2b_keybytes());\n    assert(crypto_generichash_blake2b_saltbytes() > 0U);\n    assert(crypto_generichash_blake2b_personalbytes() > 0U);\n\n    return 0;\n}\n"
  },
  {
    "path": "test/default/generichash.exp",
    "content": "05\n5d8c\n22221b\nd4974470\nbe8492fb36\nedc178279907\n26848f2ae0c2e6\n045cf1235112b9f6\n5110bad569356dfa6c\n1339d95145bc8a33d3aa\n3dbb39b4d57c5566808a88\n22378260939cee01022686a2\ne18b37abcead6cc520e6504dac\n3cbb356604cf862e62ad2f534323\n44c41ba227b191961b475ec5875057\n0c7c9c3922d41a7b2b3b20f92685d560\n8508c01d19709bdd881866aa1f8c63ca06\nf6b2dddfbece6d7d52e114c7e5a97772e18d\nd36b5af9591d0cd3747254e26bc6e1de5b6081\nf7f7ce69149418d7ec33327bd86e14bcca4b8ed7\n2c9aba9a56de21165753c4f3cee9310a9c8fe546b9\nee5e08cee5fbbcb51900341bb30db6695920faecda6a\nfe9ffb56dc5716b91bc7d77ce7b05e7cc39c31683bec91\nc500ae0f5bff0f1106ce104ae9c291add7207e0d8ebcb1ed\n68e23d12000b387158afd6458d3bcef9c26936ca68b5c0f3d6\n220efa2c09f67dbb02aa623bbc0cb92107a30f53b633e78d4b44\n54df984b47e4bcd489d9c045c488743fac91c9b3e0cbcc37495fac\nb4852cf66c6ce164c002bbb62ded0faeb4a39c39fdffb372ff14dd31\nd79cafb5565e7775616e1c9b09100d61fb71efaf25affcf2d480d2c980\nae557883145e374adef583ba0550429d5cdd86b254c33bf52d02e070efda\n9f53d28c0df7b327c2eb4c8a12c742829225b7f30fda7baf64135098fdb01b\na9f51bb7f6a3e9cdb96ce652c07d177962a348a9cced1b92f948187e59b44463\nf2960cf5fd57fc92f549cd5a2803147964f60e7703e1b8897c088cded74c7bd39f\n89981acbb690eb03ed2a67510d1d85a1b4f9d496fdfe134550ae14146bb05fd5fedd\n6d8245383fd7c418b46511339e711b9d4a0d1f5fdf6de45fdd3d0664164b7bf878a124\n1f0b6b083d524e0741710ddef499ce88f51083bb3ad80a1815cc57acf006436e9b6ad72b\nfc35bfe34c915020bb8b44fa0a19933774eaaf61919780fd55564e085bc31646dfc1d426e9\n117d58f1f8cb2c036102686035975be90550795e5a0e3469a8f7a2cba9bc88961852b18c8ae3\nc679c950818729c799bb7f39cef2d89fa80a147817f379a073ef1ccafea5d369815c70373bf5be\nd487ad2143024ee8c645a066c035b74abe3a11f1c9fcd738b154b8ca37134d74fb78c40d1a2274cf\n2d3ee00828b0ccea6812b40f214fab6d4f23f7e74ae228115bcb208ced2d5e1cb9cdff41de912af7a8\na697b26d4c4475e312288b98ae2ec4954d3c74c8e144c0ab518616ff9f52918a946fd765af75e761178c\nf647bcba2a711f431d6d453aa7d75dcf5bb9ab6f8b83f89117230f633e7580f27c71c4f4c211cadd04f587\n1fc1d6a4db753e2f4fd1456b2b709dd70ad58547eeda9d5a55762b5cd4097a7a1bd73cc633ec27168ee65631\n1cfe0f63ab155379b4a1b5bf694a33635097b8e4b6dbd3b983d62454d36d7bf4550bece301abdd27b2dd76ca9f\n73dee8a0a558e7b6f6eefe411280e253b05ef006d499849fea5d6a95f9141ee160322fff3a3f70e10c84025e02ce\nedf9e706f4acae4f4bed72404f14458ba075d2b9d9a4a1ed46d1f1c5e23113a74cce9f7735432a922a3d8097f22c7a\n95d5cd54c6722ac4335fa0ab38d388c9fd0baea48a9078605e400534ef38f13abb1d770da84b90b0256e1c1b64f54ba9\nfe6b85ee8b5eb7da035264ed46e6dcd948571018d1f6976de4102fcb4bb5f1422e7df1b5aaa5b6b56c5961966db29ead6e\n499ab83c01e4bf74ea5036392f9f810eae8a066fff49e316e4288baccb2001efa24f64cef7bfae70c90f139b198e53ad87f1\neac6c9d97264241a8adba22ee925438ed9787a547018608a10676a7594bc51c60294bd9159fbcada9022b44880a37c5b07c1b4\n0771e3ae24bbfe424800d4bae776fef3da1607990019e7c4b30bc8140061ebf0b64aad7b018a878d579caa67154b98a04402735e\nd569e5f5fe197387451441911a2be2effa606dad39820af44cea056bd9d1499dde41fa1c6c3a0459d5866c944bec2ac83328953726\n68e523ded865c4d8318d61c312189a59597bbc3995e312e85137611af761a5f73508ac79e359edf729d4508830fc642b432f09185914\n601af664ae596166707244adbb4f704593b355c6a659c844d853c6647fb265cdbcea26ed43657251dec37f2d6453fa0ace55f22d303cb0\n703d8e552236b2090143444545f0a61a809d8ef9843bcf6883f61671fb31c8d6ac9fd373e7f9f79a0c72fa6a37dc655ba1fb01a5f41e36d1\n03896f594afd1bf97acb862106eb05a1d8b54ec08d184812a79f4dc7b287a7486e60927b6c23e5f51fcbc94798648b28fd13438300567bec95\ncc66a891768e95a2717b040c111996f14942f10f2475c33aa5f1c97476e6f8386733d6b21c16102d01ff1f715475f01099e1f19aa763238a38a9\n007aac8eae29e5bf2be1b54857f5fe80c324424a3273b46e55482fbc4ae1033df4a97016b60c81a5344abd6366f56d8cee2c2e94619418293990de\n50c81e92605a6111ea4c7c602acfb3945d4c2631c8c08fa4b594134577f5c2ffcca90d48604162cfdb2a0bb40416ff9134a275461b829ff1b875f995\n661b7a1c70170aa7559aa82639fa65c1bdcfb5e336cb23b40a9edf5b4f6eeca1a176a9844da705cafb990dd94b9dc6194eb6b2de3eca9dbd255bb267a1\n9ff11c233aaf5e0242b0dbe6e110a42e58b86141ad0ef130fd2bb895700019782de66d435bf0a8d6f5eda5d7d1105e7a6f3ef17a9da8f9c16fc21075431a\nbdd3d0fafe8ba2b29d1ac0b79aa46e249cc9d3a82d0f772d690637bbdd353722356658d00436ff5dd5239ab747979329345eb8c7ed11b7331456ae87350fcf\nbd965bf31e87d70327536f2a341cebc4768eca275fa05ef98f7f1b71a0351298de006fba73fe6733ed01d75801b4a928e54231b38e38c562b2e33ea1284992fa\n2fc6e69fa26a89a5ed269092cb9b2a449a4409a7a44011eecad13d7c4b0456602d402fa5844f1a7a758136ce3d5d8d0e8b86921ffff4f692dd95bdc8e5ff0052\n"
  },
  {
    "path": "test/default/generichash2.c",
    "content": "\n#define TEST_NAME \"generichash2\"\n#include \"cmptest.h\"\n\nint\nmain(void)\n{\n#define MAXLEN 64\n    crypto_generichash_state *st;\n    unsigned char            in[MAXLEN];\n    unsigned char            out[crypto_generichash_BYTES_MAX];\n    unsigned char            k[crypto_generichash_KEYBYTES_MAX];\n    size_t                   h, i, j;\n\n    assert(crypto_generichash_statebytes() >= sizeof *st);\n    st = (crypto_generichash_state *)\n        sodium_malloc(crypto_generichash_statebytes());\n    for (h = 0; h < crypto_generichash_KEYBYTES_MAX; ++h) {\n        k[h] = (unsigned char) h;\n    }\n    for (i = 0; i < MAXLEN; ++i) {\n        in[i] = (unsigned char) i;\n        if (crypto_generichash_init(st, k,\n                                    1 + i % crypto_generichash_KEYBYTES_MAX,\n                                    1 + i % crypto_generichash_BYTES_MAX) != 0) {\n            printf(\"crypto_generichash_init()\\n\");\n            return 1;\n        }\n        crypto_generichash_update(st, in, i);\n        crypto_generichash_update(st, in, i);\n        crypto_generichash_update(st, in, i);\n        if (crypto_generichash_final(st, out,\n                                     1 + i % crypto_generichash_BYTES_MAX) != 0) {\n            printf(\"crypto_generichash_final() should have returned 0\\n\");\n        }\n        for (j = 0; j < 1 + i % crypto_generichash_BYTES_MAX; ++j) {\n            printf(\"%02x\", (unsigned int) out[j]);\n        }\n        printf(\"\\n\");\n        if (crypto_generichash_final(st, out,\n                                     1 + i % crypto_generichash_BYTES_MAX) != -1) {\n            printf(\"crypto_generichash_final() should have returned -1\\n\");\n        }\n    }\n\n    assert(crypto_generichash_init(st, k, sizeof k, 0U) == -1);\n    assert(crypto_generichash_init(st, k, sizeof k,\n                                   crypto_generichash_BYTES_MAX + 1U) == -1);\n    assert(crypto_generichash_init(st, k, crypto_generichash_KEYBYTES_MAX + 1U,\n                                   sizeof out) == -1);\n    assert(crypto_generichash_init(st, k, 0U, sizeof out) == 0);\n    assert(crypto_generichash_init(st, k, 1U, sizeof out) == 0);\n    assert(crypto_generichash_init(st, NULL, 1U, 0U) == -1);\n    assert(crypto_generichash_init(st, NULL, crypto_generichash_KEYBYTES,\n                                   1U) == 0);\n    assert(crypto_generichash_init(st, NULL, crypto_generichash_KEYBYTES,\n                                   0U) == -1);\n\n    sodium_free(st);\n\n    return 0;\n}\n"
  },
  {
    "path": "test/default/generichash2.exp",
    "content": "05\n22a8\n287a9d\nd8eeab1c\nd4ce34973f\n584f7ac46f0c\n32c848bb67545b\n8438e21361bca125\n27a6faae998b4fabb4\n508c05a4f2daee150bad\n68c886c97dce370e8c72fa\nd41e90824ace31ba7bf512ac\n6e0d7a1e2b92a68e45ea867895\n1fc5ee8715312db38da9066152a5\n3138504ba58fcd56c62752bc98a6d2\nb689ecd5357cb5276007627fbdf4082e\nafe251881beb8b9dfa3d4f76aafc7b2995\n980eaa215cb0911027c5564db809bb8ac0a1\n56048436883efdfc8feaa239d960fa5ce24d42\nfce905b6d57fd841f58899a77887a4988e6aa2d1\n6f7afd81d24ccf4d98188b71bdbb7e6c637620879b\n50406b4c37b48621505942b35dff30a75f7d2868146b\n32c21792e18e7a79a4a20ef291721d7eab4e4cf99fbe79\n4b9d9ac5dbfb825acd87588667e6683e0fde4cdcd0a532f9\n2b55a3ebb461623e5de4fbacfb8b26819cfa8adeb094c8c13b\n4c7d261780b25a864a008352ad64d1ae7fc21d608317813cf63f\nf0ca06b8e12c48f1511d0991ba562f06dbe6ba6d5e18280224cc6a\n838a5f7056bfbca65a245796dd3510cb07ff1614b44989d91ac650b2\na58a8da276577160441f8b9e9c52a041b7caf7cd316acc506f620ab0e1\ne03940a7231049ff2b86c47a28e4951f105d2a3aa3421190fe0ed6aa4ad6\na7af977c0b34294b1a03d0cc2dcf6eb72f9a32721c3f70128384aeb1f56047\n0e5625d74ada70b8a3b23ca76894e9a0f9dee88f5e3e370e27ad25061ea9dd6f\n775fd9257b265997a16557a445985091798af60e68d06e3ae8e2e886d23ed12f6e\n852e8d4208166a990e215ed06b86c708f491e014584ac9b08f97f24d9f08a84c8e83\nfbdca0db9a933fcffcce2ae694d7e16e7571b100564fcb3d69cec82ea42f254a493a32\n50530ae5eb9780f3fafc5d179f7b363a0d69314a8545d68588b5fec28c8e8d1a011857f6\n5eb71553ff1ac4aba3f84faeb70281c738e3428aae68edc9842ebf55ffd7184a015e323445\n39b279c6d9cca89f8052f953abf71041faf3491b2b965cef503d715e8bf339e02a58fd0e0fba\ne315bef5f4918e881dc8d39d3c6b3948c2ea8e21ac00ee7c7ab875a53e194add0c3d9b8bcba5b2\n4e950f0e1da3111d054136fbdf10b4b88b20de6ad0c6bd5024a5e0a8b4cd7059685c0b663a00cbfa\nb1ed8d99fd62a4f504ecdd58a01759a85932a7783f88f314cdca5019e05063dcc1fcb3c39b8c07758e\ne4d78e734b0cb5bbd83e22bc67f97bbc8a3644f789f6c26a3ec2fe72c75b4d48a3bc000e6f2f2f0726fe\n162e01beb796433a2771eab54611fc93677ed12c73a93ea4d75e148bec7ab14b3e31ab7f395456fb2b47ab\n759c30631fd52e80a22f0614125dcd136287db65079908b75fb5b03be1cdf6dd0a1c9de0cc759cdd82c33758\naf2992acdaf0908f03a2025854de6446123c919b1e24db711df6cb070091343b4e6f5b2716c20c2547f50f1fde\nb833064955778a611fe41a9f1a2de730a16fb4e61a7e2fb67425ce199101d4e71dd7b0c731ea4188e9cc30e9bc52\ne546ee327168d9b4e0d73d9a043f9ef03f880bc8aee91b0923704eb7361ac916b00f5c71c872e2f911a77ef76704b5\n83d86f056729fa1a6e1d3fe8c3d2ebe42b327025747f2e6ba923d2b7b893e31571839937222852033844e585b17d462f\n5d70402524fbef569552a3ff6854087e090ff9ac9ea03aba92cf9f33a28845fa6a1631090dca10e05cdd3341b391a15fcf\n64f4d3ebf0717900f7c04512d1e18f9985975991d4254d76c4e2ee02c0edd6f912f715991984731b808b8370be1f201e53bf\n7d45eae6626dfc9ec3591764b8c39c72ca67e6c1893ab590963a75922719937d1d0ff188a510ffbdf9c777a4d565b3683cbf38\n68e007db5067874548c0d12a9ca709221f9bd352e3eb9847fde6c5de4a8550f4b85b67fe4e5aad70626ebb27d71e5b528effb2e6\nb0dc4dc0bd0d41a8ccfa45a127542079bc4e6f63a63863a9ce21f44481d23eff1060ea03851759b9317209405d5b7cc4387cc2759b\nadf6a9df484e93eb3a6113c3fd68a49b2166878fc652833c9cbef3fd8dd281d385ad0374bc25bc865b216ca395e21c30b9eda1d58a8d\nf1df9bc169323da338daa8a94867db96a1a2a6feb26569198fb4591ae602ba6f766a879e745d71e93b6cb8886b914f2bf4aa55d4c48045\n0c7446078a5077f33bba1ebfad60bbf1b1df47aab2eb3f3f3274ce56ead7800cf095af8208b6d570c4c832fe33227bbbc0842a13e1e82ad9\naccd0b4682e56698ecc55a60a8db8b3f950b6bffc5a1d160daf6ca25e13e3b4983ced5903df0bdc21f70c2ec5adb1a2ec9617df645cdd17ac9\nb787bae190ff2608eb383e0299cc10d6b7232de67ab74285e7bfa933d79f91226066537d74a9d40140d7b1683c2d42cd1935f6430cc554db2b69\nd09b717a0c80f581c07b8813e0ae79cec2188f77122f7477954610655a20420f13eb1b68cacde8c1fdf7a9a398efa72f40c85f0122812eaa33aba0\n87fff156d9895917468e92848fdcfacc134ca3bfc7fce484bd6db41c682ee2ee47151df0fa863d5641633d908c0328e6cbe080e80d8293530ffd2c4f\n1b17b2c0e7afcd224ec9bbe9ce9a13a00bd0a336b863f1b4d5304043778244323bd23fb6154a2e1e94aa48f6ff0e12787a50ca09e9e72ece9e038f6218\n23ac1ccd5e7df51b65b284650158d662e7ef51ebae01b879f39cec484b688c792f8e854bd8ca31ffe8796d28f10e49ab402dab47878a21cb95556dc32b0a\nf8f5323ebcc28bf927e72d342b5b70d80ba67794afb4c28debad21b0dae24c7a9252e862eb4b83bea6d9c0bb7c108983c987f13d73f250c7f14483f0454a24\n55b97ca594d68ccf69a0a93fe7fa4004c7e2947a8cac4ca4a44e17ac6876f472e3f221b341a28004cd35a79cfad7fabb9378ce5af03e4c0445ebbe9540943bbd\n"
  },
  {
    "path": "test/default/generichash3.c",
    "content": "\n#define TEST_NAME \"generichash3\"\n#include \"cmptest.h\"\n\nint\nmain(void)\n{\n#define MAXLEN 64\n    crypto_generichash_blake2b_state st;\n    unsigned char salt[crypto_generichash_blake2b_SALTBYTES]\n        = { '5', 'b', '6', 'b', '4', '1', 'e', 'd',\n            '9', 'b', '3', '4', '3', 'f', 'e', '0' };\n    unsigned char personal[crypto_generichash_blake2b_PERSONALBYTES]\n        = { '5', '1', '2', '6', 'f', 'b', '2', 'a',\n            '3', '7', '4', '0', '0', 'd', '2', 'a' };\n    unsigned char in[MAXLEN];\n    unsigned char out[crypto_generichash_blake2b_BYTES_MAX];\n    unsigned char k[crypto_generichash_blake2b_KEYBYTES_MAX];\n    size_t        h;\n    size_t        i;\n    size_t        j;\n\n    assert(crypto_generichash_blake2b_statebytes() >= sizeof st);\n    for (h = 0; h < crypto_generichash_blake2b_KEYBYTES_MAX; ++h) {\n        k[h] = (unsigned char) h;\n    }\n\n    for (i = 0; i < MAXLEN; ++i) {\n        in[i] = (unsigned char) i;\n        crypto_generichash_blake2b_init_salt_personal(\n            &st, k, 1 + i % crypto_generichash_blake2b_KEYBYTES_MAX,\n            1 + i % crypto_generichash_blake2b_BYTES_MAX, salt, personal);\n        crypto_generichash_blake2b_update(&st, in, (unsigned long long) i);\n        crypto_generichash_blake2b_final(\n            &st, out, 1 + i % crypto_generichash_blake2b_BYTES_MAX);\n        for (j = 0; j < 1 + i % crypto_generichash_blake2b_BYTES_MAX; ++j) {\n            printf(\"%02x\", (unsigned int) out[j]);\n        }\n        printf(\"\\n\");\n    }\n\n    memset(out, 0, sizeof out);\n    crypto_generichash_blake2b_init_salt_personal(\n        &st, k, 0U, crypto_generichash_blake2b_BYTES_MAX, salt, personal);\n    crypto_generichash_blake2b_update(&st, in, MAXLEN);\n    crypto_generichash_blake2b_final(&st, out,\n                                     crypto_generichash_blake2b_BYTES_MAX);\n    for (j = 0; j < crypto_generichash_blake2b_BYTES_MAX; ++j) {\n        printf(\"%02x\", (unsigned int) out[j]);\n    }\n    printf(\"\\n\");\n\n    memset(out, 0, sizeof out);\n    crypto_generichash_blake2b_init_salt_personal(\n        &st, NULL, 1U, crypto_generichash_blake2b_BYTES_MAX, salt, personal);\n    crypto_generichash_blake2b_update(&st, in, MAXLEN);\n    crypto_generichash_blake2b_final(&st, out,\n                                     crypto_generichash_blake2b_BYTES_MAX);\n    for (j = 0; j < crypto_generichash_blake2b_BYTES_MAX; ++j) {\n        printf(\"%02x\", (unsigned int) out[j]);\n    }\n    printf(\"\\n\");\n\n    memset(out, 0, sizeof out);\n    crypto_generichash_blake2b_init_salt_personal(\n        &st, k, crypto_generichash_blake2b_KEYBYTES_MAX,\n    crypto_generichash_blake2b_BYTES_MAX, NULL, personal);\n    crypto_generichash_blake2b_update(&st, in, MAXLEN);\n    crypto_generichash_blake2b_final(&st, out,\n                                     crypto_generichash_blake2b_BYTES_MAX);\n    for (j = 0; j < crypto_generichash_blake2b_BYTES_MAX; ++j) {\n        printf(\"%02x\", (unsigned int) out[j]);\n    }\n    printf(\"\\n\");\n\n    memset(out, 0, sizeof out);\n    crypto_generichash_blake2b_init_salt_personal(\n        &st, k, crypto_generichash_blake2b_KEYBYTES_MAX,\n        crypto_generichash_blake2b_BYTES_MAX, salt, NULL);\n    crypto_generichash_blake2b_update(&st, in, MAXLEN);\n    crypto_generichash_blake2b_final(\n        &st, out, crypto_generichash_blake2b_BYTES_MAX);\n    for (j = 0; j < crypto_generichash_blake2b_BYTES_MAX; ++j) {\n        printf(\"%02x\", (unsigned int) out[j]);\n    }\n    printf(\"\\n\");\n\n    memset(out, 0, sizeof out);\n    crypto_generichash_blake2b_salt_personal(\n        out, crypto_generichash_blake2b_BYTES_MAX, in, MAXLEN,\n        k, 0U, salt, personal);\n    for (j = 0; j < crypto_generichash_blake2b_BYTES_MAX; ++j) {\n        printf(\"%02x\", (unsigned int) out[j]);\n    }\n    printf(\"\\n\");\n\n    memset(out, 0, sizeof out);\n    crypto_generichash_blake2b_salt_personal(\n        out, crypto_generichash_blake2b_BYTES_MAX, in, MAXLEN,\n        NULL, 0U, salt, personal);\n    for (j = 0; j < crypto_generichash_blake2b_BYTES_MAX; ++j) {\n        printf(\"%02x\", (unsigned int) out[j]);\n    }\n    printf(\"\\n\");\n\n    memset(out, 0, sizeof out);\n    crypto_generichash_blake2b_salt_personal(\n        out, crypto_generichash_blake2b_BYTES_MAX, in, MAXLEN,\n        k, crypto_generichash_blake2b_KEYBYTES_MAX, salt, personal);\n    for (j = 0; j < crypto_generichash_blake2b_BYTES_MAX; ++j) {\n        printf(\"%02x\", (unsigned int) out[j]);\n    }\n    printf(\"\\n\");\n\n    memset(out, 0, sizeof out);\n    crypto_generichash_blake2b_salt_personal(\n        out, crypto_generichash_blake2b_BYTES_MAX, in, MAXLEN,\n        k, crypto_generichash_blake2b_KEYBYTES_MAX, NULL, personal);\n    for (j = 0; j < crypto_generichash_blake2b_BYTES_MAX; ++j) {\n        printf(\"%02x\", (unsigned int) out[j]);\n    }\n    printf(\"\\n\");\n\n    memset(out, 0, sizeof out);\n    crypto_generichash_blake2b_salt_personal(\n        out, crypto_generichash_blake2b_BYTES_MAX, in, MAXLEN,\n        k, crypto_generichash_blake2b_KEYBYTES_MAX, salt, NULL);\n    for (j = 0; j < crypto_generichash_blake2b_BYTES_MAX; ++j) {\n        printf(\"%02x\", (unsigned int) out[j]);\n    }\n    printf(\"\\n\");\n\n    assert(crypto_generichash_blake2b_salt_personal\n           (guard_page, 0,\n            in, (unsigned long long) sizeof in,\n            k, sizeof k, NULL, NULL) == -1);\n    assert(crypto_generichash_blake2b_salt_personal\n           (guard_page, crypto_generichash_BYTES_MAX + 1,\n            in, (unsigned long long) sizeof in,\n            k, sizeof k, NULL, NULL) == -1);\n    assert(crypto_generichash_blake2b_salt_personal\n           (guard_page, (unsigned long long) sizeof in,\n            in, (unsigned long long) sizeof in,\n            k, crypto_generichash_KEYBYTES_MAX + 1, NULL, NULL) == -1);\n\n    crypto_generichash_blake2b_init_salt_personal(&st, NULL, 0U, crypto_generichash_BYTES,\n                                                  NULL, personal);\n    crypto_generichash_blake2b_update(&st, in, MAXLEN);\n    crypto_generichash_blake2b_final(&st, out, crypto_generichash_blake2b_BYTES_MAX);\n    for (j = 0; j < crypto_generichash_blake2b_BYTES_MAX; ++j) {\n        printf(\"%02x\", (unsigned int) out[j]);\n    }\n    printf(\"\\n\");\n\n    crypto_generichash_blake2b_init_salt_personal(&st, NULL, 0U, crypto_generichash_BYTES,\n                                                  salt, NULL);\n    crypto_generichash_blake2b_update(&st, in, MAXLEN);\n    crypto_generichash_blake2b_final(&st, out, crypto_generichash_blake2b_BYTES_MAX);\n    for (j = 0; j < crypto_generichash_blake2b_BYTES_MAX; ++j) {\n        printf(\"%02x\", (unsigned int) out[j]);\n    }\n    printf(\"\\n\");\n\n    assert(crypto_generichash_blake2b_init_salt_personal\n           (&st, k, sizeof k, 0, NULL, NULL) == -1);\n    assert(crypto_generichash_blake2b_init_salt_personal\n           (&st, k, sizeof k, crypto_generichash_blake2b_BYTES_MAX + 1, NULL, NULL) == -1);\n    assert(crypto_generichash_blake2b_init_salt_personal\n           (&st, k, crypto_generichash_blake2b_KEYBYTES_MAX + 1, sizeof out, NULL, NULL) == -1);\n\n    assert(crypto_generichash_blake2b_init_salt_personal(&st, k, sizeof k, crypto_generichash_BYTES,\n                                                         NULL, personal) == 0);\n    assert(crypto_generichash_blake2b_init_salt_personal(&st, k, sizeof k, crypto_generichash_BYTES,\n                                                         salt, NULL) == 0);\n    return 0;\n}\n"
  },
  {
    "path": "test/default/generichash3.exp",
    "content": "ba\n6139\n3a1666\n5797e9d0\n834a26efe6\nd7e9e862bbce\n40d8b84c374750\n276789189244cf04\n16f73ffe0673cc9992\nb3835bfaf6eb71d94078\n8c624e844d34f4a59f34cc\ne0a394962413ad09975df3cf\n47f043c3aacb501f97e0458ae3\nb4a11f2fb72a7e6f96fdacf98d49\nf434079e9adeb244047cb6855f9854\n5fbe885c4b2d4e0d78dc5905622a277a\ne262ba3e2ab76efdf83513108e3b987d1b\nadd93dde78d32e77bc039c34a49043f19d26\n093842ac10e2eb1237ddc9ca9e7990cf397772\n09e7f6a0e2ea4888f1dbf6562effd1561c65029c\nbd33a9ec914f5b81864a49184338e4062d6c6b2b2e\n8dc46295235d94f5881d429a5ad47f9db9e35cf8c6b3\nba5df554dca7ac1cba4889fa88adf3070fbf4ab5d187b5\n1ff84715e71c66214d271d421395fb6166db97b1d47ed697\n75a0d227c70549f5b0c933b7b21f151355bd47e04b6085c91f\na32a5c9439a0fa771dcbe7f338b5dcef62a754edc4952614d6f0\n53a87de519cdcc7f64730d58bce6baaf7b44c5c428a4611a208ad4\n5e5ad8f0c4f083f9b7a5154d9c0dfd0f3d2fce94cf54fc215450314a\n9c76b9e63c77e6564b1e5111c2fb140046e1e5a4f900a7cfc2bac3fcfa\nbb919251ca310eb9b994e5d7883bc9fa2144b59b8d5d940677b7130ac777\nfaa492a66f08ef0c7adb868fcb7b523aedd35b8ff1414bd1d554794f144474\n9b273ebe335540b87be899abe169389ed61ed262c3a0a16e4998bbf752f0bee3\n1e0070b92429c151b33bdd1bb4430a0e650a3dfc94d404054e93c8568330ecc505\ne3b64149f1b76231686d592d1d4af984ce2826ba03c2224a92f95f9526130ce4eb40\n5f8e378120b73db9eefa65ddcdcdcb4acd8046c31a5e47f298caa400937d5623f1394b\n74c757a4165a1782c933e587353a9fd8f6d7bf26b7f51b52c542747030bfb3d560c2e5c2\n2d5ee85cc238b923806dd98db18919d1924f2340ec88917d4ce1799cbfd5f2cb9df99db2e1\nc93ff727e6f9822efec0a77eed0025c0eff19127bf8746b7c71c2a098f57cef02febb86a1e6c\nadfb6d7ba13779a5dd1bbf268e400f4156f0f5c9d5b670ff539e1d9c1a63373416f3001f338407\n3a6900e58a448887d77c5911e4bdde620e64f25b2d71723fa60f7cb3efa7c320b6153bdbc3287949\n413eb0fd379b32dd88e82242a87cc58ce3e64c72352387a4c70f92ee5c8d23fa7ecd86f6df170a32d2\n92d0d3cacc3e25628caf6f2c4cd50d25d154ac45098f531d690230b859f37cfe089eb169f76bba72a3ff\n92f6ccc11a9a3bee520b17e0cddc4550c0e9cf47ddd9a6161284259ffb161c1d0675b505cb1066872768e8\na3cd675804e6be7f120138a9eaadcd56bb7763d1c046e87fe0d358c8276b0d24621f46c60b46e397933b75b4\n304a1af53cbdd6486b8419d1ebd5e9528c540d8dc46a10be49067f46a0617229577015d776783f702b2954df43\nd8a6358970446453ac0c82c758644ab68989b5b4f06f9768807ce0c5f2a0dbac1e8450f4e3a02deecf7b54b6a45d\n1264b8dee9ac4aa8de69a43ada95cc95f20230f33836d4a1db8c2466ab38361686e5ac282025ccc2e0f6a1cd98a4dd\n7eed787abaa7f4e8b8aa3090f0676201cfbaaf350899661cdd5216ac0b5cd874443f5c0688ffd7ca1ccbfe1ca7e1a3f5\n8907f0218585167962a8e8213559a643dd03c2bf1a7a5ad3e3bc5f88c0ff1532ee8cd29880e7e0e68da22a5798aef27cc5\n12dea17b0733e5060751b1115e10c3d4b2f4583bcd009d9f1f42ec23d4a6a0df1185d3abbdbe86de08569e70583d6de1c1fe\n8ff75e91f1de547dc3a25472db2f51f5910a290c449603da54207b5e39bd735d240ec913b52df90709b5d29357971d6c341452\n4a3b16b12400f38e74778efc3a4caa52ec6fdf6b0180a5bfac9189e52e162c10e8911a54ab33e2b389ee1949e58edaa119e2b2b9\nc9943e7186fdc9bbfa1d7087fa7086babe6fcf95a6196d1772187854071304e2f1fff39e6e6f48f76addb16d5c00249e0523aac91f\n0297f16fdd34add9cc87b4adf816525b590ba08ac733c43f8d225d194df4f9c83b4dce617be51e25b5f6c80dff249f27c707de20e422\n576bb891eab9930998e2e73b5d0498e3c5f040f8dec9397a8c7a622c17de01fee7cc936e3bd4de1f7fd8b31dea9e70c65462bbb5dc7b50\n9416a57ae7c8c51c6e008f940fe06d8ebc02c350c19a2f71583a6d260b085670d73a95248fef0f4cae5292ba7db1189a7cd9c51122ba7913\nea644b9051cca5eee8868a553e3f0f4e14739e1555474151156e10578256b288a233870dd43a380765400ea446df7f452c1e03a9e5b6731256\nf99cc1603de221abc1ecb1a7eb4bbf06e99561d1cc5541d8d601bae2b1dd3cbe448ac276667f26de5e269183a09f7deaf35d33174b3cc8ad4aa2\nee2be1ec57fdac23f89402a534177eca0f4b982a4ed2c2e900b6a79e1f47a2d023eff2e647baf4f4c0da3a28d08a44bc780516974074e2523e6651\n9cda001868949a2bad96c5b3950a8315e6e5214d0b54dcd596280565d351806ef22cf3053f63623da72fcad9afa3896641658632334c9ec4f644c984\nc6d6722a916651a8671383d8260873347d9c248696b4cb3dac4dea9ba57ed971127cb18e44211d7e14177ace248b3c6e0785356ee261ebdc6ef0faf143\n5dd258a3e7505bc6b9776b0df25676a1c19e2c8258c7b5f2e361423523d96299eb6827bc7c27e7bca2d2b59d717c2ebcb05e6dcaa32289d96fae9a4077ef\n19c14de35fe19c92cc0e624280e4136355d4cfa9a0a98b090c4b06f5665021920725852ff1f566b0c8c37157b25fb9f947a2e70b40577a17860a0732c170ac\n5fcdcc02be7714a0dbc77df498bf999ea9225d564adca1c121c9af03af92cac8177b9b4a86bcc47c79aa32aac58a3fef967b2132e9352d4613fe890beed2571b\n1afc8ec818bef0a479d2b4cac81d40a52cafa27f6d80c42fc23cbaf4141882ab59ab1101922fcb6e707ef2f61efd07cce5d09094e6bee420b1b96998c7cee96d\n1afc8ec818bef0a479d2b4cac81d40a52cafa27f6d80c42fc23cbaf4141882ab59ab1101922fcb6e707ef2f61efd07cce5d09094e6bee420b1b96998c7cee96d\n5789f474edd5206ededaccfc35e7dd3ed730748125b5395abf802b2601126b19b109a1db67556945bc79bb25e1ab59610599d155070e0e04354f11a6a5d6f3ac\ne78efc663a5547c089f2b3b08973c974c4bfd365eac18b80c68bdb3b1ba4554b54d6b8465a68a3b9aa0bc020621f16efd5b8dd8c7c01ed9ee3ec5544aae465ff\n1afc8ec818bef0a479d2b4cac81d40a52cafa27f6d80c42fc23cbaf4141882ab59ab1101922fcb6e707ef2f61efd07cce5d09094e6bee420b1b96998c7cee96d\n1afc8ec818bef0a479d2b4cac81d40a52cafa27f6d80c42fc23cbaf4141882ab59ab1101922fcb6e707ef2f61efd07cce5d09094e6bee420b1b96998c7cee96d\nfb4e2ad6b7fe6afd2ba06d5c1d79379c5bf10e336a35c89a1aaf408a805171716e0635a5b1d18190131e15b6888510bcb3e3752b050f892a09dbbde60b051495\n5789f474edd5206ededaccfc35e7dd3ed730748125b5395abf802b2601126b19b109a1db67556945bc79bb25e1ab59610599d155070e0e04354f11a6a5d6f3ac\ne78efc663a5547c089f2b3b08973c974c4bfd365eac18b80c68bdb3b1ba4554b54d6b8465a68a3b9aa0bc020621f16efd5b8dd8c7c01ed9ee3ec5544aae465ff\n4f9875a42ba0da8ae3448d2d62b1ff51be672eb1b8a1b0fa5bcd5334c861eff06b5903d672d318fd04e0ef94ddd37eca6d4ad2051a36a0236dc4cc09a5a44358\nec9f272db92d1fa99324115f34cda8b4690ad029c1df36986cf9e1f844d8fdeca8e8e8311620ad24cbbfa12eccb676b979565405c8e2e20a2e4f18fb27c93d76\n"
  },
  {
    "path": "test/default/hash.c",
    "content": "\n#define TEST_NAME \"hash\"\n#include \"cmptest.h\"\n\nstatic unsigned char x[] = \"testing\\n\";\nstatic unsigned char x2[] =\n    \"The Conscience of a Hacker is a small essay written January 8, 1986 by a \"\n    \"computer security hacker who went by the handle of The Mentor, who \"\n    \"belonged to the 2nd generation of Legion of Doom.\";\nstatic unsigned char h[crypto_hash_BYTES];\n\nint\nmain(void)\n{\n    size_t i;\n\n    crypto_hash(h, x, sizeof x - 1U);\n    for (i = 0; i < crypto_hash_BYTES; ++i) {\n        printf(\"%02x\", (unsigned int) h[i]);\n    }\n    printf(\"\\n\");\n    crypto_hash(h, x2, sizeof x2 - 1U);\n    for (i = 0; i < crypto_hash_BYTES; ++i) {\n        printf(\"%02x\", (unsigned int) h[i]);\n    }\n    printf(\"\\n\");\n    crypto_hash_sha256(h, x, sizeof x - 1U);\n    for (i = 0; i < crypto_hash_sha256_BYTES; ++i) {\n        printf(\"%02x\", (unsigned int) h[i]);\n    }\n    printf(\"\\n\");\n    crypto_hash_sha256(h, x2, sizeof x2 - 1U);\n    for (i = 0; i < crypto_hash_sha256_BYTES; ++i) {\n        printf(\"%02x\", (unsigned int) h[i]);\n    }\n    printf(\"\\n\");\n\n    assert(crypto_hash_bytes() > 0U);\n    assert(strcmp(crypto_hash_primitive(), \"sha512\") == 0);\n    assert(crypto_hash_sha256_bytes() > 0U);\n    assert(crypto_hash_sha512_bytes() >= crypto_hash_sha256_bytes());\n    assert(crypto_hash_sha512_bytes() == crypto_hash_bytes());\n    assert(crypto_hash_sha256_statebytes() == sizeof(crypto_hash_sha256_state));\n    assert(crypto_hash_sha512_statebytes() == sizeof(crypto_hash_sha512_state));\n\n    return 0;\n}\n"
  },
  {
    "path": "test/default/hash.exp",
    "content": "24f950aac7b9ea9b3cb728228a0c82b67c39e96b4b344798870d5daee93e3ae5931baae8c7cacfea4b629452c38026a81d138bc7aad1af3ef7bfd5ec646d6c28\na77abe1ccf8f5497e228fbc0acd73a521ededb21b89726684a6ebbc3baa32361aca5a244daa84f24bf19c68baf78e6907625a659b15479eb7bd426fc62aafa73\n12a61f4e173fb3a11c05d6471f74728f76231b4a5fcd9667cef3af87a3ae4dc2\n71cc8123fef8c236e451d3c3ddf1adae9aa6cd9521e7041769d737024900a03a\n"
  },
  {
    "path": "test/default/hash3.c",
    "content": "\n#define TEST_NAME \"hash3\"\n#include \"cmptest.h\"\n\nstatic unsigned char x[] = \"testing\\n\";\nstatic unsigned char h[crypto_hash_BYTES];\n\nint\nmain(void)\n{\n    size_t i;\n\n    crypto_hash(h, x, sizeof x - 1U);\n    for (i = 0; i < crypto_hash_BYTES; ++i) {\n        printf(\"%02x\", (unsigned int) h[i]);\n    }\n    printf(\"\\n\");\n\n    return 0;\n}\n"
  },
  {
    "path": "test/default/hash3.exp",
    "content": "24f950aac7b9ea9b3cb728228a0c82b67c39e96b4b344798870d5daee93e3ae5931baae8c7cacfea4b629452c38026a81d138bc7aad1af3ef7bfd5ec646d6c28\n"
  },
  {
    "path": "test/default/hash_sha3256.c",
    "content": "\n#define TEST_NAME \"hash_sha3256\"\n#include \"cmptest.h\"\n\nint\nmain(void)\n{\n    static const unsigned char msg_abc[] = { 0x61, 0x62, 0x63 };\n\n    static const unsigned char msg_fox[] = {\n        0x54, 0x68, 0x65, 0x20, 0x71, 0x75, 0x69, 0x63, 0x6b, 0x20, 0x62, 0x72,\n        0x6f, 0x77, 0x6e, 0x20, 0x66, 0x6f, 0x78, 0x20, 0x6a, 0x75, 0x6d, 0x70,\n        0x73, 0x20, 0x6f, 0x76, 0x65, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6c,\n        0x61, 0x7a, 0x79, 0x20, 0x64, 0x6f, 0x67\n    };\n\n    static const unsigned char out_empty[32] = {\n        0xa7, 0xff, 0xc6, 0xf8, 0xbf, 0x1e, 0xd7, 0x66, 0x51, 0xc1, 0x47, 0x56,\n        0xa0, 0x61, 0xd6, 0x62, 0xf5, 0x80, 0xff, 0x4d, 0xe4, 0x3b, 0x49, 0xfa,\n        0x82, 0xd8, 0x0a, 0x4b, 0x80, 0xf8, 0x43, 0x4a\n    };\n\n    static const unsigned char out_abc[32] = {\n        0x3a, 0x98, 0x5d, 0xa7, 0x4f, 0xe2, 0x25, 0xb2, 0x04, 0x5c, 0x17, 0x2d,\n        0x6b, 0xd3, 0x90, 0xbd, 0x85, 0x5f, 0x08, 0x6e, 0x3e, 0x9d, 0x52, 0x5b,\n        0x46, 0xbf, 0xe2, 0x45, 0x11, 0x43, 0x15, 0x32\n    };\n\n    static const unsigned char out_fox[32] = {\n        0x69, 0x07, 0x0d, 0xda, 0x01, 0x97, 0x5c, 0x8c, 0x12, 0x0c, 0x3a, 0xad,\n        0xa1, 0xb2, 0x82, 0x39, 0x4e, 0x7f, 0x03, 0x2f, 0xa9, 0xcf, 0x32, 0xf4,\n        0xcb, 0x22, 0x59, 0xa0, 0x89, 0x7d, 0xfc, 0x04\n    };\n\n    unsigned char             out[32];\n    crypto_hash_sha3256_state state;\n    size_t                    i;\n\n    assert(crypto_hash_sha3256_bytes() == 32);\n    assert(crypto_hash_sha3256_statebytes() > 0);\n\n    crypto_hash_sha3256(out, NULL, 0);\n    assert(memcmp(out, out_empty, 32) == 0);\n    printf(\"SHA3-256(\\\"\\\") = \");\n    for (i = 0; i < 32; i++) {\n        printf(\"%02x\", out[i]);\n    }\n    printf(\"\\n\");\n\n    crypto_hash_sha3256(out, msg_abc, 3);\n    assert(memcmp(out, out_abc, 32) == 0);\n    printf(\"SHA3-256(\\\"abc\\\") = \");\n    for (i = 0; i < 32; i++) {\n        printf(\"%02x\", out[i]);\n    }\n    printf(\"\\n\");\n\n    crypto_hash_sha3256(out, msg_fox, 43);\n    assert(memcmp(out, out_fox, 32) == 0);\n    printf(\"SHA3-256(\\\"The quick brown fox...\\\") = \");\n    for (i = 0; i < 32; i++) {\n        printf(\"%02x\", out[i]);\n    }\n    printf(\"\\n\");\n\n    crypto_hash_sha3256_init(&state);\n    crypto_hash_sha3256_update(&state, msg_abc, 3);\n    crypto_hash_sha3256_final(&state, out);\n    assert(memcmp(out, out_abc, 32) == 0);\n    printf(\"Streaming API test passed\\n\");\n\n    crypto_hash_sha3256_init(&state);\n    crypto_hash_sha3256_update(&state, msg_abc, 1);\n    crypto_hash_sha3256_update(&state, msg_abc + 1, 1);\n    crypto_hash_sha3256_update(&state, msg_abc + 2, 1);\n    crypto_hash_sha3256_final(&state, out);\n    assert(memcmp(out, out_abc, 32) == 0);\n    printf(\"Chunked update test passed\\n\");\n\n    {\n        unsigned char msg_rate[136];\n        unsigned char out_rate[32];\n        unsigned char out_rate_stream[32];\n\n        memset(msg_rate, 0xAB, sizeof msg_rate);\n        crypto_hash_sha3256(out_rate, msg_rate, sizeof msg_rate);\n\n        crypto_hash_sha3256_init(&state);\n        crypto_hash_sha3256_update(&state, msg_rate, sizeof msg_rate);\n        crypto_hash_sha3256_final(&state, out_rate_stream);\n\n        assert(memcmp(out_rate, out_rate_stream, 32) == 0);\n        printf(\"Rate boundary test passed\\n\");\n    }\n\n    {\n        unsigned char msg_rate_plus1[137];\n        unsigned char out_rate_plus1[32];\n        unsigned char out_rate_plus1_stream[32];\n\n        memset(msg_rate_plus1, 0xCD, sizeof msg_rate_plus1);\n        crypto_hash_sha3256(out_rate_plus1, msg_rate_plus1, sizeof msg_rate_plus1);\n\n        crypto_hash_sha3256_init(&state);\n        crypto_hash_sha3256_update(&state, msg_rate_plus1, 100);\n        crypto_hash_sha3256_update(&state, msg_rate_plus1 + 100, 37);\n        crypto_hash_sha3256_final(&state, out_rate_plus1_stream);\n\n        assert(memcmp(out_rate_plus1, out_rate_plus1_stream, 32) == 0);\n        printf(\"Rate+1 boundary test passed\\n\");\n    }\n\n    {\n        unsigned char msg_rate_minus1[135];\n        unsigned char out1[32], out2[32];\n\n        memset(msg_rate_minus1, 0xEF, sizeof msg_rate_minus1);\n        crypto_hash_sha3256(out1, msg_rate_minus1, sizeof msg_rate_minus1);\n\n        crypto_hash_sha3256_init(&state);\n        crypto_hash_sha3256_update(&state, msg_rate_minus1, sizeof msg_rate_minus1);\n        crypto_hash_sha3256_final(&state, out2);\n\n        assert(memcmp(out1, out2, 32) == 0);\n        printf(\"Rate-1 boundary test passed\\n\");\n    }\n\n    printf(\"OK\\n\");\n\n    return 0;\n}\n"
  },
  {
    "path": "test/default/hash_sha3256.exp",
    "content": "SHA3-256(\"\") = a7ffc6f8bf1ed76651c14756a061d662f580ff4de43b49fa82d80a4b80f8434a\nSHA3-256(\"abc\") = 3a985da74fe225b2045c172d6bd390bd855f086e3e9d525b46bfe24511431532\nSHA3-256(\"The quick brown fox...\") = 69070dda01975c8c120c3aada1b282394e7f032fa9cf32f4cb2259a0897dfc04\nStreaming API test passed\nChunked update test passed\nRate boundary test passed\nRate+1 boundary test passed\nRate-1 boundary test passed\nOK\n"
  },
  {
    "path": "test/default/hash_sha3512.c",
    "content": "\n#define TEST_NAME \"hash_sha3512\"\n#include \"cmptest.h\"\n\nint\nmain(void)\n{\n    static const unsigned char msg_abc[] = { 0x61, 0x62, 0x63 };\n\n    static const unsigned char msg_fox[] = {\n        0x54, 0x68, 0x65, 0x20, 0x71, 0x75, 0x69, 0x63, 0x6b, 0x20, 0x62, 0x72,\n        0x6f, 0x77, 0x6e, 0x20, 0x66, 0x6f, 0x78, 0x20, 0x6a, 0x75, 0x6d, 0x70,\n        0x73, 0x20, 0x6f, 0x76, 0x65, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6c,\n        0x61, 0x7a, 0x79, 0x20, 0x64, 0x6f, 0x67\n    };\n\n    static const unsigned char out_empty[64] = {\n        0xa6, 0x9f, 0x73, 0xcc, 0xa2, 0x3a, 0x9a, 0xc5, 0xc8, 0xb5, 0x67, 0xdc,\n        0x18, 0x5a, 0x75, 0x6e, 0x97, 0xc9, 0x82, 0x16, 0x4f, 0xe2, 0x58, 0x59,\n        0xe0, 0xd1, 0xdc, 0xc1, 0x47, 0x5c, 0x80, 0xa6, 0x15, 0xb2, 0x12, 0x3a,\n        0xf1, 0xf5, 0xf9, 0x4c, 0x11, 0xe3, 0xe9, 0x40, 0x2c, 0x3a, 0xc5, 0x58,\n        0xf5, 0x00, 0x19, 0x9d, 0x95, 0xb6, 0xd3, 0xe3, 0x01, 0x75, 0x85, 0x86,\n        0x28, 0x1d, 0xcd, 0x26\n    };\n\n    static const unsigned char out_abc[64] = {\n        0xb7, 0x51, 0x85, 0x0b, 0x1a, 0x57, 0x16, 0x8a, 0x56, 0x93, 0xcd, 0x92,\n        0x4b, 0x6b, 0x09, 0x6e, 0x08, 0xf6, 0x21, 0x82, 0x74, 0x44, 0xf7, 0x0d,\n        0x88, 0x4f, 0x5d, 0x02, 0x40, 0xd2, 0x71, 0x2e, 0x10, 0xe1, 0x16, 0xe9,\n        0x19, 0x2a, 0xf3, 0xc9, 0x1a, 0x7e, 0xc5, 0x76, 0x47, 0xe3, 0x93, 0x40,\n        0x57, 0x34, 0x0b, 0x4c, 0xf4, 0x08, 0xd5, 0xa5, 0x65, 0x92, 0xf8, 0x27,\n        0x4e, 0xec, 0x53, 0xf0\n    };\n\n    static const unsigned char out_fox[64] = {\n        0x01, 0xde, 0xdd, 0x5d, 0xe4, 0xef, 0x14, 0x64, 0x24, 0x45, 0xba, 0x5f,\n        0x5b, 0x97, 0xc1, 0x5e, 0x47, 0xb9, 0xad, 0x93, 0x13, 0x26, 0xe4, 0xb0,\n        0x72, 0x7c, 0xd9, 0x4c, 0xef, 0xc4, 0x4f, 0xff, 0x23, 0xf0, 0x7b, 0xf5,\n        0x43, 0x13, 0x99, 0x39, 0xb4, 0x91, 0x28, 0xca, 0xf4, 0x36, 0xdc, 0x1b,\n        0xde, 0xe5, 0x4f, 0xcb, 0x24, 0x02, 0x3a, 0x08, 0xd9, 0x40, 0x3f, 0x9b,\n        0x4b, 0xf0, 0xd4, 0x50\n    };\n\n    unsigned char             out[64];\n    crypto_hash_sha3512_state state;\n    size_t                    i;\n\n    assert(crypto_hash_sha3512_bytes() == 64);\n    assert(crypto_hash_sha3512_statebytes() > 0);\n\n    crypto_hash_sha3512(out, NULL, 0);\n    assert(memcmp(out, out_empty, 64) == 0);\n    printf(\"SHA3-512(\\\"\\\") = \");\n    for (i = 0; i < 64; i++) {\n        printf(\"%02x\", out[i]);\n    }\n    printf(\"\\n\");\n\n    crypto_hash_sha3512(out, msg_abc, 3);\n    assert(memcmp(out, out_abc, 64) == 0);\n    printf(\"SHA3-512(\\\"abc\\\") = \");\n    for (i = 0; i < 64; i++) {\n        printf(\"%02x\", out[i]);\n    }\n    printf(\"\\n\");\n\n    crypto_hash_sha3512(out, msg_fox, 43);\n    assert(memcmp(out, out_fox, 64) == 0);\n    printf(\"SHA3-512(\\\"The quick brown fox...\\\") = \");\n    for (i = 0; i < 64; i++) {\n        printf(\"%02x\", out[i]);\n    }\n    printf(\"\\n\");\n\n    crypto_hash_sha3512_init(&state);\n    crypto_hash_sha3512_update(&state, msg_abc, 3);\n    crypto_hash_sha3512_final(&state, out);\n    assert(memcmp(out, out_abc, 64) == 0);\n    printf(\"Streaming API test passed\\n\");\n\n    crypto_hash_sha3512_init(&state);\n    crypto_hash_sha3512_update(&state, msg_abc, 1);\n    crypto_hash_sha3512_update(&state, msg_abc + 1, 1);\n    crypto_hash_sha3512_update(&state, msg_abc + 2, 1);\n    crypto_hash_sha3512_final(&state, out);\n    assert(memcmp(out, out_abc, 64) == 0);\n    printf(\"Chunked update test passed\\n\");\n\n    {\n        unsigned char msg_rate[72];\n        unsigned char out_rate[64];\n        unsigned char out_rate_stream[64];\n\n        memset(msg_rate, 0xAB, sizeof msg_rate);\n        crypto_hash_sha3512(out_rate, msg_rate, sizeof msg_rate);\n\n        crypto_hash_sha3512_init(&state);\n        crypto_hash_sha3512_update(&state, msg_rate, sizeof msg_rate);\n        crypto_hash_sha3512_final(&state, out_rate_stream);\n\n        assert(memcmp(out_rate, out_rate_stream, 64) == 0);\n        printf(\"Rate boundary test passed\\n\");\n    }\n\n    {\n        unsigned char msg_rate_plus1[73];\n        unsigned char out_rate_plus1[64];\n        unsigned char out_rate_plus1_stream[64];\n\n        memset(msg_rate_plus1, 0xCD, sizeof msg_rate_plus1);\n        crypto_hash_sha3512(out_rate_plus1, msg_rate_plus1, sizeof msg_rate_plus1);\n\n        crypto_hash_sha3512_init(&state);\n        crypto_hash_sha3512_update(&state, msg_rate_plus1, 50);\n        crypto_hash_sha3512_update(&state, msg_rate_plus1 + 50, 23);\n        crypto_hash_sha3512_final(&state, out_rate_plus1_stream);\n\n        assert(memcmp(out_rate_plus1, out_rate_plus1_stream, 64) == 0);\n        printf(\"Rate+1 boundary test passed\\n\");\n    }\n\n    {\n        unsigned char msg_rate_minus1[71];\n        unsigned char out1[64], out2[64];\n\n        memset(msg_rate_minus1, 0xEF, sizeof msg_rate_minus1);\n        crypto_hash_sha3512(out1, msg_rate_minus1, sizeof msg_rate_minus1);\n\n        crypto_hash_sha3512_init(&state);\n        crypto_hash_sha3512_update(&state, msg_rate_minus1, sizeof msg_rate_minus1);\n        crypto_hash_sha3512_final(&state, out2);\n\n        assert(memcmp(out1, out2, 64) == 0);\n        printf(\"Rate-1 boundary test passed\\n\");\n    }\n\n    printf(\"OK\\n\");\n\n    return 0;\n}\n"
  },
  {
    "path": "test/default/hash_sha3512.exp",
    "content": "SHA3-512(\"\") = a69f73cca23a9ac5c8b567dc185a756e97c982164fe25859e0d1dcc1475c80a615b2123af1f5f94c11e3e9402c3ac558f500199d95b6d3e301758586281dcd26\nSHA3-512(\"abc\") = b751850b1a57168a5693cd924b6b096e08f621827444f70d884f5d0240d2712e10e116e9192af3c91a7ec57647e3934057340b4cf408d5a56592f8274eec53f0\nSHA3-512(\"The quick brown fox...\") = 01dedd5de4ef14642445ba5f5b97c15e47b9ad931326e4b0727cd94cefc44fff23f07bf543139939b49128caf436dc1bdee54fcb24023a08d9403f9b4bf0d450\nStreaming API test passed\nChunked update test passed\nRate boundary test passed\nRate+1 boundary test passed\nRate-1 boundary test passed\nOK\n"
  },
  {
    "path": "test/default/index.html.tpl",
    "content": "<!doctype html>\n<html>\n<head>\n<meta name=\"google\" content=\"notranslate\" />\n<style>\nbody {\n  background: white;\n  color: black;  \n}\n.test p {\n  margin: 1px;\n}\n.test {\n  font-family: monospace;\n  white-space: pre;   \n}\n.err {\n  background: red;\n  color: white;\n}\n.passed {\n  background: green;\n  color: white; \n}\n</style>\n</head>\n<body>\n<h1></h1>\n<section class=\"test\" id=\"test-res\"></section>\n<script>\nvar performance;\nif (typeof performance !== 'object') {\n  performance = {\n    mark: function(s) { this[s] = new Date() },\n    measure: function(_t, s1, s2) { this.t = this[s2] - this[s1] },\n    getEntriesByName: function() { return [ { duration: this.t } ] }\n  };\n}\n\nvar Module = { preRun: function() { performance.mark('bench_start') } };\n\nfunction runTest(tname) {\n    var xhr, expected, hn, idx = 0, passed = true;\n\n    function outputReceived(e) {\n        var found = e.data;\n        var p = document.createElement('p');\n        if (found !== expected[idx++]) {\n            p.className = 'err';\n            passed = false;\n        }\n        p.appendChild(document.createTextNode(found));\n        document.getElementById('test-res').appendChild(p);\n        if (idx >= expected.length) {\n            if (passed) {\n                performance.mark('bench_end')\n                performance.measure('bench', 'bench_start', 'bench_end');\n                var duration = Math.round(performance.getEntriesByName('bench')[0].duration);\n                hn.appendChild(document.createTextNode(' - PASSED (time: ' + duration + ' ms)'));\n                hn.className = 'passed';\n            } else {\n                hn.appendChild(document.createTextNode(' - FAILED'));\n                hn.className = 'err';\n            }\n        }        \n    }\n    \n    hn = document.getElementsByTagName('h1')[0];\n    hn.appendChild(document.createTextNode('Test: ' + tname));\n\n    try {\n        xhr = new ActiveXObject('Microsoft.XMLHTTP');\n    } catch (e) {\n        xhr = new XMLHttpRequest();\n    }\n    xhr.open('GET', tname + '.exp');\n    xhr.onreadystatechange = function() {\n        if (xhr.readyState != 4 ||\n            (xhr.status != 200 && xhr.status != 302 && xhr.status != 0)) {\n            return;\n        }\n        expected = xhr.responseText.split('\\n');\n        if (expected.length > 0 && expected[expected.length - 1] === '') {\n            expected.pop();\n        }\n        expected.push('--- SUCCESS ---');\n        window.addEventListener('test-output', outputReceived, false);\n        var s = document.getElementsByTagName('script')[0];\n        var st = document.createElement('script');\n        st.src = tname + '.js';\n        s.parentNode.insertBefore(st, s);\n    }\n    xhr.send(null);\n}\nrunTest('{{tname}}');\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "test/default/ipcrypt.c",
    "content": "#define TEST_NAME \"ipcrypt\"\n#include \"cmptest.h\"\n\nstatic const unsigned char ipv4_mapped_prefix[12] = { 0U, 0U, 0U, 0U, 0U,    0U,\n                                                      0U, 0U, 0U, 0U, 0xffU, 0xffU };\n\nstatic int\ncheck_expected(const char *test_name, const unsigned char *actual, const char *expected_hex,\n               size_t len)\n{\n    unsigned char expected[64];\n    char          actual_hex[129];\n\n    sodium_hex2bin(expected, sizeof expected, expected_hex, strlen(expected_hex), NULL, NULL, NULL);\n    if (memcmp(actual, expected, len) != 0) {\n        sodium_bin2hex(actual_hex, sizeof actual_hex, actual, len);\n        printf(\"FAILED %s: expected %s, got %s\\n\", test_name, expected_hex, actual_hex);\n        return 1;\n    }\n    printf(\"OK: %s\\n\", test_name);\n    return 0;\n}\n\nstatic void\nflip_bit_msb(unsigned char buf[16], unsigned int bit_index)\n{\n    unsigned int byte_index;\n    unsigned int bit_in_byte;\n\n    if (bit_index >= 128U) {\n        return;\n    }\n    byte_index  = bit_index / 8U;\n    bit_in_byte = 7U - (bit_index % 8U);\n    buf[byte_index] ^= (unsigned char) (1U << bit_in_byte);\n}\n\nstatic int\nprefix_equal_msb(const unsigned char *a, const unsigned char *b, unsigned int prefix_len_bits)\n{\n    unsigned int full_bytes = prefix_len_bits / 8U;\n    unsigned int rem_bits   = prefix_len_bits % 8U;\n\n    if (prefix_len_bits == 0U) {\n        return 1;\n    }\n    if (memcmp(a, b, full_bytes) != 0) {\n        return 0;\n    }\n    if (rem_bits == 0U) {\n        return 1;\n    }\n    return (a[full_bytes] & (unsigned char) (0xffU << (8U - rem_bits))) ==\n           (b[full_bytes] & (unsigned char) (0xffU << (8U - rem_bits)));\n}\n\nint\nmain(void)\n{\n    unsigned char key[crypto_ipcrypt_KEYBYTES];\n    unsigned char nd_key[crypto_ipcrypt_ND_KEYBYTES];\n    unsigned char ndx_key[crypto_ipcrypt_NDX_KEYBYTES];\n    unsigned char pfx_key[crypto_ipcrypt_PFX_KEYBYTES];\n    unsigned char input[crypto_ipcrypt_BYTES];\n    unsigned char output[crypto_ipcrypt_BYTES];\n    unsigned char nd_output[crypto_ipcrypt_ND_OUTPUTBYTES];\n    unsigned char nd_output2[crypto_ipcrypt_ND_OUTPUTBYTES];\n    unsigned char ndx_output[crypto_ipcrypt_NDX_OUTPUTBYTES];\n    unsigned char ndx_output2[crypto_ipcrypt_NDX_OUTPUTBYTES];\n    unsigned char pfx_output[crypto_ipcrypt_PFX_BYTES];\n    unsigned char tweak_nd[crypto_ipcrypt_ND_TWEAKBYTES];\n    unsigned char tweak_nd2[crypto_ipcrypt_ND_TWEAKBYTES];\n    unsigned char tweak_ndx[crypto_ipcrypt_NDX_TWEAKBYTES];\n    unsigned char tweak_ndx2[crypto_ipcrypt_NDX_TWEAKBYTES];\n    unsigned char decrypted[crypto_ipcrypt_BYTES];\n    unsigned char encrypted1[crypto_ipcrypt_PFX_BYTES];\n    unsigned char encrypted2[crypto_ipcrypt_PFX_BYTES];\n    size_t        i;\n    unsigned int  prefix_len_bits;\n\n    printf(\"crypto_ipcrypt_BYTES: %zu\\n\", crypto_ipcrypt_bytes());\n    printf(\"crypto_ipcrypt_KEYBYTES: %zu\\n\", crypto_ipcrypt_keybytes());\n    printf(\"crypto_ipcrypt_ND_KEYBYTES: %zu\\n\", crypto_ipcrypt_nd_keybytes());\n    printf(\"crypto_ipcrypt_ND_TWEAKBYTES: %zu\\n\", crypto_ipcrypt_nd_tweakbytes());\n    printf(\"crypto_ipcrypt_ND_INPUTBYTES: %zu\\n\", crypto_ipcrypt_nd_inputbytes());\n    printf(\"crypto_ipcrypt_ND_OUTPUTBYTES: %zu\\n\", crypto_ipcrypt_nd_outputbytes());\n    printf(\"crypto_ipcrypt_NDX_KEYBYTES: %zu\\n\", crypto_ipcrypt_ndx_keybytes());\n    printf(\"crypto_ipcrypt_NDX_TWEAKBYTES: %zu\\n\", crypto_ipcrypt_ndx_tweakbytes());\n    printf(\"crypto_ipcrypt_NDX_INPUTBYTES: %zu\\n\", crypto_ipcrypt_ndx_inputbytes());\n    printf(\"crypto_ipcrypt_NDX_OUTPUTBYTES: %zu\\n\", crypto_ipcrypt_ndx_outputbytes());\n    printf(\"crypto_ipcrypt_PFX_KEYBYTES: %zu\\n\", crypto_ipcrypt_pfx_keybytes());\n    printf(\"crypto_ipcrypt_PFX_BYTES: %zu\\n\", crypto_ipcrypt_pfx_bytes());\n\n    printf(\"\\nipcrypt-deterministic test vectors\\n\");\n\n    sodium_hex2bin(key, sizeof key, \"0123456789abcdeffedcba9876543210\", 32, NULL, NULL, NULL);\n    memset(input, 0, sizeof input);\n    input[10] = 0xff;\n    input[11] = 0xff;\n\n    crypto_ipcrypt_encrypt(output, input, key);\n    if (check_expected(\"deterministic vector 1 (0.0.0.0)\", output,\n                       \"bde96789d353824cd7c6f58a6bd226eb\", 16) != 0) {\n        return 1;\n    }\n    crypto_ipcrypt_decrypt(decrypted, output, key);\n    if (memcmp(input, decrypted, sizeof input) != 0) {\n        printf(\"FAILED: deterministic vector 1 round-trip\\n\");\n        return 1;\n    }\n\n    sodium_hex2bin(key, sizeof key, \"1032547698badcfeefcdab8967452301\", 32, NULL, NULL, NULL);\n    memset(input, 0, sizeof input);\n    input[10] = 0xff;\n    input[11] = 0xff;\n    input[12] = 0xff;\n    input[13] = 0xff;\n    input[14] = 0xff;\n    input[15] = 0xff;\n\n    crypto_ipcrypt_encrypt(output, input, key);\n    if (check_expected(\"deterministic vector 2 (255.255.255.255)\", output,\n                       \"aed292f6ea2358c348fd08b874e845d8\", 16) != 0) {\n        return 1;\n    }\n    crypto_ipcrypt_decrypt(decrypted, output, key);\n    if (memcmp(input, decrypted, sizeof input) != 0) {\n        printf(\"FAILED: deterministic vector 2 round-trip\\n\");\n        return 1;\n    }\n\n    sodium_hex2bin(key, sizeof key, \"2b7e151628aed2a6abf7158809cf4f3c\", 32, NULL, NULL, NULL);\n    memset(input, 0, sizeof input);\n    input[10] = 0xff;\n    input[11] = 0xff;\n    input[12] = 192;\n    input[13] = 0;\n    input[14] = 2;\n    input[15] = 1;\n\n    crypto_ipcrypt_encrypt(output, input, key);\n    if (check_expected(\"deterministic vector 3 (192.0.2.1)\", output,\n                       \"1dbdc1b9fff175867d0b67b4e76e4777\", 16) != 0) {\n        return 1;\n    }\n    crypto_ipcrypt_decrypt(decrypted, output, key);\n    if (memcmp(input, decrypted, sizeof input) != 0) {\n        printf(\"FAILED: deterministic vector 3 round-trip\\n\");\n        return 1;\n    }\n\n    printf(\"\\nipcrypt-nd test vectors\\n\");\n\n    sodium_hex2bin(key, sizeof key, \"0123456789abcdeffedcba9876543210\", 32, NULL, NULL, NULL);\n    sodium_hex2bin(tweak_nd, sizeof tweak_nd, \"08e0c289bff23b7c\", 16, NULL, NULL, NULL);\n    memset(input, 0, sizeof input);\n    input[10] = 0xff;\n    input[11] = 0xff;\n\n    crypto_ipcrypt_nd_encrypt(nd_output, input, tweak_nd, key);\n    if (check_expected(\"nd vector 1 (0.0.0.0)\", nd_output,\n                       \"08e0c289bff23b7cb349aadfe3bcef56221c384c7c217b16\", 24) != 0) {\n        return 1;\n    }\n    crypto_ipcrypt_nd_decrypt(decrypted, nd_output, key);\n    if (memcmp(input, decrypted, sizeof input) != 0) {\n        printf(\"FAILED: nd vector 1 round-trip\\n\");\n        return 1;\n    }\n\n    sodium_hex2bin(key, sizeof key, \"1032547698badcfeefcdab8967452301\", 32, NULL, NULL, NULL);\n    sodium_hex2bin(tweak_nd, sizeof tweak_nd, \"21bd1834bc088cd2\", 16, NULL, NULL, NULL);\n    memset(input, 0, sizeof input);\n    input[10] = 0xff;\n    input[11] = 0xff;\n    input[12] = 192;\n    input[13] = 0;\n    input[14] = 2;\n    input[15] = 1;\n\n    crypto_ipcrypt_nd_encrypt(nd_output, input, tweak_nd, key);\n    if (check_expected(\"nd vector 2 (192.0.2.1)\", nd_output,\n                       \"21bd1834bc088cd2e5e1fe55f95876e639faae2594a0caad\", 24) != 0) {\n        return 1;\n    }\n    crypto_ipcrypt_nd_decrypt(decrypted, nd_output, key);\n    if (memcmp(input, decrypted, sizeof input) != 0) {\n        printf(\"FAILED: nd vector 2 round-trip\\n\");\n        return 1;\n    }\n\n    sodium_hex2bin(key, sizeof key, \"2b7e151628aed2a6abf7158809cf4f3c\", 32, NULL, NULL, NULL);\n    sodium_hex2bin(tweak_nd, sizeof tweak_nd, \"b4ecbe30b70898d7\", 16, NULL, NULL, NULL);\n    memset(input, 0, sizeof input);\n    input[0]  = 0x20;\n    input[1]  = 0x01;\n    input[2]  = 0x0d;\n    input[3]  = 0xb8;\n    input[15] = 0x01;\n\n    crypto_ipcrypt_nd_encrypt(nd_output, input, tweak_nd, key);\n    if (check_expected(\"nd vector 3 (2001:db8::1)\", nd_output,\n                       \"b4ecbe30b70898d7553ac8974d1b4250eafc4b0aa1f80c96\", 24) != 0) {\n        return 1;\n    }\n    crypto_ipcrypt_nd_decrypt(decrypted, nd_output, key);\n    if (memcmp(input, decrypted, sizeof input) != 0) {\n        printf(\"FAILED: nd vector 3 round-trip\\n\");\n        return 1;\n    }\n\n    printf(\"\\nipcrypt-ndx test vectors\\n\");\n\n    sodium_hex2bin(ndx_key, sizeof ndx_key,\n                   \"0123456789abcdeffedcba98765432101032547698badcfeefcdab8967452301\", 64, NULL,\n                   NULL, NULL);\n    sodium_hex2bin(tweak_ndx, sizeof tweak_ndx, \"21bd1834bc088cd2b4ecbe30b70898d7\", 32, NULL, NULL,\n                   NULL);\n    memset(input, 0, sizeof input);\n    input[10] = 0xff;\n    input[11] = 0xff;\n\n    crypto_ipcrypt_ndx_encrypt(ndx_output, input, tweak_ndx, ndx_key);\n    if (check_expected(\"ndx vector 1 (0.0.0.0)\", ndx_output,\n                       \"21bd1834bc088cd2b4ecbe30b70898d782db0d4125fdace61db35b8339f20ee5\",\n                       32) != 0) {\n        return 1;\n    }\n    crypto_ipcrypt_ndx_decrypt(decrypted, ndx_output, ndx_key);\n    if (memcmp(input, decrypted, sizeof input) != 0) {\n        printf(\"FAILED: ndx vector 1 round-trip\\n\");\n        return 1;\n    }\n\n    sodium_hex2bin(ndx_key, sizeof ndx_key,\n                   \"1032547698badcfeefcdab89674523010123456789abcdeffedcba9876543210\", 64, NULL,\n                   NULL, NULL);\n    sodium_hex2bin(tweak_ndx, sizeof tweak_ndx, \"08e0c289bff23b7cb4ecbe30b70898d7\", 32, NULL, NULL,\n                   NULL);\n    memset(input, 0, sizeof input);\n    input[10] = 0xff;\n    input[11] = 0xff;\n    input[12] = 192;\n    input[13] = 0;\n    input[14] = 2;\n    input[15] = 1;\n\n    crypto_ipcrypt_ndx_encrypt(ndx_output, input, tweak_ndx, ndx_key);\n    if (check_expected(\"ndx vector 2 (192.0.2.1)\", ndx_output,\n                       \"08e0c289bff23b7cb4ecbe30b70898d7766a533392a69edf1ad0d3ce362ba98a\",\n                       32) != 0) {\n        return 1;\n    }\n    crypto_ipcrypt_ndx_decrypt(decrypted, ndx_output, ndx_key);\n    if (memcmp(input, decrypted, sizeof input) != 0) {\n        printf(\"FAILED: ndx vector 2 round-trip\\n\");\n        return 1;\n    }\n\n    sodium_hex2bin(ndx_key, sizeof ndx_key,\n                   \"2b7e151628aed2a6abf7158809cf4f3c3c4fcf098815f7aba6d2ae2816157e2b\", 64, NULL,\n                   NULL, NULL);\n    sodium_hex2bin(tweak_ndx, sizeof tweak_ndx, \"21bd1834bc088cd2b4ecbe30b70898d7\", 32, NULL, NULL,\n                   NULL);\n    memset(input, 0, sizeof input);\n    input[0]  = 0x20;\n    input[1]  = 0x01;\n    input[2]  = 0x0d;\n    input[3]  = 0xb8;\n    input[15] = 0x01;\n\n    crypto_ipcrypt_ndx_encrypt(ndx_output, input, tweak_ndx, ndx_key);\n    if (check_expected(\"ndx vector 3 (2001:db8::1)\", ndx_output,\n                       \"21bd1834bc088cd2b4ecbe30b70898d76089c7e05ae30c2d10ca149870a263e4\",\n                       32) != 0) {\n        return 1;\n    }\n    crypto_ipcrypt_ndx_decrypt(decrypted, ndx_output, ndx_key);\n    if (memcmp(input, decrypted, sizeof input) != 0) {\n        printf(\"FAILED: ndx vector 3 round-trip\\n\");\n        return 1;\n    }\n\n    printf(\"\\nipcrypt-pfx test vectors\\n\");\n\n    sodium_hex2bin(pfx_key, sizeof pfx_key,\n                   \"0123456789abcdeffedcba98765432101032547698badcfeefcdab8967452301\", 64, NULL,\n                   NULL, NULL);\n    memset(input, 0, sizeof input);\n    input[10] = 0xff;\n    input[11] = 0xff;\n\n    crypto_ipcrypt_pfx_encrypt(pfx_output, input, pfx_key);\n    if (check_expected(\"pfx vector 1 (0.0.0.0)\", pfx_output, \"00000000000000000000ffff97529b86\",\n                       16) != 0) {\n        return 1;\n    }\n    crypto_ipcrypt_pfx_decrypt(decrypted, pfx_output, pfx_key);\n    if (memcmp(input, decrypted, sizeof input) != 0) {\n        printf(\"FAILED: pfx vector 1 round-trip\\n\");\n        return 1;\n    }\n\n    memset(input, 0, sizeof input);\n    input[10] = 0xff;\n    input[11] = 0xff;\n    input[12] = 255;\n    input[13] = 255;\n    input[14] = 255;\n    input[15] = 255;\n\n    crypto_ipcrypt_pfx_encrypt(pfx_output, input, pfx_key);\n    if (check_expected(\"pfx vector 2 (255.255.255.255)\", pfx_output,\n                       \"00000000000000000000ffff5eb9a959\", 16) != 0) {\n        return 1;\n    }\n    crypto_ipcrypt_pfx_decrypt(decrypted, pfx_output, pfx_key);\n    if (memcmp(input, decrypted, sizeof input) != 0) {\n        printf(\"FAILED: pfx vector 2 round-trip\\n\");\n        return 1;\n    }\n\n    memset(input, 0, sizeof input);\n    input[10] = 0xff;\n    input[11] = 0xff;\n    input[12] = 192;\n    input[13] = 0;\n    input[14] = 2;\n    input[15] = 1;\n\n    crypto_ipcrypt_pfx_encrypt(pfx_output, input, pfx_key);\n    if (check_expected(\"pfx vector 3 (192.0.2.1)\", pfx_output, \"00000000000000000000ffff64734883\",\n                       16) != 0) {\n        return 1;\n    }\n    crypto_ipcrypt_pfx_decrypt(decrypted, pfx_output, pfx_key);\n    if (memcmp(input, decrypted, sizeof input) != 0) {\n        printf(\"FAILED: pfx vector 3 round-trip\\n\");\n        return 1;\n    }\n\n    memset(input, 0, sizeof input);\n    input[0]  = 0x20;\n    input[1]  = 0x01;\n    input[2]  = 0x0d;\n    input[3]  = 0xb8;\n    input[15] = 0x01;\n\n    crypto_ipcrypt_pfx_encrypt(pfx_output, input, pfx_key);\n    if (check_expected(\"pfx vector 4 (2001:db8::1)\", pfx_output, \"c1805dd42587352430abfa656ab60f88\",\n                       16) != 0) {\n        return 1;\n    }\n    crypto_ipcrypt_pfx_decrypt(decrypted, pfx_output, pfx_key);\n    if (memcmp(input, decrypted, sizeof input) != 0) {\n        printf(\"FAILED: pfx vector 4 round-trip\\n\");\n        return 1;\n    }\n\n    printf(\"\\nipcrypt-pfx prefix preservation\\n\");\n\n    sodium_hex2bin(pfx_key, sizeof pfx_key,\n                   \"2b7e151628aed2a6abf7158809cf4f3ca9f5ba40db214c3798f2e1c23456789a\", 64, NULL,\n                   NULL, NULL);\n\n    memset(input, 0, sizeof input);\n    input[10] = 0xff;\n    input[11] = 0xff;\n    input[12] = 10;\n    input[13] = 0;\n    input[14] = 0;\n    input[15] = 47;\n\n    crypto_ipcrypt_pfx_encrypt(pfx_output, input, pfx_key);\n    if (check_expected(\"pfx /24 test (10.0.0.47)\", pfx_output, \"00000000000000000000ffff13d6d2f4\",\n                       16) != 0) {\n        return 1;\n    }\n\n    input[15] = 129;\n    crypto_ipcrypt_pfx_encrypt(encrypted1, input, pfx_key);\n    if (check_expected(\"pfx /24 test (10.0.0.129)\", encrypted1, \"00000000000000000000ffff13d6d250\",\n                       16) != 0) {\n        return 1;\n    }\n\n    input[15] = 234;\n    crypto_ipcrypt_pfx_encrypt(encrypted2, input, pfx_key);\n    if (check_expected(\"pfx /24 test (10.0.0.234)\", encrypted2, \"00000000000000000000ffff13d6d21e\",\n                       16) != 0) {\n        return 1;\n    }\n\n    if (memcmp(pfx_output + 12, encrypted1 + 12, 3) != 0 ||\n        memcmp(pfx_output + 12, encrypted2 + 12, 3) != 0) {\n        printf(\"FAILED: IPv4 /24 prefix not preserved\\n\");\n        return 1;\n    }\n    printf(\"OK: IPv4 /24 prefix preserved for 10.0.0.x\\n\");\n\n    memset(input, 0, sizeof input);\n    input[10] = 0xff;\n    input[11] = 0xff;\n    input[12] = 172;\n    input[13] = 16;\n    input[14] = 5;\n    input[15] = 193;\n\n    crypto_ipcrypt_pfx_encrypt(pfx_output, input, pfx_key);\n    if (check_expected(\"pfx /16 test (172.16.5.193)\", pfx_output,\n                       \"00000000000000000000ffffd24ee588\", 16) != 0) {\n        return 1;\n    }\n\n    input[14] = 97;\n    input[15] = 42;\n    crypto_ipcrypt_pfx_encrypt(encrypted1, input, pfx_key);\n    if (check_expected(\"pfx /16 test (172.16.97.42)\", encrypted1,\n                       \"00000000000000000000ffffd24eb3f1\", 16) != 0) {\n        return 1;\n    }\n\n    input[14] = 248;\n    input[15] = 177;\n    crypto_ipcrypt_pfx_encrypt(encrypted2, input, pfx_key);\n    if (check_expected(\"pfx /16 test (172.16.248.177)\", encrypted2,\n                       \"00000000000000000000ffffd24e79d7\", 16) != 0) {\n        return 1;\n    }\n\n    if (memcmp(pfx_output + 12, encrypted1 + 12, 2) != 0 ||\n        memcmp(pfx_output + 12, encrypted2 + 12, 2) != 0) {\n        printf(\"FAILED: IPv4 /16 prefix not preserved\\n\");\n        return 1;\n    }\n    printf(\"OK: IPv4 /16 prefix preserved for 172.16.x.x\\n\");\n\n    if (memcmp(pfx_output, ipv4_mapped_prefix, 12) != 0 ||\n        memcmp(encrypted1, ipv4_mapped_prefix, 12) != 0 ||\n        memcmp(encrypted2, ipv4_mapped_prefix, 12) != 0) {\n        printf(\"FAILED: IPv4-mapped prefix not preserved in output\\n\");\n        return 1;\n    }\n    printf(\"OK: IPv4-mapped prefix preserved in output\\n\");\n\n    /* 2001:db8::a5c9:4e2f:bb91:5a7d */\n    memset(input, 0, sizeof input);\n    input[0]  = 0x20;\n    input[1]  = 0x01;\n    input[2]  = 0x0d;\n    input[3]  = 0xb8;\n    input[8]  = 0xa5;\n    input[9]  = 0xc9;\n    input[10] = 0x4e;\n    input[11] = 0x2f;\n    input[12] = 0xbb;\n    input[13] = 0x91;\n    input[14] = 0x5a;\n    input[15] = 0x7d;\n\n    crypto_ipcrypt_pfx_encrypt(pfx_output, input, pfx_key);\n    if (check_expected(\"pfx /64 test (2001:db8::a5c9:4e2f:bb91:5a7d)\", pfx_output,\n                       \"7cec702c12430f7019560125b9bd1aba\", 16) != 0) {\n        return 1;\n    }\n\n    /* 2001:db8::7234:d8f1:3c6e:9a52 */\n    memset(input, 0, sizeof input);\n    input[0]  = 0x20;\n    input[1]  = 0x01;\n    input[2]  = 0x0d;\n    input[3]  = 0xb8;\n    input[8]  = 0x72;\n    input[9]  = 0x34;\n    input[10] = 0xd8;\n    input[11] = 0xf1;\n    input[12] = 0x3c;\n    input[13] = 0x6e;\n    input[14] = 0x9a;\n    input[15] = 0x52;\n\n    crypto_ipcrypt_pfx_encrypt(encrypted1, input, pfx_key);\n    if (check_expected(\"pfx /64 test (2001:db8::7234:d8f1:3c6e:9a52)\", encrypted1,\n                       \"7cec702c12430f70a3ef0c8e95c1cd0d\", 16) != 0) {\n        return 1;\n    }\n\n    /* 2001:db8::f1e0:937b:26d4:8c1a */\n    memset(input, 0, sizeof input);\n    input[0]  = 0x20;\n    input[1]  = 0x01;\n    input[2]  = 0x0d;\n    input[3]  = 0xb8;\n    input[8]  = 0xf1;\n    input[9]  = 0xe0;\n    input[10] = 0x93;\n    input[11] = 0x7b;\n    input[12] = 0x26;\n    input[13] = 0xd4;\n    input[14] = 0x8c;\n    input[15] = 0x1a;\n\n    crypto_ipcrypt_pfx_encrypt(encrypted2, input, pfx_key);\n    if (check_expected(\"pfx /64 test (2001:db8::f1e0:937b:26d4:8c1a)\", encrypted2,\n                       \"7cec702c12430f70443c0c8e6a62b64d\", 16) != 0) {\n        return 1;\n    }\n\n    if (memcmp(pfx_output, encrypted1, 8) != 0 || memcmp(pfx_output, encrypted2, 8) != 0) {\n        printf(\"FAILED: IPv6 /64 prefix not preserved\\n\");\n        return 1;\n    }\n    printf(\"OK: IPv6 /64 prefix preserved for 2001:db8::/64\\n\");\n\n    /* 2001:db8:3a5c:0:e7d1:4b9f:2c8a:f673 */\n    memset(input, 0, sizeof input);\n    input[0]  = 0x20;\n    input[1]  = 0x01;\n    input[2]  = 0x0d;\n    input[3]  = 0xb8;\n    input[4]  = 0x3a;\n    input[5]  = 0x5c;\n    input[8]  = 0xe7;\n    input[9]  = 0xd1;\n    input[10] = 0x4b;\n    input[11] = 0x9f;\n    input[12] = 0x2c;\n    input[13] = 0x8a;\n    input[14] = 0xf6;\n    input[15] = 0x73;\n\n    crypto_ipcrypt_pfx_encrypt(pfx_output, input, pfx_key);\n    if (check_expected(\"pfx /32 test (2001:db8:3a5c:0:e7d1:4b9f:2c8a:f673)\", pfx_output,\n                       \"7cec702c35030befe61696bdbe33a9b9\", 16) != 0) {\n        return 1;\n    }\n\n    /* 2001:db8:9f27:0:b4e2:7a3d:5f91:c8e6 */\n    memset(input, 0, sizeof input);\n    input[0]  = 0x20;\n    input[1]  = 0x01;\n    input[2]  = 0x0d;\n    input[3]  = 0xb8;\n    input[4]  = 0x9f;\n    input[5]  = 0x27;\n    input[8]  = 0xb4;\n    input[9]  = 0xe2;\n    input[10] = 0x7a;\n    input[11] = 0x3d;\n    input[12] = 0x5f;\n    input[13] = 0x91;\n    input[14] = 0xc8;\n    input[15] = 0xe6;\n\n    crypto_ipcrypt_pfx_encrypt(encrypted1, input, pfx_key);\n    if (check_expected(\"pfx /32 test (2001:db8:9f27:0:b4e2:7a3d:5f91:c8e6)\", encrypted1,\n                       \"7cec702ca504b74e194a3d90b0472d1a\", 16) != 0) {\n        return 1;\n    }\n\n    /* 2001:db8:d8b4:0:193c:a5e7:8b2f:46d1 */\n    memset(input, 0, sizeof input);\n    input[0]  = 0x20;\n    input[1]  = 0x01;\n    input[2]  = 0x0d;\n    input[3]  = 0xb8;\n    input[4]  = 0xd8;\n    input[5]  = 0xb4;\n    input[8]  = 0x19;\n    input[9]  = 0x3c;\n    input[10] = 0xa5;\n    input[11] = 0xe7;\n    input[12] = 0x8b;\n    input[13] = 0x2f;\n    input[14] = 0x46;\n    input[15] = 0xd1;\n\n    crypto_ipcrypt_pfx_encrypt(encrypted2, input, pfx_key);\n    if (check_expected(\"pfx /32 test (2001:db8:d8b4:0:193c:a5e7:8b2f:46d1)\", encrypted2,\n                       \"7cec702cf840aa6701b8e84fac9d77fb\", 16) != 0) {\n        return 1;\n    }\n\n    if (memcmp(pfx_output, encrypted1, 4) != 0 || memcmp(pfx_output, encrypted2, 4) != 0) {\n        printf(\"FAILED: IPv6 /32 prefix not preserved\\n\");\n        return 1;\n    }\n    printf(\"OK: IPv6 /32 prefix preserved for 2001:db8::/32\\n\");\n\n    printf(\"\\nsystematic prefix-length coverage\\n\");\n\n    memset(pfx_key, 0x6a, sizeof pfx_key);\n    for (prefix_len_bits = 0; prefix_len_bits <= 128U; prefix_len_bits++) {\n        unsigned char in1[16];\n        unsigned char in2[16];\n        unsigned char out1[16];\n        unsigned char out2[16];\n\n        randombytes_buf(in1, sizeof in1);\n        in1[0] = 0x20;\n        in1[1] = 0x01;\n        memcpy(in2, in1, sizeof in1);\n        flip_bit_msb(in2, prefix_len_bits);\n        crypto_ipcrypt_pfx_encrypt(out1, in1, pfx_key);\n        crypto_ipcrypt_pfx_encrypt(out2, in2, pfx_key);\n        if (prefix_equal_msb(out1, out2, prefix_len_bits) == 0) {\n            printf(\"FAILED: IPv6 prefix length %u\\n\", prefix_len_bits);\n            return 1;\n        }\n    }\n    printf(\"OK: IPv6 prefix preservation for /0..128\\n\");\n\n    for (prefix_len_bits = 0; prefix_len_bits <= 32U; prefix_len_bits++) {\n        unsigned char in1[16];\n        unsigned char in2[16];\n        unsigned char out1[16];\n        unsigned char out2[16];\n\n        memset(in1, 0, sizeof in1);\n        memcpy(in1, ipv4_mapped_prefix, 12);\n        randombytes_buf(in1 + 12, 4U);\n        memcpy(in2, in1, sizeof in1);\n        flip_bit_msb(in2, 96U + prefix_len_bits);\n        crypto_ipcrypt_pfx_encrypt(out1, in1, pfx_key);\n        crypto_ipcrypt_pfx_encrypt(out2, in2, pfx_key);\n        if (prefix_equal_msb(out1, out2, 96U + prefix_len_bits) == 0) {\n            printf(\"FAILED: IPv4-mapped prefix length %u\\n\", prefix_len_bits);\n            return 1;\n        }\n    }\n    printf(\"OK: IPv4-mapped prefix preservation for /0..32\\n\");\n\n    printf(\"\\nfunctional tests\\n\");\n\n    crypto_ipcrypt_keygen(key);\n    crypto_ipcrypt_nd_keygen(nd_key);\n    crypto_ipcrypt_ndx_keygen(ndx_key);\n    crypto_ipcrypt_pfx_keygen(pfx_key);\n    printf(\"OK: Key generation functions\\n\");\n\n    memset(key, 0x55, sizeof key);\n    memset(input, 0xaa, sizeof input);\n    crypto_ipcrypt_encrypt(output, input, key);\n    memcpy(decrypted, input, sizeof input);\n    crypto_ipcrypt_encrypt(decrypted, decrypted, key);\n    if (memcmp(output, decrypted, sizeof output) != 0) {\n        printf(\"FAILED: In-place encryption differs\\n\");\n        return 1;\n    }\n    crypto_ipcrypt_decrypt(decrypted, decrypted, key);\n    if (memcmp(input, decrypted, sizeof input) != 0) {\n        printf(\"FAILED: In-place round-trip\\n\");\n        return 1;\n    }\n    printf(\"OK: In-place encryption/decryption\\n\");\n\n    crypto_ipcrypt_encrypt(output, input, key);\n    crypto_ipcrypt_encrypt(decrypted, input, key);\n    if (memcmp(output, decrypted, sizeof output) != 0) {\n        printf(\"FAILED: Deterministic encryption\\n\");\n        return 1;\n    }\n    printf(\"OK: Deterministic encryption\\n\");\n\n    memset(key, 0x42, sizeof key);\n    for (i = 0; i < 4; i++) {\n        memset(input, 0, sizeof input);\n        input[10] = 0xff;\n        input[11] = 0xff;\n        input[15] = (unsigned char) i;\n        crypto_ipcrypt_encrypt(output, input, key);\n        if (i > 0) {\n            if (memcmp(output, decrypted, sizeof output) == 0) {\n                printf(\"FAILED: Different inputs produced same output\\n\");\n                return 1;\n            }\n        }\n        memcpy(decrypted, output, sizeof output);\n    }\n    printf(\"OK: Different inputs produce different outputs\\n\");\n\n    printf(\"\\nedge case tests\\n\");\n\n    memset(key, 0x11, sizeof key);\n    memset(input, 0, sizeof input);\n    input[10] = 0xff;\n    input[11] = 0xff;\n    memset(tweak_nd, 0, sizeof tweak_nd);\n    memset(tweak_nd2, 0, sizeof tweak_nd2);\n    tweak_nd2[sizeof tweak_nd2 - 1] = 1U;\n    crypto_ipcrypt_nd_encrypt(nd_output, input, tweak_nd, key);\n    crypto_ipcrypt_nd_encrypt(nd_output2, input, tweak_nd2, key);\n    if (memcmp(nd_output, nd_output2, sizeof nd_output) == 0) {\n        printf(\"FAILED: nd tweak change did not affect output\\n\");\n        return 1;\n    }\n    printf(\"OK: nd tweak changes output\\n\");\n\n    memset(ndx_key, 0x22, 16);\n    memset(ndx_key + 16, 0x33, 16);\n    memset(tweak_ndx, 0, sizeof tweak_ndx);\n    memset(tweak_ndx2, 0, sizeof tweak_ndx2);\n    tweak_ndx2[0] = 1U;\n    crypto_ipcrypt_ndx_encrypt(ndx_output, input, tweak_ndx, ndx_key);\n    crypto_ipcrypt_ndx_encrypt(ndx_output2, input, tweak_ndx2, ndx_key);\n    if (memcmp(ndx_output, ndx_output2, sizeof ndx_output) == 0) {\n        printf(\"FAILED: ndx tweak change did not affect output\\n\");\n        return 1;\n    }\n    printf(\"OK: ndx tweak changes output\\n\");\n\n    memset(ndx_key, 0x44, 16);\n    memcpy(ndx_key + 16, ndx_key, 16);\n    memset(input, 0xaa, sizeof input);\n    memset(tweak_ndx, 0x5a, sizeof tweak_ndx);\n    crypto_ipcrypt_ndx_encrypt(ndx_output, input, tweak_ndx, ndx_key);\n    crypto_ipcrypt_ndx_decrypt(decrypted, ndx_output, ndx_key);\n    if (memcmp(input, decrypted, sizeof input) != 0) {\n        printf(\"FAILED: ndx equal-halves key round-trip\\n\");\n        return 1;\n    }\n    printf(\"OK: ndx equal-halves key round-trip\\n\");\n\n    memset(pfx_key, 0x5b, 16);\n    memcpy(pfx_key + 16, pfx_key, 16);\n    memset(input, 0, sizeof input);\n    input[10] = 0xff;\n    input[11] = 0xff;\n    input[12] = 203;\n    input[13] = 0;\n    input[14] = 113;\n    input[15] = 7;\n    crypto_ipcrypt_pfx_encrypt(pfx_output, input, pfx_key);\n    crypto_ipcrypt_pfx_decrypt(decrypted, pfx_output, pfx_key);\n    if (memcmp(input, decrypted, sizeof input) != 0) {\n        printf(\"FAILED: pfx equal-halves key round-trip\\n\");\n        return 1;\n    }\n    printf(\"OK: pfx equal-halves key round-trip\\n\");\n\n    memset(pfx_key, 0x7a, sizeof pfx_key);\n    memset(input, 0, sizeof input);\n    input[0]  = 0x20;\n    input[1]  = 0x01;\n    input[2]  = 0x0d;\n    input[3]  = 0xb8;\n    input[15] = 0x01;\n    crypto_ipcrypt_pfx_encrypt(pfx_output, input, pfx_key);\n    memcpy(decrypted, input, sizeof input);\n    crypto_ipcrypt_pfx_encrypt(decrypted, decrypted, pfx_key);\n    if (memcmp(pfx_output, decrypted, sizeof pfx_output) != 0) {\n        printf(\"FAILED: pfx in-place encryption differs\\n\");\n        return 1;\n    }\n    crypto_ipcrypt_pfx_decrypt(decrypted, decrypted, pfx_key);\n    if (memcmp(input, decrypted, sizeof input) != 0) {\n        printf(\"FAILED: pfx in-place round-trip\\n\");\n        return 1;\n    }\n    printf(\"OK: pfx in-place encryption/decryption\\n\");\n\n    memset(key, 0x13, sizeof key);\n    memset(ndx_key, 0x37, sizeof ndx_key);\n    memset(pfx_key, 0x59, sizeof pfx_key);\n    memset(tweak_nd, 0x1a, sizeof tweak_nd);\n    memset(tweak_ndx, 0x2b, sizeof tweak_ndx);\n\n    memset(input, 0, sizeof input);\n    crypto_ipcrypt_encrypt(output, input, key);\n    crypto_ipcrypt_decrypt(decrypted, output, key);\n    if (memcmp(input, decrypted, sizeof input) != 0) {\n        printf(\"FAILED: ipcrypt IPv6 :: round-trip\\n\");\n        return 1;\n    }\n    crypto_ipcrypt_nd_encrypt(nd_output, input, tweak_nd, key);\n    crypto_ipcrypt_nd_decrypt(decrypted, nd_output, key);\n    if (memcmp(input, decrypted, sizeof input) != 0) {\n        printf(\"FAILED: nd IPv6 :: round-trip\\n\");\n        return 1;\n    }\n    crypto_ipcrypt_ndx_encrypt(ndx_output, input, tweak_ndx, ndx_key);\n    crypto_ipcrypt_ndx_decrypt(decrypted, ndx_output, ndx_key);\n    if (memcmp(input, decrypted, sizeof input) != 0) {\n        printf(\"FAILED: ndx IPv6 :: round-trip\\n\");\n        return 1;\n    }\n    crypto_ipcrypt_pfx_encrypt(pfx_output, input, pfx_key);\n    crypto_ipcrypt_pfx_decrypt(decrypted, pfx_output, pfx_key);\n    if (memcmp(input, decrypted, sizeof input) != 0) {\n        printf(\"FAILED: pfx IPv6 :: round-trip\\n\");\n        return 1;\n    }\n    printf(\"OK: IPv6 :: round-trips\\n\");\n\n    memset(input, 0xff, sizeof input);\n    crypto_ipcrypt_encrypt(output, input, key);\n    crypto_ipcrypt_decrypt(decrypted, output, key);\n    if (memcmp(input, decrypted, sizeof input) != 0) {\n        printf(\"FAILED: ipcrypt IPv6 all-ones round-trip\\n\");\n        return 1;\n    }\n    crypto_ipcrypt_nd_encrypt(nd_output, input, tweak_nd, key);\n    crypto_ipcrypt_nd_decrypt(decrypted, nd_output, key);\n    if (memcmp(input, decrypted, sizeof input) != 0) {\n        printf(\"FAILED: nd IPv6 all-ones round-trip\\n\");\n        return 1;\n    }\n    crypto_ipcrypt_ndx_encrypt(ndx_output, input, tweak_ndx, ndx_key);\n    crypto_ipcrypt_ndx_decrypt(decrypted, ndx_output, ndx_key);\n    if (memcmp(input, decrypted, sizeof input) != 0) {\n        printf(\"FAILED: ndx IPv6 all-ones round-trip\\n\");\n        return 1;\n    }\n    crypto_ipcrypt_pfx_encrypt(pfx_output, input, pfx_key);\n    crypto_ipcrypt_pfx_decrypt(decrypted, pfx_output, pfx_key);\n    if (memcmp(input, decrypted, sizeof input) != 0) {\n        printf(\"FAILED: pfx IPv6 all-ones round-trip\\n\");\n        return 1;\n    }\n    printf(\"OK: IPv6 all-ones round-trips\\n\");\n\n    printf(\"\\nrandomized property tests\\n\");\n\n    for (i = 0; i < 128U; i++) {\n        randombytes_buf(key, sizeof key);\n        randombytes_buf(ndx_key, sizeof ndx_key);\n        randombytes_buf(pfx_key, sizeof pfx_key);\n        randombytes_buf(tweak_nd, sizeof tweak_nd);\n        randombytes_buf(tweak_ndx, sizeof tweak_ndx);\n        randombytes_buf(input, sizeof input);\n\n        crypto_ipcrypt_encrypt(output, input, key);\n        crypto_ipcrypt_decrypt(decrypted, output, key);\n        if (memcmp(input, decrypted, sizeof input) != 0) {\n            printf(\"FAILED: randomized ipcrypt round-trip\\n\");\n            return 1;\n        }\n\n        crypto_ipcrypt_nd_encrypt(nd_output, input, tweak_nd, key);\n        crypto_ipcrypt_nd_decrypt(decrypted, nd_output, key);\n        if (memcmp(input, decrypted, sizeof input) != 0) {\n            printf(\"FAILED: randomized nd round-trip\\n\");\n            return 1;\n        }\n\n        crypto_ipcrypt_ndx_encrypt(ndx_output, input, tweak_ndx, ndx_key);\n        crypto_ipcrypt_ndx_decrypt(decrypted, ndx_output, ndx_key);\n        if (memcmp(input, decrypted, sizeof input) != 0) {\n            printf(\"FAILED: randomized ndx round-trip\\n\");\n            return 1;\n        }\n\n        crypto_ipcrypt_pfx_encrypt(pfx_output, input, pfx_key);\n        crypto_ipcrypt_pfx_decrypt(decrypted, pfx_output, pfx_key);\n        if (memcmp(input, decrypted, sizeof input) != 0) {\n            printf(\"FAILED: randomized pfx round-trip\\n\");\n            return 1;\n        }\n    }\n    printf(\"OK: randomized round-trip tests\\n\");\n\n    for (i = 0; i < 128U; i++) {\n        unsigned char in1[16];\n        unsigned char in2[16];\n        unsigned char out1[16];\n        unsigned char out2[16];\n\n        randombytes_buf(pfx_key, sizeof pfx_key);\n        randombytes_buf(in1, sizeof in1);\n        in1[0] = 0x20;\n        in1[1] = 0x01;\n        memcpy(in2, in1, sizeof in1);\n        prefix_len_bits = (unsigned int) randombytes_uniform(129U);\n        flip_bit_msb(in2, prefix_len_bits);\n        crypto_ipcrypt_pfx_encrypt(out1, in1, pfx_key);\n        crypto_ipcrypt_pfx_encrypt(out2, in2, pfx_key);\n        if (prefix_equal_msb(out1, out2, prefix_len_bits) == 0) {\n            printf(\"FAILED: randomized IPv6 prefix length %u\\n\", prefix_len_bits);\n            return 1;\n        }\n    }\n    printf(\"OK: randomized IPv6 prefix preservation\\n\");\n\n    for (i = 0; i < 128U; i++) {\n        unsigned char in1[16];\n        unsigned char in2[16];\n        unsigned char out1[16];\n        unsigned char out2[16];\n\n        randombytes_buf(pfx_key, sizeof pfx_key);\n        memset(in1, 0, sizeof in1);\n        memcpy(in1, ipv4_mapped_prefix, 12);\n        randombytes_buf(in1 + 12, 4U);\n        memcpy(in2, in1, sizeof in1);\n        prefix_len_bits = (unsigned int) randombytes_uniform(33U);\n        flip_bit_msb(in2, 96U + prefix_len_bits);\n        crypto_ipcrypt_pfx_encrypt(out1, in1, pfx_key);\n        crypto_ipcrypt_pfx_encrypt(out2, in2, pfx_key);\n        if (prefix_equal_msb(out1, out2, 96U + prefix_len_bits) == 0) {\n            printf(\"FAILED: randomized IPv4-mapped prefix length %u\\n\", prefix_len_bits);\n            return 1;\n        }\n    }\n    printf(\"OK: randomized IPv4-mapped prefix preservation\\n\");\n\n    printf(\"\\nAll specification test vectors passed!\\n\");\n\n    return 0;\n}\n"
  },
  {
    "path": "test/default/ipcrypt.exp",
    "content": "crypto_ipcrypt_BYTES: 16\ncrypto_ipcrypt_KEYBYTES: 16\ncrypto_ipcrypt_ND_KEYBYTES: 16\ncrypto_ipcrypt_ND_TWEAKBYTES: 8\ncrypto_ipcrypt_ND_INPUTBYTES: 16\ncrypto_ipcrypt_ND_OUTPUTBYTES: 24\ncrypto_ipcrypt_NDX_KEYBYTES: 32\ncrypto_ipcrypt_NDX_TWEAKBYTES: 16\ncrypto_ipcrypt_NDX_INPUTBYTES: 16\ncrypto_ipcrypt_NDX_OUTPUTBYTES: 32\ncrypto_ipcrypt_PFX_KEYBYTES: 32\ncrypto_ipcrypt_PFX_BYTES: 16\n\nipcrypt-deterministic test vectors\nOK: deterministic vector 1 (0.0.0.0)\nOK: deterministic vector 2 (255.255.255.255)\nOK: deterministic vector 3 (192.0.2.1)\n\nipcrypt-nd test vectors\nOK: nd vector 1 (0.0.0.0)\nOK: nd vector 2 (192.0.2.1)\nOK: nd vector 3 (2001:db8::1)\n\nipcrypt-ndx test vectors\nOK: ndx vector 1 (0.0.0.0)\nOK: ndx vector 2 (192.0.2.1)\nOK: ndx vector 3 (2001:db8::1)\n\nipcrypt-pfx test vectors\nOK: pfx vector 1 (0.0.0.0)\nOK: pfx vector 2 (255.255.255.255)\nOK: pfx vector 3 (192.0.2.1)\nOK: pfx vector 4 (2001:db8::1)\n\nipcrypt-pfx prefix preservation\nOK: pfx /24 test (10.0.0.47)\nOK: pfx /24 test (10.0.0.129)\nOK: pfx /24 test (10.0.0.234)\nOK: IPv4 /24 prefix preserved for 10.0.0.x\nOK: pfx /16 test (172.16.5.193)\nOK: pfx /16 test (172.16.97.42)\nOK: pfx /16 test (172.16.248.177)\nOK: IPv4 /16 prefix preserved for 172.16.x.x\nOK: IPv4-mapped prefix preserved in output\nOK: pfx /64 test (2001:db8::a5c9:4e2f:bb91:5a7d)\nOK: pfx /64 test (2001:db8::7234:d8f1:3c6e:9a52)\nOK: pfx /64 test (2001:db8::f1e0:937b:26d4:8c1a)\nOK: IPv6 /64 prefix preserved for 2001:db8::/64\nOK: pfx /32 test (2001:db8:3a5c:0:e7d1:4b9f:2c8a:f673)\nOK: pfx /32 test (2001:db8:9f27:0:b4e2:7a3d:5f91:c8e6)\nOK: pfx /32 test (2001:db8:d8b4:0:193c:a5e7:8b2f:46d1)\nOK: IPv6 /32 prefix preserved for 2001:db8::/32\n\nsystematic prefix-length coverage\nOK: IPv6 prefix preservation for /0..128\nOK: IPv4-mapped prefix preservation for /0..32\n\nfunctional tests\nOK: Key generation functions\nOK: In-place encryption/decryption\nOK: Deterministic encryption\nOK: Different inputs produce different outputs\n\nedge case tests\nOK: nd tweak changes output\nOK: ndx tweak changes output\nOK: ndx equal-halves key round-trip\nOK: pfx equal-halves key round-trip\nOK: pfx in-place encryption/decryption\nOK: IPv6 :: round-trips\nOK: IPv6 all-ones round-trips\n\nrandomized property tests\nOK: randomized round-trip tests\nOK: randomized IPv6 prefix preservation\nOK: randomized IPv4-mapped prefix preservation\n\nAll specification test vectors passed!\n"
  },
  {
    "path": "test/default/kdf.c",
    "content": "\n#define TEST_NAME \"kdf\"\n#include \"cmptest.h\"\n\nstatic void\ntv_kdf(void)\n{\n    unsigned char *master_key;\n    unsigned char *subkey;\n    char          *context;\n    char           hex[crypto_kdf_BYTES_MAX * 2 + 1];\n    uint64_t       i;\n    int            ret;\n\n    context = (char *) sodium_malloc(crypto_kdf_CONTEXTBYTES);\n    master_key = (unsigned char *) sodium_malloc(crypto_kdf_KEYBYTES);\n\n    memcpy(context, \"KDF test\", sizeof \"KDF test\" - 1U);\n    for (i = 0; i < crypto_kdf_KEYBYTES; i++) {\n        master_key[i] = i;\n    }\n    subkey = (unsigned char *) sodium_malloc(crypto_kdf_BYTES_MAX);\n    for (i = 0; i < 10; i++) {\n        ret = crypto_kdf_derive_from_key(subkey, crypto_kdf_BYTES_MAX,\n                                         i, context, master_key);\n        assert(ret == 0);\n        sodium_bin2hex(hex, sizeof hex, subkey, crypto_kdf_BYTES_MAX);\n        printf(\"%s\\n\", hex);\n    }\n    sodium_free(subkey);\n\n    for (i = 0; i < crypto_kdf_BYTES_MAX + 2; i++) {\n        subkey = (unsigned char *) sodium_malloc(crypto_kdf_BYTES_MAX);\n        if (crypto_kdf_derive_from_key(subkey, (size_t) i,\n                                       i, context, master_key) == 0) {\n            sodium_bin2hex(hex, sizeof hex, subkey, (size_t) i);\n            printf(\"%s\\n\", hex);\n        } else {\n            printf(\"Failure -- probably expected for output length=%u\\n\",\n                   (unsigned int) i);\n        }\n        sodium_free(subkey);\n    }\n\n    sodium_free(master_key);\n    sodium_free(context);\n\n    assert(strcmp(crypto_kdf_primitive(), crypto_kdf_PRIMITIVE) == 0);\n    assert(crypto_kdf_BYTES_MAX > 0);\n    assert(crypto_kdf_BYTES_MIN <= crypto_kdf_BYTES_MAX);\n    assert(crypto_kdf_bytes_min() == crypto_kdf_BYTES_MIN);\n    assert(crypto_kdf_bytes_max() == crypto_kdf_BYTES_MAX);\n    assert(crypto_kdf_CONTEXTBYTES > 0);\n    assert(crypto_kdf_contextbytes() == crypto_kdf_CONTEXTBYTES);\n    assert(crypto_kdf_KEYBYTES >= 16);\n    assert(crypto_kdf_keybytes() == crypto_kdf_KEYBYTES);\n    assert(crypto_kdf_bytes_min() == crypto_kdf_blake2b_bytes_min());\n    assert(crypto_kdf_bytes_max() == crypto_kdf_blake2b_bytes_max());\n    assert(crypto_kdf_contextbytes() == crypto_kdf_blake2b_contextbytes());\n    assert(crypto_kdf_keybytes() == crypto_kdf_blake2b_keybytes());\n\n    printf(\"tv_kdf: ok\\n\");\n}\n\nint\nmain(void)\n{\n    tv_kdf();\n\n    return 0;\n}\n"
  },
  {
    "path": "test/default/kdf.exp",
    "content": "a0c724404728c8bb95e5433eb6a9716171144d61efb23e74b873fcbeda51d8071b5d70aae12066dfc94ce943f145aa176c055040c3dd73b0a15e36254d450614\n02507f144fa9bf19010bf7c70b235b4c2663cc00e074f929602a5e2c10a780757d2a3993d06debc378a90efdac196dd841817b977d67b786804f6d3cd585bab5\n1944da61ff18dc2028c3578ac85be904931b83860896598f62468f1cb5471c6a344c945dbc62c9aaf70feb62472d17775ea5db6ed5494c68b7a9a59761f39614\n131c0ca1633ed074986215b264f6e0474f362c52b029effc7b0f75977ee89cc95d85c3db87f7e399197a25411592beeeb7e5128a74646a460ecd6deb4994b71e\na7023a0bf9be245d078aed26bcde0465ff0cc0961196a5482a0ff4ff8b4015971e13611f50529cb408f5776b14a90e7c3dd9160a22211db64ff4b5c0b9953680\n50f49313f3a05b2e565c13feedb44daa675cafd42c2b2cf9edbce9c949fbfc3f175dcb738671509ae2ea66fb85e552394d479afa7fa3affe8791744796b94176\n13b58d6d69780089293862cd59a1a8a4ef79bb850e3f3ba41fb22446a7dd1dc4da4667d37b33bf1225dcf8173c4c349a5d911c5bd2db9c5905ed70c11e809e3b\n15d44b4b44ffa006eeceeb508c98a970aaa573d65905687b9e15854dec6d49c612757e149f78268f727660dedf9abce22a9691feb20a01b0525f4b47a3cf19db\n9aebba11c5428ae8225716369e30a48943be39159a899f804e9963ef78822e186c21fe95bb0b85e60ef03a6f58d0b9d06e91f79d0ab998450b8810c73ca935b4\n70f9b83e463fb441e7a4c43275125cd5b19d8e2e4a5d179a39f5db10bbce745a199104563d308cf8d4c6b27bbb759ded232f5bdb7c367dd632a9677320dfe416\nFailure -- probably expected for output length=0\nFailure -- probably expected for output length=1\nFailure -- probably expected for output length=2\nFailure -- probably expected for output length=3\nFailure -- probably expected for output length=4\nFailure -- probably expected for output length=5\nFailure -- probably expected for output length=6\nFailure -- probably expected for output length=7\nFailure -- probably expected for output length=8\nFailure -- probably expected for output length=9\nFailure -- probably expected for output length=10\nFailure -- probably expected for output length=11\nFailure -- probably expected for output length=12\nFailure -- probably expected for output length=13\nFailure -- probably expected for output length=14\nFailure -- probably expected for output length=15\na529216624ef9161e4cf117272aafff2\n068bd6940b80c6cc2530a68c31d9f4e323\n0acf4f6c74a590c8a1c0997ec9a1a3f48b2a\nac17a37ce74c0efece75f9337de20795dbadcc\n268214dc9477a2e3c1022829f934ab992a5a3d84\n33b76197b4531665e494760909eda1cc570e7da9bb\n3d4efbc569ca7f858ad4f49c56b820986a406e6eebbc\n983fea27520f507c40231f9557908f07c095bdf4a4ce5d\n94d678717625e011995c7355f2092267dee47bf0722dd380\n198901896c4f51e74ffa8b2805415c6eaba5accfc85a6e6b34\n4ffabb81d49021f85ef5d2a713ab02ae86bc2e7d1522f5e077fe\neebc3d55b3f4fc8b64d2474063254da7db98e7398dfdd510e28075\n22c134b9d664e1bdb14dc309a936bf1512b19e4f5175642efb1a0df7\n4b179762bfc8e27a9e575113faa76247b9c046d6f22d5a02e2910a299b\nabc45eb2b031307b8822c7e59a43f4108850c34a7445936bc848422251c4\nd6565bd3265b6373f4f6a6b6458e981006da5e9d532ce94ca4737e188995e9\n154b291f11196737f8b7f491e4ca11764e0227d34f94295408a869f007aa8618\ne9dd395570e09ebb523ffc6ba098a38b17bc4944f14bd3725bdd7edbd8bcff54fb\n7248294d37159e85bacde68c7762a673794c91b811e05f4e3b9e3ecc82bfcf63a2cd\nd060ee4d93f8de6d9ae60fca9596413455183a1f83c7a2381227cec8f7a217e4072f85\n20790290347b9b0f413a954f40e52e270b3b45417e96c8733161672188701c08dd76cc3d\n7674188112a1ab8d3926d468be8e51d788ce4144bb20ff842034e4d1ddab3929a4f1a13a74\na2ab1f980a47472d8a539f20410cc9bf143d941331ab2259ea73684c0608939c5b23e9cbcb3d\nf4cfbe3050f15ebbaf8d2f3bf3a678c01fc21ee1f4be07d0744c7fbf4835ea9d9472a3d785c24c\n66efa5dfe3efd4cc8ca25f2d622c97a20a192d7add965f26b002b7eb81aae4203c0e5f07fd945845\nad5d8031055c96dc9db10285206d7edc38d3af85736df8a3b5fdd30a318e80c28d9b26c95a60fa3e68\n9107c8a57a2c9ca40158f33ca0bfb64c095d2f21ca98bb7138477599330a36cdfc2ae5751e370d0e024e\nb0c190177358b955ebebc5e0b86ec91dde3b6f1982ea4d68ec5ec3bdd6527c362e5275600b263601c98452\n31bfaaad4adde0f87d87372e398c42cb7befe065ab2957ebb91ef9dc534b410783899b2e1e84221286f3bab4\n2258dd1f3e516cb8e3d1f6c45808573c365192f073698939721af8961a02a8bdd002a31fd239b9498663a01f27\n7c7a88016610493bb44a9432a88b50f97e2e94383972ff95da826692d96c52d82f86899b3561ec9c95a8b1bf3213\n3929dc7473be4c633be9e08801a8abd284dc0c6154c5c81a4c18259699dd86753c5e14fbd723be46ebb04f4ab3058c\n30b720220015fa60daa69c83f9754d772b1b2dd12ab6baaa2f4edab458d4d251c1cddb8c4a554f3eb13969316b890fbd\n33fa2412a5c3294d49e964419e96d043a2099a72b3351e3bed0f07e12255c95b509ea9bf2963a4c0fe9cc2314dbc44f673\nca891d2c82a6a8f833dc1a05f190bab6de221307eab1dd2c88341d4d2537a2fc0056b0d04d8104fd3fe89e1ea20877893e81\nfd78ac89a64d03672ad99d663f2613d15277cda1636e334a1706b7211ff1f3a3b3d2e671e391c75e3d242c482ce7e1b8b427ed\n36a6072743d3aafd3ee89344b9ef92cb58a2853ae92b20283520439fcb55afffd3d4b5e4e8c92a85d3cf74497bdcf68bbf1fcf93\na90afcfaffec1105ad05fdaa9473fb5daf1bf8fb376b7326db46ef4c120c553188c69131933371d409eb56d66d5adca618e1dac65b\n9b990d1fcddbdb5e5c7a48a6a2a666e02e7d4d4a814ece40660d99e1c02d5f023c56ae82526fc6dc8c933d0add92fc376efcddd55a42\nec545dcf456d1b0907c07418a42bf2b3d668b4797ba6874bf0d563f5f429a820f02177dd4d05e639a06807c9619fee54ffe07712493543\nb0106957626894586682a275f69ed4533e2f94334cc0430394b68d82679aca00dd579e712bdd2d7f5bbce9a050269739bd8427b75b06027f\n05751bfeebb480c9bca0d25d8197e2673845f405d7fb9793e29169ac19956c525f6e637f3d5ea50597b04342afed4ca16f988b4f21a34f1902\n7b4e4294d3f64085b5c09be73548f1f5cb5c6f04e57ce6cdd3077e2fb37640bf1ca0c6393b87d48a6b7e3e42628bd30fca132ded03ce51f71d9d\n082d248862cbfd71a634769a4b1cf52a4af47ace5b9ea4d583ca52207efc7234a6d321788130cbdec122579ad03afe00bc68c9fb3f68dd0532a96f\na2b39b4428d981013e8a9c0e41b3eed504983fc18dc4b60332b1ab28b9705228147bdb95cc17889d5f0f9cfb7fd16f9d414b1a829346a8922e945b40\nefbf0f8bda1b9ef24fe389f1cf0c0c8a08bca03fc95badabb79a487d8ce1351683f59183aa6229f880d69ad60114ac128f69b2be250109972ab1f3fc3b\ndfe0ba2a6de25fa06b47375e9d9cf6c6fa1493a8a2a81c28d6e09bc161057b445659db76e92e349ff44f34a2a9e3bcaa6b84b21bae56f1499c170ab81af0\n02f9cbdb10759314515b01379c474ad74a1b575137bd3949776dbcfc3e18060cb13ee1f6dcf86035768fc7be63e01de321cacbfade209900dd94273fd8e176\n06ae14308eeeda62a00cb6d5edf18d1707029515db98f472bbf0617419301b1d4f4f2ab65849446be46f87e1d31c6c74283897b9976f70d8a16253ac927e0d9f\nFailure -- probably expected for output length=65\ntv_kdf: ok\n"
  },
  {
    "path": "test/default/kdf_hkdf.c",
    "content": "\n#define TEST_NAME \"kdf_hkdf\"\n#include \"cmptest.h\"\n\nstatic void\ntv_kdf_hkdf(void)\n{\n    unsigned char *master_key;\n    size_t         master_key_len = 66;\n    unsigned char *prk256;\n    size_t         prk256_len = crypto_kdf_hkdf_sha256_KEYBYTES;\n    unsigned char *prk512;\n    size_t         prk512_len = crypto_kdf_hkdf_sha512_KEYBYTES;\n    unsigned char *salt;\n    size_t         salt_len = 77;\n    char          *context;\n    size_t         context_len = 88;\n    unsigned char *out;\n    size_t         out_len = 99;\n    char           hex[99 * 2 + 1];\n    size_t         i;\n\n    master_key = (unsigned char *) sodium_malloc(master_key_len);\n    prk256 = (unsigned char *) sodium_malloc(prk256_len);\n    prk512 = (unsigned char *) sodium_malloc(prk512_len);\n    salt = (unsigned char *) sodium_malloc(salt_len);\n    context = (char *) sodium_malloc(context_len);\n    out = (unsigned char *) sodium_malloc(out_len);\n    for (i = 0; i < master_key_len; i++) {\n        master_key[i] = i;\n    }\n    for (i = 0; i < salt_len; i++) {\n        salt[i] = (unsigned char) ~i;\n    }\n    for (i = 0; i < context_len; i++) {\n        context[i] = (unsigned char) (i + 111);\n    }\n\n    printf(\"\\nHKDF/SHA-256:\\n\");\n    crypto_kdf_hkdf_sha256_keygen(prk256);\n    if (crypto_kdf_hkdf_sha256_extract(prk256, salt, salt_len,\n                                       master_key, master_key_len) != 0) {\n        printf(\"hkdf_sha256_extract() failed\\n\");\n    }\n    printf(\"PRK: %s\\n\", sodium_bin2hex(hex, sizeof hex, prk256, prk256_len));\n\n    for (i = 0; i < out_len; i++) {\n        context[0] = i;\n        if (crypto_kdf_hkdf_sha256_expand(out, i,\n                                          context, context_len, prk256) != 0) {\n            printf(\"hkdf_sha256_expand() failed\\n\");\n        }\n        printf(\"%s\\n\", sodium_bin2hex(hex, sizeof hex, out, i));\n    }\n\n    printf(\"\\nHKDF/SHA-512:\\n\");\n    crypto_kdf_hkdf_sha256_keygen(prk512);\n    if (crypto_kdf_hkdf_sha512_extract(prk512, salt, salt_len,\n                                       master_key, master_key_len) != 0) {\n        printf(\"hkdf_sha512_extract() failed\\n\");\n    }\n    printf(\"PRK: %s\\n\", sodium_bin2hex(hex, sizeof hex, prk512, prk512_len));\n\n    for (i = 0; i < out_len; i++) {\n        context[0] = i;\n        if (crypto_kdf_hkdf_sha512_expand(out, i,\n                                          context, context_len, prk512) != 0) {\n            printf(\"hkdf_sha512_expand() failed\\n\");\n        }\n        printf(\"%s\\n\", sodium_bin2hex(hex, sizeof hex, out, i));\n    }\n\n    sodium_free(out);\n    sodium_free(context);\n    sodium_free(salt);\n    sodium_free(master_key);\n    sodium_free(prk512);\n    sodium_free(prk256);\n\n    assert(crypto_kdf_hkdf_sha512_bytes_min() == crypto_kdf_hkdf_sha512_BYTES_MIN);\n    assert(crypto_kdf_hkdf_sha512_bytes_max() == crypto_kdf_hkdf_sha512_BYTES_MAX);\n    assert(crypto_kdf_hkdf_sha512_keybytes() == crypto_kdf_hkdf_sha512_KEYBYTES);\n    assert(crypto_kdf_hkdf_sha512_statebytes() >= sizeof (crypto_kdf_hkdf_sha512_state));\n\n    assert(crypto_kdf_hkdf_sha256_bytes_min() == crypto_kdf_hkdf_sha256_BYTES_MIN);\n    assert(crypto_kdf_hkdf_sha256_bytes_max() == crypto_kdf_hkdf_sha256_BYTES_MAX);\n    assert(crypto_kdf_hkdf_sha256_keybytes() == crypto_kdf_hkdf_sha256_KEYBYTES);\n    assert(crypto_kdf_hkdf_sha256_statebytes() >= sizeof (crypto_kdf_hkdf_sha256_state));\n\n    assert(crypto_kdf_hkdf_sha256_KEYBYTES < crypto_kdf_hkdf_sha512_KEYBYTES);\n\n    printf(\"tv_kdf_hkdf: ok\\n\");\n}\n\nint\nmain(void)\n{\n    tv_kdf_hkdf();\n\n    return 0;\n}\n"
  },
  {
    "path": "test/default/kdf_hkdf.exp",
    "content": "\nHKDF/SHA-256:\nPRK: 8c3725c0ea8e14106d8c342887ccd1218cc205acecd8095ae1efc099ec195e7e\n\n92\n2ebf\ne29531\n8e563a1b\n1fa58d77ee\n50f1a4e15ba2\n4fb3724b7d4174\nd10853ceb46b11db\n0fdf31228221242833\n98acb29e0993ec45f8cc\nf4481a5e6d263d7bdc59ed\ne620eb399337a9aace16765c\ndbe8924351577475584731979f\n371a112305dfd4264feb29c28a2f\nd0a4b022f748c96141ec6b4aac6dcb\nd2b38fe15e0f95bcff87822ff4df3d90\ne4bf8fde7d77899a5f85d68b039ee7119b\n6766b092971ec2e616286925708c7ed6c9e9\nc4f9d36cddfe89b3194282a084881e6c429099\n49be5bc10c278f39b5be391a55e765560deca0ad\n6e7d3031d08c5658a19a7d647dad0250418435febc\n07cb6356aa7f978cbab87e7814fa90af9ce729aa2b3f\n2ea1c08eb04c75806f80ccf0fca683a8998bb663e99993\nbb111699f6c32263474dc5569a6950c767e3b8201f838345\ne81e9086d3e035cc1a288fa521ce8b43b7f93d3d9bbac5085b\n29c398bfafa672bc315e192110575691607118759f9e7669f3c5\n60840e8bc6d86733752787232a0321257c82d691722bfba07af839\nb0ec22e547dae3f04fc6ef146203604f0d604a8ce8a20fce229a688f\n81ae6add3344b25d14115a38bc10553a75ce0a4be3aa8f3579299227f7\n242c65f95ee0bce1c5e1b01b1ff68e8634fac096edb18997dfd3baf3817d\n14b5afe2cc0d8fe10e5359667b2b310365fba93d62f7fd3df2dddfc34c1de5\n24a79d4c0c69e0a524ca91f356e64ab40345973ba82ce68992dbdd16bf161cbe\n3edbfc22f9a1e3a5c774cfec8fff3cc4febdfc61d98aecedf6a16eca0546316b56\nb8bad2b04b9b382f9ad2559afc33b8dece4a7fe9b8ac9d74557dfc51ed8949b78ee8\n1d01316d7767f068171f08a8c2f05d2cd571f623fd5fc9916b3476115aac9d7f635cb4\na7c5763a3b678ee2fa05a57dab377b67e448a38f94531ce83bab9eff8035e105e8889b91\nab6721825aefb2cb9f9d0ce5123882573abebe94404e0e3a923a7aac84efc084f84ee5b2ed\n4815da740c872a9816850c8757be64cb3096dca7994f3af7bd8c10e83a2d3bbb14b40da93d40\nabb141fbb64faec34c09e9c784b1e8aba15b6e916f70996ad803b963d2de676669ebff3ed4b711\n231a7a47a81c21dd6a0969c67b6ff446a73a145fb1d4f0a2d268af8fd56ac6d67b6ef55d13194440\n74e40130ca102c22acc109cc6b8b66d840b984fe729c156edd05eb4f44d1869e6ae6260b41931179ff\n3817d2cf7b7c7c7bfe4ab51e9178343f31fa8eea20899ec96d21eebdbf55f44327e7dc23cf669e215c02\nd5ab755f5631d08b70718d2ba3e2775fbc3cdfe69b7ac74afcc73ffbd7b91b9d3a7fef364cda9816c8c367\n93c15afc2cf1baec84b8e3c89f50a3e4cc3a2c1b72aeaa894a45bf09f22aac0711994f0873ac69b099e47d02\n7b359dd2abb995a8bb0d1a01a986bfcf28d47b9215f000b240f5080dc78a84cc65e34ff098074ae237a0238b6f\n182ec78776f5ba3818c2ccc7b84aa7bb1a54386134b3215e8f8f709757f3c8e4f9bef3800e3a9eda8b9794e95f8a\n0cf1874215b38ab1900ce7137d9b8817fbe99d3196eab5b845971a46a38c479d81fc8033a641533e2c39dd550e672a\n3f5a283ca862e6a5f79c5ab39f8d4984b54a86e132d40adcca249f6419caf5b61fbbf61d54d80e78af3e613adfea5f9e\nce6bceffd4ae50e8465c3d5179c661da2f18dcb37f95f9cc66808d2f848b55dd0c1d2201bb37a2e339e9385233e687a711\n7ce3f4575d3edab2f989b0a975b279ac21af117184130911dba4e7c70e19f96b5595ec8910e737c019f3392390f8b9af6439\n9c1b37296ed2ad9b556938d30814c47f822807be8cf9bfb26a05651061015493d4ed551f8a6f1a5cef7df88dd7426f03681935\n0d1f6f49c38c4d6fbc57103193b544ec1a73f40ed8aaac53da2b1a28a4a35838036ec9d50d719af22f3f89ebb7f340f50ce8c180\nfe6786d7d7728a1ed057c329f68cf698b163ae1e6c1b48290e6ba2c325740155f0f90f216111f3bc16d61b8338d910d429241899c4\nc729c63757fa5a421704ba88f8c13f23606e59cb1e7d2396a130742c31b98dc9461cc1fa9d8d24f79f7303dd416bf66adbb08562f832\n44cf07d63adc85de7c0aa524962c29dfad1b37b253fc9559fd1f5b8237d8bd6e6449e5f3997d6b0571ae50da1e164be845523c8630b1df\nc1040513a53f652e0ba7bc30f84deaaec13a15919855dd76148ae1fc86cd147ba686ff0ee025f9a00cbf7b6e190c7b87ea458974cf147ae3\n0a67afc69f00ddbdd6794ed7b06285c00d70fd86fb8b959bd8c686e96c72032f2726c4f0fb607a7f4d4f66b410eff17354b6db803c9c910a72\nfaad9414932446902309147f8f2c1d2d48c95a7ddb8856219aa36ed30f971e160542ed8272ef9bdf72551cd059ca6c81ea76b5a3b49cbfb07738\n14ee2fc3899650164beb828a557afc7253e4b89cba8a1908d3641d47eb23d50ef34a0dafaa1388328fc33b1db37f2f74db6934d398bacbec785f03\n2333128e004f61ba45c524dbf72a9973fdcc288d76236402f63b0f4a39867b18e73135f35945f1791ae537b215c69941194258103419558c0a477fa9\n70f1a4c027d950573c5ea8f9b34069d1b85ac0b6daabc9de5c4cd1844d6781c0b15ca7b01c2a33dd06272e7c8729b74ea71a0f35486252461a3d83bc62\n8b9199ebc5ae61365d6cc78c9d1b1a466565639c50c317cddcdc13db96b4f6ec612bbc1c6e5d2479147040f313a168e4471b9093f47548899265d8472aab\n5f420864258d597766beb7c55ef0dc9c85aab5e296677e1fd9201a8c8a0c7b74b573276b0ce11f797a5816e5ed7ea3a02ca5c338f78c0c6a41322e0cdbb5d6\n13029325fb0fbbe2221caaa6c3797a967335c4a857fafe23b4fb221433afc84da6876cbd74ac631d18f2478aae8def5a85a227b3bb496a81e9d29171a5b501fc\n44ef825de340dbcb1b2ce9325eb78650d574d1c9fc13ed3b4517ee3f2f95bd97c8ab62988455a1639d0e4b2e404d661c3881dbdb52d86b7bd5593713b10e8d1086\n2c67d0e2fbdb55cf649c97e1053c717636c526ee4f58f86e9671a1086e5ef6ef7ae109eca2cd482affb1add956aad7225debca3420c4cae6cf590e8e8c1a0398a9cd\n6900b97c5783d5856e4eda7816e27326cb71f8c9cda3bfdc88c4a5aa49b580aa4341cd100fd3084b447a24c9d521c8ddb7a55af52c998c4a9b53bae6c86caa02424df6\nc63f43dd3d29e0e92fc2adf18a50e33f11dbe9746f16bfc518397e0df3bd4eff491963cd2a0d25022c535a425fe3cfcea4ffd7dfbe98e2ae9fb40a007012acc31460ef25\ndd61268207f4452ce4a1f212aa4f4ffff1d0cd4df9ac1730b0f4acc07f75e86afb02c0d99aeb512bf3bb138183364a4b800af446b403add2b30d73eca024fb5e3eeebf10dc\n4eb2c6dc6159bb82eba32aa839bc4b3d46be87cd358f47aeb7b488d91230414a40fe35a2c0bcde81de243b6974c49ac0af113904a8995928931e867f5b7d131c2c9caf4adde5\n22cef8bbb9f6874c1be53adc6687e3b28d0b9b8574d22212e4d60074585d17751fdcb80a1ed6143a7471fd3b1a0dddbce5b8b1ae859441413d99b069252f39c3a0b7eafc65ab34\n6f0a07f43c6d00649b516cc986fce770aed949875a17164beed5305ceaf74131574eb2cf489dc13fad53e2b10cb757b69eecb481a76a8d99a7cfb2e0aee40dde6f7d44c2be5a5e63\nbf701b835481d47ee85d390caa8f63bd3e7dfa48f4307d51989b4660e465de31329589bd5e3293f75b63d320b8f53211cf1209e426869c3c3b506dde3f819cae07672af9ef74f36de6\n92cc25c67b65fc9c57381457e7752441782dc4d2d62828c13992a7c2eda57811fe7c2de66b725e08f361fee4d8370d3dff2cdba6c603cd03ae54d813e44793387ded1add2c006b320058\ne3ec7f8ccf313fac832d3ef5c3b8b10f1faf5ae8ec32bce0f5f98b9f4464624a58b0f74ffdb827d52d94fa77a8456ca550017f3c31d8e8e6827b6a9ac9664355bc57e9b46cc66b6e396a50\n636ffbeb1cb2e834ae37213247ca8e615fc52f00e79c13f37874edc549f4b629901312b685f3e1ae3394a6beebc5e0c1364c562b3579f34cbbe9ed80c5cc045b9ab7a749950d005e785832e0\n3ae686a5e1abf936d472963d6272226f920c8df4eed5c4b26d9afc910f509c205ffb56a0289fb62d38790dca4f85028f76b4339e9eee32c1c2690abd02c74ef9a7cc822f901ae596ef1b2f2f42\ne542066a18aed627ea3feea7a962b9c69a9a2f00bc0f22c7186c389701283807801d2cd79d678010d91379cfc6d72cf30830a34fd9983a0c011e775be61eb0d093a1432493abb703c8b5bf99ad63\n1392b4676365c1ee01f75811cabe0fa989faa6a222b65e72bf4016f7767c0e9f822de2ad0034098dd9867a787abe9b97adb1a345e96b345aea898682d71fc3febc0e2ef579874da073285d0ba4edc4\n2ddd472dd4090528036d7bf01cacfca7c71ce3d89bab2299b3d6f1b987c51e5f884cfed55ca25008811fa4f44d9bb8563d83cfeccc580865978972cec981f431e4b74857e2a565e5d6e0bc9f0a3c45ec\nd2a855d0e2a912ce3ff5ffa99c464c215d9ae1195e92b022d4518dde9fa5ecbdbac4f1877c1a94df35421a122a04073dbe7fce959c87497cb30774bac3441140089b4b714e025509fa3cd41d683ab46edf\n00bcf365897640b9268fad068977a11b7eb3006482b51c97543ba4359db31adcd18497d174844c9ec47a0f6132b16d14aa5a02c42583aabd033e520a8a9c5c430cc6708e8b9cdd4fd56c1023a744af67fd14\n0e20beb1a84e9c252b54c4db895324e85436f29e4855cdfa5bf4bbe7868bdbc51b7f0ac428ce54750e2cd16829051e95cd97f2f40c5a1a3db17f90b68570a05ac55a9eaa7c8bf377c7a752666de779ef46764f\n20ddf3ccd89c8bf4c084324858c0f0c7d4dcfd4a76a7526183a5bf4344f62320f29e7c0650d3c55ad587128e667d5d4e69689850fa741b49d3ceef45b134327ac89186248d1157aa4b16263731138777811e508b\n2a8fadda7001128cf59e3fcc93dc5c98e75ac92d66d536330eb90a558920e4416c210658b3bf44a451db23c62caac1a79fad1437a81d66ab98e4423d8a1ce9ed9a0586a160c4819a019a93781775c6510c6ed09cb9\n9049524d223052ee507450e65112e1f4331c4d7fd71e8237b8f79feb2fa30504c856d6907cc4eb814694e9a7b8a8b10d85f956df72062c5f4752dc42d37f164eae1a3155a11ecb413f92a0e49e0a89d398c21d76e100\n86a92236b4e0dc16e0a17e92825e31b66a417784b7f6c0a53c274ca5100847a929c0a30430ff67e6c8913a41c3437d8313fd11b2c0eebc75e5bdffeb95a4d100c7eb36216494f3c7a8f19403080941e3d1c9e319ede000\n4b15b094db5789ff78fafabdd0f0aa06d3f4ded903c89e8ae22982d152017295de63ad0b43d3d303243de1bbf2637e8e0c042024e307739ab3b02a5b7d299167909edd51f82229c0093a68768d56c2e774285ed95bdc24d9\n9bbca463a5142ea7dad0522f073eabc7eed63e4baea13efec9d7c198b75a9c4db88623c406edc5bf61ec61e047357358541aa66e44a364b779b6a8842c1b1e8131c594ac8298755ba532937b5bdbcbbd1f2c2152d03af55120\nedc5fe50b3f3a7de5ddc14b467e41ec0ce68a44f734c4cd46b5ee1d98337d8a917cf1dd13e09946d22918eaf31f83de1e035209a6f2de32bb7caf119d0db73e4075cb9a714adb84b4d0a6163aac56bb4299a71e8979a97e363f4\ne2770541945a0395fbf597fb58cc4e6f6a2883b707aa79df9c2da5a7165a8838b1e7f4736b5418bd2f99d3eb8020f9b4cb7ff3a620f8bef276f22f3e98ffe20adeac2f62a9e5758136d222a9c562f81f151d3980bdad54f52dbf55\n248474ddc86ce5e07be50fdd3a6a113ab7f2319e3fb86f1d2d361372fa1d89926ef501c5a62b9d2efeb409d0be8fb67f12c1624d04bcf9d555dad09dffdba76948b0eecba430110ab9e738db70e51c4e2f27350a49aecf1282410ab8\n37d75ee27cc14c95c9d930bb1324d8aa6cc77ba833504253d91002fb622d9e578a3f3b1439dad7d9d7af8ea17cebee86fe13c59f316434d46208c019c2e673168b5aaa397525cbce3a0b2f1c59c853600711e719218311e15d1ab9a0cf\n981461afd5756cc5d6a953c188b0a537fbcd18b41034cc4f40870cc2c97bcc48e3e4d563c2ee1d60d8c9f714996fc32e2977aaf7c3544e437f40f61d7281548efc22d7c298853304444c4184605b7b55148c24e88f362e41a8c919bf0288\nd65ac485824f9490c5f70fe674fe1da39b4583b25f3580b636a06135761eb0fb5e36a59dcb070dd9bfd5b2d69503a5c3ef295eb9cb3a9346578556d56fdd0c81cbdd960d292f8410681643af154b2550e2d586119b82cb17a79c1447cb26f6\ncdd5bd495ed8c2c41dc511577051ffa30ee02eddb95b3650337e8aeae161d2b81a9ebc1514524c52dbe2c4d0739706dbdcea1a7ba21d9cab36ca10f753fc82b218c01094e288bbcd96d6678e06e1a03f55c3bc6aea67b9637e87a4ce8e2aa0e8\n1d07389dad745981eb7ae03162bf249996cb836316872a4de4241d1fea49044541b9ababc2a10f7d5455ad3c0519997698a52039fd5517c53f7963aea8917e1b8ce3c63c5a2b23331cc473c1ff0986b08e8dd1257847256ded17e6d0409855f8e5\na1245e0117a0e7c3cfbcd3d3eeb21a5aa7f2a73aea4465f4d83c8d0c6237c5c093ada99ada6ad75dcf18d1eb58982c7316d5c366ce5128a832d433c960e6bf7be42e4dce2747e3cc78101ed44aebcdbbf6bcd42f5160ca40784ea3ee3dd6be537475\n\nHKDF/SHA-512:\nPRK: 2502bc897dc1b23f9f2d8c35d519c5280ea960bf9154ebb07d377a12a81a4794ea8bdc0cb6ec59ab3303f5cbd713027825715f8af2ac0203e560fd2e55f4ff2b\n\n4c\nabec\n6d7647\na3397e73\n15b3f69cec\nfb5c266f8785\n7147d8a6bff246\n1dd7f9b2ab2583ab\n725aee4e2d8d7f1f90\n046f63a1e2d606d7893e\nfc2026603b032dc6c862de\n03127d298ea441e3ae1d3781\na8f163b5b9476eb50dcb304bc2\n9430c3aa31857951320feaa65e4e\n14e4918f7b7eaa9c6d39dc08e9abc1\n3480c9854b8f0bb4a97920338dce7573\n42714ad1af787467b0388cb6663864ba89\n700cd7f28075fc3a28d98672207b45df5b20\n528c93053c63c5fa5ff1f0a6e7cde8d4aec5a8\nd225940fcd325eecf827666ebcb9ea3881dbfc3f\n0341475a114b87cdae767a4a68432889145748b0aa\nbbbf499a74a2c22dc4a2295bc904fdcd7d4e91b32060\ndeb06fe0b094b65da9febfed81f990ae77fd3f458a1bf3\nf64b7ac1473232a727ff461af2f650cc8a8419d7c97b7298\n3ca9c302e1096302185e2288beb6d91124c6abc9f9f97d5a4f\n81dfa7213143feb429dae2c641d25bf913aca03feead6ab7df10\n5d428190aad0539c0c2e6037e7745218dbf4e5c5aa0102996ceead\n7e76c9dcd614d730eaab145be60584c7bbe925bddc64d9dccde16142\n4b2be1c3dd5cd41d53ead2ce0aa220823ec4f3cf8656b14449e50cb48b\n4ceb80935422dba37af63ba59a460204dcd6639741d478185fd1a1e48de6\n633e555556c5288d808b2483d7e99bcc9876b42b61cbcc4d3e9ed42bcaee33\n0d28411da5a660b2eb063af0ed7e031c463a64eddd6c48882add6fad4cc9da92\n30b734f5768d26c4f8d641037b3e425c3d75c5c0c97cf8a3e684d1d2f1ba4f37b6\n970db4152321c2bac15898927aa25db90246c494017765b01ff21ae9a6aef7b89b88\nf168959f62696ea32a46ee67cdd3375684533f799e346fd1d26ad29aecd51de7c2c473\n76a81fa4b90ee1d1b05986c837f10f098cf1ac8f7d6be8097caec980b125185e8f9ee56d\ned95ff4a9919f45c08151fb7f610f5155dac10c92e84bebf2a6bf0fc653585158c19ef59fe\n16ff87fb87760dfbaa53a2820c9ef365ee3b539b4a7fd1a4e626d313f24db495319f98c247d3\nf514b605b74bb3a35b86f8c96fb08e751d916b3ecd8b5e84b364e57f1fb6e5928a3a46f4cf7b1a\necef871f30ca56fbd6b242b9d095a33b9d60472da4914af80dbb8672a84d8ba4640ff1b459cb9b1d\n9220ed520c628b7e7e249c334573ff2402d573e34b27c25c4ba22e2b472ccdd2ef4d060eeef5387dc6\nb431fd9eaba69bc20967d1d02014913637df29c855faa6e93a8571ea3c27ad2c542700c77f9f3d19e5bb\n7ebd91db579ec5879f81a922c58ee82a91b8cb648294f63b97f728a53411438f54157cb6459ae762b5ef3f\nc28a1322e46a89f7a2b6b3dd6d39cbcaa84368bca33a53c04bb7bc90c3f51065143d8e93a279a403aea8ca8a\n089ca5fb6e4de86c77cac49f92c8d3356697a1fa51c8e4a207ec44428c4da0b82aadad5f196510d0ae7abc25ab\n31b08873dafc0d8c11afacb5efd3fcabbb7cc5ff7aab6e1d40a7451ec715de4a4a6e7e15f9d1f9f832a0e1bc39d7\n984f57235036e6d44777a7bf41fa4333f3077d3f2d92b46bc36c29b123de8580d81e22b2969d9a5abf3bb5fb7b422d\n2730edbf85f4e35152af0f22fbc4f23f7968cb430fde9685cf4e1bb64611ba6459acedad777fe1a6d70c88733d83661f\n0eb2a97a6d6a5901535399caa5ccb7192e1f1488f9a06d3150ccafe1eeaa8d6e50e039a9344f68d1783973fcb34719c2fa\n24d7e154d4b7382daa4d1fb47a8badf0d1020e97f75efe74f302b983584e26bc1865d44c3761b65c4d745766da0bfce5682a\ncb7503ad874932bfc2c7b18176d3e03f3e66666613e3e8e2ac83a29965b56afb0aa74d1080ac2ffeb1c43ee160c9f120cc4c61\n0ad5086f6cf363dfbf14c13e82faf14dde185b7142bd0ae44da8692339ed31f47f10773578af23cd7a632352087d07a7f4133474\n72873f68ad5874e1146a70e96c98360ccf0e5e9a5e31e4e38c7829241a531b0712eee8f22729e244da3d94d92703d975e54d84c36c\nb05200d914edd05309a7aaafcde50cfbc201d988387d2b7fb7b7315b56d58ecaebc2f7c7b5d2607d041dfd3486e849cf2535c8ef76f4\n6324ea52a00274312457f451953302d02e3e9107aed0a4007c04d26f4b5ce37f31fbc5a2606575a464f64b507691646e2d773c62aac387\ne0c68ed5571a90bc8db36c948b5ffd9179cd80218ae47b86cc7bf4aa4adccc438ddf670ea817d324ca709b612522d510913eb64012462acb\n61d3ec6537c084df5981a79545847cbf204c3a267080e2cba06a29b4fa591bc43668f701cc0d9e33e123b774b066e212fd1989d253120bfdf6\n7b74db37484227d237eb7d4039ddade342827d0075322c14de32985d616ffe38c4786e2e0df89de856051796e1f922b6b47578c3428fade6b372\nfeea8d891c65fb37dc20095946b9f5db5aa936a2331fc9609ea45ee146107bf561710edceef2cea29e7c25032cb6764bc361eac0c148553e62ca5d\na95341f8f7536d95f14181e4aa01c540a345bd172b67279f5b6dfebe2c8fb7b366edb8ad7e4545eed29903eeb6f486fa9f9d825185a0333eeddd2b45\n5b7fd7b9d6623c25d508712d585fd541089c8b4721b9dc219baa9cfe14022b5ffb0ded9a546ddf183c543d1f26f9c4183f4c7ff012d61de8cb822bccb4\nfa0fc08f49144cf85dcefd25717f37de8469a943fdeaa8c764bbf483af7a37b0dcf1f50451b20e693635e94976c44ead0ef83ac632eec781e9d50efb2f9d\n6ec1e621af3a878ad836aeb322e67752de29a310d7e6fbe6d164bb79e8f939d7a8f9f77a72733482d323c50ae7dc2170b90a48c59da782865eb7a9e254aba3\n10d13645bc853dcac6b71dadf4327ea0c7497822a6e0691d93a5e9d32cbafb883f9ff0c245126e391666fed31747e92c81ab886d5e75bb057faac5b3b0f1afa8\ndfb3872da01656cddd9abcb389e75a4a01d89d0d49f571e77655ad1ae0c14c87d4146accaf59f3e402767e6666228ef8e52aa32cd18306f69666769159423d8141\nd3a86236f119fa35c480d5b4b71d3aec93e226db5d2173c04e5d1d88c696594f51ec36470487fb72044a039cc081607be2a99e5d8f1c653848176f97cd2e9d50a742\n0d1f5a47c4917f6158b039e68fdeda5fa3889bbac6dff571f6353f83ada55c26bb99dac4416b2dea7d0fec2b585877aed2709f2b25516551004fee20b68e21efded761\n79a910c7f74b303d5844b609148a5a723e31c6b00d16a773547fb6d97fd35bf4a452eefd7ac3466ea520d61be4b75493156c9ae39ce6698e7120e92ebb366adeafb21d09\na893878e100dc628ec674c4b48556c067419a3c317be94ed37cfd8ed8cae2ff035985579238f4dc13576677d527f21cde829a54466a911ab81888016c2094fda50e6dab622\n6faefe6e6bad59fab2a801aefd26d05ea3ac3ce546b0abfff524ec2ea80f3cc5c8c7015d18ae766cc84a2de75bc4c8a44cafb3743c6147e934d5de803d74ff8ca507d505065b\nef32b102fb18681c02cee796ba8bb602d927d3428c4387150a5c342532380d3234d69e58a607396af5802cfeece1554de5722931f4e09fe51ae4b74dcd7e851e9a95cf4218f96e\nefe653c021ff38cabba1a76f8df2b0737ccffe6dba0506074143c88f6547afb06bcf1a36ba8e48bad9e7ee76c70717e089e1c31f052ee8859f65d6cc0d4bdccf845c8a8955d316bb\n8bf54ff6ef8b0f73a569d908ef432227d7fff0e1300503c1d41f3b2618b089ba76873cc5abd22039f3bffd2bb88b4a169e1f55b8280ba8b474aee9a19a93710cdc05a51062ea5970a2\n126a003e4194b577fbf4070e8ecd47f3807afc7d9e733760a23b350649e924ebe702eaefedb70490b77fc8dbccd068baab02bcd64517aee6005d37a496f8dd92093ec34f5ec6af703836\n3b025057a1a889389b105956cffae970b21e3a1179382bb626856c793727ba9ca14706741b94b4704ce0089a378c1efadb7961fbbfd146d657b6ee605231d9ffc60eadcc6af32c43ec7e75\n0c2eadac7883bb59c278aa115b10b8d1459066b9e0061b7e4e2e1ec4caca02c6fc443e5f78c80779360f260507bc2d49beae6bf7470da5c8dca5ee51d251ed1db892db23a43c62fe088d07fc\n2f40a09aea1a9b7c32e7b68845de40452c9b753c31c46118d14d3b34c8c7f3eae0f3c0018300ce4d583715debeb9bac31de392080fe2630225a0f0e0d4c5b6e19ff1fa5bf5a0cb8840fed794fc\n155e5eef1e32ec06bd7a51741fbeafcbd82bddbb18fc34a984e9018f4b62d1b7ed4fc0b0d7843d4e8983ccdba6bb30d28f964994650e692a5b0b746171563be70a0c622f6a022ac4c655f216bb68\n142e1d62a31895b3a916453a0c01ca2a096d9b0747b3a2c9584822819cbffdab6c6461d4e4374e4d9363f8cc52861e2be1f4ad4edbdf4a72f1fc3667903df83a32a8810398e156ea8dd3385d416e9a\n08a01d87455bfb057d64a6374f8da7ae52f4575af5085e7aa3c390de0fe528c14767525b9af87e7e5ef053bf03b2390c98f7eef36161ae1c0d9eba83c4a78d9ae5d4322cbd0b3f7aaed183f18616e49d\n1c8ccae6d387f360c2fca138f1c65410918ca0cb47c15cbdee931ed03cbcec6e871f11f2692a9b9136f82b274a338805e863f87c5c0f99604c03484b1a2020732e5473bec84ced8ba05cd9490e75563628\nac3916dc874442f05ca2409bd5c63957bca4c5363dda23846a5901010818c57874aff1787bd7c554c95aae8e354ec55beb1b79966bae64197d4383c894485c8a509064957abe7f3fa4154dc0f0e958121fcc\nf0b7a82a962c7faa238acb98ebe4b904e8d5998e1856dbf68aea0933dfb3d80a44f0eaad678dacf31ee5c985fe6f9844f9490319745e89bf790d3e0cf2a788a177de8401119ebc9f7e48f58c279ef723fda7cc\n6d87c3942bc4ebbc224fac383f1b22af13a4ccdfae5ee66ab8f954ebbb874f583ef07152872ce03de5c3584574b91d91d2f6fc4b14625e3e2bdfd04fc7b9441d73f9c09411f08938429c9f12e31caea17e094d9d\n2e0d7c7f1c03ce9d4479fa800645abda4aade87bca0bbe547e889f8d32af7530d212171baae32831ecbd84cc27bb3da8496982a183e2785a0731220677341bcf75ae345ddb8bcdb7dccd2c4e1094d33ca53b0768cf\n9bec3f01c35ba5436e44b01a96077f41aa61516dff5cef6185818e7f57d2dd0b9d9ebfeb35a0cff1ae8d98975a0cdcf2b626dd7b1f8fa2534ffc058abc1b81e1c68aaeaf8e9b255c3eabe1d675399220d4b6d967fc5f\nb0d54ba8f86b01d511acb7ddb567198dabe835512d0033991a221b2bdf815d8063d073d1bbf5704f954df8f73a4ecec48417c2fec643f9e15d1d41b51f955f2422a69a2a8f73b6154881e6f6721f8e73a80efa5bfb1717\ncd41ad000e15e9b261e52b459bf79c7f7ffeb281629fba3c986c08b90a058abf76799dc72e430a1df8b64641cc2e03339ebb37fe7eabced490f77b58b3dcf492f981687036dcb94328cd9ad9f4e489de5d06bbd3671a9bf1\n21233d332c3fa9b056520c06fe55aa388773ee12ae893395df1d75c4932b54a5d679637d33930f2f8afa22be2fb4b1fd36a6c83b51057611c8119bd8cdb1efd8ee7063d5f13c09d2f8e5f8888eda3ece738e34f667aee451b9\n86418350d07d8f9d8b7e1190eb13634dc0a59f267730afe9409cecab0ac4f57feacaee8dec7321b8512991d51d4fe3b7cc2cbb5e6728ba115f022087606d15b39810032b3945e052574c7464c2b2434b2a54a801991d093f9390\n5501bfd8c7b1784515a192c0db6516b1fda893702ed45db7a5c07b32b3d9d41f396f9ed61cc4f9a143d4b4ab16c9f6975ee0a8851c62f80ddd4fdfef6c9f6f27c130a13109cd20779e4bab78200129900ecedae564c790153d2227\n7d45d142bdeff8e1b941537dab8685697988e60cd0ca0926dacc9a227de9f33e0dca5c7c17bcb3f3d3a1f39c4999313786933cb931c725b6359a1b10e31b77cd30f28e3bd4ebe898ef0ae1ee5e3a28a911fdc3759d04929c74321a9d\n36f11d276af5958a737c5f457ae997455025cde0503ecf1431ea68b6567530cf3abeee2391c1c549fd3bb274120b0613828839ae74b6a071ee9d29b6247ca6a8a1cd2195d24c6215f58be04e197b541828b99e3a71d0991be8245303ad\nefe64e5b4341239a2e60d342b89a302c2b8cbd45a33a5301936a051f69dd1644164bf7e24d269d341285a2c22aaa93517b1e9ae6a3d6b18961d4b1f58b357a113a12e9c6519ce7533f602b026dbd885c0584f21e099e74516d5db197dec0\ne5d90cf622738f73973fc448b7be40b044fac3dfc65d36db47f3fa9d01d41fb9808ad83e51729c0c2c35cc08226fbcd20a988ea24bb8373991e702c911d1764b309eda4d1500592ce0fee42fe111e9f9e346734b9e2758194ff9f0713613d1\n1444dfb0694d36937eb77a0b1f04c2e29e9904d1dcf03cf8d420315c5cb38463f8f3327df5cd34485b0e6db3eefedcd9015f4953a99c125f3ee803c4727c10e0ca943408d82a0c6c1b797a7a3a9e6446df53b8de29894309e81d09a321564b40\n171e9fb9e3867ac3ae4cbe09884cccb7561c2c0773ea8200c492ac338512f2017bc843b1ae5fb998c7d1f155b01b707f70dcbf68dab56d74a561b5fe7759788b5651a9ab0fe7006d0c096cacbc9ba93736bda0b967b7f1ebfb4c7a032e73f40392\ndb14a6d9c6311aadd73d9fb5b38b654bf306e0ea3880d22a12032971115d22dc38f9bf03ac83a177a0e36be7f710d4a903934601d15911942f11364692d77958be02be75eb6c697e3d963f6ca2c26449272bd05cd3ec41b884a6a97381f57f19d70c\ntv_kdf_hkdf: ok\n"
  },
  {
    "path": "test/default/kdf_hkdf2.c",
    "content": "\n#define TEST_NAME \"kdf_hkdf2\"\n#include \"cmptest.h\"\n\nstatic void\ntv_kdf_hkdf_incremental(void)\n{\n    unsigned char *master_key;\n    size_t         master_key_len = 66;\n    unsigned char *salt;\n    size_t         salt_len = 77;\n    char          *context;\n    size_t         context_len = 88;\n    unsigned char  prk_oneshot[crypto_kdf_hkdf_sha512_KEYBYTES];\n    unsigned char  prk_incremental[crypto_kdf_hkdf_sha512_KEYBYTES];\n    unsigned char  prk256_oneshot[crypto_kdf_hkdf_sha256_KEYBYTES];\n    unsigned char  prk256_incremental[crypto_kdf_hkdf_sha256_KEYBYTES];\n    unsigned char  out_oneshot[99];\n    unsigned char  out_incremental[99];\n    char           hex[99 * 2 + 1];\n    size_t         i;\n\n    master_key = (unsigned char *) sodium_malloc(master_key_len);\n    salt = (unsigned char *) sodium_malloc(salt_len);\n    context = (char *) sodium_malloc(context_len);\n    for (i = 0; i < master_key_len; i++) {\n        master_key[i] = (unsigned char) i;\n    }\n    for (i = 0; i < salt_len; i++) {\n        salt[i] = (unsigned char) ~i;\n    }\n    for (i = 0; i < context_len; i++) {\n        context[i] = (unsigned char) (i + 111);\n    }\n\n    crypto_kdf_hkdf_sha512_extract(prk_oneshot, salt, salt_len,\n                                   master_key, master_key_len);\n\n    {\n        crypto_kdf_hkdf_sha512_state state;\n\n        crypto_kdf_hkdf_sha512_extract_init(&state, salt, salt_len);\n        crypto_kdf_hkdf_sha512_extract_update(&state, master_key,\n                                              master_key_len);\n        crypto_kdf_hkdf_sha512_extract_final(&state, prk_incremental);\n    }\n    assert(memcmp(prk_oneshot, prk_incremental, sizeof prk_oneshot) == 0);\n    printf(\"sha512 incremental (single update): ok\\n\");\n\n    {\n        crypto_kdf_hkdf_sha512_state state;\n\n        crypto_kdf_hkdf_sha512_extract_init(&state, salt, salt_len);\n        for (i = 0; i < master_key_len; i++) {\n            crypto_kdf_hkdf_sha512_extract_update(&state, &master_key[i], 1);\n        }\n        crypto_kdf_hkdf_sha512_extract_final(&state, prk_incremental);\n    }\n    assert(memcmp(prk_oneshot, prk_incremental, sizeof prk_oneshot) == 0);\n    printf(\"sha512 incremental (byte-by-byte): ok\\n\");\n\n    {\n        crypto_kdf_hkdf_sha512_state state;\n        unsigned char prk_null_salt_oneshot[crypto_kdf_hkdf_sha512_KEYBYTES];\n        unsigned char prk_null_salt_incr[crypto_kdf_hkdf_sha512_KEYBYTES];\n\n        crypto_kdf_hkdf_sha512_extract(prk_null_salt_oneshot, NULL, 0,\n                                       master_key, master_key_len);\n        crypto_kdf_hkdf_sha512_extract_init(&state, NULL, 0);\n        crypto_kdf_hkdf_sha512_extract_update(&state, master_key,\n                                              master_key_len);\n        crypto_kdf_hkdf_sha512_extract_final(&state, prk_null_salt_incr);\n        assert(memcmp(prk_null_salt_oneshot, prk_null_salt_incr,\n                      sizeof prk_null_salt_oneshot) == 0);\n    }\n    printf(\"sha512 incremental (null salt): ok\\n\");\n\n    crypto_kdf_hkdf_sha512_expand(out_oneshot, 99, context, context_len,\n                                  prk_oneshot);\n    crypto_kdf_hkdf_sha512_expand(out_incremental, 99, context, context_len,\n                                  prk_incremental);\n    assert(memcmp(out_oneshot, out_incremental, 99) == 0);\n    printf(\"sha512 expand consistency: ok\\n\");\n\n    sodium_bin2hex(hex, sizeof hex, prk_oneshot, sizeof prk_oneshot);\n    printf(\"sha512 prk: %s\\n\", hex);\n\n    crypto_kdf_hkdf_sha256_extract(prk256_oneshot, salt, salt_len,\n                                   master_key, master_key_len);\n\n    {\n        crypto_kdf_hkdf_sha256_state state;\n        size_t half = master_key_len / 2;\n\n        crypto_kdf_hkdf_sha256_extract_init(&state, salt, salt_len);\n        crypto_kdf_hkdf_sha256_extract_update(&state, master_key, half);\n        crypto_kdf_hkdf_sha256_extract_update(&state, master_key + half,\n                                              master_key_len - half);\n        crypto_kdf_hkdf_sha256_extract_final(&state, prk256_incremental);\n    }\n    assert(memcmp(prk256_oneshot, prk256_incremental,\n                  sizeof prk256_oneshot) == 0);\n    printf(\"sha256 incremental (two chunks): ok\\n\");\n\n    {\n        crypto_kdf_hkdf_sha256_state state;\n        unsigned char prk_null_oneshot[crypto_kdf_hkdf_sha256_KEYBYTES];\n        unsigned char prk_null_incr[crypto_kdf_hkdf_sha256_KEYBYTES];\n\n        crypto_kdf_hkdf_sha256_extract(prk_null_oneshot, NULL, 0,\n                                       master_key, master_key_len);\n        crypto_kdf_hkdf_sha256_extract_init(&state, NULL, 0);\n        crypto_kdf_hkdf_sha256_extract_update(&state, master_key,\n                                              master_key_len);\n        crypto_kdf_hkdf_sha256_extract_final(&state, prk_null_incr);\n        assert(memcmp(prk_null_oneshot, prk_null_incr,\n                      sizeof prk_null_oneshot) == 0);\n    }\n    printf(\"sha256 incremental (null salt): ok\\n\");\n\n    sodium_bin2hex(hex, sizeof hex, prk256_oneshot, sizeof prk256_oneshot);\n    printf(\"sha256 prk: %s\\n\", hex);\n\n    sodium_free(context);\n    sodium_free(salt);\n    sodium_free(master_key);\n}\n\nint\nmain(void)\n{\n    tv_kdf_hkdf_incremental();\n\n    return 0;\n}\n"
  },
  {
    "path": "test/default/kdf_hkdf2.exp",
    "content": "sha512 incremental (single update): ok\nsha512 incremental (byte-by-byte): ok\nsha512 incremental (null salt): ok\nsha512 expand consistency: ok\nsha512 prk: 2502bc897dc1b23f9f2d8c35d519c5280ea960bf9154ebb07d377a12a81a4794ea8bdc0cb6ec59ab3303f5cbd713027825715f8af2ac0203e560fd2e55f4ff2b\nsha256 incremental (two chunks): ok\nsha256 incremental (null salt): ok\nsha256 prk: 8c3725c0ea8e14106d8c342887ccd1218cc205acecd8095ae1efc099ec195e7e\n"
  },
  {
    "path": "test/default/kdf_hkdf3.c",
    "content": "\n#define TEST_NAME \"kdf_hkdf3\"\n#include \"cmptest.h\"\n\nint\nmain(void)\n{\n    unsigned char prk[crypto_kdf_hkdf_sha512_KEYBYTES];\n    unsigned char out[256];\n    int           ret;\n\n    crypto_kdf_hkdf_sha512_keygen(prk);\n    assert(!sodium_is_zero(prk, sizeof prk));\n    printf(\"sha512 keygen: ok\\n\");\n\n    ret = crypto_kdf_hkdf_sha512_expand(\n        out, crypto_kdf_hkdf_sha512_BYTES_MAX + 1,\n        \"ctx\", 3, prk);\n    assert(ret == -1);\n    printf(\"sha512 expand max+1: ok\\n\");\n\n    crypto_kdf_hkdf_sha512_extract(prk, NULL, 0,\n                                   (const unsigned char *) \"ikm\", 3);\n\n    ret = crypto_kdf_hkdf_sha512_expand(out, 100, \"ctx\", 3, prk);\n    assert(ret == 0);\n    printf(\"sha512 expand partial block: ok\\n\");\n\n    {\n        unsigned char prk256[crypto_kdf_hkdf_sha256_KEYBYTES];\n\n        crypto_kdf_hkdf_sha256_keygen(prk256);\n        assert(!sodium_is_zero(prk256, sizeof prk256));\n        printf(\"sha256 keygen: ok\\n\");\n\n        ret = crypto_kdf_hkdf_sha256_expand(\n            out, crypto_kdf_hkdf_sha256_BYTES_MAX + 1,\n            \"ctx\", 3, prk256);\n        assert(ret == -1);\n        printf(\"sha256 expand max+1: ok\\n\");\n    }\n\n    return 0;\n}\n"
  },
  {
    "path": "test/default/kdf_hkdf3.exp",
    "content": "sha512 keygen: ok\nsha512 expand max+1: ok\nsha512 expand partial block: ok\nsha256 keygen: ok\nsha256 expand max+1: ok\n"
  },
  {
    "path": "test/default/kdf_hkdf4.c",
    "content": "#define TEST_NAME \"kdf_hkdf4\"\n#include \"cmptest.h\"\n\nint\nmain(void)\n{\n    unsigned char prk256[crypto_kdf_hkdf_sha256_KEYBYTES];\n    unsigned char prk512[crypto_kdf_hkdf_sha512_KEYBYTES];\n    unsigned char out256[256];\n    unsigned char out512[256];\n    char          hex[65];\n\n    crypto_kdf_hkdf_sha256_extract(prk256, NULL, 0,\n                                   (const unsigned char *) \"input key material\", 18);\n\n    assert(crypto_kdf_hkdf_sha256_expand(out256, 100, \"context\", 7, prk256) == 0);\n    sodium_bin2hex(hex, sizeof hex, out256, 32);\n    printf(\"sha256 expand 100 first 32: %s\\n\", hex);\n    sodium_bin2hex(hex, sizeof hex, out256 + 64, 32);\n    printf(\"sha256 expand 100 bytes 64-95: %s\\n\", hex);\n\n    crypto_kdf_hkdf_sha512_extract(prk512, NULL, 0,\n                                   (const unsigned char *) \"input key material\", 18);\n\n    assert(crypto_kdf_hkdf_sha512_expand(out512, 200, \"context\", 7, prk512) == 0);\n    sodium_bin2hex(hex, sizeof hex, out512, 32);\n    printf(\"sha512 expand 200 first 32: %s\\n\", hex);\n    sodium_bin2hex(hex, sizeof hex, out512 + 128, 32);\n    printf(\"sha512 expand 200 bytes 128-159: %s\\n\", hex);\n\n    assert(crypto_kdf_hkdf_sha512_expand(out512, 128, \"ctx2\", 4, prk512) == 0);\n    sodium_bin2hex(hex, sizeof hex, out512 + 64, 32);\n    printf(\"sha512 expand 128 second block: %s\\n\", hex);\n\n    assert(crypto_kdf_hkdf_sha512_expand(out512, 64, \"ctx3\", 4, prk512) == 0);\n    sodium_bin2hex(hex, sizeof hex, out512, 32);\n    printf(\"sha512 expand 64: %s\\n\", hex);\n\n    printf(\"ok\\n\");\n\n    return 0;\n}\n"
  },
  {
    "path": "test/default/kdf_hkdf4.exp",
    "content": "sha256 expand 100 first 32: 6c7c112b81dce760ab3e69dc3d908046a8b0eaa96cf0d0193196ddc422190535\nsha256 expand 100 bytes 64-95: 242987e3b48af0960bd7fc2f436ce4017f7f5706179b7063204347b1581be20a\nsha512 expand 200 first 32: f8f7a3d9d607725ce796b192216c4eb3cb95fc91b946eeaa9cc5d60998123b9a\nsha512 expand 200 bytes 128-159: 521f83b9f328f046a1358214abf716e356987c02dceb04ee139f7c120a5c8c55\nsha512 expand 128 second block: 5512dbbaf49f8f4351de113f123c8cd2dc93b67b4fd7c1e46d9e89a682489930\nsha512 expand 64: b31b0743dc48859226e25ee25337c18a6dbf21b1ec8124b11ac282be30e934b2\nok\n"
  },
  {
    "path": "test/default/kem.c",
    "content": "#define TEST_NAME \"kem\"\n#include \"cmptest.h\"\n\nstatic void\ntv_kem(void)\n{\n    unsigned char *pk;\n    unsigned char *sk;\n    unsigned char *seed;\n    unsigned char *ct;\n    unsigned char *ss_enc;\n    unsigned char *ss_dec;\n    int            i;\n\n    pk = (unsigned char *) sodium_malloc(crypto_kem_PUBLICKEYBYTES);\n    sk = (unsigned char *) sodium_malloc(crypto_kem_SECRETKEYBYTES);\n    seed = (unsigned char *) sodium_malloc(crypto_kem_SEEDBYTES);\n    ct = (unsigned char *) sodium_malloc(crypto_kem_CIPHERTEXTBYTES);\n    ss_enc = (unsigned char *) sodium_malloc(crypto_kem_SHAREDSECRETBYTES);\n    ss_dec = (unsigned char *) sodium_malloc(crypto_kem_SHAREDSECRETBYTES);\n\n    printf(\"primitive: %s\\n\", crypto_kem_primitive());\n\n    assert(crypto_kem_publickeybytes() == crypto_kem_PUBLICKEYBYTES);\n    assert(crypto_kem_secretkeybytes() == crypto_kem_SECRETKEYBYTES);\n    assert(crypto_kem_ciphertextbytes() == crypto_kem_CIPHERTEXTBYTES);\n    assert(crypto_kem_sharedsecretbytes() == crypto_kem_SHAREDSECRETBYTES);\n    assert(crypto_kem_seedbytes() == crypto_kem_SEEDBYTES);\n\n    printf(\"constants: ok\\n\");\n\n    for (i = 0; i < (int) crypto_kem_SEEDBYTES; i++) {\n        seed[i] = (unsigned char) i;\n    }\n    crypto_kem_seed_keypair(pk, sk, seed);\n\n    assert(crypto_kem_enc(ct, ss_enc, pk) == 0);\n    assert(crypto_kem_dec(ss_dec, ct, sk) == 0);\n\n    if (memcmp(ss_enc, ss_dec, crypto_kem_SHAREDSECRETBYTES) != 0) {\n        printf(\"ERROR: shared secrets don't match!\\n\");\n    } else {\n        printf(\"shared secrets match: ok\\n\");\n    }\n\n    crypto_kem_keypair(pk, sk);\n    assert(crypto_kem_enc(ct, ss_enc, pk) == 0);\n    assert(crypto_kem_dec(ss_dec, ct, sk) == 0);\n\n    if (memcmp(ss_enc, ss_dec, crypto_kem_SHAREDSECRETBYTES) != 0) {\n        printf(\"ERROR: shared secrets don't match (random keys)!\\n\");\n    } else {\n        printf(\"random keypair test: ok\\n\");\n    }\n\n    sodium_free(ss_dec);\n    sodium_free(ss_enc);\n    sodium_free(ct);\n    sodium_free(seed);\n    sodium_free(sk);\n    sodium_free(pk);\n}\n\nint\nmain(void)\n{\n    tv_kem();\n\n    return 0;\n}\n"
  },
  {
    "path": "test/default/kem.exp",
    "content": "primitive: xwing\nconstants: ok\nshared secrets match: ok\nrandom keypair test: ok\n"
  },
  {
    "path": "test/default/kem_mlkem768.c",
    "content": "#define TEST_NAME \"kem_mlkem768\"\n#include \"cmptest.h\"\n\nstatic const char tv1_d[] =\n    \"7c9935a0b07694aa0c6d10e4db6b1add2fd81a25ccb148032dcd739936737f2d\";\nstatic const char tv1_z[] =\n    \"b505d7cfad1b497499323c8686325e4792f267aafa3f87ca60d01cb54f29202a\";\nstatic const char tv1_pk_prefix[] =\n    \"a8e651a1e685f22478a8954f007bc7711b930772c78f092e82878e3e937f3679\";\nstatic const char tv1_m[] =\n    \"eb4a7c66ef4eba2ddb38c88d8bc706b1d639002198172a7b1942eca8f6c001ba\";\nstatic const char tv1_ct_prefix[] =\n    \"3b835a5fa145387a0819c4daa1e65fbe2ba5400afcd640bbddbbe3585f24bedd\";\nstatic const char tv1_ss[] =\n    \"ac865f839fef1bf3d528dd7504bed2f64b5502b0fa81d1c32763658e4aac5037\";\n\nstatic const char tv2_d[] =\n    \"d60b93492a1d8c1c7ba6fc0b733137f3406cee8110a93f170e7a78658af326d9\";\nstatic const char tv2_z[] =\n    \"588522d326e7f105f11c4e8d97e119e193af42dc28409f4f7572ada538b52c1f\";\nstatic const char tv2_pk_prefix[] =\n    \"93c140f6c47b7e53b96f72bb18447d277cc021c144a0f7a35e30b57386a78ac9\";\nstatic const char tv2_m[] =\n    \"46401015603c5e2174cb94ac742e836b516e2d570f15de0b9d0204d79ac64ba3\";\nstatic const char tv2_ct_prefix[] =\n    \"4ddf4e2919943817ab3b4cb085daefe5fec774d83d96c2cee74149e25addd15f\";\nstatic const char tv2_ss[] =\n    \"950492e940bfa86ac28183de02efc04017d1755106a854fbb2ac68174f705b41\";\n\nstatic const char wycheproof_seed[] =\n    \"cbfc4405d1b2a3a386c94c25e0f2d5f5ee92cb0388ff4d6aa04223086d51c3fd\"\n    \"24752da14c9fc3b8ae0d9e4a8b1016b8d8fc69e229c03ea2ef08a4ae0cffc37f\";\n\nstatic const char wycheproof_ek[] =\n    \"8b9a7354e8c1c17a9898f96caf99bba1c625ae0983c4d26e60c12f59bc25d756\"\n    \"182b17979e713fff129e6c336a2317770380858129cb91a902ea5455ca076c20\"\n    \"e4158f393aa2783053d8acf92c3286a10436d72af3e8903ce22f8cbab18b1309\"\n    \"aca205aa8a3da45807e5b60e6967a640a713a5b81b0d82bc406934e3c88910cc\"\n    \"06f09a68bce991009bb56ae233296218ff5baf1f475390b8b7494a4e08364598\"\n    \"5437f2495a073222fea058e1672034151a2e14c2cbcb4ad9068c8e7bcb02886c\"\n    \"4087c14bd8823ec66393fb2e12326b38e655dcab1c13cb2931358715c8be5153\"\n    \"293229cc994a5702b7295a6a4a73249ac5a30a32a6b91dca768c177d8fa59054\"\n    \"e548bee40257db6962a83b64ec6de0d3be7b1812c5d99e7a38cf54eaa8413aa0\"\n    \"bd02bf374461f29c2b6aea56f7d33e10dbbc75bb1bf6b555213aac33e652443a\"\n    \"186a618b6e9a293919693f1673ea159d0ee52c92d53e9a5cbd5f4c44419b5493\"\n    \"f0286efcb9b5a2ad56a713c4f61ed431aa987805a90475391ccd4c7a28d884bf\"\n    \"1a926b7675b9208897a89a6384c154acca3521c32a994949b2e80b2ff2518c0b\"\n    \"bd34184cda443de498a05dfba9ce701bb914179a0188be0bcda6fbc2cd93afb0\"\n    \"42481b4a84d821160a1b0ade8bcb97dbaf681547cce0bca674151a261a21aa04\"\n    \"fda318c921c38425b775b995cd7b4eb6369f0b211da186594de815fa3b53a680\"\n    \"43e1946468a5899b90578ad49397306f71acab67c258fa17a31893b72d22151c\"\n    \"e1afee150fe550bffde8a24fe4740dd43f387c7ad20b5cca5997879536c30715\"\n    \"74901147727341c1a6fc8043e6454903e88217f0c92b9a4ac54a86e790939087\"\n    \"8a35ba18c1e26b13049f41c522bc049d74db6f76caba39f23d8f07abc26a07a1\"\n    \"caba71cb5c12fbc20a715450b2228d17b2ba985cfe2496b033b55f300baf9929\"\n    \"64388a5422298f627ba567730ddb03a195806a5c23a1d315481c52814b0681ea\"\n    \"3c804b02c90688c2fbbce9b17d230a42f8b865417c9e93347f5ff624879962747c7eed886acd48a994b22064ca499c69aa4825be60260d12f63102799828b3cc\"\n    \"ebaa4340b749605017eb4598ff13a634500a48470de9078a34106267d25a0b14\"\n    \"4d8cdb1a4d527692153da013c0ab27ae2ca955e7c66238746022d50630892933\"\n    \"a05c283a9f4c00c9f984646f75471081722ed3404ce60fed4a06702b8728b62d\"\n    \"920b3224206ab0a4694f9c18e3162b529c16af04b87b4a61cd53a757906d67a1\"\n    \"39629585d423a3b0986f29c95984e2095ea4608784b0b31c20cbc36cfd60b773\"\n    \"389fe5a8c0958211a35b2c45f21f51a08693c19bfc388c2d677a214ccc5a7cb0\"\n    \"b67030fd6987503c91b0f2646985a9048489dd882bd4141f5419554eb738fa73\"\n    \"33c5c57a4ce5541fd6b8ad454c2dea67ad1c6f848c0a44a1872e40a17d987075\"\n    \"d762ba5aaa21d435dd079b989a8ee21a2ce898934a98a02d5b381c302a2d7694\"\n    \"8fa65de15666f57750d580ae1a541c700692dd0b0a6799b5cdb893413bb89bb6\"\n    \"5182f219a4bc3c80b43bb591bcd05ac6e9a366552558ed5c5fbe7b4acfc7b233\"\n    \"72094f6a87f26c0c46646c55a888871324fea7536e586a5149b9b707c86ea076\"\n    \"486a6822b9bbf59fbfcaedc13284b9813cabdd526e326a6832d3b36efc3102ef\";\n\nstatic const char wycheproof_ct[] =\n    \"00e96c44eb5f5380d80b4cb05d608971a28fbe838b912b558bf9676c6c67c969\"\n    \"2ed6ea063fc47b70d5d6004825c269b9cb8e68b5728d67f44844d97686a11154\"\n    \"e3cbd4a6f9e47524d93d851bdce480d7762ded09be53d17cce3ee28dc5a06911\"\n    \"c062b99b218355dd5822108c55e2c67f7ea0b74b6189b33b4589d8ff9d0c867d\"\n    \"13edaaf1c5f724675320beda3e6acc673c048fa04a1b30f899227d5a555e08a4\"\n    \"12a47b7db75eb118a8844a71b186880426f6bb6e77186d18e753cbcce93c9fb7\"\n    \"6c729875b4d473eeca8dab9941969faef04df9ce3178e7341eab416d28bb7aee\"\n    \"12bfb8f4c3df814eff45a0187329079acfc41a8e8dba7b08d111f02e37a1d2b6\"\n    \"9e57eef808fcc6ae23385534a420a93dfb6a95c73e2f1016177c4fe9d3ced769\"\n    \"e277293aaceded6d07efc7890eaa885bd1e73f9e5da2b9cfda0d44cbc9090705\"\n    \"ac2ce3e7bcd7775b593c706e45ddc97d3a65d9b7e73673f9473df5bfec689671\"\n    \"f73e7f6ee77c730a8ebda1f0b2c112a71904d6f28a51d8d479f8323fb485e722\"\n    \"f5c4d5857e95989a9cbaf273efd04fc3cbde98baa9969e095e88accecfbd12ef\"\n    \"2155497a5b15fe91a70d1106b91a568363bfc2d6736cc8138cbc41ddf1e54fd4\"\n    \"0511e27d89e2c26c027b63c156e2bbb998faaed3d72186f0cc626dad39a782dc\"\n    \"da2087fd13a9498e10b41b685646a227ea1166a5632c195983f4aba2b718b407\"\n    \"4030d57126d34c38349892007acbea9e393b967dc3146b270f080a1f0bee90d6\"\n    \"5a095a6352a7718ed1717a8025a2bd38c66d120baf4247676a1fe044a57ce268\"\n    \"c078f8ff46cc26fe4f9c7a03d6467adacb8418d26273662bce1f7bc00b906e00\"\n    \"88e95dc0fb419e2232e85aac77b9e7cd563e604de5e1d3e9693dcd3b19865cf4\"\n    \"250773691e7e0af9c2755cd31f49d1f96708f3ba2f0b98184525abb869e12d5c\"\n    \"ea0ac1740181a875035300b05a54b8d42ee3b4ae92b06e43cd807e2b096c977f\"\n    \"23c61ef8c989c52ed83754076dea1323f639250bef61bdf903bf7961cec89ba6\"\n    \"942d9d0647ac9c8195d93ed8abcedf25754644035719a5a0a1c8c0798912726a\"\n    \"9a8258e4c10ae7485322ed9ba331f6f090c4b492a4fcf53d753cd34f28ec0443\"\n    \"fce0724f43c89a3942169d5099a8f7430f38691ebce2e3fe4f600d82c7ccedf6\"\n    \"0673f8e5d4c1a9f84b8b5b23f5ed63defb6a7205e0a8b105bdc6ff4568fc78cb\"\n    \"4456b02fedb7f4c48f6fd6b69216a3319821039db40e19a31a0b0c9d471d5a7a\"\n    \"73865d26f8be3595525b1ec4a8579efd07ea98e2602e2bffdfd8febc5c7b4c73\"\n    \"6d326b5030ccc6faf9420a9c156a8f4516b9fff675459dfdcd4ef85d7adbdffd\"\n    \"60f4a39628e399cc752c2e99ab2f431dc765e7c9d206bfe32649fbef4ef48b1d\"\n    \"7936fc74766d724350ee2245a8d5f23fbc6c7ed8b57168ce1e864e49d7f8c475\"\n    \"dcda140bd42473825b3c72eb8c54780188813011e1962a503f9b516e13226de6\"\n    \"375b204733b0192183c8f55e870e61cf8947c3191790bc0b657bc43aebc9d86c\";\n\nstatic const char wycheproof_ss[] =\n    \"76c10bb1d86d96d7eb18e298363e51f7728e113f455df7d15017940ed3541451\";\n\nstatic const char *wycheproof_invalid_ek[] = {\n    \"016d4cd2120d97581838192bb56463ee2b9a96e620bc7976bf3634f441ab0641ba3a904cfd4b55ba40cc6fdb906ac1a95637112c7a48dbf311d67004bb583e068b9936b32463245da31685a878a90d205162b587a322cebe475fc70186b8b52cab2c9e838873406a98574c65e83b0063d316a8654b5ef7537b487a25114c521bbfdb4780d58804c1c172cfac59b9bb8ba804a10fc6607633cc89d18bc5579d7a0825a2a72bc32869ba8518fafa522a9950ef7ab4625c417e6b6fa3f0165dd47d78ab8587f22b99abad73a90880b2b08c4876b61ca536f675b4b8a37460ad4400910d265e5146ae4be61a09c30a1de01f4636a802413fc8f051cde78e4fc51ba8f3a2cad1474775a7d7ec513a57541861702d6480c70cce8912bd2c01bf11378604005695d64c1969cf25714ae287c019da020d66af70c1528e12365fe25106e8179b04ccf0cba724fb6a89b83ca9f55012b66267337f6618484a7a70e8a1163cb17426ea132e1a56e53ab86e491e39dbbe4e4465a785106b5255dc2190d2f2bbe896a8cc64a228c2b9a8943214f97a3b40a8e41053fd4346a7fcab06fa72de8c33cca788e2e09e09dacd7034038ec13d1a065cf7d14c5de44a6d56873232ba84585b9d0811320659be5a19cdc759969a0bdeca5410977e40163dc2da6665c45954b900e3a97512897d1c7a6cc2a60acfb2175151043ae29a0d240e760c1d100a6877b5a10fb69054d0cf80dca4c15350fc685001899a7a6515e9c7ac3325938997b4387c16022a91ee5c2fa2ab8bd6fa898667831af38349fb1badb52b472210e36bca63342a0cd869a44a04a7e68859f66094d8c104c33b38444b8fb168025b479a5a7772c1bacd73b3ef88ae6fe66aab1846723c65d3d106c1722e2235ac7865a04584324062826e463edc13803c9796e54bce6b80933057abb9328ab501688e69148fbaa811ea9792316068a9abfa583e45ab6549ccb7e9e70d9139c0ebc7b995ec1463fc321f38bff2b2b995192eaa305daf1c44352371089637ed673dd82b8ad8bb3bb2299b9e5369f104a454357e5a2238e6315fa720343064be4ff8657da81d7c5c4b51c5b896669f029483f7c273f763ce26150ce3550c4ddcb26f37b2dea19b2dd197d449c9b693c10a3cb04de8c9f425a523d173240a69c4f0479bc177d836cda34b2cb64440acd464d904b66662295f0950460b710f089090b49fc7a6276e219eb4f19ee4dc12d2045141497064c4beae80a8ded00438d90a012963de54380f137666b2ab09844198ba807a4972f1b35f7b9789d847cc3e5a4a08cb17d4d9065ce09a74609ae935218c5bcd51f9bd774aa720e6423f75a974a3c21835a6018886dd119766909413aa576144c10b49c17ba1c793f78f7c580eba195bd8407f00f568c4d546c7d677dd02c78930c3e969b5584129e1815c6ce32162f09d6f7303f69c5f0216625c782666f9c8cf8678f1b63635067392aa3fba56204a1831491c2eee759ce674abd34251732949f9874059b35b66089a1905896c94111511a449f695e2c036d87b585a74834d676b9a2b2aa74a386cfa446f86934b844068147013396fa2d3bb8fa11d97b992a04a6ba65c189b238106cb8d15837bade3c278034d6d86bd50a3049feb37499b08aba61b38ffeaf94bc84cdb360fbc\",\n    \"8b654cd2120d97581838192bb56463ee2b9a96e620bc7976bf3634f441ab0641ba3a904cfd4b55ba40cc6fdb906ac1a95637112c7a48dbf311d67004bb583e068b9936b32463245da31685a878a90d205162b587a322cebe475fc70186b8b52cab2c9e838873406a98574c65e83b0063d316a8654b5ef7537b487a25114c521bbfdb4780d58804c1c172cfac59b9bb8ba804a10fc6607633cc89d18bc5579d7a0825a2a72bc32869ba8518fafa522a9950ef7ab4625c417e6b6fa3f0165dd47d78ab8587f22b99abad73a90880b2b08c4876b61ca536f675b4b8a37460ad4400910d265e5146ae4be61a09c30a1de01f4636a802413fc8f051cde78e4fc51ba8f3a2cad1474775a7d7ec513a57541861702d6480c70cce8912bd2c01bf11378604005695d64c1969cf25714ae287c019da020d66af70c1528e12365fe25106e8179b04ccf0cba724fb6a89b83ca9f55012b66267337f6618484a7a70e8a1163cb17426ea132e1a56e53ab86e491e39dbbe4e4465a785106b5255dc2190d212d0e896a8cc64a228c2b9a8943214f97a3b40a8e41053fd4346a7fcab06fa72de8c33cca788e2e09e09dacd7034038ec13d1a065cf7d14c5de44a6d56873232ba84585b9d0811320659be5a19cdc759969a0bdeca5410977e40163dc2da6665c45954b900e3a97512897d1c7a6cc2a60acfb2175151043ae29a0d240e760c1d100a6877b5a10fb69054d0cf80dca4c15350fc685001899a7a6515e9c7ac3325938997b4387c16022a91ee5c2fa2ab8bd6fa898667831af38349fb1badb52b472210e36bca63342a0cd869a44a04a7e68859f66094d8c104c33b38444b8fb168025b479a5a7772c1bacd73b3ef88ae6fe66aab1846723c65d3d106c1722e2235ac7865a04584324062826e463edc13803c9796e54bce6b80933057abb9328ab501688e69148fbaa811ea9792316068a9abfa583e45ab6549ccb7e9e70d9139c0ebc7b995ec1463fc321f38bff2b2b995192eaa305daf1c44352371089637ed673dd82b8ad8bb3bb2299b9e5369f104a454357e5a2238e6315fa720343064be4ff8657da81d7c5c4b51c5b896669f029483f7c273f763ce26150ce3550c4ddcb26f37b2dea19b2dd197d449c9b693c10a3cb04de8c9f425a523d173240a69c4f0479bc177d836cda34b2cb64440acd464d904b66662295f0950460b710f089090b49fc7a6276e219eb4f19ee4dc12d2045141497064c4beae80a8ded00438d90a012963de54380f137666b2ab09844198ba807a4972f1b35f7b9789d847cc3e5a4a08cb17d4d9065ce09a74609ae935218c5bcd51f9bd774aa720e6423f75a974a3c21835a6018886dd119766909413aa576144c10b49c17ba1c793f78f7c580eba195bd8407f00f568c4d546c7d677dd02c78930c3e969b5584129e1815c6ce32162f09d6f7303f69c5f0216625c782666f9c8cf8678f1b63635067392aa3fba56204a1831491c2eee759ce674abd34251732949f9874059b35b66089a1905896c94111511a449f695e2c036d87b585a74834d676b9a2b2aa74a386cfa446f86934b844068147013396fa2d3bb8fa11d97b992a04a6ba65c189b238106cb8d15837bade3c278034d6d86bd50a3049feb37499b08aba61b38ffeaf94bc84cdb360fbc\",\n    \"ff6f4cd2120d97581838192bb56463ee2b9a96e620bc7976bf3634f441ab0641ba3a904cfd4b55ba40cc6fdb906ac1a95637112c7a48dbf311d67004bb583e068b9936b32463245da31685a878a90d205162b587a322cebe475fc70186b8b52cab2c9e838873406a98574c65e83b0063d316a8654b5ef7537b487a25114c521bbfdb4780d58804c1c172cfac59b9bb8ba804a10fc6607633cc89d18bc5579d7a0825a2a72bc32869ba8518fafa522a9950ef7ab4625c417e6b6fa3f0165dd47d78ab8587f22b99abad73a90880b2b08c4876b61ca536f675b4b8a37460ad4400910d265e5146ae4be61a09c30a1de01f4636a802413fc8f051cde78e4fc51ba8f3a2cad1474775a7d7ec513a57541861702d6480c70cce8912bd2c01bf11378604005695d64c1969cf25714ae287c019da020d66af70c1528e12365fe25106e8179b04ccf0cba724fb6a89b83ca9f55012b66267337f6618484a7a70e8a1163cb17426ea132e1a56e53ab86e491e39dbbe4e4465a785106b5255dc2190d2f2bbe896a8cc64a228c2b9a8943214f97a3b40a8e41053fd4346a7fcab06fa72de8c33cca788e2e09e09dacd7034038ec13d1a065cf7d14c5de44a6d56873232ba84585b9d0811320659be5a19cdc759969a0bdeca5410977e40163dc2da6665c45954b900e3a97512897d1c7a6cc2a60acfb2175151043ae29a0d240e760c1d100a6877b5a10fb69054d0cf80dca4c15350fc685001899a7a6515e9c7ac3325938997b4387c16022a91ee5c2fa2ab8bd6fa898667831af38349fb1badb52b472210e36bca63342a0cd869a44a04a7e68859f66094d8c104c33b38444b8fb168025b479a5a7772c1bacd73b3ef88ae6fe66aab1846723c65d3d106c1722e2235ac7865a04584324062826e463edc13803c9796e54bce6b80933057abb9328ab501688e69148fbaa811ea9792316068a9abfa583e45ab6549ccb7e9e70d9139c0ebc7b995ec1463fc321f38bff2b2b995192eaa305daf1c44352371089637ed673dd82b8ad8bb3bb2299b9e5369f104a454357e5a2238e6315fa720343064be4ff8657da81d7c5c4b51c5b896669f029483f7c273f763ce26150ce3550c4ddcb26f37b2dea19b2dd197d449c9b693c10a3cb04de8c9f425a523d173240a69c4f0479bc177d836cda34b2cb64440acd464d904b66662295f0950460b710f089090b49fc7a6276e219eb4f19ee4dc12d2045141497064c4beae80a8ded00438d90a012963de54380f137666b2ab09844198ba807a4972f1b35f7b9789d847cc3e5a4a08cb17d4d9065ce09a74609ae935218c5bcd51f9bd774aa720e6423f75a974a3c21835a6018886dd119766909413aa576144c10b49c17ba1c793f78f7c580eba195bd8407f00f568c4d546c7d677dd02c78930c3e969b5584129e1815c6ce32162f09d6f7303f69c5f0216625c782666f9c8cf8678f1b63635067392aa3fba56204a1831491c2eee759ce674abd34251732949f9874059b35b66089a1905896c94111511a449f695e2c036d87b585a74834d676b9a2b2aa74a386cfa446f86934b844068147013396fa2d3bb8fa11d97b992a04a6ba65c189b238106cb8d15837bade3c278034d6d86bd50a3049feb37499b08aba61b38ffeaf94bc84cdb360fbc\",\n    \"8b654cd2120d97581838192bb56463ee2b9a96e620bc7976bf3634f441ab0641ba3a904cfd4b55ba40cc6fdb906ac1a95637112c7a48dbf311d67004bb583e068b9936b32463245da31685a878a90d205162b587a322cebe475fc70186b8b52cab2c9e838873406a98574c65e83b0063d316a8654b5ef7537b487a25114c521bbfdb4780d58804c1c172cfac59b9bb8ba804a10fc6607633cc89d18bc5579d7a0825a2a72bc32869ba8518fafa522a9950ef7ab4625c417e6b6fa3f0165dd47d78ab8587f22b99abad73a90880b2b08c4876b61ca536f675b4b8a37460ad4400910d265e5146ae4be61a09c30a1de01f4636a802413fc8f051cde78e4fc51ba8f3a2cad1474775a7d7ec513a57541861702d6480c70cce8912bd2c01bf11378604005695d64c1969cf25714ae287c019da020d66af70c1528e12365fe25106e8179b04ccf0cba724fb6a89b83ca9f55012b66267337f6618484a7a70e8a1163cb17426ea132e1a56e53ab86e491e39dbbe4e4465a785106b5255dc2190d2f2ffe896a8cc64a228c2b9a8943214f97a3b40a8e41053fd4346a7fcab06fa72de8c33cca788e2e09e09dacd7034038ec13d1a065cf7d14c5de44a6d56873232ba84585b9d0811320659be5a19cdc759969a0bdeca5410977e40163dc2da6665c45954b900e3a97512897d1c7a6cc2a60acfb2175151043ae29a0d240e760c1d100a6877b5a10fb69054d0cf80dca4c15350fc685001899a7a6515e9c7ac3325938997b4387c16022a91ee5c2fa2ab8bd6fa898667831af38349fb1badb52b472210e36bca63342a0cd869a44a04a7e68859f66094d8c104c33b38444b8fb168025b479a5a7772c1bacd73b3ef88ae6fe66aab1846723c65d3d106c1722e2235ac7865a04584324062826e463edc13803c9796e54bce6b80933057abb9328ab501688e69148fbaa811ea9792316068a9abfa583e45ab6549ccb7e9e70d9139c0ebc7b995ec1463fc321f38bff2b2b995192eaa305daf1c44352371089637ed673dd82b8ad8bb3bb2299b9e5369f104a454357e5a2238e6315fa720343064be4ff8657da81d7c5c4b51c5b896669f029483f7c273f763ce26150ce3550c4ddcb26f37b2dea19b2dd197d449c9b693c10a3cb04de8c9f425a523d173240a69c4f0479bc177d836cda34b2cb64440acd464d904b66662295f0950460b710f089090b49fc7a6276e219eb4f19ee4dc12d2045141497064c4beae80a8ded00438d90a012963de54380f137666b2ab09844198ba807a4972f1b35f7b9789d847cc3e5a4a08cb17d4d9065ce09a74609ae935218c5bcd51f9bd774aa720e6423f75a974a3c21835a6018886dd119766909413aa576144c10b49c17ba1c793f78f7c580eba195bd8407f00f568c4d546c7d677dd02c78930c3e969b5584129e1815c6ce32162f09d6f7303f69c5f0216625c782666f9c8cf8678f1b63635067392aa3fba56204a1831491c2eee759ce674abd34251732949f9874059b35b66089a1905896c94111511a449f695e2c036d87b585a74834d676b9a2b2aa74a386cfa446f86934b844068147013396fa2d3bb8fa11d97b992a04a6ba65c189b238106cb8d15837bade3c278034d6d86bd50a3049feb37499b08aba61b38ffeaf94bc84cdb360fbc\",\n    \"8b654cd2120d97581838192bb56463ee2b9a96e620bc7976bf3634f441ab0641ba3a904cfd4b55ba40cc6fdb906ac1a95637112c7a48dbf311d67004bb583e068b9936b32463245da31685a878a90d205162b587a322cebe475fc70186b8b52cab2c9e838873406a98574c65e83b0063d316a8654b5ef7537b487a25114c521bbfdb4780d58804c1c172cfac59b9bb8ba804a10fc6607633cc89d18bc5579d7a0825a2a72bc32869ba8518fafa522a9950ef7ab4625c417e6b6fa3f0165dd47d78ab8587f22b99abad73a90880b2b08c4876b61ca536f675b4b8a37460ad4400910d265e5146ae4be61a09c30a1de01f4636a802413fc8f051cde78e4fc51ba8f3a2cad1474775a7d7ec513a57541861702d6480c70cce8912bd2c01bf11378604005695d64c1969cf25714ae287c019da020d66af70c1528e12365fe25106e8179b04ccf0cba724fb6a89b83ca9f55012b66267337f6618484a7a70e8a1163cb17426ea132e1a56e53ab86e491e39dbbe4e4465a785106b5255dc2190d2f2bb019da8cc64a228c2b9a8943214f97a3b40a8e41053fd4346a7fcab06fa72de8c33cca788e2e09e09dacd7034038ec13d1a065cf7d14c5de44a6d56873232ba84585b9d0811320659be5a19cdc759969a0bdeca5410977e40163dc2da6665c45954b900e3a97512897d1c7a6cc2a60acfb2175151043ae29a0d240e760c1d100a6877b5a10fb69054d0cf80dca4c15350fc685001899a7a6515e9c7ac3325938997b4387c16022a91ee5c2fa2ab8bd6fa898667831af38349fb1badb52b472210e36bca63342a0cd869a44a04a7e68859f66094d8c104c33b38444b8fb168025b479a5a7772c1bacd73b3ef88ae6fe66aab1846723c65d3d106c1722e2235ac7865a04584324062826e463edc13803c9796e54bce6b80933057abb9328ab501688e69148fbaa811ea9792316068a9abfa583e45ab6549ccb7e9e70d9139c0ebc7b995ec1463fc321f38bff2b2b995192eaa305daf1c44352371089637ed673dd82b8ad8bb3bb2299b9e5369f104a454357e5a2238e6315fa720343064be4ff8657da81d7c5c4b51c5b896669f029483f7c273f763ce26150ce3550c4ddcb26f37b2dea19b2dd197d449c9b693c10a3cb04de8c9f425a523d173240a69c4f0479bc177d836cda34b2cb64440acd464d904b66662295f0950460b710f089090b49fc7a6276e219eb4f19ee4dc12d2045141497064c4beae80a8ded00438d90a012963de54380f137666b2ab09844198ba807a4972f1b35f7b9789d847cc3e5a4a08cb17d4d9065ce09a74609ae935218c5bcd51f9bd774aa720e6423f75a974a3c21835a6018886dd119766909413aa576144c10b49c17ba1c793f78f7c580eba195bd8407f00f568c4d546c7d677dd02c78930c3e969b5584129e1815c6ce32162f09d6f7303f69c5f0216625c782666f9c8cf8678f1b63635067392aa3fba56204a1831491c2eee759ce674abd34251732949f9874059b35b66089a1905896c94111511a449f695e2c036d87b585a74834d676b9a2b2aa74a386cfa446f86934b844068147013396fa2d3bb8fa11d97b992a04a6ba65c189b238106cb8d15837bade3c278034d6d86bd50a3049feb37499b08aba61b38ffeaf94bc84cdb360fbc\",\n    \"8b654cd2120d97581838192bb56463ee2b9a96e620bc7976bf3634f441ab0641ba3a904cfd4b55ba40cc6fdb906ac1a95637112c7a48dbf311d67004bb583e068b9936b32463245da31685a878a90d205162b587a322cebe475fc70186b8b52cab2c9e838873406a98574c65e83b0063d316a8654b5ef7537b487a25114c521bbfdb4780d58804c1c172cfac59b9bb8ba804a10fc6607633cc89d18bc5579d7a0825a2a72bc32869ba8518fafa522a9950ef7ab4625c417e6b6fa3f0165dd47d78ab8587f22b99abad73a90880b2b08c4876b61ca536f675b4b8a37460ad4400910d265e5146ae4be61a09c30a1de01f4636a802413fc8f051cde78e4fc51ba8f3a2cad1474775a7d7ec513a57541861702d6480c70cce8912bd2c01bf11378604005695d64c1969cf25714ae287c019da020d66af70c1528e12365fe25106e8179b04ccf0cba724fb6a89b83ca9f55012b66267337f6618484a7a70e8a1163cb17426ea132e1a56e53ab86e491e39dbbe4e4465a785106b5255dc2190d2f2bbe896a8cc64a228c2b9a8943214f97a3b40a8e41053fd4346a7fcab06fa72de8c33cca788e2e09e09dacd7034038ec13d1a065cf7d14c5de44a6d56873232ba84585b9d0811320659be5a19cdc759969a0bdeca5410977e40163dc2da6665c45954b900e3a97512897d1c7a6cc2a60acfb2175151043ae29a0d240e760c1d100a6877b5a10fb69054d0cf80dca4c15350fc685001899a7a6515e9c7ac3325938997b4387c16022a91ee5c2fa2ab8bd6fa898667831af38349fb1badb52b472210e36bca63342a0cd869a44a04a7e68859f66094d8c104c33b38444b8fb168025b479a5a7772c1bacd73b3ef88ae6fe66aab1846723c65d3d106c1722e2235ac7865a04584324062826e463edc13803c9796e54bce6b80933057abb9328ab501688e69148fbaa811ea9792316068a9abfa583e45ab6549ccb7e9e70d9139c0ebc7b995ec1463fc321f38bff2b2b995192eaa305daf1c44352371089637ed673dd82b8ad8bb3bb2299b9e5369f104a454357e5a2238e6315fa720343064be4f18d07da81d7c5c4b51c5b896669f029483f7c273f763ce26150ce3550c4ddcb26f37b2dea19b2dd197d449c9b693c10a3cb04de8c9f425a523d173240a69c4f0479bc177d836cda34b2cb64440acd464d904b66662295f0950460b710f089090b49fc7a6276e219eb4f19ee4dc12d2045141497064c4beae80a8ded00438d90a012963de54380f137666b2ab09844198ba807a4972f1b35f7b9789d847cc3e5a4a08cb17d4d9065ce09a74609ae935218c5bcd51f9bd774aa720e6423f75a974a3c21835a6018886dd119766909413aa576144c10b49c17ba1c793f78f7c580eba195bd8407f00f568c4d546c7d677dd02c78930c3e969b5584129e1815c6ce32162f09d6f7303f69c5f0216625c782666f9c8cf8678f1b63635067392aa3fba56204a1831491c2eee759ce674abd34251732949f9874059b35b66089a1905896c94111511a449f695e2c036d87b585a74834d676b9a2b2aa74a386cfa446f86934b844068147013396fa2d3bb8fa11d97b992a04a6ba65c189b238106cb8d15837bade3c278034d6d86bd50a3049feb37499b08aba61b38ffeaf94bc84cdb360fbc\",\n    \"8b654cd2120d97581838192bb56463ee2b9a96e620bc7976bf3634f441ab0641ba3a904cfd4b55ba40cc6fdb906ac1a95637112c7a48dbf311d67004bb583e068b9936b32463245da31685a878a90d205162b587a322cebe475fc70186b8b52cab2c9e838873406a98574c65e83b0063d316a8654b5ef7537b487a25114c521bbfdb4780d58804c1c172cfac59b9bb8ba804a10fc6607633cc89d18bc5579d7a0825a2a72bc32869ba8518fafa522a9950ef7ab4625c417e6b6fa3f0165dd47d78ab8587f22b99abad73a90880b2b08c4876b61ca536f675b4b8a37460ad4400910d265e5146ae4be61a09c30a1de01f4636a802413fc8f051cde78e4fc51ba8f3a2cad1474775a7d7ec513a57541861702d6480c70cce8912bd2c01bf11378604005695d64c1969cf25714ae287c019da020d66af70c1528e12365fe25106e8179b04ccf0cba724fb6a89b83ca9f55012b66267337f6618484a7a70e8a1163cb17426ea132e1a56e53ab86e491e39dbbe4e4465a785106b5255dc2190d2f2bbff9fa8cc64a228c2b9a8943214f97a3b40a8e41053fd4346a7fcab06fa72de8c33cca788e2e09e09dacd7034038ec13d1a065cf7d14c5de44a6d56873232ba84585b9d0811320659be5a19cdc759969a0bdeca5410977e40163dc2da6665c45954b900e3a97512897d1c7a6cc2a60acfb2175151043ae29a0d240e760c1d100a6877b5a10fb69054d0cf80dca4c15350fc685001899a7a6515e9c7ac3325938997b4387c16022a91ee5c2fa2ab8bd6fa898667831af38349fb1badb52b472210e36bca63342a0cd869a44a04a7e68859f66094d8c104c33b38444b8fb168025b479a5a7772c1bacd73b3ef88ae6fe66aab1846723c65d3d106c1722e2235ac7865a04584324062826e463edc13803c9796e54bce6b80933057abb9328ab501688e69148fbaa811ea9792316068a9abfa583e45ab6549ccb7e9e70d9139c0ebc7b995ec1463fc321f38bff2b2b995192eaa305daf1c44352371089637ed673dd82b8ad8bb3bb2299b9e5369f104a454357e5a2238e6315fa720343064be4ff8657da81d7c5c4b51c5b896669f029483f7c273f763ce26150ce3550c4ddcb26f37b2dea19b2dd197d449c9b693c10a3cb04de8c9f425a523d173240a69c4f0479bc177d836cda34b2cb64440acd464d904b66662295f0950460b710f089090b49fc7a6276e219eb4f19ee4dc12d2045141497064c4beae80a8ded00438d90a012963de54380f137666b2ab09844198ba807a4972f1b35f7b9789d847cc3e5a4a08cb17d4d9065ce09a74609ae935218c5bcd51f9bd774aa720e6423f75a974a3c21835a6018886dd119766909413aa576144c10b49c17ba1c793f78f7c580eba195bd8407f00f568c4d546c7d677dd02c78930c3e969b5584129e1815c6ce32162f09d6f7303f69c5f0216625c782666f9c8cf8678f1b63635067392aa3fba56204a1831491c2eee759ce674abd34251732949f9874059b35b66089a1905896c94111511a449f695e2c036d87b585a74834d676b9a2b2aa74a386cfa446f86934b844068147013396fa2d3bb8fa11d97b992a04a6ba65c189b238106cb8d15837bade3c278034d6d86bd50a3049feb37499b08aba61b38ffeaf94bc84cdb360fbc\",\n    \"8b654cd2120d97581838192bb56463ee2b9a96e620bc7976bf3634f441ab0641ba3a904cfd4b55ba40cc6fdb906ac1a95637112c7a48dbf311d67004bb583e068b9936b32463245da31685a878a90d205162b587a322cebe475fc70186b8b52cab2c9e838873406a98574c65e83b0063d316a8654b5ef7537b487a25114c521bbfdb4780d58804c1c172cfac59b9bb8ba804a10fc6607633cc89d18bc5579d7a0825a2a72bc32869ba8518fafa522a9950ef7ab4625c417e6b6fa3f0165dd47d78ab8587f22b99abad73a90880b2b08c4876b61ca536f675b4b8a37460ad4400910d265e5146ae4be61a09c30a1de01f4636a802413fc8f051cde78e4fc51ba8f3a2cad1474775a7d7ec513a57541861702d6480c70cce8912bd2c01bf11378604005695d64c1969cf25714ae287c019da020d66af70c1528e12365fe25106e8179b04ccf0cba724fb6a89b83ca9f55012b66267337f6618484a7a70e8a1163cb17426ea132e1a56e53ab86e491e39dbbe4e4465a785106b5255dc2190d2f2bbe896a8cc64a228c2b9a8943214f97a3b40a8e41053fd4346a7fcab06fa72de8c33cca788e2e09e09dacd7034038ec13d1a065cf7d14c5de44a6d56873232ba84585b9d0811320659be5a19cdc759969a0bdeca5410977e40163dc2da6665c45954b900e3a97512897d1c7a6cc2a60acfb2175151043ae29a0d240e760c1d100a6877b5a10fb69054d0cf80dca4c15350fc685001899a7a6515e9c7ac3325938997b4387c16022a91ee5c2fa2ab8bd6fa898667831af38349fb1badb52b472210e36bca63342a0cd869a44a04a7e68859f66094d8c104c33b38444b8fb168025b479a5a7772c1bacd73b3ef88ae6fe66aab1846723c65d3d106c1722e2235ac7865a04584324062826e463edc13803c9796e54bce6b80933057abb9328ab501688e69148fbaa811ea9792316068a9abfa583e45ab6549ccb7e9e70d9139c0ebc7b995ec1463fc321f38bff2b2b995192eaa305daf1c44352371089637ed673dd82b8ad8bb3bb2299b9e5369f104a454357e5a2238e6315fa720343064be4ff8ff7da81d7c5c4b51c5b896669f029483f7c273f763ce26150ce3550c4ddcb26f37b2dea19b2dd197d449c9b693c10a3cb04de8c9f425a523d173240a69c4f0479bc177d836cda34b2cb64440acd464d904b66662295f0950460b710f089090b49fc7a6276e219eb4f19ee4dc12d2045141497064c4beae80a8ded00438d90a012963de54380f137666b2ab09844198ba807a4972f1b35f7b9789d847cc3e5a4a08cb17d4d9065ce09a74609ae935218c5bcd51f9bd774aa720e6423f75a974a3c21835a6018886dd119766909413aa576144c10b49c17ba1c793f78f7c580eba195bd8407f00f568c4d546c7d677dd02c78930c3e969b5584129e1815c6ce32162f09d6f7303f69c5f0216625c782666f9c8cf8678f1b63635067392aa3fba56204a1831491c2eee759ce674abd34251732949f9874059b35b66089a1905896c94111511a449f695e2c036d87b585a74834d676b9a2b2aa74a386cfa446f86934b844068147013396fa2d3bb8fa11d97b992a04a6ba65c189b238106cb8d15837bade3c278034d6d86bd50a3049feb37499b08aba61b38ffeaf94bc84cdb360fbc\",\n    \"8b654cd2120d97581838192bb56463ee2b9a96e620bc7976bf3634f441ab0641ba3a904cfd4b55ba40cc6fdb906ac1a95637112c7a48dbf311d67004bb583e068b9936b32463245da31685a878a90d205162b587a322cebe475fc70186b8b52cab2c9e838873406a98574c65e83b0063d316a8654b5ef7537b487a25114c521bbfdb4780d58804c1c172cfac59b9bb8ba804a10fc6607633cc89d18bc5579d7a0825a2a72bc32869ba8518fafa522a9950ef7ab4625c417e6b6fa3f0165dd47d78ab8587f22b99abad73a90880b2b08c4876b61ca536f675b4b8a37460ad4400910d265e5146ae4be61a09c30a1de01f4636a802413fc8f051cde78e4fc51ba8f3a2cad1474775a7d7ec513a57541861702d6480c70cce8912bd2c01bf11378604005695d64c1969cf25714ae287c019da020d66af70c1528e12365fe25106e8179b04ccf0cba724fb6a89b83ca9f55012b66267337f6618484a7a70e8a1163cb17426ea132e1a56e53ab86e491e39dbbe4e4465a785106b5255dc2190d2f2bbe896a8cc64a228c2b9a8943214f97a3b40a8e41053fd4346a7fcab06fa72de8c33cca788e2e09e09dacd7034038ec13d1a065cf7d14c5de44a6d56873232ba84585b9d0811320659be5a19cdc759969a0bdeca5410977e40163dc2da6665c45954b900e3a97512897d1c7a6cc2a60acfb2175151043ae29a0d240e760c1d100a6877b5a10fb69054d0cf80dca4c15350fc685001899a7a6515e9c7ac3325938997b4387c16022a91ee5c2fa2ab8bd6fa898667831af38349fb1badb52b472210e36bca63342a0cd869a44a04a7e68859f66094d8c104c33b38444b8fb168025b479a5a7772c1bacd73b3ef88ae6fe66aab1846723c65d3d106c1722e2235ac7865a04584324062826e463edc13803c9796e54bce6b80933057abb9328ab501688e69148fbaa811ea9792316068a9abfa583e45ab6549ccb7e9e70d9139c0ebc7b995ec1463fc321f38bff2b2b995192eaa305daf1c44352371089637ed673dd82b8ad8bb3bb2299b9e5369f104a454357e5a2238e6315fa720343064be4ff86501ad1d7c5c4b51c5b896669f029483f7c273f763ce26150ce3550c4ddcb26f37b2dea19b2dd197d449c9b693c10a3cb04de8c9f425a523d173240a69c4f0479bc177d836cda34b2cb64440acd464d904b66662295f0950460b710f089090b49fc7a6276e219eb4f19ee4dc12d2045141497064c4beae80a8ded00438d90a012963de54380f137666b2ab09844198ba807a4972f1b35f7b9789d847cc3e5a4a08cb17d4d9065ce09a74609ae935218c5bcd51f9bd774aa720e6423f75a974a3c21835a6018886dd119766909413aa576144c10b49c17ba1c793f78f7c580eba195bd8407f00f568c4d546c7d677dd02c78930c3e969b5584129e1815c6ce32162f09d6f7303f69c5f0216625c782666f9c8cf8678f1b63635067392aa3fba56204a1831491c2eee759ce674abd34251732949f9874059b35b66089a1905896c94111511a449f695e2c036d87b585a74834d676b9a2b2aa74a386cfa446f86934b844068147013396fa2d3bb8fa11d97b992a04a6ba65c189b238106cb8d15837bade3c278034d6d86bd50a3049feb37499b08aba61b38ffeaf94bc84cdb360fbc\",\n    \"8b654cd2120d97581838192bb56463ee2b9a96e620bc7976bf3634f441ab0641ba3a904cfd4b55ba40cc6fdb906ac1a95637112c7a48dbf311d67004bb583e068b9936b32463245da31685a878a90d205162b587a322cebe475fc70186b8b52cab2c9e838873406a98574c65e83b0063d316a8654b5ef7537b487a25114c521bbfdb4780d58804c1c172cfac59b9bb8ba804a10fc6607633cc89d18bc5579d7a0825a2a72bc32869ba8518fafa522a9950ef7ab4625c417e6b6fa3f0165dd47d78ab8587f22b99abad73a90880b2b08c4876b61ca536f675b4b8a37460ad4400910d265e5146ae4be61a09c30a1de01f4636a802413fc8f051cde78e4fc51ba8f3a2cad1474775a7d7ec513a57541861702d6480c70cce8912bd2c01bf11378604005695d64c1969cf25714ae287c019da020d66af70c1528e12365fe25106e8179b04ccf0cba724fb6a89b83ca9f55012b66267337f6618484a7a70e8a1163cb17426ea132e1a56e53ab86e491e39dbbe4e4465a785106b5255dc2190d2f2bbe896a8cc64a228c2b9a8943214f97a3b40a8e41053fd4346a7fcab06fa72de8c33cca788e2e09e09dacd7034038ec13d1a065cf7d14c5de44a6d56873232ba84585b9d0811320659be5a19cdc759969a0bdeca5410977e40163dc2da6665c45954b900e3a97512897d1c7a6cc2a60acfb2175151043ae29a0d240e760c1d100a6877b5a10fb69054d0cf80dca4c15350fc685001899a7a6515e9c7ac3325938997b4387c16022a91ee5c2fa2ab8bd6fa898667831af38349fb1badb52b472210e36bca63342a0cd869a44a04a7e68859f66094d8c104c33b38444b8fb168025b479a5a7772c1bacd73b3ef88ae6fe66aab1846723c65d3d106c1722e2235ac7865a04584324062826e463edc13803c9796e54bce6b80933057abb9328ab501688e69148fbaa811ea9792316068a9abfa583e45ab6549ccb7e9e70d9139c0ebc7b995ec1463fc321f38bff2b2b995192eaa305daf1c44352371089637ed673dd82b8ad8bb3bb2299b9e5369f104a454357e5a2238e6315fa720343064be4ff8657da81d7c5c4b51c5b896669f029483f7c273f763ce26150ce3550c4ddcb26f37b2dea19b2dd197d449c9b693c10a3cb04de8c9f425a523d173240a69c4f0479bc177d836cda34b2cb64440acd464d904b66662295f0950460b710f089090b49fc7a6276e219eb4f19ee4dc12d2045141497064c4beae80a8ded00438d90a012963de54380f137666b2ab09844198ba807a4972f1b35f7b9789d847cc3e5a4a08cb17d4d9065ce09a74609ae935218c5bcd51f9bd774aa720e6423f75a974a3c21835a6018886dd119766909413aa576144c10b49c17ba1c793f78f7c580eba195bd8407f00f568c4d546c7d677dd02c78930c3e969b5584129e1815c6ce32162f09d6f7303f69c5f0216625c782666f9c8cf8678f1b63635067392aa3fba56204a1831491c2eee759ce674abd34251732949f9874059b35b66089a1905896c94111511a449f695e2c036d87b585a74834d676b9a2b2aa74a386cfa446f86934b844068147013396fa2d3bb8fa11d97b992a04a6ba65c189b238106cb8d1513d0ade3c278034d6d86bd50a3049feb37499b08aba61b38ffeaf94bc84cdb360fbc\",\n    \"8b654cd2120d97581838192bb56463ee2b9a96e620bc7976bf3634f441ab0641ba3a904cfd4b55ba40cc6fdb906ac1a95637112c7a48dbf311d67004bb583e068b9936b32463245da31685a878a90d205162b587a322cebe475fc70186b8b52cab2c9e838873406a98574c65e83b0063d316a8654b5ef7537b487a25114c521bbfdb4780d58804c1c172cfac59b9bb8ba804a10fc6607633cc89d18bc5579d7a0825a2a72bc32869ba8518fafa522a9950ef7ab4625c417e6b6fa3f0165dd47d78ab8587f22b99abad73a90880b2b08c4876b61ca536f675b4b8a37460ad4400910d265e5146ae4be61a09c30a1de01f4636a802413fc8f051cde78e4fc51ba8f3a2cad1474775a7d7ec513a57541861702d6480c70cce8912bd2c01bf11378604005695d64c1969cf25714ae287c019da020d66af70c1528e12365fe25106e8179b04ccf0cba724fb6a89b83ca9f55012b66267337f6618484a7a70e8a1163cb17426ea132e1a56e53ab86e491e39dbbe4e4465a785106b5255dc2190d2f2bbe896a8cc64a228c2b9a8943214f97a3b40a8e41053fd4346a7fcab06fa72de8c33cca788e2e09e09dacd7034038ec13d1a065cf7d14c5de44a6d56873232ba84585b9d0811320659be5a19cdc759969a0bdeca5410977e40163dc2da6665c45954b900e3a97512897d1c7a6cc2a60acfb2175151043ae29a0d240e760c1d100a6877b5a10fb69054d0cf80dca4c15350fc685001899a7a6515e9c7ac3325938997b4387c16022a91ee5c2fa2ab8bd6fa898667831af38349fb1badb52b472210e36bca63342a0cd869a44a04a7e68859f66094d8c104c33b38444b8fb168025b479a5a7772c1bacd73b3ef88ae6fe66aab1846723c65d3d106c1722e2235ac7865a04584324062826e463edc13803c9796e54bce6b80933057abb9328ab501688e69148fbaa811ea9792316068a9abfa583e45ab6549ccb7e9e70d9139c0ebc7b995ec1463fc321f38bff2b2b995192eaa305daf1c44352371089637ed673dd82b8ad8bb3bb2299b9e5369f104a454357e5a2238e6315fa720343064be4ff8657da81d7c5c4b51c5b896669f029483f7c273f763ce26150ce3550c4ddcb26f37b2dea19b2dd197d449c9b693c10a3cb04de8c9f425a523d173240a69c4f0479bc177d836cda34b2cb64440acd464d904b66662295f0950460b710f089090b49fc7a6276e219eb4f19ee4dc12d2045141497064c4beae80a8ded00438d90a012963de54380f137666b2ab09844198ba807a4972f1b35f7b9789d847cc3e5a4a08cb17d4d9065ce09a74609ae935218c5bcd51f9bd774aa720e6423f75a974a3c21835a6018886dd119766909413aa576144c10b49c17ba1c793f78f7c580eba195bd8407f00f568c4d546c7d677dd02c78930c3e969b5584129e1815c6ce32162f09d6f7303f69c5f0216625c782666f9c8cf8678f1b63635067392aa3fba56204a1831491c2eee759ce674abd34251732949f9874059b35b66089a1905896c94111511a449f695e2c036d87b585a74834d676b9a2b2aa74a386cfa446f86934b844068147013396fa2d3bb8fa11d97b992a04a6ba65c189b238106cb8d15f3ffade3c278034d6d86bd50a3049feb37499b08aba61b38ffeaf94bc84cdb360fbc\",\n    \"8b654cd2120d97581838192bb56463ee2b9a96e620bc7976bf3634f441ab0641ba3a904cfd4b55ba40cc6fdb906ac1a95637112c7a48dbf311d67004bb583e068b9936b32463245da31685a878a90d205162b587a322cebe475fc70186b8b52cab2c9e838873406a98574c65e83b0063d316a8654b5ef7537b487a25114c521bbfdb4780d58804c1c172cfac59b9bb8ba804a10fc6607633cc89d18bc5579d7a0825a2a72bc32869ba8518fafa522a9950ef7ab4625c417e6b6fa3f0165dd47d78ab8587f22b99abad73a90880b2b08c4876b61ca536f675b4b8a37460ad4400910d265e5146ae4be61a09c30a1de01f4636a802413fc8f051cde78e4fc51ba8f3a2cad1474775a7d7ec513a57541861702d6480c70cce8912bd2c01bf11378604005695d64c1969cf25714ae287c019da020d66af70c1528e12365fe25106e8179b04ccf0cba724fb6a89b83ca9f55012b66267337f6618484a7a70e8a1163cb17426ea132e1a56e53ab86e491e39dbbe4e4465a785106b5255dc2190d2f2bbe896a8cc64a228c2b9a8943214f97a3b40a8e41053fd4346a7fcab06fa72de8c33cca788e2e09e09dacd7034038ec13d1a065cf7d14c5de44a6d56873232ba84585b9d0811320659be5a19cdc759969a0bdeca5410977e40163dc2da6665c45954b900e3a97512897d1c7a6cc2a60acfb2175151043ae29a0d240e760c1d100a6877b5a10fb69054d0cf80dca4c15350fc685001899a7a6515e9c7ac3325938997b4387c16022a91ee5c2fa2ab8bd6fa898667831af38349fb1badb52b472210e36bca63342a0cd869a44a04a7e68859f66094d8c104c33b38444b8fb168025b479a5a7772c1bacd73b3ef88ae6fe66aab1846723c65d3d106c1722e2235ac7865a04584324062826e463edc13803c9796e54bce6b80933057abb9328ab501688e69148fbaa811ea9792316068a9abfa583e45ab6549ccb7e9e70d9139c0ebc7b995ec1463fc321f38bff2b2b995192eaa305daf1c44352371089637ed673dd82b8ad8bb3bb2299b9e5369f104a454357e5a2238e6315fa720343064be4ff865ffaf1d7c5c4b51c5b896669f029483f7c273f763ce26150ce3550c4ddcb26f37b2dea19b2dd197d449c9b693c10a3cb04de8c9f425a523d173240a69c4f0479bc177d836cda34b2cb64440acd464d904b66662295f0950460b710f089090b49fc7a6276e219eb4f19ee4dc12d2045141497064c4beae80a8ded00438d90a012963de54380f137666b2ab09844198ba807a4972f1b35f7b9789d847cc3e5a4a08cb17d4d9065ce09a74609ae935218c5bcd51f9bd774aa720e6423f75a974a3c21835a6018886dd119766909413aa576144c10b49c17ba1c793f78f7c580eba195bd8407f00f568c4d546c7d677dd02c78930c3e969b5584129e1815c6ce32162f09d6f7303f69c5f0216625c782666f9c8cf8678f1b63635067392aa3fba56204a1831491c2eee759ce674abd34251732949f9874059b35b66089a1905896c94111511a449f695e2c036d87b585a74834d676b9a2b2aa74a386cfa446f86934b844068147013396fa2d3bb8fa11d97b992a04a6ba65c189b238106cb8d15837bade3c278034d6d86bd50a3049feb37499b08aba61b38ffeaf94bc84cdb360fbc\",\n};\n\nstatic int\ntest_kat_vector(const char *d_hex, const char *z_hex, const char *pk_prefix_hex,\n                const char *m_hex, const char *ct_prefix_hex, const char *ss_hex)\n{\n    unsigned char seed[crypto_kem_mlkem768_SEEDBYTES];\n    unsigned char pk[crypto_kem_mlkem768_PUBLICKEYBYTES];\n    unsigned char sk[crypto_kem_mlkem768_SECRETKEYBYTES];\n    unsigned char enc_seed[32];\n    unsigned char ct[crypto_kem_mlkem768_CIPHERTEXTBYTES];\n    unsigned char ss_enc[crypto_kem_mlkem768_SHAREDSECRETBYTES];\n    unsigned char ss_dec[crypto_kem_mlkem768_SHAREDSECRETBYTES];\n    unsigned char expected_pk_prefix[32];\n    unsigned char expected_ct_prefix[32];\n    unsigned char expected_ss[32];\n    char          hex[65];\n\n    sodium_hex2bin(seed, 32, d_hex, 64, NULL, NULL, NULL);\n    sodium_hex2bin(seed + 32, 32, z_hex, 64, NULL, NULL, NULL);\n    sodium_hex2bin(enc_seed, 32, m_hex, 64, NULL, NULL, NULL);\n    sodium_hex2bin(expected_pk_prefix, 32, pk_prefix_hex, 64, NULL, NULL, NULL);\n    sodium_hex2bin(expected_ct_prefix, 32, ct_prefix_hex, 64, NULL, NULL, NULL);\n    sodium_hex2bin(expected_ss, 32, ss_hex, 64, NULL, NULL, NULL);\n\n    crypto_kem_mlkem768_seed_keypair(pk, sk, seed);\n\n    if (memcmp(pk, expected_pk_prefix, 32) != 0) {\n        sodium_bin2hex(hex, sizeof hex, pk, 32);\n        printf(\"pk mismatch: got %s\\n\", hex);\n        return -1;\n    }\n\n    assert(crypto_kem_mlkem768_enc_deterministic(ct, ss_enc, pk, enc_seed) == 0);\n\n    if (memcmp(ct, expected_ct_prefix, 32) != 0) {\n        sodium_bin2hex(hex, sizeof hex, ct, 32);\n        printf(\"ct mismatch: got %s\\n\", hex);\n        return -1;\n    }\n\n    if (memcmp(ss_enc, expected_ss, 32) != 0) {\n        sodium_bin2hex(hex, sizeof hex, ss_enc, 32);\n        printf(\"ss_enc mismatch: got %s\\n\", hex);\n        return -1;\n    }\n\n    assert(crypto_kem_mlkem768_dec(ss_dec, ct, sk) == 0);\n\n    if (memcmp(ss_dec, expected_ss, 32) != 0) {\n        sodium_bin2hex(hex, sizeof hex, ss_dec, 32);\n        printf(\"ss_dec mismatch: got %s\\n\", hex);\n        return -1;\n    }\n\n    return 0;\n}\n\nstatic void\ntv_kem_mlkem768(void)\n{\n    unsigned char *pk;\n    unsigned char *sk;\n    unsigned char *seed;\n    unsigned char *ct;\n    unsigned char *ss_enc;\n    unsigned char *ss_dec;\n    unsigned char *enc_seed;\n    char           hex[65];\n    int            i;\n\n    pk = (unsigned char *) sodium_malloc(crypto_kem_mlkem768_PUBLICKEYBYTES);\n    sk = (unsigned char *) sodium_malloc(crypto_kem_mlkem768_SECRETKEYBYTES);\n    seed = (unsigned char *) sodium_malloc(crypto_kem_mlkem768_SEEDBYTES);\n    ct = (unsigned char *) sodium_malloc(crypto_kem_mlkem768_CIPHERTEXTBYTES);\n    ss_enc = (unsigned char *) sodium_malloc(crypto_kem_mlkem768_SHAREDSECRETBYTES);\n    ss_dec = (unsigned char *) sodium_malloc(crypto_kem_mlkem768_SHAREDSECRETBYTES);\n    enc_seed = (unsigned char *) sodium_malloc(32);\n\n    for (i = 0; i < (int) crypto_kem_mlkem768_SEEDBYTES; i++) {\n        seed[i] = (unsigned char) i;\n    }\n    crypto_kem_mlkem768_seed_keypair(pk, sk, seed);\n\n    sodium_bin2hex(hex, sizeof hex, pk, 32);\n    printf(\"pk (first 32 bytes): [%s]\\n\", hex);\n    sodium_bin2hex(hex, sizeof hex, sk, 32);\n    printf(\"sk (first 32 bytes): [%s]\\n\", hex);\n\n    for (i = 0; i < 32; i++) {\n        enc_seed[i] = (unsigned char)(i + 64);\n    }\n    assert(crypto_kem_mlkem768_enc_deterministic(ct, ss_enc, pk, enc_seed) == 0);\n\n    sodium_bin2hex(hex, sizeof hex, ct, 32);\n    printf(\"ct (first 32 bytes): [%s]\\n\", hex);\n    sodium_bin2hex(hex, sizeof hex, ss_enc, crypto_kem_mlkem768_SHAREDSECRETBYTES);\n    printf(\"ss_enc: [%s]\\n\", hex);\n\n    assert(crypto_kem_mlkem768_dec(ss_dec, ct, sk) == 0);\n\n    sodium_bin2hex(hex, sizeof hex, ss_dec, crypto_kem_mlkem768_SHAREDSECRETBYTES);\n    printf(\"ss_dec: [%s]\\n\", hex);\n\n    if (memcmp(ss_enc, ss_dec, crypto_kem_mlkem768_SHAREDSECRETBYTES) != 0) {\n        printf(\"ERROR: shared secrets don't match!\\n\");\n    } else {\n        printf(\"shared secrets match: ok\\n\");\n    }\n\n    crypto_kem_mlkem768_keypair(pk, sk);\n    assert(crypto_kem_mlkem768_enc(ct, ss_enc, pk) == 0);\n    assert(crypto_kem_mlkem768_dec(ss_dec, ct, sk) == 0);\n    if (memcmp(ss_enc, ss_dec, crypto_kem_mlkem768_SHAREDSECRETBYTES) != 0) {\n        printf(\"ERROR: shared secrets don't match (random keys)!\\n\");\n    } else {\n        printf(\"random keypair test: ok\\n\");\n    }\n\n    ct[0] ^= 0x01;\n    assert(crypto_kem_mlkem768_dec(ss_dec, ct, sk) == 0);\n    if (memcmp(ss_enc, ss_dec, crypto_kem_mlkem768_SHAREDSECRETBYTES) == 0) {\n        printf(\"ERROR: decapsulation succeeded with modified ciphertext!\\n\");\n    } else {\n        printf(\"modified ciphertext rejected: ok\\n\");\n    }\n\n    assert(crypto_kem_mlkem768_publickeybytes() == crypto_kem_mlkem768_PUBLICKEYBYTES);\n    assert(crypto_kem_mlkem768_secretkeybytes() == crypto_kem_mlkem768_SECRETKEYBYTES);\n    assert(crypto_kem_mlkem768_ciphertextbytes() == crypto_kem_mlkem768_CIPHERTEXTBYTES);\n    assert(crypto_kem_mlkem768_sharedsecretbytes() == crypto_kem_mlkem768_SHAREDSECRETBYTES);\n    assert(crypto_kem_mlkem768_seedbytes() == crypto_kem_mlkem768_SEEDBYTES);\n\n    assert(crypto_kem_mlkem768_PUBLICKEYBYTES == 1184U);\n    assert(crypto_kem_mlkem768_SECRETKEYBYTES == 2400U);\n    assert(crypto_kem_mlkem768_CIPHERTEXTBYTES == 1088U);\n    assert(crypto_kem_mlkem768_SHAREDSECRETBYTES == 32U);\n    assert(crypto_kem_mlkem768_SEEDBYTES == 64U);\n\n    printf(\"constants: ok\\n\");\n\n    sodium_free(enc_seed);\n    sodium_free(ss_dec);\n    sodium_free(ss_enc);\n    sodium_free(ct);\n    sodium_free(seed);\n    sodium_free(sk);\n    sodium_free(pk);\n\n    printf(\"tv_kem_mlkem768: ok\\n\");\n}\n\nstatic void\ntv_kem_mlkem768_kat(void)\n{\n    printf(\"NIST KAT vector 1: \");\n    if (test_kat_vector(tv1_d, tv1_z, tv1_pk_prefix, tv1_m, tv1_ct_prefix, tv1_ss) == 0) {\n        printf(\"ok\\n\");\n    } else {\n        printf(\"FAILED\\n\");\n    }\n\n    printf(\"NIST KAT vector 2: \");\n    if (test_kat_vector(tv2_d, tv2_z, tv2_pk_prefix, tv2_m, tv2_ct_prefix, tv2_ss) == 0) {\n        printf(\"ok\\n\");\n    } else {\n        printf(\"FAILED\\n\");\n    }\n}\n\nstatic void\ntv_wycheproof_decapsulation(void)\n{\n    unsigned char seed[64];\n    unsigned char pk[crypto_kem_mlkem768_PUBLICKEYBYTES];\n    unsigned char sk[crypto_kem_mlkem768_SECRETKEYBYTES];\n    unsigned char ct[crypto_kem_mlkem768_CIPHERTEXTBYTES];\n    unsigned char ss[crypto_kem_mlkem768_SHAREDSECRETBYTES];\n    unsigned char expected_ek[crypto_kem_mlkem768_PUBLICKEYBYTES];\n    unsigned char expected_ss[32];\n\n    sodium_hex2bin(seed, sizeof seed, wycheproof_seed, strlen(wycheproof_seed),\n                   NULL, NULL, NULL);\n    sodium_hex2bin(ct, sizeof ct, wycheproof_ct, strlen(wycheproof_ct),\n                   NULL, NULL, NULL);\n    sodium_hex2bin(expected_ek, sizeof expected_ek, wycheproof_ek, strlen(wycheproof_ek),\n                   NULL, NULL, NULL);\n    sodium_hex2bin(expected_ss, sizeof expected_ss, wycheproof_ss, strlen(wycheproof_ss),\n                   NULL, NULL, NULL);\n\n    crypto_kem_mlkem768_seed_keypair(pk, sk, seed);\n\n    printf(\"Wycheproof decapsulation (tcId 1): \");\n    if (memcmp(pk, expected_ek, crypto_kem_mlkem768_PUBLICKEYBYTES) != 0) {\n        printf(\"FAILED (pk mismatch)\\n\");\n        return;\n    }\n\n    assert(crypto_kem_mlkem768_dec(ss, ct, sk) == 0);\n\n    if (memcmp(ss, expected_ss, 32) == 0) {\n        printf(\"ok\\n\");\n    } else {\n        printf(\"FAILED (ss mismatch)\\n\");\n    }\n}\n\nstatic void\ntv_wycheproof_modulus_overflow(void)\n{\n    unsigned char ek[crypto_kem_mlkem768_PUBLICKEYBYTES];\n    unsigned char ct[crypto_kem_mlkem768_CIPHERTEXTBYTES];\n    unsigned char ss[crypto_kem_mlkem768_SHAREDSECRETBYTES];\n    unsigned char m[32];\n    size_t        i;\n    int           ret;\n\n    memset(m, 0x42, 32);\n\n    printf(\"Wycheproof modulus overflow: \");\n    for (i = 0; i < sizeof wycheproof_invalid_ek / sizeof wycheproof_invalid_ek[0]; i++) {\n        sodium_hex2bin(ek, sizeof ek, wycheproof_invalid_ek[i],\n                       strlen(wycheproof_invalid_ek[i]), NULL, NULL, NULL);\n        ret = crypto_kem_mlkem768_enc_deterministic(ct, ss, ek, m);\n        if (ret != 0) {\n            printf(\"ok (rejected invalid ek)\\n\");\n            return;\n        }\n    }\n    printf(\"accepted (no validation)\\n\");\n}\n\nint\nmain(void)\n{\n    tv_kem_mlkem768();\n    tv_kem_mlkem768_kat();\n    tv_wycheproof_decapsulation();\n    tv_wycheproof_modulus_overflow();\n\n    return 0;\n}\n"
  },
  {
    "path": "test/default/kem_mlkem768.exp",
    "content": "pk (first 32 bytes): [298aa10d423c8dda069d02bc59e6cdf03a096b8b3da4cab9b80ca4a14907672c]\nsk (first 32 bytes): [27d2a77f33756f61208ef113abe82595873d4abc730e5b5d679529bf6a4ceb63]\nct (first 32 bytes): [695a60d9c79f08343ed9ff5802582063c2ca3a648e543d924affbb39ef4de656]\nss_enc: [9cddd089ffe70e3996e76f7c8d06746df34d07e8657bc0fcf2bb0e1c3084aea1]\nss_dec: [9cddd089ffe70e3996e76f7c8d06746df34d07e8657bc0fcf2bb0e1c3084aea1]\nshared secrets match: ok\nrandom keypair test: ok\nmodified ciphertext rejected: ok\nconstants: ok\ntv_kem_mlkem768: ok\nNIST KAT vector 1: ok\nNIST KAT vector 2: ok\nWycheproof decapsulation (tcId 1): ok\nWycheproof modulus overflow: ok (rejected invalid ek)\n"
  },
  {
    "path": "test/default/kem_xwing.c",
    "content": "#define TEST_NAME \"kem_xwing\"\n#include \"cmptest.h\"\n\nstatic const char tv0_seed[] =\n    \"0000000000000000000000000000000000000000000000000000000000000000\";\nstatic const char tv0_randomness[] =\n    \"6464646464646464646464646464646464646464646464646464646464646464\"\n    \"6464646464646464646464646464646464646464646464646464646464646464\";\nstatic const char tv0_ek_prefix[] =\n    \"3d209f716752f6408e7f89bceef97ac388530045377927644ef046c0a7cae978\";\nstatic const char tv0_ct_prefix[] =\n    \"d81018a94f8078e02105beaa814e003390befa4589bb614f7739\";\nstatic const char tv0_ss[] =\n    \"e5ba94031ea6efd69c09c254f6d9783136ba6037e2d4c43bcccf19d6f3f4343a\";\n\nstatic const char tv1_seed[] =\n    \"0101010101010101010101010101010101010101010101010101010101010101\";\nstatic const char tv1_randomness[] =\n    \"6565656565656565656565656565656565656565656565656565656565656565\"\n    \"6565656565656565656565656565656565656565656565656565656565656565\";\nstatic const char tv1_ek_prefix[] =\n    \"ec7b50cddc8360f98b189bac73d395ef947b37d8453886a253269f7b18b9eb78\";\nstatic const char tv1_ct_prefix[] =\n    \"600ecf4026683898d0e339eeea9ebd437a4a802952bf32bfa326\";\nstatic const char tv1_ss[] =\n    \"750300db25bff9620e893c2c6fcab9bf04d7f2e543b5b39420485626fa274908\";\n\nstatic const char tv2_seed[] =\n    \"0202020202020202020202020202020202020202020202020202020202020202\";\nstatic const char tv2_randomness[] =\n    \"6666666666666666666666666666666666666666666666666666666666666666\"\n    \"6666666666666666666666666666666666666666666666666666666666666666\";\nstatic const char tv2_ek_prefix[] =\n    \"08118d8819772292c976ec971ee3039195800c823544484595cc63450b9db941\";\nstatic const char tv2_ct_prefix[] =\n    \"413c55d5710bae6376761dada807daffd4dc45f9f70d825e0d46\";\nstatic const char tv2_ss[] =\n    \"87292f18b2e7af74bb8839ddee15e832d2f4bfac14dc84f824906d951436aafa\";\n\nstatic int\ntest_kat_vector(const char *seed_hex, const char *randomness_hex,\n                const char *ek_prefix_hex, const char *ct_prefix_hex,\n                const char *ss_hex)\n{\n    unsigned char seed[crypto_kem_xwing_SEEDBYTES];\n    unsigned char pk[crypto_kem_xwing_PUBLICKEYBYTES];\n    unsigned char sk[crypto_kem_xwing_SECRETKEYBYTES];\n    unsigned char randomness[64];\n    unsigned char ct[crypto_kem_xwing_CIPHERTEXTBYTES];\n    unsigned char ss_enc[crypto_kem_xwing_SHAREDSECRETBYTES];\n    unsigned char ss_dec[crypto_kem_xwing_SHAREDSECRETBYTES];\n    unsigned char expected_ek_prefix[32];\n    unsigned char expected_ct_prefix[26];\n    unsigned char expected_ss[32];\n    char          hex[65];\n\n    sodium_hex2bin(seed, sizeof seed, seed_hex, strlen(seed_hex), NULL, NULL, NULL);\n    sodium_hex2bin(randomness, sizeof randomness, randomness_hex, strlen(randomness_hex),\n                   NULL, NULL, NULL);\n    sodium_hex2bin(expected_ek_prefix, sizeof expected_ek_prefix, ek_prefix_hex,\n                   strlen(ek_prefix_hex), NULL, NULL, NULL);\n    sodium_hex2bin(expected_ct_prefix, sizeof expected_ct_prefix, ct_prefix_hex,\n                   strlen(ct_prefix_hex), NULL, NULL, NULL);\n    sodium_hex2bin(expected_ss, sizeof expected_ss, ss_hex, strlen(ss_hex), NULL, NULL, NULL);\n\n    crypto_kem_xwing_seed_keypair(pk, sk, seed);\n\n    if (memcmp(pk, expected_ek_prefix, 32) != 0) {\n        sodium_bin2hex(hex, sizeof hex, pk, 32);\n        printf(\"pk mismatch: got %s\\n\", hex);\n        return -1;\n    }\n\n    assert(crypto_kem_xwing_enc_deterministic(ct, ss_enc, pk, randomness) == 0);\n\n    if (memcmp(ct, expected_ct_prefix, 26) != 0) {\n        sodium_bin2hex(hex, sizeof hex, ct, 26);\n        printf(\"ct mismatch: got %s\\n\", hex);\n        return -1;\n    }\n\n    if (memcmp(ss_enc, expected_ss, 32) != 0) {\n        sodium_bin2hex(hex, sizeof hex, ss_enc, 32);\n        printf(\"ss_enc mismatch: got %s\\n\", hex);\n        return -1;\n    }\n\n    assert(crypto_kem_xwing_dec(ss_dec, ct, sk) == 0);\n\n    if (memcmp(ss_dec, expected_ss, 32) != 0) {\n        sodium_bin2hex(hex, sizeof hex, ss_dec, 32);\n        printf(\"ss_dec mismatch: got %s\\n\", hex);\n        return -1;\n    }\n\n    return 0;\n}\n\nstatic void\ntv_kem_xwing(void)\n{\n    unsigned char *pk;\n    unsigned char *sk;\n    unsigned char *seed;\n    unsigned char *ct;\n    unsigned char *ss_enc;\n    unsigned char *ss_dec;\n    unsigned char *randomness;\n    char           hex[65];\n    int            i;\n\n    pk = (unsigned char *) sodium_malloc(crypto_kem_xwing_PUBLICKEYBYTES);\n    sk = (unsigned char *) sodium_malloc(crypto_kem_xwing_SECRETKEYBYTES);\n    seed = (unsigned char *) sodium_malloc(crypto_kem_xwing_SEEDBYTES);\n    ct = (unsigned char *) sodium_malloc(crypto_kem_xwing_CIPHERTEXTBYTES);\n    ss_enc = (unsigned char *) sodium_malloc(crypto_kem_xwing_SHAREDSECRETBYTES);\n    ss_dec = (unsigned char *) sodium_malloc(crypto_kem_xwing_SHAREDSECRETBYTES);\n    randomness = (unsigned char *) sodium_malloc(64);\n\n    for (i = 0; i < (int) crypto_kem_xwing_SEEDBYTES; i++) {\n        seed[i] = (unsigned char) i;\n    }\n    crypto_kem_xwing_seed_keypair(pk, sk, seed);\n\n    sodium_bin2hex(hex, sizeof hex, pk, 32);\n    printf(\"pk (first 32 bytes): [%s]\\n\", hex);\n    sodium_bin2hex(hex, sizeof hex, sk, 32);\n    printf(\"sk: [%s]\\n\", hex);\n\n    for (i = 0; i < 64; i++) {\n        randomness[i] = (unsigned char)(i + 64);\n    }\n    assert(crypto_kem_xwing_enc_deterministic(ct, ss_enc, pk, randomness) == 0);\n\n    sodium_bin2hex(hex, sizeof hex, ct, 32);\n    printf(\"ct (first 32 bytes): [%s]\\n\", hex);\n    sodium_bin2hex(hex, sizeof hex, ss_enc, crypto_kem_xwing_SHAREDSECRETBYTES);\n    printf(\"ss_enc: [%s]\\n\", hex);\n\n    assert(crypto_kem_xwing_dec(ss_dec, ct, sk) == 0);\n\n    sodium_bin2hex(hex, sizeof hex, ss_dec, crypto_kem_xwing_SHAREDSECRETBYTES);\n    printf(\"ss_dec: [%s]\\n\", hex);\n\n    if (memcmp(ss_enc, ss_dec, crypto_kem_xwing_SHAREDSECRETBYTES) != 0) {\n        printf(\"ERROR: shared secrets don't match!\\n\");\n    } else {\n        printf(\"shared secrets match: ok\\n\");\n    }\n\n    crypto_kem_xwing_keypair(pk, sk);\n    assert(crypto_kem_xwing_enc(ct, ss_enc, pk) == 0);\n    assert(crypto_kem_xwing_dec(ss_dec, ct, sk) == 0);\n    if (memcmp(ss_enc, ss_dec, crypto_kem_xwing_SHAREDSECRETBYTES) != 0) {\n        printf(\"ERROR: shared secrets don't match (random keys)!\\n\");\n    } else {\n        printf(\"random keypair test: ok\\n\");\n    }\n\n    assert(crypto_kem_xwing_publickeybytes() == crypto_kem_xwing_PUBLICKEYBYTES);\n    assert(crypto_kem_xwing_secretkeybytes() == crypto_kem_xwing_SECRETKEYBYTES);\n    assert(crypto_kem_xwing_ciphertextbytes() == crypto_kem_xwing_CIPHERTEXTBYTES);\n    assert(crypto_kem_xwing_sharedsecretbytes() == crypto_kem_xwing_SHAREDSECRETBYTES);\n    assert(crypto_kem_xwing_seedbytes() == crypto_kem_xwing_SEEDBYTES);\n\n    assert(crypto_kem_xwing_PUBLICKEYBYTES == 1216U);\n    assert(crypto_kem_xwing_SECRETKEYBYTES == 32U);\n    assert(crypto_kem_xwing_CIPHERTEXTBYTES == 1120U);\n    assert(crypto_kem_xwing_SHAREDSECRETBYTES == 32U);\n    assert(crypto_kem_xwing_SEEDBYTES == 32U);\n\n    printf(\"constants: ok\\n\");\n\n    sodium_free(randomness);\n    sodium_free(ss_dec);\n    sodium_free(ss_enc);\n    sodium_free(ct);\n    sodium_free(seed);\n    sodium_free(sk);\n    sodium_free(pk);\n\n    printf(\"tv_kem_xwing: ok\\n\");\n}\n\nstatic void\ntv_kem_xwing_kat(void)\n{\n    printf(\"IETF KAT vector 0: \");\n    if (test_kat_vector(tv0_seed, tv0_randomness, tv0_ek_prefix, tv0_ct_prefix, tv0_ss) == 0) {\n        printf(\"ok\\n\");\n    } else {\n        printf(\"FAILED\\n\");\n    }\n\n    printf(\"IETF KAT vector 1: \");\n    if (test_kat_vector(tv1_seed, tv1_randomness, tv1_ek_prefix, tv1_ct_prefix, tv1_ss) == 0) {\n        printf(\"ok\\n\");\n    } else {\n        printf(\"FAILED\\n\");\n    }\n\n    printf(\"IETF KAT vector 2: \");\n    if (test_kat_vector(tv2_seed, tv2_randomness, tv2_ek_prefix, tv2_ct_prefix, tv2_ss) == 0) {\n        printf(\"ok\\n\");\n    } else {\n        printf(\"FAILED\\n\");\n    }\n}\n\nint\nmain(void)\n{\n    tv_kem_xwing();\n    tv_kem_xwing_kat();\n\n    return 0;\n}\n"
  },
  {
    "path": "test/default/kem_xwing.exp",
    "content": "pk (first 32 bytes): [6f54098a0a0e641146614b6960ba60d8603d62f447f9ab499b47bd6906cc40b0]\nsk: [000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f]\nct (first 32 bytes): [332c248ecac774a5b9e28b7018565b7e07b57733b8e68a432084b39b9221e497]\nss_enc: [f285b028f4de617b6adf9eccbd811327848dd44ac7078c15390b16682576ad8c]\nss_dec: [f285b028f4de617b6adf9eccbd811327848dd44ac7078c15390b16682576ad8c]\nshared secrets match: ok\nrandom keypair test: ok\nconstants: ok\ntv_kem_xwing: ok\nIETF KAT vector 0: ok\nIETF KAT vector 1: ok\nIETF KAT vector 2: ok\n"
  },
  {
    "path": "test/default/keygen.c",
    "content": "\n#define TEST_NAME \"keygen\"\n#include \"cmptest.h\"\n\ntypedef struct KeygenTV_ {\n    void (*fn)(unsigned char *k);\n    size_t key_len;\n} KeygenTV;\n\nstatic void\ntv_keygen(void)\n{\n    static const KeygenTV tvs[] = {\n        { crypto_auth_keygen, crypto_auth_KEYBYTES },\n        { crypto_auth_hmacsha256_keygen, crypto_auth_hmacsha256_KEYBYTES },\n        { crypto_aead_aes256gcm_keygen, crypto_aead_aes256gcm_KEYBYTES },\n        { crypto_auth_hmacsha512_keygen, crypto_auth_hmacsha512_KEYBYTES },\n        { crypto_auth_hmacsha512256_keygen, crypto_auth_hmacsha512256_KEYBYTES },\n        { crypto_generichash_keygen, crypto_generichash_KEYBYTES },\n        { crypto_generichash_blake2b_keygen, crypto_generichash_blake2b_KEYBYTES },\n        { crypto_kdf_keygen, crypto_kdf_KEYBYTES },\n        { crypto_onetimeauth_keygen, crypto_onetimeauth_KEYBYTES },\n        { crypto_onetimeauth_poly1305_keygen, crypto_onetimeauth_poly1305_KEYBYTES },\n        { crypto_aead_chacha20poly1305_ietf_keygen, crypto_aead_chacha20poly1305_ietf_KEYBYTES },\n        { crypto_aead_chacha20poly1305_keygen, crypto_aead_chacha20poly1305_KEYBYTES },\n        { crypto_aead_chacha20poly1305_ietf_keygen, crypto_aead_chacha20poly1305_ietf_KEYBYTES },\n        { crypto_aead_xchacha20poly1305_ietf_keygen, crypto_aead_xchacha20poly1305_ietf_KEYBYTES },\n        { crypto_secretbox_xsalsa20poly1305_keygen, crypto_secretbox_xsalsa20poly1305_KEYBYTES },\n        { crypto_secretbox_keygen, crypto_secretbox_KEYBYTES },\n        { crypto_secretstream_xchacha20poly1305_keygen, crypto_secretstream_xchacha20poly1305_KEYBYTES },\n        { crypto_shorthash_keygen, crypto_shorthash_KEYBYTES },\n        { crypto_stream_keygen, crypto_stream_KEYBYTES },\n        { crypto_stream_chacha20_keygen, crypto_stream_chacha20_KEYBYTES },\n        { crypto_stream_chacha20_ietf_keygen, crypto_stream_chacha20_ietf_KEYBYTES },\n        { crypto_stream_salsa20_keygen, crypto_stream_salsa20_KEYBYTES },\n        { crypto_stream_xsalsa20_keygen, crypto_stream_xsalsa20_KEYBYTES }\n    };\n    const KeygenTV *tv;\n    unsigned char  *key;\n    size_t          i;\n    int             j;\n\n    for (i = 0; i < (sizeof tvs) / (sizeof tvs[0]); i++) {\n        tv = &tvs[i];\n        key = (unsigned char *) sodium_malloc(tv->key_len);\n        key[tv->key_len - 1U] = 0;\n        for (j = 0; j < 10000; j++) {\n            tv->fn(key);\n            if (key[tv->key_len - 1U] != 0) {\n                break;\n            }\n        }\n        sodium_free(key);\n        if (j >= 10000) {\n            printf(\"Buffer underflow with test vector %u\\n\", (unsigned int) i);\n        }\n    }\n    printf(\"tv_keygen: ok\\n\");\n}\n\nint\nmain(void)\n{\n    tv_keygen();\n\n    return 0;\n}\n"
  },
  {
    "path": "test/default/keygen.exp",
    "content": "tv_keygen: ok\n"
  },
  {
    "path": "test/default/kx.c",
    "content": "\n#define TEST_NAME \"kx\"\n#include \"cmptest.h\"\n\nstatic const unsigned char small_order_p[crypto_scalarmult_BYTES] = {\n    0xe0, 0xeb, 0x7a, 0x7c, 0x3b, 0x41, 0xb8, 0xae, 0x16, 0x56, 0xe3,\n    0xfa, 0xf1, 0x9f, 0xc4, 0x6a, 0xda, 0x09, 0x8d, 0xeb, 0x9c, 0x32,\n    0xb1, 0xfd, 0x86, 0x62, 0x05, 0x16, 0x5f, 0x49, 0xb8, 0x00\n};\n\nstatic void\ntv_kx(void)\n{\n    unsigned char *seed;\n    unsigned char *client_pk, *client_sk;\n    unsigned char *client_rx, *client_tx;\n    unsigned char *server_pk, *server_sk;\n    unsigned char *server_rx, *server_tx;\n    char           hex[65];\n    int            i;\n\n    seed = (unsigned char *) sodium_malloc(crypto_kx_SEEDBYTES);\n    for (i = 0; i < crypto_kx_SEEDBYTES; i++) {\n        seed[i] = (unsigned char) i;\n    }\n    client_pk = (unsigned char *) sodium_malloc(crypto_kx_PUBLICKEYBYTES);\n    client_sk = (unsigned char *) sodium_malloc(crypto_kx_SECRETKEYBYTES);\n    crypto_kx_seed_keypair(client_pk, client_sk, seed);\n\n    sodium_bin2hex(hex, sizeof hex, client_pk, crypto_kx_PUBLICKEYBYTES);\n    printf(\"client_pk: [%s]\\n\", hex);\n    sodium_bin2hex(hex, sizeof hex, client_sk, crypto_kx_SECRETKEYBYTES);\n    printf(\"client_sk: [%s]\\n\", hex);\n\n    server_pk = (unsigned char *) sodium_malloc(crypto_kx_PUBLICKEYBYTES);\n    server_sk = (unsigned char *) sodium_malloc(crypto_kx_SECRETKEYBYTES);\n    crypto_kx_keypair(server_pk, server_sk);\n\n    client_rx = (unsigned char *) sodium_malloc(crypto_kx_SESSIONKEYBYTES);\n    client_tx = (unsigned char *) sodium_malloc(crypto_kx_SESSIONKEYBYTES);\n\n    assert(crypto_kx_client_session_keys(client_rx, client_tx,\n                                         client_pk, client_sk,\n                                         small_order_p) == -1);\n    if (crypto_kx_client_session_keys(client_rx, client_tx,\n                                      client_pk, client_sk, server_pk) != 0) {\n        printf(\"crypto_kx_client_session_keys() failed\\n\");\n    }\n\n    server_rx = (unsigned char *) sodium_malloc(crypto_kx_SESSIONKEYBYTES);\n    server_tx = (unsigned char *) sodium_malloc(crypto_kx_SESSIONKEYBYTES);\n\n    assert(crypto_kx_server_session_keys(server_rx, server_tx,\n                                         server_pk, server_sk,\n                                         small_order_p) == -1);\n    if (crypto_kx_server_session_keys(server_rx, server_tx,\n                                      server_pk, server_sk, client_pk) != 0) {\n        printf(\"crypto_kx_server_session_keys() failed\\n\");\n    }\n    if (memcmp(server_rx, client_tx, crypto_kx_SESSIONKEYBYTES) != 0 ||\n        memcmp(server_tx, client_rx, crypto_kx_SESSIONKEYBYTES) != 0) {\n        printf(\"client session keys != server session keys\\n\");\n    }\n\n    sodium_increment(client_pk, crypto_kx_PUBLICKEYBYTES);\n    if (crypto_kx_server_session_keys(server_rx, server_tx,\n                                      server_pk, server_sk, client_pk) != 0) {\n        printf(\"crypto_kx_server_session_keys() failed\\n\");\n    }\n    if (memcmp(server_rx, client_tx, crypto_kx_SESSIONKEYBYTES) == 0 &&\n        memcmp(server_tx, client_rx, crypto_kx_SESSIONKEYBYTES) == 0) {\n        printf(\"peer's public key is ignored\\n\");\n    }\n\n    crypto_kx_keypair(client_pk, client_sk);\n    if (crypto_kx_server_session_keys(server_rx, server_tx,\n                                      server_pk, server_sk, client_pk) != 0) {\n        printf(\"crypto_kx_server_session_keys() failed\\n\");\n    }\n    if (memcmp(server_rx, client_tx, crypto_kx_SESSIONKEYBYTES) == 0 ||\n        memcmp(server_tx, client_rx, crypto_kx_SESSIONKEYBYTES) == 0) {\n        printf(\"session keys are constant\\n\");\n    }\n\n    crypto_kx_seed_keypair(client_pk, client_sk, seed);\n    sodium_increment(seed, crypto_kx_SEEDBYTES);\n    crypto_kx_seed_keypair(server_pk, server_sk, seed);\n    if (crypto_kx_server_session_keys(server_rx, server_tx,\n                                      server_pk, server_sk, client_pk) != 0) {\n        printf(\"crypto_kx_server_session_keys() failed\\n\");\n    }\n    sodium_bin2hex(hex, sizeof hex, server_rx, crypto_kx_SESSIONKEYBYTES);\n    printf(\"server_rx: [%s]\\n\", hex);\n    sodium_bin2hex(hex, sizeof hex, server_tx, crypto_kx_SESSIONKEYBYTES);\n    printf(\"server_tx: [%s]\\n\", hex);\n\n    if (crypto_kx_client_session_keys(client_rx, client_tx,\n                                      client_pk, client_sk, server_pk) != 0) {\n        printf(\"crypto_kx_client_session_keys() failed\\n\");\n    }\n    sodium_bin2hex(hex, sizeof hex, client_rx, crypto_kx_SESSIONKEYBYTES);\n    printf(\"client_rx: [%s]\\n\", hex);\n    sodium_bin2hex(hex, sizeof hex, client_tx, crypto_kx_SESSIONKEYBYTES);\n    printf(\"client_tx: [%s]\\n\", hex);\n\n    randombytes_buf(client_rx, crypto_kx_SESSIONKEYBYTES);\n    randombytes_buf(client_tx, crypto_kx_SESSIONKEYBYTES);\n    randombytes_buf(server_rx, crypto_kx_SESSIONKEYBYTES);\n    randombytes_buf(server_tx, crypto_kx_SESSIONKEYBYTES);\n    if (crypto_kx_client_session_keys(client_rx, NULL,\n                                      client_pk, client_sk, server_pk) != 0 ||\n        crypto_kx_client_session_keys(NULL, client_tx,\n                                      client_pk, client_sk, server_pk) != 0 ||\n        crypto_kx_server_session_keys(server_rx, NULL,\n                                      server_pk, server_sk, client_pk) != 0 ||\n        crypto_kx_server_session_keys(NULL, server_tx,\n                                      server_pk, server_sk, client_pk) != 0) {\n        printf(\"failure when one of the pointers happens to be NULL\");\n    }\n    assert(memcmp(client_rx, client_tx, crypto_kx_SESSIONKEYBYTES) == 0);\n    assert(memcmp(client_tx, server_rx, crypto_kx_SESSIONKEYBYTES) == 0);\n    assert(memcmp(server_rx, server_tx, crypto_kx_SESSIONKEYBYTES) == 0);\n\n    sodium_free(client_rx);\n    sodium_free(client_tx);\n    sodium_free(server_rx);\n    sodium_free(server_tx);\n    sodium_free(server_sk);\n    sodium_free(server_pk);\n    sodium_free(client_sk);\n    sodium_free(client_pk);\n    sodium_free(seed);\n\n    assert(strcmp(crypto_kx_primitive(), crypto_kx_PRIMITIVE) == 0);\n    assert(crypto_kx_publickeybytes() == crypto_kx_PUBLICKEYBYTES);\n    assert(crypto_kx_secretkeybytes() == crypto_kx_SECRETKEYBYTES);\n    assert(crypto_kx_seedbytes() == crypto_kx_SEEDBYTES);\n    assert(crypto_kx_sessionkeybytes() == crypto_kx_SESSIONKEYBYTES);\n\n    printf(\"tv_kx: ok\\n\");\n}\n\nint\nmain(void)\n{\n    tv_kx();\n\n    return 0;\n}\n"
  },
  {
    "path": "test/default/kx.exp",
    "content": "client_pk: [0e0216223f147143d32615a91189c288c1728cba3cc5f9f621b1026e03d83129]\nclient_sk: [cb2f5160fc1f7e05a55ef49d340b48da2e5a78099d53393351cd579dd42503d6]\nserver_rx: [62c8f4fa81800abd0577d99918d129b65deb789af8c8351f391feb0cbf238604]\nserver_tx: [749519c68059bce69f7cfcc7b387a3de1a1e8237d110991323bf62870115731a]\nclient_rx: [749519c68059bce69f7cfcc7b387a3de1a1e8237d110991323bf62870115731a]\nclient_tx: [62c8f4fa81800abd0577d99918d129b65deb789af8c8351f391feb0cbf238604]\ntv_kx: ok\n"
  },
  {
    "path": "test/default/metamorphic.c",
    "content": "\n#define TEST_NAME \"metamorphic\"\n#include \"cmptest.h\"\n\n#define MAXLEN 512\n#define MAX_ITER 1000\n\nstatic void\nmm_generichash(void)\n{\n    crypto_generichash_state st;\n    unsigned char *h, *h2;\n    unsigned char *k;\n    unsigned char *m;\n    size_t         hlen;\n    size_t         klen;\n    size_t         mlen;\n    size_t         l1, l2;\n    int            i;\n\n    for (i = 0; i < MAX_ITER; i++) {\n        mlen = randombytes_uniform(MAXLEN);\n        m = (unsigned char *) sodium_malloc(mlen);\n        klen = randombytes_uniform(crypto_generichash_KEYBYTES_MAX -\n                                   crypto_generichash_KEYBYTES_MIN + 1U)\n            + crypto_generichash_KEYBYTES_MIN;\n        k = (unsigned char *) sodium_malloc(klen);\n        hlen = randombytes_uniform(crypto_generichash_BYTES_MAX -\n                                   crypto_generichash_BYTES_MIN + 1U)\n            + crypto_generichash_BYTES_MIN;\n        h = (unsigned char *) sodium_malloc(hlen);\n        h2 = (unsigned char *) sodium_malloc(hlen);\n\n        randombytes_buf(k, klen);\n        randombytes_buf(m, mlen);\n\n        crypto_generichash_init(&st, k, klen, hlen);\n        l1 = randombytes_uniform((uint32_t) mlen);\n        l2 = randombytes_uniform((uint32_t) (mlen - l1));\n        crypto_generichash_update(&st, m, l1);\n        crypto_generichash_update(&st, m + l1, l2);\n        crypto_generichash_update(&st, m + l1 + l2, mlen - l1 - l2);\n        crypto_generichash_final(&st, h, hlen);\n\n        crypto_generichash(h2, hlen, m, mlen, k, klen);\n\n        assert(memcmp(h, h2, hlen) == 0);\n\n        sodium_free(h2);\n        sodium_free(h);\n        sodium_free(k);\n        sodium_free(m);\n    }\n}\n\nstatic void\nmm_onetimeauth(void)\n{\n    crypto_onetimeauth_state st;\n    unsigned char *h, *h2;\n    unsigned char *k;\n    unsigned char *m;\n    size_t         mlen;\n    size_t         l1, l2;\n    int            i;\n\n    for (i = 0; i < MAX_ITER; i++) {\n        mlen = randombytes_uniform(MAXLEN);\n        m = (unsigned char *) sodium_malloc(mlen);\n        k = (unsigned char *) sodium_malloc(crypto_onetimeauth_KEYBYTES);\n        h = (unsigned char *) sodium_malloc(crypto_onetimeauth_BYTES);\n        h2 = (unsigned char *) sodium_malloc(crypto_onetimeauth_BYTES);\n\n        crypto_onetimeauth_keygen(k);\n        randombytes_buf(m, mlen);\n\n        crypto_onetimeauth_init(&st, k);\n        l1 = randombytes_uniform((uint32_t) mlen);\n        l2 = randombytes_uniform((uint32_t) (mlen - l1));\n        crypto_onetimeauth_update(&st, m, l1);\n        crypto_onetimeauth_update(&st, m + l1, l2);\n        crypto_onetimeauth_update(&st, m + l1 + l2, mlen - l1 - l2);\n        crypto_onetimeauth_final(&st, h);\n\n        crypto_onetimeauth(h2, m, mlen, k);\n\n        assert(memcmp(h, h2, crypto_onetimeauth_BYTES) == 0);\n\n        sodium_free(h2);\n        sodium_free(h);\n        sodium_free(k);\n        sodium_free(m);\n    }\n}\n\nstatic void\nmm_hmacsha256(void)\n{\n    crypto_auth_hmacsha256_state st;\n    unsigned char *h, *h2;\n    unsigned char *k;\n    unsigned char *m;\n    size_t         mlen;\n    size_t         l1, l2;\n    int            i;\n\n    for (i = 0; i < MAX_ITER; i++) {\n        mlen = randombytes_uniform(MAXLEN);\n        m = (unsigned char *) sodium_malloc(mlen);\n        k = (unsigned char *) sodium_malloc(crypto_auth_hmacsha256_KEYBYTES);\n        h = (unsigned char *) sodium_malloc(crypto_auth_hmacsha256_BYTES);\n        h2 = (unsigned char *) sodium_malloc(crypto_auth_hmacsha256_BYTES);\n\n        crypto_auth_hmacsha256_keygen(k);\n        randombytes_buf(m, mlen);\n\n        crypto_auth_hmacsha256_init(&st, k, crypto_auth_hmacsha256_KEYBYTES);\n        l1 = randombytes_uniform((uint32_t) mlen);\n        l2 = randombytes_uniform((uint32_t) (mlen - l1));\n        crypto_auth_hmacsha256_update(&st, m, l1);\n        crypto_auth_hmacsha256_update(&st, m + l1, l2);\n        crypto_auth_hmacsha256_update(&st, m + l1 + l2, mlen - l1 - l2);\n        crypto_auth_hmacsha256_final(&st, h);\n\n        crypto_auth_hmacsha256(h2, m, mlen, k);\n\n        assert(memcmp(h, h2, crypto_auth_hmacsha256_BYTES) == 0);\n\n        sodium_free(h2);\n        sodium_free(h);\n        sodium_free(k);\n        sodium_free(m);\n    }\n}\n\nstatic void\nmm_hmacsha512(void)\n{\n    crypto_auth_hmacsha512_state st;\n    unsigned char *h, *h2;\n    unsigned char *k;\n    unsigned char *m;\n    size_t         mlen;\n    size_t         l1, l2;\n    int            i;\n\n    for (i = 0; i < MAX_ITER; i++) {\n        mlen = randombytes_uniform(MAXLEN);\n        m = (unsigned char *) sodium_malloc(mlen);\n        k = (unsigned char *) sodium_malloc(crypto_auth_hmacsha512_KEYBYTES);\n        h = (unsigned char *) sodium_malloc(crypto_auth_hmacsha512_BYTES);\n        h2 = (unsigned char *) sodium_malloc(crypto_auth_hmacsha512_BYTES);\n\n        crypto_auth_hmacsha512_keygen(k);\n        randombytes_buf(m, mlen);\n\n        crypto_auth_hmacsha512_init(&st, k, crypto_auth_hmacsha512_KEYBYTES);\n        l1 = randombytes_uniform((uint32_t) mlen);\n        l2 = randombytes_uniform((uint32_t) (mlen - l1));\n        crypto_auth_hmacsha512_update(&st, m, l1);\n        crypto_auth_hmacsha512_update(&st, m + l1, l2);\n        crypto_auth_hmacsha512_update(&st, m + l1 + l2, mlen - l1 - l2);\n        crypto_auth_hmacsha512_final(&st, h);\n\n        crypto_auth_hmacsha512(h2, m, mlen, k);\n\n        assert(memcmp(h, h2, crypto_auth_hmacsha512_BYTES) == 0);\n\n        sodium_free(h2);\n        sodium_free(h);\n        sodium_free(k);\n        sodium_free(m);\n    }\n}\n\nint\nmain(void)\n{\n    mm_generichash();\n    mm_onetimeauth();\n    mm_hmacsha256();\n    mm_hmacsha512();\n\n    printf(\"OK\\n\");\n\n    return 0;\n}\n"
  },
  {
    "path": "test/default/metamorphic.exp",
    "content": "OK\n"
  },
  {
    "path": "test/default/misuse.c",
    "content": "\n#define TEST_NAME \"misuse\"\n#include \"cmptest.h\"\n\n#ifdef HAVE_CATCHABLE_ABRT\n# include <signal.h>\n#ifndef _WIN32\n# include <unistd.h>\n#endif\n\nstatic void\nsigabrt_handler_15(int sig)\n{\n    (void) sig;\n    _exit(0);\n}\n\n# ifndef SODIUM_LIBRARY_MINIMAL\nstatic void\nsigabrt_handler_14(int sig)\n{\n    (void) sig;\n    signal(SIGABRT, sigabrt_handler_15);\n    assert(crypto_box_curve25519xchacha20poly1305_easy\n           (guard_page, guard_page, crypto_stream_xchacha20_MESSAGEBYTES_MAX - 1,\n            guard_page, guard_page, guard_page) == -1);\n    _exit(1);\n}\n\nstatic void\nsigabrt_handler_13(int sig)\n{\n    (void) sig;\n    signal(SIGABRT, sigabrt_handler_14);\n    assert(crypto_box_curve25519xchacha20poly1305_easy_afternm\n           (guard_page, guard_page, crypto_stream_xchacha20_MESSAGEBYTES_MAX - 1,\n            guard_page, guard_page) == -1);\n    _exit(1);\n}\n# endif\n\nstatic void\nsigabrt_handler_12(int sig)\n{\n    (void) sig;\n# ifdef SODIUM_LIBRARY_MINIMAL\n    signal(SIGABRT, sigabrt_handler_15);\n# else\n    signal(SIGABRT, sigabrt_handler_13);\n# endif\n    assert(crypto_pwhash_str_alg((char *) guard_page,\n                                 \"\", 0U, 1U, 1U, -1) == -1);\n    _exit(1);\n}\n\nstatic void\nsigabrt_handler_11(int sig)\n{\n    (void) sig;\n    signal(SIGABRT, sigabrt_handler_12);\n    assert(crypto_box_easy(guard_page, guard_page,\n                           crypto_stream_xsalsa20_MESSAGEBYTES_MAX,\n                           guard_page, guard_page, guard_page) == -1);\n    _exit(1);\n}\n\nstatic void\nsigabrt_handler_10(int sig)\n{\n    (void) sig;\n    signal(SIGABRT, sigabrt_handler_11);\n    assert(crypto_box_easy_afternm(guard_page, guard_page,\n                                   crypto_stream_xsalsa20_MESSAGEBYTES_MAX,\n                                   guard_page, guard_page) == -1);\n    _exit(1);\n}\n\nstatic void\nsigabrt_handler_9(int sig)\n{\n    (void) sig;\n    signal(SIGABRT, sigabrt_handler_10);\n    assert(sodium_base642bin(guard_page, 1, (const char *) guard_page, 1,\n                             NULL, NULL, NULL, -1) == -1);\n    _exit(1);\n}\n\nstatic void\nsigabrt_handler_8(int sig)\n{\n    (void) sig;\n    signal(SIGABRT, sigabrt_handler_9);\n    assert(sodium_bin2base64((char *) guard_page, 1, guard_page, 1,\n                             sodium_base64_VARIANT_ORIGINAL) == NULL);\n    _exit(1);\n}\n\nstatic void\nsigabrt_handler_7(int sig)\n{\n    (void) sig;\n    signal(SIGABRT, sigabrt_handler_8);\n    assert(sodium_bin2base64((char *) guard_page, 1,\n                             guard_page, 1, -1) == NULL);\n    _exit(1);\n}\n\nstatic void\nsigabrt_handler_6(int sig)\n{\n    (void) sig;\n    signal(SIGABRT, sigabrt_handler_7);\n    assert(sodium_pad(NULL, guard_page, SIZE_MAX, 16, 1) == -1);\n    _exit(1);\n}\n\nstatic void\nsigabrt_handler_5(int sig)\n{\n    (void) sig;\n    signal(SIGABRT, sigabrt_handler_6);\n    assert(crypto_aead_xchacha20poly1305_ietf_encrypt(guard_page, NULL, NULL, UINT64_MAX,\n                                                      NULL, 0, NULL,\n                                                      guard_page, guard_page) == -1);\n    _exit(1);\n}\n\nstatic void\nsigabrt_handler_4(int sig)\n{\n    (void) sig;\n    signal(SIGABRT, sigabrt_handler_5);\n    assert(crypto_aead_chacha20poly1305_ietf_encrypt(guard_page, NULL, NULL, UINT64_MAX,\n                                                     NULL, 0, NULL,\n                                                     guard_page, guard_page) == -1);\n    _exit(1);\n}\n\nstatic void\nsigabrt_handler_3(int sig)\n{\n    (void) sig;\n    signal(SIGABRT, sigabrt_handler_4);\n    assert(crypto_aead_chacha20poly1305_encrypt(guard_page, NULL, NULL, UINT64_MAX,\n                                                NULL, 0, NULL,\n                                                guard_page, guard_page) == -1);\n    _exit(1);\n}\n\nstatic void\nsigabrt_handler_2(int sig)\n{\n    (void) sig;\n    signal(SIGABRT, sigabrt_handler_3);\n#if SIZE_MAX > 0x4000000000ULL\n    randombytes_buf_deterministic(guard_page, 0x4000000001ULL, guard_page);\n#else\n    abort();\n#endif\n    _exit(1);\n}\n\nstatic void\nsigabrt_handler_1(int sig)\n{\n    (void) sig;\n    signal(SIGABRT, sigabrt_handler_2);\n    assert(crypto_kx_server_session_keys(NULL, NULL, guard_page, guard_page,\n                                         guard_page) == -1);\n    _exit(1);\n}\n\nint\nmain(void)\n{\n    signal(SIGABRT, sigabrt_handler_1);\n    assert(crypto_kx_client_session_keys(NULL, NULL, guard_page, guard_page,\n                                         guard_page) == -1);\n    return 1;\n}\n#else\nint\nmain(void)\n{\n    return 0;\n}\n#endif\n"
  },
  {
    "path": "test/default/misuse.exp",
    "content": ""
  },
  {
    "path": "test/default/onetimeauth.c",
    "content": "\n#define TEST_NAME \"onetimeauth\"\n#include \"cmptest.h\"\n\nstatic unsigned char rs[32] = {\n    0xee, 0xa6, 0xa7, 0x25, 0x1c, 0x1e, 0x72, 0x91, 0x6d, 0x11, 0xc2,\n    0xcb, 0x21, 0x4d, 0x3c, 0x25, 0x25, 0x39, 0x12, 0x1d, 0x8e, 0x23,\n    0x4e, 0x65, 0x2d, 0x65, 0x1f, 0xa4, 0xc8, 0xcf, 0xf8, 0x80\n};\n\nstatic unsigned char c[131] = {\n    0x8e, 0x99, 0x3b, 0x9f, 0x48, 0x68, 0x12, 0x73, 0xc2, 0x96, 0x50, 0xba,\n    0x32, 0xfc, 0x76, 0xce, 0x48, 0x33, 0x2e, 0xa7, 0x16, 0x4d, 0x96, 0xa4,\n    0x47, 0x6f, 0xb8, 0xc5, 0x31, 0xa1, 0x18, 0x6a, 0xc0, 0xdf, 0xc1, 0x7c,\n    0x98, 0xdc, 0xe8, 0x7b, 0x4d, 0xa7, 0xf0, 0x11, 0xec, 0x48, 0xc9, 0x72,\n    0x71, 0xd2, 0xc2, 0x0f, 0x9b, 0x92, 0x8f, 0xe2, 0x27, 0x0d, 0x6f, 0xb8,\n    0x63, 0xd5, 0x17, 0x38, 0xb4, 0x8e, 0xee, 0xe3, 0x14, 0xa7, 0xcc, 0x8a,\n    0xb9, 0x32, 0x16, 0x45, 0x48, 0xe5, 0x26, 0xae, 0x90, 0x22, 0x43, 0x68,\n    0x51, 0x7a, 0xcf, 0xea, 0xbd, 0x6b, 0xb3, 0x73, 0x2b, 0xc0, 0xe9, 0xda,\n    0x99, 0x83, 0x2b, 0x61, 0xca, 0x01, 0xb6, 0xde, 0x56, 0x24, 0x4a, 0x9e,\n    0x88, 0xd5, 0xf9, 0xb3, 0x79, 0x73, 0xf6, 0x22, 0xa4, 0x3d, 0x14, 0xa6,\n    0x59, 0x9b, 0x1f, 0x65, 0x4c, 0xb4, 0x5a, 0x74, 0xe3, 0x55, 0xa5\n};\n\nstatic unsigned char a[16];\n\nint\nmain(void)\n{\n    crypto_onetimeauth_state st;\n    int                      i;\n\n    assert(crypto_onetimeauth_statebytes() == sizeof st);\n    crypto_onetimeauth(a, c, 131, rs);\n    for (i = 0; i < 16; ++i) {\n        printf(\",0x%02x\", (unsigned int) a[i]);\n        if (i % 8 == 7)\n            printf(\"\\n\");\n    }\n\n    memset(a, 0, sizeof a);\n    crypto_onetimeauth_init(&st, rs);\n    crypto_onetimeauth_update(&st, c, 100);\n    crypto_onetimeauth_update(&st, c, 0);\n    crypto_onetimeauth_update(&st, c + 100, 31);\n    crypto_onetimeauth_final(&st, a);\n    for (i = 0; i < 16; ++i) {\n        printf(\",0x%02x\", (unsigned int) a[i]);\n        if (i % 8 == 7)\n            printf(\"\\n\");\n    }\n\n    assert(crypto_onetimeauth_bytes() > 0U);\n    assert(crypto_onetimeauth_keybytes() > 0U);\n    assert(strcmp(crypto_onetimeauth_primitive(), \"poly1305\") == 0);\n    assert(crypto_onetimeauth_poly1305_bytes() == crypto_onetimeauth_bytes());\n    assert(crypto_onetimeauth_poly1305_keybytes() ==\n           crypto_onetimeauth_keybytes());\n    assert(crypto_onetimeauth_statebytes() > 0);\n    assert(crypto_onetimeauth_statebytes() == crypto_onetimeauth_poly1305_statebytes());\n\n    return 0;\n}\n"
  },
  {
    "path": "test/default/onetimeauth.exp",
    "content": ",0xf3,0xff,0xc7,0x70,0x3f,0x94,0x00,0xe5\n,0x2a,0x7d,0xfb,0x4b,0x3d,0x33,0x05,0xd9\n,0xf3,0xff,0xc7,0x70,0x3f,0x94,0x00,0xe5\n,0x2a,0x7d,0xfb,0x4b,0x3d,0x33,0x05,0xd9\n"
  },
  {
    "path": "test/default/onetimeauth2.c",
    "content": "\n#define TEST_NAME \"onetimeauth2\"\n#include \"cmptest.h\"\n\nstatic unsigned char rs[32] = {\n    0xee, 0xa6, 0xa7, 0x25, 0x1c, 0x1e, 0x72, 0x91, 0x6d, 0x11, 0xc2,\n    0xcb, 0x21, 0x4d, 0x3c, 0x25, 0x25, 0x39, 0x12, 0x1d, 0x8e, 0x23,\n    0x4e, 0x65, 0x2d, 0x65, 0x1f, 0xa4, 0xc8, 0xcf, 0xf8, 0x80\n};\n\nstatic unsigned char c[131] = {\n    0x8e, 0x99, 0x3b, 0x9f, 0x48, 0x68, 0x12, 0x73, 0xc2, 0x96, 0x50, 0xba,\n    0x32, 0xfc, 0x76, 0xce, 0x48, 0x33, 0x2e, 0xa7, 0x16, 0x4d, 0x96, 0xa4,\n    0x47, 0x6f, 0xb8, 0xc5, 0x31, 0xa1, 0x18, 0x6a, 0xc0, 0xdf, 0xc1, 0x7c,\n    0x98, 0xdc, 0xe8, 0x7b, 0x4d, 0xa7, 0xf0, 0x11, 0xec, 0x48, 0xc9, 0x72,\n    0x71, 0xd2, 0xc2, 0x0f, 0x9b, 0x92, 0x8f, 0xe2, 0x27, 0x0d, 0x6f, 0xb8,\n    0x63, 0xd5, 0x17, 0x38, 0xb4, 0x8e, 0xee, 0xe3, 0x14, 0xa7, 0xcc, 0x8a,\n    0xb9, 0x32, 0x16, 0x45, 0x48, 0xe5, 0x26, 0xae, 0x90, 0x22, 0x43, 0x68,\n    0x51, 0x7a, 0xcf, 0xea, 0xbd, 0x6b, 0xb3, 0x73, 0x2b, 0xc0, 0xe9, 0xda,\n    0x99, 0x83, 0x2b, 0x61, 0xca, 0x01, 0xb6, 0xde, 0x56, 0x24, 0x4a, 0x9e,\n    0x88, 0xd5, 0xf9, 0xb3, 0x79, 0x73, 0xf6, 0x22, 0xa4, 0x3d, 0x14, 0xa6,\n    0x59, 0x9b, 0x1f, 0x65, 0x4c, 0xb4, 0x5a, 0x74, 0xe3, 0x55, 0xa5\n};\n\nstatic unsigned char a[16] = { 0xf3, 0xff, 0xc7, 0x70, 0x3f, 0x94, 0x00, 0xe5,\n                               0x2a, 0x7d, 0xfb, 0x4b, 0x3d, 0x33, 0x05, 0xd9 };\n\nint\nmain(void)\n{\n    printf(\"%d\\n\", crypto_onetimeauth_verify(a, c, 131, rs));\n    return 0;\n}\n"
  },
  {
    "path": "test/default/onetimeauth2.exp",
    "content": "0\n"
  },
  {
    "path": "test/default/onetimeauth7.c",
    "content": "\n#define TEST_NAME \"onetimeauth7\"\n#include \"cmptest.h\"\n\nstatic unsigned char key[32];\nstatic unsigned char c[1000];\nstatic unsigned char a[16];\n\nint\nmain(void)\n{\n    int clen;\n\n    for (clen = 0; clen < 1000; ++clen) {\n        crypto_onetimeauth_keygen(key);\n        randombytes_buf(c, clen);\n        crypto_onetimeauth(a, c, clen, key);\n        if (crypto_onetimeauth_verify(a, c, clen, key) != 0) {\n            printf(\"fail %d\\n\", clen);\n            return 100;\n        }\n        if (clen > 0) {\n            c[rand() % clen] += 1 + (rand() % 255);\n            if (crypto_onetimeauth_verify(a, c, clen, key) == 0) {\n                printf(\"forgery %d\\n\", clen);\n                return 100;\n            }\n            a[rand() % sizeof a] += 1 + (rand() % 255);\n            if (crypto_onetimeauth_verify(a, c, clen, key) == 0) {\n                printf(\"forgery %d\\n\", clen);\n                return 100;\n            }\n        }\n    }\n    return 0;\n}\n"
  },
  {
    "path": "test/default/onetimeauth7.exp",
    "content": ""
  },
  {
    "path": "test/default/pre.js.inc",
    "content": "try {\n    this['Module'] = Module;\n    Module.test;\n} catch(e) {\n    this['Module'] = Module = {};\n}\nif (typeof process === 'object') {\n    if (typeof(FS) === 'object') {\n        Module['preRun'] = Module['preRun'] || [];\n        Module['preRun'].push(function() {\n            FS.init();\n            FS.mkdir('/test-data');\n            FS.mount(NODEFS,  { root: '.' }, '/test-data');\n        });\n    }\n} else {\n    Module['print'] = function(x) {\n        var event = new Event('test-output');\n        event.data = x;\n        window.dispatchEvent(event);\n    };\n}\n"
  },
  {
    "path": "test/default/pwhash_argon2i.c",
    "content": "\n#define TEST_NAME \"pwhash_argon2i\"\n#include \"cmptest.h\"\n\n#define OUT_LEN 128\n#define OPSLIMIT 3\n#define MEMLIMIT 5000000\n\nstatic void\ntv(void)\n{\n    static struct {\n        const char *       passwd_hex;\n        size_t             passwd_len;\n        const char *       salt_hex;\n        size_t             outlen;\n        unsigned long long opslimit;\n        size_t             memlimit;\n        unsigned int       lanes;\n    } tests[] = {\n        { \"a347ae92bce9f80f6f595a4480fc9c2fe7e7d7148d371e9487d75f5c23008ffae0\"\n          \"65577a928febd9b1973a5a95073acdbeb6a030cfc0d79caa2dc5cd011cef02c08d\"\n          \"a232d76d52dfbca38ca8dcbd665b17d1665f7cf5fe59772ec909733b24de97d6f5\"\n          \"8d220b20c60d7c07ec1fd93c52c31020300c6c1facd77937a597c7a6\",\n          127,\n          \"5541fbc995d5c197ba290346d2c559dedf405cf97e5f95482143202f9e74f5c2\",\n          155, 5, 7256678, 1 },\n        { \"e125cee61c8cb7778d9e5ad0a6f5d978ce9f84de213a8556d9ffe202020ab4a6ed\"\n          \"9074a4eb3416f9b168f137510f3a30b70b96cbfa219ff99f6c6eaffb15c06b60e0\"\n          \"0cc2890277f0fd3c622115772f7048adaebed86e\",\n          86,\n          \"f1192dd5dc2368b9cd421338b22433455ee0a3699f9379a08b9650ea2c126f0d\",\n          250, 4, 7849083, 1 },\n        { \"92263cbf6ac376499f68a4289d3bb59e5a22335eba63a32e6410249155b956b6a3\"\n          \"b48d4a44906b18b897127300b375b8f834f1ceffc70880a885f47c33876717e392\"\n          \"be57f7da3ae58da4fd1f43daa7e44bb82d3717af4319349c24cd31e46d295856b0\"\n          \"441b6b289992a11ced1cc3bf3011604590244a3eb737ff221129215e4e4347f491\"\n          \"5d41292b5173d196eb9add693be5319fdadc242906178bb6c0286c9b6ca6012746\"\n          \"711f58c8c392016b2fdfc09c64f0f6b6ab7b\",\n          183,\n          \"3b840e20e9555e9fb031c4ba1f1747ce25cc1d0ff664be676b9b4a90641ff194\",\n          249, 3, 7994791, 1 },\n        { \"027b6d8e8c8c474e9b69c7d9ed4f9971e8e1ce2f6ba95048414c3970f0f09b70e3\"\n          \"b6c5ae05872b3d8678705b7d381829c351a5a9c88c233569b35d6b0b809df44b64\"\n          \"51a9c273f1150e2ef8a0b5437eb701e373474cd44b97ef0248ebce2ca0400e1b53\"\n          \"f3d86221eca3f18eb45b702b9172440f774a82cbf1f6f525df30a6e293c873cce6\"\n          \"9bb078ed1f0d31e7f9b8062409f37f19f8550aae\",\n          152,\n          \"eb2a3056a09ad2d7d7f975bcd707598f24cd32518cde3069f2e403b34bfee8a5\", 5,\n          4, 1397645, 1 },\n        { \"4a857e2ee8aa9b6056f2424e84d24a72473378906ee04a46cb05311502d5250b82\"\n          \"ad86b83c8f20a23dbb74f6da60b0b6ecffd67134d45946ac8ebfb3064294bc097d\"\n          \"43ced68642bfb8bbbdd0f50b30118f5e\",\n          82,\n          \"39d82eef32010b8b79cc5ba88ed539fbaba741100f2edbeca7cc171ffeabf258\",\n          190, 3, 1432947, 1 },\n        { \"c7b09aec680e7b42fedd7fc792e78b2f6c1bea8f4a884320b648f81e8cf515e8ba\"\n          \"9dcfb11d43c4aae114c1734aa69ca82d44998365db9c93744fa28b63fd16000e82\"\n          \"61cbbe083e7e2da1e5f696bde0834fe53146d7e0e35e7de9920d041f5a5621aabe\"\n          \"02da3e2b09b405b77937efef3197bd5772e41fdb73fb5294478e45208063b5f58e\"\n          \"089dbeb6d6342a909c1307b3fff5fe2cf4da56bdae50848f\",\n          156,\n          \"039c056d933b475032777edbaffac50f143f64c123329ed9cf59e3b65d3f43b6\",\n          178, 3, 4886999, 1 },\n        { \"b540beb016a5366524d4605156493f9874514a5aa58818cd0c6dfffaa9e90205f1\"\n          \"7b\",\n          34,\n          \"44071f6d181561670bda728d43fb79b443bb805afdebaf98622b5165e01b15fb\",\n          231, 1, 1631659, 1 },\n        { \"a14975c26c088755a8b715ff2528d647cd343987fcf4aa25e7194a8417fb2b4b3f\"\n          \"7268da9f3182b4cfb22d138b2749d673a47ecc7525dd15a0a3c66046971784bb63\"\n          \"d7eae24cc84f2631712075a10e10a96b0e0ee67c43e01c423cb9c44e5371017e9c\"\n          \"496956b632158da3fe12addecb88912e6759bc37f9af2f45af72c5cae3b179ffb6\"\n          \"76a697de6ebe45cd4c16d4a9d642d29ddc0186a0a48cb6cd62bfc3dd229d313b30\"\n          \"1560971e740e2cf1f99a9a090a5b283f35475057e96d7064e2e0fc81984591068d\"\n          \"55a3b4169f22cccb0745a2689407ea1901a0a766eb99\",\n          220,\n          \"3d968b2752b8838431165059319f3ff8910b7b8ecb54ea01d3f54769e9d98daf\",\n          167, 3, 1784128, 1 },\n    };\n    char          passwd[256];\n    unsigned char salt[crypto_pwhash_SALTBYTES];\n    unsigned char out[256];\n    char          out_hex[256 * 2 + 1];\n    size_t        i = 0U;\n\n    do {\n        sodium_hex2bin((unsigned char *) passwd, sizeof passwd,\n                       tests[i].passwd_hex, strlen(tests[i].passwd_hex), NULL,\n                       NULL, NULL);\n        sodium_hex2bin(salt, sizeof salt, tests[i].salt_hex,\n                       strlen(tests[i].salt_hex), NULL, NULL, NULL);\n        if (crypto_pwhash(out, (unsigned long long) tests[i].outlen, passwd,\n                          tests[i].passwd_len, (const unsigned char *) salt,\n                          tests[i].opslimit, tests[i].memlimit,\n                          crypto_pwhash_alg_argon2i13()) != 0) {\n            printf(\"[tv] pwhash failure (maybe intentional): [%u]\\n\",\n                   (unsigned int) i);\n            continue;\n        }\n        sodium_bin2hex(out_hex, sizeof out_hex, out, tests[i].outlen);\n        printf(\"%s\\n\", out_hex);\n    } while (++i < (sizeof tests) / (sizeof tests[0]));\n}\n\nstatic void\ntv2(void)\n{\n    static struct {\n        const char *       passwd_hex;\n        size_t             passwd_len;\n        const char *       salt_hex;\n        size_t             outlen;\n        unsigned long long opslimit;\n        size_t             memlimit;\n        unsigned int       lanes;\n    } tests[] = {\n        { \"a347ae92bce9f80f6f595a4480fc9c2fe7e7d7148d371e9487d75f5c23008ffae0\"\n          \"65577a928febd9b1973a5a95073acdbeb6a030cfc0d79caa2dc5cd011cef02c08d\"\n          \"a232d76d52dfbca38ca8dcbd665b17d1665f7cf5fe59772ec909733b24de97d6f5\"\n          \"8d220b20c60d7c07ec1fd93c52c31020300c6c1facd77937a597c7a6\",\n          127,\n          \"5541fbc995d5c197ba290346d2c559dedf405cf97e5f95482143202f9e74f5c2\",\n          155, 4, 397645, 1 },\n        { \"a347ae92bce9f80f6f595a4480fc9c2fe7e7d7148d371e9487d75f5c23008ffae0\"\n          \"65577a928febd9b1973a5a95073acdbeb6a030cfc0d79caa2dc5cd011cef02c08d\"\n          \"a232d76d52dfbca38ca8dcbd665b17d1665f7cf5fe59772ec909733b24de97d6f5\"\n          \"8d220b20c60d7c07ec1fd93c52c31020300c6c1facd77937a597c7a6\",\n          127,\n          \"5541fbc995d5c197ba290346d2c559dedf405cf97e5f95482143202f9e74f5c2\",\n          155, 3, 397645, 1 },\n    };\n    char          passwd[256];\n    unsigned char salt[crypto_pwhash_SALTBYTES];\n    unsigned char out[256];\n    char          out_hex[256 * 2 + 1];\n    size_t        i = 0U;\n\n    do {\n        sodium_hex2bin((unsigned char *) passwd, sizeof passwd,\n                       tests[i].passwd_hex, strlen(tests[i].passwd_hex), NULL,\n                       NULL, NULL);\n        sodium_hex2bin(salt, sizeof salt, tests[i].salt_hex,\n                       strlen(tests[i].salt_hex), NULL, NULL, NULL);\n        if (crypto_pwhash(out, (unsigned long long) tests[i].outlen, passwd,\n                          tests[i].passwd_len, (const unsigned char *) salt,\n                          tests[i].opslimit, tests[i].memlimit,\n                          crypto_pwhash_alg_argon2i13()) != 0) {\n            printf(\"[tv2] pwhash failure: [%u]\\n\", (unsigned int) i);\n            continue;\n        }\n        sodium_bin2hex(out_hex, sizeof out_hex, out, tests[i].outlen);\n        printf(\"%s\\n\", out_hex);\n    } while (++i < (sizeof tests) / (sizeof tests[0]));\n\n    if (crypto_pwhash(out, sizeof out, \"password\", strlen(\"password\"), salt, 3,\n                      1ULL << 12, 0) != -1) {\n        printf(\"[tv2] pwhash should have failed (0)\\n\");\n    }\n    if (crypto_pwhash_argon2i(out, sizeof out, \"password\", strlen(\"password\"), salt, 3,\n                              1ULL << 12, 0) != -1) {\n        printf(\"[tv2] pwhash should have failed (0')\\n\");\n    }\n    if (crypto_pwhash(out, sizeof out, \"password\", strlen(\"password\"), salt, 3,\n                      1, crypto_pwhash_alg_argon2i13()) != -1) {\n        printf(\"[tv2] pwhash should have failed (1)\\n\");\n    }\n    if (crypto_pwhash(out, sizeof out, \"password\", strlen(\"password\"), salt, 3,\n                      1ULL << 12, crypto_pwhash_alg_argon2i13()) != -1) {\n        printf(\"[tv2] pwhash should have failed (2)\\n\");\n    }\n    if (crypto_pwhash(out, sizeof out, \"password\", strlen(\"password\"), salt, 2,\n                      1ULL << 12, crypto_pwhash_alg_argon2i13()) != -1) {\n        printf(\"[tv2] pwhash should have failed (3)\\n\");\n    }\n    if (crypto_pwhash(out, 15, \"password\", strlen(\"password\"), salt, 3,\n                      1ULL << 12, crypto_pwhash_alg_argon2i13()) != -1) {\n        printf(\"[tv2] pwhash with a short output length should have failed\\n\");\n    }\n    if (crypto_pwhash(out, sizeof out, \"password\", 0x100000000ULL, salt, 3,\n                      1ULL << 12, crypto_pwhash_alg_argon2i13()) != -1) {\n        printf(\"[tv2] pwhash with a long password length should have failed\\n\");\n    }\n    assert(crypto_pwhash_argon2i(out, sizeof out, \"password\", strlen(\"password\"), salt,\n                                 OPSLIMIT, MEMLIMIT, crypto_pwhash_alg_argon2id13()) == -1);\n}\n\nstatic void\ntv3(void)\n{\n    static struct {\n        const char *passwd;\n        const char *out;\n    } tests[] = {\n        { \"\",\n          \"$argon2i$v=19$m=4096,t=1,p=1$X1NhbHQAAAAAAAAAAAAAAA$bWh++\"\n          \"MKN1OiFHKgIWTLvIi1iHicmHH7+Fv3K88ifFfI\" },\n        { \"\",\n          \"$argon2i$v=19$m=2048,t=4,p=1$SWkxaUhpY21ISDcrRnYzSw$Mbg/\"\n          \"Eck1kpZir5T9io7C64cpffdTBaORgyriLQFgQj8\" },\n        { \"^T5H$JYt39n%K*j:W]!1s?vg!:jGi]Ax?..l7[p0v:1jHTpla9;]bUN;?bWyCbtqg \",\n          \"$argon2i$v=19$m=4096,t=3,p=2$X1NhbHQAAAAAAAAAAAAAAA$z/QMiU4lQxGsYNc/\"\n          \"+K/bizwsA1P11UG2dj/7+aILJ4I\" },\n        { \"K3S=KyH#)36_?]LxeR8QNKw6X=gFbxai$C%29V*\",\n          \"$argon2i$v=19$m=4096,t=3,p=1$X1NhbHQAAAAAAAAAAAAAAA$fu2Wsecyt+\"\n          \"yPnBvSvYN16oP5ozRmkp0ixJ1YL19V3Uo\" }\n    };\n    char   *out;\n    char   *passwd;\n    size_t  i = 0U;\n    int     ret;\n\n    do {\n        out = (char *) sodium_malloc(strlen(tests[i].out) + 1U);\n        assert(out != NULL);\n        memcpy(out, tests[i].out, strlen(tests[i].out) + 1U);\n        passwd = (char *) sodium_malloc(strlen(tests[i].passwd) + 1U);\n        assert(passwd != NULL);\n        memcpy(passwd, tests[i].passwd, strlen(tests[i].passwd) + 1U);\n        ret = crypto_pwhash_str_verify(out, passwd, strlen(passwd));\n        sodium_free(out);\n        sodium_free(passwd);\n        if (ret != 0) {\n            printf(\"[tv3] pwhash_str failure (maybe intentional): [%u]\\n\",\n                   (unsigned int) i);\n        }\n    } while (++i < (sizeof tests) / (sizeof tests[0]));\n}\n\nstatic void\nstr_tests(void)\n{\n    char       *str_out;\n    char       *str_out2;\n    char       *salt;\n    const char *passwd = \"Correct Horse Battery Staple\";\n\n    salt     = (char *) sodium_malloc(crypto_pwhash_SALTBYTES);\n    str_out  = (char *) sodium_malloc(crypto_pwhash_STRBYTES);\n    str_out2 = (char *) sodium_malloc(crypto_pwhash_STRBYTES);\n    memcpy(salt, \">A 16-bytes salt\", crypto_pwhash_SALTBYTES);\n    if (crypto_pwhash_argon2i_str(str_out, passwd, strlen(passwd), OPSLIMIT,\n                                  MEMLIMIT) != 0) {\n        printf(\"pwhash_argon2i_str failure\\n\");\n    }\n    if (crypto_pwhash_argon2i_str(str_out2, passwd, strlen(passwd), OPSLIMIT,\n                                  MEMLIMIT) != 0) {\n        printf(\"pwhash_argon2i_str(2) failure\\n\");\n    }\n    if (strcmp(str_out, str_out2) == 0) {\n        printf(\"pwhash_argon2i_str() doesn't generate different salts\\n\");\n    }\n    if (crypto_pwhash_argon2i_str_needs_rehash(str_out, OPSLIMIT, MEMLIMIT) != 0) {\n        printf(\"needs_rehash() false positive\\n\");\n    }\n    if (crypto_pwhash_argon2i_str_needs_rehash(str_out, OPSLIMIT, MEMLIMIT / 2) != 1 ||\n        crypto_pwhash_argon2i_str_needs_rehash(str_out, OPSLIMIT / 2, MEMLIMIT) != 1 ||\n        crypto_pwhash_argon2i_str_needs_rehash(str_out, OPSLIMIT, MEMLIMIT * 2) != 1 ||\n        crypto_pwhash_argon2i_str_needs_rehash(str_out, OPSLIMIT * 2, MEMLIMIT) != 1) {\n        printf(\"needs_rehash() false negative\\n\");\n    }\n    if (crypto_pwhash_str_needs_rehash(str_out, OPSLIMIT, MEMLIMIT / 2) != 1) {\n        printf(\"pwhash_str_needs_rehash() didn't handle argon2i\\n\");\n    }\n    if (crypto_pwhash_str_needs_rehash(str_out + 1, OPSLIMIT, MEMLIMIT) != -1 ||\n        crypto_pwhash_argon2i_str_needs_rehash(str_out + 1, OPSLIMIT, MEMLIMIT) != -1) {\n        printf(\"needs_rehash() didn't fail with an invalid hash string\\n\");\n    }\n    if (sodium_is_zero((const unsigned char *) str_out + strlen(str_out),\n                       crypto_pwhash_STRBYTES - strlen(str_out)) != 1 ||\n        sodium_is_zero((const unsigned char *) str_out2 + strlen(str_out2),\n                       crypto_pwhash_STRBYTES - strlen(str_out2)) != 1) {\n        printf(\"pwhash_str() doesn't properly pad with zeros\\n\");\n    }\n    if (crypto_pwhash_argon2i_str_verify(str_out, passwd, strlen(passwd)) != 0) {\n        printf(\"pwhash_str_verify(1) failure\\n\");\n    }\n    str_out[14]++;\n    if (crypto_pwhash_argon2i_str_verify(str_out, passwd, strlen(passwd)) != -1) {\n        printf(\"pwhash_str_verify(2) failure\\n\");\n    }\n    str_out[14]--;\n    assert(str_out[crypto_pwhash_STRBYTES - 1U] == 0);\n\n    if (crypto_pwhash_argon2i_str(str_out2, passwd, 0x100000000ULL, OPSLIMIT,\n                                  MEMLIMIT) != -1) {\n        printf(\"pwhash_str() with a large password should have failed\\n\");\n    }\n    if (crypto_pwhash_argon2i_str(str_out2, passwd, strlen(passwd), 1, MEMLIMIT) !=\n        -1) {\n        printf(\"pwhash_str() with a small opslimit should have failed\\n\");\n    }\n    {\n        const char *str_in_ = \"$argon2i$m=65536,t=2,p=1c29tZXNhbHQ\"\n            \"$9sTbSlTio3Biev89thdrlKKiCaYsjjYVJxGAL3swxpQ\";\n        char       *str_in = (char *) sodium_malloc(strlen(str_in_) + 1U);\n\n        const char *password_in_ = \"password\";\n        char       *password_in = (char *) sodium_malloc(strlen(password_in_) + 1U);\n\n        memcpy(str_in, str_in_, strlen(str_in_) + 1U);\n        memcpy(password_in, password_in_, strlen(password_in_) + 1U);\n\n        if (crypto_pwhash_argon2i_str_verify(str_in, password_in,\n                                             0x100000000ULL) != -1) {\n            printf(\"pwhash_str_verify(invalid(0)) failure\\n\");\n        }\n\n        sodium_free(password_in);\n        sodium_free(str_in);\n    }\n    if (crypto_pwhash_argon2i_str_verify(\"$argon2i$m=65536,t=2,p=1c29tZXNhbHQ\"\n                                 \"$9sTbSlTio3Biev89thdrlKKiCaYsjjYVJxGAL3swxpQ\",\n                                 \"password\", strlen(\"password\")) != -1) {\n        printf(\"pwhash_str_verify(invalid(1)) failure %d\\n\", errno);\n    }\n    if (crypto_pwhash_argon2i_str_verify(\"$argon2i$m=65536,t=2,p=1$c29tZXNhbHQ\"\n                                         \"9sTbSlTio3Biev89thdrlKKiCaYsjjYVJxGAL3swxpQ\",\n                                         \"password\", strlen(\"password\")) != -1) {\n        printf(\"pwhash_str_verify(invalid(2)) failure\\n\");\n    }\n    if (crypto_pwhash_str_verify(\"$argon2i$m=65536,t=2,p=1$c29tZXNhbHQ\"\n                                 \"$b2G3seW+uPzerwQQC+/E1K50CLLO7YXy0JRcaTuswRo\",\n                                 \"password\", strlen(\"password\")) != -1) {\n        printf(\"pwhash_str_verify(invalid(3)) failure\\n\");\n    }\n    if (crypto_pwhash_str_verify(\"$argon2i$v=19$m=65536,t=2,p=1c29tZXNhbHQ\"\n                                 \"$wWKIMhR9lyDFvRz9YTZweHKfbftvj+qf+YFY4NeBbtA\",\n                                 \"password\", strlen(\"password\")) != -1) {\n        printf(\"pwhash_str_verify(invalid(4)) failure\\n\");\n    }\n    if (crypto_pwhash_str_verify(\"$argon2i$v=19$m=65536,t=2,p=1$c29tZXNhbHQ\"\n                                 \"wWKIMhR9lyDFvRz9YTZweHKfbftvj+qf+YFY4NeBbtA\",\n                                 \"password\", strlen(\"password\")) != -1) {\n        printf(\"pwhash_str_verify(invalid(5)) failure\\n\");\n    }\n    if (crypto_pwhash_str_verify(\"$argon2i$v=19$m=65536,t=2,p=1$c29tZXNhbHQ\"\n                                 \"$8iIuixkI73Js3G1uMbezQXD0b8LG4SXGsOwoQkdAQIM\",\n                                 \"password\", strlen(\"password\")) != -1) {\n        printf(\"pwhash_str_verify(invalid(6)) failure\\n\");\n    }\n    if (crypto_pwhash_str_verify(\n            \"$argon2i$v=19$m=4096,t=3,p=2$b2RpZHVlamRpc29kaXNrdw\"\n            \"$TNnWIwlu1061JHrnCqIAmjs3huSxYIU+0jWipu7Kc9M\",\n            \"password\", strlen(\"password\")) != 0) {\n        printf(\"pwhash_str_verify(valid(7)) failure\\n\");\n    }\n    if (crypto_pwhash_str_verify(\n            \"$argon2i$v=19$m=4096,t=3,p=2$b2RpZHVlamRpc29kaXNrdw\"\n            \"$TNnWIwlu1061JHrnCqIAmjs3huSxYIU+0jWipu7Kc9M\",\n            \"passwore\", strlen(\"passwore\")) != -1 || errno != EINVAL) {\n        printf(\"pwhash_str_verify(invalid(7)) failure\\n\");\n    }\n    if (crypto_pwhash_str_verify(\n            \"$Argon2i$v=19$m=4096,t=3,p=2$b2RpZHVlamRpc29kaXNrdw\"\n            \"$TNnWIwlu1061JHrnCqIAmjs3huSxYIU+0jWipu7Kc9M\",\n            \"password\", strlen(\"password\")) != -1 || errno != EINVAL) {\n        printf(\"pwhash_str_verify(invalid(8)) failure\\n\");\n    }\n    if (crypto_pwhash_str_verify(\n            \"$argon2i$v=1$m=4096,t=3,p=2$b2RpZHVlamRpc29kaXNrdw\"\n            \"$TNnWIwlu1061JHrnCqIAmjs3huSxYIU+0jWipu7Kc9M\",\n            \"password\", strlen(\"password\")) != -1 || errno != EINVAL) {\n        printf(\"pwhash_str_verify(invalid(9)) failure\\n\");\n    }\n    if (crypto_pwhash_str_verify(\n            \"$argon2i$v=1$m=4096,t=3,p=2$b2RpZHVla~=mRpc29kaXNrdw\"\n            \"$TNnWIwlu1061JHrnCqIAmjs3huSxYIU+0jWipu7Kc9M\",\n            \"password\", strlen(\"password\")) != -1 || errno != EINVAL) {\n        printf(\"pwhash_str_verify(invalid(10)) failure\\n\");\n    }\n    if (crypto_pwhash_str_verify(\n            \"$argon2i$v=1$m=4096,t=3,p=2$b2RpZHVlamRpc29kaXNrdw\"\n            \"$TNnWIwlu1061JHrnCqIAmjs3huSxYI~=U+0jWipu7Kc9M\",\n            \"password\", strlen(\"password\")) != -1 || errno != EINVAL) {\n        printf(\"pwhash_str_verify(invalid(11)) failure\\n\");\n    }\n    assert(crypto_pwhash_str_alg(str_out, \"test\", 4, OPSLIMIT, MEMLIMIT,\n                                 crypto_pwhash_ALG_ARGON2I13) == 0);\n    assert(crypto_pwhash_argon2i_str_verify(str_out, \"test\", 4) == 0);\n    assert(crypto_pwhash_argon2i_str_needs_rehash(str_out,\n                                                  OPSLIMIT, MEMLIMIT) == 0);\n    assert(crypto_pwhash_argon2i_str_needs_rehash(str_out,\n                                                  OPSLIMIT / 2, MEMLIMIT) == 1);\n    assert(crypto_pwhash_argon2i_str_needs_rehash(str_out,\n                                                  OPSLIMIT, MEMLIMIT / 2) == 1);\n    assert(crypto_pwhash_argon2i_str_needs_rehash(str_out, 0, 0) == 1);\n    assert(crypto_pwhash_argon2id_str_needs_rehash(str_out, 0, 0) == -1);\n    assert(crypto_pwhash_argon2i_str_needs_rehash(str_out + 1,\n                                                  OPSLIMIT, MEMLIMIT) == -1);\n    assert(crypto_pwhash_argon2id_str_needs_rehash(str_out, 0, 0) == -1);\n    assert(crypto_pwhash_argon2id_str_needs_rehash(\"\", OPSLIMIT, MEMLIMIT) == -1);\n    assert(crypto_pwhash_str_alg(str_out, \"test\", 4, OPSLIMIT, MEMLIMIT,\n                                 crypto_pwhash_ALG_ARGON2ID13) == 0);\n    assert(crypto_pwhash_argon2id_str_verify(str_out, \"test\", 4) == 0);\n    assert(crypto_pwhash_argon2id_str_needs_rehash(str_out,\n                                                   OPSLIMIT, MEMLIMIT) == 0);\n    assert(crypto_pwhash_argon2id_str_needs_rehash(str_out,\n                                                   OPSLIMIT / 2, MEMLIMIT) == 1);\n    assert(crypto_pwhash_argon2id_str_needs_rehash(str_out,\n                                                   OPSLIMIT, MEMLIMIT / 2) == 1);\n    assert(crypto_pwhash_argon2id_str_needs_rehash(str_out, 0, 0) == 1);\n    assert(crypto_pwhash_argon2i_str_needs_rehash(str_out, 0, 0) == -1);\n    assert(crypto_pwhash_argon2id_str_needs_rehash(\"\", OPSLIMIT, MEMLIMIT) == -1);\n    assert(crypto_pwhash_argon2id_str_needs_rehash(str_out + 1,\n                                                   OPSLIMIT, MEMLIMIT) == -1);\n    sodium_free(salt);\n    sodium_free(str_out);\n    sodium_free(str_out2);\n}\n\nint\nmain(void)\n{\n    tv();\n    tv2();\n    tv3();\n    str_tests();\n\n    assert(crypto_pwhash_argon2i_bytes_min() > 0U);\n    assert(crypto_pwhash_argon2i_bytes_max() > crypto_pwhash_argon2i_bytes_min());\n    assert(crypto_pwhash_argon2i_passwd_max() > crypto_pwhash_argon2i_passwd_min());\n    assert(crypto_pwhash_argon2i_saltbytes() > 0U);\n    assert(crypto_pwhash_argon2i_strbytes() > 1U);\n    assert(crypto_pwhash_argon2i_strbytes() > strlen(crypto_pwhash_argon2i_strprefix()));\n\n    assert(crypto_pwhash_argon2i_opslimit_min() > 0U);\n    assert(crypto_pwhash_argon2i_opslimit_max() > 0U);\n    assert(crypto_pwhash_argon2i_memlimit_min() > 0U);\n    assert(crypto_pwhash_argon2i_memlimit_max() > 0U);\n    assert(crypto_pwhash_argon2i_opslimit_interactive() > 0U);\n    assert(crypto_pwhash_argon2i_memlimit_interactive() > 0U);\n    assert(crypto_pwhash_argon2i_opslimit_moderate() > 0U);\n    assert(crypto_pwhash_argon2i_memlimit_moderate() > 0U);\n    assert(crypto_pwhash_argon2i_opslimit_sensitive() > 0U);\n    assert(crypto_pwhash_argon2i_memlimit_sensitive() > 0U);\n\n    assert(crypto_pwhash_argon2i_bytes_min() == crypto_pwhash_argon2i_BYTES_MIN);\n    assert(crypto_pwhash_argon2i_bytes_max() == crypto_pwhash_argon2i_BYTES_MAX);\n    assert(crypto_pwhash_argon2i_passwd_min() == crypto_pwhash_argon2i_PASSWD_MIN);\n    assert(crypto_pwhash_argon2i_passwd_max() == crypto_pwhash_argon2i_PASSWD_MAX);\n    assert(crypto_pwhash_argon2i_saltbytes() == crypto_pwhash_argon2i_SALTBYTES);\n    assert(crypto_pwhash_argon2i_strbytes() == crypto_pwhash_argon2i_STRBYTES);\n\n    assert(crypto_pwhash_argon2i_opslimit_min() == crypto_pwhash_argon2i_OPSLIMIT_MIN);\n    assert(crypto_pwhash_argon2i_opslimit_max() == crypto_pwhash_argon2i_OPSLIMIT_MAX);\n    assert(crypto_pwhash_argon2i_memlimit_min() == crypto_pwhash_argon2i_MEMLIMIT_MIN);\n    assert(crypto_pwhash_argon2i_memlimit_max() == crypto_pwhash_argon2i_MEMLIMIT_MAX);\n    assert(crypto_pwhash_argon2i_opslimit_interactive() ==\n           crypto_pwhash_argon2i_OPSLIMIT_INTERACTIVE);\n    assert(crypto_pwhash_argon2i_memlimit_interactive() ==\n           crypto_pwhash_argon2i_MEMLIMIT_INTERACTIVE);\n    assert(crypto_pwhash_argon2i_opslimit_moderate() ==\n           crypto_pwhash_argon2i_OPSLIMIT_MODERATE);\n    assert(crypto_pwhash_argon2i_memlimit_moderate() ==\n           crypto_pwhash_argon2i_MEMLIMIT_MODERATE);\n    assert(crypto_pwhash_argon2i_opslimit_sensitive() ==\n           crypto_pwhash_argon2i_OPSLIMIT_SENSITIVE);\n    assert(crypto_pwhash_argon2i_memlimit_sensitive() ==\n           crypto_pwhash_argon2i_MEMLIMIT_SENSITIVE);\n\n    assert(crypto_pwhash_argon2i_alg_argon2i13() == crypto_pwhash_argon2i_ALG_ARGON2I13);\n\n    printf(\"OK\\n\");\n\n    return 0;\n}\n"
  },
  {
    "path": "test/default/pwhash_argon2i.exp",
    "content": "23b803c84eaa25f4b44634cc1e5e37792c53fcd9b1eb20f865329c68e09cbfa9f1968757901b383fce221afe27713f97914a041395bbe1fb70e079e5bed2c7145b1f6154046f5958e9b1b29055454e264d1f2231c316f26be2e3738e83a80315e9a0951ce4b137b52e7d5ee7b37f7d936dcee51362bcf792595e3c896ad5042734fc90c92cae572ce63ff659a2f7974a3bd730d04d525d253ccc38\n0bb3769b064b9c43a9460476ab38c4a9a2470d55d4c992c6e723af895e4c07c09af41f22f90eab583a0c362d177f4677f212482fd145bfb9ac6211635e48461122bb49097b5fb0739d2cd22a39bf03d268e7495d4fd8d710aa156202f0a06e932ff513e6e7c76a4e98b6df5cf922f124791b1076ad904e6897271f5d7d24c5929e2a3b836d0f2f2697c2d758ee79bf1264f3fae65f3744e0f6d7d07ef6e8b35b70c0f88e9036325bfb24ac7f550351486da87aef10d6b0cb77d1cf6e31cf98399c6f241c605c6530dffb4764784f6c0b0bf601d4e4431e8b18dabdc3079c6e264302ade79f61cbd5497c95486340bb891a737223100be0429650\ne9aa073b0b872f15c083d1d7ce52c09f493b827ca78f13a06c1721b45b1e17b24c04e19fe869333135360197a7eb55994fee3e8d9680aedfdf7674f3ad7b84d59d7eab03579ffc10c7093093bc48ec84252aa1b30f40f5e838f1443e15e2772a39f4e774eb052097e8881e94f15457b779fa2af2bbc9a993687657c7704ac8a37c25c1df4289eb4c70da45f2fd46bc0f78259767d3dd478a7c369cf866758bc36d9bd8e2e3c9fb0cf7fd6073ebf630c1f67fa7d303c07da40b36749d157ea37965fef810f2ea05ae6fc7d96a8f3470d73e15b22b42e8d6986dbfe5303256b2b3560372c4452ffb2a04fb7c6691489f70cb46831be0679117f7\n[tv] pwhash failure (maybe intentional): [3]\nc121209f0ba70aed93d49200e5dc82cce013cef25ea31e160bf8db3cf448a59d1a56f6c19259e18ea020553cb75781761d112b2d949a297584c65e60df95ad89c4109825a3171dc6f20b1fd6b0cdfd194861bc2b414295bee5c6c52619e544abce7d520659c3d51de2c60e89948d830695ab38dcb75dd7ab06a4770dd4bc7c8f335519e04b038416b1a7dbd25c026786a8105c5ffe7a0931364f0376ae5772be39b51d91d3281464e0f3a128e7155a68e87cf79626ffca0b2a3022fc8420\n91c337ce8918a5805a59b00bd1819d3eb4356807cbd2a80b271c4b482dce03f5b02ae4eb831ff668cbb327b93c300b41da4852e5547bea8342d518dd9311aaeb5f90eccf66d548f9275631f0b1fd4b299cec5d2e86a59e55dc7b3afab6204447b21d1ef1da824abaf31a25a0d6135c4fe81d34a06816c8a6eab19141f5687108500f3719a862af8c5fee36e130c69921e11ce83dfc72c5ec3b862c1bccc5fd63ad57f432fbcca6f9e18d5a59015950cdf053\n[tv] pwhash failure (maybe intentional): [6]\ne942951dfbc2d508294b10f9e97b47d0cd04e668a043cb95679cc1139df7c27cd54367688725be9d069f5704c12223e7e4ca181fbd0bed18bb4634795e545a6c04a7306933a41a794baedbb628d41bc285e0b9084055ae136f6b63624c874f5a1e1d8be7b0b7227a171d2d7ed578d88bfdcf18323198962d0dcad4126fd3f21adeb1e11d66252ea0c58c91696e91031bfdcc2a9dc0e028d17b9705ba2d7bcdcd1e3ba75b4b1fea\nfd329873387429cb79faaec4f65c35649f65de0aabc1f092ca9dee20029d8ae6c3a97e9940763e1703a7fef5a20eb7f210123fc8c6d3f1745d19d5e3c1eb392ab4a6070c8a6b9ecbeabae0711326e81530099541a882d4bd7733c4a7477ae72b6928c46cd07264172a9d2cfb7d649594f877f8b447d9c01b17996b85db5a71f733f8cc5fd0436540a5b7a1d79de09e20c3abe6515501b3156cd51e\nbbbc4c7963593601d4d685ed9d89682374f8e6b3ce92ce8ccc702728ec8bf839fd7cb8e37ddb09be8c18c7e0ed099949665227a00fb33e1f63ca830dbeb13b29d987b445b3e081cd8428bdb2f9e003e12bea98230fd30842fa193af9169171b550322072c88330ea464cbe02b6ee044374d3f3d174c23617b707159a11926c56601123dcc30508ec84fdb0797b7ab23a77eeefb2a0be2ef45e903c\nOK\n"
  },
  {
    "path": "test/default/pwhash_argon2id.c",
    "content": "\n#define TEST_NAME \"pwhash_argon2id\"\n#include \"cmptest.h\"\n\n#define OUT_LEN 128\n#define OPSLIMIT 3\n#define MEMLIMIT 5000000\n\nstatic void\ntv(void)\n{\n    static struct {\n        const char *       passwd_hex;\n        size_t             passwd_len;\n        const char *       salt_hex;\n        size_t             outlen;\n        unsigned long long opslimit;\n        size_t             memlimit;\n        unsigned int       lanes;\n    } tests[] = {\n        { \"a347ae92bce9f80f6f595a4480fc9c2fe7e7d7148d371e9487d75f5c23008ffae0\"\n          \"65577a928febd9b1973a5a95073acdbeb6a030cfc0d79caa2dc5cd011cef02c08d\"\n          \"a232d76d52dfbca38ca8dcbd665b17d1665f7cf5fe59772ec909733b24de97d6f5\"\n          \"8d220b20c60d7c07ec1fd93c52c31020300c6c1facd77937a597c7a6\",\n          127,\n          \"5541fbc995d5c197ba290346d2c559dedf405cf97e5f95482143202f9e74f5c2\",\n          155, 5, 7256678, 1 },\n        { \"e125cee61c8cb7778d9e5ad0a6f5d978ce9f84de213a8556d9ffe202020ab4a6ed\"\n          \"9074a4eb3416f9b168f137510f3a30b70b96cbfa219ff99f6c6eaffb15c06b60e0\"\n          \"0cc2890277f0fd3c622115772f7048adaebed86e\",\n          86,\n          \"f1192dd5dc2368b9cd421338b22433455ee0a3699f9379a08b9650ea2c126f0d\",\n          250, 4, 7849083, 1 },\n        { \"92263cbf6ac376499f68a4289d3bb59e5a22335eba63a32e6410249155b956b6a3\"\n          \"b48d4a44906b18b897127300b375b8f834f1ceffc70880a885f47c33876717e392\"\n          \"be57f7da3ae58da4fd1f43daa7e44bb82d3717af4319349c24cd31e46d295856b0\"\n          \"441b6b289992a11ced1cc3bf3011604590244a3eb737ff221129215e4e4347f491\"\n          \"5d41292b5173d196eb9add693be5319fdadc242906178bb6c0286c9b6ca6012746\"\n          \"711f58c8c392016b2fdfc09c64f0f6b6ab7b\",\n          183,\n          \"3b840e20e9555e9fb031c4ba1f1747ce25cc1d0ff664be676b9b4a90641ff194\",\n          249, 3, 7994791, 1 },\n        { \"027b6d8e8c8c474e9b69c7d9ed4f9971e8e1ce2f6ba95048414c3970f0f09b70e3\"\n          \"b6c5ae05872b3d8678705b7d381829c351a5a9c88c233569b35d6b0b809df44b64\"\n          \"51a9c273f1150e2ef8a0b5437eb701e373474cd44b97ef0248ebce2ca0400e1b53\"\n          \"f3d86221eca3f18eb45b702b9172440f774a82cbf1f6f525df30a6e293c873cce6\"\n          \"9bb078ed1f0d31e7f9b8062409f37f19f8550aae\",\n          152,\n          \"eb2a3056a09ad2d7d7f975bcd707598f24cd32518cde3069f2e403b34bfee8a5\", 5,\n          4, 1397645, 1 },\n        { \"4a857e2ee8aa9b6056f2424e84d24a72473378906ee04a46cb05311502d5250b82\"\n          \"ad86b83c8f20a23dbb74f6da60b0b6ecffd67134d45946ac8ebfb3064294bc097d\"\n          \"43ced68642bfb8bbbdd0f50b30118f5e\",\n          82,\n          \"39d82eef32010b8b79cc5ba88ed539fbaba741100f2edbeca7cc171ffeabf258\",\n          190, 3, 1432947, 1 },\n        { \"c7b09aec680e7b42fedd7fc792e78b2f6c1bea8f4a884320b648f81e8cf515e8ba\"\n          \"9dcfb11d43c4aae114c1734aa69ca82d44998365db9c93744fa28b63fd16000e82\"\n          \"61cbbe083e7e2da1e5f696bde0834fe53146d7e0e35e7de9920d041f5a5621aabe\"\n          \"02da3e2b09b405b77937efef3197bd5772e41fdb73fb5294478e45208063b5f58e\"\n          \"089dbeb6d6342a909c1307b3fff5fe2cf4da56bdae50848f\",\n          156,\n          \"039c056d933b475032777edbaffac50f143f64c123329ed9cf59e3b65d3f43b6\",\n          178, 3, 4886999, 1 },\n        { \"b540beb016a5366524d4605156493f9874514a5aa58818cd0c6dfffaa9e90205f1\"\n          \"7b\",\n          34,\n          \"44071f6d181561670bda728d43fb79b443bb805afdebaf98622b5165e01b15fb\",\n          231, 1, 1631659, 1 },\n        { \"a14975c26c088755a8b715ff2528d647cd343987fcf4aa25e7194a8417fb2b4b3f\"\n          \"7268da9f3182b4cfb22d138b2749d673a47ecc7525dd15a0a3c66046971784bb63\"\n          \"d7eae24cc84f2631712075a10e10a96b0e0ee67c43e01c423cb9c44e5371017e9c\"\n          \"496956b632158da3fe12addecb88912e6759bc37f9af2f45af72c5cae3b179ffb6\"\n          \"76a697de6ebe45cd4c16d4a9d642d29ddc0186a0a48cb6cd62bfc3dd229d313b30\"\n          \"1560971e740e2cf1f99a9a090a5b283f35475057e96d7064e2e0fc81984591068d\"\n          \"55a3b4169f22cccb0745a2689407ea1901a0a766eb99\",\n          220,\n          \"3d968b2752b8838431165059319f3ff8910b7b8ecb54ea01d3f54769e9d98daf\",\n          167, 3, 1784128, 1 },\n    };\n    char          passwd[256];\n    unsigned char salt[crypto_pwhash_SALTBYTES];\n    unsigned char out[256];\n    char          out_hex[256 * 2 + 1];\n    size_t        i = 0U;\n\n    do {\n        sodium_hex2bin((unsigned char *) passwd, sizeof passwd,\n                       tests[i].passwd_hex, strlen(tests[i].passwd_hex), NULL,\n                       NULL, NULL);\n        sodium_hex2bin(salt, sizeof salt, tests[i].salt_hex,\n                       strlen(tests[i].salt_hex), NULL, NULL, NULL);\n        if (crypto_pwhash(out, (unsigned long long) tests[i].outlen, passwd,\n                          tests[i].passwd_len, (const unsigned char *) salt,\n                          tests[i].opslimit, tests[i].memlimit,\n                          crypto_pwhash_alg_default()) != 0) {\n            printf(\"[tv] pwhash failure (maybe intentional): [%u]\\n\",\n                   (unsigned int) i);\n            continue;\n        }\n        sodium_bin2hex(out_hex, sizeof out_hex, out, tests[i].outlen);\n        printf(\"%s\\n\", out_hex);\n    } while (++i < (sizeof tests) / (sizeof tests[0]));\n}\n\nstatic void\ntv2(void)\n{\n    static struct {\n        const char *       passwd_hex;\n        size_t             passwd_len;\n        const char *       salt_hex;\n        size_t             outlen;\n        unsigned long long opslimit;\n        size_t             memlimit;\n        unsigned int       lanes;\n    } tests[] = {\n        { \"a347ae92bce9f80f6f595a4480fc9c2fe7e7d7148d371e9487d75f5c23008ffae0\"\n          \"65577a928febd9b1973a5a95073acdbeb6a030cfc0d79caa2dc5cd011cef02c08d\"\n          \"a232d76d52dfbca38ca8dcbd665b17d1665f7cf5fe59772ec909733b24de97d6f5\"\n          \"8d220b20c60d7c07ec1fd93c52c31020300c6c1facd77937a597c7a6\",\n          127,\n          \"5541fbc995d5c197ba290346d2c559dedf405cf97e5f95482143202f9e74f5c2\",\n          155, 4, 397645, 1 },\n        { \"a347ae92bce9f80f6f595a4480fc9c2fe7e7d7148d371e9487d75f5c23008ffae0\"\n          \"65577a928febd9b1973a5a95073acdbeb6a030cfc0d79caa2dc5cd011cef02c08d\"\n          \"a232d76d52dfbca38ca8dcbd665b17d1665f7cf5fe59772ec909733b24de97d6f5\"\n          \"8d220b20c60d7c07ec1fd93c52c31020300c6c1facd77937a597c7a6\",\n          127,\n          \"5541fbc995d5c197ba290346d2c559dedf405cf97e5f95482143202f9e74f5c2\",\n          155, 3, 397645, 1 },\n    };\n    char          passwd[256];\n    unsigned char salt[crypto_pwhash_SALTBYTES];\n    unsigned char out[256];\n    char          out_hex[256 * 2 + 1];\n    size_t        i = 0U;\n\n    do {\n        sodium_hex2bin((unsigned char *) passwd, sizeof passwd,\n                       tests[i].passwd_hex, strlen(tests[i].passwd_hex), NULL,\n                       NULL, NULL);\n        sodium_hex2bin(salt, sizeof salt, tests[i].salt_hex,\n                       strlen(tests[i].salt_hex), NULL, NULL, NULL);\n        if (crypto_pwhash(out, (unsigned long long) tests[i].outlen, passwd,\n                          tests[i].passwd_len, (const unsigned char *) salt,\n                          tests[i].opslimit, tests[i].memlimit,\n                          crypto_pwhash_alg_default()) != 0) {\n            printf(\"[tv2] pwhash failure: [%u]\\n\", (unsigned int) i);\n            continue;\n        }\n        sodium_bin2hex(out_hex, sizeof out_hex, out, tests[i].outlen);\n        printf(\"%s\\n\", out_hex);\n    } while (++i < (sizeof tests) / (sizeof tests[0]));\n\n    if (crypto_pwhash_argon2id(out, sizeof out, \"password\", strlen(\"password\"), salt, 3,\n                               1ULL << 12, 0) != -1) {\n        printf(\"[tv2] pwhash should have failed (0)\\n\");\n    }\n    if (crypto_pwhash_argon2id(out, sizeof out, \"password\", strlen(\"password\"), salt, 3,\n                               1, crypto_pwhash_argon2id_alg_argon2id13()) != -1) {\n        printf(\"[tv2] pwhash should have failed (1)\\n\");\n    }\n    if (crypto_pwhash_argon2id(out, sizeof out, \"password\", strlen(\"password\"), salt, 3,\n                               1ULL << 12, crypto_pwhash_argon2id_alg_argon2id13()) != -1) {\n        printf(\"[tv2] pwhash should have failed (2)\\n\");\n    }\n    if (crypto_pwhash_argon2id(out, sizeof out, \"password\", strlen(\"password\"), salt, 2,\n                               1ULL << 12, crypto_pwhash_argon2id_alg_argon2id13()) != -1) {\n        printf(\"[tv2] pwhash should have failed (3)\\n\");\n    }\n    if (crypto_pwhash_argon2id(out, 15, \"password\", strlen(\"password\"), salt, 3,\n                               1ULL << 12, crypto_pwhash_argon2id_alg_argon2id13()) != -1) {\n        printf(\"[tv2] pwhash with a short output length should have failed\\n\");\n    }\n    if (crypto_pwhash_argon2id(out, sizeof out, \"password\", 0x100000000ULL, salt, 3,\n                               1ULL << 12, crypto_pwhash_argon2id_alg_argon2id13()) != -1) {\n        printf(\"[tv2] pwhash with a long password length should have failed\\n\");\n    }\n    assert(crypto_pwhash_argon2id(out, sizeof out, \"password\", strlen(\"password\"), salt,\n                                  OPSLIMIT, MEMLIMIT, crypto_pwhash_alg_argon2i13()) == -1);\n}\n\nstatic void\ntv3(void)\n{\n    static struct {\n        const char *passwd;\n        const char *out;\n    } tests[] = {\n        { \"\",\n          \"$argon2id$v=19$m=4096,t=0,p=1$X1NhbHQAAAAAAAAAAAAAAA$bWh++MKN1OiFHKgIWTLvIi1iHicmHH7+Fv3K88ifFfI\" },\n        { \"\",\n          \"$argon2id$v=19$m=2048,t=4,p=1$SWkxaUhpY21ISDcrRnYzSw$Mbg/Eck1kpZir5T9io7C64cpffdTBaORgyriLQFgQj8\" },\n        { \"\",\n          \"$argon2id$v=19$m=4882,t=2,p=1$bA81arsiXysd3WbTRzmEOw$Nm8QBM+7RH1DXo9rvp5cwKEOOOfD2g6JuxlXihoNcpE\" },\n        { \"^T5H$JYt39n%K*j:W]!1s?vg!:jGi]Ax?..l7[p0v:1jHTpla9;]bUN;?bWyCbtqg \",\n          \"$argon2id$v=19$m=4096,t=0,p=1$PkEgMTYtYnl0ZXMgc2FsdA$ltB/ue1kPtBMBGfsysMpPigE6hiNEKZ9vs8vLNVDQGA\" },\n        { \"^T5H$JYt39n%K*j:W]!1s?vg!:jGi]Ax?..l7[p0v:1jHTpla9;]bUN;?bWyCbtqg \",\n          \"$argon2id$v=19$m=4096,t=19,p=1$PkEgMTYtYnl0ZXMgc2FsdA$ltB/ue1kPtBMBGfsysMpPigE6hiNEKZ9vs8vLNVDQGA\" },\n        { \"K3S=KyH#)36_?]LxeR8QNKw6X=gFbxai$C%29V*\",\n          \"$argon2id$v=19$m=4096,t=1,p=3$PkEgcHJldHR5IGxvbmcgc2FsdA$HUqx5Z1b/ZypnUrvvJ5UC2Q+T6Q1WwASK/Kr9dRbGA0\" }\n    };\n    char   *out;\n    char   *passwd;\n    size_t  i = 0U;\n    int     ret;\n\n    do {\n        out = (char *) sodium_malloc(strlen(tests[i].out) + 1U);\n        assert(out != NULL);\n        memcpy(out, tests[i].out, strlen(tests[i].out) + 1U);\n        passwd = (char *) sodium_malloc(strlen(tests[i].passwd) + 1U);\n        assert(passwd != NULL);\n        memcpy(passwd, tests[i].passwd, strlen(tests[i].passwd) + 1U);\n        ret = crypto_pwhash_str_verify(out, passwd, strlen(passwd));\n        sodium_free(out);\n        sodium_free(passwd);\n        if (ret != 0) {\n            printf(\"[tv3] pwhash_argon2id_str failure (maybe intentional): [%u]\\n\",\n                   (unsigned int) i);\n        }\n    } while (++i < (sizeof tests) / (sizeof tests[0]));\n}\n\nstatic void\nstr_tests(void)\n{\n    char       *str_out;\n    char       *str_out2;\n    char       *salt;\n    const char *passwd = \"Correct Horse Battery Staple\";\n\n    salt     = (char *) sodium_malloc(crypto_pwhash_argon2id_SALTBYTES);\n    str_out  = (char *) sodium_malloc(crypto_pwhash_argon2id_STRBYTES);\n    str_out2 = (char *) sodium_malloc(crypto_pwhash_argon2id_STRBYTES);\n    memcpy(salt, \">A 16-bytes salt\", crypto_pwhash_argon2id_SALTBYTES);\n    if (crypto_pwhash_str(str_out, passwd, strlen(passwd), OPSLIMIT,\n                          MEMLIMIT) != 0) {\n        printf(\"pwhash_str failure\\n\");\n    }\n    if (crypto_pwhash_str(str_out2, passwd, strlen(passwd), OPSLIMIT,\n                          MEMLIMIT) != 0) {\n        printf(\"pwhash_str(2) failure\\n\");\n    }\n    if (strcmp(str_out, str_out2) == 0) {\n        printf(\"pwhash_str() doesn't generate different salts\\n\");\n    }\n    if (crypto_pwhash_str_needs_rehash(str_out, OPSLIMIT, MEMLIMIT) != 0 ||\n        crypto_pwhash_str_needs_rehash(str_out, OPSLIMIT, MEMLIMIT) != 0) {\n        printf(\"needs_rehash() false positive\\n\");\n    }\n    if (crypto_pwhash_str_needs_rehash(str_out, OPSLIMIT, MEMLIMIT / 2) != 1 ||\n        crypto_pwhash_str_needs_rehash(str_out, OPSLIMIT - 1, MEMLIMIT) != 1 ||\n        crypto_pwhash_str_needs_rehash(str_out, OPSLIMIT, MEMLIMIT * 2) != 1 ||\n        crypto_pwhash_str_needs_rehash(str_out, OPSLIMIT + 1, MEMLIMIT) != 1) {\n        printf(\"needs_rehash() false negative (0)\\n\");\n    }\n    if (crypto_pwhash_argon2id_str_needs_rehash(str_out, OPSLIMIT, MEMLIMIT / 2) != 1 ||\n        crypto_pwhash_argon2id_str_needs_rehash(str_out, OPSLIMIT - 1, MEMLIMIT) != 1 ||\n        crypto_pwhash_argon2id_str_needs_rehash(str_out, OPSLIMIT, MEMLIMIT * 2) != 1 ||\n        crypto_pwhash_argon2id_str_needs_rehash(str_out, OPSLIMIT + 1, MEMLIMIT) != 1) {\n        printf(\"needs_rehash() false negative (1)\\n\");\n    }\n    if (crypto_pwhash_argon2i_str_needs_rehash(str_out, OPSLIMIT, MEMLIMIT / 2) != -1 ||\n        crypto_pwhash_argon2i_str_needs_rehash(str_out, OPSLIMIT - 1, MEMLIMIT) != -1 ||\n        crypto_pwhash_argon2i_str_needs_rehash(str_out, OPSLIMIT, MEMLIMIT * 2) != -1 ||\n        crypto_pwhash_argon2i_str_needs_rehash(str_out, OPSLIMIT + 1, MEMLIMIT) != -1) {\n        printf(\"needs_rehash() false negative (2)\\n\");\n    }\n    if (crypto_pwhash_str_needs_rehash(str_out, OPSLIMIT, MEMLIMIT / 2) != 1) {\n        printf(\"pwhash_str_needs_rehash() didn't handle argon2id\\n\");\n    }\n    if (crypto_pwhash_str_needs_rehash(str_out + 1, OPSLIMIT, MEMLIMIT) != -1 ||\n        crypto_pwhash_argon2id_str_needs_rehash(str_out + 1, OPSLIMIT, MEMLIMIT) != -1) {\n        printf(\"needs_rehash() didn't fail with an invalid hash string\\n\");\n    }\n    if (sodium_is_zero((const unsigned char *) str_out + strlen(str_out),\n                       crypto_pwhash_STRBYTES - strlen(str_out)) != 1 ||\n        sodium_is_zero((const unsigned char *) str_out2 + strlen(str_out2),\n                       crypto_pwhash_STRBYTES - strlen(str_out2)) != 1) {\n        printf(\"pwhash_argon2id_str() doesn't properly pad with zeros\\n\");\n    }\n    if (crypto_pwhash_argon2id_str_verify(str_out, passwd, strlen(passwd)) != 0) {\n        printf(\"pwhash_argon2id_str_verify(1) failure\\n\");\n    }\n    if (crypto_pwhash_str_verify(str_out, passwd, strlen(passwd)) != 0) {\n        printf(\"pwhash_str_verify(1') failure\\n\");\n    }\n    str_out[14]++;\n    if (crypto_pwhash_str_verify(str_out, passwd, strlen(passwd)) != -1) {\n        printf(\"pwhash_argon2id_str_verify(2) failure\\n\");\n    }\n    str_out[14]--;\n    assert(str_out[crypto_pwhash_argon2id_STRBYTES - 1U] == 0);\n\n    if (crypto_pwhash_str(str_out2, passwd, 0x100000000ULL, OPSLIMIT,\n                          MEMLIMIT) != -1) {\n        printf(\"pwhash_str() with a large password should have failed\\n\");\n    }\n    if (crypto_pwhash_str(str_out2, passwd, strlen(passwd), 1, MEMLIMIT) != 0) {\n        printf(\"pwhash_str() with a small opslimit should not have failed\\n\");\n    }\n    if (crypto_pwhash_str(str_out2, passwd, strlen(passwd), 0, MEMLIMIT) != -1) {\n        printf(\"pwhash_argon2id_str() with a null opslimit should have failed\\n\");\n    }\n    {\n        const char *str_in_ =\"$argon2id$m=65536,t=2,p=1c29tZXNhbHQ\"\n            \"$9sTbSlTio3Biev89thdrlKKiCaYsjjYVJxGAL3swxpQ\";\n        char       *str_in = (char *) sodium_malloc(strlen(str_in_) + 1U);\n\n        const char *password_in_ = \"password\";\n        char       *password_in = (char *) sodium_malloc(strlen(password_in_) + 1U);\n\n        memcpy(str_in, str_in_, strlen(str_in_) + 1U);\n        memcpy(password_in, password_in_, strlen(password_in_) + 1U);\n\n        if (crypto_pwhash_argon2i_str_verify(str_in, password_in,\n                                             0x100000000ULL) != -1) {\n            printf(\"pwhash_str_verify(invalid(0)) failure\\n\");\n        }\n\n        sodium_free(password_in);\n        sodium_free(str_in);\n    }\n    if (crypto_pwhash_str_verify(\"$argon2id$m=65536,t=2,p=1c29tZXNhbHQ\"\n                                 \"$9sTbSlTio3Biev89thdrlKKiCaYsjjYVJxGAL3swxpQ\",\n                                 \"password\", strlen(\"password\")) != -1) {\n        printf(\"pwhash_str_verify(invalid(1)) failure %d\\n\", errno);\n    }\n    if (crypto_pwhash_str_verify(\"$argon2id$m=65536,t=2,p=1$c29tZXNhbHQ\"\n                                 \"9sTbSlTio3Biev89thdrlKKiCaYsjjYVJxGAL3swxpQ\",\n                                 \"password\", strlen(\"password\")) != -1) {\n        printf(\"pwhash_str_verify(invalid(2)) failure\\n\");\n    }\n    if (crypto_pwhash_str_verify(\"$argon2id$m=65536,t=2,p=1$c29tZXNhbHQ\"\n                                 \"$b2G3seW+uPzerwQQC+/E1K50CLLO7YXy0JRcaTuswRo\",\n                                 \"password\", strlen(\"password\")) != -1) {\n        printf(\"pwhash_str_verify(invalid(3)) failure\\n\");\n    }\n    if (crypto_pwhash_str_verify(\"$argon2id$v=19$m=65536,t=2,p=1c29tZXNhbHQ\"\n                                 \"$wWKIMhR9lyDFvRz9YTZweHKfbftvj+qf+YFY4NeBbtA\",\n                                 \"password\", strlen(\"password\")) != -1) {\n        printf(\"pwhash_str_verify(invalid(4)) failure\\n\");\n    }\n    if (crypto_pwhash_str_verify(\"$argon2id$v=19$m=65536,t=2,p=1$c29tZXNhbHQ\"\n                                 \"wWKIMhR9lyDFvRz9YTZweHKfbftvj+qf+YFY4NeBbtA\",\n                                 \"password\", strlen(\"password\")) != -1) {\n        printf(\"pwhash_str_verify(invalid(5)) failure\\n\");\n    }\n    if (crypto_pwhash_str_verify(\"$argon2id$v=19$m=65536,t=2,p=1$c29tZXNhbHQ\"\n                                 \"$8iIuixkI73Js3G1uMbezQXD0b8LG4SXGsOwoQkdAQIM\",\n                                 \"password\", strlen(\"password\")) != -1) {\n        printf(\"pwhash_str_verify(invalid(6)) failure\\n\");\n    }\n    if (crypto_pwhash_str_verify(\"$argon2id$v=19$m=256,t=3,p=1$MDEyMzQ1Njc\"\n                                 \"$G5ajKFCoUzaXRLdz7UJb5wGkb2Xt+X5/GQjUYtS2+TE\",\n                                 \"password\", strlen(\"password\")) != 0) {\n        printf(\"pwhash_str_verify(valid(7)) failure\\n\");\n    }\n    if (crypto_pwhash_str_verify(\"$argon2id$v=19$m=256,t=3,p=1$MDEyMzQ1Njc\"\n                                 \"$G5ajKFCoUzaXRLdz7UJb5wGkb2Xt+X5/GQjUYtS2+TE\",\n                                 \"passwore\", strlen(\"passwore\")) != -1 || errno != EINVAL) {\n        printf(\"pwhash_str_verify(invalid(7)) failure\\n\");\n    }\n    if (crypto_pwhash_str_verify(\"$Argon2id$v=19$m=256,t=3,p=1$MDEyMzQ1Njc\"\n                                 \"$G5ajKFCoUzaXRLdz7UJb5wGkb2Xt+X5/GQjUYtS2+TE\",\n                                 \"password\", strlen(\"password\")) != -1 || errno != EINVAL) {\n        printf(\"pwhash_str_verify(invalid(8)) failure\\n\");\n    }\n    if (crypto_pwhash_str_verify(\"$argon2id$v=19$m=256,t=3,p=2$MDEyMzQ1Njc\"\n                                 \"$G5ajKFCoUzaXRLdz7UJb5wGkb2Xt+X5/GQjUYtS2+TE\",\n                                 \"password\", strlen(\"password\")) != -1 || errno != EINVAL) {\n        printf(\"pwhash_str_verify(invalid(9)) failure\\n\");\n    }\n    assert(crypto_pwhash_str_alg(str_out, \"test\", 4, OPSLIMIT, MEMLIMIT,\n                                 crypto_pwhash_ALG_ARGON2ID13) == 0);\n    assert(crypto_pwhash_argon2id_str_verify(str_out, \"test\", 4) == 0);\n    assert(crypto_pwhash_argon2id_str_needs_rehash(str_out,\n                                                   OPSLIMIT, MEMLIMIT) == 0);\n    assert(crypto_pwhash_argon2id_str_needs_rehash(str_out,\n                                                   OPSLIMIT / 2, MEMLIMIT) == 1);\n    assert(crypto_pwhash_argon2id_str_needs_rehash(str_out,\n                                                   OPSLIMIT, MEMLIMIT / 2) == 1);\n    assert(crypto_pwhash_argon2id_str_needs_rehash(str_out, 0, 0) == 1);\n    assert(crypto_pwhash_argon2i_str_needs_rehash(str_out, 0, 0) == -1);\n    assert(crypto_pwhash_argon2id_str_needs_rehash(str_out + 1,\n                                                   OPSLIMIT, MEMLIMIT) == -1);\n    assert(crypto_pwhash_argon2i_str_needs_rehash(str_out, 0, 0) == -1);\n    assert(crypto_pwhash_argon2i_str_needs_rehash(\"\", OPSLIMIT, MEMLIMIT) == -1);\n    assert(crypto_pwhash_str_alg(str_out, \"test\", 4, OPSLIMIT, MEMLIMIT,\n                                 crypto_pwhash_ALG_ARGON2I13) == 0);\n    assert(crypto_pwhash_argon2i_str_verify(str_out, \"test\", 4) == 0);\n    assert(crypto_pwhash_argon2i_str_needs_rehash(str_out,\n                                                  OPSLIMIT, MEMLIMIT) == 0);\n    assert(crypto_pwhash_argon2i_str_needs_rehash(str_out,\n                                                  OPSLIMIT / 2, MEMLIMIT) == 1);\n    assert(crypto_pwhash_argon2i_str_needs_rehash(str_out,\n                                                  OPSLIMIT, MEMLIMIT / 2) == 1);\n    assert(crypto_pwhash_argon2i_str_needs_rehash(str_out, 0, 0) == 1);\n    assert(crypto_pwhash_argon2id_str_needs_rehash(str_out, 0, 0) == -1);\n    assert(crypto_pwhash_argon2i_str_needs_rehash(\"\", OPSLIMIT, MEMLIMIT) == -1);\n    assert(crypto_pwhash_argon2i_str_needs_rehash(str_out + 1,\n                                                  OPSLIMIT, MEMLIMIT) == -1);\n    sodium_free(salt);\n    sodium_free(str_out);\n    sodium_free(str_out2);\n}\n\nint\nmain(void)\n{\n    tv();\n    tv2();\n    tv3();\n    str_tests();\n\n    assert(crypto_pwhash_bytes_min() > 0U);\n    assert(crypto_pwhash_bytes_max() > crypto_pwhash_bytes_min());\n    assert(crypto_pwhash_passwd_max() > crypto_pwhash_passwd_min());\n    assert(crypto_pwhash_saltbytes() > 0U);\n    assert(crypto_pwhash_strbytes() > 1U);\n    assert(crypto_pwhash_strbytes() > strlen(crypto_pwhash_strprefix()));\n\n    assert(crypto_pwhash_opslimit_min() > 0U);\n    assert(crypto_pwhash_opslimit_max() > 0U);\n    assert(crypto_pwhash_memlimit_min() > 0U);\n    assert(crypto_pwhash_memlimit_max() > 0U);\n    assert(crypto_pwhash_opslimit_interactive() > 0U);\n    assert(crypto_pwhash_memlimit_interactive() > 0U);\n    assert(crypto_pwhash_opslimit_moderate() > 0U);\n    assert(crypto_pwhash_memlimit_moderate() > 0U);\n    assert(crypto_pwhash_opslimit_sensitive() > 0U);\n    assert(crypto_pwhash_memlimit_sensitive() > 0U);\n    assert(strcmp(crypto_pwhash_primitive(), \"argon2id,argon2i\") == 0);\n\n    assert(crypto_pwhash_bytes_min() == crypto_pwhash_BYTES_MIN);\n    assert(crypto_pwhash_bytes_max() == crypto_pwhash_BYTES_MAX);\n    assert(crypto_pwhash_passwd_min() == crypto_pwhash_PASSWD_MIN);\n    assert(crypto_pwhash_passwd_max() == crypto_pwhash_PASSWD_MAX);\n    assert(crypto_pwhash_saltbytes() == crypto_pwhash_SALTBYTES);\n    assert(crypto_pwhash_strbytes() == crypto_pwhash_STRBYTES);\n\n    assert(crypto_pwhash_opslimit_min() == crypto_pwhash_OPSLIMIT_MIN);\n    assert(crypto_pwhash_opslimit_max() == crypto_pwhash_OPSLIMIT_MAX);\n    assert(crypto_pwhash_memlimit_min() == crypto_pwhash_MEMLIMIT_MIN);\n    assert(crypto_pwhash_memlimit_max() == crypto_pwhash_MEMLIMIT_MAX);\n    assert(crypto_pwhash_opslimit_interactive() ==\n           crypto_pwhash_OPSLIMIT_INTERACTIVE);\n    assert(crypto_pwhash_memlimit_interactive() ==\n           crypto_pwhash_MEMLIMIT_INTERACTIVE);\n    assert(crypto_pwhash_opslimit_moderate() ==\n           crypto_pwhash_OPSLIMIT_MODERATE);\n    assert(crypto_pwhash_memlimit_moderate() ==\n           crypto_pwhash_MEMLIMIT_MODERATE);\n    assert(crypto_pwhash_opslimit_sensitive() ==\n           crypto_pwhash_OPSLIMIT_SENSITIVE);\n    assert(crypto_pwhash_memlimit_sensitive() ==\n           crypto_pwhash_MEMLIMIT_SENSITIVE);\n\n    assert(crypto_pwhash_argon2id_bytes_min() == crypto_pwhash_bytes_min());\n    assert(crypto_pwhash_argon2id_bytes_max() == crypto_pwhash_bytes_max());\n    assert(crypto_pwhash_argon2id_passwd_min() == crypto_pwhash_passwd_min());\n    assert(crypto_pwhash_argon2id_passwd_max() == crypto_pwhash_passwd_max());\n    assert(crypto_pwhash_argon2id_saltbytes() == crypto_pwhash_saltbytes());\n    assert(crypto_pwhash_argon2id_strbytes() == crypto_pwhash_strbytes());\n    assert(strcmp(crypto_pwhash_argon2id_strprefix(),\n                  crypto_pwhash_strprefix()) == 0);\n    assert(crypto_pwhash_argon2id_opslimit_min() ==\n           crypto_pwhash_opslimit_min());\n    assert(crypto_pwhash_argon2id_opslimit_max() ==\n           crypto_pwhash_opslimit_max());\n    assert(crypto_pwhash_argon2id_memlimit_min() ==\n           crypto_pwhash_memlimit_min());\n    assert(crypto_pwhash_argon2id_memlimit_max() ==\n           crypto_pwhash_memlimit_max());\n    assert(crypto_pwhash_argon2id_opslimit_interactive() ==\n           crypto_pwhash_opslimit_interactive());\n    assert(crypto_pwhash_argon2id_opslimit_moderate() ==\n           crypto_pwhash_opslimit_moderate());\n    assert(crypto_pwhash_argon2id_opslimit_sensitive() ==\n           crypto_pwhash_opslimit_sensitive());\n    assert(crypto_pwhash_argon2id_memlimit_interactive() ==\n           crypto_pwhash_memlimit_interactive());\n    assert(crypto_pwhash_argon2id_memlimit_moderate() ==\n           crypto_pwhash_memlimit_moderate());\n    assert(crypto_pwhash_argon2id_memlimit_sensitive() ==\n           crypto_pwhash_memlimit_sensitive());\n    assert(crypto_pwhash_alg_argon2id13() ==\n           crypto_pwhash_argon2id_alg_argon2id13());\n    assert(crypto_pwhash_alg_argon2i13() == crypto_pwhash_ALG_ARGON2I13);\n    assert(crypto_pwhash_alg_argon2i13() != crypto_pwhash_alg_default());\n    assert(crypto_pwhash_alg_argon2id13() == crypto_pwhash_ALG_ARGON2ID13);\n    assert(crypto_pwhash_alg_argon2id13() != crypto_pwhash_alg_argon2i13());\n    assert(crypto_pwhash_alg_argon2id13() == crypto_pwhash_alg_default());\n\n    assert(crypto_pwhash_argon2id(guard_page, 0, (const char *) guard_page, 0, guard_page,\n                                  crypto_pwhash_argon2id_OPSLIMIT_INTERACTIVE,\n                                  crypto_pwhash_argon2id_MEMLIMIT_INTERACTIVE,\n                                  0) == -1);\n    assert(crypto_pwhash_argon2id(guard_page, 0, (const char *) guard_page, 0, guard_page,\n                                 crypto_pwhash_argon2id_OPSLIMIT_INTERACTIVE,\n                                 crypto_pwhash_argon2id_MEMLIMIT_INTERACTIVE,\n                                 crypto_pwhash_ALG_ARGON2I13) == -1);\n    assert(crypto_pwhash_argon2i(guard_page, 0, (const char *) guard_page, 0, guard_page,\n                                 crypto_pwhash_argon2id_OPSLIMIT_INTERACTIVE,\n                                 crypto_pwhash_argon2id_MEMLIMIT_INTERACTIVE,\n                                 0) == -1);\n    assert(crypto_pwhash_argon2i(guard_page, 0, (const char *) guard_page, 0, guard_page,\n                                 crypto_pwhash_argon2id_OPSLIMIT_INTERACTIVE,\n                                 crypto_pwhash_argon2id_MEMLIMIT_INTERACTIVE,\n                                 crypto_pwhash_ALG_ARGON2ID13) == -1);\n\n    printf(\"OK\\n\");\n\n    return 0;\n}\n"
  },
  {
    "path": "test/default/pwhash_argon2id.exp",
    "content": "18acec5d6507739f203d1f5d9f1d862f7c2cdac4f19d2bdff64487e60d969e3ced615337b9eec6ac4461c6ca07f0939741e57c24d0005c7ea171a0ee1e7348249d135b38f222e4dad7b9a033ed83f5ca27277393e316582033c74affe2566a2bea47f91f0fd9fe49ece7e1f79f3ad6e9b23e0277c8ecc4b313225748dd2a80f5679534a0700e246a79a49b3f74eb89ec6205fe1eeb941c73b1fcf1\n26bab5f101560e48c711da4f05e81f5a3802b7a93d5155b9cab153069cc42b8e9f910bfead747652a0708d70e4de0bada37218bd203a1201c36b42f9a269b675b1f30cfc36f35a3030e9c7f57dfba0d341a974c1886f708c3e8297efbfe411bb9d51375264bd7c70d57a8a56fc9de2c1c97c08776803ec2cd0140bba8e61dc0f4ad3d3d1a89b4b710af81bfe35a0eea193e18a6da0f5ec05542c9eefc4584458e1da715611ba09617384748bd43b9bf1f3a6df4ecd091d0875e08d6e2fd8a5c7ce08904b5160cd38167b76ec76ef2d310049055a564da23d4ebd2b87e421cc33c401e12d5cd8d936c9baf75ebdfb557d342d2858fc781da31860\n6eb45e668582d63788ca8f6e930ca60b045a795fca987344f9a7a135aa3b5132b50a34a3864c26581f1f56dd0bcbfafbfa92cd9bff6b24a734cfe88f854aef4bda0a7983120f44936e8ff31d29728ac08ccce6f3f916b3c63962755c23a1fa9bb4e8823fc867bfd18f28980d94bc5874423ab7f96cc0ab78d8fa21fbd00cd3a1d96a73fa439ccc3fc4eab1590677b06cc78b0f674dfb680f23022fb902022dd8620803229c6ddf79a8156ccfce48bbd76c05ab670634f206e5b2e896230baa74a856964dbd8511acb71d75a1506766a125d8ce037f1db72086ebc3bccaefbd8cd9380167c2530386544ebfbeadbe237784d102bb92a10fd242\n[tv] pwhash failure (maybe intentional): [3]\n08d8cd330c57e1b4643241d05bb468ba4ee4e932cd0858816be9ef15360b27bbd06a87130ee92222be267a29b81f5ae8fe8613324cfc4832dc49387fd0602f1c57b4d0f3855db94fb7e12eb05f9a484aed4a4307abf586cd3d55c809bc081541e00b682772fb2066504ff935b8ebc551a2083882f874bc0fae68e56848ae34c91097c3bf0cca8e75c0797eef3efde3f75e005815018db3cf7c109a812264c4de69dcb22322dbbcfa447f5b00ecd1b04a7be1569c8e556adb7bba48adf81d\nd6e9d6cabd42fb9ba7162fe9b8e41d59d3c7034756cb460c9affe393308bd0225ce0371f2e6c3ca32aca2002bf2d3909c6b6e7dfc4a00e850ff4f570f8f749d4bb6f0091e554be67a9095ae1eefaa1a933316cbec3c2fd4a14a5b6941bda9b7eabd821d79abde2475a53af1a8571c7ee46460be415882e0b393f48c12f740a6a72cba9773000602e13b40d3dfa6ac1d4ec43a838b7e3e165fecad4b2498389e60a3ff9f0f8f4b9fca1126e64f49501e38690\n7fb72409b0987f8190c3729710e98c3f80c5a8727d425fdcde7f3644d467fe973f5b5fee683bd3fce812cb9ae5e9921a2d06c2f1905e4e839692f2b934b682f11a2fe2b90482ea5dd234863516dba6f52dc0702d324ec77d860c2e181f84472bd7104fedce071ffa93c5309494ad51623d214447a7b2b1462dc7d5d55a1f6fd5b54ce024118d86f0c6489d16545aaa87b6689dad9f2fb47fda9894f8e12b87d978b483ccd4cc5fd9595cdc7a818452f915ce2f7df95ec12b1c72e3788d473441d884f9748eb14703c21b45d82fd667b85f5b2d98c13303b3fe76285531a826b6fc0fe8e3dddecf\n4e702bc5f891df884c6ddaa243aa846ce3c087fe930fef0f36b3c2be34164ccc295db509254743f18f947159c813bcd5dd8d94a3aec93bbe57605d1fad1aef1112687c3d4ef1cb329d21f1632f626818d766915d886e8d819e4b0b9c9307f4b6afc081e13b0cf31db382ff1bf05a16aac7af696336d75e99f82163e0f371e1d25c4add808e215697ad3f779a51a462f8bf52610af21fc69dba6b072606f2dabca7d4ae1d91d919\n20e7ba6faa2c0a4b07f3ff38e15e252a069c2c62bac3f2785d311764d73e67fd713be342ee938e6df4de6af1a89a44b8589838864457bcfe3cf0f2d329b800ab9f5810b6325588eb4e0c56f99192b2cc76dc8194dc1097fe5ed12ac4214481c03c3597131ba164a56e7187e2da565a8cd529668e9a37faa58a1701c49a14edf7a50dec4143b456cba6d14c957bb655e99ce96bc506961216ef887a\n8fb6ed1862cdd2a399e10956c60dc9b2670338ea59c3414d0443216925ba24c6e89a17f3e56c12893dcbc9bc498e8308aea9627d9c9e47912d6342b631008719edfa2db364b97e60cf47a97ad9aa3b7f139d80ddda44f1ef2af881ce027a15644218cac6cc74751469ae56be0469fbc760825882b3e8abca55daaae5753575106cf867cd69932602c63ec880ad8811d9aa4870a9e0b39fef47c92e\n[tv3] pwhash_argon2id_str failure (maybe intentional): [0]\n[tv3] pwhash_argon2id_str failure (maybe intentional): [1]\n[tv3] pwhash_argon2id_str failure (maybe intentional): [3]\nOK\n"
  },
  {
    "path": "test/default/pwhash_argon2id2.c",
    "content": "#define TEST_NAME \"pwhash_argon2id2\"\n#include \"cmptest.h\"\n\nint\nmain(void)\n{\n    char          str_out[crypto_pwhash_STRBYTES];\n    unsigned char out[32];\n    int           ret;\n\n    ret = crypto_pwhash_argon2id_str(str_out, \"test\", 4, 3, 5000000);\n    if (ret != 0) {\n        printf(\"pwhash_argon2id_str failed\\n\");\n        return 1;\n    }\n    printf(\"hash created: ok\\n\");\n\n    assert(crypto_pwhash_argon2id_str_verify(str_out, \"test\", 4) == 0);\n    printf(\"verify: ok\\n\");\n\n#if SIZE_MAX > 0xFFFFFFFFULL\n    ret = crypto_pwhash_argon2id_str_needs_rehash(str_out,\n                                                   (unsigned long long) 0x100000000ULL,\n                                                   5000000);\n    assert(ret == -1);\n    printf(\"needs_rehash opslimit overflow: rejected\\n\");\n\n    ret = crypto_pwhash_argon2id_str_needs_rehash(str_out, 3,\n                                                   (size_t) 0x100000000ULL * 1024ULL);\n    assert(ret == -1);\n    printf(\"needs_rehash memlimit overflow: rejected\\n\");\n#else\n    printf(\"needs_rehash opslimit overflow: rejected\\n\");\n    printf(\"needs_rehash memlimit overflow: rejected\\n\");\n#endif\n\n    ret = crypto_pwhash_argon2id_str_needs_rehash(str_out, 3, 5000000);\n    assert(ret == 0);\n    printf(\"needs_rehash same params: ok\\n\");\n\n    ret = crypto_pwhash_argon2i_str_needs_rehash(str_out, 3, 5000000);\n    assert(ret == -1);\n    printf(\"argon2i needs_rehash on argon2id: rejected\\n\");\n\n    assert(crypto_pwhash_str_verify(str_out, \"wrong\", 5) == -1);\n    printf(\"verify wrong password: rejected\\n\");\n\n    ret = crypto_pwhash(out, sizeof out,\n                        \"test\", 4,\n                        (const unsigned char *) str_out + 30,\n                        3, 5000000, crypto_pwhash_ALG_ARGON2I13);\n    assert(ret == 0);\n    printf(\"pwhash argon2i alg: ok\\n\");\n\n    return 0;\n}\n"
  },
  {
    "path": "test/default/pwhash_argon2id2.exp",
    "content": "hash created: ok\nverify: ok\nneeds_rehash opslimit overflow: rejected\nneeds_rehash memlimit overflow: rejected\nneeds_rehash same params: ok\nargon2i needs_rehash on argon2id: rejected\nverify wrong password: rejected\npwhash argon2i alg: ok\n"
  },
  {
    "path": "test/default/pwhash_scrypt.c",
    "content": "\n#define TEST_NAME \"pwhash_scrypt\"\n#include \"cmptest.h\"\n\n#define OUT_LEN 128\n#define OPSLIMIT 1000000\n#define MEMLIMIT 10000000\n\nstatic void\ntv(void)\n{\n    static struct {\n        const char        *passwd_hex;\n        size_t             passwdlen;\n        const char        *salt_hex;\n        size_t             outlen;\n        unsigned long long opslimit;\n        size_t             memlimit;\n    } tests[] = {\n        { \"a347ae92bce9f80f6f595a4480fc9c2fe7e7d7148d371e9487d75f5c23008ffae0\"\n          \"65577a928febd9b1973a5a95073acdbeb6a030cfc0d79caa2dc5cd011cef02c08d\"\n          \"a232d76d52dfbca38ca8dcbd665b17d1665f7cf5fe59772ec909733b24de97d6f5\"\n          \"8d220b20c60d7c07ec1fd93c52c31020300c6c1facd77937a597c7a6\",\n          127,\n          \"5541fbc995d5c197ba290346d2c559dedf405cf97e5f95482143202f9e74f5c2\",\n          155, 481326, 7256678 },\n        { \"e125cee61c8cb7778d9e5ad0a6f5d978ce9f84de213a8556d9ffe202020ab4a6ed\"\n          \"9074a4eb3416f9b168f137510f3a30b70b96cbfa219ff99f6c6eaffb15c06b60e0\"\n          \"0cc2890277f0fd3c622115772f7048adaebed86e\",\n          86,\n          \"f1192dd5dc2368b9cd421338b22433455ee0a3699f9379a08b9650ea2c126f0d\",\n          250, 535778, 7849083 },\n        { \"92263cbf6ac376499f68a4289d3bb59e5a22335eba63a32e6410249155b956b6a3\"\n          \"b48d4a44906b18b897127300b375b8f834f1ceffc70880a885f47c33876717e392\"\n          \"be57f7da3ae58da4fd1f43daa7e44bb82d3717af4319349c24cd31e46d295856b0\"\n          \"441b6b289992a11ced1cc3bf3011604590244a3eb737ff221129215e4e4347f491\"\n          \"5d41292b5173d196eb9add693be5319fdadc242906178bb6c0286c9b6ca6012746\"\n          \"711f58c8c392016b2fdfc09c64f0f6b6ab7b\",\n          183,\n          \"3b840e20e9555e9fb031c4ba1f1747ce25cc1d0ff664be676b9b4a90641ff194\",\n          249, 311757, 7994791 },\n        { \"027b6d8e8c8c474e9b69c7d9ed4f9971e8e1ce2f6ba95048414c3970f0f09b70e3\"\n          \"b6c5ae05872b3d8678705b7d381829c351a5a9c88c233569b35d6b0b809df44b64\"\n          \"51a9c273f1150e2ef8a0b5437eb701e373474cd44b97ef0248ebce2ca0400e1b53\"\n          \"f3d86221eca3f18eb45b702b9172440f774a82cbf1f6f525df30a6e293c873cce6\"\n          \"9bb078ed1f0d31e7f9b8062409f37f19f8550aae\",\n          152,\n          \"eb2a3056a09ad2d7d7f975bcd707598f24cd32518cde3069f2e403b34bfee8a5\", 5,\n          643464, 1397645 },\n        { \"4a857e2ee8aa9b6056f2424e84d24a72473378906ee04a46cb05311502d5250b82\"\n          \"ad86b83c8f20a23dbb74f6da60b0b6ecffd67134d45946ac8ebfb3064294bc097d\"\n          \"43ced68642bfb8bbbdd0f50b30118f5e\",\n          82,\n          \"39d82eef32010b8b79cc5ba88ed539fbaba741100f2edbeca7cc171ffeabf258\",\n          190, 758010, 5432947 },\n        { \"1845e375479537e9dd4f4486d5c91ac72775d66605eeb11a787b78a7745f1fd005\"\n          \"2d526c67235dbae1b2a4d575a74cb551c8e9096c593a497aee74ba3047d911358e\"\n          \"de57bc27c9ea1829824348daaab606217cc931dcb6627787bd6e4e5854f0e8\",\n          97,\n          \"3ee91a805aa62cfbe8dce29a2d9a44373a5006f4a4ce24022aca9cecb29d1473\",\n          212, 233177, 13101817 },\n        { \"c7b09aec680e7b42fedd7fc792e78b2f6c1bea8f4a884320b648f81e8cf515e8ba\"\n          \"9dcfb11d43c4aae114c1734aa69ca82d44998365db9c93744fa28b63fd16000e82\"\n          \"61cbbe083e7e2da1e5f696bde0834fe53146d7e0e35e7de9920d041f5a5621aabe\"\n          \"02da3e2b09b405b77937efef3197bd5772e41fdb73fb5294478e45208063b5f58e\"\n          \"089dbeb6d6342a909c1307b3fff5fe2cf4da56bdae50848f\",\n          156,\n          \"039c056d933b475032777edbaffac50f143f64c123329ed9cf59e3b65d3f43b6\",\n          178, 234753, 4886999 },\n        { \"8f3a06e2fd8711350a517bb12e31f3d3423e8dc0bb14aac8240fca0995938d59bb\"\n          \"37bd0a7dfc9c9cc0705684b46612e8c8b1d6655fb0f9887562bb9899791a0250d1\"\n          \"320f945eda48cdc20c233f40a5bb0a7e3ac5ad7250ce684f68fc0b8c9633bfd75a\"\n          \"ad116525af7bdcdbbdb4e00ab163fd4df08f243f12557e\",\n          122,\n          \"90631f686a8c3dbc0703ffa353bc1fdf35774568ac62406f98a13ed8f47595fd\",\n          55, 695191, 15738350 },\n        { \"b540beb016a5366524d4605156493f9874514a5aa58818cd0c6dfffaa9e90205f1\"\n          \"7b\",\n          34,\n          \"44071f6d181561670bda728d43fb79b443bb805afdebaf98622b5165e01b15fb\",\n          231, 78652, 6631659 },\n        { \"a14975c26c088755a8b715ff2528d647cd343987fcf4aa25e7194a8417fb2b4b3f\"\n          \"7268da9f3182b4cfb22d138b2749d673a47ecc7525dd15a0a3c66046971784bb63\"\n          \"d7eae24cc84f2631712075a10e10a96b0e0ee67c43e01c423cb9c44e5371017e9c\"\n          \"496956b632158da3fe12addecb88912e6759bc37f9af2f45af72c5cae3b179ffb6\"\n          \"76a697de6ebe45cd4c16d4a9d642d29ddc0186a0a48cb6cd62bfc3dd229d313b30\"\n          \"1560971e740e2cf1f99a9a090a5b283f35475057e96d7064e2e0fc81984591068d\"\n          \"55a3b4169f22cccb0745a2689407ea1901a0a766eb99\",\n          220,\n          \"3d968b2752b8838431165059319f3ff8910b7b8ecb54ea01d3f54769e9d98daf\",\n          167, 717248, 10784179 },\n    };\n    char          passwd[256];\n    unsigned char salt[crypto_pwhash_scryptsalsa208sha256_SALTBYTES];\n    unsigned char out[256];\n    char          out_hex[256 * 2 + 1];\n    size_t        i = 0U;\n\n    do {\n        sodium_hex2bin((unsigned char *) passwd, sizeof passwd,\n                       tests[i].passwd_hex, strlen(tests[i].passwd_hex), NULL,\n                       NULL, NULL);\n        sodium_hex2bin(salt, sizeof salt, tests[i].salt_hex,\n                       strlen(tests[i].salt_hex), NULL, NULL, NULL);\n        if (crypto_pwhash_scryptsalsa208sha256(\n                out, (unsigned long long) tests[i].outlen, passwd,\n                tests[i].passwdlen, (const unsigned char *) salt,\n                tests[i].opslimit, tests[i].memlimit) != 0) {\n            printf(\"pwhash failure\\n\");\n        }\n        sodium_bin2hex(out_hex, sizeof out_hex, out, tests[i].outlen);\n        printf(\"%s\\n\", out_hex);\n    } while (++i < (sizeof tests) / (sizeof tests[0]));\n}\n\nstatic void\ntv2(void)\n{\n    static struct {\n        const char        *passwd_hex;\n        size_t             passwdlen;\n        const char        *salt_hex;\n        size_t             outlen;\n        unsigned long long opslimit;\n        size_t             memlimit;\n    } tests[] = {\n        { \"a347ae92bce9f80f6f595a4480fc9c2fe7e7d7148d371e9487d75f5c23008ffae0\"\n          \"65577a928febd9b1973a5a95073acdbeb6a030cfc0d79caa2dc5cd011cef02c08d\"\n          \"a232d76d52dfbca38ca8dcbd665b17d1665f7cf5fe59772ec909733b24de97d6f5\"\n          \"8d220b20c60d7c07ec1fd93c52c31020300c6c1facd77937a597c7a6\",\n          127,\n          \"5541fbc995d5c197ba290346d2c559dedf405cf97e5f95482143202f9e74f5c2\",\n          155, 64, 1397645 },\n        { \"a347ae92bce9f80f6f595a4480fc9c2fe7e7d7148d371e9487d75f5c23008ffae0\"\n          \"65577a928febd9b1973a5a95073acdbeb6a030cfc0d79caa2dc5cd011cef02c08d\"\n          \"a232d76d52dfbca38ca8dcbd665b17d1665f7cf5fe59772ec909733b24de97d6f5\"\n          \"8d220b20c60d7c07ec1fd93c52c31020300c6c1facd77937a597c7a6\",\n          127,\n          \"5541fbc995d5c197ba290346d2c559dedf405cf97e5f95482143202f9e74f5c2\",\n          155, 32768, 1397645 },\n    };\n    char          passwd[256];\n    unsigned char salt[crypto_pwhash_scryptsalsa208sha256_SALTBYTES];\n    unsigned char out[256];\n    char          out_hex[256 * 2 + 1];\n    size_t        i = 0U;\n\n    do {\n        sodium_hex2bin((unsigned char *) passwd, sizeof passwd,\n                       tests[i].passwd_hex, strlen(tests[i].passwd_hex), NULL,\n                       NULL, NULL);\n        sodium_hex2bin(salt, sizeof salt, tests[i].salt_hex,\n                       strlen(tests[i].salt_hex), NULL, NULL, NULL);\n        if (crypto_pwhash_scryptsalsa208sha256(\n                out, (unsigned long long) tests[i].outlen, passwd,\n                tests[i].passwdlen, (const unsigned char *) salt,\n                tests[i].opslimit, tests[i].memlimit) != 0) {\n            printf(\"pwhash failure\\n\");\n        }\n        sodium_bin2hex(out_hex, sizeof out_hex, out, tests[i].outlen);\n        printf(\"%s\\n\", out_hex);\n    } while (++i < (sizeof tests) / (sizeof tests[0]));\n}\n\nstatic void\ntv3(void)\n{\n    static struct {\n        const char *passwd;\n        const char *out;\n    } tests[] = {\n        { \"^T5H$JYt39n%K*j:W]!1s?vg!:jGi]Ax?..l7[p0v:1jHTpla9;]bUN;?bWyCbtqg \"\n          \"nrDFal+Jxl3,2`#^tFSu%v_+7iYse8-cCkNf!tD=KrW)\",\n          \"$7$B6....1....75gBMAGwfFWZqBdyF3WdTQnWdUsuTiWjG1fF9c1jiSD$tc8RoB3.\"\n          \"Em3/zNgMLWo2u00oGIoTyJv4fl3Fl8Tix72\" },\n        { \"bl72h6#y<':MFRZ>B IA1=NRkCKS%W8`1I.2uQxJN0g)N N aTt^4K!Iw5r \"\n          \"H6;crDsv^a55j9tsk'/GqweZn;cdk6+F_St6:#*=?ZCD_lw>.\",\n          \"$7$A6....3....Iahc6qM0.UQJHVgE4h9oa1/\"\n          \"4OWlWLm9CCtfguvz6bQD$QnXCo3M7nIqtry2WKsUZ5gQ.mY0wAlJu.\"\n          \"WUhtE8vF66\" },\n        { \"Py \"\n          \">e.5b+tLo@rL`dC2k@eJ&4eVl!W=JJ4+k&mAt@gt',FS1JjqKW3aq21:]^kna`\"\n          \"mde7kVkN5NrpKUptu)@4*b&?BE_sJMG1=&@`3GBCV]Wg7xwgo7x3El\",\n          \"$7$96..../....f6bEusKt79kK4wdYN0ki2nw4bJQ7P3rN6k3BSigsK/\"\n          \"D$Dsvuw7vXj5xijmrb/NOhdgoyK/OiSIYv88cEtl9Cik7\" },\n        { \"2vj;Um]FKOL27oam(:Uo8+UmSTvb1FD*h?jk_,S=;RDgF-$Fjk?]9yvfxe@fN^!NN(\"\n          \"Cuml?+2Raa\",\n          \"$7$86....I....7XwIxLtCx4VphmFeUa6OGuGJrFaIaYzDiLNu/\"\n          \"tyUPhD$U3q5GCEqCWxMwh.YQHDJrlg7FIZgViv9pcXE3h1vg61\" },\n        { \"CT=[9uUoGav,J`kU+348tA50ue#sL:ABZ3QgF+r[#vh:tTOiL>s8tv%,Jeo]jH/\"\n          \"_4^i(*jD-_ku[9Ko[=86 06V\",\n          \"$7$A6....2....R3.bjH6YS9wz9z8Jsj.3weGQ3J80ZZElGw2oVux1TP6$\"\n          \"i5u6lFzXDHaIgYEICinLD6WNaovbiXP8SnLrDRdKgA9\" },\n        { \"J#wNn`hDgOpTHNI.w^1a70%f,.9V_m038H_JIJQln`vdWnn/\"\n          \"rmILR?9H5g(+`;@H(2VosN9Fgk[WEjaBr'yB9Q19-imNa04[Mk5kvGcSn-TV\",\n          \"$7$B6....1....Dj1y.4mF1J9XmT/6IDskYdCLaPFJTq9xcCwXQ1DpT92$92/\"\n          \"hYfZLRq1nTLyIz.uc/dC6wLqwnsoqpkadrCXusm6\" },\n        { \"j4BS38Asa;p)[K+9TY!3YDj<LK-`nLVXQw9%*QfM\",\n          \"$7$B6....1....5Ods8mojVwXJq4AywF/uI9BdMSiJ/zT8hQP/\"\n          \"4cB68VC$nk4ExHNXJ802froj51/1wJTrSZvTIyyK7PecOxRRaz0\" },\n        { \"M.R>Qw+!qJb]>pP :_.9`dxM9k [eR7Y!yL-3)sNs[R,j_/^ \"\n          \"TH=5ny'15>6UXWcQW^6D%XCsO[vN[%ReA-`tV1vW(Nt*0KVK#]45P_A\",\n          \"$7$B6....1....D/\"\n          \"eyk8N5y6Z8YVQEsw521cTx.9zzLuK7YDs1KMMh.o4$alfW8ZbsUWnXc.\"\n          \"vqon2zoljVk24Tt1.IsCuo2KurvS2\" },\n        { \"K3S=KyH#)36_?]LxeR8QNKw6X=gFb'ai$C%29V* \"\n          \"tyh^Wo$TN-#Q4qkmtTCf0LLb.^E$0uykkP\",\n          \"$7$B6....1....CuBuU97xgAage8whp/\"\n          \"JNKobo0TFbsORGVbfcQIefyP8$aqalP.\"\n          \"XofGViB8EPLONqHma8vs1xc9uTIMYh9CgE.S8\" },\n        { \"Y0!?iQa9M%5ekffW(`\",\n          \"$7$A6....1....TrXs5Zk6s8sWHpQgWDIXTR8kUU3s6Jc3s.DtdS8M2i4$\"\n          \"a4ik5hGDN7foMuHOW.cp.CtX01UyCeO0.JAG.AHPpx5\" },\n\n        /* Invalid pwhash strings */\n\n        { \"Y0!?iQa9M%5ekffW(`\",\n          \"$7$A6....1....$TrXs5Zk6s8sWHpQgWDIXTR8kUU3s6Jc3s.DtdS8M2i4\"\n          \"a4ik5hGDN7foMuHOW.cp.CtX01UyCeO0.JAG.AHPpx5\" },\n        { \"Y0!?iQa9M%5ekffW(`\",\n          \"$7$.6....1....TrXs5Zk6s8sWHpQgWDIXTR8kUU3s6Jc3s.DtdS8M2i4$\"\n          \"a4ik5hGDN7foMuHOW.cp.CtX01UyCeO0.JAG.AHPpx5\" },\n        { \"Y0!?iQa9M%5ekffW(`\",\n          \"$7$A.....1....TrXs5Zk6s8sWHpQgWDIXTR8kUU3s6Jc3s.DtdS8M2i4$\"\n          \"a4ik5hGDN7foMuHOW.cp.CtX01UyCeO0.JAG.AHPpx5\" },\n        { \"Y0!?iQa9M%5ekffW(`\",\n          \"$7$A6.........TrXs5Zk6s8sWHpQgWDIXTR8kUU3s6Jc3s.DtdS8M2i4$\"\n          \"a4ik5hGDN7foMuHOW.cp.CtX01UyCeO0.JAG.AHPpx5\" },\n        { \"Y0!?iQa9M%5ekffW(`\",\n          \"$7$A6....1....TrXs5Zk6s8sWHpQgWDIXTR8kUU3s6Jc3s.DtdS8M2i44269$\"\n          \"a4ik5hGDN7foMuHOW.cp.CtX01UyCeO0.JAG.AH\" },\n        { \"Y0!?iQa9M%5ekffW(`\",\n          \"$7$A6....1....TrXs5Zk6s8sWHpQgWDIXTR8kUU3s6Jc3s.DtdS8M2i4$\"\n          \"a4ik5hGDN7foMuHOW.cp.CtX01UyCeO0.JAG.AHPpx54269\" },\n        { \"Y0!?iQa9M%5ekffW(`\",\n          \"$7^A6....1....TrXs5Zk6s8sWHpQgWDIXTR8kUU3s6Jc3s.DtdS8M2i4$\"\n          \"a4ik5hGDN7foMuHOW.cp.CtX01UyCeO0.JAG.AHPpx5\" },\n        { \"Y0!?iQa9M%5ekffW(`\",\n          \"$7$!6....1....TrXs5Zk6s8sWHpQgWDIXTR8kUU3s6Jc3s.DtdS8M2i4$\"\n          \"a4ik5hGDN7foMuHOW.cp.CtX01UyCeO0.JAG.AHPpx5\" },\n        { \"Y0!?iQa9M%5ekffW(`\",\n          \"$7$A!....1....TrXs5Zk6s8sWHpQgWDIXTR8kUU3s6Jc3s.DtdS8M2i4$\"\n          \"a4ik5hGDN7foMuHOW.cp.CtX01UyCeO0.JAG.AHPpx5\" },\n        { \"Y0!?iQa9M%5ekffW(`\",\n          \"$7$A6....!....TrXs5Zk6s8sWHpQgWDIXTR8kUU3s6Jc3s.DtdS8M2i4$\"\n          \"a4ik5hGDN7foMuHOW.cp.CtX01UyCeO0.JAG.AHPpx5\" },\n        { \"\",\n          \"$7$A6....1....TrXs5Zk6s8sWHpQgWDIXTR8kUU3s6Jc3s.DtdS8M2i4$\"\n          \"a4ik5hGDN7foMuHOW.cp.CtX01UyCeO0.JAG.AHPpx5\" },\n        { \"Y0!?iQa9M%5ekffW(`\",\n          \"$7fA6....1....TrXs5Zk6s8sWHpQgWDIXTR8kUU3s6Jc3s.DtdS8M2i4#\"\n          \"a4ik5hGDN7foMuHOW.cp.CtX01UyCeO0.JAG.AHPpx5\" },\n        { \"Y0!?iQa9M%5ekffW(`\",\n          \"$7$AX....1....TrXs5Zk6s8sWHpQgWDIXTR8kUU3s6Jc3s.DtdS8M2i4$\"\n          \"a4ik5hGDN7foMuHOW.cp.CtX01UyCeO0.JAG.AHPpx5\" },\n        { \"Y0!?iQa9M%5ekffW(`\",\n          \"$7$A6....1!...TrXs5Zk6s8sWHpQgWDIXTR8kUU3s6Jc3s.DtdS8M2i4$\"\n          \"a4ik5hGDN7foMuHOW.cp.CtX01UyCeO0.JAG.AHPpx5\" },\n        { \"Y0!?iQa9M%5ekffW(`\", \"$7$A6....1\" },\n        { \"Y0!?iQa9M%5ekffW(`\", \"$7$\" },\n        { \"Y0!?iQa9M%5ekffW(`\", \"\" },\n        { \"Y0!?iQa9M%5ekffW(`\",\n          \"$7$A6....1....TrXs5Zk6s8sWHpQgWDIXTR8kUU3s6Jc3s.DtdS8M2i4$\" },\n        { \"test\",\n          \"$7$.6..../.....lgPchkGHqbeONR/xtuXyjCrt9kUSg6NlKFQO0OSxo/$.DbajbPYH9T7sg3fOtcgxvJzzfIgJBIxMkeQ8b24YQ.\" },\n        { \"test\",\n          \"$7$z6..../.....lgPchkGHqbeONR/xtuXyjCrt9kUSg6NlKFQO0OSxo/$.DbajbPYH9T7sg3fOtcgxvJzzfIgJBIxMkeQ8b24YQ.\" },\n        { \"test\",\n          \"$7$8zzzzzzzzzz.lgPchkGHqbeONR/xtuXyjCrt9kUSg6NlKFQO0OSxo/$.DbajbPYH9T7sg3fOtcgxvJzzfIgJBIxMkeQ8b24YQ.\" },\n        { \"test\",\n          \"$7$8.....zzzzz.lgPchkGHqbeONR/xtuXyjCrt9kUSg6NlKFQO0OSxo/$.DbajbPYH9T7sg3fOtcgxvJzzfIgJBIxMkeQ8b24YQ.\" },\n        { \"test\",\n          \"$7$86..../..../lgPchkGHqbeONR/xtuXyjCrt9kUSg6NlKFQO0OSxo/$.DbajbPYH9T7sg3fOtcgxvJzzfIgJBIxMkeQ8b24YQ.\" }\n    };\n    char * out;\n    char * passwd;\n    size_t i = 0U;\n\n    do {\n        out = (char *) sodium_malloc(strlen(tests[i].out) + 1U);\n        assert(out != NULL);\n        memcpy(out, tests[i].out, strlen(tests[i].out) + 1U);\n        passwd = (char *) sodium_malloc(strlen(tests[i].passwd) + 1U);\n        assert(passwd != NULL);\n        memcpy(passwd, tests[i].passwd, strlen(tests[i].passwd) + 1U);\n        if (crypto_pwhash_scryptsalsa208sha256_str_verify(\n                out, passwd, strlen(passwd)) != 0) {\n            printf(\"pwhash_str failure: [%u]\\n\", (unsigned int) i);\n        }\n        sodium_free(out);\n        sodium_free(passwd);\n    } while (++i < (sizeof tests) / (sizeof tests[0]));\n}\n\nstatic void\nstr_tests(void)\n{\n    char       *str_out;\n    char       *str_out2;\n    const char *passwd = \"Correct Horse Battery Staple\";\n\n    str_out =\n        (char *) sodium_malloc(crypto_pwhash_scryptsalsa208sha256_STRBYTES);\n    str_out2 =\n        (char *) sodium_malloc(crypto_pwhash_scryptsalsa208sha256_STRBYTES);\n    if (crypto_pwhash_scryptsalsa208sha256_str(str_out, passwd, strlen(passwd),\n                                               OPSLIMIT, MEMLIMIT) != 0) {\n        printf(\"pwhash_str failure\\n\");\n    }\n    if (crypto_pwhash_scryptsalsa208sha256_str(str_out2, passwd, strlen(passwd),\n                                               OPSLIMIT, MEMLIMIT) != 0) {\n        printf(\"pwhash_str(2) failure\\n\");\n    }\n    if (strcmp(str_out, str_out2) == 0) {\n        printf(\"pwhash_str doesn't generate different salts\\n\");\n    }\n    if (crypto_pwhash_scryptsalsa208sha256_str_needs_rehash\n        (str_out, OPSLIMIT, MEMLIMIT) != 0) {\n        printf(\"needs_rehash() false positive\\n\");\n    }\n    if (crypto_pwhash_scryptsalsa208sha256_str_needs_rehash\n        (str_out, OPSLIMIT, MEMLIMIT / 2) != 1 ||\n        crypto_pwhash_scryptsalsa208sha256_str_needs_rehash\n        (str_out, OPSLIMIT / 2, MEMLIMIT) != 1 ||\n        crypto_pwhash_scryptsalsa208sha256_str_needs_rehash\n        (str_out, OPSLIMIT, MEMLIMIT * 2) != 1 ||\n        crypto_pwhash_scryptsalsa208sha256_str_needs_rehash\n        (str_out, OPSLIMIT * 2, MEMLIMIT) != 1) {\n        printf(\"needs_rehash() false negative\\n\");\n    }\n    if (crypto_pwhash_scryptsalsa208sha256_str_needs_rehash\n        (str_out + 1, OPSLIMIT, MEMLIMIT) != -1) {\n        printf(\"needs_rehash() didn't fail with an invalid hash string\\n\");\n    }\n    if (crypto_pwhash_scryptsalsa208sha256_str_verify(str_out, passwd,\n                                                      strlen(passwd)) != 0) {\n        printf(\"pwhash_str_verify failure\\n\");\n    }\n    if (crypto_pwhash_scryptsalsa208sha256_str_verify(str_out, passwd,\n                                                      strlen(passwd)) != 0) {\n        printf(\"pwhash_str_verify failure\\n\");\n    }\n    str_out[14]++;\n    if (crypto_pwhash_scryptsalsa208sha256_str_verify(str_out, passwd,\n                                                      strlen(passwd)) == 0) {\n        printf(\"pwhash_str_verify(2) failure\\n\");\n    }\n    str_out[14]--;\n\n    assert(str_out[crypto_pwhash_scryptsalsa208sha256_STRBYTES - 1U] == 0);\n\n    assert(crypto_pwhash_scryptsalsa208sha256_str_needs_rehash\n           (str_out, 0, 0) == 1);\n    assert(crypto_pwhash_str_needs_rehash(str_out, 0, 0) == -1);\n    assert(crypto_pwhash_str_needs_rehash(str_out, OPSLIMIT, MEMLIMIT) == -1);\n    assert(crypto_pwhash_scryptsalsa208sha256_str_needs_rehash\n           (\"\", OPSLIMIT, MEMLIMIT) == -1);\n\n    sodium_free(str_out);\n    sodium_free(str_out2);\n}\n\nint\nmain(void)\n{\n    tv();\n    tv2();\n    tv3();\n    str_tests();\n\n    assert(crypto_pwhash_scryptsalsa208sha256_bytes_min() > 0U);\n    assert(crypto_pwhash_scryptsalsa208sha256_bytes_max() >\n           crypto_pwhash_scryptsalsa208sha256_bytes_min());\n    assert(crypto_pwhash_scryptsalsa208sha256_passwd_max() >\n           crypto_pwhash_scryptsalsa208sha256_passwd_min());\n    assert(crypto_pwhash_scryptsalsa208sha256_saltbytes() > 0U);\n    assert(crypto_pwhash_scryptsalsa208sha256_strbytes() > 1U);\n    assert(crypto_pwhash_scryptsalsa208sha256_strbytes() >\n           strlen(crypto_pwhash_scryptsalsa208sha256_strprefix()));\n\n    assert(crypto_pwhash_scryptsalsa208sha256_opslimit_min() > 0U);\n    assert(crypto_pwhash_scryptsalsa208sha256_opslimit_max() > 0U);\n    assert(crypto_pwhash_scryptsalsa208sha256_memlimit_min() > 0U);\n    assert(crypto_pwhash_scryptsalsa208sha256_memlimit_max() > 0U);\n    assert(crypto_pwhash_scryptsalsa208sha256_opslimit_interactive() > 0U);\n    assert(crypto_pwhash_scryptsalsa208sha256_memlimit_interactive() > 0U);\n    assert(crypto_pwhash_scryptsalsa208sha256_opslimit_sensitive() > 0U);\n    assert(crypto_pwhash_scryptsalsa208sha256_memlimit_sensitive() > 0U);\n\n    printf(\"OK\\n\");\n\n    return 0;\n}\n"
  },
  {
    "path": "test/default/pwhash_scrypt.exp",
    "content": "8d40f5f8c6a1791204f03e19a98cd74f918b6e331b39cfc2415e5014d7738b7bb0a83551fb14a035e07fdd4dc0c60c1a6822ac253918979f6324ff0c87cba75d3b91f88f41ca5414a0f152bdc4d636f42ab2250afd058c19ec31a3374d1bd7133289bf21513ff67cbf8482e626aee9864c58fd05f9ea02e508a10182b7d838157119866f072004987ef6c56683ed207705923921af9d76444a331a\nd985d4c278343a46d82af0c4268b7ae6b6d1d2dd289675ef45bfb6d0648bffe5bab8c91228f3a31b091154a9c1142670a07b92e70a298333066de07db9300e046fd7cacc99780804683df7babdfc9d019047178400b2875bde0a1ad824dda7a422d9ed48475af9a3876378dd3a2f206e34984e223afb82c0c1e4644c9a458f4666379fdd3e2d9206d87e3c32c3977f35826a27590baaa1ec1a3bd7d15a92bc84c95dcfc56c14fca7c4c9810162dfdf9dc08a191e79fe40250b7e07d3a9317d9a5cb56e1062c419a6cd6a9b73128e8ad79ab7efffbb3cc52c1f49f86d2ebb46e6e4846aecdb14c2d046f5380517ff8cc794e4a772a58b93083dad\nee7e9e1369267ec555981f0ea088ff6f93953abfcb767d88ec3c46393d24cfbaba5e4e26e0f35b5d5259647748476d65cd8881c96f8cda049d9c877b2d33d932e67f4c0df2cb434b4b4900e0c49c3f8ba9663795420577e65d0b456201ad9162fbc485c7b44f2b34e6673aa3692c123021ee3b624c3bb22b808b89613d8ecc7b87da47f57152eb3f7b10ad206f6b09cb6935b347b5e42bc3b8c9c9bcd8d7b7c44929b367fc279dec48ea78e6ee3e2620d7459700bd0aedb1c9aa5a323ca94403927f5e5c2b73bda7c5c3287b62fe51874cfeb1dc3151cd886b26d83ece68833229d2d432798c602d85b0505947207d8430febbe901164b12ce\npwhash failure\n0000000000\nbcc5c2fd785e4781d1201ed43d84925537e2a540d3de55f5812f29e9dd0a4a00451a5c8ddbb4862c03d45c75bf91b7fb49265feb667ad5c899fdbf2ca19eac67aa5e48595d5b02f8183ab07f71b1ce0d76e5df54919f63810ad0893ded7d1ca18fc956ec06ffd4c3d1f77a00ed53608947b25eea5df6bea02272be15815f974c321a2a9208674fdf59d1d798c2a12f1889df68b0c222b37ee9ef0d6391fc160b0281ec53073cb3a3706ce1d71c3af2f5237a1b3d8545d99012eecc0b4abb\n82765c040c58c1810f8c053ef5c248556299385476bde44bdd91a0d9a239f24e9b1717fd8b23209ffa45b7aa7937296c601b79e77da99e8d2fda0ea4459be2d0900f5bc5a269b5488d873d4632d1baf75965e509ee24b12501a9ce3bbbd8b7d759987d545a1c221a363195e5802d768b3b9e00ebe5ac0ed8ad2362c1c4157b910a40f94adf2561a2b0d3e65dbb06f244e5ac44d362103df54c9b9175777b3db1cdadb03e977ab8a79baf1e1e18ec9f5d0f25c487ddc53d7e81910f83576b44e9caeece26e2eb376569ad3a8cdccbde8bc355210e\nca9216d4127e2e4a6ee3584b49be106217bb61cc807016d46d0cfbb1fd722e2bbac33541386bdfeac41a299ead22790993fcaa8e1d23bd1c8426afa5ff4c08e731dc476ef834f142c32dfb2c1be12b9978802e63b2cd6f226b1a8df59f0c79154d7ef4296a68ec654538d987104f9a11aca1b7c83ab2ed8fd69da6b88f0bcbd27d3fea01329cecf10c57ec3ba163d57b38801bd6c3b31ce527b33717bb56a46f78fb96be9f2424a21b3284232388cbba6a74\n2732a7566023c8db90a5fdd08dbe6c1b5e70c046d50c5735c8d86a589ba177f69db12d6cc3596319fa27c9e063ed05b8a31970a07dc905\nd7b1ef464be03ce9050b5108e25f0b8e821299986fe0ff89e17fbae65ba9fad167fbd265866ac03efc86ab0b50d46d6740a59adf5949b44f7f9f3ac3f3d4cc9f128966db9099deb1b6b78505242b2401a193820408eb0780b27162ebafb7c505b0e7c32ce66c6efc0be487008c1201454680498a2fc06e00b454e0b20933906bbb0e43b399b9ee46d882f107df1ebdd1e7cd867c9cdba6015b7e80064ae8b3417d969524bec046e782a13b125f058cd36b5d1ae65886ae7caab45a6d98651ada435b8ee11d5c1224232f5f515df974138dd6cf347b730481d4b073af8ff0394fe9f0b8cdfd99f5\n1839be14287053bfcd4ea60db82777fad1a6e9535c388b770743e61235449e668717199defd516c438b3ebd79b3529eb32482ef414525292ea1bbec09da10790a2330a4399f2fe6dd63d80954e3c547a5f1c619db5a30bde495b23f2214b4fa7572851d75246f2817775f0b521acc6efbc7832c9a76de7465e3c65cade88e86c973f85a882bb54f92b983977c6e937c88f083ba68c70fb49497065b158e2e789809b1d4cc9ec2d\nd54916748076b9d9f72198c8fbef563462dc8c706e1ad38abd1fac570016721acd0a7659ab49a47299a996b43597690c0c947143069f35d83e606273dbf2d622321393949b8ed5a68315362c4f84804384d05e0e0e86bc00e3641233f9f975ab46b60ba185c5e5fe47f78efd207e69fd8f6390730828b93b9b3763ea1283caa03bc36726763715de811915681dd214524f5ad4dd386608cac6c7f2\nd54916748076b9d9f72198c8fbef563462dc8c706e1ad38abd1fac570016721acd0a7659ab49a47299a996b43597690c0c947143069f35d83e606273dbf2d622321393949b8ed5a68315362c4f84804384d05e0e0e86bc00e3641233f9f975ab46b60ba185c5e5fe47f78efd207e69fd8f6390730828b93b9b3763ea1283caa03bc36726763715de811915681dd214524f5ad4dd386608cac6c7f2\npwhash_str failure: [10]\npwhash_str failure: [11]\npwhash_str failure: [12]\npwhash_str failure: [13]\npwhash_str failure: [14]\npwhash_str failure: [15]\npwhash_str failure: [16]\npwhash_str failure: [17]\npwhash_str failure: [18]\npwhash_str failure: [19]\npwhash_str failure: [20]\npwhash_str failure: [21]\npwhash_str failure: [22]\npwhash_str failure: [23]\npwhash_str failure: [24]\npwhash_str failure: [25]\npwhash_str failure: [26]\npwhash_str failure: [27]\npwhash_str failure: [28]\npwhash_str failure: [29]\npwhash_str failure: [30]\npwhash_str failure: [31]\npwhash_str failure: [32]\nOK\n"
  },
  {
    "path": "test/default/pwhash_scrypt_ll.c",
    "content": "\n#define TEST_NAME \"pwhash_scrypt_ll\"\n#include \"cmptest.h\"\n\nstatic const char *   passwd1 = \"\";\nstatic const char *   salt1   = \"\";\nstatic const uint64_t N1      = 16U;\nstatic const uint32_t r1      = 1U;\nstatic const uint32_t p1      = 1U;\n\nstatic const char *   passwd2 = \"password\";\nstatic const char *   salt2   = \"NaCl\";\nstatic const uint64_t N2      = 1024U;\nstatic const uint32_t r2      = 8U;\nstatic const uint32_t p2      = 16U;\n\nstatic const char *   passwd3 = \"pleaseletmein\";\nstatic const char *   salt3   = \"SodiumChloride\";\nstatic const uint64_t N3      = 16384U;\nstatic const uint32_t r3      = 8U;\nstatic const uint32_t p3      = 1U;\n\nstatic void\ntv(const char *passwd, const char *salt, uint64_t N, uint32_t r, uint32_t p)\n{\n    uint8_t data[64];\n    size_t  i;\n    size_t  olen       = (sizeof data / sizeof data[0]);\n    size_t  passwd_len = strlen(passwd);\n    size_t  salt_len   = strlen(salt);\n    int     line_items  = 0;\n\n    if (crypto_pwhash_scryptsalsa208sha256_ll(\n            (const uint8_t *) passwd, passwd_len, (const uint8_t *) salt,\n            salt_len, N, r, p, data, olen) != 0) {\n        printf(\"pwhash_scryptsalsa208sha256_ll([%s],[%s]) failure\\n\", passwd,\n               salt);\n        return;\n    }\n\n    printf(\"scrypt('%s', '%s', %lu, %lu, %lu, %lu) =\\n\", passwd, salt,\n           (unsigned long) N, (unsigned long) r, (unsigned long) p,\n           (unsigned long) olen);\n\n    for (i = 0; i < olen; i++) {\n        printf(\"%02x%c\", data[i], line_items < 15 ? ' ' : '\\n');\n        line_items = line_items < 15 ? line_items + 1 : 0;\n    }\n}\n\nint\nmain(void)\n{\n    tv(passwd1, salt1, N1, r1, p1);\n    tv(passwd2, salt2, N2, r2, p2);\n    tv(passwd3, salt3, N3, r3, p3);\n\n    return 0;\n}\n"
  },
  {
    "path": "test/default/pwhash_scrypt_ll.exp",
    "content": "scrypt('', '', 16, 1, 1, 64) =\n77 d6 57 62 38 65 7b 20 3b 19 ca 42 c1 8a 04 97\nf1 6b 48 44 e3 07 4a e8 df df fa 3f ed e2 14 42\nfc d0 06 9d ed 09 48 f8 32 6a 75 3a 0f c8 1f 17\ne8 d3 e0 fb 2e 0d 36 28 cf 35 e2 0c 38 d1 89 06\nscrypt('password', 'NaCl', 1024, 8, 16, 64) =\nfd ba be 1c 9d 34 72 00 78 56 e7 19 0d 01 e9 fe\n7c 6a d7 cb c8 23 78 30 e7 73 76 63 4b 37 31 62\n2e af 30 d9 2e 22 a3 88 6f f1 09 27 9d 98 30 da\nc7 27 af b9 4a 83 ee 6d 83 60 cb df a2 cc 06 40\nscrypt('pleaseletmein', 'SodiumChloride', 16384, 8, 1, 64) =\n70 23 bd cb 3a fd 73 48 46 1c 06 cd 81 fd 38 eb\nfd a8 fb ba 90 4f 8e 3e a9 b5 43 f6 54 5d a1 f2\nd5 43 29 55 61 3f 0f cf 62 d4 97 05 24 2a 9a f9\ne6 1e 85 dc 0d 65 1e 40 df cf 01 7b 45 57 58 87\n"
  },
  {
    "path": "test/default/randombytes.c",
    "content": "\n#define TEST_NAME \"randombytes\"\n#include \"cmptest.h\"\n\nstatic unsigned char      x[65536];\nstatic unsigned long long freq[256];\n\nstatic int\ncompat_tests(void)\n{\n    size_t i;\n\n    memset(x, 0, sizeof x);\n    randombytes(x, sizeof x);\n    for (i = 0; i < 256; ++i) {\n        freq[i] = 0;\n    }\n    for (i = 0; i < sizeof x; ++i) {\n        ++freq[255 & (int) x[i]];\n    }\n    for (i = 0; i < 256; ++i) {\n        if (!freq[i]) {\n            printf(\"nacl_tests failed\\n\");\n        }\n    }\n    return 0;\n}\n\nstatic int\nrandombytes_tests(void)\n{\n    static const unsigned char seed[randombytes_SEEDBYTES] = {\n        0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a,\n        0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x10, 0x11, 0x12, 0x13, 0x14, 0x15,\n        0x16, 0x17, 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f\n    };\n    unsigned char out[100];\n    unsigned int  f = 0U;\n    unsigned int  i;\n    uint32_t      n;\n\n#ifndef BENCHMARKS\n# ifdef __EMSCRIPTEN__\n    assert(strcmp(randombytes_implementation_name(), \"js\") == 0);\n# else\n    assert(strcmp(randombytes_implementation_name(), \"sysrandom\") == 0);\n# endif\n#endif\n    randombytes(x, 1U);\n    do {\n        n = randombytes_random();\n        f |= ((n >> 24) > 1);\n        f |= ((n >> 16) > 1) << 1;\n        f |= ((n >> 8) > 1) << 2;\n        f |= ((n) > 1) << 3;\n        f |= (n > 0x7fffffff) << 4;\n    } while (f != 0x1f);\n    randombytes_close();\n\n    for (i = 0; i < 256; ++i) {\n        freq[i] = 0;\n    }\n    for (i = 0; i < 65536; ++i) {\n        ++freq[randombytes_uniform(256)];\n    }\n    for (i = 0; i < 256; ++i) {\n        if (!freq[i]) {\n            printf(\"randombytes_uniform() test failed\\n\");\n        }\n    }\n    assert(randombytes_uniform(1U) == 0U);\n    randombytes_close();\n#ifndef __EMSCRIPTEN__\n    assert(&randombytes_internal_implementation == &randombytes_salsa20_implementation);\n    randombytes_set_implementation(&randombytes_internal_implementation);\n    assert(strcmp(randombytes_implementation_name(), \"internal\") == 0);\n#endif\n    randombytes_stir();\n    for (i = 0; i < 256; ++i) {\n        freq[i] = 0;\n    }\n    for (i = 0; i < 65536; ++i) {\n        ++freq[randombytes_uniform(256)];\n    }\n    for (i = 0; i < 256; ++i) {\n        if (!freq[i]) {\n            printf(\"randombytes_uniform() test failed\\n\");\n        }\n    }\n    memset(x, 0, sizeof x);\n    randombytes_buf(x, sizeof x);\n    for (i = 0; i < 256; ++i) {\n        freq[i] = 0;\n    }\n    for (i = 0; i < sizeof x; ++i) {\n        ++freq[255 & (int) x[i]];\n    }\n    for (i = 0; i < 256; ++i) {\n        if (!freq[i]) {\n            printf(\"randombytes_buf() test failed\\n\");\n        }\n    }\n    assert(randombytes_uniform(1U) == 0U);\n\n    randombytes_buf_deterministic(out, sizeof out, seed);\n    for (i = 0; i < sizeof out; ++i) {\n        printf(\"%02x\", out[i]);\n    }\n    printf(\" (deterministic)\\n\");\n\n    randombytes_close();\n\n    randombytes(x, 1U);\n    randombytes_close();\n\n    assert(randombytes_SEEDBYTES > 0);\n    assert(randombytes_seedbytes() == randombytes_SEEDBYTES);\n\n    return 0;\n}\n\nstatic uint32_t\nrandombytes_uniform_impl(const uint32_t upper_bound)\n{\n    return upper_bound;\n}\n\nstatic int\nimpl_tests(void)\n{\n    randombytes_implementation impl = randombytes_sysrandom_implementation;\n    uint32_t                   v = randombytes_random();\n\n    impl.uniform = randombytes_uniform_impl;\n    randombytes_close();\n    randombytes_set_implementation(&impl);\n    assert(randombytes_uniform(1) == 1);\n    assert(randombytes_uniform(v) == v);\n    assert(randombytes_uniform(v) == v);\n    assert(randombytes_uniform(v) == v);\n    assert(randombytes_uniform(v) == v);\n    randombytes_close();\n    impl.close = NULL;\n    randombytes_close();\n\n    return 0;\n}\n\nint\nmain(void)\n{\n    compat_tests();\n    randombytes_tests();\n#ifndef __EMSCRIPTEN__\n    impl_tests();\n#endif\n    printf(\"OK\\n\");\n\n#ifndef __EMSCRIPTEN__\n    randombytes_set_implementation(&randombytes_salsa20_implementation);\n#endif\n\n    return 0;\n}\n"
  },
  {
    "path": "test/default/randombytes.exp",
    "content": "0d8e6cc68715648926732e7ea73250cfaf2d58422083904c841a8ba33b986111f346ba50723a68ae283524a6bded09f83be6b80595856f72e25b86918e8b114bafb94bc8abedd73daab454576b7c5833eb0bf982a1bb4587a5c970ff0810ca3b791d7e12 (deterministic)\nOK\n"
  },
  {
    "path": "test/default/run.sh",
    "content": "#! /bin/sh\n\nfind . -type f -perm -100 -print | grep -v run.sh | sort | while read -r x; do\n  echo \"[$x]\"\n  if ! \"$x\"; then\n    echo \"*** [$x] FAILED\" >&2\n    exit 1\n  fi\ndone\n"
  },
  {
    "path": "test/default/scalarmult.c",
    "content": "\n#define TEST_NAME \"scalarmult\"\n#include \"cmptest.h\"\n\nstatic const unsigned char alicesk[crypto_scalarmult_BYTES] = {\n    0x77, 0x07, 0x6d, 0x0a, 0x73, 0x18, 0xa5, 0x7d, 0x3c, 0x16, 0xc1,\n    0x72, 0x51, 0xb2, 0x66, 0x45, 0xdf, 0x4c, 0x2f, 0x87, 0xeb, 0xc0,\n    0x99, 0x2a, 0xb1, 0x77, 0xfb, 0xa5, 0x1d, 0xb9, 0x2c, 0x2a\n};\n\nstatic const unsigned char bobsk[crypto_scalarmult_BYTES] = {\n    0x5d, 0xab, 0x08, 0x7e, 0x62, 0x4a, 0x8a, 0x4b, 0x79, 0xe1, 0x7f,\n    0x8b, 0x83, 0x80, 0x0e, 0xe6, 0x6f, 0x3b, 0xb1, 0x29, 0x26, 0x18,\n    0xb6, 0xfd, 0x1c, 0x2f, 0x8b, 0x27, 0xff, 0x88, 0xe0, 0xeb\n};\n\nstatic const unsigned char small_order_p[crypto_scalarmult_BYTES] = {\n    0xe0, 0xeb, 0x7a, 0x7c, 0x3b, 0x41, 0xb8, 0xae, 0x16, 0x56, 0xe3,\n    0xfa, 0xf1, 0x9f, 0xc4, 0x6a, 0xda, 0x09, 0x8d, 0xeb, 0x9c, 0x32,\n    0xb1, 0xfd, 0x86, 0x62, 0x05, 0x16, 0x5f, 0x49, 0xb8, 0x00\n};\n\nstatic char hex[crypto_scalarmult_BYTES * 2 + 1];\n\nint\nmain(void)\n{\n    unsigned char *alicepk =\n        (unsigned char *) sodium_malloc(crypto_scalarmult_BYTES);\n    unsigned char *bobpk =\n        (unsigned char *) sodium_malloc(crypto_scalarmult_BYTES);\n    unsigned char *k = (unsigned char *) sodium_malloc(crypto_scalarmult_BYTES);\n    int            ret;\n\n    assert(alicepk != NULL && bobpk != NULL && k != NULL);\n\n    crypto_scalarmult_base(alicepk, alicesk);\n    sodium_bin2hex(hex, sizeof hex, alicepk, crypto_scalarmult_BYTES);\n    printf(\"%s\\n\", hex);\n\n    crypto_scalarmult_base(bobpk, bobsk);\n    sodium_bin2hex(hex, sizeof hex, bobpk, crypto_scalarmult_BYTES);\n    printf(\"%s\\n\", hex);\n\n    ret = crypto_scalarmult(k, alicesk, bobpk);\n    assert(ret == 0);\n    sodium_bin2hex(hex, sizeof hex, k, crypto_scalarmult_BYTES);\n    printf(\"%s\\n\", hex);\n\n    ret = crypto_scalarmult(k, bobsk, alicepk);\n    assert(ret == 0);\n    sodium_bin2hex(hex, sizeof hex, k, crypto_scalarmult_BYTES);\n    printf(\"%s\\n\", hex);\n\n    alicepk[31] ^= 0x80;\n    ret = crypto_scalarmult(k, bobsk, alicepk);\n    assert(ret == 0);\n    sodium_bin2hex(hex, sizeof hex, k, crypto_scalarmult_BYTES);\n    printf(\"%s\\n\", hex);\n\n    ret = crypto_scalarmult(k, bobsk, small_order_p);\n    assert(ret == -1);\n\n    sodium_free(bobpk);\n    sodium_free(alicepk);\n    sodium_free(k);\n\n    assert(crypto_scalarmult_bytes() > 0U);\n    assert(crypto_scalarmult_scalarbytes() > 0U);\n    assert(strcmp(crypto_scalarmult_primitive(), \"curve25519\") == 0);\n    assert(crypto_scalarmult_bytes() == crypto_scalarmult_curve25519_bytes());\n    assert(crypto_scalarmult_scalarbytes() ==\n           crypto_scalarmult_curve25519_scalarbytes());\n    assert(crypto_scalarmult_bytes() == crypto_scalarmult_scalarbytes());\n\n    return 0;\n}\n"
  },
  {
    "path": "test/default/scalarmult.exp",
    "content": "8520f0098930a754748b7ddcb43ef75a0dbf3a0d26381af4eba4a98eaa9b4e6a\nde9edb7d7b7dc1b4d35b61c2ece435373f8343c85b78674dadfc7e146f882b4f\n4a5d9d5ba4ce2de1728e3bf480350f25e07e21c947d19e3376f09b3c1e161742\n4a5d9d5ba4ce2de1728e3bf480350f25e07e21c947d19e3376f09b3c1e161742\n4a5d9d5ba4ce2de1728e3bf480350f25e07e21c947d19e3376f09b3c1e161742\n"
  },
  {
    "path": "test/default/scalarmult2.c",
    "content": "\n#define TEST_NAME \"scalarmult2\"\n#include \"cmptest.h\"\n\nstatic unsigned char bobsk[32] = { 0x5d, 0xab, 0x08, 0x7e, 0x62, 0x4a, 0x8a,\n                                   0x4b, 0x79, 0xe1, 0x7f, 0x8b, 0x83, 0x80,\n                                   0x0e, 0xe6, 0x6f, 0x3b, 0xb1, 0x29, 0x26,\n                                   0x18, 0xb6, 0xfd, 0x1c, 0x2f, 0x8b, 0x27,\n                                   0xff, 0x88, 0xe0, 0xeb };\n\nint\nmain(void)\n{\n    unsigned char bobpk[32];\n    char          hex[65];\n\n    crypto_scalarmult_base(bobpk, bobsk);\n    sodium_bin2hex(hex, sizeof hex, bobpk, sizeof bobpk);\n    printf(\"%s\\n\", hex);\n\n    return 0;\n}\n"
  },
  {
    "path": "test/default/scalarmult2.exp",
    "content": "de9edb7d7b7dc1b4d35b61c2ece435373f8343c85b78674dadfc7e146f882b4f\n"
  },
  {
    "path": "test/default/scalarmult5.c",
    "content": "\n#define TEST_NAME \"scalarmult5\"\n#include \"cmptest.h\"\n\nstatic unsigned char alicesk[32] = { 0x77, 0x07, 0x6d, 0x0a, 0x73, 0x18, 0xa5,\n                                     0x7d, 0x3c, 0x16, 0xc1, 0x72, 0x51, 0xb2,\n                                     0x66, 0x45, 0xdf, 0x4c, 0x2f, 0x87, 0xeb,\n                                     0xc0, 0x99, 0x2a, 0xb1, 0x77, 0xfb, 0xa5,\n                                     0x1d, 0xb9, 0x2c, 0x2a };\n\nstatic unsigned char bobpk[32] = { 0xde, 0x9e, 0xdb, 0x7d, 0x7b, 0x7d, 0xc1,\n                                   0xb4, 0xd3, 0x5b, 0x61, 0xc2, 0xec, 0xe4,\n                                   0x35, 0x37, 0x3f, 0x83, 0x43, 0xc8, 0x5b,\n                                   0x78, 0x67, 0x4d, 0xad, 0xfc, 0x7e, 0x14,\n                                   0x6f, 0x88, 0x2b, 0x4f };\n\nint\nmain(void)\n{\n    unsigned char k[32];\n    char          hex[65];\n    int           ret;\n\n    ret = crypto_scalarmult(k, alicesk, bobpk);\n    assert(ret == 0);\n    sodium_bin2hex(hex, sizeof hex, k, sizeof k);\n    printf(\"%s\\n\", hex);\n\n    return 0;\n}\n"
  },
  {
    "path": "test/default/scalarmult5.exp",
    "content": "4a5d9d5ba4ce2de1728e3bf480350f25e07e21c947d19e3376f09b3c1e161742\n"
  },
  {
    "path": "test/default/scalarmult6.c",
    "content": "\n#define TEST_NAME \"scalarmult6\"\n#include \"cmptest.h\"\n\nstatic unsigned char bobsk_[crypto_scalarmult_SCALARBYTES] = {\n    0x5d, 0xab, 0x08, 0x7e, 0x62, 0x4a, 0x8a, 0x4b, 0x79, 0xe1, 0x7f,\n    0x8b, 0x83, 0x80, 0x0e, 0xe6, 0x6f, 0x3b, 0xb1, 0x29, 0x26, 0x18,\n    0xb6, 0xfd, 0x1c, 0x2f, 0x8b, 0x27, 0xff, 0x88, 0xe0, 0xeb\n};\n\nstatic unsigned char alicepk_[crypto_scalarmult_SCALARBYTES] = {\n    0x85, 0x20, 0xf0, 0x09, 0x89, 0x30, 0xa7, 0x54, 0x74, 0x8b, 0x7d,\n    0xdc, 0xb4, 0x3e, 0xf7, 0x5a, 0x0d, 0xbf, 0x3a, 0x0d, 0x26, 0x38,\n    0x1a, 0xf4, 0xeb, 0xa4, 0xa9, 0x8e, 0xaa, 0x9b, 0x4e, 0x6a\n};\n\nint\nmain(void)\n{\n    unsigned char *k;\n    unsigned char *bobsk;\n    unsigned char *alicepk;\n    int            i;\n    int            ret;\n\n    k       = (unsigned char *) sodium_malloc(crypto_scalarmult_BYTES);\n    bobsk   = (unsigned char *) sodium_malloc(crypto_scalarmult_SCALARBYTES);\n    alicepk = (unsigned char *) sodium_malloc(crypto_scalarmult_SCALARBYTES);\n    assert(k != NULL && bobsk != NULL && alicepk != NULL);\n\n    memcpy(bobsk, bobsk_, crypto_scalarmult_SCALARBYTES);\n    memcpy(alicepk, alicepk_, crypto_scalarmult_SCALARBYTES);\n\n    ret = crypto_scalarmult(k, bobsk, alicepk);\n    assert(ret == 0);\n\n    sodium_free(alicepk);\n    sodium_free(bobsk);\n\n    for (i = 0; i < 32; ++i) {\n        if (i > 0) {\n            printf(\",\");\n        } else {\n            printf(\" \");\n        }\n        printf(\"0x%02x\", (unsigned int) k[i]);\n        if (i % 8 == 7) {\n            printf(\"\\n\");\n        }\n    }\n    sodium_free(k);\n\n    return 0;\n}\n"
  },
  {
    "path": "test/default/scalarmult6.exp",
    "content": " 0x4a,0x5d,0x9d,0x5b,0xa4,0xce,0x2d,0xe1\n,0x72,0x8e,0x3b,0xf4,0x80,0x35,0x0f,0x25\n,0xe0,0x7e,0x21,0xc9,0x47,0xd1,0x9e,0x33\n,0x76,0xf0,0x9b,0x3c,0x1e,0x16,0x17,0x42\n"
  },
  {
    "path": "test/default/scalarmult7.c",
    "content": "\n#define TEST_NAME \"scalarmult7\"\n#include \"cmptest.h\"\n\nstatic unsigned char p1[32] = {\n    0x72, 0x20, 0xf0, 0x09, 0x89, 0x30, 0xa7, 0x54, 0x74, 0x8b, 0x7d,\n    0xdc, 0xb4, 0x3e, 0xf7, 0x5a, 0x0d, 0xbf, 0x3a, 0x0d, 0x26, 0x38,\n    0x1a, 0xf4, 0xeb, 0xa4, 0xa9, 0x8e, 0xaa, 0x9b, 0x4e, 0xea\n};\n\nstatic unsigned char p2[32] = {\n    0x85, 0x20, 0xf0, 0x09, 0x89, 0x30, 0xa7, 0x54, 0x74, 0x8b, 0x7d,\n    0xdc, 0xb4, 0x3e, 0xf7, 0x5a, 0x0d, 0xbf, 0x3a, 0x0d, 0x26, 0x38,\n    0x1a, 0xf4, 0xeb, 0xa4, 0xa9, 0x8e, 0xaa, 0x9b, 0x4e, 0x6a\n};\n\nstatic unsigned char scalar[32];\nstatic unsigned char out1[32];\nstatic unsigned char out2[32];\n\nint\nmain(void)\n{\n    int ret;\n\n    scalar[0] = 1U;\n    ret       = crypto_scalarmult_curve25519(out1, scalar, p1);\n    assert(ret == 0);\n    ret = crypto_scalarmult_curve25519(out2, scalar, p2);\n    assert(ret == 0);\n    printf(\"%d\\n\", !!memcmp(out1, out2, 32));\n\n    return 0;\n}\n"
  },
  {
    "path": "test/default/scalarmult7.exp",
    "content": "1\n"
  },
  {
    "path": "test/default/scalarmult8.c",
    "content": "\n#define TEST_NAME \"scalarmult8\"\n#include \"cmptest.h\"\n\ntypedef struct TestData_ {\n    const char  pk_hex[crypto_scalarmult_BYTES * 2 + 1];\n    const char  sk_hex[crypto_scalarmult_SCALARBYTES * 2 + 1];\n    const char  shared_hex[crypto_scalarmult_BYTES * 2 + 1];\n    const char *outcome;\n} TestData;\n\nstatic TestData test_data[] = {\n    {\n        \"9c647d9ae589b9f58fdc3ca4947efbc915c4b2e08e744a0edf469dac59c8f85a\",\n        \"4852834d9d6b77dadeabaaf2e11dca66d19fe74993a7bec36c6e16a0983feaba\",\n        \"87b7f212b627f7a54ca5e0bcdaddd5389d9de6156cdbcf8ebe14ffbcfb436551\",\n        \"valid\"\n    },\n    {\n        \"9c647d9ae589b9f58fdc3ca4947efbc915c4b2e08e744a0edf469dac59c8f85a\",\n        \"1064a67da639a8f6df4fbea2d63358b65bca80a770712e14ea8a72df5a3313ae\",\n        \"4b82bd8650ea9b81a42181840926a4ffa16434d1bf298de1db87efb5b0a9e34e\",\n        \"valid\"\n    },\n    {\n        \"63aa40c6e38346c5caf23a6df0a5e6c80889a08647e551b3563449befcfc9733\",\n        \"588c061a50804ac488ad774ac716c3f5ba714b2712e048491379a500211998a8\",\n        \"b1a707519495ffffb298ff941716b06dfab87cf8d91123fe2be9a233dda22212\",\n        \"acceptable\"\n    },\n    {\n        \"0f83c36fded9d32fadf4efa3ae93a90bb5cfa66893bc412c43fa7287dbb99779\",\n        \"b05bfd32e55325d9fd648cb302848039000b390e44d521e58aab3b29a6960ba8\",\n        \"67dd4a6e165533534c0e3f172e4ab8576bca923a5f07b2c069b4c310ff2e935b\",\n        \"acceptable\"\n    },\n    {\n        \"0b8211a2b6049097f6871c6c052d3c5fc1ba17da9e32ae458403b05bb283092a\",\n        \"70e34bcbe1f47fbc0fddfd7c1e1aa53d57bfe0f66d243067b424bb6210bed19c\",\n        \"4a0638cfaa9ef1933b47f8939296a6b25be541ef7f70e844c0bcc00b134de64a\",\n        \"acceptable\"\n    },\n    {\n        \"343ac20a3b9c6a27b1008176509ad30735856ec1c8d8fcae13912d08d152f46c\",\n        \"68c1f3a653a4cdb1d37bba94738f8b957a57beb24d646e994dc29a276aad458d\",\n        \"399491fce8dfab73b4f9f611de8ea0b27b28f85994250b0f475d585d042ac207\",\n        \"acceptable\"\n    },\n    {\n        \"fa695fc7be8d1be5bf704898f388c452bafdd3b8eae805f8681a8d15c2d4e142\",\n        \"d877b26d06dff9d9f7fd4c5b3769f8cdd5b30516a5ab806be324ff3eb69ea0b2\",\n        \"2c4fe11d490a53861776b13b4354abd4cf5a97699db6e6c68c1626d07662f758\",\n        \"acceptable\"\n    },\n    {\n        \"0000000000000000000000000000000000000000000000000000000000000000\",\n        \"207494038f2bb811d47805bcdf04a2ac585ada7f2f23389bfd4658f9ddd4debc\",\n        \"0000000000000000000000000000000000000000000000000000000000000000\",\n        \"acceptable\"\n    },\n    {\n        \"0100000000000000000000000000000000000000000000000000000000000000\",\n        \"202e8972b61c7e61930eb9450b5070eae1c670475685541f0476217e4818cfab\",\n        \"0000000000000000000000000000000000000000000000000000000000000000\",\n        \"acceptable\"\n    },\n    {\n        \"0200000000000000000000000000000000000000000000000000000000000000\",\n        \"38dde9f3e7b799045f9ac3793d4a9277dadeadc41bec0290f81f744f73775f84\",\n        \"9a2cfe84ff9c4a9739625cae4a3b82a906877a441946f8d7b3d795fe8f5d1639\",\n        \"acceptable\"\n    },\n    {\n        \"0300000000000000000000000000000000000000000000000000000000000000\",\n        \"9857a914e3c29036fd9a442ba526b5cdcdf28216153e636c10677acab6bd6aa5\",\n        \"4da4e0aa072c232ee2f0fa4e519ae50b52c1edd08a534d4ef346c2e106d21d60\",\n        \"acceptable\"\n    },\n    {\n        \"ffffff030000f8ffff1f0000c0ffffff000000feffff070000f0ffff3f000000\",\n        \"48e2130d723305ed05e6e5894d398a5e33367a8c6aac8fcdf0a88e4b42820db7\",\n        \"9ed10c53747f647f82f45125d3de15a1e6b824496ab40410ffcc3cfe95760f3b\",\n        \"acceptable\"\n    },\n    {\n        \"000000fcffff070000e0ffff3f000000ffffff010000f8ffff0f0000c0ffff7f\",\n        \"28f41011691851b3a62b641553b30d0dfddcb8fffcf53700a7be2f6a872e9fb0\",\n        \"cf72b4aa6aa1c9f894f4165b86109aa468517648e1f0cc70e1ab08460176506b\",\n        \"acceptable\"\n    },\n    {\n        \"00000000ffffffff00000000ffffffff00000000ffffffff00000000ffffff7f\",\n        \"18a93b6499b9f6b3225ca02fef410e0adec23532321d2d8ef1a6d602a8c65b83\",\n        \"5d50b62836bb69579410386cf7bb811c14bf85b1c7b17e5924c7ffea91ef9e12\",\n        \"acceptable\"\n    },\n    {\n        \"eaffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f\",\n        \"c01d1305a1338a1fcac2ba7e2e032b427e0b04903165aca957d8d0553d8717b0\",\n        \"19230eb148d5d67c3c22ab1daeff80a57eae4265ce2872657b2c8099fc698e50\",\n        \"acceptable\"\n    },\n    {\n        \"0400000000000000000000000000000000000000000000000000000000000000\",\n        \"386f7f16c50731d64f82e6a170b142a4e34f31fd7768fcb8902925e7d1e21abe\",\n        \"0fcab5d842a078d7a71fc59b57bfb4ca0be6873b49dcdb9f44e14ae8fbdfa542\",\n        \"valid\"\n    },\n    {\n        \"ffffffff00000000ffffffff00000000ffffffff00000000ffffffff00000000\",\n        \"e023a289bd5e90fa2804ddc019a05ef3e79d434bb6ea2f522ecb643a75296e95\",\n        \"54ce8f2275c077e3b1306a3939c5e03eef6bbb88060544758d9fef59b0bc3e4f\",\n        \"valid\"\n    },\n    {\n        \"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03\",\n        \"68f010d62ee8d926053a361c3a75c6ea4ebdc8606ab285003a6f8f4076b01e83\",\n        \"f136775c5beb0af8110af10b20372332043cab752419678775a223df57c9d30d\",\n        \"valid\"\n    },\n    {\n        \"fffffffbfffffbffffdfffffdffffffffefffffefffff7fffff7ffffbfffff3f\",\n        \"58ebcb35b0f8845caf1ec630f96576b62c4b7b6c36b29deb2cb0084651755c96\",\n        \"bf9affd06b844085586460962ef2146ff3d4533d9444aab006eb88cc3054407d\",\n        \"valid\"\n    },\n    {\n        \"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff3f\",\n        \"188c4bc5b9c44b38bb658b9b2ae82d5b01015e093184b17cb7863503a783e1bb\",\n        \"d480de04f699cb3be0684a9cc2e31281ea0bc5a9dcc157d3d20158d46ca5246d\",\n        \"valid\"\n    },\n    {\n        \"fffffffffeffff7ffffffffffeffff7ffffffffffeffff7ffffffffffeffff7f\",\n        \"e06c11bb2e13ce3dc7673f67f5482242909423a9ae95ee986a988d98faee23a2\",\n        \"4c4401cce6b51e4cb18f2790246c9bf914db667750a1cb89069092af07292276\",\n        \"valid\"\n    },\n    {\n        \"ebffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f\",\n        \"c0658c46dde18129293877535b1162b6f9f5414a23cf4d2cbc140a4d99da2b8f\",\n        \"578ba8cc2dbdc575afcf9df2b3ee6189f5337d6854c79b4ce165ea12293b3a0f\",\n        \"valid\"\n    },\n    {\n        \"e0eb7a7c3b41b8ae1656e3faf19fc46ada098deb9c32b1fd866205165f49b800\",\n        \"10255c9230a97a30a458ca284a629669293a31890cda9d147febc7d1e22d6bb1\",\n        \"0000000000000000000000000000000000000000000000000000000000000000\",\n        \"acceptable\"\n    },\n    {\n        \"5f9c95bca3508c24b1d0b1559c83ef5b04445cc4581c8e86d8224eddd09f1157\",\n        \"78f1e8edf14481b389448dac8f59c70b038e7cf92ef2c7eff57a72466e115296\",\n        \"0000000000000000000000000000000000000000000000000000000000000000\",\n        \"acceptable\"\n    },\n    {\n        \"ecffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f\",\n        \"a0a05a3e8f9f44204d5f8059a94ac7dfc39a49ac016dd743dbfa43c5d671fd88\",\n        \"0000000000000000000000000000000000000000000000000000000000000000\",\n        \"acceptable\"\n    },\n    {\n        \"edffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f\",\n        \"d0dbb3ed1906663f15420af31f4eaf6509d9a9949723500605ad7c1c6e7450a9\",\n        \"0000000000000000000000000000000000000000000000000000000000000000\",\n        \"acceptable\"\n    },\n    {\n        \"eeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f\",\n        \"c0b1d0eb22b244fe3291140072cdd9d989b5f0ecd96c100feb5bca241c1d9f8f\",\n        \"0000000000000000000000000000000000000000000000000000000000000000\",\n        \"acceptable\"\n    },\n    {\n        \"0000000000000000000000000000000000000000000000000000000000000080\",\n        \"480bf45f594942a8bc0f3353c6e8b8853d77f351f1c2ca6c2d1abf8a00b4229c\",\n        \"0000000000000000000000000000000000000000000000000000000000000000\",\n        \"acceptable\"\n    },\n    {\n        \"0100000000000000000000000000000000000000000000000000000000000080\",\n        \"30f993fcf8514fc89bd8db14cd43ba0d4b2530e73c4276a05e1b145d420cedb4\",\n        \"0000000000000000000000000000000000000000000000000000000000000000\",\n        \"acceptable\"\n    },\n    {\n        \"e0eb7a7c3b41b8ae1656e3faf19fc46ada098deb9c32b1fd866205165f49b880\",\n        \"c04974b758380e2a5b5df6eb09bb2f6b3434f982722a8e676d3da251d1b3de83\",\n        \"0000000000000000000000000000000000000000000000000000000000000000\",\n        \"acceptable\"\n    },\n    {\n        \"5f9c95bca3508c24b1d0b1559c83ef5b04445cc4581c8e86d8224eddd09f11d7\",\n        \"502a31373db32446842fe5add3e024022ea54f274182afc3d9f1bb3d39534eb5\",\n        \"0000000000000000000000000000000000000000000000000000000000000000\",\n        \"acceptable\"\n    },\n    {\n        \"ecffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\",\n        \"90fa6417b0e37030fd6e43eff2abaef14c6793117a039cf621318ba90f4e98be\",\n        \"0000000000000000000000000000000000000000000000000000000000000000\",\n        \"acceptable\"\n    },\n    {\n        \"edffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\",\n        \"78ad3f26027f1c9fdd975a1613b947779bad2cf2b741ade01840885a30bb979c\",\n        \"0000000000000000000000000000000000000000000000000000000000000000\",\n        \"acceptable\"\n    },\n    {\n        \"eeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\",\n        \"98e23de7b1e0926ed9c87e7b14baf55f497a1d7096f93977680e44dc1c7b7b8b\",\n        \"0000000000000000000000000000000000000000000000000000000000000000\",\n        \"acceptable\"\n    },\n    {\n        \"0000000000000000000000000000000000000000000000000000000000000000\",\n        \"1064a67da639a8f6df4fbea2d63358b65bca80a770712e14ea8a72df5a3313ae\",\n        \"0000000000000000000000000000000000000000000000000000000000000000\",\n        \"acceptable\"\n    },\n    {\n        \"0100000000000000000000000000000000000000000000000000000000000000\",\n        \"1064a67da639a8f6df4fbea2d63358b65bca80a770712e14ea8a72df5a3313ae\",\n        \"0000000000000000000000000000000000000000000000000000000000000000\",\n        \"acceptable\"\n    },\n    {\n        \"ecffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f\",\n        \"1064a67da639a8f6df4fbea2d63358b65bca80a770712e14ea8a72df5a3313ae\",\n        \"0000000000000000000000000000000000000000000000000000000000000000\",\n        \"acceptable\"\n    },\n    {\n        \"5f9c95bca3508c24b1d0b1559c83ef5b04445cc4581c8e86d8224eddd09f1157\",\n        \"1064a67da639a8f6df4fbea2d63358b65bca80a770712e14ea8a72df5a3313ae\",\n        \"0000000000000000000000000000000000000000000000000000000000000000\",\n        \"acceptable\"\n    },\n    {\n        \"e0eb7a7c3b41b8ae1656e3faf19fc46ada098deb9c32b1fd866205165f49b800\",\n        \"1064a67da639a8f6df4fbea2d63358b65bca80a770712e14ea8a72df5a3313ae\",\n        \"0000000000000000000000000000000000000000000000000000000000000000\",\n        \"acceptable\"\n    },\n    {\n        \"edffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f\",\n        \"1064a67da639a8f6df4fbea2d63358b65bca80a770712e14ea8a72df5a3313ae\",\n        \"0000000000000000000000000000000000000000000000000000000000000000\",\n        \"acceptable\"\n    },\n    {\n        \"eeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f\",\n        \"1064a67da639a8f6df4fbea2d63358b65bca80a770712e14ea8a72df5a3313ae\",\n        \"0000000000000000000000000000000000000000000000000000000000000000\",\n        \"acceptable\"\n    },\n    {\n        \"0000000000000000000000000000000000000000000000000000000000000080\",\n        \"1064a67da639a8f6df4fbea2d63358b65bca80a770712e14ea8a72df5a3313ae\",\n        \"0000000000000000000000000000000000000000000000000000000000000000\",\n        \"acceptable\"\n    },\n    {\n        \"0100000000000000000000000000000000000000000000000000000000000080\",\n        \"1064a67da639a8f6df4fbea2d63358b65bca80a770712e14ea8a72df5a3313ae\",\n        \"0000000000000000000000000000000000000000000000000000000000000000\",\n        \"acceptable\"\n    },\n    {\n        \"ecffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\",\n        \"1064a67da639a8f6df4fbea2d63358b65bca80a770712e14ea8a72df5a3313ae\",\n        \"0000000000000000000000000000000000000000000000000000000000000000\",\n        \"acceptable\"\n    },\n    {\n        \"5f9c95bca3508c24b1d0b1559c83ef5b04445cc4581c8e86d8224eddd09f11d7\",\n        \"1064a67da639a8f6df4fbea2d63358b65bca80a770712e14ea8a72df5a3313ae\",\n        \"0000000000000000000000000000000000000000000000000000000000000000\",\n        \"acceptable\"\n    },\n    {\n        \"e0eb7a7c3b41b8ae1656e3faf19fc46ada098deb9c32b1fd866205165f49b880\",\n        \"1064a67da639a8f6df4fbea2d63358b65bca80a770712e14ea8a72df5a3313ae\",\n        \"0000000000000000000000000000000000000000000000000000000000000000\",\n        \"acceptable\"\n    },\n    {\n        \"edffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\",\n        \"1064a67da639a8f6df4fbea2d63358b65bca80a770712e14ea8a72df5a3313ae\",\n        \"0000000000000000000000000000000000000000000000000000000000000000\",\n        \"acceptable\"\n    },\n    {\n        \"eeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\",\n        \"1064a67da639a8f6df4fbea2d63358b65bca80a770712e14ea8a72df5a3313ae\",\n        \"0000000000000000000000000000000000000000000000000000000000000000\",\n        \"acceptable\"\n    },\n    {\n        \"efffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f\",\n        \"f01e48dafac9d7bcf589cbc382c878d18bda3550589ffb5d50b523bebe329dae\",\n        \"bd36a0790eb883098c988b21786773de0b3a4df162282cf110de18dd484ce74b\",\n        \"acceptable\"\n    },\n    {\n        \"f0ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f\",\n        \"288796bc5aff4b81a37501757bc0753a3c21964790d38699308debc17a6eaf8d\",\n        \"b4e0dd76da7b071728b61f856771aa356e57eda78a5b1655cc3820fb5f854c5c\",\n        \"acceptable\"\n    },\n    {\n        \"f1ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f\",\n        \"98df845f6651bf1138221f119041f72b6dbc3c4ace7143d99fd55ad867480da8\",\n        \"6fdf6c37611dbd5304dc0f2eb7c9517eb3c50e12fd050ac6dec27071d4bfc034\",\n        \"acceptable\"\n    },\n    {\n        \"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f\",\n        \"f09498e46f02f878829e78b803d316a2ed695d0498a08abdf8276930e24edcb0\",\n        \"4c8fc4b1c6ab88fb21f18f6d4c810240d4e94651ba44f7a2c863cec7dc56602d\",\n        \"acceptable\"\n    },\n    {\n        \"0200000000000000000000000000000000000000000000000000000000000080\",\n        \"1813c10a5c7f21f96e17f288c0cc37607c04c5f5aea2db134f9e2ffc66bd9db8\",\n        \"1cd0b28267dc541c642d6d7dca44a8b38a63736eef5c4e6501ffbbb1780c033c\",\n        \"acceptable\"\n    },\n    {\n        \"0300000000000000000000000000000000000000000000000000000000000080\",\n        \"7857fb808653645a0beb138a64f5f4d733a45ea84c3cda11a9c06f7e7139149e\",\n        \"8755be01c60a7e825cff3e0e78cb3aa4333861516aa59b1c51a8b2a543dfa822\",\n        \"acceptable\"\n    },\n    {\n        \"0400000000000000000000000000000000000000000000000000000000000080\",\n        \"e03aa842e2abc56e81e87b8b9f417b2a1e5913c723eed28d752f8d47a59f498f\",\n        \"54c9a1ed95e546d27822a360931dda60a1df049da6f904253c0612bbdc087476\",\n        \"acceptable\"\n    },\n    {\n        \"daffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\",\n        \"f8f707b7999b18cb0d6b96124f2045972ca274bfc154ad0c87038c24c6d0d4b2\",\n        \"cc1f40d743cdc2230e1043daba8b75e810f1fbab7f255269bd9ebb29e6bf494f\",\n        \"acceptable\"\n    },\n    {\n        \"dbffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\",\n        \"a034f684fa631e1a348118c1ce4c98231f2d9eec9ba5365b4a05d69a785b0796\",\n        \"54998ee43a5b007bf499f078e736524400a8b5c7e9b9b43771748c7cdf880412\",\n        \"acceptable\"\n    },\n    {\n        \"dcffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\",\n        \"30b6c6a0f2ffa680768f992ba89e152d5bc9893d38c9119be4f767bfab6e0ca5\",\n        \"ead9b38efdd723637934e55ab717a7ae09eb86a21dc36a3feeb88b759e391e09\",\n        \"acceptable\"\n    },\n    {\n        \"eaffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\",\n        \"901b9dcf881e01e027575035d40b43bdc1c5242e030847495b0c7286469b6591\",\n        \"602ff40789b54b41805915fe2a6221f07a50ffc2c3fc94cf61f13d7904e88e0e\",\n        \"acceptable\"\n    },\n    {\n        \"ebffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\",\n        \"8046677c28fd82c9a1bdb71a1a1a34faba1225e2507fe3f54d10bd5b0d865f8e\",\n        \"e00ae8b143471247ba24f12c885536c3cb981b58e1e56b2baf35c12ae1f79c26\",\n        \"acceptable\"\n    },\n    {\n        \"efffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\",\n        \"602f7e2f68a846b82cc269b1d48e939886ae54fd636c1fe074d710127d472491\",\n        \"98cb9b50dd3fc2b0d4f2d2bf7c5cfdd10c8fcd31fc40af1ad44f47c131376362\",\n        \"acceptable\"\n    },\n    {\n        \"f0ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\",\n        \"60887b3dc72443026ebedbbbb70665f42b87add1440e7768fbd7e8e2ce5f639d\",\n        \"38d6304c4a7e6d9f7959334fb5245bd2c754525d4c91db950206926234c1f633\",\n        \"acceptable\"\n    },\n    {\n        \"f1ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\",\n        \"78d31dfa854497d72d8def8a1b7fb006cec2d8c4924647c93814ae56faeda495\",\n        \"786cd54996f014a5a031ec14db812ed08355061fdb5de680a800ac521f318e23\",\n        \"acceptable\"\n    },\n    {\n        \"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\",\n        \"c04c5baefa8302ddded6a4bb957761b4eb97aefa4fc3b8043085f96a5659b3a5\",\n        \"29ae8bc73e9b10a08b4f681c43c3e0ac1a171d31b38f1a48efba29ae639ea134\",\n        \"acceptable\"\n    },\n    {\n        \"e6db6867583030db3594c1a424b15f7c726624ec26b3353b10a903a6d0ab1c4c\",\n        \"a046e36bf0527c9d3b16154b82465edd62144c0ac1fc5a18506a2244ba449a44\",\n        \"c3da55379de9c6908e94ea4df28d084f32eccf03491c71f754b4075577a28552\",\n        \"valid\"\n    },\n    {\n        \"e5210f12786811d3f4b7959d0538ae2c31dbe7106fc03c3efc4cd549c715a413\",\n        \"4866e9d4d1b4673c5ad22691957d6af5c11b6421e0ea01d42ca4169e7918ba4d\",\n        \"95cbde9476e8907d7aade45cb4b873f88b595a68799fa152e6f8f7647aac7957\",\n        \"valid\"\n    },\n    {\n        \"0ab4e76380d84dde4f6833c58f2a9fb8f83bb0169b172be4b6e0592887741a36\",\n        \"a0a4f130b98a5be4b1cedb7cb85584a3520e142d474dc9ccb909a073a976bf63\",\n        \"0200000000000000000000000000000000000000000000000000000000000000\",\n        \"acceptable\"\n    },\n    {\n        \"89e10d5701b4337d2d032181538b1064bd4084401ceca1fd12663a1959388000\",\n        \"a0a4f130b98a5be4b1cedb7cb85584a3520e142d474dc9ccb909a073a976bf63\",\n        \"0900000000000000000000000000000000000000000000000000000000000000\",\n        \"valid\"\n    },\n    {\n        \"2b55d3aa4a8f80c8c0b2ae5f933e85af49beac36c2fa7394bab76c8933f8f81d\",\n        \"a0a4f130b98a5be4b1cedb7cb85584a3520e142d474dc9ccb909a073a976bf63\",\n        \"1000000000000000000000000000000000000000000000000000000000000000\",\n        \"valid\"\n    },\n    {\n        \"63e5b1fe9601fe84385d8866b0421262f78fbfa5aff9585e626679b18547d959\",\n        \"a0a4f130b98a5be4b1cedb7cb85584a3520e142d474dc9ccb909a073a976bf63\",\n        \"feffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff3f\",\n        \"acceptable\"\n    },\n    {\n        \"e428f3dac17809f827a522ce32355058d07369364aa78902ee10139b9f9dd653\",\n        \"a0a4f130b98a5be4b1cedb7cb85584a3520e142d474dc9ccb909a073a976bf63\",\n        \"fcffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff3f\",\n        \"valid\"\n    },\n    {\n        \"b3b50e3ed3a407b95de942ef74575b5ab8a10c09ee103544d60bdfed8138ab2b\",\n        \"a0a4f130b98a5be4b1cedb7cb85584a3520e142d474dc9ccb909a073a976bf63\",\n        \"f9ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff3f\",\n        \"acceptable\"\n    },\n    {\n        \"213fffe93d5ea8cd242e462844029922c43c77c9e3e42f562f485d24c501a20b\",\n        \"a0a4f130b98a5be4b1cedb7cb85584a3520e142d474dc9ccb909a073a976bf63\",\n        \"f3ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff3f\",\n        \"valid\"\n    },\n    {\n        \"91b232a178b3cd530932441e6139418f72172292f1da4c1834fc5ebfefb51e3f\",\n        \"a0a4f130b98a5be4b1cedb7cb85584a3520e142d474dc9ccb909a073a976bf63\",\n        \"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03\",\n        \"valid\"\n    },\n    {\n        \"045c6e11c5d332556c7822fe94ebf89b56a3878dc27ca079103058849fabcb4f\",\n        \"a0a4f130b98a5be4b1cedb7cb85584a3520e142d474dc9ccb909a073a976bf63\",\n        \"e5ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f\",\n        \"acceptable\"\n    },\n    {\n        \"1ca2190b71163539063c35773bda0c9c928e9136f0620aeb093f099197b7f74e\",\n        \"a0a4f130b98a5be4b1cedb7cb85584a3520e142d474dc9ccb909a073a976bf63\",\n        \"e3ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f\",\n        \"acceptable\"\n    },\n    {\n        \"f76e9010ac33c5043b2d3b76a842171000c4916222e9e85897a0aec7f6350b3c\",\n        \"a0a4f130b98a5be4b1cedb7cb85584a3520e142d474dc9ccb909a073a976bf63\",\n        \"ddffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f\",\n        \"valid\"\n    },\n    {\n        \"bb72688d8f8aa7a39cd6060cd5c8093cdec6fe341937c3886a99346cd07faa55\",\n        \"a0a4f130b98a5be4b1cedb7cb85584a3520e142d474dc9ccb909a073a976bf63\",\n        \"dbffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f\",\n        \"acceptable\"\n    },\n    {\n        \"88fddea193391c6a5933ef9b71901549447205aae9da928a6b91a352ba10f41f\",\n        \"a0a4f130b98a5be4b1cedb7cb85584a3520e142d474dc9ccb909a073a976bf63\",\n        \"0000000000000000000000000000000000000000000000000000000000000002\",\n        \"acceptable\"\n    },\n    {\n        \"303b392f153116cad9cc682a00ccc44c95ff0d3bbe568beb6c4e739bafdc2c68\",\n        \"a0a4f130b98a5be4b1cedb7cb85584a3520e142d474dc9ccb909a073a976bf63\",\n        \"0000000000000000000000000000000000000000000000000000000000008000\",\n        \"acceptable\"\n    },\n    {\n        \"fd300aeb40e1fa582518412b49b208a7842b1e1f056a040178ea4141534f652d\",\n        \"c81724704000b26d31703cc97e3a378d56fad8219361c88cca8bd7c5719b12b2\",\n        \"b734105dc257585d73b566ccb76f062795ccbec89128e52b02f3e59639f13c46\",\n        \"valid\"\n    },\n    {\n        \"c8ef79b514d7682677bc7931e06ee5c27c9b392b4ae9484473f554e6678ecc2e\",\n        \"c81724704000b26d31703cc97e3a378d56fad8219361c88cca8bd7c5719b12b2\",\n        \"647a46b6fc3f40d62141ee3cee706b4d7a9271593a7b143e8e2e2279883e4550\",\n        \"valid\"\n    },\n    {\n        \"64aeac2504144861532b7bbcb6c87d67dd4c1f07ebc2e06effb95aecc6170b2c\",\n        \"c81724704000b26d31703cc97e3a378d56fad8219361c88cca8bd7c5719b12b2\",\n        \"4ff03d5fb43cd8657a3cf37c138cadcecce509e4eba089d0ef40b4e4fb946155\",\n        \"valid\"\n    },\n    {\n        \"bf68e35e9bdb7eee1b50570221860f5dcdad8acbab031b14974cc49013c49831\",\n        \"c81724704000b26d31703cc97e3a378d56fad8219361c88cca8bd7c5719b12b2\",\n        \"21cee52efdbc812e1d021a4af1e1d8bc4db3c400e4d2a2c56a3926db4d99c65b\",\n        \"valid\"\n    },\n    {\n        \"5347c491331a64b43ddc683034e677f53dc32b52a52a577c15a83bf298e99f19\",\n        \"c81724704000b26d31703cc97e3a378d56fad8219361c88cca8bd7c5719b12b2\",\n        \"18cb89e4e20c0c2bd324305245266c9327690bbe79acb88f5b8fb3f74eca3e52\",\n        \"valid\"\n    },\n    {\n        \"258e04523b8d253ee65719fc6906c657192d80717edc828fa0af21686e2faa75\",\n        \"a023cdd083ef5bb82f10d62e59e15a6800000000000000000000000000000050\",\n        \"258e04523b8d253ee65719fc6906c657192d80717edc828fa0af21686e2faa75\",\n        \"valid\"\n    },\n    {\n        \"2eae5ec3dd494e9f2d37d258f873a8e6e9d0dbd1e383ef64d98bb91b3e0be035\",\n        \"58083dd261ad91eff952322ec824c682ffffffffffffffffffffffffffffff5f\",\n        \"2eae5ec3dd494e9f2d37d258f873a8e6e9d0dbd1e383ef64d98bb91b3e0be035\",\n        \"acceptable\"\n    }\n};\n\nint\nmain(void)\n{\n    unsigned char sk[crypto_scalarmult_SCALARBYTES];\n    unsigned char pk[crypto_scalarmult_BYTES];\n    unsigned char shared[crypto_scalarmult_BYTES];\n    unsigned char shared2[crypto_scalarmult_BYTES];\n    unsigned int  i;\n    int           res;\n\n    for (i = 0U; i < (sizeof test_data) / (sizeof test_data[0]); i++) {\n        sodium_hex2bin(sk, crypto_scalarmult_SCALARBYTES, test_data[i].sk_hex,\n                       crypto_scalarmult_SCALARBYTES * 2, NULL, NULL, NULL);\n        sodium_hex2bin(pk, crypto_scalarmult_BYTES, test_data[i].pk_hex,\n                       crypto_scalarmult_BYTES * 2, NULL, NULL, NULL);\n        sodium_hex2bin(shared, crypto_scalarmult_BYTES, test_data[i].shared_hex,\n                       crypto_scalarmult_BYTES * 2, NULL, NULL, NULL);\n        randombytes_buf(shared2, crypto_scalarmult_BYTES);\n        res = crypto_scalarmult(shared2, sk, pk);\n        if (res == 0) {\n            if (strcmp(test_data[i].outcome, \"acceptable\") == 0) {\n                printf(\"test case %u succeeded (%s)\\n\", i,\n                       test_data[i].outcome);\n            } else if (strcmp(test_data[i].outcome, \"valid\") != 0) {\n                printf(\"*** test case %u succeeded, was supposed to be %s\\n\", i,\n                       test_data[i].outcome);\n            }\n            if (memcmp(shared, shared2, crypto_scalarmult_BYTES) != 0) {\n                printf(\"*** test case %u succeeded, but shared key is not %s\\n\",\n                       i, test_data[i].outcome);\n            }\n        } else {\n            if (strcmp(test_data[i].outcome, \"acceptable\") == 0) {\n                printf(\"test case %u failed (%s)\\n\", i, test_data[i].outcome);\n            } else if (strcmp(test_data[i].outcome, \"valid\") == 0) {\n                printf(\"*** test case %u failed, was supposed to be %s\\n\", i,\n                       test_data[i].outcome);\n            }\n        }\n    }\n    printf(\"OK\\n\");\n\n    return 0;\n}\n"
  },
  {
    "path": "test/default/scalarmult8.exp",
    "content": "test case 2 succeeded (acceptable)\ntest case 3 succeeded (acceptable)\ntest case 4 succeeded (acceptable)\ntest case 5 succeeded (acceptable)\ntest case 6 succeeded (acceptable)\ntest case 7 failed (acceptable)\ntest case 8 failed (acceptable)\ntest case 9 succeeded (acceptable)\ntest case 10 succeeded (acceptable)\ntest case 11 succeeded (acceptable)\ntest case 12 succeeded (acceptable)\ntest case 13 succeeded (acceptable)\ntest case 14 succeeded (acceptable)\ntest case 22 failed (acceptable)\ntest case 23 failed (acceptable)\ntest case 24 failed (acceptable)\ntest case 25 failed (acceptable)\ntest case 26 failed (acceptable)\ntest case 27 failed (acceptable)\ntest case 28 failed (acceptable)\ntest case 29 failed (acceptable)\ntest case 30 failed (acceptable)\ntest case 31 failed (acceptable)\ntest case 32 failed (acceptable)\ntest case 33 failed (acceptable)\ntest case 34 failed (acceptable)\ntest case 35 failed (acceptable)\ntest case 36 failed (acceptable)\ntest case 37 failed (acceptable)\ntest case 38 failed (acceptable)\ntest case 39 failed (acceptable)\ntest case 40 failed (acceptable)\ntest case 41 failed (acceptable)\ntest case 42 failed (acceptable)\ntest case 43 failed (acceptable)\ntest case 44 failed (acceptable)\ntest case 45 failed (acceptable)\ntest case 46 failed (acceptable)\ntest case 47 failed (acceptable)\ntest case 48 succeeded (acceptable)\ntest case 49 succeeded (acceptable)\ntest case 50 succeeded (acceptable)\ntest case 51 succeeded (acceptable)\ntest case 52 succeeded (acceptable)\ntest case 53 succeeded (acceptable)\ntest case 54 succeeded (acceptable)\ntest case 55 succeeded (acceptable)\ntest case 56 succeeded (acceptable)\ntest case 57 succeeded (acceptable)\ntest case 58 succeeded (acceptable)\ntest case 59 succeeded (acceptable)\ntest case 60 succeeded (acceptable)\ntest case 61 succeeded (acceptable)\ntest case 62 succeeded (acceptable)\ntest case 63 succeeded (acceptable)\ntest case 66 succeeded (acceptable)\ntest case 69 succeeded (acceptable)\ntest case 71 succeeded (acceptable)\ntest case 74 succeeded (acceptable)\ntest case 75 succeeded (acceptable)\ntest case 77 succeeded (acceptable)\ntest case 78 succeeded (acceptable)\ntest case 79 succeeded (acceptable)\ntest case 86 succeeded (acceptable)\nOK\n"
  },
  {
    "path": "test/default/scalarmult_ed25519.c",
    "content": "#define TEST_NAME \"scalarmult_ed25519\"\n#include \"cmptest.h\"\n\nstatic const unsigned char non_canonical_p[32] = {\n    0xf6, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,\n    0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f\n};\nstatic const unsigned char non_canonical_invalid_p[32] = {\n    0xf5, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,\n    0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f\n};\nstatic const unsigned char max_canonical_p[32] = {\n    0xe4, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,\n    0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f\n};\nstatic const unsigned char not_main_subgroup_p[32] = {\n    0x95, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99,\n    0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99\n};\n\nstatic const unsigned char B[32] = {\n    0x58, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66,\n    0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66\n};\n\nint\nmain(void)\n{\n    unsigned char *n, *p, *q, *q2;\n\n    n = (unsigned char *) sodium_malloc(crypto_scalarmult_ed25519_SCALARBYTES);\n    p = (unsigned char *) sodium_malloc(crypto_scalarmult_ed25519_BYTES);\n    q = (unsigned char *) sodium_malloc(crypto_scalarmult_ed25519_BYTES);\n    q2 = (unsigned char *) sodium_malloc(crypto_scalarmult_ed25519_BYTES);\n\n    randombytes_buf(n, crypto_scalarmult_ed25519_SCALARBYTES);\n    if (crypto_scalarmult_ed25519_base(q, n) != 0) {\n        printf(\"crypto_scalarmult_ed25519_base() failed\\n\");\n    }\n    memcpy(p, B, crypto_scalarmult_ed25519_BYTES);\n    if (crypto_scalarmult_ed25519(q2, n, p) != 0) {\n        printf(\"crypto_scalarmult_ed25519() failed\\n\");\n    }\n    if (memcmp(q, q2, crypto_scalarmult_ed25519_BYTES) != 0) {\n        printf(\"crypto_scalarmult_ed25519_base(n) != crypto_scalarmult_ed25519(n, 9)\\n\");\n    }\n\n    memset(n, 0, crypto_scalarmult_ed25519_SCALARBYTES);\n    if (crypto_scalarmult_ed25519_base(q, n) != -1) {\n        printf(\"crypto_scalarmult_ed25519_base(0) passed\\n\");\n    }\n    if (crypto_scalarmult_ed25519(q2, n, p) != -1) {\n        printf(\"crypto_scalarmult_ed25519(0) passed\\n\");\n    }\n    if (crypto_scalarmult_ed25519_noclamp(q2, n, p) != -1) {\n        printf(\"crypto_scalarmult_ed25519_noclamp(0) passed\\n\");\n    }\n\n    n[0] = 1;\n    if (crypto_scalarmult_ed25519_base(q, n) != 0) {\n        printf(\"crypto_scalarmult_ed25519_base() failed\\n\");\n    }\n    if (crypto_scalarmult_ed25519(q2, n, p) != 0) {\n        printf(\"crypto_scalarmult_ed25519() failed\\n\");\n    }\n    if (crypto_scalarmult_ed25519_noclamp(q2, n, p) != 0) {\n        printf(\"crypto_scalarmult_ed25519_noclamp() failed\\n\");\n    }\n\n    if (crypto_scalarmult_ed25519(q, n, non_canonical_p) != -1) {\n        printf(\"crypto_scalarmult_ed25519() didn't fail\\n\");\n    }\n    if (crypto_scalarmult_ed25519(q, n, non_canonical_invalid_p) != -1) {\n        printf(\"crypto_scalarmult_ed25519() didn't fail\\n\");\n    }\n    if (crypto_scalarmult_ed25519(q, n, not_main_subgroup_p) != -1) {\n        printf(\"crypto_scalarmult_ed25519() didn't fail (non-subgroup)\\n\");\n    }\n    if (crypto_scalarmult_ed25519(q, n, max_canonical_p) != 0) {\n        printf(\"crypto_scalarmult_ed25519() failed\\n\");\n    }\n    if (crypto_scalarmult_ed25519_noclamp(q, n, not_main_subgroup_p) != -1) {\n        printf(\"crypto_scalarmult_ed25519_noclamp() didn't fail (non-subgroup)\\n\");\n    }\n\n    n[0] = 9;\n    if (crypto_scalarmult_ed25519(q, n, p) != 0) {\n        printf(\"crypto_scalarmult_ed25519() failed\\n\");\n    }\n    if (crypto_scalarmult_ed25519_noclamp(q2, n, p) != 0) {\n        printf(\"crypto_scalarmult_ed25519_noclamp() failed\\n\");\n    }\n    if (memcmp(q, q2, crypto_scalarmult_ed25519_BYTES) == 0) {\n        printf(\"clamping not applied\\n\");\n    }\n\n    n[0] = 9;\n    if (crypto_scalarmult_ed25519_base(q, n) != 0) {\n        printf(\"crypto_scalarmult_ed25519_base() failed\\n\");\n    }\n    if (crypto_scalarmult_ed25519_base_noclamp(q2, n) != 0) {\n        printf(\"crypto_scalarmult_ed25519_base_noclamp() failed\\n\");\n    }\n    if (memcmp(q, q2, crypto_scalarmult_ed25519_BYTES) == 0) {\n        printf(\"clamping not applied\\n\");\n    }\n\n    n[0] = 8;\n    n[31] = 64;\n    if (crypto_scalarmult_ed25519_noclamp(q2, n, p) != 0) {\n        printf(\"crypto_scalarmult_ed25519_noclamp() failed\\n\");\n    }\n    if (memcmp(q, q2, crypto_scalarmult_ed25519_BYTES) != 0) {\n        printf(\"inconsistent clamping\\n\");\n    }\n\n    memset(p, 0, crypto_scalarmult_ed25519_BYTES);\n    if (crypto_scalarmult_ed25519(q, n, p) != -1) {\n        printf(\"crypto_scalarmult_ed25519() didn't fail\\n\");\n    }\n    if (crypto_scalarmult_ed25519_noclamp(q, n, p) != -1) {\n        printf(\"crypto_scalarmult_ed25519_noclamp() didn't fail\\n\");\n    }\n\n    n[0] = 8;\n    if (crypto_scalarmult_ed25519(q, n, p) != -1) {\n        printf(\"crypto_scalarmult_ed25519() didn't fail\\n\");\n    }\n    if (crypto_scalarmult_ed25519_noclamp(q, n, p) != -1) {\n        printf(\"crypto_scalarmult_ed25519_noclamp() didn't fail\\n\");\n    }\n\n    sodium_free(q2);\n    sodium_free(q);\n    sodium_free(p);\n    sodium_free(n);\n\n    assert(crypto_scalarmult_ed25519_BYTES == crypto_scalarmult_ed25519_bytes());\n    assert(crypto_scalarmult_ed25519_SCALARBYTES == crypto_scalarmult_ed25519_scalarbytes());\n\n    printf(\"OK\\n\");\n\n    return 0;\n}\n"
  },
  {
    "path": "test/default/scalarmult_ed25519.exp",
    "content": "OK\n"
  },
  {
    "path": "test/default/scalarmult_ristretto255.c",
    "content": "#define TEST_NAME \"scalarmult_ristretto255\"\n#include \"cmptest.h\"\n\n#define B_HEX \"e2f2ae0a6abc4e71a884a961c500515f58e30b6aa582dd8db6a65945e08d2d76\"\n\nint\nmain(void)\n{\n    unsigned char *b =\n        (unsigned char *) sodium_malloc(crypto_scalarmult_ristretto255_BYTES);\n    unsigned char *n =\n        (unsigned char *) sodium_malloc(crypto_scalarmult_ristretto255_SCALARBYTES);\n    unsigned char *p =\n        (unsigned char *) sodium_malloc(crypto_scalarmult_ristretto255_BYTES);\n    unsigned char *p2 =\n        (unsigned char *) sodium_malloc(crypto_scalarmult_ristretto255_BYTES);\n    char          *hex =\n        (char *) sodium_malloc(2 * crypto_scalarmult_ristretto255_BYTES + 1);\n    int            i;\n\n    sodium_hex2bin(b, crypto_scalarmult_ristretto255_BYTES,\n                   B_HEX, sizeof B_HEX - (size_t) 1U, NULL, NULL, NULL);\n    memset(n, 0, crypto_scalarmult_ristretto255_SCALARBYTES);\n    for (i = 0; i < 16; i++) {\n        crypto_scalarmult_ristretto255_base(p, n);\n        if (crypto_scalarmult_ristretto255(p2, n, b) != 0) {\n            printf(\"crypto_scalarmult_ristretto255(%d) != 0\\n\", i);\n        }\n        sodium_bin2hex(hex, 2 * crypto_scalarmult_ristretto255_BYTES + 1,\n                       p, crypto_scalarmult_ristretto255_BYTES);\n        printf(\"%s\\n\", hex);\n        assert(memcmp(p, p2, crypto_scalarmult_ristretto255_BYTES) == 0);\n        sodium_increment(n, crypto_scalarmult_ristretto255_SCALARBYTES);\n    }\n\n    memset(p, 0xfe, crypto_scalarmult_ristretto255_BYTES);\n    assert(crypto_scalarmult_ristretto255(guard_page, n, p) == -1);\n\n    sodium_free(hex);\n    sodium_free(p2);\n    sodium_free(p);\n    sodium_free(n);\n    sodium_free(b);\n\n    assert(crypto_scalarmult_ristretto255_BYTES == crypto_scalarmult_ristretto255_bytes());\n    assert(crypto_scalarmult_ristretto255_SCALARBYTES == crypto_scalarmult_ristretto255_scalarbytes());\n\n    printf(\"OK\\n\");\n\n    return 0;\n}\n"
  },
  {
    "path": "test/default/scalarmult_ristretto255.exp",
    "content": "crypto_scalarmult_ristretto255(0) != 0\n0000000000000000000000000000000000000000000000000000000000000000\ne2f2ae0a6abc4e71a884a961c500515f58e30b6aa582dd8db6a65945e08d2d76\n6a493210f7499cd17fecb510ae0cea23a110e8d5b901f8acadd3095c73a3b919\n94741f5d5d52755ece4f23f044ee27d5d1ea1e2bd196b462166b16152a9d0259\nda80862773358b466ffadfe0b3293ab3d9fd53c5ea6c955358f568322daf6a57\ne882b131016b52c1d3337080187cf768423efccbb517bb495ab812c4160ff44e\nf64746d3c92b13050ed8d80236a7f0007c3b3f962f5ba793d19a601ebb1df403\n44f53520926ec81fbd5a387845beb7df85a96a24ece18738bdcfa6a7822a176d\n903293d8f2287ebe10e2374dc1a53e0bc887e592699f02d077d5263cdd55601c\n02622ace8f7303a31cafc63f8fc48fdc16e1c8c8d234b2f0d6685282a9076031\n20706fd788b2720a1ed2a5dad4952b01f413bcf0e7564de8cdc816689e2db95f\nbce83f8ba5dd2fa572864c24ba1810f9522bc6004afe95877ac73241cafdab42\ne4549ee16b9aa03099ca208c67adafcafa4c3f3e4e5303de6026e3ca8ff84460\naa52e000df2e16f55fb1032fc33bc42742dad6bd5a8fc0be0167436c5948501f\n46376b80f409b29dc2b5f6f0c52591990896e5716f41477cd30085ab7f10301e\ne0c418f7c8d9c4cdd7395b93ea124f3ad99021bb681dfc3302a9d99a2e53e64e\nOK\n"
  },
  {
    "path": "test/default/secretbox.c",
    "content": "\n#define TEST_NAME \"secretbox\"\n#include \"cmptest.h\"\n\nstatic unsigned char firstkey[32] = { 0x1b, 0x27, 0x55, 0x64, 0x73, 0xe9, 0x85,\n                                      0xd4, 0x62, 0xcd, 0x51, 0x19, 0x7a, 0x9a,\n                                      0x46, 0xc7, 0x60, 0x09, 0x54, 0x9e, 0xac,\n                                      0x64, 0x74, 0xf2, 0x06, 0xc4, 0xee, 0x08,\n                                      0x44, 0xf6, 0x83, 0x89 };\n\nstatic unsigned char nonce[24] = { 0x69, 0x69, 0x6e, 0xe9, 0x55, 0xb6,\n                                   0x2b, 0x73, 0xcd, 0x62, 0xbd, 0xa8,\n                                   0x75, 0xfc, 0x73, 0xd6, 0x82, 0x19,\n                                   0xe0, 0x03, 0x6b, 0x7a, 0x0b, 0x37 };\n\n/* API requires first 32 bytes to be 0 */\nstatic unsigned char m[163] = {\n    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,\n    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,\n    0,    0,    0,    0,    0,    0,    0,    0,    0xbe, 0x07, 0x5f, 0xc5,\n    0x3c, 0x81, 0xf2, 0xd5, 0xcf, 0x14, 0x13, 0x16, 0xeb, 0xeb, 0x0c, 0x7b,\n    0x52, 0x28, 0xc5, 0x2a, 0x4c, 0x62, 0xcb, 0xd4, 0x4b, 0x66, 0x84, 0x9b,\n    0x64, 0x24, 0x4f, 0xfc, 0xe5, 0xec, 0xba, 0xaf, 0x33, 0xbd, 0x75, 0x1a,\n    0x1a, 0xc7, 0x28, 0xd4, 0x5e, 0x6c, 0x61, 0x29, 0x6c, 0xdc, 0x3c, 0x01,\n    0x23, 0x35, 0x61, 0xf4, 0x1d, 0xb6, 0x6c, 0xce, 0x31, 0x4a, 0xdb, 0x31,\n    0x0e, 0x3b, 0xe8, 0x25, 0x0c, 0x46, 0xf0, 0x6d, 0xce, 0xea, 0x3a, 0x7f,\n    0xa1, 0x34, 0x80, 0x57, 0xe2, 0xf6, 0x55, 0x6a, 0xd6, 0xb1, 0x31, 0x8a,\n    0x02, 0x4a, 0x83, 0x8f, 0x21, 0xaf, 0x1f, 0xde, 0x04, 0x89, 0x77, 0xeb,\n    0x48, 0xf5, 0x9f, 0xfd, 0x49, 0x24, 0xca, 0x1c, 0x60, 0x90, 0x2e, 0x52,\n    0xf0, 0xa0, 0x89, 0xbc, 0x76, 0x89, 0x70, 0x40, 0xe0, 0x82, 0xf9, 0x37,\n    0x76, 0x38, 0x48, 0x64, 0x5e, 0x07, 0x05\n};\n\nstatic unsigned char c[163];\n\nint\nmain(void)\n{\n    int i;\n\n    crypto_secretbox(c, m, 163, nonce, firstkey);\n    for (i = 16; i < 163; ++i) {\n        printf(\",0x%02x\", (unsigned int) c[i]);\n        if (i % 8 == 7)\n            printf(\"\\n\");\n    }\n    printf(\"\\n\");\n\n    memcpy(c, m, 163);\n    crypto_secretbox(c, c, 163, nonce, firstkey);\n    for (i = 16; i < 163; ++i) {\n        printf(\",0x%02x\", (unsigned int) c[i]);\n        if (i % 8 == 7)\n            printf(\"\\n\");\n    }\n    printf(\"\\n\");\n\n    assert(crypto_secretbox(c, c, 31, nonce, firstkey) == -1);\n    assert(crypto_secretbox(c, c, 12, nonce, firstkey) == -1);\n    assert(crypto_secretbox(c, c, 1, nonce, firstkey) == -1);\n    assert(crypto_secretbox(c, c, 0, nonce, firstkey) == -1);\n\n    assert(crypto_secretbox_keybytes() > 0U);\n    assert(crypto_secretbox_noncebytes() > 0U);\n    assert(crypto_secretbox_zerobytes() > 0U);\n    assert(crypto_secretbox_boxzerobytes() > 0U);\n    assert(crypto_secretbox_macbytes() > 0U);\n    assert(crypto_secretbox_messagebytes_max() > 0U);\n    assert(strcmp(crypto_secretbox_primitive(), \"xsalsa20poly1305\") == 0);\n    assert(crypto_secretbox_keybytes() ==\n           crypto_secretbox_xsalsa20poly1305_keybytes());\n    assert(crypto_secretbox_noncebytes() ==\n           crypto_secretbox_xsalsa20poly1305_noncebytes());\n    assert(crypto_secretbox_zerobytes() ==\n           crypto_secretbox_xsalsa20poly1305_zerobytes());\n    assert(crypto_secretbox_boxzerobytes() ==\n           crypto_secretbox_xsalsa20poly1305_boxzerobytes());\n    assert(crypto_secretbox_macbytes() ==\n           crypto_secretbox_xsalsa20poly1305_macbytes());\n    assert(crypto_secretbox_messagebytes_max() ==\n           crypto_secretbox_xsalsa20poly1305_messagebytes_max());\n\n    return 0;\n}\n"
  },
  {
    "path": "test/default/secretbox.exp",
    "content": ",0xf3,0xff,0xc7,0x70,0x3f,0x94,0x00,0xe5\n,0x2a,0x7d,0xfb,0x4b,0x3d,0x33,0x05,0xd9\n,0x8e,0x99,0x3b,0x9f,0x48,0x68,0x12,0x73\n,0xc2,0x96,0x50,0xba,0x32,0xfc,0x76,0xce\n,0x48,0x33,0x2e,0xa7,0x16,0x4d,0x96,0xa4\n,0x47,0x6f,0xb8,0xc5,0x31,0xa1,0x18,0x6a\n,0xc0,0xdf,0xc1,0x7c,0x98,0xdc,0xe8,0x7b\n,0x4d,0xa7,0xf0,0x11,0xec,0x48,0xc9,0x72\n,0x71,0xd2,0xc2,0x0f,0x9b,0x92,0x8f,0xe2\n,0x27,0x0d,0x6f,0xb8,0x63,0xd5,0x17,0x38\n,0xb4,0x8e,0xee,0xe3,0x14,0xa7,0xcc,0x8a\n,0xb9,0x32,0x16,0x45,0x48,0xe5,0x26,0xae\n,0x90,0x22,0x43,0x68,0x51,0x7a,0xcf,0xea\n,0xbd,0x6b,0xb3,0x73,0x2b,0xc0,0xe9,0xda\n,0x99,0x83,0x2b,0x61,0xca,0x01,0xb6,0xde\n,0x56,0x24,0x4a,0x9e,0x88,0xd5,0xf9,0xb3\n,0x79,0x73,0xf6,0x22,0xa4,0x3d,0x14,0xa6\n,0x59,0x9b,0x1f,0x65,0x4c,0xb4,0x5a,0x74\n,0xe3,0x55,0xa5\n,0xf3,0xff,0xc7,0x70,0x3f,0x94,0x00,0xe5\n,0x2a,0x7d,0xfb,0x4b,0x3d,0x33,0x05,0xd9\n,0x8e,0x99,0x3b,0x9f,0x48,0x68,0x12,0x73\n,0xc2,0x96,0x50,0xba,0x32,0xfc,0x76,0xce\n,0x48,0x33,0x2e,0xa7,0x16,0x4d,0x96,0xa4\n,0x47,0x6f,0xb8,0xc5,0x31,0xa1,0x18,0x6a\n,0xc0,0xdf,0xc1,0x7c,0x98,0xdc,0xe8,0x7b\n,0x4d,0xa7,0xf0,0x11,0xec,0x48,0xc9,0x72\n,0x71,0xd2,0xc2,0x0f,0x9b,0x92,0x8f,0xe2\n,0x27,0x0d,0x6f,0xb8,0x63,0xd5,0x17,0x38\n,0xb4,0x8e,0xee,0xe3,0x14,0xa7,0xcc,0x8a\n,0xb9,0x32,0x16,0x45,0x48,0xe5,0x26,0xae\n,0x90,0x22,0x43,0x68,0x51,0x7a,0xcf,0xea\n,0xbd,0x6b,0xb3,0x73,0x2b,0xc0,0xe9,0xda\n,0x99,0x83,0x2b,0x61,0xca,0x01,0xb6,0xde\n,0x56,0x24,0x4a,0x9e,0x88,0xd5,0xf9,0xb3\n,0x79,0x73,0xf6,0x22,0xa4,0x3d,0x14,0xa6\n,0x59,0x9b,0x1f,0x65,0x4c,0xb4,0x5a,0x74\n,0xe3,0x55,0xa5\n"
  },
  {
    "path": "test/default/secretbox2.c",
    "content": "\n#define TEST_NAME \"secretbox2\"\n#include \"cmptest.h\"\n\nstatic unsigned char firstkey[32] = { 0x1b, 0x27, 0x55, 0x64, 0x73, 0xe9, 0x85,\n                                      0xd4, 0x62, 0xcd, 0x51, 0x19, 0x7a, 0x9a,\n                                      0x46, 0xc7, 0x60, 0x09, 0x54, 0x9e, 0xac,\n                                      0x64, 0x74, 0xf2, 0x06, 0xc4, 0xee, 0x08,\n                                      0x44, 0xf6, 0x83, 0x89 };\n\nstatic unsigned char nonce[24] = { 0x69, 0x69, 0x6e, 0xe9, 0x55, 0xb6,\n                                   0x2b, 0x73, 0xcd, 0x62, 0xbd, 0xa8,\n                                   0x75, 0xfc, 0x73, 0xd6, 0x82, 0x19,\n                                   0xe0, 0x03, 0x6b, 0x7a, 0x0b, 0x37 };\n\n/* API requires first 16 bytes to be 0 */\nstatic unsigned char c[163] = {\n    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,\n    0,    0,    0,    0,    0xf3, 0xff, 0xc7, 0x70, 0x3f, 0x94, 0x00, 0xe5,\n    0x2a, 0x7d, 0xfb, 0x4b, 0x3d, 0x33, 0x05, 0xd9, 0x8e, 0x99, 0x3b, 0x9f,\n    0x48, 0x68, 0x12, 0x73, 0xc2, 0x96, 0x50, 0xba, 0x32, 0xfc, 0x76, 0xce,\n    0x48, 0x33, 0x2e, 0xa7, 0x16, 0x4d, 0x96, 0xa4, 0x47, 0x6f, 0xb8, 0xc5,\n    0x31, 0xa1, 0x18, 0x6a, 0xc0, 0xdf, 0xc1, 0x7c, 0x98, 0xdc, 0xe8, 0x7b,\n    0x4d, 0xa7, 0xf0, 0x11, 0xec, 0x48, 0xc9, 0x72, 0x71, 0xd2, 0xc2, 0x0f,\n    0x9b, 0x92, 0x8f, 0xe2, 0x27, 0x0d, 0x6f, 0xb8, 0x63, 0xd5, 0x17, 0x38,\n    0xb4, 0x8e, 0xee, 0xe3, 0x14, 0xa7, 0xcc, 0x8a, 0xb9, 0x32, 0x16, 0x45,\n    0x48, 0xe5, 0x26, 0xae, 0x90, 0x22, 0x43, 0x68, 0x51, 0x7a, 0xcf, 0xea,\n    0xbd, 0x6b, 0xb3, 0x73, 0x2b, 0xc0, 0xe9, 0xda, 0x99, 0x83, 0x2b, 0x61,\n    0xca, 0x01, 0xb6, 0xde, 0x56, 0x24, 0x4a, 0x9e, 0x88, 0xd5, 0xf9, 0xb3,\n    0x79, 0x73, 0xf6, 0x22, 0xa4, 0x3d, 0x14, 0xa6, 0x59, 0x9b, 0x1f, 0x65,\n    0x4c, 0xb4, 0x5a, 0x74, 0xe3, 0x55, 0xa5\n};\n\nstatic unsigned char m[163];\n\nint\nmain(void)\n{\n    int i;\n\n    if (crypto_secretbox_open(m, c, 163, nonce, firstkey) == 0) {\n        for (i = 32; i < 163; ++i) {\n            printf(\",0x%02x\", (unsigned int) m[i]);\n            if (i % 8 == 7)\n                printf(\"\\n\");\n        }\n        printf(\"\\n\");\n    }\n    assert(crypto_secretbox_open(m, c, 31, nonce, firstkey) == -1);\n    assert(crypto_secretbox_open(m, c, 16, nonce, firstkey) == -1);\n    assert(crypto_secretbox_open(m, c, 1, nonce, firstkey) == -1);\n    assert(crypto_secretbox_open(m, c, 0, nonce, firstkey) == -1);\n\n    return 0;\n}\n"
  },
  {
    "path": "test/default/secretbox2.exp",
    "content": ",0xbe,0x07,0x5f,0xc5,0x3c,0x81,0xf2,0xd5\n,0xcf,0x14,0x13,0x16,0xeb,0xeb,0x0c,0x7b\n,0x52,0x28,0xc5,0x2a,0x4c,0x62,0xcb,0xd4\n,0x4b,0x66,0x84,0x9b,0x64,0x24,0x4f,0xfc\n,0xe5,0xec,0xba,0xaf,0x33,0xbd,0x75,0x1a\n,0x1a,0xc7,0x28,0xd4,0x5e,0x6c,0x61,0x29\n,0x6c,0xdc,0x3c,0x01,0x23,0x35,0x61,0xf4\n,0x1d,0xb6,0x6c,0xce,0x31,0x4a,0xdb,0x31\n,0x0e,0x3b,0xe8,0x25,0x0c,0x46,0xf0,0x6d\n,0xce,0xea,0x3a,0x7f,0xa1,0x34,0x80,0x57\n,0xe2,0xf6,0x55,0x6a,0xd6,0xb1,0x31,0x8a\n,0x02,0x4a,0x83,0x8f,0x21,0xaf,0x1f,0xde\n,0x04,0x89,0x77,0xeb,0x48,0xf5,0x9f,0xfd\n,0x49,0x24,0xca,0x1c,0x60,0x90,0x2e,0x52\n,0xf0,0xa0,0x89,0xbc,0x76,0x89,0x70,0x40\n,0xe0,0x82,0xf9,0x37,0x76,0x38,0x48,0x64\n,0x5e,0x07,0x05\n"
  },
  {
    "path": "test/default/secretbox7.c",
    "content": "\n#define TEST_NAME \"secretbox7\"\n#include \"cmptest.h\"\n\nstatic unsigned char k[crypto_secretbox_KEYBYTES];\nstatic unsigned char n[crypto_secretbox_NONCEBYTES];\nstatic unsigned char m[10000];\nstatic unsigned char c[10000];\nstatic unsigned char m2[10000];\n\nint\nmain(void)\n{\n    size_t mlen;\n    size_t i;\n\n    for (mlen = 0; mlen < 1000 && mlen + crypto_secretbox_ZEROBYTES < sizeof m;\n         ++mlen) {\n        crypto_secretbox_keygen(k);\n        randombytes_buf(n, crypto_secretbox_NONCEBYTES);\n        randombytes_buf(m + crypto_secretbox_ZEROBYTES, mlen);\n        crypto_secretbox(c, m, mlen + crypto_secretbox_ZEROBYTES, n, k);\n        if (crypto_secretbox_open(m2, c, mlen + crypto_secretbox_ZEROBYTES, n,\n                                  k) == 0) {\n            for (i = 0; i < mlen + crypto_secretbox_ZEROBYTES; ++i) {\n                if (m2[i] != m[i]) {\n                    printf(\"bad decryption\\n\");\n                    break;\n                }\n            }\n        } else {\n            printf(\"ciphertext fails verification\\n\");\n        }\n    }\n    return 0;\n}\n"
  },
  {
    "path": "test/default/secretbox7.exp",
    "content": ""
  },
  {
    "path": "test/default/secretbox8.c",
    "content": "\n#define TEST_NAME \"secretbox8\"\n#include \"cmptest.h\"\n\nstatic unsigned char k[crypto_secretbox_KEYBYTES];\nstatic unsigned char n[crypto_secretbox_NONCEBYTES];\nstatic unsigned char m[10000];\nstatic unsigned char c[10000];\nstatic unsigned char m2[10000];\n\nint\nmain(void)\n{\n    size_t mlen;\n    size_t i;\n    int    caught;\n\n    for (mlen = 0; mlen < 1000 && mlen + crypto_secretbox_ZEROBYTES < sizeof m;\n         ++mlen) {\n        crypto_secretbox_keygen(k);\n        randombytes_buf(n, crypto_secretbox_NONCEBYTES);\n        randombytes_buf(m + crypto_secretbox_ZEROBYTES, mlen);\n        crypto_secretbox(c, m, mlen + crypto_secretbox_ZEROBYTES, n, k);\n        caught = 0;\n        while (caught < 10) {\n            c[rand() % (mlen + crypto_secretbox_ZEROBYTES)] = rand();\n            if (crypto_secretbox_open(m2, c, mlen + crypto_secretbox_ZEROBYTES,\n                                      n, k) == 0) {\n                for (i = 0; i < mlen + crypto_secretbox_ZEROBYTES; ++i) {\n                    if (m2[i] != m[i]) {\n                        printf(\"forgery\\n\");\n                        return 100;\n                    }\n                }\n            } else {\n                ++caught;\n            }\n        }\n    }\n    return 0;\n}\n"
  },
  {
    "path": "test/default/secretbox8.exp",
    "content": ""
  },
  {
    "path": "test/default/secretbox_easy.c",
    "content": "\n#define TEST_NAME \"secretbox_easy\"\n#include \"cmptest.h\"\n\nstatic unsigned char firstkey[32] = { 0x1b, 0x27, 0x55, 0x64, 0x73, 0xe9, 0x85,\n                                      0xd4, 0x62, 0xcd, 0x51, 0x19, 0x7a, 0x9a,\n                                      0x46, 0xc7, 0x60, 0x09, 0x54, 0x9e, 0xac,\n                                      0x64, 0x74, 0xf2, 0x06, 0xc4, 0xee, 0x08,\n                                      0x44, 0xf6, 0x83, 0x89 };\n\nstatic unsigned char nonce[24] = { 0x69, 0x69, 0x6e, 0xe9, 0x55, 0xb6,\n                                   0x2b, 0x73, 0xcd, 0x62, 0xbd, 0xa8,\n                                   0x75, 0xfc, 0x73, 0xd6, 0x82, 0x19,\n                                   0xe0, 0x03, 0x6b, 0x7a, 0x0b, 0x37 };\n\nstatic unsigned char m[131] = {\n    0xbe, 0x07, 0x5f, 0xc5, 0x3c, 0x81, 0xf2, 0xd5, 0xcf, 0x14, 0x13, 0x16,\n    0xeb, 0xeb, 0x0c, 0x7b, 0x52, 0x28, 0xc5, 0x2a, 0x4c, 0x62, 0xcb, 0xd4,\n    0x4b, 0x66, 0x84, 0x9b, 0x64, 0x24, 0x4f, 0xfc, 0xe5, 0xec, 0xba, 0xaf,\n    0x33, 0xbd, 0x75, 0x1a, 0x1a, 0xc7, 0x28, 0xd4, 0x5e, 0x6c, 0x61, 0x29,\n    0x6c, 0xdc, 0x3c, 0x01, 0x23, 0x35, 0x61, 0xf4, 0x1d, 0xb6, 0x6c, 0xce,\n    0x31, 0x4a, 0xdb, 0x31, 0x0e, 0x3b, 0xe8, 0x25, 0x0c, 0x46, 0xf0, 0x6d,\n    0xce, 0xea, 0x3a, 0x7f, 0xa1, 0x34, 0x80, 0x57, 0xe2, 0xf6, 0x55, 0x6a,\n    0xd6, 0xb1, 0x31, 0x8a, 0x02, 0x4a, 0x83, 0x8f, 0x21, 0xaf, 0x1f, 0xde,\n    0x04, 0x89, 0x77, 0xeb, 0x48, 0xf5, 0x9f, 0xfd, 0x49, 0x24, 0xca, 0x1c,\n    0x60, 0x90, 0x2e, 0x52, 0xf0, 0xa0, 0x89, 0xbc, 0x76, 0x89, 0x70, 0x40,\n    0xe0, 0x82, 0xf9, 0x37, 0x76, 0x38, 0x48, 0x64, 0x5e, 0x07, 0x05\n};\n\nint\nmain(void)\n{\n    unsigned char *c;\n    unsigned char *mac;\n    size_t         i;\n\n    c   = (unsigned char *) sodium_malloc(131 + crypto_secretbox_MACBYTES + 1);\n    mac = (unsigned char *) sodium_malloc(crypto_secretbox_MACBYTES);\n    assert(c != NULL && mac != NULL);\n\n    crypto_secretbox_easy(c, m, 131, nonce, firstkey);\n    for (i = 0; i < 131 + crypto_secretbox_MACBYTES; ++i) {\n        printf(\",0x%02x\", (unsigned int) c[i]);\n    }\n    printf(\"\\n\");\n\n    crypto_secretbox_detached(c, mac, m, 131, nonce, firstkey);\n    for (i = 0; i < crypto_secretbox_MACBYTES; ++i) {\n        printf(\",0x%02x\", (unsigned int) mac[i]);\n    }\n    for (i = 0; i < 131; ++i) {\n        printf(\",0x%02x\", (unsigned int) c[i]);\n    }\n    printf(\"\\n\");\n\n    /* Same test, with c and m overlapping */\n\n    memcpy(c + 1, m, 131);\n    crypto_secretbox_easy(c, c + 1, 131, nonce, firstkey);\n    for (i = 0; i < 131 + crypto_secretbox_MACBYTES; ++i) {\n        printf(\",0x%02x\", (unsigned int) c[i]);\n    }\n    printf(\"\\n\");\n\n    memcpy(c, m, 131);\n    crypto_secretbox_easy(c + 1, c, 131, nonce, firstkey);\n    for (i = 0; i < 131 + crypto_secretbox_MACBYTES; ++i) {\n        printf(\",0x%02x\", (unsigned int) c[i + 1]);\n    }\n    printf(\"\\n\");\n\n    memcpy(c, m, 131);\n    crypto_secretbox_easy(c, c, 131, nonce, firstkey);\n    for (i = 0; i < 131 + crypto_secretbox_MACBYTES; ++i) {\n        printf(\",0x%02x\", (unsigned int) c[i]);\n    }\n    printf(\"\\n\");\n\n    assert(crypto_secretbox_easy(c, m, 0, nonce, firstkey) == 0);\n\n    /* Null message */\n\n    crypto_secretbox_easy(c, c, 0, nonce, firstkey);\n    for (i = 0; i < crypto_secretbox_MACBYTES + 1; ++i) {\n        printf(\",0x%02x\", (unsigned int) c[i]);\n    }\n    printf(\"\\n\");\n    if (crypto_secretbox_open_easy(c, c, crypto_secretbox_MACBYTES, nonce,\n                                   firstkey) != 0) {\n        printf(\"Null crypto_secretbox_open_easy() failed\\n\");\n    }\n    for (i = 0; i < crypto_secretbox_MACBYTES + 1; ++i) {\n        printf(\",0x%02x\", (unsigned int) c[i]);\n    }\n    printf(\"\\n\");\n    c[randombytes_uniform(crypto_secretbox_MACBYTES)]++;\n    if (crypto_secretbox_open_easy(c, c, crypto_secretbox_MACBYTES, nonce,\n                                   firstkey) != -1) {\n        printf(\"Null tampered crypto_secretbox_open_easy() failed\\n\");\n    }\n\n    /* No overlap, but buffers are next to each other */\n\n    memset(c, 0, 131 + crypto_secretbox_MACBYTES + 1);\n    memcpy(c, m, 20);\n    crypto_secretbox_easy(c, c + 10, 10, nonce, firstkey);\n    for (i = 0; i < 10 + crypto_secretbox_MACBYTES; ++i) {\n        printf(\",0x%02x\", (unsigned int) c[i]);\n    }\n    printf(\"\\n\");\n\n    memset(c, 0, 131 + crypto_secretbox_MACBYTES + 1);\n    memcpy(c, m, 20);\n    crypto_secretbox_easy(c + 10, c, 10, nonce, firstkey);\n    for (i = 0; i < 10 + crypto_secretbox_MACBYTES; ++i) {\n        printf(\",0x%02x\", (unsigned int) c[i]);\n    }\n    printf(\"\\n\");\n\n    sodium_free(mac);\n    sodium_free(c);\n\n    return 0;\n}\n"
  },
  {
    "path": "test/default/secretbox_easy.exp",
    "content": ",0xf3,0xff,0xc7,0x70,0x3f,0x94,0x00,0xe5,0x2a,0x7d,0xfb,0x4b,0x3d,0x33,0x05,0xd9,0x8e,0x99,0x3b,0x9f,0x48,0x68,0x12,0x73,0xc2,0x96,0x50,0xba,0x32,0xfc,0x76,0xce,0x48,0x33,0x2e,0xa7,0x16,0x4d,0x96,0xa4,0x47,0x6f,0xb8,0xc5,0x31,0xa1,0x18,0x6a,0xc0,0xdf,0xc1,0x7c,0x98,0xdc,0xe8,0x7b,0x4d,0xa7,0xf0,0x11,0xec,0x48,0xc9,0x72,0x71,0xd2,0xc2,0x0f,0x9b,0x92,0x8f,0xe2,0x27,0x0d,0x6f,0xb8,0x63,0xd5,0x17,0x38,0xb4,0x8e,0xee,0xe3,0x14,0xa7,0xcc,0x8a,0xb9,0x32,0x16,0x45,0x48,0xe5,0x26,0xae,0x90,0x22,0x43,0x68,0x51,0x7a,0xcf,0xea,0xbd,0x6b,0xb3,0x73,0x2b,0xc0,0xe9,0xda,0x99,0x83,0x2b,0x61,0xca,0x01,0xb6,0xde,0x56,0x24,0x4a,0x9e,0x88,0xd5,0xf9,0xb3,0x79,0x73,0xf6,0x22,0xa4,0x3d,0x14,0xa6,0x59,0x9b,0x1f,0x65,0x4c,0xb4,0x5a,0x74,0xe3,0x55,0xa5\n,0xf3,0xff,0xc7,0x70,0x3f,0x94,0x00,0xe5,0x2a,0x7d,0xfb,0x4b,0x3d,0x33,0x05,0xd9,0x8e,0x99,0x3b,0x9f,0x48,0x68,0x12,0x73,0xc2,0x96,0x50,0xba,0x32,0xfc,0x76,0xce,0x48,0x33,0x2e,0xa7,0x16,0x4d,0x96,0xa4,0x47,0x6f,0xb8,0xc5,0x31,0xa1,0x18,0x6a,0xc0,0xdf,0xc1,0x7c,0x98,0xdc,0xe8,0x7b,0x4d,0xa7,0xf0,0x11,0xec,0x48,0xc9,0x72,0x71,0xd2,0xc2,0x0f,0x9b,0x92,0x8f,0xe2,0x27,0x0d,0x6f,0xb8,0x63,0xd5,0x17,0x38,0xb4,0x8e,0xee,0xe3,0x14,0xa7,0xcc,0x8a,0xb9,0x32,0x16,0x45,0x48,0xe5,0x26,0xae,0x90,0x22,0x43,0x68,0x51,0x7a,0xcf,0xea,0xbd,0x6b,0xb3,0x73,0x2b,0xc0,0xe9,0xda,0x99,0x83,0x2b,0x61,0xca,0x01,0xb6,0xde,0x56,0x24,0x4a,0x9e,0x88,0xd5,0xf9,0xb3,0x79,0x73,0xf6,0x22,0xa4,0x3d,0x14,0xa6,0x59,0x9b,0x1f,0x65,0x4c,0xb4,0x5a,0x74,0xe3,0x55,0xa5\n,0xf3,0xff,0xc7,0x70,0x3f,0x94,0x00,0xe5,0x2a,0x7d,0xfb,0x4b,0x3d,0x33,0x05,0xd9,0x8e,0x99,0x3b,0x9f,0x48,0x68,0x12,0x73,0xc2,0x96,0x50,0xba,0x32,0xfc,0x76,0xce,0x48,0x33,0x2e,0xa7,0x16,0x4d,0x96,0xa4,0x47,0x6f,0xb8,0xc5,0x31,0xa1,0x18,0x6a,0xc0,0xdf,0xc1,0x7c,0x98,0xdc,0xe8,0x7b,0x4d,0xa7,0xf0,0x11,0xec,0x48,0xc9,0x72,0x71,0xd2,0xc2,0x0f,0x9b,0x92,0x8f,0xe2,0x27,0x0d,0x6f,0xb8,0x63,0xd5,0x17,0x38,0xb4,0x8e,0xee,0xe3,0x14,0xa7,0xcc,0x8a,0xb9,0x32,0x16,0x45,0x48,0xe5,0x26,0xae,0x90,0x22,0x43,0x68,0x51,0x7a,0xcf,0xea,0xbd,0x6b,0xb3,0x73,0x2b,0xc0,0xe9,0xda,0x99,0x83,0x2b,0x61,0xca,0x01,0xb6,0xde,0x56,0x24,0x4a,0x9e,0x88,0xd5,0xf9,0xb3,0x79,0x73,0xf6,0x22,0xa4,0x3d,0x14,0xa6,0x59,0x9b,0x1f,0x65,0x4c,0xb4,0x5a,0x74,0xe3,0x55,0xa5\n,0xf3,0xff,0xc7,0x70,0x3f,0x94,0x00,0xe5,0x2a,0x7d,0xfb,0x4b,0x3d,0x33,0x05,0xd9,0x8e,0x99,0x3b,0x9f,0x48,0x68,0x12,0x73,0xc2,0x96,0x50,0xba,0x32,0xfc,0x76,0xce,0x48,0x33,0x2e,0xa7,0x16,0x4d,0x96,0xa4,0x47,0x6f,0xb8,0xc5,0x31,0xa1,0x18,0x6a,0xc0,0xdf,0xc1,0x7c,0x98,0xdc,0xe8,0x7b,0x4d,0xa7,0xf0,0x11,0xec,0x48,0xc9,0x72,0x71,0xd2,0xc2,0x0f,0x9b,0x92,0x8f,0xe2,0x27,0x0d,0x6f,0xb8,0x63,0xd5,0x17,0x38,0xb4,0x8e,0xee,0xe3,0x14,0xa7,0xcc,0x8a,0xb9,0x32,0x16,0x45,0x48,0xe5,0x26,0xae,0x90,0x22,0x43,0x68,0x51,0x7a,0xcf,0xea,0xbd,0x6b,0xb3,0x73,0x2b,0xc0,0xe9,0xda,0x99,0x83,0x2b,0x61,0xca,0x01,0xb6,0xde,0x56,0x24,0x4a,0x9e,0x88,0xd5,0xf9,0xb3,0x79,0x73,0xf6,0x22,0xa4,0x3d,0x14,0xa6,0x59,0x9b,0x1f,0x65,0x4c,0xb4,0x5a,0x74,0xe3,0x55,0xa5\n,0xf3,0xff,0xc7,0x70,0x3f,0x94,0x00,0xe5,0x2a,0x7d,0xfb,0x4b,0x3d,0x33,0x05,0xd9,0x8e,0x99,0x3b,0x9f,0x48,0x68,0x12,0x73,0xc2,0x96,0x50,0xba,0x32,0xfc,0x76,0xce,0x48,0x33,0x2e,0xa7,0x16,0x4d,0x96,0xa4,0x47,0x6f,0xb8,0xc5,0x31,0xa1,0x18,0x6a,0xc0,0xdf,0xc1,0x7c,0x98,0xdc,0xe8,0x7b,0x4d,0xa7,0xf0,0x11,0xec,0x48,0xc9,0x72,0x71,0xd2,0xc2,0x0f,0x9b,0x92,0x8f,0xe2,0x27,0x0d,0x6f,0xb8,0x63,0xd5,0x17,0x38,0xb4,0x8e,0xee,0xe3,0x14,0xa7,0xcc,0x8a,0xb9,0x32,0x16,0x45,0x48,0xe5,0x26,0xae,0x90,0x22,0x43,0x68,0x51,0x7a,0xcf,0xea,0xbd,0x6b,0xb3,0x73,0x2b,0xc0,0xe9,0xda,0x99,0x83,0x2b,0x61,0xca,0x01,0xb6,0xde,0x56,0x24,0x4a,0x9e,0x88,0xd5,0xf9,0xb3,0x79,0x73,0xf6,0x22,0xa4,0x3d,0x14,0xa6,0x59,0x9b,0x1f,0x65,0x4c,0xb4,0x5a,0x74,0xe3,0x55,0xa5\n,0x25,0x39,0x12,0x1d,0x8e,0x23,0x4e,0x65,0x2d,0x65,0x1f,0xa4,0xc8,0xcf,0xf8,0x80,0x8e\n,0x25,0x39,0x12,0x1d,0x8e,0x23,0x4e,0x65,0x2d,0x65,0x1f,0xa4,0xc8,0xcf,0xf8,0x80,0x8e\n,0x8c,0xf3,0x90,0x57,0xc9,0xbc,0xf2,0xba,0x98,0x87,0xfb,0x15,0x9f,0x21,0x0c,0xd8,0x23,0x88,0x8f,0xb1,0x78,0x92,0xb2,0x8e,0xc8,0xa8\n,0xbe,0x07,0x5f,0xc5,0x3c,0x81,0xf2,0xd5,0xcf,0x14,0xd2,0xe8,0xe8,0x1a,0xac,0xd2,0xba,0x1b,0xaa,0x60,0x99,0xe3,0xd9,0x63,0x56,0x18\n"
  },
  {
    "path": "test/default/secretbox_easy2.c",
    "content": "\n#define TEST_NAME \"secretbox_easy2\"\n#include \"cmptest.h\"\n\nint\nmain(void)\n{\n    unsigned char *m;\n    unsigned char *m2;\n    unsigned char *c;\n    unsigned char *nonce;\n    unsigned char *k;\n    unsigned char *mac;\n    size_t         mlen;\n    size_t         i;\n\n    mlen  = (size_t) randombytes_uniform((uint32_t) 10000) + 1U;\n    m     = (unsigned char *) sodium_malloc(mlen);\n    m2    = (unsigned char *) sodium_malloc(mlen);\n    c     = (unsigned char *) sodium_malloc(crypto_secretbox_MACBYTES + mlen);\n    nonce = (unsigned char *) sodium_malloc(crypto_secretbox_NONCEBYTES);\n    k     = (unsigned char *) sodium_malloc(crypto_secretbox_KEYBYTES);\n    mac   = (unsigned char *) sodium_malloc(crypto_secretbox_MACBYTES);\n    crypto_secretbox_keygen(k);\n    randombytes_buf(m, mlen);\n    randombytes_buf(nonce, crypto_secretbox_NONCEBYTES);\n    crypto_secretbox_easy(c, m, (unsigned long long) mlen, nonce, k);\n    if (crypto_secretbox_open_easy(\n            m2, c, (unsigned long long) mlen + crypto_secretbox_MACBYTES, nonce,\n            k) != 0) {\n        printf(\"crypto_secretbox_open_easy() failed\\n\");\n    }\n    printf(\"%d\\n\", memcmp(m, m2, mlen));\n\n    for (i = 0; i < mlen + crypto_secretbox_MACBYTES - 1; i++) {\n        if (crypto_secretbox_open_easy(m2, c, (unsigned long long) i, nonce,\n                                       k) == 0) {\n            printf(\"short open() should have failed\\n\");\n            return 1;\n        }\n    }\n    crypto_secretbox_detached(c, mac, m, (unsigned long long) mlen, nonce, k);\n    if (crypto_secretbox_open_detached(NULL, c, mac, (unsigned long long) mlen,\n                                       nonce, k) != 0) {\n        printf(\"crypto_secretbox_open_detached() with a NULL message pointer failed\\n\");\n    }\n    if (crypto_secretbox_open_detached(m2, c, mac, (unsigned long long) mlen,\n                                       nonce, k) != 0) {\n        printf(\"crypto_secretbox_open_detached() failed\\n\");\n    }\n    printf(\"%d\\n\", memcmp(m, m2, mlen));\n\n    memcpy(c, m, mlen);\n    crypto_secretbox_easy(c, c, (unsigned long long) mlen, nonce, k);\n    printf(\"%d\\n\", memcmp(m, c, mlen) == 0);\n    printf(\"%d\\n\", memcmp(m, c + crypto_secretbox_MACBYTES, mlen) == 0);\n    if (crypto_secretbox_open_easy(\n            c, c, (unsigned long long) mlen + crypto_secretbox_MACBYTES, nonce,\n            k) != 0) {\n        printf(\"crypto_secretbox_open_easy() failed\\n\");\n    }\n    printf(\"%d\\n\", memcmp(m, c, mlen));\n\n    sodium_free(m);\n    sodium_free(m2);\n    sodium_free(c);\n    sodium_free(nonce);\n    sodium_free(k);\n    sodium_free(mac);\n\n    return 0;\n}\n"
  },
  {
    "path": "test/default/secretbox_easy2.exp",
    "content": "0\n0\n0\n0\n0\n"
  },
  {
    "path": "test/default/secretstream_xchacha20poly1305.c",
    "content": "\n#define TEST_NAME \"secretstream_xchacha20poly1305\"\n#include \"cmptest.h\"\n\nint\nmain(void)\n{\n    crypto_secretstream_xchacha20poly1305_state *state, *statesave;\n    crypto_secretstream_xchacha20poly1305_state state_copy;\n    unsigned char      *ad;\n    unsigned char      *header;\n    unsigned char      *k;\n    unsigned char      *c1, *c2, *c3, *csave;\n    unsigned char      *m1, *m2, *m3;\n    unsigned char      *m1_, *m2_, *m3_;\n    unsigned long long  res_len;\n    size_t              ad_len;\n    size_t              m1_len, m2_len, m3_len;\n    int                 ret;\n    unsigned char       tag;\n\n    state = (crypto_secretstream_xchacha20poly1305_state *)\n        sodium_malloc(crypto_secretstream_xchacha20poly1305_statebytes());\n    statesave = (crypto_secretstream_xchacha20poly1305_state *)\n        sodium_malloc(crypto_secretstream_xchacha20poly1305_statebytes());\n    header = (unsigned char *)\n        sodium_malloc(crypto_secretstream_xchacha20poly1305_HEADERBYTES);\n\n    ad_len = randombytes_uniform(100);\n    m1_len = randombytes_uniform(1000);\n    m2_len = randombytes_uniform(1000);\n    m3_len = randombytes_uniform(1000);\n\n    c1 = (unsigned char *)\n        sodium_malloc(m1_len + crypto_secretstream_xchacha20poly1305_ABYTES);\n    c2 = (unsigned char *)\n        sodium_malloc(m2_len + crypto_secretstream_xchacha20poly1305_ABYTES);\n    c3 = (unsigned char *)\n        sodium_malloc(m3_len + crypto_secretstream_xchacha20poly1305_ABYTES);\n    csave = (unsigned char *)\n        sodium_malloc((m1_len | m2_len | m3_len) + crypto_secretstream_xchacha20poly1305_ABYTES);\n\n    ad  = (unsigned char *) sodium_malloc(ad_len);\n    m1  = (unsigned char *) sodium_malloc(m1_len);\n    m2  = (unsigned char *) sodium_malloc(m2_len);\n    m3  = (unsigned char *) sodium_malloc(m3_len);\n    m1_ = (unsigned char *) sodium_malloc(m1_len);\n    m2_ = (unsigned char *) sodium_malloc(m2_len);\n    m3_ = (unsigned char *) sodium_malloc(m3_len);\n\n    randombytes_buf(ad, ad_len);\n\n    randombytes_buf(m1, m1_len);\n    memcpy(m1_, m1, m1_len);\n    randombytes_buf(m2, m2_len);\n    memcpy(m2_, m2, m2_len);\n    randombytes_buf(m3, m3_len);\n    memcpy(m3_, m3, m3_len);\n\n    k = (unsigned char *)\n        sodium_malloc(crypto_secretstream_xchacha20poly1305_KEYBYTES);\n    crypto_secretstream_xchacha20poly1305_keygen(k);\n\n    /* push */\n\n    ret = crypto_secretstream_xchacha20poly1305_init_push(state, header, k);\n    assert(ret == 0);\n\n    ret = crypto_secretstream_xchacha20poly1305_push\n        (state, c1, &res_len, m1, m1_len, NULL, 0, 0);\n    assert(ret == 0);\n    assert(res_len == m1_len + crypto_secretstream_xchacha20poly1305_ABYTES);\n\n    ret = crypto_secretstream_xchacha20poly1305_push\n        (state, c2, NULL, m2, m2_len, ad, 0, 0);\n    assert(ret == 0);\n\n    ret = crypto_secretstream_xchacha20poly1305_push\n        (state, c3, NULL, m3, m3_len, ad, ad_len,\n         crypto_secretstream_xchacha20poly1305_TAG_FINAL);\n    assert(ret == 0);\n\n    /* pull */\n\n    ret = crypto_secretstream_xchacha20poly1305_init_pull(state, header, k);\n    assert(ret == 0);\n\n    ret = crypto_secretstream_xchacha20poly1305_pull\n        (state, m1, &res_len, &tag,\n         c1, m1_len + crypto_secretstream_xchacha20poly1305_ABYTES, NULL, 0);\n    assert(ret == 0);\n    assert(tag == 0);\n    assert(memcmp(m1, m1_, m1_len) == 0);\n    assert(res_len == m1_len);\n\n    ret = crypto_secretstream_xchacha20poly1305_pull\n        (state, m2, NULL, &tag,\n         c2, m2_len + crypto_secretstream_xchacha20poly1305_ABYTES, NULL, 0);\n    assert(ret == 0);\n    assert(tag == 0);\n    assert(memcmp(m2, m2_, m2_len) == 0);\n\n    if (ad_len > 0) {\n        ret = crypto_secretstream_xchacha20poly1305_pull\n            (state, m3, NULL, &tag,\n             c3, m3_len + crypto_secretstream_xchacha20poly1305_ABYTES, NULL, 0);\n        assert(ret == -1);\n    }\n    ret = crypto_secretstream_xchacha20poly1305_pull\n        (state, m3, NULL, &tag,\n         c3, m3_len + crypto_secretstream_xchacha20poly1305_ABYTES, ad, ad_len);\n    assert(ret == 0);\n    assert(tag == crypto_secretstream_xchacha20poly1305_TAG_FINAL);\n    assert(memcmp(m3, m3_, m3_len) == 0);\n\n    /* previous with FINAL tag */\n\n    ret = crypto_secretstream_xchacha20poly1305_pull\n        (state, m3, NULL, &tag,\n         c3, m3_len + crypto_secretstream_xchacha20poly1305_ABYTES, ad, ad_len);\n    assert(ret == -1);\n\n    /* previous without a tag */\n\n    ret = crypto_secretstream_xchacha20poly1305_pull\n        (state, m2, NULL, &tag,\n         c2, m2_len + crypto_secretstream_xchacha20poly1305_ABYTES, NULL, 0);\n    assert(ret == -1);\n\n    /* short ciphertext */\n\n    ret = crypto_secretstream_xchacha20poly1305_pull\n        (state, m2, NULL, &tag, c2,\n         randombytes_uniform(crypto_secretstream_xchacha20poly1305_ABYTES),\n         NULL, 0);\n    assert(ret == -1);\n    ret = crypto_secretstream_xchacha20poly1305_pull\n        (state, m2, NULL, &tag, c2, 0, NULL, 0);\n    assert(ret == -1);\n\n    /* empty ciphertext */\n\n    ret = crypto_secretstream_xchacha20poly1305_pull\n        (state, m2, NULL, &tag, c2,\n         crypto_secretstream_xchacha20poly1305_ABYTES, NULL, 0);\n    assert(ret == -1);\n\n    /* without explicit rekeying */\n\n    ret = crypto_secretstream_xchacha20poly1305_init_push(state, header, k);\n    assert(ret == 0);\n    ret = crypto_secretstream_xchacha20poly1305_push\n        (state, c1, NULL, m1, m1_len, NULL, 0, 0);\n    assert(ret == 0);\n    ret = crypto_secretstream_xchacha20poly1305_push\n        (state, c2, NULL, m2, m2_len, NULL, 0, 0);\n    assert(ret == 0);\n\n    ret = crypto_secretstream_xchacha20poly1305_init_pull(state, header, k);\n    assert(ret == 0);\n    ret = crypto_secretstream_xchacha20poly1305_pull\n        (state, m1, NULL, &tag,\n         c1, m1_len + crypto_secretstream_xchacha20poly1305_ABYTES, NULL, 0);\n    assert(ret == 0);\n    ret = crypto_secretstream_xchacha20poly1305_pull\n        (state, m2, NULL, &tag,\n         c2, m2_len + crypto_secretstream_xchacha20poly1305_ABYTES, NULL, 0);\n    assert(ret == 0);\n\n    /* with explicit rekeying */\n\n    ret = crypto_secretstream_xchacha20poly1305_init_push(state, header, k);\n    assert(ret == 0);\n    ret = crypto_secretstream_xchacha20poly1305_push\n        (state, c1, NULL, m1, m1_len, NULL, 0, 0);\n    assert(ret == 0);\n\n    crypto_secretstream_xchacha20poly1305_rekey(state);\n\n    ret = crypto_secretstream_xchacha20poly1305_push\n        (state, c2, NULL, m2, m2_len, NULL, 0, 0);\n    assert(ret == 0);\n\n    ret = crypto_secretstream_xchacha20poly1305_init_pull(state, header, k);\n    assert(ret == 0);\n    ret = crypto_secretstream_xchacha20poly1305_pull\n        (state, m1, NULL, &tag,\n         c1, m1_len + crypto_secretstream_xchacha20poly1305_ABYTES, NULL, 0);\n    assert(ret == 0);\n\n    ret = crypto_secretstream_xchacha20poly1305_pull\n        (state, m2, NULL, &tag,\n         c2, m2_len + crypto_secretstream_xchacha20poly1305_ABYTES, NULL, 0);\n    assert(ret == -1);\n\n    crypto_secretstream_xchacha20poly1305_rekey(state);\n\n    ret = crypto_secretstream_xchacha20poly1305_pull\n        (state, m2, NULL, &tag,\n         c2, m2_len + crypto_secretstream_xchacha20poly1305_ABYTES, NULL, 0);\n    assert(ret == 0);\n\n    /* with explicit rekeying using TAG_REKEY */\n\n    ret = crypto_secretstream_xchacha20poly1305_init_push(state, header, k);\n    assert(ret == 0);\n\n    memcpy(statesave, state, sizeof *state);\n\n    ret = crypto_secretstream_xchacha20poly1305_push\n        (state, c1, NULL, m1, m1_len, NULL, 0, crypto_secretstream_xchacha20poly1305_TAG_REKEY);\n    assert(ret == 0);\n\n    ret = crypto_secretstream_xchacha20poly1305_push\n        (state, c2, NULL, m2, m2_len, NULL, 0, 0);\n    assert(ret == 0);\n\n    memcpy(csave, c2, m2_len + crypto_secretstream_xchacha20poly1305_ABYTES);\n\n    ret = crypto_secretstream_xchacha20poly1305_init_pull(state, header, k);\n    assert(ret == 0);\n    ret = crypto_secretstream_xchacha20poly1305_pull\n        (state, m1, NULL, &tag,\n         c1, m1_len + crypto_secretstream_xchacha20poly1305_ABYTES, &tag, 0);\n    assert(ret == 0);\n    assert(tag == crypto_secretstream_xchacha20poly1305_TAG_REKEY);\n\n    ret = crypto_secretstream_xchacha20poly1305_pull\n        (state, m2, NULL, &tag,\n         c2, m2_len + crypto_secretstream_xchacha20poly1305_ABYTES, &tag, 0);\n    assert(ret == 0);\n    assert(tag == 0);\n\n    memcpy(state, statesave, sizeof *state);\n\n    ret = crypto_secretstream_xchacha20poly1305_push\n        (state, c1, NULL, m1, m1_len, NULL, 0, 0);\n    assert(ret == 0);\n\n    ret = crypto_secretstream_xchacha20poly1305_push\n        (state, c2, NULL, m2, m2_len, NULL, 0, 0);\n    assert(ret == 0);\n\n    assert(memcmp(csave, c2, m2_len + crypto_secretstream_xchacha20poly1305_ABYTES) != 0);\n\n    /* New stream */\n\n    ret = crypto_secretstream_xchacha20poly1305_init_push(state, header, k);\n    assert(ret == 0);\n\n    ret = crypto_secretstream_xchacha20poly1305_push\n        (state, c1, &res_len, m1, m1_len, NULL, 0,\n         crypto_secretstream_xchacha20poly1305_TAG_PUSH);\n    assert(ret == 0);\n    assert(res_len == m1_len + crypto_secretstream_xchacha20poly1305_ABYTES);\n\n    /* Force a counter overflow, check that the key has been updated\n     * even though the tag was not changed to REKEY */\n\n    memset(state->nonce, 0xff, 4U);\n    state_copy = *state;\n\n    ret = crypto_secretstream_xchacha20poly1305_push\n        (state, c2, NULL, m2, m2_len, ad, 0, 0);\n    assert(ret == 0);\n\n    assert(memcmp(state_copy.k, state->k, sizeof state->k) != 0);\n    assert(memcmp(state_copy.nonce, state->nonce, sizeof state->nonce) != 0);\n    assert(state->nonce[0] == 1U);\n    assert(sodium_is_zero(state->nonce + 1, 3U));\n\n    ret = crypto_secretstream_xchacha20poly1305_init_pull(state, header, k);\n    assert(ret == 0);\n\n    ret = crypto_secretstream_xchacha20poly1305_pull\n        (state, m1, &res_len, &tag,\n         c1, m1_len + crypto_secretstream_xchacha20poly1305_ABYTES, NULL, 0);\n    assert(ret == 0);\n    assert(tag == crypto_secretstream_xchacha20poly1305_TAG_PUSH);\n    assert(memcmp(m1, m1_, m1_len) == 0);\n    assert(res_len == m1_len);\n\n    memset(state->nonce, 0xff, 4U);\n\n    ret = crypto_secretstream_xchacha20poly1305_pull\n        (state, m2, NULL, &tag,\n         c2, m2_len + crypto_secretstream_xchacha20poly1305_ABYTES, NULL, 0);\n    assert(ret == 0);\n    assert(tag == 0);\n    assert(memcmp(m2, m2_, m2_len) == 0);\n\n    sodium_free(m3_);\n    sodium_free(m2_);\n    sodium_free(m1_);\n    sodium_free(m3);\n    sodium_free(m2);\n    sodium_free(m1);\n    sodium_free(ad);\n    sodium_free(csave);\n    sodium_free(c3);\n    sodium_free(c2);\n    sodium_free(c1);\n    sodium_free(k);\n    sodium_free(header);\n    sodium_free(statesave);\n    sodium_free(state);\n\n    assert(crypto_secretstream_xchacha20poly1305_abytes() ==\n           crypto_secretstream_xchacha20poly1305_ABYTES);\n    assert(crypto_secretstream_xchacha20poly1305_headerbytes() ==\n           crypto_secretstream_xchacha20poly1305_HEADERBYTES);\n    assert(crypto_secretstream_xchacha20poly1305_keybytes() ==\n           crypto_secretstream_xchacha20poly1305_KEYBYTES);\n    assert(crypto_secretstream_xchacha20poly1305_messagebytes_max() ==\n           crypto_secretstream_xchacha20poly1305_MESSAGEBYTES_MAX);\n\n    assert(crypto_secretstream_xchacha20poly1305_tag_message() ==\n           crypto_secretstream_xchacha20poly1305_TAG_MESSAGE);\n    assert(crypto_secretstream_xchacha20poly1305_tag_push() ==\n           crypto_secretstream_xchacha20poly1305_TAG_PUSH);\n    assert(crypto_secretstream_xchacha20poly1305_tag_rekey() ==\n           crypto_secretstream_xchacha20poly1305_TAG_REKEY);\n    assert(crypto_secretstream_xchacha20poly1305_tag_final() ==\n           crypto_secretstream_xchacha20poly1305_TAG_FINAL);\n\n    printf(\"OK\\n\");\n\n    return 0;\n}\n"
  },
  {
    "path": "test/default/secretstream_xchacha20poly1305.exp",
    "content": "OK\n"
  },
  {
    "path": "test/default/shorthash.c",
    "content": "\n#define TEST_NAME \"shorthash\"\n#include \"cmptest.h\"\n\n#define MAXLEN 64\n\nint\nmain(void)\n{\n    unsigned char in[MAXLEN];\n    unsigned char out[crypto_shorthash_BYTES];\n    unsigned char k[crypto_shorthash_KEYBYTES];\n    size_t        i;\n    size_t        j;\n\n    for (i = 0; i < crypto_shorthash_KEYBYTES; ++i) {\n        k[i] = (unsigned char) i;\n    }\n    for (i = 0; i < MAXLEN; ++i) {\n        in[i] = (unsigned char) i;\n        crypto_shorthash(out, in, (unsigned long long) i, k);\n        for (j = 0; j < crypto_shorthash_BYTES; ++j) {\n            printf(\"%02x\", (unsigned int) out[j]);\n        }\n        printf(\"\\n\");\n    }\n    assert(crypto_shorthash_bytes() > 0);\n    assert(crypto_shorthash_keybytes() > 0);\n    assert(strcmp(crypto_shorthash_primitive(), \"siphash24\") == 0);\n    assert(crypto_shorthash_bytes() == crypto_shorthash_siphash24_bytes());\n    assert(crypto_shorthash_keybytes() ==\n           crypto_shorthash_siphash24_keybytes());\n\n    return 0;\n}\n"
  },
  {
    "path": "test/default/shorthash.exp",
    "content": "310e0edd47db6f72\nfd67dc93c539f874\n5a4fa9d909806c0d\n2d7efbd796666785\nb7877127e09427cf\n8da699cd64557618\ncee3fe586e46c9cb\n37d1018bf50002ab\n6224939a79f5f593\nb0e4a90bdf82009e\nf3b9dd94c5bb5d7a\na7ad6b22462fb3f4\nfbe50e86bc8f1e75\n903d84c02756ea14\neef27a8e90ca23f7\ne545be4961ca29a1\ndb9bc2577fcc2a3f\n9447be2cf5e99a69\n9cd38d96f0b3c14b\nbd6179a71dc96dbb\n98eea21af25cd6be\nc7673b2eb0cbf2d0\n883ea3e395675393\nc8ce5ccd8c030ca8\n94af49f6c650adb8\neab8858ade92e1bc\nf315bb5bb835d817\nadcf6b0763612e2f\na5c91da7acaa4dde\n716595876650a2a6\n28ef495c53a387ad\n42c341d8fa92d832\nce7cf2722f512771\ne37859f94623f3a7\n381205bb1ab0e012\nae97a10fd434e015\nb4a31508beff4d31\n81396229f0907902\n4d0cf49ee5d4dcca\n5c73336a76d8bf9a\nd0a704536ba93e0e\n925958fcd6420cad\na915c29bc8067318\n952b79f3bc0aa6d4\nf21df2e41d4535f9\n87577519048f53a9\n10a56cf5dfcd9adb\neb75095ccd986cd0\n51a9cb9ecba312e6\n96afadfc2ce666c7\n72fe52975a4364ee\n5a1645b276d592a1\nb274cb8ebf87870a\n6f9bb4203de7b381\neaecb2a30b22a87f\n9924a43cc1315724\nbd838d3aafbf8db7\n0b1a2a3265d51aea\n135079a3231ce660\n932b2846e4d70666\ne1915f5cb1eca46c\nf325965ca16d629f\n575ff28e60381be5\n724506eb4c328a95\n"
  },
  {
    "path": "test/default/sign.c",
    "content": "\n#define TEST_NAME \"sign\"\n#include \"cmptest.h\"\n\nstatic const unsigned char keypair_seed[]\n    = { 0x42, 0x11, 0x51, 0xa4, 0x59, 0xfa, 0xea, 0xde, 0x3d, 0x24, 0x71,\n        0x15, 0xf9, 0x4a, 0xed, 0xae, 0x42, 0x31, 0x81, 0x24, 0x09, 0x5a,\n        0xfa, 0xbe, 0x4d, 0x14, 0x51, 0xa5, 0x59, 0xfa, 0xed, 0xee };\n\ntypedef struct TestData_ {\n    const unsigned char  sk[crypto_sign_SEEDBYTES];\n    const unsigned char  pk[crypto_sign_PUBLICKEYBYTES];\n    const unsigned char  sig[crypto_sign_BYTES];\n    const char          *m;\n} TestData;\n\nstatic TestData test_data[] = {\n{{0x9d,0x61,0xb1,0x9d,0xef,0xfd,0x5a,0x60,0xba,0x84,0x4a,0xf4,0x92,0xec,0x2c,0xc4,0x44,0x49,0xc5,0x69,0x7b,0x32,0x69,0x19,0x70,0x3b,0xac,0x03,0x1c,0xae,0x7f,0x60,},{0xd7,0x5a,0x98,0x01,0x82,0xb1,0x0a,0xb7,0xd5,0x4b,0xfe,0xd3,0xc9,0x64,0x07,0x3a,0x0e,0xe1,0x72,0xf3,0xda,0xa6,0x23,0x25,0xaf,0x02,0x1a,0x68,0xf7,0x07,0x51,0x1a,},{0xe5,0x56,0x43,0x00,0xc3,0x60,0xac,0x72,0x90,0x86,0xe2,0xcc,0x80,0x6e,0x82,0x8a,0x84,0x87,0x7f,0x1e,0xb8,0xe5,0xd9,0x74,0xd8,0x73,0xe0,0x65,0x22,0x49,0x01,0x55,0x5f,0xb8,0x82,0x15,0x90,0xa3,0x3b,0xac,0xc6,0x1e,0x39,0x70,0x1c,0xf9,0xb4,0x6b,0xd2,0x5b,0xf5,0xf0,0x59,0x5b,0xbe,0x24,0x65,0x51,0x41,0x43,0x8e,0x7a,0x10,0x0b,},\"\"},\n{{0x4c,0xcd,0x08,0x9b,0x28,0xff,0x96,0xda,0x9d,0xb6,0xc3,0x46,0xec,0x11,0x4e,0x0f,0x5b,0x8a,0x31,0x9f,0x35,0xab,0xa6,0x24,0xda,0x8c,0xf6,0xed,0x4f,0xb8,0xa6,0xfb,},{0x3d,0x40,0x17,0xc3,0xe8,0x43,0x89,0x5a,0x92,0xb7,0x0a,0xa7,0x4d,0x1b,0x7e,0xbc,0x9c,0x98,0x2c,0xcf,0x2e,0xc4,0x96,0x8c,0xc0,0xcd,0x55,0xf1,0x2a,0xf4,0x66,0x0c,},{0x92,0xa0,0x09,0xa9,0xf0,0xd4,0xca,0xb8,0x72,0x0e,0x82,0x0b,0x5f,0x64,0x25,0x40,0xa2,0xb2,0x7b,0x54,0x16,0x50,0x3f,0x8f,0xb3,0x76,0x22,0x23,0xeb,0xdb,0x69,0xda,0x08,0x5a,0xc1,0xe4,0x3e,0x15,0x99,0x6e,0x45,0x8f,0x36,0x13,0xd0,0xf1,0x1d,0x8c,0x38,0x7b,0x2e,0xae,0xb4,0x30,0x2a,0xee,0xb0,0x0d,0x29,0x16,0x12,0xbb,0x0c,0x00,},\"\\x72\"},\n{{0xc5,0xaa,0x8d,0xf4,0x3f,0x9f,0x83,0x7b,0xed,0xb7,0x44,0x2f,0x31,0xdc,0xb7,0xb1,0x66,0xd3,0x85,0x35,0x07,0x6f,0x09,0x4b,0x85,0xce,0x3a,0x2e,0x0b,0x44,0x58,0xf7,},{0xfc,0x51,0xcd,0x8e,0x62,0x18,0xa1,0xa3,0x8d,0xa4,0x7e,0xd0,0x02,0x30,0xf0,0x58,0x08,0x16,0xed,0x13,0xba,0x33,0x03,0xac,0x5d,0xeb,0x91,0x15,0x48,0x90,0x80,0x25,},{0x62,0x91,0xd6,0x57,0xde,0xec,0x24,0x02,0x48,0x27,0xe6,0x9c,0x3a,0xbe,0x01,0xa3,0x0c,0xe5,0x48,0xa2,0x84,0x74,0x3a,0x44,0x5e,0x36,0x80,0xd7,0xdb,0x5a,0xc3,0xac,0x18,0xff,0x9b,0x53,0x8d,0x16,0xf2,0x90,0xae,0x67,0xf7,0x60,0x98,0x4d,0xc6,0x59,0x4a,0x7c,0x15,0xe9,0x71,0x6e,0xd2,0x8d,0xc0,0x27,0xbe,0xce,0xea,0x1e,0xc4,0x0a,},\"\\xaf\\x82\"},\n{{0x0d,0x4a,0x05,0xb0,0x73,0x52,0xa5,0x43,0x6e,0x18,0x03,0x56,0xda,0x0a,0xe6,0xef,0xa0,0x34,0x5f,0xf7,0xfb,0x15,0x72,0x57,0x57,0x72,0xe8,0x00,0x5e,0xd9,0x78,0xe9,},{0xe6,0x1a,0x18,0x5b,0xce,0xf2,0x61,0x3a,0x6c,0x7c,0xb7,0x97,0x63,0xce,0x94,0x5d,0x3b,0x24,0x5d,0x76,0x11,0x4d,0xd4,0x40,0xbc,0xf5,0xf2,0xdc,0x1a,0xa5,0x70,0x57,},{0xd9,0x86,0x8d,0x52,0xc2,0xbe,0xbc,0xe5,0xf3,0xfa,0x5a,0x79,0x89,0x19,0x70,0xf3,0x09,0xcb,0x65,0x91,0xe3,0xe1,0x70,0x2a,0x70,0x27,0x6f,0xa9,0x7c,0x24,0xb3,0xa8,0xe5,0x86,0x06,0xc3,0x8c,0x97,0x58,0x52,0x9d,0xa5,0x0e,0xe3,0x1b,0x82,0x19,0xcb,0xa4,0x52,0x71,0xc6,0x89,0xaf,0xa6,0x0b,0x0e,0xa2,0x6c,0x99,0xdb,0x19,0xb0,0x0c,},\"\\xcb\\xc7\\x7b\"},\n{{0x6d,0xf9,0x34,0x0c,0x13,0x8c,0xc1,0x88,0xb5,0xfe,0x44,0x64,0xeb,0xaa,0x3f,0x7f,0xc2,0x06,0xa2,0xd5,0x5c,0x34,0x34,0x70,0x7e,0x74,0xc9,0xfc,0x04,0xe2,0x0e,0xbb,},{0xc0,0xda,0xc1,0x02,0xc4,0x53,0x31,0x86,0xe2,0x5d,0xc4,0x31,0x28,0x47,0x23,0x53,0xea,0xab,0xdb,0x87,0x8b,0x15,0x2a,0xeb,0x8e,0x00,0x1f,0x92,0xd9,0x02,0x33,0xa7,},{0x12,0x4f,0x6f,0xc6,0xb0,0xd1,0x00,0x84,0x27,0x69,0xe7,0x1b,0xd5,0x30,0x66,0x4d,0x88,0x8d,0xf8,0x50,0x7d,0xf6,0xc5,0x6d,0xed,0xfd,0xb5,0x09,0xae,0xb9,0x34,0x16,0xe2,0x6b,0x91,0x8d,0x38,0xaa,0x06,0x30,0x5d,0xf3,0x09,0x56,0x97,0xc1,0x8b,0x2a,0xa8,0x32,0xea,0xa5,0x2e,0xdc,0x0a,0xe4,0x9f,0xba,0xe5,0xa8,0x5e,0x15,0x0c,0x07,},\"\\x5f\\x4c\\x89\\x89\"},\n{{0xb7,0x80,0x38,0x1a,0x65,0xed,0xf8,0xb7,0x8f,0x69,0x45,0xe8,0xdb,0xec,0x79,0x41,0xac,0x04,0x9f,0xd4,0xc6,0x10,0x40,0xcf,0x0c,0x32,0x43,0x57,0x97,0x5a,0x29,0x3c,},{0xe2,0x53,0xaf,0x07,0x66,0x80,0x4b,0x86,0x9b,0xb1,0x59,0x5b,0xe9,0x76,0x5b,0x53,0x48,0x86,0xbb,0xaa,0xb8,0x30,0x5b,0xf5,0x0d,0xbc,0x7f,0x89,0x9b,0xfb,0x5f,0x01,},{0xb2,0xfc,0x46,0xad,0x47,0xaf,0x46,0x44,0x78,0xc1,0x99,0xe1,0xf8,0xbe,0x16,0x9f,0x1b,0xe6,0x32,0x7c,0x7f,0x9a,0x0a,0x66,0x89,0x37,0x1c,0xa9,0x4c,0xaf,0x04,0x06,0x4a,0x01,0xb2,0x2a,0xff,0x15,0x20,0xab,0xd5,0x89,0x51,0x34,0x16,0x03,0xfa,0xed,0x76,0x8c,0xf7,0x8c,0xe9,0x7a,0xe7,0xb0,0x38,0xab,0xfe,0x45,0x6a,0xa1,0x7c,0x09,},\"\\x18\\xb6\\xbe\\xc0\\x97\"},\n{{0x78,0xae,0x9e,0xff,0xe6,0xf2,0x45,0xe9,0x24,0xa7,0xbe,0x63,0x04,0x11,0x46,0xeb,0xc6,0x70,0xdb,0xd3,0x06,0x0c,0xba,0x67,0xfb,0xc6,0x21,0x6f,0xeb,0xc4,0x45,0x46,},{0xfb,0xcf,0xbf,0xa4,0x05,0x05,0xd7,0xf2,0xbe,0x44,0x4a,0x33,0xd1,0x85,0xcc,0x54,0xe1,0x6d,0x61,0x52,0x60,0xe1,0x64,0x0b,0x2b,0x50,0x87,0xb8,0x3e,0xe3,0x64,0x3d,},{0x6e,0xd6,0x29,0xfc,0x1d,0x9c,0xe9,0xe1,0x46,0x87,0x55,0xff,0x63,0x6d,0x5a,0x3f,0x40,0xa5,0xd9,0xc9,0x1a,0xfd,0x93,0xb7,0x9d,0x24,0x18,0x30,0xf7,0xe5,0xfa,0x29,0x85,0x4b,0x8f,0x20,0xcc,0x6e,0xec,0xbb,0x24,0x8d,0xbd,0x8d,0x16,0xd1,0x4e,0x99,0x75,0x21,0x94,0xe4,0x90,0x4d,0x09,0xc7,0x4d,0x63,0x95,0x18,0x83,0x9d,0x23,0x00,},\"\\x89\\x01\\x0d\\x85\\x59\\x72\"},\n{{0x69,0x18,0x65,0xbf,0xc8,0x2a,0x1e,0x4b,0x57,0x4e,0xec,0xde,0x4c,0x75,0x19,0x09,0x3f,0xaf,0x0c,0xf8,0x67,0x38,0x02,0x34,0xe3,0x66,0x46,0x45,0xc6,0x1c,0x5f,0x79,},{0x98,0xa5,0xe3,0xa3,0x6e,0x67,0xaa,0xba,0x89,0x88,0x8b,0xf0,0x93,0xde,0x1a,0xd9,0x63,0xe7,0x74,0x01,0x3b,0x39,0x02,0xbf,0xab,0x35,0x6d,0x8b,0x90,0x17,0x8a,0x63,},{0x6e,0x0a,0xf2,0xfe,0x55,0xae,0x37,0x7a,0x6b,0x7a,0x72,0x78,0xed,0xfb,0x41,0x9b,0xd3,0x21,0xe0,0x6d,0x0d,0xf5,0xe2,0x70,0x37,0xdb,0x88,0x12,0xe7,0xe3,0x52,0x98,0x10,0xfa,0x55,0x52,0xf6,0xc0,0x02,0x09,0x85,0xca,0x17,0xa0,0xe0,0x2e,0x03,0x6d,0x7b,0x22,0x2a,0x24,0xf9,0x9b,0x77,0xb7,0x5f,0xdd,0x16,0xcb,0x05,0x56,0x81,0x07,},\"\\xb4\\xa8\\xf3\\x81\\xe7\\x0e\\x7a\"},\n{{0x3b,0x26,0x51,0x6f,0xb3,0xdc,0x88,0xeb,0x18,0x1b,0x9e,0xd7,0x3f,0x0b,0xcd,0x52,0xbc,0xd6,0xb4,0xc7,0x88,0xe4,0xbc,0xaf,0x46,0x05,0x7f,0xd0,0x78,0xbe,0xe0,0x73,},{0xf8,0x1f,0xb5,0x4a,0x82,0x5f,0xce,0xd9,0x5e,0xb0,0x33,0xaf,0xcd,0x64,0x31,0x40,0x75,0xab,0xfb,0x0a,0xbd,0x20,0xa9,0x70,0x89,0x25,0x03,0x43,0x6f,0x34,0xb8,0x63,},{0xd6,0xad,0xde,0xc5,0xaf,0xb0,0x52,0x8a,0xc1,0x7b,0xb1,0x78,0xd3,0xe7,0xf2,0x88,0x7f,0x9a,0xdb,0xb1,0xad,0x16,0xe1,0x10,0x54,0x5e,0xf3,0xbc,0x57,0xf9,0xde,0x23,0x14,0xa5,0xc8,0x38,0x8f,0x72,0x3b,0x89,0x07,0xbe,0x0f,0x3a,0xc9,0x0c,0x62,0x59,0xbb,0xe8,0x85,0xec,0xc1,0x76,0x45,0xdf,0x3d,0xb7,0xd4,0x88,0xf8,0x05,0xfa,0x08,},\"\\x42\\x84\\xab\\xc5\\x1b\\xb6\\x72\\x35\"},\n{{0xed,0xc6,0xf5,0xfb,0xdd,0x1c,0xee,0x4d,0x10,0x1c,0x06,0x35,0x30,0xa3,0x04,0x90,0xb2,0x21,0xbe,0x68,0xc0,0x36,0xf5,0xb0,0x7d,0x0f,0x95,0x3b,0x74,0x5d,0xf1,0x92,},{0xc1,0xa4,0x9c,0x66,0xe6,0x17,0xf9,0xef,0x5e,0xc6,0x6b,0xc4,0xc6,0x56,0x4c,0xa3,0x3d,0xe2,0xa5,0xfb,0x5e,0x14,0x64,0x06,0x2e,0x6d,0x6c,0x62,0x19,0x15,0x5e,0xfd,},{0x2c,0x76,0xa0,0x4a,0xf2,0x39,0x1c,0x14,0x70,0x82,0xe3,0x3f,0xaa,0xcd,0xbe,0x56,0x64,0x2a,0x1e,0x13,0x4b,0xd3,0x88,0x62,0x0b,0x85,0x2b,0x90,0x1a,0x6b,0xc1,0x6f,0xf6,0xc9,0xcc,0x94,0x04,0xc4,0x1d,0xea,0x12,0xed,0x28,0x1d,0xa0,0x67,0xa1,0x51,0x38,0x66,0xf9,0xd9,0x64,0xf8,0xbd,0xd2,0x49,0x53,0x85,0x6c,0x50,0x04,0x29,0x01,},\"\\x67\\x2b\\xf8\\x96\\x5d\\x04\\xbc\\x51\\x46\"},\n{{0x4e,0x7d,0x21,0xfb,0x3b,0x18,0x97,0x57,0x1a,0x44,0x58,0x33,0xbe,0x0f,0x9f,0xd4,0x1c,0xd6,0x2b,0xe3,0xaa,0x04,0x04,0x0f,0x89,0x34,0xe1,0xfc,0xbd,0xca,0xcd,0x45,},{0x31,0xb2,0x52,0x4b,0x83,0x48,0xf7,0xab,0x1d,0xfa,0xfa,0x67,0x5c,0xc5,0x38,0xe9,0xa8,0x4e,0x3f,0xe5,0x81,0x9e,0x27,0xc1,0x2a,0xd8,0xbb,0xc1,0xa3,0x6e,0x4d,0xff,},{0x28,0xe4,0x59,0x8c,0x41,0x5a,0xe9,0xde,0x01,0xf0,0x3f,0x9f,0x3f,0xab,0x4e,0x91,0x9e,0x8b,0xf5,0x37,0xdd,0x2b,0x0c,0xdf,0x6e,0x79,0xb9,0xe6,0x55,0x9c,0x94,0x09,0xd9,0x15,0x1a,0x4c,0x40,0xf0,0x83,0x19,0x39,0x37,0x62,0x7c,0x36,0x94,0x88,0x25,0x9e,0x99,0xda,0x5a,0x9f,0x0a,0x87,0x49,0x7f,0xa6,0x69,0x6a,0x5d,0xd6,0xce,0x08,},\"\\x33\\xd7\\xa7\\x86\\xad\\xed\\x8c\\x1b\\xf6\\x91\"},\n{{0xa9,0x80,0xf8,0x92,0xdb,0x13,0xc9,0x9a,0x3e,0x89,0x71,0xe9,0x65,0xb2,0xff,0x3d,0x41,0xea,0xfd,0x54,0x09,0x3b,0xc9,0xf3,0x4d,0x1f,0xd2,0x2d,0x84,0x11,0x5b,0xb6,},{0x44,0xb5,0x7e,0xe3,0x0c,0xdb,0x55,0x82,0x9d,0x0a,0x5d,0x4f,0x04,0x6b,0xae,0xf0,0x78,0xf1,0xe9,0x7a,0x7f,0x21,0xb6,0x2d,0x75,0xf8,0xe9,0x6e,0xa1,0x39,0xc3,0x5f,},{0x77,0xd3,0x89,0xe5,0x99,0x63,0x0d,0x93,0x40,0x76,0x32,0x95,0x83,0xcd,0x41,0x05,0xa6,0x49,0xa9,0x29,0x2a,0xbc,0x44,0xcd,0x28,0xc4,0x00,0x00,0xc8,0xe2,0xf5,0xac,0x76,0x60,0xa8,0x1c,0x85,0xb7,0x2a,0xf8,0x45,0x2d,0x7d,0x25,0xc0,0x70,0x86,0x1d,0xae,0x91,0x60,0x1c,0x78,0x03,0xd6,0x56,0x53,0x16,0x50,0xdd,0x4e,0x5c,0x41,0x00,},\"\\x34\\x86\\xf6\\x88\\x48\\xa6\\x5a\\x0e\\xb5\\x50\\x7d\"},\n{{0x5b,0x5a,0x61,0x9f,0x8c,0xe1,0xc6,0x6d,0x7c,0xe2,0x6e,0x5a,0x2a,0xe7,0xb0,0xc0,0x4f,0xeb,0xcd,0x34,0x6d,0x28,0x6c,0x92,0x9e,0x19,0xd0,0xd5,0x97,0x3b,0xfe,0xf9,},{0x6f,0xe8,0x36,0x93,0xd0,0x11,0xd1,0x11,0x13,0x1c,0x4f,0x3f,0xba,0xaa,0x40,0xa9,0xd3,0xd7,0x6b,0x30,0x01,0x2f,0xf7,0x3b,0xb0,0xe3,0x9e,0xc2,0x7a,0xb1,0x82,0x57,},{0x0f,0x9a,0xd9,0x79,0x30,0x33,0xa2,0xfa,0x06,0x61,0x4b,0x27,0x7d,0x37,0x38,0x1e,0x6d,0x94,0xf6,0x5a,0xc2,0xa5,0xa9,0x45,0x58,0xd0,0x9e,0xd6,0xce,0x92,0x22,0x58,0xc1,0xa5,0x67,0x95,0x2e,0x86,0x3a,0xc9,0x42,0x97,0xae,0xc3,0xc0,0xd0,0xc8,0xdd,0xf7,0x10,0x84,0xe5,0x04,0x86,0x0b,0xb6,0xba,0x27,0x44,0x9b,0x55,0xad,0xc4,0x0e,},\"\\x5a\\x8d\\x9d\\x0a\\x22\\x35\\x7e\\x66\\x55\\xf9\\xc7\\x85\"},\n{{0x94,0x0c,0x89,0xfe,0x40,0xa8,0x1d,0xaf,0xbd,0xb2,0x41,0x6d,0x14,0xae,0x46,0x91,0x19,0x86,0x97,0x44,0x41,0x0c,0x33,0x03,0xbf,0xaa,0x02,0x41,0xda,0xc5,0x78,0x00,},{0xa2,0xeb,0x8c,0x05,0x01,0xe3,0x0b,0xae,0x0c,0xf8,0x42,0xd2,0xbd,0xe8,0xde,0xc7,0x38,0x6f,0x6b,0x7f,0xc3,0x98,0x1b,0x8c,0x57,0xc9,0x79,0x2b,0xb9,0x4c,0xf2,0xdd,},{0xd8,0xbb,0x64,0xaa,0xd8,0xc9,0x95,0x5a,0x11,0x5a,0x79,0x3a,0xdd,0xd2,0x4f,0x7f,0x2b,0x07,0x76,0x48,0x71,0x4f,0x49,0xc4,0x69,0x4e,0xc9,0x95,0xb3,0x30,0xd0,0x9d,0x64,0x0d,0xf3,0x10,0xf4,0x47,0xfd,0x7b,0x6c,0xb5,0xc1,0x4f,0x9f,0xe9,0xf4,0x90,0xbc,0xf8,0xcf,0xad,0xbf,0xd2,0x16,0x9c,0x8a,0xc2,0x0d,0x3b,0x8a,0xf4,0x9a,0x0c,},\"\\xb8\\x7d\\x38\\x13\\xe0\\x3f\\x58\\xcf\\x19\\xfd\\x0b\\x63\\x95\"},\n{{0x9a,0xca,0xd9,0x59,0xd2,0x16,0x21,0x2d,0x78,0x9a,0x11,0x92,0x52,0xeb,0xfe,0x0c,0x96,0x51,0x2a,0x23,0xc7,0x3b,0xd9,0xf3,0xb2,0x02,0x29,0x2d,0x69,0x16,0xa7,0x38,},{0xcf,0x3a,0xf8,0x98,0x46,0x7a,0x5b,0x7a,0x52,0xd3,0x3d,0x53,0xbc,0x03,0x7e,0x26,0x42,0xa8,0xda,0x99,0x69,0x03,0xfc,0x25,0x22,0x17,0xe9,0xc0,0x33,0xe2,0xf2,0x91,},{0x6e,0xe3,0xfe,0x81,0xe2,0x3c,0x60,0xeb,0x23,0x12,0xb2,0x00,0x6b,0x3b,0x25,0xe6,0x83,0x8e,0x02,0x10,0x66,0x23,0xf8,0x44,0xc4,0x4e,0xdb,0x8d,0xaf,0xd6,0x6a,0xb0,0x67,0x10,0x87,0xfd,0x19,0x5d,0xf5,0xb8,0xf5,0x8a,0x1d,0x6e,0x52,0xaf,0x42,0x90,0x80,0x53,0xd5,0x5c,0x73,0x21,0x01,0x00,0x92,0x74,0x87,0x95,0xef,0x94,0xcf,0x06,},\"\\x55\\xc7\\xfa\\x43\\x4f\\x5e\\xd8\\xcd\\xec\\x2b\\x7a\\xea\\xc1\\x73\"},\n{{0xd5,0xae,0xee,0x41,0xee,0xb0,0xe9,0xd1,0xbf,0x83,0x37,0xf9,0x39,0x58,0x7e,0xbe,0x29,0x61,0x61,0xe6,0xbf,0x52,0x09,0xf5,0x91,0xec,0x93,0x9e,0x14,0x40,0xc3,0x00,},{0xfd,0x2a,0x56,0x57,0x23,0x16,0x3e,0x29,0xf5,0x3c,0x9d,0xe3,0xd5,0xe8,0xfb,0xe3,0x6a,0x7a,0xb6,0x6e,0x14,0x39,0xec,0x4e,0xae,0x9c,0x0a,0x60,0x4a,0xf2,0x91,0xa5,},{0xf6,0x8d,0x04,0x84,0x7e,0x5b,0x24,0x97,0x37,0x89,0x9c,0x01,0x4d,0x31,0xc8,0x05,0xc5,0x00,0x7a,0x62,0xc0,0xa1,0x0d,0x50,0xbb,0x15,0x38,0xc5,0xf3,0x55,0x03,0x95,0x1f,0xbc,0x1e,0x08,0x68,0x2f,0x2c,0xc0,0xc9,0x2e,0xfe,0x8f,0x49,0x85,0xde,0xc6,0x1d,0xcb,0xd5,0x4d,0x4b,0x94,0xa2,0x25,0x47,0xd2,0x44,0x51,0x27,0x1c,0x8b,0x00,},\"\\x0a\\x68\\x8e\\x79\\xbe\\x24\\xf8\\x66\\x28\\x6d\\x46\\x46\\xb5\\xd8\\x1c\"},\n{{0x0a,0x47,0xd1,0x04,0x52,0xae,0x2f,0xeb,0xec,0x51,0x8a,0x1c,0x7c,0x36,0x28,0x90,0xc3,0xfc,0x1a,0x49,0xd3,0x4b,0x03,0xb6,0x46,0x7d,0x35,0xc9,0x04,0xa8,0x36,0x2d,},{0x34,0xe5,0xa8,0x50,0x8c,0x47,0x43,0x74,0x69,0x62,0xc0,0x66,0xe4,0xba,0xde,0xa2,0x20,0x1b,0x8a,0xb4,0x84,0xde,0x5c,0x4f,0x94,0x47,0x6c,0xcd,0x21,0x43,0x95,0x5b,},{0x2a,0x3d,0x27,0xdc,0x40,0xd0,0xa8,0x12,0x79,0x49,0xa3,0xb7,0xf9,0x08,0xb3,0x68,0x8f,0x63,0xb7,0xf1,0x4f,0x65,0x1a,0xac,0xd7,0x15,0x94,0x0b,0xdb,0xe2,0x7a,0x08,0x09,0xaa,0xc1,0x42,0xf4,0x7a,0xb0,0xe1,0xe4,0x4f,0xa4,0x90,0xba,0x87,0xce,0x53,0x92,0xf3,0x3a,0x89,0x15,0x39,0xca,0xf1,0xef,0x4c,0x36,0x7c,0xae,0x54,0x50,0x0c,},\"\\xc9\\x42\\xfa\\x7a\\xc6\\xb2\\x3a\\xb7\\xff\\x61\\x2f\\xdc\\x8e\\x68\\xef\\x39\"},\n{{0xf8,0x14,0x8f,0x75,0x06,0xb7,0x75,0xef,0x46,0xfd,0xc8,0xe8,0xc7,0x56,0x51,0x68,0x12,0xd4,0x7d,0x6c,0xfb,0xfa,0x31,0x8c,0x27,0xc9,0xa2,0x26,0x41,0xe5,0x6f,0x17,},{0x04,0x45,0xe4,0x56,0xda,0xcc,0x7d,0x5b,0x0b,0xbe,0xd2,0x3c,0x82,0x00,0xcd,0xb7,0x4b,0xdc,0xb0,0x3e,0x4c,0x7b,0x73,0xf0,0xa2,0xb9,0xb4,0x6e,0xac,0x5d,0x43,0x72,},{0x36,0x53,0xcc,0xb2,0x12,0x19,0x20,0x2b,0x84,0x36,0xfb,0x41,0xa3,0x2b,0xa2,0x61,0x8c,0x4a,0x13,0x34,0x31,0xe6,0xe6,0x34,0x63,0xce,0xb3,0xb6,0x10,0x6c,0x4d,0x56,0xe1,0xd2,0xba,0x16,0x5b,0xa7,0x6e,0xaa,0xd3,0xdc,0x39,0xbf,0xfb,0x13,0x0f,0x1d,0xe3,0xd8,0xe6,0x42,0x7d,0xb5,0xb7,0x19,0x38,0xdb,0x4e,0x27,0x2b,0xc3,0xe2,0x0b,},\"\\x73\\x68\\x72\\x4a\\x5b\\x0e\\xfb\\x57\\xd2\\x8d\\x97\\x62\\x2d\\xbd\\xe7\\x25\\xaf\"},\n{{0x77,0xf8,0x86,0x91,0xc4,0xef,0xf2,0x3e,0xbb,0x73,0x64,0x94,0x70,0x92,0x95,0x1a,0x5f,0xf3,0xf1,0x07,0x85,0xb4,0x17,0xe9,0x18,0x82,0x3a,0x55,0x2d,0xab,0x7c,0x75,},{0x74,0xd2,0x91,0x27,0xf1,0x99,0xd8,0x6a,0x86,0x76,0xae,0xc3,0x3b,0x4c,0xe3,0xf2,0x25,0xcc,0xb1,0x91,0xf5,0x2c,0x19,0x1c,0xcd,0x1e,0x8c,0xca,0x65,0x21,0x3a,0x6b,},{0xfb,0xe9,0x29,0xd7,0x43,0xa0,0x3c,0x17,0x91,0x05,0x75,0x49,0x2f,0x30,0x92,0xee,0x2a,0x2b,0xf1,0x4a,0x60,0xa3,0xfc,0xac,0xec,0x74,0xa5,0x8c,0x73,0x34,0x51,0x0f,0xc2,0x62,0xdb,0x58,0x27,0x91,0x32,0x2d,0x6c,0x8c,0x41,0xf1,0x70,0x0a,0xdb,0x80,0x02,0x7e,0xca,0xbc,0x14,0x27,0x0b,0x70,0x34,0x44,0xae,0x3e,0xe7,0x62,0x3e,0x0a,},\"\\xbd\\x8e\\x05\\x03\\x3f\\x3a\\x8b\\xcd\\xcb\\xf4\\xbe\\xce\\xb7\\x09\\x01\\xc8\\x2e\\x31\"},\n{{0xab,0x6f,0x7a,0xee,0x6a,0x08,0x37,0xb3,0x34,0xba,0x5e,0xb1,0xb2,0xad,0x7f,0xce,0xcf,0xab,0x7e,0x32,0x3c,0xab,0x18,0x7f,0xe2,0xe0,0xa9,0x5d,0x80,0xef,0xf1,0x32,},{0x5b,0x96,0xdc,0xa4,0x97,0x87,0x5b,0xf9,0x66,0x4c,0x5e,0x75,0xfa,0xcf,0x3f,0x9b,0xc5,0x4b,0xae,0x91,0x3d,0x66,0xca,0x15,0xee,0x85,0xf1,0x49,0x1c,0xa2,0x4d,0x2c,},{0x73,0xbc,0xa6,0x4e,0x9d,0xd0,0xdb,0x88,0x13,0x8e,0xed,0xfa,0xfc,0xea,0x8f,0x54,0x36,0xcf,0xb7,0x4b,0xfb,0x0e,0x77,0x33,0xcf,0x34,0x9b,0xaa,0x0c,0x49,0x77,0x5c,0x56,0xd5,0x93,0x4e,0x1d,0x38,0xe3,0x6f,0x39,0xb7,0xc5,0xbe,0xb0,0xa8,0x36,0x51,0x0c,0x45,0x12,0x6f,0x8e,0xc4,0xb6,0x81,0x05,0x19,0x90,0x5b,0x0c,0xa0,0x7c,0x09,},\"\\x81\\x71\\x45\\x6f\\x8b\\x90\\x71\\x89\\xb1\\xd7\\x79\\xe2\\x6b\\xc5\\xaf\\xbb\\x08\\xc6\\x7a\"},\n{{0x8d,0x13,0x5d,0xe7,0xc8,0x41,0x1b,0xbd,0xbd,0x1b,0x31,0xe5,0xdc,0x67,0x8f,0x2a,0xc7,0x10,0x9e,0x79,0x2b,0x60,0xf3,0x8c,0xd2,0x49,0x36,0xe8,0xa8,0x98,0xc3,0x2d,},{0x1c,0xa2,0x81,0x93,0x85,0x29,0x89,0x65,0x35,0xa7,0x71,0x4e,0x35,0x84,0x08,0x5b,0x86,0xef,0x9f,0xec,0x72,0x3f,0x42,0x81,0x9f,0xc8,0xdd,0x5d,0x8c,0x00,0x81,0x7f,},{0xa1,0xad,0xc2,0xbc,0x6a,0x2d,0x98,0x06,0x62,0x67,0x7e,0x7f,0xdf,0xf6,0x42,0x4d,0xe7,0xdb,0xa5,0x0f,0x57,0x95,0xca,0x90,0xfd,0xf3,0xe9,0x6e,0x25,0x6f,0x32,0x85,0xca,0xc7,0x1d,0x33,0x60,0x48,0x2e,0x99,0x3d,0x02,0x94,0xba,0x4e,0xc7,0x44,0x0c,0x61,0xaf,0xfd,0xf3,0x5f,0xe8,0x3e,0x6e,0x04,0x26,0x39,0x37,0xdb,0x93,0xf1,0x05,},\"\\x8b\\xa6\\xa4\\xc9\\xa1\\x5a\\x24\\x4a\\x9c\\x26\\xbb\\x2a\\x59\\xb1\\x02\\x6f\\x21\\x34\\x8b\\x49\"},\n{{0x0e,0x76,0x5d,0x72,0x0e,0x70,0x5f,0x93,0x66,0xc1,0xab,0x8c,0x3f,0xa8,0x4c,0x9a,0x44,0x37,0x0c,0x06,0x96,0x9f,0x80,0x32,0x96,0x88,0x4b,0x28,0x46,0xa6,0x52,0xa4,},{0x7f,0xae,0x45,0xdd,0x0a,0x05,0x97,0x10,0x26,0xd4,0x10,0xbc,0x49,0x7a,0xf5,0xbe,0x7d,0x08,0x27,0xa8,0x2a,0x14,0x5c,0x20,0x3f,0x62,0x5d,0xfc,0xb8,0xb0,0x3b,0xa8,},{0xbb,0x61,0xcf,0x84,0xde,0x61,0x86,0x22,0x07,0xc6,0xa4,0x55,0x25,0x8b,0xc4,0xdb,0x4e,0x15,0xee,0xa0,0x31,0x7f,0xf8,0x87,0x18,0xb8,0x82,0xa0,0x6b,0x5c,0xf6,0xec,0x6f,0xd2,0x0c,0x5a,0x26,0x9e,0x5d,0x5c,0x80,0x5b,0xaf,0xbc,0xc5,0x79,0xe2,0x59,0x0a,0xf4,0x14,0xc7,0xc2,0x27,0x27,0x3c,0x10,0x2a,0x10,0x07,0x0c,0xdf,0xe8,0x0f,},\"\\x1d\\x56\\x6a\\x62\\x32\\xbb\\xaa\\xb3\\xe6\\xd8\\x80\\x4b\\xb5\\x18\\xa4\\x98\\xed\\x0f\\x90\\x49\\x86\"},\n{{0xdb,0x36,0xe3,0x26,0xd6,0x76,0xc2,0xd1,0x9c,0xc8,0xfe,0x0c,0x14,0xb7,0x09,0x20,0x2e,0xcf,0xc7,0x61,0xd2,0x70,0x89,0xeb,0x6e,0xa4,0xb1,0xbb,0x02,0x1e,0xcf,0xa7,},{0x48,0x35,0x9b,0x85,0x0d,0x23,0xf0,0x71,0x5d,0x94,0xbb,0x8b,0xb7,0x5e,0x7e,0x14,0x32,0x2e,0xaf,0x14,0xf0,0x6f,0x28,0xa8,0x05,0x40,0x3f,0xbd,0xa0,0x02,0xfc,0x85,},{0xb6,0xdc,0xd0,0x99,0x89,0xdf,0xba,0xc5,0x43,0x22,0xa3,0xce,0x87,0x87,0x6e,0x1d,0x62,0x13,0x4d,0xa9,0x98,0xc7,0x9d,0x24,0xb5,0x0b,0xd7,0xa6,0xa7,0x97,0xd8,0x6a,0x0e,0x14,0xdc,0x9d,0x74,0x91,0xd6,0xc1,0x4a,0x67,0x3c,0x65,0x2c,0xfb,0xec,0x9f,0x96,0x2a,0x38,0xc9,0x45,0xda,0x3b,0x2f,0x08,0x79,0xd0,0xb6,0x8a,0x92,0x13,0x00,},\"\\x1b\\x0a\\xfb\\x0a\\xc4\\xba\\x9a\\xb7\\xb7\\x17\\x2c\\xdd\\xc9\\xeb\\x42\\xbb\\xa1\\xa6\\x4b\\xce\\x47\\xd4\"},\n{{0xc8,0x99,0x55,0xe0,0xf7,0x74,0x1d,0x90,0x5d,0xf0,0x73,0x0b,0x3d,0xc2,0xb0,0xce,0x1a,0x13,0x13,0x4e,0x44,0xfe,0xf3,0xd4,0x0d,0x60,0xc0,0x20,0xef,0x19,0xdf,0x77,},{0xfd,0xb3,0x06,0x73,0x40,0x2f,0xaf,0x1c,0x80,0x33,0x71,0x4f,0x35,0x17,0xe4,0x7c,0xc0,0xf9,0x1f,0xe7,0x0c,0xf3,0x83,0x6d,0x6c,0x23,0x63,0x6e,0x3f,0xd2,0x28,0x7c,},{0x7e,0xf6,0x6e,0x5e,0x86,0xf2,0x36,0x08,0x48,0xe0,0x01,0x4e,0x94,0x88,0x0a,0xe2,0x92,0x0a,0xd8,0xa3,0x18,0x5a,0x46,0xb3,0x5d,0x1e,0x07,0xde,0xa8,0xfa,0x8a,0xe4,0xf6,0xb8,0x43,0xba,0x17,0x4d,0x99,0xfa,0x79,0x86,0x65,0x4a,0x08,0x91,0xc1,0x2a,0x79,0x44,0x55,0x66,0x93,0x75,0xbf,0x92,0xaf,0x4c,0xc2,0x77,0x0b,0x57,0x9e,0x0c,},\"\\x50\\x7c\\x94\\xc8\\x82\\x0d\\x2a\\x57\\x93\\xcb\\xf3\\x44\\x2b\\x3d\\x71\\x93\\x6f\\x35\\xfe\\x3a\\xfe\\xf3\\x16\"},\n{{0x4e,0x62,0x62,0x7f,0xc2,0x21,0x14,0x24,0x78,0xae,0xe7,0xf0,0x07,0x81,0xf8,0x17,0xf6,0x62,0xe3,0xb7,0x5d,0xb2,0x9b,0xb1,0x4a,0xb4,0x7c,0xf8,0xe8,0x41,0x04,0xd6,},{0xb1,0xd3,0x98,0x01,0x89,0x20,0x27,0xd5,0x8a,0x8c,0x64,0x33,0x51,0x63,0x19,0x58,0x93,0xbf,0xc1,0xb6,0x1d,0xbe,0xca,0x32,0x60,0x49,0x7e,0x1f,0x30,0x37,0x11,0x07,},{0x83,0x6a,0xfa,0x76,0x4d,0x9c,0x48,0xaa,0x47,0x70,0xa4,0x38,0x8b,0x65,0x4e,0x97,0xb3,0xc1,0x6f,0x08,0x29,0x67,0xfe,0xbc,0xa2,0x7f,0x2f,0xc4,0x7d,0xdf,0xd9,0x24,0x4b,0x03,0xcf,0xc7,0x29,0x69,0x8a,0xcf,0x51,0x09,0x70,0x43,0x46,0xb6,0x0b,0x23,0x0f,0x25,0x54,0x30,0x08,0x9d,0xdc,0x56,0x91,0x23,0x99,0xd1,0x12,0x2d,0xe7,0x0a,},\"\\xd3\\xd6\\x15\\xa8\\x47\\x2d\\x99\\x62\\xbb\\x70\\xc5\\xb5\\x46\\x6a\\x3d\\x98\\x3a\\x48\\x11\\x04\\x6e\\x2a\\x0e\\xf5\"},\n{{0x6b,0x83,0xd7,0xda,0x89,0x08,0xc3,0xe7,0x20,0x5b,0x39,0x86,0x4b,0x56,0xe5,0xf3,0xe1,0x71,0x96,0xa3,0xfc,0x9c,0x2f,0x58,0x05,0xaa,0xd0,0xf5,0x55,0x4c,0x14,0x2d,},{0xd0,0xc8,0x46,0xf9,0x7f,0xe2,0x85,0x85,0xc0,0xee,0x15,0x90,0x15,0xd6,0x4c,0x56,0x31,0x1c,0x88,0x6e,0xdd,0xcc,0x18,0x5d,0x29,0x6d,0xbb,0x16,0x5d,0x26,0x25,0xd6,},{0x16,0xe4,0x62,0xa2,0x9a,0x6d,0xd4,0x98,0x68,0x5a,0x37,0x18,0xb3,0xee,0xd0,0x0c,0xc1,0x59,0x86,0x01,0xee,0x47,0x82,0x04,0x86,0x03,0x2d,0x6b,0x9a,0xcc,0x9b,0xf8,0x9f,0x57,0x68,0x4e,0x08,0xd8,0xc0,0xf0,0x55,0x89,0xcd,0xa2,0x88,0x2a,0x05,0xdc,0x4c,0x63,0xf9,0xd0,0x43,0x1d,0x65,0x52,0x71,0x08,0x12,0x43,0x30,0x03,0xbc,0x08,},\"\\x6a\\xda\\x80\\xb6\\xfa\\x84\\xf7\\x03\\x49\\x20\\x78\\x9e\\x85\\x36\\xb8\\x2d\\x5e\\x46\\x78\\x05\\x9a\\xed\\x27\\xf7\\x1c\"},\n{{0x19,0xa9,0x1f,0xe2,0x3a,0x4e,0x9e,0x33,0xec,0xc4,0x74,0x87,0x8f,0x57,0xc6,0x4c,0xf1,0x54,0xb3,0x94,0x20,0x34,0x87,0xa7,0x03,0x5e,0x1a,0xd9,0xcd,0x69,0x7b,0x0d,},{0x2b,0xf3,0x2b,0xa1,0x42,0xba,0x46,0x22,0xd8,0xf3,0xe2,0x9e,0xcd,0x85,0xee,0xa0,0x7b,0x9c,0x47,0xbe,0x9d,0x64,0x41,0x2c,0x9b,0x51,0x0b,0x27,0xdd,0x21,0x8b,0x23,},{0x88,0x1f,0x5b,0x8c,0x5a,0x03,0x0d,0xf0,0xf7,0x5b,0x66,0x34,0xb0,0x70,0xdd,0x27,0xbd,0x1e,0xe3,0xc0,0x87,0x38,0xae,0x34,0x93,0x38,0xb3,0xee,0x64,0x69,0xbb,0xf9,0x76,0x0b,0x13,0x57,0x8a,0x23,0x7d,0x51,0x82,0x53,0x5e,0xde,0x12,0x12,0x83,0x02,0x7a,0x90,0xb5,0xf8,0x65,0xd6,0x3a,0x65,0x37,0xdc,0xa0,0x7b,0x44,0x04,0x9a,0x0f,},\"\\x82\\xcb\\x53\\xc4\\xd5\\xa0\\x13\\xba\\xe5\\x07\\x07\\x59\\xec\\x06\\xc3\\xc6\\x95\\x5a\\xb7\\xa4\\x05\\x09\\x58\\xec\\x32\\x8c\"},\n{{0x1d,0x5b,0x8c,0xb6,0x21,0x5c,0x18,0x14,0x16,0x66,0xba,0xee,0xfc,0xf5,0xd6,0x9d,0xad,0x5b,0xea,0x9a,0x34,0x93,0xdd,0xda,0xa3,0x57,0xa4,0x39,0x7a,0x13,0xd4,0xde,},{0x94,0xd2,0x3d,0x97,0x7c,0x33,0xe4,0x9e,0x5e,0x49,0x92,0xc6,0x8f,0x25,0xec,0x99,0xa2,0x7c,0x41,0xce,0x6b,0x91,0xf2,0xbf,0xa0,0xcd,0x82,0x92,0xfe,0x96,0x28,0x35,},{0x3a,0xcd,0x39,0xbe,0xc8,0xc3,0xcd,0x2b,0x44,0x29,0x97,0x22,0xb5,0x85,0x0a,0x04,0x00,0xc1,0x44,0x35,0x90,0xfd,0x48,0x61,0xd5,0x9a,0xae,0x74,0x96,0xac,0xb3,0xdf,0x73,0xfc,0x3f,0xdf,0x79,0x69,0xae,0x5f,0x50,0xba,0x47,0xdd,0xdc,0x43,0x52,0x46,0xe5,0xfd,0x37,0x6f,0x6b,0x89,0x1c,0xd4,0xc2,0xca,0xf5,0xd6,0x14,0xb6,0x17,0x0c,},\"\\xa9\\xa8\\xcb\\xb0\\xad\\x58\\x51\\x24\\xe5\\x22\\xab\\xbf\\xb4\\x05\\x33\\xbd\\xd6\\xf4\\x93\\x47\\xb5\\x5b\\x18\\xe8\\x55\\x8c\\xb0\"},\n{{0x6a,0x91,0xb3,0x22,0x7c,0x47,0x22,0x99,0x08,0x9b,0xdc,0xe9,0x35,0x6e,0x72,0x6a,0x40,0xef,0xd8,0x40,0xf1,0x10,0x02,0x70,0x8b,0x7e,0xe5,0x5b,0x64,0x10,0x5a,0xc2,},{0x9d,0x08,0x4a,0xa8,0xb9,0x7a,0x6b,0x9b,0xaf,0xa4,0x96,0xdb,0xc6,0xf7,0x6f,0x33,0x06,0xa1,0x16,0xc9,0xd9,0x17,0xe6,0x81,0x52,0x0a,0x0f,0x91,0x43,0x69,0x42,0x7e,},{0xf5,0x87,0x54,0x23,0x78,0x1b,0x66,0x21,0x6c,0xb5,0xe8,0x99,0x8d,0xe5,0xd9,0xff,0xc2,0x9d,0x1d,0x67,0x10,0x70,0x54,0xac,0xe3,0x37,0x45,0x03,0xa9,0xc3,0xef,0x81,0x15,0x77,0xf2,0x69,0xde,0x81,0x29,0x67,0x44,0xbd,0x70,0x6f,0x1a,0xc4,0x78,0xca,0xf0,0x9b,0x54,0xcd,0xf8,0x71,0xb3,0xf8,0x02,0xbd,0x57,0xf9,0xa6,0xcb,0x91,0x01,},\"\\x5c\\xb6\\xf9\\xaa\\x59\\xb8\\x0e\\xca\\x14\\xf6\\xa6\\x8f\\xb4\\x0c\\xf0\\x7b\\x79\\x4e\\x75\\x17\\x1f\\xba\\x96\\x26\\x2c\\x1c\\x6a\\xdc\"},\n{{0x93,0xea,0xa8,0x54,0xd7,0x91,0xf0,0x53,0x72,0xce,0x72,0xb9,0x4f,0xc6,0x50,0x3b,0x2f,0xf8,0xae,0x68,0x19,0xe6,0xa2,0x1a,0xfe,0x82,0x5e,0x27,0xad,0xa9,0xe4,0xfb,},{0x16,0xce,0xe8,0xa3,0xf2,0x63,0x18,0x34,0xc8,0x8b,0x67,0x08,0x97,0xff,0x0b,0x08,0xce,0x90,0xcc,0x14,0x7b,0x45,0x93,0xb3,0xf1,0xf4,0x03,0x72,0x7f,0x7e,0x7a,0xd5,},{0xd8,0x34,0x19,0x7c,0x1a,0x30,0x80,0x61,0x4e,0x0a,0x5f,0xa0,0xaa,0xaa,0x80,0x88,0x24,0xf2,0x1c,0x38,0xd6,0x92,0xe6,0xff,0xbd,0x20,0x0f,0x7d,0xfb,0x3c,0x8f,0x44,0x40,0x2a,0x73,0x82,0x18,0x0b,0x98,0xad,0x0a,0xfc,0x8e,0xec,0x1a,0x02,0xac,0xec,0xf3,0xcb,0x7f,0xde,0x62,0x7b,0x9f,0x18,0x11,0x1f,0x26,0x0a,0xb1,0xdb,0x9a,0x07,},\"\\x32\\xfe\\x27\\x99\\x41\\x24\\x20\\x21\\x53\\xb5\\xc7\\x0d\\x38\\x13\\xfd\\xee\\x9c\\x2a\\xa6\\xe7\\xdc\\x74\\x3d\\x4d\\x53\\x5f\\x18\\x40\\xa5\"},\n{{0x94,0x1c,0xac,0x69,0xfb,0x7b,0x18,0x15,0xc5,0x7b,0xb9,0x87,0xc4,0xd6,0xc2,0xad,0x2c,0x35,0xd5,0xf9,0xa3,0x18,0x2a,0x79,0xd4,0xba,0x13,0xea,0xb2,0x53,0xa8,0xad,},{0x23,0xbe,0x32,0x3c,0x56,0x2d,0xfd,0x71,0xce,0x65,0xf5,0xbb,0xa5,0x6a,0x74,0xa3,0xa6,0xdf,0xc3,0x6b,0x57,0x3d,0x2f,0x94,0xf6,0x35,0xc7,0xf9,0xb4,0xfd,0x5a,0x5b,},{0x0f,0x8f,0xad,0x1e,0x6b,0xde,0x77,0x1b,0x4f,0x54,0x20,0xea,0xc7,0x5c,0x37,0x8b,0xae,0x6d,0xb5,0xac,0x66,0x50,0xcd,0x2b,0xc2,0x10,0xc1,0x82,0x3b,0x43,0x2b,0x48,0xe0,0x16,0xb1,0x05,0x95,0x45,0x8f,0xfa,0xb9,0x2f,0x7a,0x89,0x89,0xb2,0x93,0xce,0xb8,0xdf,0xed,0x6c,0x24,0x3a,0x20,0x38,0xfc,0x06,0x65,0x2a,0xaa,0xf1,0x6f,0x02,},\"\\xbb\\x31\\x72\\x79\\x57\\x10\\xfe\\x00\\x05\\x4d\\x3b\\x5d\\xfe\\xf8\\xa1\\x16\\x23\\x58\\x2d\\xa6\\x8b\\xf8\\xe4\\x6d\\x72\\xd2\\x7c\\xec\\xe2\\xaa\"},\n{{0x1a,0xcd,0xbb,0x79,0x3b,0x03,0x84,0x93,0x46,0x27,0x47,0x0d,0x79,0x5c,0x3d,0x1d,0xd4,0xd7,0x9c,0xea,0x59,0xef,0x98,0x3f,0x29,0x5b,0x9b,0x59,0x17,0x9c,0xbb,0x28,},{0x3f,0x60,0xc7,0x54,0x1a,0xfa,0x76,0xc0,0x19,0xcf,0x5a,0xa8,0x2d,0xcd,0xb0,0x88,0xed,0x9e,0x4e,0xd9,0x78,0x05,0x14,0xae,0xfb,0x37,0x9d,0xab,0xc8,0x44,0xf3,0x1a,},{0xbe,0x71,0xef,0x48,0x06,0xcb,0x04,0x1d,0x88,0x5e,0xff,0xd9,0xe6,0xb0,0xfb,0xb7,0x3d,0x65,0xd7,0xcd,0xec,0x47,0xa8,0x9c,0x8a,0x99,0x48,0x92,0xf4,0xe5,0x5a,0x56,0x8c,0x4c,0xc7,0x8d,0x61,0xf9,0x01,0xe8,0x0d,0xbb,0x62,0x8b,0x86,0xa2,0x3c,0xcd,0x59,0x4e,0x71,0x2b,0x57,0xfa,0x94,0xc2,0xd6,0x7e,0xc2,0x66,0x34,0x87,0x85,0x07,},\"\\x7c\\xf3\\x4f\\x75\\xc3\\xda\\xc9\\xa8\\x04\\xd0\\xfc\\xd0\\x9e\\xba\\x9b\\x29\\xc9\\x48\\x4e\\x8a\\x01\\x8f\\xa9\\xe0\\x73\\x04\\x2d\\xf8\\x8e\\x3c\\x56\"},\n{{0x8e,0xd7,0xa7,0x97,0xb9,0xce,0xa8,0xa8,0x37,0x0d,0x41,0x91,0x36,0xbc,0xdf,0x68,0x3b,0x75,0x9d,0x2e,0x3c,0x69,0x47,0xf1,0x7e,0x13,0xe2,0x48,0x5a,0xa9,0xd4,0x20,},{0xb4,0x9f,0x3a,0x78,0xb1,0xc6,0xa7,0xfc,0xa8,0xf3,0x46,0x6f,0x33,0xbc,0x0e,0x92,0x9f,0x01,0xfb,0xa0,0x43,0x06,0xc2,0xa7,0x46,0x5f,0x46,0xc3,0x75,0x93,0x16,0xd9,},{0x04,0x26,0x6c,0x03,0x3b,0x91,0xc1,0x32,0x2c,0xeb,0x34,0x46,0xc9,0x01,0xff,0xcf,0x3c,0xc4,0x0c,0x40,0x34,0xe8,0x87,0xc9,0x59,0x7c,0xa1,0x89,0x3b,0xa7,0x33,0x0b,0xec,0xbb,0xd8,0xb4,0x81,0x42,0xef,0x35,0xc0,0x12,0xc6,0xba,0x51,0xa6,0x6d,0xf9,0x30,0x8c,0xb6,0x26,0x8a,0xd6,0xb1,0xe4,0xb0,0x3e,0x70,0x10,0x24,0x95,0x79,0x0b,},\"\\xa7\\x50\\xc2\\x32\\x93\\x3d\\xc1\\x4b\\x11\\x84\\xd8\\x6d\\x8b\\x4c\\xe7\\x2e\\x16\\xd6\\x97\\x44\\xba\\x69\\x81\\x8b\\x6a\\xc3\\x3b\\x1d\\x82\\x3b\\xb2\\xc3\"},\n{{0xf2,0xab,0x39,0x6f,0xe8,0x90,0x6e,0x3e,0x56,0x33,0xe9,0x9c,0xab,0xcd,0x5b,0x09,0xdf,0x08,0x59,0xb5,0x16,0x23,0x0b,0x1e,0x04,0x50,0xb5,0x80,0xb6,0x5f,0x61,0x6c,},{0x8e,0xa0,0x74,0x24,0x51,0x59,0xa1,0x16,0xaa,0x71,0x22,0xa2,0x5e,0xc1,0x6b,0x89,0x1d,0x62,0x5a,0x68,0xf3,0x36,0x60,0x42,0x39,0x08,0xf6,0xbd,0xc4,0x4f,0x8c,0x1b,},{0xa0,0x6a,0x23,0xd9,0x82,0xd8,0x1a,0xb8,0x83,0xaa,0xe2,0x30,0xad,0xbc,0x36,0x8a,0x6a,0x99,0x77,0xf0,0x03,0xce,0xbb,0x00,0xd4,0xc2,0xe4,0x01,0x84,0x90,0x19,0x1a,0x84,0xd3,0xa2,0x82,0xfd,0xbf,0xb2,0xfc,0x88,0x04,0x6e,0x62,0xde,0x43,0xe1,0x5f,0xb5,0x75,0x33,0x6b,0x3c,0x8b,0x77,0xd1,0x9c,0xe6,0xa0,0x09,0xce,0x51,0xf5,0x0c,},\"\\x5a\\x44\\xe3\\x4b\\x74\\x6c\\x5f\\xd1\\x89\\x8d\\x55\\x2a\\xb3\\x54\\xd2\\x8f\\xb4\\x71\\x38\\x56\\xd7\\x69\\x7d\\xd6\\x3e\\xb9\\xbd\\x6b\\x99\\xc2\\x80\\xe1\\x87\"},\n{{0x55,0x0a,0x41,0xc0,0x13,0xf7,0x9b,0xab,0x8f,0x06,0xe4,0x3a,0xd1,0x83,0x6d,0x51,0x31,0x27,0x36,0xa9,0x71,0x38,0x06,0xfa,0xfe,0x66,0x45,0x21,0x9e,0xaa,0x1f,0x9d,},{0xaf,0x6b,0x71,0x45,0x47,0x4d,0xc9,0x95,0x4b,0x9a,0xf9,0x3a,0x9c,0xdb,0x34,0x44,0x9d,0x5b,0x7c,0x65,0x1c,0x82,0x4d,0x24,0xe2,0x30,0xb9,0x00,0x33,0xce,0x59,0xc0,},{0x16,0xdc,0x1e,0x2b,0x9f,0xa9,0x09,0xee,0xfd,0xc2,0x77,0xba,0x16,0xeb,0xe2,0x07,0xb8,0xda,0x5e,0x91,0x14,0x3c,0xde,0x78,0xc5,0x04,0x7a,0x89,0xf6,0x81,0xc3,0x3c,0x4e,0x4e,0x34,0x28,0xd5,0xc9,0x28,0x09,0x59,0x03,0xa8,0x11,0xec,0x00,0x2d,0x52,0xa3,0x9e,0xd7,0xf8,0xb3,0xfe,0x19,0x27,0x20,0x0c,0x6d,0xd0,0xb9,0xab,0x3e,0x04,},\"\\x8b\\xc4\\x18\\x5e\\x50\\xe5\\x7d\\x5f\\x87\\xf4\\x75\\x15\\xfe\\x2b\\x18\\x37\\xd5\\x85\\xf0\\xaa\\xe9\\xe1\\xca\\x38\\x3b\\x3e\\xc9\\x08\\x88\\x4b\\xb9\\x00\\xff\\x27\"},\n{{0x19,0xac,0x3e,0x27,0x24,0x38,0xc7,0x2d,0xdf,0x7b,0x88,0x19,0x64,0x86,0x7c,0xb3,0xb3,0x1f,0xf4,0xc7,0x93,0xbb,0x7e,0xa1,0x54,0x61,0x3c,0x1d,0xb0,0x68,0xcb,0x7e,},{0xf8,0x5b,0x80,0xe0,0x50,0xa1,0xb9,0x62,0x0d,0xb1,0x38,0xbf,0xc9,0xe1,0x00,0x32,0x7e,0x25,0xc2,0x57,0xc5,0x92,0x17,0xb6,0x01,0xf1,0xf6,0xac,0x9a,0x41,0x3d,0x3f,},{0xea,0x85,0x5d,0x78,0x1c,0xbe,0xa4,0x68,0x2e,0x35,0x01,0x73,0xcb,0x89,0xe8,0x61,0x9c,0xcf,0xdd,0xb9,0x7c,0xdc,0xe1,0x6f,0x9a,0x2f,0x6f,0x68,0x92,0xf4,0x6d,0xbe,0x68,0xe0,0x4b,0x12,0xb8,0xd8,0x86,0x89,0xa7,0xa3,0x16,0x70,0xcd,0xff,0x40,0x9a,0xf9,0x8a,0x93,0xb4,0x9a,0x34,0x53,0x7b,0x6a,0xa0,0x09,0xd2,0xeb,0x8b,0x47,0x01,},\"\\x95\\x87\\x2d\\x5f\\x78\\x9f\\x95\\x48\\x4e\\x30\\xcb\\xb0\\xe1\\x14\\x02\\x89\\x53\\xb1\\x6f\\x5c\\x6a\\x8d\\x9f\\x65\\xc0\\x03\\xa8\\x35\\x43\\xbe\\xaa\\x46\\xb3\\x86\\x45\"},\n{{0xca,0x26,0x7d,0xe9,0x6c,0x93,0xc2,0x38,0xfa,0xfb,0x12,0x79,0x81,0x20,0x59,0xab,0x93,0xac,0x03,0x05,0x96,0x57,0xfd,0x99,0x4f,0x8f,0xa5,0xa0,0x92,0x39,0xc8,0x21,},{0x01,0x73,0x70,0xc8,0x79,0x09,0x0a,0x81,0xc7,0xf2,0x72,0xc2,0xfc,0x80,0xe3,0xaa,0xc2,0xbc,0x60,0x3f,0xcb,0x37,0x9a,0xfc,0x98,0x69,0x11,0x60,0xab,0x74,0x5b,0x26,},{0xac,0x95,0x7f,0x82,0x33,0x5a,0xa7,0x14,0x1e,0x96,0xb5,0x9d,0x63,0xe3,0xcc,0xee,0x95,0xc3,0xa2,0xc4,0x7d,0x02,0x65,0x40,0xc2,0xaf,0x42,0xdc,0x95,0x33,0xd5,0xfd,0x81,0x82,0x7d,0x16,0x79,0xad,0x18,0x7a,0xea,0xf3,0x78,0x34,0x91,0x5e,0x75,0xb1,0x47,0xa9,0x28,0x68,0x06,0xc8,0x01,0x75,0x16,0xba,0x43,0xdd,0x05,0x1a,0x5e,0x0c,},\"\\xe0\\x5f\\x71\\xe4\\xe4\\x9a\\x72\\xec\\x55\\x0c\\x44\\xa3\\xb8\\x5a\\xca\\x8f\\x20\\xff\\x26\\xc3\\xee\\x94\\xa8\\x0f\\x1b\\x43\\x1c\\x7d\\x15\\x4e\\xc9\\x60\\x3e\\xe0\\x25\\x31\"},\n{{0x3d,0xff,0x5e,0x89,0x94,0x75,0xe7,0xe9,0x1d,0xd2,0x61,0x32,0x2f,0xab,0x09,0x98,0x0c,0x52,0x97,0x0d,0xe1,0xda,0x6e,0x2e,0x20,0x16,0x60,0xcc,0x4f,0xce,0x70,0x32,},{0xf3,0x01,0x62,0xba,0xc9,0x84,0x47,0xc4,0x04,0x2f,0xac,0x05,0xda,0x44,0x80,0x34,0x62,0x9b,0xe2,0xc6,0xa5,0x8d,0x30,0xdf,0xd5,0x78,0xba,0x9f,0xb5,0xe3,0x93,0x0b,},{0x5e,0xfe,0x7a,0x92,0xff,0x96,0x23,0x08,0x9b,0x3e,0x3b,0x78,0xf3,0x52,0x11,0x53,0x66,0xe2,0x6b,0xa3,0xfb,0x1a,0x41,0x62,0x09,0xbc,0x02,0x9e,0x9c,0xad,0xcc,0xd9,0xf4,0xaf,0xfa,0x33,0x35,0x55,0xa8,0xf3,0xa3,0x5a,0x9d,0x0f,0x7c,0x34,0xb2,0x92,0xca,0xe7,0x7e,0xc9,0x6f,0xa3,0xad,0xfc,0xaa,0xde,0xe2,0xd9,0xce,0xd8,0xf8,0x05,},\"\\x93\\x8f\\x0e\\x77\\x62\\x1b\\xf3\\xea\\x52\\xc7\\xc4\\x91\\x1c\\x51\\x57\\xc2\\xd8\\xa2\\xa8\\x58\\x09\\x3e\\xf1\\x6a\\xa9\\xb1\\x07\\xe6\\x9d\\x98\\x03\\x7b\\xa1\\x39\\xa3\\xc3\\x82\"},\n{{0x9a,0x6b,0x84,0x78,0x64,0xe7,0x0c,0xfe,0x8b,0xa6,0xab,0x22,0xfa,0x0c,0xa3,0x08,0xc0,0xcc,0x8b,0xec,0x71,0x41,0xfb,0xca,0xa3,0xb8,0x1f,0x5d,0x1e,0x1c,0xfc,0xfc,},{0x34,0xad,0x0f,0xbd,0xb2,0x56,0x65,0x07,0xa8,0x1c,0x2b,0x1f,0x8a,0xa8,0xf5,0x3d,0xcc,0xaa,0x64,0xcc,0x87,0xad,0xa9,0x1b,0x90,0x3e,0x90,0x0d,0x07,0xee,0xe9,0x30,},{0x2a,0xb2,0x55,0x16,0x9c,0x48,0x9c,0x54,0xc7,0x32,0x23,0x2e,0x37,0xc8,0x73,0x49,0xd4,0x86,0xb1,0xeb,0xa2,0x05,0x09,0xdb,0xab,0xe7,0xfe,0xd3,0x29,0xef,0x08,0xfd,0x75,0xba,0x1c,0xd1,0x45,0xe6,0x7b,0x2e,0xa2,0x6c,0xb5,0xcc,0x51,0xca,0xb3,0x43,0xee,0xb0,0x85,0xfe,0x1f,0xd7,0xb0,0xec,0x4c,0x6a,0xfc,0xd9,0xb9,0x79,0xf9,0x05,},\"\\x83\\x83\\x67\\x47\\x11\\x83\\xc7\\x1f\\x7e\\x71\\x77\\x24\\xf8\\x9d\\x40\\x1c\\x3a\\xd9\\x86\\x3f\\xd9\\xcc\\x7a\\xa3\\xcf\\x33\\xd3\\xc5\\x29\\x86\\x0c\\xb5\\x81\\xf3\\x09\\x3d\\x87\\xda\"},\n{{0x57,0x5b,0xe0,0x7a,0xfc,0xa5,0xd0,0x63,0xc2,0x38,0xcd,0x9b,0x80,0x28,0x77,0x2c,0xc4,0x9c,0xda,0x34,0x47,0x14,0x32,0xa2,0xe1,0x66,0xe0,0x96,0xe2,0x21,0x9e,0xfc,},{0x94,0xe5,0xeb,0x4d,0x50,0x24,0xf4,0x9d,0x7e,0xbf,0x79,0x81,0x7c,0x8d,0xe1,0x14,0x97,0xdc,0x2b,0x55,0x62,0x2a,0x51,0xae,0x12,0x3f,0xfc,0x74,0x9d,0xbb,0x16,0xe0,},{0x58,0x27,0x1d,0x44,0x23,0x6f,0x3b,0x98,0xc5,0x8f,0xd7,0xae,0x0d,0x2f,0x49,0xef,0x2b,0x6e,0x3a,0xff,0xdb,0x22,0x5a,0xa3,0xba,0x55,0x5f,0x0e,0x11,0xcc,0x53,0xc2,0x3a,0xd1,0x9b,0xaf,0x24,0x34,0x65,0x90,0xd0,0x5d,0x7d,0x53,0x90,0x58,0x20,0x82,0xcf,0x94,0xd3,0x9c,0xad,0x65,0x30,0xab,0x93,0xd1,0x3e,0xfb,0x39,0x27,0x95,0x06,},\"\\x33\\xe5\\x91\\x8b\\x66\\xd3\\x3d\\x55\\xfe\\x71\\x7c\\xa3\\x43\\x83\\xea\\xe7\\x8f\\x0a\\xf8\\x28\\x89\\xca\\xf6\\x69\\x6e\\x1a\\xc9\\xd9\\x5d\\x1f\\xfb\\x32\\xcb\\xa7\\x55\\xf9\\xe3\\x50\\x3e\"},\n{{0x15,0xff,0xb4,0x55,0x14,0xd4,0x34,0x44,0xd6,0x1f,0xcb,0x10,0x5e,0x30,0xe1,0x35,0xfd,0x26,0x85,0x23,0xdd,0xa2,0x0b,0x82,0x75,0x8b,0x17,0x94,0x23,0x11,0x04,0x41,},{0x17,0x72,0xc5,0xab,0xc2,0xd2,0x3f,0xd2,0xf9,0xd1,0xc3,0x25,0x7b,0xe7,0xbc,0x3c,0x1c,0xd7,0x9c,0xee,0x40,0x84,0x4b,0x74,0x9b,0x3a,0x77,0x43,0xd2,0xf9,0x64,0xb8,},{0x68,0x28,0xcd,0x76,0x24,0xe7,0x93,0xb8,0xa4,0xce,0xb9,0x6d,0x3c,0x2a,0x97,0x5b,0xf7,0x73,0xe5,0xff,0x66,0x45,0xf3,0x53,0x61,0x40,0x58,0x62,0x1e,0x58,0x83,0x52,0x89,0xe7,0xf3,0x1f,0x42,0xdf,0xe6,0xaf,0x6d,0x73,0x6f,0x26,0x44,0x51,0x1e,0x32,0x0c,0x0f,0xa6,0x98,0x58,0x2a,0x79,0x77,0x8d,0x18,0x73,0x0e,0xd3,0xe8,0xcb,0x08,},\"\\xda\\x9c\\x55\\x59\\xd0\\xea\\x51\\xd2\\x55\\xb6\\xbd\\x9d\\x76\\x38\\xb8\\x76\\x47\\x2f\\x94\\x2b\\x33\\x0f\\xc0\\xe2\\xb3\\x0a\\xea\\x68\\xd7\\x73\\x68\\xfc\\xe4\\x94\\x82\\x72\\x99\\x1d\\x25\\x7e\"},\n{{0xfe,0x05,0x68,0x64,0x29,0x43,0xb2,0xe1,0xaf,0xbf,0xd1,0xf1,0x0f,0xe8,0xdf,0x87,0xa4,0x23,0x6b,0xea,0x40,0xdc,0xe7,0x42,0x07,0x2c,0xb2,0x18,0x86,0xee,0xc1,0xfa,},{0x29,0x9e,0xbd,0x1f,0x13,0x17,0x7d,0xbd,0xb6,0x6a,0x91,0x2b,0xbf,0x71,0x20,0x38,0xfd,0xf7,0x3b,0x06,0xc3,0xac,0x02,0x0c,0x7b,0x19,0x12,0x67,0x55,0xd4,0x7f,0x61,},{0xd5,0x9e,0x6d,0xfc,0xc6,0xd7,0xe3,0xe2,0xc5,0x8d,0xec,0x81,0xe9,0x85,0xd2,0x45,0xe6,0x81,0xac,0xf6,0x59,0x4a,0x23,0xc5,0x92,0x14,0xf7,0xbe,0xd8,0x01,0x5d,0x81,0x3c,0x76,0x82,0xb6,0x0b,0x35,0x83,0x44,0x03,0x11,0xe7,0x2a,0x86,0x65,0xba,0x2c,0x96,0xde,0xc2,0x3c,0xe8,0x26,0xe1,0x60,0x12,0x7e,0x18,0x13,0x2b,0x03,0x04,0x04,},\"\\xc5\\x9d\\x08\\x62\\xec\\x1c\\x97\\x46\\xab\\xcc\\x3c\\xf8\\x3c\\x9e\\xeb\\xa2\\xc7\\x08\\x2a\\x03\\x6a\\x8c\\xb5\\x7c\\xe4\\x87\\xe7\\x63\\x49\\x27\\x96\\xd4\\x7e\\x6e\\x06\\x3a\\x0c\\x1f\\xec\\xcc\\x2d\"},\n{{0x5e,0xcb,0x16,0xc2,0xdf,0x27,0xc8,0xcf,0x58,0xe4,0x36,0xa9,0xd3,0xaf,0xfb,0xd5,0x8e,0x95,0x38,0xa9,0x26,0x59,0xa0,0xf9,0x7c,0x4c,0x4f,0x99,0x46,0x35,0xa8,0xca,},{0xda,0x76,0x8b,0x20,0xc4,0x37,0xdd,0x3a,0xa5,0xf8,0x4b,0xb6,0xa0,0x77,0xff,0xa3,0x4a,0xb6,0x85,0x01,0xc5,0x35,0x2b,0x5c,0xc3,0xfd,0xce,0x7f,0xe6,0xc2,0x39,0x8d,},{0x1c,0x72,0x3a,0x20,0xc6,0x77,0x24,0x26,0xa6,0x70,0xe4,0xd5,0xc4,0xa9,0x7c,0x6e,0xbe,0x91,0x47,0xf7,0x1b,0xb0,0xa4,0x15,0x63,0x1e,0x44,0x40,0x6e,0x29,0x03,0x22,0xe4,0xca,0x97,0x7d,0x34,0x8f,0xe7,0x85,0x6a,0x8e,0xdc,0x23,0x5d,0x0f,0xe9,0x5f,0x7e,0xd9,0x1a,0xef,0xdd,0xf2,0x8a,0x77,0xe2,0xc7,0xdb,0xfd,0x8f,0x55,0x2f,0x0a,},\"\\x56\\xf1\\x32\\x9d\\x9a\\x6b\\xe2\\x5a\\x61\\x59\\xc7\\x2f\\x12\\x68\\x8d\\xc8\\x31\\x4e\\x85\\xdd\\x9e\\x7e\\x4d\\xc0\\x5b\\xbe\\xcb\\x77\\x29\\xe0\\x23\\xc8\\x6f\\x8e\\x09\\x37\\x35\\x3f\\x27\\xc7\\xed\\xe9\"},\n{{0xd5,0x99,0xd6,0x37,0xb3,0xc3,0x0a,0x82,0xa9,0x98,0x4e,0x2f,0x75,0x84,0x97,0xd1,0x44,0xde,0x6f,0x06,0xb9,0xfb,0xa0,0x4d,0xd4,0x0f,0xd9,0x49,0x03,0x9d,0x7c,0x84,},{0x67,0x91,0xd8,0xce,0x50,0xa4,0x46,0x89,0xfc,0x17,0x87,0x27,0xc5,0xc3,0xa1,0xc9,0x59,0xfb,0xee,0xd7,0x4e,0xf7,0xd8,0xe7,0xbd,0x3c,0x1a,0xb4,0xda,0x31,0xc5,0x1f,},{0xeb,0xf1,0x0d,0x9a,0xc7,0xc9,0x61,0x08,0x14,0x0e,0x7d,0xef,0x6f,0xe9,0x53,0x3d,0x72,0x76,0x46,0xff,0x5b,0x3a,0xf2,0x73,0xc1,0xdf,0x95,0x76,0x2a,0x66,0xf3,0x2b,0x65,0xa0,0x96,0x34,0xd0,0x13,0xf5,0x4b,0x5d,0xd6,0x01,0x1f,0x91,0xbc,0x33,0x6c,0xa8,0xb3,0x55,0xce,0x33,0xf8,0xcf,0xbe,0xc2,0x53,0x5a,0x4c,0x42,0x7f,0x82,0x05,},\"\\xa7\\xc0\\x4e\\x8b\\xa7\\x5d\\x0a\\x03\\xd8\\xb1\\x66\\xad\\x7a\\x1d\\x77\\xe1\\xb9\\x1c\\x7a\\xaf\\x7b\\xef\\xdd\\x99\\x31\\x1f\\xc3\\xc5\\x4a\\x68\\x4d\\xdd\\x97\\x1d\\x5b\\x32\\x11\\xc3\\xee\\xaf\\xf1\\xe5\\x4e\"},\n{{0x30,0xab,0x82,0x32,0xfa,0x70,0x18,0xf0,0xce,0x6c,0x39,0xbd,0x8f,0x78,0x2f,0xe2,0xe1,0x59,0x75,0x8b,0xb0,0xf2,0xf4,0x38,0x6c,0x7f,0x28,0xcf,0xd2,0xc8,0x58,0x98,},{0xec,0xfb,0x6a,0x2b,0xd4,0x2f,0x31,0xb6,0x12,0x50,0xba,0x5d,0xe7,0xe4,0x6b,0x47,0x19,0xaf,0xdf,0xbc,0x66,0x0d,0xb7,0x1a,0x7b,0xd1,0xdf,0x7b,0x0a,0x3a,0xbe,0x37,},{0x9a,0xf8,0x85,0x34,0x4c,0xc7,0x23,0x94,0x98,0xf7,0x12,0xdf,0x80,0xbc,0x01,0xb8,0x06,0x38,0x29,0x1e,0xd4,0xa1,0xd2,0x8b,0xaa,0x55,0x45,0x01,0x7a,0x72,0xe2,0xf6,0x56,0x49,0xcc,0xf9,0x60,0x3d,0xa6,0xeb,0x5b,0xfa,0xb9,0xf5,0x54,0x3a,0x6c,0xa4,0xa7,0xaf,0x38,0x66,0x15,0x3c,0x76,0xbf,0x66,0xbf,0x95,0xde,0xf6,0x15,0xb0,0x0c,},\"\\x63\\xb8\\x0b\\x79\\x56\\xac\\xbe\\xcf\\x0c\\x35\\xe9\\xab\\x06\\xb9\\x14\\xb0\\xc7\\x01\\x4f\\xe1\\xa4\\xbb\\xc0\\x21\\x72\\x40\\xc1\\xa3\\x30\\x95\\xd7\\x07\\x95\\x3e\\xd7\\x7b\\x15\\xd2\\x11\\xad\\xaf\\x9b\\x97\\xdc\"},\n{{0x0d,0xdc,0xdc,0x87,0x2c,0x7b,0x74,0x8d,0x40,0xef,0xe9,0x6c,0x28,0x81,0xae,0x18,0x9d,0x87,0xf5,0x61,0x48,0xed,0x8a,0xf3,0xeb,0xbb,0xc8,0x03,0x24,0xe3,0x8b,0xdd,},{0x58,0x8d,0xda,0xdc,0xbc,0xed,0xf4,0x0d,0xf0,0xe9,0x69,0x7d,0x8b,0xb2,0x77,0xc7,0xbb,0x14,0x98,0xfa,0x1d,0x26,0xce,0x0a,0x83,0x5a,0x76,0x0b,0x92,0xca,0x7c,0x85,},{0xc1,0x79,0xc0,0x94,0x56,0xe2,0x35,0xfe,0x24,0x10,0x5a,0xfa,0x6e,0x8e,0xc0,0x46,0x37,0xf8,0xf9,0x43,0x81,0x7c,0xd0,0x98,0xba,0x95,0x38,0x7f,0x96,0x53,0xb2,0xad,0xd1,0x81,0xa3,0x14,0x47,0xd9,0x2d,0x1a,0x1d,0xdf,0x1c,0xeb,0x0d,0xb6,0x21,0x18,0xde,0x9d,0xff,0xb7,0xdc,0xd2,0x42,0x40,0x57,0xcb,0xdf,0xf5,0xd4,0x1d,0x04,0x03,},\"\\x65\\x64\\x1c\\xd4\\x02\\xad\\xd8\\xbf\\x3d\\x1d\\x67\\xdb\\xeb\\x6d\\x41\\xde\\xbf\\xbe\\xf6\\x7e\\x43\\x17\\xc3\\x5b\\x0a\\x6d\\x5b\\xbb\\xae\\x0e\\x03\\x4d\\xe7\\xd6\\x70\\xba\\x14\\x13\\xd0\\x56\\xf2\\xd6\\xf1\\xde\\x12\"},\n{{0x89,0xf0,0xd6,0x82,0x99,0xba,0x0a,0x5a,0x83,0xf2,0x48,0xae,0x0c,0x16,0x9f,0x8e,0x38,0x49,0xa9,0xb4,0x7b,0xd4,0x54,0x98,0x84,0x30,0x5c,0x99,0x12,0xb4,0x66,0x03,},{0xab,0xa3,0xe7,0x95,0xaa,0xb2,0x01,0x2a,0xcc,0xea,0xdd,0x7b,0x3b,0xd9,0xda,0xee,0xed,0x6f,0xf5,0x25,0x8b,0xdc,0xd7,0xc9,0x36,0x99,0xc2,0xa3,0x83,0x6e,0x38,0x32,},{0x2c,0x69,0x1f,0xa8,0xd4,0x87,0xce,0x20,0xd5,0xd2,0xfa,0x41,0x55,0x91,0x16,0xe0,0xbb,0xf4,0x39,0x7c,0xf5,0x24,0x0e,0x15,0x25,0x56,0x18,0x35,0x41,0xd6,0x6c,0xf7,0x53,0x58,0x24,0x01,0xa4,0x38,0x8d,0x39,0x03,0x39,0xdb,0xef,0x4d,0x38,0x47,0x43,0xca,0xa3,0x46,0xf5,0x5f,0x8d,0xab,0xa6,0x8b,0xa7,0xb9,0x13,0x1a,0x8a,0x6e,0x0b,},\"\\x4f\\x18\\x46\\xdd\\x7a\\xd5\\x0e\\x54\\x5d\\x4c\\xfb\\xff\\xbb\\x1d\\xc2\\xff\\x14\\x5d\\xc1\\x23\\x75\\x4d\\x08\\xaf\\x4e\\x44\\xec\\xc0\\xbc\\x8c\\x91\\x41\\x13\\x88\\xbc\\x76\\x53\\xe2\\xd8\\x93\\xd1\\xea\\xc2\\x10\\x7d\\x05\"},\n{{0x0a,0x3c,0x18,0x44,0xe2,0xdb,0x07,0x0f,0xb2,0x4e,0x3c,0x95,0xcb,0x1c,0xc6,0x71,0x4e,0xf8,0x4e,0x2c,0xcd,0x2b,0x9d,0xd2,0xf1,0x46,0x0e,0xbf,0x7e,0xcf,0x13,0xb1,},{0x72,0xe4,0x09,0x93,0x7e,0x06,0x10,0xeb,0x5c,0x20,0xb3,0x26,0xdc,0x6e,0xa1,0xbb,0xbc,0x04,0x06,0x70,0x1c,0x5c,0xd6,0x7d,0x1f,0xbd,0xe0,0x91,0x92,0xb0,0x7c,0x01,},{0x87,0xf7,0xfd,0xf4,0x60,0x95,0x20,0x1e,0x87,0x7a,0x58,0x8f,0xe3,0xe5,0xaa,0xf4,0x76,0xbd,0x63,0x13,0x8d,0x8a,0x87,0x8b,0x89,0xd6,0xac,0x60,0x63,0x1b,0x34,0x58,0xb9,0xd4,0x1a,0x3c,0x61,0xa5,0x88,0xe1,0xdb,0x8d,0x29,0xa5,0x96,0x89,0x81,0xb0,0x18,0x77,0x6c,0x58,0x87,0x80,0x92,0x2f,0x5a,0xa7,0x32,0xba,0x63,0x79,0xdd,0x05,},\"\\x4c\\x82\\x74\\xd0\\xed\\x1f\\x74\\xe2\\xc8\\x6c\\x08\\xd9\\x55\\xbd\\xe5\\x5b\\x2d\\x54\\x32\\x7e\\x82\\x06\\x2a\\x1f\\x71\\xf7\\x0d\\x53\\x6f\\xdc\\x87\\x22\\xcd\\xea\\xd7\\xd2\\x2a\\xae\\xad\\x2b\\xfa\\xa1\\xad\\x00\\xb8\\x29\\x57\"},\n{{0xc8,0xd7,0xa8,0x81,0x8b,0x98,0xdf,0xdb,0x20,0x83,0x9c,0x87,0x1c,0xb5,0xc4,0x8e,0x9e,0x94,0x70,0xca,0x3a,0xd3,0x5b,0xa2,0x61,0x3a,0x5d,0x31,0x99,0xc8,0xab,0x23,},{0x90,0xd2,0xef,0xbb,0xa4,0xd4,0x3e,0x6b,0x2b,0x99,0x2c,0xa1,0x60,0x83,0xdb,0xcf,0xa2,0xb3,0x22,0x38,0x39,0x07,0xb0,0xee,0x75,0xf3,0xe9,0x58,0x45,0xd3,0xc4,0x7f,},{0xfa,0x2e,0x99,0x44,0x21,0xae,0xf1,0xd5,0x85,0x66,0x74,0x81,0x3d,0x05,0xcb,0xd2,0xcf,0x84,0xef,0x5e,0xb4,0x24,0xaf,0x6e,0xcd,0x0d,0xc6,0xfd,0xbd,0xc2,0xfe,0x60,0x5f,0xe9,0x85,0x88,0x33,0x12,0xec,0xf3,0x4f,0x59,0xbf,0xb2,0xf1,0xc9,0x14,0x9e,0x5b,0x9c,0xc9,0xec,0xda,0x05,0xb2,0x73,0x11,0x30,0xf3,0xed,0x28,0xdd,0xae,0x0b,},\"\\x78\\x3e\\x33\\xc3\\xac\\xbd\\xbb\\x36\\xe8\\x19\\xf5\\x44\\xa7\\x78\\x1d\\x83\\xfc\\x28\\x3d\\x33\\x09\\xf5\\xd3\\xd1\\x2c\\x8d\\xcd\\x6b\\x0b\\x3d\\x0e\\x89\\xe3\\x8c\\xfd\\x3b\\x4d\\x08\\x85\\x66\\x1c\\xa5\\x47\\xfb\\x97\\x64\\xab\\xff\"},\n{{0xb4,0x82,0x70,0x36,0x12,0xd0,0xc5,0x86,0xf7,0x6c,0xfc,0xb2,0x1c,0xfd,0x21,0x03,0xc9,0x57,0x25,0x15,0x04,0xa8,0xc0,0xac,0x4c,0x86,0xc9,0xc6,0xf3,0xe4,0x29,0xff,},{0xfd,0x71,0x1d,0xc7,0xdd,0x3b,0x1d,0xfb,0x9d,0xf9,0x70,0x4b,0xe3,0xe6,0xb2,0x6f,0x58,0x7f,0xe7,0xdd,0x7b,0xa4,0x56,0xa9,0x1b,0xa4,0x3f,0xe5,0x1a,0xec,0x09,0xad,},{0x58,0x83,0x2b,0xde,0xb2,0x6f,0xea,0xfc,0x31,0xb4,0x62,0x77,0xcf,0x3f,0xb5,0xd7,0xa1,0x7d,0xfb,0x7c,0xcd,0x9b,0x1f,0x58,0xec,0xbe,0x6f,0xeb,0x97,0x96,0x66,0x82,0x8f,0x23,0x9b,0xa4,0xd7,0x52,0x19,0x26,0x0e,0xca,0xc0,0xac,0xf4,0x0f,0x0e,0x5e,0x25,0x90,0xf4,0xca,0xa1,0x6b,0xbb,0xcd,0x8a,0x15,0x5d,0x34,0x79,0x67,0xa6,0x07,},\"\\x29\\xd7\\x7a\\xcf\\xd9\\x9c\\x7a\\x00\\x70\\xa8\\x8f\\xeb\\x62\\x47\\xa2\\xbc\\xe9\\x98\\x4f\\xe3\\xe6\\xfb\\xf1\\x9d\\x40\\x45\\x04\\x2a\\x21\\xab\\x26\\xcb\\xd7\\x71\\xe1\\x84\\xa9\\xa7\\x5f\\x31\\x6b\\x64\\x8c\\x69\\x20\\xdb\\x92\\xb8\\x7b\"},\n{{0x84,0xe5,0x0d,0xd9,0xa0,0xf1,0x97,0xe3,0x89,0x3c,0x38,0xdb,0xd9,0x1f,0xaf,0xc3,0x44,0xc1,0x77,0x6d,0x3a,0x40,0x0e,0x2f,0x0f,0x0e,0xe7,0xaa,0x82,0x9e,0xb8,0xa2,},{0x2c,0x50,0xf8,0x70,0xee,0x48,0xb3,0x6b,0x0a,0xc2,0xf8,0xa5,0xf3,0x36,0xfb,0x09,0x0b,0x11,0x30,0x50,0xdb,0xcc,0x25,0xe0,0x78,0x20,0x0a,0x6e,0x16,0x15,0x3e,0xea,},{0x69,0xe6,0xa4,0x49,0x1a,0x63,0x83,0x73,0x16,0xe8,0x6a,0x5f,0x4b,0xa7,0xcd,0x0d,0x73,0x1e,0xcc,0x58,0xf1,0xd0,0xa2,0x64,0xc6,0x7c,0x89,0xbe,0xfd,0xd8,0xd3,0x82,0x9d,0x8d,0xe1,0x3b,0x33,0xcc,0x0b,0xf5,0x13,0x93,0x17,0x15,0xc7,0x80,0x96,0x57,0xe2,0xbf,0xb9,0x60,0xe5,0xc7,0x64,0xc9,0x71,0xd7,0x33,0x74,0x60,0x93,0xe5,0x00,},\"\\xf3\\x99\\x2c\\xde\\x64\\x93\\xe6\\x71\\xf1\\xe1\\x29\\xdd\\xca\\x80\\x38\\xb0\\xab\\xdb\\x77\\xbb\\x90\\x35\\xf9\\xf8\\xbe\\x54\\xbd\\x5d\\x68\\xc1\\xae\\xff\\x72\\x4f\\xf4\\x7d\\x29\\x34\\x43\\x91\\xdc\\x53\\x61\\x66\\xb8\\x67\\x1c\\xbb\\xf1\\x23\"},\n{{0xb3,0x22,0xd4,0x65,0x77,0xa2,0xa9,0x91,0xa4,0xd1,0x69,0x82,0x87,0x83,0x2a,0x39,0xc4,0x87,0xef,0x77,0x6b,0x4b,0xff,0x03,0x7a,0x05,0xc7,0xf1,0x81,0x2b,0xde,0xec,},{0xeb,0x2b,0xca,0xdf,0xd3,0xee,0xc2,0x98,0x6b,0xaf,0xf3,0x2b,0x98,0xe7,0xc4,0xdb,0xf0,0x3f,0xf9,0x5d,0x8a,0xd5,0xff,0x9a,0xa9,0x50,0x6e,0x54,0x72,0xff,0x84,0x5f,},{0xc7,0xb5,0x51,0x37,0x31,0x7c,0xa2,0x1e,0x33,0x48,0x9f,0xf6,0xa9,0xbf,0xab,0x97,0xc8,0x55,0xdc,0x6f,0x85,0x68,0x4a,0x70,0xa9,0x12,0x5a,0x26,0x1b,0x56,0xd5,0xe6,0xf1,0x49,0xc5,0x77,0x4d,0x73,0x4f,0x2d,0x8d,0xeb,0xfc,0x77,0xb7,0x21,0x89,0x6a,0x82,0x67,0xc2,0x37,0x68,0xe9,0xba,0xdb,0x91,0x0e,0xef,0x83,0xec,0x25,0x88,0x02,},\"\\x19\\xf1\\xbf\\x5d\\xcf\\x17\\x50\\xc6\\x11\\xf1\\xc4\\xa2\\x86\\x52\\x00\\x50\\x4d\\x82\\x29\\x8e\\xdd\\x72\\x67\\x1f\\x62\\xa7\\xb1\\x47\\x1a\\xc3\\xd4\\xa3\\x0f\\x7d\\xe9\\xe5\\xda\\x41\\x08\\xc5\\x2a\\x4c\\xe7\\x0a\\x3e\\x11\\x4a\\x52\\xa3\\xb3\\xc5\"},\n{{0x96,0x0c,0xab,0x50,0x34,0xb9,0x83,0x8d,0x09,0x8d,0x2d,0xcb,0xf4,0x36,0x4b,0xec,0x16,0xd3,0x88,0xf6,0x37,0x6d,0x73,0xa6,0x27,0x3b,0x70,0xf8,0x2b,0xbc,0x98,0xc0,},{0x5e,0x3c,0x19,0xf2,0x41,0x5a,0xcf,0x72,0x9f,0x82,0x9a,0x4e,0xbd,0x5c,0x40,0xe1,0xa6,0xbc,0x9f,0xbc,0xa9,0x57,0x03,0xa9,0x37,0x60,0x87,0xed,0x09,0x37,0xe5,0x1a,},{0x27,0xd4,0xc3,0xa1,0x81,0x1e,0xf9,0xd4,0x36,0x0b,0x3b,0xdd,0x13,0x3c,0x2c,0xcc,0x30,0xd0,0x2c,0x2f,0x24,0x82,0x15,0x77,0x6c,0xb0,0x7e,0xe4,0x17,0x7f,0x9b,0x13,0xfc,0x42,0xdd,0x70,0xa6,0xc2,0xfe,0xd8,0xf2,0x25,0xc7,0x66,0x3c,0x7f,0x18,0x2e,0x7e,0xe8,0xec,0xcf,0xf2,0x0d,0xc7,0xb0,0xe1,0xd5,0x83,0x4e,0xc5,0xb1,0xea,0x01,},\"\\xf8\\xb2\\x19\\x62\\x44\\x7b\\x0a\\x8f\\x2e\\x42\\x79\\xde\\x41\\x1b\\xea\\x12\\x8e\\x0b\\xe4\\x4b\\x69\\x15\\xe6\\xcd\\xa8\\x83\\x41\\xa6\\x8a\\x0d\\x81\\x83\\x57\\xdb\\x93\\x8e\\xac\\x73\\xe0\\xaf\\x6d\\x31\\x20\\x6b\\x39\\x48\\xf8\\xc4\\x8a\\x44\\x73\\x08\"},\n{{0xeb,0x77,0xb2,0x63,0x8f,0x23,0xee,0xbc,0x82,0xef,0xe4,0x5e,0xe9,0xe5,0xa0,0x32,0x66,0x37,0x40,0x1e,0x66,0x3e,0xd0,0x29,0x69,0x9b,0x21,0xe6,0x44,0x3f,0xb4,0x8e,},{0x9e,0xf2,0x76,0x08,0x96,0x1a,0xc7,0x11,0xde,0x71,0xa6,0xe2,0xd4,0xd4,0x66,0x3e,0xa3,0xec,0xd4,0x2f,0xb7,0xe4,0xe8,0x62,0x7c,0x39,0x62,0x2d,0xf4,0xaf,0x0b,0xbc,},{0x18,0xdc,0x56,0xd7,0xbd,0x9a,0xcd,0x4f,0x4d,0xaa,0x78,0x54,0x0b,0x4a,0xc8,0xff,0x7a,0xa9,0x81,0x5f,0x45,0xa0,0xbb,0xa3,0x70,0x73,0x1a,0x14,0xea,0xab,0xe9,0x6d,0xf8,0xb5,0xf3,0x7d,0xbf,0x8e,0xae,0x4c,0xb1,0x5a,0x64,0xb2,0x44,0x65,0x1e,0x59,0xd6,0xa3,0xd6,0x76,0x1d,0x9e,0x3c,0x50,0xf2,0xd0,0xcb,0xb0,0x9c,0x05,0xec,0x06,},\"\\x99\\xe3\\xd0\\x09\\x34\\x00\\x3e\\xba\\xfc\\x3e\\x9f\\xdb\\x68\\x7b\\x0f\\x5f\\xf9\\xd5\\x78\\x2a\\x4b\\x1f\\x56\\xb9\\x70\\x00\\x46\\xc0\\x77\\x91\\x56\\x02\\xc3\\x13\\x4e\\x22\\xfc\\x90\\xed\\x7e\\x69\\x0f\\xdd\\xd4\\x43\\x3e\\x20\\x34\\xdc\\xb2\\xdc\\x99\\xab\"},\n{{0xb6,0x25,0xaa,0x89,0xd3,0xf7,0x30,0x87,0x15,0x42,0x7b,0x6c,0x39,0xbb,0xac,0x58,0xef,0xfd,0x3a,0x0f,0xb7,0x31,0x6f,0x7a,0x22,0xb9,0x9e,0xe5,0x92,0x2f,0x2d,0xc9,},{0x65,0xa9,0x9c,0x3e,0x16,0xfe,0xa8,0x94,0xec,0x33,0xc6,0xb2,0x0d,0x91,0x05,0xe2,0xa0,0x4e,0x27,0x64,0xa4,0x76,0x9d,0x9b,0xbd,0x4d,0x8b,0xac,0xfe,0xab,0x4a,0x2e,},{0x01,0xbb,0x90,0x1d,0x83,0xb8,0xb6,0x82,0xd3,0x61,0x4a,0xf4,0x6a,0x80,0x7b,0xa2,0x69,0x13,0x58,0xfe,0xb7,0x75,0x32,0x5d,0x34,0x23,0xf5,0x49,0xff,0x0a,0xa5,0x75,0x7e,0x4e,0x1a,0x74,0xe9,0xc7,0x0f,0x97,0x21,0xd8,0xf3,0x54,0xb3,0x19,0xd4,0xf4,0xa1,0xd9,0x14,0x45,0xc8,0x70,0xfd,0x0f,0xfb,0x94,0xfe,0xd6,0x46,0x64,0x73,0x0d,},\"\\xe0\\x72\\x41\\xdb\\xd3\\xad\\xbe\\x61\\x0b\\xbe\\x4d\\x00\\x5d\\xd4\\x67\\x32\\xa4\\xc2\\x50\\x86\\xec\\xb8\\xec\\x29\\xcd\\x7b\\xca\\x11\\x6e\\x1b\\xf9\\xf5\\x3b\\xfb\\xf3\\xe1\\x1f\\xa4\\x90\\x18\\xd3\\x9f\\xf1\\x15\\x4a\\x06\\x66\\x8e\\xf7\\xdf\\x5c\\x67\\x8e\\x6a\"},\n{{0xb1,0xc9,0xf8,0xbd,0x03,0xfe,0x82,0xe7,0x8f,0x5c,0x0f,0xb0,0x64,0x50,0xf2,0x7d,0xac,0xdf,0x71,0x64,0x34,0xdb,0x26,0x82,0x75,0xdf,0x3e,0x1d,0xc1,0x77,0xaf,0x42,},{0x7f,0xc8,0x8b,0x1f,0x7b,0x3f,0x11,0xc6,0x29,0xbe,0x67,0x1c,0x21,0x62,0x1f,0x5c,0x10,0x67,0x2f,0xaf,0xc8,0x49,0x2d,0xa8,0x85,0x74,0x20,0x59,0xee,0x67,0x74,0xcf,},{0x4b,0x22,0x99,0x51,0xef,0x26,0x2f,0x16,0x97,0x8f,0x79,0x14,0xbc,0x67,0x2e,0x72,0x26,0xc5,0xf8,0x37,0x9d,0x27,0x78,0xc5,0xa2,0xdc,0x0a,0x26,0x50,0x86,0x9f,0x7a,0xcf,0xbd,0x0b,0xcd,0x30,0xfd,0xb0,0x61,0x9b,0xb4,0x4f,0xc1,0xae,0x59,0x39,0xb8,0x7c,0xc3,0x18,0x13,0x30,0x09,0xc2,0x03,0x95,0xb6,0xc7,0xeb,0x98,0x10,0x77,0x01,},\"\\x33\\x1d\\xa7\\xa9\\xc1\\xf8\\x7b\\x2a\\xc9\\x1e\\xe3\\xb8\\x6d\\x06\\xc2\\x91\\x63\\xc0\\x5e\\xd6\\xf8\\xd8\\xa9\\x72\\x5b\\x47\\x1b\\x7d\\xb0\\xd6\\xac\\xec\\x7f\\x0f\\x70\\x24\\x87\\x16\\x3f\\x5e\\xda\\x02\\x0c\\xa5\\xb4\\x93\\xf3\\x99\\xe1\\xc8\\xd3\\x08\\xc3\\xc0\\xc2\"},\n{{0x6d,0x8c,0xdb,0x2e,0x07,0x5f,0x3a,0x2f,0x86,0x13,0x72,0x14,0xcb,0x23,0x6c,0xeb,0x89,0xa6,0x72,0x8b,0xb4,0xa2,0x00,0x80,0x6b,0xf3,0x55,0x7f,0xb7,0x8f,0xac,0x69,},{0x57,0xa0,0x4c,0x7a,0x51,0x13,0xcd,0xdf,0xe4,0x9a,0x4c,0x12,0x46,0x91,0xd4,0x6c,0x1f,0x9c,0xdc,0x8f,0x34,0x3f,0x9d,0xcb,0x72,0xa1,0x33,0x0a,0xec,0xa7,0x1f,0xda,},{0xa6,0xcb,0xc9,0x47,0xf9,0xc8,0x7d,0x14,0x55,0xcf,0x1a,0x70,0x85,0x28,0xc0,0x90,0xf1,0x1e,0xce,0xe4,0x85,0x5d,0x1d,0xba,0xad,0xf4,0x74,0x54,0xa4,0xde,0x55,0xfa,0x4c,0xe8,0x4b,0x36,0xd7,0x3a,0x5b,0x5f,0x8f,0x59,0x29,0x8c,0xcf,0x21,0x99,0x2d,0xf4,0x92,0xef,0x34,0x16,0x3d,0x87,0x75,0x3b,0x7e,0x9d,0x32,0xf2,0xc3,0x66,0x0b,},\"\\x7f\\x31\\x8d\\xbd\\x12\\x1c\\x08\\xbf\\xdd\\xfe\\xff\\x4f\\x6a\\xff\\x4e\\x45\\x79\\x32\\x51\\xf8\\xab\\xf6\\x58\\x40\\x33\\x58\\x23\\x89\\x84\\x36\\x00\\x54\\xf2\\xa8\\x62\\xc5\\xbb\\x83\\xed\\x89\\x02\\x5d\\x20\\x14\\xa7\\xa0\\xce\\xe5\\x0d\\xa3\\xcb\\x0e\\x76\\xbb\\xb6\\xbf\"},\n{{0x47,0xad,0xc6,0xd6,0xbf,0x57,0x1e,0xe9,0x57,0x0c,0xa0,0xf7,0x5b,0x60,0x4a,0xc4,0x3e,0x30,0x3e,0x4a,0xb3,0x39,0xca,0x9b,0x53,0xca,0xcc,0x5b,0xe4,0x5b,0x2c,0xcb,},{0xa3,0xf5,0x27,0xa1,0xc1,0xf1,0x7d,0xfe,0xed,0x92,0x27,0x73,0x47,0xc9,0xf9,0x8a,0xb4,0x75,0xde,0x17,0x55,0xb0,0xab,0x54,0x6b,0x8a,0x15,0xd0,0x1b,0x9b,0xd0,0xbe,},{0x4e,0x8c,0x31,0x83,0x43,0xc3,0x06,0xad,0xbb,0xa6,0x0c,0x92,0xb7,0x5c,0xb0,0x56,0x9b,0x92,0x19,0xd8,0xa8,0x6e,0x5d,0x57,0x75,0x2e,0xd2,0x35,0xfc,0x10,0x9a,0x43,0xc2,0xcf,0x4e,0x94,0x2c,0xac,0xf2,0x97,0x27,0x9f,0xbb,0x28,0x67,0x53,0x47,0xe0,0x80,0x27,0x72,0x2a,0x4e,0xb7,0x39,0x5e,0x00,0xa1,0x74,0x95,0xd3,0x2e,0xdf,0x0b,},\"\\xce\\x49\\x7c\\x5f\\xf5\\xa7\\x79\\x90\\xb7\\xd8\\xf8\\x69\\x9e\\xb1\\xf5\\xd8\\xc0\\x58\\x2f\\x70\\xcb\\x7a\\xc5\\xc5\\x4d\\x9d\\x92\\x49\\x13\\x27\\x8b\\xc6\\x54\\xd3\\x7e\\xa2\\x27\\x59\\x0e\\x15\\x20\\x22\\x17\\xfc\\x98\\xda\\xc4\\xc0\\xf3\\xbe\\x21\\x83\\xd1\\x33\\x31\\x57\\x39\"},\n{{0x3c,0x19,0xb5,0x0b,0x0f,0xe4,0x79,0x61,0x71,0x9c,0x38,0x1d,0x0d,0x8d,0xa9,0xb9,0x86,0x9d,0x31,0x2f,0x13,0xe3,0x29,0x8b,0x97,0xfb,0x22,0xf0,0xaf,0x29,0xcb,0xbe,},{0x0f,0x7e,0xda,0x09,0x14,0x99,0x62,0x5e,0x2b,0xae,0x85,0x36,0xea,0x35,0xcd,0xa5,0x48,0x3b,0xd1,0x6a,0x9c,0x7e,0x41,0x6b,0x34,0x1d,0x6f,0x2c,0x83,0x34,0x36,0x12,},{0xef,0xbd,0x41,0xf2,0x6a,0x5d,0x62,0x68,0x55,0x16,0xf8,0x82,0xb6,0xec,0x74,0xe0,0xd5,0xa7,0x18,0x30,0xd2,0x03,0xc2,0x31,0x24,0x8f,0x26,0xe9,0x9a,0x9c,0x65,0x78,0xec,0x90,0x0d,0x68,0xcd,0xb8,0xfa,0x72,0x16,0xad,0x0d,0x24,0xf9,0xec,0xbc,0x9f,0xfa,0x65,0x53,0x51,0x66,0x65,0x82,0xf6,0x26,0x64,0x53,0x95,0xa3,0x1f,0xa7,0x04,},\"\\x8d\\xdc\\xd6\\x30\\x43\\xf5\\x5e\\xc3\\xbf\\xc8\\x3d\\xce\\xae\\x69\\xd8\\xf8\\xb3\\x2f\\x4c\\xdb\\x6e\\x2a\\xeb\\xd9\\x4b\\x43\\x14\\xf8\\xfe\\x72\\x87\\xdc\\xb6\\x27\\x32\\xc9\\x05\\x2e\\x75\\x57\\xfe\\x63\\x53\\x43\\x38\\xef\\xb5\\xb6\\x25\\x4c\\x5d\\x41\\xd2\\x69\\x0c\\xf5\\x14\\x4f\"},\n{{0x34,0xe1,0xe9,0xd5,0x39,0x10,0x7e,0xb8,0x6b,0x39,0x3a,0x5c,0xce,0xa1,0x49,0x6d,0x35,0xbc,0x7d,0x5e,0x9a,0x8c,0x51,0x59,0xd9,0x57,0xe4,0xe5,0x85,0x2b,0x3e,0xb0,},{0x0e,0xcb,0x26,0x01,0xd5,0xf7,0x04,0x74,0x28,0xe9,0xf9,0x09,0x88,0x3a,0x12,0x42,0x00,0x85,0xf0,0x4e,0xe2,0xa8,0x8b,0x6d,0x95,0xd3,0xd7,0xf2,0xc9,0x32,0xbd,0x76,},{0x32,0xd2,0x29,0x04,0xd3,0xe7,0x01,0x2d,0x6f,0x5a,0x44,0x1b,0x0b,0x42,0x28,0x06,0x4a,0x5c,0xf9,0x5b,0x72,0x3a,0x66,0xb0,0x48,0xa0,0x87,0xec,0xd5,0x59,0x20,0xc3,0x1c,0x20,0x4c,0x3f,0x20,0x06,0x89,0x1a,0x85,0xdd,0x19,0x32,0xe3,0xf1,0xd6,0x14,0xcf,0xd6,0x33,0xb5,0xe6,0x32,0x91,0xc6,0xd8,0x16,0x6f,0x30,0x11,0x43,0x1e,0x09,},\"\\xa6\\xd4\\xd0\\x54\\x2c\\xfe\\x0d\\x24\\x0a\\x90\\x50\\x7d\\xeb\\xac\\xab\\xce\\x7c\\xbb\\xd4\\x87\\x32\\x35\\x3f\\x4f\\xad\\x82\\xc7\\xbb\\x7d\\xbd\\x9d\\xf8\\xe7\\xd9\\xa1\\x69\\x80\\xa4\\x51\\x86\\xd8\\x78\\x6c\\x5e\\xf6\\x54\\x45\\xbc\\xc5\\xb2\\xad\\x5f\\x66\\x0f\\xfc\\x7c\\x8e\\xaa\\xc0\"},\n{{0x49,0xdd,0x47,0x3e,0xde,0x6a,0xa3,0xc8,0x66,0x82,0x4a,0x40,0xad,0xa4,0x99,0x6c,0x23,0x9a,0x20,0xd8,0x4c,0x93,0x65,0xe4,0xf0,0xa4,0x55,0x4f,0x80,0x31,0xb9,0xcf,},{0x78,0x8d,0xe5,0x40,0x54,0x4d,0x3f,0xeb,0x0c,0x91,0x92,0x40,0xb3,0x90,0x72,0x9b,0xe4,0x87,0xe9,0x4b,0x64,0xad,0x97,0x3e,0xb6,0x5b,0x46,0x69,0xec,0xf2,0x35,0x01,},{0xd2,0xfd,0xe0,0x27,0x91,0xe7,0x20,0x85,0x25,0x07,0xfa,0xa7,0xc3,0x78,0x90,0x40,0xd9,0xef,0x86,0x64,0x63,0x21,0xf3,0x13,0xac,0x55,0x7f,0x40,0x02,0x49,0x15,0x42,0xdd,0x67,0xd0,0x5c,0x69,0x90,0xcd,0xb0,0xd4,0x95,0x50,0x1f,0xbc,0x5d,0x51,0x88,0xbf,0xbb,0x84,0xdc,0x1b,0xf6,0x09,0x8b,0xee,0x06,0x03,0xa4,0x7f,0xc2,0x69,0x0f,},\"\\x3a\\x53\\x59\\x4f\\x3f\\xba\\x03\\x02\\x93\\x18\\xf5\\x12\\xb0\\x84\\xa0\\x71\\xeb\\xd6\\x0b\\xae\\xc7\\xf5\\x5b\\x02\\x8d\\xc7\\x3b\\xfc\\x9c\\x74\\xe0\\xca\\x49\\x6b\\xf8\\x19\\xdd\\x92\\xab\\x61\\xcd\\x8b\\x74\\xbe\\x3c\\x0d\\x6d\\xcd\\x12\\x8e\\xfc\\x5e\\xd3\\x34\\x2c\\xba\\x12\\x4f\\x72\\x6c\"},\n{{0x33,0x1c,0x64,0xda,0x48,0x2b,0x6b,0x55,0x13,0x73,0xc3,0x64,0x81,0xa0,0x2d,0x81,0x36,0xec,0xad,0xbb,0x01,0xab,0x11,0x4b,0x44,0x70,0xbf,0x41,0x60,0x7a,0xc5,0x71,},{0x52,0xa0,0x0d,0x96,0xa3,0x14,0x8b,0x47,0x26,0x69,0x2d,0x9e,0xff,0x89,0x16,0x0e,0xa9,0xf9,0x9a,0x5c,0xc4,0x38,0x9f,0x36,0x1f,0xed,0x0b,0xb1,0x6a,0x42,0xd5,0x21,},{0x22,0xc9,0x9a,0xa9,0x46,0xea,0xd3,0x9a,0xc7,0x99,0x75,0x62,0x81,0x0c,0x01,0xc2,0x0b,0x46,0xbd,0x61,0x06,0x45,0xbd,0x2d,0x56,0xdc,0xdc,0xba,0xac,0xc5,0x45,0x2c,0x74,0xfb,0xf4,0xb8,0xb1,0x81,0x3b,0x0e,0x94,0xc3,0x0d,0x80,0x8c,0xe5,0x49,0x8e,0x61,0xd4,0xf7,0xcc,0xbb,0x4c,0xc5,0xf0,0x4d,0xfc,0x61,0x40,0x82,0x5a,0x96,0x00,},\"\\x20\\xe1\\xd0\\x5a\\x0d\\x5b\\x32\\xcc\\x81\\x50\\xb8\\x11\\x6c\\xef\\x39\\x65\\x9d\\xd5\\xfb\\x44\\x3a\\xb1\\x56\\x00\\xf7\\x8e\\x5b\\x49\\xc4\\x53\\x26\\xd9\\x32\\x3f\\x28\\x50\\xa6\\x3c\\x38\\x08\\x85\\x94\\x95\\xae\\x27\\x3f\\x58\\xa5\\x1e\\x9d\\xe9\\xa1\\x45\\xd7\\x74\\xb4\\x0b\\xa9\\xd7\\x53\\xd3\"},\n{{0x5c,0x0b,0x96,0xf2,0xaf,0x87,0x12,0x12,0x2c,0xf7,0x43,0xc8,0xf8,0xdc,0x77,0xb6,0xcd,0x55,0x70,0xa7,0xde,0x13,0x29,0x7b,0xb3,0xdd,0xe1,0x88,0x62,0x13,0xcc,0xe2,},{0x05,0x10,0xea,0xf5,0x7d,0x73,0x01,0xb0,0xe1,0xd5,0x27,0x03,0x9b,0xf4,0xc6,0xe2,0x92,0x30,0x0a,0x3a,0x61,0xb4,0x76,0x54,0x34,0xf3,0x20,0x3c,0x10,0x03,0x51,0xb1,},{0x06,0xe5,0xd8,0x43,0x6a,0xc7,0x70,0x5b,0x3a,0x90,0xf1,0x63,0x1c,0xdd,0x38,0xec,0x1a,0x3f,0xa4,0x97,0x78,0xa9,0xb9,0xf2,0xfa,0x5e,0xbe,0xa4,0xe7,0xd5,0x60,0xad,0xa7,0xdd,0x26,0xff,0x42,0xfa,0xfa,0x8b,0xa4,0x20,0x32,0x37,0x42,0x76,0x1a,0xca,0x69,0x04,0x94,0x0d,0xc2,0x1b,0xbe,0xf6,0x3f,0xf7,0x2d,0xaa,0xb4,0x5d,0x43,0x0b,},\"\\x54\\xe0\\xca\\xa8\\xe6\\x39\\x19\\xca\\x61\\x4b\\x2b\\xfd\\x30\\x8c\\xcf\\xe5\\x0c\\x9e\\xa8\\x88\\xe1\\xee\\x44\\x46\\xd6\\x82\\xcb\\x50\\x34\\x62\\x7f\\x97\\xb0\\x53\\x92\\xc0\\x4e\\x83\\x55\\x56\\xc3\\x1c\\x52\\x81\\x6a\\x48\\xe4\\xfb\\x19\\x66\\x93\\x20\\x6b\\x8a\\xfb\\x44\\x08\\x66\\x2b\\x3c\\xb5\\x75\"},\n{{0xde,0x84,0xf2,0x43,0x5f,0x78,0xde,0xdb,0x87,0xda,0x18,0x19,0x4f,0xf6,0xa3,0x36,0xf0,0x81,0x11,0x15,0x0d,0xef,0x90,0x1c,0x1a,0xc4,0x18,0x14,0x6e,0xb7,0xb5,0x4a,},{0xd3,0xa9,0x2b,0xba,0xa4,0xd6,0x3a,0xf7,0x9c,0x22,0x26,0xa7,0x23,0x6e,0x64,0x27,0x42,0x8d,0xf8,0xb3,0x62,0x42,0x7f,0x87,0x30,0x23,0xb2,0x2d,0x2f,0x5e,0x03,0xf2,},{0x47,0x1e,0xbc,0x97,0x3c,0xfd,0xac,0xee,0xc0,0x72,0x79,0x30,0x73,0x68,0xb7,0x3b,0xe3,0x5b,0xc6,0xf8,0xd8,0x31,0x2b,0x70,0x15,0x05,0x67,0x36,0x90,0x96,0x70,0x6d,0xc4,0x71,0x12,0x6c,0x35,0x76,0xf9,0xf0,0xeb,0x55,0x0d,0xf5,0xac,0x6a,0x52,0x51,0x81,0x11,0x00,0x29,0xdd,0x1f,0xc1,0x11,0x74,0xd1,0xaa,0xce,0xd4,0x8d,0x63,0x0f,},\"\\x20\\x51\\x35\\xec\\x7f\\x41\\x7c\\x85\\x80\\x72\\xd5\\x23\\x3f\\xb3\\x64\\x82\\xd4\\x90\\x6a\\xbd\\x60\\xa7\\x4a\\x49\\x8c\\x34\\x7f\\xf2\\x48\\xdf\\xa2\\x72\\x2c\\xa7\\x4e\\x87\\x9d\\xe3\\x31\\x69\\xfa\\xdc\\x7c\\xd4\\x4d\\x6c\\x94\\xa1\\x7d\\x16\\xe1\\xe6\\x30\\x82\\x4b\\xa3\\xe0\\xdf\\x22\\xed\\x68\\xea\\xab\"},\n{{0xba,0x4d,0x6e,0x67,0xb2,0xce,0x67,0xa1,0xe4,0x43,0x26,0x49,0x40,0x44,0xf3,0x7a,0x44,0x2f,0x3b,0x81,0x72,0x5b,0xc1,0xf9,0x34,0x14,0x62,0x71,0x8b,0x55,0xee,0x20,},{0xf7,0x3f,0xa0,0x76,0xf8,0x4b,0x6d,0xb6,0x75,0xa5,0xfd,0xa5,0xad,0x67,0xe3,0x51,0xa4,0x1e,0x8e,0x7f,0x29,0xad,0xd1,0x68,0x09,0xca,0x01,0x03,0x87,0xe9,0xc6,0xcc,},{0x57,0xb9,0xd2,0xa7,0x11,0x20,0x7f,0x83,0x74,0x21,0xba,0xe7,0xdd,0x48,0xea,0xa1,0x8e,0xab,0x1a,0x9a,0x70,0xa0,0xf1,0x30,0x58,0x06,0xfe,0xe1,0x7b,0x45,0x8f,0x3a,0x09,0x64,0xb3,0x02,0xd1,0x83,0x4d,0x3e,0x0a,0xc9,0xe8,0x49,0x6f,0x00,0x0b,0x77,0xf0,0x08,0x3b,0x41,0xf8,0xa9,0x57,0xe6,0x32,0xfb,0xc7,0x84,0x0e,0xee,0x6a,0x06,},\"\\x4b\\xaf\\xda\\xc9\\x09\\x9d\\x40\\x57\\xed\\x6d\\xd0\\x8b\\xca\\xee\\x87\\x56\\xe9\\xa4\\x0f\\x2c\\xb9\\x59\\x80\\x20\\xeb\\x95\\x01\\x95\\x28\\x40\\x9b\\xbe\\xa3\\x8b\\x38\\x4a\\x59\\xf1\\x19\\xf5\\x72\\x97\\xbf\\xb2\\xfa\\x14\\x2f\\xc7\\xbb\\x1d\\x90\\xdb\\xdd\\xde\\x77\\x2b\\xcd\\xe4\\x8c\\x56\\x70\\xd5\\xfa\\x13\"},\n{{0x0d,0x13,0x1c,0x45,0xae,0xa6,0xf3,0xa4,0xe1,0xb9,0xa2,0xcf,0x60,0xc5,0x51,0x04,0x58,0x7e,0xfa,0xa8,0x46,0xb2,0x22,0xbf,0x0a,0x7b,0x74,0xce,0x7a,0x3f,0x63,0xb6,},{0x3c,0x67,0x29,0xdb,0xe9,0x3b,0x49,0x9c,0x4e,0x61,0x4a,0x2f,0x21,0xbe,0xb7,0x29,0x43,0x8d,0x49,0x8e,0x1a,0xc8,0xd1,0x4c,0xba,0xd9,0x71,0x7a,0x5d,0xbd,0x97,0xcd,},{0xa9,0xc5,0xee,0x86,0xfb,0x06,0xd9,0xe4,0x6b,0x37,0x9c,0x32,0xdd,0xa7,0xc9,0x2c,0x9c,0x13,0xdb,0x27,0x4d,0xc2,0x41,0x16,0xfb,0xdd,0x87,0x86,0x96,0x04,0x54,0x88,0xcc,0x75,0xa5,0x2f,0xff,0x67,0xd1,0xa5,0x11,0x3d,0x06,0xe3,0x33,0xac,0x67,0xff,0x66,0x4b,0x3f,0x2a,0x40,0x5f,0xa1,0xd1,0x4d,0xd5,0xbb,0xb9,0x74,0x09,0xb6,0x06,},\"\\xb4\\x29\\x1d\\x08\\xb8\\x8f\\xb2\\xf7\\xb8\\xf9\\x9d\\x0d\\xce\\x40\\x07\\x9f\\xcb\\xab\\x71\\x8b\\xbd\\x8f\\x4e\\x8e\\xab\\xc3\\xc1\\x42\\x8b\\x6a\\x07\\x1f\\xb2\\xa3\\xc8\\xeb\\xa1\\xca\\xcc\\xcf\\xa8\\x71\\xb3\\x65\\xc7\\x08\\xbe\\xf2\\x68\\x5b\\xc1\\x3e\\x6b\\x80\\xbc\\x14\\xa5\\xf2\\x49\\x17\\x0f\\xfc\\x56\\xd0\\x14\"},\n{{0xa7,0x5e,0x3b,0x6b,0x41,0x70,0xe4,0x44,0x78,0x1b,0xe4,0xee,0xac,0x3e,0x0f,0xda,0xa4,0xb4,0x35,0x6f,0x70,0x54,0x86,0xbc,0xb0,0x71,0xa3,0x25,0xae,0x07,0x1f,0xba,},{0x99,0x3d,0x38,0xa7,0xd7,0x2f,0x0a,0xee,0x15,0xff,0x6f,0x4f,0xdc,0x37,0xca,0x77,0x24,0xfd,0x13,0x73,0xa3,0x76,0x6b,0x27,0x5d,0xbc,0x77,0xe6,0x47,0x98,0x0e,0x0a,},{0xa5,0xdb,0x4d,0x3d,0x33,0x29,0xab,0xe3,0x69,0x79,0x59,0xe6,0xb5,0x94,0x7e,0xa8,0x60,0x1b,0x03,0xef,0x8e,0x1d,0x6f,0xe2,0x02,0x14,0x49,0x31,0x27,0x2c,0xa0,0xa0,0x9b,0x5e,0xb0,0xf3,0x90,0x57,0x2e,0xa7,0xef,0x03,0xc6,0x13,0x1e,0x9d,0xe5,0xf1,0x6b,0xf0,0xb0,0x34,0x24,0x4f,0x7e,0x10,0x4f,0xf5,0x31,0x1b,0xbf,0x66,0x3a,0x0d,},\"\\x40\\x37\\x86\\x6f\\x65\\x48\\xb0\\x1c\\xc6\\xbc\\xf3\\xa9\\x40\\xe3\\x94\\x5a\\xa2\\xd1\\x88\\xb4\\xb7\\xf1\\x82\\xaa\\x77\\xec\\x4d\\x6b\\x04\\x28\\xab\\x5b\\x84\\xd8\\x5d\\xf1\\x92\\xa5\\xa3\\x8a\\xda\\x08\\x9d\\x76\\xfa\\x26\\xbf\\x67\\x73\\x6a\\x70\\x41\\xa5\\xeb\\x8f\\x0c\\x57\\x19\\xeb\\x39\\x66\\x93\\xc4\\x51\\x60\\xf8\"},\n{{0xbc,0xbc,0xf5,0x61,0xec,0xc0,0x5a,0x41,0xc7,0xd7,0xe5,0x5e,0x69,0x6d,0x32,0xce,0x39,0xb4,0xd0,0x3c,0x1f,0x5f,0x3f,0x3a,0x89,0x27,0xfe,0x5e,0x62,0xe8,0x44,0xb2,},{0x4d,0xdf,0x53,0xfa,0xd6,0xa7,0xa9,0xed,0x30,0xf3,0xaf,0xec,0xca,0x13,0x6f,0xd7,0x84,0x3b,0x72,0xc2,0x43,0x09,0x08,0x91,0xae,0x40,0x21,0xa3,0x2c,0xad,0xff,0x1a,},{0x9f,0xf1,0x51,0x15,0xf6,0x66,0x1f,0x32,0x11,0xd7,0xa4,0x07,0x64,0x96,0x76,0x29,0xba,0x6a,0x52,0x63,0x95,0x1b,0xdc,0x3c,0x6a,0x4c,0x90,0xd0,0x70,0xf7,0xbe,0x00,0x02,0x4b,0x80,0xd8,0x3b,0x6b,0xc2,0x75,0x87,0xfc,0xff,0x5f,0x5c,0xcc,0x0e,0xb3,0xcd,0xe1,0x49,0x7c,0xf5,0x68,0x95,0x14,0x7a,0x06,0x3f,0x61,0xf0,0x8a,0xdf,0x0b,},\"\\x6f\\x67\\x16\\xb6\\x78\\x47\\x40\\x98\\x0a\\xeb\\xc3\\x24\\x88\\x07\\xe3\\x1c\\x12\\x86\\xac\\x7b\\x68\\x1c\\x00\\xb6\\x6c\\x88\\xff\\x7a\\x33\\x6d\\x44\\x1f\\xa5\\xc3\\xeb\\x25\\x6d\\x20\\xcf\\x6d\\x1a\\xc9\\x2c\\xcf\\xe4\\xbe\\x6d\\xcc\\x41\\xb1\\xaf\\xf8\\x46\\xd3\\x60\\xc2\\x43\\x00\\x1c\\xab\\xdf\\xbf\\x1a\\x9b\\x24\\x04\\x55\"},\n{{0x21,0x05,0x32,0x80,0x5f,0xa9,0xcc,0x9b,0xe9,0x16,0xd2,0x13,0xca,0xc3,0x74,0xe3,0xcd,0x6f,0xc2,0x60,0x2a,0x54,0x4d,0x0c,0x1c,0xe2,0x9d,0x30,0x10,0x5d,0x69,0xab,},{0x10,0x69,0x9e,0x49,0x9b,0xe9,0x9e,0x2b,0x11,0xb9,0x8f,0x6f,0x86,0xb6,0x7c,0xdc,0x4c,0xcf,0x69,0xf3,0xc5,0x3c,0xe0,0x94,0x87,0x56,0x47,0xd2,0xd0,0xd0,0xec,0xc5,},{0x4c,0x2d,0x31,0xd5,0xbb,0xc4,0x2e,0x02,0x6d,0xc1,0xe0,0x79,0xec,0xc4,0xdd,0x07,0x2c,0x5d,0x2c,0xce,0x65,0xe3,0xdb,0x8d,0x8a,0x1d,0xd9,0x05,0x7f,0xaa,0x03,0x71,0x72,0x7f,0x72,0x72,0x31,0xa0,0xf0,0x60,0xfa,0x27,0x09,0x75,0x33,0xb6,0xdb,0x3b,0x8f,0x62,0x52,0xf2,0x79,0x3d,0x75,0x66,0x2c,0xaa,0xdf,0x5f,0x0f,0xcc,0x71,0x0e,},\"\\x9f\\xc4\\xd2\\x8c\\xfd\\x25\\xe6\\xc0\\xc5\\xe7\\x24\\xe1\\x9c\\xa3\\x9d\\x71\\xe5\\x3b\\xf4\\xaa\\x27\\x96\\xc5\\x4c\\x33\\x51\\xf1\\x08\\xfc\\x70\\xf2\\x61\\x1a\\x62\\xe0\\xab\\x90\\xaf\\x6a\\xde\\x52\\x16\\x78\\x8e\\x9e\\xb2\\xa8\\x73\\x05\\x9b\\x1e\\x79\\xd7\\xd5\\x9d\\xeb\\xd6\\x8f\\x2d\\x4d\\x80\\xff\\xe3\\x1b\\xf7\\x4b\\x92\\x8c\"},\n{{0x18,0x5d,0x64,0xb6,0x94,0x79,0xe0,0xba,0x0a,0x58,0x44,0xa1,0x0a,0xd8,0x41,0x25,0xba,0x11,0xc4,0xb4,0x0d,0x63,0xed,0xa2,0xc5,0x7a,0xfc,0x7e,0x01,0x9c,0x8e,0x0c,},{0xa5,0x76,0x4f,0x63,0x98,0xa5,0xae,0x22,0x66,0xa3,0x8f,0x97,0x14,0x53,0x3c,0x4b,0xbd,0x8d,0x07,0x82,0x6f,0x63,0xe2,0x04,0xcb,0xac,0x37,0x4b,0x0a,0xce,0xf1,0xbd,},{0x43,0xe0,0x38,0x7d,0xa5,0xba,0x09,0xa1,0x90,0xf6,0xe7,0xb2,0x68,0x05,0x78,0xd8,0x89,0x76,0x9b,0xcc,0x44,0x5e,0x5e,0xf5,0x71,0xb4,0x92,0x87,0x1c,0x15,0x5c,0x5b,0x9f,0x62,0x0b,0xfa,0xcf,0xbf,0x2d,0xf1,0xfd,0x87,0x44,0x46,0x04,0xb7,0x1b,0x2e,0x23,0x7b,0xaa,0xa7,0xee,0x20,0x93,0xed,0xe4,0xa6,0x01,0xed,0xf8,0x83,0xe3,0x07,},\"\\x4a\\x08\\x24\\xfe\\x70\\xd4\\x31\\x54\\x13\\xd0\\xa0\\xca\\xfb\\xf4\\xf5\\xfe\\x11\\x7d\\x5e\\x07\\xe1\\xc3\\xa4\\xef\\xfb\\x9d\\x0a\\xe9\\x14\\x90\\x23\\x48\\x78\\xcc\\xf6\\x79\\x2a\\x91\\xf6\\x8c\\x6a\\x52\\x0d\\xe1\\x60\\x71\\xf0\\x8a\\xbe\\x35\\xdc\\x5e\\xa4\\x28\\xf1\\x95\\x7b\\x66\\x33\\x71\\xce\\x24\\xc6\\x09\\xdd\\x55\\xb8\\xf4\\x93\"},\n{{0xcf,0xa9,0xd9,0x16,0x4b,0x3c,0x4f,0x6f,0x72,0x26,0x35,0xd2,0x06,0x6c,0xd7,0xea,0x5e,0x55,0x33,0xd2,0xc7,0x4f,0x8a,0xdd,0x66,0x9c,0x37,0x1f,0xaa,0x47,0x64,0x26,},{0x41,0x16,0x9a,0x66,0xf9,0xa6,0x3f,0x28,0x57,0x82,0xa6,0xc2,0xdb,0x81,0xcc,0x3f,0x70,0xb3,0xad,0xa2,0x1a,0x68,0xc8,0x47,0x45,0xc8,0x8a,0x74,0xc3,0xb0,0xa2,0xde,},{0x01,0xd7,0xc9,0xb5,0x70,0x1a,0xf7,0x1e,0x2f,0x48,0x77,0xff,0xc9,0xb7,0xb5,0x30,0x5f,0x52,0x81,0x6d,0x44,0x58,0xe3,0x7e,0x41,0xc7,0x71,0x9f,0xac,0x1d,0x76,0xa0,0x1f,0xff,0x3f,0x50,0xfe,0x1a,0x58,0x75,0xcc,0xc3,0xfb,0x70,0x00,0x1c,0x94,0x7a,0x33,0xfc,0x8b,0x20,0x7d,0xe1,0x35,0x72,0xcc,0xdb,0x8b,0xa9,0x89,0x33,0xab,0x01,},\"\\x75\\x76\\x21\\xb1\\x67\\x5d\\xb7\\xca\\xce\\xf7\\xf2\\x78\\x25\\x87\\xff\\x3a\\xf5\\x1a\\x3e\\xf2\\xf4\\xbc\\xf9\\x27\\x9c\\x4c\\xe9\\x40\\x02\\xe1\\xf0\\x04\\x24\\xbf\\x0e\\xb6\\x21\\x98\\x2c\\xc8\\x5c\\xb4\\xd1\\x71\\xe5\\x64\\xa0\\xc2\\xf6\\xe3\\x56\\x7a\\x1a\\xae\\x2c\\xdd\\xb7\\xe9\\xb2\\x5f\\x47\\xdc\\x20\\xa5\\x10\\x50\\x54\\x29\\x69\\xca\"},\n{{0x1a,0xcb,0x4a,0x25,0x6c,0x2f,0x89,0x93,0xca,0x24,0xde,0x1e,0x00,0x14,0x60,0x6d,0x66,0x8b,0x5e,0x75,0x60,0x32,0xd2,0x69,0xf1,0xd2,0x4d,0x35,0x1c,0x8e,0xea,0x4a,},{0xcb,0xbd,0xcd,0x8c,0xbc,0x88,0x5a,0xb4,0x3a,0x05,0x7e,0x5f,0x95,0x79,0xf1,0x16,0x19,0x54,0x15,0x9e,0x7b,0x56,0x2e,0xa2,0x6c,0xd9,0xa4,0x3c,0x88,0xd3,0xf9,0x6d,},{0x05,0xaa,0x76,0xf7,0xfe,0x51,0x89,0x23,0x03,0xd7,0x89,0x14,0x71,0x59,0x95,0xe7,0xd7,0x68,0xff,0x77,0x14,0xce,0x27,0x0f,0x17,0x5e,0x56,0xaf,0x17,0xae,0x01,0x8d,0x3f,0xa9,0x39,0xf5,0xf6,0x20,0xde,0x82,0xbc,0xd1,0x54,0x96,0x87,0xb2,0x05,0xc7,0x87,0x12,0x03,0xe6,0x24,0x23,0x8c,0x4e,0x30,0x9f,0xab,0x7f,0x92,0xfb,0xaa,0x05,},\"\\xc4\\x6a\\x6d\\x61\\xaa\\x0a\\xed\\x1c\\x1d\\x85\\x47\\xa7\\x0b\\x89\\xb7\\x19\\x64\\x75\\xd5\\xa4\\x87\\x08\\x81\\xb1\\xec\\xd0\\xf0\\xcb\\x9c\\x74\\x5f\\x8a\\x2a\\xdc\\x80\\x24\\xe2\\xdc\\x55\\xb5\\x3a\\xa5\\xd3\\x83\\xa8\\x1a\\xab\\xc1\\xa4\\x7e\\x8d\\x07\\xd0\\x0b\\x7f\\x0b\\x56\\xce\\xdd\\xbf\\xb1\\xf4\\x24\\xbb\\x5c\\x02\\x18\\x46\\x78\\xa6\\x66\"},\n{{0xac,0xe3,0xc4,0x64,0x24,0x82,0x36,0x22,0x97,0x9f,0xc3,0xa8,0x4a,0x7d,0xa6,0x9c,0x1d,0x52,0x7d,0x83,0x12,0xe8,0xfb,0x01,0x83,0x75,0xbd,0x3a,0x96,0xc2,0x9c,0x18,},{0x93,0x7c,0xf3,0x41,0x36,0xd9,0xe1,0xcc,0xe0,0xde,0x11,0xb1,0x2c,0x70,0xcb,0xfb,0x74,0x55,0x44,0x84,0x21,0xe9,0x2c,0x82,0xe7,0xc4,0x09,0x34,0xbf,0xf8,0xc6,0x76,},{0xfe,0xb8,0x89,0x6d,0xd3,0xfe,0x60,0x01,0xff,0xea,0x17,0x1b,0x37,0xb7,0x88,0xa6,0x9f,0x7f,0x85,0x01,0x93,0xa6,0x34,0x06,0xf5,0x63,0x76,0xdd,0x26,0x3d,0x09,0x9a,0xef,0x80,0xec,0xe6,0x7e,0x2c,0x43,0xf4,0x0e,0xca,0x46,0x2c,0x6b,0x71,0xe7,0x94,0x06,0xb1,0x8d,0xb7,0x4a,0xe5,0xd4,0x98,0x44,0xe3,0xb1,0x32,0xbc,0x2a,0x13,0x07,},\"\\xa9\\xf1\\x37\\xbc\\x90\\x21\\xbf\\x10\\x5a\\xee\\x25\\xbe\\x21\\xcd\\x9e\\xe5\\xb3\\x54\\x7c\\xf1\\x0c\\xc5\\xf9\\x84\\x76\\xfb\\x58\\x8b\\xd7\\x0e\\x2d\\x6d\\x6b\\x08\\x34\\xe8\\x42\\xe4\\xee\\x94\\x30\\x3c\\xf9\\x6b\\x09\\xc1\\x71\\x53\\x81\\xb3\\x6e\\x14\\xa4\\x91\\xb8\\x0f\\x89\\x5e\\xa4\\x21\\xb8\\xec\\x2b\\x1d\\x3c\\x18\\x7e\\x02\\x93\\x5c\\x55\\x26\"},\n{{0x88,0xf6,0x81,0x93,0x4e,0x33,0xc3,0x5c,0x07,0xdc,0x6e,0x5a,0x83,0x29,0x42,0xae,0x3d,0x59,0x90,0x3c,0xcd,0xe2,0xf7,0x6c,0xcb,0x75,0x87,0xce,0xa7,0xec,0x41,0xb6,},{0x6a,0x4e,0x8a,0xa5,0xad,0xb6,0x3d,0x22,0xfd,0x7b,0x14,0xa2,0x6f,0xdb,0x03,0xb7,0xc8,0xaa,0x6c,0xcd,0x5a,0x19,0x6f,0x2c,0x54,0xb0,0x46,0x5a,0xdb,0x50,0x92,0xe1,},{0x45,0xb2,0x7b,0xf1,0xb9,0xea,0xc0,0x6b,0x62,0xb6,0x86,0xf6,0xd5,0x46,0x56,0x3b,0x2d,0xfe,0x5b,0x17,0x5d,0xbe,0xf3,0x2b,0xf7,0x8c,0x35,0xa1,0x6c,0x95,0x8a,0x9d,0x4f,0x26,0xd2,0x91,0xde,0x9b,0xb2,0x06,0x6c,0x0a,0x28,0x61,0x13,0xcc,0x09,0x17,0x2d,0x40,0xa3,0x6d,0x4c,0xbd,0x95,0x17,0x08,0x86,0x02,0x26,0xeb,0x30,0xcd,0x05,},\"\\x6e\\x8b\\xac\\x1f\\x85\\x3b\\x81\\xfe\\xf9\\x47\\x07\\xe1\\x8c\\xc6\\x1c\\x6f\\x0a\\x9c\\xbc\\x2a\\x41\\xd0\\x78\\xdc\\xc8\\x3f\\xc0\\x22\\x9c\\x7f\\x8d\\xbe\\x6d\\xbd\\xd9\\x08\\x54\\xb1\\xf1\\xae\\x2b\\x9f\\x2b\\x12\\x0b\\x86\\xa8\\x78\\x6b\\x4e\\x78\\xce\\x23\\xab\\x86\\xba\\xaf\\x88\\x75\\x4a\\xf0\\xf3\\xd8\\x88\\x81\\xda\\xe0\\xbc\\x52\\x61\\xbf\\xd0\\x38\"},\n{{0x48,0x05,0x0a,0x6e,0x01,0x58,0xf6,0xad,0x25,0x34,0x12,0xe4,0x49,0x7c,0xff,0x62,0xd5,0xee,0x55,0x5e,0xdf,0xfe,0x59,0xe4,0xdc,0x40,0x15,0x22,0x81,0x32,0x95,0xce,},{0x97,0x5e,0x01,0x0a,0xbb,0x9a,0x3e,0x56,0x65,0x91,0x37,0xb0,0x50,0x60,0x57,0xf2,0x83,0x98,0x2f,0x88,0x6c,0xa1,0x72,0xc7,0xbc,0x2c,0x50,0x0e,0xd9,0xbd,0x26,0xc1,},{0x72,0x16,0xab,0x60,0xc3,0x51,0x68,0x18,0x7d,0x0f,0xce,0x47,0x53,0xc8,0x6e,0x80,0x05,0x8d,0x54,0x0b,0x76,0xbf,0x95,0x84,0x3a,0x58,0x98,0x84,0x10,0x60,0xa9,0x9a,0x44,0xde,0x6f,0x43,0x96,0x25,0xa3,0xf6,0x36,0x5f,0x59,0xc3,0x77,0xbf,0x45,0x90,0x9b,0xbf,0xef,0x5c,0x50,0xb2,0x5f,0x31,0x94,0xe5,0xfb,0xd3,0x4e,0xa5,0xe7,0x06,},\"\\xed\\x6e\\xec\\x29\\xfb\\x70\\x49\\xdf\\xf7\\x07\\xf0\\xa4\\x42\\x6e\\xbc\\x8f\\x5b\\x35\\x0e\\x95\\x87\\x0b\\x9d\\x61\\x98\\xc8\\x13\\x9e\\x9c\\x3e\\x1e\\x40\\x99\\x37\\xd1\\xa8\\x58\\xa0\\xde\\xa4\\x82\\xa5\\xcb\\x1a\\x85\\x4e\\xd3\\xb5\\xa9\\x39\\x7a\\xcb\\x63\\xbf\\xf6\\xb6\\x40\\x39\\xef\\x2e\\xb1\\x15\\x9e\\x99\\x85\\x83\\x10\\xbb\\xbd\\x86\\x12\\x5c\\x3e\\x0e\"},\n{{0x18,0xd1,0x3d,0x0c,0x00,0xe8,0xe3,0x38,0x6a,0x5c,0xfb,0x30,0xa9,0xe7,0x9f,0xe8,0x8b,0x18,0x61,0xed,0x2d,0x12,0x01,0xeb,0x17,0x00,0x38,0xe1,0x94,0x77,0x04,0x03,},{0xa4,0xaf,0xc8,0x33,0x40,0x18,0x76,0x09,0x0d,0x9b,0x88,0x0c,0x41,0x26,0x7d,0x68,0xcb,0xbe,0xea,0xa3,0x8a,0xfb,0x20,0x88,0x4e,0x27,0x32,0x8f,0x3b,0x7f,0x53,0x5e,},{0x03,0x39,0x88,0x15,0x4c,0x5d,0x79,0xd2,0x51,0x0b,0xe8,0x3e,0x77,0x80,0x15,0xdf,0xe2,0xfb,0x85,0xb8,0x11,0x1f,0x7e,0xc1,0x39,0x91,0x8b,0x54,0x00,0xe3,0xd6,0x56,0xee,0x80,0xa9,0xf5,0xc9,0x07,0x2b,0x5b,0x46,0x7a,0x5c,0xc5,0xa5,0x7c,0xc8,0xad,0x10,0x62,0xb5,0xbf,0xf1,0x08,0x62,0xd9,0xd3,0x69,0xdd,0xe2,0xcc,0x96,0x67,0x01,},\"\\x91\\x0f\\x6c\\x27\\x2d\\xd9\\x79\\x31\\xac\\x47\\x31\\x0d\\x24\\x4c\\xad\\xb4\\x32\\x51\\x36\\x5e\\x02\\xba\\x9f\\x6a\\x5b\\x3c\\x32\\x26\\xbe\\x9d\\x7d\\x3a\\x74\\xa2\\xba\\x49\\x06\\xe8\\xe7\\x1a\\x4b\\xf3\\xd3\\x55\\x6e\\xbd\\xfc\\x66\\x6c\\xd6\\xb1\\x2f\\x20\\xc4\\xa0\\x08\\x34\\xb8\\x8f\\xbb\\x24\\x45\\x75\\x19\\x92\\x86\\xb0\\xb9\\x34\\x4c\\xf3\\x34\\xaf\\xf0\\x07\"},\n{{0x4a,0xdc,0x8c,0x28,0x64,0x6a,0x93,0xa8,0x17,0x29,0x3a,0x14,0xd2,0x9b,0x48,0xe2,0xc6,0xd7,0x12,0xa6,0x89,0x93,0x54,0x7a,0x5c,0x5e,0x4d,0x14,0x52,0xac,0xbc,0x3a,},{0x7f,0x40,0x47,0x36,0x28,0xf2,0x3f,0xc0,0xdf,0xf0,0x02,0x1a,0xfd,0x48,0x77,0x40,0xd4,0x91,0x6a,0x91,0x22,0xe6,0xc9,0x7d,0x36,0x43,0x3e,0x5e,0xbf,0x04,0xf8,0x8c,},{0x6d,0x3b,0x4e,0x90,0xec,0x40,0x83,0x11,0xf9,0xb1,0x5b,0x92,0x53,0xd3,0xd9,0x5c,0x5d,0x15,0x26,0x20,0xc2,0x60,0xd5,0x63,0x02,0x55,0x5a,0x88,0x04,0xa5,0x10,0x4b,0xa5,0xe8,0xd2,0x9e,0xe1,0x08,0xe7,0x64,0xa6,0x42,0x19,0x29,0x72,0x98,0xab,0x76,0x74,0xbb,0xca,0x78,0x4d,0xee,0x28,0x77,0x3b,0x34,0xe1,0x85,0xa3,0x86,0xc2,0x08,},\"\\x09\\xfb\\x55\\x01\\xf1\\x68\\x8f\\x80\\xa0\\xab\\x9e\\x22\\xd7\\x78\\xae\\x13\\x0a\\xca\\xf7\\x4d\\x7f\\x51\\x85\\xb4\\xda\\x19\\x8c\\x6b\\x9e\\xda\\xc4\\x30\\x2e\\x2b\\x75\\x3e\\x57\\x87\\x66\\xe1\\x7d\\x40\\x56\\xdc\\x40\\xd9\\x5c\\xf4\\xca\\x8b\\xcc\\x65\\x65\\x79\\x5e\\x97\\xd6\\x8b\\xcd\\xa7\\x9f\\xa7\\x7c\\x49\\x33\\x97\\x71\\x63\\x56\\x16\\x4c\\xaa\\xb5\\xd1\\x9c\\xfd\"},\n{{0xf2,0x6e,0x1c,0x84,0x69,0x7a,0x49,0x08,0x15,0x1b,0x44,0x7d,0xcf,0x6c,0x7c,0x7a,0x38,0xb0,0x40,0x81,0xdb,0x9e,0x7c,0x77,0x38,0xe6,0xfe,0xc9,0x00,0xbe,0xd0,0xc1,},{0xa8,0x6e,0x14,0x22,0xc1,0x23,0x5f,0xf8,0xe1,0xaa,0x08,0x34,0x70,0xd5,0xe4,0x22,0x88,0xcb,0x00,0x7a,0xb5,0x0e,0x79,0x5d,0xd0,0xb4,0xff,0x87,0x39,0x49,0x66,0xc4,},{0x44,0xf3,0x34,0x4b,0x95,0x66,0xc9,0xdf,0xd2,0x2d,0x61,0x98,0xe1,0xcb,0xf9,0x5d,0x9e,0x28,0xf2,0x98,0x2f,0xc7,0xf1,0x66,0xab,0x25,0xdd,0xa3,0x0c,0x46,0xf7,0x68,0xc5,0x58,0xe0,0x39,0x4f,0xb9,0xab,0x3e,0x1d,0x4d,0xb4,0xcf,0x48,0x7c,0x17,0x64,0x1a,0x13,0xf3,0xf4,0x89,0x39,0xe0,0xc6,0x48,0x27,0xa7,0x51,0x03,0xc5,0x74,0x06,},\"\\x54\\xed\\x47\\x60\\x6a\\x14\\x87\\xc2\\xf9\\x00\\xce\\xfb\\x6e\\x89\\x9d\\xba\\xf6\\xc3\\x1c\\xc8\\x8e\\xbe\\x35\\x58\\xb8\\x3b\\x93\\xf6\\xd4\\x22\\xc3\\x1e\\x88\\x8e\\x48\\xe5\\x20\\xee\\xae\\xdd\\x7e\\x55\\x4a\\x9c\\xd4\\x0c\\x2c\\x51\\x9d\\x53\\x3b\\x61\\x44\\xce\\xe4\\x84\\xc3\\x89\\xe9\\x76\\xb1\\xe4\\x02\\x2b\\x50\\xe7\\xdb\\xb8\\x7e\\xad\\x7e\\x54\\x1a\\x20\\x04\\xda\\xf7\"},\n{{0xcc,0x0c,0x33,0xf3,0xa8,0x6f,0x5a,0x17,0xd3,0x0c,0x18,0x6c,0xe0,0xf3,0xb7,0x40,0xba,0xfa,0x5f,0xe3,0xc7,0x09,0x0f,0x14,0x35,0x41,0xe2,0xb2,0xc1,0xe5,0x34,0xbc,},{0x96,0x7a,0x71,0xc7,0xcf,0x9b,0x82,0xcc,0x78,0xcb,0xe1,0x09,0x10,0x4d,0x8b,0x43,0x8a,0x8d,0x1f,0xd7,0x1d,0x26,0x0d,0x02,0x90,0x46,0xa9,0xa4,0x52,0x68,0x66,0xff,},{0xe2,0x77,0xb3,0xdd,0x65,0x5c,0x33,0xff,0x75,0xfa,0x92,0x0a,0xf1,0xfc,0xc8,0x59,0x40,0x1e,0x6c,0x7a,0x6e,0xf4,0xc6,0xbf,0xbf,0xac,0x50,0x69,0x63,0x8f,0x19,0xca,0x11,0x5b,0xaf,0x13,0xc0,0x9c,0x82,0xaf,0x79,0x3f,0xac,0xb6,0xab,0xd0,0xcd,0x58,0xe8,0x48,0x1b,0x08,0xc1,0xb6,0x8a,0xd7,0xa2,0x66,0x5c,0x4a,0x61,0x4a,0x28,0x06,},\"\\x19\\x44\\xe5\\xe1\\x55\\xd7\\x5e\\x0d\\x0b\\xe9\\x2e\\x1b\\xe1\\x4c\\xec\\x37\\x0a\\xd1\\x37\\x91\\xf2\\xbf\\xd4\\x0f\\x27\\x12\\x14\\xe9\\x4f\\xcf\\x21\\x3c\\x71\\xbc\\x20\\xd7\\xce\\x0c\\x75\\x84\\x42\\x1a\\xc4\\xef\\xc4\\x51\\x88\\x3c\\xc3\\xf4\\x95\\x6f\\x21\\xf7\\x3a\\x42\\x16\\x72\\x04\\x38\\xbc\\x38\\xff\\x2c\\xfd\\xf3\\x70\\x99\\x05\\xa5\\x0a\\x9d\\x94\\xb1\\xd9\\xe7\\x93\\x2b\"},\n{{0xf0,0xbc,0x97,0x93,0x75,0xa7,0x07,0x30,0x68,0xdb,0xa7,0xf6,0xc0,0x94,0xdb,0x65,0x98,0xb4,0xe4,0x5d,0xf7,0xd5,0x49,0x58,0x3c,0x22,0xfd,0xed,0x80,0x48,0xfa,0x2e,},{0xb4,0x2b,0x6c,0x57,0xa7,0x8f,0x1d,0x90,0x09,0x0a,0x71,0x81,0xab,0x2a,0xe0,0x9f,0x42,0x6c,0xbc,0x2b,0xe9,0x6e,0xb2,0xcf,0x27,0xab,0xc7,0x0d,0x7d,0x32,0xa4,0xb3,},{0x19,0xdb,0xc3,0x02,0x7f,0x9f,0xae,0x70,0x7d,0xeb,0x76,0xf5,0x88,0xf9,0xfd,0x07,0xaa,0x8e,0xae,0x29,0xbd,0x4e,0x1d,0x04,0xc2,0xc9,0x84,0x38,0x82,0x86,0xb3,0xb1,0x22,0x24,0x8a,0x6c,0x03,0xed,0x67,0xec,0xa3,0x5d,0xf4,0xdb,0x3d,0xc1,0xe4,0x23,0x7f,0x26,0x78,0x92,0x51,0x84,0x97,0xd9,0x55,0x2a,0x21,0xde,0x19,0xb5,0x14,0x0f,},\"\\x27\\xab\\x30\\x49\\xb5\\xc6\\x35\\x1f\\x6c\\xfe\\x38\\xb1\\x3a\\x05\\x9f\\x50\\x37\\x25\\x7e\\xe3\\xd6\\x5d\\x60\\x79\\x65\\x68\\x56\\xed\\xc8\\x76\\xea\\x08\\x1f\\xd8\\xa9\\x48\\x04\\x66\\xf8\\x83\\x94\\x78\\x08\\x84\\x66\\xf5\\x1e\\xcb\\xfa\\xf2\\xd6\\x5d\\xef\\x25\\xf0\\xc4\\xdd\\x8d\\x08\\x58\\x82\\x02\\x81\\x22\\x32\\xf5\\x79\\x45\\xdf\\x8a\\x6f\\xa1\\x61\\xed\\x8c\\x03\\x43\\xb5\\x83\"},\n{{0x30,0x22,0x97,0x5f,0x29,0x8c,0x0a,0xd5,0xdd,0xbe,0x90,0x95,0x4f,0x20,0xe6,0x3a,0xe0,0xc0,0xd2,0x70,0x4c,0xf1,0x3c,0x22,0x1f,0x5b,0x37,0x20,0xaf,0x4d,0xba,0x32,},{0xb8,0x45,0xbc,0xe3,0x8e,0x26,0xab,0x02,0x7b,0x82,0x47,0x46,0x3d,0x43,0x7a,0x71,0xbb,0xdd,0xca,0x2a,0x23,0x81,0xd8,0x1f,0xad,0x4c,0x29,0x7d,0xf9,0x14,0x0b,0xd5,},{0xae,0x14,0xa8,0x60,0xfa,0xd0,0x05,0x1b,0x3e,0xb7,0x2b,0x37,0x21,0xa8,0x2f,0x7b,0x95,0x46,0xb2,0x86,0x72,0x61,0xe2,0xb7,0xb6,0x38,0x97,0x9e,0x25,0x61,0xbd,0xeb,0x89,0xb6,0x00,0x76,0x8f,0x82,0x45,0x0a,0x66,0xc8,0xb0,0x48,0x12,0x83,0xfa,0x21,0xcb,0x6c,0x53,0xbd,0xe3,0x50,0xef,0xfb,0x68,0xa7,0xd1,0x11,0x4b,0xfd,0xb2,0x03,},\"\\x9a\\xa1\\x9a\\x59\\x5d\\x98\\x93\\x78\\xcd\\xc0\\x68\\x91\\x88\\x7e\\xf5\\xf9\\xc2\\x46\\xe5\\xf8\\x3c\\x0b\\x65\\x87\\x10\\x67\\x3e\\x4e\\x7d\\xb7\\x60\\xc7\\x63\\x54\\xc4\\xf5\\xd1\\xe9\\x0d\\xb0\\x4a\\x23\\xb4\\xfb\\x43\\x4c\\x69\\x38\\x45\\x93\\xd0\\x10\\xe3\\x12\\xb1\\x1d\\x29\\x9c\\x9f\\x97\\x48\\x2d\\xe8\\x87\\xce\\xcf\\xe8\\x2e\\xa7\\x23\\xbc\\xa7\\x9a\\x1b\\xd6\\x4d\\x03\\xef\\x19\\xee\"},\n{{0x0f,0x71,0x0b,0x6c,0x48,0x1f,0x71,0x44,0x95,0x89,0x75,0x33,0x12,0xef,0x64,0x93,0x2b,0x46,0x52,0xeb,0xe0,0xe0,0x75,0x97,0xf7,0xda,0x1c,0x4f,0x3d,0xcf,0xfb,0x80,},{0x69,0x73,0xff,0x29,0x32,0xcc,0xdd,0xfc,0x1d,0x16,0xc4,0xc0,0xda,0x50,0xc8,0xb2,0x9f,0xe6,0x45,0x2d,0x1e,0xe8,0x4d,0x52,0x06,0x4e,0xbf,0x3d,0x62,0x8d,0x40,0x3e,},{0x02,0xa8,0xd2,0x6a,0xee,0x11,0x42,0x0f,0xb4,0xf0,0x9d,0x11,0x63,0xe1,0x4b,0x86,0x7d,0xf7,0xc6,0xf6,0xc8,0xf8,0xdc,0x7a,0x78,0x03,0x46,0x59,0xf0,0x40,0x1c,0xad,0x0a,0xa9,0x03,0x97,0xef,0xdd,0x07,0x04,0xb7,0x98,0xdb,0x19,0x36,0x50,0x30,0x26,0xe2,0xa1,0xad,0xc2,0x97,0xe2,0x79,0x74,0xd4,0xbe,0x31,0x2a,0x37,0x53,0xf8,0x04,},\"\\x85\\xd8\\x57\\x44\\xad\\x55\\xe9\\xef\\x9a\\x65\\xca\\x91\\xe8\\x5c\\x8a\\x4f\\x80\\xe4\\xc5\\x8f\\x8e\\x4e\\x93\\x54\\xe8\\x33\\x98\\x60\\x98\\xb7\\xd9\\xfe\\x9f\\xdc\\x0d\\xed\\xb0\\xd7\\x5d\\x25\\x39\\xfb\\xa0\\x00\\x34\\xfc\\x0c\\x2e\\x84\\x34\\x4d\\x1e\\xda\\xa0\\x9d\\x4f\\x63\\xd5\\x54\\x6d\\x67\\x80\\x3d\\xd6\\xb5\\x4d\\xdc\\xc0\\xb1\\xd3\\xf2\\x58\\x2d\\xd7\\x52\\x89\\xe3\\x1d\\xe4\\x2e\\x69\"},\n{{0x7a,0x05,0xf1,0x21,0xf6,0x01,0x12,0xdd,0x16,0xfe,0xe8,0xc9,0x1b,0xc2,0xa1,0x14,0x79,0xf4,0xb6,0x7e,0xe3,0x34,0x56,0x04,0x2c,0x8d,0xe1,0x67,0xfc,0x58,0x80,0x17,},{0xb3,0xb0,0x5b,0xe9,0x89,0xce,0xa7,0x19,0x75,0x05,0xd4,0xb5,0x43,0x35,0xe5,0xe1,0xd7,0x7a,0x4b,0x52,0xba,0x72,0x82,0x60,0x4b,0xbc,0x1c,0xf6,0xc4,0xe8,0x7a,0x6c,},{0xd3,0x0c,0xe8,0xa3,0x22,0xb4,0x50,0xa2,0xfb,0x1a,0xfd,0x32,0x9c,0xec,0x85,0x59,0xcc,0xf1,0x12,0xbd,0x83,0x96,0x5f,0x9e,0xc4,0x73,0x62,0x70,0xa0,0x91,0x4e,0x06,0x11,0x96,0xbf,0x52,0x09,0x77,0x8c,0x9f,0x8c,0xcf,0x39,0xc4,0x66,0x8b,0xbf,0x0e,0x13,0x63,0xf8,0x1a,0xfe,0x45,0xdd,0x74,0xe8,0x0d,0x58,0x75,0xdd,0xbf,0x6f,0x01,},\"\\xd9\\xc5\\x9e\\x8c\\xc4\\xed\\xe5\\x37\\xbe\\x21\\x22\\xab\\x49\\x2a\\x5b\\x91\\x5a\\x9b\\x0a\\x11\\x4b\\x2a\\xde\\x35\\x6f\\xc0\\x45\\x7e\\xf9\\x87\\x22\\xd5\\xf5\\x67\\xb8\\x62\\x11\\xe2\\x83\\x69\\xd1\\x41\\x68\\xec\\x4a\\x3c\\x80\\x40\\x76\\xe1\\x54\\xad\\xc7\\x0a\\x66\\x8c\\xf6\\x4a\\x20\\xd1\\x3c\\xf1\\x90\\xd1\\x15\\xcd\\x68\\x8d\\x03\\x6e\\x46\\x93\\x82\\x51\\xdf\\x49\\x64\\xdc\\x35\\x17\\xb1\\x0c\"},\n{{0xbf,0x38,0x1f,0x8d,0xfb,0x5d,0x0c,0x6d,0x64,0xe4,0x16,0xac,0x23,0xe0,0xd0,0xfc,0xb8,0x6e,0xbb,0x89,0x9b,0x1d,0x14,0x6a,0xbd,0x91,0x1b,0x92,0xa7,0x80,0x8e,0xb6,},{0x86,0x3f,0xad,0x8d,0x1f,0x1b,0xc6,0x30,0xa1,0x5f,0x6f,0xe8,0xec,0xef,0xe6,0xb4,0x49,0x7b,0x60,0xb2,0x1a,0xe8,0x83,0x0d,0xa4,0x67,0x42,0x04,0x5f,0xef,0x15,0x6f,},{0x99,0xb7,0x53,0x78,0x73,0x8f,0xca,0xc8,0x06,0x76,0x69,0xe8,0x50,0x9b,0x5d,0x26,0x07,0xe1,0xef,0x76,0xaf,0x90,0x04,0xe1,0x3f,0xe5,0xd3,0x93,0x2d,0xf6,0x0b,0x16,0x82,0x16,0xf5,0x85,0x65,0x34,0x0f,0xa4,0xd6,0x38,0x05,0x5a,0x89,0x04,0x4e,0xe7,0xd4,0x5e,0x2b,0xd0,0x82,0xa5,0x33,0x82,0x28,0x9a,0x34,0x70,0x06,0x48,0x98,0x0e,},\"\\x86\\x54\\xf2\\xf5\\xc6\\xdc\\xd2\\xcf\\xcb\\xb6\\xed\\x8d\\x2b\\xc5\\xfb\\x5f\\xec\\x53\\xe3\\xef\\xfb\\x0d\\xe6\\x5a\\xac\\x50\\x7f\\xa5\\x6c\\x89\\x77\\x32\\x39\\x5a\\xa0\\x99\\x46\\xd3\\xb6\\x58\\x6a\\x92\\xed\\xd6\\xdc\\x99\\x31\\x5e\\x1b\\xa7\\x4c\\x6a\\x02\\x47\\xc4\\xba\\x77\\x60\\xb9\\x48\\xeb\\x3c\\x09\\x32\\xd9\\xfe\\x1f\\x0e\\x9f\\xea\\x6e\\xb6\\x1a\\x54\\x8a\\x9a\\xb4\\x8f\\xfd\\xf1\\x54\\x73\\x29\"},\n{{0x36,0x98,0x32,0x41,0xa0,0xa8,0xe6,0x0c,0xe0,0x2a,0x61,0xb3,0xfa,0xfa,0xb1,0x5a,0x73,0x13,0xa5,0xa2,0x70,0xd0,0x15,0xb9,0xc9,0xec,0x07,0x0d,0xc4,0x2d,0xee,0xda,},{0x66,0x47,0x98,0x4d,0x42,0xb9,0xa5,0xb3,0xb1,0xaf,0xa3,0xb7,0xf8,0xf4,0x9d,0x4c,0x2b,0x05,0xe3,0x89,0x84,0xe9,0x9c,0xea,0x8f,0xd6,0x82,0x35,0xd2,0xae,0x46,0x27,},{0xee,0x37,0xdf,0x8a,0xf4,0x22,0xf9,0x1f,0x85,0xdf,0xe4,0x3e,0xfe,0x79,0xf6,0x23,0x78,0x06,0x8c,0xcd,0xba,0xf3,0x91,0x6e,0xec,0xbc,0x3a,0xdf,0xed,0x05,0x08,0xbd,0xeb,0xaf,0x5c,0xe0,0x6b,0x3b,0xc2,0x79,0xf7,0x80,0x87,0xf0,0xdb,0x8d,0xb3,0xc6,0x82,0x3e,0xdf,0xb3,0x2c,0x12,0x21,0x78,0x30,0xbe,0x72,0x3d,0x88,0x72,0xb3,0x0c,},\"\\xce\\xbb\\x9e\\x40\\x44\\x51\\x81\\x82\\x53\\xc0\\x39\\x2a\\x45\\x54\\xee\\x73\\x23\\xc5\\xd5\\xb8\\xb2\\x26\\x77\\x57\\x00\\xb8\\x06\\xed\\x5b\\x91\\x33\\x79\\x16\\xea\\x7e\\xcb\\xc3\\xd4\\x10\\x3f\\xc6\\x5e\\x53\\x72\\xae\\x7e\\x5f\\x9b\\xa2\\xd8\\xf5\\xae\\xe2\\x4c\\xcf\\x6e\\x63\\x1a\\xe2\\x0c\\x4a\\xf9\\xb5\\xf7\\x28\\xcd\\xf8\\x9e\\x81\\x89\\xde\\xf1\\xa5\\xb3\\xd3\\x53\\x47\\xaa\\x20\\x35\\x25\\xea\\x1d\\x2e\"},\n{{0xd0,0x68,0x99,0xf9,0x3a,0x40,0x8d,0xac,0xb4,0x1c,0x96,0x97,0x18,0x34,0x6f,0x1e,0x28,0x9b,0xb5,0xea,0x65,0xe2,0x83,0xff,0x79,0xc7,0x05,0xa0,0x74,0x51,0x7c,0x35,},{0x46,0xbf,0x2a,0x08,0xa0,0x76,0xc4,0x7d,0x7f,0x11,0xb7,0x33,0xf8,0x14,0x1c,0x35,0x53,0x63,0xed,0x85,0xd7,0xde,0xf2,0x6b,0xa6,0xa0,0xce,0x15,0xac,0x5f,0x2b,0xe8,},{0x6f,0x89,0xde,0x92,0xa6,0x6b,0xc5,0xf4,0x14,0x43,0x39,0x12,0x49,0x50,0xbd,0xf5,0x88,0x14,0x4c,0xb3,0x72,0xf6,0x73,0x62,0x45,0x35,0x1c,0x94,0x76,0xbe,0xcc,0x59,0xa2,0x58,0xf9,0xa9,0x33,0xff,0xff,0x2b,0xef,0x4b,0x46,0xcd,0x10,0x57,0x39,0x52,0x25,0x79,0x9f,0xd0,0x9d,0xed,0xe6,0x82,0x3d,0xb0,0xe3,0x25,0xdb,0xc8,0x14,0x0d,},\"\\x08\\x64\\xc3\\x9a\\xc4\\xfd\\xa8\\xeb\\x90\\x48\\x59\\x7b\\xd4\\x0b\\xe0\\x40\\x10\\x21\\xfd\\x2d\\xd3\\xa3\\x39\\x0a\\x8f\\xac\\xce\\x98\\x4b\\x26\\x0a\\x13\\xfa\\x2c\\x7c\\xfc\\x00\\xd1\\x92\\xfa\\xdf\\x13\\x4a\\x0a\\xd5\\xa1\\x81\\xee\\x89\\xef\\xf0\\xc7\\x95\\xea\\xa0\\xfb\\xfe\\x2f\\x3b\\x26\\x11\\x5d\\x07\\x16\\x8d\\xb4\\x2e\\xd2\\x1a\\x51\\x30\\x3b\\x19\\x58\\xe4\\xa4\\x2d\\xc0\\x65\\xb2\\x2c\\xe4\\x8f\\x17\\xa6\"},\n{{0xee,0xbc,0xa7,0x96,0x69,0x70,0xee,0x9f,0x2c,0xc4,0xd7,0x4c,0x6f,0x1d,0x8e,0x0e,0xbf,0xf7,0xc4,0x5a,0xeb,0xad,0x34,0x9f,0xb9,0xf8,0x6d,0xf6,0x28,0xdf,0xff,0x0e,},{0x89,0x10,0x1e,0x03,0x09,0xf7,0x67,0xe6,0x4a,0xe9,0xc9,0x8c,0x4a,0x5d,0x8d,0x23,0x28,0xfb,0x3e,0xf2,0x62,0xd0,0x82,0xf4,0x9b,0x64,0xca,0x20,0x9e,0x19,0x90,0xf6,},{0x7d,0x44,0x7e,0xe5,0x32,0x8c,0x9f,0xe7,0xf1,0x19,0x36,0xcc,0x42,0x99,0x87,0x54,0xa5,0x6c,0xd1,0xd2,0xa6,0x95,0x1a,0xf4,0xfe,0xe7,0xc4,0xa8,0xeb,0x31,0x9d,0x49,0x23,0x70,0x7c,0x79,0x3c,0x55,0xd7,0x90,0x67,0xf8,0x22,0xd5,0xb1,0x6b,0xb5,0x77,0x6e,0x38,0xdf,0xfa,0xbc,0x67,0x23,0x7a,0x91,0x6a,0x81,0xa6,0x33,0x39,0xb0,0x03,},\"\\x0f\\xac\\x79\\x0a\\xdb\\x9f\\x59\\xe5\\xcb\\x0d\\xdc\\xb2\\xb6\\x67\\x17\\x2f\\x2a\\x21\\x03\\x4d\\x93\\xbc\\xad\\xdf\\x18\\x86\\x06\\xfa\\x9e\\x77\\x6d\\xb3\\x3a\\x8f\\xcc\\x6b\\xd7\\xf5\\x56\\x78\\x83\\xfc\\x0d\\xe3\\x51\\xaa\\x9a\\xfa\\xa3\\x6d\\x20\\x75\\xb1\\xba\\x85\\x3b\\xad\\xa8\\x49\\xb8\\x66\\x1d\\x5c\\x81\\x54\\xe7\\xb0\\xaf\\xea\\x65\\x6d\\xd1\\x5e\\x01\\xa9\\xc5\\xba\\x21\\x58\\x9b\\x02\\xf8\\xfc\\x54\\x81\\xc2\"},\n{{0x38,0x20,0xb6,0xb1,0x59,0x39,0xd0,0xaf,0xe1,0x8c,0x9c,0xb3,0xd9,0xa2,0xa0,0x8f,0x16,0x7d,0xd4,0x58,0xeb,0x6c,0x7e,0x3f,0x15,0x58,0xb0,0xc6,0xdb,0x4c,0x68,0x90,},{0x80,0xb8,0x5c,0x65,0x59,0xfe,0xa8,0xb4,0x00,0xe1,0x99,0x9c,0xc5,0xbf,0xed,0x50,0x7a,0xd7,0xfc,0x29,0x4c,0xd9,0xba,0x0c,0xe2,0xdd,0x25,0x84,0xa9,0x10,0x89,0xb0,},{0x82,0x3e,0xe2,0xc0,0xc8,0xd8,0x7f,0xaa,0x0e,0xc0,0x14,0x1e,0x9c,0xe0,0x8b,0x51,0xe5,0x7c,0x83,0x97,0x92,0xd1,0xfb,0xd9,0x7a,0x96,0x72,0x07,0xfd,0x41,0x58,0x49,0xeb,0xfb,0x5d,0xad,0xb5,0xa1,0xdc,0x2c,0x0a,0x8b,0x7f,0xc6,0x3f,0xc3,0x54,0x85,0x7b,0x8c,0x90,0xc4,0x47,0x20,0xe1,0x3f,0x45,0xcd,0x01,0xe7,0xaa,0x23,0x14,0x0c,},\"\\x3e\\x5a\\xd9\\x2d\\x44\\xb4\\x0e\\x86\\x14\\xd8\\x08\\x7c\\x9c\\x74\\x3d\\xe0\\xc0\\x86\\x1a\\x07\\xf1\\xf5\\x14\\x6d\\x71\\xca\\xc2\\xf3\\x74\\x00\\x24\\xe8\\x41\\xcc\\x2d\\x46\\x02\\x7c\\xf5\\xd2\\x61\\xd3\\xee\\x7c\\x18\\x75\\xb3\\x95\\x51\\x01\\x7b\\x5f\\xb1\\x46\\x81\\x14\\xfc\\x3e\\x09\\x8a\\x89\\x9c\\xdb\\xd5\\x58\\xb3\\x9f\\x09\\x8e\\x15\\x6b\\x6e\\x98\\x01\\xeb\\xcd\\xd6\\x5f\\xed\\x56\\xdb\\xfc\\xaf\\x2c\\x8c\\x78\\x7b\"},\n{{0x0d,0x20,0xfa,0x4a,0x37,0xff,0x30,0xc4,0xdc,0xc3,0xe4,0x4e,0xa7,0xac,0x50,0x11,0x37,0xe5,0x80,0x7e,0x97,0x81,0x33,0x0a,0xc3,0x10,0x98,0x2c,0xc3,0xd3,0x9d,0xbd,},{0x67,0xbb,0x0a,0x01,0xbc,0x86,0x17,0xb4,0x91,0xef,0xf1,0xa3,0x26,0xc1,0xc7,0x0f,0x7d,0x0c,0x5b,0x95,0xa5,0xad,0x48,0x24,0x1a,0xed,0xce,0x1c,0x6f,0x08,0x83,0xcf,},{0xde,0xab,0x12,0xed,0x82,0xba,0x94,0xb4,0x69,0xca,0x98,0xb6,0x6f,0xa2,0x04,0x44,0xb4,0xb7,0x88,0x1c,0x4f,0x0f,0x85,0x34,0x09,0xc9,0xa1,0x50,0x4a,0x5b,0x2b,0x6d,0x78,0x60,0xf2,0x6a,0xda,0x6b,0xf7,0x34,0x59,0xb9,0xcd,0xb5,0x73,0xc8,0x01,0x71,0x21,0x33,0x8e,0xfa,0x60,0xf4,0x14,0x80,0x86,0xd7,0xa3,0xa8,0xed,0x59,0xbb,0x07,},\"\\x35\\xe0\\xf4\\xb4\\xa5\\x17\\xf9\\xc7\\xaa\\x45\\x14\\xf0\\x3e\\x6d\\x65\\xf1\\x9b\\x27\\xc6\\x2c\\xc0\\x69\\xf6\\xbf\\x07\\xdd\\x63\\x78\\xbd\\x6a\\xfe\\x2b\\x76\\x65\\x60\\x00\\x6c\\xbd\\x57\\x30\\xa0\\x09\\x19\\xed\\x11\\x19\\x1f\\xb0\\xc8\\xda\\xc5\\x6e\\x15\\x3f\\xc1\\xce\\xa4\\xbd\\xce\\x50\\x46\\xcc\\xcb\\x71\\x77\\x59\\xa4\\x08\\x3e\\x1c\\x16\\xf7\\x40\\x76\\x32\\x64\\xcc\\x80\\x4d\\xe0\\xd0\\xe1\\xa4\\xb5\\xa2\\x30\\x67\\xaf\"},\n{{0xbe,0xe1,0x61,0x88,0x1d,0x81,0x9b,0x37,0x0d,0x24,0x0d,0x50,0x9b,0xa4,0x6b,0x06,0xfb,0x82,0x8e,0x20,0x31,0x0d,0x9f,0x6b,0x30,0x97,0x80,0x70,0x3e,0x98,0x92,0x7b,},{0x10,0x85,0x43,0x80,0xde,0x89,0x16,0x2b,0xfb,0x9f,0x78,0x35,0xa2,0x71,0x6a,0x3a,0x6e,0x02,0x65,0x67,0x1b,0x25,0x0b,0x38,0x9d,0x01,0xc3,0xbc,0xc0,0x37,0x36,0xb8,},{0xb0,0x7d,0x07,0x2e,0xb3,0x83,0x1f,0xae,0x8a,0x06,0xef,0xfa,0x92,0x01,0x79,0x74,0x96,0xdc,0xe1,0x26,0xb8,0xe1,0x1f,0xef,0x2f,0xa0,0x7f,0x66,0x4d,0xc5,0xcf,0x3d,0x4b,0xf9,0xc3,0x8a,0x8b,0x3c,0x09,0xfb,0x5f,0x14,0xfa,0x2d,0xeb,0x21,0x9e,0x7d,0x85,0x2f,0xdd,0x27,0xc7,0xba,0x32,0xd3,0x09,0x94,0x2f,0x27,0x46,0xdf,0xe4,0x04,},\"\\x5a\\x6f\\xe5\\x99\\xb6\\xb0\\x9b\\x05\\xc0\\xba\\x6a\\x62\\x2d\\xf3\\xa9\\x2b\\x3d\\x37\\x6d\\x24\\xd0\\x4e\\xa8\\x5e\\xbe\\x76\\x7b\\xc2\\xec\\x4d\\x14\\xe8\\x3e\\x69\\x37\\xdc\\x0b\\x91\\x4b\\x48\\x09\\xfd\\xb6\\x07\\x90\\x68\\x41\\xa6\\xfd\\x1d\\xcd\\xf6\\x1a\\xae\\xa8\\xf9\\xbb\\x81\\xb2\\xcc\\xaa\\x32\\xdf\\x41\\x29\\x89\\xae\\x53\\x64\\x66\\x80\\xa7\\x1a\\x21\\x1c\\x84\\x40\\xea\\xb0\\xf1\\xae\\xc5\\xe4\\xfc\\x00\\xe6\\xa2\\xc9\\x6d\"},\n{{0x70,0x15,0x0e,0x95,0x16,0x16,0x4a,0x3d,0x7b,0x7e,0x8b,0x6f,0x25,0x5b,0x65,0xca,0xc9,0xf0,0x74,0x59,0xb3,0x2d,0x11,0xbb,0x94,0xb3,0xd2,0x77,0x20,0x8a,0xbc,0x99,},{0x23,0x28,0xbe,0xc8,0xe4,0x03,0x51,0x04,0x78,0x82,0xe8,0xb4,0x3b,0xc1,0xab,0x08,0x53,0x86,0xfa,0x47,0x98,0x7e,0x46,0xea,0x87,0x60,0x88,0x14,0xc5,0xda,0x71,0x3c,},{0xed,0xa3,0xf5,0x03,0x3e,0xa7,0x95,0x3a,0x0d,0x58,0x3c,0x64,0x57,0x52,0x2e,0x84,0xad,0x78,0x44,0x53,0x04,0xd4,0x8e,0x57,0x7d,0x4d,0x69,0xe8,0x64,0x1f,0xeb,0xe1,0x52,0x48,0xd8,0xd9,0x0c,0xe0,0x94,0x4a,0x8f,0x80,0x1d,0x39,0x09,0x9b,0xc7,0x74,0x94,0xba,0xc4,0xce,0x2a,0x20,0xb3,0x83,0x69,0xc6,0xad,0xfb,0x71,0xe0,0x3d,0x0f,},\"\\x77\\xbe\\x8e\\xce\\xaa\\xb4\\x31\\xa1\\x3c\\x2a\\x28\\xd0\\xd1\\x55\\x64\\x89\\xd8\\xc3\\x92\\xfd\\x7a\\xe4\\x11\\x57\\xf7\\xca\\xf0\\x82\\xcb\\x54\\xe4\\x5f\\x08\\x62\\x6b\\xe0\\x07\\x6b\\xe8\\x44\\xd3\\x8f\\xde\\x90\\x1a\\x5e\\xab\\x0e\\x88\\x32\\xd6\\x9d\\xac\\x22\\xfb\\x85\\x07\\xfb\\x8e\\xc4\\xfa\\xf7\\xc8\\x8f\\xd2\\x6d\\xa3\\x08\\x46\\x1a\\xfe\\x38\\x59\\x87\\x97\\x2b\\x5e\\x76\\x0a\\x34\\xa5\\xe1\\x8b\\x9a\\x82\\xb4\\xaa\\xa5\\x29\\xb7\"},\n{{0x3f,0x87,0xfc,0xfd,0xb4,0x21,0x42,0x2a,0x9c,0x5f,0xb9,0x82,0x68,0x31,0x3c,0x15,0x12,0x8c,0x78,0x84,0x4e,0xf9,0xeb,0x3b,0x37,0x13,0xfa,0x77,0xb6,0x71,0x89,0x03,},{0x53,0x3e,0xc5,0x92,0x28,0x37,0x4b,0xd0,0x3a,0x46,0x99,0xe3,0xa8,0x89,0x6b,0x86,0x18,0x2f,0xcf,0x8f,0xc3,0x08,0x5f,0xdb,0x8f,0x5c,0x46,0x71,0x52,0x4d,0x6f,0xe0,},{0xf6,0x51,0x9d,0x7e,0xdb,0x61,0x34,0x11,0x19,0x74,0x03,0x3f,0x03,0xb8,0xd8,0x9e,0x9c,0x76,0xca,0xec,0x89,0x65,0xa8,0xe1,0x7c,0xd4,0x5f,0xff,0x19,0xde,0x26,0x15,0xd7,0x3e,0xcc,0xdb,0x4a,0x66,0x64,0xa8,0xf0,0xe2,0x3a,0xdf,0x98,0x98,0x8e,0x96,0x25,0x1b,0xf2,0x6e,0xb7,0xa4,0xcc,0xaa,0xc1,0x07,0x9f,0x0a,0x77,0x2f,0x9b,0x05,},\"\\xc0\\x0f\\xed\\x2d\\x68\\x94\\x68\\xbc\\xba\\xcc\\xcd\\x44\\x6e\\x8d\\x8f\\x29\\x9e\\x2a\\x86\\x92\\x5e\\x62\\xe5\\x97\\x09\\xaf\\xaf\\x48\\x57\\x46\\x9f\\xf1\\xe0\\x06\\xd0\\x0f\\xa3\\xe1\\x8a\\x36\\x15\\xf8\\xf0\\x6b\\x6e\\xbd\\xff\\x78\\x5d\\xde\\x58\\x85\\x1d\\x2c\\x23\\x90\\x38\\xa0\\xc3\\x44\\xdc\\xe9\\x85\\xbd\\x1f\\xc8\\xde\\xb4\\x77\\x9a\\xe5\\xf8\\x93\\x2e\\x2f\\x9e\\xd5\\x99\\x0b\\x64\\x72\\xdb\\xe4\\xe6\\xfe\\xf6\\x91\\x76\\x57\\xe0\\xb5\"},\n{{0x44,0xce,0xef,0x04,0x4f,0xf9,0x98,0xd4,0xab,0xea,0xaf,0x37,0x4e,0xb4,0x1d,0x08,0x67,0x18,0xb6,0x30,0x97,0xb1,0xe3,0x5f,0x89,0x63,0x4c,0x14,0x89,0x71,0x32,0xea,},{0xe8,0x3c,0x86,0x67,0x7d,0x03,0xed,0x3a,0x5e,0x8c,0x95,0xf4,0x1f,0x0b,0x32,0x5f,0xf4,0x33,0x37,0x02,0xf2,0xff,0x69,0x36,0xf5,0x7f,0xf3,0x0a,0xa3,0x14,0x85,0xc7,},{0x55,0x45,0x52,0xd6,0xb7,0x90,0xd4,0x21,0xd0,0x6b,0x0a,0x67,0xf8,0xe0,0x02,0xad,0x7a,0x1e,0xd0,0x1c,0x06,0xcf,0x00,0xcb,0xea,0xec,0x2a,0x26,0x8b,0xda,0x29,0xf1,0x18,0x3f,0x0c,0xea,0xfc,0x62,0x5f,0xa5,0xfd,0xb8,0x47,0xdc,0x86,0xfa,0xe1,0xa2,0x04,0x06,0xe4,0x59,0xd4,0xa0,0x17,0x7c,0xb5,0x15,0x22,0x0a,0x56,0x8e,0x08,0x00,},\"\\x8d\\x3e\\x2d\\xec\\x46\\x44\\xc7\\xb5\\x16\\x33\\xb1\\x3e\\x63\\x75\\xca\\x42\\xff\\x91\\x38\\x46\\x5f\\x43\\xd7\\x80\\x0c\\x73\\x13\\x19\\x9f\\x67\\xc9\\xcf\\x1b\\x52\\x0b\\x18\\x20\\xbd\\x63\\x0e\\xcf\\x1c\\x99\\x2e\\x27\\x67\\xb3\\x8e\\xb5\\xbb\\xc4\\x41\\xa4\\xab\\x8d\\x31\\x7d\\xb4\\x41\\xdb\\x35\\xa0\\xfe\\x3a\\xbe\\x7a\\x9e\\x45\\x41\\x88\\x1c\\x2d\\x7b\\x1a\\x26\\x12\\x30\\x69\\x59\\x81\\x5d\\x1d\\xa4\\x12\\x67\\xd9\\x64\\x9d\\xd4\\x49\\x4a\\xce\"},\n{{0x98,0xef,0x2a,0x44,0xd4,0xc8,0x47,0x6d,0xff,0x05,0xaa,0x78,0xdc,0xf9,0xc6,0xdc,0x08,0x6c,0xb2,0xf6,0x22,0xa0,0x67,0x45,0xd6,0x0c,0xbf,0x22,0x3f,0xaa,0xba,0x66,},{0x42,0xfd,0xb1,0xda,0xa3,0x9f,0x01,0x59,0x11,0x9b,0xee,0xc1,0xbe,0xdf,0x6f,0x03,0x94,0xb2,0x6a,0x2a,0x29,0xbd,0x1f,0xde,0x08,0x1e,0xcc,0xda,0xde,0xcc,0x22,0x6a,},{0xab,0x5e,0x87,0x24,0xa3,0xe6,0xff,0x76,0x05,0x8c,0xfb,0x21,0x4d,0x57,0x4e,0x04,0xd0,0x55,0x74,0xec,0xdd,0x4f,0xfe,0x8c,0x07,0xc7,0xaf,0x39,0x6e,0x88,0x26,0x87,0xc5,0xd7,0x9e,0xf1,0xe6,0x2f,0xbb,0x4c,0x5f,0x1b,0xd0,0x6b,0x9b,0xd8,0x97,0x82,0x6e,0xdd,0xe0,0xd1,0x11,0xd9,0x18,0xe8,0xef,0x96,0x1f,0xf2,0xa0,0x0d,0x77,0x00,},\"\\xc8\\xb5\\xfc\\xfc\\x3c\\x18\\xc7\\xd9\\x59\\x57\\xb6\\x68\\xe9\\x1c\\x73\\x1d\\x50\\xc7\\xfc\\xea\\x4f\\x95\\x75\\xbb\\xf7\\x84\\x62\\x58\\x70\\xe2\\x38\\xdf\\x54\\x6e\\x2c\\xb1\\xa1\\x9d\\x28\\x08\\xdd\\x5b\\x23\\x0d\\x38\\x71\\xfd\\xec\\x16\\x10\\x0e\\xe1\\xfb\\xf9\\xb7\\x22\\xfa\\x37\\x44\\xa7\\x50\\xa3\\xb3\\x96\\xb0\\x5f\\x9c\\x21\\xb8\\xc0\\xf6\\x1e\\xad\\x57\\xa7\\x8c\\x5e\\xcf\\x72\\xb5\\x79\\xcf\\xe8\\x8a\\x3f\\x40\\x4c\\x8a\\xcf\\x52\\x4f\\x9a\\xb9\"},\n{{0x93,0xa8,0xc7,0x92,0xa2,0x39,0xc9,0x31,0x91,0x7c,0x11,0x48,0x24,0xa0,0x17,0x4f,0x8b,0xc4,0xeb,0xbf,0x98,0xaf,0x8c,0x7e,0x32,0x1e,0x0f,0x5b,0xea,0x40,0x15,0xec,},{0x9b,0x2e,0xaa,0x8a,0x9c,0x2c,0x25,0xff,0x4f,0x6e,0x13,0xbb,0x12,0xba,0xe5,0xd0,0x6f,0xda,0x0e,0xb1,0x10,0x5f,0xaf,0xae,0x58,0x80,0xff,0x16,0x87,0x40,0xbb,0x74,},{0xcf,0xe3,0x2c,0x44,0x35,0xd9,0x11,0xd7,0x72,0xdc,0x07,0x27,0xe7,0x8d,0x68,0x9d,0x01,0x64,0xc5,0x06,0x95,0x97,0xcb,0x44,0x1b,0x22,0xc1,0xd2,0x62,0x36,0x47,0x9f,0x1a,0xfd,0x70,0x89,0x12,0x1b,0x9a,0xb4,0xf6,0x1b,0xbb,0x1f,0xae,0x1a,0xb4,0x2f,0x76,0x35,0xa9,0x2a,0x53,0x78,0x4d,0x71,0x70,0x91,0x6b,0x70,0x3a,0xa5,0xcc,0x09,},\"\\x90\\x1b\\xf4\\xe0\\x41\\xca\\xf1\\x6e\\x04\\xf2\\xff\\xde\\x8d\\x6f\\xe9\\x7e\\x93\\xd0\\x90\\x0f\\x6b\\xc0\\xfc\\x09\\xa9\\xa0\\x17\\x9d\\x13\\x7b\\x4b\\x77\\x88\\xe5\\x7e\\xb9\\x27\\x66\\xa9\\xc6\\x34\\xf3\\x5a\\xdb\\x5c\\x29\\x88\\xaf\\x1e\\x86\\x20\\x8f\\x46\\x19\\x98\\xf5\\x9c\\xfe\\xc9\\x92\\x04\\xb4\\x84\\xfb\\xca\\xd3\\x95\\x1e\\x7e\\xe4\\x40\\x55\\x23\\x70\\x5d\\x97\\x39\\xb4\\x43\\x07\\xdb\\x03\\xf7\\x13\\xfd\\xa7\\x8d\\xb4\\x21\\xef\\x31\\x21\\xb3\\xba\"},\n{{0x70,0x01,0xfa,0x0c,0x44,0x04,0xc2,0x8a,0xa5,0xb5,0xfc,0xff,0x30,0xa9,0x61,0xf2,0x1a,0x22,0xf5,0xb8,0x5a,0x9e,0x38,0x2e,0x07,0xae,0xa8,0xa8,0x92,0x4d,0x0e,0xc1,},{0xda,0xeb,0xb6,0x3c,0x4d,0x8f,0x40,0xce,0xba,0x8e,0xc3,0x5e,0x3d,0xd9,0x46,0xa6,0xb7,0x5b,0xc7,0x4f,0xcb,0x29,0xad,0xe7,0xb5,0x5e,0xee,0x3c,0xc3,0xae,0xa5,0xca,},{0x64,0xea,0xc9,0xce,0x87,0x46,0x06,0x18,0x63,0x6b,0x41,0xfd,0x2d,0xec,0xc1,0x67,0x3b,0xfc,0x48,0xc5,0xf4,0x79,0xdf,0xac,0xb5,0x1e,0x86,0x68,0x64,0x07,0x37,0x4b,0x1d,0x10,0xbf,0x65,0xd6,0xd7,0x47,0x42,0x14,0xd7,0x77,0x0c,0x9e,0x5c,0x7f,0x80,0x6c,0x80,0xd5,0x3d,0x48,0xb7,0x20,0x87,0x0e,0x5e,0x78,0xf3,0x2e,0x3a,0x7e,0x05,},\"\\x44\\xf4\\x8c\\xfb\\x02\\xf0\\x87\\x77\\xa5\\x78\\x73\\x85\\x5f\\x96\\xbe\\x4c\\x02\\x91\\x32\\x3f\\x27\\x39\\xb2\\x75\\xd9\\x07\\x57\\xa1\\x54\\x72\\xe5\\x75\\x04\\x36\\xe0\\x10\\x74\\x08\\xfe\\x30\\x26\\xc0\\x06\\x25\\x68\\x99\\x83\\xf9\\x90\\xeb\\xa9\\xbe\\xcb\\xfc\\xe4\\x03\\xcc\\xd5\\x63\\x56\\xad\\x27\\x41\\xfd\\x21\\x44\\x5d\\xfb\\x23\\xd7\\x61\\x12\\xe5\\x78\\xb3\\x39\\x5c\\xf9\\xd9\\x60\\x95\\x5f\\x1d\\xa8\\xf3\\x99\\xca\\x28\\x6f\\x21\\x39\\x0e\\x25\\xa5\\x9a\"},\n{{0x3a,0xdc,0xe3,0xa3,0xd3,0xfb,0xc9,0x77,0xdd,0x4b,0x30,0x0a,0x74,0x74,0x9f,0x13,0xa3,0xb0,0x4a,0x5d,0x73,0xa2,0xcd,0x75,0xa9,0x94,0xe3,0x19,0x5e,0xfe,0xbd,0xac,},{0x6f,0xf1,0x9b,0x1f,0x18,0xd6,0x48,0x51,0xd5,0xc7,0x48,0x45,0xc6,0x40,0x7f,0x0b,0xf5,0x96,0xa5,0x2e,0x38,0x5e,0x02,0x01,0x27,0xe8,0x3e,0x54,0xcf,0xf5,0xac,0x19,},{0x7d,0xda,0x89,0xf8,0x5b,0x40,0x53,0x9f,0x5a,0xd8,0xc6,0xde,0x49,0x53,0xf7,0x09,0x4a,0x71,0x5b,0x63,0xdd,0xa3,0x0e,0xc7,0xcf,0x65,0xa7,0x85,0xce,0xae,0x5f,0xc6,0x88,0x70,0x7e,0xe0,0x0b,0xe6,0x82,0xce,0xcb,0xe7,0xee,0x37,0xd8,0xfc,0x39,0xee,0x6d,0x83,0xc6,0x44,0x09,0x68,0x17,0x08,0xa0,0x89,0x8a,0x18,0x3b,0x28,0x8a,0x06,},\"\\xfe\\x6c\\x1a\\x31\\x06\\x8e\\x33\\x2d\\x12\\xaa\\xb3\\x7d\\x99\\x40\\x65\\x68\\xde\\xaa\\x36\\xbd\\xb2\\x77\\xce\\xe5\\x53\\x04\\x63\\x3b\\xd0\\xa2\\x67\\xa8\\x50\\xe2\\x03\\xbb\\x3f\\xab\\xe5\\x11\\x0b\\xcc\\x1c\\xa4\\x31\\x66\\x98\\xab\\x1c\\xf0\\x0f\\x0b\\x0f\\x1d\\x97\\xef\\x21\\x80\\x88\\x7f\\x0e\\xc0\\x99\\x1e\\x8c\\x11\\x11\\xf0\\xc0\\xe1\\xd2\\xb7\\x12\\x43\\x3a\\xd2\\xb3\\x07\\x1b\\xd6\\x6e\\x1d\\x81\\xf7\\xfa\\x47\\xbb\\x4b\\xb3\\x1a\\xc0\\xf0\\x59\\xbb\\x3c\\xb8\"},\n{{0x14,0x80,0x3c,0x1f,0x23,0xa4,0x7f,0xcd,0xd3,0x5e,0x5d,0x14,0x6e,0x20,0xca,0x63,0x0c,0xd7,0x12,0xc0,0x47,0xd5,0x33,0x0b,0x65,0x2e,0x31,0x85,0x7a,0xcb,0xc9,0xe8,},{0x36,0xf2,0xd5,0xbd,0x6d,0x83,0x24,0xfa,0x6e,0x9d,0xb7,0xf7,0xd8,0x54,0xeb,0xe4,0x8c,0x0e,0x62,0x99,0x99,0x81,0x22,0xe9,0xd4,0x4b,0x8a,0xdb,0xef,0x54,0xf0,0x93,},{0x07,0xa7,0xde,0x6c,0xe9,0x76,0x64,0xb3,0xea,0x09,0x28,0xe1,0x38,0x5c,0x33,0x09,0xbe,0x08,0xa4,0x7c,0xbf,0x4d,0xaa,0x91,0x86,0xa1,0xb9,0x48,0xc8,0x6f,0xbb,0xa3,0x9c,0x4e,0xfc,0xfc,0xb7,0xa0,0xa3,0x86,0x6b,0xc9,0x4c,0x67,0x88,0xff,0xe6,0xbe,0x0d,0x49,0x72,0xe5,0x6d,0x0c,0x32,0x92,0xd1,0xcc,0x6e,0x25,0x44,0x7b,0x99,0x04,},\"\\x55\\x59\\x83\\x67\\x9d\\x02\\x6e\\x53\\x54\\xb4\\xcc\\x05\\x5a\\xe1\\xbc\\x14\\x65\\x3c\\x72\\x81\\xec\\x72\\x23\\x72\\xf3\\xfe\\xb7\\x78\\xe8\\x41\\xda\\x82\\x1b\\x3d\\x0b\\x8e\\xe7\\xa9\\xa9\\x12\\x9e\\xa0\\x68\\x24\\xbe\\x83\\x79\\xfb\\xbd\\xcb\\x07\\x48\\xf4\\x23\\x72\\x1c\\xcb\\x17\\x2a\\x1b\\xaf\\xa1\\xd5\\xae\\x9f\\xc1\\xc5\\x1e\\x93\\xd4\\x1d\\xd5\\x51\\xc3\\x08\\x60\\x79\\xb6\\x20\\x28\\x6c\\x1c\\x40\\xc1\\x22\\x3b\\xbc\\xbb\\x76\\x72\\x2e\\x92\\xca\\x21\\xd8\\x41\\x0a\"},\n{{0x1a,0x61,0x15,0x4d,0x34,0x72,0xcd,0x96,0xb3,0x28,0xee,0x67,0x4b,0xeb,0x4f,0xc8,0x67,0x63,0xa9,0x69,0xfb,0x41,0x04,0x94,0xe0,0x67,0x84,0x14,0xe3,0x1a,0x46,0xa6,},{0x75,0x76,0xd9,0x3a,0xc8,0x5d,0x0f,0xc6,0x1f,0x25,0x8c,0x55,0xcf,0x90,0xbd,0x87,0xa6,0x35,0x09,0x9c,0x0e,0x81,0x0e,0xd0,0xb9,0x37,0x25,0x8d,0x13,0xb4,0x25,0x59,},{0xad,0xa1,0x66,0x6c,0x9c,0x3b,0x82,0x84,0xb8,0xa2,0x1c,0x4f,0x26,0x18,0xef,0x08,0x08,0xa6,0x46,0xf3,0xf1,0x09,0x41,0xe4,0x70,0xf7,0x38,0xe1,0x78,0x5e,0x2d,0xe9,0xfd,0xd9,0xc8,0xcb,0x52,0x6f,0x94,0x5c,0x7a,0x8c,0x69,0x94,0xf1,0x51,0xb7,0xd0,0x66,0x58,0x1b,0x1d,0x75,0x53,0x07,0x94,0x7c,0x62,0xbe,0xfc,0x8a,0xb7,0x07,0x0f,},\"\\x64\\xc5\\x65\\xef\\xbc\\xb8\\xb9\\x52\\x8e\\xd4\\x72\\x53\\xf3\\xc6\\xa4\\x03\\x5d\\xb7\\x81\\xd6\\xf0\\x97\\x6b\\x5e\\x5b\\xa8\\x44\\x7d\\x4e\\xd5\\x4b\\x04\\x10\\x52\\x93\\xef\\x4c\\x00\\x0d\\x8b\\x2e\\x1b\\x5b\\x75\\xe7\\x27\\xe5\\xd2\\xa0\\x77\\x74\\x3b\\x50\\xd1\\x83\\xb4\\x91\\x76\\x48\\x01\\xa2\\x50\\x4d\\x16\\xee\\x6d\\x7d\\x8a\\xc4\\xfe\\x40\\xe6\\xbf\\xc2\\xa8\\x12\\x9c\\x72\\x85\\xa5\\xac\\x69\\x1c\\x35\\xe6\\x42\\xed\\x16\\x2c\\xf7\\xfb\\xc6\\x45\\x16\\x73\\x3a\\x23\\xb3\"},\n{{0xf2,0x15,0xd3,0x4f,0xe2,0xd7,0x57,0xcf,0xf9,0xcf,0x5c,0x05,0x43,0x09,0x94,0xde,0x58,0x79,0x87,0xce,0x45,0xcb,0x04,0x59,0xf6,0x1e,0xc6,0xc8,0x25,0xc6,0x22,0x59,},{0x1e,0xd5,0x06,0x48,0x5b,0x09,0xa6,0x45,0x0b,0xe7,0xc9,0x33,0x7d,0x9f,0xe8,0x7e,0xf9,0x9c,0x96,0xf8,0xbd,0x11,0xcd,0x63,0x1c,0xa1,0x60,0xd0,0xfd,0x73,0x06,0x7e,},{0xcb,0xef,0x65,0xb6,0xf3,0xfd,0x58,0x09,0x69,0xfc,0x33,0x40,0xcf,0xae,0x4f,0x7c,0x99,0xdf,0x13,0x40,0xcc,0xe5,0x46,0x26,0x18,0x31,0x44,0xef,0x46,0x88,0x71,0x63,0x4b,0x0a,0x5c,0x00,0x33,0x53,0x41,0x08,0xe1,0xc6,0x7c,0x0d,0xc9,0x9d,0x30,0x14,0xf0,0x10,0x84,0xe9,0x8c,0x95,0xe1,0x01,0x4b,0x30,0x9b,0x1d,0xbb,0x2e,0x67,0x04,},\"\\xfb\\xed\\x2a\\x7d\\xf4\\x18\\xec\\x0e\\x80\\x36\\x31\\x2e\\xc2\\x39\\xfc\\xee\\x6e\\xf9\\x7d\\xc8\\xc2\\xdf\\x1f\\x2e\\x14\\xad\\xee\\x28\\x78\\x08\\xb7\\x88\\xa6\\x07\\x21\\x43\\xb8\\x51\\xd9\\x75\\xc8\\xe8\\xa0\\x29\\x9d\\xf8\\x46\\xb1\\x91\\x13\\xe3\\x8c\\xee\\x83\\xda\\x71\\xea\\x8e\\x9b\\xd6\\xf5\\x7b\\xdc\\xd3\\x55\\x75\\x23\\xf4\\xfe\\xb6\\x16\\xca\\xa5\\x95\\xae\\xa0\\x1e\\xb0\\xb3\\xd4\\x90\\xb9\\x9b\\x52\\x5e\\xa4\\xfb\\xb9\\x25\\x8b\\xc7\\xfb\\xb0\\xde\\xea\\x8f\\x56\\x8c\\xb2\"},\n{{0x8c,0x9f,0x95,0x08,0x30,0x75,0xa4,0x3f,0xe4,0x26,0xd1,0x9f,0x1e,0x87,0x71,0x9b,0x40,0x04,0x3d,0xe8,0x8e,0xb0,0xee,0x97,0x1f,0x70,0xe1,0x0c,0x76,0x94,0xce,0x4e,},{0xe9,0x1d,0x16,0x7a,0xa3,0xeb,0xc2,0x3e,0x70,0xaa,0xb4,0x5d,0xab,0xe9,0x05,0xe4,0x16,0x26,0x2f,0x91,0x0e,0x2a,0x95,0x5d,0xd8,0x61,0x9e,0xfc,0x74,0xc2,0x4e,0x85,},{0xca,0xc5,0x55,0x22,0x2d,0xaf,0xec,0x76,0xa0,0xb4,0x7b,0x9d,0x2c,0x58,0x6b,0x3b,0x3b,0x9b,0x3b,0x9c,0x83,0x64,0xbe,0xb3,0xca,0xe1,0xe8,0xdd,0x7f,0x1a,0xe9,0xdd,0x74,0xf2,0x2b,0x8d,0xd4,0xad,0x2b,0x29,0x0f,0x81,0x35,0x1a,0x41,0x5a,0x99,0xf0,0x30,0xf1,0x07,0x78,0xbe,0x4c,0xda,0x85,0xd1,0xd3,0x53,0x33,0x1e,0x70,0xf1,0x09,},\"\\xb6\\x9d\\x70\\xe8\\x60\\xf5\\x5c\\x42\\x7e\\xf2\\xa7\\x1d\\xf3\\x6e\\x05\\xbb\\xc4\\x3b\\xb2\\xe0\\x64\\x63\\xaa\\x5d\\xe3\\x44\\x19\\xc6\\xa6\\x14\\xee\\xa6\\x69\\x53\\x35\\xa8\\x75\\x26\\xc1\\x22\\x64\\x88\\xd8\\x42\\x89\\x1d\\x05\\x74\\xdf\\x34\\x3c\\x9c\\x1e\\x17\\xae\\xd6\\x95\\x8e\\xce\\xe8\\x74\\x74\\x22\\x1e\\xb7\\x7a\\x59\\x9e\\xcb\\x05\\x93\\x44\\xc0\\xd0\\x52\\xc0\\x00\\x2a\\x66\\xe5\\xa6\\x01\\x31\\x85\\xaf\\x69\\xa0\\x1b\\xa5\\xdb\\xc6\\x60\\xd3\\x6c\\xae\\x23\\x5f\\x67\\xfe\\x0e\"},\n{{0xd7,0xeb,0x1f,0xba,0x42,0x4f,0xee,0xd1,0x00,0x77,0x7e,0xed,0xb4,0x87,0x4b,0xf2,0x08,0x10,0xad,0x68,0x6b,0x67,0xe3,0x1d,0x27,0xec,0xf6,0x10,0x60,0x9a,0x33,0xf5,},{0xa2,0x5a,0xcb,0x11,0xa6,0xc8,0x25,0x71,0x3a,0x08,0x5f,0xa7,0x54,0x69,0x28,0x86,0xa8,0x7d,0x07,0xfb,0x9b,0xe1,0xa5,0x3e,0xb9,0x61,0x72,0x8b,0xb6,0x6c,0x90,0x60,},{0x2b,0xf7,0x19,0x68,0x2b,0x07,0xcc,0x5e,0xcc,0x04,0x80,0xf3,0x7e,0x9d,0x12,0x3f,0xf6,0xf4,0x4c,0x26,0xe6,0x95,0x8e,0x59,0xf0,0x80,0x46,0x6f,0x9c,0xd3,0x73,0xa1,0x65,0x00,0xda,0xf1,0x23,0xdc,0x3f,0x13,0x34,0x77,0x4b,0xfc,0x9f,0xa8,0x45,0x03,0xb1,0x6d,0xbf,0x21,0xa8,0x15,0xc1,0xad,0xa6,0xeb,0xef,0x49,0x20,0x46,0x17,0x02,},\"\\xa1\\xd0\\xf8\\x1e\\x3d\\x59\\x08\\x9c\\xc2\\xb1\\x9e\\x07\\xd2\\xfc\\xe4\\x3d\\xb4\\xcf\\x17\\x1f\\xaa\\x64\\x2f\\x3b\\x0b\\xbd\\xe7\\x7a\\xe3\\xd5\\x3a\\xf5\\xc0\\x2b\\xf8\\xfc\\x12\\xff\\xb4\\xe5\\x7f\\x7c\\x8a\\x01\\x5d\\x6c\\x2d\\x17\\x89\\x44\\xfa\\xe9\\xf7\\xc8\\xfc\\x96\\x9d\\x4b\\x77\\xbe\\xa5\\x18\\x76\\xae\\x99\\xd5\\x9e\\x94\\xad\\x24\\x56\\xe0\\xed\\x72\\xc5\\x2c\\xf4\\xe5\\x34\\x0d\\xa1\\x7c\\x44\\xdb\\xff\\x86\\x45\\x7a\\x51\\x9b\\x6f\\xff\\xe2\\x69\\x06\\x62\\x90\\xd6\\x29\\xfe\\x69\"},\n{{0x4f,0x6a,0xeb,0x35,0xfc,0xe1,0x4f,0xbc,0xbb,0x9a,0xa8,0xa4,0xf6,0x45,0x1b,0xf9,0x5b,0x98,0xdf,0x04,0x7f,0xa8,0xc4,0x3f,0x1e,0xad,0x3b,0x40,0x4d,0x3f,0x92,0x8f,},{0xbf,0x66,0xa9,0xed,0xd0,0x94,0x81,0xdb,0x84,0x44,0xa1,0x76,0xc8,0xce,0x05,0x78,0xd2,0x93,0x4f,0x0c,0xdc,0x97,0x34,0xe8,0x6f,0xca,0xac,0x05,0xbf,0x33,0x30,0xf1,},{0x6a,0xdb,0x07,0xe3,0x64,0xf2,0xa4,0x55,0xcb,0x05,0x86,0x7a,0xbc,0x51,0x1a,0xcd,0x9d,0x65,0x89,0x77,0xf0,0xca,0xca,0xfc,0x92,0x82,0x8e,0x7b,0x72,0x4f,0x6b,0xbf,0x98,0xbf,0x0b,0xfb,0x29,0xf4,0xe5,0xe6,0xc7,0x47,0x38,0xd4,0xfd,0xd8,0x16,0xd9,0x25,0x24,0x07,0xae,0x4f,0x3a,0xfc,0x57,0x4c,0x4f,0x00,0x61,0x48,0x24,0xe2,0x03,},\"\\x2d\\xfb\\xb3\\xf5\\x9e\\x19\\xea\\x17\\xd4\\x4a\\x5b\\xde\\x4a\\xd2\\x27\\xa1\\xa3\\x51\\xdd\\xa1\\x7a\\xf8\\x40\\xee\\x0a\\x75\\xda\\x21\\xa5\\xcc\\xa8\\x9b\\x6d\\x1c\\x56\\x7c\\x33\\x3e\\x9c\\xc9\\x10\\xe2\\x15\\x7e\\x05\\xe8\\x6a\\xd5\\xd9\\x31\\x14\\x50\\x64\\x59\\x4c\\x47\\xba\\xee\\xa8\\x66\\x3a\\x34\\x64\\x9c\\x43\\xe9\\x0e\\xb9\\x5c\\xa1\\x0f\\x7d\\x51\\x59\\x7b\\x37\\x8a\\x72\\x2f\\x1f\\x70\\x4a\\xdf\\x9f\\x22\\xe9\\xf8\\x85\\xb8\\x9d\\x1f\\x93\\x80\\x06\\xa2\\xef\\xcd\\xb4\\x2a\\xaf\\xf5\\xe3\"},\n{{0xef,0x4a,0x67,0x62,0xb4,0x00,0x97,0x52,0x04,0xcc,0xc1,0x3a,0xbb,0x47,0x34,0x40,0x15,0x45,0x49,0x06,0x85,0x0f,0xf1,0x49,0x40,0xcb,0xb8,0x3a,0xa2,0x24,0x14,0xae,},{0xea,0xca,0x45,0x09,0x96,0xf5,0x0c,0xfa,0xf2,0xbd,0x7f,0x9d,0x7f,0xa7,0x08,0x7f,0x09,0xad,0x49,0x66,0x42,0x06,0xa8,0x0b,0xc2,0xe5,0xbb,0xbb,0x85,0xbb,0x66,0x8e,},{0x02,0x69,0x7d,0x44,0xca,0xd8,0x62,0xf1,0xda,0xf5,0x70,0x82,0x05,0xf4,0x50,0xd4,0x08,0x52,0x5b,0x10,0xc0,0x1f,0xfd,0x06,0xcf,0xee,0x80,0x37,0x4f,0x3d,0xb1,0x6f,0xa9,0xa4,0x9c,0x19,0xa9,0x84,0x4b,0x34,0x5f,0x2f,0x95,0x59,0xea,0x74,0xaa,0xb1,0x73,0xba,0xa0,0x78,0xc5,0x43,0x70,0xa5,0x16,0x67,0x00,0xc6,0xda,0xfb,0x78,0x0a,},\"\\xa4\\xb6\\x3e\\xae\\xd5\\xa6\\x4a\\x94\\xf2\\xca\\xd2\\x12\\xce\\x2a\\xe7\\x10\\x92\\xfd\\x3e\\xa7\\x44\\xf5\\xbd\\x89\\x56\\x2b\\x2f\\xc2\\xa6\\xc9\\xe4\\xd7\\xaa\\x27\\xad\\xd5\\x62\\x64\\xa5\\xa5\\x50\\x16\\x61\\x0b\\xe6\\xc1\\x9f\\xf7\\xd4\\x98\\x9e\\x95\\x04\\x74\\x08\\x53\\x01\\x27\\x15\\xa7\\x9e\\xce\\x9e\\x12\\xc3\\x01\\xb3\\x31\\x7c\\x7d\\x9b\\x67\\x30\\xdb\\x86\\x2a\\x4a\\x1d\\x28\\x05\\x8e\\x0f\\x8b\\x5d\\xdd\\x97\\x38\\xc7\\xc6\\x2e\\xa5\\x72\\xcf\\xe5\\x9e\\xae\\x08\\xe2\\xb8\\xb6\\x59\\x3b\\x58\"},\n{{0x55,0x01,0x7e,0x5f,0x61,0xf0,0xc5,0xba,0xfb,0xcd,0xe6,0xf8,0x49,0xf4,0x2a,0x31,0xe5,0xe7,0xa8,0x78,0xc1,0xd3,0xf9,0x12,0x6f,0xc5,0x69,0xfd,0x41,0x7e,0xa9,0xf2,},{0x66,0x91,0x4f,0x74,0xed,0x93,0x2f,0xc8,0x81,0xff,0x01,0x66,0x68,0x3f,0x67,0x5a,0x7c,0x28,0xa9,0x26,0xfd,0xdd,0x64,0x69,0xcd,0xb3,0xf2,0x8e,0x6d,0xec,0x42,0xcc,},{0xb1,0xa5,0xe7,0xc4,0x9b,0x8f,0xc6,0xb4,0x33,0x1e,0x04,0x16,0xce,0x7e,0x4e,0xd5,0x9e,0xdd,0x56,0x30,0x0b,0x80,0x2e,0x0d,0x72,0xab,0xca,0x4a,0x6f,0xcb,0x87,0x6c,0x03,0xbf,0x33,0x15,0x79,0x12,0x4a,0xe0,0xd3,0xfe,0x43,0xf7,0x89,0x8b,0xc8,0x7e,0x93,0xfc,0x2d,0xa3,0x97,0x0f,0xc8,0x63,0x89,0x57,0xd1,0x8c,0x66,0x13,0xc8,0x08,},\"\\x2f\\xc8\\x4a\\x09\\x98\\xfa\\x6e\\x16\\x8a\\x86\\x64\\x10\\xbb\\x68\\x10\\x5d\\xf2\\x49\\xa2\\x8c\\xfc\\x76\\x60\\x4b\\xe9\\x4f\\xd7\\xdf\\xff\\xf2\\xfc\\x1d\\xed\\xd2\\x20\\x19\\x94\\x65\\x57\\x5e\\x8d\\xf8\\x60\\x19\\x0f\\x16\\xac\\xa4\\x08\\x41\\x69\\xbe\\x16\\xc6\\xba\\x32\\xeb\\x67\\x04\\x2f\\xfd\\x4f\\x23\\x03\\x16\\xa2\\x6b\\x26\\x24\\xa4\\x2f\\x8f\\x90\\xad\\x57\\xf6\\x91\\x64\\x86\\xfa\\x91\\xfd\\x94\\xed\\x68\\xad\\xed\\x4e\\x63\\x24\\x30\\xef\\x71\\x94\\x46\\x97\\x9b\\xfa\\xf3\\x45\\x40\\x9c\\x38\\x7f\"},\n{{0x05,0x53,0xfb,0xa8,0x66,0x94,0x23,0x41,0x21,0x7c,0xf2,0x78,0xac,0x57,0xcb,0x21,0xac,0xd0,0x9d,0x99,0x16,0xcc,0x6a,0xf0,0xac,0x46,0x94,0x1e,0xa1,0x39,0xd5,0x45,},{0x84,0x0c,0x66,0xe5,0x7c,0x2d,0x4f,0x52,0xa4,0xa2,0x79,0x6d,0x2a,0x53,0xc5,0x70,0x9b,0x96,0xa6,0x28,0xc2,0xe0,0x63,0xfe,0x6e,0xfd,0x47,0xf2,0x83,0xef,0x5e,0x82,},{0xbc,0x33,0x64,0xc1,0x52,0xee,0x5c,0x80,0x8a,0xc3,0x40,0xf4,0x9e,0xa2,0xcc,0x40,0x4e,0x93,0x51,0x71,0x21,0x22,0x0c,0xce,0x6f,0x7c,0x30,0xa2,0x25,0x00,0xe4,0x1b,0xcd,0xb6,0xe8,0x20,0x48,0x0f,0x8f,0xcc,0xdd,0x22,0xff,0x9a,0xd9,0x6d,0xa5,0x32,0x80,0x2f,0x43,0x1e,0x94,0x24,0x0f,0xb8,0x3d,0x4b,0xce,0xaa,0x09,0xb9,0x2b,0x0d,},\"\\xc1\\xfa\\xe6\\x26\\x2a\\x0e\\x98\\xa6\\xb1\\x23\\x5f\\xcb\\x62\\x28\\x3b\\x7f\\x0a\\x09\\x7f\\x9d\\x00\\x24\\x16\\xd3\\x18\\xfe\\xfc\\x60\\xc5\\xa1\\x58\\x4f\\x90\\x0a\\xd0\\xab\\x26\\xcc\\xfa\\xe0\\xd6\\xd8\\x4a\\xa9\\xaa\\x2d\\xf1\\x6d\\x4c\\x11\\x7e\\xa2\\x72\\x46\\x76\\xcb\\x86\\x6d\\x48\\x70\\xa8\\x72\\xfc\\x82\\x9a\\x7c\\x2a\\x5d\\x21\\xba\\x83\\x34\\x0a\\xdb\\x33\\x9a\\x34\\xc5\\x18\\x4c\\x7f\\x5e\\xad\\x0f\\x07\\x72\\x89\\xb3\\x36\\x77\\xed\\x6a\\x1b\\xa3\\x4b\\xe1\\x99\\x4e\\x25\\x76\\x3b\\xd1\\xd9\\xfa\\xec\"},\n{{0x7a,0x5a,0xc6,0x02,0xde,0x19,0xf3,0xc2,0x10,0x40,0xbc,0xdd,0xbf,0xf4,0x2f,0x6a,0xee,0x6f,0x95,0xc1,0xb0,0x93,0x86,0x8f,0x48,0xe5,0x04,0x82,0xdb,0xf4,0xf9,0xc7,},{0xfb,0xb6,0xc7,0x53,0x1c,0xda,0x21,0xe7,0xd1,0x7e,0xa9,0x03,0xc4,0xd1,0x4b,0xe6,0xc6,0x8b,0x4c,0xa8,0x03,0xa1,0x6b,0xd8,0x71,0x20,0xf5,0xaa,0xf7,0xdc,0xe1,0xd4,},{0x84,0x10,0x1d,0xd4,0xb5,0xe8,0xca,0x3e,0xd9,0x8c,0x1e,0x8a,0x06,0xe1,0x1d,0x7e,0x42,0x4b,0x0d,0x12,0xca,0x71,0x4e,0xe7,0x37,0x4b,0x64,0xc2,0x9d,0x51,0xa2,0x02,0x1c,0xc7,0x7a,0xc7,0x53,0x89,0xd9,0xb0,0xa6,0x46,0xa4,0x47,0x62,0x3d,0x7d,0x04,0xd1,0x24,0x18,0x66,0xb0,0xca,0x6e,0xdd,0x1b,0x7a,0xc0,0x15,0x66,0x6b,0x70,0x0d,},\"\\xbd\\x16\\x85\\x41\\x92\\x79\\xeb\\x81\\xe4\\xcf\\x3c\\x90\\x90\\x31\\xf0\\xf0\\x9c\\x5f\\xfa\\xe7\\xe2\\xce\\x6b\\xa9\\xd9\\x6c\\x2b\\xce\\x87\\xb8\\xba\\x0d\\xd7\\x63\\x23\\x10\\x01\\xe5\\x32\\xc7\\xdd\\xd6\\x21\\x03\\xab\\xf7\\x01\\x28\\x8e\\x19\\xdd\\x8f\\x53\\x02\\xe8\\xf5\\xd3\\x1b\\x64\\xcc\\x33\\x9b\\xd8\\xb7\\xa9\\x55\\x50\\xc8\\xa1\\x16\\xfd\\x48\\x69\\x48\\x77\\x2b\\xd5\\xaf\\x8d\\xfd\\x46\\x00\\x1c\\x59\\x76\\x7b\\x0d\\x6b\\xdc\\xe3\\x83\\xa7\\x07\\x89\\x92\\xd1\\x02\\x2f\\xbc\\xaf\\x90\\x71\\x06\\x87\\xb9\\xaa\"},\n{{0x50,0x41,0x4c,0xf5,0x49,0xbc,0xc5,0x5b,0x5b,0x6b,0x75,0xea,0x37,0x82,0xb2,0xea,0x7c,0x08,0x7b,0x6a,0x01,0x06,0x17,0x5e,0x46,0x9c,0xa2,0xcc,0x76,0x4a,0xeb,0x01,},{0xd0,0xf3,0x0c,0x12,0xe9,0x97,0xf9,0x6e,0x7a,0xee,0xcd,0x1b,0xff,0x6a,0x01,0x2e,0xc3,0x88,0xeb,0xf8,0xf3,0xf4,0xaf,0x66,0x48,0x04,0xd1,0x63,0x8e,0x4c,0x34,0x6a,},{0xb3,0x09,0x80,0x01,0x60,0xde,0x43,0xa6,0x3a,0x89,0xa0,0xac,0xb8,0xa6,0x05,0x00,0x59,0x58,0x9b,0x3e,0xae,0xca,0xc2,0x0b,0x25,0x6f,0xec,0xe4,0x38,0x04,0x2f,0x69,0x41,0x5d,0x8a,0x56,0x88,0x3e,0xe3,0x83,0x6d,0x31,0x34,0xa7,0xfc,0x1d,0xe6,0x4f,0xa8,0xc8,0xce,0xcc,0x3c,0xe2,0x75,0x89,0xf6,0x06,0x05,0x88,0x20,0x85,0x7a,0x0c,},\"\\x75\\xad\\x77\\xe8\\xc5\\x4b\\x0b\\x05\\xfb\\x2d\\x16\\x2e\\x7c\\xad\\xb8\\xa7\\x52\\x80\\x81\\xb8\\x63\\xf7\\x6a\\x44\\x1b\\x37\\x44\\x69\\x41\\x3e\\x57\\x14\\xed\\xf5\\x4f\\x80\\x04\\x96\\xaf\\x01\\x57\\xc1\\x7e\\x42\\x55\\x83\\x41\\x4d\\x43\\x61\\xf2\\x13\\x41\\x71\\xc0\\xb8\\x7c\\x22\\xce\\x68\\x20\\xa4\\x85\\x0a\\xb4\\x9d\\x99\\xa9\\xba\\xdc\\xe9\\xe3\\x61\\x10\\xe7\\xf3\\x06\\x01\\x18\\xb3\\x59\\x0f\\x82\\xb4\\x37\\x71\\xe9\\xfb\\xb0\\x81\\xaf\\xe6\\x22\\x27\\xe0\\x24\\xd9\\x8d\\xe6\\xcd\\xec\\x02\\x8d\\x7c\\x49\\x49\\x0d\"},\n{{0x93,0xcb,0x00,0xd8,0xfe,0x9c,0x97,0x77,0xa6,0x83,0x63,0x1f,0x39,0xba,0x0f,0x48,0x76,0x14,0x82,0xcf,0x1c,0x36,0x6b,0xd8,0x63,0xcf,0x71,0x51,0x01,0x53,0x25,0x55,},{0x87,0xe9,0x4a,0x1e,0xa5,0x25,0x8d,0x61,0x18,0x0c,0xb8,0x28,0x59,0x0f,0xf1,0x41,0x8a,0x87,0xd0,0x1e,0x70,0x26,0x86,0xba,0x8a,0xbc,0x26,0x92,0xc8,0xdc,0x3c,0x91,},{0x09,0x82,0x4f,0xa2,0xdf,0xbc,0x4d,0x6e,0xf7,0x6a,0x9e,0x41,0x45,0x96,0x11,0x16,0x76,0x91,0x30,0x55,0x3b,0x3e,0xdf,0xfa,0x50,0xd0,0x4f,0x39,0xb8,0xb7,0x9f,0xac,0xbd,0x23,0x7a,0xcf,0x71,0x35,0x4a,0x53,0xa6,0xe5,0xfe,0xe7,0x54,0xe8,0x23,0xb0,0xb2,0x90,0xf9,0x61,0x93,0x20,0xa1,0x3d,0x56,0x12,0x69,0xa2,0x21,0x63,0x9f,0x03,},\"\\x88\\xd8\\x53\\x8d\\x31\\x86\\x78\\x13\\xd8\\x8f\\xef\\x72\\x28\\xd4\\x9a\\x7e\\x95\\x0d\\x73\\x83\\x96\\xf1\\x16\\xdd\\xa1\\x02\\x5f\\x79\\x13\\x54\\x7c\\x5d\\x1d\\xc5\\x67\\x7a\\x6d\\xe4\\xb4\\xa5\\x88\\x05\\x07\\xb3\\x61\\x78\\x0b\\x61\\xb4\\x3f\\x77\\x95\\x26\\x3d\\xb2\\x2f\\xf3\\x41\\x64\\x5f\\x2f\\x59\\x14\\xfd\\x60\\x88\\xc2\\x81\\x12\\x11\\xed\\x47\\x56\\xac\\x01\\x9a\\x60\\x35\\xd6\\x6e\\x31\\x70\\xc1\\xd8\\x2b\\xfa\\xa3\\x05\\x96\\xb3\\x96\\xb3\\x26\\x0c\\xc1\\xd1\\x0d\\x41\\x3d\\xd4\\x7e\\xbe\\x6d\\xaa\\x0c\\x30\\xdc\\x42\"},\n{{0x2b,0x4c,0xae,0x38,0x0e,0x95,0xce,0x69,0x4c,0x26,0xac,0x79,0x57,0x44,0x73,0x47,0xf9,0x8e,0x31,0xb4,0xbf,0x02,0xd7,0x44,0xe1,0x31,0x52,0x90,0x71,0xe2,0x30,0x1d,},{0xe6,0xfc,0x70,0x5a,0x79,0xc9,0x8e,0x11,0x5b,0x4e,0x28,0xd3,0xaa,0x15,0x06,0xb7,0x4e,0xe7,0x42,0x76,0xc5,0xfc,0x11,0x09,0xa7,0xf4,0xd8,0x9c,0x6f,0xaf,0xb8,0x89,},{0x55,0x5e,0x45,0x65,0x6b,0xa9,0xcf,0xbf,0x51,0x55,0xd0,0xe5,0x25,0x76,0xe5,0x19,0x7a,0xbb,0xbc,0x9d,0xd2,0x33,0x99,0x3e,0xec,0x2a,0x1e,0xe7,0xf6,0xa8,0x64,0x09,0xc0,0xb7,0x1b,0x0a,0x66,0x19,0x78,0xff,0x5e,0x0a,0xcd,0xc9,0x46,0x3d,0xc4,0x49,0x90,0x6f,0x47,0x4f,0x8e,0x79,0xbb,0x86,0x16,0x8b,0xf7,0x07,0x41,0xe3,0x4b,0x02,},\"\\xe0\\xb8\\x25\\x0e\\x27\\xb7\\xc0\\x29\\x1d\\xbc\\x47\\xa6\\xda\\x6f\\x12\\x68\\x98\\x7a\\xfd\\xf0\\xa1\\xe9\\x0b\\xe6\\x9b\\xcb\\xc4\\x37\\x08\\x65\\x21\\x78\\x30\\xd5\\x20\\x86\\x93\\xbe\\x7b\\x70\\x45\\x09\\x9a\\x22\\xea\\x27\\xf9\\x52\\xeb\\x3f\\x79\\xa9\\xa0\\xf1\\xb5\\xa8\\x7b\\x19\\x36\\x77\\x90\\x78\\x8d\\x34\\xc2\\x19\\xc2\\xe2\\xa6\\xb8\\x34\\x02\\x0f\\xb4\\xfd\\x14\\x9d\\xc5\\x6b\\x54\\x4f\\xdd\\xbb\\x42\\x07\\x1a\\x16\\x2f\\xc7\\xcb\\x33\\xc1\\x46\\xca\\xc0\\x5a\\x31\\xb1\\x83\\xe9\\xda\\xad\\xc6\\x16\\xf3\\xaf\\x44\\x9b\\x17\"},\n{{0xb5,0x64,0x91,0xe5,0x49,0x99,0xbb,0x5a,0x17,0x15,0xeb,0xfa,0x2f,0xeb,0x14,0xa5,0x45,0xa3,0xa4,0x3c,0x2f,0xdf,0xd4,0xbe,0x0c,0x95,0xfc,0x11,0x81,0x9a,0xd6,0x95,},{0xcd,0x42,0xbf,0x41,0x4f,0x9b,0xfc,0x72,0xec,0x06,0x98,0x82,0xa8,0x00,0x55,0x7c,0xdf,0x31,0xbc,0x34,0x64,0xfb,0x10,0x2c,0x31,0x0e,0x6d,0xbd,0x3a,0xe2,0x08,0x63,},{0xe3,0xbe,0x3e,0x71,0xa8,0x98,0x52,0xdf,0x3c,0xff,0xd7,0x2d,0x68,0x20,0x78,0x69,0xdd,0x3e,0xce,0xb4,0x9b,0x1f,0x02,0x94,0x93,0xec,0xcb,0xb9,0x32,0x44,0x4e,0xbe,0x8c,0x8c,0x6d,0xb5,0xf0,0xa5,0xa6,0x7e,0x21,0x94,0x40,0x8d,0xf9,0x84,0x19,0x13,0xa5,0xac,0x1a,0x60,0x68,0x96,0x41,0x9a,0x66,0x8f,0x4f,0x47,0xc5,0x6c,0x2b,0x08,},\"\\xeb\\x44\\x18\\xba\\x30\\x68\\x3e\\xc7\\x95\\x9b\\xdb\\x1e\\xc7\\xb2\\x63\\xf8\\x3e\\x81\\xf0\\x54\\xdd\\xcd\\xbe\\x0a\\x67\\x38\\xca\\x77\\x63\\xe2\\x46\\x93\\x5b\\xac\\x41\\x90\\x26\\xc2\\x2b\\xfb\\xdd\\x12\\x36\\x33\\x6c\\xc1\\x61\\x07\\xc5\\x35\\x13\\xe3\\xdd\\xf3\\x4e\\x12\\x08\\x46\\x96\\x2c\\x3b\\xdd\\x54\\xf5\\xad\\x57\\x49\\x59\\x72\\x08\\xf1\\x5a\\x8b\\xb5\\x66\\x67\\xba\\xa8\\x95\\xf0\\x83\\x40\\xdb\\x89\\xb8\\x5c\\x43\\x5e\\x77\\x09\\x31\\x92\\x8d\\x8a\\xbc\\x99\\x26\\x2f\\x83\\x9a\\xed\\xd9\\xbe\\x2a\\xa1\\x38\\xc9\\x25\\x9a\\xdf\"},\n{{0x65,0x79,0xc2,0x47,0xdd,0x2c,0xd0,0x2b,0xa2,0xf7,0xd7,0xa9,0x50,0xa3,0x30,0x75,0x26,0x81,0xe9,0x2c,0x0d,0xc6,0x29,0x84,0xbb,0xea,0x27,0x9e,0xa5,0x21,0xc3,0x81,},{0x0b,0x08,0x7b,0xea,0x1a,0x1b,0x3d,0x15,0x80,0x5c,0xb6,0x04,0xf4,0xbb,0x8d,0x68,0xed,0xde,0x27,0x4f,0xaf,0x52,0x1f,0xe6,0xdf,0x50,0xc5,0x5f,0x8a,0xd4,0xa7,0x0d,},{0xec,0xca,0xf8,0x01,0xae,0x0a,0x91,0x2e,0x21,0xc6,0xb8,0x3a,0x5f,0x0e,0x4e,0x88,0xd4,0xb2,0x71,0x34,0x59,0xff,0x93,0x44,0x9f,0xc0,0xb2,0x1a,0x9f,0x41,0x60,0x50,0x11,0x3c,0xba,0xe4,0xe8,0x14,0xd2,0x0c,0x0a,0x79,0x8f,0x76,0xd2,0xf9,0xd3,0x26,0xed,0x83,0x95,0x9e,0xa0,0x2a,0xbd,0xc1,0xab,0x35,0x0a,0x46,0x71,0x23,0xf7,0x09,},\"\\xdf\\x7c\\x55\\x2f\\xfc\\x89\\x37\\x4b\\x95\\x71\\xa6\\x02\\x4a\\x8d\\x04\\x71\\xd7\\xeb\\x6b\\xe8\\xdf\\xca\\x6f\\x41\\x66\\xb5\\x81\\xb6\\x54\\x79\\x01\\x5a\\x05\\x68\\x12\\x90\\x74\\xcc\\x04\\xd6\\x34\\x2c\\x75\\x8c\\xa1\\x8f\\x79\\x87\\xde\\xc5\\x36\\xb7\\x03\\x3d\\x5f\\x96\\x81\\x50\\x43\\x40\\xe2\\x09\\x86\\xf0\\x27\\xb8\\xcf\\x1f\\x26\\x3b\\xe7\\x6d\\xb3\\x52\\x5d\\x17\\x34\\x22\\x95\\x0e\\xa8\\xdc\\xed\\xdc\\x58\\x56\\x40\\x91\\x8a\\xa9\\xd2\\x5c\\xa8\\x9c\\xba\\x70\\x1c\\x20\\x20\\x15\\x38\\x73\\xf4\\x61\\x08\\xc7\\x72\\xcb\\x38\\x8d\\x55\"},\n{{0x18,0xfb,0xa6,0x0c,0x50,0x26,0xf3,0xc9,0xdd,0x7a,0xed,0xc0,0x42,0x09,0xd5,0x26,0x03,0x61,0xde,0x40,0x0e,0x19,0x0a,0xeb,0x60,0x16,0x9e,0x05,0xa3,0x36,0x7c,0x9f,},{0xdf,0xff,0x34,0x7f,0x3d,0xd2,0x55,0x53,0x0b,0xf7,0xfb,0x34,0xd0,0x2b,0xa4,0x86,0xd1,0x12,0xbb,0x46,0xe9,0x50,0xe2,0xef,0x80,0xe5,0x17,0x01,0x4c,0xc9,0x57,0x34,},{0x4b,0xc0,0x11,0xe4,0x0f,0x0f,0x59,0xc6,0x18,0xf6,0xbb,0xe2,0x30,0xb6,0xf7,0xbc,0x2f,0x50,0xe3,0x61,0x7c,0x7f,0xaa,0xb7,0xf4,0xc2,0x1c,0xb8,0x4f,0x77,0xeb,0xa9,0x94,0xcb,0x7c,0x2a,0x1b,0xf1,0x0b,0x01,0xbb,0x20,0x08,0x44,0x97,0xfd,0xf0,0xa6,0xab,0x5d,0x9b,0xcd,0x22,0xc4,0xa2,0xc5,0xa7,0x8f,0x79,0x92,0x68,0x25,0x94,0x0f,},\"\\x34\\xf0\\x8a\\x80\\x4d\\x78\\x29\\xcc\\x39\\x14\\xf0\\x00\\xce\\x1a\\x32\\x88\\xac\\xce\\x21\\x49\\xc8\\xa0\\x20\\x86\\xb9\\xf6\\x7a\\xfc\\xcd\\x83\\xa1\\x78\\xb0\\xbc\\xfd\\x49\\x70\\xc0\\x56\\x99\\x7d\\xa7\\xdc\\x3d\\x47\\x56\\x2f\\x16\\x66\\x3c\\xed\\xc5\\x2f\\x82\\xd7\\x10\\x85\\x0c\\xf4\\x05\\x03\\x79\\xef\\xda\\xc2\\x3b\\xee\\x17\\xc3\\x30\\xa3\\x83\\xad\\x13\\x7f\\x78\\x84\\x73\\xb2\\xb0\\x72\\x36\\x03\\xb6\\xde\\xb1\\xfd\\xbf\\x6c\\x52\\x3f\\xc9\\x48\\xa0\\xcc\\xc4\\xff\\x10\\x0f\\xb9\\x46\\xd8\\x74\\xc1\\xf9\\x90\\x43\\x6a\\xe8\\xc4\\xf3\\xb2\"},\n{{0x07,0x3c,0xc1,0x5b,0x05,0x36,0x28,0x59,0x33,0xb2,0xbe,0x39,0x25,0x3c,0xf4,0xfd,0x69,0x6b,0x81,0x61,0x0f,0x5d,0xd3,0xad,0xac,0x2e,0x9c,0xbf,0x33,0x8e,0xf2,0xf6,},{0x00,0xb5,0x51,0xd3,0x71,0x54,0x43,0x75,0xda,0xc5,0xc4,0xe9,0x6c,0xd1,0xf0,0x21,0x52,0x07,0xe8,0xe1,0x66,0xa1,0xfe,0x49,0xd5,0xb0,0xa5,0x1a,0xc1,0x84,0x43,0xec,},{0x3a,0xa5,0x2a,0x83,0x06,0x2a,0x8f,0x28,0xa5,0xd6,0xb7,0x60,0x7f,0x48,0x4b,0x66,0xcc,0x37,0x48,0x96,0xb7,0x66,0x12,0x31,0x26,0x33,0x3c,0x57,0x95,0x81,0x31,0x6c,0x74,0x28,0x06,0xf6,0x27,0xb5,0xbc,0x55,0xca,0xd7,0x05,0xcc,0x1d,0x47,0x82,0xb0,0x44,0x08,0x0c,0x8a,0xc8,0x40,0xf3,0x8c,0x0c,0x50,0xd3,0x5e,0x34,0x5c,0x78,0x03,},\"\\xc2\\x85\\x36\\x2b\\xc8\\xef\\x62\\x8f\\x7a\\xed\\xf6\\x54\\x23\\x1e\\xe5\\x1a\\xcd\\xf2\\xcf\\x69\\xa8\\x86\\xb9\\x42\\xbb\\x9b\\xfe\\xd8\\x15\\x51\\x05\\xd9\\x20\\x9d\\xed\\x2a\\xf2\\x4f\\x16\\x9a\\xd5\\xfc\\xd4\\x51\\x37\\x0f\\x58\\x27\\xa8\\x51\\x11\\xc7\\xa5\\x2e\\x03\\x2c\\x50\\x38\\x61\\x7c\\x0c\\x01\\x70\\xe2\\xa6\\xc2\\x31\\xdc\\x40\\x1d\\x12\\x06\\x2e\\xdb\\x18\\x60\\x36\\x11\\x4e\\x38\\x79\\x3b\\x79\\x08\\x90\\x77\\x58\\x1b\\x97\\x83\\xf4\\x00\\x07\\x10\\x3e\\xf1\\x74\\x72\\x49\\x1c\\x00\\xe7\\x13\\x8a\\xec\\xc5\\x08\\x4d\\x3c\\x85\\x01\\x04\\x70\"},\n{{0xfd,0x89,0x4a,0x1e,0x82,0x32,0x20,0x3b,0x28,0x95,0x05,0xd5,0xc6,0x8c,0x68,0x79,0x1f,0xfc,0x0e,0x54,0xf2,0xa8,0x75,0x30,0xfb,0xba,0x5b,0x3a,0x3f,0x2c,0xaf,0x00,},{0xe9,0x5a,0xb5,0x65,0x94,0x5c,0x7a,0xe5,0xd5,0x33,0xdf,0x5d,0x0c,0xcc,0xc7,0xe9,0xab,0xbc,0x83,0x8e,0x20,0xa0,0xb6,0x1c,0x93,0x0f,0x5d,0x41,0xd8,0x1a,0x6f,0xe7,},{0xf5,0x11,0x02,0x21,0x9e,0x88,0x04,0xbe,0x71,0x3e,0x55,0x6d,0xf4,0xe4,0xaf,0xa2,0xf8,0x86,0x6f,0xe8,0x65,0x41,0xa1,0xc2,0xa0,0x93,0x4d,0x24,0xc3,0xc9,0xbe,0xb2,0x80,0xa7,0x0d,0xd8,0xd5,0x27,0xfe,0x8b,0x7e,0x0b,0x94,0x82,0x14,0xd5,0xf2,0xf9,0x63,0x86,0x19,0x91,0x4b,0x72,0xd5,0x5d,0xc1,0x98,0xb0,0x22,0x9a,0x84,0x87,0x08,},\"\\x26\\x69\\x62\\x4a\\x94\\xf2\\xc4\\x4a\\x05\\xb7\\xdc\\x3e\\xbf\\x93\\xe5\\x8a\\x4b\\xf3\\xa0\\x1c\\x27\\x36\\x57\\xe7\\xe7\\x87\\x89\\x76\\xf6\\xb6\\xea\\x73\\x7f\\xa3\\xf2\\x2c\\xc8\\x36\\x5b\\x8b\\x22\\x0c\\x00\\x7d\\x5b\\x64\\x27\\x26\\xa4\\x08\\xfe\\x2f\\xab\\x69\\xeb\\xb3\\xbd\\x07\\x2b\\x34\\x9f\\x4d\\xc3\\x37\\x7e\\xe7\\xcc\\x75\\x29\\x34\\x25\\x42\\x15\\xd2\\x39\\x89\\xbd\\x3c\\xd0\\x2c\\xe9\\x99\\xad\\xec\\x97\\x84\\x99\\x3f\\x4c\\x19\\x94\\x08\\x15\\xf3\\x9c\\x9e\\x22\\x92\\x47\\xf5\\x20\\x5c\\x36\\xcb\\xa4\\x4e\\x71\\x42\\x66\\x36\\x92\\x89\\xb4\\xa7\"},\n{{0x18,0xef,0x46,0x4e,0x28,0xf8,0x7f,0xfc,0xfa,0x4d,0x3a,0x9c,0x09,0xa2,0x29,0x10,0x95,0x1b,0x8c,0x71,0x9f,0xda,0xcd,0xb5,0x6d,0xe6,0x2c,0x4b,0x40,0x6d,0xf0,0x0c,},{0xc5,0x06,0x4c,0x9d,0x43,0xee,0x2d,0xa7,0x5b,0x06,0xbb,0x09,0xc7,0x72,0x67,0xdb,0xd0,0xd3,0x91,0x28,0xf1,0xcd,0xc6,0xbf,0xa4,0x51,0xa0,0x3e,0x93,0xaf,0x4a,0x70,},{0xd1,0xe7,0xf1,0x6e,0x8e,0x59,0x7d,0x42,0x8a,0xde,0xa6,0x55,0x91,0xd5,0x51,0xb5,0x4b,0x66,0x7a,0xff,0x20,0x20,0xc4,0x64,0xf7,0xf4,0xe5,0x3c,0x47,0x73,0xf7,0x04,0x33,0x24,0x9a,0x3c,0x71,0xb4,0xd1,0x1c,0x89,0xc3,0xfa,0xa8,0x92,0x80,0x92,0x27,0xb9,0xf2,0x9e,0xf4,0xf7,0xf5,0xd0,0x20,0xd4,0x67,0x4d,0x40,0x21,0x35,0x94,0x05,},\"\\x9c\\x82\\x57\\x07\\xd9\\x35\\x83\\x65\\xab\\x9d\\x38\\xf7\\xe7\\x28\\xd6\\x28\\xaa\\x72\\x2a\\x4f\\x1a\\x20\\xa3\\x8e\\x47\\xc9\\x99\\xff\\xf8\\xfc\\x32\\x41\\x7f\\xbe\\x07\\x2f\\x96\\xeb\\x6a\\x0e\\x11\\xe4\\xda\\x9b\\x6d\\xe9\\x61\\x54\\x45\\x28\\x0e\\x93\\xc7\\x7a\\x36\\x34\\xd3\\xd2\\xc6\\x87\\x98\\x56\\xc2\\x48\\xf9\\x80\\x0f\\x60\\xa0\\xd3\\x8d\\xc1\\xce\\xa8\\xb7\\xf3\\x1f\\x28\\x6c\\xb0\\x37\\x48\\x27\\xb4\\xc6\\xba\\x14\\x4a\\x66\\x94\\xf2\\xb9\\x08\\xea\\xd6\\x8d\\x18\\x34\\x01\\x24\\xcb\\x59\\xcf\\x17\\x01\\x86\\x3b\\xd4\\xf3\\xef\\xc7\\x09\\xf3\\x62\\x7a\"},\n{{0xc9,0x11,0xbd,0xf2,0xf9,0xe7,0xcc,0x5f,0xff,0x35,0xc9,0x6e,0x15,0xcc,0x12,0xea,0xfd,0x05,0xab,0x0d,0xb3,0x1f,0x64,0x9f,0x74,0x08,0xac,0xd0,0xca,0xda,0x76,0xe0,},{0xde,0x44,0x69,0x6c,0xd6,0xbd,0x2c,0xbe,0x9b,0x11,0xa0,0xef,0x18,0xb8,0x81,0x64,0x80,0x1a,0x96,0x9d,0x5e,0x06,0xed,0x45,0x3e,0xb4,0x00,0x8c,0xce,0x9a,0x57,0x25,},{0xd5,0x84,0xb5,0xda,0x37,0x1a,0xe4,0xf5,0xc9,0x85,0x9b,0x25,0xf7,0x0d,0xc5,0x6c,0x1b,0x7b,0x4e,0x02,0xd1,0xae,0x66,0x36,0x28,0x3b,0x1b,0x7b,0x11,0x21,0x7a,0xfd,0xcd,0xf6,0x5d,0x1b,0x49,0xca,0x2c,0x8e,0xf1,0x79,0x66,0xe9,0xbc,0x65,0xf1,0x0c,0x31,0x0b,0x77,0xbb,0x5d,0xf7,0xaf,0xf5,0xec,0x1b,0x37,0x9a,0x2c,0xe5,0x5d,0x0d,},\"\\x76\\xc4\\x71\\x24\\x1d\\x17\\x19\\x29\\x84\\xb0\\x03\\x62\\x69\\x6e\\x4d\\x9d\\x4d\\x2b\\x7f\\x83\\x9c\\x20\\x64\\x11\\x7e\\x50\\xa1\\x59\\x8f\\x3a\\x11\\x72\\xb1\\x6c\\x55\\xe5\\x39\\x68\\x66\\x08\\x47\\x52\\x02\\x4f\\x3a\\x7e\\xb6\\x8b\\xb3\\xff\\xdb\\x80\\x97\\x9a\\x0a\\xf6\\xd0\\xf6\\xaf\\x26\\xb6\\xf0\\xbc\\x0c\\x03\\x84\\x43\\x3b\\xcf\\xd4\\x4c\\x75\\xeb\\x65\\x4a\\x8a\\x82\\x25\\xcb\\x9c\\x4a\\x7f\\xb3\\xc8\\x24\\xc3\\xaf\\x61\\x25\\xfd\\x46\\xdb\\x28\\x7e\\x70\\x49\\x2d\\x15\\x46\\x32\\xcb\\x8f\\x62\\x43\\x26\\x59\\xd9\\x58\\xd6\\x28\\x1d\\x04\\xa5\\x4f\\x5f\\x5f\"},\n{{0xd3,0x70,0x32,0x99,0xc4,0x1d,0xb3,0x6d,0x77,0xdd,0x3a,0x49,0x54,0x1f,0x3f,0xb2,0x1d,0x0b,0x2b,0xad,0x1f,0x6e,0x07,0x4a,0xff,0xd9,0x6f,0x1c,0x40,0xd0,0xf9,0x27,},{0x86,0x2c,0x5e,0xf6,0x16,0xa5,0xf0,0x66,0xfd,0x87,0x75,0x8a,0x56,0xab,0x45,0x05,0x6f,0xea,0x4b,0xd3,0x3f,0x00,0x8b,0xe2,0x4f,0x7b,0x54,0x0e,0x09,0x5e,0x14,0x8e,},{0xdf,0x28,0x27,0x71,0x21,0xea,0xc4,0x46,0x30,0x08,0x4c,0xce,0x75,0x91,0x7a,0xe9,0xf6,0xbe,0xc6,0x5a,0xf5,0x57,0x2d,0xc3,0x07,0x19,0xbd,0xe6,0x61,0xcf,0x69,0x6b,0x85,0xb8,0x67,0x2d,0xd4,0x98,0x3c,0xab,0x30,0xbd,0x05,0xcc,0x3a,0x11,0x9d,0x7d,0xb9,0xba,0xbd,0x52,0x2d,0x7b,0x3a,0x6b,0xcf,0x38,0x86,0xec,0xd2,0x5e,0x08,0x0f,},\"\\xac\\x92\\xed\\xbe\\x22\\x25\\x7b\\xb0\\x6d\\x94\\xaa\\x95\\x0e\\x62\\xd1\\x8c\\xa2\\xac\\x0a\\x8f\\xc1\\x06\\x00\\x0d\\x22\\x31\\xf8\\xa1\\x3b\\x8d\\x7a\\x20\\x9c\\xcd\\x8c\\xc4\\x9a\\x6c\\xd6\\x8a\\x7f\\x36\\xc0\\x2f\\xb8\\xf7\\x28\\xd1\\x55\\x95\\x16\\x7f\\x0b\\xa8\\xcf\\xe9\\x5c\\x8a\\x1e\\x43\\x5f\\x32\\x75\\x13\\x01\\x4a\\xc4\\x28\\xb7\\x5d\\x4f\\x72\\xe7\\xc8\\x34\\xdd\\x70\\xe1\\xa4\\x48\\xf1\\x84\\x7d\\x34\\x98\\x47\\x5f\\x74\\xe3\\xd9\\x33\\x4d\\xc7\\xdc\\xc4\\xfe\\xd7\\x2b\\xf6\\xc7\\xfe\\x3b\\x1d\\x4f\\x53\\xd4\\x29\\x61\\x6f\\x1d\\xf4\\x4f\\x19\\x73\\x31\\x58\\xb6\"},\n{{0xd4,0x11,0xcd,0x33,0x57,0x6d,0x0e,0xfe,0x9e,0xc4,0x13,0xcc,0xda,0xab,0xd4,0xfc,0xba,0xfe,0xc0,0x1a,0x3a,0xf4,0xb3,0xcb,0xe3,0x4f,0x8b,0x05,0xef,0x8b,0x59,0xba,},{0xe8,0x70,0x34,0x4d,0xf9,0x8d,0xd3,0xa8,0x70,0x2c,0x45,0x19,0xbf,0x9e,0x8b,0x35,0xa9,0xd1,0x89,0xe7,0x46,0xf7,0x20,0x3d,0xbb,0xf9,0xbb,0xfa,0xb2,0x2d,0x6f,0x63,},{0x83,0x46,0x0d,0x15,0x46,0x1d,0x67,0x17,0x71,0x0b,0xaf,0xd6,0xa4,0x7a,0x1e,0xaa,0x90,0x0a,0x80,0xf2,0xbf,0x8b,0x8a,0xae,0x24,0x68,0x77,0x36,0x14,0xee,0x84,0xbd,0x62,0x8c,0x97,0x17,0x47,0x63,0x68,0xef,0x36,0x40,0xcf,0x76,0x0a,0xca,0xc8,0x3a,0xd6,0x02,0x32,0xa7,0x69,0x63,0xb7,0xd5,0x25,0x88,0xb1,0x1d,0xc0,0x04,0xd7,0x0d,},\"\\x11\\xd2\\xc2\\xa7\\xf0\\x19\\x09\\x88\\x12\\x66\\x96\\x43\\x1b\\x4b\\xbc\\xd9\\x0a\\xb7\\xb5\\x6a\\x32\\xda\\x64\\x04\\xae\\x44\\x6a\\xa7\\x62\\xa4\\xdd\\xc6\\x60\\x94\\x97\\x15\\x38\\xee\\xb8\\x5b\\xde\\x04\\x70\\xa5\\x10\\xbe\\x0d\\x6d\\x85\\x78\\x0e\\xe7\\x30\\xa9\\x85\\x41\\x38\\x72\\x8a\\xe6\\x81\\x61\\x62\\x26\\x8d\\xa8\\x52\\x85\\x8e\\xae\\xd4\\xec\\x74\\xc7\\xac\\x62\\xe6\\xe7\\x09\\x6d\\xc0\\x02\\xdf\\x0b\\xdf\\x5f\\xa4\\x0d\\xa5\\x65\\xb4\\x1d\\x18\\x1a\\x3f\\x0a\\xd0\\xc5\\xe0\\xb9\\x76\\x74\\x3e\\x31\\x5d\\x9d\\xb8\\xed\\x41\\x60\\xab\\xe6\\x9c\\x13\\xa2\\xb3\\xf0\\x9a\"},\n{{0xe1,0x0a,0x2f,0x13,0x80,0xc3,0xe4,0x72,0x0e,0x8a,0x87,0x07,0xa9,0xbc,0xb2,0x5a,0x0f,0x58,0x27,0x0d,0x70,0x59,0xcd,0x76,0x26,0xc7,0x15,0x34,0x47,0xed,0xfb,0x87,},{0xa3,0xc7,0x17,0xac,0xab,0x36,0x6a,0x40,0xb5,0x11,0x87,0xbb,0xf3,0x5b,0x2d,0x15,0xe9,0x7c,0xfe,0xac,0xd7,0x34,0x9c,0x06,0xef,0x1c,0x91,0xac,0x93,0xe9,0x06,0x56,},{0x09,0x4b,0xf6,0xf9,0x53,0xca,0x0e,0xb7,0x7d,0xf4,0x51,0x29,0xb7,0xbf,0x10,0xd1,0x92,0xcf,0x6d,0xde,0xae,0x94,0xad,0x62,0x02,0xb8,0xea,0xcf,0xbe,0xc1,0x19,0xe5,0x29,0x15,0x78,0xfe,0x64,0xa0,0x84,0xae,0x60,0x0f,0xe0,0x7e,0xfd,0xb8,0xa7,0x82,0x61,0x0d,0xbd,0xb0,0xb4,0x9e,0xb5,0xf2,0xa4,0x6c,0x43,0x23,0x55,0x55,0x2f,0x01,},\"\\x13\\x52\\x12\\xa9\\xcf\\x00\\xd0\\xa0\\x52\\x20\\xbe\\x73\\x23\\xbf\\xa4\\xa5\\xba\\x7f\\xc5\\x46\\x55\\x14\\x00\\x77\\x02\\x12\\x1a\\x9c\\x92\\xe4\\x6b\\xd4\\x73\\x06\\x2f\\x00\\x84\\x1a\\xf8\\x3c\\xb7\\xbc\\x4b\\x2c\\xd5\\x8d\\xc4\\xd5\\xb1\\x51\\x24\\x4c\\xc8\\x29\\x3e\\x79\\x57\\x96\\x83\\x5e\\xd3\\x68\\x22\\xc6\\xe0\\x98\\x93\\xec\\x99\\x1b\\x38\\xad\\xa4\\xb2\\x1a\\x06\\xe6\\x91\\xaf\\xa8\\x87\\xdb\\x4e\\x9d\\x7b\\x1d\\x2a\\xfc\\x65\\xba\\x8d\\x2f\\x5e\\x69\\x26\\xff\\x53\\xd2\\xd4\\x4d\\x55\\xfa\\x09\\x5f\\x3f\\xad\\x62\\x54\\x5c\\x71\\x4f\\x0f\\x3f\\x59\\xe4\\xbf\\xe9\\x1a\\xf8\"},\n{{0xb2,0xe6,0x97,0xb3,0xd3,0xef,0xec,0x97,0x6e,0xf3,0x36,0x95,0x30,0xc7,0x92,0x71,0x7b,0xdb,0xb4,0x28,0xd9,0xed,0x0c,0x11,0xec,0x0e,0xa9,0xb2,0xe5,0xf3,0x9f,0x82,},{0xc4,0xd2,0xe4,0xb3,0xc2,0x36,0xd6,0xc9,0xb8,0xc7,0x4f,0xa3,0x84,0x61,0x2c,0x47,0x10,0xd8,0x3a,0xa1,0x6a,0xd7,0xef,0x01,0xfb,0xb7,0x42,0x1d,0x4f,0xb3,0xf0,0xf6,},{0x50,0x47,0xfa,0x38,0x19,0x7b,0x83,0x28,0xe7,0x8d,0xd8,0xa1,0x0e,0x96,0x6a,0xfb,0x7b,0xd3,0xd4,0x36,0x08,0x28,0x0f,0x1c,0x25,0x7d,0x25,0xca,0x43,0xbc,0x1c,0x06,0xe9,0x4a,0x57,0x47,0xab,0x62,0x15,0xec,0xe5,0x4c,0xde,0xff,0x8c,0x56,0x56,0x7d,0x70,0xd2,0xf9,0x1f,0x9e,0xc8,0xc2,0x60,0xaa,0x10,0x80,0xa6,0xab,0x5a,0x7a,0x02,},\"\\x7b\\x43\\x62\\x32\\xac\\x21\\x11\\xa8\\x40\\x59\\x51\\x0c\\x48\\x36\\x25\\x88\\xfc\\xb7\\x38\\x34\\x26\\xbe\\x5e\\x6f\\x62\\xf3\\x72\\xe4\\xf7\\xcc\\xa8\\x3c\\x81\\xc2\\x35\\x7f\\x9b\\x54\\xf4\\xa1\\x52\\x91\\x06\\x5b\\x6d\\x41\\xaa\\xd1\\xea\\x93\\xcf\\xfa\\x77\\x6b\\x9a\\xca\\xa5\\x8a\\xfe\\x2b\\x51\\x64\\x4b\\x97\\xaf\\x9a\\x3e\\x53\\xf8\\x4e\\x40\\xaa\\x6d\\x86\\x05\\x1e\\x69\\x14\\xcd\\x03\\x9d\\x41\\x70\\xa9\\xa5\\x26\\xdd\\x69\\x95\\x5f\\xf5\\x07\\xc3\\x3f\\x74\\xe2\\x17\\x65\\x91\\xfb\\x0b\\x3c\\xd7\\xf0\\x0e\\xe4\\x18\\xf2\\xc2\\x58\\xa9\\x98\\x1c\\xcc\\xee\\x72\\xf0\\x1c\\x84\\x30\"},\n{{0x19,0xa6,0x79,0xa7,0xa9,0x05,0xa1,0xe2,0xb3,0x03,0x8e,0x6e,0x41,0x8b,0x3d,0xa9,0x7c,0x30,0x89,0xc7,0xcd,0x35,0x1e,0xa0,0x7b,0xc8,0xd1,0xaf,0x64,0xea,0xcc,0x46,},{0x19,0xf0,0x83,0x61,0xf4,0x69,0xb4,0xae,0x1e,0x0c,0xeb,0x94,0xf4,0x7a,0x7d,0xe7,0x31,0x74,0x10,0xa9,0x2d,0xd0,0x13,0xb1,0x6a,0xe0,0xd0,0x53,0x2f,0xa4,0xb3,0xef,},{0x43,0x47,0xb7,0xb4,0xf7,0xc3,0xc4,0xdd,0x31,0x5b,0x83,0x84,0xa0,0xb0,0xca,0xee,0xd8,0x4b,0xda,0xbe,0x24,0xb2,0x91,0x5f,0x12,0x51,0x2d,0xfd,0x04,0x77,0x0f,0xc9,0x96,0xa1,0xbf,0xb7,0x29,0xaf,0xef,0x9e,0xdd,0x61,0x14,0x47,0x08,0x1a,0x53,0x30,0x61,0x7e,0xae,0xa1,0xc1,0xda,0xb1,0xbf,0x13,0xce,0xa8,0x99,0x72,0x04,0x91,0x0c,},\"\\x98\\x0c\\x7b\\x4d\\x29\\x39\\x06\\x1a\\xc7\\xb9\\xba\\x44\\x11\\x17\\xa1\\x94\\x85\\x66\\x17\\x81\\xa4\\x08\\x30\\x67\\xc5\\x5a\\xcf\\x93\\x02\\x6c\\x08\\x2a\\x93\\xcc\\x12\\x4f\\x09\\x5e\\x1b\\x4f\\x2c\\x3f\\x6c\\x13\\x54\\x12\\xa5\\x09\\x62\\x28\\xe8\\xa0\\x71\\xe8\\xb4\\xb6\\x68\\xba\\x9d\\x96\\x44\\xea\\x9f\\x4d\\xab\\xfc\\x54\\xa9\\x85\\x6c\\x3e\\x96\\x5e\\x63\\x63\\x39\\x5a\\xb7\\x09\\x03\\x7d\\xda\\x22\\x9b\\xaf\\x92\\x7c\\xd0\\x1f\\x9a\\xf5\\xe0\\x39\\xaf\\xc4\\x2f\\x3c\\xec\\x63\\x4f\\x5d\\x83\\x2d\\x2a\\xb7\\xc7\\xca\\xd3\\xad\\x7b\\x8c\\xf2\\x7e\\xbd\\xac\\x69\\x84\\x31\\xad\\x82\\x36\"},\n{{0xf0,0x3b,0x83,0x63,0xee,0x5b,0x0e,0xef,0x70,0x18,0xa4,0x9b,0xc0,0x2a,0xdf,0x73,0x1d,0xa5,0x4e,0xe5,0x0a,0x7f,0x03,0xb8,0x8a,0x29,0xa2,0x08,0x2b,0x18,0x9c,0x43,},{0x31,0x28,0x7e,0xf5,0xa2,0xe6,0x41,0x04,0xab,0x77,0x90,0xb3,0x12,0xf3,0x5c,0x7a,0xd4,0xaf,0x6b,0xeb,0x0d,0x7c,0xeb,0x8a,0x58,0xf3,0x6a,0x54,0xce,0x27,0x2c,0x3e,},{0xe8,0xfa,0x96,0x7e,0x6a,0xfa,0xdf,0x6a,0x87,0x7d,0x87,0xe5,0xf5,0xc5,0x2b,0xb6,0x34,0xb7,0x5a,0x78,0x04,0x19,0x9a,0x2b,0xc9,0xd0,0x27,0xb6,0x3a,0x35,0x65,0x4d,0x9d,0xdd,0x06,0x83,0x04,0x55,0x64,0x1d,0xbf,0xb4,0x9e,0xdc,0xe4,0x2e,0x20,0xe7,0xd4,0x10,0x4a,0x07,0x1c,0x2c,0xbb,0xec,0x23,0x01,0x8c,0x29,0x7c,0xed,0x99,0x08,},\"\\x24\\x19\\x1b\\x54\\x64\\xb3\\x5a\\xc7\\xbc\\xf4\\xa3\\x75\\xf0\\x33\\xef\\xba\\x89\\x43\\xb0\\x9b\\x9f\\xf0\\xfc\\x40\\x3c\\xa7\\xaa\\xe7\\x02\\xa3\\xcb\\xf3\\x96\\xc5\\x13\\x1b\\xc0\\x08\\x13\\x2c\\xf5\\xf1\\x29\\x10\\xd5\\x86\\xdc\\x1d\\xb9\\xc0\\x84\\x57\\x4a\\x96\\xba\\xbe\\xe9\\x56\\x42\\xf9\\x22\\x37\\x1c\\x03\\x82\\xec\\x04\\x02\\xa2\\x6f\\xeb\\x14\\x2e\\x41\\x46\\xbb\\xd3\\x36\\x0c\\x2b\\x36\\x83\\x4f\\xe4\\x5a\\xf5\\xe2\\x86\\x8d\\x4d\\x56\\xfd\\xd5\\x04\\xce\\xbf\\x0c\\x2d\\x7f\\x57\\x91\\xb4\\x42\\x94\\x17\\xc8\\xb6\\x5a\\x98\\xe0\\xb1\\x5c\\x46\\x6c\\x13\\x7f\\x41\\x05\\x24\\xfc\\xe7\\x37\"},\n{{0x11,0x08,0x6b,0x0d,0x11,0xe4,0x15,0xab,0x1c,0xe0,0x2a,0xaf,0x8f,0x06,0x21,0xb5,0x44,0x30,0xf6,0xfb,0x13,0x5c,0x74,0xf4,0x0d,0x38,0xe8,0xc6,0x47,0x37,0x06,0x4b,},{0x71,0x66,0xdf,0xbc,0x69,0x1e,0xb8,0xc2,0x01,0x11,0x4b,0xa0,0xd1,0xa2,0xc7,0xb8,0x7f,0x7a,0x1f,0xd8,0xd0,0xb3,0x60,0x58,0xb0,0xd7,0xdc,0xab,0xe1,0xae,0x30,0xda,},{0xe9,0x07,0x45,0x9d,0x5a,0xdc,0xd0,0xd0,0xc3,0x64,0x18,0x58,0x1f,0x19,0xd0,0xee,0xbd,0xa7,0x13,0x8e,0xbd,0x9f,0xaa,0x0b,0x26,0x22,0x01,0xf4,0x58,0xc8,0x56,0x31,0x0b,0xb7,0x7f,0x4c,0x7d,0xe9,0x22,0x49,0x5d,0xcf,0xe8,0xb2,0x48,0xed,0xa2,0xad,0x0d,0xf6,0xa7,0x3f,0x47,0xbb,0xfb,0x89,0x4b,0xaa,0x7d,0x88,0x69,0x87,0x58,0x02,},\"\\x4b\\x5b\\x29\\x36\\xc5\\xe3\\x60\\xa3\\x84\\x55\\x50\\x37\\x21\\x07\\x8f\\x8a\\xdb\\x40\\x4a\\x7e\\xe7\\xec\\xc1\\x48\\x01\\xdc\\x87\\xa6\\x7a\\x15\\x2b\\x76\\x95\\x69\\xfb\\xea\\xc0\\xaf\\xa2\\x5a\\x20\\x70\\xa1\\x68\\x6b\\x90\\x0a\\xc1\\x63\\x3d\\x49\\x98\\x08\\xcd\\xb2\\xe8\\x1c\\xe3\\x91\\x6d\\x5a\\x3c\\x04\\xd1\\x9c\\x5b\\xb2\\x69\\x9a\\x66\\x2b\\x8a\\xba\\x4a\\xf9\\x4d\\x39\\x0b\\xac\\x7c\\xcc\\x8e\\xc9\\x10\\xed\\x2a\\xcd\\xf8\\x6e\\xbb\\x71\\xad\\xb6\\x01\\x87\\x78\\x85\\xee\\xf3\\xc9\\x16\\x62\\xfc\\x30\\x73\\x8e\\x35\\x2c\\xc7\\x43\\x53\\xcc\\xf8\\xd8\\xed\\xee\\xfa\\xcc\\x04\\x2c\\x10\\xa0\\xe5\"},\n{{0xef,0xce,0x76,0x67,0xa8,0xef,0x91,0x22,0x8c,0xae,0xd1,0x4e,0xb4,0x77,0xa3,0x45,0xe5,0xe8,0x23,0x92,0x34,0x08,0x08,0x48,0x76,0x0e,0xd0,0x97,0x07,0x13,0xfa,0x86,},{0x91,0x93,0x05,0x5a,0x84,0xdf,0x1e,0xac,0xca,0x28,0xce,0x2a,0x08,0xc2,0xa0,0x7a,0x50,0xf0,0x4c,0x02,0x4e,0xcf,0x1f,0xe4,0xa4,0x7d,0x2e,0xfb,0xaf,0x63,0xed,0x58,},{0xe5,0xa6,0x31,0x24,0xdb,0x16,0x96,0xb6,0x41,0x40,0xb6,0xe9,0x61,0x2f,0xa9,0x58,0x7b,0x3e,0xef,0x71,0x01,0x09,0x39,0x8d,0x44,0xba,0x0c,0xa6,0x3c,0x0e,0xba,0xd0,0x6f,0x0a,0x6c,0x89,0x94,0xea,0x34,0xb3,0xa2,0xaf,0x91,0xa8,0x9b,0xf4,0x1a,0xe6,0x14,0xd7,0x72,0x7d,0x71,0x6f,0xd4,0x2f,0x8b,0x92,0xe1,0xac,0x64,0xfd,0xbf,0x03,},\"\\xaa\\x1b\\xc8\\x0d\\x7b\\xcc\\x1d\\x94\\xa2\\x3a\\x57\\xce\\xdf\\x50\\x27\\x48\\x24\\x77\\xdc\\x46\\xb8\\x68\\x90\\xbc\\x0e\\x5a\\xc2\\x9a\\xe6\\xc9\\x1b\\xbc\\x43\\x13\\x03\\x48\\x79\\x73\\x05\\xf7\\x55\\x43\\x58\\x0a\\x8a\\x06\\x9b\\x34\\x8a\\x7b\\xd8\\xfc\\x3e\\x01\\x52\\x30\\xb7\\xc1\\x94\\x0c\\x7f\\x80\\xa8\\x2b\\x12\\x90\\x09\\x10\\xdb\\xcf\\x06\\x30\\xda\\x03\\xf0\\x81\\xd4\\x4c\\x7f\\x95\\x5d\\x4a\\x11\\x72\\xf5\\x6e\\xcc\\x7c\\x5a\\xc6\\x46\\x69\\x6b\\xff\\xdf\\x4e\\xb6\\xd8\\x8b\\xdd\\x9c\\xc3\\x84\\x35\\x28\\xb7\\x25\\x83\\xab\\xb3\\xba\\xd0\\x2e\\x56\\xef\\x76\\x46\\xee\\xd5\\x13\\x95\\x51\\xcd\\xeb\"},\n{{0x88,0xfc,0xca,0xa9,0x6a,0xd8,0x84,0xd1,0x16,0x5b,0xe7,0x1d,0xd0,0xc4,0xf5,0xf8,0xf4,0x42,0x1c,0x60,0xfb,0xfa,0x49,0x8b,0xfe,0xe9,0xb9,0x67,0x46,0x24,0x43,0xbd,},{0xc7,0x5c,0xb0,0xe0,0x23,0x7b,0x45,0xb8,0x65,0x6e,0xea,0x9f,0x3d,0x1a,0x9d,0x4a,0xcd,0x01,0xa1,0x03,0xaa,0x26,0x9b,0xb2,0x4f,0xd5,0x41,0x22,0xfd,0x81,0xf2,0xac,},{0x27,0xd3,0xa1,0x97,0xcc,0x99,0x94,0x21,0x20,0x63,0xbc,0xe8,0xd7,0x99,0xe7,0x7b,0x68,0x53,0xb7,0x35,0x5e,0xbe,0x36,0x9b,0xcf,0x18,0x89,0xa4,0x18,0xa8,0x2c,0xaa,0x3a,0x79,0x87,0xa6,0x63,0xf6,0x21,0xde,0xfe,0x86,0xb3,0xac,0x4a,0xd4,0x4f,0xae,0xed,0x16,0xc9,0x11,0x6a,0xce,0x28,0xfc,0xcf,0x91,0x55,0x57,0xfa,0x77,0x99,0x03,},\"\\x9d\\x0e\\xac\\x98\\x55\\x6b\\xfa\\x86\\x72\\xc3\\x57\\x05\\xd1\\xd6\\x1a\\xc4\\xd0\\xfc\\xa1\\x9d\\xc0\\xd9\\x93\\x01\\x58\\x77\\x85\\x7d\\x27\\xfd\\x80\\xf7\\x4a\\xca\\xce\\x66\\x6c\\x56\\x34\\x85\\xd8\\x1e\\x53\\x60\\x3a\\x6a\\xef\\x40\\x87\\x5f\\xa5\\x51\\xcc\\x10\\x5f\\x2c\\xc1\\x0b\\x39\\x69\\x46\\x79\\xcd\\xf4\\xa6\\xb0\\x73\\xbc\\x88\\x64\\x5f\\xc5\\x1a\\x36\\xda\\x17\\x9d\\x3d\\x1e\\x3c\\x77\\x22\\x45\\x4c\\x5e\\x73\\x57\\x7c\\x61\\xaa\\x7d\\x14\\x8c\\x4b\\xa5\\x0e\\xa4\\x6c\\x56\\xa1\\xc3\\xb3\\xb3\\xc4\\x70\\xf9\\x31\\x00\\x49\\x4e\\x08\\xbc\\x55\\x14\\xac\\x76\\x3a\\x85\\x48\\x3c\\x42\\xc7\\xcd\\xc2\\x7c\"},\n{{0x67,0x0b,0x30,0x62,0x6f,0xe3,0x67,0xd8,0xb4,0x5f,0x43,0x73,0x3d,0x6f,0x25,0xb3,0x7e,0xcc,0xbc,0xb5,0x51,0x96,0x3f,0x0a,0xc8,0xb6,0x66,0xb4,0x80,0x41,0xc7,0x2d,},{0x65,0xaa,0x4c,0x6d,0x4b,0xa0,0xab,0x34,0xbc,0x75,0xb3,0x9f,0x09,0x52,0x7c,0xa6,0xf2,0x42,0x5f,0x52,0x41,0x5c,0xdf,0xfd,0xf2,0xdf,0xf2,0x73,0xf8,0xea,0x61,0x2c,},{0x1b,0x6b,0x43,0x77,0xd2,0xb9,0x8e,0x0f,0x9d,0x24,0xae,0x8d,0xfe,0x30,0xe2,0x39,0x6e,0x20,0x04,0x38,0x0d,0x34,0x31,0x48,0x8e,0x58,0x43,0xcf,0x8d,0x2d,0x7a,0x00,0x70,0xab,0x21,0xf8,0xa3,0xb5,0x1c,0xe8,0x4d,0x2f,0x4b,0xa2,0x09,0xf7,0x39,0xf9,0x22,0xbe,0xbf,0x79,0x80,0x96,0x69,0x3f,0x56,0x22,0x87,0x3d,0x79,0xae,0x6f,0x04,},\"\\xd0\\x0b\\xcc\\xa7\\xe1\\x84\\xd1\\x0e\\x1f\\x1f\\xe4\\x20\\xb5\\x06\\x39\\xe1\\xd5\\xde\\xba\\x52\\xa7\\x51\\x23\\x6e\\x68\\xc5\\x9b\\xb4\\xbf\\xf9\\x80\\x2f\\x5f\\xc1\\x65\\xed\\x42\\xfd\\x6d\\x53\\x46\\x70\\xa7\\xc6\\xfb\\x60\\xe4\\x30\\x7d\\x94\\x79\\x15\\xa2\\x48\\xbf\\x2f\\x93\\x46\\x5c\\x2c\\xb4\\x4d\\x8f\\x45\\x3d\\x2c\\x01\\x5a\\xfb\\xc8\\xed\\x58\\x81\\x8e\\xa5\\x17\\x26\\xa2\\x51\\x77\\x93\\x0e\\x9e\\xa1\\x92\\xef\\x45\\x14\\xf4\\xbb\\x0e\\xb4\\xe0\\xf5\\xd4\\xae\\x3c\\x46\\xe3\\x57\\xc8\\x11\\x87\\xf7\\xed\\x17\\x47\\x33\\xff\\xf9\\x59\\xc3\\xf9\\xfa\\xe6\\x48\\x6c\\xfa\\x13\\x56\\xa9\\x56\\x99\\x21\\x1d\\xe5\"},\n{{0x81,0x3c,0x4d,0xae,0xd6,0x7a,0x19,0x0d,0x68,0xbb,0x63,0x5d,0x73,0xaf,0x6d,0xa7,0x4f,0x32,0xfd,0xf7,0xc4,0x8c,0xca,0x6e,0x59,0x26,0x29,0x46,0xb8,0xe8,0xc7,0x1f,},{0xa2,0x09,0x54,0x57,0xd7,0x69,0x70,0x20,0xe2,0xb8,0x84,0xd9,0x5a,0x96,0x57,0x8c,0x2a,0x90,0x0a,0x76,0x66,0xac,0x0d,0xc7,0xbd,0x38,0xf1,0x93,0x1d,0x79,0x45,0xd8,},{0xb4,0x46,0x57,0x4f,0xf6,0xa4,0xbd,0x2b,0x57,0x2e,0x48,0x7c,0x4a,0xb4,0x43,0xca,0x64,0x10,0x75,0x16,0x8a,0xa4,0xe1,0x09,0x2f,0x71,0xf3,0x0b,0xdb,0x06,0x8c,0xe4,0x6a,0x39,0x5e,0xfe,0xe1,0xee,0x66,0x0b,0x9f,0xac,0x26,0xd5,0x41,0x09,0x72,0x2c,0x15,0xcd,0xb7,0x91,0xbf,0xb8,0x7f,0xff,0x63,0xc6,0x59,0x6a,0xd4,0xf2,0x27,0x0c,},\"\\xce\\x54\\xcb\\x04\\x50\\xe6\\x89\\xa0\\xdb\\xef\\x78\\x53\\x08\\xb3\\x17\\x74\\x72\\xfc\\xd6\\xd3\\x82\\x03\\xe5\\x8a\\x05\\x90\\xb3\\x1f\\xa2\\x53\\xf9\\xea\\x59\\x0b\\xe5\\x36\\x8a\\x92\\x2d\\xe8\\x8b\\x63\\x45\\x01\\x02\\x68\\x44\\x43\\xfb\\x81\\x89\\xe6\\x01\\x28\\x20\\x03\\x32\\x3b\\x89\\xc8\\x1e\\x92\\xea\\xef\\x2b\\x5d\\xdc\\x4a\\x55\\xc5\\x3f\\xa3\\xcf\\xad\\x41\\x60\\x24\\x8b\\x3c\\x28\\x6f\\xf8\\x0d\\x31\\xd1\\x61\\xb7\\xb8\\xde\\xe7\\x13\\x55\\x2b\\x56\\xf1\\x50\\x7f\\xb7\\x2e\\xad\\xfa\\x89\\x05\\x4e\\x9d\\x16\\x00\\xac\\x87\\x4c\\x4b\\x0a\\x96\\x10\\x04\\xeb\\x6d\\x0d\\x4b\\xfd\\x2e\\xcb\\x9c\\x73\\x4f\\x00\\xba\"},\n{{0x84,0x00,0x96,0x2b,0xb7,0x69,0xf6,0x38,0x68,0xca,0xe5,0xa3,0xfe,0xc8,0xdb,0x6a,0x9c,0x8d,0x3f,0x1c,0x84,0x6c,0x8d,0xce,0xeb,0x64,0x2b,0x69,0x46,0xef,0xa8,0xe3,},{0x98,0xbe,0x21,0x00,0x19,0x93,0xa7,0xeb,0x1a,0x12,0x77,0xff,0x74,0xc1,0x55,0x04,0x18,0x3d,0x25,0xfd,0xfc,0xc0,0x5f,0x0d,0x4d,0xea,0x89,0x2f,0x6e,0x30,0x18,0x90,},{0x0a,0xd7,0x1b,0x00,0x25,0xf3,0xd9,0xa5,0x0d,0xb3,0x38,0x41,0x4d,0x6d,0x67,0x0e,0x77,0x99,0xb7,0x27,0x0a,0x84,0x44,0xf6,0xae,0x7f,0x12,0xae,0x7e,0xb7,0x1b,0xd0,0x3f,0xfd,0x3c,0x4f,0x36,0x63,0x1f,0x69,0xfd,0xcc,0x40,0x61,0x46,0x8f,0xf5,0x82,0xed,0xe4,0x95,0x24,0x3e,0xf1,0x36,0x1a,0x3b,0x32,0x95,0xfa,0x81,0x3b,0xa2,0x05,},\"\\xf7\\xe6\\x7d\\x98\\x2a\\x2f\\xf9\\x3e\\xcd\\xa4\\x08\\x71\\x52\\xb4\\x86\\x4c\\x94\\x3b\\x1b\\xa7\\x02\\x1f\\x54\\x07\\x04\\x3c\\xcb\\x42\\x53\\xd3\\x48\\xc2\\x7b\\x92\\x83\\xac\\xb2\\x6c\\x19\\x4f\\xd1\\xcb\\xb7\\x9e\\x6a\\xfc\\x32\\xff\\x68\\x6b\\x55\\xb0\\xb3\\x61\\x72\\x18\\xdc\\xf3\\x93\\x16\\xb4\\xb6\\x6b\\x3c\\x8c\\x0d\\x67\\x26\\x7a\\x86\\xdb\\x8a\\xdf\\x37\\x50\\x80\\x1b\\xcf\\x93\\x27\\xd4\\xc2\\x54\\x41\\xb9\\x61\\x97\\x83\\x2b\\x4c\\xde\\x0e\\xac\\x3f\\xf2\\x28\\x92\\xa2\\xf0\\xbc\\x17\\xc2\\xc2\\x13\\xc0\\x23\\x77\\xa3\\x33\\xe3\\x08\\xed\\x27\\x16\\x58\\x04\\x93\\x83\\xb7\\xe2\\xe5\\x7b\\x6b\\x8b\\x12\\x55\\x12\\xe0\"},\n{{0x62,0x88,0x72,0x20,0x35,0xd1,0xea,0x69,0x9b,0xc7,0xcf,0xdf,0x18,0xd8,0x96,0x25,0x42,0x31,0x80,0xb6,0x83,0xfa,0x74,0x63,0x9f,0x4f,0x30,0xf1,0x53,0x59,0xcc,0x85,},{0xe1,0x7f,0xaa,0x01,0x95,0x72,0x86,0x1a,0x06,0x4e,0x1b,0xc5,0x71,0x25,0x6d,0xea,0x14,0x68,0xf3,0xa4,0x85,0x90,0xa8,0x91,0x38,0xaa,0xa8,0x59,0x25,0x08,0x0c,0xd7,},{0x9d,0xec,0x92,0xb6,0xe8,0x9a,0xdb,0xe8,0xf4,0xe1,0xb5,0xe9,0x3a,0xc4,0xfc,0xf9,0x57,0xde,0x7d,0x19,0x70,0xa2,0x26,0x77,0x0e,0xc4,0xed,0xa6,0x47,0xc8,0xe3,0xb3,0xdf,0xfb,0x27,0x31,0xa3,0x9e,0x16,0xe4,0xa0,0x11,0x9d,0x36,0x62,0xa9,0x37,0xe5,0x60,0x52,0x24,0x91,0xec,0x7a,0x16,0x96,0xbe,0x04,0xc0,0x76,0xb1,0x2e,0x35,0x01,},\"\\x8b\\x6c\\xaa\\xca\\xc5\\x1d\\x89\\x49\\xfb\\x86\\xac\\xbc\\xb1\\xb9\\x9d\\x85\\x9f\\xf6\\x7c\\x64\\x14\\x7b\\xc1\\x21\\x69\\x09\\xdc\\xab\\x07\\xee\\x6e\\xf0\\x9f\\x40\\x38\\x63\\x32\\x73\\x94\\x68\\x9d\\xc3\\x4a\\xbc\\x77\\x8f\\xcb\\x5c\\x1f\\x50\\x91\\xac\\xf5\\xa0\\x8f\\x9d\\x84\\x22\\x11\\xd1\\xae\\x2e\\xb4\\x0b\\xe9\\xbb\\x8d\\x66\\x79\\x07\\x74\\x71\\x54\\x7a\\x6c\\x71\\xff\\x77\\xb5\\x19\\xd4\\xb7\\x10\\x8e\\x32\\xbc\\x46\\x25\\x1c\\x60\\xde\\xe8\\xe3\\x32\\xb6\\x22\\x93\\x16\\xe6\\xd5\\x7c\\x22\\xab\\x82\\x6f\\xf1\\xbc\\x33\\xf2\\xb0\\x21\\x38\\x07\\xc1\\x92\\x80\\xaf\\x11\\x0f\\xd2\\x6e\\xe2\\x74\\x68\\x20\\x1c\\xff\\x49\\xcb\"},\n{{0x13,0x03,0x8a,0x3a,0x65,0xef,0x32,0x75,0x9a,0x9c,0xd9,0x03,0xac,0xb5,0x54,0xb2,0x52,0xde,0x00,0xe7,0xcd,0xb7,0x7b,0xbe,0xd1,0x97,0x0b,0x20,0x68,0x0e,0xe1,0x7b,},{0xb6,0xa3,0x08,0xe6,0x7f,0x9b,0x46,0xc6,0x64,0x99,0x45,0x6a,0xb5,0xcd,0x13,0x5c,0xb2,0xfe,0x84,0xa3,0x2e,0xb0,0x45,0x35,0x86,0x26,0x60,0x4d,0xa4,0x12,0x2c,0x8f,},{0x52,0x61,0x55,0x8e,0xcc,0x3c,0x98,0xff,0x36,0x35,0x1f,0x42,0xf5,0x04,0xca,0xd4,0xa3,0x2f,0xfd,0xa5,0xa7,0x44,0x56,0x09,0x60,0xb4,0xc1,0x06,0xe4,0x49,0x2f,0x02,0xe2,0x04,0x78,0x88,0x7a,0xfe,0xe4,0xf7,0x70,0xf0,0x55,0x97,0xa7,0xe3,0x88,0xca,0xce,0xae,0x80,0x5a,0xe3,0x51,0xe0,0xe4,0x5e,0x8e,0x57,0x8e,0x6a,0x6f,0xf2,0x0c,},\"\\xdd\\xf0\\x0b\\x40\\x33\\xa2\\xa0\\x88\\x02\\x2d\\xab\\xe9\\x33\\x56\\x43\\x2f\\x50\\xdd\\xc6\\xc6\\xe1\\xa6\\x59\\xdc\\x1a\\x93\\x12\\x4a\\x4c\\x2f\\xff\\xfd\\x18\\x27\\x65\\xa2\\xf5\\x6c\\x43\\xea\\x0b\\xfd\\x8d\\xe8\\x01\\x50\\x60\\x88\\x9a\\xe6\\x94\\x1c\\x3f\\x3e\\x25\\x5d\\x44\\x21\\xa1\\xc3\\x62\\x01\\xbe\\x84\\x6a\\x27\\x38\\xa7\\x1f\\x12\\x0c\\xad\\x59\\x8c\\xa8\\x52\\x7d\\x70\\xff\\x8d\\x5a\\x09\\x93\\xb5\\x5c\\xb5\\x15\\x35\\x17\\x11\\x0a\\x41\\x96\\x2d\\xaf\\xf4\\x22\\x50\\x15\\x8f\\x20\\x96\\xd1\\xdd\\xaf\\x71\\x86\\xe5\\x02\\x98\\xcb\\xe5\\x1f\\xcb\\x42\\x9c\\xbe\\xa4\\x11\\x29\\x3f\\x8a\\x7b\\xd9\\xcf\\x06\\x9f\\xa2\\x37\\xe4\"},\n{{0xb9,0xde,0x5b,0x06,0x3d,0x3c,0xa3,0xa7,0x73,0xf1,0x14,0x94,0x1b,0x2e,0x42,0x27,0xc0,0x75,0x11,0xc0,0xf5,0xc0,0x60,0x17,0xb9,0xc8,0x84,0x50,0x18,0xf2,0x34,0x32,},{0x52,0x95,0x24,0x3c,0x86,0x46,0xe0,0x96,0x67,0x4d,0xda,0x15,0x97,0x9b,0x32,0x2b,0x9d,0xd0,0xfa,0xf2,0x7d,0x02,0x4a,0x0e,0xd5,0x77,0x13,0x34,0xe1,0x17,0x9e,0xd2,},{0x92,0xba,0x76,0x0d,0x14,0xd1,0x41,0x5c,0xfa,0xf2,0x18,0xca,0x84,0x70,0x14,0x08,0x8a,0xe5,0x1a,0xd8,0x21,0x11,0x3a,0x6f,0x86,0x30,0x35,0x6f,0x7b,0xa8,0x5c,0x00,0x5e,0x23,0x30,0xf1,0x06,0x6d,0x0d,0xf4,0x64,0x80,0x60,0x52,0xa4,0x17,0x46,0x10,0x05,0x04,0x62,0xf3,0xe0,0x13,0xd7,0x02,0xe7,0xc7,0x71,0x85,0xa0,0x32,0x58,0x0b,},\"\\x94\\x93\\xcc\\x23\\x89\\x6b\\x84\\x09\\x60\\x46\\xae\\x10\\x53\\xaf\\xe3\\x94\\x99\\xe9\\x42\\x42\\x54\\xb3\\x66\\xfe\\x14\\x3f\\x4d\\xa3\\x21\\xe2\\xdc\\x9e\\x47\\x84\\x20\\x8e\\x12\\xa5\\x42\\xd8\\x99\\x82\\x8d\\xde\\x7e\\xff\\x62\\x5a\\x7f\\x12\\x41\\x69\\x90\\xc2\\x84\\x1f\\xfb\\x09\\x5b\\xf9\\x4c\\x0c\\x61\\x0e\\x5a\\x66\\x39\\x18\\xb6\\x89\\x03\\x1c\\xcd\\x6b\\x51\\x93\\x49\\xd0\\x4d\\xe1\\xc2\\x12\\xca\\x2a\\x9d\\x7a\\xbf\\x52\\xe1\\xb4\\xfd\\x46\\x7b\\xb6\\x65\\xb6\\x91\\x9e\\xf8\\xf9\\x16\\x17\\xe2\\x05\\x56\\x5b\\xf5\\x66\\x47\\xe5\\xf8\\xd5\\x08\\xea\\x20\\x0a\\x84\\x46\\x7f\\x8f\\xa1\\x22\\xe7\\x4b\\xc3\\xb9\\x97\\x9f\\x11\\x74\\xe5\"},\n{{0x8f,0xf0,0x29,0x7c,0xc0,0x88,0x42,0xb5,0xe6,0x75,0x52,0xec,0x28,0x43,0xe0,0x43,0x53,0xa3,0x4d,0x74,0xef,0x89,0xb8,0x56,0x5d,0x97,0x20,0x5b,0x74,0xca,0x13,0x3a,},{0x0f,0x7e,0xf9,0x8c,0x5b,0xa4,0xaf,0x98,0x4d,0xfb,0x77,0xbc,0x4e,0x53,0x7b,0x2b,0x39,0xe6,0x27,0x3b,0xb3,0xe7,0xb9,0x5f,0xe1,0xb7,0xe6,0x78,0x19,0x52,0xbd,0x4a,},{0x07,0x83,0x73,0x7f,0x70,0x6e,0x6f,0xf3,0x66,0x14,0xf8,0x50,0x07,0x4f,0xca,0x1f,0x48,0x5f,0x24,0xfc,0xde,0x2a,0x28,0xaf,0x54,0x4f,0x37,0xab,0xd6,0x9b,0x7a,0x58,0x1d,0xef,0xd8,0xc7,0x71,0xb0,0x31,0xe1,0x08,0xd1,0x9d,0x78,0x8c,0x74,0xc5,0xf2,0x0b,0xb3,0xf1,0xc2,0x1c,0xd9,0x2b,0xe3,0x17,0xba,0xcd,0x8f,0x65,0x0b,0x49,0x05,},\"\\x2b\\xdc\\x3a\\x48\\x6c\\x5e\\x4e\\xa6\\x2d\\xcf\\xec\\x8a\\x9d\\x4f\\xcf\\x9e\\xa9\\x49\\x0d\\xbc\\xc7\\x15\\x61\\x5d\\x58\\x49\\x0a\\x72\\xce\\x83\\x3f\\xa2\\x23\\x87\\xca\\x50\\xa0\\x05\\x25\\x08\\xcf\\x0a\\xff\\x1c\\xa7\\x27\\xf0\\xfe\\xd4\\x6f\\xfa\\x7d\\x3c\\x8e\\x23\\xc5\\xbb\\x01\\xd4\\x7e\\x90\\xff\\x06\\xd3\\x85\\x8a\\x55\\x7d\\x99\\x26\\x48\\x15\\x79\\xda\\xf4\\x38\\x4a\\xea\\x50\\xe9\\x6e\\xc6\\x15\\xd2\\xa3\\xbf\\x3c\\x11\\x22\\xf1\\xf2\\x4d\\xd6\\xed\\x98\\xa5\\xde\\x42\\x18\\x83\\x58\\x9c\\x21\\x39\\x98\\xca\\x54\\x32\\x37\\x3e\\x68\\xbb\\xbe\\x89\\x42\\x8c\\xa9\\x88\\x5d\\x05\\x93\\xd5\\xe6\\x21\\x51\\x16\\xb8\\x26\\x63\\x86\\x45\\x2b\"},\n{{0x05,0x0d,0x55,0x3d,0x28,0x2d,0xca,0x32,0x69,0xc8,0x3c,0x18,0x17,0x68,0xec,0x06,0x7b,0x81,0xc9,0xfe,0x0c,0x94,0xf2,0xa0,0xeb,0xbb,0x0c,0x94,0x2d,0x0f,0xcd,0x7c,},{0x63,0xe2,0x30,0xb0,0x03,0xc5,0x3a,0x56,0x72,0xe8,0x32,0xff,0x7f,0x24,0x43,0x0b,0xe2,0x23,0xe4,0x97,0xde,0x84,0x02,0x33,0xf5,0x95,0xa3,0xe2,0x00,0xc7,0x12,0x7e,},{0x3f,0x0e,0x83,0x76,0x5b,0x31,0xbb,0xe8,0xe1,0xfb,0x92,0xe9,0x67,0x8d,0x6c,0xde,0x57,0x1a,0x03,0xba,0x7f,0x1d,0xcc,0x11,0x28,0x46,0x1f,0x70,0x85,0x25,0x45,0x7f,0x4e,0x0e,0x23,0x53,0xaa,0x2b,0x59,0x8c,0x06,0x3f,0xf1,0xbf,0xfd,0xac,0x91,0x6b,0x5a,0x22,0x00,0x65,0x51,0x56,0x90,0x4b,0x05,0x85,0x57,0x7a,0x16,0x28,0x56,0x0d,},\"\\x15\\xe1\\x3b\\x8c\\x01\\x00\\x4f\\x6a\\xa5\\xb2\\x36\\xdb\\xb2\\x81\\x67\\x7f\\x74\\x6d\\x81\\xe5\\x48\\xe0\\xaa\\x80\\xf0\\xe4\\x14\\x52\\x15\\x21\\xd8\\x56\\xcd\\x69\\x4e\\x7c\\x91\\x52\\xbb\\x5e\\x43\\x77\\x6b\\x60\\xf6\\xb5\\x60\\xed\\x1a\\xd3\\xe4\\xb3\\x90\\xdb\\xf3\\xe4\\x6e\\xf9\\x25\\x74\\x43\\xf3\\x9c\\x14\\x9e\\x02\\x40\\xa0\\x2d\\x02\\x1e\\x1e\\x3d\\x7d\\x04\\x6b\\x26\\xfd\\x00\\x4e\\xee\\x7c\\xa1\\x6a\\x80\\x59\\xe1\\x26\\xc7\\x4c\\xb3\\xf2\\x19\\x4d\\xb4\\x7b\\xf6\\x04\\x65\\xec\\xef\\x5c\\x70\\x4d\\x2e\\x2c\\x75\\xe2\\xe5\\x00\\x60\\xea\\x2a\\x31\\xcb\\x72\\xb7\\xb3\\xc6\\xb1\\xb5\\xec\\x72\\xab\\x38\\x00\\x40\\x85\\x28\\x1a\\x22\\xfe\\x86\"},\n{{0x69,0x49,0x7c,0xd7,0xb4,0xe8,0x68,0xcf,0xa0,0x32,0x8d,0x92,0xbd,0x60,0x52,0xd7,0x72,0xb2,0x76,0x73,0x95,0xc1,0x45,0x95,0xb2,0x79,0x85,0x1a,0x9c,0xdd,0x31,0xaa,},{0x5d,0x27,0x6d,0x62,0x6e,0x23,0x0d,0x18,0xe7,0xbc,0xd6,0x11,0x41,0xcb,0x93,0xc9,0x0e,0xf0,0xf7,0x9e,0x01,0x32,0x12,0x12,0xd8,0x38,0xec,0x71,0x45,0x7b,0x1a,0xac,},{0xbe,0xaf,0xa5,0x83,0x40,0x96,0x09,0x08,0xe8,0xd8,0x6e,0x40,0x32,0x9e,0x3a,0x45,0x23,0xfc,0x7b,0xe7,0x70,0xad,0xdb,0x86,0xe3,0x4c,0x37,0x72,0xf8,0x4c,0xd9,0xfb,0x33,0x8d,0x1f,0x3b,0x65,0xbf,0xcd,0xb0,0x9f,0x35,0xc6,0xda,0x36,0xd1,0xa3,0xad,0xf8,0xf9,0x1f,0x1f,0xfd,0x57,0x82,0xcc,0x83,0x02,0x06,0x43,0x3a,0x08,0x41,0x0d,},\"\\x53\\xcd\\x08\\x0a\\x0c\\x61\\xf1\\xa0\\x93\\xd3\\xb3\\xa7\\x45\\x71\\xc2\\x96\\x30\\x3f\\x36\\x3b\\x41\\x07\\xed\\xbe\\x88\\x0b\\x7a\\xa9\\xdf\\xe4\\x4a\\xb5\\xd5\\xdc\\x5f\\x74\\xbe\\x9c\\x8d\\x87\\x6f\\x04\\xd7\\x54\\x65\\x34\\x91\\xab\\x51\\xb1\\x35\\xfc\\x95\\x3f\\x71\\x28\\x7b\\x62\\xff\\x41\\xb6\\x7c\\x74\\x2b\\xd3\\x44\\x56\\x71\\xa9\\xd4\\xf2\\xdc\\x17\\x4c\\xa1\\xb0\\x33\\x5f\\x78\\x62\\x7a\\x0d\\xd4\\xb3\\x06\\x50\\x50\\x41\\x78\\x03\\x9e\\x73\\x93\\x63\\x85\\x10\\xff\\xe8\\x40\\x91\\xb5\\x72\\x98\\xd3\\xac\\x90\\x01\\xc3\\x67\\xc1\\x45\\x2f\\xbc\\xb3\\x3d\\xc5\\x4a\\x5d\\xc3\\x16\\xfb\\x2a\\x52\\x70\\x76\\x4a\\x2a\\xc8\\x20\\xa0\\xb6\\x3f\\xbd\\xc6\"},\n{{0x21,0x65,0xa4,0x86,0xb6,0x12,0xbb,0xff,0x52,0x9c,0xd0,0x03,0x46,0x96,0x4a,0x3c,0xb8,0xcd,0xcf,0xfa,0x51,0xdc,0x3d,0x52,0x4d,0xd5,0xad,0xc5,0xac,0x93,0x6d,0x68,},{0x7e,0xbc,0x83,0x9a,0x46,0x5e,0x14,0xf5,0x89,0x24,0x76,0xe4,0xa1,0x3b,0x39,0x88,0xf8,0x3b,0x3c,0xd2,0x7e,0xf7,0x9e,0x19,0x3f,0x86,0xfa,0x16,0xf3,0x4a,0x1c,0xe1,},{0x7e,0xc6,0xfb,0xa5,0x6b,0xa5,0x24,0x60,0xa1,0xb4,0xf2,0x73,0x86,0x89,0xc1,0x88,0x3d,0xda,0x9a,0xaf,0xfc,0x8b,0xde,0x17,0xcb,0x60,0x29,0xbd,0xce,0x3a,0x0e,0xbe,0x2f,0xff,0xda,0x55,0x93,0x9b,0x70,0xbb,0xd0,0x7f,0xdb,0xf6,0xfc,0x5c,0xda,0x87,0xfe,0xd8,0xba,0x58,0x57,0x5f,0x89,0x4a,0x36,0x6e,0x45,0xe5,0x70,0x5e,0xea,0x09,},\"\\xb7\\x28\\xda\\x7a\\x36\\x16\\x7c\\x60\\x85\\xbd\\x2d\\x96\\x2c\\xf6\\x39\\x59\\xfa\\xcd\\x95\\xc9\\xad\\x45\\x42\\x02\\x8a\\xfb\\xa9\\x0e\\xc9\\xc6\\xc0\\x76\\x0b\\xda\\xe9\\x35\\x42\\x9c\\x3f\\xeb\\x39\\x33\\xe2\\xf0\\x00\\x42\\xc6\\x72\\xad\\x2c\\xd7\\x34\\x8d\\x92\\xbc\\x33\\xf8\\x17\\x51\\xe2\\x94\\xae\\x91\\x71\\xb9\\x45\\xb1\\x93\\x14\\x4e\\xf8\\xac\\xb9\\xa1\\xbd\\x9a\\xbf\\x04\\x75\\xce\\x0d\\x0a\\xc7\\x89\\xb2\\x00\\xc3\\x2e\\x9c\\x9a\\x27\\x36\\xb1\\x68\\x36\\x9c\\xe5\\xf9\\x7b\\x1e\\x8d\\x2e\\x79\\x00\\xe1\\xa7\\x59\\x17\\x84\\x41\\xf1\\xfc\\x43\\x05\\x64\\xae\\x12\\x9b\\xae\\x78\\x57\\x74\\x05\\x11\\xa6\\x68\\xf3\\x2c\\x0a\\x3b\\x07\\x7a\\x9d\\x8b\\x19\"},\n{{0x1c,0x64,0xad,0x63,0xdd,0x14,0x70,0x34,0x59,0x8e,0x12,0x8f,0x74,0x06,0xec,0x05,0x30,0x74,0x6e,0xa1,0xc5,0xb7,0x2e,0xcf,0x79,0xe8,0x88,0x06,0x54,0x86,0xfa,0x1b,},{0xba,0xa6,0xbc,0xc1,0xc3,0xd8,0xd3,0xb1,0x1f,0xfc,0x15,0x87,0xad,0xdd,0xc5,0x8b,0xfd,0x96,0xc2,0xb9,0x92,0xb6,0xc6,0xf5,0x9f,0xcc,0x50,0xcc,0xbc,0xdd,0x0e,0xb9,},{0x74,0x77,0xe5,0x41,0x58,0xf1,0x3b,0x71,0x28,0xc0,0xa1,0x10,0xca,0x6b,0x65,0xf4,0x25,0x14,0xfb,0x70,0xcd,0x5c,0xf2,0x8a,0x8b,0x1c,0xc6,0x11,0x0e,0xa0,0x6f,0xcf,0x94,0x29,0x0d,0xa1,0x3f,0x85,0xa1,0x1c,0x23,0x51,0xd3,0xbb,0xcc,0xbb,0x4c,0x64,0xe0,0x21,0x5d,0x6d,0x0f,0x00,0x99,0xe7,0xf2,0x7b,0xc9,0x4e,0x94,0x9b,0x15,0x0b,},\"\\x9e\\xbd\\x8e\\x33\\x78\\x93\\xbb\\x05\\x3e\\xf2\\xb9\\xe3\\x26\\x9d\\xf5\\x48\\x48\\x49\\x4f\\x03\\xcd\\x63\\x57\\x6b\\x33\\xe6\\x4b\\x10\\x80\\xbe\\x4b\\xe0\\x15\\x26\\x4a\\x40\\x3f\\xb9\\x60\\x2b\\xbf\\x90\\xca\\x19\\xb2\\x41\\xa9\\xb6\\x68\\x63\\x90\\x9b\\x90\\x08\\xce\\x1b\\x2f\\xfc\\xf2\\x36\\xef\\xa4\\xc2\\x66\\x8f\\x0f\\x47\\xdb\\x9f\\xf5\\xfa\\x15\\x7d\\x9c\\xb6\\x05\\x41\\x2b\\xe7\\xdd\\x8b\\x07\\xea\\x87\\x8c\\xcc\\xae\\x6b\\xf5\\x0f\\x93\\x5b\\x86\\xd1\\x9e\\x1b\\x64\\x8b\\x69\\xe5\\x28\\x55\\x3a\\x56\\xd8\\xaf\\xb7\\x82\\x21\\xad\\x53\\x30\\x7b\\x7a\\x4e\\xc8\\xd2\\xfd\\x48\\x61\\xb5\\x5d\\xc5\\xda\\xe8\\xe9\\x3e\\xf3\\x87\\xfb\\xbe\\x0b\\x4c\\xe7\\xf7\\x88\"},\n{{0x55,0xab,0xbc,0x5d,0xac,0x41,0x28,0x13,0x4d,0xc8,0xc6,0x01,0x8a,0x21,0x3e,0xd4,0xb6,0x0f,0xcc,0x8e,0x90,0xcb,0xd4,0x1d,0xb2,0xd2,0x1e,0xda,0x53,0x73,0xe9,0x36,},{0x25,0x1a,0xfa,0xa2,0x64,0x69,0x26,0xb2,0xa3,0x71,0xf2,0xa0,0x9d,0x58,0x65,0xb9,0x8c,0x9a,0x5e,0xb6,0xca,0x04,0x7c,0xd0,0xd8,0xee,0x36,0xe5,0xe0,0x41,0x69,0x74,},{0xf6,0xa6,0x1c,0x2e,0x66,0x1a,0x9e,0xb7,0xbd,0xe1,0x82,0xe3,0x8e,0xc9,0x9a,0xf9,0x85,0xf6,0x16,0x98,0xa5,0xd7,0xfa,0x43,0x0d,0x16,0xe3,0xf1,0xa9,0x37,0x09,0xb7,0x55,0x22,0x32,0x0d,0xe4,0x8a,0xfc,0xc5,0x95,0xab,0x20,0x91,0x22,0xae,0x0c,0xe1,0x32,0xcd,0xf4,0xb0,0x39,0x17,0x46,0xe7,0xff,0x34,0x11,0x77,0x57,0x0c,0x81,0x08,},\"\\x47\\x01\\x0e\\x13\\x98\\xad\\x55\\xfa\\xbe\\x37\\x1d\\xd8\\x64\\x8f\\x76\\x8d\\x90\\xdf\\x4b\\x96\\x5a\\x3b\\x39\\x61\\x00\\xb3\\x03\\xb4\\x0a\\x17\\x51\\x8b\\xed\\x6d\\x86\\xb0\\x9f\\x73\\x4a\\xb7\\xc1\\x0b\\x5f\\x3a\\x01\\xb5\\x3d\\xee\\xc5\\xf8\\x53\\x4b\\x70\\xc7\\x9f\\x3f\\x29\\xb2\\x84\\xfd\\xec\\x48\\x6f\\x22\\xf4\\x4c\\x22\\xcc\\xd5\\xc6\\x46\\x35\\x94\\x41\\x52\\x67\\xba\\xa6\\x11\\xf7\\x0b\\x1b\\x31\\x6c\\xaa\\x1b\\x68\\xb5\\xe0\\xe9\\x9b\\x31\\xc5\\xbb\\x0c\\xe1\\x36\\x79\\xa2\\x3c\\x31\\xa6\\x39\\x99\\x69\\x81\\x64\\xcb\\xf3\\x7d\\x10\\x3b\\xa9\\x24\\x90\\x18\\x8b\\xe5\\x99\\x37\\xf1\\x23\\x04\\x3e\\xc7\\x86\\xef\\xe3\\xd4\\x11\\xf9\\xb0\\x62\\x3a\\x6a\\xd9\\x72\"},\n{{0xf2,0xdc,0xf4,0xa1,0xa0,0xd4,0x6d,0xdb,0x2d,0x72,0xf8,0xfd,0xd8,0x0b,0xbe,0xc5,0xb7,0xde,0xa5,0x91,0x3d,0xa4,0x96,0x6c,0x2f,0x4d,0x12,0xc2,0x61,0xf0,0xbf,0x98,},{0xd3,0x95,0x70,0xa2,0x5c,0xa5,0x9f,0x22,0x57,0xf9,0x3f,0x96,0x60,0x0d,0xf4,0xf6,0x3e,0x68,0x4b,0xf6,0x3a,0xe8,0xdf,0xfd,0x91,0x4e,0x46,0x29,0xc3,0xd5,0x09,0x5f,},{0x42,0x88,0x2a,0x81,0x1d,0xad,0x2d,0x85,0x18,0x85,0xe4,0xcb,0xe9,0x04,0x47,0x08,0xd9,0x1a,0x86,0xf1,0x5d,0xfa,0x1d,0x66,0xc3,0xeb,0x30,0x43,0x14,0x53,0x1f,0x30,0x15,0x20,0x8c,0x71,0x1b,0x9b,0xdb,0xc5,0xfb,0x23,0x39,0x51,0xe5,0x69,0xb5,0x9d,0x34,0xe4,0x15,0xee,0xc4,0xb3,0x7f,0xfd,0x37,0x4d,0x41,0x2c,0x9a,0x36,0x0d,0x0c,},\"\\x3b\\x00\\xe8\\x08\\xfc\\xa4\\xc1\\x16\\x51\\xd8\\x53\\xd6\\xb9\\x0f\\x95\\x2c\\xcf\\x56\\x47\\xe1\\x02\\xd4\\xee\\x0a\\xd7\\xa5\\xd1\\x81\\xd5\\xb4\\x25\\x8c\\x52\\x3c\\xd3\\x9e\\x3d\\x98\\x25\\x29\\x8d\\x84\\xc8\\xcb\\xa0\\x9f\\x43\\xdb\\xba\\x11\\x99\\x88\\x22\\x2c\\x76\\x05\\x9c\\xaf\\x17\\xb4\\xbf\\x99\\x31\\xc4\\x5e\\x61\\x74\\x48\\xae\\xad\\xe1\\x51\\x18\\x14\\x97\\xb2\\x45\\x52\\x36\\x7e\\x52\\xbc\\x45\\xac\\x79\\x08\\x88\\x06\\xd3\\x36\\x82\\x07\\xaa\\xfe\\xfd\\x30\\x57\\x84\\x5d\\xce\\x81\\x9d\\x5a\\xaa\\xa7\\x7b\\x21\\x8e\\x2a\\xed\\x3d\\xa7\\x6d\\x40\\xc1\\xf0\\x76\\x99\\xf8\\x17\\x2e\\x4a\\x5c\\x80\\x3f\\x7a\\x2a\\xce\\xb9\\xa4\\x7a\\x89\\x52\\xe1\\xb2\\xf0\\x53\\xf2\"},\n{{0x22,0x46,0xbf,0xb0,0x61,0x55,0x85,0x9e,0x10,0xa7,0x48,0xff,0x8f,0x59,0x19,0xad,0x5d,0x1d,0xaa,0xb7,0x56,0xf0,0x10,0x57,0xb7,0x90,0xd0,0x74,0x74,0x77,0x5f,0x4f,},{0xfa,0x63,0x49,0xb6,0x2d,0xc8,0xc6,0xa2,0xfe,0xee,0xf6,0xff,0xc3,0x3a,0xe0,0x85,0xc6,0x49,0x79,0x5c,0x1c,0x9d,0x98,0x98,0xe7,0x5c,0x13,0xae,0x16,0x25,0xdb,0x34,},{0x2b,0xe4,0x91,0x5a,0x35,0x2f,0x77,0x85,0x48,0x30,0x46,0xd8,0xae,0x96,0x25,0xb8,0xb6,0x32,0x57,0xaf,0x57,0xc0,0x73,0x69,0x12,0x56,0xee,0x07,0x6d,0x6e,0x1b,0x97,0x2a,0x10,0x1f,0x55,0x1c,0x70,0x5d,0x3f,0x96,0x15,0x7c,0x33,0xb5,0x6e,0xa0,0x49,0xbe,0x4a,0xf4,0xdc,0x56,0x1c,0xbe,0x3c,0x1e,0xc5,0x07,0x2d,0x7f,0x13,0x4e,0x07,},\"\\x63\\xee\\x1c\\x7b\\xbb\\x15\\xce\\xbe\\x1c\\x22\\x53\\x2d\\x48\\x16\\x82\\x75\\x4b\\xda\\xf5\\x8b\\x8b\\xc9\\x97\\xae\\x30\\xa3\\x4c\\x9d\\x23\\xc3\\x3f\\x16\\x90\\xc3\\x46\\xab\\x0a\\x73\\x65\\xff\\x62\\x45\\x74\\x24\\xb6\\x10\\x5f\\x84\\x21\\xec\\xa0\\xce\\x3c\\x63\\x0a\\xcf\\xeb\\x9a\\x1c\\xc4\\x16\\x39\\x0e\\xdf\\x49\\x20\\xe2\\x2b\\x23\\x67\\xe9\\xfb\\x5d\\x2a\\xb2\\x5b\\xee\\x56\\xda\\x03\\xea\\x55\\xe3\\xf5\\x78\\x82\\xd4\\x8b\\x89\\x22\\x93\\x14\\xd7\\x34\\xcb\\x83\\xc7\\x9f\\x4e\\x17\\xee\\x64\\xba\\xe6\\xf7\\xad\\xdb\\xe9\\xb5\\x25\\xfc\\xd0\\x3a\\x91\\x40\\x9a\\x2d\\xde\\x90\\x77\\x51\\xdb\\x8c\\xc9\\x7e\\x08\\xd0\\xea\\x89\\xc4\\xd1\\x87\\x18\\xd2\\x6d\\x0b\\x89\\x7b\\x64\"},\n{{0xc0,0x88,0xa3,0xdd,0x2c,0xb8,0xbd,0x5d,0x68,0x4d,0xb8,0x53,0x8d,0xc2,0x24,0x73,0xb6,0xf0,0x14,0xf6,0x4f,0xe8,0x6a,0xf1,0x68,0xb4,0xbb,0x01,0xb9,0x0a,0x1d,0xd0,},{0xaa,0xd6,0x15,0xa9,0xc2,0x87,0x59,0xf0,0x3d,0x37,0x3a,0xbe,0x66,0x66,0x91,0xde,0xad,0x8b,0x84,0xf9,0xb8,0xb5,0x0a,0x67,0xf8,0xf0,0xaa,0x4a,0x70,0x15,0x80,0xd1,},{0x3b,0xb4,0x59,0xd1,0xac,0x57,0x5a,0x18,0x0c,0x17,0x28,0xd8,0xb8,0x92,0x49,0x70,0x49,0x2a,0x0c,0x8d,0x2a,0x37,0x8c,0x29,0xd1,0xd4,0x17,0x85,0xc8,0x37,0x9a,0x58,0xe2,0xba,0x36,0x06,0x78,0x5e,0x1c,0x5d,0xa2,0x9e,0x55,0x27,0x55,0x2b,0xc6,0xdc,0x89,0xa2,0xb6,0x9c,0x27,0xfe,0x51,0xed,0x25,0x3a,0x9f,0x3b,0x56,0x5b,0x27,0x00,},\"\\x74\\x90\\x6a\\xe0\\x5a\\x5a\\xf8\\xe9\\x96\\x8b\\x6f\\xeb\\x49\\x85\\x69\\xd6\\x34\\x5a\\x24\\xf9\\x71\\x1b\\xef\\xb1\\x36\\xe6\\xc3\\xb5\\xed\\x49\\x33\\x9e\\x59\\xa7\\x93\\x8b\\x4b\\xa1\\xa1\\x18\\xf1\\x69\\xb9\\xac\\xe0\\xf7\\x84\\x2a\\x26\\xa6\\x45\\xf1\\x4c\\x0a\\xd2\\x2e\\xbb\\xcd\\xa9\\x3e\\x67\\xe4\\xc3\\x48\\xef\\xc3\\xd9\\xec\\xbb\\x14\\x19\\xe6\\x26\\x2d\\x04\\x36\\xa5\\x8e\\xa8\\x2c\\x22\\x02\\x38\\x90\\x65\\xcc\\xf6\\x7c\\x4f\\x55\\x0e\\x45\\xb5\\xf6\\xa1\\x2a\\x6c\\x01\\x1b\\x2e\\x0a\\x30\\x10\\x1d\\x5c\\x62\\x32\\x8b\\xbf\\x99\\xc8\\xc9\\x55\\x63\\xa6\\xe3\\x3b\\xdd\\x9c\\xce\\x72\\xb1\\xf7\\x20\\x13\\x9c\\x2f\\xd3\\xe0\\x49\\x13\\x14\\x6a\\xe5\\xba\\xc5\\x28\\x8e\\x0e\\x3e\"},\n{{0x45,0x66,0x7d,0x1e,0x7b,0x59,0x10,0x97,0x9c,0x4a,0x32,0x83,0x17,0x96,0x83,0x71,0xc8,0x64,0xd5,0x64,0xa6,0x61,0xc5,0xcc,0xe5,0x57,0xc9,0xec,0xc6,0x1b,0xab,0x9e,},{0xed,0xcd,0xf5,0xe1,0xa1,0x70,0xe0,0x0c,0x8c,0x68,0x7e,0x7e,0x9c,0x18,0xf9,0x89,0x3b,0x5f,0xe4,0x95,0xcd,0x29,0x77,0xce,0xb7,0xf4,0x46,0xc0,0x14,0x9a,0xa9,0xd3,},{0x6d,0xe6,0x68,0xf1,0xca,0x6f,0x29,0x28,0x14,0x62,0x52,0x89,0xa0,0x80,0x80,0x20,0xc8,0x7c,0x89,0xac,0x94,0xf5,0xb0,0x50,0x8e,0x55,0x7b,0xdf,0x80,0x00,0xa5,0xca,0x80,0x8f,0x02,0x1c,0x96,0x79,0xb5,0x0e,0xe2,0xf3,0x20,0x06,0x4c,0x95,0xa4,0x64,0xa8,0x43,0x93,0x79,0x82,0x8c,0x3b,0x76,0xcf,0xa7,0x66,0x45,0x5e,0x12,0x8c,0x0b,},\"\\xcd\\x66\\xce\\xc4\\x76\\xc8\\x7c\\x8d\\xbf\\x47\\xec\\x91\\xda\\xc4\\x8f\\xb5\\xb4\\x2d\\xb1\\x28\\x2a\\x57\\x3e\\x0a\\x5c\\xf0\\xb9\\x17\\x68\\x98\\x66\\x08\\xe1\\xd7\\xeb\\xd0\\x5f\\x52\\x51\\xbc\\xf8\\xb4\\x7a\\x17\\x09\\x32\\x29\\xac\\xef\\xbd\\x44\\xbe\\xb2\\x1c\\x0c\\x0c\\x92\\x8d\\xd3\\xcd\\x3f\\x89\\x66\\xec\\xce\\x69\\x10\\x33\\x1c\\x50\\x8e\\xa7\\x6b\\xaf\\x90\\x4d\\x8c\\x21\\xf6\\xc1\\x7c\\x2c\\x58\\xd0\\x0a\\xfd\\x32\\x59\\xb8\\xbf\\x79\\x4c\\x14\\x6b\\x12\\xb9\\x95\\xcd\\xdd\\x1c\\x42\\x89\\xc5\\xbe\\x31\\x68\\xeb\\xd6\\x16\\xb3\\x84\\xc2\\x81\\xce\\x1b\\x38\\xa1\\x0e\\x18\\x07\\x80\\x88\\x53\\xc6\\x81\\xa6\\x40\\xa0\\x09\\xb4\\xd2\\xac\\xd7\\x93\\x4f\\x8c\\x6d\\x07\\x57\\x81\\x61\"},\n{{0x24,0x89,0x74,0x28,0xae,0x65,0x46,0xd8,0x5b,0x31,0x90,0xeb,0xe3,0xf1,0xf7,0xbf,0x7c,0x71,0x25,0x28,0xac,0x85,0x1a,0x58,0x8b,0x07,0xd5,0xc8,0xf9,0x4e,0xec,0xd1,},{0x5f,0x34,0x8f,0xe3,0xea,0x5b,0x2c,0x02,0x3d,0x0a,0xf7,0xed,0xe6,0x0e,0x55,0xf9,0x1a,0xa5,0x51,0x99,0x69,0x9d,0xa1,0x5a,0x11,0xc3,0x79,0x1d,0x68,0xd7,0x10,0xbd,},{0x1b,0x5e,0x75,0xde,0xf4,0x9f,0x51,0xd6,0xb2,0xde,0x00,0x8c,0x71,0xfc,0x1a,0x90,0x9b,0xd4,0x2c,0xa8,0x13,0x29,0x8d,0xce,0x4e,0xee,0xf7,0x17,0x81,0x5d,0x7a,0x6c,0x07,0x8c,0x2f,0x3d,0x9a,0x3f,0xce,0x1a,0xb5,0xb3,0xad,0x8e,0xf8,0xd4,0x5c,0xdf,0x2e,0xb4,0x90,0x1c,0x32,0xee,0xa2,0xd5,0xe0,0x18,0xdc,0xf2,0x83,0x3c,0xad,0x0c,},\"\\x52\\x01\\xd9\\x72\\x5f\\x1d\\xff\\xa1\\x86\\x3f\\xa4\\xd8\\x4c\\x30\\x18\\x61\\x14\\x1a\\xcd\\xfb\\x64\\xbe\\x1f\\xbf\\xdd\\x5b\\x93\\x86\\xdb\\x20\\xef\\x39\\x40\\x99\\xee\\xbc\\xfd\\xfe\\xcc\\x62\\xc6\\x26\\x86\\x07\\xa8\\x4d\\x55\\xc5\\x5c\\xd0\\xef\\xdc\\x37\\x2e\\xcf\\x30\\x67\\x34\\x3e\\x7b\\x07\\x31\\xc2\\x68\\x54\\x61\\xe2\\x4b\\x95\\x3f\\x99\\x94\\x9e\\x59\\xba\\x3e\\x67\\xed\\x0f\\x08\\x48\\x31\\x37\\x93\\x96\\x2a\\x29\\x2c\\x45\\x98\\x14\\xc5\\xe2\\x86\\x90\\xec\\x1f\\x45\\x17\\x1f\\x1a\\xba\\xb8\\x6f\\xdd\\x14\\x56\\x8b\\x00\\xca\\xf4\\x85\\x81\\x11\\x5e\\xe5\\xea\\x83\\xb0\\x00\\x28\\x2f\\xbb\\xf0\\xc0\\xb2\\xa1\\x11\\x60\\x39\\xa3\\x5c\\xfa\\x3f\\x20\\x14\\x22\\x20\\x7a\\x3d\\x49\\x48\"},\n{{0x7b,0x04,0xac,0xa7,0xcf,0x92,0x62,0x16,0xcb,0x96,0x0a,0x38,0x90,0x78,0x63,0x39,0xd0,0xa6,0x15,0x96,0x76,0x80,0x19,0x01,0x23,0xfd,0xa3,0xb6,0x0c,0x6a,0xeb,0x11,},{0xcd,0xbc,0x3e,0x70,0xe4,0xe8,0xfd,0x13,0xd0,0xcc,0xe2,0x85,0x2a,0x3b,0x93,0x72,0xc3,0xa6,0x16,0x0c,0xd6,0xde,0xab,0xa9,0x0f,0x9b,0x30,0x22,0xf7,0x0c,0x91,0xf9,},{0x25,0xd2,0xd3,0x61,0x75,0x1d,0x52,0xb4,0xfe,0x66,0xea,0x18,0xe4,0xb9,0x86,0x6b,0xde,0x3d,0x12,0x1a,0x73,0x12,0xfd,0x9e,0x28,0xa1,0xe2,0x95,0xe0,0x87,0xe3,0x17,0x6c,0x94,0xc8,0x74,0xa2,0xe8,0x16,0x00,0xf2,0x4c,0x46,0x54,0xf4,0x3d,0x1b,0x67,0xd4,0x7b,0x64,0x82,0x26,0x48,0x59,0x0c,0xe5,0xce,0x44,0xf3,0xb5,0xdd,0xc5,0x02,},\"\\x1c\\xb0\\x96\\x24\\xb1\\xf1\\x4a\\x02\\x60\\xc7\\xf5\\x6d\\x8c\\x60\\xb5\\xfe\\x45\\x83\\x71\\x14\\x23\\x25\\x51\\xef\\x59\\x66\\x38\\x6e\\x0c\\x2b\\x44\\x1b\\x75\\xcf\\xdb\\x8d\\xf2\\x18\\x57\\x85\\xd2\\x2c\\xf5\\x26\\xfa\\x9d\\xf7\\xfd\\x45\\xd9\\xd8\\x38\\x81\\xb6\\x6c\\x1f\\xee\\xe0\\x91\\x3e\\x23\\x81\\x21\\xee\\xdb\\xb7\\xab\\x50\\x4d\\xa0\\xbe\\xe8\\x99\\x80\\x16\\x68\\x45\\x35\\x03\\x19\\x91\\xf1\\x1b\\xfc\\xd9\\xb9\\x56\\x90\\xaa\\xd2\\xd1\\x9b\\xd6\\xa9\\xde\\x18\\x44\\xed\\x13\\x62\\x30\\x2d\\xf4\\x21\\x72\\x30\\xb2\\x5c\\x05\\x52\\xce\\x27\\x75\\x34\\xc6\\x50\\xca\\xe5\\x26\\x57\\x7f\\x25\\xd8\\xb1\\xfe\\x9f\\x9f\\xeb\\xca\\x2c\\x81\\x46\\x70\\xd4\\x80\\x5b\\x21\\xad\\xef\\x85\\x2d\\xaf\\x94\"},\n{{0xea,0x73,0xbf,0x64,0xa1,0xa9,0x78,0x77,0xc3,0xc3,0xe7,0xca,0x46,0x44,0xb7,0x1a,0xaa,0x66,0x31,0x4c,0x8f,0x1b,0x66,0xba,0xfa,0xeb,0xd5,0xed,0xfb,0x88,0x8b,0xcd,},{0xca,0xac,0x93,0x90,0x2e,0x57,0x64,0xad,0xe4,0x72,0x94,0xed,0xd5,0x1f,0xaa,0x14,0x62,0x09,0x40,0xc6,0x68,0xb5,0xc1,0xc3,0x92,0xa6,0x92,0x83,0x25,0xd4,0xc3,0xfd,},{0xbd,0x86,0xcb,0x9c,0x70,0xa0,0x55,0x27,0x9a,0x86,0xa9,0xe6,0x48,0x70,0x98,0x8b,0x8a,0x73,0x45,0xc3,0xcd,0x29,0x48,0xa0,0xfa,0xbc,0xfb,0x38,0xab,0xce,0x3c,0x42,0x0b,0x4d,0x55,0x21,0x61,0x8e,0x11,0xd2,0xde,0x82,0x7d,0x9d,0xe5,0x69,0xf6,0xbc,0x3b,0xe6,0x6a,0xad,0x40,0x63,0x6c,0xda,0xa6,0x47,0x60,0xde,0xd3,0xb7,0xc2,0x09,},\"\\x36\\x2e\\xec\\x68\\xb9\\x12\\x85\\x27\\x86\\xbb\\x4f\\x9a\\xff\\xf9\\xec\\xf7\\xcb\\x28\\xc9\\xde\\x6b\\x18\\x42\\x2a\\x8c\\xa9\\x40\\xb0\\xd7\\xe6\\xdc\\xb8\\x3a\\xa4\\x4b\\xe0\\xaf\\xb5\\xf1\\x80\\x6d\\x43\\xf0\\xe3\\x1d\\x71\\xf9\\x22\\xf8\\x53\\x61\\x5a\\x26\\xe2\\x87\\xa2\\x7f\\x08\\xa0\\x4f\\xbc\\xe3\\xd4\\x5a\\x0c\\x6c\\x31\\x1d\\x4b\\x7c\\xb1\\x7e\\x42\\x5b\\xbe\\xb0\\xa6\\xb4\\x10\\xb5\\xd6\\xdb\\xb7\\xac\\x11\\xdf\\x98\\x50\\xa1\\x31\\xa6\\x91\\xe3\\xb6\\x0b\\x0b\\x21\\x4e\\xbe\\x04\\x41\\x06\\xe9\\x82\\x43\\x32\\x87\\x59\\x52\\x67\\xb0\\x31\\xb5\\xd4\\xa0\\x92\\x62\\xde\\xd8\\x93\\x4f\\xdf\\xdf\\x96\\x4d\\x86\\x8e\\xf9\\xa2\\xc8\\x42\\xf8\\x04\\xea\\xfd\\xde\\xfc\\xb7\\x1d\\x9f\\x16\\xa5\\x9b\\xf8\"},\n{{0xb8,0x12,0x3c,0x11,0x6b,0x33,0xba,0xd0,0xdc,0xbc,0x2c,0x4d,0xc0,0x6a,0x3d,0x66,0x85,0x0d,0xab,0x36,0x0c,0xdb,0x5a,0x03,0x3c,0x14,0x89,0x5c,0x4e,0xe3,0x1b,0xfb,},{0xbd,0xca,0x15,0x1b,0xa3,0x2c,0x6b,0xb3,0x15,0x31,0xb0,0x5f,0xdf,0x86,0xc6,0xd7,0x8c,0x8c,0xd1,0x93,0x56,0x11,0xd5,0xff,0x11,0x1a,0x0f,0x00,0x63,0x5b,0x18,0x85,},{0x9c,0xf1,0x3e,0xba,0x3d,0xcc,0x37,0xb8,0xfc,0x70,0xcc,0xb2,0x32,0x74,0x36,0xb9,0xf0,0x88,0x55,0xe7,0x26,0xaa,0x7e,0xd8,0x2b,0xd5,0xcb,0x7d,0xf4,0x5f,0xdf,0x9e,0xc1,0xf9,0x6a,0xfa,0xd1,0x93,0xf4,0x75,0x72,0xd7,0x70,0x44,0x4b,0x65,0xb7,0x4a,0x37,0xcc,0x03,0x4f,0xc5,0x14,0xcb,0x3f,0x91,0xb2,0xd8,0xad,0xa5,0xb0,0x20,0x06,},\"\\x79\\x70\\xf6\\x66\\x66\\x34\\x54\\x8c\\x84\\x8b\\xb5\\x23\\x38\\x81\\x7b\\x26\\xa4\\xd0\\xca\\x68\\xdf\\x3d\\x28\\xaf\\xff\\x20\\x7c\\x2d\\x02\\x80\\x67\\xa1\\x8e\\x4c\\x95\\x43\\x02\\x5f\\x5b\\x02\\x28\\xaa\\x69\\x1e\\x50\\x88\\x51\\x31\\x51\\xa9\\x44\\x94\\xe1\\x5d\\x1f\\x54\\x21\\x03\\x28\\xe0\\xdf\\x15\\x9b\\x35\\x2c\\x30\\xaa\\xa7\\xa8\\x44\\xf1\\x8a\\x9f\\x4c\\x39\\x5d\\xcb\\xb3\\xfb\\x9f\\xcf\\xbe\\xd1\\x10\\x3e\\x07\\x06\\xfb\\xf9\\xc3\\x5f\\xe2\\x66\\x68\\x48\\xfa\\x35\\xdc\\x2c\\xf5\\x22\\x7e\\xbe\\xe8\\x9e\\x7d\\x3b\\xcf\\xae\\x27\\x21\\xb2\\x5f\\xde\\xc3\\xd3\\x17\\x4e\\xa7\\xce\\x26\\x7a\\x55\\xdd\\x61\\xd5\\x82\\x01\\xe9\\x6b\\xda\\x30\\x3c\\xf4\\x18\\xed\\xf6\\xe3\\x2f\\xb9\\x2f\\x5d\\xc1\\xa0\\xb1\"},\n{{0xb1,0x8e,0x1d,0x00,0x45,0x99,0x5e,0xc3,0xd0,0x10,0xc3,0x87,0xcc,0xfe,0xb9,0x84,0xd7,0x83,0xaf,0x8f,0xbb,0x0f,0x40,0xfa,0x7d,0xb1,0x26,0xd8,0x89,0xf6,0xda,0xdd,},{0x77,0xf4,0x8b,0x59,0xca,0xed,0xa7,0x77,0x51,0xed,0x13,0x8b,0x0e,0xc6,0x67,0xff,0x50,0xf8,0x76,0x8c,0x25,0xd4,0x83,0x09,0xa8,0xf3,0x86,0xa2,0xba,0xd1,0x87,0xfb,},{0x6b,0xd7,0x10,0xa3,0x68,0xc1,0x24,0x99,0x23,0xfc,0x7a,0x16,0x10,0x74,0x74,0x03,0x04,0x0f,0x0c,0xc3,0x08,0x15,0xa0,0x0f,0x9f,0xf5,0x48,0xa8,0x96,0xbb,0xda,0x0b,0x4e,0xb2,0xca,0x19,0xeb,0xcf,0x91,0x7f,0x0f,0x34,0x20,0x0a,0x9e,0xdb,0xad,0x39,0x01,0xb6,0x4a,0xb0,0x9c,0xc5,0xef,0x7b,0x9b,0xcc,0x3c,0x40,0xc0,0xff,0x75,0x09,},\"\\x91\\x6c\\x7d\\x1d\\x26\\x8f\\xc0\\xe7\\x7c\\x1b\\xef\\x23\\x84\\x32\\x57\\x3c\\x39\\xbe\\x57\\x7b\\xbe\\xa0\\x99\\x89\\x36\\xad\\xd2\\xb5\\x0a\\x65\\x31\\x71\\xce\\x18\\xa5\\x42\\xb0\\xb7\\xf9\\x6c\\x16\\x91\\xa3\\xbe\\x60\\x31\\x52\\x28\\x94\\xa8\\x63\\x41\\x83\\xed\\xa3\\x87\\x98\\xa0\\xc5\\xd5\\xd7\\x9f\\xbd\\x01\\xdd\\x04\\xa8\\x64\\x6d\\x71\\x87\\x3b\\x77\\xb2\\x21\\x99\\x8a\\x81\\x92\\x2d\\x81\\x05\\xf8\\x92\\x31\\x63\\x69\\xd5\\x22\\x4c\\x99\\x83\\x37\\x2d\\x23\\x13\\xc6\\xb1\\xf4\\x55\\x6e\\xa2\\x6b\\xa4\\x9d\\x46\\xe8\\xb5\\x61\\xe0\\xfc\\x76\\x63\\x3a\\xc9\\x76\\x6e\\x68\\xe2\\x1f\\xba\\x7e\\xdc\\xa9\\x3c\\x4c\\x74\\x60\\x37\\x6d\\x7f\\x3a\\xc2\\x2f\\xf3\\x72\\xc1\\x8f\\x61\\x3f\\x2a\\xe2\\xe8\\x56\\xaf\\x40\"},\n{{0x93,0x64,0x9c,0x63,0x91,0x0b,0x35,0x71,0x8e,0x48,0xc5,0x90,0xd2,0x61,0xc4,0x8e,0x4e,0xf8,0x33,0x66,0x13,0xf6,0xaa,0x07,0x7b,0x46,0x26,0x76,0xb3,0xba,0x88,0x29,},{0x06,0xa6,0x85,0x89,0x8b,0x85,0x52,0x12,0xeb,0xc2,0x89,0x91,0x5d,0x10,0x5a,0x43,0x20,0xd6,0x20,0xd8,0x57,0x71,0xb8,0xc6,0xb1,0x5b,0xf1,0x0a,0x1b,0xe6,0xe9,0xb8,},{0x62,0x74,0xf2,0xd4,0xf4,0x31,0xd5,0xaf,0xfe,0xfa,0x35,0xe7,0xcf,0x58,0x4a,0x59,0x90,0x17,0x19,0x3d,0xa9,0x90,0x94,0xca,0x90,0x8b,0x75,0xac,0xb6,0x08,0xd1,0xbf,0x98,0x18,0x57,0xbe,0x93,0xa7,0xda,0xfb,0x0f,0xad,0xb3,0xff,0x09,0x06,0xf4,0x8a,0x5e,0xe9,0x50,0x45,0x6f,0x78,0x2c,0x2d,0x60,0x5b,0x14,0x09,0x5b,0xa0,0xff,0x0f,},\"\\x2c\\xd1\\xa9\\x51\\x05\\x6c\\x9e\\xba\\xe1\\x39\\x9b\\x6b\\xd2\\xd8\\x2c\\x0a\\xe2\\x77\\x85\\x62\\x90\\xd0\\x69\\x20\\xac\\x56\\xca\\xc8\\xfb\\x42\\x43\\x51\\x01\\xc7\\x2a\\xa9\\xc0\\x8d\\xd2\\xd1\\x24\\x26\\x32\\x55\\x62\\xc2\\xf0\\xa4\\x9c\\xd8\\x21\\xb1\\x1b\\x93\\x9a\\xaf\\xa5\\x93\\xb4\\x09\\x5c\\x02\\x1b\\xcb\\x48\\x27\\xb1\\x07\\xb9\\x66\\x4d\\x68\\x28\\x28\\x88\\xbc\\x4a\\x44\\xaf\\x3e\\x3b\\xdc\\x86\\x1b\\xe6\\xaf\\x30\\x90\\x44\\xc3\\xda\\xab\\x57\\xb7\\x70\\x23\\xdc\\x90\\x2d\\x47\\xeb\\xc3\\x26\\xf9\\xbd\\xd0\\x2d\\xbc\\x02\\xcd\\x54\\x0f\\xf8\\x1b\\x2d\\xdf\\x7c\\xf6\\x79\\xa4\\x11\\x93\\xdf\\xe5\\xf8\\xc8\\xca\\x1a\\xae\\xfc\\x41\\xef\\x74\\x02\\x80\\xd9\\x82\\x3e\\x30\\xa3\\x54\\x71\\x7c\\x84\\x31\\xf5\\xd8\"},\n{{0x1c,0x15,0xcb,0xeb,0x89,0x36,0x2d,0x69,0x47,0x6a,0x2a,0xa4,0xa5,0xf3,0xef,0x20,0x89,0xcf,0x87,0x28,0x63,0x49,0xe0,0xdf,0xe0,0xe7,0x2d,0x9e,0x3e,0x5a,0x66,0xc7,},{0x13,0xa8,0x82,0xa1,0x06,0x41,0x82,0x58,0x2c,0x21,0x18,0x47,0xe1,0x9b,0x4d,0xac,0x59,0x72,0x2c,0x9f,0xfd,0x34,0x82,0x6d,0x96,0xf3,0x31,0x13,0x40,0x0f,0xac,0x7a,},{0x59,0x98,0xb2,0x80,0x8a,0xdf,0xde,0xea,0xeb,0xe2,0xc3,0xea,0xc0,0x26,0xd3,0xf8,0x25,0xf9,0xc7,0xf2,0xaf,0x97,0xca,0x32,0x4f,0xbd,0x57,0xaa,0xc1,0xbe,0xdf,0xf7,0x8a,0x8e,0xe6,0x21,0xd0,0x37,0xee,0x3a,0xd2,0xa7,0x12,0xe9,0xa0,0x09,0xc5,0x8e,0xa3,0xe6,0xf2,0xa8,0x28,0xf7,0x4b,0x86,0xda,0x27,0x5a,0x44,0xa4,0xb1,0xe5,0x0b,},\"\\x09\\x1c\\x9b\\x9b\\x11\\x6a\\xe8\\x3d\\x23\\xd0\\x1a\\x62\\x95\\x21\\x17\\x85\\xd4\\x46\\xb6\\x22\\x8d\\xd6\\x87\\xdd\\xf7\\x9b\\xd0\\xd5\\xa4\\xda\\xa8\\xc7\\x9d\\x2c\\xbf\\xc3\\x73\\x65\\xf1\\xf2\\x85\\xe3\\x61\\x73\\x81\\x23\\xe3\\x4e\\x2b\\xcb\\xfc\\x66\\x4c\\xe1\\x25\\x3a\\x11\\xd9\\xe4\\xa7\\x98\\x2e\\x58\\xcf\\x94\\x68\\xe1\\x01\\x7e\\xa1\\x4d\\x2c\\xc6\\xd0\\x86\\x5d\\x40\\xfd\\xe8\\xcb\\x56\\x02\\x41\\xe9\\x6a\\xc1\\x61\\x7c\\x79\\x1f\\x0c\\xa7\\xc6\\x41\\x0c\\xad\\xf3\\x28\\x61\\x1b\\x18\\xae\\xf3\\x33\\xd8\\x35\\x0a\\xc4\\x97\\xf0\\xa4\\xae\\x2d\\x03\\xfd\\xf0\\xe2\\x3e\\x42\\x6d\\x34\\xf4\\x51\\x47\\x80\\xd1\\x47\\x4e\\x11\\x35\\x83\\x54\\x1f\\x3c\\x04\\x36\\x72\\x05\\x71\\x72\\x61\\x8c\\xb2\\x05\\x9e\\xaa\\xed\\x56\"},\n{{0x11,0x24,0x1f,0xfd,0xf3,0x4a,0xe8,0xab,0x87,0x54,0x75,0xe9,0x4c,0x6c,0xc3,0x29,0x1f,0x0b,0x88,0x20,0xdc,0x85,0xe2,0x0f,0x32,0xfc,0x53,0xb2,0x4a,0xe6,0x89,0x78,},{0x09,0xc0,0x45,0xe4,0xbd,0x51,0x37,0x31,0x4c,0x0e,0xc1,0xd0,0x31,0xfa,0xf9,0x14,0x91,0x0c,0x45,0xa4,0x67,0x6f,0x5a,0x3c,0xd8,0xf5,0x81,0xbc,0xcc,0xb0,0x3c,0x97,},{0x72,0xce,0x9f,0x91,0xbe,0x2e,0x66,0xcf,0xc9,0x0f,0x95,0x25,0x95,0x94,0x6f,0xfc,0x90,0xbf,0xce,0x53,0x08,0x7d,0x49,0xe5,0xdd,0x7c,0x08,0x7f,0x3f,0xaa,0x8f,0x18,0xf2,0x35,0x6d,0xe9,0x71,0xe4,0x42,0x9d,0x98,0x5a,0x99,0x19,0x4b,0x4f,0x92,0xce,0xd3,0xef,0x47,0xcd,0x71,0x14,0x37,0x9e,0x0b,0x32,0x67,0xa9,0xf8,0xb1,0xe7,0x06,},\"\\x3b\\x89\\xde\\xcc\\xb7\\x02\\x3e\\x4b\\x2b\\x7a\\xff\\x2c\\x39\\x51\\x87\\x0a\\xf4\\x13\\xa9\\xb0\\x4d\\xd8\\x6a\\xc7\\x8b\\x7c\\x8f\\xd8\\x87\\x49\\x2d\\x8d\\xde\\x49\\xd8\\xfd\\xa1\\x49\\xed\\xd5\\x47\\x81\\xae\\x2b\\x50\\x80\\x30\\xd1\\x44\\x16\\xa9\\xa3\\x8b\\xed\\x2b\\x9a\\xeb\\xbb\\xb2\\x02\\x50\\xb3\\xc9\\x31\\xac\\xd4\\xe3\\x2f\\xbe\\xee\\xc5\\xa2\\x65\\x01\\xbe\\xab\\x72\\x68\\xd1\\x44\\xfc\\xe8\\x95\\x1a\\x10\\x1c\\x4b\\x51\\x78\\x16\\x6f\\xbb\\x59\\x27\\xb1\\xdf\\xb1\\xe1\\xce\\x90\\xd1\\xd1\\x23\\x06\\x8e\\x3f\\x47\\x2c\\x88\\x8f\\xdb\\x01\\xfd\\xf7\\x0e\\x7f\\x8d\\xe9\\xb0\\xad\\xb2\\x84\\xb7\\x11\\x9f\\x55\\x35\\x43\\x16\\xf8\\x4e\\xd0\\x90\\x03\\x0f\\x9c\\x26\\x62\\x06\\x1c\\xa4\\x84\\x47\\xcc\\x0a\\xef\\x96\\x41\\x26\"},\n{{0x3b,0xdb,0x16,0x24,0x65,0xea,0xce,0xff,0x98,0xd6,0x9c,0x86,0xf7,0x00,0x39,0xc5,0x17,0xd1,0x68,0xae,0xfe,0x6b,0xb1,0x01,0xb4,0xf7,0x69,0xa8,0x6b,0x17,0xc9,0x72,},{0xd7,0x6c,0xb7,0xbe,0x74,0x32,0x82,0x89,0xfd,0x1c,0x64,0xbe,0x74,0x7c,0xca,0x5b,0xb3,0x02,0x95,0xdf,0xac,0xcd,0x0f,0x2e,0x43,0xf5,0x17,0x03,0xfd,0x5d,0x36,0x83,},{0x6f,0x13,0x62,0xa4,0x02,0x06,0x37,0x91,0xf9,0x50,0x98,0x4f,0x54,0x49,0x28,0xe6,0x16,0xa4,0xef,0x79,0xbb,0xeb,0x68,0x54,0xe9,0x61,0x5a,0xab,0x9c,0xdb,0xae,0xc4,0x83,0xfb,0x9a,0x04,0xbf,0x22,0xde,0x5d,0x97,0xa1,0x5b,0xda,0x2d,0x39,0x04,0x83,0xc7,0xf6,0x1d,0xbe,0xe0,0x7b,0xb5,0x14,0x1f,0xc1,0x73,0xb1,0xaa,0x47,0x65,0x0d,},\"\\xfb\\xf3\\x68\\xfe\\xae\\xba\\x87\\x91\\x8b\\x1b\\x8c\\x7b\\x8a\\x26\\x83\\x2b\\xe6\\xe7\\xfc\\x1c\\xbd\\xb8\\x90\\x25\\x19\\x28\\x1a\\x06\\x54\\xec\\x73\\xde\\x0b\\xb0\\x71\\x01\\xa9\\xd6\\x03\\xf7\\x45\\xd4\\xec\\x23\\x57\\xae\\xe9\\x87\\x0c\\xb1\\x9a\\x56\\xcb\\x44\\xfb\\xd9\\xc9\\x1f\\xc3\\x47\\x52\\x61\\x2f\\xbd\\x83\\xd6\\xfc\\x1a\\x16\\xbf\\x8a\\x85\\xa2\\x15\\xd0\\x14\\x8e\\x4a\\xf3\\x7d\\x29\\x84\\x67\\xe5\\xcc\\x48\\x6b\\x13\\x13\\x52\\xce\\x09\\x21\\x82\\xce\\x82\\x84\\x15\\x9a\\x38\\x12\\xb3\\x0b\\xac\\xbf\\xf5\\x95\\x86\\x38\\x11\\xbf\\x9a\\x30\\xa9\\xda\\x49\\x45\\x65\\xc3\\xac\\x18\\x14\\x43\\x00\\x18\\xea\\x0e\\xee\\xd3\\x9c\\xdb\\xca\\x27\\xf9\\x31\\x40\\xe4\\x69\\x49\\xdb\\x57\\x0b\\xfa\\x2e\\xd4\\xf4\\x07\\x3f\\x88\\x33\"},\n{{0xd5,0xef,0xe5,0x1d,0x5c,0xd8,0xe1,0x08,0xbd,0x92,0x2f,0xc0,0xea,0x12,0x61,0x90,0xa9,0x46,0x28,0xff,0xa5,0x3c,0x43,0x3a,0x51,0x80,0x22,0x79,0x2d,0xdc,0x78,0xef,},{0x42,0x6b,0x01,0xcc,0x61,0xff,0x5e,0x0e,0x72,0x4d,0xa1,0xd3,0xb2,0x97,0xf5,0x32,0x5c,0x18,0xc6,0x2f,0x64,0xd5,0xeb,0x48,0xd4,0xa5,0x21,0x6a,0x8e,0x9a,0x40,0x73,},{0x23,0x06,0xf5,0x8f,0xcd,0x4c,0xff,0x22,0x22,0xd8,0x1b,0x05,0xa4,0x75,0x53,0x2b,0x8b,0x19,0xdc,0x67,0xe6,0xd7,0x8d,0xdb,0x42,0x05,0xa3,0xb7,0x62,0x1c,0xc5,0xae,0xf0,0xb3,0x93,0xd5,0xd2,0x4d,0xd9,0x6c,0x88,0xcc,0xbc,0x53,0xa3,0x20,0x8d,0xa3,0x23,0xbe,0x45,0x87,0xd5,0xec,0x06,0x7c,0x82,0x0f,0x07,0x23,0xaa,0x44,0xe9,0x0e,},\"\\x9d\\x17\\xbc\\xfe\\x2d\\xfc\\x74\\x2f\\x41\\x1c\\xb5\\x3a\\x94\\xf3\\x59\\xc0\\x01\\xab\\xf0\\x96\\xc7\\x41\\xf3\\x4a\\xf4\\x86\\x79\\xf2\\x81\\xe7\\xce\\x6b\\xbd\\x9e\\x87\\x70\\x9f\\xc0\\x72\\x8a\\x56\\x3d\\xb2\\xb9\\xcf\\x8e\\xa4\\xfb\\xdc\\xc3\\x44\\xc1\\x84\\x8e\\x65\\x3c\\xe9\\x70\\xc6\\xce\\x29\\xde\\x2c\\xcd\\x52\\x03\\x00\\x64\\x9a\\xdc\\xdd\\xfc\\x75\\x39\\x71\\xf8\\x46\\xaa\\xc1\\xba\\x42\\xae\\x45\\x28\\x95\\x2d\\x94\\x98\\x0a\\xa7\\xc6\\xcf\\xa2\\x14\\x29\\x07\\x64\\x7f\\x89\\x4a\\xe9\\x74\\xa7\\x4d\\x59\\x03\\x5a\\x73\\xef\\x56\\xa1\\x0b\\x66\\x12\\x62\\x48\\x09\\x52\\x01\\x90\\xac\\xe6\\x61\\xc3\\xa4\\x70\\x95\\xe0\\x32\\x2e\\xfd\\x78\\x1d\\x50\\xd1\\x16\\x35\\x98\\xf2\\xda\\x32\\xf3\\x1b\\xc9\\xc4\\xf9\\x13\\xd1\\xb1\\x48\\x61\"},\n{{0x18,0xaf,0x89,0x02,0x5e,0xbf,0xa7,0x6b,0xd5,0x57,0xcf,0xb2,0xdf,0xf1,0x48,0x24,0x52,0x14,0x64,0x1f,0xd5,0xbd,0xa1,0x59,0xf7,0x3d,0xa0,0x4b,0x08,0xe8,0x7c,0x88,},{0x0c,0x58,0x44,0x59,0xb9,0xeb,0xcc,0xca,0xd5,0x87,0xb2,0x72,0x16,0x0b,0xc6,0x0b,0x27,0xf4,0xf7,0x72,0xb4,0x32,0x1d,0xe7,0x72,0x3a,0xfe,0xf5,0x77,0xed,0xc7,0xb4,},{0x26,0xbb,0x08,0x82,0x29,0x7c,0x2c,0x08,0xa7,0x52,0xd3,0x98,0x11,0x45,0xdc,0xde,0x55,0x89,0x3a,0x11,0xdf,0x77,0xf8,0xaa,0x4c,0x19,0xd0,0xb9,0xed,0x6e,0x52,0x20,0xed,0x12,0xe9,0xfa,0xc3,0xaf,0x13,0xd0,0xf0,0xc7,0x15,0x68,0xf4,0xa5,0x47,0xd3,0x01,0x14,0xa6,0x59,0x9a,0x23,0x68,0x06,0xc4,0xbe,0xee,0x67,0x65,0x28,0x44,0x08,},\"\\xe8\\x2f\\x46\\x65\\x2a\\xb9\\x14\\xaf\\x53\\x5d\\x8f\\xb7\\x20\\xb5\\x57\\xac\\x95\\x01\\x8d\\x9f\\x2a\\x3f\\xcc\\xe8\\x57\\x71\\xbb\\x40\\xab\\x14\\xcb\\x9a\\x98\\x6e\\x09\\x6f\\x3a\\xfe\\x5b\\xee\\x82\\x9d\\xfd\\x8b\\x97\\x33\\x5c\\x53\\x6a\\xc9\\x71\\xa2\\x16\\x55\\xaf\\x16\\xa2\\xf8\\xfd\\xba\\x18\\x3a\\x4e\\x18\\x56\\x4c\\x21\\x49\\x29\\x56\\x53\\x7a\\x41\\x9a\\xbb\\xbb\\xb0\\x2a\\x4b\\xbd\\xc0\\x14\\x81\\xf5\\xc6\\xe6\\x58\\xec\\xf3\\xc3\\x4f\\x01\\x1a\\xd8\\x46\\xf5\\xed\\xcd\\x49\\x39\\x19\\x5d\\xf8\\x5e\\x41\\x30\\x3f\\xb9\\xa8\\x8f\\xdf\\xbd\\x70\\x43\\x96\\xf7\\x55\\x9a\\x32\\x73\\x18\\xb9\\x52\\xb3\\xe6\\x0c\\xe8\\xdd\\xde\\x56\\x37\\x85\\x79\\x23\\x2f\\xaf\\x95\\x0c\\x78\\xe7\\xf0\\xb1\\x7c\\x3b\\x8d\\xec\\xe3\\x6b\\x78\\x8a\\x84\\x73\"},\n{{0x0c,0x93,0xd9,0x98,0x15,0xff,0xf8,0xfe,0x22,0xb9,0xe4,0x5a,0xa0,0x2b,0x3e,0x64,0x45,0xce,0x1d,0x6b,0xf5,0xa6,0x5d,0xce,0x3d,0xa1,0x07,0xaa,0x10,0x55,0x94,0x0e,},{0x4d,0x27,0xa4,0x7b,0x0f,0xc8,0x08,0x00,0xd8,0x4d,0x24,0x4e,0xeb,0xb1,0xde,0xb4,0x43,0x6d,0x97,0x63,0x3a,0x83,0xe6,0x71,0x25,0xad,0x52,0xea,0x01,0x68,0x50,0x57,},{0x7d,0xc4,0x46,0x7a,0xbc,0xf6,0x43,0x1a,0xdb,0x7c,0xcf,0xe8,0x68,0xea,0xc8,0xcd,0x8a,0x61,0x5a,0x0f,0xf6,0x5f,0x6a,0x9e,0x33,0x83,0x75,0xb1,0xaa,0xe3,0xc4,0x9a,0x12,0x6c,0x9e,0xba,0x79,0x42,0x6d,0x16,0x41,0xc6,0xb9,0x7c,0x3e,0x92,0xc1,0x94,0xe5,0xee,0x44,0x31,0xef,0xa2,0x43,0x9f,0xd4,0x50,0xf2,0xcd,0x01,0x8c,0x87,0x00,},\"\\x11\\xe8\\x77\\xde\\x58\\xc1\\x34\\xea\\xf4\\xc9\\xf1\\xb5\\x3c\\x3d\\xc4\\x51\\xd3\\xc0\\x55\\xf1\\x6b\\x09\\x62\\x27\\x25\\xb2\\x79\\x76\\x85\\x12\\xfe\\x10\\xa7\\xad\\xb0\\x76\\x5b\\x68\\x9e\\xc2\\x1d\\x5b\\x6e\\xfa\\xa1\\x9f\\x1b\\x9d\\x36\\x25\\x4d\\xf0\\xa9\\x36\\x7f\\x44\\x1b\\x26\\xbd\\xb9\\x0b\\x28\\xcb\\xc4\\x03\\xe5\\x07\\x40\\x82\\xfa\\x1f\\xed\\x58\\xe1\\x40\\xda\\xc9\\x7a\\xea\\xf4\\x83\\xe2\\xc1\\x3f\\x3c\\xc5\\x60\\xab\\xff\\xab\\xa0\\x5b\\x76\\x3f\\xee\\xdb\\x51\\xe6\\x06\\x98\\x15\\x1c\\xf5\\x6e\\xfd\\xf1\\xd3\\x7d\\x6c\\xe0\\x56\\x44\\x86\\x21\\x0f\\x05\\x2e\\x93\\x7f\\x2e\\xa2\\x6f\\x63\\xef\\xa5\\xd2\\x47\\xff\\x18\\x83\\x29\\xbb\\x1a\\xa8\\x3c\\xe3\\xf4\\xf3\\x5a\\x3d\\x7d\\xec\\x14\\x59\\x9e\\x5f\\xeb\\x7b\\x6d\\x5f\\xe4\\x29\\x6a\"},\n{{0x98,0x9e,0x99,0x94,0x56,0x35,0x19,0x2c,0x02,0x3c,0xc5,0x18,0x6f,0xc2,0x5b,0xba,0xef,0x47,0x24,0x07,0x75,0xd1,0x5a,0x56,0x19,0x5d,0x88,0xcd,0x07,0xc3,0x74,0x8e,},{0xca,0x0b,0xea,0xfd,0xf7,0x31,0xd8,0x93,0x01,0xf7,0x72,0x3c,0x5b,0xb7,0xe5,0xa1,0xc3,0xff,0x3e,0xab,0x27,0xc9,0x7d,0x71,0x1b,0xcd,0x76,0xe4,0x20,0x54,0xbe,0xe4,},{0xae,0xf7,0x56,0xbf,0xb8,0xa7,0x26,0x6e,0x17,0xd1,0x5f,0x3f,0x11,0xee,0x50,0xed,0x25,0xbe,0x42,0x0e,0x95,0xa0,0x74,0x22,0x71,0xeb,0xd1,0x22,0x94,0xe2,0xcb,0x96,0xea,0xd0,0x83,0xb8,0xff,0x0b,0x82,0x9d,0x2e,0xde,0xb1,0x4d,0xa8,0x6e,0x40,0x2e,0xf2,0x5e,0x6d,0x4a,0x5a,0x79,0x58,0xc1,0x84,0xed,0x10,0xc1,0x76,0xcb,0x57,0x0b,},\"\\xc4\\x84\\x14\\xf5\\xc7\\x57\\xd0\\x3c\\x52\\x3e\\xf3\\xf3\\xb8\\x51\\x07\\x71\\xb0\\xff\\x3b\\x4b\\x97\\xde\\x27\\x96\\x25\\xd3\\x49\\xec\\x18\\x5a\\x29\\x92\\x7a\\x66\\xb9\\x59\\x3b\\xa1\\x93\\x38\\xc2\\xf5\\xe4\\x13\\x1f\\x1a\\xc0\\x7e\\xa4\\x6d\\x2c\\x1b\\x6e\\x4a\\xb5\\x22\\x92\\x80\\xb2\\xe2\\xbb\\x9d\\x14\\x0d\\x1e\\xf7\\xaf\\x7b\\x16\\x92\\xbf\\x2d\\x09\\x7b\\x80\\xf8\\x11\\xad\\xcf\\xa9\\x5d\\x5c\\xbf\\x9e\\xee\\x92\\xa1\\x64\\x1c\\x55\\x2b\\x4b\\xe4\\xa0\\xd7\\x34\\xf0\\xaf\\xd4\\x70\\xb9\\xd7\\xf4\\xe4\\x57\\x78\\x95\\x1e\\x21\\xfc\\x53\\x4f\\x20\\x0a\\x12\\x8b\\x96\\xad\\xb8\\x37\\x3f\\x10\\xce\\xce\\xc2\\xda\\xc2\\x99\\x6a\\x06\\x2f\\xb3\\xc2\\x94\\x31\\x59\\x65\\xa9\\xd5\\xd7\\xb0\\x77\\xc4\\xb0\\x13\\xc6\\x4a\\x38\\x42\\x97\\x69\\xd2\\x3e\\xab\"},\n{{0x6b,0xdb,0xbe,0x06,0xd9,0xf4,0x21,0x9e,0xea,0x64,0x03,0xa3,0x57,0xb2,0x5e,0x56,0x19,0x92,0xfa,0xe0,0xf0,0xf6,0x14,0x56,0x1d,0xd8,0x6d,0x23,0xde,0x41,0x5a,0x43,},{0xed,0x52,0xdd,0x1c,0xce,0x32,0xd9,0xb4,0x85,0xe0,0x94,0x07,0x46,0x42,0x1d,0x36,0xb9,0xfd,0xe6,0xcd,0xf0,0x21,0x15,0x45,0xb6,0x34,0x04,0x4d,0x4b,0x3c,0xb8,0xf1,},{0x95,0x02,0x06,0x60,0x5b,0x0f,0x41,0x7c,0x90,0x84,0x3e,0x2c,0x8d,0x8e,0x66,0xc8,0x28,0xbb,0x10,0xb9,0x9b,0x36,0xee,0xee,0xe8,0xca,0xf2,0xe0,0xe5,0x48,0x4d,0x93,0xfe,0x02,0xbf,0x53,0x34,0x05,0xf4,0xbb,0x74,0xa5,0x0e,0x55,0x85,0xfa,0x0d,0xae,0xf4,0x82,0x1f,0x03,0x01,0xd0,0x1b,0x46,0x32,0x1b,0xaa,0x31,0xe1,0xf0,0x8d,0x03,},\"\\x58\\x2a\\xda\\x13\\xd6\\x92\\x93\\xe4\\x9b\\xbd\\x46\\x10\\x32\\xdf\\xea\\x1c\\xa2\\x02\\x5b\\x52\\xe0\\x13\\xa3\\x3a\\x03\\x87\\xfc\\xfc\\x5f\\x7c\\x0b\\x8e\\xc9\\x55\\x98\\x26\\x07\\xfc\\x90\\x1e\\x1b\\x7f\\x63\\x6a\\x9d\\x37\\x1e\\x1f\\x91\\xfe\\x47\\x6b\\xdd\\x44\\x85\\x6e\\x27\\x5d\\x67\\xef\\xa1\\x42\\x38\\x16\\x43\\x54\\xc2\\x31\\x12\\x4c\\x84\\xde\\x8f\\x5b\\x89\\xd5\\xa5\\x8e\\xa6\\x74\\x4b\\x4d\\x3b\\x3d\\x79\\x06\\x90\\x52\\x33\\xcc\\xe6\\x94\\xa6\\x4d\\x69\\x6f\\x5a\\x70\\x24\\xfc\\x90\\x33\\xb1\\xce\\x39\\x08\\x99\\xa3\\xb4\\x41\\xa4\\x8e\\x53\\xc7\\xc9\\xb3\\x0b\\xa1\\x2e\\x7d\\x61\\xf3\\x5f\\x15\\xe6\\x58\\xc7\\xcc\\x44\\x07\\xe2\\xf6\\x89\\xea\\x8a\\x55\\xd0\\x1b\\xf5\\xdb\\xac\\xb1\\x19\\x54\\x75\\x4f\\x92\\x0f\\x09\\xdb\\xd4\\x84\\x09\\xbb\\xb5\"},\n{{0xd7,0x61,0xc8,0xc5,0xa9,0x60,0x1b,0x91,0x45,0xb7,0xd0,0x51,0x24,0x9b,0x00,0x41,0x07,0xe4,0x52,0xe5,0x63,0x10,0x0c,0x6c,0x78,0x80,0x38,0xc9,0xee,0x8a,0xda,0xd7,},{0xe6,0x48,0x87,0x75,0xd6,0x40,0x7e,0xfc,0x7b,0x2b,0xca,0x89,0x0a,0x7f,0xc6,0x22,0x66,0xfc,0x54,0xcd,0xac,0x89,0x33,0x43,0xb4,0xf5,0x9a,0x19,0x6d,0x94,0x88,0x98,},{0x7a,0xb7,0x8b,0x64,0xe6,0xdb,0x35,0x9a,0x2d,0xc8,0x30,0x2e,0x10,0x92,0xed,0x66,0xfa,0x73,0x6b,0x53,0x62,0x53,0xa1,0xcd,0x90,0xfd,0xb8,0xc1,0x0e,0xfd,0x78,0x30,0x02,0x25,0xe1,0x91,0x96,0x35,0x99,0xba,0x54,0x9c,0xc8,0x59,0x20,0x9d,0xf0,0xff,0x61,0xcd,0x06,0x9b,0x03,0xd2,0x54,0xe6,0xe7,0xd7,0x6c,0x79,0x84,0x40,0xf9,0x07,},\"\\x84\\xea\\xd5\\xea\\xbd\\x2f\\xd4\\xb7\\xc7\\x9a\\x9a\\x92\\x8a\\xb8\\xee\\x0a\\x16\\xa5\\xfd\\x66\\x7a\\x05\\x7f\\x8a\\x25\\x46\\x63\\xd5\\x6d\\xaa\\xe1\\x56\\xd1\\xa4\\x9a\\xff\\xb2\\x99\\x61\\x37\\xb9\\xd8\\xb3\\x40\\xe6\\x35\\x73\\x2f\\x9d\\x2b\\x4c\\x60\\x21\\x84\\x42\\x54\\x1e\\x72\\xd2\\xb0\\x0e\\x1e\\xe7\\xa7\\x3c\\x3f\\x67\\xca\\xa4\\x99\\xfa\\x9d\\x07\\x0b\\x57\\xd0\\x76\\xdc\\xde\\x96\\xb0\\x76\\x47\\x23\\xc3\\xc6\\x59\\xc7\\xa0\\x0c\\x1b\\x78\\xb1\\x5c\\xcc\\x22\\x23\\x89\\x0b\\x51\\x06\\x7f\\xc8\\x1e\\x23\\xe9\\x45\\x8a\\xb0\\x68\\x3b\\xa6\\x26\\xa5\\x3d\\x0c\\x37\\x93\\xa5\\x8a\\x98\\x57\\xbb\\x44\\xb3\\xbd\\x85\\xbb\\x6c\\xe5\\x3a\\x85\\x69\\x4e\\x7f\\x53\\xcc\\x1b\\xd4\\x6d\\x50\\xed\\xa3\\x7d\\x81\\xf5\\x38\\x1b\\x51\\x3d\\x1f\\x38\\x33\\x9d\\x29\\x1b\"},\n{{0xc5,0xe0,0xc7,0xa7,0xbb,0x8b,0x7c,0xa0,0x7b,0xf0,0xa0,0x5e,0xa6,0x7e,0xff,0x6d,0xee,0xbf,0xe3,0x71,0x4e,0xe3,0xe1,0xa2,0x27,0xf4,0xdc,0x8e,0x24,0x2a,0x2f,0xa0,},{0x51,0x35,0xef,0xcd,0x90,0x52,0xbe,0xc5,0x7a,0x44,0x31,0xca,0xab,0xe8,0x26,0x80,0xee,0xc0,0xa3,0x3a,0xfd,0x59,0xb3,0x02,0x03,0xb2,0x80,0xba,0x12,0xbe,0x48,0x5c,},{0x2e,0x7f,0xde,0xb3,0x48,0x4d,0x0a,0x5e,0x8d,0xce,0x94,0x44,0x89,0x79,0x49,0x6b,0x06,0x42,0xca,0xbc,0x37,0x33,0xa5,0x1f,0x8c,0x3c,0x5c,0x51,0xc1,0x9a,0xe3,0x19,0x01,0x8d,0xa9,0x10,0x91,0xc2,0x38,0x5f,0x2f,0x4e,0x9a,0x59,0xed,0xbc,0xa2,0xab,0xd0,0xd0,0x85,0xee,0x40,0xd3,0xf0,0xd4,0x20,0x61,0xa5,0xa9,0x83,0x2a,0x37,0x0c,},\"\\x37\\x70\\xa6\\x78\\x66\\x52\\xc4\\xb7\\x8a\\x04\\x3e\\xdc\\xe0\\x7f\\x3e\\x20\\x4d\\x81\\x99\\x7c\\x42\\xaf\\xc2\\x23\\x31\\xf7\\x5a\\x54\\x94\\xa8\\x26\\xd7\\xcb\\x69\\xab\\x43\\x14\\xa4\\x73\\x72\\x10\\x58\\xa1\\x83\\x99\\x81\\xd5\\xb7\\x02\\x2d\\x0c\\xd8\\x67\\x03\\x77\\xda\\xf3\\x32\\x04\\x76\\xd2\\x5b\\x9f\\x55\\x95\\x61\\xd6\\x6e\\xe0\\xa7\\x09\\xfe\\x17\\x36\\x1e\\x2a\\x52\\x89\\x8f\\x57\\x53\\xc4\\xfb\\x43\\xbd\\x0c\\x98\\xb3\\x68\\xf5\\x12\\xad\\xc0\\x9c\\xd9\\x27\\xc6\\x62\\x26\\x76\\x92\\x6d\\x8c\\x2d\\x91\\xa1\\x4a\\xca\\x32\\xf2\\x26\\xf7\\x00\\x36\\xc1\\xc8\\x58\\xbc\\xff\\xc2\\xb5\\x9f\\x54\\xc1\\xc3\\x7b\\xf8\\x1e\\xb5\\x2e\\xcb\\x3f\\x00\\xda\\x60\\x2c\\x94\\x36\\x1b\\x52\\xa5\\xaf\\xdd\\xbf\\xd7\\xe0\\x50\\x36\\xe3\\x77\\x50\\x30\\x50\\x33\\x3b\\xe5\\x12\"},\n{{0x11,0xbb,0x47,0x48,0xd2,0x54,0x7e,0x61,0x96,0xbe,0x82,0x3c,0x9b,0xe7,0xaa,0x18,0x15,0x0c,0x20,0x4b,0x12,0xca,0x8d,0x73,0xc1,0xbd,0x46,0xb1,0x1a,0x54,0xb4,0x75,},{0xef,0xeb,0x42,0xda,0x28,0xd7,0x64,0x96,0x64,0x03,0xdd,0x30,0x0d,0x9f,0x94,0x51,0xb2,0x58,0xab,0x1c,0x80,0xdf,0x06,0xfe,0x59,0x43,0x15,0x3f,0x53,0x01,0xcc,0xcb,},{0x44,0xc5,0x8d,0xa4,0x9d,0x23,0x65,0xd2,0x70,0x29,0xd1,0xee,0xbb,0x3b,0xeb,0xf7,0xc0,0x32,0xd8,0x58,0xaa,0x07,0xe0,0x75,0x6b,0x1c,0x26,0xa5,0x41,0x2d,0x22,0x69,0x11,0x76,0x03,0x13,0x41,0xad,0x37,0xd7,0xbb,0x78,0x43,0x28,0x9e,0xb3,0x9d,0xb4,0x91,0x58,0x4c,0x1b,0x2a,0x1d,0xa2,0xe4,0xa2,0x64,0x9c,0x22,0x93,0x82,0x66,0x06,},\"\\xf4\\xb7\\x65\\xb2\\x58\\xba\\x35\\xb4\\x27\\x52\\x5c\\x7f\\x10\\xa4\\x6f\\x0b\\xcc\\xd3\\x57\\xec\\x1a\\xd5\\x2a\\x5b\\x13\\x94\\x17\\xa9\\xd3\\x89\\x4c\\x51\\x2d\\x89\\xeb\\x88\\xe6\\x81\\xb1\\xf3\\x0a\\xac\\x4c\\x11\\x5c\\xcf\\x36\\x54\\x5e\\x83\\xf3\\x78\\x34\\xc8\\x2e\\x83\\x00\\xcc\\x1e\\xb2\\x89\\xaf\\x43\\x75\\x96\\x8c\\x29\\xc0\\xff\\xef\\xb4\\x0e\\x15\\x6c\\x20\\xc0\\x43\\x26\\x69\\xac\\x8d\\xc0\\xa8\\x3c\\x13\\xb1\\xe8\\x55\\xa8\\x4a\\xd0\\x13\\x3c\\x40\\xc8\\x2c\\x87\\xee\\x1e\\x7d\\xd4\\x08\\x4d\\x74\\x1c\\x80\\xde\\x8a\\x7a\\x9f\\x77\\x59\\xe8\\x43\\xa5\\x62\\x09\\x9c\\x4d\\x7d\\xf8\\x75\\x35\\x20\\x39\\xff\\x4d\\x38\\x24\\x65\\x13\\x86\\xc9\\x77\\x59\\xff\\x7d\\xba\\x52\\x06\\x4e\\x6d\\x31\\x12\\xe0\\x80\\x81\\x9a\\xee\\x8c\\xe7\\x23\\xa1\\xa2\\xaa\\x46\\x4d\\x8a\"},\n{{0x74,0x52,0xa0,0x01,0x56,0xd7,0x94,0xed,0xeb,0xff,0x4a,0xdb,0x1f,0x7a,0x7e,0xec,0x26,0x21,0x7f,0xef,0x67,0xc3,0xd2,0x68,0x35,0x2b,0x2b,0x54,0x60,0xa7,0xdc,0x25,},{0x5f,0x4d,0xc3,0x38,0xcf,0xbd,0x38,0x4b,0x5f,0x1c,0x14,0xc2,0x26,0x70,0x14,0x46,0xb5,0x2b,0x1e,0x3e,0x2a,0x3c,0xba,0x1a,0x40,0xee,0x28,0x25,0x08,0x0d,0x1d,0xe6,},{0xa8,0xf9,0xfa,0x24,0xa3,0xde,0xa1,0x02,0x2e,0x73,0xf0,0xd8,0x8b,0x1c,0x37,0xd0,0x6d,0x0f,0x0b,0x20,0xbb,0xff,0x0e,0xcd,0xb4,0xa4,0x0c,0x86,0xd7,0xe4,0x75,0x61,0x7c,0x03,0x57,0x0a,0x74,0x19,0xd7,0x4b,0xa0,0xf1,0x32,0x70,0x96,0xbf,0x19,0xf0,0xd0,0xcf,0x9f,0x51,0xd4,0x83,0x11,0x2f,0x26,0x92,0x23,0x78,0x68,0x2f,0x48,0x07,},\"\\x8c\\x4e\\xe2\\x86\\x76\\x56\\xe3\\x3f\\x52\\x69\\x41\\x4d\\x77\\xb4\\x2d\\x8e\\x47\\x50\\xdb\\xa9\\x3c\\x41\\x8b\\xac\\xca\\x10\\x93\\x8c\\xc3\\xb5\\x70\\xc6\\x60\\x3d\\x52\\xc2\\x34\\x44\\x88\\x60\\x7b\\x2f\\x93\\x4f\\x6d\\x26\\x9f\\xcb\\x2a\\xd9\\x66\\x21\\x9b\\x1a\\xb1\\x14\\x72\\xf4\\x2c\\x67\\x2c\\xe2\\x05\\x92\\x49\\x0e\\xc5\\xba\\xf6\\xa2\\xd2\\xfc\\x8a\\x3e\\xe3\\x53\\x74\\xb1\\x90\\x2f\\xde\\xfc\\x78\\x70\\xb1\\xb6\\x26\\xfa\\x46\\xb1\\x2b\\x6c\\xee\\x24\\x1f\\x60\\x1a\\x9b\\x3f\\xe4\\xc5\\x08\\x12\\xe5\\x73\\xe6\\x75\\x2c\\xe2\\xc7\\x64\\x4e\\x33\\x67\\xa6\\xa6\\xb7\\x77\\x58\\xd8\\xe4\\x93\\x4b\\x58\\xaf\\x23\\xab\\xae\\x8f\\xec\\xac\\x25\\xed\\xd7\\x34\\x03\\x0e\\xe7\\xcf\\x39\\x90\\x7e\\x3e\\xed\\x81\\x86\\xa1\\x9a\\x80\\x71\\x03\\xa9\\xfc\\x49\\xd3\\x8f\\x4c\\x84\\x60\"},\n{{0x88,0x0e,0xf1,0x06,0x73,0x3f,0x04,0xe7,0x61,0x95,0xeb,0xa2,0x80,0xb3,0xfa,0xdd,0xa0,0xf2,0x5d,0xcf,0x96,0xa6,0xa9,0x9c,0x8c,0xcf,0x84,0x2c,0x68,0xaf,0xda,0xe5,},{0x70,0xce,0xe3,0x3d,0x41,0xc7,0x28,0xce,0x7b,0x14,0x19,0x31,0xe6,0xe8,0x52,0x45,0x67,0xd7,0x60,0x1e,0xb7,0x9f,0x67,0xfd,0xcd,0x07,0xb9,0xd6,0x82,0xc6,0x50,0xf0,},{0xff,0x6c,0xae,0xdd,0x8a,0x46,0x8a,0xa0,0x7d,0x4c,0x6e,0x71,0x31,0xbb,0xda,0x76,0x18,0x2b,0xa9,0x58,0x64,0x93,0x76,0xe7,0x11,0xf4,0x4c,0x7b,0xba,0xcb,0xa6,0x07,0x7b,0xea,0x87,0x8b,0xa5,0x94,0x9c,0xde,0xee,0xf0,0x5c,0xfd,0x49,0x83,0xb0,0x05,0x7d,0x27,0x5e,0xa3,0xe1,0x8c,0x32,0x65,0x94,0x68,0xc3,0x0c,0x47,0xac,0x8f,0x0b,},\"\\xf4\\xf3\\x8d\\x07\\x7f\\x2b\\x03\\xda\\x82\\x1b\\xd3\\x6f\\xde\\x67\\x3d\\x66\\x6e\\x52\\xf4\\x83\\x2e\\x1c\\x0d\\xcf\\xee\\xf0\\x49\\x32\\x8a\\xcb\\x7b\\xd7\\x1a\\xd2\\xbf\\xc4\\x9c\\x12\\x35\\x16\\xe1\\x96\\xc4\\x70\\xdf\\x08\\x47\\xb3\\x84\\x8a\\x45\\xa2\\xc6\\x9b\\xea\\x03\\xe2\\xaf\\xa7\\xe5\\x82\\x05\\xb6\\x3b\\x52\\x38\\x14\\xfc\\x8e\\x24\\x2f\\x05\\x9c\\x69\\xff\\x7e\\x40\\xf9\\x7b\\xe8\\x12\\x5b\\x70\\xa5\\x4f\\xda\\xf3\\x5a\\xea\\xfa\\xc7\\x91\\x14\\xa7\\xb4\\x19\\xe6\\xbb\\x9e\\x70\\xbf\\x07\\xad\\xb5\\x59\\x81\\x96\\x00\\xdc\\x25\\xe5\\x1b\\x4b\\x70\\x0d\\x27\\xca\\x54\\x72\\xa0\\xe7\\xcb\\xbf\\xd1\\x4e\\x09\\x9f\\xaa\\x3a\\x72\\x00\\x2d\\xa5\\x38\\xcb\\xe4\\x5d\\x62\\x1e\\xf0\\xd5\\x25\\x2b\\xa2\\x9d\\x83\\xf8\\xb3\\xec\\x83\\x89\\xc9\\xce\\xb6\\xc6\\xb2\\xe8\\xd8\\xa2\\x0f\"},\n{{0xa2,0xd8,0x8f,0x37,0xec,0xc2,0xb2,0xc0,0x5d,0xd6,0xcb,0x31,0x59,0x96,0x2c,0x5f,0x64,0x6a,0x98,0x15,0xb2,0xfb,0x37,0x79,0x1f,0xc7,0xb6,0x06,0xe2,0x91,0x3e,0xd5,},{0x58,0xdd,0x67,0xd7,0xa1,0x5d,0x4c,0xa0,0x34,0x1a,0x4c,0x86,0x95,0x66,0xca,0xd8,0xc4,0xee,0x16,0xe5,0x83,0xa1,0x0b,0x48,0x24,0x17,0x3b,0x08,0x29,0x0d,0x92,0xd1,},{0xcc,0xf2,0x40,0x0c,0xd6,0x73,0xe1,0xef,0xfd,0x20,0x16,0x1d,0x7b,0x68,0xa5,0xfb,0x87,0xc1,0xe9,0x9d,0x36,0x35,0xd7,0x8c,0x2d,0xa1,0xb5,0x09,0xfa,0xc3,0x33,0x46,0xc0,0x69,0x16,0x3a,0x6c,0x46,0xc7,0x82,0x6a,0x48,0xbb,0xbd,0x03,0xb0,0x5e,0x6e,0x23,0x51,0xfa,0x62,0xbf,0x89,0xbf,0x7c,0xcf,0x9a,0x90,0x24,0xbd,0x15,0x7d,0x07,},\"\\xd1\\xb8\\x7e\\x9e\\x88\\x6d\\xfb\\xbd\\xc8\\xca\\x8a\\xb9\\x01\\x0e\\xcf\\x9b\\xba\\xf2\\x3f\\x72\\xab\\x3c\\xbe\\x76\\x9d\\xb1\\xd4\\x3c\\x2a\\x47\\x4a\\x81\\x65\\x1c\\x46\\x4e\\x9f\\xb9\\x27\\x34\\x63\\x46\\x41\\xc9\\x48\\x5a\\x02\\x39\\xb3\\x11\\x07\\x71\\xe7\\xf7\\x5e\\x05\\x25\\x2e\\x4d\\x8f\\x4c\\x0a\\xa1\\xba\\x08\\x62\\x6d\\x7e\\x96\\x31\\x7c\\x20\\xac\\xde\\x2a\\xd9\\x9b\\x23\\xbd\\xad\\xfd\\x6f\\x17\\x46\\x8e\\xb4\\x02\\xec\\x5e\\xef\\xa5\\x7b\\x47\\xca\\xf9\\x72\\xb3\\xdd\\x21\\xd8\\x9f\\x0e\\x29\\x89\\xff\\x87\\xd5\\x1e\\xd2\\xe2\\xd6\\x39\\xc1\\x64\\x4e\\x69\\x8c\\xbe\\x02\\x21\\xb8\\xe1\\x79\\xf3\\xcf\\xb0\\x4a\\x20\\xcb\\x24\\x70\\x21\\x6a\\x68\\x82\\xfb\\x4f\\xf7\\x99\\xe1\\x15\\x36\\xcf\\x64\\x21\\x9f\\x0c\\x07\\x51\\x76\\xbc\\x7c\\xf0\\xf6\\xc5\\xb7\\x92\\x5f\\xcd\\x61\\x55\"},\n{{0x42,0xaa,0xfd,0x0a,0xe2,0x6d,0xf1,0xe7,0xaa,0x02,0x76,0x86,0x0d,0x75,0x27,0x83,0xaf,0x97,0x28,0x04,0x39,0xbb,0x23,0xea,0xe4,0x6e,0x3f,0x84,0xca,0xac,0x78,0xde,},{0xda,0xa2,0x35,0x0a,0xdb,0x55,0xdb,0xa9,0xdf,0x7d,0x7a,0xf5,0x10,0x19,0x98,0xfe,0x51,0x5d,0x31,0x1c,0x3c,0xba,0x3e,0xea,0xb9,0x13,0x82,0x33,0x19,0x0c,0x3b,0x4e,},{0x11,0x61,0x43,0x65,0x0b,0x6c,0x13,0x3d,0x61,0x78,0x59,0xdb,0x24,0x29,0xc2,0x91,0x35,0x79,0x79,0x0b,0x21,0x97,0xd7,0xb7,0xb1,0xb4,0x96,0x2b,0x32,0x87,0x21,0x03,0x2c,0xee,0xca,0x58,0xb2,0xd5,0x64,0x39,0xe2,0x33,0xbb,0x84,0xdc,0x52,0x5e,0x28,0x4f,0xf8,0xdf,0x2b,0xde,0x1d,0xb4,0x98,0x6f,0xaf,0xd2,0x1b,0x3d,0x7d,0x6a,0x0a,},\"\\x72\\x13\\x1b\\x80\\xad\\x59\\x9b\\x6f\\x5f\\xf6\\x98\\x54\\x7d\\x16\\xe7\\x49\\x9d\\x71\\x27\\x5e\\x4e\\x9b\\x30\\x52\\x6a\\x5a\\xac\\x0b\\x0c\\x8b\\x14\\xfa\\x4a\\x54\\x0c\\xfb\\x11\\x45\\xfc\\x00\\x44\\x18\\xbc\\xd3\\x18\\xc1\\xa7\\x0e\\x62\\x69\\xa3\\xfb\\x69\\xba\\xed\\x86\\xf3\\x63\\xf5\\xb8\\xf9\\x7f\\x56\\x9c\\x20\\xd4\\xf4\\x99\\x0e\\x7b\\xb4\\xd0\\xc3\\x99\\x21\\x26\\x8d\\x63\\x6e\\xd0\\x55\\x4b\\xd6\\x2a\\xcf\\xca\\xcd\\x3b\\x8e\\x03\\x02\\x17\\xaa\\xfa\\xc3\\x04\\x4c\\x03\\x7e\\x0f\\x94\\xda\\x18\\xc6\\xb9\\xa0\\x93\\x2c\\x3c\\x58\\x75\\xd3\\xa9\\x3f\\xbd\\xad\\xcf\\x67\\x96\\x4e\\xec\\x9e\\xc2\\xbe\\x69\\xb4\\x8f\\x02\\x0f\\x6c\\x98\\x74\\xde\\x5f\\x8a\\x51\\x67\\xb5\\xee\\x02\\x4a\\x2c\\x2e\\xfd\\x0c\\xdc\\xd2\\xac\\xd8\\xc1\\xf7\\x87\\x81\\x41\\x41\\xe3\\x0b\\x38\\xb1\\x63\\x17\\x5b\"},\n{{0xb6,0x9c,0x33,0xb1,0x1b,0xa6,0x78,0x41,0xc3,0xd4,0xe6,0xf9,0x23,0x4e,0x35,0x37,0x0a,0x28,0xb4,0x76,0x62,0xac,0x56,0x0b,0x27,0xc0,0x78,0xb6,0x6a,0xb1,0xb0,0x21,},{0x9d,0xf6,0x8e,0x9a,0xcf,0x67,0x37,0x92,0x61,0x74,0x4d,0xb5,0xd1,0xe3,0x77,0x89,0x2f,0x2b,0x69,0x2e,0xd5,0xa3,0x8b,0x37,0x07,0x3c,0x04,0xde,0x5d,0x22,0x67,0x37,},{0x24,0x36,0x8f,0xee,0x5b,0xd8,0x48,0xb4,0xc6,0x61,0xa3,0xbe,0x4f,0x31,0x0c,0xfc,0x43,0x6e,0x79,0xec,0x4a,0x78,0x50,0x1b,0x81,0x09,0x5f,0xe5,0x16,0x14,0x23,0x1b,0x6c,0xa1,0xab,0x12,0x69,0x99,0x6a,0xd2,0xe9,0x8e,0x29,0x97,0x81,0xaf,0x8e,0x29,0x80,0x4b,0x24,0xfe,0x56,0x79,0xca,0x3b,0xa6,0x50,0xc5,0xc4,0xcc,0x58,0xce,0x01,},\"\\xf9\\xea\\x12\\x6d\\x3a\\xb2\\x19\\x61\\xaa\\x24\\x33\\x90\\x0a\\x39\\x82\\xb8\\x3e\\x0e\\xf8\\x6d\\x52\\xd1\\x34\\x40\\xaf\\xa4\\x81\\x7f\\x9b\\x82\\x2f\\xb5\\x82\\xcc\\x39\\x32\\xbf\\x45\\x0d\\x46\\x77\\xc9\\x18\\x81\\x81\\xfe\\x75\\x26\\xad\\x6f\\xe5\\xab\\xc6\\x1d\\x0a\\xe7\\x59\\xf2\\x15\\x01\\x3c\\x0b\\x2b\\x41\\x06\\x4c\\xb6\\x27\\x8b\\xa7\\xe3\\x9e\\x2f\\x4c\\x10\\xd6\\xcc\\x96\\x05\\xb3\\x86\\x9e\\x16\\x9d\\x7d\\xa4\\x2e\\x88\\xeb\\x85\\x78\\x70\\xfe\\x61\\x18\\xbb\\x02\\xbc\\x08\\xc8\\x05\\x5f\\x0c\\x18\\x9b\\x62\\xf7\\x9f\\xb1\\x46\\xb4\\xc5\\x43\\xaa\\x30\\xcc\\x0c\\xd5\\x7f\\x03\\x7e\\x9e\\xf7\\xa6\\x37\\x11\\xf6\\x6e\\x6f\\x28\\x78\\x93\\x17\\x02\\x20\\x27\\x02\\x61\\x42\\x77\\xd5\\x13\\xf0\\x85\\x0b\\x75\\x85\\x49\\x33\\x6b\\x30\\xcf\\x40\\xab\\x8b\\xd4\\x60\\xe6\\x0e\\x12\\xde\\xed\\x04\"},\n{{0x7b,0x63,0x61,0x3f,0x6d,0xae,0x01,0xcd,0xcd,0x5e,0x6b,0x37,0x68,0x69,0x71,0xcd,0x8d,0x8a,0x99,0x54,0x2f,0x63,0x29,0xa1,0x28,0x54,0xa9,0xd8,0xff,0x81,0x05,0xac,},{0x72,0xec,0x43,0xfa,0xf3,0x4d,0x87,0x30,0x17,0x7d,0x1f,0x07,0x43,0xc7,0x4c,0x20,0xbf,0x72,0xc2,0x39,0x4b,0x8a,0x7d,0x47,0x1f,0xfe,0x2a,0x04,0xab,0x00,0x81,0x1c,},{0x76,0xf5,0x0b,0x2b,0x9c,0x2a,0xd9,0x7b,0xfb,0x94,0x99,0xee,0x41,0x92,0x8a,0xc0,0x72,0xda,0x5e,0x8b,0xc7,0x1d,0x02,0x12,0x55,0x09,0x42,0x33,0x2b,0x62,0xe7,0x0c,0x8b,0xfe,0x1c,0x72,0x25,0x42,0x39,0x46,0x88,0xde,0xcd,0x91,0x7a,0xec,0x8f,0x95,0x35,0x3e,0x1d,0x72,0x62,0x4b,0x70,0xeb,0xed,0x5d,0x17,0xf6,0xc5,0x49,0x77,0x02,},\"\\x18\\x16\\x48\\x8f\\x1f\\xc8\\x3e\\x1e\\xd5\\x91\\x16\\x37\\xdd\\x42\\xba\\x20\\x77\\x65\\x7d\\xfe\\x1a\\xe4\\x22\\xad\\x0a\\xee\\x59\\xdf\\x9d\\xd5\\x6a\\x27\\x63\\xc2\\xdd\\x0e\\xf6\\x1a\\x12\\xbb\\x82\\x5b\\x0d\\xac\\x1e\\xda\\x5f\\xbb\\x69\\x1c\\x5e\\xd5\\x8f\\x3f\\xb3\\x25\\x05\\x0b\\x45\\x63\\xa4\\x04\\x20\\x99\\x98\\x2f\\xff\\xa5\\xd6\\xed\\x74\\x2d\\x95\\x82\\x3d\\xa8\\xe1\\x78\\x7c\\xf7\\x46\\xef\\x63\\xb3\\xfb\\xb0\\xe8\\x8a\\x6c\\x0b\\xea\\xe4\\xf7\\x31\\x83\\x66\\x93\\x6b\\x49\\x17\\xf5\\x07\\x33\\x60\\x68\\xb1\\x94\\x68\\x09\\x00\\xa7\\xbf\\x4a\\x6f\\xb6\\x9a\\x5c\\x38\\x7b\\x97\\xe3\\x1b\\xc7\\xf9\\xbe\\x53\\xc2\\xa8\\x9e\\x36\\x51\\xce\\x1d\\xe4\\x1b\\x10\\xe9\\x21\\xb2\\x06\\xeb\\xf3\\x2e\\x56\\x21\\xef\\x80\\x81\\x61\\x6d\\xcd\\x7a\\x20\\x59\\x43\\x7e\\xfa\\xd0\\x14\\xbb\\x8e\\x2c\\x82\\x21\"},\n{{0x35,0x58,0xd3,0xa7,0x43,0x95,0xbd,0xcb,0xa5,0x60,0xe2,0xc4,0x5a,0x91,0x96,0x0c,0xec,0x6c,0xb3,0xed,0xbc,0xd3,0x0e,0x72,0x2f,0x7f,0x05,0x52,0x10,0xf3,0x7b,0x51,},{0x53,0x4f,0x43,0xeb,0xa4,0x03,0xa8,0x4f,0x25,0x96,0x7c,0x15,0x2d,0x93,0xa0,0x17,0x5e,0xc8,0x29,0x3e,0x6f,0x43,0x75,0x31,0x9e,0xad,0xf9,0x57,0x40,0x1f,0xbb,0xd2,},{0xb3,0x65,0xb5,0x56,0x1a,0x13,0xa5,0x45,0x17,0xcf,0x90,0xd8,0x8b,0x35,0xeb,0x09,0x67,0xd6,0xd5,0x84,0x14,0xb8,0xc1,0x54,0x7e,0x69,0x31,0x59,0xe0,0x13,0x78,0x56,0x36,0x54,0xc5,0x0f,0xb4,0x23,0x23,0xf0,0x9d,0xd7,0x8f,0xfe,0x28,0x05,0x6d,0xdf,0xa5,0x4f,0xeb,0xf4,0x48,0x91,0xe8,0xa7,0x41,0xb6,0xa1,0x68,0x7d,0x72,0x86,0x05,},\"\\xbe\\x75\\x44\\x4f\\x9c\\xe6\\xbe\\x1d\\x83\\xaf\\x62\\x2a\\x8c\\x47\\x8d\\x51\\x01\\x27\\xdb\\x56\\xf1\\xde\\x6e\\xb8\\xa5\\x12\\x65\\x22\\xb0\\x9f\\xdc\\x6c\\xa0\\x86\\x2c\\xec\\x0b\\x8b\\x2a\\xaf\\xa3\\x1c\\x17\\xa2\\xcc\\x47\\x7d\\xa5\\x33\\xd2\\x76\\xa1\\xae\\x4f\\x8e\\x07\\x59\\xd6\\xaf\\xa0\\xb1\\x74\\x11\\xb5\\x17\\x0b\\x52\\xf2\\x05\\x47\\xc7\\x2f\\x3e\\x88\\xd4\\x8c\\xb4\\x56\\xfe\\x62\\x5b\\x62\\xfe\\xb0\\xf8\\x13\\x17\\xed\\xf1\\xec\\x09\\xec\\xe5\\x34\\xb9\\xf5\\x00\\xd4\\xe1\\xb1\\xbd\\xa2\\xdb\\x21\\x98\\x2a\\xa9\\x50\\x94\\x22\\x6e\\xe9\\xf5\\xb0\\xa6\\x5d\\xa8\\x3f\\x91\\x12\\x1c\\x96\\xb3\\xb4\\x01\\x0a\\xe7\\x82\\x6c\\x9e\\x80\\x63\\x6c\\xba\\x00\\xf7\\x0c\\x3c\\x8a\\x27\\x9b\\x01\\xb9\\x52\\x94\\xcb\\x85\\x0f\\x91\\x70\\x9f\\x43\\x76\\x66\\x2a\\x58\\x0b\\x15\\xac\\x29\\x81\\xaf\\xe9\\xf8\\x54\"},\n{{0xa3,0x5b,0x92,0xf2,0x44,0x06,0x3a,0x19,0xbb,0x5e,0x3e,0xd4,0xd6,0x99,0xed,0x20,0x69,0x60,0x71,0x16,0xd2,0xbd,0x08,0x11,0x3f,0x0d,0x83,0x73,0x61,0x3f,0x35,0xb7,},{0x7e,0xc9,0x36,0x01,0x86,0x4e,0xe4,0x99,0x5a,0x4f,0x7a,0xbc,0xd3,0xdf,0xc1,0x01,0xe9,0xe7,0xf3,0x69,0xe6,0x3d,0xe1,0xae,0x68,0xa0,0x7a,0xa7,0xf0,0x75,0xb3,0x29,},{0xa2,0x3d,0xbe,0x37,0x57,0xe4,0x78,0xdb,0xc8,0x4d,0x3d,0xb3,0xa9,0x33,0xb0,0x42,0x8c,0xed,0xb6,0xb0,0x1b,0x86,0xd8,0xd7,0x3f,0x39,0x59,0x87,0x8d,0xae,0x6f,0x05,0x88,0xf5,0x05,0xcd,0x4d,0x39,0xf2,0xab,0x46,0x77,0xb6,0x48,0x05,0xd6,0x29,0x65,0x2a,0x22,0x52,0x98,0x25,0xc3,0xa9,0x1d,0x04,0x37,0x49,0xfc,0x71,0xf0,0x37,0x06,},\"\\x65\\xcd\\x36\\xda\\xe0\\x16\\x8d\\x69\\x97\\x4f\\x95\\xf0\\x9d\\xd9\\xa5\\x9d\\xb7\\x99\\xf9\\x11\\xe1\\xa1\\x5b\\x85\\xa0\\x08\\x93\\xb8\\xc9\\xa3\\xd4\\x8a\\x2f\\x58\\xac\\x12\\x6b\\xfa\\xa0\\xa6\\x06\\xc0\\x5d\\x94\\x70\\x1d\\x27\\x3a\\xbf\\x7d\\x68\\x81\\x7f\\x2c\\x71\\xb1\\xc5\\x41\\x79\\x5c\\x4f\\x60\\x95\\xe2\\x6c\\x9d\\xff\\x80\\x3f\\x03\\x2f\\x75\\x66\\x3f\\xd1\\x69\\x8e\\xdd\\x97\\xff\\x3a\\x0e\\x72\\xe1\\xb7\\xc9\\x94\\x8b\\x08\\xba\\xcb\\x5f\\x7d\\xe5\\x02\\xb2\\xfe\\xa6\\x7c\\xa2\\xfe\\xf1\\x90\\xd6\\x0e\\xae\\x92\\xd1\\x51\\x58\\xda\\x44\\x4a\\x49\\xd2\\xe9\\xd5\\xa5\\x73\\xe8\\xe1\\x77\\xe8\\xbb\\xf7\\xe6\\xc4\\x9f\\x90\\x71\\x36\\xe7\\x1d\\x2a\\x66\\xcb\\x07\\x63\\x6d\\x48\\x76\\x8f\\xf4\\x17\\xc8\\xbe\\xcc\\xf4\\x32\\x31\\x81\\xfe\\xfb\\x31\\x24\\xe4\\x34\\x04\\x9e\\xa4\\x5d\\xd5\\x01\\x9e\\x40\\xb4\"},\n{{0x72,0xd4,0xa5,0x64,0xca,0x15,0x49,0x9b,0x5e,0x4e,0x75,0xd8,0xac,0x0f,0x28,0x21,0x7d,0x32,0x11,0x4a,0x0c,0x64,0x9a,0x7c,0x8e,0xaa,0xdd,0x0c,0xc7,0x8c,0x52,0x0b,},{0xc7,0x66,0xbd,0x73,0x83,0x7c,0x4f,0xaa,0x52,0x15,0x50,0x2f,0x1e,0xfc,0x90,0xc0,0x03,0xf7,0x11,0xbb,0xef,0x55,0x17,0x00,0x91,0x02,0x8a,0x34,0x49,0x34,0x08,0xa9,},{0x8f,0xc4,0xf1,0x79,0x33,0x0b,0x64,0x2d,0xd8,0x6c,0xa9,0x36,0x26,0x51,0xb8,0x3b,0x00,0x6d,0x83,0x75,0xcc,0xef,0x81,0x1d,0x3c,0x67,0x06,0xf9,0x15,0x94,0x65,0x1d,0xf2,0x76,0x99,0x53,0x72,0x30,0x46,0xcc,0xb9,0xbf,0xe6,0x6a,0x66,0x7e,0x0d,0x11,0xfc,0x3e,0xa2,0xd8,0x22,0x62,0x34,0xfd,0xd5,0x16,0x47,0x65,0x26,0x0f,0x7b,0x05,},\"\\x6c\\x7e\\x7b\\x62\\xeb\\x24\\x4a\\x45\\xd7\\x84\\x36\\xe2\\x97\\x0d\\xcd\\x6c\\x0f\\x7d\\xb8\\x22\\x97\\xa8\\x61\\x40\\xea\\x58\\xdd\\x22\\xc2\\x19\\x5a\\xdb\\xc9\\x56\\xd4\\xc4\\xec\\x05\\x35\\x4b\\x21\\xef\\xe2\\x4c\\xfc\\xfe\\x10\\xe1\\x76\\x22\\x36\\x88\\x48\\x18\\x0d\\x2c\\x46\\x80\\xcc\\x21\\x5e\\x8c\\xee\\xa6\\xcc\\xe2\\x22\\x16\\x1f\\x1e\\x09\\x22\\x39\\x25\\x3b\\x97\\x46\\xf7\\x88\\x7d\\xf2\\x42\\x5a\\xb5\\xa8\\x80\\xbd\\xba\\x98\\x15\\x3b\\xe7\\x86\\xdc\\x83\\x8c\\xbe\\xca\\x01\\x6b\\x1d\\x06\\x52\\x4b\\xd6\\xbf\\xba\\x80\\x9a\\x8b\\xb3\\x7a\\xda\\xb1\\x5d\\x42\\x41\\x5f\\x86\\xec\\x03\\x58\\x36\\x5e\\xa8\\x7b\\x81\\x50\\xb0\\x54\\x41\\xd9\\xd4\\x98\\x46\\x87\\x14\\x85\\xca\\xae\\x6d\\xe3\\x59\\x73\\x6c\\x27\\x18\\x97\\x36\\xd8\\xf1\\x76\\x5f\\x3e\\x5c\\x5f\\x6b\\x92\\x16\\x83\\x96\\x39\\x0b\\xee\\x94\\xcf\\xbd\"},\n{{0x2e,0x5a,0xaa,0xb2,0x98,0xe6,0x6c,0x2d,0xc1,0xd7,0x7e,0xa7,0x42,0x1f,0xf8,0x95,0x25,0x5f,0x9d,0x90,0x0d,0xb0,0x45,0x0d,0x63,0xf9,0xf7,0x9c,0x1a,0x70,0x13,0xcf,},{0x03,0x81,0xf3,0xf1,0x90,0x45,0x71,0x9b,0x9e,0x8c,0xeb,0x56,0x2f,0x0e,0x96,0x5d,0xc0,0x7b,0x09,0xf3,0x71,0xa9,0x63,0xa2,0x81,0xc7,0x49,0xc2,0x53,0x2f,0x65,0x4a,},{0x7c,0x74,0x30,0x30,0x5b,0x36,0x1a,0x9e,0x35,0xb2,0x78,0x0c,0x4d,0x44,0x08,0x07,0x1b,0x21,0x30,0x93,0x1d,0x39,0x83,0x0e,0xc8,0xd3,0x13,0xaa,0xfb,0xc8,0x3a,0x65,0xda,0xe1,0x9c,0xb7,0x47,0xd9,0xd1,0xc4,0xce,0x3f,0x35,0x9c,0xc8,0x24,0xea,0x8c,0x92,0xf6,0x6a,0x42,0xb8,0x61,0x4e,0x78,0x48,0xb8,0x84,0xac,0x8a,0xa4,0xae,0x02,},\"\\x3d\\xf0\\xe5\\x4c\\x71\\x1e\\x31\\x32\\xd7\\xae\\x95\\x3d\\xeb\\x7b\\x66\\x86\\x9e\\xe5\\x31\\xee\\x40\\xb6\\x3c\\xe6\\x93\\x20\\x6c\\xdb\\x2f\\x4b\\xda\\x0a\\x25\\x69\\xe9\\x13\\xac\\x3e\\x65\\x32\\xc5\\xd9\\x64\\x8e\\xfd\\x46\\x27\\x78\\x0f\\xb8\\xa3\\x1d\\x10\\x7e\\x03\\x3f\\x05\\x4d\\x19\\xed\\x8b\\x7c\\x49\\xdc\\x40\\x7d\\x2e\\x94\\x9d\\xe2\\x5f\\x99\\x30\\x72\\x21\\xd3\\x58\\x43\\xf6\\xd5\\xeb\\x7d\\xe5\\xcd\\xf4\\x1b\\x91\\xdb\\xbf\\x34\\xcb\\x6c\\x9c\\x53\\x00\\x21\\x01\\x4b\\x56\\xab\\xc4\\x4a\\xc2\\x30\\x03\\x13\\x61\\x56\\x08\\xa7\\xb4\\xa2\\x35\\xe9\\x9c\\x14\\xce\\xf8\\x05\\x08\\x87\\x03\\x22\\x09\\x48\\x8b\\x9e\\xae\\xaa\\x82\\xc0\\x94\\x05\\xfc\\x75\\xbe\\xc9\\x4d\\xd4\\x2d\\x6f\\xf1\\xb5\\x99\\xa6\\x3e\\xe5\\x74\\x2f\\x33\\x64\\x09\\x3a\\xc9\\x2c\\xab\\xab\\x30\\x35\\x82\\x2a\\xa8\\x67\\xae\\x56\\xdc\\xc9\\x9d\"},\n{{0xb6,0x36,0xa0,0x24,0x48,0x00,0x35,0x43,0xdb,0x86,0x4b,0x40,0xb5,0xd8,0xd6,0xdd,0x9a,0xd6,0x11,0x62,0x4c,0x9b,0x0f,0xc6,0x89,0x0c,0x51,0xea,0x55,0x92,0xc7,0x90,},{0x1e,0xf3,0x60,0x49,0x59,0x68,0xe5,0x6e,0x6d,0x3f,0xe7,0x40,0xb1,0xc8,0x4c,0x4e,0x44,0x90,0xed,0x68,0x2d,0xeb,0x43,0x05,0xaf,0xd5,0x96,0xef,0xb2,0x80,0x22,0x3b,},{0xd4,0xba,0x80,0x30,0x0d,0x5c,0xb5,0x13,0x53,0xc0,0x3f,0x28,0xc4,0x4f,0xd0,0xa4,0x24,0xff,0xe1,0xe4,0x0d,0x78,0xed,0x7b,0xb1,0x13,0x3e,0x8f,0xe4,0xe1,0x87,0x50,0x52,0x93,0xb2,0x0a,0x39,0x1d,0xa9,0x62,0xc6,0xa8,0xac,0x0a,0xce,0xc9,0xc6,0x72,0x26,0xaf,0x3b,0x61,0x95,0xda,0xbe,0x39,0xb3,0x66,0x22,0x94,0xda,0x3e,0x0e,0x09,},\"\\x4a\\xa8\\x5a\\xac\\x25\\x03\\x4f\\x61\\x4e\\xd4\\x4f\\x7a\\xdc\\xdb\\xee\\xec\\x25\\xfc\\xc2\\xa9\\xee\\xa3\\x2a\\xb6\\xa8\\x69\\x95\\x06\\xf7\\xa1\\xca\\xd3\\xbc\\x89\\x2e\\x9d\\xce\\x93\\x4e\\x75\\xb0\\xa8\\xcd\\x14\\x64\\x2b\\x77\\x85\\x99\\x28\\x6c\\xfd\\x8f\\x50\\xa9\\xe4\\xf2\\xed\\xf9\\xf9\\xd6\\x29\\x1a\\x2e\\x29\\x79\\xcf\\x18\\x06\\xb9\\x3e\\xd8\\xc9\\xa7\\x8f\\xae\\x19\\x9b\\x28\\x54\\xa0\\x3e\\xc4\\x06\\xab\\x3f\\x72\\x08\\x35\\xee\\x26\\x3f\\xbb\\xc9\\x1c\\xb4\\xef\\x07\\x58\\xd7\\x75\\xfc\\x78\\x4c\\x7d\\x5b\\x25\\x1a\\xc8\\x93\\x79\\x19\\xa9\\xe6\\x7b\\xe8\\x8c\\x9e\\x44\\xcf\\x2e\\xc7\\xf5\\x60\\x26\\x9a\\xa0\\xf1\\x11\\x3d\\x91\\xb8\\x44\\x01\\xdb\\x15\\xa3\\xc4\\x8c\\x7d\\xac\\xff\\x49\\x39\\xee\\x01\\xba\\xbb\\x98\\x2f\\xb9\\x56\\x25\\xc6\\xc3\\xad\\x78\\x74\\x90\\x60\\x55\\x1b\\xfd\\xe8\\xcc\\xe4\\xfb\\x8a\\x29\"},\n{{0x5c,0xa0,0x54,0x3c,0x71,0xf5,0x68,0xa0,0x0e,0xed,0xf5,0x0a,0x95,0x20,0xf4,0xc1,0x5b,0x52,0x6e,0x3f,0xb0,0xda,0x81,0x6c,0x29,0xea,0x3d,0x50,0xb2,0xf6,0x2a,0x12,},{0xd4,0xa2,0x93,0x3c,0xe1,0x94,0x54,0xe3,0x31,0xb5,0x28,0x01,0x00,0x20,0x9a,0x6c,0xe8,0xe5,0x69,0xf9,0x93,0xc2,0xac,0xab,0x51,0xdb,0xe8,0x64,0xc5,0xcb,0x25,0x63,},{0x43,0x68,0x23,0xee,0xff,0x3e,0xdc,0xe5,0xd8,0x58,0x7d,0x68,0xe5,0x47,0x3e,0xf3,0xd8,0xdc,0x94,0x65,0xb5,0x58,0xb6,0xe8,0xe7,0xcd,0x31,0x37,0xec,0xcc,0x80,0xb4,0xc4,0xe8,0x06,0xed,0xf1,0x36,0x19,0xd8,0xe7,0x17,0xe6,0x9f,0x48,0xd7,0x06,0x1b,0x68,0xde,0x02,0xc8,0x20,0x9b,0xe1,0xf7,0xac,0x26,0xba,0x8e,0xdf,0x60,0x6d,0x02,},\"\\x4e\\xf8\\x49\\x69\\x78\\xd2\\x8c\\x10\\xab\\xd5\\x4a\\x26\\x35\\x6e\\xe5\\x59\\x21\\xce\\xb3\\x50\\xdd\\x4b\\x74\\x2c\\x41\\x61\\xfb\\xeb\\xa8\\xa1\\x60\\x1f\\x8a\\xd0\\x48\\x4b\\x21\\xa8\\xcf\\x5a\\x29\\x4f\\xac\\x00\\xec\\x8a\\x6f\\x59\\xe3\\x36\\x2e\\x47\\xbf\\xae\\x1e\\x28\\xa2\\xe6\\xd0\\x17\\xc5\\xca\\xa7\\x5f\\xb0\\xf4\\x84\\x82\\x80\\x80\\x37\\xca\\x21\\x47\\x69\\x54\\xd7\\x78\\xff\\x1a\\x05\\x86\\xda\\x3e\\xf6\\x9d\\x6c\\xef\\x6d\\x2d\\x8d\\xf4\\xae\\x7a\\x85\\x44\\x2a\\x1e\\x46\\xc9\\x98\\xcf\\x40\\x7a\\x6a\\xd4\\xc5\\x46\\x3a\\x43\\xc2\\x48\\xf3\\xb6\\x93\\x7f\\xdb\\xc8\\x45\\xb6\\x0c\\x6d\\x85\\xe0\\x56\\x3c\\xc1\\x6b\\xa9\\x67\\x5d\\x36\\x4f\\x52\\x5f\\x66\\x9a\\xaa\\xc9\\x5f\\x42\\x8b\\xb5\\x82\\x05\\x09\\x9f\\x9e\\x4a\\x6d\\xbb\\xd0\\x15\\x1f\\xb6\\x5b\\xab\\xe1\\x23\\xe5\\x39\\x3a\\xd6\\x40\\x26\\x93\\x5c\\xb4\\x88\\xaa\"},\n{{0x5f,0x87,0x11,0x7d,0xa9,0xbb,0xb6,0x09,0x1c,0x94,0xda,0x6b,0x23,0x0b,0x7d,0x8f,0x6d,0xe0,0xed,0x2a,0x07,0x64,0x13,0xb9,0x2e,0xac,0xdc,0x43,0xab,0xbc,0x68,0x97,},{0xaa,0x78,0x6a,0x14,0x62,0x26,0x83,0x2a,0xa7,0x3c,0x43,0x4b,0x0e,0xdc,0x2d,0x41,0xd2,0x55,0x8f,0x82,0x0a,0xb8,0xf8,0x7e,0x09,0xe6,0xcd,0xa9,0x10,0x72,0xb9,0xb6,},{0x0f,0x19,0xe6,0xea,0x0c,0x05,0xf3,0x81,0x85,0xc0,0x1c,0x2d,0x64,0x77,0x99,0x5d,0xaf,0x50,0x65,0xba,0x9d,0x80,0x17,0x3f,0xa6,0xbb,0x23,0xa7,0x74,0xdc,0x88,0xb3,0xaa,0xe8,0x79,0xd8,0xa6,0x24,0x71,0xd2,0xd3,0x04,0xcc,0x3d,0xc6,0x62,0x78,0xa7,0xab,0xcb,0x0b,0xb0,0x77,0x1c,0xd2,0x78,0xe1,0x1e,0x7b,0x93,0x2e,0x9f,0x9b,0x0f,},\"\\x22\\x97\\xc4\\x0a\\x2e\\x83\\x65\\xba\\xe4\\xc5\\xf0\\x63\\x0c\\x50\\xb1\\x3b\\xdd\\x9a\\xd9\\x77\\x0a\\x5d\\x9a\\x94\\x51\\xd0\\x08\\x74\\xb0\\x23\\xd2\\x5e\\xcd\\x46\\x8b\\x96\\x57\\x1b\\x2f\\x16\\xdc\\xb1\\xb0\\xd3\\xd7\\x56\\xc1\\xf0\\x44\\xfc\\xdd\\xd1\\xc5\\x1f\\x27\\x72\\x7a\\x03\\x69\\xc9\\xcf\\x25\\xbd\\x6a\\xa5\\x95\\x51\\xb5\\xb0\\x7c\\xf8\\xf8\\x07\\xd9\\x2b\\x15\\x91\\x98\\x63\\x97\\x04\\x74\\x0f\\xe6\\xed\\xa0\\xf2\\x6d\\xba\\x7e\\x75\\xd4\\x53\\x0b\\x28\\x00\\xf0\\x3f\\xb6\\xaa\\x67\\x7d\\x84\\xdf\\x75\\xd6\\x8d\\x4f\\xbb\\x64\\xad\\x21\\x00\\x1e\\x3f\\xc8\\x7b\\x60\\x9b\\x9c\\x25\\x1e\\x8c\\xcb\\x12\\xbb\\xca\\x92\\x74\\x47\\xe2\\x05\\x4e\\x07\\x68\\x8e\\xb8\\xa2\\x05\\x21\\xa5\\x22\\x49\\xe7\\xb9\\x43\\xbe\\xd6\\x0e\\x6a\\x93\\xc0\\x1e\\x3e\\xb6\\x21\\xf0\\x46\\x0c\\x18\\xa6\\x90\\xb6\\xf6\\xb6\\x6e\\xdc\\x6e\\x87\\x43\\xa6\"},\n{{0xb5,0x3a,0x64,0x4c,0x92,0xba,0x2d,0xc7,0x10,0x8b,0x16,0x83,0x3f,0x09,0xad,0x59,0x17,0x84,0x64,0x37,0x22,0x5a,0x77,0x3d,0x32,0xd7,0x9c,0x97,0x73,0x3c,0x0a,0x58,},{0x51,0x58,0x18,0xc6,0x9c,0x0e,0x0a,0x17,0x06,0xb0,0x41,0x43,0x84,0x2f,0x3e,0x9e,0x27,0x14,0x48,0xfb,0xaf,0x3a,0x89,0x91,0x19,0xc3,0x2f,0x42,0x56,0x6f,0xfd,0x33,},{0x13,0xd2,0xcb,0xac,0x79,0x76,0xad,0x27,0xf0,0xbf,0x66,0x9a,0xd5,0x88,0xef,0xb2,0xc9,0x1b,0xab,0x85,0x07,0xd5,0x7f,0xb1,0x6b,0xfe,0xa9,0xca,0xff,0x2b,0x09,0x64,0xe7,0x56,0x25,0xc4,0xd8,0x08,0xd7,0xbb,0xb7,0x8c,0x5b,0x46,0x4e,0xdf,0xfe,0x49,0x49,0xec,0xfb,0xc8,0xb9,0x5f,0xf6,0xfd,0xb1,0xbd,0xca,0x27,0x42,0x06,0x81,0x00,},\"\\x13\\x03\\x6d\\xaa\\xee\\x45\\xfc\\xfd\\xe0\\xc5\\x3e\\x06\\xd0\\x5a\\xa9\\xc0\\x1e\\xa9\\x4a\\x67\\xe8\\x6c\\x6c\\x53\\x8c\\xcb\\x28\\x3b\\x36\\x8d\\xaf\\x70\\x78\\xd3\\xfb\\xab\\x58\\x0c\\x76\\xec\\xf8\\x2b\\x4e\\x96\\x60\\xf0\\x68\\xdc\\xbb\\x50\\x0b\\x80\\x59\\x50\\x17\\xc5\\xbe\\x3c\\x44\\x8f\\xbd\\x8a\\x17\\xd9\\x7c\\x56\\x43\\x19\\x78\\x90\\xe1\\x67\\xb3\\x53\\x45\\xbf\\x65\\xe7\\x5b\\x82\\xc8\\xd6\\x52\\x29\\xf2\\xf6\\x0a\\xae\\x27\\x72\\x58\\x1b\\xc9\\x9c\\x49\\xd4\\x16\\xbc\\x3d\\x78\\x74\\x6e\\xf8\\x30\\xf1\\xaf\\x94\\x4f\\x4a\\x67\\x15\\xab\\x4f\\xfb\\x01\\x59\\x1b\\xac\\x28\\x57\\xf1\\xa9\\xc9\\xd1\\x70\\x08\\x88\\x78\\x00\\x06\\xa3\\x16\\x07\\x33\\x8f\\x7a\\xf7\\xbe\\xdf\\x6e\\xfe\\x0b\\x57\\x29\\x9a\\xc9\\x15\\x52\\x6f\\xe5\\xe1\\xe1\\x01\\x29\\x87\\x08\\xc6\\xe6\\x1b\\x84\\x22\\x0a\\xfe\\x95\\xb5\\x3f\\x89\\x59\\x87\\x45\\x61\\x52\"},\n{{0xd2,0x7c,0x9e,0xaf,0xcf,0x88,0x15,0x19,0x90,0xbb,0x5b,0x2f,0xa8,0x44,0x3e,0x70,0x9b,0x5f,0xd8,0xd7,0x8d,0x23,0x38,0x03,0x32,0x2d,0xc8,0x6d,0x93,0xd9,0x32,0x95,},{0x08,0xe0,0xef,0xf5,0x29,0x77,0x67,0x14,0x68,0x61,0x96,0xd8,0x17,0xfd,0xf7,0x1e,0xb5,0xb6,0xe8,0x32,0x65,0x16,0xef,0x48,0x9b,0xfe,0x18,0x6a,0xc5,0xc5,0xbf,0x6d,},{0xc2,0x54,0xe3,0x71,0x44,0x56,0x33,0x13,0x74,0x42,0xee,0xfe,0x40,0xad,0x4a,0x82,0xe6,0x9b,0x1e,0xbf,0x48,0xa6,0x85,0xa2,0xbc,0x6f,0xfb,0xac,0x12,0x6d,0x22,0x84,0x87,0xb2,0xe3,0x53,0x7c,0x97,0xef,0x74,0x10,0x34,0x20,0x91,0x96,0x2e,0x50,0xc0,0xcb,0x85,0xde,0x7b,0x39,0xce,0xb4,0x1a,0xc4,0x07,0x8d,0x40,0xf3,0x40,0x71,0x06,},\"\\x77\\xc3\\x5b\\xda\\x32\\xa5\\x96\\x7d\\x8b\\x30\\x2f\\xa7\\xa4\\x75\\x83\\xce\\xab\\x89\\xc9\\xa6\\x09\\xa6\\x67\\xb7\\x53\\x15\\x5f\\xa6\\x99\\x6f\\x86\\x31\\xd0\\xeb\\xed\\xfe\\x0a\\xc3\\x64\\xc7\\x7e\\x85\\xba\\x37\\x31\\x1f\\x0d\\xe5\\x7a\\x0d\\xc2\\xc1\\xe9\\xe4\\x00\\xd5\\x8b\\x42\\x4a\\x32\\x2e\\x1d\\x57\\x71\\xe0\\xa9\\xfd\\x95\\x02\\xad\\x02\\x32\\xce\\x54\\x4f\\x07\\xd8\\xc6\\x6e\\x7c\\x31\\x47\\xf8\\x60\\x7a\\xc6\\x18\\x9b\\xb6\\x90\\x66\\xf2\\xfa\\xd6\\x31\\x18\\x5f\\x45\\x7f\\x46\\x7e\\xba\\x33\\x22\\x8e\\xcc\\x40\\xe8\\x94\\xa7\\x7b\\x57\\x16\\x98\\xa9\\xbf\\xac\\x84\\x1a\\x54\\xea\\xc5\\x21\\x9d\\xa9\\x9c\\x6a\\x91\\x25\\xc4\\x69\\xa2\\x2f\\xe8\\x1f\\x3b\\x95\\x14\\x33\\x89\\x6f\\x19\\xce\\x39\\xb3\\x73\\xfd\\x7e\\x5c\\x7b\\x65\\x0a\\x5e\\xf2\\x36\\x5a\\xe7\\x51\\x0b\\x0d\\xa5\\xe4\\x9d\\x7c\\x07\\x07\\x3c\\xf1\\x66\\xa9\\x83\\x87\\xe8\"},\n{{0x70,0x21,0x3d,0x3a,0x79,0xc6,0x5d,0x6d,0xbb,0xa5,0x42,0xa3,0x67,0x96,0x35,0x00,0x3a,0x68,0x2a,0xf5,0xfa,0x58,0xde,0x6b,0x0d,0x65,0xbf,0xa2,0x41,0x84,0x90,0x1c,},{0x44,0x02,0xfb,0x92,0xcc,0x12,0x49,0xdd,0x1a,0xe1,0x69,0x0f,0x03,0xb3,0xec,0x4f,0x1e,0x9b,0xda,0xb0,0xde,0x5b,0xfd,0x28,0x9f,0x10,0x29,0x68,0x30,0xfd,0x40,0x3e,},{0x5b,0x6c,0xe2,0x77,0x4d,0x40,0x0e,0xce,0xa8,0xa8,0x08,0xf5,0xfd,0x0a,0x79,0x7f,0xfc,0x61,0x16,0x75,0x23,0x76,0xcd,0x7b,0xfa,0x3b,0x2c,0xca,0x3a,0x84,0xd5,0x59,0x3f,0x5c,0x03,0xad,0x3e,0xec,0x1d,0x89,0x53,0x22,0x75,0xc4,0x7b,0x7c,0xe2,0xa0,0xe9,0xc5,0x9c,0xc4,0x02,0x8a,0x8a,0x65,0xe5,0xbb,0x90,0x97,0xea,0x71,0xc2,0x08,},\"\\xcd\\x6e\\x1c\\xd9\\xc9\\x0f\\x56\\x6d\\xe0\\x43\\xd7\\x5d\\x72\\x44\\xec\\xfd\\xb3\\x8e\\x8b\\xde\\x2f\\x9a\\x6c\\xd5\\xa4\\xfd\\xac\\x72\\xb5\\xed\\xe6\\xaf\\x62\\xd9\\x81\\x91\\x8c\\x5e\\x61\\x0a\\x38\\x78\\x92\\x74\\xfa\\x10\\xe5\\x27\\xf8\\x5f\\xad\\x20\\x9b\\x76\\xca\\x1c\\x28\\x1a\\xd5\\x89\\x0f\\x9c\\x96\\xd3\\x5d\\xe5\\x22\\xf1\\xdd\\xcc\\xb5\\x39\\xb8\\x79\\x8a\\x00\\x67\\xac\\xdd\\x45\\xb6\\xe3\\x44\\xa5\\xd9\\xa9\\x77\\x31\\xf5\\x45\\xff\\xa4\\xb1\\x7b\\x87\\x5c\\x67\\xb4\\x8e\\x9d\\x4c\\x4b\\xa7\\x2c\\x98\\xa4\\x50\\x55\\x83\\xfd\\xbf\\x1e\\x12\\xf2\\x2b\\x5a\\x7a\\x49\\x47\\x46\\xcc\\x9b\\x6c\\x1b\\x57\\x19\\x06\\xc6\\x7f\\xcc\\x88\\x3a\\x9c\\x15\\xa3\\x80\\x68\\x75\\xb6\\x59\\xe5\\x81\\x6b\\x42\\x76\\xc3\\x19\\x0e\\x25\\xcc\\x1a\\xc3\\xde\\x47\\xbf\\x99\\xc4\\x99\\x65\\x38\\x8f\\x54\\xf3\\xef\\x8e\\xb5\\x69\\x90\\x6c\\x60\\x08\\xe5\\xfb\\xbd\"},\n{{0x5d,0x54,0x0b,0x3b,0x14,0xf0,0xc0,0x17,0x5c,0x04,0x7e,0xaf,0x02,0x6c,0x90,0x70,0x65,0x9e,0xf1,0x3e,0x9d,0x28,0xe0,0xc5,0xc5,0x16,0xa4,0x28,0x26,0x9b,0x14,0xeb,},{0x1d,0x2d,0x4d,0x55,0x1a,0x57,0xc6,0xfb,0x2b,0x04,0x18,0x10,0x49,0xd4,0x03,0x9d,0x57,0x5c,0xf8,0x0c,0x0b,0xc6,0xec,0x70,0x33,0x06,0x7f,0x27,0x30,0x93,0x44,0xde,},{0x32,0x52,0x7d,0xa7,0x55,0x31,0x28,0x89,0x93,0x5d,0xd5,0xee,0x91,0xb1,0xbb,0x11,0x7a,0x5d,0x37,0x7d,0xd2,0x3e,0xf5,0xb7,0xe1,0x5b,0xaf,0xfa,0xe9,0xa5,0x43,0x91,0xa3,0xfd,0x23,0x4b,0xdc,0xe0,0x73,0xe0,0x98,0xc5,0x8d,0x05,0xbf,0x19,0x5b,0x4c,0x3c,0xc6,0x39,0x72,0x38,0x3b,0xa4,0xb5,0x10,0x72,0x97,0x1a,0xeb,0xcb,0x62,0x0d,},\"\\xe4\\xc9\\xe8\\x70\\x68\\x98\\xca\\xd4\\xac\\x68\\xd7\\x3c\\x13\\x0e\\xfa\\x04\\xa5\\x4f\\x8c\\xa2\\x59\\x19\\xea\\x6b\\xfa\\xa5\\x4c\\x8c\\x72\\x0c\\xed\\x85\\x4c\\x5e\\x95\\x09\\x10\\x2c\\x7b\\x88\\x5a\\xed\\xdf\\xfb\\xd1\\xb7\\xf2\\xc5\\x92\\x25\\x83\\x67\\x7a\\xc9\\xee\\xa9\\xa1\\x08\\xc7\\xe8\\x3e\\x88\\x71\\xae\\xd5\\xa0\\x84\\xf5\\x44\\x0b\\x0f\\x39\\x1a\\xd7\\xff\\xc6\\xba\\xb4\\x57\\x4a\\xf1\\xb9\\x67\\x70\\xf4\\x37\\x0e\\x8e\\x98\\x8e\\x85\\xec\\xb1\\xa8\\xd6\\x03\\x4f\\xc3\\xd7\\xf4\\x9f\\x74\\x22\\x02\\x3b\\x9d\\xab\\x5d\\x0c\\x16\\xbe\\xab\\x5f\\x5d\\x37\\xb0\\xa4\\xd7\\xde\\x19\\x7a\\xd8\\x7c\\xd4\\xff\\x8c\\xe7\\x8e\\xb1\\x2e\\x1d\\xaf\\x73\\x9d\\x8b\\x47\\xab\\x38\\x0a\\xbe\\x90\\x93\\x35\\x6d\\xb5\\xb5\\x97\\x17\\x75\\x1a\\x49\\xe1\\x94\\x84\\x72\\xfd\\xac\\xc2\\x59\\xff\\xff\\xc8\\xc1\\xdb\\xae\\x59\\x26\\x07\\xd4\\xec\\x71\\xcc\\x6a\\x8f\\x6b\"},\n{{0xca,0x41,0x76,0x9c,0xaf,0x17,0x17,0xb4,0xe4,0x5c,0x93,0xc1,0x21,0xdc,0x82,0xa5,0x34,0xfb,0xc6,0xec,0x09,0x86,0x66,0x2c,0x32,0x22,0xd7,0x14,0x92,0xbd,0x11,0x76,},{0xaf,0x3f,0x89,0xf6,0x18,0x7d,0xbc,0xf9,0x21,0x77,0x50,0xc6,0x7e,0xf8,0x9e,0xd4,0x7b,0x03,0x9f,0x9e,0xb0,0x62,0xff,0xec,0x9d,0xf6,0x4a,0xb5,0x2b,0x0b,0x45,0xcb,},{0x5c,0xda,0x87,0x2f,0x7e,0xd6,0xd7,0xc9,0x02,0x18,0xac,0x10,0xbe,0xe8,0xe2,0x14,0xf3,0xb3,0x4d,0x15,0xd2,0x5c,0x39,0x25,0x5e,0xc9,0xe6,0xb0,0x17,0x7a,0xa3,0xcb,0x73,0x68,0xd1,0x1c,0xb8,0xed,0x6f,0xf5,0xcf,0x0c,0x04,0x28,0x1d,0x06,0xbc,0x42,0x72,0xb8,0xbc,0x09,0xc2,0x3f,0x6f,0x4c,0xd5,0xa8,0x10,0xdd,0xc7,0xb9,0xc1,0x03,},\"\\x9d\\xe8\\x47\\x6c\\x58\\x13\\x84\\x8a\\xb1\\x45\\x15\\x37\\x84\\x1c\\xc1\\x78\\x00\\x21\\x81\\xa2\\x18\\x2a\\xf3\\x05\\xb1\\x2e\\x5f\\x7c\\x3b\\x1d\\x56\\xb2\\x2c\\xf4\\x6a\\xe6\\x27\\x6d\\x18\\x26\\xec\\x0a\\x8c\\x9a\\x7d\\x9f\\x68\\x08\\x3b\\x72\\x25\\xbb\\xfa\\xef\\xce\\x82\\xb3\\xb6\\x45\\x94\\x05\\x2a\\x77\\x00\\xf3\\x09\\x23\\x3a\\x79\\xff\\xfd\\xfc\\xcc\\x5c\\x21\\x40\\x0c\\x91\\xcc\\x0e\\x41\\x8d\\x51\\x41\\xd4\\x86\\xb5\\x21\\x99\\x01\\xd6\\xdd\\x24\\x47\\xc1\\xf7\\xb7\\xcf\\x5a\\x08\\x79\\xe7\\x0e\\x1d\\xd6\\x58\\xd0\\xf2\\xec\\xf3\\x1e\\xbe\\xee\\x11\\xa5\\xc7\\x44\\x40\\xc6\\x3b\\x9d\\x8b\\x45\\x31\\x8c\\x34\\x65\\xd7\\xff\\x03\\x36\\x5e\\xdd\\x03\\x85\\xed\\xf8\\x0d\\x4f\\xde\\xd5\\x1f\\x0f\\x75\\x33\\xee\\x40\\x99\\xf1\\x9e\\x93\\xbc\\x9d\\x08\\xda\\xdc\\xd1\\x34\\x85\\xdb\\x23\\x95\\x22\\xff\\xc8\\x1e\\x2c\\x05\\x1f\\x87\\x96\\xd6\\x2e\\x97\\x9f\\xcf\"},\n{{0xfe,0xdd,0x63,0xff,0xd4,0xcf,0xbf,0x61,0x88,0x94,0x96,0x2e,0x12,0x1a,0x90,0x25,0xee,0xa3,0x18,0xa8,0x0a,0x1a,0xdf,0x16,0x9d,0x64,0x90,0x44,0x5d,0x2e,0x02,0xa0,},{0x54,0x2f,0x22,0x44,0xbd,0xb7,0xd8,0x4b,0x87,0xe6,0x28,0xa8,0xe6,0xa1,0x2f,0x17,0xbf,0x74,0xa9,0xa6,0xd0,0xea,0x46,0xc5,0x95,0xdb,0xfd,0xc6,0x80,0xc0,0x4b,0x26,},{0xed,0x59,0xd9,0xe2,0x3d,0xec,0x34,0x94,0xb0,0xfb,0xc5,0xd1,0x0c,0xd0,0x2b,0xab,0x86,0xb3,0xeb,0x35,0xab,0xbf,0x9e,0x4d,0x4a,0x92,0x64,0x79,0xf1,0x34,0x58,0x3a,0x44,0xce,0x72,0xdc,0x41,0x22,0xac,0xa3,0x77,0xa4,0x07,0x2b,0x71,0x56,0x46,0x2b,0x74,0xe8,0xdf,0x46,0xb6,0x86,0x69,0x86,0x36,0x83,0x6e,0xf2,0x03,0x17,0x9c,0x07,},\"\\x2e\\x2a\\xe5\\x84\\x64\\x1b\\xe0\\x3d\\xd4\\x8f\\x9c\\x61\\x80\\x77\\xae\\xaa\\x18\\x21\\x2a\\x42\\x41\\xf0\\xc0\\x19\\x4e\\xd2\\x3e\\x37\\x0d\\x74\\x1a\\x3a\\xe1\\x1a\\x5f\\xec\\x3b\\x04\\x0c\\x16\\xea\\xfa\\x4a\\xc8\\xd1\\x8a\\xba\\xa7\\xce\\x8f\\x28\\x69\\x67\\x33\\x71\\x89\\xf0\\x49\\x5f\\xfd\\xd6\\x19\\x95\\xcd\\xe3\\x1d\\xd8\\xdf\\xc3\\xdf\\x57\\x00\\xb5\\x7a\\x7a\\x29\\x98\\x0e\\x9c\\x82\\x3f\\xee\\x85\\xd6\\x14\\x51\\x17\\x67\\x29\\xe7\\x27\\x87\\xc6\\x10\\x9b\\x47\\x35\\x9b\\x93\\xdf\\xd6\\x2e\\x1e\\x5a\\x2d\\x64\\x2c\\x05\\x72\\x42\\xda\\xe5\\x00\\xa9\\x4c\\xa1\\xa9\\x3b\\xc5\\x7b\\xe1\\xad\\xe7\\x6f\\xe4\\x50\\x1c\\x0f\\x63\\x77\\xed\\x0e\\x92\\x46\\x17\\x9a\\xec\\xdd\\x99\\x46\\xb6\\x71\\xe8\\x19\\x0e\\x1e\\xd2\\x3f\\x96\\x6e\\x96\\x40\\x9b\\x94\\x82\\x22\\xd8\\xea\\x58\\x39\\xde\\x90\\x4f\\xc5\\x13\\x48\\x07\\x3b\\x8f\\x40\\xed\\xbd\\x9b\\x4a\\x4b\\x22\\x75\"},\n{{0x38,0xf2,0x18,0x4e,0xaa,0x55,0x36,0x56,0xee,0x29,0x02,0x70,0x6b,0xce,0xc4,0xac,0xb5,0xaf,0x25,0x15,0x7c,0xa0,0xf6,0xa2,0xd4,0x8d,0xe8,0x52,0x85,0xfa,0x3b,0xc0,},{0x7f,0xf0,0x3f,0xb4,0xc8,0x2e,0x9c,0x15,0xd6,0x59,0xdf,0x42,0x4b,0x3e,0x73,0xed,0x1d,0x78,0x00,0x6f,0x3e,0x0b,0x79,0xeb,0x64,0xd9,0x8c,0x13,0xae,0xc6,0xba,0x37,},{0x4a,0x64,0x13,0xc2,0xc8,0x7f,0x2b,0x38,0x56,0xa8,0xde,0xcb,0xce,0x49,0x3a,0xde,0xae,0x0c,0x69,0xc9,0x41,0x34,0x70,0x7f,0xb0,0xf1,0x8f,0x30,0x49,0xfd,0x3e,0x3d,0x05,0x1a,0xbd,0xb9,0xd4,0xbe,0xe2,0x53,0xc6,0x10,0x7c,0x02,0xd5,0x7a,0xd7,0xcc,0x9f,0x31,0x01,0xdb,0x66,0x0a,0xfa,0xc2,0xb7,0x98,0x19,0x38,0xe9,0x56,0x4f,0x01,},\"\\xc2\\xdf\\x77\\xc9\\xe4\\x79\\xf6\\x19\\x83\\xb6\\xc7\\x48\\x3e\\xf9\\x3f\\xb8\\x5a\\x10\\x3b\\x21\\x39\\x23\\x92\\x65\\x23\\x06\\x5e\\xbf\\xf2\\x25\\x7e\\x85\\x42\\x7e\\x05\\xcd\\xc2\\x75\\x82\\xef\\x6c\\x16\\xbe\\x35\\x3a\\x3b\\x25\\x03\\x72\\xd6\\x37\\x0e\\xec\\xb6\\xc8\\x96\\x29\\x17\\xeb\\x65\\x6f\\x26\\x41\\x69\\x01\\x89\\xd1\\x72\\xa1\\x11\\x05\\x15\\x57\\xab\\xc2\\x49\\x4e\\x32\\xca\\xb6\\x5e\\xd0\\x63\\x3a\\xff\\xe9\\x24\\x08\\xb5\\x5c\\x4e\\xd8\\xaf\\x65\\xe2\\xc5\\xe7\\xaa\\xb8\\x87\\xa3\\xcc\\x8d\\x28\\xc5\\x2e\\x9e\\x13\\x36\\xd0\\xb7\\xbb\\x3f\\xe2\\xcd\\x84\\x3e\\x7f\\xa1\\x68\\x03\\x42\\xf8\\xa4\\xaa\\xfa\\x02\\xc4\\xab\\x25\\x2f\\x08\\xc3\\xd4\\x6d\\x5f\\x00\\xfd\\x01\\x48\\x42\\x63\\xee\\x63\\x52\\x84\\xf6\\xdb\\x26\\xd6\\x29\\x8d\\xe5\\xb0\\xdd\\x23\\x8d\\xa4\\x0a\\x8d\\x2a\\x93\\x37\\x6d\\xa0\\x30\\x27\\x83\\xa0\\xe3\\xbe\\x23\\xd9\\xe7\\xf9\\x90\\xd2\\x5b\"},\n{{0x8b,0xfc,0xa4,0x84,0x62,0xd2,0x53,0x6f,0x74,0xb8,0x4f,0x6a,0xf5,0x9f,0x5d,0x85,0x82,0xff,0x8f,0x7e,0xc2,0x87,0x45,0xd6,0x72,0xe7,0x2e,0xb7,0x2e,0x79,0xd3,0xe9,},{0x9d,0x10,0xd2,0x75,0xc3,0xd3,0xfe,0x45,0x9f,0x7f,0xe2,0x90,0x1b,0xce,0x38,0x91,0x91,0xcc,0x84,0x83,0xc0,0xf5,0x11,0x40,0xd9,0xc6,0x2b,0x08,0xfa,0xde,0x81,0xbb,},{0x44,0xd7,0x7e,0x43,0x9e,0xf6,0xca,0x5e,0xb9,0x40,0xc6,0x0f,0xf8,0x73,0x2d,0xdc,0x16,0x26,0x9e,0xa0,0x23,0xbb,0x26,0x13,0xbd,0x44,0x7e,0xba,0x7f,0xd6,0x98,0x51,0x22,0x6c,0x48,0x19,0xce,0x8d,0x44,0x98,0x5a,0x49,0xf3,0xf4,0x1a,0xc7,0xaf,0x33,0xc4,0x7f,0xfe,0x5f,0x89,0x30,0x4a,0x32,0x56,0xe4,0x45,0xf8,0xd6,0x86,0xe3,0x07,},\"\\x81\\xee\\x4c\\xb9\\xc4\\x5d\\xa6\\x91\\xda\\xcd\\x7d\\xd0\\x9a\\xff\\x59\\x73\\x72\\x67\\xbb\\x55\\xc3\\xad\\xe1\\xba\\x32\\xc1\\x7b\\x7d\\x0d\\x2d\\x0c\\x60\\x79\\xc3\\x9d\\x5f\\xd5\\xb2\\x9b\\xa5\\xf9\\xc1\\x76\\x20\\x97\\x70\\x98\\x43\\xee\\xe5\\x61\\x2b\\xd2\\x0b\\xc8\\x18\\x5b\\xf6\\x4d\\x5c\\x93\\x41\\x84\\xe1\\x36\\x24\\xe6\\xf8\\x77\\xa2\\xa5\\xdd\\xa1\\x5c\\x0d\\xf6\\x2a\\xfb\\xb9\\x70\\x57\\xcc\\x91\\xca\\xc9\\xa1\\x84\\x06\\xa0\\xe0\\x10\\x9c\\xc3\\x9b\\x2e\\x3f\\x81\\x2e\\x22\\x7a\\x40\\x62\\xd5\\xef\\x81\\xc9\\x2c\\x22\\xa7\\xdc\\x79\\x7c\\x84\\x5d\\x71\\xeb\\x6e\\xa9\\xe4\\x2e\\xc8\\x41\\x7f\\xba\\x90\\xa9\\x6d\\x2b\\xb1\\x43\\x94\\x18\\x33\\x0b\\x4b\\xb2\\xf9\\x9c\\x6d\\x63\\xd3\\x04\\xa0\\xe5\\x06\\xdc\\xa9\\x65\\x3e\\x5d\\xe0\\xdd\\x56\\xe3\\x09\\xdb\\x1a\\x76\\xa0\\xfa\\xab\\xab\\x16\\x37\\x74\\xf0\\x00\\x08\\x8c\\xef\\x3d\\x1b\\x7a\\x6c\\xf6\\x61\\xd2\\xe1\\xd9\"},\n{{0xd7,0x48,0x0d,0x42,0x72,0xbc,0xb1,0x55,0x7b,0x1b,0xbe,0xe0,0x49,0x15,0xc1,0x26,0xa5,0x2c,0xa6,0xd6,0xa8,0xbb,0x53,0x14,0xa0,0xe1,0xa5,0x2b,0x59,0xbf,0xc9,0x9c,},{0x99,0xc8,0x39,0xd3,0x6d,0x8f,0x5b,0x86,0x52,0x61,0x8e,0xd7,0xb0,0xfe,0x9e,0xc3,0xd9,0x4e,0xff,0xf4,0xc4,0x53,0xc5,0x40,0x63,0x14,0x76,0xa5,0x97,0x9b,0xbb,0xe0,},{0xe0,0x4d,0xc8,0x44,0x2d,0x35,0x21,0x73,0xe9,0x31,0x81,0x8e,0x29,0x08,0x58,0xde,0x85,0x68,0x8a,0x46,0x49,0xea,0x3e,0x3c,0x3a,0xe7,0x4e,0xda,0xa5,0x4a,0xd0,0x1b,0x64,0x62,0x2a,0xd8,0xa0,0x90,0xb6,0xad,0x60,0xad,0xfd,0x01,0x88,0x18,0x82,0x82,0x8d,0x39,0x07,0x8b,0xb5,0xb2,0x71,0x4f,0xd3,0xea,0x83,0x97,0xa3,0x42,0xfd,0x04,},\"\\x61\\x5c\\xc1\\x9f\\x94\\x20\\x17\\x36\\x5b\\xa8\\xbf\\xa2\\x56\\xce\\xcc\\xc8\\x5e\\xe2\\x89\\xa1\\xc3\\x4b\\xb1\\x44\\x2a\\xcc\\x07\\x16\\xc7\\xfc\\x2c\\xae\\xb7\\x6a\\x9d\\xe1\\x9a\\xde\\xc1\\x06\\x37\\x1e\\x47\\xa3\\x0d\\x2e\\x12\\x39\\xce\\x1f\\x7d\\xca\\x25\\x52\\x6d\\x60\\x4b\\xdd\\x64\\x76\\x59\\xd9\\x42\\xbc\\xba\\xc3\\x68\\x91\\x13\\x49\\xc3\\xb9\\x46\\xa9\\x7d\\xa1\\x0a\\x42\\xdb\\xcf\\x3c\\x73\\x41\\x6d\\x2e\\x6b\\xa2\\x2b\\xd2\\x9d\\x9f\\x70\\x56\\x72\\xe9\\xe3\\x38\\x94\\x4c\\xef\\x01\\xad\\x21\\xf0\\x09\\x74\\x2e\\x07\\xbc\\xd8\\x88\\xca\\x31\\xe1\\xee\\x95\\x3e\\x8c\\x1b\\x1f\\xd9\\x54\\xb7\\xdc\\xf1\\xa0\\xb1\\xd5\\xa0\\x69\\x06\\x5a\\x66\\xcb\\x72\\x1a\\xdc\\x02\\x0f\\x4e\\xfe\\x1a\\xbd\\xd1\\x67\\x42\\x74\\x69\\x39\\x28\\x57\\x80\\xd7\\x53\\x13\\x7a\\xe0\\x14\\x0b\\xb4\\x10\\xfb\\x6c\\xe3\\x36\\x76\\xc2\\x7a\\xee\\xc5\\x93\\xa8\\x8c\\xbc\\x73\\xaf\\xd9\\xf4\\x05\\x11\"},\n{{0x3c,0x2d,0x36,0x50,0x73,0x5b,0x41,0xef,0x90,0x06,0xbb,0x45,0xe4,0xbe,0x2e,0x0a,0xa5,0xcd,0xe8,0x51,0xae,0xac,0x42,0x1e,0xe9,0xc1,0xb4,0x92,0xd8,0x7a,0xa1,0x8a,},{0x3e,0x46,0xdd,0xce,0x29,0x88,0x44,0xfc,0xaf,0xa0,0x0a,0x1b,0x47,0xea,0xf3,0xde,0x70,0x59,0x6d,0xf1,0xbb,0xee,0x3c,0x80,0x9d,0x1b,0xe7,0xdd,0x94,0x08,0x0e,0x34,},{0x3f,0x2a,0xf0,0x1a,0xd5,0x37,0x7a,0xc3,0x90,0x40,0xd4,0x1a,0x41,0xe3,0x6e,0x7b,0x93,0xfa,0x72,0x35,0xb8,0x41,0x79,0x1f,0x43,0x2e,0xcd,0x7f,0x91,0xa3,0xb2,0x1a,0xb7,0x19,0x6c,0x88,0x3a,0xd5,0xa7,0xdb,0x44,0x6f,0x6c,0x06,0x67,0x24,0x60,0xf3,0xf6,0x3e,0xf8,0x63,0xd9,0x43,0x2b,0xe9,0xca,0xea,0xbb,0x79,0xe8,0x7e,0x22,0x08,},\"\\x14\\x25\\xd8\\xd2\\x18\\xda\\x1a\\x10\\xa8\\x0b\\x6a\\x9c\\x3c\\x27\\x50\\xef\\xe4\\x16\\x57\\x98\\x4a\\xbd\\x51\\x00\\xf4\\x51\\xba\\x94\\x9d\\xb0\\x10\\x46\\xb7\\x12\\x6b\\xe8\\x40\\x23\\x34\\xed\\x57\\x52\\x8b\\xac\\x05\\x62\\x25\\x53\\xa8\\x6b\\x72\\x67\\x22\\x69\\x5a\\x8f\\xb3\\x31\\xd8\\x56\\x54\\x17\\xc4\\xff\\x0f\\x25\\x1a\\x32\\x0a\\xd0\\x6d\\xed\\xbb\\x75\\x0d\\xef\\x35\\xd5\\x21\\xc3\\xc4\\xcd\\x57\\x1a\\x45\\xad\\xa8\\x45\\x06\\x53\\xd5\\xe8\\x1f\\xe0\\xbe\\xb5\\x3a\\xaa\\xe7\\x87\\xb3\\xeb\\x65\\x3c\\x23\\x81\\xed\\x55\\xaa\\xf2\\x59\\x0e\\xe5\\xed\\x8b\\x66\\x26\\xf1\\xc4\\xb0\\x43\\x0a\\x54\\xf3\\x96\\x58\\x62\\x4e\\x66\\x35\\xfe\\xfc\\x98\\xfe\\xe8\\xfc\\x3e\\x1c\\xc7\\xff\\x3d\\xd4\\x20\\xde\\x9d\\xa1\\x1a\\x62\\xfc\\xae\\x0e\\x0c\\xb4\\x54\\xfc\\x6f\\x7d\\xf0\\x39\\x54\\x29\\x1d\\x26\\x20\\x2f\\x1b\\x18\\x8b\\x65\\x7b\\x3b\\xae\\x07\\x38\\x94\\x49\\xb7\\x5e\\x67\\x42\\x2f\"},\n{{0x74,0x96,0x59,0x96,0x26,0x8c,0xdc,0x4c,0x09,0x22,0x0b,0xd3,0x1c,0xe0,0x7b,0x21,0x7a,0x03,0x82,0x6e,0xe9,0x81,0xfa,0x89,0xf3,0xa2,0x35,0x9c,0xed,0x09,0x5e,0xf1,},{0x40,0x96,0xd0,0x27,0xc1,0xc5,0xee,0x4c,0xbf,0xc0,0x4b,0x9d,0x53,0x41,0x74,0x02,0x9f,0xdb,0x50,0xcf,0x56,0x10,0xd3,0x02,0x1e,0xf9,0x33,0xb4,0xca,0xf3,0x39,0x85,},{0x8c,0x66,0x28,0x34,0x43,0x17,0xa6,0x3a,0xca,0x6f,0x78,0xcf,0xae,0xa9,0x65,0xb3,0xaa,0x55,0x22,0xce,0x91,0x41,0x95,0x14,0x1c,0x08,0x87,0x0a,0x1b,0x8d,0xac,0xf3,0x4b,0x79,0xc7,0xab,0xc6,0x93,0xcd,0x9e,0x5e,0xbe,0x1a,0x2e,0x86,0xf0,0x33,0x2d,0x20,0x48,0xdb,0x3c,0xbd,0xef,0x01,0x68,0x79,0x62,0xd6,0xdf,0x24,0x9e,0x38,0x00,},\"\\x45\\xb2\\xf0\\x64\\x61\\x5b\\xf7\\x74\\xfc\\xe9\\x7f\\x51\\xc4\\x64\\x68\\x5d\\x7b\\x3e\\x4f\\xef\\xff\\x92\\x31\\x24\\x0a\\x71\\x9b\\x3b\\x06\\x21\\xcd\\x4a\\xd8\\x33\\x05\\x67\\x5c\\xd6\\xea\\xae\\xbf\\xf7\\x91\\x00\\x0b\\x0b\\x1f\\xa3\\x1d\\x82\\xd8\\x18\\x1b\\x7f\\xe5\\x7c\\x5e\\x00\\xce\\xc5\\x6f\\xf9\\x02\\x2e\\x9c\\xe8\\xdb\\x66\\x35\\x6e\\x40\\x8e\\x3e\\xe2\\x62\\xfe\\x62\\x77\\x89\\xe6\\x55\\x35\\xef\\x1a\\x63\\xe8\\xfe\\xc9\\x33\\xbe\\x3d\\xee\\x34\\xd2\\xfa\\xcd\\xb8\\x92\\x8c\\xc4\\x56\\xab\\xf2\\xf3\\xe8\\xca\\xb4\\x7e\\xff\\x1c\\xa4\\x2e\\x8b\\x0e\\x48\\xd2\\xc7\\x3e\\x7b\\xcc\\x5d\\xe3\\xf1\\x05\\x6f\\xc5\\x23\\xdf\\xef\\x6b\\x00\\x23\\xf3\\x28\\x89\\xed\\x39\\x4e\\xed\\xa0\\x32\\xab\\xf6\\xbc\\xaa\\xda\\xa7\\xf3\\xee\\x74\\x11\\x87\\x60\\xab\\x6d\\x91\\xdf\\x52\\x8b\\xdc\\x58\\x07\\x97\\x2c\\x85\\xfa\\x7c\\xb5\\x6e\\x38\\x7d\\x73\\x32\\xe7\\x79\\xe5\\x2d\\x0d\\xd7\\xdb\\x0c\\xfb\"},\n{{0x0a,0xbf,0x06,0x9c,0x08,0xb2,0x69,0x1c,0x3a,0x26,0xf7,0x9d,0xc8,0xed,0x05,0xcb,0x71,0xd2,0x20,0xff,0x78,0xf3,0xa5,0xc5,0x78,0x0a,0xe9,0xda,0x18,0xe4,0x56,0x43,},{0x9e,0xf3,0xb5,0xcc,0x01,0x6c,0xc8,0x2d,0xbd,0xda,0x70,0x57,0x66,0xaa,0x44,0x8b,0xd6,0x1f,0xa1,0xaa,0xf1,0x17,0x0e,0xfe,0x91,0x49,0xda,0xa9,0xfe,0x64,0xa1,0xae,},{0xc7,0x56,0x6f,0xb3,0xb4,0xd8,0xde,0xf6,0x67,0xe0,0x40,0xf2,0x76,0xd3,0xed,0x98,0xd3,0x6d,0xff,0x46,0x01,0x26,0xa7,0x5b,0x4c,0xc2,0x10,0x03,0x86,0xbb,0x01,0xc6,0x42,0xf6,0xd8,0xde,0x7e,0x64,0x9b,0xe6,0xe0,0x81,0x8b,0x08,0xd7,0x7c,0xe6,0x0f,0x4e,0xe5,0xe7,0x71,0x7a,0x50,0x88,0x4b,0xde,0xe0,0x20,0x34,0xec,0xf1,0xcd,0x0c,},\"\\x0d\\x05\\x52\\x91\\xb2\\xe8\\x61\\xea\\xe1\\x9e\\xa0\\xfb\\x20\\x69\\xd8\\xc9\\xee\\xf4\\xf1\\x34\\x7f\\x35\\x76\\xd7\\x84\\x11\\xae\\x7c\\x0b\\x1c\\x1c\\xaf\\x31\\xfd\\xe7\\x36\\xdc\\x8a\\xcc\\xac\\xb6\\x62\\xdf\\x76\\xb6\\x20\\xb6\\x2c\\xe9\\x0b\\x9f\\x92\\xc8\\x33\\x09\\x12\\x86\\x21\\xd0\\x57\\xcf\\x84\\x58\\x05\\x94\\x90\\x88\\xe9\\x38\\xdd\\xbc\\x3d\\x41\\xc5\\xe5\\x54\\x1f\\xec\\x82\\x98\\x68\\x7a\\xd2\\xf7\\x9a\\xcd\\xa0\\x1a\\xa2\\x15\\xd2\\x58\\x21\\x43\\x6e\\xac\\x9d\\x26\\x87\\x16\\xd4\\xcd\\x60\\x50\\x26\\x0c\\xb4\\xef\\x6a\\xad\\xa4\\x83\\x5e\\x07\\x3a\\x84\\x58\\x21\\xff\\x21\\x1a\\xe2\\xba\\xad\\xce\\xb6\\xe5\\x7f\\x06\\xf8\\x83\\x45\\xed\\xbf\\x93\\xbf\\xdf\\x54\\xfb\\x74\\x12\\x3b\\x57\\xc0\\xfb\\x4a\\x79\\x60\\x8d\\x8d\\xb6\\x74\\x08\\x89\\xe1\\x57\\x33\\x50\\x77\\x99\\xf7\\xa1\\xfd\\x30\\x17\\xbc\\xd7\\x7b\\x28\\xa2\\xbb\\x6c\\x91\\xec\\xd1\\x54\\xe9\\xc5\\xa5\\xff\\xa0\\xeb\\x62\"},\n{{0xf3,0xfd,0x5e,0xc5,0xe2,0x30,0xb6,0xda,0xd1,0xac,0x3d,0x3a,0xeb,0xad,0xc7,0x86,0x3f,0xf8,0x9d,0xe2,0xa1,0x31,0x7f,0x42,0x4d,0x15,0x98,0x9a,0x3e,0xfb,0x0a,0xfd,},{0xf9,0x9e,0x5d,0x5e,0xee,0xae,0xd1,0x20,0x5c,0xfb,0x5c,0x2c,0xc4,0xe5,0xe9,0xf6,0xb4,0xe7,0xf6,0x41,0x29,0xf8,0x60,0x10,0x4c,0xa6,0x24,0x4e,0xb9,0xfe,0xb5,0x64,},{0x44,0xb0,0x12,0x46,0x63,0xad,0xb0,0xc7,0x3a,0xed,0x49,0xf7,0x34,0x03,0x46,0x1f,0xcb,0x19,0x11,0x1b,0x0b,0xa1,0x7a,0xa9,0x96,0x56,0x6f,0x47,0x7e,0x37,0xd5,0x24,0xb0,0xe1,0xf1,0x07,0x61,0x2f,0xc5,0x2a,0x7c,0x76,0x7b,0x18,0x1f,0xbf,0x4d,0x62,0x9b,0xdd,0xc0,0x8f,0x30,0x58,0x4d,0xec,0x61,0x24,0xc5,0xd3,0x9d,0x42,0x31,0x02,},\"\\x71\\xf2\\x89\\x73\\xed\\x3d\\xf0\\x59\\x45\\xfa\\x0b\\xdb\\x23\\xe9\\xbe\\xca\\x65\\x1d\\x3e\\xe6\\xbf\\x9f\\xa4\\x5f\\xfd\\xc6\\x06\\x1e\\x42\\xfa\\x2e\\x8d\\x76\\x23\\x5f\\x0e\\x9e\\x2d\\xaa\\x65\\xe5\\x26\\x31\\xfc\\x3b\\xea\\xd3\\x3d\\xa0\\x55\\xbb\\x49\\x2e\\x47\\x58\\xe5\\x98\\xa0\\x30\\xa3\\x3b\\x3c\\x40\\xb3\\x43\\x71\\x45\\x9b\\x23\\x3c\\xcc\\x04\\x3c\\xcc\\xc3\\xa3\\xcb\\xce\\x54\\x9e\\x20\\xe0\\xb2\\xb4\\x33\\x05\\xb6\\x4a\\xec\\x66\\x1a\\xad\\xba\\x65\\x56\\xb1\\x7d\\x76\\xe3\\xbb\\xed\\x62\\xc4\\xa4\\xea\\xc4\\xf8\\x86\\x03\\x99\\x67\\x52\\xd2\\x36\\x3c\\x8d\\x4a\\x27\\x89\\xd1\\x28\\xf6\\xe9\\x59\\x94\\x5c\\x68\\xc3\\x01\\x46\\xd1\\x94\\xcc\\xb6\\x83\\x9e\\xc6\\x53\\x44\\x60\\x16\\x52\\xc1\\x8b\\x00\\x74\\xe2\\xbc\\x76\\x68\\x31\\x16\\x97\\xd9\\x60\\xc7\\x06\\x65\\x97\\x92\\x4d\\x70\\x4d\\x02\\xa0\\x19\\x3f\\xaf\\xbf\\xdf\\x57\\x1e\\xe0\\xdf\\xe4\\x14\\xdc\\x2f\\x52\\x89\\x69\\x12\\xbc\\x32\"},\n{{0x73,0x8f,0x13,0x10,0xa4,0xe0,0x8f,0x91,0x7a,0x0a,0x5c,0x1f,0xba,0xf4,0xef,0x72,0xf9,0x5e,0xe6,0x2f,0xcd,0xed,0x50,0x86,0x8a,0x3d,0xaf,0x98,0x85,0x6a,0x44,0x8d,},{0x42,0x27,0x2c,0x2c,0x8b,0x08,0x47,0x0e,0xe5,0xdd,0x8a,0xf8,0x84,0x9c,0x01,0xb7,0x50,0x8d,0x3a,0x3c,0x65,0xb0,0x33,0x0e,0x69,0x5c,0x84,0x1d,0x5d,0xcc,0xb2,0xf5,},{0xce,0x1e,0x35,0x77,0xb6,0xa2,0x10,0x16,0xb9,0xdd,0x0b,0x51,0x7b,0xaa,0x0c,0xcb,0x10,0x7b,0xc1,0x99,0xb8,0xbb,0xae,0xf6,0x8f,0x95,0x0c,0x8e,0xd5,0x80,0x13,0xc8,0x53,0xb4,0xd3,0x38,0xee,0xdc,0x67,0x50,0x79,0xab,0x13,0x90,0x46,0x2f,0xfe,0xfa,0x6a,0x95,0x9b,0x04,0x3f,0x8b,0x56,0x51,0xc6,0xca,0x37,0x5c,0xe0,0xb4,0xa4,0x03,},\"\\xf0\\xe7\\xef\\x67\\x82\\xd0\\x4c\\x69\\x43\\xb1\\x9e\\xb6\\x6f\\xf6\\x22\\x6b\\x73\\x6e\\x3b\\x09\\x40\\xc0\\x9b\\xb1\\x26\\xbf\\xc4\\xc4\\xca\\x7a\\x5e\\x70\\x16\\xc2\\x86\\xb7\\xbf\\xd7\\x3a\\xa6\\xa7\\x9a\\x96\\x03\\x1b\\xc8\\x1c\\xb5\\xda\\x68\\xce\\xc7\\x1a\\x6a\\x0d\\x39\\x78\\x0c\\xbe\\x6a\\x0c\\xd4\\x77\\x4d\\x3a\\xa0\\x6a\\x88\\x16\\x10\\x44\\x4a\\x8c\\x9d\\x19\\x10\\x22\\x94\\xe5\\xf6\\x35\\x18\\x7a\\xa6\\xf4\\x8d\\x11\\x91\\x2c\\x70\\x94\\xb3\\x88\\x33\\x02\\x8d\\x57\\x0c\\xb1\\x10\\xdb\\x60\\x62\\x5b\\xb1\\xbd\\xc3\\x7a\\xff\\xa2\\x5e\\xa3\\xc8\\xf8\\xdb\\xfc\\x25\\x14\\xf4\\x36\\x5c\\x62\\xb2\\x98\\x9a\\x66\\xd2\\x7c\\x80\\x38\\x4e\\x74\\xae\\x5f\\xba\\x8c\\x1c\\x2a\\xf9\\xc7\\x2c\\x49\\x71\\xe6\\x4f\\xa6\\xa1\\xdc\\x25\\x17\\xb3\\x1e\\xa5\\x7c\\xcb\\x08\\x15\\xa7\\xfe\\x2d\\xa0\\xf1\\x46\\xca\\xa0\\x84\\x31\\xd2\\x5d\\x15\\x16\\x62\\xd9\\xd2\\x6e\\x95\\x22\\x9d\\x0c\\x62\\x82\\x36\\x64\\x12\\x3c\"},\n{{0x88,0x41,0xd2,0x2a,0xde,0xd6,0x9c,0x13,0x1e,0xf5,0xee,0x0a,0x10,0xab,0x0a,0x9b,0x77,0xcb,0x75,0x4e,0xde,0x8d,0x25,0x7a,0x53,0x72,0x72,0x6e,0x2b,0x49,0x9c,0x6e,},{0x71,0x5e,0xcc,0xa6,0x36,0x81,0xbc,0x6e,0x9e,0x31,0xd1,0x88,0x48,0x90,0x2f,0x4d,0x96,0xfe,0xaf,0x43,0xb9,0x5d,0x00,0x86,0x42,0x90,0x3b,0x17,0x63,0xbc,0x9f,0xb8,},{0xbb,0x2b,0xab,0x70,0x03,0xf1,0x31,0x1b,0xe9,0xb8,0xc8,0x83,0xfc,0x4f,0xd5,0x28,0xad,0xfd,0x51,0xa9,0xc9,0x9d,0xb3,0xdc,0xa8,0xda,0x0f,0xca,0x95,0x8d,0xa1,0x9a,0x10,0xeb,0x22,0x33,0x26,0x67,0xb1,0xa0,0x06,0x5d,0x3d,0xbc,0x0d,0x06,0x26,0x9a,0x12,0x59,0xb6,0xa8,0x90,0x48,0x4a,0xa2,0x14,0x3a,0x52,0x69,0x5f,0x14,0x5b,0x0a,},\"\\x08\\x7c\\xa6\\xbe\\x2a\\x95\\x0c\\x02\\x4b\\x3e\\x74\\x67\\xfe\\x00\\xa7\\xd3\\x64\\x55\\x5d\\x5d\\xc6\\x77\\x0f\\x5e\\xbd\\x26\\x06\\x42\\x52\\x5b\\xd3\\xc0\\xf9\\x65\\xdb\\x36\\xd7\\xb2\\x29\\xa5\\x74\\x21\\xee\\xc6\\x4e\\x4d\\x99\\x1c\\xdd\\xe5\\x91\\x23\\x03\\x44\\x70\\x55\\x3f\\x4e\\xb0\\xbe\\x81\\xad\\x29\\x36\\xc8\\xca\\x26\\xbc\\xab\\x4e\\x5d\\x79\\x04\\x0e\\x29\\x79\\x87\\x28\\x60\\x16\\x84\\xa4\\x68\\x32\\x3c\\xf3\\xba\\xae\\x4d\\x94\\x8d\\x0a\\x1f\\xd9\\x05\\xef\\xfe\\x16\\xdc\\x44\\x64\\x20\\x88\\xdf\\x53\\xf6\\x38\\x8b\\xc4\\x80\\xed\\xf4\\xaa\\x20\\x7d\\x0e\\xd1\\x61\\xed\\xa3\\x45\\x71\\x2b\\x4c\\x00\\xcb\\x05\\xfc\\xf6\\x35\\xec\\x25\\x88\\x78\\x5b\\xfb\\x8a\\x27\\xcd\\xc2\\x89\\x96\\xa1\\xdb\\x3e\\x67\\x87\\x02\\x33\\x93\\xc0\\x75\\xd8\\x3c\\x90\\x38\\xfe\\xd7\\x89\\x9c\\x55\\xfe\\xc3\\x07\\xde\\x32\\x49\\xc1\\x4b\\xda\\x49\\xe8\\xb8\\x95\\x86\\x09\\x42\\xc3\\x6d\\x64\\x0b\\xb8\\x93\\x77\\x91\\x42\"},\n{{0xc0,0x21,0x35,0xe7,0xb6,0x5a,0xac,0x72,0xf6,0x3c,0x32,0xbf,0x5b,0xef,0x5b,0x68,0xc7,0xf3,0xb8,0xed,0x56,0x20,0x8e,0x59,0xe4,0x75,0x20,0x70,0xe9,0xd0,0x70,0x95,},{0xdc,0xf6,0x00,0xf2,0x44,0x03,0x7a,0x75,0x20,0x3a,0xe1,0x1a,0xc3,0x16,0xe8,0xdb,0xe9,0x98,0x6f,0x0d,0xce,0x23,0x47,0x39,0x39,0x33,0x4b,0xf5,0xce,0xa4,0x8b,0x0d,},{0xdd,0x5c,0xba,0xe4,0x79,0xeb,0x5e,0x22,0x95,0x74,0xc2,0x1e,0xc3,0xbe,0xd9,0x11,0x11,0x3a,0x57,0xa1,0x91,0x6d,0x33,0x13,0x45,0x75,0x15,0xd5,0x5c,0xc5,0xb6,0xe6,0xeb,0xc5,0x2c,0x93,0xf8,0x21,0xd1,0x39,0x88,0xdb,0xba,0x8d,0xf5,0x09,0x6d,0x55,0xff,0x9c,0x39,0xe7,0xf9,0xd5,0x61,0xcb,0x58,0x93,0x0c,0x96,0xa7,0xa5,0xd6,0x0b,},\"\\x86\\xd9\\x49\\x13\\x50\\xd2\\x56\\x6e\\x70\\x8e\\xd3\\x56\\x18\\x5d\\x61\\x0c\\x73\\x46\\x5b\\x2a\\x5c\\x70\\x12\\x91\\x99\\x58\\xaf\\x2c\\xf7\\x6a\\xf9\\x95\\x23\\x0d\\x36\\x0d\\xe4\\x00\\xb7\\x13\\x71\\x70\\xdd\\x08\\x35\\xf1\\x0f\\xcb\\xec\\x22\\x4e\\xe4\\xe4\\x2c\\x7d\\x1c\\xeb\\xb7\\xf5\\x80\\xfe\\xa8\\xed\\x62\\x23\\x16\\x3b\\xac\\xdd\\x19\\x23\\xa5\\x72\\xcb\\xb6\\xdc\\x26\\xca\\x8b\\x17\\xad\\xe6\\x8c\\x6d\\x28\\x08\\xc4\\xca\\x1e\\xca\\x28\\xea\\xe9\\xa1\\x45\\xf6\\x8d\\x40\\x79\\xd8\\xd5\\x9d\\x14\\x0e\\x95\\x82\\x28\\xe7\\xe9\\x95\\x20\\xe3\\x42\\xdb\\xd7\\x45\\x7a\\x91\\x59\\x74\\x0f\\x48\\xbd\\xc2\\x7b\\x93\\xbd\\xab\\xeb\\xa4\\x65\\xcb\\xf0\\xc8\\xdf\\x5e\\xf2\\xc0\\xf9\\x38\\x6e\\xeb\\xe6\\x56\\xf5\\xd7\\x49\\xd5\\xf9\\x14\\x7f\\x52\\x52\\x66\\x91\\x0d\\x7b\\x80\\x39\\x6a\\x90\\xbe\\x5c\\xc1\\x88\\xa9\\xa9\\x45\\xf9\\x3e\\x75\\x3f\\xc9\\x9b\\xaf\\xa1\\x8e\\xe0\\xa6\\xdf\\xf7\\x9b\\xf8\\x48\\x48\\x98\\xef\"},\n{{0x15,0x4a,0x47,0xeb,0xa1,0xb8,0xc3,0x83,0x62,0xea,0x61,0xfa,0xeb,0x0c,0x0a,0xd7,0xe6,0x1e,0x41,0x2a,0x3c,0xba,0x46,0x88,0xaf,0x0d,0xb2,0xa4,0x87,0x20,0x8b,0x1c,},{0x16,0xde,0x2c,0x89,0x4a,0x50,0xcb,0xd4,0xca,0x90,0x41,0x9a,0x4c,0xa6,0x49,0x42,0xcb,0x14,0xbd,0x33,0x5c,0x5d,0x3f,0x4a,0x53,0xe2,0x39,0xc2,0x80,0xbd,0xa7,0x25,},{0xf4,0xb6,0xeb,0x1a,0x8d,0x95,0x0e,0x88,0x7f,0xd2,0xf3,0x0f,0x70,0xa2,0x3b,0x41,0x87,0x14,0x95,0xbf,0xa5,0xb8,0xa4,0xad,0x39,0x96,0xcd,0x9b,0xf5,0x1e,0xb7,0x42,0xe0,0x7f,0x4c,0x4d,0x2d,0xa4,0xb0,0x1a,0xb0,0x87,0x36,0x7a,0x50,0xe2,0xb6,0x5b,0x3c,0xef,0x51,0x4e,0x40,0xd8,0x37,0x54,0x0b,0x8c,0x89,0x96,0x64,0x85,0x91,0x0f,},\"\\xbf\\x60\\x7e\\x8b\\x6e\\x14\\xd9\\xc8\\xac\\xd9\\x68\\x15\\xaf\\x0c\\x03\\x5a\\xc7\\x3c\\x41\\x04\\xc9\\x37\\x86\\xcc\\xc1\\xc9\\xf8\\x59\\x39\\x5d\\xd7\\x81\\x90\\x03\\x20\\xeb\\xf3\\x56\\xaa\\x99\\x1c\\xdc\\x9f\\x50\\x3f\\xce\\xe9\\xf8\\x36\\x75\\x88\\x8a\\x7d\\x59\\x20\\x02\\xd2\\xa5\\x4a\\x57\\x3a\\x96\\x99\\x4b\\x3f\\xa8\\x65\\x53\\x8c\\x61\\x7e\\xd8\\xad\\x1f\\xf6\\x20\\x18\\x28\\x8a\\x67\\x4f\\x44\\x9b\\xe0\\xaa\\xb5\\x22\\x2f\\x74\\xc4\\xfd\\x47\\x5e\\xd6\\xa8\\xdf\\xb2\\x7f\\x45\\x28\\x7b\\x22\\xb2\\xb6\\xc3\\xbd\\x15\\x17\\x9f\\x26\\x7d\\x15\\x7d\\x7d\\x8a\\x41\\x59\\x67\\x9b\\xe8\\x5b\\x25\\xc2\\xbb\\x2b\\xa8\\x50\\xaa\\xed\\x9a\\xe3\\xae\\x57\\x1b\\xe4\\xf7\\x58\\x36\\x32\\x9c\\xf3\\x6f\\x41\\x2c\\x1c\\x80\\xf1\\x41\\x3b\\x76\\x61\\xea\\xb4\\xa8\\xe1\\x1b\\x60\\x24\\x24\\x4f\\xc6\\x23\\x23\\xff\\x02\\xe3\\x8a\\xce\\xb1\\x73\\x7b\\xd4\\x74\\xbf\\x1e\\x98\\x01\\x5d\\xbc\\x78\\x8b\\x02\\x7b\\xbe\\x21\\x7c\\xf4\\xe7\"},\n{{0xd3,0x02,0x84,0x31,0xce,0x2e,0xef,0x73,0xbd,0x94,0x0a,0xb8,0x4c,0xa2,0x9f,0x13,0xfb,0x26,0x43,0x6a,0xa2,0x5e,0x1b,0x7b,0xf2,0x6c,0xb3,0x3f,0x17,0xfd,0xf8,0x17,},{0x63,0xdf,0x20,0x3e,0x28,0x60,0xba,0xc4,0xd3,0x52,0xe7,0x22,0xc1,0xc9,0x1f,0xe3,0x77,0x6e,0x1c,0xbc,0xae,0x85,0x53,0xa4,0xf1,0x98,0x90,0x26,0x0b,0xf0,0xe4,0x57,},{0xce,0x97,0x29,0xa9,0x6c,0x3e,0xd2,0x89,0x43,0xb2,0x78,0x39,0xc7,0x33,0x82,0xec,0xd5,0x72,0x96,0x0c,0x1f,0x9e,0x90,0xc5,0xef,0xf9,0xdd,0x49,0x9f,0xf4,0x8f,0x17,0xd2,0x5e,0xdd,0x12,0x68,0xef,0xfe,0x41,0xee,0x6a,0x81,0xce,0x48,0xd8,0x4d,0xe5,0x13,0xdf,0x9c,0x41,0x44,0x26,0x21,0xb2,0xf5,0x49,0x1e,0x34,0x6b,0xe1,0x8c,0x04,},\"\\x08\\x63\\x35\\xd6\\x12\\x75\\xd1\\x68\\xea\\xac\\x05\\x40\\x47\\x7f\\x50\\xd4\\xb1\\x5f\\x9e\\x50\\xb9\\xbe\\x69\\x39\\x21\\xed\\x54\\xa9\\x94\\x1b\\xc4\\x06\\x43\\xcd\\xa6\\x2e\\x1d\\x80\\x5d\\x02\\x50\\xa8\\x11\\x46\\xbd\\x5f\\xe2\\xd3\\x9e\\x81\\x44\\x4d\\x21\\xe2\\xb2\\x1b\\x03\\x1c\\x11\\x13\\x06\\xca\\xcb\\xf5\\x27\\x17\\xf6\\xfb\\x4c\\xd3\\x41\\x6f\\x12\\x15\\xf8\\xdd\\xdc\\xed\\xd2\\xf0\\x09\\x6b\\x0f\\xcf\\xa0\\xa6\\xcc\\x2c\\xde\\x7a\\x2b\\xab\\x7f\\x1e\\x32\\x79\\x0b\\x53\\x61\\xdf\\x36\\x71\\x42\\x4c\\xc7\\x22\\xf2\\x31\\xbf\\x71\\x89\\x5b\\xcd\\xcb\\x7b\\x22\\xee\\x07\\x4e\\x8f\\xb4\\xa9\\x67\\x85\\x04\\xe7\\x35\\x36\\x6c\\x17\\x2f\\x07\\x63\\x7b\\x7a\\x93\\x14\\x9b\\xb2\\x1f\\x38\\x88\\x33\\x78\\xa1\\xdb\\x27\\x3f\\xc2\\x32\\x39\\xe3\\x53\\x37\\xf9\\xce\\x56\\x6d\\x8d\\xdf\\x3b\\x31\\x33\\xca\\xd7\\xf2\\xce\\x81\\xed\\xb5\\x03\\xce\\x1d\\x27\\xc5\\xa6\\x57\\x16\\x0b\\x78\\xdc\\xa9\\xae\\xae\\xa3\\x79\\xbe\\x9c\\x85\"},\n{{0xee,0x89,0x85,0xdc,0x27,0x50,0x44,0x40,0xa8,0x75,0x8d,0x4c,0x53,0xe4,0x22,0x52,0x15,0x79,0x7a,0x00,0xcd,0x86,0x31,0xd5,0x9b,0xd9,0x3b,0xc6,0x6f,0x37,0x3d,0x5e,},{0xcd,0x64,0x7b,0xb0,0x65,0x69,0x3d,0x48,0x65,0x89,0x15,0x6a,0x9f,0xa2,0x61,0x43,0x75,0x34,0xdc,0x86,0xf4,0x6f,0x72,0xd0,0xa8,0x00,0x39,0x9a,0x7a,0xf0,0x10,0xf7,},{0x5b,0xd6,0x0a,0xd5,0xe9,0xba,0xd9,0x93,0x2c,0xa9,0xc7,0x5f,0x23,0x1a,0x76,0x88,0x9a,0xe7,0xa8,0xb8,0x64,0xb9,0x1d,0x1f,0xcb,0xa5,0xc5,0xd4,0xbf,0xa1,0xd9,0x28,0x38,0xad,0xb9,0x74,0x84,0x2a,0x07,0x10,0x77,0x9b,0x3e,0x30,0x94,0x04,0x49,0x09,0xe9,0x2c,0x7c,0xf0,0x46,0xce,0x51,0x9f,0x4c,0x68,0xe8,0xf1,0x9e,0xc0,0x3c,0x02,},\"\\xf2\\x22\\x04\\x85\\xad\\xdf\\xeb\\xce\\x02\\xa8\\x33\\xac\\xa3\\x33\\x81\\xd1\\xdf\\x91\\x7e\\xd6\\x09\\x95\\x0e\\xd2\\x4f\\x85\\xe3\\xb0\\x2b\\x2b\\x99\\x4b\\x4d\\x93\\x97\\x84\\xe3\\x32\\xf4\\x10\\x64\\xc8\\xb4\\xa2\\x63\\x0a\\xb3\\x69\\x61\\x74\\x2a\\xa1\\xcf\\xfd\\xcb\\x08\\xc1\\x44\\xee\\xae\\xde\\xaf\\xd4\\x8b\\x5d\\xbe\\x96\\xbf\\x24\\x35\\x0e\\x14\\xfd\\x68\\x28\\x6b\\xc0\\x8e\\xea\\xef\\x8b\\xc6\\xad\\x9e\\x19\\x5d\\x14\\x84\\xaf\\xcd\\x30\\xaf\\xa8\\xce\\xd4\\x84\\x81\\x26\\xd5\\x6c\\x81\\xb4\\x3c\\x27\\xa5\\xdb\\xbd\\xec\\x1a\\x50\\xc1\\x10\\x62\\xce\\x21\\xc6\\x1d\\x86\\x0c\\x25\\xa8\\x62\\xfb\\xb7\\x5c\\x3b\\xd5\\x1c\\x8d\\xc0\\x76\\x36\\x66\\x86\\x69\\xbb\\xf7\\x51\\xea\\xca\\xcc\\xb3\\xb5\\x1d\\x2c\\x0d\\x41\\x40\\x31\\x6c\\xfc\\xe2\\xeb\\x18\\xd2\\x90\\x8c\\xec\\xd5\\xa1\\x88\\x67\\x9b\\xc5\\xf5\\xde\\x29\\x0f\\x54\\x8e\\x7e\\xbc\\x57\\xd4\\x1b\\x58\\x9a\\x24\\xce\\x88\\xee\\x48\\xd9\\x7e\\x8d\\x0c\\x7c\\x76\\x99\\x60\"},\n{{0x80,0xdf,0xe2,0xbf,0x73,0x87,0xba,0xd4,0x65,0x4e,0xb0,0x76,0xf8,0xda,0xe9,0x59,0x51,0x63,0xe4,0x01,0x27,0xf5,0xdf,0x49,0x2d,0xad,0x7d,0xf0,0x4c,0x72,0x21,0xc4,},{0xd1,0x78,0x3c,0xee,0xb9,0xcf,0x8e,0x4d,0x07,0x76,0x4c,0x47,0x3f,0xa4,0x06,0x1b,0x82,0x74,0x39,0x71,0x03,0xf2,0x07,0x6d,0x70,0x32,0x49,0xd7,0x58,0xb8,0xfb,0xd5,},{0x27,0x27,0x9e,0x3c,0xdc,0xb0,0x3e,0xf5,0x57,0xa5,0xde,0xfc,0x2f,0x6c,0x58,0x12,0x8a,0x6d,0xc3,0xf8,0xb0,0x38,0x59,0x58,0x01,0x4e,0x70,0x9c,0x1f,0x61,0xb0,0xae,0x6b,0x40,0x35,0x76,0xf0,0xe4,0x54,0xd5,0xe4,0xc6,0x4c,0x17,0x31,0x38,0xee,0x4b,0xbd,0x5f,0xe7,0xb6,0x0d,0x06,0xc5,0xab,0xe2,0x3f,0xe9,0x9e,0xe3,0xb4,0x6a,0x00,},\"\\xaa\\x09\\xd7\\x84\\xbb\\x09\\xdc\\x99\\x99\\x31\\xeb\\xb4\\xc0\\x0e\\x42\\x4c\\xef\\xec\\xa1\\x04\\x81\\x8d\\x8e\\xaf\\x06\\x61\\xf0\\x97\\x28\\xad\\x02\\x5e\\xf4\\x73\\x93\\x21\\x05\\x71\\xf1\\x74\\x04\\xe9\\xaa\\x6d\\x8c\\xbd\\x5f\\xd8\\x8c\\xd7\\xdf\\xb8\\xe2\\xe8\\xa1\\x08\\xc0\\x5d\\xe2\\x06\\xf3\\x40\\x82\\x34\\xa3\\xb4\\x63\\xdb\\xe7\\x1a\\x07\\xd0\\x55\\x87\\x32\\x45\\x24\\xb7\\x32\\x6e\\xe7\\x9d\\x33\\x48\\xdd\\xbe\\xd7\\x87\\x1b\\x86\\xfc\\xb4\\x88\\x03\\x1d\\xc9\\xea\\x93\\xf6\\xb8\\xd7\\xfd\\xa6\\x23\\x93\\x48\\xa5\\x62\\x44\\x4f\\xaf\\x1e\\x72\\xd3\\x1a\\xf3\\x54\\x43\\xe9\\xdf\\x53\\xe7\\x62\\xf3\\xe5\\x6b\\x48\\x66\\x8f\\x97\\x84\\xb3\\x36\\x8a\\xb2\\x78\\xa4\\x8e\\xf4\\x54\\x6a\\x26\\xcf\\xad\\x0d\\x0a\\x51\\x61\\x69\\x8f\\x26\\xee\\x8d\\x34\\xfc\\x2b\\x3d\\x6d\\xfb\\x93\\xb0\\x09\\xac\\x29\\x6f\\x6a\\xfe\\x48\\x7e\\xe3\\x35\\xea\\xc9\\xf0\\x2c\\xfc\\xae\\x5f\\xcb\\xd1\\xa1\\x6b\\xa4\\xe7\\x1b\\xe1\\xb1\\x12\\x56\\x2f\\xc2\"},\n{{0xda,0x1f,0x86,0x85,0x42,0xcd,0x7c,0xce,0x7a,0x5c,0xa3,0xfa,0x3c,0x24,0x08,0x1b,0x4d,0x23,0x44,0xb2,0x1a,0x15,0x7f,0x02,0x64,0xa3,0x47,0x13,0x2d,0x19,0x65,0x9d,},{0xcb,0x3a,0x25,0xa5,0x3f,0x27,0x2e,0xa8,0x13,0x80,0x44,0x68,0xd6,0x50,0x0e,0x96,0xa1,0xea,0xf8,0x22,0x70,0x5b,0x77,0x90,0xa8,0xac,0x3e,0x98,0xcc,0x4e,0x52,0x4b,},{0x75,0xc5,0x17,0xad,0xe4,0xf0,0x8d,0x77,0x46,0x30,0x57,0x43,0xd1,0xa7,0x76,0xc3,0xc5,0x5e,0xb5,0xee,0xdf,0xdf,0xcb,0x5e,0xb1,0xd5,0x63,0x4a,0x1b,0xda,0xf7,0xa4,0xb8,0xd2,0x41,0x87,0xd6,0xc8,0x85,0x0e,0x3c,0xed,0x65,0x67,0xa0,0x3c,0x4c,0x59,0x38,0x9a,0x4c,0xf4,0x71,0x14,0xce,0x54,0x73,0x16,0x0f,0x23,0x05,0x46,0xe6,0x0d,},\"\\xc6\\x98\\x7e\\xf3\\x80\\xd5\\xd0\\xe7\\x41\\x96\\x44\\x3a\\xaa\\x3a\\x32\\x35\\x6c\\xbc\\x02\\x63\\x6c\\x5a\\x4b\\x6d\\x62\\xa8\\x11\\x4b\\x21\\x11\\xbc\\x1a\\xbd\\xdd\\x9e\\x44\\xb3\\x67\\x2c\\x18\\xb5\\x8d\\x4e\\xf5\\x91\\xaf\\x45\\x62\\xe0\\x20\\x04\\x9f\\x8e\\x12\\x74\\x68\\x8e\\x1f\\x8e\\x52\\x96\\xd2\\xf9\\x25\\x2e\\x7f\\xc8\\x4c\\xd1\\xd0\\xc5\\x8e\\x98\\xf0\\xf1\\x60\\x53\\x0a\\xa2\\x2c\\x87\\x1e\\xef\\x65\\x2e\\x71\\x97\\x4c\\xe9\\x1b\\x4a\\x65\\xfc\\x25\\xfd\\x09\\xfa\\x1b\\x6c\\x32\\x08\\x6e\\x98\\xec\\x70\\x8d\\x9a\\xbc\\xb1\\xd9\\xcc\\x8e\\x1a\\x08\\x9e\\xd8\\xdb\\x22\\x06\\xee\\x95\\x70\\x23\\x6a\\xd6\\x9b\\x3d\\xe6\\x82\\x18\\x62\\xfd\\x2c\\x70\\xcd\\x83\\xa3\\x2a\\x68\\xb0\\x48\\x62\\x29\\x55\\x3d\\x92\\x8d\\xe4\\x8d\\x03\\xa1\\x04\\xe8\\x73\\x81\\x96\\x4a\\xbe\\xa7\\x66\\x83\\x97\\x6d\\x52\\x7c\\x84\\x16\\x3a\\x12\\xee\\xe0\\xa5\\x59\\x86\\xcf\\x14\\x31\\xe9\\xc8\\x6c\\xba\\x81\\x82\\xca\\x94\\x68\\x9b\\xac\\xd1\\x65\\xfb\\xce\"},\n{{0xf1,0x3d,0xae,0xc0,0xef,0x33,0xdd,0xd1,0x33,0xc7,0xd2,0x44,0xd1,0x0f,0xd2,0x7d,0xdb,0x23,0x70,0x52,0x80,0xff,0x5f,0x18,0x15,0xf0,0xf6,0x56,0xd8,0x36,0xfe,0x84,},{0x2d,0xc7,0xf1,0x36,0x7d,0xe6,0x72,0xc5,0x1e,0x00,0x5c,0x74,0xf8,0x76,0xf9,0x82,0x59,0x39,0x96,0x87,0x3a,0xcb,0xa0,0x79,0x29,0x27,0x34,0xc2,0x09,0xc2,0xb1,0x11,},{0xdb,0x77,0x18,0x33,0xf7,0xfd,0xba,0xcd,0xab,0x2b,0x5c,0xc8,0x0e,0xed,0x50,0xaf,0xdf,0x13,0x78,0x3b,0x7f,0xe5,0xe9,0x03,0xd5,0xdb,0xb4,0xc2,0xe5,0x35,0x31,0x6a,0x6e,0xef,0x4c,0x34,0xf0,0x04,0xd2,0xb9,0xa4,0xe2,0x70,0x0b,0xd6,0xe2,0xac,0xdd,0x56,0x4c,0x3c,0x80,0xcc,0x68,0xa3,0x03,0xf5,0xfb,0x09,0x1c,0xb4,0x34,0x0f,0x0a,},\"\\xec\\x02\\xff\\x18\\x04\\xb2\\xb3\\x09\\xaf\\x31\\x58\\xb6\\x62\\x72\\xa1\\x4a\\x3a\\xad\\x83\\xc4\\x1a\\x71\\x98\\x46\\xf7\\x08\\x8c\\xa9\\x79\\x2a\\xf5\\x75\\xc7\\x89\\x13\\xc4\\x32\\x75\\x9f\\x0b\\x9a\\x74\\x8b\\xdc\\x55\\x68\\x49\\x6e\\x41\\x65\\x8c\\xc1\\xcd\\xb8\\xda\\x6c\\x91\\xd0\\x7c\\x3e\\xc2\\xf4\\xaf\\x50\\x42\\x49\\xb9\\x96\\xaa\\x00\\xc0\\x07\\x1c\\xdf\\xa7\\x93\\xf8\\x2d\\x0e\\xc5\\xd2\\x67\\x26\\x2f\\x51\\x8f\\xc0\\x29\\xb8\\x8e\\x20\\xb6\\x20\\x1f\\xb9\\xe0\\x5a\\xbd\\x3f\\x95\\x24\\xc5\\xda\\x2f\\xa8\\x97\\x8f\\xf2\\xef\\xd4\\x81\\x20\\xcf\\x00\\x82\\x2d\\x1b\\xee\\x90\\xdf\\x81\\x61\\x25\\xd8\\xed\\xc0\\xcf\\xb5\\xde\\x66\\xd1\\x6b\\xe6\\x38\\x96\\xa4\\x12\\xa6\\x2b\\x03\\x1b\\x71\\x18\\xac\\x13\\xfe\\x2c\\x9f\\xaa\\x6b\\x1a\\x33\\x42\\xf9\\xcc\\xf7\\x88\\x41\\x66\\xcf\\x48\\x9a\\x84\\xde\\x26\\xb5\\xce\\x5b\\x21\\x85\\x6a\\x3a\\xf2\\x89\\xbc\\x66\\x22\\xc0\\xaa\\xb9\\xf2\\x14\\x2d\\x39\\x3f\\x5d\\x4b\\x23\\x67\\x79\\xdb\\xb0\\x66\"},\n{{0x42,0xdc,0x16,0xc5,0x7f,0xb6,0xf1,0x28,0x94,0x5f,0xa1,0x01,0xe0,0x5b,0xbf,0x54,0x8e,0xf7,0xd9,0x77,0x26,0xb6,0x92,0xfe,0x40,0x40,0x69,0xcc,0x57,0xcc,0xef,0xa0,},{0x0a,0x1b,0xa5,0xdf,0x52,0x39,0x96,0xf9,0x54,0xb3,0x4d,0xdc,0xfa,0xba,0xd3,0xf3,0xde,0xe2,0x1a,0x5f,0xa7,0xa4,0xce,0x32,0x2d,0x21,0x6b,0xd8,0xcc,0xaf,0x43,0x8c,},{0xc7,0x59,0x77,0xe8,0x3b,0xcf,0xe9,0xdf,0x72,0x92,0xa8,0x60,0xed,0x97,0x25,0x55,0xb5,0xc2,0x44,0x16,0xfd,0x4b,0x7e,0xe3,0x28,0x53,0x88,0xfa,0x5b,0x14,0x47,0x60,0x8e,0x4a,0x34,0x78,0x13,0xcf,0xe0,0x93,0x51,0x2a,0x76,0x51,0xe4,0x22,0xe9,0x86,0x7d,0xb7,0xb9,0x7c,0x0b,0x08,0x67,0xf0,0xb8,0xc7,0xb7,0xf4,0xf0,0x2c,0x31,0x0d,},\"\\xf2\\x71\\x4c\\x23\\xa3\\xa6\\xfc\\x11\\xad\\x15\\xc9\\x80\\xb7\\x35\\x0f\\xc8\\x42\\x17\\x87\\x76\\x61\\x18\\x80\\x55\\xff\\x75\\x0d\\x82\\xc4\\x9c\\x5f\\xef\\x7b\\xc8\\xe6\\xaa\\xc5\\x74\\xa1\\xb7\\x9a\\x3f\\x26\\xd1\\x69\\x69\\xc0\\xf4\\x06\\xee\\xab\\x3e\\x9e\\x12\\x85\\x0a\\x55\\x70\\x97\\x45\\xe3\\x0d\\xff\\xa6\\x2a\\x69\\xdf\\xb2\\xb6\\x4b\\x3c\\x1b\\xd2\\xbc\\x35\\x86\\xe2\\x6d\\x4e\\xea\\x71\\x4d\\x2a\\x7b\\x71\\xcf\\x79\\xfb\\x8f\\xfb\\xf2\\xaa\\xad\\x00\\xca\\x3e\\x4f\\x2b\\x6f\\x50\\x3c\\xc1\\xfe\\xf2\\xea\\xb3\\x65\\x6f\\xb4\\x4f\\x8d\\x62\\xa8\\xdb\\x8a\\xb5\\x8f\\x39\\x46\\x93\\x94\\x9e\\xea\\x57\\xfa\\xfe\\xcf\\x00\\x5f\\x6e\\xbf\\x12\\x87\\xdb\\xa4\\xd2\\xd6\\x23\\xc0\\x2e\\xa1\\x71\\xf5\\x67\\xe5\\x26\\xad\\xd2\\x07\\x09\\xeb\\xca\\xb9\\x62\\xf8\\x3d\\x98\\xef\\x66\\x8e\\xbd\\x01\\xef\\x20\\x48\\x8b\\x36\\x65\\xe3\\xa4\\x46\\xfb\\xfb\\x13\\xd3\\x40\\x50\\x94\\x2c\\x74\\x9b\\xb2\\xdf\\xfc\\x76\\x63\\x67\\xfd\\x45\\x2e\\x68\\xe5\\xb0\\xc6\"},\n{{0x90,0xb4,0x55,0xc6,0xbb,0x9c,0xec,0x83,0xe1,0x37,0x35,0x70,0x65,0x33,0x9d,0x03,0x05,0x25,0xd0,0xea,0x7f,0x5b,0x92,0x3a,0x2d,0x59,0x72,0xc3,0xc1,0x2a,0xa3,0x7b,},{0x5c,0xef,0x03,0x8c,0x16,0xbf,0xa4,0xb4,0xc9,0x23,0xa0,0xfe,0x70,0xcd,0x7f,0x25,0xc8,0xbc,0x83,0x7f,0xdf,0x5a,0x7e,0xfb,0x9d,0x95,0xf2,0x1b,0x96,0xbe,0x92,0x5a,},{0xc9,0x34,0x5e,0xec,0x2c,0x4a,0x0a,0xec,0x73,0x23,0x86,0x49,0x4a,0x69,0xa3,0xfc,0xe8,0xb8,0xa1,0xbe,0x36,0x6b,0xbe,0xd1,0x65,0x9f,0x13,0x1f,0xe9,0x7c,0xc0,0x37,0xfb,0x1b,0x7c,0x1b,0x68,0xb0,0xf3,0x02,0x39,0x45,0xd2,0x00,0x90,0xa0,0xcd,0x2c,0x15,0x53,0xa4,0x7f,0xae,0xc4,0xd6,0x6f,0xd8,0x16,0xce,0x12,0x11,0x68,0xf3,0x09,},\"\\xc6\\x2c\\xfd\\xb9\\xd2\\x1e\\xee\\x6b\\xe4\\x7f\\x30\\x72\\x7a\\xae\\xe5\\x1f\\x07\\x03\\x78\\x9a\\x43\\x1d\\x32\\x22\\x85\\x33\\x35\\x02\\x17\\xa9\\x3a\\x18\\x90\\x06\\x69\\xc9\\x59\\x56\\xf3\\xf2\\xae\\x90\\xdc\\x74\\x5a\\x71\\xe1\\x83\\x40\\xd0\\x58\\xd1\\x6b\\x4c\\x6f\\xe3\\x3b\\x64\\xaf\\x8d\\xad\\x97\\x3f\\xe5\\xdc\\x02\\xe8\\x52\\x07\\x05\\xc7\\xa8\\xbb\\x3c\\xcb\\xe1\\x83\\x8c\\x6c\\x24\\x93\\x37\\xf9\\xb6\\xa4\\xc0\\xe1\\xf8\\xa4\\xe5\\xd1\\x03\\x19\\x6f\\xa7\\x99\\x98\\x92\\x3d\\x04\\x22\\xe9\\xd0\\x79\\xa7\\x2c\\xc2\\xa8\\xf8\\x6d\\x65\\x90\\x31\\xa6\\x07\\xd4\\xcc\\xa0\\xb9\\x47\\xb3\\xab\\xee\\xee\\xf6\\x4c\\x28\\xda\\x42\\x0d\\x05\\xde\\x66\\x5a\\x55\\x10\\xfe\\x55\\xf7\\x75\\x98\\xec\\xad\\x7f\\xaa\\x0a\\xc2\\x84\\x80\\x0b\\x53\\x82\\x93\\x94\\xc4\\xae\\x90\\xbe\\x66\\x67\\x8f\\xf0\\x4a\\xb4\\x6d\\xa2\\x65\\xae\\x06\\x40\\x2d\\x8c\\x83\\xca\\xd8\\x4d\\x61\\xa0\\x51\\xde\\x02\\x60\\x55\\x98\\x88\\xe7\\x79\\xf7\\x4b\\x72\\xa5\\xd7\\x1c\\x13\\x2f\"},\n{{0xdc,0x18,0x5c,0x2b,0xa0,0xb3,0x78,0xdf,0xe5,0xdd,0xa5,0x10,0xc3,0x2f,0xef,0xf5,0x35,0xca,0x2e,0x8a,0x02,0x43,0x4b,0x32,0x6e,0x01,0x58,0xbc,0x87,0x8e,0x88,0x48,},{0x33,0xd6,0xcc,0x05,0xa4,0x34,0xe4,0x19,0x28,0x0d,0x58,0x64,0xa1,0xaf,0x20,0x9a,0x2c,0x67,0x68,0x14,0xb7,0x0f,0x72,0xf8,0x14,0x1a,0xc7,0xe0,0x57,0x3e,0xe6,0x3e,},{0xf1,0xe4,0x45,0x14,0xd2,0xec,0xbc,0xc8,0xd1,0xa7,0xe8,0x4b,0xf5,0x84,0xce,0x73,0x18,0x35,0xe9,0x89,0x4f,0x88,0x97,0x4f,0x09,0x8d,0x45,0x6b,0x60,0x71,0x8f,0x57,0x5e,0xf4,0xd8,0x06,0x2f,0x21,0x82,0x50,0x42,0x50,0xcf,0x83,0xbb,0x2a,0xf2,0xa7,0x9b,0x1f,0x58,0xa6,0xa9,0x7b,0xd9,0x8d,0xa4,0x67,0x13,0x2d,0x7b,0xec,0x2f,0x05,},\"\\xe2\\x76\\xb1\\x19\\x12\\xcc\\xa5\\xa8\\x4b\\xba\\x65\\x0c\\x17\\x2a\\xef\\x3a\\x4d\\x5f\\x91\\xac\\x72\\x29\\x13\\xbb\\x89\\x1a\\x3a\\xb0\\x42\\x4a\\xb0\\x7e\\xa7\\x09\\xcb\\x8b\\xba\\x3a\\x3d\\x11\\xf8\\x2f\\x51\\xc2\\xaf\\x01\\x62\\xa8\\x2f\\x72\\x19\\xce\\x27\\xb3\\x5a\\x30\\x50\\x7d\\x53\\x6a\\x93\\x08\\x17\\xe4\\x0f\\x85\\xa2\\x2a\\x5a\\x43\\x2b\\x94\\xd1\\x92\\xc3\\xc8\\x91\\x17\\x77\\xcf\\xdb\\x7f\\xe9\\x37\\xa6\\x75\\x02\\x77\\x0d\\x6d\\x75\\x75\\x3d\\x3a\\xe8\\x82\\x29\\xe0\\x8f\\x1e\\xd2\\x3b\\x43\\x28\\xd8\\x62\\xac\\x61\\x86\\x3c\\x06\\x3e\\xa9\\x84\\x8f\\x8a\\xb9\\x6a\\x02\\x13\\xd7\\xb9\\x36\\xc4\\x8f\\xe7\\x54\\x83\\x6c\\x98\\x48\\x78\\x59\\xd1\\x99\\xb3\\xd9\\x40\\x39\\x27\\x16\\xa1\\xd5\\x69\\xe6\\xc0\\xcb\\x1b\\xa9\\x18\\x93\\x2c\\xf8\\x85\\x25\\xe2\\x56\\xc8\\xab\\xb1\\x1a\\xaf\\x0b\\x45\\x46\\x55\\xd5\\xdb\\x55\\x71\\x3c\\xeb\\xba\\x28\\x7a\\xe2\\x02\\x65\\x1a\\xc8\\x72\\xbf\\xc8\\x0f\\xea\\xa7\\xe0\\x0d\\x47\\xc0\\xbe\\x38\\xe6\\x58\\xf7\\xc5\"},\n{{0x90,0x72,0x1c,0x43,0xbc,0x36,0x6f,0x24,0xbf,0x4e,0x8c,0x99,0x3e,0x13,0x80,0x24,0x68,0x2f,0x10,0x29,0xdb,0xa3,0x5a,0xbe,0xb0,0xd6,0x0c,0x7f,0xa7,0x10,0x02,0x1c,},{0x7c,0x63,0xa2,0xf1,0x3b,0x7b,0x22,0x0a,0x0b,0xb7,0x52,0xe3,0x80,0x07,0x53,0xb8,0xb6,0xb3,0x26,0x69,0x37,0x8c,0xe1,0x31,0xbb,0x77,0xa9,0xa8,0xd2,0x30,0xe9,0xae,},{0xd2,0x06,0x4a,0x6d,0x6c,0x99,0xc6,0xc3,0xf1,0x52,0xd2,0xd4,0x35,0xf2,0x4e,0x34,0xb5,0x45,0x9b,0x08,0x2e,0xf1,0x1e,0x94,0x4a,0x77,0xff,0x54,0xdd,0xf9,0x86,0x27,0x37,0xec,0xb2,0xac,0x8d,0x54,0x20,0x7d,0x36,0xc5,0x1a,0xd4,0x1f,0x36,0x49,0x0a,0x11,0x1b,0xa8,0x0e,0x12,0x6b,0xfe,0xcb,0x09,0xde,0xf6,0xac,0xcb,0xdf,0x88,0x0e,},\"\\x65\\x1c\\x96\\x17\\xca\\xc9\\x58\\xc7\\xed\\xd4\\xa5\\xf3\\xfe\\xdf\\xb8\\x3d\\xc9\\x71\\xab\\xfb\\xb6\\x9a\\x31\\xe8\\x98\\xcc\\xa8\\x47\\x2e\\xf0\\x68\\x03\\x4a\\x6d\\x23\\x76\\xee\\x0e\\x72\\xd0\\xa9\\xbf\\xee\\x27\\x57\\x96\\xc3\\x79\\x5a\\xda\\xc8\\xeb\\xe1\\xd1\\x2b\\x66\\xec\\x26\\x8f\\x6b\\x75\\xfa\\x39\\x41\\x15\\x4f\\x99\\xe2\\x23\\xfa\\xf2\\xcb\\xab\\x5b\\x92\\xe2\\xb3\\xba\\x7b\\x79\\xbe\\x77\\x00\\xef\\x9d\\xba\\x69\\x25\\x3c\\xce\\x53\\x56\\xb0\\xc4\\xe7\\x47\\x03\\xcf\\xca\\xfd\\xb5\\x54\\x68\\x50\\xb4\\x62\\x32\\x67\\x5c\\x90\\xc0\\x2d\\x5e\\x42\\x6d\\x33\\xd6\\x0c\\xeb\\xf0\\xc7\\x93\\x01\\x82\\x37\\x9d\\xbb\\x00\\x7f\\x53\\x61\\x63\\xc8\\xdd\\xbb\\xd3\\x15\\x7b\\xb2\\xda\\x62\\x34\\x01\\x33\\xf0\\x0a\\xe2\\x68\\x2e\\xc6\\xba\\xa6\\x41\\x6b\\x5a\\x01\\x52\\x1c\\xc1\\x0e\\x04\\x69\\x52\\x95\\xf2\\xe5\\xb9\\x4c\\x05\\xf0\\x03\\x83\\xff\\xe9\\x54\\x83\\x07\\x97\\xf6\\xdf\\x82\\x31\\x72\\x53\\x2f\\x98\\x16\\x5f\\xe3\\x14\\xab\\x32\\x59\\x29\\xaf\\x83\\x85\"},\n{{0x9c,0xec,0x24,0x67,0x58,0xe4,0x12,0xe7,0x37,0x8b,0x45,0x79,0xea,0xfe,0x9f,0xac,0x5a,0x25,0xd5,0x40,0x5f,0x92,0x70,0xb5,0xd7,0xe5,0x43,0x41,0x4e,0xc3,0xd5,0xda,},{0x97,0x5a,0x9e,0x6a,0x15,0x2c,0xae,0xbb,0x2f,0x9d,0xd0,0xde,0xb7,0x6d,0xd9,0x22,0xb6,0xdc,0x77,0x05,0x5d,0xda,0x03,0xfb,0xae,0x9e,0x7c,0x68,0x5d,0x07,0x3a,0xa1,},{0x9b,0xad,0x1e,0x3b,0x12,0x79,0xef,0x65,0x8f,0x4d,0x07,0x16,0x44,0xc6,0x3a,0xe2,0xb7,0xa7,0x80,0x35,0x7e,0x9d,0xc4,0x26,0xf1,0x65,0x0e,0xc0,0x63,0x4d,0xfc,0x52,0x0f,0x8e,0xda,0x9d,0xc8,0xf1,0x0a,0xa7,0x32,0x4c,0x59,0x42,0xd2,0x34,0x7f,0xf8,0x80,0x2b,0xd9,0x0e,0x95,0xfc,0xec,0x31,0x33,0x52,0xcd,0xae,0x64,0xf3,0x2a,0x04,},\"\\x17\\xec\\x9b\\xd4\\x7a\\xdd\\x6c\\xcf\\xbd\\x78\\x7a\\xf0\\xd9\\x01\\x3e\\x9c\\xc9\\x79\\xaa\\xf8\\x50\\xe0\\x94\\x26\\xd3\\xb2\\x8e\\xdf\\xd7\\x12\\x96\\xeb\\x31\\xff\\x8b\\x21\\xc5\\xfe\\x7b\\xe0\\x50\\xf5\\x36\\x32\\x4c\\x3e\\xc4\\x88\\x50\\xe0\\xb5\\x08\\xa3\\x6b\\xb4\\xcb\\x7e\\x75\\x4b\\x32\\x71\\x83\\xa1\\xb3\\x94\\xd8\\x8a\\x79\\x41\\xd1\\xce\\x8d\\xac\\x62\\xa5\\xd8\\x29\\x18\\x74\\xd7\\x84\\x85\\xe5\\x1f\\x29\\xed\\x05\\x86\\x5a\\x20\\x6e\\x52\\xec\\xb1\\x2c\\x5d\\x10\\x7d\\x4f\\xf9\\x6f\\x25\\xd3\\xc5\\xd1\\x81\\xd2\\xc4\\xba\\x64\\x63\\x60\\x0d\\xb1\\xcc\\xa3\\x28\\x57\\xfc\\xf5\\x97\\xcb\\xdf\\xb2\\xfd\\xa2\\x70\\x8a\\x8a\\xba\\x28\\x1b\\x43\\xc3\\xd2\\x8c\\x4a\\x4e\\x79\\x83\\x36\\x15\\x09\\xf6\\x1a\\x10\\x74\\xe6\\xf0\\xad\\x61\\x01\\xc7\\xb5\\x67\\xee\\x40\\x78\\xe9\\x83\\x9c\\x47\\xf4\\x65\\x31\\xb7\\x29\\xff\\x0e\\xfe\\xef\\x7c\\x9d\\x1a\\x8d\\x83\\x3d\\x9c\\x0f\\x42\\x81\\x2a\\x34\\x18\\x7c\\x3a\\x77\\x8c\\x16\\x5c\\x09\\xd6\\x45\\x9c\\x9c\\x7c\\xea\\xa2\"},\n{{0xd1,0x40,0x3f,0x63,0x20,0x2e,0x08,0x05,0x25,0x84,0x3b,0xde,0x25,0x5e,0xeb,0x6b,0x67,0x83,0xc1,0xca,0xae,0x9d,0x6e,0xd0,0x0b,0xa6,0x08,0x05,0xbe,0xd1,0x94,0x1f,},{0x23,0x8a,0xea,0x3a,0xd6,0xd6,0xf2,0x77,0x83,0xe7,0x05,0x16,0xbb,0xfc,0xca,0x47,0x70,0x36,0x6b,0x50,0xed,0x0f,0xe6,0xa4,0xe9,0x66,0xb5,0x3a,0xf1,0x21,0xa7,0x21,},{0x8e,0x60,0xe7,0x3c,0x06,0x38,0x16,0x79,0x5e,0x29,0xf5,0xd6,0x4e,0xce,0x11,0x59,0xf1,0xb5,0xd5,0x02,0x1a,0x6f,0x8f,0x65,0x5e,0x26,0x1a,0x4d,0x00,0x26,0xf5,0xb9,0x4f,0xf2,0x92,0x32,0x50,0x49,0x9d,0x99,0x52,0x98,0x48,0x05,0x12,0xe4,0x12,0x62,0x76,0xaa,0x4a,0x22,0x6d,0x01,0x5a,0x95,0x82,0x7b,0x3c,0xe6,0x92,0xe2,0x33,0x02,},\"\\xc4\\xf1\\x7d\\x44\\x2f\\xba\\x4c\\xa0\\xdf\\x8d\\xc1\\xd0\\x62\\x8d\\x7d\\x7f\\x36\\xb6\\x0b\\x57\\x58\\xd7\\xc1\\x3b\\x80\\xb8\\xf9\\x7a\\x62\\x12\\x4d\\x96\\xa2\\x3b\\x27\\x95\\x65\\x49\\x5a\\x8a\\xcc\\xab\\x59\\x97\\x11\\x5b\\x13\\xa4\\xba\\x22\\x0a\\x73\\x95\\x7e\\xb7\\x93\\x05\\x20\\xac\\xbb\\xfb\\x6f\\x54\\xcf\\x68\\x72\\x6b\\x64\\x50\\xc6\\xff\\xa9\\x47\\x0b\\x05\\x5e\\xa2\\x62\\x91\\x4e\\x2b\\xc6\\x12\\x63\\x3f\\x1a\\xc3\\xd0\\x61\\x8a\\x23\\xdf\\xf1\\x88\\xa7\\x33\\xd7\\x6b\\xcb\\xcc\\x46\\x0f\\x52\\xab\\x61\\xe1\\x99\\x38\\xf9\\xc8\\xca\\xaa\\x79\\x2c\\x20\\x8d\\x1f\\x6c\\x75\\x47\\x28\\x90\\x5f\\xda\\x51\\xd8\\x81\\xa3\\x47\\xa5\\x3d\\xa7\\x44\\xd3\\xba\\xad\\xc0\\xa7\\x6c\\x47\\x4c\\x55\\x86\\x80\\x26\\x90\\x95\\xf9\\x08\\x4a\\x74\\x47\\x1d\\x5c\\x09\\xff\\xc2\\x91\\x41\\xb5\\xbf\\xaf\\x49\\x54\\xdf\\xac\\xbc\\xa6\\x63\\xd0\\x37\\xb1\\x7e\\xbf\\x95\\x59\\x88\\x22\\x33\\xe5\\xca\\x5a\\x8b\\xf7\\x5c\\xca\\x4f\\xc9\\xc5\\xa4\\x10\\x9f\\x32\\xe1\\x45\\xf3\\x85\\x3b\\x17\"},\n{{0xbd,0xf6,0xbd,0xc3,0x1a,0xb0,0xb5,0x31,0x37,0x84,0x48,0x3a,0xbe,0xca,0x6e,0xa5,0xe9,0xcd,0xc6,0x8f,0x81,0xb2,0x1f,0x35,0x0d,0x09,0xc3,0x90,0x7b,0xb9,0xb6,0xa1,},{0x03,0x62,0x77,0x12,0xb7,0x55,0xe5,0x06,0x9f,0xb9,0xab,0x8f,0x9e,0x89,0x97,0x24,0x02,0x9a,0x7f,0x26,0x8a,0xf9,0x39,0x88,0x21,0xee,0xec,0x93,0x60,0xc9,0x28,0x5b,},{0x38,0xfa,0xc6,0x03,0xed,0x24,0x6f,0x83,0x3f,0x1c,0x0f,0xd4,0x58,0x56,0x98,0xb0,0xa7,0x13,0x05,0xef,0xf0,0xd1,0x4a,0x00,0x49,0xb3,0xce,0xf0,0x73,0xbd,0x03,0x6d,0xd4,0x51,0xb3,0xda,0xba,0xda,0xae,0xae,0xa2,0xae,0xaf,0x83,0xd3,0x95,0x74,0x6f,0x4e,0x86,0x86,0x6a,0xda,0x97,0x1c,0xbe,0x48,0x2e,0xdb,0x04,0x19,0x33,0x2f,0x0e,},\"\\x90\\xa6\\x6a\\xaf\\xa5\\x64\\x2a\\x98\\xe7\\x9f\\x0d\\x88\\x14\\x70\\x80\\x16\\x7b\\x11\\xe4\\x46\\x65\\x18\\xf1\\x95\\xcd\\xdd\\x89\\x40\\xd1\\x2e\\xe4\\x91\\x8d\\x31\\xa6\\xd4\\xcb\\x77\\xd0\\xbf\\x5a\\xf2\\x99\\x83\\xbb\\xe5\\x08\\x56\\x10\\xa7\\x9d\\xaf\\x0c\\x75\\xa7\\x8c\\xcb\\xcf\\xfb\\xbd\\xab\\x21\\x89\\xc3\\x94\\xae\\x24\\xe2\\x65\\xbd\\x8c\\x55\\xfd\\x3f\\x40\\x98\\xe1\\xb1\\x75\\x57\\x75\\x49\\x51\\x8e\\x7a\\x4d\\xcf\\x74\\x52\\x08\\x6d\\xd1\\x27\\x8d\\xd5\\x8e\\xa4\\xc0\\xaa\\x69\\x0e\\x91\\x79\\x51\\xef\\x39\\xfc\\xff\\x60\\xcb\\xfa\\x1e\\x90\\x91\\x0b\\xab\\x53\\x74\\x92\\x8d\\x47\\x22\\xf7\\x02\\xbf\\x5a\\xd6\\x02\\x8f\\xfd\\xa6\\x54\\x1f\\xa5\\xba\\x1a\\x37\\x79\\xec\\x78\\xb0\\xa9\\x5f\\xe3\\x85\\x0c\\x74\\x8b\\x6c\\x8f\\x42\\xf3\\x30\\xec\\x79\\x54\\x1a\\x52\\xa1\\xcf\\x57\\xdb\\x72\\xdf\\x4f\\x92\\xce\\x7f\\x74\\x8a\\xee\\xf1\\xaf\\x33\\xbc\\x5a\\xe0\\xa8\\x2c\\x89\\xdf\\xf2\\x16\\xf2\\x3a\\xec\\x16\\x8a\\x7d\\xbb\\x51\\x0a\\xa6\\x32\\xda\\xab\\xcc\\x97\\x1b\\x3f\"},\n{{0x57,0xb3,0xb1,0x4a,0xce,0x1c,0xd0,0xcd,0x60,0x3e,0x63,0x28,0xbd,0x21,0x9e,0xe7,0xd9,0xd0,0x94,0x48,0x7f,0xa6,0x68,0xf2,0x8a,0xee,0xc0,0x2b,0x43,0xc9,0x09,0xa7,},{0x24,0xe6,0xb6,0x39,0x5f,0x97,0xea,0x0e,0x23,0x71,0x86,0xd4,0x69,0xb7,0x19,0x23,0xd2,0x11,0x3a,0xdf,0x40,0x3b,0xee,0xeb,0x4a,0x2d,0x27,0x90,0x9a,0xaf,0x3e,0xda,},{0xfc,0x79,0xfd,0xc6,0xd0,0x90,0x88,0x7a,0x61,0xe4,0x3c,0x6b,0x91,0x87,0xb6,0x57,0xd2,0xe4,0xd9,0xcb,0xaf,0xd6,0xe7,0xca,0xeb,0x7e,0xbd,0xea,0x84,0x28,0x25,0xb7,0x8f,0xb9,0x49,0xd2,0xc4,0x9a,0x0c,0xf3,0x8b,0x6c,0x73,0x29,0x6d,0x82,0xc8,0xdd,0xeb,0x1f,0xe2,0xd4,0x0a,0xad,0xdd,0x79,0x64,0xda,0x68,0xac,0xf8,0xc6,0x6f,0x0e,},\"\\xb2\\xe0\\xde\\xdd\\x80\\x2e\\xed\\x99\\x6d\\xbd\\x58\\x36\\xbf\\x86\\x88\\xb0\\xd1\\x20\\x1b\\xf5\\x44\\x2f\\xf9\\xbb\\xd3\\x51\\xae\\xef\\xe1\\xa0\\xc2\\x1f\\xea\\x2b\\x5c\\x9f\\xe5\\xed\\xee\\x47\\xe9\\x21\\x09\\x9b\\x05\\xae\\xda\\xa8\\x03\\x67\\xc1\\xce\\x08\\x82\\x1d\\x78\\x3a\\x5b\\x64\\xcf\\x05\\x9c\\x0f\\x43\\x35\\x08\\x39\\x86\\xa5\\xa6\\xec\\xff\\x8c\\x84\\xfd\\x40\\xe0\\xba\\x5d\\xd5\\xe5\\xd2\\xf0\\x11\\x12\\xa8\\x4c\\xe5\\xcf\\x8e\\x0d\\xb7\\x8b\\xeb\\x18\\x2d\\x91\\x39\\xc0\\xb0\\xf3\\xe0\\x06\\x0a\\x3f\\xa7\\x38\\x69\\xe9\\x64\\x23\\xf1\\x70\\xdf\\x9a\\xf1\\xcb\\x9c\\x35\\x56\\x6d\\x87\\xdf\\xf5\\x42\\x22\\x3f\\x6d\\x43\\x9b\\xdb\\x54\\x72\\x9d\\x36\\x6a\\xff\\x63\\x7b\\x0f\\x36\\xa5\\xd1\\x4b\\x15\\xd6\\x12\\xbd\\x03\\x07\\x6c\\xc4\\xd0\\x4c\\x1f\\x25\\xb3\\xba\\x84\\xe0\\xd1\\xfe\\x47\\x4e\\x57\\x18\\xd1\\xa1\\x7d\\x5a\\x48\\x84\\x65\\x66\\x2e\\xe4\\xc3\\xf6\\x64\\xb4\\xc9\\x27\\x4b\\x64\\x9d\\x78\\xce\\xa4\\xe8\\x52\\x43\\xf3\\x71\\x32\\x39\\x04\\x8a\\x90\\x8c\\xe3\\xe1\"},\n{{0x01,0x8a,0x2c,0x3d,0xee,0xa5,0x0a,0xb5,0x06,0x75,0x1f,0x9c,0x2a,0xda,0xad,0xfd,0x9e,0x21,0x92,0x12,0x16,0x09,0x93,0x16,0x84,0xeb,0x26,0x5e,0x19,0x3e,0x7f,0x89,},{0xaf,0x41,0x0b,0xdd,0xde,0xfc,0x64,0x4e,0xf1,0x2c,0x98,0x99,0xff,0x71,0xb9,0xe1,0xd0,0xdf,0xa3,0xd6,0x9d,0x8c,0x2c,0xd6,0x76,0xc1,0x91,0x6b,0x34,0x59,0x1c,0xfd,},{0x7a,0x44,0xe6,0xa3,0x19,0x32,0xde,0xe6,0xdc,0x2d,0x83,0x94,0xe2,0x9a,0x65,0x51,0xd1,0x3e,0x6c,0x6f,0xfd,0xfa,0x21,0x8f,0xa5,0xb9,0x98,0x66,0x8d,0x84,0x39,0xdb,0x5e,0x05,0x37,0x9f,0xbf,0xa0,0xda,0x5b,0x56,0x3e,0xd9,0x66,0x43,0x5a,0xe2,0xc5,0x4e,0x3a,0xd1,0x6e,0x1a,0x9f,0xca,0x1f,0x5a,0x15,0x7a,0x08,0x07,0x04,0xab,0x03,},\"\\xcf\\x78\\x13\\xef\\xac\\x12\\xad\\x1c\\x7c\\x73\\x22\\xcc\\xbe\\x54\\xaa\\x0e\\x9a\\x8b\\xa4\\xfd\\x43\\x45\\xb0\\x6e\\x4c\\xe7\\xa3\\x5c\\x8b\\x1c\\xd5\\xe3\\xf7\\xf0\\x68\\x85\\x33\\x84\\x9b\\xa2\\xcf\\x4c\\x75\\xb6\\xf2\\x09\\x26\\xa1\\x19\\x4a\\x72\\xdf\\x0e\\x1b\\x1b\\x34\\x45\\x6a\\x21\\x33\\x11\\x2d\\x00\\x67\\x22\\xfe\\x81\\x1d\\x5e\\x40\\xc4\\x12\\x11\\x59\\xde\\xd8\\x89\\x90\\xc0\\xac\\x2b\\xfd\\x34\\xf3\\x5a\\xf4\\xf0\\x7c\\xc4\\x02\\xe9\\xa3\\x81\\xa6\\x75\\xd0\\x3f\\xec\\x7e\\xc4\\x38\\xc4\\xad\\x9d\\x92\\x9a\\xec\\x8f\\x24\\x2d\\xef\\x02\\x3c\\x99\\x3c\\x9e\\x8b\\xa1\\x8c\\x74\\x28\\xe8\\x8f\\xde\\x68\\xa4\\x71\\x1e\\x50\\x6d\\x79\\x69\\xf6\\x3c\\x8e\\x0b\\xc8\\x3f\\xf0\\xde\\x4e\\x13\\x36\\x10\\x6c\\x05\\xe0\\x9d\\x59\\x22\\x40\\x0e\\x8a\\x81\\xbf\\x54\\x88\\x56\\x67\\x89\\x97\\x85\\x88\\x2b\\x70\\xf2\\x0d\\xd8\\xfb\\x1e\\x75\\xf5\\x85\\x5b\\x76\\x5a\\x25\\x6d\\xa4\\x34\\x1b\\xf2\\x3e\\xa0\\xff\\xa1\\x8a\\xad\\xda\\x38\\x18\\x16\\x94\\x60\\x01\\x04\\x56\\x69\\xc8\\xd0\\x4d\\xf0\"},\n{{0xbe,0xa4,0x45,0xe9,0xb6,0xd3,0xf2,0x12,0x35,0x91,0x2c,0xd6,0xc4,0x2e,0xc0,0x57,0x72,0x97,0xca,0x20,0xa1,0x03,0x57,0x88,0x0c,0x2b,0x84,0x6d,0xd8,0xe2,0xcc,0x77,},{0x02,0x41,0x74,0x96,0x62,0x21,0x69,0x9e,0xa4,0xb0,0xa3,0x7e,0x51,0x7f,0xf9,0xb1,0x65,0x98,0xae,0x4d,0x4e,0x83,0xbf,0xa3,0xca,0x50,0xbc,0x61,0x68,0x41,0xf5,0x95,},{0x69,0x64,0xb9,0xc5,0x90,0x3e,0x74,0xe9,0x93,0x28,0xac,0xef,0x03,0x65,0x58,0xee,0xcd,0x33,0x69,0x15,0x0a,0x52,0xe2,0xcb,0xad,0x4b,0xbb,0x97,0xd4,0x61,0xb3,0xdf,0xc6,0xb3,0xe8,0x45,0x58,0x13,0xa4,0xf4,0xbd,0xca,0x46,0x30,0x2e,0x02,0xe6,0x83,0xec,0xea,0x18,0x20,0x17,0x1c,0x53,0x8e,0x54,0xc3,0xde,0x6c,0x95,0x4a,0xa4,0x07,},\"\\x47\\x43\\xc7\\xc0\\x99\\xab\\x81\\x59\\x27\\xb3\\x67\\x4d\\x00\\x54\\xb6\\xde\\x59\\xaf\\x28\\x11\\xab\\xc2\\xcf\\x7f\\xde\\x08\\xf6\\x29\\x29\\x18\\x5a\\xdc\\x23\\x8f\\xad\\xd5\\xe7\\x5a\\xe3\\xba\\x00\\x36\\xff\\x56\\x5a\\x79\\x40\\x5b\\x42\\x4f\\x65\\x52\\x33\\x1e\\x27\\x89\\xd9\\x70\\x9a\\xc1\\xec\\xbd\\x83\\x9a\\xa1\\xe9\\x1c\\x85\\x48\\x17\\x59\\x79\\x58\\xcc\\x4b\\xd9\\x1d\\x07\\x37\\x75\\x07\\xc2\\xc8\\xd3\\xc0\\x06\\xcf\\xeb\\x6c\\x0a\\x6c\\x5a\\x50\\xee\\xe1\\x15\\xe2\\x11\\x53\\xdd\\x19\\x8e\\xa0\\xa3\\xaf\\xf6\\x2b\\x70\\x75\\xd5\\xa4\\x61\\x78\\x87\\x83\\xf0\\x50\\xe6\\x59\\xc5\\x72\\x96\\x3d\\x7a\\x59\\xe5\\xaf\\xaa\\x2b\\x9c\\x50\\x1f\\x43\\xc6\\xac\\x08\\xab\\x47\\x97\\xc4\\x56\\x6d\\x22\\xb9\\x3c\\xdf\\x65\\xa9\\x9a\\x2a\\x1d\\x63\\x8e\\x79\\xf7\\x2b\\x5f\\x46\\x31\\xfe\\x5e\\x9e\\x5f\\x96\\x8f\\x6d\\xb7\\xa1\\x88\\x0d\\xf5\\x1d\\x8f\\xeb\\xc1\\x49\\x42\\x67\\x2f\\x8e\\xa6\\xfc\\x3a\\x72\\x81\\x4a\\x44\\xd6\\x6d\\x14\\x84\\x20\\xa6\\x90\\x00\\xf6\\x8c\\x33\\x0d\\xe5\\xb8\\x0f\\xc6\"},\n{{0x64,0x47,0x54,0x0e,0xd7,0xbe,0x0a,0x11,0xc2,0xa8,0xde,0x79,0x3d,0x83,0xc6,0xe2,0x44,0x98,0x3d,0xb1,0x8d,0x78,0xec,0x9d,0x75,0xf1,0x72,0x9c,0x92,0xe0,0xfd,0xf1,},{0x39,0x12,0x12,0xc8,0xed,0xc4,0xd3,0x34,0xa5,0xbe,0xc8,0x60,0xef,0x0f,0x5e,0xbb,0x5e,0xc4,0x4e,0x8b,0xb5,0x1c,0x0f,0x67,0x41,0x99,0x89,0x59,0xb2,0xb3,0x79,0xfc,},{0x3a,0xb5,0xf8,0x8e,0x2f,0x72,0x76,0xb5,0xb6,0x58,0x3d,0xff,0xba,0x56,0x39,0x99,0x3a,0x90,0x5d,0xbf,0x9b,0x88,0xce,0xea,0xaa,0xae,0x33,0x35,0x80,0x0e,0x4a,0x5f,0x10,0xf8,0x3d,0xa6,0xd6,0x22,0x5a,0x8d,0xbe,0x99,0xae,0x80,0x07,0x50,0x09,0xdd,0x50,0x87,0x86,0xb3,0x97,0x51,0x13,0xdb,0x47,0x8e,0x14,0xba,0x10,0x1b,0xee,0x0f,},\"\\xa4\\x38\\x1c\\x76\\x38\\xc4\\x87\\x99\\xe9\\xb5\\xc4\\x3f\\x67\\xfc\\x3a\\xa3\\xcb\\xb5\\xec\\x42\\x34\\xf3\\x7e\\x70\\xcc\\xcc\\xce\\xd1\\x62\\x7a\\x57\\x68\\x3d\\x1e\\x53\\xf4\\xe0\\x88\\x3d\\x8b\\x46\\x2b\\xf8\\x3f\\x13\\x08\\x63\\x03\\x68\\xc8\\x9b\\x49\\x15\\x33\\xdd\\xb8\\xc9\\xa5\\xb9\\xe8\\x15\\x50\\x02\\xfd\\xd5\\x81\\xa9\\xa5\\xbe\\x0e\\x43\\x0b\\x90\\x86\\xa6\\xbe\\xac\\x47\\x20\\x21\\x0f\\x87\\xb1\\x4e\\x86\\x2d\\x97\\xe5\\xcc\\x69\\x28\\x67\\x86\\xa7\\x58\\x67\\x23\\xf2\\x31\\xef\\x0e\\x3e\\x1b\\x93\\x2d\\xbb\\xa3\\xa1\\x8a\\x0c\\xb2\\x21\\xcb\\x07\\xf8\\x0e\\x6a\\x8e\\x13\\x00\\x05\\x6c\\x13\\xe7\\x02\\xb2\\x3b\\xfb\\x32\\x50\\xec\\x7c\\xc8\\x64\\xd5\\xc7\\xec\\x57\\x86\\x24\\x07\\x09\\xc5\\x60\\x24\\xea\\x6b\\xe5\\xf7\\xb1\\x5a\\x4f\\xa5\\x55\\x5e\\x39\\xa7\\x44\\xa1\\xdc\\x55\\x7d\\xf5\\xb9\\x48\\xdb\\x22\\x0b\\x3d\\x57\\x45\\x74\\x66\\x91\\xda\\xcb\\x44\\x21\\x64\\x1c\\xdc\\xc1\\x2e\\x7e\\xc0\\x45\\x02\\x93\\xf1\\x9e\\xc5\\x7b\\x09\\xcf\\xf1\\x35\\x84\\x7a\\xab\\xe4\\x46\\xa6\\x13\\x32\"},\n{{0x0c,0x58,0x7a,0x81,0x1a,0xdd,0x88,0xb9,0x94,0x45,0x8c,0x3c,0x80,0x8a,0xc4,0xe3,0xa8,0x3a,0xfa,0xb2,0x6d,0x4c,0xff,0x5c,0x96,0x1b,0x9d,0xf0,0xb5,0xc8,0x33,0x44,},{0x06,0x78,0x3b,0x0c,0xdc,0xc5,0x02,0x8c,0x56,0x38,0xbd,0x74,0x8f,0x0b,0xc7,0x6f,0x7e,0x94,0xd1,0xaa,0x20,0x15,0xca,0x94,0x87,0x38,0xa3,0x50,0x04,0x60,0xac,0xa0,},{0x33,0xb4,0xf4,0x27,0x4f,0x20,0x00,0x8a,0x72,0x1d,0x1e,0x8d,0x05,0x4a,0x2b,0x4e,0x95,0x32,0x7e,0x38,0xbb,0x07,0xb3,0x3c,0x4b,0xee,0x7e,0x1c,0xe0,0x20,0xa4,0x42,0xfb,0x26,0x27,0xed,0xa3,0xb7,0xac,0x93,0xcd,0x3a,0xb0,0xb1,0x2b,0x99,0x93,0x5a,0x1a,0x92,0x33,0x11,0x16,0x04,0xda,0x4a,0xcf,0xfb,0x53,0x15,0xb9,0x07,0x12,0x0b,},\"\\xf5\\x6d\\xc6\\xb7\\x60\\x76\\x32\\x5b\\x21\\x26\\xed\\x11\\xd1\\xf0\\x9d\\xec\\xef\\x9d\\x15\\xc3\\x1d\\x0e\\x90\\xcd\\xb1\\xa2\\x7e\\x08\\x9c\\xc5\\x63\\x29\\xf6\\xec\\x3f\\x66\\x5e\\xb6\\x73\\x9e\\xc5\\x67\\x8b\\x3f\\x37\\xee\\x1f\\xb3\\x7d\\xeb\\x9e\\x24\\x00\\x92\\xb7\\xa8\\x8f\\xd2\\x55\\x25\\xac\\xd5\\x5e\\x29\\x4e\\xb1\\x04\\x6f\\x9b\\x1b\\x69\\xa8\\x47\\xeb\\x9c\\xeb\\x7b\\x15\\x93\\xb9\\xf6\\x97\\x8e\\xf6\\x18\\xc1\\x5d\\xe4\\xe0\\x59\\xec\\xc3\\xbf\\xda\\x32\\x97\\xa1\\x9c\\x2d\\xf2\\x02\\xad\\xf7\\x21\\x55\\xcf\\x21\\xea\\xbd\\x03\\x94\\x8d\\xf1\\x51\\x98\\xe8\\xa6\\x8b\\x08\\x84\\xf9\\x3a\\xd5\\xe3\\x6e\\xb0\\x98\\x3c\\xca\\x30\\xe4\\x5a\\x8b\\x4b\\x5f\\xb8\\x13\\x6f\\xde\\xa8\\xa3\\x34\\x1d\\xd7\\x87\\x75\\x40\\xa5\\x57\\xde\\xbf\\x75\\x30\\xcc\\x33\\xae\\xee\\xf6\\x27\\x1c\\x3f\\x0a\\xf6\\xd0\\x97\\x87\\xe8\\x15\\xf2\\xf1\\xdd\\x25\\xce\\x4d\\x2f\\xd0\\x9f\\xfa\\x9f\\x53\\x08\\x1b\\x46\\x9c\\x50\\x0d\\xa4\\xd4\\x41\\x80\\xc0\\x4e\\xb1\\x86\\x93\\x29\\xcb\\xf2\\xd8\\x23\\x18\\x7e\\x83\\x1c\\x24\"},\n{{0x66,0xcf,0x40,0x1a,0x21,0x42,0xfc,0xf4,0xa8,0x01,0x80,0x46,0xcf,0x41,0x40,0xbc,0xa1,0x8d,0x76,0xef,0x62,0x66,0xe7,0xa0,0x24,0x75,0x7d,0xf1,0x72,0xa5,0xd6,0x53,},{0x67,0xd4,0x8d,0xfd,0x23,0x74,0x3c,0xc2,0xca,0x40,0xe4,0xdf,0xd6,0xb8,0xcc,0x5d,0x84,0xbe,0x82,0xdd,0x2b,0x11,0x20,0xcc,0x47,0x6e,0x6a,0xf6,0xf2,0x5e,0xcc,0x98,},{0xd6,0xb0,0xe8,0x0e,0x60,0xbc,0x1b,0x29,0xab,0x8f,0x74,0x80,0x8f,0xc4,0x60,0x84,0x77,0x95,0xcc,0xb8,0x87,0xba,0xc0,0xec,0xaa,0x8e,0x13,0x52,0x97,0xa8,0x50,0x97,0x71,0x2b,0x24,0xb0,0xa1,0xfb,0xaf,0x7a,0x67,0xc5,0xd5,0x30,0xa4,0x7d,0x06,0x43,0xfc,0x87,0x02,0xc0,0x59,0xd2,0x15,0xfb,0x11,0x2d,0xbe,0x47,0x5e,0x5b,0xca,0x0d,},\"\\xda\\xa8\\xef\\xb3\\xfd\\x41\\xf1\\x2f\\xbc\\x55\\xbd\\x60\\x46\\x41\\x57\\xa2\\x6d\\x71\\x86\\x32\\xd8\\x82\\xae\\xdb\\x6b\\xf9\\x8e\\x47\\xdd\\x23\\x37\\x87\\x9e\\x0b\\x46\\x45\\x2e\\x06\\x2e\\x6d\\xfb\\xff\\x3e\\x7b\\xca\\x72\\x89\\xe4\\xef\\x6b\\x3f\\x41\\xd4\\xb0\\x3b\\xdc\\x2c\\x84\\x2a\\xfe\\x97\\xf3\\x02\\x98\\x83\\xed\\x45\\xf6\\x05\\x4d\\xde\\x96\\x90\\x64\\x9a\\xbb\\x2b\\x8d\\xc2\\x8f\\x5f\\xe8\\xce\\xcf\\x80\\xfc\\x1e\\xa4\\x11\\xbf\\xc4\\x0b\\xbf\\x4f\\xd2\\x0b\\x21\\x8c\\xf4\\x7e\\xa8\\xee\\x11\\x8d\\x4d\\x5a\\xef\\xa5\\xc1\\xbf\\xa0\\x8a\\x8f\\xb1\\xb3\\x0d\\x6d\\xe0\\x97\\x7c\\xd1\\x5e\\x50\\x29\\x2c\\x50\\x1f\\x2e\\x71\\xce\\x27\\x40\\xff\\x82\\x8b\\x84\\x32\\xda\\x5a\\x59\\x4b\\xab\\x52\\x23\\x76\\x0b\\x64\\x79\\x2e\\xd3\\xa6\\x9d\\xd7\\x5e\\x28\\x29\\x23\\x49\\x43\\x65\\x65\\x13\\xdf\\x1a\\x17\\xa2\\xa0\\x67\\xa9\\xa8\\xea\\xa6\\x4e\\x19\\x56\\x9f\\x46\\x93\\x9d\\x34\\xb9\\x92\\x71\\xae\\x50\\xa4\\x7d\\x7d\\xbc\\xa3\\x62\\x0c\\x81\\x25\\x5b\\x0e\\x1f\\xd1\\xf3\\xce\\xc8\\x51\\xf1\\xb1\\x1b\\x35\"},\n{{0x5d,0xbf,0x88,0x5a,0xa5,0x98,0xe8,0x95,0x57,0x1f,0x5f,0x65,0x09,0x0b,0x72,0x32,0x3e,0x9d,0x70,0xb0,0xf5,0x81,0x10,0x68,0x7a,0xfb,0xbc,0x38,0x3a,0xfe,0xdc,0xac,},{0xfa,0x17,0xeb,0xa7,0x6e,0x3b,0xc3,0xea,0x6d,0xab,0x3a,0x5b,0x12,0x0d,0xc5,0xec,0xb9,0xae,0x6f,0x00,0x13,0x8f,0x7d,0x36,0xdd,0xa9,0x26,0x8b,0xc4,0x72,0x21,0x74,},{0xe1,0x42,0x9d,0xab,0x2e,0x42,0xcd,0x03,0x5b,0x7f,0xc6,0x02,0xef,0xd6,0xba,0xf9,0x47,0x06,0xf1,0x6e,0xaf,0x2f,0x8b,0x5f,0xed,0x32,0x92,0x39,0xe8,0x75,0x60,0x5f,0xb1,0x72,0xf5,0xdd,0x9a,0xe2,0xbc,0x2e,0xb4,0x2e,0xb4,0x74,0x56,0x7e,0x29,0x2f,0x52,0x06,0xe8,0x2e,0x69,0x4b,0xca,0x0d,0x6d,0x43,0x3b,0x86,0x76,0x34,0xcb,0x0d,},\"\\x1e\\x0b\\x6c\\xf1\\x5c\\xe0\\x33\\x37\\x17\\x9c\\x02\\xd6\\x54\\x08\\xdf\\x5b\\xe9\\x20\\x0c\\x37\\x82\\xb6\\x00\\x4a\\xf9\\x4e\\xa4\\xde\\xcb\\x25\\x79\\x99\\xd6\\xfd\\xff\\x30\\x1d\\x11\\xd0\\x0c\\x98\\xc3\\x72\\xfa\\xc0\\xd0\\x26\\xcb\\x56\\xdf\\xef\\xe3\\xde\\xf7\\xeb\\x99\\xac\\x68\\xd6\\x96\\x8e\\x17\\x12\\x4d\\x84\\x46\\xf5\\x3e\\x8d\\x2d\\x3d\\xd8\\x90\\xd3\\x7a\\x23\\xc7\\xe0\\xb8\\x3a\\x48\\x4b\\x3c\\x93\\xbd\\xdf\\x6c\\x11\\x8e\\x02\\x81\\x95\\x9d\\x27\\xbd\\x87\\xd3\\x7e\\x84\\x3d\\x57\\x85\\xf4\\xa4\\x07\\x71\\x39\\x84\\x94\\xe6\\xc4\\x32\\x2f\\xbb\\x67\\x5c\\x1d\\x47\\x93\\x21\\x03\\x21\\x48\\xf7\\xfe\\x52\\x56\\x4d\\xdf\\x7a\\xe7\\xac\\x26\\x9d\\x0c\\xd2\\xe5\\x52\\xfe\\xc5\\x89\\xae\\xae\\x0f\\xb9\\x3f\\xe3\\xee\\xae\\xf0\\x85\\x60\\x96\\xcf\\x4f\\x6b\\x34\\x97\\xe7\\x23\\x5c\\xc8\\x49\\x4d\\x81\\x0a\\x0b\\x46\\xc5\\xea\\xc8\\x7f\\x18\\x7e\\x50\\x5b\\xb7\\x76\\x4f\\x80\\x45\\xc9\\x54\\x19\\x83\\xf7\\xb0\\x25\\x69\\x80\\x09\\xa2\\x3d\\x9d\\xf0\\xbd\\x1a\\x47\\x3c\\xbe\\xe4\\xcf\\x5e\\x94\\x88\\xec\\xbc\"},\n{{0x84,0xb3,0xae,0xdd,0x47,0x97,0xa5,0x65,0xc3,0x51,0xde,0x7d,0xfa,0x07,0x00,0xb9,0xff,0x7c,0x4d,0x72,0x91,0xc8,0x80,0x8d,0x8a,0x8a,0xe5,0x05,0xcd,0xd2,0x25,0x90,},{0xd7,0xad,0x72,0xca,0xa7,0xc2,0x22,0x09,0xec,0x46,0x78,0xd1,0x1d,0x55,0x90,0xa6,0xcb,0x28,0xa0,0x71,0x17,0xfe,0x5a,0xef,0x57,0xb5,0x07,0x51,0x58,0x32,0x01,0xa5,},{0x92,0x20,0xf0,0xed,0xaa,0xae,0xe1,0xb8,0x76,0x35,0x0d,0xbe,0x92,0x66,0x06,0x17,0x67,0xb8,0x62,0x96,0xc3,0x51,0xd4,0xca,0xc9,0x9d,0x07,0xcd,0x61,0x2c,0x6e,0xfb,0x24,0xf8,0xf9,0xb0,0xb9,0x75,0xf9,0x5c,0x42,0xc5,0xb6,0xaf,0xed,0xc8,0x92,0xf8,0x7e,0xfe,0xdd,0x39,0xd5,0x16,0x02,0x94,0xc2,0x76,0x58,0xbd,0xcf,0x42,0x85,0x0b,},\"\\x53\\x25\\x67\\xff\\xa5\\x3b\\x5c\\x0f\\xcd\\x29\\xc3\\x94\\x99\\xd2\\xe7\\x8e\\xcd\\x20\\xe6\\x31\\x23\\x49\\x92\\x40\\xe7\\x75\\x08\\x8b\\x39\\x4d\\xc6\\x5c\\x8b\\xaa\\xa0\\xfe\\x8f\\x6a\\xa7\\xe7\\x01\\x81\\xf9\\xe1\\x0a\\xdd\\x8b\\x4a\\x8b\\xeb\\x0b\\x2e\\xc3\\x8a\\x43\\x30\\x9f\\x10\\x0c\\xd4\\xbe\\x91\\xc6\\xf4\\x8e\\x79\\xdc\\x0a\\xee\\x93\\xa1\\x5c\\x94\\x03\\x77\\x3b\\x35\\x4a\\x8d\\x42\\xed\\x48\\xd8\\xf2\\x76\\x23\\x0f\\xa6\\xde\\x5a\\xda\\x50\\x1e\\xe0\\xa6\\x53\\xb4\\x45\\x8f\\x0e\\xcf\\x6d\\x5b\\x3c\\x33\\xe2\\x14\\x1c\\x66\\x2f\\x6e\\xa0\\x55\\xf7\\x41\\xe5\\x45\\x86\\x91\\x7d\\x2e\\x0c\\x4e\\xb2\\xb5\\x66\\x21\\xf9\\x66\\x5f\\xef\\x32\\x46\\xf0\\xbd\\x80\\x0b\\x53\\x3e\\x3b\\xc6\\x15\\xc4\\x02\\x1f\\x8d\\x0e\\x2a\\xd2\\x33\\xa1\\x1e\\x77\\x36\\xc4\\x93\\xac\\xc3\\x1f\\xae\\xe7\\x6a\\x09\\x7d\\xc4\\x0d\\xb9\\xef\\xc2\\x24\\x46\\xea\\xcf\\x1c\\xc1\\x8f\\x51\\xfd\\x10\\x23\\x6a\\x2f\\x94\\x2d\\x0a\\x53\\xc3\\xce\\x20\\x91\\x08\\xb5\\x93\\x8c\\x0a\\x9e\\x53\\x6b\\x89\\xef\\x0a\\xd6\\xb4\\x05\\xa1\\x0f\\x22\\xc3\"},\n{{0x69,0x50,0xbf,0xcf,0x48,0x0b,0x98,0xea,0x18,0xa2,0xd5,0xae,0x5b,0xa6,0xe7,0x66,0x8f,0x4c,0x28,0x3f,0xf2,0x71,0x13,0x57,0x74,0x0f,0xfe,0x32,0xcf,0x25,0x81,0x9a,},{0x8e,0x4c,0x6f,0x23,0x3f,0x7b,0x86,0x32,0x1c,0x9d,0x67,0x99,0xba,0xc2,0x8a,0xaf,0xcd,0x25,0x03,0xd7,0xaa,0x0a,0x7b,0xde,0xd8,0x72,0x27,0x27,0xfb,0xbc,0xae,0xb8,},{0x94,0xde,0x5d,0xf7,0xa2,0x5e,0xcd,0x70,0x20,0x5d,0x40,0xbc,0x94,0x99,0xfc,0x7c,0xd7,0x13,0x65,0x68,0x06,0x0a,0x41,0x9a,0x93,0xbe,0x6e,0x31,0x86,0x64,0xbb,0x6d,0xfc,0xe6,0x0e,0x2d,0x4e,0x63,0x3f,0x7e,0xc1,0x48,0xfe,0x4f,0x83,0x4e,0xd2,0x77,0xc1,0xfe,0xc4,0xc4,0xe2,0xa8,0x6f,0x44,0xc4,0x58,0x9c,0x81,0x78,0x88,0xdb,0x00,},\"\\xa4\\x01\\xb9\\x22\\xab\\xa5\\x7e\\xe0\\xc6\\xac\\x1c\\x8f\\x1b\\x48\\x29\\x6a\\x85\\x62\\xee\\xf1\\x37\\x52\\x68\\x93\\x88\\x6a\\x08\\x30\\x6e\\x22\\x03\\x66\\x77\\x88\\x61\\x8b\\x93\\x98\\x64\\x46\\x7a\\x31\\xf1\\x6e\\xdc\\xe1\\x52\\xa4\\x2c\\x25\\x54\\x6b\\x64\\x0e\\xa8\\xbe\\xd1\\x89\\xa4\\xf8\\x98\\x86\\xa3\\x7f\\x10\\x69\\x11\\xea\\xe1\\xf5\\x00\\x81\\xbf\\x79\\x5e\\x70\\xc6\\x50\\x44\\x37\\xd2\\xa8\\x0c\\xb8\\x39\\x47\\x9e\\xcb\\xb8\\x7c\\x12\\x9b\\xcc\\x5f\\xe3\\x1d\\x71\\x6e\\xf9\\x78\\xc2\\x06\\xd7\\xf0\\x8a\\x79\\x34\\x66\\x59\\x4f\\x4d\\x75\\xe2\\x15\\xbb\\x63\\x74\\x59\\x6f\\x8e\\x7d\\x00\\xee\\xa7\\x24\\x78\\x09\\x43\\xe8\\x9b\\xd3\\x86\\x3c\\x95\\x1b\\xbd\\x24\\xef\\xee\\x23\\xc9\\x7c\\x2c\\x79\\x7c\\x7f\\xaf\\xbf\\x8f\\x2c\\x8b\\x43\\xf3\\x7a\\x5f\\x88\\x11\\x29\\xa0\\x95\\x73\\xfa\\x7a\\x03\\x4a\\x28\\x5e\\x80\\xdc\\x4b\\xa4\\xbc\\x95\\x64\\xa4\\xdc\\xed\\xeb\\x33\\x16\\x7e\\x0b\\x30\\xc5\\xa0\\x0b\\x9a\\x10\\x9a\\x22\\x31\\xcf\\xa0\\x01\\x2b\\x29\\xb2\\xb3\\x45\\x0b\\x89\\x2e\\xcc\\xef\\x08\\x08\\xe5\\x03\\xf8\"},\n{{0x61,0xb2,0x60,0xf5,0xb8,0x48,0xb2,0x71,0xef,0x48,0xe5,0xa5,0x6d,0x29,0x74,0x32,0xd8,0x9f,0x2a,0xb8,0x5b,0xd5,0x38,0xfa,0x66,0x88,0x70,0xd0,0x56,0x02,0x20,0xe5,},{0x60,0x86,0xfe,0x87,0x35,0xf3,0x99,0xf1,0xaf,0x2e,0x39,0x5e,0x0f,0xdf,0xb5,0x62,0x9e,0xbc,0xb0,0x4b,0x6e,0xd4,0xa5,0x4a,0x9e,0x47,0x05,0x2c,0x6e,0x81,0x91,0xd4,},{0x98,0x28,0xfe,0xc8,0xff,0x5c,0xf8,0x5a,0x98,0xf4,0x50,0x77,0x0b,0x5b,0xdb,0x4b,0x80,0xda,0xca,0x44,0x37,0x9d,0x8f,0x53,0xc9,0x1c,0x34,0x8e,0x22,0xdf,0x64,0xac,0x48,0xf2,0xb6,0xe2,0xa7,0xb3,0xb6,0x42,0xbc,0x81,0x93,0xa1,0x94,0x31,0x62,0x29,0xe6,0x94,0x47,0xed,0x24,0x1c,0xd4,0x23,0xd8,0x3b,0x6f,0xe7,0xb2,0xd4,0x4b,0x00,},\"\\x28\\x26\\x29\\x5d\\x79\\x94\\x5f\\x67\\x54\\x76\\xbc\\x4d\\x45\\xef\\x80\\x0d\\x80\\xb1\\xf0\\x39\\x8e\\x4b\\xe6\\x0e\\x3d\\xe4\\x57\\x1e\\xd1\\x08\\xdf\\x98\\x9f\\x03\\x2d\\xe6\\xc2\\x34\\x5d\\x99\\x48\\xd6\\x77\\x92\\x7e\\xa0\\xb8\\xcf\\x1a\\x5c\\xa3\\x6f\\xd5\\xf2\\x3c\\x25\\xdc\\x0d\\x2a\\xb5\\xbd\\x56\\x5a\\x54\\xaf\\x46\\xfd\\x97\\xd3\\x38\\xd7\\x70\\xe3\\xa7\\xb4\\x7e\\xfb\\x54\\xc0\\x7a\\x16\\x64\\x70\\x77\\x71\\xeb\\x4e\\x37\\xd9\\xd7\\x0b\\xa7\\x79\\x25\\x1d\\xcd\\xcd\\x3b\\xf6\\xd1\\x24\\x8a\\xde\\xc5\\x3f\\x78\\x72\\x59\\xc4\\xd5\\x94\\xd5\\xfd\\x4c\\xed\\x8e\\x3d\\xb7\\x62\\x1d\\x49\\x65\\xd4\\x82\\x98\\x17\\x81\\x24\\x93\\x1a\\x3d\\x0c\\xd2\\x69\\xb2\\xd5\\x3b\\x7c\\xd2\\x61\\xb9\\x6d\\x37\\x0c\\x5d\\x96\\x93\\xc8\\xad\\x13\\x3e\\xd5\\x89\\x45\\xee\\x35\\x40\\xe1\\x06\\x25\\xd9\\x24\\xae\\xba\\x9b\\xda\\xfc\\x65\\x61\\x00\\xaa\\xb2\\x76\\xfa\\x99\\x6b\\x1d\\xb4\\x77\\xbf\\x85\\xea\\x55\\x90\\x81\\xd5\\xb4\\xc7\\x30\\x7d\\xc1\\x59\\x56\\x54\\xac\\xa8\\x2f\\x7b\\x6d\\x2d\\xda\\xf7\\x35\\x7c\\x15\\xa4\\xd7\\xd8\\xb9\\x08\"},\n{{0x93,0x6d,0xc1,0xce,0xf6,0xa3,0x10,0x74,0x7f,0x35,0x00,0x88,0x05,0x5a,0x39,0xaa,0x76,0x2d,0x9a,0x4b,0x52,0xc8,0xc8,0xe4,0xc6,0x82,0x79,0x43,0x80,0xc2,0x72,0x5c,},{0x03,0xb3,0x18,0x00,0x41,0x2d,0xf4,0xd5,0x6f,0x15,0x32,0xc0,0x58,0x28,0xc0,0xb7,0x25,0x28,0xa6,0x7a,0x78,0x1b,0xef,0x4c,0x06,0xc1,0xfb,0x6f,0xf2,0xce,0x32,0x4b,},{0x3f,0x99,0x4b,0x8e,0xf5,0x28,0xf6,0x42,0x1c,0x6a,0x6a,0x22,0xe9,0x77,0xad,0xe5,0xce,0xe8,0x87,0x26,0x3d,0xe3,0x8b,0x71,0x9a,0xcd,0x12,0xd4,0x69,0xbf,0xd8,0xc3,0xf6,0x8e,0x7a,0xc0,0x7d,0x2f,0xae,0x80,0xa2,0x09,0x27,0x78,0xdf,0x0b,0x46,0x35,0x37,0xad,0x3a,0x05,0x51,0x99,0x7a,0x3d,0x5b,0x51,0xf8,0x32,0xd9,0xc8,0x23,0x0b,},\"\\xeb\\x58\\xfe\\x86\\xc4\\xef\\x34\\x9c\\x29\\xae\\x6f\\xb0\\x4f\\x10\\x85\\x0e\\x38\\xc6\\x82\\x3d\\xbe\\x64\\xa0\\x9a\\x5b\\xf1\\xe0\\xce\\x60\\x0d\\x39\\x4e\\xfa\\x6f\\xb9\\x6e\\xd6\\xa8\\xf2\\xc9\\xd4\\xbe\\xc0\\x5e\\x6a\\x5e\\xbd\\x5a\\x1b\\xf4\\xd0\\xc5\\x1d\\xb9\\x34\\xe5\\x7b\\x79\\xe5\\xc6\\xa8\\x79\\xd9\\x75\\x19\\x7d\\xbb\\x10\\x47\\x5f\\x65\\xc7\\xf8\\xa8\\xc6\\xa7\\x7a\\x42\\x03\\x84\\xb5\\x06\\x2a\\x27\\x40\\xf1\\x40\\x17\\x40\\xee\\x0f\\x5e\\x04\\x3a\\xad\\x7a\\x2a\\x2b\\x42\\x60\\xc5\\xd9\\x07\\xf7\\x05\\xed\\xaf\\x65\\xb0\\xe3\\x75\\xdf\\xc7\\xb0\\x0b\\xd6\\x60\\xdb\\x61\\x47\\xf2\\xeb\\xe8\\x70\\xa0\\xee\\x18\\xdc\\x2b\\xa3\\xc9\\x2b\\x0b\\x76\\xfa\\xe2\\xb9\\x09\\x32\\xcd\\xb6\\xc1\\x49\\xe4\\x6f\\x3f\\xee\\xcf\\x4c\\x26\\xf0\\x44\\x1f\\x3a\\x9e\\x00\\x66\\x78\\xae\\xcf\\xf8\\xcc\\xae\\xca\\xed\\xa7\\x3a\\x18\\xa6\\x8a\\xc9\\x88\\xb6\\x2e\\x83\\xa9\\xbb\\x51\\x88\\xae\\xde\\x38\\xdf\\x77\\xa9\\xa1\\x64\\xab\\xbd\\xd9\\xd5\\x8e\\x52\\xa6\\xca\\xf7\\x22\\x23\\x89\\xf1\\x98\\xe8\\x5f\\xbf\\x96\\x62\\x36\\xdc\\xdb\\xd4\\xc1\"},\n{{0xf8,0x9e,0xed,0x09,0xde,0xc5,0x51,0x36,0x1f,0xa4,0x6f,0x37,0x59,0x73,0xd4,0xfb,0xfa,0x5c,0x5c,0x12,0xf1,0xb5,0xe5,0xab,0xf4,0x5c,0xfa,0x05,0xff,0x31,0xa3,0x40,},{0x3e,0x0e,0xfd,0xca,0x39,0x19,0xfa,0x10,0xd4,0xa8,0x49,0xce,0xf1,0xde,0x42,0x88,0x51,0xbd,0x08,0xef,0xd2,0x48,0x59,0x4f,0xd8,0x9c,0xde,0xb9,0xde,0xee,0x43,0xb0,},{0x89,0x7e,0x6f,0x27,0x97,0xc3,0xf3,0x26,0xd2,0xcd,0xb1,0xd2,0x67,0x3d,0x36,0x06,0x31,0xf0,0x63,0x30,0x45,0x80,0xff,0x5b,0x4e,0xb4,0x3d,0x39,0xad,0x68,0x51,0x83,0x4c,0x9c,0xf8,0x91,0xd9,0xf0,0x90,0x5b,0xf8,0xde,0x07,0x5f,0x76,0x35,0xdf,0xca,0x60,0x1a,0xdc,0x0f,0x14,0xe7,0xb2,0xc7,0x6f,0x75,0x71,0xbf,0xa4,0x68,0xed,0x0c,},\"\\x4c\\xf9\\x77\\x3d\\xa0\\x5f\\xd3\\x22\\xfc\\x14\\x7b\\xe9\\x00\\xef\\x5c\\xf2\\x56\\xc8\\x8a\\xfd\\xad\\x4b\\x08\\xc2\\x30\\xdf\\xc8\\x98\\x1f\\xb6\\x9f\\x47\\x6f\\x7d\\x45\\xef\\x7c\\x90\\x06\\xbc\\x10\\x03\\x2b\\xa5\\x34\\x36\\xac\\x22\\x84\\x3e\\x0d\\x76\\x28\\x9c\\xf6\\x8f\\x98\\x18\\xfa\\x64\\x03\\x1d\\x4b\\x40\\x95\\x50\\x59\\xaa\\x69\\x11\\x09\\x15\\x88\\x9f\\x5e\\x22\\x73\\x2a\\x13\\x43\\x91\\x25\\x81\\xab\\x3b\\x11\\xa3\\xba\\xe7\\xa4\\x71\\x35\\x95\\x08\\x59\\x65\\x75\\xf8\\x88\\x16\\x0b\\xee\\xf9\\x66\\xe5\\x70\\x8f\\x0e\\x31\\x47\\xea\\xcf\\xce\\xc1\\xca\\xa3\\xef\\x24\\x0c\\x5e\\x0a\\x14\\xc1\\x86\\x54\\x6c\\x8e\\xeb\\x64\\x65\\x83\\x50\\xb1\\xaf\\xfc\\x0c\\xfd\\x2a\\xc2\\x13\\xaf\\x67\\x0a\\xfc\\xa7\\xbb\\xc9\\xdd\\xdd\\x28\\xa4\\x65\\xb5\\x86\\xe6\\x9c\\x38\\x8c\\xd7\\x34\\x78\\xd6\\x8e\\xfb\\x32\\x2b\\xdf\\x86\\xd9\\x21\\x30\\x11\\xe7\\x11\\xb2\\xb9\\x5f\\xef\\xa7\\xbb\\x9b\\x59\\x39\\x76\\x17\\x06\\xaa\\x71\\x21\\x02\\x49\\x06\\x42\\x0b\\xdd\\xf1\\xd8\\x80\\x0a\\x43\\x38\\xd9\\x38\\xfa\\x13\\x7c\\xf2\\x7e\\x9f\\xfc\\x51\\xc6\"},\n{{0x40,0x07,0x96,0xef,0x60,0xc5,0xcf,0x40,0x84,0xde,0xe1,0x80,0x1c,0x4a,0x19,0x75,0xe4,0x82,0xe7,0x0a,0xef,0x96,0x1c,0xd4,0x2e,0x2f,0xd5,0xa3,0xfa,0x1a,0x0f,0xbe,},{0xf4,0x7d,0xa3,0x81,0x28,0xf2,0xd0,0x12,0xcc,0x57,0x97,0x57,0x1d,0x47,0x9c,0x83,0xe7,0xd8,0xa3,0x40,0x98,0x02,0xf9,0xa7,0xd9,0x76,0xc2,0x70,0x67,0xcb,0xbe,0x43,},{0x84,0xd3,0xaa,0x3f,0x36,0x18,0x44,0x39,0x67,0x54,0xd8,0x0d,0x9f,0xa0,0x5b,0x8b,0x2f,0xa4,0xab,0xf3,0xa0,0xf3,0x6b,0x63,0x9b,0xee,0x9c,0xfb,0x5c,0x85,0x30,0xa3,0xa9,0xcc,0x34,0x67,0x7f,0x92,0xa9,0x13,0xc4,0x1e,0x80,0x0f,0x2e,0x80,0x41,0xf7,0x66,0x6d,0x07,0xed,0x85,0xf1,0x6a,0x57,0xd8,0x17,0xb1,0x24,0x1f,0xc5,0xee,0x04,},\"\\xc4\\x73\\x32\\x5e\\x78\\x5b\\x27\\xdf\\x44\\x71\\xee\\xfb\\x9e\\xbe\\xbd\\x64\\x61\\xd5\\x70\\x80\\x01\\x81\\x10\\x0f\\xf3\\x6c\\xaf\\x3c\\x38\\xf6\\x7c\\x19\\x21\\xb1\\x57\\xec\\x8e\\x61\\x26\\xf9\\x55\\xae\\xbd\\x90\\xea\\x3f\\xe5\\x38\\x5f\\x80\\x42\\xcd\\x70\\x4b\\x27\\xcc\\x1d\\x69\\x78\\xc0\\xe2\\xa2\\x96\\x69\\x5f\\x5e\\xf9\\x7b\\x7c\\x2e\\x16\\xae\\x4f\\xf4\\xd0\\x63\\xc6\\x88\\xd7\\xf4\\x6e\\x96\\x4e\\x1f\\x0a\\x00\\x50\\x3f\\x35\\x73\\x45\\x97\\x76\\x83\\xd6\\xe4\\xc3\\x42\\x3d\\x56\\xbd\\xb6\\xce\\x86\\x4b\\x69\\x87\\xe0\\x85\\xe8\\x3e\\x70\\xc7\\xc1\\xa1\\x4e\\x0e\\x41\\x3f\\x59\\x2a\\x72\\xa7\\x1e\\x01\\x7d\\x50\\x5b\\x64\\xc2\\x4f\\x1a\\x1a\\x6b\\x81\\x3e\\x06\\x4e\\x6e\\x0c\\xf8\\xbd\\x45\\x71\\xd0\\xff\\x2f\\x26\\x7a\\x6a\\x13\\xe0\\xcd\\x43\\x04\\x63\\xb6\\xca\\x3b\\x88\\xf0\\xcd\\x40\\xb0\\xfb\\x83\\xd5\\xbe\\xdf\\x6f\\x7d\\x47\\xe1\\x70\\xe8\\x7d\\x0a\\x75\\x00\\x93\\x69\\x3e\\xda\\x23\\x2a\\x6d\\xaf\\x98\\x12\\x57\\x27\\xb9\\x58\\x8e\\xcb\\x89\\x4a\\xe3\\x73\\xba\\xe3\\xa4\\x45\\xa1\\x06\\x30\\x64\\x69\\xa4\\xc2\\xcd\\x77\\xff\"},\n{{0x67,0x03,0xa6,0x23,0x2c,0x5e,0x2e,0x65,0xe0,0xab,0x3b,0x92,0xe2,0xaa,0xf9,0xf5,0xfb,0xd3,0x3f,0xb4,0x69,0x88,0x04,0x7d,0x6f,0x4d,0x0f,0xf5,0x38,0x7f,0xa0,0x29,},{0x04,0x7c,0xff,0xca,0x8b,0x7b,0x11,0xac,0x6e,0xac,0xc0,0xea,0xa0,0xc5,0xb7,0x3c,0x75,0xb9,0xc6,0x37,0x95,0x69,0x73,0xaf,0x9d,0x97,0xb2,0xdd,0x5b,0x60,0x5d,0x6f,},{0xca,0xe9,0x68,0x79,0xe5,0xb6,0x03,0xbe,0x86,0x66,0x09,0xd4,0xa0,0x53,0xbf,0xa1,0x2a,0x51,0x37,0x8e,0x99,0xb2,0xa2,0x81,0x2e,0x47,0x89,0x26,0x7d,0x8f,0x32,0xf4,0x73,0x24,0x3f,0x8a,0xf7,0x4b,0x9b,0xe7,0x3f,0x47,0xde,0xa5,0x0f,0x0d,0x16,0x5e,0xbf,0x49,0x45,0x8b,0x73,0xe5,0x3d,0x88,0x58,0x0c,0x19,0x1a,0x18,0x2d,0x19,0x04,},\"\\xa2\\x6b\\x30\\xa7\\x69\\x19\\x79\\x32\\xa3\\xa6\\x28\\x54\\x96\\x8d\\x76\\x01\\x51\\x61\\x23\\x66\\x77\\x8d\\xc9\\x94\\x57\\x6a\\x2e\\x0e\\x03\\x55\\x49\\x6b\\x46\\x20\\x0e\\x50\\x69\\x48\\xa0\\xd1\\x02\\xb6\\x65\\x1b\\x2e\\x73\\x34\\xca\\x6c\\x6e\\xae\\xf8\\xbc\\xa4\\x4b\\x42\\x59\\x70\\xa0\\xb3\\x7d\\x6b\\xde\\x0d\\xa9\\xd3\\xc1\\xb9\\xf5\\x1c\\xbb\\x25\\xbc\\x33\\x5c\\xd6\\xfa\\x92\\x8a\\x74\\xf2\\xc0\\xdc\\x2c\\x6e\\x99\\xd3\\x7a\\x12\\x86\\x3a\\x47\\x4d\\x4d\\xf4\\x3a\\xad\\x35\\x41\\x5f\\xfc\\xaa\\x24\\xd8\\xc2\\x9f\\x91\\x45\\x72\\xab\\x2a\\xbe\\xc3\\x89\\x2d\\xb4\\x9e\\x67\\x9c\\x5e\\xa2\\x20\\xc2\\xf5\\x19\\xa7\\xd0\\x33\\xac\\x1a\\x2c\\x5a\\x46\\x78\\x69\\xe3\\x0e\\xda\\x3d\\x26\\x35\\xca\\x86\\x34\\x31\\x47\\x3f\\x95\\x8d\\x55\\x2b\\xdc\\x55\\x82\\x35\\x2c\\x29\\x0d\\x0c\\xe4\\xfa\\x9c\\xfd\\x0a\\xd4\\x27\\x99\\xc2\\x27\\xec\\x90\\xb7\\xc9\\xe5\\xdb\\x9f\\x5a\\x7b\\x6d\\x56\\x92\\x12\\xee\\xd9\\x4d\\x32\\x33\\x26\\x80\\x5f\\x2b\\x3a\\x00\\x10\\xd6\\xc1\\x1e\\xb4\\x10\\x7c\\x82\\x83\\x03\\x76\\x52\\xf5\\x0d\\xc0\\x67\\xb6\\xdc\\x81\\xf4\\xdb\"},\n{{0xe0,0xe7,0x2f,0x8f,0x17,0x86,0x33,0x62,0x67,0x33,0xbc,0xbd,0xa2,0xad,0x2a,0x50,0xe6,0x53,0x89,0x0f,0x15,0x35,0x9b,0x6c,0x22,0xfc,0x73,0x45,0xad,0x33,0x31,0x09,},{0xd1,0x3c,0xee,0x54,0x0d,0x84,0xb5,0x66,0x7d,0x51,0x6f,0xe7,0xec,0x72,0x39,0xbf,0x8d,0xa9,0x15,0x46,0xee,0x79,0x1f,0x84,0xed,0xd8,0xff,0xcf,0x3a,0x08,0x3e,0x76,},{0x14,0x55,0x21,0x71,0xb9,0x52,0x45,0xac,0x0f,0x0e,0x5a,0x6e,0x7a,0x2f,0x54,0x17,0x21,0x06,0x8d,0xb6,0x50,0xc6,0xda,0xda,0x04,0xc2,0x8c,0xab,0x7c,0x49,0x19,0x5f,0x64,0x36,0x71,0x21,0x44,0xcb,0x31,0x91,0x3c,0x56,0x2e,0x30,0xc3,0x9d,0x8a,0x85,0x49,0xfb,0x64,0xff,0xea,0x81,0xc7,0x44,0x51,0x43,0xb5,0xf2,0x32,0x86,0xda,0x05,},\"\\x79\\x1f\\xd6\\x13\\xc1\\x09\\x52\\x92\\xc8\\xa4\\xa2\\xc8\\x6b\\x47\\xae\\x02\\x61\\x55\\xb8\\x46\\x5b\\x60\\x7d\\xbb\\x41\\x64\\x77\\xef\\x79\\xa2\\x97\\xc9\\xd7\\x75\\x8c\\xe3\\x4a\\xf9\\xdc\\xbf\\x1c\\x68\\x47\\x4f\\x30\\x90\\x9f\\xbe\\x74\\xb7\\xba\\x42\\x96\\x32\\xf2\\x40\\x3a\\xad\\x83\\x2b\\x48\\x6b\\x72\\xc2\\x30\\x54\\xad\\x42\\xf7\\x65\\x3a\\x9d\\xdb\\x45\\x6c\\xc7\\x91\\xf3\\x48\\x88\\x6a\\x7a\\xe5\\xdc\\xec\\x7c\\x0b\\xa8\\x15\\xf7\\xa9\\x3a\\x10\\xfe\\x33\\x1e\\x90\\x3b\\x97\\x0f\\x7b\\x50\\x28\\xbe\\x49\\xd1\\x4b\\xc5\\x62\\x0d\\x63\\x79\\x26\\x72\\xb9\\x8b\\x94\\x88\\xc6\\x7a\\xe1\\x66\\x46\\x69\\x3e\\x11\\x20\\x47\\xf0\\xac\\x89\\x21\\xff\\x56\\x1c\\x92\\xdd\\x05\\x96\\xd3\\x2d\\xf0\\xa6\\xe5\\x07\\xac\\x1b\\x07\\xde\\x51\\x6c\\x98\\x42\\x8d\\x57\\x0a\\x37\\xdb\\x9b\\xcd\\x7c\\x7e\\x61\\xc6\\x94\\x8a\\xb3\\xfe\\x91\\x25\\x0d\\xd1\\xd5\\xbd\\x67\\x12\\x75\\xdf\\x9a\\x97\\x2f\\x22\\xc2\\xba\\x36\\x80\\x47\\x47\\xae\\xc1\\xea\\x24\\x16\\xc1\\xf4\\x1a\\xb8\\x7b\\xef\\xde\\x31\\x62\\x9b\\x2d\\x43\\x31\\x7c\\xe4\\x1c\\xda\\x03\\x62\\x62\\x86\\xc0\"},\n{{0x54,0x4d,0xaf,0xd9,0x96,0x0d,0x82,0x97,0x56,0xc6,0xd4,0xb3,0xea,0xdd,0x44,0x37,0x5f,0xe7,0x80,0x51,0x87,0x6b,0xf9,0x78,0xa3,0x81,0xb0,0xde,0xca,0xaa,0x80,0x96,},{0xae,0x4f,0x64,0x25,0xc1,0xb6,0x7c,0xcb,0x77,0xf9,0xaa,0xcf,0xea,0x28,0xea,0xef,0x76,0x9c,0x8c,0xac,0xee,0x03,0x52,0x05,0xcd,0xcd,0x78,0x7e,0x8d,0x07,0x62,0x9d,},{0xa2,0xae,0x11,0x7c,0x8d,0xe4,0xca,0x6d,0x6f,0xe7,0x5e,0x46,0x60,0x23,0xbd,0x55,0x0c,0x26,0xfe,0xdd,0x3e,0x74,0xca,0x13,0xad,0xb6,0x25,0xf2,0x72,0xe1,0x75,0xf1,0x4d,0x5d,0xf5,0x50,0xac,0xe7,0xd8,0x22,0x88,0xef,0xef,0xab,0xf9,0x63,0x11,0xa1,0x23,0xbe,0xe2,0x38,0x89,0xad,0x37,0x11,0xbf,0xf2,0xb8,0x08,0x79,0x46,0xbf,0x0e,},\"\\x44\\x7f\\xe7\\x34\\x4c\\xad\\x1f\\xae\\x09\\xd6\\xa7\\xd0\\x5f\\x09\\xd5\\x03\\xc1\\xb3\\xd3\\xd5\\xdf\\xa5\\x84\\x81\\x0c\\x35\\xbc\\x41\\xe4\\x95\\x56\\x93\\x70\\x61\\x54\\xe2\\xd7\\x51\\xb2\\xf1\\xb5\\x25\\xe1\\xa1\\x45\\x47\\xba\\x7f\\x8b\\x23\\x20\\x88\\xa6\\xfc\\x92\\x27\\x02\\xd9\\x3a\\x11\\xcd\\x82\\x94\\x9c\\x27\\xbe\\xd6\\x45\\xdc\\x35\\x1f\\xb4\\xc1\\x24\\x2c\\xf4\\x1d\\x01\\x57\\x54\\x12\\xe7\\x92\\xae\\xd2\\x14\\x53\\x1d\\x94\\xfd\\x66\\xe0\\x3d\\xd3\\x2e\\x97\\x2f\\xd7\\x7f\\x69\\x47\\xa3\\x53\\xe1\\xae\\x5e\\x00\\xf5\\xa6\\xca\\x77\\x99\\x24\\x72\\xf0\\x96\\xb6\\xe7\\x47\\x5f\\xe5\\x34\\xe9\\x13\\xa7\\x7b\\xcb\\x0d\\x68\\x1f\\xdf\\xb3\\xa7\\xa0\\xdc\\xb5\\x6d\\x27\\x4d\\xf4\\xaa\\x10\\x9d\\x4a\\x8a\\x37\\x79\\x4a\\x92\\x76\\xf5\\x00\\x06\\x69\\x6f\\xf1\\x2c\\xa4\\xd0\\x25\\x40\\x39\\xdf\\x0f\\xb3\\xf7\\x2a\\x96\\x0d\\xa0\\x5c\\x98\\x72\\xf2\\xe3\\x3e\\xe8\\x1d\\x1c\\xf7\\xa6\\xf4\\x8b\\xbc\\xe0\\xaa\\x18\\xc7\\xc0\\xf0\\x6b\\xa5\\x5e\\x67\\x68\\x9e\\x0a\\xf5\\x87\\xb5\\x00\\xea\\xb7\\x9c\\xc7\\xf9\\x64\\x0b\\xca\\x10\\x4b\\x7f\\xbf\\x31\\xf0\\x8e\"},\n{{0xbf,0xbc,0xd8,0x67,0x02,0x7a,0x19,0x99,0x78,0xd5,0x3e,0x35,0x9d,0x70,0x31,0x8f,0xc7,0x8c,0x7c,0xc7,0xbb,0x5c,0x79,0x96,0xba,0x79,0x7c,0x85,0x54,0xf3,0xf0,0xf0,},{0x7c,0x5a,0xe3,0xba,0xb9,0x20,0x11,0x99,0xdf,0xbe,0x74,0xb7,0xd1,0xec,0x15,0x71,0x25,0xbd,0xba,0xa4,0x52,0x0f,0x50,0x1d,0xa3,0xf2,0x48,0x57,0x9d,0xc6,0xc2,0x2d,},{0xe4,0x86,0x15,0xb6,0x56,0x33,0xe6,0x19,0x93,0xb0,0xaa,0xa1,0xfa,0xfb,0x74,0xb9,0x62,0x9c,0x38,0x4f,0xd5,0x92,0xbd,0x73,0x5f,0xa1,0xf6,0x2c,0x5c,0xad,0x11,0x29,0x1f,0xcd,0x8c,0x2e,0x91,0xa5,0x0b,0xfe,0x0b,0x03,0xb4,0x35,0x02,0xff,0xf3,0xa5,0xc3,0x82,0xb9,0xc2,0x82,0x19,0x07,0xef,0xc3,0x4d,0xa5,0xba,0x05,0x4a,0xf0,0x0e,},\"\\x11\\x7f\\xae\\x13\\xe7\\x87\\x77\\xb6\\x21\\x9f\\x02\\x02\\x14\\xc1\\xb8\\x7c\\x57\\x04\\x6d\\x1c\\x09\\xce\\x82\\xee\\x2b\\x56\\x29\\x89\\x8d\\x9b\\x0d\\xe7\\x4a\\x15\\xcf\\xe9\\x9f\\x80\\x54\\x8b\\xa9\\x13\\xd7\\x03\\x6c\\x56\\x28\\x5a\\x4c\\xba\\x49\\x3b\\x52\\xd2\\xcb\\x70\\xd6\\x36\\x5a\\xce\\x3d\\xa1\\x2b\\x1f\\x34\\xa2\\x77\\x8a\\xf3\\x6e\\xf5\\x2a\\xb8\\x2e\\xde\\x04\\xca\\xca\\xf2\\x79\\x3f\\x5f\\x89\\x83\\x1e\\x3b\\x20\\x5a\\x9e\\xe4\\xc1\\xd6\\xfb\\xda\\xb4\\xba\\x4d\\x9f\\xae\\x65\\xdd\\x79\\xa5\\xfe\\x76\\xb4\\xb3\\x9a\\x30\\x92\\xcc\\x71\\x48\\xd2\\x11\\xe8\\x5e\\xe8\\x2a\\xb4\\x63\\xd3\\x4d\\xce\\xe9\\x06\\x1d\\x9c\\x21\\xde\\xd2\\x05\\x1b\\xbd\\x50\\xb4\\x13\\xf0\\xe2\\x1a\\x0e\\x48\\xd1\\xff\\xa8\\xdc\\xae\\x24\\x0b\\x34\\x95\\xbe\\x25\\xd9\\x31\\x51\\xb5\\x7a\\xa2\\x71\\xab\\x99\\xaa\\x70\\x8c\\xa2\\x80\\x80\\xca\\xb4\\x80\\x4f\\xce\\xfa\\x92\\x9f\\x5f\\x1e\\xf3\\xf4\\xc6\\xc0\\xfb\\xfb\\x40\\xbe\\xf7\\xea\\x1b\\x50\\x9b\\x36\\xba\\x12\\x60\\x32\\x35\\x12\\x37\\x9d\\x7b\\xc3\\xfd\\xbb\\x5d\\x3f\\xaa\\xc9\\xb0\\x0e\\x21\\xf1\\x2e\\xa1\\xca\\x2e\\x29\"},\n{{0xdf,0x2d,0xf8,0xa9,0xd6,0x6d,0x56,0x38,0xcd,0xee,0x09,0x32,0x4e,0x7b,0x10,0xf8,0xed,0x29,0xab,0x91,0x38,0x7e,0x31,0x47,0xb7,0xdc,0x03,0xf7,0xcd,0x80,0x05,0x08,},{0x5c,0x04,0x2e,0x15,0x7f,0xb7,0xfb,0x12,0xd4,0xd4,0xfe,0xf2,0x84,0x71,0x41,0xec,0xfb,0x57,0xc1,0x25,0x3e,0x14,0xea,0xf3,0x00,0x4d,0x65,0x13,0xf5,0x2f,0xe6,0x25,},{0x9a,0x10,0x74,0x53,0x1e,0xd4,0x3d,0x07,0xbf,0xfc,0x7f,0x2b,0x6c,0x13,0xb8,0x83,0x8f,0xc7,0x5c,0xba,0x02,0xc7,0xd1,0xec,0x7b,0xa3,0x8b,0xca,0x3c,0xef,0x20,0xdc,0x9b,0xad,0xf3,0xa3,0x06,0x4a,0x2c,0x93,0xb1,0x84,0x24,0x41,0x42,0x0b,0x6a,0x8d,0x42,0x1a,0x96,0x0d,0x70,0xdf,0xb7,0xc7,0x0e,0xec,0x29,0x5f,0x21,0xf8,0x3f,0x0a,},\"\\x21\\x57\\x66\\x15\\xc9\\x34\\x6a\\x63\\xdc\\xcf\\x0c\\x50\\xec\\xbd\\x7c\\x6d\\x72\\xad\\x45\\x2c\\xfe\\xd4\\x3e\\xa7\\x32\\x02\\xcc\\x7a\\x98\\x57\\x60\\x56\\xb9\\x66\\x4b\\x54\\x62\\x29\\x05\\xa1\\xe7\\x22\\x17\\x20\\x73\\x0a\\xc6\\x85\\xd3\\xbd\\x39\\x77\\xec\\x39\\x59\\xd4\\x46\\xbf\\xa9\\x41\\xe7\\x25\\xb6\\xfe\\x16\\xaf\\xe5\\x43\\x2c\\x4b\\x4b\\xde\\xe7\\xaa\\x0f\\xd8\\x03\\x09\\x48\\xed\\x6f\\xcb\\xa7\\xc0\\xbd\\xb4\\x0c\\x2e\\x51\\x7d\\xa9\\x74\\x56\\xe7\\x4e\\x1f\\x93\\xd5\\xed\\x67\\x6d\\xe0\\xf4\\xa8\\xb0\\xae\\xa4\\x49\\x40\\x4b\\xd1\\x5b\\x6d\\xa7\\x9d\\xc1\\xb8\\x13\\x96\\x5f\\xe5\\x57\\x24\\x10\\xd7\\x6f\\x5b\\x5e\\xac\\x66\\x30\\x50\\x57\\x03\\x11\\xdc\\x98\\x42\\xb6\\xfb\\xf8\\x80\\x6a\\xec\\x03\\x15\\x17\\x15\\xca\\xcf\\x7f\\x21\\x80\\x2e\\x8b\\xf5\\xe9\\x8a\\x89\\xc0\\xd7\\xd0\\xd0\\x98\\xb7\\x3c\\x6e\\xfc\\x09\\x96\\x2e\\x36\\xb4\\xe0\\x30\\xc1\\xa6\\x4b\\x5d\\x34\\x9f\\x5f\\x20\\x42\\xc7\\x44\\x28\\x67\\x1e\\x4a\\x2c\\x7f\\xea\\x0c\\xae\\xe2\\x42\\x2d\\x85\\xc4\\xfc\\xdd\\xfe\\xd3\\x22\\x13\\x85\\x9a\\x69\\x95\\x5d\\x4e\\x3e\\xbb\\x7e\\x1b\\x20\\x22\"},\n{{0xe8,0xee,0x06,0x5f,0x99,0x07,0xf1,0xef,0xa2,0xda,0xec,0xb2,0x3a,0x04,0x25,0xf3,0x53,0x09,0x4d,0xa0,0x2b,0xc2,0xc9,0x31,0xf0,0xa5,0x87,0xef,0xc0,0xd1,0x3d,0xe1,},{0xc7,0x26,0x51,0xb7,0xfb,0x7a,0xc0,0x33,0x7a,0x17,0x29,0x77,0x49,0x6f,0xd7,0xf2,0xa7,0x2a,0xea,0x88,0x93,0x85,0x83,0x5e,0x56,0x3c,0x6b,0x60,0x53,0xa3,0x2d,0xc1,},{0xa5,0x10,0xdf,0xf4,0x2d,0x45,0x59,0xa1,0x9a,0x7b,0xf0,0xfe,0x0b,0xea,0x53,0xd3,0xe1,0xf2,0x2d,0xfa,0x6b,0xe5,0x50,0x39,0x89,0x5e,0x12,0xa5,0xd0,0x7d,0xa5,0xf2,0xe3,0x77,0x13,0xcc,0xb2,0xeb,0x21,0x60,0x11,0x62,0x8f,0x69,0x83,0xf8,0x71,0xfe,0xe2,0x86,0xe6,0x6f,0xff,0x4b,0xe7,0x58,0x2c,0x96,0x1a,0x1e,0xd7,0x56,0x84,0x04,},\"\\xa2\\xf0\\xc1\\x37\\x34\\x73\\xa3\\x05\\xd8\\xf1\\xd9\\x91\\x38\\xb0\\x6b\\x9a\\x96\\x94\\xff\\xaa\\x8a\\x88\\x22\\x2d\\xe9\\xf7\\x29\\xbe\\xe1\\x30\\x51\\x75\\xdf\\xb1\\x70\\x01\\xcc\\x77\\xf6\\x7b\\x6d\\x40\\xc9\\x0c\\x1a\\x28\\xfb\\x22\\x6c\\x11\\x28\\x6d\\xb4\\xa1\\x3e\\x45\\xe6\\x92\\x11\\x24\\x2b\\xcd\\xd0\\x1c\\xb6\\xe2\\xc4\\x54\\xe7\\x6c\\x0c\\xab\\x88\\x1b\\x4d\\x2d\\x9d\\x3a\\xb1\\x00\\xa5\\xd6\\x1d\\x17\\x25\\xd8\\x66\\xe4\\xfd\\xb6\\x6d\\x93\\xd7\\x7f\\x5b\\x30\\x86\\x93\\xb9\\xb5\\xa3\\x33\\xe5\\x7f\\xa2\\x5d\\x1e\\x5d\\x2e\\x38\\xdf\\x6e\\x4e\\x9e\\xc8\\x41\\x59\\xbb\\xee\\x1f\\xfe\\xa9\\x26\\x83\\x6a\\x01\\x01\\xc9\\x14\\x83\\xbd\\x5b\\xc8\\x8a\\x6f\\x1c\\xc4\\xd4\\xe7\\xf0\\x08\\xad\\x08\\x45\\x3a\\x01\\x23\\x42\\x9d\\xd3\\x35\\x78\\x1c\\x7c\\xbf\\x8d\\x68\\x5a\\x89\\x99\\xed\\x11\\x77\\x60\\x70\\x04\\xa1\\x3c\\x4c\\xb5\\xea\\x49\\x08\\xc5\\x42\\x60\\x7d\\x3f\\x2c\\xd6\\x69\\x0c\\xf1\\xf2\\xa7\\x45\\x5b\\xbd\\x38\\xf5\\x38\\xf0\\x7a\\x10\\x39\\x64\\x31\\x7e\\xfb\\xce\\xe3\\x7e\\xb4\\x69\\x31\\xc0\\x27\\xcf\\x15\\x3e\\xf8\\x6e\\x43\\xd7\\x82\\x81\\xeb\\xd7\\x10\"},\n{{0xc7,0x2e,0x67,0xd8,0xc3,0xfe,0xc0,0x04,0xff,0x61,0x87,0x18,0xa9,0x09,0x9e,0xb8,0xad,0x7b,0x06,0xff,0x3b,0x8c,0x54,0x2a,0x7e,0x8b,0x98,0x47,0x31,0x34,0x75,0xe1,},{0x4e,0xb0,0x02,0xd3,0xcc,0xeb,0x18,0x8c,0x66,0x58,0xfe,0xc5,0x1c,0xb4,0x79,0xa6,0x52,0x64,0xac,0x55,0x5c,0x75,0xcd,0xc2,0x24,0x9c,0xf1,0xce,0x3d,0xef,0xc1,0x6d,},{0x2d,0x7b,0xab,0x8e,0xbd,0xa7,0xfc,0xa5,0xbb,0x3c,0x25,0xf5,0x1d,0xc5,0x1b,0x73,0xe6,0xff,0x6a,0x3b,0xb1,0xb5,0x2a,0xcc,0x78,0x11,0xa7,0xd2,0x59,0x5c,0xd6,0xfd,0xaf,0x73,0x04,0x94,0x41,0x8e,0x2f,0x57,0xef,0xdc,0x56,0x17,0xb0,0x66,0xfd,0x7b,0x62,0x07,0x68,0x0d,0x94,0xfb,0x8c,0x43,0xd3,0xd4,0x74,0x0b,0x41,0xcb,0x69,0x01,},\"\\xa8\\xf3\\x41\\x35\\xc0\\x13\\x2e\\xc9\\x5b\\x64\\xb0\\xcb\\xf5\\x1d\\x66\\x90\\x01\\x43\\x37\\x04\\x06\\x79\\x1f\\xbb\\x55\\xf2\\xb8\\xca\\x95\\x3c\\xc7\\x4a\\x46\\xe0\\x8b\\x00\\x2f\\xa2\\xda\\x21\\xb9\\x51\\xb8\\x87\\x1f\\x7a\\x29\\xbc\\x6d\\x38\\x79\\x0a\\xfc\\x66\\xa3\\x29\\xc3\\x97\\xd9\\xf9\\x25\\x0b\\xae\\x0e\\x30\\xae\\x34\\x26\\xe0\\x8d\\x8e\\xad\\x01\\x79\\xa3\\xb3\\x13\\xc9\\x08\\x83\\x91\\x92\\xf2\\x89\\xa3\\xf3\\xb6\\xe9\\x60\\xb4\\xc5\\xce\\xbe\\xf0\\xa0\\x9d\\xaa\\x9c\\x7a\\x15\\xc1\\x9d\\x4e\\xbc\\x6f\\xc2\\xac\\x3c\\xd0\\x22\\x32\\xe8\\x32\\xb2\\x34\\xed\\xd7\\x96\\x5d\\x68\\x7b\\xfe\\xb7\\x58\\xf7\\x0f\\xa7\\x96\\x38\\x41\\xb7\\x85\\x9b\\xb9\\x7c\\x97\\x1b\\xd5\\x57\\xbc\\x87\\x69\\x52\\x4a\\xc4\\xc6\\xee\\xb3\\x57\\x97\\x93\\x33\\x4b\\x52\\x2d\\x17\\x6b\\xc6\\x2f\\x86\\xb4\\xd5\\xc0\\xd4\\x01\\x70\\x36\\xd2\\xb6\\xbd\\x4e\\x43\\x84\\x41\\x6e\\xf8\\x26\\x31\\x39\\x69\\x1a\\x86\\x06\\x17\\x0d\\x73\\xc9\\x3d\\x64\\x17\\xdc\\xc1\\xa0\\x8a\\x53\\x7c\\x9e\\xd4\\x40\\x04\\x71\\xa4\\x6f\\x52\\x90\\x7b\\x46\\xb1\\x0a\\x8b\\x68\\x89\\xdb\\xb4\\x64\\x7a\\x8b\\xbc\\x71\\x49\"},\n{{0x69,0x64,0x50,0xb5,0x57,0xec,0x3c,0x94,0xcf,0x1a,0xf1,0x32,0x64,0x75,0x63,0x4a,0xa8,0x1d,0xef,0x38,0x14,0xff,0x30,0xa0,0x2b,0xa7,0xf2,0x04,0x4b,0x59,0xc0,0xfe,},{0x85,0x84,0x77,0x3c,0x56,0x6b,0x0e,0xed,0x3f,0x43,0x28,0x17,0x05,0xb5,0x75,0xa4,0x34,0xe4,0x7d,0x6c,0xf6,0xb2,0x51,0xb8,0x98,0x03,0xfe,0xf5,0x35,0x34,0xcb,0x29,},{0xce,0x8b,0x0a,0x57,0x79,0xf4,0xf5,0xf4,0x01,0xe8,0x4d,0x65,0x92,0x7a,0x0c,0x28,0xdf,0x82,0x9e,0x95,0xd0,0x9b,0xfa,0x97,0x11,0x1b,0x87,0x00,0x07,0x8f,0xf8,0x94,0xcf,0x72,0x77,0xe3,0x4a,0x71,0x61,0x44,0xd5,0x53,0x06,0xfc,0x9e,0x2f,0x64,0xcd,0x28,0x75,0x83,0xcc,0x80,0x03,0xbe,0x0e,0x8f,0xaf,0x26,0xaf,0x76,0x40,0x14,0x0e,},\"\\xcc\\x25\\x78\\x29\\xf3\\x0a\\x5f\\x90\\xdf\\xdb\\xc2\\x47\\xd4\\x2e\\x38\\x87\\x38\\xb7\\x6c\\x41\\xef\\x8a\\x82\\xa5\\xe0\\x22\\x5d\\xdf\\x1e\\x38\\x6d\\x77\\x08\\x0b\\x3b\\x9d\\xf8\\x6c\\x54\\xb8\\x5c\\xdf\\x2c\\x32\\xf3\\x67\\xab\\xa0\\xc3\\xb6\\xbf\\x88\\x8a\\x5a\\x69\\x03\\x52\\x9b\\x6a\\xeb\\x4d\\x54\\x07\\xa1\\x01\\x80\\x14\\x91\\x14\\x13\\x02\\x28\\xfc\\x43\\x56\\xcc\\xf3\\x66\\xb7\\x7b\\xe8\\x97\\x96\\xa9\\xe7\\x1a\\x0c\\x69\\x3f\\x31\\xe5\\x84\\xa4\\xf1\\x43\\x09\\x7b\\xa3\\x70\\x36\\x3b\\x67\\xb2\\xf2\\xe2\\xfd\\x8d\\x6f\\xe8\\xb4\\xe8\\xdb\\xf0\\xd7\\xdc\\xc1\\xa8\\x36\\x00\\x41\\x15\\x8a\\xa2\\xaf\\xf7\\xe2\\xa3\\x25\\xb8\\xe5\\x18\\xf1\\x93\\xa2\\x8b\\xae\\x05\\xe3\\xd5\\x2b\\x26\\x62\\x1a\\xf4\\x02\\x02\\x6d\\x7f\\x25\\x0e\\x86\\xdc\\xee\\x30\\x1a\\x58\\xb6\\x31\\xea\\xdf\\x45\\x27\\xe9\\x58\\xf0\\x2a\\x61\\x58\\x7f\\x0b\\xb5\\x16\\xce\\xfa\\xc0\\x09\\xfe\\x51\\x05\\x2f\\xff\\x53\\x33\\x6d\\xbd\\x94\\xe7\\x26\\x6d\\x3b\\x43\\xca\\xba\\x8a\\x1b\\x38\\xe5\\xd8\\x71\\xc2\\xa2\\x4a\\x4c\\x41\\x2f\\xff\\x3f\\x7a\\x9a\\x52\\xa8\\xab\\x23\\xba\\xc9\\x79\\x1b\\x2b\\x5a\\x66\\x9a\"},\n{{0xa8,0xdd,0x35,0xf0,0x54,0xfb,0x6f,0xf6,0xf0,0xab,0x09,0x4a,0x0d,0x3d,0x1c,0x26,0x28,0x32,0x18,0x1d,0xf3,0x5c,0xcd,0x51,0x92,0x54,0x5e,0xbd,0x6a,0x9c,0xf5,0x29,},{0xca,0x41,0x23,0x38,0xd3,0x81,0x4b,0x88,0x6d,0x96,0x4b,0x71,0x92,0x5e,0x1a,0xab,0xb3,0xff,0xd0,0x78,0x34,0xdb,0xe7,0xdc,0x51,0x25,0x68,0x88,0x2b,0x53,0xe4,0xa3,},{0xfa,0x70,0x9f,0xbc,0x83,0x82,0xaf,0x83,0xd1,0x18,0x12,0x61,0x8d,0xfa,0xca,0x45,0x2e,0xab,0x83,0xe4,0xc5,0x3f,0xe9,0xe5,0x85,0x84,0x67,0xd0,0x7b,0x67,0x67,0xe1,0x79,0x75,0xc1,0xe0,0x63,0x93,0xd6,0xdd,0xe1,0x5a,0x34,0xd9,0x47,0x3d,0x1c,0xf4,0xd6,0xd8,0xc2,0xd5,0x73,0x94,0x52,0x00,0x80,0xfa,0xc4,0xe4,0x34,0x48,0xbe,0x07,},\"\\x55\\xa7\\xad\\x91\\x32\\xd6\\x3a\\xc1\\x61\\xe7\\xad\\xb1\\x32\\xb9\\x18\\x9f\\xdd\\x84\\xc3\\x61\\xc1\\xe4\\xf5\\x41\\x9a\\x6d\\xf7\\x3d\\xf4\\xd7\\xae\\xb2\\x9a\\x8d\\xc4\\xbf\\x01\\x49\\x0d\\x4f\\x48\\x4e\\x2d\\x12\\x07\\x75\\x17\\xf5\\xfc\\x7a\\xd0\\xbd\\xed\\xa2\\x0a\\x6c\\xb0\\x22\\x79\\x42\\x29\\x0b\\x08\\xc3\\xfe\\x33\\xab\\x9b\\x21\\x35\\xbc\\x38\\xa6\\x57\\x9a\\x54\\xbd\\x98\\x2f\\x7d\\x14\\x17\\xce\\x86\\x71\\x17\\xae\\xa9\\x18\\xdb\\xd3\\xdd\\x47\\x6e\\x7e\\xb5\\xb5\\xd3\\xc3\\xe4\\x8a\\x86\\x4a\\x2f\\x94\\x2a\\x31\\x50\\x1a\\xa2\\xb2\\x9b\\x53\\xb8\\x05\\x13\\xc9\\x5d\\x6a\\x41\\x18\\x44\\xf0\\xde\\xdf\\x16\\xa2\\x9a\\xc2\\x67\\xd3\\x31\\xe5\\x3b\\xdc\\x25\\x39\\xbf\\xcf\\x32\\xdc\\x9b\\x5d\\x64\\x0f\\x12\\x31\\xe2\\xca\\xfb\\x0a\\xe9\\x4b\\xb5\\x18\\x94\\x26\\x86\\x33\\x64\\x26\\x2e\\xfb\\x47\\xb5\\xb5\\xcc\\xdb\\xbc\\x93\\x32\\x42\\x16\\xa7\\x99\\xb6\\xf5\\x0d\\x37\\x04\\xf1\\x5e\\xd5\\x9a\\xf6\\xcc\\x7d\\x91\\x0c\\xf0\\x62\\xd1\\xbe\\x63\\x2d\\xca\\x5d\\xf2\\x13\\xd4\\x87\\xd8\\x56\\x4f\\x2b\\x2b\\xd7\\xd8\\x18\\xbb\\xa2\\x7c\\x36\\x40\\x13\\xd9\\x2d\\x7f\\x72\\x62\\x54\\x62\"},\n{{0xae,0x1d,0x2c,0x6b,0x17,0x1b,0xe2,0x4c,0x2e,0x41,0x3d,0x36,0x4d,0xcd,0xa9,0x7f,0xa4,0x76,0xaa,0xf9,0x12,0x3d,0x33,0x66,0xb0,0xbe,0x03,0xa1,0x42,0xfe,0x6e,0x7d,},{0xd4,0x37,0xf5,0x75,0x42,0xc6,0x81,0xdd,0x54,0x34,0x87,0x40,0x8e,0xc7,0xa4,0x4b,0xd4,0x2a,0x5f,0xd5,0x45,0xce,0x2f,0x4c,0x82,0x97,0xd6,0x7b,0xb0,0xb3,0xaa,0x7b,},{0x90,0x90,0x08,0xf3,0xfc,0xff,0xf4,0x39,0x88,0xae,0xe1,0x31,0x4b,0x15,0xb1,0x82,0x2c,0xaa,0xa8,0xda,0xb1,0x20,0xbd,0x45,0x2a,0xf4,0x94,0xe0,0x83,0x35,0xb4,0x4a,0x94,0xc3,0x13,0xc4,0xb1,0x45,0xea,0xdd,0x51,0x66,0xea,0xac,0x03,0x4e,0x29,0xb7,0xe6,0xac,0x79,0x41,0xd5,0x96,0x1f,0xc4,0x9d,0x26,0x0e,0x1c,0x48,0x20,0xb0,0x0e,},\"\\x9e\\x6c\\x2f\\xc7\\x6e\\x30\\xf1\\x7c\\xd8\\xb4\\x98\\x84\\x5d\\xa4\\x4f\\x22\\xd5\\x5b\\xec\\x15\\x0c\\x61\\x30\\xb4\\x11\\xc6\\x33\\x9d\\x14\\xb3\\x99\\x69\\xab\\x10\\x33\\xbe\\x68\\x75\\x69\\xa9\\x91\\xa0\\x6f\\x70\\xb2\\xa8\\xa6\\x93\\x1a\\x77\\x7b\\x0e\\x4b\\xe6\\x72\\x3c\\xd7\\x5e\\x5a\\xa7\\x53\\x28\\x13\\xef\\x50\\xb3\\xd3\\x72\\x71\\x64\\x0f\\xa2\\xfb\\x28\\x7c\\x03\\x55\\x25\\x76\\x41\\xea\\x93\\x5c\\x85\\x1c\\x0b\\x6a\\xc6\\x8b\\xe7\\x2c\\x88\\xdf\\xc5\\x85\\x6f\\xb5\\x35\\x43\\xfb\\x37\\x7b\\x0d\\xbf\\x64\\x80\\x8a\\xfc\\xc4\\x27\\x4a\\xa4\\x56\\x85\\x5a\\xd2\\x8f\\x61\\x26\\x7a\\x41\\x9b\\xc7\\x21\\x66\\xb9\\xca\\x73\\xcd\\x3b\\xb7\\x9b\\xf7\\xdd\\x25\\x9b\\xaa\\x75\\x91\\x14\\x40\\x97\\x4b\\x68\\xe8\\xba\\x95\\xa7\\x8c\\xbb\\xe1\\xcb\\x6a\\xd8\\x07\\xa3\\x3a\\x1c\\xce\\x2f\\x40\\x6f\\xf7\\xbc\\xbd\\x05\\x8b\\x44\\xa3\\x11\\xb3\\x8a\\xb4\\xd4\\xe6\\x14\\x16\\xc4\\xa7\\x4d\\x88\\x3d\\x6a\\x6a\\x79\\x4a\\xbd\\x9c\\xf1\\xc0\\x39\\x02\\x8b\\xf1\\xb2\\x0e\\x3d\\x49\\x90\\xaa\\xe8\\x6f\\x32\\xbf\\x06\\xcd\\x83\\x49\\xa7\\xa8\\x84\\xcc\\xe0\\x16\\x5e\\x36\\xa0\\x64\\x0e\\x98\\x7b\\x9d\\x51\"},\n{{0x02,0x65,0xa7,0x94,0x4b,0xac,0xcf,0xeb,0xf4,0x17,0xb8,0x7a,0xe1,0xe6,0xdf,0x2f,0xf2,0xa5,0x44,0xff,0xb5,0x82,0x25,0xa0,0x8e,0x09,0x2b,0xe0,0x3f,0x02,0x60,0x97,},{0x63,0xd3,0x27,0x61,0x5e,0xa0,0x13,0x9b,0xe0,0x74,0x0b,0x61,0x8a,0xff,0x1a,0xcf,0xa8,0x18,0xd4,0xb0,0xc2,0xcf,0xea,0xf0,0xda,0x93,0xcd,0xd5,0x24,0x5f,0xb5,0xa9,},{0xb6,0xc4,0x45,0xb7,0xed,0xdc,0xa5,0x93,0x5c,0x61,0x70,0x8d,0x44,0xea,0x59,0x06,0xbd,0x19,0xcc,0x54,0x22,0x4e,0xae,0x3c,0x8e,0x46,0xce,0x99,0xf5,0xcb,0xbd,0x34,0x1f,0x26,0x62,0x39,0x38,0xf5,0xfe,0x04,0x07,0x0b,0x1b,0x02,0xe7,0x1f,0xbb,0x7c,0x78,0xa9,0x0c,0x0d,0xda,0x66,0xcb,0x14,0x3f,0xab,0x02,0xe6,0xa0,0xba,0xe3,0x06,},\"\\x87\\x4e\\xd7\\x12\\xa2\\xc4\\x1c\\x26\\xa2\\xd9\\x52\\x7c\\x55\\x23\\x3f\\xde\\x0a\\x4f\\xfb\\x86\\xaf\\x8e\\x8a\\x1d\\xd0\\xa8\\x20\\x50\\x2c\\x5a\\x26\\x93\\x2b\\xf8\\x7e\\xe0\\xde\\x72\\xa8\\x87\\x4e\\xf2\\xee\\xbf\\x83\\x38\\x4d\\x44\\x3f\\x7a\\x5f\\x46\\xa1\\x23\\x3b\\x4f\\xb5\\x14\\xa2\\x46\\x99\\x81\\x82\\x48\\x94\\xf3\\x25\\xbf\\x86\\xaa\\x0f\\xe1\\x21\\x71\\x53\\xd4\\x0f\\x35\\x56\\xc4\\x3a\\x8e\\xa9\\x26\\x94\\x44\\xe1\\x49\\xfb\\x70\\xe9\\x41\\x5a\\xe0\\x76\\x6c\\x56\\x5d\\x93\\xd1\\xd6\\x36\\x8f\\x9a\\x23\\xa0\\xad\\x76\\xf9\\xa0\\x9d\\xbf\\x79\\x63\\x4a\\xa9\\x71\\x78\\x67\\x77\\x34\\xd0\\x4e\\xf1\\xa5\\xb3\\xf8\\x7c\\xe1\\xee\\x9f\\xc5\\xa9\\xac\\x4e\\x7a\\x72\\xc9\\xd7\\xd3\\x1e\\xc8\\x9e\\x28\\xa8\\x45\\xd2\\xe1\\x10\\x3c\\x15\\xd6\\x41\\x0c\\xe3\\xc7\\x23\\xb0\\xcc\\x22\\x09\\xf6\\x98\\xaa\\x9f\\xa2\\x88\\xbb\\xbe\\xcf\\xd9\\xe5\\xf8\\x9c\\xdc\\xb0\\x9d\\x3c\\x21\\x5f\\xeb\\x47\\xa5\\x8b\\x71\\xea\\x70\\xe2\\xab\\xea\\xd6\\x7f\\x1b\\x08\\xea\\x6f\\x56\\x1f\\xb9\\x3e\\xf0\\x52\\x32\\xee\\xda\\xbf\\xc1\\xc7\\x70\\x2a\\xb0\\x39\\xbc\\x46\\x5c\\xf5\\x7e\\x20\\x7f\\x10\\x93\\xfc\\x82\\x08\"},\n{{0x6b,0xce,0x4d,0xfd,0x53,0xbf,0xa5,0x50,0x6f,0x2f,0x55,0x4d,0x2d,0x99,0x4a,0x0d,0xc4,0x0c,0xaf,0xcd,0xec,0x7e,0x1b,0xe0,0x50,0x00,0x6e,0x5c,0x5a,0x4b,0x38,0xa1,},{0xc8,0x90,0x02,0x37,0x28,0xd8,0x39,0x70,0x70,0x29,0x17,0x71,0xe6,0x5e,0x03,0x4d,0x34,0xd4,0xaa,0xe5,0xe2,0x47,0x65,0x3e,0x4f,0xf4,0xc0,0x74,0x59,0x1d,0xa7,0x02,},{0x99,0xae,0x67,0x82,0xff,0x27,0x64,0x6c,0x27,0xf6,0x1e,0x23,0x63,0x6a,0xe1,0x88,0x15,0x21,0xcf,0xa5,0xed,0x25,0x6f,0x70,0xbc,0xe7,0xce,0x00,0xb6,0x82,0x80,0xce,0x8e,0x0c,0x82,0xaa,0x76,0x5a,0xfb,0x8b,0x5a,0x1f,0xf2,0xfe,0x42,0xc5,0x74,0x41,0xe4,0x58,0xe4,0x43,0xdc,0x8b,0x12,0x34,0x77,0xae,0x33,0xd8,0x84,0x88,0x8c,0x0b,},\"\\x32\\x39\\x19\\x07\\x47\\xee\\x33\\xd4\\x0b\\xf8\\x70\\xac\\x9a\\xd4\\x9d\\x88\\xee\\x32\\x0f\\x63\\xc0\\x52\\x57\\xe8\\xab\\x2c\\x60\\x30\\x65\\x97\\xce\\x76\\xd1\\xf1\\xe7\\x92\\xab\\x6a\\x65\\xca\\xa5\\x44\\xfb\\xec\\x20\\x89\\x2f\\xd4\\x96\\x05\\x94\\xf3\\x1b\\x37\\x63\\xef\\x07\\xd4\\x98\\x2e\\xae\\x4a\\x2d\\xbf\\x33\\x77\\xdc\\xc1\\xe3\\xf9\\x5e\\x46\\xed\\x39\\xb7\\xf0\\x22\\x2f\\x04\\xbb\\x5c\\x3b\\x43\\x4c\\x8f\\x9f\\x31\\x0d\\xe9\\xf1\\x22\\xa2\\x9f\\x82\\x41\\xe8\\x1e\\x20\\x65\\x49\\xae\\x62\\x8d\\x2b\\x8a\\xd7\\x68\\x97\\x2c\\x98\\x84\\x7c\\x11\\x88\\xad\\x04\\xc8\\x35\\x35\\x63\\x78\\xbe\\xf7\\x9c\\xd1\\x26\\x86\\x94\\x05\\xb1\\x29\\xfd\\xbd\\xc3\\xbc\\x48\\x9c\\xbd\\x13\\x99\\x50\\x5d\\xad\\xef\\x76\\x17\\xb5\\xbe\\x5d\\xa1\\x73\\xd3\\xe8\\x0e\\x58\\x38\\xc9\\x9e\\x34\\x92\\x76\\x24\\x27\\x29\\xe0\\x21\\x9b\\xd7\\x47\\x6a\\xe5\\xc4\\xf8\\x1a\\x12\\x87\\x8f\\xb4\\x83\\xa6\\xc0\\xe9\\xb0\\xdf\\x29\\x62\\xeb\\x0b\\xf0\\x01\\x57\\x78\\x2c\\xf7\\x68\\xa1\\xb7\\x1c\\x01\\x01\\x69\\xee\\x85\\x22\\xde\\xf0\\x02\\x4a\\xd7\\xe4\\x57\\x75\\xa2\\x90\\x63\\x9c\\x53\\xaa\\xf4\\x81\\x98\\xc4\\x2d\\xe7\\x5c\"},\n{{0x17,0x86,0x1a,0x8d,0x41,0x54,0xac,0xd4,0xfa,0x9c,0x8f,0xc9,0x47,0xc1,0x88,0x6c,0x11,0x29,0x0b,0xe2,0x22,0x87,0x2f,0xf4,0xf8,0xcd,0x25,0x93,0x9e,0x4d,0x13,0x61,},{0x43,0x77,0x3f,0x44,0x49,0x06,0x5e,0xae,0xba,0xf8,0x93,0x7b,0xaf,0x75,0x85,0x60,0xb0,0xc4,0xd2,0xde,0x46,0x97,0x78,0x39,0xb3,0xb8,0x73,0xd5,0xd7,0xd5,0xfd,0x8f,},{0xa5,0xee,0x02,0x4c,0xcd,0xbd,0xd4,0xc2,0x1a,0x24,0x70,0x9e,0xc5,0x3d,0xcc,0xb7,0xee,0x17,0x62,0x6d,0xd0,0x0a,0x09,0x3d,0x08,0x84,0xf5,0xb4,0x5c,0x4c,0x9d,0x16,0x91,0x84,0x01,0x51,0xc3,0x3c,0x8a,0xa0,0x7b,0x69,0xb3,0x4e,0x16,0xf6,0x16,0x47,0xeb,0xe7,0x93,0xae,0x4d,0xaa,0x70,0xcf,0xf4,0x8e,0x6a,0xb4,0x2f,0xfd,0xbc,0x00,},\"\\x18\\x4d\\xf5\\xea\\x32\\x15\\xeb\\xe1\\x80\\x39\\x0b\\x0f\\xf0\\x42\\xba\\x23\\x81\\x15\\x5a\\x03\\x8d\\xc7\\x32\\xf7\\x6a\\x01\\xc7\\xe7\\x0f\\x82\\xd1\\xcc\\xc9\\xde\\x9a\\x05\\x96\\xb3\\xfe\\xe4\\x47\\x20\\x9c\\x99\\x26\\x84\\xf6\\x43\\xdf\\x21\\xf4\\xcf\\x9d\\x17\\x92\\x62\\x79\\x0e\\x86\\x23\\xe4\\x24\\x72\\xdc\\x35\\x19\\x97\\xe6\\xda\\x18\\x9c\\x07\\xe1\\xe8\\x88\\x2c\\x07\\xf8\\x6c\\x63\\x37\\xec\\x01\\x13\\x91\\x2c\\xf9\\x22\\x15\\xc8\\xde\\x19\\x82\\xb8\\xfc\\x57\\xbf\\xab\\xc5\\x5a\\x3e\\x87\\x36\\xf7\\x36\\x10\\x42\\x9d\\x97\\xfe\\xb5\\x1d\\x79\\x4f\\x50\\x5d\\x0c\\x5a\\x0b\\x3a\\xbd\\x48\\xef\\x7f\\x55\\xa6\\x28\\xf9\\x0b\\x85\\x67\\xa1\\xc1\\x5e\\xa9\\xd1\\x90\\xd7\\xbf\\x4e\\xc2\\xbc\\x93\\x34\\xad\\xa6\\xcb\\x92\\x80\\x8d\\xfc\\x20\\x64\\x83\\x6f\\xcf\\xa4\\x6b\\x96\\xfd\\x7a\\x5d\\x6f\\x4b\\x05\\x4d\\xab\\x09\\xb7\\x35\\x95\\xfe\\xb8\\x9e\\xd0\\x05\\xb9\\xec\\x9d\\x31\\x88\\x12\\x1d\\xe6\\x96\\x96\\xd6\\x4e\\x7c\\x7b\\xbd\\xfc\\x1c\\x46\\x9f\\xaf\\x14\\x8c\\x38\\xa7\\x78\\x59\\x70\\xaf\\xe1\\xac\\xd0\\x6a\\x92\\xc9\\x94\\x78\\xfe\\x44\\x97\\x4e\\x3b\\xb2\\x09\\x5e\\x44\\x67\\xe9\\xb2\\xe9\\x96\"},\n{{0x0a,0x84,0xba,0xa5,0x4f,0x11,0xcf,0x17,0x09,0x0f,0xec,0x61,0xf3,0xf9,0x40,0x15,0x08,0xa3,0xa0,0x38,0x87,0xac,0xa1,0xa7,0x93,0x93,0x94,0xb1,0xee,0x40,0xa9,0x25,},{0x30,0x9a,0x73,0xc6,0x2d,0x23,0xd7,0x40,0xf2,0xe9,0x3c,0x18,0x58,0x7a,0xc1,0x5e,0x7e,0xc4,0x80,0xd2,0x5a,0xc0,0x79,0x4e,0x10,0xf8,0xcd,0x46,0x1c,0xc2,0xb1,0x30,},{0x4d,0x87,0x0b,0xd5,0x3a,0xf8,0xf1,0x3f,0x21,0x4d,0x99,0x34,0xec,0x90,0x3a,0xc4,0x82,0x84,0x09,0x2c,0xd9,0xb1,0x62,0xa4,0x4c,0xce,0xc8,0x51,0xfa,0x94,0x2d,0xe7,0x15,0xcc,0xda,0x07,0xb7,0x99,0x1d,0x71,0x27,0x23,0xe7,0xa4,0xd5,0xb4,0xf0,0x37,0x4a,0xb8,0x5a,0xc3,0x86,0x7e,0x0b,0x53,0xeb,0xc4,0x6b,0x53,0x0f,0x9f,0xed,0x05,},\"\\xfe\\x70\\x01\\x7b\\x14\\x67\\x8b\\x0d\\x3a\\xd0\\x3e\\x18\\x3d\\x6f\\x53\\x31\\x43\\x78\\x37\\x9a\\xb3\\xda\\x65\\xb3\\x51\\x12\\x57\\xb3\\xd5\\x40\\x86\\xe8\\x6f\\x20\\x31\\x13\\x90\\x21\\x39\\x1a\\xf9\\xd7\\x20\\x85\\xff\\x7c\\x3d\\xc8\\xc1\\xe2\\xd9\\x1e\\x53\\x33\\x38\\x55\\x42\\x3d\\x0f\\x78\\x5e\\x2c\\xc5\\xf8\\xb7\\x79\\x9f\\xcf\\x1b\\x70\\xe6\\xbe\\xcb\\x78\\x8e\\x53\\xe9\\x02\\x0f\\x29\\x95\\xdd\\xb0\\xc3\\x83\\xa1\\xf8\\x10\\x38\\xfc\\x3d\\x54\\x3c\\xe0\\xa3\\x8c\\x9c\\x28\\x8a\\x9b\\xc4\\x07\\x7f\\x42\\x77\\xdc\\xc6\\xc5\\x64\\x22\\x63\\xfc\\xfe\\x19\\x68\\x80\\x05\\xa6\\x03\\xf5\\x76\\x75\\xd2\\x43\\x4f\\x3e\\xd1\\xf4\\x6d\\x32\\xf1\\x4e\\xae\\xb0\\x73\\xe8\\x3e\\xe7\\x08\\x6d\\xa2\\xfb\\x67\\x65\\x9d\\x3f\\xb6\\x8c\\x62\\x32\\x0b\\x77\\x27\\xb3\\xb8\\xea\\x00\\x65\\x76\\xbc\\x2c\\x7e\\x6b\\x5f\\x1e\\xce\\xfa\\x8b\\x92\\xe7\\x0c\\x92\\xc8\\x89\\x51\\xd0\\xc1\\x2d\\x91\\xde\\x80\\x1c\\x38\\xb7\\xca\\x5a\\x0a\\x04\\xb4\\xc3\\x42\\x9a\\xba\\x86\\x38\\x6e\\x96\\xe0\\x6a\\xfd\\x20\\xd4\\xc5\\xc2\\xfe\\x2b\\x9b\\x42\\x73\\xeb\\x05\\x20\\x1a\\x79\\x27\\x3a\\xbd\\xbe\\xb3\\x7e\\xd1\\x83\\x0d\\x22\\x6b\\x6b\\xdb\"},\n{{0x38,0x37,0x94,0x23,0xda,0xfd,0xbf,0x25,0xe1,0x9d,0x72,0x31,0xbd,0xdd,0x80,0xb4,0xce,0xfc,0xfe,0x2a,0xed,0x93,0x25,0x84,0xdf,0xa0,0xcc,0x3c,0x9f,0x92,0x32,0xde,},{0x59,0x7e,0x81,0xdc,0xee,0x94,0x48,0xb7,0x7d,0xe6,0x82,0x9e,0x79,0x21,0xc8,0xa3,0x90,0x53,0x5d,0x89,0xa0,0x84,0x94,0x30,0xae,0xd6,0x63,0x64,0xee,0x14,0x0d,0x8b,},{0xd8,0xb5,0x0a,0x88,0xae,0xd6,0xf2,0xa9,0x6d,0x08,0x22,0x13,0xad,0xf8,0xb2,0x51,0x9f,0x6a,0x0b,0xbd,0x30,0xdd,0x3c,0xb0,0xf3,0xfd,0x3c,0xe1,0xc6,0x43,0xfc,0x02,0x99,0x46,0xcd,0x43,0x46,0x2e,0xd2,0x25,0x13,0xf1,0xd6,0x5f,0xca,0x24,0xbd,0xe3,0x81,0x81,0x66,0xba,0xa8,0x6d,0xaa,0x79,0x87,0x92,0xaf,0xaf,0xe0,0xc1,0xa1,0x0a,},\"\\x36\\x12\\x5c\\xa6\\x66\\x68\\x80\\x29\\x06\\x23\\x7e\\x63\\xa2\\xfe\\x5a\\xe6\\x10\\xf1\\x1a\\x7c\\xf9\\x25\\x20\\xd1\\x9e\\x66\\x90\\xa3\\xad\\xfa\\xfd\\x5d\\x07\\xa7\\x84\\xbc\\x1a\\x0e\\x18\\x52\\x73\\xd1\\x1d\\x34\\x0d\\x5e\\xff\\x90\\x15\\x97\\xde\\xdf\\x45\\x0c\\x46\\x99\\xd4\\x3f\\x3f\\xb1\\x68\\xd5\\x57\\xf6\\xc9\\xc0\\x30\\x77\\xc3\\xcd\\xc3\\x70\\xd3\\x48\\x32\\xcc\\xdf\\x2a\\x8e\\x3d\\x75\\x79\\x64\\x90\\xed\\x02\\x42\\x89\\x9d\\x25\\xdd\\xf4\\x4b\\xfc\\x66\\xf3\\x29\\xcf\\x4c\\x45\\x16\\x87\\x03\\xc3\\x1b\\xc9\\x20\\x2d\\x89\\x0f\\x39\\x69\\xff\\xd3\\xac\\x35\\xa1\\x28\\x18\\xdc\\xa7\\x51\\xce\\xb8\\x80\\x8f\\xe8\\x1e\\xfa\\x26\\xa5\\xe0\\xd2\\x00\\xc5\\xec\\x1d\\x94\\xa5\\x09\\x7e\\xa7\\x4b\\x64\\x98\\xfe\\x28\\x8f\\x30\\xc4\\x8d\\x72\\x7e\\x9d\\x3d\\x35\\xc8\\xe1\\x2d\\x85\\x42\\x07\\x02\\x55\\x6f\\x28\\x61\\x48\\x4f\\xfd\\x09\\xb4\\xf1\\x22\\x65\\xcc\\x9a\\xba\\xfe\\xb8\\x2c\\xf5\\x90\\x02\\x88\\x95\\xa7\\xd0\\x50\\xff\\x57\\xcc\\xf5\\xf2\\x80\\x22\\xd0\\x16\\xab\\x40\\x94\\xb0\\x62\\xe4\\x8b\\x66\\xfd\\x36\\xd1\\xe1\\x96\\x26\\xe5\\x21\\x5e\\xfa\\x40\\xfb\\x7e\\x3b\\x70\\x62\\xf8\\x1e\\x95\\x48\\x30\\xc9\"},\n{{0xf9,0x25,0xd2,0x74,0xaa,0xf1,0xfe,0x1a,0x21,0x65,0x62,0x37,0x38,0x5e,0x97,0xf7,0x78,0x3e,0x78,0x09,0x0c,0x5d,0x42,0x17,0xfe,0xce,0x70,0x57,0xc8,0x0f,0x42,0x6d,},{0x3b,0x0f,0xc3,0x70,0xbe,0x3a,0x4b,0x19,0xa8,0x8a,0xb9,0x98,0xc5,0x95,0x04,0xff,0xb5,0x9a,0x87,0x60,0x63,0x38,0xe6,0x73,0xdf,0x5b,0x3f,0xab,0x4d,0x9b,0xfb,0x8d,},{0x79,0x54,0x9a,0x31,0x7d,0x10,0xa0,0xbe,0x32,0x2a,0x94,0xa1,0x51,0xad,0x11,0xe7,0x7e,0xfc,0x48,0x36,0xcc,0x80,0x06,0xa8,0x50,0x81,0x27,0x3d,0x76,0x02,0xa6,0x38,0x96,0x3a,0x9c,0xaf,0x19,0xc3,0xed,0xf1,0xe2,0x5f,0xad,0x1e,0x9d,0x68,0x70,0x1a,0x71,0xde,0xa7,0x27,0xda,0x6a,0x5c,0x5b,0xca,0xc9,0x33,0x95,0x89,0x22,0x4b,0x05,},\"\\x14\\x3c\\xaa\\xfa\\x5f\\x62\\xb1\\x3e\\x43\\xdf\\xfa\\x49\\xd4\\x20\\xfa\\x99\\xf7\\x71\\xb1\\x92\\x6d\\x40\\xd6\\xcb\\x2b\\xbb\\x42\\x7f\\x27\\xb6\\xc2\\x66\\xeb\\x3d\\xeb\\x2d\\x8b\\xbb\\xd4\\x7b\\x82\\x14\\xad\\x40\\x25\\x1c\\xb1\\x90\\x7a\\xd6\\x5e\\xb9\\x41\\x93\\xe5\\x4a\\xd8\\x5c\\x67\\x00\\xb4\\x18\\x9e\\x80\\xf1\\xcc\\x01\\x54\\xc6\\x3e\\xd1\\x51\\xa8\\xbb\\xbd\\x30\\xe0\\x16\\x37\\xca\\x58\\xe7\\x0a\\xa3\\xee\\x52\\xef\\x75\\xd0\\x87\\x30\\x78\\xa4\\x05\\x01\\x4f\\x78\\x6e\\xb2\\xd7\\x7b\\x7f\\x44\\x22\\xf9\\x27\\x82\\x3e\\x47\\x5e\\x05\\xb2\\x42\\x45\\xf9\\x06\\x8a\\x67\\xf1\\x4f\\x4f\\x3c\\xfb\\x1e\\xb3\\x0b\\xfe\\xde\\x7b\\x32\\x62\\x23\\x0c\\xed\\x9e\\x31\\x36\\x1d\\xb1\\x96\\x36\\xb2\\xc1\\x2f\\xdf\\x1b\\x9c\\x14\\x51\\x0a\\xcd\\x5b\\xc1\\x8c\\x0d\\xdf\\x76\\x35\\xe0\\x03\\x50\\x3e\\x6f\\x71\\xe1\\xc3\\x65\\xcd\\xfb\\x4c\\x65\\xee\\x75\\xb4\\xde\\x06\\x94\\xaf\\x87\\x07\\x63\\x74\\xd6\\x31\\xe6\\xc4\\xb8\\xe2\\x40\\xfa\\x51\\xda\\xb5\\xe1\\xf8\\x0c\\xa2\\xa0\\x6c\\x49\\xf4\\x2e\\xa0\\x9e\\x04\\x75\\xde\\xfb\\x18\\x4d\\x9c\\xde\\x9f\\x58\\xf9\\x59\\xe6\\x40\\x92\\xaa\\xc8\\xf2\\x02\\x7e\\x46\\x81\\x26\\xf2\\xfb\"},\n{{0x97,0x1f,0x80,0x6b,0xe6,0xf0,0x7d,0x41,0xbe,0x88,0x30,0xff,0x8d,0xae,0x70,0x4b,0x08,0x63,0x8a,0xd6,0xcf,0xf7,0x22,0xd8,0x43,0x25,0x38,0x12,0x7b,0x76,0x96,0x25,},{0xaf,0x6a,0xc9,0x8d,0xce,0x20,0x78,0xa6,0xc7,0x3f,0x60,0x97,0xba,0xb6,0x3f,0x20,0x5c,0xaf,0x69,0x53,0xaf,0xa2,0x84,0xd0,0x42,0xbd,0x50,0xa4,0xfc,0xe9,0x6c,0xb4,},{0x20,0x37,0xa0,0xa7,0x67,0x4b,0x84,0xff,0x27,0xd0,0xb2,0x2f,0x62,0xb4,0xba,0xc6,0x5e,0x2d,0xc0,0xf5,0xfd,0xc8,0x99,0xfe,0xb7,0x80,0x0f,0x25,0xc2,0x99,0x81,0xde,0xe6,0x41,0xc5,0xa5,0x0f,0x8b,0x94,0x10,0x97,0x0b,0x49,0xd2,0xd5,0x36,0x58,0xc8,0x9e,0xe1,0x69,0x61,0xdc,0xcf,0x53,0x91,0xa6,0x91,0x8f,0x2a,0x84,0xea,0xda,0x0b,},\"\\x01\\x34\\x55\\xd0\\x49\\xaa\\x54\\xed\\x99\\x5f\\xbd\\x94\\xe6\\x36\\x99\\x55\\x49\\x53\\x95\\xe4\\x43\\x88\\x22\\x25\\x9b\\x10\\x60\\xe9\\xa3\\x47\\x79\\x04\\x2a\\x1a\\x69\\x21\\x1f\\x6e\\xa2\\x07\\x73\\x99\\xdd\\x23\\x48\\x06\\xba\\x0b\\x35\\x3c\\xd7\\x9a\\x57\\xe1\\xc4\\x9b\\x25\\x0a\\xb2\\x71\\x06\\xdc\\xde\\x57\\x6e\\xcf\\xa1\\x15\\xea\\xe4\\x61\\xfe\\xbb\\x12\\xd2\\xda\\x25\\xff\\xcf\\x17\\xb7\\x15\\xf8\\xd9\\x5c\\x2f\\x0c\\x42\\x5d\\x5a\\x81\\xf7\\x00\\x11\\x5b\\x70\\xd4\\x9e\\x1c\\xfe\\x49\\xfc\\xaa\\x14\\xfa\\x20\\x5e\\x28\\xec\\x85\\x24\\x7f\\x1a\\x6e\\x71\\x28\\xbf\\x3b\\xb3\\x06\\x0d\\xc0\\x84\\x64\\xbd\\xa6\\x53\\x85\\x40\\xd0\\xac\\x47\\x20\\x93\\xe5\\xa0\\x72\\x0f\\xde\\x2f\\x3d\\xc4\\x78\\x8e\\x0e\\x9b\\x0d\\xbf\\xe2\\xa2\\xb5\\xf1\\xa0\\xf3\\xf8\\x0d\\xe9\\x84\\x02\\x5b\\x15\\xc6\\x5a\\xf7\\x7f\\x67\\x1e\\x1c\\x5e\\x28\\x40\\x44\\x4d\\xe5\\xc7\\xed\\xa0\\x25\\xe6\\xdc\\x1a\\x3f\\xf1\\x6e\\x26\\xcc\\x54\\xcd\\xee\\xd5\\x6b\\xe7\\x3f\\x9b\\x01\\xab\\x2b\\x1b\\xc1\\x6c\\x8e\\xf5\\x8a\\x5b\\x76\\xdd\\x47\\x28\\x78\\x07\\xe5\\xc5\\x0f\\x0d\\x7c\\x0a\\x5b\\x81\\x20\\xdf\\xde\\x64\\x5a\\x01\\x2c\\x5c\\xf1\\x14\\x91\\xbc\"},\n{{0x2b,0xb0,0x65,0x2f,0x8f,0xff,0x69,0x01,0x99,0x11,0x48,0xc6,0x8a,0x32,0x67,0x87,0x72,0x71,0x00,0x6a,0xe9,0x58,0x91,0x49,0xbb,0x20,0x68,0x50,0xcd,0xf5,0x2f,0xb0,},{0xc0,0x3b,0x77,0xbe,0x98,0x3e,0x74,0xa2,0x34,0xc1,0x98,0x64,0x96,0xb2,0x92,0xe1,0x39,0x99,0x2e,0xb7,0x52,0x9e,0x70,0xb3,0xaf,0xad,0x7a,0xe4,0xfd,0xcf,0x8a,0x66,},{0x4e,0x15,0x8d,0xea,0xae,0xc3,0xd8,0x89,0x41,0x29,0x6a,0xf2,0xd2,0x73,0x41,0x01,0x2b,0x02,0x41,0xd4,0xe0,0xf4,0x6e,0x43,0x5e,0x37,0x5c,0x98,0x75,0xe8,0x9f,0x5e,0x32,0xc0,0x57,0xb5,0x27,0xbc,0x34,0x11,0xaf,0x09,0x6a,0x77,0xbf,0xce,0xb4,0x5b,0x98,0x3e,0xfe,0x45,0x5e,0x3f,0x03,0x15,0x5d,0x6b,0xc7,0xb0,0xac,0xc8,0xe6,0x0c,},\"\\xb9\\x23\\xca\\x67\\xe3\\x96\\xd8\\x65\\x6f\\xa3\\xdb\\xce\\x82\\x89\\xa3\\x8b\\xd3\\xc1\\x28\\xce\\xfb\\x30\\xef\\xc1\\x86\\x2b\\xb9\\x44\\xb4\\x50\\x78\\x05\\x41\\x98\\x24\\xce\\x2b\\x83\\xd6\\x90\\xef\\x4c\\xf1\\x07\\x49\\x28\\x17\\x14\\x3b\\xf6\\x4c\\x02\\x49\\x89\\xaf\\x1a\\x7d\\x2e\\x1f\\x5a\\xc9\\x78\\x74\\xf8\\x6b\\xb0\\xd3\\x77\\x3f\\xf8\\x40\\xf5\\x14\\xd9\\xa1\\x39\\x4a\\x39\\x59\\xb0\\x11\\xd3\\xa6\\xb8\\x16\\xa3\\xfa\\xe5\\xde\\x17\\xb2\\xa9\\xff\\x34\\x98\\x63\\xd2\\x7f\\xbb\\xb5\\x0c\\xca\\x73\\x41\\x08\\x75\\x10\\x00\\xd6\\x35\\x8c\\xa0\\x64\\x7a\\x93\\xeb\\x49\\xe2\\xe7\\xaf\\x06\\x28\\x7d\\x48\\xf2\\xc0\\x9d\\x5c\\x1c\\x73\\xe4\\xd8\\xf7\\x7e\\xa2\\xbc\\xaa\\x73\\x56\\x79\\x5b\\x26\\x72\\x87\\x19\\xbe\\xd5\\xff\\xdb\\x82\\x15\\x78\\xbd\\x5d\\x66\\xbf\\x92\\xed\\xaf\\x8b\\x23\\x8b\\x2b\\xbd\\x7d\\x1e\\x2c\\x30\\xa7\\x87\\xf9\\x01\\xa3\\x3d\\x0a\\x76\\x66\\x9a\\x9c\\x3c\\x7f\\x2b\\x55\\x2c\\xcb\\x83\\x49\\xc7\\xde\\xd5\\xe1\\xa4\\x61\\x70\\xcf\\x28\\xe3\\x59\\xe2\\xfd\\xd5\\x4b\\x05\\xa5\\x62\\xf5\\x28\\xc6\\x8a\\x56\\x97\\x4d\\xf8\\x2d\\x46\\x66\\x37\\xc8\\xe5\\x32\\x46\\xa7\\x21\\x7e\\x43\\x86\\x80\\x1e\\x0e\\x32\\x66\"},\n{{0xdb,0x9b,0x81,0x2c,0xb3,0xc7,0xc0,0x3b,0x97,0x7f,0x48,0x7d,0x3d,0x65,0xcc,0xd9,0xcd,0x2f,0x3d,0xee,0x11,0x60,0x20,0x67,0xdb,0xfb,0x72,0xb5,0x89,0xff,0x3f,0x79,},{0xff,0xa0,0x38,0xad,0x8c,0x3b,0x37,0x8c,0xe7,0x5d,0x65,0x84,0x4d,0x08,0xe3,0xd6,0xa9,0x2d,0x19,0x4a,0x1b,0x78,0x62,0xe9,0xd9,0x72,0x0d,0x20,0x67,0x9b,0x29,0x44,},{0xa6,0x28,0xa7,0x74,0x21,0xb2,0xab,0xab,0x57,0x6e,0xed,0x35,0xd2,0xee,0x3d,0x14,0x56,0x1b,0x21,0xfa,0x14,0xa6,0xe2,0xfa,0xc2,0x63,0xc3,0xea,0xdd,0x79,0xf2,0xfc,0x06,0x69,0xf9,0x42,0x9b,0x91,0x0b,0x84,0x22,0xb4,0xb2,0x9a,0xc0,0x26,0xa4,0x2e,0x98,0xd1,0x81,0xbe,0x35,0x07,0xc5,0xed,0x7c,0x74,0x8a,0x1f,0xdc,0xf1,0xd8,0x07,},\"\\xa7\\x00\\x92\\xc7\\x69\\x7c\\xd4\\xa2\\x09\\x56\\x7c\\x38\\xba\\x7f\\xb7\\x1a\\xa8\\xf1\\x5e\\x58\\x27\\xa2\\x08\\x76\\x92\\x39\\x43\\xfd\\x6a\\xdc\\x65\\x9c\\x98\\x67\\xac\\x6f\\x58\\xa6\\x1d\\xc7\\xce\\xc3\\xd3\\x62\\x41\\x16\\x82\\x00\\x0c\\x1a\\x9a\\xd1\\x29\\x5e\\xb8\\xb7\\x0f\\x24\\x2d\\x86\\xb5\\x86\\x5e\\xb7\\x6b\\x87\\xe3\\xf2\\xc6\\x94\\x1d\\x26\\x12\\xee\\x3b\\xcd\\xe8\\xf1\\x97\\x65\\x56\\x67\\x33\\x15\\x2e\\xf5\\x4e\\x95\\x69\\x09\\x43\\x28\\x5f\\x78\\xb3\\x75\\xf4\\x03\\x65\\x85\\xd4\\x73\\x9d\\xee\\xde\\xef\\x6d\\x94\\x6d\\xb6\\x1c\\xa4\\x58\\xef\\x4f\\x65\\x0d\\xa9\\x63\\xc3\\x85\\xe2\\x9d\\xfd\\xee\\x41\\x5f\\xe4\\x95\\x84\\x5f\\x55\\x19\\x7a\\x87\\x0f\\x8c\\xde\\xb5\\xa0\\x10\\xba\\x6b\\xbb\\x32\\xbf\\x1a\\x58\\x8c\\xc7\\x74\\xd4\\x89\\x01\\x84\\xc4\\xb2\\x92\\x4a\\x5b\\x80\\x73\\x31\\x3b\\xce\\x22\\x65\\x85\\xf1\\xad\\xfc\\x22\\x9c\\x90\\xbc\\x6c\\xc9\\xd2\\x12\\xe6\\x2f\\x05\\xd3\\x3b\\xed\\xac\\x96\\x1d\\x77\\xcf\\x8c\\x26\\x20\\xe4\\x51\\xde\\x81\\x7f\\x8c\\x1b\\xb1\\x6a\\x2c\\x59\\xff\\x80\\x4b\\x63\\x5a\\x73\\xa8\\xcf\\x8c\\x18\\x1b\\x3f\\x94\\x01\\xc3\\xb6\\x43\\xd1\\x8a\\x2f\\x70\\x6e\\xa9\\xca\\xe4\\x70\\x71\\xa6\"},\n{{0xce,0x37,0x9b,0xbe,0x2f,0xa8,0xab,0xcb,0xa5,0x1c,0x7a,0x75,0x43,0xde,0x5b,0x71,0x80,0x77,0x1b,0x3c,0x44,0xbc,0x6b,0x41,0x89,0x2e,0x7b,0x88,0x97,0x9b,0xab,0x90,},{0x7f,0x3c,0xff,0x89,0xf4,0x1b,0xab,0xf4,0xfa,0x64,0xcb,0xa3,0x3a,0x5b,0xb1,0x7f,0x41,0x3b,0xbf,0x2a,0x1e,0x11,0x2b,0x50,0xa8,0xe9,0xb1,0xf8,0x21,0xd8,0x49,0xbf,},{0xda,0x98,0xdf,0xb1,0x89,0x38,0x5b,0x2c,0x85,0x3b,0x6c,0xf3,0x75,0x73,0x80,0x46,0xa8,0xf2,0x7e,0xf2,0x79,0x74,0xab,0xce,0xce,0xa1,0xdb,0x02,0x98,0x9b,0x95,0x1f,0xe4,0x33,0xa6,0xce,0x1e,0x22,0x5b,0x3f,0xa8,0x20,0x32,0xfe,0x06,0x0a,0x7d,0x3f,0x6c,0x18,0x3f,0xd1,0x15,0x7f,0x79,0x1a,0x06,0x4b,0x40,0x76,0x50,0x57,0x16,0x00,},\"\\x00\\x1a\\x74\\xf0\\x95\\xc8\\x14\\xd3\\xbe\\xed\\x67\\xa8\\xd1\\x5f\\xc1\\x8e\\xfe\\x23\\x5d\\xc3\\xf6\\x45\\x78\\x12\\xa4\\x03\\x9b\\x7a\\x46\\xfe\\x9a\\x0e\\x9d\\xe8\\x1a\\x7a\\x4e\\x5f\\xba\\xb5\\xeb\\xe9\\xe1\\xe4\\x80\\x1b\\xd1\\x1b\\x45\\xc9\\xf7\\xad\\x06\\x36\\xa0\\x9b\\xff\\x42\\x16\\x4b\\xe5\\x74\\x9a\\x04\\xc0\\x2f\\x0a\\xb6\\x1f\\x0e\\xcf\\xdf\\xef\\x79\\x9b\\x82\\x7d\\xa6\\xa2\\x74\\xc8\\xd3\\xb3\\x9f\\x2e\\x38\\x05\\xa6\\x79\\x12\\x87\\xee\\xdb\\x23\\x14\\xd3\\xf8\\x42\\xb5\\x58\\xb9\\xb4\\x89\\xaf\\xe1\\xed\\x37\\xbb\\xbc\\xfc\\x5e\\x60\\xa4\\x31\\xd5\\xac\\x60\\xb3\\x9e\\x94\\x6d\\x90\\x3d\\x6b\\xf6\\xb1\\x40\\xe1\\x2c\\x7e\\x07\\xf9\\xed\\x7a\\xc4\\x6a\\x39\\x99\\xc6\\x24\\x5c\\x8a\\xb1\\xbd\\xb2\\x18\\x79\\xa3\\x17\\xa3\\xdc\\xd2\\x57\\xa5\\xc4\\xf3\\x49\\xb7\\xf5\\x9e\\x4e\\x43\\xd6\\x2d\\x9f\\x1c\\xd1\\x6f\\x51\\x8f\\x1c\\xa6\\xca\\xd3\\x7e\\x2c\\xb2\\x0f\\x25\\x98\\xc4\\x13\\x42\\x91\\xc6\\xb8\\xa9\\x8a\\xae\\x52\\x47\\xe2\\x6e\\xef\\xb7\\x6a\\xa3\\x8c\\x9c\\x82\\x31\\xc1\\x7e\\x9d\\xbf\\x27\\x1c\\xec\\x80\\xfb\\xa5\\xb4\\xa8\\x34\\xbd\\x9b\\xe8\\x1e\\xa8\\x41\\x63\\x7a\\xa9\\xcd\\xd4\\xc4\\xbf\\x26\\xd7\\xad\\x24\\xca\\x3c\"},\n{{0x2b,0x2e,0xe8,0x09,0xd6,0x47,0x02,0x3e,0x7b,0x77,0xfc,0x54,0x1f,0x44,0x87,0x5a,0x35,0xfa,0x94,0x1d,0x37,0xf7,0xc5,0xb2,0x1f,0xd3,0x49,0x34,0xd2,0x39,0x19,0x35,},{0x2c,0x29,0xd5,0x3e,0x1b,0xf2,0xc7,0x87,0x9d,0x73,0xd2,0x0b,0xa8,0x8c,0xa0,0x7a,0x0b,0x21,0x6d,0x7f,0x6d,0x05,0xd9,0x36,0x63,0xa6,0x5c,0x3d,0x9e,0x10,0x63,0x3a,},{0x12,0xd9,0x06,0x85,0x77,0x55,0x72,0xc9,0xea,0xbc,0x9b,0xe2,0x57,0x4c,0xa9,0xae,0x66,0xf0,0xe6,0x52,0xe5,0x78,0xb2,0x17,0x36,0xcd,0x6e,0x65,0x4f,0x7c,0x6b,0x15,0x45,0x88,0x3d,0x56,0xbf,0x76,0x0c,0xcf,0xc3,0xcf,0x87,0x54,0x4e,0x00,0x04,0xc7,0x98,0x06,0x12,0x57,0xe1,0x30,0x03,0x0c,0xb9,0x97,0xa7,0x88,0x36,0x9a,0x9a,0x05,},\"\\xc4\\x14\\x7d\\x64\\xeb\\xfd\\xa4\\x1a\\x1b\\xe5\\x97\\x72\\x62\\x95\\x81\\x04\\xe9\\x40\\xc3\\x87\\x6b\\xcd\\x5b\\x69\\x56\\xac\\xfd\\xec\\x32\\xc6\\x60\\x91\\x4d\\x62\\x62\\x3c\\x21\\x06\\x63\\xcb\\x2c\\xbe\\x62\\x49\\xd7\\xf5\\x27\\x49\\x91\\xc6\\x0e\\x95\\x0e\\x8e\\x28\\x09\\x04\\x99\\x53\\xc6\\x95\\x81\\xd2\\x46\\x9f\\x4f\\xe9\\x82\\xc7\\x43\\x4f\\xed\\xd9\\xd4\\xe0\\x0a\\xe0\\x88\\x96\\xd6\\x2c\\xc1\\xfb\\x98\\x4d\\xd2\\x33\\x15\\x0c\\xc2\\x48\\x3e\\x15\\x9c\\xff\\x40\\x97\\xdf\\x8c\\x03\\x6b\\xb6\\x33\\x00\\x3a\\xbb\\xfb\\xe1\\x8c\\x8f\\xa7\\x9b\\x5a\\x22\\x27\\x08\\x38\\x12\\x3f\\xc9\\xbe\\x39\\xb8\\x89\\x2c\\x80\\x38\\x4a\\x38\\x50\\x28\\xc1\\xa8\\x1e\\xc5\\x8c\\x8f\\x21\\x06\\x0e\\x78\\xaf\\xd2\\xc0\\x4b\\xfd\\x2d\\x30\\xca\\x39\\x77\\xc6\\xed\\xad\\x51\\x8c\\xc1\\xe2\\x00\\x4c\\xdc\\x14\\xbf\\x3d\\x15\\xf5\\xf5\\x28\\xe5\\xaf\\x27\\x7f\\xa1\\x82\\x27\\x58\\x70\\xe5\\xc0\\x12\\xf5\\xf8\\x2f\\xb1\\xaf\\xd0\\x4e\\xdd\\xe4\\x57\\x8d\\xdd\\x21\\x60\\xa1\\xa3\\xdb\\xc0\\x50\\xe8\\x0b\\xdd\\x81\\x1b\\xc8\\x8e\\xad\\x79\\xbf\\x93\\xf0\\x10\\xcd\\x0f\\xd4\\x43\\x3d\\x0b\\xc3\\x48\\xda\\xcf\\xd0\\x94\\x7c\\xce\\xda\\x62\\xbf\\xa4\\x97\\x11\\xd0\\x13\"},\n{{0x4e,0xa1,0x8d,0x6b,0x4a,0xf8,0x05,0x3b,0x88,0x5e,0xc1,0x88,0xbe,0x48,0xde,0xb8,0x6f,0xfb,0x2a,0x69,0xa4,0xce,0xc8,0x66,0x37,0xbb,0xd7,0xb4,0x1b,0x80,0x7c,0x46,},{0xe5,0x98,0x60,0x59,0x97,0x62,0x33,0xed,0x77,0x38,0x2c,0x3d,0x99,0x59,0xf3,0x4e,0x31,0x79,0x62,0x69,0x65,0x53,0xe8,0x6e,0xd1,0xe5,0x90,0x2c,0x4b,0xed,0xd1,0x67,},{0x27,0x57,0x0c,0x00,0x2a,0x48,0x7d,0x00,0x0c,0xa3,0x92,0x8b,0x83,0xcb,0x43,0x19,0x72,0x2c,0x46,0xdf,0xb4,0xcc,0xa2,0x60,0xde,0x79,0x0e,0xc0,0xe3,0xc1,0x93,0x26,0x88,0xf8,0x73,0x62,0x95,0x28,0x18,0xb5,0x4f,0x51,0xbc,0x7a,0xee,0xb2,0x63,0xf9,0x60,0xbc,0x0d,0xa8,0x96,0x4b,0xf3,0x12,0xef,0x93,0xe8,0x1f,0x06,0xc8,0x0b,0x04,},\"\\xe9\\xc8\\x9a\\x1a\\x11\\x19\\x37\\x32\\x06\\xce\\x40\\xed\\xe3\\xb8\\x9a\\x82\\xf8\\x94\\x62\\xa1\\xde\\xe9\\xe7\\x89\\xe9\\x84\\x5e\\xec\\x21\\xf5\\x71\\xc0\\xfa\\xef\\xd4\\x30\\xad\\x33\\x8e\\x4a\\x72\\xc0\\x47\\xa3\\x9a\\x42\\x59\\x58\\x03\\x87\\xfb\\x9a\\xac\\xad\\xdc\\x36\\xa2\\xb5\\x1e\\x7b\\x60\\xa8\\x7c\\xa1\\x32\\x1f\\xf8\\x06\\x79\\x4c\\xd6\\xdd\\x45\\x49\\xa4\\xdf\\x45\\xc2\\xda\\xe3\\xe5\\x39\\xc4\\xd7\\xd0\\x6b\\x6e\\x6e\\x9f\\x46\\x6f\\xfc\\xa2\\xfa\\x49\\x78\\xce\\x3d\\xc7\\x92\\xe4\\x4a\\x62\\x83\\x88\\x0c\\xd1\\x38\\xa7\\x5a\\x22\\x6f\\x98\\x5d\\xa4\\x1f\\xfd\\xc0\\xe3\\x2a\\x5a\\x85\\xc8\\x5f\\xe9\\xa4\\x3a\\xe7\\x8f\\xcf\\xe5\\x7f\\x4d\\xd7\\x54\\x0a\\x6d\\xd3\\x92\\x4a\\x49\\xab\\x39\\xeb\\x69\\x95\\x0d\\x42\\x11\\x51\\xd9\\x6b\\x1e\\x4f\\xd3\\x93\\x58\\x90\\xf6\\x34\\xcd\\x52\\xa7\\x3a\\x75\\x5f\\x5c\\x2f\\xb7\\x2f\\x9c\\xd5\\xa2\\xe6\\x7e\\xa9\\x30\\x91\\x5e\\x13\\x3b\\x47\\xcf\\x6b\\x7c\\x10\\xa9\\xd8\\x89\\xc6\\xaf\\x6b\\x5f\\x1f\\x4f\\x51\\x09\\x4d\\x27\\xfb\\xba\\x22\\x8a\\xc2\\x26\\x8b\\x34\\x40\\x27\\xfd\\x49\\xe4\\x26\\x34\\x3c\\xc0\\x13\\x43\\x99\\xb4\\xb5\\x10\\xaa\\xea\\x50\\x23\\x4d\\xf4\\x2c\\x37\\xfa\\x1c\\x4f\\x4d\\x0e\"},\n{{0xfc,0x1b,0x75,0xd1,0x7d,0x38,0x07,0x21,0x73,0x51,0xd2,0xaa,0x40,0xd9,0xb0,0x4f,0x52,0x5b,0x89,0xed,0x3f,0x5f,0xcd,0xb3,0x11,0xbe,0xc2,0xae,0xc5,0xcb,0x7e,0xce,},{0x55,0xe4,0x84,0xe7,0x74,0xa4,0x39,0x2a,0x9d,0x6e,0xef,0xf8,0x35,0xa8,0xfb,0xb2,0x32,0xcf,0x62,0x76,0xa8,0x9c,0x74,0xfc,0x0d,0x1b,0xb2,0x04,0x5a,0x8b,0x21,0xbe,},{0x9a,0x68,0xd1,0x51,0xfe,0xa3,0x90,0x98,0x93,0x35,0x9e,0x60,0xb9,0x6b,0x68,0xb2,0xa3,0xe2,0x94,0x6f,0x2b,0x47,0xb8,0x75,0x39,0x8a,0x1e,0x39,0xeb,0x01,0x46,0x3d,0x35,0xea,0xe7,0xd9,0x76,0xf8,0x33,0xa7,0x62,0xb5,0x1f,0x27,0x26,0xee,0x0d,0xcc,0xad,0x5c,0xe3,0x60,0x05,0x64,0xfd,0x9d,0xd5,0x8c,0x23,0x80,0x7f,0xdf,0xfd,0x05,},\"\\xd0\\x31\\xbd\\x11\\xda\\x30\\x80\\x97\\xe3\\xbe\\xb6\\xff\\xdb\\x26\\x00\\xee\\x6a\\x19\\x3c\\xa6\\xd8\\x32\\x45\\x01\\xc9\\x72\\xb1\\xa2\\x51\\x66\\xfa\\x7a\\x36\\x9f\\x5b\\xc8\\x82\\xea\\x45\\x61\\x2c\\xf0\\x25\\x80\\x25\\x4d\\x21\\xb4\\x0b\\x03\\x63\\x23\\x7e\\x83\\x5d\\xae\\x26\\x56\\xc1\\xb7\\xf4\\x73\\x6e\\x88\\xbe\\x53\\xd6\\xb1\\x19\\xc0\\x7f\\x57\\x29\\xbb\\xd8\\x2f\\x67\\xde\\x03\\x58\\x83\\x22\\x87\\x92\\x43\\xc5\\x99\\x0a\\x7e\\x61\\xf5\\x69\\x07\\xb2\\x41\\x71\\xa5\\x7c\\xbb\\x0b\\xbe\\xfb\\xa2\\x31\\x62\\x77\\xaf\\x93\\x26\\xf9\\xcb\\xf3\\x53\\x8b\\xcb\\xf6\\x78\\x0b\\xe4\\x18\\x25\\xa2\\xca\\x77\\x4b\\x41\\xbd\\xb1\\xcd\\x5c\\x60\\x88\\x51\\xec\\x23\\x39\\xeb\\x2f\\x4f\\xee\\xdd\\xaa\\x89\\x1a\\x63\\x26\\xb2\\x9d\\x97\\xd7\\xfb\\xf3\\x11\\xe3\\xbb\\x74\\x9c\\x5d\\x4c\\x05\\x8d\\xcc\\x14\\xf4\\x52\\xf9\\x33\\x49\\x91\\xe2\\x71\\xc1\\x6d\\x65\\x08\\xc8\\x18\\x63\\x39\\x27\\xf4\\x29\\x80\\x4c\\xa7\\xa3\\x81\\x70\\xf1\\xb9\\xf6\\xbd\\x73\\xed\\x67\\x5e\\x11\\xe8\\xc0\\xd3\\x21\\xfa\\xc9\\x12\\x73\\x0b\\x4b\\xa2\\xf7\\xc4\\x28\\x53\\x4a\\xdc\\xaa\\x4d\\xad\\x31\\x4c\\x55\\x80\\x7e\\x6c\\x64\\x2d\\x49\\x4c\\x6b\\x2f\\x0e\\x8c\\xd1\\x29\\x77\\x5c\\xc0\"},\n{{0x0d,0x0b,0xf4,0xd4,0x2e,0xf8,0x10,0xb1,0x79,0xeb,0x84,0x17,0x71,0xde,0x6d,0xbd,0xe7,0x63,0x61,0xca,0xf8,0x94,0xe4,0x2a,0x14,0xb1,0xe0,0x97,0x87,0xea,0x3e,0x06,},{0x71,0x71,0x51,0x0b,0x43,0xfc,0x17,0xef,0xa8,0x0b,0x15,0xe3,0x20,0xb1,0xb0,0xa4,0x08,0x33,0x25,0x42,0xe0,0xd3,0x6e,0x4a,0xb9,0xa6,0x49,0xcd,0x94,0x1b,0x5a,0xed,},{0x24,0x44,0x6b,0xdf,0x03,0x41,0x6a,0x4d,0x08,0x61,0x44,0x66,0xfb,0x85,0x1d,0xb5,0x0e,0x91,0xa6,0x23,0xca,0xcd,0x1b,0x0b,0x35,0x66,0x0f,0x3c,0xf9,0x33,0x20,0x0e,0x15,0x30,0x87,0x08,0xda,0x34,0x99,0xa5,0xad,0x25,0xf0,0xf0,0x30,0x6b,0x79,0x42,0x76,0x2e,0x20,0xa7,0x65,0xb7,0xca,0x9b,0x90,0x1c,0x75,0x0b,0x3a,0x95,0x32,0x0a,},\"\\x8e\\x21\\x79\\x97\\x5d\\x0a\\x8e\\x5a\\x69\\xfe\\x87\\x5a\\x3c\\xb1\\xe7\\x9a\\xec\\x49\\xc3\\x85\\x3e\\x30\\xdd\\x03\\x20\\xfe\\x3e\\xbf\\xb6\\x38\\xb8\\x2f\\x89\\xad\\x16\\x43\\x03\\x6b\\x37\\xe5\\x6e\\x0b\\x55\\xe0\\xa9\\xe2\\x2a\\x4e\\x28\\x3d\\x7a\\x27\\x48\\x5c\\xe9\\x10\\x2d\\xb6\\x78\\x7d\\x66\\x28\\xb7\\x79\\x13\\xe1\\x08\\x96\\x77\\x4e\\x49\\x5c\\x26\\xe8\\xba\\xb2\\x6e\\x7f\\x9a\\x94\\xd2\\x9a\\xaa\\x36\\xae\\xc9\\xc2\\x6a\\xd3\\xf5\\x0e\\x5d\\x8c\\x0b\\x76\\x98\\xbb\\x5f\\x01\\xb8\\x76\\xd0\\xd6\\x5f\\xcf\\x5e\\x9e\\x32\\xcd\\x7b\\x89\\x82\\x9e\\xd0\\x5b\\x0b\\x8f\\x63\\xa9\\x38\\x58\\x98\\x5b\\xc9\\x56\\x9f\\xce\\x42\\x9f\\xd3\\x7a\\x21\\x1a\\xbe\\xd6\\x50\\xf5\\x85\\xc3\\xb5\\x59\\x00\\x44\\x3b\\x6c\\x5d\\x6e\\x8a\\x48\\xba\\x67\\xde\\xee\\xd0\\x7b\\x76\\xe9\\x69\\xfc\\x88\\x43\\x0f\\xce\\x27\\x09\\xc0\\xbb\\x5c\\xe9\\x26\\xab\\x7f\\x44\\xe0\\xcd\\x79\\xf4\\xec\\x35\\x9e\\xf7\\x67\\x48\\x88\\x3f\\xcc\\x3d\\x02\\x6e\\xdd\\x06\\xc8\\xb9\\xcb\\xa5\\x4b\\x99\\x0d\\x30\\xaa\\x41\\xf1\\x44\\x8a\\x10\\x89\\x3f\\xb0\\x53\\x92\\x80\\xc5\\x99\\xd4\\x23\\x61\\x43\\x3a\\x34\\xcd\\xaf\\xd8\\xeb\\xdd\\x92\\xef\\xb9\\xc3\\x8a\\x36\\xda\\xf4\\xc7\\x40\\x60\\xc6\\x96\"},\n{{0x57,0xb5,0x19,0x4d,0x26,0xab,0xe4,0xab,0x21,0x16,0xc0,0xf0,0x3d,0x23,0xdb,0xe1,0x16,0xd4,0x88,0x25,0xa2,0x5e,0x77,0xd6,0x46,0x48,0xb4,0x36,0x92,0xae,0x25,0xbf,},{0x49,0x9c,0x02,0xdb,0xad,0x2a,0x4e,0xab,0x3b,0x6f,0xf1,0xab,0xa3,0x94,0x4b,0x91,0xc3,0xf2,0x73,0xa3,0x82,0xc5,0x48,0xa6,0xf3,0xa1,0x9c,0x83,0xf0,0xa8,0x67,0x24,},{0x4c,0x73,0x45,0x96,0x0c,0x8f,0xd4,0x8a,0x7d,0xea,0xd7,0x1d,0xbd,0x61,0x90,0x84,0x68,0xef,0xa8,0x65,0xa1,0x35,0x56,0x8c,0x8f,0x9c,0xa0,0x05,0x54,0x83,0x46,0x86,0x17,0xa7,0xe3,0x35,0x84,0x0f,0x57,0xc6,0xcd,0x8f,0x2c,0x98,0x05,0xcd,0x47,0xa9,0xd7,0xcd,0xfd,0xe5,0x3d,0xa8,0xef,0x4f,0x1a,0xdb,0xb6,0xf6,0x98,0xaa,0xf1,0x00,},\"\\xb4\\x81\\x3c\\x9d\\x13\\x21\\x5f\\xe9\\xf6\\x3a\\x78\\xff\\x7a\\xc9\\x51\\x73\\xeb\\x81\\x0b\\x46\\x13\\xf0\\xf4\\x8d\\x68\\x76\\xb2\\xbd\\x3b\\x2c\\x72\\xbc\\x7d\\x98\\xcb\\x1a\\xc3\\x2b\\xc4\\x1c\\xa4\\x7f\\x09\\x89\\x6f\\x79\\x20\\x4e\\xcf\\xb8\\x26\\x4c\\xe8\\xf3\\xc3\\xe7\\x6d\\xc1\\x24\\xda\\x8d\\xdc\\x6e\\x0d\\xfc\\x1e\\x13\\xb5\\xa5\\x29\\xf2\\x0c\\x82\\x61\\x3f\\xb9\\xa8\\x2e\\x5f\\x5d\\x77\\x32\\x6a\\x86\\x1f\\xae\\xda\\xbc\\x73\\x25\\xc5\\x9a\\xf3\\x3d\\xae\\x67\\x44\\x02\\x5e\\x64\\x97\\x74\\xfc\\x4f\\x79\\x13\\x4b\\xf9\\xf6\\xe3\\xd5\\x87\\x5d\\xd9\\x1b\\xc8\\xa1\\x4c\\xc3\\x6a\\x66\\x28\\x3d\\x01\\xd8\\xd1\\x08\\xc1\\x33\\x27\\xec\\xa5\\x30\\x57\\xba\\x50\\xbf\\x21\\x0c\\x19\\xf1\\x39\\xde\\x64\\x94\\x98\\x26\\x46\\x19\\x8a\\x12\\x46\\xc2\\x71\\xb0\\xa3\\x68\\xc1\\x0a\\xab\\x95\\xcd\\x89\\x61\\x23\\x5d\\x74\\x2d\\xf4\\x54\\x5b\\xe6\\x8b\\xd0\\x10\\xdc\\x0d\\xb2\\x3b\\x67\\x3e\\x62\\x36\\x09\\xe4\\x20\\xee\\x76\\xb1\\x05\\x6c\\x52\\x0f\\x9c\\xe8\\xfb\\xe8\\xee\\x18\\x63\\xdf\\x97\\xd1\\x7b\\x71\\x74\\x63\\x6c\\x3a\\x2b\\x61\\x22\\x95\\x09\\x19\\x48\\x81\\x0d\\x1d\\x4b\\x8a\\x58\\x43\\x76\\x0a\\x28\\x87\\xdc\\x55\\xef\\x51\\x2a\\xf0\\x41\\xec\\x54\\xfa\\xd3\"},\n{{0x06,0x8d,0x27,0xb2,0x1e,0x2a,0xcf,0xcc,0x19,0xc3,0xe9,0x67,0x3d,0xd4,0x41,0x42,0xd9,0x8a,0xac,0xae,0x89,0x49,0x30,0xe2,0x0c,0xa0,0x67,0x43,0x9e,0x74,0x9a,0x79,},{0xe2,0x2d,0xdd,0x39,0x6f,0x95,0x5b,0xb9,0x0e,0x28,0x47,0x76,0xaa,0x76,0xe9,0x21,0xe5,0x06,0x99,0xd0,0xca,0x89,0x14,0xa9,0xb7,0xb8,0x41,0xeb,0x5f,0xf4,0x7d,0x6d,},{0x0c,0x17,0x3c,0x48,0x8a,0xd0,0x01,0xcb,0xb9,0xc4,0x3d,0x7b,0x30,0xa7,0xc0,0x71,0xa2,0xfd,0xb0,0x8c,0xf7,0xf3,0x7d,0xaf,0x71,0xd7,0xae,0x71,0x28,0xdc,0x0d,0x43,0xf0,0xf0,0x95,0xb2,0x92,0x9c,0x54,0xb7,0x73,0xed,0x4a,0x1f,0x0b,0xf0,0xdc,0x4f,0x36,0x4f,0x06,0x01,0xe8,0xd5,0xae,0x06,0x2f,0x5b,0x78,0xc0,0x5b,0xfb,0xc7,0x02,},\"\\x1c\\x68\\x15\\x42\\x3d\\x1a\\x2c\\x5e\\xbe\\x88\\x28\\xd1\\x64\\x65\\x27\\xc1\\x7b\\x20\\x06\\xe5\\x47\\xf0\\x16\\xb5\\x35\\x0f\\x01\\x0d\\x79\\xb1\\x3d\\xf4\\xfb\\x8c\\x6e\\xd5\\x7b\\xa9\\xc2\\x6c\\x3c\\xb0\\xe0\\xa6\\x41\\x78\\xb6\\x50\\xa3\\xea\\x54\\x44\\xa4\\xfa\\xd5\\xb2\\x0a\\x3e\\xb8\\xca\\xa7\\x02\\x63\\x40\\x11\\xcf\\x78\\x92\\xa0\\x72\\x7b\\x6e\\x81\\x50\\xb0\\x77\\x04\\x29\\xa3\\x7a\\x8a\\x0b\\xb3\\xa7\\xed\\xb8\\x91\\xa7\\xc9\\x02\\x40\\xbc\\x03\\x60\\xb1\\x4e\\x6d\\xd7\\x70\\xa9\\x90\\xb3\\x1b\\x31\\xf3\\x3d\\xdb\\xf6\\x53\\x98\\x8f\\x82\\x74\\x2e\\x5e\\xec\\x31\\xb2\\x73\\x68\\xeb\\x0e\\x4f\\x1e\\xcf\\x4d\\x67\\x6f\\x49\\x21\\x4a\\x52\\x0d\\x1e\\x5b\\x2b\\xbb\\x59\\xac\\x2e\\x13\\x26\\x7e\\x07\\xa0\\xcb\\xac\\xbe\\xd9\\xf9\\x4d\\x74\\x73\\xed\\x69\\x78\\x28\\xb0\\x92\\x8f\\xcc\\x61\\x6e\\xe0\\x2e\\x51\\xfc\\xd8\\xdb\\x4d\\x8f\\x75\\x33\\xb7\\xb1\\x39\\xa0\\x5e\\x06\\xf9\\xe0\\xea\\xe3\\x29\\x93\\xe3\\x02\\x5a\\xef\\x05\\x90\\xb3\\xfb\\xb4\\x29\\x2a\\x3a\\xc4\\x07\\x65\\xe8\\x58\\x4e\\xad\\x00\\x26\\x6a\\xcd\\xcb\\xdd\\xe1\\x45\\x7a\\x03\\xb7\\xd5\\x7b\\xd5\\xc9\\xe6\\x4f\\xb0\\x6b\\x64\\xa5\\x0f\\x35\\xf0\\xa1\\xec\\x34\\xb6\\xdd\\xbd\\xe7\\x67\\xb9\\x6f\\xfd\"},\n{{0xa3,0x4d,0x52,0x56,0x31,0x59,0xe0,0x72,0x3e,0x9f,0x3f,0xd1,0x33,0xbd,0x96,0xe2,0x0a,0xda,0xe6,0x23,0xf8,0xc7,0x98,0x01,0x3b,0xc3,0x6b,0x44,0x14,0x89,0xbd,0xc2,},{0x1f,0xb6,0x58,0xe6,0x45,0xde,0x6d,0x3e,0xfd,0xb0,0x83,0xa7,0x3f,0xbd,0x59,0x2f,0xcd,0x4b,0x80,0x0e,0x03,0xc7,0xbd,0x68,0x1a,0xea,0xe6,0x57,0x6b,0xfb,0xbe,0x2f,},{0x5f,0xab,0x5a,0x71,0x40,0xd4,0x78,0x73,0x68,0x43,0x05,0xaa,0x63,0x53,0xd3,0x86,0x2f,0x5f,0xc1,0x3e,0x54,0xa4,0x0c,0x95,0x63,0xcc,0xea,0xc8,0xf7,0x40,0x08,0xc6,0xc4,0x45,0x63,0x1f,0xa8,0x64,0xe0,0xf1,0xc3,0x45,0xb5,0x95,0x4f,0x80,0x05,0x6a,0xeb,0xa2,0x56,0x62,0xb7,0x88,0x27,0xb5,0xe8,0xe3,0xa9,0x43,0x78,0x13,0x72,0x0f,},\"\\x1d\\x21\\x5f\\x85\\xc0\\x89\\xf3\\x5f\\x30\\x7a\\x74\\x6c\\x66\\xc7\\xc1\\xe4\\x1d\\x6b\\xa3\\x77\\x30\\xd7\\x59\\xe6\\xe5\\x62\\x2d\\x6c\\x6a\\x19\\x8e\\x40\\xf6\\x3d\\x37\\x87\\x3b\\x71\\x5d\\xf7\\x51\\x8b\\x3c\\x6b\\xb5\\xe9\\x5a\\x46\\x77\\x26\\xb9\\x7c\\x9a\\x0f\\x8f\\x5d\\xfc\\xdb\\xfd\\x1e\\x0d\\xe3\\x57\\x66\\x1d\\xde\\xab\\x55\\x50\\x42\\xb9\\x45\\xfd\\x89\\x9f\\xad\\x6d\\x38\\x2d\\x79\\x17\\xda\\x9e\\x12\\xdf\\xbd\\xa0\\xd6\\x99\\x00\\xb3\\x97\\x51\\x65\\xa7\\x3d\\x0a\\xc9\\xde\\x01\\xfd\\x30\\x48\\xb8\\xfe\\x5f\\x0b\\x90\\xbe\\x67\\xe0\\x3d\\xc2\\x2f\\x65\\x3a\\x0a\\x13\\xeb\\x4b\\x0b\\x75\\x3f\\x3f\\x3b\\xbf\\x78\\x73\\x69\\xeb\\xd8\\xbf\\x5e\\x00\\xeb\\x78\\xbf\\x0b\\x35\\x15\\xa9\\x1e\\x68\\xb1\\xd5\\xfc\\x69\\x20\\xbf\\x4f\\x42\\x59\\xf8\\xa7\\x30\\xef\\xc7\\xf1\\x01\\x6d\\x50\\x1e\\xf6\\xfb\\x7c\\xb8\\x36\\x6f\\xc8\\xe7\\x16\\xcf\\xa5\\x0e\\xa8\\xb2\\x03\\xcc\\xa1\\xa3\\x16\\x70\\x7e\\x0b\\x0f\\xc5\\x7e\\xaf\\xce\\x82\\xd6\\x2f\\x7f\\xf3\\xae\\x04\\xac\\x8f\\xd0\\x41\\xb5\\x5b\\x19\\xa3\\x52\\xa6\\x9e\\x6d\\x4b\\x79\\xd0\\xe6\\x50\\x17\\x51\\x68\\xe3\\x4f\\xa3\\x35\\x8e\\xac\\x81\\x6c\\xec\\xf2\\xc8\\xdd\\x1b\\xf2\\xa5\\x89\\x11\\x3e\\x91\\xbb\\x81\\x8f\\x91\\xf8\"},\n{{0x58,0xdf,0xe7,0x68,0xbf,0x52,0x11,0x84,0x94,0xb2,0x99,0x75,0x15,0x4c,0xf4,0x52,0xbd,0x97,0x46,0xdc,0x7d,0xe1,0xd6,0xbc,0xd1,0x8e,0xe6,0xa0,0x5a,0xcf,0xd8,0x58,},{0x0f,0x14,0x76,0xc6,0xcc,0x2a,0x1b,0x47,0x64,0xaf,0x75,0x80,0x5e,0x77,0x34,0x1f,0x14,0xa0,0xd8,0xb0,0x9c,0x6a,0x5b,0x2e,0xa2,0x87,0xfd,0x51,0x7c,0x3f,0xa6,0xb9,},{0x97,0x71,0x37,0xa3,0x8a,0xf4,0x4f,0x4b,0x26,0x2a,0xbf,0xf7,0xe0,0x72,0x82,0x43,0x3c,0x58,0x92,0x6d,0x56,0x2f,0xbc,0x61,0x80,0xbd,0xe6,0xcd,0x94,0x97,0x86,0x1f,0xb6,0xd9,0x55,0xcf,0x38,0x3d,0x99,0x9f,0xa1,0x03,0x7b,0x8b,0x17,0x54,0xce,0x88,0x8c,0x9f,0xfc,0x15,0x60,0xa4,0x51,0xd0,0xe9,0xdb,0x8d,0x74,0xd2,0x94,0x06,0x04,},\"\\x60\\x97\\x94\\x20\\x1c\\x4f\\x6f\\xaf\\x48\\x87\\x90\\xd6\\x1d\\xbf\\xf3\\xf4\\x1b\\x32\\x8c\\x5b\\x06\\x95\\xcb\\xe9\\xaa\\x8a\\x13\\x6d\\x72\\xb4\\x97\\x7b\\x21\\xb5\\x00\\xf2\\x16\\xe9\\xf3\\x21\\x68\\xad\\xa8\\xc1\\x3b\\xff\\x25\\x32\\x76\\x47\\xe3\\x0d\\x8a\\x24\\x4d\\x74\\xd8\\x83\\x03\\xab\\xc9\\x0b\\x7f\\x71\\xaa\\x07\\xca\\x04\\xd1\\x7b\\xc8\\xa0\\x16\\x7d\\x6e\\x63\\xfb\\x88\\xba\\xa1\\xda\\xb8\\x1d\\x50\\xf1\\xe9\\x1f\\x46\\xf5\\xaf\\x77\\xf2\\xe8\\x40\\x8b\\x82\\x63\\x36\\xa3\\x50\\x52\\xef\\xff\\xdf\\x4a\\xf7\\x95\\x96\\xaf\\x1b\\xb2\\x25\\x9f\\x83\\xc1\\xbc\\x10\\x9c\\xfd\\xc3\\xdd\\x50\\xfd\\x96\\xd3\\x10\\xf2\\x7e\\xa4\\xc6\\xc7\\x69\\x0f\\x21\\x81\\x5e\\xa9\\x2b\\xd7\\x93\\x89\\x68\\x0c\\xfe\\x3e\\xd4\\x0c\\x80\\x18\\x11\\x90\\x68\\x8d\\x24\\x22\\x2d\\x9a\\x1e\\xd5\\x2c\\xe6\\xa1\\x6b\\x41\\xdb\\xd9\\x10\\x7e\\xb6\\xd2\\xe3\\x59\\x4e\\x44\\x94\\xd7\\x5d\\xd7\\xc0\\x89\\xe3\\xb2\\x6f\\xfd\\x00\\xd1\\x00\\x3c\\x92\\xc4\\xc3\\x9a\\xe5\\x38\\x2e\\xf9\\x29\\x14\\x91\\xa8\\x80\\xca\\x4e\\xc3\\xac\\x2b\\x86\\xe6\\x67\\x19\\xb9\\x2b\\x6f\\x7c\\xea\\x2c\\xb0\\xbb\\xb1\\xcf\\x62\\x4d\\x0d\\x1a\\xbe\\xae\\x55\\x6e\\x5f\\x73\\x90\\x9d\\xd5\\x46\\x27\\x70\\x37\\xec\\x97\\x2f\\xd4\"},\n{{0x5a,0x63,0xef,0x9b,0xd7,0xdb,0xf0,0xe8,0x9f,0xef,0x15,0x59,0x83,0x65,0x9e,0x8a,0x0a,0x6c,0xa0,0x02,0xbc,0x42,0xfa,0xd5,0xa4,0x5a,0xf8,0xe0,0x28,0x19,0x23,0xf4,},{0xe6,0x32,0xf4,0xdc,0x99,0x42,0x31,0xcc,0x17,0x90,0xc2,0x1a,0xfa,0xda,0xa9,0x77,0xa5,0x89,0xb0,0xeb,0x0d,0xa1,0x9f,0xcb,0x27,0x92,0x91,0x1b,0x15,0xec,0xf8,0xaf,},{0x75,0x46,0x1f,0x99,0x65,0x0c,0x03,0x68,0x05,0x81,0x13,0xa1,0x5b,0xa1,0x6b,0xd2,0x33,0x7b,0x2e,0x63,0x3d,0xa3,0x81,0x12,0x87,0x8c,0x48,0x34,0xfa,0xc9,0xba,0x2e,0x30,0x7c,0x86,0x6c,0x02,0xaf,0x79,0xbe,0xa3,0x36,0x59,0x61,0x4c,0xbb,0x44,0x65,0xc5,0x7e,0xc3,0xef,0xfd,0x4c,0x47,0x8a,0xe3,0x8a,0x34,0xa0,0x5c,0xf1,0xed,0x07,},\"\\x79\\x6b\\xc8\\x36\\x1c\\x6e\\x8e\\xec\\x39\\x83\\x8b\\x24\\xf5\\x39\\x71\\xe8\\x20\\xf8\\x23\\x61\\xe0\\x51\\x0e\\xb4\\xde\\xf1\\xdb\\x25\\x12\\x38\\x7d\\x6b\\xf3\\x5b\\xbd\\xfa\\x31\\x88\\x79\\x20\\x94\\x35\\xd6\\x88\\x7b\\x14\\x10\\xb3\\xeb\\xc1\\x45\\x5f\\x91\\xf9\\x85\\xe0\\xfa\\xb1\\xce\\x1c\\x50\\x5c\\x45\\x55\\x76\\xbc\\xa0\\x35\\x39\\xd0\\x48\\xad\\x3a\\x0e\\xd1\\xf1\\x1c\\x73\\xba\\xc6\\x80\\x9e\\x2e\\xa1\\x47\\x97\\x5b\\xee\\x27\\xc6\\x52\\x61\\xac\\xa1\\x17\\xdf\\x0f\\xae\\x70\\x08\\xe2\\xc3\\xc1\\x30\\xbe\\xc5\\x53\\x3a\\xb8\\x93\\x51\\xc2\\x14\\x0c\\x9d\\x1a\\x62\\xbd\\xf6\\x88\\x62\\x97\\x87\\xf9\\x54\\xe1\\xc6\\x10\\xcb\\xb7\\x5e\\xdb\\x86\\x20\\x9d\\x7c\\x35\\x7c\\xd0\\x6e\\xf4\\x19\\x31\\xdd\\x5d\\xfd\\x1c\\x7d\\x40\\x7f\\xa4\\xee\\x1e\\xf2\\x93\\x93\\xbe\\xab\\x57\\x13\\x17\\x38\\x02\\xcc\\xe2\\xd5\\x62\\x29\\xcf\\xa7\\x6b\\x60\\x16\\x62\\xc4\\xd9\\xa8\\x4a\\x49\\x36\\xc5\\x2a\\xbb\\x19\\x81\\x37\\x8b\\x71\\x7e\\xb5\\x5c\\xb6\\x04\\xa6\\x8d\\x34\\xf0\\x3b\\x21\\x9f\\x32\\x22\\x6c\\xa0\\xe6\\x69\\x34\\x8a\\x2d\\x8d\\x24\\x53\\x93\\x0e\\xb6\\xe9\\xc2\\xbf\\x66\\xfa\\x4e\\x92\\xc7\\x51\\x36\\xe1\\x48\\xcd\\xb0\\x34\\x13\\x0d\\x3f\\x64\\x63\\x82\\xe1\\xc7\\x15\\x79\\xac\\x70\"},\n{{0x8b,0x2f,0x06,0x14,0x1e,0x40,0x11,0x63,0xf9,0x0f,0x67,0x4b,0x04,0xdc,0x90,0xdc,0xb6,0xdd,0x33,0x86,0x41,0x93,0x39,0x66,0x2e,0xcb,0x0d,0xff,0xad,0xf2,0x50,0x0b,},{0x54,0xda,0x93,0x4a,0x65,0x91,0x19,0x19,0x85,0x53,0xfd,0x45,0x66,0xb6,0x60,0xd8,0xd6,0x10,0xad,0xc3,0x29,0x0c,0xb8,0x48,0x29,0xc8,0x94,0x14,0x8c,0xf3,0xf6,0x7e,},{0xd6,0x8e,0x37,0x50,0xdc,0x56,0x43,0x23,0x97,0x40,0x1c,0x98,0xff,0x15,0x29,0xdb,0x9e,0xd4,0x8f,0xea,0x24,0x6d,0xd4,0xed,0x38,0x3e,0xc7,0x4c,0x1a,0x46,0x3a,0xeb,0x78,0x4c,0x87,0xb1,0xfd,0xa8,0xbb,0xce,0x97,0x0f,0xc9,0x7a,0xa9,0x80,0x7d,0xdb,0xe9,0x5d,0x41,0xfb,0x02,0x2e,0xa6,0x8c,0x1e,0x31,0x16,0x54,0xfa,0x1d,0xa2,0x07,},\"\\x1d\\xeb\\x25\\xd4\\x34\\x58\\x69\\x03\\x23\\xa7\\xd2\\x6a\\x26\\x69\\x50\\x90\\x99\\x34\\x74\\xf4\\x67\\xc6\\xfd\\xe5\\xdd\\xb3\\x4d\\xa9\\x45\\xbe\\x3c\\xea\\x2f\\x6b\\x75\\x65\\x2a\\xe2\\x1c\\xbc\\x4f\\xd2\\x27\\x63\\xa1\\xb4\\x55\\x83\\xe1\\xc3\\xe8\\x8b\\xbb\\x5f\\xea\\x20\\x49\\xb7\\x33\\x6c\\x91\\x15\\x99\\x88\\xc0\\x15\\x26\\x82\\x4c\\xa3\\xbe\\xf1\\x6b\\x36\\x2b\\x92\\x02\\xb8\\xb9\\x75\\x41\\x85\\xbd\\x61\\xbe\\xa8\\xf5\\x39\\xaa\\xdf\\x4a\\x1a\\xb1\\x35\\xfb\\xc3\\x1d\\x2a\\x8e\\x33\\x17\\x80\\x73\\x10\\x6c\\xbb\\xc0\\x2d\\x4c\\xd0\\xd3\\xc8\\xfe\\xaa\\x8e\\xb7\\x33\\x08\\x43\\x56\\x25\\x17\\x95\\xaf\\xbd\\x78\\xac\\x3c\\x4f\\x8a\\x3b\\xa1\\x9a\\xed\\x75\\x5c\\x64\\x6f\\x35\\x56\\x9c\\x7a\\x6c\\x67\\x5b\\x6d\\x69\\x18\\xe8\\x34\\x96\\x9a\\xca\\x03\\xf7\\x1a\\x2e\\x72\\xcc\\xb1\\x70\\x03\\xbb\\x75\\xb6\\x2e\\x85\\x2a\\xaf\\x58\\xb3\\xba\\xea\\x89\\xbc\\xd6\\x4a\\x32\\xeb\\x14\\xa6\\xb9\\xe1\\x0d\\xe4\\x89\\x71\\xe5\\x3d\\x0e\\x9a\\xc9\\x9a\\x78\\xf4\\x2d\\xe0\\x38\\x2e\\xf0\\xe8\\x0e\\xd3\\xcf\\xa3\\x43\\xf3\\x5e\\x4a\\x99\\x83\\xb9\\xae\\xed\\x98\\x6d\\x3a\\x57\\xf4\\x7e\\x5e\\x46\\xd4\\x0e\\x9d\\x67\\x73\\x02\\x80\\x9a\\x2d\\x37\\xe4\\xec\\x01\\x1f\\x05\\x1b\\x4d\\x03\\x1e\\xd6\\x00\"},\n{{0xdc,0x64,0x9f,0xbb,0x1b,0xee,0x0a,0x44,0x81,0x4d,0x6d,0x9e,0x90,0x80,0xd5,0xd9,0x0c,0x1f,0xc1,0x73,0xab,0x5f,0xef,0xed,0x82,0x6a,0x74,0x72,0x3a,0x77,0x4e,0x0a,},{0x02,0x14,0xc8,0x9f,0x38,0x67,0xad,0x2e,0x88,0x70,0xe5,0x0f,0x8c,0x2a,0x62,0x54,0x98,0x6d,0x9c,0x22,0x0e,0x33,0x38,0x41,0x13,0x00,0xcd,0x9c,0x64,0x04,0xd4,0xb1,},{0x0e,0x0c,0x5e,0x4e,0x18,0x43,0x75,0xda,0x4e,0xf7,0xe2,0xa2,0xe4,0x88,0x80,0x50,0xcd,0x84,0xe2,0xfe,0x21,0xd0,0x8e,0x84,0xa8,0x52,0xdb,0x2b,0xe3,0xfb,0xc3,0x72,0xc4,0x72,0xde,0x09,0x54,0xdc,0xd1,0xdc,0x11,0xae,0xc4,0x93,0xc5,0x69,0xf4,0x0f,0xc6,0xf7,0x7f,0x03,0xee,0x52,0x4f,0xb0,0x6e,0xc4,0x0f,0xaa,0x1d,0x6c,0xc1,0x0f,},\"\\x32\\x87\\x00\\xa8\\xae\\x58\\x1c\\x1e\\xdc\\x4e\\x2c\\x00\\xc7\\x8b\\xf4\\x60\\x60\\x97\\xf9\\xbd\\x75\\xaa\\xde\\x20\\x5a\\x24\\x3c\\x5f\\xd7\\x43\\x4d\\x62\\x22\\xda\\x93\\x7e\\x28\\x81\\xa2\\xe3\\xc5\\x74\\x35\\x6d\\x4d\\x56\\x79\\x30\\x1d\\xa9\\x9e\\x11\\xcf\\x74\\x9c\\x27\\x92\\x1c\\x8c\\xaa\\x2a\\xb2\\xa5\\x64\\xd8\\x7c\\x5d\\xf8\\xec\\xf1\\xa7\\x2b\\x68\\x01\\x84\\x82\\x4f\\x69\\x86\\x02\\x2e\\x3f\\xc9\\x8b\\xd2\\xa2\\x1c\\x34\\x55\\xab\\xf1\\x15\\x49\\x54\\xfb\\x30\\xc8\\x98\\x82\\x94\\x7b\\x02\\xf3\\x5a\\xf7\\xb1\\xbf\\xad\\x05\\x23\\x7d\\x24\\x2e\\x2b\\x74\\x83\\x2f\\xc5\\x36\\x19\\x6f\\x2e\\x59\\xd1\\xac\\xd0\\xc1\\xdb\\x6f\\x19\\x43\\xd0\\xf6\\x04\\x3b\\xbd\\x6a\\x76\\x90\\x83\\xed\\x66\\xba\\x0e\\x05\\xa5\\x0f\\xeb\\x0a\\xcf\\x72\\xb6\\xc1\\x6b\\xa9\\xaf\\x03\\x9a\\xfb\\x7f\\xe2\\xa4\\xaa\\xeb\\x4d\\x06\\x18\\x1c\\x5a\\x18\\x78\\x68\\x9e\\x67\\xa3\\xf5\\xd0\\xad\\x39\\xe7\\x94\\xd6\\x23\\x9a\\x7e\\x0a\\x12\\xce\\x82\\x0c\\x5b\\xe6\\x0f\\xd5\\xf1\\xdd\\x79\\x70\\x2f\\x49\\xd0\\x2b\\x79\\x75\\x5f\\xe8\\x73\\xf5\\x78\\x5c\\x72\\xf7\\x46\\x25\\xcd\\x7e\\x24\\x28\\x26\\x25\\x97\\xd3\\x14\\x82\\xc2\\xc0\\x50\\x88\\x01\\xfd\\x96\\x31\\x9d\\x61\\xb9\\x1b\\xa2\\x53\\xa5\\xe7\\x22\\xf4\\x14\\xcf\"},\n{{0x39,0xb8,0x06,0x2d,0xa4,0x3e,0x64,0xe1,0x67,0x67,0x65,0xd6,0x2c,0x7f,0xb8,0xe0,0xa9,0x9c,0x4f,0xd4,0x17,0xd6,0xf7,0xe3,0x31,0x9b,0xb1,0x30,0x44,0x20,0x5f,0x3b,},{0x62,0x27,0xce,0xfe,0x88,0xea,0x4f,0xb2,0x7b,0x37,0xb5,0xf7,0x97,0x77,0x8b,0xd7,0x2f,0xda,0xfe,0xad,0xcc,0xd9,0xae,0xb6,0x7a,0xd4,0x37,0xce,0x08,0xfb,0xa6,0xa8,},{0xc5,0xf6,0x26,0x49,0x0c,0x0e,0xf4,0xe1,0xef,0xc3,0xed,0xeb,0x0c,0xbc,0x3f,0x7d,0xe2,0x67,0x05,0x7f,0xb7,0xb6,0xeb,0x8f,0x0c,0x81,0x35,0x84,0x96,0x5b,0xc5,0xc4,0x21,0xfe,0xed,0xf5,0x42,0x41,0xca,0xe0,0x01,0xec,0x6d,0x5e,0x25,0xc9,0xb1,0xfb,0xa0,0x38,0x5e,0x5d,0xbd,0x95,0xa0,0x6e,0xc1,0xd8,0xae,0x51,0x91,0x44,0x96,0x0d,},\"\\x74\\x0a\\xf6\\x79\\xe3\\x06\\x9f\\xad\\x05\\x9f\\xa4\\x82\\x5f\\xa4\\x1c\\x59\\xfb\\xd4\\x84\\xaa\\x64\\x93\\x03\\xc2\\x7c\\x4f\\x7a\\x94\\x71\\x1c\\x5b\\x71\\x3b\\x2a\\x6b\\x89\\x87\\x85\\x9e\\x22\\x71\\xa6\\xa7\\x1e\\xb0\\xb4\\xa1\\x5a\\xbd\\xe4\\xf5\\x16\\x8f\\x6c\\xb9\\xdb\\xdc\\x6a\\x27\\xa2\\xa1\\x3d\\x52\\xc9\\x72\\x08\\x96\\xa1\\xf4\\xce\\x3a\\x53\\x45\\xee\\x79\\x3b\\x6c\\xc3\\xad\\x80\\xd7\\xd5\\x81\\x63\\xd5\\x45\\x5b\\x9c\\xbd\\x07\\x3e\\x2b\\x7a\\xdb\\xff\\x95\\x59\\x0c\\x71\\x72\\x27\\x1b\\xd9\\x1f\\xef\\xdb\\xd0\\x16\\x57\\xee\\x17\\x50\\x65\\x10\\x36\\xcd\\xc3\\x56\\x0b\\x44\\x4c\\xa2\\x18\\x4b\\xf4\\xf3\\xea\\x89\\xfc\\x97\\x3a\\xab\\x6f\\xb4\\xa8\\xee\\x57\\x04\\xbb\\xe5\\xa7\\x1c\\x99\\xfa\\x3b\\x5e\\xf0\\xd0\\x39\\x62\\x49\\x75\\x82\\x97\\x69\\x9a\\xe2\\x02\\xb8\\x19\\x69\\x0d\\xc7\\xac\\x46\\x92\\x77\\x03\\x46\\x90\\x78\\x45\\xe2\\x21\\x0d\\x53\\x63\\xad\\xee\\xc0\\x3f\\x0f\\xc7\\x76\\x1b\\x7e\\x0e\\xc0\\xfe\\xa1\\xbc\\xf6\\xb0\\x4f\\xc5\\x4b\\x3e\\x4c\\x40\\xd1\\x9b\\x8f\\xa6\\x49\\xac\\x84\\x79\\xe8\\xf8\\x07\\x30\\xc0\\xc9\\x4e\\x9f\\x4a\\x1a\\xd5\\x06\\xf2\\xbc\\xab\\x0c\\x49\\x54\\x0f\\x6d\\xec\\xaa\\x77\\xb3\\xd6\\x57\\xdc\\x38\\xa0\\x2b\\x28\\xa9\\x77\\xec\\xe4\\x82\\x54\\x5a\"},\n{{0x52,0xf4,0x67,0x5d,0x8c,0xcd,0x0e,0xb9,0x09,0xdf,0x0a,0x51,0x66,0x48,0xdb,0x26,0xfa,0x03,0x3b,0xa4,0x1d,0x43,0xfc,0x38,0x45,0x89,0x6d,0x45,0x6e,0x14,0x26,0x5f,},{0xf3,0x9e,0x7d,0xaf,0xc9,0x7b,0x0a,0x84,0xdc,0xbf,0x7f,0xa1,0x4a,0x94,0x03,0xee,0x1f,0xa9,0x2b,0x85,0xe5,0xa7,0xe5,0xd0,0x5f,0x03,0x1b,0x44,0xdd,0xf1,0xf7,0x94,},{0x4b,0xf6,0x68,0x82,0x7a,0x72,0x0a,0xf6,0x88,0x98,0xa0,0x6e,0xa7,0xb4,0x45,0x45,0xa3,0x4c,0xa8,0x96,0xec,0xf3,0x11,0xfe,0xea,0x47,0xe0,0x68,0x6d,0x91,0x1f,0xad,0xaa,0x03,0x11,0x89,0x97,0x15,0x3c,0x65,0x36,0x1f,0xea,0x15,0xde,0x9b,0xb8,0x91,0xb8,0x90,0x98,0x72,0x04,0x55,0x08,0xff,0xad,0x0c,0xd9,0xea,0xb2,0x1a,0x97,0x02,},\"\\x74\\x42\\x71\\x10\\x85\\x7c\\xb4\\xaf\\x0a\\x33\\x42\\xc2\\xb5\\x29\\x97\\xbc\\xe1\\xa0\\xdb\\x64\\x05\\xc7\\x4e\\x96\\x51\\xc5\\xb8\\x59\\x79\\xac\\xb0\\x71\\xe5\\x67\\xfe\\x70\\x41\\x2c\\x4e\\x0d\\x8c\\x9f\\xa4\\x21\\x91\\x4f\\x6a\\x62\\xf2\\xae\\x42\\x0b\\x7b\\x2f\\x4c\\xf8\\x0c\\x90\\x57\\x42\\x21\\x22\\x22\\x88\\xb6\\x58\\x67\\xea\\xa6\\x6e\\x7e\\x0a\\x05\\x57\\xa2\\x6c\\x54\\x9f\\x9a\\x7a\\x4e\\x70\\x83\\x8b\\xa4\\x07\\x4b\\x4c\\xd7\\xa9\\xd7\\x58\\xb3\\x78\\xb8\\x8d\\xd4\\x94\\x41\\xdf\\x80\\x2a\\x44\\x4d\\xcb\\xc3\\x06\\x24\\x93\\x3b\\x59\\x92\\x2f\\x33\\xc2\\x0f\\x01\\x9f\\xe7\\x8e\\xe2\\x4b\\x8f\\xba\\x79\\xa6\\x82\\xf3\\x88\\x50\\x5a\\xc9\\xc9\\x7f\\x4e\\xb8\\x7c\\x61\\x18\\x80\\x02\\x6b\\x4c\\x23\\x30\\x6b\\x86\\x51\\x73\\xf5\\xd7\\x16\\xab\\xc6\\xcd\\x9a\\x99\\x06\\xdb\\x34\\x30\\x13\\x6f\\x75\\x41\\x29\\xc4\\x43\\xb2\\x0c\\x42\\xbe\\x2f\\xbc\\xbc\\xd4\\x40\\x34\\xd7\\x14\\xf5\\x8a\\x4b\\xa8\\xe7\\x56\\x60\\x7a\\x02\\xb6\\x08\\xef\\x49\\x64\\x8f\\x2a\\xd0\\xce\\xa9\\x9e\\x7a\\xb3\\x0a\\x8d\\xd7\\x81\\x40\\x04\\xf7\\x25\\xf4\\x93\\x01\\xd7\\xb3\\x04\\xdc\\xda\\x62\\x5c\\x29\\x6d\\x92\\x8c\\xb5\\x81\\x73\\x6a\\xb7\\x39\\xc8\\x6b\\x46\\x92\\x41\\xa8\\x25\\x93\\x51\\xfd\\x37\\xb4\\x78\\x0a\\x99\\x93\"},\n{{0xba,0xd7,0x3c,0x9f,0xda,0x4c,0xeb,0x9d,0xa6,0xc7,0x01,0xc2,0xa6,0xe2,0xef,0xc0,0x46,0x7a,0xfa,0x0a,0x74,0xf8,0x75,0x0c,0x52,0xcf,0x1f,0xd4,0xc8,0xe7,0x48,0x9a,},{0xbb,0x0f,0x02,0x7a,0x90,0x35,0x37,0x6e,0x1a,0xa3,0x20,0x6c,0x3d,0x77,0x44,0x75,0xe3,0x51,0xf5,0x76,0x7e,0xf8,0x6e,0xf4,0x8a,0x72,0xc0,0x37,0xc2,0x4c,0xce,0x62,},{0x19,0x7d,0x6b,0x6c,0xc8,0x8a,0x98,0xc0,0x6d,0xfc,0xa0,0xc0,0x12,0x25,0xed,0xfe,0x38,0xa0,0xb2,0x28,0x9f,0x29,0xf8,0xa4,0x4e,0xc0,0x81,0x6a,0x95,0x2d,0x58,0x5e,0x2d,0x59,0xb5,0xb0,0x8d,0xe1,0x00,0xc0,0x60,0x62,0x96,0xcc,0xf5,0xe9,0x2a,0x99,0xe0,0x93,0x62,0x31,0x44,0xb8,0xb2,0x2d,0xb8,0x7d,0x92,0x92,0x25,0x54,0x60,0x05,},\"\\x74\\xb9\\x66\\xcb\\x78\\x07\\x71\\xae\\xe6\\x3d\\x73\\x4d\\xf3\\x75\\x67\\x02\\xd1\\xd5\\xfd\\xed\\xdf\\x32\\x13\\x6c\\x63\\x58\\xb8\\x36\\x31\\x8a\\x4f\\x98\\x4f\\xe7\\x1e\\x77\\x16\\xad\\xdd\\xbd\\x64\\x9e\\xba\\x44\\xcd\\x42\\x82\\xe0\\x05\\x5d\\x8c\\x1e\\xd2\\xd3\\x51\\x23\\xd6\\x6e\\x5a\\x98\\xf1\\xc0\\x83\\x8d\\xed\\x56\\x3b\\x9a\\x20\\xeb\\x80\\x07\\x53\\x8f\\xc7\\xb0\\x71\\x3e\\x7e\\x48\\x5e\\x3c\\x28\\xf6\\xeb\\xc4\\x21\\xa2\\x9d\\xce\\x25\\x24\\xdb\\x7f\\x29\\x20\\x57\\x61\\x03\\x6a\\xda\\x62\\xe5\\xb0\\xb7\\xd5\\xb7\\xf2\\x94\\xff\\x17\\xf3\\x38\\x23\\x2f\\xa5\\xfd\\x42\\xb6\\xf7\\x25\\x33\\x04\\x09\\x2d\\x84\\x8f\\x50\\x73\\x52\\x48\\x59\\x5d\\xa0\\xf7\\xef\\x28\\xe5\\x68\\xe9\\x91\\x6b\\xfc\\x56\\xd7\\xed\\x0d\\x81\\x1b\\x59\\xd5\\xd8\\x91\\xae\\x43\\xe1\\xb1\\x98\\x07\\x13\\x06\\xbf\\x52\\x5c\\x67\\x8c\\x63\\x43\\x99\\x80\\x05\\xfb\\xb7\\x86\\x9d\\x1c\\x40\\xf8\\xca\\xc8\\x07\\xfe\\x2e\\xf0\\x3f\\x3d\\x5b\\x93\\x3f\\x58\\x97\\x8e\\xf2\\x90\\x6f\\xcc\\xf7\\x44\\x4a\\x29\\x36\\xe6\\x3d\\x92\\x8c\\x69\\x09\\x26\\xc9\\xc9\\x94\\xed\\x3d\\x66\\x62\\x63\\xe9\\x56\\xfd\\xfe\\xa2\\x77\\x64\\xbc\\x5f\\x74\\x12\\x5b\\xc4\\x6b\\xc1\\x02\\xdd\\x3e\\x5f\\xf9\\x3b\\x5e\\x12\\x3e\\x4b\\x38\\xbd\\xef\\x69\\x7e\\x15\"},\n{{0x70,0x73,0x27,0xa4,0x31,0xdb,0xa7,0x76,0x39,0xb3,0x96,0x6b,0x2b,0xc0,0x95,0xf8,0xee,0xdf,0x57,0xf7,0xa2,0x00,0xe3,0xb0,0x07,0x7c,0xe4,0x20,0x38,0x9c,0x92,0xfe,},{0xee,0x24,0x96,0x91,0x08,0x64,0x18,0x9f,0xda,0xa3,0xc7,0x75,0x7e,0xb3,0xcd,0xa9,0xab,0x1e,0x70,0xfc,0x9e,0x7f,0x71,0xa3,0x8a,0x0b,0xfc,0x84,0x59,0x31,0xc9,0x5a,},{0xfb,0x99,0x02,0x9f,0xec,0xa3,0x87,0xa5,0xd7,0x65,0x96,0x1e,0x36,0x1d,0x71,0x72,0xb9,0x8b,0x7e,0x0f,0x11,0x29,0x0b,0xb1,0xe5,0xb5,0x7b,0x51,0xbc,0x21,0x23,0xd0,0xbc,0xe2,0x90,0x20,0x39,0x2a,0x4f,0xec,0x9a,0xe6,0xa7,0x2c,0x4c,0x38,0x6c,0xea,0x18,0x57,0xcb,0x8f,0x9c,0x50,0xaa,0x9a,0x76,0xd7,0xf1,0x68,0x7f,0xcf,0x29,0x00,},\"\\x32\\xef\\x31\\xb6\\x4e\\xee\\x70\\x0f\\xca\\x2a\\xb2\\x1a\\x26\\x7f\\x8d\\x9d\\x3b\\xdc\\x68\\x9c\\x75\\x38\\xfe\\x95\\x9b\\xf7\\x13\\xfa\\x99\\x5d\\xb2\\xc0\\xad\\x36\\xdd\\xe4\\x30\\xa8\\x41\\x7d\\x43\\x7b\\x72\\xc7\\x4e\\x26\\xdb\\xe3\\x1d\\x93\\x70\\x1d\\x46\\x17\\xfe\\x51\\x82\\x5c\\xff\\x7a\\x54\\x4f\\xc9\\xf4\\x4e\\x43\\x45\\xe1\\x4b\\x4b\\x11\\xe1\\x5f\\x26\\xff\\xc2\\xaf\\x80\\x35\\xf3\\xf9\\x70\\xe4\\xdd\\xa4\\x4c\\x0e\\xbc\\x03\\x63\\xc2\\xb5\\x6f\\xde\\x21\\x86\\x63\\xbf\\x78\\x83\\x90\\x92\\x53\\x8f\\xc2\\xf3\\x91\\x53\\xd4\\xeb\\x29\\xda\\x0c\\x1a\\x08\\xaa\\x96\\x66\\x01\\xcc\\x68\\xca\\x96\\xe9\\x93\\xb0\\x1b\\x17\\x3a\\x26\\x1b\\x2e\\xf3\\x27\\x65\\x03\\x82\\xf5\\x68\\xfe\\x94\\x48\\x55\\xb0\\xf4\\xfd\\x9d\\x15\\xe7\\x52\\xac\\x74\\xdc\\xfd\\x37\\xb3\\x78\\x6f\\xff\\xce\\xf2\\x33\\x39\\xc2\\x1e\\x92\\x70\\xdc\\xe8\\x89\\x1d\\xd5\\xee\\xeb\\xa9\\x60\\x8f\\xdc\\x7b\\x6f\\xbc\\xc9\\x9f\\xa1\\xb5\\x90\\x3d\\xaa\\x09\\x68\\xe1\\xb6\\x91\\xd1\\x9d\\x06\\xf2\\x15\\xde\\xd0\\x47\\xef\\x9d\\x76\\x61\\x0f\\x5d\\xe2\\x20\\xf5\\x04\\x1b\\x31\\x3f\\xaf\\x9e\\x96\\xc9\\xfd\\x7d\\xb5\\x4b\\x52\\x25\\x72\\x6a\\xf4\\x35\\xf9\\xcb\\xd9\\xfd\\x87\\xab\\x40\\xce\\x8f\\x2c\\x69\\x40\\xb5\\x5f\\x0f\\xaa\\xe8\\x78\\x50\\xca\"},\n{{0x6a,0xa5,0xc9,0xf0,0x08,0xf9,0x90,0x47,0x3b,0xa4,0xa6,0x28,0x6a,0x41,0x66,0x14,0x02,0x66,0x61,0xf1,0x1e,0x1a,0x24,0xef,0xa8,0x1a,0xc3,0x58,0x52,0xd1,0xd0,0x70,},{0x60,0x5a,0xc9,0xb4,0xdb,0xdd,0x50,0x33,0xd6,0xc8,0x28,0xbf,0xaf,0xa9,0x3c,0x00,0x39,0x44,0x0a,0xa1,0x1c,0xa7,0x24,0xae,0x83,0x40,0x43,0xe0,0x7b,0xd0,0x32,0xd5,},{0x97,0x56,0x30,0x3b,0x90,0x65,0x5e,0x93,0x52,0x51,0x03,0x2a,0xb1,0x9c,0xfc,0x95,0xca,0x1c,0x2a,0x2c,0x3e,0xa2,0x8b,0x03,0x3b,0xd4,0x70,0x66,0xcb,0xd4,0xc7,0xd8,0x98,0x2a,0x8b,0x98,0x86,0xf1,0xb9,0xcd,0x02,0xe8,0x8a,0x65,0x56,0x4d,0xa8,0xdc,0xc3,0x4f,0x30,0x8b,0xa9,0xf1,0x01,0x44,0xba,0x46,0x9c,0x2e,0xfa,0x49,0xe0,0x04,},\"\\xb5\\x16\\x5d\\x39\\x63\\xf6\\xe6\\xf9\\xea\\x56\\x57\\xe9\\xf0\\x7f\\xf3\\xa3\\x21\\xeb\\x33\\x8f\\x9a\\x8c\\x3d\\x3c\\x42\\x30\\x6b\\x2b\\x27\\x89\\x78\\xb3\\x1c\\x62\\x3a\\x63\\x1b\\xe3\\xb0\\x4c\\x41\\xed\\xfd\\xed\\xdf\\x53\\x8e\\x1b\\x76\\x5b\\xc8\\x78\\x54\\x01\\xc1\\xaf\\x29\\xd0\\x46\\x7a\\x64\\x41\\x1c\\x49\\x73\\x95\\xd7\\x55\\xdc\\xa0\\x3a\\xe3\\x27\\x2f\\x4b\\xc1\\xfb\\x19\\x18\\xdc\\xc1\\xed\\x6f\\x04\\xd6\\x49\\x84\\x04\\xa8\\xce\\x14\\x09\\xd4\\x47\\xf5\\x70\\xa4\\x35\\x95\\x22\\xcc\\x54\\x62\\x92\\x02\\xeb\\xe5\\x07\\xab\\x69\\x38\\x43\\x14\\x1b\\xd5\\xea\\x05\\x73\\xb2\\x0f\\x32\\x1a\\x48\\x3f\\xf3\\x83\\xa4\\x68\\x97\\xf5\\x92\\x6f\\xe0\\xb8\\xaf\\xc2\\x55\\x72\\x70\\x7b\\x63\\xee\\xed\\x28\\x35\\x32\\x92\\x8a\\x41\\x44\\x19\\x64\\x97\\x94\\x2c\\x57\\x2a\\xc5\\x47\\x60\\x51\\x39\\x25\\x6b\\x0a\\xa0\\xea\\xf0\\x4d\\xb1\\xa2\\x56\\x01\\x2e\\xd4\\x53\\xb1\\x73\\xee\\x19\\xad\\x6e\\x9b\\x1a\\xf3\\xf4\\x5f\\xf3\\x04\\x4a\\x64\\x1f\\x8c\\x8e\\xb0\\xac\\x7b\\xb4\\x5a\\xbb\\xde\\xd4\\x72\\x86\\xb2\\xa0\\x69\\xd3\\x90\\x86\\x94\\xee\\x06\\xf2\\xfb\\xd0\\xef\\x60\\x5a\\x79\\x11\\x02\\x6e\\xa9\\xea\\x3c\\x49\\x13\\xf3\\x8c\\x04\\xd8\\xb6\\x95\\x65\\xa7\\x02\\x78\\x67\\xab\\x30\\x92\\xd0\\x5f\\x4c\\xfb\\x18\\xfc\\x7c\"},\n{{0x8e,0xfb,0x8b,0x79,0x74,0x2b,0xe2,0x1e,0x6d,0x31,0xde,0x67,0x8b,0xc8,0x14,0x50,0xba,0x86,0x21,0x08,0x2c,0xd6,0xf0,0x00,0x3e,0x22,0x86,0x1e,0x22,0x91,0xc4,0x81,},{0x33,0x38,0x1e,0x35,0x6c,0x4f,0xd3,0x86,0xa3,0xf7,0xb9,0x69,0xaf,0xd9,0xf5,0xc0,0x0d,0x20,0x67,0xb6,0x98,0xb3,0xf1,0xf0,0x0f,0x37,0x84,0x20,0x2d,0x30,0x84,0xcf,},{0x92,0x30,0x05,0xcb,0x48,0x48,0x40,0x2a,0xa8,0xf9,0xd5,0xda,0x74,0x03,0x0b,0x00,0x94,0x44,0x92,0x4c,0x21,0x4a,0xd6,0x00,0xdd,0xba,0xb4,0xc1,0x53,0xa6,0xff,0x02,0x2b,0x53,0xcf,0x63,0x64,0xcd,0x7e,0xe9,0x9b,0xef,0x34,0xfe,0x14,0x4d,0xa9,0x64,0xed,0xfc,0x38,0xa0,0xba,0x63,0x33,0x12,0x65,0x0e,0xbf,0x0e,0x55,0xa0,0x60,0x09,},\"\\x6b\\x75\\x03\\x25\\xd3\\xa0\\xf0\\x8a\\x14\\x77\\x00\\xb5\\x1a\\x9b\\x37\\x25\\x57\\x10\\x94\\x81\\x8e\\xd6\\x9d\\x1f\\x76\\x10\\x13\\xeb\\x86\\xf3\\x23\\xf7\\x3c\\x49\\xf5\\xe4\\x39\\x87\\x7c\\x27\\x83\\xb3\\x36\\xd1\\xf1\\xa6\\x74\\xef\\x3e\\x43\\x1f\\xc1\\xae\\x01\\x80\\x08\\x2d\\xf5\\xfc\\xa6\\x9f\\x84\\x81\\x39\\xfe\\x6a\\xb6\\x73\\x9a\\x05\\x92\\xeb\\xd6\\xd4\\x70\\x5c\\x7f\\x01\\x36\\xb2\\x21\\x89\\xa1\\x1d\\x60\\xd4\\xd3\\xc9\\xbc\\x80\\xfe\\x7d\\x7c\\x00\\x95\\x2d\\x57\\x42\\xf9\\xc0\\xc2\\x12\\x1f\\xe7\\x92\\xdf\\x13\\x3f\\x22\\x1d\\xb9\\x91\\xfc\\x96\\x0e\\xe6\\x4b\\x9d\\x32\\xe0\\x17\\x8e\\x54\\x2b\\xce\\x8e\\xfa\\x8d\\x03\\xac\\x80\\x26\\xcd\\x77\\xba\\x8b\\xf0\\xb2\\x42\\x15\\xb9\\xfa\\xed\\x2e\\xae\\xc9\\x20\\xe9\\x25\\xd5\\xec\\x46\\xff\\xf6\\xbd\\xe7\\x25\\xe9\\x1c\\x82\\x80\\xe4\\xad\\xa2\\x32\\xa5\\x43\\x3a\\xe9\\x68\\x0e\\xbb\\x53\\xeb\\x55\\x55\\x31\\x47\\xc9\\x33\\x70\\x57\\x48\\x54\\x89\\x61\\x54\\x51\\x42\\x99\\xc0\\x93\\x21\\x9a\\x11\\x1d\\xca\\x4e\\x63\\x7a\\xd5\\x00\\x13\\x38\\xc6\\xd4\\xd5\\xee\\x90\\x98\\xc6\\x58\\x32\\xf7\\xaf\\x83\\x5b\\xcb\\x62\\x21\\x28\\x42\\x30\\x36\\xc7\\x9a\\x57\\x37\\x73\\x8a\\x75\\x39\\xf8\\xd4\\xa6\\xb8\\xb2\\x21\\xb5\\x6d\\x14\\x01\\xae\\xb7\\x4d\\x45\\x71\\xbc\\x00\\x9d\"},\n{{0xed,0x04,0x6d,0x68,0x8b,0x2b,0x0a,0x1b,0xc3,0xda,0xf2,0x11,0x9d,0xd3,0x21,0xa6,0x07,0xb1,0x6d,0x2a,0x2d,0x1d,0x96,0x3a,0xdd,0x12,0x09,0xc6,0x65,0xb5,0xcc,0xba,},{0x87,0x34,0xf1,0xff,0xcb,0xd7,0x1c,0xfd,0xe2,0x90,0x01,0x7e,0xa6,0x25,0x3e,0x58,0x0d,0x59,0xe6,0x5b,0x54,0x1b,0x46,0x52,0x1f,0x5e,0x5e,0xc1,0x45,0x1e,0xae,0xc6,},{0x72,0x1b,0xfd,0x47,0x76,0xcf,0xba,0x13,0x33,0x0f,0xd3,0x72,0x69,0xe9,0x79,0xc1,0xd7,0xb6,0xce,0x54,0xa5,0x1b,0x82,0xf4,0x56,0xe1,0x37,0x37,0x8e,0x58,0x2f,0x19,0x2a,0x12,0x08,0x9d,0xa5,0xab,0xa7,0x6a,0x7b,0x16,0x18,0x13,0xdc,0xe5,0x6b,0x72,0x89,0x2a,0x35,0x33,0x0c,0x94,0xf7,0xff,0x21,0xd0,0x9c,0xf0,0x9e,0x55,0x35,0x04,},\"\\xb9\\xcc\\x90\\xfd\\x8d\\xe2\\xa1\\x41\\xf9\\x51\\x16\\xdb\\x3b\\x04\\xbe\\x83\\xe9\\x85\\x22\\x59\\x7e\\xc2\\x17\\x49\\x64\\x24\\x51\\x80\\xb9\\xa4\\x73\\x76\\x7d\\x6d\\x47\\x0a\\x21\\x7d\\xb5\\xff\\x5a\\x1a\\xb7\\x77\\xe1\\xe2\\x8a\\x0b\\x16\\x97\\x5e\\x2b\\xac\\xb8\\x73\\x02\\x04\\x44\\xb4\\x7e\\xd8\\x32\\x64\\x21\\xb9\\x0e\\xbb\\x50\\x36\\x88\\xf0\\x90\\xc1\\x1b\\x3b\\x13\\x61\\x7c\\x5c\\x50\\x52\\xc2\\x97\\xa4\\x1e\\x28\\x93\\x77\\x5e\\x34\\xd5\\x9a\\xda\\x49\\xd9\\x94\\xc0\\xe4\\xa9\\xf5\\x22\\x0e\\x9f\\x03\\x15\\xa6\\x77\\x05\\xa3\\xec\\x08\\xaf\\x0d\\xc7\\x24\\xb5\\xcf\\x67\\xff\\x34\\xfa\\xda\\x8b\\xa7\\x10\\x9e\\xd2\\xb5\\xa8\\x90\\x7b\\xb4\\x03\\xfb\\x1a\\x83\\x8b\\x4b\\x05\\x9f\\x18\\xc7\\x92\\xd7\\xbf\\xec\\x05\\xde\\xe0\\xc9\\xcb\\xbf\\x17\\x53\\x40\\x9d\\x7d\\xb3\\xac\\xea\\xf4\\x7b\\x4c\\x61\\x39\\x84\\x97\\xb0\\xec\\xa6\\xc1\\xf8\\xac\\x08\\xa7\\xea\\x1e\\xb9\\xc4\\x0b\\xc4\\xe9\\x2e\\x88\\x82\\x12\\xf7\\xd9\\xee\\x14\\xfd\\xb7\\x31\\x58\\x16\\x09\\x44\\xff\\x9b\\xcd\\xfe\\xf1\\xa7\\x46\\x9c\\xc7\\x0f\\x94\\x74\\xe5\\xf2\\x4d\\xff\\xfe\\xa5\\x85\\xf0\\x9e\\xaa\\xab\\x4b\\xe2\\xaf\\xeb\\xbe\\x8e\\x6c\\xf8\\x6d\\x35\\x68\\x0d\\xc5\\xd1\\xb9\\x29\\x13\\xe8\\x48\\x25\\x6e\\xc7\\x36\\x31\\x6f\\xd0\\xa2\\x14\\x20\\x63\\xb0\"},\n{{0x76,0xac,0x8e,0x57,0x0a,0x39,0xb3,0xa0,0x23,0x2c,0x45,0x49,0x75,0x37,0xfb,0x21,0x55,0xac,0xec,0x36,0x17,0x86,0x5e,0xd1,0xdf,0x21,0x0f,0x00,0xb4,0x9d,0x1b,0x8d,},{0x31,0x2a,0x3a,0xd8,0x99,0xae,0x6a,0x25,0x50,0x7a,0xe6,0xe4,0x52,0x4e,0x10,0xb6,0x3a,0x6e,0x7a,0xe5,0x3d,0x9c,0xff,0xd3,0x9c,0xf2,0x85,0x21,0xd9,0x35,0x33,0xd6,},{0xcf,0x03,0xf5,0x25,0x91,0x3c,0x44,0x30,0x3b,0x2f,0x80,0x07,0x93,0x93,0xc2,0x1c,0x11,0x58,0x14,0x6e,0xcf,0x99,0x63,0x6f,0x5d,0x97,0xad,0xfd,0xd9,0xf3,0x58,0x39,0x80,0x4c,0x23,0x80,0x4c,0xbf,0x1e,0x55,0x3c,0xfd,0x4b,0x73,0xf6,0x89,0xa9,0x14,0x3a,0xec,0x29,0x8f,0x82,0x76,0xe1,0xe4,0xee,0x08,0x91,0xf1,0xba,0x75,0xde,0x04,},\"\\x53\\xce\\xd9\\xdb\\x2b\\x47\\x9e\\x59\\xd3\\xed\\x64\\x3f\\x7c\\xc3\\x78\\x4c\\x24\\xb8\\xbd\\x4c\\x63\\x20\\x6c\\x72\\xe2\\x3f\\xa8\\x50\\x02\\x88\\x99\\xa4\\x1c\\xe1\\xa8\\xbd\\xc0\\x03\\xf1\\x2b\\x7c\\x29\\x97\\x2c\\x9a\\x08\\xbc\\xd2\\x31\\xfe\\x0e\\x1a\\x0f\\xef\\x0b\\xaf\\xbf\\xa4\\xe0\\xe0\\x27\\xd7\\x20\\x04\\x07\\x5b\\xa3\\x7d\\x49\\x0e\\xb9\\x96\\x4e\\x78\\x3b\\xb9\\x8f\\x9e\\x50\\x3e\\x9c\\x1f\\xd3\\xd2\\x3f\\xb0\\x01\\x7c\\xc7\\xc7\\xa9\\xf8\\x6d\\x17\\x1f\\x04\\x1e\\x23\\x55\\xd8\\xc5\\xe6\\x22\\x9d\\x34\\xc7\\xee\\xac\\xb6\\x35\\x8c\\xf3\\x06\\x0d\\x5d\\x26\\x5b\\xae\\x20\\x04\\xa5\\x58\\x87\\x86\\x59\\xa3\\x0d\\xfe\\xd5\\xf2\\xec\\x78\\x8b\\x4e\\x14\\x39\\x7b\\x5d\\x00\\xc2\\x9d\\xb5\\xd4\\xeb\\xf1\\x66\\x39\\xa8\\xdf\\x29\\x2a\\x3d\\x24\\xf6\\x98\\x3c\\xbc\\xa7\\x60\\xd9\\x03\\xe9\\x76\\xf5\\xb6\\x98\\x64\\x2b\\xa1\\xfe\\xd4\\x9e\\x79\\xc3\\x8f\\x4b\\xb3\\x94\\x6e\\xfc\\xcc\\x9d\\x6a\\xef\\xad\\x33\\x6d\\x55\\x8f\\x78\\xe4\\xf2\\x05\\x42\\x2e\\x10\\x38\\x4a\\x4e\\x53\\x1e\\x75\\x80\\x7e\\xfb\\x38\\x9d\\x2a\\xf4\\xca\\xb4\\x38\\x25\\xfb\\x87\\xf1\\x96\\xa9\\x08\\x07\\x69\\xfe\\x75\\x85\\x78\\x29\\x70\\xa6\\x91\\x8a\\xff\\xe1\\x0d\\x20\\xd6\\x29\\xb7\\x05\\x84\\x55\\x97\\x41\\x8d\\x69\\x9d\\xe3\\xf1\\xde\\x85\\x4f\\x94\\xbd\"},\n{{0xf6,0x4a,0x66,0xba,0x0f,0x08,0x19,0xf3,0x00,0x14,0x16,0xc2,0x20,0xbf,0x52,0xd8,0x60,0x13,0x0a,0x19,0x76,0x4a,0xa8,0xab,0x38,0xd1,0x5b,0x2a,0xa7,0x5a,0xc0,0x22,},{0x81,0x25,0x25,0x3c,0xd3,0x37,0xe0,0x0d,0x45,0xb4,0x50,0x79,0xb5,0x85,0x34,0x95,0x61,0xe5,0xf5,0x42,0xa8,0x1f,0x6d,0x2f,0xcf,0xd9,0x85,0xc1,0x0f,0xea,0xb2,0xaf,},{0x4d,0xe6,0xf5,0x25,0x08,0x22,0xd7,0xc9,0xd5,0xbb,0x98,0x58,0x25,0x00,0xb5,0xc0,0x85,0xf5,0x41,0xeb,0xdc,0x45,0x0e,0xd1,0xac,0xaf,0x83,0x68,0x48,0x27,0xed,0x1d,0xc7,0x71,0x47,0xaa,0xe4,0xb1,0x9e,0x14,0xa7,0xdc,0x5b,0xbe,0x1f,0x1e,0x4f,0x57,0x71,0xd8,0xa6,0xe4,0xf2,0x35,0x17,0x39,0xaf,0xb0,0x8c,0x80,0x6d,0x55,0x87,0x01,},\"\\x80\\x72\\x86\\x2e\\xd0\\xab\\x35\\x92\\x1d\\xb5\\xec\\x2c\\xba\\x8e\\x6a\\xed\\xb0\\x44\\x1f\\xdf\\x47\\x49\\x10\\x06\\xc0\\x1e\\x64\\x56\\xad\\x70\\xfa\\xe3\\xc4\\x15\\x2d\\xcf\\xbf\\xdb\\xb8\\xf0\\xfd\\xde\\xc5\\xe9\\x6b\\x12\\xbf\\x67\\x98\\x9b\\xa9\\x67\\x93\\xf4\\x86\\x1a\\x11\\xb6\\x39\\x09\\xce\\x8d\\x19\\xb8\\xca\\x64\\xa5\\x44\\xb3\\x1c\\xe0\\x51\\xfb\\xc8\\x8e\\x06\\x28\\x06\\xd9\\x96\\x5c\\xbd\\x29\\x67\\xb0\\x16\\x14\\xe8\\x6b\\x53\\x2f\\xbf\\x59\\x84\\x32\\x18\\xdc\\x9c\\x19\\xc8\\x03\\x15\\xf0\\x44\\x73\\x17\\x19\\x37\\x10\\x92\\xa3\\xda\\x38\\x87\\x8b\\xc4\\xcf\\x77\\xde\\x97\\x2e\\x86\\x04\\x66\\xb8\\xfc\\x45\\xe4\\x65\\xdc\\x3d\\x0e\\xbf\\x94\\xbd\\xea\\x60\\xef\\x0b\\x98\\x91\\xce\\xd4\\x1b\\x99\\x7b\\x11\\xb3\\x1e\\xe4\\x16\\x7d\\xb6\\x0c\\x9c\\xfc\\x8b\\x85\\xbe\\xac\\xfe\\x22\\x3c\\xc1\\x82\\x92\\x13\\x77\\x40\\x85\\xd7\\xc0\\x6d\\x2b\\x2e\\x63\\x2c\\xc2\\x1c\\xd9\\x66\\x0d\\xf4\\x7c\\x4f\\xa9\\x18\\xbd\\xd5\\x96\\xdd\\xf6\\x22\\xdc\\xb6\\x52\\x64\\x2b\\x67\\x52\\x7b\\xa8\\xed\\x15\\xa8\\x19\\xa8\\xe2\\x1f\\x48\\xd7\\xee\\x70\\x24\\x7f\\x52\\x00\\xe3\\x7c\\x25\\x9d\\xff\\xd1\\x7e\\xec\\x8c\\x23\\x2f\\x97\\x0c\\xb0\\x31\\x82\\xfe\\x39\\x64\\x13\\x29\\x93\\xf6\\xec\\xb7\\xc4\\xdb\\x18\\xcc\\xef\\x39\\x0c\\x9e\\xb3\\x63\\x9e\"},\n{{0x84,0x39,0xb1,0xd6,0x0a,0xa4,0x84,0x60,0x13,0x5e,0xb1,0x00,0x2c,0xc1,0x12,0x79,0x29,0x95,0x07,0x9a,0x77,0xe6,0xe8,0xab,0x02,0x0b,0x9a,0xba,0xca,0x89,0x20,0xb4,},{0xea,0xdc,0x3e,0x0c,0x5b,0xdd,0xbc,0x30,0x52,0xc3,0xb2,0xf8,0xb0,0xa9,0x45,0x66,0xc2,0xb2,0xc8,0x79,0xed,0x17,0x03,0x4a,0xc0,0xe6,0xa4,0x5f,0x2b,0x3e,0x32,0xd2,},{0x62,0xda,0x81,0xe1,0x64,0x40,0x82,0x1b,0x59,0x3b,0x6e,0xe6,0x54,0x0e,0x15,0xd1,0xae,0xa7,0x5d,0x23,0xe0,0xa1,0xbb,0xfe,0xdc,0x80,0x8c,0x95,0x48,0xf8,0x7e,0x8b,0xbf,0x36,0x91,0x5a,0x39,0xa7,0x47,0x16,0xf6,0x45,0xcc,0xa5,0x71,0x4d,0x17,0x0a,0xf9,0x07,0x57,0x6d,0x4f,0x37,0x05,0xe5,0x43,0xd2,0xad,0xdd,0xc5,0xff,0x23,0x03,},\"\\x54\\x19\\xf6\\xd2\\x4e\\xb4\\x66\\x35\\xd4\\xa7\\xf8\\xea\\xb8\\x03\\xcf\\xd0\\xd0\\x4d\\xe0\\x92\\xaf\\xbd\\x86\\xf2\\xa6\\x96\\x1a\\x8d\\x1e\\xb8\\xc0\\xd1\\x97\\xba\\x55\\xee\\x08\\xc9\\x91\\x82\\x2a\\x5a\\xa7\\x02\\xba\\xe0\\x33\\x7a\\xbd\\x5c\\xa7\\xfa\\xa1\\x5e\\x1f\\x1a\\xe3\\x69\\x94\\x6e\\x9b\\x81\\x21\\x6c\\x0f\\x5f\\xc2\\x2b\\xbd\\x44\\x33\\xc3\\xde\\x93\\xc5\\xca\\xa2\\x74\\x16\\x83\\xbb\\xd0\\xe1\\xa7\\x8d\\xf2\\x8d\\xda\\x19\\x17\\x41\\x01\\x87\\x63\\x34\\xd4\\x03\\x39\\x65\\x9f\\x02\\x1a\\xe7\\x66\\x16\\x2c\\x6c\\xc5\\x42\\x1b\\x79\\xcf\\x9d\\x5c\\x09\\x0e\\xd4\\xaf\\x07\\xec\\x84\\x49\\x30\\x35\\xbd\\x0b\\x24\\x21\\xb5\\x33\\x68\\x42\\x95\\xbb\\xe7\\x6a\\x70\\xfe\\xc5\\x96\\xef\\x8c\\x89\\xc5\\xc9\\xdd\\xa3\\xc3\\x3b\\x77\\x35\\xd2\\xd2\\xf2\\x0b\\x28\\xf1\\xa5\\x40\\x2e\\x72\\xd0\\x4b\\xa2\\x91\\xdd\\x59\\xf1\\x4a\\xf0\\x8a\\xdf\\x56\\xee\\xb0\\x86\\xd7\\x69\\xc6\\xbe\\xc3\\x45\\x18\\x91\\x37\\x23\\x45\\xfd\\x6b\\xd0\\x2d\\xcf\\x95\\xe8\\x03\\xaf\\x03\\x53\\x15\\x0e\\x18\\x2e\\x32\\x3a\\xaf\\x68\\x3e\\x03\\x6d\\x9a\\x13\\x5d\\x2e\\x6f\\x98\\xcb\\x4d\\x32\\x7e\\x2c\\xe7\\xd5\\x42\\x47\\xf3\\x59\\x2e\\xd0\\x67\\xb4\\xce\\x76\\x27\\x17\\x4f\\x99\\x6f\\x28\\x16\\x5c\\x9c\\x11\\xf0\\x7e\\x5e\\xe9\\xce\\xe6\\x38\\x51\\xc6\\xb6\\x8e\\xa2\"},\n{{0x3a,0x04,0x63,0x97,0xf0,0xaf,0xc0,0x72,0xbc,0x7f,0x90,0x7c,0x74,0xd3,0x8f,0xd1,0xb9,0xaf,0xdf,0x27,0xe1,0x4a,0x35,0x34,0x76,0x8b,0x0d,0xd2,0xdf,0x3a,0x1c,0x22,},{0x99,0xcd,0x70,0xef,0x3b,0xe3,0x42,0x49,0x33,0x93,0x87,0x2f,0x54,0xc4,0x7d,0xea,0xa0,0x81,0x02,0x18,0x92,0xd1,0x1a,0x32,0x68,0xf3,0x14,0x5e,0xd4,0xf3,0xab,0xe5,},{0x50,0x24,0xce,0x60,0x25,0x79,0x65,0x68,0x70,0x80,0xc5,0xb1,0xfc,0x7d,0x13,0x01,0xc3,0x2a,0xa6,0xfc,0xc8,0x35,0x49,0x7d,0x9c,0xb2,0x3a,0x74,0xa6,0xca,0x27,0x24,0xf5,0x53,0x53,0xc1,0xb7,0x57,0x82,0x7c,0xa5,0x44,0x0c,0x9e,0xf8,0xf8,0xc1,0x05,0x09,0x13,0xe2,0x0a,0xab,0xec,0x35,0xc4,0x97,0xb5,0x60,0x41,0xb5,0xde,0xb2,0x09,},\"\\xf0\\x8d\\xde\\xf4\\x6c\\xc6\\xc3\\x41\\x79\\x82\\x0c\\x98\\x61\\x37\\x51\\x72\\xfd\\xdf\\x77\\x4f\\x8d\\xc3\\xf7\\xd6\\x4a\\xa4\\x32\\xda\\x8e\\x5f\\xae\\x64\\x4c\\x0a\\x8a\\x9e\\x69\\x08\\x51\\x7d\\x50\\x5d\\xeb\\xd6\\x12\\x86\\x8a\\xc6\\xda\\xf9\\x5c\\xd7\\xe1\\x69\\x97\\x50\\x02\\x2c\\xcd\\x4b\\x88\\xdb\\xae\\x2b\\xbf\\x73\\x54\\x6e\\xe4\\xb8\\x35\\xd3\\x19\\xa8\\x42\\xda\\xe8\\xb9\\xed\\x68\\x33\\x23\\xf3\\x1e\\x5c\\xc5\\x79\\x19\\xbc\\x9d\\xbe\\x3b\\xcf\\xff\\xb2\\xad\\xa4\\x80\\x72\\x69\\x7f\\xf4\\xa7\\xd3\\x10\\xc9\\x1a\\xdb\\xca\\x81\\xfa\\xf2\\x6a\\x0e\\xb7\\xbb\\x0c\\x40\\x4a\\xc9\\xd8\\xdf\\xec\\x63\\xe9\\xc6\\x4e\\x2f\\x42\\x0c\\x07\\xd3\\x23\\xb7\\xc0\\xdc\\x3b\\x73\\x50\\x72\\x83\\xae\\xb1\\xce\\xe5\\x1d\\xb4\\xe1\\xa8\\x3a\\x69\\x2c\\x7c\\x1e\\xa3\\x98\\xf6\\xf3\\x09\\x40\\xfa\\xb8\\x5e\\x21\\x38\\xd4\\xb8\\x5a\\xa4\\xe2\\x31\\xe5\\x42\\x4f\\x5b\\x06\\x4e\\xd0\\x26\\xf0\\xcc\\xb9\\x9d\\x1c\\x85\\xa9\\xeb\\x15\\xf5\\x93\\x4a\\x11\\x35\\x9d\\x41\\x1c\\xf9\\x4a\\xe8\\xff\\xa3\\x36\\x1a\\x22\\x4f\\x46\\xba\\xb8\\x52\\xd1\\x84\\xa2\\x48\\xb4\\xc3\\x1f\\xe3\\xa7\\xe7\\xf5\\x13\\x4c\\x05\\x10\\x31\\xa9\\xf3\\x28\\xa7\\xbe\\x4a\\x7c\\xbb\\xb1\\xd8\\xd8\\x63\\xa4\\x00\\xfd\\x2d\\x58\\xda\\xa4\\x4f\\x1b\\x9d\\x8e\\x9d\\xdf\\x96\\x1c\\xe6\\x32\\x2f\"},\n{{0x12,0x4f,0x74,0x16,0xa8,0x04,0x53,0xe4,0xcf,0x1c,0xd7,0xb5,0xe0,0x50,0xa9,0x76,0x14,0x18,0x25,0x8b,0xf7,0xd2,0x7b,0xeb,0x7f,0x23,0x23,0x8c,0x45,0x40,0xbe,0x2d,},{0x0d,0xa3,0x4a,0xb1,0x73,0x99,0x01,0x50,0xdf,0x73,0x99,0xb6,0xbc,0xdd,0xba,0x93,0xc6,0xdb,0xcb,0xf4,0xd1,0x76,0x94,0x1c,0xb5,0x07,0x1e,0x87,0x34,0xc5,0xdc,0x92,},{0xb0,0x57,0x21,0x04,0xaa,0x69,0xe5,0x29,0xe3,0x46,0x5a,0x6f,0xd2,0x8f,0x40,0x4a,0x4e,0xc2,0x02,0x76,0xa9,0x93,0xb1,0x72,0x5e,0xb8,0xc5,0xf6,0x50,0xb4,0xa2,0x16,0xf1,0x87,0x1b,0x24,0xe3,0x68,0xcc,0x46,0xcd,0x1e,0xe0,0x17,0x4c,0xda,0x1b,0x5e,0x4a,0xe2,0x20,0x0a,0xa9,0xfc,0x44,0x52,0x2d,0x97,0x5a,0x9c,0x51,0x81,0x49,0x08,},\"\\x9d\\xcb\\x98\\x73\\xff\\x05\\x4d\\xb1\\x1d\\x0a\\x9b\\x19\\xde\\x68\\x85\\xff\\xba\\x7f\\x0e\\x68\\x1c\\xf7\\xfb\\x8f\\x6c\\xd9\\x50\\xc4\\x83\\x28\\xd1\\xf9\\x19\\xca\\x46\\x05\\x4e\\xee\\xe6\\xc9\\xe5\\x78\\x43\\xeb\\xdd\\xa7\\xb2\\x4b\\xc3\\x50\\x3c\\x4d\\x61\\x2a\\xbb\\x1a\\x31\\x4f\\x39\\xf5\\x82\\x21\\xd2\\xb5\\x4d\\xc7\\x55\\xac\\xca\\x79\\x69\\x74\\x0e\\x7f\\xa8\\xb1\\xa9\\x52\\x3b\\x8c\\x73\\x79\\xfd\\x39\\x52\\x53\\xf4\\xe6\\xcd\\x05\\x4e\\xe2\\x4b\\x75\\x61\\x3c\\x35\\x81\\xd4\\x9e\\x19\\x24\\x6a\\x7b\\x3b\\xe1\\xce\\xcb\\x33\\x4b\\xe4\\x4f\\x3d\\x62\\x6f\\xe3\\xb7\\xb2\\x69\\xe6\\x28\\xd4\\x45\\x80\\xc2\\x06\\x36\\xeb\\xa2\\x64\\x2f\\x27\\x44\\xb9\\x59\\xe6\\x57\\x57\\xd0\\xee\\x60\\x18\\x43\\xf1\\x88\\xe9\\x5d\\x17\\x25\\x3f\\xef\\x56\\x70\\x68\\xa5\\x40\\x5a\\x3a\\x9e\\x67\\x7f\\xea\\x3d\\x7d\\x55\\xf7\\xea\\xd1\\x9a\\x3f\\x30\\xc5\\xf9\\x85\\x67\\x1b\\x55\\xfa\\x12\\x0c\\xb9\\xd0\\x5f\\x47\\x1b\\x6e\\x1e\\x8d\\x77\\x9a\\x2c\\x80\\x3a\\x19\\xe6\\xd0\\xd7\\xcd\\x50\\x78\\x87\\xed\\x64\\x7c\\x2a\\x95\\x48\\x3f\\x93\\x39\\x91\\xed\\x45\\xae\\x30\\x1a\\x2b\\x0e\\x95\\x4a\\x57\\x03\\xd2\\x48\\xc7\\x88\\x10\\xaa\\x0b\\x19\\x9c\\xc2\\xbe\\xbb\\x2f\\x1d\\x71\\xcc\\x40\\x48\\x7d\\xbd\\x42\\xee\\xe0\\xf7\\x45\\xf7\\xd2\\x85\\x68\\x5b\\x1f\\xb3\\x1b\\x15\"},\n{{0x25,0xd1,0x3b,0x38,0x37,0x60,0x1b,0x07,0xa9,0x75,0x69,0x3e,0x5a,0x33,0xd5,0x33,0x7c,0x34,0xc1,0x12,0x7f,0xe4,0xc2,0x74,0x90,0x61,0x2a,0xaf,0x7f,0x64,0x2e,0x9a,},{0x3a,0x07,0xcd,0x68,0xee,0x26,0x92,0xd5,0x1c,0xfa,0xd1,0xa8,0x0e,0x77,0x63,0xb1,0x8a,0x04,0x3c,0x74,0xf4,0xe1,0xb0,0x1e,0xdc,0x55,0xba,0x9a,0x9e,0x07,0x79,0x5a,},{0x20,0xcb,0xf0,0x83,0x92,0xfe,0xa6,0xa9,0x9c,0xf4,0x46,0xa9,0x5c,0x19,0x9c,0xaa,0x0c,0x0f,0x98,0x13,0xcc,0x21,0x7b,0x8d,0x22,0x8e,0x2e,0xd9,0x0b,0xab,0x95,0xea,0x92,0xcd,0x73,0xac,0x95,0x83,0x47,0x64,0xd3,0x3e,0x42,0x24,0x3c,0x80,0xa7,0x60,0x34,0x91,0xc8,0xd3,0xe4,0x9a,0xc7,0x15,0xfd,0x8a,0x5b,0x9e,0x47,0x89,0xbb,0x03,},\"\\x11\\x5b\\x32\\x20\\xb4\\x5c\\xa8\\xf3\\x6c\\x7f\\xf5\\xb5\\x38\\x87\\xd4\\x7e\\x66\\x9b\\x78\\xda\\xc1\\x3b\\x98\\xcc\\x7a\\xac\\xa5\\xc2\\xe1\\x9f\\xce\\x81\\xec\\x86\\x17\\xca\\x41\\x0e\\x11\\xc9\\xa9\\x11\\x8a\\x66\\x84\\x53\\xb3\\x29\\xff\\xb7\\x18\\xea\\xec\\x73\\x91\\x72\\xf0\\xa8\\x49\\xa0\\x84\\x81\\x92\\xa5\\xbd\\xea\\x18\\xab\\x4f\\x60\\xd8\\xd1\\xa0\\xd3\\x38\\x95\\x2d\\x77\\xb2\\xcc\\x13\\xef\\xe8\\x3c\\x76\\xe8\\xdd\\x58\\x80\\x3b\\x1d\\x8b\\x3c\\x97\\x29\\xef\\x10\\x2b\\x20\\x83\\x5b\\x7d\\xe8\\x72\\xbe\\xf3\\x01\\x0f\\x15\\xa4\\xca\\xdd\\xf0\\x7c\\xf7\\xbd\\xd2\\x22\\xd8\\x4b\\x17\\x4b\\xc2\\x15\\x27\\xcf\\xfb\\x1b\\x7f\\xfd\\xe8\\x1e\\x28\\x1d\\x30\\xcb\\x7b\\xce\\x25\\xea\\x3d\\xff\\xb6\\xea\\x1f\\xbb\\x06\\xcb\\x70\\x56\\x9a\\x95\\xed\\x1a\\x07\\xe9\\x7c\\xa4\\x2d\\xe7\\x0a\\xa2\\x18\\x15\\x9e\\xfd\\x60\\x8f\\xa9\\xb0\\x89\\x6e\\x0b\\x58\\x51\\x8a\\x32\\x2f\\x25\\x1d\\x13\\x3e\\x58\\xc8\\xfc\\x14\\x28\\xab\\x0a\\x17\\x0e\\xd8\\x45\\xc7\\x5f\\xb4\\x03\\xf1\\xff\\xb9\\x7d\\x2d\\x2a\\x6d\\x4f\\x27\\x79\\x11\\xd3\\x26\\xc1\\xca\\xbb\\xb8\\x51\\x6c\\xbc\\x17\\x90\\x8a\\xb8\\x1f\\xf8\\xd7\\x9a\\xf4\\x46\\x11\\xea\\x1d\\x05\\x87\\x9c\\x1e\\xc8\\x1d\\x06\\x93\\x6e\\x0f\\x4a\\x0a\\xef\\x6d\\x57\\x48\\xe1\\x81\\xd3\\x0e\\xc2\\x52\\x36\\x59\\x7a\\x97\\x3d\"},\n{{0x7b,0x3a,0x76,0xde,0xca,0xea,0x60,0xc4,0x1e,0x95,0xb0,0x58,0x77,0xa7,0xda,0x82,0x06,0x4c,0x27,0x27,0x8c,0x8d,0x7d,0xf5,0xf0,0xbb,0x95,0xf0,0xad,0x2d,0x04,0x35,},{0xf8,0x0d,0xb5,0xc2,0x87,0x21,0xb1,0xc6,0x11,0xbd,0x87,0xeb,0x14,0x5a,0x98,0xbb,0xf3,0x83,0xb0,0x68,0x04,0x5d,0xf2,0x45,0x8d,0x1a,0x6f,0xda,0x09,0x9f,0x7f,0xc2,},{0x2c,0xd2,0x6f,0xb3,0xc4,0xf7,0x44,0x0a,0x72,0xaf,0xfe,0x93,0x56,0x4f,0x6f,0x65,0x59,0xad,0xb1,0x5c,0xc7,0xa2,0xba,0x10,0x87,0x9f,0xb7,0xd6,0x7e,0x47,0xd4,0xeb,0xd0,0x2f,0xe4,0x82,0x36,0x98,0xa5,0xfb,0xd4,0xa9,0x07,0xfd,0x69,0x18,0x4c,0x25,0x5a,0x17,0x0e,0x5f,0x17,0x47,0xfc,0xe9,0x68,0x10,0x2d,0xc2,0x19,0xb5,0x0d,0x02,},\"\\x37\\x5f\\xad\\xae\\xdd\\x9c\\xac\\x49\\xb6\\x4e\\x15\\x74\\x02\\x80\\x46\\x06\\x9f\\x4c\\x83\\x65\\x4c\\x8a\\x70\\x11\\xab\\xdb\\x64\\xdb\\x16\\xb4\\x7f\\xa3\\x11\\x79\\x81\\x72\\xf9\\x07\\x22\\x17\\xb0\\xa6\\xa4\\x3e\\x5d\\xf6\\xff\\xcc\\x11\\x54\\xbc\\xec\\x1c\\x68\\xe1\\xd3\\x5e\\xc0\\x58\\x80\\xd0\\x12\\xce\\x76\\xe4\\xce\\xbf\\x30\\x1b\\xb2\\xec\\x98\\x3d\\x00\\xb4\\xa0\\x54\\x0c\\x93\\x7f\\xf1\\xc6\\xdf\\x94\\x41\\xc6\\x1b\\xdb\\x3b\\xe8\\xe0\\xc7\\xc1\\x1a\\x35\\xd4\\x9b\\x6f\\x55\\xc3\\x81\\x26\\x9a\\x0e\\x76\\x8e\\xfb\\xd4\\x53\\x44\\x7f\\xe4\\x8b\\x75\\xac\\x39\\x64\\x6c\\xa8\\x2e\\xca\\x7d\\x14\\x93\\x04\\x42\\x34\\x91\\x87\\x1c\\x10\\xdb\\xcf\\xc5\\x97\\x3a\\x57\\xfa\\xb8\\x37\\x1c\\x30\\xcb\\xc4\\xe9\\x0b\\xec\\xc0\\xb6\\x71\\x52\\x22\\x6e\\xe1\\x77\\xb4\\xff\\x36\\x8e\\xc8\\x79\\xb3\\x91\\xeb\\x95\\xe3\\x6d\\xcb\\xb0\\x7b\\x2c\\x16\\xba\\x39\\x55\\x45\\xd4\\x52\\x9f\\x72\\x7b\\x1a\\x11\\xef\\x65\\xd1\\x20\\x97\\x6b\\x7c\\xcc\\x86\\xaf\\x4b\\xd2\\x04\\xcb\\x94\\x89\\xc9\\x21\\xe4\\x3b\\xa5\\xe8\\x50\\xcf\\xe5\\x98\\x99\\xf1\\xc1\\xec\\x4a\\xa5\\xc9\\x2b\\x6d\\xac\\x69\\x14\\xb1\\x95\\x2b\\x53\\xdc\\xb5\\x40\\xb4\\x09\\x23\\x13\\x81\\x56\\x89\\x87\\xbb\\x22\\x36\\xbc\\x40\\x89\\x5d\\xf3\\xf1\\x7e\\xab\\x7c\\x02\\x74\\xf2\\x24\\x4f\\x95\\x86\\x12\\xe8\\x8e\"},\n{{0x5f,0xf8,0xd4,0x05,0x26,0x08,0xeb,0x03,0x3a,0x5e,0x94,0xb6,0x03,0xce,0x38,0x4d,0x84,0x52,0xf6,0x0a,0x26,0x49,0x8b,0x91,0x12,0x56,0x7f,0x34,0x10,0xc1,0x86,0x66,},{0xc4,0x90,0x0d,0xe2,0x4d,0x9a,0xf2,0x48,0x27,0x63,0x10,0x99,0x26,0xaf,0x7c,0x48,0x13,0x80,0xfa,0xbc,0xda,0x94,0x40,0xc1,0xa5,0x3e,0xa1,0xcd,0xc2,0x7e,0x65,0x68,},{0xb7,0x37,0xd4,0xe5,0xbe,0x27,0xde,0xb6,0xd8,0x77,0x29,0xc6,0x36,0xdf,0xf7,0xa4,0x06,0xc0,0x13,0xf3,0x13,0xc3,0x8c,0xf6,0x83,0xfe,0x14,0xf7,0x5a,0x3b,0x30,0x05,0xd9,0x53,0x5d,0x7e,0x58,0x15,0xc8,0xf8,0xb3,0x7c,0x51,0xd6,0x92,0x71,0x11,0xc9,0x79,0xf7,0xd9,0xd8,0x1a,0x34,0x7a,0xa9,0xcc,0x09,0xed,0x4e,0x6c,0x18,0xe9,0x0f,},\"\\x13\\x8c\\x60\\x55\\x7c\\x2e\\x90\\x08\\xaf\\xc0\\x3d\\x45\\xbe\\xc7\\x1f\\x96\\x11\\x49\\xa0\\x83\\x59\\x26\\x75\\x1c\\x8f\\xf3\\x93\\x5c\\x7d\\x65\\x2d\\x83\\xe1\\xb0\\xb1\\xda\\x7d\\x5b\\xbe\\x0b\\x8e\\x17\\x1a\\x4e\\x49\\xaa\\xe0\\x6f\\xd8\\xa9\\xde\\xff\\x78\\xdc\\xde\\x4d\\x25\\xb1\\xaa\\x89\\x99\\x98\\xa0\\xf9\\x9e\\x1d\\xf6\\xf9\\x33\\x7a\\x3e\\xa2\\xf2\\x4b\\x76\\xc3\\x17\\xa7\\x01\\x4d\\xb4\\xe5\\x28\\x31\\x91\\x79\\x5a\\x70\\xd8\\x82\\x1d\\x21\\x78\\x46\\x49\\x0f\\x95\\x87\\x01\\xd3\\x9d\\xc2\\xc8\\xce\\x47\\xd9\\x28\\x93\\x88\\x74\\xd8\\x7b\\x35\\x58\\x98\\x9b\\xc7\\x7a\\xf8\\x20\\x97\\x9a\\x35\\x1e\\xef\\x95\\x94\\xaa\\x5b\\x94\\xf3\\x34\\x1e\\xde\\xd4\\xea\\x20\\xb0\\x8c\\x3e\\x7c\\x56\\x10\\xd4\\x32\\x67\\x81\\x8d\\xfa\\xc0\\xa8\\x7d\\xdf\\x52\\x7f\\xbc\\xe8\\x51\\x2b\\xbf\\x85\\xb6\\x6c\\x9b\\xb5\\xd6\\x2f\\x0f\\xe8\\x40\\x48\\xf2\\x3b\\x19\\x60\\x4a\\x5c\\x8d\\x82\\xb1\\xf2\\x5a\\x8d\\xa0\\x27\\x31\\xfe\\xb2\\xec\\xae\\x48\\x9b\\x84\\x75\\xf7\\xbd\\x32\\x6d\\xdf\\x1a\\x08\\x18\\x9e\\x46\\xc0\\x8c\\xf5\\x05\\x38\\xc2\\xa3\\x63\\xe2\\xf4\\xeb\\x2c\\x01\\xa2\\x04\\xc7\\xff\\xbc\\x0b\\x98\\x1a\\xdc\\x0f\\xd9\\x97\\xaa\\xfd\\xf2\\xa2\\x22\\xee\\x84\\xc3\\x09\\xf6\\xe9\\x5e\\xc7\\xde\\x4f\\xa8\\x5d\\x47\\x68\\xd5\\xc0\\x03\\x16\\x50\\x28\\x22\\x5e\\x22\\xe0\\x9e\"},\n{{0xee,0xde,0xfc,0x17,0x57,0xe3,0xa7,0xe5,0xed,0x39,0x46,0xdb,0xed,0xc3,0x96,0xa3,0x62,0xf6,0x83,0xd2,0xc5,0x1b,0x0b,0x9f,0x60,0x76,0x5d,0x4b,0xfc,0x51,0x34,0xde,},{0xa9,0x87,0x2b,0xc2,0x19,0x2f,0xc0,0x2b,0x18,0x9c,0xee,0xd4,0x03,0xab,0x9f,0x27,0x0a,0x03,0x2a,0x83,0x5f,0xde,0xbf,0xaf,0x1c,0x9d,0x69,0x34,0xed,0x83,0x04,0xbc,},{0xd5,0xbe,0xa8,0xea,0x9a,0x5f,0xe9,0xed,0x6d,0x2b,0xf8,0x39,0x93,0x0c,0x0c,0x6c,0xd5,0x03,0x9e,0x98,0x8f,0x55,0x1f,0xde,0xdb,0x54,0x37,0xe1,0xc1,0xaf,0x0e,0xd7,0xb3,0x89,0x7c,0x03,0x57,0x11,0xc3,0xc5,0x19,0x26,0xbe,0x8d,0x1b,0x32,0x02,0x4d,0x5c,0xd5,0x82,0xf5,0xf8,0x36,0x9a,0xd8,0x4d,0x18,0xb1,0x25,0x02,0x65,0x2f,0x07,},\"\\xb1\\x94\\xdb\\x73\\xf9\\x94\\xcb\\xdc\\x3c\\xbe\\x63\\x0b\\xa7\\x2c\\x47\\xc2\\x24\\x9b\\xc0\\x59\\x2a\\xb5\\x47\\x94\\x2b\\x1d\\x1b\\x88\\x2b\\x44\\xf5\\xb3\\x85\\x5e\\x56\\x8b\\xdd\\xdf\\x92\\xef\\x05\\x02\\x2d\\x88\\xfc\\xfc\\x29\\x4e\\x76\\xb6\\x4a\\x00\\xe9\\xc7\\x43\\x55\\x37\\x37\\x63\\xe4\\x9a\\x4e\\xbc\\x47\\x24\\x3d\\x48\\xa9\\xad\\x58\\x89\\x94\\xa5\\x18\\xf8\\x0f\\x86\\x15\\xc2\\xb3\\x1d\\xa5\\x87\\xa5\\x3e\\x52\\x9d\\x43\\x5a\\x86\\x97\\x35\\x0d\\xfc\\xde\\x02\\xd2\\x0c\\xce\\x7d\\x5e\\xee\\xfe\\x3f\\x5a\\xb2\\xaa\\xc6\\x01\\x25\\x9c\\xda\\x38\\x53\\x8a\\x1b\\x83\\x01\\xf9\\x83\\x2e\\x75\\xab\\x90\\xf8\\xa9\\x32\\xf2\\x67\\xea\\xc1\\x81\\x00\\x39\\x65\\xd5\\x26\\x6f\\x20\\x61\\x80\\xc6\\xc3\\x80\\xec\\xe8\\x03\\x57\\x7c\\xcb\\x46\\x17\\x6b\\xf6\\x07\\x15\\x94\\x86\\xf2\\x42\\x59\\x74\\x7e\\x2c\\xa6\\xfb\\x19\\x12\\xdb\\x7b\\x78\\xa9\\x73\\xb2\\x84\\x63\\x87\\xc1\\x20\\x80\\x30\\xee\\x1f\\x40\\x0d\\x0c\\x5b\\x5e\\x8b\\xde\\x96\\x35\\xae\\x55\\x63\\x8b\\xa1\\x7c\\x73\\x4d\\xe8\\x63\\x8b\\xb8\\x5d\\xfc\\xd7\\x66\\x29\\xa7\\xf9\\xf4\\x0d\\x6a\\xb9\\x54\\xd5\\x5b\\xf8\\x57\\x5f\\xc9\\xc9\\xa5\\x95\\x09\\x7e\\x08\\x93\\xdb\\x5a\\x7b\\x8a\\x6c\\x45\\x5e\\xcb\\xd3\\xd2\\x2d\\x72\\x5e\\x19\\xde\\x29\\x41\\xf4\\x67\\xf9\\xeb\\x93\\xd6\\x6a\\x0e\\x2b\\xbd\\xbf\\x92\\xed\\x1c\"},\n{{0x09,0xd2,0x2b,0xba,0xa5,0x95,0x6c,0xfa,0xcb,0xbf,0x9f,0xd5,0x51,0x09,0x75,0x12,0x86,0x86,0xc4,0x0c,0x6e,0xa9,0x6b,0x89,0xef,0x4c,0x0f,0x0c,0x64,0x9b,0xcd,0x7f,},{0xe5,0x59,0xea,0x8a,0xcb,0xdc,0x61,0xb6,0x70,0x9a,0x7d,0x83,0xae,0x15,0x84,0x9a,0x6c,0x78,0xb2,0x03,0x92,0x3d,0xd0,0xa2,0x99,0x23,0x9e,0xe4,0x88,0x69,0x30,0xba,},{0xe6,0x52,0x75,0xc4,0x32,0x8a,0x70,0xad,0x62,0x40,0x8e,0xd7,0xfb,0x17,0x28,0xbe,0x87,0xa7,0x3a,0x81,0x4f,0xee,0x8e,0xbd,0x94,0xf2,0x66,0x5c,0x71,0xbc,0x66,0xab,0x0c,0x1b,0x07,0xa6,0x00,0xb3,0x0b,0xc0,0x81,0xa7,0x4c,0x53,0x68,0x57,0xc2,0x06,0x10,0x38,0x4b,0xe2,0x68,0xd9,0xaf,0x3e,0x3e,0xcd,0xdd,0x3e,0xb0,0xc1,0x4c,0x0c,},\"\\x1c\\x26\\xa0\\xf3\\xa1\\xa5\\xb2\\xd7\\xd5\\xb2\\x97\\xaf\\x8a\\x6a\\x68\\x9d\\x7c\\x62\\xa2\\x52\\x67\\xe1\\x97\\xd2\\x3b\\xec\\xd2\\xf2\\xb8\\x16\\xc4\\xde\\x92\\xfb\\xda\\xff\\xb9\\x41\\xc3\\xfc\\x8d\\xb7\\xa8\\x43\\x35\\xa8\\x4c\\xfb\\xc9\\x2c\\xb3\\xac\\x80\\x6e\\xd5\\x8d\\xf1\\x6b\\x6b\\x8e\\x11\\x9a\\x48\\xdf\\x4f\\x27\\xc7\\x1e\\x93\\x1a\\x59\\x38\\xe7\\xd0\\x02\\x73\\x48\\x85\\xe1\\x3a\\x25\\x8a\\x15\\xb6\\xe1\\x13\\x6e\\xfb\\xa7\\x2f\\x1d\\x09\\x6b\\x68\\x9f\\x76\\x18\\xf4\\x9c\\x96\\x80\\x63\\xe8\\xf9\\x91\\xfa\\x0b\\x55\\x60\\x1e\\x43\\x0e\\xee\\x13\\x49\\x2a\\x1b\\x09\\x41\\x3e\\xb2\\x38\\x13\\x59\\x1a\\x7a\\x9f\\x07\\x0c\\xc3\\x96\\xca\\x9d\\x1f\\xac\\xdd\\x4f\\x4c\\xe3\\x7c\\x40\\xf7\\x24\\x5f\\x55\\x03\\x5e\\x10\\xfa\\xd6\\xb8\\x5b\\x5f\\x01\\xa1\\xda\\xac\\xc0\\xdf\\x94\\x06\\x9f\\x7d\\xe8\\xf6\\x46\\x7f\\x96\\xd1\\xfb\\x98\\x64\\x8e\\x8a\\x05\\x20\\xa8\\xcd\\x72\\x3c\\x98\\xe9\\xdc\\x2d\\xd4\\xb2\\x93\\x4d\\x82\\x28\\xf0\\xae\\x1a\\x41\\x5b\\xd3\\xa7\\xcd\\xa3\\x8d\\x7a\\x99\\x83\\xce\\x1a\\xf6\\xf8\\xc9\\x70\\xa2\\xa5\\x91\\x63\\x5f\\xe1\\x2b\\x91\\x75\\x36\\xef\\x81\\x5e\\xaf\\x1a\\x31\\x38\\xd7\\x0c\\xe7\\x0a\\x79\\x42\\x64\\xd7\\xc9\\x86\\xd9\\xee\\x32\\x90\\x44\\x5f\\x15\\xa9\\x24\\x8f\\x27\\x65\\x27\\x1e\\x5a\\x99\\x21\\x96\\xae\\x33\\x1a\\xbd\\x41\\x64\\xbf\"},\n{{0x77,0x82,0x6e,0xd3,0x51,0xa3,0xf0,0x92,0x54,0xae,0x56,0x92,0x88,0x5d,0x77,0x4c,0xb3,0xf2,0x44,0x10,0xa4,0x80,0x9f,0xd9,0x0f,0x8a,0x00,0xda,0x9a,0xee,0x99,0x03,},{0x3e,0xac,0x8f,0x41,0xee,0x73,0xe6,0xef,0x13,0x68,0x21,0xf7,0x95,0x7a,0x1c,0x27,0xe1,0x56,0x38,0xd0,0xe3,0x91,0x6e,0x6c,0xaa,0xc6,0xfb,0x7b,0xeb,0x7b,0xcf,0xb0,},{0x97,0x7a,0xdc,0xcd,0xb8,0x29,0xb4,0x0b,0xbd,0x8e,0x53,0x85,0x6a,0x78,0x3d,0xb3,0x46,0xa3,0x9d,0xff,0x62,0x04,0x1a,0x29,0x72,0xd2,0x90,0x09,0xf1,0xc9,0xff,0x81,0xb8,0xad,0x54,0xcb,0x90,0x1e,0x49,0x7c,0x1d,0x30,0x21,0xb5,0x0b,0x6c,0x69,0xee,0x73,0x55,0x8f,0xd7,0xbe,0x05,0xd6,0x25,0xf5,0x72,0x7f,0x9a,0xf2,0xce,0x87,0x02,},\"\\x1f\\xf0\\x6c\\x0b\\x39\\x99\\xce\\xcb\\x19\\x00\\xa4\\x7d\\x26\\x7b\\xea\\xfb\\xb3\\x5d\\x93\\xd1\\x4c\\xb2\\xc8\\x92\\x5e\\x3e\\x3f\\xe5\\xd9\\x67\\x58\\x69\\x25\\xee\\x4b\\xaa\\x41\\x99\\x8e\\xdd\\x01\\x03\\x20\\x58\\x10\\xaa\\xd5\\xc0\\xbb\\xdc\\x77\\x87\\x44\\x76\\x81\\x02\\x46\\xd1\\x30\\x89\\xa6\\x4d\\xb5\\x76\\x42\\x4f\\xae\\x0b\\xed\\x96\\x64\\xa4\\x2a\\x49\\x11\\x47\\xd1\\xee\\x3b\\x9c\\x3b\\x1b\\xa4\\x87\\x5b\\xe1\\x54\\x62\\x39\\x25\\x40\\xf9\\x97\\x8d\\x9a\\x46\\x30\\xba\\x4c\\x52\\x54\\x99\\x75\\x1a\\x45\\xef\\xc2\\x99\\xec\\x7d\\x73\\xb1\\x7f\\x9a\\xd2\\x75\\xee\\x71\\xa6\\x87\\xe7\\x26\\x90\\xd7\\x32\\x02\\x42\\xd2\\xdc\\x2b\\xd4\\xd5\\xc5\\xcf\\x0f\\x17\\xa4\\x65\\x18\\x5d\\xcf\\x60\\xf8\\xef\\xff\\x53\\x90\\x3f\\x20\\xb0\\xc2\\xab\\x21\\x92\\xd4\\x43\\x68\\xf2\\xf2\\xfb\\x36\\x04\\x8a\\xf0\\x71\\xf7\\xaa\\x85\\x7b\\x14\\xad\\x1d\\x11\\x46\\x12\\x05\\xbe\\xbe\\x17\\xe0\\x2b\\xe2\\xe3\\xcc\\xb6\\x09\\x28\\x21\\x88\\x5c\\x4e\\x0d\\x48\\x11\\xbe\\x3f\\x45\\xb1\\xfe\\xa0\\x88\\x45\\x3e\\x02\\x24\\x32\\xf5\\x62\\x56\\x2b\\x43\\xa3\\x55\\xcb\\x56\\x27\\x0c\\xed\\xb6\\xc2\\xc4\\x2d\\xbf\\x9b\\xe8\\x50\\xe7\\x71\\x92\\xfd\\xc6\\x5c\\xfd\\x36\\x83\\x4b\\xe9\\x88\\xdb\\xe9\\xa9\\x3e\\x25\\x18\\xc1\\x38\\xb0\\x90\\xfb\\x9d\\xa8\\x27\\xcb\\x1c\\x91\\xc8\\xfe\\x52\\xfe\\x7c\\x57\\xf7\"},\n{{0x99,0xa9,0x95,0x31,0xc3,0xcd,0x6e,0x3e,0x9c,0x90,0x0a,0x9e,0xeb,0x26,0x26,0x7e,0x72,0xf0,0x9d,0x11,0xb6,0x51,0xa8,0x97,0xeb,0xb7,0x9b,0xe0,0x16,0xf6,0x4c,0x6e,},{0x9b,0xf9,0xf8,0xb4,0x8a,0x27,0x28,0xe0,0x26,0x08,0xfc,0x19,0x89,0x9d,0x21,0x96,0x56,0x83,0x9d,0x1c,0xc1,0xe9,0xa8,0x98,0x4d,0xf6,0x74,0xec,0x26,0x66,0x2f,0x41,},{0x0e,0x89,0xda,0x5d,0x94,0x9c,0xf2,0xbf,0x40,0xc7,0xe1,0x7c,0x2d,0x0f,0x9c,0xea,0xbc,0x88,0xa0,0x92,0xeb,0x4d,0x49,0xcf,0xbf,0xea,0xb7,0xc8,0xbf,0xf4,0x32,0x45,0xc6,0x7b,0x9e,0x2e,0x92,0xf9,0xbc,0xb9,0xb3,0x4b,0x3f,0xcf,0x8b,0x01,0xfa,0x2e,0xa7,0xa9,0x64,0x9f,0x81,0x4c,0x3a,0xa9,0x8b,0x3d,0xd0,0x45,0x40,0xc3,0x1d,0x09,},\"\\x7a\\x89\\xc0\\xc1\\x95\\x2f\\xdc\\x42\\x98\\xdc\\xae\\xa8\\x54\\xef\\xc1\\x34\\x65\\x6b\\xe1\\x47\\xe9\\xe8\\xe8\\x2f\\xc9\\xa4\\x49\\x05\\x9d\\x80\\x57\\x0f\\x75\\x67\\x6b\\x81\\xc4\\xa9\\x4f\\x76\\xa9\\x68\\x20\\x0c\\xde\\xb0\\x98\\x8c\\x73\\xf5\\x9a\\xfc\\x72\\xad\\x4c\\x31\\x03\\xe1\\x9f\\xe6\\x3b\\x7e\\x95\\xe1\\x40\\xb5\\xcb\\x2e\\xfc\\x7b\\x97\\xa6\\xff\\xbb\\x6c\\x29\\x8d\\xda\\xce\\x3b\\xe6\\xd2\\xed\\x3d\\x59\\x8b\\x8b\\xdf\\x0c\\x2f\\xe6\\xc9\\x76\\x02\\x14\\x2a\\x76\\xe9\\x78\\x51\\x4c\\x19\\x6c\\x1b\\x9a\\x88\\xef\\xdc\\x19\\x25\\xfc\\x50\\x61\\x55\\xcf\\xf9\\xa2\\xf2\\x1a\\xb6\\x34\\xe2\\xb9\\x3e\\x96\\x92\\x8a\\x5d\\x8f\\x7c\\xe4\\xcb\\x73\\x26\\xd9\\x68\\x94\\x69\\x24\\x2b\\xa9\\xc6\\xa0\\x1b\\x77\\x49\\x6b\\xad\\xef\\x87\\x57\\x8f\\x5a\\x17\\x28\\x4e\\x90\\x0a\\x72\\xdf\\x14\\x1c\\x61\\x99\\xb0\\xe7\\x1a\\xb5\\xda\\x43\\x75\\x03\\x76\\x17\\xec\\x61\\x96\\xd4\\xf4\\xe2\\x3a\\xe2\\x91\\x6a\\x72\\xd0\\xfc\\xe7\\x96\\x02\\x23\\x05\\xac\\x9f\\xbb\\xbb\\xe4\\x70\\x5b\\x34\\x0e\\x42\\xb7\\x8e\\x1c\\x02\\xbb\\x10\\x01\\x86\\x0c\\xdc\\xaf\\x71\\xed\\x89\\x25\\x5d\\xd5\\x6c\\xc0\\xb3\\x1c\\x59\\xd4\\x59\\x6d\\xce\\xf8\\x4e\\x22\\x23\\x4b\\xe5\\x62\\xbd\\x80\\x1e\\x94\\x11\\x1d\\x83\\xa7\\x80\\x64\\xc9\\x0f\\x9d\\x82\\xfc\\xe9\\x1f\\x68\\xab\\xb0\\x3c\\x73\\xb6\\xbd\\x8d\\x7e\\x02\\xd4\"},\n{{0xaa,0x58,0x40,0x3e,0x76,0x3b,0xac,0x40,0x5d,0xb0,0x65,0xeb,0x11,0xeb,0x6b,0xe3,0xe3,0xb6,0xcf,0x00,0xec,0x4a,0x22,0x2b,0x52,0xbf,0xf4,0xb6,0xe3,0xd1,0x56,0xac,},{0x16,0x7f,0x9b,0x9a,0x46,0x65,0xf9,0x3f,0x5d,0x7d,0x30,0x16,0xac,0xe6,0xfb,0xd1,0x34,0x20,0xb2,0xe5,0x1e,0x72,0xbd,0xe5,0x9e,0xed,0xf2,0x69,0x93,0xb6,0x6c,0xae,},{0x64,0xb5,0x98,0xca,0x5b,0x8f,0x9a,0xe7,0x42,0xe4,0x6e,0xe0,0xd8,0xc1,0xaa,0xf3,0x14,0x58,0xb5,0x0c,0x25,0xd2,0x67,0xa6,0x77,0xe4,0x4b,0xe5,0xb7,0x55,0xf1,0x4d,0x51,0x80,0x1a,0x30,0x39,0x9b,0xfc,0xc3,0x8d,0x14,0x07,0x1a,0xa0,0xae,0x93,0xda,0x82,0x5a,0x58,0x1a,0xb6,0xc2,0x07,0x25,0xa0,0xa9,0x10,0xb4,0x73,0x5d,0xfa,0x0b,},\"\\x3b\\xaa\\x09\\x98\\xff\\x02\\xb3\\x2b\\x90\\xb5\\x1f\\x9a\\x84\\x0c\\x7b\\x5c\\x58\\x70\\xcf\\xb1\\x81\\x0a\\x9b\\x0f\\x77\\xb5\\x59\\x09\\xd4\\x7a\\xd3\\x35\\x14\\x7a\\x99\\x1c\\x29\\xfb\\xeb\\xfc\\x59\\x2e\\x93\\x07\\x17\\x5c\\x19\\x64\\x12\\x9a\\x2d\\x5e\\xfc\\x62\\x15\\x80\\x74\\x53\\xbc\\xd7\\x26\\x96\\x97\\x81\\x22\\x2b\\xca\\xd1\\xc9\\x9a\\x49\\x74\\x8b\\x9e\\xe6\\x67\\xc4\\xd0\\xc8\\x28\\x89\\xe2\\xf5\\x00\\x64\\xc1\\x15\\xdb\\xd8\\xfb\\x48\\x3d\\x72\\xab\\x0c\\xca\\xdf\\x76\\xbd\\xdb\\x2d\\xc7\\x27\\xdb\\xc3\\xfa\\x5c\\x46\\x24\\xc2\\x83\\xd8\\x92\\x1c\\x8a\\xa4\\x42\\x51\\x10\\xdc\\xdd\\x69\\xc0\\x5e\\x5e\\xd5\\x9b\\x35\\x96\\x25\\xee\\xaa\\xec\\x1e\\x27\\xea\\xfe\\x9d\\x9a\\x5c\\xe7\\x36\\xc3\\xf9\\xc5\\x27\\xea\\x54\\x78\\x18\\xb9\\xbc\\xa6\\x81\\x1b\\xe4\\xcc\\x15\\x05\\x8a\\x6f\\x5b\\x68\\x33\\x03\\xb8\\x0c\\x90\\xc9\\x4a\\x83\\xb8\\xb1\\x58\\x69\\x71\\x3a\\x66\\xb1\\xe0\\xf6\\x56\\x33\\x1b\\x28\\x6d\\x1e\\xf7\\x69\\x88\\x34\\xab\\x3e\\x13\\x84\\x17\\xaa\\xd6\\xbb\\x3a\\xb3\\xbd\\x9f\\xc7\\x87\\x61\\xa4\\x82\\xdf\\xc6\\x54\\xf3\\xf8\\x62\\x8c\\x8d\\x9f\\xc1\\x60\\x18\\x89\\x8f\\x16\\x41\\xe8\\x62\\x2b\\xd2\\x72\\xe3\\x8d\\x41\\x70\\x6c\\xb9\\xce\\xbe\\x6e\\xe5\\xe1\\x73\\x57\\x6b\\xf6\\x1b\\xb1\\x18\\x8c\\xf2\\xf3\\x9c\\x62\\x22\\x0b\\xba\\x88\\xfc\\xb4\\xde\\x48\\x98\\xb2\\x5b\\x04\"},\n{{0x10,0x44,0xee,0x37,0x08,0xc0,0xb0,0xe9,0x09,0xa8,0xcb,0x2b,0xa2,0xcd,0x0a,0xf8,0xd2,0x8a,0x5d,0xe0,0x1d,0x96,0x2e,0x82,0x60,0x87,0xfb,0x23,0x2d,0xf7,0xb2,0xd2,},{0x46,0xd2,0x41,0xea,0x0c,0x70,0x2c,0x18,0x89,0xd4,0x46,0x55,0x82,0x46,0x29,0xb6,0x72,0x84,0xd4,0xe6,0x44,0xa4,0x8f,0xa4,0x54,0x55,0xd2,0x7a,0xc5,0xf6,0x25,0x29,},{0x7d,0x6b,0xed,0x7f,0x87,0xd0,0x90,0xab,0xe0,0x13,0xc3,0x1e,0x12,0x03,0x90,0x3b,0xac,0x9c,0x93,0x44,0x5d,0x06,0xc7,0xb5,0x3d,0x31,0xd1,0x5f,0x97,0x0d,0x88,0x64,0x7a,0x7e,0xd2,0xc3,0xa6,0x30,0x50,0xba,0x19,0xd6,0x80,0x43,0xaa,0xdd,0x18,0xbd,0x86,0x1d,0xe1,0xac,0x47,0x15,0xb8,0xe8,0x28,0xb2,0xb1,0x6f,0x8a,0x92,0xb0,0x01,},\"\\xb8\\xa4\\x45\\x45\\x5f\\xb6\\x6e\\x17\\xe3\\x14\\x3d\\x35\\x20\\x4c\\x9e\\xa9\\x34\\x74\\xee\\xbe\\xef\\x93\\x96\\x3e\\xe5\\xc1\\xd3\\x77\\xca\\x21\\x7a\\xcd\\x4c\\xa6\\x3e\\x57\\x55\\xda\\x08\\xfb\\xff\\xdb\\xd4\\x35\\x2b\\xf1\\x65\\x19\\x38\\x96\\xc8\\xd6\\xf7\\x6b\\xb4\\xcd\\x3b\\xc2\\xd3\\xa4\\x76\\xa4\\xe3\\x20\\x82\\x4a\\x12\\x10\\xce\\x74\\xd0\\x01\\x4d\\x74\\x7f\\x11\\x1e\\xec\\x31\\x0c\\x5c\\x89\\xed\\x4d\\x08\\x50\\xe8\\x11\\xf8\\x0a\\x8b\\xb2\\x8d\\xca\\xf6\\xf4\\x11\\xdf\\x83\\xe2\\xc1\\xdf\\xd9\\x0c\\x4a\\xd2\\x35\\x61\\x45\\x4e\\xb5\\xd7\\x56\\xb6\\x3b\\x4e\\xa7\\xf3\\x7d\\xc5\\xd4\\x66\\xc1\\x6e\\xf7\\x0d\\x11\\x19\\x0c\\x4f\\x53\\x16\\xfe\\x2a\\xa8\\x59\\x74\\x40\\xe8\\x8b\\xbe\\xba\\xeb\\x35\\xea\\x5f\\x04\\xf0\\x7b\\x03\\x39\\x26\\x41\\x58\\xef\\x90\\x9a\\xd5\\x16\\x3b\\xfc\\x24\\x8c\\xd7\\x24\\x13\\x3e\\x27\\x4f\\x81\\x26\\x95\\xf2\\x90\\xe5\\x71\\x76\\xa9\\x6b\\x93\\x93\\xd0\\x7b\\xb3\\x10\\x29\\x9f\\x5d\\x2a\\x6b\\x6d\\xd1\\xda\\xbc\\xb5\\x1b\\xf2\\x9c\\x5a\\xfa\\x7e\\xbb\\x07\\x01\\xc6\\xc8\\x47\\x67\\xac\\x13\\x77\\x93\\x09\\x1f\\xe0\\xed\\x6e\\x47\\xd7\\x80\\x62\\x8a\\x32\\xc8\\x4f\\x83\\xe0\\x0e\\x9c\\x16\\x74\\x2a\\x52\\x3e\\xcb\\x63\\xc2\\x4f\\x4a\\x33\\x8e\\xd2\\x99\\xa0\\x61\\x94\\x92\\x4f\\x44\\xc5\\xa5\\xd3\\xc9\\x37\\xff\\x9b\\x09\\x45\\x98\\x2a\\xd2\\x4a\\x2d\\x1c\\x79\"},\n{{0x95,0xdd,0x1a,0x5e,0x65,0x8f,0xa6,0xc8,0xd4,0x25,0x07,0xb3,0xe5,0xb8,0xed,0xb5,0xba,0xec,0xa6,0x2d,0xeb,0x00,0xfc,0x5d,0x4d,0xca,0x8e,0x1a,0xb5,0x83,0x5e,0x59,},{0x3a,0x53,0x23,0xdd,0x1e,0x07,0xf3,0x23,0xbb,0x6d,0x83,0xe9,0xc2,0xdb,0x92,0xa2,0x9f,0x62,0xe2,0xe0,0x03,0xee,0x0d,0xea,0xcd,0x7e,0x2e,0x4e,0x03,0x0d,0x8d,0x27,},{0xd0,0x2a,0x75,0x23,0xdc,0xbd,0x29,0x57,0x6b,0xa8,0x09,0xb5,0x31,0x03,0x77,0x74,0xdf,0x41,0x73,0x4a,0x41,0x17,0x58,0x13,0x11,0x9c,0x6a,0x6a,0x78,0x8c,0xd9,0xb8,0xad,0x78,0x08,0x65,0x67,0x86,0x67,0x69,0x9a,0xe6,0x6d,0x01,0x09,0x19,0xa9,0x66,0xa0,0x51,0xc0,0x81,0x63,0xdf,0x67,0xa9,0x77,0xee,0x6e,0x22,0x0d,0x0d,0xc3,0x0f,},\"\\x9b\\x7a\\xfd\\x48\\xc4\\x74\\x60\\x4c\\x26\\x36\\x75\\x31\\x55\\x68\\x40\\xc3\\x88\\x66\\x8b\\x0f\\x38\\x40\\x06\\x3d\\xfc\\x98\\x69\\xad\\x5b\\x90\\x12\\x74\\xb9\\x31\\x29\\x3d\\x04\\xf3\\xc8\\xe8\\xf7\\xf8\\xea\\xb8\\x15\\xa6\\x41\\xd7\\xc3\\x51\\x28\\x4e\\x8b\\xb0\\x43\\x7a\\xc5\\x51\\xbb\\x29\\x43\\x89\\x64\\xe6\\xa7\\xc7\\xba\\x77\\x23\\x44\\xb3\\x33\\xf9\\xed\\xa5\\xa7\\x75\\x68\\xc8\\x93\\x1d\\xdc\\xaf\\x21\\xe3\\x2e\\x07\\xb1\\x0b\\xf4\\x82\\x0f\\xb8\\x59\\xbc\\xf8\\x7b\\x81\\xc4\\xbf\\xf4\\x26\\xf2\\x4a\\x4d\\x46\\x8f\\x2e\\x9a\\xed\\xa8\\xf1\\x7d\\x93\\x97\\x09\\x97\\x0d\\xb1\\x1d\\xf7\\x62\\x47\\xe9\\x8a\\x39\\xeb\\x8b\\x38\\xf5\\x94\\x9f\\x34\\x9f\\x2a\\xe0\\x5a\\xb4\\x8c\\x01\\x85\\x17\\xc4\\x8f\\xa0\\x20\\x5d\\xc7\\xf1\\x56\\x64\\x53\\xe1\\x05\\xe4\\x8c\\x52\\xeb\\x45\\x5c\\x0c\\x40\\x80\\x2f\\x79\\x7b\\x3e\\xef\\xb1\\xe2\\xf3\\xb1\\xf8\\x43\\x15\\xae\\xd5\\xb0\\x71\\x1c\\x64\\x99\\xa6\\x91\\xb7\\x4b\\x91\\xf1\\x2e\\xf7\\x0f\\x76\\xc4\\xc0\\x5c\\x1a\\xa1\\xa9\\x93\\xe2\\xf3\\xe5\\x28\\xab\\x34\\x3d\\xd2\\x36\\x81\\x62\\xf4\\x03\\x6a\\x61\\xa1\\x3a\\x88\\x04\\x5d\\xcd\\xef\\xa8\\x5d\\x68\\x53\\x22\\x75\\xbc\\xf5\\xb8\\xf5\\xf0\\x0e\\xfd\\xea\\x99\\x9a\\x95\\x78\\x31\\x75\\xd9\\xee\\x95\\xa9\\x25\\xd4\\x8a\\x54\\x49\\x34\\xd8\\xc6\\xb2\\x62\\x22\\x5b\\x6e\\xbe\\xa3\\x54\\x15\\xdd\\x44\\xdf\\x1f\"},\n{{0x1a,0xbc,0x0b,0x9a,0xa0,0x1d,0xc5,0x7c,0xa5,0x3e,0xfe,0x73,0x80,0x96,0x2b,0x1a,0x88,0xd5,0x0a,0x96,0x4f,0x5c,0xd9,0x86,0x40,0x98,0x2c,0x74,0x39,0x3f,0x29,0x26,},{0x8d,0x4f,0xd1,0x43,0x94,0xd7,0xc1,0x40,0x57,0x00,0x30,0x69,0x83,0xfb,0xf7,0x6e,0xa9,0xf1,0x71,0xb1,0x5a,0x6b,0x56,0x61,0x2a,0x1f,0xeb,0x1c,0xbd,0xae,0x5d,0xd5,},{0xf7,0x38,0xaf,0x2d,0x3e,0x29,0x0b,0x3d,0x23,0xd9,0xaf,0xf7,0x41,0x4b,0xfc,0x5f,0xfa,0x47,0x23,0x5d,0xc0,0x53,0x68,0x7a,0x8b,0xa5,0xc8,0x54,0x1b,0x85,0x11,0xf7,0x81,0x56,0x6c,0xda,0xa1,0x30,0xe0,0x67,0x7d,0xb5,0x5f,0xa8,0xbe,0x9d,0x81,0xa0,0x92,0xcb,0x58,0x92,0x3a,0x86,0x28,0x49,0x4d,0x2f,0x62,0xd9,0x5c,0x16,0x71,0x00,},\"\\xda\\x2d\\xd9\\x40\\xd5\\xe1\\xdb\\x6e\\x80\\xbf\\x7e\\x2b\\x78\\x2e\\x7e\\x74\\x5c\\xd4\\xfd\\x25\\x2e\\x98\\x15\\x17\\x97\\x58\\x87\\xdd\\x05\\xac\\x77\\xed\\x83\\x7d\\x08\\x29\\x61\\x57\\x5e\\xfe\\xdf\\x30\\x1f\\xdf\\x24\\xb7\\x07\\x18\\xb9\\x91\\xb8\\xd9\\x2b\\xdd\\x2e\\x6b\\xee\\x17\\xc8\\xaa\\x4b\\xc6\\x94\\xa7\\x27\\xbc\\xfc\\x78\\xfd\\x85\\x19\\x5c\\x42\\xca\\xf8\\x83\\xa2\\xc3\\x8d\\x16\\x1c\\xad\\xd7\\x9c\\xfd\\xa9\\xa3\\x91\\x10\\xe1\\x26\\x4d\\x30\\xbd\\x4c\\x5c\\x4a\\x58\\x76\\x77\\x7f\\x23\\x3b\\x07\\x1b\\x1b\\x0b\\x40\\x89\\x35\\xf0\\x46\\x89\\x54\\xcc\\x74\\x4a\\xf8\\x06\\x3b\\x00\\x4e\\xde\\x56\\xcd\\x98\\x1c\\x4d\\xd5\\x60\\x8a\\xbf\\xfe\\xae\\xc9\\xe5\\x8f\\x3f\\xaf\\xaa\\x67\\x14\\x67\\x80\\x4b\\x7f\\xa2\\x55\\x8f\\x4f\\x95\\x17\\x42\\x01\\xf1\\x83\\xd8\\x0a\\x59\\x14\\x06\\x5f\\xed\\x53\\x11\\x5b\\x41\\xeb\\xc3\\x38\\xf7\\x8d\\xf0\\x50\\x05\\x3b\\x8a\\x4e\\x75\\xea\\x7c\\x6f\\xdc\\x35\\x4d\\xad\\x27\\xbf\\xd8\\xa2\\xe6\\x6f\\xcd\\x7a\\xe2\\xf5\\x87\\xd2\\x4b\\xe0\\xd4\\xa3\\x3d\\xa3\\x0a\\x22\\x0e\\x51\\xbc\\x05\\xfa\\x4e\\x41\\x2b\\x95\\x9f\\xd9\\x5d\\x89\\xea\\x6e\\xc0\\x16\\x25\\x16\\xc0\\x96\\xa9\\x43\\x3a\\x9e\\x7c\\xf5\\x99\\xc9\\x28\\xbd\\x53\\x05\\xc2\\x17\\x3b\\xf7\\x49\\x3e\\xd0\\xc1\\xc6\\x03\\xcd\\x03\\xf0\\x82\\xcc\\xe4\\x42\\x37\\xa7\\x9f\\xfd\\x8b\\xe9\\xa6\\x72\\xc2\\xeb\\xaa\"},\n{{0xcb,0xff,0xce,0x2c,0x9b,0xd3,0xe2,0x3e,0x40,0x6e,0x5f,0x66,0xe6,0x32,0xdc,0xfa,0x72,0x66,0x54,0xd2,0x9a,0x95,0x5c,0xec,0x98,0x31,0x73,0x23,0x5f,0xa3,0x59,0xd0,},{0x49,0x65,0x3e,0xdd,0x64,0xa5,0x5f,0x7c,0xd4,0x0e,0xaf,0x3f,0x8e,0x72,0xeb,0x96,0xdb,0xcd,0xee,0x39,0x8f,0x34,0x81,0x7f,0x2c,0x95,0x86,0x79,0x49,0x71,0x0b,0x14,},{0xe7,0xce,0xd4,0xfa,0x2a,0x7d,0xff,0x73,0xf1,0x06,0x8b,0xba,0xd0,0xec,0x9a,0x11,0x09,0x04,0x3c,0x97,0xa6,0x2e,0xff,0xa1,0x48,0x87,0x6f,0x09,0x69,0xed,0x4d,0xc6,0x08,0xe2,0x8b,0xce,0x79,0x7a,0xf3,0xb8,0x25,0x32,0xc9,0x4d,0xec,0x4d,0x68,0x11,0xb7,0xf5,0x63,0x67,0x91,0x29,0xfa,0xcf,0x17,0xbb,0x73,0xd6,0x93,0x75,0xeb,0x05,},\"\\x1f\\xfd\\xe6\\x82\\x6e\\x4f\\x0c\\x24\\xa7\\x96\\x1f\\x19\\x1e\\x74\\xcc\\x0b\\xbc\\x92\\x8e\\x3f\\x1a\\xec\\x3e\\xfa\\xb3\\x27\\x65\\xc2\\x50\\x1c\\xbc\\x16\\x20\\xe7\\xee\\x6f\\x61\\xfc\\xcf\\xb0\\x0c\\xfc\\xa9\\xfb\\x98\\x14\\x3b\\x52\\x9b\\xcc\\x8c\\x3d\\x0f\\xdf\\x89\\xee\\x7c\\x34\\x2f\\x10\\x18\\x15\\xfa\\xbf\\x7d\\xea\\xf9\\xf3\\x02\\xa2\\x88\\xfe\\x17\\x58\\x26\\xd5\\x90\\xd9\\x9e\\xe6\\xfd\\x92\\xda\\x74\\xf9\\x59\\x6b\\x78\\x3c\\x0e\\x7d\\x47\\xd7\\x11\\xa3\\x2f\\x39\\xea\\x41\\x65\\xe5\\x21\\x24\\x31\\x44\\x1b\\x49\\x8c\\x6b\\x70\\xdb\\x3b\\x09\\xd1\\xf4\\xe4\\xa1\\x4a\\x6b\\xae\\x39\\xda\\x50\\x88\\xbb\\x85\\xb3\\x28\\x5c\\xe9\\xdf\\x2f\\x90\\x68\\x1a\\xf2\\xc7\\x4d\\xec\\xe4\\x39\\xae\\xb9\\x1e\\x1c\\x1b\\x07\\x12\\xed\\xdb\\xee\\x8d\\x72\\x56\\x98\\x28\\xf3\\x7c\\xb7\\x20\\xc5\\x09\\xd0\\x2a\\xec\\x47\\x60\\x70\\x48\\x4e\\x9b\\x16\\xec\\x71\\x79\\x94\\x7a\\xc9\\x6c\\xaf\\x0e\\x1b\\xe8\\xb6\\xb7\\x4f\\x37\\x2d\\x72\\x35\\xfe\\x6e\\x39\\x99\\xdf\\x73\\x3b\\xcc\\xd4\\x82\\xdf\\xe2\\xe6\\x31\\xf5\\x6b\\x58\\x26\\x67\\xdc\\xe5\\xe3\\x12\\x17\\x63\\xad\\xfa\\xcf\\x3b\\x18\\xcf\\x20\\x95\\xf7\\x39\\x4d\\xee\\x49\\x27\\xfc\\x2b\\xea\\x6b\\x58\\x24\\xd9\\x0c\\xd5\\x9e\\x85\\x4e\\xc5\\x87\\x2b\\x45\\x51\\xb0\\x2e\\xfa\\xba\\x5a\\xd5\\x4a\\x9b\\x7a\\x8f\\x6d\\xe5\\xd7\\xcd\\xa5\\x82\\x5b\\x32\\x5b\\x07\\x6d\\xed\"},\n{{0x9f,0x91,0x23,0x14,0x97,0x48,0x4c,0xab,0x39,0xb9,0xe2,0x0f,0x86,0x11,0x81,0xd3,0x97,0x90,0x85,0x77,0xbb,0xb2,0x96,0x82,0x42,0xd0,0x71,0xbc,0xa4,0x81,0x3f,0xfb,},{0x88,0x24,0xbc,0x6c,0xd6,0xa6,0xf1,0x5a,0x5f,0x41,0x66,0x8f,0x2b,0x3b,0xae,0x8f,0xc4,0x96,0x73,0x83,0x07,0x8d,0x08,0xb5,0x1d,0x6d,0x1b,0x2b,0x93,0xa1,0x07,0x1f,},{0x0a,0x1c,0x70,0x6d,0xd8,0xa1,0x30,0x77,0xab,0x18,0x38,0x6c,0x65,0xfa,0x97,0xcf,0x9d,0xfc,0x43,0x54,0x2d,0x18,0x46,0xec,0xbd,0xde,0xb7,0xb3,0xc9,0x3f,0x3c,0x66,0xf3,0xcc,0xd0,0x44,0x7a,0xac,0xdd,0x4d,0xad,0x8f,0xbf,0x73,0x6c,0x4f,0xf9,0xdb,0xdb,0x62,0xbf,0xc1,0x4d,0x88,0x83,0xe3,0x85,0xbc,0xe9,0xba,0xc5,0x6a,0x35,0x0c,},\"\\x21\\xd4\\xfb\\xc9\\x81\\x63\\xc3\\xfb\\x6e\\x09\\xf7\\x75\\xc2\\xab\\x7b\\x18\\xb1\\x87\\x92\\x34\\x0b\\xaf\\xed\\xac\\xb4\\x96\\x05\\x62\\x2e\\x3c\\x08\\xaa\\x3b\\x2b\\x8d\\x0e\\x09\\x02\\xf3\\x61\\xaa\\x1c\\x0f\\x65\\x2e\\x27\\x32\\xb1\\x0a\\x0c\\x5c\\x6a\\x05\\x09\\x89\\x96\\xb5\\x88\\x26\\x7c\\xc8\\x95\\x1a\\x78\\xb5\\xd4\\x31\\xe7\\x22\\x2b\\xbb\\x50\\x8e\\xee\\xf1\\xb5\\xe8\\xb8\\xd0\\x1d\\x39\\x91\\xe1\\x8d\\xdd\\xc6\\xca\\x8d\\x22\\x2e\\xf1\\x77\\xce\\x62\\x93\\x8d\\x18\\x10\\xee\\xcf\\x06\\xf4\\x73\\x8b\\x28\\xf4\\x40\\x94\\x6c\\xca\\xd2\\xa1\\x2e\\x39\\xd3\\x86\\x11\\xbe\\xd3\\xa3\\x9f\\x93\\x41\\x9a\\x17\\x9e\\xc2\\xb1\\xb5\\x2d\\x5f\\xe5\\xc8\\x0c\\x23\\xb8\\x4d\\x88\\x03\\x75\\x5f\\x51\\x46\\x09\\x2c\\xc1\\x99\\xb4\\xbd\\xce\\xa5\\xbc\\xf2\\x03\\x7b\\xd5\\x3f\\xf6\\x34\\x66\\x94\\x15\\x5f\\x02\\x7d\\x8c\\xe2\\xba\\xff\\xe3\\x0a\\x56\\x66\\x59\\x6c\\x00\\x78\\x3a\\xae\\xad\\xe9\\xc7\\x7f\\xc8\\x63\\x79\\x42\\xec\\xe0\\x17\\xd6\\x48\\x4c\\x28\\x99\\xb1\\x91\\x8d\\x3a\\x48\\x0b\\xd5\\x15\\x76\\x78\\xd4\\x77\\x2d\\x27\\x1f\\x9b\\x99\\x76\\x8e\\xe1\\xbc\\xc4\\x6b\\x24\\x89\\xae\\x87\\xcd\\x03\\x0f\\x47\\xd1\\x33\\x3c\\x76\\x72\\xcb\\x90\\x2c\\xb4\\xf5\\xfe\\x74\\x6e\\x85\\x3d\\xe5\\x79\\x40\\xba\\x22\\x64\\xd3\\xe6\\x29\\x64\\x4d\\x65\\x3a\\x5b\\x7a\\xf7\\x8c\\xe6\\x4a\\x99\\x3f\\x36\\x25\\x0f\\x8c\\xb7\\xcb\\x45\"},\n{{0x1e,0x2b,0xd5,0x48,0x7c,0x5f,0x5c,0xed,0x46,0x1f,0x60,0x4d,0xcc,0xb4,0xe7,0x8e,0xb9,0x16,0x08,0xf0,0xb8,0x21,0xf5,0xaf,0xc4,0xe3,0xe5,0x34,0xf7,0x96,0x03,0x92,},{0xef,0x82,0x54,0x75,0xcf,0x20,0x51,0xa2,0x01,0x7a,0xe5,0x32,0xf0,0x77,0xd9,0x67,0x74,0x34,0x7d,0x27,0x67,0xea,0x7b,0x45,0xf9,0xc1,0xb8,0x60,0xab,0x99,0x35,0x06,},{0x4d,0x33,0xc9,0x6a,0x2e,0x3a,0x5d,0xb7,0x39,0x1a,0xdf,0x65,0xc1,0xcc,0x35,0x65,0xfe,0x76,0xee,0xaf,0xd0,0xb5,0xc7,0xab,0xb0,0xb4,0x92,0xa0,0xb5,0x1e,0x1f,0xa3,0x36,0x39,0x94,0x6a,0x24,0x3b,0x2d,0xde,0xf3,0x57,0x55,0x22,0x98,0xce,0x0a,0xa9,0x5e,0xac,0x6f,0xbf,0xe6,0x60,0x98,0x82,0x71,0x87,0x7e,0xb2,0xa7,0xda,0x18,0x06,},\"\\x1d\\xbb\\xbb\\x13\\xcd\\xad\\x88\\x85\\x4b\\x80\\x9c\\xed\\xed\\x27\\x33\\x43\\xd3\\x06\\xa8\\xde\\xab\\xf3\\xff\\x02\\xc9\\xce\\xc6\\xf0\\x02\\xb8\\xe9\\xe1\\x0e\\xf5\\xd1\\xb0\\xf5\\x71\\x1f\\x33\\x26\\x7a\\xa9\\x1c\\x17\\x1b\\x61\\xe9\\x60\\xf7\\x40\\x45\\x7b\\x81\\xd7\\x51\\xa4\\x73\\xf4\\x4f\\x75\\x0a\\x08\\x0c\\xab\\x80\\xaf\\x7c\\xcc\\xa7\\xdf\\xfc\\xfa\\xc9\\xee\\x4c\\x39\\xdc\\x85\\xcb\\xdf\\x51\\x25\\x9c\\xcd\\x34\\x70\\xd9\\xba\\xd3\\xad\\x30\\xf4\\xee\\x5d\\xbd\\x4f\\xac\\x6b\\xd5\\xc6\\xc4\\xdf\\x73\\x11\\xa4\\x70\\x04\\x46\\x95\\xa7\\xe1\\xa7\\xe1\\x85\\x72\\x20\\x75\\x88\\xaf\\xa5\\x7e\\xeb\\xcd\\x4d\\x57\\x5b\\x6d\\x42\\x44\\x57\\xee\\x92\\x46\\x5c\\xe1\\x86\\x3e\\x3c\\x67\\x7c\\xf8\\x75\\xfd\\xb9\\x8d\\x40\\x78\\xeb\\xe7\\x14\\x42\\x60\\x80\\x70\\x52\\x57\\x71\\x44\\xcb\\x8e\\x03\\x59\\xaa\\x42\\xad\\x15\\x5d\\x79\\xda\\xe3\\xde\\xb9\\x9c\\x46\\x32\\xc1\\x91\\xc7\\x99\\xcb\\xfe\\x58\\x7d\\x95\\x47\\x87\\x06\\x8d\\x66\\x3b\\xdf\\xc0\\xfa\\xb1\\x33\\x4f\\x18\\x76\\xbf\\x49\\x8c\\x4d\\xb5\\xc5\\x3d\\xb7\\xb0\\x20\\x4e\\xd5\\xa5\\x21\\xc6\\x2f\\x09\\xea\\xca\\x8d\\x01\\x89\\xf3\\xb3\\x94\\x14\\x3f\\x29\\xc4\\x21\\xcb\\x5c\\x8d\\x07\\xbd\\x75\\x1b\\xaf\\x4c\\xbe\\x3b\\xf4\\xbe\\x17\\x01\\xdf\\x4b\\x22\\x07\\xdf\\xb2\\x90\\x4d\\x84\\xf4\\xdb\\xda\\x51\\xcb\\xa5\\x76\\xd5\\xa5\\xbb\\x16\\xef\\xe6\\x98\\xed\\xd6\\x08\"},\n{{0xf7,0x8d,0xb1,0x4d,0x6d,0x1a,0x64,0x3d,0xd7,0x73,0x5b,0xaf,0x26,0x35,0x32,0x12,0x44,0xe7,0xec,0x8c,0xa7,0x2c,0x5c,0x38,0xc9,0x8c,0x80,0x9d,0xb9,0xcb,0x5a,0x55,},{0x54,0x14,0xf7,0x5f,0x52,0xf3,0x86,0x4a,0xfb,0x0c,0x79,0xc2,0xc5,0xc1,0xd0,0x6b,0x4b,0xce,0x40,0x0f,0xbd,0xdf,0x17,0xfe,0x9c,0xfb,0x2a,0x8b,0xac,0x47,0xa0,0xdd,},{0xd7,0xcb,0xd4,0x18,0x1f,0x67,0x71,0x20,0x07,0xb7,0xf0,0xe1,0x84,0x52,0xe0,0xa0,0x24,0x46,0x4d,0x9d,0xc9,0xb5,0xff,0x9c,0xf6,0x69,0xd1,0xb9,0x11,0x69,0xd7,0x57,0x32,0x62,0xf8,0x33,0x36,0xb9,0x7c,0x86,0x1b,0xfa,0xb3,0xfc,0xf6,0x69,0x22,0x3c,0xe8,0xca,0xf3,0x19,0xf2,0x1d,0x23,0xf1,0xfa,0x33,0x1a,0x2d,0x89,0xb6,0xca,0x0b,},\"\\x05\\xca\\xf1\\xb8\\xed\\xc3\\xb1\\x73\\xfb\\xc1\\xed\\x29\\xb9\\x5e\\x2b\\xf0\\x6d\\x81\\x4b\\xa2\\x40\\x7d\\x4b\\x31\\xc7\\x28\\xd0\\x4e\\xc2\\x73\\xd2\\x53\\x94\\x42\\x3a\\xc7\\xd4\\xff\\xf2\\xca\\x36\\xee\\x90\\x27\\x30\\x93\\xc7\\x56\\xe2\\xbd\\x13\\xc9\\x6d\\x4a\\x3d\\xc7\\xf5\\xbe\\x17\\x59\\xfc\\xd3\\x28\\xeb\\x66\\xc5\\x88\\x2b\\x58\\xfa\\x45\\x88\\xe5\\xb2\\xa3\\x71\\x3a\\x41\\x54\\xa2\\x34\\x0d\\x0b\\x06\\xad\\x01\\x96\\x01\\xb0\\xe0\\x28\\xe4\\x97\\xf8\\x98\\x25\\x6b\\x02\\x8a\\xf9\\x5c\\xd8\\x16\\x8d\\xf5\\xe5\\x8a\\x57\\xcd\\x1e\\xbf\\xc0\\xa0\\xc9\\x1c\\xed\\x61\\xdb\\xb4\\x80\\xac\\xa7\\xdf\\x8d\\xca\\x91\\xeb\\x16\\xe9\\x80\\x07\\xcd\\x2c\\xd1\\xa2\\x04\\x5b\\x0e\\x44\\x77\\xd1\\x2d\\x5a\\x40\\x72\\xf3\\x65\\x42\\x65\\x67\\xc9\\xd6\\x15\\x77\\xf3\\x48\\x5c\\x8f\\x46\\x60\\x5e\\x7f\\x47\\x5e\\xf0\\x4a\\x39\\x48\\xf6\\x0d\\xba\\x8c\\x55\\x08\\xd1\\x4b\\xfd\\xdb\\x9b\\x11\\xdd\\x04\\x4e\\xf2\\xd8\\x4c\\x16\\xb9\\xa9\\x03\\x8d\\x8e\\x78\\xed\\xa4\\x3b\\x91\\x29\\x7d\\xf3\\x5f\\x43\\x61\\xa3\\x83\\xb4\\x1d\\x49\\x67\\x7a\\x68\\x7d\\x5b\\x34\\x4a\\xd1\\xab\\x0f\\xc7\\x30\\x17\\xb3\\xbe\\xbf\\x32\\x30\\x6f\\xb3\\xfd\\x7b\\x3d\\x50\\x71\\xf3\\xab\\x5f\\x6e\\x49\\xaa\\x15\\x54\\x0c\\xad\\x65\\x03\\xbe\\xa7\\x78\\x4c\\xf9\\x42\\x18\\x01\\xce\\x13\\x85\\x83\\x98\\x93\\x36\\x2a\\x97\\xfa\\xe1\\x21\\x30\\x0d\\x67\\x83\\xaf\\x0f\"},\n{{0x7d,0xfa,0x32,0x8e,0x90,0xa1,0xb8,0x49,0xc2,0x19,0xe3,0xda,0x83,0x2d,0xf9,0xed,0x77,0x44,0x82,0x34,0xf0,0xd8,0x9e,0xa5,0xd1,0x7a,0x3d,0x64,0xe7,0x88,0x3d,0xaf,},{0xe3,0x0c,0xe6,0xfd,0x5f,0x58,0x00,0x38,0x9a,0x70,0xcd,0x11,0x73,0x64,0xf5,0x99,0x45,0xaf,0xb1,0x80,0xf2,0x29,0x92,0x73,0x60,0xb0,0x6b,0x48,0x35,0xf8,0xdc,0x91,},{0x1c,0x61,0xd5,0x3b,0x87,0x2f,0x8c,0xde,0x59,0x86,0x09,0x68,0x2c,0x79,0xf6,0xc5,0xdf,0x00,0x7c,0x51,0x3a,0x71,0xcf,0xb3,0xa0,0x6d,0xcb,0x82,0xd8,0x5c,0x4b,0x00,0xcc,0xc4,0x0b,0x00,0xe5,0x9f,0x59,0x53,0x93,0x08,0x8b,0x4c,0xd0,0x43,0x28,0x55,0xc6,0x7a,0x20,0x7d,0xa7,0x1f,0x87,0xe7,0x2c,0x40,0x9b,0x3e,0x50,0x27,0x95,0x07,},\"\\xe5\\xe4\\x95\\xd6\\x63\\xf4\\x72\\x36\\x71\\x45\\x32\\x68\\x7a\\x24\\x30\\x8f\\x94\\x2c\\xa9\\xc3\\x3e\\x08\\x8f\\x7f\\x10\\x6a\\x5a\\x72\\x35\\x18\\xca\\xcb\\xbe\\xf4\\xa6\\x8c\\x93\\x9a\\x69\\x50\\xb2\\xdc\\x25\\x89\\xf8\\x2d\\x35\\x4e\\x57\\x52\\x72\\xd4\\x2b\\x13\\x83\\xd3\\x15\\xab\\x8a\\x20\\xaa\\x0c\\xdc\\x9d\\x4d\\xf6\\x78\\xab\\x3b\\x26\\x61\\x2b\\x5d\\xca\\x66\\xe7\\x1f\\x9f\\x3f\\xa7\\xd9\\xe7\\x31\\xdc\\x48\\x1e\\x2b\\xc7\\x12\\x7c\\xea\\x3b\\x62\\x03\\xca\\x6c\\xd8\\x16\\x2e\\x90\\x88\\x6a\\x73\\xdc\\x46\\xc8\\x3d\\xde\\xfc\\x4b\\x9e\\x2d\\x53\\xd2\\x9d\\xd3\\x87\\xc6\\x24\\xe0\\x8b\\xd8\\xd5\\x3b\\xe9\\x28\\xa4\\x0a\\x9a\\xa8\\xae\\x8b\\x1c\\x8d\\x0f\\xb6\\xa7\\xbd\\x6d\\xce\\x5f\\x62\\x31\\x5b\\x7a\\x21\\x81\\xf6\\x27\\xf2\\x56\\xbb\\xe7\\xe2\\xa9\\x5b\\xf4\\x64\\xe6\\x13\\x22\\x04\\xc1\\x74\\x20\\x96\\x29\\x84\\x02\\x35\\xb2\\xc3\\x99\\x13\\x30\\x1a\\x4b\\x40\\x32\\x5d\\x11\\x8d\\x38\\x4b\\xc7\\xac\\x02\\x8c\\xd4\\xf1\\x27\\x02\\xe1\\x61\\x19\\x1b\\x14\\x9e\\x42\\x09\\x05\\x8a\\x55\\x12\\x2b\\xbb\\x8b\\x22\\xb2\\x46\\x83\\xba\\x4f\\x8e\\x2e\\x6c\\xcf\\xc0\\x8d\\xc8\\xc8\\xb1\\xbc\\xfb\\x6d\\x60\\xbd\\x8f\\x06\\x21\\x96\\x93\\x3d\\xf3\\x19\\xab\\x16\\x90\\x6d\\x08\\x57\\x30\\xeb\\xa1\\x72\\x0d\\x4b\\x02\\xc6\\x7d\\xaf\\x38\\xcc\\xe6\\xab\\xa3\\x8e\\x25\\xd6\\x8e\\xf9\\x5b\\x2f\\x52\\x19\\x13\\xa1\\xd7\\x7d\\x5e\\xb6\\x50\"},\n{{0x6c,0xe1,0x3d,0x3c,0x2e,0xc7,0x1f,0xed,0x83,0x13,0x1a,0x69,0xd5,0xd0,0x30,0x31,0x4a,0xb4,0x9e,0x65,0x65,0xef,0x68,0x16,0x3f,0xff,0x09,0xac,0x5d,0x9b,0x47,0xe7,},{0x9c,0x7b,0x11,0x18,0xfa,0xb9,0x1e,0x0e,0x7b,0x19,0x2a,0x23,0xd9,0x5f,0xb8,0x77,0xcb,0x79,0x36,0xcc,0x6c,0x8a,0x33,0x05,0x92,0xf4,0x8e,0x67,0x84,0xed,0xc2,0x92,},{0x60,0x8b,0x2b,0xf6,0xf6,0xda,0x05,0xc2,0xac,0x5b,0xbf,0xd7,0x95,0xa2,0xac,0x32,0xc7,0x9c,0x74,0x15,0x3f,0x94,0x31,0xde,0xa5,0x97,0x68,0xff,0x4c,0x22,0x5e,0x3b,0x69,0x3b,0x64,0x5a,0x50,0x67,0x66,0xb8,0x60,0x85,0x0e,0xe9,0x7e,0xa4,0x30,0x32,0xb0,0x5b,0x69,0xe5,0x67,0x67,0xe8,0xeb,0x9d,0x19,0x18,0xdf,0x9a,0xfb,0xa8,0x05,},\"\\x10\\xbb\\xc3\\x11\\xeb\\x2a\\x76\\x5e\\x01\\x67\\xff\\x37\\x61\\x8f\\xf7\\x0e\\x13\\xf0\\x2d\\x7b\\x06\\x17\\xae\\x4a\\xc0\\x6b\\xef\\xbb\\xe1\\x49\\xc9\\x72\\xa9\\x94\\xf6\\x80\\xca\\x4d\\xc9\\xa9\\x2e\\xc7\\xef\\xa5\\x39\\x97\\xfa\\xd3\\x56\\xb9\\xff\\x4e\\xbd\\xee\\x62\\x95\\x41\\xd1\\xf4\\xde\\xa6\\x2e\\xd0\\xd2\\x49\\x4f\\x9c\\xcf\\xdf\\x07\\xa9\\x31\\x04\\x91\\xf6\\x1c\\x4b\\x3e\\x27\\x00\\xb4\\xa3\\xc6\\x68\\xd6\\x78\\x32\\x9a\\x38\\xc2\\xef\\xf9\\xd8\\xcb\\xa4\\x31\\xfb\\x95\\x9e\\x7f\\x76\\x55\\xbd\\x0f\\xbd\\x77\\xd5\\x3b\\xbb\\xc2\\xeb\\x8d\\xc5\\x1d\\xd7\\x18\\xed\\x98\\x72\\x8a\\x18\\x16\\x86\\xbe\\x12\\x2b\\x84\\x4d\\x3d\\xa3\\x31\\xe3\\x29\\xd3\\x95\\x9b\\x59\\x23\\xf7\\x73\\x43\\x25\\xa0\\x21\\x02\\x6e\\x27\\x54\\xe1\\x7a\\x15\\x10\\x8b\\xe8\\x01\\x46\\x5a\\xd9\\x58\\xdb\\xcf\\x21\\xdf\\x89\\x0c\\xfe\\x5d\\x5b\\x88\\x3c\\xa4\\x3c\\x61\\xce\\xdc\\xcb\\xdb\\x58\\xb8\\x49\\xea\\x75\\x37\\x4f\\x1e\\x91\\x8e\\x80\\x3e\\x57\\x7a\\x5d\\xc7\\xa1\\xc1\\x79\\x36\\xec\\xcf\\xcd\\x34\\x81\\xbd\\x2b\\x1e\\xb0\\x75\\xb8\\x32\\x37\\xca\\x6f\\x3c\\x07\\xc1\\x9e\\x9a\\xf9\\x73\\x12\\x67\\xbe\\x82\\xd4\\x89\\x8e\\xee\\x96\\xeb\\xc9\\x00\\xd4\\x8b\\x05\\x9d\\x51\\xb0\\xdd\\x41\\x5b\\x1c\\x89\\x06\\x60\\xa8\\x8d\\x25\\xf5\\xc5\\xf3\\x5d\\x8e\\x45\\xe5\\x23\\xe0\\xce\\x33\\x36\\x92\\x3a\\xb4\\x36\\x70\\xe3\\x5c\\x50\\x57\\xd5\\x6c\\x75\\x88\\x76\"},\n{{0xd4,0x5e,0xe6,0x9a,0x5f,0x1a,0x7c,0xfd,0xd0,0x34,0x3f,0x87,0x70,0xd1,0xc6,0xbc,0x02,0x6f,0x06,0x7a,0x70,0xdb,0xe8,0x39,0xa8,0x6f,0x2a,0xa0,0x68,0xc3,0x3f,0x81,},{0xfc,0x8d,0x9f,0xb0,0xe4,0xf3,0x47,0x93,0x09,0x07,0x55,0xe0,0x32,0x80,0x96,0xe0,0x1e,0x28,0x1e,0xa3,0x51,0xb8,0xd9,0x5c,0xd9,0x11,0x6e,0x13,0x1a,0x5c,0xa5,0x4e,},{0x15,0x6c,0x51,0xc5,0xf9,0x15,0xd8,0x9b,0x8d,0x14,0x00,0x35,0x0f,0x8f,0x21,0x7a,0x5c,0x02,0xe2,0x62,0x9e,0xde,0x9f,0x4a,0x30,0xb6,0xe7,0x1d,0x1e,0xa7,0xa9,0x53,0xcc,0x6d,0xb3,0x1b,0xa5,0xc7,0x78,0xc2,0x69,0x92,0x0b,0x64,0x9f,0xb4,0x22,0x1c,0x6d,0x38,0xcf,0x2c,0xea,0x2a,0x7d,0xe3,0xad,0x42,0x3e,0x04,0xfa,0xaa,0x06,0x07,},\"\\xeb\\x5e\\xd8\\xab\\x79\\xcb\\xfe\\x61\\xc2\\x59\\x81\\xb9\\xd1\\xd6\\xb7\\x0f\\x10\\xb6\\x01\\x94\\xb4\\x16\\x1f\\xe1\\x7d\\x11\\xaf\\xf1\\x76\\x79\\x94\\xaa\\x08\\x13\\xe9\\xec\\xe2\\xf4\\xc5\\xd5\\x31\\xb9\\x9e\\x8a\\xdf\\x18\\x88\\xc3\\x0a\\x63\\x89\\x3e\\xb4\\x51\\xaa\\xf5\\x5a\\xcd\\x5a\\x52\\xad\\x8c\\x40\\x1f\\xaa\\x88\\xd6\\xea\\xcf\\x3e\\x49\\x47\\x05\\x66\\x11\\x4f\\xd0\\xc6\\xa2\\x74\\xe9\\x54\\x48\\x46\\xb0\\xae\\x9b\\xfa\\x12\\x4d\\x79\\x51\\xeb\\x26\\x71\\x5e\\x19\\x25\\x3f\\xf7\\xed\\xc8\\xa7\\x09\\x65\\x77\\x6f\\x23\\xce\\x46\\x03\\x1e\\x03\\x4a\\x20\\x07\\x23\\xba\\x3d\\x11\\xe1\\x1d\\x35\\x3d\\x7e\\x7c\\xd8\\x4a\\xed\\xe2\\x67\\xff\\x64\\xbe\\xd4\\x18\\xcb\\x9f\\x28\\xc6\\x1c\\xd0\\xf6\\x3b\\x6c\\xe2\\xec\\xae\\x14\\xb2\\x0b\\xc6\\xbd\\xae\\xd8\\xc4\\x28\\xba\\xd1\\x8b\\xe4\\xb7\\xd6\\x63\\x38\\x36\\x4a\\xcd\\x80\\x42\\xa8\\x25\\x6f\\x25\\x8a\\x69\\x96\\x9b\\x8d\\x3c\\xa2\\xea\\xb3\\xae\\xa3\\x70\\x6e\\x5f\\x21\\xc3\\xb1\\xef\\xcc\\x25\\x4a\\x82\\x4b\\xb4\\xe7\\xea\\x7a\\xba\\x88\\x27\\xc8\\xeb\\x82\\x78\\x6c\\x66\\x5a\\xa9\\x73\\x82\\x19\\x31\\xff\\x99\\x0a\\x63\\xfd\\x34\\xa7\\x4a\\x6d\\x8c\\x22\\xa8\\x82\\xb0\\xb9\\x35\\x15\\x2c\\xcb\\x36\\xfc\\xc7\\x6f\\x4e\\xca\\x65\\xd6\\x7c\\x86\\x80\\x94\\x2f\\x75\\xdf\\xad\\x07\\x34\\x39\\xc0\\x91\\x60\\x65\\xe8\\x38\\x77\\xf7\\xba\\x20\\x93\\x03\\xf3\\x35\\x48\\xd9\\xe4\\x0d\\x4a\\x6b\"},\n{{0x8a,0x76,0xea,0xab,0x3a,0x21,0xec,0x5a,0x97,0x5c,0x8b,0x9e,0x19,0x7a,0x98,0x9e,0x8e,0x03,0x08,0x99,0xeb,0x45,0xd7,0x89,0x68,0xd0,0xfb,0x69,0x7b,0x92,0xe4,0x6d,},{0x2d,0x9c,0x81,0x3d,0x2d,0x81,0xe2,0x73,0x0b,0x0d,0x17,0xd8,0x51,0x2b,0xb8,0xb5,0xd3,0x3f,0x43,0x6c,0xab,0xaa,0x13,0xe1,0x41,0xca,0x1c,0xb7,0x85,0x01,0x43,0x44,},{0xfc,0xee,0xcc,0xa4,0xb0,0x14,0xfe,0xcd,0x90,0xb9,0x21,0xb0,0xfa,0x3b,0x15,0xae,0xaa,0x4e,0x62,0xca,0xa1,0xfb,0x22,0x72,0x9c,0x70,0x26,0x92,0x32,0xc3,0x3c,0xef,0x0d,0x0a,0xee,0xa6,0x64,0x32,0xc1,0x28,0xaf,0xb9,0xa3,0x64,0x6b,0xc7,0xf0,0x3a,0x12,0x77,0x4d,0xa8,0x75,0x83,0x98,0xc2,0xa0,0xdc,0xce,0x0b,0xbb,0xf6,0x74,0x0a,},\"\\xc6\\xc7\\x8f\\x2e\\x20\\x80\\x46\\x1a\\xed\\x9f\\x12\\xb4\\xf7\\x7c\\x98\\x9b\\x19\\x71\\x67\\x80\\xfa\\xb6\\x0e\\x6e\\xcb\\x97\\x93\\xb4\\xbc\\x7e\\xd6\\x9e\\x5f\\x70\\xfa\\x6b\\xdb\\xa1\\x6e\\x9b\\xd3\\x19\\x49\\x69\\xee\\xa6\\x66\\x5a\\xbf\\xd6\\x30\\xde\\xee\\xfa\\x3d\\x71\\x7b\\x6d\\x25\\x4d\\xd2\\x4b\\xc9\\x7d\\xde\\x21\\xf0\\xf2\\x9f\\x9e\\xd3\\x4b\\x8b\\xd7\\xa0\\x13\\x38\\x0f\\x4f\\x82\\xc9\\x84\\xfd\\xbd\\x95\\xaf\\x98\\x05\\xb7\\x44\\xbc\\xd9\\x52\\xc5\\xa7\\x1f\\xbb\\x57\\xd1\\x1f\\x41\\x1c\\x18\\xcc\\x30\\xbc\\x35\\x94\\xf7\\xad\\x82\\x28\\xcb\\x60\\x99\\x39\\x4a\\x1b\\x6b\\x0a\\x81\\x85\\x81\\xbd\\xf9\\x3c\\xce\\x58\\xf3\\xa4\\xa2\\x3e\\x55\\xdb\\x3e\\x69\\xca\\x9d\\x60\\xcf\\xb3\\xa9\\x07\\xfb\\x68\\x32\\x9e\\x2f\\xfb\\x6c\\x65\\xf1\\xe8\\x28\\xd2\\x81\\x27\\x10\\x9c\\x9e\\x9f\\xb7\\x01\\x60\\xf2\\xef\\x82\\xa2\\xee\\x9f\\x9b\\xd1\\x70\\xc5\\x1e\\x13\\xfd\\x3f\\xc1\\x86\\x6b\\x22\\xc7\\x9f\\xe6\\xd5\\x10\\x12\\x17\\x97\\x9d\\xbe\\x27\\x24\\xdc\\xad\\x8a\\x9b\\xc6\\x9a\\xcc\\x42\\xc1\\x12\\xdc\\x69\\x7b\\xd2\\x71\\xee\\xa5\\x50\\xe9\\xe5\\x04\\x06\\xbf\\xd2\\x82\\x45\\xb8\\x3b\\x8f\\x01\\x2d\\x34\\xdb\\x6d\\xbd\\xd5\\x5a\\xe6\\xe5\\x75\\x74\\x5c\\x15\\x3d\\x6e\\x75\\x34\\x90\\x10\\x27\\xea\\xdc\\x2f\\xcc\\x33\\xa5\\x28\\x7d\\xdb\\xca\\x6d\\x3a\\xea\\xb8\\x97\\x22\\x94\\xdc\\x6c\\x71\\x2b\\x99\\x42\\x54\\x72\\x77\\x34\\x0e\\x7a\\xd1\\x9e\"},\n{{0x18,0xa8,0xf9,0x36,0x48,0xcd,0xcf,0x47,0x13,0x36,0x30,0xaf,0x1e,0x11,0xc0,0xce,0xea,0x3d,0xe0,0x73,0x27,0x31,0x4c,0x96,0x58,0x0d,0xf7,0x75,0x59,0x7d,0x7a,0x9c,},{0x29,0x12,0xf4,0x1a,0xb4,0xc8,0x7e,0x39,0x37,0xa0,0x33,0x31,0x80,0x2c,0xba,0x87,0x71,0x6b,0x4e,0xea,0x14,0xb9,0xfb,0xa6,0xf5,0x46,0xd0,0xac,0x2c,0x09,0x73,0xdf,},{0x3b,0x77,0x39,0x4c,0xd6,0x9f,0x8b,0x45,0xd0,0x0c,0xfe,0x3a,0x79,0xa7,0x90,0x06,0x28,0xa5,0x65,0x18,0xb3,0x79,0xed,0x8a,0x11,0x58,0x1f,0xc3,0xa3,0x76,0xe5,0xd6,0x68,0x07,0xdf,0x11,0xe7,0x09,0x04,0xf6,0x96,0xc7,0x41,0xd2,0x1d,0x13,0x93,0x10,0xfa,0x1b,0x89,0xa9,0x3b,0xdc,0x4d,0x2c,0x39,0x97,0x99,0x1f,0x52,0x20,0xee,0x00,},\"\\x59\\x20\\x93\\xac\\x7c\\xd6\\x71\\xd6\\x07\\x0b\\x00\\x27\\xed\\xac\\x1f\\xb0\\x15\\xcc\\x20\\x5d\\x78\\xbb\\x60\\x3f\\x37\\x8e\\xb9\\xf8\\xaa\\x38\\x8c\\xa8\\x30\\xdb\\x3c\\xb2\\x34\\x20\\xc7\\xe8\\x52\\xdb\\x0b\\x55\\x24\\x1e\\xb8\\x8a\\x02\\xcc\\x62\\x7a\\xa9\\x41\\x43\\xbe\\x43\\x9a\\xab\\x4b\\xf2\\x63\\x47\\x57\\x47\\x04\\x06\\xe8\\x42\\xf2\\x0e\\xb1\\x0f\\x07\\x00\\xe3\\xc2\\xda\\x36\\x4f\\x58\\x8a\\x80\\x00\\xf2\\x38\\x50\\xc1\\x2c\\xe9\\x76\\xf3\\x26\\xd2\\xdf\\x1b\\xac\\x13\\xe9\\x50\\x20\\xb4\\x12\\xb1\\x75\\xbf\\x74\\xbd\\x7e\\xbb\\xac\\xf3\\xae\\x55\\xc0\\xda\\xeb\\xb5\\xc0\\x10\\xbf\\x80\\x4f\\xee\\xe1\\xd7\\xd4\\x9f\\xae\\x05\\x0b\\xea\\x55\\x99\\x6f\\x53\\xcf\\xe1\\xf1\\x5a\\x0c\\xf2\\x07\\x27\\xdb\\x4e\\xe3\\x11\\xc2\\x60\\xba\\xd9\\x68\\x2d\\x7b\\x96\\x5e\\x27\\xa9\\x49\\x1f\\x47\\x1d\\x4a\\x47\\x3a\\xff\\x64\\x6c\\x7d\\x42\\x4d\\x5a\\x0b\\xdc\\xbb\\x8a\\x02\\x33\\xf4\\xb3\\x06\\x0d\\xd0\\x4c\\x98\\xec\\x98\\xdf\\xd0\\x5e\\xc7\\x24\\x78\\x84\\xe2\\xd8\\xe1\\x52\\xd4\\xae\\x52\\xb3\\xd5\\x86\\x5d\\x9e\\xfd\\x67\\x06\\xa6\\x0e\\x08\\x8e\\x1e\\x7c\\x9f\\x62\\x45\\x10\\xab\\xc7\\xa2\\x04\\x5a\\x2c\\x7a\\x75\\x88\\xe2\\x53\\x5e\\x73\\x19\\x1d\\xd5\\xcf\\x05\\x42\\x15\\x63\\xf5\\x56\\xa1\\x3e\\x82\\x36\\x67\\x03\\x43\\xcd\\x5b\\xa4\\xd4\\x66\\xe2\\x45\\xc4\\xee\\x3b\\x5a\\x41\\xe7\\x0c\\x9a\\x0f\\x5e\\x6e\\xa2\\xc5\\x59\\xeb\\xe6\\x1b\\xa8\\x1e\"},\n{{0x20,0x6c,0xd2,0xb8,0x11,0x4a,0xae,0x18,0x8d,0x81,0x86,0x2c,0xce,0xc4,0xcb,0x92,0xc4,0xef,0x5f,0xc7,0x8c,0x24,0x43,0x5a,0x19,0xf9,0xed,0x9b,0x8a,0x22,0xf4,0x7e,},{0x97,0xa6,0x7a,0xc2,0x81,0x1f,0x52,0x94,0x56,0xdf,0x53,0x27,0x37,0xd7,0x6b,0xed,0x7e,0x38,0x7d,0xa8,0x3b,0xd5,0x54,0x59,0x37,0x2f,0xdf,0xb2,0x7f,0xfa,0xcf,0xf3,},{0x73,0xa4,0x0d,0x9d,0xa0,0x8f,0xb9,0x8e,0xa2,0x5b,0x67,0xe7,0x21,0x55,0x7a,0x1a,0x51,0x22,0x52,0x94,0xd3,0x16,0xb5,0x31,0x49,0xaf,0x89,0x5f,0xa4,0xd6,0x3c,0xb4,0xa3,0xf5,0x6f,0x68,0x85,0x66,0xef,0x6d,0xa4,0x2f,0xd2,0x94,0x1d,0xff,0xa0,0x6d,0x49,0x7a,0xa9,0x02,0x16,0x5d,0x50,0x21,0x3a,0x62,0x14,0x11,0x62,0x99,0xa9,0x0c,},\"\\x48\\x0c\\x48\\x00\\xf6\\x8c\\x79\\xf5\\xdf\\xc0\\xc3\\x66\\x6c\\x0a\\xc4\\x29\\xb3\\x0f\\xe0\\xc5\\xfe\\x84\\x87\\x50\\xdb\\x21\\x71\\x38\\x0b\\x80\\xc8\\xe9\\xfe\\xc0\\xa0\\x54\\xb1\\x6d\\x08\\x67\\x4c\\xef\\xe2\\xf6\\x4e\\xc2\\x8b\\xb6\\xb0\\x59\\x6b\\x35\\x23\\x55\\x75\\xf1\\x89\\xbe\\xe2\\x59\\xac\\xa7\\x66\\xc2\\x22\\xac\\x0a\\x46\\xcf\\x2a\\xf7\\x57\\x74\\xda\\x4e\\x34\\xa0\\xb5\\x4f\\xc2\\xac\\x49\\xec\\x8b\\xed\\xf4\\x88\\x7c\\xd9\\xb7\\xbe\\x4f\\xdb\\x7f\\x68\\x69\\x02\\xdd\\xfa\\xb0\\x46\\x27\\xe2\\x6e\\xa2\\xdc\\x3d\\x97\\xd6\\x2a\\x4b\\x15\\x46\\x18\\x02\\x18\\xed\\x8f\\xa1\\x13\\x33\\x48\\x19\\xb5\\x27\\x5c\\xc5\\x4a\\xfd\\xee\\x44\\x30\\x90\\x08\\x59\\x65\\x07\\x97\\x16\\x75\\xe6\\xd8\\xb8\\xa8\\xed\\xec\\x47\\x18\\xf2\\xd4\\xbd\\x73\\x52\\x13\\xcb\\xbd\\x18\\x79\\x1f\\xaa\\x80\\x54\\x17\\x49\\x07\\xa7\\xac\\x17\\xd7\\x14\\x3a\\x47\\x57\\xe4\\x93\\xbe\\xee\\xc4\\x84\\x9d\\x0b\\x83\\x6f\\x18\\xbb\\x2b\\x3c\\x90\\x16\\xf2\\x5a\\xf4\\x7f\\xb9\\x61\\x99\\x25\\x17\\x20\\x54\\x9f\\x15\\xd1\\x49\\x50\\x3d\\x41\\x09\\x5e\\x25\\xf2\\x62\\x09\\xda\\xac\\x39\\x15\\x44\\x85\\xc3\\xde\\xd7\\xcb\\x1a\\x8c\\x3e\\x83\\xa5\\x2f\\x5a\\x06\\xec\\x09\\xcf\\x83\\xdf\\x00\\x72\\x6b\\x79\\x68\\xf6\\x4c\\x0c\\xba\\xe2\\x99\\x51\\x2f\\xb4\\x38\\x56\\x0f\\x04\\xb3\\xb6\\x44\\x34\\x6f\\x93\\x8a\\xc8\\xe9\\x04\\x86\\x61\\x4c\\xd8\\x44\\xb5\\x4e\\xae\\x07\\x8b\\xf6\\x78\\xb3\"},\n{{0x59,0xb1,0x44,0xa7,0x08,0xab,0xec,0x97,0x27,0x29,0xa0,0x4a,0x6c,0x13,0xf0,0xea,0x02,0x0b,0x4e,0xd4,0xa4,0x82,0x98,0x02,0x3a,0x56,0x89,0x58,0xc2,0x12,0x15,0xec,},{0xc4,0xf4,0x72,0x00,0x92,0xed,0x61,0x79,0xa0,0x82,0xae,0x4d,0x61,0x45,0xdf,0x37,0x71,0x78,0x6e,0xfc,0xa9,0xbd,0x9b,0xb7,0x9c,0x9f,0x66,0x67,0xd2,0xcb,0x56,0xb3,},{0x1a,0x80,0x85,0x0f,0xcb,0xd6,0xe6,0x43,0xc6,0xba,0x8e,0xb6,0x84,0xdb,0xef,0x7d,0xf0,0x15,0x15,0x92,0x28,0xda,0xed,0xcf,0x06,0x04,0x70,0x91,0x86,0x05,0x4d,0xb1,0x85,0xaa,0x7b,0xaa,0xcb,0x09,0xd6,0xca,0xad,0x01,0x63,0x8e,0xff,0x8e,0x46,0x87,0x35,0xa6,0x01,0x24,0xde,0x0c,0x53,0x76,0xe9,0x43,0x40,0xe5,0x41,0xa9,0x80,0x07,},\"\\x38\\x57\\xbd\\x26\\x0b\\x8a\\xad\\x9d\\x07\\x3f\\x06\\x76\\x5d\\x37\\xfe\\x89\\x3a\\x3f\\x53\\xe2\\x3d\\xe8\\x66\\xdd\\xac\\x33\\x49\\x5a\\x39\\xad\\x33\\xee\\x9e\\x9d\\x5c\\x22\\x50\\x2b\\xc1\\xc4\\xb5\\x47\\x0d\\x0e\\x3f\\x3a\\x58\\x52\\x23\\xfe\\x4c\\xb9\\x3c\\xc4\\xad\\x2b\\x5b\\xa6\\xd7\\x88\\x26\\xa5\\x3f\\xc0\\x25\\x3d\\xc5\\x80\\xa2\\x01\\x8c\\xc9\\xff\\x1c\\xfe\\xdb\\xd3\\xac\\x0b\\x53\\x29\\x2d\\xee\\xfb\\xc1\\x4e\\x58\\x9a\\xcf\\x49\\x6c\\xb5\\xf7\\x67\\x01\\x30\\xfd\\xbb\\x6c\\xf3\\x8d\\x20\\x89\\x53\\xc0\\x15\\xa0\\x47\\x46\\x75\\xb7\\x24\\xbd\\x10\\x9f\\x7c\\xb8\\x9c\\x33\\x01\\x67\\x51\\xfe\\x7a\\xa7\\x85\\xd0\\x99\\xd0\\x9a\\xb2\\x0d\\xd5\\x25\\x8c\\xd7\\x64\\xac\\x8d\\xaf\\x34\\x3c\\xe4\\x79\\x0e\\xad\\x08\\x63\\xaf\\x43\\x12\\x1a\\xa5\\x27\\xa3\\x7a\\x11\\x62\\x8f\\x47\\x86\\x96\\x68\\xf8\\xea\\xc0\\x0d\\x80\\xb6\\xbf\\x99\\x06\\x66\\x3d\\x7a\\x28\\x99\\xc1\\xcb\\x67\\x8c\\xd7\\xb3\\xeb\\x3b\\xc8\\x02\\x26\\xb8\\xb1\\x3b\\x6e\\x46\\x87\\x7f\\x38\\xf0\\x7c\\x3d\\x9c\\x86\\xd3\\x36\\x8b\\xaa\\xc4\\xa6\\xf6\\xb9\\x3c\\xce\\xbc\\xec\\x98\\x11\\x47\\x4b\\x6a\\x6a\\x4d\\xa5\\xc3\\xa5\\x96\\x65\\x71\\xee\\xd0\\x5e\\xdc\\xc0\\xe3\\xfe\\x7c\\xd1\\x59\\x15\\xc9\\x1f\\x44\\xee\\xe8\\xc1\\x49\\xae\\x45\\x1f\\x37\\x55\\x18\\xa7\\x9f\\xb6\\x00\\xa9\\x71\\xa3\\x9b\\x94\\x33\\xdf\\xa1\\x9f\\x91\\x93\\x1b\\x19\\x32\\x27\\x57\\x47\\xc2\\x62\\xee\\xdc\\xbd\\x27\\xf1\"},\n{{0x8d,0x16,0x21,0xee,0xab,0x83,0x27,0x0d,0xe8,0x57,0x33,0x5c,0x66,0x5b,0xbf,0x57,0x26,0xe3,0x72,0x22,0x25,0xfd,0x01,0x6e,0x23,0xbf,0x90,0xab,0x47,0xae,0xec,0x3d,},{0xbe,0xcd,0xbc,0x02,0x4d,0xae,0x6a,0x94,0xed,0x4e,0x29,0xc8,0x0f,0x2a,0xff,0x79,0x6a,0xed,0x8f,0xeb,0x2c,0x1b,0x37,0x90,0xa8,0xc7,0x2d,0x7b,0x04,0x8a,0x2c,0x61,},{0xe0,0x8d,0x6c,0xaa,0x5f,0x39,0x32,0x7d,0x6e,0x66,0x52,0xed,0x74,0xdd,0x1a,0x37,0x84,0x4b,0x97,0x9f,0x5c,0xce,0x74,0x7a,0x60,0x6f,0x56,0x79,0xf4,0x89,0x8b,0xbb,0x76,0x43,0xdf,0x7e,0x93,0x1b,0x54,0xa2,0xb4,0x0e,0xbd,0xef,0xe8,0x30,0x03,0xf6,0x1c,0xa0,0xf1,0x11,0x12,0xf0,0x23,0xc6,0xa3,0xe8,0xcc,0x18,0xca,0xfe,0x5f,0x0d,},\"\\x97\\xfa\\xcd\\xdc\\x82\\xcc\\xcc\\xcf\\x78\\x8c\\x31\\xb3\\x30\\x5e\\x93\\xeb\\xa9\\x56\\xf8\\x96\\x13\\xe6\\xe5\\x35\\x42\\xb0\\x43\\x26\\x7f\\xee\\x54\\x4c\\x2b\\x0a\\x8a\\xe8\\x88\\x6a\\x31\\xb9\\xd3\\x21\\xa6\\x3c\\x27\\x62\\x3b\\xae\\xfe\\xa8\\x40\\xb2\\xa8\\xaf\\x5b\\x23\\x30\\x19\\x3f\\xfb\\x5b\\xaf\\x87\\x3c\\x33\\x55\\x28\\xaf\\xea\\xe2\\x16\\x01\\x63\\xc8\\x51\\xc5\\xa2\\xe5\\x81\\x54\\xa1\\xb0\\x56\\x9c\\x2d\\x13\\x66\\xc0\\x71\\x04\\x37\\x62\\x3b\\x0e\\x08\\xc6\\x86\\xe5\\x4f\\xc2\\x79\\xed\\x4c\\x45\\xf3\\xe8\\x56\\x86\\x83\\x75\\xf7\\x82\\x24\\xc7\\x77\\xb1\\x3d\\x75\\xde\\x10\\xd7\\x91\\x73\\x55\\x24\\x25\\xd1\\x5a\\x56\\x19\\x04\\x15\\x5f\\x21\\x17\\xb2\\xf1\\x47\\x13\\xeb\\x0b\\x04\\x64\\x8a\\x3b\\xde\\xb3\\x30\\x21\\x67\\xd1\\x97\\x3e\\x78\\x8a\\x06\\xcb\\x00\\xd4\\x8c\\xcb\\x26\\x9f\\xa7\\x1a\\xf8\\xba\\x68\\xea\\xe5\\x5d\\xbb\\xfd\\x95\\x94\\xd5\\xc2\\xb4\\xdc\\x13\\xae\\x03\\x21\\x71\\x85\\x61\\xac\\xdf\\x67\\xdc\\x8c\\xfc\\xc2\\x5b\\xc4\\x6b\\xb6\\x6e\\x09\\x6a\\x19\\x41\\xd9\\x33\\x52\\x07\\xd3\\xf7\\xd1\\x1e\\x89\\x04\\x90\\x4f\\xab\\xe3\\xa5\\x0a\\x38\\x83\\xe7\\x07\\x80\\x47\\xdf\\x25\\x2f\\x38\\xb6\\x7c\\xd2\\x8a\\x6a\\xc4\\x5c\\x7d\\x7a\\x1d\\x2a\\x1d\\xe8\\xd4\\x57\\x47\\xcf\\x09\\x30\\x1e\\x01\\xcd\\xaf\\xd0\\xcd\\x99\\xa6\\xe9\\x1b\\x70\\x4d\\x50\\x9f\\xce\\x69\\x2f\\xbd\\xef\\x2f\\x71\\xa5\\xce\\x0b\\x35\\xbc\\x15\\xc6\\x5f\\x87\\x68\\x24\"},\n{{0xf2,0x73,0x5d,0x50,0xee,0x3a,0x9a,0x65,0xb5,0x8c,0x8a,0xcf,0x55,0x16,0x63,0xe9,0x88,0x09,0xec,0x40,0x6f,0x73,0xe3,0xe7,0xf4,0xe7,0x3b,0xc4,0xea,0x92,0x38,0x74,},{0xdf,0x48,0xa5,0xb9,0x4a,0x07,0xaf,0x3c,0x2c,0x99,0xb8,0x38,0x87,0x62,0x24,0x32,0x33,0xc8,0x50,0xdc,0x17,0x53,0x17,0xd6,0x02,0x63,0x8e,0x5b,0x86,0xab,0x49,0xed,},{0x69,0x42,0xa7,0x69,0x64,0x17,0xef,0xaa,0x59,0x1b,0x95,0xe1,0x1f,0x02,0xd7,0x63,0xbe,0xf5,0x27,0x9b,0x93,0x2a,0x8e,0x2a,0x7c,0xbb,0x9f,0x58,0x36,0x95,0xc1,0x4c,0xe5,0xcc,0x55,0x6b,0xec,0x66,0x79,0x9b,0x33,0xcb,0x59,0x2d,0xa4,0xdf,0x27,0x35,0xf9,0xee,0xf2,0xc3,0xce,0xca,0x43,0x62,0x16,0x4b,0x6c,0xc9,0x3d,0xa4,0xe1,0x05,},\"\\xae\\x31\\xe9\\x4e\\x71\\x97\\xe4\\xe4\\xd0\\x23\\x93\\x48\\x02\\x5e\\xd6\\x68\\x1e\\x51\\x3c\\xe1\\xa6\\xe0\\xaa\\x0e\\x5b\\x97\\x93\\x73\\x91\\x21\\x50\\xef\\x11\\x3e\\x50\\xef\\x05\\x69\\xc4\\x83\\xf7\\x56\\x8c\\x4b\\xbc\\x47\\x03\\xc5\\xda\\xca\\xa8\\x0a\\x0d\\xe4\\xe7\\x38\\x38\\x3f\\xa1\\xf1\\x0d\\x6d\\x40\\x71\\xa3\\x1b\\x99\\xe6\\x48\\x51\\x43\\x97\\x23\\x16\\xc8\\x65\\x22\\xe3\\x7c\\x68\\x87\\xa1\\xc3\\x07\\xb2\\x9b\\x0d\\xd6\\xf9\\xf1\\xb4\\x38\\x31\\x0a\\xf9\\xd8\\xd7\\x34\\x6f\\xb4\\x1f\\x9b\\x2d\\xd2\\xe8\\x0b\\x14\\xc4\\x5e\\xb8\\x7d\\x4e\\xd4\\x8e\\x37\\xa5\\x26\\x0b\\x52\\x25\\x7b\\x3e\\x99\\x78\\x7a\\x13\\xc5\\x53\\x92\\xba\\x93\\x0c\\x08\\xe0\\x24\\x0e\\x96\\x0d\\xef\\x0c\\x29\\xb8\\x55\\x07\\x45\\xcf\\x14\\x9d\\xee\\x53\\xa5\\xd1\\x74\\xec\\x06\\x5d\\x2d\\x66\\x77\\xde\\xe1\\xfc\\x42\\x05\\x70\\x62\\xc3\\x4e\\x27\\xea\\x5d\\xbc\\xdb\\x86\\x1b\\x9f\\x67\\x0c\\x60\\x32\\xc7\\x84\\x6c\\xec\\x8e\\x87\\xa7\\xc9\\x52\\x0e\\x27\\x96\\x7b\\x01\\x86\\xee\\x71\\xb7\\x7e\\xd6\\xd0\\x29\\xbb\\xdd\\x70\\x94\\x9c\\xec\\x4a\\x70\\x93\\x29\\xfa\\x37\\xfe\\xe0\\x02\\x49\\x0c\\xc1\\xbc\\x4c\\x2d\\xf6\\xf7\\x63\\xf9\\x85\\x8f\\x33\\xd7\\x50\\xc5\\xb5\\x05\\xa6\\x7e\\x23\\x70\\x63\\xc0\\x48\\x6f\\x94\\x56\\xd3\\xc6\\x20\\xd9\\xac\\x7c\\x98\\xf1\\x38\\x1d\\xe0\\xef\\xfe\\x41\\xc1\\x82\\x59\\x50\\x4a\\x15\\x0d\\x68\\xa6\\xa2\\x8b\\x0a\\x3e\\xea\\x80\\x3b\\x85\\x53\\x15\\xc9\\xe0\"},\n{{0xca,0xd9,0xd2,0x1a,0x01,0xc7,0xe1,0xd1,0x5d,0xf2,0xfb,0xd7,0x9c,0x51,0x6e,0xb8,0xc3,0x40,0x1e,0x9f,0xe2,0x84,0x67,0xcc,0x7b,0x21,0x67,0x9d,0x4e,0x33,0x1a,0x3d,},{0xa7,0xb5,0x5c,0x15,0xd6,0x79,0x0b,0x40,0x53,0x6f,0xca,0xe5,0xad,0x28,0x92,0xcd,0x66,0xb1,0x86,0x89,0xf4,0x99,0xc1,0xfd,0xee,0xa6,0x6d,0x4a,0x7d,0xf3,0x94,0x24,},{0x31,0x92,0x7d,0x01,0xdb,0x9f,0x24,0x72,0xf4,0xdf,0x6f,0x63,0xc1,0x8e,0xbd,0x83,0xc2,0xb1,0xaa,0xf8,0x8d,0x58,0x0e,0x84,0x88,0x54,0xdf,0x8c,0xba,0x63,0x95,0xd3,0xda,0x7b,0xd6,0xbb,0x9e,0xdc,0x1f,0xce,0x1c,0x7d,0x7e,0x13,0x60,0x55,0x8f,0xcd,0xdf,0xa9,0x39,0x15,0xbe,0x07,0x6e,0xfb,0x8e,0xa2,0xdc,0x5e,0xa7,0xb2,0x0d,0x0a,},\"\\x70\\x70\\x2b\\xf1\\x9c\\x91\\x9f\\x98\\x36\\xde\\xfd\\x7b\\x84\\x6f\\xd9\\x99\\x2d\\x8b\\x7e\\xb2\\xe1\\x06\\xae\\xb7\\x1e\\x60\\xa3\\x1b\\x4e\\xa2\\x5a\\x41\\xb2\\x12\\xdc\\x7d\\xe7\\xc9\\x1c\\xbd\\x61\\x3d\\x58\\xd0\\x59\\x5d\\xb8\\x33\\xcf\\xe7\\xe5\\x05\\x84\\xf2\\x55\\x69\\x60\\x2c\\x77\\x44\\xfa\\x67\\x5d\\x15\\x6d\\x0f\\x63\\xcd\\x2b\\x7c\\x08\\x9c\\x8a\\x00\\x68\\x6a\\x43\\x71\\x69\\x82\\x6a\\x12\\xdc\\x48\\x5b\\x38\\xc0\\x68\\xa8\\x00\\x71\\x42\\xe5\\x16\\x37\\x47\\x01\\x1a\\x07\\xa4\\x15\\x68\\x36\\x22\\xab\\x1e\\x23\\xce\\x57\\x7c\\x73\\x2b\\xa1\\x4f\\x40\\x1f\\xbc\\x30\\x43\\xe0\\x69\\x3a\\x92\\x05\\xc1\\x9a\\x92\\x29\\x8a\\x3d\\x9b\\x08\\xfb\\x7a\\xfa\\xfa\\xe0\\xa9\\xf0\\x16\\xbc\\x75\\x0e\\xe6\\x31\\xa5\\xf5\\xda\\x5d\\xb6\\xf9\\xba\\x26\\x92\\xc7\\x4c\\xaa\\xae\\xb4\\xd0\\x97\\xe9\\x0e\\x3c\\x02\\xd2\\xe3\\xa7\\xfb\\x3a\\xa0\\x00\\x04\\x0b\\x7c\\x17\\xb7\\x45\\x64\\xe6\\x46\\xbe\\xa1\\x6b\\xad\\x61\\x1e\\xbc\\x08\\x59\\xa3\\x82\\x88\\x04\\xab\\x4f\\x5c\\xfb\\xa4\\x17\\xd2\\x54\\x51\\x5c\\xa3\\x62\\x0a\\x3a\\xd6\\x83\\xc4\\x6c\\xa6\\x26\\x7b\\xb4\\x95\\x39\\xbb\\x30\\xe3\\x69\\x08\\x7e\\x67\\x43\\x8e\\x94\\x89\\x56\\x27\\x50\\xdc\\xcb\\xa3\\xaa\\x0b\\x1b\\x0a\\x6c\\x26\\x70\\x32\\xd2\\x0c\\x2a\\xdb\\x75\\xe6\\x8d\\xf1\\x12\\x3b\\x52\\x59\\xbf\\xe4\\xea\\xc6\\xca\\xdc\\xa6\\x77\\x81\\x38\\xa3\\x73\\x18\\xad\\xb3\\x0e\\x8d\\x66\\x9f\\x3b\\xc9\\x69\\x2c\\xc7\\x4b\\x68\"},\n{{0xd9,0xbe,0x84,0x22,0x55,0xe9,0xa1,0x6b,0x0a,0x51,0xa8,0x67,0x42,0x18,0xce,0xe7,0xcd,0x9a,0x8b,0xdf,0x34,0x35,0x08,0x39,0x7f,0x4d,0xdb,0x05,0xf3,0xfa,0x00,0x82,},{0x79,0x31,0xbc,0x6d,0xfa,0x33,0x24,0x94,0x3a,0xab,0x18,0x3d,0x12,0x85,0x51,0x59,0x19,0x39,0x9f,0xfe,0x0b,0x71,0x06,0x77,0xf0,0x91,0x5d,0x3a,0x5b,0xe5,0x1e,0x92,},{0xc9,0x38,0x45,0x65,0x8c,0x95,0x60,0xd2,0xc0,0xe2,0x8f,0x28,0x2a,0xdb,0xd4,0x65,0x2b,0xaf,0xd3,0xbb,0x2e,0xde,0xc1,0x7c,0x94,0x87,0x8f,0x7b,0x94,0xd3,0xc7,0x7a,0xfe,0xc9,0x06,0xed,0x29,0x2a,0x8d,0xfb,0xf5,0xf8,0xe7,0xc1,0x18,0xe8,0xf2,0xca,0x33,0xdd,0xa7,0x90,0x9d,0x9b,0x69,0x5b,0x8f,0xf5,0xa1,0xc0,0xe9,0x7a,0xc8,0x07,},\"\\xac\\x6c\\x55\\xb1\\x34\\x66\\x3e\\x41\\xf0\\x2a\\x6d\\xcb\\x85\\x49\\xea\\xa1\\xc0\\x13\\xf5\\x96\\x58\\xd8\\x1d\\x81\\x2f\\x95\\xb7\\x40\\x09\\x51\\x37\\x23\\x67\\x19\\x45\\xe1\\x32\\x4f\\x90\\xf8\\xa3\\xf9\\x71\\x36\\x91\\x81\\xb5\\x87\\xba\\xb4\\x56\\x65\\xf7\\x88\\xd6\\x63\\xab\\x78\\x14\\x0c\\x5a\\x22\\xc1\\xc1\\x8d\\x4a\\xfe\\xdc\\x74\\x48\\xa7\\x48\\xaf\\xe5\\xbf\\x23\\x87\\x00\\x3c\\x1d\\x65\\xab\\x18\\x48\\x2e\\xf9\\x89\\x22\\xb4\\x70\\xda\\x80\\xad\\x14\\xc9\\x44\\x95\\x1c\\xe4\\xae\\xd3\\x73\\x90\\xcc\\xe7\\x9a\\x8e\\x01\\xb2\\x4c\\x7d\\xfc\\x11\\x41\\xc0\\xec\\xa2\\xc7\\xf7\\x73\\xed\\x4b\\x11\\x80\\x6a\\x34\\x61\\x55\\x13\\x48\\x6e\\x4e\\xe1\\x1a\\xf0\\x80\\x78\\xa1\\xb4\\x05\\x4c\\xf9\\x88\\x02\\x98\\x60\\x8d\\xd9\\xb3\\xfa\\xa1\\xa2\\x42\\xa4\\x52\\xfe\\x51\\x16\\x04\\xb3\\x10\\x2c\\x31\\x3d\\x14\\xcc\\x27\\xc6\\xf0\\xf8\\x47\\x1d\\x94\\x55\\x53\\x17\\xea\\xa2\\x64\\xcd\\xf5\\x2c\\x69\\xe1\\x8f\\x46\\x1e\\x47\\x90\\x3d\\x21\\x29\\x87\\x16\\xb1\\x72\\xee\\x9c\\xb1\\x78\\xf0\\x8f\\xf2\\xd3\\xc9\\xc1\\x62\\x12\\x1c\\x2e\\xd2\\x1d\\x87\\x34\\xb2\\xf0\\x63\\x0d\\x39\\x91\\x46\\xcb\\xf7\\x6e\\x02\\x8a\\x14\\x3f\\x2b\\xf7\\xbb\\x50\\xaf\\x0f\\x57\\xb9\\xba\\x80\\x21\\xd2\\x64\\xb0\\x0c\\x66\\x62\\xf8\\x4c\\x86\\xcb\\x6d\\x59\\x52\\xb3\\xd2\\x41\\xf7\\xdc\\x3e\\x70\\x0c\\x96\\x61\\x6c\\xbc\\xfb\\x0d\\x0e\\x75\\x3f\\xfd\\x5d\\x21\\xee\\x32\\x0e\\x65\\xe9\\x7e\\x25\\xcb\\x86\\x09\"},\n{{0xcf,0xc4,0x8c,0xc6,0xf6,0x58,0x11,0xfe,0x7d,0x7b,0xba,0x85,0xd1,0xcd,0x84,0x85,0x8f,0xd6,0xf7,0xed,0xd6,0x38,0xf4,0xf5,0x52,0x36,0x3e,0xe7,0x68,0x5f,0x69,0xca,},{0xd2,0x9c,0x10,0x69,0x4c,0x5e,0x8e,0x3f,0x34,0x47,0xed,0x78,0xd3,0x4d,0xbd,0x74,0xa2,0xb3,0x01,0x37,0x3b,0xa8,0x71,0xb5,0x85,0x0c,0x33,0x3d,0xff,0x7b,0xf8,0xd0,},{0x80,0xc5,0xd5,0x1e,0x96,0xd1,0xca,0xc8,0xef,0xd3,0x45,0x98,0x25,0xe7,0x9c,0x1e,0x9f,0x65,0xaf,0x70,0x1d,0x1d,0x29,0xe1,0xf9,0x5b,0x03,0x67,0x07,0x11,0x3b,0x77,0x98,0x4b,0x7b,0x33,0x50,0xf0,0x40,0x77,0x33,0x3c,0x95,0x7f,0x8f,0xbc,0x7d,0x9b,0x04,0x0c,0x36,0x26,0x51,0x41,0x7b,0x98,0x99,0x02,0x7c,0xd3,0x3e,0xdb,0x11,0x03,},\"\\x8e\\x7d\\xef\\xb9\\xd1\\x6d\\x03\\x6b\\xd6\\x42\\xcf\\x22\\x6e\\x32\\x77\\x3e\\x60\\x53\\x61\\xc5\\xec\\x4b\\x95\\x12\\x55\\x78\\x8d\\xb0\\xa0\\x42\\xc6\\x3e\\x5a\\x43\\x67\\xd6\\x15\\x24\\xf1\\x0e\\x62\\x58\\x99\\x13\\x25\\xa3\\x9a\\xb6\\xb0\\x36\\x12\\x26\\x0c\\x3f\\xe3\\xdf\\x20\\xb3\\x42\\x02\\xd3\\x43\\x95\\xbd\\x4e\\xd4\\x0b\\xd6\\x13\\x73\\xdf\\x78\\x1a\\x4c\\x8b\\xcf\\xbd\\x15\\x30\\x10\\x60\\xf0\\x74\\x37\\x73\\x23\\x33\\xd8\\xe4\\x97\\x36\\x32\\x2d\\xee\\x6b\\x22\\x43\\x8e\\x78\\x7d\\x88\\x56\\xb7\\x0c\\x26\\xec\\x57\\xd6\\xda\\xde\\x9c\\x3c\\x28\\xe2\\x72\\x20\\xc5\\x67\\x0e\\x39\\x35\\x44\\xed\\x09\\x59\\x37\\x29\\x8d\\xc3\\xad\\xc7\\x38\\x65\\xf7\\x77\\xe9\\x00\\x37\\xbd\\xef\\x83\\x47\\x16\\x47\\x6d\\x78\\xf4\\xe6\\xcb\\x49\\x61\\xa4\\xc6\\x8a\\x8a\\x83\\x63\\x38\\xa9\\xf5\\xda\\x17\\x9c\\x4d\\x5e\\x93\\xc3\\xf7\\x0d\\xd3\\x5e\\xec\\x70\\x96\\x53\\xdd\\x8d\\xe3\\x79\\x96\\xb1\\x20\\x56\\xd4\\xee\\xfc\\xb4\\xb6\\xb3\\xc1\\x3b\\xa9\\x84\\xd8\\x32\\x27\\x5c\\x43\\x86\\xeb\\xf4\\xa8\\xff\\x7f\\x07\\x8b\\xe3\\xd4\\x28\\xc1\\xe0\\xd9\\xb1\\x62\\x38\\x1f\\x06\\xa5\\xb7\\xbb\\x12\\x70\\x40\\x03\\xd9\\x1f\\x25\\xd1\\xd8\\xfd\\x43\\x62\\x6c\\xe7\\x0f\\xff\\x59\\xd2\\x92\\x77\\x68\\xa7\\x6b\\xf7\\xf9\\xef\\x76\\xff\\x95\\x48\\x9f\\x38\\xed\\xcd\\x1c\\x9e\\x9b\\x8a\\x8b\\x0e\\xf6\\x6c\\x32\\x80\\x57\\x76\\xd5\\xae\\x9f\\xbd\\x84\\xa7\\xaf\\x4f\\xa6\\x56\\x3e\\xc7\\x0a\\xc5\\x73\\x3a\\x44\"},\n{{0x15,0xc9,0xf7,0xc4,0xd8,0x4a,0x5a,0x47,0x90,0x41,0x95,0x2e,0x6a,0x8c,0xac,0x24,0xe7,0x6f,0xd2,0xd2,0x75,0xc1,0x97,0xe6,0xb5,0x21,0x92,0x9b,0x43,0xba,0x6c,0x5d,},{0x86,0x33,0xc1,0x82,0x9d,0x29,0x09,0x1d,0xf7,0x1f,0xd5,0xc0,0xef,0x64,0x05,0x72,0xe4,0xb6,0x49,0x74,0xcd,0x09,0x7d,0xbe,0xbb,0xcd,0xde,0xba,0x04,0x16,0x47,0xc0,},{0x1e,0x36,0xbe,0xa5,0xa5,0x83,0x76,0x7e,0xbd,0x80,0x30,0x6c,0xab,0x23,0x31,0x55,0xb7,0xb4,0x28,0x14,0xb4,0x34,0x73,0xcf,0x45,0xcd,0xc5,0x03,0x9c,0x93,0x97,0x44,0xa9,0x69,0x4b,0x87,0x22,0x0d,0xaf,0x4c,0xcd,0x29,0xf2,0x5c,0xea,0x40,0x5e,0x7c,0x08,0xdb,0x2e,0xf1,0x7f,0x3f,0x03,0x4d,0xbb,0x49,0xcf,0xf6,0x02,0x83,0xe3,0x06,},\"\\x11\\x73\\x0d\\xd4\\x5d\\xda\\x80\\xd8\\x4d\\x08\\x0d\\x92\\xe9\\xbd\\xda\\xee\\xa6\\x87\\x8e\\x4a\\x0b\\x3b\\x51\\x2d\\x9e\\xa7\\x33\\x80\\x8e\\x1c\\xef\\x51\\xd4\\x90\\x48\\xd6\\xc7\\x81\\x16\\xa4\\xbd\\xe3\\xc6\\x4a\\xce\\xaa\\x52\\xbe\\xca\\x86\\xb3\\x31\\xab\\x59\\xe9\\x18\\x5c\\x70\\x28\\x6a\\x02\\xbb\\x5d\\xd0\\x4f\\x5c\\x7f\\x4e\\x9c\\x7e\\x44\\x5e\\x77\\x45\\x85\\x65\\xf1\\x59\\xc7\\x83\\xdf\\xd4\\xd9\\x76\\xa9\\x10\\xe9\\x37\\x78\\x9d\\x21\\x41\\xd4\\x16\\xed\\x3a\\x7f\\x60\\x8d\\x26\\x73\\x7a\\x86\\xb2\\x0b\\x62\\x4e\\x3c\\x36\\xaf\\x18\\xd2\\x5c\\x7d\\x59\\xb8\\xd7\\x42\\x7e\\xc6\\xc4\\xd3\\xd4\\x38\\xd7\\xae\\x09\\x49\\xdd\\x7d\\x74\\x8c\\x1f\\xfd\\x6f\\x28\\xe8\\x28\\x5d\\x44\\x04\\x22\\xd2\\x2a\\x37\\x61\\x20\\x2e\\x95\\x84\\xf5\\xcd\\xb3\\x50\\x45\\x47\\xaa\\x4b\\x68\\x57\\x30\\xc9\\x82\\xcb\\xa2\\x13\\xde\\x08\\x02\\x0a\\x5e\\x4e\\x46\\xa9\\x5f\\xac\\x4b\\x48\\x1b\\xea\\x0b\\x63\\x0a\\xbd\\x03\\x0d\\xdd\\x33\\x5a\\x20\\xfe\\x2c\\xf7\\x09\\x4a\\xef\\x48\\x13\\x95\\x69\\x91\\x91\\x3c\\x68\\x21\\xf4\\xb5\\x41\\x0d\\xf4\\xf1\\x33\\xfe\\x63\\xe2\\x2c\\x08\\x09\\x2a\\x0a\\x65\\x97\\x27\\x22\\xa2\\x7a\\xe4\\x20\\x11\\xa8\\x07\\xc3\\x27\\xb4\\x17\\x23\\x7c\\x54\\x01\\x14\\xee\\xcb\\x9f\\x0e\\x96\\xcd\\xa5\\xdc\\xf0\\x24\\x6f\\x1d\\x27\\x17\\xf4\\x9b\\x9c\\xea\\x9d\\xc6\\xa3\\xda\\x9b\\x39\\x6f\\x02\\x70\\x52\\x92\\x26\\xf5\\xdc\\xba\\x64\\x99\\x91\\x8a\\x6c\\x28\\x9f\\xe0\\x55\\xfe\\xc8\"},\n{{0x6d,0x2d,0x0d,0x82,0x3f,0x29,0x47,0x46,0xb9,0xa5,0x51,0x2e,0x14,0xe7,0x3c,0x1d,0x85,0x5b,0x5e,0x4b,0xca,0x65,0xfe,0x81,0x77,0x29,0x81,0x0c,0xc5,0xef,0x84,0x0d,},{0x1b,0x64,0x80,0xa6,0xa9,0x0d,0xfb,0x47,0x29,0x84,0x85,0x5c,0xef,0x6f,0x1a,0xb3,0x1e,0xb7,0xb3,0xf1,0x3c,0x8a,0xc0,0x0f,0xa5,0x56,0xd2,0x0b,0x53,0xe5,0xae,0x17,},{0xb5,0x15,0xf4,0x9e,0xb3,0x2a,0xd4,0x78,0x69,0x2d,0xf8,0x8f,0x07,0xb7,0x80,0x2c,0x6e,0x0e,0x53,0x27,0xaa,0x08,0xa6,0x36,0x6e,0x4c,0xb1,0xd1,0xe2,0x6f,0x9e,0x65,0xfc,0x81,0xab,0xeb,0xe2,0x21,0x5d,0x64,0x91,0x00,0xf2,0x75,0x98,0x27,0x3a,0x41,0x2b,0x62,0x4e,0x84,0x2d,0x81,0x30,0x40,0x37,0x97,0xe5,0x7d,0xec,0x97,0x5a,0x0a,},\"\\x87\\x72\\x72\\x1f\\x72\\xea\\xf7\\xf7\\x30\\x40\\xc0\\x68\\xa7\\xc3\\x75\\x3b\\xff\\xca\\x7d\\xc2\\xd0\\x93\\x0c\\x65\\x25\\xf4\\x25\\xe6\\x00\\x5c\\x25\\xcd\\x4c\\x0f\\xf5\\x09\\x5c\\x9c\\x61\\xa5\\xd8\\xa1\\x96\\x7b\\x8c\\x86\\x01\\x0c\\x88\\x4e\\x50\\x9e\\x6b\\x16\\x70\\xf7\\x90\\x46\\xe2\\x29\\x79\\xeb\\xd3\\x54\\x73\\x40\\x90\\xd3\\xad\\xa2\\x14\\x35\\xc1\\xf8\\x25\\x4f\\x7b\\x52\\x22\\xcd\\x55\\x64\\xf0\\x64\\xe9\\x77\\x64\\x03\\x66\\x44\\x9f\\x4e\\x50\\x08\\xf8\\x70\\xf9\\xc4\\x84\\x05\\x65\\xbf\\x4f\\xb5\\xf5\\x74\\xc9\\x77\\x4b\\xa2\\x56\\x8e\\x71\\xa9\\xcc\\xd8\\x2f\\xfc\\x59\\xb6\\x94\\xf2\\x6e\\x7d\\xe4\\xce\\x2e\\x3f\\xd8\\x80\\xa0\\xee\\xf3\\x87\\x93\\x13\\x33\\xed\\xe0\\x0d\\xcb\\x06\\x5e\\x6d\\x0f\\x79\\x59\\x1a\\x2a\\xa9\\x56\\xdf\\x19\\x48\\xa2\\x65\\xcb\\x95\\x75\\x0d\\x8a\\x23\\x3b\\x15\\xc2\\x88\\xa0\\x54\\x87\\xc5\\x15\\x66\\x3f\\x93\\xe7\\x40\\xfb\\x15\\x70\\xfb\\xe4\\xbd\\x80\\xc6\\x8e\\x8d\\x92\\x97\\x34\\x5a\\x8a\\x01\\xcd\\xbd\\x88\\xf4\\xa3\\x9b\\xed\\x9c\\x5e\\xf0\\x9f\\x14\\x4b\\xce\\x5d\\xe5\\x68\\xbf\\x37\\x33\\xbc\\x53\\xb2\\x03\\x9a\\x29\\xcb\\x3e\\x19\\x45\\x01\\xad\\xc1\\xc1\\x0e\\x86\\x38\\x3a\\xac\\x8b\\x0f\\x85\\xc6\\x7a\\x66\\x89\\xbb\\xe1\\x47\\x0a\\x39\\x24\\x76\\x31\\x34\\x39\\xca\\x88\\xd9\\x8c\\x02\\x1c\\x0e\\xae\\xc2\\x5f\\xb2\\xf9\\xa1\\x60\\xce\\x5c\\x78\\x61\\x70\\xbe\\x02\\x38\\xfb\\x87\\x85\\xdd\\x33\\xbf\\xa9\\x05\\x9a\\x6c\\x37\\x02\\xd0\\xde\\x05\"},\n{{0xc0,0xcf,0x79,0x9a,0xf7,0x39,0x5b,0xf2,0x7b,0xaf,0xa3,0x6c,0xab,0x43,0x70,0x45,0xe3,0x9c,0x90,0x3b,0xf8,0x07,0x54,0x83,0x19,0xce,0x44,0xf2,0x87,0x49,0x4f,0xbb,},{0xaf,0xbf,0x55,0x0c,0xa2,0x90,0xc9,0x05,0xbd,0xd9,0x2f,0xc8,0x83,0x1e,0xbe,0x3d,0xfe,0xb6,0xda,0xae,0x4f,0x56,0x00,0x52,0x53,0xcc,0x50,0x95,0x1e,0x50,0xed,0xc2,},{0x5b,0xba,0x01,0xa4,0xc7,0xb2,0x55,0x42,0xd0,0x69,0x12,0xde,0x70,0xaa,0x1e,0x22,0x04,0x23,0xfd,0xf8,0x33,0x8a,0x9e,0x69,0x33,0x95,0xcb,0x6f,0x0d,0xc1,0xfb,0xfd,0x01,0x8e,0x3c,0x77,0xe5,0x0a,0xef,0x90,0xa9,0x08,0x0f,0x30,0xf1,0xf5,0x79,0x2b,0x24,0x31,0x07,0x8f,0xe6,0xe3,0xe0,0x04,0x64,0x24,0x5e,0x17,0xcd,0x8d,0xc1,0x07,},\"\\xdb\\xe6\\x57\\x80\\xe9\\x68\\xde\\x9e\\x40\\xff\\xb5\\x7c\\xf5\\x9a\\x60\\xfd\\x93\\xb3\\xf9\\xa5\\xe7\\xd8\\xed\\x51\\x80\\xad\\xbc\\x57\\x8c\\xa1\\xbc\\x48\\xbd\\x9f\\xb6\\x0a\\x13\\x24\\xc9\\xc2\\xc1\\x14\\x14\\x79\\xa0\\xdc\\xf0\\xf1\\xd0\\x7e\\x84\\x93\\x65\\x26\\xdf\\x42\\x33\\x3c\\x0d\\x77\\x3e\\x3f\\xed\\x9e\\x40\\x38\\xde\\x5b\\x95\\xad\\x90\\x5c\\x92\\xcb\\xe0\\x40\\x48\\x7b\\xf5\\x5e\\x10\\xe1\\xed\\xb4\\x29\\xa0\\xec\\xc4\\xe0\\xe8\\xd0\\x0a\\x98\\x8a\\x9c\\xd5\\x3e\\x2e\\xb3\\x72\\xf4\\xfc\\x4c\\xd9\\x53\\x7b\\x26\\x9b\\xa3\\xa2\\x3c\\xef\\xbc\\x8d\\xf6\\x47\\x6e\\x75\\x43\\x4b\\x81\\xd9\\x3e\\x88\\x91\\xbf\\x41\\x7c\\x82\\xe3\\x63\\xf3\\xe4\\xab\\xf8\\x0a\\x4f\\x73\\xac\\xa8\\x4a\\xc7\\xdf\\x63\\x37\\xf5\\x36\\xd6\\x3d\\x93\\x9d\\x92\\xcb\\xa6\\x4b\\xe7\\x42\\x22\\x11\\x16\\x06\\x9e\\xf2\\x51\\xab\\xba\\x0b\\x00\\xaf\\x01\\x71\\x8b\\xb5\\x80\\xdd\\xbe\\xb7\\x99\\x73\\xef\\x10\\xa6\\x8b\\x4d\\x0f\\xa0\\x23\\xd6\\xeb\\xd3\\x07\\x9d\\x6b\\x32\\xa1\\xaa\\x20\\xa2\\x1e\\x92\\x02\\xf2\\x75\\x90\\xc3\\xf0\\xc0\\xcc\\x25\\x30\\x73\\xc3\\xf8\\x22\\xaa\\xc4\\x59\\xd3\\x9f\\x50\\x75\\x8b\\x70\\xc0\\x07\\x10\\xa3\\xc9\\x84\\x38\\x41\\x65\\x08\\x52\\x2e\\x51\\x2a\\xda\\xa0\\xaf\\xd5\\x03\\xa7\\xce\\xb0\\x4f\\xb9\\x4a\\x4a\\x93\\x2c\\xe8\\x0c\\xd5\\xa7\\xf1\\x1b\\xb8\\x61\\x26\\x3f\\x58\\xe5\\x74\\x9d\\x54\\x2a\\x11\\x0d\\xe7\\xc7\\x68\\x9d\\xfc\\xb0\\xc5\\x1a\\xfa\\x9d\\x54\\xa5\\x8f\\xf8\\x9f\\x3f\\x67\"},\n{{0xcd,0xaa,0x50,0xe8,0x52,0x7d,0xc7,0xa5,0x0f,0xb3,0x7e,0x28,0xfa,0x8b,0x95,0x68,0xc3,0x7e,0x85,0x67,0xe0,0xb4,0x99,0x99,0x7b,0x9a,0xed,0x67,0x61,0x80,0xc3,0xb0,},{0x7c,0x56,0xe1,0x64,0x51,0x02,0x68,0xc1,0x82,0xb4,0x23,0x74,0x79,0x04,0xf1,0xd3,0xa5,0x80,0x93,0x30,0xf6,0xe1,0xb2,0x92,0x66,0xec,0x46,0xe7,0x3b,0xe1,0x55,0x0f,},{0x13,0x7b,0xd1,0x0a,0x50,0xef,0x60,0x93,0x84,0xfe,0x66,0x87,0x68,0xfb,0x87,0x1d,0xe7,0x41,0xca,0x0f,0x53,0xff,0x84,0x77,0xd7,0xeb,0xfa,0x90,0xaa,0xfd,0x5e,0x26,0x81,0xfd,0xf1,0xb8,0x92,0x50,0x46,0x3c,0x15,0xdb,0x8e,0x17,0xa5,0x88,0x25,0xfe,0x94,0x27,0xde,0x08,0x9c,0x34,0xde,0x13,0xcd,0x07,0xbb,0xa1,0x8d,0x4a,0xa4,0x0d,},\"\\x94\\xfc\\xfb\\xaa\\xa3\\x03\\xde\\xce\\x7b\\x90\\x8f\\x87\\x4c\\xc5\\xf0\\x95\\x06\\x1f\\x17\\x54\\xbb\\x35\\x78\\x0d\\xb6\\x66\\xb6\\x3a\\xb8\\x29\\x08\\x11\\xbf\\x1c\\x52\\x1a\\x7f\\x8f\\x78\\x5e\\xa2\\x70\\xdf\\xb3\\x9d\\x0d\\x6e\\xd9\\x5a\\xb7\\x19\\x55\\xa1\\x1f\\xfa\\xea\\xa2\\x68\\xe0\\x81\\xff\\x3e\\x4f\\x24\\x25\\xb4\\x18\\x80\\xa9\\x87\\x15\\x1e\\x67\\x8e\\x89\\x11\\x13\\x50\\x94\\x2d\\x82\\x0c\\x3e\\xec\\x36\\x21\\x24\\x26\\x66\\x3b\\xe1\\x75\\xe5\\x28\\x6b\\x4a\\xd1\\xcc\\x80\\x4e\\x3e\\x3a\\x03\\xb9\\xfa\\x3e\\x82\\x83\\x8e\\xbb\\xc2\\x61\\x5a\\x64\\x5f\\x2c\\xa1\\x46\\x8a\\xc4\\xa1\\xcd\\xbe\\x52\\x37\\x61\\xe8\\x3f\\x43\\x81\\xb0\\xc8\\x55\\x0a\\xe5\\xe8\\xc8\\xcd\\x1f\\xda\\x57\\x19\\x14\\x36\\xe2\\x7c\\xb8\\x83\\xbc\\x64\\xbe\\x86\\xa9\\xdc\\x61\\x10\\xef\\x34\\x01\\xd8\\x8a\\x7d\\xeb\\xd1\\xb7\\x01\\xd9\\xc2\\x57\\xa6\\x82\\x6c\\xf0\\x1e\\x9e\\x29\\x22\\xe3\\xae\\x57\\x7f\\x28\\x34\\x27\\x5f\\xb0\\xec\\xda\\x80\\xed\\x8c\\xf1\\x80\\x1e\\x0b\\xc5\\xe0\\x1e\\x26\\xa7\\x7c\\x48\\xbd\\xf4\\x6a\\x5c\\x48\\x94\\xd2\\x2a\\xb5\\x3e\\x74\\x18\\x27\\xe2\\x4b\\xed\\x5f\\x07\\x50\\xff\\xad\\x05\\xe5\\x3f\\x1d\\x5e\\x61\\xdf\\xd3\\x16\\xb1\\x91\\xd9\\x79\\x7e\\xf7\\x13\\x13\\x1a\\x8b\\x43\\x0a\\xbe\\x3f\\xac\\x5f\\x3c\\x4a\\x2c\\xa0\\x21\\x87\\x8b\\x15\\xad\\xc8\\xc5\\xf5\\x42\\x11\\x42\\x60\\xe6\\x87\\xa9\\xd1\\x99\\xd2\\x30\\xc4\\xe0\\xd3\\xfc\\x69\\x69\\x93\\xb5\\x9c\\xcf\\xa3\\xff\\xa9\\xd8\\xd2\\xfb\"},\n{{0x0f,0xde,0xa9,0xbe,0xe6,0x28,0x8f,0x94,0x7e,0x0a,0xdb,0xdd,0xa4,0xdf,0xb2,0xba,0xa0,0x38,0x91,0xaf,0x25,0x02,0x4a,0x5e,0x13,0x8a,0xc7,0x79,0x84,0xd0,0x05,0x07,},{0x70,0xab,0xd8,0x64,0x30,0xd7,0xe8,0xd6,0x32,0x09,0xc8,0xb3,0x73,0xec,0x4e,0x4b,0x79,0xe9,0x89,0xe6,0x72,0x5f,0xac,0xef,0xba,0xde,0x3c,0x75,0x74,0xd2,0x3c,0xd0,},{0x80,0xc4,0x2d,0xd5,0xdf,0x03,0xb2,0x85,0xa8,0x6a,0xc9,0x5c,0xe6,0x66,0x9f,0x78,0x6a,0x97,0x8a,0x81,0x3a,0x9d,0x7b,0x8c,0x6a,0x23,0xde,0x76,0xfb,0xd0,0x9b,0xdb,0x66,0xc5,0xdd,0x1c,0xc9,0xf1,0xa1,0x76,0xcb,0xa3,0x88,0xd5,0x05,0x17,0x64,0xa3,0x2f,0xa2,0x7f,0x00,0x28,0xba,0x48,0x98,0x06,0x8b,0xd0,0x1a,0x3e,0xe1,0x72,0x08,},\"\\xcf\\x72\\xc1\\xa1\\x80\\xa2\\xbc\\x37\\xd8\\x47\\x8d\\x9a\\x7a\\x39\\xac\\xf0\\x3b\\xf2\\xa5\\x07\\x90\\xf7\\x90\\x2f\\x81\\x12\\x12\\x22\\xd3\\x1d\\x3e\\xc9\\x16\\xf4\\xf2\\x4c\\xef\\x9d\\x7c\\x41\\xdc\\x02\\x1b\\x0e\\x84\\x87\\xbb\\x89\\x2e\\x47\\x30\\x5e\\x54\\x52\\x03\\x03\\xe8\\x9b\\x30\\xb2\\x63\\xda\\xc4\\xa9\\xba\\x37\\x5d\\x46\\xc4\\x0f\\xcf\\x40\\x05\\x35\\xc9\\x59\\xd2\\xb7\\x46\\xa7\\xfc\\x97\\x0c\\xf6\\x5b\\x47\\x2e\\x84\\xb5\\xf1\\xd0\\xeb\\xad\\xcf\\xa1\\xae\\xd6\\xfc\\x47\\xfa\\xcc\\xe1\\x6a\\x36\\x6a\\x3b\\x1d\\x6e\\x51\\x68\\x13\\xc1\\x96\\x09\\x75\\xf8\\xf2\\xb4\\x30\\x42\\xfb\\x4e\\xea\\xab\\xe6\\x3c\\x6f\\x65\\xdb\\x45\\xdd\\xb7\\xdb\\x88\\x8a\\x19\\xa9\\xd7\\xba\\x6c\\xa4\\x79\\xfc\\xd7\\x0c\\x5d\\x1e\\x97\\x0f\\x12\\xc1\\x4f\\x4d\\x24\\xfb\\x7e\\x2f\\x35\\x7b\\xd3\\xa9\\x4a\\xa1\\xb8\\x68\\xcc\\xc0\\x84\\x7f\\x2e\\xef\\x21\\x85\\x3e\\x25\\x3b\\xaf\\xbf\\x07\\xc4\\xe6\\x17\\x6a\\x1e\\xf0\\x77\\x16\\x78\\x41\\xeb\\xbe\\x56\\x29\\x33\\x71\\x57\\xf3\\x9f\\x75\\xc7\\x1d\\x21\\xe7\\xe9\\x6c\\x51\\xa1\\xb1\\x6f\\xa8\\xdc\\x60\\xf0\\xb1\\x27\\x9f\\xcd\\xa2\\x64\\x1f\\xc8\\x59\\x1e\\x3c\\x49\\x2f\\x15\\xbf\\x83\\xca\\xf1\\xd9\\x5b\\x2c\\xd9\\x13\\x32\\xf1\\xb4\\x20\\x2f\\xe7\\x28\\x62\\xca\\x2e\\xa2\\xef\\x92\\xc1\\x1d\\xb8\\x31\\xd8\\x2f\\x8f\\xc3\\xd4\\x1f\\xe2\\x9a\\x76\\xc2\\x11\\xa7\\x58\\xe2\\xf7\\x1b\\xd8\\x9d\\x2c\\x66\\x10\\xf2\\x01\\x42\\x9f\\x34\\x8d\\x56\\xe1\\x0e\\x3b\\x7a\\xf5\\x3e\\x27\"},\n{{0x03,0xd5,0xe4,0x66,0xf8,0x29,0x8a,0xb5,0x43,0x8a,0x30,0x97,0x6d,0x13,0x22,0xa7,0x21,0x5a,0x64,0x2d,0xd5,0xfb,0x4c,0x3f,0x85,0x19,0x40,0x9a,0x75,0x22,0xf0,0x92,},{0x4b,0x3e,0xd4,0xdb,0x08,0x0e,0x2a,0x45,0x2e,0x16,0x91,0x2c,0x14,0x50,0x44,0x24,0x92,0x0a,0x60,0x97,0x56,0x04,0xe4,0xf3,0x79,0x25,0x8d,0x1c,0x8b,0x19,0x3d,0x6f,},{0x6d,0x7e,0x46,0x58,0xf2,0x6f,0x33,0x7c,0x98,0xe0,0x3f,0x13,0x54,0x2e,0x2f,0x39,0x44,0x0f,0xf7,0xbf,0x8d,0x88,0xf3,0xf6,0xdf,0xa4,0xd6,0x49,0x48,0xcd,0x96,0xb7,0x90,0x51,0x49,0x2f,0xc2,0x8f,0x65,0xf2,0xcc,0x0d,0x23,0xa0,0xc4,0xd5,0xe2,0x30,0x7b,0xb1,0xc4,0x7e,0x11,0xe5,0x3b,0x37,0x1f,0x09,0x1b,0x69,0xf8,0x0d,0xbd,0x05,},\"\\x1b\\x47\\xb7\\x00\\x13\\xcb\\x53\\xe1\\xf8\\xf4\\x97\\x1e\\x0f\\x39\\x56\\x3c\\xe8\\x7e\\xdb\\xc2\\xce\\xdd\\x99\\xe5\\xa3\\x55\\x85\\xdf\\x8b\\x00\\xa8\\x52\\xf7\\xb9\\xc9\\x7c\\x7e\\x4a\\x54\\x65\\xfc\\x56\\x05\\xae\\x8c\\x5c\\x36\\x57\\x0a\\x99\\x20\\x1a\\x7a\\xd6\\x03\\x12\\x87\\xef\\x0c\\x7b\\x2b\\xa6\\xe5\\x7b\\x05\\x6d\\x0f\\xc8\\xd6\\xca\\x43\\xbf\\x6c\\xbd\\xab\\x09\\x89\\x34\\xb4\\x03\\x19\\x7b\\x52\\x5d\\x22\\xd4\\x5e\\x6b\\x29\\xc7\\x8f\\x8d\\x61\\x83\\xe4\\x1f\\xfe\\x19\\x7d\\xae\\x25\\xba\\x22\\xb0\\x66\\x69\\xae\\x05\\xba\\xdd\\x7e\\x1d\\xa6\\x93\\x2a\\x7d\\x05\\x4c\\xba\\xb3\\xf5\\x4e\\x51\\x46\\x22\\x3a\\xd8\\x67\\x12\\x31\\xbc\\x16\\xfe\\x62\\x67\\x9b\\xd2\\x81\\x7a\\x6b\\x80\\xe6\\x53\\x99\\x8c\\x49\\x49\\xf8\\x1f\\xf5\\x3b\\x61\\x73\\x16\\x3e\\x11\\xda\\x3e\\x6d\\x3c\\x76\\xd8\\x4c\\x71\\x32\\x25\\xb4\\x17\\x3d\\x6b\\xf0\\x6a\\x85\\xb6\\x98\\x8a\\x48\\xbe\\x43\\x59\\xcb\\x51\\x55\\x03\\xca\\x56\\x3f\\x43\\x53\\xf8\\xe7\\xd4\\x5e\\x4d\\x94\\x46\\x2c\\x89\\xa0\\x4a\\x00\\xf1\\xb3\\xb0\\xca\\x64\\x22\\xd5\\xdb\\x02\\x9c\\x50\\x7d\\x46\\x48\\x34\\xa2\\x0c\\x78\\xa7\\x13\\x66\\x1d\\x84\\xed\\xff\\xc4\\x96\\xd6\\x92\\x82\\x61\\x98\\x94\\x43\\x7b\\x44\\x87\\x95\\x4c\\xbe\\xa2\\xaa\\x72\\x61\\xe6\\xa6\\x2b\\x68\\x51\\x15\\x4a\\x5d\\x25\\xfb\\x6b\\x4f\\x09\\xc5\\x94\\x73\\xd3\\x85\\xce\\x03\\xe9\\x1b\\xa8\\x65\\xea\\xb6\\x6c\\x58\\xc0\\xab\\xb0\\xb7\\xa7\\x8e\\x4b\\xe9\\x27\\xe5\\x54\\x60\\xcc\\xd7\\x0d\\x82\"},\n{{0x76,0xcc,0x18,0xa1,0xda,0xff,0xfa,0x10,0x05,0x86,0xc0,0x6a,0x7b,0x40,0xf7,0x9c,0x35,0xfe,0x55,0x8c,0x33,0x9c,0x29,0x99,0xa5,0xf4,0x38,0x75,0xcf,0xad,0xe0,0x3e,},{0x4b,0x9d,0xa8,0xd2,0xf1,0x37,0xdc,0x6c,0x85,0x7a,0x99,0xa5,0x99,0x8d,0xd8,0x9d,0xd5,0xf0,0x59,0x71,0xa2,0x1e,0x8c,0x77,0x66,0x70,0xeb,0x47,0xbc,0x12,0x70,0xa5,},{0xdb,0x74,0x75,0x1c,0x66,0xe6,0xb1,0x86,0x60,0x44,0xdd,0x9a,0xe9,0x9f,0x19,0xe6,0x33,0x4f,0x17,0x9e,0x79,0xd8,0xb8,0xe0,0xc8,0xcd,0x71,0xd2,0x2c,0xef,0xb9,0xea,0xb7,0xe3,0xe7,0xa9,0xc2,0xda,0x22,0x5f,0x2a,0x9d,0x93,0xa3,0x13,0xd1,0xcb,0xf1,0xb7,0xfe,0x25,0x97,0xb8,0xd7,0x02,0xbf,0x30,0x17,0xa6,0xa6,0xbc,0x7b,0x7b,0x06,},\"\\x45\\x22\\xb1\\xd8\\x23\\x73\\xf7\\xa3\\x18\\x22\\x1e\\x7e\\x57\\x61\\x75\\x03\\xdd\\xf4\\x4f\\xd5\\x39\\x97\\x52\\x2a\\x1d\\x96\\x3c\\x85\\xb7\\x08\\xd0\\xb2\\x45\\xde\\x37\\x2a\\xd5\\x2e\\xc7\\xf5\\x4f\\x62\\x13\\xd2\\x71\\xf7\\xc9\\x1d\\x5a\\x1d\\x36\\xd1\\x34\\xdb\\x38\\x9d\\xf0\\xb0\\x81\\xa0\\x6b\\xc0\\xc7\\xa4\\x87\\x5f\\x72\\x40\\x92\\x79\\x31\\x72\\xc9\\x11\\x56\\x41\\xc6\\xd0\\x54\\xf1\\xd9\\x92\\xe0\\xfa\\xe4\\xdf\\x58\\x69\\x5f\\x0e\\xa3\\x44\\x9d\\x7a\\x4b\\x3a\\x88\\x57\\xe1\\x98\\x03\\xfe\\x49\\xb6\\xd5\\x2c\\x9f\\xf3\\x74\\x6a\\x57\\x4a\\x27\\x56\\x95\\x65\\x79\\xf9\\xfb\\x80\\x9a\\x0e\\xde\\xc9\\x2c\\x55\\xe9\\x5f\\xfe\\xfa\\x3d\\x05\\xf1\\x65\\x82\\x2f\\x46\\x4a\\x21\\x99\\x9f\\x29\\x69\\x1f\\x67\\x44\\xac\\x5a\\x3e\\xe4\\x90\\x17\\x88\\x06\\x45\\xe8\\x37\\xed\\xeb\\xfd\\x2e\\x0f\\x24\\x99\\x7f\\x04\\x11\\x45\\xa7\\x2e\\x23\\x76\\xad\\xa2\\x83\\x18\\x6c\\xa2\\xb8\\x36\\x36\\x29\\x77\\x19\\x5b\\xae\\xe3\\x0a\\x3a\\xcc\\x81\\xb2\\x43\\xf3\\xee\\x37\\x6a\\x2c\\x47\\x64\\xc7\\x83\\x66\\x7a\\x4b\\x11\\x77\\xe7\\x95\\x1d\\x3e\\x3c\\x7b\\xe4\\xf1\\xbd\\x7a\\xe8\\xc6\\x0f\\xd5\\xfb\\x0f\\xd9\\x1f\\x0c\\x1c\\x14\\xd0\\xd2\\x32\\x7e\\x8f\\x20\\xd9\\x2c\\x0d\\xfc\\xc5\\x38\\x70\\xe9\\xd9\\x9f\\xdb\\xf9\\xdd\\x9a\\x17\\xe8\\x82\\x50\\x9a\\xe7\\xba\\xa8\\x65\\x3e\\x39\\xed\\xc8\\xee\\x56\\x90\\x00\\xd6\\x24\\xcb\\x93\\xa0\\x75\\x4a\\x79\\x8d\\x1f\\x81\\x1f\\x6a\\x0e\\xf5\\x50\\x1a\\x17\\xbc\\xf2\\x5f\\xd0\\xf9\\x16\\x26\"},\n{{0x71,0xad,0x98,0x0d,0x58,0xad,0x8e,0x7d,0x33,0x30,0x66,0x89,0x35,0x89,0x36,0xa3,0x72,0xd5,0x19,0x0b,0x24,0xec,0x7f,0x9b,0xde,0x74,0x9c,0xb8,0x11,0x50,0xef,0xda,},{0xfd,0x35,0xa7,0x5f,0xe5,0xab,0xc2,0x01,0x04,0x69,0x1a,0x24,0xa4,0x65,0x94,0x40,0xb5,0x5a,0xea,0xea,0x90,0x2a,0xc3,0xbe,0x27,0x4a,0xf2,0x7a,0xa8,0x31,0x28,0x69,},{0x81,0x67,0x0b,0x10,0x29,0xe4,0x81,0xe9,0xff,0x3c,0x17,0x1f,0x05,0xc1,0x68,0x61,0xc8,0x46,0xee,0x79,0xcd,0xf2,0xe2,0x1e,0x3b,0xf9,0x52,0xbc,0xfa,0xc9,0x75,0x65,0xf2,0xb1,0xdc,0xed,0xf6,0x9d,0x2e,0x7e,0xb3,0x5c,0xaf,0x56,0x62,0xe8,0xbc,0x67,0x1f,0xbb,0x96,0x75,0x6a,0x63,0xa5,0x96,0x26,0x4d,0x1b,0x7f,0x4a,0xf9,0x7e,0x06,},\"\\xe8\\x7a\\xe0\\x73\\xff\\x5d\\xcc\\x54\\x85\\xa1\\x99\\x40\\xe4\\xe3\\xff\\x26\\x3a\\x06\\x18\\xa9\\x02\\x5a\\xd4\\x03\\x2d\\xfb\\x36\\xd1\\x71\\xce\\x88\\x1f\\x71\\xc1\\x8a\\x49\\x21\\x0e\\xb4\\x58\\x19\\x80\\x61\\x42\\xe2\\xf0\\x0d\\xb3\\x04\\x18\\x35\\xbf\\x2c\\x3b\\xcc\\xf1\\xdb\\xa0\\x2b\\x8b\\x5a\\x5b\\xda\\xf8\\xfe\\xa3\\x16\\xc0\\x62\\x3d\\xd4\\x8a\\x56\\x4e\\xc1\\x66\\xf0\\x37\\xd5\\x87\\xc8\\xc0\\x16\\x84\\xe5\\xe5\\xc0\\xba\\x9d\\xba\\x4d\\x23\\xb4\\x9a\\x03\\x09\\x24\\x4e\\x28\\x2a\\x51\\x40\\x86\\x22\\xed\\xb0\\x57\\x04\\x74\\x7e\\x0c\\xde\\xec\\x97\\x68\\x93\\x77\\x70\\x71\\x09\\x89\\x72\\xc1\\x13\\xa8\\xab\\x63\\x9c\\x31\\xf1\\x61\\x32\\x33\\xee\\x46\\x0e\\xea\\x8a\\x8c\\x10\\xe1\\xe6\\xe1\\x52\\x21\\x45\\x29\\x87\\x8c\\xf1\\xad\\xae\\xaf\\x78\\xcf\\x19\\xba\\xc7\\x13\\x61\\x81\\x5b\\xf5\\x79\\x55\\x49\\x8f\\xab\\x4f\\x0f\\x2b\\x75\\x86\\xc8\\x6f\\x9f\\x4c\\x2d\\xdf\\x89\\x72\\xf9\\xb9\\xe0\\xeb\\x63\\x6d\\x84\\xbc\\xc1\\x43\\x85\\xb2\\xd0\\x38\\xbe\\x55\\xa9\\x63\\x70\\x2e\\xfe\\x22\\x5a\\x50\\xbd\\xd0\\xc4\\xda\\x92\\xa2\\xa6\\xa0\\x91\\x00\\xea\\x04\\xa2\\x11\\xd3\\x96\\x45\\x8d\\xce\\xb4\\x48\\x71\\x16\\x83\\x7d\\x13\\x9e\\xb0\\xf1\\x22\\x53\\x8e\\xd3\\x98\\x6a\\xd0\\xaf\\x4d\\xa2\\xdf\\xfc\\x89\\xf3\\x26\\x9c\\xa8\\x85\\x38\\x08\\x6e\\x69\\x1e\\x5b\\xea\\xe9\\x58\\x1e\\x7c\\x63\\xd8\\xe6\\x12\\xda\\x2c\\x47\\xf7\\x4d\\xde\\x1d\\x94\\x95\\x1e\\xad\\xb0\\xdf\\x60\\xc3\\x89\\x7d\\x2a\\x30\\x95\\xc5\\x06\\x09\\x3b\"},\n{{0x61,0x59,0x4e,0x24,0xe7,0x5f,0x99,0x6b,0x4f,0xb6,0xb3,0xe5,0x63,0xf6,0xa4,0xf9,0x91,0x5c,0xfa,0x65,0xdd,0xb1,0x99,0xb0,0x1f,0xed,0x7f,0x8e,0xd7,0x82,0x4e,0xcb,},{0x86,0x27,0xd2,0x14,0x15,0x79,0xcd,0x25,0x21,0xaa,0x07,0x68,0x00,0xac,0x35,0x4b,0x9e,0x3a,0x47,0xd7,0x1c,0xed,0xc8,0x54,0x74,0x34,0x26,0x82,0x25,0xe3,0x30,0x05,},{0x63,0x02,0xb3,0xff,0x27,0x10,0xbe,0x30,0x6c,0x92,0xb9,0xaa,0xe3,0x0d,0x23,0xc3,0xd4,0xbe,0xff,0x39,0x4e,0x63,0x20,0x1e,0x6a,0xd1,0x17,0x13,0x34,0x5c,0x4f,0xcb,0x5c,0xc8,0xd3,0xdd,0x10,0xad,0xfb,0x82,0xbb,0x11,0xa1,0x89,0xce,0x7e,0xc3,0xe4,0x22,0x27,0x27,0x62,0x4f,0xc1,0x78,0x81,0xc1,0x47,0x88,0xd2,0x71,0x0e,0x16,0x08,},\"\\xbc\\x01\\xb0\\x8c\\x7c\\xaa\\x23\\x61\\x00\\xa0\\x12\\xa7\\x26\\x47\\x7d\\x0e\\xc3\\x89\\xdb\\xfa\\xda\\xc7\\x3d\\x51\\x06\\x42\\x4c\\x5d\\x1f\\x3d\\x1c\\xef\\x16\\x95\\xcf\\xd9\\x3a\\x70\\x62\\xec\\x8b\\xf1\\x06\\x70\\x47\\x85\\x49\\x20\\x16\\x2f\\x65\\x13\\x57\\xbe\\xdf\\x1c\\xd5\\xa9\\x2e\\xc2\\x9b\\xdb\\x5d\\xff\\x71\\x6e\\x8f\\x60\\x25\\x51\\x5a\\x95\\x49\\xba\\x36\\xcd\\xc3\\x5c\\xed\\x7c\\x5c\\x0c\\x36\\x8e\\x6c\\xd9\\x2f\\x2f\\x10\\xae\\x14\\x6a\\x20\\x72\\x8c\\x37\\x4b\\xba\\x50\\x96\\x41\\xce\\x88\\xcb\\x42\\xff\\xf0\\xce\\xdf\\xd9\\xfd\\x67\\xf3\\x10\\xf9\\xd0\\x1a\\x3f\\x36\\x90\\xeb\\x21\\xdb\\x17\\xbc\\xe6\\x7a\\xe3\\x5c\\x4c\\xd2\\x4c\\x20\\x9f\\x09\\xf0\\x44\\x75\\x9d\\x8d\\x5a\\x7d\\x24\\x8e\\x2b\\xd9\\x66\\x52\\x4b\\xa8\\xc0\\xc2\\x89\\x74\\x72\\x6b\\x43\\xbd\\x05\\xde\\x84\\x34\\x33\\xcc\\x40\\x05\\x98\\x92\\x29\\x74\\x62\\x3d\\x9a\\xcb\\xfd\\xc7\\x61\\xc4\\xc0\\x43\\x75\\xa9\\x52\\xce\\x54\\xca\\xff\\xaa\\x96\\xac\\xff\\x6d\\x9d\\xc2\\x78\\x74\\x2a\\xf4\\x76\\xe1\\x86\\x5c\\xb8\\xc2\\x0d\\x13\\xd1\\xc1\\x90\\x08\\x63\\xbc\\xa2\\x31\\xe4\\x4c\\x6b\\x0d\\x47\\xcb\\x41\\xd5\\x10\\xf7\\x95\\x8f\\x48\\xf3\\x04\\xd0\\x3d\\xa0\\x33\\x48\\x4a\\x3e\\x1f\\x27\\x3f\\xaf\\x69\\x83\\x37\\x5b\\x7d\\x3b\\xe0\\x3d\\x8a\\x0a\\x00\\x2d\\xef\\x63\\x65\\xbe\\xb2\\xfa\\x8c\\xcf\\x1a\\x94\\x98\\x7a\\xdc\\xd3\\x3d\\x0d\\xa1\\x17\\x7f\\xc5\\x15\\x9b\\x6e\\x56\\xd0\\x04\\x30\\x1e\\x92\\x1d\\xbc\\x12\\xec\\x0a\\x73\\xf4\\x13\\xcf\\x2c\\x48\"},\n{{0x54,0xe6,0xbb,0xfb,0xf8,0xc0,0x6f,0xf2,0xc0,0x66,0x31,0x8c,0x2e,0xbf,0x03,0xd5,0x06,0x54,0x7b,0xf4,0x3c,0x2d,0x7a,0x5d,0x4d,0xf3,0x05,0xa3,0x03,0x2b,0x71,0x38,},{0x3b,0x71,0xaa,0x1d,0xef,0x66,0x6d,0x91,0x88,0xf4,0x03,0xf8,0x2e,0xd3,0x04,0x54,0xab,0xa5,0xbc,0x9f,0x47,0x0f,0x6e,0xb9,0x88,0xda,0x18,0x7c,0x92,0x52,0x32,0x84,},{0x3d,0xf4,0xd0,0x90,0x79,0xf8,0x30,0xe3,0xf9,0x82,0x28,0x36,0x81,0xba,0x37,0xb5,0x0f,0x3c,0x73,0xde,0x2c,0x5d,0x22,0xa2,0x91,0x35,0x8e,0xbb,0x1f,0xb8,0x54,0xe5,0x10,0xf6,0x3f,0x9a,0x48,0xe9,0xff,0xf7,0xfd,0x83,0x11,0x30,0x2e,0xa3,0xe9,0x69,0x39,0x4e,0x6d,0x49,0xc9,0xe3,0x18,0x20,0x54,0x94,0x2f,0x6a,0x74,0x4c,0xee,0x03,},\"\\x03\\x18\\xd7\\xcb\\x48\\x05\\xaf\\x98\\x21\\xdd\\x3f\\x91\\x4b\\x0e\\x07\\x6f\\xea\\x04\\xa7\\xd2\\xdb\\x3a\\x59\\xa0\\x0a\\xff\\xea\\xd3\\x32\\x5a\\x2b\\xe4\\x0c\\x1f\\x87\\xf5\\x32\\x76\\xa8\\x55\\x26\\x04\\xf2\\x28\\xb9\\x76\\xe2\\x88\\xb9\\xbe\\x90\\x6a\\x7b\\xd2\\x5b\\x2f\\xfa\\xb8\\xa8\\xaf\\x5d\\x0f\\x6e\\x08\\x78\\x6f\\xd0\\x34\\xe2\\xfe\\x1e\\xb7\\xee\\x03\\x39\\x79\\x86\\x0d\\xd1\\xe5\\x32\\x72\\x87\\xe9\\xe6\\x15\\xf5\\xdc\\x5a\\x96\\x0f\\x17\\x02\\x6b\\x56\\x84\\x2f\\xc8\\xd4\\x4c\\xad\\x00\\x2e\\xdc\\x85\\x01\\xcf\\xb9\\x56\\x00\\x15\\x02\\xe4\\xdd\\xc8\\x1a\\x77\\x00\\xd9\\xc0\\xbe\\x88\\xeb\\x4a\\xaa\\x64\\xa6\\xcb\\xc3\\x9d\\xe8\\x2f\\x13\\xc1\\x10\\x86\\xde\\x1a\\x42\\x70\\xd3\\xaf\\x97\\x28\\x4b\\xac\\x1c\\xae\\xf1\\xd3\\xed\\xaa\\x10\\x71\\x66\\x6b\\xd8\\x3b\\x2e\\xde\\x39\\x62\\xd9\\x8b\\x9d\\x93\\x49\\x7d\\xdf\\xd8\\xe9\\x7d\\xab\\x30\\x89\\x95\\x0c\\xf3\\x0e\\xd1\\x1d\\xb7\\x7a\\xd1\\x43\\x7a\\x0a\\xf5\\x88\\x9d\\x8e\\xfc\\x44\\xe6\\x12\\x42\\x0e\\x39\\x07\\x26\\x7d\\xf3\\xac\\xff\\x4b\\xd3\\xfb\\x6e\\x8c\\xa5\\xba\\xdf\\x8e\\x72\\xf9\\xde\\x39\\x52\\x86\\x53\\x05\\x85\\x24\\x45\\x6a\\x81\\xda\\x5f\\x84\\x98\\x2a\\xfa\\xc3\\x4b\\xef\\x5f\\x71\\xe9\\x1f\\x8f\\x90\\x93\\x8a\\x6f\\x5f\\x1f\\x28\\x77\\x16\\xde\\x56\\xa0\\x94\\x6d\\x26\\x1e\\x87\\xbc\\x77\\x5c\\xe1\\x89\\xe4\\x1a\\x77\\xba\\xed\\xe7\\x32\\x0a\\x3c\\x60\\x8f\\xc9\\x71\\xe5\\x5d\\x0a\\x77\\x3c\\x4d\\x84\\x8d\\x42\\x86\\x37\\xf1\\x1b\\x4e\\x44\\x60\\x39\\x0c\"},\n{{0x68,0x62,0x06,0x1b,0xe0,0xde,0x9d,0xfd,0x99,0x81,0x18,0x20,0x4b,0x2b,0x98,0xdb,0x3c,0xe7,0xd7,0xe8,0x19,0xdb,0xc1,0x07,0x94,0xaf,0x0a,0xb2,0xb0,0x6e,0x84,0x34,},{0x9c,0x5f,0x7c,0x22,0x65,0xdd,0xe1,0xb2,0x5e,0x4f,0x27,0xec,0x71,0x58,0x0d,0x52,0xdc,0x89,0xf2,0xc3,0xa7,0x12,0xbc,0x1a,0xd5,0xd6,0xd6,0x9e,0x71,0x1e,0x08,0xd4,},{0x96,0x5e,0xdb,0x34,0xe8,0xab,0x8b,0xc3,0x20,0x4a,0x32,0x01,0xd2,0x21,0x86,0x37,0x2d,0xe4,0x24,0x26,0x00,0x29,0x7c,0xfd,0xb5,0x7a,0xa1,0xdf,0x07,0x4e,0xc5,0x0d,0xdf,0x10,0x10,0x5e,0x9d,0x4c,0x89,0xa2,0x66,0xc3,0x4d,0xb7,0x77,0x2a,0xa9,0x4c,0xba,0x94,0x64,0x29,0xe6,0x8b,0xa6,0x2b,0xf9,0xa0,0xac,0x90,0xf5,0xf0,0x5b,0x02,},\"\\x17\\x40\\xdd\\xe8\\x43\\x4a\\x0d\\x68\\x99\\x25\\x67\\x9b\\x0c\\x18\\x03\\x00\\xcd\\xbd\\x0c\\xf6\\xa8\\x9a\\xd8\\xfd\\xe3\\x46\\x53\\x31\\x6c\\xee\\x4c\\x57\\x1a\\x41\\x05\\xc9\\xe9\\xe0\\x28\\x42\\x38\\xfe\\xf2\\xc3\\x8a\\x09\\x15\\x7c\\x5d\\xb9\\x43\\x40\\x57\\x1b\\x39\\x0a\\xdf\\xb6\\x9f\\xf4\\xc0\\xdc\\x50\\x53\\x25\\x3a\\x67\\x9d\\x42\\xcc\\x1f\\x1b\\xf1\\xff\\x42\\x92\\x29\\xea\\x0a\\x50\\x44\\xc6\\xf7\\x95\\x64\\xe0\\xdd\\x28\\x7f\\x53\\xf0\\x15\\xb8\\x31\\x87\\xd9\\xad\\x27\\xd9\\x10\\x39\\xaf\\x06\\x2c\\x43\\x7b\\x15\\x75\\xa0\\xea\\xb6\\xae\\xb8\\xaa\\x0d\\x27\\xb2\\x76\\x65\\xd6\\xde\\xa9\\x04\\x1f\\xf9\\x96\\x3a\\x31\\x18\\xb3\\x29\\x8a\\x85\\x44\\xe3\\xfd\\x69\\xac\\x68\\x77\\xe3\\xe4\\x05\\x2f\\xe4\\x42\\x2b\\xf0\\x35\\x60\\xb2\\xc5\\x7e\\xc5\\x31\\xee\\x8b\\x5f\\xf5\\x3c\\x28\\xdb\\xde\\x35\\xbb\\x45\\xc3\\x50\\x77\\x63\\x6e\\x6f\\x84\\x1b\\x59\\xd7\\xeb\\x77\\xbc\\x77\\x91\\xb6\\x09\\x38\\x58\\xa3\\xa8\\x0a\\x3a\\xa6\\xd7\\x78\\xdb\\xf5\\x3d\\xb9\\xd0\\x61\\x19\\xc5\\x0b\\x71\\xc7\\x91\\xc0\\x49\\x5c\\x57\\x6d\\x1b\\x59\\xd3\\x96\\x87\\x3e\\xd8\\x71\\x48\\x53\\x52\\xc8\\x29\\x9a\\x35\\x9d\\xa5\\xee\\x9d\\x7f\\x36\\xed\\x14\\x55\\xf8\\x98\\x51\\xa3\\x08\\x51\\xbe\\xa7\\x19\\x68\\x5a\\xec\\xd0\\x8f\\x25\\x56\\x26\\x09\\xdd\\x10\\x66\\x30\\x73\\x52\\x77\\xe1\\xd6\\x51\\x9b\\xb1\\x68\\x7d\\xe8\\xb8\\xc6\\x8b\\x96\\x71\\x45\\x2e\\xdb\\xb3\\x49\\x1d\\xa2\\x64\\xcd\\xfa\\x00\\x17\\xc5\\x12\\xd2\\x76\\x97\\x59\\xcb\\x92\\x5f\\xb6\\x64\"},\n{{0xb2,0x25,0x0b,0xbc,0xb2,0x68,0xd2,0x47,0x7c,0x83,0x12,0xb1,0x90,0x0f,0xd9,0x99,0x82,0xba,0xa2,0x9a,0x68,0x97,0x4f,0xbf,0x87,0x78,0xa1,0x22,0x8d,0xc9,0x75,0x50,},{0x44,0xaa,0x8d,0xf1,0x18,0x16,0x74,0xb0,0x5a,0xde,0x98,0x0f,0x7e,0xdd,0xba,0xf3,0xbd,0x74,0x22,0xa9,0x20,0x28,0x7c,0xb2,0xd2,0xdb,0x59,0xa0,0x63,0xee,0xbf,0x74,},{0xf2,0xb8,0xd9,0x2e,0xd5,0x1e,0xbd,0x10,0x00,0xbf,0x9d,0xd3,0x41,0x1a,0x9f,0xa9,0xe7,0xae,0xe5,0x4c,0x4c,0x86,0xe2,0x4a,0xd0,0xf9,0xad,0x5c,0x55,0x64,0x3a,0x12,0xd6,0x80,0x01,0x9c,0xa0,0x3f,0x21,0x6b,0xd4,0xbd,0x32,0xc9,0xce,0x1c,0xd8,0xa5,0x28,0xc3,0xff,0xaa,0x5d,0x5b,0x1d,0xc9,0x1a,0x4b,0xe5,0x6f,0x0e,0x2c,0x5e,0x06,},\"\\x7e\\xf0\\xae\\x13\\x36\\xa6\\xfa\\xb3\\x7f\\x99\\xda\\x5f\\xa7\\xd0\\xde\\xc7\\x40\\x9c\\x07\\x26\\x23\\xea\\xd8\\x4f\\x24\\x1d\\x53\\xd0\\x59\\x6b\\x46\\x17\\x05\\xfb\\x1b\\x3c\\x53\\x7d\\x36\\xb8\\x9e\\x89\\x60\\xfe\\xbb\\x4c\\xdc\\x0d\\x42\\x7c\\xe2\\xfc\\x1b\\xe5\\x8d\\xbb\\xce\\x15\\x1e\\x35\\xac\\xd8\\xb6\\xac\\xe4\\x0a\\x19\\x82\\x29\\x14\\xa4\\xbd\\x8c\\x4a\\xf6\\x32\\xf1\\x36\\x41\\x8a\\xc4\\x9b\\x18\\x4d\\x55\\x19\\x3e\\xbc\\xc3\\x2d\\x0d\\x79\\x87\\x09\\xb1\\xa8\\xfe\\x29\\x4f\\xba\\x8a\\x1f\\xe7\\x2d\\x97\\x6b\\x44\\x00\\xd4\\xa3\\x93\\x24\\x23\\x11\\xb0\\xf8\\xcc\\x99\\x4e\\x89\\x47\\x5b\\x00\\x38\\xae\\x5d\\x89\\x14\\x93\\x8e\\x8f\\x6e\\x87\\xc6\\xf5\\x0b\\x9d\\x65\\x6c\\x45\\xd7\\xb1\\x42\\x31\\xef\\xed\\x97\\xf3\\xc9\\x06\\x68\\x91\\x36\\x70\\xbf\\x5b\\xe2\\xef\\xd5\\xc2\\x70\\xc7\\xcb\\xaf\\x01\\xe8\\x57\\x2e\\x98\\x00\\x97\\x8d\\xfe\\x2e\\x10\\xa2\\xfc\\x04\\x40\\xb8\\x55\\x62\\x9b\\xf9\\xcd\\x40\\x9e\\xa9\\x41\\xcb\\x69\\x22\\x6c\\xac\\x77\\x1b\\x15\\xea\\x77\\xc0\\x32\\x68\\x48\\x80\\x6f\\xf8\\xd2\\xe2\\x01\\xe6\\xe2\\x6c\\xd5\\xf4\\x54\\x30\\xda\\xdc\\xff\\x8f\\x59\\xc3\\x21\\xc1\\xc9\\xc6\\xa2\\x9b\\x94\\x88\\x29\\x35\\x44\\x7d\\x3e\\x6c\\x2e\\x88\\x04\\xb1\\x16\\x15\\x76\\xbd\\xf0\\x32\\x0f\\xe5\\x3c\\x30\\x7d\\x9c\\xde\\x42\\x60\\x77\\xa7\\x67\\x7c\\xde\\x3c\\x1b\\xc8\\x3e\\x18\\xe6\\x0a\\x0c\\x4e\\xe6\\xdc\\xcd\\x87\\x7c\\x21\\x3a\\x8e\\x4c\\xca\\x64\\x0e\\xe0\\x49\\x29\\x80\\x45\\x70\\xae\\x1f\\x96\\x15\\x7c\\x04\\x35\\x7a\"},\n{{0xb8,0x09,0x36,0x1f,0x55,0xcf,0xe8,0x13,0x7f,0xbd,0xa8,0x80,0xfc,0x62,0xcb,0xe4,0x4c,0x21,0x6e,0x14,0x18,0x93,0x34,0x63,0x02,0xb3,0x36,0x04,0x5d,0xe2,0x18,0x78,},{0xfd,0x23,0xe4,0x2f,0xf0,0x66,0x44,0xea,0xd3,0x47,0xab,0xcc,0x1b,0x3e,0x03,0xb0,0xe8,0x85,0x93,0xb6,0x12,0x54,0x98,0x1d,0xd8,0xae,0x59,0x45,0x4e,0x61,0xb3,0xe0,},{0xb5,0xb5,0x95,0x0d,0x37,0x72,0xd2,0xee,0xf8,0x8e,0x1b,0x0f,0x5d,0xf5,0xff,0xae,0x2f,0x21,0x03,0x88,0x5e,0x71,0x44,0x6d,0x34,0x6f,0xbb,0x5d,0xae,0xf9,0x49,0x67,0xa6,0xb7,0xb6,0xe4,0xbe,0x88,0x51,0x10,0x06,0x58,0x76,0xc6,0x65,0xb7,0x81,0x2d,0xe4,0x6a,0xd3,0x1e,0xc3,0xbf,0xcb,0xea,0xee,0x13,0xed,0x0c,0x1e,0x0b,0x30,0x0e,},\"\\x17\\xac\\xe1\\x97\\xd0\\x83\\xaa\\xf1\\x72\\x6f\\x53\\xe5\\xef\\x81\\xb5\\xa8\\xc0\\x92\\x22\\xf2\\x60\\xee\\x5f\\x1f\\x54\\x04\\xab\\x78\\xd9\\x00\\xd4\\x89\\x68\\x84\\x49\\xb8\\x43\\xba\\xd3\\xc4\\x98\\xaa\\xc6\\xd8\\x0b\\x46\\x39\\xb7\\x6e\\x6e\\x81\\xc5\\x52\\x76\\xa6\\xf9\\xc7\\xce\\xcd\\x70\\xb7\\x1a\\xaa\\xf2\\x01\\x8e\\xf7\\x6c\\x0e\\x30\\x15\\x4a\\xae\\x86\\xa5\\xc8\\x6d\\x4e\\x8d\\x0e\\x4e\\xc6\\x8c\\xc4\\x27\\x06\\x0b\\xd5\\x65\\x14\\xf7\\x23\\x80\\x86\\xbb\\xef\\x5b\\xfc\\xa1\\xf5\\x67\\x1b\\x18\\x04\\x18\\x38\\xfd\\x01\\x35\\x72\\x44\\x3d\\xba\\x48\\xfb\\xdd\\x95\\xca\\x74\\x0b\\x0d\\xaa\\x43\\x27\\x16\\x4a\\x1e\\x34\\x67\\x72\\x49\\x70\\x8f\\x77\\xbd\\x79\\x3e\\x7c\\xaa\\x66\\x38\\xb5\\xdc\\x9f\\xbe\\x6f\\x0d\\xfd\\x41\\x20\\x20\\x90\\x97\\x20\\x9c\\x93\\xce\\xdf\\xaf\\x21\\xb6\\xbf\\x59\\xca\\x6e\\x99\\xe6\\x20\\x96\\x39\\x44\\x4f\\x0e\\x82\\x7b\\xbc\\xc0\\xa6\\x1c\\x3a\\x23\\x7c\\xa2\\x2a\\x28\\x32\\x13\\x22\\x3a\\xb6\\x58\\xe7\\x12\\xc7\\x55\\x62\\x38\\xd3\\xa5\\xfe\\x31\\x72\\x2d\\x65\\xf5\\x70\\x6e\\xf6\\xd6\\x4d\\x73\\x23\\x2d\\x30\\x43\\x22\\x0f\\x14\\xe5\\xcf\\xd3\\xc2\\xc8\\x3a\\x83\\xd6\\x8e\\x20\\x27\\x4b\\x6f\\x96\\xb2\\x9d\\xe0\\x40\\xce\\xc8\\x47\\x50\\x30\\xb6\\xa8\\xa8\\x7d\\x29\\x80\\x8d\\xd3\\x81\\x79\\x5c\\x3d\\x22\\xac\\xf5\\xdc\\x19\\x3b\\x72\\x0d\\x95\\xa7\\x52\\xd9\\xf1\\x23\\xc2\\x09\\xff\\xba\\x00\\x4e\\x48\\xdd\\x06\\xdd\\x8c\\x9e\\x17\\x2b\\xc9\\xe0\\x87\\xd8\\x0b\\xc5\\x21\\x6c\\x0b\\x0b\\x6e\\x77\\x03\\x12\\x41\"},\n{{0xee,0xef,0x80,0x74,0xc2,0xeb,0x9a,0x1c,0xee,0x2f,0x2d,0x3b,0xb0,0x53,0x25,0x54,0x6a,0x9f,0xb7,0xcb,0xe4,0x4b,0x59,0x94,0x61,0xfc,0x58,0x85,0xf5,0xfd,0x9c,0xac,},{0x9b,0x89,0x29,0x41,0xa0,0x57,0x3b,0x7a,0x16,0x73,0xef,0x48,0x0f,0x08,0x11,0x68,0xd9,0xb7,0x49,0x6a,0x81,0xf9,0x17,0x7d,0xc4,0x27,0xca,0x1f,0x84,0xcb,0xbf,0x7d,},{0x6f,0x71,0x01,0x98,0x4f,0xd6,0x89,0x2e,0x21,0x44,0xb7,0xd4,0x56,0x19,0x83,0x0c,0xae,0xb6,0x71,0x3b,0xfa,0xb4,0xee,0xbb,0xe2,0x17,0xc5,0xbe,0xcd,0x24,0x9b,0xd9,0xd7,0x52,0xeb,0x76,0xe9,0xfa,0x99,0x5e,0x7c,0x71,0xff,0x7d,0xf8,0x6b,0xb2,0x60,0xcd,0xda,0x17,0x3f,0xf5,0xde,0xec,0x6a,0xf2,0x04,0xb7,0xdd,0xe0,0x11,0xde,0x09,},\"\\x9a\\xe3\\x9f\\xea\\xde\\x90\\x5a\\xff\\xcb\\xed\\xd2\\xe7\\x2a\\x6f\\x24\\x29\\xb3\\xd1\\x10\\x8e\\x5b\\xc1\\xa9\\xdb\\xaf\\x49\\x0a\\x62\\x99\\xbc\\xcd\\x94\\xac\\xc4\\x13\\xad\\xac\\xc9\\x18\\xb1\\x4a\\xfa\\x85\\xc7\\x8b\\xc1\\x68\\xcc\\x00\\x74\\x0c\\x3d\\xa0\\xe0\\x81\\x83\\x91\\x5f\\x79\\xb7\\xfe\\x38\\x68\\xce\\x2a\\x7e\\x88\\x6b\\x32\\xad\\x45\\x00\\x98\\x05\\xbf\\xb8\\x1b\\x8c\\x07\\xb3\\xb1\\x02\\x24\\x20\\xc0\\xf0\\x09\\xb8\\x89\\xd7\\xfc\\x22\\xfd\\x19\\x97\\xae\\x34\\x19\\x84\\x38\\xca\\x94\\x77\\x85\\x75\\x12\\x2f\\xca\\xaf\\x96\\xe6\\x50\\x2c\\x33\\xa7\\x5a\\x12\\x9a\\x2d\\x0d\\xbb\\x07\\x3d\\x93\\x82\\x0d\\x9c\\x96\\x68\\x3d\\xb3\\x18\\x99\\x0b\\xe3\\xfe\\xf4\\xca\\xfc\\x89\\x0a\\xfb\\xd9\\xb1\\x50\\x4c\\x74\\x39\\xa0\\x8a\\x06\\x5e\\x78\\x14\\xee\\x4f\\x9b\\x6f\\x57\\xee\\x16\\xba\\xed\\x3f\\x0e\\x3a\\xa3\\x5d\\xd2\\x3d\\x35\\x28\\xa4\\x58\\x91\\x9a\\xd7\\x70\\x48\\xb4\\xe2\\xe6\\x17\\x23\\x46\\xbe\\x24\\x9a\\x50\\xaf\\x02\\xbc\\x6c\\x85\\x33\\x04\\xc2\\x08\\xae\\x0b\\xa0\\x27\\x71\\x26\\x2a\\x0d\\x8a\\x46\\x5f\\x71\\xfa\\x06\\x35\\xe5\\x3e\\xb2\\xef\\x0a\\x84\\x7d\\x56\\xa0\\xbc\\xd7\\xdd\\x3f\\xe0\\x77\\xc9\\x2b\\xcd\\xca\\x30\\x69\\xa4\\xa6\\x82\\xa2\\x85\\x99\\x28\\x31\\x5c\\xe3\\xeb\\x44\\x5c\\x60\\x72\\xa7\\x14\\x92\\xee\\x82\\xe1\\x72\\xa2\\x0b\\xe0\\xb6\\x48\\xb7\\x56\\xe6\\xc7\\x75\\x37\\x6f\\x0c\\x7c\\x3d\\xf8\\xe6\\x42\\x88\\x08\\x9c\\x2f\\x81\\xce\\x95\\x93\\xc6\\xe0\\x8b\\xb1\\xcc\\x1b\\x27\\xfc\\xbd\\x39\\x2f\\xc7\\x95\\x2c\\x55\"},\n{{0x61,0xfa,0xeb,0x15,0xf8,0x57,0xf6,0x55,0x78,0x62,0xc8,0xb8,0xc7,0xef,0x41,0xf8,0x05,0x45,0x52,0x09,0x96,0xfc,0xc1,0x12,0x7b,0x8c,0x24,0x91,0x82,0x22,0x01,0xae,},{0x60,0xa2,0x90,0xc0,0xfc,0x42,0x5a,0x08,0x74,0x67,0x3d,0x94,0xf9,0xbb,0x14,0x00,0xf9,0xda,0xcd,0xe9,0x95,0x4f,0x9f,0x5b,0x05,0xdd,0x48,0xab,0x74,0x7a,0x39,0x50,},{0x31,0xf9,0x0f,0x50,0xb2,0xdc,0x70,0x5f,0x1d,0x92,0xf1,0x2c,0xa9,0x97,0x5d,0x76,0xf1,0xb2,0x82,0x6a,0xda,0x3c,0xc1,0x85,0xb0,0xed,0x6c,0x83,0x86,0x07,0x77,0xbd,0x8c,0x48,0x9b,0x59,0x85,0x5a,0x91,0xf6,0x48,0x39,0xd4,0x9b,0xa4,0x67,0x98,0x5a,0xbb,0x37,0x6c,0x47,0xa4,0x90,0x8b,0x27,0x1b,0x8f,0x77,0xc5,0x8d,0x01,0xfd,0x04,},\"\\x25\\x3b\\x56\\x6e\\xcc\\xb5\\x63\\xbd\\x6e\\x48\\x0c\\x69\\x73\\x9b\\x8e\\x37\\x25\\x19\\xa3\\x43\\x72\\x54\\xe0\\xe5\\x02\\x9c\\xac\\x86\\xc7\\x16\\x38\\xf2\\xdf\\x2a\\x6c\\xf9\\xe5\\x6d\\xb2\\x56\\x99\\x34\\xde\\xba\\x90\\xdb\\x75\\x54\\x7e\\x36\\x71\\x74\\x7d\\xf6\\x4d\\x6f\\x2a\\xaf\\x3c\\x11\\x0f\\xa6\\x7a\\x70\\x94\\xcc\\xbe\\x4c\\xc5\\x35\\x5f\\x0d\\x43\\x23\\x51\\x36\\xee\\x26\\xdb\\xe3\\x7f\\x42\\x25\\xd3\\xbb\\xfe\\x24\\x55\\x95\\x28\\x05\\x85\\xfb\\x54\\x8f\\x89\\x4e\\x86\\xc5\\x16\\x10\\x25\\x80\\x29\\x1f\\xa7\\xa0\\x28\\x59\\x55\\x7f\\xb9\\x8e\\xb5\\x88\\x87\\x08\\x28\\xb0\\x99\\x0a\\xe9\\xd7\\x4f\\x38\\x31\\xda\\x58\\x94\\x6b\\xc7\\xa5\\xce\\x1b\\xa4\\x98\\xb4\\xe8\\xbe\\x89\\x89\\xa3\\xb5\\x0d\\x7e\\x87\\x89\\xf5\\x6b\\x8b\\x4f\\xec\\xbc\\x2a\\x33\\xbf\\xa3\\xef\\x59\\x1a\\x0f\\xbc\\xd9\\x32\\xfa\\x93\\xe1\\x9f\\x3a\\x81\\x2a\\xe5\\xe4\\xe3\\xb4\\xb2\\x42\\xbe\\x77\\x05\\xa5\\x87\\x4a\\xf7\\x3b\\xe3\\x10\\xb0\\x05\\x82\\x66\\xa3\\x78\\xf2\\x3c\\x13\\x48\\x52\\x47\\x15\\xb0\\xcc\\xc1\\x8d\\x66\\x34\\xb2\\x36\\x36\\xc3\\x16\\xba\\x6a\\x1d\\xd2\\xfd\\x50\\x92\\xc0\\x67\\x16\\xa7\\x17\\xb5\\x4d\\x0e\\xb9\\xfc\\x7f\\x63\\x6f\\x85\\xbb\\xf2\\x25\\xa2\\xcf\\x03\\x5b\\x4b\\x7c\\xfd\\xdd\\x75\\x35\\x16\\x82\\xc0\\x57\\x6c\\x6b\\x3b\\xa5\\xa1\\xc0\\xb2\\x5e\\xc5\\x94\\xe7\\x70\\x9d\\xd0\\x9a\\x00\\x79\\x77\\x2f\\xf3\\xac\\xc6\\x7f\\xb6\\xc1\\xb3\\x7b\\xb3\\x74\\x2b\\x72\\x6e\\x77\\xe8\\x05\\x61\\xd9\\xab\\x73\\x16\\x0b\\x73\\x36\\x25\\x81\\xda\\x5b\\x9c\\x7f\"},\n{{0xe6,0xb9,0xcd,0x4d,0xa0,0x7c,0xb3,0x4f,0x30,0x39,0x1c,0xf6,0x8f,0x0d,0x87,0xc7,0xcf,0xcf,0x68,0xf8,0x10,0xff,0xa4,0x0f,0x97,0x39,0xc9,0x5d,0xeb,0x03,0x7f,0x71,},{0x56,0x9e,0xde,0x0f,0x04,0x63,0x0b,0x43,0xa0,0x4c,0x5a,0x66,0xb6,0xa5,0x63,0x6b,0x76,0x6c,0x75,0x96,0x59,0x84,0xa7,0x47,0x7e,0x15,0x49,0x19,0x60,0xfd,0xd8,0x64,},{0x1e,0x37,0x5c,0x94,0xbd,0x80,0x9c,0xa0,0xcd,0xd0,0x2f,0x89,0xec,0xec,0x4e,0x43,0x77,0x32,0xdd,0x20,0xa0,0xa8,0x4b,0x25,0x4e,0xae,0x88,0x9d,0x80,0x70,0xe6,0x82,0xd1,0x13,0xb0,0xbe,0x22,0xe4,0x1e,0x6c,0xdc,0x3b,0xe8,0x77,0x68,0x0e,0x7e,0xeb,0x7f,0x09,0x95,0xe6,0x62,0x2d,0xc0,0xb4,0x34,0xfb,0x09,0x49,0xdd,0x99,0x4b,0x0c,},\"\\x69\\xde\\xf0\\x52\\x3a\\xfd\\xa6\\x96\\xf8\\x44\\x8f\\x9c\\x11\\x43\\xab\\xc2\\x65\\x33\\xe6\\x86\\x95\\xa0\\x90\\xdf\\x0d\\x9e\\x43\\xd0\\xc0\\xef\\xf4\\x35\\x83\\xe6\\xf7\\x09\\xd2\\x04\\x3c\\x81\\x5f\\xbb\\x3f\\x96\\xba\\x2b\\x0d\\xc3\\xbe\\x6f\\xec\\xad\\x5d\\xd3\\x81\\x48\\x78\\x8e\\x4a\\x03\\x85\\xa9\\xfe\\x7a\\x92\\x1f\\xcb\\x8c\\xce\\xe0\\xe4\\xd3\\xae\\xd4\\xbc\\x3d\\x21\\x6d\\x84\\xb4\\x14\\xf9\\x58\\x0b\\x02\\x82\\x0c\\x03\\xd9\\x2e\\x67\\x5e\\x68\\x5c\\x4b\\x58\\x51\\xf3\\x63\\xbb\\x4d\\xf9\\x7b\\x41\\x7c\\x3f\\xd9\\x00\\x22\\xee\\xaf\\xa2\\x0d\\xfb\\xe8\\x29\\x64\\xf2\\xff\\x07\\x3d\\x25\\x57\\x58\\xfb\\xe5\\x67\\xc7\\x6b\\x2c\\x35\\xe2\\xb0\\x9f\\x8a\\x8d\\x7a\\xfa\\x32\\xc6\\xf5\\xad\\x01\\xbc\\x3e\\xbf\\x6e\\x21\\x06\\x06\\xdb\\x03\\x8e\\xcb\\x68\\x20\\xce\\x1e\\xa4\\xdd\\x52\\x9f\\xc1\\xad\\xfb\\xc2\\xa1\\x38\\x56\\x5a\\xc6\\xd0\\xf4\\xa4\\x10\\x9b\\xdd\\x47\\xb8\\xaa\\x6e\\xf4\\xb8\\xbe\\xde\\x45\\x46\\x80\\xd1\\xdb\\xdb\\x75\\xfe\\x1e\\xb2\\xe5\\x48\\xd5\\xde\\x7c\\xb6\\xd7\\x92\\xfe\\xf3\\xaa\\x0d\\x84\\x80\\xa6\\x03\\x0b\\x30\\xf1\\x04\\xd7\\xe7\\x6b\\x58\\xe9\\xf4\\x76\\xeb\\xf2\\xcc\\x83\\x29\\x23\\xb5\\x0c\\x50\\xc1\\x11\\xc3\\x51\\x5f\\xc5\\x18\\x85\\x23\\x23\\x42\\x6c\\xa7\\x78\\xa5\\x96\\xd3\\x19\\x5d\\xa8\\x58\\x5d\\x8c\\x3a\\xa9\\x20\\x83\\x31\\x3a\\x6e\\x65\\x85\\xb7\\x0c\\x98\\xb1\\x85\\xb4\\x72\\x79\\x8a\\x61\\xcd\\xe7\\x7e\\x62\\xec\\x27\\x2f\\x14\\xb0\\xd9\\xeb\\x4f\\x22\\xf9\\xc7\\xc0\\x58\\x17\\xda\\x6f\\xde\\xfe\\x78\\x79\\xa5\\x84\"},\n{{0x4d,0x90,0x44,0xf1,0x7b,0x5a,0x09,0x77,0xdc,0x5a,0xa9,0x91,0x6a,0x92,0x43,0x00,0xa2,0x44,0xa1,0xef,0x7f,0x06,0x02,0x77,0xad,0x49,0x78,0x35,0x1e,0xa6,0x42,0x91,},{0xab,0x9c,0x06,0x92,0xa6,0x06,0xb2,0x56,0x7c,0x19,0xc3,0x0f,0x9f,0xaa,0x3b,0x4c,0xfe,0x72,0xfb,0x23,0x70,0x77,0x76,0x7b,0x76,0xd3,0xb2,0xae,0x14,0x90,0xa6,0xd4,},{0x6f,0xa4,0x8a,0xea,0x4d,0x5b,0x9a,0xf6,0x5a,0xf9,0x64,0xcd,0xb7,0x09,0x44,0x3a,0x11,0xfa,0x84,0xf7,0xd4,0x4a,0xcd,0xda,0xb1,0x6e,0x04,0xa6,0xfc,0xef,0xb2,0x7a,0xe3,0x3c,0x05,0xb3,0x6d,0xa1,0x3c,0x23,0xde,0x51,0x7d,0x6e,0x6a,0xc5,0x74,0xa0,0x3e,0xa6,0x30,0xba,0x4f,0xbb,0x95,0x81,0x31,0x12,0x9a,0xa7,0xf1,0x35,0x4c,0x01,},\"\\x7c\\x8c\\x71\\x89\\xaf\\x67\\x32\\x7a\\xf1\\xc6\\xdd\\x2c\\x30\\xe9\\x75\\xf1\\x90\\xe3\\xb3\\x8d\\x00\\x8b\\x45\\x85\\x16\\x7e\\x0d\\x45\\x07\\x40\\xd4\\x67\\x34\\x58\\x7f\\x6d\\x20\\x87\\x84\\x24\\x5c\\xc5\\xcb\\x06\\x2a\\x2a\\x27\\x7f\\x17\\xeb\\xb2\\x74\\x6f\\x9b\\xdf\\x4a\\x82\\x37\\xca\\x47\\x9a\\xb0\\xa4\\x30\\x17\\x7e\\x19\\xed\\x7d\\xd3\\x62\\x25\\x76\\xb1\\x4c\\xdc\\x08\\x28\\x22\\x14\\xfe\\x5e\\xe4\\xd7\\x6b\\x43\\xc1\\x6a\\xc9\\x08\\x64\\xc5\\x1b\\xe8\\xae\\xd4\\x5d\\x7b\\x98\\x0d\\xf7\\x91\\x7f\\x29\\x0f\\xdf\\x79\\x58\\x46\\x46\\x5f\\x27\\xfc\\xb7\\xe5\\x73\\x06\\x37\\x94\\x4f\\x05\\x77\\xc9\\x2f\\x32\\x37\\x5e\\x99\\x5b\\xc0\\xcd\\xa9\\xd7\\x19\\x6f\\x2c\\x0c\\x1a\\xc8\\xb8\\x0d\\x12\\xa0\\x43\\x99\\x63\\xeb\\xd2\\x25\\x4c\\x34\\x77\\x03\\x57\\x58\\x16\\xe7\\x96\\x4c\\x13\\xd4\\x4d\\x62\\x92\\x80\\xc3\\x12\\xea\\x26\\x53\\x44\\xde\\x38\\xf3\\xb1\\x8d\\x91\\x50\\xf8\\xf9\\x24\\xaf\\xb4\\x4b\\x6b\\xfb\\x9e\\xda\\x51\\x3d\\x59\\xe6\\x5e\\x2e\\xf1\\x86\\x66\\xe6\\xc2\\xa2\\x1c\\x40\\x18\\x66\\x5b\\xef\\xe9\\x2c\\xae\\x58\\x1d\\x3c\\xb1\\x4e\\x23\\xe9\\x7d\\x83\\x00\\x02\\xcb\\x90\\x93\\x1a\\xe0\\x21\\x00\\x68\\xaf\\x39\\x4e\\xbe\\x35\\x1b\\xe5\\xb8\\x17\\xf3\\x67\\x4b\\xfb\\xf4\\x00\\x49\\x03\\x0e\\x4f\\xe5\\x05\\xd3\\x4a\\x1d\\x50\\x2a\\x2c\\x50\\xd8\\xe6\\x38\\xe9\\x26\\xc2\\x30\\x67\\x6b\\x7e\\xde\\xfb\\x6b\\xec\\x77\\xb1\\xc0\\xce\\x60\\x93\\x25\\x28\\x7b\\xa5\\xfd\\xd7\\xa9\\x97\\x69\\x87\\xbd\\x07\\xfc\\x6a\\x43\\x44\\x95\\x6e\\xbf\\x81\\x8f\\x08\\x58\\x6c\"},\n{{0x75,0xad,0x76,0xbb,0x4c,0x0c,0x22,0x9a,0x5a,0xdc,0x79,0xe4,0x44,0xb1,0x3f,0x88,0xa9,0x64,0x59,0x86,0x2c,0x8c,0xf0,0xba,0x49,0x8d,0x0c,0x99,0x6a,0xf9,0x4a,0x7a,},{0xf0,0x74,0xdd,0x2b,0x9c,0x1c,0x30,0x91,0x05,0xec,0x95,0x1b,0xb5,0x81,0x2a,0x91,0xdd,0xb5,0x40,0x23,0xb3,0x80,0x9a,0xb3,0x79,0xc5,0x6a,0xf0,0x46,0x1a,0xf6,0x17,},{0x0c,0x46,0x43,0xa8,0xbe,0x6d,0xc2,0x2f,0x4b,0xeb,0x6b,0xcc,0x70,0xc6,0x17,0x2e,0xc7,0x60,0x83,0x78,0x65,0x3c,0xb4,0xe9,0x9f,0x3a,0xe7,0x95,0xea,0xdf,0x4e,0x98,0x2a,0x29,0x76,0x09,0xca,0x79,0x38,0xf5,0xdf,0x63,0x2b,0x09,0x56,0x28,0xcb,0x75,0x06,0x2d,0x3d,0x51,0xfc,0x0f,0x33,0x23,0xbf,0xa7,0xb2,0x2e,0xc4,0xd4,0x72,0x05,},\"\\x0c\\xa8\\xc1\\xc7\\x41\\x28\\xd7\\x4e\\x9d\\x0a\\x7b\\xf8\\x96\\x42\\x91\\xd0\\x74\\x91\\x7f\\x2f\\x99\\x20\\xef\\xb9\\x11\\x52\\x05\\x67\\x64\\x2a\\x50\\xa6\\x15\\xab\\xcb\\xd0\\x0a\\xed\\x4a\\xbb\\xfe\\xf1\\xa9\\x83\\xcc\\xe3\\x33\\xe1\\xd0\\xdf\\x3e\\x64\\x04\\xfb\\x90\\x43\\xc6\\x80\\x39\\x14\\xcd\\x5f\\xff\\xbc\\x66\\xa0\\x79\\x0c\\x78\\x78\\xa2\\x40\\x89\\xa5\\x71\\xf8\\x95\\x66\\x2a\\x1d\\x18\\xbe\\x3f\\x01\\xff\\x97\\xfb\\x33\\x23\\x33\\x4b\\x6f\\x5b\\xaf\\x96\\x55\\x14\\x48\\xe4\\x09\\x0d\\x03\\x3c\\x46\\x42\\x94\\xd0\\x91\\x33\\xb1\\x51\\xd5\\xb5\\xc6\\x32\\x1b\\x50\\xe2\\x24\\x1d\\xe0\\xef\\x6f\\x88\\x28\\x89\\xcc\\xf4\\xad\\x35\\x40\\xd5\\xa1\\xe3\\xf7\\x54\\x8f\\xb1\\x3b\\xe7\\x1c\\x16\\x51\\x66\\x06\\xe7\\x9d\\x04\\x49\\xc2\\xa0\\x8e\\x5d\\xc2\\x31\\x48\\x84\\x3c\\x84\\xe9\\x7e\\xd2\\x40\\x69\\x16\\x1c\\x8e\\x75\\x20\\x8f\\x33\\xe9\\x5b\\x3e\\x10\\xd1\\xd4\\x9a\\x2f\\xae\\xf9\\xd9\\x86\\xab\\x62\\x80\\x9f\\x62\\xad\\x39\\xc7\\xcc\\x87\\x1f\\x37\\x5a\\x4f\\x5a\\x6f\\xaf\\x10\\x4d\\x7e\\x11\\xb8\\x90\\xcf\\xb0\\x58\\x99\\x02\\x68\\x52\\x16\\xec\\x07\\xcb\\x8e\\x8e\\x9e\\x7a\\x7c\\x43\\x63\\x5e\\x23\\x21\\x2b\\x69\\xca\\x3b\\x7e\\xd5\\x4f\\x0b\\x97\\x94\\x9e\\x3d\\x9a\\x66\\x62\\xf8\\xe4\\xb3\\xab\\x09\\xcd\\x49\\x52\\x94\\xc3\\x31\\xc0\\x47\\xd8\\x6e\\xe7\\x85\\xff\\x65\\x8b\\xcd\\x7f\\xcf\\x9c\\x48\\x06\\x05\\xce\\x05\\xe8\\x10\\x06\\x8d\\x60\\xfc\\x9b\\x26\\xb5\\xf0\\x63\\xeb\\x90\\x00\\xd2\\x65\\x7a\\x50\\x94\\x28\\x4a\\xc8\\x0f\\x13\\x75\\xd0\\xb6\\x6d\\x6f\\x5f\"},\n{{0xad,0xc6,0xe9,0xb2,0xe1,0x03,0xb6,0x2c,0x24,0xad,0x43,0x46,0x41,0x0e,0x83,0xa1,0xa0,0xbd,0x25,0x3e,0x4a,0xbf,0x77,0x91,0x18,0x50,0xc6,0xd9,0x66,0x6e,0x09,0xf9,},{0xfc,0xe3,0x16,0xe3,0x3c,0x91,0x08,0x21,0xbe,0xed,0xdd,0x63,0x4b,0xed,0xc5,0x8e,0xe5,0x79,0x99,0xa7,0x6e,0xce,0x38,0x46,0x05,0x28,0x3b,0x99,0xb5,0x43,0xb7,0x8b,},{0xcb,0x01,0x7d,0x6d,0x26,0x82,0xc9,0x85,0x43,0x66,0x25,0x9a,0xa3,0x5f,0x30,0xd4,0x91,0xcf,0xaa,0x93,0x09,0x98,0xc2,0x97,0xdb,0xdd,0xc6,0xad,0xed,0x5b,0x3d,0x40,0x1c,0xf7,0x6d,0x80,0xd8,0xa2,0x76,0x4d,0xe1,0x31,0x71,0x8b,0x6e,0x0c,0x48,0x1d,0x71,0x96,0xbc,0x72,0x57,0x97,0x16,0xb0,0xc0,0xf6,0xff,0x05,0x3e,0x68,0xc5,0x0c,},\"\\x8c\\xcc\\xd9\\x8e\\xbb\\xf2\\x43\\x9f\\xfd\\xfa\\xc4\\x16\\x87\\x63\\x8f\\xaa\\x44\\x4e\\x1c\\xa4\\xb6\\x3d\\x13\\xe8\\x98\\xea\\xa8\\x35\\x54\\x92\\xf2\\x88\\x13\\xab\\x81\\x3f\\xd0\\x15\\x10\\xe1\\x12\\xbe\\x10\\x6b\\x20\\x45\\xd3\\x0f\\x63\\x33\\x5d\\x24\\x89\\x04\\xd5\\x21\\xde\\x18\\x1a\\xba\\xc0\\x3e\\x3d\\x2c\\xb2\\xd1\\x6c\\x44\\xb3\\xb0\\x12\\xa0\\xc5\\x1f\\x99\\x01\\xae\\xf9\\x05\\x6c\\x72\\x4d\\x7a\\x2c\\x6b\\x2a\\xcb\\x0a\\x07\\x55\\x59\\x40\\xe4\\xc6\\xe2\\x11\\x54\\x89\\x06\\x11\\xad\\xeb\\x64\\x89\\xf4\\x61\\xd3\\xe5\\xec\\xd1\\xaf\\x5a\\x4d\\x2b\\x0a\\xda\\xf4\\x17\\x47\\x43\\x6e\\xb4\\x14\\x75\\x7a\\x8f\\xe4\\x77\\x56\\x74\\xe3\\xc6\\xe5\\xde\\x45\\x69\\xd6\\xfc\\x6c\\x78\\x8e\\x10\\x90\\x5e\\xba\\x32\\xc2\\x70\\xa3\\x93\\xe6\\xf7\\x21\\xa7\\x65\\x29\\x4e\\x2a\\xc9\\x9a\\x9b\\x6e\\x53\\x4d\\x3d\\xf0\\x8d\\x1d\\xb9\\x7d\\x60\\x2a\\xc3\\x19\\x5c\\xb0\\xb7\\x7f\\x5b\\xd4\\xac\\xaf\\x73\\x7f\\xad\\xd6\\x99\\x1f\\x06\\x88\\xab\\xc7\\x49\\x18\\x04\\x75\\x74\\xea\\xc2\\x82\\x89\\x73\\x9a\\x66\\x4e\\x0e\\x0e\\x20\\x57\\x4a\\x2c\\x25\\xfd\\xe4\\x9d\\x14\\x53\\x9d\\xb1\\xce\\xdd\\x4a\\x92\\x04\\xa7\\x0a\\xcf\\xf0\\xa6\\x2c\\x8f\\x25\\xcd\\x76\\x8f\\xfa\\xb1\\x5c\\x4d\\xb3\\x16\\x84\\x0a\\x4d\\x1b\\xc9\\x2e\\x21\\x26\\x70\\xbe\\x07\\xc5\\xbd\\xcf\\x53\\x75\\x90\\x60\\x7d\\xfb\\xbb\\xb4\\xd9\\xf9\\x8b\\x89\\xda\\x0b\\x4d\\xf7\\xd8\\x8f\\x3e\\xca\\x48\\x14\\xd1\\x6b\\xfa\\x20\\xc8\\xd2\\xfa\\x94\\xf9\\xf2\\x59\\xf2\\xee\\x2d\\x3a\\x83\\xc9\\xe4\\x17\\x1b\\x1a\\x26\\x2c\\x4b\\x99\"},\n{{0x37,0xfc,0x1b,0xed,0xa4,0x06,0x0b,0x6c,0x57,0x88,0x3d,0xdb,0xa0,0x77,0x6c,0x2b,0xcf,0x5a,0xc2,0x8a,0x65,0x13,0x26,0x02,0x1c,0xca,0x97,0x72,0x37,0x30,0xfb,0xb0,},{0x7b,0xd7,0xbf,0x1c,0x99,0xdc,0x82,0xe0,0x6f,0x08,0xbb,0x45,0x4d,0x8f,0xb2,0x88,0xa5,0x79,0x27,0xe0,0x7f,0xf1,0xb1,0x2a,0xf1,0x5e,0xe2,0xc1,0x2f,0xbb,0x6b,0x3d,},{0xa0,0x1d,0xd6,0x5f,0xad,0xa2,0x70,0x39,0xf1,0x68,0xb1,0x23,0x41,0x9d,0x8a,0xbf,0xbd,0xa4,0x8c,0x57,0x2e,0xce,0x24,0xfd,0xa0,0x6e,0x1a,0x5e,0xc3,0x1e,0x08,0x4f,0x4e,0xe1,0xcb,0xf9,0x96,0x1e,0x88,0xed,0x51,0xe1,0x89,0xfc,0xb7,0xf5,0xf2,0x35,0xde,0x1e,0x5b,0x28,0xd0,0x8f,0x2b,0xfc,0xa1,0x90,0xb0,0xf0,0x19,0xec,0xc2,0x07,},\"\\x3d\\xfc\\xac\\x02\\x65\\xa0\\x24\\xa8\\x3c\\xb9\\x32\\x67\\x44\\x89\\xa1\\x63\\xaa\\xc3\\x14\\xbf\\x3d\\x96\\x9f\\x27\\x59\\x6e\\x45\\x17\\x33\\xb9\\x9d\\xeb\\xa5\\xee\\xb7\\x79\\x21\\x0b\\xaf\\x95\\xbf\\x54\\x5a\\x1a\\xe6\\xb8\\xa9\\x15\\x86\\x06\\x93\\xee\\x89\\x0f\\x93\\x93\\x20\\xe0\\x6a\\x84\\x44\\x83\\xd1\\x8c\\x6a\\x1b\\xcd\\x03\\xc6\\x38\\xbb\\x7d\\x1f\\xe2\\xa8\\x2e\\xb4\\x48\\xa3\\x11\\xb1\\x30\\x2e\\xa6\\x42\\x8f\\x54\\xa3\\x9f\\x45\\xa4\\xd5\\x60\\xbe\\x15\\x57\\xa2\\xb2\\x54\\xc4\\x5c\\x13\\x7f\\x45\\xcc\\x68\\x35\\x68\\x36\\xe2\\x1b\\xed\\x0b\\x7f\\x73\\xa5\\x18\\xce\\x09\\xdb\\x0b\\xe3\\x93\\x92\\x7c\\x33\\x9b\\xf2\\xa4\\xb5\\x98\\x75\\x39\\x40\\x4c\\xe6\\x50\\x28\\x4d\\xe1\\x2e\\x3b\\x55\\x3b\\x26\\x2e\\xfe\\x23\\x84\\x83\\x32\\xcc\\xfd\\xc3\\x5e\\x79\\x1a\\x0a\\xb4\\x3f\\x13\\x9c\\x71\\xed\\x0f\\xcb\\x2d\\x17\\x3b\\xb3\\x77\\xee\\x46\\xb1\\xa9\\xdc\\xa9\\x27\\x7e\\x77\\xdf\\x85\\x5f\\x28\\x30\\x25\\x1e\\x31\\xe2\\x6a\\xcd\\x86\\x76\\x3c\\x8d\\x7e\\xac\\x22\\xc8\\x82\\xfc\\x17\\x4f\\x2b\\x5e\\x75\\xca\\x6a\\xd1\\xad\\xe0\\x3f\\x94\\x2b\\xb2\\xa1\\x3b\\xf5\\x41\\x90\\x61\\x59\\x15\\x8c\\x68\\x36\\x3c\\x74\\x80\\xc5\\xb2\\x7a\\x99\\x32\\x0f\\x82\\x83\\xa2\\x69\\x9d\\x43\\x69\\xc0\\x71\\xc5\\x0d\\xbd\\x90\\xb7\\x79\\x2e\\x47\\x72\\xef\\xbc\\x0b\\x19\\x5b\\xce\\x84\\xcc\\x4d\\xcf\\xff\\x70\\x72\\xa4\\x89\\x68\\xdb\\x69\\xf9\\xfe\\xdd\\xd0\\xf9\\xce\\xd6\\x59\\xeb\\x5d\\xb7\\x16\\x7f\\x35\\xf9\\x88\\xce\\xc1\\x14\\x88\\x7d\\xcb\\xfd\\xf2\\x7d\\x02\\xd3\\x00\\xb3\\xe1\\xab\\xec\"},\n{{0x8d,0x42,0xf4,0xdd,0xd2,0xbb,0xd2,0xb8,0x27,0xb0,0xa0,0xd3,0x1d,0x8f,0x75,0x8e,0xbd,0x13,0xa1,0xb9,0xb3,0x71,0x22,0x28,0x94,0x8c,0xa6,0x10,0xbb,0x88,0x58,0xe5,},{0xb7,0x35,0x48,0x98,0x79,0x4f,0x9d,0xb0,0xa8,0xaf,0x6e,0xea,0xfc,0xdb,0xdf,0x01,0x1d,0x3f,0xbe,0xf0,0x21,0x2a,0xd9,0x38,0xa4,0xa4,0xad,0x27,0xab,0x16,0xeb,0xbf,},{0x70,0x76,0x4b,0xe3,0x9c,0x6d,0xca,0x0f,0x06,0x7a,0xbe,0x1e,0xca,0x49,0x0f,0xda,0x95,0x1f,0xd4,0xe9,0x49,0x96,0x95,0x26,0x6e,0x27,0x0b,0x9b,0x05,0xea,0xe7,0x06,0xca,0x8d,0x1c,0xa6,0xa9,0x2d,0x7c,0x48,0x8e,0xc6,0xad,0x8b,0xa1,0x14,0x57,0xa4,0x2a,0x5e,0x31,0x70,0x2a,0x9c,0x2b,0xce,0x89,0x2d,0xc4,0x05,0x35,0xc0,0x9f,0x01,},\"\\xe3\\xa2\\xbe\\xbc\\x04\\x96\\xd8\\x97\\x4a\\x8f\\x40\\x61\\x88\\x03\\x69\\x31\\x4e\\xd9\\xe4\\x40\\xc1\\xb7\\x7e\\x26\\xfe\\x50\\x71\\xce\\x69\\x4f\\xfd\\x21\\x36\\xdb\\x0c\\x4d\\x5e\\x88\\x0e\\x60\\x00\\x08\\x3a\\x75\\xc9\\x0d\\x3c\\xf7\\x2b\\x9c\\xf5\\xa2\\xb1\\xa9\\x00\\x2c\\x27\\x01\\xa2\\xff\\x59\\xb0\\x69\\x9a\\x8f\\x42\\xd7\\x9d\\xd8\\xa5\\xfb\\x71\\xa8\\x12\\x54\\x53\\xd9\\x1f\\xb8\\x00\\x80\\xa3\\xf0\\xa1\\x65\\x84\\x28\\x2f\\x17\\xec\\x7d\\xfd\\xc2\\xe5\\xc6\\x9c\\x4d\\x9b\\xdf\\x48\\x4d\\x55\\x94\\x4d\\xae\\x27\\x3f\\x21\\x1c\\xfb\\x76\\xad\\x37\\xda\\x45\\x87\\x13\\x65\\x43\\x9a\\xf3\\x5e\\xea\\x1f\\xbe\\xcd\\x4c\\xa6\\x79\\xb5\\x9b\\x5e\\x01\\xba\\xcf\\x49\\xc7\\xf4\\xe5\\xef\\xaa\\x40\\x6b\\xa1\\xda\\xeb\\x08\\x54\\x82\\xaf\\x5d\\xed\\x89\\xdc\\x68\\x85\\xff\\xbe\\x3d\\x14\\xd2\\x93\\x1b\\x83\\x89\\x7e\\x28\\xad\\x06\\xe5\\x56\\x4e\\x27\\x89\\xba\\xea\\x81\\xbd\\x93\\x2a\\xa2\\x79\\xfe\\x8e\\x32\\x4b\\x9a\\x8e\\xf1\\x11\\xc2\\xab\\xe2\\xf1\\x37\\xd4\\xbb\\x50\\xd8\\xab\\x76\\xce\\xbc\\x0b\\xd9\\x82\\xa2\\x39\\x19\\x75\\x1a\\xd4\\xd4\\x9e\\x88\\xeb\\x14\\x17\\x3d\\x33\\x10\\x28\\x9a\\x87\\x23\\x17\\xe4\\xa4\\x51\\xe8\\x8d\\x54\\x32\\x08\\x91\\x87\\x0f\\x15\\xb2\\xd5\\x33\\x24\\x43\\x08\\x77\\xa9\\xfb\\x5b\\x49\\xbb\\x92\\x9f\\x21\\x1c\\x5b\\x89\\x76\\x4d\\xd9\\xc3\\xa5\\x95\\xa1\\x45\\x1e\\x9f\\x85\\xa2\\x38\\x54\\x00\\x02\\x56\\x6e\\x53\\xa9\\x9e\\xd1\\xe6\\xdd\\xc9\\xb4\\x85\\x3f\\x45\\x5e\\xdb\\x4c\\xf1\\x98\\x0d\\x56\\xbb\\xdc\\x13\\x13\\xa3\\x6e\\x76\\xea\\x9c\\xbb\\x04\\x8a\"},\n{{0xb6,0x2d,0xe5,0xa1,0xac,0xfe,0x4c,0xa2,0xd1,0xf0,0xc1,0x32,0xaf,0xcb,0xda,0xe6,0x6f,0xb2,0x9a,0x02,0xf2,0x97,0xfb,0xc2,0x40,0x7f,0xad,0xbb,0xf2,0x45,0x42,0x00,},{0xb6,0x3b,0x2d,0x0b,0xf3,0x55,0xf7,0xb6,0xd0,0xba,0xc0,0x74,0x03,0x41,0x1c,0x40,0xaf,0xbb,0xb2,0xf7,0x07,0x50,0x3b,0x3f,0xc2,0xce,0xe8,0xa1,0xc7,0xd0,0xa8,0x38,},{0x5c,0xdb,0x00,0xe9,0x8d,0xe7,0x3e,0xab,0x48,0x0b,0xe4,0x2f,0x8a,0x8a,0x61,0x63,0x80,0x9a,0x0d,0x37,0x10,0x1b,0x6a,0x5a,0x4e,0xed,0x6a,0x0c,0x92,0x03,0x0d,0x09,0xa5,0x56,0x2c,0x72,0x90,0x80,0xce,0x6f,0x65,0x94,0xc8,0xfa,0xfb,0x1f,0x59,0x47,0x72,0xdb,0x7a,0x90,0xa9,0xe7,0xda,0x15,0x89,0x6e,0x82,0xf7,0x05,0x69,0x39,0x0d,},\"\\xe6\\x59\\xe5\\x1d\\x7b\\x19\\x3c\\x4b\\x8e\\x2b\\x3e\\xd7\\x3a\\x9d\\x75\\x57\\xed\\x2b\\xab\\x61\\x53\\x88\\x3a\\xb7\\x23\\x59\\x2f\\x73\\x0a\\x91\\x45\\x67\\x14\\x2b\\x3f\\xa4\\x35\\xdb\\x32\\x19\\xf8\\x3a\\x54\\x2d\\xc7\\xa4\\xbd\\x80\\x5a\\xf6\\x66\\xea\\x86\\x5b\\x85\\x31\\x46\\xf8\\xe3\\xa9\\xfe\\x87\\x07\\x11\\xf9\\x0d\\x12\\xb0\\x69\\x34\\x92\\xaf\\x2a\\x1e\\xdf\\x99\\xa1\\x64\\x58\\xf7\\x81\\xf1\\x26\\x6e\\xc4\\x37\\xa5\\x29\\x6a\\x82\\x2c\\xa9\\xd6\\x9c\\xe8\\x44\\xb5\\xc5\\x90\\x97\\xa2\\xa5\\x6f\\x3e\\xb8\\xfd\\x27\\x3a\\x63\\x61\\x16\\xdb\\x77\\x43\\x00\\x92\\x2d\\x45\\xb7\\x44\\x65\\x7a\\x69\\x2f\\x5e\\x8b\\xfb\\xcb\\x06\\xd2\\x42\\x28\\x18\\xae\\xb5\\x1e\\x7c\\xda\\x68\\xac\\xfb\\xed\\xa1\\x6e\\x7c\\x79\\x58\\x0d\\xcc\\xcd\\xe2\\x4e\\x8e\\x3d\\x60\\x1b\\x16\\xe0\\x63\\xb4\\x3a\\x6d\\x0d\\x14\\x07\\x55\\x2f\\x75\\x04\\xf5\\xbe\\x19\\x88\\x2e\\x4f\\xfe\\x32\\x34\\x4f\\x5f\\x47\\x3e\\x73\\xa8\\xf6\\xed\\x37\\xb0\\xd8\\xd9\\xe5\\xe0\\xa0\\xdc\\x98\\x28\\x39\\x5b\\xcb\\xd8\\xf3\\xa4\\xe3\\x12\\x48\\x69\\x24\\x9d\\x05\\x8b\\xe0\\xe0\\x45\\xde\\x0b\\x1e\\x12\\xb1\\xc8\\x3b\\xa0\\xaa\\x22\\x7c\\x95\\xb8\\x2b\\xf7\\x42\\xc3\\xea\\xc0\\x15\\x2b\\x33\\xe6\\xd1\\x9b\\xe8\\xb3\\x3a\\x35\\xbf\\x70\\x5d\\xaa\\xb1\\x06\\x22\\xa9\\x0a\\xed\\x02\\x2e\\xa6\\xe4\\x39\\xed\\x50\\xa9\\x30\\x84\\x37\\x92\\x99\\x24\\xba\\x3a\\xb1\\x11\\xad\\x0c\\xaa\\x6f\\xeb\\x0a\\x6e\\xb1\\x65\\x82\\x4e\\xbd\\xb0\\x86\\x65\\x71\\xef\\xc0\\x7e\\x52\\x22\\xed\\x86\\x86\\xb1\\x4d\\x92\\x70\\xbf\\x76\\xb9\\x45\\xd5\\x20\\x14\"},\n{{0x97,0x32,0x05,0x9d,0x7b,0xf0,0x20,0x0f,0x5f,0x30,0x41,0x24,0x30,0x33,0x6b,0xe4,0xef,0x1e,0x3c,0xae,0x62,0x93,0x8a,0xd0,0x87,0x29,0xce,0x3b,0xa7,0x14,0xcf,0xd4,},{0x0d,0xe8,0x42,0x5f,0x5e,0x30,0xb2,0xb8,0xae,0xbb,0x80,0x72,0x00,0x9a,0x30,0xcf,0x04,0x11,0xc3,0xc8,0x23,0x8f,0x4e,0x42,0x08,0x76,0x0c,0x56,0xc3,0x3e,0x43,0x4f,},{0xfb,0xa1,0x74,0x9b,0x64,0x1d,0xd4,0xdf,0x34,0x66,0x4b,0xc4,0x3c,0x00,0x46,0x8c,0x7d,0x75,0xe8,0x4a,0xfa,0xd7,0x2d,0xe4,0x73,0xfd,0x1e,0x9c,0x87,0xda,0x15,0xea,0x60,0x4f,0xc2,0x54,0x9a,0x1a,0x86,0x7f,0xa8,0x08,0x50,0xe9,0xc2,0xa5,0x9c,0xd9,0x90,0x53,0x88,0x67,0x60,0xa8,0xd9,0x76,0x4b,0x84,0xdd,0x67,0x26,0x76,0x72,0x0d,},\"\\x1a\\x13\\xe7\\xab\\x60\\x3b\\x48\\xeb\\x89\\x6f\\xe1\\x71\\x73\\xfb\\x31\\x95\\x0b\\x0d\\xcd\\x5a\\x35\\xff\\xdb\\xe1\\x37\\x1c\\x7a\\x5b\\xfb\\xa5\\x93\\x31\\x75\\x89\\xd9\\x65\\x2d\\x88\\x79\\x77\\x29\\x18\\x0b\\x8d\\x0e\\x51\\x5a\\xbf\\xe6\\x54\\x8f\\x16\\x04\\x21\\xe5\\x37\\xd5\\xc9\\x4a\\xef\\x2b\\x34\\xc7\\xeb\\xb0\\x97\\x42\\x00\\x03\\xbc\\x0f\\x36\\x1b\\x42\\x3e\\x7e\\x14\\x63\\x0a\\x80\\x3c\\x11\\x82\\x02\\x54\\x00\\x49\\xf6\\x8c\\x9c\\xf4\\x6f\\xae\\x03\\x68\\xd1\\x62\\xe4\\x00\\xd7\\x7b\\xb4\\x52\\x3c\\xf6\\xc7\\x53\\xb9\\x75\\xc2\\x45\\xbc\\x99\\xed\\x2f\\x41\\x3a\\x9d\\x06\\xc2\\xda\\x6c\\xe0\\xcc\\x09\\x87\\xb6\\x40\\x6b\\x80\\x9e\\x8e\\xb3\\x19\\x03\\x3d\\x2d\\xe9\\x13\\x1d\\xee\\x3b\\x1b\\x7b\\x5c\\x95\\xd6\\x53\\xce\\xd8\\xfc\\xcf\\x99\\x8d\\xa1\\x76\\x85\\x11\\xec\\xa4\\xd3\\xc5\\xf7\\x35\\xad\\xab\\x96\\x50\\x3b\\x35\\x51\\x80\\x3e\\x49\\x22\\x63\\x50\\x95\\xef\\x81\\x1b\\xe4\\xc0\\x8a\\x6c\\xba\\xc9\\x17\\xcb\\xe6\\xcd\\x91\\xa4\\xae\\x5a\\x33\\x0c\\xce\\xc0\\xe8\\xe8\\x15\\x37\\x12\\x17\\xa3\\xde\\x62\\xf2\\xd2\\xd6\\x14\\x66\\x21\\x98\\x33\\xf3\\x34\\x47\\x13\\x2f\\x4d\\x43\\x35\\x0c\\x58\\xcb\\xaf\\x42\\x24\\x75\\xed\\xb1\\x28\\xc5\\x6d\\x80\\xa4\\x95\\x72\\x6b\\x1f\\xdb\\xc5\\x65\\x51\\xeb\\x72\\xd0\\xf4\\xfe\\xc2\\x6b\\xa8\\xbf\\xf5\\xee\\xd6\\x77\\x4b\\x85\\x03\\x9a\\x52\\x92\\x83\\x4b\\x5d\\x1c\\xc1\\xb0\\x9b\\xa0\\xa3\\x95\\x4d\\x29\\x32\\x36\\x73\\xf5\\xe7\\x12\\x76\\xa1\\x2a\\xc4\\xc5\\x79\\x35\\x5b\\xf1\\xec\\xca\\x48\\xe6\\xa7\\x16\\xb9\\xfc\\xec\\xdc\\x56\\x5c\\x51\\xb9\"},\n{{0x9c,0x7f,0x6f,0x37,0x9e,0x38,0x57,0x00,0x7e,0x2a,0xc6,0x32,0x4c,0xbb,0xce,0xd5,0x7a,0xc9,0xee,0xe4,0x47,0x78,0x13,0xf8,0x3a,0x81,0xfc,0x8c,0xef,0xa9,0x64,0xd5,},{0xa5,0x4b,0xa3,0x96,0xd6,0x87,0x63,0x4d,0x3e,0xcc,0xf4,0x1c,0x57,0x82,0x49,0x4f,0x5f,0x10,0xa5,0x21,0xa1,0xe5,0xd3,0x88,0x52,0x3d,0x80,0xee,0xba,0x5b,0x0b,0x2b,},{0x65,0x68,0x5f,0x9c,0xa5,0x98,0x2e,0x15,0xa2,0x2b,0xa3,0xc8,0x3a,0x03,0x48,0x34,0x84,0x82,0xdf,0xae,0x57,0xce,0xa1,0x78,0xf0,0x78,0x0c,0x05,0x7b,0xae,0xbe,0x4a,0xf6,0x32,0xf9,0x84,0x54,0x0a,0x26,0x01,0x9a,0x7f,0xb3,0x42,0x53,0xc9,0xec,0xe7,0xff,0x30,0x8a,0xda,0x23,0x3c,0xe0,0x68,0x63,0x47,0xab,0x5b,0x21,0xce,0x57,0x0b,},\"\\x3f\\x2d\\x30\\x72\\xfe\\x73\\x83\\xe5\\x41\\x55\\x1e\\xa9\\xab\\xdb\\xae\\xae\\x6a\\x46\\x4a\\xe6\\xb9\\xf0\\xba\\x78\\x6a\\x44\\x1b\\x2d\\x08\\xda\\x5b\\xca\\xda\\x3c\\x54\\x24\\xdc\\x69\\x31\\xd6\\xb3\\x95\\x23\\xe2\\xde\\x0a\\x0c\\x2e\\x4e\\x6b\\x5b\\x8c\\xda\\x92\\x5e\\x5e\\xac\\x93\\x84\\x16\\xa2\\xc5\\x1b\\xf1\\x3d\\x49\\x53\\x1d\\x7e\\xc7\\x11\\x4b\\x1c\\x82\\xfe\\xaf\\x90\\xf3\\xf8\\x75\\x91\\xe3\\x97\\xd0\\x27\\x02\\xf8\\xec\\x1b\\x30\\xd9\\x9f\\x5b\\xe7\\xd2\\x20\\x3e\\x4f\\xe4\\xdb\\x2e\\xa4\\x7e\\x7b\\x45\\x89\\xd8\\xac\\x50\\x62\\x48\\xd7\\x34\\x74\\x66\\xed\\xbc\\x96\\xea\\x32\\xbf\\x3a\\x6e\\xa7\\x50\\x2d\\xd6\\x0c\\x9e\\x84\\x90\\x27\\x15\\xab\\x2c\\x6c\\xa6\\x8f\\x5b\\x00\\xe1\\xd9\\x09\\xd8\\x3a\\xa6\\xab\\x66\\x2d\\x8a\\xea\\x87\\x0e\\xcd\\x86\\x1f\\xec\\x69\\xf2\\xee\\xc0\\xae\\x67\\x7d\\x29\\x95\\xb0\\xed\\x68\\x8f\\xaa\\x8e\\xf7\\x82\\x44\\xe0\\xd1\\x19\\x56\\x97\\xb0\\x71\\x22\\xce\\xaa\\x11\\xf5\\xa6\\xea\\x58\\xfb\\xdf\\xa2\\xe2\\xec\\x2d\\xf9\\xd1\\x86\\x93\\xae\\x96\\xd4\\x71\\x27\\x55\\x6e\\x91\\xf0\\x86\\x49\\x82\\xc1\\x34\\x19\\xb0\\x4a\\x63\\xf2\\x08\\xe7\\x30\\xd2\\x69\\x51\\x88\\x2a\\xef\\xe0\\x01\\xbc\\xa3\\x40\\x8b\\xd9\\x86\\x27\\x48\\xc6\\xcc\\x87\\x6c\\x28\\xca\\xc3\\xbb\\x2e\\xb3\\x39\\x58\\x18\\xc2\\x09\\x1e\\x0f\\xbd\\x7a\\x0b\\x44\\x68\\xc6\\xb0\\xd0\\x0c\\xd0\\x08\\xc1\\x1c\\x3c\\x3a\\xd0\\x10\\x80\\xa1\\xf5\\xa4\\x0a\\xe2\\xe4\\xb0\\xc3\\xa0\\x71\\xef\\xc8\\xe1\\xd1\\xba\\x6a\\xce\\x6d\\x4d\\xf0\\xff\\x19\\x82\\x9b\\x0c\\x68\\x0b\\x3a\\xeb\\x75\\x91\\x77\\xed\\x34\"},\n{{0xa4,0x78,0xf3,0x5a,0xbb,0x73,0x72,0x7b,0x6b,0xe6,0xee,0x5e,0x56,0xee,0xc3,0x23,0xc9,0x51,0x78,0x82,0xfd,0x69,0x19,0x36,0x0e,0xbb,0xbf,0x5d,0x5c,0xb8,0xb8,0x3a,},{0x7a,0x6e,0x26,0x6a,0x54,0xd1,0x35,0xdd,0xa0,0x00,0x9c,0xcd,0xa8,0xa9,0x4a,0x47,0x12,0xae,0x5c,0xb1,0x47,0x61,0xe8,0x43,0x6e,0x97,0xc4,0xb7,0x81,0x4d,0x8e,0x8c,},{0x9d,0x16,0xfd,0x40,0xb9,0xf8,0xdd,0x9b,0x4a,0x1a,0x8c,0x6d,0x70,0x3b,0x9f,0xcc,0xbb,0x94,0x0b,0x1e,0x0a,0xe7,0x7a,0x59,0x70,0x37,0x4a,0xf0,0xcf,0x72,0x6f,0x44,0x79,0xfd,0x30,0xd7,0xdf,0xf5,0xcf,0x53,0x49,0x4d,0x9a,0x29,0x6a,0xb6,0xb9,0xe4,0x6e,0xa6,0xc1,0x36,0xb4,0xdb,0x2c,0x71,0xc2,0x1b,0x97,0xc1,0xc8,0x25,0x4d,0x0a,},\"\\x01\\x73\\xa3\\x40\\x50\\xb4\\x37\\x48\\x06\\x1f\\xf8\\xf5\\xa3\\xd7\\xc4\\x3b\\x63\\x60\\x84\\x77\\x86\\xe8\\xbb\\x75\\xe5\\x36\\xfb\\x47\\xb6\\x45\\xb2\\x14\\xf2\\x21\\xba\\x24\\xd8\\x3d\\x28\\xbc\\x02\\x50\\x24\\x66\\x3e\\x53\\x4f\\x90\\xf6\\xe8\\x3a\\x93\\xd8\\xbd\\xde\\xda\\x2c\\xd8\\x80\\x81\\x55\\x65\\x2a\\x90\\x8c\\x43\\x7c\\x2d\\xb6\\xf3\\xed\\x49\\x12\\xf5\\x7c\\xa5\\xb9\\x79\\x28\\xa7\\x3b\\xe9\\x64\\xaf\\x59\\xdf\\x44\\x39\\x85\\x4b\\xb0\\x06\\xfc\\x29\\x5a\\x87\\xb7\\xb7\\x22\\x39\\xc7\\xfa\\xdf\\xec\\x40\\x71\\x55\\x09\\xd9\\x85\\x79\\xda\\xad\\xfb\\x8d\\x52\\x4b\\x4c\\xec\\x66\\x20\\x70\\x5e\\xfd\\x41\\x04\\xc2\\x97\\x14\\x4a\\xea\\x72\\x29\\x74\\xe1\\x2c\\x5e\\xce\\xe5\\x39\\x1e\\xf2\\xd9\\x3a\\xc2\\xb1\\x24\\xe4\\xac\\x49\\x61\\x47\\xc8\\xb7\\x03\\x63\\x58\\x5d\\x70\\x78\\xcc\\xc5\\x3e\\x2a\\xe5\\x93\\x35\\x0b\\xc2\\x55\\x48\\xa0\\x54\\x25\\x26\\xab\\x00\\xaf\\xe4\\x77\\xa0\\xf4\\xb2\\x73\\x97\\xc7\\x2b\\xc7\\x4a\\x8a\\x8a\\xb1\\x56\\xe6\\x2b\\x8b\\xb4\\x7c\\x3f\\xbb\\x4b\\x34\\x91\\x3e\\x45\\x96\\x87\\x47\\x6b\\xf3\\x31\\x42\\xc6\\x14\\x70\\x21\\x07\\xff\\xe2\\xcc\\x01\\xe2\\x5f\\xa3\\x02\\x75\\xe1\\xe2\\xe6\\x3c\\xea\\x91\\x68\\xe4\\xa4\\x7c\\x02\\xde\\x09\\x7d\\x4d\\x85\\x3b\\x27\\x67\\x5c\\x5b\\xb3\\x30\\xb9\\x4a\\x97\\x4e\\xad\\x85\\xe2\\xbd\\xee\\x8e\\xe1\\x7c\\xbb\\x56\\x53\\x34\\x66\\x58\\xdf\\x2f\\x91\\xf6\\xbd\\x73\\x94\\x91\\xdd\\x71\\x98\\x8b\\x3a\\x97\\x6a\\x3e\\x2e\\x7a\\x9d\\x13\\x74\\x10\\xf4\\xac\\xba\\x9f\\xeb\\x5f\\x11\\x79\\x8c\\x9a\\x43\\xb6\\xad\\xce\\x14\\x36\\x5a\\x7c\\x6d\"},\n{{0xff,0xe8,0x25,0x14,0x8c,0x09,0x59,0xb3,0xa6,0x8d,0xe8,0x6a,0xd8,0xe8,0xaf,0x7f,0xa5,0xe0,0x78,0xf3,0x63,0xdc,0x12,0x42,0x13,0xc9,0x00,0x20,0xda,0x0c,0x90,0x89,},{0x13,0x91,0x52,0xa0,0xbd,0x22,0x96,0x2d,0xd9,0x19,0xae,0x3e,0x0b,0x16,0x20,0xe0,0x3c,0x03,0x3c,0x2a,0xd0,0xa3,0x97,0x9e,0xc6,0xbc,0xd1,0x70,0x5e,0x23,0xd5,0x98,},{0xfe,0x4e,0x89,0xee,0x31,0x78,0x6c,0x0a,0x3d,0x3d,0xe3,0x64,0x9b,0xb9,0x3f,0x0b,0x8a,0xef,0x1c,0xaf,0x5a,0x83,0x2e,0xc5,0xe4,0x06,0x78,0x10,0x70,0x5a,0xdd,0xdf,0x53,0x9b,0x8f,0x4e,0x05,0xad,0x08,0xcf,0x34,0x79,0xe4,0x5b,0x42,0xc9,0x65,0x28,0xf6,0xd5,0x9a,0x46,0x25,0x70,0x3d,0xdb,0xf1,0x5b,0x63,0x09,0x39,0x65,0xd8,0x0d,},\"\\xf1\\x25\\x78\\x0d\\x0c\\xd0\\x88\\x53\\x0f\\x0c\\x87\\xb7\\x0b\\xd4\\x2e\\xba\\xb5\\x6a\\xdb\\x5a\\xd4\\x34\\x5f\\x92\\x9a\\xe5\\xde\\xae\\x07\\xfb\\x55\\x32\\x21\\x53\\xa8\\xf0\\x23\\xd3\\x88\\x43\\xbf\\x5d\\x6a\\x93\\xfe\\x99\\x3e\\xee\\x71\\xbc\\x2e\\xe5\\x63\\xb2\\x5a\\x50\\x91\\x8f\\x03\\xef\\xdb\\x5d\\xbf\\x72\\x69\\xad\\xd6\\x9d\\xed\\x3e\\x66\\x95\\x38\\x95\\x62\\x0d\\x9b\\x6c\\xf4\\x6b\\xa2\\x34\\x8f\\x8d\\x66\\xd7\\xf0\\x92\\x23\\x5e\\x37\\x8c\\x1e\\x3e\\xdf\\xeb\\xeb\\x78\\x08\\x4b\\xc8\\xde\\xa0\\x13\\xf9\\x93\\x3a\\xae\\x14\\xa0\\x41\\x94\\x82\\x76\\xd0\\x1f\\x1c\\xb5\\x83\\x4b\\x0e\\x59\\x0e\\x13\\xd9\\x31\\xd1\\x92\\x92\\xbb\\x1d\\x80\\x41\\xff\\x2f\\xe2\\xe1\\x17\\x1a\\x2e\\x0b\\x9a\\x05\\x98\\x21\\xd0\\x92\\x4d\\xde\\x7f\\x3b\\x1b\\xb5\\x98\\x13\\xf5\\xe3\\xc6\\x35\\x20\\xaa\\xfb\\x88\\x01\\xba\\x62\\xc7\\x09\\x7d\\x4d\\x8c\\xf4\\x37\\xa5\\x68\\xa7\\xf0\\x08\\x7c\\x6e\\xa0\\xfc\\xe6\\xe5\\x68\\xc4\\x88\\x3f\\x1c\\xd1\\x2c\\x74\\x9d\\x06\\xa6\\xfe\\xb2\\x78\\xf1\\x08\\x6a\\x8b\\x04\\x76\\x99\\x21\\xf7\\x8a\\x99\\x59\\x06\\x2a\\xb0\\x6f\\x98\\xee\\x80\\xc2\\xc7\\x85\\x4f\\xfa\\x76\\x0f\\x86\\xa8\\x9e\\xe1\\xa5\\x12\\x66\\x05\\x3d\\x19\\x5e\\x61\\xbb\\x1d\\xbd\\x18\\xdd\\x89\\xff\\x39\\x4e\\x40\\x8a\\xce\\x0f\\x64\\x1a\\x39\\x5d\\x56\\x11\\x8e\\xa7\\x2b\\x7d\\x8a\\xdf\\x78\\xb1\\x65\\x5e\\xce\\xce\\x7e\\x82\\x50\\xe8\\xa3\\xa9\\x1c\\xb8\\xfc\\xa0\\xd9\\xce\\x0b\\xaf\\x89\\x80\\xa3\\x87\\xc5\\xed\\x43\\x18\\x66\\x32\\x80\\xe5\\xb4\\x53\\x1f\\x31\\x87\\xc4\\x7e\\xae\\xa7\\xc3\\x29\\x72\\x8d\\xdd\\x0e\\x40\"},\n{{0x49,0xaf,0xf4,0x21,0xa7,0xcd,0x12,0x72,0x2a,0xa8,0x4c,0x48,0xc1,0xfb,0x1c,0x5f,0x8d,0x9e,0x27,0x7d,0x0a,0x99,0xec,0xbc,0x93,0x48,0xc3,0xaa,0xa7,0x4b,0xe4,0x22,},{0x88,0xd2,0xc2,0x62,0x66,0xf4,0x93,0xbc,0x67,0x57,0x8c,0xa0,0xb1,0xf5,0x11,0x60,0xcf,0x0f,0xdb,0x6a,0x09,0xa9,0x06,0xdb,0x9f,0xaa,0x68,0x6f,0x11,0xf8,0x20,0x8d,},{0x74,0x91,0x81,0x28,0x4d,0xf0,0x5d,0xbe,0x59,0x74,0xb9,0x17,0x82,0xa1,0xa7,0x6e,0xa0,0x86,0x42,0xcb,0x0f,0x0c,0x98,0xdb,0x58,0x6c,0x57,0x5c,0x21,0x0c,0xdc,0x8b,0x65,0x1b,0xd3,0x4b,0x75,0x7a,0xe3,0x8e,0x4b,0x6b,0xe9,0x46,0x52,0x35,0xbd,0x0e,0xca,0x43,0x0e,0x26,0xc3,0xee,0xde,0x56,0x1c,0x6e,0x82,0x4d,0xfa,0x20,0x0e,0x0a,},\"\\x70\\xa1\\xac\\x14\\x4b\\x75\\xfd\\xa7\\x55\\x86\\xa7\\x9c\\x36\\xfd\\x39\\xcc\\xe5\\xf5\\xca\\xe2\\xe6\\x37\\x58\\x52\\xd3\\xb6\\x2a\\x96\\x30\\x33\\x6a\\x29\\x3e\\xa6\\xd2\\xac\\x6e\\x5b\\x57\\xda\\x21\\xef\\x36\\x4a\\x59\\x5b\\xb0\\x75\\x0f\\x5b\\xf4\\xd2\\xb3\\x20\\x67\\x64\\x23\\x87\\x0e\\x4b\\x8e\\x08\\x69\\x60\\x1f\\x16\\x68\\x06\\x19\\x04\\x8c\\x4e\\xde\\x27\\x6d\\xa6\\x9f\\x20\\x5a\\x70\\x17\\x6e\\x25\\xea\\x04\\xbd\\x08\\x97\\x63\\xe7\\x09\\xba\\x34\\x3f\\xc8\\x83\\x1e\\x52\\x04\\x4e\\xab\\xf9\\x44\\x1e\\x69\\x97\\xf8\\xba\\x1a\\xeb\\x9e\\xf0\\xf4\\x91\\x17\\x06\\x67\\xa7\\xf5\\xfc\\x96\\x27\\xcb\\xd0\\x55\\x1b\\x76\\xbe\\x27\\x28\\x3a\\x4b\\x0c\\x5f\\x66\\x78\\x46\\x68\\x82\\x26\\xa1\\x15\\xee\\x80\\x20\\xdf\\x08\\x04\\x2b\\x19\\xb5\\x9f\\xe5\\x51\\x31\\x6a\\x6c\\xb6\\x91\\x68\\x60\\xb9\\xec\\xd7\\x41\\x54\\xb4\\x05\\x10\\x38\\xa1\\x73\\x52\\x37\\x2e\\xc1\\x4d\\x3c\\x95\\x7d\\x2e\\xf5\\x0f\\xf7\\x86\\x18\\x9a\\x8a\\xeb\\x9c\\x08\\xf4\\x5e\\xeb\\x5e\\xb8\\xb0\\x40\\x33\\x99\\x74\\xaa\\x97\\x98\\xc4\\x25\\xd7\\xbe\\xcb\\x22\\x8c\\x44\\x7a\\x6d\\x0b\\x3c\\xef\\x27\\x18\\x93\\xe0\\xf7\\x07\\x6e\\x22\\x3a\\x7e\\x87\\xc6\\xa3\\xd2\\x70\\xa0\\x33\\xbc\\x97\\xa4\\x56\\x5e\\xdc\\xe0\\xaa\\x91\\xff\\xc3\\xf7\\x80\\x17\\x75\\xa6\\xf2\\x9b\\x23\\x02\\x45\\xbd\\x71\\xfa\\x03\\x43\\x53\\xde\\x37\\x23\\x95\\xd1\\xbf\\xcb\\xde\\xbb\\xa0\\x81\\x33\\x0f\\x7c\\x07\\x6b\\xe9\\x9c\\x2c\\xf4\\x86\\x7f\\x15\\xb7\\x8d\\x52\\xf4\\x6f\\xc7\\x39\\x1c\\x9c\\xb9\\x5e\\x5d\\x64\\x64\\x3b\\xaf\\xfe\\x72\\xa8\\xe3\\xa6\\x50\\x66\\x7f\\xbb\\x3e\"},\n{{0x70,0x3a,0x6e,0x2b,0x62,0xd0,0x09,0x0c,0x61,0xd8,0x65,0x9b,0x6a,0x96,0x3e,0x03,0xc9,0xd6,0x2c,0x1b,0x38,0xf7,0xd7,0x0e,0x5f,0x9f,0xf0,0x55,0x90,0xcd,0x03,0x60,},{0x37,0x0c,0x21,0xde,0x6e,0xf2,0xfa,0xb5,0x34,0xad,0xa9,0x99,0x86,0x9c,0x90,0xbc,0x9b,0x92,0xcc,0xbf,0x24,0x9b,0x79,0xd3,0x9d,0x95,0x44,0x1d,0x1e,0xde,0x21,0x0a,},{0xe5,0xfd,0x64,0xda,0x02,0x88,0x00,0xc6,0xce,0xed,0x06,0x8a,0x5e,0x59,0x6f,0x16,0x21,0xc7,0x0a,0x8c,0xb1,0x38,0xb3,0x1b,0x32,0x64,0x7e,0xb4,0xb0,0x7b,0xd2,0xec,0xc5,0x94,0x2c,0x18,0x84,0x4f,0x36,0x70,0x33,0xf6,0x73,0x98,0xe3,0x14,0xba,0x2c,0x7c,0xcf,0x29,0x9c,0x06,0x97,0x87,0x77,0x70,0x25,0xd8,0x45,0xf2,0xaa,0xd6,0x0e,},\"\\xd4\\x2a\\x17\\x56\\xe8\\x4d\\xf4\\xb4\\xe9\\x77\\x3f\\x86\\xf7\\x67\\x4a\\x2c\\xd7\\x8e\\x71\\xe4\\x0a\\xa8\\xf6\\x44\\xe6\\x70\\x2d\\xfb\\xc2\\xc2\\xc5\\xca\\x90\\xfc\\x24\\x2e\\x9c\\xb0\\x09\\x9c\\xc8\\xf2\\xc2\\xd3\\x13\\x6b\\xaa\\xfc\\x0f\\xf6\\x95\\x48\\x2f\\xda\\xcd\\xef\\x9f\\x56\\x56\\x10\\xb6\\xe1\\x90\\x07\\x22\\xf4\\x35\\xc6\\x38\\x5b\\x35\\xe9\\xf6\\xc4\\x36\\xca\\x03\\x7e\\x03\\xf6\\x4e\\x22\\x33\\xdf\\xfa\\x58\\xdb\\x3b\\x91\\xcc\\x1d\\xaa\\x0b\\xb0\\xc5\\x4c\\x8a\\x43\\xe4\\x69\\xd2\\xcf\\xf7\\xfa\\x2b\\xf8\\xf5\\xd1\\xd8\\x77\\x93\\x10\\x89\\xc8\\x2e\\xd8\\x9a\\xba\\x42\\xf2\\xee\\x2b\\x86\\xe4\\x45\\xcf\\xd0\\x9f\\x4c\\xd7\\x8b\\x35\\x19\\x1b\\xf4\\x67\\xe7\\x84\\xee\\xf7\\x5d\\xc9\\x87\\xe0\\x46\\xd3\\x7d\\x4d\\x4e\\x8e\\x9b\\xbe\\x14\\xaf\\x80\\xd0\\x3a\\x1f\\x40\\x89\\x83\\x84\\xb9\\xd3\\x27\\x9f\\xac\\x9c\\x57\\xfd\\x9c\\x7e\\xec\\xbe\\x19\\xa5\\xac\\xc1\\x50\\x33\\xb8\\x4e\\x07\\xfd\\x0e\\x40\\x9b\\xdb\\xd5\\xa5\\x7f\\x65\\x64\\x11\\x83\\xa6\\xc0\\xa8\\xec\\x42\\x6d\\x1f\\x1d\\x22\\x31\\x66\\xff\\x0a\\x19\\x00\\xb2\\xe9\\x2b\\x7d\\x85\\x83\\x5d\\x01\\x9d\\x17\\x77\\x5e\\x50\\x93\\xcc\\xd1\\x26\\xf9\\x0f\\x63\\xcb\\x7d\\x15\\xcb\\xeb\\x53\\x13\\x24\\x21\\x9c\\xd6\\x4d\\xed\\x67\\x14\\xb2\\x1a\\x65\\x37\\x1a\\xf0\\x72\\x10\\xdf\\xdf\\x0e\\x4e\\x58\\xdd\\xc7\\xd5\\x9f\\x4c\\xfa\\x65\\xc4\\x21\\xd8\\x14\\xee\\x2c\\x9b\\xf6\\xdb\\xf6\\x48\\x73\\xd5\\x79\\xb0\\x9e\\xe5\\xdc\\xed\\xd7\\x33\\x06\\x3e\\x03\\x9a\\xc9\\xa5\\xf9\\xca\\x4c\\x25\\x25\\xa4\\xcc\\x8e\\x98\\x4d\\xa7\\x18\\x5e\\x2d\\x64\\xfa\\xd8\\x1c\\x8a\"},\n{{0x76,0x84,0x9c,0x18,0x8e,0x3e,0xdd,0x0f,0xf5,0xf8,0xfb,0x87,0x4d,0xc0,0x45,0x66,0x45,0x51,0x84,0x45,0xe4,0x1a,0x7d,0x68,0x33,0xe6,0x16,0xc3,0xc4,0x8c,0x98,0x68,},{0xd6,0x70,0xe2,0xea,0x07,0xdb,0x60,0xc2,0x2a,0xb7,0x9a,0x93,0xeb,0xf4,0x9d,0x22,0xa6,0x24,0x5e,0xe3,0xaf,0x07,0xb3,0xbe,0x58,0x4e,0xda,0x69,0x4c,0x37,0x72,0x9e,},{0x71,0x41,0x39,0x9d,0x51,0xda,0xa6,0xeb,0x45,0x19,0xbf,0x3f,0x01,0xb2,0x33,0x92,0x0f,0xa9,0x08,0xfe,0xfa,0x61,0x2f,0x0c,0xd7,0xd5,0xaf,0x8a,0x9a,0x3c,0x44,0x19,0x0e,0x3f,0x63,0x84,0xa8,0xd1,0x4d,0x37,0xc9,0x70,0x30,0xef,0x50,0x18,0xcf,0x8a,0xee,0x8a,0xeb,0x15,0x69,0xa7,0x3d,0x84,0x86,0x2a,0x59,0xb7,0xdf,0x72,0xfe,0x09,},\"\\x1e\\xcc\\xb0\\xbc\\x8e\\xca\\x3a\\xb5\\xbe\\xe6\\x8c\\x5f\\x8c\\xaa\\x34\\x53\\x67\\x66\\xc7\\x05\\xf5\\x08\\x27\\xdb\\x7a\\xc3\\x75\\xd4\\xfe\\x30\\xb5\\x8f\\xfb\\x7e\\x2f\\xe4\\x90\\xcc\\x71\\xa8\\xff\\x86\\xc0\\x06\\xd6\\x17\\x4d\\x05\\x79\\x3a\\xb8\\xa5\\x5d\\xd5\\x1b\\x06\\xde\\x41\\x7b\\xc0\\xac\\x45\\x2c\\xdc\\x7c\\xfb\\x0b\\xb0\\x03\\x62\\xb6\\x76\\x5d\\x20\\xdb\\x23\\xeb\\x18\\x48\\x02\\x70\\x64\\xa1\\xd9\\x09\\x1d\\x3b\\x10\\xed\\x77\\x6f\\x28\\xb7\\x67\\x68\\xbd\\xfc\\x08\\xf0\\xbc\\x51\\x1f\\x76\\xfa\\xeb\\xa7\\x6c\\xfc\\x4c\\xb5\\xc8\\x3d\\xc9\\xeb\\xe8\\xa8\\xd7\\x9e\\xdc\\xa9\\x23\\xec\\xcd\\x52\\x40\\x09\\xca\\xfe\\xdc\\x90\\xe3\\xad\\x87\\xd1\\x39\\x2e\\x1f\\xcc\\xf4\\xe6\\x0c\\xca\\xb9\\x5d\\xc0\\xab\\x54\\xbf\\x44\\x24\\x5a\\x00\\x7a\\x96\\xd4\\x66\\x34\\xb1\\xb2\\x96\\x5b\\x82\\x9c\\x3d\\x7d\\xaa\\x76\\x59\\x72\\xb5\\x4a\\x7b\\x36\\x5b\\x6f\\x34\\xd7\\x7d\\x71\\x76\\xac\\xd8\\xd8\\x94\\xf6\\xb4\\x17\\x09\\x1b\\x6c\\x00\\xed\\xb7\\xa4\\xe8\\x13\\x79\\x98\\x8b\\xfc\\xec\\xb6\\x92\\xe9\\xc3\\xc4\\x31\\x0a\\x7e\\x24\\x0e\\x5c\\x10\\x63\\xcd\\xe1\\x13\\xf2\\x2a\\x68\\x4a\\x50\\xa1\\x12\\xff\\x47\\xd3\\x89\\x88\\x12\\xef\\xb9\\x26\\x37\\x07\\x2b\\x86\\x16\\x3a\\xd8\\x93\\x16\\xd2\\x21\\x19\\x5a\\xcb\\xfa\\xd0\\xa0\\x3a\\x1f\\xbc\\x2d\\x96\\x7f\\xe8\\x3f\\x84\\xc8\\x45\\x9f\\xcc\\xd4\\x90\\xb9\\xc5\\xb3\\xe5\\x5d\\x27\\xe9\\x48\\x4e\\x94\\x3c\\x41\\x7f\\x21\\x28\\xd7\\x37\\x01\\xda\\x28\\xf4\\x9f\\xd3\\x68\\x3f\\x33\\xa3\\x9c\\xde\\xe2\\x34\\xbd\\x30\\x5b\\x94\\x91\\xe2\\xf3\\xeb\\x62\\x1b\\xe3\\xdd\\x1d\\xbb\\xb3\\x1b\"},\n{{0x83,0xae,0x48,0xad,0x70,0xda,0x0b,0xb3,0xcd,0xf8,0x74,0x81,0xee,0x2c,0x0c,0x85,0x71,0xc2,0xca,0x98,0x67,0x12,0xf8,0xbc,0x23,0x29,0xe9,0xa3,0xe3,0x33,0x83,0xc5,},{0xb7,0x85,0x30,0x90,0x00,0xdf,0x95,0xf5,0xa0,0x4f,0x7d,0x89,0xc4,0x11,0x33,0x01,0x05,0x7a,0xda,0xee,0xb2,0x9b,0xcd,0x28,0xd9,0x93,0x71,0xb5,0x37,0xbb,0xa2,0xf6,},{0x43,0x33,0x23,0x51,0xd3,0xfb,0x7b,0x45,0xfc,0xf3,0x7c,0x60,0x7d,0x44,0x2e,0xa8,0x0d,0xbd,0xa2,0xcb,0x69,0xc2,0x88,0x4f,0x42,0x4e,0x65,0xea,0x3a,0x33,0x1e,0xd8,0x47,0x2d,0x43,0x68,0x40,0x5c,0xb7,0x36,0xb2,0xd6,0x68,0x5a,0xd7,0x82,0xe2,0x39,0xfe,0x83,0x3e,0xd7,0x89,0xa2,0x92,0x31,0x85,0x16,0x6f,0x60,0x83,0x42,0xee,0x05,},\"\\xb7\\x52\\x1d\\x3f\\x71\\xc6\\x79\\xfa\\x70\\x37\\xfe\\x74\\x88\\xa6\\x41\\xf6\\xb9\\x7c\\x49\\x45\\x4a\\xcc\\x8e\\x36\\xb9\\x03\\xd8\\xf9\\xeb\\xb5\\x4d\\x89\\xcb\\x56\\xef\\xd1\\x9e\\x04\\xba\\x6a\\x7c\\x8f\\x48\\xa7\\xd3\\xec\\x9d\\xec\\xd3\\xf1\\xcd\\x0f\\xaf\\x6e\\x97\\x81\\x18\\xe6\\xad\\xce\\x9c\\x6c\\x6b\\xe6\\x3c\\x6a\\x6a\\x1a\\xe2\\x16\\x51\\x82\\x84\\x79\\xa4\\x6b\\xc9\\xa0\\xf7\\x94\\x30\\x40\\xf9\\x40\\xa0\\xd4\\x70\\xc8\\xe5\\x77\\xc5\\xd5\\x75\\xcb\\x53\\xc1\\xbf\\x3a\\xb1\\xfe\\xb0\\x50\\xdc\\xb6\\xfe\\xf0\\xba\\x44\\x47\\xf2\\x99\\xfd\\xb9\\xf2\\x7e\\xcb\\x07\\x14\\xec\\xfe\\xfd\\x74\\xba\\xd7\\xb1\\x22\\xa4\\x62\\xc2\\x4a\\x20\\x98\\x48\\xa0\\x33\\x89\\x07\\x45\\x78\\xc5\\xbd\\xc3\\x63\\x96\\xd8\\x09\\xb0\\xf1\\x40\\x18\\xda\\x64\\x91\\x7e\\x6b\\xf8\\x7e\\xf4\\x05\\xc8\\xf3\\xe3\\x33\\xff\\x9c\\x3b\\xaf\\x63\\x39\\x66\\x76\\x20\\x79\\x4b\\xb4\\x74\\x3f\\x05\\x14\\xb5\\xde\\x7d\\x7f\\xdd\\x94\\x7a\\x7e\\x35\\x01\\xee\\x88\\xef\\xad\\x15\\x9e\\x33\\xa1\\x07\\x2f\\xbb\\x99\\xc7\\xc7\\x1e\\x9d\\x13\\xa5\\x02\\xd5\\xa0\\x7c\\x4f\\x81\\x7e\\xeb\\x7f\\x0c\\x53\\x19\\xaa\\x41\\xa9\\x6d\\x5f\\xf4\\xf1\\x5a\\x73\\xc2\\x9b\\x57\\x1f\\xe2\\x11\\x09\\x0e\\x17\\x2c\\x8d\\xb5\\x18\\x62\\x46\\x12\\xa5\\xc3\\x71\\xa9\\xd7\\xce\\xf6\\xde\\x35\\xeb\\xef\\x96\\xe8\\x8e\\x1a\\x78\\xaf\\x3b\\xd5\\xdd\\x35\\x25\\x1a\\xb5\\x4d\\x73\\x71\\x8f\\x3e\\x70\\xd2\\xd5\\x90\\x21\\x53\\x1d\\xc7\\x31\\x84\\xf0\\xfc\\x69\\xc2\\xe9\\x29\\x65\\x84\\x4e\\xc2\\x7c\\x1c\\x02\\xaf\\x5e\\x9a\\x34\\x69\\xde\\x35\\x5d\\xb2\\x25\\x6e\\x0e\\xc2\\xa4\\xeb\\xa3\\x0a\"},\n{{0x39,0xe5,0x6a,0x65,0x62,0x3a,0x0a,0xeb,0xad,0xe0,0xda,0x12,0xce,0x1d,0xf3,0x78,0xbc,0x92,0x40,0x73,0xf7,0x3a,0x54,0x9e,0xff,0xae,0xbc,0x46,0x5d,0x1a,0x78,0xe2,},{0x83,0xda,0x8a,0xd5,0x0b,0xad,0x09,0xeb,0x3e,0x94,0xc7,0x25,0xdf,0x3c,0xc3,0xa1,0x19,0x73,0x6a,0xdc,0x85,0x9c,0xa1,0xa1,0x05,0x03,0xf4,0x8f,0xf2,0xfe,0xc5,0x96,},{0x39,0x8e,0x82,0x60,0x01,0x1f,0x57,0xd8,0xac,0x8c,0x58,0xd5,0x45,0x7b,0xc6,0x52,0xc7,0x41,0x4a,0xaf,0x6f,0xb2,0xf4,0x26,0xb7,0x89,0x90,0x56,0x60,0x5c,0x0a,0xfc,0x28,0x39,0x24,0x23,0xb2,0xb5,0x71,0xf5,0xe6,0xc3,0xc7,0xf6,0xd6,0x02,0x45,0xe5,0x3e,0xbd,0x03,0xbd,0xc5,0xad,0x3c,0x1a,0xd8,0x73,0x8c,0xb3,0x22,0x14,0xd0,0x0f,},\"\\xa9\\x6d\\xc2\\xea\\x3f\\xa1\\x35\\x14\\x92\\xa4\\x61\\x9d\\x91\\x94\\x68\\x1f\\x8e\\xc4\\x00\\xa9\\x71\\x58\\x24\\x44\\x82\\x65\\x38\\x38\\xcc\\xb7\\xe1\\x56\\xa8\\x2d\\x56\\x43\\x68\\xf8\\x3a\\x6e\\xe1\\xbe\\x46\\xbc\\x34\\xb8\\x17\\x20\\x0e\\x84\\x64\\xc3\\xd1\\x2b\\x5e\\xf2\\xc5\\x0b\\x19\\x56\\x5b\\x88\\x1c\\x4c\\x3d\\x45\\x63\\xfb\\x94\\x7e\\xb4\\x7c\\x3e\\xe9\\xc1\\xee\\x78\\x53\\x26\\x98\\x74\\x45\\x5b\\xfa\\xcb\\xa3\\x05\\xf3\\x07\\xd1\\xac\\x53\\x09\\xee\\xae\\x5c\\x07\\xfa\\x5c\\x4d\\x42\\x8e\\xdb\\xc8\\xb9\\x52\\x8c\\x44\\x15\\x24\\x3a\\x9e\\xf5\\x80\\xaf\\xf8\\xfc\\xfb\\x12\\x00\\x0a\\x71\\xfc\\xee\\xe8\\x9d\\xe9\\x7f\\x90\\x27\\x95\\x29\\xbc\\xc8\\x22\\xed\\x3c\\xb3\\x4c\\x82\\xba\\x5f\\xec\\x15\\xf4\\x94\\x56\\x63\\x63\\x6d\\x67\\xb5\\xfe\\xce\\xac\\xc3\\x1d\\x25\\xf9\\x8a\\xea\\x07\\xf7\\x80\\x0d\\x5a\\x10\\x34\\x25\\x1c\\xb9\\x1d\\xd0\\x96\\x3e\\xc2\\xc1\\xa5\\x47\\x73\\xa4\\xd9\\x6c\\x18\\x35\\x7f\\x8d\\x10\\x1d\\xe5\\x8e\\x93\\x2f\\x8c\\x6c\\xdd\\xe8\\xe3\\xcf\\xce\\xf5\\xa7\\x44\\x3f\\xdb\\xa7\\xb7\\x83\\x20\\x40\\x3c\\x01\\x96\\x84\\x47\\x24\\xa6\\x12\\x18\\x3e\\x34\\xbd\\xd8\\x08\\xce\\x7b\\x95\\x88\\x61\\xca\\x37\\x11\\x57\\x30\\xea\\xed\\xe1\\xfd\\x0b\\xaa\\xbe\\x97\\x6e\\xfe\\xfd\\x03\\x65\\xfd\\xf9\\x26\\x77\\x6c\\x53\\x6f\\x47\\xff\\x80\\xde\\x5c\\x18\\x29\\x1b\\xb7\\xe9\\xf1\\xb9\\x13\\xff\\xd1\\xd9\\x44\\x68\\xb7\\x89\\x75\\x2f\\xae\\x6c\\xa8\\x97\\xc0\\xcc\\xa5\\x3e\\xf1\\xe7\\x31\\xd0\\x0c\\x8b\\xdb\\xe8\\x92\\x9e\\xa6\\xb1\\xdc\\xe1\\xf3\\x1a\\x20\\x68\\x8d\\x37\\xb0\\xf3\\xa2\\xb4\\x15\\x3b\\x30\\x6b\\xdb\\xa1\"},\n{{0x4b,0x99,0x21,0x85,0x2f,0x40,0x9a,0x32,0x3a,0xe3,0x81,0x75,0xe8,0xd7,0x6a,0x21,0x1f,0xc4,0xd9,0xc6,0x54,0x17,0x8e,0xea,0x3b,0xaa,0x7a,0x76,0x7a,0x6f,0xda,0x06,},{0x4c,0x72,0x3e,0x43,0x6b,0x6b,0xd9,0x7f,0x44,0xaf,0x52,0x50,0x3b,0x21,0xcc,0x50,0xd5,0xf6,0xad,0x6c,0xfc,0x82,0x88,0x34,0x5d,0xde,0x80,0x54,0xe9,0x95,0x58,0x2e,},{0xcb,0xf1,0xf1,0x64,0x2d,0xf9,0x50,0xeb,0x71,0xfd,0x09,0x59,0x0d,0x34,0xc2,0x65,0x92,0x2c,0x58,0xbd,0x80,0x26,0xbb,0xa3,0xfc,0x0e,0x59,0x4a,0x6b,0xb1,0xf2,0xb9,0x0d,0xa3,0xdc,0x1d,0x5f,0x6b,0x6d,0x5b,0x40,0x5a,0x89,0x6d,0x1d,0xbb,0x71,0xb8,0x68,0x5c,0x4d,0xfc,0x44,0x4a,0xca,0xff,0xe6,0x5a,0xb8,0x33,0x17,0x89,0xf5,0x07,},\"\\x3f\\x33\\xd8\\xfb\\x83\\xe6\\x87\\x41\\x09\\x0a\\x37\\xbe\\xdd\\x74\\x5c\\xf1\\x41\\xaa\\xae\\xd8\\xc9\\x2f\\xfa\\x74\\x2a\\x52\\x56\\x17\\x77\\x88\\x58\\x05\\xac\\xe1\\x42\\x46\\xab\\x98\\xa8\\xcb\\x59\\x8c\\x9c\\xe3\\xde\\x9b\\x29\\xba\\xe5\\xfa\\x04\\xb1\\xcf\\x82\\x8d\\xe1\\x1a\\xff\\x80\\xa7\\xef\\x8a\\x3a\\x38\\xae\\xde\\x4f\\x3c\\x35\\x63\\xa2\\x5d\\x04\\x9b\\xad\\xca\\xd5\\xed\\x7e\\x47\\xfd\\xbb\\xa6\\xe1\\x11\\x30\\x7e\\xeb\\xe9\\xef\\x49\\x06\\xbc\\x98\\x97\\x28\\xb7\\x6e\\x84\\xaf\\xe8\\x08\\xe6\\x65\\x3b\\x27\\x1e\\x21\\x10\\x4a\\xa6\\x65\\xf1\\x89\\x8d\\xd2\\xaa\\xb2\\x30\\x90\\xe2\\x2b\\x4e\\x34\\x4a\\x26\\x16\\xfb\\xd8\\xee\\x4a\\xd8\\xed\\x81\\x08\\x39\\x5e\\xba\\x81\\x7f\\xbd\\x14\\xfe\\xc5\\xc1\\x7d\\xcf\\x56\\xb8\\x22\\x08\\x56\\xb2\\xb8\\x33\\xe0\\x91\\x40\\x7d\\x50\\x89\\xb3\\x5d\\xdf\\x34\\xb8\\x6f\\xf7\\xdc\\x9f\\xde\\x52\\xb2\\x1e\\xf1\\x21\\x76\\xef\\x33\\x70\\xb7\\xf3\\xa0\\xa8\\xcb\\x1b\\x05\\x8a\\x51\\xae\\xff\\xf3\\xd2\\x79\\xd8\\x0f\\x51\\xa6\\x8b\\xfb\\x59\\x25\\x87\\xb4\\x5c\\x5c\\x63\\xa7\\xe4\\xd6\\x25\\xb8\\x87\\xde\\x48\\x6a\\x11\\x83\\x16\\xc3\\xb6\\xa2\\x38\\x57\\x5f\\x92\\xac\\x5b\\x1c\\x94\\xc3\\xf5\\xdb\\xbd\\x96\\x68\\x60\\x00\\xd6\\xd3\\x9c\\xcc\\xd5\\x58\\xd4\\x20\\xe4\\xd4\\x47\\xa8\\xcb\\xc4\\xbc\\x7b\\x8c\\x6a\\x03\\xaf\\x0f\\x00\\x34\\xfb\\x35\\x18\\xd9\\x38\\x00\\xf0\\xf7\\x13\\xe4\\xb1\\x37\\x32\\xe1\\x6a\\xda\\x51\\x80\\x1d\\x7e\\x55\\x9c\\xf8\\x39\\xd1\\x05\\x8f\\x64\\x95\\x56\\x98\\x31\\x13\\x99\\x34\\x54\\x16\\x85\\x0d\\xdd\\xcc\\x56\\x01\\xa6\\x84\\xfd\\x09\\xe6\\xaf\\xd3\\x94\\x4f\\x5e\\x19\"},\n{{0x1b,0xff,0x65,0x2a,0x2c,0x83,0x09,0xa3,0x93,0xac,0x11,0xda,0x3a,0xa9,0x7f,0xb0,0x78,0xbb,0x28,0x4e,0xd5,0xe1,0xb8,0xcc,0xc9,0x83,0x65,0x2e,0xf8,0x55,0x6c,0xd0,},{0xaa,0xab,0xdc,0x09,0x1f,0xc3,0x68,0x23,0x54,0x20,0x17,0x44,0xe9,0xb7,0x3f,0xd2,0xa6,0xcf,0xb2,0x81,0x91,0x4b,0xf2,0xc7,0x0e,0xc3,0xdc,0x1d,0xec,0x72,0x16,0xb0,},{0x93,0xc9,0xc3,0x34,0x93,0xfc,0x64,0x17,0x2d,0x51,0xe1,0x6a,0x0a,0x1c,0xd7,0x29,0xa0,0xd9,0x9e,0x3c,0xb8,0x64,0xe8,0x9a,0x42,0x98,0x7f,0x39,0xdd,0x8c,0xd2,0x65,0x45,0xfd,0xfe,0x37,0x58,0x19,0x11,0xe8,0x03,0x67,0x7d,0xa4,0xc5,0x5b,0x0a,0x68,0x3d,0xdf,0x62,0xb7,0x28,0xf8,0xf3,0x06,0x85,0xae,0x58,0xf6,0x28,0xeb,0xe6,0x09,},\"\\x48\\xd0\\x26\\x98\\xa9\\x7b\\xdc\\xb3\\xef\\x07\\x8d\\xcf\\xcf\\x57\\x50\\x00\\x5f\\x17\\x02\\xd3\\x00\\xe7\\xe8\\x9b\\xc4\\x36\\xe3\\x81\\x11\\x34\\x01\\xf8\\x52\\xb8\\xb4\\xac\\xff\\x60\\xff\\xbd\\x4a\\xb4\\x6d\\x20\\x21\\x68\\xd9\\x8b\\x87\\x35\\xe7\\x9c\\xb3\\x50\\xe3\\x5b\\x07\\x0f\\xf6\\xbd\\xca\\xfd\\x95\\x4b\\x55\\x19\\x69\\xb6\\xb1\\xa7\\x0c\\x91\\x31\\xeb\\xd4\\x0d\\x96\\x14\\x02\\x91\\xd8\\xd2\\xb0\\x91\\x54\\x0a\\x8b\\x18\\xd8\\xe5\\x46\\x59\\x15\\xc2\\x5d\\xbc\\x6b\\x5c\\x9a\\x68\\x79\\x42\\x53\\x3c\\x37\\x2c\\x8b\\x4e\\x95\\xa9\\x53\\x67\\x71\\x69\\xb9\\x50\\xed\\xd3\\x46\\x43\\x75\\xcd\\x43\\x13\\x2f\\xf9\\xbd\\x54\\x1e\\xe2\\x2b\\xd4\\x18\\xce\\x23\\x19\\x5f\\x65\\xd8\\xb2\\x89\\xf6\\x33\\xec\\x8d\\x71\\xe1\\xa8\\x01\\xb0\\x6c\\x3c\\x82\\x7f\\x62\\x7e\\x72\\x3d\\x21\\x99\\x10\\x0c\\xe7\\x3e\\x8e\\x4a\\x44\\x40\\xe7\\x78\\x31\\x7a\\x47\\x49\\x10\\x79\\x3b\\x47\\xb1\\x0f\\xfb\\x55\\xdb\\x7f\\x28\\x1c\\x7d\\x7a\\x03\\x3b\\xd8\\x00\\x48\\xb8\\x26\\x73\\xb8\\x7c\\xf9\\x5e\\x99\\x42\\x2b\\xa6\\x28\\x68\\x8f\\x3c\\x97\\x18\\x90\\xca\\x15\\xd1\\x2f\\x57\\x2f\\xa1\\x97\\x7a\\x17\\x30\\x70\\x69\\xda\\x30\\x4e\\xad\\x30\\x26\\xeb\\x01\\x04\\x26\\x68\\x89\\x0d\\x17\\x00\\x8c\\xd1\\xe9\\x2c\\x46\\xcb\\xe9\\xc8\\x57\\xe7\\x19\\x3d\\xe3\\xab\\xa3\\x91\\x1e\\x4f\\x86\\xfe\\x0a\\x16\\x98\\xab\\x7c\\xdb\\x92\\x51\\xa8\\x42\\x4b\\x28\\x48\\xb9\\x6a\\xd8\\x1e\\xa2\\x39\\xd3\\x65\\xfd\\xea\\x92\\xea\\x5c\\x04\\x73\\xd0\\xa6\\xbb\\x1e\\x37\\x13\\x56\\xbd\\xfa\\xd2\\xd0\\x35\\x03\\x36\\xd3\\xe1\\x94\\x7c\\x93\\x6f\\xd0\\xc2\\x51\\x95\\x44\\x50\\x11\\x73\\x1b\"},\n{{0x00,0x2f,0xdd,0x1f,0x76,0x41,0x79,0x3a,0xb0,0x64,0xbb,0x7a,0xa8,0x48,0xf7,0x62,0xe7,0xec,0x6e,0x33,0x2f,0xfc,0x26,0xee,0xac,0xda,0x14,0x1a,0xe3,0x3b,0x17,0x83,},{0x77,0xd1,0xd8,0xeb,0xac,0xd1,0x3f,0x4e,0x2f,0x8a,0x40,0xe2,0x8c,0x4a,0x63,0xbc,0x9c,0xe3,0xbf,0xb6,0x97,0x16,0x33,0x4b,0xcb,0x28,0xa3,0x3e,0xb1,0x34,0x08,0x6c,},{0x0d,0xf3,0xaa,0x0d,0x09,0x99,0xad,0x3d,0xc5,0x80,0x37,0x8f,0x52,0xd1,0x52,0x70,0x0d,0x5b,0x3b,0x05,0x7f,0x56,0xa6,0x6f,0x92,0x11,0x2e,0x44,0x1e,0x1c,0xb9,0x12,0x3c,0x66,0xf1,0x87,0x12,0xc8,0x7e,0xfe,0x22,0xd2,0x57,0x37,0x77,0x29,0x62,0x41,0x21,0x69,0x04,0xd7,0xcd,0xd7,0xd5,0xea,0x43,0x39,0x28,0xbd,0x28,0x72,0xfa,0x0c,},\"\\x5a\\xc1\\xdf\\xc3\\x24\\xf4\\x3e\\x6c\\xb7\\x9a\\x87\\xab\\x04\\x70\\xfa\\x85\\x7b\\x51\\xfb\\x94\\x49\\x82\\xe1\\x90\\x74\\xca\\x44\\xb1\\xe4\\x00\\x82\\xc1\\xd0\\x7b\\x92\\xef\\xa7\\xea\\x55\\xad\\x42\\xb7\\xc0\\x27\\xe0\\xb9\\xe3\\x37\\x56\\xd9\\x5a\\x2c\\x17\\x96\\xa7\\xc2\\x06\\x68\\x11\\xdc\\x41\\x85\\x83\\x77\\xd4\\xb8\\x35\\xc1\\x68\\x8d\\x63\\x88\\x84\\xcd\\x2a\\xd8\\x97\\x0b\\x74\\xc1\\xa5\\x4a\\xad\\xd2\\x70\\x64\\x16\\x39\\x28\\xa7\\x79\\x88\\xb2\\x44\\x03\\xaa\\x85\\xaf\\x82\\xce\\xab\\x6b\\x72\\x8e\\x55\\x47\\x61\\xaf\\x71\\x75\\xae\\xb9\\x92\\x15\\xb7\\x42\\x1e\\x44\\x74\\xc0\\x4d\\x21\\x3e\\x01\\xff\\x03\\xe3\\x52\\x9b\\x11\\x07\\x7c\\xdf\\x28\\x96\\x4b\\x8c\\x49\\xc5\\x64\\x9e\\x3a\\x46\\xfa\\x0a\\x09\\xdc\\xd5\\x9d\\xca\\xd5\\x8b\\x9b\\x92\\x2a\\x83\\x21\\x0a\\xcd\\x5e\\x65\\x06\\x55\\x31\\x40\\x02\\x34\\xf5\\xe4\\x0c\\xdd\\xcf\\x98\\x04\\x96\\x8e\\x3e\\x9a\\xc6\\xf5\\xc4\\x4a\\xf6\\x50\\x01\\xe1\\x58\\x06\\x7f\\xc3\\xa6\\x60\\x50\\x2d\\x13\\xfa\\x88\\x74\\xfa\\x93\\x33\\x21\\x38\\xd9\\x60\\x6b\\xc4\\x1b\\x4c\\xee\\x7e\\xdc\\x39\\xd7\\x53\\xda\\xe1\\x2a\\x87\\x39\\x41\\xbb\\x35\\x7f\\x7e\\x92\\xa4\\x49\\x88\\x47\\xd6\\x60\\x54\\x56\\xcb\\x8c\\x0b\\x42\\x5a\\x47\\xd7\\xd3\\xca\\x37\\xe5\\x4e\\x90\\x3a\\x41\\xe6\\x45\\x0a\\x35\\xeb\\xe5\\x23\\x7c\\x6f\\x0c\\x1b\\xbb\\xc1\\xfd\\x71\\xfb\\x7c\\xd8\\x93\\xd1\\x89\\x85\\x02\\x95\\xc1\\x99\\xb7\\xd8\\x8a\\xf2\\x6b\\xc8\\x54\\x89\\x75\\xfd\\xa1\\x09\\x9f\\xfe\\xfe\\xe4\\x2a\\x52\\xf3\\x42\\x8d\\xdf\\xf3\\x5e\\x01\\x73\\xd3\\x33\\x95\\x62\\x50\\x7a\\xc5\\xd2\\xc4\\x5b\\xbd\\x2c\\x19\\xcf\\xe8\\x9b\"},\n{{0x25,0xb0,0xf0,0xbb,0x3d,0xcb,0x42,0x2a,0x6f,0x3c,0x6c,0x22,0x0e,0xaa,0xdb,0x11,0xdb,0xfe,0x48,0x9c,0x2d,0x45,0x5b,0x27,0x6c,0xef,0xe8,0xcb,0xa0,0x57,0xf9,0xf3,},{0xfe,0x03,0xc9,0xc4,0x39,0x4a,0xdc,0x74,0xb1,0x3f,0x47,0x65,0x4b,0xea,0xd8,0xbc,0x85,0x59,0x58,0xb4,0x19,0x4f,0xda,0xb2,0x09,0x7a,0xc1,0xb1,0x57,0x93,0x3c,0x05,},{0xda,0x50,0xd5,0x24,0x2b,0xf5,0x1c,0x39,0x51,0x78,0x0c,0xaf,0xd9,0x26,0xd6,0x7b,0xdf,0x56,0x40,0xd5,0xd3,0xbb,0x08,0x43,0x38,0x31,0xd5,0x6e,0x48,0xe2,0x59,0x2a,0x1c,0x37,0x59,0x68,0xbb,0x4d,0x2f,0xbe,0xa5,0x61,0x45,0xab,0xf2,0xd8,0x29,0x91,0x36,0x3b,0x15,0x65,0xfa,0x1e,0xff,0xe2,0x14,0x01,0x1a,0x68,0x6e,0x39,0x95,0x0e,},\"\\x54\\xd9\\x9f\\x96\\x9e\\xfa\\x88\\x70\\xfc\\x20\\xfa\\x9a\\x96\\x2b\\xb3\\x72\\x61\\x9c\\x32\\x44\\x39\\x72\\x8a\\xf3\\x13\\x9c\\x2a\\x07\\xe8\\xc1\\xb2\\x9c\\x1e\\x4e\\xed\\xc2\\xd4\\x0b\\xa7\\x22\\xf6\\x3c\\xe3\\x76\\x70\\x36\\x2a\\xf6\\xf5\\x20\\x2a\\xdd\\x66\\x8c\\x4f\\xb4\\xd6\\x2f\\xa8\\xba\\xcb\\xc7\\xd0\\x7f\\xf3\\xbd\\x38\\xc1\\x5a\\x01\\x06\\x42\\x59\\xcc\\x34\\x13\\x48\\x61\\x63\\x29\\x67\\x46\\x05\\x41\\xa9\\x9b\\x8d\\x51\\x82\\xbf\\x59\\x34\\x7b\\x5a\\x59\\x87\\x9a\\xa3\\xb0\\x91\\xa1\\xf3\\xe0\\x41\\x35\\xbd\\x63\\x01\\xbe\\x52\\x26\\xd4\\x89\\x5e\\x5e\\x9c\\x2b\\x15\\xe4\\x8e\\x5e\\xcd\\xf4\\x41\\x29\\xe6\\x12\\x28\\x53\\xa6\\x06\\xfc\\x11\\x84\\x66\\xfa\\x72\\x0b\\x5a\\xb1\\x65\\x63\\x5c\\x3b\\xde\\x04\\xd7\\x42\\x89\\x27\\x4f\\xa0\\x35\\x47\\xac\\xcb\\xde\\x78\\x0e\\x1f\\xa0\\xbf\\x2c\\x56\\xf8\\x43\\x6a\\x53\\xe7\\x38\\x78\\xa4\\x24\\xa2\\x9a\\xa9\\xde\\x38\\x5d\\xba\\x41\\x9a\\xe6\\xa5\\xd1\\x2e\\x00\\x42\\x76\\x15\\x2b\\x58\\xd3\\x25\\xb3\\x02\\x40\\x0a\\x55\\x33\\x3c\\x38\\xcd\\xe4\\x90\\x8a\\xe1\\xd0\\x12\\x1c\\xbe\\xca\\x95\\x08\\x09\\xc5\\x43\\x31\\x42\\x77\\xc1\\x48\\x5e\\x68\\xd9\\xf9\\xc0\\xa9\\x62\\xd1\\xb1\\xe0\\xdd\\xa1\\xd4\\xa5\\x2b\\x56\\xf8\\x30\\x8a\\x80\\xb9\\x2a\\xcc\\x9f\\x4e\\xbc\\x3e\\xd4\\x5d\\x91\\xa1\\x29\\xda\\x86\\x75\\x62\\x1a\\xf6\\x76\\x70\\x3d\\xef\\x3b\\x84\\x11\\x31\\x83\\xb2\\xe3\\xa8\\xc5\\x61\\x57\\xf2\\x43\\xf1\\x39\\x80\\xf3\\xd1\\x75\\x6f\\xea\\x76\\x68\\xc9\\x15\\x03\\xd3\\x5c\\x83\\x9a\\x21\\x20\\xc7\\x9e\\xc9\\x54\\xfb\\x54\\x6d\\x7b\\x54\\x2f\\x98\\x72\\x89\\x53\\x4f\\xfd\\xef\\x62\\xd4\\x7f\\xd5\\xec\"},\n{{0xbf,0x5b,0xa5,0xd6,0xa4,0x9d,0xd5,0xef,0x7b,0x4d,0x5d,0x7d,0x3e,0x4e,0xcc,0x50,0x5c,0x01,0xf6,0xcc,0xee,0x4c,0x54,0xb5,0xef,0x7b,0x40,0xaf,0x6a,0x45,0x41,0x40,},{0x1b,0xe0,0x34,0xf8,0x13,0x01,0x7b,0x90,0x0d,0x89,0x90,0xaf,0x45,0xfa,0xd5,0xb5,0x21,0x4b,0x57,0x3b,0xd3,0x03,0xef,0x7a,0x75,0xef,0x4b,0x8c,0x5c,0x5b,0x98,0x42,},{0x27,0x9c,0xac,0xe6,0xfd,0xaf,0x39,0x45,0xe3,0x83,0x7d,0xf4,0x74,0xb2,0x86,0x46,0x14,0x37,0x47,0x63,0x2b,0xed,0xe9,0x3e,0x7a,0x66,0xf5,0xca,0x29,0x1d,0x2c,0x24,0x97,0x85,0x12,0xca,0x0c,0xb8,0x82,0x7c,0x8c,0x32,0x26,0x85,0xbd,0x60,0x55,0x03,0xa5,0xec,0x94,0xdb,0xae,0x61,0xbb,0xdc,0xae,0x1e,0x49,0x65,0x06,0x02,0xbc,0x07,},\"\\x16\\x15\\x2c\\x2e\\x03\\x7b\\x1c\\x0d\\x32\\x19\\xce\\xd8\\xe0\\x67\\x4a\\xee\\x6b\\x57\\x83\\x4b\\x55\\x10\\x6c\\x53\\x44\\x62\\x53\\x22\\xda\\x63\\x8e\\xce\\xa2\\xfc\\x9a\\x42\\x4a\\x05\\xee\\x95\\x12\\xd4\\x8f\\xcf\\x75\\xdd\\x8b\\xd4\\x69\\x1b\\x3c\\x10\\xc2\\x8e\\xc9\\x8e\\xe1\\xaf\\xa5\\xb8\\x63\\xd1\\xc3\\x67\\x95\\xed\\x18\\x10\\x5d\\xb3\\xa9\\xaa\\xbd\\x9d\\x2b\\x4c\\x17\\x47\\xad\\xba\\xf1\\xa5\\x6f\\xfc\\xc0\\xc5\\x33\\xc1\\xc0\\xfa\\xef\\x33\\x1c\\xdb\\x79\\xd9\\x61\\xfa\\x39\\xf8\\x80\\xa1\\xb8\\xb1\\x16\\x47\\x41\\x82\\x2e\\xfb\\x15\\xa7\\x25\\x9a\\x46\\x5b\\xef\\x21\\x28\\x55\\x75\\x1f\\xab\\x66\\xa8\\x97\\xbf\\xa2\\x11\\xab\\xe0\\xea\\x2f\\x2e\\x1c\\xd8\\xa1\\x1d\\x80\\xe1\\x42\\xcd\\xe1\\x26\\x3e\\xec\\x26\\x7a\\x31\\x38\\xae\\x1f\\xcf\\x40\\x99\\xdb\\x0a\\xb5\\x3d\\x64\\xf3\\x36\\xf4\\xbc\\xd7\\xa3\\x63\\xf6\\xdb\\x11\\x2c\\x0a\\x24\\x53\\x05\\x1a\\x00\\x06\\xf8\\x13\\xaa\\xf4\\xae\\x94\\x8a\\x20\\x90\\x61\\x93\\x74\\xfa\\x58\\x05\\x24\\x09\\xc2\\x8e\\xf7\\x62\\x25\\x68\\x7d\\xf3\\xcb\\x2d\\x1b\\x0b\\xfb\\x43\\xb0\\x9f\\x47\\xf1\\x23\\x2f\\x79\\x0e\\x6d\\x8d\\xea\\x75\\x9e\\x57\\x94\\x20\\x99\\xf4\\xc4\\xbd\\x33\\x90\\xf2\\x8a\\xfc\\x20\\x98\\x24\\x49\\x61\\x46\\x5c\\x64\\x3f\\xc8\\xb2\\x97\\x66\\xaf\\x2b\\xcb\\xc5\\x44\\x0b\\x86\\xe8\\x36\\x08\\xcf\\xc9\\x37\\xbe\\x98\\xbb\\x48\\x27\\xfd\\x5e\\x6b\\x68\\x9a\\xdc\\x2e\\x26\\x51\\x3d\\xb5\\x31\\x07\\x6a\\x65\\x64\\x39\\x62\\x55\\xa0\\x99\\x75\\xb7\\x03\\x4d\\xac\\x06\\x46\\x1b\\x25\\x56\\x42\\xe3\\xa7\\xed\\x75\\xfa\\x9f\\xc2\\x65\\x01\\x1f\\x5f\\x62\\x50\\x38\\x2a\\x84\\xac\\x26\\x8d\\x63\\xba\\x64\"},\n{{0x65,0xde,0x29,0x7b,0x70,0xcb,0xe8,0x09,0x80,0x50,0x0a,0xf0,0x56,0x1a,0x24,0xdb,0x50,0x00,0x10,0x00,0x12,0x5f,0x44,0x90,0x36,0x6d,0x83,0x00,0xd3,0x12,0x85,0x92,},{0xba,0x8e,0x2a,0xd9,0x29,0xbd,0xce,0xa5,0x38,0x74,0x10,0x42,0xb5,0x7f,0x20,0x67,0xd3,0x15,0x37,0x07,0xa4,0x53,0x77,0x0d,0xb9,0xf3,0xc4,0xca,0x75,0x50,0x4d,0x24,},{0x7a,0x9b,0x73,0x6b,0x01,0xcc,0x92,0xa3,0x34,0x9f,0x1a,0x3c,0x32,0xdb,0xd9,0x19,0x59,0x82,0x53,0x94,0xff,0x44,0x3c,0x56,0x74,0x05,0xe8,0x99,0xc8,0x18,0x5c,0xe8,0xfa,0xd9,0x50,0x0e,0x1f,0xce,0x89,0xd9,0x5a,0x62,0x53,0xc0,0x04,0x77,0x43,0x5a,0xcf,0x04,0xbf,0xf9,0x93,0xde,0x1b,0x00,0x49,0x5d,0xef,0x08,0x34,0xee,0x1f,0x07,},\"\\x13\\x1d\\x8f\\x4c\\x2c\\x94\\xb1\\x53\\x56\\x5b\\x86\\x59\\x2e\\x77\\x0c\\x98\\x7a\\x44\\x34\\x61\\xb3\\x9a\\xa2\\x40\\x8b\\x29\\xe2\\x13\\xab\\x05\\x7a\\xff\\xc5\\x98\\xb5\\x83\\x73\\x9d\\x66\\x03\\xa8\\x3f\\xef\\x0a\\xfc\\x51\\x47\\x21\\xdb\\x0e\\x76\\xf9\\xbd\\x1b\\x72\\xb9\\x8c\\x56\\x5c\\xc8\\x88\\x1a\\xf5\\x74\\x7c\\x0b\\xa6\\xf5\\x8c\\x53\\xdd\\x23\\x77\\xda\\x6c\\x0d\\x3a\\xa8\\x05\\x62\\x0c\\xc4\\xe7\\x5d\\x52\\xaa\\xbc\\xba\\x1f\\x9b\\x28\\x49\\xe0\\x8b\\xd1\\xb6\\xb9\\x2e\\x6f\\x06\\x61\\x5b\\x81\\x45\\x19\\x60\\x6a\\x02\\xdc\\x65\\xa8\\x60\\x9f\\x5b\\x29\\xe9\\xc2\\xaf\\x5a\\x89\\x4f\\x71\\x16\\xef\\x28\\xcf\\xd1\\xe7\\xb7\\x6b\\x64\\x06\\x17\\x32\\xf7\\xa5\\xa3\\xf8\\xaa\\x4c\\x2e\\x56\\x9e\\x62\\x7a\\x3f\\x97\\x49\\xaa\\x59\\x7b\\xe4\\x9d\\x6b\\x94\\x43\\x6c\\x35\\x2d\\xd5\\xfa\\x7b\\x83\\xc9\\x2d\\x26\\x10\\xfa\\xa3\\x20\\x95\\xca\\x30\\x21\\x52\\xd9\\x1a\\x3c\\x97\\x76\\x75\\x0e\\x75\\x8e\\xe8\\xe9\\xe4\\x02\\xc6\\xf5\\x38\\x5e\\xaa\\x5d\\xf2\\x38\\x50\\xe5\\x4b\\xeb\\x1b\\xe4\\x37\\xa4\\x16\\xc7\\x11\\x5e\\xd6\\xaa\\x6d\\xe1\\x3b\\x55\\x48\\x25\\x32\\x78\\x7e\\x0b\\xee\\x34\\xb8\\x3f\\x30\\x84\\x40\\x67\\x65\\x63\\x54\\x97\\xc9\\x31\\xb6\\x2a\\x05\\x18\\xf1\\xfb\\xc2\\xb8\\x91\\xdc\\x72\\x62\\xc7\\xc6\\xb6\\x7e\\xda\\x59\\x4f\\xa5\\x30\\xd7\\x4c\\x93\\x29\\xba\\xd5\\xbe\\x94\\xc2\\x87\\xfb\\xcd\\xe5\\x3a\\xa8\\x02\\x72\\xb8\\x33\\x22\\x61\\x3d\\x93\\x68\\xe5\\x90\\x40\\x76\\xfd\\xbc\\xc8\\x8b\\x2c\\x0e\\x59\\xc1\\x0b\\x02\\xc4\\x48\\xe0\\x0d\\x1b\\x3e\\x7a\\x9c\\x96\\x40\\xfe\\xff\\xb9\\x52\\x3a\\x8a\\x60\\xe1\\xd8\\x3f\\x04\\xa4\\xb8\\xdf\\x69\\x15\\x3b\"},\n{{0x08,0x26,0xe7,0x33,0x33,0x24,0xe7,0xec,0x8c,0x76,0x42,0x92,0xf6,0x01,0x5d,0x46,0x70,0xe9,0xb8,0xd7,0xc4,0xa8,0x9e,0x8d,0x90,0x9e,0x8e,0xf4,0x35,0xd1,0x8d,0x15,},{0xff,0xb2,0x34,0x8c,0xa8,0xa0,0x18,0x05,0x8b,0xe7,0x1d,0x15,0x12,0xf3,0x76,0xf9,0x1e,0x8b,0x0d,0x55,0x25,0x81,0x25,0x4e,0x10,0x76,0x02,0x21,0x73,0x95,0xe6,0x62,},{0x4b,0xac,0x7f,0xab,0xec,0x87,0x24,0xd8,0x1a,0xb0,0x9a,0xe1,0x30,0x87,0x4d,0x70,0xb5,0x21,0x34,0x92,0x10,0x43,0x72,0xf6,0x01,0xae,0x5a,0xbb,0x10,0x53,0x27,0x99,0x37,0x3c,0x4d,0xad,0x21,0x58,0x76,0x44,0x1f,0x47,0x4e,0x2c,0x00,0x6b,0xe3,0x7c,0x3c,0x8f,0x5f,0x6f,0x01,0x7d,0x08,0x70,0x41,0x4f,0xd2,0x76,0xa8,0xf4,0x28,0x08,},\"\\x7f\\x9e\\x3e\\x2f\\x03\\xc9\\xdf\\x3d\\x21\\xb9\\x90\\xf5\\xa4\\xaf\\x82\\x95\\x73\\x4a\\xfe\\x78\\x3a\\xcc\\xc3\\x4f\\xb1\\xe9\\xb8\\xe9\\x5a\\x0f\\xd8\\x37\\xaf\\x7e\\x05\\xc1\\x3c\\xda\\x0d\\xe8\\xfa\\xda\\xc9\\x20\\x52\\x65\\xa0\\x79\\x2b\\x52\\x56\\x3b\\xdc\\x2f\\xee\\x76\\x63\\x48\\xbe\\xfc\\xc5\\x6b\\x88\\xbb\\xb9\\x5f\\x15\\x44\\x14\\xfb\\x18\\x6e\\xc4\\x36\\xaa\\x62\\xea\\x6f\\xca\\xbb\\x11\\xc0\\x17\\xa9\\xd2\\xd1\\x5f\\x67\\xe5\\x95\\x98\\x0e\\x04\\xc9\\x31\\x3b\\xc9\\x4f\\xbc\\x8c\\x11\\x34\\xc2\\xf4\\x03\\x32\\xbc\\x7e\\x31\\x1a\\xc1\\xce\\x11\\xb5\\x05\\xf8\\x57\\x2a\\xda\\x7f\\xbe\\x19\\x6f\\xba\\x82\\x2d\\x9a\\x91\\x44\\x92\\xfa\\x71\\x85\\xe9\\xf3\\xbe\\xa4\\x68\\x72\\x00\\xa5\\x24\\xc6\\x73\\xa1\\xcd\\xf8\\x7e\\xb3\\xa1\\x40\\xdc\\xdb\\x6a\\x88\\x75\\x61\\x34\\x88\\xa2\\xb0\\x0a\\xdf\\x71\\x75\\x34\\x1c\\x1c\\x25\\x76\\x35\\xfa\\x1a\\x53\\xa3\\xe2\\x1d\\x60\\xc2\\x28\\x39\\x9e\\xea\\x09\\x91\\xf1\\x12\\xc6\\x0f\\x65\\x3d\\x71\\x48\\xe2\\xc5\\xce\\xb9\\x8f\\x94\\x08\\x31\\xf0\\x70\\xdb\\x10\\x84\\xd7\\x91\\x56\\xcc\\x82\\xc4\\x6b\\xc9\\xb8\\xe8\\x84\\xf3\\xfa\\x81\\xbe\\x2d\\xa4\\xcd\\xda\\x46\\xbc\\xaa\\x24\\xcc\\x46\\x1f\\x76\\xee\\x64\\x7b\\xb0\\xf0\\xf8\\xc1\\x5a\\xc5\\xda\\xa7\\x95\\xb9\\x45\\xe6\\xf8\\x5b\\xb3\\x10\\x36\\x2e\\x48\\xd8\\x09\\x5c\\x78\\x2c\\x61\\xc5\\x2b\\x48\\x1b\\x4b\\x00\\x2a\\xd0\\x6e\\xa7\\x4b\\x8d\\x30\\x6e\\xff\\x71\\xab\\xf2\\x1d\\xb7\\x10\\xa8\\x91\\x3c\\xbe\\x48\\x33\\x2b\\xe0\\xa0\\xb3\\xf3\\x1e\\x0c\\x7a\\x6e\\xba\\x85\\xce\\x33\\xf3\\x57\\xc7\\xae\\xcc\\xd3\\x0b\\xfb\\x1a\\x65\\x74\\x40\\x8b\\x66\\xfe\\x40\\x4d\\x31\\xc3\\xc5\"},\n{{0x00,0xad,0x62,0x27,0x97,0x7b,0x5f,0x38,0xcc,0xda,0x99,0x4d,0x92,0x8b,0xba,0x90,0x86,0xd2,0xda,0xeb,0x01,0x3f,0x86,0x90,0xdb,0x98,0x66,0x48,0xb9,0x0c,0x1d,0x45,},{0x91,0xa4,0xea,0x00,0x57,0x52,0xb9,0x2c,0xbe,0xbf,0x99,0xa8,0xa5,0xcb,0xec,0xd2,0x40,0xae,0x3f,0x01,0x6c,0x44,0xad,0x14,0x1b,0x2e,0x57,0xdd,0xc7,0x73,0xdc,0x8e,},{0xdc,0x50,0x1d,0xb7,0x9f,0xd7,0x82,0xbc,0x88,0xca,0xe7,0x92,0x55,0x7d,0x5d,0x27,0x3f,0x9b,0xa5,0x60,0xc7,0xd9,0x00,0x37,0xfe,0x84,0xac,0x87,0x9d,0x68,0x4f,0x61,0x2a,0x77,0x45,0x2c,0x44,0x43,0xe9,0x5c,0x07,0xb8,0xbe,0x19,0x2c,0x35,0x76,0x9b,0x17,0xbb,0xdf,0xca,0x42,0x28,0x0d,0xe7,0x96,0xd9,0x21,0x19,0xd8,0x33,0x67,0x0d,},\"\\xcb\\x5b\\xc5\\xb9\\x8b\\x2e\\xfc\\xe4\\x35\\x43\\xe9\\x1d\\xf0\\x41\\xe0\\xdb\\xb5\\x3e\\xd8\\xf6\\x7b\\xf0\\xf1\\x97\\xc5\\x2b\\x22\\x11\\xe7\\xa4\\x5e\\x2e\\x1e\\xc8\\x18\\xc1\\xa8\\x0e\\x10\\xab\\xf6\\xa4\\x35\\x35\\xf5\\xb7\\x9d\\x97\\x4d\\x8a\\xe2\\x8a\\x22\\x95\\xc0\\xa6\\x52\\x17\\x63\\xb6\\x07\\xd5\\x10\\x3c\\x6a\\xef\\x3b\\x27\\x86\\xbd\\x5a\\xfd\\x75\\x63\\x69\\x56\\x60\\x68\\x43\\x37\\xbc\\x30\\x90\\x73\\x9f\\xb1\\xcd\\x53\\xa9\\xd6\\x44\\x13\\x9b\\x6d\\x4c\\xae\\xc7\\x5b\\xda\\x7f\\x25\\x21\\xfb\\xfe\\x67\\x6a\\xb4\\x5b\\x98\\xcb\\x31\\x7a\\xa7\\xca\\x79\\xfc\\x54\\xa3\\xd7\\xc5\\x78\\x46\\x6a\\x6a\\xa6\\x4e\\x43\\x4e\\x92\\x34\\x65\\xa7\\xf2\\x11\\xaa\\x0c\\x61\\x68\\x1b\\xb8\\x48\\x6e\\x90\\x20\\x6a\\x25\\x25\\x0d\\x3f\\xda\\xe6\\xfb\\x03\\x29\\x97\\x21\\xe9\\x9e\\x2a\\x91\\x49\\x10\\xd9\\x17\\x60\\x08\\x9b\\x5d\\x28\\x1e\\x13\\x1e\\x6c\\x83\\x6b\\xc2\\xde\\x08\\xf7\\xe0\\x2c\\x48\\xd3\\x23\\xc6\\x47\\xe9\\x53\\x6c\\x00\\xec\\x10\\x39\\x20\\x1c\\x03\\x62\\x61\\x8c\\x7d\\x47\\xaa\\x8e\\x7b\\x97\\x15\\xff\\xc4\\x39\\x98\\x7a\\xe1\\xd3\\x11\\x54\\xa6\\x19\\x8c\\x5a\\xa1\\x1c\\x12\\x8f\\x40\\x82\\xf5\\x56\\xc9\\x9b\\xaf\\x10\\x3e\\xca\\xdc\\x3b\\x2f\\x3b\\x2e\\xc5\\xb4\\x69\\x62\\x3b\\xc0\\x3a\\x53\\xca\\xf3\\x81\\x4b\\x16\\x30\\x0a\\xed\\xbd\\xa5\\x38\\xd6\\x76\\xd1\\xf6\\x07\\x10\\x26\\x39\\xdb\\x2a\\x62\\xc4\\x46\\x70\\x7c\\xe6\\x46\\x9b\\xd8\\x73\\xa0\\x46\\x82\\x25\\xbe\\x88\\xb0\\xae\\xf5\\xd4\\x02\\x04\\x59\\xb9\\x4b\\x32\\xfe\\x2b\\x01\\x33\\xe9\\x2e\\x7b\\xa5\\x4d\\xd2\\xa5\\x39\\x7e\\xd8\\x5f\\x96\\x6a\\xb3\\x9e\\xd0\\x73\\x0c\\xca\\x8e\\x7d\\xac\\xb8\\xa3\\x36\"},\n{{0x15,0x21,0xc6,0xdb,0xd6,0xf7,0x24,0xde,0x73,0xea,0xf7,0xb5,0x62,0x64,0xf0,0x10,0x35,0xc0,0x4e,0x01,0xc1,0xf3,0xeb,0x3c,0xbe,0x83,0xef,0xd2,0x6c,0x43,0x9a,0xda,},{0x2f,0x61,0xa2,0x6f,0xfb,0x68,0xba,0x4f,0x6e,0x14,0x15,0x29,0xdc,0x26,0x17,0xe8,0x53,0x1c,0x71,0x51,0x40,0x48,0x08,0x09,0x3b,0x4f,0xa7,0xfe,0xda,0xea,0x25,0x5d,},{0xa8,0x17,0xed,0x23,0xec,0x39,0x8a,0x12,0x86,0x01,0xc1,0x83,0x2d,0xc6,0xaf,0x76,0x43,0xbf,0x3a,0x5f,0x51,0x7b,0xcc,0x57,0x94,0x50,0xfd,0xb4,0x75,0x90,0x28,0xf4,0x96,0x61,0x64,0x12,0x5f,0x6e,0xbd,0x0d,0x6b,0xf8,0x6f,0xf2,0x98,0xa3,0x9c,0x76,0x6d,0x0c,0x21,0xfd,0xb0,0xcb,0xfd,0xf8,0x1c,0xd0,0xeb,0x1f,0x03,0xcd,0x8a,0x08,},\"\\x3e\\x3c\\x7c\\x49\\x07\\x88\\xe4\\xb1\\xd4\\x2f\\x5c\\xbc\\xae\\x3a\\x99\\x30\\xbf\\x61\\x7e\\xbd\\xff\\x44\\x7f\\x7b\\xe2\\xac\\x2b\\xa7\\xcd\\x5b\\xcf\\xc0\\x15\\x76\\x09\\x63\\xe6\\xfe\\x5b\\x95\\x6f\\xb7\\xcd\\xb3\\x5b\\xd5\\xa1\\x7f\\x54\\x29\\xca\\x66\\x4f\\x43\\x7f\\x08\\x75\\x3a\\x74\\x1c\\x2b\\xc8\\x69\\x2b\\x71\\xa9\\x11\\x5c\\x58\\x2a\\x25\\xb2\\xf7\\x4d\\x32\\x98\\x54\\xd6\\x0b\\x78\\x17\\xc0\\x79\\xb3\\x52\\x3a\\xaf\\xf8\\x79\\x3c\\x2f\\x72\\xff\\xf8\\xcd\\x10\\x59\\x2c\\x54\\xe7\\x38\\xdf\\x1d\\x64\\x52\\xfb\\x72\\xda\\x13\\x1c\\x67\\x31\\xea\\x5c\\x95\\x3c\\x62\\xea\\x17\\x7a\\xc1\\xf4\\x73\\x5e\\x51\\x54\\x47\\x73\\x87\\x10\\x9a\\xfa\\xe1\\x5f\\x3e\\xd6\\xee\\xb0\\x86\\x06\\xe2\\x8c\\x81\\xd4\\x38\\x6f\\x03\\xb9\\x37\\x69\\x24\\xb6\\xef\\x8d\\x22\\x1e\\xe2\\x95\\x47\\xf8\\x2a\\x7e\\xde\\x48\\xe1\\xdc\\x17\\x72\\x3e\\x3d\\x42\\x17\\x1e\\xea\\xf9\\x6a\\xc8\\x4b\\xed\\xc2\\xa0\\x1d\\xd8\\x6f\\x4d\\x08\\x57\\x34\\xfd\\x69\\xf9\\x1b\\x52\\x63\\xe4\\x39\\x08\\x3f\\xf0\\x31\\x85\\x36\\xad\\xff\\x41\\x47\\x30\\x8e\\x3a\\xaf\\xd1\\xb5\\x8b\\xb7\\x4f\\x6f\\xb0\\x21\\x4a\\x46\\xfd\\xcd\\x35\\x24\\xf1\\x8d\\xf5\\xa7\\x19\\xce\\x57\\x31\\x9e\\x79\\x1b\\x4e\\xa6\\x06\\xb4\\x99\\xbf\\xa5\\x7a\\x60\\xe7\\x07\\xf9\\x4e\\x18\\xf1\\xfe\\xd2\\x2f\\x91\\xbc\\x79\\xe6\\x36\\x4a\\x84\\x3f\\x9c\\xbf\\x93\\x82\\x5c\\x46\\x5e\\x9c\\xae\\x90\\x72\\xbc\\x9d\\x3e\\xc4\\x47\\x1f\\x21\\xab\\x2f\\x7e\\x99\\xa6\\x33\\xf5\\x87\\xaa\\xc3\\xdb\\x78\\xae\\x96\\x66\\xa8\\x9a\\x18\\x00\\x8d\\xd6\\x1d\\x60\\x21\\x85\\x54\\x41\\x1a\\x65\\x74\\x0f\\xfd\\x1a\\xe3\\xad\\xc0\\x65\\x95\\xe3\\xb7\\x87\\x64\\x07\\xb6\"},\n{{0x17,0xe5,0xf0,0xa8,0xf3,0x47,0x51,0xba,0xbc,0x5c,0x72,0x3e,0xcf,0x33,0x93,0x06,0x99,0x2f,0x39,0xea,0x06,0x5a,0xc1,0x40,0xfc,0xbc,0x39,0x7d,0x2d,0xd3,0x2c,0x4b,},{0x4f,0x1e,0x23,0xcc,0x0f,0x2f,0x69,0xc8,0x8e,0xf9,0x16,0x2a,0xb5,0xf8,0xc5,0x9f,0xb3,0xb8,0xab,0x20,0x96,0xb7,0x7e,0x78,0x2c,0x63,0xc0,0x7c,0x8c,0x4f,0x2b,0x60,},{0xef,0xe2,0xcb,0x63,0xfe,0x7b,0x4f,0xc9,0x89,0x46,0xdc,0x82,0xfb,0x69,0x98,0xe7,0x41,0xed,0x9c,0xe6,0xb9,0xc1,0xa9,0x3b,0xb4,0x5b,0xc0,0xa7,0xd8,0x39,0x6d,0x74,0x05,0x28,0x2b,0x43,0xfe,0x36,0x3b,0xa5,0xb2,0x35,0x89,0xf8,0xe1,0xfa,0xe1,0x30,0xe1,0x57,0xce,0x88,0x8c,0xd7,0x2d,0x05,0x3d,0x0c,0xc1,0x9d,0x25,0x7a,0x43,0x00,},\"\\xc0\\xfa\\xd7\\x90\\x02\\x40\\x19\\xbd\\x6f\\xc0\\x8a\\x7a\\x92\\xf5\\xf2\\xac\\x35\\xcf\\x64\\x32\\xe2\\xea\\xa5\\x3d\\x48\\x2f\\x6e\\x12\\x04\\x93\\x53\\x36\\xcb\\x3a\\xe6\\x5a\\x63\\xc2\\x4d\\x0e\\xc6\\x53\\x9a\\x10\\xee\\x18\\x76\\x0f\\x2f\\x52\\x05\\x37\\x77\\x4c\\xde\\xc6\\xe9\\x6b\\x55\\x53\\x60\\x11\\xda\\xa8\\xf8\\xbc\\xb9\\xcd\\xaf\\x6d\\xf5\\xb3\\x46\\x48\\x44\\x8a\\xc7\\xd7\\xcb\\x7c\\x6b\\xd8\\x0d\\x67\\xfb\\xf3\\x30\\xf8\\x76\\x52\\x97\\x76\\x60\\x46\\xa9\\x25\\xab\\x52\\x41\\x1d\\x16\\x04\\xc3\\xed\\x6a\\x85\\x17\\x30\\x40\\x12\\x56\\x58\\xa3\\x2c\\xf4\\xc8\\x54\\xef\\x28\\x13\\xdf\\x2b\\xe6\\xf3\\x83\\x0e\\x5e\\xee\\x5a\\x61\\x63\\xa8\\x3c\\xa8\\x84\\x9f\\x61\\x29\\x91\\xa3\\x1e\\x9f\\x88\\x02\\x8e\\x50\\xbf\\x85\\x35\\xe1\\x17\\x55\\xfa\\xd0\\x29\\xd9\\x4c\\xf2\\x59\\x59\\xf6\\x69\\x5d\\x09\\xc1\\xba\\x43\\x15\\xd4\\x0f\\x7c\\xf5\\x1b\\x3f\\x81\\x66\\xd0\\x2f\\xab\\xa7\\x51\\x1e\\xcd\\x8b\\x1d\\xde\\xd5\\xf1\\x0c\\xd6\\x84\\x34\\x55\\xcf\\xf7\\x07\\xed\\x22\\x53\\x96\\xc6\\x1d\\x08\\x20\\xd2\\x0a\\xda\\x70\\xd0\\xc3\\x61\\x9f\\xf6\\x79\\x42\\x20\\x61\\xc9\\xf7\\xc7\\x6e\\x97\\xd5\\xa3\\x7a\\xf6\\x1f\\xd6\\x22\\x12\\xd2\\xda\\xfc\\x64\\x7e\\xbb\\xb9\\x79\\xe6\\x1d\\x90\\x70\\xec\\x03\\x60\\x9a\\x07\\xf5\\xfc\\x57\\xd1\\x19\\xae\\x64\\xb7\\xa6\\xef\\x92\\xa5\\xaf\\xae\\x66\\x0a\\x30\\xed\\x48\\xd7\\x02\\xcc\\x31\\x28\\xc6\\x33\\xb4\\xf1\\x90\\x60\\xa0\\x57\\x81\\x01\\x72\\x9e\\xe9\\x79\\xf7\\x90\\xf4\\x5b\\xdb\\xb5\\xfe\\x1a\\x8a\\x62\\xf0\\x1a\\x61\\xa3\\x1d\\x61\\xaf\\x07\\x03\\x04\\x50\\xfa\\x04\\x17\\x32\\x3e\\x94\\x07\\xbc\\x76\\xe7\\x31\\x30\\xe7\\xc6\\x9d\\x62\\xe6\\xa7\"},\n{{0x0c,0xd7,0xaa,0x7d,0x60,0x5e,0x44,0xd5,0xff,0xb9,0x79,0x66,0xb2,0xcb,0x93,0xc1,0x89,0xe4,0xc5,0xa8,0x5d,0xb8,0x7f,0xad,0x7a,0xb8,0xd6,0x24,0x63,0xc5,0x9b,0x59,},{0x48,0x89,0x85,0x5f,0xe4,0x11,0x6b,0x49,0x13,0x92,0x7f,0x47,0xf2,0x27,0x3b,0xf5,0x59,0xc3,0xb3,0x94,0xa9,0x83,0x63,0x1a,0x25,0xae,0x59,0x70,0x33,0x18,0x5e,0x46,},{0xbf,0x91,0x15,0xfd,0x3d,0x02,0x70,0x6e,0x39,0x8d,0x4b,0xf3,0xb0,0x2a,0x82,0x67,0x4f,0xf3,0x04,0x15,0x08,0xfd,0x39,0xd2,0x9f,0x86,0x7e,0x50,0x16,0x34,0xb9,0x26,0x1f,0x51,0x6a,0x79,0x4f,0x98,0x73,0x8d,0x7c,0x70,0x13,0xa3,0xf2,0xf8,0x58,0xff,0xdd,0x08,0x04,0x7f,0xb6,0xbf,0x3d,0xdd,0xfb,0x4b,0x4f,0x4c,0xbe,0xef,0x30,0x03,},\"\\x28\\xa5\\x5d\\xda\\x6c\\xd0\\x84\\x4b\\x65\\x77\\xc9\\xd6\\xda\\x07\\x3a\\x4d\\xc3\\x5c\\xbc\\x98\\xac\\x15\\x8a\\xb5\\x4c\\xf8\\x8f\\xd2\\x0c\\xc8\\x7e\\x83\\xc4\\xbb\\xa2\\xd7\\x4d\\x82\\xce\\x0f\\x48\\x54\\xec\\x4d\\xb5\\x13\\xde\\x40\\x04\\x65\\xaa\\xa5\\xee\\xe7\\x90\\xbc\\x84\\xf1\\x63\\x37\\x07\\x2d\\x3a\\x91\\xcd\\xe4\\x0d\\x6e\\x0d\\xf1\\xba\\x0c\\xc0\\x64\\x5f\\x5d\\x5c\\xbb\\xb6\\x42\\x38\\x1d\\x7b\\x9e\\x21\\x1d\\x25\\x26\\x7a\\x8a\\xcf\\x77\\xd1\\xed\\xb6\\x9c\\x3a\\x63\\x0f\\x5b\\x13\\x3d\\x24\\xf0\\x46\\xa8\\x1b\\xf2\\x2f\\xf0\\x3b\\x31\\xd8\\x44\\x7e\\x12\\xc3\\xf7\\xb7\\x71\\x14\\xa7\\x0c\\xbd\\x20\\xbb\\xd0\\x8b\\x0b\\x38\\x27\\xa6\\xbb\\xcf\\x90\\x40\\x9e\\x34\\x44\\x47\\xa7\\xfb\\xc5\\x9b\\xdd\\x97\\xd7\\x29\\x07\\x1f\\x8d\\x71\\xdc\\xc3\\x3e\\x6e\\xf2\\xcb\\xab\\x1d\\x41\\x1e\\xdf\\x13\\x73\\x4d\\xb1\\xdd\\x97\\x03\\x27\\x6f\\x5e\\xb2\\xd6\\xaa\\x2c\\xb8\\x95\\x2d\\xd6\\x71\\x2b\\xfa\\xe8\\x09\\xce\\x08\\xc3\\xaa\\x50\\x2b\\x81\\x35\\x71\\x3f\\xac\\x0a\\x9c\\x25\\xb1\\xd4\\x5b\\x6a\\x58\\x31\\xe0\\x24\\x21\\xbb\\xa6\\x5b\\x81\\xa5\\x96\\xef\\xa2\\x4b\\x05\\x76\\xbd\\x1d\\xc7\\xfd\\xfb\\x49\\xbe\\x76\\x28\\x75\\xe8\\x1b\\xd5\\x40\\x72\\x2b\\xc0\\x61\\x40\\xb9\\xaa\\x2e\\xf7\\xb8\\x4a\\x80\\x1e\\x41\\xde\\xd6\\x8d\\x45\\x46\\xac\\x48\\x73\\xd9\\xe7\\xce\\xd6\\x49\\xb6\\x4f\\xad\\xaf\\x0b\\x5c\\x4b\\x6e\\xb8\\xd0\\x36\\x31\\x52\\x33\\xf4\\x32\\x6c\\xa0\\x1e\\x03\\x39\\x30\\x50\\xcd\\x02\\x7c\\x24\\xf6\\x73\\x03\\xfb\\x84\\x6b\\xd2\\xc6\\xb3\\xdb\\xa0\\x6b\\xed\\x0d\\x59\\xa3\\x62\\x89\\xd2\\x4b\\xd6\\x48\\xf7\\xdb\\x0b\\x3a\\x81\\x34\\x66\\x12\\x59\\x3e\\x3d\\xdd\\x18\\xc5\\x57\"},\n{{0x33,0x37,0x1d,0x9e,0x89,0x2f,0x98,0x75,0x05,0x2a,0xc8,0xe3,0x25,0xba,0x50,0x5e,0x74,0x77,0xc1,0xac,0xe2,0x4b,0xa7,0x82,0x26,0x43,0xd4,0x3d,0x0a,0xce,0xf3,0xde,},{0x35,0x92,0x9b,0xde,0xd2,0x7c,0x24,0x9c,0x87,0xd8,0xb8,0xd8,0x2f,0x59,0x26,0x0a,0x57,0x53,0x27,0xb5,0x46,0xc3,0xa1,0x67,0xc6,0x9f,0x59,0x92,0xd5,0xb8,0xe0,0x06,},{0x98,0x5c,0xa4,0x46,0xdd,0xc0,0x07,0x82,0x7c,0xc8,0xf2,0x85,0x2c,0xbd,0x81,0x15,0xef,0x8c,0x59,0x75,0xe9,0xd7,0xce,0x96,0xd7,0x4d,0xfe,0xd8,0x59,0xaa,0x14,0xa4,0xc1,0x52,0x54,0x00,0x6b,0xea,0x5e,0x08,0x35,0x9e,0xfe,0x26,0x25,0xd7,0x15,0xe0,0x89,0x7e,0xe5,0xa1,0x6f,0x15,0x12,0x03,0xbe,0x50,0x10,0x41,0x86,0x37,0xde,0x05,},\"\\x27\\xa3\\x2e\\xfb\\xa2\\x82\\x04\\xbe\\x59\\xb7\\xff\\x5f\\xe4\\x88\\xca\\x15\\x8a\\x91\\xd5\\x98\\x60\\x91\\xec\\xc4\\x45\\x8b\\x49\\xe0\\x90\\xdd\\x37\\xcb\\xfe\\xde\\x7c\\x0f\\x46\\x18\\x6f\\xab\\xcb\\xdf\\xf7\\x8d\\x28\\x44\\x15\\x58\\x08\\xef\\xff\\xd8\\x73\\xed\\x9c\\x92\\x61\\x52\\x6e\\x04\\xe4\\xf7\\x05\\x0b\\x8d\\x7b\\xd2\\x67\\xa0\\xfe\\x3d\\x5a\\x44\\x93\\x78\\xd5\\x4a\\x4f\\xeb\\xbd\\x2f\\x26\\x82\\x43\\x38\\xe2\\xaa\\xaf\\x35\\xa3\\x2f\\xf0\\xf6\\x25\\x04\\xbd\\xa5\\xc2\\xe4\\x4a\\xbc\\x63\\x15\\x9f\\x33\\x6c\\xf2\\x5e\\x6b\\xb4\\x0d\\xdb\\x7d\\x88\\x25\\xdf\\xf1\\x8f\\xd5\\x1f\\xc0\\x19\\x51\\xea\\xed\\xcd\\x33\\x70\\x70\\x07\\xe1\\x20\\x3c\\xa5\\x8b\\x4f\\x7d\\x24\\x2f\\x81\\x66\\xa9\\x07\\xe0\\x99\\x93\\x2c\\x00\\x1b\\xfb\\x1e\\xc9\\xa6\\x1e\\x0e\\xf2\\xda\\x4e\\x84\\x46\\xaf\\x20\\x82\\x01\\x31\\x5d\\x69\\x68\\x17\\x10\\xd4\\x25\\xd2\\x40\\x0c\\x38\\x7d\\x7b\\x9d\\xf3\\x21\\xa4\\xae\\xc6\\x02\\xb9\\xc6\\x56\\xc3\\xe2\\x31\\x0b\\xff\\x87\\x56\\xd1\\x8b\\x80\\x21\\x34\\xb1\\x56\\x04\\xf4\\xed\\xc1\\x11\\x14\\x9a\\x98\\x79\\xe3\\x12\\x41\\xdd\\x34\\xf7\\x02\\xf4\\xc3\\x49\\x61\\x7b\\x13\\x52\\x97\\x69\\xa7\\x72\\xf5\\xe5\\x2a\\x89\\xc0\\x98\\xe0\\xdc\\xa5\\x92\\x06\\x67\\x89\\x3a\\x25\\x00\\x61\\xb1\\x79\\x91\\x62\\x6e\\xb9\\x31\\x92\\x98\\x68\\x5b\\xe4\\x6b\\x6a\\x8b\\x68\\x42\\x24\\x44\\xfa\\x5a\\x36\\xbc\\xf3\\xa6\\x87\\xe2\\xec\\xcb\\x93\\x22\\xc8\\x7d\\xc8\\x01\\x65\\xda\\x89\\x89\\x30\\x85\\x0b\\x98\\xfc\\x86\\x3c\\xad\\xa1\\xaa\\x99\\xc6\\xd6\\x1c\\x45\\x1b\\x9c\\xcf\\x48\\x74\\xc7\\xf0\\xe7\\x5b\\x0a\\x0c\\x60\\x2f\\x04\\x48\\x12\\xc7\\x17\\x65\\xad\\xaf\\x02\\x02\\x53\\x95\\xb0\"},\n{{0xbe,0xed,0xb8,0x07,0x3d,0xf5,0x8f,0x8c,0x1b,0xff,0xbd,0xbd,0x77,0xec,0x7d,0xec,0xb2,0xc8,0x2a,0x9b,0xab,0xec,0xef,0xc0,0x33,0x15,0x07,0xbd,0xc2,0xc2,0xa7,0xe7,},{0xb2,0x7e,0x90,0x8b,0x80,0x5e,0x29,0x6f,0xc3,0x0d,0x2e,0x47,0x4b,0x06,0x0c,0xd5,0x0c,0x0f,0x6f,0x52,0x0b,0x36,0x71,0x71,0x21,0x83,0xbd,0x89,0xd4,0xe7,0x33,0xe9,},{0x8c,0x89,0x0c,0xcc,0xad,0xc7,0x76,0x0e,0x1e,0x82,0xe4,0x3c,0x44,0xb3,0xdc,0x0b,0x68,0x5a,0x48,0xb4,0x79,0xae,0x13,0xcc,0x0a,0x6b,0x05,0x57,0xd0,0xfb,0x1c,0xba,0xbb,0xa6,0x3d,0x2a,0x96,0x84,0x34,0x12,0xea,0x8d,0x36,0xc5,0x0a,0xcb,0xf5,0x2b,0x92,0xcf,0xb2,0xdc,0xe4,0x9d,0xc4,0x8a,0xf6,0xdd,0xcf,0x8e,0xe4,0x7a,0x86,0x08,},\"\\x35\\xca\\x57\\xf0\\xf9\\x15\\xe5\\x20\\x9d\\x54\\xea\\x4b\\x87\\x1f\\xfb\\x58\\x53\\x54\\xdf\\x1b\\x4a\\x4a\\x17\\x96\\xfb\\xe4\\xd6\\x22\\x7d\\x3e\\x1a\\xba\\x51\\x71\\xed\\x03\\x91\\xa7\\x9e\\x83\\xe2\\x4d\\x82\\xfd\\xaf\\xd1\\x5c\\x17\\xb2\\x8b\\xf6\\xc9\\x4d\\x61\\x8c\\x74\\xd6\\x52\\x64\\xe5\\x8f\\xaa\\xac\\xd2\\x90\\x28\\x72\\xfd\\xd0\\xef\\xa2\\x2e\\x8d\\x2d\\x7c\\xe8\\xe3\\xb8\\x19\\x7f\\x0c\\x36\\x15\\xb0\\xa3\\x85\\x23\\x5f\\xa9\\xfd\\x8e\\x45\\x64\\xee\\x6e\\x6b\\x16\\x50\\xb4\\xcf\\xb9\\x4d\\x87\\x2c\\x80\\x5c\\x32\\xd4\\xf3\\xa1\\x8f\\x96\\x64\\x61\\xd3\\xad\\xbb\\x60\\x5f\\xa5\\x25\\x88\\x4f\\x8e\\xb1\\x97\\x62\\x73\\x96\\xba\\x4d\\x99\\x5d\\x78\\xac\\x02\\x94\\x8a\\x0e\\xaa\\xbb\\x58\\x51\\x9b\\x9a\\x8e\\x2e\\x79\\x85\\xcd\\x1d\\xe2\\xc7\\x1d\\x89\\x18\\xd9\\x6a\\x01\\x68\\x66\\x0c\\xe1\\x7c\\xdd\\xf3\\x64\\xe3\\xec\\x0d\\x4b\\xd9\\x0f\\x21\\x04\\x75\\x1a\\x19\\x27\\xee\\x1d\\x23\\xf3\\xe7\\xa6\\x98\\x40\\xed\\x04\\x0b\\x00\\xe5\\xf6\\xe4\\x86\\x6e\\xc5\\x88\\x13\\x14\\x9c\\xc3\\x82\\xae\\xbf\\x61\\x62\\x60\\x8c\\x79\\x57\\x4d\\x55\\x3f\\x47\\x23\\x0e\\x92\\x4a\\x0e\\xf1\\xeb\\xf5\\x5d\\x8e\\x1a\\x52\\xab\\xb6\\x2a\\x2d\\x7a\\xc8\\x60\\x27\\xc7\\xc0\\x3c\\xc8\\x3f\\xa1\\x94\\x9d\\xa2\\x9e\\x2f\\x30\\x37\\xab\\x98\\x6f\\xd2\\xff\\xfe\\x65\\x0e\\x31\\x49\\xba\\xba\\xe5\\xa5\\x0b\\x1e\\xe9\\x69\\x6f\\x3b\\xab\\xec\\x72\\xe2\\x96\\x97\\xc8\\x24\\x22\\x81\\x4d\\x27\\x20\\x85\\x50\\x0f\\xd8\\x37\\xfe\\x3c\\x7a\\x97\\x3e\\xf4\\xc1\\x69\\xaf\\x12\\xdd\\x7f\\x02\\x70\\x06\\x20\\xbb\\x04\\x5b\\xdb\\xf8\\x46\\x23\\xf3\\x26\\x35\\x05\\x70\\xb3\\xca\\xdb\\xc9\\xae\\xa4\\x20\\x0b\\x28\\x28\\x7e\\x17\\xab\"},\n{{0x91,0x84,0xef,0x61,0x88,0x16,0x83,0x25,0x92,0xbc,0x8e,0xb3,0x5f,0x4f,0xfd,0x4f,0xf9,0x8d,0xfb,0xf7,0x77,0x6c,0x90,0xf2,0xaa,0xd2,0x12,0xce,0x7e,0x03,0x35,0x1e,},{0x68,0x7b,0x77,0x26,0x01,0x0d,0x9b,0xde,0x2c,0x90,0xe5,0x73,0xcd,0x2a,0x2a,0x70,0x2f,0xf2,0x8c,0x4a,0x2a,0xf7,0x0a,0xfc,0x73,0x15,0xc9,0x4d,0x57,0x56,0x01,0xe5,},{0xb3,0xc2,0x4e,0x75,0x13,0x2c,0x56,0x34,0x75,0x42,0x2d,0x5e,0xa4,0x12,0xb5,0xc1,0xe8,0xe6,0xe5,0xea,0x1c,0x08,0xea,0xd1,0x39,0x3c,0x41,0x2d,0xa1,0x34,0xc9,0xa1,0x63,0x82,0x84,0xea,0x7e,0x2c,0xa0,0x32,0xfe,0x3d,0x3e,0x32,0xa9,0x06,0x6a,0x8c,0x88,0x39,0x90,0x3f,0x6e,0xf4,0x6e,0x96,0x6b,0xb5,0xe4,0x92,0xd8,0xc2,0xaa,0x00,},\"\\x72\\x9e\\xb7\\xe5\\x4a\\x9d\\x00\\xc5\\x86\\x17\\xaf\\x18\\xc3\\x45\\xb8\\xdc\\x6e\\x5b\\x4e\\x0f\\x57\\xde\\x2f\\x3c\\x02\\xe5\\x4a\\x2e\\xc8\\xf1\\x42\\x5e\\xc2\\xe2\\x40\\x77\\x5b\\x5a\\xb0\\xc1\\x0f\\x84\\xac\\x8b\\xaf\\xda\\x45\\x84\\xf7\\xe2\\x1c\\x65\\x5f\\xae\\xcd\\x80\\x30\\xa9\\x89\\x06\\xbd\\x68\\x39\\x8f\\x26\\xb5\\xd5\\x8d\\x92\\xb6\\xcf\\x04\\x5e\\x9b\\xd9\\x74\\x3c\\x74\\xc9\\xa3\\x42\\xec\\x61\\xce\\x57\\xf3\\x7b\\x98\\x1e\\xac\\x4d\\x8b\\xf0\\x34\\x60\\x88\\x66\\xe9\\x85\\xbb\\x68\\x68\\x6a\\x68\\xb4\\xa2\\xaf\\x88\\xb9\\x92\\xa2\\xa6\\xd2\\xdc\\x8c\\xe8\\x8b\\xfb\\x0a\\x36\\xcf\\x28\\xbb\\xab\\x70\\x24\\xab\\xfa\\x2b\\xea\\x53\\x31\\x3b\\x66\\xc9\\x06\\xf4\\xf7\\xcf\\x66\\x97\\x0f\\x54\\x00\\x95\\xbd\\x01\\x04\\xaa\\x49\\x24\\xdd\\x82\\xe1\\x54\\x13\\xc2\\x26\\x79\\xf8\\x47\\xe4\\x8c\\xd0\\xc7\\xec\\x1f\\x67\\x7e\\x00\\x5f\\xec\\x01\\x77\\xfb\\xd5\\xc5\\x59\\xfc\\x39\\xad\\xd6\\x13\\x99\\x1f\\xba\\xea\\xe4\\xd2\\x4d\\x39\\xd3\\x09\\xef\\x74\\x64\\x7f\\x81\\x92\\xcc\\x4c\\x62\\xd0\\x64\\x20\\x28\\xc7\\x6a\\x1b\\x95\\x1f\\x6b\\xc9\\x63\\x9d\\xeb\\x91\\xec\\xc0\\x8b\\xe6\\x04\\x3f\\x21\\x09\\x70\\x5a\\x42\\xc7\\xea\\xe7\\x12\\x64\\x9d\\x91\\xd9\\x6c\\xcb\\xbf\\xb6\\x3d\\x8d\\x0d\\xd6\\xdd\\x11\\x21\\x60\\xf6\\x13\\x61\\xec\\xdc\\x67\\x93\\x92\\x9c\\xa9\\xae\\xf9\\xab\\x56\\x94\\x4a\\x6f\\xa4\\xa7\\xdf\\x1e\\x27\\x9e\\xaf\\x58\\xce\\x83\\x23\\xa9\\xcf\\x62\\xc9\\x42\\x79\\xff\\xf7\\x44\\x0f\\xbc\\x93\\x6b\\xaa\\x61\\x48\\x9c\\x99\\x93\\x30\\xba\\xdc\\xb9\\xfc\\x0e\\x18\\x4b\\xc5\\x09\\x3f\\x33\\x0c\\xbb\\x24\\x2f\\x71\\xfb\\x37\\x87\\x38\\xfe\\xa1\\x05\\x11\\xdd\\x43\\x83\\x64\\xd7\\xf7\\x6b\\xcc\"},\n{{0x35,0x4e,0x13,0x15,0x2e,0xe1,0xfe,0x74,0x8a,0x12,0x52,0x20,0x4c,0x65,0x27,0xbd,0xc1,0xb1,0xeb,0x2e,0xb5,0x36,0x78,0x15,0x0e,0x63,0x59,0x92,0x47,0x08,0xd8,0x12,},{0xd4,0x5f,0xf6,0xc5,0xfb,0x83,0xe7,0xbb,0x96,0x69,0xaa,0x89,0x60,0xde,0xb7,0xdb,0xc6,0x65,0xc9,0x88,0x43,0x9b,0x6c,0x9e,0xf6,0x72,0xc6,0x81,0x1d,0xc8,0xbc,0xf6,},{0xde,0x2b,0x46,0xe6,0x5f,0x3d,0xec,0xef,0x34,0x33,0x2e,0x50,0x0f,0x2e,0x11,0x30,0x6f,0xbd,0xcf,0x1b,0xe8,0x5a,0x1c,0x1e,0xe6,0x8b,0xa3,0x04,0x5d,0xce,0xc2,0xc7,0xbe,0x60,0x8d,0x22,0x92,0x7d,0xa1,0xf4,0x4c,0x0e,0x20,0x83,0xae,0x62,0x2c,0xf3,0xc2,0x9d,0x89,0x38,0x87,0x99,0x4e,0xfc,0xfa,0x2c,0xa5,0x94,0xf5,0x05,0x1f,0x03,},\"\\x8e\\x5f\\xcc\\xf6\\x6b\\x1b\\xa6\\x16\\x9c\\xb6\\x85\\x73\\x3d\\x9d\\x0e\\x01\\x90\\x36\\x1c\\x90\\xbc\\xab\\x95\\xc1\\x63\\x28\\x5a\\x97\\xfe\\x35\\x6d\\x2b\\xdc\\xde\\x3c\\x93\\x80\\x26\\x88\\x05\\xa3\\x84\\xd0\\x63\\xda\\x09\\xcc\\xd9\\x96\\x9c\\xc3\\xff\\x74\\x31\\xe6\\x0a\\x8e\\x9f\\x86\\x9c\\xd6\\x2f\\xaa\\x0e\\x35\\x61\\x51\\xb2\\x80\\xbc\\x52\\x6e\\x57\\x7c\\x2c\\x53\\x8c\\x9a\\x72\\x4d\\xc4\\x8b\\xf8\\x8b\\x70\\x32\\x1d\\x7e\\x1e\\xee\\xdb\\x3c\\x4a\\xf7\\x06\\x74\\x8c\\x94\\x2e\\x67\\xbd\\xab\\xdb\\x41\\xbe\\xc2\\x97\\x7b\\x15\\x23\\x06\\x9e\\x31\\xe2\\x9b\\x76\\x30\\x02\\x88\\xf8\\x8a\\x51\\xb3\\x84\\xb8\\x0c\\xc2\\x52\\x6f\\x16\\x79\\x34\\x0d\\xde\\xc3\\x88\\x1f\\x5c\\xd2\\x8b\\x03\\x78\\xd9\\xcd\\x0a\\x81\\x2b\\x68\\xdd\\x3f\\x68\\xf7\\xa2\\x3e\\x1b\\x54\\xbe\\xe7\\x46\\x6a\\xc7\\x65\\xcf\\x38\\xdf\\x04\\xd6\\x74\\x41\\xdf\\xa4\\x98\\xc4\\xbf\\xfc\\x52\\x04\\x5f\\xa6\\xd2\\xdb\\xcd\\xbf\\xa3\\x3d\\xfa\\xa7\\x76\\x44\\xff\\xcc\\xef\\x0d\\xec\\xdb\\x67\\x90\\xc7\\x0a\\x0d\\x73\\x4e\\xc2\\x87\\xcc\\x33\\x8c\\xb5\\xa9\\x09\\xc0\\x05\\x51\\x89\\x30\\x11\\x69\\xc4\\xf7\\x70\\x2c\\x05\\xc0\\x91\\x1a\\x27\\xb1\\x6e\\xf9\\xed\\x93\\x4f\\xa6\\xa0\\xca\\x7b\\x13\\xe4\\x13\\x52\\x34\\x22\\x53\\x56\\x47\\x96\\x80\\x30\\xed\\xc4\\x0c\\xd7\\x3e\\x7d\\x6b\\x34\\x5b\\x75\\x81\\xf4\\x38\\x31\\x6d\\x68\\xe3\\xcd\\x29\\x2b\\x84\\x6d\\x3f\\x4f\\x7c\\x48\\x62\\xbc\\x7e\\x6b\\x3f\\xb8\\x9a\\x27\\xf6\\xf6\\x0c\\xd7\\xdb\\x2e\\x34\\xec\\x9a\\xae\\x10\\x13\\xfe\\x37\\xac\\xff\\x8a\\xd8\\x88\\xcb\\x9a\\x59\\x3e\\xf5\\xe6\\x21\\xea\\xe5\\x18\\x6c\\x58\\xb3\\x1d\\xcf\\xde\\x22\\x87\\x0e\\x33\\x6d\\x33\\xf4\\x40\\xf6\\xb8\\xd4\\x9a\"},\n{{0x7f,0xf6,0x2d,0x4b,0x3c,0x4d,0x99,0xd3,0x42,0xd4,0xbb,0x40,0x1d,0x72,0x6b,0x21,0xe9,0x9f,0x4e,0xf5,0x92,0x14,0x9f,0xc3,0x11,0xb6,0x87,0x61,0xf5,0x56,0x7f,0xf6,},{0x7f,0xdf,0xdb,0x9e,0xca,0x29,0xd3,0xf0,0x1d,0x94,0x86,0xd7,0xe1,0x12,0xce,0x03,0xaa,0x37,0xb9,0x13,0x26,0xa4,0x28,0x3b,0x9c,0x03,0x99,0x9c,0x5e,0xda,0x09,0x9a,},{0x05,0x8f,0x79,0x92,0x7f,0xbf,0x61,0x78,0x72,0x48,0x15,0xc7,0xb1,0x1c,0x63,0xba,0xaa,0x90,0xbc,0xc1,0x5d,0x72,0x72,0xbe,0x08,0x2f,0x8a,0x91,0x41,0x86,0x1c,0x81,0x64,0x33,0x05,0x5f,0x6c,0xf6,0x49,0x14,0x24,0x85,0x3f,0x9e,0xc7,0x8b,0xb9,0x1a,0xce,0x91,0x3a,0x93,0x41,0x1b,0x4e,0x5e,0xd5,0x8b,0xc4,0xba,0x57,0x15,0xc6,0x0a,},\"\\x99\\xc4\\x4c\\x79\\x65\\x72\\xa4\\x82\\x3f\\xc6\\xc3\\x80\\x77\\x30\\x83\\x91\\x73\\x77\\x4c\\x05\\xdb\\xfc\\x14\\x92\\xed\\x0d\\x00\\x50\\x9a\\x95\\xa1\\xde\\x37\\x27\\x4b\\x31\\x35\\xed\\x04\\x56\\xa1\\x71\\x8e\\x57\\x65\\x97\\xdc\\x13\\xf2\\xa2\\xab\\x37\\xa4\\x5c\\x06\\xcb\\xb4\\xa2\\xd2\\x2a\\xfa\\xd4\\xd5\\xf3\\xd9\\x0a\\xb3\\xd8\\xda\\x4d\\xcd\\xaa\\x06\\xd4\\x4f\\x22\\x19\\x08\\x84\\x01\\xc5\\xdc\\xee\\xe2\\x60\\x55\\xc4\\x78\\x2f\\x78\\xd7\\xd6\\x3a\\x38\\x06\\x08\\xe1\\xbe\\xf8\\x9e\\xee\\xf3\\x38\\xc2\\xf0\\x89\\x7d\\xa1\\x06\\xfa\\xfc\\xe2\\xfb\\x2e\\xbc\\x5d\\xb6\\x69\\xc7\\xc1\\x72\\xc9\\xcf\\xe7\\x7d\\x31\\x09\\xd2\\x39\\xfe\\x5d\\x00\\x5c\\x8e\\xe7\\x51\\x51\\x1b\\x5a\\x88\\x31\\x7c\\x72\\x9b\\x0d\\x8b\\x70\\xb5\\x2f\\x6b\\xd3\\xcd\\xa2\\xfe\\x86\\x5c\\x77\\xf3\\x6e\\x4f\\x1b\\x63\\x5f\\x33\\x6e\\x03\\x6b\\xd7\\x18\\xbe\\xc9\\x0e\\xe7\\x8a\\x80\\x28\\x11\\x51\\x0c\\x40\\x58\\xc1\\xba\\x36\\x40\\x17\\x25\\x3a\\xa8\\x42\\x92\\x2e\\x1d\\xd7\\xd7\\xa0\\xf0\\xfc\\x9c\\x69\\xe4\\x3f\\xc4\\xea\\xef\\xfa\\xaf\\x1a\\xe5\\xfa\\x5d\\x2d\\x73\\xb4\\x30\\x79\\x61\\x7b\\xab\\xa0\\x30\\x92\\x3f\\xe5\\xb1\\x3d\\x2c\\x1c\\x4f\\xe6\\xfa\\xc3\\xf2\\xdb\\x74\\xe2\\x02\\x0a\\x73\\x4b\\x61\\x21\\xa0\\x30\\x2f\\xce\\x82\\x0b\\xa0\\x58\\x0c\\xe6\\x13\\x53\\x48\\xfd\\xf0\\x63\\x2e\\x00\\x08\\xdf\\x03\\xee\\x11\\x21\\x68\\xf5\\xcf\\xa0\\x03\\x7a\\x26\\xa1\\xf6\\x9b\\x1f\\x13\\x17\\xed\\xf2\\xa3\\xab\\x36\\x74\\x55\\xa7\\x7e\\x00\\x69\\x12\\x15\\xd7\\xaa\\x31\\x33\\xc2\\x15\\x9d\\x3d\\xa2\\xb1\\x34\\xcf\\x04\\xf0\\xde\\xfb\\xf0\\x7a\\x60\\x64\\x01\\x1e\\x64\\xdd\\x14\\xd4\\xf8\\xf0\\x64\\x35\\x66\\x55\\x42\\x88\\x04\\xc2\\x77\\x1a\"},\n{{0x6c,0xab,0xad,0xd0,0x3f,0x8a,0x2e,0x6e,0xba,0xb9,0x6a,0x74,0xf8,0x0e,0x18,0x16,0x4e,0x4d,0x1b,0x6b,0xaa,0x67,0x8f,0x5a,0x82,0xe2,0x56,0x04,0xaf,0x98,0x9a,0xaf,},{0x2a,0x4a,0x31,0x79,0x56,0x41,0x94,0xe0,0x01,0x00,0xc1,0x8b,0xc3,0x53,0x51,0xd8,0xb1,0x35,0xbb,0xae,0x5b,0x32,0xb2,0x8f,0xce,0x1d,0x7b,0x67,0x66,0xca,0x4b,0x32,},{0x4e,0x65,0xc6,0xc1,0xd4,0x93,0x04,0x5e,0x8a,0x92,0x50,0xe3,0x97,0xc1,0xd1,0xd3,0x0f,0xfe,0xd2,0x4d,0xb6,0x6a,0x89,0x61,0xaa,0x45,0x8f,0x8f,0x0f,0xcb,0x76,0x0c,0x39,0xfe,0x86,0x57,0xd7,0xab,0x8f,0x84,0x00,0x0b,0x96,0xd5,0x19,0x71,0x7c,0xff,0x71,0xf9,0x26,0x52,0x2c,0x1e,0xfe,0xc7,0xf8,0xb2,0x62,0x4e,0xae,0x55,0xf6,0x0c,},\"\\x27\\x9f\\x78\\xcf\\x3b\\x9c\\xcf\\xc6\\xe1\\xb0\\x1e\\x1a\\x82\\xf5\\x0e\\xd1\\x72\\xe9\\xa8\\xe1\\xe7\\x02\\xbb\\x15\\x66\\x1d\\xd7\\xdc\\x3a\\x45\\x6f\\xf7\\xa7\\xa7\\xfd\\xfb\\x08\\x1d\\xb3\\x86\\x70\\x79\\x63\\x0c\\x7f\\x70\\xfd\\x75\\x32\\x92\\xec\\x60\\xec\\xbf\\x50\\x63\\x2e\\x9a\\xa4\\x5b\\x99\\x65\\x05\\xc6\\x6e\\x6d\\xc3\\xc6\\xae\\x89\\x2e\\x21\\xb6\\xa8\\x70\\x5e\\x4b\\xba\\xe8\\xf1\\x6a\\x33\\x78\\x55\\x4b\\x31\\xfd\\xb0\\x13\\x9d\\xcd\\x15\\xc9\\x6a\\x8a\\x7e\\x4b\\x88\\x75\\x6a\\x86\\xd1\\x8d\\xb5\\xdc\\x74\\xfd\\x76\\x91\\x19\\x7d\\xd8\\x8e\\x2c\\x7d\\x5d\\xf5\\x2b\\x04\\x93\\x44\\xcd\\xc4\\x77\\xc9\\xcd\\x7e\\x89\\xed\\xa9\\x9c\\xcf\\xb1\\xd0\\x08\\x14\\xd0\\x15\\x2b\\x96\\x54\\xdf\\x32\\x79\\x37\\x2c\\xa5\\xf1\\x8b\\x1c\\x94\\x6f\\x28\\x94\\xa7\\x6b\\x07\\x9d\\xdb\\x1c\\x3c\\xd6\\x1f\\xbb\\x96\\x9a\\xee\\xc9\\x19\\x3a\\x6b\\x88\\xfb\\x7d\\x13\\x6c\\x07\\xf9\\x82\\x1e\\x5c\\x10\\x74\\xb4\\xe9\\x3b\\xca\\xf6\\xfa\\x14\\xd0\\xd1\\xd7\\xe1\\x70\\x75\\x89\\xd7\\x7e\\xc1\\x33\\x72\\x06\\xe5\\x3a\\x1f\\x06\\xcc\\x26\\x67\\x2f\\xf9\\x5c\\x13\\xd5\\xff\\x44\\x47\\x66\\x93\\x1b\\xa3\\x0a\\x0a\\xfd\\xcd\\xad\\xd2\\x09\\x8e\\x9c\\x41\\xfd\\x87\\xa3\\xf2\\x3c\\xd1\\x6d\\xbb\\x0e\\xfb\\xf8\\x09\\x2c\\xe3\\x3e\\x32\\x7f\\x42\\x61\\x09\\x90\\xe1\\xce\\xe6\\xcb\\x8e\\x54\\x95\\x1a\\xa0\\x81\\xe6\\x97\\x65\\xae\\x40\\x09\\xae\\xed\\x75\\x8e\\x76\\x8d\\xe5\\x0c\\x23\\xd9\\xa2\\x2b\\x4a\\x06\\xdc\\x4d\\x19\\xfc\\x8c\\xbd\\x0c\\xde\\xf4\\xc9\\x83\\x46\\x17\\x55\\xd0\\xa3\\xb5\\xd6\\xa9\\xc1\\x22\\x53\\xe0\\x95\\x68\\x33\\x9f\\xf7\\xe5\\xf7\\x8c\\x5f\\xdf\\x7e\\xc8\\x9f\\x91\\x86\\xa6\\x21\\xa8\\xc0\\xee\\xd1\\x1b\\x67\\x02\\x2e\"},\n{{0x0f,0xa0,0xc3,0x2c,0x3a,0xe3,0x4b,0xe5,0x1b,0x92,0xf9,0x19,0x45,0x40,0x59,0x81,0xa8,0xe2,0x02,0x48,0x85,0x58,0xa8,0xe2,0x20,0xc2,0x88,0xc7,0xd6,0xa5,0x53,0x2d,},{0xd6,0xae,0xe6,0x2b,0xd9,0x1f,0xc9,0x45,0x36,0x35,0xff,0xcc,0x02,0xb2,0xf3,0x8d,0xca,0xb1,0x32,0x85,0x14,0x03,0x80,0x58,0x0c,0xcd,0xff,0x08,0x65,0xdf,0x04,0x92,},{0x7e,0x9a,0xb8,0x5e,0xe9,0x4f,0xe4,0xb3,0x5d,0xcb,0x54,0x53,0x29,0xa0,0xef,0x25,0x92,0x3d,0xe5,0xc9,0xdc,0x23,0xe7,0xdf,0x1a,0x7e,0x77,0xab,0x0d,0xcf,0xb8,0x9e,0x03,0xf4,0xe7,0x85,0xca,0x64,0x29,0xcb,0x2b,0x0d,0xf5,0x0d,0xa6,0x23,0x0f,0x73,0x3f,0x00,0xf3,0x3a,0x45,0xc4,0xe5,0x76,0xcd,0x40,0xbd,0xb8,0x4f,0x1a,0xe0,0x01,},\"\\x53\\xf4\\x4b\\xe0\\xe5\\x99\\x7f\\xf0\\x72\\x64\\xcb\\x64\\xba\\x13\\x59\\xe2\\x80\\x1d\\xef\\x87\\x55\\xe6\\x4a\\x23\\x62\\xbd\\xda\\xf5\\x97\\xe6\\x72\\xd0\\x21\\xd3\\x4f\\xfa\\xce\\x6d\\x97\\xe0\\xf2\\xb1\\xf6\\xae\\x62\\x5f\\xd3\\x3d\\x3c\\x4f\\x6e\\x9f\\xf7\\xd0\\xc7\\x3f\\x1d\\xa8\\xde\\xfb\\x23\\xf3\\x24\\x97\\x5e\\x92\\x1b\\xb2\\x47\\x32\\x58\\x17\\x7a\\x16\\x61\\x25\\x67\\xed\\xf7\\xd5\\x76\\x0f\\x3f\\x3e\\x3a\\x6d\\x26\\xaa\\xab\\xc5\\xfd\\xe4\\xe2\\x04\\x3f\\x73\\xfa\\x70\\xf1\\x28\\x02\\x09\\x33\\xb1\\xba\\x3b\\x6b\\xd6\\x94\\x98\\xe9\\x50\\x3e\\xa6\\x70\\xf1\\xed\\x88\\x0d\\x36\\x51\\xf2\\xe4\\xc5\\x9e\\x79\\xca\\xbc\\x86\\xe9\\xb7\\x03\\x39\\x42\\x94\\x11\\x2d\\x5d\\x8e\\x21\\x3c\\x31\\x74\\x23\\xb5\\x25\\xa6\\xdf\\x70\\x10\\x6a\\x9d\\x65\\x8a\\x26\\x20\\x28\\xb5\\xf4\\x51\\x00\\xcb\\x77\\xd1\\x15\\x0d\\x8f\\xe4\\x61\\xee\\xd4\\x34\\xf2\\x41\\x01\\x5f\\x32\\x76\\xad\\x7b\\x09\\xa2\\x91\\xb4\\xa7\\xf3\\x5e\\x3c\\x30\\x05\\x1c\\xbf\\x13\\xb1\\xd4\\xa7\\xfa\\x0c\\x81\\xa5\\x0f\\x93\\x9e\\x7c\\x49\\x67\\x3a\\xfd\\xc8\\x78\\x83\\xc9\\xe3\\xe6\\x1f\\x5a\\x1d\\xf0\\x37\\x55\\x47\\x0f\\xda\\x74\\xbf\\x23\\xea\\x88\\x67\\x6b\\x25\\x8a\\x97\\xa2\\x80\\xd5\\xf9\\x0b\\x52\\xb7\\x14\\xb5\\x96\\x03\\x5b\\xae\\x08\\xc8\\xd0\\xfe\\x6d\\x94\\xf8\\x94\\x95\\x59\\xb1\\xf2\\x7d\\x71\\x16\\xcf\\x59\\xdd\\x3c\\xfb\\xf1\\x82\\x02\\xa0\\x9c\\x13\\xf5\\xc4\\xfb\\xc8\\xd9\\x72\\x25\\x49\\x28\\x87\\xd3\\x28\\x70\\xc2\\x29\\x7e\\x34\\xde\\xbd\\x98\\x76\\xd6\\xd0\\x1a\\xc2\\x7a\\x16\\xb0\\x88\\xb0\\x79\\x07\\x9f\\x2b\\x20\\xfe\\xb0\\x25\\x37\\xcd\\xa3\\x14\\xc4\\x3c\\xb2\\xdc\\xa3\\x71\\xb9\\xdf\\x37\\xed\\x11\\xec\\x97\\xe1\\xa7\\xa6\\x99\\x3a\"},\n{{0x7b,0x06,0xf8,0x80,0x26,0xfa,0x86,0xf3,0x9f,0xce,0x24,0x26,0xf6,0x7c,0xc5,0x99,0x6b,0xed,0xd0,0xcf,0xc4,0xb5,0xeb,0xb1,0xb5,0xe3,0xed,0xbb,0x47,0xe0,0x80,0xaa,},{0x3f,0x14,0x69,0xee,0x6a,0x2e,0x78,0x67,0xe2,0xe9,0x01,0x2d,0x40,0x2c,0xf5,0xa4,0x86,0x14,0x97,0xc0,0x1d,0xf8,0x79,0xa1,0xde,0xb1,0xc5,0x39,0x83,0x0b,0x58,0xde,},{0x42,0xf1,0x33,0xe3,0x4e,0x3e,0xb7,0x03,0x2a,0x13,0x3e,0xd7,0x81,0x53,0x7e,0xc6,0x2e,0x44,0xa5,0xce,0x83,0x81,0xe5,0xe0,0xbf,0x9e,0x13,0xa9,0x14,0xa4,0xb2,0xc7,0x57,0x81,0x1d,0x6d,0x3b,0x1e,0x86,0x67,0x24,0x24,0xea,0x42,0x30,0xd1,0x0f,0x7c,0x61,0x0a,0xbb,0x70,0x69,0xe6,0x1e,0x31,0x9b,0x40,0x66,0xa2,0xbd,0x7b,0xc9,0x00,},\"\\x71\\x17\\x5d\\x4e\\x21\\x72\\x12\\x97\\xd9\\x17\\x6d\\x81\\x7f\\x4e\\x78\\x5d\\x96\\x00\\xd9\\x23\\xf9\\x87\\xfe\\x0b\\x26\\xfd\\x79\\xd3\\x3a\\x5e\\xa5\\xd1\\xe8\\x18\\xb7\\x1f\\x0f\\x92\\xb8\\xc7\\x3a\\xfd\\xda\\xbd\\xcc\\x27\\xf6\\xd1\\x6e\\x26\\xaa\\xfa\\x87\\x4c\\xfd\\x77\\xa0\\x0e\\x06\\xc3\\x6b\\x04\\x14\\x87\\x58\\x2b\\xb9\\x33\\x76\\x0f\\x88\\xb4\\x19\\x12\\x73\\x45\\x77\\x6e\\xa4\\x18\\xf8\\x35\\x22\\x25\\x4f\\xed\\x33\\x81\\x9b\\xc5\\xc9\\x5f\\x8f\\x84\\x04\\xcc\\x14\\x4e\\xbf\\x14\\x86\\xc8\\x85\\x15\\x40\\x9d\\x34\\x33\\xaa\\xf5\\x19\\xd9\\x92\\x0f\\x52\\x56\\xe6\\x29\\x41\\x9e\\x9a\\x95\\x58\\x0a\\x35\\xb0\\x69\\xb8\\xd2\\x55\\x33\\xdf\\xcb\\xc9\\x8a\\xd3\\x64\\x04\\xa9\\x51\\x80\\x8e\\x01\\x37\\x8c\\x03\\x26\\x63\\x26\\xd1\\x20\\x04\\x69\\x75\\xfd\\xe0\\x7d\\xae\\xf3\\x26\\x6c\\xaa\\xcd\\x82\\x1c\\x14\\x03\\x49\\x9d\\x7f\\xdf\\x17\\xc0\\x33\\xc8\\xd8\\xc3\\xf2\\x8f\\x16\\x2b\\x5f\\x09\\xdf\\xda\\xca\\x06\\x28\\x5f\\x00\\xc6\\xcb\\x98\\x6d\\xfd\\xf5\\x15\\x1a\\xa6\\x63\\x96\\x08\\xb5\\xb1\\x3e\\x78\\xd6\\x5a\\x43\\x68\\x58\\x5b\\x16\\x13\\x87\\x54\\xfb\\xd1\\x13\\x83\\x5a\\x68\\x6c\\xd0\\x66\\xc2\\xb8\\x9b\\xb0\\x95\\x3c\\x24\\xd5\\x0e\\x77\\xbf\\x0f\\xc4\\x57\\xc1\\xe0\\xfc\\xf5\\xd4\\x4d\\xa8\\xdb\\x9a\\x88\\xf0\\x62\\xbe\\x3b\\x68\\x8d\\x5c\\xdc\\xff\\x1d\\x1c\\x00\\xe8\\x1e\\xc9\\xd4\\x13\\x88\\x22\\x95\\xb3\\x41\\xfe\\xe8\\xfa\\x42\\x7d\\xc1\\x09\\xad\\xeb\\x5f\\x28\\x4e\\xec\\x20\\x2f\\x1b\\xef\\x11\\x5b\\xf9\\x6b\\x17\\x82\\xd3\\xcc\\xde\\xb6\\x82\\xb6\\x9b\\xf9\\x2d\\x17\\x0c\\x00\\x7d\\x5d\\xf8\\x0e\\x1e\\xd9\\x62\\xf6\\x77\\xdc\\x24\\xa1\\x45\\xa1\\xe4\\xe8\\x29\\xe8\\xde\\xc0\\x10\\x4e\\x5f\\x78\\x36\\x59\\x44\"},\n{{0xc3,0xf5,0xe1,0x49,0x96,0x8a,0x24,0xf4,0xde,0x91,0x19,0x53,0x19,0x75,0xf4,0x43,0x01,0x5c,0xcc,0xa3,0x05,0xd7,0x11,0x9e,0xd4,0x74,0x9e,0x8b,0xf6,0xd9,0x4f,0xc7,},{0x39,0xaa,0xcc,0xdb,0x94,0x8a,0x40,0x38,0x53,0x8a,0x45,0x88,0x32,0x2f,0x80,0x6b,0xb1,0x29,0xb5,0x87,0x6c,0x4b,0xec,0x51,0x27,0x1a,0xfe,0x4f,0x49,0x69,0x00,0x45,},{0x5f,0xa2,0xb5,0x31,0x67,0x7b,0x00,0xb8,0x5b,0x0a,0x31,0x3c,0xbd,0x47,0x9f,0x55,0xf4,0xab,0x3e,0xc5,0xcf,0xce,0x5e,0x45,0x4d,0x2b,0x74,0x17,0x6c,0xcc,0x33,0x99,0xc8,0x99,0xf9,0xd6,0xb5,0x1e,0xd4,0xc1,0xe7,0x61,0x85,0xac,0x9f,0xe7,0x30,0xc4,0xb4,0x01,0x40,0x44,0xf7,0x04,0x11,0x85,0xbc,0x3c,0x85,0x72,0x2e,0xb2,0xea,0x02,},\"\\xc4\\x63\\x70\\xe3\\x7f\\x2e\\x0c\\xad\\xcf\\x93\\x40\\x2f\\x1f\\x0c\\xb0\\x48\\xf5\\x28\\x81\\xba\\x75\\x0b\\x7a\\x43\\xf5\\x6a\\xb1\\x1c\\xe3\\x48\\x73\\x2f\\xb5\\x7e\\x7f\\x9a\\xaf\\x8d\\xfc\\xbe\\x45\\x5e\\x14\\xe9\\x83\\xc2\\x48\\xd0\\x26\\xa2\\x7e\\x7f\\x14\\x8d\\x5d\\xb5\\xa5\\x3f\\x94\\x63\\x57\\x02\\xb8\\x95\\x12\\x77\\x71\\x04\\x7a\\x87\\x6d\\x14\\x10\\x73\\x86\\xc5\\xe0\\xff\\x89\\x33\\x34\\x5b\\xbd\\x7a\\x93\\x6d\\x99\\x0d\\x33\\xef\\xa2\\x8c\\x2e\\xc4\\xe4\\x86\\x4f\\xfd\\x2f\\xf5\\x76\\xf7\\xc8\\x8f\\x95\\x4c\\xfc\\x1c\\x45\\x9e\\x88\\x3b\\xb7\\x12\\xda\\xe3\\xcd\\xf6\\x63\\x20\\x66\\xf1\\xf4\\xd1\\x3a\\x50\\x96\\x15\\xb3\\x36\\x0c\\xad\\xc5\\xa3\\x07\\xf2\\x3e\\x52\\xa5\\x1b\\x40\\xa6\\xfe\\xeb\\xe0\\xb1\\x8d\\x0e\\x9e\\xe4\\xe3\\x48\\xf3\\x3c\\xd8\\x1a\\x8d\\xef\\x22\\x2f\\x6a\\x59\\xb1\\x28\\x61\\xd3\\x35\\xbd\\x9a\\xf8\\x5c\\xc0\\x04\\xbe\\x46\\xf1\\xd3\\xa4\\x24\\xf4\\x87\\x0a\\xe9\\xdc\\x58\\x7e\\x5a\\x4a\\xde\\x13\\x6b\\x93\\x70\\x64\\x93\\x48\\xc3\\x3a\\xc3\\xbf\\x1f\\xeb\\xee\\xbf\\xfe\\xa3\\x70\\x85\\xed\\x59\\xca\\xc9\\xd9\\xe6\\x96\\x47\\x0b\\x23\\x46\\x09\\xe9\\xa1\\x0a\\x9d\\x43\\x1f\\xf9\\x1e\\x69\\xcb\\x51\\x35\\xfd\\x11\\x7f\\xf5\\x8a\\x36\\x53\\x97\\x44\\xeb\\xe7\\x0c\\xea\\x69\\x73\\xc0\\x0c\\x7a\\x4d\\x57\\xb6\\x2f\\x4a\\x71\\x36\\xd7\\x31\\xb8\\xe4\\x6f\\xf1\\x8e\\xc0\\xed\\x69\\x07\\x00\\x31\\x90\\x50\\x75\\xd8\\x54\\x1d\\x56\\x8c\\xfc\\xe6\\xee\\xb7\\x62\\x42\\xb7\\x81\\x9a\\x7b\\x6a\\x93\\x55\\x21\\x11\\xbb\\x88\\xf1\\x65\\x52\\x7c\\xfa\\x69\\x66\\xd3\\x9f\\xcb\\xe0\\xa7\\xde\\xa0\\x08\\xe3\\x9c\\x7a\\x3e\\x57\\x7a\\xb3\\x07\\xcd\\x1d\\x0e\\xa3\\x26\\x83\\x3d\\x52\\x65\\x4e\\x17\\x29\\x55\\xf3\\xfc\\xd4\"},\n{{0x42,0x30,0x5c,0x93,0x02,0xf4,0x5e,0xa6,0xf8,0x7e,0x26,0xe2,0x20,0x8f,0xd9,0x4b,0x3c,0x4a,0xd0,0x37,0xb1,0xb6,0xc8,0x3c,0xf6,0x67,0x7a,0xa1,0x09,0x6a,0x01,0x3c,},{0x3b,0x97,0xb1,0xf1,0x1c,0xe4,0x5b,0xa4,0x6f,0xfb,0xb2,0x5b,0x76,0xbf,0xc5,0xad,0x7b,0x77,0xf9,0x0c,0xc6,0x9e,0xd7,0x61,0x15,0xde,0xa4,0x02,0x94,0x69,0xd5,0x87,},{0x18,0xd0,0x5e,0x5d,0x01,0x66,0x8e,0x83,0xf4,0x0f,0xa3,0xbb,0xee,0x28,0xb3,0x88,0xac,0xf3,0x18,0xd1,0xb0,0xb5,0xad,0x66,0x8c,0x67,0x2f,0x34,0x5c,0x8e,0xda,0x14,0xc2,0xf8,0x84,0xcd,0x2a,0x90,0x39,0x45,0x9c,0xe0,0x81,0x0b,0xc5,0xb5,0x80,0xfe,0x70,0xd3,0x96,0x4a,0x43,0xed,0xb4,0x9e,0x73,0xa6,0xff,0x91,0x4b,0xbf,0x04,0x0c,},\"\\xd1\\x10\\x82\\x8d\\x44\\x91\\x98\\xd6\\x75\\xe7\\x4e\\x8e\\x39\\x43\\x9f\\xd1\\x5e\\x75\\xbf\\x2c\\xc1\\xf4\\x30\\xab\\xfb\\x24\\x58\\x36\\x88\\x5b\\xaf\\xc4\\x20\\xf7\\x54\\xb8\\x9d\\x2f\\xbb\\xf6\\xdd\\x34\\x90\\x79\\x2e\\x7a\\x4f\\x76\\x60\\x73\\xcf\\xe3\\xb3\\x02\\xd0\\x89\\x83\\x1a\\xce\\x86\\x9e\\x27\\x30\\xfd\\xe4\\x5c\\x21\\x21\\xec\\x3e\\xf2\\x17\\xaa\\x9c\\x43\\xfa\\x7c\\xc7\\xe9\\xed\\x0a\\x01\\xad\\x9f\\x1d\\x2f\\xc3\\x61\\x36\\x38\\xca\\x9f\\xc1\\x93\\xc9\\x8b\\x37\\x45\\x5b\\xf5\\xdb\\xf8\\xf3\\x8b\\x64\\x70\\x8d\\xfd\\xca\\x6c\\x21\\xf0\\x97\\x5f\\x10\\x17\\xc5\\xda\\x5f\\x64\\x34\\xbd\\xa9\\xf0\\x33\\xce\\xc2\\xa6\\x31\\xab\\x50\\x31\\x8e\\x01\\x7b\\x17\\x0b\\x24\\x0b\\xf0\\x1e\\xb8\\xb3\\x6c\\x7e\\x1c\\xb5\\x9e\\x77\\x36\\xac\\x34\\x44\\x42\\x08\\x13\\x2a\\x8f\\x59\\xe4\\xf3\\x13\\xd6\\x5d\\x84\\x9c\\x6a\\x4f\\xdf\\x13\\xe2\\x0e\\xca\\xee\\x38\\x23\\xe5\\x89\\xa1\\x71\\xb3\\x9b\\x24\\x89\\x49\\x7b\\x06\\xe6\\xff\\x58\\xc2\\xc9\\xf1\\xdc\\x5d\\x3a\\xa3\\xbd\\x10\\xe6\\x44\\x3e\\x22\\xd4\\x2d\\x07\\xb7\\x83\\xf7\\x9f\\xd4\\x3a\\x46\\xe1\\xcd\\xe3\\x14\\xb6\\x63\\xa9\\x5f\\x72\\x46\\xde\\xa1\\x31\\xfc\\xd4\\x6d\\x1d\\xc3\\x33\\xc5\\x45\\x4f\\x86\\xb2\\xc4\\xe2\\xe4\\x24\\xde\\xa4\\x05\\xcc\\x22\\x30\\xd4\\xdc\\xd3\\x9a\\x2e\\xab\\x2f\\x92\\x84\\x5c\\xf6\\xa7\\x99\\x41\\x92\\x06\\x3f\\x12\\x02\\x74\\x9e\\xf5\\x2d\\xcb\\x96\\xf2\\xb7\\x9e\\xd6\\xa9\\x81\\x18\\xca\\x0b\\x99\\xba\\x22\\x85\\x49\\x08\\x60\\xeb\\x4c\\x61\\xab\\x78\\xb9\\xdd\\xc6\\xac\\xc7\\xad\\x88\\x3f\\xa5\\xe9\\x6f\\x9d\\x02\\x91\\x71\\x22\\x3a\\xbf\\x75\\x73\\xe3\\x62\\x30\\xe0\\xa8\\x1f\\x6c\\x13\\x11\\x15\\x14\\x73\\xee\\x26\\x4f\\x4b\\x84\\x2e\\x92\\x3d\\xcb\\x3b\"},\n{{0xc5,0x7a,0x43,0xdc,0xd7,0xba,0xb8,0x51,0x60,0x09,0x54,0x69,0x18,0xd7,0x1a,0xd4,0x59,0xb7,0x34,0x5e,0xfd,0xca,0x8d,0x4f,0x19,0x92,0x98,0x75,0xc8,0x39,0xd7,0x22,},{0x20,0x83,0xb4,0x44,0x23,0x6b,0x9a,0xb3,0x1d,0x4e,0x00,0xc8,0x9d,0x55,0xc6,0x26,0x0f,0xee,0x71,0xac,0x1a,0x47,0xc4,0xb5,0xba,0x22,0x74,0x04,0xd3,0x82,0xb8,0x2d,},{0x1e,0xde,0xf9,0xbc,0x03,0x69,0x71,0xf1,0xfa,0x88,0xed,0xf4,0x53,0x93,0xc8,0x02,0xe6,0xc1,0xa1,0x63,0x1c,0x8a,0x06,0x87,0x1a,0x09,0xa3,0x20,0x82,0x1d,0xce,0x40,0xbe,0xca,0x97,0xe5,0x3a,0x03,0x61,0xa9,0x55,0xa4,0xc6,0xd6,0x0b,0x8c,0xa8,0xe4,0x00,0xc8,0x13,0x40,0x91,0x1c,0xcb,0x4f,0x56,0x28,0x40,0x41,0xcd,0xbb,0x18,0x04,},\"\\xa4\\xf6\\xd9\\xc2\\x81\\xcf\\x81\\xa2\\x8a\\x0b\\x9e\\x77\\x49\\x9a\\xa2\\x4b\\xde\\x96\\xcc\\x12\\x64\\x37\\x44\\x91\\xc0\\x08\\x29\\x4e\\xe0\\xaf\\x6f\\x6e\\x4b\\xbb\\x68\\x63\\x96\\xf5\\x90\\x68\\xd3\\x58\\xe3\\x0f\\xe9\\x99\\x2d\\xb0\\xc6\\xf1\\x66\\x80\\xa1\\xc7\\x1e\\x27\\xa4\\xa9\\x07\\xac\\x60\\x7d\\x39\\xbd\\xc3\\x25\\x8c\\x79\\x56\\x48\\x2f\\xb3\\x79\\x96\\xf4\\xbe\\xb3\\xe5\\x05\\x1b\\x81\\x48\\x01\\x9a\\x1c\\x25\\x6e\\x2e\\xe9\\x99\\xeb\\xc8\\xce\\x64\\xc5\\x4e\\x07\\xfe\\xdb\\x4f\\xbd\\x89\\x53\\xeb\\xd9\\x3b\\x7d\\x69\\xce\\x5a\\x00\\x82\\xed\\xd6\\x20\\x9d\\x12\\xd3\\x61\\x9b\\x4f\\xd2\\xea\\xe9\\x16\\x46\\x1f\\x72\\xa4\\xce\\x72\\x71\\x57\\x25\\x1a\\x19\\x20\\x9b\\xbf\\xf9\\xfb\\xdb\\xd2\\x89\\x43\\x6f\\x3f\\xca\\xcc\\x6b\\x4e\\x13\\x18\\x52\\x1a\\x47\\x83\\x9c\\xba\\x4b\\x14\\xf7\\xd7\\xa2\\x1e\\x7b\\x5d\\x6b\\x6a\\x75\\x3d\\x58\\x04\\xaf\\xcd\\x2b\\x1e\\xb7\\x77\\x9b\\x92\\xab\\xab\\x8a\\xfa\\x8a\\xa4\\xfa\\x51\\xca\\xec\\x0b\\x85\\xdc\\xd0\\xfc\\x2a\\x06\\x76\\x03\\x6d\\x3f\\x56\\x63\\x0a\\x83\\x1f\\xfe\\xb5\\x02\\x86\\x1d\\xd8\\x91\\x61\\xc7\\x08\\xa9\\xc0\\x06\\xc7\\x3c\\x93\\x0c\\xe5\\xb9\\x47\\x56\\x42\\x6f\\xf1\\x8a\\xa1\\x12\\xfb\\x4e\\xb9\\xa6\\x85\\x00\\xb4\\x8d\\x4e\\xed\\xbd\\x41\\x67\\xb6\\xff\\xd0\\xa1\\x1d\\x49\\x44\\x3a\\x17\\x3c\\xe9\\xd9\\x49\\x43\\x67\\x48\\xfc\\x06\\x34\\xf0\\x6b\\xb0\\x8b\\x8f\\x34\\x23\\xf4\\x46\\x3d\\xba\\x7b\\x4d\\x19\\x9b\\x64\\xdf\\x57\\x81\\x17\\xf0\\xa2\\x64\\x5f\\x0b\\x2a\\x1e\\x2a\\xda\\x27\\xd2\\x86\\xf7\\x67\\x33\\xf2\\x5b\\x82\\xed\\x1d\\x48\\xa5\\xc3\\x89\\x8d\\x4a\\xd6\\x21\\xe5\\x0e\\xd9\\x06\\x0d\\xaa\\xd4\\x0a\\x39\\x53\\x2e\\x4d\\x1b\\xf1\\x62\\xce\\x36\\x80\\x4d\\x5d\\x4e\\x2d\"},\n{{0x2d,0xdd,0xb6,0xb8,0xfd,0x04,0xfa,0x90,0xec,0xe1,0xa7,0x09,0xf8,0x41,0x8f,0x2e,0x5d,0x0c,0x9c,0x43,0xaf,0xe7,0xcf,0xce,0x19,0xe6,0xad,0x15,0xa7,0x34,0x76,0xf7,},{0x80,0x59,0xde,0x6a,0x7c,0x47,0x76,0x48,0x9e,0xcc,0x2e,0x7d,0x70,0x7f,0xfc,0xe3,0x02,0x85,0xbf,0x30,0xa2,0x3f,0x78,0xd7,0x2d,0xb4,0x9c,0xfd,0x6e,0xd0,0xd4,0x92,},{0xc6,0x34,0xea,0x7b,0xf7,0x2e,0x89,0x5a,0x2e,0x79,0x6e,0x28,0x34,0x20,0x14,0x15,0xb8,0xb4,0x5e,0x05,0xe0,0x45,0x55,0x92,0x84,0xeb,0x90,0x52,0xc0,0xe8,0x4f,0x62,0xa5,0xa9,0xf0,0xc9,0x76,0x4f,0x75,0x76,0x78,0x8c,0x72,0x28,0xb1,0x9e,0xf5,0x17,0xc1,0x95,0x49,0x73,0x25,0xa4,0x8a,0x93,0x44,0xb1,0x47,0xc1,0x2f,0xd7,0x55,0x09,},\"\\x47\\x4b\\xaa\\x59\\x0a\\x4c\\xd7\\x2d\\x54\\x24\\xe5\\x1d\\x82\\x57\\xb3\\xd4\\x43\\x25\\xbc\\x4c\\x50\\x63\\xa0\\x03\\x3c\\x86\\xeb\\xbe\\x99\\xed\\x72\\x12\\x18\\x4c\\x19\\x94\\x4d\\x08\\x2a\\x11\\x53\\x79\\xdd\\x4c\\xec\\xe9\\x73\\xfa\\xa0\\xbc\\xa6\\x48\\x5b\\xd2\\x5f\\x37\\x44\\xa7\\x19\\xe7\\x0a\\xa0\\x29\\x1e\\x1b\\x5a\\x96\\xe6\\x37\\xc1\\x40\\x61\\x6a\\x98\\x26\\x33\\x57\\xc7\\x6b\\x6e\\xb0\\x08\\x3f\\xe5\\x14\\x14\\xe3\\x86\\x87\\x0d\\x0f\\xdc\\x7d\\xd9\\xab\\xe4\\xff\\x6f\\xb5\\xbb\\xf1\\xe7\\xb1\\x5d\\xac\\x3e\\x08\\xe2\\x61\\x5f\\x65\\x5c\\x31\\x04\\xce\\xb3\\x2a\\x4c\\xc2\\xc9\\xe9\\xc4\\x3c\\xf2\\x82\\xd3\\x46\\xac\\x25\\x3c\\xcc\\x46\\xb6\\x35\\xae\\x04\\x09\\x73\\xb4\\x97\\x35\\x72\\x0f\\xfb\\x89\\x04\\x69\\xa5\\x67\\xc5\\x82\\x4e\\x0c\\x00\\xd7\\xcc\\xd5\\x50\\x9a\\x71\\x80\\x92\\xa9\\x06\\x46\\x1c\\x4d\\x61\\x63\\xea\\xf4\\x22\\x41\\x8f\\x5f\\xc6\\xe0\\x09\\xfc\\x3f\\x52\\x9a\\xc6\\x1a\\x2f\\x89\\xbb\\x8e\\x0e\\xd4\\x5d\\x94\\x0c\\x4c\\x23\\x31\\xff\\x8d\\x8e\\x1d\\x6d\\x58\\xd4\\x17\\xd8\\xfc\\x26\\x56\\xa0\\x2e\\x87\\x01\\xae\\xe7\\x5a\\xed\\x91\\x87\\x24\\xee\\xbe\\x4a\\x2c\\xf4\\x74\\x4c\\x5c\\x40\\x1e\\x21\\x70\\x23\\xdf\\x68\\xa6\\xf6\\xa0\\x22\\x8b\\xd0\\x5a\\x67\\x9a\\x69\\x7d\\x8d\\xe7\\x03\\x6b\\x9e\\xd2\\x69\\x09\\x0d\\x3c\\x65\\x48\\x6a\\xfb\\x91\\xe2\\x79\\x54\\xeb\\x15\\xb9\\x64\\x66\\x5e\\xde\\x7a\\xd0\\x08\\xf1\\x2f\\xb3\\xa9\\xd0\\xe6\\x9c\\x13\\xb4\\x25\\x4f\\x43\\x81\\x9e\\x08\\x18\\xa4\\x19\\x5f\\x68\\xb8\\xa3\\x8a\\xe8\\x1f\\x3f\\xcb\\x18\\x79\\xc9\\x5a\\xb4\\xcd\\x0f\\xfc\\x38\\xe3\\x81\\x08\\x92\\x60\\xcc\\xa9\\x67\\xac\\xe5\\xa0\\x85\\xb4\\x57\\xab\\x5e\\xb3\\x63\\x85\\x21\\x01\\x37\\x75\\x70\\xf9\\xac\\x9e\\x38\"},\n{{0x55,0x47,0xf1,0x00,0x4b,0xae,0xdf,0xce,0x5c,0xfc,0x08,0x50,0xb0,0x53,0x02,0x37,0x4a,0xad,0x24,0xf6,0x16,0x39,0x94,0xec,0xd7,0x51,0xdf,0x3a,0xf3,0xc1,0x06,0x20,},{0x7c,0xe6,0x20,0x78,0x73,0x85,0xee,0x19,0x51,0xac,0x49,0xa7,0x73,0x52,0xee,0x0d,0x6f,0x8c,0x5c,0xd4,0x7d,0xf7,0x4e,0x9e,0x32,0x16,0xa6,0x32,0x4f,0xc7,0xcf,0x7f,},{0x29,0xdf,0x3a,0xd5,0x89,0x00,0x9c,0x66,0x7b,0xaa,0x5e,0x72,0xda,0xbb,0x4e,0x53,0xcb,0x78,0x76,0xde,0x4e,0x7e,0xfe,0x5c,0xc2,0x1e,0xad,0x7f,0xa8,0x78,0xdb,0x57,0xf9,0x7c,0x11,0x03,0xdd,0xb3,0x9a,0x86,0x1e,0xb8,0x86,0x53,0xc1,0xd4,0xec,0x3b,0x43,0x06,0xe4,0x58,0x4b,0x47,0xb8,0xbc,0x90,0x42,0x31,0x19,0xe7,0xe4,0xaf,0x00,},\"\\xa6\\xc1\\x7e\\xeb\\x5b\\x80\\x66\\xc2\\xcd\\x9a\\x89\\x66\\x73\\x17\\xa9\\x45\\xa0\\xc7\\xc9\\x69\\x96\\xe7\\x7a\\xe8\\x54\\xc5\\x09\\xc6\\xcd\\x06\\x31\\xe9\\x22\\xad\\x04\\x50\\x3a\\xf8\\x7a\\x3c\\x46\\x28\\xad\\xaf\\xed\\x76\\x00\\xd0\\x71\\xc0\\x78\\xa2\\x2e\\x7f\\x64\\xbd\\xa0\\x8a\\x36\\x2b\\x38\\xb2\\x6c\\xa1\\x50\\x06\\xd3\\x8a\\xcf\\x53\\x2d\\x0d\\xed\\xea\\x41\\x77\\xa2\\xd3\\x3f\\x06\\x95\\x6d\\x80\\xe9\\x63\\x84\\x8e\\xc7\\x91\\xb2\\x76\\x2f\\xa9\\x94\\x49\\xb4\\xf1\\xa1\\xed\\x9b\\x3f\\x25\\x80\\xbe\\x3a\\xc7\\xd7\\xf5\\x2f\\xb1\\x44\\x21\\xd6\\x22\\x2b\\xa7\\x6f\\x80\\x77\\x50\\xc6\\xcb\\xb0\\xb1\\x6f\\x08\\x95\\xfc\\x73\\xd9\\xdf\\xc5\\x87\\xe1\\xa9\\xe5\\xd1\\xe5\\x83\\x75\\xfb\\xab\\x70\\x5b\\x8f\\x0c\\x1f\\xd7\\xdf\\x8b\\x3a\\xd4\\x46\\xf2\\xf0\\x84\\x59\\xe7\\xed\\x1a\\xf5\\x95\\x56\\xfb\\xc9\\x66\\xdc\\x24\\x9c\\x1c\\xf6\\x04\\xf3\\xe6\\x77\\xc8\\xa0\\x9d\\x43\\x63\\x60\\x87\\x74\\xbf\\x38\\x11\\xbe\\xf0\\x64\\x27\\x48\\xc5\\x5c\\x51\\x6c\\x7a\\x58\\x0f\\xa3\\x49\\x90\\x50\\xac\\xb3\\x0e\\xed\\x87\\x0d\\x0d\\x91\\x17\\x4c\\xb6\\x23\\xe9\\x8c\\x3a\\xd1\\x21\\xcf\\x81\\xf0\\x4e\\x57\\xd4\\x9b\\x00\\x84\\x24\\xa9\\x8a\\x31\\xee\\xaa\\xf5\\xf3\\x8e\\x00\\x0f\\x90\\x3d\\x48\\xd2\\x15\\xed\\x52\\xf8\\x62\\xd6\\x36\\xa5\\xa7\\x36\\x07\\xde\\x85\\x76\\x01\\x67\\x26\\x7e\\xfe\\x30\\xf8\\xa2\\x6e\\xbc\\x5a\\xa0\\xc0\\x9f\\x5b\\x25\\x8d\\x33\\x61\\xca\\x69\\xd1\\xd7\\xee\\x07\\xb5\\x96\\x48\\x17\\x9a\\xb2\\x17\\x0e\\xc5\\x0c\\x07\\xf6\\x61\\x6f\\x21\\x68\\x72\\x52\\x94\\x21\\xa6\\x33\\x4a\\x4a\\x1e\\xd3\\xd2\\x67\\x1e\\xf4\\x7b\\xc9\\xa9\\x2a\\xfb\\x58\\x31\\x4e\\x83\\x2d\\xb8\\xa9\\x00\\x34\\x08\\xa0\\x48\\x75\\x03\\xfe\\x4f\\x67\\x77\\x0d\\xd4\\xb6\"},\n{{0x3d,0xd7,0x20,0x3c,0x23,0x7a,0xef,0xe9,0xe3,0x8a,0x20,0x1f,0xf3,0x41,0x49,0x01,0x79,0x90,0x5f,0x9f,0x10,0x08,0x28,0xda,0x18,0xfc,0xbe,0x58,0x76,0x8b,0x57,0x60,},{0xf0,0x67,0xd7,0xb2,0xff,0x3a,0x95,0x7e,0x83,0x73,0xa7,0xd4,0x2e,0xf0,0x83,0x2b,0xcd,0xa8,0x4e,0xbf,0x28,0x72,0x49,0xa1,0x84,0xa2,0x12,0xa9,0x4c,0x99,0xea,0x5b,},{0x4c,0x03,0x69,0x35,0xa9,0x6a,0xbc,0x0d,0x05,0x0d,0x90,0x7b,0xed,0xbe,0x99,0x46,0xfb,0x97,0x43,0x9f,0x03,0x9c,0x74,0x2e,0x05,0x1c,0xcf,0x09,0xad,0xd7,0xdf,0x44,0xd1,0x7d,0xa9,0x8c,0x2c,0xa0,0x1b,0xdc,0x24,0x24,0xda,0x1e,0x4d,0xeb,0xf3,0x47,0xf8,0xff,0xf4,0x8a,0xc8,0x03,0x0d,0x2c,0xc0,0x7f,0x95,0x75,0xc0,0x44,0xbe,0x04,},\"\\xdb\\x28\\xed\\x31\\xac\\x04\\xb0\\xc2\\xde\\xce\\xe7\\xa6\\xb2\\x4f\\xc9\\xa0\\x82\\xcc\\x26\\x2c\\xa7\\xcc\\xf2\\xa2\\x47\\xd6\\x37\\x2e\\xc3\\xe9\\x12\\x0e\\xce\\xdb\\x45\\x42\\xea\\x59\\x3f\\xea\\x30\\x33\\x5c\\x5a\\xb9\\xdd\\x31\\x8a\\x3b\\x4f\\xd5\\x83\\x42\\x99\\xcf\\x3f\\x53\\xd9\\xef\\x46\\x13\\x7b\\x27\\x3c\\x39\\x0e\\xc3\\xc2\\x6a\\x0b\\x44\\x70\\xd0\\xd9\\x4b\\x77\\xd8\\x2c\\xae\\x4b\\x24\\x58\\x78\\x37\\xb1\\x67\\xbb\\x7f\\x81\\x66\\x71\\x0b\\xae\\xb3\\xee\\x70\\xaf\\x79\\x73\\x16\\xcb\\x7d\\x05\\xfa\\x57\\xe4\\x68\\xae\\x3f\\x0b\\xd4\\x49\\x40\\x4d\\x85\\x28\\x80\\x8b\\x41\\xfc\\xca\\x62\\xf5\\xe0\\xa2\\xaa\\x5d\\x8f\\x3a\\xca\\xb0\\x08\\xcc\\x5f\\x6e\\x5a\\xb0\\x27\\x77\\xbd\\xcd\\xe8\\x7f\\x0a\\x10\\xef\\x06\\xa4\\xbb\\x37\\xfe\\x02\\xc9\\x48\\x15\\xcf\\x76\\xbf\\xb8\\xf5\\xcd\\xd8\\x65\\xcc\\x26\\xdc\\xb5\\xcf\\x49\\x2e\\xdf\\xd5\\x47\\xb5\\x35\\xe2\\xe6\\xa6\\xd8\\x54\\x09\\x56\\xdc\\xba\\x62\\xcf\\xea\\x19\\xa9\\x47\\x44\\x06\\xe9\\x34\\x33\\x7e\\x45\\x42\\x70\\xe0\\x10\\x36\\xac\\x45\\x79\\x3b\\x6b\\x8a\\xce\\xda\\x18\\x7a\\x08\\xd5\\x6a\\x2c\\xe4\\xe9\\x8f\\x42\\xea\\x37\\x5b\\x10\\x1a\\x6b\\x9f\\xcb\\x42\\x31\\xd1\\x71\\xaa\\x46\\x3e\\xeb\\x43\\x58\\x6a\\x4b\\x82\\xa3\\x87\\xbc\\xdd\\xaf\\x71\\xa8\\x0f\\xd5\\xc1\\xf7\\x29\\x2e\\xfc\\x2b\\xd8\\xe7\\x0c\\x11\\xea\\xa8\\x17\\x10\\x60\\x61\\xb6\\xc4\\x61\\xc4\\x88\\x3d\\x61\\x3c\\xc0\\x6c\\x7e\\x2a\\x03\\xf7\\x3d\\x90\\xfc\\x55\\xcd\\xc0\\x72\\x65\\xee\\xfd\\x36\\xbe\\x72\\x27\\x03\\x83\\xd6\\xc6\\x76\\xca\\xe3\\x7c\\x93\\x69\\x1f\\x1a\\xe3\\xd9\\x27\\xb3\\xa1\\xcd\\x96\\x3e\\x42\\x29\\x75\\x7a\\xe5\\x23\\x1e\\xea\\x73\\xa9\\xf7\\x15\\x15\\x62\\x83\\x05\\x41\\x0a\\xc2\\x59\\x3b\\x32\\x5c\\xc6\\x31\"},\n{{0x28,0x27,0x75,0xdf,0x9e,0xbb,0xd7,0xc5,0xa6,0x5f,0x3a,0x2b,0x09,0x6e,0x36,0xee,0x64,0xa8,0xf8,0xea,0x71,0x9d,0xa7,0x77,0x58,0x73,0x9e,0x4e,0x74,0x76,0x11,0x1d,},{0xa2,0xb4,0x96,0x46,0x03,0x3a,0x13,0x93,0x7c,0xad,0x6b,0x0e,0x91,0x4e,0x3c,0xec,0x54,0x98,0x9c,0x25,0x2c,0xa5,0x64,0x3d,0x07,0x65,0x55,0xd8,0xc5,0x5e,0x56,0xe0,},{0x15,0x76,0x39,0x73,0x85,0x94,0x02,0x90,0x7d,0x8d,0xcb,0x86,0xad,0xc2,0x4a,0x2a,0x16,0x8b,0xa3,0xab,0xf2,0x24,0x61,0x73,0xd6,0x34,0x8a,0xfe,0xd5,0x1e,0xf6,0x0b,0x0c,0x0e,0xde,0xff,0x4e,0x10,0xbc,0xef,0x4c,0x6e,0x57,0x78,0xc8,0xbc,0x1f,0x5e,0x9e,0xe0,0x23,0x73,0x73,0x44,0x5b,0x45,0x51,0x55,0xd2,0x3d,0xe1,0x27,0xa2,0x02,},\"\\x14\\xcc\\x50\\xc2\\x97\\x3e\\xa9\\xd0\\x18\\x7a\\x73\\xf7\\x1c\\xb9\\xf1\\xce\\x07\\xe7\\x39\\xe0\\x49\\xec\\x2b\\x27\\xe6\\x61\\x3c\\x10\\xc2\\x6b\\x73\\xa2\\xa9\\x66\\xe0\\x1a\\xc3\\xbe\\x8b\\x50\\x5a\\xea\\xad\\x14\\x85\\xc1\\xc2\\xa3\\xc6\\xc2\\xb0\\x0f\\x81\\xb9\\xe5\\xf9\\x27\\xb7\\x3b\\xfd\\x49\\x86\\x01\\xa7\\x62\\x2e\\x85\\x44\\x83\\x7a\\xad\\x02\\xe7\\x2b\\xf7\\x21\\x96\\xdc\\x24\\x69\\x02\\xe5\\x8a\\xf2\\x53\\xad\\x7e\\x02\\x5e\\x36\\x66\\xd3\\xbf\\xc4\\x6b\\x5b\\x02\\xf0\\xeb\\x4a\\x37\\xc9\\x55\\x49\\x92\\xab\\xc8\\x65\\x1d\\xe1\\x2f\\xd8\\x13\\x17\\x73\\x79\\xbb\\x0c\\xe1\\x72\\xcd\\x8a\\xaf\\x93\\x7f\\x97\\x96\\x42\\xbc\\x2e\\xd7\\xc7\\xa4\\x30\\xcb\\x14\\xc3\\xcd\\x31\\x01\\xb9\\xf6\\xb9\\x1e\\xe3\\xf5\\x42\\xac\\xdf\\x01\\x7f\\x8c\\x21\\x16\\x29\\x7f\\x45\\x64\\x76\\x8f\\x4d\\xb9\\x5d\\xad\\x8a\\x9b\\xcd\\xc8\\xda\\x4d\\x8f\\xb1\\x3e\\xf6\\xe2\\xda\\x0b\\x13\\x16\\xd3\\xc8\\xc2\\xf3\\xed\\x83\\x6b\\x35\\xfe\\x2f\\xd3\\x3e\\xff\\xb4\\x09\\xe3\\xbc\\x1b\\x0f\\x85\\x22\\x5d\\x2a\\x1d\\xe3\\xbf\\xc2\\xd2\\x05\\x63\\x94\\x64\\x75\\xc4\\xd7\\xca\\x9f\\xdd\\xba\\xf5\\x9a\\xd8\\xf8\\x96\\x1d\\x28\\x7a\\xe7\\xdd\\x80\\x3e\\x7a\\xf1\\xfa\\x61\\x23\\x29\\xb1\\xbd\\xc0\\x4e\\x22\\x56\\x00\\xae\\x73\\x1b\\xc0\\x1a\\xe0\\x92\\x5a\\xed\\x62\\xac\\x50\\xd4\\x60\\x86\\xf3\\x64\\x6c\\xf4\\x7b\\x07\\x2f\\x0d\\x3b\\x04\\x4b\\x36\\xf8\\x5c\\xec\\x72\\x9a\\x8b\\xb2\\xb9\\x28\\x83\\xca\\x4d\\xfb\\x34\\xa8\\xee\\x8a\\x02\\x73\\xb3\\x1a\\xf5\\x09\\x82\\xbb\\x61\\x31\\xbf\\xa1\\x1d\\x55\\x50\\x4b\\x1f\\x6f\\x1a\\x0a\\x00\\x43\\x8c\\xa2\\x6d\\x8a\\xb4\\xf4\\x8b\\xcd\\xdc\\x9d\\x5a\\x38\\x85\\x1a\\xbe\\xde\\x41\\x51\\xd5\\xb7\\x0d\\x72\\x07\\x32\\xa0\\x0a\\xbe\\xa2\\xc8\\xb9\\x79\"},\n{{0x47,0x30,0xa5,0xcf,0x97,0x72,0xd7,0xd6,0x66,0x5b,0xa7,0x87,0xbe,0xa4,0xc9,0x52,0x52,0xe6,0xec,0xd6,0x3e,0xc6,0x23,0x90,0x54,0x7b,0xf1,0x00,0xc0,0xa4,0x63,0x75,},{0xf9,0xf0,0x94,0xf7,0xcc,0x1d,0x40,0xf1,0x92,0x6b,0x5b,0x22,0xdc,0xe4,0x65,0x78,0x44,0x68,0xb2,0x0a,0xb3,0x49,0xbc,0x6d,0x4f,0xdf,0x78,0xd0,0x04,0x2b,0xbc,0x5b,},{0x55,0x2c,0x73,0x47,0xbd,0xfe,0x13,0x16,0x46,0xce,0x09,0x32,0xd8,0x2a,0x36,0xd2,0xc1,0xb7,0x6d,0x7c,0x30,0xee,0x89,0x0e,0x05,0x92,0xe1,0x9f,0x9d,0x18,0xb9,0xa5,0x6f,0x48,0xd7,0xa9,0xb6,0x8c,0x01,0x7d,0xa6,0xb5,0x50,0xc9,0x43,0xaf,0x4a,0x90,0x7b,0xaf,0x31,0x7e,0x41,0x9f,0xbb,0xc9,0x6f,0x6c,0xf4,0xbf,0xad,0x42,0xde,0x00,},\"\\xe7\\x47\\x6d\\x2e\\x66\\x84\\x20\\xe1\\xb0\\xfa\\xdf\\xba\\xa5\\x42\\x86\\xfa\\x7f\\xa8\\x90\\xa8\\x7b\\x82\\x80\\xe2\\x60\\x78\\x15\\x22\\x95\\xe1\\xe6\\xe5\\x5d\\x12\\x41\\x43\\x5c\\xc4\\x30\\xa8\\x69\\x3b\\xb1\\x0c\\xde\\x46\\x43\\xf5\\x9c\\xbf\\xcc\\x25\\x6f\\x45\\xf5\\x09\\x0c\\x90\\x9a\\x14\\xc7\\xfc\\x49\\xd3\\x7b\\xfc\\x25\\xaf\\x11\\xe8\\xf4\\xc8\\x3f\\x4c\\x32\\xd4\\xaa\\xbf\\x43\\xb2\\x0f\\xa3\\x82\\xbb\\x66\\x22\\xa1\\x84\\x8f\\x8f\\xfc\\x4d\\xff\\x34\\x08\\xbb\\x4e\\xc7\\xc6\\x7a\\x35\\xb4\\xcd\\xae\\xe5\\xe2\\x79\\xc0\\xfc\\x0a\\x66\\x09\\x3a\\x9f\\x36\\xa6\\x0f\\xdd\\x65\\xe6\\x33\\x4a\\x80\\x4e\\x84\\x5c\\x85\\x30\\xb6\\xfd\\xa3\\x63\\xb5\\x64\\x03\\x37\\xd0\\x27\\x24\\x3c\\xcf\\xb3\\xc1\\x77\\xf4\\x3e\\x71\\x78\\x96\\xe4\\x6e\\xad\\x7f\\x72\\xca\\x06\\xaa\\x0f\\xf1\\xe7\\x72\\x47\\x12\\x1b\\xaf\\x48\\xbe\\x9a\\x44\\x5f\\x72\\x9c\\xa1\\x39\\x0f\\xc4\\x61\\x51\\xcb\\xd3\\x3f\\xcb\\xd7\\x37\\x3f\\x27\\xa6\\xba\\x55\\xc9\\x2c\\xbf\\x69\\x45\\xb0\\x9b\\x44\\xb9\\xa4\\xe5\\x80\\x0d\\x40\\x30\\x70\\xae\\x66\\x04\\x89\\x97\\xb2\\x19\\x7f\\x02\\x18\\x1a\\x09\\x7e\\x56\\x3f\\x9b\\x9a\\xcc\\x84\\x11\\x39\\x25\\x8a\\x25\\x8b\\xc6\\x10\\xd3\\xbd\\x89\\x16\\x37\\x35\\x6b\\x2e\\xdc\\x8c\\x18\\x4c\\x35\\xc6\\x5a\\xf9\\x1a\\xaf\\x7b\\x1c\\x16\\xd7\\x4a\\x5f\\x5f\\x86\\x25\\x48\\x13\\x92\\x54\\xec\\xf5\\x50\\x63\\x1d\\x5f\\x88\\x49\\xaf\\xdb\\x5b\\x64\\xcf\\x36\\x6f\\xf2\\x63\\x3a\\x93\\xf3\\xa1\\x8c\\x39\\xb5\\x15\\x02\\x45\\xfb\\x5f\\x33\\xc9\\xe4\\xe2\\xd9\\x4a\\xf6\\x96\\x3a\\x70\\xb8\\x8f\\x9e\\x7e\\x51\\x9f\\x8f\\xa2\\xa0\\xf2\\xe3\\x74\\x9d\\xe8\\x83\\xd0\\xe6\\xf0\\x52\\xa9\\x49\\xd0\\xfc\\x71\\x53\\xa8\\x69\\x3f\\x6d\\x80\\x1d\\x73\\x52\\xeb\\x2f\\x7a\\x46\\x5c\\x0e\"},\n{{0x27,0x70,0xaa,0xdd,0x1d,0x12,0x3e,0x95,0x47,0x83,0x2d,0xfb,0x2a,0x83,0x7e,0xba,0x08,0x91,0x79,0xef,0x4f,0x23,0xab,0xc4,0xa5,0x3f,0x2a,0x71,0x4e,0x42,0x3e,0xe2,},{0x3c,0x5f,0xbb,0x07,0x53,0x0d,0xd3,0xa2,0x0f,0xf3,0x5a,0x50,0x0e,0x37,0x08,0x92,0x63,0x10,0xfe,0xd8,0xa8,0x99,0x69,0x02,0x32,0xb4,0x2c,0x15,0xbd,0x86,0xe5,0xdc,},{0xf2,0x67,0x71,0x5e,0x9a,0x84,0xc7,0x31,0x4f,0x2d,0x58,0x69,0xef,0x4a,0xb8,0xd2,0x14,0x9a,0x13,0xf7,0xe8,0xe1,0xc7,0x28,0xc4,0x23,0x90,0x62,0x93,0xb4,0x9c,0xe6,0x28,0x34,0x54,0xdd,0x1c,0x7b,0x04,0x74,0x1d,0xf2,0xea,0xbe,0xdc,0x4d,0x6a,0xb1,0x39,0x7d,0xc9,0x5a,0x67,0x9d,0xf0,0x4d,0x2c,0x17,0xd6,0x6c,0x79,0xbb,0x76,0x01,},\"\\xa5\\xcc\\x20\\x55\\xeb\\xa3\\xcf\\x6f\\x0c\\x63\\x32\\xc1\\xf2\\xab\\x58\\x54\\x87\\x09\\x13\\xb0\\x3f\\xf7\\x09\\x3b\\xc9\\x4f\\x33\\x5a\\xdd\\x44\\x33\\x22\\x31\\xd9\\x86\\x9f\\x02\\x7d\\x82\\xef\\xd5\\xf1\\x22\\x71\\x44\\xab\\x56\\xe3\\x22\\x2d\\xc3\\xdd\\xcc\\xf0\\x62\\xd9\\xc1\\xb0\\xc1\\x02\\x4d\\x9b\\x41\\x6d\\xfa\\x3e\\xe8\\xa7\\x02\\x79\\x23\\x00\\x34\\x65\\xe0\\xff\\xae\\xfb\\x75\\xb9\\xf2\\x9d\\xc6\\xbc\\xf2\\x13\\xad\\xc5\\xe3\\x18\\xfd\\x8b\\xa9\\x3a\\x7a\\xa5\\xbf\\xb4\\x95\\xde\\x9d\\x7c\\x5e\\x1a\\x19\\x6c\\xd3\\xa2\\xd7\\x72\\x1f\\x8b\\xa7\\x85\\xaa\\x90\\x52\\xa1\\x81\\x1c\\x7f\\xcc\\x8f\\x93\\x93\\x27\\x65\\x05\\x9c\\xab\\x9c\\x9b\\x71\\x89\\x45\\x89\\x5e\\xf2\\x6f\\x3a\\xc0\\x48\\xd4\\xca\\xbf\\x91\\xa9\\xe6\\xaa\\x83\\xac\\x14\\xd4\\x31\\x56\\x82\\x78\\x37\\x91\\x4e\\xb7\\x63\\xa2\\x3c\\xba\\x53\\xf6\\x0f\\x15\\x0f\\x4b\\x70\\x20\\x3e\\xc1\\x83\\x3f\\xf1\\x05\\x84\\x94\\x57\\xa8\\xda\\x73\\x27\\x66\\x1f\\xb2\\x3a\\x55\\x41\\x64\\xe0\\x5f\\xcf\\x01\\x46\\xb1\\x06\\x74\\x96\\x4b\\xe6\\xf6\\xaa\\x0a\\xcc\\x94\\xc4\\x1a\\xd5\\x71\\x80\\xe5\\x18\\x0d\\x19\\x9b\\xd9\\x10\\x2f\\x55\\xd7\\x40\\xe8\\x17\\x89\\xb1\\x56\\x71\\xbb\\xd0\\x67\\x0e\\x6d\\xe5\\xd9\\x7e\\x1a\\xe6\\x26\\xd8\\xa0\\xeb\\xc3\\x2c\\x8f\\xd9\\xd2\\x47\\x37\\x27\\x4e\\x47\\xd2\\xdd\\x59\\x41\\xa2\\x72\\xe7\\x2a\\x59\\x89\\x28\\xad\\x10\\x9c\\xde\\x93\\x7b\\xf2\\x48\\xd5\\x7f\\x5d\\x29\\x42\\x98\\x3c\\x51\\xe2\\xa8\\x9f\\x8f\\x05\\x4d\\x5c\\x48\\xdf\\xad\\x8f\\xcf\\x1f\\xfa\\x97\\xf7\\xde\\x6a\\x3a\\x43\\xca\\x15\\xfc\\x67\\x20\\xef\\xae\\xc6\\x9f\\x08\\x36\\xd8\\x42\\x23\\xf9\\x77\\x6d\\x11\\x1e\\xc2\\xbb\\xc6\\x9b\\x2d\\xfd\\x58\\xbe\\x8c\\xa1\\x2c\\x07\\x21\\x64\\xb7\\x18\\xcd\\x7c\\x24\\x6d\\x64\"},\n{{0x4f,0xda,0xb7,0xc1,0x60,0x0e,0x70,0x11,0x4b,0x11,0xf5,0x33,0x24,0x23,0x76,0xaf,0x76,0x14,0xb4,0xd5,0xda,0x04,0x6a,0xc4,0xbe,0xde,0xa2,0x1d,0x8a,0x36,0x15,0x98,},{0xa2,0x5c,0x9a,0x94,0xd6,0xe4,0xec,0xd9,0x5a,0x4b,0xd6,0x80,0x5f,0x76,0x2e,0xb1,0xc4,0x57,0xa8,0xd4,0x5d,0x24,0x32,0x38,0xb1,0x83,0x9c,0xbb,0xa8,0xf4,0x41,0xcc,},{0x50,0x75,0xc0,0x90,0xcf,0xbe,0xb6,0xb0,0x18,0x02,0xaf,0x7f,0x4d,0xa5,0xaa,0x4f,0x43,0x4d,0x5e,0xe2,0xf3,0x53,0x0e,0xeb,0xb7,0x5c,0x85,0xe0,0x86,0x21,0xf8,0x3e,0xdc,0x08,0xaa,0x96,0x69,0x38,0x94,0xa4,0x27,0x76,0x33,0xba,0x81,0xe1,0x9e,0x9e,0x55,0xaf,0x5c,0x49,0x5d,0xaa,0x5e,0x1a,0x6f,0x8c,0xbb,0x79,0xc0,0x1c,0x72,0x07,},\"\\xda\\x40\\x58\\x90\\xd1\\x1a\\x87\\x2c\\x11\\x9d\\xab\\x5e\\xfc\\xbf\\xf6\\x1e\\x93\\x1f\\x38\\xec\\xcc\\xa4\\x57\\xed\\xc6\\x26\\xd3\\xea\\x29\\xed\\x4f\\xe3\\x15\\x4f\\xaf\\xec\\x14\\x44\\xda\\x74\\x34\\x3c\\x06\\xad\\x90\\xac\\x9d\\x17\\xb5\\x11\\xbc\\xb7\\x3b\\xb4\\x9d\\x90\\xba\\xfb\\x7c\\x7e\\xa8\\x00\\xbd\\x58\\x41\\x1d\\xf1\\x27\\x5c\\x3c\\xae\\x71\\xb7\\x00\\xa5\\xda\\xb4\\x91\\xa4\\x26\\x16\\x78\\x58\\x79\\x56\\xaa\\x4a\\x21\\x9e\\x1a\\xc6\\xdd\\x3f\\xb2\\xcb\\x8c\\x46\\x19\\x72\\x18\\xe7\\x26\\xdc\\x7e\\xd2\\x34\\x52\\x6a\\x6b\\x01\\xc0\\xd7\\x2c\\xb9\\x3a\\xb3\\xf4\\xf3\\x8a\\x08\\xe5\\x94\\x0b\\x3f\\x61\\xa7\\x2a\\xd2\\x78\\x9a\\x05\\x32\\x00\\x0f\\xac\\x1d\\x2d\\x2e\\x3a\\xd6\\x32\\xac\\x8b\\x62\\xbb\\x3f\\xf5\\xb9\\x9d\\x53\\x59\\x7b\\xf4\\xd4\\x4b\\x19\\x67\\x49\\x24\\xdf\\x9b\\x3d\\xb3\\xd0\\x25\\x3f\\x74\\x62\\x7c\\xca\\xb3\\x00\\x31\\xc8\\x5e\\x29\\x1c\\x58\\xb5\\xfa\\x91\\x67\\x52\\x2a\\x46\\x74\\x6f\\xc3\\x07\\x03\\x67\\x45\\xd4\\xf9\\x81\\x77\\x86\\xe5\\xd3\\x00\\xe6\\xc5\\xd5\\x03\\x12\\x5f\\xea\\x01\\xde\\xc3\\xe3\\xfe\\xdb\\xf3\\x86\\x1c\\xa2\\x62\\x7a\\x05\\x18\\xfb\\x2b\\x24\\xe5\\xa7\\xa0\\x14\\x17\\x87\\x19\\xe9\\xb3\\x45\\xf7\\xb2\\x49\\xce\\x3a\\x41\\x32\\x80\\xc8\\xde\\xb6\\x74\\xf5\\x9a\\x25\\xbe\\x92\\xa8\\xab\\x64\\x00\\xc7\\xc5\\x2b\\x07\\x28\\xae\\x34\\xe2\\x2b\\x2e\\xc2\\x00\\xc1\\xcb\\xab\\xa2\\xcc\\xd8\\xaf\\x29\\x24\\x9d\\x17\\xaf\\x60\\xc3\\x60\\x07\\xa7\\x22\\xfc\\x80\\x25\\x8a\\x7b\\xeb\\xab\\x1c\\xda\\xad\\x74\\x62\\xa8\\xb7\\x58\\x8c\\x2f\\x7e\\x27\\xc6\\xd0\\x7a\\xfc\\xf6\\x01\\x17\\xfe\\xd1\\x1b\\xd6\\x85\\x9e\\x75\\xe3\\xb4\\xfc\\xee\\x39\\x81\\x88\\x1e\\x95\\xdd\\x11\\x68\\x27\\xdd\\x4b\\x36\\x9a\\xf0\\x69\\xd3\\xc8\\xf2\\x67\\x6f\\x8a\"},\n{{0x26,0x45,0x04,0x60,0x4e,0x70,0xd7,0x2d,0xc4,0x47,0x4d,0xbb,0x34,0x91,0x3e,0x9c,0x0f,0x80,0x6d,0xfe,0x18,0xc7,0x87,0x9a,0x41,0x76,0x2a,0x9e,0x43,0x90,0xec,0x61,},{0xeb,0x2b,0x51,0x8c,0xe7,0xdc,0x71,0xc9,0x1f,0x36,0x65,0x58,0x16,0x51,0xfd,0x03,0xaf,0x84,0xc4,0x6b,0xf1,0xfe,0xd2,0x43,0x32,0x22,0x35,0x3b,0xc7,0xec,0x51,0x1d,},{0xee,0xa4,0x39,0xa0,0x0f,0x7e,0x45,0x9b,0x40,0x2b,0x83,0x51,0x50,0xa7,0x79,0xee,0xd1,0x71,0xab,0x97,0x1b,0xd1,0xb5,0x8d,0xcc,0x7f,0x93,0x86,0xda,0xdd,0x58,0x3d,0xe8,0xdc,0x69,0xe2,0x67,0x12,0x1d,0xde,0x41,0xf0,0xf9,0x49,0x3d,0x45,0x0b,0x16,0x21,0x9c,0xdf,0x3c,0x22,0xf0,0x94,0x82,0xce,0x40,0x2f,0xe1,0x7c,0xa4,0x9e,0x08,},\"\\x90\\x1d\\x70\\xe6\\x7e\\xd2\\x42\\xf2\\xec\\x1d\\xda\\x81\\x3d\\x4c\\x05\\x2c\\xfb\\x31\\xfd\\x00\\xcf\\xe5\\x44\\x6b\\xf3\\xb9\\x3f\\xdb\\x95\\x0f\\x95\\x2d\\x94\\xef\\x9c\\x99\\xd1\\xc2\\x64\\xa6\\xb1\\x3c\\x35\\x54\\xa2\\x64\\xbe\\xb9\\x7e\\xd2\\x0e\\x6b\\x5d\\x66\\xad\\x84\\xdb\\x5d\\x8f\\x1d\\xe3\\x5c\\x49\\x6f\\x94\\x7a\\x23\\x27\\x09\\x54\\x05\\x1f\\x8e\\x4d\\xbe\\x0d\\x3e\\xf9\\xab\\x30\\x03\\xdd\\x47\\xb8\\x59\\x35\\x6c\\xec\\xb8\\x1c\\x50\\xaf\\xfa\\x68\\xc1\\x5d\\xad\\xb5\\xf8\\x64\\xd5\\xe1\\xbb\\x4d\\x3b\\xad\\xa6\\xf3\\xab\\xa1\\xc8\\x3c\\x43\\x8d\\x79\\xa9\\x4b\\xfb\\x50\\xb4\\x38\\x79\\xe9\\xce\\xf0\\x8a\\x2b\\xfb\\x22\\xfa\\xd9\\x43\\xdb\\xf7\\x68\\x37\\x79\\x74\\x6e\\x31\\xc4\\x86\\xf0\\x1f\\xd6\\x44\\x90\\x50\\x48\\xb1\\x12\\xee\\x25\\x80\\x42\\x15\\x3f\\x46\\xd1\\xc7\\x77\\x2a\\x06\\x24\\xbc\\xd6\\x94\\x1e\\x90\\x62\\xcf\\xda\\x75\\xdc\\x87\\x12\\x53\\x3f\\x40\\x57\\x33\\x5c\\x29\\x80\\x38\\xcb\\xca\\x29\\xeb\\xdb\\x56\\x0a\\x29\\x5a\\x88\\x33\\x96\\x92\\x80\\x8e\\xb3\\x48\\x1f\\xd9\\x73\\x5e\\xa4\\x14\\xf6\\x20\\xc1\\x43\\xb2\\x13\\x3f\\x57\\xbb\\x64\\xe4\\x47\\x78\\xa8\\xca\\x70\\x91\\x82\\x02\\xd1\\x57\\x42\\x61\\x02\\xe1\\xdf\\xc0\\xa8\\xf7\\xb1\\xae\\x48\\x7b\\x74\\xf0\\x27\\x92\\x63\\x31\\x54\\xdf\\xe7\\x4c\\xaa\\x1b\\x70\\x88\\xfd\\xa2\\x2f\\xa8\\xb9\\xbc\\x35\\x4c\\x58\\x5f\\x15\\x67\\x70\\x6e\\x29\\x55\\x49\\x38\\x70\\xf5\\x41\\x69\\xe0\\xd7\\x69\\x11\\x59\\xdf\\x43\\x89\\x79\\x61\\xd2\\x4a\\x85\\x2e\\xa9\\x70\\xc5\\x14\\x94\\x8f\\x3b\\x48\\xf7\\x1e\\xe5\\x86\\xe7\\x2e\\xc7\\x8d\\xb8\\x20\\xf2\\x53\\xe0\\x8d\\xb8\\x4f\\x6f\\x31\\x2c\\x43\\x33\\xbd\\x0b\\x73\\x2f\\xe7\\x58\\x83\\x50\\x77\\x83\\xe9\\xa1\\xfd\\x4f\\xba\\xb8\\xe5\\x87\\x0f\\x9b\\xf7\\xad\\x58\\xaa\"},\n{{0x2c,0xa7,0x44,0x7a,0x36,0x68,0xb7,0x48,0xb1,0xfd,0x3d,0x52,0xd2,0x08,0x0d,0x30,0xe3,0x4d,0x39,0x7b,0xb2,0x84,0x6c,0xaf,0x8f,0x65,0x9a,0xc1,0x68,0x78,0x8c,0xa5,},{0xab,0x33,0x1c,0xd4,0x0a,0x31,0xd0,0x17,0x3c,0x0c,0x8c,0x1c,0x17,0x00,0x25,0x32,0x80,0x7b,0xf8,0x9e,0x3e,0xdb,0x6d,0x34,0xc2,0xdd,0x82,0x94,0x63,0x2b,0x9f,0xbc,},{0xf9,0x3a,0xda,0x15,0xae,0x9c,0xd2,0xb5,0x4f,0x26,0xf8,0x6f,0x0c,0x28,0x39,0x2a,0xed,0x5e,0xb6,0xb6,0xb4,0x4d,0x01,0xa4,0xe3,0x3a,0x54,0xe7,0xda,0x37,0xc3,0x8e,0x8d,0x53,0x36,0x6f,0x73,0xfd,0x85,0xbe,0x64,0x2e,0x4e,0xc8,0x12,0x36,0xd1,0x63,0xf0,0xd0,0x25,0xe7,0x6c,0x8b,0xbd,0xd6,0x5d,0x43,0xdf,0x49,0xf0,0x9c,0x1f,0x01,},\"\\xa8\\x2b\\xcd\\x94\\x24\\xbf\\xfd\\xa0\\xf2\\xf5\\xe9\\xea\\xe1\\x78\\x35\\xdb\\xe4\\x68\\xf6\\x1b\\x78\\x5a\\xab\\x82\\x93\\x47\\x37\\xa9\\x1c\\x5f\\x60\\x2c\\xb7\\xc6\\x17\\xcd\\xff\\xe8\\x7c\\xad\\x72\\x6a\\x49\\x72\\xe1\\x5a\\x7b\\x8e\\xe1\\x47\\xf0\\x62\\xd2\\xa5\\xa4\\xd8\\x97\\x06\\xb5\\x71\\xfa\\x8a\\xa2\\xb9\\x59\\x81\\xc7\\x8a\\xbe\\xaa\\xae\\x86\\x20\\x3f\\xa2\\xc0\\xe0\\x72\\x97\\x40\\x6e\\xa8\\xc2\\x71\\x11\\xa8\\x6d\\xbe\\x1d\\x5a\\x7c\\x3b\\x7a\\xe9\\x30\\x90\\x4d\\x98\\x90\\xf6\\xd4\\xab\\xeb\\xd1\\x41\\x2a\\x73\\xad\\x5f\\xee\\xa6\\x4a\\xcf\\x06\\x5d\\x3e\\x63\\xb5\\xcb\\xe2\\x0c\\xf2\\x0b\\xbd\\x2d\\x8b\\x94\\xf9\\x05\\x3e\\xd5\\xf6\\x66\\x33\\x48\\x25\\x30\\x12\\x44\\x46\\x60\\x59\\x18\\xde\\x66\\x45\\x5e\\x8c\\xf4\\xb1\\x01\\xa1\\x27\\x23\\x3c\\x4e\\x27\\xd5\\xd5\\x5b\\xf9\\x5b\\xd3\\x19\\x5d\\x03\\x40\\xd4\\x35\\x31\\xfc\\x75\\xfa\\xf8\\xdd\\xed\\x52\\x75\\xbf\\x89\\x75\\x0d\\xe8\\x38\\xfd\\x10\\xc3\\x17\\x45\\xbe\\x4c\\xa4\\x1f\\xa8\\x71\\xcb\\x0f\\x9b\\x01\\x67\\x06\\xa1\\xa7\\xe3\\xc4\\x4b\\xb9\\x0a\\xc7\\xa8\\xad\\x51\\xe2\\x72\\x38\\x92\\x92\\xfd\\x6c\\x98\\xad\\x7a\\x06\\x9e\\x76\\xe3\\xf5\\xf3\\xe0\\xcc\\x77\\x0b\\x9e\\x9b\\x35\\xa7\\x65\\xd0\\xd9\\x37\\x12\\xd7\\xcd\\xab\\xd1\\x7e\\x5d\\x01\\xdd\\x81\\x83\\xaf\\x4a\\xd9\\x36\\x5d\\xb0\\xa0\\xfa\\x41\\x38\\x1f\\xce\\x60\\xa0\\x81\\xdf\\x1c\\x5a\\xb0\\xf8\\xc1\\x8f\\x95\\xa7\\xa8\\xb5\\x82\\xdf\\xff\\x7f\\x14\\x9e\\xa5\\x79\\xdf\\x06\\x23\\xb3\\x3b\\x75\\x08\\xf0\\xc6\\x63\\xf0\\x1e\\x3a\\x2d\\xcd\\x9d\\xfb\\xee\\x51\\xcc\\x61\\x52\\x20\\xfd\\xaf\\xfd\\xab\\x51\\xbd\\xae\\x42\\xcb\\x9f\\x7f\\xa9\\xe3\\xb7\\xc6\\x9c\\xc8\\xad\\xa5\\xcc\\xd6\\x42\\x52\\x9b\\xa5\\x14\\xfd\\xc5\\x4f\\xcf\\x27\\x20\\xb8\\xf5\\xd0\\x8b\\x95\"},\n{{0x49,0x4e,0xa9,0xbc,0xce,0x26,0x88,0x5b,0x7d,0x17,0xd1,0xfc,0x11,0x44,0x48,0xf2,0x39,0xf0,0xce,0x46,0xe5,0xf2,0x47,0xb4,0xc9,0x99,0xfa,0x86,0x29,0x69,0x24,0x72,},{0x69,0x01,0xe5,0xef,0xae,0x57,0x53,0x6b,0xa5,0xfd,0xd9,0x6b,0x59,0x65,0x73,0x59,0x06,0x5f,0x25,0xd3,0x91,0xa1,0xaa,0x8c,0xdc,0x0d,0x38,0xbb,0x5d,0x53,0xc1,0x39,},{0x54,0x8a,0x09,0x3a,0x68,0x03,0x61,0xb7,0xdc,0x56,0xf1,0x45,0x03,0xb5,0x5e,0xee,0xc3,0xb3,0xf4,0xfd,0x4c,0xa9,0x9d,0x6a,0xed,0xce,0x08,0x30,0xf7,0xf4,0xae,0x2f,0x73,0x28,0x53,0x9b,0x34,0xc4,0x8f,0xc9,0x76,0x09,0x22,0x33,0x3d,0xae,0x9c,0x7c,0x01,0x7e,0x7d,0xb7,0x3b,0x8f,0xaa,0x6c,0x06,0xbe,0x05,0xe3,0x47,0x99,0x2b,0x06,},\"\\x3b\\xad\\xbf\\xa5\\xf5\\xa8\\xaa\\x2c\\xce\\x0a\\x60\\xe6\\x86\\xcd\\xce\\x65\\x4d\\x24\\x45\\x2f\\x98\\xfd\\x54\\x87\\x2e\\x73\\x95\\xb3\\x94\\x64\\x38\\x0a\\x0e\\x18\\x55\\x57\\xea\\x13\\x4d\\x09\\x57\\x30\\x86\\x4f\\x42\\x54\\xd3\\xdd\\x94\\x69\\x70\\xc1\\x0c\\x80\\x4f\\xcc\\x08\\x99\\xdf\\xa0\\x24\\x20\\x5b\\xe0\\xf8\\x0b\\x1c\\x75\\x44\\x95\\x23\\x32\\x4f\\xe6\\xa0\\x75\\x1e\\x47\\xb4\\xff\\x48\\x22\\xb8\\xc3\\x3e\\x9e\\xaf\\x1d\\x1d\\x96\\xe0\\xde\\x3d\\x4a\\xcd\\x89\\x69\\x6b\\x7f\\xcc\\x03\\xd4\\x9f\\x92\\xf8\\x2b\\x97\\x25\\x70\\x0b\\x35\\x0d\\xb1\\xa8\\x76\\x15\\x36\\x95\\x45\\x56\\x1b\\x85\\x99\\xf5\\xea\\x92\\x0a\\x31\\x0a\\x8b\\xaf\\xc0\\xe8\\xd7\\x46\\x8c\\xbf\\x6f\\x38\\x20\\xe9\\x43\\x59\\x4a\\xfd\\xd5\\x16\\x6e\\x4e\\x33\\x09\\xdd\\xdd\\x76\\x94\\xef\\x67\\xe6\\x94\\xf3\\x4f\\xc6\\x27\\x24\\xff\\x96\\xac\\x33\\x64\\x17\\x6f\\x34\\xe8\\xa0\\x2b\\x4c\\xf5\\x69\\xdb\\x5b\\x8f\\x77\\xd5\\x85\\x12\\xae\\xda\\xbf\\x0b\\xcd\\x1c\\x2d\\xf1\\x2d\\xb3\\xa9\\x47\\x3f\\x94\\x8c\\x5c\\x32\\x43\\x30\\x9a\\xae\\x46\\xc4\\x9e\\xfd\\x08\\x8b\\x60\\xf3\\x1a\\x8a\\x72\\xad\\x7e\\x5a\\x35\\xac\\xc5\\xd8\\x9f\\xa6\\x68\\x07\\xeb\\x5d\\x3b\\xa9\\xcd\\xf0\\x8d\\x47\\x53\\xcb\\x85\\x08\\x9e\\xe3\\x6f\\x5c\\x96\\xb4\\x32\\xb6\\x92\\x83\\x52\\xaf\\xad\\x58\\x01\\x22\\x25\\xd6\\x15\\x7f\\x9e\\x36\\x11\\x42\\x6d\\xf9\\x21\\xb6\\xd1\\xd8\\x37\\x46\\x28\\xa6\\x30\\x31\\xe9\\xff\\xb9\\x0e\\x42\\xff\\xbb\\xa0\\x21\\xf1\\x74\\xf6\\x85\\x03\\x15\\x54\\x30\\x15\\x2c\\x91\\x55\\xdc\\x98\\xff\\xa2\\x6c\\x4f\\xab\\x06\\x5e\\x1f\\x8e\\x46\\x22\\xc2\\xf2\\x8a\\x8c\\xb0\\x43\\x11\\x0b\\x61\\x74\\x41\\x14\\x0f\\x8e\\x20\\xad\\xc1\\x6f\\x79\\x9d\\x1d\\x50\\x96\\xb1\\xf5\\x05\\x32\\xbe\\x50\\x42\\xd2\\x1b\\x81\\xea\\x46\\xc7\"},\n{{0x00,0xd7,0x35,0xeb,0xae,0xe7,0x5d,0xd5,0x79,0xa4,0x0d,0xfd,0x82,0x50,0x82,0x74,0xd0,0x1a,0x15,0x72,0xdf,0x99,0xb8,0x11,0xd5,0xb0,0x11,0x90,0xd8,0x21,0x92,0xe4,},{0xba,0x02,0x51,0x7c,0x0f,0xdd,0x3e,0x26,0x14,0xb3,0xf7,0xbf,0x99,0xed,0x9b,0x49,0x2b,0x80,0xed,0xf0,0x49,0x5d,0x23,0x0f,0x88,0x17,0x30,0xea,0x45,0xbc,0x17,0xc4,},{0xdc,0xdc,0x54,0x61,0x19,0x37,0xd2,0xbd,0x06,0xca,0xcd,0x98,0x18,0xb3,0xbe,0x15,0xce,0x74,0x25,0x42,0x7a,0x75,0xf5,0x0d,0x19,0x7a,0x33,0x7a,0x3b,0x8b,0xa6,0x71,0x4e,0xf4,0x88,0x66,0xf2,0x43,0xbd,0x5a,0xc7,0x41,0x5e,0x91,0x45,0x17,0xa2,0xc1,0xc5,0xa9,0x53,0xf4,0x32,0xb9,0x9d,0xb0,0xe6,0x20,0xd6,0x4f,0x74,0xeb,0x85,0x05,},\"\\x59\\xc0\\xb6\\x9a\\xf9\\x5d\\x07\\x4c\\x88\\xfd\\xc8\\xf0\\x63\\xbf\\xdc\\x31\\xb5\\xf4\\xa9\\xbc\\x9c\\xec\\xdf\\xfa\\x81\\x28\\xe0\\x1e\\x7c\\x19\\x37\\xdd\\xe5\\xeb\\x05\\x70\\xb5\\x1b\\x7b\\x5d\\x0a\\x67\\xa3\\x55\\x5b\\x4c\\xdc\\xe2\\xbc\\xa7\\xa3\\x1a\\x4f\\xe8\\xe1\\xd0\\x3a\\xb3\\x2b\\x40\\x35\\xe6\\xda\\xdb\\xf1\\x53\\x20\\x59\\xee\\x01\\xd3\\xd9\\xa7\\x63\\x3a\\x0e\\x70\\x6a\\x11\\x54\\xca\\xb2\\x2a\\x07\\xcd\\x74\\xc0\\x6a\\x3c\\xb6\\x01\\x24\\x4c\\xf3\\xcf\\x35\\xa3\\x5c\\x31\\x00\\xba\\x47\\xf3\\x13\\x72\\xa2\\xda\\x65\\xdc\\xff\\x0d\\x7a\\x80\\xa1\\x05\\x5d\\x8a\\xa9\\x92\\x12\\xe8\\x99\\xaa\\xd7\\xf0\\x2e\\x94\\x9e\\x6f\\xee\\x4d\\x3c\\x9c\\xef\\xa8\\x50\\x69\\xea\\xff\\x1f\\x6a\\xd0\\x6f\\xc3\\x00\\xc8\\x71\\xab\\x82\\xb2\\xbe\\xdb\\x93\\x4d\\x20\\x87\\x5c\\x2a\\x26\\x32\\x42\\xcd\\xb7\\xf9\\xbe\\x19\\x2a\\x87\\x10\\xb2\\x4c\\x7e\\xa9\\x8d\\x43\\xda\\xec\\x8b\\xaa\\x55\\x53\\xc6\\x78\\xa3\\x8f\\x0e\\x0a\\xdf\\x7d\\x3f\\xf2\\xdc\\xc7\\x99\\xa1\\xdb\\xad\\x6e\\xab\\x1c\\x3d\\x94\\x58\\xa9\\xdb\\x92\\x2f\\x02\\xe7\\x5c\\xfa\\xb9\\xd6\\x5c\\x73\\x36\\xda\\xe7\\x18\\x95\\xd5\\xbb\\x15\\xca\\xc2\\x03\\xf2\\xb3\\x8b\\x99\\x96\\xc4\\x10\\xf8\\x65\\x5a\\xd2\\x2d\\x3c\\x09\\x1c\\x20\\xb7\\xf9\\x26\\xd4\\x5e\\x78\\x01\\x28\\xf1\\x97\\x47\\x46\\x2a\\xbc\\x5c\\x58\\x93\\x2f\\xbb\\x9e\\x0b\\xc6\\x2d\\x53\\x86\\x88\\x02\\xf1\\xb0\\x83\\xf1\\x83\\xb8\\xa1\\xf9\\x43\\x49\\x86\\xd5\\xcf\\x97\\xc0\\x4e\\x2f\\x3e\\x14\\x57\\x30\\xcb\\xa9\\x87\\x79\\xc7\\xfe\\xd0\\xca\\xb1\\xc0\\x5d\\x5e\\x46\\x53\\xc6\\xc3\\xf6\\x73\\x62\\x60\\xbc\\x78\\xee\\x43\\x72\\x86\\x2f\\xfe\\x9e\\x90\\x37\\x1d\\x76\\x2c\\x74\\x32\\x78\\x1f\\x35\\xce\\xd8\\x84\\xa4\\xba\\xca\\x05\\x65\\x3e\\xf2\\x5f\\x25\\xa6\\xf3\\xd5\\x62\\x83\\x08\"},\n{{0x8c,0x34,0xb9,0x05,0x44,0x0b,0x61,0x91,0x1d,0x1d,0x81,0x37,0xc5,0x3d,0x46,0xa1,0xa7,0x6d,0x46,0x09,0xaf,0x97,0x3e,0x18,0xeb,0x4c,0x57,0x09,0x29,0x56,0x27,0xbb,},{0xb6,0x9a,0x8b,0x2f,0xdf,0x5c,0x20,0xe7,0x34,0xc2,0xff,0xb2,0x94,0xbc,0x8a,0xe1,0x01,0x1d,0x66,0x4f,0x11,0xaf,0xe7,0xfb,0xc4,0x71,0x92,0x5c,0xf7,0x2f,0xa9,0x9d,},{0x3e,0x0b,0x72,0x07,0x3d,0xc9,0x37,0x5e,0xed,0xcc,0xa6,0xc4,0xfc,0x1c,0xd3,0x15,0x93,0x8a,0x05,0x0c,0x92,0x71,0x6b,0xd2,0x28,0x4f,0x46,0x29,0xa9,0x62,0xbe,0xec,0x0b,0x7d,0x7c,0xf1,0x6a,0xb9,0x23,0xd5,0x8f,0x5b,0x90,0xd3,0x90,0x1a,0x8e,0x5c,0x75,0xc8,0xf1,0x7d,0xab,0x99,0x98,0xe0,0x07,0xd8,0xc4,0x95,0x11,0x97,0x3d,0x0e,},\"\\x30\\xb5\\x7a\\x38\\x9b\\x48\\xa0\\xbe\\xb1\\xa4\\x84\\x32\\xbf\\xf6\\xb3\\x14\\xbd\\xed\\x79\\xc4\\xa1\\x76\\x3a\\x5a\\xcb\\x57\\xce\\xa1\\xbf\\xb4\\xc6\\xd0\\x16\\xcf\\x09\\x0f\\x5b\\xd0\\x5b\\xbd\\x11\\x4e\\x33\\xae\\x7c\\x17\\x78\\x2d\\xfa\\x26\\x4f\\x46\\xc4\\x5f\\x8c\\x59\\x9c\\x60\\x30\\x16\\xfe\\x9f\\xf0\\x5b\\x6b\\x5a\\x99\\xe9\\x2f\\xe7\\x13\\xa4\\xcd\\x5c\\x41\\xb2\\x92\\xed\\x2b\\xb2\\xe9\\xcf\\x33\\xa4\\x40\\x54\\x2e\\x82\\x1e\\xc8\\x2c\\xbf\\x66\\x5c\\x3f\\x02\\xe3\\xdc\\x33\\x7d\\x7f\\xdb\\x58\\xe3\\x1b\\x27\\xcb\\x29\\x54\\x54\\x14\\x68\\x81\\x46\\x98\\x51\\x0d\\xf1\\x8c\\x85\\xc8\\x1f\\xad\\x12\\xdb\\x11\\xec\\x6b\\x96\\x6f\\x49\\x30\\xda\\x56\\x46\\xb9\\x91\\xdb\\x97\\x44\\x50\\x97\\xda\\x30\\xda\\xb6\\x1c\\xda\\x53\\xa4\\x10\\x83\\xcb\\x96\\xad\\xd1\\x9d\\xe6\\xc5\\xee\\xc3\\x23\\xbc\\xa9\\xd3\\x53\\x0e\\x38\\xc0\\x0b\\x35\\xaf\\x73\\x60\\x07\\x76\\x01\\xbe\\x6a\\xc9\\x7f\\x30\\x30\\xf9\\x30\\xa2\\x7b\\x90\\xfe\\x8b\\x69\\x11\\xba\\xe3\\x89\\x06\\x5a\\xdc\\x15\\xe1\\x88\\x23\\x00\\xe2\\xa0\\x03\\x27\\x4d\\x23\\x18\\x2d\\x5e\\xfd\\x5b\\xa4\\xb9\\x13\\x0c\\x07\\xbd\\x5c\\x65\\xfe\\xcb\\x8b\\x5c\\xb7\\xeb\\x38\\x83\\x6b\\x31\\x8b\\xef\\xdf\\xd7\\x7d\\xe4\\xd6\\xca\\x01\\x81\\xf7\\x7a\\xe5\\x74\\x08\\x91\\x68\\x32\\x25\\xf5\\x49\\xdd\\x84\\x26\\x14\\x5c\\x97\\xc5\\x81\\x8c\\x31\\x9f\\x7a\\xb2\\xd8\\x68\\xe1\\xa4\\x1c\\xea\\xb6\\x4c\\x08\\x51\\x16\\x06\\x98\\x97\\xbf\\x2c\\xa3\\x66\\x76\\x52\\x40\\x61\\x55\\xed\\x06\\x46\\x43\\x1b\\x6d\\xe1\\xcc\\xc0\\x3b\\x42\\x79\\xae\\x4d\\x32\\x66\\x79\\x26\\x5d\\xce\\x82\\x04\\x8e\\x72\\x98\\xe1\\xf8\\x7f\\xce\\xc0\\x76\\x8a\\xc0\\xf5\\xd8\\xff\\x84\\xf7\\x21\\x0b\\xe5\\x4d\\x41\\x1a\\xf8\\xed\\xea\\x72\\x17\\xf4\\xe5\\x94\\x13\\x12\\x1e\\x14\\x8c\\x60\\xda\"},\n{{0x77,0xa8,0x3e,0x18,0xc9,0xf0,0x00,0xee,0xff,0x7d,0xee,0xac,0x95,0x9e,0xcb,0xa2,0x20,0x6c,0x0a,0xa3,0x9d,0x2f,0x0e,0x2a,0xed,0x57,0x29,0x48,0x2a,0x7a,0x02,0x29,},{0x62,0xb1,0xb3,0x16,0x13,0x55,0x96,0xbf,0xbc,0xa6,0x03,0x7e,0xd8,0x47,0xc6,0x1f,0xb7,0xf0,0x9f,0xa3,0x6c,0xe9,0x0a,0xbb,0x77,0x89,0xb8,0x6f,0x76,0x8b,0x59,0xdd,},{0x1e,0xaa,0xd8,0x42,0x0a,0xc1,0x2c,0x99,0xac,0x1f,0xf4,0x47,0x66,0x78,0xe3,0xcb,0xbe,0x94,0xda,0x6a,0x79,0x7f,0x17,0x46,0x64,0xd5,0xee,0x0f,0x64,0x14,0x33,0xfb,0x1e,0x7c,0xb2,0xf5,0x61,0x3e,0x10,0x80,0x5d,0xf8,0x65,0x4c,0xd8,0xe0,0xd4,0x5d,0x96,0x23,0x09,0x32,0xbc,0x7f,0x20,0xb0,0x4e,0xae,0x83,0x64,0x35,0x13,0x43,0x09,},\"\\xf3\\xd5\\xfa\\x2a\\xca\\xef\\xd8\\x58\\xf1\\xdf\\x26\\xe0\\x30\\x59\\xcd\\xcb\\xc2\\x46\\x8a\\xd7\\x4a\\xfc\\x99\\x3d\\x0d\\xb9\\xc4\\xcd\\xe4\\x11\\x3f\\x8d\\x55\\xc7\\xda\\x71\\xd3\\x8b\\xa0\\x65\\x20\\x53\\x1c\\x61\\xfd\\xdb\\x5f\\x33\\xd5\\xf0\\x35\\x3b\\xe2\\x37\\x6e\\x58\\x07\\x11\\xbe\\x45\\xc0\\xa3\\x0b\\x1f\\xa0\\x1b\\x55\\xe2\\x28\\xc6\\xfa\\x35\\xe3\\xf9\\x5b\\x67\\x90\\x9f\\xc7\\xdf\\x3f\\xd4\\x64\\xd9\\x3d\\x66\\x1a\\x92\\x6f\\x9d\\x11\\xf7\\x55\\x0c\\x17\\xfb\\xcc\\x34\\x96\\x52\\x6e\\x8f\\x10\\xe0\\xc8\\x91\\x66\\x77\\xb2\\xbe\\x5b\\x31\\x9b\\x68\\x8f\\x21\\xe8\\x1a\\xaa\\x94\\x82\\xe5\\xc9\\x3e\\x64\\xce\\x8c\\x43\\x7b\\x9c\\x1e\\x14\\xfe\\xfe\\xd7\\x0a\\x3f\\xee\\x56\\x88\\x11\\xdc\\x31\\xca\\xda\\xb3\\xd5\\xb2\\x20\\x25\\x44\\x65\\x33\\x6d\\xc4\\xd9\\x7a\\x3b\\xd0\\x96\\xb5\\xe0\\x65\\xe0\\xcf\\xbe\\x82\\x84\\x9e\\x2c\\x19\\x05\\xac\\xa4\\x86\\x53\\x3f\\x0d\\xa7\\xa6\\x1f\\x1e\\x9a\\x55\\xb8\\xe2\\xa8\\x32\\x62\\xde\\xeb\\x59\\xf2\\xb1\\x3d\\x3a\\x8a\\xef\\x57\\x00\\x84\\x5b\\x83\\xb2\\x5a\\xe2\\x18\\x3c\\x0d\\xda\\xc0\\xce\\x42\\xf8\\xd2\\x56\\x74\\xcb\\x0d\\x0d\\x22\\x0a\\x6d\\xe7\\xc1\\x85\\x8b\\xb0\\x7d\\x59\\xa3\\x37\\x23\\x44\\xd9\\x44\\x60\\x2a\\xa4\\x51\\xd2\\xb9\\x37\\xdb\\x0f\\xe6\\xfe\\xca\\x0b\\xeb\\xa8\\x17\\x21\\xfc\\x36\\x1e\\xa7\\x50\\x9e\\x2b\\x6d\\x39\\x7e\\x1c\\x19\\x1b\\x56\\xf5\\x4a\\xb4\\x36\\xd0\\xd2\\x7a\\xb4\\xc0\\x61\\xbd\\x66\\x1a\\xd1\\xa4\\x45\\x23\\x87\\xe8\\x73\\x57\\x54\\xd0\\x7f\\xa7\\xef\\x4d\\x45\\x48\\xb1\\x72\\x58\\x24\\x25\\xb2\\x99\\x04\\x6e\\x63\\x01\\xb5\\xba\\x6b\\x91\\x44\\x18\\xf1\\x49\\xcf\\x72\\x2e\\x10\\xbd\\xe2\\xe0\\xd4\\x17\\x00\\xf1\\x2c\\x84\\x29\\xfc\\x89\\x7b\\x78\\x19\\xda\\x92\\x29\\x22\\x40\\xcd\\x45\\x56\\x54\\x58\\xc9\\xa7\\xb2\\x9c\\x12\"},\n{{0x73,0xb0,0x33,0x73,0xef,0x1f,0xd8,0x49,0x00,0x5e,0xcd,0x62,0x70,0xdd,0x99,0x06,0xf1,0x9f,0x44,0x39,0xe4,0x03,0x76,0xcd,0xbc,0x52,0x09,0x02,0xbc,0x97,0x68,0x12,},{0x66,0x37,0x19,0xe0,0x8b,0xa3,0xba,0x16,0x66,0xf6,0x06,0x9a,0x3f,0x54,0x99,0x18,0x66,0xb1,0x8c,0xc6,0xbe,0x41,0x99,0x1b,0x02,0xeb,0x30,0x26,0xff,0x9e,0x15,0x5f,},{0xa4,0x0a,0xbe,0x98,0xfc,0x69,0xda,0x8a,0x1f,0xf9,0xff,0x5c,0x2c,0xca,0x93,0x63,0x2e,0x97,0x59,0x80,0xee,0x8b,0x82,0xc3,0xc3,0x76,0x02,0x2d,0x65,0x24,0xab,0x73,0x6d,0x01,0xb0,0x72,0xf2,0xb6,0x81,0xb5,0xf1,0xcd,0x3e,0xa0,0x67,0x01,0x2e,0xd6,0xd0,0x74,0xe9,0x49,0xc4,0x23,0x27,0xa3,0x66,0xca,0xa9,0xe4,0x75,0x0a,0x3c,0x08,},\"\\xd5\\xc2\\xde\\xab\\xa7\\x95\\xc3\\x0a\\xba\\x32\\x1b\\xc7\\xde\\x69\\x96\\xf0\\xd9\\x0e\\x4d\\x05\\xc7\\x47\\xfb\\x4d\\xae\\x8f\\x34\\x51\\x89\\x5d\\xef\\x6e\\x16\\xe7\\x2f\\x38\\xea\\xce\\x75\\x6f\\x36\\x63\\x5f\\x8f\\xb0\\xb7\\x2a\\x3a\\x0c\\x1f\\x54\\x66\\x38\\x17\\xa9\\x4d\\x4f\\xd3\\x46\\xf8\\x35\\xab\\x0e\\x65\\x7f\\x00\\x1a\\x6f\\x2c\\xec\\xb8\\x6d\\x08\\x25\\xbd\\x02\\x63\\x92\\x54\\xf7\\xf7\\xf3\\x8c\\xa9\\x9d\\xbb\\x86\\xc6\\x4a\\x63\\x3f\\x73\\xba\\xf9\\x33\\xaa\\xe3\\x56\\x32\\x81\\xf4\\x00\\x5e\\x2d\\x0e\\x7c\\xec\\x9f\\xbd\\xe8\\xe5\\x88\\xa9\\x57\\xe2\\x11\\x06\\x8b\\xe6\\x5b\\x3d\\x3d\\x35\\xbf\\x4e\\x8d\\x5b\\xb3\\x47\\x83\\x33\\xdf\\x9c\\xed\\x9b\\x2a\\xba\\xf4\\x86\\x97\\x99\\x4a\\x14\\x5e\\x93\\x21\\x49\\x9f\\xc5\\xee\\x56\\x0f\\x4f\\xbb\\x68\\x49\\xe1\\xae\\x8e\\xb3\\xd1\\xde\\x00\\x83\\xa2\\x1a\\x03\\xf6\\xa6\\xb2\\x81\\x76\\xf0\\x13\\x0d\\x38\\x95\\xe5\\x0e\\x75\\xe3\\xd7\\xd0\\x94\\x7a\\x7b\\xc2\\xc5\\xb9\\xff\\x69\\x89\\x5d\\x27\\x79\\x14\\x42\\xba\\x8d\\x0f\\x21\\x80\\x71\\x2b\\x56\\x7f\\x71\\x2e\\xa9\\x12\\xf3\\xb0\\xd9\\x2c\\x19\\x34\\x2e\\x01\\x06\\xff\\x1d\\x87\\xb4\\x6a\\xd3\\x3a\\xf3\\x00\\xb9\\x08\\x55\\xba\\x97\\x69\\xd3\\x66\\xe7\\x94\\x25\\xd9\\x8e\\x4d\\xe1\\x99\\x05\\xa0\\x45\\x77\\x70\\x7c\\xbe\\x62\\x5b\\x84\\x69\\x17\\x81\\xcd\\x26\\xbf\\x62\\x26\\x0b\\x4a\\x8b\\xd6\\x05\\xf7\\x7a\\xf6\\xf9\\x70\\xe1\\xb3\\xa1\\x12\\xe8\\x91\\x83\\x44\\xbd\\x0d\\x8d\\x2e\\x41\\xdf\\xd2\\xce\\x98\\x95\\xb0\\x24\\x6e\\x50\\x88\\x7a\\xa3\\xa5\\x77\\xff\\x73\\xbe\\x4b\\x6a\\xe6\\x0f\\xeb\\x0c\\xa3\\x6f\\x6a\\x5f\\x81\\x71\\xed\\x20\\x9e\\x5c\\x56\\x65\\x29\\xc0\\x94\\x0d\\x9b\\x4b\\xd7\\x44\\xcc\\xee\\x56\\xe5\\x4a\\x9a\\x0c\\x6e\\x4d\\xa5\\x20\\xdd\\x31\\x5c\\x28\\x72\\xb0\\x2d\\xb5\\x63\\x70\\x3e\"},\n{{0xea,0xb1,0x79,0xe4,0x1e,0xd5,0xc8,0x89,0xff,0xe6,0xaa,0xbd,0xc0,0x54,0xfa,0xf1,0x30,0x7c,0x39,0x5e,0x46,0xe3,0x13,0xe1,0x7a,0x14,0xfe,0x01,0x02,0x3f,0xfa,0x30,},{0x86,0xf3,0x47,0x46,0xd3,0xf7,0xa0,0x1d,0xdb,0xe3,0x22,0xf1,0xac,0xa5,0x6d,0x22,0x85,0x6d,0x38,0x73,0x3a,0x3a,0x69,0x00,0xbb,0x08,0xe7,0x76,0x45,0x0e,0xc8,0x03,},{0x14,0x3c,0xb2,0x80,0x27,0xc2,0xf8,0x2e,0x37,0x5e,0x5f,0x34,0x0e,0x7f,0xe6,0xe6,0x0c,0xe7,0xbd,0x51,0x00,0x0b,0x49,0xc7,0x41,0x68,0xaf,0x85,0xe2,0x6e,0xd2,0xed,0x63,0x0e,0xd2,0x67,0x20,0x90,0x16,0x4c,0xc5,0x4b,0x05,0x2d,0xa6,0x94,0xeb,0xdd,0x21,0xa2,0x1b,0x30,0x53,0xf4,0xdc,0xfd,0x78,0x95,0xea,0x5f,0x6c,0x8a,0xa8,0x0d,},\"\\x97\\x10\\x95\\xce\\xbe\\x50\\x31\\x53\\x02\\x24\\x38\\x7c\\x5c\\x31\\x96\\x6e\\x38\\x9b\\x85\\x66\\x39\\x00\\x54\\xcf\\x45\\x26\\x4b\\x44\\xe1\\x89\\x64\\xb7\\xbe\\x52\\xc3\\x3c\\x4f\\xfb\\x25\\x9a\\xf1\\x62\\x83\\x43\\x8f\\xa1\\x5d\\xd6\\x6b\\xc7\\x79\\x1b\\x75\\x33\\xef\\x10\\xcb\\x0b\\xea\\xb5\\x24\\xa6\\x43\\x76\\x26\\xf4\\xcc\\x74\\x51\\x28\\x51\\xad\\xcc\\x2f\\xb1\\x29\\x05\\x5a\\x48\\x2c\\x61\\x10\\x73\\x83\\xfb\\x7c\\x52\\x41\\x83\\x1d\\x55\\x51\\x63\\x4e\\xef\\x0d\\xc0\\xb8\\xf9\\x05\\x3a\\x00\\x97\\x1a\\xa8\\xfa\\x1a\\xe0\\x89\\x8e\\x4b\\x48\\x1b\\x67\\x07\\xe9\\x7c\\x0f\\x94\\x20\\x40\\xb3\\x39\\xd9\\x2f\\xc1\\x7b\\xba\\xde\\x74\\x67\\x5a\\xf2\\x43\\xd8\\xb2\\xda\\xfb\\x15\\xb1\\xdb\\x55\\xd1\\x24\\x15\\xb8\\x5f\\x30\\x37\\x29\\x19\\x30\\xab\\x61\\x60\\x0b\\xa3\\x43\\x1f\\x8e\\xb4\\x25\\xbe\\x44\\x91\\x61\\x47\\x28\\xaf\\x10\\x1e\\x81\\xc0\\x91\\xf3\\x48\\xbc\\x5f\\xfd\\x1b\\xde\\x6a\\xe6\\xca\\xd5\\xc1\\x5b\\x3a\\xa7\\x35\\x80\\x78\\xcc\\x4e\\xff\\xb5\\x4a\\x86\\xe7\\xf0\\xe0\\xc5\\x5e\\x4c\\xfe\\x0a\\x54\\x60\\x5e\\xd4\\x43\\xfd\\xf2\\xaa\\xba\\x01\\x65\\x85\\xda\\x61\\x7e\\x77\\x34\\x1d\\x52\\x88\\x9d\\x75\\xdd\\x54\\x0d\\x39\\xfe\\x8b\\x79\\x93\\xed\\x70\\x5c\\xfd\\xde\\xa0\\xcb\\x0d\\x5a\\x73\\x1d\\x6b\\xfc\\xdb\\x81\\x6a\\xfa\\xff\\x47\\xe9\\x63\\xee\\xde\\xbd\\xf2\\x41\\xaf\\x55\\x93\\x35\\x3d\\x6d\\x40\\x1a\\x34\\xf0\\x29\\xa8\\xcd\\xeb\\x19\\x04\\xcc\\x2c\\xaa\\x4f\\x96\\x35\\xcc\\x2b\\xa6\\xb7\\xb1\\xa2\\x9d\\xa6\\x25\\xff\\xc3\\x83\\xbe\\x2f\\x5a\\x8f\\x1f\\xa4\\xf3\\x9b\\x2d\\x4b\\x4f\\x4c\\x2d\\x88\\x38\\xce\\x25\\x8a\\x04\\xd4\\xa1\\x20\\x49\\x3f\\xdf\\x07\\xf6\\x8c\\x0f\\xfd\\x1c\\x16\\xb7\\x68\\xa3\\x5c\\x55\\xfe\\xa2\\xca\\xc6\\x96\\xb5\\xc2\\x0e\\xfc\\x10\\x86\\x5c\\xde\\x8a\\x64\\x62\\x7d\\xcd\"},\n{{0xfb,0xf1,0x46,0xeb,0xd5,0x10,0x75,0x57,0x0e,0xc5,0x1a,0xc4,0x10,0xae,0x9f,0x39,0x1d,0xb7,0x5b,0x61,0x0a,0xda,0x63,0x62,0xb4,0xdb,0xd9,0x49,0x65,0x6c,0xfb,0x66,},{0xbe,0x7c,0x2f,0x5b,0x21,0xd7,0x46,0xc8,0xea,0x32,0x45,0xce,0x6f,0x26,0x8e,0x9d,0xa7,0x4e,0x00,0xfa,0x85,0xc9,0xc4,0x75,0x26,0x0c,0x68,0xfa,0x1a,0xf6,0x36,0x1f,},{0x67,0x68,0x00,0x6f,0xe0,0xf2,0x01,0xb2,0x17,0xdd,0x10,0xeb,0x05,0xd4,0xb8,0x2a,0xdc,0xfe,0xb2,0xec,0xfc,0x83,0x73,0xc3,0x30,0x8f,0x41,0x50,0x39,0x48,0x11,0xeb,0x60,0x49,0x18,0x81,0xa2,0xe5,0x3d,0x12,0x89,0xd9,0x64,0x78,0xe1,0x8a,0x64,0xc3,0x4b,0x2a,0x19,0x83,0x2c,0xdc,0xcf,0xd9,0x6a,0x2e,0x4a,0x0c,0x46,0x9f,0xdc,0x0b,},\"\\xcd\\x7a\\xd4\\xf1\\x7f\\xcf\\xf7\\x3a\\xcc\\x40\\x2d\\xc1\\x02\\xd0\\x90\\x79\\xb2\\x9a\\xaf\\x2a\\x0f\\x4b\\x27\\xcf\\x6b\\xee\\xb1\\xe2\\xb2\\x3d\\x19\\xab\\x47\\xde\\xb3\\xae\\x1b\\xec\\xd6\\x88\\x61\\xea\\x27\\x9c\\x46\\x69\\x17\\x38\\xf4\\xff\\xf4\\x7c\\x43\\x04\\x7c\\x4f\\x8b\\x56\\xb6\\xbb\\xcc\\x3f\\xde\\x07\\x23\\xd4\\x41\\x20\\xdc\\xd3\\x07\\xa6\\x31\\x0d\\xc4\\xf3\\x66\\xb8\\xf3\\xcd\\x52\\xdb\\x19\\xb8\\x26\\x6a\\x48\\x7f\\x78\\x72\\x39\\x1c\\x45\\xfe\\x0d\\x32\\x48\\xa7\\xab\\xf2\\xc2\\x00\\x22\\xd3\\x76\\x95\\x47\\xf6\\x83\\x06\\x7d\\xcc\\x36\\x3c\\xd2\\x2f\\xd7\\xcd\\xa3\\xca\\xdc\\x15\\x80\\x40\\x56\\xf0\\xe2\\xaa\\x2b\\x79\\x50\\x08\\xc5\\x98\\xbe\\x7a\\x96\\x18\\x05\\xe6\\xdf\\x29\\x1b\\xa3\\x04\\x1c\\x47\\xff\\x56\\x40\\x27\\x5f\\x46\\xe6\\xae\\x82\\x09\\x2d\\x21\\xab\\xcb\\xcf\\xba\\x11\\xe7\\x30\\x21\\x60\\x08\\x82\\x2d\\xe3\\xce\\x46\\x24\\x00\\x59\\x6d\\xa7\\x9f\\x7a\\xe5\\xd1\\xdf\\x83\\x89\\x11\\x2a\\xd9\\x88\\x68\\xfa\\x94\\xfb\\x05\\x46\\xbf\\xe6\\xa6\\x7a\\xa8\\xd2\\x8c\\x4d\\x32\\x07\\x2d\\x2e\\xad\\xd6\\x25\\x62\\x55\\xf1\\x8c\\x23\\x82\\xe6\\x62\\xdf\\xa9\\x22\\xa6\\x80\\xe0\\x6a\\x43\\x62\\x2c\\x48\\x71\\xd2\\x7d\\x18\\x07\\xf7\\xb2\\x70\\x30\\x70\\xc8\\x3d\\xb8\\xdd\\x92\\x9c\\x06\\x03\\x8b\\x21\\x83\\xcb\\x8e\\x2b\\x9e\\xc4\\xc7\\x78\\xd7\\xec\\xf9\\xe9\\xff\\xac\\x77\\xfa\\x77\\x37\\xb0\\x55\\xfe\\xac\\x2e\\x79\\x82\\xae\\xee\\xc0\\xb7\\x2f\\x1b\\xbc\\xa2\\x42\\x4e\\x1a\\x84\\x4b\\xba\\xc7\\x9c\\xb2\\xe7\\x40\\x0f\\x81\\xdc\\x44\\x9d\\x05\\x60\\xb5\\x21\\xa7\\xc1\\x6b\\xb4\\x16\\x7e\\x66\\x96\\x58\\x60\\x58\\xa9\\xb8\\xed\\x2e\\x51\\x16\\x69\\x0b\\x77\\xf2\\xa1\\x7e\\x5c\\x0b\\x16\\xa8\\x3d\\xcb\\xd2\\xe2\\x45\\x52\\x29\\x3e\\x25\\x8b\\x32\\xba\\x7f\\x84\\x49\\x44\\x37\\x93\\x42\\x69\\x86\\x27\"},\n{{0xdf,0xf0,0xeb,0x6b,0x42,0x6d,0xea,0x2f,0xd3,0x3c,0x1d,0x3f,0xc2,0x4d,0xf9,0xb3,0x1b,0x48,0x6f,0xac,0xb7,0xed,0xb8,0x50,0x29,0x54,0xa3,0xe8,0xda,0x99,0xd9,0xfd,},{0xc2,0x45,0x08,0x5e,0xce,0x69,0xfb,0x9a,0xa5,0x60,0xd0,0xc2,0x7f,0xdb,0x63,0x4f,0x7a,0x84,0x0d,0x41,0xd8,0x46,0x36,0x60,0xfb,0xe8,0x24,0x83,0xb0,0xf3,0xcc,0x3a,},{0x6b,0x48,0xb1,0x0f,0x54,0x5d,0xdb,0x7a,0x89,0xcd,0x58,0x29,0xf4,0xe5,0xb2,0x01,0x46,0xcf,0x6b,0xc9,0x6e,0x55,0x0d,0x06,0xf6,0x5d,0xe8,0xbd,0xae,0x7c,0xcd,0xde,0xd2,0x6c,0xd6,0x30,0xf8,0x6c,0x92,0x66,0xbc,0xcf,0x88,0xe9,0x24,0x03,0x3e,0x04,0xf8,0x3a,0x54,0xf8,0x29,0x0d,0x7f,0x73,0x4c,0xf8,0x67,0x3c,0xca,0x8f,0x97,0x03,},\"\\xe7\\xc9\\xe3\\x13\\xd8\\x61\\x60\\xf4\\xc7\\x4a\\xa0\\xae\\x07\\x36\\x9e\\xe2\\x2b\\x27\\xf8\\x1b\\x3f\\x69\\x09\\x7a\\xff\\xae\\x28\\xda\\xe4\\x84\\x83\\xfb\\x52\\xa5\\xc0\\x62\\x30\\x6b\\x59\\x61\\x0f\\x5c\\xdb\\xff\\x63\\x32\\xb1\\x96\\x0c\\xd6\\xf2\\xb8\\xf7\\xb4\\x15\\x78\\xc2\\x0f\\x0b\\xc9\\x63\\x7a\\x0f\\xdf\\xc7\\x39\\xd6\\x1f\\x69\\x9a\\x57\\x3f\\x1c\\x1a\\x0b\\x49\\x29\\x45\\x06\\xcf\\x44\\x87\\x96\\x5e\\x5b\\xb0\\x7b\\xbf\\x81\\x80\\x3c\\xb3\\xd5\\xcb\\x38\\x29\\xc6\\x6c\\x4b\\xee\\x7f\\xc8\\x00\\xed\\xe2\\x16\\x15\\x09\\x34\\xd2\\x77\\xde\\xa5\\x0e\\xdb\\x09\\x7b\\x99\\x2f\\x11\\xbb\\x66\\x9f\\xdf\\x14\\x0b\\xf6\\xae\\x9f\\xec\\x46\\xc3\\xea\\x32\\xf8\\x88\\xfd\\xe9\\xd1\\x54\\xea\\x84\\xf0\\x1c\\x51\\x26\\x5a\\x7d\\x3f\\xef\\x6e\\xef\\xc1\\xcc\\xdb\\xff\\xd1\\xe2\\xc8\\x97\\xf0\\x55\\x46\\xa3\\xb1\\xca\\x11\\xd9\\x51\\x7c\\xd6\\x67\\xc6\\x60\\xec\\x39\\x60\\xf7\\xa8\\xe5\\xe8\\x02\\x02\\xa7\\x8d\\x3a\\x38\\x8b\\x92\\xf5\\xc1\\xde\\xe1\\x4a\\xe6\\xac\\xf8\\xe1\\x7c\\x84\\x1c\\x95\\x57\\xc3\\x5a\\x2e\\xec\\xed\\x6e\\x6a\\xf6\\x37\\x21\\x48\\xe4\\x83\\xcc\\xd0\\x6c\\x8f\\xe3\\x44\\x92\\x4e\\x10\\x19\\xfb\\x91\\xcb\\xf7\\x94\\x1b\\x9a\\x17\\x6a\\x07\\x34\\x15\\x86\\x72\\x10\\x67\\x04\\x10\\xc5\\xdb\\xd0\\xac\\x4a\\x50\\xe6\\xc0\\xa5\\x09\\xdd\\xfd\\xc5\\x55\\xf6\\x0d\\x69\\x6d\\x41\\xc7\\x7d\\xb8\\xe6\\xc8\\x4d\\x51\\x81\\xf8\\x72\\x75\\x5e\\x64\\xa7\\x21\\xb0\\x61\\xfc\\xd6\\x8c\\x46\\x3d\\xb4\\xd3\\x2c\\x9e\\x01\\xea\\x50\\x12\\x67\\xde\\x22\\x87\\x9d\\x7f\\xc1\\x2c\\x8c\\xa0\\x37\\x9e\\xdb\\x45\\xab\\xaa\\x6e\\x64\\xdd\\xa2\\xaf\\x6d\\x40\\xcc\\xf2\\x4f\\xbe\\xba\\xd7\\xb5\\xa8\\xd3\\xe5\\x20\\x07\\x94\\x5e\\xcd\\x3d\\xdc\\x1e\\x3e\\xfe\\xb5\\x22\\x58\\x1a\\xc8\\x0e\\x98\\xc8\\x63\\xba\\x0c\\x59\\x0a\\x3e\\xd9\\x5c\\xd1\"},\n{{0x9f,0x32,0x95,0x8c,0x76,0x79,0xb9,0x0f,0xd5,0x03,0x60,0x56,0xa7,0x5e,0xc2,0xeb,0x2f,0x56,0xec,0x1e,0xff,0xc7,0xc0,0x12,0x46,0x1d,0xc8,0x9a,0x3a,0x16,0x74,0x20,},{0x1d,0x72,0x69,0xdc,0xb6,0xd1,0xf5,0x84,0xe6,0x62,0xd4,0xce,0x25,0x1d,0xe0,0xab,0xa2,0x90,0xef,0x78,0xb9,0x7d,0x44,0x8a,0xfb,0x1e,0x53,0x33,0xf1,0x97,0x6d,0x26,},{0x98,0x81,0xa5,0x76,0x3b,0xdb,0x25,0x9a,0x3f,0xef,0xbb,0xa3,0xd9,0x57,0x16,0x2d,0x6c,0x70,0xb8,0x04,0xfa,0x94,0xab,0x61,0x34,0x06,0xa6,0xec,0x42,0x50,0x5b,0x87,0x89,0x46,0x5c,0xa1,0xa9,0xa3,0x3e,0x18,0x95,0x98,0x88,0x42,0x27,0x0c,0x55,0xe5,0xbd,0xd5,0x48,0x3f,0x6b,0x17,0xb3,0x17,0x81,0xb5,0x93,0x50,0x7a,0x6c,0x18,0x08,},\"\\xa5\\x6b\\xa8\\x6c\\x71\\x36\\x05\\x04\\x08\\x7e\\x74\\x5c\\x41\\x62\\x70\\x92\\xad\\x6b\\x49\\xa7\\x1e\\x9d\\xaa\\x56\\x40\\xe1\\x04\\x4b\\xf0\\x4d\\x4f\\x07\\x1a\\xd7\\x28\\x77\\x9e\\x95\\xd1\\xe2\\x46\\x05\\x84\\xe6\\xf0\\x77\\x35\\x45\\xda\\x82\\xd4\\x81\\x4c\\x91\\x89\\xa1\\x20\\xf1\\x2f\\x3e\\x38\\x19\\x81\\x3e\\x5b\\x24\\x0d\\x0f\\x26\\x43\\x6f\\x70\\xee\\x35\\x3b\\x4d\\x20\\xce\\xa5\\x4a\\x14\\x60\\xb5\\xb8\\xf1\\x00\\x8d\\x6f\\x95\\xf3\\xaa\\x2d\\x8f\\x1e\\x90\\x8f\\xce\\xd5\\x0d\\x62\\x4e\\x3a\\x09\\x69\\x38\\xb9\\x35\\x38\\x54\\xb9\\x6d\\xa4\\x63\\xa2\\x79\\x8a\\x5a\\x31\\x2e\\xc7\\x90\\x84\\x2c\\x10\\xc4\\x46\\xe3\\x35\\x0c\\x76\\x4b\\xf5\\xc9\\x72\\x59\\x3b\\x99\\x87\\xbf\\x23\\x25\\x6d\\xaa\\x88\\x94\\xd4\\x7f\\x22\\xe8\\x5b\\x97\\x60\\x7e\\x66\\xfc\\x08\\xa1\\x2c\\x78\\x9c\\x47\\x46\\x08\\x03\\x68\\xd3\\x21\\xbb\\x90\\x15\\xa1\\x15\\x5b\\x65\\x52\\x3a\\xd8\\xe9\\x9b\\xb9\\x89\\xb4\\x4e\\xac\\x75\\x6b\\x07\\x34\\xac\\xd7\\xc6\\x35\\x7c\\x70\\xb5\\x97\\x43\\x24\\x6d\\x16\\x52\\xd9\\x1b\\x0f\\x98\\x96\\x96\\x51\\x41\\x34\\x5b\\x99\\x45\\xcf\\x34\\x98\\x04\\x52\\xf3\\x50\\x29\\x74\\xed\\xb7\\x6b\\x9c\\x78\\x5f\\xb0\\xf4\\x39\\x52\\x66\\xb0\\x55\\xf3\\xb5\\xdb\\x8a\\xab\\x68\\xe9\\xd7\\x10\\x2a\\x1c\\xd9\\xee\\x3d\\x14\\x25\\x04\\xf0\\xe8\\x8b\\x28\\x2e\\x60\\x3a\\x73\\x8e\\x05\\x1d\\x98\\xde\\x05\\xd1\\xfc\\xc6\\x5b\\x5f\\x7e\\x99\\xc4\\x11\\x1c\\xc0\\xae\\xc4\\x89\\xab\\xd0\\xec\\xad\\x31\\x1b\\xfc\\x13\\xe7\\xd1\\x65\\x3b\\x9c\\x31\\xe8\\x1c\\x99\\x80\\x37\\xf9\\x59\\xd5\\xcd\\x98\\x08\\x35\\xaa\\x0e\\x0b\\x09\\xbc\\xbe\\xd6\\x34\\x39\\x11\\x51\\xda\\x02\\xbc\\x01\\xa3\\x6c\\x9a\\x58\\x00\\xaf\\xb9\\x84\\x16\\x3a\\x7b\\xb8\\x15\\xed\\xbc\\x02\\x26\\xed\\xa0\\x59\\x5c\\x72\\x4c\\xa9\\xb3\\xf8\\xa7\\x11\\x78\\xf0\\xd2\\x0a\\x5a\"},\n{{0xf8,0x6d,0x6f,0x76,0x6f,0x88,0xb0,0x07,0x17,0xb7,0xd6,0x32,0x7e,0xb2,0x6c,0xf3,0xce,0xeb,0xa5,0x38,0x51,0x84,0x42,0x6f,0x9c,0xfd,0x82,0x95,0xe2,0x42,0x1f,0xf2,},{0xcb,0x1d,0x25,0x05,0x04,0x75,0x41,0x83,0x70,0x4d,0xbe,0x21,0xc3,0x23,0xd6,0x6f,0x9f,0x90,0x11,0x75,0x8f,0x6d,0x8d,0xab,0x6f,0x59,0x7b,0x19,0x96,0x62,0x14,0x5b,},{0xec,0x61,0xc0,0xb2,0x92,0x20,0x3a,0x8f,0x1d,0x87,0x23,0x5e,0xde,0x92,0xb7,0x47,0x23,0xc8,0xd2,0x34,0x08,0x42,0x37,0x73,0xae,0x50,0xb1,0xe9,0xbc,0x44,0x64,0xe0,0x3e,0x44,0x6d,0xa9,0xdc,0xe4,0xc3,0x9f,0x6d,0xd1,0x59,0xbe,0xa2,0x6c,0x00,0x9e,0xd0,0x01,0x20,0xbc,0x36,0xd4,0xa2,0x47,0xdc,0x0d,0x24,0xbc,0xef,0xcc,0x11,0x0c,},\"\\xda\\x84\\x23\\xa6\\xb7\\xa1\\x8f\\x20\\xaa\\x1f\\x90\\xed\\x23\\x31\\xb1\\x7b\\x24\\x06\\x7c\\x40\\x17\\x5b\\xc2\\x5d\\x81\\x09\\xe2\\x1d\\x87\\xac\\x00\\x52\\x8e\\xb3\\xb2\\xf6\\x6a\\x2b\\x52\\xdc\\x7e\\xf2\\xf8\\xce\\xcb\\x75\\xc7\\x60\\x99\\xcf\\xa2\\x3d\\xb8\\xda\\x89\\x70\\x43\\xba\\x1c\\xce\\x31\\xe2\\xdf\\xea\\x46\\x07\\x5f\\x5e\\x07\\x32\\x03\\xea\\xeb\\x3d\\x62\\xc8\\x4c\\x10\\x7b\\x6d\\xab\\x33\\xa1\\x4e\\xaf\\x14\\x9a\\xa6\\x18\\x50\\xc1\\x5f\\x5a\\x58\\xd8\\x8a\\x15\\xab\\xa9\\x19\\x6f\\x9e\\x49\\x5e\\x8d\\xbe\\xcb\\xcf\\x7e\\x84\\x44\\xf5\\xdd\\x72\\xa0\\x8a\\x09\\x9d\\x7f\\x62\\x09\\x99\\x0b\\x56\\x29\\x74\\xea\\x82\\x9e\\xf1\\x1d\\x29\\xa9\\x20\\xe3\\xa7\\x99\\xd0\\xd9\\x2c\\xb5\\x0d\\x50\\xf8\\x17\\x63\\x1a\\xb0\\x9d\\xe9\\x7c\\x31\\xe9\\xa0\\x5f\\x4d\\x78\\xd6\\x49\\xfc\\xd9\\x3a\\x83\\x75\\x20\\x78\\xab\\x3b\\xb0\\xe1\\x6c\\x56\\x4d\\x4f\\xb0\\x7c\\xa9\\x23\\xc0\\x37\\x4b\\xa5\\xbf\\x1e\\xea\\x7e\\x73\\x66\\x8e\\x13\\x50\\x31\\xfe\\xaf\\xcb\\xb4\\x7c\\xbc\\x2a\\xe3\\x0e\\xc1\\x6a\\x39\\xb9\\xc3\\x37\\xe0\\xa6\\x2e\\xec\\xdd\\x80\\xc0\\xb7\\xa0\\x49\\x24\\xac\\x39\\x72\\xda\\x4f\\xa9\\x29\\x9c\\x14\\xb5\\xa5\\x3d\\x37\\xb0\\x8b\\xf0\\x22\\x68\\xb3\\xba\\xc9\\xea\\x93\\x55\\x09\\x0e\\xeb\\x04\\xad\\x87\\xbe\\xe0\\x59\\x3b\\xa4\\xe4\\x44\\x3d\\xda\\x38\\xa9\\x7a\\xfb\\xf2\\xdb\\x99\\x52\\xdf\\x63\\xf1\\x78\\xf3\\xb4\\xc5\\x2b\\xcc\\x13\\x2b\\xe8\\xd9\\xe2\\x68\\x81\\x21\\x3a\\xbd\\xeb\\x7e\\x1c\\x44\\xc4\\x06\\x15\\x48\\x90\\x9f\\x05\\x20\\xf0\\xdd\\x75\\x20\\xfc\\x40\\x8e\\xa2\\x8c\\x2c\\xeb\\xc0\\xf5\\x30\\x63\\xa2\\xd3\\x05\\x70\\xe0\\x53\\x50\\xe5\\x2b\\x39\\x0d\\xd9\\xb6\\x76\\x62\\x98\\x48\\x47\\xbe\\x9a\\xd9\\xb4\\xcd\\x50\\xb0\\x69\\xff\\xd2\\x9d\\xd9\\xc6\\x2e\\xf1\\x47\\x01\\xf8\\xd0\\x12\\xa4\\xa7\\x0c\\x84\\x31\\xcc\"},\n{{0xa5,0xb3,0x4c,0xef,0xab,0x94,0x79,0xdf,0x83,0x89,0xd7,0xe6,0xf6,0xc1,0x46,0xaa,0x8a,0xff,0xb0,0xbe,0xc8,0x37,0xf7,0x8a,0xf6,0x46,0x24,0xa1,0x45,0xcc,0x34,0x4e,},{0x7b,0x0f,0x4f,0x24,0xd9,0x97,0x2b,0xc6,0xfe,0x83,0x82,0x6c,0x52,0x71,0x6a,0xd1,0xe0,0xd7,0xd1,0x9f,0x12,0x38,0x58,0xcb,0x3e,0x99,0xfa,0x63,0x6a,0xc9,0x63,0x1a,},{0x2f,0xbd,0x89,0x9d,0x72,0xb6,0xd3,0x9e,0x4f,0x45,0xb8,0xb6,0x2c,0xbb,0xd5,0xf3,0xc0,0xac,0xb1,0xad,0x85,0x40,0x91,0x3f,0xa5,0x85,0x87,0x7e,0x91,0xcc,0xfe,0xf7,0xbe,0xe5,0x0a,0x4b,0x0f,0x9f,0xed,0xf5,0xcc,0x1e,0x0d,0x19,0x53,0xad,0x39,0x9c,0x83,0x89,0xa9,0x33,0x91,0xe1,0xb7,0xc9,0x29,0xaf,0x6d,0x6f,0x3b,0x79,0x6c,0x08,},\"\\xe2\\x1e\\x98\\xaf\\x6c\\x2b\\xac\\x70\\x55\\x7e\\xb0\\xe8\\x64\\xda\\x2c\\x2b\\x4d\\x6c\\x0a\\x39\\xa0\\x59\\xd3\\x47\\x72\\x51\\xf6\\x17\\x8a\\x39\\x67\\x6f\\x47\\x49\\xe7\\xfb\\xea\\x62\\x3f\\x14\\x8a\\x43\\xa8\\xb0\\xfe\\x06\\x10\\x50\\x6f\\xa6\\x58\\xab\\xd2\\xf5\\xfa\\x39\\x19\\x8f\\x26\\x36\\xb7\\x24\\xdb\\x22\\xd1\\xae\\xbc\\x2a\\xb0\\x7b\\x2b\\x6d\\xbf\\xfd\\xee\\x8c\\xec\\xe8\\x1e\\x1a\\xf1\\x49\\x3e\\xc1\\x96\\x4e\\x16\\xbf\\x86\\xab\\x25\\x8c\\xa0\\xfe\\xb7\\x7e\\x3c\\x87\\x17\\xe4\\x40\\x38\\xab\\xe1\\x52\\xc1\\x4b\\xe1\\x56\\x60\\xbf\\x93\\xb2\\xd4\\x8d\\x92\\xc4\\xed\\x70\\x74\\xd2\\x49\\x42\\x10\\x62\\x1b\\xcf\\x20\\x4f\\xba\\x88\\xc6\\x54\\xd5\\xff\\xe0\\x1e\\x1a\\x53\\xd0\\x8f\\x70\\xbb\\x23\\x70\\x89\\xdc\\x80\\x72\\x16\\xff\\x6a\\x85\\xdb\\xec\\x31\\x02\\x23\\x7d\\x42\\x59\\x07\\x78\\xac\\xf6\\xc1\\xdc\\x56\\x6d\\x5a\\x2b\\xb9\\xa6\\x3b\\xc2\\x1c\\x32\\x9c\\x27\\x2e\\x59\\x65\\xba\\xee\\xb0\\xfe\\x89\\x1d\\xe3\\xcc\\x8c\\xbf\\xa8\\xe5\\x41\\xa8\\x88\\x1d\\xf6\\x89\\x42\\xe7\\xff\\x8d\\xc6\\x56\\xbd\\x08\\x57\\x5f\\x6a\\xaf\\x92\\x4a\\x17\\x6d\\x66\\x3b\\x1a\\x1f\\x43\\x57\\x4d\\x11\\x76\\x8c\\x70\\x1b\\x26\\x95\\x61\\xe5\\x54\\x38\\xdb\\xeb\\xfd\\x44\\x3d\\x21\\x15\\xcb\\x93\\x3d\\x1c\\xde\\x4a\\x91\\x5b\\x54\\xc3\\x25\\xc2\\x7f\\x49\\x9e\\xf0\\x2b\\xd0\\x12\\xff\\x1f\\x9a\\x36\\x39\\x09\\x22\\x88\\x76\\x00\\xfe\\x71\\x2b\\xcd\\xc2\\x3e\\xb5\\x97\\x4a\\x30\\x53\\x72\\xad\\x52\\x95\\x1f\\x83\\xf0\\xe5\\x8c\\xc4\\x9e\\x28\\x98\\x41\\x62\\x19\\x17\\xf1\\xfc\\xb0\\x23\\x51\\x47\\x24\\x0d\\xae\\x4c\\xf3\\xb9\\x9b\\x6a\\xc6\\xd8\\xde\\x94\\xef\\xe7\\xc4\\x43\\x67\\x14\\x50\\x8b\\xcd\\x01\\x14\\xc5\\x60\\x68\\xff\\x1b\\x7c\\x16\\xd5\\x1b\\xd9\\x06\\x43\\x78\\x74\\xd6\\x54\\x9a\\xb5\\xd8\\x08\\x78\\x96\\x87\\x2e\\xc8\\xa0\\x9d\\x74\\x12\"},\n{{0xad,0x75,0xc9,0xce,0x29,0x9c,0x4d,0x59,0x39,0x33,0x67,0xd7,0x7a,0x4c,0x9f,0x8d,0xf8,0xdc,0xec,0x76,0x5c,0x6d,0xbd,0x25,0xb5,0x27,0xfb,0x76,0x69,0x91,0x36,0x04,},{0xb9,0x91,0x05,0x48,0xfe,0x63,0x12,0xa1,0x19,0xc9,0x99,0x3e,0xeb,0xcf,0xb9,0xdc,0x90,0x03,0x0f,0xfb,0x0e,0x4d,0xe2,0xb7,0xcc,0xd2,0x3c,0xbe,0xb4,0xfe,0xf7,0x1b,},{0x6b,0x7e,0xf2,0x7b,0xcf,0xbf,0x2b,0x71,0x49,0x85,0x03,0x37,0x64,0xfc,0xcf,0xf5,0x55,0xe3,0xf5,0xbc,0x44,0x61,0x0d,0x6c,0x8c,0x62,0x11,0x7c,0xb3,0x83,0x1a,0x07,0xf4,0xa8,0xbd,0xdb,0x0e,0xae,0xd1,0xd4,0x6b,0x02,0x89,0xb1,0x5d,0xe1,0xaa,0x4d,0xcc,0x17,0xd7,0x1b,0xe9,0x6a,0x09,0xe6,0x6b,0xa4,0xdc,0x46,0x27,0xc7,0x87,0x05,},\"\\x62\\xfc\\x5a\\xb6\\x7d\\xeb\\x1f\\xee\\x9a\\xb6\\xcc\\xa3\\xb8\\x8a\\x1d\\xf1\\xe5\\x89\\xf0\\xfd\\x4a\\x88\\xf4\\xaa\\x77\\x38\\x94\\x87\\x61\\xfe\\x84\\x37\\x2c\\x5b\\x18\\xe4\\x65\\x52\\x20\\xc1\\xd8\\x4d\\x52\\xac\\xad\\x32\\xe2\\x29\\xa5\\xc7\\x56\\xc2\\x0f\\xc6\\x2f\\xe4\\xb4\\xb4\\xe5\\xfd\\x70\\x77\\xae\\x4e\\xd5\\x39\\x7a\\xa7\\x96\\xf2\\x30\\x7c\\xee\\xdb\\x65\\x05\\xb3\\x92\\x97\\x85\\x6f\\x4a\\xeb\\x5e\\x70\\x93\\x8e\\x36\\xee\\x24\\xa0\\xac\\x7d\\x98\\x68\\x30\\x6f\\x6b\\x53\\x91\\x06\\x23\\xb7\\xdc\\x89\\xa6\\x67\\x2a\\xd7\\x38\\x57\\x6e\\xd5\\xd8\\x88\\x31\\xdd\\x33\\x83\\x21\\xc8\\x90\\x2b\\xc2\\x06\\x1f\\x65\\xe9\\x4d\\x45\\x2f\\xdf\\xa0\\xdc\\x66\\x5c\\xef\\xb9\\x23\\x08\\xe5\\x23\\x01\\xbd\\x46\\x27\\x00\\x6b\\x36\\x3d\\x06\\xb7\\x75\\xa3\\x95\\x91\\x4d\\x8c\\x86\\x3e\\x95\\xa0\\x0d\\x68\\x93\\xf3\\x37\\x61\\x34\\xc4\\x29\\xf5\\x64\\x78\\x14\\x5e\\x44\\x56\\xf7\\xa1\\x2d\\x65\\xbb\\x2b\\x89\\x65\\xd7\\x28\\xcb\\x2d\\xdb\\xb7\\x08\\xf7\\x12\\x5c\\x23\\x70\\x95\\xa9\\x21\\x95\\xd9\\x2f\\xa7\\x27\\xa3\\x72\\xf3\\x54\\x5a\\xe7\\x01\\xf3\\x80\\x8f\\xee\\x80\\x2c\\x89\\x67\\xa7\\x6e\\x8a\\x94\\x0e\\x55\\xfb\\x2d\\x81\\x0b\\xfb\\x47\\xad\\xa1\\x56\\xf0\\xed\\xa1\\x82\\x9b\\x15\\x9c\\xf0\\x5c\\x7f\\x36\\xcf\\x38\\x47\\xd7\\xb2\\x1d\\xe8\\x4c\\x3d\\xc0\\xfe\\x65\\x83\\x47\\xf7\\x93\\x96\\xa0\\x11\\x39\\xa5\\x08\\xb6\\x00\\x22\\xdb\\x1c\\x0e\\x5a\\xee\\xf4\\x7e\\x44\\x5e\\x66\\xf7\\x83\\xe6\\x2c\\x96\\x59\\x7b\\xdb\\x16\\xf2\\x09\\xc0\\x8a\\x91\\x32\\xc7\\x57\\x31\\x36\\x17\\x0e\\xe3\\xeb\\xf2\\x42\\x61\\x26\\x5a\\x89\\xfb\\x4f\\x10\\x33\\x33\\x75\\xe2\\x0b\\x33\\xab\\x74\\x03\\x46\\x4f\\x52\\x49\\x46\\x1c\\x68\\x53\\xc5\\xfd\\xdb\\x9f\\x58\\xaf\\x81\\x68\\x92\\x91\\x03\\x93\\xa7\\x07\\x7b\\x79\\x9f\\xdc\\x34\\x89\\x72\\x09\\x98\\xfe\\xea\\x86\"},\n{{0x1c,0xed,0x57,0x45,0x29,0xb9,0xb4,0x16,0x97,0x7e,0x92,0xeb,0x39,0x44,0x8a,0x87,0x17,0xca,0xc2,0x93,0x4a,0x24,0x3a,0x5c,0x44,0xfb,0x44,0xb7,0x3c,0xcc,0x16,0xda,},{0x85,0xe1,0x67,0xd5,0xf0,0x62,0xfe,0xe8,0x20,0x14,0xf3,0xc8,0xb1,0xbe,0xae,0xd8,0xee,0xfb,0x2c,0x22,0xd8,0x64,0x9c,0x42,0x4b,0x86,0xb2,0x1b,0x11,0xeb,0x8b,0xda,},{0xe0,0x30,0x3a,0xef,0xe0,0x8a,0x77,0x73,0x8d,0xcc,0x65,0x7a,0xfb,0xb9,0xb8,0x35,0xed,0x27,0x96,0x13,0xa5,0x3c,0x73,0xfd,0xc5,0xdd,0xbf,0xb3,0x50,0xe5,0xcf,0xf4,0xd6,0xc9,0xbb,0x43,0xdc,0x07,0xc9,0x5b,0xf4,0xe2,0x3b,0x64,0xc4,0x0f,0x88,0x04,0xc7,0x16,0x99,0x52,0xe3,0xc8,0xd5,0x9a,0x71,0x97,0x24,0x1b,0xfe,0xd0,0x74,0x0f,},\"\\x1b\\x3b\\x95\\x3c\\xce\\x6d\\x15\\x30\\x3c\\x61\\xca\\x70\\x76\\x09\\xf7\\x0e\\x72\\x50\\xf6\\xc0\\xde\\xba\\x56\\xa8\\xce\\x52\\x2b\\x59\\x86\\x68\\x96\\x51\\xcd\\xb8\\x48\\xb8\\x42\\xb2\\x22\\x96\\x61\\xb8\\xee\\xab\\xfb\\x85\\x70\\x74\\x9e\\xd6\\xc2\\xb1\\x0a\\x8f\\xbf\\x51\\x50\\x53\\xb5\\xea\\x7d\\x7a\\x92\\x28\\x34\\x9e\\x46\\x46\\xf9\\x50\\x5e\\x19\\x80\\x29\\xfe\\xc9\\xce\\x0f\\x38\\xe4\\xe0\\xca\\x73\\x62\\x58\\x42\\xd6\\x4c\\xaf\\x8c\\xed\\x07\\x0a\\x6e\\x29\\xc7\\x43\\x58\\x6a\\xa3\\xdb\\x6d\\x82\\x99\\x3a\\xc7\\x1f\\xd3\\x8b\\x78\\x31\\x62\\xd8\\xfe\\x04\\xff\\xd0\\xfa\\x5c\\xbc\\x38\\x1d\\x0e\\x21\\x9c\\x91\\x93\\x7d\\xf6\\xc9\\x73\\x91\\x2f\\xc0\\x2f\\xda\\x53\\x77\\x31\\x24\\x68\\x27\\x4c\\x4b\\xee\\x6d\\xca\\x7f\\x79\\xc8\\xb5\\x44\\x86\\x1e\\xd5\\xba\\xbc\\xf5\\xc5\\x0e\\x14\\x73\\x49\\x1b\\xe0\\x17\\x08\\xac\\x7c\\x9f\\xf5\\x8f\\x1e\\x40\\xf8\\x55\\x49\\x7c\\xe9\\xd7\\xcc\\x47\\xb9\\x41\\x0f\\x2e\\xdd\\x00\\xf6\\x49\\x67\\x40\\x24\\x3b\\x8d\\x03\\xb2\\xf5\\xfa\\x74\\x2b\\x9c\\x63\\x08\\x67\\xf7\\x7a\\xc4\\x2f\\x2b\\x62\\xc1\\x4e\\x5e\\xbd\\xdc\\x7b\\x64\\x7a\\x05\\xff\\xf4\\x36\\x70\\x74\\x5f\\x28\\x51\\xef\\xf4\\x90\\x9f\\x5d\\x27\\xd5\\x7a\\xe8\\x7f\\x61\\xe9\\x65\\xee\\x60\\xfd\\xf9\\x77\\x24\\xc5\\x92\\x67\\xf2\\x61\\x0b\\x7a\\xd5\\xde\\x91\\x98\\x56\\xd6\\x4d\\x7c\\x21\\x26\\x59\\xce\\x86\\x56\\x14\\x9b\\x6a\\x6d\\x29\\xd8\\xf9\\x2b\\x31\\x2b\\xe5\\x0b\\x6e\\x2a\\x43\\x1d\\x36\\xae\\x02\\x2b\\x00\\xa6\\xfe\\x36\\x0e\\x3a\\xf6\\x54\\x32\\x89\\x9c\\x43\\xbe\\x04\\x27\\xe3\\x6d\\x21\\xcf\\xec\\x81\\xf2\\x1a\\xa5\\x3b\\x33\\xdb\\x5e\\xd2\\xc3\\x7d\\xa8\\xf9\\x6a\\xc3\\xe7\\xdc\\x67\\xa1\\xde\\x37\\x54\\x6c\\xf7\\xde\\x10\\x08\\xc7\\xe1\\xad\\xbe\\x0f\\x34\\xfa\\x7e\\xb2\\x43\\x4d\\x94\\xe6\\xa1\\x3f\\x4c\\xf8\\x6a\\x98\\xd4\\x97\\x62\\x2f\"},\n{{0xf0,0x79,0x0d,0x93,0xe2,0xd3,0xb8,0x4f,0x61,0xef,0x4c,0x80,0x71,0x47,0xab,0xa4,0x10,0xe4,0x15,0xe7,0x2b,0x71,0xb0,0xd6,0x1d,0x01,0x02,0x6f,0xed,0x99,0xda,0x3d,},{0xef,0xdf,0x64,0x9f,0xb0,0x33,0xcf,0x32,0x8e,0x0b,0x28,0x77,0x96,0xf8,0xa2,0x5e,0x9c,0x6e,0x2e,0x87,0x1b,0x33,0xc2,0xc2,0x1a,0x40,0x28,0xa8,0xa2,0x5a,0x4b,0x28,},{0x08,0x77,0x3a,0x6a,0x78,0x76,0x2c,0xbb,0x1e,0x25,0xfc,0xbb,0x29,0x13,0x99,0x41,0xbd,0xf1,0x6f,0x4e,0x09,0xa1,0xfa,0x08,0xfc,0x70,0x1f,0x32,0xf9,0x33,0xed,0xd7,0x4c,0x0a,0xe9,0x83,0xc1,0x2a,0x0a,0x5b,0x02,0x0b,0x6b,0xcf,0x44,0xbb,0x71,0x9d,0xde,0x8e,0xd0,0x78,0x1a,0x82,0x98,0x26,0x56,0x40,0xe1,0x60,0x8c,0x98,0xb3,0x01,},\"\\x79\\x73\\xe9\\xf3\\x2d\\x74\\x80\\x59\\x92\\xeb\\x65\\xda\\x0d\\x63\\x73\\x35\\xe5\\x0e\\xff\\x0c\\xe6\\x8e\\xa2\\xd1\\xf3\\xa0\\x2d\\xe7\\x04\\x49\\x2b\\x9c\\xfb\\xe7\\xe7\\xba\\x96\\xfd\\xb4\\x2b\\xb8\\x21\\xa5\\x13\\xd7\\x3f\\xc6\\x04\\x02\\xe9\\x2c\\x85\\x5d\\xea\\xed\\x73\\xff\\xea\\xf7\\x09\\x52\\x02\\x90\\x62\\xc8\\x33\\xe1\\x4e\\xc1\\xb1\\x4f\\x14\\x4e\\x22\\x07\\xf6\\xa0\\xe7\\x27\\xe5\\xa7\\xe3\\xcb\\xab\\x27\\xd5\\x97\\x29\\x70\\xf6\\x95\\x18\\xa1\\x5b\\x09\\x3e\\x74\\x0c\\xc0\\xce\\x11\\xbf\\x52\\x48\\xf0\\x82\\x6b\\x8a\\x98\\xbd\\xe8\\xbf\\x2c\\x70\\x82\\xc9\\x7a\\xff\\x15\\x8d\\x08\\x37\\x11\\x18\\xc8\\x90\\x21\\xcc\\x39\\x74\\xae\\x8f\\x76\\xd8\\x66\\x73\\xc3\\xf8\\x24\\xb6\\x2c\\x79\\xc4\\xb4\\x1f\\x40\\xea\\xa8\\x94\\x37\\x38\\xf0\\x33\\x00\\xf6\\x8c\\xbe\\x17\\x54\\x68\\xeb\\x23\\x5a\\x9f\\xf0\\xe6\\x53\\x7f\\x87\\x14\\xe9\\x7e\\x8f\\x08\\xca\\x44\\x4e\\x41\\x19\\x10\\x63\\xb5\\xfa\\xbd\\x15\\x6e\\x85\\xdc\\xf6\\x66\\x06\\xb8\\x1d\\xad\\x4a\\x95\\x06\\x55\\x84\\xb3\\xe0\\x65\\x8c\\x20\\xa7\\x06\\xea\\xf4\\xa0\\x77\\x7d\\xa4\\xd2\\xe0\\xcd\\x2a\\x0f\\xca\\x60\\x10\\x9c\\x2b\\x44\\x03\\xdb\\x3f\\x03\\xcd\\x47\\x81\\xc1\\xfb\\xb0\\x27\\x22\\x02\\xbc\\xb1\\x16\\x87\\x80\\x8c\\x50\\xcb\\x98\\xf6\\x4b\\x7f\\x3f\\xd3\\xd4\\x33\\x33\\xbb\\x5a\\x06\\x1b\\x9e\\x37\\x70\\x90\\xab\\xb1\\xe0\\xa8\\x85\\xcb\\x26\\xb7\\x3c\\x16\\x3e\\x63\\xff\\x64\\x51\\xff\\x2f\\x4e\\xc8\\x24\\x9c\\x7e\\x15\\x2b\\xd0\\x39\\x73\\xa1\\xe9\\x64\\xe2\\xb5\\xb2\\x35\\x28\\x1a\\x93\\x83\\x99\\xa1\\x12\\xa2\\x45\\x29\\xe3\\x83\\xa5\\x60\\xdc\\x50\\xbb\\x1b\\x62\\x2a\\xd7\\x4e\\xf3\\x56\\x58\\xdc\\xb1\\x0f\\xfe\\x02\\x25\\x68\\xac\\x3f\\xfa\\xe5\\xb4\\x65\\xa8\\xed\\x76\\x43\\xe8\\x56\\x1b\\x35\\x2e\\xe9\\x94\\x4a\\x35\\xd8\\x82\\xc7\\x12\\xb1\\x87\\x78\\x8a\\x0a\\xba\\xe5\\xa2\\x2f\"},\n{{0x4c,0xb9,0xdf,0x7c,0xe6,0xfa,0xe9,0xd6,0x2b,0xa0,0x9e,0x8e,0xb7,0x0e,0x4c,0x96,0x9b,0xde,0xaf,0xcb,0x5e,0xc7,0xd7,0x02,0x43,0x26,0xe6,0x60,0x3b,0x06,0x21,0xbf,},{0x01,0x80,0x69,0xdd,0x0e,0xb4,0x40,0x55,0xa3,0x5c,0xd8,0xc7,0x7c,0x37,0xca,0x9f,0xb1,0xad,0x24,0x17,0x27,0x13,0x85,0xe1,0x34,0xb2,0xf4,0xe8,0x1f,0x52,0x03,0x3c,},{0xe3,0x3c,0x07,0x83,0x6c,0x53,0x7d,0x6b,0xfb,0xd0,0xf4,0x59,0x2d,0x6e,0x35,0xb1,0x63,0x49,0x9b,0xa7,0x8d,0xc7,0xff,0xce,0xc5,0x65,0xd0,0x4f,0x9a,0x7d,0xb7,0x81,0x94,0x3e,0x29,0xe6,0xce,0x76,0x76,0x3e,0x9b,0xad,0xdf,0x57,0x43,0x7f,0xd9,0xc6,0xb0,0x32,0x39,0xa6,0xe6,0x85,0x0e,0x45,0x02,0xa3,0x56,0xc2,0xe1,0x2c,0x37,0x05,},\"\\x14\\x62\\x7d\\x6e\\xa0\\xe7\\x89\\x54\\x60\\x75\\x94\\x76\\xdc\\x74\\xc4\\x28\\x00\\xce\\xef\\x99\\x43\\x27\\x51\\x81\\x51\\x49\\x0d\\x9d\\xf2\\x30\\x67\\x91\\x4e\\x44\\x78\\x8a\\x12\\x76\\x8c\\xcb\\x25\\x47\\x1b\\x9c\\x3b\\xa9\\xd1\\x4f\\xb4\\x36\\xdc\\xba\\x38\\x42\\x9b\\x3a\\x04\\x56\\x87\\x77\\x63\\xc4\\x91\\x75\\xd0\\xe0\\x82\\x68\\x3e\\x07\\xa9\\x05\\x8f\\x36\\x85\\xc6\\x27\\x93\\x07\\xb2\\x30\\x3d\\x12\\x21\\xb9\\xc2\\x97\\x93\\xd8\\xa4\\x87\\x7f\\x6d\\xf5\\x15\\x87\\x38\\x4d\\xad\\xf7\\x51\\xc5\\xf7\\xbf\\xbd\\x20\\x7d\\x51\\x96\\x22\\xc3\\x7b\\x51\\xce\\xee\\xe2\\xc2\\x0d\\x82\\x69\\xf8\\xcb\\x88\\xd3\\xfe\\x43\\xd6\\xd4\\x34\\xd5\\xbb\\xd0\\xe2\\x03\\xc1\\x53\\x2d\\x97\\xba\\x55\\x21\\x47\\x22\\x74\\x96\\xc8\\x7f\\x67\\xb5\\x0b\\xb7\\x61\\x93\\xad\\xd0\\x14\\x4d\\xf1\\xc1\\x76\\x65\\x75\\x85\\x40\\x83\\x62\\xca\\x2e\\xd0\\x4a\\xd6\\x2a\\xcf\\x1c\\x25\\xe3\\x41\\xdf\\xd1\\x49\\x8d\\x85\\xb4\\xb1\\x34\\x9a\\x8b\\x0b\\x9b\\x02\\xc4\\x35\\x23\\xc5\\x58\\x53\\x41\\x9b\\xfe\\xd3\\x7d\\x5a\\x2c\\xdf\\x17\\xdf\\xbf\\x1a\\x3b\\xd7\\x75\\x9d\\x6a\\xe1\\x80\\xf9\\xd2\\x7d\\xcd\\x9a\\x89\\x33\\xe2\\x9a\\x7c\\x0a\\x30\\x77\\x1e\\xea\\x7c\\x2e\\x0f\\xa2\\x42\\x92\\x5d\\x23\\x36\\xdc\\xe5\\x85\\x62\\x90\\x57\\xd8\\x44\\x32\\x39\\x64\\xf6\\xd3\\xd1\\x1f\\xf0\\xb3\\xf8\\x29\\xa3\\xbe\\x8c\\x9f\\x04\\x68\\xa6\\x82\\x3d\\x8e\\x70\\xab\\x5a\\x2d\\xa2\\x1e\\x15\\xfa\\x8b\\x04\\x1a\\x29\\x81\\x22\\x22\\xe9\\xc3\\x0b\\x2b\\xd9\\xa1\\x2d\\x1f\\xde\\xe6\\xf8\\x78\\x76\\xe8\\xce\\x81\\x00\\x96\\x37\\xa8\\xbb\\x22\\x36\\x12\\x9a\\x47\\xca\\x74\\x28\\x9e\\xe4\\xaa\\xd4\\x29\\xff\\xe2\\x9f\\x47\\x43\\x02\\x41\\xca\\x8c\\xc3\\x84\\x8b\\x72\\x00\\xfd\\x6e\\x14\\x70\\x65\\x1a\\x9a\\x0a\\x6f\\x72\\xc9\\x03\\x3e\\x83\\x1d\\xf0\\x51\\x40\\x8a\\x62\\x60\\xf6\\x5c\\xba\\xf6\\xe0\\x12\\xb1\\x8e\"},\n{{0xa1,0x36,0xe0,0x09,0xd5,0x3e,0x5e,0xf5,0x9d,0x09,0x46,0xbc,0x17,0x56,0x63,0xa8,0x6b,0xc0,0xfc,0xd2,0x9e,0xad,0xd9,0x5c,0xfc,0x9d,0x26,0x60,0x37,0xb1,0xe4,0xfb,},{0x9c,0x18,0x06,0xec,0x04,0x54,0xf5,0x83,0x14,0xeb,0x83,0x97,0xd6,0x42,0x87,0xde,0xe3,0x86,0x64,0x0d,0x84,0x91,0xab,0xa3,0x64,0x60,0x76,0x88,0x84,0x17,0x15,0xa0,},{0xbc,0x09,0x4b,0xa9,0x1c,0x11,0x5d,0xee,0x15,0xd7,0x53,0x36,0x1a,0x75,0xf3,0xf0,0x3d,0x6a,0xf4,0x5c,0x92,0x15,0x7e,0x95,0xdb,0xe8,0xd3,0x21,0x94,0xb6,0xc5,0xce,0x72,0xb9,0xdc,0x66,0xf7,0x3d,0xf1,0x2d,0xca,0x0b,0x63,0x9f,0x3e,0x79,0x1d,0x47,0x86,0x16,0xa1,0xf8,0xd7,0x35,0x9a,0x42,0xc8,0xea,0xe0,0xdd,0xa1,0x6b,0x16,0x06,},\"\\xa4\\x9d\\x1c\\x3d\\x49\\xe1\\x3c\\x2e\\xda\\x56\\x86\\x8a\\x88\\x24\\xaa\\x9f\\x8d\\x2b\\xf7\\x2f\\x21\\x95\\x5e\\xba\\xfd\\x07\\xb3\\xbd\\xc8\\xe9\\x24\\xde\\x20\\x93\\x6c\\xee\\x51\\x3d\\x8a\\x64\\xa4\\x71\\x73\\xa3\\xbd\\x65\\x9e\\xff\\x1a\\xcc\\xff\\x82\\x44\\xb2\\x6a\\xae\\x1a\\x0c\\x27\\xfa\\x89\\x1b\\xf4\\xd8\\x5e\\x8f\\xb1\\xb7\\x6a\\x6c\\xab\\x1e\\x7f\\x74\\xc8\\x9e\\xe0\\x7b\\xb4\\x0d\\x71\\x43\\x26\\xf0\\x9b\\x3f\\xd4\\x06\\x32\\xfa\\xd2\\x08\\xea\\x81\\x6f\\x90\\x72\\x02\\x8c\\x14\\xb5\\xb5\\x4e\\xcc\\x1c\\x5b\\x7f\\xc8\\x09\\xe7\\xe0\\x78\\x6e\\x2f\\x11\\x49\\x5e\\x76\\x01\\x7e\\xb6\\x2a\\xa4\\x56\\x3f\\x3d\\x00\\xee\\x84\\x34\\x8d\\x98\\x38\\xcd\\x17\\x64\\x9f\\x69\\x29\\xa6\\xd2\\x06\\xf6\\x0e\\x6f\\xc8\\x2e\\x0c\\x34\\x64\\xb2\\x7e\\x0e\\x6a\\xbd\\x22\\xf4\\x46\\x9b\\xdf\\xd4\\xcb\\x54\\xf7\\x7e\\x32\\x9b\\x80\\xf7\\x1b\\xf4\\x21\\x29\\xec\\x13\\xc9\\xdf\\xe1\\x92\\xad\\xfa\\xa4\\x2e\\xe3\\xdd\\xee\\xda\\x38\\x58\\x16\\xfb\\xad\\x5f\\x41\\x19\\x38\\xc6\\x3b\\x56\\x0f\\x4e\\xcd\\x94\\x53\\x4b\\xe7\\xd9\\x87\\x25\\xcd\\x94\\xc9\\x9c\\xe4\\x92\\xf0\\xf0\\x69\\xba\\x0e\\xc0\\x8f\\x87\\x7a\\x78\\x12\\xef\\x27\\xae\\x19\\xd7\\xa7\\x7b\\xe6\\x3f\\x66\\xbc\\xf8\\xd6\\xcf\\x3a\\x1a\\x61\\xfc\\x9c\\xfe\\xf1\\x04\\xc7\\x46\\x2a\\x21\\xca\\x7f\\x03\\xaf\\xb5\\xbb\\x1a\\xc8\\xc7\\x51\\x24\\xb5\\x54\\xe8\\xd0\\x44\\xb8\\x10\\xd9\\x5f\\xf8\\xc9\\xdd\\x09\\xa3\\x44\\x84\\xd8\\xc4\\xb6\\xc9\\x5f\\x95\\xc3\\xc2\\x28\\x23\\xf5\\x2c\\xe8\\x44\\x29\\x37\\x24\\xd5\\x25\\x91\\x91\\xf1\\xba\\x09\\x29\\xe2\\xac\\xdb\\xb8\\xb9\\xa7\\xa8\\xad\\xf0\\xc5\\x2e\\x78\\xac\\xdf\\xdf\\x05\\x7b\\x09\\x85\\x88\\x1a\\xfb\\xed\\x4d\\xbe\\xbd\\xeb\\xbd\\xae\\x0a\\x2b\\x63\\xbd\\x4e\\x90\\xf9\\x6a\\xfd\\xcb\\xbd\\x78\\xf5\\x06\\x30\\x9f\\x9b\\xdb\\x65\\x00\\x13\\xcb\\x73\\xfa\\xed\\x73\\x90\\x4e\"},\n{{0xff,0x0f,0x1c,0x57,0xdd,0x88,0x4f,0xbe,0xea,0x6e,0x29,0x17,0x28,0x2b,0x79,0xba,0x67,0xf8,0xa6,0x85,0x12,0x67,0xb9,0xf4,0x63,0x6d,0xaf,0xda,0x33,0xbd,0x2b,0x5b,},{0xfe,0xf6,0x37,0x8a,0xd1,0x2a,0x7c,0x25,0x2f,0xa6,0xeb,0x74,0x2b,0x05,0x06,0x4b,0x41,0x53,0x0f,0xf0,0x19,0xdc,0x68,0x0a,0xb5,0x44,0xc0,0x27,0xea,0x28,0x36,0xe7,},{0xd5,0x00,0x84,0x86,0x72,0x6c,0xce,0x33,0x0a,0x29,0xdd,0x7e,0x4d,0x74,0x74,0xd7,0x35,0x79,0x82,0x01,0xaf,0xd1,0x20,0x6f,0xeb,0x86,0x9a,0x11,0x2e,0x5b,0x43,0x52,0x3c,0x06,0x97,0x67,0x61,0xbe,0x3c,0xf9,0xb2,0x71,0x63,0x78,0x27,0x3c,0x94,0xf9,0x35,0x72,0xa7,0xd2,0xb8,0x98,0x26,0x34,0xe0,0x75,0x5c,0x63,0x2b,0x44,0x90,0x08,},\"\\x52\\x2a\\x5e\\x5e\\xff\\x5b\\x5e\\x98\\xfa\\xd6\\x87\\x8a\\x9d\\x72\\xdf\\x6e\\xb3\\x18\\x62\\x26\\x10\\xa1\\xe1\\xa4\\x81\\x83\\xf5\\x59\\x0e\\xce\\xf5\\xa6\\xdf\\x67\\x1b\\x28\\xbe\\x91\\xc8\\x8c\\xdf\\x7a\\xe2\\x88\\x11\\x47\\xfe\\x6c\\x37\\xc2\\x8b\\x43\\xf6\\x4c\\xf9\\x81\\xc4\\x55\\xc5\\x9e\\x76\\x5c\\xe9\\x4e\\x1b\\x64\\x91\\x63\\x1d\\xea\\xee\\xf6\\xd1\\xda\\x9e\\xbc\\xa8\\x86\\x43\\xc7\\x7f\\x83\\xea\\xe2\\xcf\\xdd\\x2d\\x97\\xf6\\x04\\xfe\\x45\\x08\\x1d\\x1b\\xe5\\xc4\\xae\\x2d\\x87\\x59\\x96\\xb8\\xb6\\xfe\\xcd\\x70\\x7d\\x3f\\xa2\\x19\\xa9\\x3b\\xa0\\x48\\x8e\\x55\\x24\\x7b\\x40\\x5e\\x33\\x0c\\xfb\\x97\\xd3\\x1a\\x13\\x61\\xc9\\xb2\\x08\\x4b\\xdb\\x13\\xfb\\x0c\\x05\\x89\\x25\\xdb\\x8c\\x3c\\x64\\x9c\\x9a\\x3e\\x93\\x7b\\x53\\x3c\\xc6\\x31\\x0f\\xa3\\xb1\\x61\\x26\\xfb\\x3c\\xc9\\xbb\\x2b\\x35\\xc5\\xc8\\x30\\x00\\x15\\x48\\x8a\\x30\\xfa\\xdc\\xa3\\xc8\\x87\\x1f\\xa7\\x0d\\xfd\\xc7\\x05\\x5b\\xf8\\xe6\\x31\\xf2\\x0c\\x9b\\x25\\x28\\x31\\x1e\\x32\\x4a\\x7c\\x4e\\xdd\\x54\\x62\\x07\\x9f\\x34\\x41\\xc9\\xec\\xf5\\x5f\\xa9\\x99\\xe7\\x31\\x37\\x23\\x44\\xfd\\xc0\\xd4\\x13\\xe4\\x17\\xaa\\xa0\\x01\\xa1\\xb2\\xd3\\xd9\\xbc\\x00\\x0f\\xec\\x1b\\x02\\xbd\\x7a\\x88\\xa8\\x12\\xd9\\xd8\\xa6\\x6f\\x94\\x64\\x76\\x4c\\x07\\x0c\\x93\\x04\\x1e\\xef\\xb1\\x7c\\xe7\\x4e\\xff\\x6d\\x4a\\xff\\x75\\xf0\\xcb\\xf6\\xa7\\x89\\xa9\\xec\\xde\\x74\\xab\\xe3\\x31\\x30\\xfc\\xa0\\xda\\x85\\x3a\\xa7\\xc3\\x31\\x3a\\xda\\x3f\\x0a\\xe2\\xf5\\x95\\xc6\\x79\\x6a\\x93\\x68\\x5e\\x72\\x9d\\xd1\\x8a\\x66\\x9d\\x63\\x81\\x82\\x5a\\xb3\\xf3\\x6a\\x39\\x1e\\x75\\x25\\xb2\\xa8\\x07\\xa5\\x2f\\xa5\\xec\\x2a\\x03\\x0a\\x8c\\xf3\\xb7\\x73\\x37\\xac\\x41\\xfc\\xeb\\x58\\x0e\\x84\\x5e\\xed\\x65\\x5a\\x48\\xb5\\x47\\x23\\x8c\\x2e\\x81\\x37\\xc9\\x2f\\x8c\\x27\\xe5\\x85\\xca\\xad\\x31\\x06\\xee\\xe3\\x81\\x4a\"},\n{{0x0b,0xc6,0xaf,0x64,0xde,0x57,0x09,0xd3,0xdb,0xc2,0x8f,0x7e,0xf6,0xd3,0xfe,0x28,0xb6,0xde,0x52,0x9f,0x08,0xf5,0x85,0x7c,0xcb,0x91,0x06,0x95,0xde,0x45,0x4f,0x56,},{0xfb,0x49,0x1f,0xc9,0x00,0x23,0x7b,0xdc,0x7e,0x9a,0x11,0x9f,0x27,0x15,0x0c,0xd9,0x11,0x93,0x5c,0xd3,0x62,0x87,0x49,0xff,0x40,0xef,0x41,0xf3,0x95,0x5b,0xc8,0xac,},{0xdb,0xc7,0x13,0x4d,0x1c,0xd6,0xb0,0x81,0x3b,0x53,0x35,0x27,0x14,0xb6,0xdf,0x93,0x94,0x98,0xe9,0x1c,0xf3,0x7c,0x32,0x43,0x37,0xd9,0xc0,0x88,0xa1,0xb9,0x98,0x34,0x7d,0x26,0x18,0x5b,0x43,0x09,0x00,0x41,0x29,0x29,0xe4,0xf6,0x3e,0x91,0x03,0x79,0xfc,0x42,0xe3,0x55,0xa4,0xe9,0x8f,0x6f,0xee,0x27,0xda,0xfa,0xd1,0x95,0x72,0x06,},\"\\xac\\x78\\x86\\xe4\\xf4\\x17\\x2a\\x22\\xc9\\x5e\\x8e\\xea\\x37\\x43\\x7b\\x37\\x5d\\x72\\xac\\xce\\xdc\\xee\\x6c\\xc6\\xe8\\x16\\x76\\x33\\x01\\xa2\\xd8\\xef\\x4d\\x6f\\x31\\xa2\\xc1\\xd6\\x35\\x81\\x8b\\x70\\x26\\xa3\\x95\\xce\\x0d\\xaf\\xd7\\x1c\\x51\\x80\\x89\\x3a\\xf7\\x6b\\x7e\\xa0\\x56\\xc9\\x72\\xd6\\x80\\xec\\xa0\\x1d\\xcb\\xdb\\xae\\x6b\\x26\\xf1\\xc5\\xf3\\x3f\\xc9\\x88\\xb8\\x24\\xfb\\xbe\\x00\\xca\\xcc\\x31\\x64\\x69\\xa3\\xba\\xe0\\x7a\\xa7\\xc8\\x88\\x5a\\xf7\\xf6\\x5f\\x42\\xe7\\x5c\\xef\\x94\\xdb\\xb9\\xaa\\xb4\\x82\\x51\\x43\\xc8\\x50\\x70\\xe7\\x71\\x6b\\x76\\x12\\xf6\\x4e\\xf0\\xb0\\x16\\x60\\x11\\xd2\\x3e\\xb5\\x65\\x4a\\xa0\\x98\\xb0\\x2d\\x8d\\x71\\xe5\\x7c\\x8f\\xa1\\x7b\\xff\\x2f\\xe9\\x7d\\xc8\\x19\\x31\\x77\\xea\\xdc\\x09\\xfb\\x19\\x2d\\x80\\xaa\\x92\\xaf\\xa9\\x87\\x20\\xd4\\x61\\x48\\x17\\xff\\x3c\\x39\\xd3\\xac\\xce\\x18\\x90\\x6f\\xa3\\xde\\x09\\x61\\x89\\x31\\xd0\\xd7\\xa6\\x0c\\x44\\x29\\xcb\\xfa\\x20\\xcf\\x16\\x5c\\x94\\x79\\x29\\xac\\x29\\x3a\\xe6\\xc0\\x6e\\x7e\\x8f\\x25\\xf1\\x26\\x42\\x91\\xe3\\xe1\\xc9\\x8f\\x5d\\x93\\xe6\\xec\\xc2\\x38\\x9b\\xc6\\x0d\\xbb\\xf4\\xa6\\x21\\xb1\\x32\\xc5\\x52\\xa9\\x9c\\x95\\xd2\\x6d\\x8d\\x1a\\xf6\\x11\\x38\\xb5\\x70\\xa0\\xde\\x4b\\x49\\x7e\\xbe\\x80\\x51\\xc7\\x27\\x3a\\x98\\xe6\\xe7\\x87\\x6d\\x0b\\x32\\x75\\x03\\xaf\\x3c\\xb2\\xcc\\x40\\x91\\xce\\x19\\x25\\xcb\\x2f\\x29\\x57\\xf4\\xec\\x56\\xee\\x90\\xf8\\xa0\\x9d\\xd5\\x7d\\x6e\\x83\\x06\\x7a\\x35\\x6a\\x4c\\xfe\\x65\\xb1\\xb7\\xa4\\x46\\x5d\\xa2\\xab\\x13\\x3b\\x0e\\xfb\\x5e\\x7d\\x4d\\xbb\\x81\\x1b\\xcb\\xbd\\xe7\\x12\\xaf\\xbf\\x0f\\x7d\\xd3\\xf3\\x26\\x22\\x22\\x84\\xb8\\xc7\\x4e\\xac\\x7a\\xd6\\x25\\x7f\\xa8\\xc6\\x32\\xb7\\xda\\x25\\x59\\xa6\\x26\\x6e\\x91\\xe0\\xef\\x90\\xdb\\xb0\\xaa\\x96\\x8f\\x75\\x37\\x6b\\x69\\x3f\\xca\\xa5\\xda\\x34\\x22\\x21\"},\n{{0x2f,0x5e,0x83,0xbd,0x5b,0x41,0x2e,0x71,0xae,0x3e,0x90,0x84,0xcd,0x36,0x9e,0xfc,0xc7,0x9b,0xf6,0x03,0x7c,0x4b,0x17,0x4d,0xfd,0x6a,0x11,0xfb,0x0f,0x5d,0xa2,0x18,},{0xa2,0x2a,0x6d,0xa2,0x9a,0x5e,0xf6,0x24,0x0c,0x49,0xd8,0x89,0x6e,0x3a,0x0f,0x1a,0x42,0x81,0xa2,0x66,0xc7,0x7d,0x38,0x3e,0xe6,0xf9,0xd2,0x5f,0xfa,0xcb,0xb8,0x72,},{0x9f,0x80,0x92,0x2b,0xc8,0xdb,0x32,0xd0,0xcc,0x43,0xf9,0x93,0x6a,0xff,0xeb,0xe7,0xb2,0xbc,0x35,0xa5,0xd8,0x22,0x77,0xcd,0x18,0x7b,0x5d,0x50,0xdc,0x7f,0xc4,0xc4,0x83,0x2f,0xff,0xa3,0x4e,0x95,0x43,0x80,0x6b,0x48,0x5c,0x04,0x54,0x8e,0x7c,0x75,0x42,0x94,0x25,0xe1,0x4d,0x55,0xd9,0x1f,0xc1,0x05,0x2e,0xfd,0x86,0x67,0x43,0x0b,},\"\\xb7\\x66\\x27\\x3f\\x06\\x0e\\xf3\\xb2\\xae\\x33\\x40\\x45\\x4a\\x39\\x1b\\x42\\x6b\\xc2\\xe9\\x72\\x64\\xf8\\x67\\x45\\x53\\xeb\\x00\\xdd\\x6e\\xcf\\xdd\\x59\\xb6\\x11\\xd8\\xd6\\x62\\x92\\x9f\\xec\\x71\\x0d\\x0e\\x46\\x20\\x20\\xe1\\x2c\\xdb\\xf9\\xc1\\xec\\x88\\x58\\xe8\\x56\\x71\\xac\\xf8\\xb7\\xb1\\x44\\x24\\xce\\x92\\x07\\x9d\\x7d\\x80\\x1e\\x2a\\xd9\\xac\\xac\\x03\\x6b\\xc8\\xd2\\xdf\\xaa\\x72\\xaa\\x83\\x9b\\xff\\x30\\xc0\\xaa\\x7e\\x41\\x4a\\x88\\x2c\\x00\\xb6\\x45\\xff\\x9d\\x31\\xbc\\xf5\\xa5\\x43\\x82\\xde\\xf4\\xd0\\x14\\x2e\\xfa\\x4f\\x06\\xe8\\x23\\x25\\x7f\\xf1\\x32\\xee\\x96\\x8c\\xdc\\x67\\x38\\xc5\\x3f\\x53\\xb8\\x4c\\x8d\\xf7\\x6e\\x9f\\x78\\xdd\\x50\\x56\\xcf\\x3d\\x4d\\x5a\\x80\\xa8\\xf8\\x4e\\x3e\\xde\\xc4\\x85\\x20\\xf2\\xcb\\x45\\x83\\xe7\\x08\\x53\\x93\\x55\\xef\\x7a\\xa8\\x6f\\xb5\\xa0\\xe8\\x7a\\x94\\xdc\\xf1\\x4f\\x30\\xa2\\xcc\\xa5\\x68\\xf1\\x39\\xd9\\xce\\x59\\xea\\xf4\\x59\\xa5\\xc5\\x91\\x6c\\xc8\\xf2\\x0b\\x26\\xaa\\xf6\\xc7\\xc0\\x29\\x37\\x9a\\xed\\xb0\\x5a\\x07\\xfe\\x58\\x5c\\xca\\xc6\\x03\\x07\\xc1\\xf5\\x8c\\xa9\\xf8\\x59\\x15\\x7d\\x06\\xd0\\x6b\\xaa\\x39\\x4a\\xac\\xe7\\x9d\\x51\\xb8\\xcb\\x38\\xcf\\xa2\\x59\\x81\\x41\\xe2\\x45\\x62\\x4e\\x5a\\xb9\\xb9\\xd6\\x87\\x31\\x17\\x33\\x48\\x90\\x53\\x15\\xbf\\x1a\\x5a\\xd6\\x1d\\x1e\\x8a\\xda\\xeb\\x81\\x0e\\x4e\\x8a\\x86\\xd7\\xc1\\x35\\x37\\xb0\\xbe\\x86\\x0a\\xb2\\xed\\x35\\xb7\\x33\\x99\\xb8\\x80\\x8a\\xa9\\x1d\\x75\\x0f\\x77\\x94\\x3f\\x8a\\x8b\\x7e\\x89\\xfd\\xb5\\x07\\x28\\xaa\\x3d\\xbb\\xd8\\xa4\\x1a\\x6e\\x00\\x75\\x6f\\x43\\x8c\\x9b\\x9e\\x9d\\x55\\x87\\x2d\\xf5\\xa9\\x06\\x8a\\xdd\\x8a\\x97\\x2b\\x7e\\x43\\xed\\xad\\x9c\\xed\\x22\\x37\\xca\\x13\\x67\\xbe\\x4b\\x7c\\xdb\\x66\\xa5\\x4e\\xa1\\x2e\\xef\\x12\\x94\\x71\\x15\\x86\\x10\\xea\\xf2\\x8f\\x99\\xf7\\xf6\\x86\\x55\\x7d\\xcd\\xf6\\x44\\xea\"},\n{{0x72,0x2a,0x2d,0xa5,0x0e,0x42,0xc1,0x1a,0x61,0xc9,0xaf,0xac,0x7b,0xe1,0xa2,0xfe,0xd2,0x26,0x7d,0x65,0x0f,0x8f,0x7d,0x8e,0x5b,0xc7,0x06,0xb8,0x07,0xc1,0xb9,0x1d,},{0xfd,0x0b,0x96,0x45,0x62,0xf8,0x23,0x72,0x1e,0x64,0x9c,0x3f,0xed,0xb4,0x32,0xa7,0x6f,0x91,0xe0,0xae,0xad,0x7c,0x61,0xd3,0x5f,0x95,0xed,0x77,0x26,0xd7,0x85,0x89,},{0xc2,0x69,0x5a,0x57,0x17,0x2a,0xaa,0x31,0xbd,0x08,0x90,0xf2,0x31,0xca,0x8e,0xee,0xc0,0x28,0x7a,0x87,0x17,0x26,0x69,0xa8,0x99,0xad,0x08,0x91,0xce,0xa4,0xc4,0x75,0x79,0xb5,0x04,0x20,0xe7,0x91,0xcd,0xec,0x8c,0x18,0x2c,0x8a,0x0e,0x8d,0xde,0x21,0xb2,0x48,0x0b,0x0c,0xfd,0x81,0x11,0xe2,0x8e,0x56,0x03,0x34,0x7a,0x35,0x2d,0x04,},\"\\x17\\x3e\\x8b\\xb8\\x85\\xe1\\xf9\\x08\\x14\\x04\\xac\\xac\\x99\\x90\\x41\\xd2\\xec\\xfc\\xb7\\x3f\\x94\\x5e\\x0d\\xb3\\x6e\\x63\\x1d\\x7c\\xd1\\xab\\x99\\x9e\\xb7\\x17\\xf3\\x4b\\xf0\\x78\\x74\\xbf\\x3d\\x34\\xe2\\x53\\x0e\\xb6\\x08\\x5f\\x4a\\x9f\\x88\\xae\\x1b\\x0f\\x7d\\x80\\xf2\\x21\\x45\\x6a\\x8e\\x9a\\x88\\x90\\xb9\\x1a\\x50\\x19\\x2d\\xea\\xaa\\xcc\\x0a\\x1a\\x61\\x5a\\x87\\x84\\x1e\\x2c\\x5a\\x9e\\x05\\x79\\x57\\xaf\\x6e\\x48\\xe7\\x8c\\xc8\\x61\\x98\\xe3\\x2e\\x7a\\xa2\\x4d\\xcf\\x6c\\xff\\xa3\\x29\\xbc\\x72\\x60\\x6d\\x65\\xb1\\x16\\x82\\xc8\\xba\\x73\\x6c\\xce\\x22\\xa0\\x57\\x85\\xdf\\x11\\x46\\x33\\x1e\\x41\\x60\\x9c\\xf9\\xca\\x71\\x1c\\xf4\\x64\\x95\\x82\\x97\\x13\\x8b\\x58\\xa9\\x07\\x3f\\x3b\\xbf\\x06\\xad\\x8a\\x85\\xd1\\x35\\xde\\x66\\x65\\x21\\x04\\xd8\\x8b\\x49\\xd2\\x7a\\xd4\\x1e\\x59\\xbc\\xc4\\x4c\\x7f\\xab\\x68\\xf5\\x3f\\x05\\x02\\xe2\\x93\\xff\\xca\\xba\\xaf\\x75\\x59\\x27\\xdf\\xdf\\xfb\\xfd\\xe3\\xb3\\x5c\\x08\\x0b\\x5d\\xe4\\xc8\\xb7\\x85\\xf4\\xda\\x64\\xef\\x35\\x7b\\xc0\\xd1\\x46\\x6a\\x6a\\x96\\x56\\x0c\\x3c\\x4f\\x3e\\x3c\\x0b\\x56\\x3a\\x00\\x3f\\x5f\\x95\\xf2\\x37\\x17\\x1b\\xce\\x1a\\x00\\x17\\x71\\xa0\\x4e\\xde\\x7c\\xdd\\x9b\\x8c\\xa7\\x70\\xfd\\x36\\xef\\x90\\xe9\\xfe\\x00\\x00\\xa8\\xd7\\x68\\x5f\\xd1\\x53\\xcc\\x72\\x82\\xde\\x95\\x92\\x0a\\x8f\\x8f\\x08\\x98\\xd0\\x0b\\xf0\\xc6\\xc9\\x33\\xfe\\x5b\\xb9\\x65\\x3f\\xf1\\x46\\xc4\\xe2\\xac\\xd1\\xa2\\xe0\\xc2\\x3c\\x12\\x44\\x84\\x4d\\xac\\xf8\\x65\\x27\\x16\\x30\\x2c\\x20\\x32\\xf9\\xc1\\x14\\x67\\x9e\\xd2\\x6b\\x3e\\xe3\\xab\\x4a\\x7b\\x18\\xbc\\x4e\\x30\\x71\\xf0\\x97\\x7d\\xb5\\x7c\\xd0\\xac\\x68\\xc0\\x72\\x7a\\x09\\xb4\\xf1\\x25\\xfb\\x64\\xaf\\x28\\x50\\xb2\\x6c\\x8a\\x48\\x42\\x63\\x33\\x4e\\x2d\\xa9\\x02\\xd7\\x44\\x73\\x70\\x44\\xe7\\x9a\\xb1\\xcf\\x5b\\x2f\\x93\\xa0\\x22\\xb6\\x3d\\x40\\xcd\"},\n{{0x5f,0xe9,0xc3,0x96,0x0e,0xd5,0xbd,0x37,0x4c,0xc9,0x4d,0x42,0x35,0x7e,0x6a,0x24,0xdc,0x7e,0x30,0x60,0x78,0x8f,0x72,0x63,0x65,0xde,0xfa,0xcf,0x13,0xcd,0x12,0xda,},{0x0c,0xe7,0xb1,0x55,0xc8,0xb2,0x0e,0xbd,0xaa,0xcd,0xc2,0xaa,0x23,0x62,0x7e,0x34,0xb1,0xf9,0xac,0xe9,0x80,0x65,0x0a,0x25,0x30,0xc7,0x60,0x7d,0x04,0x81,0x4e,0xb4,},{0x37,0x9f,0x9c,0x54,0xc4,0x13,0xaf,0x0d,0x19,0x2e,0x9b,0xc7,0x36,0xb2,0x9d,0xa9,0xd5,0x21,0xe7,0xba,0x78,0x41,0xd3,0x09,0xf9,0xbc,0xc1,0xe7,0x42,0xec,0x43,0x08,0xfe,0x9f,0x7b,0xa5,0x1e,0x0b,0x22,0xae,0xd4,0x87,0xcb,0x4a,0xa3,0x91,0x3b,0x9b,0xeb,0xfb,0x3a,0xac,0xd3,0x8f,0x40,0x39,0xf9,0xbb,0xbe,0xbe,0x1a,0xd8,0x00,0x02,},\"\\xc9\\x49\\x0d\\x83\\xd9\\xc3\\xa9\\x37\\x0f\\x06\\xc9\\x1a\\xf0\\x01\\x68\\x5a\\x02\\xfe\\x49\\xb5\\xca\\x66\\x77\\x33\\xff\\xf1\\x89\\xee\\xe8\\x53\\xec\\x16\\x67\\xa6\\xc1\\xb6\\xc7\\x87\\xe9\\x24\\x48\\x12\\xd2\\xd5\\x32\\x86\\x6a\\xb7\\x4d\\xfc\\x87\\x0d\\x6f\\x14\\x03\\x3b\\x6b\\xcd\\x39\\x85\\x2a\\x39\\x00\\xf8\\xf0\\x8c\\xd9\\x5a\\x74\\xcb\\x8c\\xbe\\x02\\xb8\\xb8\\xb5\\x1e\\x99\\x3a\\x06\\xad\\xfe\\xbd\\x7f\\xc9\\x85\\x4a\\xe5\\xd2\\x9f\\x4d\\xf9\\x64\\x28\\x71\\xd0\\xc5\\xe4\\x70\\xd9\\x03\\xcf\\xbc\\xbd\\x5a\\xdb\\x32\\x75\\x62\\x8f\\x28\\xa8\\x0b\\xf8\\xc0\\xf0\\x37\\x66\\x87\\xda\\xe6\\x73\\xbf\\x7a\\x85\\x47\\xe8\\x0d\\x4a\\x98\\x55\\xae\\x25\\x72\\xfc\\x2b\\x20\\x5d\\xc8\\xa1\\x98\\x01\\x6d\\xdc\\x9b\\x50\\x99\\x5f\\x5b\\x39\\xf3\\x68\\xf5\\x40\\x50\\x4a\\x55\\x18\\x03\\xd6\\xdd\\x5f\\x87\\x48\\x28\\xe5\\x54\\x1d\\xed\\x05\\x28\\x94\\xd9\\xe2\\xdc\\x5e\\x6a\\xa3\\x51\\x08\\x7e\\x79\\x0c\\x0d\\xd5\\xd9\\xc4\\xde\\xcb\\x21\\x7e\\x4d\\xb8\\x1c\\x98\\xa1\\x84\\xb2\\x64\\xe6\\xda\\xea\\xc0\\xf1\\x1e\\x07\\x4c\\xae\\x2b\\xfc\\x89\\x9f\\x54\\xb4\\x19\\xc6\\x5d\\xcc\\x22\\x66\\x4a\\x91\\x5f\\xbf\\xff\\xac\\x35\\xce\\xe0\\xf2\\x86\\xeb\\x7b\\x14\\x49\\x33\\xdb\\x93\\x3e\\x16\\xc4\\xbc\\xb6\\x50\\xd5\\x37\\x72\\x24\\x89\\xde\\x23\\x63\\x73\\xfd\\x8d\\x65\\xfc\\x86\\x11\\x8b\\x6d\\xef\\x37\\xca\\x46\\x08\\xbc\\x6c\\xe9\\x27\\xb6\\x54\\x36\\xff\\xda\\x7f\\x02\\xbf\\xbf\\x88\\xb0\\x45\\xae\\x7d\\x2c\\x2b\\x45\\xa0\\xb3\\x0c\\x8f\\x2a\\x04\\xdf\\x95\\x32\\x21\\x08\\x8c\\x55\\x5f\\xe9\\xa5\\xdf\\x26\\x09\\x82\\xa3\\xd6\\x4d\\xf1\\x94\\xee\\x95\\x2f\\xa9\\xa9\\x8c\\x31\\xb9\\x64\\x93\\xdb\\x61\\x80\\xd1\\x3d\\x67\\xc3\\x67\\x16\\xf9\\x5f\\x8c\\x0b\\xd7\\xa0\\x39\\xad\\x99\\x06\\x67\\xca\\x34\\xa8\\x3a\\xc1\\xa1\\x8c\\x37\\xdd\\x7c\\x77\\x36\\xaa\\x6b\\x9b\\x6f\\xc2\\xb1\\xac\\x0c\\xe1\\x19\\xef\\x77\"},\n{{0xec,0x2f,0xa5,0x41,0xac,0x14,0xb4,0x14,0x14,0x9c,0x38,0x25,0xea,0xa7,0x00,0x1b,0x79,0x5a,0xa1,0x95,0x7d,0x40,0x40,0xdd,0xa9,0x25,0x73,0x90,0x4a,0xfa,0x7e,0xe4,},{0x71,0xb3,0x63,0xb2,0x40,0x84,0x04,0xd7,0xbe,0xec,0xde,0xf1,0xe1,0xf5,0x11,0xbb,0x60,0x84,0x65,0x8b,0x53,0x2f,0x7e,0xa6,0x3d,0x4e,0x3f,0x5f,0x01,0xc6,0x1d,0x31,},{0x84,0xd1,0x8d,0x56,0xf9,0x64,0xe3,0x77,0x67,0x59,0xbb,0xa9,0x2c,0x51,0x0c,0x2b,0x6d,0x57,0x45,0x55,0xc3,0xcd,0xda,0xde,0x21,0x2d,0xa9,0x03,0x74,0x55,0x49,0x91,0xe7,0xd7,0x7e,0x27,0x8d,0x63,0xe3,0x46,0x93,0xe1,0x95,0x80,0x78,0xcc,0x36,0x85,0xf8,0xc4,0x1c,0x1f,0x53,0x42,0xe3,0x51,0x89,0x96,0x38,0xef,0x61,0x21,0x14,0x01,},\"\\x27\\x49\\xfc\\x7c\\x4a\\x72\\x9e\\x0e\\x0a\\xd7\\x1b\\x5b\\x74\\xeb\\x9f\\x9c\\x53\\x4e\\xbd\\x02\\xff\\xc9\\xdf\\x43\\x74\\xd8\\x13\\xbd\\xd1\\xae\\x4e\\xb8\\x7f\\x13\\x50\\xd5\\xfd\\xc5\\x63\\x93\\x45\\x15\\x77\\x17\\x63\\xe6\\xc3\\x3b\\x50\\xe6\\x4e\\x0c\\xd1\\x14\\x57\\x30\\x31\\xd2\\x18\\x6b\\x6e\\xca\\x4f\\xc8\\x02\\xcd\\xdc\\x7c\\xc5\\x1d\\x92\\xa6\\x13\\x45\\xa1\\x7f\\x6a\\xc3\\x8c\\xc7\\x4d\\x84\\x70\\x7a\\x51\\x56\\xbe\\x92\\x02\\xde\\xe3\\x44\\x46\\x52\\xe7\\x9b\\xae\\x7f\\x0d\\x31\\xbd\\x17\\x56\\x79\\x61\\xf6\\x5d\\xd0\\x1a\\x8e\\x4b\\xee\\x38\\x33\\x19\\x38\\xce\\x4b\\x2b\\x55\\x06\\x91\\xb9\\x9a\\x4b\\xc3\\xc0\\x72\\xd1\\x86\\xdf\\x4b\\x33\\x44\\xa5\\xc8\\xfb\\xfb\\xb9\\xfd\\x2f\\x35\\x5f\\x61\\x07\\xe4\\x10\\xc3\\xd0\\xc7\\x98\\xb6\\x8d\\x3f\\xb9\\xc6\\xf7\\xab\\x5f\\xe2\\x7e\\x70\\x87\\x1e\\x86\\x76\\x76\\x98\\xfe\\x35\\xb7\\x7e\\xad\\x4e\\x43\\x5a\\x94\\x02\\xcc\\x9e\\xd6\\xa2\\x65\\x7b\\x05\\x9b\\xe0\\xa2\\x10\\x03\\xc0\\x48\\xbb\\xf5\\xe0\\xeb\\xd9\\x3c\\xbb\\x2e\\x71\\xe9\\x23\\xcf\\x5c\\x72\\x8d\\x17\\x58\\xcd\\x81\\x7a\\xd7\\x4b\\x45\\x4a\\x88\\x71\\x26\\xd6\\x53\\xb9\\x5a\\x7f\\x25\\xe5\\x29\\x3b\\x76\\x8c\\x9f\\xc5\\xa9\\xc3\\x5a\\x23\\x72\\xe3\\x74\\x1b\\xc9\\x0f\\xd6\\x63\\x01\\x42\\x7b\\x10\\x82\\x4b\\xb4\\xb1\\xe9\\x11\\x0b\\xfb\\xa8\\x4c\\x21\\xa4\\x0e\\xb8\\xfe\\xd4\\x49\\x7e\\x91\\xdc\\x3f\\xfd\\x04\\x38\\xc5\\x14\\xc0\\xa8\\xcb\\x4c\\xac\\x6a\\xd0\\x25\\x6b\\xf1\\x1d\\x5a\\xa7\\xa9\\xc7\\xc0\\x0b\\x66\\x9b\\x01\\x5b\\x0b\\xf8\\x14\\x25\\xa2\\x14\\x13\\xe2\\xff\\xb6\\xed\\xc0\\xbd\\x78\\xe3\\x85\\xc4\\x4f\\xd7\\x45\\x58\\xe5\\x11\\xc2\\xc2\\x5f\\xee\\x1f\\xec\\x18\\xd3\\x99\\x0b\\x86\\x90\\x30\\x0f\\xa7\\x11\\xe9\\x3d\\x98\\x54\\x66\\x8f\\x01\\x87\\x06\\x5e\\x76\\xe7\\x11\\x3a\\xe7\\x63\\xc3\\x0d\\xdd\\x86\\x72\\x0b\\x55\\x46\\xa6\\xc3\\xc6\\xf1\\xc4\\x3b\\xc6\\x7b\\x14\"},\n{{0x61,0x32,0x69,0x2a,0x5e,0xf2,0x7b,0xf4,0x76,0xb1,0xe9,0x91,0xe6,0xc4,0x31,0xa8,0xc7,0x64,0xf1,0xae,0xbd,0x47,0x02,0x82,0xdb,0x33,0x21,0xbb,0x7c,0xb0,0x9c,0x20,},{0x7a,0x2d,0x16,0x61,0x84,0xf9,0xe5,0xf7,0x3b,0xea,0x45,0x44,0x86,0xb0,0x41,0xce,0xb5,0xfc,0x23,0x14,0xa7,0xbd,0x59,0xcb,0x71,0x8e,0x79,0xf0,0xec,0x98,0x9d,0x84,},{0xeb,0x67,0x7f,0x33,0x47,0xe1,0xa1,0xea,0x92,0x9e,0xfd,0xf6,0x2b,0xf9,0x10,0x5a,0x6c,0x8f,0x49,0x93,0x03,0x3b,0x4f,0x6d,0x03,0xcb,0x0d,0xbf,0x9c,0x74,0x2b,0x27,0x07,0x04,0xe3,0x83,0xab,0x7c,0x06,0x76,0xbd,0xb1,0xad,0x0c,0xe9,0xb1,0x66,0x73,0x08,0x3c,0x96,0x02,0xec,0x10,0xae,0x1d,0xd9,0x8e,0x87,0x48,0xb3,0x36,0x44,0x0b,},\"\\xa9\\xc0\\x86\\x16\\x65\\xd8\\xc2\\xde\\x06\\xf9\\x30\\x1d\\xa7\\x0a\\xfb\\x27\\xb3\\x02\\x4b\\x74\\x4c\\x6b\\x38\\xb2\\x42\\x59\\x29\\x4c\\x97\\xb1\\xd1\\xcb\\x4f\\x0d\\xcf\\x75\\x75\\xa8\\xed\\x45\\x4e\\x2f\\x09\\x80\\xf5\\x03\\x13\\xa7\\x73\\x63\\x41\\x51\\x83\\xfe\\x96\\x77\\xa9\\xeb\\x1e\\x06\\xcb\\x6d\\x34\\xa4\\x67\\xcb\\x7b\\x07\\x58\\xd6\\xf5\\x5c\\x56\\x4b\\x5b\\xa1\\x56\\x03\\xe2\\x02\\xb1\\x88\\x56\\xd8\\x9e\\x72\\xa2\\x3a\\xb0\\x7d\\x88\\x53\\xff\\x77\\xda\\x7a\\xff\\x1c\\xae\\xbd\\x79\\x59\\xf2\\xc7\\x10\\xef\\x31\\xf5\\x07\\x8a\\x9f\\x2c\\xda\\xe9\\x26\\x41\\xa1\\xcc\\x5f\\x74\\xd0\\xc1\\x43\\xec\\x42\\xaf\\xba\\xa5\\xf3\\x78\\xa9\\xe1\\x0d\\x5b\\xf7\\x45\\x87\\xfa\\x5f\\x49\\xc1\\x56\\x23\\x32\\x47\\xda\\xfd\\x39\\x29\\xac\\xde\\x88\\x8d\\xc6\\x84\\x33\\x7e\\x40\\xcd\\xc5\\x93\\x2e\\x7e\\xb7\\x3f\\xfc\\xc9\\x0b\\x85\\xc0\\xad\\x46\\x04\\x16\\x69\\x1a\\xef\\xbd\\x7e\\xfd\\x07\\xb6\\x57\\xc3\\x50\\x94\\x6a\\x0e\\x36\\x6b\\x37\\xa6\\xc8\\x08\\x9a\\xba\\x5c\\x5f\\xe3\\xbb\\xca\\x06\\x4a\\xfb\\xe9\\xd4\\x7f\\xbc\\x83\\x91\\x4a\\xf1\\xcb\\x43\\xc2\\xb2\\xef\\xa9\\x8e\\x0a\\x43\\xbe\\x32\\xba\\x82\\x32\\x02\\x00\\x1d\\xef\\x36\\x81\\x72\\x51\\xb6\\x5f\\x9b\\x05\\x06\\xce\\xf6\\x68\\x36\\x42\\xa4\\x6e\\xd6\\x12\\xf8\\xca\\x81\\xee\\x97\\xbb\\x04\\xd3\\x17\\xb5\\x17\\x34\\x3a\\xde\\x2b\\x77\\x12\\x6d\\x1f\\x02\\xa8\\x7b\\x76\\x04\\xc8\\x65\\x3b\\x67\\x48\\xcf\\x54\\x88\\xfa\\x6d\\x43\\xdf\\x80\\x9f\\xaa\\x19\\xe6\\x92\\x92\\xd3\\x8c\\x5d\\x39\\x7d\\xd8\\xe2\\x0c\\x7a\\xf7\\xc5\\x33\\x4e\\xc9\\x77\\xf5\\x01\\x0a\\x0f\\x7c\\xb5\\xb8\\x94\\x79\\xca\\x06\\xdb\\x4d\\x12\\x62\\x7f\\x06\\x7d\\x6c\\x42\\x18\\x6a\\x6b\\x1f\\x87\\x42\\xf3\\x6a\\xe7\\x09\\xba\\x72\\x0e\\x3c\\xd8\\x98\\x11\\x66\\x66\\xd8\\x1b\\x19\\x0b\\x9b\\x9d\\x2a\\x72\\x20\\x2c\\xb6\\x90\\xa0\\x3f\\x33\\x10\\x42\\x9a\\x71\\xdc\\x04\\x8c\\xde\"},\n{{0xf2,0x19,0xb2,0x10,0x11,0x64,0xaa,0x97,0x23,0xbd,0xe3,0xa7,0x34,0x6f,0x68,0xa3,0x50,0x61,0xc0,0x1f,0x97,0x82,0x07,0x25,0x80,0xba,0x32,0xdf,0x90,0x3b,0xa8,0x91,},{0xf6,0x6b,0x92,0x0d,0x5a,0xa1,0xa6,0x08,0x54,0x95,0xa1,0x48,0x05,0x39,0xbe,0xba,0x01,0xff,0xe6,0x0e,0x6a,0x63,0x88,0xd1,0xb2,0xe8,0xed,0xa2,0x33,0x55,0x81,0x0e,},{0x17,0xf0,0x12,0x7c,0xa3,0xba,0xfa,0x5f,0x4e,0xe9,0x59,0xcd,0x60,0xf7,0x72,0xbe,0x87,0xa0,0x03,0x49,0x61,0x51,0x7e,0x39,0xa0,0xa1,0xd0,0xf4,0xb9,0xe2,0x6d,0xb1,0x33,0x6e,0x60,0xc8,0x2b,0x35,0x2c,0x4c,0xba,0xcd,0xbb,0xd1,0x17,0x71,0xc3,0x77,0x4f,0x8c,0xc5,0xa1,0xa7,0x95,0xd6,0xe4,0xf4,0xeb,0xd5,0x1d,0xef,0x36,0x77,0x0b,},\"\\x01\\x55\\x77\\xd3\\xe4\\xa0\\xec\\x1a\\xb2\\x59\\x30\\x10\\x63\\x43\\xff\\x35\\xab\\x4f\\x1e\\x0a\\x8a\\x2d\\x84\\x4a\\xad\\xbb\\x70\\xe5\\xfc\\x53\\x48\\xcc\\xb6\\x79\\xc2\\x29\\x5c\\x51\\xd7\\x02\\xaa\\xae\\x7f\\x62\\x73\\xce\\x70\\x29\\x7b\\x26\\xcb\\x7a\\x25\\x3a\\x3d\\xb9\\x43\\x32\\xe8\\x6a\\x15\\xb4\\xa6\\x44\\x91\\x23\\x27\\x91\\xf7\\xa8\\xb0\\x82\\xee\\x28\\x34\\xaf\\x30\\x40\\x0e\\x80\\x46\\x47\\xa5\\x32\\xe9\\xc4\\x54\\xd2\\xa0\\xa7\\x32\\x01\\x30\\xab\\x6d\\x4d\\x86\\x00\\x73\\xa3\\x46\\x67\\xac\\x25\\xb7\\xe5\\xe2\\x74\\x7b\\xa9\\xf5\\xc9\\x45\\x94\\xfb\\x68\\x37\\x7a\\xe2\\x60\\x36\\x9c\\x40\\x71\\x3b\\x4e\\x32\\xf2\\x31\\x95\\xbf\\x91\\xd3\\xd7\\xf1\\xa2\\x71\\x9b\\xf4\\x08\\xaa\\xd8\\xd8\\xa3\\x47\\xb1\\x12\\xe8\\x4b\\x11\\x88\\x17\\xcb\\x06\\x51\\x33\\x44\\x02\\x17\\x63\\x03\\x52\\x72\\xa7\\xdb\\x72\\x8a\\x0c\\xcd\\xaa\\x94\\x9c\\x61\\x71\\x5d\\x07\\x64\\x14\\x0b\\x3e\\x8c\\x01\\xd2\\x0f\\xf1\\x59\\x3c\\x7f\\x2d\\x55\\xc4\\xe8\\x2a\\x1c\\x0c\\xb1\\xea\\x58\\x44\\x2b\\xf8\\x0a\\x74\\x1b\\xca\\x91\\xf5\\x8a\\xb0\\x58\\x1b\\x49\\x8e\\xe9\\xfe\\x3c\\x92\\xca\\x65\\x41\\x48\\xef\\x75\\x31\\x35\\x43\\xd1\\xaf\\xf3\\x82\\xbe\\xfe\\x1a\\x93\\xb0\\x21\\x90\\xce\\x01\\x02\\x17\\x51\\x58\\xe2\\x07\\x1d\\x02\\xba\\xca\\xd8\\xdb\\xe9\\xfb\\x94\\x0f\\xcb\\x61\\x0c\\x10\\x5a\\xd5\\x2c\\x80\\xfe\\xb1\\xec\\x4e\\x52\\x4f\\x4c\\x0e\\xc7\\x98\\x3e\\x9c\\xe6\\x96\\xfa\\x4f\\xcf\\x4b\\xf0\\x51\\x4b\\x8f\\x04\\x32\\xb1\\x7d\\x54\\x48\\xfc\\x42\\x6f\\xea\\x2b\\x01\\xac\\x7b\\x26\\xc2\\xae\\xd7\\x69\\x92\\x75\\x34\\xda\\x22\\x57\\x6f\\xc1\\xbb\\xa7\\x26\\xe9\\xd6\\x5b\\xe0\\x1b\\x59\\xf6\\x0a\\x64\\x8a\\xce\\x2f\\xc3\\xe5\\xe2\\x75\\x78\\x9f\\xa6\\x37\\xcb\\xbd\\x84\\xbe\\x3d\\x6a\\xc2\\x44\\x57\\xa6\\x29\\x2c\\xd6\\x56\\xc7\\xb5\\x69\\xa5\\x2f\\xfe\\xa7\\x91\\x6b\\x8d\\x04\\xb4\\xf4\\xa7\\x5b\\xe7\\xac\\x95\\x14\\x2f\"},\n{{0xfc,0x18,0x00,0x35,0xae,0xc0,0xf5,0xed,0xe7,0xbd,0xa9,0x3b,0xf7,0x7a,0xde,0x7a,0x81,0xed,0x06,0xde,0x07,0xee,0x2e,0x3a,0xa8,0x57,0x6b,0xe8,0x16,0x08,0x61,0x0a,},{0x4f,0x21,0x5e,0x94,0x8c,0xae,0x24,0x3e,0xe3,0x14,0x3b,0x80,0x28,0x2a,0xd7,0x92,0xc7,0x80,0xd2,0xa6,0xb7,0x50,0x60,0xca,0x1d,0x29,0x0c,0xa1,0xa8,0xe3,0x15,0x1f,},{0xa4,0x3a,0x71,0xc3,0xa1,0x9c,0x35,0x66,0x0d,0xae,0x6f,0x31,0xa2,0x54,0xb8,0xc0,0xea,0x35,0x93,0xfc,0x8f,0xca,0x74,0xd1,0x36,0x40,0x01,0x2b,0x9e,0x94,0x73,0xd4,0xaf,0xe0,0x70,0xdb,0x01,0xe7,0xfb,0x39,0x9b,0xf4,0xca,0x60,0x70,0xe0,0x62,0x18,0x00,0x11,0x28,0x5a,0x67,0xdd,0x68,0x58,0xb7,0x61,0xe4,0x6c,0x6b,0xd3,0x20,0x04,},\"\\xb5\\xe8\\xb0\\x16\\x25\\x66\\x4b\\x22\\x23\\x39\\xe0\\xf0\\x5f\\x93\\xa9\\x90\\xba\\x48\\xb5\\x6a\\xe6\\x54\\x39\\xa1\\x75\\x20\\x93\\x2d\\xf0\\x11\\x72\\x1e\\x28\\x4d\\xbe\\x36\\xf9\\x86\\x31\\xc0\\x66\\x51\\x00\\x98\\xa6\\x8d\\x7b\\x69\\x2a\\x38\\x63\\xe9\\x9d\\x58\\xdb\\x76\\xca\\x56\\x67\\xc8\\x04\\x3c\\xb1\\x0b\\xd7\\xab\\xba\\xf5\\x06\\x52\\x9f\\xbb\\x23\\xa5\\x16\\x6b\\xe0\\x38\\xaf\\xfd\\xb9\\xa2\\x34\\xc4\\xf4\\xfc\\xf4\\x3b\\xdd\\xd6\\xb8\\xd2\\xce\\x77\\x2d\\xd6\\x53\\xed\\x11\\x5c\\x09\\x5e\\x23\\x2b\\x26\\x9d\\xd4\\x88\\x8d\\x23\\x68\\xcb\\x1c\\x66\\xbe\\x29\\xdd\\x38\\x3f\\xca\\x67\\xf6\\x67\\x65\\xb2\\x96\\x56\\x4e\\x37\\x55\\x5f\\x0c\\x0e\\x48\\x45\\x04\\xc5\\x91\\xf0\\x06\\xea\\x85\\x33\\xa1\\x25\\x83\\xad\\x2e\\x48\\x31\\x8f\\xf6\\xf3\\x24\\xec\\xaf\\x80\\x4b\\x1b\\xae\\x04\\xaa\\x89\\x67\\x43\\xe6\\x7e\\xf6\\x1c\\xa3\\x83\\xd5\\x8e\\x42\\xac\\xfc\\x64\\x10\\xde\\x30\\x77\\x6e\\x3b\\xa2\\x62\\x37\\x3b\\x9e\\x14\\x41\\x94\\x39\\x55\\x10\\x1a\\x4e\\x76\\x82\\x31\\xad\\x9c\\x65\\x29\\xef\\xf6\\x11\\x8d\\xde\\x5d\\xf0\\x2f\\x94\\xb8\\xd6\\xdf\\x2d\\x99\\xf2\\x78\\x63\\xb5\\x17\\x24\\x3a\\x57\\x9e\\x7a\\xaf\\xf3\\x11\\xea\\x3a\\x02\\x82\\xe4\\x7c\\xa8\\x76\\xfa\\xbc\\x22\\x80\\xfc\\xe7\\xad\\xc9\\x84\\xdd\\x0b\\x30\\x88\\x5b\\x16\\x50\\xf1\\x47\\x1d\\xfc\\xb0\\x52\\x2d\\x49\\xfe\\xc7\\xd0\\x42\\xf3\\x2a\\x93\\xbc\\x36\\x8f\\x07\\x60\\x06\\xea\\x01\\xec\\x1c\\x74\\x12\\xbf\\x66\\xf6\\x2d\\xc8\\x8d\\xe2\\xc0\\xb7\\x47\\x01\\xa5\\x61\\x4e\\x85\\x5e\\x9f\\xa7\\x28\\xfb\\x1f\\x11\\x71\\x38\\x5f\\x96\\xaf\\xbd\\xe7\\x0d\\xea\\x02\\xe9\\xaa\\x94\\xdc\\x21\\x84\\x8c\\x26\\x30\\x2b\\x50\\xae\\x91\\xf9\\x69\\x3a\\x18\\x64\\xe4\\xe0\\x95\\xae\\x03\\xcd\\xc2\\x2a\\xd2\\x8a\\x0e\\xb7\\xdb\\x59\\x67\\x79\\x24\\x67\\x12\\xfa\\xb5\\xf5\\xda\\x32\\x7e\\xfe\\xc3\\xe7\\x96\\x12\\xde\\x0a\\x6c\\xca\\xa5\\x36\\x75\\x9b\\x8e\"},\n{{0xa2,0x83,0x6a,0x65,0x42,0x79,0x12,0x12,0x2d,0x25,0xdc,0xdf,0xc9,0x9d,0x70,0x46,0xfe,0x9b,0x53,0xd5,0xc1,0xbb,0x23,0x61,0x7f,0x11,0x89,0x0e,0x94,0xca,0x93,0xed,},{0x8c,0x12,0xbd,0xa2,0x14,0xc8,0xab,0xb2,0x28,0x6a,0xcf,0xfb,0xf8,0x11,0x24,0x25,0x04,0x0a,0xab,0x9f,0x4d,0x8b,0xb7,0x87,0x0b,0x98,0xda,0x01,0x59,0xe8,0x82,0xf1,},{0xe6,0xa9,0xa6,0xb4,0x36,0x55,0x9a,0x43,0x20,0xc4,0x5c,0x0c,0x2c,0x4a,0x2a,0xed,0xec,0xb9,0x0d,0x41,0x6d,0x52,0xc8,0x26,0x80,0xac,0x73,0x30,0xd0,0x62,0xae,0xbe,0xf3,0xe9,0xac,0x9f,0x2c,0x5f,0xfa,0x45,0x5c,0x9b,0xe1,0x13,0x01,0x3a,0x2b,0x28,0x2e,0x56,0x00,0xfd,0x30,0x64,0x35,0xad,0xa8,0x3b,0x1e,0x48,0xba,0x2a,0x36,0x05,},\"\\x81\\x3d\\x60\\x61\\xc5\\x6e\\xae\\x0f\\xf5\\x30\\x41\\xc0\\x24\\x4a\\xa5\\xe2\\x9e\\x13\\xec\\x0f\\x3f\\xb4\\x28\\xd4\\xbe\\xb8\\xa9\\x9e\\x04\\xbc\\xa8\\xc4\\x1b\\xdd\\xb0\\xdb\\x94\\x5f\\x48\\x7e\\xfe\\x38\\xf2\\xfc\\x14\\xa6\\x28\\xfa\\xfa\\x24\\x62\\xf8\\x60\\xe4\\xe3\\x42\\x50\\xeb\\x4e\\x93\\xf1\\x39\\xab\\x1b\\x74\\xa2\\x61\\x45\\x19\\xe4\\x1e\\xe2\\x40\\x3b\\xe4\\x27\\x93\\x0a\\xb8\\xbc\\x82\\xec\\x89\\xce\\xaf\\xb6\\x09\\x05\\xbd\\x4d\\xdb\\xbd\\x13\\xbd\\xb1\\x96\\x54\\x31\\x4f\\xc9\\x23\\x73\\x14\\x0b\\x96\\x2e\\x22\\x58\\xe0\\x38\\xd7\\x1b\\x9e\\xc6\\x6b\\x84\\xef\\x83\\x19\\xe0\\x35\\x51\\xcb\\x70\\x7e\\x74\\x7f\\x6c\\x40\\xad\\x47\\x6f\\xbe\\xfd\\xce\\x71\\xf3\\xa7\\xb6\\x7a\\x1a\\xf1\\x86\\x9b\\xc6\\x44\\x06\\x86\\xe7\\xe0\\x85\\x5e\\x4f\\x36\\x9d\\x1d\\x88\\xb8\\x09\\x9f\\xba\\x54\\x71\\x46\\x78\\x62\\x7b\\xba\\x1a\\xff\\x41\\xe7\\x70\\x7b\\xc9\\x7e\\xdd\\xf8\\x90\\xb0\\xc0\\x8d\\xce\\x3e\\x98\\x00\\xd2\\x4c\\x6f\\x61\\x09\\x2c\\xe2\\x8d\\x48\\x1b\\x5d\\xea\\x5c\\x09\\x6c\\x55\\xd7\\x2f\\x89\\x46\\x00\\x91\\x31\\xfb\\x96\\x8e\\x2b\\xc8\\xa0\\x54\\xd8\\x25\\xad\\xab\\x76\\x74\\x0d\\xcf\\x0d\\x75\\x8c\\x8b\\xf5\\x4f\\xf3\\x86\\x59\\xe7\\x1b\\x32\\xbf\\xe2\\xe6\\x15\\xaa\\xab\\xb0\\xf5\\x29\\x30\\x85\\x64\\x9c\\xf6\\x0b\\x98\\x47\\xbc\\x62\\x01\\x1c\\xe3\\x87\\x8a\\xf6\\x28\\x98\\x4a\\x58\\x40\\xa4\\xad\\x5d\\xae\\x37\\x02\\xdb\\x36\\x7d\\xa0\\xf8\\xa1\\x65\\xfe\\xd0\\x51\\x7e\\xb5\\xc4\\x42\\xb0\\x14\\x53\\x30\\x24\\x1b\\x97\\xee\\xca\\x73\\x3b\\xa6\\x68\\x8b\\x9c\\x12\\x9a\\x61\\xcd\\x12\\x36\\xaf\\xf0\\xe2\\x7b\\xcf\\x98\\xc2\\x8b\\x0f\\xbe\\xea\\x55\\xa3\\xd7\\xc7\\x19\\x3d\\x64\\x4b\\x27\\x49\\xf9\\x86\\xbd\\x46\\xaf\\x89\\x38\\xe8\\xfa\\xae\\xaf\\xbd\\x9c\\xec\\x36\\x12\\xab\\x00\\x5b\\xd7\\xc3\\xee\\xaf\\xe9\\xa3\\x12\\x79\\xca\\x61\\x02\\x56\\x06\\x66\\xba\\x16\\x13\\x6f\\xf1\\x45\\x2f\\x85\\x0a\\xdb\"},\n{{0xf0,0x51,0xaf,0x42,0x6d,0x0c,0x32,0x82,0xfa,0xfc,0x8b,0xf9,0x12,0xad,0xe1,0xc2,0x42,0x11,0xa9,0x5a,0xd2,0x00,0xe1,0xee,0xf5,0x49,0x32,0x0e,0x1c,0xb1,0xa2,0x52,},{0xfa,0x87,0x95,0x5e,0x0e,0xa1,0x3d,0xde,0x49,0xd8,0x3d,0xc2,0x2e,0x63,0xa2,0xbd,0xf1,0x07,0x67,0x25,0xc2,0xcc,0x7f,0x93,0xc7,0x65,0x11,0xf2,0x8e,0x79,0x44,0xf2,},{0xb8,0xf7,0x13,0x57,0x8a,0x64,0x46,0x67,0x19,0xac,0xeb,0x43,0x2f,0xce,0x30,0x2a,0x87,0xcf,0x06,0x6b,0xf3,0xe1,0x02,0xa3,0x50,0x61,0x69,0x21,0xa8,0x40,0x96,0x4b,0xfc,0x7e,0x68,0x5d,0x8f,0xd1,0x74,0x55,0xac,0x3e,0xb4,0x86,0x1e,0xdc,0xb8,0x97,0x9d,0x35,0xe3,0xa4,0xbd,0x82,0xa0,0x78,0xcd,0x70,0x77,0x21,0xd7,0x33,0x40,0x0e,},\"\\xb4\\x8d\\x9f\\x84\\x76\\x2b\\x3b\\xcc\\x66\\xe9\\x6d\\x76\\xa6\\x16\\xfa\\x8f\\xe8\\xe0\\x16\\x95\\x25\\x1f\\x47\\xcf\\xc1\\xb7\\xb1\\x7d\\x60\\xdc\\x9f\\x90\\xd5\\x76\\xef\\x64\\xee\\x7d\\x38\\x85\\x04\\xe2\\xc9\\x07\\x96\\x38\\x16\\x5a\\x88\\x96\\x96\\x47\\x1c\\x98\\x9a\\x87\\x6f\\x8f\\x13\\xb6\\x3b\\x58\\xd5\\x31\\xfe\\xa4\\xdd\\x12\\x29\\xfc\\x63\\x16\\x68\\xa0\\x47\\xbf\\xae\\x2d\\xa2\\x81\\xfe\\xae\\x1b\\x6d\\xe3\\xeb\\xe2\\x80\\xab\\xe0\\xa8\\x2e\\xe0\\x0f\\xbf\\xdc\\x22\\xce\\x2d\\x10\\xe0\\x6a\\x04\\x92\\xff\\x14\\x04\\xdf\\xc0\\x94\\xc4\\x0b\\x20\\x3b\\xf5\\x57\\x21\\xdd\\x78\\x7e\\xd4\\xe9\\x1d\\x55\\x17\\xaa\\xf5\\x8d\\x3b\\xdd\\x35\\xd4\\x4a\\x65\\xae\\x6b\\xa7\\x56\\x19\\xb3\\x39\\xb6\\x50\\x51\\x8c\\xef\\xcc\\x17\\x49\\x3d\\xe2\\x7a\\x3b\\x5d\\x41\\x78\\x8f\\x87\\xed\\xbd\\xe7\\x26\\x10\\xf1\\x81\\xbf\\x06\\xe2\\x08\\xe0\\xeb\\x7c\\xdf\\xe8\\x81\\xd9\\x1a\\x2d\\x6c\\xc7\\x7a\\xa1\\x9c\\x0f\\xcf\\x33\\x0f\\xed\\xb4\\x46\\x75\\xd8\\x00\\xeb\\x8c\\xff\\x95\\x05\\xd8\\x88\\x75\\x44\\xa5\\x03\\xcb\\xe3\\x73\\xc4\\x84\\x7b\\x19\\xe8\\xf3\\x99\\x57\\x26\\xef\\xd6\\x64\\x98\\x58\\x59\\x5c\\x57\\xcc\\xaf\\x0c\\xbc\\x9e\\xb2\\x5d\\xe8\\x3b\\xa0\\x46\\xbc\\x9f\\x18\\x38\\xac\\x7b\\x89\\x53\\xdd\\x81\\xb8\\x1a\\xc0\\xf6\\x8d\\x0e\\x93\\x38\\xcb\\x55\\x40\\x25\\x52\\xaf\\xb6\\xbc\\x16\\x94\\x93\\x51\\xb9\\x26\\xd1\\x51\\xa8\\x2e\\xfc\\x69\\x5e\\x8d\\x7d\\xa0\\xdd\\x55\\x09\\x93\\x66\\x78\\x97\\x18\\xcc\\xbf\\x36\\x03\\x0b\\xd2\\xc3\\xc1\\x09\\x39\\x9b\\xe2\\x6c\\xdb\\x8b\\x9e\\x2a\\x15\\x5f\\x3b\\x2c\\xb1\\xbf\\xa7\\x1a\\xb6\\x9a\\x23\\x62\\x5a\\x4a\\xc1\\x18\\xfe\\x91\\xcb\\x2c\\x19\\x78\\x8c\\xf5\\x2a\\x71\\xd7\\x30\\xd5\\x76\\xb4\\x21\\xd9\\x69\\x82\\xa5\\x1a\\x29\\x91\\xda\\xec\\x44\\x0c\\xda\\x7e\\x6c\\xc3\\x28\\x2b\\x83\\x12\\x71\\x42\\x78\\xb8\\x19\\xbf\\xe2\\x38\\x7e\\xb9\\x6a\\xa9\\x1d\\x40\\x17\\x30\\x34\\xf4\\x28\"},\n{{0xa1,0x03,0xe9,0x26,0x72,0xc6,0x5f,0x81,0xea,0x5d,0xa1,0xff,0xf1,0xa4,0x03,0x87,0x88,0x47,0x9e,0x94,0x1d,0x50,0x3a,0x75,0x6f,0x4a,0x75,0x52,0x01,0xa5,0x7c,0x1d,},{0xee,0x63,0xa5,0xb6,0x96,0x41,0x21,0x7a,0xcb,0xaf,0x33,0x39,0xda,0x82,0x9e,0xc0,0x71,0xb9,0x93,0x1e,0x59,0x87,0x15,0x35,0x14,0xd3,0x01,0x40,0x83,0x7a,0x7a,0xf4,},{0x2a,0xa2,0x03,0x5c,0x2c,0xe5,0xb5,0xe6,0xae,0x16,0x1e,0x16,0x8f,0x3a,0xd0,0xd6,0x59,0x2b,0xcf,0x2c,0x4a,0x04,0x9d,0x3e,0xd3,0x42,0xfc,0xeb,0x56,0xbe,0x9c,0x7c,0xb3,0x72,0x02,0x75,0x73,0xae,0x01,0x78,0xe8,0x87,0x8e,0xbe,0xfc,0xa7,0xb0,0x30,0x32,0x7b,0x8a,0xad,0x41,0x85,0x7d,0xe5,0x8c,0xb7,0x8e,0x1a,0x00,0xcb,0xac,0x05,},\"\\xb1\\x98\\x4e\\x9e\\xec\\x08\\x5d\\x52\\x4c\\x1e\\xb3\\xb9\\x5c\\x89\\xc8\\x4a\\xe0\\x85\\xbe\\x5d\\xc6\\x5c\\x32\\x6e\\x19\\x02\\x5e\\x12\\x10\\xa1\\xd5\\x0e\\xdb\\xbb\\xa5\\xd1\\x37\\x0c\\xf1\\x5d\\x68\\xd6\\x87\\xeb\\x11\\x32\\x33\\xe0\\xfb\\xa5\\x0f\\x94\\x33\\xc7\\xd3\\x58\\x77\\x39\\x50\\xc6\\x79\\x31\\xdb\\x82\\x96\\xbb\\xcb\\xec\\xec\\x88\\x8e\\x87\\xe7\\x1a\\x2f\\x75\\x79\\xfa\\xd2\\xfa\\x16\\x2b\\x85\\xfb\\x97\\x47\\x3c\\x45\\x6b\\x9a\\x5c\\xe2\\x95\\x66\\x76\\x96\\x9c\\x7b\\xf4\\xc4\\x56\\x79\\x08\\x5b\\x62\\xf2\\xc2\\x24\\xfc\\x7f\\x45\\x87\\x94\\x27\\x3f\\x6d\\x12\\xc5\\xf3\\xe0\\xd0\\x69\\x51\\x82\\x4d\\x1c\\xca\\x3e\\x2f\\x90\\x45\\x59\\xed\\x28\\xe2\\x86\\x8b\\x36\\x6d\\x79\\xd9\\x4d\\xc9\\x86\\x67\\xb9\\xb5\\x92\\x42\\x68\\xf3\\xe3\\x9b\\x12\\x91\\xe5\\xab\\xe4\\xa7\\x58\\xf7\\x70\\x19\\xda\\xcb\\xb2\\x2b\\xd8\\x19\\x6e\\x0a\\x83\\xa5\\x67\\x76\\x58\\x83\\x6e\\x96\\xca\\x56\\x35\\x05\\x5a\\x1e\\x63\\xd6\\x5d\\x03\\x6a\\x68\\xd8\\x7a\\xc2\\xfd\\x28\\x3f\\xdd\\xa3\\x90\\x31\\x99\\x09\\xc5\\xcc\\x76\\x80\\x36\\x88\\x48\\x87\\x3d\\x59\\x7f\\x29\\x8e\\x0c\\x61\\x72\\x30\\x80\\x30\\xff\\xd4\\x52\\xbb\\x13\\x63\\x61\\x7b\\x31\\x6e\\xd7\\xcd\\x94\\x9a\\x16\\x5d\\xc8\\xab\\xb5\\x3f\\x99\\x1a\\xef\\x3f\\x3e\\x95\\x02\\xc5\\xdf\\xe4\\x75\\x6b\\x7c\\x6b\\xfd\\xfe\\x89\\xf5\\xe0\\x0f\\xeb\\xdd\\x6a\\xfb\\x04\\x02\\x81\\x8f\\x11\\xcf\\x8d\\x1d\\x58\\x64\\xfe\\x9d\\xa1\\xb8\\x6e\\x39\\xaa\\x93\\x58\\x31\\x50\\x6c\\xf2\\x40\\x0e\\xa7\\xed\\x75\\xbd\\x95\\x33\\xb2\\x3e\\x20\\x2f\\xe8\\x75\\xd7\\xd9\\x63\\x8c\\x89\\xd1\\x1c\\xb2\\xd6\\xe6\\x02\\x1a\\xe6\\xbd\\x27\\xc7\\x75\\x48\\x10\\xd3\\x5c\\xd3\\xa6\\x14\\x94\\xf2\\x7b\\x16\\xfc\\x79\\x4e\\x2c\\xd2\\xf0\\xd3\\x45\\x3a\\xda\\x93\\x38\\x65\\xdb\\x78\\xc5\\x79\\x57\\x1f\\x8f\\xc5\\xc5\\xc6\\xbe\\x8e\\xaf\\xfc\\xe6\\xa8\\x52\\xe5\\xb3\\xb1\\xc5\\x24\\xc4\\x93\\x13\\xd4\\x27\\xab\\xcb\"},\n{{0xd4,0x7c,0x1b,0x4b,0x9e,0x50,0xcb,0xb7,0x1f,0xd0,0x7d,0x09,0x6d,0x91,0xd8,0x72,0x13,0xd4,0x4b,0x02,0x43,0x73,0x04,0x47,0x61,0xc4,0x82,0x2f,0x9d,0x9d,0xf8,0x80,},{0xf4,0xe1,0xcb,0x86,0xc8,0xca,0x2c,0xfe,0xe4,0x3e,0x58,0x59,0x4a,0x87,0x78,0x43,0x6d,0x3e,0xa5,0x19,0x70,0x4e,0x00,0xc1,0xbb,0xe4,0x8b,0xbb,0x1c,0x94,0x54,0xf8,},{0x62,0x7e,0x7c,0xa7,0xe3,0x4e,0xd6,0x33,0x1d,0x62,0xb9,0x54,0x1c,0x1e,0xa9,0xa9,0x29,0x2b,0xe7,0xb0,0xa6,0x5d,0x80,0x5e,0x26,0x6b,0x51,0x22,0x27,0x2a,0x82,0xdb,0x7d,0x76,0x5a,0xcc,0x7e,0x2a,0x29,0x0d,0x68,0x58,0x04,0x92,0x2f,0x91,0xed,0x04,0xa3,0xc3,0x82,0xc0,0x3f,0xf2,0x1a,0x17,0x68,0xf5,0x84,0x41,0x3c,0x4e,0x5f,0x00,},\"\\x88\\xd7\\x00\\x9d\\x51\\xde\\x3d\\x33\\x7e\\xef\\x0f\\x21\\x5e\\xa6\\x6a\\xb8\\x30\\xec\\x5a\\x9e\\x68\\x23\\x76\\x1c\\x3b\\x92\\xad\\x93\\xea\\x34\\x1d\\xb9\\x2e\\xce\\x67\\xf4\\xef\\x4c\\xeb\\x84\\x19\\x4a\\xe6\\x92\\x6c\\x3d\\x01\\x4b\\x2d\\x59\\x78\\x1f\\x02\\xe0\\xb3\\x2f\\x9a\\x61\\x12\\x22\\xcb\\x9a\\x58\\x50\\xc6\\x95\\x7c\\xb8\\x07\\x9a\\xe6\\x4e\\x08\\x32\\xa1\\xf0\\x5e\\x5d\\x1a\\x3c\\x57\\x2f\\x9d\\x08\\xf1\\x43\\x7f\\x76\\xbb\\x3b\\x83\\xb5\\x29\\x67\\xc3\\xd4\\x8c\\x35\\x76\\x84\\x88\\x91\\xc9\\x65\\x8d\\x49\\x59\\xeb\\x80\\x65\\x6d\\x26\\xcd\\xba\\x08\\x10\\x03\\x7c\\x8a\\x18\\x31\\x8f\\xf1\\x22\\xf8\\xaa\\x89\\x85\\xc7\\x73\\xcb\\x31\\x7e\\xfa\\x2f\\x55\\x7f\\x1c\\x38\\x96\\xbc\\xb1\\x62\\xdf\\x5d\\x87\\x68\\x1b\\xb7\\x87\\xe7\\x81\\x3a\\xa2\\xde\\xa3\\xb0\\xc5\\x64\\xd6\\x46\\xa9\\x28\\x61\\xf4\\x44\\xca\\x14\\x07\\xef\\xba\\xc3\\xd1\\x24\\x32\\xcb\\xb7\\x0a\\x1d\\x0e\\xaf\\xfb\\x11\\x74\\x1d\\x37\\x18\\xfe\\xde\\xe2\\xb8\\x30\\x36\\x18\\x9a\\x6f\\xc4\\x5a\\x52\\xf7\\x4f\\xa4\\x87\\xc1\\x8f\\xd2\\x64\\xa7\\x94\\x5f\\x6c\\x9e\\x44\\xb0\\x11\\xf5\\xd8\\x66\\x13\\xf1\\x93\\x9b\\x19\\xf4\\xf4\\xfd\\xf5\\x32\\x34\\x05\\x7b\\xe3\\xf0\\x05\\xad\\x64\\xee\\xbf\\x3c\\x8f\\xfb\\x58\\xcb\\x40\\x95\\x6c\\x43\\x36\\xdf\\x01\\xd4\\x42\\x4b\\x70\\x6a\\x0e\\x56\\x1d\\x60\\x17\\x08\\xd1\\x24\\x85\\xe2\\x1b\\xcb\\x6d\\x79\\x9d\\x8d\\x1d\\x04\\x4b\\x40\\x00\\x64\\xec\\x09\\x44\\x50\\x14\\x06\\xe7\\x02\\x53\\x94\\x70\\x06\\xca\\xbb\\xdb\\x2d\\xd6\\xbd\\x8c\\xee\\x44\\x97\\x65\\x3d\\x91\\x13\\xa4\\x4d\\x4d\\xe9\\xb6\\x8d\\x4c\\x52\\x6f\\xca\\x0b\\x9b\\x0c\\x18\\xfe\\x50\\xfb\\x91\\x7f\\xdd\\x9a\\x91\\x4f\\xb8\\x16\\x10\\x8a\\x73\\xa6\\xb3\\xff\\xf9\\xe6\\x54\\xe6\\x9c\\x9c\\xfe\\x02\\xb0\\x5c\\x6c\\x1b\\x9d\\x15\\xc4\\xe6\\x5c\\xf3\\x10\\x18\\xb8\\x10\\x0d\\x78\\x46\\x33\\xee\\x18\\x88\\xee\\xe3\\x57\\x2a\\xaf\\xa6\\xf1\\x89\\xea\\x22\\xd0\"},\n{{0xfc,0x0c,0x32,0xc5,0xeb,0x6c,0x71,0xea,0x08,0xdc,0x2b,0x30,0x0c,0xbc,0xef,0x18,0xfd,0xde,0x3e,0xa2,0x0f,0x68,0xf2,0x17,0x33,0x23,0x7b,0x4d,0xda,0xab,0x90,0x0e,},{0x47,0xc3,0x7d,0x8a,0x08,0x08,0x57,0xeb,0x87,0x77,0xa6,0xc0,0xa9,0xa5,0xc9,0x27,0x30,0x3f,0xaf,0x5c,0x32,0x09,0x53,0xb5,0xde,0x48,0xe4,0x62,0xe1,0x2d,0x00,0x62,},{0x68,0x87,0xc6,0xe2,0xb9,0x8a,0x82,0xaf,0x5e,0xe3,0xdf,0xa7,0xca,0x2c,0xb2,0x5d,0x9c,0x10,0x74,0x56,0x20,0xa8,0x29,0x56,0xac,0xba,0x85,0xcb,0x57,0xc8,0xec,0x24,0x27,0x9f,0xa4,0x2f,0x09,0x23,0x59,0xa1,0xb6,0xbb,0xea,0xfb,0xa0,0x50,0xf1,0x4b,0x62,0x88,0x20,0x9e,0x6e,0xf7,0xbc,0x1e,0x0a,0x2b,0x87,0x2c,0x11,0x38,0xf3,0x05,},\"\\xa7\\xb1\\xe2\\xdb\\x6b\\xdd\\x96\\xb3\\xd5\\x14\\x75\\x60\\x35\\x37\\xa7\\x6b\\x42\\xb0\\x4d\\x7e\\xbd\\x24\\xfe\\x51\\x5a\\x88\\x76\\x58\\xe4\\xa3\\x52\\xe2\\x21\\x09\\x33\\x56\\x39\\xa5\\x9e\\x25\\x34\\x81\\x1f\\x47\\x53\\xb7\\x02\\x09\\xd0\\xe4\\x69\\x8e\\x9d\\x92\\x60\\x88\\x82\\x6c\\x14\\x68\\x96\\x81\\xea\\x00\\xfa\\x3a\\x2f\\xca\\xa0\\x04\\x7c\\xed\\x3e\\xf2\\x87\\xe6\\x17\\x25\\x02\\xb2\\x15\\xe5\\x64\\x97\\x61\\x4d\\x86\\xb4\\xcb\\x26\\xbc\\xd7\\x7a\\x2e\\x17\\x25\\x09\\x36\\x0e\\xe5\\x88\\x93\\xd0\\x1c\\x0d\\x0f\\xb4\\xd4\\xab\\xfe\\x4d\\xbd\\x8d\\x2a\\x2f\\x54\\x19\\x0f\\xa2\\xf7\\x31\\xc1\\xce\\xac\\x68\\x29\\xc3\\xdd\\xc9\\xbf\\xb2\\xff\\xd7\\x0c\\x57\\xba\\x0c\\x2b\\x22\\xd2\\x32\\x6f\\xbf\\xe7\\x39\\x0d\\xb8\\x80\\x9f\\x73\\x54\\x7f\\xf4\\x7b\\x86\\xc3\\x6f\\x2b\\xf7\\x45\\x4e\\x67\\x8c\\x4f\\x1c\\x0f\\xa8\\x70\\xbd\\x0e\\x30\\xbb\\xf3\\x27\\x8e\\xc8\\xd0\\xc5\\xe9\\xb6\\x4a\\xff\\x0a\\xf6\\x4b\\xab\\xc1\\x9b\\x70\\xf4\\xcf\\x9a\\x41\\xcb\\x8f\\x95\\xd3\\xcd\\xe2\\x4f\\x45\\x6b\\xa3\\x57\\x1c\\x8f\\x02\\x1d\\x38\\xe5\\x91\\xde\\xc0\\x5c\\xb5\\xd1\\xca\\x7b\\x48\\xf9\\xda\\x4b\\xd7\\x34\\xb0\\x69\\xa9\\xfd\\x10\\x65\\x00\\xc1\\xf4\\x08\\xab\\x7f\\xe8\\xe4\\xa6\\xe6\\xf3\\xed\\x64\\xda\\x0e\\xd2\\x4b\\x01\\xe3\\x3d\\xf8\\x47\\x5f\\x95\\xfa\\x9e\\xd7\\x1d\\x04\\xdd\\x30\\xb3\\xcd\\x82\\x37\\x55\\xa3\\x40\\x1b\\xf5\\xaf\\xae\\x10\\xee\\x7e\\x18\\xec\\x6f\\xe6\\x37\\xc3\\x79\\x3f\\xd4\\x34\\xb4\\x8d\\x71\\x45\\x13\\x04\\x47\\xe0\\x02\\x99\\x10\\x10\\x52\\x55\\x8b\\x50\\x65\\x54\\xec\\x9c\\x39\\x9f\\x62\\x94\\x1c\\x3f\\x41\\x4c\\xbc\\x35\\x2c\\xaa\\x34\\x5b\\x93\\x0a\\xde\\xcf\\xad\\xda\\xc9\\x1e\\xe5\\x3d\\x14\\x51\\xa6\\x5e\\x06\\x20\\x10\\x26\\x32\\x5d\\xe0\\x7c\\x93\\x1f\\x69\\xbb\\xa8\\x68\\xa7\\xc8\\x7e\\xe2\\x3c\\x60\\x4e\\xc6\\x79\\x43\\x32\\x91\\x7d\\xfe\\x2c\\x5b\\x69\\x66\\x9b\\x65\\x97\\x06\\x91\\x7f\\x71\\xed\\xdf\\x96\"},\n{{0xa8,0xd7,0x3d,0x63,0x9a,0x23,0xcc,0x6a,0x96,0x7e,0xf3,0x1b,0xca,0xbb,0x5d,0x06,0x3e,0x53,0xe1,0xea,0xb8,0xfc,0xc7,0xca,0xb9,0xbc,0x3a,0x17,0xfd,0xe9,0xc2,0xf8,},{0x8d,0xaa,0x9f,0x4c,0x8b,0x1a,0x44,0x69,0x1b,0xf4,0x45,0x21,0xf2,0xf7,0xca,0x45,0xdc,0x7f,0xc6,0x1f,0x6a,0x4c,0xe6,0xf9,0x8f,0xaa,0x41,0xc2,0xa7,0x49,0x77,0xd1,},{0xc4,0xdc,0xef,0x1a,0x24,0x53,0x93,0x9b,0x36,0x4b,0x34,0x02,0x50,0xc3,0x12,0x94,0x31,0x43,0x1d,0x5b,0xa3,0xf4,0x76,0x70,0xab,0x07,0xce,0x68,0x0c,0x69,0xbf,0x28,0xb6,0x78,0x62,0x7c,0x76,0xa6,0x36,0x0f,0xc4,0x0d,0xc1,0x09,0xaa,0x7d,0xea,0x37,0x1b,0x82,0x5e,0x46,0x13,0x4f,0x62,0x45,0x72,0x18,0x2a,0xcf,0x39,0x57,0xe7,0x0f,},\"\\xfd\\x1f\\xac\\x3d\\x53\\x31\\x3b\\x11\\xac\\xd2\\x9f\\x5a\\x83\\xac\\x11\\x89\\x6d\\xab\\x25\\x30\\xfa\\x47\\x86\\x5b\\x22\\x95\\xc0\\xd9\\x9d\\xd6\\x7c\\x36\\xed\\x8e\\x5f\\xa5\\x49\\x15\\x0c\\x79\\x4c\\x55\\x49\\xef\\xb5\\xc1\\xd6\\x91\\x14\\xd5\\xd6\\x07\\xb2\\x32\\x85\\xb7\\x21\\x2a\\xfa\\xab\\x57\\x84\\x6a\\x54\\xae\\x67\\xb9\\xe8\\x80\\xe0\\x7b\\x65\\x86\\x60\\x7c\\xec\\xf6\\xd4\\xee\\xd5\\x16\\xa3\\xa7\\x55\\x11\\xfe\\x36\\x7d\\x88\\xeb\\x87\\x1e\\x6d\\x71\\xb7\\xd6\\xaa\\x13\\x67\\xa0\\x14\\x21\\xb1\\x08\\x8f\\xc2\\xd7\\x5e\\x44\\x95\\x4b\\x73\\x62\\x5c\\x52\\xda\\x8a\\x3a\\x18\\x3c\\x60\\xbe\\x9d\\xa6\\x05\\x0f\\x59\\xa4\\x53\\xca\\xa5\\x35\\x20\\x59\\x36\\x71\\x72\\x8d\\x43\\x18\\x77\\xbf\\xaa\\xc9\\x13\\xa7\\x65\\xfb\\x6a\\x56\\xb7\\x52\\x90\\xb2\\xa8\\xaa\\xac\\x34\\xaf\\xb9\\x21\\x7b\\xa1\\xb0\\xd5\\x85\\x0b\\xa0\\xfd\\xab\\xf8\\x09\\x69\\xde\\xf0\\xfe\\xee\\x79\\x4c\\xeb\\x60\\x61\\x4e\\x33\\x68\\xe6\\x3e\\xf2\\x0e\\x4c\\x32\\xd3\\x41\\xec\\x9b\\x03\\x28\\xea\\x9f\\xe1\\x39\\x20\\x7e\\xd7\\xa6\\x26\\xff\\x08\\x94\\x3b\\x41\\x52\\x33\\xdb\\x7c\\xfc\\xc8\\x45\\xc9\\xb6\\x31\\x21\\xd4\\xed\\x52\\xec\\x37\\x48\\xab\\x6a\\x1f\\x36\\xb2\\x10\\x3c\\x7d\\xc7\\xe9\\x30\\x3a\\xce\\xa4\\xba\\x8a\\xf7\\xa3\\xe0\\x71\\x84\\xfb\\x49\\x1e\\x89\\x1e\\xde\\x84\\xf0\\xdc\\x41\\xca\\xdc\\x39\\x73\\x02\\x8e\\x87\\x9a\\xcd\\x20\\x31\\xaf\\xc2\\x9a\\x16\\x09\\x28\\x68\\xe2\\xc7\\xf5\\x39\\xfc\\x1b\\x79\\x2e\\xda\\xb1\\x95\\xa2\\x5a\\xb9\\x83\\x06\\x61\\x34\\x6b\\x39\\xef\\x53\\x91\\x5d\\xe4\\xaf\\x52\\xc4\\x21\\xea\\xf1\\x72\\xe9\\xda\\x76\\xa0\\x8c\\x28\\x3a\\x52\\xdf\\x90\\x7f\\x70\\x5d\\x7e\\x85\\x99\\xc5\\xba\\xae\\x0c\\x2a\\xf3\\x80\\xc1\\xbb\\x46\\xf9\\x34\\x84\\xa0\\x3f\\x28\\x37\\x43\\x24\\xb2\\x78\\x99\\x2b\\x50\\xb7\\xaf\\xa0\\x25\\x52\\xca\\xfa\\x50\\x3f\\x03\\x4f\\x8d\\x86\\x6e\\x9b\\x72\\x02\\x71\\xdd\\x68\\xcc\\xb6\\x85\\xa8\\x5f\\xff\\xd1\"},\n{{0x79,0xc7,0xdc,0xb7,0xd5,0x9a,0x8d,0xf6,0xb2,0xb2,0xba,0x04,0x13,0x05,0x9d,0x89,0x68,0x09,0x95,0xc2,0x0e,0x91,0x6d,0xa0,0x1b,0x8f,0x06,0x7d,0xc6,0x0c,0xde,0xb4,},{0x29,0x87,0x43,0xc7,0x39,0x18,0xbd,0x55,0x6b,0x28,0xf8,0xd4,0x82,0x4a,0x09,0xb8,0x14,0x75,0x2a,0x7a,0xea,0xe7,0xee,0x04,0x87,0x5c,0x53,0xf4,0xd6,0xb1,0x08,0xd9,},{0x7b,0x7c,0xbe,0x44,0xc7,0x71,0xe4,0x37,0x1b,0xae,0x13,0xb0,0x72,0x2b,0xab,0xcc,0x10,0x64,0x15,0x57,0x32,0x96,0x2f,0x40,0x7c,0xba,0x2a,0xcd,0x35,0x38,0x1d,0x42,0x21,0x0b,0xec,0xe8,0x22,0xf4,0x68,0x11,0x21,0xfd,0x4d,0xab,0x74,0x5a,0x1f,0x30,0x77,0x92,0x2f,0xba,0x1a,0x78,0x04,0x5b,0x71,0x29,0x02,0xba,0xcc,0xac,0x66,0x0e,},\"\\x5f\\xe2\\x02\\xf5\\xb3\\x3b\\x77\\x88\\x81\\x0d\\x25\\x08\\xa1\\x3b\\x31\\x14\\xd6\\x9b\\x85\\x96\\xe6\\xea\\xcd\\xa0\\x5a\\x04\\xa2\\xeb\\x59\\x7f\\xa3\\x27\\x9c\\x20\\x8b\\x5a\\x5b\\x65\\xda\\xac\\xb6\\x99\\xf1\\x44\\xe1\\xd6\\x60\\xe7\\x8e\\x13\\x9b\\x57\\x83\\x31\\xab\\xec\\x5c\\x3c\\x35\\x33\\x44\\x54\\xf0\\x3e\\x83\\x2c\\x8d\\x6e\\x29\\x84\\xdf\\x5d\\x45\\x0e\\xcb\\x5d\\x33\\x58\\x2a\\x78\\x80\\x8a\\x9c\\x78\\xf2\\x6e\\xbc\\xd1\\x24\\x4e\\xf5\\x2e\\x3f\\xa6\\xdc\\xa1\\x15\\xc1\\xf0\\xcb\\x56\\xe3\\x8e\\xae\\x0e\\x5b\\x39\\xf5\\xfd\\x86\\x3d\\xff\\xd0\\xb2\\xfb\\x5b\\x95\\x8f\\x2d\\x73\\x9d\\xb3\\x12\\xfc\\x66\\x7a\\x17\\xb0\\x31\\xc4\\xc9\\xf8\\xc5\\xa2\\xad\\x57\\x79\\x84\\xcc\\x41\\x46\\xc4\\x37\\x58\\x0e\\xfd\\x21\\x52\\x17\\x3f\\xe0\\xd5\\x78\\x2c\\xc2\\xae\\x98\\x31\\xa8\\xd9\\xa0\\x41\\x77\\x25\\x60\\x18\\xff\\x76\\x31\\xe0\\xb0\\xd8\\xa9\\x9c\\xb2\\x8f\\x00\\x8b\\x32\\x04\\x21\\xe2\\x7a\\x74\\xc3\\x13\\x59\\x18\\x86\\x63\\x45\\x6d\\x85\\xe0\\x98\\xc1\\xeb\\xd2\\x81\\x70\\x10\\x97\\xb6\\xae\\x5a\\x87\\x1e\\x5c\\xcc\\x02\\x05\\x8a\\x50\\x14\\x16\\xcb\\x91\\xc1\\x2c\\xef\\x5b\\xe6\\xf1\\x91\\x43\\x70\\xe5\\x63\\xf1\\xa1\\xb2\\xaa\\x41\\xf4\\xb8\\xee\\x84\\xcd\\x32\\xa1\\xd5\\x09\\xe5\\x29\\x78\\x7d\\x14\\xa4\\x45\\x43\\x8d\\x80\\x7e\\xcd\\x62\\x0e\\x2f\\xa2\\x6d\\xe0\\xda\\x64\\x26\\x86\\x47\\x84\\xd4\\xa2\\x8f\\x54\\x10\\x3e\\x60\\x92\\x83\\xb9\\x9e\\xe9\\xb2\\xb6\\x99\\xc9\\x80\\xbb\\xb7\\x88\\x2c\\x3e\\xa6\\x8d\\xdc\\x90\\x80\\x2a\\xc2\\x32\\xf2\\xc8\\xe8\\x42\\x91\\x98\\x7b\\xf3\\xc5\\x24\\x09\\x21\\xb5\\x9c\\xfa\\x21\\x49\\x69\\x31\\x76\\x73\\xd0\\xbe\\x7f\\x34\\xb1\\xca\\x0e\\x15\\xea\\x73\\xc7\\x17\\x54\\x01\\xce\\x55\\x0b\\xe1\\x06\\xb4\\x9e\\x62\\xf8\\xdb\\x68\\x69\\x5e\\x74\\x0e\\x0f\\x3a\\x35\\x56\\xa1\\x9f\\x3c\\x8e\\x6b\\x91\\xac\\x1c\\xc2\\x3e\\x86\\x3f\\xcd\\x0f\\x0d\\x9e\\xb7\\x04\\x7a\\xa6\\x31\\xe0\\xd2\\xeb\\x9b\\xcc\\x6b\"},\n{{0xb9,0xce,0xd0,0x41,0x25,0x93,0xfe,0xfe,0xd9,0x5e,0x94,0xac,0x96,0x5e,0x5b,0x23,0xff,0x9d,0x4b,0x0e,0x79,0x7d,0xb0,0x2b,0xf4,0x97,0x99,0x4d,0x3b,0x79,0x3e,0x60,},{0xc1,0x62,0x9a,0x72,0x31,0x89,0x95,0x93,0x37,0xf5,0x53,0x52,0x01,0xe5,0xd3,0x95,0xba,0x0a,0x03,0xea,0x8c,0x17,0x66,0x0d,0x0f,0x8b,0x6f,0x6e,0x64,0x04,0xbb,0x12,},{0xf1,0xb7,0x97,0xde,0xd8,0xa6,0x94,0x2b,0x12,0x62,0x68,0x48,0x34,0x0f,0xb7,0x19,0xfc,0xdd,0xaf,0xd9,0x8f,0x33,0xe2,0x99,0x2d,0x35,0x7b,0xfd,0xd3,0x59,0x33,0xc7,0xac,0x56,0x1e,0x5b,0x2f,0x93,0x94,0x64,0x33,0x8c,0x56,0x66,0x85,0x4c,0xa8,0x85,0xc4,0xd0,0x46,0xeb,0x2c,0x54,0xe4,0x8a,0x1b,0x5e,0xd2,0x66,0xad,0x34,0xde,0x05,},\"\\x55\\x5b\\xb3\\x9c\\x18\\x99\\xd5\\x7c\\xab\\xe4\\x28\\x06\\x4c\\x2d\\x92\\x5f\\x5f\\xc4\\xcf\\x70\\x59\\xb9\\x5f\\xb8\\x9a\\x8e\\x9e\\x3a\\x7e\\x42\\x6c\\x6c\\x92\\x2d\\x9e\\x4d\\x76\\x98\\x4e\\xa2\\x38\\x3c\\xab\\xb4\\xf2\\xbe\\xfd\\x89\\xc1\\xf2\\x0e\\xaa\\x8a\\x00\\xdb\\xe7\\x87\\xcf\\xa7\\x0a\\xe2\\xae\\x6a\\xa9\\x03\\x31\\xcb\\xbe\\x58\\x0f\\xa5\\xa0\\x21\\x84\\xed\\x05\\xe6\\xc8\\xe8\\x9d\\x57\\x6a\\xf2\\x8a\\xee\\xaf\\x7c\\x4e\\x25\\x00\\xf3\\x58\\xa0\\x09\\x71\\xa0\\xa7\\x59\\x20\\xe8\\x54\\x84\\x9b\\xf3\\x32\\x14\\x29\\x75\\x40\\x4f\\x59\\x8c\\x32\\xe9\\x69\\x82\\x04\\x3d\\x99\\x2b\\xcd\\x1a\\x4f\\xe8\\x19\\xbb\\x56\\x34\\xad\\x03\\x46\\x7a\\xfc\\x4c\\xe0\\x50\\x73\\xf8\\x8b\\xa1\\xba\\x4a\\xe8\\x65\\x3a\\x04\\x66\\x5c\\xf3\\xf7\\x16\\x90\\xfe\\x13\\x34\\x38\\x85\\xbc\\x5e\\xbc\\x0e\\x5e\\x62\\xd8\\x82\\xf4\\x3b\\x7c\\x68\\x90\\x0a\\xc9\\x43\\x8b\\xf4\\xa8\\x1c\\xe9\\x01\\x69\\xec\\x12\\x9e\\xe6\\x3e\\x2c\\x67\\x5a\\x1a\\x5a\\x67\\xe2\\x7c\\xc7\\x98\\xc4\\x8c\\xc2\\x3f\\x51\\x07\\x8f\\x46\\x3b\\x3b\\x7c\\xc1\\x4e\\x3b\\xcf\\xd2\\xe9\\xb8\\x2c\\x75\\x24\\x09\\x34\\xcb\\xdc\\x50\\xc4\\x30\\x8f\\x28\\x2f\\x19\\x31\\x22\\x99\\x56\\x06\\xf4\\x01\\x35\\x10\\x0a\\x29\\x1c\\x55\\xaf\\xdf\\x89\\x34\\xeb\\x8b\\x61\\xd8\\x14\\x21\\x67\\x41\\x24\\xde\\xc3\\xb8\\x8f\\x9a\\x73\\x11\\x0a\\x9e\\x61\\x6f\\x5b\\x82\\x6b\\x9d\\x34\\x3f\\x3a\\xc0\\xe9\\xd7\\xbd\\xf4\\xfd\\x8b\\x64\\x8b\\x40\\xf0\\x09\\x8b\\x38\\x97\\xa3\\xa1\\xcd\\x65\\xa6\\x45\\x70\\x05\\x9b\\x8b\\xc5\\xc6\\x74\\x38\\x83\\x07\\x4c\\x88\\x62\\x3c\\x1f\\x5a\\x88\\xc5\\x89\\x69\\xe2\\x1c\\x69\\x2a\\xca\\x23\\x68\\x33\\xd3\\x47\\x0b\\x3e\\xb0\\x98\\x15\\xe1\\x13\\x8e\\x9d\\x06\\x50\\xc3\\x90\\xee\\xe9\\x77\\x42\\x21\\x93\\xb0\\x09\\x18\\xbe\\x8a\\x97\\xcc\\x61\\x99\\xb4\\x51\\xb0\\x5b\\x57\\x30\\xd1\\xd1\\x33\\x58\\xcf\\x74\\x61\\x06\\x78\\xf7\\xac\\x7f\\x78\\x95\\xcc\\x2e\\xfc\\x45\\x6e\\x03\\x87\\x3b\"},\n{{0x81,0xda,0x16,0x8f,0x02,0xd4,0x6b,0xb8,0x7c,0xda,0x84,0x5d,0xa4,0x3f,0x8a,0x6c,0xba,0x2c,0x01,0x68,0x78,0xd6,0xf4,0x9c,0x6f,0x06,0x1a,0x60,0xf1,0x55,0xa0,0x4a,},{0xaf,0xf8,0x6e,0x98,0x09,0x3c,0xa4,0xc7,0x1b,0x1b,0x80,0x4c,0x5f,0xe4,0x51,0xcf,0xdf,0x86,0x82,0x50,0xde,0xa3,0x03,0x45,0xfa,0x4b,0x89,0xbb,0x09,0xb6,0xa5,0x3b,},{0x4a,0xac,0xa9,0x47,0xe3,0xf2,0x2c,0xc8,0xb8,0x58,0x8e,0xe0,0x30,0xac,0xe8,0xf6,0xb5,0xf5,0x71,0x1c,0x29,0x74,0xf2,0x0c,0xc1,0x8c,0x3b,0x65,0x5b,0x07,0xa5,0xbc,0x13,0x66,0xb5,0x9a,0x17,0x08,0x03,0x2d,0x12,0xca,0xe0,0x1a,0xb7,0x94,0xf8,0xcb,0xcc,0x1a,0x33,0x08,0x74,0xa7,0x50,0x35,0xdb,0x1d,0x69,0x42,0x2d,0x2f,0xc0,0x0c,},\"\\x6b\\xc6\\x72\\x6a\\x34\\xa6\\x4a\\xae\\x76\\xab\\x08\\xc9\\x2b\\x17\\x9e\\x54\\xff\\x5d\\x2e\\x65\\xeb\\x2c\\x6c\\x65\\x9a\\xe8\\x70\\x3c\\xc2\\x45\\xcb\\xc2\\xcf\\x45\\xa1\\x2b\\x22\\xc4\\x68\\xae\\x61\\xfd\\x9a\\x66\\x27\\xad\\x06\\x26\\xc9\\xb1\\xe5\\xaf\\x41\\x2c\\xb4\\x83\\xea\\xee\\x1d\\xb1\\x1b\\x29\\xf0\\xa5\\x10\\xc1\\x3e\\x38\\x02\\x0e\\x09\\xae\\x0e\\xee\\x76\\x25\\x37\\xa3\\xe9\\xd1\\xa0\\xc7\\xb0\\x33\\xd0\\x97\\xfd\\xc1\\xf4\\xf8\\x26\\x29\\xa9\\xde\\x9e\\xf3\\x8d\\xa1\\xcf\\x96\\xa9\\x40\\x35\\x7d\\x5f\\x2e\\x0e\\x7e\\x8d\\xbc\\x29\\xdb\\x72\\x8a\\x1e\\x6a\\xad\\x87\\x6e\\x5e\\x05\\x31\\x13\\xd0\\x64\\x20\\x27\\x2b\\x87\\xcf\\x0c\\x40\\xdf\\xe0\\x3a\\x54\\x4d\\xe9\\x6c\\x7a\\xea\\x13\\xba\\x00\\x29\\xb5\\x7b\\x48\\xd9\\x9d\\xcc\\x6a\\x65\\x04\\x92\\xd7\\x8c\\x4c\\xdd\\x1b\\x28\\xe1\\xa1\\x15\\xa7\\xe3\\xe7\\xa7\\xcb\\x21\\x33\\x3d\\x4f\\xf8\\x08\\x58\\xdf\\xb6\\x77\\x82\\xc1\\x63\\x54\\xb8\\x71\\x65\\x96\\x56\\x0d\\x7d\\x8e\\x38\\x9e\\xb1\\x5a\\x05\\x2a\\x0b\\xf5\\xd1\\x6e\\xb5\\x4f\\xb3\\xe4\\x97\\x3a\\xd4\\x98\\x4e\\x72\\xa1\\x87\\xf5\\x34\\x7d\\x5b\\x26\\x2c\\x32\\xb1\\x64\\x7e\\x42\\xb6\\xa5\\x38\\x37\\x09\\x6c\\xc7\\x8c\\x2a\\x05\\xce\\x1c\\x6e\\x12\\x49\\x3a\\x03\\xf1\\xa6\\x67\\x58\\x4c\\xb9\\x7f\\x4f\\xcd\\x57\\xee\\x94\\x4c\\x65\\xb7\\xee\\xd2\\x5f\\x7a\\xe0\\xf3\\xf6\\xce\\xde\\x17\\x3f\\xdf\\xac\\xf5\\xaf\\x1d\\xb1\\x43\\x73\\x0d\\x18\\x09\\x66\\x64\\x91\\x4b\\xa4\\xcf\\xc6\\x96\\x6f\\x39\\x20\\x22\\x78\\x1c\\x66\\xa9\\x41\\x7c\\xa2\\x68\\x0b\\x51\\xf6\\x3e\\x4f\\xba\\x42\\x4e\\xcf\\xdb\\xc6\\xa2\\xf0\\x17\\x87\\xd0\\xe7\\x48\\x4f\\x8a\\x8a\\xb3\\x90\\xae\\xaa\\x6d\\x1f\\x7e\\xd3\\x25\\xd8\\x2f\\xea\\xa1\\x69\\x2a\\x49\\x84\\xfa\\xe4\\x3d\\xa8\\x73\\x29\\xb0\\x45\\xda\\x8f\\x0a\\x4f\\x56\\xb6\\x95\\xaa\\x93\\x5d\\xe1\\x52\\xce\\x03\\x85\\x15\\x37\\x20\\x97\\x9a\\x2b\\x70\\x06\\xd4\\x05\\xfc\\xb0\\xfb\\xa0\\x9e\\x23\\xb8\\x5f\\xd1\\x9b\"},\n{{0xaf,0x2e,0x60,0xda,0x0f,0x29,0xbb,0x16,0x14,0xfc,0x3f,0x19,0x3c,0xc3,0x53,0x33,0x19,0x86,0xb7,0x3f,0x3f,0x9a,0x0a,0xec,0x94,0x21,0xb9,0x47,0x3d,0x6a,0x4b,0x6a,},{0xc8,0xbf,0xe2,0x83,0x58,0x22,0x19,0x9c,0x61,0x27,0xb8,0x06,0xfa,0xbe,0xef,0x0c,0xb9,0xff,0x59,0xf3,0xc8,0x1f,0xf0,0xcb,0x89,0xc5,0x56,0xf5,0x51,0x06,0xaf,0x6a,},{0x50,0xf9,0xf9,0x41,0xa8,0xda,0x9f,0x62,0x40,0xf7,0x6d,0x2f,0xa3,0xb0,0x6d,0xd6,0xb2,0x29,0x2e,0xd3,0x2d,0x1c,0x05,0x21,0x80,0x97,0xd3,0x4d,0x8a,0x19,0xdf,0xe5,0x53,0xf7,0x6a,0xe3,0xc6,0xb4,0xa2,0xed,0x20,0x85,0x21,0x28,0x46,0x15,0x40,0xde,0xcf,0x41,0x8f,0x52,0xd3,0x8e,0x64,0x03,0x7e,0xec,0x77,0x71,0xbd,0x1a,0xfe,0x00,},\"\\x7d\\xbb\\x77\\xb8\\x8b\\xda\\x94\\xf3\\x44\\x41\\x6a\\x06\\xb0\\x96\\x56\\x6c\\x6e\\x8b\\x39\\x39\\x31\\xa8\\x24\\x3a\\x6c\\xab\\x75\\xc3\\x61\\xfd\\xe7\\xdc\\x53\\x6a\\xec\\x40\\xcd\\xed\\x83\\x29\\x6a\\x89\\xe8\\xc3\\xbe\\xf7\\xd7\\x87\\xcf\\xc4\\x94\\x01\\xa7\\xb9\\x18\\x3f\\x13\\x8d\\x50\\x00\\x61\\x9f\\xf0\\x73\\xc0\\x5e\\x2f\\x84\\x1d\\x60\\x08\\x35\\x8f\\x10\\xa2\\xda\\x7d\\xcf\\xac\\x3d\\x4d\\x70\\xc2\\x0d\\x2e\\xc3\\x4c\\x7b\\x6d\\x5c\\xd1\\xa7\\x34\\xd6\\xbb\\xb1\\x1c\\x5f\\xd8\\xd2\\xbc\\xe3\\x2a\\xc8\\x10\\xef\\x82\\xb4\\x18\\x8a\\xa8\\xea\\x3c\\xfc\\x30\\x32\\x23\\x3d\\xc0\\xe2\\x60\\x0e\\x9d\\xb6\\xe1\\x8b\\xc2\\x2b\\x10\\x04\\x4a\\x31\\xc1\\x5b\\xac\\xea\\xf5\\x55\\x4d\\xe8\\x9d\\x2a\\x34\\x66\\x80\\x7f\\x24\\x44\\x14\\xd0\\x80\\xff\\x29\\x63\\x95\\x6c\\x6e\\x83\\xc8\\xe1\\x44\\xed\\x00\\x66\\x08\\x8b\\x47\\x6d\\xdc\\xb5\\x64\\x40\\x34\\x47\\xd9\\x15\\x9f\\x90\\x89\\xab\\xa2\\xb4\\xd5\\x57\\x5c\\x4d\\x8a\\xe6\\x6f\\xc8\\x69\\x0e\\x73\\x49\\xed\\x40\\x83\\x2e\\x63\\x69\\xc0\\x24\\x56\\x3e\\xc4\\x93\\xbf\\xcc\\x0f\\xc9\\xac\\x78\\x7a\\xc8\\x41\\x39\\x7f\\xe1\\x33\\x16\\x72\\x83\\xd8\\x0c\\x42\\xf0\\x06\\xa9\\x9d\\x39\\xe8\\x29\\x79\\xda\\x3f\\xa9\\x33\\x4b\\xd9\\xed\\xe0\\xd1\\x4b\\x41\\xb7\\x46\\x6b\\xce\\xbb\\xe8\\x17\\x1b\\xc8\\x04\\xa6\\x45\\xd3\\x72\\x32\\x74\\xa1\\xb9\\x2b\\xf8\\x2f\\xd9\\x93\\x35\\x87\\x44\\xde\\x92\\x44\\x19\\x03\\xd4\\x36\\xfd\\x47\\xf2\\x3d\\x40\\x05\\x2a\\x38\\x29\\x36\\x7f\\x20\\x2f\\x05\\x53\\xb5\\xe4\\x9b\\x76\\xc5\\xe0\\x3f\\xa6\\xce\\x7c\\x3c\\xf5\\xee\\xb2\\x1d\\xe9\\x67\\xbe\\xc4\\xdd\\x35\\x59\\x25\\x38\\x4e\\xbf\\x96\\x69\\x7e\\x82\\x37\\x62\\xba\\xc4\\xd4\\x3a\\x76\\x7c\\x24\\x1a\\x4c\\xef\\x72\\x4a\\x97\\x0d\\x00\\xff\\x3a\\x8a\\xb3\\xb8\\x3e\\xed\\x84\\x00\\x75\\xc7\\x4e\\x90\\xf3\\x06\\xe3\\x30\\x01\\x32\\x60\\x96\\x21\\x61\\xe9\\xd0\\x91\\x0d\\xe1\\x83\\x62\\x2c\\xe9\\xa6\\xb8\\xd5\\x14\\x42\\x80\\x55\\x0f\\xc7\"},\n{{0x60,0x5f,0x90,0xb5,0x3d,0x8e,0x4a,0x3b,0x48,0xb9,0x7d,0x74,0x54,0x39,0xf2,0xa0,0x80,0x7d,0x83,0xb8,0x50,0x2e,0x8e,0x29,0x79,0xf0,0x3e,0x8d,0x37,0x6a,0xc9,0xfe,},{0xaa,0x3f,0xae,0x4c,0xfa,0x6f,0x6b,0xfd,0x14,0xba,0x0a,0xfa,0x36,0xdc,0xb1,0xa2,0x65,0x6f,0x36,0x54,0x1a,0xd6,0xb3,0xe6,0x7f,0x17,0x94,0xb0,0x63,0x60,0xa6,0x2f,},{0xdd,0x02,0x12,0xe6,0x32,0x88,0xcb,0xe1,0x4a,0x45,0x69,0xb4,0xd8,0x91,0xda,0x3c,0x7f,0x92,0x72,0x7c,0x5e,0x7f,0x9a,0x80,0x1c,0xf9,0xd6,0x82,0x70,0x85,0xe7,0x09,0x5b,0x66,0x9d,0x7d,0x45,0xf8,0x82,0xca,0x5f,0x07,0x45,0xdc,0xcd,0x24,0xd8,0x7a,0x57,0x18,0x13,0x20,0x19,0x1e,0x5b,0x7a,0x47,0xc3,0xf7,0xf2,0xdc,0xcb,0xd7,0x07,},\"\\x3b\\xcd\\xca\\xc2\\x92\\xac\\x95\\x19\\x02\\x4a\\xae\\xce\\xe2\\xb3\\xe9\\x99\\xff\\x5d\\x34\\x45\\xe9\\xf1\\xeb\\x60\\x94\\x0f\\x06\\xb9\\x12\\x75\\xb6\\xc5\\xdb\\x27\\x22\\xed\\x4d\\x82\\xfe\\x89\\x60\\x52\\x26\\x53\\x0f\\x3e\\x6b\\x07\\x37\\xb3\\x08\\xcd\\xe8\\x95\\x61\\x84\\x94\\x4f\\x38\\x8a\\x80\\x04\\x2f\\x6c\\xba\\x27\\x4c\\x0f\\x7d\\x11\\x92\\xa0\\xa9\\x6b\\x0d\\xa6\\xe2\\xd6\\xa6\\x1b\\x76\\x51\\x8f\\xbe\\xe5\\x55\\x77\\x3a\\x41\\x45\\x90\\xa9\\x28\\xb4\\xcd\\x54\\x5f\\xcc\\xf5\\x81\\x72\\xf3\\x58\\x57\\x12\\x0e\\xb9\\x6e\\x75\\xc5\\xc8\\xac\\x9a\\xe3\\xad\\xd3\\x67\\xd5\\x1d\\x34\\xac\\x40\\x34\\x46\\x36\\x0e\\xc1\\x0f\\x55\\x3e\\xa9\\xf1\\x4f\\xb2\\xb8\\xb7\\x8c\\xba\\x18\\xc3\\xe5\\x06\\xb2\\xf0\\x40\\x97\\x06\\x3a\\x43\\xb2\\xd3\\x64\\x31\\xcc\\xe0\\x2c\\xaf\\x11\\xc5\\xa4\\xdb\\x8c\\x82\\x17\\x52\\xe5\\x29\\x85\\xd5\\xaf\\x1b\\xfb\\xf4\\xc6\\x15\\x72\\xe3\\xfa\\xda\\xe3\\xad\\x42\\x4a\\xcd\\x81\\x66\\x2e\\xa5\\x83\\x7a\\x11\\x43\\xb9\\x66\\x93\\x91\\xd7\\xb9\\xcf\\xe2\\x30\\xcf\\xfb\\x3a\\x7b\\xb0\\x3f\\x65\\x91\\xc2\\x5a\\x4f\\x01\\xc0\\xd2\\xd4\\xac\\xa3\\xe7\\x4d\\xb1\\x99\\x7d\\x37\\x39\\xc8\\x51\\xf0\\x32\\x7d\\xb9\\x19\\xff\\x6e\\x77\\xf6\\xc8\\xa2\\x0f\\xdd\\x3e\\x15\\x94\\xe9\\x2d\\x01\\x90\\x1a\\xb9\\xae\\xf1\\x94\\xfc\\x89\\x3e\\x70\\xd7\\x8c\\x8a\\xe0\\xf4\\x80\\x00\\x1a\\x51\\x5d\\x4f\\x99\\x23\\xae\\x62\\x78\\xe8\\x92\\x72\\x37\\xd0\\x5d\\xb2\\x3e\\x98\\x4c\\x92\\xa6\\x83\\x88\\x2f\\x57\\xb1\\xf1\\x88\\x2a\\x74\\xa1\\x93\\xab\\x69\\x12\\xff\\x24\\x1b\\x9f\\xfa\\x66\\x2a\\x0d\\x47\\xf2\\x92\\x05\\xf0\\x84\\xdb\\xde\\x84\\x5b\\xaa\\xeb\\x5d\\xd3\\x6a\\xe6\\x43\\x9a\\x43\\x76\\x42\\xfa\\x76\\x3b\\x57\\xe8\\xdb\\xe8\\x4e\\x55\\x81\\x3f\\x01\\x51\\xe9\\x7e\\x5b\\x9d\\xe7\\x68\\xb2\\x34\\xb8\\xdb\\x15\\xc4\\x96\\xd4\\xbf\\xcf\\xa1\\x38\\x87\\x88\\x97\\x2b\\xb5\\x0c\\xe0\\x30\\xbc\\x6e\\x0c\\xcf\\x4f\\xa7\\xd0\\x0d\\x34\\x37\\x82\\xf6\\xba\\x8d\\xe0\"},\n{{0x9e,0x2c,0x3d,0x18,0x98,0x38,0xf4,0xdd,0x52,0xef,0x08,0x32,0x88,0x68,0x74,0xc5,0xca,0x49,0x39,0x83,0xdd,0xad,0xc0,0x7c,0xbc,0x57,0x0a,0xf2,0xee,0x9d,0x62,0x09,},{0xf6,0x8d,0x3b,0x81,0xe7,0x35,0x57,0xee,0x1f,0x08,0xbd,0x2d,0x3f,0x46,0xa4,0x71,0x82,0x56,0xa0,0xf3,0xcd,0x8d,0x2e,0x03,0xeb,0x8f,0xe8,0x82,0xaa,0xb6,0x5c,0x69,},{0x38,0xa3,0x1b,0x6b,0x46,0x50,0x84,0x73,0x82,0x62,0xa2,0x6c,0x06,0x5f,0xe5,0xd9,0xe2,0x88,0x6b,0xf9,0xdd,0x35,0xcd,0xe0,0x5d,0xf9,0xba,0xd0,0xcc,0x7d,0xb4,0x01,0xc7,0x50,0xaa,0x19,0xe6,0x60,0x90,0xbc,0xe2,0x5a,0x3c,0x72,0x12,0x01,0xe6,0x05,0x02,0xc8,0xc1,0x04,0x54,0x34,0x66,0x48,0xaf,0x06,0x5e,0xab,0x0e,0xe7,0xd8,0x0f,},\"\\x19\\x48\\x5f\\x52\\x38\\xba\\x82\\xea\\xdf\\x5e\\xff\\x14\\xca\\x75\\xcd\\x42\\xe5\\xd5\\x6f\\xea\\x69\\xd5\\x71\\x8c\\xfb\\x5b\\x1d\\x40\\xd7\\x60\\x89\\x9b\\x45\\x0e\\x66\\x88\\x45\\x58\\xf3\\xf2\\x5b\\x7c\\x3d\\xe9\\xaf\\xc4\\x73\\x8d\\x7a\\xc0\\x9d\\xa5\\xdd\\x46\\x89\\xbb\\xfa\\xc0\\x78\\x36\\xf5\\xe0\\xbe\\x43\\x2b\\x1d\\xdc\\xf1\\xb1\\xa0\\x75\\xbc\\x98\\x15\\xd0\\xde\\xbc\\x86\\x5d\\x90\\xbd\\x5a\\x0c\\x5f\\x56\\x04\\xd9\\xb4\\x6a\\xce\\x81\\x6c\\x57\\x69\\x4e\\xcc\\x3d\\x40\\xd8\\xf8\\x4d\\xf0\\xed\\xe2\\xbc\\x4d\\x57\\x77\\x75\\xa0\\x27\\xf7\\x25\\xde\\x08\\x16\\xf5\\x63\\xfa\\x88\\xf8\\x8e\\x07\\x77\\x20\\xeb\\xb6\\xac\\x02\\x57\\x46\\x04\\x81\\x98\\x24\\xdb\\x74\\x74\\xd4\\xd0\\xb2\\x2c\\xd1\\xbc\\x05\\x76\\x8e\\x0f\\xb8\\x67\\xca\\x1c\\x1a\\x7b\\x90\\xb3\\x4a\\xb7\\xa4\\x1a\\xfc\\x66\\x95\\x72\\x66\\xac\\x0c\\x91\\x59\\x34\\xaa\\xf3\\x1c\\x0c\\xf6\\x92\\x7a\\x4f\\x03\\xf2\\x32\\x85\\xe6\\xf2\\x4a\\xfd\\x58\\x13\\x84\\x9b\\xb0\\x8c\\x20\\x3a\\xc2\\xd0\\x33\\x6d\\xcb\\xf8\\x0d\\x77\\xf6\\xcf\\x71\\x20\\xed\\xfb\\xcd\\xf1\\x81\\xdb\\x10\\x7e\\xc8\\xe0\\x0f\\x32\\x44\\x9c\\x1d\\x3f\\x5c\\x04\\x9a\\x92\\x69\\x4b\\x4e\\xa2\\xc6\\xeb\\xe5\\xe2\\xb0\\xf6\\x4b\\x5a\\xe5\\x0a\\xd3\\x37\\x4d\\x24\\x6b\\x32\\x70\\x05\\x7e\\x72\\x4a\\x27\\xcf\\x26\\x3b\\x63\\x3a\\xb6\\x5e\\xcb\\x7f\\x5c\\x26\\x6b\\x80\\x07\\x61\\x8b\\x10\\xac\\x9a\\xc8\\x3d\\xb0\\xfe\\xbc\\x04\\xfd\\x86\\x3d\\x96\\x61\\xab\\x6e\\x58\\x49\\x47\\x66\\xf7\\x1b\\x9a\\x86\\x7c\\x5a\\x7a\\x45\\x55\\xf6\\x67\\xc1\\xaf\\x2e\\x54\\x58\\x8f\\x16\\x2a\\x41\\xce\\x75\\x64\\x07\\xcc\\x41\\x61\\xd6\\x07\\xb6\\xe0\\x68\\x29\\x80\\x93\\x4c\\xaa\\x1b\\xef\\x03\\x6f\\x73\\x30\\xd9\\xee\\xf0\\x1e\\xcc\\x55\\x35\\x83\\xfe\\xe5\\x99\\x4e\\x53\\x3a\\x46\\xca\\x91\\x6f\\x60\\xf8\\xb9\\x61\\xae\\x01\\xd2\\x0f\\x7a\\xbf\\x0d\\xf6\\x14\\x1b\\x60\\x4d\\xe7\\x33\\xc6\\x36\\xb4\\x20\\x18\\xcd\\x5f\\x1d\\x1e\\xf4\\xf8\\x4c\\xee\\x40\\xfc\"},\n{{0x31,0x01,0x0d,0x1d,0x67,0xeb,0x61,0x63,0x48,0xe8,0x47,0x92,0xb9,0x2d,0x5d,0xc1,0x28,0x55,0x3c,0xb5,0x2f,0x63,0x68,0x15,0x9f,0xe7,0xb8,0x16,0xcd,0x0e,0x7c,0x37,},{0x26,0x65,0x43,0xd9,0x67,0x87,0xca,0x90,0x1f,0xcf,0xf0,0x6e,0x6e,0x43,0x44,0x91,0xae,0x09,0x70,0x88,0x0a,0x5a,0x18,0x7d,0x53,0x5e,0xdb,0x19,0xdb,0x5c,0xab,0xeb,},{0x7b,0x1e,0xb6,0x77,0xc3,0xe5,0xe6,0xa8,0xb4,0xba,0x69,0xfc,0xb7,0xf6,0xb1,0x87,0x0e,0x42,0xa8,0xd5,0x89,0x58,0xa3,0x5c,0x67,0x4e,0x2d,0xb8,0x21,0x07,0x48,0x1c,0x4c,0x7b,0x37,0xf0,0xf6,0x89,0xd3,0x9d,0x9f,0x51,0xe1,0x81,0xb1,0x7b,0x11,0x08,0xc1,0x5a,0x3e,0x27,0xb2,0x9d,0xf3,0xa4,0x31,0x5d,0xcc,0x4f,0xaf,0x12,0x22,0x05,},\"\\x39\\xf8\\x9a\\x5e\\x7a\\xa5\\x30\\xb5\\x46\\x3d\\x49\\x8f\\x80\\x35\\xb9\\x90\\x9d\\x55\\xda\\x52\\x7c\\xdb\\xd4\\xde\\x6d\\x22\\x83\\x79\\xf0\\x89\\xe6\\x08\\xa9\\x20\\x7a\\x2c\\x5b\\x9c\\x42\\x05\\x1a\\x60\\xc8\\xca\\x3f\\xb9\\x7a\\x1c\\x06\\xcd\\x74\\x7d\\x9d\\x07\\x39\\x97\\x0c\\xeb\\x88\\xce\\x52\\x6f\\x97\\x11\\x40\\xea\\x2e\\xc2\\x1f\\x09\\x0b\\xa0\\x75\\xbf\\x89\\x75\\xfa\\xa5\\x08\\xb1\\xcc\\x10\\xef\\xa4\\x94\\xdc\\x17\\x2e\\x6d\\x3d\\x3f\\x3f\\x75\\xdc\\x8e\\x0e\\x96\\xf0\\x5c\\x0c\\xcc\\xb2\\xf9\\x6e\\x91\\x1c\\xfa\\x7a\\x2c\\x82\\xc9\\x84\\x50\\x18\\xbb\\x1f\\x9d\\x75\\xf8\\x2e\\x3d\\xfe\\x11\\x39\\x34\\x7b\\x2a\\xc0\\x58\\xb0\\x14\\xac\\x93\\x76\\x0c\\x90\\xf5\\x56\\x7a\\xb5\\xc4\\xeb\\xa0\\x4b\\x49\\xfb\\x09\\xdd\\xad\\xd3\\x05\\xbe\\x51\\x1d\\xfe\\x05\\xc9\\x6e\\xbc\\x86\\xfd\\x67\\xb5\\xd0\\xab\\x57\\xd8\\x5f\\x4f\\xe5\\xe2\\xf0\\xfa\\x9d\\x88\\xa6\\x8f\\x0f\\x6b\\x6b\\xc8\\xbb\\x94\\x4e\\xb3\\xc0\\xb1\\x75\\x57\\xe5\\x5d\\x5e\\xa1\\x87\\xd9\\x22\\xa4\\x28\\x13\\xe6\\x90\\x57\\xc9\\xb6\\xa7\\xf7\\x5e\\x49\\x92\\x1b\\x70\\x79\\xe5\\x8f\\x8a\\x63\\x71\\x9e\\xe3\\xe1\\xad\\x10\\xcf\\x0e\\x8a\\x70\\xc4\\xf1\\x54\\x02\\x18\\xb7\\x04\\x94\\xbd\\x02\\x9e\\xe0\\x2f\\xf9\\x72\\x7a\\x7d\\x85\\xd3\\x77\\x91\\x9e\\xc4\\x05\\x14\\x79\\xb7\\x0f\\x7c\\xd6\\x76\\x77\\x23\\xfe\\x42\\xc1\\xc7\\x89\\x9c\\x2b\\x7c\\x1f\\x70\\x2d\\xd6\\xb4\\xd1\\x3b\\x67\\x2d\\x48\\x8f\\x34\\xa0\\xe9\\x69\\xdb\\x79\\xcc\\x2c\\xb2\\x52\\x4a\\x94\\x8a\\x8d\\xe4\\xc5\\xb6\\x23\\xec\\xd9\\x0d\\x6e\\x82\\xd9\\x70\\x33\\xc1\\x25\\x63\\x7d\\x1c\\xd8\\xc8\\x48\\x03\\xd8\\xfb\\xc0\\x12\\x84\\x6f\\xfe\\x48\\x4f\\x6c\\x02\\x14\\x92\\x58\\xf9\\x46\\x2f\\xa1\\xe9\\x9c\\x30\\x7d\\xd0\\x06\\x2f\\xe0\\xb6\\xf1\\x1e\\xee\\x40\\xc2\\x62\\x9e\\xf7\\xc0\\xf6\\xa5\\x10\\x72\\x59\\xea\\x5b\\x9f\\xfb\\x6f\\x29\\xf1\\x2c\\x32\\xf7\\xb5\\x22\\x8c\\xab\\xc9\\x86\\xab\\x66\\x45\\x0a\\xf9\\xdc\\xc3\\xda\\x09\\xd0\\xe0\\xb9\\xa4\"},\n{{0x8f,0xf2,0x39,0x8c,0xd5,0x1f,0x51,0xd4,0xc2,0xc5,0x78,0x69,0xa2,0x21,0x8b,0x84,0x86,0x82,0x20,0x31,0xf4,0x00,0x72,0x9f,0x4a,0xc4,0xd5,0x90,0x9c,0x48,0xba,0xfe,},{0xa5,0xa8,0x87,0x04,0xb6,0x86,0x77,0xbe,0x3d,0x16,0xc3,0xdc,0x00,0x52,0xcf,0xee,0x6e,0x2b,0x30,0xe0,0x86,0x09,0x05,0x9d,0x4c,0xba,0x52,0xc6,0xd9,0x60,0x61,0xfb,},{0x41,0x7a,0x64,0x78,0x29,0xc9,0x28,0x98,0xe5,0x20,0xff,0x53,0x11,0xda,0xa0,0xa1,0x39,0xcd,0x8f,0xff,0xcb,0x25,0xa1,0x8e,0x6d,0x9b,0x50,0xcb,0x52,0xcb,0xc3,0x54,0x24,0xc3,0x9e,0xbb,0xb5,0xd5,0xac,0x6a,0x6d,0x63,0xf1,0xf5,0x3c,0x4d,0xf2,0x12,0xf7,0x02,0x5a,0x8a,0xae,0xf8,0xe3,0x64,0x93,0xc8,0x74,0xc3,0xce,0x34,0x1a,0x0e,},\"\\x99\\x39\\x53\\xe4\\x7a\\x34\\x11\\x88\\xbc\\x59\\x29\\x42\\xe1\\x55\\x7a\\xf2\\x95\\x46\\xe4\\xe9\\x36\\x8e\\x2f\\x1a\\x5e\\xe9\\x80\\x6e\\x2b\\xaf\\x66\\xb6\\x19\\x01\\x91\\xfc\\x5d\\x2b\\x7e\\x47\\xde\\x37\\xff\\x05\\x4f\\xb2\\xbb\\xb1\\xf0\\x31\\x68\\x4a\\xda\\x5d\\x60\\x7a\\xdd\\xa3\\xd6\\x54\\x33\\x12\\x2f\\xa9\\x04\\xe0\\x45\\x6f\\xaa\\x84\\x10\\x9b\\xbc\\x51\\x7f\\x8a\\xd3\\x96\\x60\\x87\\x63\\x82\\xad\\xcf\\xed\\x0f\\x76\\x20\\xcf\\x11\\x64\\x62\\x2e\\xac\\xd9\\x1e\\xb3\\x7a\\x85\\x96\\x46\\x2e\\xbe\\x9e\\xbe\\x26\\xbd\\xc1\\xe3\\x2c\\xc3\\x4a\\xd4\\x6f\\xb1\\xce\\xa4\\x20\\xe7\\x3c\\x31\\x21\\x54\\x08\\xe6\\xd3\\x54\\x25\\xf4\\x4a\\x82\\x9b\\x13\\x2f\\x63\\x1a\\x3f\\x6d\\xd4\\xb8\\x73\\xa0\\x00\\x66\\x7e\\x19\\xeb\\x22\\xff\\xfd\\x59\\x03\\xaa\\xa7\\xd4\\xc8\\xfd\\xf2\\x19\\x53\\xc3\\xc6\\x17\\x8f\\x5f\\x8c\\xb2\\xaa\\x6b\\xff\\x92\\x89\\x4e\\xad\\x83\\x58\\x88\\xdf\\x06\\x0a\\x3c\\x90\\x43\\x02\\x6e\\x0e\\x2c\\xef\\x27\\x54\\x97\\xe7\\xd1\\x05\\xdf\\x3b\\x64\\x4a\\x98\\xf2\\x6b\\xf0\\x01\\x05\\xc9\\x94\\x13\\xee\\x0a\\xf8\\x85\\x19\\x54\\xd6\\x5c\\xeb\\x8d\\x79\\xad\\x30\\x71\\xb8\\xbb\\x87\\xf0\\xb1\\x97\\x43\\xd2\\x55\\x6f\\xfd\\x98\\x19\\x83\\x0b\\x6e\\xeb\\xf7\\xec\\xc7\\xe0\\x45\\x66\\x1f\\x43\\x57\\x0c\\xe9\\xfd\\xbb\\xe2\\xd2\\x52\\x40\\x6f\\xa9\\x0d\\x04\\x23\\x6f\\x22\\x2c\\x42\\x9e\\xc1\\x6b\\x12\\x87\\x22\\x4a\\xda\\x1a\\x53\\x21\\x61\\xae\\x8b\\x48\\x1b\\xca\\xb8\\xd4\\x7a\\xfb\\x3e\\xd0\\x44\\x5b\\x30\\x60\\xfd\\x67\\x59\\x17\\x98\\x56\\xf4\\x08\\x5c\\x1e\\x58\\x5f\\xd7\\xc1\\x40\\x97\\x99\\xaf\\x69\\x3c\\xf4\\x27\\xbd\\x1d\\x3d\\xc1\\x0b\\x5a\\xe3\\x44\\x7a\\x8d\\x2a\\x18\\xdc\\x3a\\x12\\xa6\\x86\\x0b\\x22\\x17\\x5d\\xd5\\xeb\\x53\\xa0\\x95\\x04\\x32\\xe2\\xd7\\xae\\xfe\\xce\\x8a\\xf0\\xad\\xe3\\xd8\\x56\\x77\\x43\\xde\\x43\\x69\\x0f\\x2d\\x25\\x37\\x23\\xc5\\xd7\\xe4\\x8b\\xd3\\x0d\\x29\\x37\\x59\\x37\\x01\\xce\\xcd\\xe9\\x15\\x4b\\x76\\x65\\xcb\\x61\\x1d\\x7d\"},\n{{0xef,0x81,0x6c,0x8f,0x5e,0xc3,0x4e,0xf4,0x1f,0x68,0x83,0x1d,0x90,0xcd,0x29,0xe5,0x2d,0xe8,0x97,0x37,0x82,0xd0,0x03,0xee,0x4e,0xda,0xda,0x2a,0xda,0x26,0x91,0xd6,},{0x47,0xf9,0xb3,0x63,0xa8,0x8a,0x45,0x05,0x3a,0x05,0xbb,0x72,0x16,0x08,0x52,0xbf,0xe8,0xf7,0xdf,0xef,0xc2,0xf3,0x72,0x83,0xde,0x34,0x67,0x52,0xca,0xf0,0x92,0xcc,},{0x65,0xc5,0xd1,0x0e,0xa7,0xbf,0xdb,0xb3,0x8d,0x55,0x36,0x4a,0x99,0x68,0xf8,0x2b,0x54,0x82,0x24,0xdf,0xf3,0x36,0x3b,0x2d,0xdc,0xf5,0x85,0x16,0x3d,0xea,0x27,0xdc,0x63,0xb0,0x56,0x3e,0xb1,0xa8,0xdf,0xbe,0xe9,0x51,0xd3,0xc9,0xb3,0x3f,0xcd,0x6b,0xbf,0x09,0x21,0xc3,0xab,0xb2,0x17,0x86,0xb2,0x29,0x06,0x9b,0xd9,0xca,0x00,0x0a,},\"\\x95\\x93\\xc3\\x5c\\xde\\xc5\\x35\\xbe\\xbb\\x69\\x65\\xda\\x68\\xea\\xb0\\xb6\\x46\\xbf\\xfc\\xfb\\xd0\\x48\\x83\\xbc\\x4c\\xef\\x90\\xd5\\xd0\\x1f\\x01\\x8c\\x63\\xc9\\xb0\\xdd\\xfb\\x3c\\xef\\x5e\\x78\\x62\\x84\\xd5\\x21\\x8c\\xaa\\xaf\\x06\\x0e\\x92\\x88\\x95\\x2f\\x16\\x30\\x1e\\xd8\\xa4\\xc1\\xbc\\xee\\x25\\x63\\x56\\xa0\\xc8\\xbd\\xa3\\x59\\xfb\\xaa\\x27\\x82\\xb1\\x0c\\x86\\xd1\\x8e\\x20\\xf7\\xa0\\xec\\x99\\xb2\\x7a\\x0b\\x4d\\xbe\\xfc\\x0a\\x26\\x2a\\x3b\\xf6\\x8f\\xe8\\x14\\x44\\xdc\\xae\\x5f\\x69\\x3e\\xb0\\xf1\\x6e\\x6e\\xe0\\x3f\\x8f\\xcb\\xf3\\xa3\\x39\\x81\\x46\\xd2\\x0e\\xc4\\xd2\\x65\\x77\\x61\\xfd\\x03\\x20\\xfe\\xe7\\xea\\x70\\x3c\\x49\\xa6\\xa5\\x43\\xbc\\x9b\\xba\\x91\\x1e\\x79\\x25\\x03\\x87\\x10\\xe8\\xc3\\x65\\x52\\xd4\\x76\\xd6\\x02\\x7f\\x58\\xb2\\xc5\\x2b\\xa5\\x1a\\xd6\\x5e\\xa4\\xf0\\x39\\xc7\\x8f\\x96\\xb8\\x89\\x10\\x2b\\xb4\\xbd\\xd6\\x9b\\x68\\xe9\\xc3\\xd4\\x5b\\x51\\x76\\xa2\\xd8\\x2b\\x0b\\x95\\xdc\\x32\\x10\\x16\\x37\\x0d\\xae\\x30\\xc3\\x93\\x65\\x15\\xdb\\x04\\x64\\xc4\\x17\\x74\\x30\\x1c\\x74\\xe4\\x2d\\x89\\xb8\\xbf\\x4b\\x9c\\x19\\xed\\x55\\x4b\\x12\\xfe\\xba\\xc0\\xf6\\x0d\\xdb\\x32\\x19\\xcc\\xc5\\x60\\x35\\x31\\xdb\\xf2\\xeb\\x5f\\x29\\x34\\x25\\xd7\\x2c\\xce\\xfa\\x0c\\x7f\\x14\\x4a\\xba\\x89\\x34\\x7b\\x29\\x6b\\xe8\\x7f\\xf1\\x89\\x94\\xb4\\xa0\\xc7\\x0c\\x93\\x0f\\x05\\x93\\x03\\xb5\\xdd\\x4c\\x8f\\xe1\\xe6\\xbb\\xc3\\xcd\\x68\\xc6\\xc0\\xd8\\x42\\x46\\xdc\\x6e\\x61\\x40\\xa2\\xab\\xd1\\x78\\x0b\\x13\\xf1\\x59\\x4a\\x60\\x19\\xd1\\x77\\x8b\\x7c\\xbb\\x3a\\x3e\\x3a\\x34\\xbf\\xae\\x72\\x97\\xf0\\xb3\\xed\\xc3\\x76\\x94\\x1c\\x32\\x35\\x2a\\x4b\\xe3\\x14\\xb8\\x4a\\x9d\\x8d\\x6d\\x7f\\x1f\\x38\\xa0\\xad\\x37\\x98\\x02\\x0a\\xa2\\xa3\\x31\\xa4\\x02\\xbe\\x9c\\x70\\x44\\x84\\x74\\x4a\\x73\\x0c\\xbd\\xed\\xcb\\x90\\x4b\\x6f\\xde\\x70\\x8f\\xbd\\x14\\xbf\\xdc\\x29\\xef\\xd4\\x61\\xd1\\xd0\\xb5\\x82\\x5d\\xe0\\xbc\\x79\\x42\\x2b\\x69\\xa2\\x72\\x2f\"},\n{{0x45,0xeb,0x0c,0x4d,0xfa,0xfa,0x2a,0x76,0x90,0xef,0x57,0x9c,0x09,0x54,0x56,0xce,0xed,0xcd,0x32,0xf0,0xb6,0x14,0x4d,0x0c,0x38,0x0f,0x87,0xfb,0x74,0x4a,0x0b,0x1f,},{0xfc,0x85,0x63,0x2c,0x98,0x38,0x4b,0x5f,0x96,0x82,0xae,0xd9,0xcd,0x66,0x4c,0xf1,0xf4,0x8e,0x58,0x8b,0xe2,0xd5,0x68,0xe5,0xc7,0x34,0x49,0x4d,0xf4,0xc7,0x12,0xb8,},{0x55,0x85,0x1d,0xe8,0xe1,0x09,0x2f,0x78,0x94,0x4f,0x6c,0x6d,0xd9,0x5b,0xf0,0x7e,0x2d,0xbc,0x8d,0xf7,0xf5,0x7a,0xd5,0x76,0x82,0x9b,0x97,0x8e,0x3a,0xf5,0x8a,0x7a,0x8e,0x94,0xed,0x4d,0xcc,0xbc,0x01,0x82,0x46,0x7e,0xdf,0x0b,0xad,0x4b,0xae,0x7c,0xa8,0x4a,0xa9,0xa0,0xc1,0x7c,0x61,0xa9,0xe0,0xdd,0xff,0x1d,0x75,0x25,0xd7,0x04,},\"\\x6f\\x66\\xd8\\x47\\x40\\x5a\\x03\\xd7\\xbd\\x6f\\x8d\\x28\\x97\\xdb\\xdf\\x04\\xe7\\x6d\\x7d\\xf2\\xd9\\x47\\x0a\\x49\\x96\\xb7\\xdd\\x6d\\xb8\\x85\\x00\\xf8\\xf4\\xf8\\x3e\\x96\\x0e\\x21\\x9a\\x24\\x86\\xe2\\x45\\x45\\xad\\xd1\\x36\\x14\\x55\\x04\\x14\\xd8\\x27\\xc4\\x1a\\x9b\\x08\\x31\\x8d\\xaf\\x01\\xb1\\x52\\x14\\xc6\\x4a\\x42\\x66\\xcb\\xf8\\xa5\\x71\\x7a\\xda\\x3e\\x62\\xc2\\x67\\x29\\x07\\x3e\\x16\\xdd\\xbd\\x66\\xf2\\xd5\\x20\\xe1\\xe0\\x99\\x35\\xde\\x05\\xe4\\xdb\\x11\\xc3\\x96\\xd4\\x77\\x01\\x0a\\xec\\x66\\xaa\\xfb\\x76\\x2e\\x69\\x23\\x8d\\x0b\\x9e\\x76\\xb4\\x52\\x45\\x4b\\xf9\\xe4\\x51\\xe7\\x6a\\xc7\\x9e\\x69\\x90\\xd4\\x1b\\x93\\x2b\\xc3\\x29\\x17\\x09\\x37\\x83\\xc9\\x1b\\xc9\\xcf\\x0b\\xbe\\x3b\\x51\\x40\\x70\\xa1\\xe6\\x92\\xff\\x34\\xfd\\x06\\xb6\\x6e\\xa1\\x1f\\x39\\xe1\\x0a\\xf9\\x33\\xee\\x96\\xd8\\xe9\\xb6\\x77\\xcb\\x03\\x73\\x7e\\x79\\x64\\xee\\xaa\\x72\\x5f\\x12\\x12\\x07\\xf9\\xc1\\xb2\\x6a\\x96\\xc6\\x16\\xdf\\x7c\\xb7\\xca\\xef\\x47\\xbd\\xa9\\x01\\x36\\x8f\\xf2\\xea\\x58\\x6e\\x42\\x2e\\x65\\xbf\\x21\\xa6\\x91\\xbd\\xd2\\xc1\\x3e\\x67\\xff\\xf5\\x8c\\xfb\\xfe\\xd8\\x17\\x82\\x04\\x9d\\xaf\\xa0\\xf7\\x27\\xdf\\x88\\x62\\x3f\\x2f\\x7e\\x8f\\x26\\x2d\\xaf\\x93\\x95\\x42\\xa1\\x87\\xb8\\x72\\x0a\\x9b\\x6b\\x2b\\x09\\x89\\x0e\\x54\\x87\\x6b\\x28\\xa4\\x38\\x74\\xab\\xbe\\x3b\\xfa\\x98\\x1f\\x81\\x38\\xb7\\x72\\xc5\\xd5\\x17\\x36\\x88\\x5f\\x86\\xac\\xac\\x22\\x15\\xa0\\xb0\\x10\\xdf\\xc2\\xc6\\xb1\\x50\\x84\\x5d\\x4f\\x82\\x96\\x25\\x25\\x86\\xa3\\xe1\\x15\\xf3\\x03\\xc3\\xd8\\xa5\\x82\\xe2\\x0f\\xd2\\xd4\\x3f\\x6c\\x44\\x6e\\x5d\\x00\\x28\\x0e\\xc1\\x79\\x82\\x3b\\x7f\\xb4\\xc1\\xb0\\xfe\\xb9\\x4e\\xb4\\xef\\x17\\x07\\xf5\\x18\\x4e\\x3b\\x52\\x46\\x1a\\x75\\x62\\xd1\\xf3\\x07\\xcb\\x75\\x1c\\xdb\\xbf\\x6e\\xae\\x49\\xff\\xae\\x91\\x86\\x23\\x58\\xe7\\x4e\\x95\\x48\\x82\\x2b\\x8a\\x04\\x9f\\xec\\x6b\\xf4\\xc7\\xa9\\x9c\\xab\\xbe\\x09\\x20\\x65\\x77\\xb6\\x57\\xe3\\x1f\"},\n{{0x70,0x9d,0x2e,0x19,0x90,0x06,0xf5,0x36,0x9a,0x7a,0x0b,0xdd,0x34,0xe7,0x4d,0xc7,0x84,0xbe,0x33,0x88,0x0e,0xa3,0xc5,0xdd,0x10,0xed,0x5c,0x94,0x45,0x1e,0x79,0x72,},{0x06,0xf9,0x89,0x20,0x2b,0xa2,0xcb,0xc9,0xc1,0x50,0xbe,0x61,0x12,0x62,0xac,0xa0,0x0c,0x45,0xf0,0x12,0xf8,0x9f,0xba,0xf8,0x9f,0x8c,0xec,0xcb,0xa0,0xb1,0x93,0x4a,},{0x62,0x9b,0xf9,0x7b,0x0c,0x78,0xee,0x6a,0x9c,0x87,0x59,0xfb,0xea,0x28,0x22,0x4e,0x27,0xab,0xbb,0x6c,0xbe,0x4d,0xea,0x5b,0xb7,0x97,0xe6,0xe0,0xfe,0x80,0xc9,0x13,0xf9,0x53,0xe3,0xa9,0xb6,0x23,0x35,0x2d,0x13,0xac,0xf4,0xce,0x62,0x50,0xfb,0x02,0x9a,0x1e,0x19,0x8d,0x72,0xbd,0x5e,0x74,0x02,0xe6,0x0e,0x9e,0x48,0xca,0x35,0x01,},\"\\x62\\xf0\\x03\\x14\\x0f\\xa0\\x9e\\x03\\x87\\xd1\\x87\\xa0\\xff\\x96\\xc4\\x56\\x3d\\xf9\\xf4\\xe2\\x8c\\x22\\x82\\xc0\\x18\\x3a\\xc3\\xee\\xde\\x13\\x12\\x35\\x49\\x21\\xf7\\x80\\xfc\\xa5\\x36\\x1d\\x30\\x68\\xd2\\x99\\x49\\x63\\x0b\\x75\\x30\\xcd\\x59\\x14\\xac\\xe0\\x46\\x8d\\x01\\x4b\\x6f\\x53\\xd8\\x39\\xb8\\x2e\\x38\\x81\\x7d\\xbf\\x2d\\x83\\x92\\xc3\\xce\\x34\\x24\\xea\\xb8\\x6a\\x24\\xd8\\x04\\xc7\\xac\\xb1\\xce\\x7a\\xcf\\xe0\\xa1\\xcd\\xa4\\x39\\x39\\x24\\x28\\x31\\x05\\xda\\x4a\\x77\\x41\\x19\\x6e\\x02\\x75\\x50\\x04\\x7f\\x85\\xb7\\xa0\\xa0\\x1d\\x45\\x41\\x24\\xef\\xc0\\xe2\\x99\\xf0\\xef\\x9a\\xd1\\x43\\x50\\x54\\x30\\x53\\x48\\x22\\x61\\x52\\x8b\\xaa\\x56\\xe6\\x59\\x99\\xac\\x80\\x2c\\x00\\xa3\\x36\\x26\\x7c\\x63\\x51\\x06\\xb2\\x64\\x03\\xc1\\x9f\\x39\\x1d\\x53\\xbd\\x82\\x86\\x1d\\x6d\\x48\\xa4\\x38\\x0b\\x30\\x43\\xaa\\x91\\xd6\\x49\\x53\\x68\\x81\\x20\\x4e\\xcc\\xb0\\xde\\x20\\xd4\\x3e\\x5a\\x37\\x55\\xb7\\xf6\\x00\\x91\\x6e\\xcc\\xae\\x42\\xa0\\xc9\\x05\\x3b\\x46\\x2d\\x94\\x17\\xa1\\x3d\\x67\\xd7\\x78\\x26\\x4a\\x89\\x6e\\x8e\\xaf\\x90\\xba\\xf6\\x6d\\x29\\xe5\\x43\\x8a\\x71\\x67\\x81\\x12\\x3a\\x89\\xfa\\x9b\\x8b\\xee\\xf9\\x1d\\x96\\x5a\\xf2\\xf4\\xa1\\xa5\\xbd\\x5d\\x2e\\x2a\\xaf\\x46\\xd5\\xc9\\x4b\\x77\\x09\\xcd\\xd3\\x8d\\x05\\xfe\\xee\\x4b\\xfb\\x76\\xa3\\x59\\x07\\x7c\\x16\\xbc\\x4b\\xe9\\x11\\x6e\\x69\\x00\\x12\\x71\\xcd\\xa5\\x65\\xbc\\x19\\xbf\\x47\\xd4\\xf9\\x86\\xbd\\x9c\\x0d\\x18\\x4c\\xd8\\xa3\\x52\\x0c\\xa1\\xbd\\xb4\\xb5\\x05\\xaa\\xf7\\xcb\\x4e\\xc9\\xf9\\x47\\x89\\x77\\x9d\\x30\\x71\\x4e\\x79\\x11\\x6d\\xd5\\x01\\x9d\\x59\\xb2\\x8b\\x17\\xda\\xd9\\x6f\\x4e\\x21\\x55\\xad\\x9c\\x61\\x27\\x4a\\xdd\\xc6\\xb6\\x38\\x10\\x95\\x04\\xe9\\xed\\x19\\xf4\\xed\\xa5\\x37\\x77\\x62\\x64\\x8c\\x40\\x98\\x22\\x4e\\x33\\x91\\x04\\x3e\\x4c\\x2a\\xd5\\x91\\x65\\x4c\\x9e\\x7f\\x97\\x4e\\xfd\\xf0\\xb0\\x50\\x4b\\x6f\\xa5\\xf6\\x46\\xce\\xcf\\x44\\xcd\\x37\\x24\\x12\\x37\\x25\\x05\"},\n{{0x51,0x51,0x61,0x74,0x21,0xaa,0xdc,0x9c,0x95,0xa4,0x42,0xb4,0x5e,0x7f,0xf6,0xde,0x06,0xa2,0xc7,0x33,0xb8,0x5b,0xd7,0x89,0xfb,0xad,0x41,0x4e,0xe3,0xc9,0x1a,0xdd,},{0x14,0x94,0x1d,0x55,0x97,0x61,0xb3,0x0a,0xb0,0xa8,0x6d,0x47,0xe0,0xf7,0xd1,0x89,0x6b,0x33,0x78,0x45,0x27,0xc8,0x0a,0xf4,0x1c,0xb8,0x48,0x10,0xcb,0xff,0x9d,0xbf,},{0xfa,0xe4,0x77,0x3b,0x33,0x44,0x60,0xc7,0x7b,0xf0,0x1e,0xc6,0x36,0x6c,0x4f,0xe6,0x1c,0x0c,0xab,0x57,0xd8,0xa4,0xb0,0x39,0x09,0xc6,0x19,0xe1,0x1e,0xe3,0x46,0x1c,0x13,0xfa,0x21,0x57,0x6f,0x63,0x87,0x0e,0x42,0x3d,0xd0,0x41,0x81,0xe4,0xa7,0x01,0x3a,0x75,0x24,0xf2,0x46,0xfe,0x33,0x85,0x3c,0x67,0x41,0x62,0xa7,0x81,0x51,0x04,},\"\\x21\\x6e\\x9d\\x40\\xbc\\xdc\\x3b\\x26\\x50\\x18\\x8d\\x12\\x1c\\x9f\\x8e\\xf2\\x9e\\x91\\x4f\\xac\\xd0\\x22\\xfe\\x01\\xb9\\x0e\\xd1\\x12\\x25\\xf2\\xeb\\x93\\x53\\x8e\\x5f\\xce\\xe5\\xab\\x80\\x45\\xe9\\x19\\x9a\\xa7\\x6a\\x16\\xbd\\xd0\\x61\\x68\\x05\\x66\\x0e\\x24\\x7f\\xec\\xd7\\xe2\\x28\\x21\\xb6\\x9b\\x1f\\x8e\\x8a\\x58\\xac\\x3f\\xb8\\x56\\x91\\xd7\\x5d\\x59\\x57\\xa1\\xda\\xf5\\x3f\\xf9\\xee\\x64\\x76\\xd7\\xc4\\xbc\\x54\\x1e\\x6a\\xd3\\x8e\\x3a\\x34\\xea\\x90\\xfc\\x52\\xa4\\x8b\\x93\\x99\\xf9\\x2d\\x17\\xc9\\xbb\\x0d\\x7f\\xc3\\x10\\x4c\\x55\\xd0\\xef\\xb4\\xea\\x5b\\x83\\x1f\\xf9\\x49\\x0b\\x3f\\x79\\xf4\\xd9\\xd6\\x99\\x59\\x4b\\x74\\x15\\x66\\xf2\\xb5\\x0a\\x8f\\xc7\\x8c\\xc4\\x03\\xfa\\x40\\xf5\\xab\\xb6\\x63\\x8a\\x32\\xf4\\x49\\xa8\\xb3\\xef\\x02\\x9c\\x40\\x2f\\x46\\x93\\x1a\\xd2\\xbd\\x3e\\x8e\\x68\\x31\\x08\\x71\\x4c\\x98\\x9a\\xe2\\x16\\x89\\xe9\\xc4\\x44\\xb9\\xf5\\x5b\\x81\\x11\\x9b\\xb5\\x03\\x5b\\xcf\\x73\\xe9\\x7c\\xe4\\x3a\\x22\\x18\\xc7\\xbc\\x3e\\x43\\x0d\\x1e\\x81\\x4f\\x34\\xde\\xe0\\x57\\x26\\x5d\\x31\\x94\\xb9\\xf4\\x38\\x75\\xd8\\x38\\x1f\\x52\\x5f\\x78\\x57\\x6e\\x64\\xce\\x69\\x25\\x84\\xfa\\xa3\\x0f\\xb7\\x43\\xa1\\x2d\\x1b\\x77\\x61\\x4d\\x2e\\x10\\xa6\\xb8\\x56\\xb5\\x2b\\xe2\\x7c\\xdb\\x63\\x0b\\xa1\\xf0\\xd3\\xa6\\xf8\\xea\\x98\\x44\\x54\\x2e\\x58\\x4e\\xa0\\xa2\\x77\\x75\\x27\\xd0\\xc5\\x2a\\xca\\x94\\x9a\\xac\\xda\\x45\\xad\\x83\\xd1\\x6d\\x5c\\x83\\xd6\\x63\\xad\\xb7\\x9c\\xad\\x6f\\x3e\\x39\\xe9\\x90\\xfe\\x28\\x2a\\x14\\xc3\\x53\\xaa\\x23\\x79\\xd7\\xf0\\x6a\\xda\\xb7\\x4c\\xea\\x02\\x1b\\x89\\x83\\xa5\\x7f\\x1d\\x0c\\xf7\\x03\\x29\\x2e\\xb0\\x5e\\xce\\x89\\xc5\\x3f\\x3a\\x12\\x65\\x61\\x0e\\x0c\\x1e\\xa8\\xdd\\xd4\\x44\\xd1\\xff\\xd6\\xbc\\x3d\\x03\\xf0\\xa6\\xe4\\xd0\\xdf\\x5c\\x5b\\x8d\\xc1\\xf9\\x5d\\x9f\\x55\\x58\\xb1\\x18\\xaf\\xe6\\xbe\\xa0\\xf6\\xc2\\x93\\x13\\x63\\xf0\\x3a\\xb3\\x4e\\x75\\x7d\\x49\\x36\\x41\\x74\\xf6\\x58\\xef\\xbb\\xf3\\x8d\\xc1\\x77\"},\n{{0x38,0xbe,0xd4,0x45,0x55,0x6d,0xe7,0x44,0x82,0xbf,0x5f,0xec,0x05,0x06,0xf9,0xaf,0x33,0x0b,0x15,0x1e,0x50,0xd4,0x77,0x4d,0xfe,0x85,0x91,0xd7,0xb7,0xe0,0x27,0x6b,},{0x4c,0x0f,0x9c,0x49,0xa4,0x2f,0x40,0x47,0xbf,0xe6,0x88,0x55,0x51,0xc5,0xe4,0xb8,0x56,0xcf,0x77,0x1a,0x67,0xaf,0x3f,0x89,0xdb,0xf6,0x02,0xf9,0xdb,0x92,0x20,0xf3,},{0xf7,0x02,0xd0,0xd4,0x63,0x28,0x2f,0xc7,0xfd,0x5f,0x8f,0x90,0x29,0xb8,0x9c,0x62,0x6c,0xaf,0xd8,0x34,0x50,0xc3,0xbb,0x9d,0xd8,0xf6,0x58,0x9f,0x0c,0x4b,0x4b,0x71,0xf6,0x49,0xea,0x21,0x2e,0x5e,0x33,0x48,0x7c,0x59,0xc1,0x68,0xea,0x3a,0xd8,0x31,0x50,0xf1,0xfc,0xdf,0xe8,0xc5,0x3e,0xba,0x65,0xad,0xc2,0x02,0x3c,0x25,0x83,0x0f,},\"\\x0f\\xf0\\x03\\x1d\\xf0\\xbe\\xef\\xf3\\x71\\x0c\\x6b\\x76\\x3f\\x9b\\x8e\\xc8\\x17\\x19\\xbf\\xa1\\x52\\x8c\\xe4\\x65\\x19\\xad\\xf3\\xd3\\x41\\x2d\\x93\\xfb\\x18\\x8f\\xd4\\x97\\xd5\\xd1\\x70\\x91\\xc0\\xf0\\x34\\x59\\x60\\xdd\\x0e\\xb0\\xc0\\x9f\\xc4\\x00\\x51\\x73\\x66\\x5d\\x4d\\x97\\xf9\\x5c\\x13\\x82\\x8b\\xc7\\x6b\\x34\\x92\\xb8\\x7a\\x4b\\x64\\x25\\x3c\\x8b\\x5f\\xa4\\x7a\\xa7\\x5f\\xa3\\xb8\\x6d\\x5a\\xbe\\xea\\x8d\\xe5\\x95\\x9a\\x60\\x22\\x89\\x13\\x6f\\x60\\xa6\\x9b\\x30\\x9e\\x77\\x3b\\x22\\x55\\xcd\\xe1\\x9e\\xd2\\xa2\\xe1\\x99\\xc3\\x3d\\xb1\\x1c\\x16\\xad\\xe0\\x8a\\x31\\x97\\x50\\xb8\\x51\\xd9\\x2c\\x69\\x29\\x24\\xfc\\x98\\x59\\xbe\\x52\\x34\\x31\\xcb\\xe7\\x8e\\xc0\\x92\\xdb\\x11\\x29\\x21\\x0e\\xbb\\xea\\xa7\\xc2\\xa2\\xc0\\x00\\xee\\xb1\\x05\\xca\\x03\\x01\\xa4\\x8f\\x3e\\x45\\xfd\\xfb\\x15\\xb2\\x75\\xcb\\xab\\x83\\xca\\x5c\\x99\\xd7\\x37\\xa5\\x85\\x32\\x0e\\x9e\\x3b\\x31\\x71\\x79\\xbd\\x86\\x46\\x7f\\xa9\\x69\\x4f\\xcd\\xb2\\xac\\x6a\\xd3\\x6e\\xd7\\x14\\x48\\x43\\xdb\\xc3\\x4e\\x42\\x3d\\x35\\xaf\\xd7\\xd8\\x97\\x2a\\x1c\\x43\\xc1\\x99\\xa1\\x91\\xab\\xd6\\xce\\xba\\x49\\x36\\xd3\\x95\\xc9\\x95\\xa3\\xeb\\x13\\xcb\\x05\\x7f\\x88\\xa9\\xdc\\x94\\x90\\xfe\\x98\\x84\\x5e\\xe5\\xd2\\x6a\\x89\\xfb\\x64\\x2a\\x2a\\x51\\x6d\\xc3\\x05\\x6c\\x54\\xd3\\x63\\x72\\x13\\x36\\x3a\\x86\\x28\\xa4\\x2a\\x39\\x5d\\x94\\x2b\\x95\\x4a\\x89\\xe8\\xef\\x7a\\x74\\x4d\\x8a\\xe5\\xad\\xac\\x88\\xc6\\x16\\xef\\xaa\\x90\\xe2\\x07\\x72\\x05\\xa6\\x0b\\xaf\\xfe\\xde\\x5c\\x87\\xbb\\x14\\xde\\xad\\x30\\x62\\x29\\x49\\x5f\\x69\\x8f\\x3e\\x49\\x06\\x16\\x96\\x6b\\x16\\x36\\x38\\x7d\\x0d\\x86\\x18\\x3f\\x94\\x5b\\x24\\xa9\\xdc\\xfc\\xcf\\x4d\\x36\\x72\\x2c\\xd1\\x2e\\xbb\\x6b\\xd8\\xe7\\x83\\x25\\x75\\x2a\\xfa\\x2b\\x1a\\xbd\\x13\\xc4\\xbd\\xbc\\xad\\xd1\\x70\\x86\\x91\\x36\\x82\\x62\\x42\\xac\\xfb\\x72\\x1d\\xe5\\xff\\x27\\xba\\x8a\\xa0\\xc0\\x18\\xb2\\x25\\xed\\x34\\x04\\x80\\x3c\\xe9\\xfa\\x2d\\x50\\x8d\\x89\\x44\"},\n{{0x05,0x54,0x60,0xb3,0x2d,0xd0,0x4d,0x7f,0x4b,0x23,0x11,0xa8,0x98,0x07,0xe0,0x73,0xfd,0x55,0x65,0x65,0xa4,0x77,0x18,0x57,0xd8,0x82,0x79,0x41,0x30,0xa2,0xfe,0x5d,},{0x26,0x0f,0x8f,0xed,0x4b,0xba,0x30,0xb9,0xe1,0x2a,0xd8,0x52,0x3f,0xbb,0x6f,0x57,0xf0,0xa7,0xa8,0x82,0x55,0x00,0x61,0xf1,0xda,0x46,0xfb,0xd8,0xea,0x44,0x22,0x21,},{0x23,0xf4,0xf1,0x62,0x7f,0xba,0xbd,0x78,0x91,0xd7,0xd8,0x48,0x96,0x31,0xc7,0x23,0x1d,0x22,0xde,0x71,0x86,0x4e,0x26,0x2a,0xb4,0xda,0x84,0xea,0x8a,0x13,0xa6,0x0f,0xea,0xc4,0xdc,0xfb,0x18,0x12,0xf1,0x20,0x04,0x44,0xb7,0x75,0xf1,0x21,0xd7,0x26,0x6d,0x75,0x5c,0xe9,0xb6,0xa9,0xad,0x79,0x65,0x59,0xc0,0xa2,0x6b,0x51,0x6d,0x02,},\"\\x74\\x07\\xf9\\x6e\\xe3\\xe7\\x9c\\x69\\xd3\\x6c\\xe1\\xf6\\x4e\\x4f\\x18\\x86\\x55\\xea\\x68\\xb9\\x47\\xe7\\xe2\\xbe\\x97\\xb0\\x5e\\xbc\\x6d\\x44\\x39\\xe9\\x50\\x27\\x6e\\xf3\\xf0\\xe6\\xa0\\x3d\\xd4\\x8b\\x24\\xf6\\x69\\x29\\xb4\\x9c\\x15\\x80\\xeb\\x46\\x88\\x07\\xe1\\xe7\\xa2\\x5e\\xb9\\xb9\\x4d\\xa3\\x40\\xc5\\x3f\\x98\\x4f\\x8b\\x81\\x60\\x3e\\xfb\\x61\\x04\\x7b\\xf3\\xf1\\x4b\\x68\\x6d\\x97\\x98\\x00\\x3d\\x2f\\x68\\x58\\x9a\\x79\\xeb\\xfa\\xd5\\x44\\x09\\xc7\\x1c\\x90\\xff\\x67\\xc1\\x1f\\xbd\\x76\\xcc\\x72\\xc2\\xd1\\x45\\xf4\\x58\\xe4\\x2f\\x88\\xb7\\x5d\\x25\\x0e\\xad\\xca\\xfe\\x66\\xbf\\x37\\xff\\xc8\\x37\\xb6\\x2f\\xf0\\x06\\x68\\x5b\\x7f\\x85\\xa9\\xd8\\x75\\xfc\\x07\\x8c\\x82\\xe6\\x1f\\xe3\\x5d\\x19\\x22\\x52\\x7a\\x55\\x1d\\xab\\x62\\xf9\\xe4\\x77\\x49\\x91\\x46\\xba\\xd9\\x12\\x20\\x3e\\x66\\x4c\\x41\\x7c\\x36\\x79\\xc0\\x2d\\x87\\x2a\\xba\\xc0\\x03\\x2f\\x8c\\xc7\\x7f\\x77\\xbf\\xe5\\x4d\\x33\\x26\\xfd\\xee\\x92\\x76\\xa4\\x8e\\xa4\\xeb\\x25\\x13\\x50\\x40\\x68\\x82\\xd0\\x8c\\x83\\x0e\\x76\\x49\\xfe\\x68\\x54\\x55\\x8a\\x75\\x13\\xab\\x2d\\x8d\\x2a\\xc3\\xe5\\xce\\xd8\\xa8\\x08\\xd2\\xae\\xe4\\x54\\x77\\x9e\\xda\\xbd\\x1a\\xa6\\x3b\\xb1\\x9f\\x71\\x8f\\x47\\x0b\\xdc\\x84\\x51\\xcd\\x9b\\x29\\x49\\x41\\xe3\\x49\\x70\\x63\\xb1\\xe3\\x9b\\x6c\\xa1\\x84\\x56\\x2f\\xe8\\x38\\xcb\\xfe\\xee\\x92\\x2d\\xe2\\x4d\\xdf\\xcf\\x98\\x82\\xc5\\xe6\\x15\\xb1\\x1b\\xf9\\x04\\x81\\x7f\\xbd\\x64\\x71\\x39\\xdb\\x80\\xb4\\xe8\\xfe\\xb3\\x7f\\x11\\xe1\\x85\\x2d\\x7e\\x87\\x6d\\xb9\\xcb\\x63\\xc9\\x4d\\x7e\\xe3\\x41\\x92\\xf7\\x20\\x0b\\x5b\\xc7\\x7a\\x03\\x11\\xae\\x43\\xb8\\x06\\xeb\\xd4\\xc2\\x89\\x6c\\x53\\xf5\\x8f\\x7e\\xbc\\x16\\x25\\xcb\\x20\\xd7\\x10\\x7e\\xf9\\xdb\\x0d\\xa2\\x87\\x88\\x52\\x3d\\xe9\\x91\\xef\\x6c\\x58\\x66\\xb1\\x8d\\x8d\\xe8\\x3a\\x95\\x4d\\x32\\x81\\xe0\\x6d\\xbf\\x27\\xc4\\xf2\\x38\\x2e\\x08\\xcd\\x0e\\x0f\\x6e\\xba\\xe3\\xf9\\x61\\xb7\\x7f\\xce\\x5a\\x95\\xa9\\xb0\\x62\\x1b\\x75\\x6f\"},\n{{0xe9,0xf6,0xd3,0x1b,0x93,0x69,0x42,0xc5,0x26,0xe0,0xf9,0xec,0x4f,0x5a,0x7a,0xc2,0x5f,0xa7,0x89,0xe0,0xc4,0x34,0xbc,0xd9,0x19,0x9d,0x72,0x0c,0x74,0x3c,0x84,0xc4,},{0x32,0x12,0x6d,0x26,0xe2,0x82,0x31,0xc5,0xb5,0x85,0xb1,0x3f,0x43,0xa0,0x1c,0x6f,0xe5,0x42,0x94,0x6b,0x07,0xd3,0xa9,0x1e,0x57,0xd2,0x81,0x52,0x3f,0x5c,0xb4,0x5c,},{0x7e,0x3b,0x1c,0x4c,0x71,0x6c,0x80,0x8e,0x90,0xb9,0x74,0x45,0x89,0x15,0xf3,0xb2,0x23,0x9c,0x42,0x07,0x71,0x19,0xfe,0x27,0x07,0x88,0xfa,0xe5,0x20,0x57,0x8b,0xd7,0xda,0x64,0x88,0x04,0x41,0x32,0xe1,0xbe,0xf2,0x3e,0x3b,0x23,0xc3,0x4d,0x9c,0x18,0x62,0x74,0x4f,0x28,0xfc,0xae,0xcd,0xa6,0xca,0xc0,0xfd,0x72,0xb9,0x3b,0x6a,0x0f,},\"\\xe8\\x81\\x33\\xf3\\xd1\\x76\\x42\\xd5\\xc2\\x27\\x79\\xa8\\x53\\x16\\xba\\x0d\\xf3\\x4c\\x79\\x2b\\x4e\\xfe\\xe4\\x9e\\xd7\\xdd\\x93\\xca\\x33\\x22\\xef\\x47\\xc7\\x2e\\x5b\\x2e\\x45\\x95\\xc7\\x78\\x00\\x43\\x4b\\x60\\x71\\x9a\\xdf\\x54\\xe4\\xc1\\xa3\\x4c\\x89\\xfa\\x1e\\x27\\xee\\x8d\\x35\\xa0\\x92\\x1f\\x97\\x55\\xac\\x4a\\x77\\xa6\\xc1\\x68\\x4e\\xa0\\xf5\\xc8\\xee\\x5f\\x75\\x9c\\xe5\\x9b\\xfe\\x83\\x15\\x80\\x0a\\x67\\xaa\\x6c\\x64\\xdd\\xfa\\xac\\x92\\xea\\xbe\\x6c\\x2c\\x61\\x37\\x79\\x78\\x4b\\x3a\\xff\\xaf\\xcc\\x62\\x0f\\x2a\\x6d\\xc5\\xcb\\x8d\\x8d\\xc7\\xd7\\x4a\\xa4\\xd7\\x94\\x94\\x67\\x84\\x94\\xe5\\xe6\\x39\\x4c\\x43\\x3c\\x14\\x80\\x9f\\xf4\\x0c\\x9a\\x59\\x2d\\x0d\\x69\\x4a\\x81\\x10\\x3b\\x44\\x53\\x1e\\x1f\\x48\\xbc\\x13\\x96\\x5d\\x15\\xaf\\x8b\\xf3\\x34\\x04\\x88\\xf8\\xcd\\x58\\xf0\\x9a\\xe1\\xa6\\x61\\x6b\\xf8\\x5a\\xc9\\xde\\x7e\\x0c\\x66\\x96\\xaa\\x2f\\x1b\\xec\\x15\\xe1\\x7a\\x44\\xda\\x4a\\x84\\xed\\xb4\\xec\\x6d\\x77\\x24\\x77\\x88\\xba\\x0d\\xe3\\xae\\x12\\xa1\\x55\\xcb\\xed\\xc0\\xda\\x2f\\x56\\x8e\\xef\\x0b\\x75\\xa8\\x77\\xea\\x5b\\x0c\\x2c\\x0d\\x4b\\xf2\\xc6\\x1d\\x46\\x8a\\x46\\xfa\\xad\\xfa\\xec\\xe3\\x5f\\xc2\\x63\\xa9\\xbe\\x99\\x87\\xf4\\xf7\\xf7\\x8f\\x05\\xc7\\x07\\x78\\x43\\x78\\xc7\\xb8\\xf7\\xda\\xf9\\xac\\x3a\\x12\\x2a\\xad\\x39\\xa1\\x67\\x79\\x66\\xda\\x9e\\xf2\\x86\\xc9\\xe0\\x62\\xc4\\xf4\\x39\\xad\\x0b\\xdd\\xea\\x26\\xe5\\x4b\\x2f\\x73\\x88\\xe2\\x38\\xb2\\xa6\\x49\\x28\\x45\\x0d\\x34\\x56\\x4c\\x5a\\x44\\x7e\\x7a\\xfb\\xbe\\xdd\\x10\\x85\\xf1\\xf2\\x4c\\x11\\xae\\x08\\x43\\x22\\xd1\\xa3\\x2c\\xf8\\xaa\\x47\\x39\\x41\\xf0\\x0d\\x56\\xb1\\x61\\x82\\x13\\xca\\xb3\\x90\\x0a\\xa6\\x06\\x46\\x3d\\x9f\\x80\\x0e\\x92\\x6f\\x9f\\x42\\xd4\\xb0\\x82\\xd8\\xc5\\xec\\x3a\\x4a\\x02\\x5b\\x45\\xf9\\xaa\\xdc\\x8b\\xcb\\xd1\\x70\\x91\\xb3\\xda\\x49\\xe9\\x45\\x3d\\xc5\\x5e\\x89\\xb5\\xb5\\xfe\\x6b\\x31\\xf5\\xed\\xda\\xd1\\x0b\\x66\\x01\\x57\\x25\\x68\\xd8\\xe2\\x05\\xd3\\x25\\x1a\"},\n{{0x6b,0xf4,0xca,0xaa,0xbb,0x96,0x85,0x4a,0x38,0xa5,0x72,0xf4,0xce,0x6c,0x78,0x38,0xf7,0xe7,0x50,0x11,0x8c,0x73,0xf2,0x72,0x35,0x82,0x61,0x8e,0x23,0x07,0xf8,0x38,},{0x08,0x12,0x63,0x73,0xd0,0x56,0xf0,0x0e,0x54,0xb8,0xd4,0x3d,0x77,0xc3,0x5f,0x5f,0x91,0x98,0x33,0xe9,0x0d,0x8a,0xaf,0xd6,0xc8,0x24,0x6d,0x27,0x91,0x7a,0xd0,0x91,},{0xd2,0x11,0x3f,0x80,0xd6,0xcf,0x92,0x84,0x86,0xa2,0x50,0xa6,0x79,0xd6,0xe7,0x4b,0x35,0xea,0x9d,0x26,0x06,0x1f,0xa9,0x4d,0x76,0x9e,0x1a,0x8f,0xbf,0xa0,0xa7,0x34,0x22,0x7f,0x55,0x53,0x7e,0x4e,0xbf,0xf5,0x93,0x36,0xdb,0x14,0x1c,0xf5,0xd6,0xd4,0x82,0xa0,0x71,0x1f,0x1e,0x9f,0xc7,0x2f,0xf7,0x09,0x56,0xa1,0x1b,0x4f,0xb9,0x09,},\"\\x47\\x76\\xe9\\xd6\\x00\\x85\\x48\\x1f\\xa5\\x37\\xbf\\x29\\x5b\\xda\\xbd\\x8b\\x1c\\xf6\\x32\\xa8\\xcd\\x40\\xbc\\xe6\\xbd\\x32\\x5c\\x12\\x9f\\x97\\x70\\x00\\xe8\\x84\\x68\\xeb\\xf2\\xdc\\x15\\x8a\\xc0\\xf2\\x07\\x21\\x2d\\xb0\\x0f\\xb6\\x0b\\x8e\\xc8\\xba\\xe2\\x29\\x37\\x2e\\x9a\\x6b\\x01\\x53\\x0a\\x7e\\xd1\\xbc\\x9d\\x38\\x9e\\xc8\\x91\\x3f\\x59\\x03\\x0d\\x5b\\x54\\xaf\\x56\\xae\\x1c\\xcc\\x28\\xf3\\x7c\\xc9\\x6a\\x8e\\x53\\x20\\x4e\\x92\\xa6\\x77\\x76\\x6a\\xdf\\xaa\\xda\\x99\\xb0\\x28\\x1f\\x86\\x7f\\x61\\xac\\x9f\\xf7\\xd9\\x72\\xee\\x3e\\xd4\\x27\\xd7\\x2f\\xaa\\xe7\\x5d\\x4a\\xec\\x01\\xb5\\xff\\xc3\\x70\\x61\\xb6\\xf0\\xf7\\xe5\\x71\\x4c\\x4c\\xf3\\x0d\\x5b\\x73\\x1b\\x07\\x46\\x06\\x5f\\x19\\xe4\\xc8\\x92\\x2d\\xde\\x64\\x2f\\x80\\xfe\\x24\\xa3\\xc8\\xdc\\xb2\\xe5\\xf1\\xc2\\x66\\xe2\\xaf\\x6c\\x37\\xde\\xcf\\x55\\xa2\\xba\\xa5\\x4f\\x0d\\x5c\\xf0\\x83\\x93\\x70\\xc3\\xe0\\xb4\\xe7\\x7a\\x4f\\x36\\xbb\\xb3\\x16\\x20\\x14\\x93\\x3a\\x4a\\x4e\\xbc\\xae\\x8c\\x60\\x96\\x1a\\xc6\\xdc\\xf1\\x34\\xf3\\x08\\x28\\xd3\\x14\\x02\\xae\\x74\\xe7\\xe8\\x51\\x3c\\x9d\\x2a\\xd8\\xee\\x46\\xb7\\xa9\\xd5\\x3a\\x1f\\x87\\xeb\\xfc\\xe0\\x4f\\x46\\x1b\\xde\\xd1\\x74\\x9b\\x6f\\xc4\\xc4\\xf2\\x57\\x93\\x52\\x56\\x92\\xd7\\xa0\\xe4\\x26\\xc8\\x4e\\x06\\x08\\x2c\\xc3\\xe6\\xab\\xb5\\x13\\x68\\x37\\x0c\\xbb\\x10\\x6c\\x7a\\x08\\x97\\xf6\\x6d\\x92\\xc9\\x73\\x9c\\xff\\x9f\\x27\\x06\\xd6\\xa2\\x98\\x0e\\xce\\xa3\\xac\\x49\\x45\\xf0\\xf4\\x7e\\x65\\x6b\\xd9\\x63\\x77\\x77\\xe8\\x53\\xd2\\xa8\\x39\\x10\\x43\\x27\\xdc\\x04\\x9e\\xbc\\x34\\xf0\\x49\\xd6\\xc2\\xf8\\x0e\\xca\\x99\\xdb\\x7b\\x41\\x84\\x24\\xac\\xef\\x75\\x22\\x60\\xd2\\xd4\\x27\\x94\\x93\\x23\\x99\\x7c\\xd9\\x61\\x7e\\xdf\\x50\\xd4\\x41\\xd0\\x08\\x8b\\x1d\\x47\\x91\\x2e\\x35\\xcf\\x54\\x23\\x15\\x26\\x58\\x29\\xf3\\x83\\xf4\\x58\\x60\\xd3\\xb4\\x5e\\x73\\x5b\\xb2\\xf8\\x58\\x6d\\xcf\\x58\\xdb\\x4f\\x2a\\xcf\\xb4\\xa6\\x88\\x53\\xa9\\x6e\\xed\\x7b\\x89\\x76\\x9d\\x36\\x56\\x13\"},\n{{0x5d,0x95,0x85,0x73,0x6a,0xb2,0x09,0xb0,0xab,0xe8,0xbf,0x74,0xac,0xa4,0xee,0xa4,0xf6,0xd1,0x65,0x0b,0x53,0x25,0x50,0xa2,0x23,0xe0,0x44,0x58,0x0f,0x8e,0x20,0xde,},{0xe7,0x77,0x29,0xed,0xfd,0x21,0x44,0xb2,0xb1,0x20,0x78,0x76,0x54,0x17,0xfa,0x21,0xf1,0x59,0x4f,0x09,0xb2,0x69,0xe9,0xb6,0x70,0x68,0x02,0xb4,0xf3,0xbd,0xfe,0x85,},{0xe7,0xb0,0x8e,0x1d,0x58,0x09,0xfd,0xd8,0x52,0x94,0x43,0xd6,0x5a,0xda,0x5d,0xd6,0x55,0xea,0x55,0xb5,0x41,0x5a,0x01,0x13,0x93,0xbe,0x70,0x71,0x67,0x64,0x86,0xd3,0x58,0xe8,0xd2,0xa4,0x60,0xeb,0xe0,0x75,0xb0,0xe7,0x01,0xb2,0x4c,0x9e,0x3a,0xb5,0xf2,0xb0,0x33,0x59,0x2d,0x4d,0xe3,0xb7,0xf3,0x7f,0xd5,0x41,0xf6,0x92,0x09,0x09,},\"\\x08\\x69\\x35\\x91\\xe6\\xc5\\x8a\\x5e\\xad\\x9c\\x85\\xfe\\x8e\\xc5\\x85\\x08\\xf8\\x1a\\x34\\x67\\x63\\x6c\\x2d\\x34\\xfc\\xc1\\xf4\\x66\\xe5\\xc6\\xda\\xfd\\xc3\\x7c\\x35\\xcb\\xee\\x35\\x58\\x9c\\x69\\x97\\xe2\\xb1\\x54\\x48\\x13\\x27\\x44\\xe5\\xa1\\xe1\\x31\\xbb\\x49\\xbf\\x5c\\x25\\x63\\xf8\\x7e\\xad\\x3e\\xfe\\x01\\xe8\\x8c\\xbf\\x24\\xcc\\x17\\x69\\xc7\\x8c\\xdf\\xc1\\x67\\xe3\\x78\\x21\\x5b\\x15\\x85\\x9c\\x7a\\x28\\xec\\xe7\\x0e\\x18\\x8f\\xa3\\x30\\x26\\x7d\\x3f\\xc5\\x7b\\x4a\\xce\\x6c\\x15\\x20\\xec\\x67\\x87\\x50\\x67\\xfd\\x33\\xbe\\x86\\xf4\\xa1\\x96\\x7a\\xfb\\x3e\\xb1\\x64\\xc7\\x97\\xcf\\x28\\xd8\\x07\\x2a\\xa6\\x9d\\x82\\xaf\\xa3\\x83\\x74\\xf8\\xe5\\x79\\x7c\\x4c\\x28\\x47\\x1b\\x7d\\x69\\xf5\\xb9\\xc7\\xb4\\xac\\xdb\\xc1\\x9f\\x3c\\x5c\\x5d\\x40\\x08\\x08\\xa9\\x82\\xa4\\x78\\x37\\xae\\xd1\\xb3\\x84\\x1d\\x69\\x89\\x0e\\xeb\\x31\\x49\\x4e\\x10\\xe3\\xe5\\x13\\xd1\\x2d\\x0c\\xa6\\x86\\xc7\\xce\\x65\\x17\\x78\\x09\\x27\\x03\\xfe\\xf0\\xdc\\xc0\\x21\\x40\\x77\\xdf\\xb3\\x61\\x25\\x1b\\xde\\xa4\\x36\\x4d\\xd4\\x1b\\x97\\xbc\\xeb\\x0f\\xb1\\x47\\x5a\\x50\\xe4\\x70\\x8f\\x47\\xf7\\x87\\x8c\\x74\\x40\\x1e\\x97\\x71\\xcc\\x3f\\xce\\xac\\xe8\\x91\\x69\\x98\\x1a\\xa7\\x72\\x50\\x85\\x00\\x90\\xd1\\x81\\xd8\\x35\\x8e\\xbb\\xa6\\x5e\\x29\\x0a\\xcb\\x03\\x52\\xbe\\xce\\x8c\\x57\\x98\\x32\\xa6\\x01\\x55\\x18\\x16\\xd1\\xc0\\x56\\x21\\xcc\\xbb\\xee\\x0f\\xbe\\x39\\xea\\x2f\\x19\\x53\\x93\\x19\\x9e\\x69\\xc2\\x34\\xc2\\xfb\\x1c\\x37\\xe4\\x74\\x84\\x08\\x60\\xce\\x60\\x91\\x61\\xfc\\xfc\\xe2\\x86\\x95\\x74\\xbe\\x0d\\x38\\xf9\\x5e\\x20\\xf4\\xf8\\x72\\x52\\x47\\xb9\\x62\\x7b\\x46\\xe8\\x34\\x90\\x51\\x01\\xac\\x12\\xb9\\x34\\xcb\\xf8\\x7c\\xb2\\xd1\\x90\\xd2\\xf5\\x14\\x90\\xa8\\x2c\\x4e\\x81\\x0e\\xdd\\xb8\\x1f\\x95\\x6a\\x9f\\x36\\xbd\\xa4\\x97\\xbc\\xa5\\x06\\xa4\\x9e\\xe9\\xcd\\x47\\xfd\\xa5\\xb7\\xf2\\xb8\\x84\\xa3\\x64\\x8c\\xad\\xd1\\x2a\\xb6\\x18\\x98\\xad\\xa4\\x6e\\xcc\\x97\\x0f\\x81\\xdc\\x9f\\x87\\x68\\x45\\xdb\"},\n{{0x60,0xb1,0x42,0xf1,0x65,0x11,0x41,0x43,0xca,0x30,0xa6,0x04,0xfe,0xf5,0x1c,0x68,0x64,0x36,0xaa,0x1b,0x9a,0xfd,0xb2,0x66,0xb3,0xe3,0x98,0xcc,0xb3,0xc4,0xd8,0x55,},{0xea,0xf6,0xc5,0xa7,0x6c,0xa9,0x9b,0xf7,0x30,0x64,0x98,0x88,0x8c,0x3b,0x7a,0x1f,0xea,0xe9,0x8b,0xf8,0x98,0x8d,0x7f,0x2e,0x15,0x47,0xf8,0xf5,0x3a,0x45,0x28,0xaa,},{0xa6,0x21,0xf0,0x84,0xea,0x1a,0x36,0xef,0x81,0x2a,0x97,0x55,0xc9,0xaf,0xbb,0x53,0xda,0xda,0xae,0x6b,0x3a,0x53,0xfa,0x83,0x44,0xca,0x40,0xd3,0x61,0x2a,0x26,0x8a,0x35,0xfe,0xd0,0xfd,0x39,0x8a,0xb7,0x5b,0xcd,0x63,0x9c,0x54,0x79,0x37,0xc9,0x41,0x55,0xab,0x1a,0x7a,0x34,0x67,0xdd,0x4b,0xfd,0xdf,0xac,0xab,0x16,0x55,0xe9,0x08,},\"\\x18\\x15\\xde\\xe1\\x17\\x3b\\x78\\x26\\x47\\x20\\xd3\\x5b\\x7c\\xc2\\x45\\x4a\\x00\\x0a\\x65\\xff\\xf2\\x14\\xe2\\x47\\x3e\\x20\\xbc\\x83\\xf3\\xec\\xde\\x9c\\x04\\xc1\\xe0\\x69\\x6c\\xe6\\xe5\\x55\\x19\\xdd\\x2a\\x75\\xce\\x04\\x64\\xbf\\x60\\x1a\\xdc\\x38\\x1e\\x79\\x3e\\xcb\\x9f\\x8c\\xe7\\xab\\x87\\xb6\\xca\\x2a\\x3e\\x41\\x0f\\x63\\x90\\x69\\x45\\x19\\x78\\xd1\\x48\\x73\\xd3\\x39\\x0f\\xab\\x86\\x23\\x96\\x97\\x13\\xc3\\xdf\\xcd\\x58\\xd8\\x6d\\x12\\x40\\x73\\x76\\x1e\\xe0\\x9a\\x65\\x2a\\x48\\x76\\x7f\\x96\\x46\\xcb\\x72\\x6a\\xc4\\x54\\xac\\x9a\\x1b\\xc5\\xfa\\xed\\x30\\x26\\xb7\\x03\\x98\\x2b\\xc2\\xb1\\xe0\\x75\\x82\\x10\\xe1\\xd6\\x25\\x19\\x23\\x0e\\xb2\\xb2\\xf4\\xa4\\x86\\xbc\\x55\\x16\\x85\\x60\\xc4\\x36\\x3d\\xf5\\xff\\x5a\\xdf\\xda\\x11\\xac\\x7e\\xf5\\x1b\\x18\\x19\\x6c\\x94\\x33\\x7c\\x07\\xae\\xf1\\x17\\x99\\x0f\\x77\\x0c\\x0f\\x1e\\x8c\\x0f\\x88\\xeb\\x6f\\xfc\\x40\\xe8\\xed\\x7c\\x3a\\x80\\xa6\\x32\\xdb\\x1e\\x7f\\x63\\xb6\\x30\\x96\\xe2\\xac\\x49\\xe5\\x77\\x92\\xb3\\x11\\x43\\xe2\\xf4\\xfa\\xab\\xce\\xae\\x66\\xb2\\x74\\x71\\x68\\x1c\\x36\\xfc\\x11\\x39\\x00\\x7f\\x9b\\x54\\x8c\\xdc\\x6e\\x3b\\x8f\\xbb\\xda\\xba\\x7a\\x8a\\xdb\\x84\\x34\\x31\\x23\\x8b\\xb4\\x61\\xba\\x24\\xf6\\xe0\\x9f\\x62\\xc7\\x2d\\x63\\x77\\xb4\\x04\\x8c\\xb0\\x13\\x4c\\x25\\xa5\\x41\\x1a\\x20\\xbf\\xcf\\xc1\\x3e\\x48\\xd8\\x0e\\x36\\xbf\\xb0\\xda\\x7e\\x01\\x85\\xd3\\x3f\\x19\\x28\\x63\\x6e\\x15\\xde\\xe0\\xe5\\xdf\\x89\\x92\\xa1\\x65\\x72\\xb1\\x3e\\xa8\\xf7\\xcf\\x85\\xca\\xe3\\x2d\\x52\\x9f\\x66\\xe8\\xf6\\xd2\\xfb\\x2a\\xd0\\xbb\\xfe\\x71\\x99\\x16\\x9b\\x25\\x67\\xba\\x00\\xc7\\x81\\xb2\\x0a\\x48\\xe1\\xd7\\x0d\\xf9\\xfa\\x31\\x19\\xcd\\x7e\\x5b\\xbe\\x58\\x88\\x4b\\x0b\\x51\\x21\\x89\\x40\\xfa\\x81\\x5f\\x85\\x62\\x5f\\xa2\\x03\\x47\\x1c\\xee\\x80\\x84\\x78\\x0e\\xb0\\xb9\\x35\\x6f\\x9f\\x3d\\x4f\\x6d\\xf7\\x40\\x30\\x1d\\x70\\x7e\\xf1\\xff\\xb3\\x51\\x9e\\x3f\\x90\\xb8\\x06\\x4b\\x98\\xe7\\x0f\\x37\\x5d\\x07\\x14\\x26\\x88\\x17\\x18\"},\n{{0x73,0x4b,0xa4,0x70,0x33,0xc6,0x14,0x02,0x32,0xdd,0x4a,0x7a,0x14,0xf1,0xa7,0x74,0x3e,0xef,0xe9,0x07,0x0b,0xad,0x96,0x62,0x49,0x16,0x30,0xcc,0x9d,0x28,0xc1,0xf3,},{0x2f,0xa5,0xdf,0x30,0x26,0xd6,0x07,0x42,0xe2,0xaf,0xf6,0xb5,0x78,0x42,0xc7,0x12,0x68,0x46,0xc8,0xa7,0xbb,0xe9,0x26,0x6e,0xfa,0x7b,0x3f,0x23,0x98,0xc3,0x57,0xea,},{0x9b,0xd0,0x74,0xd1,0xd0,0xbd,0x28,0x00,0x1b,0xaf,0x7d,0x2d,0x4e,0x82,0x43,0x5d,0xf0,0x8c,0x42,0x64,0xd8,0xcb,0xb1,0xc3,0x81,0x18,0x3c,0x2f,0x01,0x22,0x3f,0x79,0xf9,0x49,0x23,0xca,0x17,0x8c,0xac,0x75,0x56,0x4e,0x16,0xc7,0xf5,0x60,0x79,0x08,0x8f,0x7e,0xd8,0x85,0xde,0x4d,0x50,0x9f,0xbc,0x78,0xf4,0x38,0xfb,0xa3,0xf6,0x07,},\"\\x5d\\x3c\\x65\\x98\\x10\\xc3\\xfe\\xa5\\x2a\\x6d\\xf3\\x86\\x1e\\x5c\\xdc\\x5b\\x70\\x3c\\xc1\\xce\\xf4\\x85\\x58\\xc6\\x1d\\x8c\\x51\\xd0\\xed\\xea\\x5a\\x14\\x79\\xcf\\xe5\\x06\\x3d\\x82\\xde\\xd9\\xca\\x68\\x1e\\x57\\x48\\x88\\x7c\\x40\\xec\\xfb\\x9e\\x1a\\x9a\\x8b\\x7f\\x85\\x09\\xd1\\x07\\x76\\x46\\x1c\\x39\\x23\\x39\\x96\\x93\\xa7\\x81\\x89\\x08\\x91\\x78\\xd5\\xaa\\xbd\\x15\\xf8\\xc8\\x46\\x64\\x2b\\xe4\\x7d\\x6d\\x4c\\xaf\\x13\\x82\\x4e\\xdc\\xef\\xb8\\x09\\x86\\x8f\\xa7\\x2d\\xdf\\x03\\x5c\\x4d\\xe8\\xef\\x0a\\x9c\\x83\\x22\\x64\\xf6\\x6f\\x01\\x27\\x61\\xce\\x69\\x55\\xbc\\x3c\\x41\\x6e\\x93\\xe2\\x91\\x88\\x02\\x5e\\xbb\\xb1\\x3a\\x55\\x32\\x58\\xc1\\xd7\\xc4\\x99\\xc9\\xa4\\xae\\xb1\\x0b\\xb3\\x6f\\x61\\xd1\\xbb\\x4c\\xec\\x5a\\xe5\\x5d\\x17\\x57\\x22\\xb9\\xa9\\x69\\x6d\\xf8\\x81\\x95\\x1e\\x35\\x20\\x0b\\x96\\x53\\xcf\\x6e\\xd4\\xb3\\xd1\\x5d\\xe0\\x87\\xa9\\xd1\\xc3\\x19\\xfc\\xe8\\x58\\x21\\x56\\xbe\\xbf\\x3f\\xc9\\x1e\\x0e\\x61\\x0f\\xf7\\xa1\\x53\\x08\\xfd\\x1d\\x2c\\x60\\x69\\xfb\\xbb\\x29\\x47\\xd3\\x11\\x07\\x31\\xd2\\x45\\xae\\x29\\x63\\x01\\x4b\\xd7\\x6d\\xea\\x42\\xdb\\x12\\x5c\\xec\\xc4\\x93\\xc8\\xe9\\x09\\x1a\\x76\\x64\\x65\\x77\\x72\\x9a\\xed\\x49\\x66\\xfc\\xe9\\x69\\x9f\\xe1\\x2e\\x36\\x7d\\x66\\x5d\\xf9\\xe9\\x5a\\x91\\x93\\xe1\\x13\\x3e\\x14\\x3a\\xf9\\x2f\\x82\\xb6\\x6a\\xc7\\x76\\x4e\\x50\\x33\\x17\\x86\\x90\\x52\\x18\\x09\\xa7\\x10\\x7d\\x8a\\xe9\\xb8\\x8e\\x0e\\xd1\\xf3\\x5b\\x17\\x19\\x90\\x1b\\x93\\x0a\\xd0\\xe1\\xcb\\xce\\x7f\\xb3\\x02\\x67\\xb1\\x15\\x52\\x04\\xf6\\x05\\xf5\\x25\\xe4\\x9d\\xe2\\x98\\x8e\\xa7\\xf7\\x4b\\xe8\\x81\\x51\\x77\\xfd\\x97\\x6a\\x1b\\xcc\\x12\\x6d\\x9c\\x9c\\x13\\x5c\\x5b\\x42\\x76\\xd3\\x80\\x19\\xc3\\x4a\\xef\\xb7\\xa0\\x22\\x0f\\x7f\\x5a\\xef\\xf3\\x80\\xae\\xd6\\x27\\xb0\\x70\\xc2\\xc9\\xe2\\x15\\x33\\xbb\\x35\\xc0\\x8e\\x39\\x4c\\x85\\xae\\x25\\xe6\\x86\\x29\\x42\\x59\\x9c\\x65\\xdb\\xae\\x59\\x77\\xa5\\x84\\xa8\\x81\\x80\\xe0\\xc8\\xc7\\x1e\\x5a\\x84\\x09\\xe0\\x4e\\xf7\"},\n{{0x45,0xe3,0x4d,0x0e,0xf4,0xc1,0x96,0xfa,0x6d,0x57,0x2b,0x6b,0x17,0x74,0xb5,0x21,0x8f,0x7c,0x32,0x91,0x30,0x4c,0x13,0x50,0x0d,0xf7,0x07,0x0d,0x90,0xe8,0x03,0x9e,},{0x13,0xa7,0x30,0x4d,0xff,0x42,0x33,0x59,0x17,0x7a,0xba,0xfa,0x5e,0x65,0x08,0xd2,0x67,0x69,0xca,0x99,0xcf,0x8a,0xf4,0x5c,0x38,0x3f,0x3f,0xf6,0x34,0x40,0x60,0x03,},{0xb4,0x2c,0x1f,0x92,0x5f,0x4b,0xac,0xcd,0x12,0x9e,0xfb,0x10,0x9d,0xb3,0x54,0xac,0xa3,0x1c,0x68,0x98,0xf4,0xf4,0x51,0x29,0x47,0x49,0xa2,0x6a,0x6d,0xa1,0x67,0x7b,0xd3,0xa5,0xc0,0x41,0x19,0xe3,0x5f,0x47,0x31,0x9f,0x20,0xcf,0xdf,0xc0,0x8b,0xb4,0x52,0x8b,0x21,0x00,0x9e,0x00,0xbd,0x41,0xeb,0xc0,0xf4,0x68,0x63,0xbe,0xd1,0x0b,},\"\\x3d\\x9e\\xd5\\xc6\\x4b\\x75\\xe1\\x35\\xdf\\x2f\\x5e\\x85\\x30\\x0d\\x90\\xf2\\x1b\\x36\\x39\\x35\\xe2\\x81\\x75\\x56\\xfc\\x93\\x11\\x75\\x1b\\xa7\\x53\\x54\\x77\\xde\\xc8\\x35\\x6e\\xc3\\x85\\xef\\xb8\\x2b\\x41\\x40\\x62\\xf3\\x5b\\xb6\\xd3\\xed\\xea\\xfd\\xe3\\x05\\xf9\\x90\\x0a\\x25\\xe9\\x81\\x3c\\x9e\\xe0\\x23\\x7d\\x46\\x40\\x96\\x50\\xcd\\xcd\\xb5\\xdf\\xa2\\x30\\x1a\\x8e\\x26\\x47\\xf8\\xd3\\x81\\x9d\\x86\\xf7\\xb7\\xe3\\x07\\x0d\\x33\\x44\\x0f\\x82\\xc4\\x05\\x4b\\x1a\\xb5\\xed\\xeb\\xeb\\x27\\xf9\\x5b\\x3c\\x4c\\x6f\\xdd\\x46\\x8f\\x21\\x60\\x0f\\x03\\xb3\\x49\\x4d\\xa2\\x00\\xba\\xb9\\x29\\x3c\\x38\\xd0\\x2f\\xc4\\x40\\x48\\xe5\\x2f\\xf5\\xfd\\x0f\\x72\\x17\\xa0\\x4d\\x4c\\xe9\\x12\\xa1\\x80\\xd1\\x62\\x8f\\x36\\x82\\x80\\xb6\\x89\\x26\\x72\\xe8\\xff\\x98\\xd4\\x62\\x9a\\xc2\\x8b\\x60\\xc0\\x2a\\x30\\x1e\\x6c\\x60\\x26\\xc1\\xb9\\xe9\\xef\\x21\\xcf\\x03\\x92\\xdf\\x22\\x50\\x08\\xd5\\xa0\\xe0\\x28\\x4b\\x28\\x26\\x31\\xad\\x17\\x10\\xf8\\x11\\x61\\x56\\x97\\x06\\x6c\\x98\\x29\\x65\\x19\\x94\\x8a\\x7c\\xfe\\xd5\\xae\\xeb\\x45\\x4e\\xe7\\xa6\\x1c\\xc2\\x71\\xbd\\x3d\\x49\\x9b\\xe1\\x7d\\xf0\\x9d\\x3a\\x0e\\x79\\x0e\\xe6\\xb9\\xbd\\x99\\xe1\\xb9\\x19\\xbe\\xd4\\xa0\\x63\\xb8\\xd1\\xa3\\x4f\\x1a\\xfd\\x2e\\x95\\x2b\\x9d\\xfe\\xfd\\x77\\x09\\x69\\xc8\\xb2\\xfc\\x37\\x97\\x7a\\xbb\\x0f\\xee\\x63\\x17\\x25\\x3a\\x23\\xec\\xc9\\x75\\x78\\x16\\x89\\x73\\x33\\x4c\\x8f\\x91\\x76\\x3a\\xb9\\x7f\\x29\\xc4\\x9b\\xae\\xee\\x7b\\x35\\xf3\\xae\\x7f\\x5c\\xd3\\xa4\\xa6\\xe6\\x97\\xef\\x25\\x5a\\x3c\\x2e\\xc0\\xc7\\x52\\xa3\\x39\\x6f\\x69\\xf6\\x63\\xca\\x1f\\xc2\\xb3\\x32\\xdf\\xe6\\xc0\\xfa\\xf7\\x8a\\xfe\\x9c\\x68\\xd9\\x95\\x71\\xe8\\xe8\\x96\\xc5\\x09\\x30\\x85\\xe9\\x86\\x3a\\x27\\x64\\x8a\\x9e\\x58\\xf3\\xa9\\xa8\\x4c\\xbb\\xfe\\x2b\\x41\\xca\\x36\\x33\\xdd\\x5c\\xf6\\xe8\\x2c\\xb7\\x7c\\xec\\xac\\xad\\x8d\\x78\\xb3\\x53\\xf4\\x8d\\xb4\\x2d\\x99\\xc3\\x6b\\xca\\xd1\\x70\\xea\\x9e\\x98\\xab\\xb2\\x78\\x8c\\x33\\xa3\\xc7\\x06\\x26\\x8f\\x36\\x31\"},\n{{0x88,0x8c,0xe2,0xec,0xce,0xda,0x9c,0xa2,0xb9,0x48,0xac,0x14,0x43,0xc2,0xae,0xdd,0x75,0x95,0xaa,0xcf,0x36,0xed,0xaf,0x27,0x25,0x5b,0xde,0x7a,0x69,0x91,0xdc,0xc0,},{0x01,0x6e,0x57,0x2b,0x4f,0x98,0x41,0x7c,0x6e,0xe2,0x97,0xab,0xd7,0x84,0xea,0x48,0x22,0x6f,0xf4,0xfb,0xf0,0x05,0x0a,0x5a,0xde,0x88,0x06,0xe7,0x04,0x6d,0x3b,0xa3,},{0x99,0xd8,0x3f,0x14,0x8a,0x23,0x6e,0xbb,0xef,0x1c,0xad,0x88,0xcb,0x3c,0x76,0x94,0xf4,0x98,0x6c,0x92,0x50,0xe2,0x1c,0x36,0x03,0xa0,0xd9,0x41,0xbf,0xf1,0x99,0xcf,0x77,0xd6,0xce,0x99,0xef,0xdb,0x20,0x53,0x31,0x88,0xd6,0x8a,0xd1,0x33,0xde,0x03,0x3a,0x1f,0xb3,0x46,0x8a,0xbb,0x70,0x6d,0x2b,0x8b,0x4f,0xba,0xc0,0x8d,0xfe,0x03,},\"\\x5c\\x80\\x1a\\x8e\\x66\\x4e\\x76\\x60\\x76\\x0a\\x25\\xa5\\xe1\\x43\\x1a\\x62\\x15\\x9f\\xc3\\xf3\\xaa\\x71\\x37\\x80\\xae\\x7c\\xbc\\xe2\\x3b\\x85\\x64\\x78\\x27\\x99\\xbf\\x2b\\xe4\\x81\\x7e\\xe2\\x92\\x19\\x65\\xba\\xb7\\xe1\\xd4\\x48\\x33\\x82\\x4c\\x16\\x28\\xd4\\x2d\\xce\\xe3\\xe4\\x6a\\xe4\\x2b\\x28\\x16\\xd0\\xa4\\x32\\xa1\\xab\\x0b\\xd2\\x1f\\xcf\\x30\\xad\\xb6\\x3d\\x8d\\xd7\\x65\\x69\\x54\\x43\\x43\\xd0\\x03\\x5c\\x76\\x05\\x22\\xca\\x68\\xbe\\xa7\\x2c\\x40\\x4e\\xdd\\xa1\\xe9\\x09\\x5e\\xc9\\x0f\\x33\\x25\\x68\\x1c\\x6d\\xe0\\xf4\\xc1\\x2d\\x1a\\xfb\\xcb\\xa2\\xc7\\x87\\x1a\\x1b\\x1e\\x1f\\x19\\xc3\\x5b\\x0b\\xed\\x9e\\xc2\\xa8\\x7c\\x04\\x3d\\x36\\xd8\\x19\\x39\\x6b\\xd5\\xd0\\x99\\xe1\\xaa\\x09\\x03\\x91\\x29\\x7c\\x73\\x3f\\x65\\xa8\\xc5\\xd2\\x12\\x0c\\x67\\x63\\x53\\x16\\xfa\\xb2\\x5b\\x4d\\x48\\x47\\xa4\\x5f\\xc3\\xf7\\x6f\\x2e\\x24\\x26\\xdb\\xee\\x46\\x29\\x97\\x50\\x62\\xfc\\xe1\\x4e\\x21\\x89\\xdb\\xa2\\x7f\\xb1\\xde\\xd2\\x45\\x3f\\x00\\x1d\\xeb\\xfa\\xa8\\x99\\xc1\\x16\\x60\\x61\\x2d\\x2c\\xe2\\xad\\x2f\\x76\\x2e\\xa5\\xde\\xe7\\xe7\\x1e\\x58\\xad\\xcd\\xce\\xfa\\x79\\xe8\\xe8\\xb2\\x7f\\xc4\\xcc\\xf8\\x9a\\xab\\xf1\\x76\\xb5\\xd3\\x4f\\x82\\xdd\\x15\\xd8\\x89\\xf9\\xf0\\x87\\xdc\\x9a\\xe8\\xa4\\x2a\\x72\\xf3\\xb8\\x35\\x83\\x61\\x6e\\x17\\x06\\x37\\xcd\\x1a\\xdf\\x38\\xaa\\x65\\x51\\xcb\\xac\\xca\\x36\\x02\\xbd\\xc7\\xae\\x21\\x0c\\x4a\\x44\\x6b\\x3a\\xf8\\xdb\\x27\\x20\\xe5\\x49\\xbb\\xed\\xb8\\xbe\\xd2\\x15\\xae\\x00\\xf1\\x9d\\xa2\\x9d\\x8f\\xb0\\xb6\\x42\\xd2\\x7b\\x2d\\x88\\x57\\x5f\\x0e\\xe8\\x4f\\x3d\\x12\\x9e\\xb7\\x74\\xd2\\x0f\\x53\\x7a\\x1c\\x0f\\xdc\\xf7\\x17\\xbd\\xeb\\xcf\\xe4\\x7f\\x83\\x31\\xa3\\x41\\x86\\x43\\x46\\xfa\\x6a\\x1c\\x6b\\xbf\\xd1\\x78\\x81\\x9e\\x38\\x7a\\x0d\\x54\\x99\\xa6\\x8e\\x81\\xcc\\x9f\\x82\\xad\\x39\\xe3\\x1e\\x4d\\xfe\\x71\\x95\\x2d\\x5e\\xa5\\xcc\\x80\\x52\\xa3\\xce\\xed\\x17\\x51\\xf5\\x9d\\xc7\\xec\\xc9\\x74\\x2f\\xad\\x14\\x4e\\x18\\xdd\\xa8\\xd0\\x58\\x2e\\x74\\xe3\\x9c\\xa8\\xc4\"},\n{{0x61,0x73,0x90,0x85,0x7d,0xc1,0x0c,0xdf,0x82,0xb5,0xc9,0x42,0x61,0xf5,0x8c,0xe2,0xd4,0x4a,0xa2,0xf5,0x7d,0x29,0x8f,0x08,0xa2,0xd6,0xc7,0x4d,0x28,0x14,0x7d,0xaf,},{0x89,0xe0,0xc3,0xe0,0xa0,0xf1,0x30,0xd1,0x91,0x6e,0x0e,0x38,0x49,0xb7,0x28,0x6f,0xa2,0xe3,0xac,0x4c,0x17,0xbd,0x1f,0x71,0x6e,0xe5,0xa7,0x2f,0x02,0x57,0xfb,0x8d,},{0x63,0xe9,0x0a,0x6a,0xfb,0xbb,0xb0,0xee,0x69,0x6b,0xfb,0x56,0xef,0xd6,0x79,0xd6,0x8a,0x98,0x51,0xa8,0x94,0x76,0x40,0xa9,0x7f,0x41,0xf6,0x8e,0xdf,0xea,0xdd,0x21,0x6e,0xd8,0x69,0x8e,0x2e,0x43,0xc8,0x20,0xc9,0x04,0x4c,0xaa,0x7a,0xda,0xab,0x5b,0x76,0x76,0x2b,0x68,0x18,0x31,0xa9,0xf7,0x60,0x47,0x6a,0x84,0x43,0xc4,0x3c,0x06,},\"\\x1f\\xd9\\xe7\\x45\\x3e\\xaf\\xfd\\x7c\\x9b\\x54\\x05\\x56\\x22\\xdd\\xe1\\x70\\xdd\\x58\\xb7\\x1c\\xb9\\x45\\xde\\x75\\x35\\x1d\\x5f\\xce\\xb1\\xf5\\x36\\xbd\\xe2\\x51\\x58\\xf0\\x37\\x86\\x15\\x5f\\x95\\x3d\\xc2\\x07\\xa1\\x70\\x8f\\x90\\xd9\\x5b\\x15\\xac\\xa0\\xae\\xe3\\x09\\x7f\\xdc\\xaa\\xe8\\x5e\\x4a\\xb1\\xc2\\xcd\\xb7\\x05\\xc5\\x3e\\x6c\\x2e\\xd2\\x1a\\x99\\x4b\\x30\\x4a\\x75\\xca\\xf2\\xce\\x4f\\xc7\\xd6\\x1f\\x56\\x1e\\x74\\xe2\\x97\\x39\\x7e\\x2c\\xde\\x5c\\xc6\\x90\\x56\\x94\\x03\\x43\\xaa\\x81\\x37\\x5d\\x0a\\xf1\\x8d\\x17\\xd2\\xf3\\x4c\\x0a\\x71\\xdc\\xf1\\xde\\x3c\\x4f\\xc4\\x88\\xa1\\x4c\\x5f\\xa6\\xb3\\x33\\x7a\\x31\\x74\\xb1\\xda\\x79\\x58\\xfb\\x00\\xbd\\x59\\x55\\x14\\x82\\x21\\x42\\x7c\\x60\\xdb\\xa0\\x41\\x17\\xc8\\x0d\\x24\\x88\\x65\\x6d\\xbd\\x53\\x43\\xde\\x89\\x12\\x87\\xb5\\x0e\\xf4\\xdf\\x98\\x25\\xed\\xa7\\x6b\\x49\\x77\\xf3\\xac\\xd4\\xab\\x6d\\x31\\x02\\xfa\\x56\\x87\\x83\\x06\\xcd\\x76\\x56\\x14\\x91\\xbc\\xfd\\xaa\\x1d\\xa5\\x67\\xe6\\x77\\xf7\\xf0\\x3b\\xae\\x5d\\xbf\\x44\\x26\\xc3\\xc4\\xa6\\xc3\\xd0\\x82\\xf9\\x17\\x8b\\x2e\\xfd\\xd2\\xbd\\x49\\xee\\xe9\\x7e\\xf4\\xdc\\xf3\\xf0\\xf5\\x1b\\xbd\\xef\\xfe\\x5a\\xe6\\x60\\x1e\\x28\\x01\\x95\\x18\\xf8\\x27\\xf0\\x2e\\x51\\xf6\\x67\\x9b\\x87\\x15\\x97\\x8b\\xec\\x3e\\x69\\xd5\\x77\\x15\\x6d\\xd7\\x19\\x95\\x93\\x71\\xba\\xf0\\x34\\x21\\x9f\\xbb\\xd1\\x7a\\x23\\x69\\xa8\\x54\\x14\\x90\\xf6\\xa0\\x20\\x13\\xe3\\x3e\\x74\\xf4\\x76\\x9b\\xe3\\x7a\\xef\\xa4\\xde\\xfb\\x6b\\xfb\\x3f\\x35\\x1c\\x2a\\x26\\x14\\x82\\xc2\\xfb\\xec\\x49\\xf8\\x5f\\x84\\x45\\x45\\x6e\\x8f\\x5a\\x47\\x40\\x30\\xcd\\x72\\xd0\\x95\\xef\\x6a\\x62\\x20\\x30\\xe1\\xe4\\x3a\\x0c\\x5d\\xeb\\xb0\\x34\\x73\\x1d\\x2f\\x5e\\x8e\\x4b\\xa3\\x99\\x0f\\x07\\x7d\\x0c\\x16\\x26\\x49\\xd1\\xfa\\x3e\\xa4\\xfe\\x1e\\x81\\xd7\\x4a\\xa8\\x49\\xe2\\x1b\\x05\\x9d\\x96\\x6c\\xba\\xd4\\xc4\\x93\\xca\\x10\\xba\\xfe\\x7a\\x69\\x24\\x3e\\x3c\\x0a\\x6e\\xbf\\xd1\\x3d\\x69\\x79\\x06\\x30\\x33\\x92\\xba\\x65\\xd4\\xfe\\x06\\xb6\\xa5\"},\n{{0x87,0x7d,0x01,0x74,0x36,0x36,0x9e,0xc2,0x45,0x3f,0xed,0x46,0xe9,0x77,0xd6,0xac,0xc3,0xa7,0xbe,0x60,0xd3,0x13,0x95,0xad,0x6e,0x7e,0xa9,0xe0,0x74,0x80,0xe4,0xc9,},{0x4e,0x65,0x42,0x2f,0xed,0x33,0x4a,0x55,0xe8,0xb6,0x73,0x89,0x3e,0xba,0x7c,0x18,0x1d,0xd7,0x24,0xdd,0xa0,0x02,0x81,0x7b,0x0b,0xae,0x28,0xac,0xdc,0x3f,0x7f,0xc0,},{0x76,0x88,0xf3,0xf2,0x40,0x1e,0xac,0xaf,0x2d,0xd8,0x8e,0x17,0x0f,0xf1,0xc4,0xd7,0xe9,0x48,0x22,0xa7,0x7f,0x6b,0x55,0x0b,0x56,0x9e,0x82,0x15,0x2b,0xbb,0xb4,0x34,0x05,0x7e,0x01,0x23,0x0b,0x05,0xce,0x58,0xee,0x1d,0xee,0x52,0x26,0xb5,0xc7,0xcd,0xbe,0x5a,0x8a,0xde,0x3b,0x94,0x65,0xf5,0x9a,0xed,0x74,0x14,0x5d,0x14,0x33,0x0c,},\"\\x4e\\xd3\\xf5\\xbd\\xbd\\x41\\xd0\\xe3\\xb0\\xa8\\xa7\\xfc\\x37\\x52\\xee\\xa4\\x96\\xd6\\x14\\x16\\x78\\xcb\\xfe\\x06\\x75\\x7f\\x61\\xe1\\xa1\\x68\\xd7\\x61\\xb6\\xda\\x83\\x05\\x2f\\x79\\x94\\x95\\x0d\\x24\\x62\\x6f\\x00\\x4f\\xbe\\x9b\\x8c\\x95\\x62\\xe0\\xc9\\x55\\xfb\\x3b\\x5c\\x08\\xfd\\x2d\\x3d\\x25\\x83\\x93\\xa3\\x49\\x03\\x0c\\x8e\\x15\\x62\\x05\\xb4\\x04\\x83\\x03\\x8b\\xe1\\x95\\x9f\\x1c\\xba\\x49\\x0a\\x87\\xfe\\x13\\x89\\x9e\\x4f\\x37\\x52\\x06\\x3b\\x68\\xfe\\x3e\\x1c\\x50\\x71\\xf7\\xdb\\x00\\x02\\xf0\\x14\\x94\\xb4\\xa3\\xee\\x2e\\x07\\x99\\x2b\\xdd\\x20\\x0d\\xb4\\x31\\x66\\x29\\xee\\x8a\\x95\\xca\\x34\\x7f\\x0b\\x28\\xd6\\x40\\x2a\\x6d\\xa8\\xb5\\x3e\\x6b\\x32\\x58\\x1c\\x36\\x91\\xe1\\x1a\\xe9\\xb6\\xe0\\xf0\\x49\\x48\\x94\\xe6\\x49\\xa9\\x2d\\x03\\xeb\\x49\\xc4\\xd6\\x83\\x3f\\xa1\\xf5\\x4f\\x8d\\xcd\\x91\\xd0\\x69\\x36\\xa6\\xe6\\x2d\\x49\\x1e\\x2c\\xea\\x46\\xdd\\x07\\xd9\\xf0\\x2d\\x32\\x54\\xb8\\x50\\xbc\\x97\\x49\\xf2\\x58\\xa6\\x1a\\xd3\\xb9\\xcc\\x24\\xb0\\x32\\x87\\x33\\x1b\\x85\\xa2\\x41\\x43\\xaa\\xf8\\xfc\\xcc\\xac\\x5f\\x18\\xbf\\xc7\\x2d\\xec\\x75\\xc0\\x23\\x35\\x16\\xaa\\x6e\\x45\\x89\\xc7\\x8c\\x66\\x5a\\x18\\x6e\\xd9\\x02\\x09\\x1d\\xf9\\x7b\\x0d\\x04\\xe8\\x3a\\x2d\\x74\\xd7\\x89\\x89\\x1a\\xea\\x2c\\xac\\xf8\\x13\\xff\\xfb\\x5e\\xfa\\xf7\\x8d\\xbc\\xd7\\xaf\\x54\\xef\\x55\\xc7\\x7b\\x1c\\x4c\\x8a\\xce\\x9e\\x92\\x78\\xad\\xc2\\x3d\\x76\\xc7\\x79\\xd6\\x4b\\x3b\\xbb\\xd1\\xfb\\x33\\xb0\\x98\\x36\\xea\\x64\\xa7\\x1e\\x47\\x11\\xe8\\x9e\\x8d\\xa0\\xf7\\x09\\x21\\x33\\x42\\x17\\x6a\\xe2\\x2c\\x6e\\x78\\x52\\xc3\\x97\\x3b\\x60\\xd9\\xf9\\x88\\x89\\xb4\\x42\\xaa\\x48\\xd7\\xbf\\xdf\\xde\\xf6\\x4c\\x36\\xc5\\x86\\xc4\\xfb\\x2a\\xd2\\xe2\\x7e\\xbe\\x47\\x9f\\x6d\\x72\\x2f\\x06\\x9f\\xd6\\x10\\x6b\\x0d\\x08\\x97\\x5d\\x5f\\x72\\x15\\x47\\xc3\\xb9\\xc5\\x2f\\x9f\\xc5\\xf4\\x5b\\xb4\\x5b\\x5b\\x63\\x21\\x88\\xe8\\x06\\x26\\x51\\x8a\\x79\\x05\\x6b\\xdc\\x4e\\xe1\\xd2\\xbe\\x6c\\x65\\x42\\xa2\\x1f\\xad\\xea\\x92\\xc6\\xdf\\xb7\\x76\"},\n{{0x4f,0x0b,0x36,0x07,0xd7,0x0b,0x0f,0x26,0x98,0x32,0x7e,0xf4,0xf1,0x98,0x2c,0x5b,0x4b,0x94,0xbe,0x78,0xf5,0x0c,0x76,0xf4,0x3b,0xd6,0x42,0xf1,0xf0,0xed,0xe3,0x9b,},{0x94,0x2b,0x43,0x08,0x9f,0xd0,0x31,0xce,0xc0,0xf9,0x9e,0x5e,0x55,0x0d,0x65,0x30,0x7f,0xb6,0xc3,0xe7,0x93,0x44,0x9f,0xb3,0x90,0xff,0x73,0x0f,0xff,0xd7,0xc7,0x4b,},{0xf3,0x96,0xa1,0x1f,0x2f,0x03,0xc6,0x14,0x39,0x68,0x4f,0x79,0x00,0x1b,0xd4,0xf3,0x46,0xa3,0x48,0xdc,0xf1,0xd3,0xbe,0xb2,0xd3,0xbf,0xe3,0x3e,0xa7,0x3a,0x5a,0xd4,0xeb,0x97,0x50,0x6a,0xcf,0xbf,0xfb,0x78,0x4e,0x77,0x54,0x81,0x89,0xcd,0x59,0x9f,0x8c,0xcf,0x17,0x35,0x5d,0xde,0x80,0xe7,0x50,0x24,0xef,0x2a,0x78,0xd5,0xfa,0x03,},\"\\x9f\\x70\\x0a\\x1d\\x25\\x60\\xf6\\x9d\\x9b\\xc1\\x05\\xbc\\x83\\xbf\\xf5\\x39\\xe4\\x25\\x8c\\x02\\x48\\x60\\x20\\x13\\xa9\\x59\\xb9\\x78\\xa1\\x9c\\xc2\\x73\\x28\\x0d\\x90\\xc0\\x17\\x80\\x89\\x57\\x8b\\x50\\x51\\x8e\\x06\\xad\\x1e\\xab\\x79\\x0f\\xfe\\x71\\x0c\\x63\\xd7\\x88\\x87\\xa9\\x55\\x69\\x14\\x4f\\x3e\\x58\\xa8\\x83\\x7f\\x93\\xdd\\x51\\x6f\\xcd\\xdd\\x22\\xbc\\x97\\xa7\\xf1\\x44\\x11\\xd4\\x24\\xb2\\xe8\\xe9\\xaa\\x7c\\x28\\x01\\x19\\xad\\x94\\xce\\x92\\x53\\x3f\\xc7\\xfe\\xa6\\xc6\\x62\\x48\\x64\\x4a\\xc3\\xe1\\xbe\\xef\\x25\\x53\\xa6\\xf6\\x1e\\x91\\xb9\\x37\\x9b\\x0f\\xe0\\xc6\\x8b\\x40\\x68\\x14\\x55\\xb3\\x11\\xf4\\x0d\\xf0\\xc9\\x7f\\x53\\xfc\\x95\\x42\\x42\\xc3\\x75\\xe7\\x70\\x8d\\x61\\xba\\xd9\\xf5\\x12\\x96\\x24\\x72\\x74\\xfa\\x01\\xa7\\x32\\x8f\\xa5\\x00\\x9d\\x99\\x95\\xf5\\x01\\xae\\x86\\x83\\x55\\x2b\\x11\\xa4\\x9d\\x26\\x38\\x11\\x67\\x23\\xb1\\x31\\x94\\x50\\xa9\\x01\\x38\\xd2\\x78\\xcd\\x95\\x12\\xb8\\x0c\\xa5\\x79\\x2e\\xd1\\x6c\\x68\\x3b\\xef\\x92\\xec\\x87\\x88\\x4c\\x9f\\x07\\xf1\\x37\\xdc\\x47\\xa1\\x31\\x46\\xe5\\x11\\x06\\x5c\\x2e\\x1b\\x4b\\x80\\xef\\xde\\x88\\xae\\x12\\xe2\\x94\\x31\\xbe\\xb7\\xae\\xe3\\x65\\xc1\\x6d\\x80\\x50\\x6b\\x99\\xaf\\xa6\\xa1\\x40\\x6e\\xdb\\x06\\x17\\x66\\x87\\x58\\x32\\xdb\\xa4\\x73\\xe5\\x19\\xdd\\x70\\x18\\xf4\\x02\\xeb\\x1b\\xb3\\x01\\x4b\\x7c\\xee\\x4f\\x02\\xe9\\x80\\xb1\\xb1\\x71\\x27\\xe7\\xd2\\x5d\\xfe\\x0c\\x16\\x8c\\x53\\x44\\xf1\\xc9\\x00\\x44\\xf8\\x27\\x70\\x7d\\xca\\x03\\x07\\x0e\\x4c\\x43\\xcc\\x46\\x00\\x47\\xff\\x62\\x87\\x0f\\x07\\x5f\\x34\\x59\\x18\\x16\\xe4\\xd0\\x7e\\xe3\\x02\\xe7\\xb2\\xc2\\xca\\x92\\x55\\xa3\\x5e\\x8a\\xde\\xc0\\x35\\x30\\xe8\\x6a\\x13\\xb1\\xbd\\xfa\\x14\\x98\\x81\\x30\\x98\\xf9\\xba\\x59\\xf8\\x18\\x7a\\xbc\\xaf\\xe2\\x1b\\xa0\\x9d\\x7c\\x4a\\xaa\\x1a\\xd1\\x0a\\x2f\\x28\\x33\\x4a\\xb5\\x39\\x96\\x14\\x7c\\x24\\x59\\xc0\\x1b\\x6a\\x10\\x83\\x9e\\x03\\x01\\x12\\x3d\\x91\\xa3\\x5c\\xed\\x7a\\xf8\\x9a\\xfb\\xac\\x7d\\x9c\\xf8\\xac\\x9a\\x38\\xce\\xeb\\xef\\x83\"},\n{{0xb8,0xa0,0x01,0x0c,0x78,0x4d,0x8d,0x00,0x2a,0x31,0xda,0x11,0xd0,0x22,0xd3,0x01,0x88,0xa4,0x19,0x7a,0x1d,0x5f,0x14,0xea,0x4c,0x0d,0xab,0x29,0xa2,0xe4,0x06,0x68,},{0x8b,0xdc,0x63,0xe5,0x0b,0xed,0xe1,0x3c,0x91,0xa4,0x1e,0x4b,0x4b,0x78,0x57,0xb9,0xe5,0x53,0xf4,0x84,0xe3,0xc1,0xec,0x16,0x7d,0xc0,0x4c,0x28,0x1e,0xa8,0x66,0x22,},{0xb3,0xf6,0xcf,0x4c,0x0e,0x0f,0x90,0x74,0xff,0x2c,0x2c,0x47,0xe1,0x63,0x20,0x2f,0x1e,0x9d,0x6e,0xe1,0x17,0xcf,0x75,0x76,0x33,0xe4,0xab,0xe7,0x44,0x23,0xaa,0x70,0x00,0x8a,0xda,0x15,0x09,0xec,0x1d,0xc1,0x17,0xc1,0xc2,0x30,0xe9,0xb2,0x37,0x86,0xf3,0xd0,0xf2,0x9b,0x73,0xaa,0x28,0x45,0x36,0xe9,0x58,0x01,0x06,0xa8,0xa7,0x0c,},\"\\x5c\\x6c\\xcb\\x29\\x8b\\xe2\\x16\\x80\\x8b\\x81\\x1e\\x56\\xd9\\x72\\xf4\\x56\\xb6\\x9a\\xd3\\x95\\x94\\xee\\xe3\\x54\\x70\\x1c\\xa6\\xb3\\xe3\\x8d\\x1f\\x41\\xa3\\x59\\xe5\\x51\\x2a\\xf9\\x8a\\x3a\\x08\\x73\\x26\\x5f\\xe5\\x19\\x1f\\x4f\\x2e\\xca\\xf6\\x6b\\xee\\x75\\xa3\\xac\\x0b\\x71\\xa4\\xdd\\xf2\\xa7\\x59\\xeb\\xdd\\xdb\\xd8\\x8a\\x6a\\x1c\\x6f\\xd0\\xfc\\xf7\\xd7\\xcb\\x92\\xa8\\x4e\\x33\\x07\\xb4\\xa4\\xf9\\x8c\\x71\\x0a\\xbf\\x4f\\x55\\x3d\\xee\\x74\\xf6\\x52\\xd2\\xac\\x64\\xbc\\x30\\xf7\\x2b\\xf4\\x35\\x4e\\xf7\\xe8\\x06\\xa1\\x90\\x71\\xa0\\x51\\xbc\\xfc\\xfb\\x27\\xe3\\x7f\\xdd\\xd4\\x1e\\xce\\xae\\xc1\\x75\\x8e\\x94\\x69\\x5c\\x67\\x0e\\xf4\\xc5\\xa5\\x90\\x21\\x78\\x32\\x9d\\xb9\\x58\\x5c\\x65\\xef\\x0f\\xa3\\xcd\\x62\\x44\\x9b\\xb2\\x0b\\x1f\\x13\\xae\\xcf\\xdd\\x1c\\x6c\\xf7\\x8c\\x51\\xf5\\x68\\xce\\x9f\\xb8\\x52\\x59\\xaa\\xd0\\x5b\\x38\\xc6\\xb4\\x85\\xf6\\xb8\\x60\\x76\\x92\\x8d\\xdb\\x4e\\x20\\x36\\xf4\\x5e\\x7b\\x9c\\x6a\\x7f\\xf2\\x4a\\xe1\\x77\\x60\\x30\\xe2\\x57\\x68\\x25\\x01\\x9a\\xb4\\x63\\xeb\\xf7\\x10\\x3a\\x33\\x07\\x20\\x33\\xea\\xcb\\xb5\\xb5\\x03\\xf5\\x32\\x66\\xaf\\xb8\\x2f\\x9b\\x24\\x54\\xb8\\xdc\\x05\\x7d\\x84\\xf3\\x0d\\x9d\\x2c\\xb7\\xc3\\xa3\\x1a\\x7d\\xbd\\xfb\\xa5\\xb8\\xe4\\x92\\x31\\xc2\\x31\\x39\\x6c\\x47\\xca\\x04\\x2c\\x8e\\x48\\xa1\\xa5\\xe3\\xec\\x9a\\xfe\\x40\\x20\\x59\\x53\\x90\\xf9\\x99\\x0d\\xfb\\x87\\x4e\\x08\\x25\\xae\\x9a\\xe5\\xe7\\x52\\xaf\\x63\\xaf\\x6f\\xd3\\xe7\\x87\\xe7\\x5e\\x8d\\x8d\\xc4\\xc6\\x63\\x02\\x27\\x7a\\xc0\\x1b\\x30\\xa1\\x8a\\x56\\xcb\\x82\\xc8\\xa7\\xeb\\xdc\\x91\\x5b\\x71\\x53\\x25\\x5a\\x1f\\xed\\xc4\\x92\\xe4\\x96\\x60\\x26\\x2b\\xb2\\x49\\x78\\x0d\\x17\\x3e\\x1f\\xd2\\x0d\\x18\\xc4\\xf6\\xb0\\xb6\\x9a\\xa2\\xec\\xa0\\x24\\xbf\\x3c\\x80\\xd7\\xd5\\x96\\x2c\\xc4\\xa1\\x29\\xa7\\x94\\x3b\\x27\\xf3\\x3c\\xc7\\x99\\xa3\\x60\\x45\\x54\\x12\\x75\\xa2\\xcd\\xb9\\x2a\\x40\\xe4\\x85\\xba\\x8b\\x73\\x7a\\x04\\xb4\\x3d\\x29\\xc3\\xe2\\x5f\\x76\\xcb\\x3d\\x93\\xa6\\xb9\\x44\\x61\\xf8\\x8f\\x56\\x96\"},\n{{0xef,0xc8,0x6c,0xbe,0x40,0x36,0x3a,0xbf,0xbb,0x2a,0x4b,0x1f,0xcc,0xe5,0xfd,0x60,0x84,0xda,0x96,0xe7,0xe8,0x14,0xde,0x71,0xaa,0xdf,0x9a,0x61,0x8f,0x30,0x36,0x25,},{0x22,0xf2,0x95,0xce,0xe7,0x27,0xd2,0x8d,0x2b,0x93,0x17,0x15,0x3e,0x7d,0x94,0x12,0xda,0x10,0x65,0xc1,0xb1,0x6a,0xe2,0xa2,0x51,0xdd,0x1f,0xb4,0x31,0xc6,0x2b,0x01,},{0xf8,0x81,0x83,0x10,0x22,0x8c,0xa7,0x61,0x11,0x52,0x4c,0xe9,0x4b,0xfc,0xb0,0x24,0x6e,0xa6,0x35,0x08,0xce,0xe9,0x30,0x65,0x92,0xb2,0xf7,0x75,0x48,0xed,0xef,0xcf,0x76,0xbd,0x14,0x54,0x50,0x8e,0xa7,0x15,0x04,0x2c,0xec,0x16,0x9c,0xea,0x51,0x15,0xab,0x54,0x23,0x5c,0xb1,0x09,0x7b,0x10,0x70,0x2a,0xa3,0x83,0x78,0x02,0x8e,0x0c,},\"\\x9e\\x4f\\xa4\\x5d\\xc0\\x26\\x71\\x0f\\x6b\\xef\\x4e\\xd0\\xf0\\x7c\\x54\\x4b\\x0b\\xb0\\xd8\\x8f\\xa7\\x9e\\x71\\x77\\xd8\\x44\\x8b\\xc2\\x09\\xd7\\x1c\\xfe\\x97\\x43\\xc1\\x0a\\xf0\\xc9\\x93\\x7d\\x72\\xe1\\x81\\x9e\\x5b\\x53\\x1d\\x66\\x1c\\x58\\xc6\\x31\\x41\\xce\\x86\\x62\\xc8\\x83\\x9e\\x66\\x4d\\xb7\\x9e\\x16\\xc5\\x4d\\x11\\x3a\\xbb\\x02\\xa7\\x5b\\xdf\\x11\\xb3\\x45\\x3d\\x07\\x18\\x25\\xbc\\x41\\x57\\x41\\xe9\\x94\\x83\\x54\\x6b\\x8e\\x1e\\x68\\x19\\xde\\x53\\x01\\x70\\x92\\xe4\\xef\\x87\\x1f\\x1c\\xa0\\xd3\\x50\\x8f\\x93\\x78\\x28\\xa4\\x66\\x7d\\xb1\\x1f\\xff\\xf9\\x41\\x6e\\xeb\\xb9\\x4b\\xf9\\xb8\\x4d\\x65\\x46\\x03\\x09\\x48\\x34\\xa9\\x9c\\xa7\\x0b\\x90\\xf5\\x62\\xa8\\x68\\x23\\x62\\x4d\\xfe\\x9c\\xb2\\xf9\\xe8\\x8c\\x17\\x3f\\x13\\x46\\x4d\\x4c\\xe2\\x55\\xf2\\x22\\xdb\\x50\\xdd\\x63\\xab\\x42\\x46\\x57\\x34\\xe7\\x52\\x95\\xc0\\x64\\xb6\\x4c\\xc3\\xf1\\x5e\\x62\\x37\\xe3\\x7f\\x33\\xd6\\x15\\xf7\\xc2\\x43\\xe4\\xba\\x30\\x89\\x60\\xcf\\xd4\\x39\\x34\\x02\\x52\\x55\\x00\\xbb\\x79\\x02\\x97\\x0b\\x39\\x31\\xd4\\x8b\\x35\\x66\\x6a\\x2d\\x4d\\x2a\\xb0\\x8f\\xa1\\x2a\\xf3\\x66\\xa0\\x04\\x34\\x6c\\x9d\\xd9\\x3d\\x39\\xfb\\x1b\\x73\\x40\\xf1\\x04\\xe5\\x1f\\xed\\xbb\\x53\\x36\\x05\\xb5\\xff\\x39\\xcf\\x6d\\x59\\x51\\x3f\\x12\\x85\\x6d\\xcf\\xa1\\x98\\xd7\\x93\\xb0\\xfc\\x87\\x5c\\xde\\xa0\\x74\\x1f\\x14\\x55\\x74\\x6d\\x8a\\x19\\xc3\\xe9\\xd9\\x28\\xf0\\x02\\x1b\\x01\\xc2\\x51\\x31\\x81\\x1e\\x48\\xc3\\xc7\\x5c\\x6f\\x41\\x42\\x2a\\x88\\x10\\xc6\\xc8\\x1f\\x35\\xb4\\x54\\xee\\xae\\x8c\\xd1\\x7c\\xf3\\xf2\\xe6\\xf0\\xbc\\xd9\\xf2\\x90\\x98\\x4f\\x49\\x65\\x78\\x62\\x3a\\xb8\\xe2\\x73\\x8d\\x2d\\x10\\x84\\x0e\\xb9\\x1d\\x10\\x1c\\xb4\\xa2\\x37\\x22\\xb7\\x2e\\x3d\\xd1\\x85\\x44\\x0c\\x3b\\x9f\\x44\\xd4\\x6a\\x39\\x3a\\x34\\xc1\\x87\\xa2\\x0d\\x61\\x0b\\xb6\\x98\\xc5\\x05\\x31\\x74\\x1e\\xfe\\x96\\x32\\x35\\x12\\x32\\x98\\x00\\x77\\x2a\\x40\\x80\\x65\\xa7\\xef\\x8e\\x4e\\x41\\x05\\xeb\\x1f\\x5b\\xf6\\xd3\\xfd\\x6b\\x21\\x7f\\xd8\\x36\\xd8\\x9f\\x53\\xb9\\x6f\\x45\"},\n{{0x33,0x55,0x6c,0x60,0xde,0x2f,0x2c,0x9a,0x93,0x03,0xb9,0x9a,0xdd,0x37,0x85,0x92,0x06,0x05,0x05,0xf8,0xe4,0x98,0x61,0x08,0x5a,0x4b,0x15,0xf0,0x72,0xa7,0xef,0x28,},{0x23,0x1e,0xc8,0xcd,0x84,0x58,0x59,0xf6,0x99,0x61,0x27,0x51,0x19,0xdb,0xe4,0xf7,0x15,0xe5,0xec,0x5a,0xa9,0x8b,0xb8,0x74,0x16,0x75,0xb3,0xc2,0xd0,0xc8,0x9f,0xee,},{0xe0,0x6a,0x7a,0x41,0x44,0x57,0xbb,0xbe,0xf2,0xba,0xc3,0x77,0x5c,0xca,0xd0,0x87,0xda,0xcb,0x1f,0xa4,0xbf,0x93,0x88,0x94,0xe8,0xc9,0x29,0x11,0x8e,0x09,0xe6,0x78,0xdd,0x19,0x93,0x8b,0xc8,0x8f,0x43,0xed,0x0f,0x7d,0x31,0xcc,0x6a,0x0e,0x60,0x2c,0x4e,0x4d,0x1f,0xee,0x33,0xd4,0x1e,0x74,0xa1,0x19,0xfa,0x2d,0x1e,0x4e,0x34,0x0f,},\"\\x96\\xaf\\x54\\x0e\\xa2\\xb1\\x92\\x3f\\x5f\\xd0\\xaa\\xd3\\x21\\xac\\x03\\x20\\x70\\xc2\\xd6\\x5b\\xa1\\x3d\\x16\\x4e\\x75\\xc3\\x46\\x97\\x58\\xfc\\xf3\\x1b\\xb3\\x16\\x55\\xcb\\x3a\\x72\\x1f\\x9c\\xb3\\x4b\\xe2\\xc9\\x0c\\x77\\xeb\\x65\\xbe\\x37\\xf6\\x06\\xd3\\x2a\\x91\\x7a\\x4c\\xb9\\xa7\\x09\\xac\\x07\\x05\\x22\\x99\\x30\\xef\\x6e\\xb6\\xfd\\xb0\\xfa\\x3c\\x0f\\xd3\\xa9\\x0c\\xe1\\x71\\x67\\x4e\\xe3\\xed\\x06\\x35\\x4b\\xaf\\xc3\\xc7\\x07\\x54\\x67\\xa5\\x74\\x45\\xb8\\x03\\x85\\x64\\x04\\x47\\x90\\x2b\\xe3\\x92\\x62\\x89\\x4b\\x1f\\x64\\xfe\\xa5\\x82\\x87\\xdc\\x32\\x2d\\x19\\x87\\x59\\x72\\xa7\\xc8\\xbe\\x91\\xd3\\x1f\\x02\\x1c\\x70\\xeb\\x68\\x2f\\xdf\\x11\\xa1\\x0f\\x8f\\x58\\x2a\\x12\\x6e\\x06\\x47\\x94\\x83\\x8c\\x69\\xfd\\xf6\\x4f\\x5b\\x6e\\x8b\\xa5\\x9d\\x48\\xb4\\x38\\x4f\\x8e\\x9f\\xb5\\xc0\\x87\\xcc\\x77\\x38\\x29\\x5c\\xd3\\x23\\x44\\xba\\x3b\\x69\\x7e\\xe6\\xb6\\xa8\\xb7\\x8e\\xe7\\xa9\\x57\\x5c\\x97\\x97\\x2a\\x4d\\x1b\\xb1\\x84\\x86\\xf9\\x03\\x7a\\x0f\\x3c\\x6f\\x47\\x1a\\x90\\xf8\\x64\\x98\\xdb\\xc0\\xdf\\x52\\x32\\xc0\\x7e\\x8c\\x01\\xb6\\x90\\xbe\\xe7\\x53\\x02\\x99\\x2a\\x7a\\x36\\xfb\\x44\\x37\\xc2\\x5a\\x8b\\xf5\\xe3\\x4c\\xf7\\xd5\\xb5\\x55\\x72\\xc7\\x00\\xa0\\x79\\x84\\x8d\\x38\\x13\\x64\\xf9\\x94\\x6a\\x91\\xeb\\x16\\x03\\xff\\x3d\\xe5\\xeb\\xdd\\x52\\x3b\\xd9\\x25\\x64\\x81\\x8e\\x23\\x7a\\x53\\xe8\\xf5\\x22\\xde\\xaa\\x2c\\x29\\xb8\\x97\\xe9\\x61\\x58\\x6e\\x10\\x0e\\xd0\\xfc\\x0a\\xd7\\x0d\\x16\\x09\\x34\\xe6\\x94\\x02\\x7e\\x5c\\x95\\x79\\x20\\xbc\\x05\\x46\\xe9\\x01\\xbe\\x39\\xa8\\x45\\x35\\x59\\x7e\\x1f\\x28\\x0c\\x22\\x22\\x67\\xab\\xe9\\x7f\\x41\\x20\\x5d\\x81\\x71\\x82\\x0d\\xd2\\xfa\\xaf\\xc0\\x69\\x94\\x19\\x32\\x1a\\x91\\x60\\xf6\\x9b\\x99\\xfd\\x41\\x18\\x09\\x45\\xb6\\x2d\\x2d\\xd1\\x05\\xcc\\x7b\\xbe\\x82\\x1d\\x28\\x60\\x5e\\x09\\x8e\\xdf\\xa8\\xb2\\x30\\x9a\\xeb\\x05\\x34\\xe7\\x56\\x37\\x7f\\x59\\x93\\x7c\\x67\\x46\\x3f\\xd8\\x7c\\x8b\\x92\\xab\\x58\\x11\\x9c\\xf4\\xce\\x6c\\x66\\x5a\\xf5\\x72\\xfb\\xae\\x1d\\xe4\\xa2\\xcc\\x71\"},\n{{0x7a,0x5c,0x74,0x31,0x4e,0x11,0x83,0x33,0x4a,0x4b,0x62,0x26,0xb9,0xa8,0x2d,0x70,0xfc,0x2a,0x12,0x4e,0x3f,0x87,0xdb,0x6a,0x22,0x83,0xee,0x05,0xb6,0x8e,0x34,0xe0,},{0xbe,0xae,0x7d,0x3d,0xd9,0x7c,0x67,0xf6,0x27,0x3b,0xfa,0xa0,0x66,0x13,0x1f,0xed,0x8a,0xce,0x7f,0x53,0x5f,0xe6,0x46,0x4e,0x65,0x79,0x1c,0x7e,0x53,0x98,0x57,0x6c,},{0xc2,0xab,0x1f,0x6f,0x51,0x14,0xa8,0x4f,0x21,0x85,0x02,0x58,0x2c,0x56,0x7b,0x37,0xa8,0xbd,0xbc,0xdf,0x63,0x40,0xfa,0x46,0x22,0x87,0x3b,0xe8,0x91,0x06,0xf0,0xa9,0x0b,0x48,0x29,0x50,0x5f,0x72,0x12,0x9d,0xf0,0xab,0x3d,0x85,0x13,0x26,0x87,0x74,0xa3,0x4d,0xf3,0xad,0x21,0xce,0x25,0x4b,0x46,0x44,0x88,0xad,0xdd,0x6c,0x9b,0x04,},\"\\x98\\xba\\xc6\\x72\\x47\\x55\\x91\\x29\\x92\\xad\\xc2\\xa4\\x8b\\x54\\x42\\x37\\x6f\\x2d\\x92\\x79\\x97\\xa0\\x40\\xfb\\x98\\xef\\xe5\\x44\\xeb\\x0c\\x8e\\x18\\x66\\xb9\\x61\\x6e\\x29\\x8d\\x33\\x60\\x31\\x6e\\xd9\\x76\\xbd\\x94\\x6a\\x41\\x1f\\xdd\\x3a\\x6b\\x62\\x5c\\x0c\\x1a\\x37\\xaf\\x0f\\x41\\xcf\\x65\\x69\\xa7\\x88\\x4a\\xb8\\x46\\x74\\x91\\xa9\\x87\\xdf\\x3e\\xa7\\xa0\\xb7\\xeb\\xc4\\x69\\x25\\x69\\xa3\\x4c\\xe3\\xa2\\xea\\x35\\x03\\x49\\x5b\\x2c\\x02\\xd4\\x9d\\x7d\\x7d\\xb5\\x79\\xd1\\x3a\\x82\\xcf\\x0c\\xf7\\xa9\\x54\\x7a\\x6e\\xae\\xbe\\x68\\xe7\\x26\\x7d\\x45\\xa6\\x0b\\x8d\\x47\\x72\\x45\\x52\\x28\\xcc\\xa4\\x03\\x6e\\x28\\x2e\\x1a\\x12\\x16\\xf3\\x4c\\xef\\x7e\\xa6\\x8f\\x93\\x82\\x70\\xbd\\xb0\\x42\\x93\\xc8\\x85\\xd0\\x05\\xf9\\xf7\\xe6\\x38\\xa8\\xb4\\xea\\xd2\\x62\\x6c\\x09\\x45\\x17\\x4f\\xf2\\xa3\\xe2\\xd6\\xe1\\x5a\\x4c\\x03\\x38\\xc0\\x9e\\x12\\x60\\xf0\\x92\\x8c\\xa9\\xd3\\x49\\x98\\x24\\xf3\\xfe\\xdc\\x47\\x85\\xda\\x49\\xc5\\xc3\\x4a\\x56\\x85\\x5e\\x24\\x1f\\xac\\xc6\\x34\\x7a\\x39\\x9d\\xdc\\xac\\x43\\x99\\xa8\\xb1\\x58\\x19\\x8c\\x15\\x14\\x61\\xa3\\xb1\\x89\\xe5\\x8e\\xc1\\xf7\\xef\\xcf\\x2a\\xb2\\x03\\x1f\\xb1\\x7b\\x6f\\x03\\x5b\\xa1\\xf0\\x92\\xe9\\xee\\xe2\\xe9\\x2c\\x2d\\x6c\\xc2\\x03\\x22\\x87\\xf8\\x54\\xb4\\x1e\\x70\\xfc\\x61\\xc8\\xd1\\x1a\\x2e\\x4f\\x07\\x08\\xf0\\x2e\\xeb\\xd0\\x2e\\x8c\\x7e\\x8c\\x7b\\x38\\xa5\\x7b\\xfa\\x1a\\x74\\x5f\\x3a\\x86\\xc2\\x39\\x09\\xf6\\xf8\\x9a\\xb1\\x6c\\xe7\\xe1\\x81\\x3c\\x1d\\x20\\x14\\x7f\\x31\\xb4\\xcf\\x2a\\xd0\\xb6\\x06\\xfb\\x17\\xe5\\xac\\x1a\\xb5\\x1e\\xf4\\xa7\\xd8\\x09\\x3c\\xee\\x9a\\x65\\x5f\\x47\\x1d\\xc5\\xb1\\x46\\xbd\\x1b\\x93\\xe5\\x40\\xa3\\xd3\\xd3\\xe2\\xde\\x81\\x05\\x91\\x1c\\x10\\xd6\\xab\\x5f\\xf7\\x9c\\x2d\\x06\\x02\\x7f\\x7a\\x54\\x56\\x1f\\x20\\x71\\x41\\x4b\\xd3\\x30\\xa8\\x78\\x54\\x42\\x25\\x1c\\x81\\x0e\\x23\\x2f\\x83\\xc3\\x67\\xf0\\xbe\\x77\\x99\\xa9\\x3f\\x52\\x38\\xf7\\xf1\\x7b\\x5b\\xe8\\x29\\xfd\\x89\\x12\\x3c\\x04\\x83\\x3a\\xf8\\xb7\\x7e\\x5a\\x43\\x63\\x04\\x7c\\xec\\xa7\"},\n{{0xda,0x80,0x06,0xad,0xc4,0x92,0xca,0x5d,0xc8,0x6c,0x29,0x59,0x43,0x7a,0x75,0xde,0xb6,0x12,0x0f,0xf7,0x87,0xd2,0xec,0xb9,0xc2,0x0c,0x30,0xb5,0x2c,0x26,0xbc,0x41,},{0xff,0x11,0x3b,0xf0,0xaa,0x58,0xd5,0x46,0xf2,0x38,0x5d,0x44,0x4e,0xcb,0x78,0x88,0xf8,0xca,0xba,0x43,0xa1,0x74,0xa8,0x9f,0xd6,0x06,0x5f,0x2b,0x7d,0xc1,0x7b,0xf0,},{0x1f,0x53,0x75,0xdc,0xb3,0xad,0x2b,0xaa,0xff,0x95,0x6d,0x85,0x54,0xec,0xb4,0x24,0x17,0x6b,0xe9,0xa6,0xeb,0x9e,0xa5,0x4e,0x81,0x4e,0x0a,0x73,0xdf,0x2a,0x5d,0x84,0x8a,0xda,0x26,0xba,0x8e,0x18,0x05,0xcd,0x51,0xc5,0xe1,0x69,0x50,0xc1,0xff,0x7d,0x4d,0x27,0x64,0xda,0xa6,0xf4,0xc7,0x50,0x2f,0xb8,0x65,0xcb,0xe5,0x5a,0xaf,0x0b,},\"\\x3e\\xb4\\x32\\x4d\\xbc\\x01\\x49\\xd2\\xe7\\xd6\\xdf\\x63\\x2b\\xb0\\xcb\\xe9\\xa9\\xf6\\xdf\\xa8\\x3e\\x22\\x7f\\xc0\\x7b\\xde\\x1b\\x57\\x7b\\x36\\x11\\xfb\\x92\\x1c\\x9f\\x83\\x13\\xf0\\x68\\xe6\\x29\\x5d\\x49\\x13\\xa8\\x19\\x6b\\xe5\\x30\\xf6\\xa0\\x1f\\x57\\xc0\\x9c\\x02\\x84\\x91\\x44\\x4b\\x78\\x47\\x20\\xe9\\x09\\xea\\x1f\\xb6\\x9c\\x1c\\x1d\\xd6\\x30\\x44\\x00\\x32\\x7b\\x77\\x31\\xb3\\x3c\\xc4\\x6d\\xeb\\x04\\x6c\\xda\\xb6\\xad\\x1b\\x53\\xf1\\x74\\x9a\\x0c\\x65\\xcb\\x9a\\x7e\\x37\\x6f\\xfa\\x02\\x23\\x0f\\x53\\x65\\x84\\xae\\xa2\\x43\\xc6\\x39\\x10\\x3a\\xdb\\xba\\x76\\x43\\x21\\x64\\x9d\\x7e\\x01\\x26\\xf8\\x2e\\x0b\\x4f\\xd9\\xdc\\xb8\\x6c\\x73\\x1c\\xbc\\xc5\\x17\\xf2\\x01\\x68\\x41\\xe9\\x16\\xbc\\xd5\\xfd\\xe8\\x71\\xdc\\x09\\x8c\\xd9\\x13\\xdc\\x54\\x62\\x84\\xd1\\xb2\\x16\\x5c\\x63\\xe8\\x8f\\x32\\xa2\\x78\\x9a\\x50\\x08\\x56\\x37\\x1b\\x50\\xd2\\x2f\\xb8\\xc8\\x7d\\x1a\\x3c\\xae\\xdc\\xdf\\xd0\\x1e\\xe5\\xf8\\x70\\xa5\\x3c\\x28\\x41\\x81\\xd6\\x32\\xec\\x66\\xd4\\x8b\\x6b\\xdd\\x56\\x46\\xac\\x39\\xc9\\xe7\\x53\\x38\\xa5\\x20\\x21\\x20\\x62\\xbc\\x34\\x66\\xef\\x5c\\x58\\x76\\x55\\x70\\xb9\\x05\\xf6\\x3a\\x93\\xd0\\x7f\\x8f\\x1b\\xaa\\xc3\\x52\\x6b\\x01\\x6d\\xa7\\x99\\xf3\\xe9\\xe0\\x3a\\x4f\\x7f\\x81\\x35\\x5e\\x0f\\x7a\\x76\\xf3\\x0a\\x42\\xb8\\x07\\x32\\x20\\x51\\xb7\\x1c\\x62\\x6a\\x7a\\x29\\x6d\\x75\\xb9\\xd9\\xd1\\xa2\\x3b\\xcb\\x13\\xc9\\xef\\x48\\xa9\\x12\\xdc\\x05\\x73\\x25\\xd3\\xbc\\xfb\\x3f\\x9f\\xad\\xaf\\x0c\\x24\\x9b\\x10\\x2a\\xeb\\x85\\x4a\\xa3\\x63\\x1e\\x34\\xf6\\x9a\\xd9\\x0c\\x2a\\xb2\\xed\\x33\\xba\\xcc\\x40\\xb9\\xed\\x10\\x37\\xfa\\xe6\\x7c\\xdf\\x79\\x9d\\x5a\\x9b\\x43\\x78\\x59\\x61\\x12\\x7d\\x62\\xf8\\xe0\\xbc\\x15\\x89\\xfd\\x1a\\x06\\xfc\\xa2\\xae\\xa7\\xcf\\xc0\\x12\\xcb\\xf7\\xb5\\xb2\\x07\\xdd\\xc4\\xe6\\x77\\xd8\\xae\\x4a\\xec\\x10\\x00\\x45\\xce\\x36\\xc0\\x0b\\x74\\xd1\\xd2\\x82\\x50\\x79\\x12\\x36\\xdc\\x5d\\xcc\\x1e\\xd3\\x13\\xc8\\xc2\\x46\\x17\\x26\\x66\\xf7\\x52\\x17\\x43\\x7c\\x60\\x34\\xac\\xd6\\x41\\x98\\xcd\\x96\\xdf\\x2a\"},\n{{0xa2,0x84,0xe2,0x6b,0x97,0xe5,0x38,0x83,0x9c,0x80,0x8d,0x45,0xbd,0xe6,0xf0,0x12,0xa3,0x54,0x45,0x4a,0xef,0x81,0xca,0xa8,0xc5,0x59,0x14,0x62,0x4f,0x2b,0x7d,0x66,},{0x5a,0xe4,0x6e,0x34,0x69,0x5e,0xfa,0xf4,0x63,0xa4,0x20,0x8f,0xc4,0xe3,0x5b,0x81,0xf2,0xc6,0x35,0x93,0x23,0x8a,0x56,0xf2,0x44,0x4b,0x85,0x0f,0x05,0x8c,0x3c,0x5c,},{0xbf,0x11,0x0e,0x2e,0x9c,0xec,0xbc,0x31,0xfa,0x3e,0x0c,0x24,0x38,0xcd,0x1f,0x43,0x21,0xf9,0x2c,0xd2,0x87,0x00,0x5a,0x48,0x52,0x8a,0xdd,0xf7,0x6c,0xad,0x8d,0x88,0xbb,0x22,0x71,0x9e,0xf9,0x1b,0x13,0x95,0x62,0xa1,0x51,0x18,0x38,0x68,0x26,0x74,0xfa,0xa9,0xff,0x7e,0x7a,0xde,0x6c,0x9d,0x57,0x3f,0x84,0x50,0x36,0xd1,0x89,0x05,},\"\\x9e\\xbf\\xe9\\x10\\xb5\\x0a\\x5c\\xb7\\x19\\xd9\\x5b\\x96\\x1e\\x59\\x05\\xf0\\x0e\\xc7\\x94\\x3b\\x55\\x46\\x8a\\xb5\\x95\\x66\\x92\\x01\\x76\\x45\\xb3\\x66\\x07\\x1f\\x8f\\xbb\\x77\\xeb\\x49\\xec\\x73\\xea\\x7d\\x64\\x51\\x14\\x05\\xb9\\x0d\\xe2\\x2d\\xb9\\x8c\\x3e\\xae\\x39\\xc4\\x03\\x9c\\x7a\\x13\\x34\\x30\\xe8\\x01\\x0b\\xdd\\x39\\xa0\\x0f\\xd1\\xa5\\x28\\xb1\\x13\\xda\\xe1\\x49\\xcf\\xad\\x3a\\xe3\\x40\\xda\\x27\\xdc\\xc5\\x07\\x78\\x2e\\xcd\\x89\\x29\\x23\\x75\\x17\\xaf\\xe7\\x46\\x3e\\xca\\x24\\x73\\xc7\\xac\\xf6\\xf7\\xaa\\x04\\xef\\xc9\\xf2\\x66\\xae\\x7b\\x6d\\x63\\xbb\\x8c\\xc2\\xa4\\x38\\xb3\\x44\\x82\\x7f\\x07\\x13\\xd1\\xf1\\x73\\x6f\\x0c\\xbb\\x65\\xb9\\x93\\x53\\xf2\\x03\\x55\\xfa\\x02\\x30\\xd4\\xfa\\x70\\x73\\x28\\xa8\\x66\\x26\\x54\\xe8\\x3a\\xd0\\x53\\x0a\\x10\\xf9\\xa6\\x9e\\x17\\xc0\\x99\\xe1\\xe2\\xb5\\xdb\\x18\\xe5\\xf6\\xf1\\xdc\\xed\\xa5\\x88\\x3e\\x8c\\xab\\x79\\x70\\x1a\\x5e\\x90\\x89\\x56\\x2e\\xd1\\x53\\xad\\x08\\xc6\\x74\\xf0\\x97\\xc2\\x8e\\x4d\\x16\\x63\\x3e\\x09\\x29\\x69\\xa8\\xf0\\xbd\\xac\\x54\\x52\\x7c\\x0e\\xe0\\x3b\\xc2\\x00\\xe5\\xbe\\x61\\x2e\\x3d\\x1e\\xab\\xd8\\x70\\x91\\x10\\x1b\\x49\\x62\\xaf\\xa0\\x7b\\x31\\x08\\x06\\x99\\x2f\\x37\\x30\\x76\\xd7\\x6a\\x58\\x18\\x51\\x18\\x13\\x7c\\x9d\\x26\\xee\\x2c\\xd4\\xc6\\x18\\xc1\\x82\\x83\\xdd\\x19\\xf0\\xe7\\xa0\\x89\\xee\\x37\\x30\\x5b\\x6b\\x95\\x18\\xa7\\x8d\\x80\\x98\\x43\\x6e\\xf6\\x2b\\xe7\\xd6\\x99\\x80\\x8a\\xce\\xcf\\x67\\x93\\x9d\\x61\\xb3\\xe0\\x29\\x37\\xcd\\x8c\\x5f\\x1e\\x74\\x6d\\x42\\x74\\x33\\x4b\\xc9\\xc3\\x7f\\xdc\\xba\\x23\\x4c\\x16\\x6f\\xd7\\x12\\x89\\x3f\\x3a\\x04\\x08\\x32\\xec\\x54\\x25\\xe5\\x7d\\x80\\xf1\\x1e\\xf9\\xca\\x5f\\xbc\\xd6\\xc1\\x47\\xfb\\xbf\\x5e\\x2f\\xae\\x74\\x6e\\x0d\\xdb\\x60\\x58\\x67\\xe3\\xbd\\x05\\x04\\x83\\xc3\\xcd\\x13\\x29\\xab\\xe5\\x7a\\x60\\xbf\\x88\\x89\\x8d\\xc7\\xe8\\x0e\\xde\\x0f\\x45\\x17\\xde\\x8f\\xc8\\x07\\xe8\\x88\\xb6\\x21\\xa0\\x0f\\x66\\x30\\x84\\xff\\x94\\xb9\\x99\\x96\\x62\\x8f\\x3b\\x11\\x69\\x0a\\x60\\xf0\\x91\\x8c\\xb5\\xc9\\xa7\\xef\"},\n{{0xcc,0x97,0xa9,0x63,0x01,0xce,0xed,0x0f,0x92,0x27,0x31,0xb6,0x85,0xba,0xd8,0xad,0x4f,0x06,0x20,0x7b,0xe3,0x40,0xf5,0xa4,0x4f,0xd1,0x87,0xf2,0x99,0x03,0xec,0x20,},{0xeb,0x56,0x3a,0x7b,0xce,0x12,0xdb,0x97,0xf1,0x89,0x1d,0x0f,0x61,0x0b,0xeb,0xd5,0x51,0x01,0xa3,0x12,0x5c,0xa8,0xdb,0xb5,0x0b,0x25,0xa6,0xb5,0x05,0x0d,0x37,0x84,},{0xff,0xbd,0xd3,0x24,0x41,0x81,0xcd,0xf6,0x03,0x4f,0x4a,0x45,0x0f,0xdd,0x95,0xde,0xe4,0x97,0x1a,0x93,0x3f,0x8b,0xe0,0x22,0xbb,0x0a,0x41,0x06,0xae,0xf3,0x9a,0xf3,0x05,0x5b,0x72,0x18,0x81,0xc9,0xb5,0x4d,0x1e,0x99,0xb9,0x40,0x90,0x96,0xfb,0xe6,0xdc,0x2c,0x99,0x66,0xe3,0x67,0x99,0x64,0xbd,0x7e,0xf4,0xc8,0x08,0xca,0xbf,0x01,},\"\\xb9\\xea\\x3b\\x3d\\xf7\\x18\\x7e\\xa4\\x15\\xa3\\xc3\\x35\\xe0\\x83\\x4e\\x10\\xf4\\x40\\x91\\x5b\\x2a\\xd4\\x1c\\x71\\xf2\\x55\\xd6\\x95\\x0a\\x4e\\x91\\x20\\xe4\\xd4\\x94\\xfd\\x9e\\x67\\x2c\\xe5\\x32\\x06\\xfd\\xc4\\x17\\xd8\\x65\\x89\\x7b\\x47\\xac\\x10\\x54\\xe1\\xca\\x10\\x68\\x19\\x52\\x32\\xd4\\x29\\x74\\x35\\xe4\\x4e\\x12\\x24\\xe6\\x6a\\x91\\x2d\\x9d\\x7d\\x18\\x29\\x46\\xff\\x5a\\x9f\\x08\\x5b\\xb8\\xba\\x19\\xc5\\x4d\\x16\\xb5\\x86\\xa9\\xb3\\x04\\x61\\xb6\\x77\\x3b\\x93\\x95\\x03\\x11\\xe1\\x61\\x98\\x86\\xf5\\xa5\\xb3\\xf1\\x11\\xaa\\xad\\x09\\x4b\\xae\\x31\\xc4\\x8f\\x19\\x41\\x08\\x09\\x68\\xbd\\x02\\x77\\xbb\\x6f\\xa9\\x2e\\xeb\\xf3\\x24\\xb1\\x92\\xdf\\x5c\\xc9\\x69\\x51\\x6c\\x78\\xc7\\xb2\\xd1\\x21\\x59\\xb4\\xd1\\xc8\\xeb\\x03\\x16\\x0c\\x4c\\xd1\\x90\\x7f\\x62\\xed\\x4b\\x85\\x4c\\x56\\x9e\\xcc\\x48\\x1c\\x08\\xe6\\x36\\xf4\\x4e\\xd7\\xc3\\x90\\xe5\\x8b\\x59\\x37\\xd2\\x90\\x6b\\x28\\x17\\xbc\\x37\\x69\\xda\\xd9\\xda\\x1b\\x0f\\x79\\x39\\x1b\\x55\\x94\\x20\\x63\\x05\\x5d\\xa0\\xd6\\xf2\\x49\\xa3\\xe4\\x52\\xba\\xdd\\xaa\\x03\\x29\\x98\\xd7\\xf7\\x33\\x98\\xcc\\xd0\\x15\\x1b\\xfc\\x92\\xc5\\xe2\\xfd\\xfa\\x9b\\x14\\x85\\x5e\\x6b\\x0d\\x37\\x46\\xdc\\xe2\\x48\\xe2\\x19\\x67\\x29\\x87\\x25\\x2e\\xc7\\x47\\xdf\\x27\\x47\\xfd\\x3f\\xbd\\x8b\\x71\\x4c\\x88\\x2d\\x70\\x7e\\xe3\\x02\\xa9\\x04\\x95\\x0c\\x34\\x75\\x4f\\x85\\x35\\x0e\\x1a\\xa3\\xf8\\xea\\x62\\x93\\xcf\\x01\\xf7\\x17\\xce\\xfb\\x6b\\x83\\xa2\\x21\\x26\\xdf\\x5c\\x4f\\x56\\x98\\xaa\\xfd\\x06\\xa2\\x24\\x4a\\xd7\\xd0\\x1f\\x34\\x01\\x7c\\xa0\\xec\\xe6\\xf2\\x10\\x40\\x04\\x8a\\xba\\x6c\\xa4\\xae\\xb0\\x43\\x25\\xb9\\x40\\x2b\\xcd\\x43\\xab\\x13\\x0a\\x10\\x57\\x88\\xac\\x3d\\x7b\\x7d\\xa0\\x1e\\xa9\\x42\\x6d\\xd0\\xea\\x19\\x33\\xa8\\x18\\x99\\x33\\xa6\\xc0\\xc6\\xcd\\x64\\x8e\\xa3\\x16\\xa7\\x46\\x9a\\x5f\\xdc\\x6e\\x7c\\x93\\x4d\\x91\\x86\\x58\\x60\\x97\\xb5\\x5d\\xd5\\x1a\\xc4\\x87\\xbb\\x80\\xed\\x11\\xd4\\xdf\\x8d\\x33\\x62\\x6b\\xbc\\xe9\\x5e\\x4f\\x13\\xbd\\x49\\x92\\x2f\\x00\\xc9\\x20\\x22\\x3f\\x4c\\xbf\\x93\\xcb\"},\n{{0x67,0x9e,0x3e,0x34,0x77,0x3a,0xbe,0x4a,0xe2,0x5c,0xae,0x7d,0x07,0xcc,0xd0,0xeb,0x3b,0x0e,0xc0,0xa3,0x5d,0x57,0x02,0x57,0xd6,0x25,0x70,0xde,0x58,0xea,0x25,0x16,},{0x18,0xac,0xff,0xce,0x25,0x3b,0x27,0x25,0x95,0x79,0xed,0x99,0x24,0xf4,0x79,0xca,0xe3,0x12,0x16,0x7b,0xcd,0x87,0x6e,0xdb,0xa8,0x8b,0x5d,0x1d,0x73,0xc4,0x3d,0xbe,},{0x1a,0x51,0x02,0x26,0x28,0xcc,0xbb,0x88,0xea,0xe9,0xb2,0x17,0x73,0xc3,0xf8,0x30,0xb7,0xb6,0xe5,0xbc,0x36,0xc9,0x90,0x3c,0xe7,0x0f,0xbc,0xf4,0x59,0xd6,0xa1,0xed,0x8a,0x1d,0xce,0xff,0x5b,0x19,0x26,0x9e,0xbf,0x5a,0x6f,0xd3,0xd8,0x95,0x88,0x60,0xf5,0x54,0x46,0x1f,0x0e,0x9f,0xc0,0xe2,0x9a,0xf9,0xb1,0xfb,0x17,0x44,0xa8,0x0b,},\"\\xfb\\x2b\\x64\\x8e\\xbb\\x16\\x68\\x82\\x44\\xf7\\x8b\\x2e\\xe9\\xa2\\x73\\x59\\x9d\\x56\\xb6\\x19\\x89\\x00\\xd4\\x38\\xa9\\xe9\\x9c\\x19\\x14\\x25\\xc7\\x2b\\xec\\x4f\\x23\\x58\\x47\\xe1\\x8e\\x47\\xf5\\x7c\\x3c\\xb3\\x96\\x65\\x5f\\x77\\x89\\x21\\xf9\\x08\\x58\\x0e\\x8e\\x83\\xc9\\x6c\\x10\\x8b\\x20\\xdd\\x41\\x66\\x78\\x02\\x1b\\xca\\x25\\x9b\\x98\\x51\\x8f\\xab\\xb2\\xd3\\x53\\x2e\\x48\\x51\\xd9\\xd5\\x2a\\xdd\\x25\\x42\\xc0\\xcb\\x3e\\xfa\\x38\\x57\\xa1\\x7e\\x51\\x24\\x38\\xbc\\x0e\\xc4\\x76\\x2e\\x2f\\x9b\\xab\\xa4\\x29\\xc0\\x3e\\x99\\xbe\\xc4\\x03\\x8e\\x6b\\x0c\\xa4\\x2b\\xff\\x5b\\x23\\x3b\\x24\\xc3\\x33\\xb4\\xca\\xea\\xd2\\xde\\x37\\x4a\\x87\\xb2\\xab\\x5d\\x80\\xd6\\xe4\\x9e\\x44\\x56\\x32\\x9d\\x51\\xae\\x97\\x3b\\xc8\\x3d\\x78\\x62\\xf3\\xd3\\x15\\xe5\\x14\\x48\\x1b\\x12\\x85\\x4a\\x9d\\xfc\\x09\\xe7\\xd1\\x4f\\x0d\\x02\\x2c\\x0b\\xa3\\x02\\x25\\x78\\xeb\\xa8\\xf8\\x74\\xde\\xba\\x4a\\xa8\\xc8\\x33\\xf2\\xb1\\x32\\x86\\x1d\\x4d\\x51\\xe5\\x0f\\xe9\\xaa\\x4b\\x78\\x7b\\xd2\\xf0\\x51\\xaa\\xc5\\x0c\\x37\\x53\\x90\\xcb\\xbc\\xfb\\xa2\\x00\\x2b\\x80\\xad\\x00\\xcd\\xc1\\x29\\x80\\xf8\\xba\\x8b\\xcb\\x70\\x64\\xaf\\xc0\\x4d\\x5c\\x46\\x82\\xc1\\x02\\x9b\\x10\\xa6\\xd4\\x5f\\xe6\\xec\\xd7\\x04\\x24\\x5f\\xaf\\x59\\x8c\\x46\\x59\\x59\\x7c\\x5d\\x68\\xa1\\x92\\xcc\\x1c\\xd4\\xfa\\x45\\xe8\\x4b\\x54\\x9e\\x8e\\x5e\\x67\\xda\\xa8\\x79\\xae\\x5a\\x52\\x0a\\x6b\\x55\\x50\\x51\\x98\\x76\\xa5\\x62\\xac\\x49\\xc6\\xdb\\x0a\\xa7\\x6e\\xc6\\x9b\\xb6\\x4d\\xd6\\xb5\\xe1\\xa3\\xaf\\x2e\\x13\\x1e\\x72\\x2e\\x7c\\xdd\\x05\\xbe\\x34\\xb5\\xfc\\xc6\\x25\\x9a\\xa1\\x24\\xcc\\xf8\\x14\\xcf\\x5b\\x50\\x0d\\x17\\x6b\\xe2\\x8e\\xbc\\x40\\xbb\\x21\\xf0\\x3e\\x24\\xcc\\xc1\\x31\\xe0\\xf4\\x1d\\xaa\\x1c\\xa0\\x2e\\x6b\\x00\\xc9\\xc5\\x3f\\xad\\x12\\x48\\x61\\x4e\\x94\\x0d\\x4b\\x23\\x77\\x60\\xab\\x75\\x69\\xa7\\x67\\xb7\\x51\\x5d\\xd2\\xd6\\x23\\xe5\\x7a\\x28\\x41\\xb7\\xd2\\x44\\x1c\\xf4\\x30\\x49\\xe4\\x69\\x8d\\x2f\\x9c\\x9e\\xae\\x7b\\x29\\x10\\xf6\\xad\\x65\\xed\\xf9\\xcb\\x2b\\xdb\\xd9\\xb2\\x9f\\x60\\x6e\\x0d\"},\n{{0x9b,0xfa,0x60,0x92,0x3a,0x43,0xed,0x0c,0x24,0xe2,0xf1,0x2f,0x5b,0x86,0xa0,0x71,0x63,0x29,0xf9,0x3d,0x4d,0x8d,0x3e,0x06,0x23,0x80,0x02,0x89,0x32,0x78,0xc1,0x9a,},{0xfb,0x1c,0x00,0x68,0x77,0x81,0xb5,0x5b,0x89,0x3d,0x6b,0x2f,0x4f,0x49,0xcf,0x5f,0x73,0xd2,0x90,0x3c,0x31,0x6d,0x1e,0xee,0x75,0x99,0x1d,0x98,0x3a,0x18,0x68,0xc0,},{0x55,0xf2,0x02,0xef,0xb2,0xa5,0x7b,0xe8,0xb4,0xe4,0xfd,0x89,0x4d,0xcc,0x11,0xa4,0xfc,0x5f,0x82,0x76,0x61,0x8e,0xf5,0xcd,0x34,0xa4,0x49,0x5a,0xdb,0x01,0x6a,0x29,0x8e,0x64,0x80,0xa3,0x5c,0xfc,0x53,0xed,0xb2,0x5f,0xf1,0x49,0x9f,0xc5,0x32,0xa3,0x30,0x61,0xcc,0x01,0xa2,0x50,0x45,0x8a,0xa5,0xe4,0xf7,0xf1,0x6f,0x51,0x44,0x0d,},\"\\xa9\\x90\\x28\\xb0\\xf4\\xa3\\xaa\\x5e\\x79\\xab\\xef\\x6c\\x0d\\xf4\\xa7\\x83\\xef\\x47\\x0f\\x1a\\x29\\xba\\x51\\xeb\\xa0\\x0f\\x62\\x14\\xe8\\x40\\xfe\\x19\\xe5\\xb6\\xdc\\x60\\x21\\xab\\x59\\x9b\\xb2\\xee\\x36\\x99\\x57\\x60\\x15\\xd7\\x9a\\x79\\x39\\xaf\\x82\\x35\\x35\\xb6\\x30\\xe3\\x93\\x8c\\x72\\x3f\\x6e\\x0b\\x92\\x29\\xd4\\x6b\\xb3\\x37\\x9a\\xcd\\xba\\x58\\x7c\\x23\\x85\\x67\\xe3\\xd8\\x9b\\xc3\\xbd\\x35\\x19\\xb7\\x27\\xfc\\x69\\x4f\\xff\\x11\\x18\\xbf\\x22\\xc8\\xbc\\x8b\\xc8\\x2c\\x4d\\xf7\\xf5\\xad\\x38\\xde\\x05\\xfe\\x9f\\x76\\x29\\x99\\xec\\xaa\\x79\\x5f\\x3a\\xe6\\x30\\xa9\\xa3\\x16\\xd2\\x6d\\xce\\x9f\\x15\\x68\\xff\\xa3\\xf2\\x2b\\x02\\x95\\x21\\x40\\x20\\xb3\\xd3\\xf5\\x33\\x7c\\x14\\x95\\x68\\x19\\x22\\x18\\x13\\x2a\\x90\\x70\\x92\\x79\\xc0\\x1d\\x23\\xba\\xef\\xa6\\x69\\xe1\\xc4\\xe4\\x20\\x38\\x17\\x3f\\x13\\x19\\xc2\\x12\\xda\\x14\\x4f\\x1c\\x4e\\xa4\\xc5\\x2c\\x00\\x5c\\xbc\\x0b\\x5b\\xc2\\x83\\xe7\\x44\\x83\\xa0\\xdc\\xa6\\x92\\x79\\xde\\xb1\\x7a\\xe5\\xb2\\x9c\\xfa\\xfa\\x7d\\x00\\x63\\xf4\\xe1\\xbc\\x93\\x53\\x7e\\xfd\\x93\\x7e\\x58\\xa8\\xac\\xa7\\x37\\x22\\x8f\\x93\\x7f\\xf2\\xa7\\x41\\x89\\x0e\\x96\\xc5\\x72\\x5d\\xa1\\x1b\\x45\\xc4\\x13\\xa9\\xbb\\xb4\\x18\\x0a\\x41\\x99\\x87\\xbb\\xf0\\x46\\xbf\\xd3\\x46\\x29\\x5d\\x62\\xf0\\x81\\xc7\\x6d\\xaf\\x2b\\x0e\\x1e\\xb4\\xf6\\x71\\x2f\\xee\\xbe\\x6f\\x0a\\x92\\xe3\\x58\\xe7\\xdd\\xb8\\x58\\x96\\x50\\x7c\\x34\\x0a\\x01\\xf6\\x8d\\x1b\\x0f\\x08\\x57\\x78\\xb7\\xc4\\x4b\\x01\\x4a\\xa6\\x67\\x3e\\x50\\x17\\x96\\x95\\x9a\\x17\\xa6\\x88\\xdb\\x09\\x59\\x05\\x84\\x88\\xa7\\x11\\x25\\x72\\xf2\\x3c\\xf9\\xcd\\xb5\\x3b\\x5e\\xb4\\xb4\\x5f\\x59\\x53\\xba\\x0c\\x0c\\x69\\x0f\\x86\\xbd\\x75\\xe8\\x9a\\x04\\x7b\\xeb\\xaf\\x84\\x7c\\x1d\\xfc\\x34\\x5a\\x4f\\x3c\\x7d\\x3b\\xee\\xc9\\x8b\\x84\\xb0\\x21\\x90\\x03\\xe8\\x19\\xf5\\xc2\\xad\\xb4\\x5f\\x87\\x17\\x90\\x3d\\x1f\\x5b\\xd5\\xd7\\x19\\x14\\xc5\\x6f\\xca\\xbc\\x7a\\x29\\x0f\\x9c\\x41\\x69\\x9c\\x95\\x58\\x4d\\x6a\\x3a\\x16\\x34\\x0c\\xb1\\x7b\\xaa\\x1f\\xc5\\xe5\\x46\\x7a\\xf7\\xac\\x32\\x21\"},\n{{0x6e,0x3a,0xf4,0x5e,0x66,0xe2,0x28,0x90,0xc3,0xf3,0xc9,0x34,0xf5,0x23,0xa4,0xd6,0x94,0x27,0x97,0x6e,0x6e,0x52,0x62,0x5f,0x8b,0xad,0x55,0x89,0x93,0x96,0x32,0x19,},{0xe0,0x97,0x36,0x4e,0x76,0xff,0x9f,0x2e,0x1d,0x16,0x7f,0x6b,0x20,0xc1,0xbc,0x58,0x30,0x08,0x5e,0x7e,0xc9,0x93,0xc1,0x38,0xf8,0xb1,0xb2,0x17,0x56,0x37,0xe7,0x41,},{0x26,0xba,0x56,0x2e,0x8a,0x40,0x65,0x70,0x82,0x07,0xc2,0x5e,0x23,0x9b,0x78,0x0a,0xee,0x38,0x79,0x4c,0xf9,0x83,0xa3,0x7a,0xcb,0xb9,0xd5,0x57,0xa6,0x5c,0xee,0xd3,0xc0,0xda,0x47,0xd1,0x7f,0x3e,0x8b,0x8f,0x4e,0xeb,0x1b,0x65,0xa2,0xc1,0x82,0xea,0x6f,0x29,0x62,0x3b,0x63,0xbb,0x0f,0x1c,0x72,0x59,0x26,0x83,0xb1,0x26,0xb9,0x01,},\"\\x5c\\xfc\\x2f\\x4b\\x55\\x9f\\x82\\x05\\xb3\\x91\\x02\\x08\\x76\\x17\\xf4\\xd8\\x6c\\x7c\\xe6\\xcb\\x25\\x1e\\x5f\\x89\\x60\\x1d\\xfc\\x88\\xed\\x28\\xe8\\xd7\\xa6\\x70\\xec\\x00\\x87\\xd2\\xea\\x5d\\x89\\x30\\x21\\xc7\\x04\\x4d\\xa2\\x89\\x9a\\x22\\xd7\\x76\\xfe\\x90\\x17\\x0e\\x51\\xc2\\x03\\x25\\x06\\x90\\xd3\\x7a\\x29\\x45\\x55\\xe7\\x4a\\xf9\\x23\\x4c\\xbf\\x1a\\xd8\\xf2\\x2c\\xee\\x89\\x74\\x82\\x8a\\x0d\\x09\\xe9\\x55\\x4b\\x71\\xee\\x3b\\xcf\\x88\\x0a\\xb9\\x83\\x25\\xf7\\x06\\x27\\x21\\x94\\xeb\\x2e\\x80\\xc7\\x01\\xd4\\x41\\xb5\\xf8\\x66\\x85\\x61\\xb8\\x88\\x49\\xf8\\x27\\xaf\\x70\\x3a\\xb0\\x95\\x41\\x05\\xfd\\x3c\\x54\\xb3\\xf6\\xec\\x54\\x93\\x59\\x6d\\x0e\\x3b\\xc6\\x78\\x18\\x04\\x83\\x10\\xc4\\xa3\\xe0\\xc5\\x56\\xbc\\x80\\x67\\x5f\\x20\\x1f\\x9b\\xb9\\xc6\\x53\\x8a\\x41\\xd9\\x9a\\xa4\\x0c\\x88\\x6f\\xc4\\x31\\x46\\x72\\x18\\xd8\\x19\\xc2\\x3e\\x78\\x49\\x8a\\xed\\x06\\x13\\xfa\\x6f\\x97\\x3e\\x22\\x11\\xdf\\x9f\\xb8\\x7f\\x44\\x11\\x6f\\x3f\\xe4\\xc2\\x6d\\x6c\\xb2\\xfa\\x33\\x4c\\x87\\xf7\\x8c\\x08\\xca\\x8c\\x9b\\x90\\x41\\xd8\\x3a\\x12\\x30\\x67\\x7e\\x0a\\xf7\\x88\\x59\\x8a\\x42\\xe4\\x4c\\xfd\\xf6\\x96\\x4a\\x4e\\xe8\\x0e\\x38\\x40\\x2b\\xa6\\x7c\\x73\\xa5\\x81\\xe5\\x52\\xba\\xa2\\x28\\x24\\x25\\xcb\\x2c\\xa1\\x7c\\xa9\\x2e\\xdf\\xbf\\x98\\x29\\x91\\x02\\xfb\\xa7\\x61\\xb9\\xb7\\x1a\\x54\\x52\\x14\\x1b\\xb9\\xc1\\x8d\\xd9\\x5f\\xeb\\xc2\\xa7\\x82\\xde\\x9c\\xee\\xc0\\x8b\\xd2\\xee\\x3f\\x7f\\x0c\\x1b\\xd8\\x94\\x6d\\xba\\x99\\xcf\\x9e\\xa0\\x86\\xab\\xaf\\xd3\\x7c\\x9c\\xa6\\x02\\x13\\xf0\\xde\\x17\\xc6\\x1f\\xf9\\xc3\\x91\\xc9\\x81\\x8e\\xd5\\xcd\\x85\\x71\\x77\\x8b\\x7d\\xcc\\x13\\x22\\x49\\x62\\x38\\x6f\\xb8\\xca\\x14\\xf8\\x61\\xe9\\x9f\\x3b\\x18\\xed\\xac\\x8a\\x5f\\x13\\x0f\\x7b\\xfc\\xd4\\x5d\\x04\\x5d\\x0f\\xf3\\x4c\\x81\\x57\\x2a\\x51\\x23\\x63\\xd6\\x53\\x0f\\x93\\x81\\x3e\\x5f\\xb1\\x0e\\x9c\\xb8\\x33\\x8a\\x7f\\x93\\x80\\x04\\x91\\x00\\x6f\\x44\\x63\\xe8\\x9f\\x0e\\xd4\\x53\\x0e\\x5f\\x12\\xdf\\x67\\x4f\\x59\\x89\\x04\\x78\\x0a\\xd0\\x81\\x2b\\x1e\\x35\\x21\\xfc\\xd0\\xf8\\x3e\"},\n{{0x5f,0x1f,0x27,0x18,0x44,0xd9,0xed,0x5a,0x6a,0x6f,0x20,0x9a,0x21,0x40,0x8d,0xae,0xa4,0x70,0xf6,0xfd,0x53,0xba,0x64,0x79,0xd7,0x40,0x71,0x05,0xb7,0xde,0x4d,0x65,},{0x60,0x85,0xd7,0xfb,0x5a,0x9b,0x2e,0xd8,0x06,0xc1,0xfd,0x30,0xa2,0xaf,0xde,0x76,0x09,0x61,0xf7,0xa3,0x6b,0x48,0xf4,0x87,0x52,0x46,0xe6,0x15,0xa2,0xbd,0x99,0x28,},{0x31,0x9b,0xb4,0xde,0xb2,0x17,0x81,0x12,0x24,0x1b,0x3f,0xb8,0xf4,0x6e,0x10,0x5c,0x3b,0x8e,0x4e,0xf7,0x21,0xeb,0x20,0x0d,0x76,0x2e,0xf3,0x63,0xe2,0x71,0x6f,0x2a,0x89,0xf8,0x0b,0x5b,0x9e,0x89,0x97,0x08,0x90,0xa0,0x98,0x92,0xad,0x6a,0x58,0x80,0x8b,0x47,0x7e,0x94,0x3b,0x3c,0xfa,0x77,0x77,0x4a,0x36,0x45,0xbc,0x74,0x5f,0x03,},\"\\xee\\xd6\\xb4\\x47\\x5d\\xc2\\x63\\xbd\\x22\\x07\\xfe\\x9d\\x41\\xd4\\x82\\x82\\xb7\\x13\\xf6\\x80\\xf2\\xe0\\x37\\x38\\x4f\\x18\\xb4\\xbf\\x22\\x43\\x47\\xf5\\xe4\\xc4\\xb0\\x60\\xb8\\x08\\xd4\\x12\\xea\\xab\\xcf\\x73\\x3d\\xc3\\x9a\\x40\\xc6\\xbd\\xa0\\x50\\x5c\\xe7\\x1f\\xa8\\x23\\xbd\\x1b\\x17\\x94\\x84\\x76\\x78\\xdc\\x03\\x4e\\x79\\x99\\xc1\\x63\\x69\\x34\\x0b\\xc6\\x0c\\x64\\xd0\\x9b\\xb9\\x18\\x7b\\x2e\\x32\\x60\\x55\\xa0\\x53\\xf8\\xe5\\x05\\xea\\x41\\x96\\x86\\x14\\x71\\x62\\x2d\\xb0\\xe4\\x6f\\x0f\\x89\\x54\\xd8\\xa1\\xf0\\x73\\x32\\xda\\x4d\\x8a\\xc5\\x57\\x12\\x62\\x60\\x09\\x91\\x2f\\x8a\\x15\\xa9\\xcd\\x63\\xa7\\x4a\\x03\\xc9\\x2f\\x24\\x6c\\xb6\\x3c\\xc7\\x3f\\x92\\xe5\\x1d\\xad\\x1b\\xc9\\x71\\x5b\\x1e\\xd3\\xfe\\x5f\\x2e\\x1b\\x29\\x59\\xb9\\xb7\\x1e\\x0e\\x37\\x36\\x0e\\xb2\\x95\\x36\\xcf\\x79\\x71\\x47\\xfa\\xb1\\x08\\x64\\xd6\\x14\\x6c\\x36\\xb8\\x23\\x35\\xa0\\xce\\x93\\x14\\x08\\x47\\x9c\\x7e\\xde\\x48\\x4f\\xf7\\x3e\\x2d\\xbf\\xff\\xc6\\xc9\\x22\\x7e\\x16\\xd7\\xa2\\x3f\\x4d\\x90\\xf1\\x55\\x84\\x51\\x4c\\x39\\x59\\x4e\\x17\\xbf\\xbb\\x29\\x5d\\xe9\\xd6\\x2a\\xda\\xdb\\x58\\x9d\\xbb\\xe0\\xb0\\x6d\\xc8\\xda\\xc5\\xb3\\xbf\\x51\\x7b\\x24\\xc1\\x83\\x7b\\x39\\x47\\x2a\\x6d\\xd3\\x89\\x31\\xff\\xbb\\xff\\x5b\\x76\\x36\\x38\\x80\\x5b\\x4e\\x22\\x32\\x1f\\x7a\\xfe\\x92\\xcd\\xf5\\x02\\xfb\\x63\\xd1\\x09\\xdd\\xcd\\x9e\\x40\\x51\\xad\\x6f\\x45\\x59\\x85\\x32\\xbe\\x17\\x95\\x23\\x71\\x08\\x51\\xd3\\x93\\x1e\\x88\\x7d\\x02\\xc3\\x45\\xc7\\x9c\\x48\\x9f\\xc1\\x06\\xa4\\xae\\x16\\x2f\\x7d\\xf7\\x1a\\xb9\\x0b\\x75\\x1d\\xa7\\x03\\x8a\\x6d\\xf7\\x61\\x6c\\xfc\\x11\\x88\\x7e\\x21\\x06\\x8f\\xb9\\xe3\\x3b\\xe5\\x66\\x40\\x2b\\xe5\\x04\\xf3\\xfc\\x27\\x42\\xb8\\x81\\x50\\x9b\\xd4\\xfe\\x6a\\x0f\\xc7\\x22\\x64\\x98\\x83\\xf8\\xcb\\x65\\x55\\x98\\xa1\\x5a\\x1d\\x4c\\x22\\x9d\\xd8\\x6b\\x5c\\xae\\xb7\\x11\\xa0\\x28\\xde\\xfd\\x43\\x11\\x54\\xbb\\xa4\\x6b\\x48\\x17\\x2a\\x4d\\x8c\\xbd\\x45\\xbc\\x90\\xaa\\xf8\\x74\\xb6\\x08\\x5f\\xa2\\x84\\xf5\\xfe\\xd6\\x55\\xad\\x6f\\xa1\\x7d\\x67\\xb3\\xb9\\xa7\\x96\\xfa\\x3e\"},\n{{0x04,0x8a,0xc9,0xec,0x3e,0xcb,0x30,0xa3,0xb1,0xbf,0xda,0x9b,0x3b,0x79,0xa4,0x8c,0x07,0x93,0xb4,0x90,0x87,0x9e,0x3c,0x8a,0x5e,0x23,0xee,0x2b,0xab,0xcd,0x9b,0x7c,},{0x94,0x6c,0x18,0x6f,0xea,0xfc,0x35,0x80,0xa5,0x8d,0xdd,0x52,0x6f,0xf2,0x29,0xc0,0x47,0x20,0x25,0x0f,0x4c,0xf6,0xbd,0xe0,0x27,0x1e,0xef,0x9b,0x12,0xb1,0xc3,0xf3,},{0x2e,0xcf,0x5b,0x8a,0x59,0xa8,0xe2,0x7d,0x25,0x89,0x0a,0x2a,0xa3,0x2f,0x4a,0x06,0x73,0x27,0x5d,0x53,0x9b,0x17,0x4a,0xfa,0x7b,0x2c,0xeb,0xf2,0xe7,0x62,0x80,0xdf,0xfc,0x33,0x8e,0xde,0x85,0xac,0x8f,0x61,0x40,0x39,0x56,0x0e,0x28,0x06,0xd9,0xe1,0xe3,0xcf,0x9c,0xce,0x2c,0xeb,0x78,0x74,0xff,0xe1,0xa7,0xe8,0x0c,0xde,0xf4,0x0b,},\"\\xd6\\x8b\\xe8\\xef\\x7b\\x4c\\x7a\\x42\\x89\\xf2\\xb1\\x8b\\x16\\xad\\xe9\\x7f\\x4e\\x4f\\xa1\\x64\\x52\\x97\\x6a\\xfb\\x58\\x16\\x93\\x38\\x0c\\xc5\\x4d\\xe3\\x8a\\x07\\x58\\x7f\\x32\\xe2\\xd4\\x54\\x9f\\x26\\x59\\x5f\\xee\\x23\\x93\\xbd\\x06\\x2e\\x9b\\x00\\xba\\xe7\\x24\\x98\\xe4\\x14\\x8c\\x8b\\x88\\x2a\\x88\\x40\\xe1\\x5b\\x58\\x5c\\x82\\xb5\\xc0\\xde\\xfb\\x23\\x35\\x18\\x40\\x99\\x16\\x61\\x5d\\xeb\\x3a\\x55\\xa5\\xf8\\x4e\\x6b\\x3a\\xab\\x93\\x84\\x4d\\xe3\\xb1\\xe4\\xd8\\x6e\\x09\\xf8\\x89\\xac\\x71\\xc3\\x24\\xeb\\x12\\xd0\\xfb\\xd8\\x61\\xcc\\x31\\x22\\x95\\x40\\xe8\\x43\\xa3\\x4f\\x8d\\x5b\\xe4\\x7c\\x0e\\xc0\\xd2\\x3d\\xf4\\x3e\\x06\\x81\\x3f\\xca\\x30\\x94\\x39\\x90\\x4c\\x16\\x7d\\x10\\x43\\xc0\\xdc\\xd4\\x44\\xb0\\x04\\xbe\\x1f\\xf2\\x7b\\x78\\x62\\xb0\\x0e\\xba\\x94\\x33\\xb9\\x4b\\x0f\\xcd\\xc6\\x75\\x21\\xda\\x0c\\x1d\\x53\\x58\\x63\\x6c\\x78\\xf5\\x30\\x43\\x11\\x64\\xdd\\xe2\\x0a\\x1c\\xf1\\x64\\xf5\\x1e\\x29\\xb8\\xe6\\x3e\\xac\\xde\\xcc\\x86\\x9b\\x41\\x39\\x2c\\x66\\x76\\x64\\xd9\\x16\\x80\\xd9\\xac\\x51\\x6a\\xf5\\x48\\xf0\\x9e\\x60\\x56\\x4e\\x81\\x4e\\x36\\xe0\\xb5\\x63\\xdb\\xae\\x55\\xc6\\x27\\xff\\xc1\\x41\\x58\\xa5\\x6d\\x8e\\xb3\\x60\\x9e\\x17\\x43\\x81\\xb2\\x1d\\xe4\\xba\\x82\\x34\\x44\\x66\\xdd\\x57\\x7f\\x4d\\x11\\x03\\xc4\\x3c\\x27\\xfb\\x83\\xcb\\x83\\x3d\\x87\\xaf\\xdf\\x74\\x12\\xb4\\x09\\x09\\x09\\xb1\\xdd\\xe2\\x64\\xda\\xdd\\xce\\x96\\x7f\\x49\\x6b\\xf6\\xf1\\x71\\x12\\xbf\\x35\\x1e\\x41\\x7d\\xb5\\x95\\x3b\\x13\\xb8\\xf0\\xfc\\xcc\\xbf\\x30\\xf5\\xbc\\xf3\\x76\\x86\\x1c\\x12\\xef\\x20\\xee\\xc8\\x9e\\xd2\\x3c\\xf3\\x84\\xee\\x78\\xdc\\x6e\\xb4\\x0f\\xd5\\x81\\x1a\\x7b\\x23\\x92\\x7c\\x13\\xe7\\xdc\\x5d\\xa3\\xa9\\x21\\xb8\\x83\\xa9\\xb2\\xb1\\x15\\x59\\x70\\xfb\\x0d\\xa7\\xd2\\x99\\x3d\\xcd\\xfd\\x43\\x43\\x64\\x2a\\x9d\\x5a\\x63\\x47\\xe4\\x3c\\x19\\x3b\\x57\\x93\\xe4\\x45\\x3a\\xc1\\x53\\x7a\\xa3\\xd0\\x4d\\xc9\\xf7\\x74\\xe8\\x40\\x93\\x48\\x81\\xd7\\x8a\\x39\\xba\\x25\\x04\\x38\\xc5\\x07\\x25\\x0e\\xed\\x2f\\x6e\\x07\\xcc\\x95\\x3f\\x78\\x3d\\x6b\\x72\\xb1\\xcc\\x61\\x99\\x81\"},\n{{0x2f,0x05,0x7d,0x20,0xb1,0x67,0x85,0x31,0x61,0x1f,0x48,0xf0,0x03,0xb7,0xd2,0x2e,0xba,0x5d,0xbb,0xd7,0xe2,0xdd,0x41,0xb7,0xc7,0x9d,0x09,0x07,0x1f,0x85,0xe9,0x93,},{0x62,0x0f,0xc4,0xea,0xa3,0x4d,0x78,0x7d,0xf6,0x75,0xcc,0xbf,0x7e,0x89,0x32,0x04,0x82,0x8d,0xb9,0x2e,0xad,0x17,0xa1,0x16,0x5a,0xc7,0xfa,0x1a,0xb4,0x27,0x19,0xd8,},{0x30,0xdf,0x7b,0x0b,0x1c,0x04,0xfb,0x1e,0xfa,0x35,0x17,0xe9,0x28,0xd6,0xd5,0x7c,0x2c,0xa0,0xd0,0x7f,0x4e,0x04,0xff,0xb1,0xf0,0x8b,0x47,0x92,0xc5,0x93,0x7d,0xd2,0x71,0xcc,0xab,0xdc,0x00,0xdc,0xe8,0x50,0xaf,0xe5,0x0a,0xf5,0x99,0x0f,0x22,0x4e,0x84,0x20,0xa6,0x81,0xd9,0x5f,0x9f,0x7f,0x51,0x5a,0xfe,0xc1,0x02,0xef,0xd1,0x0e,},\"\\x6e\\x35\\xf6\\xea\\xa2\\xbf\\xee\\x06\\xea\\x6f\\x2b\\x2f\\x7a\\xb1\\x5f\\xa9\\x7c\\x51\\x80\\x95\\x8a\\xf2\\xe9\\x0a\\xf9\\x18\\xad\\xfb\\x3d\\xb8\\x32\\x3f\\x44\\x7c\\x7b\\xf2\\x6d\\xc5\\x34\\x99\\x7c\\x38\\xb7\\xfc\\x97\\x7f\\x64\\x2d\\xe2\\x88\\xcd\\xf2\\x53\\x07\\x1c\\xac\\xf3\\x56\\x4e\\x3b\\x8e\\xd6\\xdc\\xe5\\x7d\\xdf\\xba\\x9f\\xf7\\x83\\xba\\xd2\\xe7\\x6d\\xf1\\x24\\x82\\x8f\\xc1\\x03\\x1a\\xcf\\xad\\xf0\\x1a\\x44\\xd4\\x1b\\x42\\x16\\x1a\\xd9\\x06\\x03\\x01\\xc1\\xaf\\x19\\x28\\xb9\\xe5\\xb7\\x3b\\x9b\\xd2\\x1c\\xac\\x60\\xa8\\x42\\xb5\\x04\\xdc\\x3c\\xc3\\x11\\xc5\\x22\\xe3\\xbb\\x04\\x8b\\xf2\\x21\\x44\\x4f\\x53\\xce\\xb0\\x8e\\x77\\xe9\\x48\\x59\\x0e\\x94\\xed\\x98\\xf1\\xb6\\x04\\xcb\\x9e\\xad\\xc9\\x3b\\xbe\\x74\\x31\\xc1\\x14\\x9b\\x23\\x19\\x3f\\xf9\\x3e\\x85\\x69\\xf1\\x13\\xe1\\x68\\x4d\\x89\\x76\\xec\\xae\\x6f\\x09\\xe0\\x10\\x36\\x14\\xbe\\x41\\x8a\\x47\\x2e\\xf5\\x5b\\xb8\\x89\\x0d\\x72\\xb3\\x41\\xcd\\xd7\\x50\\x5b\\x50\\xa4\\x55\\x22\\xab\\x63\\xed\\x79\\x1c\\xe8\\xf8\\x2f\\xed\\xdd\\x7a\\x62\\x0a\\x4f\\x6f\\xb1\\xd2\\xfb\\x0e\\xd0\\xc4\\x56\\x0d\\x78\\x44\\x6d\\x83\\xb3\\xd1\\xb1\\xbb\\x56\\xb3\\x66\\xd1\\x96\\x02\\x0d\\x06\\x24\\xb1\\xfb\\xdb\\x75\\xce\\x73\\x5d\\xd4\\x3e\\x8e\\x8d\\xf1\\x63\\xc4\\x4e\\x23\\x69\\x93\\xdc\\xa3\\x41\\xf5\\x13\\x2d\\x82\\x5d\\x0a\\x4e\\x39\\x3a\\x19\\xd3\\x8f\\x61\\xe1\\x1e\\x0c\\xf3\\x92\\xcb\\x9b\\x64\\x6e\\xa2\\x3c\\x58\\x09\\x98\\x24\\xdd\\x8d\\x9f\\xbe\\x26\\xa4\\x9e\\x33\\xb2\\x3d\\xf8\\x06\\x07\\xab\\xf1\\x97\\x15\\x79\\x9c\\x19\\xac\\xc7\\x22\\xed\\x9b\\xcf\\x94\\xa0\\xc2\\x9a\\xd2\\x4b\\x78\\xb0\\xb0\\x35\\xb3\\x24\\x1c\\x64\\xcd\\x86\\xed\\xea\\xc8\\x10\\xe6\\x67\\x45\\x69\\x4b\\x5e\\xb1\\x62\\x50\\x60\\xed\\xf2\\xd9\\x49\\xde\\x0d\\x34\\xf5\\x22\\xdf\\x2d\\xc6\\x0a\\xe6\\x94\\xa1\\x93\\xf3\\xb8\\x2c\\x1d\\x6f\\x83\\xa0\\xcb\\xb8\\x40\\xf4\\x6c\\x49\\xa3\\xd7\\xd1\\xcf\\x06\\xde\\xaf\\x96\\xc6\\x4f\\x8f\\x9e\\x17\\xbd\\x9a\\xd5\\x12\\xae\\x63\\x09\\xc4\\x86\\xd9\\xe2\\xa7\\x8d\\xce\\xec\\xa4\\x73\\xa0\\x42\\x1d\\xd1\\xb6\\x43\\xc7\\x87\\x54\\x27\\x1b\\x53\\xce\"},\n{{0x3a,0x3d,0x27,0x97,0x0f,0xe2,0xac,0xb6,0x95,0x1e,0xdd,0x5c,0xa9,0x0d,0xda,0x0f,0xc6,0xdd,0x22,0x9c,0x0a,0x56,0xdf,0x6e,0xb1,0x1a,0x9c,0x54,0xd2,0x42,0xdb,0xbf,},{0x56,0x4f,0x0d,0xc3,0xdc,0x47,0x20,0xe6,0x8e,0x44,0xdd,0x16,0x71,0x1e,0x04,0x9e,0x61,0x12,0x00,0x00,0x98,0xfa,0x62,0xa1,0xb9,0x8c,0x28,0x80,0x42,0xf7,0xc3,0xbd,},{0x22,0xeb,0x8e,0xa0,0x50,0x73,0x49,0xb6,0xa0,0xac,0xe2,0x5c,0xf9,0x18,0x0c,0xb0,0x8e,0x03,0x57,0xb0,0x45,0x02,0x90,0x5f,0xbe,0x69,0xb4,0xe2,0x1b,0x2b,0xd9,0x4e,0x22,0xcf,0xbd,0xb8,0x51,0xae,0x71,0x6a,0x5c,0x25,0x3c,0x70,0xd5,0xe2,0xb2,0x4e,0xa7,0x8f,0x35,0xbc,0x21,0x32,0x92,0x54,0x3d,0x94,0xe1,0x41,0x10,0xb2,0x41,0x06,},\"\\x43\\x74\\xf6\\x1c\\x2c\\xd8\\x8a\\x3b\\x89\\x72\\x24\\x9b\\xfa\\x79\\xb3\\x6a\\xb6\\x9e\\x3e\\xd4\\x84\\xcc\\x60\\xe5\\xd9\\x54\\x1f\\xa7\\x68\\x6c\\xf4\\xee\\xd1\\x21\\x0c\\x5d\\x0d\\xcf\\x42\\xdd\\x25\\x97\\x25\\x01\\x90\\x91\\x93\\xca\\x76\\xae\\x6e\\xb7\\xf4\\x71\\xd8\\xbd\\x0d\\x5f\\xb5\\xa6\\xb4\\x31\\xbc\\x3d\\xe0\\xe0\\x31\\x8d\\x50\\x51\\x45\\x24\\xde\\x87\\xc4\\xb8\\x30\\x05\\xdf\\xb4\\x12\\x45\\xfb\\x1a\\xf7\\x9b\\x84\\xa9\\x7b\\x83\\xd3\\xca\\xc7\\xad\\x7a\\x53\\x36\\x4e\\x2e\\x9b\\x21\\xc9\\x7b\\x76\\x9b\\xdc\\x57\\xf0\\x70\\x31\\x16\\x16\\x83\\x80\\xf3\\xcc\\x88\\x36\\x89\\xeb\\x4a\\x7f\\xa3\\xb2\\x6d\\xbe\\x12\\xbc\\x28\\xf8\\xc4\\x03\\x81\\xaf\\x64\\xdf\\x4b\\x53\\x61\\xd1\\x74\\xcf\\x75\\xac\\xbd\\x46\\x42\\x87\\x40\\xb0\\xd1\\x32\\x2d\\x32\\xbb\\xe9\\x48\\x45\\x21\\x59\\x66\\xae\\x58\\x87\\x77\\xa8\\xc0\\x53\\x36\\xe3\\x52\\x30\\x6d\\x49\\x27\\x8d\\x32\\x8e\\x49\\x6d\\xb6\\x5e\\x9e\\xcf\\x6c\\xe6\\x40\\x5e\\xd1\\xc8\\x93\\x49\\x0b\\xc4\\x8c\\x13\\xa1\\x34\\xe1\\xfb\\x6e\\x80\\xde\\xbe\\x6d\\x32\\xfc\\xe6\\xef\\x74\\x78\\x3c\\x8d\\x77\\x98\\x0a\\x44\\x1a\\x26\\xae\\xb4\\xfd\\x83\\xcc\\x85\\x53\\x52\\xce\\xdc\\x18\\x8f\\x52\\x79\\xce\\x21\\x1f\\x74\\x4a\\x40\\xb2\\x3c\\xe7\\xff\\x24\\x43\\x7a\\x1d\\xd3\\x37\\x3e\\xc5\\xb2\\x90\\xda\\x1f\\x94\\xf4\\x3a\\x07\\xa3\\xff\\xea\\x5b\\x5f\\x67\\xb5\\x2c\\x19\\x61\\x85\\xbc\\xe9\\xe9\\xa8\\x58\\x25\\x7f\\xcd\\x7a\\x8e\\xba\\xf9\\x04\\x0e\\xd0\\x91\\xfa\\xce\\x5a\\x15\\x5a\\xa4\\x47\\xfa\\x15\\xe1\\x21\\x22\\xd2\\x5e\\x8f\\xc3\\x6e\\xae\\xe2\\x13\\x7c\\x7b\\x3a\\xa3\\x0b\\x7e\\x3f\\xf6\\xcc\\x86\\xb6\\xdc\\xb9\\xea\\xf4\\x9c\\x95\\x76\\xf0\\xf4\\x62\\x00\\x84\\x39\\xcb\\x1a\\x3a\\xba\\x01\\x3e\\x89\\x7a\\x0f\\xaf\\x99\\x4c\\xb7\\xd5\\x9e\\xde\\x57\\x74\\xbb\\x14\\x47\\x74\\xf7\\x3c\\xa3\\x0e\\x64\\x14\\xa7\\xcc\\x7c\\x74\\xb2\\x0c\\x51\\xa1\\x40\\x4d\\xdc\\x41\\x9e\\xf7\\x62\\x45\\x93\\xe9\\xbc\\xfb\\x37\\xc0\\xa7\\x62\\xea\\xb6\\x8f\\xac\\xa5\\x86\\x34\\x43\\xe1\\x6e\\xdb\\x75\\x9d\\xbc\\x87\\x88\\x73\\x2b\\x9e\\x4f\\x59\\xc1\\x11\\x92\\xc3\\xfc\\xc8\\x72\\xaf\\x55\\xf3\\x2d\"},\n{{0x06,0xd4,0x98,0x31,0x8d,0xa4,0x56,0x24,0x2b,0x9c,0x3b,0x9a,0xb6,0xd5,0x32,0xa1,0x28,0xfc,0xe0,0x44,0xf5,0x38,0x82,0x68,0x2e,0x92,0x62,0x14,0x9c,0x16,0x52,0x88,},{0x41,0x35,0x17,0xaa,0x63,0x20,0x0a,0x17,0x17,0x32,0x09,0xa4,0xb3,0xe7,0x8a,0xb9,0x38,0x3c,0xb4,0xe3,0x9e,0xfd,0x67,0x94,0xc4,0x6a,0x2d,0x13,0xfa,0xfa,0x99,0xc0,},{0x82,0x50,0xf7,0x6d,0xc5,0x99,0xc5,0x12,0x87,0x87,0xe4,0xf6,0xd3,0xda,0x23,0x17,0x33,0x30,0xce,0x33,0x20,0xdb,0xa9,0x59,0xbd,0x71,0x4c,0xc8,0xcc,0x07,0xc6,0x79,0x45,0xd6,0x3e,0x75,0x66,0x2c,0x07,0x5e,0x26,0x74,0x60,0xab,0x7b,0xf5,0x61,0xf2,0x4f,0xaa,0xe3,0xb4,0x1d,0xbf,0x67,0x68,0x99,0x19,0x1e,0x3b,0x02,0xb5,0xaf,0x0a,},\"\\x3f\\xe3\\x0e\\xcd\\x55\\x07\\x7a\\x6e\\x50\\xdf\\x54\\xbb\\x1b\\xf1\\x24\\x8b\\xea\\x40\\x63\\xe3\\xfa\\x75\\x5f\\x65\\xfc\\xd1\\x15\\x9e\\xe0\\x46\\xef\\xd0\\xeb\\x5f\\x2f\\xbb\\x38\\xb5\\xc0\\x09\\x47\\xc9\\x7d\\xc8\\x79\\xb3\\x6b\\x9e\\x53\\x61\\x92\\x28\\x60\\x86\\xd0\\xdc\\x12\\x05\\x36\\x10\\x38\\x61\\x74\\xa7\\xc5\\x6f\\x22\\xa8\\x5b\\x73\\xff\\x20\\x8c\\x59\\x44\\xf3\\x93\\x23\\x6c\\x32\\x41\\x58\\x09\\xda\\x03\\x6e\\x73\\xca\\xd8\\xfc\\x3c\\x30\\x37\\x80\\x64\\xa7\\x6a\\xfa\\x93\\x0a\\x3b\\xaa\\xe9\\xaa\\x35\\x70\\x61\\xa8\\xc5\\xe8\\xe7\\x56\\xa9\\xce\\xcf\\x94\\xb7\\x2d\\xf4\\x3f\\xac\\xd8\\x8f\\xa4\\x9c\\xb4\\x94\\x8c\\x63\\x68\\x31\\x8a\\x6b\\x1e\\x5c\\xff\\x52\\xe5\\x87\\xec\\xdf\\xae\\xfd\\xb6\\x90\\x81\\xf2\\x8c\\x2d\\x13\\xbf\\x8e\\xab\\x81\\xdb\\xaa\\x5e\\x37\\x28\\xc4\\x31\\x7f\\xb7\\x93\\xdd\\x19\\x6b\\xca\\x0f\\xe5\\x4a\\x6c\\x24\\x2c\\xf2\\x6e\\x2d\\x12\\x9b\\xa0\\xd8\\x2a\\x2c\\x3a\\x45\\xbc\\x8d\\x1d\\xfd\\x6f\\x54\\xf8\\xda\\x4f\\x51\\x89\\xc9\\x1a\\xc2\\x14\\xfd\\xab\\xf4\\xc5\\x97\\x38\\x1b\\x2e\\x5c\\x40\\xcc\\x71\\xfa\\x70\\x51\\xcf\\x2e\\xa9\\x39\\x06\\xa3\\x7d\\x57\\xdf\\x12\\xd5\\xc7\\xe5\\xcd\\x77\\xc9\\x07\\xe4\\x42\\x56\\x63\\x15\\xba\\xe5\\x1a\\x22\\x22\\xd6\\x2e\\x3f\\x42\\xd1\\x76\\x78\\x82\\x63\\x7d\\x66\\xa1\\xd5\\x30\\x5a\\xb4\\x01\\x0a\\x0e\\x49\\xc5\\x7d\\xef\\x69\\xdc\\xea\\x83\\x9e\\x1b\\x76\\xa4\\x11\\x35\\xba\\x95\\x2c\\xc4\\x24\\x95\\x0e\\x8d\\x3a\\xac\\x19\\xe1\\xd9\\x3d\\xe7\\x75\\x7c\\x15\\xff\\x99\\x97\\xb3\\xd2\\xa8\\x61\\x3c\\xd9\\xa1\\x64\\x78\\x1d\\x1b\\xe3\\x31\\x79\\x9f\\xa6\\x10\\x9c\\xef\\x61\\x43\\x05\\xa1\\x95\\x8f\\x62\\x90\\x3c\\x8c\\x9e\\xa0\\xb2\\x3b\\xa7\\x06\\xd4\\x9c\\x54\\xba\\xcc\\xc1\\xe6\\x3c\\xb4\\xbf\\x14\\x78\\x5f\\xc7\\xb0\\x62\\xa9\\x80\\x03\\x49\\xbd\\xb0\\xbb\\x92\\x72\\x60\\xb6\\x77\\xb6\\x0f\\x10\\xe6\\x2c\\x87\\x80\\xf3\\xeb\\xb5\\xeb\\x6f\\xf0\\x36\\x02\\x63\\xd4\\x57\\xab\\x52\\xfd\\x11\\x25\\xc9\\xce\\x04\\x6a\\x95\\xd8\\x9d\\x28\\x73\\x50\\xc8\\x04\\xcf\\xd4\\xff\\x2b\\x2d\\xdd\\x18\\xa9\\xe1\\x35\\x19\\xf2\\x0b\\x4d\\x1e\\x05\\x1a\\xf6\\x24\\x64\\x0f\"},\n{{0x8e,0x8e,0x1d,0xb5,0xb1,0x10,0x2e,0x22,0xa9,0x5c,0x47,0xaf,0x36,0x61,0x46,0x9f,0x00,0x0a,0x33,0xf1,0x3b,0x8b,0x87,0xb1,0x15,0xd2,0x45,0x2a,0x41,0x1f,0x6f,0x39,},{0x56,0xd7,0xb3,0x16,0x9a,0x95,0xc2,0x29,0x98,0xec,0x93,0x79,0x25,0xbd,0x7c,0xad,0x13,0xcc,0x65,0x80,0x8c,0xd5,0xd3,0x4a,0x6c,0x4d,0xa8,0x70,0xea,0xf3,0x23,0x64,},{0xf6,0xee,0x5e,0x13,0xcf,0xaa,0x36,0x2c,0x89,0x71,0xd5,0xa4,0xa8,0x79,0xa7,0xe3,0x69,0x66,0x52,0x5c,0xcd,0x86,0xc5,0xa4,0x8c,0xba,0x08,0xd9,0x13,0xec,0xe1,0xa7,0x9c,0x4c,0xd1,0x46,0xb8,0xe9,0xc6,0x51,0x25,0xfb,0xad,0xf1,0x7b,0xac,0x1c,0xab,0xcd,0xe8,0xfd,0x17,0xcf,0xd6,0x8f,0xa1,0xf9,0xc4,0x4e,0xa6,0x1c,0x08,0xa4,0x05,},\"\\xb2\\x46\\x34\\xfb\\xdd\\x1b\\x76\\x61\\x31\\x5d\\x9d\\xc1\\x53\\xba\\x90\\xd6\\x6a\\x88\\x62\\x2a\\x41\\x58\\xf8\\xbc\\xff\\x25\\xba\\x9c\\x29\\xe6\\x5f\\x29\\x7f\\x8e\\x60\\x31\\x18\\x00\\xb7\\x33\\x1b\\x69\\xfc\\x20\\xc9\\xf8\\x5b\\xb7\\xc1\\x84\\xbd\\x40\\x86\\xb3\\xa9\\xf9\\xa2\\x71\\x02\\xb6\\x23\\x62\\xbd\\xb4\\xfa\\x5b\\x20\\x15\\x94\\x25\\x0f\\xc6\\x28\\xfd\\x2e\\x0e\\x0d\\x1b\\xe0\\x3d\\xcf\\x81\\x8c\\x60\\x94\\xc4\\xc2\\x91\\x21\\xcb\\x2b\\xf6\\xd9\\x08\\xed\\x8a\\xab\\x42\\x7c\\x37\\x71\\xc0\\xc9\\x5f\\x0a\\xc1\\x46\\x9a\\x08\\x10\\xb6\\x03\\xa4\\x70\\x28\\x2e\\x59\\x80\\xa6\\x07\\x29\\x19\\x7f\\xe6\\xc2\\x0e\\xf6\\x81\\xcd\\x1b\\x96\\x93\\x2d\\x20\\x58\\xf8\\x96\\xea\\x74\\x16\\x42\\x2a\\x7e\\x54\\x1f\\x22\\x4a\\x5f\\x04\\x25\\x30\\x80\\x74\\x1c\\x5d\\x4e\\x3e\\xb0\\x39\\xdb\\x6b\\xa0\\x51\\xb4\\xca\\x54\\x17\\xce\\x8a\\xfd\\xc7\\x02\\x14\\xba\\x4d\\xcc\\x85\\xb6\\x23\\xd1\\x1e\\x68\\x1c\\x60\\x09\\xae\\xe4\\xe6\\x13\\x0a\\x83\\xed\\xd0\\xd2\\xc9\\x9f\\xb0\\x64\\x7e\\x11\\xed\\xe7\\x30\\x1a\\xe5\\x6b\\x59\\x90\\x4e\\xf7\\x02\\x57\\x32\\xcd\\xe0\\x38\\x80\\x1e\\xc7\\xe8\\xd9\\x0a\\x9a\\x1b\\xba\\x04\\x7f\\xe6\\x28\\x35\\x1b\\x3b\\x89\\xd0\\xbc\\x5a\\xe6\\x65\\xa7\\x00\\x89\\x1f\\x09\\xeb\\xee\\xc0\\x55\\x91\\x84\\x2a\\xdf\\xcc\\x25\\xad\\xc3\\xc7\\x1c\\x1e\\xbc\\x4a\\x31\\x2e\\x54\\x71\\xbe\\x67\\x25\\x3b\\x0e\\x94\\x28\\xb0\\xca\\xe3\\x76\\x45\\xa0\\xf7\\xec\\xb8\\x9d\\xd7\\x9f\\xbd\\x9b\\xe2\\x87\\x54\\x33\\x66\\x7a\\xe0\\x7d\\x74\\xa7\\x98\\x3c\\x4c\\xea\\x60\\x1e\\x72\\xe9\\x75\\xc2\\x1d\\xf9\\x93\\xe7\\xfa\\x22\\xa9\\xfa\\xbd\\x45\\x45\\x5d\\x45\\xe3\\x70\\x31\\x55\\x8e\\x13\\xa7\\xa4\\xf5\\xf4\\x97\\xea\\x78\\xfb\\x73\\x99\\xf8\\x83\\x8c\\x0f\\xd5\\xde\\x4e\\xbb\\x66\\xdb\\x29\\x0f\\x43\\xa4\\x86\\x7d\\x50\\x53\\x09\\xf1\\xc1\\xbc\\x27\\xe9\\xfa\\xbc\\xbb\\xa7\\x13\\x02\\xfc\\x12\\x04\\x71\\x5c\\xe3\\xfc\\xb0\\x90\\x5b\\xfa\\x41\\x1c\\x9d\\x1c\\x9a\\xb4\\xa3\\x99\\x54\\xe5\\x0b\\x8e\\x0c\\xf7\\x36\\xc1\\x02\\x89\\x56\\x3b\\xdf\\xa9\\x67\\x55\\x3c\\x36\\xcd\\x9e\\x55\\x5b\\xc8\\xcc\\x56\\xbe\\x59\\x48\\x47\\xde\\x9f\\x26\\xf9\"},\n{{0x38,0x84,0xb8,0xb7,0x9a,0xbf,0xd3,0xbe,0x6c,0x13,0x98,0x5e,0xb8,0x59,0xab,0x74,0x3f,0x15,0x7c,0xd9,0xde,0xb8,0x1b,0x2f,0xe9,0x7e,0xa4,0xd6,0x17,0x3e,0x46,0xf5,},{0xbd,0x7f,0xd9,0xa8,0xde,0xf1,0x3a,0x54,0x2e,0xd2,0xf2,0xfb,0x04,0x88,0x86,0x88,0x5b,0xa9,0xb5,0xce,0x59,0xcb,0x70,0x19,0xfb,0x54,0x66,0x79,0x86,0xee,0xbc,0x26,},{0xf4,0x20,0x6f,0xcd,0x34,0x50,0x24,0x41,0xd5,0x4a,0x73,0x32,0x3f,0x33,0xa5,0xdb,0xb4,0xc9,0x85,0x57,0x31,0x9f,0x21,0x24,0x6f,0x26,0x0f,0xfb,0xbe,0x58,0x44,0x88,0x6d,0xb5,0x67,0xf4,0xb6,0x3c,0x47,0x94,0x3d,0xbb,0x78,0xfc,0x35,0x65,0x7d,0x7c,0x04,0xd4,0xfe,0xb0,0x42,0xff,0x85,0x36,0xf6,0x72,0x92,0x5c,0x31,0x9e,0xfb,0x09,},\"\\x12\\xad\\xaf\\xe3\\x0e\\xaf\\x2b\\x9c\\x72\\x03\\xca\\x5d\\x44\\xb9\\x7f\\xfe\\xd4\\xbf\\x65\\x17\\xa4\\x99\\x88\\xe4\\xe6\\x76\\xc8\\xe3\\x14\\xad\\xbd\\xbe\\x23\\xd8\\xf2\\xd3\\xe2\\xb0\\x81\\xa7\\x02\\x4f\\xa5\\x25\\xab\\x5a\\xae\\x26\\xe6\\x00\\x57\\xc1\\x01\\xe8\\xf3\\x68\\xd3\\xad\\xdb\\x93\\x76\\xc4\\x68\\x2c\\x1f\\x42\\x24\\xd7\\xf1\\x49\\xa8\\x47\\x4b\\xb9\\xa8\\xf6\\x63\\xef\\x21\\x0e\\x95\\x72\\xce\\x82\\x9d\\xa3\\x88\\xd8\\xaa\\xe7\\x2a\\x46\\x71\\x41\\xad\\xc1\\x53\\x47\\x3b\\xe3\\x65\\x3b\\xaa\\xa6\\x4b\\x5b\\x1e\\x2e\\x30\\x68\\x3f\\x6f\\x06\\xda\\xc2\\x78\\x4d\\x5b\\xbf\\x0d\\x08\\x2a\\xab\\x47\\x30\\x5e\\xd8\\xa8\\xef\\xd0\\x88\\x6c\\xe6\\x3a\\x17\\x93\\x15\\x22\\x5d\\x1e\\x4d\\x4f\\xfc\\xf1\\xf2\\x4a\\xc2\\xf4\\x64\\xcf\\x5e\\xd3\\xa8\\xb6\\xd3\\x99\\x84\\x54\\xf1\\xc0\\x2c\\xdb\\xf0\\xa4\\x44\\xee\\x2b\\x59\\xdd\\xbe\\x0a\\x17\\x4a\\x0d\\x93\\x7f\\xa6\\x28\\x65\\x08\\x8a\\xc6\\x47\\x49\\x99\\x57\\xd2\\x81\\xc6\\x94\\x98\\x03\\xa5\\xfb\\xdf\\xdd\\x0d\\xd9\\xe9\\x1b\\x69\\x76\\x86\\x1f\\x3c\\x5f\\x21\\x26\\xf3\\x9a\\xac\\x93\\x5b\\xe0\\x9f\\x4b\\x97\\x15\\xbd\\x4f\\x0d\\x5c\\x55\\xdf\\x73\\xa6\\xb9\\xf2\\xc0\\xad\\x26\\xce\\x49\\xd8\\x22\\xbf\\x85\\xbf\\xa2\\x34\\x6f\\x31\\x65\\xb0\\x38\\x59\\xa7\\x1c\\x3d\\x2a\\x7b\\x86\\xdb\\x6e\\x9f\\x2e\\x5d\\x7b\\x16\\x9a\\x91\\x0e\\xeb\\x7e\\xf3\\x8f\\xbd\\xfb\\xbe\\xc4\\x3a\\x9a\\x25\\xf0\\x4b\\xc3\\xac\\xfd\\x3b\\x06\\x91\\x54\\x2a\\xb6\\xde\\x9d\\xb6\\xf0\\x30\\x58\\xf9\\x58\\x40\\x24\\xf9\\x91\\x8e\\xde\\xcd\\x90\\xfb\\xb8\\x57\\x35\\xd6\\xdc\\xec\\x5b\\xd5\\x93\\xae\\x63\\xe2\\xcc\\x96\\x55\\x35\\x99\\xa3\\x10\\xf8\\xf2\\x00\\x9b\\xa9\\x53\\x71\\x19\\x6b\\x4d\\x5b\\x80\\xe7\\x55\\x96\\x37\\xf2\\x29\\x26\\x77\\x8b\\xe5\\xe1\\xcc\\xef\\x51\\x26\\xe2\\x44\\x3f\\xa9\\x39\\xc2\\xa5\\x3d\\xdd\\xb0\\x49\\x61\\xee\\xfd\\x34\\xe5\\x38\\xcd\\x8d\\x7f\\x0b\\xec\\x2b\\xff\\x1e\\xf0\\xd3\\xa4\\xbd\\xd3\\x58\\x31\\x76\\x37\\xf4\\x2d\\x59\\x55\\x38\\xc1\\x12\\x22\\x51\\xa9\\x4e\\x96\\x3d\\x1f\\x81\\xe7\\xb9\\xae\\xb1\\x64\\xf9\\x5d\\xa9\\xa4\\xed\\x75\\x29\\xb8\\x45\\xeb\\xc9\\x61\\xb2\\x7b\\x5c\\x19\"},\n{{0xec,0xd5,0x19,0xf2,0x87,0xad,0x39,0x50,0x52,0xb0,0xb3,0x0d,0xea,0xc3,0x41,0xd2,0xa9,0xdf,0x13,0xd6,0x56,0x7c,0x89,0x1c,0x81,0x3a,0x0c,0x9c,0xa5,0x2e,0x87,0x1e,},{0x8e,0xe9,0x4c,0x58,0x8e,0x0b,0x34,0x35,0x85,0xfc,0x67,0x48,0xfd,0x1b,0x54,0xb5,0x77,0x0c,0x64,0xe9,0x93,0x7a,0x56,0x35,0x7a,0x48,0xd4,0x4a,0xe2,0xf5,0x18,0x24,},{0xe8,0xf5,0x1b,0xe7,0x3f,0xc4,0xe0,0x23,0x5a,0xa1,0x53,0xa2,0xe1,0xb3,0x54,0xe9,0xc5,0xd2,0xd3,0x3a,0x11,0xae,0x0e,0x33,0x34,0x78,0xde,0x1d,0x8e,0x6c,0x44,0x56,0xd2,0xe2,0x50,0x82,0x4c,0x32,0x46,0xca,0x0e,0x8d,0x6a,0xe3,0xe1,0x66,0x77,0xa9,0x73,0x44,0x14,0x41,0x08,0xc1,0x3b,0x95,0x9e,0x1d,0xaf,0x51,0xcf,0x0f,0xe5,0x01,},\"\\xaa\\x71\\xbe\\x5f\\x55\\x7e\\x10\\xc9\\xfb\\x5f\\x09\\x1a\\x3a\\x27\\x44\\x53\\x94\\x7c\\x07\\xa0\\xe2\\x5b\\x26\\xf9\\x50\\x92\\x24\\x54\\x1d\\xff\\x76\\xf4\\xd9\\x6e\\xff\\xd0\\xd5\\xa4\\x1d\\x31\\x9b\\xc9\\x32\\x1a\\x86\\x66\\x7d\\x55\\xcf\\x49\\x43\\x2f\\xb5\\xc3\\xe7\\x15\\x38\\x8f\\x3f\\x10\\x6c\\x91\\x74\\xb1\\x61\\x0c\\x8f\\x30\\x75\\xd5\\x93\\x1c\\x29\\x00\\x99\\x38\\x5c\\xe9\\x24\\x9e\\x23\\x51\\x28\\xe9\\x07\\xc5\\x33\\x90\\x03\\x6f\\xbf\\x5d\\xa9\\x68\\xf8\\xd0\\x12\\x33\\x69\\x58\\xde\\x90\\xc5\\xe8\\xe6\\xb1\\x01\\x6a\\xd4\\x3f\\xb5\\x7c\\x8e\\x28\\x8d\\xaf\\xe1\\x4e\\x90\\xe6\\x4b\\x63\\x79\\x1e\\x5c\\xbe\\x55\\x7e\\x02\\xdf\\x8a\\xc9\\x37\\x06\\x42\\xa7\\x1f\\xaf\\x85\\x10\\x75\\xe5\\x56\\x5f\\x6f\\x9a\\x26\\x7f\\x4f\\x6b\\x45\\x4c\\xe4\\xc5\\x47\\x48\\x10\\xb8\\x04\\x84\\x4d\\xda\\x38\\x39\\x29\\x39\\x71\\x97\\x93\\x24\\x6a\\xa4\\x74\\x54\\xb9\\xb0\\xe8\\x2e\\x98\\x03\\xc0\\x99\\x35\\xd0\\x02\\x7f\\x39\\x95\\xcc\\xa9\\x71\\x30\\x69\\xbb\\x31\\x02\\x7f\\x7b\\x2a\\xf1\\x2f\\xe5\\xfe\\xec\\x7e\\xeb\\x06\\x84\\x3d\\x82\\x96\\xec\\x56\\x82\\x26\\x2a\\x07\\xda\\xe7\\x47\\xed\\x7b\\xc8\\x21\\xec\\x17\\x01\\x8d\\x89\\x9f\\xd1\\x67\\xb3\\x6a\\x7e\\x37\\x73\\xb4\\x27\\x49\\x9d\\x99\\xdc\\x58\\x3b\\xbe\\x4b\\x42\\x9a\\xfa\\x6a\\x26\\x59\\x39\\x53\\xf9\\x43\\xe4\\x67\\x3b\\xdd\\x0d\\x2a\\x84\\x42\\x56\\x13\\x16\\x03\\xcd\\x09\\x03\\x25\\x6f\\x33\\x4d\\x4f\\x8e\\xc8\\x2d\\xe1\\x15\\xb6\\xca\\x53\\x38\\xc7\\x5c\\x8b\\xaa\\x44\\xb4\\xba\\x96\\x3c\\x7c\\x78\\x51\\x0d\\x8d\\xe9\\xb2\\xa5\\x85\\x2f\\x42\\xf3\\x46\\x3c\\x68\\x5f\\xb3\\xa6\\xda\\x61\\xa8\\xe0\\x89\\x26\\x62\\xd6\\xa2\\x50\\xfc\\xaa\\x6f\\xef\\x74\\xd4\\x50\\xfc\\x45\\x7b\\x98\\x71\\xd0\\x8b\\xb5\\xbe\\x30\\x11\\x29\\x4a\\xc8\\x88\\xfc\\xe2\\x15\\xd5\\x35\\xc3\\xb1\\xa4\\x3b\\xb4\\x7e\\xfe\\x3a\\xd2\\x5d\\xa1\\x59\\x19\\x1a\\xed\\x55\\x19\\x54\\x69\\xc5\\x90\\x93\\xff\\xb2\\x4f\\x65\\xd6\\x0c\\x40\\x20\\xbf\\xbe\\x64\\x7f\\xf5\\xdb\\x7a\\xb8\\xa0\\x1d\\x5e\\x48\\x7b\\x0b\\x1b\\x64\\xef\\x25\\xda\\x15\\x6d\\xb1\\x42\\xe6\\xad\\x87\\x2a\\x4d\\xc1\\xee\\x9b\\xa6\\x68\\x46\\x52\\x65\\x37\\x9e\"},\n{{0x19,0x3f,0x3c,0x63,0x0f,0x0c,0x85,0x5b,0x52,0x9f,0x34,0xa4,0x4e,0x94,0x49,0x70,0xf4,0xa6,0x97,0x2e,0x6c,0x38,0x59,0x35,0x9c,0x2e,0x0c,0x87,0x62,0xba,0x9e,0xaf,},{0x32,0x56,0xf2,0xc8,0x2e,0x7c,0x80,0x12,0x01,0x21,0x01,0x40,0x56,0x9f,0xaf,0x18,0x50,0x7e,0x60,0x33,0x8c,0x2c,0xc4,0x11,0x8b,0xb1,0xce,0x60,0x5b,0x0e,0xbe,0x61,},{0xb1,0x25,0x10,0xac,0x5f,0x2f,0x6d,0x33,0x36,0x0c,0xdd,0xc6,0x72,0x91,0xd6,0xc2,0x70,0xfd,0x9e,0xe6,0x2d,0xc0,0x86,0xb3,0x8d,0x93,0x2d,0x26,0x47,0x3f,0xe9,0xa2,0x4e,0xfb,0xd4,0x24,0x88,0x67,0xea,0x7e,0x91,0x5a,0x30,0xc5,0xbf,0xb3,0xb8,0xb1,0x9a,0xa0,0x1a,0xa2,0xfe,0xbf,0x0d,0xac,0x6c,0xfd,0x66,0x38,0xa2,0xba,0x7e,0x0c,},\"\\x98\\x62\\x3f\\x65\\x16\\x98\\x08\\x5b\\xde\\x02\\x76\\x2e\\x8c\\x33\\x21\\xf1\\x4d\\xa1\\x61\\x9b\\x5c\\x3f\\x7c\\x1a\\x56\\x8e\\x8c\\x26\\xff\\x0c\\x62\\xfd\\xcc\\x41\\x24\\x75\\x91\\x2e\\xb8\\xe8\\xc4\\xb0\\xd3\\x09\\x18\\xb8\\xff\\xee\\xf3\\x50\\x93\\x15\\xe5\\x8d\\xa3\\x59\\xcd\\xc2\\xf2\\x6b\\xeb\\xfb\\x57\\x03\\x95\\x3b\\xe1\\x6b\\x8f\\x3b\\xeb\\x1e\\x54\\xa1\\xab\\xee\\x0a\\xeb\\xe2\\x4e\\x64\\xdb\\xe8\\x73\\x40\\x2e\\x15\\x6f\\x37\\xdf\\xc1\\x68\\xea\\xf8\\xa1\\x14\\xce\\x08\\xa6\\x79\\x5d\\x3f\\x64\\xf5\\x15\\x1e\\x9a\\x8b\\x82\\x75\\xcc\\x7b\\x49\\xa6\\xb8\\xd8\\xa6\\x6b\\x6d\\x4b\\x76\\x32\\xef\\x80\\x74\\x0d\\xc1\\xc1\\xb0\\xa3\\x8d\\x1a\\x28\\xf7\\xc1\\xb2\\x9f\\xa4\\x45\\x41\\xc1\\xaa\\xd3\\x54\\xd4\\x59\\x0c\\x23\\x1d\\xae\\x68\\x7a\\x2a\\x8f\\xed\\x09\\xe8\\xc1\\xeb\\xbf\\xcc\\x38\\xf3\\x47\\xbf\\x06\\xd9\\x45\\x77\\xe4\\x9a\\xd1\\x39\\xf7\\x10\\xed\\x8b\\xb1\\xfd\\x07\\x66\\x3c\\x03\\x20\\x84\\x6f\\xbb\\x45\\x5a\\xb8\\x37\\xef\\x96\\x4a\\xe7\\xd4\\xec\\xee\\xa4\\x5f\\xd7\\xbd\\x8d\\x50\\x9f\\x82\\x1e\\x6e\\xb0\\x27\\x49\\x4e\\xfd\\x8d\\xd8\\xe9\\x92\\xb8\\x86\\x98\\xee\\xc2\\xeb\\xc5\\xe0\\x30\\x25\\xbe\\x78\\x9c\\x18\\x01\\x3f\\x20\\x1f\\x77\\xaa\\x2d\\x34\\xf5\\x68\\x64\\x60\\xe4\\x3f\\xb4\\x89\\xe0\\x87\\x76\\xf9\\x8b\\xcd\\xe2\\xce\\xeb\\x9d\\x4f\\xaf\\xdf\\xfe\\x03\\x75\\x60\\x43\\x71\\xec\\x32\\xf4\\x6b\\x81\\xfe\\xc4\\x74\\x38\\x29\\x08\\xe9\\xd2\\x50\\xa0\\xba\\x27\\x80\\xa7\\xd6\\xdf\\x40\\x7b\\xd2\\xb1\\xeb\\x12\\x67\\x48\\xd7\\x25\\x11\\xb9\\xb0\\x69\\xeb\\x1c\\xd4\\x42\\x70\\xf2\\x9f\\xe8\\x4b\\x9a\\x71\\x77\\x51\\x83\\x1d\\x04\\xc2\\x81\\x8e\\x40\\x8f\\x22\\x78\\x93\\x76\\xc6\\x1c\\x2c\\xa4\\x5e\\x32\\xe7\\x88\\xea\\xd3\\xa7\\x53\\x6b\\xf0\\x9d\\xa8\\xaf\\x47\\x03\\x90\\x2f\\x55\\x16\\xa0\\x20\\xd8\\x92\\x63\\xe9\\x37\\x01\\xa2\\x56\\x5e\\xef\\x12\\x70\\x41\\x89\\x25\\xf3\\x5a\\x28\\x8e\\x32\\x7b\\xab\\x62\\x8a\\xc2\\xf0\\x24\\x8c\\xfb\\xca\\x34\\x82\\xe2\\x65\\xd1\\x62\\x1c\\xc3\\x43\\xc3\\x1f\\x65\\x49\\x3f\\x06\\x4b\\xad\\x0d\\x76\\x02\\x46\\x07\\x15\\xfa\\x48\\x6f\\x29\\x42\\x63\\x46\\xaf\\x53\\xe3\\x33\\xb7\\x5f\\x59\\x05\"},\n{{0xa8,0x8a,0xd0,0x04,0x8d,0x38,0xc4,0x4c,0xeb,0xe7,0x35,0xea,0x38,0x02,0xca,0x57,0x6e,0x37,0x12,0x1c,0x7d,0x4d,0x76,0x0d,0xfd,0x88,0xde,0x16,0x63,0x06,0x4a,0xbb,},{0x14,0xdd,0x8b,0xb3,0x06,0x80,0x3e,0x5a,0x75,0x8e,0xd6,0x8a,0xd2,0x1d,0x07,0xd8,0x81,0x61,0xd5,0x0f,0x1c,0x74,0x71,0x37,0x77,0xda,0x12,0x09,0xaf,0xba,0xea,0x0b,},{0x13,0x41,0xa1,0x48,0xda,0x45,0x93,0xc8,0x8e,0xbc,0x5a,0x58,0x82,0x1e,0xef,0x77,0xf9,0x21,0x86,0x39,0x0f,0xf6,0x33,0xe7,0x62,0x07,0x08,0x4e,0x78,0x74,0xcc,0xf0,0xeb,0x1f,0x9e,0xc7,0x0a,0x3a,0x3f,0x96,0xb5,0x89,0x34,0xbc,0xb0,0x61,0xff,0x92,0x01,0x24,0xf7,0xe5,0x80,0xfa,0x2b,0x0b,0x27,0x95,0x83,0xad,0xf9,0x23,0x2d,0x0c,},\"\\x2c\\xe8\\xbc\\xa2\\x61\\x78\\x91\\x3b\\x16\\x76\\xe9\\x0f\\xfe\\xfd\\x94\\x5b\\xc5\\x61\\x98\\x26\\x60\\xe2\\xa7\\x5d\\x48\\x2f\\xf3\\x0a\\xab\\xa1\\xba\\x43\\xf8\\x2d\\x2e\\x6b\\x90\\x9e\\xc1\\x0f\\xc0\\x97\\x89\\xff\\x5c\\xf3\\x2a\\x51\\x80\\xb6\\x01\\xea\\x80\\xfa\\xde\\xce\\x6d\\x7e\\x7b\\xae\\xef\\x48\\x1d\\xc6\\x97\\x9e\\x2f\\x65\\x8a\\xe0\\xf6\\xd8\\xe4\\x16\\xb9\\x32\\x98\\xf7\\xd3\\x40\\x31\\xbb\\x76\\xf7\\x16\\xed\\x99\\x1a\\x16\\xd0\\x9a\\x58\\x2e\\x58\\xba\\x40\\x03\\xac\\x17\\xbe\\x8b\\x44\\x69\\xe1\\xa8\\x89\\xb2\\xfb\\xb2\\x28\\x9e\\x98\\xaf\\x1c\\x6d\\x5b\\xbe\\xe7\\x77\\x56\\x71\\x3c\\x07\\x78\\xb0\\xdc\\x44\\x6a\\x1f\\x6c\\x48\\xc4\\xd4\\x08\\x18\\xec\\x79\\x99\\x05\\xf0\\x69\\xbc\\x95\\x34\\x16\\x57\\xca\\x5d\\x02\\xb7\\xa5\\x39\\xa1\\x3a\\x02\\xcd\\x03\\x76\\xa5\\x0e\\x83\\x43\\xc0\\xdc\\x20\\x34\\x6d\\xe5\\x27\\x5b\\x1d\\xcd\\x4a\\xd7\\xaf\\x72\\x51\\x31\\xac\\x75\\xe9\\x54\\x82\\x5d\\x30\\xea\\xa5\\x7a\\x68\\xbb\\x98\\xdf\\xc4\\x1c\\xaf\\xe5\\x71\\x05\\x56\\x64\\x7b\\x38\\x7d\\x9b\\x7f\\xd4\\xe4\\x76\\x51\\xe5\\x13\\x80\\x50\\x79\\x8f\\x6d\\x40\\xf4\\xee\\x71\\x20\\xb5\\x8f\\x74\\xda\\x94\\xd7\\x3c\\xac\\xbf\\xd3\\x93\\xd1\\x34\\x73\\x88\\xee\\x00\\xb7\\x9b\\x8d\\xbf\\xeb\\x57\\x81\\x41\\x21\\xbd\\xda\\x60\\xc6\\x27\\xdc\\xe1\\x47\\xd4\\xd5\\x68\\xd7\\x90\\x52\\xe9\\x7b\\x9a\\x5f\\x3e\\xb5\\x40\\x7c\\xc4\\x64\\x61\\xa5\\x5e\\x18\\xa9\\x60\\xd8\\x09\\x4a\\x5f\\xea\\x48\\xb6\\x93\\x75\\x29\\xcc\\x4e\\xc9\\x19\\xcd\\xbe\\xdf\\x91\\x85\\x45\\x6d\\xc0\\x0e\\x8d\\x98\\xad\\x15\\x37\\xee\\x10\\xa0\\x57\\xf4\\xee\\xc4\\xb8\\x1d\\xc6\\x03\\x92\\xfc\\x91\\x88\\xd3\\xe5\\x61\\x78\\x59\\x65\\x09\\x2e\\x44\\x31\\x7f\\x2a\\x48\\xe3\\x66\\x05\\xfc\\x58\\x3f\\xc1\\x73\\xb0\\x5d\\xb9\\xdc\\xbc\\x75\\x57\\xd0\\x64\\x87\\x39\\x0f\\xbb\\xba\\x77\\xaf\\x3a\\x01\\x4e\\x1a\\xc3\\x51\\x39\\xca\\xa1\\xc5\\x3a\\x8d\\x17\\x34\\x7f\\x17\\x8e\\x1c\\x54\\xd0\\xf5\\x2b\\x40\\xe9\\x10\\x42\\xc9\\x3e\\x7e\\x48\\x1d\\x79\\x2e\\x28\\x8f\\xc2\\x7e\\x4c\\x2f\\xcf\\x11\\x1f\\xe9\\x7d\\x9e\\x23\\x37\\xd2\\xfc\\x1c\\x30\\x98\\xf0\\x66\\x84\\xa3\\x1d\\x55\\xeb\\xf3\\x62\\xc0\\x27\"},\n{{0x3f,0x59,0xd6,0xa0,0x18,0xf5,0x0a,0x82,0x21,0x17,0xe5,0xb4,0x73,0x60,0x9e,0x30,0xcd,0x64,0x92,0x0c,0xa1,0xc2,0x75,0x0d,0xcb,0x09,0xea,0xab,0x80,0x7a,0x3e,0xac,},{0x45,0x7d,0x0e,0x59,0xc1,0x1f,0x34,0x8f,0x3b,0xfb,0xdd,0x3f,0x32,0x7d,0xe7,0x8c,0x0a,0x75,0x77,0xc0,0xae,0xef,0x42,0xd4,0xc1,0xe5,0x67,0x00,0xd1,0x08,0x80,0x8b,},{0xd7,0x42,0x5e,0xa1,0x94,0xa6,0x71,0x5c,0x45,0x2e,0xc4,0xf6,0xd6,0xc7,0x6e,0x6d,0xd3,0x74,0xd3,0xca,0x7a,0xe7,0xa1,0x19,0x95,0xd0,0x2b,0x94,0x2d,0x4a,0x31,0x87,0x0d,0xd7,0x34,0xc1,0x2f,0xca,0x89,0xa8,0xeb,0x02,0x13,0xeb,0x13,0x9c,0x14,0xa8,0x7a,0x6a,0x33,0xe8,0x18,0x60,0x3b,0x2e,0x31,0x30,0x23,0xfa,0x58,0x73,0x7d,0x0e,},\"\\x7d\\x10\\x3a\\x6c\\x6b\\xa2\\xd0\\x90\\x87\\xee\\xf2\\x25\\x4c\\x1c\\x90\\x3f\\x06\\x76\\x95\\xa5\\x4c\\x45\\x15\\xe4\\xd1\\x3b\\xc1\\xfb\\xfb\\x54\\xd6\\xe7\\xa1\\x67\\x34\\x9c\\x14\\x80\\x99\\x76\\xda\\x04\\xa7\\xe5\\x8d\\x96\\xb4\\x0a\\xac\\x3b\\x2b\\xdd\\x14\\xb9\\xb5\\x03\\x22\\xbb\\x11\\x64\\x5f\\x05\\xe5\\xe9\\x78\\xbc\\x7f\\xbd\\x02\\x49\\x2e\\xf8\\x8f\\x87\\xd6\\x68\\x28\\x0f\\xd7\\x08\\x37\\x32\\x07\\xff\\x67\\x0f\\xcd\\xa9\\x7d\\xf8\\x48\\x5d\\x5e\\x46\\xdc\\x3b\\xd0\\x43\\x47\\xf4\\xd7\\x52\\x7e\\xab\\x27\\x18\\xf7\\xd9\\x3d\\x13\\x2b\\xa7\\x75\\x82\\x18\\x89\\x4e\\x75\\xa7\\xde\\xab\\xe6\\x93\\x33\\x5b\\xa0\\xdc\\x73\\xbf\\x26\\xc2\\x88\\xbf\\xe9\\xbe\\x8a\\x73\\x6d\\x75\\xe5\\xe0\\xea\\xa7\\xbb\\xe8\\xd0\\xb7\\x7a\\xbd\\xd5\\x14\\x6e\\x0f\\xc9\\xb3\\x0d\\xb9\\xf0\\x7c\\xf4\\xbf\\x36\\x26\\x0a\\x1f\\x41\\x41\\x03\\x31\\xf8\\xb4\\x7c\\x6b\\x38\\x33\\x8c\\x6d\\xc9\\xe8\\x01\\xff\\xe1\\xd5\\x85\\xf9\\xb7\\xfc\\x31\\xe9\\x77\\x8b\\xca\\x30\\x27\\xc2\\x32\\xc0\\x74\\xcb\\x18\\xe5\\xb7\\x29\\x97\\x00\\x5f\\xfe\\xee\\x4b\\xf3\\x7c\\x8f\\x87\\x4b\\x1b\\x24\\x6a\\x63\\x45\\x41\\x5d\\xac\\xac\\xa7\\x07\\x5a\\x60\\x44\\x3a\\xc3\\x31\\x92\\x36\\xe2\\x3c\\xf6\\xb7\\x54\\x47\\x40\\x80\\x70\\x52\\x11\\x49\\x84\\xb8\\xd8\\xf7\\xe8\\x57\\xdc\\xc6\\xfa\\xec\\x88\\x69\\xcf\\x96\\xb9\\x97\\xdf\\xa9\\xaf\\x91\\x84\\xad\\x62\\x3f\\x1d\\x90\\xb8\\xca\\x75\\x9b\\x44\\x8e\\xab\\xfc\\xe1\\x8c\\x17\\xcf\\xdf\\x9a\\x3e\\x33\\x12\\xe6\\x3e\\x5f\\x08\\x4c\\xea\\x90\\x4c\\x1c\\x90\\x99\\x13\\xcc\\x4b\\x19\\xd0\\x44\\xa3\\x72\\x00\\x34\\x97\\x3c\\x73\\x84\\x94\\x9b\\xd6\\xf9\\xba\\x92\\x56\\xf9\\x8c\\xd3\\x94\\xc5\\x66\\xda\\x83\\xc3\\x11\\x80\\x10\\x9f\\x16\\xd1\\x03\\x47\\xb7\\xe3\\xe9\\xdd\\x6b\\xe3\\xbd\\x3c\\x77\\xff\\x1a\\x79\\x96\\xa0\\x78\\xdc\\xf8\\x9d\\xcd\\xce\\x2d\\x1b\\x61\\x56\\x95\\xf4\\xcc\\x9f\\x8f\\x4f\\x2a\\x08\\x80\\x46\\x41\\xbc\\xa8\\x26\\x62\\xce\\x88\\xfa\\xa5\\x31\\x45\\xb6\\xa4\\x59\\x55\\xae\\xc8\\xcc\\x2a\\xf8\\x1c\\xcc\\xb5\\xd7\\xc6\\x4f\\x9e\\xce\\x1c\\x99\\x83\\x32\\x64\\x84\\xa1\\xe5\\xec\\xe4\\xce\\x36\\x54\\x4d\\x63\\x73\\x5f\\x77\\x76\\xf2\\x1a\\x20\"},\n{{0xa1,0x21,0x2b,0x34,0xdb,0xca,0x63,0xb7,0x09,0x36,0x12,0xd0,0x5d,0xab,0x7b,0x4c,0xc8,0xf7,0xb6,0x76,0xa9,0x34,0xad,0x01,0xf6,0x59,0x85,0x1b,0x3b,0xb4,0x4e,0x4e,},{0xba,0x2f,0xcc,0xea,0x9a,0x08,0x05,0x91,0xbe,0x71,0x26,0x8d,0x7e,0x95,0x1f,0x25,0x0d,0xed,0xc0,0x04,0x16,0xe5,0xf3,0xf9,0x08,0xdb,0x6c,0xc5,0x71,0x25,0x49,0x25,},{0xfa,0x93,0xed,0x65,0x95,0xbc,0x95,0x8d,0xc0,0x42,0xce,0x16,0x45,0x16,0x7b,0x79,0xe8,0xf6,0x73,0x4c,0x46,0xf8,0x0f,0x63,0x1f,0xd5,0x48,0x49,0x08,0xf5,0xe5,0x1a,0x22,0x42,0x7e,0xe6,0x86,0xf5,0x64,0xff,0x98,0x2f,0x6e,0xf4,0xd2,0xca,0x1f,0x0c,0xa5,0x62,0x49,0x10,0xcd,0xd6,0x3c,0x11,0xa3,0xc2,0xb1,0x6d,0x40,0x97,0x3c,0x07,},\"\\x07\\xc3\\x7c\\x46\\xbe\\x3c\\x68\\xd0\\x56\\x89\\x57\\x7a\\xa6\\x4a\\x93\\x2b\\x90\\x64\\x46\\xb2\\x9b\\xaf\\x12\\xf6\\x17\\x4a\\x6b\\x42\\xbb\\xae\\xfd\\x1f\\x1f\\x37\\x3e\\x0b\\xcc\\xc4\\x73\\xdd\\xfc\\xee\\x1a\\x7f\\x21\\xb9\\x6a\\x62\\x60\\xef\\x0a\\xa1\\xf2\\xd8\\xb2\\x95\\x9e\\x71\\xd1\\x2c\\x95\\x33\\x58\\xa2\\x77\\x4c\\xc5\\xe6\\xf3\\x79\\xa3\\x13\\xe4\\x35\\xed\\x69\\xdf\\xd6\\xd4\\xa5\\x9a\\xde\\xe3\\xcc\\x7e\\xc4\\xba\\xcb\\xdb\\xb3\\xfe\\xe5\\x43\\x0b\\x73\\xf6\\x05\\x1a\\x60\\x96\\xc6\\x0e\\x9b\\xc9\\x2c\\xc8\\xfa\\x05\\x9f\\xac\\x2a\\x93\\xef\\x70\\x07\\xd6\\x4f\\xbe\\x50\\x06\\x49\\x64\\xd5\\xa0\\xad\\x60\\x11\\x75\\xcd\\x9c\\xab\\xa4\\x53\\xf9\\x10\\x3b\\x25\\x48\\x55\\x45\\xd3\\x01\\xf0\\x3c\\x5f\\x9f\\x94\\x78\\xbd\\xf9\\xd4\\x14\\xbf\\x1d\\xca\\x3b\\x1c\\x1d\\x9d\\xaa\\x99\\x71\\xf9\\xe6\\x17\\xfb\\xfa\\xf5\\xb0\\x2a\\x7f\\xbd\\x5d\\x4f\\xb8\\x94\\xc0\\x97\\x5c\\x54\\x59\\x2b\\x49\\xa0\\xfc\\x85\\xdd\\x08\\x53\\xf3\\x0c\\x51\\x50\\x2d\\x98\\xfc\\x1a\\xb8\\x5a\\x17\\xcc\\x58\\x96\\x1a\\xae\\x97\\x64\\x57\\x0b\\xa5\\xcb\\xdb\\xc9\\x6d\\xfc\\xeb\\x8d\\x11\\xda\\x53\\x36\\x4b\\x40\\x25\\xfe\\x0b\\x8b\\xa8\\xa3\\x53\\xad\\x23\\x68\\x67\\x20\\x16\\x9f\\xe9\\x73\\x43\\x2f\\xfe\\x29\\x1a\\x4b\\x11\\xde\\xdd\\xa0\\xaa\\xc7\\x9a\\x5e\\x42\\x62\\x0a\\x64\\x58\\x7d\\x20\\x59\\xe7\\x87\\x01\\x3b\\x40\\xce\\xec\\x59\\x92\\x08\\xf6\\x6e\\xd0\\xca\\x6e\\x1b\\xe9\\x09\\x2e\\xc2\\x7d\\xb2\\x16\\xee\\x6d\\xad\\xfe\\xbc\\x21\\x70\\x5b\\xc4\\xa8\\x5a\\xee\\x57\\x7e\\x57\\xd2\\x39\\xaf\\x58\\x6e\\xfe\\xec\\x22\\xcf\\x38\\xd1\\xcf\\xb3\\xcd\\x74\\xdd\\x0d\\x9a\\x33\\x81\\xaa\\x81\\xe6\\xa2\\x97\\xe3\\x9b\\x81\\x91\\x37\\xad\\x27\\xd4\\x75\\xe2\\xbf\\x54\\xaa\\x42\\x6d\\xc2\\x9c\\x4c\\xa8\\x17\\x6d\\xf3\\x43\\x13\\x7a\\x2d\\x79\\xd1\\x2e\\xf9\\xaa\\x7b\\xe1\\xcf\\x67\\x75\\xe5\\xd8\\xa4\\x43\\x0a\\x85\\xc3\\x3d\\xb6\\x1c\\xd2\\xf3\\x51\\x87\\xb4\\xf6\\xea\\x9e\\xbd\\xd7\\x53\\xd1\\xc4\\xef\\x72\\x47\\x11\\x59\\xff\\x07\\xb7\\x78\\x70\\x90\\x64\\x96\\x24\\x9d\\x42\\x78\\xe3\\xf3\\xca\\x6b\\xcb\\xf3\\x7a\\x26\\x5b\\x89\\x65\\x39\\x19\\x0f\\x9a\\x31\\xf1\\xe7\\xb4\\xb6\\x5c\\xd1\"},\n{{0xd9,0x68,0x20,0x86,0xfe,0x7d,0xda,0x30,0xb8,0x71,0x11,0x06,0x01,0x93,0xd8,0x47,0x56,0x6a,0xb9,0x4c,0xfd,0x9c,0x97,0xab,0x6b,0x43,0xe7,0xa8,0xd3,0xf7,0x93,0x82,},{0x8b,0x0b,0x13,0x72,0xd8,0x87,0x33,0xef,0x72,0x33,0xf6,0x37,0x97,0x90,0xd1,0xe4,0x6e,0x1e,0x07,0xe9,0xd3,0xfb,0x8b,0x0b,0xe2,0x52,0xed,0x04,0xc5,0xfa,0x16,0x3d,},{0x17,0x93,0xe4,0x97,0xeb,0x52,0x1c,0xa7,0x4e,0x35,0xd1,0x4a,0x63,0x86,0x8c,0xbe,0x94,0x99,0xda,0x2f,0x21,0xb4,0xeb,0x52,0x60,0x34,0x0f,0xca,0x3c,0x1f,0xec,0xa7,0x8d,0xbe,0x5b,0x14,0xac,0x10,0xf3,0xfa,0x76,0xfa,0x2e,0x71,0xe4,0xc9,0x14,0x61,0xaa,0x75,0x97,0x7e,0x5e,0x70,0x79,0x26,0x70,0xef,0x7f,0xf0,0xe6,0xa2,0x87,0x08,},\"\\xe8\\x81\\x4b\\xe1\\x24\\xbe\\x3c\\x63\\xcc\\x9a\\xdb\\x03\\xaf\\x49\\x3d\\x44\\x2f\\xf2\\x0d\\x8b\\x20\\x0b\\x20\\xcd\\x24\\x93\\x67\\xf4\\x17\\xf9\\xa9\\xd8\\x93\\xfb\\xbb\\xe8\\x5a\\x64\\x2b\\xe2\\x70\\x1d\\x1d\\x1b\\x3c\\xd4\\x8a\\x85\\xcf\\x58\\xf1\\x59\\xa1\\x97\\x27\\x31\\x43\\xa5\\x78\\xf4\\x2e\\x8b\\xcc\\x8b\\x62\\x40\\xf9\\x32\\x71\\x90\\x05\\x38\\xff\\xc1\\x87\\xc0\\xaf\\xc8\\xdb\\xcc\\x49\\x2b\\xcd\\x67\\x9b\\xaa\\xef\\x3a\\xf5\\x08\\x84\\x34\\xa9\\x45\\x86\\xf9\\x4b\\x49\\x97\\x0b\\xba\\x18\\xf5\\xea\\x0e\\xbf\\x0d\\x27\\xee\\x48\\x2a\\xa8\\x3a\\xd0\\xdd\\x0e\\xe6\\x09\\xdf\\x59\\xd3\\x7f\\x81\\x8b\\x2c\\x8d\\x7c\\x15\\xf0\\xf6\\xf5\\x44\\xdd\\x4c\\x7e\\x7c\\xb3\\xa1\\x67\\x24\\x32\\x4f\\x77\\xd5\\x89\\x48\\xf8\\x47\\x5a\\x60\\xd5\\x3e\\x5b\\xd5\\x10\\xc1\\x71\\x37\\xc9\\x9e\\x1c\\xfa\\x51\\x5a\\xf9\\xbc\\x85\\x56\\x9d\\x21\\x2a\\x21\\x19\\x07\\x29\\xf2\\x81\\x7d\\xe8\\xc4\\x69\\x15\\xe0\\x21\\xdf\\x70\\xff\\x6d\\x60\\x21\\x5f\\x61\\x4f\\xc2\\x11\\x39\\x90\\x4d\\xf3\\xb2\\x92\\xb7\\x49\\xdc\\x4d\\xea\\x02\\x51\\x8b\\x62\\xd1\\x58\\x62\\xc9\\x2d\\x2a\\x4c\\x99\\x67\\x01\\xcd\\xec\\xae\\xd8\\x4a\\xb6\\x28\\xee\\x98\\x4f\\xc1\\x11\\xee\\xcb\\x59\\xe4\\x84\\x44\\xef\\xc0\\xd4\\x56\\xe2\\xc8\\x52\\x51\\x84\\x41\\xc3\\xdb\\x76\\x30\\xdd\\xd5\\x15\\x62\\x49\\xa2\\x87\\x30\\x98\\x38\\x38\\xae\\x59\\xac\\x4c\\xc7\\x11\\x0f\\xd6\\xde\\x68\\x10\\x1e\\xa5\\xb2\\xff\\x69\\xfd\\x36\\x4e\\x3c\\x94\\x48\\xde\\xfe\\xfe\\x17\\x5b\\xcb\\xe1\\x17\\xcc\\x11\\xb4\\xff\\x75\\x49\\xc3\\x3e\\x10\\x25\\xb6\\xb5\\x92\\x04\\x8a\\x8e\\x31\\x96\\x9e\\x81\\x8d\\xcc\\x18\\x8b\\xb1\\x9d\\x7a\\x24\\x40\\xa3\\xba\\xba\\x4e\\xb1\\xb8\\x1c\\x45\\x67\\x9d\\xb4\\x6b\\x31\\xbc\\xde\\x77\\x76\\x75\\x7d\\x99\\x31\\xec\\x20\\x63\\xfc\\x6f\\x1f\\xcd\\x76\\x1e\\xcc\\x57\\xa7\\xd0\\x30\\xa8\\x5e\\xa2\\x73\\xef\\x18\\x25\\xb0\\x50\\x92\\xab\\x96\\x45\\x35\\x9a\\x44\\x4f\\xf7\\xd1\\x66\\xb5\\x75\\xfa\\xc2\\x98\\x30\\x8d\\x9f\\xaa\\x68\\x46\\x3d\\x1d\\x0f\\x7b\\x7d\\xf8\\xa5\\x1c\\x68\\x15\\xd3\\x71\\x59\\xad\\xc0\\xb5\\x93\\x22\\x4a\\x81\\x83\\x21\\xd7\\x21\\x9f\\x09\\x68\\x6c\\xfc\\x95\\x22\\x59\\x71\\x8d\\xfc\"},\n{{0xb5,0x2b,0x24,0x9a,0x7a,0xea,0xe0,0xfb,0xd9,0x4f,0xfc,0xf9,0xa9,0xfd,0xe1,0x0d,0xe6,0x1c,0x3f,0x4c,0xbd,0xa1,0x4b,0x28,0x9f,0xe0,0x1f,0x82,0x70,0x73,0x34,0xca,},{0x73,0x51,0x63,0xbf,0xcf,0xd5,0x4f,0x9d,0x35,0x2e,0x1c,0x2f,0x3c,0x01,0x70,0xc9,0x5c,0x18,0x42,0xcc,0xc7,0x42,0x16,0x23,0xae,0x04,0x96,0x98,0x0c,0xee,0x79,0x1c,},{0x6f,0x48,0xa9,0xf7,0xf0,0xfa,0x19,0x2b,0x66,0xd1,0x21,0x75,0xa3,0x33,0x61,0x23,0x03,0xe1,0x80,0xb9,0xfa,0xb1,0x8e,0xda,0xbe,0xbc,0xdf,0x66,0x74,0xfd,0xfc,0xc5,0x36,0x07,0x08,0x9b,0xf9,0x80,0xce,0x35,0x89,0x4c,0x2f,0x9b,0xab,0xdc,0x44,0x38,0x66,0x7a,0xb3,0x29,0x7a,0x62,0x48,0xec,0x02,0x69,0xfa,0xa9,0x9c,0x72,0x48,0x07,},\"\\x1d\\x44\\x5e\\x8e\\xe3\\x6f\\x6e\\x10\\x64\\xee\\x12\\x81\\xe6\\xb4\\xa4\\xce\\xc5\\x0a\\x91\\xc2\\xb6\\x67\\xc8\\x30\\x5d\\x1e\\x9a\\x5f\\x7b\\x73\\xa3\\x44\\x58\\x82\\x58\\x1f\\xb0\\xc1\\x1e\\x64\\xf6\\xee\\x92\\xe8\\x11\\xf9\\xf2\\xd6\\xc5\\x9c\\x63\\x44\\xbe\\x76\\x91\\xd1\\x16\\xdd\\xa4\\x93\\xca\\xde\\x51\\xc0\\xce\\x77\\x37\\x2b\\x61\\xa7\\xc4\\xfb\\xb6\\x33\\x40\\x13\\x33\\xcb\\xf7\\x13\\x72\\xad\\x2f\\x04\\x4e\\x99\\x2a\\xc0\\x35\\xf5\\x87\\x9c\\x05\\x30\\x04\\xf8\\x22\\x3f\\x23\\x7a\\x24\\xa4\\x09\\xb7\\x89\\x4f\\x6a\\xd5\\x18\\xe0\\x46\\xb8\\xa8\\x4c\\x3f\\x4c\\x62\\x60\\xe6\\x16\\x9f\\xd9\\x44\\xd5\\x7f\\xbc\\xf9\\xba\\x27\\x75\\xf2\\xd6\\x0e\\xd7\\x72\\xc4\\x6c\\xcd\\x63\\xc8\\x50\\xb8\\x0d\\x58\\x7c\\x52\\x08\\xdf\\xb1\\xa2\\x58\\x78\\xc0\\x2d\\xec\\xe3\\xe6\\x02\\xe9\\x63\\x2f\\xc3\\xc2\\xc7\\x9b\\x25\\xab\\x41\\x03\\x4c\\x6e\\x26\\xb8\\x69\\x25\\x53\\x57\\xa6\\x86\\x78\\x1d\\xfe\\x6e\\x64\\x4b\\xeb\\xa9\\xb6\\x27\\xda\\x1f\\xcb\\x5e\\xc0\\xbe\\x49\\x7c\\xf1\\x88\\xe1\\xef\\x1a\\xf0\\x60\\x1b\\xf1\\x6b\\x29\\x11\\xfd\\x9f\\xf3\\x4f\\x0e\\x97\\xac\\x95\\xa7\\xfe\\x2c\\xf9\\x0e\\xa6\\xce\\xd3\\x3c\\xcb\\x0e\\xd1\\xef\\x2d\\x41\\x60\\xef\\xb0\\x7c\\x59\\x1a\\x5c\\xb1\\x6c\\x70\\xca\\x16\\x94\\xfb\\x36\\xf2\\xca\\x19\\xeb\\xa5\\x2b\\xe3\\xd4\\xad\\x89\\x5a\\xbc\\xad\\xa4\\xb3\\x6f\\x02\\x61\\xd6\\x5f\\x59\\xe0\\xcf\\xd2\\xa6\\x14\\x8a\\x88\\x92\\xdd\\xbb\\x45\\x81\\x0d\\xb3\\xbf\\x4a\\x9e\\x26\\xe9\\x2c\\x15\\xea\\x26\\x18\\xcf\\xee\\xb4\\x62\\xd8\\x62\\x8f\\x25\\x4f\\x54\\xd2\\xaf\\x27\\x11\\x3b\\xab\\x4f\\x9a\\x7d\\x06\\x79\\x18\\x11\\x94\\x2b\\xdc\\x32\\xf8\\x45\\x92\\x2d\\x7b\\x2d\\xdb\\xa9\\x59\\x14\\x09\\x28\\xf8\\xc2\\x8d\\x98\\xb4\\x4e\\x1d\\x19\\xb9\\x7f\\xd3\\x9c\\xc0\\xf9\\xa5\\x23\\x6d\\x34\\x9f\\xc8\\x35\\xac\\x49\\x21\\x92\\x46\\x2e\\x40\\xac\\x62\\x9b\\xeb\\xff\\xd2\\xeb\\xa7\\x2d\\x27\\x88\\xb2\\x44\\xbb\\x77\\x7a\\xd0\\xf7\\xb7\\xf9\\x6f\\x23\\x41\\x23\\x99\\xfc\\x1d\\x87\\xa1\\xd0\\x87\\xba\\x08\\x90\\x27\\xea\\xbb\\xc0\\x5e\\xda\\xfe\\xe4\\x33\\x79\\xe8\\x93\\x29\\x13\\x31\\xb4\\x60\\xbf\\xa7\\x33\\x2e\\x08\\x42\\xec\\x25\\x73\\x39\\x3d\\xe9\\x53\\x06\"},\n{{0x78,0x2a,0x93,0xef,0xe0,0xef,0x06,0xcb,0x25,0x34,0x33,0x0e,0xfd,0x0e,0x96,0x84,0xe9,0x96,0x9b,0x52,0x58,0x12,0x3e,0x49,0x02,0x39,0xbf,0x24,0xbf,0x9f,0x65,0x23,},{0x94,0x2f,0xa1,0x40,0x6e,0xe2,0x68,0x3e,0x29,0x37,0x7e,0x49,0xf7,0xba,0x75,0x7c,0xf5,0x0e,0xf0,0x72,0x37,0x07,0xd4,0x40,0x3d,0x28,0x62,0x25,0x70,0x45,0xde,0x87,},{0x93,0xe7,0x40,0x5a,0x40,0x44,0x51,0x01,0x66,0xc8,0xac,0x26,0x4c,0xe3,0xb5,0xba,0x66,0x65,0xd6,0x8b,0xad,0x45,0x87,0x12,0xdc,0x93,0xc2,0xc3,0x90,0x56,0x8d,0x74,0x02,0xef,0x7d,0x57,0xf5,0x49,0xb8,0xa1,0x04,0x2f,0x7f,0x69,0xa6,0x79,0xaa,0x85,0x5f,0x34,0xf8,0x01,0xd5,0x7d,0x79,0x89,0x5d,0xeb,0x8d,0xea,0xdb,0x35,0x23,0x08,},\"\\x46\\xa4\\xe3\\x19\\xa6\\x70\\xac\\x99\\x39\\x94\\xa5\\x33\\x00\\xc3\\xf7\\x91\\x44\\xc2\\xf7\\xfe\\xc1\\x11\\x6e\\xee\\xb3\\x62\\x1c\\x76\\xac\\x35\\xda\\x79\\xdb\\xff\\x6e\\x18\\x9c\\xa9\\xdb\\xfc\\x9a\\xbb\\xda\\x05\\x48\\x47\\xb2\\x97\\x1b\\x02\\xfa\\xce\\xbb\\xe9\\x26\\xd4\\x69\\xeb\\x0a\\x86\\x03\\x89\\xac\\x74\\x41\\x62\\xbf\\x6f\\xb1\\x3b\\x42\\xcb\\x9b\\xb8\\xc9\\xd7\\x26\\x07\\x13\\x8e\\x78\\x00\\x12\\x1e\\xe0\\xcd\\x63\\x3e\\xd5\\x35\\xc7\\xae\\x5f\\x40\\x60\\xbb\\xdd\\x27\\x1c\\x9d\\x11\\x0a\\xbf\\xf5\\xe0\\x60\\xea\\x6e\\xe8\\x38\\x90\\xb1\\xe9\\x2a\\x92\\x56\\xd7\\xb2\\xba\\x98\\x2a\\x31\\x14\\xbb\\x6d\\xef\\xfe\\xe2\\x69\\x6f\\x0a\\x2f\\x9c\\x21\\xaa\\xa5\\xb2\\xde\\xfa\\x11\\xaa\\xb7\\x07\\x6d\\xe6\\xe5\\x7e\\x86\\xf2\\x84\\xbb\\x67\\xf5\\xa4\\x9e\\xe6\\x85\\x92\\x10\\x32\\xc9\\x5b\\x74\\xe7\\xe3\\xea\\xc7\\x23\\xf1\\x75\\xaf\\x08\\x2c\\x85\\x8e\\x0d\\xfa\\x01\\x72\\x8c\\x38\\xfb\\xbb\\x4c\\x83\\x58\\x1f\\x81\\xac\\xe6\\xc6\\x3c\\x6b\\xda\\xac\\x56\\x20\\xeb\\x9a\\x56\\x8e\\x7e\\xbb\\x7b\\x72\\xb3\\xd1\\xa1\\x64\\xef\\x52\\x4e\\x7b\\x9f\\x00\\x79\\x9a\\xb0\\x86\\x71\\x59\\x76\\xc1\\x4d\\x0d\\xf6\\x5f\\x7b\\x96\\xbf\\x9e\\xbc\\xda\\x7f\\xee\\xef\\x11\\x34\\x22\\x00\\x1a\\x03\\xa7\\x63\\x3d\\xf5\\xe4\\x99\\x39\\xa1\\x21\\xdb\\x89\\x9d\\x9b\\x8a\\xc2\\xdb\\x4f\\xad\\x0c\\x30\\xcf\\x0b\\x8b\\xdb\\xc9\\xe9\\x80\\x2a\\x79\\x7c\\x82\\x38\\xe4\\x65\\x11\\xff\\x24\\x06\\x8c\\xad\\xcf\\xf2\\x44\\x8c\\xc0\\xbf\\xf9\\x27\\x69\\x22\\x33\\x48\\xd4\\x5d\\x6b\\x6f\\x2c\\x8f\\x15\\x93\\x38\\x8c\\x0b\\xbb\\xf4\\x4b\\x6d\\xdb\\x50\\xb9\\x8c\\xd7\\xf0\\x9c\\x73\\x0f\\x7d\\xe4\\xd0\\x08\\x15\\x6c\\xb3\\xcd\\xe0\\xca\\xb3\\xad\\x0a\\x58\\xa8\\x39\\x54\\xe2\\x34\\xa0\\xa8\\xa0\\x4b\\x57\\x3c\\x9a\\x8e\\x9b\\x92\\x9e\\xd3\\x8b\\x8b\\x22\\x8b\\xf5\\x5a\\x3c\\x6e\\x2c\\x6b\\x51\\xf6\\x82\\x65\\x2f\\xbb\\x70\\x8e\\x74\\x64\\x0e\\x33\\x13\\xe1\\x7b\\x46\\x94\\xd7\\xfd\\xf0\\x11\\x1f\\x90\\x60\\x8c\\x1b\\x5a\\xf4\\x22\\xdc\\xde\\xca\\xd9\\xdd\\xb7\\xf5\\x0d\\x1b\\xf5\\xbc\\x63\\x78\\xcc\\xaf\\xfc\\x32\\x01\\xe6\\xc7\\x87\\xb4\\x8c\\x44\\x3b\\xa2\\x40\\xd9\\xd5\\x0f\\xf6\\xc0\\xe9\\xdf\\x7f\\x1a\\x5b\"},\n{{0x6f,0xe7,0xbc,0xf7,0xa6,0x84,0x42,0x3d,0xe1,0x07,0x6f,0xd7,0x6d,0xa7,0x83,0x42,0x33,0x73,0xb3,0x81,0x32,0x9e,0xfd,0x61,0x57,0x42,0x4e,0xc4,0xb2,0x65,0x5a,0x94,},{0x77,0x40,0xe9,0x1a,0xfe,0x45,0x32,0x4f,0x8b,0xb9,0x90,0xca,0x2a,0x34,0x12,0x79,0xdd,0xaf,0x23,0x2c,0x3b,0xb4,0x15,0xf1,0x78,0xb6,0x09,0x2f,0xba,0x19,0x5f,0xec,},{0x99,0x14,0xcc,0x50,0xfe,0xf0,0x93,0x5e,0xfb,0x89,0xb3,0xd6,0x4e,0x3c,0x1c,0x34,0x12,0xae,0xd6,0x59,0xb9,0x01,0x66,0x22,0x2c,0x0d,0x13,0xec,0x1c,0xe3,0xa6,0x8a,0xe6,0x28,0x1b,0x7e,0xfd,0x9d,0x4e,0xc6,0x4b,0x82,0xe7,0x3e,0x14,0x47,0x9f,0x03,0xfb,0xac,0x8f,0xa3,0xab,0xdb,0x41,0xea,0x42,0x15,0xc4,0xa4,0xd4,0x94,0x9d,0x09,},\"\\x0b\\xaf\\x0a\\xd4\\x40\\x61\\x2b\\x4c\\x5a\\x13\\x6c\\x3a\\x42\\xbe\\x1c\\xa2\\xb7\\xc3\\x19\\x86\\x2a\\x44\\xa9\\xfd\\x50\\xc4\\xee\\x73\\x54\\x1c\\x5e\\x64\\x57\\xef\\xa8\\x18\\x25\\xb6\\xdd\\x4a\\x72\\x19\\x4a\\x29\\x68\\x68\\x8b\\xd4\\x9e\\x5a\\x8f\\x4c\\x04\\xdb\\xaf\\xc2\\xe7\\x88\\x4c\\x0c\\x70\\xc2\\x08\\xd4\\xe9\\x54\\xcd\\x16\\x75\\xda\\x8e\\x74\\xc6\\x5c\\x49\\x7c\\xf9\\xdc\\x69\\x42\\x49\\x65\\xbd\\xcb\\xa5\\xde\\x52\\x93\\x6f\\x92\\x5f\\x62\\xe2\\x01\\xf9\\x95\\x05\\xd3\\x77\\x7b\\xeb\\x3c\\x2e\\x08\\xb2\\xec\\x9a\\x87\\x3e\\x5a\\x9c\\x21\\xfb\\x4a\\x2f\\x3e\\x86\\x1f\\x3c\\xf4\\xd6\\xb5\\xdc\\xd1\\xc8\\x8b\\xcd\\x91\\x63\\x53\\x9a\\xc6\\x2c\\xd0\\x65\\x9f\\x4e\\xf2\\x32\\xc2\\xce\\x57\\xfc\\x77\\xf9\\x02\\x85\\xeb\\x35\\x01\\x69\\xed\\xc6\\xa8\\x06\\xff\\x50\\xf6\\x1c\\x7e\\x0b\\xee\\xeb\\xec\\xec\\x63\\xbf\\xc9\\xd3\\x98\\x3f\\x5b\\xb4\\xb2\\x61\\xc7\\x46\\x47\\x1f\\xcb\\xf2\\x89\\x2c\\x61\\x08\\x97\\x0b\\x68\\xdb\\x5e\\x43\\xc4\\x50\\x4d\\xda\\xe2\\xd0\\xff\\xff\\xa2\\x8b\\x67\\x59\\xae\\x11\\x28\\xe1\\x6f\\x66\\xd4\\x92\\xad\\x61\\xe3\\x72\\x2c\\x96\\x0f\\x88\\x69\\x2b\\xe8\\x1a\\x9f\\x41\\x28\\x90\\xff\\xa3\\x46\\xe7\\x02\\xc8\\x67\\xdf\\xa2\\x59\\x70\\x3b\\x73\\xf5\\x25\\x07\\x4f\\x32\\x27\\xc4\\x9c\\xec\\x1b\\x64\\x5a\\x10\\x3b\\xd4\\x47\\x1f\\x33\\xf9\\xf1\\xba\\xc3\\x27\\xd7\\x91\\x78\\x61\\xd0\\xad\\x91\\xab\\xee\\x60\\x22\\x2e\\xa2\\xa3\\xc8\\xca\\xc0\\x52\\xae\\x9a\\x2c\\xbd\\x90\\x85\\x5d\\x73\\x3d\\x53\\x19\\x13\\x3f\\x95\\x41\\xbd\\x0b\\x61\\xf0\\x99\\x52\\x68\\x35\\x1e\\x28\\x63\\xc1\\xca\\x2c\\xa5\\x1e\\x3c\\x97\\x63\\x83\\xf5\\xc4\\xc1\\x1f\\xf4\\x10\\x03\\x6f\\xd5\\x1d\\x5a\\xc5\\x6b\\x02\\x3c\\xe9\\x02\\x9c\\x62\\x0f\\x22\\x55\\x70\\x19\\xad\\x9b\\x42\\x64\\xed\\x4d\\x71\\xb4\\x34\\xf4\\xa4\\xd1\\x7a\\x7d\\x57\\x69\\xfa\\x1e\\x14\\xa6\\x9f\\x7a\\xe4\\x19\\xcc\\xf5\\x94\\x7f\\x8c\\x76\\x82\\x69\\x71\\x16\\xc2\\x40\\x5f\\x5a\\x19\\x59\\xc5\\x4b\\x48\\xf0\\x87\\x2f\\x59\\x6e\\xd4\\x59\\x64\\x48\\x8d\\xde\\xc1\\x2b\\xdb\\x63\\x6d\\x0b\\x34\\x9e\\x74\\x9e\\xb6\\x60\\x92\\xff\\x45\\x11\\xfb\\xa5\\x9b\\x59\\x62\\xcb\\x93\\xcc\\x85\\x51\\x5c\\xc8\\x6a\\xb0\\xc6\\xb2\"},\n{{0xdd,0xa4,0x8a,0x0d,0x15,0xa2,0x9e,0xba,0x9a,0x76,0x30,0x5d,0x36,0x0e,0x46,0x6e,0x72,0xd8,0x04,0x0e,0xfe,0x2e,0x89,0xc0,0x4b,0x64,0x61,0x31,0x5a,0x9b,0x8b,0xf4,},{0x4f,0x5c,0xc3,0x6a,0x80,0x94,0x16,0xb5,0x8e,0x15,0xd2,0x4c,0xc5,0x79,0x68,0xcb,0x57,0x3b,0x76,0xad,0x90,0x88,0x7a,0x8e,0xf3,0x6c,0xde,0x7e,0xca,0x40,0x0f,0xcc,},{0xce,0x71,0xbc,0x82,0xd5,0x31,0xd0,0xf9,0x3b,0x57,0xbf,0xdc,0x2f,0x73,0x16,0xcf,0x40,0x4e,0xe0,0x9a,0xf8,0x8f,0x33,0xbf,0x80,0x6c,0x7c,0xad,0x6b,0x8f,0xfa,0x36,0x62,0x36,0xba,0x74,0xe7,0x5c,0x15,0x09,0x6d,0xda,0xa6,0xe3,0xa6,0x2a,0x8f,0x5e,0xb1,0xc8,0xc3,0xf6,0xb6,0xc9,0x4a,0x6a,0x34,0x9f,0xc7,0xc0,0xcb,0xfb,0x19,0x0d,},\"\\xf5\\xac\\x19\\xb8\\x1f\\x21\\x11\\xa0\\xdb\\x0a\\xe3\\x0d\\x15\\x13\\xed\\x34\\x3e\\x7f\\x57\\xf7\\xf7\\x7d\\x65\\xb8\\xac\\x7c\\xe3\\xa6\\x01\\x17\\x4b\\xae\\xd9\\xbf\\xa1\\x36\\x03\\x59\\x76\\xf5\\x16\\xd5\\xa8\\x70\\xf4\\x5d\\xb1\\x91\\x9f\\x1e\\xb1\\xcb\\xec\\xbe\\x88\\xec\\x32\\xd1\\x91\\xe9\\x24\\x88\\x21\\xa7\\xe7\\x68\\x1f\\xe3\\xab\\xec\\x11\\x58\\x4b\\xdb\\x33\\xde\\x1b\\x4c\\xa9\\x48\\x91\\xeb\\x66\\xdc\\xb8\\x53\\x9a\\xc4\\x11\\x63\\x73\\x6c\\xcf\\xd6\\x9a\\xbb\\x83\\x81\\x4d\\xd3\\x8c\\xd6\\x03\\x81\\x31\\x87\\x28\\x05\\x2a\\x25\\xcb\\x66\\x54\\x71\\x05\\x86\\x50\\xcc\\xc7\\x57\\x56\\xdb\\xee\\x68\\x8a\\xb8\\x26\\xec\\xad\\x4a\\xd5\\xa7\\xdb\\x57\\xe8\\xf6\\x5f\\x1b\\x64\\xab\\xff\\x82\\xdd\\x53\\x33\\x4b\\x79\\x7a\\xc4\\x02\\x28\\xdd\\x81\\x7f\\x23\\x9d\\x3e\\xe8\\x04\\xa1\\x9a\\xea\\xc8\\xcf\\xe3\\x3e\\xb6\\x57\\xec\\x9c\\xe9\\x23\\xd6\\xb3\\x88\\x91\\x4c\\xfb\\xa2\\xe7\\x2b\\xfc\\x2b\\xc3\\xd6\\xf9\\x85\\xc0\\xd9\\x75\\x34\\xdb\\x95\\x8e\\xed\\xe5\\x7b\\x16\\x49\\x1f\\xfb\\x75\\x5c\\x1a\\x58\\xd7\\x8a\\xb3\\x77\\xfa\\xec\\x0d\\x31\\x18\\x18\\xe8\\x99\\x26\\x0e\\x3e\\xbd\\x1c\\xcd\\x29\\x24\\x6f\\xa8\\x2d\\x0b\\x76\\x62\\x2b\\x2c\\x4b\\xc5\\x2f\\x54\\x9f\\xee\\x72\\xa3\\x0f\\x55\\x4f\\x33\\x1f\\x36\\xd2\\xa7\\x4d\\x99\\x9e\\xc1\\x0a\\x08\\x29\\x4f\\x00\\x2b\\x43\\x61\\xe5\\x90\\x27\\x9c\\x2f\\xb1\\xbd\\xa4\\x31\\x2c\\xcb\\x24\\xd7\\x52\\x82\\xce\\x7c\\x06\\x1a\\x0c\\xa5\\x52\\x0c\\x74\\xf6\\xf6\\x33\\x3b\\x18\\xc4\\xb5\\x41\\xcb\\x6c\\x51\\xe0\\x15\\x75\\xba\\x80\\x51\\x2f\\xfa\\x7c\\xe0\\xac\\xcd\\x22\\xd1\\x40\\x27\\xc5\\x3a\\xba\\x1f\\x74\\x37\\x83\\x5f\\x11\\x14\\xd6\\x8e\\x3a\\xcf\\x3f\\xf8\\xde\\x94\\xc8\\xe4\\xef\\x6d\\x3a\\xb3\\x12\\xc9\\x1d\\x02\\x97\\x01\\x57\\x50\\x8f\\x54\\xa5\\x81\\x6f\\x46\\x7a\\x21\\x4e\\x9b\\x12\\x84\\x30\\x02\\x89\\xe6\\x5f\\x36\\x5a\\x61\\x0a\\x8e\\xa2\\x84\\x66\\x6c\\xfe\\x55\\x18\\xe4\\x35\\xbc\\xcd\\x21\\x62\\x75\\x01\\xc7\\x25\\xf0\\xb8\\xeb\\x57\\x25\\xe0\\xe0\\x6e\\x0c\\xef\\x5d\\xb2\\x01\\xb4\\x8e\\xc9\\x1e\\xbf\\x87\\x8d\\xd5\\x7c\\xe8\\xda\\xc7\\x33\\x48\\x48\\xa1\\xbc\\x82\\xc1\\x8b\\x06\\x59\\x55\\xe4\\xf5\\x9b\\xe3\\x39\\x85\\x94\\xdc\"},\n{{0xec,0x57,0xb9,0x41,0xad,0xf3,0xca,0x13,0xe7,0x7a,0x78,0x05,0x77,0xcf,0xd0,0xdf,0x5b,0x49,0xed,0xc8,0x53,0x51,0x05,0x2d,0xa3,0x4e,0x99,0xf8,0xa9,0xbf,0x32,0x08,},{0x28,0x59,0xc0,0x71,0x97,0x8a,0x04,0xb7,0xf5,0x40,0x7b,0x6d,0x22,0x40,0x1a,0x78,0xef,0xd0,0x39,0x4b,0xb9,0x66,0xb9,0xa0,0x4d,0xa6,0xb5,0xef,0x81,0x9d,0xe3,0xfa,},{0x11,0x8e,0x14,0x62,0x12,0x6b,0x45,0xb8,0xc6,0x80,0x35,0x23,0x75,0x5c,0x56,0xdf,0xc4,0xe1,0x23,0xe4,0xac,0xbb,0x66,0xba,0x0b,0xa6,0xfe,0x3e,0x05,0x3d,0xa4,0x11,0x9f,0x57,0x19,0x29,0x5e,0x0c,0x82,0xac,0x64,0xd7,0xc5,0xcb,0x1a,0xc8,0x98,0xdf,0x26,0x3d,0xdf,0xd3,0x60,0xf3,0x00,0x8d,0x91,0x01,0x8b,0x26,0xf6,0xa1,0x73,0x0a,},\"\\xd2\\xbc\\xbd\\x1b\\xc3\\x61\\xab\\x32\\xc6\\x6d\\x72\\xfd\\x48\\xa8\\xe2\\x27\\xdc\\x6b\\x8d\\x6b\\x15\\x08\\x48\\xba\\x71\\x5f\\xf4\\x7d\\xd3\\x5c\\x8e\\x49\\x38\\x1b\\xb4\\xe2\\x93\\x3f\\x42\\xcd\\x26\\xb7\\x5b\\x14\\xd9\\xc0\\x03\\x92\\x82\\xb6\\x2b\\x85\\x56\\xaa\\xa1\\x1c\\xd6\\x91\\xe8\\x28\\x38\\x2b\\xe3\\x06\\x88\\x9f\\xc9\\x20\\x51\\x37\\xb1\\x69\\xd3\\xbf\\x17\\xb7\\xf3\\x76\\x93\\xfc\\xe2\\x86\\x03\\x9f\\x03\\x80\\x9d\\x7d\\x9d\\x98\\xc8\\xfd\\xe4\\x6f\\x11\\x01\\x94\\x2a\\x27\\x9c\\x51\\x67\\x06\\xf5\\x01\\x91\\xa9\\x11\\x2f\\x6a\\x24\\x63\\x0e\\x1a\\x26\\xc3\\x21\\xe4\\x6c\\x9c\\xcc\\x85\\xb6\\xef\\x94\\x2f\\x35\\x3a\\x64\\x2b\\x9e\\x7e\\xf9\\x98\\xc0\\xfc\\xe2\\xd3\\xa7\\x5b\\x99\\x9e\\xeb\\x77\\xf3\\x1f\\x9b\\x08\\x13\\xa9\\x7e\\x30\\x14\\xc3\\xa8\\x6e\\x25\\x58\\x73\\x46\\x21\\xa3\\x06\\x6d\\xae\\x35\\x84\\x50\\x31\\xe3\\x56\\x65\\xf1\\x92\\x29\\x07\\xdb\\xb7\\x39\\x78\\x6a\\x8b\\x76\\x58\\xab\\x60\\x27\\x6f\\x2d\\x92\\x1d\\x1a\\x51\\x23\\x0f\\xc7\\x4d\\x19\\xe8\\x01\\x84\\xa4\\xf1\\x0e\\x9e\\x83\\x4a\\xbc\\x9a\\x36\\xc4\\x29\\x72\\x6b\\xc0\\x55\\xdc\\x8c\\x06\\x3f\\x0e\\xca\\x9c\\x61\\xa8\\xa9\\x70\\xbd\\x4b\\xb5\\xf4\\x24\\xee\\x4d\\x04\\xbf\\xc2\\x95\\xe3\\xbb\\x1f\\x34\\xbe\\xcb\\xd9\\x92\\x0f\\xe2\\xe7\\x7f\\xcf\\x36\\x76\\x3f\\x32\\xfc\\x9c\\xfd\\x5e\\x46\\x59\\x79\\xc1\\x67\\xca\\xbf\\x5a\\x12\\x44\\xb4\\x91\\xfc\\x06\\xb8\\x94\\x64\\x19\\x04\\x6b\\xa5\\x16\\xc5\\xb2\\x33\\xc4\\x14\\xdd\\xef\\xb6\\xda\\x04\\xf2\\xe1\\x3d\\xaf\\xf7\\xa9\\xa0\\xc0\\x2a\\x51\\x8e\\xde\\x57\\xad\\x95\\x21\\xde\\x64\\xed\\xdf\\x6f\\x49\\xa9\\x67\\x0f\\x63\\x2d\\x3f\\x7d\\x42\\x42\\x52\\x07\\xd0\\x53\\x60\\x4f\\xe3\\x9d\\x13\\xb9\\xf5\\x2c\\x8b\\xc2\\x92\\xb0\\x07\\x6e\\xa4\\x2a\\x56\\x00\\x56\\xdf\\x25\\xde\\x51\\xad\\x35\\x88\\x1d\\x08\\x54\\x32\\x24\\xd7\\xfa\\x5d\\x70\\xb8\\x60\\x3e\\xf2\\x3c\\xe0\\x63\\x39\\xd6\\xcd\\x09\\xe2\\x2a\\x95\\x74\\x9e\\x50\\xdf\\xbd\\x3b\\x8a\\xd6\\x9f\\xd3\\x04\\x96\\xb9\\x84\\xd1\\xc0\\xa1\\x99\\xc8\\x59\\x48\\x05\\xf3\\x8b\\xa4\\x46\\x31\\xa2\\xc5\\x9e\\xad\\xc6\\x55\\x4d\\x19\\xf9\\xbc\\x98\\x36\\x6d\\xfd\\xec\\x2a\\x12\\x1d\\x0e\\x48\\x14\\xd2\\xcd\\x3f\\x58\\x71\"},\n{{0xcb,0xfd,0x91,0xd7,0x69,0x5c,0x1f,0x27,0x0f,0x69,0x24,0x6a,0xb3,0xdf,0x90,0xed,0xb2,0x14,0x01,0x10,0x1c,0xa7,0xf8,0xf2,0x6c,0x6d,0x00,0xf4,0xdc,0xb7,0x23,0x3e,},{0x51,0x38,0x79,0xcf,0x79,0xd2,0xf4,0x6d,0xf4,0xb8,0x5a,0x5c,0x09,0x49,0xeb,0x21,0x16,0xab,0xf9,0x81,0x73,0x5a,0x30,0x31,0x64,0xcb,0xd8,0x5a,0xdf,0x20,0xb7,0x52,},{0xf3,0x36,0x13,0x7d,0xfe,0x6f,0x42,0xa6,0x66,0x9b,0x55,0xf7,0x4b,0x80,0xb3,0x03,0x5a,0x04,0x03,0x67,0xf9,0x06,0x56,0xfc,0xef,0x0a,0x64,0x4c,0x52,0x27,0x2d,0xdc,0x39,0x27,0x3c,0xd7,0x72,0x60,0x10,0xeb,0xcd,0x8a,0x30,0xa0,0x52,0x01,0xab,0x70,0xb8,0xff,0x97,0xd0,0x28,0x8a,0x2c,0xb9,0x4c,0xbc,0x49,0x02,0x06,0x47,0x39,0x0b,},\"\\x26\\x4a\\x93\\x3f\\x7d\\x0a\\xec\\xba\\xc1\\x3e\\xef\\x64\\x4b\\x0b\\x53\\xdd\\x53\\xa1\\x28\\x09\\x04\\x10\\x0d\\xbc\\x1a\\xb8\\x7b\\x51\\x14\\x89\\x98\\xf9\\xda\\x0b\\x3a\\x0a\\x63\\x37\\xf5\\xe3\\x48\\x6c\\x2b\\x7e\\x54\\x8d\\x21\\x12\\x59\\x39\\x7a\\xaa\\x19\\x4e\\xe4\\x69\\x5b\\xf9\\x8c\\x2d\\x5f\\x44\\x87\\x69\\x9f\\x73\\x97\\xe5\\xd3\\xa7\\xe6\\xd5\\xf6\\x28\\xfb\\xd0\\x54\\x97\\xc5\\x56\\xa5\\x0a\\x4d\\x05\\xe2\\xb7\\x12\\xcd\\xbc\\x35\\x10\\x68\\xe4\\x2a\\xf1\\x95\\x38\\x90\\x1b\\x88\\x25\\x31\\x0e\\x34\\x3e\\x1a\\x17\\xa1\\x86\\x7d\\xde\\x0e\\xb4\\x7d\\xda\\xb4\\x56\\xd3\\x16\\xf3\\x52\\x15\\x54\\x93\\x7b\\xf8\\x08\\xae\\x4e\\x4b\\xc1\\xc3\\xc5\\xb4\\x75\\x6e\\x4a\\x16\\x5a\\xd9\\xe8\\x82\\x7f\\x53\\x16\\xf7\\x48\\xca\\xc6\\x99\\x8e\\xd2\\xd2\\x10\\x4f\\x26\\x84\\x07\\xc1\\x35\\xe6\\x2f\\x26\\xa9\\x22\\x46\\x0e\\xab\\x6d\\x85\\x16\\x39\\xa0\\x0e\\x5f\\x08\\xb3\\x47\\x65\\xea\\x02\\x44\\xf4\\x75\\xbb\\xfe\\xac\\x18\\x3e\\x3b\\x5b\\xd1\\xaa\\xb7\\x98\\x52\\x27\\x98\\xa0\\x8e\\xc6\\xbf\\x22\\x57\\xd4\\x69\\x2f\\x5b\\x03\\xcd\\xd0\\xa2\\x13\\x3d\\xe9\\x70\\x60\\x3e\\x32\\x51\\x47\\x5a\\xad\\x8d\\x93\\x4a\\xf6\\xb2\\xbf\\xc7\\xa6\\x50\\xb9\\x1b\\xde\\xc1\\x43\\xf8\\xad\\x25\\x4c\\xfa\\x50\\x6b\\xbf\\xf2\\x8a\\x03\\xbe\\xb6\\x59\\xef\\x5e\\x5d\\xdf\\xfe\\x76\\xe2\\x32\\x30\\xc4\\xcc\\xd4\\x63\\x10\\xb3\\x7d\\xd9\\x1f\\xa6\\xaa\\x68\\x16\\x7f\\x62\\xa5\\x5c\\x8a\\x69\\xf9\\xed\\x1e\\xc6\\xcd\\xb1\\x44\\xdd\\x81\\xab\\x0b\\xcb\\xd6\\x26\\x43\\x42\\x0b\\xca\\xe6\\x78\\x69\\xf6\\x4c\\x0b\\x16\\x9f\\x3c\\xdf\\x3c\\x90\\x58\\x95\\xb7\\xd3\\x5b\\x6f\\xaf\\xda\\x25\\xcc\\xf2\\x3c\\x3d\\x10\\xde\\x32\\xe7\\xf2\\x71\\xe3\\x00\\xd3\\x95\\x97\\xda\\x8f\\x84\\x37\\x22\\xef\\x08\\x36\\x4a\\x5f\\x7a\\x10\\x5b\\x96\\x55\\x17\\x2d\\xf7\\xc8\\x2d\\x73\\x74\\xf9\\x82\\x64\\xc9\\xcd\\xcc\\xb4\\x96\\xf2\\xe1\\x0f\\xd8\\x26\\x2f\\xb1\\xa9\\xa9\\x96\\x5b\\x0b\\x84\\x1a\\xc0\\xd0\\xe9\\xc1\\xa3\\xd9\\x49\\x3e\\xa7\\xaa\\x60\\x02\\x05\\xb8\\xf9\\x00\\xbe\\x0d\\x7a\\xbb\\x4d\\x98\\xa0\\x65\\x83\\xd2\\x29\\x5c\\x27\\x63\\x18\\xbe\\x28\\xd4\\x21\\x98\\x2d\\xed\\xd5\\xbf\\xc3\\x3b\\x88\\x65\\xd9\\x4e\\xf7\\x47\\xd6\\x26\\xaf\\x99\"},\n{{0x51,0xa4,0x19,0x7a,0xb7,0x68,0x6f,0x82,0xf6,0x00,0x3a,0x0c,0x32,0xf3,0x9d,0x0f,0x2e,0x47,0x55,0x5f,0x4e,0x9f,0x8d,0xee,0xe7,0x5b,0xcb,0x1b,0xd1,0xef,0x69,0xe5,},{0x06,0x38,0x6d,0xf8,0x6b,0x61,0xf1,0xf8,0xf4,0xdc,0x45,0xb7,0x3e,0xda,0xa8,0x41,0x92,0x09,0x68,0xbb,0xd1,0x31,0xcc,0x5c,0xa1,0xc5,0x29,0x4e,0xee,0xd5,0xc8,0xba,},{0x2c,0x07,0x29,0x69,0xff,0x47,0x19,0x21,0x2a,0x12,0x19,0x38,0xb5,0x06,0xc6,0x02,0x99,0x5b,0x4d,0x02,0xa2,0x2e,0x61,0x98,0xd6,0xe8,0x7d,0xd6,0xae,0x07,0x62,0x25,0xac,0x70,0xbb,0x25,0xef,0x8c,0x0e,0xe8,0x1e,0xb6,0xfe,0x95,0x3d,0xf6,0xb1,0x81,0x59,0x49,0xe8,0xed,0x05,0x06,0xcb,0x01,0x2e,0x87,0x3c,0xd3,0x6c,0xd0,0x9b,0x0a,},\"\\x2a\\xed\\xb7\\xe8\\x2f\\x1f\\xe4\\xce\\x46\\x9a\\xda\\x48\\x34\\x5d\\x00\\x6d\\x1b\\x3b\\xff\\x40\\xeb\\x21\\x86\\x7f\\x51\\xfc\\xe9\\x65\\x64\\x0c\\x40\\x9e\\xc1\\x3a\\xd4\\xd5\\x2f\\x89\\x1b\\xd7\\x90\\x66\\xd6\\xb4\\xd9\\x44\\xca\\x86\\x8d\\x89\\x86\\xd2\\x42\\xb5\\x7e\\xcc\\xc4\\xc4\\xa4\\x88\\x29\\x1b\\x15\\x9c\\x8d\\xe4\\x39\\x2b\\xe4\\xb8\\x6f\\xeb\\xaa\\x75\\xea\\xc5\\xd2\\x2d\\x3c\\x4f\\x8d\\x6b\\xef\\x79\\xad\\xb9\\xb9\\x2b\\x49\\x14\\xd5\\xea\\x07\\xc7\\xf0\\x21\\xe2\\xc2\\x9f\\x58\\xd0\\x7b\\xe8\\xa0\\x84\\x10\\x0b\\xc1\\x52\\xd5\\x1c\\xa8\\x97\\xd7\\xc1\\x31\\x64\\x4d\\x08\\x95\\x32\\x2e\\x94\\x40\\xa8\\x33\\x9e\\x1a\\xa3\\x90\\xa7\\xf4\\xfc\\xb5\\x1d\\xdf\\xb6\\xdf\\x48\\xaa\\xf5\\x67\\x63\\x37\\xd8\\x7d\\xdd\\x85\\xb1\\xd9\\x25\\xe1\\xa9\\xc2\\x9f\\xe0\\x81\\x8f\\x51\\x4e\\xf7\\x2f\\x74\\x7a\\x67\\x49\\x46\\x47\\x69\\x07\\xa7\\xca\\x99\\xe9\\xdb\\x8d\\x20\\x96\\x41\\x05\\x7a\\x7f\\x44\\xa3\\x17\\xb9\\x09\\x74\\xbc\\x86\\xf9\\x61\\x7a\\x96\\x8a\\x76\\xa6\\xb8\\x38\\x7c\\xf5\\x85\\x3e\\x60\\x81\\x90\\xc1\\xa7\\x9f\\x1e\\x1d\\x68\\x6e\\x0d\\xe2\\x2d\\xb6\\xcd\\x9a\\xeb\\x85\\x32\\xc5\\xc8\\x5c\\xc9\\x0b\\x5a\\x01\\x85\\x79\\xf2\\x8e\\x50\\x2a\\x77\\x0a\\x4e\\xc6\\x75\\x26\\x3d\\x0d\\xd7\\x81\\xb4\\xfa\\x53\\xc9\\xdb\\xf8\\x09\\x8d\\x57\\xb3\\x3a\\xe2\\xaf\\xba\\xeb\\x3e\\x68\\x26\\x6a\\xd9\\xaa\\xb7\\x17\\x4b\\xa6\\x8c\\x64\\x79\\x88\\x39\\x92\\x67\\x0c\\xcf\\x3e\\x5a\\xc6\\xa1\\x7e\\x65\\xe3\\x1e\\x1f\\xdc\\x85\\xe2\\x69\\xc8\\x09\\x35\\xef\\x57\\x4f\\x20\\xd2\\x39\\x56\\x84\\x86\\xe7\\xd9\\x4a\\x4f\\x72\\x4a\\xb7\\x00\\x60\\x98\\xb2\\x4f\\x3f\\x61\\x58\\x76\\x91\\x43\\x5c\\x7f\\x29\\xce\\x4e\\x5c\\xa7\\x1b\\x2b\\x18\\x74\\x55\\x64\\x33\\xa3\\x58\\xc8\\xc5\\xef\\x3c\\x88\\x08\\x43\\x03\\x0c\\x2d\\x13\\xd5\\x1b\\x78\\xc9\\xbf\\x1a\\x88\\x24\\xe6\\x2e\\x11\\x18\\x44\\x39\\x6f\\x5a\\xf2\\xe2\\x5c\\x31\\x26\\xef\\x36\\x26\\xe2\\x6e\\xfa\\xfa\\xcf\\x99\\x83\\x0a\\xa4\\x12\\x12\\x33\\x2f\\x37\\x8a\\x16\\x72\\x33\\xa0\\xb4\\x22\\x13\\xaf\\xe3\\x6d\\x83\\xdc\\x45\\x82\\xa7\\x96\\x93\\xb9\\xd5\\x71\\xa5\\x77\\x12\\xa0\\x8b\\x85\\x66\\xd3\\x61\\xac\\x90\\x26\\x47\\xaf\\xc8\\x86\\x60\\x3e\\x24\\x28\\x3e\\xfb\"},\n{{0xb1,0x11,0x9c,0x36,0x11,0x8b,0x7a,0x06,0x5a,0x19,0x5b,0xfb,0x8b,0x79,0xa5,0xc2,0x87,0xe0,0x9b,0xd2,0x87,0xc2,0xda,0xac,0x5e,0x6b,0x01,0x16,0x4c,0x5d,0x73,0x7f,},{0x88,0xf2,0x18,0xec,0xba,0x99,0xe7,0x70,0xed,0x21,0x4a,0x8d,0x01,0xa9,0x2a,0x10,0x40,0x0a,0xca,0xf1,0xf6,0xee,0xd4,0x20,0x06,0x7e,0x13,0x6e,0xe2,0xc0,0xc6,0x70,},{0x24,0xec,0x1e,0x54,0xfc,0x7e,0x72,0x2d,0x37,0x55,0x1d,0x02,0xcf,0x13,0x5d,0x33,0xf5,0xd3,0xff,0x53,0x57,0x73,0xe0,0x29,0x91,0xee,0x85,0xff,0xd3,0xaa,0x29,0x99,0x7f,0x9c,0x46,0x44,0x70,0x19,0x7f,0xee,0x81,0xdc,0xe1,0x10,0x60,0x9f,0x87,0x0b,0x27,0xc1,0x8d,0xfb,0xcf,0xd9,0x32,0x05,0x48,0x52,0x5e,0x93,0x14,0x8e,0x22,0x05,},\"\\x88\\x16\\xb1\\xeb\\x20\\x6d\\x5f\\x6d\\xcc\\x2e\\x4c\\xc3\\x91\\xd2\\x32\\x09\\x00\\x6d\\xe9\\x35\\xe3\\x18\\x15\\x2e\\x93\\xfc\\x8c\\x2c\\xf0\\x8e\\x26\\x43\\x2b\\xad\\x9a\\xdb\\x32\\x03\\xd8\\x98\\xdf\\x0a\\x2e\\x7f\\x1f\\x83\\xdc\\x2f\\x3e\\xd3\\x20\\x5b\\xec\\x8e\\xfc\\xfd\\x31\\xad\\xc1\\xac\\xa5\\x75\\x5d\\xb9\\xbd\\x4e\\xfe\\x54\\xcc\\x17\\x07\\x30\\x77\\xde\\x4a\\x3f\\xdd\\x11\\x99\\x6e\\x84\\xb6\\xa0\\x52\\xf0\\x34\\xb4\\x10\\x99\\x22\\x6c\\x9c\\x27\\x2e\\xae\\x12\\x52\\x8f\\x16\\x58\\x1b\\x91\\xb8\\x12\\x85\\x0c\\x20\\x71\\x44\\xdb\\xff\\x3e\\x85\\x0c\\xca\\x84\\x8e\\xc2\\xb1\\xdd\\x16\\x47\\x44\\xd7\\xb5\\x93\\x37\\xd7\\xe3\\xef\\xef\\x00\\x81\\x62\\xe6\\x80\\xbd\\x4a\\x08\\x99\\xce\\xd6\\x0b\\x17\\x1f\\x8c\\xbe\\xb4\\x8c\\x51\\x58\\xdf\\x6c\\xbf\\xdb\\x26\\x24\\x08\\x81\\xbd\\x58\\xeb\\xb8\\xb6\\xa0\\x79\\x58\\x72\\x79\\x67\\x9c\\xb5\\xad\\x82\\xf3\\x71\\xb5\\x3c\\x80\\x13\\x80\\x4c\\x35\\x59\\x6c\\x88\\x7e\\x43\\x6d\\x23\\x92\\x6f\\x99\\x4e\\x09\\xd9\\x8f\\xbb\\x8c\\xe2\\x70\\x41\\x74\\xef\\x38\\xb6\\x82\\x62\\xa7\\xf1\\xa7\\x12\\xda\\x0e\\xf0\\xde\\xc6\\x39\\x60\\x68\\x14\\xb3\\xbd\\xca\\xf2\\x53\\xff\\x31\\xc4\\x8e\\x8a\\x75\\x2c\\x11\\x1b\\xd7\\x10\\x10\\x31\\xcc\\x3d\\x38\\xef\\xb0\\xc9\\xc7\\xf1\\x9c\\x59\\x08\\x15\\x84\\xa0\\xe0\\x15\\xee\\x7c\\x75\\xb1\\x0a\\x4c\\x51\\xff\\x54\\x3a\\x30\\xe5\\x2d\\x5f\\x94\\xd8\\x18\\x8c\\x6b\\x08\\xe9\\xdf\\x1e\\x84\\xa4\\xe2\\xc8\\x07\\x17\\x0a\\xc1\\x24\\xa7\\x71\\xb9\\x94\\x65\\xa0\\xd3\\x8b\\x1f\\x1c\\x63\\x30\\x40\\x3c\\x82\\x54\\x35\\x82\\xc5\\xbb\\x61\\xb2\\x20\\xde\\x1b\\x9e\\x0e\\xf6\\x9b\\xda\\xe2\\x60\\x23\\x18\\x1b\\xa4\\xcc\\x07\\x7a\\x5f\\x0d\\x42\\x57\\x32\\xac\\xe1\\x32\\xae\\x0c\\x6f\\xf0\\xbb\\x18\\xba\\xea\\x83\\xe8\\x87\\x7a\\xfb\\xe6\\x50\\xfe\\x0b\\xd0\\x20\\x93\\xf0\\x0a\\x7b\\x53\\x65\\x72\\x8d\\xcb\\x66\\xfb\\xb8\\x81\\xf5\\x92\\x94\\x50\\x58\\xa5\\xb3\\x50\\x66\\x5a\\xf9\\x1c\\x55\\x7a\\x54\\x72\\x50\\xad\\x29\\x5e\\x68\\xb4\\xfb\\x72\\x45\\x7c\\xfb\\x9d\\x5e\\xa1\\xa7\\xb2\\xa3\\x9c\\x9a\\xb7\\xd7\\xac\\xe0\\xaf\\x5d\\x51\\x66\\x9c\\xb6\\xc2\\xc4\\xc0\\x7b\\x22\\x56\\xd1\\x0e\\x5f\\xfc\\x6b\\x97\\xc6\\x60\\x00\\x63\\x13\\xc4\\xeb\\x8d\"},\n{{0xcb,0xb5,0x87,0x51,0x4e,0x0a,0x34,0xff,0xc3,0x4c,0xbc,0x04,0xf2,0x8c,0x9b,0x4f,0x64,0x65,0xf1,0xeb,0x22,0x5c,0xca,0x19,0xb8,0x64,0x87,0x6d,0xae,0xf3,0x7d,0x7f,},{0x6b,0x70,0x5d,0x46,0x77,0xd2,0xd8,0x49,0xb6,0x74,0x4b,0x1e,0xbe,0xd1,0x67,0xdb,0xcb,0xf6,0x45,0x92,0x4b,0x1f,0xf2,0xe6,0x36,0x07,0x94,0xbd,0xd0,0xe0,0x97,0x88,},{0x12,0x74,0xd6,0xf3,0x56,0xeb,0x64,0x14,0x72,0xb6,0xb9,0xe5,0xb3,0xce,0x65,0xd2,0x65,0x4e,0x6c,0xb8,0x7d,0x3a,0x83,0xfb,0x49,0xd0,0xf7,0xda,0x9c,0x44,0xbe,0x2b,0x53,0x26,0x04,0x46,0x5f,0x60,0x89,0xd6,0x80,0xd2,0xd9,0x4b,0x0e,0xdd,0x2b,0x6b,0x2b,0x80,0x5c,0x5e,0x84,0xc3,0x79,0xef,0xc0,0x59,0x67,0x3d,0x31,0x00,0x7a,0x09,},\"\\xbd\\xf7\\xd1\\x7c\\x70\\x67\\x96\\xef\\xd3\\x48\\x95\\x59\\xb5\\x27\\xb1\\xc0\\x58\\x4b\\x90\\x22\\xc9\\xcb\\xda\\x3a\\xac\\x51\\x46\\xda\\x34\\x0d\\x9c\\xea\\x69\\xf9\\x16\\x03\\x7c\\xd2\\x1b\\x3e\\xb1\\x10\\x43\\x48\\x88\\x0f\\xd5\\xc5\\xb7\\xc6\\x5f\\xf8\\x20\\xf7\\x49\\x93\\x46\\x01\\x69\\x51\\xcb\\x71\\x5d\\x8d\\xf2\\xb4\\x1c\\x88\\xcd\\x3c\\x66\\x10\\x54\\x58\\xb7\\xb5\\x90\\xc2\\x1c\\x1a\\xe2\\xf6\\xea\\x9d\\xde\\xa7\\x47\\x0f\\x25\\xe0\\x20\\x27\\xd1\\x71\\xe0\\xe5\\x74\\xa2\\xbb\\x21\\x64\\x2f\\x8f\\x9d\\xa5\\x08\\xe2\\x1d\\x8e\\x73\\x35\\xb5\\xac\\xe5\\x93\\x52\\x99\\x40\\x7b\\xd1\\xb0\\x1b\\xdd\\x14\\x23\\x13\\x3e\\xf0\\x45\\x23\\x4e\\x70\\x1f\\x55\\x54\\x94\\x34\\xad\\xe9\\x4a\\x60\\xbe\\x1e\\x14\\x06\\xca\\x5c\\x75\\x8c\\x36\\x79\\x9c\\xe1\\x70\\x30\\x84\\x47\\x6e\\x48\\x4f\\xb1\\x74\\x05\\x30\\xae\\xe8\\x42\\x66\\xd0\\x7a\\xdf\\xb4\\xcc\\x68\\x9f\\x32\\x65\\x13\\x3a\\x59\\xcd\\xf9\\x92\\xfb\\xb9\\xa4\\xb1\\x2d\\xef\\xbe\\x24\\x1d\\xdb\\xf6\\x5d\\x12\\xb2\\xfb\\xdd\\xfc\\x05\\xaf\\x0f\\xb8\\xde\\x42\\x08\\x07\\x75\\xba\\xd2\\x9c\\x6b\\x04\\x59\\x84\\x1c\\xbb\\x64\\x8a\\x9a\\x95\\xe4\\x8d\\x6e\\x36\\xac\\x51\\x44\\x80\\xa3\\xde\\xb4\\xb3\\x65\\x54\\xd8\\xda\\x62\\x08\\x08\\xae\\x9d\\x47\\x32\\x97\\x10\\xd2\\x0a\\xaa\\x6e\\x5d\\x7f\\x54\\x7d\\x81\\xad\\x30\\xf8\\x4c\\x0e\\x3d\\x23\\x9c\\xde\\x5b\\x16\\x9d\\x9d\\xdf\\x29\\x48\\x32\\xd6\\x7a\\x80\\x60\\xba\\x32\\x9c\\x4e\\xf3\\x9b\\xe9\\x4a\\xc4\\x64\\x34\\xdd\\x21\\x85\\x93\\x1d\\x12\\x31\\xf9\\xb6\\xdf\\x87\\x8a\\x5a\\xf0\\x83\\x1e\\x0e\\x9d\\x8a\\x08\\xd0\\x80\\x69\\xde\\xd6\\xa9\\x61\\xef\\x7f\\x39\\xfa\\xd5\\x01\\xff\\xd1\\x7d\\x6d\\x9b\\x7c\\x65\\x46\\x53\\xc1\\xf5\\x8f\\xce\\xe1\\xa6\\xcd\\x80\\x3d\\x2a\\xef\\x16\\x6c\\x78\\xef\\x55\\x14\\xa3\\x27\\x6d\\x69\\x98\\xdc\\x7c\\x09\\xa3\\xfa\\x98\\x2e\\x42\\x7c\\x78\\x5a\\xa6\\xa9\\xe2\\x56\\xf7\\xba\\x72\\xd5\\xa6\\xba\\x33\\xeb\\x46\\xf1\\xf9\\xfe\\x9b\\xe2\\xbf\\xc1\\x41\\x09\\xf6\\x47\\x73\\xc0\\x0c\\x06\\x3b\\x4d\\x5c\\xb4\\xf4\\xf8\\xa0\\xbe\\xca\\x92\\xa9\\xa0\\x16\\xc4\\xf5\\x40\\xfe\\xea\\x9c\\x3a\\x31\\xe3\\x13\\xbb\\xcb\\xc2\\xff\\x5e\\xca\\x99\\x67\\x85\\x7f\\x5f\\x8a\\x90\\x9a\\x29\\xd7\\xf2\\x0d\"},\n{{0x8b,0xde,0x3f,0xf6,0x1a,0x16,0x99,0x5a,0xb9,0xd5,0x39,0xf6,0x05,0x32,0x19,0x08,0x1b,0xca,0xea,0x1d,0x45,0x8e,0xc3,0x36,0x84,0xfc,0x1c,0x01,0xfb,0x56,0x5b,0xfa,},{0xcd,0x9d,0x78,0x2a,0x35,0x6e,0x84,0x7b,0x7a,0x04,0xc8,0x85,0xa9,0xb0,0x90,0x7c,0xc3,0x3b,0xa9,0x7a,0xd5,0x39,0x0d,0x4e,0xa5,0xfe,0xe5,0xeb,0x19,0x8d,0x08,0xb3,},{0x74,0x64,0xdf,0x0b,0x67,0xeb,0x90,0xb4,0xb7,0x3f,0xf0,0x82,0xad,0x0d,0x60,0xeb,0xfe,0x06,0x60,0xda,0xe9,0x70,0x69,0xb5,0x2c,0x37,0x27,0x22,0x3b,0xf7,0x0e,0x29,0xe4,0x87,0x11,0xa2,0xbb,0xb4,0x38,0xf5,0xf8,0xd8,0xa3,0x3b,0xb9,0xc4,0x8f,0xe7,0xb6,0x28,0xfa,0x8a,0x54,0x2f,0xf0,0xb5,0xae,0x36,0x26,0x9d,0x40,0x07,0xa5,0x05,},\"\\xa1\\xf4\\x0e\\xc5\\x80\\x7e\\x7a\\x27\\x06\\x9a\\x43\\xb1\\xae\\xbf\\xf5\\x83\\xef\\x03\\x70\\x28\\xc0\\x2c\\x85\\x95\\x25\\xeb\\x8f\\xa4\\xc3\\xba\\x95\\xa9\\x01\\xff\\x3a\\xed\\x78\\xc4\\xf8\\x77\\x52\\xfb\\x79\\x55\\x22\\xf5\\xbf\\x71\\x5b\\xe7\\xe3\\xde\\xfa\\xc1\\x0f\\xcf\\x17\\xe3\\xfa\\x5c\\x54\\xb2\\x00\\x89\\xa4\\x72\\x33\\x33\\x27\\x25\\x2e\\xc9\\x45\\x71\\x8f\\xb4\\x55\\xe3\\xf2\\x7c\\xcf\\xde\\xf8\\x23\\xd1\\x2d\\x40\\x6e\\x62\\xa4\\xae\\xba\\x3c\\xb9\\xd1\\xc6\\x1b\\x2b\\x17\\xe4\\x9e\\x20\\x0a\\x84\\x18\\xf9\\x35\\xf2\\x6e\\xeb\\x57\\x60\\x2c\\x7a\\xa3\\xb3\\xa2\\x4f\\x7e\\x62\\x38\\xd3\\xe0\\x8d\\x2d\\x60\\x9f\\x2e\\xad\\xa0\\x33\\x2b\\xc8\\xcb\\x12\\x91\\x6c\\xb0\\x3b\\x0d\\x4f\\x9c\\xd6\\x02\\x00\\x25\\x86\\xd3\\xe4\\xcc\\x7e\\x0e\\x03\\x81\\xc0\\x45\\xad\\x2e\\x1e\\xe2\\x82\\x98\\xae\\x7f\\xcf\\x0c\\x10\\xf2\\x12\\x80\\x85\\x65\\x29\\x6f\\x15\\x8d\\x2c\\x32\\xe8\\xcb\\x28\\x15\\x65\\x81\\xaf\\x52\\xbf\\xc3\\x47\\x0c\\x3c\\x95\\x82\\x13\\x8d\\x22\\x55\\xe8\\x42\\x6d\\x64\\x8c\\xa2\\x37\\xd7\\xaa\\xd2\\x85\\x6f\\x17\\x16\\x38\\x55\\x82\\x41\\xd8\\xae\\x3f\\x62\\xba\\x92\\xdb\\x59\\x65\\x68\\xed\\xee\\x3e\\xc0\\xef\\x37\\x0f\\x83\\x62\\x6a\\xa0\\x44\\x5a\\xf0\\x8f\\x96\\x78\\x63\\x66\\x0e\\x8f\\xba\\x5a\\x41\\xc8\\xe8\\xed\\xe1\\xc9\\x60\\x51\\x4a\\x14\\x68\\x7a\\x4a\\x81\\xe7\\x76\\xae\\x0e\\x8e\\x77\\x7f\\xb0\\xf2\\x50\\xd5\\x1a\\x83\\xb5\\x5f\\x8c\\x1f\\xfd\\xd7\\x8d\\xf3\\xbd\\xc9\\x7f\\xf1\\x77\\xaf\\xec\\xa0\\x46\\xc7\\x2d\\x72\\xaf\\x92\\x4a\\xd0\\xd0\\xab\\x2b\\xfc\\x11\\xb7\\xf4\\xab\\xde\\xd5\\x1c\\x39\\x87\\xa8\\xbb\\x94\\xd6\\x40\\xc8\\x71\\x0e\\x5f\\xc9\\xa4\\x19\\x0e\\x8a\\x00\\x83\\x63\\xd7\\x41\\x9c\\xea\\x17\\xc4\\x0d\\xea\\x20\\xea\\x51\\x56\\x02\\x9f\\x3d\\xeb\\xf0\\x52\\x41\\x91\\x8f\\x54\\xaf\\x50\\x39\\xe2\\xc4\\xcf\\x2c\\xa2\\xe1\\x39\\xf6\\x0e\\x45\\xcc\\x65\\x59\\x5c\\xdf\\x54\\xa6\\x7d\\x92\\xb6\\xac\\x66\\xfc\\x0c\\x5a\\x29\\x04\\x95\\xca\\x57\\xb0\\x7e\\xf5\\x75\\x0d\\x05\\xf5\\x7d\\x87\\xd0\\xc2\\x28\\xf7\\xe4\\xe1\\x5a\\xd0\\xba\\x01\\x78\\x73\\x0f\\x95\\x1c\\x69\\x75\\x83\\x48\\x1c\\x66\\xcb\\xfc\\xd4\\x80\\x32\\x54\\x4a\\xa8\\xd5\\x09\\x08\\x30\\x4b\\xd8\\x19\\x40\\x30\\x87\\x06\"},\n{{0xda,0x59,0xbb,0xc5,0x23,0x40,0x4f,0x07,0x64,0x6a,0xdd,0x79,0x08,0x29,0x49,0x77,0xe4,0x66,0x45,0xbc,0x8a,0x38,0xba,0xd2,0x80,0x96,0x41,0xa2,0x3d,0xe3,0xb1,0x5a,},{0xb2,0x2c,0x0f,0x21,0xaa,0x1c,0x2d,0x45,0xf4,0xb2,0xe5,0x6c,0xc9,0xb5,0xe0,0x2f,0x9e,0x31,0xa2,0xea,0xa3,0x67,0xec,0xb4,0x82,0xf8,0x74,0xcb,0xd8,0xe9,0xfe,0x34,},{0x14,0x72,0x45,0x9c,0xbb,0xae,0x2c,0xf2,0x1c,0xe4,0x4a,0x15,0xba,0xe9,0xfc,0x85,0xdc,0xa4,0x0b,0x81,0x82,0xda,0x7d,0x52,0xcb,0xf5,0x6e,0xd5,0x38,0xd1,0x8e,0x03,0x47,0x7c,0x14,0x0a,0x3d,0xdd,0x0e,0xfb,0xa4,0x3c,0x96,0xaa,0x92,0xf5,0xf9,0xbc,0xdf,0x34,0x81,0x28,0x6c,0xe7,0x62,0xa7,0xe2,0xbd,0x1e,0x77,0x9b,0xa9,0x9b,0x0d,},\"\\x09\\x71\\x06\\xc3\\x62\\x4d\\x77\\x4d\\xde\\x25\\x51\\xe0\\xc2\\x7e\\x19\\x50\\x4e\\x65\\x18\\xcc\\x86\\x36\\x9a\\xb2\\x6f\\xf8\\x10\\x96\\x9e\\x7d\\xe2\\x4a\\xbc\\x68\\xb4\\xb5\\x3f\\x11\\xd9\\x45\\xd4\\x9e\\xf0\\x78\\xeb\\x4f\\x6b\\xa6\\xbf\\x25\\x7f\\xf7\\xb6\\x08\\xaf\\xdc\\xb3\\x0a\\x5c\\x59\\xa7\\x56\\xfd\\x77\\xa6\\xc1\\x24\\x7f\\x6f\\x2a\\x41\\x10\\x0d\\x99\\xfc\\x52\\x06\\xaf\\x3b\\xcc\\x6d\\xe1\\xd3\\xe4\\x96\\x8e\\x28\\xfb\\xa0\\x12\\x3f\\x60\\x45\\xa1\\xb5\\x4d\\x69\\x3a\\x42\\xbd\\xfa\\x07\\x1b\\x2b\\x91\\x4b\\x3c\\x3c\\x0c\\x29\\xb2\\x59\\x3d\\x07\\xe8\\xbd\\xc8\\x6c\\xa4\\x2a\\xc5\\x55\\xb7\\xdc\\xd9\\x43\\x9d\\xf9\\xfb\\xd4\\xbb\\xec\\x73\\x0d\\x63\\x27\\xbf\\xae\\x4f\\xc4\\x1e\\xd4\\x98\\xb4\\xf0\\x4a\\x0e\\xb1\\x4c\\xee\\x60\\x82\\x83\\xaa\\xa6\\xe6\\xaa\\x46\\x67\\x6b\\xc8\\x8a\\xed\\x5d\\x99\\x39\\x03\\x7a\\xad\\x49\\x15\\x66\\x1a\\xf9\\x4b\\xb5\\xf6\\xe6\\x53\\xa2\\xca\\xc1\\x23\\x28\\x70\\x73\\x27\\x0e\\x0b\\x13\\xfd\\xa1\\xdd\\x48\\x71\\xaf\\x6a\\x92\\xf9\\x92\\xf5\\x39\\xdf\\x88\\x17\\x12\\xfe\\xfb\\x03\\x85\\x40\\xd4\\x11\\x91\\x12\\x3b\\x6b\\x3b\\x4b\\x6f\\xf8\\x7f\\xfc\\x92\\x9a\\x6b\\xe5\\x3c\\x6c\\xef\\x02\\xf4\\x8f\\x2f\\x0c\\xf2\\xfe\\x64\\xa4\\x5f\\xd6\\x60\\x25\\xcc\\x2d\\x7e\\xe5\\x5e\\xbe\\x23\\x16\\xc0\\x00\\x85\\x56\\x61\\x16\\x5e\\x2a\\x5b\\xa4\\x1a\\xfc\\x20\\x97\\x95\\x7b\\x6f\\xe4\\xc5\\x52\\x21\\x20\\x4b\\x6f\\xc1\\xf3\\x17\\xdd\\x3b\\xa1\\x3c\\xac\\x39\\x92\\x40\\x26\\xbd\\xb6\\x6b\\xe4\\x54\\x22\\x68\\x87\\x56\\x31\\xd2\\x77\\xf2\\x10\\x10\\x7a\\x33\\x76\\x7f\\x6d\\x95\\x96\\xe2\\x57\\x42\\xd7\\xa9\\x0e\\xa7\\x91\\xea\\x4b\\xc9\\xee\\x84\\xa6\\x7f\\xd3\\x28\\xb8\\x0f\\x79\\x1e\\xde\\x96\\xd8\\x96\\x63\\xe9\\x37\\xf0\\xb7\\x55\\xba\\xa9\\xd5\\x2b\\xda\\x21\\x0c\\xee\\x1d\\xb3\\x39\\xff\\x1d\\x3c\\x4b\\x00\\x0b\\x65\\x3b\\x9b\\xde\\x33\\x80\\x49\\xaf\\x84\\x36\\x4e\\x21\\x77\\xf8\\x0d\\xd5\\x1e\\x2a\\x16\\x72\\xee\\x55\\x5d\\x63\\x17\\x58\\x9f\\x6f\\x1d\\x5a\\xbe\\x6c\\x28\\x77\\x35\\x8b\\xf9\\x4b\\x0b\\x80\\x8f\\xf8\\x57\\x36\\x3f\\xbf\\xbe\\x32\\xe9\\x73\\x37\\xe4\\xb8\\xa8\\xc2\\x21\\xa9\\xe7\\x59\\x62\\xa8\\xdc\\x9b\\x5a\\x3d\\x7c\\xa5\\xf9\\xc9\\xb6\\x1c\\x73\\xc1\\x46\\x9a\\x72\\xbd\"},\n{{0x40,0xea,0x82,0xda,0x41,0xfd,0x15,0xb0,0x6f,0xfe,0xb9,0x9c,0xd6,0x16,0xdc,0x6b,0xc8,0xc1,0xb2,0x14,0x77,0xea,0x23,0x94,0x66,0x08,0x8e,0x28,0x49,0xbf,0x10,0x16,},{0x59,0x10,0xe5,0x80,0xbf,0x41,0x2c,0x31,0xa8,0x74,0x51,0xd9,0xdd,0xf3,0x2b,0x3a,0xb7,0x13,0xf9,0xe4,0xa2,0x2c,0x59,0x0c,0x64,0x1c,0x14,0xa5,0xdf,0xbb,0xe0,0xd7,},{0xd2,0x98,0xfc,0xc9,0xa8,0xec,0xb7,0x6a,0x98,0xd4,0xa7,0x1d,0xfb,0x01,0xd2,0x76,0xab,0x2d,0x96,0x70,0xa9,0x5b,0xab,0x34,0xcf,0x1d,0x83,0x64,0x51,0x6d,0x1e,0xbd,0xb2,0x39,0x03,0x46,0x02,0x15,0x30,0x71,0x25,0xaf,0xd0,0x9c,0x75,0x8e,0x98,0x1a,0x45,0x2d,0xa9,0x5c,0x0a,0xc2,0xc0,0xb9,0x58,0xc6,0x91,0x7e,0x68,0x74,0x19,0x0d,},\"\\xa0\\x6c\\x4e\\x02\\xb8\\x3a\\xb7\\xe1\\x91\\xad\\x81\\x8c\\xb8\\x18\\x7b\\x52\\xa8\\xda\\x00\\x4f\\xe8\\x38\\xdb\\x33\\x3c\\x4e\\x02\\x54\\x8d\\xb6\\xbd\\xf7\\x91\\x44\\x46\\x42\\xe5\\x7f\\xdb\\xc8\\x59\\x4e\\x59\\xd7\\x02\\x32\\x80\\xbb\\xae\\x82\\x98\\x6f\\x39\\x98\\x05\\x43\\x4b\\xb0\\x72\\xc8\\xa2\\x7a\\x2d\\xcd\\x5a\\xa6\\x2f\\x06\\x5b\\xc5\\x8b\\x06\\x21\\xfc\\xd3\\x65\\xf6\\xcd\\xbf\\x4d\\x57\\xd5\\x77\\xd9\\x11\\x50\\x30\\x1f\\xa4\\x8f\\x18\\x2f\\x87\\xe8\\xdc\\xa7\\xce\\x45\\xa7\\xd6\\x48\\x45\\xff\\x43\\x4d\\x1b\\xab\\x05\\x34\\xcc\\xc8\\x3a\\xa0\\x97\\x4e\\x88\\xb3\\x8f\\xc2\\x50\\x8c\\xef\\xcb\\xbc\\x82\\x13\\x5b\\x73\\xb3\\x84\\xc8\\x0e\\xcc\\xb8\\xa0\\x9e\\x28\\x73\\xcc\\x07\\x12\\x90\\x21\\xd8\\x1c\\xe1\\x29\\xa9\\xdf\\x65\\xe6\\x13\\x41\\x0a\\xf9\\x50\\x19\\x7d\\xbf\\x9a\\xfc\\x28\\xed\\xc4\\xe6\\x5c\\x3e\\x84\\xda\\x40\\xd2\\xef\\x84\\x1b\\x88\\x6b\\xc4\\x47\\x19\\xa5\\xd5\\x9d\\xb2\\xc6\\xdc\\x77\\x64\\x01\\xc8\\x95\\xe2\\xb3\\xc8\\x37\\x83\\xd7\\x81\\x7b\\xba\\x68\\xba\\xff\\x59\\x47\\x0d\\x60\\x15\\xbb\\xa8\\xd9\\x75\\xf0\\xeb\\x71\\x2f\\x3b\\x89\\x02\\x91\\x28\\x05\\x52\\x3a\\xa7\\x1c\\x90\\x49\\x9d\\xe6\\x89\\xd3\\x1a\\xe4\\x4e\\x21\\x0b\\x84\\x46\\xf2\\x48\\x47\\x27\\xcc\\x49\\x1b\\x92\\xa8\\xe8\\xb1\\x99\\xd6\\x28\\xe1\\xdf\\x79\\xa2\\x8c\\x56\\x1e\\x5a\\x7d\\x88\\x2e\\x30\\x78\\x7d\\x08\\xfb\\x2d\\x51\\x96\\xba\\x61\\x19\\x63\\x09\\xb3\\xbf\\x0c\\x58\\x24\\xa3\\x54\\x8c\\x70\\x00\\x03\\xfe\\x99\\x13\\xbe\\xfe\\x12\\x22\\x31\\x50\\x01\\x26\\x85\\xe9\\x07\\x20\\xe9\\xec\\x6b\\xc4\\xdb\\x60\\x74\\x25\\xae\\xc5\\x31\\xc4\\xfa\\x36\\x08\\x6d\\x3b\\x9b\\xe3\\x91\\xa3\\xf0\\x46\\x35\\xa8\\x07\\x7a\\x44\\x7a\\x16\\xa6\\xfd\\x89\\xaf\\xbb\\x9a\\x72\\xd0\\xd3\\x55\\xcb\\x0b\\x22\\xd5\\x62\\xf4\\x3f\\x59\\xd4\\xe3\\x71\\x28\\xb3\\xe2\\xd9\\x06\\xc8\\xae\\x23\\xd0\\xaa\\x59\\x9c\\x70\\xd3\\x77\\x8a\\x07\\x6c\\x1a\\x39\\x72\\x8f\\x1d\\x69\\x37\\xbd\\x48\\xb9\\x78\\x74\\x08\\x50\\x56\\x61\\x38\\xd3\\x48\\x52\\xb6\\x30\\x75\\xe8\\x9a\\x8e\\x22\\x80\\xed\\xba\\x6f\\x4e\\xe8\\xf6\\x15\\x11\\xe9\\xb7\\x68\\xe9\\x5c\\x78\\xd1\\x97\\xb6\\x93\\xb1\\x09\\xe8\\x88\\x18\\xb4\\x86\\xa9\\xdf\\xdb\\x74\\xb4\\xc5\\x55\\x0a\\xcd\\xfb\\xd5\"},\n{{0x28,0xbb,0x81,0xa1,0x7d,0x45,0x84,0x75,0x4d,0x52,0x81,0x8c,0xd0,0xf1,0xf2,0x1b,0xaa,0x77,0x7e,0x69,0x58,0x44,0xa1,0x51,0x22,0xac,0x05,0x34,0x4d,0xdd,0xc0,0x27,},{0xd5,0xf6,0x1d,0x51,0x99,0x44,0xd1,0x3b,0x84,0xbf,0xa7,0xcd,0x67,0xcb,0x0b,0xea,0x4e,0xf2,0x28,0x1e,0xfa,0x46,0x1f,0x22,0xad,0xe4,0xba,0x88,0x2d,0x11,0xb2,0x52,},{0x9c,0xe4,0x5a,0x07,0xdb,0xd2,0x8d,0x3f,0x6f,0x1b,0x35,0x63,0x0a,0x3f,0xd5,0x6f,0x1d,0x54,0x8f,0x84,0xff,0xb1,0xc6,0xae,0x64,0xb2,0x14,0x98,0xae,0x38,0xe5,0x96,0x91,0x6e,0x77,0xf7,0x99,0x05,0xe6,0x09,0xfb,0x1a,0xe0,0xda,0x36,0x13,0x8a,0x80,0xf2,0x42,0x12,0x21,0x67,0x06,0x80,0x92,0xcc,0x60,0x57,0x96,0xc5,0x66,0x9e,0x06,},\"\\x92\\xe8\\x4c\\x7a\\x55\\xb0\\xbe\\xa0\\x3e\\x17\\xcf\\xb6\\x5f\\x70\\x85\\xce\\x3f\\x44\\x5b\\x15\\x42\\xba\\xe9\\x97\\xde\\x5f\\x09\\x2a\\x24\\xff\\x24\\x33\\x80\\x28\\x6d\\x13\\x70\\x91\\xa5\\x98\\xf3\\x5e\\x6d\\xae\\x1a\\x1c\\x64\\x8f\\x5a\\x49\\x4c\\x81\\x9d\\xfb\\x24\\x06\\x52\\xff\\x90\\x83\\x81\\xf3\\x2d\\x70\\xbc\\x51\\x31\\x00\\xac\\xa1\\x6f\\xe7\\x22\\x02\\x95\\xb1\\xc7\\x18\\x35\\xf1\\x6d\\x93\\x10\\xa9\\xd2\\x7a\\x04\\xa9\\x80\\xac\\xe2\\x97\\xd5\\xaf\\x3f\\x7c\\xb7\\xc7\\x8b\\x24\\x99\\x7c\\xcb\\x41\\xf5\\x4e\\xcb\\xab\\x50\\x7e\\xb7\\x3e\\xa6\\xa3\\xed\\x47\\x0e\\x49\\x59\\x05\\x09\\xf5\\xd1\\xe6\\x03\\x2a\\x26\\x05\\xdb\\x87\\xf4\\xa9\\xb9\\xec\\x91\\x60\\x25\\x83\\xf1\\x4e\\x2f\\xe1\\xbd\\xb9\\x00\\xec\\xb8\\x97\\x11\\x96\\xb5\\x5c\\x0d\\x43\\x34\\x89\\xf2\\x6b\\xe9\\xca\\x15\\x7c\\xbd\\x56\\x57\\x28\\x87\\xba\\x85\\x9f\\x39\\x67\\x4a\\x8e\\x0c\\xa0\\x8f\\x2d\\xbb\\x0f\\x27\\x07\\x35\\x51\\xd0\\xb1\\x99\\x06\\x85\\x17\\x8b\\x1a\\xe9\\xe7\\x88\\x54\\x99\\x14\\x3d\\x9d\\x72\\xc8\\x57\\x1d\\x11\\xe0\\xd8\\x5b\\xf5\\x8d\\xf9\\x4e\\x2a\\x74\\xd9\\xb6\\x84\\x65\\x57\\xf9\\x12\\x5c\\xa0\\x94\\x4c\\xe5\\x71\\x8d\\x2c\\xba\\xe1\\x67\\x2b\\xa0\\x2b\\x84\\x7c\\x17\\xa6\\xf6\\xb4\\x45\\x63\\x4d\\x2f\\x01\\x75\\xa7\\x5c\\xf6\\x88\\x3c\\x62\\xe5\\xb5\\x21\\xc5\\x71\\x41\\xf2\\x18\\xb2\\xfb\\x09\\x94\\xb3\\x72\\xa7\\x16\\xc4\\xa2\\x17\\x43\\x4b\\xea\\xb7\\x57\\x40\\xb8\\xe9\\x1c\\x62\\x21\\x87\\xd0\\x3c\\x85\\xda\\x00\\x1e\\x00\\x24\\x73\\x12\\xa4\\x65\\x22\\x5f\\x5d\\x6a\\xf2\\x32\\x06\\x4a\\x42\\x7d\\x30\\x18\\x70\\x0d\\xed\\x77\\x4b\\x90\\x26\\x77\\x7a\\x52\\x75\\xfc\\x04\\x75\\x46\\x06\\xc8\\x66\\x00\\x29\\x7b\\xf7\\xb7\\x1a\\xaf\\xf8\\xb9\\xa7\\x46\\x67\\x7a\\x36\\x62\\xf3\\x75\\x0e\\x81\\xb5\\x01\\x66\\xf6\\x23\\x70\\x00\\x05\\x1f\\xfa\\x15\\x86\\x8d\\xef\\xdf\\x09\\x00\\x57\\x72\\x2a\\xe2\\x29\\x96\\x4a\\x4e\\xa0\\x85\\xe0\\xdb\\xc0\\x4c\\xe1\\x99\\x77\\x22\\xc5\\xbb\\x65\\xd2\\xb4\\x7e\\xcb\\x74\\x6f\\xd8\\x3a\\x9f\\x6a\\x69\\xc8\\x15\\x45\\xa9\\xb5\\x02\\xf5\\xe7\\x6d\\x31\\x30\\xc5\\xaf\\xcb\\x1c\\x9a\\xf9\\x9d\\x91\\x87\\x40\\x83\\x7c\\xe8\\x9d\\x7c\\xd2\\x13\\xfe\\xf2\\xfd\\x06\\x2c\\xe8\\x85\\x0f\\x69\\x65\\x9e\\x4a\\xd3\\x27\"},\n{{0x24,0xbf,0xd4,0xfc,0x45,0xd5,0x09,0x35,0x85,0x67,0x81,0x01,0xcf,0x56,0x3a,0xb8,0x01,0x1f,0xd6,0x43,0x0d,0xe1,0x55,0xf2,0xa4,0x25,0xf0,0x63,0x3e,0xe3,0xb7,0xcd,},{0x9c,0xf5,0xc5,0xfc,0x0c,0xcf,0xae,0xb2,0x8a,0x08,0xba,0x67,0x70,0x7b,0x18,0xdc,0x84,0xea,0x06,0x98,0xff,0xbd,0xbc,0x16,0x9a,0x09,0xc2,0x81,0x23,0xe6,0xc2,0xac,},{0xdc,0x93,0x5b,0x60,0xfd,0xe4,0x43,0x59,0xaf,0x8f,0x50,0xed,0x7f,0x91,0x9f,0x48,0x3c,0xe3,0xf2,0x4e,0x23,0x20,0xc5,0x5b,0xa9,0x2f,0x3e,0x76,0x17,0xc1,0x9b,0xfb,0x54,0x70,0x19,0x03,0xff,0x18,0x3b,0x42,0xcb,0xed,0xfe,0xf0,0x87,0x5f,0x42,0xb1,0x28,0x75,0xd3,0x6a,0x0a,0xee,0xc7,0x3f,0xfd,0x09,0x50,0x9d,0x92,0xb2,0x8b,0x0d,},\"\\xba\\x54\\x12\\x8f\\x45\\xbe\\x20\\x01\\xdb\\xb0\\x60\\xd5\\xdc\\xc4\\x71\\x44\\x99\\x74\\x15\\xd4\\x29\\x4f\\x6e\\xba\\x8d\\xce\\xba\\x4f\\x6c\\xf2\\x23\\x46\\x83\\xc4\\x26\\x5f\\x88\\x03\\x22\\x05\\x29\\x6e\\x9b\\x27\\xd6\\x85\\x06\\x23\\x2d\\x57\\xb6\\x88\\x40\\x76\\x48\\xf8\\x7c\\xeb\\x34\\x20\\x52\\xbd\\xe9\\xd0\\x06\\x55\\x42\\xff\\x17\\x15\\xc9\\x42\\x02\\x7e\\x67\\x48\\x2a\\xf4\\xbc\\x27\\x8f\\xf7\\x19\\x66\\xfb\\x3f\\x62\\xa2\\xa5\\x32\\x3c\\xb1\\xb4\\xba\\xe1\\xe7\\xb8\\xfe\\xdc\\xbc\\x73\\xea\\x05\\xb4\\x07\\x64\\x21\\xb0\\xb4\\xfa\\xe8\\xbc\\x33\\x37\\x41\\x6a\\x17\\xfe\\x12\\x4e\\x7e\\xe4\\x65\\xeb\\xb3\\x8d\\x87\\x92\\x30\\x64\\x29\\xd8\\x27\\x9a\\x1b\\xd5\\x4c\\x37\\xbe\\xe8\\xf9\\xc8\\x5e\\xeb\\xe3\\xaf\\xd1\\xf6\\x44\\x89\\xd4\\xe5\\x3a\\xc5\\xf5\\x06\\x57\\xbb\\x6f\\xfb\\x97\\x12\\x07\\x44\\xb7\\x5d\\x47\\xc6\\x22\\x6d\\x5a\\x9c\\x9c\\x26\\x4e\\xe3\\xe6\\xa6\\xde\\xd0\\x50\\x62\\xca\\x10\\x06\\x66\\x91\\x18\\x45\\x45\\x50\\x01\\x09\\x19\\xc2\\x63\\x3c\\xf0\\x86\\x95\\x03\\x45\\xe5\\x14\\xaf\\x38\\x43\\x14\\x8e\\x5c\\x64\\x35\\x2e\\x69\\x03\\x7d\\xfe\\x60\\xd4\\xa8\\xea\\xb3\\xeb\\x8c\\xb5\\x4b\\xd3\\x9a\\xf2\\xf3\\x53\\xd5\\xde\\xd2\\xe2\\xbc\\x8b\\x11\\xc0\\x9f\\x61\\x2e\\x12\\x8c\\x6e\\xfa\\x41\\xf6\\xeb\\x2c\\x95\\x80\\x87\\xbe\\x34\\xc6\\x33\\x5a\\x43\\x00\\x5d\\x11\\xa9\\xd3\\xb5\\xa5\\x29\\xc2\\xd1\\xb0\\x64\\x2f\\x77\\xaf\\xdd\\x8c\\x6b\\x1d\\x6f\\xb2\\xa9\\xdc\\xb6\\x5f\\x42\\xf4\\xec\\xa8\\xea\\x9a\\x05\\x40\\x58\\xbe\\x86\\x13\\x66\\x76\\x10\\xe3\\xee\\xd8\\xd1\\xdf\\x07\\x39\\xec\\xa1\\x71\\x95\\x41\\x17\\x98\\x9d\\x1b\\x12\\x18\\x9a\\xb5\\x79\\x04\\xaa\\x96\\x0b\\x0c\\xa8\\x55\\x41\\x74\\x63\\x85\\xef\\xa9\\x85\\xbe\\x9d\\x97\\xb5\\xa9\\x02\\x99\\x89\\xa9\\xc7\\x14\\x98\\xdf\\xab\\xdb\\x81\\x36\\x81\\xf5\\x7e\\x27\\x6b\\x64\\xdb\\x49\\x1b\\x8f\\x08\\x2a\\x88\\x51\\x45\\x46\\x9a\\x53\\x1b\\x7f\\x9f\\x04\\xca\\x0a\\x2c\\x2f\\x8d\\xff\\x20\\xcc\\xb9\\x9c\\x28\\x61\\xf5\\x4e\\x5e\\xaf\\xa9\\x62\\xcc\\x53\\xea\\xf1\\x8d\\x3d\\x5e\\x50\\xd3\\x37\\xaf\\x48\\x5f\\x19\\x97\\x5f\\x05\\x93\\x07\\x00\\xa8\\xa7\\x25\\x3f\\x11\\xf1\\x84\\x13\\x0d\\x0a\\xee\\x70\\x96\\x9d\\x96\\xfe\\x08\\xf2\\x16\\x95\\x1d\\x9d\\xce\\xd5\\x23\\x88\"},\n{{0x2f,0xc2,0xf9,0xb2,0x05,0x0a,0xd7,0xd1,0x39,0x27,0x3e,0x93,0xe2,0xa0,0x45,0x1c,0x7b,0x5c,0xce,0x57,0x59,0x9a,0xa6,0xb0,0x8d,0x3e,0xdc,0x5b,0xb0,0x75,0x90,0xc8,},{0xff,0xe5,0xa1,0x78,0x80,0xd7,0x18,0xcc,0x79,0x88,0xc2,0xfd,0x98,0x25,0xb0,0x3b,0x93,0x45,0x0a,0xc1,0xde,0xb8,0xfb,0xd1,0xf1,0xbf,0x3b,0x8f,0x87,0x80,0x59,0x54,},{0x7a,0xff,0x16,0x2a,0x3c,0x0d,0x28,0xdf,0xf4,0x17,0x15,0xa9,0x74,0xaf,0x07,0xec,0xac,0x21,0x32,0xfc,0x18,0xbc,0x43,0xa1,0x98,0xfe,0x66,0x46,0x59,0x05,0x0d,0xa1,0x9a,0xe2,0x27,0x58,0xd5,0x2c,0x9c,0xbb,0x94,0xf1,0x35,0x8b,0xb0,0x26,0x10,0xa8,0xa3,0x51,0xc2,0x11,0x62,0x79,0xe7,0x24,0x5a,0xdf,0x69,0x67,0x5d,0xfd,0x36,0x0a,},\"\\xdc\\x12\\x97\\x99\\x0c\\xc0\\x27\\xd5\\x6d\\x1f\\xee\\x26\\x5c\\x09\\xbc\\xf2\\x07\\xa9\\x58\\x3e\\x6b\\xab\\x8d\\x32\\x47\\x82\\x28\\xe0\\xbc\\x30\\x5b\\x98\\x18\\x15\\x4c\\x33\\x8c\\xee\\xc3\\x4b\\x04\\xc4\\xad\\xe7\\xac\\x61\\xdc\\xb0\\x9b\\xfa\\xc8\\xad\\xe0\\x0d\\x1f\\x29\\xde\\x31\\x70\\x60\\xb8\\xa4\\xda\\xf1\\x98\\x7d\\xe4\\x09\\xca\\x2c\\x3f\\xe4\\x38\\x00\\x88\\x07\\x3c\\xcf\\x48\\x5e\\x9a\\x69\\x51\\x6b\\x5b\\xbb\\x41\\x30\\xf2\\x0b\\xe6\\x9b\\x2d\\xd6\\xa9\\xb4\\x65\\x15\\x9c\\xca\\x1a\\xc8\\x8b\\x32\\x8b\\x80\\xc5\\x1b\\x66\\xaf\\x7f\\x4c\\x50\\xf6\\x22\\x87\\x72\\xf2\\x87\\x34\\x69\\x3c\\xe4\\x80\\x5a\\x41\\x63\\xdf\\xf1\\x4b\\x4d\\x03\\x98\\x11\\xee\\x3f\\xce\\x65\\x93\\x54\\x44\\xa6\\xea\\x9a\\x72\\xd7\\x8b\\x91\\x5c\\x9c\\x3b\\x76\\x6c\\x60\\xb7\\xe0\\x32\\x9e\\x43\\xc9\\xc5\\x7e\\xde\\x94\\xb9\\x15\\x25\\xce\\x5a\\x07\\x5a\\x72\\x97\\x21\\x97\\x72\\xef\\x3c\\x02\\x96\\x49\\xb5\\x86\\xa9\\x5a\\x73\\xbb\\xdf\\x16\\xd8\\xfc\\x20\\x36\\x8d\\xe4\\xba\\x44\\xde\\x10\\x64\\xbe\\x58\\x26\\xb3\\x76\\xbe\\x31\\xa8\\x6c\\xa4\\x78\\xa5\\x2e\\xfb\\x98\\xf1\\xfa\\x33\\x31\\x57\\x71\\x9b\\xd6\\xe0\\xda\\x80\\xed\\x68\\xd0\\xef\\xea\\xfe\\xe5\\xa1\\x3b\\xcc\\x3b\\x45\\x75\\x25\\x25\\x8f\\x1f\\x7e\\x03\\x1f\\x7b\\x40\\x3a\\x46\\x15\\x06\\x92\\x7b\\x1e\\x6c\\x7d\\x4a\\x0c\\x8d\\x84\\xb5\\xf3\\xdd\\x0e\\xb8\\xbd\\xb1\\x3e\\xdc\\x2b\\x51\\x4a\\x81\\xd0\\x88\\xeb\\x07\\x7a\\x52\\xc8\\xa8\\x31\\x86\\x1f\\xee\\xe8\\x11\\x0e\\x41\\xa3\\x25\\xdc\\xe2\\x06\\xb2\\xd6\\x7d\\x25\\xf9\\x0e\\xf5\\x7e\\x0f\\xde\\x70\\x9f\\x3e\\x5a\\x39\\xc0\\x4e\\xed\\x31\\xe5\\x7c\\x19\\x3b\\x28\\x3e\\x2d\\xa7\\x27\\x9e\\xe3\\xf1\\xee\\xd4\\x82\\xb3\\xbb\\xcd\\x37\\x39\\x02\\xc1\\xdf\\x81\\x1a\\xc3\\x3e\\x1d\\xe0\\x64\\x29\\xe8\\xf8\\x44\\x3f\\x60\\x20\\x19\\x65\\x0b\\xdc\\x2e\\xe8\\xd7\\xf6\\x50\\x03\\x6a\\x7a\\x22\\xb8\\xfd\\x88\\x51\\x75\\x11\\x22\\x9c\\x72\\x9a\\x32\\x69\\xb3\\xa3\\xe8\\xfc\\x72\\xb0\\x1b\\x5a\\x4b\\x3e\\x33\\xf5\\x27\\x2f\\x3a\\xd2\\x16\\x29\\xd0\\x8b\\x1f\\x71\\x79\\x35\\xe9\\xe1\\x04\\xad\\xd2\\xf0\\xf2\\x03\\x34\\x32\\xbe\\xc8\\x2e\\x21\\x21\\xd9\\x8c\\x9c\\x1a\\x58\\xe0\\xda\\xba\\x25\\x53\\x6a\\x1b\\xe8\\xe5\\x08\\x83\\x47\\xf4\\xa1\\x4e\\x48\\xd8\\xe3\"},\n{{0x8a,0xfe,0x33,0xa0,0xc0,0x8a,0xa3,0x48,0x7a,0x97,0xdf,0x9f,0x01,0xf0,0x5b,0x23,0x27,0x7d,0xf0,0xbb,0x7e,0x4c,0xe3,0x95,0x22,0xae,0xc3,0xd1,0x78,0x16,0xe4,0x67,},{0xd0,0x04,0x37,0x0e,0x6e,0xdc,0x34,0xb3,0xe8,0x81,0x86,0x67,0x21,0x6f,0x5b,0x22,0x6b,0x0f,0xf7,0x5a,0x58,0x48,0x4c,0x86,0x16,0xe1,0xa8,0x66,0x44,0x4c,0xab,0x57,},{0x63,0xa8,0xae,0xac,0x02,0x5f,0x2d,0xde,0x9a,0x73,0x28,0x6e,0x56,0xc2,0xd6,0x2d,0xcb,0x79,0xa2,0x41,0xba,0x0b,0x2e,0x2d,0xba,0xca,0x87,0x52,0xed,0x2f,0xc8,0xcc,0x7a,0xb8,0xe6,0x60,0x0b,0x67,0x64,0x5f,0xb5,0xe8,0x18,0xa4,0xe8,0x2c,0x29,0x18,0x0a,0x6b,0x2c,0x3f,0x58,0xd0,0x99,0xcb,0x63,0x5c,0xe5,0x2b,0xdc,0x15,0x70,0x04,},\"\\x86\\xfb\\x74\\x1f\\x1b\\x97\\x08\\x92\\x91\\x95\\x03\\x1a\\xa1\\x64\\x5f\\xb7\\x09\\xa8\\xae\\x32\\x3f\\xff\\x85\\xe5\\x47\\x01\\x94\\x45\\x2e\\x11\\xb7\\xb1\\x27\\x91\\x94\\xb5\\xe2\\x42\\x7c\\xe2\\x3e\\x1d\\x74\\x9c\\x3d\\xdf\\x91\\x0b\\x01\\x7e\\x4f\\x2d\\xff\\x86\\xdb\\xe4\\x82\\xc9\\x1b\\xd9\\x94\\xe8\\x49\\x3f\\x2e\\x68\\x24\\xbb\\xa3\\xbc\\x7d\\x7a\\x84\\x5f\\x21\\x7a\\xe9\\x76\\x0b\\x3c\\xd0\\x02\\x26\\xd9\\xff\\x26\\x16\\xd4\\x52\\x75\\x1a\\x90\\xc3\\xd0\\xd3\\xc3\\x6d\\x4a\\xb4\\xb2\\x52\\x0f\\x67\\x28\\x81\\x71\\xbd\\x3a\\x34\\xb2\\xea\\xca\\xe8\\xd4\\x4c\\x1e\\x15\\x3d\\xda\\x1f\\x90\\xbc\\xd3\\x59\\x5d\\xad\\x37\\x71\\x3b\\x8d\\x34\\x01\\x56\\xea\\x90\\xa4\\xe1\\x35\\x95\\x1b\\xa7\\x16\\x9a\\xc1\\x75\\x57\\x8b\\x81\\xe9\\x7a\\x54\\x1a\\xb9\\xbf\\xb7\\x63\\x28\\x79\\x8d\\x7d\\x63\\x1c\\x14\\xdf\\x2a\\xd6\\x13\\xe9\\xc6\\xe1\\x14\\x7a\\x0e\\x84\\x06\\x2d\\xdb\\xa0\\x35\\x85\\x9d\\x46\\xba\\xde\\x5f\\xad\\xd9\\xb3\\x2b\\x43\\xda\\xd4\\x83\\xc6\\xb8\\x02\\x3b\\x32\\x39\\x1e\\x51\\xef\\x15\\x20\\xc6\\x8c\\x61\\x91\\x32\\x6c\\x49\\x44\\x23\\x08\\x0c\\x62\\x3d\\xc4\\xad\\x0a\\xa0\\x74\\x74\\x8d\\x82\\x6c\\x29\\x64\\x4c\\x38\\x98\\x6a\\x77\\x00\\x2f\\x0c\\xab\\x90\\x68\\xe6\\xc9\\xec\\x73\\xcc\\x2e\\x0c\\x58\\x4b\\x80\\xe0\\xbc\\x37\\x57\\x21\\xf7\\xa8\\xfc\\x35\\x31\\x7a\\x5e\\x24\\x0e\\x8c\\x66\\x09\\x2f\\xb6\\x30\\x5b\\x01\\x2c\\x70\\xe1\\x7a\\xea\\xff\\x13\\x38\\x6d\\x5e\\x28\\xd0\\x64\\x30\\xca\\x58\\x5b\\x0c\\x85\\xb2\\x74\\xe7\\xfc\\xbb\\x63\\xe3\\x42\\x3a\\x98\\x25\\x79\\xe5\\xa6\\x4a\\x02\\x62\\xc4\\x19\\x08\\xe5\\x5d\\xbe\\x43\\xda\\xc1\\xe5\\xcc\\x1b\\xb7\\x29\\x8b\\xe4\\x28\\x72\\x0a\\x12\\xe3\\xb0\\x72\\x55\\x9e\\xc2\\x67\\x5d\\x45\\x7a\\xaf\\x8f\\x13\\x25\\x2e\\x28\\xaa\\xd6\\x3c\\x15\\x13\\xf5\\xf2\\x39\\x56\\x4d\\x36\\x3c\\x85\\x05\\xff\\xa4\\xe5\\x0f\\x66\\x48\\xc1\\xcb\\x82\\xbb\\xa8\\x52\\xbf\\xf0\\xac\\xb0\\x30\\xcb\\xe7\\x3f\\x05\\x9d\\xd8\\x7b\\xbd\\x73\\x18\\xc5\\x58\\x6e\\x70\\x86\\x18\\xa4\\xf4\\xc9\\xf3\\xbe\\xc3\\xf4\\xf0\\x7c\\x60\\x9e\\xeb\\xb2\\x4b\\xa8\\x78\\xc6\\xbf\\x1e\\x4f\\x2d\\x0f\\xd1\\x45\\x0a\\xb9\\x4e\\x31\\x75\\x52\\x17\\x78\\x6f\\xb1\\x51\\x82\\x76\\x0f\\xfb\\xe5\\xa2\\x67\\xcb\\xe9\\x98\\xa4\\xff\\x90\\xa2\"},\n{{0x6d,0xc7,0xcc,0xf3,0x29,0x37,0x8e,0x81,0x31,0xb6,0xde,0xfc,0xd8,0x93,0x70,0x30,0x10,0x68,0x94,0x63,0x36,0xb0,0xb7,0x62,0xac,0x5e,0xa5,0x14,0x87,0xdb,0xd3,0x9e,},{0x04,0xe9,0x0d,0x27,0x5e,0x79,0xdf,0x5f,0x2b,0x6e,0xf4,0xa3,0x15,0x05,0xaa,0xc0,0x5a,0x69,0x45,0x9b,0xaf,0x2c,0x58,0x1b,0x3c,0xe3,0xdb,0x29,0xf0,0xf1,0xfc,0x14,},{0x04,0x50,0x9d,0xb0,0x03,0xa1,0xa6,0xed,0x3f,0xbc,0xec,0x21,0xac,0x44,0xec,0x10,0xcc,0x06,0xd7,0x9f,0x27,0x14,0x96,0x08,0x82,0x17,0x03,0x16,0x27,0x5d,0xf8,0x04,0x23,0xa1,0xc1,0xa1,0x12,0xd8,0x81,0xfc,0x24,0xd2,0x81,0x25,0x26,0x07,0x90,0x58,0xaa,0x8b,0x60,0x8b,0xfc,0x6b,0x5e,0x57,0x63,0x22,0x40,0xc6,0x36,0xd6,0xeb,0x00,},\"\\x20\\xce\\xbb\\xe9\\x84\\x01\\xac\\x89\\x34\\xc3\\xe6\\x5a\\x57\\x38\\xcb\\x0e\\xc0\\xcd\\xc7\\x5f\\xdb\\x09\\xdc\\x96\\x31\\x28\\x94\\xb1\\x87\\xc0\\xa4\\x6d\\x2c\\x38\\xf4\\x85\\x5b\\xe3\\xee\\xcc\\xdc\\xdc\\xc5\\x6d\\x92\\x6a\\x8c\\x08\\xce\\x6e\\x74\\x8e\\x2a\\x85\\x8f\\x53\\x53\\x2e\\x7e\\x5f\\xc5\\xf7\\x01\\x4c\\x8c\\x6f\\x86\\x31\\x0c\\xc2\\x6e\\xfe\\xf3\\x0a\\xe5\\x25\\xa5\\x15\\x79\\x40\\xab\\x53\\x5e\\xd8\\xe4\\x03\\x11\\x2b\\x08\\xe3\\x5e\\x2b\\xb3\\xdd\\x91\\xa9\\xae\\x8f\\x77\\x2d\\x2a\\xff\\x37\\xd8\\xc4\\x0d\\x2b\\x5c\\xc8\\x87\\xa6\\xf1\\x50\\x50\\xa0\\xf5\\xbc\\xf0\\x36\\x0c\\x3a\\x9d\\x12\\xd5\\x91\\x86\\x55\\xed\\xc3\\xc1\\x3c\\x86\\xba\\x6f\\x4a\\x2f\\xa3\\xbf\\xcd\\x40\\x5e\\xd3\\x8f\\x87\\x1c\\xf7\\xdf\\xf0\\xf7\\x5d\\xaf\\x2c\\x32\\x10\\x84\\xee\\x9f\\xa8\\x12\\x11\\xad\\xb1\\x05\\xb2\\x5c\\x22\\x88\\xf0\\xf2\\xf7\\xf9\\x3e\\xf6\\x56\\xb2\\xde\\x19\\x01\\x22\\xe7\\xa4\\xbf\\xd4\\xa1\\xbd\\x98\\x93\\xa8\\x48\\x5b\\x50\\x9f\\xf0\\xbc\\x46\\xcc\\x96\\x10\\x51\\xc1\\xdb\\x5a\\x12\\x49\\x0c\\x7e\\x74\\x19\\x22\\xcc\\xc0\\xa6\\x65\\x49\\x64\\x70\\x27\\x6f\\x69\\xc7\\xb7\\x70\\x98\\xc1\\xe6\\x70\\xaf\\x6b\\x9f\\x85\\x12\\x52\\x99\\x68\\x75\\xeb\\x80\\x35\\xa8\\x17\\xfa\\x9b\\xe0\\x7f\\x2b\\xe0\\xbb\\xb1\\x20\\x25\\xe0\\x56\\x54\\x14\\xc8\\x17\\xe9\\x42\\x1a\\xc7\\x00\\x37\\x38\\x93\\x86\\x2f\\x24\\xcb\\x16\\x5f\\x9a\\x27\\x1a\\x64\\xfd\\x23\\x05\\xc6\\x67\\x2c\\x46\\x76\\x7f\\x8f\\x07\\x5b\\xe5\\xd2\\xd4\\x07\\x9b\\xfa\\xdc\\x39\\x56\\x28\\x8b\\x02\\x15\\x60\\x53\\x11\\xb5\\xbf\\x32\\xf0\\x03\\x7b\\x7c\\x5a\\xd5\\x02\\x01\\x3e\\x82\\xae\\x34\\x19\\xd9\\xd8\\xf3\\x9c\\x54\\x5b\\x58\\x88\\xf4\\x71\\x06\\xc9\\x4d\\x5f\\xd6\\x08\\x4d\\x26\\x03\\x4a\\x99\\xf5\\xdc\\xbf\\x26\\xa8\\x4e\\xb4\\xee\\x14\\x9c\\x62\\xa0\\x41\\x0d\\x8c\\x70\\x7b\\x1a\\x9b\\x07\\x1f\\x74\\xed\\x23\\x93\\x25\\x85\\x07\\x2c\\xe6\\xcb\\xd3\\x3d\\x4d\\x54\\xee\\x91\\x79\\x16\\xf5\\xdf\\xc6\\x4d\\x26\\xa4\\x98\\x01\\x84\\x38\\xb4\\x55\\x73\\x93\\x45\\xdd\\x60\\xae\\x0f\\x47\\x50\\x62\\x59\\x15\\xcc\\x82\\x9a\\xb6\\x82\\x2d\\x6f\\x05\\xf6\\xd2\\xbd\\xa0\\xa7\\xbf\\x56\\x01\\xe9\\xa2\\xed\\x6d\\xe9\\x60\\x37\\x1d\\x17\\xe6\\xf4\\x37\\x09\\xc9\\x67\\x8c\\xa7\\x43\\xad\\xfb\\xdb\\x45\"},\n{{0xcc,0xae,0x07,0xd2,0xa0,0x21,0xfe,0x3e,0x6e,0xe2,0x38,0x36,0xa7,0x11,0xb9,0x7b,0x04,0xe0,0xa4,0x41,0xf1,0x69,0x60,0x75,0x72,0x73,0x1c,0xb0,0x8c,0x26,0x94,0x88,},{0xa3,0x22,0x65,0xe5,0x32,0x8a,0x4f,0x49,0xcf,0x06,0xb4,0x67,0xa9,0x8b,0x9f,0x9d,0x5b,0x99,0x7b,0x85,0xdf,0xb7,0x52,0x3c,0xa6,0xa0,0xa1,0xd6,0x27,0xd3,0x28,0x91,},{0x0e,0xec,0x75,0x41,0x05,0x44,0x7f,0x97,0xd4,0xa9,0xcd,0x24,0x6c,0x7e,0xed,0xe3,0xfd,0x06,0x90,0x18,0xf0,0xd0,0x1a,0x41,0xdf,0xab,0xca,0x3e,0x90,0xa7,0x41,0x83,0x5e,0xa4,0xa9,0xd6,0x82,0x34,0x22,0x67,0xb2,0x50,0xfc,0x1c,0x8c,0x54,0x7c,0x89,0x63,0x2d,0x9f,0x68,0x9a,0xf5,0x36,0xc7,0x92,0x90,0x04,0xde,0xd0,0xd9,0x6f,0x09,},\"\\xa4\\xbf\\x82\\x97\\xd0\\xdc\\x5e\\x4c\\x92\\xbd\\x00\\xad\\x5b\\x9c\\x09\\xb1\\x23\\x8b\\x50\\x3d\\x61\\x91\\x16\\xef\\x74\\x26\\x03\\x78\\x34\\x9a\\x92\\x82\\xb4\\x1f\\x3f\\x46\\x76\\xa6\\x21\\x5e\\x3c\\xe6\\xd0\\x22\\x38\\x48\\x0a\\x96\\x04\\x3b\\x29\\x42\\xb3\\xfe\\xed\\x12\\x62\\x0b\\x1f\\xa9\\x7f\\x77\\x03\\xb3\\xeb\\x68\\x3c\\x16\\x01\\xbd\\x2f\\x51\\x82\\x5c\\x45\\x0d\\xf4\\xfd\\x1f\\x33\\xb0\\xbf\\x9c\\x23\\xc0\\x32\\x23\\x78\\x9e\\x06\\xe2\\x4c\\xf1\\x36\\xd3\\xb5\\x57\\x40\\x3a\\x66\\x98\\x1f\\x4b\\x77\\x7d\\xcf\\xe8\\x90\\xd2\\xba\\x96\\xda\\x4a\\x47\\x42\\xae\\xed\\xdd\\x6a\\x61\\x1d\\x05\\xfc\\x21\\x56\\x94\\xa5\\xd8\\x9a\\x5d\\xe6\\x76\\x0b\\x1d\\x94\\x15\\x15\\x50\\x44\\xc0\\x49\\xcb\\x02\\x29\\x1a\\x15\\x14\\xfa\\xa2\\xe7\\x7d\\x2a\\xe3\\x3d\\x44\\x58\\x5b\\xda\\xc6\\x36\\x5b\\xf4\\x81\\xd9\\xc9\\x78\\x33\\x93\\x7e\\xab\\x63\\x6e\\xd6\\x57\\x42\\xa0\\xd5\\x97\\x3b\\x24\\xd5\\x40\\x89\\xb2\\xda\\xf0\\x84\\xd5\\x41\\x47\\x65\\x10\\x5e\\x4e\\xca\\x14\\xaa\\xad\\xd1\\x05\\x33\\x38\\xa8\\x47\\x05\\x05\\x23\\x2e\\x4a\\xc6\\x33\\x34\\x5c\\x5c\\xde\\xe1\\xe4\\x65\\x3d\\x1d\\x93\\x58\\x3a\\xf1\\x18\\x54\\xb1\\xd9\\xb6\\x5f\\xc2\\x02\\x81\\x83\\x8c\\x56\\xdf\\x11\\x48\\xf3\\x5c\\xcf\\x9b\\xfe\\x2f\\x3f\\x80\\xab\\x73\\xf5\\xb7\\x91\\xcb\\xed\\x2d\\x92\\x06\\x44\\xcf\\x03\\x16\\xf0\\xcb\\x5d\\x36\\x62\\xb9\\x12\\x06\\x47\\xda\\x56\\xaf\\xbe\\xb4\\x7a\\x95\\x29\\x53\\xbc\\x1a\\x37\\xde\\x85\\x7e\\x4b\\x39\\xfd\\x92\\xb6\\x32\\xb8\\x51\\x59\\xf4\\x6c\\xd0\\x5b\\x6a\\xbc\\x23\\x38\\xd4\\x63\\x2d\\x48\\xe9\\xa1\\x78\\x86\\x0d\\xe8\\xf6\\x5d\\x9b\\xc2\\x3f\\x24\\x50\\x7b\\x7c\\x56\\x29\\xe0\\xbd\\xaa\\xc0\\x67\\xc4\\x76\\xc9\\xc3\\x94\\x1d\\x86\\xf7\\x88\\x94\\x4d\\x74\\x48\\x52\\xa6\\x1d\\xa7\\x16\\xf9\\x5f\\x3b\\x04\\xf0\\x78\\x3a\\x56\\x29\\x41\\xbc\\xdd\\xa4\\x39\\x59\\x0f\\xd1\\x86\\xb2\\xa8\\xeb\\xf1\\x9a\\x5a\\x7e\\x4f\\x4a\\x3a\\xaa\\xb7\\xa8\\x7a\\x43\\x45\\x24\\xfb\\xc9\\x79\\x9c\\x99\\x31\\xeb\\x8c\\xe4\\xe3\\x4e\\x99\\xb6\\x08\\xca\\xc9\\x4a\\xb7\\xe7\\x44\\x95\\x66\\x8d\\xf1\\x36\\x18\\x5f\\x48\\x7d\\x9f\\xbc\\xb6\\x60\\x5a\\xd7\\x25\\x34\\x54\\x03\\xec\\x57\\xf3\\xf6\\xdb\\x36\\x4a\\x87\\xf3\\x8f\\xea\\x4b\\x4c\\x27\\x15\\x52\\xe9\\xf2\\xe4\\xa1\\xbe\"},\n{{0xdb,0x5d,0x5f,0x41,0xfd,0xdd,0x67,0x68,0x70,0x97,0x47,0xab,0x82,0x39,0xbb,0x4f,0x42,0xa3,0x1d,0x34,0xb4,0xfa,0x88,0x82,0x4d,0x94,0xbf,0x78,0xd3,0x14,0x92,0x64,},{0x03,0x85,0x8c,0xe6,0xb2,0xd2,0x40,0x79,0xee,0xad,0x66,0xca,0x0d,0xfe,0x77,0x2e,0xcd,0xa9,0xaf,0x4d,0x46,0xbc,0x9b,0x5e,0xdf,0xdc,0x28,0x6b,0x95,0xfe,0x97,0x16,},{0x5b,0x3d,0x0d,0xa7,0x10,0x23,0x55,0x48,0x6b,0xe4,0xd6,0x9c,0xfd,0x65,0x88,0x6c,0x9d,0x9c,0x87,0x38,0xb2,0x93,0xca,0xfb,0x23,0xb2,0x10,0x4b,0xfd,0xac,0x8d,0x7d,0x01,0x29,0x8e,0xeb,0x18,0xfd,0xe3,0xde,0xd6,0x49,0x1d,0x41,0xb4,0x19,0xcc,0x66,0x37,0x52,0xc4,0xe6,0x7d,0xbe,0x89,0x86,0x83,0x3d,0x20,0xe4,0xef,0x34,0x18,0x0b,},\"\\x67\\xee\\x03\\xde\\x45\\xc3\\xe7\\x03\\x0d\\xb5\\x24\\x6e\\xe5\\xb5\\x1b\\xf2\\x98\\xbb\\xa3\\xe4\\xd0\\x93\\x49\\x37\\xfc\\x12\\xd9\\xa6\\x29\\x60\\x4c\\x53\\xc0\\x70\\xe3\\x0d\\x61\\x19\\x99\\xa9\\xcd\\xda\\xf2\\xd9\\xac\\xda\\x6a\\x9f\\x67\\x20\\x2b\\x35\\x23\\x69\\xd4\\x82\\x60\\xee\\xbc\\xe0\\xe7\\x8e\\x4d\\x5a\\xe5\\x4f\\x67\\x75\\x21\\xf8\\x4a\\x7b\\xe0\\x01\\x7f\\xab\\x27\\x8b\\x2b\\x57\\x27\\x5e\\xfc\\x5f\\xa5\\x7c\\x61\\x71\\x86\\xfc\\x1b\\xa4\\x9e\\xdf\\xbd\\x33\\x08\\x63\\x48\\x78\\xd8\\x64\\xf2\\xda\\x15\\x83\\xca\\x8d\\x56\\xce\\x9f\\xae\\x77\\xc4\\x62\\x03\\x9a\\xbc\\x32\\xd0\\x53\\x9c\\x0a\\x60\\xb7\\xbb\\xba\\x50\\x29\\xe9\\x32\\x9d\\x27\\x56\\x83\\xd9\\xc4\\xce\\x77\\xd0\\xb9\\x08\\xad\\xe9\\x8b\\x0e\\x32\\xb4\\x42\\x0d\\x9a\\xee\\x2c\\xc1\\x0e\\x4b\\xe9\\x22\\xf9\\x57\\x25\\x82\\xdd\\x89\\x67\\x14\\x1c\\x1d\\x40\\x2e\\x21\\x5f\\x20\\xae\\xe0\\xa8\\x90\\xe2\\x36\\x8e\\x40\\x6d\\xea\\x11\\xbd\\x11\\x17\\x7f\\x2e\\x03\\x8a\\xa2\\xf1\\xa0\\xdf\\xf5\\x1a\\x12\\x8d\\x95\\x5d\\x5e\\x5f\\x8d\\x5d\\x00\\x09\\xaa\\xa8\\x24\\x40\\xa9\\x68\\x64\\xd6\\xc6\\x97\\xf9\\x10\\xd1\\xdf\\x23\\x0f\\x46\\x7f\\x0e\\x02\\xa2\\xe0\\x2b\\xf9\\xe4\\x5d\\xa9\\x5f\\x25\\x54\\x10\\xcc\\x5a\\xab\\x8d\\x85\\xf4\\x49\\xa5\\xde\\x99\\xaa\\xbd\\x44\\xfd\\x76\\x3e\\xc1\\x46\\x29\\xf3\\xdb\\xab\\x1a\\x24\\x7b\\xff\\xb7\\x17\\x46\\x48\\xe4\\x3b\\x9f\\xb1\\xeb\\x0d\\xf5\\xe4\\x10\\x9b\\x7a\\x88\\xe0\\x55\\x12\\xb2\\x08\\x65\\xba\\xd3\\x9f\\x9e\\xa7\\x9d\\x52\\xf5\\x18\\x8e\\x7c\\xa5\\x19\\x44\\x05\\xbf\\xb1\\xa0\\x97\\x27\\x61\\x7f\\x3f\\x6c\\x88\\x19\\x20\\x08\\xed\\xbc\\x0c\\x65\\x85\\xdb\\xf2\\x61\\xf1\\x49\\xdf\\xfb\\x59\\x3d\\x42\\x71\\x6e\\x5a\\x57\\x77\\xf5\\x46\\x2b\\xee\\xb1\\xe9\\xa5\\x6a\\x2c\\x76\\xe6\\xcb\\x73\\x51\\x17\\xcc\\x11\\x83\\xa3\\x8d\\x1e\\x00\\xb3\\x03\\xd1\\x74\\xaa\\x9c\\xf5\\xc7\\x31\\xb2\\xc7\\x0e\\xdd\\x79\\xcc\\x5d\\xc9\\x6f\\x40\\x18\\xf1\\xd7\\x1d\\x71\\x98\\xbb\\xb7\\xd1\\x34\\xcd\\x2f\\xf8\\xc1\\x5f\\x9a\\x04\\x28\\x0d\\xb2\\x6a\\x8f\\xa9\\x99\\x7e\\xb8\\x6b\\x13\\x3c\\x02\\x2e\\xda\\x15\\xd8\\xad\\x5e\\x77\\xcc\\x9f\\x62\\x61\\x59\\x60\\xba\\xc2\\xf9\\xbb\\xc3\\xeb\\xbd\\x19\\x8f\\x72\\xc5\\x72\\xb9\\x71\\x56\\xfa\\x7f\\xa2\\x29\\xa9\\x80\\x14\\xe1\\x70\"},\n{{0x7f,0x04,0x8d,0xfc,0xc2,0x65,0x0c,0xda,0x59,0x49,0x1d,0x4c,0xe2,0xb2,0x53,0x3a,0xec,0xc8,0x9c,0xc4,0xb3,0x36,0x88,0x51,0x94,0xb7,0xad,0x91,0x7d,0xb5,0xcd,0x14,},{0x08,0x00,0x1b,0x5d,0x40,0x95,0x8b,0xcb,0x27,0x0b,0xee,0xa9,0xba,0xba,0x33,0x87,0xe3,0xa4,0xb9,0x00,0xfc,0x42,0x27,0x56,0x57,0xc6,0xc6,0x91,0xa2,0xe2,0x64,0xf2,},{0x58,0x33,0x70,0x97,0x1d,0x24,0x65,0x2a,0xd2,0x13,0xc4,0x26,0x15,0x91,0x19,0x38,0xfa,0x9a,0xa3,0xd9,0xb7,0x19,0x69,0x40,0xe6,0xeb,0x08,0x15,0x12,0x00,0xc7,0xb6,0x72,0x9d,0x1e,0xff,0x8f,0x4f,0x09,0x04,0x07,0x4d,0xab,0x3d,0xdd,0xa6,0xaf,0x1e,0x4e,0x56,0x2b,0x7d,0x62,0x20,0xc1,0xa5,0x62,0x68,0x3b,0xea,0xb2,0x68,0xf8,0x0e,},\"\\x91\\x75\\x19\\xcd\\xb3\\x35\\x19\\x68\\x0b\\xca\\xe0\\x4f\\xaa\\x79\\x07\\x71\\xce\\x7d\\x13\\x97\\xc3\\x45\\xf1\\xb0\\x3d\\xd7\\x62\\x57\\x76\\xf3\\xf1\\x95\\x80\\x99\\x32\\x61\\x8b\\x1c\\x64\\xac\\xd9\\x3a\\xd0\\x00\\xea\\xd0\\x96\\x54\\xa3\\x3d\\x14\\xf7\\x48\\xb4\\x6b\\x67\\xaa\\xe0\\xff\\x12\\xdf\\x3c\\xc1\\x63\\x28\\x0f\\x47\\xce\\xdc\\x16\\xa8\\x57\\x90\\x34\\xe4\\x98\\x84\\x29\\x67\\x72\\xec\\xbd\\xbb\\x71\\xca\\x29\\xc1\\x66\\x23\\x35\\x33\\xc8\\xde\\x54\\x01\\x2b\\x41\\x2c\\xa1\\x3c\\xc2\\x58\\xf7\\xc5\\x46\\x5d\\x83\\x42\\x2f\\x52\\x4e\\x4c\\x05\\xf8\\x06\\x31\\x34\\x78\\x31\\x9f\\xd1\\x43\\xcf\\x50\\x88\\xe6\\x98\\x37\\x69\\x7d\\x36\\x15\\xd8\\x0a\\x7f\\xa7\\xe7\\x44\\x3f\\xca\\x65\\xe7\\x53\\xac\\x1b\\x11\\xd8\\xef\\xf3\\x47\\x66\\x36\\xae\\x02\\xd7\\xa2\\x0f\\x4b\\x23\\x88\\xda\\xd6\\x84\\x00\\x2f\\x5c\\xe9\\x57\\xca\\xdd\\xd2\\x05\\x3d\\x0e\\xd5\\x33\\x13\\x2a\\x81\\xca\\x19\\xbb\\x08\\x0b\\xd4\\x3b\\xe9\\x32\\x02\\x8c\\xb5\\xf6\\xb9\\x64\\xf0\\x08\\xb5\\xb1\\xc1\\xc5\\x99\\x3b\\xc9\\xb5\\x48\\x5b\\x22\\xbb\\xef\\x70\\x1f\\x0a\\x26\\xa3\\xe6\\x75\\xea\\x31\\x12\\x2b\\xba\\xe9\\x1d\\x86\\x4b\\x54\\xd8\\x95\\xaf\\xdc\\x79\\xca\\x58\\xd4\\xfe\\x44\\x92\\x13\\x35\\x3b\\x14\\x9f\\x31\\x43\\xb5\\x14\\x4d\\x74\\x7c\\x5b\\x46\\x97\\x47\\x9a\\xe6\\x85\\x28\\x48\\x53\\x84\\x04\\x4a\\xa2\\xc9\\x9b\\xa4\\xb1\\x7b\\x18\\x4e\\x94\\x98\\x22\\x69\\xbd\\xe2\\xde\\x0b\\x17\\x70\\x5d\\x0b\\xfc\\x46\\xd6\\x90\\x6a\\x90\\xed\\xef\\xe8\\x91\\x95\\xde\\x6b\\xb8\\xf3\\xfb\\x6a\\x37\\x41\\x86\\xc7\\xcd\\x08\\x6d\\x13\\xd1\\xb3\\x52\\x5a\\x39\\x94\\xdc\\x80\\x20\\xe1\\xa0\\x05\\x54\\xac\\x8a\\x82\\xd6\\x04\\x7c\\x5b\\xff\\x5e\\x7f\\x12\\x45\\x0f\\x48\\x65\\xda\\x16\\x1e\\x1a\\x02\\x1f\\xd9\\xbe\\x8b\\xd3\\x3a\\x32\\xbb\\x54\\xa4\\xdd\\xf8\\x74\\x51\\x2e\\x74\\xb5\\xcf\\xd3\\xfc\\x3c\\xd9\\xac\\x11\\xed\\xd8\\x78\\x43\\x36\\x68\\xe3\\xfc\\xc7\\x82\\xb9\\x7b\\x6d\\x90\\x5a\\xdb\\x0e\\xbe\\xc4\\x2c\\x92\\x54\\xac\\x90\\xf3\\x58\\x22\\xc0\\x0f\\x97\\xff\\x3f\\x0c\\x7c\\x39\\xed\\x3c\\x7c\\xb3\\x92\\x0f\\x56\\x08\\xbb\\x45\\x83\\x8b\\xb2\\x42\\xa5\\x2a\\x86\\x37\\xd7\\xce\\xcd\\xcf\\x48\\x9f\\xa1\\x83\\xb4\\x54\\x51\\xc6\\xc9\\xfc\\xbb\\xbf\\x91\\x4f\\x5f\\x7e\\x6b\\x22\\x3b\\xcb\\x46\\x75\"},\n{{0x9f,0xeb,0x3d,0xf8,0x8c,0x49,0x4a,0x99,0x84,0x9c,0x6f,0xca,0x19,0x42,0x01,0x47,0x7a,0x2f,0xa7,0x56,0x4e,0x29,0xfb,0x06,0xcb,0x44,0xc1,0x15,0x4e,0x8c,0xea,0x3a,},{0xc3,0x56,0x28,0xca,0x6e,0xe2,0x8e,0xc1,0xc2,0x39,0xdd,0xc5,0xbb,0xa2,0xa9,0xe0,0x9e,0x48,0x46,0x81,0x6b,0x14,0x3c,0x74,0xdf,0xa2,0xae,0xc1,0xf6,0x25,0x51,0xb6,},{0xa1,0xc2,0x60,0x78,0x35,0xbe,0xc1,0xa1,0xd8,0x78,0x72,0xfd,0x8e,0xe4,0x88,0xd0,0xae,0x9e,0xd2,0x3d,0x49,0xfd,0x67,0x86,0xfc,0x49,0x96,0x72,0x5e,0x49,0xb3,0x26,0x21,0x18,0xba,0xbb,0x48,0x34,0x87,0x7c,0x7f,0x78,0xfb,0xea,0xc0,0x2d,0xf4,0x0a,0xb0,0x91,0xb8,0xb4,0x20,0xdc,0x99,0x51,0x38,0x1e,0x3b,0xcd,0xa0,0x67,0x05,0x02,},\"\\x95\\xfb\\x75\\x81\\xbd\\x25\\xff\\xd4\\x42\\xc3\\xae\\x38\\xa1\\x9b\\xea\\x73\\x49\\xc7\\xb7\\x68\\x3b\\xa6\\x76\\x7e\\x14\\x8f\\x0a\\xfc\\x15\\x37\\x3f\\x67\\xc1\\x6d\\x47\\x17\\x81\\x20\\x2e\\x6d\\xa8\\x05\\x4e\\xd7\\xfb\\x9e\\xe2\\x04\\xcc\\x0f\\x63\\xc2\\x10\\xa6\\x70\\xa5\\xf9\\xce\\xd4\\x29\\x45\\x88\\x19\\x63\\x30\\xd3\\x1b\\x8e\\x83\\x92\\xbe\\xf6\\xb4\\x8f\\xe3\\xc9\\x20\\x78\\xfa\\xe1\\x12\\x84\\xb4\\xc3\\xba\\x20\\xd9\\x37\\xe2\\x71\\x9d\\xe7\\xbf\\x67\\xc0\\x06\\x69\\xad\\x23\\xe6\\x13\\x84\\xeb\\xdf\\x8c\\x6e\\x60\\x73\\x54\\x28\\xc0\\x84\\xfe\\x21\\x7f\\xdb\\x47\\x09\\xcc\\xb6\\x08\\x3f\\xc0\\xae\\x4a\\x05\\x27\\x3e\\xef\\x73\\x90\\x23\\xd3\\x4b\\xb7\\x3f\\x66\\x2d\\xac\\xdf\\x11\\x0b\\x6d\\xbd\\x3e\\x74\\xfc\\x14\\x91\\xe8\\xc9\\x65\\x96\\x07\\x5f\\xae\\x5c\\x36\\xaa\\xbe\\x2a\\x0a\\x53\\x05\\x2b\\xf7\\x7c\\x44\\x62\\x43\\x80\\x63\\xaa\\x7b\\xc0\\xc5\\x0a\\xb9\\x20\\xc9\\xeb\\x28\\x86\\x71\\x56\\x0c\\xa5\\xba\\x7a\\xf4\\x4a\\x53\\xdb\\x2e\\x2f\\xf4\\x3c\\xa5\\x60\\x69\\xea\\x55\\x17\\xcb\\x21\\x4e\\x76\\xfa\\xa5\\x3d\\xbd\\xa1\\x00\\x00\\x3c\\x4f\\x61\\x75\\x41\\x40\\x41\\xbe\\x74\\xde\\x22\\xce\\x15\\x5d\\x22\\x81\\xb6\\xf4\\x03\\x5b\\xe3\\x98\\x41\\xaf\\xdb\\x96\\xdd\\x89\\xaa\\x80\\x8e\\x68\\x65\\xba\\xe6\\x2d\\x6b\\xed\\xd9\\x19\\xd3\\xe8\\x65\\x10\\xb9\\xfa\\x5f\\xed\\xd1\\x97\\x7c\\x41\\x31\\xb2\\xb8\\x6e\\x0f\\x48\\xd7\\x21\\x5e\\xb1\\x3d\\x54\\x98\\xca\\x5d\\x23\\x68\\xf8\\x18\\x95\\xed\\x85\\x5a\\x52\\x71\\x24\\x65\\x7e\\xc9\\x53\\x9e\\xfe\\x3b\\x24\\x99\\xa3\\xb0\\xb3\\x38\\x26\\x2f\\x26\\x34\\x0e\\x22\\x55\\x4c\\x79\\xf4\\xfa\\xd2\\xb4\\xe4\\x19\\xc7\\x0b\\xc1\\xa2\\x10\\x7d\\x20\\x64\\x56\\xb6\\x36\\x87\\x81\\xbe\\x4b\\x5e\\x2c\\x54\\xda\\x42\\xd3\\x36\\x04\\x0f\\xb7\\xba\\x49\\xc3\\x2d\\x75\\x23\\x21\\xad\\xcd\\x92\\x98\\x6e\\x78\\xbe\\xdb\\x22\\x6c\\xea\\xc5\\x02\\x92\\x08\\x9b\\xb5\\x79\\x02\\x7f\\x70\\x22\\x17\\x74\\x5a\\xfe\\x06\\xa5\\xbe\\x13\\x6b\\x39\\x98\\xa3\\x60\\x4c\\x9f\\xf2\\xac\\xd6\\xfa\\x3f\\x3f\\x71\\x63\\x3d\\x31\\x02\\xfb\\xf0\\x30\\x47\\xc5\\x48\\x6f\\x84\\xc4\\xdc\\x24\\x47\\xd8\\x63\\x79\\x63\\x83\\xd5\\x5f\\x08\\xc9\\x81\\xfd\\x4d\\xd7\\xdc\\x1c\\xb7\\x2b\\x8b\\xa4\\x43\\x5a\\xf6\\xab\\xdd\\x74\\xe6\\xf6\\xe6\\x79\\x8f\\x1a\\xe2\"},\n{{0xbf,0xf6,0x89,0x55,0xdd,0x6a,0xe0,0xe8,0xba,0x85,0xab,0x0d,0x0c,0xda,0xf0,0x4a,0x9f,0x5b,0xef,0xd5,0xef,0x60,0x14,0xf4,0x99,0x94,0xa7,0x83,0x63,0xdc,0x17,0xf7,},{0x0a,0xd9,0x49,0x3a,0xf8,0x0b,0x15,0xf0,0x7a,0x52,0x1c,0xcd,0x67,0x4f,0xe9,0xe5,0x21,0x2a,0x4a,0x28,0xc1,0x7c,0x74,0xf6,0x60,0x5f,0xfe,0xf7,0x8a,0x4a,0xed,0x72,},{0x93,0x19,0xee,0xf7,0x40,0x63,0x3a,0xda,0x1a,0xf0,0xe1,0x37,0x64,0x4c,0x61,0xfb,0x3e,0x11,0xba,0x4b,0x01,0xd3,0xc6,0xf2,0x53,0x92,0xdc,0x93,0x67,0x87,0x2a,0x23,0xbe,0x56,0x31,0x0d,0x31,0x2e,0xfc,0xb9,0x1b,0xdb,0xab,0x78,0xa7,0x5e,0x57,0x6e,0xbe,0x90,0x81,0x97,0x24,0x15,0xf5,0x62,0xdb,0x41,0xba,0xf5,0xe2,0x33,0x8b,0x07,},\"\\xd8\\xf5\\x65\\x0a\\xa3\\x58\\x1c\\x4d\\x39\\xbd\\x1b\\x8a\\xfc\\x96\\xc1\\xad\\x7c\\x4b\\xf7\\x23\\x42\\x6f\\x9d\\x7f\\xab\\xd1\\xa5\\xc8\\xac\\x1d\\x2f\\xe5\\x4a\\x97\\x1f\\xac\\x76\\x5e\\x05\\xaf\\x6e\\x40\\x7d\\x72\\x69\\xba\\xb6\\x61\\xb3\\x43\\x22\\x92\\xa4\\x84\\xf9\\x52\\xc1\\x10\\x95\\xbb\\xd2\\x0a\\x15\\xd7\\x7c\\x41\\xf8\\xf3\\x73\\x1a\\x50\\x4d\\x51\\x8e\\xe1\\x0c\\xd0\\x06\\xc9\\x6e\\xe5\\x73\\x72\\xde\\x5b\\xea\\x34\\x8e\\xc8\\xba\\x15\\x91\\x62\\x17\\x0c\\x63\\xe9\\x70\\xf1\\xc7\\xa3\\x46\\x5a\\x3d\\x59\\x2e\\x1d\\x56\\xc6\\x54\\x0f\\xbd\\xb6\\x02\\x28\\xe3\\x40\\x90\\x96\\x46\\x32\\x0c\\x95\\xf2\\x56\\x98\\xcd\\x48\\x96\\xbd\\xff\\x58\\xe2\\x56\\x1e\\x3b\\x3d\\x9a\\x73\\xb8\\x97\\x47\\x91\\x2a\\x1c\\xf4\\x67\\xd6\\x3e\\x41\\x45\\x5f\\xda\\x77\\x47\\x7f\\x46\\xfe\\x69\\x37\\xbb\\x0e\\x79\\xd9\\x2c\\xcd\\x52\\xe8\\x2d\\xba\\x90\\x8a\\x05\\xa5\\x7c\\x7e\\xcf\\x49\\x55\\x4a\\xb4\\x4c\\x0b\\x71\\x8e\\x3b\\xdd\\x5f\\xc0\\xbf\\x70\\x70\\xd9\\xc5\\x8f\\x86\\x05\\x91\\xc1\\x8b\\xca\\x8b\\x3a\\x9a\\x14\\x8a\\x06\\x54\\x8e\\x0f\\x01\\x60\\x2b\\x1e\\x6f\\x68\\x60\\x37\\xc9\\x4f\\xf7\\x32\\xe1\\x55\\xd5\\x2d\\x5b\\x0b\\x44\\x70\\x3b\\x3d\\x11\\x16\\x3e\\x3f\\x56\\xe3\\xb9\\xc1\\xb8\\x64\\x76\\xe4\\xdc\\xbf\\xc5\\x3f\\xa0\\x59\\x84\\xe8\\xc7\\x5d\\xd2\\x18\\x43\\xcf\\x96\\xf9\\xe4\\x94\\xab\\xba\\xe7\\x18\\x4a\\xa4\\x27\\x36\\x63\\x3e\\x38\\x11\\xae\\xff\\x40\\x2b\\x2f\\xcb\\x7d\\x7f\\x70\\x2e\\x44\\x72\\x41\\xe2\\x2a\\x58\\x84\\x2f\\xd6\\xd0\\xc0\\x3d\\x33\\xff\\x5b\\x8c\\x79\\x22\\x00\\xe1\\x73\\xda\\xa7\\xb2\\x17\\xe4\\xb2\\xf4\\x43\\x3e\\x6c\\x02\\x0a\\xcc\\xe5\\x01\\xb9\\x32\\x3a\\xa0\\x24\\x11\\x44\\x43\\x4b\\x08\\xe9\\xd2\\x46\\x91\\x39\\xff\\x67\\x34\\x22\\x08\\x90\\x05\\x46\\x20\\x0f\\xd9\\x71\\xa6\\x5d\\xbd\\x6d\\xb6\\xc2\\x1e\\x3e\\xf9\\x17\\x2a\\xbb\\xa1\\xea\\x9e\\xa2\\xa2\\x49\\xad\\xdf\\x1a\\x1e\\xaa\\x3c\\xe1\\x19\\x38\\xb1\\x3e\\x30\\x91\\x3c\\xd0\\xda\\xd4\\x91\\xfc\\xbb\\x32\\x85\\xea\\x37\\x8b\\x8e\\xf9\\x22\\x7f\\x3f\\xa8\\x0b\\x58\\x6e\\xcf\\xea\\xe1\\x37\\x06\\x6f\\x84\\x48\\xac\\xdf\\xb7\\x8d\\x6d\\x3e\\x9e\\xf4\\xa6\\xb3\\x62\\xdf\\x42\\x41\\xad\\x9a\\xe2\\x53\\xb8\\xe1\\x59\\x7d\\x65\\x6e\\x00\\x0c\\xea\\x44\\x7a\\x02\\xfa\\x49\\x33\\x32\\x86\\x09\\xbb\\xa0\"},\n{{0x1b,0xa9,0x19,0xc0,0x66,0xbb,0x56,0xe6,0x40,0xc3,0x33,0x59,0x68,0xe1,0xd1,0xb5,0xbc,0xc0,0x93,0x38,0x3e,0x2d,0x7c,0xf8,0xb5,0xff,0xf5,0xc6,0x1e,0xc4,0x7a,0x77,},{0x80,0x4c,0x90,0xbd,0xc2,0xb3,0x61,0x8b,0x01,0xf0,0x75,0xe0,0x41,0xfa,0x97,0x1b,0x83,0xc5,0xb6,0xcf,0xa3,0xb6,0xb3,0x97,0x4f,0x3f,0xa4,0x35,0x99,0xbe,0xac,0xab,},{0x50,0x3e,0xb7,0xed,0x6d,0xe1,0xb7,0x76,0xc9,0x52,0xf2,0x55,0xbb,0xd4,0xbc,0xfb,0x0e,0x48,0xbc,0x70,0xc2,0xcc,0x2f,0x1f,0x72,0xbf,0x68,0x81,0x47,0x90,0x40,0xc4,0x75,0x24,0xec,0x54,0x2a,0xe1,0x3f,0x60,0x05,0xca,0x50,0x16,0xb5,0x8b,0x73,0x6a,0x50,0x89,0x8d,0xd0,0x56,0x9d,0x4d,0x38,0xad,0x29,0x86,0x30,0xd6,0x8a,0xdb,0x0b,},\"\\x87\\xc5\\xc7\\x5d\\x8a\\xd0\\x7d\\x52\\xac\\xd7\\x81\\xd1\\xbb\\x95\\xf7\\x8c\\x70\\xe2\\x1c\\x2d\\xd6\\x6f\\x7a\\xa4\\x42\\x34\\x15\\x2f\\x98\\x23\\x4d\\x12\\x83\\x58\\xa8\\xae\\xe9\\x8e\\xa9\\x03\\xa7\\x7b\\x44\\x1d\\xb1\\x44\\x7a\\xe6\\xff\\x34\\x32\\xdd\\xd4\\x57\\x0f\\x7f\\x58\\x03\\x61\\x22\\xc1\\xfd\\xcc\\x93\\xcb\\x21\\x57\\x37\\x39\\xc1\\x9c\\xca\\xa4\\x11\\x50\\x8e\\x08\\xde\\x26\\x06\\xf3\\xd8\\xf2\\xdb\\x89\\xdf\\x6a\\x44\\xa4\\x61\\x33\\xd5\\x70\\x18\\x46\\x26\\x27\\xe2\\x2f\\x57\\xef\\x36\\xd1\\xde\\x02\\x4d\\xe3\\xd4\\xae\\x41\\xb7\\x52\\xdf\\x48\\x21\\x15\\x59\\x34\\xb4\\x47\\xb2\\xef\\xfe\\x51\\x24\\x87\\x52\\x1b\\xe0\\x35\\x68\\x32\\xa7\\x4c\\xe0\\xe2\\xd8\\x30\\x1b\\x79\\xf9\\x31\\x75\\xe8\\xb6\\xb9\\x61\\xb1\\xdf\\x63\\x7d\\x8a\\xca\\xdc\\x88\\x45\\x43\\xc6\\x86\\x4f\\x80\\x25\\xec\\xec\\xec\\x7c\\x6e\\x4f\\xe0\\xfe\\xcf\\xc4\\x0d\\xcd\\x95\\xe8\\xd6\\xab\\x93\\xce\\x25\\x59\\x53\\x84\\x43\\x6b\\x59\\x8b\\x73\\xc7\\x4b\\x03\\xd4\\x9e\\xd5\\x00\\x2c\\x0f\\x85\\x8c\\xfd\\x9d\\x0d\\xf6\\x1e\\xde\\x93\\x7c\\xc4\\x16\\x59\\xd6\\x70\\x8b\\x96\\xfc\\x5a\\xaa\\xde\\xe1\\x09\\xe2\\xa6\\x88\\x46\\xba\\xf2\\xc2\\x46\\xdf\\xcf\\x3d\\x27\\xc2\\x8b\\xd1\\x37\\x1e\\x35\\xfc\\x94\\x12\\x63\\x14\\x42\\xee\\x75\\xf3\\x8c\\x6e\\x49\\x58\\x07\\x0a\\x74\\xf6\\xe6\\xa2\\x20\\xf7\\x5c\\x72\\x80\\xea\\xb4\\x73\\x7d\\x97\\xe3\\x78\\x82\\xf3\\x62\\x48\\x11\\x67\\x5f\\x16\\xca\\xf6\\x0c\\xb9\\x44\\xbc\\xe9\\x2e\\x75\\x88\\x4c\\x56\\x48\\x3c\\x61\\xf2\\x6b\\x63\\x71\\xb1\\xb5\\x12\\x37\\x62\\x1a\\x06\\x54\\x3e\\xb4\\xab\\xea\\x7b\\xec\\xc4\\xfc\\x31\\xdb\\xb5\\x47\\x5b\\x3d\\xeb\\x9b\\xb3\\xc8\\x99\\x23\\x87\\x10\\x48\\x30\\xc6\\x07\\x2a\\xfe\\x1a\\xf2\\x44\\xbf\\x68\\x1a\\x40\\x32\\x9c\\x9b\\x37\\x77\\x2b\\x09\\xc5\\xe8\\x8e\\x78\\xf7\\xdf\\xfb\\xc0\\x45\\x49\\xff\\xa1\\x3b\\x41\\x44\\xdd\\xfa\\x53\\x8f\\xc4\\xb3\\x30\\x05\\x40\\xad\\x83\\x02\\x15\\xe2\\x5f\\x11\\x44\\x6d\\x28\\x9f\\x33\\x12\\x2c\\x2c\\x88\\x0d\\xe3\\xda\\x71\\xc4\\x53\\xd7\\xe8\\x8f\\x7c\\xa4\\xea\\x3d\\x12\\x55\\xe8\\x2f\\x4b\\xc9\\xe5\\x53\\x3d\\xc4\\x01\\xc3\\x30\\x40\\xe1\\x69\\x40\\xb2\\xcf\\x9c\\xf2\\x1f\\xea\\xca\\x1c\\x2c\\x6c\\x33\\x33\\x7c\\xf7\\x5e\\x18\\x84\\xb4\\x83\\xbf\\x80\\x15\\x36\\xd3\\x04\\x08\\x91\\x15\\xa0\"},\n{{0x9b,0x36,0x24,0x7c,0x17,0x71,0x0e,0x95,0x26,0x1a,0x7d,0x70,0x2f,0x57,0xfe,0x81,0xf2,0x97,0x11,0x17,0xa5,0x0c,0x87,0x92,0x01,0x93,0xb3,0x86,0xd4,0x94,0xca,0x97,},{0x29,0xae,0x39,0xf2,0x73,0xe3,0x5f,0xb3,0xf6,0x11,0xda,0x09,0x16,0x00,0x65,0x0e,0xfb,0xc4,0xfc,0x4d,0x1e,0x7b,0x4c,0x76,0xac,0xed,0x5a,0x83,0xf8,0x26,0x34,0xf3,},{0x03,0x59,0x70,0xa6,0x72,0xe9,0x3f,0x87,0xeb,0x42,0xcc,0x39,0x6f,0x6e,0xa7,0xe1,0xb3,0xdd,0x5c,0x59,0x51,0x57,0x28,0x26,0xd1,0x07,0x5a,0x15,0xc2,0xd7,0xe4,0x54,0xdf,0x19,0x5b,0x51,0xaa,0xe8,0xdc,0x61,0xef,0x7a,0xb8,0x95,0x48,0x5f,0x64,0xe5,0x98,0x95,0x73,0xd9,0x8a,0x06,0x2e,0x67,0xae,0x73,0x56,0xfe,0x5c,0x9e,0x3b,0x0f,},\"\\xe8\\xd9\\xd5\\x3b\\xa2\\x7e\\x98\\xed\\xd5\\x5d\\xf3\\xc6\\xb2\\x45\\xea\\xcd\\xdc\\x8a\\x40\\xe3\\xef\\xb0\\x07\\xbc\\x91\\x8e\\xc5\\xa8\\x69\\x17\\x8a\\x17\\x0b\\xb4\\xa6\\x35\\xb7\\xf8\\xf7\\x42\\xe3\\x7a\\xd4\\x5d\\x14\\xa7\\x43\\x44\\xa6\\xb5\\x22\\x83\\x0a\\x52\\x21\\x06\\xeb\\x96\\x0d\\xaf\\x19\\x2d\\xc1\\xe0\\xfd\\x70\\xf1\\x61\\x60\\xe1\\x22\\x51\\x68\\x92\\xd0\\xe2\\xab\\xd0\\xd4\\xae\\x0f\\x0d\\x2e\\x5a\\xdc\\xc9\\x9a\\xd5\\x53\\x02\\xe2\\x51\\xb3\\xe7\\xa4\\xd0\\xcb\\x33\\x77\\x4a\\x49\\x70\\x49\\x90\\x5c\\x33\\xde\\x1f\\xbb\\xc1\\xad\\x2b\\x6c\\x64\\x52\\x95\\xfe\\x41\\x6b\\x4d\\x12\\xb2\\x32\\xef\\xe0\\xa3\\x3c\\xd2\\xad\\x87\\x32\\xeb\\xa1\\xc3\\xcb\\x0e\\xae\\xb0\\xb2\\xa5\\x7f\\xa0\\x3e\\xc5\\x67\\xca\\x29\\x21\\x0b\\xf6\\xff\\x95\\x42\\xa7\\x66\\xf4\\x96\\xfe\\x68\\x05\\x8a\\xa9\\x83\\x80\\x6c\\xbe\\x7a\\xb1\\x0a\\x47\\x92\\x0b\\xac\\x82\\x48\\x81\\x8e\\x54\\xa4\\x15\\x51\\xc9\\xa0\\x95\\x9e\\x89\\x94\\xca\\xc6\\x0f\\xc8\\x68\\xad\\x48\\xb5\\xa2\\x4d\\x5f\\x24\\xa7\\xa5\\xa3\\xfd\\x90\\xb8\\x47\\xe8\\x17\\xad\\x3d\\xd5\\xd0\\xd6\\xf8\\xde\\x2d\\x20\\x4f\\x64\\x24\\x83\\xbd\\x53\\x58\\x5a\\x92\\xef\\x92\\x54\\x15\\xa9\\xb3\\x8f\\xbb\\xf0\\x7f\\xc0\\xf3\\x5e\\x70\\x75\\x69\\xcf\\x48\\x8b\\x20\\x54\\x53\\xce\\x54\\x33\\xeb\\xa6\\xfd\\xe8\\x78\\x1a\\xf7\\x2b\\x52\\xbf\\xbc\\xab\\x85\\xea\\xd3\\x85\\xd9\\xd3\\x17\\x5e\\x21\\xad\\x33\\x73\\xad\\x53\\x5c\\xf0\\xe3\\x57\\xed\\x6b\\x53\\x83\\xef\\x38\\x29\\xa9\\xd5\\x09\\x5b\\x87\\xdc\\x9a\\xad\\xbe\\x0c\\xa7\\xab\\xad\\xf3\\x3e\\xc3\\xb6\\xff\\xd6\\xeb\\x94\\xaf\\xdc\\xc1\\x2e\\x8d\\x66\\xa6\\xfc\\x05\\xac\\xf9\\x73\\x68\\xdb\\x0f\\x69\\x56\\x5d\\xcd\\x8f\\xef\\x4d\\x1e\\x49\\xd7\\xdd\\x4a\\xc0\\x53\\xc2\\x18\\xf5\\x24\\x0c\\x81\\x2d\\x4e\\xbb\\xa4\\x40\\xdc\\x54\\xca\\xcd\\xdb\\x1c\\x39\\x32\\x9e\\x5b\\xd0\\xc3\\xc8\\x0d\\xc3\\x25\\x9a\\x80\\xf0\\x59\\xf9\\x46\\x79\\xaa\\x07\\x94\\xca\\x01\\x15\\xcc\\x62\\xaf\\x25\\xe1\\x24\\xcb\\x8a\\x9d\\x41\\x60\\xea\\xce\\x6d\\x22\\xc7\\xb1\\xc4\\x45\\x44\\xf8\\x11\\x42\\xa1\\x9e\\xbb\\x02\\xa9\\xbd\\xa6\\x42\\x9c\\x50\\xe7\\x83\\xdb\\x4a\\x07\\xf0\\x21\\x9e\\x85\\x7c\\x8d\\x3c\\x56\\x55\\xa5\\x82\\x83\\x1c\\x8e\\xab\\xc3\\xf1\\x9b\\x59\\xad\\x8d\\x2c\\x71\\x4a\\xde\\xaf\\x40\\x39\\xd5\\xcf\\x70\"},\n{{0x6f,0xed,0xe7,0x39,0x6c,0x46,0x20,0x33,0x18,0x9a,0xcd,0x23,0xd2,0xf9,0xd0,0x2b,0x68,0x89,0x8d,0x35,0xf3,0xa0,0x1a,0x79,0x8f,0xc2,0x4d,0x48,0x8d,0xe9,0x3a,0x78,},{0xb3,0x40,0x62,0x06,0x0b,0x2c,0x20,0x07,0x6a,0x98,0xfe,0xa9,0x39,0xb3,0xb3,0xa5,0x04,0x51,0xa5,0xf4,0x9f,0x83,0x51,0xc0,0xad,0x75,0x91,0xdb,0xbe,0xbb,0x13,0x0f,},{0x88,0xa8,0x3e,0x20,0x12,0xd2,0x09,0xca,0x03,0xb8,0xeb,0xf6,0xde,0x5b,0xb7,0xef,0x4c,0xcb,0x5e,0x3d,0xf5,0xca,0xc7,0x89,0x54,0xaa,0x69,0x49,0x30,0xe4,0xde,0x82,0x54,0x4e,0xf5,0x08,0x3c,0x48,0x92,0xdb,0x9f,0x05,0xd7,0x7b,0xf6,0x3f,0x4f,0xdf,0xce,0x15,0xa4,0xd1,0xc3,0xf8,0x5b,0xae,0x80,0x77,0x06,0x2b,0xec,0x0e,0x7b,0x07,},\"\\x5a\\xbc\\xc1\\x4b\\x9d\\x85\\x78\\xde\\x08\\x32\\x1d\\xe0\\xd4\\x15\\xe3\\xd4\\x0e\\x9d\\xe3\\x1e\\x18\\x88\\x13\\x74\\x75\\xce\\x62\\xbc\\x6f\\xbe\\xe8\\xfd\\xd0\\x3b\\x9d\\x47\\xc7\\xb8\\x8b\\xbc\\xeb\\x80\\x44\\x44\\x49\\x0b\\xf6\\xa3\\xcc\\xb7\\xa2\\x73\\x26\\x1e\\x24\\x00\\x4e\\xa6\\x7c\\xef\\xa3\\xd5\\xd1\\x73\\x57\\x6d\\x01\\xe3\\x8f\\x76\\xc1\\xe0\\xe5\\x15\\x08\\x3c\\x97\\xe7\\x99\\x14\\xac\\xf2\\xbe\\x41\\x60\\xef\\x93\\x60\\xbb\\xe9\\x86\\xb3\\x6e\\x9f\\xf9\\x33\\x46\\xb0\\xe7\\x06\\x91\\xd9\\x34\\xe4\\x7f\\x8a\\x50\\x3f\\xa9\\x33\\xab\\x2a\\x50\\x42\\x69\\x47\\xcd\\xa8\\xe8\\x10\\xc9\\xeb\\xe3\\xb3\\x69\\x82\\xf0\\x9a\\xee\\x60\\x92\\x73\\x9f\\xa2\\x35\\x8b\\x61\\x3c\\x7f\\x12\\x9d\\xb0\\xdc\\xbe\\x36\\x8b\\xee\\x52\\xf2\\xf7\\xf1\\xdf\\xe3\\xd2\\x43\\x46\\x05\\xb5\\xaf\\xcf\\x25\\x60\\x71\\x71\\x7d\\x92\\x4f\\xd0\\x80\\x3b\\xbd\\x0d\\xd1\\xf9\\x55\\x5c\\xe8\\x34\\xda\\xc7\\x81\\xdf\\x4c\\xc7\\xaa\\x19\\xe7\\xf1\\x1d\\xa9\\xfb\\x99\\xcb\\x9e\\x6b\\x9e\\x1e\\x6f\\xb4\\xf7\\xe8\\xdc\\xb2\\x23\\x6c\\x28\\xae\\xb6\\xcb\\xc5\\x5a\\x13\\x0e\\x03\\xc1\\xb1\\x7a\\x99\\x1c\\xca\\x1b\\x79\\x4e\\x6c\\x13\\x73\\x2d\\x5b\\x0a\\x66\\xf6\\xeb\\xa8\\x60\\xec\\xb9\\x85\\x55\\xaa\\x4c\\x21\\x8d\\x11\\x2b\\x11\\x6b\\xce\\x23\\x82\\x95\\xde\\x14\\x27\\x41\\xf6\\x87\\xbe\\x0b\\x24\\x87\\xf5\\x8f\\xfc\\x5c\\x12\\xa0\\xa5\\x19\\xf1\\xe2\\x37\\x93\\x24\\x2e\\xf8\\x57\\xed\\x39\\x8a\\x20\\x69\\x9d\\x43\\x51\\x45\\x3f\\xc2\\xf0\\x92\\x76\\x2a\\xbd\\xe3\\x4f\\x4d\\xa2\\xdb\\xe0\\xce\\x2a\\xab\\xaf\\x6b\\xc4\\xc0\\x15\\x9f\\x3f\\xe1\\xae\\xa1\\x6a\\x03\\x6f\\x7e\\xae\\xcd\\x62\\x95\\x38\\xf3\\xe0\\xee\\xd8\\x3c\\x9a\\x4d\\xc1\\xab\\xc2\\x38\\xf9\\x0d\\xaa\\xf4\\x89\\xfd\\x61\\xb3\\x4d\\x93\\x7b\\x6f\\x46\\x07\\xa7\\x88\\xba\\xa8\\x20\\x61\\x94\\x3d\\xba\\xb2\\x6c\\x1d\\x38\\x4d\\x8d\\x49\\xf9\\x93\\x48\\x80\\x0b\\xf3\\x61\\xf8\\x71\\xf5\\xd6\\xcd\\xa1\\x8f\\x68\\x99\\x18\\xce\\xc3\\x1a\\xd1\\x58\\xf1\\x86\\x3d\\x13\\xff\\xac\\x54\\x05\\xc1\\x62\\xc3\\x2d\\xe0\\x6e\\x32\\x99\\x4c\\xc4\\x10\\x6f\\x95\\xbb\\x4f\\xff\\xdb\\xef\\xe7\\xd6\\x29\\xec\\x77\\x97\\x39\\x46\\x09\\xfd\\xbf\\xea\\xdb\\x46\\x92\\x73\\x70\\xa1\\x1f\\xb3\\x84\\x71\\x54\\x0f\\x95\\x1b\\x93\\xc6\\xeb\\x23\\x86\\x68\\xdc\\x00\\x6c\\x21\\x66\\x0b\\xa2\"},\n{{0xd5,0x59,0x58,0x01,0x34,0xab,0x05,0x0a,0xca,0x44,0x6e,0xa7,0x75,0x0e,0xf6,0xb3,0x71,0xd9,0x2d,0x76,0x45,0xec,0x76,0x35,0xfe,0x78,0x51,0x10,0x0b,0xc4,0xe5,0x1e,},{0xde,0x50,0x20,0xcd,0x21,0xa8,0xb3,0x23,0x39,0xde,0xcb,0xed,0xff,0x24,0x66,0x4d,0x95,0x80,0x32,0x63,0x27,0xae,0xdf,0x09,0xc5,0xec,0x6b,0x3f,0xe5,0x40,0x52,0x26,},{0x6f,0xcb,0x1a,0xc9,0x29,0x0a,0xb7,0x67,0xd5,0x9b,0x59,0x8c,0x9a,0x24,0xec,0xdb,0x6c,0x05,0xbb,0x02,0x3e,0xc3,0x60,0x14,0xa4,0x0d,0x90,0x8e,0xf0,0xdc,0x37,0x8a,0x45,0x28,0xb3,0x76,0x0d,0x88,0x9a,0x79,0x17,0x4e,0x21,0xca,0xe3,0x5d,0xf4,0x5d,0x42,0x7b,0xa6,0xea,0x81,0x2b,0xdd,0xca,0x16,0xe3,0x5a,0x69,0xb5,0xe7,0x9f,0x0a,},\"\\x68\\x42\\xe3\\x19\\x0a\\x11\\x0e\\xee\\x96\\xc5\\x07\\xd4\\xbc\\xb4\\xc5\\x48\\xc3\\xa0\\xed\\x7b\\x1a\\x8e\\xd7\\x7d\\xd9\\x3b\\x38\\x61\\x3b\\x23\\xc7\\x3e\\x83\\x0b\\x20\\x5e\\x62\\x65\\x19\\x21\\xad\\x82\\x96\\xb0\\x8d\\x1e\\x10\\x08\\xad\\x78\\xf2\\x99\\x6e\\x3c\\x7f\\x38\\x03\\x2e\\x46\\x7c\\xff\\xec\\xd7\\x7b\\x85\\x25\\xe2\\x43\\xce\\xc0\\x21\\xf8\\x52\\x96\\xaf\\xd5\\x45\\xd7\\xbe\\x1a\\x62\\x56\\x8b\\xb0\\xcf\\xcd\\xb9\\x0d\\x61\\x4e\\xd7\\x98\\xbf\\xb7\\xef\\xc6\\x55\\x32\\x68\\x16\\xa6\\x10\\x82\\x25\\x1d\\xf0\\x16\\x13\\xaa\\xc8\\x8e\\xfc\\xea\\x1e\\x0e\\xa2\\x96\\x1b\\x8f\\x92\\x1e\\xbe\\x15\\x58\\xde\\xe8\\x33\\x74\\xa0\\x11\\x3a\\x78\\xc5\\x58\\x57\\xce\\x20\\x55\\xbb\\x2c\\x48\\xba\\xdb\\xd3\\xd8\\xf4\\xcb\\x19\\x73\\x4d\\x00\\xd0\\x60\\x4b\\x61\\x90\\x73\\x02\\x0d\\x72\\xa9\\x9a\\x19\\x23\\xe6\\x16\\x0a\\x09\\x94\\x65\\x67\\xfd\\x4b\\xda\\x66\\x44\\x2e\\xf5\\xa7\\x36\\x07\\x86\\xd1\\x78\\xda\\xe4\\x49\\x22\\xf3\\x50\\xce\\x2e\\xdc\\x6a\\xf7\\x3d\\x1b\\xd8\\x0d\\xc0\\x3e\\xc3\\xca\\x70\\x05\\xf4\\x10\\x9d\\x10\\xc6\\xd4\\xf7\\xd8\\xfa\\x61\\x73\\x51\\x10\\xf8\\xdb\\xae\\xdf\\x91\\xa0\\xba\\xd7\\xd7\\xfb\\x5c\\x04\\xd7\\x06\\x37\\x3c\\x15\\xc6\\x45\\x06\\x3f\\xf4\\xb4\\xfb\\xd2\\xd5\\x59\\xb0\\xaf\\xad\\x43\\x2d\\x4c\\x49\\x6c\\xd8\\xab\\xfe\\xa2\\x86\\xfa\\x67\\x5d\\xc0\\x76\\x72\\x6e\\xc5\\x22\\xb3\\xa3\\xc2\\xf4\\x7a\\xec\\xc5\\x39\\xf4\\x8a\\x79\\x21\\x69\\xc4\\xcc\\x8c\\xd4\\x1c\\xd2\\xcb\\x6b\\x63\\xdd\\xbc\\x19\\x37\\x3a\\xc9\\x69\\x1c\\x2b\\xc2\\xf7\\x8f\\x22\\x60\\x3d\\x55\\x13\\x71\\x5a\\x16\\xd4\\x57\\x4e\\x7a\\xcc\\x4b\\xea\\x6d\\xcd\\x8c\\xa7\\xf1\\x98\\x65\\xa4\\x9d\\x36\\x64\\xa2\\x10\\xdf\\xad\\x29\\x07\\x74\\xb1\\x0b\\x71\\x88\\xf2\\x55\\xb3\\xbe\\x4d\\xc8\\xfa\\x86\\xf8\\xda\\x3f\\x73\\xa4\\xe7\\xc9\\x29\\x95\\x1d\\xf3\\x0f\\xe6\\x6a\\x17\\xc8\\xce\\xe2\\x3e\\x4f\\x2e\\xd2\\x06\\x3f\\x0b\\x02\\xab\\x40\\x37\\x2c\\xbe\\x54\\xb9\\xa7\\x08\\xdf\\x7c\\x48\\xa0\\x65\\x66\\xd3\\x9b\\x19\\x43\\x4c\\x6c\\x76\\x69\\x87\\xb3\\xeb\\xb0\\x06\\x75\\xf4\\x4c\\x4b\\x3c\\x1e\\x9f\\x45\\x04\\xe7\\xa9\\x27\\x05\\x89\\xc0\\xd0\\xf4\\xcb\\x73\\x42\\x35\\xa5\\x8e\\xf0\\x74\\xcf\\x9d\\xec\\xf3\\x60\\x1a\\xee\\xca\\x9f\\x1d\\x8e\\x35\\x6c\\xb2\\xdb\\x5f\\xce\\x79\\xcb\\xc3\\x61\\x43\\xf3\\x4b\"},\n{{0x9d,0x4c,0xe9,0x75,0x54,0x78,0x76,0x63,0x6f,0xea,0x25,0x43,0x7c,0x28,0x80,0xc9,0xaa,0x8e,0xe6,0xb2,0x70,0xd1,0xb2,0xda,0x19,0x7c,0x8d,0x7f,0x95,0xe7,0xdc,0xcc,},{0xbd,0xe4,0x99,0x3c,0x03,0x04,0x77,0xc3,0x58,0x90,0xaa,0xe8,0x2b,0xb5,0x08,0x7e,0x91,0x4e,0x64,0xb9,0x4f,0xfc,0x64,0xe2,0xd7,0xa5,0xa7,0xc9,0x19,0xe2,0xd9,0x02,},{0xbe,0x17,0x44,0x4c,0xd4,0x65,0xa8,0x7a,0x97,0x1d,0xf8,0x4e,0xb1,0x02,0xf9,0xc7,0xa6,0x26,0xa7,0xc4,0xff,0x7a,0xea,0x51,0xd3,0x2c,0x81,0x35,0x3d,0x5d,0xbc,0x07,0x39,0x3c,0xa0,0x3d,0xb8,0x97,0xd1,0xff,0x09,0x94,0x5c,0x4d,0x91,0xd9,0x8c,0x9d,0x91,0xac,0xbd,0xc7,0xcc,0x7f,0x34,0x14,0x4d,0x4d,0x69,0xeb,0x04,0xd8,0x1f,0x0c,},\"\\xea\\x0f\\xa3\\x2a\\x4a\\x28\\x88\\x11\\x30\\x1b\\x9e\\xe5\\x33\\xfa\\x35\\x1f\\xdf\\xbf\\x6b\\xc1\\xd0\\x55\\x5a\\x74\\x02\\x76\\x7a\\x3a\\x91\\x98\\x55\\x8f\\x74\\xbb\\xa7\\x03\\x18\\x57\\x99\\x5b\\x9f\\x32\\x62\\x26\\xf1\\xdd\\x5d\\xf1\\x07\\xb0\\x63\\x42\\x20\\x3e\\xb8\\xd4\\x0c\\x5f\\x1d\\xc9\\x5b\\x4f\\x3f\\x88\\x97\\x5a\\xa2\\x4a\\xf8\\x76\\x9e\\x26\\x70\\xc4\\x66\\x71\\xbe\\xbb\\x7a\\x0f\\x1b\\x75\\x68\\x72\\x9a\\xee\\x47\\x7e\\x89\\x88\\xaf\\x9c\\x74\\x9f\\x32\\x02\\x70\\x81\\x71\\xfd\\x94\\xb3\\x37\\xae\\x67\\xed\\x21\\xa6\\xc4\\x41\\x74\\x01\\x4b\\x0b\\x0e\\xb5\\xba\\x71\\xc2\\x77\\x97\\x8d\\x48\\x8c\\x24\\xc4\\xa7\\x84\\x13\\x09\\x84\\x6b\\x4e\\x30\\xa4\\xfb\\xbc\\xfc\\x45\\x07\\x8d\\x7e\\x14\\x01\\x41\\x14\\xb1\\xac\\x64\\xf7\\xc3\\x3c\\x9a\\xc2\\x5e\\xa5\\x62\\x6c\\x2c\\x81\\x9f\\xba\\xa2\\xa4\\xde\\x8a\\x2b\\xf5\\xf1\\x36\\x5d\\x6b\\x70\\x40\\x7e\\x80\\x94\\xf9\\x91\\x97\\xce\\x1f\\x0c\\x35\\xe1\\x1a\\x98\\xfb\\xe3\\x72\\x41\\x4e\\xa2\\x06\\x4a\\x3a\\x12\\xd1\\xcd\\x5c\\x8d\\xf8\\xfc\\x0e\\x79\\xf5\\xb7\\x70\\xb5\\x8f\\x47\\x7f\\x91\\x97\\x6c\\xa0\\x13\\x98\\x95\\x12\\x0e\\x24\\x6b\\xaa\\xb5\\xa0\\x26\\xf2\\xd3\\x9c\\x68\\x7d\\xc0\\x78\\x83\\x34\\xb5\\xc6\\x26\\xd5\\x2c\\xde\\xbe\\x05\\xea\\xf3\\x08\\x64\\xb4\\x13\\xee\\xbd\\xc5\\x58\\x1e\\xf0\\x0d\\x43\\x92\\x76\\xe5\\x2f\\x47\\x9c\\x9c\\x05\\xb1\\x16\\x39\\x58\\x26\\xb6\\x04\\x90\\xb3\\xce\\x70\\x0c\\xc0\\x02\\x7f\\x61\\xe4\\x6c\\xa2\\xf6\\xfb\\xc2\\xc9\\xde\\x2e\\x80\\x08\\x06\\x55\\x0a\\xfb\\x06\\xd4\\xa0\\x8e\\xac\\x7a\\x75\\x8e\\x24\\x58\\x2a\\x4d\\x6d\\x42\\x8b\\x43\\x3d\\x36\\x5f\\xc3\\x1d\\x44\\x44\\x60\\x7a\\xfb\\x64\\xf1\\x5e\\x37\\x07\\x94\\x00\\x5a\\x3a\\x22\\x44\\xe6\\x66\\xd5\\xd4\\xc3\\x8a\\xd2\\x00\\x9c\\x76\\x9a\\x51\\xcd\\xbf\\x73\\x8d\\x23\\x59\\x42\\xf4\\x12\\xd0\\x7f\\xee\\xb7\\x3b\\x36\\x57\\xd0\\xb0\\xc9\\x1c\\xb5\\x94\\x0b\\xad\\x6a\\x70\\x6e\\x14\\xed\\xcd\\xc3\\x42\\x25\\xb1\\xc1\\xf3\\x8b\\x1a\\xbe\\xcb\\x2a\\xdc\\xaf\\x81\\x91\\x55\\xa9\\x4f\\xe1\\x90\\xfd\\x55\\x68\\x22\\xd5\\x59\\xd9\\xc4\\x70\\x85\\x4d\\x3a\\x43\\xbf\\xb8\\x68\\xda\\xdd\\x6e\\x44\\x3d\\x98\\xee\\x87\\xe4\\xd8\\x28\\x4f\\x5c\\xf3\\xa6\\xda\\xfa\\xf2\\x95\\xb9\\x02\\x83\\x6c\\x64\\x05\\x11\\xe6\\x10\\xae\\x7d\\x0c\\xb1\\xb1\\xd3\\xd6\\x07\\x9f\\xe6\"},\n{{0x02,0x73,0x86,0x82,0x32,0xf5,0xbe,0x48,0x59,0x2c,0xfa,0x05,0x13,0x4e,0x8d,0x55,0x54,0xed,0x1f,0x9a,0x57,0xbc,0x7e,0x39,0x82,0xa3,0x30,0xc5,0x7e,0x5a,0x7f,0x3a,},{0xf1,0x72,0x20,0x87,0x82,0xdb,0x66,0xd4,0x66,0xcb,0xe4,0xf4,0x41,0x7f,0x6f,0xc4,0x77,0xb7,0x34,0x9f,0x2a,0x98,0xdb,0x56,0xc0,0x3a,0x47,0x22,0x75,0x46,0xbc,0x5a,},{0x15,0xe8,0xd8,0xdc,0x7d,0x5d,0x25,0x35,0x9d,0x6a,0x10,0xd0,0x4e,0xe4,0x19,0x18,0xa9,0xc9,0xdf,0x4c,0x87,0xbe,0x26,0x9f,0xa8,0x32,0x43,0x4d,0x53,0x01,0xdb,0x02,0x24,0x81,0xbf,0xa3,0x95,0xa3,0xe3,0x46,0x6f,0x95,0x54,0xce,0xee,0x05,0x32,0xa8,0x18,0x3a,0x0d,0x05,0x50,0xe7,0xd1,0xab,0xe9,0x9f,0xc6,0x94,0xc6,0xff,0x93,0x01,},\"\\xf7\\xa1\\xd4\\x61\\x4c\\xc6\\x4a\\x3b\\xc4\\x8f\\x00\\xc6\\x27\\x63\\x04\\xf3\\x4d\\x4d\\xfd\\x15\\xe0\\x61\\x7b\\x93\\xcc\\xef\\x12\\x6c\\x5c\\x63\\x8c\\x9d\\x99\\x53\\xaa\\xbb\\x7d\\xf4\\x2d\\xf4\\xe0\\xaa\\xa7\\xea\\xc9\\x6a\\x4b\\x38\\xc7\\xba\\x75\\x8d\\x86\\x0c\\x90\\xd0\\x5e\\x3d\\x14\\xe4\\x79\\xe5\\x45\\xf3\\x19\\xb0\\xe5\\xa8\\x5a\\xd8\\xf0\\x99\\x1b\\x43\\xd6\\xe4\\x9c\\x24\\xfa\\x06\\x0e\\x3e\\x5d\\xf9\\x5c\\x98\\xd9\\x45\\x1a\\xb8\\x33\\xe1\\x2a\\xa9\\x7f\\x40\\x46\\x11\\xbb\\xa3\\x59\\x49\\x62\\x65\\xa6\\xdb\\x11\\x91\\x7d\\x0d\\xa5\\xc6\\xa7\\x02\\xd0\\xb1\\x02\\xde\\x36\\xdd\\x0c\\x98\\xdf\\x5b\\x54\\x80\\x6c\\xe6\\x26\\xbb\\x96\\x37\\x44\\x75\\xf6\\x8a\\x60\\x60\\xeb\\x35\\x0a\\x7d\\x2a\\xae\\x32\\x04\\xb3\\xdf\\xdf\\x9f\\x1e\\x31\\xbe\\x81\\xf7\\x17\\x0f\\x8a\\x1b\\x93\\x85\\x41\\x3f\\xf8\\xf6\\x88\\x1e\\x10\\xc1\\xe8\\xda\\x4c\\x88\\xaf\\xb5\\x06\\x39\\xab\\x44\\x88\\x7a\\xca\\x2a\\xbe\\xec\\xed\\xf1\\x10\\xd2\\x95\\x8c\\x13\\xfd\\x33\\x90\\xd1\\xb9\\x6a\\x76\\x2d\\x16\\xce\\x19\\x69\\x20\\xce\\x85\\xf6\\xc4\\x15\\xbe\\xd5\\x45\\xb1\\x44\\x53\\x02\\xa6\\xf0\\x01\\xeb\\x8d\\x00\\xe9\\x7c\\x75\\x18\\x87\\x86\\x8d\\x48\\x1a\\x0b\\x1e\\x4d\\xfa\\x04\\xb6\\xf7\\x61\\x08\\x6e\\xe8\\xe6\\x97\\xb0\\x19\\xe0\\x17\\x10\\x4b\\xaf\\xb9\\x8f\\xca\\x24\\x2e\\x33\\x4c\\x6f\\x18\\xf1\\xdb\\x5b\\x6f\\x29\\x5f\\x05\\xc5\\x59\\x36\\x1c\\x68\\x31\\xda\\xbc\\x42\\xc2\\x11\\x07\\x03\\xf9\\xd1\\xf6\\x4e\\x12\\xdd\\xf2\\x6a\\x86\\x79\\x85\\x4e\\x9f\\x8e\\xf8\\x47\\x9e\\x1f\\x12\\xc3\\x54\\x47\\xaa\\xc0\\x2e\\xa7\\xf2\\x42\\xe5\\x86\\x32\\xcf\\x2f\\xd0\\x63\\xfe\\x66\\x50\\x70\\x44\\x5b\\x80\\xf3\\xdc\\x6a\\x33\\x03\\xbb\\xa9\\x6e\\x05\\xfa\\x88\\xee\\xc2\\x01\\xc5\\xc2\\xd0\\x0c\\xa8\\x1b\\x8d\\xa6\\x96\\x9d\\x0a\\x4d\\xd0\\x48\\x3b\\x34\\x77\\xd3\\x25\\xa7\\x1f\\xac\\xd6\\xfa\\x22\\x09\\xb4\\x8c\\xb4\\xf6\\x52\\x5d\\xa7\\x3c\\x9c\\x05\\xb2\\xd9\\x78\\x9b\\x01\\x44\\x8e\\x15\\x27\\xe5\\x6a\\x09\\xa9\\xbc\\x61\\x36\\xd9\\x83\\x72\\x43\\xc2\\x07\\x7b\\x92\\x5b\\xbb\\x93\\x3f\\x8f\\xb1\\xda\\xac\\x96\\x33\\x98\\xc5\\x80\\x2a\\xed\\xa3\\xbb\\xca\\x8a\\xe3\\xb8\\xf4\\xa9\\xa8\\x71\\xf7\\xea\\x8e\\x2c\\x0c\\xe8\\x98\\xc5\\x66\\x21\\x7b\\x5c\\x06\\xff\\x55\\xff\\x9f\\x4f\\xe7\\x83\\x98\\xae\\x79\\x73\\x64\\x1e\\xaf\\xb5\\x21\"},\n{{0x33,0x6a,0x83,0xb5,0x5a,0xbf,0x4c,0x02,0xe2,0x5e,0x54,0x03,0x29,0xb5,0x27,0x58,0x43,0xc2,0xec,0xb8,0xdf,0x69,0x39,0x5b,0x5a,0x5e,0x24,0x1b,0xd0,0xd8,0xc1,0x0d,},{0xdd,0x60,0x56,0x98,0x44,0x57,0x0c,0x9f,0x0a,0x82,0x64,0x3f,0x44,0x64,0x78,0xb5,0xac,0x6f,0xc5,0x42,0x21,0x42,0x31,0xa7,0xca,0x65,0x6a,0x92,0xb5,0xfd,0xaa,0x54,},{0xd2,0x63,0xf5,0x6d,0x59,0xcb,0x9b,0x28,0x96,0xa9,0x47,0x26,0x7c,0x2e,0xd7,0x8a,0x94,0x5b,0xac,0x5a,0xbd,0xbf,0x3c,0x14,0xdc,0x3a,0xd0,0x92,0xb2,0x30,0x8c,0xb9,0x31,0x5c,0x46,0x49,0x42,0xa0,0xa2,0x0b,0x20,0x24,0x51,0x1d,0x76,0x6e,0x85,0xc9,0x36,0x49,0x9a,0x14,0x9c,0xd0,0xbb,0xb2,0x09,0x15,0x0a,0x16,0x43,0x26,0x52,0x00,},\"\\x9a\\xfe\\xe8\\xab\\x48\\x20\\x10\\xe2\\x92\\x64\\xb4\\x06\\xd9\\xb4\\x94\\x53\\xd1\\xce\\x6d\\x55\\x09\\x39\\x07\\x21\\x82\\x86\\x3e\\x46\\x65\\x28\\x4a\\xb0\\x5d\\x86\\x25\\x8e\\x06\\x23\\xb1\\x87\\x54\\xc4\\x78\\x52\\x38\\xf6\\x97\\xf0\\x75\\xad\\xfb\\x9e\\x1d\\x31\\xa4\\x2e\\x85\\x93\\x4e\\xc0\\x71\\xdd\\xdd\\xec\\xc2\\xe6\\xc2\\xf6\\x13\\x34\\xa7\\x95\\x26\\x78\\x8b\\x49\\x52\\x19\\x07\\x16\\x90\\x6d\\xde\\x17\\xfb\\xa5\\x56\\xee\\xa4\\xc8\\xb5\\x97\\x27\\x51\\x4f\\x6f\\x56\\x15\\xa1\\x9c\\xa3\\x6d\\xa3\\x58\\xfa\\xe6\\xa6\\xc5\\x4f\\x7f\\x4b\\x7a\\x92\\x9e\\x31\\xba\\x7c\\xc7\\x1b\\xde\\x78\\x82\\xfa\\x9f\\xfd\\x87\\x30\\x01\\x36\\x40\\x9c\\xaf\\x3c\\xa6\\x4e\\xef\\xea\\x61\\x6a\\xed\\x58\\xda\\x5d\\xfb\\xf2\\x8b\\x66\\x8e\\xc1\\xcc\\xcf\\xfc\\xef\\x6e\\x2e\\x14\\xf8\\x10\\x9e\\x9c\\xbf\\x76\\xcf\\xa4\\x14\\xf9\\x1a\\xc0\\x0f\\x48\\xe9\\x3e\\xad\\xa3\\x85\\xdd\\x3d\\x5c\\x16\\xe1\\xa3\\x9e\\xa3\\xdd\\x55\\xc7\\x61\\xfc\\xa3\\x61\\xb4\\x28\\xf5\\x16\\xc0\\x5e\\x69\\x4f\\xe5\\xc3\\xc3\\x45\\xcd\\x94\\x45\\x71\\x87\\xa8\\xe6\\x04\\xb2\\x00\\xa1\\xa0\\xf9\\x37\\xae\\x89\\xf4\\xd6\\xb5\\x42\\x1d\\xff\\xcf\\x7c\\xa1\\x5f\\x2e\\x2c\\x25\\x37\\x8a\\x41\\x13\\x23\\x3f\\x76\\x13\\xf4\\x57\\x0a\\xa4\\xb9\\x09\\xa9\\x13\\x5e\\xae\\x4c\\x7b\\x9e\\xad\\x45\\x80\\x07\\xae\\x17\\x12\\x6a\\x11\\xd1\\x45\\x25\\x8a\\xf9\\x56\\x3d\\xb2\\xf7\\xe8\\x92\\x54\\x31\\x87\\x8b\\x0e\\xec\\xa8\\xaf\\xfc\\x01\\xac\\x59\\x13\\xbf\\x5b\\xac\\x4f\\xa3\\xa8\\x57\\xc5\\x4c\\xc8\\x90\\x6d\\x6a\\xf7\\x7d\\xe6\\xb9\\x32\\x6b\\x65\\x06\\x15\\x10\\x99\\xe8\\x7e\\x99\\xb1\\xe8\\x19\\xc6\\xfb\\xe0\\x82\\x68\\x8f\\x34\\xb8\\x03\\xd5\\x88\\xe4\\x16\\xd8\\x53\\x16\\x97\\x65\\xd6\\x2f\\x7e\\x0b\\xdf\\x72\\xc5\\xcd\\x66\\x66\\x9a\\x03\\x35\\x56\\x23\\x36\\x73\\x5e\\x7e\\xfb\\x73\\x4a\\x2f\\xad\\xa3\\x27\\xf8\\x58\\xbe\\xc6\\x02\\xd0\\xda\\x08\\xeb\\xa4\\x47\\x9e\\x7f\\x6d\\xc4\\xde\\xf6\\xe4\\xeb\\xdb\\xb7\\x30\\xee\\x91\\xa3\\x34\\x45\\xca\\xdc\\x9d\\xf5\\x2c\\x82\\x5a\\xd3\\x61\\x49\\xce\\xfb\\xc5\\x1a\\xb1\\x02\\x03\\x35\\x30\\x81\\x4b\\xaf\\xa7\\xe8\\x79\\x61\\xb0\\x63\\x67\\xff\\x89\\x6f\\x08\\xae\\x33\\x4a\\x9b\\x1a\\xad\\x70\\x3d\\xa6\\x86\\x70\\x6c\\x11\\xa0\\x49\\x43\\xea\\x75\\xe1\\x29\\x92\\xdc\\xf6\\x10\\x6e\\x37\\x20\\x77\\xcd\\x03\\x11\\x02\\x9f\"},\n{{0x88,0x40,0x91,0x72,0x61,0x8b,0x49,0x03,0x93,0xdb,0x27,0xd9,0x60,0x17,0x1c,0xbc,0x18,0x7e,0xaf,0x4d,0xd8,0xb3,0x20,0xb3,0xd2,0xf8,0x24,0x98,0x00,0x43,0x71,0x8f,},{0xce,0x2e,0x7c,0x58,0x39,0xef,0x56,0x32,0xa1,0x23,0xdc,0x37,0x3d,0xc1,0x4b,0x1f,0x05,0x05,0x76,0x6e,0x96,0x75,0x40,0x76,0x04,0xca,0x7c,0xf5,0x4e,0x8d,0x44,0xb2,},{0x93,0xb6,0xe2,0x9d,0x63,0x94,0x5d,0x5c,0x42,0x73,0x87,0xd0,0x06,0xc7,0xf0,0xb0,0x19,0x56,0xa9,0x5f,0xc0,0x43,0x6e,0xd4,0x2b,0x46,0xd0,0xf1,0x7b,0x5b,0xb1,0x93,0xea,0x8c,0x0e,0xbb,0xf3,0xd6,0xd1,0x3b,0xb5,0x39,0xe3,0x5c,0x91,0xf3,0xf0,0xf9,0xfa,0x34,0x14,0xa0,0x22,0x3c,0x90,0x60,0xba,0xc8,0x36,0x53,0xc6,0xfc,0xd9,0x06,},\"\\xfb\\x3e\\x82\\xf1\\x1b\\xc2\\x86\\x26\\x7e\\x12\\x38\\x17\\xad\\x88\\x64\\xe0\\x77\\xd9\\xf7\\xa8\\xe7\\xa1\\x63\\xac\\x7e\\xea\\xf9\\x3d\\x55\\xdd\\x11\\x1d\\xe8\\x08\\x3b\\x66\\xb5\\x3c\\xe7\\xbc\\x77\\x1f\\xc5\\x07\\x1a\\x2d\\x7a\\xc2\\xf8\\x5d\\x6f\\xc6\\xad\\xcf\\xce\\xc4\\x46\\xe1\\x6a\\xa1\\x04\\x6d\\xf3\\x72\\x09\\xad\\x7a\\x29\\xcf\\x96\\x65\\xb4\\x39\\xa5\\x4d\\x6f\\x8d\\x94\\x2f\\x89\\xbd\\xaa\\x56\\xf2\\xf1\\x12\\x60\\xcc\\x95\\x99\\x30\\x38\\xb0\\xe8\\xfb\\xdb\\x32\\x14\\xf1\\x42\\xe6\\xc9\\x0b\\x61\\xa1\\xd2\\xb1\\x42\\x07\\x62\\x06\\xaf\\x30\\xac\\x35\\x78\\x4a\\x6d\\xc1\\x5a\\x1e\\x79\\x25\\x1a\\x8c\\x77\\x31\\xa1\\xc5\\x39\\x78\\x03\\x8f\\x8d\\x76\\xd7\\x0c\\x6c\\x1c\\xdf\\x52\\x9f\\xbd\\xb8\\x4d\\x15\\x07\\xdc\\xff\\xdd\\x42\\x87\\x3d\\xfa\\x6a\\x8f\\xe6\\xbd\\x6f\\x7f\\xd2\\x9c\\x80\\xe4\\xb2\\xf9\\x33\\xd2\\xb6\\xc9\\xe6\\x2c\\x94\\x57\\xe6\\x65\\x47\\x26\\x55\\x05\\x9b\\x63\\xb6\\x18\\xe2\\xa9\\xa8\\xe5\\xb9\\xe4\\x1c\\x36\\x46\\x17\\x3a\\x89\\x2b\\x8e\\x6d\\x4b\\xca\\xd6\\xa6\\x2a\\x6f\\xcc\\xd3\\x45\\x58\\x90\\xb5\\x8e\\xc2\\x68\\x1a\\x95\\xcc\\x97\\x76\\xa9\\xfc\\xe8\\x3c\\x54\\xa9\\xef\\x31\\x2a\\x33\\x19\\x59\\xc7\\xef\\x3f\\x79\\xee\\x57\\x6e\\xb7\\xb7\\x94\\x69\\xc9\\x23\\x4b\\x1e\\xae\\xf6\\x09\\x88\\x47\\x08\\xfe\\x4b\\xb0\\xef\\xac\\x66\\x2d\\xa8\\x71\\xba\\x61\\xdd\\xab\\xb3\\xfc\\xbd\\xeb\\x8f\\x63\\x56\\x57\\xdd\\x9a\\x5d\\x73\\x11\\xe6\\x39\\xa8\\x24\\x85\\x8b\\x9a\\x98\\x68\\xd3\\xf9\\x38\\x4d\\xa6\\x12\\xc7\\xf2\\xe7\\x71\\xa4\\x6b\\xd2\\x62\\x4c\\x99\\xea\\x2b\\x6c\\xcb\\xca\\x99\\x6c\\x1d\\x9c\\x37\\x55\\x54\\xf2\\xa5\\x51\\x61\\x9c\\xe6\\xd5\\xe6\\xe4\\xd6\\xb8\\x44\\xa4\\xdb\\xea\\x83\\xba\\x73\\x23\\x31\\xfc\\xf4\\x65\\x72\\xc1\\xfb\\x0e\\x25\\x7c\\xe1\\x04\\x1b\\x26\\x5d\\xf0\\x2e\\x69\\x0a\\x92\\x81\\x4b\\xbf\\x3b\\x5e\\xca\\xc6\\x9e\\xe9\\x98\\x76\\x6a\\x02\\xb0\\xd2\\xf9\\x08\\xb3\\xc1\\x5f\\x95\\x26\\x99\\x61\\x6f\\x2c\\x07\\xd5\\x89\\x19\\x89\\x89\\xe6\\x05\\x6c\\x16\\x31\\x9a\\xab\\x6c\\xf8\\x77\\x19\\x02\\xc0\\x78\\x04\\x6a\\x88\\xb2\\x57\\x0c\\x13\\xbc\\x5e\\xde\\xba\\x2e\\xd1\\xe3\\xba\\x13\\x1d\\xaf\\x94\\xe6\\x89\\x18\\x62\\xbb\\x3d\\xe7\\xd1\\x06\\x3f\\xe4\\x05\\x30\\x7a\\x5c\\xd9\\x75\\x69\\x3e\\x9d\\x58\\xe1\\x7c\\x69\\x0e\\xee\\xf4\\xa2\\x60\\x3c\\xaf\\xc6\\x8c\\x2b\"},\n{{0xe5,0x71,0x18,0x9b,0x5c,0xd9,0xe7,0x88,0x30,0x2d,0xe3,0x91,0x9d,0x85,0x0c,0x22,0x7d,0xcb,0xb6,0x15,0x02,0x2e,0x56,0x8b,0xda,0xeb,0x37,0xac,0x5b,0x29,0x39,0xc5,},{0xed,0xda,0x89,0x0f,0x42,0xdd,0x5f,0xbc,0x73,0x16,0xa5,0xfa,0xdf,0xbe,0xc3,0x85,0x56,0xf2,0x3f,0x51,0xb8,0xef,0xd2,0x62,0x54,0x37,0xf6,0xb5,0x06,0x9f,0x1e,0xe5,},{0x7f,0x79,0x7a,0x31,0x71,0x5d,0x7c,0x35,0x6f,0x8f,0x1f,0x78,0x37,0x00,0xaa,0x99,0x74,0xbb,0x93,0x6d,0x66,0x16,0x61,0xad,0x96,0x8c,0x7c,0xde,0x1a,0xc9,0xe7,0x67,0xbe,0x56,0xa2,0xdd,0x49,0xb9,0x23,0x0e,0x90,0x11,0x0c,0x67,0xc0,0xed,0x18,0x7c,0xb7,0xe7,0x5c,0x30,0x53,0xec,0xe8,0x44,0x98,0x4d,0x29,0x6f,0x0d,0x85,0xcb,0x07,},\"\\xb6\\x2c\\x86\\x7a\\xd6\\x22\\x74\\x35\\xbf\\xa6\\xda\\xb8\\x30\\x68\\x4e\\x38\\xd1\\x96\\xe1\\xf8\\x61\\xaa\\xde\\x0f\\xd6\\xa7\\x69\\x9b\\x6d\\x60\\x90\\x1f\\xef\\xb2\\xd7\\x99\\xc3\\x5c\\x6f\\x3d\\x8b\\xb9\\x4d\\xee\\xe8\\x34\\x40\\x39\\x81\\x86\\x6b\\xab\\x84\\x94\\x6a\\xe9\\x47\\x6c\\x75\\xe9\\xf1\\xd3\\x60\\x2b\\x42\\xcb\\x2d\\xb4\\x37\\xbf\\xf3\\x3a\\x77\\x58\\x22\\xf0\\xd6\\xa2\\x57\\xd4\\xb7\\x54\\x00\\xeb\\xa5\\xb8\\xab\\xb3\\x14\\xb7\\x1f\\xc6\\xb4\\x6f\\x8a\\x34\\xe8\\x61\\xa9\\xa6\\x2a\\xbf\\x33\\xde\\x84\\x82\\xf6\\x3f\\x9d\\x71\\x69\\xe7\\x73\\xa2\\xdc\\xeb\\xee\\x03\\x70\\x5d\\xac\\x11\\x7f\\xd1\\x49\\x9b\\x68\\xe7\\x41\\x4f\\x51\\xff\\x94\\x37\\xf2\\x53\\xa1\\xd9\\x90\\x1e\\xc3\\xb0\\xbb\\xa8\\x69\\x65\\xa1\\x93\\x83\\x65\\x54\\x87\\xb5\\x80\\x10\\xf8\\x04\\x90\\x9d\\xe1\\xff\\xb2\\x21\\x2c\\x02\\x52\\xdd\\xd9\\xbf\\x2a\\x56\\xac\\x46\\xbd\\x59\\xc0\\xc3\\x4d\\xd5\\x9e\\x46\\x59\\x8b\\x6b\\xab\\xd4\\xe5\\xf3\\xff\\xfd\\xe5\\x5e\\x48\\xda\\xb0\\x39\\x8c\\x22\\xaf\\x9e\\x26\\xba\\xdd\\xf7\\x72\\x75\\xe5\\xf0\\x17\\xb3\\x5a\\x9b\\x8f\\x84\\x35\\xf9\\x63\\x19\\x36\\xb3\\x91\\xcb\\x95\\xd7\\xad\\xf3\\x5d\\x1d\\x85\\x45\\xa0\\xfd\\x06\\x64\\x12\\xd5\\x08\\x96\\x7b\\xbe\\x9a\\x20\\x24\\x5a\\x26\\x9e\\x3b\\xe2\\x77\\x71\\x17\\xe7\\x5f\\xba\\xc1\\x70\\xdb\\xa3\\x52\\xbe\\x69\\xb2\\x54\\xd3\\x53\\xb3\\xb2\\xcb\\x3b\\x7e\\x21\\xb7\\x21\\xaa\\x9f\\xe0\\x44\\xf8\\x91\\x6b\\x4b\\x2a\\x6f\\x8c\\x28\\xf8\\xab\\xe6\\x6a\\xc9\\x2b\\x91\\x32\\x3a\\xc7\\x3a\\xfd\\x93\\xdf\\xbe\\xea\\xee\\xf2\\x6d\\x19\\xbd\\x9f\\x67\\xe9\\x9d\\x48\\xcd\\x2a\\xd2\\xd3\\xe5\\x5e\\x45\\xd2\\x4d\\x54\\xb5\\x0f\\x44\\xa3\\x9b\\x90\\xe2\\x42\\xeb\\xe9\\xb4\\x2b\\xeb\\xdb\\x23\\x0c\\x47\\x0b\\xdf\\xde\\x1b\\xc7\\x72\\x1c\\x31\\x20\\x00\\x84\\x77\\x39\\x3d\\xcc\\x2e\\x15\\xfd\\x22\\xb2\\x51\\xfe\\xb0\\xe1\\x8b\\x02\\x88\\x3c\\x07\\x8a\\xee\\x4f\\xb7\\x60\\x65\\x5a\\x67\\x1d\\xc7\\xb8\\xaa\\xdb\\x9a\\x56\\x24\\x20\\xa3\\xc2\\xef\\xa2\\xd3\\x42\\xe1\\xe0\\x09\\x9d\\x95\\x1b\\x42\\x24\\x29\\x84\\xf5\\x94\\xe6\\x91\\x4f\\xe2\\x82\\xb1\\xee\\x12\\x87\\x35\\x98\\x4e\\xf9\\x3a\\x66\\x9e\\x6e\\xcb\\xa2\\x6c\\x9f\\xcb\\x9f\\x09\\xf0\\x92\\x56\\x64\\x56\\x17\\xf1\\x39\\x2d\\x35\\x90\\x89\\x17\\xcb\\x8d\\x29\\xe0\\x89\\x7c\\x75\\x03\\xcd\\xdd\\x5d\\xe1\\x95\\x96\\x86\"},\n{{0x37,0x17,0x44,0xab,0x63,0xc1,0x15,0x61,0x39,0x29,0xa3,0x43,0x70,0x9b,0xb0,0x19,0xb7,0x35,0x7d,0xff,0x72,0xd2,0xa1,0x49,0xf1,0xd0,0xf7,0x1d,0x3a,0x20,0x1e,0xfe,},{0xe5,0x8a,0xbf,0xad,0x4a,0x13,0x85,0x9f,0x0a,0xcb,0x05,0xd0,0xe4,0x7d,0x59,0x63,0x8f,0x7b,0x1b,0x49,0x36,0x10,0x0b,0x98,0x8d,0x61,0xe6,0xe7,0x0e,0x22,0x66,0x7d,},{0x5e,0xae,0x4a,0xc7,0x2a,0xf0,0x17,0x4a,0xb2,0x56,0x52,0x7b,0x7c,0xd3,0x37,0xa0,0xe5,0x48,0x2e,0x61,0x5a,0xf0,0x68,0xdb,0x21,0xda,0xe3,0x5a,0x64,0x64,0x07,0x42,0x60,0x4d,0xf7,0x3f,0xd4,0xca,0x02,0xed,0x95,0x15,0xa5,0x60,0x8d,0x73,0x19,0x52,0x30,0xfa,0xdc,0xa7,0xb4,0x26,0xf0,0x2a,0x2f,0xbf,0xd0,0x20,0x61,0xaf,0x36,0x00,},\"\\xc2\\x19\\xde\\x1e\\x8d\\x7a\\xd8\\xdf\\x08\\xc4\\x93\\x77\\x39\\x6f\\xe7\\xc1\\xf2\\xd5\\x7b\\xd2\\x17\\x06\\x33\\xa0\\x0d\\x70\\x8f\\xaa\\xde\\xe1\\x80\\xce\\xba\\x92\\x84\\x9a\\x77\\x78\\x50\\x6c\\xbb\\x36\\x68\\x75\\xbf\\x91\\x24\\x70\\x18\\x94\\xce\\xcd\\xb3\\x38\\x51\\x47\\xd0\\x67\\x18\\x43\\x92\\x2a\\x64\\x9a\\xff\\x7c\\x43\\x5e\\xb5\\xa9\\xc7\\x49\\x27\\x50\\x30\\x72\\xd0\\x06\\x79\\x78\\x71\\x6d\\xc8\\x0b\\xe1\\x54\\x5a\\x2d\\xbf\\x5a\\x1c\\x38\\x53\\x6e\\x12\\xbd\\x77\\x20\\xc1\\x96\\x5d\\x38\\x03\\xa4\\xe8\\xaa\\x55\\x76\\x51\\x92\\xa1\\x3b\\x70\\x5c\\xa1\\x05\\x9d\\xed\\x0e\\x80\\x63\\x62\\xfc\\x5b\\xbe\\x6c\\x76\\xa1\\xc9\\x67\\x4b\\xb8\\x53\\x79\\x0f\\x7e\\x90\\xaf\\x00\\x75\\x3e\\x00\\x43\\x6d\\xa4\\x8c\\xd0\\x82\\xea\\xd6\\x4f\\xdd\\xb6\\x89\\x89\\x01\\x62\\x08\\x2f\\x84\\x82\\x92\\x4f\\x33\\xac\\xd6\\x04\\x64\\x0f\\x69\\x92\\x73\\x52\\xb4\\x3f\\x64\\x40\\x2d\\x27\\xa8\\x83\\xfa\\x6b\\x72\\xaa\\x70\\xd2\\x41\\xdf\\xfa\\xa1\\x70\\x1a\\x25\\xcf\\x10\\x79\\x35\\x82\\x60\\x79\\x38\\x75\\xf7\\x6a\\x29\\x78\\xe9\\xf9\\xf9\\xd6\\x86\\x34\\xeb\\x3f\\x5f\\x01\\xbd\\xe1\\xce\\x49\\xe5\\x92\\x12\\x52\\xf9\\x49\\xf0\\x82\\x79\\x5e\\x4e\\xaf\\xed\\x7b\\xe5\\xb4\\x9a\\x9f\\x95\\xed\\xbb\\x4a\\x13\\x53\\x2e\\x3f\\x3b\\x3b\\xe6\\x2e\\x26\\x52\\x23\\x12\\x53\\xa2\\x0c\\x1d\\x54\\x77\\xe8\\xf4\\xbc\\x57\\xed\\x76\\xfa\\x19\\xea\\xf0\\x3a\\x11\\xbb\\xa4\\x29\\xb6\\x49\\x6c\\xe7\\x62\\x46\\x17\\x0e\\x04\\x3b\\xc1\\x4f\\x2d\\x2f\\x70\\x3d\\x96\\x8f\\x1d\\xeb\\x09\\x38\\x87\\x15\\xc3\\x7c\\xb4\\x75\\x2d\\xa8\\xd4\\x64\\xe3\\x48\\xe0\\x31\\x3c\\x89\\x93\\xe2\\x41\\x33\\xa7\\xc5\\x45\\x28\\x4e\\x3c\\x9c\\x90\\x7d\\x01\\xb2\\x60\\xc4\\x88\\x3f\\x9c\\xb3\\xe3\\xdc\\x5b\\x6f\\x7f\\xb6\\xd7\\x55\\x36\\x36\\x5f\\x21\\x32\\xea\\xed\\xda\\xb5\\x70\\xe7\\x27\\x3a\\xfa\\xc0\\xbf\\xf5\\xc9\\xfc\\x0b\\x82\\x0f\\x20\\x78\\xe0\\x33\\x60\\x52\\xe1\\xfe\\x7b\\xde\\xc8\\x66\\x74\\xd0\\x99\\x8e\\xc7\\x8d\\xa1\\xc3\\xf3\\x47\\x51\\xf8\\x86\\x72\\x76\\x95\\xf3\\x5e\\xca\\x13\\x04\\xb1\\x47\\x34\\x76\\x6a\\xb0\\x5c\\x11\\x86\\x30\\x6d\\xed\\x9d\\xb3\\xee\\xf6\\x5d\\x3c\\x04\\x56\\xcd\\xae\\x81\\x81\\xaf\\xee\\x04\\xb2\\x96\\xc6\\x72\\x2a\\x88\\xc7\\xef\\x30\\x88\\xd2\\x6f\\x7f\\xe7\\x4b\\xc8\\x9c\\xf5\\x28\\x5c\\x68\\x8f\\x02\\x7b\\x7e\\x68\\x60\\x04\\x86\\xaf\"},\n{{0x49,0x8b,0x6e,0xe6,0x49,0x2d,0x53,0x23,0x1b,0x35,0x32,0xd1,0x93,0x57,0x8b,0xa7,0x5d,0x6a,0x89,0x4e,0x2e,0x53,0x00,0x34,0xe2,0x1a,0xb8,0xad,0x8d,0x2c,0x0d,0x1f,},{0xd1,0x24,0x66,0x5b,0x28,0xfa,0xcd,0x2d,0x17,0x94,0x6a,0x04,0xdf,0xe3,0xd1,0x29,0xa4,0x56,0x1a,0x2b,0x24,0xeb,0x32,0x6d,0x84,0xb6,0x2b,0x42,0x2e,0x44,0xdb,0xcf,},{0x11,0x2f,0x5c,0x6d,0x3b,0xcb,0x3d,0xd9,0x93,0x46,0xd3,0x2a,0xd6,0x9c,0xbf,0xac,0x3e,0x65,0x3b,0xef,0x29,0xc6,0x8a,0x33,0xf4,0x32,0x31,0xf6,0x6c,0xea,0x1d,0x0a,0x19,0x54,0x27,0xd6,0xe1,0x0c,0x0e,0x77,0xc5,0xd5,0x5f,0xe2,0x79,0x42,0x87,0xee,0x32,0xe5,0xe2,0x2b,0xaf,0xbb,0xd8,0x05,0x2a,0xd3,0x60,0x6b,0x90,0xf9,0x45,0x05,},\"\\x04\\x98\\xa5\\x9b\\x87\\xcd\\xae\\x28\\x69\\x55\\x47\\xe1\\x08\\x63\\xbc\\xe8\\x04\\xd9\\x7d\\xe0\\xac\\x80\\x08\\xf3\\xd5\\xfb\\x65\\x2c\\x17\\x57\\x41\\x9f\\xdc\\x9e\\x0f\\x97\\x36\\xf4\\xc5\\x9a\\x34\\xf2\\x1c\\xfc\\x74\\x59\\x9f\\xa7\\x88\\xfc\\xc1\\x0c\\x67\\x30\\xc7\\xdf\\x8c\\x3d\\x2c\\x1b\\x6a\\x78\\x6d\\x12\\x30\\xb6\\x55\\x85\\x71\\x9d\\x1c\\xb5\\xc4\\x90\\x35\\x9b\\x94\\x43\\x5d\\x6d\\xd6\\x71\\xf5\\x4d\\x6e\\x9a\\x19\\xb9\\xb5\\xaa\\xad\\x7e\\x0f\\x23\\x3f\\x87\\x97\\xdf\\x99\\x78\\x28\\xd8\\x8c\\xd9\\x2e\\xf0\\x89\\xef\\x7d\\xbf\\x1e\\x95\\x27\\x78\\x94\\xa2\\xf7\\xc2\\xfd\\x0c\\x8e\\x4d\\xfd\\xfa\\x6d\\x3d\\x14\\x58\\x9f\\xf0\\x19\\x16\\xdb\\xf9\\xdd\\xd8\\x11\\xc2\\xf5\\xe0\\x1e\\x94\\x29\\x89\\x90\\xa1\\x45\\xa6\\xcf\\xc2\\x68\\x95\\x61\\x4c\\x7c\\x96\\x3f\\xef\\x30\\x8a\\x4e\\x38\\x56\\xc3\\x2d\\xd3\\xe3\\x59\\xbc\\x56\\xd2\\xcc\\xa4\\x96\\xad\\x19\\x9f\\xf1\\xa5\\x68\\xd6\\x43\\x0a\\xc5\\xcd\\x20\\x8e\\x0e\\x2d\\x07\\x80\\x3c\\xa5\\x23\\xe0\\xd8\\x13\\xad\\x37\\x33\\xab\\x50\\xbd\\xca\\xdc\\xb9\\x88\\xae\\xe7\\x58\\xea\\x50\\x43\\x9b\\xf3\\x8e\\xe6\\x49\\x99\\x76\\x04\\xf1\\x51\\xc6\\x02\\xc8\\x29\\x00\\xa8\\x20\\x5d\\x8f\\x6f\\x67\\x0c\\x86\\x84\\xbf\\x5a\\xbb\\x5f\\x75\\xff\\x29\\xa3\\x7e\\xb9\\xbf\\x81\\x05\\x19\\x9f\\xbb\\xfb\\x47\\x07\\xe1\\x62\\xe6\\x4c\\x71\\x52\\x70\\xf8\\x53\\xe6\\x48\\xb0\\xaa\\x26\\xfe\\xa0\\xf6\\xdb\\x56\\x28\\x96\\xbf\\x42\\x4a\\x9f\\xfc\\xb2\\x92\\xfa\\xe8\\x5b\\x76\\xce\\xfb\\x8b\\xd5\\xa4\\xb3\\xce\\x1f\\xb3\\x9b\\xd2\\xa5\\x0d\\x0c\\x9e\\x6d\\x93\\x3e\\x16\\x7f\\xf6\\x29\\xb8\\xa4\\x94\\xf2\\xa9\\xb7\\x74\\xeb\\x30\\x3c\\x78\\x1e\\xa0\\x2a\\xff\\x1a\\x8a\\xfa\\xdc\\x24\\x65\\xcc\\x61\\x69\\x68\\x01\\x5e\\xd6\\xa5\\xa3\\x3c\\x31\\x20\\xb9\\x45\\xed\\x53\\x51\\x98\\x1e\\x32\\xfb\\x9f\\xb9\\x6b\\x22\\x12\\xdc\\xf8\\xfe\\x9a\\xc5\\x6e\\x3c\\xf4\\x1d\\xc5\\x24\\xf8\\x00\\x63\\x10\\x20\\xb0\\x25\\x91\\x91\\x78\\xce\\x07\\x4e\\xef\\x07\\x8d\\x68\\x42\\x01\\x2a\\x27\\x6e\\xfa\\x62\\x8d\\xb5\\x40\\x58\\xd1\\xeb\\x5b\\x5b\\x70\\x5f\\x1e\\x18\\x18\\xd2\\xdf\\x51\\x64\\xba\\xab\\xb0\\xc6\\x19\\x56\\xec\\xdb\\x8c\\x70\\x6e\\x56\\x2f\\xc4\\xfd\\x64\\x05\\x28\\x70\\x53\\x0a\\xe4\\x25\\xb2\\x21\\xf8\\x9d\\xd6\\xf9\\x0d\\xab\\x88\\x2e\\x76\\x3e\\x7a\\x7f\\xfa\\x14\\x1b\\xba\\xa8\\xbf\\x7a\\x3f\\x21\\xb0\"},\n{{0xce,0xfc,0xfc,0xd1,0xcf,0xf4,0xd8,0x91,0x07,0x49,0x27,0x91,0x31,0x83,0x0b,0x1d,0xa1,0x9d,0xfc,0x52,0x45,0xf7,0x8c,0xa6,0x8b,0x8c,0x3c,0x1b,0x62,0x2b,0x45,0x51,},{0x1d,0x39,0x4a,0xbd,0x1b,0x4e,0xd1,0xae,0xdf,0x96,0x6a,0x60,0xef,0xd3,0xff,0x88,0x21,0x40,0xa7,0xe5,0x6b,0x42,0x83,0x74,0xec,0xb4,0x43,0x28,0x9a,0x9c,0x7f,0x00,},{0x7d,0x83,0xff,0x66,0xec,0x79,0x30,0x7b,0x1c,0x0c,0x09,0x3f,0xda,0x39,0x68,0xa9,0x6c,0xf6,0x04,0x4f,0x5c,0x80,0x28,0x88,0x58,0x40,0x18,0x84,0x5e,0x7c,0xaf,0x2a,0x13,0x5a,0xc6,0xf1,0x67,0x7e,0x84,0xd2,0x2e,0x45,0x8e,0x22,0x7e,0x4f,0x93,0x02,0x09,0x91,0x9b,0xc1,0x1b,0x12,0xf7,0xaa,0xf2,0xb8,0xc9,0x43,0x02,0xd6,0x42,0x00,},\"\\x5e\\xc9\\x4e\\xd0\\x6f\\xc1\\x25\\x7a\\xe9\\xc1\\x83\\xce\\x56\\x27\\x12\\x07\\xac\\xa3\\x7a\\x23\\xfd\\xb4\\xb0\\xe7\\x4a\\xc9\\x30\\x7a\\x1b\\xb1\\x12\\xe0\\x5e\\xd5\\xa5\\xd0\\x47\\xc9\\x31\\x09\\xe2\\xe5\\x94\\x77\\xb0\\x33\\x78\\x34\\x64\\x22\\xde\\x36\\x71\\x4c\\x29\\x61\\xbb\\x97\\x36\\xa5\\x13\\xca\\x36\\x71\\xc6\\x03\\xa6\\x8c\\x2b\\xe7\\x31\\x7b\\x1b\\x52\\xa0\\x76\\xda\\xe2\\xaf\\xf7\\xbc\\x88\\xcd\\x5e\\xea\\x0a\\xa2\\x68\\xfa\\xaa\\xda\\xe5\\x39\\xc9\\x38\\xbb\\x4f\\xd4\\xb6\\x06\\x9b\\x19\\x45\\xeb\\x6a\\xf0\\xc9\\xe6\\xc8\\xaa\\x5e\\xe4\\xa4\\xaf\\x37\\xe9\\x0c\\x67\\xe2\\x48\\xe8\\xd2\\x7b\\xd7\\xf9\\x58\\x9c\\x4d\\x30\\xe9\\x05\\x65\\x1b\\xaf\\x45\\x36\\x4f\\xa0\\x49\\x95\\x7e\\xa5\\xd9\\xb7\\x14\\x6c\\xa6\\x82\\x04\\xe5\\xe9\\x73\\xd0\\xf1\\xc9\\x1a\\x1c\\x4b\\xde\\xd6\\x61\\x15\\x02\\x8a\\x71\\x11\\x4f\\x0f\\x4f\\x85\\x1b\\xd1\\x15\\xfa\\xeb\\x95\\x4e\\x3f\\x71\\xa0\\x14\\x70\\xb2\\x48\\x1a\\x00\\x98\\xd9\\x9f\\x9d\\x74\\x89\\x8c\\x8b\\xa0\\x28\\x7c\\xc7\\x83\\x41\\x55\\x21\\x41\\x73\\xd1\\xfc\\xba\\xfc\\xfe\\x9b\\x08\\x25\\x03\\x84\\x43\\x94\\x76\\x05\\x58\\x83\\x83\\x38\\x16\\xc9\\x52\\x4c\\xfd\\x57\\x44\\xaa\\xa2\\x59\\xdb\\x7e\\xbd\\x3a\\x6a\\xa2\\x0b\\x5a\\x65\\x46\\xda\\xde\\xfd\\x14\\x06\\x68\\xeb\\x0e\\xcc\\xb5\\xf6\\x68\\xdb\\x9f\\xc6\\x29\\x83\\xdf\\x98\\x08\\x50\\xc9\\xd1\\x98\\x82\\xa1\\x75\\x50\\xd5\\xdc\\xa3\\x54\\x2c\\xd3\\x60\\x03\\xa0\\xd0\\x3c\\xff\\xb0\\x45\\x75\\xa3\\xe8\\xe1\\xd0\\x70\\x15\\xc7\\xb3\\x0e\\xca\\x91\\x15\\xcd\\x2b\\x72\\xe4\\x6d\\xfd\\xdf\\x6a\\x4d\\xda\\x1f\\xaa\\x2d\\xbd\\xc8\\x90\\x00\\xd4\\x33\\xf6\\xec\\x9a\\xdc\\x46\\x14\\x6d\\x93\\x9f\\x32\\x12\\x1b\\x99\\xb2\\x89\\x83\\xd9\\x8b\\x9d\\xde\\x8c\\x3f\\x6e\\x57\\x79\\xf2\\xb0\\x70\\x0c\\xb0\\x23\\xdb\\x13\\xde\\x65\\x6e\\x0a\\xed\\x1d\\xa2\\xd5\\xc6\\xba\\x26\\x52\\x34\\x36\\x48\\xad\\x42\\x0f\\x6a\\xb9\\xe5\\x5a\\x97\\x48\\x2a\\x1a\\x22\\xb3\\xbc\\x2e\\xe5\\x98\\x62\\x9a\\xba\\xd9\\x54\\x7e\\xdb\\x5f\\xf7\\x90\\x99\\x05\\x64\\xbd\\x87\\x1f\\x81\\xb2\\x4b\\x12\\xf2\\xbf\\x8d\\xbd\\xfe\\x7a\\x88\\x37\\x5f\\xad\\x9c\\xcb\\xd9\\xfc\\x0b\\xa1\\xd3\\xbb\\xa5\\xe3\\xc4\\x81\\x3c\\x18\\xa0\\x34\\x8a\\xad\\x83\\xfb\\x1b\\x82\\x68\\x90\\x54\\xd9\\x9b\\x46\\x00\\xdd\\x17\\x60\\xd0\\xdc\\xce\\x44\\x75\\x74\\x67\\xbe\\xc1\\x94\\x64\\x06\\xd5\\x30\"},\n{{0xd1,0x07,0xcf,0x26,0xf5,0x27,0xdb,0x71,0xa2,0x06,0xe4,0x1d,0x17,0x95,0x53,0x21,0x01,0x32,0x25,0xbb,0x20,0xf9,0x3e,0x12,0xdf,0x3d,0xc7,0x39,0x9e,0x72,0x0c,0xa3,},{0x18,0x6b,0xf4,0x53,0xc9,0x5d,0xc0,0xa2,0xfd,0x58,0x9a,0x78,0xe2,0xc8,0x00,0x40,0xb3,0xf6,0xdd,0xf9,0xa6,0xf8,0x68,0x1d,0x14,0x60,0x36,0xcf,0x21,0x46,0xe8,0xfc,},{0x80,0x71,0xd9,0x7f,0x32,0x4f,0x10,0x35,0x8f,0x13,0xac,0x8c,0x61,0xd4,0x24,0xb4,0xf3,0x00,0xdd,0x04,0x19,0x57,0x1c,0x39,0xe4,0x0d,0x99,0xae,0xa5,0xf0,0x31,0x40,0xe6,0x2a,0xb4,0xc9,0x71,0x27,0xab,0x33,0xe9,0x82,0x69,0x96,0x6a,0xe1,0xd4,0x55,0x7e,0x45,0x9b,0xf7,0xf5,0x97,0xb3,0x13,0xf3,0x51,0xa2,0x01,0x22,0xf0,0x66,0x0e,},\"\\x78\\xeb\\x9e\\x13\\x78\\x99\\x28\\xa7\\x4f\\x36\\x01\\x41\\x72\\x8e\\xde\\x98\\x38\\x96\\x85\\xc8\\x36\\xb9\\x1f\\xaf\\xbf\\x1a\\x7e\\x8c\\x19\\xcf\\xbe\\x21\\xbd\\x3c\\x3d\\x6c\\x6e\\xd8\\x3c\\x40\\x9e\\xf6\\x93\\xf1\\xd7\\x35\\xda\\x3f\\xa4\\x66\\x49\\x7e\\x19\\xf3\\x8e\\x30\\xfb\\xa2\\xa1\\x02\\x37\\x85\\x45\\x90\\x70\\xe6\\xe9\\x2c\\x1c\\xb7\\xc9\\xbd\\x0c\\x9b\\xa6\\x12\\x20\\x15\\x78\\x66\\xc3\\xbe\\xd2\\xb0\\x1e\\x6e\\x6b\\x9b\\x8d\\xd3\\xf0\\xc4\\x7c\\x02\\xf1\\x81\\x34\\x6a\\x0a\\x9b\\x9b\\x5d\\x3d\\x7e\\x18\\xa9\\x4d\\x69\\x56\\x85\\x5e\\x16\\xe8\\xea\\xaa\\xab\\x71\\xb1\\x03\\x02\\xf3\\x5b\\xd8\\xfb\\x1f\\x9b\\x58\\x47\\x30\\x41\\x60\\x32\\x49\\x26\\x64\\x5b\\x05\\x82\\xc2\\xf2\\xf1\\x53\\x3a\\x24\\x28\\x14\\x61\\x51\\x42\\x41\\xdb\\x28\\x50\\xef\\x31\\xc5\\x76\\x3b\\x2e\\x3d\\x4f\\xb1\\x8f\\xc6\\xd8\\xc1\\xd7\\xe5\\x2f\\x7c\\x13\\x39\\x2c\\x17\\xe2\\x70\\x19\\xff\\x60\\x00\\x8e\\x43\\x1f\\x17\\x14\\x37\\x0b\\xc0\\xef\\xd9\\x45\\x2a\\x61\\xf5\\xc5\\x64\\x88\\xd9\\x1a\\x18\\x50\\x37\\xf1\\xf6\\x47\\xf7\\x2f\\xa7\\x85\\x01\\x0d\\x5d\\x78\\xf0\\xa1\\x15\\x87\\xcc\\xf6\\x6b\\x80\\x88\\xe0\\xe6\\x35\\xff\\xf3\\x77\\x41\\x93\\xb2\\xed\\xef\\xfd\\x92\\xd6\\xe8\\xa0\\x32\\x11\\x28\\xae\\x64\\xcd\\xb8\\x62\\xe6\\x31\\xe2\\xee\\x5b\\xa0\\xda\\x44\\xbb\\xd5\\x89\\xdc\\x39\\x2b\\x5a\\x11\\x3b\\x86\\xa7\\x27\\xa8\\xdd\\xb6\\x98\\xa3\\x34\\xcc\\x66\\x8b\\x39\\xb1\\xcd\\xe1\\x99\\xb8\\x88\\x37\\xca\\x5f\\x00\\xf5\\x53\\xf8\\x9c\\x62\\x28\\x34\\x27\\x36\\x41\\xd3\\x9b\\xc1\\x0c\\x6a\\x24\\xe1\\xeb\\x42\\x58\\x75\\x42\\xf0\\x3f\\xc1\\x62\\x75\\x24\\xed\\x6b\\x74\\x93\\x91\\xf1\\x10\\x28\\x70\\x6c\\x42\\x36\\x44\\x25\\xb2\\xca\\xf2\\x01\\x80\\xe1\\xb8\\x02\\xc7\\x44\\xb4\\x9b\\x7b\\xcd\\x9b\\xf7\\xb1\\x5c\\x23\\xa0\\xbf\\x1c\\x69\\x65\\x96\\x0d\\x34\\x15\\x54\\xe1\\x96\\x6b\\x6e\\xf8\\x2f\\xcf\\xbb\\xe4\\x1d\\x1e\\x09\\xd7\\x41\\xe3\\x09\\x25\\x44\\x46\\x77\\x7f\\x13\\xc2\\x9a\\x67\\xb8\\xbd\\xeb\\xc5\\xf7\\xf0\\x4d\\x16\\x0d\\x60\\xe3\\x32\\xe3\\xd0\\x44\\x1a\\x0f\\x2f\\x7b\\x19\\x2c\\x3e\\x2b\\xdf\\x6d\\xad\\xec\\x2a\\x42\\x4f\\x88\\x66\\x98\\x06\\x23\\x6e\\xe0\\x4d\\xea\\x69\\x2b\\xd8\\xbb\\x6f\\x91\\xca\\x06\\x82\\xec\\xe3\\x49\\x14\\x25\\x75\\x35\\x8b\\x9b\\x7b\\xe7\\x06\\x00\\xb3\\xcb\\x81\\xe1\\x45\\x6b\\xa0\\x79\\x9f\\xdc\\x01\\xff\\xd6\\x86\\x23\"},\n{{0xaf,0x7e,0xa8,0xe4,0x1c,0x89,0x37,0xa4,0xec,0x47,0x5a,0xd8,0x13,0x71,0xa1,0x71,0xd3,0xd0,0xf9,0xfd,0x75,0x19,0xa0,0x4c,0x75,0x1e,0xd4,0xad,0x8f,0xf8,0xfe,0xf9,},{0x15,0xdf,0xc7,0x15,0x85,0xba,0xc7,0x1e,0xf2,0x0f,0x37,0x49,0x87,0xc5,0x55,0xa3,0xf2,0xf0,0x7d,0x6b,0x9c,0x78,0x70,0x66,0xc1,0x0d,0x63,0xcf,0x06,0xe0,0x2a,0xb0,},{0xc0,0xf1,0x73,0x91,0x67,0x27,0x4b,0xf9,0x18,0x31,0xc7,0x4b,0xeb,0x64,0x5a,0xf7,0x90,0x45,0x9b,0x28,0xbb,0x3f,0x21,0x32,0x53,0x65,0x13,0x0f,0x40,0x9a,0xcb,0x66,0xdf,0x1d,0x22,0x37,0x59,0xa9,0x75,0x8e,0x08,0xfd,0x72,0x53,0x73,0x74,0x84,0xe2,0x85,0xa6,0xfb,0x47,0x40,0x4a,0xbe,0x2e,0xba,0x5e,0xf2,0x49,0xfd,0x02,0x5c,0x0a,},\"\\x05\\xf2\\x26\\x3f\\x02\\x45\\xec\\xb9\\xfa\\xeb\\x14\\xe5\\x7a\\xca\\x43\\x66\\x68\\x30\\x8c\\x81\\x25\\xdf\\x31\\x16\\xc4\\xee\\x20\\x50\\x1d\\x0c\\xde\\x70\\x1b\\x36\\x6e\\x2b\\x50\\xa1\\xc5\\xed\\xf4\\x84\\x14\\x4c\\xe1\\x6b\\xfb\\x1f\\x7d\\x26\\xdc\\x42\\x75\\xea\\x97\\x32\\xe2\\x64\\xba\\x4d\\x4a\\x36\\x2b\\x40\\x27\\x5b\\xa4\\x73\\x77\\xdb\\xc3\\x32\\xcb\\x65\\xe2\\xf4\\xc8\\x85\\x38\\x94\\xaa\\x87\\x8a\\x4c\\x17\\x5d\\xc5\\xb3\\xb2\\xa7\\x57\\xff\\x3c\\x8d\\x7d\\xe6\\x60\\x97\\x3b\\x89\\xda\\xdf\\x07\\x6e\\x2e\\x4f\\xc7\\x62\\x39\\xb7\\xbc\\x75\\x2a\\x22\\x9d\\x44\\xe0\\x00\\xce\\xb6\\x67\\x10\\x4c\\xb0\\x74\\x6b\\xfc\\xf5\\x9d\\x69\\x60\\x3a\\xe7\\xfc\\x1b\\xcf\\x11\\xd2\\xe3\\x3f\\x61\\xdc\\x49\\x7e\\xc1\\xb0\\xbd\\x5e\\x4f\\x1d\\xbe\\xf4\\x35\\xf2\\xf2\\x91\\xf3\\x0b\\x00\\xa8\\x5e\\x83\\x39\\x46\\xc8\\xb1\\x04\\x84\\xe4\\xab\\xd7\\xd6\\x0b\\xdb\\xb1\\xfe\\x6d\\xff\\x58\\x07\\xa5\\x3b\\xb8\\x93\\x82\\x15\\x30\\x13\\xb7\\x0c\\xa0\\x8e\\xfc\\x91\\xb7\\xe9\\xfc\\x5b\\x5d\\xbb\\xb6\\xaf\\x12\\x3b\\x57\\xbe\\x2e\\x14\\x0f\\xc4\\x71\\xa4\\x5d\\x89\\xfa\\x82\\x84\\xcc\\x27\\xe0\\xa1\\xfe\\x77\\x1f\\x55\\x59\\x8b\\xbd\\xcf\\x06\\x8d\\x50\\x6d\\xad\\x0a\\x59\\x21\\x79\\xce\\xca\\x39\\xee\\x95\\x26\\xf9\\xe4\\xfe\\x47\\xbf\\x2b\\xb1\\x4f\\xb1\\x48\\x6a\\x67\\x7d\\x4d\\x7b\\x99\\xa5\\x20\\x54\\x56\\x76\\xa0\\xf1\\xfa\\x80\\x90\\x49\\xaa\\x24\\x14\\xae\\x7b\\x81\\x7d\\x9a\\x03\\x6e\\x5c\\x15\\x78\\x86\\xe8\\x34\\x1d\\x4e\\x81\\x9c\\x09\\x2a\\x3b\\x48\\xb3\\x60\\x6b\\x03\\xac\\xb7\\x27\\xc6\\xc2\\x21\\x7d\\x0a\\xf3\\x01\\x21\\x54\\x6a\\x94\\xaf\\x6b\\x49\\xca\\xa2\\xa8\\xc9\\xb1\\x78\\x6f\\xa0\\xc2\\xa5\\x24\\xec\\x7a\\x02\\x3e\\x92\\x4b\\x5f\\x8a\\x89\\xa5\\x37\\x80\\xc7\\xf8\\x78\\x1c\\x5b\\x8e\\x86\\x94\\x30\\xca\\xa0\\xe6\\xd0\\x43\\x79\\x67\\xe3\\xae\\xd4\\x4f\\x45\\xc9\\x01\\xcb\\xcf\\x10\\x26\\xfb\\xbd\\x4e\\x3d\\xd9\\xa0\\x91\\xec\\xf8\\xb3\\x4f\\x7d\\xd5\\x03\\x8e\\x54\\x3d\\xc7\\xeb\\x6a\\xd5\\x49\\x4e\\xfb\\x14\\x5c\\xf6\\x3e\\xc0\\xd3\\x55\\xbb\\x8e\\x17\\x2f\\x45\\x5d\\x8a\\x6b\\x13\\xda\\xca\\xad\\xdb\\xc5\\x6e\\x47\\xde\\x3c\\xf7\\x62\\xa1\\xa7\\x38\\xef\\x09\\x2f\\x14\\x36\\x68\\x04\\x67\\xb5\\xcd\\x82\\xe9\\xe3\\x6e\\x2d\\x2b\\x68\\x42\\xb3\\xbd\\x5d\\xce\\x77\\x18\\x0d\\xda\\xf0\\xb6\\x43\\x37\\x8e\\x69\\x85\\x99\\xdd\\x47\\xf5\\xcd\\xbb\"},\n{{0x0c,0x57,0xcb,0xfc,0xeb,0xde,0x10,0xed,0xe0,0x2d,0x1c,0xb0,0x1d,0xf3,0x60,0xd4,0x1f,0x2e,0x66,0xa5,0x04,0x43,0xd5,0x8b,0x5d,0x4f,0x08,0x28,0xc9,0xa1,0x8b,0xb7,},{0xc4,0xd7,0x61,0xba,0x18,0x99,0x71,0xb9,0x46,0x2c,0x61,0xbf,0x46,0xa7,0x65,0xf8,0x8e,0x2e,0xca,0xa5,0xbf,0x22,0x11,0x22,0x0a,0xfb,0x00,0xac,0x65,0x7f,0x7c,0xe5,},{0x8a,0xf7,0xbb,0xe0,0x1b,0x8a,0xb9,0x39,0x51,0xd1,0x6f,0xca,0x05,0xa9,0xc9,0x67,0xd1,0xc5,0x2c,0x97,0x4b,0xea,0x15,0x1e,0xa7,0x2e,0x4c,0xeb,0xaa,0x20,0xcc,0x78,0x3b,0xb6,0x1d,0x8d,0x69,0x38,0x5c,0xac,0x5b,0xc6,0xd7,0x2d,0xbd,0x16,0x2b,0xee,0xf1,0xfc,0xb5,0xdd,0x0e,0x0a,0x08,0xb4,0x8c,0xa0,0xb9,0xf6,0xd9,0xa9,0x88,0x0c,},\"\\x33\\x77\\x03\\x24\\x3a\\xb5\\xb4\\xe4\\xd3\\x48\\x1e\\xe8\\xdd\\x1f\\x44\\x94\\x50\\x71\\x74\\x41\\x26\\x58\\xa9\\x39\\x88\\xb5\\xc3\\x04\\x03\\xa7\\xb7\\xed\\x85\\x22\\xce\\xb4\\x6f\\xa1\\xee\\x02\\x75\\x3a\\x87\\x4e\\xf0\\x67\\x5d\\x39\\x7c\\x57\\x5d\\xa0\\xb0\\x8c\\xaa\\x8c\\xee\\x33\\x93\\x78\\x4d\\x0f\\x0d\\xb8\\x45\\x98\\x37\\xaf\\x90\\xb9\\x05\\x6d\\xf4\\xe3\\x8e\\x41\\x7f\\x3a\\xd2\\xeb\\x1a\\x10\\x0e\\xf2\\x07\\xce\\x2c\\xa6\\xc6\\x10\\x01\\x80\\x21\\x66\\x1e\\x30\\x70\\x99\\xf2\\xb7\\xc4\\xae\\x87\\x59\\x91\\x14\\x0b\\xdd\\x3f\\x0f\\x99\\xad\\x2c\\x5d\\x55\\xaa\\xcb\\x84\\xcc\\x1c\\xdc\\xd5\\x79\\xe0\\x80\\x72\\xb6\\x95\\x1f\\xd4\\x5e\\xd2\\x89\\xac\\x9f\\xf7\\xf0\\x98\\x6a\\xc8\\x8a\\x4f\\xbb\\x9d\\xc9\\x20\\x3d\\x9b\\xaf\\x18\\x0c\\x90\\xed\\xf9\\x37\\x25\\x8c\\x9d\\x0a\\x6d\\x48\\xe2\\x20\\xf7\\x2d\\x25\\x0c\\x7f\\x2c\\x77\\x7e\\xaa\\x7f\\xb9\\xfa\\x11\\xd5\\x0a\\x57\\x98\\x77\\x2f\\x9f\\xd9\\x76\\xb0\\x05\\x99\\xf1\\xf0\\x27\\x6f\\x3a\\x2e\\x4d\\x98\\x8a\\xe9\\x21\\x25\\x46\\x7a\\x8d\\xed\\xb7\\xa1\\x6f\\x9e\\x3a\\x56\\xe8\\xd0\\x06\\x62\\xb3\\xeb\\x67\\xa3\\x5b\\x9b\\x60\\xe7\\x3b\\xd9\\x35\\x07\\x7e\\xe2\\x38\\xdf\\x8f\\x6e\\x83\\x3b\\x9a\\x55\\x23\\x38\\x68\\x26\\xc1\\xf2\\x91\\x7b\\x1c\\x3e\\xc9\\x8e\\x0a\\x5f\\xde\\x89\\xc4\\x8b\\x1d\\x44\\x6d\\xa5\\xd0\\xc8\\x85\\xfe\\xf0\\xe3\\x74\\xbf\\xf3\\x0a\\x99\\x7c\\x7b\\xaf\\xd5\\xe7\\x43\\xc8\\x5d\\x0c\\x6a\\xaa\\x6e\\xf1\\x0a\\x06\\x12\\x11\\xa2\\x32\\x7c\\x6d\\x84\\xeb\\x74\\x7a\\x56\\xe9\\xbf\\x60\\xfc\\xd5\\xb5\\x53\\xb7\\x98\\x83\\x4d\\x0c\\x5c\\xca\\xdb\\x9d\\x4b\\x54\\xe7\\x23\\x7d\\x12\\xc6\\x79\\xc1\\x93\\xa2\\x87\\xbb\\x2f\\x51\\x1c\\xd4\\xee\\x2a\\x2d\\x85\\x49\\xb4\\x4b\\x21\\xc1\\x1f\\xbe\\x57\\x23\\x38\\x1c\\x6c\\x5f\\x78\\x46\\x87\\xfd\\x90\\xce\\xbc\\x5b\\x49\\x5a\\xf9\\xe4\\x14\\xf2\\x96\\x1b\\x06\\xa1\\xc8\\x43\\x3b\\x9a\\xa3\\x29\\x2b\\xcf\\xf4\\x24\\x1c\\x22\\x71\\x67\\xf8\\xd1\\xde\\x05\\x4b\\xa3\\x3a\\xd8\\x1d\\xa3\\xeb\\x3e\\xc6\\xe4\\x0a\\x6e\\x26\\x85\\x4a\\xf3\\x49\\x54\\x01\\x71\\xb7\\x5d\\x75\\xfb\\x9a\\x8d\\x12\\x93\\x78\\x27\\xfd\\x59\\x4d\\x31\\x7b\\x7a\\x8d\\x9f\\x1c\\x2f\\xca\\xbd\\xa5\\x63\\x75\\x56\\x8c\\x3e\\x9e\\x51\\x4c\\x2e\\xff\\xfc\\x38\\x78\\x36\\x3d\\xcf\\xad\\x9f\\xd9\\x54\\x36\\xb0\\x22\\xe8\\x77\\x2a\\x88\\xcb\\x71\\xe8\\x03\\xbf\\x90\\x38\\x19\\x62\"},\n{{0xfe,0x71,0x72,0x27,0x83,0x64,0x19,0x4b,0xcf,0xef,0xb4,0x78,0x31,0x42,0xb7,0x9f,0x59,0xd5,0xfd,0x97,0x8b,0x1e,0x47,0xc3,0x14,0xd7,0x8d,0x4c,0xb3,0xf6,0x1c,0x8a,},{0x2e,0x82,0xcc,0xe4,0x79,0x10,0xc7,0xe2,0xa7,0x9b,0xc1,0xf4,0x19,0xdc,0x3c,0x3d,0xf5,0x4f,0x23,0x29,0x1f,0xc8,0x19,0x3e,0x82,0x58,0xcc,0xd2,0xfd,0x38,0xd5,0x48,},{0xf6,0xc2,0xa4,0x29,0x6b,0x9a,0x34,0x07,0xc6,0xd7,0xa5,0x67,0x9d,0xae,0x86,0x66,0xb5,0x03,0xd1,0xa1,0x7e,0xac,0xf7,0x1d,0xf4,0x93,0x79,0x1b,0x8f,0xf0,0xc0,0xaa,0x8e,0xed,0x36,0xb3,0x27,0xa2,0x9a,0xb7,0x82,0x8f,0x46,0xf2,0x2d,0xe8,0x68,0xb6,0x28,0xb1,0xcf,0xd5,0x01,0xe8,0x59,0x9f,0xa3,0x16,0x93,0xb1,0x5f,0x61,0x08,0x0f,},\"\\x23\\x50\\x94\\x51\\xa0\\x59\\x96\\x9f\\x2b\\x4b\\xdf\\xce\\xe5\\x38\\x89\\x57\\xe9\\x45\\x6d\\x1f\\xc0\\xcd\\x85\\x7e\\x4f\\x4d\\x3c\\x25\\xa4\\x15\\x5d\\x5e\\xe9\\x1c\\x20\\x53\\xd5\\x58\\x06\\x2e\\xea\\x68\\x27\\x95\\x0d\\xe8\\x63\\xbc\\x9c\\x3d\\xf9\\x67\\x2c\\xde\\x8b\\xa7\\x41\\x74\\x4e\\xbb\\xdd\\xb4\\x5e\\xc1\\xf4\\x28\\x45\\x70\\xfd\\x0a\\xac\\xd0\\x7e\\xa5\\x8c\\x58\\x1b\\xe2\\xaf\\xc9\\x5a\\xe4\\x44\\xe6\\x78\\xed\\xc2\\xa0\\x24\\x39\\xf3\\x87\\xce\\xc9\\x82\\xea\\x3a\\x44\\x81\\x4a\\x8a\\x30\\x2b\\xb3\\xbf\\xe8\\x22\\x8d\\x58\\xde\\x03\\x9d\\xeb\\xdf\\x7c\\x2a\\x7e\\xdd\\xb4\\xe7\\x1c\\xa4\\x74\\xf9\\x4f\\x7e\\x2b\\xd8\\x9d\\xc6\\x5b\\x16\\x10\\x73\\x3c\\x91\\xff\\xf8\\x9b\\xd4\\x99\\xf4\\x01\\x54\\xa6\\x19\\x8f\\xdf\\x5e\\xc7\\xad\\x37\\x22\\xd9\\x25\\xb2\\x92\\x19\\x6c\\x42\\x94\\x99\\x07\\x5b\\xe0\\xc5\\xb6\\xda\\x9c\\x09\\x0c\\x07\\x91\\xa7\\x01\\x9e\\xb5\\xe7\\x36\\x6b\\xe6\\xce\\x58\\xab\\x2f\\x04\\xfe\\xcd\\x91\\x27\\xc4\\x27\\x18\\x04\\x7b\\xf4\\x70\\x30\\x69\\x15\\x21\\x31\\x2c\\x08\\x77\\xaa\\x3f\\x36\\xcc\\x5f\\xbc\\x9c\\xaa\\xe0\\xfd\\xe3\\x94\\x5d\\x2a\\x86\\x8e\\xe2\\x50\\x2a\\x38\\x33\\x20\\x8e\\xb8\\x50\\xa1\\x63\\xcf\\xcb\\xf6\\xda\\x9e\\xe6\\xad\\x9f\\xe0\\x67\\xfe\\x24\\x19\\x86\\xfe\\x44\\x36\\xd6\\xae\\x4e\\xdc\\x61\\x56\\x19\\x38\\xe2\\xa3\\x3f\\x4a\\x33\\xdb\\x63\\xf6\\x9d\\x3f\\x1a\\x88\\x50\\xed\\x40\\x02\\x88\\x69\\x16\\x41\\x03\\x48\\x8f\\xb7\\x95\\xcd\\x82\\xca\\x06\\x7f\\xe1\\xb4\\x89\\x7c\\xaa\\x49\\xa7\\xca\\x9a\\x80\\xf3\\xa8\\x15\\x1f\\xd1\\x3b\\xbb\\x7f\\xf3\\x50\\xe8\\x57\\x9f\\x56\\x5d\\xc1\\xc4\\xa9\\xca\\x93\\x8d\\x27\\xb1\\x5b\\x3f\\x85\\x8e\\xf4\\x5d\\x3d\\xd7\\x8b\\x2c\\x35\\x86\\x35\\x35\\x63\\x15\\xf5\\x5a\\x97\\x52\\x8e\\xcf\\xec\\x5d\\x11\\xa5\\xb7\\x21\\x50\\x31\\x07\\xfa\\xa4\\x06\\xc1\\x70\\x34\\xe6\\x01\\x47\\x4b\\x3b\\x60\\xcf\\x48\\x69\\x2e\\x26\\x92\\x61\\x15\\x8f\\xc3\\x53\\xd4\\xdf\\x42\\x74\\x38\\x13\\x57\\x79\\x0b\\x77\\x56\\x08\\x7b\\x00\\xcc\\x79\\xe3\\xb9\\xd2\\x8a\\x3f\\x24\\x39\\xfe\\xbf\\x19\\x9e\\x64\\xa8\\xb3\\x7c\\x91\\xb5\\xa4\\x33\\x4e\\x33\\x54\\xe8\\xfa\\xf3\\xa3\\x61\\xe8\\x56\\xc5\\x4b\\xda\\xa4\\x3b\\xfd\\xcd\\x6e\\xe6\\xc9\\xf9\\x67\\x95\\x88\\xf6\\x06\\x99\\x50\\x83\\x23\\x48\\xaa\\xcb\\xa2\\xbf\\xee\\xba\\xca\\xa2\\x07\\x1d\\xdc\\x7d\\x77\\x89\\x8e\\xf0\\xf6\\x87\\x93\\xcd\\x25\"},\n{{0xa9,0x51,0xe4,0xe6,0xba,0x9f,0x1f,0x0b,0x35,0x48,0x31,0xc9,0x86,0x94,0x24,0x48,0xfa,0xed,0xe3,0x7e,0x11,0xb0,0xf2,0x47,0xda,0x27,0x06,0xdc,0xee,0xf7,0x3a,0xc7,},{0x30,0x36,0x20,0x14,0x97,0x4b,0xf7,0x5c,0x84,0x95,0xc2,0xe2,0x71,0xe7,0x13,0xd5,0x73,0x84,0x38,0x4d,0x0a,0x5d,0xa8,0x8e,0xde,0xea,0x79,0x27,0x9c,0x0c,0x58,0xec,},{0x02,0x78,0xc8,0x6a,0x15,0x20,0x8d,0x9b,0xe5,0xb1,0xe1,0x57,0x47,0x61,0x86,0x1b,0x8a,0xf7,0x2a,0xe0,0x8d,0x40,0xcd,0xcb,0xec,0x35,0x4e,0x65,0xa9,0xc3,0xd0,0xa0,0x6b,0x5f,0xcb,0xb2,0x97,0xd0,0x9b,0xef,0x39,0x74,0x62,0x39,0x59,0x86,0xc3,0x09,0x3e,0xeb,0x22,0x64,0x4c,0x00,0x3c,0x30,0x78,0x17,0x8c,0xdf,0x67,0x4e,0x99,0x0a,},\"\\x20\\x57\\x7d\\xca\\xc8\\x91\\x74\\x88\\x5e\\xed\\xb0\\x62\\x48\\x9c\\xd5\\x12\\xfa\\x72\\x86\\x3e\\xc5\\x43\\x8e\\x31\\xe9\\x58\\x78\\xb7\\x5c\\xe2\\x77\\x2a\\xee\\x62\\x90\\xa0\\xba\\x3c\\x8f\\x64\\x2c\\x1d\\x0e\\xf5\\x5d\\xa8\\xd5\\xbc\\x14\\x84\\xf8\\x3b\\xb9\\x87\\x6c\\x7a\\x8c\\x0b\\x6b\\x60\\x9b\\x94\\xd1\\x12\\xa0\\x6f\\xc8\\x3c\\xe8\\xd2\\xc1\\xe0\\x8e\\xd6\\xc7\\x35\\xe5\\x7b\\x24\\x4a\\xad\\x6e\\xcf\\x70\\x75\\x36\\x3d\\x56\\x5b\\xa4\\x78\\x65\\x69\\x5c\\x84\\x23\\x51\\x09\\x09\\xe0\\xa3\\xdb\\x4b\\x61\\xed\\x7a\\xa6\\x7a\\x74\\x71\\x33\\x1e\\x83\\xa0\\xc5\\x8b\\x82\\x20\\xa6\\x24\\x5f\\x65\\x66\\x15\\x49\\xc1\\xa1\\x2d\\x4c\\x0d\\x50\\xc3\\x26\\xfb\\x94\\x91\\x7c\\xbd\\x07\\xbe\\x51\\xe8\\x3f\\xe8\\xbb\\x3e\\x46\\xca\\x01\\xb0\\xa2\\x60\\xda\\xaf\\x1d\\x6a\\xbe\\x37\\x03\\xd6\\xa9\\x25\\x11\\x3b\\xb4\\xd5\\x7e\\xa1\\xa4\\x8b\\x4c\\x7d\\xbd\\xaa\\x03\\xee\\xa8\\x14\\xa4\\xb5\\xf0\\x2e\\x1d\\xfb\\x54\\x5c\\xc6\\x23\\xfe\\x17\\xa3\\xbb\\x18\\xe4\\x37\\x3f\\x5f\\x7e\\xc2\\xfb\\x52\\x17\\xd2\\x3e\\x4f\\xed\\x54\\xa7\\x72\\xe1\\x13\\x23\\xe7\\x30\\xaa\\xd7\\xef\\xca\\x8c\\x46\\x44\\x00\\xe7\\x67\\x90\\x55\\xfc\\xc1\\x25\\xa8\\x76\\xef\\x7b\\x8b\\x9d\\xe1\\x86\\xe2\\x29\\xa7\\xab\\xf1\\x91\\xd0\\xc5\\x6d\\x91\\x81\\x5f\\x67\\x87\\x2e\\x95\\x7b\\xfb\\xc7\\x63\\x4a\\xac\\x40\\x35\\x76\\xa5\\x8f\\x42\\x7b\\xdb\\xb3\\x0e\\x8c\\x4b\\x6f\\xc6\\xc4\\x47\\x74\\x10\\x24\\xeb\\xb5\\x03\\xa5\\xa9\\x02\\x51\\x24\\xa4\\x88\\x7f\\x82\\x5a\\x43\\xee\\x94\\x0f\\x21\\x0a\\x1b\\xd5\\xae\\x4f\\x67\\x32\\xd6\\x0f\\x95\\xf2\\xb8\\x32\\x01\\xc4\\xc6\\xdf\\xe2\\x79\\x41\\x2d\\x75\\x02\\xa5\\x21\\x1f\\x8f\\x48\\xf8\\x00\\xdb\\x30\\xfc\\x37\\x76\\xc4\\xed\\x3a\\x38\\xbb\\x46\\x34\\x82\\x2c\\x98\\xa6\\xd6\\xdd\\x32\\x33\\xbe\\x60\\xe4\\x2c\\xca\\x45\\xa3\\x16\\x3c\\xc8\\x4e\\x9e\\x8d\\xa6\\x47\\xc0\\x71\\x1b\\xc4\\xc6\\xcc\\xd6\\x5a\\xa1\\xe9\\x72\\xc0\\x74\\x04\\xd1\\x03\\xe7\\x4b\\xcc\\x31\\xa7\\xe2\\xc3\\xee\\xa5\\xac\\x92\\x57\\xab\\x42\\x89\\x47\\xab\\x3d\\xd3\\xfb\\x15\\x3d\\x90\\x69\\x4a\\x40\\x73\\x37\\x3c\\x4d\\xd9\\xce\\xb1\\x31\\x15\\x4f\\xe8\\x77\\x47\\x3f\\xd9\\x96\\xf4\\x24\\xf3\\x3e\\x31\\x6e\\x4e\\xb0\\x2b\\x8c\\x75\\x13\\xbe\\x69\\x98\\xe5\\x16\\xcb\\xba\\x54\\xd9\\x4c\\xd0\\xa4\\x35\\xe0\\xff\\xcc\\x2c\\x0a\\x8e\\xf7\\x2b\\x63\\x0e\\xc2\\x47\\x81\\x06\\x6a\\xa5\\xef\\xb9\"},\n{{0x38,0xa9,0xb2,0xd4,0x9b,0xa8,0xb8,0x2f,0x30,0x1a,0x57,0x72,0xce,0xa0,0xef,0xc2,0x21,0x84,0x55,0xc8,0xb2,0x18,0xb2,0x2c,0xba,0xa2,0xaa,0xd2,0xd7,0xad,0x3b,0x35,},{0x9d,0xf5,0xea,0x1f,0x78,0xf8,0x10,0xa5,0x21,0x77,0x46,0x02,0xbb,0xba,0x49,0x42,0xf0,0x45,0x92,0x38,0x96,0x6c,0x8b,0xcd,0x21,0x90,0x0a,0xfb,0xf3,0xd8,0x42,0x93,},{0xe1,0x9e,0x62,0xac,0x53,0x9a,0x9c,0xa2,0x51,0xd1,0x2d,0x4c,0x71,0x05,0x5b,0x0a,0x3f,0x58,0x1d,0x19,0xf2,0x68,0x2e,0x67,0x24,0x04,0xc7,0x8a,0xc1,0xf1,0x2b,0xbe,0xfc,0x91,0x51,0x92,0x76,0xa5,0xcb,0xe1,0x6f,0x52,0x0c,0xf7,0xa7,0xf6,0x87,0xa2,0x40,0xf0,0x32,0x91,0x57,0xc5,0x9f,0x50,0x02,0x6a,0x58,0xdc,0xdc,0x50,0xfc,0x08,},\"\\x17\\x78\\x16\\x7c\\x49\\xb3\\xa4\\x4d\\x4a\\x5b\\xa8\\x38\\xb7\\x38\\x85\\x53\\xb1\\xe1\\x3d\\x36\\xea\\x4f\\x86\\xd3\\x02\\x42\\xe1\\xa8\\x22\\xa3\\xbb\\xaf\\xf5\\xce\\xa6\\x3e\\x2a\\xe2\\xa4\\x63\\x5b\\xe2\\x36\\xfe\\xf2\\xb8\\x13\\x5d\\x14\\xfb\\x62\\x1c\\x0b\\xb7\\x73\\xc9\\xc1\\x77\\x53\\xf8\\x09\\x26\\xeb\\x55\\xd0\\xf1\\x15\\xbd\\x09\\xa8\\x85\\xd8\\x44\\xb8\\x18\\xc9\\xf0\\x44\\x89\\xa3\\x31\\xbb\\x5e\\x03\\x2b\\x8e\\x58\\xcd\\xa3\\x69\\x49\\xc5\\xa8\\xd0\\x8b\\x55\\xbb\\x8d\\xe9\\x65\\xe1\\xf9\\x0d\\x3b\\x9c\\xfe\\xec\\xfc\\x6a\\xd9\\xa4\\xee\\x5c\\xb4\\x04\\x7e\\x94\\x50\\xac\\xdc\\x64\\x64\\x01\\x66\\xa8\\xc0\\x69\\xea\\x84\\x9a\\xeb\\xdd\\xac\\x1a\\xe4\\xaf\\xec\\x91\\xdd\\xd1\\x7f\\xa5\\x55\\x3f\\xa8\\x7c\\x56\\xf7\\xe5\\x1e\\xc1\\xcd\\x6b\\x5c\\xc2\\x33\\x51\\xd0\\x57\\xa4\\xce\\x4a\\x89\\x23\\xc8\\xae\\x6a\\xc7\\xa8\\xaf\\xdc\\xc0\\x88\\x1c\\x0e\\x74\\xeb\\xb0\\x24\\xef\\x72\\x96\\x16\\x2c\\xb9\\x3c\\x68\\xe5\\x0b\\xbb\\x07\\x4e\\x65\\x1a\\xc8\\x7d\\xac\\x9e\\xa5\\x9d\\x4c\\x3f\\xbf\\x0f\\xe3\\x79\\xf3\\xe9\\x7a\\x24\\x56\\x6e\\xca\\xe5\\x43\\x03\\xbc\\xfb\\x6f\\x0c\\xc9\\xf1\\x5f\\x66\\x39\\x43\\x0e\\x66\\xb1\\x9a\\x42\\x78\\x49\\xfd\\xff\\xf8\\x33\\xdf\\x02\\x68\\x9e\\x9d\\xe4\\x40\\x06\\xc9\\x03\\xc5\\x59\\x18\\x34\\x59\\xb9\\xf4\\xa9\\x7f\\x54\\xa0\\xf2\\xa2\\x8d\\xf7\\xb0\\xe9\\xde\\xed\\xa8\\x23\\x9d\\x7b\\x51\\x69\\x77\\xf5\\xe7\\xd6\\x97\\x1b\\x45\\x02\\xe9\\x88\\x5f\\x75\\x0a\\xf8\\xd1\\xa6\\x66\\x9e\\x25\\xe7\\x7d\\x5f\\x32\\x7c\\x77\\xc8\\x7a\\x86\\xe0\\xa1\\x87\\x2b\\xc9\\x6a\\x76\\x06\\x0f\\x5f\\x8a\\x0c\\x40\\xcc\\x97\\x3b\\xfc\\x7f\\xe6\\xed\\x9b\\xca\\x78\\xf8\\x84\\xe6\\xa2\\x82\\x8b\\x94\\xd4\\x89\\xd3\\x2a\\x0f\\xd3\\x37\\xe6\\x9d\\xb8\\x3f\\xb8\\x78\\x9a\\xfd\\x4e\\x8e\\xf5\\x4c\\x22\\xa7\\x8c\\x25\\x87\\x46\\x8b\\x9a\\xe0\\x71\\xba\\xe3\\xb2\\x02\\xd3\\x18\\x3a\\xd5\\xf0\\xf8\\xe8\\x42\\xe5\\xa8\\xde\\x85\\xbf\\xff\\x49\\xe0\\x3c\\x83\\x81\\xbc\\xa7\\xfd\\x42\\x78\\xdd\\xcc\\xaf\\x01\\x34\\xfb\\x55\\x93\\xa3\\x95\\xa7\\x7a\\x5c\\xbd\\x43\\x45\\x93\\xbc\\x4a\\xd0\\xff\\x4b\\x84\\x00\\xec\\x67\\x4c\\x4e\\xca\\xf1\\xd5\\x77\\x54\\xbe\\x0c\\xb2\\xfa\\x9a\\x64\\x41\\xa9\\xab\\xad\\x7b\\x42\\x19\\x7a\\xd8\\x2e\\x50\\x82\\x7e\\x4a\\x42\\x45\\x57\\x3a\\x8f\\x0e\\xf8\\x7f\\x58\\x22\\x8a\\x28\\x67\\xf4\\xb3\\xb8\\x34\\xb6\\x63\\x50\\x37\\x94\\x0a\"},\n{{0x9a,0x17,0x17,0x87,0x36,0x89,0xa0,0x3c,0x11,0x2d,0xd6,0xb4,0xd7,0x6a,0xe7,0x3b,0x89,0xb4,0x16,0xa5,0x98,0xce,0xec,0x20,0x9e,0x27,0x96,0x1e,0x7b,0xb1,0xee,0x8a,},{0xee,0xca,0xd1,0xe0,0xe4,0xb8,0x63,0x29,0x18,0x81,0xa8,0xc2,0x41,0xdb,0x9c,0xcf,0xff,0xe4,0xe5,0x5d,0x8b,0x5a,0x42,0xf3,0x07,0xb4,0x43,0x6a,0xcd,0x06,0x49,0xa6,},{0x1a,0xf8,0xbe,0x09,0x55,0x38,0x96,0x58,0x00,0xd8,0xef,0xf6,0xd7,0x23,0xd0,0x28,0xd6,0x5d,0x0e,0x9c,0x6e,0xb5,0xe9,0xd1,0x25,0xbb,0x3b,0x17,0x83,0xf1,0x1e,0xf7,0x07,0x9a,0x49,0xa8,0x07,0xe2,0x7e,0xf1,0x26,0x0b,0xe2,0x6a,0x3b,0x23,0x1d,0x03,0xb2,0xae,0x15,0x1e,0x49,0xf6,0xf1,0x89,0xf1,0x5b,0x1c,0x83,0xea,0xb0,0x1c,0x02,},\"\\xe2\\x65\\x80\\x47\\x09\\x01\\xa0\\x7a\\xb0\\x93\\x1a\\xa2\\x38\\x29\\x80\\x2c\\xe0\\x4d\\xa5\\x9f\\xdc\\x2f\\x77\\x3b\\xc5\\x67\\xf1\\xe6\\x5b\\x4f\\x2e\\x2d\\x4a\\x1a\\x6a\\xec\\x1f\\x54\\x15\\x8a\\xdf\\xce\\x9b\\x09\\x97\\x90\\xb5\\x03\\xa1\\x3d\\x22\\x09\\x7a\\xe2\\x3e\\xbc\\xcf\\x92\\x3f\\x3b\\xb1\\x98\\x6d\\x6e\\x49\\x11\\x1a\\x8c\\xf0\\xd4\\xeb\\x82\\x36\\xbf\\xe0\\xd7\\xc9\\xe9\\x3a\\x5e\\xfc\\x7f\\xeb\\x8e\\x6a\\x9c\\xd1\\xb8\\xd9\\x21\\xef\\xa2\\x1e\\x44\\x9f\\xf4\\x9e\\x06\\xc1\\xcc\\xfe\\xa3\\x1f\\x93\\xe0\\x33\\xc3\\xc2\\xa5\\x4d\\xdb\\x0f\\x65\\x3a\\x09\\xfb\\xd1\\x8a\\x70\\xb5\\x63\\x15\\xf1\\x93\\xe7\\xbe\\x56\\xe5\\x16\\x8f\\x59\\x56\\x38\\x21\\xd4\\xbc\\x3b\\xbb\\x0e\\xaa\\x20\\x48\\x28\\x6b\\xbe\\xee\\x5a\\xa3\\xf3\\xe7\\x53\\x6c\\xf2\\xb7\\x50\\xfd\\x32\\x26\\x02\\xbb\\x38\\x47\\xce\\xca\\x39\\xb7\\x54\\x74\\x32\\x2d\\x76\\xb1\\xde\\x80\\xfa\\x2e\\xad\\xba\\x15\\x2d\\x6f\\x8f\\x02\\x0d\\x4d\\x93\\x1c\\x53\\xf0\\xa2\\x80\\x12\\x24\\xd3\\x5d\\xeb\\x6e\\xc1\\x3b\\x01\\x48\\x73\\xe6\\x89\\x90\\x36\\x07\\xde\\x96\\xd9\\xb7\\xa7\\x43\\xa8\\x87\\xd2\\xf4\\x8d\\xaf\\x2e\\xd2\\xee\\xfb\\x20\\x2a\\xbf\\x60\\x82\\x79\\x69\\x81\\x12\\x3b\\x96\\x6e\\x93\\x6d\\xcf\\x34\\x83\\xe2\\xd2\\x4d\\x69\\x4e\\xcb\\x86\\x5f\\xbe\\xb6\\x96\\x9f\\x34\\x70\\x27\\xfb\\x8b\\x17\\x5d\\x24\\xa4\\xc0\\x45\\xc0\\xbb\\x4a\\xb5\\xe0\\x2d\\xdc\\xbe\\x77\\xd4\\x75\\x6c\\x46\\xd1\\x37\\xb0\\x94\\x47\\x3a\\x02\\x30\\x7a\\x10\\x83\\x40\\xac\\xad\\x9d\\x03\\xba\\xe8\\x40\\x3a\\xf1\\x99\\xcb\\x75\\xca\\xe3\\x16\\x2f\\x38\\x15\\x81\\x3c\\xc6\\x8b\\xf2\\xa5\\xe4\\x99\\xe5\\x94\\x92\\x11\\x49\\xf3\\xbb\\xd2\\x14\\xda\\x51\\x37\\xe7\\x56\\x52\\x15\\x59\\xdc\\x80\\xd9\\xa4\\xb7\\x4a\\x0f\\x49\\x43\\x02\\x2c\\x7c\\xd5\\xfc\\xa4\\x23\\x15\\xe0\\xbc\\xee\\xae\\x90\\x69\\x61\\x5c\\xe6\\x7a\\x04\\x38\\x24\\x12\\x31\\x3a\\x31\\xd6\\x7b\\x34\\x6c\\x32\\x9a\\xd8\\x2e\\x74\\x2c\\x0a\\x6c\\xe0\\xa6\\xa0\\x24\\x54\\xc1\\x13\\xe5\\x20\\x22\\xf3\\xcc\\x03\\xfd\\xa6\\x91\\xeb\\xdf\\xe1\\x4c\\x53\\xc8\\xce\\x5c\\xa9\\xb9\\x32\\xca\\x1a\\x38\\x6e\\x3e\\xb4\\xe9\\x0a\\x4d\\xc6\\xe8\\xad\\x85\\x33\\xb5\\xaf\\x1a\\xae\\xf5\\x00\\x31\\x28\\x65\\x5c\\xa6\\x4f\\x67\\xfc\\xd9\\x7c\\x6a\\xc8\\x03\\x00\\x24\\x04\\x90\\x0b\\xc0\\xfa\\xe9\\x84\\x63\\xbc\\xc3\\x14\\x09\\xf9\\x98\\x17\\x48\\x78\\x9a\\xde\\x2d\\x07\\x78\\x3b\\xc3\\x2b\"},\n{{0x43,0xbd,0x92,0x4d,0xb8,0x15,0x60,0x08,0xc6,0xb3,0x99,0x4a,0x81,0x30,0xd4,0x27,0xd5,0x14,0xdb,0x8a,0x61,0x3b,0x84,0xdf,0xb0,0xb8,0xe0,0xde,0x6a,0xc3,0x06,0x76,},{0x1b,0x34,0x61,0xc2,0x69,0xd5,0xb0,0x06,0x2d,0x5d,0xf6,0xfa,0x65,0x4a,0x25,0x86,0xf6,0x47,0xa0,0x68,0x42,0x18,0xa0,0x6e,0x5e,0x2f,0x7b,0xad,0xfb,0x39,0x41,0x31,},{0xd2,0xa0,0x5d,0x88,0xd9,0xd5,0x43,0xd9,0x4d,0x57,0xec,0x88,0xae,0x55,0x68,0x17,0x50,0xf2,0x0b,0x9b,0xe9,0xc1,0xe9,0x18,0xcd,0xaf,0x45,0x77,0x67,0xf2,0x94,0x8d,0xd6,0x29,0xe9,0x4f,0x06,0x8e,0xdc,0xf3,0xd9,0x92,0x7e,0x33,0x02,0x34,0xba,0xdc,0x3a,0x02,0xfa,0x5a,0xd3,0xd9,0xd8,0x5e,0x94,0x8c,0xb0,0xb0,0xcb,0x3c,0xd7,0x0a,},\"\\x61\\x84\\xe6\\x48\\x0c\\x42\\xe9\\x6c\\xc8\\x77\\x26\\x9b\\x16\\x37\\x15\\x45\\xff\\x95\\x23\\xc4\\x5e\\xa8\\x8e\\x76\\xa1\\x34\\x8c\\x68\\xae\\x7f\\x31\\x8b\\x08\\x8f\\xe4\\x61\\x09\\x28\\x23\\x91\\x85\\xb6\\xb5\\x5b\\xfa\\x0f\\x43\\x64\\x4c\\x4a\\x4c\\x97\\xc5\\x6e\\xd7\\x7d\\x08\\xb1\\xf4\\xaa\\xd2\\xf4\\xaa\\x06\\x99\\x94\\xab\\xec\\xa9\\x6b\\x7b\\xf8\\x1b\\x80\\x64\\xea\\x43\\x50\\xd8\\xa8\\xb0\\x22\\x97\\xa5\\x13\\x08\\xb6\\x1c\\x57\\xc8\\xf1\\x87\\x3c\\x6f\\x97\\x00\\x7a\\xca\\x31\\x80\\x42\\x9e\\x73\\x0a\\x66\\x43\\xf2\\x87\\x33\\x54\\x7b\\xcf\\x7b\\x9a\\xdf\\xe3\\x27\\xe8\\x57\\x36\\xbd\\x04\\xaf\\x7f\\x1d\\x9f\\x4f\\xb8\\x4a\\x7f\\x3a\\xff\\xdf\\x4e\\x22\\xb5\\x74\\xec\\xb4\\xbc\\x88\\x36\\xb1\\x0b\\x84\\x53\\xae\\xaa\\x5c\\x1b\\xf1\\x32\\x24\\x8b\\x82\\x6c\\xc5\\x23\\x0f\\x75\\xe0\\x75\\xfa\\xc9\\xf0\\x37\\x56\\x11\\x36\\xe0\\x06\\x43\\xd0\\x82\\x53\\xe7\\xad\\x65\\x2f\\x70\\x2c\\x0d\\x15\\xb6\\xd7\\xd4\\x8a\\xa6\\xf8\\xe9\\xb5\\xf5\\xcc\\x14\\x6e\\x3f\\x15\\x6f\\xb2\\x52\\x27\\x51\\xc3\\x71\\x00\\x41\\xbd\\x92\\x2f\\x37\\xa5\\x03\\x77\\xe0\\x28\\xb0\\xc4\\xe4\\xbc\\x34\\x65\\xd7\\xc8\\x4a\\xf6\\xa5\\xfb\\x42\\x7a\\xcb\\x3b\\x41\\x37\\x8b\\x10\\x2b\\xda\\x46\\xd8\\xf6\\xf2\\x03\\xa5\\xff\\xcf\\x39\\x5d\\x43\\x5e\\x93\\x45\\x8a\\x0b\\x0a\\x4c\\x2e\\x77\\x82\\xfa\\xfe\\x11\\x9f\\x76\\x9f\\x67\\x05\\x8c\\x66\\x77\\xf6\\xd1\\x0d\\x9c\\xf5\\xcb\\x87\\x48\\xe1\\x80\\x57\\x98\\xed\\x23\\x3f\\x6f\\x93\\x0e\\xee\\x0e\\x50\\x75\\xbc\\x58\\xb9\\x7a\\xf9\\x17\\x7f\\xda\\x75\\xd5\\x37\\x08\\xbe\\xb0\\x4d\\xc4\\xf1\\x9a\\x43\\xe7\\x68\\x07\\x46\\x09\\xf1\\x40\\x65\\xf4\\x8f\\xda\\xd5\\x07\\x7c\\xe1\\x09\\xba\\xcc\\x35\\x71\\x74\\xa6\\xb7\\x95\\x6f\\x6e\\x7f\\x32\\xe3\\x84\\x15\\xbe\\x52\\x63\\x70\\xfa\\x58\\xc3\\xc0\\xb3\\x1f\\x51\\xe6\\xcd\\x4b\\x2c\\xf2\\x7f\\x8b\\xcb\\xc2\\x12\\x59\\xd9\\xe5\\xc3\\xb5\\xc2\\x94\\x6a\\x9f\\xc1\\xb0\\x0d\\x9d\\x15\\xc3\\xb7\\xd8\\x0b\\xfd\\x9d\\x05\\xdb\\x91\\xd2\\x49\\xd3\\xe4\\x2d\\x89\\x56\\x68\\x20\\x44\\x54\\x8d\\x83\\xbd\\xa8\\xd5\\xcc\\x92\\x12\\x44\\x2f\\x30\\xb4\\x5c\\xf4\\xae\\xad\\x80\\xcc\\xe9\\xb3\\x51\\x2c\\x39\\xc5\\xc7\\x37\\xd3\\xf8\\xd7\\x47\\xaf\\xba\\xb2\\x65\\xaf\\x5e\\xee\\xf8\\xca\\x93\\x62\\xec\\x76\\xe9\\x43\\xb0\\xa0\\xd7\\xa3\\x9f\\x3d\\xb1\\x1e\\xca\\x14\\x45\\x8a\\x7b\\x59\\x2e\\x5e\\x4f\\xf2\\x27\\x5d\\xd4\\x8b\\x28\\x53\"},\n{{0x8f,0xb0,0x86,0x20,0x6d,0xd9,0x5a,0x26,0x21,0xf5,0x98,0x56,0x0c,0xcb,0x28,0x1f,0x82,0x73,0xc8,0xfc,0x72,0xe2,0x36,0x11,0x08,0x9b,0xaa,0xc8,0x9d,0x3c,0x3c,0x78,},{0x20,0x27,0x6e,0xf4,0x79,0xf4,0xd4,0x52,0x3a,0xb7,0x74,0x20,0xd4,0x24,0xe8,0x81,0x9c,0x33,0xc8,0x37,0x79,0xed,0x80,0xc7,0xf6,0x66,0xe8,0xf4,0x40,0x3f,0x94,0xd7,},{0xa9,0x30,0x5e,0x00,0x16,0x00,0xd5,0x97,0xd0,0x5e,0xf6,0x71,0x69,0x9b,0xf0,0x9f,0x0d,0xcc,0x0c,0x44,0x47,0x5d,0x3c,0xa3,0x1e,0x7f,0xf1,0xbf,0xfe,0xdc,0x0c,0x67,0xda,0xa1,0xf3,0xb7,0x6a,0x03,0x59,0x48,0xc5,0x9c,0xd8,0x7f,0x82,0x45,0x3a,0x40,0x95,0x0a,0x1c,0x97,0x03,0xc2,0xe7,0xd9,0x28,0x0e,0x73,0x03,0x96,0x6d,0xa3,0x01,},\"\\xf0\\x29\\x03\\xed\\x42\\x66\\xe8\\x49\\xa4\\x48\\x52\\x05\\x95\\x4f\\xff\\xa8\\xa1\\x08\\xc3\\x23\\xb7\\xe3\\xf8\\x43\\x31\\x04\\x35\\x14\\xe4\\x85\\x56\\xab\\x01\\x94\\x97\\x23\\x3a\\x5a\\x12\\x7b\\xff\\x3c\\xd7\\xc9\\x70\\x86\\xbe\\xce\\xf5\\x38\\xb3\\xf3\\x39\\xd7\\xd0\\x6e\\x53\\x2d\\xc7\\x32\\x5e\\x59\\x7a\\xe3\\x57\\xf8\\x16\\xde\\xa4\\x2a\\x6a\\x22\\xc7\\x9d\\x22\\x07\\x4a\\x2e\\x1a\\xd8\\x02\\x3c\\x42\\x4b\\x7e\\x09\\x6e\\x5a\\xd8\\x89\\x7b\\x05\\xef\\x7d\\x00\\xd3\\x0a\\x04\\xaa\\xf2\\x98\\x1e\\xdd\\xff\\x2b\\x34\\x7f\\x1e\\x27\\xe2\\x0a\\xab\\xbe\\x7e\\x7a\\x95\\x44\\x97\\x8e\\x09\\x2b\\x00\\xcc\\xe4\\x20\\xab\\xa0\\x61\\x87\\x37\\x4f\\xfb\\xb3\\x7b\\x4c\\x22\\xd7\\x5f\\x04\\xe5\\x75\\x90\\xf6\\x10\\xa2\\x73\\x47\\x28\\x6c\\x29\\x83\\x12\\xa6\\xc9\\xb1\\xbd\\xf2\\x4f\\xbd\\xa8\\x51\\x3c\\x4f\\x83\\x56\\xcc\\xf7\\x57\\x06\\x8f\\xfc\\x11\\xbc\\x65\\x11\\x37\\x83\\xa5\\xdd\\xe7\\x72\\x2f\\xaf\\x4c\\xeb\\x19\\xfb\\xb6\\x2f\\x40\\x70\\x2e\\x2c\\x6e\\x6a\\x8b\\xb4\\x9e\\xf4\\x04\\x46\\x45\\x0c\\x4c\\x59\\xa2\\x99\\x09\\x44\\xda\\x47\\x44\\xf6\\xee\\x77\\x0b\\x93\\x0c\\x24\\x66\\x69\\x81\\x3c\\xe5\\xa9\\xf5\\xa4\\x7d\\xd8\\x03\\x88\\x98\\x1b\\xfc\\xc3\\xa5\\x6b\\x5b\\xe2\\xc4\\xc7\\xe6\\x59\\xa2\\xe9\\x18\\x2d\\xec\\x0a\\xaa\\xfe\\x90\\x31\\xaa\\x39\\x54\\xd4\\xfe\\x7c\\x43\\x11\\x96\\xa5\\x61\\xa5\\xb7\\x8e\\xab\\xa6\\x4f\\x3d\\xb1\\xb5\\x86\\xc5\\x3b\\x16\\xf6\\x79\\xa8\\x49\\x21\\xa6\\x42\\xc2\\x60\\xe4\\x65\\x3a\\x61\\xde\\x10\\x8e\\xbd\\xe6\\xf7\\x05\\x3a\\xfa\\x2c\\xb3\\xf3\\x66\\x8e\\xde\\x12\\x10\\x20\\xdd\\x1b\\xac\\xe8\\x41\\x8a\\xeb\\xac\\x3a\\x5b\\xd5\\x14\\x2f\\x10\\x5a\\xc2\\x6f\\xe4\\x9e\\x5f\\xb1\\x40\\xc1\\x9b\\x22\\xd5\\x4a\\x62\\x91\\xdf\\xc9\\x54\\x67\\x02\\x47\\x88\\x16\\x46\\x87\\x4d\\xef\\xad\\x81\\x49\\x95\\x51\\x9f\\x62\\x60\\xe9\\x77\\x4a\\x8d\\x18\\x5c\\x37\\x88\\x1b\\x4f\\x25\\x43\\xc4\\xb6\\x3f\\xbf\\x19\\x85\\x01\\x6a\\xb4\\x1c\\x4d\\x72\\x8c\\xbc\\x90\\xb3\\xab\\x87\\x62\\x67\\xbe\\xd4\\x1d\\x0c\\x09\\x02\\xf6\\xb5\\x0e\\x8f\\xa9\\x06\\xfc\\x47\\x88\\xf7\\xb8\\x20\\x46\\x73\\x06\\xe0\\xfe\\x9e\\x03\\x6a\\x0a\\x00\\xf8\\x04\\xf9\\x1c\\x3c\\xa7\\x18\\xb9\\x5f\\xf6\\xd9\\xe2\\x20\\x4b\\xc3\\x16\\x1b\\xf7\\x0f\\xcc\\x17\\xb2\\x96\\x4b\\x56\\xbc\\x61\\x2e\\x29\\x40\\x2d\\x96\\xf5\\x09\\x86\\x51\\x4b\\xc7\\xd8\\x31\\xd5\\x8e\\x42\\x79\\x37\\x86\\xd5\\x80\\x6f\"},\n{{0xaf,0xa1,0xb8,0x46,0xc2,0x10,0xb5,0x23,0x00,0xe9,0x76,0x96,0xf8,0x1b,0x8e,0xa7,0x74,0xd1,0xdf,0x12,0xe6,0x12,0x52,0x7c,0x55,0x74,0x7f,0x29,0xc1,0x93,0x73,0x96,},{0xb6,0x09,0x56,0x6b,0xbd,0x19,0x47,0xbd,0x7a,0xfa,0xce,0xb1,0x43,0x89,0xe8,0x36,0x22,0x71,0x69,0x21,0x5f,0xab,0x66,0x85,0x1a,0xa5,0xd7,0x0d,0x6e,0x2e,0x3b,0x89,},{0x98,0xb0,0xc6,0x31,0x3c,0xec,0xaf,0x7c,0x82,0xcb,0xde,0xb3,0xd0,0x28,0x06,0x41,0xc6,0x1a,0x06,0x0f,0x65,0xe5,0x63,0xaa,0x93,0xce,0x18,0x30,0x0a,0x9b,0x58,0x27,0x2d,0xc8,0x68,0x0b,0x48,0x5e,0x8c,0xd1,0x1c,0xf8,0x0f,0xdc,0xa8,0x68,0xfa,0xb3,0x65,0x37,0x83,0x84,0xa1,0x42,0x72,0x7f,0x2f,0x84,0x4f,0x87,0xcf,0xdf,0x19,0x05,},\"\\x4c\\xac\\x1b\\x1f\\x4b\\xd4\\x82\\x84\\xdc\\xc9\\xaf\\xc8\\xb5\\x95\\x5b\\x64\\xb4\\x36\\xdb\\x70\\x4b\\x03\\x35\\xd9\\x75\\x5c\\xc1\\xf9\\x74\\x77\\xf8\\xd3\\x23\\xcb\\x64\\x10\\xef\\x14\\x6a\\xb8\\xa9\\xef\\xb9\\x52\\x6d\\x8b\\x62\\xe3\\xbb\\xad\\x1f\\x72\\x95\\xf4\\x7b\\xa9\\xf0\\xde\\x95\\x8f\\x8e\\xc9\\xb7\\x7a\\xb4\\x22\\x32\\x43\\x7e\\xd9\\x74\\x85\\x64\\x44\\xcd\\x22\\xe2\\x0b\\xe3\\x5e\\x91\\x81\\x3b\\xff\\x4b\\x01\\x6f\\x81\\x0d\\x0f\\x61\\xd8\\x9f\\x6b\\x61\\x4d\\xb3\\x3f\\x34\\xbd\\x09\\x98\\x5b\\x59\\x3f\\xe3\\xe0\\x6e\\x06\\x5b\\x7b\\xc6\\xcd\\x39\\xd5\\x5c\\x2c\\xfb\\xec\\x7b\\x6d\\x59\\xc0\\xb3\\x7d\\xd1\\xd0\\xd3\\x51\\x35\\xab\\x1d\\x1b\\x04\\xf2\\xf3\\x0c\\x2f\\x04\\xf4\\xba\\x2b\\x36\\x58\\x27\\x38\\x08\\x1c\\xf5\\x91\\x90\\xf5\\x28\\x36\\x3d\\xb9\\x44\\xed\\x61\\x29\\x31\\xd1\\xd5\\x14\\xc6\\x21\\x4f\\x9a\\xb9\\x2a\\xbb\\x18\\x33\\x92\\x61\\x83\\xac\\x52\\xfb\\xa2\\xa4\\x55\\x1e\\x20\\xe4\\xc0\\xac\\x95\\x9a\\x49\\xdd\\xb1\\x67\\xa3\\x81\\xe0\\x24\\x1d\\x40\\xc0\\x86\\xe9\\x0e\\x52\\xac\\xa0\\x17\\x25\\x89\\x75\\xdb\\xab\\x2b\\xa4\\x51\\xee\\x53\\x9a\\x71\\x8f\\x07\\x6a\\x58\\x70\\x9c\\x66\\x97\\x41\\x8d\\x9c\\x6f\\x13\\xe4\\xd3\\x91\\x36\\x8b\\xf0\\xe8\\xbd\\x8f\\x29\\x32\\xdd\\x95\\xce\\xaf\\x7a\\xac\\xa1\\x24\\x11\\x47\\xd3\\x41\\xa3\\xac\\xd0\\x8d\\xc3\\x29\\x05\\x48\\x35\\x72\\xb8\\x9a\\x80\\xcc\\x47\\x23\\x14\\x68\\xab\\x8d\\xe3\\x59\\xdd\\x52\\x5a\\x62\\x57\\xcf\\x19\\x6c\\x2e\\xcb\\x82\\xfa\\x8a\\x78\\xaa\\x3a\\x85\\x1c\\x7c\\x96\\xca\\x25\\xbf\\x7c\\xa3\\xdc\\xf3\\xca\\x21\\x45\\x3d\\x0d\\xfd\\x33\\x23\\xd5\\xa4\\x22\\xde\\xc8\\x43\\x16\\x10\\x2f\\x68\\x4c\\x35\\x9f\\x22\\x6b\\xb5\\x37\\x79\\xc0\\xb9\\x95\\x09\\x39\\x28\\x1e\\xf7\\x9a\\x58\\xc0\\x11\\x99\\x3e\\xac\\xe0\\x85\\x49\\x7a\\xfa\\x4d\\xaf\\x64\\xc9\\x68\\x7b\\x0a\\x11\\xaa\\x11\\x6c\\xfa\\x7b\\x03\\x93\\x62\\x41\\xa5\\x56\\x7b\\x64\\x6e\\x7e\\x42\\xe9\\xfb\\x59\\x24\\x05\\xb8\\xfa\\x3c\\x0a\\x82\\x1f\\xc3\\x12\\x1b\\x45\\xb1\\x75\\x3c\\xec\\x9a\\x83\\x94\\x7d\\x21\\x1a\\x45\\x49\\x9b\\xd6\\x37\\x90\\xb8\\x7f\\x01\\x47\\x2f\\xe5\\x66\\xd8\\x76\\x96\\xef\\xed\\xbb\\x74\\xed\\x00\\x04\\x8c\\x38\\x4b\\xa7\\xf0\\x27\\xb3\\xaa\\x42\\x98\\xdc\\x41\\x10\\x34\\x9f\\xed\\xf5\\x2a\\x96\\xcd\\x05\\xd0\\x8b\\xd6\\x35\\x77\\x1e\\xd4\\x51\\x07\\x38\\xd8\\xf0\\x7a\\x60\\x21\\x24\\x4d\\x19\\x03\\x57\\x9a\\x3e\\xa7\\x39\"},\n{{0xc8,0x59,0x13,0xa6,0x87,0x78,0x77,0x13,0x10,0x01,0x62,0x3c,0xcd,0xa9,0xcd,0xc1,0x2b,0x9d,0x40,0x43,0xb8,0xa8,0x37,0x93,0xc4,0x46,0x96,0x63,0x2c,0xd6,0x42,0x1c,},{0x9c,0xc6,0x7c,0x69,0x48,0xf7,0xbf,0x6e,0x55,0x6d,0x08,0x49,0xd3,0xb8,0xd2,0x03,0x45,0x7a,0x7b,0x61,0x54,0x9b,0x36,0x68,0x1d,0x75,0x4f,0x1d,0xc0,0x84,0x1e,0x96,},{0x01,0xfc,0xcf,0xdb,0x1f,0xb6,0x88,0x8b,0x03,0x10,0xa9,0x13,0x17,0x0f,0x7e,0x36,0x68,0x16,0xda,0xeb,0xe7,0x65,0x0d,0x72,0x51,0x3d,0x95,0x06,0xe6,0x6f,0x7d,0x62,0x20,0x8a,0x49,0xec,0xe0,0xaf,0x18,0x71,0x49,0x7f,0x45,0x41,0xef,0x60,0x5b,0xde,0x71,0x1c,0x9e,0x0a,0x12,0x05,0xef,0x48,0xf2,0x6c,0x03,0xdc,0x1a,0xd4,0xaf,0x03,},\"\\x91\\xb5\\x00\\x9e\\x83\\xd0\\xf6\\x10\\x33\\x99\\xc2\\xd3\\xfe\\xec\\x00\\x84\\x97\\x3a\\x30\\x5b\\xf4\\x17\\x6e\\xc7\\x82\\x53\\x75\\x60\\x47\\x2d\\xb1\\x87\\xa1\\x1b\\x4d\\xcb\\x4b\\x2f\\xfb\\x7f\\x06\\x44\\xfe\\xb3\\x94\\xb2\\x8e\\x5b\\xfe\\x97\\x24\\x7c\\x4a\\x4a\\x23\\x1c\\xf6\\xe9\\x16\\xbf\\x99\\x34\\x4c\\xcd\\xa8\\x8a\\x7f\\x5d\\x83\\x1d\\x6d\\xe3\\xd5\\x63\\xdd\\x10\\x2e\\xae\\xb1\\x08\\xc5\\xbd\\xce\\x44\\xe0\\x63\\x2d\\x17\\xe6\\xfa\\x55\\xb1\\x80\\x67\\xdf\\x2f\\xa8\\xd2\\x00\\xa9\\x86\\x9f\\x6a\\xff\\x92\\x0c\\x51\\xd4\\x6a\\x1c\\xed\\x2d\\x90\\x3b\\x1d\\x9b\\x6b\\x07\\x5f\\xac\\xbf\\x91\\xcd\\x05\\xeb\\x41\\xad\\x81\\x1a\\x8e\\xf4\\x0d\\x91\\x18\\x26\\x10\\x12\\xc7\\x2b\\x89\\x79\\xf1\\x51\\x53\\xdb\\xb8\\x56\\x12\\x93\\xda\\x9f\\x8b\\x77\\xc8\\xff\\x14\\xf7\\x53\\x87\\x53\\x6f\\x00\\x36\\xd1\\x71\\x3a\\x72\\xce\\x8c\\x35\\xb1\\x06\\x2f\\x2c\\x67\\x32\\xae\\xbf\\x32\\x93\\x67\\x99\\xb5\\x1c\\x2c\\xbc\\xd6\\x57\\x24\\x13\\xe7\\xdf\\xaa\\xb8\\x64\\x1a\\x02\\xc1\\x50\\x23\\x73\\x81\\xcf\\x7a\\x14\\xe2\\x2c\\x74\\xc6\\xc2\\x00\\x09\\xde\\x7d\\x3b\\x7e\\x69\\xcd\\x1b\\x45\\x84\\xac\\x2c\\x01\\xba\\xba\\xf9\\x73\\xc5\\x6b\\x38\\x14\\xbb\\x00\\x89\\x72\\x0e\\x41\\x96\\x81\\x06\\xcf\\x26\\x50\\x9d\\x4a\\xa5\\x46\\xfc\\xad\\x55\\x34\\xaf\\x30\\x3f\\xfc\\xa4\\x2b\\x16\\xae\\x6c\\x93\\xee\\x06\\xbc\\x3c\\xac\\xe1\\x2e\\x4e\\xc7\\x18\\x84\\x4b\\xd3\\x0d\\x22\\x24\\xcc\\x48\\x6d\\x10\\x6d\\x1c\\x45\\x6b\\xfa\\x16\\x5e\\xa0\\x12\\x0f\\xab\\x3d\\xf2\\xc5\\xab\\x3a\\x52\\x3b\\xbf\\xa7\\x89\\xde\\xed\\x44\\x03\\x2a\\xb0\\xbe\\x86\\xeb\\x7c\\xc0\\x9c\\xdb\\x7c\\x07\\xaa\\x94\\x8d\\xd5\\x27\\x7c\\x3d\\xf1\\xd9\\xd1\\x84\\x35\\x67\\xde\\xc8\\x4f\\x92\\x88\\xe0\\x85\\xb0\\x5a\\xe4\\xb8\\xaf\\x2c\\xea\\x5d\\x9a\\x18\\x4d\\x50\\xbe\\xf8\\x55\\x50\\xc8\\x36\\x61\\x3d\\x5d\\x3a\\xf5\\xf9\\xc2\\x92\\x8e\\x6a\\x89\\x66\\x0f\\xa6\\x27\\x19\\xeb\\xff\\x77\\x3e\\x46\\xb7\\x7e\\x34\\xbc\\x04\\x70\\xda\\x4d\\x2c\\xdb\\xc7\\x07\\x1d\\xa7\\x58\\xc4\\xd3\\x9f\\xe6\\x52\\x01\\xc8\\x8a\\xaa\\x8e\\x66\\x03\\xd0\\xbb\\xe7\\xc3\\xe9\\xb2\\xd9\\xe4\\x1b\\x63\\x46\\x82\\x09\\x2f\\x14\\x73\\x41\\xad\\x6d\\x66\\x7f\\x20\\xc6\\x4e\\x81\\xa6\\x8d\\x62\\x94\\x67\\xa5\\x4d\\xd8\\x6e\\x1c\\xe1\\x2c\\x56\\x0a\\x6f\\x9b\\x64\\x51\\x2d\\x6f\\x38\\x86\\xcb\\xb9\\xf3\\x7c\\x37\\xeb\\x39\\x85\\xc8\\xac\\x38\\xdd\\x66\\x82\\xf4\\x8f\\xe1\"},\n{{0xfa,0x1e,0x11,0xdc,0x83,0x64,0x20,0x8d,0x8e,0x1c,0xb6,0x6a,0x36,0x1b,0xe7,0xe8,0x4c,0x5e,0x36,0x81,0x66,0x58,0x7d,0x4f,0xdb,0x06,0xac,0xed,0x7f,0x62,0xe1,0x7c,},{0x4d,0x8e,0x6f,0x4b,0x34,0x15,0xdf,0x6c,0xed,0xab,0xfb,0x29,0x5c,0x19,0x84,0xfd,0x41,0x99,0x23,0xc6,0xac,0x41,0x76,0x4e,0x32,0xd2,0x2d,0xaf,0x37,0x2c,0x50,0xfc,},{0xe8,0x57,0xdb,0x08,0x7e,0x28,0xd6,0x75,0x0b,0xf5,0x4e,0x53,0x79,0x72,0x51,0xd8,0x43,0x99,0x89,0x57,0x6c,0x12,0xda,0x2d,0x9c,0x81,0x1a,0x14,0x87,0x7c,0x3b,0xd4,0x6c,0x4e,0xfa,0xb8,0x61,0xa1,0x0e,0xeb,0xe7,0xda,0x04,0xc0,0xb0,0xb4,0x45,0xc7,0xa3,0x90,0xa5,0x0c,0x13,0xde,0x36,0xf3,0xa3,0xc7,0xae,0x01,0x57,0x02,0x2c,0x0e,},\"\\x29\\x4e\\x63\\xba\\xcc\\xcb\\x80\\x1b\\xbf\\x04\\xc1\\xf1\\x9d\\x0a\\xee\\x16\\xf5\\x65\\x0a\\x6e\\x8e\\xea\\x6f\\xe4\\x11\\x10\\x66\\x3e\\xc0\\x15\\x32\\xbd\\x49\\x60\\xa5\\x27\\xf1\\x5e\\xca\\x4a\\xf2\\xf4\\xe6\\xb7\\xb0\\xfc\\x34\\x0c\\xf9\\x7a\\xa2\\x34\\xe9\\x2c\\xf7\\xd6\\x9d\\x50\\xe4\\x00\\x9c\\x24\\x96\\xe3\\xed\\x4d\\x9a\\xff\\x00\\x0f\\x9e\\x18\\x52\\x75\\xb8\\x17\\xd2\\x6a\\x0b\\xab\\x69\\xb7\\xf7\\xee\\x1e\\xa3\\x0d\\xae\\xc8\\xbc\\xee\\x38\\x7a\\xe4\\x6b\\x4b\\x29\\x9c\\x27\\xbd\\xc0\\x6e\\xea\\x63\\xf2\\x4d\\xbe\\xe9\\x55\\xa6\\xc0\\x96\\x90\\x37\\xee\\xf9\\x1c\\x34\\x32\\x1e\\x3c\\x5c\\x97\\x2f\\xde\\x99\\x31\\x83\\xb7\\xd2\\x3f\\x6e\\x01\\x9c\\x3e\\x0c\\xac\\x75\\x89\\xae\\x4a\\x15\\x21\\xaf\\x87\\xea\\x42\\xdf\\x8c\\x22\\xc2\\x27\\x0e\\xc2\\x3d\\x6d\\x14\\x0f\\x9c\\xf6\\xd4\\xd5\\x2f\\xac\\x1b\\x9d\\x6c\\x89\\x39\\xef\\x81\\x31\\xcb\\x62\\xa0\\x35\\xc5\\x26\\x15\\x38\\xbc\\xdf\\xd6\\xdb\\x41\\x9a\\x55\\xef\\x9f\\xe5\\xd7\\xa5\\xac\\x44\\x57\\x9d\\xe7\\x00\\x85\\x8d\\x74\\xa3\\x43\\x48\\x44\\xf2\\x83\\x42\\xc5\\x65\\x89\\x27\\x22\\xe2\\x7f\\x40\\x7d\\x7f\\x17\\xb7\\x4a\\x59\\x34\\xbe\\x91\\x5b\\x20\\xc2\\x40\\x06\\x43\\x23\\x5f\\x8a\\xb5\\x79\\x5f\\x32\\x4e\\x33\\xc5\\x06\\x44\\xa0\\x40\\x33\\x54\\x2c\\xb3\\x81\\x6d\\x77\\x0f\\xa8\\x99\\xe7\\x31\\x1c\\x14\\x30\\x1c\\x1b\\xd0\\xf5\\xaa\\x60\\xa2\\xeb\\x31\\x65\\x68\\x0c\\x72\\x0e\\x1e\\xfa\\x80\\x96\\xfc\\x25\\xd2\\x77\\x92\\x75\\xf1\\x84\\x2b\\x2d\\xb5\\x3b\\x4d\\xa0\\xad\\x3e\\x59\\xc0\\x75\\x40\\xc2\\x84\\x60\\xce\\xc1\\xfd\\xd3\\xcd\\xb7\\xa3\\x47\\x8b\\x91\\xa9\\xca\\xf9\\xac\\x89\\x1c\\xdf\\x3a\\xea\\xee\\xca\\x9a\\x96\\x56\\xac\\x13\\x07\\x25\\x99\\x22\\xfc\\xa7\\x4c\\x5c\\xc6\\x9f\\x7e\\x25\\xc6\\xbf\\x58\\x79\\x73\\xa4\\xb7\\xd3\\xe3\\xac\\x06\\x35\\xb0\\xdb\\x22\\xa0\\x09\\x3a\\x79\\x07\\x68\\x81\\xc7\\x17\\x36\\xee\\x1d\\x4d\\x45\\xf8\\xed\\x2d\\x29\\xa0\\x67\\x1a\\x64\\xe6\\xca\\x2f\\x7a\\x5e\\xf4\\x04\\xb1\\xed\\xeb\\x84\\x20\\x34\\xf5\\x71\\xb6\\x99\\xbc\\x59\\xe5\\xa3\\x7d\\xf0\\x20\\x54\\xe8\\x48\\x2b\\xf1\\xe7\\xb7\\x7d\\x8e\\x83\\x97\\xda\\x15\\xd8\\x9d\\x73\\x55\\xa5\\xdc\\xe8\\x6b\\x16\\x83\\xa9\\xac\\x4e\\x40\\x6c\\x08\\xa9\\x4a\\x6e\\xb0\\x0e\\x5a\\xe1\\x6d\\x96\\x72\\x29\\x72\\xe5\\xc5\\x0c\\x7b\\xee\\x4a\\x84\\xd0\\x69\\x7b\\xbe\\x67\\xce\\xb7\\xef\\x29\\x5f\\x06\\xaa\\xea\\x5a\\xbb\\xa4\\x44\\x66\\xbe\\x0f\\x67\"},\n{{0x24,0xa9,0x14,0xce,0xb4,0x99,0xe3,0x75,0xe5,0xc6,0x67,0x77,0xc1,0xed,0x20,0x43,0xbe,0x56,0x54,0x9d,0x5e,0x50,0x2a,0x84,0x47,0x10,0x36,0x40,0x42,0xba,0x9a,0xcb,},{0x20,0xd2,0x1e,0xe7,0x64,0xb1,0xf3,0x5f,0x94,0x56,0x82,0x00,0xd6,0x3b,0xd5,0x82,0x8a,0xca,0x8c,0x5d,0x3e,0x90,0x47,0xd2,0x3f,0x47,0x8b,0x92,0x52,0x95,0xfa,0x2e,},{0x3a,0xe0,0xcc,0x7b,0xca,0x8d,0x73,0xbe,0x83,0xa9,0xb8,0x09,0xb1,0x33,0x38,0xc1,0x27,0x06,0xaa,0xef,0x75,0xc4,0xd1,0xa4,0x78,0x17,0x8f,0x9d,0xc5,0x65,0x51,0x4c,0x75,0x29,0xe2,0x98,0x04,0x3e,0xa7,0x8d,0x21,0xa5,0xa0,0x9d,0xd0,0x4f,0x10,0xae,0x87,0x44,0x1e,0x56,0x86,0xa9,0x33,0xc9,0x2c,0x75,0x54,0x84,0x27,0xad,0x3a,0x03,},\"\\x3f\\xf9\\xf6\\x6f\\xa2\\x64\\x6e\\xc6\\x6a\\x1b\\xf9\\x33\\xc2\\xb4\\xcc\\x0f\\xbf\\x91\\x2b\\x4d\\x6d\\xb5\\x05\\x34\\x25\\x7f\\x97\\xd0\\x1e\\x69\\x8d\\x05\\x48\\x57\\x47\\xde\\x25\\x44\\xe9\\xf5\\xa4\\xa4\\xa0\\x75\\x38\\x8c\\xf4\\x40\\x0a\\xb8\\x9b\\x03\\x53\\xce\\x86\\x19\\x82\\x02\\xdb\\x3a\\x90\\x37\\x67\\xb8\\x79\\xa2\\xaf\\x9d\\xaa\\x15\\x58\\x43\\x11\\x1a\\xf1\\x5a\\x2b\\xc3\\x5e\\xfe\\x41\\xbc\\xc9\\x2c\\x82\\x07\\xe0\\x01\\x13\\xb0\\x4f\\x13\\x03\\x00\\x79\\x49\\xff\\xb6\\xce\\x8d\\xf4\\xb0\\xb3\\x42\\x48\\xfe\\xdf\\x5d\\x9c\\xb2\\xce\\xe9\\x4b\\x81\\x2e\\xd5\\x8e\\xce\\x2a\\x0c\\xe0\\x45\\x4c\\xf1\\x4c\\x20\\xe4\\x9e\\x09\\xfe\\x66\\x4d\\x6e\\x25\\x76\\x2e\\x87\\x89\\x59\\x32\\xcd\\x5c\\xd3\\x2e\\xb6\\xa3\\xab\\xb3\\x8e\\xe1\\x63\\x07\\x8c\\x13\\x3e\\x93\\x58\\x87\\x91\\xdb\\xf6\\xaf\\x49\\x9a\\x31\\xea\\x44\\x53\\xbb\\xcc\\x7a\\x85\\xe4\\x06\\xc9\\x84\\x8a\\x66\\x40\\x52\\xf1\\x11\\x13\\xfb\\xb4\\xff\\xa7\\x60\\xde\\xe4\\xc2\\x61\\xe3\\x96\\x94\\x24\\x91\\x11\\x9d\\xa2\\x9a\\x33\\x58\\x2f\\x82\\x1d\\x41\\x25\\xe0\\xb4\\x16\\x2f\\x28\\xbe\\xb0\\x66\\x03\\x1a\\x65\\x2d\\x05\\x74\\x9a\\xa7\\x24\\x4d\\xd4\\xf3\\xd3\\xbb\\x15\\xd2\\x68\\x32\\x8d\\x6a\\x02\\xfc\\xe2\\x50\\x18\\x15\\x25\\x7f\\x8a\\xd5\\xaf\\x4e\\xcb\\xe7\\xcb\\x8a\\xe9\\x66\\x1e\\x34\\x4f\\x90\\x72\\x31\\x87\\x91\\xf3\\xe8\\x59\\x09\\x11\\x21\\xe0\\x8a\\xef\\xca\\x89\\x82\\xea\\xaf\\x66\\x25\\x9d\\x9d\\xe4\\xf4\\x6a\\x31\\xe7\\x16\\xdc\\x03\\x3d\\x0f\\x95\\xd1\\xfa\\x93\\x6b\\x6c\\x60\\x79\\xb1\\x37\\xdd\\x11\\x58\\xd1\\xde\\xf1\\x13\\x01\\x8c\\x73\\xf8\\xeb\\xb9\\x80\\x7e\\x0f\\x74\\x15\\x40\\x4e\\xa9\\xc7\\x85\\x44\\xac\\xe7\\xce\\x46\\x3c\\xd1\\xd1\\xc5\\x7e\\x31\\xf4\\x09\\x1b\\xc0\\x91\\x80\\x4c\\xbc\\xdd\\xad\\x0e\\x15\\xa4\\x0c\\xa9\\x1a\\xcb\\xe1\\xc6\\x22\\x4e\\xd1\\x3c\\xaf\\xb4\\xdf\\x2c\\x84\\xac\\x9f\\x0c\\x3c\\x9b\\x54\\x60\\x07\\xd9\\xdd\\x6e\\x52\\x4c\\x46\\x70\\x72\\x56\\x3d\\x4a\\xc0\\xd7\\x00\\xcc\\x1b\\xf3\\x0f\\xeb\\xb3\\x34\\x31\\x3d\\xae\\x57\\x61\\x74\\x5e\\xc0\\xa5\\xe9\\xe8\\x81\\x50\\x25\\x95\\x8f\\x00\\xfa\\x2e\\x58\\x06\\x0d\\x7e\\x9a\\x5f\\x2b\\x72\\x7f\\x48\\x69\\x9f\\x92\\x9c\\x84\\x59\\x93\\x08\\x92\\x57\\x3f\\x78\\x4f\\xef\\x56\\x92\\x51\\x8b\\x5c\\xa2\\x68\\xe2\\xa7\\x3e\\xbe\\xad\\x6e\\xbd\\xeb\\x7e\\xc2\\x4e\\xac\\x92\\xaa\\x7d\\xcb\\x41\\xb5\\x98\\xbd\\x6e\\xff\\x36\\x32\\xd0\\x69\\x72\\x62\\x91\"},\n{{0x55,0x32,0xe0,0x9b,0x93,0x7f,0xfd,0x3d,0x5f,0x4c,0x1d,0x9f,0x1f,0xfc,0xde,0xd2,0x6e,0xe7,0x4d,0x4d,0xa0,0x75,0x26,0x48,0x44,0x69,0x0b,0xd9,0xc8,0x61,0x39,0x94,},{0x50,0x93,0x96,0x9f,0x37,0x7b,0xec,0x3e,0x35,0xf5,0x9e,0xfd,0xa0,0x1a,0xb4,0x18,0x6c,0x5d,0x2a,0x36,0x74,0x0c,0xf0,0x22,0x67,0x5e,0x01,0x09,0x6b,0x1a,0x3f,0x0a,},{0xd5,0x27,0xff,0x0d,0x4a,0x21,0x9d,0x61,0xf4,0x18,0x12,0x12,0x06,0xa5,0x4a,0xe4,0x98,0x58,0x54,0xa3,0x10,0x48,0x27,0x44,0x48,0x6e,0x4d,0x13,0x0a,0x7d,0xe9,0x7c,0x31,0x9d,0xf8,0x37,0x2c,0x82,0x82,0x8c,0x93,0x6e,0x6a,0x8a,0xfd,0x9c,0x5d,0xe1,0x82,0x85,0x73,0xd8,0x26,0x1a,0xe9,0x36,0x5b,0x8f,0x23,0x76,0x76,0x18,0x24,0x02,},\"\\xad\\xd4\\xd7\\xa9\\xce\\x3f\\x63\\xd1\\xf9\\x46\\xe8\\x67\\x90\\x65\\x54\\x5d\\x8c\\x7b\\xf0\\xa2\\xcc\\x3a\\x4c\\x00\\xb8\\xf1\\x42\\xf0\\x94\\x5a\\xe3\\x62\\xc4\\xc9\\x46\\x2a\\x75\\x76\\xa4\\x05\\x9d\\x57\\x86\\x16\\x62\\x88\\x4b\\xd8\\x0b\\x96\\xd9\\x0d\\x27\\x9a\\x95\\x2e\\xda\\x95\\x2d\\x37\\xd4\\xf9\\x5c\\xf0\\xd7\\x0d\\xa9\\x8f\\x4f\\xba\\xca\\x39\\xe1\\x69\\xf9\\xd9\\x45\\xd4\\x1f\\x87\\x23\\x97\\xbb\\xdd\\x57\\x01\\x45\\x43\\x03\\xd7\\x7d\\x31\\xe8\\x63\\x48\\x27\\x1d\\xa4\\x0a\\x1b\\x8f\\x1e\\x57\\xc3\\x6f\\xcd\\x80\\x3e\\x14\\xfa\\x17\\x71\\x6c\\x56\\x31\\xef\\xa0\\x1d\\x3a\\x79\\x5d\\xc2\\x0b\\x2b\\xde\\x36\\xab\\x73\\xff\\x6a\\x2d\\x53\\x3b\\xc1\\x5c\\xce\\x22\\x32\\x87\\x13\\xc3\\xc9\\xcc\\xd0\\x72\\xc3\\xe4\\x50\\xd7\\xf2\\x2c\\x0c\\x9f\\x94\\x91\\x97\\x52\\xcb\\xfe\\x45\\xee\\x65\\x5d\\x1b\\x53\\x67\\x65\\x93\\xcd\\xb4\\x48\\x70\\x41\\x02\\x63\\x1c\\xaa\\xa9\\x76\\x95\\x2e\\xaa\\x1f\\x6c\\x2e\\x87\\x65\\x64\\xe4\\x20\\xf0\\xc6\\x46\\xa0\\xf8\\x83\\x65\\xf7\\x64\\x15\\xb4\\x08\\x5f\\x60\\xa3\\x38\\xb2\\x9c\\x51\\x63\\x3e\\x54\\x0f\\x0b\\xf3\\x2d\\x40\\x87\\xe7\\xd0\\xfb\\x68\\x5b\\xe8\\x8c\\x75\\x95\\xdc\\x53\\x1c\\x99\\xb4\\x89\\x58\\x45\\x60\\xad\\x82\\x34\\xb1\\x8e\\x39\\xa1\\x07\\xcf\\x5d\\x84\\x2d\\xab\\xd4\\x21\\xe7\\x7d\\x26\\xea\\x5e\\x0f\\x14\\x05\\xce\\x35\\xfe\\x79\\x27\\x14\\xeb\\x4e\\xe1\\xa8\\x01\\x76\\x48\\xac\\x1a\\xe7\\x39\\xa3\\x3d\\x7b\\x1e\\x08\\x91\\x05\\xd1\\xe5\\xad\\xd2\\x7a\\x62\\xce\\x64\\x15\\x45\\x70\\x34\\x0a\\xf9\\xeb\\x14\\xe7\\xfd\\xfc\\x2f\\x9a\\x2c\\x2f\\xcf\\xcd\\xac\\x3c\\xc4\\x22\\x77\\x63\\xf4\\xd6\\x29\\x49\\x74\\x79\\xf8\\x49\\x21\\x6e\\x5d\\x90\\xec\\x16\\xdf\\xa3\\x6b\\x72\\x51\\x7f\\x7b\\x54\\x86\\xba\\xee\\x7f\\xda\\x44\\x50\\xc3\\x52\\xcf\\xfb\\xba\\xe7\\x39\\x26\\xc8\\x43\\x22\\x4f\\x8c\\xe4\\x4b\\x38\\xda\\xe5\\x3f\\x3e\\xad\\x21\\x89\\x0b\\x52\\xa7\\x80\\x10\\x75\\x29\\x16\\x84\\xfd\\x59\\x10\\xed\\x86\\xad\\x33\\xe8\\xa0\\x07\\xf6\\xc3\\xf8\\x5c\\x16\\xb2\\x09\\x29\\x37\\x40\\x18\\x4f\\x58\\x90\\x87\\x4d\\x43\\x1c\\xd4\\xe0\\xea\\x40\\x87\\xc4\\x9c\\x34\\x71\\xd7\\x89\\xc8\\x13\\xc6\\xdc\\x9a\\x78\\x69\\x93\\x63\\xa1\\xd8\\x71\\x97\\xd3\\xb9\\x2c\\x02\\x86\\x68\\x93\\x11\\x82\\x3f\\x4d\\xf2\\x2c\\xe8\\x03\\x5e\\x75\\x73\\x2c\\xde\\xa7\\xf5\\x62\\x1f\\x67\\xdb\\x0e\\x2a\\x4c\\xa6\\x61\\x61\\x93\\x22\\x1c\\x0a\\xa3\\xd6\\xde\\x50\\xd8\\x52\\x82\\xee\"},\n{{0xeb,0x36,0x51,0x10,0x09,0xd3,0x7a,0x9c,0x46,0xc4,0xd1,0x37,0x4d,0x0b,0xbd,0x0d,0x99,0x81,0xe7,0x8c,0xee,0x7d,0x18,0x8c,0x5a,0xab,0x98,0x3e,0xc2,0x39,0xe1,0x0c,},{0xb1,0xcc,0x21,0x2b,0x45,0x21,0xbb,0xe7,0xb1,0x9a,0x76,0x93,0x87,0x8a,0x55,0x84,0x40,0xee,0xc3,0x62,0x05,0xd8,0x43,0x9d,0x04,0x0a,0x46,0xa9,0x90,0x2f,0xbf,0x55,},{0x9f,0x58,0x37,0x24,0xde,0x55,0x2e,0xae,0x82,0xf2,0x54,0xac,0x6e,0x2e,0xd4,0x83,0xec,0x1a,0x07,0x34,0x62,0x66,0x73,0x5c,0x49,0x09,0x20,0x69,0x0c,0x1e,0x3f,0xb2,0xa9,0xe9,0xa3,0x41,0x94,0xed,0x64,0x73,0x73,0x3b,0x30,0x0d,0x4f,0x23,0xc9,0xae,0xc0,0xda,0x5a,0x20,0x22,0x05,0x4c,0xa4,0x38,0x85,0xa1,0x5a,0x29,0x84,0x32,0x0e,},\"\\xba\\x24\\x66\\xe5\\x6c\\x1d\\xf7\\x7f\\x22\\xb6\\xf0\\x24\\x1f\\xc7\\x95\\x2a\\xe9\\xbc\\x24\\x75\\x64\\x19\\xa9\\x44\\x6d\\xd2\\xb4\\x9e\\x2c\\xb9\\xdf\\x59\\x4e\\x5b\\x6c\\x77\\xa9\\x5a\\xa5\\xfb\\xd9\\xdc\\x57\\xfe\\xc8\\x39\\x62\\xc7\\x75\\x1e\\xeb\\xb4\\xba\\x21\\x82\\x53\\xf9\\x16\\xa9\\x22\\xa5\\x13\\x96\\x63\\xe3\\x20\\x3e\\x3b\\xe4\\x82\\xbe\\x37\\x9c\\xa1\\x51\\xc4\\x63\\xd9\\xad\\xa2\\x14\\x46\\x13\\x5f\\x35\\x69\\x94\\xfa\\x54\\x49\\xf0\\x84\\x47\\x8f\\x5b\\xb4\\xf5\\xba\\x61\\x45\\xc5\\x15\\x8e\\xb7\\xb1\\xc4\\x3c\\x32\\xeb\\xea\\x25\\xe0\\x9c\\x90\\x0f\\x01\\xef\\x91\\xe9\\x2f\\x88\\xc0\\x3c\\x76\\x50\\x4a\\xce\\x96\\x46\\x01\\x6f\\xfc\\x27\\x89\\x55\\x9d\\x0f\\x3c\\xc9\\xd0\\x0f\\xb6\\x1b\\xdc\\x6a\\xf7\\xd3\\x94\\x0f\\x30\\x2e\\x58\\x8e\\x04\\xf7\\x9f\\x7b\\x3d\\x4b\\x91\\xa5\\xd1\\x93\\xa4\\xf8\\x22\\x2b\\xfe\\xb6\\x9b\\xf0\\x34\\x7d\\x98\\xad\\x81\\xef\\x99\\xd1\\x30\\xeb\\xc7\\xb3\\x6b\\x07\\x83\\x39\\x4e\\xea\\x92\\xa3\\x8d\\xdd\\x5e\\x74\\x80\\xd2\\xad\\xd4\\xe4\\xde\\xf5\\x3e\\xb9\\x9c\\x44\\x9b\\xff\\x94\\xe4\\x71\\x8b\\x09\\xf2\\xea\\x9b\\x1f\\x2b\\x88\\x65\\x94\\xa9\\x5c\\x33\\xa6\\x9e\\x03\\x33\\x15\\x4e\\x44\\x0a\\xb3\\x4b\\x7b\\x6c\\x11\\x34\\xd8\\x17\\x9b\\x6f\\x0c\\x56\\x25\\x1a\\x9a\\xd8\\xe1\\xb6\\xb0\\xf9\\xb8\\xa5\\xc9\\x70\\x81\\xa7\\xf8\\xfd\\x05\\xd0\\xb0\\xaf\\xfc\\x82\\xdb\\xdd\\xc8\\xb0\\xc0\\xab\\x7e\\x83\\x3f\\x30\\x06\\x26\\xd4\\xb9\\x73\\xb3\\xf6\\x0f\\xea\\xc5\\x55\\x71\\xe8\\x9c\\xda\\x0f\\x2b\\x44\\x1e\\xd2\\xfa\\xa6\\x69\\xa7\\x0d\\x55\\x6c\\xb4\\x8f\\x9b\\x1d\\x1c\\xbc\\xe3\\x2e\\xde\\x5d\\x16\\x6b\\x11\\x43\\xe2\\x64\\xb1\\x1e\\xa3\\x27\\x68\\x1c\\xb5\\x59\\xed\\xd1\\x3c\\x36\\x4b\\xd2\\xba\\xf1\\xfd\\x54\\xbb\\x78\\x18\\x07\\xbd\\x59\\xc8\\x68\\xb0\\xe4\\x79\\x5a\\x77\\x9e\\x67\\xf0\\xbd\\x0d\\x14\\xb5\\xa6\\xb9\\xe4\\x40\\xb5\\x7a\\x58\\x23\\x32\\x8b\\x59\\xaf\\xfb\\xd0\\x27\\xed\\xa7\\xdd\\x78\\x50\\x79\\xc5\\xf0\\x2b\\x5e\\x32\\x89\\x0b\\x03\\x87\\x30\\x98\\x6a\\x39\\xa5\\xa9\\x83\\x4a\\x3f\\xed\\x86\\x8b\\x6f\\x45\\xcb\\xdd\\x28\\xac\\xb2\\x70\\x9a\\xff\\x55\\x62\\x63\\x86\\x4f\\x9a\\xe1\\xe7\\x57\\xb3\\x27\\x8c\\x28\\x8d\\xbe\\x29\\x32\\x82\\x57\\x12\\x77\\x3e\\x43\\x1f\\x7c\\x29\\x32\\x98\\x57\\xfd\\xae\\xa7\\x98\\xed\\x93\\x92\\x08\\x93\\x63\\x14\\x02\\xe6\\xb1\\x3b\\xab\\x62\\xb4\\x85\\x54\\x61\\xed\\xb9\\x46\\x20\\xf2\\xd1\\x75\\x18\\x65\\xf4\\x45\\xc4\\x66\"},\n{{0x7d,0xbc,0x81,0x90,0x2e,0x4e,0xaa,0xb3,0x07,0x75,0x40,0xf5,0x59,0x99,0x5c,0x38,0x74,0x03,0xca,0xc3,0x06,0xd4,0x86,0xe9,0x59,0xc5,0xeb,0x59,0xe4,0x31,0xc0,0xa8,},{0xe0,0x30,0x66,0x13,0x90,0x82,0xf6,0x13,0x44,0x8b,0xdb,0xc2,0x7f,0xe5,0x3a,0xa3,0xf8,0x89,0x94,0xc3,0x1d,0xdc,0xe0,0x02,0xe3,0x6b,0xbb,0x29,0x63,0xdf,0x3e,0xc8,},{0x5b,0x7f,0x65,0x2f,0x08,0xf2,0x29,0xfd,0xa1,0xb0,0xbd,0x75,0x93,0x77,0xb3,0xfb,0x72,0x6c,0x1b,0x9c,0x9a,0x10,0xef,0x63,0x42,0x6d,0x35,0x2d,0xd0,0x86,0x9b,0xd5,0x4d,0x87,0x6c,0x30,0x92,0xf1,0xcd,0x41,0x1c,0x37,0x57,0xd3,0xc6,0xb6,0xea,0x94,0x2a,0xa7,0x0c,0x3a,0xae,0xb4,0x21,0x7a,0x4c,0x73,0x64,0xd1,0x8e,0x76,0xe5,0x0f,},\"\\xdf\\xf7\\x98\\xb1\\x55\\x7b\\x17\\x08\\x5a\\x06\\x34\\x37\\x1d\\xed\\x5d\\xdf\\x7a\\x5a\\xcb\\x99\\x6e\\xf9\\x03\\x54\\x75\\xe6\\x82\\x63\\x36\\xf6\\x4a\\xd8\\xb8\\x4b\\x88\\x2e\\x30\\xba\\xde\\xc2\\xb4\\xa7\\x11\\x99\\x87\\x52\\xf4\\xa1\\x57\\x4b\\xc1\\xf8\\x9d\\x43\\x25\\xcf\\x2b\\x39\\x86\\x10\\x44\\xdd\\x03\\x69\\x1e\\x71\\xd0\\x77\\x68\\xb5\\x93\\x3a\\x30\\x52\\xcc\\x7c\\x81\\xd5\\x71\\xa9\\xde\\x06\\x1d\\xc1\\x90\\x26\\xc2\\xf1\\xe7\\x01\\xf2\\xdc\\xf2\\x6a\\x88\\xd3\\x40\\x1b\\xc9\\x9f\\xb8\\x15\\x59\\xdc\\xa7\\x6d\\x8a\\x31\\xa9\\x20\\x44\\xa2\\x73\\x58\\x7d\\x62\\x2a\\x08\\xd1\\xcc\\xe6\\x1c\\x8f\\x94\\x8a\\x34\\xde\\xd1\\xac\\xb3\\x18\\x88\\x1c\\x9b\\x49\\xf6\\xf3\\x7c\\x30\\xa6\\x5d\\x49\\x5b\\x02\\xd5\\x42\\x9e\\x7a\\xb4\\x04\\x0d\\x8b\\xeb\\xeb\\x78\\x79\\x4f\\xf7\\x36\\xd1\\x51\\x10\\x31\\xa6\\xd6\\x7a\\x22\\xcd\\xf3\\x41\\xb9\\x80\\x81\\x1c\\x9d\\x77\\x5f\\xb1\\x9c\\x64\\x78\\xf0\\x5e\\xd9\\x84\\x30\\x10\\x3e\\xa2\\x4c\\x0f\\x41\\x4d\\x4c\\xc0\\x7d\\x86\\x0b\\x72\\xdc\\x54\\x2f\\xf2\\x2d\\x83\\x84\\x5a\\x42\\xf8\\xba\\x45\\xca\\x7f\\xf3\\xaa\\xb0\\xb1\\xe7\\xde\\x2b\\x10\\x94\\xde\\xac\\x08\\xd1\\x6e\\xee\\x01\\x96\\x9f\\x91\\xbc\\x16\\xfe\\xc2\\x9c\\xcc\\x06\\x1c\\x54\\xdb\\x53\\x45\\xba\\x64\\x84\\x2d\\xac\\xc9\\x9e\\xe7\\x72\\x94\\x68\\xd8\\x0a\\x3f\\x09\\x55\\x83\\xd8\\xe8\\x01\\x24\\x08\\x51\\x9d\\x58\\x2c\\xc3\\xff\\x9a\\x2e\\xb7\\xae\\xba\\xa2\\x2d\\xb8\\x1f\\xfc\\x78\\xee\\x90\\xef\\x4e\\xc5\\x89\\xdc\\xce\\x87\\x11\\x8d\\xab\\x31\\xa6\\x32\\x8e\\x40\\x9a\\xd5\\x05\\x9a\\x51\\x32\\xc8\\x2d\\xf3\\xce\\xfe\\x2e\\x40\\x14\\xe4\\x76\\xf0\\x4c\\x3a\\x70\\x18\\xe4\\x52\\x67\\xec\\x50\\x18\\xec\\xd7\\xbf\\xf1\\xdd\\xa9\\x26\\x7e\\x90\\x66\\x6b\\x6b\\x14\\x17\\xe8\\x9d\\xda\\xcb\\x50\\x85\\x94\\x3b\\xef\\xc7\\xad\\x2f\\x4d\\xf5\\xf1\\xee\\x0a\\xf9\\x43\\x1a\\xee\\xb6\\xb2\\x4a\\x55\\x15\\xb9\\x3d\\xbc\\xf6\\x86\\x40\\xf7\\xda\\xf8\\xc9\\x61\\xe5\\x67\\xd7\\x53\\x49\\x00\\x20\\x5c\\x3d\\xf2\\x18\\x4b\\x6a\\xc2\\xda\\x96\\x1c\\x4c\\x1d\\x2b\\xc4\\x9b\\x4e\\xa9\\x6b\\x81\\x54\\xff\\xd4\\xef\\xff\\xdc\\x5e\\x55\\xa7\\x11\\x9c\\xb8\\xaf\\x42\\x9e\\x85\\x10\\x5d\\xff\\xd4\\x1f\\xe4\\xa2\\xeb\\xba\\x48\\x16\\x8a\\xa0\\x5f\\xa7\\xdf\\x27\\xc4\\x29\\x87\\x35\\xff\\x86\\x8f\\x14\\x96\\xbe\\xb4\\xb2\\xed\\x0b\\x89\\x80\\xc7\\x5f\\xfd\\x93\\x9d\\xdd\\x1a\\x17\\xe4\\x4a\\x44\\xfe\\x3b\\x02\\x79\\x53\\x39\\xb0\\x8c\\x8d\"},\n{{0x91,0xb0,0x95,0xc8,0xa9,0x99,0xe0,0x3f,0x3e,0xd7,0x49,0xcd,0x9f,0x2f,0xaa,0xcc,0x00,0x76,0xc3,0xb4,0x77,0xa8,0x7a,0xb5,0xcc,0xd6,0x63,0x17,0x38,0x76,0x74,0x46,},{0xda,0xd1,0x74,0xd3,0x59,0xda,0xec,0xca,0x9c,0x6b,0x38,0x9b,0xa0,0x96,0x45,0x2a,0xb5,0xca,0x91,0xe6,0x38,0x3c,0x6d,0x04,0x2a,0x28,0x4e,0xce,0x16,0xba,0x97,0xb6,},{0x64,0xee,0x9e,0xfd,0xb0,0xc2,0x60,0x1a,0x83,0x5f,0x41,0x85,0x20,0x64,0x1e,0x43,0x6c,0x7d,0xd4,0x7c,0x33,0x3d,0x9f,0xc3,0x0c,0xfb,0xb9,0xe3,0x90,0xfe,0x76,0x45,0x30,0x65,0x47,0x08,0xb4,0x0b,0x03,0x58,0x18,0x99,0xa9,0xac,0x87,0x0e,0xfd,0x76,0x6f,0xfb,0xb4,0x63,0x71,0x52,0xf8,0xff,0x27,0x79,0x64,0xfe,0x35,0x42,0x52,0x09,},\"\\x9b\\x0d\\x8b\\x00\\x29\\x98\\x52\\xd6\\x8b\\xbf\\x49\\x7f\\xe6\\x03\\x96\\x1a\\x48\\x54\\x66\\xa9\\x9a\\x54\\x84\\x00\\x5d\\xb7\\x3d\\x4e\\x4b\\xad\\x81\\x4e\\x85\\x74\\xef\\xd5\\x4d\\x64\\x8b\\xd5\\xc9\\x1a\\xe8\\x48\\x3c\\x54\\xb2\\xf9\\x98\\xb0\\x2e\\x1a\\xbd\\x6f\\x40\\x1a\\x25\\x52\\x68\\x43\\xa5\\xf2\\xa2\\x3a\\x97\\xbd\\x58\\x9d\\x1f\\x7e\\x1a\\xb1\\x49\\x15\\xb1\\xe3\\x59\\xa3\\x96\\xd3\\x52\\xc3\\x60\\xae\\x65\\x84\\x32\\x5a\\xe4\\xbb\\x7d\\x62\\x4f\\x61\\x25\\x5c\\x5c\\x7b\\xf0\\xa6\\x7a\\xca\\xb4\\x6c\\x3b\\x57\\xb3\\x45\\x34\\xc0\\xee\\x84\\x31\\xd2\\x60\\x57\\x66\\x06\\xcb\\xd8\\x4d\\x8d\\x18\\x39\\xe7\\x3d\\xa6\\xfe\\x4b\\x0b\\x8b\\x78\\xf0\\xf9\\x58\\x82\\x7c\\x2f\\x1d\\x93\\xba\\x7a\\x34\\x6d\\xcc\\x75\\xcb\\x56\\x3d\\xff\\xde\\x26\\xf9\\x97\\x59\\x8e\\x8b\\x5c\\x2f\\x16\\x17\\xc6\\xfe\\xfc\\x9b\\xe4\\xb2\\x8b\\x54\\x01\\xb0\\x00\\x64\\x13\\xa2\\x51\\x69\\x0d\\x12\\x03\\xaa\\xae\\x4f\\x6d\\x8a\\x3f\\xb2\\x1f\\x24\\x00\\x9a\\xb3\\xbf\\xf1\\x37\\x37\\xa8\\xa7\\xe6\\x64\\x6c\\x02\\x73\\x2d\\x9e\\xc5\\xa4\\xa5\\x10\\x46\\x9e\\x2d\\x29\\x9e\\x4c\\xc1\\xad\\x64\\x80\\xa4\\x82\\xaa\\x95\\x6f\\x89\\xdd\\xcc\\xcc\\x64\\xa1\\x36\\xfb\\x15\\xb8\\x76\\xb6\\xec\\xd8\\x8c\\x7c\\x86\\xa4\\xdf\\xc6\\x0e\\x66\\x62\\x07\\xc6\\x04\\x16\\x7d\\x16\\x34\\x40\\xca\\x9a\\xb9\\xcf\\x87\\xa5\\xe0\\xf7\\xbb\\xc5\\x51\\x7d\\xe4\\xde\\xe8\\x76\\xc0\\x37\\xf8\\xcc\\x9d\\x95\\x9c\\x8f\\xf5\\xdb\\xe9\\x44\\xff\\x54\\xcd\\x91\\xa7\\x71\\xe2\\x92\\x31\\xf8\\xb5\\xf1\\x7d\\x61\\xde\\x90\\x4c\\x95\\x5f\\xe2\\x02\\x5d\\xc5\\x2e\\xd4\\x80\\xfb\\x3c\\xc9\\x0f\\x23\\x24\\x59\\xc6\\x07\\xef\\x7e\\x2a\\xdb\\x52\\xc7\\x48\\x2b\\xec\\xd6\\x7a\\xd2\\x14\\x9a\\x41\\x28\\xf9\\x84\\x03\\x8b\\x58\\xaa\\x90\\x17\\x67\\x82\\x39\\x36\\x04\\xaa\\xc7\\x4c\\x18\\x20\\x9a\\x3d\\x6a\\x78\\x63\\x0c\\x01\\x95\\x5a\\x7c\\xec\\xe5\\xda\\x83\\x84\\xda\\x3b\\xaf\\x63\\xaa\\x2d\\xdf\\x59\\x63\\xfa\\xe0\\x5b\\xa3\\xb8\\x1c\\x6a\\x03\\xd8\\x6a\\x00\\xef\\x78\\xed\\xb4\\x18\\x4f\\xdc\\x89\\xb1\\xd6\\xbf\\xeb\\x31\\x0f\\xd1\\xb5\\xfc\\xce\\x1e\\x21\\x95\\x24\\xa3\\xcf\\xb2\\xe9\\x72\\x57\\x7f\\x06\\xb1\\xdd\\xde\\xba\\x00\\x86\\x5d\\xae\\x49\\x79\\x00\\x0c\\x00\\x8a\\xd9\\x9f\\x3b\\x63\\x8c\\xce\\xb8\\xe8\\xc7\\xa0\\xf9\\x98\\xd3\\x4d\\x92\\x14\\x3d\\x81\\xc0\\xe1\\xc0\\x96\\xa9\\x25\\xce\\xba\\x65\\xc4\\x30\\x03\\xee\\x18\\xd4\\x94\\xd0\\x03\\xe9\\xc6\\x1f\\x77\\xd6\\x57\\x59\"},\n{{0x8c,0x56,0x8b,0x31,0x0a,0xce,0x7d,0x1f,0x0e,0xde,0xce,0xfd,0x60,0x3a,0x88,0x40,0x00,0x54,0x4c,0x79,0x25,0x65,0xd4,0x81,0xc3,0xd3,0xe0,0x6e,0x2d,0x82,0xca,0x96,},{0x5f,0xa6,0xe2,0x67,0xc7,0x66,0x73,0x68,0x41,0x41,0x10,0x72,0xd1,0x98,0x3d,0x19,0x00,0xac,0xf0,0x1d,0x48,0xc3,0xce,0x11,0x77,0x0b,0x26,0xf7,0x8d,0xa9,0x79,0xf7,},{0xde,0xbd,0xd8,0xe5,0xd3,0x11,0x2f,0xd7,0x7b,0x39,0x4a,0xa0,0xe3,0x6e,0x94,0x26,0xba,0xc9,0x1d,0xf1,0x26,0xfa,0x9c,0x31,0x7c,0xea,0x7c,0x9d,0x45,0x95,0x7c,0xdd,0x96,0xa4,0x5a,0xe3,0xad,0x76,0x04,0x13,0xee,0x12,0x05,0xaf,0xd7,0x1a,0x29,0xf9,0xc3,0xcb,0x58,0x6c,0xd2,0xd7,0xcd,0x1e,0x93,0xbc,0x16,0x52,0xfc,0x34,0xdc,0x04,},\"\\xb5\\x9f\\x5f\\xe9\\xbb\\x4e\\xcf\\xf9\\x28\\x95\\x94\\x72\\x1f\\x26\\x47\\x04\\x7b\\x0d\\xa5\\xe0\\xe4\\x94\\x1b\\xbe\\x57\\xc5\\xb7\\x22\\xb4\\x76\\x72\\x3f\\x0a\\xc5\\x97\\x0b\\x41\\x11\\xf8\\x93\\xbc\\xaa\\x41\\x1f\\x28\\xfc\\xeb\\x4f\\x58\\x5a\\x2a\\x71\\x87\\x01\\x8a\\x90\\x4b\\x70\\xef\\x8f\\xe1\\xf6\\x56\\x9a\\x54\\xd0\\x0a\\xda\\x37\\xb6\\x9c\\xb5\\xe9\\xc9\\xd2\\x6c\\x16\\xa9\\x03\\x51\\x81\\x48\\xe0\\x4a\\x1b\\x93\\x6a\\x32\\x32\\x9c\\x94\\xee\\x1a\\x8f\\xb6\\xb5\\x91\\x89\\x2c\\x3a\\xff\\x00\\xbf\\x6e\\x44\\xdd\\x0a\\x76\\x2b\\xab\\xe8\\x9d\\x70\\x60\\xc1\\x7b\\x90\\x39\\x0d\\x23\\xbf\\x9d\\x36\\x0a\\x29\\x3b\\x83\\x08\\x38\\x30\\x86\\x91\\x6e\\x11\\x82\\xb1\\xba\\x43\\x36\\xf0\\x01\\xb8\\xd2\\x0d\\xea\\xe9\\xa0\\x29\\xf7\\xe8\\x53\\x97\\xa9\\xae\\x5c\\xf3\\xca\\x10\\xc7\\xf3\\x87\\x55\\x88\\xb8\\xff\\xab\\xb0\\x63\\xc0\\x0c\\xa2\\x6f\\x58\\x0f\\x69\\xed\\xc5\\x27\\xa1\\xac\\xcf\\x4f\\x41\\x39\\x7b\\x33\\x76\\x6b\\xcf\\x6d\\x55\\xeb\\x8d\\xe0\\x81\\xa4\\x8c\\x98\\x1d\\x05\\xc0\\x66\\x61\\x7b\\x80\\xd8\\xf6\\xf5\\xe6\\x0e\\x59\\xdd\\x9b\\x93\\x0b\\xc4\\xd0\\x45\\x86\\x40\\x3b\\xb8\\x68\\xdf\\x75\\x93\\x3b\\xdd\\x86\\x23\\x0e\\x44\\x70\\x36\\xc1\\x75\\xa1\\x0d\\xe9\\xbb\\x39\\x95\\x3d\\xcb\\x19\\x66\\xa1\\xf1\\x19\\x12\\x07\\x8e\\x35\\x8f\\x48\\xc5\\xb2\\x09\\xa6\\x36\\xc7\\xf7\\x83\\xf4\\xd3\\x6a\\x93\\xad\\x2c\\xc2\\xe3\\x24\\x45\\x19\\x07\\x8e\\x99\\xde\\x1d\\x51\\x58\\xb3\\x96\\x1e\\x0f\\xc5\\xa4\\xf2\\x60\\xc2\\x5f\\x45\\xf5\\xe8\\x58\\x5e\\x60\\x1d\\xb0\\x8b\\xa0\\x58\\xd2\\x90\\x9a\\x1b\\xf4\\x99\\x5f\\x48\\x13\\x46\\x0d\\x36\\x95\\x03\\xc6\\x87\\x36\\x85\\xeb\\xcd\\x33\\x30\\xa1\\x30\\xb7\\x5f\\x23\\x65\\xfb\\x2a\\x5a\\x34\\xea\\x63\\xd9\\x58\\xa2\\xa8\\x67\\xe9\\x05\\x52\\xd2\\xce\\xc8\\xc3\\x90\\x08\\x4b\\xe0\\xc1\\x08\\xb0\\xfd\\x2d\\x83\\xcb\\x92\\x84\\xdb\\x5b\\x84\\x2c\\xbb\\x5d\\x0c\\x3f\\x6f\\x1e\\x26\\x03\\xc9\\xc3\\x0c\\x0f\\x6a\\x9b\\x11\\x8e\\x1a\\x14\\x3a\\x15\\xe3\\x19\\xfd\\x1b\\x60\\x71\\x52\\xb7\\xcc\\x05\\x47\\x49\\x79\\x54\\xc1\\xf7\\x29\\x19\\x9d\\x0b\\x23\\xe5\\x38\\x65\\x40\\x3b\\x0a\\xd6\\x80\\xe9\\xb4\\x53\\x69\\xa6\\xaa\\x38\\xd6\\x68\\x5a\\xbd\\x39\\x7f\\x07\\xfb\\xca\\x40\\x62\\x7e\\xca\\xf8\\xd8\\xd3\\x01\\x33\\xa6\\xd9\\xd5\\xaf\\x00\\x91\\x92\\x75\\x1c\\x9c\\x45\\xf7\\x7c\\x0b\\xc0\\x11\\x26\\x88\\x00\\xbf\\x55\\x25\\x12\\x73\\x0e\\x69\\x97\\x3c\\x5b\\xf3\\x62\\xab\\x16\\x48\\x94\\xbf\"},\n{{0x3d,0x09,0xaf,0xce,0xe3,0xc4,0x32,0xfd,0xfb,0x6b,0xdc,0xea,0xd5,0x4e,0x3d,0xa5,0xb1,0xb4,0x16,0x5c,0x50,0xd6,0xd3,0x10,0xb7,0xfa,0xd7,0x87,0xb4,0x44,0xd6,0x80,},{0xb0,0xd9,0x02,0x8c,0x4d,0x14,0x87,0xd2,0x93,0xed,0x58,0x5a,0x76,0xbc,0x94,0xff,0xfb,0xaf,0xe2,0xc6,0x5d,0x98,0x0c,0x49,0x4e,0x14,0x1e,0x48,0x10,0xa3,0x5c,0xb9,},{0x89,0x73,0x9f,0xe4,0x41,0xca,0x0c,0xed,0x08,0xa6,0xeb,0x57,0x96,0xe9,0xbd,0xda,0x0e,0x74,0xfb,0x47,0x35,0x28,0xfd,0x49,0x07,0xed,0xb6,0x59,0xaa,0xb4,0x4d,0x33,0x43,0x22,0x90,0x46,0x71,0x63,0x68,0xfa,0xf8,0x8e,0x85,0xc1,0x64,0x4a,0xf6,0x6f,0xf2,0xdc,0xaf,0x0b,0x17,0xac,0x93,0xca,0x13,0x81,0x9f,0x3f,0x24,0x1d,0xd3,0x00,},\"\\x76\\x71\\x65\\xca\\xae\\x0e\\x57\\x8f\\x16\\x53\\x7e\\x17\\x50\\xbe\\x7d\\xe8\\x7a\\x78\\x9a\\x51\\xff\\x2d\\xe1\\x18\\x38\\xf5\\x64\\xe2\\x58\\x0b\\x23\\x91\\x36\\x2d\\x28\\x68\\xa5\\xa4\\x70\\x8a\\xf1\\x5d\\x2e\\x2d\\xb7\\xb9\\xbe\\x39\\xc1\\x6a\\xdc\\xc1\\x20\\x0b\\x34\\xe6\\xb4\\xd4\\x02\\x7d\\xdf\\xfc\\x1a\\x2a\\x35\\x95\\xe2\\x9e\\x85\\x5e\\xc5\\x26\\x1b\\x20\\xbd\\x55\\xc4\\x28\\xb0\\x13\\x09\\xba\\xdb\\x59\\xe2\\xca\\x3e\\xdb\\x96\\x7f\\xc2\\xf4\\xba\\xc0\\x72\\x9d\\xdf\\x54\\xfb\\x6c\\x20\\x05\\x7b\\xdd\\xa9\\xe7\\xaf\\x7c\\xbf\\xc0\\x92\\xfb\\xa8\\x65\\xfd\\x32\\x75\\xb9\\xd3\\xbc\\xb0\\xc3\\x46\\xb9\\x51\\xd1\\x70\\xac\\x9a\\xa6\\x50\\xa8\\x6d\\xf4\\x98\\x55\\xd4\\x8a\\x1b\\x37\\xce\\x56\\xc9\\xf2\\x73\\x89\\xf5\\xc8\\xb1\\x5f\\x5c\\x2c\\x90\\x0c\\x4f\\x10\\x7c\\x06\\x4f\\x60\\x3e\\x4f\\x86\\x7e\\xf2\\xe9\\xc1\\x0a\\x1b\\x74\\x21\\x0e\\x6b\\x89\\xbb\\x01\\x17\\x93\\xaa\\x85\\xde\\xd4\\x3b\\x51\\xb7\\x49\\xba\\x7f\\x70\\x28\\x7b\\x6b\\xc1\\xb8\\x94\\x34\\xdb\\x8b\\x8c\\x8b\\x5d\\x73\\xb2\\x14\\xb4\\x1e\\x36\\xb5\\x28\\x00\\x5b\\xfb\\xfe\\x00\\x2e\\x21\\xb1\\x00\\x6f\\xb9\\xd2\\x4b\\xab\\xd7\\x21\\x06\\xd0\\x93\\xe3\\xc7\\x09\\x3b\\x31\\x38\\xae\\xa7\\x19\\xd6\\x94\\x79\\x08\\x46\\x47\\x49\\x8c\\xd6\\xc9\\xbb\\xb7\\x44\\x50\\x9c\\xd7\\xda\\x8d\\xd6\\x1a\\x62\\x71\\x00\\xf0\\x3c\\x21\\xe7\\x50\\xac\\xb3\\xfc\\xf4\\x63\\x1d\\x7c\\x0f\\x61\\x81\\x54\\xd2\\xe5\\xfa\\x66\\x56\\xfb\\x76\\xf7\\x4c\\x24\\x79\\x50\\x47\\xbb\\xce\\x45\\x79\\xeb\\x11\\x06\\x43\\xfa\\x98\\xe1\\xf7\\x76\\xca\\x76\\xd7\\xa2\\xb7\\xb7\\xb8\\x67\\x81\\x73\\xc7\\x73\\xf4\\xbe\\x7e\\x18\\x2f\\xd2\\x4d\\xd7\\x62\\x91\\xac\\x67\\xd9\\xf2\\x6a\\x28\\xc5\\xe3\\xcb\\x02\\x5c\\x68\\x13\\xa3\\x78\\xb3\\x83\\x22\\x46\\x42\\xb4\\xae\\xfa\\xd0\\xc7\\x6a\\x65\\x79\\x51\\x7b\\x8f\\x36\\x07\\x97\\xdd\\x22\\x61\\x3e\\xe6\\x82\\xb1\\x79\\x38\\x19\\x50\\xfb\\x71\\x60\\x9a\\x5f\\xb5\\x49\\x4d\\x2d\\x57\\xdc\\xb0\\x0f\\x26\\xd1\\xe7\\x29\\x56\\xf4\\xd6\\x67\\x28\\x30\\xe0\\x5c\\x01\\xb3\\x77\\x96\\x77\\xc0\\x7e\\xa0\\x09\\x53\\xc6\\xb8\\xf0\\xdc\\x20\\x4c\\x8d\\xbd\\xcc\\xb3\\x81\\xbc\\x01\\xb8\\x9c\\x5c\\x26\\x1d\\xb1\\x89\\xab\\x1f\\x54\\xe4\\x6b\\xc3\\xed\\xc4\\xde\\x5a\\xd4\\xf0\\xeb\\x29\\xc0\\xa1\\x20\\xe4\\x37\\xcd\\x8f\\x37\\xac\\x67\\xd4\\x8c\\x7f\\x0e\\x73\\x02\\x78\\x70\\x8f\\x02\\xb5\\x4a\\xee\\x62\\xb7\\x29\\x52\\xbc\\x1c\\x0e\\xb4\\x37\\xca\\x8b\\xd5\\x65\\x54\\x37\"},\n{{0x41,0xc1,0xa2,0xdf,0x93,0x69,0xcd,0xc9,0x27,0x16,0x4a,0xa5,0xad,0xf7,0x75,0x71,0x36,0xab,0xe5,0x13,0x95,0x60,0x42,0x66,0x33,0x4c,0xc5,0x46,0x0a,0xd5,0x68,0x3e,},{0x40,0x55,0x78,0x34,0xcc,0xe8,0xe0,0x43,0x58,0x0a,0x42,0x72,0xa8,0x80,0x4d,0x4f,0x92,0x6e,0x88,0xcb,0x10,0xd1,0xdf,0x0c,0x5e,0x28,0xb9,0xb6,0x7e,0x1b,0x63,0xda,},{0xb8,0xb2,0x75,0x2a,0x09,0x71,0x96,0xc2,0x89,0x84,0x9d,0x78,0xf8,0x11,0xd9,0xa6,0x2f,0xc7,0x67,0x27,0x8f,0x0c,0x46,0x62,0x8b,0x52,0x1f,0x62,0xed,0x27,0x59,0xd7,0x44,0x62,0xa1,0x75,0xda,0x22,0x40,0x3f,0x15,0x02,0x04,0x45,0xca,0xe0,0x6d,0xa3,0xed,0x61,0xcc,0xa6,0x20,0x3b,0x70,0x06,0x36,0x2a,0x0e,0x19,0x89,0x63,0xd2,0x0e,},\"\\xb6\\x4b\\x14\\xba\\x77\\xd2\\x39\\xe6\\xf8\\x1a\\xbe\\x06\\x0a\\xcc\\xef\\x85\\xf0\\x44\\x2b\\x65\\x0c\\x44\\x01\\x5e\\xfc\\x43\\xa0\\xaa\\x2b\\xa1\\x0b\\xf4\\x8d\\x30\\x18\\xb1\\x95\\x3d\\xdf\\xff\\xbc\\xda\\x5b\\xf3\\xbb\\xe0\\xb6\\xb3\\xe4\\xb0\\xd9\\xa3\\x2c\\x6b\\x72\\x5b\\xbb\\x23\\x1e\\x0a\\x27\\x04\\x47\\x1e\\xe8\\xbc\\x1d\\x59\\x4f\\x5c\\x54\\x22\\x6f\\x5d\\xd9\\xdf\\xa1\\x63\\xcf\\xc1\\x45\\x2c\\x61\\xf9\\x3e\\x4f\\x81\\x39\\xab\\x4c\\xe4\\x47\\x6f\\x07\\xec\\x93\\x36\\x61\\xea\\xe9\\x1b\\x6d\\x50\\x0b\\xf5\\x08\\xac\\x63\\xe4\\xba\\xaf\\x1f\\xfc\\x8f\\x00\\x07\\xd8\\x02\\xe0\\x05\\xf1\\xb4\\xfc\\x1c\\x88\\xbe\\xe4\\xd5\\xe9\\xe7\\x63\\x84\\xf5\\xa7\\x04\\x3b\\xd6\\x60\\xcc\\xe7\\x1f\\x3b\\x67\\xf0\\x1f\\x6a\\xb8\\x44\\x29\\x85\\x31\\xaa\\xc7\\x3a\\x39\\xd0\\x45\\x37\\x00\\x88\\x85\\x50\\x05\\xa0\\x9c\\x6d\\x04\\x23\\x8e\\xa4\\x78\\xdf\\xac\\xad\\x1e\\x6b\\x22\\xb2\\xbe\\x4c\\x46\\xb0\\xd5\\x9b\\x1e\\xba\\x1f\\x06\\x0b\\xf7\\xda\\x5d\\x15\\x66\\xcf\\x1f\\xdb\\x5c\\x54\\x3a\\x33\\x92\\x6a\\xf6\\x3f\\x01\\xa0\\xdb\\x86\\xe1\\xa6\\x71\\x1c\\x47\\x3d\\xc7\\x95\\xab\\x28\\x3c\\x8d\\x93\\xfa\\xcf\\xb5\\x70\\x1f\\xa2\\xf2\\xf6\\xbb\\x99\\xf9\\xb7\\xe3\\x74\\x9b\\x07\\x1d\\x58\\x60\\x7b\\xe4\\x4a\\x70\\x89\\xbc\\xb5\\x03\\xec\\x14\\x95\\xb5\\xfe\\xed\\xb3\\x99\\x96\\x1f\\xd3\\x67\\x7d\\x74\\x93\\xea\\xa3\\xb3\\xe9\\xcc\\x5e\\x36\\x42\\xf4\\x0d\\x47\\xde\\x9b\\xfe\\xe7\\xc2\\x0b\\x0e\\x51\\x9c\\x4e\\xb4\\xa4\\x0f\\x4d\\xa4\\x46\\xed\\x6a\\xc7\\xaa\\xca\\x05\\x3e\\x75\\x9c\\x97\\xda\\xbe\\x0a\\x8e\\xc2\\xf5\\x8e\\x7f\\x2f\\x9b\\x20\\x72\\x76\\x2f\\x9f\\x79\\x4a\\x6a\\x4e\\x36\\x06\\x0b\\x88\\x72\\xbd\\x2c\\x18\\xd0\\x6a\\x85\\xc2\\xc1\\x41\\xa7\\x82\\x93\\x77\\x3e\\xe8\\xcf\\xbf\\x15\\x4b\\x99\\x30\\xcd\\x39\\xda\\x31\\xb4\\x97\\xe7\\x37\\xa7\\x75\\x0c\\x90\\xa1\\x3f\\x5a\\xaa\\x14\\x7c\\xd0\\xdc\\x43\\x11\\xf2\\xe3\\x49\\x41\\x25\\x2e\\xf1\\x98\\xb0\\xc1\\xf5\\x08\\x27\\xe5\\x6c\\x9f\\x16\\xf5\\x95\\xac\\xed\\x6d\\x2a\\x69\\x34\\x65\\x31\\x49\\x5a\\x64\\x99\\x77\\x4d\\x36\\x07\\x66\\xca\\x9b\\xe5\\xed\\x88\\x81\\xc0\\xdb\\x26\\xed\\x7c\\x5e\\x6f\\xf3\\xa4\\xf9\\xb7\\x3c\\xd8\\xb6\\x54\\x64\\x0d\\xc9\\x6b\\xf4\\x3b\\xd4\\x26\\xa0\\xf2\\x8c\\x9b\\x25\\xfa\\x70\\x4d\\x62\\xff\\x02\\x88\\xfc\\xce\\xff\\xaa\\xeb\\xd3\\xea\\x30\\x97\\xbc\\xbb\\xd7\\x78\\x42\\x0e\\xbc\\x52\\x0a\\x41\\x77\\x30\\xa1\\xb5\\xb3\\xb8\\xc9\\x6c\\xda\\x9f\\x4e\\x17\\x7d\"},\n{{0xa0,0x06,0x11,0x48,0x94,0x67,0x12,0x2c,0x4c,0x16,0x4b,0xfb,0x6a,0x61,0x6e,0x6a,0x61,0x9b,0x9f,0x83,0xc4,0x36,0x72,0x06,0xb8,0x5d,0x3f,0xbe,0xc3,0x8c,0xd6,0x2c,},{0x57,0xab,0x58,0xba,0xbb,0x41,0xdc,0x0d,0xa0,0xbc,0xd5,0x06,0x05,0x9a,0xac,0x9f,0x46,0xec,0xa9,0x1c,0xd3,0x5a,0x61,0xf1,0xba,0x04,0x9a,0x9a,0xc2,0x27,0xf3,0xd9,},{0xc7,0x71,0xba,0x0a,0x3d,0x3c,0x4a,0x7b,0x06,0x4b,0xd5,0x1a,0xd0,0x5c,0x9f,0xf2,0x7f,0xd3,0x26,0x61,0x0f,0xbf,0xa0,0x91,0x83,0x03,0x9e,0x5e,0xdf,0x35,0x47,0x2d,0xde,0xd8,0xfc,0x22,0x75,0xbb,0xcc,0x5d,0xf1,0xbf,0x12,0x98,0x60,0xc0,0x1a,0x2c,0x13,0x11,0xda,0x60,0x2f,0xba,0xff,0xc8,0xb7,0x9c,0x24,0x9c,0x9c,0xc9,0x55,0x02,},\"\\x34\\xdb\\x02\\xed\\x75\\x12\\xbf\\x8c\\x67\\xd3\\x59\\xe7\\x20\\x3a\\x2e\\xa4\\x41\\xe2\\x0e\\x72\\x97\\x66\\xc1\\x5a\\xa0\\x0f\\xa2\\x49\\xa3\\x51\\x8f\\xc2\\x9e\\xf8\\x90\\x5a\\xa5\\xb4\\x67\\x09\\x58\\xc6\\xa4\\x60\\xd7\\x7b\\x3a\\x80\\xef\\xcb\\x47\\x38\\x59\\xbb\\xaf\\xf8\\x62\\x22\\x3e\\xee\\x52\\xfe\\x58\\xac\\xfd\\x33\\x15\\xf1\\x50\\xf3\\xc6\\xc2\\x7f\\xf4\\x8f\\xca\\x76\\x55\\x2f\\x98\\xf6\\x58\\x5b\\x5e\\x79\\x33\\x08\\xbf\\x59\\x76\\xba\\xd6\\xee\\x32\\x7b\\x4a\\x7a\\x31\\x32\\x14\\xb9\\xae\\x04\\xb9\\x65\\x1b\\x63\\xcd\\x8d\\x9f\\x5b\\x3b\\xec\\x68\\x9e\\x0f\\xd0\\x00\\xdd\\x50\\x17\\x70\\xdd\\x0e\\x99\\xb8\\xf9\\x9e\\xaf\\xa0\\x9c\\x39\\x6a\\x24\\x5a\\x4a\\x96\\xe5\\x68\\x96\\xa2\\x9b\\x24\\x19\\x0b\\x1e\\xf1\\x10\\x63\\xf3\\x9b\\x63\\xee\\x3a\\x58\\x6b\\x07\\x62\\x7d\\xd3\\x50\\x0c\\x4e\\x17\\x0b\\x83\\x5d\\xc0\\xec\\x23\\x6f\\xa5\\xa3\\x5c\\x44\\x18\\x47\\x07\\x56\\x5c\\x4a\\x50\\x66\\x2d\\x8d\\xbc\\xcf\\xff\\x7f\\x9a\\x7a\\x68\\xd0\\x21\\xb4\\xaf\\x64\\xd5\\x32\\xb7\\xc3\\xd2\\x74\\x74\\x18\\xc2\\xd7\\x17\\xbb\\x6a\\xca\\x6b\\x58\\x74\\x7a\\xe4\\xdd\\x56\\x41\\xd8\\x26\\xf7\\x9a\\x8a\\x31\\x5c\\x38\\x21\\x1a\\x53\\x8a\\x92\\x9e\\x5b\\x45\\x1f\\x62\\x3f\\x4f\\xcb\\xbc\\xac\\xdb\\x86\\xc8\\x75\\x2e\\xa1\\x3a\\x61\\x7a\\xb4\\x14\\xab\\x65\\x3e\\xb2\\xe6\\x8d\\x54\\x20\\xdf\\x7c\\x6d\\xf9\\x24\\x38\\x16\\x8d\\xcf\\x9c\\x06\\x65\\x81\\xdf\\xe7\\xb2\\xc4\\x68\\x19\\x4a\\x23\\x70\\x7d\\xe4\\x65\\x9b\\xd6\\x7e\\xb6\\x34\\xff\\x02\\x47\\x41\\xc5\\xfc\\x86\\x98\\xfd\\x4d\\xc4\\x1f\\xe5\\xdf\\xc6\\x29\\x9b\\x7a\\x08\\xe6\\xff\\xca\\x37\\x10\\x9c\\x02\\x10\\xc8\\xf9\\x4e\\xa2\\xd3\\xdd\\xc9\\x77\\xff\\xc0\\xb3\\x79\\x4f\\xe6\\xba\\x43\\x37\\xc7\\xaa\\xb4\\x34\\xa6\\x8a\\xc6\\x65\\x48\\x4e\\xa8\\x24\\x3a\\x84\\xb7\\x9a\\xa1\\x81\\xee\\x6a\\xb5\\xaa\\x37\\xa3\\x2d\\x87\\x97\\x25\\xed\\xc0\\x18\\xf8\\x55\\x21\\x81\\x81\\x6d\\x7d\\x27\\x2c\\xa8\\x81\\x8a\\x7b\\x92\\xe6\\xee\\x44\\x54\\xd1\\xf7\\x82\\x8d\\xd8\\xaf\\xba\\x1a\\x79\\x03\\x64\\xb4\\xff\\x28\\xd8\\x4e\\x02\\x85\\x97\\x35\\x3e\\xbb\\xef\\x24\\x83\\x7b\\xc3\\x19\\xe1\\xae\\x8f\\x2b\\x0b\\x6a\\x85\\x1b\\x48\\x9c\\x3e\\x17\\x0e\\xef\\x53\\xe0\\x65\\xf7\\x03\\x26\\x53\\xcd\\x6b\\x46\\xd8\\xe5\\x7e\\x4e\\x11\\x1b\\x78\\x9b\\xa9\\x50\\xc4\\x23\\x0a\\xba\\x35\\xe5\\x69\\xe0\\x66\\x15\\x40\\x34\\x07\\xbc\\xe0\\x36\\x9a\\xaa\\xb4\\xea\\xfa\\xef\\x0c\\xae\\x10\\x9a\\xc4\\xcb\\x83\\x8f\\xb6\\xc1\"},\n{{0xde,0x16,0x34,0xf3,0x46,0x0e,0x02,0x89,0x8d,0xb5,0x32,0x98,0xd6,0xd3,0x82,0x1c,0x60,0x85,0x3a,0xde,0xe2,0xd7,0xf3,0xe8,0xed,0xd8,0xb0,0x23,0x9a,0x48,0xcf,0xaf,},{0x9d,0xc1,0x46,0x5b,0x33,0x83,0xf3,0x7d,0xe0,0x0e,0xa2,0xd3,0xc7,0x0f,0x2c,0x8f,0xac,0x81,0x5f,0x01,0x72,0x02,0x9c,0x3f,0x57,0x95,0x79,0xc9,0x84,0xa5,0x89,0x5e,},{0xd2,0x05,0x06,0xeb,0x84,0x69,0x23,0xa0,0xb1,0x6f,0xf8,0x2f,0xb2,0xc3,0x92,0x3b,0x00,0xc1,0xb3,0xbc,0xc6,0xe2,0xf6,0x48,0x2f,0xba,0x24,0x80,0x75,0x21,0xe8,0xe0,0x22,0x3f,0x69,0x2e,0x62,0xea,0xc9,0x93,0xf4,0x98,0xf6,0x71,0x02,0xa0,0x4f,0xd1,0xac,0xf9,0xc7,0xe3,0x88,0x8d,0x85,0x7c,0x9a,0x08,0x0b,0x8a,0xf6,0x36,0x10,0x06,},\"\\xd1\\x0c\\x3e\\x4d\\xe7\\xfa\\x29\\x89\\xdb\\xa8\\x75\\x37\\xe0\\x05\\x93\\xd0\\xee\\xd4\\xd7\\x5e\\xe6\\x58\\x46\\xda\\xb1\\x49\\x8b\\x47\\x49\\xd6\\x4f\\x40\\xe3\\x4b\\x59\\x11\\xc5\\xce\\x3b\\x53\\xa7\\xe3\\x7d\\x2d\\x02\\xbb\\x0d\\xae\\x38\\xed\\x96\\x2a\\x4e\\xdc\\x86\\xc0\\x02\\x07\\xbe\\xe9\\xa8\\xe4\\x56\\xec\\xca\\xe8\\xbd\\xf4\\xd8\\x7a\\x76\\x74\\x60\\x14\\x20\\x1a\\xf6\\xca\\xff\\xe1\\x05\\x66\\xf0\\x8d\\x10\\xda\\xaf\\x07\\x71\\x60\\xf0\\x11\\xfe\\xac\\xa2\\x5b\\x9c\\x1f\\x6e\\xca\\x9f\\xc5\\x33\\x14\\xa8\\x05\\x47\\x95\\x17\\x54\\x35\\x55\\x25\\x25\\x7d\\x09\\xa7\\xfd\\xad\\x5b\\xc3\\x21\\xb7\\x2a\\xa2\\x8d\\x1e\\x02\\xd8\\x69\\x6d\\x4f\\x9e\\xb0\\xad\\x3b\\x21\\x96\\xf8\\xbc\\xfa\\xeb\\x1d\\x61\\x48\\x28\\x7a\\x3f\\xae\\xfe\\xf9\\x1a\\x7a\\x3e\\x06\\x09\\xc2\\x8c\\xe5\\x9d\\x0c\\xa1\\x4d\\x0b\\x30\\x50\\xdd\\x4f\\x09\\x6b\\x7b\\xc2\\x51\\x39\\x88\\xba\\x21\\x21\\x28\\xd5\\x02\\x6d\\xaa\\xa7\\x18\\x88\\x46\\xdb\\x21\\xc5\\xc1\\xd1\\x79\\xab\\x94\\x87\\xc1\\xa5\\xbd\\x34\\x65\\x88\\x12\\x7c\\x20\\x39\\x8d\\x36\\x2d\\x4c\\x75\\x9c\\xfa\\xb2\\xa6\\x77\\x75\\x0b\\x9e\\x45\\x67\\x6a\\x1e\\x7e\\x09\\x2e\\xf0\\x2e\\xdb\\xf2\\x78\\xfb\\x19\\xa5\\x8e\\x9b\\xf6\\xc9\\xe9\\x96\\xe2\\x4e\\xda\\xd7\\x3f\\x3c\\xe3\\x1f\\xa0\\x4b\\x6d\\x85\\x33\\x43\\x6b\\xf8\\x0b\\x4b\\x2f\\x80\\x5e\\xd9\\x1e\\x7f\\xcd\\xa3\\xbc\\x2b\\xab\\x3b\\x2b\\xb1\\x57\\x15\\x8a\\xf0\\xea\\x8e\\x3f\\x07\\x31\\xdf\\xad\\x45\\x9d\\x2e\\x79\\xb6\\xd3\\x71\\x5f\\xe7\\xbf\\x1e\\xaf\\xc5\\x39\\x75\\x93\\x20\\x88\\x57\\xe5\\x7b\\x7f\\xeb\\x2f\\x73\\x87\\x94\\x3a\\x8e\\x09\\x13\\x47\\x0c\\x16\\x1a\\xef\\x4f\\xe2\\x05\\xd3\\x63\\x7f\\x23\\x17\\x7f\\xf2\\x63\\x04\\xa4\\xf6\\x4e\\xba\\x3f\\xe6\\xf7\\xf2\\x72\\xd2\\x34\\xa6\\x72\\x06\\xa3\\x88\\xdd\\xd0\\x36\\x6e\\x89\\x4e\\xaa\\x4b\\xb0\\x5d\\x73\\xa4\\x75\\xf1\\xb3\\x4c\\xa2\\x22\\xbb\\xce\\x16\\x85\\xb1\\xb5\\x6e\\x03\\x4e\\x43\\xb3\\xc4\\x0e\\x81\\xff\\xf7\\x96\\x82\\xc1\\x9f\\x32\\xaa\\x3f\\x2a\\x89\\x5c\\x07\\x09\\xf9\\xf7\\x4a\\x4d\\x59\\xd3\\xa4\\x90\\x29\\xec\\xfc\\xb2\\x83\\x08\\x2b\\x06\\x7f\\x1a\\x0d\\x95\\x05\\x75\\x0f\\xd8\\x67\\x32\\x19\\x99\\x48\\x42\\x49\\xef\\xa7\\x25\\xf5\\x2c\\x94\\xc7\\x59\\x62\\x06\\xa9\\x11\\xf3\\xf5\\x05\\xd6\\x3f\\x03\\x13\\x25\\x4b\\xd4\\x45\\xf0\\x5b\\xe3\\x99\\x6b\\x58\\xfe\\x18\\x19\\xaf\\x87\\x35\\x2e\\x7f\\x0a\\x2c\\xa3\\x20\\xd9\\xcc\\x00\\xa5\\xfe\\x77\\xad\\x41\\x64\\x0d\\x50\\xbe\\x84\\x36\"},\n{{0xc7,0x38,0xef,0x5f,0x09,0x35,0x28,0x1b,0xa6,0x25,0xfa,0x40,0x14,0xd4,0xa4,0xd0,0xbe,0x7e,0x28,0xfe,0xd7,0x79,0xa9,0xcf,0x65,0x8e,0x21,0xdb,0xa4,0x3c,0xeb,0xc1,},{0x95,0x79,0x9f,0xaf,0x70,0x6d,0x19,0x5e,0x54,0x4c,0x76,0xca,0xfd,0xdf,0x09,0xd0,0x2d,0x1b,0xea,0xfc,0x42,0xc9,0xd6,0xc9,0xea,0xd4,0xc1,0x84,0x55,0x87,0xd3,0x9e,},{0xf4,0x43,0x71,0xe6,0xc3,0x39,0x16,0x39,0xd4,0x57,0xed,0x14,0x64,0x81,0x84,0x80,0x94,0x11,0xe8,0x0a,0x32,0x01,0xf8,0x81,0x16,0x70,0xe5,0x00,0xfc,0xad,0x92,0xf3,0x00,0xaa,0xbf,0x7f,0xc6,0x8e,0x44,0x01,0x91,0xe8,0x81,0xd6,0xc3,0x47,0x4e,0xfd,0x6d,0x28,0xf0,0x9d,0xc4,0x43,0x12,0xfc,0xfc,0xb8,0x27,0x01,0xba,0x3c,0x29,0x0a,},\"\\x16\\x8d\\x0b\\xc5\\x59\\x8b\\xe0\\x2f\\x54\\x43\\xbf\\xe7\\xdf\\xb8\\x82\\x99\\x85\\xca\\x5d\\x28\\x2a\\xf9\\xcf\\x1b\\x14\\x82\\x60\\x2f\\x24\\x3d\\x48\\x6b\\xd8\\x2b\\xa0\\x39\\xa0\\x75\\x09\\x09\\xe9\\xb3\\xc7\\xd4\\xd5\\xf8\\xb8\\xba\\xf4\\x57\\x18\\xaf\\x03\\x11\\x85\\x4f\\x4d\\x1c\\x78\\x37\\xf3\\x1d\\x8e\\xe6\\x8d\\x35\\x58\\xe7\\xe5\\x1e\\x0c\\x64\\x6a\\x4a\\x63\\x75\\x96\\xee\\x90\\x05\\x7b\\x01\\xed\\x0a\\x17\\xda\\xa3\\x95\\x0b\\x81\\xab\\x47\\xae\\x8b\\x94\\xc1\\x7d\\x40\\x74\\x69\\x13\\xc4\\x6b\\xa1\\x47\\x8b\\xfc\\xa5\\x1b\\x16\\x76\\x28\\xfc\\x3e\\xe1\\xe2\\x2f\\x2f\\x19\\xd6\\xd8\\xda\\xf9\\x3d\\xf6\\x54\\x0c\\xed\\xb7\\xa8\\x59\\xd1\\xa2\\xba\\x59\\x11\\xba\\x71\\x76\\x6e\\x8b\\x7f\\xce\\x0c\\x0e\\x86\\x63\\x61\\x6d\\x01\\x80\\x69\\x7d\\x78\\xce\\x30\\x40\\xd4\\x38\\x13\\x19\\x82\\xf3\\xf8\\x11\\x2a\\xcc\\xa2\\x9a\\xe5\\x3e\\x53\\x9f\\xf8\\xc9\\xec\\x41\\x06\\xd1\\x32\\xf4\\x02\\x01\\x85\\x18\\x30\\x84\\x85\\xf2\\xaa\\x6c\\x9e\\x8d\\x1e\\x62\\xfe\\xd6\\x0c\\xb2\\x49\\x45\\x7d\\xb3\\x3c\\x6f\\xd1\\xfe\\x07\\x44\\x53\\x61\\xf0\\x81\\x94\\xa2\\xb5\\xa0\\x57\\xcb\\x03\\xcc\\x75\\x4e\\x5c\\x7d\\x4a\\x7e\\xea\\x53\\xa7\\xf7\\xd2\\x07\\xca\\xcc\\xa5\\xe6\\x8c\\xaf\\xa9\\x69\\xa3\\x52\\x1d\\xbb\\x81\\x03\\x99\\xa1\\x7f\\x32\\x8e\\xe7\\x67\\xcf\\x55\\x92\\x6b\\x2b\\xd5\\xf0\\x29\\x54\\x9d\\x3b\\x46\\x45\\x79\\xc4\\x26\\x55\\x26\\x53\\x98\\x47\\x2e\\x1c\\x77\\xcc\\x8d\\xd9\\xaf\\xf1\\x87\\xf7\\xac\\x34\\xdd\\x45\\x6a\\xce\\x99\\x9a\\x73\\x6e\\xcc\\xa6\\xd4\\x05\\xd4\\x92\\x2c\\x77\\x9c\\x60\\x0c\\x47\\xb8\\x4c\\x9c\\x1d\\xf5\\xe5\\xf8\\xed\\x3b\\x28\\x11\\xd3\\x51\\x33\\x91\\x13\\xf8\\x45\\x3c\\xca\\x4c\\x44\\x11\\x68\\x8c\\xb0\\x38\\x82\\x58\\xeb\\xbd\\x18\\x72\\xb8\\x36\\x10\\x04\\x22\\x49\\x49\\x4e\\xd5\\x60\\xd4\\xcd\\xa6\\xa6\\x84\\x55\\xd9\\x57\\xe8\\x06\\xdd\\x0b\\xdd\\x83\\x00\\x4c\\x4c\\xa8\\x07\\x74\\xb8\\xa0\\xa1\\x66\\x58\\x66\\xf1\\x70\\x85\\x01\\x4e\\xad\\xb3\\xea\\xe7\\x38\\x2f\\xa8\\x70\\xde\\xb2\\x9d\\xd8\\xc9\\x31\\xb5\\x30\\x19\\x62\\x57\\x40\\xe2\\x83\\x92\\xf3\\x85\\x75\\xc0\\xe2\\xa9\\xe5\\x04\\xfc\\x35\\xbd\\x95\\xdf\\x56\\x43\\x9a\\x89\\x82\\x30\\xa2\\x39\\x8c\\xd2\\x22\\x5c\\x76\\x6e\\xf3\\x6f\\x12\\xae\\x7e\\x49\\xb3\\x0a\\x9c\\x0a\\xad\\x46\\x9d\\x58\\x95\\xbb\\xf7\\x21\\xcc\\x0f\\xf5\\x1d\\x84\\x0c\\x80\\x2d\\x4a\\x7e\\xef\\xba\\x84\\xfe\\x52\\x05\\xa2\\xc2\\xf1\\x40\\x11\\x92\\x2d\\xde\\x56\\x14\\x56\\xf7\\x9e\\x61\\x61\"},\n{{0x5f,0xea,0x38,0x73,0x9c,0x61,0xca,0x83,0xbf,0x7b,0x4a,0xd1,0x75,0xa2,0x11,0x76,0x27,0xb9,0x71,0xa6,0x34,0xa3,0x05,0xa8,0x4f,0xa5,0x7f,0xec,0xb8,0x03,0x56,0x24,},{0xdd,0xd1,0x4b,0x0f,0xc0,0x67,0x68,0xd5,0x10,0x4c,0x50,0x76,0x4b,0xfd,0x3b,0x95,0x23,0x52,0xa3,0x40,0x07,0xc5,0x0d,0x5d,0xdd,0x22,0x4f,0xf5,0x1a,0xfc,0xdf,0x9c,},{0xf4,0xe2,0x74,0x82,0x3f,0x2c,0x39,0x6f,0x3a,0x32,0x94,0x86,0xaa,0x64,0x10,0xc5,0xff,0x19,0x26,0x6f,0x07,0x70,0xfd,0x04,0xfb,0x14,0xa7,0x60,0x2d,0x2b,0x69,0xa4,0xa2,0xb0,0x09,0x28,0xe9,0xe1,0xd9,0x23,0x89,0xf8,0x03,0x33,0x59,0xed,0x6f,0xb2,0x14,0x64,0x67,0xaa,0x15,0x4c,0xba,0x59,0x7d,0xec,0x6a,0x84,0x17,0x3f,0x8d,0x07,},\"\\x10\\x13\\xc6\\x0a\\x73\\x95\\x35\\x49\\xe5\\xed\\x10\\x5b\\xde\\xa1\\x50\\xb9\\x1e\\x60\\xec\\x39\\x20\\x0d\\x43\\x72\\x13\\x04\\xbf\\xc8\\xec\\x43\\x9d\\x39\\x60\\x96\\x13\\xc2\\xd8\\x78\\x04\\x4a\\x9d\\xa0\\x1b\\x26\\xd8\\x6d\\x6d\\x65\\xdb\\x93\\xd9\\x1a\\x13\\x7e\\x9c\\x48\\x08\\xa9\\x7d\\x4e\\xf2\\x86\\xa9\\x03\\xf3\\xf1\\x38\\x2c\\xc6\\xd1\\x29\\x42\\x16\\xb9\\xfa\\xfc\\x01\\x3c\\x86\\xb9\\xff\\x68\\xb5\\x5a\\x50\\xea\\x37\\x66\\xe6\\x1d\\xc1\\xce\\x38\\x34\\x8e\\x91\\xd6\\x2c\\xe7\\x32\\xc1\\x52\\xd7\\x66\\xb9\\x33\\x5c\\x68\\xd6\\xca\\xd7\\x7b\\xe2\\xb4\\xa0\\xcd\\x50\\xb9\\xa1\\xec\\x63\\x2b\\xa5\\x56\\x48\\xa6\\xe7\\xe1\\x1a\\x14\\xc0\\x68\\x53\\xc0\\x2a\\xec\\x48\\x09\\xbd\\x14\\x7a\\x5d\\xdd\\x9f\\xbc\\x3b\\xe9\\xf0\\xc8\\x15\\x8d\\x84\\xab\\x67\\x95\\xd7\\x71\\xb4\\x2b\\x18\\x14\\xa1\\x7a\\x3c\\x7a\\x6c\\xa0\\xf4\\xa8\\xf7\\xb3\\xa0\\xdb\\x1c\\x73\\xba\\x13\\xb1\\x64\\x00\\xdf\\xec\\xbd\\x03\\xd2\\x16\\x65\\x0e\\x4d\\x69\\x70\\x4a\\x70\\x72\\x46\\x44\\x4d\\x57\\x91\\xfa\\x27\\x37\\x52\\xf5\\x9c\\xb5\\xae\\x9f\\xd4\\x16\\xa5\\x18\\x66\\x13\\xd6\\x6a\\xfd\\xbd\\x1c\\xe6\\x91\\xa8\\x7b\\xd7\\xd8\\xb6\\x71\\x90\\xe9\\xac\\x68\\x70\\x62\\xa0\\x80\\xd2\\xec\\x39\\xfe\\x76\\xed\\x83\\x35\\x05\\x82\\x51\\x87\\x28\\x39\\xe8\\x5e\\xb6\\x2f\\x18\\xec\\xe1\\x87\\xca\\xba\\x55\\xb5\\xf7\\xd5\\xed\\xca\\xde\\x01\\xcd\\xc5\\x43\\xcc\\x67\\x7e\\x50\\x23\\x8b\\x89\\xc5\\x63\\x5a\\xd5\\xc8\\xfc\\x22\\x0f\\x5e\\x0b\\xe1\\xbc\\x66\\x7d\\x20\\x98\\x97\\x53\\xa6\\xd6\\x16\\xfa\\x69\\xf8\\xb1\\x29\\x40\\xb8\\xca\\x9e\\x2c\\x48\\x57\\x71\\x32\\xd8\\x69\\x1b\\x05\\x37\\x79\\xa1\\x52\\xcb\\xac\\xff\\x3b\\x8b\\x1b\\xd7\\xaf\\x69\\x2e\\x56\\xc7\\x3b\\xba\\xe4\\x63\\x47\\x76\\xcf\\xc2\\x13\\xc9\\x9b\\x9a\\xe4\\x58\\xdf\\x1b\\xef\\xc8\\xc8\\x77\\x74\\x26\\x64\\xb0\\xa0\\xbb\\x1f\\x69\\x15\\xc8\\xda\\xe3\\xb3\\xf5\\x5d\\xd7\\x5a\\xba\\x6a\\x3b\\xcc\\x41\\x76\\xb4\\xe3\\xba\\x03\\xd0\\xc1\\xc0\\x4c\\x3c\\x64\\x08\\x77\\x8b\\x2b\\x8e\\x5a\\x8a\\x3e\\xb5\\x2e\\xd3\\x2a\\x74\\x28\\xc0\\x0a\\x98\\xa5\\x89\\xd8\\xca\\x93\\x90\\xa2\\x10\\xf4\\xa7\\xac\\x00\\x4f\\xa1\\xfe\\x4c\\x6d\\xa6\\x94\\xf1\\x22\\x76\\xe3\\x20\\xb4\\x1b\\x0b\\x59\\xf7\\x5d\\x26\\x4a\\x39\\x6d\\x45\\x0b\\x63\\x1a\\xb3\\x53\\xf1\\x61\\x27\\x09\\xe7\\xa2\\xe6\\xa5\\x0d\\x01\\xcb\\x11\\x0e\\x53\\x04\\x05\\x46\\xdd\\x3b\\x1e\\x11\\xd2\\x57\\x32\\x81\\x3a\\xa7\\x6b\\xe5\\xe8\\x1f\\xcf\\x7a\\x57\\x73\\xf6\\x81\\x5b\\xbd\"},\n{{0x60,0xf9,0xa1,0x4c,0xce,0x5d,0x43,0xfd,0x9a,0xab,0x4e,0xe8,0xcc,0x83,0x79,0xd5,0x75,0x94,0x91,0x52,0x69,0x3b,0xf2,0x9a,0x67,0x90,0xb0,0x35,0xe4,0x2a,0x44,0xde,},{0xbd,0x4a,0x70,0x74,0x0d,0x5a,0xca,0xbe,0x49,0xf9,0xa2,0x15,0x20,0x82,0xfa,0x20,0x25,0x33,0x0e,0x64,0x40,0x43,0x7f,0x1d,0x04,0x7f,0x31,0x3d,0xe4,0x90,0xdc,0xa5,},{0x72,0xf5,0x4b,0xb8,0xbd,0xd1,0x7e,0x9e,0x42,0x2c,0xd3,0x39,0x63,0x1d,0xd3,0x9f,0x57,0x35,0x50,0x15,0xd4,0xcb,0xd1,0x5a,0xca,0xb7,0x54,0x2e,0xfd,0x78,0x4a,0x32,0x1c,0x1f,0x61,0x25,0x76,0x4c,0x0d,0x15,0x40,0x45,0xb3,0x2e,0x70,0xdc,0x2e,0x03,0xfb,0xfe,0x11,0x17,0x46,0x8a,0xc3,0xe7,0x31,0x27,0xb5,0xfa,0xc8,0xd4,0x21,0x02,},\"\\xdd\\x7f\\x44\\xf9\\xeb\\x72\\x8a\\xb4\\x8d\\xe5\\x4e\\xcd\\xe6\\xb6\\x18\\x4b\\xd5\\xdd\\xd8\\x70\\x75\\x45\\xa0\\x12\\x9f\\x2e\\x90\\x59\\x05\\xb5\\x5d\\x3e\\x7f\\xd5\\x7e\\x28\\x48\\x5d\\x25\\x81\\x48\\xf6\\x60\\x5e\\x23\\x77\\xd5\\xb2\\x67\\xd2\\xea\\xf4\\xcd\\x4b\\x46\\xe4\\x54\\x96\\x22\\x19\\x86\\x82\\x32\\xb6\\xf4\\x1f\\x88\\xa7\\x97\\xf9\\xcd\\xd5\\xc3\\x9a\\xda\\x51\\xa6\\x41\\x21\\x4f\\xb9\\xdb\\x2c\\x2a\\x9b\\x5a\\x5b\\x16\\xe3\\x03\\x57\\x53\\x18\\xb6\\x25\\xcc\\xa9\\x70\\xb7\\x43\\x48\\x72\\x79\\x02\\xa1\\xcf\\x26\\x8b\\xd1\\x6e\\x10\\x71\\x13\\x16\\x1c\\x8c\\xbc\\x99\\x30\\x3c\\x2b\\x9f\\x23\\x55\\x41\\xa7\\xb3\\x1e\\x43\\x31\\x20\\xfe\\xba\\x14\\xfe\\xbe\\x4b\\xcb\\x0f\\x5b\\x93\\x6c\\x7e\\xdd\\xdd\\x0e\\xcf\\xc7\\x2c\\x8d\\x38\\xf6\\x4c\\xdb\\x6c\\xfc\\x29\\x10\\xbc\\x29\\xa5\\x21\\xc5\\x0a\\x51\\xab\\xcb\\xc2\\xaa\\xbf\\x78\\x9d\\xe8\\x22\\xcb\\x04\\xf5\\x72\\x8f\\xee\\x15\\x3d\\xd5\\x50\\x1b\\x2d\\xb5\\x9c\\x59\\xf5\\x0c\\xab\\x17\\xc2\\x92\\x16\\xd6\\x69\\x51\\x01\\x9e\\x14\\x5b\\x36\\xfd\\x7e\\x84\\x1b\\xfb\\xb0\\xa3\\x28\\x55\\x4b\\x44\\xdd\\x7e\\xf5\\x14\\x68\\xc3\\xd5\\xb7\\xd3\\xa1\\xf7\\xb9\\xde\\xf5\\x8d\\x8c\\xf9\\xd9\\xbc\\xaf\\xe9\\x2c\\x86\\xcf\\x6d\\x61\\x19\\xe9\\x8d\\xba\\x6f\\x38\\xea\\x57\\xe3\\x22\\xdd\\xc9\\xc2\\x19\\x8d\\x4b\\xbc\\x3b\\x94\\xea\\x13\\x29\\xdb\\x0d\\x45\\x8e\\x01\\xc7\\x08\\x1b\\x33\\x92\\x5a\\x3e\\x28\\x7f\\x59\\x9a\\x85\\x8c\\x50\\xc3\\xa8\\xf1\\x8c\\xc2\\xaa\\x63\\x4d\\xf6\\x3e\\x7f\\x10\\xe4\\x03\\xad\\xea\\xb2\\xf4\\x1d\\xb5\\x57\\x87\\x90\\xc3\\xb4\\xf0\\x41\\xa8\\xb7\\xa4\\xf6\\x9c\\xd6\\xe0\\x62\\x15\\xdf\\x82\\x01\\xae\\x5b\\x3e\\x1d\\x1d\\x25\\xa0\\xa3\\x9b\\xfc\\x3d\\x04\\x1a\\x2f\\x98\\x21\\x3e\\xf4\\x14\\x12\\x45\\x79\\x2a\\x76\\xf0\\x6d\\x4d\\xe2\\x5f\\x64\\x67\\xa0\\xe5\\x6f\\x2f\\x5c\\xf6\\x94\\x00\\xd2\\x21\\x17\\xde\\x7b\\x46\\x14\\x95\\x54\\xb7\\x0c\\x75\\xb9\\xf9\\x94\\x84\\xa4\\xf6\\xf0\\x35\\xad\\x3f\\x10\\xe3\\x75\\x3c\\xb1\\x4f\\x4f\\x39\\x8d\\xcf\\x6a\\x64\\xd1\\x0c\\xf6\\xc4\\xfa\\xc0\\x7c\\x91\\x19\\x3c\\xc0\\xf5\\x4f\\x0d\\xe5\\x8c\\x63\\x43\\xe9\\xca\\xaa\\x6b\\x4f\\x47\\x5e\\xf9\\x1a\\x59\\xe0\\x83\\xf9\\xf2\\x11\\xf5\\xbc\\x8e\\x7e\\x45\\x16\\xb4\\x5c\\xf0\\x6b\\xf5\\x0b\\xeb\\x8f\\xc4\\xab\\x57\\x9d\\x86\\xd4\\xa4\\x19\\x0e\\xea\\xc7\\x48\\xd0\\x6e\\x08\\x52\\xc4\\xb9\\xba\\x8c\\xfc\\x50\\xdd\\x0a\\x03\\x7a\\x7b\\xad\\x7f\\xad\\x55\\xaf\\x30\\x9a\\x5f\\x13\\xd4\\xc9\\x1e\\xd3\\xe0\"},\n{{0xa3,0x90,0x53,0xc5,0xc5,0x8b,0xf3,0x1d,0x46,0x2b,0x27,0xa6,0x20,0xb0,0xb3,0x7b,0x80,0x52,0xc6,0xb1,0xc4,0x10,0x2b,0x61,0x45,0x66,0x3a,0xa1,0x5e,0x97,0x87,0x18,},{0x36,0x42,0xac,0x2a,0x32,0x80,0xdc,0xe5,0x2a,0xd8,0xdf,0xcf,0xd3,0x70,0x94,0x36,0xed,0xc4,0xe7,0xe4,0xae,0x1b,0x45,0x2d,0x9b,0x22,0x07,0x80,0xb0,0x86,0x79,0xfa,},{0xf7,0x38,0x3e,0x96,0x6c,0xb2,0x30,0x9d,0xee,0xdf,0x86,0x01,0x00,0x18,0x3a,0xae,0xfa,0xc6,0x72,0xca,0x16,0xd5,0x41,0x9c,0xd6,0x42,0x2c,0xa7,0x0e,0x16,0xb3,0x97,0x6f,0x5f,0x16,0x5a,0xfc,0x27,0x86,0x11,0x7c,0x86,0x82,0x34,0xba,0x11,0x09,0xed,0xe0,0x31,0xf8,0x97,0x9b,0x50,0xe5,0x67,0x35,0x8b,0xd4,0xf8,0xbd,0x95,0x82,0x02,},\"\\xf6\\x55\\x40\\xd3\\xab\\xeb\\x1e\\xe5\\xea\\x98\\x70\\x62\\xc1\\xb5\\x79\\x51\\x6d\\x3c\\x29\\xc3\\x9c\\xbc\\x6b\\x09\\xd6\\x0e\\x18\\xfe\\x27\\x4c\\x2b\\xef\\xe0\\xf5\\xfe\\x7d\\xbd\\x57\\xc2\\xd5\\x83\\x52\\x29\\xbb\\x75\\x4e\\xc4\\x34\\x13\\x94\\x76\\x57\\x76\\xd6\\xa9\\x17\\x8c\\x4e\\x6a\\x31\\x2c\\xd7\\x4b\\xdb\\xac\\xa0\\xe8\\x82\\x70\\x62\\x8c\\xd8\\x41\\x00\\xf4\\x72\\xb0\\x75\\xf9\\x36\\x92\\x83\\x01\\x22\\xf0\\x0f\\x9b\\xd9\\x1a\\xc5\\x82\\x83\\x6c\\x8b\\xfa\\x71\\x4a\\xa4\\x8e\\x97\\x70\\x03\\x55\\x6e\\x1b\\x69\\x6d\\xf3\\x28\\xef\\x58\\x4f\\x41\\x3f\\x8a\\xb6\\x14\\x76\\x06\\x99\\xc4\\xd1\\x47\\xc3\\xee\\xa1\\xda\\x04\\x35\\x83\\x5c\\x9b\\xf7\\xad\\x54\\x60\\x6f\\x02\\x13\\xeb\\x74\\xa1\\xb4\\x76\\x14\\x15\\x06\\xae\\x2c\\xd1\\x24\\xcd\\x51\\xd6\\x6e\\x7e\\x7e\\x57\\x95\\x60\\x57\\x63\\x05\\xc5\\xfb\\xe8\\x43\\x0b\\xe3\\xeb\\xeb\\xaa\\xcb\\xa3\\xf9\\x98\\x9d\\xd7\\xd1\\x99\\xf5\\xa4\\x55\\xa5\\x0c\\xdb\\x37\\x55\\x03\\x7e\\x1a\\x70\\x67\\x4a\\x4f\\xef\\x40\\xb4\\xa3\\xaa\\xf7\\xbd\\x3c\\x95\\xb1\\xab\\x41\\xbb\\x20\\x62\\x11\\xc3\\xa1\\x27\\x6d\\x3e\\x37\\xd8\\xa3\\xa5\\xc3\\xd5\\xd0\\xf3\\x6e\\xf5\\xb4\\xf3\\xde\\x26\\xb7\\xf2\\x0f\\x6b\\x29\\x00\\x71\\x6d\\xcc\\x22\\xab\\x73\\x4e\\xba\\xf1\\xe8\\xd0\\x00\\x20\\xe5\\xf0\\x19\\x55\\x16\\x53\\xb9\\xc2\\xf7\\x0a\\x40\\x38\\xdf\\xb2\\xf1\\x2d\\x25\\xd6\\xd8\\x4e\\x79\\x07\\x3a\\x65\\x48\\xfe\\x15\\xe4\\x82\\x8f\\xe5\\xde\\x83\\xac\\x3d\\x8d\\x98\\xb7\\xda\\xf9\\x27\\x10\\x48\\x2c\\x37\\xf7\\xbd\\x24\\x31\\xa8\\x11\\x4c\\x61\\x37\\x65\\x7b\\xb1\\x77\\x88\\x2d\\x8a\\x3c\\x76\\xba\\xbf\\x1c\\x67\\x1a\\x70\\x55\\x36\\x5f\\xe9\\x08\\x66\\x16\\x7a\\x2d\\x1d\\xbc\\x87\\x0b\\xe8\\x3b\\x36\\x01\\xf0\\x9d\\x4a\\x31\\x7a\\xe2\\x54\\xca\\xc9\\xf9\\x8d\\xcc\\x7a\\xea\\xd9\\x22\\x4c\\xd9\\xc9\\xd8\\xa2\\x00\\xab\\xc8\\x0a\\x2d\\xd1\\x08\\xaf\\x28\\xfd\\x46\\xad\\x70\\x80\\xae\\x74\\x1b\\x50\\x05\\x4b\\x9b\\x9a\\x92\\x01\\xef\\xb7\\x83\\x8b\\xc4\\xc5\\xc2\\xcc\\x3d\\x76\\xba\\x0f\\xcc\\x49\\xc4\\x6e\\x79\\x2c\\x26\\x29\\x2b\\x7d\\x03\\x12\\xaf\\xf9\\x55\\xa9\\xf8\\xed\\xf0\\xc6\\x96\\xa7\\x0a\\x61\\x4f\\x35\\x53\\xad\\x38\\x69\\xbf\\xde\\x48\\xd2\\x6a\\x4d\\x36\\x7b\\x6c\\xec\\x05\\x7e\\x62\\xa4\\xe5\\x48\\x55\\x4b\\x48\\xb5\\x3e\\xcd\\xa7\\x90\\xba\\x7a\\x0a\\xb2\\xe3\\xde\\x58\\x7b\\xdc\\x22\\xb0\\x2f\\x59\\x47\\x63\\x4d\\x73\\x09\\x9f\\x54\\x7d\\xb2\\x2e\\xc1\\xbb\\xf8\\x23\\x43\\xf9\\xa2\\xca\\x38\\xbc\\xe4\\xeb\\x59\\xbe\"},\n{{0xe0,0xc2,0x9d,0xf4,0xde,0x45,0xc4,0x75,0x39,0xe0,0x89,0x6b,0x3a,0x59,0xbc,0x3d,0xe6,0xb8,0x02,0xfd,0x14,0xdb,0xdc,0x9f,0x25,0xe7,0x17,0xac,0x82,0xc3,0x28,0xf3,},{0xa6,0x90,0x02,0xb0,0xf5,0xef,0x35,0x4c,0xe3,0xb2,0xd6,0xb8,0xd8,0xba,0x70,0xab,0x77,0x84,0x32,0xb2,0x2f,0x14,0x4d,0xc9,0xc2,0xeb,0x92,0xd9,0x9d,0x99,0xdd,0x2a,},{0xbb,0x3b,0x8c,0x5c,0x27,0x59,0x1f,0xd8,0xb9,0xc5,0xba,0x48,0x9d,0x6b,0x6e,0xe5,0xb0,0xfb,0x4a,0x7b,0x0d,0xe5,0x1f,0x16,0x39,0xaf,0xc6,0x73,0xd0,0xe5,0xf7,0x5e,0x31,0x3a,0xa7,0xe1,0xd0,0x00,0x90,0x81,0xdb,0xca,0x74,0x35,0xb6,0x87,0xcc,0xd1,0x2f,0x64,0xf7,0x4a,0x38,0x6e,0x77,0x2b,0x9e,0x24,0x78,0x1b,0x92,0x5c,0x8c,0x0c,},\"\\x6a\\x37\\xcb\\x4c\\x74\\x9c\\x58\\x35\\x90\\xc8\\xd8\\x49\\xbc\\xe3\\xfa\\x65\\x7f\\x10\\x00\\x91\\x90\\xca\\xd9\\xbe\\x41\\xed\\xe1\\x9b\\xf2\\xfd\\xb3\\xc5\\x62\\xa6\\x10\\x1f\\x27\\xbd\\x37\\xf2\\x23\\xca\\xb1\\x3c\\xed\\x24\\x5a\\x1c\\xed\\xf8\\x52\\xf5\\x51\\xf8\\x57\\xaa\\xd9\\x72\\x7f\\x62\\xc9\\x67\\xc0\\xa9\\x21\\xdf\\x11\\x6f\\x48\\xa8\\x0a\\x60\\x40\\xb3\\xc7\\x23\\xab\\x5c\\xb5\\x94\\xc4\\x50\\x7a\\x3d\\x20\\xcd\\x60\\x51\\x4e\\x22\\x16\\x4a\\x82\\xb7\\x4f\\x19\\xdc\\xfd\\xd8\\x3c\\x57\\xbc\\x36\\x52\\x37\\x55\\x17\\x41\\x4a\\xf5\\xd1\\x8e\\x0a\\x64\\xcc\\xab\\x36\\x69\\x97\\x68\\xd0\\x7c\\xf4\\x0b\\x70\\x63\\xa8\\x3e\\x43\\xd5\\xf6\\x07\\x96\\x4b\\x1b\\xf0\\x84\\x0a\\x45\\xad\\x50\\xab\\xf8\\x3d\\xbc\\x84\\x9f\\x40\\xe5\\xb4\\xcf\\xb6\\xa3\\x34\\x7b\\x29\\xfe\\xc5\\x07\\x74\\x04\\x6a\\x4b\\x50\\x04\\x10\\x32\\xaa\\x4d\\x56\\x7e\\x85\\x64\\xb3\\xee\\xd1\\x64\\x20\\x40\\x68\\x2d\\xd8\\xae\\x7d\\x71\\x79\\x28\\x6c\\xf6\\xe1\\x85\\x3d\\xc8\\x7d\\x27\\xc3\\xe9\\xe6\\x0f\\xa4\\x7c\\xf8\\xcb\\x2d\\xa0\\x18\\x1d\\x53\\xee\\xc4\\x06\\x14\\xb0\\x73\\x31\\xa4\\xfb\\x70\\x28\\x08\\x6d\\x0b\\x1c\\xe2\\xe1\\x11\\x5b\\x73\\xa1\\x62\\xc5\\x27\\xbd\\xd7\\xca\\xb5\\x33\\x5b\\x86\\x3d\\x10\\x8b\\xe0\\x47\\xbd\\xbc\\xa1\\x12\\xcc\\x6e\\x77\\x6b\\xb4\\x53\\xc3\\x17\\x31\\x43\\x88\\xbb\\x96\\x53\\xef\\xb4\\x44\\x4b\\xf5\\xcf\\x1e\\xc8\\xda\\x23\\xb7\\x11\\xba\\x71\\x79\\x6c\\x0a\\xe0\\x2b\\xa1\\xdc\\xc8\\x38\\x45\\x50\\x78\\xc3\\x89\\x7f\\x07\\xe9\\xe1\\x3b\\x76\\xe4\\x92\\x74\\xc2\\xe2\\x07\\x50\\x6b\\x00\\xa0\\xb5\\x58\\x88\\x3a\\xa1\\x22\\xb6\\x67\\xdb\\x9d\\x67\\x05\\x08\\x60\\x6a\\x3f\\x54\\x32\\x06\\x36\\xcd\\x19\\xf9\\x73\\x91\\x7f\\xb1\\x87\\x5f\\x43\\x63\\xe2\\x20\\xf1\\xe1\\x23\\x98\\xcc\\x6a\\xfd\\x79\\x09\\x47\\x43\\x33\\x84\\x56\\x81\\x3a\\x58\\x26\\xad\\x3f\\x1a\\xba\\x7c\\xd7\\xbe\\xab\\x1f\\xe1\\x83\\x85\\x9c\\x0c\\xc9\\xef\\x40\\xa5\\xea\\xb9\\x12\\xca\\xf5\\x15\\xa8\\xd4\\xc3\\xb9\\x3d\\x64\\x1b\\x7a\\xb3\\xe7\\x6b\\x16\\xc1\\x29\\x71\\xac\\xe8\\x8f\\xf3\\x3e\\x5a\\x1e\\xd9\\xb4\\x4e\\x45\\xdb\\x8f\\x30\\x85\\xdb\\xf0\\x70\\xb2\\x56\\xb0\\xd7\\x51\\x2e\\xe1\\x06\\x94\\x32\\x60\\x3d\\x73\\x09\\x5d\\xb8\\x74\\x9c\\xa5\\x47\\x96\\x3b\\xd7\\x1a\\x8a\\x68\\x4a\\xb8\\x51\\x6b\\x14\\x6c\\x41\\x87\\x17\\x63\\x86\\xaf\\xdf\\x6c\\xb1\\x36\\x8a\\x3d\\xd8\\xfc\\xb2\\xcf\\xff\\x77\\x05\\x6a\\xaf\\x78\\x23\\xf8\\x00\\xb2\\x66\\xac\\xce\\x72\\xbf\\x64\\x3c\\x6d\\x0c\\x28\\xf0\\xab\"},\n{{0x19,0x8b,0x5f,0xd1,0xc0,0x38,0x27,0xe0,0x99,0x4a,0xd5,0xbf,0xee,0x9b,0x5b,0x7b,0xe9,0x96,0x6c,0x9c,0x3a,0x26,0x7e,0x4d,0x74,0x30,0x34,0x37,0x67,0x40,0x3c,0x67,},{0x66,0x82,0xc6,0xf1,0xa8,0x66,0xb4,0x9b,0x2f,0x8e,0xe9,0x7f,0x2e,0x53,0x2f,0xa9,0x16,0x66,0xbf,0x38,0xda,0x1b,0x4d,0xd6,0x55,0x43,0xa1,0x77,0x77,0x94,0xcb,0xee,},{0xf4,0x54,0xf3,0x5b,0x18,0x53,0x8f,0x87,0x7e,0x5d,0x61,0x4a,0x76,0xb5,0x27,0x6a,0x27,0xfc,0x0b,0x43,0x3f,0x21,0x5d,0xc4,0xe9,0x63,0xb3,0xf0,0x47,0x69,0x4c,0x78,0x0c,0x51,0x5c,0x6e,0xf6,0xfe,0x2d,0xb4,0xb0,0x09,0x00,0x9b,0xc2,0x73,0x3a,0xec,0x4f,0xd4,0x6e,0x61,0x53,0x57,0xcc,0x0b,0xcc,0x9f,0x1f,0x7f,0xc2,0x1e,0x3c,0x02,},\"\\x3f\\xda\\xa1\\x5c\\x46\\xf2\\x51\\x43\\xdb\\x97\\x20\\x79\\xd7\\x01\\x3c\\x7f\\x69\\xa1\\x36\\xf4\\x5f\\x3f\\x6b\\xa2\\xce\\xd8\\xb8\\x28\\x46\\x8e\\xb3\\xda\\xa6\\xb5\\x0b\\x4f\\x8d\\x33\\x80\\xfe\\xc6\\x4a\\x03\\x43\\xbe\\x11\\x6f\\x6f\\x83\\xb6\\xee\\x64\\xcc\\x4c\\x1b\\x1d\\x08\\xd5\\x4f\\xd4\\x20\\x29\\xe4\\x28\\x5c\\xfc\\x6c\\x6d\\xd5\\xcd\\x18\\x1a\\xb5\\x33\\xff\\xcd\\x41\\x1f\\x23\\xa1\\x00\\x3d\\xa9\\x4e\\xc9\\x34\\x0e\\x2e\\xc7\\x11\\x99\\xd6\\x78\\x54\\x0d\\x51\\x82\\xe1\\x39\\xff\\xcb\\xc5\\x05\\xa1\\x70\\xb8\\xf0\\x7f\\x4a\\x7e\\x69\\x4c\\xa9\\x2f\\x58\\x32\\x0c\\x0a\\x07\\x85\\x64\\xce\\x9d\\xe9\\x9b\\x0f\\xa8\\xe6\\x6b\\x0d\\x82\\x2e\\x46\\x7a\\x5a\\xeb\\x83\\x56\\x79\\x96\\xa4\\x8b\\x89\\xdb\\x25\\xca\\xde\\x64\\x57\\x79\\x4e\\x54\\x14\\xd6\\x7e\\x9d\\x4a\\xb7\\xcd\\x6c\\xc2\\x05\\x8b\\xb7\\xa5\\x13\\xab\\xd7\\x09\\xf4\\xca\\xf2\\x4b\\xb6\\x7c\\xe1\\xc0\\x3a\\xb6\\x2d\\xbd\\xfe\\x30\\x9e\\xc7\\xdb\\x0f\\xa3\\xea\\x7a\\xae\\x82\\x36\\xf2\\x59\\xb9\\x22\\xd4\\x53\\x61\\x15\\xa6\\x3b\\xc8\\x9a\\xcb\\x20\\x51\\xd0\\x9e\\x73\\x1c\\xbb\\x0d\\xf1\\x57\\xd9\\xd3\\x45\\xbd\\x91\\x09\\x97\\x3c\\x2b\\x59\\x4f\\x14\\x8e\\xfc\\x6f\\x33\\x77\\xde\\x51\\x63\\xb7\\xf6\\x98\\x69\\xff\\xef\\x85\\x3e\\xae\\xfe\\xb4\\x02\\xe2\\x35\\x29\\x59\\x4f\\xbd\\x65\\xca\\x05\\xfe\\x40\\x62\\xc5\\x29\\xd8\\xe3\\x21\\xab\\xc0\\x52\\x00\\xca\\xc1\\xe8\\x39\\xe8\\x7b\\x1f\\xd3\\xfd\\xf0\\x21\\xd6\\x8c\\xbb\\x3a\\x41\\x42\\xb6\\x9c\\xc3\\xaf\\x6f\\x63\\x2e\\xdd\\x65\\xb8\\x3f\\x5a\\xa4\\xcb\\x17\\xda\\x5b\\x6b\\xa3\\xfc\\x03\\xed\\xb1\\x7c\\x2a\\x3c\\xb5\\xb0\\x48\\x36\\xe7\\x66\\x0e\\x63\\xc8\\xa0\\x48\\x3e\\x24\\x39\\x83\\x37\\x1d\\xfa\\x98\\x39\\xf9\\x16\\x4a\\xd4\\xda\\x0d\\x59\\x53\\x65\\x5e\\x3a\\x95\\x18\\xe1\\x36\\xda\\x74\\x57\\x37\\xc7\\x92\\x43\\xc3\\x55\\xfc\\x12\\x5c\\xbd\\xcc\\x76\\xae\\xc9\\x22\\x16\\x84\\x6c\\x45\\x74\\xf4\\xf7\\xf2\\x98\\xbc\\xde\\x54\\xfd\\x24\\x44\\xad\\x30\\x25\\x95\\x5c\\x10\\x03\\x15\\xde\\x5a\\x4e\\x27\\xc3\\x33\\xa0\\x02\\x84\\xb2\\xf7\\x02\\xfd\\xd3\\xde\\x22\\xac\\x6c\\x24\\x0d\\xbc\\x14\\xbf\\x71\\xe6\\x2d\\x13\\x1b\\x62\\xf2\\xdb\\x99\\x24\\x73\\xf2\\xf9\\x13\\xf6\\x0c\\x91\\x6e\\xcf\\x57\\xdf\\x5f\\x3f\\x02\\x1f\\xb3\\x30\\x83\\x43\\x95\\xb7\\x94\\x72\\xca\\xff\\x19\\xfc\\xfa\\x0a\\x27\\x17\\x95\\xc7\\x6d\\x69\\xb4\\xdb\\x3f\\x85\\xb8\\xd2\\xe5\\xc3\\x44\\x19\\x65\\x48\\x4d\\xcc\\x39\\xab\\xa5\\x9b\\x70\\x12\\x74\\xf7\\xfc\\x42\\x52\\x46\\x85\\x60\\x69\"},\n{{0x43,0x92,0xf7,0xd4,0xfb,0xd6,0x8f,0xe1,0x54,0xe4,0xba,0x38,0xad,0x52,0x07,0x61,0x2a,0x06,0x48,0x55,0x60,0x56,0xc3,0x9a,0xc1,0x16,0xad,0x46,0x8f,0x89,0xbd,0x2d,},{0xcb,0xea,0xef,0x41,0xac,0xac,0x02,0xbf,0x1f,0x78,0x0c,0xe9,0x34,0xaa,0xbd,0x63,0x13,0x64,0xb3,0x69,0x56,0x7b,0xe1,0xbe,0x28,0xe3,0x90,0x6f,0x9d,0xb1,0x20,0xfa,},{0x86,0xe7,0xcc,0xf0,0x6e,0x79,0x36,0x2d,0x40,0xcd,0xb7,0xfb,0x75,0xa9,0x89,0x78,0xbb,0xd3,0x34,0xa1,0xdb,0x75,0x90,0x36,0x7d,0x60,0x84,0x9b,0xd5,0x3e,0x2f,0xb1,0xa4,0xbd,0xae,0x59,0x0d,0x1f,0x47,0xb5,0x49,0x0d,0x87,0x02,0xe7,0xc1,0xa8,0x72,0x68,0xb8,0xee,0x9d,0xb6,0x12,0xde,0x7b,0xdc,0x2e,0x38,0xfa,0x6d,0xeb,0x7e,0x05,},\"\\xcf\\x17\\x09\\xdc\\x9a\\x08\\x67\\xee\\x90\\x87\\x21\\xb1\\x36\\xcb\\x93\\xa8\\x42\\x29\\xe8\\x3b\\x46\\x20\\x47\\x77\\xca\\x81\\x94\\xd0\\x8b\\x7a\\x3c\\xa9\\xc9\\x12\\xeb\\x24\\x3e\\x5b\\xda\\xbf\\xee\\xd3\\x52\\x34\\x9d\\x20\\xbe\\x80\\x1b\\x72\\x2a\\xf0\\x89\\x22\\x38\\xe7\\x2e\\xdf\\x19\\x0e\\x63\\x61\\xf5\\x75\\x72\\x78\\x1a\\xd3\\xc2\\x59\\x0b\\x19\\x73\\x57\\x64\\x1c\\x80\\x53\\x83\\xba\\xa1\\xd4\\x97\\x2f\\x76\\xc6\\x54\\x48\\x53\\x2c\\x11\\x08\\x34\\xa0\\xba\\xa8\\xf4\\x88\\x63\\xe1\\x66\\xb7\\x06\\x65\\x37\\x08\\xcd\\x40\\x57\\xd3\\xa4\\xf9\\xfc\\xb2\\xce\\xb4\\x12\\x00\\x01\\x27\\x7d\\x38\\xc4\\x38\\x47\\xd8\\x22\\x82\\x2b\\x77\\x7c\\x2b\\xb4\\xda\\x40\\x15\\xa1\\xc2\\x4d\\x41\\x6d\\x50\\x62\\xa8\\x71\\x84\\x91\\xd8\\x55\\xaa\\xa5\\xdb\\xf5\\x57\\x9c\\x16\\x4d\\x8e\\x52\\x4a\\x9f\\x2f\\xa3\\xf2\\x2e\\xb0\\x98\\x61\\xff\\xe6\\xad\\x65\\x9f\\xe3\\x6e\\xb4\\x04\\x31\\x22\\x2c\\x22\\xd7\\x13\\x7a\\x6c\\xab\\xca\\x8d\\xb7\\x86\\xe3\\x9d\\x81\\xf6\\x61\\xaf\\xde\\x4e\\x39\\x58\\x9b\\x4d\\xb4\\xd3\\xc5\\x1c\\xa5\\x35\\x90\\xa1\\x4e\\x11\\x5d\\x0a\\xfc\\x3a\\x87\\x7b\\x83\\x9a\\x96\\x38\\xbe\\xce\\x80\\xc3\\x2c\\x19\\xe5\\x1b\\x75\\x32\\x02\\x48\\x45\\xf7\\x6c\\xfe\\x9b\\xfb\\x2a\\xc0\\x51\\x30\\xf6\\x75\\x8b\\xf7\\xfe\\x99\\x3a\\xa9\\x3a\\xa2\\x72\\xe4\\xe6\\xbd\\x0c\\x75\\xc1\\x40\\x99\\xd4\\x3e\\x65\\x2a\\x22\\x3e\\x5b\\xcd\\x64\\xc3\\x62\\xd4\\xb8\\xf4\\xb9\\x5e\\x01\\x6f\\x93\\x50\\xc7\\xfa\\x74\\xe6\\x53\\x52\\x5d\\x08\\x01\\x15\\x58\\xb2\\xc6\\xe9\\xbf\\x4f\\xdf\\x9d\\xbd\\x5e\\xf9\\xb0\\x9b\\xbc\\x84\\x6a\\xfc\\x2b\\xcb\\xc8\\x6c\\x4c\\xcc\\x31\\x5f\\x6d\\x1c\\xcd\\x48\\x9b\\x0c\\xf8\\xed\\x0d\\x93\\xf2\\xf5\\x32\\xa4\\x26\\x26\\x5c\\x59\\x0b\\xa3\\xa5\\x90\\x23\\x34\\x7d\\x81\\x9d\\x9b\\x28\\x1e\\xf8\\x53\\x10\\xb0\\x53\\x16\\xd4\\x6c\\x8a\\x8c\\x03\\x65\\xd0\\x68\\xa8\\x70\\x86\\x64\\xea\\x4d\\x77\\xac\\x0c\\xd1\\x50\\xa6\\x5a\\x56\\x58\\x6b\\xab\\xd3\\x4b\\x74\\x36\\x5b\\xb8\\xfe\\x3e\\x61\\x87\\x26\\x22\\x84\\xd6\\x44\\x32\\xe4\\xc8\\x1e\\xa4\\xc0\\xe5\\x7c\\x1d\\x71\\xae\\x98\\x0c\\x7f\\x4d\\x1d\\x87\\x10\\x32\\xe1\\x88\\xbb\\xf9\\xd1\\x75\\x8c\\xdc\\x1d\\xff\\x98\\x9f\\x2d\\x12\\x88\\xfe\\xf4\\xe2\\x05\\xe9\\x9e\\x7c\\xbf\\x2c\\xc3\\x24\\xb8\\xc9\\x30\\x46\\xf4\\x76\\xc5\\x9d\\x3d\\x0a\\x59\\xdb\\x6f\\xe3\\x73\\x82\\xdc\\x79\\xc5\\xec\\x16\\x05\\x6a\\xb3\\x93\\x4a\\x52\\xf7\\xd2\\x88\\x0d\\x04\\x71\\xa3\\x77\\xb6\\xa8\\xae\\x84\\xd5\\x6a\\xc2\\x2d\\x1d\\x54\\x55\\x1c\"},\n{{0x0b,0xea,0x98,0xab,0xe7,0xd6,0x3f,0x15,0x83,0x90,0xee,0x66,0x8a,0xa0,0x50,0xe8,0x4a,0x25,0xd2,0x89,0x3e,0x49,0xfc,0x83,0xf0,0x79,0xf9,0xbb,0xa6,0xa5,0x5a,0x75,},{0x22,0x19,0x2e,0xc0,0xd3,0x2e,0xf9,0x83,0x56,0x65,0xa6,0x1b,0xc8,0x8b,0xcf,0x4e,0x16,0x04,0x63,0x79,0x21,0x15,0x2c,0x11,0x6a,0xf5,0x03,0x36,0x5b,0xf6,0xbe,0x42,},{0x7e,0xb3,0x13,0x9b,0x88,0x0f,0xdf,0x66,0x37,0x6a,0x20,0x90,0x81,0x88,0x40,0x04,0x97,0x67,0xc8,0x37,0xf3,0xad,0x00,0x36,0xb1,0x41,0x66,0x70,0x52,0xb3,0x36,0x09,0x81,0x7c,0xa5,0xe2,0x40,0xed,0x8c,0xdf,0x3c,0xcf,0x3a,0xee,0x29,0x27,0x45,0x34,0x59,0x4d,0xb0,0xb4,0xcc,0xc5,0xc6,0xe5,0xbb,0xa3,0x28,0x0b,0x87,0x3f,0x29,0x01,},\"\\xc1\\x78\\xe3\\x8d\\x4e\\x83\\xed\\x2b\\xe5\\x7c\\xe1\\xc3\\xab\\x64\\x25\\x3a\\x81\\x71\\xe6\\x10\\x00\\x81\\x81\\xfb\\xfc\\x6d\\x75\\x22\\x69\\xf7\\xf1\\xc5\\xa9\\xec\\x62\\xcb\\x27\\xf1\\x9a\\xd9\\x9c\\xe1\\xf5\\x11\\x6a\\x36\\x3d\\x96\\xfd\\xc5\\xa4\\x2f\\x35\\x8b\\x6d\\xbe\\x7c\\xab\\xdf\\xc9\\xf6\\x07\\x18\\xe4\\x01\\x2c\\x1b\\xb1\\xf8\\x42\\xc5\\x56\\x08\\x11\\xba\\x83\\x74\\xa0\\x63\\x77\\x47\\xff\\x92\\xea\\xc2\\x1c\\xa6\\x5d\\xde\\xaf\\x43\\xe9\\x98\\x9b\\x7d\\xe2\\xd4\\x32\\x52\\x0a\\xfe\\xe3\\x64\\xec\\xfb\\xa4\\xda\\x66\\x9a\\xd4\\x89\\x3d\\x0b\\xf6\\x9f\\x9f\\x81\\xe7\\xdf\\x69\\x65\\x7b\\xe2\\x2b\\x92\\x06\\x97\\x45\\xf2\\x16\\xc2\\x42\\xcc\\xd4\\x6d\\x02\\xd3\\x56\\x16\\xe1\\x6c\\x75\\x5e\\x0e\\x37\\xf9\\x61\\xa6\\xf3\\x63\\x77\\x52\\x53\\x4f\\x6d\\xfa\\xb8\\x80\\x5a\\xb7\\x59\\xa0\\x32\\xa4\\xe7\\xe4\\xc8\\x19\\x53\\x32\\x5a\\x2f\\x68\\x6b\\xb6\\x9a\\x02\\x9c\\xe4\\xe0\\x3b\\xec\\xb3\\x60\\x56\\x37\\xc5\\xa6\\x5b\\x52\\xe3\\x31\\xc2\\x6c\\x92\\x6e\\xd4\\x71\\x1a\\x50\\x4d\\x37\\x33\\xbb\\x53\\xc9\\x7b\\x80\\xea\\xfe\\x4e\\x75\\xdd\\xd9\\xf4\\x15\\x36\\x28\\x88\\xc3\\xd4\\xd3\\x7b\\xae\\x0e\\x63\\xfa\\x11\\xbf\\x75\\x56\\x66\\x43\\x7d\\x72\\xf5\\x8c\\x91\\xd7\\xa2\\xf8\\xcb\\x61\\x9b\\x76\\x20\\xa0\\x70\\xb2\\x6b\\x18\\xb4\\xd5\\x01\\x84\\xc5\\x81\\x87\\x12\\x11\\x0e\\x36\\xd3\\xe2\\x83\\x0f\\x6a\\x85\\x76\\xba\\x57\\xf9\\xcc\\xcb\\x8f\\xff\\x40\\x28\\xbf\\x8e\\xf9\\xcb\\x81\\x48\\x25\\xbb\\xca\\x82\\x7d\\x64\\x95\\x47\\xbf\\x6f\\x2b\\xef\\x93\\x17\\x04\\xca\\x7f\\x6d\\xf1\\x5f\\x78\\x01\\x55\\xed\\x46\\xea\\xa7\\xca\\x7d\\x72\\xe2\\x24\\x34\\xca\\x04\\x83\\xbf\\xb2\\xf7\\x90\\x2d\\xc7\\x87\\xf6\\x17\\xeb\\x9b\\xd4\\x1e\\xd4\\x52\\x0a\\xdf\\xd4\\x30\\x94\\x8c\\x71\\x08\\x05\\xa7\\x3c\\x1b\\xa5\\x49\\x2e\\x96\\x48\\x4c\\x4b\\xaa\\x7d\\xa2\\x4c\\x74\\x35\\xc4\\x6a\\x05\\x2b\\xf3\\x51\\x5d\\x33\\xe4\\x2d\\xce\\xf5\\x17\\xca\\xa4\\x5f\\x36\\xc8\\x79\\x12\\x10\\x78\\xc6\\x88\\xdd\\x10\\xd7\\x66\\x56\\xa1\\x19\\x76\\x2b\\x6a\\x83\\x41\\x36\\xfa\\x1f\\x8a\\x64\\x32\\x24\\xb9\\x22\\x4c\\x54\\x3c\\xf0\\x47\\x0b\\x3f\\x8e\\xe0\\x17\\xd6\\x20\\xdb\\xdc\\xc8\\x4d\\x98\\x51\\x54\\xe9\\xd1\\xae\\x80\\xe5\\xf1\\x43\\x87\\xb8\\x8a\\x0f\\x6a\\x5c\\x35\\x90\\x5a\\xa5\\x7f\\xb3\\xab\\xeb\\x0e\\xa6\\xec\\xcd\\xdb\\x00\\x44\\x74\\x63\\x3c\\xc4\\x83\\xb5\\x6b\\x8a\\x8e\\x20\\xe8\\xf2\\xe0\\x9e\\x97\\x9a\\xa0\\x98\\x93\\x08\\x78\\x75\\xc6\\xb1\\x17\\xb5\\xf1\\x38\\x47\\xad\\x8f\\xc0\\x56\\x04\\xc4\"},\n{{0xc2,0x58,0x78,0xb0,0xd1,0xe0,0x92,0x5c,0x8f,0x5f,0x04,0xa1,0xe5,0x79,0x90,0x80,0x96,0x3c,0x41,0x3a,0x13,0x99,0xc1,0x18,0xaf,0xb1,0x68,0x7c,0x79,0x7f,0x48,0x39,},{0x13,0xac,0x2c,0xad,0x41,0x90,0x8c,0x25,0x5f,0x67,0x1f,0x93,0x93,0x4a,0xe5,0xd7,0xbe,0x32,0x53,0x46,0x72,0x5c,0x8b,0x40,0xdc,0x39,0xea,0x80,0xd7,0x0d,0xdf,0x34,},{0x06,0xf5,0x51,0x98,0xb4,0x19,0x19,0x14,0xb7,0x43,0x06,0xf3,0x8e,0x38,0x13,0x16,0xea,0xc4,0x0b,0x5b,0x5a,0xdb,0x8a,0x31,0x24,0x64,0xf6,0x71,0x75,0xec,0xf6,0x12,0xe0,0x14,0x7b,0x1c,0xef,0x46,0xc2,0x51,0x87,0x50,0xa5,0x60,0x6b,0xb0,0x3b,0xc6,0x46,0x7b,0xb9,0x32,0x15,0x14,0xf6,0x9d,0xcb,0xeb,0xce,0x8f,0x69,0x05,0x80,0x02,},\"\\x68\\x56\\xcc\\x71\\x44\\xb6\\xbd\\xdc\\xc4\\xb5\\x89\\x54\\xd1\\xa2\\xe7\\x10\\x1d\\x65\\x84\\xb5\\xd5\\xe7\\x19\\xa0\\xae\\xa0\\xfb\\xbd\\xf2\\x21\\xc2\\xa2\\xaa\\xcb\\xac\\xdc\\x40\\x20\\xc5\\xc8\\xce\\x68\\x1f\\xf7\\x38\\x1a\\xcd\\x60\\x7b\\x0f\\x52\\x39\\x69\\x23\\x35\\x70\\x06\\x55\\xbe\\x2d\\x94\\xc5\\x3d\\x7b\\x51\\x48\\xe9\\x2a\\x2b\\xc1\\x63\\x38\\xc2\\xf4\\xc1\\xa7\\xd1\\xc5\\x95\\xaf\\x62\\x2c\\x24\\x0c\\xe5\\x79\\xa5\\xe0\\xf5\\xb6\\x51\\xbf\\x56\\x25\\x18\\xce\\xc8\\xaa\\x2c\\xe4\\xb4\\xaa\\xdb\\x1f\\x2f\\xda\\x6c\\xf6\\x29\\x5b\\xc3\\x78\\x03\\xb5\\x37\\x7d\\xab\\x65\\xc9\\xb9\\xa2\\x94\\x9f\\xdd\\x49\\xbf\\x9d\\xdc\\x8f\\x96\\xd2\\x60\\xff\\x95\\x1b\\xf8\\xe8\\xcc\\xf9\\x82\\x7e\\x68\\x69\\xc4\\x4b\\xfd\\x97\\x33\\x58\\xce\\xfd\\xb0\\x10\\xdb\\x5e\\x1f\\xe5\\xdb\\xd9\\xf5\\xd2\\xb2\\xca\\x39\\x3c\\x17\\xd4\\x46\\xf6\\x37\\x05\\x9e\\x69\\x2d\\x7a\\x91\\xaa\\xdc\\xc7\\x68\\x9f\\x5f\\x9e\\x1b\\x30\\x52\\x17\\x5d\\x9b\\x6b\\x20\\x8f\\x90\\x26\\x78\\x7f\\xdb\\x66\\x78\\x3f\\x45\\x37\\x2a\\x24\\x94\\x6b\\x1b\\xd1\\x68\\x7b\\xf0\\xcf\\xcc\\x81\\x74\\xeb\\xe4\\xd3\\x2e\\x43\\x28\\x4f\\xc7\\x8d\\x78\\x44\\xde\\x0f\\xa2\\x2e\\x20\\x65\\xe0\\x75\\x28\\xba\\xab\\xaf\\x01\\x5c\\xb3\\x4d\\x62\\x9c\\x35\\x96\\xad\\x04\\x0d\\xe3\\x1c\\x56\\x20\\xeb\\x26\\x6d\\xef\\xa7\\x53\\x3a\\xc0\\x40\\x19\\x98\\xe5\\x67\\x3a\\x75\\x43\\x65\\x04\\x7d\\xeb\\xfc\\xf7\\xe1\\x37\\xa2\\x0d\\x16\\xcd\\xd6\\xa5\\x52\\x19\\x82\\xf4\\x44\\xcf\\xc3\\x42\\x93\\x97\\xc6\\x41\\xbd\\x7e\\x74\\xa7\\x70\\xbb\\x11\\xfc\\xb2\\x94\\x83\\xe3\\x37\\xba\\xe5\\x16\\x9e\\xe8\\x2d\\xa9\\xa9\\x1a\\xdf\\x3a\\xf6\\x7c\\xd8\\x14\\xc2\\x82\\x5d\\x29\\x01\\x8e\\xf0\\x35\\xea\\x86\\xf8\\xde\\x4c\\x75\\x63\\xaa\\xf6\\x6e\\x0c\\x75\\xd1\\x7c\\xa6\\x8f\\x49\\xf0\\x75\\x8e\\xc2\\xd9\\xc5\\x17\\x9d\\x01\\xaa\\xed\\x7d\\x45\\x15\\xe9\\x1a\\x22\\x2b\\x0b\\x06\\xfb\\xde\\x4f\\x07\\xa7\\xd9\\xdf\\x2d\\xe3\\xbc\\xae\\x37\\xca\\x2c\\x84\\x60\\xc2\\xa6\\xb3\\x74\\x9e\\x9b\\xda\\x36\\xd0\\x8e\\x66\\xbc\\xc3\\x56\\xb3\\x90\\x43\\x4b\\x4a\\x18\\xcf\\xa4\\x5a\\xf5\\x57\\xdc\\xa3\\xd8\\x57\\xff\\x3a\\xd3\\x47\\xcf\\xb0\\x7e\\x23\\x58\\xc2\\xac\\xfd\\x5c\\xd5\\x3b\\x3b\\x0e\\xa2\\xa4\\x1e\\xe5\\xc0\\x80\\x2f\\xd4\\x73\\xdb\\x5f\\x30\\x52\\x63\\x34\\xda\\x41\\xeb\\x4b\\xc7\\x51\\x83\\x83\\x89\\x8a\\x0b\\x75\\x07\\xad\\x4c\\xa2\\x89\\xd6\\x6c\\x5e\\x2e\\xb7\\x5c\\xf2\\x55\\xdf\\xf3\\x12\\xcb\\x1e\\x04\\xee\\xbe\\xb4\\x7f\\x29\\x30\\xb9\\x0d\\x5e\\x00\\x2e\\xb0\"},\n{{0x0b,0x2e,0xc6,0x27,0x63,0xf6,0x87,0x59,0x31,0x35,0xda,0x19,0x61,0xef,0x29,0xa2,0x88,0x08,0x96,0x96,0xd9,0x44,0xb2,0x65,0xa5,0xf9,0x68,0x93,0xcd,0x2d,0x82,0x25,},{0xc1,0xe2,0x34,0xfa,0x8b,0xc9,0x6d,0x26,0x8e,0x7a,0xad,0x02,0x8b,0x03,0xf0,0xa9,0x11,0xb6,0x97,0x71,0x5d,0xb3,0xa2,0x1c,0x2f,0xc7,0xdf,0x48,0xec,0xda,0x88,0x75,},{0xff,0x70,0x1f,0x34,0xb3,0x59,0x4d,0xe3,0xb8,0x00,0x45,0xf4,0x29,0xe5,0xe3,0x2d,0xd8,0x8d,0x60,0x51,0xd4,0x19,0x5f,0x16,0x85,0xbe,0x78,0x37,0x66,0xe8,0x01,0x19,0x36,0x8f,0x56,0xb3,0x74,0x97,0x25,0xb9,0x13,0xf1,0x22,0x3f,0x87,0xfb,0x0f,0xb2,0x4d,0x9d,0xfa,0x08,0x41,0xd6,0xa0,0xe2,0xeb,0x1f,0xdd,0xf7,0x75,0xc2,0xd2,0x05,},\"\\xa8\\x34\\x34\\xc6\\x86\\x93\\xd5\\xfc\\xed\\x91\\xbd\\xa1\\x02\\x13\\xfc\\xd5\\x0c\\x48\\x92\\x0b\\x90\\xce\\xe9\\xb7\\x3a\\x9c\\x61\\x08\\x1a\\x09\\x74\\x93\\x3f\\x4f\\xdb\\x0a\\x67\\xe6\\x71\\xf8\\x35\\x1b\\x0e\\xd5\\xec\\x0f\\xe7\\xb5\\xfb\\x0c\\x87\\x58\\x6f\\xe5\\x82\\xff\\xb1\\xbf\\xa2\\xdb\\x5f\\xce\\xdd\\x33\\x02\\x42\\x82\\x34\\xb2\\xbb\\x0e\\x72\\x6d\\xed\\xf4\\x5b\\x13\\xa7\\x0c\\xd3\\x5a\\xb3\\xe2\\x99\\xd1\\x3f\\x34\\x50\\x35\\x08\\x27\\x8c\\x44\\x58\\xee\\xa5\\xb7\\x35\\x1b\\x05\\x83\\x6b\\xda\\xd5\\xb0\\x5f\\x60\\xe4\\x45\\xfc\\x65\\x73\\x7a\\xe2\\x7d\\x2e\\x52\\xdf\\x9c\\x39\\xe5\\xda\\x02\\x86\\x39\\x2d\\x08\\xff\\xf7\\xec\\xb7\\x06\\x68\\x20\\xfc\\x90\\xfc\\x8a\\x44\\xd5\\x61\\x65\\x61\\xc5\\x0b\\x52\\x71\\x47\\x02\\x30\\x2b\\xca\\x58\\x74\\xde\\x85\\xdb\\xa0\\x45\\x04\\x5f\\x9f\\x0e\\x60\\x4e\\xb8\\x6d\\x6d\\x7f\\xbd\\x77\\x5f\\x72\\xea\\x49\\x3b\\x2c\\x4e\\xf7\\xc3\\xbe\\x16\\xdb\\x2c\\xa7\\xe4\\xd8\\xbd\\x79\\xeb\\x20\\xcf\\xb5\\xf0\\xf6\\xf0\\x53\\x36\\xb7\\x5c\\xc8\\x6d\\x21\\x9f\\x3b\\x8f\\x2e\\x91\\xba\\x7d\\x52\\xb6\\x4f\\xdd\\x6a\\x66\\x64\\xf0\\x4f\\x2f\\xba\\xb7\\x58\\xcd\\xf9\\x84\\x16\\x86\\x91\\xc3\\x2f\\x53\\xe8\\x61\\x6b\\x49\\xf7\\x6a\\xb7\\xb1\\x92\\xb9\\x00\\x90\\x30\\x82\\xcc\\x89\\x65\\x6a\\x97\\x05\\x80\\x4c\\xc9\\xb9\\x28\\x8a\\x3e\\x42\\x17\\x09\\x84\\xf8\\xdc\\x45\\x4e\\x08\\x64\\xb9\\x34\\x16\\x72\\x68\\x6a\\x17\\x8c\\x06\\x00\\x50\\x17\\x8a\\x36\\xc6\\xd9\\x06\\xb2\\xce\\x07\\x0d\\x8f\\xaa\\xac\\xd9\\xa5\\x8c\\x79\\x4a\\x5e\\xa4\\x10\\x8b\\x4a\\x48\\x5c\\x65\\x81\\x1c\\x2d\\xca\\x2e\\xe7\\xbb\\x10\\xbf\\xff\\xf7\\x5d\\x45\\x86\\xb9\\x90\\xf4\\x37\\x63\\xa1\\x6f\\xbc\\x0b\\x48\\xae\\x1f\\xaf\\xb0\\x8a\\x9a\\x36\\xfa\\x43\\x26\\x84\\x5d\\xba\\x5b\\xa2\\xfb\\xd3\\x2b\\xbf\\x66\\x50\\x5c\\x5e\\x86\\x57\\xed\\x01\\x07\\xe3\\xe1\\x61\\x44\\xef\\x31\\xfa\\x6a\\xae\\x72\\xe7\\x74\\x09\\x74\\x83\\xf5\\x48\\x0a\\xa4\\x55\\x40\\x56\\x8f\\xd0\\x8c\\xba\\x0d\\x57\\x77\\x68\\x00\\x4f\\x58\\xae\\x9b\\x95\\xbe\\x37\\x4e\\xd7\\xf0\\x29\\x9f\\xe7\\x21\\x27\\x5e\\x47\\x6e\\x0b\\x9a\\xb7\\x2d\\xc0\\x6e\\xa3\\x28\\x38\\x4e\\x39\\xbf\\x3a\\xc3\\x31\\xc6\\x25\\x48\\x43\\x12\\xcd\\x9b\\x06\\xb1\\x5a\\x29\\x54\\xd3\\x3e\\x7a\\xab\\xa6\\xbe\\x22\\x61\\x88\\x6c\\xa8\\x11\\xdb\\x96\\xb1\\x14\\x3d\\x06\\xdd\\x6e\\x0f\\x3c\\xba\\x7a\\x1a\\xe9\\xb9\\x4e\\xaf\\x67\\x77\\x1b\\xb2\\xd2\\x4e\\x2f\\x94\\xde\\x9c\\x47\\x0f\\xcd\\xe7\\xbf\\xdb\\x32\\xf4\\x10\\x19\\x8b\\x5a\\xa9\\x69\\x8e\\x32\"},\n{{0x89,0x60,0xd7,0xbe,0xe8,0xc6,0xb3,0x9c,0xa5,0x93,0x4d,0x7c,0xdd,0xd1,0x6f,0x16,0xb3,0x66,0x3e,0x6e,0x03,0xe8,0x33,0xc0,0x57,0xe2,0x18,0x1e,0x45,0x97,0xcb,0x68,},{0x43,0x40,0x90,0x95,0xd4,0xf5,0x0f,0x5e,0xdd,0xbd,0x5c,0xd4,0xd2,0x01,0x22,0x98,0xcb,0x41,0xa4,0x0e,0x99,0x49,0x2d,0x5a,0x2d,0xb0,0x8b,0xe5,0x37,0x7e,0xa1,0x83,},{0x72,0x13,0xdd,0x4a,0x79,0xfd,0x54,0xde,0xc0,0xc5,0x48,0xef,0x42,0xe6,0xca,0xe0,0x15,0xbe,0x77,0x80,0x2b,0xf5,0x15,0xcd,0x25,0x82,0x76,0x8f,0x72,0xf5,0x63,0xeb,0xb2,0xda,0x36,0xaf,0x4a,0xae,0xac,0x56,0xbb,0xff,0xc9,0x93,0x2c,0x2e,0x24,0xec,0x95,0xda,0xff,0x00,0xa5,0xf7,0xa0,0xac,0xab,0x9c,0x8b,0xd3,0xc2,0x3b,0xb4,0x0c,},\"\\x30\\x8d\\x84\\xc7\\xa5\\xf7\\x86\\xe5\\x63\\xe5\\xc1\\xea\\x57\\xaa\\xb5\\xe5\\x55\\xc0\\x09\\x97\\x74\\x9d\\x15\\xae\\xe3\\x54\\x39\\xef\\xa6\\x45\\xda\\x2c\\x39\\x67\\x70\\x31\\x15\\xc6\\xc6\\x3e\\xd7\\xf9\\x47\\x85\\xc5\\x47\\x8f\\x38\\x46\\x7b\\x86\\xe7\\x62\\x6e\\x8f\\xff\\xa4\\xd5\\x1a\\x2d\\xc4\\x5e\\x6d\\xf2\\xa3\\x5c\\xec\\x99\\x55\\x5e\\xab\\xc9\\xf7\\xa9\\x3e\\x2e\\x2b\\x68\\x94\\x59\\xb4\\xe0\\xc9\\x2b\\x35\\x15\\x62\\xc4\\x17\\xb1\\x99\\x71\\x13\\x75\\x4e\\xa5\\x9e\\x4a\\x91\\x51\\x07\\x28\\xff\\x30\\x71\\xa2\\xbb\\xd1\\xf4\\x65\\xa6\\x87\\xf6\\x7d\\xae\\x95\\x56\\x15\\x03\\x1a\\x8a\\xd5\\x51\\xfe\\x73\\x8a\\x26\\x0b\\xbc\\x44\\x6b\\x48\\xdc\\xa1\\xd9\\x79\\x05\\x1a\\xb5\\x84\\x08\\x32\\xe1\\x9d\\x47\\x3b\\x66\\x62\\x17\\xa9\\x18\\x39\\x80\\xd6\\xb2\\x7e\\x3d\\x3c\\x76\\xd9\\x36\\x65\\xba\\x23\\x93\\xe6\\xab\\x1a\\x42\\xc3\\x90\\x4d\\x40\\x25\\x93\\x2d\\x60\\x1a\\x20\\x2a\\x59\\xa4\\xc4\\x9f\\xdb\\x77\\xf0\\xe0\\x28\\x68\\x24\\x7d\\xe5\\xaf\\xdf\\xaa\\x1b\\x89\\x42\\x08\\xac\\x00\\xd7\\x7c\\x6b\\xb5\\x4c\\x6b\\x2a\\x73\\xa4\\x76\\x57\\xe4\\x4c\\x85\\x13\\x79\\x63\\xb5\\x75\\x21\\xaf\\x20\\x97\\x62\\x48\\xeb\\x26\\x14\\x82\\x14\\x7c\\xdf\\x7a\\x14\\x5c\\x36\\x43\\xe2\\x9e\\x05\\x88\\xbf\\xda\\xe6\\xa0\\x82\\x90\\x48\\x53\\xce\\x5a\\x10\\xd2\\x49\\x70\\xeb\\xdf\\xb7\\xf5\\x9d\\x5e\\xfd\\xd6\\xa5\\xe7\\xe0\\xd2\\x87\\x97\\x1c\\x84\\x6a\\xcd\\x54\\xd8\\x4d\\xd4\\x54\\x68\\xa4\\x11\\x0b\\xab\\x6e\\xf8\\xd9\\xa5\\xb4\\xb2\\x42\\x67\\x88\\x90\\x0b\\x7e\\x1a\\xdf\\xe0\\x62\\x43\\x44\\xf9\\x8f\\xe5\\x9e\\xf8\\xa1\\xe6\\xc4\\x05\\xb3\\x44\\xeb\\x97\\xbb\\x20\\x47\\x73\\x74\\x4b\\x6a\\x2d\\x8c\\x6e\\x65\\xd1\\x7c\\xea\\x07\\xde\\x03\\xb7\\xf0\\xfe\\x49\\xf1\\xa5\\x5c\\x33\\xd5\\xf1\\x5c\\xe5\\x5d\\xf7\\xc9\\x56\\x1b\\x25\\x1c\\x6a\\xc8\\x07\\xa9\\x25\\x53\\xe1\\xce\\x91\\x70\\x12\\xdc\\xcf\\xd6\\x9e\\x7d\\xbd\\x03\\x8c\\x7e\\xee\\xca\\xe9\\x86\\x23\\xf1\\x8f\\xbb\\x65\\x0e\\x22\\x18\\xa0\\xbc\\x0f\\xff\\x43\\xa7\\x5a\\x11\\x64\\x48\\xbb\\x73\\x62\\xf5\\x27\\xee\\x6b\\xc8\\xe1\\x07\\x61\\xcc\\xcf\\x9b\\xcf\\xc0\\xd0\\x00\\xf2\\x12\\x7b\\x4c\\xc1\\x92\\x11\\xd0\\x95\\xa0\\xbd\\xaa\\x4e\\x4b\\xe4\\x51\\x9e\\x6c\\x84\\x45\\xea\\xb9\\xb3\\x14\\x4a\\x45\\xca\\xb9\\x99\\x61\\x35\\xbf\\x7f\\x75\\xa7\\x8d\\x22\\x27\\x59\\x00\\xf4\\xce\\x1f\\x0a\\x9e\\xac\\x13\\x63\\x64\\x10\\x30\\x62\\x89\\x3d\\xad\\x43\\x90\\x42\\x2b\\x77\\xe5\\xf5\\xd1\\xd9\\x4d\\x70\\x29\\xc6\\x09\\x7b\\x35\\xca\\x64\\xa7\\xa4\\x76\\xfc\\xc7\"},\n{{0xef,0x6b,0x9b,0x51,0xfd,0x4f,0x85,0x86,0xca,0x62,0x65,0x8e,0x04,0x2f,0xc0,0x9a,0x83,0xb9,0x43,0x03,0x35,0x26,0xff,0xc3,0x26,0xc6,0x5e,0xb3,0xa5,0xfb,0x59,0x4b,},{0x1d,0x6e,0xec,0xe8,0x05,0xe0,0x88,0x78,0x21,0x87,0x6b,0x7e,0xd6,0xed,0x5b,0x07,0x14,0xd6,0x46,0xfb,0xec,0xda,0x38,0x76,0x4f,0x94,0xc8,0x15,0x5e,0x61,0xd0,0x04,},{0x71,0xd1,0x71,0x07,0x1c,0xd0,0xfe,0xa1,0xc6,0xa9,0xcf,0xad,0x1f,0x7f,0xd8,0x35,0xe8,0x5f,0xf9,0x06,0x77,0x8b,0xc6,0x34,0x5a,0x4d,0xec,0x43,0x13,0xec,0xc2,0xbf,0xf7,0x55,0xa7,0x17,0xeb,0xd9,0x12,0xa5,0xe0,0x28,0x40,0xac,0x07,0x38,0x42,0xf9,0xbf,0xca,0xa5,0x89,0x13,0xe2,0x60,0xe3,0xc7,0x33,0x93,0xd3,0x66,0x85,0xc7,0x0e,},\"\\xa8\\xf3\\xf1\\x96\\x65\\xde\\x23\\x90\\xd5\\xcc\\x52\\xb0\\x64\\xb4\\x85\\x12\\x73\\x67\\x74\\x86\\xd8\\xf5\\x56\\x3b\\xb7\\xc9\\x5f\\xa9\\x4d\\xb3\\x35\\x61\\x61\\xee\\x62\\x22\\x21\\xf1\\x0c\\xbb\\x1f\\xa1\\x95\\xaa\\xc7\\x23\\x1e\\xa7\\x16\\xd7\\x4b\\x46\\xb3\\x7b\\xc8\\x5a\\x70\\xdb\\xa3\\xdf\\xaa\\x16\\x75\\x21\\x7b\\x35\\x11\\x99\\xe7\\x4a\\x97\\x10\\x28\\xf7\\x29\\xb7\\xae\\x2b\\x74\\xae\\x8c\\x6b\\x3a\\x06\\x79\\xc3\\xe3\\x29\\x68\\x02\\x84\\x4a\\xd5\\xbb\\xa3\\x43\\xf6\\xf9\\xf7\\xc4\\x66\\x1b\\x4a\\x29\\xb4\\x4f\\x17\\xe8\\x9e\\x11\\x4f\\xb2\\x20\\xe9\\x84\\xcd\\x98\\x0e\\x94\\xc3\\xd2\\xbf\\x98\\x73\\xe0\\x60\\x5c\\x92\\x30\\x17\\x44\\xa3\\x03\\x5e\\xf0\\x46\\xba\\xd2\\x66\\x6b\\x5c\\x63\\xeb\\xec\\xf9\\x3c\\xc1\\x40\\x29\\x19\\x46\\xc0\\xfa\\x17\\x03\\x40\\xce\\x39\\x50\\x92\\xde\\xed\\x79\\x84\\x13\\x52\\xfb\\xfe\\xe0\\x3a\\x92\\x7e\\xb4\\x58\\xf2\\xa6\\x33\\xed\\x32\\x71\\x65\\x2f\\x5b\\x0f\\x99\\x60\\xcd\\xf9\\x01\\x5d\\x56\\xfd\\xab\\xd8\\x9e\\xe7\\x1e\\x25\\x9a\\xf6\\xeb\\x51\\x4b\\x4c\\x1b\\xd4\\xa6\\x66\\xf5\\xb5\\xa3\\x5c\\x90\\xf3\\x5b\\x14\\x94\\x57\\xaf\\x29\\x44\\xdd\\x0a\\xa8\\xd9\\xb5\\x42\\x28\\x3a\\x7e\\x54\\x12\\xb7\\x75\\xe4\\x21\\xd2\\x12\\x6f\\x89\\xbe\\xbc\\x3c\\xa3\\x7f\\x73\\x07\\x16\\x21\\xf1\\x32\\x1e\\xee\\x52\\xe9\\x69\\x04\\x86\\xa3\\x3c\\xd7\\xff\\x9c\\x99\\x67\\xfb\\x65\\xee\\x4e\\x90\\x7b\\x6b\\x85\\x22\\x11\\x47\\x3d\\x21\\xe9\\xd9\\x1a\\x93\\x36\\x2a\\xc7\\x61\\x76\\x0e\\x8c\\x7b\\xbe\\xa4\\x86\\xc3\\xd6\\x05\\xf9\\xe1\\x1b\\x86\\x13\\x68\\x19\\xa7\\xab\\x3f\\x32\\xf1\\x3f\\xfc\\xa1\\x68\\x17\\xfe\\xd1\\x97\\xff\\x88\\x0b\\x4d\\x6d\\x9a\\x80\\x8f\\x7f\\x87\\x87\\x63\\xa0\\x45\\x72\\x8d\\xf7\\x2f\\xaa\\xa9\\x63\\xe4\\xcb\\x1c\\x09\\xcc\\x2b\\x2d\\xa9\\x20\\x28\\x0c\\x83\\x66\\xb7\\xd1\\x8b\\xf8\\x97\\x2d\\xf1\\x6c\\xc2\\x34\\x48\\xfb\\xe6\\xb2\\xe6\\xe1\\x6c\\xbb\\xf0\\x74\\x51\\x29\\x85\\x40\\x53\\x18\\x96\\x37\\xce\\x11\\x5d\\x23\\x98\\x43\\x3c\\x15\\xd6\\xf1\\x16\\xa2\\x05\\x33\\x48\\x24\\xaf\\x28\\x2f\\xa7\\x58\\x49\\x4c\\x47\\x86\\x8e\\xa8\\xf4\\xdf\\xad\\xc7\\x05\\xe8\\x61\\xaa\\xd2\\xeb\\x8e\\xf3\\xdb\\xbe\\xd2\\xa4\\x56\\x9e\\x15\\x83\\x4a\\x76\\x0c\\xce\\x0c\\xbb\\xc8\\x4b\\x28\\x9e\\x77\\x9b\\x98\\x83\\x46\\xb9\\x06\\x9c\\x74\\x4c\\x97\\xab\\x2b\\xf4\\x2b\\x08\\x6d\\x2f\\xb0\\xa4\\x11\\xf5\\xce\\x99\\xf0\\x81\\x9a\\x30\\x86\\xb4\\xfe\\x9d\\x96\\xc7\\xc9\\x90\\x8d\\xce\\x28\\xdf\\x1d\\xdd\\x30\\xf3\\x50\\x1d\\xda\\xf7\\x81\\x10\\x73\\x4f\\x9d\\xcd\\xfe\\xc3\"},\n{{0xba,0xd4,0x7c,0xd4,0xbd,0x89,0x84,0x90,0x67,0xcc,0xe1,0xe6,0x3c,0x3d,0x91,0xe9,0xb7,0x87,0xae,0xa8,0x58,0x4e,0xdb,0x07,0xf3,0x45,0x1e,0xf6,0x7e,0x7b,0xd7,0x9b,},{0xab,0x0c,0xe9,0xba,0x1d,0x29,0xbd,0xfb,0x85,0xa0,0xe6,0x6b,0x76,0xb5,0xe2,0xe0,0x5f,0xf7,0x32,0x56,0x9e,0x43,0x75,0xcc,0xd7,0x50,0x98,0xe9,0xe7,0x1d,0x17,0xbf,},{0xe5,0x72,0x4a,0x1d,0xd4,0x63,0xa9,0x7d,0x12,0x22,0xc5,0x18,0xc4,0x92,0x5d,0x32,0x22,0x02,0xd1,0x0f,0x04,0xcd,0x07,0x8e,0x77,0x1e,0x0f,0xb3,0x95,0x1d,0xbc,0x14,0x93,0xa2,0x34,0x46,0x07,0x54,0xc3,0xaa,0xe3,0xdf,0x93,0x00,0x8d,0xbb,0xfb,0x31,0x0c,0x99,0x59,0x2b,0xed,0xe7,0x35,0xa4,0xae,0xab,0x03,0x23,0xa1,0x21,0x0d,0x0e,},\"\\xb5\\xa6\\x1e\\x19\\xe4\\x86\\x3e\\x0b\\xb5\\xf3\\xfa\\xb6\\xc4\\x97\\x0d\\x87\\x85\\x96\\x89\\x55\\x21\\xfa\\x1e\\x7f\\x67\\x8c\\xaf\\xa2\\xde\\x53\\x32\\x2f\\xd4\\x58\\xa9\\x8a\\xa6\\xe3\\x58\\x05\\x42\\x9f\\x65\\x12\\x91\\xb9\\x5b\\xd9\\x95\\x0e\\x15\\x5f\\x3a\\xda\\x0b\\x60\\x91\\x59\\xa4\\xab\\xda\\x59\\x90\\xc0\\x4b\\xc2\\xe7\\x64\\x42\\x2f\\xb4\\x9e\\xf4\\x2f\\x12\\x52\\x9f\\xf6\\xf6\\xa8\\x20\\x29\\xff\\x01\\x85\\x66\\x2e\\x65\\x8f\\x83\\xc5\\x46\\xee\\xd0\\x9f\\x06\\xb5\\xa6\\x8e\\x85\\x7c\\xda\\xd0\\xeb\\x9e\\xc4\\xee\\xcb\\xfd\\x88\\xf3\\x4b\\xc8\\x09\\x90\\xf8\\x64\\x4a\\x9b\\xfd\\xde\\x1d\\x9f\\x3a\\x90\\xd5\\x57\\xa8\\xb8\\x28\\xd5\\xce\\x06\\xa6\\x4e\\x3b\\x23\\x85\\x82\\xbb\\x4c\\xbe\\xba\\x30\\xed\\xc4\\x9e\\x81\\x22\\xc5\\x5e\\x95\\xba\\xdc\\xf5\\x02\\xcc\\x56\\x78\\x69\\xc0\\x9e\\x9f\\x46\\xc6\\xff\\x3f\\x68\\x78\\x98\\x6b\\x1d\\xe0\\x0b\\x72\\xa1\\x85\\x80\\x46\\xfc\\xd3\\xa6\\xe9\\xcd\\xaf\\x5b\\x07\\x3c\\x56\\xf2\\x02\\x50\\x63\\xa2\\xd1\\x78\\xbd\\x4c\\x1e\\x8c\\xbc\\x1e\\x6e\\x67\\x1a\\xa9\\x7f\\xb2\\xcb\\x4c\\xc8\\xa6\\x2c\\x20\\xbe\\x41\\xc7\\x76\\x37\\x2c\\x8e\\x7b\\xe6\\x3b\\x48\\x2e\\x6c\\x63\\xfa\\x85\\xd7\\xcf\\xfb\\xc1\\xb2\\x82\\x0b\\xae\\x1f\\xc1\\x28\\x34\\x3a\\x1e\\x20\\xfc\\xf1\\xbc\\x35\\x02\\xee\\xe8\\x13\\x58\\xcc\\x9a\\x74\\xc7\\x2a\\xf6\\x35\\x30\\xf9\\x6a\\x25\\xa6\\x04\\x64\\x8f\\xf5\\x70\\xdf\\x1e\\xb8\\x9d\\x1f\\xdd\\xba\\xb2\\x86\\x79\\xba\\x2e\\x9b\\x41\\x97\\x7e\\x9a\\x9c\\x1c\\xae\\xcd\\xbf\\xc3\\x61\\xa1\\xdd\\x05\\x5e\\xc5\\x16\\x20\\xa9\\xbb\\xdb\\xba\\xf7\\x18\\xc9\\xcc\\x13\\x6d\\x20\\x07\\x71\\x03\\x99\\x53\\x6d\\x13\\x33\\x24\\x85\\xec\\x38\\x87\\x97\\x85\\xe0\\xc9\\xce\\x99\\x15\\xa8\\x02\\x51\\x37\\x39\\x90\\xa5\\x9b\\xce\\x44\\x03\\x26\\x03\\x1a\\xb1\\xb4\\x58\\xbf\\xa5\\xb8\\xa4\\x79\\x3d\\xa4\\xee\\x11\\xab\\x7a\\xf2\\x0d\\xe2\\xa1\\x18\\xc9\\xae\\x52\\x1a\\x41\\x7b\\x68\\x20\\x7f\\xc8\\x85\\xe1\\x09\\xd8\\x46\\x3e\\x9f\\x02\\x27\\x87\\xcc\\x73\\x0d\\xb0\\xb1\\xfa\\xae\\xd2\\x57\\xbe\\xd9\\x01\\x71\\x08\\x85\\xb7\\x4e\\x99\\x4f\\x54\\xf6\\xf2\\xae\\xb6\\x4f\\x0f\\x60\\xb5\\x9e\\xfb\\xf2\\xe3\\xbb\\x65\\x15\\x42\\x46\\x03\\xa1\\x13\\xc0\\xb8\\xa3\\x1b\\xa3\\xc1\\xe9\\xa9\\xb8\\x11\\x8c\\x87\\xec\\x69\\x49\\xb7\\x5f\\x49\\x62\\x7e\\xa7\\xb1\\x32\\x88\\x89\\x39\\x11\\x04\\xd4\\xf4\\xa3\\x89\\x2c\\xf0\\x0f\\x26\\xa7\\x3c\\xda\\x2a\\x40\\xf9\\xb7\\x15\\x7a\\xfc\\x40\\x66\\x7f\\x4a\\x04\\xf6\\x47\\xdb\\xf9\\x39\\x06\\xb8\\x4c\\x9a\\x35\\x16\\x4e\\x1b\\xc9\\x02\"},\n{{0xca,0xba,0x8e,0x05,0x33,0x11,0x3a,0x4b,0xe1,0x73,0x40,0x8b,0xa8,0x3c,0x0d,0xb7,0x42,0x60,0x80,0x2f,0x91,0x86,0xc3,0x91,0x40,0x26,0x55,0xac,0xde,0x60,0x15,0xcb,},{0x2d,0x7b,0xef,0x61,0x64,0xc2,0x79,0xfa,0x10,0x28,0xa9,0x78,0x8e,0x3e,0x8e,0xe8,0xac,0x15,0xed,0xcf,0x92,0xa5,0x85,0x50,0x62,0x95,0x23,0x10,0xb4,0x68,0x45,0x47,},{0xec,0x35,0xec,0x32,0xc8,0xa4,0x00,0x88,0x27,0xe1,0x78,0x49,0x2b,0x3b,0x8b,0xee,0x22,0xa4,0x95,0x4f,0xc6,0xb2,0x5f,0x4f,0x22,0x5d,0xd7,0xed,0x23,0x69,0x89,0x00,0xde,0x81,0x56,0x75,0x6a,0x8e,0xdc,0x35,0xc5,0x1d,0x10,0xf8,0x2b,0x83,0x0a,0x2a,0x65,0x96,0x76,0xea,0xc9,0x11,0xf9,0x60,0x24,0x47,0x66,0xe0,0xc3,0xc6,0x07,0x05,},\"\\x24\\x13\\xa3\\x2b\\xca\\x5c\\xe6\\xe2\\x30\\xe5\\x65\\xeb\\x85\\x84\\x93\\xd5\\xd0\\x4e\\x6d\\x2e\\x2a\\x7a\\xb1\\xf8\\x9a\\x3b\\x42\\x33\\x11\\x67\\x6b\\xfa\\x93\\xc6\\x7d\\xaa\\xfd\\x1c\\xfc\\x71\\x09\\xe0\\x40\\xba\\xc5\\x2c\\xbf\\xe0\\x7c\\x28\\x28\\x0b\\xb6\\xac\\xf6\\xe3\\xa3\\x10\\x73\\xda\\xb2\\x96\\x53\\x78\\xdd\\x77\\xf6\\x1f\\xe9\\x24\\x71\\x35\\xc1\\xa6\\x31\\xb7\\x9a\\xd6\\x68\\xc9\\xea\\x1c\\xd4\\x11\\x2d\\x8d\\x3a\\x06\\x4c\\xc2\\x1d\\xf3\\x2a\\xea\\xc7\\xdd\\x71\\x8b\\x09\\x1f\\xb6\\x91\\x5b\\x8b\\xc0\\x63\\xbb\\x58\\x15\\xc3\\x76\\xe0\\x14\\x76\\x31\\x2a\\x2e\\x54\\x33\\x41\\x7a\\x7a\\x93\\x15\\xd6\\x59\\x99\\xb0\\x2f\\xf4\\x64\\xa4\\x74\\xa5\\x97\\xe5\\x39\\x88\\x77\\x36\\x70\\xec\\xa4\\x6a\\x6e\\x26\\xcf\\x96\\xe9\\x48\\x8e\\x9e\\x63\\x44\\xbc\\x78\\x3d\\xdf\\xb5\\x35\\xe7\\x6b\\xb3\\xb9\\xa6\\x03\\xff\\x4c\\x59\\xc7\\xdb\\xe2\\xd8\\xb6\\x19\\x8d\\x5b\\x24\\x49\\x0b\\x4e\\xa9\\x6c\\x95\\x95\\x9f\\xfb\\xf3\\xd8\\x21\\x8e\\x76\\x0d\\xaf\\x20\\xe0\\x1e\\x2f\\x36\\xc8\\x4b\\xb0\\x97\\x11\\x5a\\xbd\\xde\\xe9\\x2b\\xed\\x82\\xd1\\x6b\\x15\\xa9\\xe1\\x92\\xe9\\x89\\x3a\\xc6\\x38\\x46\\x1d\\xf5\\x07\\x20\\x7b\\x0c\\xf5\\x95\\x88\\x4d\\x8a\\x99\\xfb\\x9c\\x70\\x45\\xf9\\xbf\\xf7\\xb7\\x3f\\x00\\xca\\x3f\\xd5\\x95\\xa5\\xce\\xc2\\x92\\xad\\xb4\\x58\\xbd\\x94\\x63\\xbe\\x12\\x04\\xd0\\x16\\x78\\xd2\\xf4\\x38\\x9b\\x87\\x20\\x11\\x5f\\xa5\\x97\\xc4\\x02\\xb4\\xff\\x69\\x4b\\x71\\xce\\x4f\\x3d\\x33\\x0d\\x5e\\x2f\\x3c\\x3a\\xd6\\xd9\\x6a\\x9b\\x34\\x39\\x23\\x0f\\xc5\\x3a\\x44\\x79\\x4c\\xda\\x59\\x55\\x57\\xc4\\x06\\xca\\x15\\x89\\xbc\\x7b\\xe8\\x1e\\x2d\\x79\\x63\\x60\\x33\\x25\\x3f\\xa7\\xbd\\xd6\\x00\\xc6\\x7f\\xc5\\x59\\x36\\xbd\\x96\\xce\\x04\\x28\\xc3\\xeb\\x97\\xba\\xd1\\xde\\x0a\\x5f\\xbb\\x9b\\x67\\x51\\x57\\xde\\x5f\\x18\\xbc\\x62\\xa7\\xc2\\x2c\\x94\\x83\\xe2\\x80\\x2e\\x67\\x9b\\x5b\\x8f\\x89\\xdb\\x0f\\xc3\\x7f\\x7c\\x71\\x50\\xad\\x5a\\xc8\\x72\\x2c\\xeb\\x99\\x9b\\x24\\x35\\xe6\\x99\\x72\\x17\\x09\\x23\\x36\\xef\\x1c\\x8a\\x22\\x92\\xda\\xb9\\xa4\\x6f\\xf8\\xa9\\xe1\\x0d\\x33\\x55\\x76\\x5c\\xac\\x9d\\x65\\x98\\x77\\x0f\\x4f\\x01\\xea\\x63\\x91\\x25\\xfd\\x03\\x16\\x09\\xdd\\x1a\\x50\\x7d\\x96\\x28\\x0c\\x7d\\x01\\xa3\\xee\\x98\\x7e\\x9b\\x21\\x0e\\xc8\\x74\\x4c\\xd4\\x8c\\x74\\xf8\\xaf\\xee\\x96\\x1e\\x8e\\xf2\\x21\\xf8\\x26\\xa1\\xfe\\x6e\\x7d\\xf0\\xcb\\x15\\xad\\x7c\\x7e\\xf4\\xa9\\x1f\\x9d\\x0f\\x4c\\x2e\\x1b\\xde\\xa6\\x35\\xd2\\x75\\xfa\\xc8\\xc4\\xbc\\x06\\x01\\xf4\\x90\\xdb\\xdb\\xc7\\x34\"},\n{{0x9b,0xf3,0xfb,0xc7,0x30,0x8b,0x46,0xf6,0x03,0x6b,0xad,0xe0,0xc3,0xca,0x19,0x9f,0xac,0x66,0x2b,0x07,0xf1,0x03,0xbf,0x75,0x18,0x1d,0x52,0xba,0x6a,0x58,0xbe,0x05,},{0x2f,0x6a,0xc6,0xfc,0x33,0xbc,0x06,0x0c,0x1d,0xc3,0xcb,0x9d,0x1a,0x2b,0x91,0x15,0x84,0x5a,0xdd,0xb1,0x6c,0x4b,0x84,0xbe,0x37,0xed,0x33,0xad,0xb3,0xb3,0xd3,0xa8,},{0x0c,0x31,0x36,0xe0,0x1f,0x9b,0xcd,0x99,0xe1,0x0d,0x3d,0x12,0x4b,0x0c,0xdb,0x07,0x72,0xbe,0xc1,0x8a,0x86,0x4b,0xe8,0x1b,0xd1,0xda,0xa4,0x4d,0x81,0x8c,0x3d,0x47,0x0d,0xfa,0xa8,0xab,0x6e,0x9a,0x76,0x1c,0xf0,0x3f,0x93,0xef,0x9c,0xc7,0x82,0x91,0x09,0x6e,0xd6,0xd1,0x0c,0x08,0xfa,0x2f,0xba,0x3b,0xac,0x04,0xdd,0xe2,0x0f,0x0c,},\"\\xd6\\x5e\\x36\\xa6\\xa3\\x81\\x95\\xec\\xb9\\x1d\\xe3\\xc8\\x48\\xb5\\x1f\\x63\\x92\\x45\\xfa\\x2b\\xab\\xa8\\xa6\\xf8\\x59\\x47\\x15\\x9d\\xec\\x0e\\xd3\\xfa\\xe8\\x0c\\x5a\\x0f\\x8c\\x66\\xff\\x24\\x79\\x3c\\x89\\xc0\\xc6\\x87\\x54\\x3b\\xc6\\x33\\x54\\x7a\\x1f\\x37\\xf7\\x30\\xd9\\x70\\x12\\xeb\\xbd\\xc7\\xac\\x33\\x9c\\x48\\x90\\xc0\\x85\\x6b\\xbf\\xe2\\xba\\x29\\xb2\\x5a\\x7a\\xa6\\xb0\\x89\\xc0\\x33\\xfe\\xcb\\x76\\xdb\\x62\\xdd\\x3c\\x00\\xf6\\x42\\x1b\\x9e\\x76\\xdd\\x0e\\xa3\\x66\\xeb\\x2d\\x4a\\x05\\x2e\\xe6\\xcc\\x73\\x6e\\x38\\x19\\x19\\x1d\\x5a\\xd7\\xa6\\x6d\\x2b\\xe0\\x42\\xcc\\x65\\x39\\xe5\\xf3\\x56\\x52\\xb1\\x55\\xa7\\x27\\xf3\\x88\\x8d\\x93\\xf9\\x3a\\x91\\x02\\x59\\x8f\\x75\\x38\\xa9\\xab\\x7c\\x77\\x7e\\xec\\x79\\x42\\x6a\\x60\\x75\\xd6\\xf3\\x8d\\x64\\xc4\\x85\\x52\\x0f\\x64\\x13\\xff\\x4d\\x35\\x8a\\x8a\\x9c\\xbd\\xab\\x01\\xad\\xf4\\xdb\\x02\\xad\\xae\\xa2\\x64\\x94\\xd1\\xf5\\xd6\\x17\\x63\\x7f\\x27\\x7f\\x8b\\x0e\\x6e\\x7e\\x61\\xe2\\xee\\xcc\\xdd\\x33\\x7d\\xe2\\xba\\xf0\\xca\\x26\\x4c\\x14\\xc8\\xcb\\x83\\x68\\x00\\x0b\\x9c\\x71\\x43\\x85\\xf4\\x13\\x73\\x7d\\x68\\x16\\xe2\\x12\\xca\\xe2\\xae\\xcf\\xff\\xc3\\x2f\\xd1\\x6d\\x46\\xc3\\xec\\xee\\x6a\\xb0\\x74\\xc0\\xd7\\x68\\xbd\\xfe\\x99\\xb8\\x6c\\xbb\\xc8\\xdf\\x9c\\x47\\xcd\\x58\\x6d\\x46\\x58\\x71\\x26\\x8d\\x4a\\x9d\\x1c\\x87\\x72\\x36\\xab\\x78\\xf8\\x85\\x9c\\x11\\x4e\\x25\\x1c\\xab\\xc4\\xbe\\x0f\\x8b\\xc2\\x5d\\x14\\x8c\\x5f\\x54\\x3e\\x29\\x07\\x45\\xd1\\x18\\x03\\xe4\\x9f\\x5b\\x53\\x19\\x3f\\xe3\\x99\\x69\\xc0\\x39\\xb3\\xf2\\x49\\xb3\\x2f\\x2b\\x85\\x98\\xb6\\xac\\xf4\\xed\\x64\\xd5\\x75\\x2b\\xb7\\x72\\xff\\x4e\\xe0\\x0c\\xe0\\xf8\\x5e\\xcb\\xb4\\xcf\\xc4\\xce\\x07\\xda\\xf2\\x80\\x98\\x68\\xc2\\x90\\x3b\\x78\\x1e\\x12\\xa2\\x74\\x10\\x5f\\x06\\x18\\x10\\x29\\xe4\\x7f\\x2b\\xfb\\x21\\xf4\\x94\\x80\\xaa\\x1e\\x44\\x47\\x15\\xc0\\xb9\\xff\\x07\\xea\\xd8\\x89\\x75\\xd9\\x35\\x85\\xd2\\xff\\x42\\x48\\x32\\xa9\\x78\\x3d\\x94\\x90\\x6a\\x60\\xf8\\x77\\xae\\x1c\\x85\\xff\\x15\\x31\\x7b\\xad\\xca\\x1e\\x61\\x31\\x74\\x33\\xc7\\xce\\x96\\x27\\x9b\\x67\\x8e\\xc9\\xd1\\x74\\xdd\\x08\\x70\\x08\\x0b\\x23\\x41\\x54\\xf6\\x26\\xa5\\x34\\x62\\xcf\\xd5\\x47\\x84\\x2e\\xab\\x87\\x05\\x60\\x5b\\x8e\\xe8\\x85\\x72\\x9e\\xe7\\x8d\\x18\\x33\\xaa\\x43\\xf5\\x5a\\xc2\\x27\\x31\\x98\\x9f\\xde\\xda\\x7d\\xc5\\xfa\\x9c\\x01\\x98\\x5f\\x26\\x61\\xe6\\xc7\\x32\\x6d\\x34\\x6e\\x6d\\xb2\\x7e\\x6f\\x92\\x1f\\xae\\x7c\\x93\\xa2\\x17\\x0e\\x10\\xdd\\x0c\\x46\\x0b\\xdc\"},\n{{0x64,0xe8,0x93,0x04,0xa3,0x35,0xe9,0x03,0xcb,0x36,0xc0,0xbd,0xf1,0xa6,0x41,0x2e,0xf3,0x68,0x46,0x80,0x06,0xb7,0x3d,0x3d,0x2d,0x61,0xcb,0x03,0x0c,0xc5,0xf8,0xd1,},{0xa1,0x80,0xef,0x3a,0x66,0x1c,0x3c,0x47,0x9d,0x5f,0x69,0x80,0x7c,0x90,0x27,0x48,0xe3,0x5e,0x7f,0x72,0x51,0x21,0xe3,0x7a,0x5d,0x91,0xb8,0xbe,0xc8,0x8d,0x83,0xa6,},{0x92,0xeb,0x44,0x54,0x81,0x40,0x01,0xec,0xfc,0x18,0x02,0x5d,0x64,0x21,0xf6,0x46,0x45,0xa5,0xbc,0xbb,0x5c,0xb8,0xfd,0x85,0xc1,0x4d,0x77,0x26,0x17,0xc5,0x03,0xe8,0xbe,0x7d,0x3b,0xcf,0x11,0x7f,0x5e,0x68,0x01,0xd1,0xc3,0xb9,0x6f,0x90,0x90,0xa6,0x6d,0xdc,0x67,0xf8,0xcf,0x8f,0xf0,0xf1,0xc1,0x25,0xb1,0x6b,0x15,0xe2,0xce,0x07,},\"\\x2f\\x51\\x07\\x4d\\x98\\x1b\\xda\\xfa\\xfb\\x02\\xa4\\x0f\\xe8\\x26\\xc4\\x5f\\x31\\x71\\xc1\\xb3\\x18\\x4d\\x8c\\x26\\x0b\\x82\\xb8\\x41\\x1f\\xc6\\x25\\xcb\\x02\\xcc\\xfe\\x75\\x5d\\xc2\\x9d\\xc7\\x89\\x5b\\xf7\\x59\\xe6\\x1b\\x24\\x50\\xda\\x1a\\x65\\x6a\\x38\\xd4\\xf7\\x0d\\x2e\\xe7\\x48\\xc5\\x18\\xc6\\x42\\x03\\x06\\xe5\\xf0\\x1e\\xc7\\xa0\\xff\\xe0\\xe9\\xdc\\xeb\\x93\\xf6\\xc0\\x77\\xb1\\x26\\x62\\x88\\x15\\x84\\xf9\\x8c\\xe6\\xab\\x94\\x5f\\x87\\xfc\\x6d\\x12\\x3c\\x45\\xd6\\xcd\\xfd\\x82\\x37\\xa1\\xce\\x36\\x35\\xb6\\x23\\xa7\\x9d\\x02\\x0d\\xf4\\x4c\\x74\\xb8\\x9a\\xc1\\x4a\\x32\\x1f\\xbf\\x33\\xa8\\xc0\\xa2\\x55\\x9f\\xea\\x1c\\x2b\\x15\\x60\\x76\\xb8\\x13\\x90\\x8f\\x84\\x2e\\xbe\\x4c\\x2b\\x94\\x90\\x89\\xe5\\x2b\\x1a\\xe4\\x0d\\xc6\\xe4\\xb2\\xab\\xbc\\x43\\x9a\\x0b\\xf7\\x23\\x69\\x67\\x9a\\xab\\x6f\\x4c\\x00\\x01\\x8b\\xe1\\x47\\xf7\\xc0\\xa6\\x7b\\x96\\x79\\xee\\x88\\xa5\\x38\\x19\\xc4\\x9f\\x7b\\x67\\x5e\\x30\\xa8\\xb5\\xaf\\x39\\x66\\x1e\\xe8\\xdb\\x21\\x01\\x04\\x11\\x29\\x49\\x68\\xf8\\x8e\\x5d\\x60\\x4d\\x0d\\x88\\xd7\\x6a\\x7e\\x48\\x64\\xfa\\xd3\\xa5\\x6f\\x5f\\x62\\x4b\\xa1\\xb3\\x4e\\xa9\\xcb\\x72\\x08\\x50\\xaa\\xd3\\xbd\\x4f\\x0a\\x88\\x2a\\x7d\\x25\\xfb\\xec\\x2b\\xb7\\xca\\x86\\xda\\x61\\x6d\\xa9\\x6c\\x15\\x62\\xc6\\xd6\\xa1\\xab\\xcc\\x64\\x1e\\x1b\\x58\\xb2\\xc1\\x78\\xe1\\xc3\\xbc\\x8a\\x3b\\x36\\xec\\x9e\\x14\\x4d\\xd2\\xe7\\x5b\\x0b\\xc8\\xc0\\x8c\\xcb\\x0d\\x6e\\x34\\x27\\xb0\\x32\\x2b\\x3d\\x6a\\xb9\\x3f\\x3f\\x60\\xb9\\xcc\\x5b\\x61\\xda\\xd0\\x23\\x85\\xa1\\x49\\x49\\xf9\\xb8\\x7a\\x8e\\x3a\\xf1\\xe0\\xe0\\xfa\\xb7\\xa9\\xa9\\x28\\xc7\\x53\\xfc\\x61\\x10\\x44\\x4a\\xf7\\xcc\\xaf\\x80\\x27\\xed\\x64\\x1b\\x9e\\xd8\\x7f\\xa5\\xd8\\xe1\\xf7\\x6c\\xae\\x46\\x5d\\x57\\xa7\\x0d\\xad\\x9e\\xbf\\xdd\\x3c\\xe7\\x57\\x6a\\xc4\\xde\\x89\\xd9\\x8f\\x42\\xe2\\x82\\xad\\x87\\xad\\x6a\\x50\\x42\\x57\\x7c\\xbb\\xbc\\x4d\\x95\\x1e\\x2a\\x86\\x76\\xfe\\xdc\\x8c\\xb1\\xb1\\xbd\\xf7\\x6c\\x3a\\x38\\x84\\x63\\x85\\xa8\\x5a\\xa2\\x47\\x06\\xc2\\x0a\\x8b\\x38\\x46\\x5f\\xe2\\xae\\x0e\\x41\\xf7\\x8e\\x61\\x4b\\x8e\\x96\\x42\\xfe\\x24\\x71\\xa9\\x01\\x57\\x47\\xdb\\x97\\x6e\\x0c\\x78\\x48\\xc2\\x3f\\xf3\\xf4\\x17\\xcb\\x05\\xa8\\xd5\\xef\\x40\\x13\\x0a\\xdf\\x85\\x5c\\x99\\x8a\\x62\\x10\\x4d\\x7e\\x2f\\xb7\\xc0\\xf9\\xaa\\x2a\\x49\\x60\\x75\\x62\\x3c\\xed\\x2c\\x0f\\x7e\\xec\\x10\\x14\\x7f\\xf9\\x60\\x8a\\x8a\\x04\\x2e\\xf9\\x81\\x17\\x45\\x9b\\x93\\x83\\x7f\\xd1\\xb8\\xd5\\xef\\x03\\x97\\x8e\\xad\\xa7\\x4c\\xac\"},\n{{0x6f,0x63,0x43,0x87,0xca,0x2c,0x0c,0xb1,0x67,0xa7,0x40,0xd6,0xaf,0xd8,0x9e,0x2a,0x28,0xf5,0x30,0x71,0x84,0xe8,0x1c,0xba,0x3c,0x03,0x70,0x46,0xa5,0xed,0xe2,0x3c,},{0x01,0x1f,0x2a,0x9a,0x11,0x1c,0x38,0xf3,0x49,0x0c,0xad,0x16,0x85,0xbe,0x78,0xec,0xee,0xdc,0x6f,0xac,0x4a,0x32,0x21,0x30,0x1c,0x69,0xc8,0x4b,0x1e,0xc7,0xb3,0xa7,},{0xfd,0x17,0xc6,0x18,0xcd,0xbb,0x5d,0x45,0x9e,0xa2,0xac,0xa8,0x86,0xf0,0x51,0x2c,0x62,0x32,0x51,0x28,0x4a,0xae,0x3a,0x83,0xeb,0x5d,0x7f,0x60,0xda,0x1d,0x9b,0x2b,0xa0,0x83,0xc4,0x55,0xa5,0xe2,0x58,0x3a,0x3c,0xba,0x73,0x6e,0x7b,0x96,0x1b,0xa1,0x9c,0x1c,0xc8,0xdd,0x90,0x74,0x5d,0xa8,0x2a,0x15,0xdf,0xc6,0x62,0xe8,0xe1,0x0d,},\"\\x86\\x5c\\x20\\xa9\\x4a\\xc3\\xf2\\xe3\\xbd\\x5c\\xb8\\x5b\\xec\\x9d\\x33\\x72\\x66\\x71\\xfe\\x01\\xf9\\xc5\\x37\\x01\\x7d\\x59\\xc8\\xd5\\x10\\x6e\\x43\\x36\\x0b\\xf7\\x6f\\xc0\\x61\\x86\\x70\\x59\\x80\\xc8\\xa8\\x7b\\xa3\\x63\\x3a\\x4a\\x17\\x04\\x26\\xec\\xc0\\xde\\xfb\\x6d\\xb2\\x67\\x0f\\x5f\\x59\\x25\\x33\\x77\\x4c\\xda\\x50\\x05\\x2a\\xe5\\x97\\xd4\\x8d\\xea\\xcc\\x26\\x37\\x06\\x3b\\xfd\\x51\\x9f\\x2e\\x79\\xba\\xc8\\x17\\x75\\xbe\\xcc\\xb1\\xab\\x2f\\x5b\\x39\\x71\\x2e\\x2e\\x82\\x94\\x69\\xb7\\x5a\\x2d\\x2d\\xbd\\x08\\xaa\\x6d\\x24\\x72\\x34\\x04\\xb2\\x5e\\xb9\\x48\\xa4\\x83\\x4c\\x55\\x24\\x6c\\x80\\x79\\xa8\\x2e\\xc6\\x43\\x54\\xe8\\xc2\\x38\\x8f\\x8c\\x5a\\x61\\x6b\\x3c\\xdc\\x37\\x1e\\x62\\x63\\xfa\\xbc\\x9f\\x60\\x99\\x21\\x9e\\x86\\x15\\x85\\xfe\\x82\\xa6\\x7d\\x61\\x0d\\xd1\\xeb\\x5c\\x81\\xc9\\x6b\\x5c\\xb3\\x54\\xa6\\x89\\xfd\\x8a\\xac\\x8d\\xb7\\x6c\\x43\\x3f\\x0c\\xb0\\xb3\\x1c\\xf1\\xd8\\x55\\xb6\\xa3\\x0a\\x3d\\x2a\\x21\\x2e\\x9b\\x4f\\x7d\\x7a\\xfe\\x61\\x99\\x51\\xf9\\x8d\\x2f\\x1b\\xa2\\xc1\\x01\\x08\\x5b\\xa8\\x1f\\x49\\xb3\\x60\\x37\\xcd\\x64\\x57\\xa7\\xea\\xa8\\xf4\\xf3\\xbe\\xdf\\x68\\xd0\\x9f\\xc9\\xfa\\x25\\xa9\\xd7\\x54\\xdb\\x65\\x36\\x02\\x85\\x41\\x2d\\x1a\\x6d\\xa5\\x37\\x88\\x90\\x5f\\xcf\\x4e\\xfa\\x8a\\x80\\xcd\\x86\\xca\\x48\\xb8\\x45\\x63\\x3d\\x8c\\x31\\xc2\\xae\\x06\\xf1\\x6c\\x4c\\x6b\\xbb\\xe9\\xcd\\x1a\\xfb\\x59\\xe1\\x01\\xbe\\x50\\xe0\\x35\\x35\\xdd\\x8a\\x65\\xe4\\x5b\\xba\\x46\\xd4\\x5c\\xb1\\x4b\\xad\\xfc\\x8e\\x93\\xab\\x52\\x67\\xf4\\xe4\\x92\\xab\\x1f\\x9a\\x95\\xe6\\x1f\\xca\\xb8\\x1c\\xbf\\x2b\\xd8\\x67\\xa3\\xec\\x7b\\x4b\\xaa\\x18\\x9a\\x0f\\x08\\x56\\x70\\x75\\x59\\x61\\x29\\xdc\\xf9\\xff\\x1c\\x50\\x2d\\x32\\x79\\xe8\\xaa\\x6c\\xe5\\x6e\\xaf\\x13\\x45\\x82\\xa9\\xe4\\x30\\xa5\\xaa\\x8c\\xa1\\x0c\\x3d\\xa8\\xbc\\x79\\x3d\\x02\\x56\\xad\\x19\\xae\\xa7\\x14\\x9f\\x0e\\xa7\\xea\\x95\\xfa\\xcf\\xac\\x1c\\x5c\\xfd\\x29\\xd7\\xa3\\xfe\\x1a\\x41\\x79\\x75\\x73\\x9e\\x14\\xda\\x8e\\xdc\\x81\\x99\\x00\\x47\\x2c\\xa8\\xc6\\x97\\x16\\x32\\x8e\\x8a\\x29\\x9f\\x97\\x4e\\xdf\\xf7\\x41\\xaa\\xbc\\x1c\\x07\\x4a\\x76\\x1b\\x3e\\xc8\\x76\\x1d\\xda\\x2e\\x7e\\xed\\x7a\\xf3\\x3e\\xf0\\x04\\x09\\x84\\x9d\\x41\\x54\\x97\\xc5\\xed\\x5d\\xfa\\xa2\\x25\\x9a\\x31\\xd0\\x76\\x39\\x81\\x70\\xb2\\xd9\\xd2\\x10\\x20\\x8b\\x4a\\x4c\\x7d\\xb8\\xc6\\x26\\xd1\\xc5\\x33\\x56\\x2a\\x1f\\x95\\x48\\x9f\\x98\\x19\\xe4\\x98\\x5f\\xc4\\xe1\\xd1\\xa7\\x07\\xbe\\x5e\\x82\\xb0\\x05\\x48\\x1d\\x86\\x37\\x7f\\x42\\x4e\"},\n{{0x4b,0x2e,0x1a,0xe6,0x0f,0xa5,0xd3,0x83,0xba,0xba,0x54,0xed,0xc1,0x68,0xb9,0xb0,0x5e,0x0d,0x05,0xee,0x9c,0x18,0x13,0x21,0xdb,0xfd,0xdd,0x19,0x83,0x95,0x91,0x54,},{0x36,0xc0,0x20,0xb1,0x85,0x52,0x34,0x56,0x19,0xef,0x88,0x37,0xeb,0x8d,0x54,0x94,0x84,0x0e,0x85,0xf4,0x68,0x09,0x34,0x3b,0x4d,0x6f,0x40,0x61,0x25,0xda,0x55,0x7d,},{0x22,0x20,0x11,0x9e,0x83,0xd6,0x9a,0x6a,0x3e,0xed,0x95,0xfa,0x16,0x6d,0x1d,0x11,0x28,0xa3,0xf2,0x32,0xca,0x1b,0x78,0xbc,0x94,0xb4,0xd4,0x76,0xc4,0x77,0x94,0x43,0x61,0x4b,0x87,0x72,0xaa,0x22,0x32,0xcb,0x07,0x20,0xa0,0x55,0xeb,0x71,0xd8,0x40,0x7f,0x3a,0xb1,0x9b,0xaa,0x1d,0x96,0x2c,0x05,0x2c,0x84,0xc0,0xbd,0x58,0x96,0x08,},\"\\xfa\\xb9\\x8b\\x2b\\xbf\\x86\\xae\\xb0\\x50\\x86\\x81\\x2a\\x4b\\x00\\x49\\xa1\\x04\\x2a\\xbb\\x76\\xdf\\x9c\\xd2\\x90\\x87\\x55\\x70\\x63\\x03\\xef\\xed\\xb1\\xad\\x21\\xe8\\xbc\\x8d\\x75\\x62\\x34\\x9e\\x1e\\x98\\xce\\x0d\\x75\\x2f\\x4b\\x3d\\x99\\xe6\\x77\\x36\\x8b\\xd0\\x8c\\x78\\xfe\\x74\\x25\\xec\\x3b\\x56\\x0e\\x38\\x3b\\xd4\\x2a\\xf6\\x49\\x98\\x86\\xc3\\x5a\\xdd\\x80\\xa5\\x82\\x8b\\x61\\xd6\\x64\\x4d\\x7d\\xc4\\x43\\xba\\x2c\\x06\\xf9\\xba\\xd2\\xec\\xcb\\x98\\x3d\\x24\\x45\\x8f\\x6a\\xda\\x1b\\x10\\xbb\\x5b\\x77\\x17\\x2c\\x5c\\xdd\\x56\\xd2\\x73\\xd1\\xe4\\x10\\x10\\xb2\\x5c\\xf4\\x8a\\x7d\\x58\\xd7\\x25\\x57\\x02\\xac\\x12\\xf2\\xa6\\xfe\\x29\\x18\\x46\\x63\\x95\\xf4\\x60\\xd1\\x52\\x36\\xd0\\x35\\xae\\x94\\x10\\xca\\x86\\xc4\\x60\\x51\\x28\\x29\\x9f\\xaa\\xf0\\x90\\x15\\xf1\\xad\\xee\\x77\\x68\\xee\\x1a\\x8f\\x8c\\xa0\\x6d\\x10\\xdd\\x7f\\x95\\xc4\\x6f\\xa1\\x02\\x53\\x06\\x5f\\x9d\\x6f\\x90\\x29\\x59\\x08\\x80\\x9f\\xd7\\x79\\x57\\x1b\\xe2\\x9e\\x0a\\xe6\\x6e\\x0b\\xcb\\xde\\xb7\\x91\\x3d\\x2b\\xbb\\x76\\xac\\x30\\x2f\\x34\\x52\\xc5\\x5e\\xf1\\x99\\xa4\\x8e\\xce\\xb0\\xe3\\x59\\x6c\\x7b\\x4c\\x03\\x86\\xda\\xe7\\x10\\x1e\\xa2\\x44\\xa3\\x3c\\x4c\\xdc\\x83\\x06\\x72\\xdf\\x83\\x65\\x5b\\x35\\x33\\x80\\x52\\x30\\x7b\\x94\\xd2\\x23\\xca\\xb1\\xaf\\x69\\xe0\\x7f\\x78\\xe5\\x8c\\xbb\\x0c\\xb3\\xc5\\x35\\x1e\\x3a\\x6b\\x0c\\x4a\\x92\\x7f\\x75\\x62\\xc5\\x98\\xd2\\xd3\\xdf\\x90\\x56\\x9f\\x61\\xdb\\x1a\\x3c\\xb0\\x14\\x0b\\x56\\xea\\x02\\xcf\\x77\\x45\\xfb\\xee\\xc2\\x02\\x86\\x73\\xd6\\x7f\\x1e\\xc5\\xf7\\xda\\xf9\\x71\\x5f\\x75\\x4a\\x9d\\x8e\\xd4\\x6a\\x7a\\x63\\xef\\x72\\x2e\\xe0\\xd5\\x89\\x93\\x31\\xb6\\x3c\\x97\\x4f\\xa8\\x80\\x42\\x94\\x35\\x76\\x7f\\x96\\x25\\x4e\\xf4\\x6c\\x99\\x68\\xf3\\xfe\\xda\\xaf\\xea\\xf3\\xe8\\xf4\\x56\\x34\\xb5\\x4f\\x5e\\x0a\\x5f\\xc2\\xd2\\x37\\x3a\\xb9\\xe9\\x8d\\x9a\\xcf\\xe3\\x69\\x7e\\x64\\x2a\\x18\\xe0\\xdf\\xd9\\xfb\\xc2\\xf0\\x94\\x86\\x6d\\x40\\x1f\\x0a\\x4c\\xa2\\xa4\\x56\\xed\\xf6\\xa1\\xa7\\x7b\\x9c\\x29\\x6c\\x39\\x22\\x06\\x7e\\xb3\\xd5\\xa5\\xca\\x0a\\x77\\xf4\\x30\\xe4\\xc8\\x61\\x1d\\x8f\\x05\\xa1\\xba\\xac\\x16\\x35\\xef\\x7b\\xa8\\x3d\\xfc\\x69\\xd3\\x01\\x94\\x98\\x56\\xbe\\x4d\\x2c\\x8a\\xb6\\x1d\\xe2\\x9c\\xf3\\x92\\x50\\xc5\\x79\\x4c\\xbf\\x57\\x50\\xcd\\xa9\\x5d\\x04\\x68\\xaf\\xa2\\xb7\\xf2\\x3d\\xba\\x4e\\xf5\\xf5\\x29\\x5a\\x3b\\xf4\\x14\\x00\\x18\\xb7\\xed\\x06\\x18\\x84\\x44\\x4f\\x5b\\xb1\\xb7\\xd2\\x39\\x31\\x2d\\xd7\\x39\\x99\\x95\\x36\\xc6\\x84\\x45\\x6e\\xa0\\x6b\"},\n{{0xb2,0x16,0xce,0xbf,0x87,0x80,0x24,0xc2,0x0d,0xfc,0x86,0xce,0x4b,0x37,0xbd,0xc4,0x7a,0xa2,0x8f,0x29,0x20,0x3b,0x5b,0x44,0x92,0x50,0x65,0xd9,0x93,0xa2,0x59,0xfe,},{0xc3,0x6e,0xdb,0xb6,0x25,0x4a,0x91,0x3f,0x08,0xfe,0x25,0x9e,0x23,0x87,0x80,0x63,0x8f,0x72,0xec,0x0b,0x30,0x07,0x26,0x4b,0xcc,0x60,0xa9,0xe8,0x1e,0xe9,0x29,0x8f,},{0xb7,0x38,0x9e,0xe7,0x8d,0xd9,0x76,0x3f,0x9d,0x28,0x92,0x91,0x2e,0xdc,0xbe,0x3e,0x8a,0x23,0x6b,0x8b,0xdc,0x25,0xf4,0x4b,0x9c,0xfd,0xc8,0xc4,0x7c,0xd5,0x81,0x68,0xab,0x56,0xeb,0x04,0x02,0xa5,0xbd,0x75,0x2a,0xc8,0xf4,0x97,0x8d,0x2e,0xa2,0xb6,0x5d,0x2f,0xa8,0x52,0x65,0x96,0x6b,0x9f,0x57,0x22,0x7e,0xf4,0xa5,0x9a,0xe0,0x09,},\"\\x9c\\x87\\x17\\xcc\\x86\\xfe\\x02\\x48\\x0b\\xfd\\x9e\\x92\\x2b\\xd7\\x6b\\xff\\xee\\x21\\x70\\xc4\\xcb\\x1b\\x13\\xdf\\x83\\x4a\\xc0\\x1d\\x45\\x00\\x60\\x86\\x29\\x7f\\x1b\\x8a\\x26\\xf2\\xba\\x67\\x4d\\x33\\xe1\\xd1\\x62\\xf1\\x93\\x67\\xfe\\xba\\x97\\x35\\x2b\\x7d\\xf2\\xe7\\x5b\\x30\\x9d\\x4b\\x6f\\x8b\\x07\\xcc\\x0e\\xb6\\x77\\x7e\\x81\\xe2\\x68\\xe0\\x2d\\x07\\xf2\\xa0\\x8f\\x8f\\x39\\xd5\\xa8\\x32\\x0b\\xfc\\x01\\xfc\\x8c\\x92\\x27\\xd2\\xcf\\x05\\xe1\\x28\\x91\\xff\\x4d\\xe8\\x85\\xa1\\xc9\\x33\\x71\\xa0\\x91\\x0b\\xa5\\x33\\x92\\xaf\\xf9\\xba\\x2e\\xed\\x9a\\x20\\x55\\x97\\x7e\\xc4\\x15\\x7b\\xd6\\x5b\\x34\\xdf\\x79\\x37\\x2f\\x4d\\x50\\xed\\xbc\\x48\\x92\\x43\\x53\\xcf\\xa1\\x69\\x23\\x19\\xd8\\x8a\\x7a\\x5b\\xb7\\x26\\x25\\x4c\\x20\\x92\\x91\\xe9\\xb1\\xd2\\xc1\\xa6\\xc8\\x23\\x63\\x98\\x10\\x9c\\x59\\xed\\x42\\xa0\\xac\\x9e\\x76\\x33\\xc5\\x20\\x73\\x4e\\xcc\\xfe\\xa4\\xfe\\xa9\\x5a\\x47\\xa8\\xf0\\xa0\\x68\\xb4\\x27\\x50\\x00\\x43\\x9c\\xc9\\x7c\\x57\\x87\\x1e\\x10\\x5c\\xc0\\x79\\x0e\\x9d\\xcc\\x9c\\x25\\xd5\\xaf\\x70\\x63\\xff\\xd0\\x5c\\x4f\\x37\\x80\\xe7\\xbc\\xa4\\xc4\\x56\\xd0\\x17\\x0d\\xa7\\x09\\xfc\\x6c\\xb3\\xfa\\xa7\\x2b\\xdc\\xf5\\x62\\x90\\x8a\\xe9\\x34\\x0a\\xef\\x4d\\x0c\\x8b\\x91\\xf0\\xfb\\xcc\\xbc\\xf1\\xcd\\x89\\x8b\\x1c\\x71\\x6f\\x4f\\x14\\x74\\xc3\\xaa\\x31\\x62\\x42\\xab\\xdf\\x63\\x68\\xe5\\x7a\\x24\\x7f\\xf2\\xfd\\x5c\\xe2\\x3d\\x18\\x7f\\x69\\x4f\\x11\\xe3\\x8d\\xfb\\xfb\\xc3\\xd9\\xdb\\x20\\x90\\x3b\\x4e\\xbb\\x44\\x9b\\x90\\x49\\xee\\x02\\x0f\\x6e\\x2f\\x50\\x8e\\x8b\\x2b\\x16\\x5b\\xad\\x74\\x64\\xdb\\xdd\\x17\\x8c\\xbd\\x42\\x32\\x33\\x76\\x5d\\x37\\x1e\\x7a\\xe1\\xc3\\xe8\\x78\\xcd\\xb5\\xb8\\x24\\xb2\\x0c\\xb3\\x09\\x86\\x7c\\x0e\\x47\\x3c\\x06\\x7e\\x67\\x44\\x00\\x85\\x27\\xb6\\xbc\\x07\\x6d\\x07\\x7f\\x48\\x67\\x62\\x2a\\xee\\xd1\\xc2\\x53\\xdb\\xde\\x7c\\x6a\\x76\\xc7\\x01\\x59\\x62\\xfb\\x73\\x39\\x16\\x98\\x60\\x0b\\xb3\\x18\\xff\\xa7\\xb0\\x13\\x6e\\xe4\\xcc\\xb0\\x7d\\xaa\\xf0\\x1f\\x40\\xff\\x9c\\x19\\x4f\\x98\\x68\\x1f\\x9f\\xae\\xf8\\xb6\\xf9\\xe9\\x9f\\x95\\xdf\\x00\\x80\\xda\\x89\\x66\\xa8\\xba\\x7a\\x94\\x74\\xc5\\x37\\xb9\\x2d\\xf9\\x79\\x9e\\x2f\\xd1\\x6f\\x78\\x8d\\xad\\x7a\\x7b\\xcc\\x74\\x52\\x26\\xe1\\xe6\\x37\\x1f\\x52\\xeb\\xcd\\xbd\\x14\\x40\\x44\\xdd\\xfe\\x63\\x2d\\xfc\\x0a\\x43\\xd3\\xa4\\x50\\x92\\x31\\x70\\xeb\\xc7\\xae\\x21\\x9e\\x50\\xe0\\x78\\xa5\\x11\\xbc\\x12\\xef\\x14\\xcd\\x14\\xb5\\x30\\x9f\\x38\\xab\\xd6\\x5d\\xb2\\xb2\\xa7\\xaf\\x22\\x43\\xb2\\x29\\xc9\\xfd\\x2e\"},\n{{0xaf,0xce,0xce,0xa9,0x24,0x39,0xe4,0x4a,0x43,0xed,0x61,0xb6,0x73,0x04,0x3d,0xcb,0xc4,0xe3,0x60,0xf2,0xf3,0x0c,0xd0,0x78,0x96,0xcd,0xa2,0x0c,0xb9,0x88,0xd4,0xe3,},{0xd2,0x31,0xf6,0x92,0x35,0xa2,0xe3,0xa1,0xdd,0x5f,0x6c,0x2a,0x9a,0xaf,0x20,0xc0,0x34,0x54,0xb9,0xa2,0x9f,0x4e,0x3a,0x29,0xab,0x94,0x68,0x9d,0x0d,0x72,0x3e,0x50,},{0xa6,0x55,0x45,0xcf,0x3d,0xf4,0x56,0xb2,0x8d,0x83,0xa6,0xd9,0x4c,0x03,0x6a,0x19,0xd0,0xd2,0x9f,0xb0,0x65,0xed,0xc2,0x7e,0x5e,0x93,0xa1,0xf4,0x02,0x79,0x89,0x7e,0x1c,0x6f,0x25,0x95,0x9a,0x72,0x5a,0xba,0xbc,0x87,0xcf,0x2a,0xe7,0x27,0xf3,0x46,0x7b,0x79,0x57,0x0e,0x90,0x27,0x11,0x91,0x71,0x91,0xd9,0xcb,0x0d,0x2d,0x66,0x0c,},\"\\x0b\\x05\\xf8\\x9e\\xbb\\x33\\x97\\x94\\x76\\x87\\xaf\\xbe\\xf0\\xed\\xe8\\x7c\\xf3\\x81\\x06\\x76\\x27\\x70\\x37\\x52\\x1d\\x95\\x2a\\x3b\\xbb\\xbd\\xc8\\x56\\x59\\x88\\xa0\\x95\\xd8\\xd4\\xf6\\xf5\\x9b\\xe5\\x72\\xd3\\xd8\\x21\\xdd\\x78\\x99\\x77\\xef\\x77\\xa2\\xfd\\x71\\x10\\xce\\xee\\xd9\\xf3\\x75\\x6e\\xd8\\xe1\\x88\\x26\\x7b\\x97\\xa3\\x0e\\xf8\\x95\\x7c\\x78\\xae\\xa3\\xa2\\x96\\x3d\\xec\\xa6\\x18\\x60\\x54\\x5e\\x0c\\x40\\x82\\x48\\x81\\xeb\\xb1\\xdb\\x10\\xf6\\x07\\xe1\\x0d\\xdb\\xdd\\xce\\x40\\x0e\\xa2\\x36\\xba\\x47\\x45\\xaa\\x99\\xa0\\x56\\x41\\x97\\x67\\x66\\x78\\x9e\\xd0\\xda\\x7d\\xb5\\x5f\\xda\\xb4\\x59\\xeb\\xd4\\xb4\\x41\\xa6\\x28\\x2f\\x7c\\xfd\\x5a\\x20\\xea\\x06\\xef\\xfa\\x33\\x59\\x55\\xe5\\xfd\\x29\\x18\\x16\\x71\\xbc\\x92\\xc0\\x00\\x52\\xf7\\xf7\\x5c\\x39\\x27\\x7c\\x9a\\x43\\xb7\\x87\\xac\\x9f\\xb1\\x51\\x6e\\x99\\x62\\x32\\xa5\\x09\\x77\\x4d\\x1d\\xc2\\x1d\\x8c\\x05\\x13\\xf7\\x84\\x4b\\x0a\\x5b\\x5f\\x18\\x95\\x75\\x81\\xf9\\x90\\x44\\xa1\\x42\\x23\\xcc\\xda\\x8a\\x28\\x4d\\xe1\\x2f\\xd4\\x24\\x26\\x5f\\xe5\\x7b\\x27\\x02\\x15\\xf8\\xfa\\x9f\\xf2\\xbe\\xa5\\x17\\x93\\x4e\\x48\\x00\\xa4\\x7d\\x34\\x6f\\xb6\\xc3\\x61\\xcf\\xba\\xbe\\xff\\xab\\xd9\\xc4\\x16\\x4f\\x45\\x15\\x6e\\x24\\x5c\\x97\\x7e\\xdb\\x47\\x36\\x42\\xc3\\x94\\x0b\\xe5\\xad\\x6f\\xd1\\xa7\\x11\\x9a\\x7b\\x18\\xe9\\x8d\\x6d\\xc8\\x43\\xe0\\xd2\\x54\\xc9\\x3d\\x01\\x46\\xd1\\x8e\\x5c\\x62\\xed\\xe1\\x49\\x0f\\x89\\xa6\\x05\\xeb\\x45\\x4f\\x97\\x47\\x78\\xcf\\xae\\x20\\x93\\x2e\\x95\\x47\\x7b\\xd0\\x3b\\xcd\\xb9\\x7d\\x5b\\xcb\\x76\\x33\\x59\\x42\\xe9\\x2e\\xe6\\x68\\xf2\\x31\\xe6\\x9c\\x57\\x0a\\xc5\\x44\\x6d\\x0f\\x77\\x40\\x66\\x73\\x7f\\xdf\\x49\\xf1\\x0c\\xeb\\x1b\\x52\\xd6\\xd8\\xa4\\x63\\x98\\x46\\xa3\\x37\\x3a\\x7c\\x6f\\x3b\\x4b\\x31\\x59\\xfe\\x2e\\x7a\\xf7\\xee\\xe2\\xf0\\xdf\\x17\\x2d\\x94\\xd2\\x55\\xd0\\x17\\x65\\x1d\\xa3\\x00\\x90\\x05\\xe5\\xea\\xc3\\x17\\x6c\\x09\\x38\\x9e\\xe4\\x0d\\x70\\x38\\x3b\\xd3\\x71\\x17\\xec\\xa0\\x83\\x59\\x8a\\x18\\x01\\xf5\\x92\\xd0\\x57\\x18\\x6e\\x56\\x8e\\x24\\x7c\\x25\\x2b\\xe4\\xb1\\x4f\\x72\\x3a\\xb7\\xdd\\xb9\\x7a\\xe9\\x76\\x8c\\x26\\x82\\xfd\\x63\\xac\\xc3\\x00\\x77\\x9f\\xe0\\x4e\\x2b\\x88\\x87\\x47\\x51\\x34\\x6c\\x9e\\x0f\\x97\\xa2\\xa2\\x16\\x77\\x2f\\xf9\\x62\\x5c\\x33\\xbd\\x7e\\x29\\xfe\\xd8\\x00\\x3a\\x08\\xdb\\xd3\\x3b\\x5d\\x17\\x89\\x9c\\x94\\x3c\\x25\\xe9\\x5a\\xd7\\x54\\xfb\\x63\\x2e\\x04\\x7c\\x11\\x2a\\xf7\\xf7\\xce\\xba\\x72\\x36\\x2e\\x1a\\x3d\\xdd\\x29\\x35\\xaa\\xf7\\xf8\\x18\\xa2\\x7c\"},\n{{0xb8,0x34,0xc6,0xe0,0xfa,0xcb,0xff,0x58,0x0d,0xd3,0xb2,0x37,0x53,0x95,0x9a,0x4c,0x21,0x54,0xc2,0x19,0x52,0x1b,0x3d,0x27,0x03,0x5d,0x07,0x1f,0x65,0x99,0xbd,0x02,},{0xd1,0xc3,0x84,0x71,0x5e,0x3b,0x3d,0x02,0xc1,0x3e,0x09,0x06,0x05,0x53,0x4c,0x7d,0xb7,0x40,0xda,0x2a,0xa5,0x60,0xf5,0x32,0x00,0xa3,0xce,0xd8,0xbe,0xae,0x8c,0xf8,},{0x0f,0x19,0xb7,0x06,0x6d,0x57,0x92,0x32,0x8a,0x98,0x00,0xd9,0xd4,0xf8,0xf6,0x7d,0x5b,0x08,0x9b,0x54,0x12,0x26,0xa1,0x67,0xda,0xcd,0x43,0x9f,0xa4,0x85,0xb0,0x02,0x5a,0x5d,0xc7,0xf2,0xc7,0xe2,0x3f,0xc4,0xa5,0xc6,0x86,0x9e,0x76,0x19,0xd3,0x56,0x39,0x97,0x00,0xc9,0x36,0x50,0xe8,0x9c,0xd2,0x5b,0x90,0xfb,0x99,0x25,0xe3,0x04,},\"\\x6c\\xf1\\x47\\xb1\\x60\\x55\\x28\\xa3\\x6b\\xe7\\x57\\x16\\xa1\\x4b\\x42\\x0b\\xcf\\x06\\x7c\\x03\\xf1\\xcf\\xe9\\xc4\\x40\\x2f\\x14\\x98\\x7f\\xbf\\xc9\\xd3\\xec\\xc3\\xcc\\xf4\\xf8\\xd2\\xd0\\x3a\\x55\\x90\\x0b\\x8d\\xc7\\x9a\\xf3\\xb6\\xe7\\x74\\x36\\xf6\\x9b\\x14\\x17\\xad\\x4b\\x68\\xfd\\x44\\xe5\\xe3\\x33\\xed\\x90\\xea\\x79\\x43\\xfb\\xd1\\x12\\x26\\x09\\xec\\x8f\\xf6\\xbb\\x25\\xe4\\x2e\\x99\\x14\\xf5\\x92\\x0f\\xc7\\x2c\\x4d\\x01\\x3b\\x6a\\x96\\x85\\xc9\\x96\\xfb\\xd8\\x35\\x2a\\xaf\\xb1\\x84\\xc2\\x2d\\x9e\\x47\\x87\\x1a\\x52\\x80\\xe4\\xab\\x7d\\xd6\\xa5\\xcf\\xd1\\x0a\\x59\\x94\\xa2\\x00\\xf6\\x70\\xe0\\xb6\\x22\\xa9\\x39\\x4d\\x47\\x93\\xd0\\xa4\\x20\\xe7\\xd8\\x80\\x6c\\xb1\\x27\\xc7\\xac\\x69\\x0d\\x45\\xa2\\xe9\\x41\\x66\\xce\\xa6\\x72\\xbc\\xd9\\x82\\xb0\\xe9\\xba\\xad\\x56\\x31\\x2d\\x25\\x70\\xdd\\xde\\x7e\\x0b\\x9e\\x7f\\x47\\x13\\x6f\\x04\\x81\\xd0\\x0f\\x66\\xa2\\xaa\\xca\\x4d\\x1b\\x09\\xd7\\xce\\x6c\\x5a\\x98\\xa7\\x6b\\x68\\xcd\\x97\\xd5\\x79\\x39\\x68\\xd6\\x67\\x07\\x3f\\x82\\x17\\xf9\\x05\\x47\\x35\\x34\\x0f\\x9b\\x14\\x9c\\x0d\\xce\\x84\\x5b\\x09\\x9e\\x88\\xd0\\x70\\x96\\x80\\xf0\\xf7\\x76\\x03\\xff\\x0a\\x23\\x31\\xc5\\x58\\xfc\\x36\\xd5\\xf2\\x4d\\xa9\\xa6\\x2d\\x69\\xaf\\x51\\x90\\xd2\\x1b\\x5c\\x85\\x7a\\x1e\\x08\\xf0\\x14\\xc6\\xd4\\x56\\x46\\x86\\x65\\xa7\\xf8\\x45\\xc6\\x6f\\x91\\x11\\xf9\\xc0\\x98\\xc6\\x89\\x40\\xef\\xcd\\x87\\xb6\\x57\\x07\\x0c\\xb9\\x16\\x4b\\xc9\\x74\\x3a\\xce\\xb7\\x43\\x9a\\x0d\\x01\\xc0\\x06\\x2a\\x11\\xaf\\x2e\\x11\\x34\\x93\\x97\\xf5\\xd1\\x52\\x87\\x2b\\x13\\xc5\\xab\\x32\\xf5\\x1c\\xc5\\x8f\\x14\\x75\\xec\\x82\\xac\\x67\\x15\\x61\\xdc\\xbd\\x34\\x3c\\xfb\\x3c\\x5f\\x78\\xd0\\xfc\\x73\\x05\\x3c\\x60\\x04\\xb0\\xa4\\xca\\x3f\\x20\\x43\\xff\\x4b\\x0c\\x54\\x27\\x5c\\x4f\\xcb\\x9c\\xad\\xc6\\xba\\xab\\xe5\\x7b\\x1d\\x5a\\xcd\\x53\\x1e\\x97\\x2e\\xf9\\x33\\x51\\x36\\xcd\\x1d\\x65\\x51\\x2b\\xa1\\xf5\\xb6\\xcc\\xc4\\xb6\\x6b\\x42\\x50\\xaa\\xfa\\x29\\x67\\xdd\\x42\\x11\\xa2\\x74\\x2e\\x0f\\x17\\x7d\\x8f\\x40\\x63\\x89\\x9f\\x61\\x81\\x5c\\xbe\\x6d\\x8f\\xbf\\xcd\\xf7\\x48\\x12\\xbd\\x40\\xcc\\x10\\x08\\x4e\\x46\\xa9\\x9a\\xc1\\x28\\x05\\x8e\\xaf\\x16\\xa4\\x9a\\x24\\xb6\\xae\\x22\\x8e\\xcf\\x01\\x09\\xc5\\x2d\\xfc\\x06\\xe3\\x7d\\x6a\\x33\\x3b\\xcb\\x24\\xab\\xa3\\x12\\x16\\x4c\\x6c\\x02\\x90\\x48\\x5d\\x25\\x12\\x80\\x53\\x8c\\xe9\\x54\\x1c\\x09\\x16\\x64\\x0e\\x36\\xd6\\x92\\x9d\\xcd\\x95\\x88\\xeb\\x99\\x57\\x7f\\x5f\\x6d\\x82\\xbc\\xbb\\x19\\x88\\x26\\x26\\x7e\\x49\\xf5\\xda\\xff\\x2c\\x0d\"},\n{{0x22,0x69,0xa5,0xd8,0xf7,0xac,0x2c,0xd9,0x04,0x8f,0x5f,0x49,0xe3,0x49,0xe5,0xc4,0x35,0xa1,0x59,0xb3,0x19,0xfe,0x3b,0x30,0xbf,0xac,0x8d,0x0d,0x50,0x59,0x43,0xf4,},{0x1c,0x81,0x79,0x43,0xdc,0x39,0xc2,0x4b,0x01,0xda,0x38,0xa4,0x87,0xb1,0x75,0x48,0x24,0x60,0xc6,0x09,0xe4,0x72,0x63,0x49,0xa9,0xaa,0x7a,0xea,0x9b,0xc0,0xfb,0x34,},{0xbe,0x0f,0xb3,0x30,0x8a,0x07,0x6a,0x61,0xa4,0xa9,0x2a,0x97,0xf6,0xac,0x55,0x32,0x71,0x90,0xe1,0x34,0x1d,0x6d,0xd4,0x10,0xd8,0x6b,0x41,0xbd,0xaf,0x2d,0x33,0x74,0x09,0x3e,0xf7,0x20,0xbd,0xb7,0x7f,0xeb,0x70,0x14,0xe0,0xf7,0x7d,0x3b,0x80,0x96,0x23,0xc7,0xca,0x53,0xe2,0xae,0x4b,0x09,0x71,0x13,0xe9,0x6d,0xb7,0x7a,0x2d,0x08,},\"\\x71\\x53\\xd4\\xd9\\xe6\\x41\\xaa\\x61\\x92\\x0d\\xb0\\xff\\x4b\\xd5\\x37\\xa6\\xd6\\x13\\x0a\\x39\\x65\\x54\\xcc\\x94\\x53\\x76\\x98\\xf9\\xca\\xd1\\x6b\\x99\\xee\\xbe\\xfa\\x5f\\x27\\x76\\xf2\\xfe\\xaf\\xf6\\xbd\\x9a\\x69\\x04\\x12\\x0c\\x67\\xe0\\x88\\x3f\\x6b\\x96\\xbb\\xbb\\x19\\x5e\\x95\\xae\\xc7\\x53\\xb6\\x99\\xba\\xb3\\xd0\\x39\\x44\\xc1\\x3c\\x72\\xfc\\x84\\xe3\\xf2\\xcb\\xf6\\x29\\x6f\\x64\\x55\\x49\\x11\\x1c\\x93\\xfa\\xe1\\xa7\\x59\\xbf\\xcd\\x16\\xfc\\x09\\xe6\\x0b\\xb9\\x78\\x55\\x35\\xad\\x27\\xda\\x24\\x4e\\xf2\\xf8\\x57\\xf2\\xde\\x99\\xa6\\xe9\\x21\\x88\\x89\\x0e\\x45\\x2c\\x7f\\x5b\\x9e\\x3a\\x4b\\x96\\x8e\\x11\\x74\\x3b\\x6f\\xc7\\xfa\\xf1\\x27\\x5e\\x53\\x60\\xa5\\x46\\x89\\x41\\x79\\x78\\x94\\xd7\\x70\\xfa\\x7d\\xa3\\x64\\xa3\\x37\\x30\\x22\\x39\\xfe\\x83\\xae\\x0b\\x0d\\x08\\x4a\\xa1\\x2a\\xcd\\xc6\\x34\\x62\\x52\\x4e\\x0e\\xb1\\x0f\\xef\\xe8\\x1b\\xa9\\x6f\\x71\\xf2\\x75\\xf3\\x44\\x9a\\x3f\\x8d\\xb2\\x1d\\x58\\x74\\x9a\\x38\\x85\\x3d\\x39\\xb0\\xad\\x8e\\x69\\x89\\x1b\\xd2\\x04\\xdf\\xca\\x8f\\x6c\\x23\\x9d\\xc9\\xa0\\xac\\x27\\xf5\\x4d\\xb4\\x23\\x8d\\x47\\x06\\xdf\\x11\\xd6\\x07\\x36\\x9d\\xc7\\xf7\\x04\\xda\\x1d\\x39\\xf2\\xe8\\x2a\\xf8\\xc2\\x83\\xd2\\x20\\xc1\\x24\\x31\\xf5\\x6d\\x80\\x30\\x69\\xb4\\xac\\xb7\\x70\\x81\\xc0\\x31\\xae\\x33\\x19\\xfc\\x77\\xfc\\xa7\\x84\\x50\\x97\\xfd\\x72\\x7a\\xd0\\xd0\\x80\\x89\\x5b\\xba\\x23\\xe8\\x73\\xd2\\xde\\xf8\\xcd\\xc2\\x16\\xc3\\xee\\xd6\\x1b\\x08\\x76\\x1b\\xb9\\xeb\\xce\\x02\\x82\\xcf\\x50\\x2a\\xaf\\x6c\\xe7\\xe8\\xc0\\x58\\x63\\x79\\x58\\xc3\\xea\\x1b\\x72\\xfe\\x6e\\x8d\\xf8\\xd3\\x7a\\xc0\\x55\\xdb\\x69\\x92\\x58\\x7f\\xab\\xbd\\xc4\\x67\\xf5\\x24\\x75\\x64\\x4f\\x91\\x88\\x63\\xaf\\x62\\x04\\x92\\xf3\\x46\\x80\\xf2\\x05\\x6c\\xbc\\xab\\x75\\xe2\\x32\\x36\\x26\\xc0\\x94\\x75\\x9c\\x0e\\x0e\\x99\\xef\\x19\\x75\\x95\\x27\\x25\\x06\\x46\\xad\\x76\\x01\\x20\\xba\\x38\\x66\\x99\\xd5\\x39\\x34\\xf9\\x56\\xb8\\xbb\\xc7\\x39\\x5b\\xb4\\x96\\xce\\xb2\\xdd\\x22\\x3c\\x7b\\x50\\x1b\\x92\\xd3\\x6a\\x95\\xf8\\xf0\\xa0\\x2e\\xb5\\xba\\x4d\\xdd\\xf1\\x66\\xb9\\xb9\\x5b\\x4a\\x59\\xe7\\x2a\\x30\\xc6\\x3c\\xf2\\x1e\\x60\\x85\\x75\\x19\\x23\\xd5\\x4b\\x30\\x28\\x1e\\x52\\xa0\\x96\\x18\\xe6\\xf0\\x23\\xba\\x0a\\x21\\x67\\x5e\\x7f\\x98\\x9b\\x89\\x91\\x58\\x8c\\x96\\xc2\\xb5\\x6a\\x78\\xf5\\xd2\\x94\\x5a\\x7b\\xae\\xb6\\xa0\\xc1\\xbb\\xd5\\xd9\\x5a\\xf3\\xee\\x83\\x0f\\x58\\x09\\xc7\\x94\\xa1\\x5a\\xb4\\xb5\\xf8\\x9d\\xd2\\xbe\\x2d\\xfd\\xcd\\x8f\\xe0\\x52\\x0f\\xda\\x2b\\x3f\\x02\\xa1\\xac\\x01\\x55\"},\n{{0xe9,0x65,0xb3,0xf2,0x57,0x35,0x66,0x85,0xc9,0x8b,0x42,0xb9,0x64,0xa2,0x53,0xfc,0x49,0x53,0x99,0xcc,0x94,0xb0,0x99,0xc2,0x44,0x5f,0xc8,0x1c,0x75,0x9c,0x68,0xe5,},{0x68,0x9f,0x54,0x10,0xc8,0xe0,0xf4,0xd3,0x7b,0xc0,0x7c,0x85,0xd7,0xcc,0xe6,0xc9,0xb6,0x36,0x01,0xf9,0xbd,0xaf,0xec,0xaa,0x44,0x8a,0x5e,0xed,0x64,0xaf,0xc8,0xc6,},{0x8d,0x2b,0xc4,0xe1,0xcd,0x25,0x6a,0xad,0x8a,0x15,0x1d,0xec,0x01,0x0d,0xc9,0x3a,0x5e,0x5c,0xca,0x58,0x29,0x8d,0xec,0x49,0xcb,0xc9,0xc4,0x71,0x7b,0x5c,0xfb,0x54,0x60,0xd4,0x30,0xbe,0x72,0x6b,0x0f,0x30,0x2c,0xbd,0x92,0x6b,0xee,0xa1,0x9a,0xa3,0xc9,0x3a,0xeb,0x45,0x2a,0x44,0xf6,0x00,0x7a,0xf4,0x9a,0xdf,0x2f,0x05,0xbb,0x04,},\"\\x6f\\x20\\xa9\\xad\\x27\\xe3\\x0d\\xac\\x76\\xb3\\x0d\\x4c\\x19\\xa5\\xbd\\x6d\\xfd\\x6d\\x04\\x92\\x13\\xf4\\xbe\\xcd\\xd9\\x63\\xd7\\x2b\\x8b\\x2d\\xad\\x68\\x7b\\x00\\x38\\x08\\x20\\x1d\\x50\\xf7\\xdd\\x6e\\x59\\x9e\\xf5\\x8c\\xeb\\x60\\x68\\xc5\\x45\\xed\\x99\\xb9\\xe7\\x63\\xf9\\xb0\\xec\\x1d\\xb5\\xfc\\xbd\\x7d\\x49\\x0a\\x12\\x1e\\xce\\xc6\\xbb\\xa1\\xeb\\x5e\\xdb\\xd6\\xde\\x85\\x36\\x47\\x07\\xc5\\x5e\\x30\\x0c\\x8b\\x16\\xbb\\x25\\x30\\xf7\\x08\\x98\\x13\\x66\\x89\\xc9\\x88\\x59\\x1d\\x53\\x91\\xd9\\xcc\\x34\\x7d\\x79\\x31\\x06\\x1a\\x9b\\x76\\x96\\xe2\\xc9\\xf3\\x5b\\xc0\\xd3\\x04\\xa8\\x1c\\x2c\\xf9\\x54\\xd9\\xc3\\xa8\\x8a\\x22\\xe1\\xd6\\x7b\\xbe\\x0a\\x85\\x30\\x84\\x77\\xf6\\x29\\x18\\xc2\\x5d\\xb5\\x04\\xe4\\x76\\x2f\\x0e\\x3b\\x42\\x46\\x00\\x79\\x08\\xac\\x70\\x17\\x79\\x00\\x6b\\x77\\xd7\\x25\\x10\\xed\\xc6\\x9e\\x17\\xd0\\xf6\\x39\\x4c\\x77\\xe5\\x55\\x18\\x75\\xa4\\x46\\xf8\\x12\\x33\\x41\\x5d\\x0a\\x91\\xa0\\x46\\x0b\\x51\\xc4\\x13\\xd6\\x44\\xe8\\x50\\xf8\\x55\\x72\\x81\\xc4\\x66\\x99\\xe5\\x3b\\x22\\xa7\\xc7\\x3b\\x06\\x8e\\xa3\\x86\\x52\\xcf\\xf3\\xb0\\xa7\\xb8\\xba\\x30\\x97\\x1e\\xab\\x18\\xfd\\xbb\\xd8\\x73\\x9e\\xe1\\xee\\x0c\\xd5\\xcb\\xfb\\x7d\\x5d\\x41\\x75\\x7b\\x63\\x31\\x27\\x1f\\xb7\\x80\\x97\\x51\\xe2\\x03\\x51\\x3c\\x99\\x70\\xf6\\x6d\\x91\\xbc\\x0c\\xe0\\x62\\xf4\\xfc\\xb2\\x8b\\xe0\\xa6\\x99\\x86\\x7b\\x79\\x59\\x4c\\x64\\x58\\xa0\\xd3\\x07\\xac\\xac\\x91\\xf4\\x13\\xc4\\x61\\x58\\x77\\xdc\\x53\\xe1\\xb0\\x18\\xda\\x5c\\xfc\\xe1\\xb6\\x3f\\x40\\xbe\\x1e\\x55\\x27\\x4c\\x43\\x74\\xcd\\xfc\\x21\\x52\\x44\\x99\\xa6\\x83\\xa2\\x31\\xad\\xef\\x77\\x9d\\x19\\x21\\x44\\x0e\\x5d\\x3f\\xdb\\xd5\\x03\\x3d\\xc9\\x83\\xcf\\xc9\\x31\\xab\\xe6\\x38\\xc3\\x5d\\x5a\\x95\\x86\\x9e\\x9f\\xe3\\xd9\\x3e\\xb9\\x0b\\xd1\\x86\\x1f\\x85\\x5c\\xe1\\xf6\\x08\\xb7\\xbc\\xad\\x6b\\x5e\\x1b\\xd9\\x7e\\xdc\\x95\\xed\\x5d\\xdc\\xbc\\xb7\\x15\\xd9\\x19\\xf5\\xff\\x77\\xdf\\x2d\\xa4\\x38\\xf7\\xa3\\xa9\\x82\\x86\\xdb\\xd5\\xb6\\xe0\\x43\\xfc\\x73\\x72\\xf6\\x97\\x04\\xf0\\x9d\\x86\\x55\\x30\\xf4\\xf0\\xed\\xd3\\x30\\x0f\\x18\\x5b\\x6d\\x73\\xd8\\x71\\x6d\\x32\\xd3\\x2b\\x1c\\x9a\\xc2\\xdd\\xf4\\xf9\\x02\\xd3\\xf2\\x16\\xd3\\x5a\\x33\\xf3\\x68\\x09\\x5d\\xed\\x10\\xbe\\x94\\xbb\\x53\\xd6\\xf2\\x56\\x56\\x0f\\xac\\x2f\\x4a\\xf0\\xed\\xf5\\xc5\\xc7\\x02\\x14\\x37\\x77\\x12\\x6e\\x7d\\xe3\\x2d\\x07\\x49\\x39\\x32\\x66\\x21\\x29\\xba\\x0e\\x7f\\xc7\\xcf\\xb3\\x6f\\xd2\\xca\\x53\\x16\\x46\\xe8\\xcd\\x22\\x11\\x85\\x4f\\xc5\\x10\\xaf\\x3b\\x1e\\x8c\\xaf\\xde\\x7a\"},\n{{0xbc,0x3b,0x1e,0x0b,0xf8,0xd6,0x9e,0xa5,0xb4,0xcb,0xbf,0x10,0xbb,0x33,0xfc,0x95,0x5a,0xdc,0xbe,0x13,0xfc,0x20,0xaf,0x8a,0x10,0x87,0x2c,0xe9,0xdf,0x39,0xd6,0xbd,},{0xac,0xcd,0x26,0x28,0x15,0x59,0x19,0xbb,0xc7,0xf9,0xd8,0x6f,0x91,0xda,0xfe,0xc3,0x5c,0x71,0x1a,0x78,0xc7,0x9a,0xd3,0x60,0xed,0xdb,0x88,0xfa,0x8a,0x18,0x0b,0x2d,},{0x6e,0xf7,0xf0,0xe9,0x1f,0x2c,0xc6,0x71,0x5f,0x8e,0x5a,0x98,0x57,0x4b,0x44,0x00,0xc2,0x61,0xa6,0x43,0xe0,0x54,0x5f,0xf2,0x67,0x47,0xf8,0xe1,0x73,0x98,0x99,0xd7,0x66,0x40,0xb6,0x45,0x1c,0x43,0xc1,0xd0,0x3a,0x47,0x75,0xb5,0x4f,0xcf,0x9b,0xce,0x18,0xed,0x3f,0xcc,0xad,0x33,0x8b,0x77,0x64,0x02,0x4f,0xdf,0xa2,0xde,0x82,0x01,},\"\\x4c\\x73\\xe0\\x4a\\xbe\\x08\\x19\\xde\\x1f\\x84\\xd7\\x05\\x41\\xeb\\x1b\\xb6\\x1c\\x4f\\x42\\x92\\x0e\\x1f\\x2d\\x1d\\x9e\\x62\\x81\\xa8\\xa2\\xe8\\xb3\\xeb\\x45\\x53\\x7d\\x83\\x96\\x90\\x27\\xf9\\x9e\\xf0\\xea\\x27\\xca\\x08\\x5b\\x13\\xf9\\xdb\\x48\\x0f\\x00\\xc0\\x2f\\x3f\\xd7\\x42\\x9d\\xd5\\x67\\x70\\x89\\x53\\xbb\\xf3\\xb9\\xe8\\xe2\\xc6\\xac\\x4d\\x32\\x1f\\xf8\\xf9\\xe4\\xa3\\x15\\x47\\x23\\x08\\x5a\\x54\\xe9\\xc9\\x57\\x3c\\xc7\\x35\\x0c\\x09\\xf8\\x97\\x3f\\x94\\x8b\\x08\\x73\\x03\\x73\\x59\\x7a\\x5f\\xd0\\x34\\x98\\x21\\xae\\x0a\\x3c\\xd6\\xc8\\x49\\x92\\xb1\\x89\\x12\\x8f\\x34\\x90\\x98\\x7e\\x1e\\x9a\\xd4\\xf6\\x57\\x4c\\xa5\\x38\\xfd\\xfd\\x83\\x28\\x4c\\x1e\\xb0\\x95\\x3f\\x24\\xc0\\x8f\\x74\\x93\\x2d\\x43\\x64\\xdb\\xbe\\xf9\\x22\\x54\\x24\\x40\\xda\\xe8\\x04\\x24\\xa9\\x2e\\xae\\xf2\\x7c\\x18\\x89\\xbd\\x08\\xc4\\x4f\\x9d\\xf0\\x3a\\x3a\\xf3\\x0d\\xff\\xb4\\x8f\\xae\\x44\\x5e\\x62\\x5f\\x4d\\x92\\x65\\xcf\\x38\\x7a\\x1d\\xa3\\x5f\\xe4\\xc2\\x31\\x50\\x45\\x35\\xdb\\x72\\xea\\x81\\xa1\\x86\\x80\\x5f\\x85\\x6e\\xbe\\x6a\\x6a\\x65\\x24\\x14\\x32\\x53\\x0f\\xe6\\xc9\\x60\\xc5\\xf9\\xbe\\x6c\\x22\\x95\\x70\\x60\\x30\\x4e\\x9d\\xd8\\xef\\xbc\\x1e\\x48\\x2e\\x7d\\xdb\\xd8\\xaf\\x03\\xbf\\x23\\x82\\x89\\x9c\\x98\\x6d\\x91\\x66\\x11\\xe4\\xf2\\x7a\\xe5\\x2f\\x81\\x7e\\xf0\\x1b\\x6a\\x14\\x1f\\xe4\\xf6\\x85\\xd9\\x4d\\xc8\\xcd\\x52\\x83\\x00\\x43\\x93\\x45\\x87\\x70\\x4c\\x1e\\x64\\x2e\\x8f\\xe5\\x6b\\xe6\\xd6\\xb8\\x5b\\xf4\\xa6\\xfe\\xb2\\xb6\\x85\\x8f\\x1f\\x00\\x7f\\x99\\xd3\\x9e\\xa0\\x4c\\x9f\\xe5\\xfa\\x7e\\xf1\\xb9\\x1f\\x49\\x5e\\xd0\\xe7\\xfa\\x42\\x13\\xdd\\x68\\xce\\xa4\\x2b\\x67\\x29\\xf9\\x50\\x31\\x90\\x7e\\x27\\xc4\\x40\\x98\\x09\\x43\\x86\\xfa\\xbf\\xb0\\x4a\\xb9\\xb4\\xde\\x3d\\x68\\x61\\xde\\x46\\x23\\x12\\xc5\\x9b\\x27\\xc7\\x6f\\x7b\\x6a\\x4f\\xc7\\x1e\\xa0\\xd5\\xda\\xf6\\xb7\\x32\\x05\\x21\\xa6\\x7e\\x5c\\xb3\\x75\\x04\\x97\\x6a\\xd7\\x3d\\xae\\x2d\\x64\\x9f\\xeb\\x75\\xe2\\xea\\xdd\\x34\\x01\\xa7\\xf2\\xf3\\x6e\\x16\\xdf\\xbf\\xbd\\xb2\\xaf\\x57\\x16\\xcb\\xa1\\xbc\\xe2\\x0c\\xd4\\x7c\\xe1\\xc1\\xd7\\xbe\\x00\\x69\\x70\\x01\\xfb\\xbe\\xb4\\x91\\x5a\\xa6\\xe5\\x39\\x3b\\x5a\\xb2\\x0e\\x0f\\x31\\xf5\\x11\\x91\\x49\\xa2\\xcb\\x4c\\x4d\\x45\\x2c\\x81\\x56\\x11\\x3a\\xc7\\x82\\x4f\\x84\\xf0\\x9a\\xeb\\x81\\x20\\x2e\\x8d\\xd3\\xda\\xc0\\xaa\\x89\\x39\\x9b\\x5a\\x38\\xb1\\xe2\\x18\\x30\\x19\\x60\\xa3\\x7d\\x52\\x63\\x2e\\xea\\xef\\xe3\\x68\\x74\\x55\\x46\\x42\\x88\\xeb\\x17\\xd9\\xe1\\x9a\\x3a\\x72\\xed\\x9d\\xe3\\x2c\\x17\\xbe\\x79\\xa3\\xb9\"},\n{{0x10,0x71,0x8f,0xa6,0xe2,0xd7,0xf6,0xed,0x38,0xfd,0x66,0xcb,0x6d,0xbf,0xa0,0x87,0xe8,0xf1,0xe8,0xa8,0xa2,0x4f,0xab,0x58,0xd7,0x9d,0x79,0x54,0xb8,0x72,0x0c,0x3e,},{0x87,0x0d,0x4f,0x66,0x6d,0x06,0xfd,0xa9,0xf9,0x51,0x1b,0x58,0x60,0x2e,0xec,0x05,0x0d,0x75,0x4e,0xa6,0xd8,0xe7,0x9c,0xdd,0x19,0xf6,0x01,0xc4,0x77,0xdf,0x1a,0xa0,},{0xe1,0x65,0x91,0x86,0xf1,0xf7,0x6f,0xe4,0x3a,0xc8,0xa1,0x17,0x03,0x36,0x0f,0xbe,0xff,0x53,0xb5,0xe5,0x7b,0x59,0x74,0xaa,0xa0,0x8e,0x25,0x75,0x57,0x9c,0x27,0x08,0x4c,0xf6,0x80,0x2e,0x7c,0x20,0x63,0x47,0x31,0x44,0x75,0xb6,0x03,0x19,0x74,0x94,0xe7,0xd6,0x1f,0xe4,0xb1,0xee,0x7b,0x78,0xe1,0x8d,0x94,0x46,0x93,0x52,0xdf,0x0c,},\"\\x41\\x25\\x9b\\x6e\\xef\\x13\\xd6\\xff\\xe3\\x3c\\xdd\\xe7\\x99\\xb9\\x95\\xc4\\x0b\\xe7\\x82\\xcf\\x97\\x84\\x40\\xb6\\x6b\\xe5\\x1c\\x44\\x05\\x82\\xab\\xd4\\x2f\\x52\\x66\\x96\\xbb\\x3c\\xb9\\x22\\x65\\xb1\\xed\\x0e\\x4b\\xba\\x76\\x4c\\xae\\x28\\x39\\x83\\x0a\\x25\\x26\\x35\\xdc\\x80\\xce\\x5f\\x73\\xd5\\x21\\xb3\\xd6\\xff\\x03\\xac\\x30\\xe1\\x98\\xad\\x20\\x56\\x7e\\x75\\xa3\\x4f\\xa8\\x25\\xeb\\xf9\\x84\\x15\\x08\\xda\\x84\\xcd\\x67\\x42\\x36\\xca\\x7b\\x43\\xde\\x35\\x64\\xc9\\x4a\\xb0\\x79\\x40\\x8f\\xd9\\x41\\x37\\xce\\x3f\\x90\\xa5\\xdd\\x5d\\x3a\\xc3\\x9a\\x05\\xec\\x86\\x71\\x5a\\x8f\\x02\\x5e\\x45\\x39\\xa7\\x64\\x0a\\xb8\\x88\\x36\\xf4\\xef\\xba\\xbd\\x5e\\x16\\x52\\xc4\\x9e\\xa2\\x16\\x13\\xac\\xfe\\x34\\x3a\\x88\\x0e\\xe5\\xa4\\x2f\\x2f\\x91\\x34\\xef\\x4e\\x37\\x16\\xb1\\x6d\\x13\\x4a\\x9c\\x4c\\x71\\xc3\\x9b\\x3c\\x1a\\x85\\x7d\\x3c\\x89\\x43\\x97\\x83\\xee\\xf1\\xed\\xd7\\x1b\\xf4\\x49\\x2d\\x05\\xfd\\x18\\x67\\x3a\\x52\\x42\\xff\\x41\\x87\\xb9\\xde\\x47\\xad\\x49\\x68\\xda\\x49\\xdb\\xa5\\xa6\\x09\\x2e\\x95\\xea\\x27\\xdd\\xfc\\x74\\x48\\xdc\\xf5\\x97\\x2d\\x9d\\x22\\x8d\\x63\\xe5\\x29\\x1b\\xa6\\xe6\\xfb\\xd0\\x7e\\x32\\x41\\xf9\\x36\\x6c\\xa4\\x97\\x6b\\xb0\\x4b\\x22\\xd0\\x1f\\x0d\\xba\\xe7\\x94\\xfa\\x9c\\x1d\\x90\\x29\\xf8\\x8a\\x83\\x60\\x2b\\x0e\\x0e\\xc5\\x5e\\x22\\xc3\\x7b\\x20\\x11\\x25\\xca\\xdb\\x53\\x41\\xef\\x73\\xf6\\xda\\x1a\\xbb\\xe2\\xb1\\xc4\\x75\\xf0\\x75\\x03\\x45\\xb1\\xbe\\x42\\x59\\xd8\\xc2\\x85\\x31\\xff\\xe7\\x78\\x86\\x67\\xc4\\x10\\xda\\xc3\\x39\\x91\\x8c\\x86\\x9b\\x00\\xab\\x80\\xf2\\x0b\\xf7\\x99\\x0d\\x36\\x6f\\x9b\\x3d\\x5e\\x8e\\xb2\\xf4\\x8d\\x7e\\xd0\\xe6\\x4b\\x85\\xdc\\x9f\\xe3\\xbb\\x99\\x8b\\x1e\\xec\\xd1\\x23\\x1e\\x90\\x2d\\x2d\\x15\\x2e\\x09\\xda\\x2d\\x25\\x92\\xbd\\xb3\\x2c\\x8c\\xd2\\xe2\\xc4\\x89\\x49\\x6b\\x29\\x80\\xc0\\x3d\\xbb\\x09\\xec\\x7f\\x8a\\x4e\\xa2\\xc7\\x02\\x0f\\x2a\\x0f\\xaa\\x65\\x7c\\xd6\\xce\\xd4\\x8d\\x6d\\xa2\\x78\\x64\\xcf\\x5e\\x97\\xee\\xa9\\xb3\\xc2\\xf0\\xf3\\x4a\\xbf\\x8d\\x87\\xbd\\x2a\\xde\\xb6\\x0c\\x72\\x72\\xfc\\x43\\x06\\xd9\\x55\\xbd\\xc8\\x02\\x3d\\x7d\\x3d\\xc2\\xf3\\xda\\xfe\\x9e\\xbe\\x8a\\x8d\\x13\\x89\\x65\\xa7\\xf6\\xce\\x93\\x51\\x7c\\xd2\\x09\\x96\\x63\\xf6\\x7c\\x34\\x55\\x21\\x76\\xdd\\xb5\\x95\\xac\\x6e\\xa5\\x60\\x9f\\xeb\\xcf\\x24\\xc7\\xd6\\x9d\\x41\\x27\\x09\\xe5\\x78\\x67\\x0a\\x21\\xac\\x8a\\xfc\\xcb\\x8b\\xf2\\xb1\\x8f\\xf3\\xaf\\x7d\\xe2\\x1d\\xc7\\x1d\\x50\\xd6\\x0d\\x37\\xb6\\xed\\x72\\x9d\\xb0\\x4b\\xef\\xf7\\xd3\\x4b\\x29\\x20\\xd8\\x75\\x51\\xce\\x15\"},\n{{0xc1,0xd4,0x72,0x4c,0x6c,0xb1,0xbc,0x67,0x23,0xb2,0xb4,0x30,0x34,0x27,0x8b,0x3c,0x5b,0x48,0xfe,0xd7,0xf8,0xa3,0xcc,0x23,0x18,0x03,0x3e,0x75,0x52,0x04,0x73,0x51,},{0xc2,0x7e,0x39,0x2e,0x7c,0x36,0x64,0xb9,0x06,0x1e,0xa7,0x6d,0x25,0x75,0xdd,0x7c,0x41,0xea,0xf1,0xda,0x3a,0x65,0xf3,0xa9,0x86,0xe0,0xa5,0x7f,0x6c,0x40,0xc1,0x7e,},{0xd3,0x7a,0x6e,0xc8,0x2e,0xd4,0x5c,0xa9,0xb4,0x85,0x5d,0xe9,0xcb,0x94,0x25,0x64,0xe8,0x83,0xff,0x70,0xa7,0x9b,0x8e,0x71,0x2d,0x5f,0x60,0x4e,0xc8,0x97,0x4d,0xe5,0x36,0x3a,0xc8,0x49,0xcb,0xab,0x28,0xe7,0xae,0xef,0xf2,0x8e,0xd3,0xf2,0xd1,0x4b,0x60,0x8b,0x31,0x46,0xc2,0xef,0xe0,0x73,0x5a,0xd8,0x15,0xc7,0xd7,0x5a,0x1a,0x01,},\"\\xde\\xee\\x99\\xd7\\xa7\\x7d\\x43\\x00\\xc1\\x7a\\xec\\x1a\\xb3\\x23\\xc5\\x71\\xc6\\xe9\\xe7\\x3a\\x43\\x49\\x1a\\x3c\\x78\\x88\\xb7\\x6f\\xc0\\x3e\\xc4\\x3d\\x07\\xaf\\x42\\xa0\\x5a\\x2a\\xa3\\x22\\xd0\\x0c\\x85\\x60\\xac\\xef\\x31\\x41\\x06\\xb1\\x0b\\x9b\\xd1\\x26\\x54\\x35\\x7f\\xfa\\x26\\xf2\\x39\\x00\\x50\\xda\\x63\\xd6\\x68\\xc9\\xe2\\xdf\\x54\\x8f\\x87\\x63\\x9e\\x09\\x6a\\x35\\x85\\x3f\\x82\\xe7\\x61\\xfd\\x71\\x1d\\x2a\\x26\\x54\\x38\\xf5\\xd4\\xdb\\x5e\\x32\\x77\\x57\\x08\\x15\\x0d\\xa6\\xcb\\x68\\x6a\\x2b\\x4c\\xa2\\x11\\xd7\\xf0\\x0d\\xc0\\xab\\xcb\\x2c\\xa1\\x50\\xe7\\x91\\x11\\x6a\\x10\\xa5\\xef\\xcf\\xf3\\x51\\x4d\\xab\\x8e\\xd8\\x0a\\x70\\x92\\xc3\\xa0\\x15\\x15\\x2c\\xb2\\x5d\\x9f\\x86\\xec\\x0d\\x1c\\xa6\\x7d\\xda\\xb4\\x4d\\x64\\xee\\xb1\\xf9\\x31\\xbf\\xab\\x2a\\xb1\\x88\\x95\\x6c\\x74\\x3d\\xb4\\x81\\x48\\x08\\xc5\\xcd\\xe1\\xb0\\x74\\x5b\\x3e\\xdd\\x34\\x0e\\xb0\\x3f\\xfc\\xc8\\x0a\\x78\\xf3\\xdb\\x31\\x0f\\x4f\\x5c\\x20\\x00\\x9f\\xc0\\x27\\x9c\\x2c\\x1b\\xcb\\x3c\\xed\\xf9\\x90\\xbd\\x0e\\x20\\xc6\\xf9\\xfb\\x75\\x15\\xad\\x6e\\x93\\x3b\\x07\\xe9\\x9d\\xa6\\xac\\x32\\xb9\\x71\\x41\\x18\\x7e\\xf6\\x3b\\xdb\\x10\\x62\\xe3\\x72\\x20\\xa4\\xdc\\xd4\\x19\\xd6\\x24\\x4c\\xdc\\xc3\\x4e\\xa4\\x1d\\x0b\\xcb\\xc3\\x13\\x8b\\x1d\\x54\\xae\\xfc\\x01\\x90\\xe3\\x0b\\x18\\x7d\\xb0\\x73\\xaa\\x7d\\x6c\\xfe\\x04\\xbd\\x3f\\xd2\\xac\\x00\\x31\\x3e\\x3d\\xdd\\x64\\xa1\\x81\\x93\\x5c\\xa4\\xb8\\xb2\\xa8\\x5d\\x36\\xbc\\x27\\xd9\\x7b\\x76\\x26\\x76\\x7b\\x93\\xee\\x38\\xde\\xf8\\xb6\\xb2\\xc8\\xda\\x9b\\x00\\x26\\x36\\x14\\x34\\x2f\\xaa\\x9d\\x3e\\x73\\x8d\\x27\\x13\\xc4\\x5f\\xfb\\xee\\xf8\\xc8\\x4b\\xcd\\xbc\\x8d\\xa4\\x30\\x9c\\x84\\x45\\x53\\x0f\\x5c\\x61\\x7d\\xc8\\x66\\x25\\x1f\\x54\\x89\\x50\\xa1\\x4f\\x07\\x5a\\xa3\\x11\\x7f\\x96\\xe4\\x1f\\x89\\x9d\\xbe\\x73\\x40\\xb1\\xd9\\x0a\\x13\\x52\\xd3\\xb8\\xfb\\x41\\xb7\\x9f\\x16\\xa8\\x2b\\xc2\\xe4\\xa1\\x93\\xb8\\xa7\\x23\\x24\\x00\\x99\\x6b\\x73\\xb1\\xfc\\x00\\xb2\\xec\\x1c\\x66\\x75\\x77\\xf8\\x28\\x24\\xd3\\x9f\\xb7\\xf6\\xe7\\x69\\x2d\\xcd\\x97\\xb1\\xd8\\xce\\x94\\x08\\x3c\\xa1\\x97\\xe9\\xa5\\xd4\\x0f\\xad\\xff\\x0b\\x9a\\xc5\\x7e\\x9d\\xe7\\x61\\xc1\\x56\\xe6\\xd3\\x1d\\x52\\xc3\\x32\\xd5\\x13\\xe9\\xf5\\x86\\x97\\xdc\\xbd\\xd8\\x0a\\x5e\\x42\\xc5\\x51\\x70\\x2c\\x3d\\xe7\\xbe\\xcc\\xc3\\xdb\\x84\\x5b\\x1a\\x04\\xc8\\xcb\\xd4\\x16\\x95\\xea\\x74\\x28\\xab\\xba\\x89\\xe0\\xdc\\xe3\\xe3\\xd9\\xe7\\x02\\x30\\xae\\x91\\x47\\xc2\\xb8\\x85\\x59\\xdc\\x69\\x5d\\x68\\x09\\xa5\\x1c\\xcb\\xc1\\xdd\\x9e\\x08\\x9c\\x58\\x5f\"},\n{{0x37,0xc0,0x70,0xd4,0xa5,0x3b,0x13,0xbe,0x76,0x06,0x35,0x11,0x0d,0x1b,0xd4,0xf0,0x19,0x20,0x22,0x5a,0xfa,0xbe,0xc5,0x76,0xfa,0xae,0xc9,0x10,0xf2,0x92,0x6d,0x1a,},{0x0a,0xa8,0x5f,0x2a,0xb1,0xdf,0xf8,0x95,0xd1,0xfa,0xd0,0xc1,0x19,0xf2,0xbf,0x57,0x12,0x6a,0xab,0x60,0x1c,0x52,0x8d,0x37,0x69,0x8e,0x97,0x70,0x2d,0x35,0xf5,0x25,},{0x9d,0xa6,0x0c,0xc4,0xa6,0x4d,0x07,0xde,0xe1,0x34,0x6b,0xd3,0xd3,0x01,0x09,0x95,0xce,0x27,0x38,0x20,0x8a,0xb3,0x5b,0x34,0xc2,0xa8,0xfd,0x17,0x87,0xae,0x3a,0x1e,0x20,0x7f,0xe7,0x84,0x52,0x51,0x54,0xfa,0xe4,0xf5,0x79,0x4c,0xd8,0x50,0x30,0x45,0xfe,0xa8,0x5c,0xf7,0x7f,0xd9,0x2f,0x6a,0x70,0xcd,0x0c,0x5a,0x52,0xc0,0x81,0x0e,},\"\\x10\\xc6\\x46\\x44\\x7f\\x81\\xad\\x94\\xd0\\x15\\xd8\\x6d\\x0d\\x98\\xb2\\x45\\x2d\\xca\\x60\\xa4\\x7a\\xb3\\x52\\x64\\x03\\x5e\\x33\\xa0\\x94\\x2b\\x95\\x4e\\x3e\\x23\\xb9\\x1d\\x81\\x23\\xb8\\x59\\x3c\\x6a\\xf7\\xc8\\xd3\\xec\\xd2\\x90\\xe0\\xe5\\xee\\x36\\xfd\\x4e\\x53\\xb7\\xbe\\x63\\x3a\\x6c\\xf0\\x27\\xa5\\xac\\x3f\\x0f\\x67\\x9e\\xb1\\xbd\\xd2\\x10\\xa3\\x8e\\xa6\\xe4\\x8b\\x05\\x58\\xe3\\x03\\x01\\x0a\\xf4\\x74\\xe7\\xf6\\xdf\\x2a\\x4e\\x45\\x76\\x99\\xfc\\x38\\xe3\\x69\\x38\\xb0\\x5f\\xfc\\xaa\\x1b\\x69\\x4e\\x32\\xf3\\xd1\\xb2\\xcc\\x5d\\x00\\xcf\\x25\\x6f\\x12\\x18\\x4c\\x87\\x3e\\x51\\x90\\x89\\xec\\x1d\\xf1\\x5b\\x0d\\xc7\\x6e\\x7b\\xfe\\x90\\x78\\x0d\\xf5\\x81\\x36\\xfe\\x59\\x7f\\xce\\x89\\x4c\\xa5\\x63\\xe0\\x8e\\xfa\\x0f\\x2d\\x4d\\x20\\x8b\\xed\\xe9\\xa8\\x74\\x88\\x28\\x73\\xd2\\x51\\xba\\xf0\\x19\\xfe\\x46\\xd1\\xd6\\x50\\x4b\\x3b\\xcd\\x24\\x3b\\x79\\x53\\x51\\xf3\\x4d\\x2e\\x76\\x06\\xaa\\x97\\x55\\x28\\xee\\x50\\xd5\\x9e\\xfb\\x6e\\xe6\\x99\\x2a\\x89\\xb2\\x42\\x69\\x56\\xc2\\xca\\x42\\x47\\xe0\\xdf\\x01\\x29\\x85\\x29\\x83\\xe9\\x76\\x7a\\x8e\\xed\\x1b\\xc7\\x33\\x5f\\xfc\\xa8\\xd0\\x28\\x9f\\x04\\x80\\x7f\\x67\\xca\\x7d\\xa9\\x71\\xf5\\x8d\\xb8\\xb9\\xbc\\x9f\\xdb\\xe4\\xf8\\x3c\\xfe\\x9a\\x00\\xf1\\xca\\x58\\x47\\x98\\xbc\\x71\\xd8\\x51\\xff\\x7c\\xd6\\xc5\\x1b\\x89\\x90\\xaa\\xba\\x4d\\x38\\xb4\\x16\\xb9\\x22\\x40\\xdf\\xb7\\x0e\\xe3\\xc1\\x2b\\x5e\\x73\\x10\\x57\\x76\\x2e\\xf9\\x08\\x23\\xfb\\xf6\\x83\\xca\\x06\\xd0\\x5c\\x20\\xd3\\xae\\x2b\\x97\\xa8\\x3e\\xbe\\x70\\xae\\x17\\xaf\\xff\\x9d\\x16\\x60\\x9d\\x54\\x6d\\x8d\\x3c\\x74\\xbc\\x28\\x18\\x84\\x89\\x4f\\x3d\\x49\\xe0\\x83\\xf1\\x0a\\xe7\\xc1\\x1c\\x1d\\xca\\x0e\\xff\\xef\\xcf\\xa6\\xe0\\xf1\\x53\\x50\\x81\\xfa\\xc3\\xa2\\x81\\x9f\\xd2\\xe3\\x26\\x55\\x27\\x18\\x2a\\xe9\\xd3\\x91\\xb2\\x32\\xbb\\x75\\x42\\xe6\\x84\\x55\\xcd\\x26\\x77\\x60\\xdb\\x65\\x2d\\x19\\xe2\\x2f\\xb2\\xed\\x11\\xcd\\x13\\x05\\xba\\x8d\\x98\\xc1\\xeb\\xf2\\xd1\\x96\\x9b\\x24\\xd6\\x4f\\x3e\\x31\\x9a\\xf7\\x4e\\x09\\x20\\x06\\xd2\\xa3\\xff\\x74\\x48\\x72\\xa2\\x0e\\xbf\\x18\\xd1\\x77\\x48\\xab\\x71\\x10\\x80\\x50\\x96\\xea\\x13\\x6b\\xce\\x2f\\x96\\x8b\\x20\\x5e\\x65\\x0b\\x80\\x3c\\x53\\x1d\\x06\\x77\\x5a\\xe5\\xce\\xea\\x28\\xbb\\x92\\xe9\\xa0\\xed\\xec\\x89\\x51\\xce\\x20\\x09\\xa8\\x8e\\xe1\\xb6\\x4d\\x9b\\x9e\\x89\\xf6\\x90\\x51\\x20\\x33\\x84\\x21\\x0a\\x10\\x2a\\x44\\xd2\\xd6\\x70\\x31\\x73\\xb6\\x85\\x07\\xdc\\xea\\xdd\\x3b\\xf6\\x51\\x0d\\xf2\\xa5\\xce\\xfd\\x9c\\x80\\xe4\\xf3\\x85\\xb2\\xf9\\xe6\\x21\\x58\\x13\\xed\\x32\"},\n{{0x11,0x26,0x49,0x6a,0x58,0x2c,0xe5,0x8d,0x3d,0x61,0x8d,0xd8,0xa3,0x93,0x35,0x47,0xaa,0x7a,0x8a,0x30,0xfb,0x54,0x06,0x3b,0x8d,0xfd,0xd3,0x16,0x71,0xc6,0xc7,0x3d,},{0xe1,0x02,0x29,0xc6,0x23,0xfa,0x8a,0xd8,0x98,0x2c,0x3e,0x4c,0x36,0xff,0x52,0xdf,0x0f,0x21,0x9b,0x57,0x91,0x5b,0x6e,0x98,0x0e,0x5f,0xe7,0x2e,0xa0,0x96,0x2e,0x22,},{0xb3,0x0e,0xb5,0x6c,0xa9,0xb1,0x20,0xbf,0x84,0x9a,0x3a,0x9d,0x56,0xaf,0x03,0x3d,0xe8,0xa5,0x90,0xc9,0xe1,0x24,0x0c,0x1e,0x36,0xdb,0xc6,0xcf,0x0a,0x71,0xb7,0x8a,0x11,0xec,0x14,0x3f,0xb9,0x95,0x9a,0x8f,0x25,0xb5,0x77,0x11,0xd6,0xa9,0x0a,0x67,0xe0,0x1b,0xe3,0xa4,0xda,0x2b,0x69,0x39,0x48,0x69,0xbb,0x8d,0x64,0xb8,0x7e,0x0f,},\"\\x6a\\x4b\\x52\\xd7\\x30\\xdd\\xab\\x82\\x9b\\x2a\\x17\\x95\\x90\\xcb\\xd4\\xc3\\x72\\x49\\x8e\\x9f\\x43\\x99\\x77\\xc0\\xa1\\x0d\\xc1\\x3c\\x0a\\xe1\\x73\\x6e\\xaa\\xff\\x06\\x33\\x71\\x43\\x4f\\xd0\\xda\\x80\\x36\\x0e\\xc5\\x89\\x06\\x07\\xd2\\xfa\\xe1\\xc9\\xa2\\xe1\\xab\\x0b\\x7f\\x3d\\x66\\x7f\\x5b\\x1b\\x9c\\x41\\x8f\\x18\\xb1\\x0c\\x9e\\x6f\\xd6\\x69\\xd3\\xeb\\xec\\x16\\x8e\\xfe\\xf4\\x41\\x63\\xe5\\x77\\xa2\\xeb\\xd0\\xf2\\xcb\\x76\\x8f\\x80\\xc2\\x31\\x88\\xe8\\x60\\x69\\xe4\\xd1\\x0f\\x41\\x03\\x06\\xce\\xdd\\x7a\\x34\\x1a\\x61\\xe0\\xf4\\xf3\\xbc\\x25\\x04\\x1b\\xc2\\xf9\\x22\\xed\\x07\\x3e\\x1e\\x2f\\x1b\\x70\\x9c\\x57\\x9d\\x10\\x63\\x0f\\x33\\x07\\x17\\x54\\xd7\\x07\\x89\\x4a\\x1c\\x62\\x19\\x0d\\xe1\\x88\\x82\\xc5\\x64\\xdc\\x4c\\x01\\xdc\\x54\\x5d\\xd8\\x96\\x64\\x04\\xed\\x78\\xfa\\x32\\x67\\xa9\\x46\\x9f\\x63\\xb6\\x12\\x0a\\xbb\\x65\\xf9\\xb3\\xba\\x3e\\xee\\x28\\xd7\\x9c\\x2e\\xb4\\xe7\\x02\\x0c\\xc6\\x98\\x7d\\xfc\\x5c\\x29\\x67\\x2f\\x8c\\x0f\\xa3\\xe6\\x90\\xd5\\x84\\xfe\\x00\\x0c\\x64\\xf3\\x52\\x61\\x01\\x79\\x62\\x1b\\xfd\\x5f\\xf3\\xeb\\x30\\xd1\\x8f\\x1a\\x02\\x50\\x41\\x6d\\xb9\\x3b\\x1c\\x1e\\x93\\xcf\\x8a\\x36\\x46\\x51\\x75\\x60\\xd1\\xcc\\x8f\\xff\\x82\\x2b\\x51\\xef\\x27\\xb2\\x00\\xe9\\x87\\xb5\\x92\\x39\\x07\\x53\\x45\\x3e\\xf1\\x38\\xbd\\x3d\\x29\\xdb\\x7c\\xb1\\xb5\\xf4\\x5e\\x47\\x95\\xb8\\x9c\\x53\\xf4\\x97\\x04\\x19\\x27\\x52\\x23\\x7c\\x6a\\xb2\\x74\\x84\\x9f\\x95\\x94\\xee\\x97\\x77\\xf6\\xef\\xe7\\x04\\x83\\x12\\x9d\\x06\\x7f\\x97\\x19\\x9d\\x9a\\xe3\\x60\\x90\\x70\\x38\\x64\\xf7\\xca\\x47\\x50\\xa6\\xf3\\xb6\\xff\\x83\\x82\\x4c\\x91\\x04\\x84\\x39\\x4d\\x1e\\x2e\\xce\\xba\\x18\\x44\\x6f\\xe4\\xe9\\x94\\xce\\x07\\x43\\x3a\\x74\\x0d\\xdd\\x05\\xf0\\xe3\\x96\\xd4\\x82\\x89\\x4e\\x6f\\x14\\xac\\xf7\\xb9\\x7b\\xae\\x6c\\x7e\\xb8\\x87\\x03\\x03\\x9f\\xa7\\x85\\xd6\\x0a\\x3a\\xf7\\x8b\\x13\\x24\\x3a\\x4f\\x88\\xdd\\xe1\\xd9\\x98\\x61\\x7f\\x2e\\x3f\\xa7\\xea\\xfc\\x2f\\x43\\x5d\\xd4\\xac\\x1e\\xa9\\xc2\\x38\\x40\\x7a\\xa0\\x9b\\x4e\\xea\\x8e\\xd4\\x34\\x92\\x7b\\x40\\x66\\x74\\xac\\x27\\x04\\x58\\xcf\\xb3\\xbf\\x29\\xc3\\x47\\xf9\\x45\\x59\\x61\\x31\\x79\\xb9\\x50\\x21\\x92\\x32\\x1b\\x88\\xe9\\xaf\\x0a\\x90\\xe9\\xa4\\xab\\x9e\\xdd\\xaa\\xe3\\x82\\xe3\\x73\\x4d\\x14\\x15\\xeb\\xe3\\x24\\x99\\xc3\\x4e\\x6f\\xde\\xaf\\x15\\xb0\\xd9\\x78\\x79\\x85\\xe0\\x8d\\xfe\\x49\\x54\\x60\\xc5\\x4f\\x67\\x43\\xd8\\x1f\\xf1\\x68\\x81\\xe5\\xe3\\x0c\\x51\\xf4\\xb0\\x92\\x37\\x37\\x83\\xf1\\x24\\x23\\xc3\\xe1\\xae\\x85\\x91\\x13\\x0a\\x26\\x99\\x80\\xca\\xa1\\xcb\\x5c\"},\n{{0x9c,0x16,0x7a,0xff,0x3b,0x1b,0x78,0x8f,0x13,0x3d,0x42,0x2d,0xe8,0xca,0x9a,0x64,0x31,0x64,0x09,0xf9,0xe3,0x5b,0xfe,0x22,0x03,0x2e,0xc4,0x17,0xae,0x9a,0xbc,0x6d,},{0xef,0xb5,0x34,0xf0,0xd4,0x7c,0x06,0x8e,0x77,0xb2,0x8a,0x90,0x6d,0x95,0xad,0x8d,0x21,0x3a,0x4d,0x4f,0xc1,0xc7,0x05,0x42,0xf0,0x1e,0x59,0x6d,0x57,0xb5,0xf0,0x19,},{0xc9,0xae,0x67,0xfd,0x64,0x15,0xdc,0xba,0xb2,0x92,0xfa,0xb3,0x94,0xca,0x6c,0x3b,0x7d,0x90,0xca,0x24,0x4d,0xc6,0xa7,0x76,0x4e,0x74,0xfd,0x20,0x2b,0xf4,0xb2,0x90,0x5b,0xd2,0x03,0x0e,0x6b,0xeb,0x91,0x4c,0x3c,0x23,0x8d,0xb3,0x71,0xb1,0xcb,0xa6,0xd9,0x26,0x1a,0xa3,0x92,0xec,0x87,0x1a,0x4b,0x8b,0x12,0xfe,0x9c,0x1c,0x97,0x0e,},\"\\x68\\xac\\x0f\\xc2\\xb6\\x07\\xba\\x38\\xe3\\x77\\xfa\\xe8\\x45\\xc8\\x08\\xc8\\xf9\\xfa\\x61\\x4e\\xb1\\xf3\\x11\\x58\\xa9\\x62\\x0a\\x93\\x7d\\x3e\\x30\\x1e\\x85\\xac\\xaa\\x69\\x14\\x4b\\xc3\\x49\\xa3\\x9d\\xfb\\x58\\x20\\x41\\xc4\\xa1\\x97\\xae\\x99\\xb4\\xd4\\xd5\\x9b\\x7a\\x2c\\xa3\\xd1\\x62\\x28\\xb5\\x59\\x1c\\xbf\\x57\\xc1\\x8a\\x78\\x1e\\xfd\\x19\\x19\\x3c\\x47\\xb1\\x6c\\x60\\x23\\xa3\\xa8\\xba\\x3d\\x66\\x8f\\x05\\xa3\\x7f\\x1e\\x83\\xb0\\xd7\\xfe\\xbd\\xd1\\x0f\\x63\\xe4\\x8e\\xf7\\xa2\\x0e\\x01\\x5b\\x1c\\x67\\x25\\xd4\\xc3\\x00\\xa9\\x86\\xc6\\x0e\\x3a\\x11\\x54\\x69\\xc8\\xe5\\x2b\\xa0\\x5b\\x51\\xc0\\x5d\\x0a\\xf4\\x0d\\x89\\xfd\\x9e\\xd7\\x6f\\x36\\x95\\x0a\\xee\\x3c\\x78\\x19\\x89\\x8a\\x90\\x3c\\xfe\\x03\\x61\\xa9\\x1c\\x69\\x10\\x0b\\x49\\x51\\x41\\xe8\\x6e\\xe7\\x9d\\x63\\xd1\\x74\\x03\\xfb\\x1a\\x16\\x29\\xef\\x63\\xcb\\x7e\\x9d\\x27\\x20\\xcb\\xff\\xf0\\x00\\x2b\\x19\\x0b\\xcd\\xc2\\x67\\x94\\x12\\x4d\\xd3\\x8d\\x42\\xbc\\xaa\\x71\\x75\\x40\\x5e\\xb0\\xbb\\xcf\\x8e\\x37\\xd6\\x5d\\x05\\xa3\\x71\\x95\\xb4\\x79\\x37\\x1f\\xa2\\xbb\\xbb\\x16\\x7d\\x91\\xce\\xe8\\x82\\x35\\xdd\\x72\\xea\\x88\\xfc\\x73\\xce\\x3c\\xe4\\x3d\\x33\\xb7\\x15\\xf2\\x5f\\x19\\x2e\\xc2\\x15\\xda\\xc1\\x24\\x89\\x9c\\x5e\\x75\\x86\\xe8\\x63\\x40\\xd8\\xcb\\xe5\\x37\\x35\\xde\\xfb\\xe0\\x2e\\x4c\\xc9\\xfd\\xe6\\x9f\\xb9\\x79\\x4d\\x1d\\xb7\\x2b\\x98\\xc0\\xf1\\x97\\x66\\xee\\x51\\x38\\xbb\\xfa\\x78\\x90\\x9a\\xa2\\x99\\xb4\\x91\\x3c\\x49\\x9d\\xea\\xf5\\x4b\\x48\\x41\\xd5\\x04\\x48\\x29\\x98\\x49\\x36\\x70\\x0d\\xcf\\x92\\xf3\\x65\\x42\\xb2\\xfc\\x7e\\x86\\x44\\x1b\\x99\\x25\\xf5\\xd0\\xb7\\x8c\\x17\\xa8\\x5c\\xfc\\xfc\\xb2\\x0b\\x0f\\xd7\\x51\\x34\\x9c\\x27\\x46\\x3a\\xbd\\xe4\\xd2\\x7d\\xf7\\x42\\x65\\x28\\x87\\x13\\xf9\\x6d\\xea\\x01\\x3b\\x94\\x55\\x21\\x80\\x8b\\x49\\x96\\xb1\\xb2\\xdc\\x03\\x38\\xb6\\xd2\\x36\\xef\\xd6\\xd2\\xb2\\x7d\\xaf\\xda\\x46\\xec\\x5f\\xa3\\x2b\\x96\\x5e\\x8b\\xb5\\xe8\\xbb\\x61\\xbd\\x96\\x6e\\xde\\xb7\\x74\\x68\\x1e\\x0e\\xa8\\xc1\\x7b\\x8c\\x99\\xfa\\x7d\\x66\\x0f\\x0f\\x66\\xc9\\xbc\\x6d\\x95\\xcb\\xd7\\xdc\\x09\\x47\\x24\\x09\\x8e\\xb0\\x51\\x91\\xb5\\x3a\\x3d\\xf6\\x56\\x6b\\x9c\\x90\\xe0\\xd7\\xdf\\xf2\\x94\\x38\\x48\\xb6\\x1a\\x20\\xd4\\x8c\\x22\\xb6\\xd3\\xc9\\x58\\xe2\\x93\\xd7\\x09\\xc8\\xf4\\x81\\x10\\x23\\x0f\\xf5\\x19\\x18\\x56\\x28\\x77\\xda\\xf6\\xd9\\x20\\xc8\\x5a\\x82\\xe0\\x7c\\x45\\x1f\\xe7\\xae\\x97\\x59\\xc0\\xa7\\x7e\\x97\\xbb\\x29\\x8b\\x5d\\x05\\x92\\xa4\\x1d\\x08\\xf6\\x7a\\x4e\\xd5\\xa1\\xbb\\x41\\xe9\\x37\\xb6\\xa6\\x8a\\xeb\\x38\\xfd\\x5b\\xe9\"},\n{{0xe9,0x94,0x88,0x05,0xeb,0x34,0x1b,0x28,0x67,0x47,0x9c,0x66,0x8f,0xd3,0x53,0x2c,0x30,0x99,0x41,0xc0,0xad,0x4c,0xb2,0xe5,0x42,0x31,0x75,0x6e,0x6a,0x1b,0xde,0xcb,},{0x54,0x47,0xa8,0xe3,0x4d,0x6a,0x64,0x00,0x02,0xd8,0xd6,0x0b,0xcf,0x1d,0xdc,0x71,0x1e,0x4c,0x46,0x5c,0x94,0xc3,0x4b,0x50,0xbd,0xef,0x35,0x89,0x60,0xff,0x81,0xf1,},{0xd3,0xdc,0x62,0xd6,0xce,0x9c,0x76,0x6f,0x2a,0xba,0xf9,0xa7,0xfb,0xe0,0x9d,0x6b,0xdb,0x07,0xa4,0x74,0x7b,0x56,0x08,0x0d,0xb0,0x9b,0xeb,0x4a,0x4e,0x80,0x4a,0x70,0xd7,0xdd,0xf4,0x11,0x94,0x75,0xc7,0xbe,0x83,0x4f,0x31,0x95,0x6f,0x4a,0x71,0xda,0xd0,0x29,0xcd,0xf2,0x36,0x3d,0xd0,0x36,0x5c,0xe2,0x2d,0xc2,0x7f,0x07,0x80,0x03,},\"\\x91\\xcf\\xfd\\x7e\\xb1\\xcf\\x6b\\xd4\\x75\\x6b\\xce\\x6a\\x30\\xaf\\x9d\\xfb\\xa2\\x6d\\xdd\\x1c\\xce\\x03\\x94\\xc1\\x94\\xa3\\xe3\\x9c\\xc3\\xd1\\xcb\\xc2\\x21\\xb7\\xeb\\x70\\xbe\\xa1\\x8d\\x29\\xc2\\x67\\x45\\x71\\x76\\xa3\\xc9\\xe5\\x3c\\x18\\xe4\\x7d\\x10\\xa6\\x7c\\x46\\x45\\x05\\x19\\x77\\x02\\xe6\\xb2\\x47\\x0d\\x38\\x86\\x9d\\xb5\\x17\\x4b\\x15\\x8f\\x99\\x92\\xe4\\x43\\x5d\\x02\\x24\\x6f\\x54\\x02\\x58\\xde\\xdd\\x3c\\xe3\\x3d\\xf5\\x82\\x55\\x5a\\x68\\x1f\\xb7\\x6e\\xca\\xcc\\xb1\\xc2\\x98\\x9b\\x17\\x7e\\x3b\\x7e\\x45\\x4a\\xaa\\x52\\x9d\\xe5\\x9b\\xf5\\xa0\\x31\\x23\\xd5\\x71\\xdf\\x2e\\x7f\\x7c\\xb8\\x30\\x80\\x5c\\x58\\xb7\\x4a\\x65\\x3b\\xac\\x0e\\x5a\\x88\\x8e\\x08\\xdc\\x22\\x36\\xd6\\xcd\\x49\\x6a\\xa0\\x6d\\x0d\\x67\\xcf\\x3b\\x33\\x5e\\x21\\x8c\\x49\\xde\\xda\\xd8\\x2f\\xc1\\xbe\\x9e\\xf2\\x0c\\xac\\x61\\x90\\x5c\\x30\\xeb\\x13\\x2d\\x73\\x9b\\x16\\xca\\x8a\\x8c\\x90\\x66\\x19\\xc0\\xe0\\xd8\\xb3\\x39\\x85\\x32\\x7e\\x36\\xf3\\xd4\\xb8\\xfd\\xa3\\x87\\xc1\\x86\\xcc\\x50\\x44\\x31\\x04\\xdb\\x76\\x1f\\x7f\\xf9\\x30\\x12\\x70\\x20\\x4a\\x71\\x3e\\x58\\x90\\x21\\x01\\xfa\\xd0\\x00\\xce\\x93\\x16\\x47\\xc5\\x77\\xfd\\xec\\x14\\x8d\\xca\\x95\\xcd\\xc0\\x89\\x18\\xeb\\xed\\x03\\x7c\\x60\\x33\\x2f\\xad\\xf0\\x88\\xf0\\x36\\x08\\x3e\\xbc\\x92\\xe1\\x73\\xb7\\xdd\\xcc\\x30\\xc4\\x93\\xf2\\x7e\\x69\\xcd\\x17\\xa2\\x0d\\x30\\xb7\\x8f\\x83\\xa7\\x2e\\x4f\\x5a\\x74\\x7d\\x86\\xd9\\x6c\\x5e\\x1b\\xb7\\xa4\\x38\\x16\\x62\\x04\\x01\\x3e\\x21\\x64\\xd6\\xaa\\xbc\\x0d\\x56\\x2f\\x54\\x01\\x5c\\x36\\x5c\\x80\\x44\\x56\\x07\\x14\\x5e\\x56\\x92\\xee\\x34\\xf6\\x35\\x30\\x77\\xfa\\xb7\\x45\\x2d\\x88\\xce\\x3e\\xb0\\x1d\\x2b\\x37\\x97\\xdc\\x91\\xb3\\x41\\xa3\\xa7\\x26\\x30\\x15\\x16\\xba\\xae\\x18\\xe8\\x51\\xf7\\x4d\\xfb\\xdf\\x08\\x66\\xbb\\x23\\x76\\x86\\x7d\\xe5\\x52\\x31\\xe3\\x62\\xc4\\x72\\xc5\\x21\\x16\\x54\\x4c\\xd4\\xf8\\x1e\\x93\\x57\\x1c\\x4e\\xc8\\x20\\xe7\\xe6\\x53\\xf4\\xe2\\x1b\\xe0\\xa9\\x42\\x57\\x6c\\x9d\\xe9\\x1e\\x7d\\x12\\x51\\x68\\x3d\\x85\\x9d\\xe4\\x48\\xf8\\x22\\xdc\\xf3\\xd2\\xcf\\x55\\xed\\xe2\\xf9\\xc7\\x1b\\x60\\x63\\xd1\\x37\\x30\\x61\\xf8\\xf5\\x93\\x6b\\x69\\x8d\\x13\\x84\\xe6\\x54\\x59\\xea\\x2b\\xc2\\x6e\\xc9\\x67\\x75\\xef\\x42\\x52\\x07\\x43\\x2d\\xda\\x0a\\xc1\\xfe\\x28\\x52\\x6c\\x5e\\x45\\x59\\x34\\x9c\\x3d\\x8d\\xf9\\x91\\x82\\x30\\xf4\\x04\\x46\\x83\\xcc\\x2c\\x1b\\x85\\x8d\\x14\\x1a\\xb8\\xd0\\x80\\x5b\\xb9\\x33\\x60\\x67\\x52\\x2a\\xa8\\x9c\\x81\\x0f\\x3e\\xaa\\x7a\\xc2\\xd8\\xdd\\x28\\xc3\\x75\\x12\\x25\\xa1\\x9e\\xce\\xc8\\xbc\\xca\\x52\\x43\\x99\\x46\"},\n{{0xb0,0x17,0x53,0xef,0xa7,0x3b,0xb3,0xde,0x7a,0xa7,0x78,0xbe,0x7a,0xfc,0xbf,0xf6,0x6a,0x5d,0x3e,0x2c,0x2f,0x8b,0x5a,0xa2,0xb0,0x48,0x84,0x40,0x50,0x99,0x69,0x65,},{0xd0,0xcc,0x6c,0xf1,0x09,0xc9,0x99,0xfb,0xf6,0xd1,0x6f,0x47,0x1f,0xaf,0xd0,0x23,0x2b,0x0a,0x68,0xd4,0xc4,0x64,0x06,0xec,0x75,0x45,0xdb,0xab,0xa8,0x19,0x41,0x58,},{0x16,0xb7,0x42,0x12,0x27,0xae,0x09,0x13,0x06,0x85,0xcb,0xb1,0xa0,0xc6,0x0a,0xa5,0x7a,0x5e,0x1a,0xfe,0x1b,0xbe,0x6b,0xac,0xea,0x0c,0x28,0x1b,0xcc,0x89,0x98,0xe6,0x82,0x4a,0x77,0x2c,0x32,0x08,0xa6,0xb6,0xb4,0xd2,0x36,0x69,0x55,0x05,0xc9,0xbe,0x82,0x70,0x0c,0xf9,0x3a,0x78,0x39,0x85,0xa3,0x9e,0x16,0xe3,0x77,0xa7,0x41,0x0e,},\"\\x68\\x4e\\x61\\x2f\\x27\\xee\\xad\\x0d\\x34\\x84\\x4c\\xc8\\x1b\\xa9\\x11\\xc2\\x8a\\xaf\\x6d\\x66\\xe7\\x12\\x29\\xe8\\xcc\\x34\\x62\\xf7\\xc7\\xa0\\x50\\xda\\xa3\\x0c\\xb7\\x44\\x71\\x15\\x0f\\x07\\xda\\xd4\\x59\\xb5\\xa9\\x13\\x58\\x47\\x6c\\x05\\x98\\x25\\x5d\\x8a\\x64\\x2d\\xd7\\xc0\\x80\\x28\\x11\\xbd\\x88\\xe4\\xca\\xc5\\x97\\xef\\xe4\\x1e\\xbd\\x96\\xcd\\x0f\\x3b\\x5c\\xe7\\x2d\\xb4\\xbe\\x1a\\x3d\\xbd\\x6b\\x84\\xf5\\x44\\x6e\\x3d\\xa6\\x00\\xd3\\xb1\\xd2\\xb4\\x60\\xa0\\x09\\xbd\\x31\\xca\\xcd\\x98\\xa9\\x15\\x18\\xce\\x33\\xe9\\xa7\\x03\\xd4\\x04\\x28\\x87\\x36\\xcc\\xc4\\x31\\x03\\xfc\\x69\\xe6\\x79\\x74\\xf3\\x16\\x52\\xfa\\x3d\\xad\\xef\\x33\\x37\\xf6\\xc8\\x97\\xa3\\xd2\\x01\\x30\\x3c\\x8f\\x03\\x59\\x7b\\x4a\\x87\\xc9\\x8f\\x29\\x1c\\xcd\\x58\\xa3\\xf1\\xe8\\x98\\x33\\x2a\\xa5\\x99\\x3b\\x47\\xfc\\xb5\\xdd\\xaa\\x1c\\x08\\x68\\xb6\\x43\\x74\\x2d\\x0e\\x4a\\x4b\\x9c\\xd4\\x27\\x03\\x8b\\x3b\\x74\\x99\\x9b\\xc8\\x9a\\xc3\\x48\\x4c\\x0c\\xa1\\x3f\\x25\\xaa\\xe8\\xe7\\x8a\\xe1\\xcc\\xee\\x62\\x18\\xac\\xca\\xb8\\x1a\\x4f\\x69\\x4f\\x53\\x24\\xa3\\x47\\x62\\x9d\\x49\\xb5\\x5e\\x40\\x37\\x50\\x4a\\x9a\\xcc\\x8d\\xf5\\x8c\\x68\\x41\\xdd\\xdc\\xd4\\xfc\\x43\\x47\\xf7\\xb6\\xf1\\xfd\\x9d\\xe0\\x56\\x45\\x77\\xe6\\xf3\\x29\\xed\\x95\\x1a\\x0a\\x6b\\x91\\x24\\xff\\x63\\xe2\\x2e\\xb3\\x6d\\x3a\\x88\\x63\\xbc\\x1b\\xf6\\x9c\\xea\\x24\\xc6\\x05\\x96\\x7e\\x7d\\x89\\x48\\x95\\x3f\\x27\\xd5\\xc4\\xc7\\x5f\\x08\\x49\\xf8\\x72\\xa3\\xe3\\xd1\\x6d\\x42\\x2f\\xa5\\xa1\\x1e\\x1b\\x9a\\x74\\xdf\\x6f\\x38\\xb9\\x0f\\x27\\x7d\\x81\\xfc\\xe8\\x43\\x7a\\x14\\xd9\\x9d\\x2b\\xef\\x18\\x9d\\x7c\\xac\\x83\\xdd\\xc6\\x13\\x77\\xed\\x34\\x8b\\x3c\\x4f\\xc0\\x9e\\xc2\\xb9\\x00\\x59\\x25\\xd0\\x4a\\x71\\xe2\\x6d\\x64\\x16\\x67\\xbd\\xf5\\x49\\x29\\x43\\x31\\xc6\\xea\\x01\\xcd\\x5c\\x0b\\xd1\\xb6\\xa7\\xec\\xfd\\xa2\\x0b\\x0f\\x19\\x29\\x58\\x2b\\x74\\x69\\x7c\\xb2\\x62\\xc3\\x92\\x7d\\x6b\\x22\\x3f\\x4b\\x5f\\x30\\x43\\xaa\\x6e\\xb4\\x57\\x1a\\x78\\xe9\\xda\\x11\\xc2\\xb3\\x6f\\x64\\x55\\x25\\x80\\xca\\xa7\\xb5\\xfa\\x6b\\x90\\xf9\\x29\\xe0\\x16\\x2e\\x60\\x8d\\x12\\x40\\xd7\\x24\\x2c\\xd2\\xf4\\x70\\x25\\xc0\\x3d\\xeb\\xe0\\x59\\xb1\\xdc\\x94\\x77\\x02\\x32\\xbc\\x67\\x65\\x14\\x84\\x80\\xbb\\x1d\\x9f\\x50\\xda\\x1e\\xe6\\x44\\x8c\\xf9\\xc8\\x8b\\x19\\xdd\\x45\\x99\\x32\\xc0\\x6e\\xd8\\x11\\xc4\\xa6\\x4a\\x12\\xd5\\x93\\x8b\\xd1\\xc7\\x57\\xbc\\xfa\\xea\\xee\\x89\\x33\\xfe\\x5f\\xff\\x21\\x76\\x3d\\xe7\\x40\\x48\\x2b\\xcf\\x1b\\xa5\\x9a\\xfd\\xc8\\xfc\\xf8\\x73\\xc3\\xd5\\x07\\xbb\\x39\\x4e\\x32\\xe4\\x5f\\x73\\x65\\x19\"},\n{{0x4f,0x4b,0x20,0xd8,0x99,0x36,0x6f,0x2f,0x23,0xee,0x62,0x8f,0x22,0x9b,0x23,0x6c,0xf8,0x0f,0x43,0xba,0x18,0x31,0x77,0xc9,0x7e,0xe3,0x48,0x29,0x54,0x6f,0x17,0x42,},{0xc9,0x45,0x76,0x64,0x1f,0x4a,0x89,0x3c,0xdf,0xce,0xe7,0xb3,0x9f,0xc2,0x19,0x29,0xb8,0x6b,0x34,0x99,0x76,0xd7,0xb0,0xa4,0x6d,0x39,0xa5,0x88,0xbc,0xfe,0x43,0x57,},{0x0f,0x80,0xff,0x5d,0x17,0x48,0x8f,0xe2,0x6f,0x93,0xc5,0x43,0xb0,0x4e,0xd9,0x59,0xb5,0xf0,0x64,0x3f,0xc6,0x1c,0x7f,0x2c,0x3b,0xc6,0x01,0x32,0xba,0x9c,0x62,0x10,0xc8,0xb2,0x50,0xea,0x5e,0x84,0xd0,0x7b,0x01,0xde,0x68,0xbc,0x17,0x44,0x14,0xee,0xeb,0x31,0xfd,0xc2,0xba,0x68,0x23,0xe2,0x31,0xe3,0x12,0xa9,0x1e,0xde,0xdd,0x02,},\"\\xdb\\x8e\\xf0\\x2e\\x30\\x33\\xe6\\xb9\\x6a\\x56\\xca\\xb0\\x50\\x82\\xfb\\x46\\x95\\xf4\\xa1\\xc9\\x16\\x25\\x0d\\xd7\\x51\\x73\\xf4\\x30\\xa1\\x0c\\x94\\x68\\x81\\x77\\x09\\xd3\\x76\\x23\\x34\\x6a\\xe8\\x24\\x5b\\x42\\xbd\\xa0\\xda\\x6b\\x60\\x46\\x2c\\xcf\\xdf\\xc7\\x5a\\x9a\\xb9\\x94\\xe6\\x6c\\x9a\\xb9\\xfe\\xcd\\xd8\\x59\\x96\\x10\\x91\\x0a\\xff\\xe4\\xf1\\x02\\x15\\xcb\\x28\\x0b\\xf8\\xf9\\xf2\\x70\\x0a\\x44\\x47\\x96\\xda\\xe9\\x3e\\x06\\xc6\\xbe\\xa7\\xd8\\xb4\\xfe\\x13\\x01\\xba\\xa7\\x9c\\xce\\xc7\\x69\\x36\\x8f\\xeb\\x24\\x42\\xc7\\xde\\x84\\xf0\\x95\\xe6\\xb3\\xbf\\xf6\\x3d\\x38\\x8c\\xba\\xfb\\x2b\\x98\\x09\\xdc\\x38\\xe9\\xb1\\x2e\\xbd\\x03\\x9c\\x0a\\x57\\xf4\\xd5\\x22\\xe9\\x1e\\xc8\\xd1\\xf2\\xb8\\xd2\\x3a\\x4a\\x0a\\xe0\\x59\\xaf\\x85\\x39\\x3b\\xb0\\xa1\\x5f\\x74\\x91\\x10\\xf6\\x77\\x4a\\x1f\\xd7\\x31\\xa6\\xec\\x21\\x3e\\x4f\\xf4\\x35\\xda\\xab\\x54\\x6d\\x31\\xed\\x9e\\xc3\\xb6\\xd8\\xcc\\x2e\\xda\\xce\\xbf\\x4f\\xac\\xc5\\x56\\x65\\x56\\xee\\xa9\\x2e\\x5b\\x3f\\x25\\x42\\x23\\x9b\\x25\\xe2\\x80\\x12\\xdd\\x4e\\xf4\\x00\\x72\\xee\\xbf\\x83\\xed\\x2a\\x25\\x51\\x81\\xf3\\xa4\\x42\\x18\\x9d\\x68\\xc6\\xc6\\x09\\xf4\\xdf\\xdf\\x3d\\xb7\\xd6\\x7d\\x08\\x7a\\x2f\\xcd\\x6d\\x2d\\xc5\\x0b\\xbf\\xed\\x8b\\xfb\\xbf\\xcb\\x74\\xd3\\xc4\\x1f\\x02\\xa8\\x78\\x65\\xb1\\x3b\\x8e\\xfc\\xf5\\xc3\\x58\\x12\\x57\\xbe\\x0a\\xa9\\x13\\xf6\\x0c\\x37\\x05\\x27\\xbd\\xe1\\x1a\\x47\\x5c\\x13\\x6a\\x17\\xc5\\xee\\xfe\\xb0\\x3f\\x5b\\xff\\x28\\x69\\x3e\\xd8\\x41\\xe8\\xed\\x1f\\x7c\\x29\\x10\\x2f\\x55\\x99\\xdd\\x44\\x40\\x09\\xbc\\xea\\x6a\\x92\\xd5\\x57\\x41\\x52\\x45\\x8e\\x0c\\xaf\\x8a\\x36\\xaa\\x72\\xb5\\xdc\\x49\\x08\\xa6\\x46\\x1c\\x9b\\x74\\x14\\x53\\x00\\x5c\\x8f\\xbc\\xc6\\x81\\x13\\xae\\x18\\x42\\x08\\xee\\x14\\xb8\\x35\\x48\\x0c\\x6e\\xfa\\xfe\\xd1\\x8a\\x76\\x00\\x0b\\x38\\xe5\\x85\\x82\\x90\\xf4\\xd5\\x1f\\x52\\xf0\\x96\\xcb\\xe4\\x90\\xe1\\xeb\\x5c\\xac\\xb2\\x26\\xec\\x49\\x5a\\x55\\xa7\\xfa\\x45\\x78\\x43\\xd5\\x7f\\xab\\x67\\xf8\\xbe\\x7e\\x20\\x93\\x34\\x78\\x5b\\xdd\\x66\\x5d\\x7b\\x63\\xe4\\xda\\xf5\\x7b\\x6e\\x78\\x92\\x8b\\x60\\x3c\\x8c\\x0f\\x9b\\xc8\\x54\\x64\\x73\\x3b\\x61\\x27\\x3e\\xf9\\xe2\\xb8\\xa0\\xcd\\x7c\\x3b\\xf8\\xee\\x0a\\x68\\x72\\xe3\\x4d\\x5a\\x27\\xa6\\x25\\xe3\\x5e\\xaf\\x7f\\xf5\\x44\\x0b\\x8b\\x14\\x1a\\xf7\\x04\\xdf\\x70\\xc9\\xc1\\x86\\x23\\xbd\\x11\\x20\\x95\\x13\\x19\\x25\\x05\\x10\\x5c\\xd7\\xbc\\xfa\\x5f\\x0d\\x91\\x9d\\xa7\\x06\\x94\\x8f\\xbe\\x1f\\x76\\x1f\\x31\\x58\\x46\\xaa\\x3b\\x48\\x13\\xdd\\x9b\\xa3\\xd8\\x1b\\x92\\x04\\xe5\\x40\\x9c\\x03\\x82\\xb6\\xeb\"},\n{{0xd2,0xe0,0x1d,0x25,0x78,0xb6,0x25,0xa7,0x06,0x0a,0xab,0xc2,0x57,0x65,0xf1,0x68,0xc6,0x80,0xce,0xf7,0x67,0xaa,0x97,0xca,0x0e,0x5e,0xb3,0xd6,0x67,0x47,0x4b,0x2a,},{0x19,0x1a,0xc2,0x23,0x57,0x54,0x24,0xaa,0x35,0x4b,0x25,0x5b,0x81,0x2d,0xd3,0x02,0x5d,0x70,0xed,0x82,0x9e,0x08,0x26,0xc0,0x16,0x29,0xf9,0xdf,0x35,0x45,0x08,0x2b,},{0x87,0xa0,0x10,0x39,0x4a,0x9f,0x2c,0x90,0x4e,0xff,0xef,0xca,0x9f,0xb4,0xd5,0xce,0x13,0x79,0x33,0x01,0xa4,0x92,0x5b,0xa5,0x1d,0xb1,0x19,0x12,0x3a,0x4d,0x73,0x0a,0xbf,0x76,0x4c,0xe0,0x65,0xe4,0x8d,0x90,0xa7,0x9d,0x90,0x7d,0x72,0x54,0xc4,0x0c,0xc3,0x58,0x98,0x7a,0x46,0x94,0x9e,0x92,0x8b,0xbb,0x3c,0xd0,0x85,0xdf,0xab,0x06,},\"\\x20\\xd5\\xdd\\x69\\x9b\\x28\\x53\\x30\\x2a\\x68\\x17\\x09\\x4d\\x5e\\xa5\\x12\\xbd\\xf8\\x53\\x45\\x04\\xcb\\x28\\x9c\\x60\\x24\\x67\\x41\\x07\\x40\\xec\\x7e\\xb8\\xea\\x64\\x42\\xc8\\x0f\\x14\\x59\\x35\\x06\\x8f\\x91\\x22\\xfd\\xf4\\xa3\\x9f\\x20\\x10\\xf3\\x3d\\xb5\\x5b\\x81\\x4d\\x97\\xbf\\x2e\\x58\\x72\\x32\\x9f\\x11\\x26\\xd4\\xeb\\x95\\xb8\\x06\\xca\\x19\\x73\\x11\\x31\\x65\\xb1\\x16\\xbe\\x87\\x16\\x37\\x1f\\x81\\x33\\x17\\x79\\xdc\\x79\\xa5\\xcb\\x39\\x42\\x08\\x1a\\xb5\\xf2\\x07\\xf6\\xb5\\x3d\\xb0\\xe0\\x03\\x81\\x07\\xd6\\x3c\\xa9\\x77\\x08\\x18\\x19\\x82\\xdc\\xb5\\xf3\\xb9\\x30\\x10\\xec\\x6e\\xdf\\xb2\\xcf\\xd3\\x1c\\xab\\x00\\x09\\x0b\\x3c\\x38\\x51\\x5f\\x97\\x81\\x76\\x96\\x86\\xcb\\x17\\xab\\x81\\xd5\\x4a\\x8b\\x77\\x57\\x54\\xd4\\x2f\\xba\\xd0\\x86\\xb8\\x0b\\x28\\xd6\\x36\\xf7\\x8b\\x7e\\xb7\\x7e\\xd9\\xca\\x35\\xb6\\x84\\x3a\\x51\\x0f\\x0a\\xd0\\xac\\x1b\\x20\\x26\\x7a\\x00\\x03\\x01\\xb3\\xc7\\x07\\xa2\\x0f\\x02\\x14\\xd5\\x9b\\x5b\\x81\\x99\\xc2\\xf9\\xee\\x25\\xd3\\x20\\x60\\xac\\xe3\\xe0\\xf2\\x59\\x46\\x50\\x41\\x6a\\x00\\x71\\x6c\\xd3\\xf9\\x86\\x04\\xa5\\xe1\\x04\\xb3\\x33\\x10\\xfd\\xae\\x94\\xc3\\x14\\x01\\x3c\\xdc\\xa5\\xba\\x24\\x14\\x40\\x9e\\xb7\\xf1\\x90\\x13\\x94\\xf0\\x07\\xd6\\xfa\\x0a\\x29\\xdb\\xe8\\xec\\x3d\\xf9\\x8c\\x39\\x3c\\x8d\\x72\\x69\\x58\\x77\\xcc\\x9b\\xaf\\x49\\x1e\\xf3\\x0e\\xf7\\xdb\\x33\\x71\\x60\\x8c\\xa9\\x7c\\xc6\\x21\\x56\\x25\\x20\\xee\\x58\\x1d\\x5d\\x1c\\xdb\\xc7\\x82\\x32\\xd6\\xc7\\xe4\\x39\\x37\\xb2\\xcc\\x85\\x49\\xe6\\xf1\\xe0\\x8d\\xf5\\xf2\\xea\\xc8\\x44\\xfe\\x0f\\x82\\x2b\\x24\\x83\\xad\\x0a\\x5d\\xe3\\x3b\\xe6\\x40\\x89\\x49\\x0e\\x77\\xd6\\x98\\x00\\xfa\\xe2\\x58\\x9e\\xe5\\x87\\x12\\xac\\x15\\xa3\\xf1\\x9e\\x6f\\xfd\\xbc\\xa4\\x2f\\xe1\\x89\\x4e\\x88\\x9b\\x94\\xc0\\x4b\\x04\\x24\\x0d\\xaf\\xb0\\xb2\\x73\\x0c\\x23\\x6b\\x8c\\xce\\xb2\\xcb\\x97\\xaf\\xd1\\xd5\\x15\\xdc\\x19\\xd1\\x06\\x7f\\xd4\\xab\\xa8\\xce\\x29\\x7f\\xd6\\xd1\\x10\\xb3\\x5a\\x21\\xbd\\x3c\\x07\\x5c\\x57\\x7d\\x93\\xfe\\x1d\\xf7\\x7d\\x64\\x8f\\x71\\x19\\x49\\x20\\x99\\xb0\\x17\\xaf\\x44\\xeb\\xa0\\x9c\\x80\\x7f\\x11\\xa4\\xc3\\xf4\\xa1\\x1a\\x2f\\xff\\x30\\x6a\\x72\\x8b\\xa7\\x89\\x83\\x32\\x3c\\x92\\xa2\\xfd\\x5f\\xcc\\x80\\xc1\\x8d\\x42\\x34\\x26\\xf8\\x23\\xa7\\x3f\\xe0\\x40\\x94\\x95\\x52\\x84\\x29\\x3f\\x5f\\x6b\\x3c\\xa4\\xff\\x10\\x80\\xdb\\xb1\\xe4\\xc6\\xf7\\x4c\\x1d\\x93\\x5e\\xd2\\x1e\\x30\\x09\\x4c\\x7d\\xe3\\x36\\xb8\\x2d\\xd8\\x20\\x0b\\x0d\\x65\\x95\\x83\\xc5\\xbf\\xd5\\x47\\x0f\\x9d\\xb3\\x42\\xe7\\x0e\\xc4\\x00\\x07\\x42\\xc5\\x64\\x0a\\x21\\x4e\\x3c\\x2e\"},\n{{0x7c,0xd7,0xec,0x99,0xdd,0x03,0xae,0xde,0x1f,0xf1,0x07,0x3e,0xc2,0xca,0x70,0x10,0x27,0x6e,0x94,0x7e,0x2a,0xa9,0xb0,0xe6,0x5f,0x87,0x7e,0x4c,0xcf,0x1b,0x3a,0x14,},{0xe4,0xc3,0x9d,0xbe,0x94,0x93,0x17,0x6b,0x82,0x13,0xf1,0x42,0x2a,0x9d,0xe7,0xc7,0x4f,0xb6,0xa5,0x91,0x90,0xfc,0xdb,0xf6,0x37,0xc7,0xad,0x5e,0xe1,0x65,0xc0,0x4f,},{0x6f,0x99,0x20,0x27,0x70,0x96,0x45,0x35,0xe4,0x83,0xa0,0xee,0x01,0xa5,0x29,0x44,0x2e,0xb3,0x21,0x30,0x3f,0xa8,0x05,0xd4,0x75,0x60,0x4d,0x7f,0xc7,0x28,0xa9,0x10,0x3f,0xb7,0xb5,0x58,0xb9,0x55,0xf4,0xd0,0x37,0x19,0xee,0xfa,0xa3,0xb7,0xed,0x5b,0x0d,0xa7,0x57,0x10,0xbb,0x98,0x78,0x7f,0x5c,0x22,0x82,0xed,0x66,0xe9,0xf6,0x0c,},\"\\xa6\\x03\\x4a\\xa3\\xc2\\x48\\x49\\x23\\xe8\\x0e\\x90\\xe5\\xa8\\xe1\\x74\\x83\\x50\\xb4\\xf2\\xc3\\xc8\\x31\\x9f\\xaf\\x1a\\x2e\\x32\\x95\\x15\\x0a\\x68\\xe1\\xee\\xca\\x1b\\xc8\\x49\\x54\\xcc\\x89\\xd4\\x73\\x1a\\x7f\\x65\\x12\\xaf\\x01\\x46\\x4f\\xdb\\xce\\x5d\\xf6\\x8e\\xe8\\x06\\x6a\\xd9\\xa2\\xfd\\x21\\xc0\\x83\\x5a\\x76\\x55\\x9c\\xa1\\xc7\\x44\\x9a\\x93\\x3b\\xcb\\x15\\xaf\\x90\\x22\\x3d\\x92\\x5f\\xf6\\x1c\\xd8\\x3e\\xb9\\x35\\x69\\x83\\x47\\xa5\\x70\\x72\\x70\\x9a\\x86\\xb4\\xe5\\xa7\\xa6\\x26\\xe0\\x7a\\x3f\\x2e\\x7e\\x34\\x1c\\x77\\x83\\xa5\\x40\\xf8\\x4a\\xa7\\x3e\\x91\\x7e\\x86\\x7b\\xb8\\x0b\\xac\\xe6\\x25\\x47\\x05\\xa9\\xd1\\xa1\\x18\\x5d\\xe5\\x6e\\x1a\\x4e\\x78\\xaa\\xf5\\x39\\xe7\\x49\\xb8\\xf7\\x65\\xbd\\x05\\x2c\\x4c\\xd1\\x5b\\x63\\x8b\\xf8\\xec\\xf8\\x7d\\x98\\x14\\x60\\x6f\\xed\\x5a\\x69\\xf4\\xda\\xe9\\xda\\x47\\xf3\\x80\\x6d\\xd9\\x0b\\xe6\\x4f\\xcc\\xd3\\x36\\x5c\\xbe\\x9e\\x01\\xc5\\x88\\xfe\\x65\\xd6\\xb6\\x03\\x28\\x07\\x40\\x96\\x2a\\xa8\\xdd\\xb9\\x5a\\x3f\\x4f\\x67\\x4c\\x03\\xbc\\x40\\x43\\x09\\x2c\\x54\\x45\\x95\\x56\\x82\\x70\\xa2\\xc2\\xa8\\xaa\\x06\\xe3\\xf6\\x7c\\x31\\x99\\x8c\\x50\\xb9\\xa5\\x8a\\xca\\xd0\\x06\\x90\\xd3\\x84\\x81\\x14\\xcb\\x19\\x32\\x93\\xc8\\xac\\x21\\x01\\x6f\\xd9\\x96\\xf5\\xc6\\x42\\x14\\x06\\x4f\\x82\\x16\\x7b\\x2c\\x92\\x0c\\xd8\\xa8\\x39\\x75\\x58\\x52\\xac\\x77\\xc3\\xd9\\x05\\x26\\xdd\\x3a\\xdb\\x96\\x83\\x7c\\xf4\\xe7\\x26\\xf3\\x4b\\xd0\\x29\\x55\\xcb\\xac\\x5b\\x82\\xc9\\x2c\\xf4\\xaa\\x8b\\x54\\xbb\\x6e\\x43\\x6d\\xae\\x9b\\xf8\\x93\\xef\\x05\\x0c\\x6f\\x13\\x5a\\x7e\\x62\\xfc\\xd8\\x34\\xda\\xc1\\xd2\\xbe\\x8b\\x8e\\x59\\xd6\\x96\\x13\\x18\\x11\\x70\\x1c\\x43\\x18\\xbb\\x6e\\x9b\\x5a\\x20\\xbe\\xc6\\x56\\xfd\\x2b\\xa1\\x92\\xe2\\x73\\x2f\\x42\\x29\\x63\\xbe\\xd4\\xa4\\xfd\\x1e\\xc9\\x32\\x63\\x98\\xdc\\xe2\\x90\\xe0\\x84\\x8c\\x70\\xea\\x23\\x6c\\x04\\xc7\\xdb\\xb3\\xb6\\x79\\x21\\x44\\x0c\\x98\\xd7\\x27\\x53\\xf6\\xa3\\x32\\xea\\xad\\x59\\xfd\\x0f\\x57\\x74\\x29\\x23\\xfb\\x62\\x5f\\xef\\x07\\x0f\\x34\\x22\\x5e\\xa0\\x6c\\x23\\x63\\xd1\\x23\\x66\\x6b\\x99\\xac\\x7d\\x5e\\x55\\x0d\\xa1\\xe4\\x04\\xe5\\x26\\xb5\\xb2\\x29\\xcb\\x13\\x0b\\x84\\xb1\\x90\\x3e\\x43\\x1c\\xdb\\x15\\xb3\\x37\\x70\\xf5\\x81\\x1d\\x49\\xfb\\xd5\\x0d\\x60\\xa3\\x47\\x4c\\x0c\\x35\\xfc\\x02\\x1d\\x86\\x81\\x81\\x9e\\xc7\\x94\\xcc\\x32\\xa6\\x34\\xbc\\x46\\xa9\\x55\\xaa\\x02\\x46\\xb4\\xff\\x11\\x24\\x62\\x3c\\xba\\xfb\\x3c\\xb9\\xd3\\xb9\\x2a\\x90\\xfd\\xe6\\x48\\xe4\\x14\\x63\\x61\\x92\\x95\\x2a\\x92\\x29\\x1e\\x5f\\x86\\xef\\xdd\\xb8\\x9c\\xa0\\x78\\xae\\xa7\\x71\\x7f\\xc7\"},\n{{0xe3,0xca,0x37,0x13,0xa2,0xfd,0x41,0x2a,0xd5,0x33,0x6b,0xc3,0x56,0xb7,0x7b,0xe0,0x27,0xd5,0xb7,0x08,0x15,0xb3,0xac,0x2a,0xec,0xd8,0x34,0x0e,0xf5,0xf8,0x89,0xb1,},{0x1d,0x51,0x6c,0xb8,0xbe,0xf1,0x16,0xa0,0xc1,0xb6,0x92,0x90,0x09,0x93,0x3f,0x6e,0xb6,0x2c,0x23,0x05,0x07,0x45,0xfe,0x7e,0x8d,0x3c,0x63,0x16,0x23,0x77,0x81,0x11,},{0xb3,0x85,0x7e,0xa6,0x1b,0xaa,0x9e,0x62,0x83,0x8c,0x4e,0x3a,0x99,0x65,0x02,0xd3,0x36,0x4f,0xe1,0xec,0x59,0x42,0x58,0x35,0x50,0x73,0xdd,0x10,0xe4,0x97,0xc6,0x00,0xbe,0xfb,0x1f,0x8f,0x23,0x3f,0xd6,0xe3,0xb2,0xc8,0x7f,0x10,0xdc,0xb7,0x26,0x1a,0xaf,0x34,0x81,0xbf,0xd0,0x90,0x26,0x05,0xac,0xcc,0x90,0x0f,0xef,0x84,0xd4,0x07,},\"\\xdd\\x99\\xba\\xf2\\x95\\xe0\\x13\\xee\\xd1\\x07\\xba\\x8a\\xf8\\x11\\x21\\xaa\\xf1\\x83\\x5a\\x3c\\xca\\x24\\xf8\\xe4\\x64\\xb4\\xcf\\xca\\xa3\\xc7\\xbf\\xfe\\x6f\\x95\\x36\\x01\\x6d\\x1c\\x8c\\xf3\\x75\\x03\\x8c\\x93\\x27\\xe8\\xe2\\x1b\\x00\\x40\\x66\\xf5\\xea\\xc0\\xf7\\x6a\\x3e\\x8e\\xdf\\xb0\\x7b\\xe8\\xbd\\x2f\\x6b\\xc7\\x9c\\x3b\\x45\\x6d\\xe8\\x25\\x95\\xe2\\xc2\\x10\\x5b\\xb1\\xb0\\xaa\\xba\\x5e\\xee\\xe1\\xad\\xef\\x75\\x21\\x67\\xd6\\x33\\xb3\\x22\\xeb\\xf8\\xf7\\xcd\\x5f\\xbf\\x59\\x50\\x8f\\xdb\\xdb\\xec\\xf2\\x5e\\x65\\x7a\\x9c\\x70\\x50\\xaf\\x26\\xa8\\x0a\\x08\\x5b\\x08\\x17\\xc6\\x21\\x7e\\x39\\xac\\xd5\\x4c\\xb9\\xfa\\x09\\x54\\x0f\\xc7\\xbd\\xc5\\x22\\x6d\\x6a\\x27\\x6d\\x49\\x2c\\xc8\\xa3\\xdf\\xfc\\x2a\\xbc\\x6d\\x0b\\x9f\\xb0\\x8c\\xbc\\xcd\\xd9\\x43\\x2e\\x44\\x98\\x21\\xa5\\xdc\\x98\\xcf\\xb3\\xa4\\x18\\xe5\\x39\\xc8\\x90\\xfe\\x5a\\x04\\x46\\xb9\\xf8\\x1d\\x30\\x67\\x00\\x92\\x7a\\xde\\x61\\xcf\\xdc\\xc0\\x62\\x4f\\x13\\xb5\\x84\\x07\\x48\\x77\\x46\\x04\\x80\\x57\\x31\\xd9\\x2e\\x77\\xd5\\xde\\xf6\\x6b\\xe4\\x4c\\xc8\\x17\\x94\\x6f\\x1c\\xd7\\x58\\x19\\x6c\\xf4\\x80\\xf9\\x9e\\x71\\x17\\x83\\x5c\\x4c\\x87\\xcb\\xd6\\x40\\x77\\xa5\\x62\\xa8\\x0c\\xf1\\x1d\\x8c\\xa6\\x5b\\xe7\\xa9\\x4d\\x92\\xb9\\xdd\\xae\\xa9\\x97\\xe9\\x3f\\x14\\x48\\x57\\x7e\\xd6\\xd8\\x43\\x6b\\x2f\\x31\\x44\\x69\\x2c\\x1f\\xd7\\xd2\\x8a\\x03\\xe9\\x27\\x4b\\xc9\\xe8\\x66\\x9d\\x85\\x75\\xf5\\xde\\x20\\xcf\\xbd\\xbc\\xb0\\x4e\\x9f\\x39\\xf3\\x45\\x1d\\x70\\x48\\x37\\x5e\\x26\\x98\\xe7\\x22\\x84\\x6c\\xb4\\xf2\\xd1\\x9a\\x81\\x0c\\x53\\xd4\\xc1\\xa6\\xc3\\xb7\\x70\\xfb\\x40\\x2d\\xf0\\x53\\x0e\\x7b\\x29\\x07\\x22\\x3f\\xd0\\x89\\x9e\\x00\\xcb\\x18\\x8c\\xa8\\x0c\\x15\\x31\\xb4\\xe3\\x7f\\xba\\x17\\x6c\\x17\\xa2\\xb8\\xf5\\xa3\\xdd\\xc7\\xa9\\x18\\x8d\\x48\\xff\\xc2\\xb2\\x72\\xc3\\xda\\x9c\\x9b\\x89\\xdf\\xe5\\x3f\\x2f\\xe7\\xe3\\x67\\x2f\\x91\\xd1\\x18\\x18\\x49\\x1a\\xce\\x14\\x0a\\xdc\\xae\\x98\\x50\\x2e\\x11\\x4f\\x4b\\x35\\x2b\\x90\\xe2\\xe7\\xfb\\xd3\\x33\\xb2\\x45\\x9e\\x7f\\x15\\xdd\\x07\\x64\\xc9\\xc3\\x4e\\x4c\\xb7\\xcc\\x09\\x55\\x00\\xcd\\xa0\\x35\\xe8\\xe2\\xe4\\xe3\\xc8\\xfd\\x5d\\xf5\\xf3\\xaa\\x57\\x9a\\x73\\x5d\\xd8\\xa9\\xf1\\x9e\\xf3\\x36\\xfa\\x97\\x11\\x14\\xe4\\x66\\x18\\x73\\x4a\\x4c\\x13\\xd3\\x0c\\x81\\x12\\x8c\\xa2\\x1d\\xef\\x47\\x33\\x01\\x03\\xd2\\x3d\\x80\\xff\\xe6\\x74\\x21\\xa6\\xcc\\xf9\\xf3\\x6a\\x93\\xf0\\x56\\x03\\xc5\\x99\\xee\\x10\\xb0\\x34\\x51\\xf3\\x6b\\x21\\x33\\xc1\\x87\\xa7\\x9a\\xd9\\xe6\\xfd\\xfb\\xb1\\x25\\x95\\xab\\x73\\xbb\\x3e\\x2e\\x2e\\x43\\x03\\x0f\\xd3\\x7e\\x59\\x1c\\xf5\\x5d\"},\n{{0x29,0xa6,0x3d,0xcd,0x48,0xa3,0x51,0x77,0x14,0x11,0xfd,0xdc,0xab,0x46,0xbb,0x07,0x1e,0x91,0x49,0x85,0x76,0xe8,0xd0,0x2f,0x8b,0x60,0x44,0xf5,0xbd,0xd3,0xed,0x90,},{0x39,0x23,0xfd,0xcc,0x2a,0x9f,0xe5,0xca,0xbf,0x6e,0x99,0x32,0xe4,0x6d,0xbd,0x2b,0x7f,0x36,0x32,0x50,0x0f,0x9d,0x95,0x55,0x2d,0xb2,0xb0,0x45,0xbc,0x41,0x16,0x6f,},{0x12,0xbf,0x62,0x95,0x93,0xe2,0xca,0xad,0xc9,0x10,0xec,0x40,0xbf,0xe2,0xb7,0xa6,0x25,0x14,0x12,0x6b,0x16,0xba,0x3a,0x43,0x8d,0x88,0xe2,0xd2,0x1f,0x59,0x5a,0xae,0xe8,0xab,0xfa,0x4a,0xf2,0xec,0x87,0x03,0x61,0xd0,0xea,0x04,0xdf,0xc8,0xc6,0xa3,0x30,0xfb,0x28,0x41,0xc2,0xd8,0x21,0x1a,0x64,0xfa,0x1e,0x7e,0x7d,0x27,0x38,0x00,},\"\\xff\\x18\\xca\\x0c\\x20\\x4c\\x83\\x86\\xa4\\xaa\\x74\\xec\\x45\\x73\\xc7\\xb6\\x92\\x16\\xb3\\x14\\x70\\xda\\xed\\xd9\\x6a\\x4f\\x23\\x02\\x11\\x6c\\x79\\x55\\xd7\\x2d\\xac\\xc8\\x8e\\x37\\x14\\x55\\x0c\\x09\\xe6\\xf7\\xb9\\xa8\\x58\\x62\\x60\\xdc\\x7e\\x63\\xda\\x4c\\x63\\x3b\\xae\\x01\\x62\\xe1\\x16\\xe5\\xc1\\x79\\x7b\\x78\\xd8\\x7d\\x47\\xff\\xee\\xa3\\xd7\\x81\\x9d\\xf9\\xc8\\x52\\xf0\\xff\\x30\\x93\\x6a\\x10\\x5d\\x3a\\xf5\\x53\\x1a\\x8f\\x89\\x54\\x97\\x11\\xc1\\x4c\\x2d\\x3e\\xe1\\x15\\x64\\xe7\\xc8\\x52\\x5b\\xd5\\x88\\x64\\x00\\x97\\x62\\xa0\\x55\\x41\\xd8\\xe0\\x7a\\xd8\\x41\\xa5\\x5a\\x6a\\x9a\\x00\\x7e\\xf2\\x09\\xcc\\xec\\x4b\\x56\\x40\\xba\\xbe\\x35\\x65\\x1b\\x61\\xdf\\x42\\xde\\x4d\\x91\\x0e\\xe7\\x3a\\x93\\x3c\\x0b\\x74\\xe9\\x95\\x75\\x7e\\x84\\xa9\\x9e\\xb0\\x34\\xf4\\x18\\x07\\x18\\x3c\\x90\\xca\\x4e\\xa8\\xd8\\x4c\\xdb\\xa4\\x78\\x61\\x3c\\x8e\\x58\\x7c\\xb5\\xf8\\xfb\\x6a\\x05\\x50\\x81\\xda\\x6e\\x90\\x22\\x0d\\x5d\\x86\\xe3\\x4e\\x5f\\x91\\xe4\\x88\\xbd\\x12\\xc7\\xa1\\xa6\\xb3\\xc9\\xfc\\xe5\\x30\\x5e\\x85\\x34\\x66\\x58\\xef\\xfa\\x81\\x0d\\x0e\\x8a\\x2a\\x03\\x9d\\xb4\\xa4\\xc9\\x49\\x65\\xbe\\x40\\x11\\xf9\\xd5\\xe5\\xda\\x26\\x62\\x33\\xe6\\xc4\\xe1\\x8e\\xd4\\xf8\\xa2\\x5a\\x57\\xe4\\x0a\\x59\\x1c\\x7e\\xd5\\x90\\xc0\\xf8\\xb1\\xa1\\x19\\xc7\\xc9\\x74\\x7f\\x69\\x1b\\x02\\x19\\x6c\\xd1\\x8e\\x69\\x45\\x21\\x3f\\x1d\\x4c\\x8c\\x95\\x79\\xc6\\xe0\\xa2\\xac\\x45\\x92\\x41\\x28\\xd6\\xd9\\x2c\\x8e\\x4c\\x66\\x06\\x53\\x20\\x35\\x3d\\x48\\xd1\\xd5\\xe1\\x31\\x94\\xd9\\x05\\xf8\\x37\\x07\\x8f\\x8d\\xac\\x0b\\x68\\xcf\\x96\\xae\\x9e\\x70\\x55\\x4c\\x14\\xb2\\xfa\\x29\\xb1\\x96\\x30\\xe4\\xb0\\xf5\\xd2\\xa7\\x67\\xe1\\x90\\xef\\xbc\\x59\\x92\\xc7\\x09\\xdc\\xc9\\x9a\\xa0\\xb5\\xaa\\xf4\\xc4\\x9d\\x55\\x13\\xe1\\x74\\xfd\\x60\\x42\\x36\\xb0\\x5b\\x48\\xfc\\xfb\\x55\\xc9\\xaf\\x10\\x59\\x69\\x27\\xbc\\xfa\\xd3\\x0b\\xac\\xc9\\x9b\\x2e\\x02\\x61\\xf9\\x7c\\xf2\\x97\\xc1\\x77\\xf1\\x92\\x9d\\xa1\\xf6\\x8d\\xb9\\xf9\\x9a\\xc6\\x2f\\xf2\\xde\\x3b\\xb4\\x0b\\x18\\x6a\\xa7\\xe8\\xc5\\xd6\\x12\\x39\\x80\\xd7\\x59\\x92\\x7a\\x3a\\x07\\xaa\\x20\\x8b\\xee\\xb7\\x36\\x79\\x5a\\xe5\\xb8\\x49\\xd5\\xda\\xe5\\xe3\\x57\\x37\\x10\\xaa\\xa2\\x4e\\x96\\xd5\\x79\\x1e\\x27\\x30\\xd0\\x27\\x0f\\x5b\\x0a\\x27\\x05\\xba\\x51\\x5d\\x14\\xaa\\x7e\\x6f\\xa6\\x62\\x23\\x75\\x37\\x7f\\x9a\\xba\\x64\\xd0\\x25\\x69\\xa2\\x09\\xd3\\x3d\\xe6\\x86\\xe0\\x89\\xec\\x60\\x11\\x8e\\x48\\x14\\xff\\xc6\\xc0\\x77\\x8c\\x64\\x27\\xbc\\xe2\\xb6\\xb8\\x44\\xcf\\xcd\\x5a\\x7c\\xed\\x0e\\x35\\x30\\x3f\\x50\\xa0\\xdf\\xe5\\xdf\\x5d\\xde\\x1a\\x2f\\x23\"},\n{{0xc7,0x18,0x8f,0xdd,0x80,0xf4,0xcd,0x31,0x83,0x9e,0xc9,0x58,0x67,0x1e,0x6d,0xd0,0x8b,0x21,0xf9,0xd7,0x52,0x8c,0x91,0x59,0x14,0x37,0x34,0xf9,0x4b,0x16,0x98,0x83,},{0x01,0x97,0x52,0xff,0x82,0x9b,0x68,0x59,0xb9,0x05,0x8d,0x00,0xc2,0x79,0x5e,0x83,0x56,0x55,0x44,0x06,0x75,0x75,0x3f,0x37,0xe8,0x5e,0xb7,0xbc,0x58,0x39,0xc4,0xca,},{0x35,0xc1,0x70,0xdd,0x0c,0x6d,0xc2,0x92,0x0a,0x59,0x57,0x75,0xd8,0xe2,0xdd,0x65,0x24,0x3e,0x9c,0x1b,0xf9,0x6e,0xf4,0x27,0x79,0x00,0x1e,0xd4,0x5f,0x01,0xb7,0xdf,0xeb,0xd6,0xf6,0xa7,0xdc,0x2d,0x38,0x6e,0xf4,0xd2,0xa5,0x67,0x79,0xeb,0xe7,0x7f,0x54,0xe5,0xae,0xcf,0xda,0x2d,0x54,0xa0,0x68,0x47,0x6b,0x24,0xdb,0xd7,0x8b,0x0c,},\"\\x4a\\xf5\\xdf\\xe3\\xfe\\xaa\\xbe\\x7f\\x8f\\xcd\\x38\\x30\\x8e\\x0b\\xd3\\x85\\xca\\xd3\\x81\\x1c\\xbd\\xc7\\x9c\\x94\\x4e\\xbf\\xe3\\xcd\\x67\\x5c\\xf3\\xaf\\xbe\\xf4\\x54\\x2f\\x54\\x29\\x75\\xc2\\xe2\\xa6\\xe6\\x6e\\x26\\xb3\\x2a\\xc3\\xd7\\xe1\\x9e\\xf7\\x4c\\x39\\xfa\\x2a\\x61\\xc5\\x68\\x41\\xc2\\xd8\\x21\\x2e\\x2b\\xd7\\xfb\\x49\\xcf\\xb2\\x5c\\xc3\\x60\\x9a\\x69\\x3a\\x6f\\x2b\\x9d\\x4e\\x22\\xe2\\x09\\x9f\\x80\\xb7\\x77\\xd3\\xd0\\x5f\\x33\\xba\\x7d\\xb3\\xc5\\xab\\x55\\x76\\x6c\\xeb\\x1a\\x13\\x22\\xaf\\x72\\x6c\\x56\\x55\\x16\\xce\\x56\\x63\\x29\\xb9\\x8f\\xc5\\xdc\\x4c\\xbd\\x93\\xce\\xfb\\x62\\x76\\x88\\xc9\\x77\\xaf\\x93\\x67\\xb5\\xc6\\x96\\x59\\xe4\\x3c\\xb7\\xee\\x75\\x47\\x11\\xd6\\x65\\xc0\\x03\\x2a\\xe2\\x29\\x34\\xf4\\x4c\\x71\\xd3\\x11\\x78\\xef\\x3d\\x98\\x10\\x91\\x28\\x74\\xb6\\x2f\\xa5\\xe4\\x02\\x0e\\x6d\\x5d\\x64\\x58\\x18\\x37\\x32\\xc1\\x9e\\x2e\\x89\\x68\\x5e\\x04\\x64\\xe9\\x1a\\x9b\\x1c\\x8d\\x52\\x51\\xe2\\x4e\\x5f\\x91\\x81\\x3f\\x50\\x19\\xa7\\x40\\xa0\\x4b\\x5d\\x91\\xcb\\xb8\\x30\\x9e\\x51\\x61\\xbb\\xa7\\x9d\\xca\\xb3\\x82\\x39\\xa0\\x91\\xf5\\x0e\\x09\\x9f\\xf8\\x19\\xe3\\xa7\\xb5\\x20\\x5f\\xe9\\x07\\xcd\\xfe\\x9c\\x0d\\xc3\\xee\\x85\\xe3\\x2d\\x7b\\xcd\\x3c\\xe0\\x26\\x35\\xe2\\x05\\x83\\x88\\x03\\x1e\\x31\\x7f\\xbf\\x22\\xab\\x9f\\x39\\xf7\\xf7\\xe3\\xcd\\x1a\\x11\\xa9\\xc1\\xf4\\x5f\\x4e\\x1e\\x42\\xd2\\x53\\x6c\\x12\\x2c\\x59\\x18\\x37\\x91\\x18\\x47\\x10\\x8c\\xea\\xfd\\x99\\x08\\x13\\xc2\\xb6\\x34\\x4c\\xff\\xc3\\x4b\\xe3\\x71\\x61\\xdd\\x81\\x56\\x26\\x90\\x0e\\x8f\\xcb\\x85\\xc2\\x1a\\xfb\\x4f\\x6b\\xe8\\xad\\x01\\x51\\x6a\\x31\\xc2\\xa6\\x58\\x03\\x15\\x85\\x7c\\x6a\\x21\\x67\\x35\\xca\\x99\\x10\\x09\\xdb\\xc2\\xea\\x50\\x34\\x16\\x07\\x47\\xa8\\x69\\xd5\\xca\\xdb\\x0b\\x47\\xff\\xbd\\x5d\\x3a\\xc9\\x7f\\xdd\\x05\\x26\\xca\\xe6\\xea\\xa3\\x5c\\xff\\x7a\\x16\\xea\\xf4\\xfb\\x95\\x0c\\xa3\\x15\\x11\\x34\\x6f\\xea\\x61\\x41\\x99\\x9a\\x3f\\x75\\x4e\\x62\\x81\\xcf\\xba\\x15\\xe8\\xa8\\x26\\x93\\x2c\\x58\\x9c\\x5d\\x24\\x7c\\x90\\x9d\\x94\\xb4\\xea\\xb7\\xeb\\xcb\\x09\\x07\\x76\\x48\\xaf\\x06\\x5c\\x2d\\x86\\x61\\x1e\\xb5\\x88\\x45\\x3e\\xd7\\xc2\\x47\\x80\\xd7\\x3c\\x68\\x9c\\x87\\x44\\xaf\\xd5\\x33\\xa8\\x6d\\x9e\\xe9\\xe3\\x36\\x57\\x32\\xcb\\xd0\\xc3\\x51\\xe4\\x36\\xf8\\x98\\xb7\\x04\\x32\\x92\\x09\\x7e\\x03\\xe6\\x08\\x1a\\x23\\xac\\x86\\x5e\\x19\\xdc\\x88\\x58\\x96\\x9b\\x99\\x9d\\x01\\xfa\\x65\\xef\\x20\\x0c\\x3f\\x26\\x9c\\x81\\x8e\\x30\\xb9\\x36\\x5e\\xcc\\x68\\x3b\\xcf\\xe6\\x9c\\x20\\x3b\\x4e\\x0a\\xb6\\xfe\\x0b\\xb8\\x71\\xe8\\xec\\xaa\\xae\\x82\\xd3\\xac\\xd3\\x5d\\x5b\\x50\"},\n{{0x38,0xba,0x06,0x21,0x70,0x4d,0x21,0x55,0xfc,0x2f,0x78,0x55,0x51,0x96,0x57,0x5d,0xe0,0x6d,0x80,0x25,0x5c,0x35,0xe9,0xdc,0x96,0x5b,0x6f,0xe9,0x6a,0x4d,0x53,0x89,},{0x43,0x88,0xf7,0xf6,0x8a,0x9e,0xff,0xbc,0x36,0x6e,0x42,0xd9,0x07,0x01,0x56,0x04,0xda,0xce,0xd1,0x72,0x7c,0xd1,0xd8,0x9d,0x74,0xad,0xcc,0x78,0x9f,0xd7,0xe6,0xe1,},{0x42,0xbe,0xd6,0xa9,0x87,0x86,0xf6,0x64,0x71,0x5f,0x39,0xbb,0x64,0x3c,0x40,0x5a,0xe1,0x75,0x00,0x56,0x46,0x0e,0x70,0x04,0x69,0xc8,0x10,0x38,0x95,0x04,0xc5,0x1c,0xff,0xd9,0xe1,0xa9,0x4c,0x38,0xf6,0x92,0xfb,0x31,0x62,0x65,0x31,0x6d,0x8f,0x4d,0xc3,0xad,0x1c,0xdd,0x8a,0x6d,0x59,0x91,0xef,0x01,0x0c,0xd1,0x48,0x9d,0x7c,0x09,},\"\\xed\\x4c\\x26\\x83\\xd6\\x44\\xb0\\x5b\\x39\\xb0\\x48\\xef\\x1f\\x8b\\x70\\x25\\xf2\\x80\\xca\\x7e\\x8f\\xf7\\x2c\\xb7\\xed\\xa9\\x93\\x29\\xfb\\x79\\x54\\xb7\\x00\\x40\\x07\\x05\\x27\\x5f\\x20\\xb8\\x58\\xcf\\x7e\\x34\\x9a\\x35\\x10\\x66\\x5b\\x63\\x06\\x09\\xc5\\xe2\\xe6\\x20\\x69\\x26\\x3a\\xb9\\xc5\\x5e\\x41\\x23\\xa5\\x64\\xdc\\xa6\\x34\\x8c\\x8a\\x01\\x33\\x20\\x75\\xe7\\xa5\\xbe\\xc9\\xc2\\x0a\\x03\\x80\\x79\\x57\\xfe\\xfa\\x91\\x0e\\x60\\xc3\\x5a\\xe5\\x79\\x77\\x8c\\xe2\\xce\\x42\\xe6\\xa6\\x9a\\x1b\\x64\\x76\\x81\\xe4\\x3e\\xc4\\xb6\\x3b\\xd5\\xfb\\xef\\xab\\xb3\\x17\\x12\\xcb\\x3d\\x64\\x19\\xea\\xd7\\x8d\\xd4\\x1c\\x8a\\x92\\xaa\\xce\\xb6\\x3c\\xbf\\xa8\\x9d\\x2a\\xf3\\x96\\x06\\xde\\x01\\x0a\\x39\\x7e\\x30\\x20\\x53\\xa6\\x15\\xc1\\x6e\\x5e\\x95\\xad\\x99\\x35\\xc0\\x79\\xa0\\xb8\\x10\\x31\\x25\\x78\\x94\\x71\\xa1\\xe3\\x57\\x4f\\x42\\x9b\\x29\\xe4\\xd2\\x25\\xc7\\x72\\x3f\\xbb\\x3c\\xf8\\x8c\\xbd\\x73\\x82\\x3d\\x9f\\x0b\\x6c\\x7d\\x05\\xd0\\x0b\\xde\\xb0\\xfb\\x0a\\xd3\\xd7\\x13\\x20\\x33\\x18\\x3e\\x21\\xf6\\xc1\\xe8\\xd8\\xe4\\xc0\\xa3\\xe4\\xf5\\x2f\\x50\\x01\\xda\\x68\\x71\\x71\\x34\\x5c\\x6d\\xc8\\xb4\\x2c\\x42\\xa6\\x0d\\x1f\\x1f\\xfa\\x8f\\xe3\\xe7\\xbc\\xec\\xe5\\x9a\\x03\\x58\\x78\\xf9\\xd4\\xd8\\x11\\x27\\xe2\\x24\\x96\\xa4\\x9b\\xfc\\xf6\\xbf\\x8b\\x46\\xa8\\x0b\\xd5\\x62\\xe6\\x52\\x55\\x07\\x1f\\x9d\\x11\\xa9\\xeb\\x04\\x81\\xf4\\x62\\x6d\\x4d\\x71\\xff\\xc3\\x8a\\xfe\\x6e\\x35\\x8a\\x4b\\x28\\x91\\x79\\xcb\\xce\\x97\\x64\\xd8\\x6b\\x57\\xac\\x0a\\x0c\\x82\\x7e\\x8f\\xf0\\x78\\x81\\x33\\x06\\xa1\\xd5\\xfa\\xdd\\x32\\xb4\\x6a\\x1f\\xbc\\xd7\\x89\\xff\\x87\\x54\\x06\\x3e\\xec\\xfe\\x45\\x31\\x3b\\xeb\\x66\\x01\\xc3\\xa3\\x01\\x0e\\x8e\\xb9\\x7c\\x8e\\xff\\xbd\\x14\\x0f\\x1e\\x68\\x83\\x11\\x09\\x2d\\x27\\x3c\\x4d\\xef\\xca\\x47\\xda\\x6f\\x1f\\x08\\x25\\x74\\x46\\x76\\xf9\\xa2\\x80\\xb6\\xc2\\xa8\\x14\\xfa\\x47\\xfa\\xbc\\x19\\x80\\xd0\\xb3\\x7f\\x08\\x7a\\x53\\xca\\x87\\x78\\xf3\\x9f\\xfb\\x47\\x4f\\xf5\\xf1\\x17\\x1b\\x44\\x2c\\x76\\xdd\\x00\\x8d\\x92\\x18\\x2f\\x64\\x4a\\x71\\x4a\\x0f\\x01\\x1e\\x21\\x5a\\x78\\xb9\\x7a\\xf3\\x7b\\x33\\x52\\x0e\\xbf\\x43\\x37\\x2a\\x5a\\xb0\\xcf\\x70\\xdc\\xc1\\xdc\\x2f\\x99\\xd9\\xe4\\x43\\x66\\x58\\xf8\\xe0\\x7c\\xdf\\x0b\\x9e\\xa4\\xdd\\x62\\x24\\xc2\\x09\\xe7\\x52\\x1b\\x98\\x1e\\xe3\\x51\\xc3\\xc2\\xdf\\x3a\\x50\\x04\\x05\\x27\\xfc\\xd7\\x28\\x04\\x17\\x60\\x46\\x40\\x5d\\xb7\\xf6\\x73\\x4e\\x85\\xc5\\xd3\\x90\\xf5\\x20\\xb0\\xc0\\x8d\\xcb\\xfa\\x98\\xb8\\x74\\x24\\x80\\xd5\\xe4\\x6f\\x9b\\xe8\\x93\\xf6\\xd6\\x61\\x43\\x40\\xf8\\x16\\x16\\x11\\xd5\\x05\\x3d\\xf4\\x1c\\xe4\"},\n{{0xae,0x33,0x1f,0xc2,0xa1,0x47,0x59,0xb7,0x3f,0x1c,0xd9,0x65,0xe4,0x85,0x14,0xe1,0x2b,0x29,0xf6,0x3b,0x06,0xcc,0xfc,0x0a,0xd4,0x9f,0x36,0x82,0x0e,0x57,0xec,0x72,},{0x08,0x80,0x3d,0x48,0x23,0x8e,0xda,0x3f,0x9c,0xeb,0xb6,0x28,0x53,0x01,0x21,0xde,0x00,0xf0,0xf0,0x46,0x8c,0x20,0x2d,0x88,0x52,0x8b,0x8b,0xce,0xc6,0x87,0xa9,0x03,},{0x75,0xf7,0x39,0x08,0x88,0x77,0xe0,0x6d,0xc5,0x6d,0xae,0xc8,0xf1,0xe4,0xd2,0x11,0xb7,0x54,0xe3,0xc3,0xed,0xbf,0xa7,0xed,0xa4,0x44,0xf1,0x8c,0x49,0xb6,0x9c,0x5a,0x14,0x2d,0xb4,0x5a,0x0a,0x76,0x50,0xe4,0x7d,0x10,0x55,0x0b,0xa6,0x81,0xff,0x45,0xdd,0x44,0x63,0xc4,0xac,0x48,0xbf,0x44,0xb7,0x30,0x34,0xbd,0x56,0x59,0x22,0x0e,},\"\\x57\\x16\\x00\\x33\\x90\\xe4\\xf5\\x21\\x65\\x98\\xa0\\x3d\\x7c\\x43\\x0d\\xbf\\x49\\x5e\\xe3\\xa7\\x55\\x7b\\x58\\x06\\x32\\xba\\x59\\xf1\\x51\\x98\\xb6\\x18\\x0a\\x42\\x46\\x9c\\x23\\x7d\\xb5\\xbc\\x81\\xf2\\x9c\\xfa\\xab\\x0a\\xff\\x3c\\x99\\x66\\x30\\x9a\\xb0\\x69\\x58\\xc9\\xd7\\x12\\x6a\\xdd\\x78\\xe3\\xb3\\x24\\x59\\xff\\x8a\\x0e\\x0b\\xde\\xf8\\x74\\xb5\\x8e\\x60\\x83\\x66\\x8f\\x38\\xad\\x7d\\x63\\xaa\\xe1\\xf1\\x2e\\x26\\xa6\\x13\\x34\\x8f\\x9f\\x03\\xea\\x5d\\x20\\x5f\\x04\\x5d\\x78\\xcc\\x89\\x02\\xd4\\x7f\\x81\\xe8\\xb5\\x22\\x93\\xe7\\x0e\\x86\\xc9\\x80\\x3d\\x4d\\xac\\xea\\x86\\xc3\\xb6\\x74\\x58\\xae\\x35\\x79\\xbc\\x11\\x11\\x3b\\x54\\x90\\xbc\\xf3\\xe1\\xcd\\x4e\\x79\\x79\\xc2\\x64\\xd8\\x35\\x16\\x1f\\xd5\\x5e\\xfe\\x95\\x3b\\x4c\\x26\\x39\\x5d\\xd9\\x2c\\xa4\\x93\\x09\\x20\\xe9\\x04\\xfa\\xdc\\x08\\x89\\xbb\\x78\\x22\\xb1\\xdf\\xc4\\x45\\x26\\x04\\x84\\x0d\\xf0\\x24\\xdb\\x08\\x21\\xd2\\xd5\\xe9\\x67\\x85\\xa5\\xc3\\x7d\\xbf\\xd2\\xc3\\x75\\x98\\x32\\x83\\xe9\\xb5\\xb4\\x3a\\x32\\x07\\xa6\\xa9\\xb8\\x33\\x94\\x83\\x29\\xd5\\xde\\x41\\xe4\\x50\\x08\\xbc\\xba\\xd4\\x93\\xde\\x57\\x54\\xdd\\x83\\xde\\xcc\\x44\\x0e\\x51\\x66\\xed\\xaa\\xe0\\x20\\x8f\\x00\\x0c\\x5f\\x6d\\x9c\\x37\\x21\\x53\\x20\\x9e\\x5b\\x75\\x78\\x11\\x6f\\x89\\xcf\\x2f\\x8b\\x10\\x04\\xd1\\x30\\x7e\\xa7\\x9e\\xd3\\x74\\x80\\xf3\\x19\\x4a\\x7e\\x17\\x98\\x3a\\x23\\x04\\x65\\xcc\\xc3\\x0f\\xcc\\x1a\\x62\\xd2\\x80\\xfb\\xba\\xcc\\xf0\\x06\\xdc\\x4d\\xee\\x0e\\xa7\\x96\\xb8\\x1a\\xcc\\xc6\\x1a\\x06\\x3e\\x2c\\x08\\x3d\\xae\\xc0\\x39\\xbd\\x9a\\x64\\xa7\\x70\\x24\\xaf\\x82\\xec\\x1b\\x08\\x98\\xa3\\x15\\x43\\x29\\xfd\\xf6\\x16\\x73\\xc3\\x6e\\x4c\\xc8\\x1f\\x7a\\x41\\x26\\xe5\\x62\\x90\\xe4\\xb4\\x56\\x81\\x9b\\xde\\xbf\\x48\\xcb\\x5a\\x40\\x95\\x5b\\xab\\x29\\x7c\\x2b\\xbc\\xb0\\x18\\xad\\xbf\\x24\\x82\\x86\\x60\\xa5\\xd1\\x2a\\x06\\x13\\xbf\\x3c\\xcb\\x5e\\xeb\\x9a\\x17\\xfb\\x0a\\x05\\x47\\xdb\\x8d\\xa2\\x4d\\x2e\\xfb\\x87\\xba\\x1b\\x84\\x31\\x42\\xa7\\x5e\\x4c\\xa0\\xb0\\xa3\\x33\\xe4\\xa1\\x4f\\xab\\x35\\xa6\\x26\\x69\\x32\\x9c\\xa8\\x75\\x3f\\x01\\x6a\\xc7\\x0c\\xd9\\x97\\xe8\\xbc\\x19\\xee\\x44\\x8a\\xea\\xf0\\xf4\\xbf\\x3c\\xe5\\x23\\x05\\x50\\x57\\x8a\\xb6\\x4c\\x19\\x01\\x94\\x46\\xce\\x2d\\x9c\\x01\\xa0\\x3d\\x88\\x9a\\x99\\x09\\x86\\x0a\\xef\\x76\\xf0\\x67\\xc5\\x0b\\x61\\xc3\\xd0\\xf1\\x2c\\xc8\\x68\\x6f\\x5c\\x31\\xbf\\x03\\x2a\\x84\\x10\\x15\\xcf\\xef\\xf1\\xcf\\xda\\xe9\\x4f\\x6b\\x21\\xda\\xe9\\x41\\xb3\\x35\\xdc\\x82\\x1f\\x32\\x84\\xce\\x31\\x50\\x8f\\x5d\\xb5\\xc4\\x48\\xff\\xaa\\x37\\x73\\xe9\\xbe\\x1a\\x4c\\x85\\xa1\\xc5\\x8b\\x00\\x9f\\xa3\"},\n{{0x82,0x43,0x5f,0x39,0x79,0x01,0x06,0xb3,0xaf,0x72,0xf9,0x1f,0x14,0xc9,0x28,0xd2,0x46,0x5f,0x98,0xcd,0xd1,0x00,0x84,0xc4,0xa4,0x4d,0x19,0xaf,0x71,0xa1,0x92,0x7c,},{0xc5,0x2a,0x92,0x64,0x6f,0x5a,0xdb,0x21,0xc6,0xdd,0xe0,0xde,0x58,0x78,0x68,0x37,0xf8,0xa3,0x41,0x4c,0x09,0xae,0xdf,0xc2,0x7c,0x81,0x22,0x18,0xa7,0xe7,0x23,0x9e,},{0x1d,0xaa,0x44,0xef,0x06,0xd4,0xc1,0x0d,0xdb,0x48,0x67,0x84,0x23,0xc5,0xf1,0x03,0xa1,0xb5,0x68,0xd4,0x2b,0x20,0xcc,0x64,0xaf,0x11,0x0f,0xce,0x9d,0x76,0x79,0xa2,0xde,0xe4,0x12,0xb4,0x98,0x05,0x85,0xc2,0x6c,0x32,0x0d,0xba,0xa6,0x01,0xc4,0x72,0xde,0xfc,0x3c,0x85,0x41,0x5d,0xae,0xcd,0xd6,0xd2,0xd9,0xea,0xca,0xc8,0x5e,0x07,},\"\\xf3\\xd6\\xc4\\x6a\\xc5\\x24\\x8d\\x53\\x86\\xb6\\xb6\\x84\\x62\\x59\\x7d\\x64\\x70\\x39\\xf5\\x44\\xbb\\x01\\xac\\x2d\\x10\\x67\\xda\\xaa\\xa3\\x97\\xd2\\xdb\\xaf\\x12\\x5a\\x1c\\xf8\\xfd\\xf2\\x80\\xa6\\xaf\\xec\\x32\\x4d\\x53\\x11\\xf5\\x43\\x68\\x8a\\x15\\x6c\\x84\\x98\\x19\\xbb\\x04\\x6b\\x91\\x1c\\x42\\xea\\x3c\\xa0\\x1b\\x99\\x80\\x8c\\x4d\\x1f\\x3b\\x8b\\x15\\xda\\x3e\\xfe\\x2f\\x32\\x52\\x3e\\xc3\\xb0\\x9c\\x84\\xb4\\x8c\\xff\\xd1\\x3c\\x17\\xc9\\xe2\\x6c\\x91\\x2d\\x9c\\x3e\\x93\\x46\\xdf\\xae\\x3f\\xd0\\xc5\\x6c\\x88\\x58\\x78\\x07\\x82\\xf6\\x1a\\x4c\\x4d\\xbf\\xff\\x1e\\x9c\\xb4\\xb3\\x62\\xcd\\x80\\x01\\xf9\\xcd\\xfe\\xb1\\xa7\\x20\\x82\\xdc\\xe9\\xc9\\xad\\xe5\\x2e\\xff\\xc9\\x74\\x46\\x88\\xac\\x0b\\x86\\xc8\\x82\\x66\\xb5\\x3d\\x89\\x5c\\x17\\xea\\xd9\\xe8\\x9e\\xd8\\xd2\\x4d\\x40\\x64\\x2f\\x3a\\xd3\\xb9\\xbf\\x9b\\xbc\\x4d\\xda\\x79\\x66\\xef\\x83\\x28\\x28\\x9f\\xb3\\x1e\\x17\\xc8\\x1f\\xd0\\x28\\xef\\x1b\\xd9\\xa1\\xd4\\xc7\\x92\\xe8\\x6e\\xc2\\xdb\\xdc\\xe3\\xf9\\x37\\xee\\xcc\\x3e\\xeb\\x51\\x88\\xd3\\x25\\x94\\x19\\x19\\xbb\\xf7\\x5b\\x43\\x88\\xe2\\x39\\x95\\x07\\xa3\\xd7\\xfb\\x38\\x75\\x02\\xa9\\x5f\\x42\\x1c\\x85\\x82\\x6c\\x1c\\x91\\x76\\xc9\\x23\\xe3\\x16\\x31\\x0a\\x4b\\xa4\\x5c\\x8a\\x5e\\xf7\\x55\\x7c\\xf8\\x7b\\x77\\x02\\x0b\\x24\\xf5\\xba\\x2b\\xfd\\x12\\x28\\x10\\x95\\x66\\x30\\x7f\\xea\\x65\\xec\\x01\\x50\\x19\\x69\\x12\\x17\\xbc\\xe6\\x9a\\xee\\x16\\xf7\\x62\\x49\\xc5\\x8b\\xb3\\xe5\\x21\\x71\\xcf\\xef\\xd5\\x25\\x4e\\x5e\\x0f\\x39\\x71\\x69\\x18\\x6d\\xc7\\xcd\\x9c\\x1a\\x85\\xc8\\x10\\x34\\xe0\\x37\\x18\\x3d\\x6e\\xa2\\x2a\\xee\\x8b\\xb7\\x47\\x20\\xd3\\x4a\\xc7\\xa5\\xaf\\x1e\\x92\\xfb\\x81\\x85\\xac\\xe0\\x1d\\x9b\\xf0\\xf0\\xf9\\x00\\x61\\x01\\xfc\\xfa\\xc8\\xbb\\xad\\x17\\x1b\\x43\\x70\\x36\\xef\\x16\\xcd\\xae\\x18\\x81\\xfc\\x32\\x55\\xca\\x35\\x9b\\xba\\x1e\\x94\\xf7\\x9f\\x64\\x55\\x55\\x95\\x0c\\x47\\x83\\xba\\xb0\\xa9\\x44\\xf7\\xde\\x8d\\xf6\\x92\\x58\\xb6\\xaf\\xe2\\xb5\\x93\\x22\\x17\\x19\\x5d\\xa2\\x45\\xfe\\xe1\\x2a\\xc3\\x43\\x82\\x4a\\x0b\\x64\\x03\\xdf\\xe4\\x62\\xd4\\x3d\\x28\\x8d\\xb3\\x1f\\x99\\x09\\x7e\\xc3\\xed\\xc6\\xe7\\x65\\x47\\xa3\\x74\\x2f\\x03\\xc7\\x77\\xef\\xb1\\x58\\xf5\\x8d\\x40\\x53\\xfa\\x6c\\xc8\\xd6\\x8b\\x19\\x6a\\xf4\\xf9\\xde\\x51\\x6f\\xd9\\xfb\\x7a\\x6d\\x5d\\x9e\\xe4\\xa8\\x9f\\x9b\\x9b\\xce\\x1e\\x4d\\xee\\x35\\x7a\\x1e\\x52\\xc0\\x54\\x4c\\xfb\\x35\\xb7\\x09\\x2d\\x1a\\xa5\\xa6\\xf7\\xf4\\xc7\\x60\\x26\\x10\\xe9\\xc0\\x0e\\xf5\\xb8\\x76\\x1b\\xc7\\x22\\x79\\xba\\x22\\x8a\\x18\\xb8\\x40\\x0b\\xd7\\x6d\\x5b\\x2b\\xfd\\x7c\\x3c\\x04\\xaa\\xc4\\x43\\x6d\\xae\\x2e\\x98\"},\n{{0x1b,0xea,0x77,0x26,0xd9,0x12,0xc5,0x5e,0xc7,0x8b,0x0c,0x16,0x1a,0x1a,0xd3,0xc9,0xdd,0x7b,0xc3,0x29,0xf8,0x5d,0x26,0xf6,0x2b,0x92,0xe3,0x1d,0x16,0xd8,0x3b,0x48,},{0xc9,0xdd,0xb4,0x21,0x06,0xcc,0xef,0x4e,0x0e,0xf4,0x79,0x45,0x51,0xd2,0x1d,0xf9,0x4a,0x63,0x06,0x87,0x2f,0x23,0x16,0x63,0xe4,0x7e,0x24,0x1f,0x77,0xcc,0x3e,0x82,},{0xf9,0xb0,0x45,0x17,0xbd,0x4f,0xd8,0xef,0x90,0xf2,0x14,0x0f,0xc9,0x5d,0xc1,0x66,0x20,0xd1,0x60,0x2a,0xb3,0x6c,0x9b,0x16,0x5f,0xff,0x3a,0xba,0x97,0x8d,0x59,0x76,0x71,0x10,0xbb,0x4e,0x07,0xa4,0x8f,0x45,0x12,0x14,0x47,0xac,0x0c,0x1a,0xba,0xc5,0x85,0xd3,0x91,0xd4,0x04,0x20,0x41,0x89,0x86,0x28,0xa2,0xd2,0xdc,0xc2,0x51,0x0d,},\"\\xb1\\x12\\x83\\xb1\\xf0\\xce\\x54\\x9e\\x58\\x04\\x73\\x0a\\xc3\\x20\\x7a\\xc0\\x03\\x32\\xd2\\xaa\\xcf\\x9c\\x31\\x0d\\x38\\x32\\xd8\\x79\\xf9\\x63\\x4b\\xd8\\xa5\\x8a\\xdf\\x19\\x9e\\x4b\\x86\\x3b\\xb1\\x74\\x81\\xd2\\x8a\\xcb\\x2d\\xa0\\xe1\\x55\\x7b\\x83\\x36\\xa4\\x00\\xf6\\x29\\x56\\x25\\x03\\x1d\\x09\\xe4\\xdf\\x4d\\x31\\x9b\\xbc\\x1e\\x8f\\x6e\\x92\\x32\\xd2\\x30\\x53\\xbb\\x3f\\xfa\\xc4\\xfe\\x2c\\x70\\xce\\x30\\x77\\xfc\\x00\\x60\\xa5\\xcb\\x46\\x92\\xa1\\xcf\\x0b\\x3e\\x62\\xfe\\x45\\x48\\x02\\xae\\x10\\xb8\\x3d\\xed\\x61\\xb6\\xbf\\x45\\x4c\\xa7\\x5e\\x4c\\xda\\xd5\\x53\\x2f\\x20\\xb7\\x06\\x54\\xf1\\x2b\\xa9\\x06\\xf0\\x03\\xa8\\xb9\\xe9\\x86\\xf1\\x5a\\x39\\x41\\x9d\\xeb\\x2e\\xa1\\xea\\xd7\\x59\\x82\\x90\\xee\\xeb\\xf9\\x25\\x2b\\x0c\\x27\\x60\\x5a\\x7a\\x73\\xa6\\xab\\xeb\\xb4\\x22\\x71\\xd7\\x1a\\x3c\\x19\\x7a\\x46\\xbc\\xc8\\xdb\\x11\\xd9\\x24\\x28\\x42\\xf3\\x78\\x36\\x4a\\x37\\xee\\xca\\xa3\\x4e\\x98\\x21\\x35\\xbe\\x34\\x18\\x2c\\x69\\xca\\x8e\\x6e\\x3c\\x8c\\x90\\xe1\\xb4\\xb2\\xb4\\x75\\x81\\x5a\\x17\\x83\\x77\\xae\\x01\\x65\\xa7\\x64\\xc8\\xba\\x28\\x89\\xb5\\xab\\x29\\x09\\x49\\xd8\\x48\\x7a\\x88\\xe0\\xd3\\xd2\\xbc\\x7e\\x25\\x20\\x17\\x6a\\xa6\\xff\\x9f\\xf0\\xc4\\x09\\xff\\x80\\x51\\x5f\\x4f\\x0b\\x83\\xc5\\xe8\\x2c\\x23\\xfd\\x33\\x26\\xcd\\xd6\\xb7\\x62\\x52\\xe7\\xfd\\xdc\\xd6\\xe4\\x77\\x09\\x78\\xcd\\x50\\x3e\\xd2\\xd6\\xb4\\x80\\x10\\x11\\x67\\xd3\\xf1\\x91\\xfe\\xd8\\xd6\\xd7\\x4d\\x74\\xa2\\x00\\x7d\\xb1\\x09\\x2e\\x46\\xa2\\x3d\\xde\\xcd\\xdc\\xdb\\x98\\x46\\x64\\x04\\x7b\\x8d\\xd7\\xcc\\x8a\\x57\\x6e\\x1a\\x80\\x6f\\x52\\xcb\\x02\\x7a\\x94\\x80\\xa9\\x5c\\xc4\\x4b\\x1e\\x6f\\x2e\\x28\\x6e\\x9b\\x7a\\x6b\\xf7\\xb3\\x96\\xfa\\x54\\x96\\xb7\\xa5\\xb1\\xc0\\x3d\\x9c\\x5c\\x27\\xda\\x1a\\x42\\x99\\x0d\\x10\\xb1\\x2f\\xb8\\x64\\x0e\\x15\\x96\\xf2\\x6b\\x36\\x6d\\x27\\x0b\\xa6\\x4f\\x99\\xaf\\xff\\xe3\\xfe\\xce\\x05\\xa9\\xb0\\x25\\x4b\\x20\\x8c\\x79\\x97\\xcd\\xb5\\x12\\xfc\\x77\\x52\\x79\\x54\\xa1\\xcb\\x50\\xfd\\xab\\x1c\\xc9\\xa4\\x51\\x62\\x74\\x1f\\xd6\\xf9\\xd3\\xfd\\x5f\\x2e\\x38\\x28\\x53\\xd7\\x33\\x5d\\xba\\x1e\\x6b\\x29\\x59\\xdd\\x86\\xe1\\x25\\xe6\\x7b\\x53\\xdc\\x8e\\x45\\x3c\\x81\\x0b\\xc0\\x1b\\xf2\\x0b\\xce\\x7b\\x61\\x8d\\xd5\\xd1\\xed\\x78\\x41\\x06\\xee\\x06\\xa3\\xec\\xaf\\x6b\\x3b\\xee\\x0b\\x56\\x83\\x3b\\x0b\\x81\\x31\\x39\\xc5\\xa6\\x96\\x00\\x0a\\x44\\x9c\\x97\\x90\\x6a\\x2f\\xbd\\xdc\\x2d\\x9d\\xe9\\x40\\x6e\\xa2\\x82\\xac\\x4e\\xe5\\xef\\x8b\\xf3\\x85\\x4c\\x74\\xa6\\xb7\\x17\\x3d\\xd2\\xf7\\x9c\\x7a\\x12\\x6f\\x3c\\x7b\\x04\\x33\\xfd\\x4e\\xa2\\x6e\\x87\\x7a\\x14\\x83\\x1d\\xd4\\x15\\xa1\\x9d\"},\n{{0xd0,0x1a,0x0e,0xad,0x9d,0x69,0x48,0x33,0x28,0x3b,0x9c,0xd7,0x29,0x9a,0x7b,0xd7,0x5f,0xa9,0x0b,0x1d,0x2d,0x78,0x84,0xe4,0x55,0x7b,0x33,0xc9,0x98,0x77,0x2a,0x68,},{0xa0,0xf7,0x57,0x47,0x9b,0xa6,0x27,0xef,0xef,0x95,0xd6,0xec,0x7a,0x93,0x1d,0xfa,0xc4,0x37,0x3d,0xf3,0x3d,0xaa,0xf4,0xdd,0xc4,0xec,0x68,0x94,0xc8,0x26,0x1e,0xd7,},{0x9a,0x0f,0xf7,0xf3,0x51,0x74,0xec,0x3f,0x66,0xd2,0x2a,0x6f,0x06,0xdf,0x60,0xe0,0x9c,0x8f,0x62,0x3a,0x5a,0xca,0x81,0x0e,0x23,0xa8,0x8d,0x0e,0x6a,0x31,0xcb,0x6f,0x1c,0xe1,0xc1,0xf9,0xdc,0xcc,0x9e,0x14,0x84,0xb6,0x8d,0xd0,0x04,0xac,0x53,0x59,0x7e,0x29,0xad,0x6a,0xb7,0x2e,0x8c,0xe2,0xb7,0x5a,0xd5,0xb8,0x0e,0xb8,0x48,0x03,},\"\\x76\\x27\\x53\\x4e\\x9a\\x83\\xd1\\xe4\\x06\\xab\\x94\\x8d\\x30\\xd1\\xda\\x9c\\x6a\\x5d\\xb0\\x8e\\x0f\\xeb\\x7f\\xc5\\xba\\x5c\\xbf\\x76\\x84\\x9e\\xe8\\xad\\xd4\\x84\\x7e\\xf5\\xca\\x5a\\x0d\\xae\\x41\\x1a\\xca\\x09\\x74\\x51\\xcb\\x4c\\x2b\\x49\\x8c\\x94\\x70\\x97\\x40\\x70\\x07\\x64\\x0d\\xc1\\x9e\\xd9\\x38\\xe3\\xb9\\x1b\\xf5\\x1c\\x95\\x81\\x16\\x8d\\xf8\\x60\\xbd\\x94\\x75\\x16\\x68\\xda\\xbd\\x72\\x1d\\xc7\\x39\\x98\\x40\\x0b\\xe2\\x0c\\x9a\\x56\\x3d\\x50\\x51\\xef\\x70\\xe3\\x54\\x6f\\xee\\x67\\x33\\x12\\xb5\\x2a\\x27\\x40\\x41\\x05\\x7e\\x70\\x84\\x8e\\xb7\\xc5\\xa2\\x16\\x44\\xc9\\x7e\\x44\\x8a\\xbd\\x76\\x40\\x20\\x7d\\x7c\\xda\\xfc\\xf4\\x5d\\xa6\\xdf\\x34\\x94\\xd3\\x58\\x5b\\x0e\\x18\\xac\\x5a\\xc9\\x08\\x1c\\xb7\\xa4\\x07\\xa3\\x9a\\x87\\x77\\x05\\xcb\\xaf\\x79\\xa0\\x1b\\x91\\x5f\\x73\\x6e\\xb0\\x25\\xc5\\x8b\\x4b\\x5d\\x80\\x7f\\xb7\\xb7\\x56\\x6c\\x59\\x69\\x78\\x7c\\x1d\\x6c\\xa4\\xeb\\xa9\\x7d\\x50\\x9e\\xf7\\xfb\\x35\\x50\\xd2\\x1d\\x37\\x7e\\xce\\xff\\xcf\\x0e\\xb6\\x68\\x18\\x95\\xad\\xbd\\x24\\x6e\\xe7\\xbf\\x3c\\x93\\x5a\\x00\\x64\\x78\\xb8\\x32\\xec\\xe4\\x6d\\xe6\\x11\\x8b\\x17\\xe4\\x66\\xa2\\x7f\\xc2\\xa4\\x4a\\x89\\x6b\\xaa\\xe2\\x72\\xf9\\xec\\xf0\\x18\\xc6\\x5c\\xb5\\x0c\\xfb\\xfc\\x8d\\x26\\x09\\x94\\xa1\\x8a\\x83\\x2d\\x97\\x19\\x28\\xc4\\x49\\x67\\x57\\x24\\x58\\x51\\x31\\xc8\\x71\\x53\\x3c\\x98\\x97\\xd8\\xf8\\x0f\\x9c\\x04\\x16\\xb7\\x18\\x78\\x6b\\x10\\xfe\\xa8\\xeb\\x5b\\xd8\\x13\\xa2\\x69\\xa1\\xb6\\x77\\xb7\\xa2\\x50\\x7a\\x44\\xb7\\x13\\xd7\\x05\\x08\\x65\\x30\\x99\\x5e\\x59\\x33\\x5d\\xdc\\x28\\x55\\xe8\\x47\\xe4\\xf4\\xdb\\x06\\xc9\\x1f\\x1d\\x54\\x02\\x3d\\x8a\\x10\\xf6\\x9f\\x9e\\x61\\xbd\\xce\\x4b\\x68\\x6f\\xb6\\x17\\xbd\\x50\\x30\\xe7\\x55\\xca\\xdb\\x1f\\x64\\x4e\\x1d\\xdd\\x91\\x61\\x9b\\x96\\xec\\xd6\\x05\\xb0\\x01\\x98\\xb9\\xa6\\xed\\xdb\\x5a\\x84\\xeb\\xd3\\x69\\x2b\\x66\\x59\\x79\\x76\\x66\\x37\\xc6\\x77\\x37\\x8c\\x1c\\x77\\x04\\x1f\\xd4\\xa6\\xb3\\x55\\x5c\\x1d\\xc8\\xa8\\x3f\\xe9\\x01\\x3b\\xb6\\x10\\x6c\\xc1\\x8a\\x2b\\x03\\x7c\\x93\\x77\\xb7\\xa1\\xa5\\xa5\\xd0\\xdc\\xc5\\x49\\x18\\xea\\xad\\x7e\\x32\\xc8\\x80\\x76\\x7b\\x26\\xfd\\x2e\\xa2\\xd6\\x8b\\x04\\x05\\xf5\\xe0\\x74\\xf5\\x5a\\x19\\xd8\\xa3\\x9f\\xfb\\xb7\\xdc\\x32\\xfa\\xee\\x6a\\x7f\\x95\\x32\\xae\\xc8\\xa0\\x77\\x6c\\x3f\\xf8\\x3a\\xe3\\xa4\\x62\\x77\\x38\\x49\\x6a\\x37\\x1e\\xb9\\xe0\\x90\\xb7\\x4e\\x0e\\xdd\\xec\\xfc\\xd4\\x1b\\xed\\x0c\\x0c\\xe5\\x81\\x27\\x52\\x43\\x47\\x2d\\x26\\xda\\x8c\\x99\\x8e\\x4b\\x6d\\x6b\\x44\\xfc\\x88\\xba\\x2a\\xb5\\x46\\x42\\x22\\x54\\x17\\x12\\x02\\x94\\x41\\x78\\x05\\x74\\x2b\\xdb\\x33\\xb7\\xb1\\x22\"},\n{{0xdf,0x64,0x89,0x40,0xb5,0x78,0xbc,0x31,0xd2,0xa6,0x52,0x96,0x5f,0x30,0x39,0x1c,0xaf,0x06,0xd5,0xf2,0x51,0x59,0x9a,0x73,0x7c,0xe1,0x0b,0xe5,0x5f,0x4a,0x9d,0x0d,},{0x27,0xde,0x92,0x04,0x19,0xc1,0x86,0xb0,0x1b,0xe5,0x42,0x79,0xfb,0x8f,0x9b,0xe4,0xbb,0x4b,0x2c,0xad,0x75,0xca,0x7e,0x8f,0x79,0x2b,0xfa,0x7b,0xb9,0x7c,0x7f,0x41,},{0x62,0xbc,0x99,0x1c,0x45,0xba,0x9b,0x26,0xbf,0x44,0x01,0x16,0x26,0x41,0x62,0xc3,0x4c,0x88,0x59,0x78,0x85,0xe9,0x60,0x50,0x83,0xc6,0x04,0xb5,0xf5,0xd8,0xfa,0x6f,0x66,0x2b,0xa2,0x14,0xf7,0x6e,0x6c,0xf8,0x4e,0x5e,0xc0,0x4d,0xf1,0xbe,0xef,0xc5,0xf2,0x5d,0x3a,0x3b,0x72,0xf9,0x8b,0x50,0x69,0x83,0x19,0x16,0xa6,0x32,0x96,0x01,},\"\\x1a\\xe5\\x20\\xbe\\xeb\\x4a\\xd0\\x72\\x2b\\x43\\x06\\x7f\\xa7\\xcd\\x28\\x74\\xab\\xcf\\x34\\xdd\\x92\\x37\\xb4\\x47\\x8e\\xae\\x97\\x72\\xae\\xa2\\x97\\xa6\\x7f\\xb7\\x9b\\x33\\x07\\x02\\x04\\xba\\xee\\x44\\x0b\\x9c\\x87\\xe2\\xfb\\xcb\\xeb\\x76\\x80\\x1d\\xdd\\xea\\x5e\\x45\\x30\\xd8\\x9e\\x11\\x58\\x31\\x79\\x93\\x9a\\x00\\xa3\\x2f\\x81\\x13\\x32\\xc5\\x22\\x91\\xcc\\x7a\\xc9\\x1e\\x5a\\x97\\x0c\\xd5\\xaa\\x70\\x8b\\x1d\\xa2\\x6b\\xe9\\xfe\\x43\\x2a\\x9b\\xbd\\xa1\\x31\\x9e\\x31\\xe4\\xbc\\xc9\\xf1\\x66\\x6a\\x05\\xb5\\xc0\\x5b\\x87\\x6b\\xfd\\x1f\\x76\\x66\\x87\\xcc\\xea\\x4e\\x44\\x82\\xe9\\x24\\x32\\x9a\\xfa\\xce\\x5e\\xe5\\x2e\\x98\\x79\\xfd\\x69\\xb7\\x6e\\x0f\\x7e\\x45\\x2e\\xc4\\x71\\x3b\\xff\\x21\\x6d\\x00\\xc8\\x25\\x99\\xd2\\x7c\\xa4\\x81\\xf7\\x3a\\xae\\x13\\x6f\\x08\\x75\\xc8\\x8a\\x66\\xb1\\xb6\\xf3\\x4c\\x50\\x52\\x3a\\xb6\\x02\\xe9\\xd4\\xeb\\xb7\\xee\\xb9\\xe0\\x43\\xa6\\x5e\\x41\\x89\\x9d\\x79\\x75\\x2a\\x27\\x9d\\x2e\\xd4\\x69\\x93\\x92\\x6f\\x36\\x21\\xe7\\xc3\\x2c\\x9a\\x9b\\x3b\\x59\\xd8\\xdd\\x57\\xbe\\xca\\x39\\x28\\x54\\x34\\xde\\x99\\x1c\\xbd\\x2d\\xfc\\xbc\\x5c\\xa6\\x2a\\x77\\x79\\xf4\\x75\\xd0\\xce\\xf2\\xf3\\xe5\\x62\\xf2\\x9a\\xcd\\x47\\x4f\\x3c\\x99\\xec\\x5b\\xd8\\xde\\x01\\x10\\x1b\\xed\\x2e\\x0c\\x9b\\x60\\xe2\\xd7\\x0f\\xd4\\x32\\xc8\\x92\\xfc\\x66\\xf8\\xd4\\x61\\x9a\\x91\\x1b\\x56\\x25\\x16\\x3e\\x9a\\x42\\xbf\\x9e\\xa3\\x85\\x86\\xd8\\xe7\\x64\\x00\\x15\\x64\\xd3\\x35\\x41\\x12\\x25\\xfc\\xb0\\xa0\\x6d\\xc2\\xa8\\x2d\\xa0\\x77\\x9a\\x3c\\x44\\x4e\\xb7\\x86\\x42\\x01\\xb4\\x3e\\xbb\\x72\\xb9\\x21\\xf3\\x4d\\x3c\\x13\\x08\\x9d\\xf2\\xf4\\xfa\\xc3\\x66\\xff\\x1e\\x3c\\x0b\\x96\\xf9\\x3d\\x2b\\x4d\\x72\\x6a\\x5c\\xe4\\xd6\\x91\\x6d\\x82\\xc7\\x8b\\xe3\\x54\\xa1\\x23\\x0c\\x2c\\xf0\\x41\\x8c\\x78\\xa1\\x91\\x3e\\x45\\x4f\\x64\\x8c\\xc9\\x2c\\x8d\\xd0\\xe1\\x84\\x64\\x5f\\xe3\\x78\\x1d\\x26\\x3c\\xff\\x69\\xf5\\xc6\\x0b\\x1e\\xbb\\x52\\x00\\x5a\\x8b\\x78\\xa5\\x15\\xc7\\xe8\\x88\\x6f\\xfe\\x05\\x4d\\xab\\x42\\x8e\\x2e\\x22\\x1d\\x9d\\x76\\xaf\\xf4\\x26\\x54\\x16\\x8d\\x83\\x3b\\x88\\x17\\x82\\x93\\xe1\\xfe\\xdd\\x15\\xd4\\x6c\\xd6\\x09\\x48\\x31\\x29\\xc4\\xd2\\xd8\\x44\\x32\\xa9\\x9d\\x31\\xff\\xe9\\xbd\\xb5\\x66\\xf8\\xc7\\x5c\\xe6\\x5e\\x18\\x28\\x8e\\x4d\\xf8\\xc1\\x67\\x31\\xa0\\xf3\\xfd\\xde\\x1c\\xca\\x6d\\x8e\\xde\\x04\\x35\\xff\\x74\\x36\\xca\\x17\\xd0\\xae\\xb8\\x8e\\x98\\xe8\\x06\\x5c\\xbc\\xbf\\xd0\\xff\\x83\\x04\\x3a\\x35\\x7c\\xd1\\xb0\\x82\\xd1\\x70\\x3d\\x46\\x18\\x81\\x87\\x2c\\xdf\\x74\\x1e\\x4f\\x99\\xbd\\x14\\x67\\x45\\xba\\x70\\x39\\x74\\xbe\\x40\\xf5\\x79\\xbf\\x5c\\x4d\\xba\\x5b\\xdb\\x8c\\x94\\x1b\\xce\"},\n{{0xc8,0xac,0x23,0x45,0x58,0xaa,0x69,0x81,0x6b,0x36,0x8b,0x77,0xb7,0xcc,0xcb,0x5c,0x8d,0x2a,0x33,0xec,0x53,0xae,0xef,0x2c,0xe2,0x28,0x71,0x43,0xbd,0x98,0xc1,0x75,},{0x53,0x64,0xba,0xf1,0xfd,0xb2,0xc6,0x38,0x40,0xb3,0x0d,0x40,0x31,0xcf,0x83,0xa2,0xe1,0x8e,0x62,0x07,0x93,0xba,0xe5,0x9d,0x10,0x35,0xc0,0xed,0xe5,0x5e,0x52,0x8b,},{0x32,0x25,0x03,0x61,0xdf,0x6e,0xd2,0x83,0x48,0x5f,0x95,0xf3,0xd3,0x57,0xa4,0xf1,0xc3,0x3a,0x8c,0xf9,0x16,0x58,0x32,0x7c,0xd4,0x53,0xd4,0x9c,0x95,0x36,0x65,0x51,0x08,0x70,0xaa,0x45,0x4c,0xfa,0x3b,0x83,0x24,0x52,0x20,0xa8,0x27,0xd0,0xec,0x74,0x77,0xf9,0xec,0xeb,0x79,0xc4,0xa2,0x9f,0x30,0x1f,0x95,0x3c,0xc8,0xca,0xac,0x07,},\"\\xce\\x48\\x8d\\x26\\x97\\x5c\\x1c\\x93\\x28\\xb4\\x7f\\xa9\\x2e\\x19\\x56\\x13\\x30\\x04\\x1b\\x23\\xa0\\xe5\\x7a\\x4b\\x8b\\xca\\x89\\xeb\\x5f\\x61\\x5e\\x73\\xdd\\x7f\\xae\\x69\\xc2\\x38\\x0e\\x32\\x12\\xf9\\xb7\\x33\\x41\\xc3\\x56\\xdb\\x75\\xa6\\x25\\x6d\\x7a\\x20\\xa9\\x7f\\x75\\x9d\\x4c\\xba\\x71\\x97\\x17\\x8e\\xa7\\x24\\xdd\\x93\\x29\\x49\\x36\\x0e\\x96\\xc5\\x0a\\x4b\\x3b\\xa5\\x5a\\x95\\x33\\x72\\xc3\\x97\\xb0\\x96\\x9c\\x2b\\x14\\xd3\\x60\\x9e\\x0a\\x85\\x2d\\x48\\x4d\\xf7\\x0e\\xaa\\xb1\\x12\\x49\\xeb\\xeb\\x32\\x37\\x92\\x1f\\x0a\\x39\\xa5\\x5d\\x7d\\xcc\\xfe\\xf2\\x05\\xd9\\x4e\\xc8\\x0d\\x9e\\x1f\\xd6\\xa2\\xc1\\xef\\xd2\\x98\\x44\\x10\\x1d\\xfe\\x2c\\x5f\\x66\\x8a\\xdb\\x79\\x75\\x91\\x5d\\xed\\xd0\\x86\\x50\\x0c\\xee\\x2c\\x1e\\x23\\x3e\\x8e\\x48\\x85\\x5c\\xc1\\xa6\\xf2\\x87\\xd6\\x3d\\xce\\x10\\xad\\xdd\\x13\\xca\\xc7\\xb7\\xa1\\x87\\xef\\xe4\\x7e\\x12\\xd1\\xc3\\x5b\\xb3\\x97\\x40\\x52\\xb2\\x3a\\x73\\x66\\x8d\\x3e\\x4c\\x87\\xdb\\x48\\x41\\xaf\\x84\\x6e\\x80\\x86\\x72\\xc4\\x3d\\x0a\\x15\\x22\\xe2\\x96\\x5f\\x08\\x39\\x51\\xb2\\xb2\\xb0\\xc4\\x09\\x54\\x8e\\xe6\\x18\\x2f\\x0c\\x98\\x50\\x51\\x4c\\x9e\\x6c\\x10\\x2f\\x54\\xba\\x41\\x24\\xc9\\x2a\\x90\\x27\\x4f\\x40\\x58\\x91\\xe6\\x62\\xf5\\xeb\\xb3\\x77\\x1b\\x85\\x78\\x31\\x56\\xe9\\xe5\\x83\\x67\\x34\\xd0\\x9d\\x1b\\xaf\\x5b\\x21\\x34\\xc9\\x31\\x62\\xee\\xc4\\xbe\\x03\\xbd\\x12\\xf6\\x03\\xcd\\x27\\xbe\\x8b\\x76\\xac\\xcc\\x6e\\x8b\\x8b\\xac\\x02\\x0c\\xba\\x34\\x79\\x65\\x1c\\x9f\\xfa\\x53\\xce\\x4e\\xb7\\x7a\\x77\\x31\\x3b\\xc1\\x26\\x5d\\xda\\xb8\\x03\\xef\\x7a\\x65\\x63\\xba\\x6f\\x79\\x9d\\x1e\\xf3\\x0e\\xf5\\xa0\\xb4\\x12\\x96\\x5f\\xda\\xc0\\xb9\\xda\\xb8\\x42\\xc7\\x8e\\xe2\\xcc\\x62\\x8e\\x3d\\x7d\\x40\\x61\\xe3\\x4e\\xde\\x37\\x97\\xe1\\x54\\xb0\\x6e\\x8c\\x66\\xce\\xbd\\xf2\\xde\\xd0\\xf8\\x1b\\x60\\xf9\\xf5\\xcd\\xda\\x67\\x5a\\x43\\x52\\x77\\xba\\x15\\x24\\x55\\x7e\\x67\\xf5\\xce\\xfa\\xfc\\xe9\\x29\\x29\\x1d\\xce\\x89\\xec\\xb0\\x8a\\x17\\xb6\\x7a\\x60\\xc5\\x82\\xb4\\x87\\xbf\\x2f\\x61\\x69\\x62\\x66\\x15\\xf3\\xc2\\xfe\\x3b\\x67\\x38\\x8b\\x71\\x3d\\x35\\xb9\\x06\\x66\\x69\\x96\\x0d\\xe4\\xdb\\x41\\x3c\\xd8\\x52\\x8e\\xe5\\x6e\\xd1\\x73\\xe9\\x76\\xa3\\xc9\\x74\\xac\\x63\\x3a\\x71\\x34\\xcc\\xe3\\x83\\x19\\x73\\x5f\\x85\\x7b\\x7d\\x71\\xba\\x07\\xf4\\x77\\xef\\x85\\x84\\x8a\\xa8\\xf3\\x9e\\x11\\x81\\x18\\x77\\x9e\\xd8\\x7b\\x4f\\x42\\xaa\\x35\\x8a\\x89\\xf7\\xec\\x84\\x4a\\x45\\x1e\\x7e\\x8f\\xc0\\xaf\\x41\\x8b\\x85\\xbc\\x9b\\xf2\\xf2\\x6d\\x1e\\xa1\\x37\\xd3\\x35\\xec\\x7e\\xe7\\x57\\xb7\\x0a\\xe2\\xfd\\xd9\\xcc\\x13\\x49\\x32\\xf0\\xe5\\x42\\x5b\\xf3\\x7f\\xb9\\x15\\xe7\\x9e\"},\n{{0x2c,0x47,0xf2,0xb8,0xb9,0xd2,0xce,0xe9,0xe6,0xf6,0x54,0xbc,0x24,0x65,0x8f,0x9e,0xaf,0x43,0x9c,0x23,0xbe,0xaa,0x0a,0x79,0xbf,0x35,0xcc,0x8c,0xd2,0xde,0xba,0xf4,},{0x44,0x4a,0xf2,0xf3,0x4f,0xd3,0x2e,0x5a,0x19,0xf6,0x1f,0x87,0xd0,0x3e,0x10,0x76,0x27,0xa3,0xee,0xb8,0xbd,0x94,0xd2,0xfa,0xea,0xa3,0x48,0xb0,0x5d,0xea,0x19,0x80,},{0x85,0x54,0xb0,0x1d,0x09,0xed,0x86,0xe6,0x13,0x95,0xb9,0x1a,0x2b,0x1e,0xe1,0x87,0x15,0xc4,0x2f,0x9c,0x7e,0x7f,0x07,0x00,0xd7,0x9f,0xf9,0xfb,0x57,0x81,0x29,0x3d,0x61,0xc5,0x58,0xdd,0x5b,0x43,0x1c,0x93,0x71,0x8d,0xcc,0x0f,0x98,0xfb,0x65,0x2b,0x59,0x6f,0x18,0xc3,0x0f,0x82,0x21,0x5e,0x8e,0x63,0xe4,0xf6,0x56,0x8c,0x88,0x00,},\"\\x04\\x4c\\x8f\\xaa\\x8c\\x8a\\xaf\\x9f\\x2b\\x81\\x86\\xa6\\xb9\\xb3\\x38\\x47\\xec\\x7b\\x45\\x24\\x23\\xb2\\x2a\\x91\\x74\\x3d\\x2e\\x59\\x7e\\xcc\\x1e\\x1e\\x22\\xae\\x60\\x05\\x3e\\x9e\\xe6\\x23\\x3b\\x04\\x4e\\x77\\x59\\x20\\xe4\\xe3\\xd6\\x67\\x19\\x90\\x13\\x25\\xcf\\xdd\\x39\\xbb\\x53\\x2f\\x8a\\xa4\\x69\\xaa\\xb4\\x2e\\x96\\x08\\xc2\\x12\\x60\\xc0\\x4c\\x27\\x41\\x3a\\x7a\\x94\\xe4\\x66\\xf6\\x3c\\x49\\x52\\xe9\\x0e\\xf9\\x0c\\x12\\x81\\x4b\\x34\\x51\\xb1\\xca\\xd7\\xda\\x91\\x47\\xf8\\x40\\x92\\x20\\xf6\\x49\\x8c\\xc0\\xa6\\x7f\\xef\\x4b\\xc0\\x4f\\xc0\\x6e\\x1d\\x89\\x8a\\x55\\x15\\x59\\x1e\\x8b\\xe0\\xc4\\x3d\\x75\\xa6\\xfe\\x42\\x5b\\x7c\\xbe\\xfb\\x1b\\x91\\xb1\\xbd\\x78\\xb5\\xbe\\xc7\\x82\\x90\\x56\\x98\\x2e\\xfd\\xc5\\xbe\\x24\\xaf\\x66\\x78\\x00\\x6a\\xdc\\x6f\\x04\\x46\\x20\\x2e\\x7e\\xc3\\xa2\\xd6\\x97\\x9c\\xb0\\xdf\\x7e\\x25\\xd7\\x42\\x33\\x91\\x4d\\x9c\\x58\\xb8\\x1c\\xf5\\x5b\\xe0\\x69\\x67\\xd3\\xa5\\x95\\xc1\\xb9\\x67\\x28\\x69\\x99\\x4c\\xfb\\xa6\\x71\\x62\\x83\\x3a\\x21\\x43\\xaa\\x91\\xcc\\x93\\xac\\xda\\xfa\\x5b\\x45\\x20\\x8d\\xf3\\xe8\\x8c\\xcc\\x01\\xa2\\xa4\\xd2\\x20\\xe3\\x60\\x09\\x8d\\x91\\x54\\xd2\\x25\\xa7\\xca\\x5f\\x2f\\x1e\\x52\\xb1\\x00\\x3d\\x10\\x66\\x50\\xa7\\x7b\\x28\\x3b\\x95\\xe4\\xba\\xf1\\xe7\\x33\\x6f\\xa9\\xa7\\x47\\xa2\\xb3\\x82\\x3d\\x36\\x09\\x10\\x41\\x2e\\x76\\xdb\\x72\\x5c\\xe1\\xab\\x1e\\x1d\\x18\\x9d\\x0d\\x3a\\xbe\\xf8\\x2d\\x76\\x66\\xbc\\xf1\\xb7\\x66\\x69\\xe0\\x64\\x3b\\x44\\xf7\\x4e\\x90\\xce\\xaf\\xa0\\xc8\\x37\\x1b\\x57\\xc5\\x8f\\x3b\\x37\\x0a\\x54\\x7c\\x60\\x95\\x8f\\x0f\\xcf\\x46\\x1b\\x31\\x50\\xf8\\x48\\xc4\\x70\\xfa\\x07\\xe2\\x9b\\xf5\\xf0\\xd4\\xb5\\x9e\\xfa\\x5a\\xb0\\xd0\\x34\\x1e\\x04\\x51\\xd0\\xab\\xb2\\x9d\\x74\\x14\\xcd\\xdc\\x46\\xcc\\x6d\\x74\\xcf\\x3d\\xc2\\x33\\xd0\\xd1\\x70\\x73\\x87\\xbd\\x8c\\x77\\x80\\xff\\x78\\xe5\\x46\\xfb\\x77\\x29\\x4d\\x58\\xa5\\xdd\\xa5\\xf0\\x5c\\x12\\x97\\xe3\\xd1\\x77\\x11\\x56\\xd2\\x85\\x63\\x5b\\xf7\\xec\\xed\\xb3\\x8a\\x9e\\x5e\\x77\\x44\\x98\\x04\\xf3\\x89\\x9e\\xa4\\x6a\\x50\\x26\\x6b\\x25\\x5a\\xeb\\x52\\xd1\\x8e\\x0f\\xa1\\x36\\xe5\\x35\\xcc\\x90\\x26\\xf6\\x78\\x55\\x2f\\xa3\\xee\\x21\\x46\\x08\\x1d\\x99\\x96\\x85\\xe2\\x4b\\xf7\\x80\\x7c\\xc4\\x7c\\x13\\x04\\x36\\xc5\\x44\\xd3\\x5b\\x4b\\x87\\x5b\\xd8\\xaf\\xa3\\x12\\xce\\x3a\\xe1\\x7c\\xf1\\xc7\\xf5\\xea\\x1e\\xce\\xcb\\x50\\xf9\\x53\\x44\\x72\\x0c\\xec\\xf0\\x88\\x43\\x4f\\xf8\\xe0\\xba\\x04\\x4e\\xc1\\x9c\\x98\\xad\\xa7\\x78\\x21\\x16\\x30\\x4c\\xbe\\xac\\x1c\\x3e\\x35\\xf5\\xa4\\xf4\\x43\\x13\\x35\\x4d\\xc9\\xa4\\x0e\\xce\\x5a\\x0f\\x9a\\xd3\\xa2\\x02\\x5a\\xce\\xf2\\x62\\xc5\\x67\\x9d\\x64\"},\n{{0x88,0x7f,0xdb,0x48,0x70,0x68,0x1d,0x4f,0xb0,0x6a,0x93,0x62,0x59,0xf7,0x5c,0xae,0x05,0x17,0xf5,0x01,0xaf,0x64,0x6b,0xc0,0x7a,0x4d,0x72,0xbe,0xe7,0xfb,0x1c,0x73,},{0xc7,0x62,0xeb,0xd4,0x8b,0x2c,0xe0,0x2d,0x06,0x38,0x4e,0x38,0x55,0x4b,0x82,0x5a,0xd3,0x22,0xeb,0xea,0x74,0xd2,0x59,0xdf,0x15,0x47,0xa4,0xd5,0x47,0xce,0x00,0x24,},{0x41,0x0a,0x5a,0xf3,0xc5,0x9b,0x7c,0x6b,0xdb,0x21,0x4b,0x16,0x6c,0xb7,0x9d,0x96,0xf8,0x30,0xcf,0x98,0xbf,0x52,0xda,0xd7,0xb6,0xff,0x29,0x79,0xc9,0x7f,0xea,0x4f,0xed,0x5e,0xf7,0xd3,0xd4,0x9f,0x03,0x09,0x72,0x79,0xb9,0xa0,0x99,0x22,0x6e,0x2a,0x08,0xdd,0x30,0xc6,0x07,0x86,0x25,0x4e,0x2d,0xa8,0xde,0xe2,0x40,0xbf,0xc3,0x08,},\"\\xc5\\xdc\\x77\\x9f\\x3f\\x3f\\xac\\x06\\xdd\\x28\\xe5\\xa6\\x7e\\x0e\\x52\\x4a\\xf5\\xb5\\xdc\\x3b\\x34\\x40\\x96\\x57\\xb6\\x3d\\xfa\\xce\\x94\\x71\\xe9\\xa4\\x1e\\x11\\x32\\x17\\x5a\\x0b\\x56\\x9c\\x8f\\xea\\x9d\\x2e\\xef\\x2c\\xf5\\xd5\\x96\\x2c\\x7e\\x0b\\x61\\x45\\xa9\\xe7\\xa0\\xc1\\xaa\\x33\\x77\\x20\\x44\\xf9\\xc3\\x99\\x8c\\x5a\\x8c\\x48\\x86\\x45\\x8b\\x4e\\x58\\x6f\\x93\\x07\\x60\\x83\\x61\\xf5\\x11\\xe7\\xab\\x50\\x92\\xac\\x41\\xec\\x76\\xe0\\x58\\x6e\\xf5\\xb9\\xc2\\x36\\xfc\\xf5\\xca\\x2f\\xc8\\xdd\\x6a\\xae\\xb7\\x89\\x36\\x7f\\x2e\\x7c\\x99\\x09\\x32\\x55\\x5d\\xc5\\x22\\x61\\xe4\\x4e\\x49\\x42\\x34\\x98\\xb5\\x24\\x41\\x91\\x83\\xb6\\xc1\\xf1\\xd4\\x2c\\x45\\x46\\x4e\\xcc\\xb0\\xc2\\xf7\\xe2\\x51\\x77\\xfe\\x5c\\xd4\\x63\\x50\\x2b\\x40\\x3e\\x06\\xd5\\x11\\xfc\\xf9\\xdc\\xb6\\x40\\x12\\xe0\\xf2\\x0b\\x34\\xc2\\xea\\x7c\\x00\\x4d\\x9e\\x48\\x4a\\x7e\\xd8\\x1f\\x32\\x60\\xc4\\x1c\\x8b\\x19\\x53\\x52\\x9f\\x47\\xf7\\x1e\\x86\\x78\\x43\\xcc\\x3c\\x33\\x2a\\xd0\\x36\\x6a\\x63\\x81\\x7e\\xd1\\x2d\\xd4\\x73\\x0d\\x3d\\xfd\\xbd\\x75\\x72\\xb9\\xff\\x79\\x80\\x45\\x94\\x0d\\xd1\\x9f\\xad\\x0c\\x8a\\xea\\x0b\\x4a\\xb6\\x1c\\x40\\x16\\xde\\x32\\x79\\x9c\\x73\\xaa\\x2b\\x92\\xd2\\xc2\\x5e\\xe9\\xb7\\x2d\\x46\\xfe\\x8f\\x06\\x93\\xc5\\x87\\x75\\xef\\xb0\\x5e\\x9e\\x17\\xa5\\xc3\\x46\\xa8\\x12\\x65\\xd3\\x5b\\xe6\\x9a\\x22\\xd0\\x95\\xde\\x18\\x60\\x66\\xa5\\xc6\\xd8\\xc0\\x7a\\x3d\\x38\\xd0\\x02\\xa1\\x0e\\x5e\\xfd\\xb8\\x66\\xda\\x4a\\x9b\\xdd\\x54\\xf5\\x09\\x26\\x61\\xb6\\xc2\\xd7\\x43\\xf5\\xae\\xaa\\x4c\\x6c\\x31\\x8f\\xb5\\x93\\x23\\x90\\x30\\x57\\xe4\\x9c\\x23\\x7b\\x45\\xf6\\x75\\x42\\xa4\\xf2\\x7c\\xaf\\x65\\xb5\\x7c\\xfc\\xf8\\x8b\\x71\\x20\\x3d\\x43\\xd7\\xf9\\x53\\x22\\x16\\x0f\\x95\\xc2\\x32\\xdd\\x10\\xab\\xb1\\x13\\xb7\\x21\\xdd\\xba\\x22\\x26\\xb0\\x63\\x22\\x9b\\xb4\\x41\\x02\\x33\\x6b\\x10\\xbf\\x16\\x56\\x55\\x11\\x61\\x24\\x97\\x86\\xd4\\x54\\xf4\\xe0\\x90\\x9d\\x50\\x00\\x17\\xf6\\xc7\\x56\\x4f\\x73\\x3c\\x83\\x1a\\xf4\\xe5\\xec\\x94\\xdf\\xd3\\xbf\\x8f\\xf5\\xf3\\x02\\x1b\\x70\\xa5\\xca\\x5d\\x28\\xc6\\xdf\\xb8\\xa2\\xc1\\x8a\\x1a\\x66\\x2a\\x33\\x35\\x9f\\x26\\x4d\\x16\\x96\\x98\\xc1\\xab\\x55\\x78\\x3f\\xac\\xa7\\x3b\\xd6\\x8c\\x0f\\x79\\xd1\\xd0\\x4a\\xe0\\xec\\xdb\\x52\\xae\\x76\\x18\\x92\\xc0\\x24\\x93\\xff\\x35\\xf3\\xd8\\x4f\\x66\\xe2\\x36\\xfc\\x58\\x13\\x4a\\xd6\\xa7\\x7d\\x92\\x25\\x49\\x05\\xd7\\x73\\x90\\x0d\\x9d\\xdf\\x26\\x54\\xc7\\x0b\\x46\\xf3\\x41\\xda\\xcb\\x47\\x93\\xca\\x51\\xee\\xde\\x45\\x53\\x3e\\xae\\xeb\\x6e\\x33\\x23\\xbc\\x3e\\x6c\\x85\\xa7\\x94\\x06\\x51\\xc4\\xf6\\xf9\\x81\\x91\\xc6\\x18\\xc8\\x91\\xea\\x4e\\x22\\x0e\\xa4\"},\n{{0x88,0xb3,0xb4,0x63,0xdf,0xc3,0x0d,0x01,0x5e,0xef,0xbb,0xbd,0xd5,0x0e,0x24,0xa1,0xf7,0x27,0x77,0x75,0xbc,0xef,0x14,0xa6,0xbe,0x6b,0x73,0xc8,0xc5,0xc7,0x30,0x3e,},{0xf2,0xb6,0x28,0x4c,0x93,0x0d,0x4a,0xd3,0x2d,0x0a,0xc7,0x19,0x04,0x0e,0xe7,0x88,0x6b,0x34,0x72,0x2e,0xdf,0x53,0xda,0x80,0x1a,0xcb,0x5f,0x93,0x19,0x69,0xe1,0x19,},{0x82,0x5a,0xff,0x71,0xf7,0x93,0x03,0xbf,0x45,0x92,0xbd,0x8d,0xa4,0xd7,0xd9,0x43,0x7f,0xf2,0x67,0x97,0x6f,0x74,0x64,0x37,0x65,0x59,0x88,0xdd,0xcf,0x29,0x37,0x94,0x65,0xa3,0xb4,0x8c,0x9f,0xb0,0xf3,0x1c,0xef,0x03,0xe6,0x36,0x88,0x61,0xc3,0x69,0xb4,0x36,0x4f,0xb8,0xe4,0xb0,0xc7,0x2e,0x26,0xa9,0xa9,0xdd,0xed,0x1c,0x25,0x04,},\"\\x17\\xc3\\x17\\xfa\\x6b\\xc9\\x0c\\x55\\x32\\x32\\x8f\\x02\\xcc\\xfb\\x6c\\x09\\x9e\\x6f\\xe1\\x00\\x01\\x74\\xf2\\xaf\\x3a\\x3a\\x93\\x09\\x42\\x85\\x06\\x71\\x7c\\x5c\\x43\\x35\\xbd\\xd7\\xc3\\x67\\xff\\x4e\\x44\\x8a\\x9c\\x04\\x75\\x03\\xaf\\xba\\x68\\xfd\\x8f\\x79\\x87\\x23\\x7b\\xe7\\xf7\\xfb\\xdc\\x6d\\x73\\xf2\\x4c\\x64\\x21\\xca\\xb4\\x22\\xb3\\xfb\\x25\\xf6\\x7b\\x2d\\x71\\x04\\x2e\\x71\\x57\\x0d\\xf2\\xaf\\x37\\xbf\\xe5\\xc1\\x14\\x21\\x1f\\xd5\\x52\\x4b\\x6c\\x1c\\x6c\\xc5\\x2f\\xab\\xc3\\xcd\\x7f\\xb4\\x64\\xcd\\x58\\x0b\\xb7\\x40\\x71\\xcb\\x30\\x0f\\x8c\\x9f\\x8a\\x46\\x20\\x8e\\x5a\\xa5\\xdd\\xfe\\xa5\\xfe\\x90\\x69\\x7a\\xa2\\xf1\\x4c\\x60\\x79\\x50\\xc9\\x8f\\x23\\x12\\xa9\\xe1\\x6e\\xf6\\x34\\x6a\\x8f\\xd1\\x29\\x23\\x27\\x33\\x82\\x7e\\x15\\x01\\xa6\\x60\\xc7\\x7c\\x29\\xc5\\x6d\\x2f\\xdd\\x1c\\x55\\x97\\xf8\\xbc\\x89\\xaa\\xef\\xe3\\x71\\x37\\x34\\xfe\\x82\\x85\\x82\\x01\\x89\\x1a\\x11\\x47\\xef\\xaf\\x1d\\x78\\xa4\\x71\\xf9\\x20\\xde\\xfc\\x88\\x03\\x44\\x55\\x3e\\xb7\\x16\\xcc\\xe3\\x26\\x0e\\x86\\xa1\\xbc\\x0b\\xe2\\x83\\x73\\xa6\\xa0\\x66\\x11\\x6e\\x8e\\xcb\\x10\\xa0\\xc4\\xa7\\x0c\\xa2\\xb5\\x36\\x4e\\x11\\x9f\\x84\\xae\\xc6\\x0d\\xec\\xed\\x3a\\x4e\\xff\\x1f\\xe6\\x88\\xc5\\xe3\\xe2\\x51\\x47\\x0a\\xb5\\x16\\xfa\\x96\\x4a\\x4b\\x6f\\x28\\x36\\x8d\\xd1\\xe2\\x83\\x59\\x79\\x34\\x06\\x4d\\xc0\\xc5\\xb5\\x69\\x10\\x62\\xcb\\x2e\\x26\\x7b\\xd1\\x5f\\xd4\\x22\\xbc\\xfe\\xfb\\x83\\xcc\\xef\\x7a\\xa9\\xa2\\x27\\x5e\\xf5\\x7e\\x47\\x31\\x49\\x98\\x8c\\x15\\x78\\xfd\\x18\\x70\\x8d\\x2f\\xf6\\x9f\\x8e\\x59\\x80\\xaa\\x82\\x6a\\x82\\xca\\xb7\\xd8\\xb9\\x2b\\xb5\\x3b\\xdd\\x46\\xdb\\x04\\x6e\\xcd\\xfc\\x8c\\xd7\\xae\\x5c\\xe4\\x4f\\x3c\\x5b\\x8c\\x05\\x65\\xb5\\xd3\\xc0\\x72\\xc7\\x6b\\x95\\xce\\x90\\x0a\\xc3\\xee\\x55\\x10\\xdb\\x0e\\x75\\xd3\\xa4\\x15\\x0a\\x98\\xf3\\xcc\\xcc\\xc6\\x9e\\x93\\x0c\\x6b\\xa7\\x41\\xdb\\xb0\\xeb\\x9f\\xb3\\x19\\x68\\x71\\xba\\x20\\x6a\\x58\\xe0\\xda\\xe3\\x9c\\x8d\\x6b\\xb7\\x2a\\x82\\x39\\x9c\\x4b\\x7b\\x9d\\xa3\\x85\\x77\\xac\\x17\\xff\\x15\\x24\\xd6\\x53\\xc0\\xbf\\x33\\x67\\x93\\x23\\xca\\x7e\\xef\\x4e\\x92\\x28\\x72\\x90\\x31\\x56\\x0e\\xd8\\xf2\\xe5\\x19\\x3c\\x64\\x0b\\x2f\\x5e\\x60\\x80\\x75\\xa2\\xed\\x61\\x42\\x8d\\xfc\\xcd\\xc0\\x00\\x50\\xba\\x4b\\x99\\xed\\x6d\\x15\\x36\\xd5\\xac\\x1e\\x93\\x96\\x74\\xb4\\x1d\\x16\\x31\\x2a\\xe5\\xb0\\x7d\\xef\\x1b\\xf5\\x35\\x89\\xbe\\xd4\\x40\\x06\\x02\\xee\\x11\\xb8\\x50\\x33\\x0f\\x38\\xaa\\xd3\\x3e\\xf0\\x41\\x70\\xa3\\x90\\x5c\\x28\\xb5\\x0e\\xcc\\x57\\xdc\\xcf\\x4f\\x29\\xd0\\xc0\\x0f\\x71\\x3d\\x32\\xff\\xc8\\x57\\x95\\x65\\x88\\xa6\\x32\\x6b\\x95\\x49\\xed\\xb0\\xe4\\xfe\\x61\\x85\"},\n{{0x42,0x7d,0x6e,0x42,0x39,0x17,0x89,0x68,0x31,0x60,0x1b,0x8f,0x4e,0x21,0x56,0x1d,0xb6,0x10,0x85,0x71,0xbe,0x00,0x9e,0x29,0xdc,0xa4,0x9a,0x59,0x60,0xff,0x31,0x4b,},{0x8d,0x9e,0x63,0x60,0xfd,0xef,0x24,0x99,0x75,0xdf,0x27,0xb3,0x10,0x6a,0x71,0x12,0x05,0x87,0x72,0x2d,0xf3,0x27,0x0a,0x85,0xa1,0x3a,0x8c,0x3b,0xb8,0xc9,0x80,0x9e,},{0xd1,0xc9,0xa0,0x1c,0x56,0xe3,0x39,0x60,0xf4,0x9d,0xf3,0x7e,0xab,0x96,0x3b,0xc5,0xa9,0x9f,0x25,0xc6,0x00,0x44,0x6c,0xe2,0xca,0x48,0xd9,0x13,0x9d,0xa5,0x73,0x3b,0x71,0x8f,0xbf,0x1a,0x98,0x73,0x93,0xf6,0xe5,0x82,0x3c,0x2d,0x13,0x0c,0x7c,0xe6,0x0e,0xa3,0xdb,0x35,0x43,0xc8,0x85,0x4e,0xf1,0x2b,0x98,0xd3,0x3a,0xdd,0xe7,0x05,},\"\\x9c\\x2c\\xc7\\xf2\\x46\\x2e\\x09\\xc4\\xc5\\x8c\\x27\\x09\\xab\\x42\\x59\\x88\\x5a\\x4e\\x88\\x7d\\x9f\\xa5\\x31\\x88\\x15\\x05\\xaa\\xf2\\x03\\xc1\\x63\\xfb\\x3a\\x0d\\xc0\\x28\\xf4\\xad\\xa6\\x06\\x70\\x63\\x8d\\x4a\\x97\\x27\\xa3\\x90\\x83\\xbe\\xdb\\xac\\xed\\x58\\xed\\xb7\\x79\\xe1\\xce\\x6c\\xcd\\xfb\\x42\\x8c\\x36\\x2b\\xb1\\xdb\\x0c\\x10\\x53\\x00\\x6b\\xd8\\xf4\\xbe\\xf8\\x9a\\x1a\\x9d\\xe0\\x1c\\x77\\x4e\\x35\\x7f\\x91\\x0e\\x5c\\x39\\xb2\\x24\\x77\\x55\\x5e\\x5f\\x7c\\x04\\x98\\xb5\\xb2\\x8f\\x36\\x9e\\x5d\\x3f\\xa4\\x2a\\xb3\\x60\\xe4\\xf4\\x51\\xc6\\x9f\\x81\\xba\\x0f\\x3c\\xce\\xd4\\x3a\\x55\\x9d\\xb6\\x00\\x10\\x42\\x78\\xf8\\x68\\x79\\x6b\\x2c\\x91\\x1b\\x3b\\x03\\x2b\\x72\\x9f\\x4b\\x22\\xac\\x14\\x9d\\xc4\\x67\\xa0\\xca\\xe4\\x8d\\x19\\xe9\\xd9\\x85\\xb4\\x2b\\x62\\x54\\x9d\\xe1\\x71\\xff\\x56\\x6e\\x1d\\x1e\\x9b\\xb8\\xe5\\x6c\\xfd\\x1a\\xe8\\xf7\\xbd\\xdc\\xfd\\x8a\\x23\\x41\\x82\\x7d\\xbe\\x89\\xc8\\x82\\xab\\x3e\\x49\\x83\\x39\\xff\\x68\\x1c\\x7d\\xc1\\x10\\x4d\\xe7\\x38\\xb4\\x80\\x31\\x69\\x43\\x10\\x9f\\x70\\x3d\\x47\\x1a\\xb8\\x6e\\x4c\\xa4\\x28\\x7e\\x4c\\xd7\\x4c\\x31\\x2f\\xf7\\xd0\\x37\\x39\\x56\\x06\\xfb\\x25\\xf8\\x71\\xe7\\x27\\x70\\x78\\xa7\\x87\\xd0\\x2f\\x31\\xcc\\x9e\\x81\\x5b\\xe8\\x60\\x0a\\x7c\\x47\\xc6\\xfd\\xd8\\x23\\x31\\xae\\x9c\\x49\\x6a\\x54\\x7b\\xdb\\x23\\x5b\\x8a\\x56\\xd5\\x32\\x59\\xe6\\x29\\x61\\x24\\xa3\\x2c\\x3b\\x62\\x5d\\x20\\x24\\x19\\xd0\\x64\\xb9\\xa4\\xe8\\x3e\\xfa\\x87\\xf1\\x35\\x37\\xb4\\xf5\\x13\\xb9\\x16\\xa8\\x4f\\xc8\\x66\\xd8\\xa8\\x99\\x80\\x4c\\x78\\x33\\xea\\xa0\\x19\\xe0\\xd7\\xe0\\xe8\\x07\\x5b\\xd6\\xb5\\xcb\\x6f\\xfc\\x76\\x64\\x79\\xf3\\xf6\\xe2\\x0e\\x48\\x1e\\x6a\\xb2\\x7b\\xd8\\x08\\xad\\x90\\x6c\\xdc\\xc7\\x82\\x74\\x30\\xe3\\x12\\xf7\\x40\\xf2\\x75\\xdd\\xf5\\x1d\\xd8\\x32\\x48\\xfa\\x05\\x7c\\x43\\xc9\\xcb\\x77\\x55\\x7b\\x2f\\xd9\\xc2\\xd5\\x28\\x24\\xff\\x9e\\x14\\x6d\\xea\\xc1\\xe6\\x69\\x1d\\x45\\x02\\x13\\xbc\\x59\\x0a\\x49\\xbe\\xc7\\x2d\\x52\\xe3\\x8f\\x6b\\x4d\\xc6\\xcc\\xa9\\x51\\xee\\xf2\\x18\\x4d\\x24\\x25\\x03\\x1a\\xd5\\x9b\\x24\\x2e\\xff\\xa6\\x8b\\x6c\\x72\\xc5\\x4c\\x9d\\xfd\\xb4\\x19\\xc0\\x2e\\xb4\\x3e\\xf3\\xf3\\x4d\\x33\\x8d\\x2a\\x9d\\xd0\\x3a\\x78\\xcf\\xdd\\x01\\x40\\x98\\xe2\\x49\\x25\\x9e\\x77\\x28\\x2e\\x0c\\x3f\\xc1\\x01\\x0b\\x02\\xa6\\x7f\\xf8\\x51\\xe9\\xcf\\xd9\\x74\\x9c\\x1c\\xd8\\xf0\\x6c\\xf4\\x62\\xe6\\xad\\xe9\\x95\\xac\\x46\\x6f\\xab\\x5c\\x79\\x5e\\x9e\\xff\\x13\\xe5\\x5b\\x43\\x50\\xb9\\x4c\\x73\\x16\\xaa\\x49\\x8d\\xf9\\xfd\\xee\\x99\\x58\\x04\\x77\\x93\\xe3\\xbb\\xb8\\x9f\\xb8\\x1d\\xa8\\x5f\\x4b\\x9d\\x43\\xe4\\xb0\\xd4\\x3b\\x38\\x1b\\x94\\xcd\\xc9\\xa9\\x9d\\x06\"},\n{{0xbe,0x93,0x52,0x09,0xf6,0x2d,0xea,0x60,0x12,0xec,0xda,0x6a,0x61,0x56,0xcd,0x16,0x6a,0x4d,0x76,0x11,0x50,0xde,0xed,0x45,0x68,0x16,0xea,0xf0,0xce,0x78,0xa7,0xf6,},{0xd3,0x9a,0x89,0xaf,0x72,0x29,0x39,0x48,0xb1,0x34,0x21,0xfb,0x88,0x3b,0xbe,0x37,0x2a,0xf9,0x08,0x9c,0x22,0x4d,0x42,0xb9,0x01,0x97,0x9f,0x7e,0x28,0x04,0xe1,0xc0,},{0x08,0xe0,0x98,0xa7,0x49,0xfc,0xe6,0xd1,0x23,0x54,0x39,0x58,0x78,0xa8,0xbe,0x35,0xfe,0x9e,0xdf,0x72,0x68,0x4d,0xd8,0x28,0x12,0x24,0x89,0x9b,0x1c,0xae,0xa4,0xed,0x68,0x77,0x85,0xdf,0xf5,0x5a,0x19,0x98,0x9e,0x03,0x63,0x6e,0x16,0x66,0x38,0x6f,0x22,0xc3,0xf4,0x43,0xec,0xf6,0xfd,0x34,0xd5,0x99,0xff,0x3e,0xc2,0xfa,0xf1,0x01,},\"\\x11\\x7f\\x42\\x7c\\xb6\\x81\\x50\\xca\\xfc\\xfa\\x46\\x2c\\x42\\x20\\x61\\x41\\x42\\x7c\\x4d\\xce\\xa1\\xc8\\xea\\xcc\\x2d\\x30\\xbe\\xd1\\xe9\\x02\\x07\\xd5\\xae\\x30\\x5e\\x1f\\xc1\\x6c\\x54\\xe4\\xc5\\x4c\\xc6\\x87\\x8c\\xdb\\xed\\xc9\\xf5\\x1f\\xe1\\x84\\x61\\xec\\x37\\xc5\\x57\\xb1\\x15\\xd1\\x3c\\x86\\x82\\xc4\\xe1\\x5f\\x50\\x52\\x96\\xa1\\x76\\x0e\\x1e\\x75\\xf5\\xab\\x27\\xa5\\xc1\\x5a\\x13\\x57\\xd2\\xc8\\xc4\\x0d\\xd5\\x35\\x5f\\x7c\\x82\\xfe\\xa5\\xd2\\x7e\\x28\\x87\\x63\\x58\\xc1\\x2e\\x91\\x13\\xee\\x29\\x83\\xea\\x6f\\x09\\xc6\\x4e\\x06\\xe2\\x97\\xdd\\x96\\xb3\\x4d\\x9b\\x5e\\xd4\\x9f\\xc4\\x7a\\x88\\x39\\x54\\x9c\\x66\\xb0\\x02\\xfe\\x94\\x5e\\x8f\\x94\\xe7\\xd2\\x31\\x5c\\x50\\xca\\x4d\\xc0\\x98\\xbe\\x4b\\x32\\x89\\x81\\x2f\\xbe\\xa9\\x6b\\x47\\xce\\x60\\x45\\x40\\xbd\\xe0\\xe5\\xab\\x0b\\x1b\\xc0\\x36\\xbe\\x9b\\x6a\\x95\\xe0\\x9c\\x81\\xe8\\x98\\x64\\x0c\\x8f\\x05\\xd6\\x0a\\xd9\\x42\\x18\\xd0\\xe6\\x6c\\xeb\\x85\\xa2\\x6b\\x78\\x29\\x22\\x20\\xbf\\xd0\\x61\\xdd\\x07\\x35\\x12\\x92\\x3b\\x90\\xc7\\x9d\\xcf\\x5a\\x19\\x35\\xfa\\xfe\\x8e\\x01\\xef\\x8b\\xf8\\x1b\\x4d\\x37\\xc5\\xa5\\x71\\xb5\\x0c\\x42\\x1f\\x9b\\xd2\\x19\\x4b\\xef\\x35\\x86\\xfc\\xb8\\x58\\x48\\x77\\xbb\\x7e\\x04\\x81\\x65\\x5b\\x05\\xc7\\xb6\\x43\\xb1\\xe4\\x5b\\x04\\x03\\x62\\x72\\x84\\x18\\x52\\xe3\\x19\\x40\\xef\\x8f\\x3b\\x6d\\x4f\\xeb\\x5d\\xf0\\x79\\xd1\\x76\\xf9\\x79\\xc1\\x8a\\x11\\xa6\\x6d\\x12\\x14\\xe5\\x2f\\x68\\x7e\\x90\\x63\\xc1\\xc2\\xb7\\x27\\x7b\\x68\\x5d\\x5c\\x72\\xad\\x56\\x9f\\x78\\x73\\x83\\x8f\\x91\\x02\\x57\\xa0\\x53\\x13\\x1c\\x83\\xeb\\xce\\x86\\xe6\\x9d\\x73\\x63\\x62\\xbe\\xbc\\x96\\xbb\\xfa\\x35\\xfc\\xba\\x1c\\xb5\\x27\\xe7\\x48\\xe5\\xf5\\x79\\x92\\x9f\\xd4\\x0c\\x56\\xb1\\xa5\\x1a\\x22\\x2e\\x86\\x33\\x02\\x70\\x5c\\x86\\xf7\\xb5\\x4e\\xbf\\xbb\\x94\\x82\\xf7\\xe2\\x80\\xf7\\xbe\\xc8\\xca\\xf3\\xa6\\xb5\\x67\\x1a\\xc3\\x0c\\xd1\\xbe\\x52\\x92\\x88\\x79\\x7c\\x01\\x3c\\xe5\\x6b\\xd1\\x86\\xde\\x7d\\xfc\\x18\\x28\\x69\\x14\\x25\\xc1\\x47\\xc5\\x17\\x4a\\x29\\x0d\\x80\\xcb\\xd5\\x9c\\x19\\xda\\x7a\\xdf\\x77\\x91\\x88\\x82\\xa7\\xb2\\xa9\\xa6\\x4e\\x6d\\x76\\xb4\\x8b\\x92\\xf2\\xa2\\x66\\xee\\xe6\\xe2\\x51\\xd2\\xe8\\x17\\x65\\x2b\\x88\\xb5\\x02\\xde\\x73\\x99\\x78\\x2d\\x75\\x29\\xa8\\x1d\\x0a\\x36\\x39\\x96\\xb9\\xdf\\x68\\xb1\\x5a\\x76\\x30\\x90\\x4c\\x8c\\x24\\x60\\x81\\xfa\\x4f\\x09\\x29\\x9f\\x15\\x75\\x79\\x58\\xe0\\x89\\xa9\\x01\\xc3\\x56\\x46\\x15\\xc0\\xf7\\xcf\\x27\\x52\\xb8\\xb9\\xe5\\x21\\x33\\x8d\\x83\\x6e\\x3d\\xae\\x4c\\xe2\\x37\\x46\\x42\\x25\\x3c\\x4c\\x98\\x31\\x97\\x4e\\x5d\\x8c\\x28\\x42\\xf4\\x90\\x07\\xb7\\x17\\x75\\x09\\x3d\\xfe\\x57\\xf4\\x44\\x92\\xf0\"},\n{{0x68,0x18,0xc6,0x0b,0xb6,0x43,0x9a,0xc2,0xee,0xe2,0xd4,0xe1,0x28,0xe9,0xd8,0x69,0x1d,0x4a,0xd5,0xd3,0x63,0xfe,0xd7,0xd6,0x57,0x7a,0x62,0xb6,0x56,0x99,0x94,0xa4,},{0x73,0x45,0xec,0x11,0xbc,0xcc,0x05,0x6f,0xc4,0xef,0xfa,0x3e,0x4e,0xf6,0x70,0x99,0x6a,0xa2,0x6a,0x1b,0xb1,0xb8,0x33,0x91,0xba,0xbc,0x39,0xa1,0xa5,0x96,0x01,0xf9,},{0x15,0x05,0x96,0x7a,0x27,0xb9,0xf8,0x6e,0x92,0x42,0x44,0x40,0x02,0xa1,0xe3,0x19,0x7d,0x74,0xdd,0xcd,0x89,0x65,0x9e,0xc5,0x14,0x02,0x02,0xaa,0xc7,0x94,0xb8,0xad,0xc1,0x93,0xe7,0xd3,0x0f,0x33,0x82,0x64,0x29,0x90,0xf6,0xfe,0xd7,0xa9,0x99,0xca,0xc8,0xc6,0x1e,0xaa,0x39,0xb7,0xd9,0x08,0x16,0xf1,0xd7,0x38,0x74,0x4b,0xe1,0x01,},\"\\xb2\\xae\\x65\\x8b\\x3c\\x13\\xc3\\xcd\\xeb\\x1d\\xc9\\x93\\xb0\\xf4\\x5d\\x63\\xa2\\xea\\x9a\\xbd\\x0b\\x7a\\x04\\xf1\\xf5\\xce\\x59\\x32\\x80\\x6c\\x2c\\xa9\\xb7\\xa2\\x04\\xfb\\xf8\\xd0\\x66\\xb7\\xf0\\xfe\\x6a\\xe0\\xd1\\xda\\x68\\xc8\\x85\\xee\\x11\\xf6\\xf6\\xdb\\x7e\\x83\\x20\\xa2\\xea\\x65\\x0b\\x53\\x38\\x51\\xcd\\xd9\\x9d\\x90\\x3a\\xa0\\xb3\\xfa\\xa3\\xc9\\x50\\xf7\\x02\\xf0\\x4e\\x86\\xb4\\xee\\xb3\\xa1\\xc7\\xbc\\x85\\x4b\\x25\\x14\\xfa\\x5b\\x47\\x66\\xd3\\x75\\xb4\\xf1\\xad\\x61\\x07\\x53\\x78\\xdd\\x92\\xfd\\x62\\x6c\\x2b\\x47\\xe0\\x13\\x83\\xea\\x72\\x98\\x79\\x59\\x26\\x2c\\x56\\x28\\x62\\xb4\\x5b\\x75\\x57\\x67\\x14\\x13\\xb6\\x66\\x14\\xbc\\xc9\\xf7\\xbd\\xb9\\xee\\x46\\xcb\\xed\\x89\\x65\\xbf\\xa5\\x05\\x31\\x50\\x90\\xc7\\x20\\x4b\\xea\\x89\\x17\\x5b\\xe5\\xf2\\x08\\x02\\xe3\\xde\\xdd\\xcb\\xd8\\xdd\\x64\\xcf\\xef\\x7e\\xe6\\xa6\\xe3\\x86\\x0c\\xe1\\xe5\\x79\\x9d\\xf5\\xd8\\x10\\xd5\\xec\\xf3\\x2e\\x61\\x5d\\x16\\xdf\\xf8\\x7a\\xbd\\x4a\\x63\\x6e\\xa1\\x7a\\xa4\\xec\\xe5\\xb6\\xb2\\xc0\\x46\\xb6\\x5b\\x5a\\xf7\\x49\\x86\\x2b\\x45\\x79\\x0c\\x39\\x17\\x68\\x20\\xb3\\x69\\x01\\xbe\\x64\\x9c\\xf4\\x16\\x9d\\xf7\\xe9\\x23\\x95\\x6d\\x96\\x06\\x49\\x50\\xc5\\x55\\xf4\\x5a\\xcb\\x94\\x50\\x7c\\xfd\\x0c\\x3b\\x33\\xb0\\x80\\x78\\x5e\\x35\\xc0\\xd2\\xb0\\xad\\xdc\\x4c\\x0a\\xd3\\xfb\\x21\\x6a\\xc2\\xe6\\x01\\xc9\\xc7\\xe6\\x17\\xda\\xbd\\xa3\\x33\\xda\\xe6\\x03\\xcc\\x9d\\xb1\\xfc\\x62\\xae\\x4e\\x0e\\x45\\xe3\\xcc\\xdd\\x16\\x6a\\x67\\x81\\xe2\\x43\\xb7\\xda\\xa1\\x38\\x80\\x66\\x32\\xf5\\x38\\x84\\x4e\\xe3\\xd1\\x40\\xb7\\xa8\\xbb\\x2b\\x54\\x01\\x00\\x77\\x8c\\x45\\x8e\\x06\\x61\\x70\\x70\\x5e\\x5f\\xb2\\xc8\\x80\\x29\\x09\\x8b\\x99\\x2c\\x39\\xbc\\x9f\\xf6\\x33\\x0b\\xfc\\xfe\\x77\\x52\\x32\\x0e\\x6e\\xa0\\x94\\x9d\\x2c\\x87\\x1a\\xed\\xc1\\x87\\xbe\\x27\\xfe\\xf7\\xdb\\x5f\\x72\\xa6\\xa7\\x73\\xed\\xde\\x0d\\xc5\\x2a\\xe2\\xed\\x93\\x1c\\xb2\\x68\\x17\\xb8\\x5b\\x15\\x45\\x89\\x4d\\x92\\x29\\x8a\\xaf\\x87\\xcc\\xbc\\x78\\x3e\\x8d\\xd6\\xd1\\x64\\x93\\xf5\\x6e\\xad\\x2b\\xa8\\x52\\xee\\x9c\\x7d\\x10\\x07\\x44\\x06\\x44\\x0d\\x2a\\x27\\x9a\\xbc\\x87\\x4f\\x15\\x46\\x8d\\xd6\\x6a\\x71\\x7b\\xac\\xe3\\x7b\\xe7\\xb7\\x05\\x5d\\xd9\\x68\\x1f\\x8b\\xe8\\x13\\x29\\xee\\x7a\\xf9\\x7e\\x3a\\xbc\\x43\\x4a\\xc1\\xc9\\x3a\\xec\\x58\\x2f\\x23\\xfd\\x1e\\xc0\\xfa\\x5a\\xaf\\xcf\\x7b\\xfb\\xda\\x00\\xff\\xa9\\x7a\\xe3\\x17\\xae\\x91\\x8d\\x34\\x9d\\x21\\xa7\\xf4\\x61\\x91\\x42\\xba\\x23\\xda\\xce\\xf7\\xb3\\x90\\xae\\x26\\xa1\\x7e\\x2e\\x29\\x62\\xae\\x27\\x00\\x53\\x76\\xb7\\x2d\\x4d\\xa9\\xe2\\x97\\x96\\x53\\xa6\\x63\\x25\\xa1\\x46\\x17\\x63\\x8d\\xbe\\x1a\\x55\\x40\\xb6\\x83\\xac\\x00\\x17\"},\n{{0x6d,0x1d,0xa5,0xb4,0x83,0xe6,0x4b,0x03,0x65,0x99,0x0f,0xf0,0x93,0x81,0xfb,0x17,0x02,0xfd,0x8e,0xc3,0xa1,0xa3,0x69,0xcd,0x52,0xe4,0xc5,0x67,0x13,0xa3,0x14,0xa5,},{0x08,0x05,0x5c,0x26,0x1f,0x26,0xe0,0x2a,0x65,0x8f,0x66,0xd9,0xba,0x01,0xfc,0xde,0x53,0xe9,0xad,0xe3,0xed,0xc6,0xbf,0x81,0x5e,0x4a,0x68,0x02,0xe1,0x67,0x7a,0xb3,},{0xa5,0xb8,0xb4,0x4a,0x91,0x44,0x4c,0x64,0x37,0x4b,0x52,0x3c,0xb4,0xdc,0xb0,0xce,0xf4,0xce,0x52,0x40,0x8b,0x98,0x12,0x6d,0x7e,0x1a,0xe8,0xbd,0xc2,0x8c,0xf5,0x14,0x70,0xce,0x4e,0x25,0x3e,0x0b,0xe6,0x2b,0xd6,0x8e,0xbf,0x5f,0xa6,0xbc,0xe1,0x58,0x5e,0xcc,0xfa,0x92,0x56,0xc0,0x73,0xee,0x03,0xe5,0x4c,0x52,0x5b,0xbe,0x2d,0x0a,},\"\\x79\\xa2\\xc3\\x70\\x55\\xf1\\x89\\xf3\\x24\\x7f\\x1f\\x8c\\xea\\x19\\xb2\\xea\\x40\\xd8\\x58\\xdb\\x1f\\x5d\\x13\\x92\\xee\\x6d\\x41\\x1c\\x78\\x02\\xee\\x23\\xde\\x52\\xad\\x02\\x81\\x17\\x25\\xa9\\x4d\\x76\\x67\\x5d\\xa8\\x9a\\x96\\xb5\\xd0\\x7a\\xbc\\xee\\x23\\x3a\\x1a\\x2e\\x1f\\xa3\\x24\\xff\\xf9\\xe7\\x8a\\x4c\\x19\\x61\\x47\\xf8\\x57\\x0b\\x0b\\x13\\x71\\x3d\\x96\\xaa\\x5d\\x75\\x0a\\x15\\xd7\\xcd\\x16\\x2e\\x7b\\xa2\\xe7\\x53\\x33\\x60\\x7d\\xd6\\x98\\xeb\\x47\\x73\\xc7\\xe9\\x1f\\x76\\x68\\xff\\x8b\\x62\\xf0\\x46\\x40\\xeb\\x12\\xec\\xf1\\x22\\xfc\\xe6\\xb8\\x32\\xe0\\xd0\\xdf\\x92\\x8e\\xef\\xd2\\xc2\\x00\\x23\\x64\\xaf\\x6b\\xb5\\x52\\x91\\xd3\\xf5\\x49\\x29\\x08\\x5b\\xe3\\x38\\x34\\x2f\\x09\\xda\\x73\\xe2\\x79\\xc8\\x7c\\x83\\x24\\x55\\x58\\x19\\xed\\x57\\xe7\\x8d\\x7a\\xc4\\x09\\x51\\xd3\\x3f\\x65\\xb9\\x4a\\xa1\\xe5\\x55\\xe9\\x2a\\x06\\x3d\\x11\\xf1\\xff\\x7b\\x12\\x69\\x43\\x41\\xe3\\xfe\\x44\\x49\\x33\\xd0\\x1a\\xa3\\x67\\x53\\xed\\x3c\\xdd\\xa8\\x90\\xbd\\xf9\\x5a\\x82\\x05\\xb5\\xd8\\x93\\x22\\x19\\x91\\xc7\\x95\\xad\\x0a\\x4a\\x94\\x6f\\x58\\xd4\\x0a\\x45\\x34\\x51\\xaf\\x21\\x4f\\xd4\\x65\\xe2\\x8d\\x3e\\x2f\\x0a\\x56\\xaa\\x56\\xde\\xf8\\xdc\\x04\\xaa\\xd3\\x57\\x13\\xab\\xfc\\x8b\\xd7\\x85\\x6d\\x5a\\x9d\\xc3\\xf6\\x0a\\x3f\\x2b\\xd3\\xe6\\x36\\x6f\\x1f\\x24\\x4e\\x94\\x1d\\x6a\\xea\\x89\\x2f\\x6a\\x88\\x93\\x1f\\xe1\\xc3\\x13\\xe0\\x90\\x78\\xe9\\x0b\\xc6\\x39\\x2d\\x49\\x05\\x33\\xc9\\xea\\x3f\\xf6\\xde\\xaf\\x3a\\xad\\xfa\\x8d\\xfd\\xc4\\xe9\\x0f\\x64\\xaf\\x47\\x58\\x9e\\xa6\\x5a\\x87\\xac\\xd2\\x19\\x96\\x02\\x35\\x1d\\x3a\\xfc\\x21\\x03\\x19\\x6e\\x03\\x94\\xed\\x52\\x3a\\xa7\\x99\\xd3\\x1e\\x11\\xd3\\x4f\\xff\\x54\\x6d\\x44\\xf4\\x36\\xb3\\x48\\x59\\xf9\\xcf\\xbc\\x9c\\xe4\\x03\\xde\\x5a\\x98\\x30\\xec\\x3d\\x45\\x3f\\x0d\\x45\\x97\\x0f\\x57\\x2c\\x14\\x4f\\x19\\x1b\\x2f\\xbb\\x2d\\x0e\\xa6\\xcc\\x9c\\x8e\\x24\\xd9\\xc0\\xb2\\x18\\x3b\\x27\\x80\\x72\\xeb\\xb0\\xbe\\x2d\\x70\\xd0\\x37\\xfd\\x2e\\x8e\\xc1\\x8d\\xc4\\xc9\\xb2\\x1a\\xbd\\xc6\\xa4\\xce\\x8d\\x46\\x68\\xa2\\x20\\xee\\xbd\\x69\\x34\\xf0\\x4b\\xaf\\x0e\\x88\\xa4\\x88\\xd2\\xdf\\xc7\\x35\\xa7\\xc5\\xa7\\x0d\\xbb\\x01\\x66\\xa2\\x1a\\xe0\\x11\\xfc\\x6e\\x7d\\xa1\\x0f\\xc3\\x20\\x33\\x62\\x71\\xd9\\xee\\xad\\x51\\x0a\\x6f\\x70\\x32\\xf2\\x29\\x66\\x92\\xbe\\x50\\x80\\x21\\xbc\\x98\\xc1\\x70\\xbe\\x42\\x35\\xf7\\xce\\x31\\xf2\\xbc\\xd6\\x34\\x11\\x63\\x68\\x33\\x76\\xae\\x2c\\x56\\x62\\xcb\\x47\\x70\\xc9\\x6e\\x01\\x8e\\xf1\\xbf\\x47\\x91\\x33\\x19\\xc9\\xa0\\x9b\\x9e\\x96\\x5a\\xb5\\xc3\\xe9\\x7b\\xbc\\x75\\x6a\\x56\\x66\\xb4\\x56\\x7f\\x2c\\xff\\x2d\\x0c\\x3a\\x6a\\x40\\x26\\x15\\x8c\\xb9\\xf9\\x0f\\x95\\x00\\x56\"},\n{{0x51,0x46,0xf5,0xb7,0xf1,0xba,0xa1,0x9f,0xc8,0xcd,0x78,0x5c,0x89,0x6e,0x0f,0x90,0xf9,0xf6,0x59,0xb7,0x7b,0x1b,0x9b,0xb4,0xad,0xca,0xb5,0xa6,0x26,0x72,0x05,0xe4,},{0x68,0x8a,0x8d,0xe6,0x4e,0xff,0x33,0xba,0x6b,0xbe,0x36,0xcd,0xd6,0xa3,0x84,0xbb,0x67,0xb3,0xf4,0x26,0x36,0xdb,0x23,0x4f,0xf5,0xef,0xe0,0xb3,0x17,0x43,0xc7,0xe6,},{0x4b,0xdb,0xd7,0xc6,0x4f,0x13,0xe2,0x78,0xc2,0x39,0x69,0xe7,0xeb,0x38,0x6b,0xbe,0x49,0x9d,0xbd,0xef,0xc3,0xff,0x4e,0x30,0xcf,0xac,0x5c,0xf8,0x6f,0x21,0x6c,0x24,0xc9,0xe6,0xcd,0xe2,0x0e,0x52,0x9d,0x14,0x7f,0xb7,0xea,0x08,0xf2,0x59,0x3a,0xd5,0x09,0x03,0xb5,0xed,0xbf,0x86,0xb4,0xd2,0x8f,0x2e,0xb3,0x2e,0xf1,0x37,0xf0,0x0c,},\"\\x97\\xbd\\x99\\xf5\\x18\\xee\\x07\\x88\\xd5\\x76\\xd9\\x9c\\x04\\x3b\\x44\\x9d\\xfc\\x24\\x2a\\xc5\\xee\\xae\\xc3\\x44\\xa1\\x94\\x32\\xb3\\x45\\x96\\x2e\\xc4\\x12\\xce\\x55\\x36\\x2b\\x3b\\x85\\x1d\\x98\\x11\\x9f\\xce\\xb9\\x32\\x83\\x47\\xf6\\xfc\\xc6\\x8d\\xbf\\x56\\xa2\\x81\\x4d\\xb0\\x9e\\x93\\x85\\x84\\x3a\\x93\\x11\\x89\\xea\\x3e\\x72\\xda\\x9d\\x79\\xa4\\x56\\x93\\x05\\x3c\\x03\\x57\\x01\\xdc\\x55\\x51\\x24\\x0f\\x95\\xb3\\x03\\xfb\\xa1\\x6f\\x89\\xaa\\x53\\xa4\\x38\\x82\\xb0\\xf1\\x38\\x12\\x02\\xc7\\x8f\\x9c\\x74\\x19\\x89\\x9f\\x23\\x51\\xec\\xa9\\x5e\\x20\\xbf\\xee\\x76\\x35\\x1c\\x48\\xd0\\x04\\x99\\xf5\\x91\\xda\\x56\\xa9\\x95\\x24\\xbb\\x74\\xfe\\x1c\\x83\\x4e\\xe9\\x10\\x77\\x13\\x9f\\x1e\\xdf\\x67\\x31\\x5c\\x07\\xa3\\xfd\\x97\\xf8\\x0b\\x7c\\x27\\x6b\\x6c\\xf6\\xb5\\xcc\\x36\\xbe\\x36\\x3b\\x73\\x12\\x17\\xf6\\x31\\x9f\\x51\\x29\\xba\\x7b\\x14\\xd0\\x54\\xc8\\xd8\\x1d\\x8e\\x3a\\x3f\\x3b\\xe6\\x2a\\xc3\\x1f\\xf6\\x2d\\xf6\\xa3\\xb2\\xee\\x25\\x96\\x96\\x9b\\x99\\x17\\x04\\xb3\\x1c\\x68\\x99\\x97\\xab\\x46\\x28\\xbc\\x26\\x60\\xc6\\x78\\x72\\x13\\x2e\\x85\\xda\\x0c\\x4f\\xcf\\x56\\x79\\x65\\xf1\\x25\\x4a\\x8f\\x43\\x26\\x92\\xa1\\x7b\\xb8\\x6c\\xb3\\xc1\\xdc\\xba\\xac\\x93\\x95\\x52\\xf0\\x9e\\x50\\xec\\x5b\\x0d\\xe2\\xef\\x85\\xe0\\xac\\x25\\x3a\\x41\\x65\\x65\\x5d\\xb5\\xb5\\xc4\\x98\\x03\\x82\\x1d\\x85\\x9c\\x60\\x96\\x1e\\x06\\x1d\\x58\\x27\\x8b\\x82\\x7d\\xd4\\xd3\\xbc\\x47\\xf1\\xc2\\x2d\\xe0\\x94\\x90\\x6b\\xdb\\xbf\\x3b\\xad\\xbd\\xde\\x22\\xba\\x24\\x25\\x58\\x55\\xeb\\x86\\xd1\\xd7\\xf3\\x70\\x82\\x05\\x93\\x11\\xdc\\x07\\x28\\xeb\\xea\\xf2\\x6c\\x44\\x73\\xba\\xd1\\xfa\\x9e\\x61\\x4b\\x53\\x3b\\x81\\x1b\\x6b\\xcb\\x06\\x50\\xc0\\x6d\\x87\\x9a\\x52\\x45\\x78\\x8f\\x34\\x01\\xb4\\x61\\x97\\x30\\x07\\x74\\xa9\\xaa\\x73\\xcd\\x97\\x8c\\x05\\x30\\xc8\\x1a\\x53\\xbd\\xb3\\xfc\\x93\\x24\\x14\\xb3\\xe3\\x04\\x40\\xdc\\x12\\x74\\x41\\xef\\xf1\\x60\\x5e\\x7f\\xd9\\xac\\x8c\\x63\\x2e\\x82\\xbf\\x1b\\x45\\x3d\\x4f\\x33\\xa5\\x7e\\x4b\\x67\\xb0\\xb6\\xfc\\xf6\\xed\\x55\\x55\\xb5\\xf5\\xa3\\x00\\xa1\\x4a\\x00\\xd0\\x38\\x5a\\x33\\x75\\x05\\x25\\xb0\\x0e\\xdb\\x31\\x2c\\x6b\\xfd\\xd6\\x4e\\xdd\\x3b\\x53\\x16\\xd1\\x9f\\x95\\x8c\\x51\\x76\\x34\\xf0\\x13\\xb0\\x08\\x93\\x6d\\x34\\xe9\\xb5\\xe1\\xe9\\x28\\x3a\\x5f\\x0f\\xd7\\x78\\x33\\x77\\xc0\\xe5\\x09\\x06\\x41\\xbb\\x9d\\x33\\x8c\\xf3\\x13\\x3a\\xcd\\x0b\\x97\\x1e\\x53\\x79\\x04\\xf1\\x7a\\xf9\\x29\\x11\\xaf\\xad\\x72\\xee\\x97\\xf9\\xa8\\x28\\x3a\\x16\\xa7\\xe2\\x6a\\xb4\\x28\\x41\\x6c\\x10\\x17\\xda\\xe9\\xb1\\xa9\\x9c\\x4c\\x33\\x20\\xad\\x16\\x3b\\xdc\\xfc\\x32\\x8b\\xfa\\xf9\\xb8\\xd5\\xd7\\xd2\\x6d\\x41\\xd1\\xef\\x21\\xa5\\x20\\x8f\\x01\"},\n{{0x5e,0x6f,0xda,0xc9,0x35,0x1a,0x63,0x7b,0x99,0xf3,0x3a,0x26,0x4e,0x12,0x87,0x69,0x7e,0x2a,0xba,0xb0,0xcc,0xa1,0x66,0x21,0x79,0x24,0x84,0xf5,0x60,0x6f,0x44,0xc1,},{0x57,0xe5,0xf8,0x8a,0xcd,0xdc,0x8c,0xde,0x7d,0xd0,0x7a,0x31,0x46,0xfb,0x1d,0x4f,0x7a,0x9b,0x63,0x83,0xa8,0xf6,0xb2,0xb8,0xd9,0xb0,0x7e,0xbc,0x3f,0xc4,0xdd,0x20,},{0x98,0x7e,0x32,0xe0,0x0a,0x8a,0x16,0x32,0xf4,0x7b,0x50,0x31,0x94,0x35,0x5c,0x98,0x0c,0xb2,0x2a,0xde,0xb3,0x26,0xb4,0xe3,0x11,0x5e,0xca,0xb0,0x4b,0x70,0x4d,0x18,0x6c,0xd9,0x2e,0x3c,0x3a,0xc7,0xb4,0xe2,0x93,0x6c,0xbd,0x07,0xcb,0x79,0x4e,0xc0,0xcf,0xe9,0x1a,0x97,0x87,0x2f,0xf2,0xb4,0x13,0x76,0xf5,0xf1,0x8f,0x55,0xb8,0x05,},\"\\x4d\\x6c\\xd3\\xbc\\x2f\\x86\\x26\\x6b\\x8b\\xb1\\xb6\\x1d\\x0e\\x1c\\xaa\\x9b\\xd2\\xd4\\xa1\\x80\\x36\\x1a\\xef\\x3a\\x18\\xd3\\x90\\xb1\\x0f\\x7e\\x86\\x0f\\x69\\x7e\\x24\\x7e\\xb6\\xc3\\xe5\\x1d\\x3b\\x97\\x6b\\xf0\\xca\\x18\\x3d\\x01\\xa6\\x98\\x80\\xf1\\x5c\\x94\\xb8\\x75\\x66\\x8c\\xa3\\x0d\\xad\\xa0\\x89\\x5b\\xed\\xd4\\xd7\\x05\\xa0\\xe0\\x33\\x04\\xd0\\x63\\xde\\xa8\\x7c\\x7f\\xde\\xc9\\x8b\\x89\\xc0\\x6f\\x13\\x0d\\xd5\\xbd\\x58\\x6b\\x54\\xd9\\xba\\x73\\x78\\x26\\xbb\\x40\\x5c\\xd8\\xac\\x8b\\xbc\\x95\\x00\\xac\\xda\\x3c\\x07\\x46\\x1d\\x00\\x94\\x40\\xaf\\x0b\\x25\\x31\\xe7\\x2f\\x3f\\xf5\\x01\\x6a\\xe2\\xd8\\x6d\\x69\\xb8\\x7f\\xb2\\x73\\xd1\\xe8\\xdd\\x5f\\x6a\\x26\\x4b\\xee\\xbb\\x2f\\x88\\x59\\x96\\x74\\x1f\\xfd\\xa2\\x77\\xa0\\xfb\\xf8\\xef\\x08\\xf8\\x1f\\x22\\xee\\x59\\x61\\xd9\\xd3\\xfc\\x93\\x83\\x62\\xe1\\xca\\x12\\x00\\x4a\\x91\\xd9\\xb5\\xf7\\xa6\\x83\\x3a\\x6c\\x22\\x95\\x5a\\xc0\\xcd\\xa3\\x39\\x06\\x71\\x91\\x0c\\xbd\\x51\\xe6\\x85\\xfe\\x09\\x59\\x73\\xe4\\x15\\xfc\\x2d\\xb8\\xad\\xf1\\x0b\\x14\\x7e\\xc7\\x08\\x0c\\x3b\\x8e\\xbd\\x07\\xd2\\x1b\\xb9\\x55\\x6d\\xa8\\x54\\x30\\xa2\\x68\\xee\\xd8\\x48\\x6b\\x1e\\x31\\xc9\\x43\\x13\\xb0\\x16\\x49\\xfe\\x91\\xb2\\x22\\xf8\\x5a\\xde\\xe1\\x5e\\xb7\\x77\\x07\\xd7\\x8f\\xfc\\xb6\\x60\\x92\\x65\\x44\\xd3\\x3b\\xe9\\x99\\x4a\\x29\\x76\\x20\\xdc\\x7a\\xed\\x97\\xf3\\x92\\x63\\x90\\x53\\xf3\\x88\\xb0\\xb3\\xaa\\x3b\\xd0\\xac\\x5b\\x03\\x3c\\xb4\\x14\\xbe\\x52\\x0b\\x43\\xdf\\x68\\x26\\xb9\\x76\\x89\\x0d\\x0c\\x53\\xb9\\x7b\\x6c\\x92\\xe7\\xd1\\xa1\\x57\\x3d\\x0c\\x74\\x94\\xd7\\x47\\xe0\\xca\\xd9\\xbd\\x8e\\xa5\\x38\\xd6\\x2a\\xd5\\x98\\x01\\xad\\x07\\x16\\xf1\\x70\\x19\\x3e\\x30\\x09\\xd9\\x95\\x9c\\x55\\xd2\\xff\\x64\\x79\\x9b\\xd9\\x59\\x35\\x9a\\xbb\\x94\\xca\\x97\\x23\\xb5\\xff\\xc2\\x4c\\x95\\x07\\xf8\\xc5\\xfd\\x6e\\x88\\xea\\xae\\x7a\\x70\\xad\\xd8\\x4d\\x74\\x4c\\xcf\\x8b\\x98\\x36\\x37\\x88\\xf0\\xbf\\xb1\\xa0\\x25\\x22\\x02\\x57\\x51\\xe5\\x34\\x71\\x0d\\x40\\xa2\\xd3\\x8a\\x79\\x11\\x94\\xeb\\xa2\\x93\\xfd\\x20\\x46\\xcc\\x14\\xdd\\x38\\x76\\xd1\\x68\\xfc\\x6e\\x23\\x6c\\xbe\\x14\\x6d\\x63\\x69\\xd2\\x25\\xbf\\xa6\\x7e\\x53\\x97\\x98\\x65\\xf7\\x88\\x73\\xa9\\xfc\\xf0\\x3c\\x18\\x6f\\xa8\\x52\\x1f\\x0a\\x55\\x45\\xac\\xce\\xe8\\x0d\\x1e\\x55\\x10\\x72\\x21\\xe2\\x1f\\x0f\\x22\\x91\\xc1\\x43\\xde\\x02\\x3e\\x88\\xd7\\x33\\x0c\\xc8\\x7d\\x4c\\x51\\xff\\x29\\xa3\\x09\\x06\\x05\\xe9\\x73\\x94\\x90\\xc1\\xdc\\xee\\x71\\x34\\x95\\xf2\\x31\\xc2\\xa3\\x6b\\x11\\xab\\x23\\x55\\x47\\xfb\\x63\\x28\\xf7\\x47\\x33\\x6d\\x9b\\x1e\\xf2\\x5a\\x8a\\xb9\\x9c\\xed\\xa9\\x57\\xb2\\xdc\\xce\\xe4\\x07\\x5b\\x0d\\x03\\x38\\x1b\\x94\\xae\\x18\\xd0\\x41\\xea\"},\n{{0xfc,0xff,0xf0,0x93,0x2d,0xc8,0x6e,0xa5,0x90,0x2a,0x8d,0x33,0x07,0x33,0x29,0x96,0x0c,0xd8,0x18,0x8a,0x07,0x5d,0xd0,0xbc,0xdf,0xa8,0x38,0x2c,0x20,0xb0,0xe7,0x8f,},{0x0c,0x92,0x05,0xa9,0x0b,0xbe,0x7f,0x2d,0x50,0x5e,0x17,0xfa,0x3d,0x08,0x0b,0x52,0x2a,0x1d,0x7a,0x15,0x2c,0xad,0x2d,0x85,0xd3,0x1b,0x34,0xa0,0x47,0x1c,0x0d,0x4c,},{0x37,0xdd,0xd8,0x3f,0x98,0xb0,0x57,0xb7,0xcb,0x32,0x08,0xa8,0x32,0xc5,0x8a,0xa9,0x06,0x94,0x56,0x3c,0x23,0x54,0x8d,0x43,0x22,0x91,0x38,0x0b,0x73,0x59,0x13,0x01,0xf2,0x74,0xb0,0x4c,0xee,0x2e,0xf7,0x8c,0x06,0xd9,0x6c,0x3d,0x9b,0x7c,0x17,0x52,0x1a,0xae,0x1a,0x8c,0xa5,0x0d,0x34,0x7c,0x09,0xc3,0xcf,0x70,0x3b,0xc8,0x83,0x0b,},\"\\x3d\\x4b\\x76\\x12\\x23\\x73\\xe2\\x12\\xa3\\x46\\xd1\\x9a\\x66\\xbb\\xfc\\x4b\\x62\\x32\\x92\\x64\\x9b\\xd0\\xce\\x5c\\xf6\\xbb\\x13\\x56\\x48\\xbd\\x01\\xdb\\x74\\x03\\xb3\\xd0\\xbd\\xd1\\x69\\x7f\\xf4\\xe6\\xe9\\x08\\x90\\x41\\x16\\x75\\x4d\\x37\\x0c\\x40\\xd7\\x00\\xcd\\xb6\\x64\\xc4\\x6a\\x91\\xdd\\x84\\xa3\\x58\\xb9\\xd2\\x38\\x14\\x43\\xe6\\x0f\\x2c\\x3f\\x56\\x40\\x26\\x1b\\x6b\\x85\\x8b\\xa8\\xf8\\x28\\xb0\\x97\\x1f\\x41\\x22\\xb2\\x02\\x88\\xa2\\x6b\\xa2\\x09\\x0b\\xa1\\x4f\\xd2\\x76\\x36\\x0c\\xc6\\x86\\x79\\xcd\\x84\\x19\\xae\\x19\\xc6\\xd4\\xdc\\x7b\\x66\\x14\\xc0\\x6d\\xf5\\xe5\\xc0\\x51\\x0e\\x2c\\xb6\\x86\\xde\\x0e\\xbd\\x75\\xe5\\x21\\x0a\\x21\\x55\\x62\\x58\\x9b\\x28\\xc9\\xcc\\xc7\\xd2\\x72\\xb9\\x8b\\xd4\\xbf\\x93\\x49\\x5e\\xfe\\x4f\\xc5\\xb7\\x8d\\xef\\xec\\xfb\\xca\\xa9\\xfe\\x12\\x6b\\xad\\x30\\xe8\\x9b\\x3a\\x38\\x9b\\x42\\x56\\xf6\\xa4\\x8a\\x76\\xc3\\x45\\xde\\x5a\\x36\\xa1\\x44\\x9f\\x08\\x34\\x5b\\x9a\\x5e\\x6a\\x00\\x1d\\xa1\\xff\\x9c\\xd4\\x33\\x70\\x93\\x48\\xe9\\xae\\xfb\\xc7\\x8b\\xa5\\x2d\\x3a\\xb3\\xb4\\x69\\x86\\x93\\x5e\\xba\\x8e\\xcf\\x81\\xed\\xc4\\x3c\\x5b\\x2e\\x3b\\x5e\\xb3\\x8d\\x9a\\x16\\x5e\\x9e\\x7f\\x72\\xf6\\x17\\x60\\x54\\x63\\xbe\\xdb\\xa9\\x73\\xeb\\xfd\\xcd\\xf2\\xb0\\x88\\x9c\\x71\\x41\\x2f\\x8f\\x85\\x0c\\x7a\\x3b\\x55\\x18\\xec\\xd8\\x9d\\x2e\\x25\\xc0\\xc1\\xc3\\x0f\\x08\\x5a\\x0f\\xfe\\x54\\x0e\\xf9\\xc0\\xe8\\x8f\\xc7\\xec\\x4a\\xf1\\x94\\x8a\\x4e\\x6f\\x7a\\x6e\\x25\\x6b\\x30\\x7a\\x11\\x27\\xb7\\x1b\\xa6\\x86\\xef\\xea\\xdc\\xa0\\xe4\\x86\\x09\\x47\\xcf\\x67\\x4f\\xce\\xd6\\xca\\xf7\\x31\\x0c\\xcb\\xaa\\x8d\\x90\\x47\\xda\\xed\\x30\\xfd\\x55\\x85\\xd4\\x1d\\xde\\xae\\x4d\\xf2\\xfe\\xd4\\xb6\\x22\\x80\\x32\\xc3\\xe4\\xae\\x23\\x80\\xe8\\x7e\\xc6\\xcd\\x72\\xe4\\xd7\\x4b\\x8b\\x4c\\x38\\x13\\xfb\\x04\\x33\\x89\\x39\\x1e\\x9c\\x13\\xf7\\xd3\\x3c\\x3a\\xab\\x5a\\x78\\xfc\\x4c\\x6a\\x63\\x4c\\x61\\xa7\\x0f\\x02\\xa9\\x40\\x54\\x8d\\xa1\\x77\\xc6\\x5d\\xf6\\xab\\x17\\xcd\\x96\\x83\\xf3\\x7e\\xa8\\x21\\xc7\\x40\\x88\\x9d\\x82\\xe8\\x8c\\x83\\x4e\\x7d\\x5d\\xc1\\x16\\x62\\xea\\x78\\xb1\\x3c\\x6a\\x4b\\x62\\x18\\xd3\\x17\\x84\\x21\\x9a\\x47\\x67\\x59\\x5b\\x1a\\x56\\x21\\x65\\x25\\xcd\\x68\\x93\\x8b\\x22\\xbd\\xb1\\xf8\\xc5\\xa7\\xf1\\x70\\x1a\\xfe\\xb9\\x61\\x88\\x8e\\x2e\\x0e\\xc0\\xc8\\x38\\xcd\\x62\\x0c\\xb7\\xdd\\x8a\\x14\\x93\\xa0\\x2c\\xd5\\x6b\\x54\\x51\\x25\\xe4\\x70\\x0c\\x08\\x89\\xfa\\x26\\x44\\xe6\\x44\\xa3\\xaf\\x53\\x1d\\x1c\\xd6\\xbc\\x95\\xe5\\xdf\\x91\\x75\\xf1\\x37\\xf2\\x84\\x08\\xcb\\x69\\x9c\\x7a\\xe6\\x6f\\x65\\xd1\\xd2\\x93\\x0f\\xac\\x57\\xca\\x8a\\x60\\xe6\\x31\\x1a\\x40\\x78\\x48\\x8c\\x9e\\xa4\\x04\\x94\\x8a\\x9d\\xeb\\xeb\\x9d\\x5e\\x10\"},\n{{0xa1,0xe4,0xfc,0xfd,0xe0,0x44,0xf1,0xbb,0x0e,0x7b,0xbc,0x63,0x1a,0x83,0x1a,0x8d,0x07,0xe9,0x0a,0xe0,0x8a,0x96,0x6a,0xd6,0x27,0xb6,0x20,0xb1,0xe2,0x8c,0x42,0xcf,},{0x25,0x56,0x0f,0x31,0x16,0x8b,0xd4,0xb7,0x25,0x52,0xed,0xed,0xd0,0x8b,0xb6,0xbf,0x79,0xa9,0x40,0x63,0xc1,0xf1,0xe1,0xd3,0x04,0x86,0x9d,0xd1,0xce,0x04,0x9b,0x95,},{0xc8,0x00,0x15,0x27,0xbd,0x90,0x2c,0x15,0xc3,0xdd,0x5a,0xe1,0x81,0x80,0x52,0x5b,0x5e,0x82,0x02,0xbe,0x66,0x71,0x1f,0x82,0x88,0x5c,0x82,0x22,0xa1,0x5f,0x06,0x00,0x92,0xa2,0xa6,0xe2,0xf7,0xd7,0xe9,0x80,0x31,0x12,0x09,0x19,0x1b,0x32,0xb8,0xad,0xe4,0x8d,0x3e,0xa9,0x8c,0xf2,0x45,0xf0,0xfa,0xd6,0x2c,0x00,0x9c,0x5a,0x71,0x08,},\"\\x8c\\x14\\x54\\xd4\\xe0\\x8a\\x14\\x01\\x64\\x6b\\xf7\\xa8\\x85\\x9e\\x8a\\x14\\x5e\\x85\\xee\\xeb\\x40\\xdb\\x38\\xff\\x01\\x69\\x70\\x96\\x41\\x21\\x2c\\x81\\xb6\\x73\\x90\\x74\\x9c\\x01\\xa7\\x98\\x07\\xf3\\xcc\\xad\\xbb\\xd2\\x25\\x6f\\x36\\xff\\xc1\\x80\\xcf\\x9b\\xa4\\x4b\\xf4\\xa7\\x61\\x2d\\x44\\x1c\\x23\\xb2\\xe2\\x5d\\x33\\xc4\\x8a\\x73\\xe1\\x6c\\xe3\\x57\\x56\\x27\\x58\\xad\\xb0\\x05\\x53\\xc3\\x14\\x2f\\xb8\\x17\\x6b\\x6a\\xe8\\xfb\\x61\\x0a\\x60\\xf9\\x23\\xb0\\x91\\x18\\x14\\xb1\\x0f\\x56\\x79\\x93\\x6c\\x36\\x77\\xb7\\x0e\\x84\\x6e\\x21\\x8f\\x58\\x75\\x67\\xf2\\x01\\x9c\\x7d\\x28\\x2a\\x10\\x7f\\x3c\\xc8\\x47\\x63\\xad\\xae\\xc8\\x89\\x93\\xc0\\xcc\\x50\\x03\\xe7\\x7a\\xf6\\x0d\\x67\\xdb\\x53\\xf8\\xcb\\x72\\x7a\\xa6\\x67\\x2d\\xe0\\x04\\x49\\x8c\\x3b\\x3e\\x22\\x2a\\xa7\\x08\\x2d\\x91\\xf9\\x8a\\x1a\\x06\\x83\\x74\\xc5\\x10\\xff\\x53\\xa5\\xe5\\x59\\xcb\\xe2\\xd6\\xc7\\xc3\\x44\\x2d\\x72\\x38\\x90\\x7c\\x81\\x1d\\x58\\xaa\\x7f\\x5a\\x46\\xb8\\x31\\x12\\x44\\xf0\\xdb\\xe1\\xb9\\xc0\\xe9\\x44\\xdd\\xa1\\xd8\\x01\\x08\\x64\\x94\\x9c\\x59\\x39\\x6c\\x6b\\x34\\x6a\\x11\\xf3\\xaa\\x86\\x6d\\x6b\\xce\\xad\\xfc\\x90\\x90\\x38\\xd2\\x2e\\xfb\\xc8\\xf1\\xda\\xc8\\x10\\xa9\\xf2\\xfa\\xfc\\xce\\x7c\\x03\\x89\\xeb\\x0a\\x56\\xc0\\xf6\\x8c\\xae\\x24\\xae\\x3d\\xdb\\xdf\\xf7\\x11\\x6d\\x2f\\xad\\xeb\\x9b\\x0e\\x75\\x09\\x53\\x6f\\xdc\\x3b\\x83\\xe7\\x13\\x54\\xda\\x6a\\x1a\\xed\\x16\\x88\\x74\\x90\\xdc\\x2f\\x4d\\xf5\\x7b\\xba\\xa7\\x24\\x45\\x28\\xfa\\x30\\x94\\xb9\\x9e\\x86\\x75\\x81\\xac\\xef\\x90\\x62\\x70\\xb2\\xcf\\x4d\\xed\\xa6\\xb8\\xfd\\x9d\\xbb\\x79\\xad\\xd7\\xbe\\xa8\\xf8\\x6f\\xcb\\x1f\\x64\\xdf\\xd5\\x0e\\x38\\x5b\\x42\\x09\\xec\\x0b\\x1a\\x9f\\x6d\\x2e\\x51\\x90\\x68\\x29\\x7a\\x2b\\x5c\\x40\\x5c\\x21\\x6b\\x4a\\x2e\\xd9\\x83\\xff\\x69\\xc5\\x9b\\x53\\x0e\\xff\\xa6\\x0c\\x03\\x67\\x05\\x12\\x67\\xdd\\x2b\\xbd\\x1e\\x86\\xa9\\xab\\x5a\\x11\\x4d\\xd4\\xf6\\x9b\\x54\\x0b\\xfa\\xbf\\xe9\\x7c\\x04\\x03\\xb8\\xfc\\xbb\\x27\\x62\\x57\\x61\\xed\\xa3\\xe2\\xad\\x8e\\x62\\x5c\\xfe\\x4b\\x61\\x5b\\x70\\x25\\x53\\x1a\\x49\\x89\\x18\\xc2\\x4e\\x02\\xa0\\x0e\\x79\\x7b\\xba\\xfd\\x14\\xf9\\xd3\\xf6\\x82\\x7e\\x39\\x00\\x63\\xc4\\x36\\x08\\x06\\x88\\xd0\\x37\\xa6\\xe2\\x99\\x3c\\x56\\xd3\\xa8\\xe9\\x5f\\x37\\x5c\\x10\\x04\\x0b\\xf0\\x4f\\x03\\x0c\\x97\\x26\\x23\\xd9\\xe3\\x80\\x1c\\x13\\xb4\\xec\\x8d\\x01\\xcf\\x18\\x38\\x55\\xf5\\x93\\x5f\\x10\\xdd\\xb2\\xc5\\x4c\\x51\\xc8\\x0c\\xbe\\xd0\\xc2\\x4d\\xb5\\x6e\\x1e\\xd1\\x48\\x93\\x1d\\x89\\x16\\x1c\\x5e\\xa3\\x7c\\x2f\\x97\\x87\\xf8\\x8e\\xf7\\x33\\x0e\\x5d\\xcd\\x0e\\x43\\xd8\\x1b\\xfc\\x8b\\xf2\\x3d\\xdf\\x79\\x83\\xcc\\x1d\\x73\\x38\\x43\\xa3\\x3c\\xcb\\x39\\x5d\\xfc\"},\n{{0xbe,0xd1,0xbb,0xca,0xe1,0x86,0x43,0xd6,0xf6,0xaa,0xc3,0x4f,0x3d,0x9b,0x6a,0x14,0x78,0x39,0x4d,0x02,0xb9,0x31,0xcf,0xf0,0x06,0xd8,0x5f,0x21,0xb7,0xdb,0xc7,0x47,},{0x4f,0x52,0x8b,0x38,0x18,0x5a,0x42,0x4c,0x6f,0xde,0xce,0x46,0x51,0x1a,0x0c,0x29,0xb7,0xc0,0x4b,0x32,0xeb,0x04,0x83,0xab,0xb5,0x2d,0x5f,0x8e,0xb6,0xb3,0x52,0xeb,},{0x0f,0xc9,0x9d,0xd3,0xb9,0xa0,0xe8,0xb1,0xfc,0x6e,0x63,0x5a,0xf5,0xc6,0x40,0x06,0xb6,0x72,0x00,0xfe,0x95,0x8f,0x53,0xcc,0xe1,0xb9,0xb0,0x91,0xa4,0xe7,0x06,0x69,0xb5,0x93,0xf1,0x55,0x94,0xbc,0x08,0x42,0xe5,0x57,0x62,0x59,0xf9,0xa6,0x85,0x9a,0x0d,0xb2,0x2d,0x74,0x0f,0x9f,0x80,0x24,0xb5,0xba,0xf1,0xef,0x6f,0x95,0x8c,0x05,},\"\\xff\\x7c\\x64\\x13\\xe6\\x18\\xa0\\x56\\xde\\x40\\x1e\\xe1\\x0c\\x40\\xad\\xe3\\xd7\\xc0\\xe6\\x86\\x14\\x95\\xd9\\x7c\\x26\\x89\\xec\\x6a\\xbb\\x69\\xdd\\x2a\\xe7\\x01\\xfd\\xca\\xc8\\xf0\\x83\\x31\\xea\\x5c\\x5f\\x5d\\x80\\x5b\\x57\\x89\\xee\\x5e\\x24\\x1f\\xf4\\xac\\x8b\\x96\\x0f\\x4f\\x2b\\x9f\\xef\\x6a\\x72\\x7f\\xad\\x86\\xdc\\xd4\\x32\\xde\\x9f\\xad\\x6b\\xa4\\x5e\\x00\\xaa\\x36\\x87\\xb0\\xce\\xeb\\x2c\\x0d\\x43\\x0b\\x7d\\x5f\\xde\\x63\\xb4\\xf6\\xb9\\x82\\xc4\\xf9\\xe0\\x3c\\x43\\x0a\\xba\\xd9\\x04\\x4d\\x06\\xdc\\x49\\xe8\\x9d\\xf4\\x81\\x40\\x5d\\x8f\\xeb\\xbb\\x06\\x53\\xe9\\x68\\x69\\x48\\xaa\\xd2\\xd9\\x07\\x25\\x44\\xdf\\x94\\x24\\xfd\\x48\\x7f\\x4e\\x24\\xba\\x7f\\x24\\x55\\xdd\\xec\\x41\\x05\\x82\\x8c\\x39\\x81\\xbd\\xdb\\xb1\\xb7\\xfb\\xdb\\xac\\x15\\x59\\x03\\xe9\\x60\\xfc\\xd9\\x4c\\x07\\x16\\xe7\\x36\\xf5\\x19\\x86\\x7f\\xbc\\x52\\xc5\\x12\\x60\\xf5\\x71\\xd7\\xed\\xcb\\x08\\x1a\\x23\\x55\\x0a\\xd8\\xc7\\x0b\\xb2\\x68\\x86\\x4a\\xb2\\x76\\xaa\\x2c\\xc2\\xdb\\xf6\\x23\\x83\\xbb\\x66\\x03\\x0e\\xbe\\x94\\x35\\x41\\x74\\xcc\\xec\\x2d\\x2a\\x90\\x75\\x78\\x55\\x64\\x44\\x50\\x7c\\xbf\\x84\\x88\\xbb\\x23\\xc6\\x24\\x23\\xa3\\xa9\\x8d\\xa7\\xcc\\x96\\x8f\\x59\\x9d\\x3d\\xc8\\x4d\\xca\\x3a\\xfa\\xd7\\xf1\\x4e\\xc3\\x06\\xe1\\xdb\\x53\\x41\\x43\\x21\\x6a\\xa2\\x2a\\xd1\\x80\\x74\\xc7\\x19\\x57\\x08\\x05\\xea\\x46\\xbc\\x86\\xb7\\x1a\\x8f\\xf5\\x8e\\x41\\xe7\\x3c\\xb2\\x9a\\xd5\\x75\\x0f\\xcf\\xc9\\xa1\\xc5\\x42\\x92\\xb6\\x4b\\x47\\xec\\x95\\x38\\xf5\\x38\\x16\\xe3\\x6e\\xd0\\xd0\\xc1\\xae\\x5e\\xad\\x06\\xd4\\x77\\xaa\\x97\\x5e\\xce\\xba\\xf6\\x2d\\x90\\x23\\xb7\\x7e\\x50\\xe7\\xb6\\xd4\\xab\\xda\\xa4\\x85\\xea\\x34\\xec\\x76\\x6b\\xeb\\x1d\\x9b\\xa0\\x3c\\x9c\\x06\\x71\\x86\\xe2\\xe3\\x82\\x66\\xc6\\xe2\\x53\\x1e\\x97\\x48\\x02\\x14\\x63\\x8a\\x2b\\xb3\\x14\\x31\\xac\\x20\\x86\\x79\\x71\\x55\\xfc\\x77\\x5b\\x3a\\xad\\x8d\\x5a\\x0b\\x90\\x4c\\x38\\x1e\\xdd\\x0c\\x6b\\xc2\\x3c\\x66\\xa1\\x90\\x49\\x55\\xed\\x45\\x0a\\x9c\\xbd\\x16\\x45\\x9c\\x32\\xf5\\xca\\x35\\x4b\\xbc\\x2d\\xa7\\xb1\\xa4\\xd8\\x14\\xf1\\xb8\\x71\\x0a\\xad\\xb2\\xcc\\xc4\\xf3\\x97\\x75\\x8b\\x7e\\x9d\\x91\\xf3\\xa9\\x1e\\x58\\x25\\xab\\x86\\x82\\xff\\x5e\\x41\\x70\\x2e\\x07\\x84\\x1a\\xc7\\x69\\x8c\\x3d\\xa9\\xf5\\x58\\xed\\xd0\\x1f\\x86\\xce\\x2c\\x50\\x6b\\xf4\\xc2\\x14\\x9a\\xc9\\xc1\\x95\\xa5\\x9c\\x7d\\xd7\\xd4\\xec\\xf9\\x3c\\x90\\xb4\\x42\\x3b\\x43\\x50\\x58\\x8d\\x41\\x67\\x2c\\xed\\xc8\\x51\\x0a\\x7a\\xd5\\x3b\\x4b\\x7e\\xdc\\xaf\\x23\\xe4\\x3e\\x05\\x66\\x9d\\x27\\xa1\\xfe\\x97\\xb7\\x87\\x30\\xd3\\xfc\\x06\\x0b\\xd4\\xed\\xd9\\x87\\x2c\\xff\\xb9\\x62\\x85\\x35\\x1b\\xef\\x14\\x8e\\xf7\\x83\\xab\\x39\\x21\\x16\\xbd\\x7b\\x90\\x7b\\xad\"},\n{{0xc7,0x18,0x82,0x3f,0x43,0xdb,0x22,0x17,0xc6,0x6a,0xb2,0x89,0x97,0x04,0x16,0x5d,0x20,0x85,0x73,0xde,0x60,0xf3,0x3b,0xc0,0xb9,0x33,0x8d,0x88,0x0f,0x19,0x3f,0xb5,},{0x29,0x40,0xb8,0x79,0xb6,0x3f,0x2c,0xb1,0xf6,0xe3,0xef,0x9c,0x9d,0x33,0x3b,0xa9,0x17,0x70,0xfe,0x18,0xcc,0x5a,0x34,0x7f,0xdf,0x12,0xb0,0xef,0xc5,0xca,0x2e,0xc9,},{0x4c,0x9c,0xdb,0x1a,0xd4,0x65,0x09,0x56,0x0d,0x87,0x1d,0x30,0x89,0xaf,0xb8,0x73,0x46,0x48,0x20,0x1b,0x10,0xac,0xc9,0x53,0xe8,0xb6,0x1f,0x2c,0xce,0x2d,0xba,0xe0,0xfb,0x9b,0x86,0x8a,0xc9,0x57,0x43,0x2b,0x72,0x22,0xdb,0xf7,0xe4,0xcf,0x0b,0xc7,0x53,0x09,0xbe,0xa3,0x60,0xb2,0x63,0xab,0xbd,0xe1,0x88,0x53,0x2d,0xda,0x25,0x04,},\"\\x05\\x0e\\x68\\x77\\xf6\\x5e\\xc7\\x26\\xee\\xc7\\x01\\x86\\x3f\\xab\\x14\\x0b\\x99\\x4a\\xa1\\xe9\\x2a\\x48\\x7d\\xb1\\xa1\\x87\\x01\\x31\\x20\\x57\\xdb\\x44\\xbf\\xde\\x70\\x91\\x1e\\xc2\\x6e\\xaa\\x28\\x63\\x2d\\x03\\x79\\x4d\\x54\\x5d\\xfc\\xb2\\xae\\xd4\\x34\\x0c\\xab\\x7d\\x09\\x25\\x95\\xcd\\x59\\xed\\x23\\x99\\x40\\x43\\xf5\\x0b\\xa6\\x96\\xe9\\x80\\x2b\\xd6\\x49\\x90\\x12\\x13\\x97\\x28\\x64\\x57\\xae\\x69\\xd7\\x6c\\xb8\\xe3\\x4d\\x7c\\x1a\\xb2\\x45\\xcb\\x07\\xb1\\xb4\\x08\\xf2\\xbb\\xbf\\xdf\\x33\\xa1\\xbd\\xd5\\x59\\x63\\x67\\x02\\xc9\\x18\\xf9\\x82\\xc2\\xac\\x02\\x21\\xf7\\xf9\\x4d\\xb9\\x1e\\xde\\xfc\\xe2\\x81\\x18\\x25\\x9f\\x89\\xd9\\x94\\xda\\xd5\\xbb\\x01\\x3c\\x67\\x8c\\x1c\\x33\\x8b\\x65\\x39\\x6b\\x15\\xe8\\x89\\x9c\\x16\\x99\\x21\\xf2\\x78\\x85\\x9c\\xe0\\xc8\\x56\\xd8\\x89\\xb8\\xc6\\x34\\x18\\xeb\\xc5\\x73\\xd2\\xd6\\x25\\xd5\\xb5\\x93\\x88\\x39\\xf2\\xb1\\x69\\xb6\\x91\\x6d\\x8e\\x40\\xdd\\xe7\\x0d\\x3b\\x72\\x88\\x7a\\xd2\\x47\\x8e\\xf6\\xfb\\x12\\x84\\xfa\\x0e\\x4f\\xc5\\x24\\xe3\\xc6\\xfa\\x1d\\xd2\\x2b\\xa6\\xb8\\x1d\\xef\\x82\\x79\\xf3\\x82\\xbc\\xb4\\x50\\x48\\x85\\x1b\\x17\\xcd\\x65\\x9d\\x59\\x40\\x9f\\x57\\x1f\\xa8\\xa9\\x20\\xa2\\x09\\x34\\xd9\\xdb\\xe1\\x02\\x2d\\x63\\x58\\x40\\x96\\x54\\x00\\x24\\x0f\\x87\\x0a\\xce\\xff\\xd5\\xdb\\x7c\\x7d\\xf0\\x8a\\xf8\\x9e\\x47\\xe1\\xb9\\xe2\\x0b\\xb9\\x9f\\x96\\xab\\x07\\x3e\\xdf\\x53\\x69\\x4c\\x74\\x82\\x89\\x0e\\x36\\x31\\x34\\x02\\x17\\xe6\\x87\\xab\\x27\\xc9\\x84\\xb6\\x08\\x25\\x16\\x94\\x57\\xd4\\x35\\xa5\\x40\\x9a\\xd8\\xe4\\x2d\\xa0\\xaa\\x63\\xe2\\x0c\\x2b\\xc6\\x7b\\xd8\\xb9\\xa2\\x67\\xf3\\x96\\x73\\xa7\\x7f\\x7f\\x31\\x36\\xdc\\x5c\\xb2\\xd2\\x49\\x48\\xdb\\xe7\\xbc\\xd7\\x12\\x93\\x18\\xc6\\x8c\\x6f\\xe9\\x5d\\xd4\\xdd\\x4f\\xe9\\x42\\x28\\x68\\x31\\xea\\x53\\x35\\x2f\\xbb\\x25\\x2a\\x12\\x88\\xbc\\xd8\\x38\\x92\\x13\\x56\\x78\\x5d\\x07\\x21\\x34\\xcb\\x82\\x0f\\x62\\x79\\xcc\\x71\\x46\\x1f\\x43\\x1b\\xe9\\xd3\\x01\\x47\\x24\\x32\\x1c\\x92\\xfd\\xc5\\x76\\x32\\x01\\x37\\x70\\x5c\\xff\\xb2\\xc2\\x36\\x64\\xb7\\x05\\xe9\\xbe\\x60\\xae\\x1a\\x19\\x0f\\x3e\\x34\\x84\\xf7\\x00\\x58\\xe7\\x02\\x40\\x7b\\x05\\x6d\\x7f\\xe5\\xd3\\x1c\\xee\\x9c\\x2a\\x6a\\xc6\\xea\\xda\\x35\\x16\\xab\\xc5\\x51\\x72\\x56\\xdf\\x12\\x43\\x78\\x0a\\x03\\xbb\\x00\\xba\\x00\\xce\\x24\\x80\\x76\\xee\\xca\\x6f\\xee\\x91\\xd5\\xef\\x9e\\xb9\\x07\\xb8\\x01\\xaf\\x09\\x7f\\x3e\\x9e\\xb2\\x56\\xbd\\xcd\\xe8\\x1e\\xfe\\x4b\\xaf\\x81\\x89\\xb0\\x39\\x9e\\x36\\xf1\\xea\\xa3\\xab\\x62\\x66\\x17\\xcf\\x3b\\x47\\xdd\\x89\\xca\\xf6\\x9c\\x64\\xc5\\xb8\\xf6\\x8b\\xd9\\x17\\xfe\\x03\\xe4\\x66\\x85\\x38\\x46\\x0a\\x1b\\xe8\\x8d\\x9a\\x84\\x6c\\xef\\x39\\x93\\x46\\x27\\xd4\\x74\\x73\\x4f\"},\n{{0x25,0x43,0xd1,0x66,0xc9,0xf5,0xf7,0x42,0x7f,0xf3,0x03,0x4f,0xfa,0x81,0x03,0xcb,0x11,0x7b,0xf4,0x72,0x33,0x1a,0x73,0xd9,0xa2,0xf1,0xbc,0x0a,0x02,0xa6,0xff,0x1b,},{0x42,0x67,0x8c,0xf3,0x85,0x70,0x21,0xaa,0x55,0x67,0x70,0x6d,0xb0,0x31,0xe7,0x92,0x71,0x5c,0xca,0xf8,0xab,0xb0,0x2a,0x04,0x2b,0xad,0x17,0xdb,0x3d,0x5f,0xa1,0x03,},{0x20,0xea,0x93,0x68,0xa2,0xcc,0xd0,0x8b,0xf9,0xcb,0xf4,0x8d,0x4a,0x2f,0x7d,0x03,0xf0,0xdb,0x08,0xa5,0x4b,0x87,0x67,0x9c,0xda,0x03,0xe2,0x96,0xaf,0x9e,0xf3,0x78,0xbe,0x9b,0x8f,0x04,0xb4,0x06,0x5b,0x00,0x9d,0xa6,0xdb,0x01,0x6f,0x3d,0xf9,0xdb,0x64,0x82,0x58,0x73,0xe2,0xfb,0x4d,0xe3,0x04,0x49,0x91,0x5c,0xd7,0x3c,0x46,0x09,},\"\\x74\\x6d\\x7a\\xbf\\x0b\\xfb\\x26\\x62\\xc2\\x5a\\xb5\\xc5\\xe4\\x61\\x2c\\x30\\x6f\\x16\\xd1\\x3e\\x44\\xd0\\xdb\\x39\\x4a\\x00\\x15\\x67\\x6c\\xe6\\x09\\x78\\x4f\\x03\\x23\\xda\\x1d\\xfa\\x94\\xd2\\xb2\\xf1\\xf6\\xe0\\x24\\x44\\xa9\\x36\\xd0\\x19\\xb1\\x43\\x02\\x1f\\x73\\xc7\\x9d\\xf9\\x30\\x9e\\x7b\\xdf\\xf3\\x9d\\xae\\xec\\x4c\\xac\\xa0\\x0c\\xba\\x4e\\xf3\\x1c\\x83\\x10\\xc1\\xa0\\x8e\\xf4\\xb3\\x6f\\x81\\xc3\\x77\\x84\\x6b\\x5b\\x90\\xac\\xd4\\x11\\xaa\\x67\\x1e\\xd7\\xaf\\x27\\x8a\\x24\\x22\\x9b\\x78\\x93\\xc1\\xb4\\x15\\xd7\\x98\\x88\\xd7\\x63\\x7f\\x5c\\xb5\\xc9\\xc6\\xc6\\x31\\xae\\x5f\\xfa\\x29\\xf1\\x34\\x0e\\x44\\x40\\x96\\xab\\x53\\x36\\x17\\xfd\\xcb\\x80\\xff\\x81\\xda\\x0a\\x7c\\x6c\\x14\\x2e\\xe0\\xfe\\x5e\\xa8\\x2f\\x68\\xcc\\x3e\\xa3\\x8b\\x56\\xf2\\x72\\xb0\\xd8\\x0f\\xd5\\xf4\\xf5\\x5c\\xa9\\x34\\x8c\\x16\\x18\\x81\\x43\\x58\\x13\\xc3\\xfa\\x9f\\xff\\x66\\xa2\\xee\\x6d\\x5b\\xd3\\xed\\xba\\x0d\\x2f\\x9a\\xa7\\x4b\\x1c\\x44\\xbf\\xd0\\xe6\\x46\\x78\\xd3\\x71\\x51\\x24\\x96\\x3a\\xc5\\x75\\xff\\xb0\\x9e\\xe1\\x64\\x37\\xda\\x48\\x4b\\x3b\\xa5\\x8e\\x5a\\xeb\\x8e\\xd8\\xc5\\xc0\\xf4\\x7b\\x59\\x90\\x8f\\xe5\\x80\\xf3\\x7e\\xc1\\xde\\x26\\x6b\\x29\\x5d\\x6b\\xe8\\x5e\\x62\\x35\\x8e\\x9b\\xbd\\xc7\\x89\\x64\\xfb\\x83\\x7e\\xea\\x29\\xfd\\xb7\\xde\\x86\\xcc\\x56\\xf4\\x8b\\xd9\\xa3\\xe6\\xe2\\xbe\\x51\\xd8\\xa1\\xdc\\xff\\x3c\\xa4\\xd5\\x6e\\xa9\\x34\\xc6\\x82\\x77\\x2b\\xca\\xfb\\x51\\x49\\x7b\\xe5\\xd0\\xf2\\xa2\\x3d\\xd4\\x97\\x0c\\x02\\xc4\\x4c\\x09\\xad\\x89\\x7b\\x42\\x41\\xac\\xd7\\xd6\\xab\\x12\\xd8\\xf0\\x0c\\x9a\\xad\\xc3\\x34\\xb4\\x31\\xfe\\xc5\\xbb\\x69\\xa2\\x85\\xb7\\x55\\x0a\\x63\\x9e\\xce\\x96\\x95\\x26\\x82\\xb7\\x33\\x4b\\x68\\xc6\\x51\\x52\\xe8\\x93\\xb1\\xc8\\x10\\x0c\\x69\\x4d\\x8c\\x5c\\xfe\\x26\\xac\\x03\\xc1\\xf3\\x91\\x4e\\x65\\xc8\\x4f\\x0e\\x77\\x72\\x90\\xc7\\x6f\\x6a\\xcc\\xe3\\x40\\xbf\\xf6\\x6d\\xa7\\x22\\x0f\\x73\\x17\\x5e\\x94\\xaf\\x52\\xf9\\xf1\\x9e\\x61\\xf8\\x0d\\xc1\\xf3\\x57\\x16\\xb3\\xf4\\x8d\\xfa\\x50\\x25\\xc9\\xeb\\xef\\x73\\x82\\xe0\\x55\\x83\\x0f\\x5b\\xbf\\x15\\xc6\\xf6\\xa9\\x50\\x32\\x90\\x9c\\x89\\x2c\\x0f\\x89\\xc8\\xc1\\x5f\\xc3\\xea\\x40\\xa2\\x0e\\xe1\\xa4\\x52\\x9b\\x52\\x19\\x51\\xdf\\x44\\xd9\\xd7\\x9d\\x74\\xe0\\xc4\\xc2\\xe0\\xfe\\xd8\\x49\\xb8\\x78\\x52\\x06\\xdb\\xe6\\x2b\\xfa\\x2c\\xa2\\x10\\x87\\xa9\\x12\\xe9\\xb1\\x84\\x55\\x16\\x59\\xcd\\x8a\\x58\\x7e\\x95\\xb0\\x43\\x17\\x19\\x25\\x96\\xbb\\x0b\\x7f\\xc9\\xf7\\xbb\\xb6\\xee\\x04\\x9c\\x8b\\x02\\xfd\\xd7\\x58\\xb4\\xe7\\x98\\x82\\x07\\x3b\\x71\\xea\\xab\\x18\\xaa\\x29\\x37\\x01\\xc1\\x7d\\x55\\xf9\\xec\\x46\\xc5\\x2d\\xe1\\xe8\\x86\\xb6\\x75\\x0f\\xb0\\xfb\\xcd\\x64\\xf4\\x56\\x8a\\x21\\x0a\\xe4\\x51\\xe9\"},\n{{0x85,0xe0,0xa8,0x0f,0x3b,0x30,0xc2,0x01,0x99,0xd9,0xc1,0xec,0x66,0x2e,0x39,0x2f,0xdf,0x15,0x46,0x37,0x73,0x43,0xf1,0x24,0x71,0xdb,0x2a,0x03,0x10,0xa7,0x05,0xbd,},{0x54,0x0a,0x3a,0x1d,0x83,0x67,0x2e,0x49,0x50,0x34,0xcf,0xf4,0x08,0xe1,0xfb,0xe8,0x2e,0x53,0x8f,0x09,0x17,0xe8,0xa1,0xc7,0xd1,0x7a,0xab,0x58,0xe0,0x43,0xd3,0xc6,},{0x18,0x5e,0xf2,0x24,0x6a,0xba,0x2b,0x1a,0x56,0x80,0x32,0xc7,0xdf,0x93,0xc6,0x67,0x79,0x9b,0x8a,0x52,0x1a,0x6f,0x97,0x32,0x1e,0xad,0x58,0x66,0xb4,0xcb,0x9c,0x65,0xb6,0x4a,0x1c,0x40,0xb9,0xb6,0xa9,0x10,0xe7,0x42,0xdc,0x32,0xa7,0xe6,0x6d,0x11,0xea,0x45,0xdb,0xea,0xac,0xae,0x9f,0x09,0x51,0x1b,0x81,0x01,0xf8,0xaf,0x0c,0x0c,},\"\\xd2\\x80\\x2f\\x15\\x96\\xf8\\x38\\x3b\\x64\\xed\\xbd\\xc5\\x94\\x06\\x0b\\xff\\x0e\\x70\\x13\\xd5\\xb7\\xc8\\x5d\\x83\\x0f\\xae\\x11\\xae\\xb3\\x4d\\xd5\\x94\\x95\\x9d\\xa6\\x24\\xe0\\x44\\x47\\x4c\\x54\\x09\\xc0\\x05\\x96\\x73\\xbd\\xc6\\x1a\\x67\\x1e\\xf5\\xb0\\xb8\\xa2\\x6f\\x30\\x10\\x0b\\x3b\\x73\\x96\\x8d\\x8e\\x4d\\x83\\xa7\\x2f\\x25\\xb5\\x13\\x44\\x8d\\x2f\\x6b\\x6a\\x44\\x75\\xfd\\xf8\\x9e\\x31\\xca\\x92\\x68\\xa3\\x07\\x05\\xaf\\x3f\\x64\\x9e\\x3f\\xe0\\x1d\\xde\\x0c\\xf4\\xb2\\x9e\\xc2\\xda\\x54\\x36\\x44\\x4a\\xf0\\x91\\xd6\\x27\\x30\\xac\\xd4\\xca\\xb6\\x08\\xf0\\xdf\\x26\\xf0\\x88\\xc6\\xb9\\xb9\\x67\\x37\\x94\\xf0\\x74\\x7d\\xab\\x2c\\xe1\\x90\\xf9\\x05\\x92\\x00\\x9f\\xdc\\xe5\\x46\\x4b\\x36\\x61\\xb7\\xe8\\x62\\x0b\\xad\\x65\\x50\\x9a\\x6c\\x75\\x2b\\x72\\x7a\\x8d\\xc8\\xd3\\xef\\xa5\\x84\\xfd\\xe0\\x27\\x2c\\x45\\x1d\\x65\\xa9\\x3b\\xec\\xe4\\xf5\\x9d\\x87\\xdc\\x6f\\xbe\\xb4\\x51\\x40\\x1e\\x3e\\x2e\\x00\\x3c\\x6a\\xca\\x7b\\x3d\\x3f\\x92\\x71\\x91\\x50\\xc6\\x77\\x8f\\x01\\x5a\\xff\\x2a\\x59\\xbf\\xbf\\x2e\\x91\\xb2\\x1b\\x0a\\xd6\\x87\\x75\\x36\\xeb\\x54\\x56\\x70\\x59\\xf5\\x87\\xf5\\x4d\\x4e\\x2a\\x6f\\xe1\\xfd\\xcd\\xd6\\xa7\\xfd\\xcb\\x85\\x15\\x57\\x5b\\xcc\\x37\\x05\\xd7\\x78\\x59\\x35\\x2f\\xa0\\xb0\\x44\\x16\\x6e\\x3c\\x31\\x88\\x46\\xa5\\xdf\\x33\\x56\\x30\\x03\\xcb\\x20\\xbc\\x94\\x2d\\x30\\x39\\x10\\x93\\xe8\\xd5\\x83\\xe8\\xe6\\x4d\\xec\\x57\\x0e\\xe1\\xc4\\x13\\x87\\x62\\xf6\\x48\\x38\\x98\\xd3\\x2e\\x20\\x32\\xbd\\xe9\\xbb\\xe0\\x7e\\xc2\\xc3\\xeb\\x47\\xd9\\x68\\x76\\xf0\\xfc\\x0f\\x02\\x4d\\x75\\x3c\\xeb\\x34\\xff\\x84\\x80\\xb4\\xcf\\x57\\x62\\x30\\xbb\\x82\\x63\\xdd\\x80\\xee\\xac\\x66\\x2e\\xba\\x31\\xd8\\xa6\\x1f\\x30\\x9e\\x17\\x5f\\x4c\\x01\\x43\\xe2\\x8a\\x85\\x2b\\x1c\\x30\\x61\\xce\\x78\\xef\\xbd\\x16\\xa2\\x87\\x3d\\xd2\\x81\\x98\\xa4\\x6e\\xc0\\xa8\\x00\\xb3\\x0d\\xc8\\xa9\\x3b\\x8d\\xbb\\x81\\xa7\\x30\\xde\\x45\\x0b\\x86\\x4d\\xea\\x76\\x80\\xe5\\x09\\xd8\\x00\\xe8\\x23\\x29\\xc2\\x61\\xb0\\x7e\\x72\\xaa\\x80\\xee\\x16\\xec\\x37\\x5d\\xdb\\xbb\\x6f\\xe3\\xd8\\xd4\\x7b\\x0e\\x3c\\x5a\\x9f\\x23\\xc4\\xd2\\x0b\\x72\\x4c\\x1d\\xf5\\x98\\x35\\xd8\\x30\\xdd\\x22\\xd1\\x04\\x03\\xd8\\xf1\\x5c\\x10\\x2c\\x4b\\x37\\x69\\xc4\\x16\\x66\\xc3\\xab\\x8c\\x7e\\x80\\xb9\\x40\\xd0\\xbb\\xb5\\x86\\x52\\xd1\\x0a\\x3f\\xfe\\x8d\\x44\\xdf\\x10\\x12\\xa3\\xdd\\xc4\\xe1\\xc5\\x18\\xd4\\x90\\x19\\xf7\\xc5\\xd3\\xd9\\xf9\\x5e\\xd9\\x3a\\x31\\x97\\x46\\xd1\\xe5\\x43\\xff\\xa6\\x9e\\xdb\\x49\\xbb\\x34\\x39\\xf8\\xa3\\x25\\xac\\x6a\\x0c\\xb4\\xed\\xd6\\x5b\\xa6\\x00\\x80\\xa0\\x44\\x7c\\x67\\x4f\\xaa\\x72\\xd8\\xae\\xbd\\xb5\\xd2\\x54\\x4f\\x2f\\x2d\\x84\\x7c\\x72\\xc2\\xdf\\xa6\\x05\\x7a\\x69\\x0a\\xdc\\x5c\\x44\\x1a\"},\n{{0x82,0xa2,0xc6,0x49,0x3f,0x11,0xba,0x80,0xe4,0xb8,0xb3,0xb4,0x38,0x41,0xbe,0x97,0x0e,0x2a,0x10,0xa9,0x4d,0x22,0x49,0xd8,0xac,0x6f,0x54,0x14,0xcf,0x5a,0x3c,0xb5,},{0x4c,0x2e,0xe0,0x1c,0xde,0xa0,0x7d,0xb3,0x63,0x5f,0x5d,0x4c,0x10,0x82,0xb9,0x2f,0x29,0x8d,0xeb,0x17,0xd0,0xf9,0x05,0xdf,0x71,0xb6,0x6f,0xb2,0x27,0x4e,0xae,0x99,},{0x68,0xa9,0x1d,0x4f,0x8d,0x24,0x1c,0x1d,0xef,0xbd,0x5c,0xa9,0xe9,0xe1,0xed,0x82,0x74,0x41,0x95,0x06,0x75,0x1c,0x96,0x79,0x47,0xb1,0x0d,0x50,0x11,0x8b,0xbf,0xab,0xc7,0x65,0xff,0xd7,0xb3,0x1a,0x01,0x67,0xc4,0xfd,0x8b,0x11,0x75,0x33,0x24,0x12,0xdf,0x19,0xd8,0xaa,0x1a,0x90,0x95,0x90,0x86,0x13,0x20,0x92,0x3d,0xbc,0xb2,0x04,},\"\\x09\\x85\\x4d\\x13\\x68\\x49\\x50\\x41\\x9e\\x0b\\xb1\\x64\\x64\\xe0\\x99\\x88\\x90\\x5c\\x02\\x17\\x18\\x3a\\xa1\\xe4\\x8a\\xdb\\x14\\x7b\\xfc\\xc2\\xeb\\x57\\xc2\\x30\\x0b\\x0d\\xfc\\x39\\xd4\\x89\\x66\\x55\\xa5\\x7a\\xe2\\x04\\x15\\x40\\x8b\\xb5\\xf2\\xc2\\x38\\x01\\x39\\x55\\xf0\\xa4\\xfc\\x78\\x2e\\x0c\\x99\\x3f\\xe4\\x2c\\xb0\\x8c\\xd8\\xcf\\x41\\x5c\\xcb\\xd6\\xcf\\x1c\\xee\\x2e\\x80\\x97\\xf0\\x4e\\x8f\\x09\\xae\\x5d\\xa5\\xf4\\x15\\xb1\\x6c\\x2c\\xb3\\x0c\\xb2\\xab\\x66\\x52\\xba\\x50\\xeb\\xbc\\xae\\x4a\\x59\\xe3\\x1f\\xe1\\x1e\\x7e\\xf3\\x69\\x9c\\xa9\\x0a\\xaf\\xa5\\x86\\xbb\\x24\\x2c\\x89\\xcd\\x2e\\x33\\x2b\\x2b\\xfa\\x2f\\x81\\x42\\xac\\xca\\xf4\\x36\\xf8\\x9b\\x64\\x53\\xbb\\x48\\x05\\xa1\\xe7\\xf3\\xab\\x62\\x70\\xf0\\xda\\xf8\\x93\\x89\\xe7\\x17\\xd1\\xb7\\x01\\x75\\xec\\x57\\x07\\xc8\\xf5\\x12\\xc4\\x0a\\xb9\\x24\\xc4\\x57\\xe9\\xf0\\x91\\x47\\x91\\x75\\x0d\\xc2\\x92\\xbb\\x27\\xd6\\xf6\\x3b\\xa8\\xcc\\xf5\\x4b\\x90\\xd3\\xeb\\xa7\\xf1\\x9e\\xb3\\x00\\xd9\\xeb\\x8f\\x3b\\x72\\x03\\x2b\\xa9\\x30\\x37\\xf5\\x52\\xb4\\x09\\xb5\\x80\\xa5\\xf6\\x51\\x16\\xfa\\xff\\xe0\\xfd\\xfd\\xc6\\xdb\\x38\\x81\\x38\\x6c\\x3c\\xbc\\x16\\xb6\\x7e\\xb2\\x57\\x63\\xd7\\xae\\x3a\\xac\\x0b\\x85\\xaa\\x1e\\x9a\\xa2\\x2e\\x49\\x59\\x60\\x9d\\x43\\x81\\xe4\\xb6\\xd7\\x15\\x9f\\xf3\\xe3\\xb2\\xd3\\x7b\\x64\\x0f\\x88\\xcf\\xbe\\x4f\\x8a\\x77\\xf8\\x01\\x64\\x57\\x22\\x8b\\xa6\\xd3\\xaf\\x5c\\x4e\\x33\\x12\\x5d\\x48\\xbc\\xfc\\xf3\\x67\\x8c\\x16\\x3b\\x69\\x8e\\x52\\xe8\\x56\\x17\\xab\\x1a\\x75\\xff\\x20\\xc6\\x90\\xab\\x07\\x15\\x5e\\xe7\\x57\\x59\\x85\\x78\\x07\\x2d\\x4a\\x09\\xdf\\xc6\\xc6\\xc0\\x94\\xec\\x04\\x85\\x67\\xd5\\x13\\xce\\x2b\\x18\\x34\\xe1\\x63\\xdf\\x15\\x45\\x31\\x9d\\x80\\x61\\xe0\\xe5\\x7f\\x58\\xef\\x04\\x1b\\x7b\\xff\\xc4\\x96\\x6a\\xc1\\x66\\x03\\x31\\xb9\\x7a\\xbb\\xc9\\x7b\\xe2\\x1a\\xe2\\xbc\\x58\\xc6\\xc3\\x27\\x4a\\x8a\\xda\\xd5\\xfd\\x2c\\x3b\\xc1\\x6b\\x92\\xe1\\xf8\\xde\\x87\\x7b\\x6a\\x26\\xf0\\xc6\\xab\\x71\\x62\\xe8\\xaa\\xb9\\x3a\\xf8\\xd8\\x59\\x18\\xc1\\x3d\\x3e\\x23\\x5a\\x27\\x37\\x48\\xc6\\x2f\\x0d\\x22\\xcb\\x1c\\x93\\xe1\\x34\\xa4\\x95\\xb1\\xb5\\xef\\x8f\\x1a\\x11\\x34\\x51\\x2d\\x53\\xb7\\xa2\\x11\\x26\\x31\\x77\\xf7\\xa6\\x0b\\xdf\\x47\\x46\\x91\\xf2\\x24\\xa3\\xb5\\xba\\xc4\\x00\\x6d\\xb3\\x45\\xca\\x67\\x25\\xf5\\xee\\x70\\x3e\\xca\\x0d\\xea\\x10\\xd7\\x12\\x67\\x6f\\x63\\xef\\x3e\\x53\\x7e\\x63\\xab\\xd2\\x60\\x8c\\xb4\\xfb\\xe2\\x00\\xe1\\x5f\\x18\\x20\\x91\\x53\\x49\\x60\\x72\\x90\\x80\\x44\\xc9\\x5a\\x4e\\x9c\\x53\\x56\\xaa\\xe8\\xed\\x5f\\x09\\x59\\xea\\xc0\\x91\\xe2\\x27\\xa0\\xb8\\x1f\\x58\\x03\\x27\\x6b\\x3b\\x3b\\xf4\\xb6\\x86\\x5a\\x55\\xfc\\x67\\x82\\xf6\\x2e\\xa6\\xd6\\x39\\x90\\xf9\\xbe\\xfe\\x01\"},\n{{0xe5,0x5b,0x34,0x3a,0x0f,0xa1,0xfb,0x74,0x71,0x89,0xcb,0x00,0xdb,0xc3,0xa6,0xaa,0x2d,0xcf,0x5b,0x86,0xe5,0x7d,0x76,0x93,0xf3,0x07,0x42,0x03,0x89,0x76,0x11,0x53,},{0x23,0xa1,0x44,0x60,0xea,0x98,0x3c,0xf9,0x97,0xc7,0x82,0xeb,0x45,0x82,0xab,0x3c,0x8a,0xa6,0xdd,0xe5,0x33,0x25,0xb9,0x77,0xb7,0x8e,0x33,0xd2,0xdc,0x5f,0x27,0xaa,},{0x07,0x26,0x6c,0x18,0x65,0x0e,0xcf,0x06,0x32,0xe2,0x25,0x62,0x4e,0xc4,0xc9,0x7f,0xc3,0x87,0xdc,0x37,0x46,0x87,0xa6,0x19,0x56,0xdc,0xcc,0xe7,0x28,0x94,0xee,0x13,0x8a,0xab,0xc8,0x0c,0xfc,0x90,0xc9,0xee,0xa6,0xdd,0x4c,0x59,0xaf,0x45,0x02,0xee,0x29,0x63,0x5a,0x92,0x88,0x07,0x86,0x67,0x8b,0x14,0xa3,0x93,0x1a,0x69,0xf9,0x07,},\"\\x36\\x28\\x9b\\x5e\\xaf\\xf2\\xa8\\x5a\\x7c\\x6d\\x57\\x5b\\xd1\\x5e\\xa5\\x94\\xb2\\xfd\\x85\\x10\\x87\\x4a\\x46\\x9b\\x52\\x10\\x91\\x63\\x69\\x6d\\x85\\xb6\\x8c\\x5b\\x21\\x1d\\x29\\x64\\xef\\xdc\\x66\\xe6\\x25\\xab\\xe8\\xaa\\xfe\\x4c\\xd9\\x22\\x0c\\xdb\\x34\\x11\\x07\\xff\\xa8\\x27\\x6e\\xd4\\xb3\\x70\\xfe\\x37\\x6c\\x14\\x82\\x68\\x71\\x67\\xdb\\xc8\\xf7\\xb2\\x05\\xa3\\xf3\\x30\\x1a\\x16\\x64\\xd9\\x07\\x28\\x77\\xd9\\xf9\\x8b\\x8f\\x69\\x83\\x13\\x01\\xdf\\x99\\x94\\x71\\x7f\\xc8\\x89\\x69\\x24\\x23\\x91\\xd9\\xb0\\x51\\x7d\\x6e\\xfb\\x27\\x17\\x01\\xea\\xb3\\xf4\\xa9\\xb1\\x20\\x42\\x13\\xe8\\xcd\\x13\\xf9\\xd0\\x99\\x04\\x8b\\x82\\x07\\x56\\x2f\\x2e\\x4e\\xbc\\x65\\x3c\\xc6\\x5e\\x9d\\x55\\x12\\xd6\\x5b\\x41\\x02\\x2c\\x79\\xb4\\xeb\\x37\\x29\\x87\\x69\\xae\\xaa\\x6e\\xfe\\xd6\\x9e\\x9a\\x8c\\xb4\\x45\\xc7\\x01\\x22\\x74\\xde\\x62\\xf5\\x09\\xf4\\xe4\\x81\\x4a\\xdc\\xbf\\x44\\x53\\xb4\\xfa\\xb8\\x5d\\x7c\\x8f\\xd8\\x45\\xe0\\x08\\x30\\xef\\x5b\\x7b\\x1e\\x63\\xc6\\x76\\x13\\x98\\x4c\\xae\\xfe\\x91\\x5a\\x54\\x8e\\x18\\xe5\\x05\\x62\\x2c\\xb2\\xb3\\x92\\x99\\xf4\\x27\\xf4\\xd8\\x39\\x83\\xba\\x2a\\xa0\\x0d\\x53\\xbe\\xe1\\xf5\\x9a\\xec\\x83\\x18\\xc5\\xea\\x34\\x5d\\x29\\x42\\x52\\x36\\x97\\x92\\x76\\x2a\\xdd\\x3e\\x56\\xfc\\xfa\\x6e\\x77\\x97\\xf0\\x28\\xc7\\x99\\x47\\x90\\x45\\xed\\xb2\\xe2\\x05\\xeb\\x6d\\xd6\\xca\\x04\\xee\\xe5\\x6f\\x94\\x96\\xd2\\xbf\\x26\\x09\\x93\\x57\\xc9\\x73\\x83\\x5b\\x99\\x36\\x02\\x49\\x11\\xe4\\x65\\x5d\\x3e\\x22\\xc8\\x11\\xc8\\xd4\\xdb\\xd1\\xb0\\x4f\\x78\\x97\\x3f\\x07\\x75\\x23\\xa3\\x89\\xb6\\xf2\\x8f\\x6f\\x54\\x21\\x61\\x42\\xcb\\x93\\xe3\\x3d\\x72\\xb4\\xa5\\x05\\x2d\\x27\\xe4\\x91\\x1e\\x41\\xe6\\xce\\xc7\\xbe\\xbe\\x1b\\x0a\\x51\\x13\\xe6\\xb7\\x0b\\x47\\x9d\\x2a\\xbe\\xed\\xf6\\x9b\\x75\\x64\\xe5\\xa5\\x73\\xb3\\x52\\xd1\\x6c\\xec\\x89\\x07\\x01\\xbb\\x38\\x3d\\x3f\\x66\\x56\\xed\\xa0\\x89\\x2f\\x8c\\xcc\\x70\\x94\\x0f\\x62\\xdb\\xe5\\x28\\xa6\\x5e\\x31\\xac\\x53\\x88\\x26\\xc1\\x38\\xac\\x66\\x52\\x4e\\x33\\x16\\x37\\xba\\x2d\\x37\\x73\\x03\\x58\\xe6\\xc7\\x32\\xcf\\xf8\\xfe\\xe9\\x40\\xaf\\xd2\\x2c\\x39\\xae\\x38\\x1e\\x5d\\x88\\x26\\x73\\x9b\\x23\\xfd\\xc1\\xb8\\x0a\\xea\\x5a\\x62\\xa2\\xcf\\x0f\\xf1\\x52\\x5e\\x44\\x6c\\xf3\\x10\\x46\\x19\\x50\\x51\\xd5\\x85\\x03\\xee\\xd1\\xbe\\xfd\\x79\\x3e\\xea\\xe1\\xd5\\xd1\\xb6\\x2a\\x5c\\x98\\x45\\x15\\x7a\\x09\\x5c\\xdc\\x08\\xa1\\xd7\\x7b\\xa4\\x7e\\x84\\xa5\\xa7\\x39\\x98\\x0f\\x0f\\x5b\\xe7\\xaa\\xec\\x9a\\x21\\x5b\\x20\\x4b\\x4b\\xb7\\xcb\\x1b\\x38\\x6d\\xed\\x58\\xd7\\xaa\\xf7\\x28\\x53\\x41\\x90\\x7c\\x63\\x33\\x6e\\xe3\\xe6\\xef\\x07\\x7a\\xd1\\x11\\xb9\\x74\\xe7\\x50\\x4b\\xd9\\x89\\xf5\\x66\\xfd\\xa1\\xb1\\xb5\\x9a\\xba\\xa9\\x1c\\x78\\xbb\\x40\"},\n{{0x39,0x73,0x03,0x8f,0xa2,0xef,0x6a,0x27,0x8d,0x3c,0x1c,0xff,0x9a,0x22,0x56,0x69,0xe4,0x65,0xa6,0x9d,0x07,0x50,0x50,0x3d,0xe7,0x48,0xc0,0x02,0xdb,0xf9,0x27,0x8a,},{0xc7,0x5e,0x77,0xc7,0x81,0x49,0xd9,0xd2,0xdb,0xc2,0x63,0xdd,0xf8,0xac,0x4d,0x65,0x4d,0x1f,0xf4,0x55,0xcb,0x18,0x97,0xe1,0xc3,0xce,0x31,0xb9,0x4c,0xfe,0x32,0x10,},{0xfc,0x0c,0x54,0x53,0x83,0x9e,0xa9,0x92,0x96,0xff,0xfa,0x50,0x1d,0x58,0x36,0x66,0x28,0xdf,0x89,0xf6,0x16,0x76,0x69,0x42,0xd5,0x04,0x0a,0x05,0x60,0x56,0xda,0xb1,0x8b,0x44,0x05,0xc0,0x4a,0xbf,0x90,0x59,0xc3,0x08,0x68,0xd7,0x9c,0x93,0x6c,0xcc,0xc8,0x4c,0x4f,0xbd,0x6f,0xd3,0x0b,0x60,0xf8,0xbc,0xbd,0x7a,0x66,0x40,0x42,0x02,},\"\\x33\\x92\\xe0\\x2f\\x3c\\x84\\x66\\x1e\\xaf\\x81\\xa5\\xff\\x04\\x35\\x7f\\x21\\x2e\\x92\\x36\\x1c\\x5c\\x22\\x07\\x39\\xd9\\x6b\\x4d\\x3d\\x9c\\x22\\xd1\\x8d\\xf4\\x8b\\xe6\\xb5\\x51\\x26\\xf5\\x81\\x60\\x1f\\xfe\\x0d\\xa6\\x3f\\x38\\xe1\\x9c\\xbb\\x12\\x72\\x6c\\xa0\\xa6\\xaa\\x32\\x55\\x67\\xa0\\x03\\xa7\\x84\\x9d\\x06\\x78\\x39\\x92\\xeb\\x9e\\xb9\\x28\\x53\\x29\\x7d\\x72\\x28\\xdb\\xa9\\x80\\xb2\\x50\\xbb\\x11\\x0f\\x63\\xd0\\xb8\\x46\\x70\\xe5\\xec\\xb3\\x19\\xcb\\xfd\\x61\\x27\\x8f\\x1f\\x4c\\xab\\xf1\\xfc\\xb3\\xf7\\x01\\xf1\\x2f\\x6e\\xf8\\xd3\\xcc\\x42\\x82\\xfc\\xbe\\x58\\x9e\\xb5\\x65\\x95\\x03\\xa2\\xdd\\xd8\\xbb\\xa3\\x8e\\x5e\\xff\\x09\\x2d\\xfa\\xf5\\x39\\xfd\\x80\\x4f\\x21\\xf7\\x3a\\x90\\xad\\xf5\\x69\\xa0\\x0b\\xf9\\xd2\\x5a\\x9a\\xd3\\xa6\\x33\\x09\\xcc\\x60\\x93\\x14\\x24\\x71\\xa4\\x78\\xf0\\xb8\\x99\\x22\\x86\\xde\\x02\\x3c\\x68\\xef\\xd4\\x99\\x87\\xec\\x27\\x0b\\xd9\\x46\\xf6\\xdb\\x48\\xf6\\x84\\xf1\\xc2\\xad\\xee\\xe2\\x6d\\x68\\xdc\\xe9\\x5a\\x55\\xe4\\xcb\\x27\\xbc\\x60\\x52\\x30\\x80\\xdf\\x6b\\xa2\\xb1\\x99\\x99\\x6b\\x1f\\x1d\\xa6\\x92\\x0d\\x15\\x59\\xf7\\x9b\\xfd\\xe9\\xfa\\x1a\\x02\\xde\\xae\\x14\\x80\\xc7\\x6f\\x94\\x7f\\x9d\\x21\\x3f\\xc4\\x3b\\xb2\\x88\\x0a\\x1b\\x4d\\x03\\xbb\\x14\\xf5\\xb0\\x44\\xa0\\xfd\\x83\\xce\\x04\\x92\\xf4\\x9c\\xa3\\xaf\\x25\\x21\\x1b\\x86\\xfa\\xa5\\x73\\x5a\\xd7\\xfe\\xaf\\x31\\xa1\\xa7\\x49\\x1e\\x70\\x8b\\x41\\x82\\x9d\\x68\\xe3\\x24\\x14\\xf6\\x83\\x52\\xb7\\x1d\\x1c\\xd2\\x3c\\x8e\\x12\\xfb\\x02\\xda\\x71\\x14\\x84\\xf6\\xef\\x97\\x52\\x8a\\x00\\xd2\\x4f\\xcf\\x91\\xd4\\xe0\\x6e\\x9b\\xad\\xae\\x9a\\x44\\xdb\\xdb\\x3f\\x77\\x80\\x41\\x76\\x8d\\x86\\x37\\x04\\xd7\\x36\\x81\\x04\\x00\\xe7\\xf2\\x93\\x1e\\xfb\\x85\\xc8\\x72\\x4a\\x59\\x34\\x26\\xaa\\x2a\\xf1\\xec\\x5b\\x66\\x4f\\x85\\xc2\\x25\\x48\\x96\\xfd\\xcf\\x31\\x6d\\xb0\\x92\\x4e\\x11\\xaa\\xe8\\xd6\\x83\\xe9\\xa0\\x21\\x92\\x9d\\x0a\\x9d\\x6f\\xec\\xb4\\x59\\x4b\\x1b\\x3f\\xbc\\x16\\xb1\\x76\\xd2\\x9d\\x1e\\xfb\\x18\\x19\\xa4\\xa4\\x23\\xfb\\xe0\\xca\\x05\\x59\\xc5\\x7e\\x9e\\x54\\x49\\xf1\\x4b\\xce\\x91\\x36\\x0d\\xaf\\xda\\x6a\\x42\\x7c\\xe4\\xa0\\x99\\x3d\\xd0\\x30\\x82\\xdd\\xee\\x06\\x65\\x33\\xf6\\xd3\\xbd\\xa5\\x66\\x0f\\x42\\xfd\\x77\\x57\\x69\\x0d\\x67\\x05\\x98\\xec\\x70\\x96\\xf4\\x75\\xa0\\x1a\\x51\\x99\\x50\\x34\\x1a\\x83\\x1f\\xc9\\xa2\\x81\\xc0\\x94\\x7a\\x86\\x3f\\x1f\\x6e\\x03\\xbb\\xa7\\x74\\xde\\x77\\xad\\xc2\\x3f\\xbe\\x52\\x5c\\xae\\x6c\\xcc\\xe4\\x7a\\x0e\\xc4\\x97\\x9e\\x8b\\xec\\x86\\xf3\\x32\\xfc\\x6a\\x57\\x36\\xe3\\xb9\\x8f\\xb3\\x32\\xe9\\xe8\\x24\\x4e\\x68\\xa1\\x00\\x45\\x5e\\x64\\x99\\xba\\x8d\\xba\\xe9\\x8b\\x92\\xba\\x3d\\x9c\\x6b\\x4f\\xf9\\x80\\x34\\x3e\\x4c\\x8e\\xf4\\xd5\\xa4\\xaa\\xcf\\x8b\\x1a\"},\n{{0xc7,0x1c,0xc1,0x0a,0xd2,0xd4,0x43,0xe0,0x25,0xad,0x06,0x25,0x68,0x6b,0x12,0x35,0x03,0xe5,0x90,0x19,0x3a,0x2b,0xc8,0xcc,0x57,0xa7,0xb9,0xb4,0x15,0x8d,0xe6,0xcb,},{0xfc,0x06,0xac,0xaa,0xb5,0x3a,0xd0,0x8e,0x97,0x62,0xdd,0x11,0xcd,0x21,0x22,0xb3,0x15,0x99,0xbd,0x25,0x98,0xce,0x6f,0x24,0x87,0x95,0xe7,0x32,0x21,0x9c,0x2f,0xc7,},{0x2e,0xb3,0x3b,0xc2,0xd5,0xde,0xb7,0xf3,0xa2,0xdc,0xc3,0x77,0xb0,0xc6,0xa8,0x62,0x13,0x4b,0xf3,0x19,0x1e,0xc4,0x0f,0xc1,0x28,0xac,0x28,0xab,0xf2,0x31,0x6e,0xf1,0x40,0x16,0x49,0xb8,0xf4,0xcf,0xa1,0xa9,0x36,0xde,0x79,0xb5,0x32,0xdc,0x04,0x3b,0x6d,0x36,0x02,0x4b,0x4c,0x37,0xbb,0xa2,0x92,0x90,0xac,0x9f,0x44,0x9b,0xa6,0x0d,},\"\\x2e\\x08\\x46\\x53\\x6d\\xc6\\xcc\\xe1\\x9c\\xcf\\x82\\xdc\\x2d\\x0c\\xd2\\x1b\\xd4\\xe1\\xca\\x7b\\xc3\\x17\\x06\\x7a\\xf8\\xd9\\x0e\\xe4\\x81\\x8c\\x85\\x18\\xbc\\x3e\\xf9\\x60\\xce\\x11\\x2a\\x41\\xd2\\xb9\\x97\\x9a\\x28\\x2a\\xe1\\x3d\\x70\\x6a\\x00\\x5e\\x00\\x34\\xf0\\x6b\\x39\\xff\\x4b\\x0a\\x5a\\xfa\\xed\\x70\\xb5\\x61\\xbc\\xce\\xb1\\xbb\\xd2\\xec\\x19\\xf9\\x74\\x48\\xea\\xed\\x4b\\xe6\\x20\\xe3\\x6a\\x96\\x2d\\x87\\x8c\\x6f\\x80\\x17\\x2b\\x9f\\xad\\x43\\xee\\xd0\\x7f\\xf9\\x3d\\xb9\\xb9\\xca\\x22\\x62\\xd5\\xa3\\xc2\\x29\\xc5\\x4e\\x30\\xa4\\x5e\\x73\\x66\\x08\\x92\\xf0\\x48\\xe3\\x63\\xf3\\x71\\x44\\xed\\x19\\x21\\xf7\\x29\\x92\\xb4\\xd0\\x15\\x29\\x87\\x0c\\xfe\\x37\\x3b\\x7e\\x7c\\xbe\\xda\\xf9\\x69\\x26\\x9f\\xb7\\x0a\\xa7\\x83\\xd1\\xe7\\x44\\x17\\xc7\\xba\\xe0\\xfe\\x03\\xd9\\x51\\xfd\\xb8\\xc7\\x1c\\x62\\xe9\\xbe\\x7f\\xdd\\x5d\\x23\\x3e\\x39\\xf4\\x6f\\xed\\x05\\x7e\\x49\\xb6\\xf3\\x40\\x68\\x45\\x91\\x48\\xda\\x3d\\x42\\x41\\x61\\xad\\x2c\\x86\\x95\\x08\\x60\\x2e\\x9c\\x0b\\xb3\\x0b\\xfb\\x88\\xac\\xd5\\xf4\\xdf\\xdf\\xfd\\x47\\x35\\x03\\xcd\\xfe\\xda\\xbc\\x44\\x42\\xb7\\x43\\xbe\\x07\\x5e\\x7c\\x6f\\x61\\x0e\\x64\\xff\\xc2\\xe5\\x31\\x87\\x74\\x5c\\xd7\\x19\\x65\\x8f\\xc6\\xe6\\x2a\\x5b\\xe5\\x18\\x43\\x7c\\x5b\\xd6\\xa4\\xfe\\xba\\x94\\xae\\x3f\\x44\\xf2\\xf2\\x93\\x08\\xe8\\x31\\xfe\\xef\\xed\\x67\\x69\\x09\\xce\\x5e\\x80\\xc8\\x4c\\xbd\\xca\\xc4\\x7e\\x47\\xd2\\x7c\\x97\\x12\\xa0\\x1f\\x6b\\xc5\\xda\\xed\\xc0\\x2e\\x64\\x14\\x40\\x7e\\x91\\x1c\\x0a\\x5a\\x53\\xe5\\x32\\x8a\\x5a\\x5f\\xd9\\xf0\\x40\\xaa\\x7f\\xb7\\x0b\\x79\\xb3\\x1c\\xd1\\xb6\\xfd\\x9b\\xd5\\x02\\x90\\x40\\xbd\\x22\\xae\\x22\\x2f\\xd2\\xf6\\x87\\x0d\\x07\\xf4\\x35\\x32\\x26\\x39\\xcf\\x31\\x93\\xca\\x57\\x09\\xb8\\x82\\xb0\\x7a\\x58\\xf9\\x52\\xa9\\x96\\x3e\\x56\\x8f\\x8c\\x5a\\x58\\x4a\\x6b\\x9e\\x27\\x5c\\x5c\\x07\\x95\\x7a\\x4d\\x2c\\xda\\xa9\\xf1\\xeb\\x44\\x4e\\xd1\\x22\\x4b\\xac\\x65\\x63\\xb2\\xf9\\x27\\x3e\\x80\\x30\\x1d\\x44\\xd5\\x0a\\xe3\\x83\\xb5\\x97\\x21\\x3b\\x00\\xda\\x5b\\xf2\\x7e\\x5d\\x1f\\xe2\\x40\\xcc\\x3b\\xb6\\x5a\\xa5\\x03\\x0d\\x65\\x1b\\x6b\\x5b\\x31\\x76\\x1d\\x53\\xce\\x0c\\x6d\\x74\\xa1\\x5d\\xad\\x54\\x79\\xf3\\x1c\\x91\\x5c\\xcf\\x44\\x66\\x59\\x85\\x3b\\x89\\xa5\\x1a\\x28\\xee\\x89\\x76\\x85\\x35\\x53\\xfd\\x2e\\x02\\xfe\\x72\\x43\\x53\\x8d\\x00\\xb4\\xed\\x07\\xd8\\xb8\\xa8\\x0b\\x5c\\x16\\x5c\\xd4\\x63\\x41\\xff\\xd8\\x16\\x3c\\x55\\x57\\x02\\x66\\x3a\\x4e\\x6a\\xb2\\x95\\x2b\\x7e\\x74\\x43\\xd0\\xf6\\xb1\\x23\\xb6\\x94\\x67\\x21\\xaa\\x63\\xe8\\x7b\\x11\\x55\\xec\\xa8\\xa6\\xa1\\xbc\\x9f\\xd2\\x5c\\x67\\x62\\xe5\\x27\\x42\\xc8\\x6b\\xca\\x1b\\xa9\\xd8\\x37\\x04\\x15\\x24\\x4f\\x0e\\xdf\\xdb\\xe0\\x93\\x2b\\x5c\\xa0\\x61\\x15\\x09\\xc9\"},\n{{0x0a,0x4f,0x5e,0x16,0x70,0xf1,0xe2,0x4b,0xfa,0x37,0xb7,0x3c,0x99,0x43,0x30,0xb3,0x6e,0x7d,0xaa,0xf9,0x30,0x16,0x1b,0x78,0xa4,0xa8,0x48,0x66,0xff,0x25,0xe3,0xd5,},{0x9d,0xcb,0xba,0x90,0x39,0x81,0x59,0x4c,0x7b,0x67,0x7e,0xa8,0x00,0x20,0x01,0xd6,0x64,0xcf,0xf7,0xce,0x8e,0x5c,0xfa,0xe5,0x88,0x40,0xcf,0x74,0xaf,0xf0,0xd3,0xa9,},{0xdc,0xf3,0x53,0xb2,0xb9,0x9a,0x4e,0xf4,0x5f,0x3f,0xdf,0x65,0x28,0x63,0x2e,0x8a,0xbd,0xc4,0x33,0x34,0x24,0x76,0xa8,0xc2,0xb3,0x79,0x00,0x40,0x4a,0x4e,0x33,0x3d,0x38,0x78,0x14,0x23,0x57,0x57,0xef,0x7a,0xd0,0x38,0x58,0xa0,0xf3,0x5d,0x46,0x15,0xe8,0xab,0xa4,0x84,0xfd,0x64,0xf1,0x11,0x2e,0xc1,0xb1,0xae,0xd2,0xcb,0x64,0x0e,},\"\\xf4\\xb0\\x5b\\x3e\\xfd\\xcb\\x1d\\x5c\\x07\\xda\\x95\\x0c\\x46\\x56\\x55\\x28\\x44\\x0b\\xb4\\x88\\x35\\xee\\x4c\\x13\\xf4\\x3d\\x7a\\x16\\x18\\xde\\x11\\x9e\\xbb\\xb2\\x59\\xea\\x74\\x80\\xa5\\x04\\x81\\x74\\xfa\\xec\\xc1\\x05\\x5b\\x32\\xdc\\x01\\xac\\x71\\x56\\x34\\x43\\x21\\xe8\\xeb\\xa6\\x98\\xf3\\x02\\xee\\x16\\x43\\xb5\\xf0\\x4b\\x8e\\x7e\\xcc\\xa6\\x3b\\x91\\x56\\x1c\\xe3\\x51\\x4a\\xbe\\x78\\x51\\xb6\\xfb\\x17\\xfc\\x94\\x3b\\xdc\\x94\\xda\\x30\\x8c\\x8e\\x47\\x69\\xfe\\xc2\\x0f\\xad\\xf4\\xfa\\x8e\\x7f\\x62\\xb6\\xff\\xb5\\xf1\\x70\\xd6\\x44\\xed\\x29\\x35\\x5e\\xbd\\x22\\xcb\\x3a\\xa1\\x48\\x6b\\x1e\\x36\\x7c\\x72\\x9d\\xd3\\xf7\\x9b\\xcd\\x40\\xff\\xd0\\x8a\\xf2\\x8c\\xeb\\xc8\\xd7\\x76\\xe1\\xa4\\x83\\xe9\\x11\\xd7\\x9b\\xc6\\x13\\xe0\\x9c\\xc6\\x21\\xca\\xde\\xb0\\x34\\xdd\\x6f\\x72\\x37\\x47\\x71\\x98\\x51\\x27\\xf7\\xa3\\xa1\\xaa\\x78\\x6a\\x52\\x3a\\xe6\\xe3\\x4e\\xe4\\x33\\xdc\\x30\\xc3\\x75\\x98\\x7c\\xff\\x50\\xbd\\xcb\\xc9\\x97\\xfc\\xd5\\x1c\\x94\\x56\\x7a\\x67\\xae\\xfb\\x6e\\xf5\\xed\\xf9\\xbd\\xd6\\x59\\x64\\xd4\\x64\\xbe\\x9e\\xbd\\xfb\\x88\\xc0\\xe2\\x31\\xb0\\x7f\\xf6\\x40\\x5c\\x00\\xf8\\x25\\x31\\xe9\\x61\\xbf\\xc5\\xea\\xd2\\x66\\xbc\\xc0\\x87\\x18\\x87\\x8c\\xaf\\xb1\\xd3\\x75\\x36\\xf1\\x83\\xe4\\x8b\\xf3\\x8d\\x3f\\x6b\\xe9\\x00\\x25\\x2d\\x1f\\xb4\\x19\\xe6\\xa2\\xac\\x58\\x96\\x03\\x9f\\x63\\xc3\\x14\\x01\\xff\\xf9\\x32\\xce\\x98\\x14\\xb0\\x85\\xab\\x20\\x41\\x69\\x72\\xa2\\xb3\\x51\\xc8\\x15\\xa6\\x2d\\xe5\\x09\\x67\\x46\\x28\\xb0\\xd3\\x56\\x6f\\xc9\\xc2\\xe0\\xa9\\x23\\x7b\\x93\\xf9\\xbb\\xb2\\xde\\xed\\xf0\\x2b\\xff\\x83\\xbf\\x6d\\x86\\x8b\\x63\\x99\\x32\\x6d\\x48\\x09\\xd0\\x41\\x9f\\x31\\xb2\\xf3\\xa4\\x81\\x28\\x5b\\x94\\x07\\x8b\\x47\\x06\\x1c\\xe9\\x1d\\xad\\x58\\x3d\\xd5\\xb1\\x3b\\xd0\\x10\\xfb\\x30\\xf2\\x49\\x5b\\xb7\\x04\\x20\\x18\\x3a\\x93\\x01\\x59\\xe4\\xdb\\x19\\x3d\\xf6\\xac\\xd1\\x24\\x42\\x3e\\x03\\x9a\\x67\\xf1\\x56\\x88\\xae\\xc5\\x0c\\x59\\x27\\xfb\\x27\\x18\\x22\\xaa\\xa6\\x6f\\x29\\x4b\\xc8\\x05\\xd3\\xbc\\x7c\\x83\\x41\\x87\\x8a\\x54\\x10\\x09\\xf3\\x0d\\xa9\\x9f\\xcc\\x00\\x85\\x07\\x9c\\xe7\\xfc\\x55\\xe0\\x01\\x16\\x85\\x56\\x2a\\xbd\\xb3\\xa9\\x47\\x1f\\xfd\\xe6\\x17\\x63\\x00\\xef\\x5b\\x31\\xe0\\xdf\\x60\\x9a\\x54\\xa1\\xee\\x66\\x24\\x07\\x0d\\xa9\\x9c\\x87\\x76\\x89\\x1f\\xdf\\x6a\\xa7\\x8b\\x4d\\x55\\xb1\\xf5\\xda\\xdf\\xc0\\x61\\xad\\xd5\\xaf\\x00\\xfd\\x3a\\xde\\xdb\\x44\\x8c\\x55\\x9b\\xff\\xf2\\x04\\x06\\x80\\x43\\xa5\\xd1\\xd6\\x21\\x47\\x48\\x62\\x8c\\x3e\\xbc\\x5f\\x02\\x24\\x32\\x6c\\xa1\\x8e\\xf0\\x48\\x42\\x5d\\xa9\\x30\\x01\\x33\\xfb\\x69\\x5d\\x4f\\x26\\x31\\x65\\xac\\x22\\xf3\\x61\\x9d\\x40\\x5a\\xf2\\x71\\xa7\\x1a\\x9a\\xfb\\x19\\x8b\\xf6\\x31\\x24\\x1d\\x34\\x59\\xb9\\x53\\x98\"},\n{{0xb8,0x55,0xc8,0x18,0x05,0xc7,0x08,0x74,0x10,0xe6,0x9f,0x96,0xb0,0x24,0x02,0x71,0xdc,0x76,0xc1,0xe4,0xad,0xe3,0x8c,0x6a,0x92,0x78,0xe3,0xc9,0x4f,0xbe,0xa2,0x56,},{0x6a,0xdb,0x02,0x5a,0x40,0x26,0x0f,0x56,0x98,0x84,0xb8,0xca,0xb3,0x75,0x2b,0x4f,0x25,0x5c,0x37,0x3e,0x2b,0x42,0x4b,0x62,0x87,0xeb,0xb5,0x10,0xfa,0x06,0xff,0xf0,},{0x3c,0xaa,0x81,0x32,0x73,0xe7,0x53,0x54,0x2f,0xfb,0xfe,0xb2,0x1b,0xc3,0xe2,0xcf,0x8c,0xa7,0xd9,0x20,0xfa,0xac,0x7c,0x49,0xdc,0x2a,0xa9,0x91,0x17,0x68,0xc7,0xad,0x43,0xb3,0x8b,0x02,0x36,0xdb,0x27,0xf3,0xee,0xae,0x0b,0x12,0x06,0x00,0x1e,0x66,0x5a,0x60,0x70,0x78,0xc5,0x22,0xed,0x7a,0x9d,0xc4,0x68,0x85,0x34,0x63,0x59,0x00,},\"\\x85\\xa9\\xbd\\xb7\\x0a\\x6c\\x75\\x28\\x97\\xe4\\x3a\\x91\\x10\\x6e\\xe9\\xa9\\x9c\\x2c\\xa9\\x4f\\xf7\\xb4\\x46\\x1a\\x44\\xa3\\x91\\x74\\xc1\\x7e\\xcd\\x99\\xdf\\x46\\xee\\xcd\\x81\\xc3\\xf5\\x25\\x13\\xdc\\x9d\\x54\\x7d\\xad\\x37\\x21\\xc6\\xd5\\xee\\x1f\\x8f\\xac\\x0b\\xa5\\xaf\\xb3\\x68\\x70\\x44\\x73\\x9e\\xd5\\x35\\xb8\\x44\\x00\\x87\\x04\\xc0\\x9f\\xe1\\xe5\\xd7\\x85\\xd4\\xc9\\xc3\\xd0\\xb0\\x58\\x89\\xb9\\xc2\\x0f\\xc3\\xfd\\x68\\xdf\\x12\\xdb\\xeb\\x2c\\x34\\xf6\\xf7\\xec\\x1c\\x6f\\xb7\\xfa\\x81\\x1f\\xf8\\x46\\xb5\\xa6\\x1f\\xa5\\xfe\\x55\\x37\\x9e\\xe6\\x3a\\xbc\\xd3\\x73\\xfe\\xd0\\x02\\x54\\xeb\\xd0\\x6b\\xc8\\xb2\\x2f\\x7f\\xbf\\x2f\\x72\\x7a\\x5f\\xad\\x88\\x51\\x41\\x59\\xe2\\x6d\\x78\\xdf\\xdb\\x09\\x57\\xf6\\xef\\xaf\\x51\\xa8\\xe8\\x0b\\x58\\x5e\\x83\\x8b\\x96\\x21\\xd0\\x51\\x07\\x4a\\x4f\\x58\\x67\\xb4\\xae\\x2f\\x2f\\xf6\\xd6\\x2b\\x85\\xbc\\xce\\xc0\\xb4\\xaa\\xa4\\x79\\x16\\x37\\x38\\x8c\\x09\\x01\\xfd\\x49\\xdc\\xcc\\xce\\x72\\x04\\x85\\x9f\\x81\\xee\\xfc\\x63\\x9f\\xed\\x92\\x28\\x04\\x56\\xe6\\x9a\\x15\\x09\\xb4\\xb1\\xbd\\x76\\x24\\x44\\x7d\\x86\\x2c\\x45\\xa0\\xc8\\xb0\\xc5\\xbb\\x2c\\x4c\\xa5\\x12\\xcb\\xc0\\x37\\xf5\\x1b\\x78\\x09\\x82\\xb1\\x83\\xa5\\xca\\xfa\\x15\\x29\\x75\\x85\\xc9\\x47\\xa2\\x5b\\xe8\\xc2\\x24\\x0e\\xbf\\xb6\\x86\\x8e\\xce\\x5e\\xa2\\xaa\\xb2\\xc2\\x39\\xc8\\x37\\x54\\xc7\\xd5\\x94\\xb3\\x72\\x5a\\xce\\xef\\x34\\x4b\\xa7\\xe6\\xae\\xf4\\x9f\\x7f\\x31\\x3b\\x0a\\xe8\\x2c\\xca\\xca\\xd3\\x87\\xa6\\xe9\\x33\\x7f\\x05\\xf8\\xc7\\x99\\xef\\xe7\\x82\\x9b\\x27\\xb4\\xd5\\xb2\\x01\\xfd\\x5a\\xe5\\x83\\x43\\x51\\x69\\x07\\x59\\xf3\\xea\\x17\\x5f\\xd4\\x74\\x1b\\xe2\\x28\\xd8\\x07\\xfb\\x54\\xdf\\x4a\\x74\\x10\\x38\\xfa\\xee\\x47\\xed\\xf1\\xf5\\x61\\x65\\x25\\x98\\x60\\x1f\\x27\\x15\\x5f\\xc5\\x0d\\x9d\\x50\\x11\\x43\\x37\\x11\\xc1\\x06\\xd4\\xb6\\x07\\x85\\xa5\\xcc\\x93\\xb3\\xfd\\xd1\\xda\\xd7\\x0c\\x0c\\x8e\\xaa\\x33\\xf1\\x51\\x2e\\x35\\xa5\\x41\\x74\\x5e\\x37\\x6c\\x15\\x16\\x7f\\xa8\\xf6\\xb3\\xb2\\xc4\\xc3\\xa3\\x66\\xfc\\x41\\x49\\x7d\\x29\\x73\\x57\\x81\\x6a\\xe7\\x95\\xa8\\x04\\xc9\\x80\\xe7\\xcb\\xfb\\x0c\\x74\\xd8\\x83\\x5d\\x92\\x9a\\xe3\\xbb\\x52\\xba\\xb1\\x29\\x64\\x56\\x6d\\x74\\x6b\\xd2\\xc1\\xd1\\x32\\xb6\\x23\\x3f\\xa3\\x4f\\x75\\xe2\\x68\\xed\\xee\\x77\\x5e\\xb3\\xce\\x13\\x2e\\x6b\\xeb\\x2e\\x8d\\x71\\xf0\\xc8\\x76\\x29\\x91\\xcd\\xe4\\xe2\\x6f\\x71\\x43\\x9d\\xfa\\x83\\x97\\x8f\\x99\\x56\\x03\\x86\\x1b\\xc0\\xb1\\xd9\\x06\\x0b\\xbc\\xca\\xcc\\xf8\\x6f\\x87\\x45\\xad\\x96\\x99\\x4d\\x5d\\x00\\x7d\\x52\\xe8\\x3a\\xa5\\xe6\\x94\\x12\\x96\\x4b\\xdb\\xfb\\xe4\\x78\\x0a\\xaa\\x8d\\xe4\\x1b\\xe1\\x29\\x8a\\xbb\\xe9\\x89\\x4c\\x0d\\x57\\xe9\\x7f\\xca\\xcc\\x2f\\x9b\\xbd\\x63\\x15\\xd3\\xfc\\xd0\\xea\\xf8\\x2a\"},\n{{0x95,0xb9,0xc8,0xa6,0xef,0x80,0xeb,0xd5,0xcb,0xd4,0x7a,0x04,0xca,0x54,0x38,0x73,0x73,0xdf,0x4d,0x67,0xa2,0xb4,0x75,0x59,0x77,0x65,0xac,0x89,0xfc,0xf9,0x3e,0x93,},{0xf2,0xc9,0x47,0xb1,0x8a,0xdc,0x3e,0xa6,0xa2,0x3f,0x7a,0xbc,0xa3,0x64,0xb9,0x85,0x3a,0xe8,0x5a,0x2b,0x0c,0x8c,0x26,0xf0,0xd3,0x17,0x3c,0x27,0x32,0xc3,0xc7,0xff,},{0x2c,0x8b,0xf5,0x43,0xe2,0xa3,0xe0,0x04,0x15,0xee,0x4f,0x10,0x7b,0x2f,0x5a,0x66,0x87,0x17,0x6f,0x5d,0x52,0x11,0x17,0x75,0x9c,0xeb,0x56,0x17,0x51,0xbc,0xc7,0x7d,0x9b,0x08,0xa6,0xa6,0x31,0xf6,0x44,0x7c,0xd9,0x01,0xde,0x96,0x69,0x9a,0xeb,0xb1,0x68,0xbf,0x97,0x50,0x0d,0xc5,0x4a,0x05,0x43,0xef,0x14,0xe4,0xb5,0xa0,0x81,0x06,},\"\\x78\\x55\\xbc\\x39\\x26\\x30\\xcc\\xf5\\x31\\xd3\\x06\\x16\\x06\\xdd\\xfc\\x81\\xa0\\xfd\\x92\\x94\\xc5\\x47\\x91\\xb5\\xf9\\x55\\x9b\\x68\\x27\\x25\\x4a\\xa1\\xf2\\x5c\\x54\\x0b\\x7d\\x7d\\xf3\\xec\\x9c\\xdf\\x14\\x25\\x66\\x29\\xdb\\xcf\\x9b\\x72\\x5f\\xeb\\x34\\x12\\xeb\\xf3\\x5f\\x0e\\xf9\\x37\\x9e\\x41\\x31\\xcc\\x77\\xe0\\xf0\\xfb\\x6f\\x74\\x59\\xa7\\x38\\x36\\x1a\\x99\\xae\\x4c\\xcb\\x2b\\x60\\xa9\\x9f\\xe9\\x2b\\xd6\\xc3\\xa5\\x3d\\x6f\\x45\\x4e\\xe9\\x00\\x5b\\xce\\xc5\\xae\\xdc\\xfa\\x82\\x34\\x73\\x92\\xef\\xcf\\x11\\x75\\xe5\\x78\\x39\\x6a\\x8d\\x80\\x0d\\xab\\xa0\\xf4\\xc2\\xcf\\x4d\\x49\\x13\\xb0\\x52\\x86\\x20\\xe3\\xba\\xa0\\xf6\\xd8\\x6e\\x06\\x28\\xe4\\x7c\\x0c\\xa2\\x6d\\xf3\\xb0\\xc7\\x88\\xc4\\xe1\\x65\\x57\\xf7\\xfc\\x28\\xdf\\x82\\x0c\\x12\\xfb\\xb6\\xff\\xbf\\xec\\xb9\\x82\\x9d\\xdb\\x65\\xef\\x8d\\x63\\xe9\\x0d\\x68\\xfc\\x71\\x94\\xb5\\xb8\\x85\\x91\\x3f\\x08\\xed\\xee\\x84\\x56\\x76\\x47\\xff\\xa3\\xf0\\xd0\\xd3\\x25\\xd0\\x82\\x60\\x0c\\xe7\\x1a\\x23\\x45\\xc7\\x7d\\x65\\xbd\\x96\\x25\\x20\\x03\\xe5\\xc1\\x25\\xa7\\x18\\xa0\\x73\\x70\\xc3\\x1b\\x57\\x08\\x07\\x5c\\xf1\\x83\\x7c\\x69\\x25\\x63\\x5c\\xc6\\x8d\\xd1\\xb7\\x51\\xe4\\x0a\\xb6\\x08\\xb0\\xd9\\xd8\\x85\\x2c\\x18\\xd3\\x06\\x92\\x19\\xef\\x80\\x7b\\x76\\xd2\\x88\\xf9\\x2c\\x29\\xa9\\x3e\\x3d\\x75\\xb5\\xb2\\xe5\\x36\\x81\\x67\\x1d\\x3a\\xe0\\x14\\x5a\\xc0\\x3c\\xca\\xd3\\x16\\x2e\\x44\\x70\\x3b\\x04\\x01\\xd3\\xeb\\x16\\x7c\\xd8\\xdd\\xc1\\xe1\\xa5\\xa3\\x26\\xb7\\x28\\xb1\\xe0\\xc0\\x0a\\x94\\xd8\\x6d\\xe6\\x13\\x52\\xa6\\x61\\xe4\\x08\\x97\\x17\\x5d\\x28\\xd3\\x41\\xe4\\xd1\\xd9\\x96\\x2e\\x35\\xf4\\xde\\x18\\xa5\\x40\\x17\\x61\\x1a\\xd0\\x53\\x59\\xce\\x08\\xb9\\x7b\\xfe\\xdb\\xfb\\xe3\\x99\\x2e\\xd5\\x8e\\xd4\\x0f\\x51\\x7a\\xab\\x01\\xc0\\xfe\\xfe\\x8b\\x63\\x64\\x3d\\xa1\\xa4\\x54\\x15\\x27\\x30\\xbf\\x99\\xaf\\x87\\x40\\xad\\xf9\\x8a\\x77\\xb8\\xd7\\x3a\\xdb\\x08\\xe6\\x09\\xe0\\x0c\\xe9\\xb1\\xcc\\xdf\\xef\\x3e\\x9a\\x9b\\x05\\xaa\\x56\\xe0\\xbc\\x79\\xb6\\xbb\\xba\\x80\\xdd\\x8e\\x46\\x1a\\xf7\\xcb\\x20\\x28\\x92\\xd8\\x9b\\x2d\\x05\\xa4\\x45\\x8a\\xb3\\xfa\\x54\\xb4\\x74\\xb8\\xf8\\xf5\\x81\\x79\\x5d\\x6c\\x27\\x39\\xe5\\x9d\\x0f\\xe0\\x62\\x40\\x0b\\xae\\x2d\\x2d\\x53\\x4b\\x34\\x0b\\xb8\\xe2\\x61\\x57\\x77\\xa9\\xa5\\x61\\x5b\\xb2\\xcf\\x43\\x7b\\xa5\\x25\\xe0\\x0e\\x70\\x38\\xf2\\x2a\\x57\\x88\\x2a\\xc5\\x20\\xb3\\x33\\xe7\\x5c\\x3c\\x92\\xa8\\xb9\\xf0\\xe3\\x7f\\x67\\x1c\\x94\\xb1\\x5d\\xd8\\x18\\x2a\\x08\\xd7\\xc1\\x43\\xe9\\x4e\\x92\\x62\\xb3\\xcc\\x55\\x44\\xc2\\x94\\xf5\\xf3\\x35\\xc2\\xb2\\x8a\\xc1\\x19\\xfe\\xa0\\x0f\\x96\\x34\\xdb\\x06\\x39\\x93\\x98\\x8b\\x5f\\x15\\x05\\x79\\xc7\\xcc\\x25\\xb6\\xa1\\xfb\\x0d\\xde\\x94\\x80\\x4f\\xa6\\xef\\x66\\xff\\x79\\xfb\\x91\\x07\"},\n{{0xb7,0x86,0xcc,0xfb,0x58,0x6d,0x43,0xb8,0xc4,0x6b,0xb9,0x7b,0x96,0xc9,0x18,0x73,0x1b,0xc2,0xcc,0x11,0x92,0x77,0xf1,0x23,0x67,0x1e,0x30,0x14,0x81,0x58,0xd2,0xed,},{0x90,0xc7,0x00,0x46,0x00,0xf3,0xdc,0xe4,0x09,0xfd,0xea,0xdc,0x8e,0xd0,0x18,0xf9,0xea,0x26,0x3f,0x75,0x16,0x0a,0x74,0xab,0x54,0xf4,0xc2,0x39,0x9a,0x90,0xca,0x78,},{0x52,0xba,0x96,0x58,0xa1,0xa0,0xb3,0xe9,0x8e,0xd5,0x20,0x9e,0x39,0x3e,0x42,0x00,0x66,0xa3,0x7d,0x37,0x14,0xda,0xa7,0x3d,0x5c,0x67,0x1d,0x33,0x07,0x5a,0x5f,0x57,0x27,0xfe,0x4e,0x08,0x1e,0xe0,0xfa,0x3c,0x21,0x33,0xdc,0x95,0x3a,0x2d,0xa6,0x20,0x29,0x13,0x71,0xf0,0x0c,0xcb,0x57,0xd8,0x79,0x2e,0xb5,0x96,0xa2,0xff,0x81,0x01,},\"\\xba\\xbf\\x48\\xbd\\x55\\xea\\x91\\xbd\\x0c\\x93\\xb9\\x70\\x24\\x1b\\x52\\x9d\\x9d\\xb4\\x3d\\x49\\x27\\xfe\\xa5\\xf1\\xa1\\xf7\\x08\\x2d\\xd6\\xcb\\x50\\xa5\\x2b\\x09\\x4b\\x31\\x29\\xfc\\xd9\\x03\\xa4\\x4f\\xec\\x8b\\xfd\\xb5\\xc8\\x6c\\x00\\x2a\\x2a\\x45\\x28\\x87\\xca\\x25\\xa6\\x0e\\xce\\xb5\\xe1\\xf9\\xf5\\xc9\\x3d\\xc5\\x94\\x23\\xc7\\xaf\\xe7\\x47\\xc6\\xbf\\x40\\x7c\\xac\\xad\\xec\\xcf\\x5d\\x78\\x79\\x70\\xcb\\x06\\x17\\xbb\\x3c\\xfe\\x7f\\xd1\\x75\\x63\\xd3\\xa0\\xdc\\x91\\x63\\x1f\\x71\\xb8\\x4b\\xe2\\x4a\\xe8\\x00\\x11\\x37\\x50\\xf0\\x31\\xd0\\x1f\\xd0\\x53\\x64\\xb4\\xf2\\x7f\\x86\\xf8\\xdc\\x3a\\xd7\\x40\\x7e\\x1a\\xe9\\xe7\\x68\\x15\\x4e\\x3d\\xde\\x58\\xe8\\x67\\x12\\x9e\\x24\\x74\\x54\\x7b\\x40\\x82\\x17\\x96\\x48\\x44\\x85\\x8d\\x05\\x6b\\x31\\xc3\\x74\\x99\\x1b\\x7f\\x16\\x1f\\x52\\xf0\\x88\\xb8\\x06\\xe0\\xf3\\x13\\xd6\\x8a\\x15\\xc5\\x40\\x1e\\xd5\\x5b\\x2b\\x77\\xde\\xea\\x58\\x6c\\xb0\\x54\\xdc\\xd7\\x1a\\xf2\\xab\\x6a\\xb1\\x1e\\x84\\xb3\\x0c\\x53\\x93\\x45\\xde\\x3e\\xb4\\x3f\\xb7\\xb3\\xa3\\xb4\\x89\\x87\\xc3\\xbf\\xa7\\x06\\x55\\xd5\\x99\\xf2\\xe3\\x1d\\x12\\xad\\x23\\xcc\\x96\\xe8\\x6d\\x38\\x0b\\xfd\\xa8\\x12\\xfe\\xff\\x3d\\xd3\\x02\\x42\\x92\\x91\\x69\\x07\\x02\\x28\\x91\\xe1\\x19\\xbf\\xc3\\xed\\x9c\\x25\\x54\\x6c\\xd1\\x9f\\xc9\\x92\\xd8\\xa6\\x1e\\x60\\x59\\xca\\x3c\\xe7\\x80\\x2a\\xf1\\x11\\x87\\x56\\x62\\x0b\\x87\\xa7\\x24\\x2b\\xd8\\x38\\x97\\xc9\\x4d\\xd5\\xa3\\x6e\\xd4\\x0f\\xc0\\xf3\\x4c\\x2c\\x93\\x11\\x0b\\x37\\xd1\\x7d\\xd9\\x6a\\x22\\x06\\x25\\x90\\xbc\\xdb\\x54\\x67\\x42\\xef\\x72\\x18\\xad\\xcc\\xc5\\xad\\x28\\xf4\\xfc\\xe6\\xec\\xf7\\x05\\x83\\x5f\\x41\\x13\\xd8\\x2e\\xa5\\x33\\x90\\x3a\\xec\\x8c\\x38\\x20\\xfe\\x4b\\x47\\x15\\xf3\\x7e\\x20\\xce\\xbc\\x1e\\x71\\x51\\x9a\\xa0\\xb2\\x40\\xb4\\x84\\x0a\\xa4\\xfd\\xcf\\xb5\\x24\\x67\\xfe\\xdd\\x8f\\x4d\\x1f\\x9b\\xc3\\x3e\\xe1\\x14\\xf3\\xef\\x85\\xf5\\xfd\\xb0\\x9c\\xa8\\x84\\xaf\\x38\\x8a\\xd3\\xad\\xf8\\x4c\\x79\\x3f\\x38\\x6e\\xfe\\x6f\\xf8\\xa4\\x6e\\xd8\\x1e\\x5d\\x45\\xa3\\x7c\\x25\\xcd\\x80\\xf2\\xd7\\x36\\x3f\\x43\\xae\\x45\\xe3\\x77\\x2c\\x0d\\xf8\\x9f\\x11\\x44\\x79\\x39\\x80\\x6c\\x09\\x6e\\xf9\\x33\\xa1\\x39\\x44\\xf0\\x89\\x0d\\x88\\x7c\\x2e\\x5b\\xbb\\x6b\\x12\\xea\\x95\\x0b\\x09\\xb8\\xfe\\x42\\x52\\x89\\x37\\x73\\x52\\xf3\\x5f\\x84\\xcc\\x4d\\xcd\\x4d\\x7a\\x44\\x94\\x89\\xfa\\x92\\x51\\xc0\\x31\\x13\\x48\\x92\\x25\\x80\\x9c\\xdf\\x3c\\xb6\\x34\\x75\\xf1\\x0d\\x34\\x17\\x09\\x37\\x1c\\x6f\\xd4\\xbb\\x7a\\x94\\x94\\x83\\xd1\\xbc\\x2b\\x31\\xdd\\xf4\\xd9\\x63\\xa0\\x7d\\xe7\\xea\\x5c\\x3f\\xee\\x9a\\x0e\\x33\\xf0\\x76\\x9f\\x2f\\xaa\\x40\\x61\\x2a\\x54\\x69\\x74\\xbd\\xe0\\xb7\\x33\\x91\\x79\\xe4\\x12\\x4a\\x44\\x7b\\xd4\\x28\\x79\\xcc\\xda\\x5c\\x8a\\xd1\\x81\\x9c\\x53\"},\n{{0xdd,0x1a,0x97,0x74,0xf7,0x58,0x4d,0x85,0x89,0xb1,0x9f,0x92,0xab,0x69,0x39,0xac,0x48,0x56,0x02,0xfe,0x16,0x44,0xce,0xe2,0xf6,0xf3,0xcd,0x60,0xfb,0xd5,0x84,0x00,},{0x4b,0xea,0x7d,0x0b,0x0f,0x4b,0xd5,0x90,0xf9,0xe3,0x57,0x9f,0x0c,0x5f,0xa4,0xce,0xf4,0xd6,0x0a,0x49,0xd2,0xc4,0x37,0xa0,0xaa,0xea,0xd9,0xd4,0x3a,0x73,0xd4,0xa3,},{0x19,0x59,0xbd,0xe0,0xa6,0x97,0xa6,0x39,0x93,0xec,0x47,0xd1,0x58,0x22,0x37,0x39,0xfe,0x65,0x87,0x1f,0xa0,0x58,0x70,0xd7,0xde,0x0d,0x38,0x08,0x65,0x91,0x20,0x2a,0x51,0xb1,0x74,0xd1,0xc6,0x18,0x28,0x08,0xc6,0xce,0x62,0x63,0x1d,0x81,0xdb,0xa3,0x4e,0xbe,0xd4,0xaf,0x2f,0x29,0xb0,0x6c,0x00,0xa5,0x7a,0x3c,0xb6,0x66,0x36,0x06,},\"\\xe5\\xdc\\x3e\\xd2\\x6c\\x1f\\x69\\x3c\\xf8\\x52\\x46\\x5a\\x05\\xe3\\x04\\x8b\\x50\\x5d\\xb5\\x11\\x6d\\x9e\\x31\\x59\\x22\\x05\\xa9\\xc3\\xd4\\x72\\x0b\\xc1\\x0b\\x6c\\x20\\x63\\x9a\\x0e\\xe2\\xf0\\xe1\\x47\\x22\\x5b\\x5b\\x19\\xea\\x51\\x1c\\xfb\\xa0\\xc2\\x1a\\xac\\x10\\x71\\x5a\\x2f\\x23\\x2f\\x10\\xc2\\xc8\\xaa\\xd4\\x11\\x12\\xb6\\xb0\\x12\\xe7\\x5a\\x41\\x55\\xf8\\xc6\\x92\\x62\\x53\\xca\\x2b\\x4d\\xdb\\x7b\\xfe\\x7f\\x86\\xe9\\x0a\\x53\\xdb\\xc0\\xcb\\xa8\\x9e\\x48\\x5c\\xec\\xa8\\xfd\\x26\\xe5\\x0c\\x7f\\x28\\x2a\\x25\\x35\\x73\\xcb\\x0a\\x8f\\xa8\\x8c\\xc4\\x46\\x23\\xe8\\x2e\\x8f\\xa2\\xed\\xb6\\xcb\\xc7\\x53\\x8a\\xc9\\x2c\\x11\\xe4\\xc5\\xb1\\xea\\x5f\\x68\\x96\\x6d\\x15\\xd9\\x3c\\x34\\xf3\\x96\\xd2\\x75\\x72\\xf8\\x64\\x38\\x2a\\xb7\\x6a\\x7b\\xe6\\x5a\\x55\\x7b\\x13\\x97\\x66\\x36\\x8a\\x20\\x7d\\x98\\xbc\\x0c\\x20\\x92\\x63\\x70\\xde\\xa2\\x70\\x48\\x16\\x03\\x63\\xed\\x85\\xf4\\x09\\x9e\\x7c\\xd6\\x6d\\x12\\xd0\\x98\\x8c\\xfc\\x9e\\x2f\\x16\\xaa\\x56\\x5f\\x8f\\x33\\xb3\\x9e\\x97\\x8c\\x05\\x87\\x37\\x1f\\x92\\xdb\\x50\\x56\\x31\\x75\\x64\\x41\\x1b\\xd8\\xa3\\xb6\\xfe\\xa0\\x9d\\x34\\x87\\xaa\\xf7\\x34\\x03\\x49\\x18\\xff\\xed\\x1c\\x9f\\xba\\x7b\\xde\\xc6\\xfe\\x68\\x87\\x6f\\xc7\\x36\\x0c\\xc5\\x62\\x9b\\x92\\x10\\x40\\x27\\xfe\\x57\\x59\\xc5\\xab\\x36\\x53\\x54\\x75\\x1e\\x79\\x69\\x11\\x6c\\x3b\\x9a\\x21\\xb1\\x52\\x33\\x0a\\x96\\xa9\\x38\\x1a\\xf7\\x30\\xd1\\x78\\x22\\xd7\\x8a\\xd6\\xea\\x86\\x00\\x06\\x91\\x5b\\x5c\\xab\\x44\\x7a\\x75\\x93\\x72\\xe0\\x5d\\x49\\x5e\\xbb\\x32\\x8e\\x75\\xd2\\x48\\xda\\xa0\\x2f\\x5d\\x2e\\xb9\\x78\\xd2\\x71\\x0c\\xf1\\xc5\\xfb\\x82\\x48\\x76\\x77\\x0e\\x32\\xca\\x6d\\xe2\\xc7\\x30\\x56\\x48\\x92\\x41\\x5b\\xcb\\x53\\xe5\\x98\\x1d\\x70\\x7a\\xdd\\x96\\x1c\\x5f\\x37\\xfd\\xaf\\xa1\\x39\\x9a\\xf8\\xae\\xa9\\x60\\x45\\x8d\\x2c\\xa3\\x10\\x55\\x3f\\x7c\\x98\\x66\\xcc\\xbe\\x8e\\x9d\\x88\\xe0\\x8a\\x44\\x68\\x72\\xea\\x66\\xfc\\x30\\x8c\\x82\\x45\\x14\\xb7\\xda\\xce\\x03\\x34\\xdb\\x73\\x5e\\x6f\\x14\\xc8\\x5b\\x5e\\x61\\x9a\\x5d\\x60\\x56\\x48\\xa8\\x81\\xe8\\x76\\xc7\\x8d\\xbe\\x06\\x57\\x23\\x3d\\x4f\\x7f\\x3b\\xfd\\xdf\\x63\\xb4\\x45\\x31\\x1d\\x6a\\xbc\\x47\\x63\\x47\\xec\\x4f\\xb4\\x3c\\x89\\x46\\xf9\\xd1\\x7c\\x36\\x93\\x81\\xd1\\xc5\\x64\\xff\\xcf\\xe2\\xdc\\x7b\\x47\\x26\\xfd\\x57\\x38\\x7f\\x0b\\x44\\xdb\\x8e\\xf9\\x5a\\x0b\\x4e\\x32\\xa7\\xbe\\xdf\\x31\\x9e\\x53\\xa9\\xe7\\x12\\x6c\\x28\\x11\\xf9\\x82\\x9d\\x1f\\x4a\\xe9\\xab\\xd9\\xd5\\xf4\\x2e\\xfe\\xf2\\x07\\x5f\\x47\\x05\\x1c\\x63\\xa4\\xf8\\x20\\x20\\x40\\xec\\x47\\x23\\x68\\x63\\x82\\xc6\\x03\\x31\\x27\\xc1\\xfb\\xff\\xf4\\xbc\\x82\\x37\\x35\\x08\\x75\\x2d\\x43\\x1d\\xc4\\x73\\xf5\\x2d\\xde\\xab\\x03\\x42\\xdc\\x4f\\x54\\x47\\xf8\\xf2\\x57\\x38\\xef\\x65\\xd7\\x85\\x56\"},\n{{0x66,0xf5,0xea,0x8c,0xdb,0x95,0xee,0x1a,0x75,0xe3,0x24,0x67,0xd7,0xc8,0x3c,0x59,0x44,0x77,0x42,0xc8,0x5d,0xdd,0x49,0x9c,0x43,0xc0,0x86,0x73,0xe1,0x49,0x05,0x3a,},{0xa8,0xad,0x04,0xb9,0xc1,0x44,0xb9,0x7f,0xe8,0x67,0x37,0x4d,0x4f,0xe5,0x7d,0x7e,0xc0,0xc2,0x49,0x18,0x3e,0x43,0xbd,0xfb,0x5d,0x52,0x64,0x4e,0x7f,0xbe,0x1d,0xf3,},{0xec,0x5c,0x7e,0x83,0x92,0xfa,0x8b,0x61,0xbc,0x82,0x96,0x81,0x86,0x6e,0x45,0xac,0x8b,0xe4,0xb5,0xb7,0xb6,0xa8,0x22,0xc1,0xbc,0xd0,0xf2,0xcc,0x2c,0x8c,0x44,0xc3,0x3c,0xf8,0x3f,0xa4,0x2d,0x43,0xa2,0xf1,0x88,0x41,0x41,0xb4,0xa5,0x9a,0xaf,0xf4,0x7f,0x9b,0xe0,0x7e,0x63,0x2e,0x20,0x18,0x75,0x93,0x24,0xea,0xc9,0xd1,0x49,0x00,},\"\\xc0\\xd0\\x1d\\xce\\xb0\\xa2\\xd1\\x71\\x91\\x10\\x18\\x79\\xab\\xb0\\x93\\xfb\\x07\\x75\\x71\\xb5\\x21\\xbe\\x7b\\x93\\xa1\\x17\\xc6\\x96\\xc0\\x87\\x2f\\x70\\xea\\x11\\x39\\xab\\x62\\x83\\x29\\xee\\x56\\x55\\xfc\\x0a\\xa7\\x7e\\x81\\x11\\xd2\\xfc\\x88\\x47\\x48\\xc1\\xf2\\x67\\xb9\\xeb\\x09\\xdc\\x26\\xf5\\x7f\\xc4\\x02\\xd6\\x1b\\xa3\\x6f\\x63\\xf4\\xd5\\x89\\xaa\\xe6\\x3c\\x76\\xee\\xee\\x15\\xbf\\x0f\\x9e\\x2d\\xcd\\xe4\\xe4\\xe3\\xe7\\x8f\\xc6\\xc2\\x9e\\x3a\\x93\\xf3\\xff\\x0e\\x9a\\x6e\\x0b\\x35\\x66\\x45\\x95\\x38\\x90\\xde\\xbf\\x62\\xdb\\xea\\xf4\\x90\\x51\\x78\\xd4\\xf0\\xa5\\xa5\\x92\\xc1\\x92\\x94\\xee\\xba\\x7c\\x21\\xcf\\x8f\\x1b\\xb3\\xf4\\x51\\x21\\x87\\x37\\x6d\\xe7\\x2f\\x11\\x36\\xa4\\x8a\\xc2\\xdf\\xaf\\x32\\xd0\\xf3\\x7d\\xe0\\x64\\x59\\x25\\x92\\xb6\\xe1\\xbc\\x0c\\x51\\x2c\\xf4\\xd2\\xd8\\x5d\\x16\\x79\\x78\\x53\\xa8\\x09\\x33\\xb0\\x9c\\x2f\\x7b\\xfb\\x9e\\x54\\xa6\\x9e\\x51\\xa8\\xe4\\x23\\xa9\\x1c\\x3e\\x5f\\xde\\xb4\\x79\\x05\\x33\\xe8\\x7a\\x4b\\x1c\\x0e\\x0e\\x23\\xa9\\xdb\\x95\\x73\\xac\\x17\\xab\\x6e\\xc7\\x01\\x4d\\x8b\\x7c\\x44\\x86\\xe1\\x57\\x25\\xf8\\xd2\\x64\\xee\\xa3\\x05\\x0e\\x83\\x5a\\xe0\\xac\\x44\\x9d\\xb3\\x34\\x50\\x2a\\x6d\\x97\\x35\\x8f\\xa8\\x59\\x10\\x6a\\xd0\\xf6\\xf4\\x29\\x5f\\x23\\x44\\x92\\x0a\\xdf\\x93\\x55\\xa6\\x94\\x9d\\x8d\\x14\\x5c\\x25\\x62\\x8a\\x46\\xa1\\x04\\xca\\x09\\x9b\\xd9\\xdd\\xe9\\x41\\x11\\x9c\\x83\\x82\\x0c\\xdc\\x2c\\xb2\\xd0\\x97\\x22\\x69\\x49\\x01\\x04\\x3c\\x37\\xcf\\x0a\\xe8\\x79\\xbe\\x20\\x30\\xd0\\x37\\x31\\x58\\xb9\\xc4\\xb0\\x71\\x82\\x98\\xbe\\x45\\xf6\\x30\\xf6\\xfc\\xdc\\x19\\x0f\\x7b\\x29\\x26\\xd8\\x76\\x55\\xa1\\x8b\\xb7\\x97\\xac\\x50\\x75\\x7f\\xcd\\x36\\x55\\xc9\\xe4\\x1d\\x51\\x63\\x29\\x3d\\x9a\\x13\\xd9\\x84\\xf5\\x91\\xf7\\x5b\\x7e\\x4e\\x5c\\xad\\xb6\\x4c\\x4c\\x9f\\xdf\\xef\\x76\\xca\\xb6\\x93\\x81\\xd0\\xf6\\x0b\\x48\\x3f\\x80\\x4b\\xb3\\xb3\\x33\\x64\\xdf\\x8c\\xff\\xac\\xb3\\xc9\\xb1\\x3f\\xf4\\xc8\\xd8\\xd4\\xea\\x40\\x76\\x6a\\x7d\\x42\\xd8\\x25\\x6c\\x6b\\x1c\\x11\\xc1\\x91\\xda\\xba\\x1b\\x8e\\xf2\\x15\\x93\\xe4\\x7b\\x18\\x85\\x8e\\xc1\\x9d\\x81\\x73\\x58\\x67\\x8d\\x85\\x48\\xff\\x15\\x35\\xd5\\xfc\\xf4\\x41\\x4b\\x6a\\x11\\xd3\\x4a\\x37\\x42\\xf8\\xd7\\x14\\x9f\\xa6\\x81\\x38\\x3a\\x94\\x08\\x88\\x7f\\x1c\\x0a\\x98\\xed\\x52\\x1e\\x72\\x79\\x32\\x77\\x82\\x4d\\x6f\\x74\\x6d\\x49\\xb6\\x3d\\x44\\x4e\\x31\\x2e\\x6d\\x9b\\x98\\x66\\x11\\x25\\x81\\x96\\xa5\\xb0\\x12\\xb8\\x8f\\xaa\\x29\\xf9\\xa6\\xc6\\x7e\\xd2\\x5d\\xf8\\x7b\\x2d\\xbf\\x0d\\xbd\\x2d\\xc3\\x08\\x0c\\x5b\\x8d\\x15\\xa3\\x7d\\x34\\x72\\x90\\x98\\xed\\x0d\\xe9\\x2d\\x75\\x80\\x74\\x29\\xb2\\xca\\xe5\\xd7\\x28\\x3c\\x4e\\x5c\\x9b\\xd1\\x96\\xd1\\xad\\x43\\x6c\\x7c\\x34\\xf3\\xc9\\x46\\x6e\\x5c\\xb3\\x19\\x6b\\x44\\x3f\\x4b\"},\n{{0xed,0x25,0x58,0xe5,0xc5,0x67,0x84,0xbc,0xfb,0x4f,0x4d,0xde,0xa3,0xc0,0xdf,0xbe,0xf8,0xd9,0x6f,0xf1,0xca,0xbf,0x15,0x8e,0xc4,0xab,0xe6,0x0a,0xff,0x66,0x99,0x9e,},{0x1e,0xdc,0x99,0x10,0x12,0xac,0x6f,0x88,0x8f,0xa7,0xe6,0x04,0x57,0x77,0xe9,0xba,0x1d,0x4c,0x03,0xc4,0x02,0x92,0xd2,0xda,0x6b,0x72,0x2b,0x4a,0xd0,0xa3,0xed,0x74,},{0xab,0x9e,0x01,0x16,0x65,0x24,0xfd,0x28,0x8e,0x5c,0x68,0x9e,0x56,0xd7,0x30,0xd4,0x98,0x30,0x00,0x55,0x10,0x30,0x49,0x33,0x34,0xa3,0x98,0x4e,0x22,0x23,0xdc,0x9f,0x7a,0x5b,0x91,0x0c,0x61,0x76,0x0c,0x61,0x57,0x99,0x0a,0x4c,0x33,0x5e,0x34,0x8e,0x3a,0x7b,0xc8,0x22,0x3e,0x09,0xc1,0x0c,0x5e,0x52,0x0c,0x8d,0x61,0xaf,0xf5,0x00,},\"\\x2c\\x64\\x33\\xe9\\xbf\\xbf\\x4c\\xfd\\x4e\\x07\\x1f\\x15\\xce\\x6b\\x12\\x9d\\x78\\x0a\\x4b\\x3d\\xe0\\x14\\xfa\\xc0\\x34\\xe0\\xd4\\x4e\\xf7\\x72\\xe2\\xc8\\xb0\\xd6\\xa3\\x48\\x1d\\x7b\\x3d\\xde\\xb2\\x37\\x63\\x26\\x73\\x55\\x33\\x13\\xde\\xac\\x1e\\xfa\\xfe\\x37\\x02\\xa7\\xa4\\x41\\x1e\\x12\\xbd\\x34\\x1e\\x8d\\x8e\\x96\\xc5\\x9c\\x5e\\x30\\xc3\\x68\\x07\\xa8\\x38\\x5a\\x53\\x8e\\x9b\\x66\\x90\\x7d\\x6a\\x52\\x84\\x00\\xbd\\x9f\\x95\\xee\\xdc\\x52\\x16\\xb2\\x8f\\xd7\\x43\\x7d\\x8f\\x4a\\x02\\x9f\\xdb\\xdc\\x7c\\x93\\x8e\\x4e\\xb9\\x81\\x2f\\xec\\x05\\xea\\x69\\x32\\x29\\x62\\x9a\\xce\\x6a\\xcc\\x7a\\xf6\\xba\\x4c\\x23\\x8e\\x77\\x22\\xf3\\x12\\xf7\\x89\\x6b\\x00\\x49\\x22\\xf7\\x06\\x7e\\xde\\x10\\x6f\\x8e\\x70\\x15\\x4d\\x78\\x3f\\xb4\\x12\\x91\\xf3\\xc7\\xe2\\xe4\\x82\\x60\\x45\\xb5\\x74\\x1b\\xcb\\x4a\\x88\\x38\\xf8\\x7a\\x32\\xe0\\x04\\x97\\x04\\xe9\\xb5\\x32\\x34\\xc2\\x24\\xff\\x89\\x8a\\x75\\x6e\\x52\\x91\\x34\\xc1\\xa9\\xbf\\x50\\xfd\\x02\\x98\\x19\\xb2\\x23\\x8b\\x60\\xb2\\xae\\xc1\\x12\\x8f\\x34\\xd2\\x1f\\x9d\\x66\\x98\\x3b\\xed\\x39\\x86\\x59\\xd8\\x08\\xb6\\x7a\\x2e\\x50\\x1b\\x5a\\x1f\\x25\\xf7\\x1f\\x0f\\x0c\\x1e\\xb2\\xfe\\xa0\\xab\\x42\\xd8\\x2f\\xf3\\xbc\\x93\\x58\\xbb\\x20\\xc2\\x75\\x20\\xc1\\x44\\xcf\\x21\\x16\\xf4\\xa4\\x9c\\xbc\\x61\\x99\\x4d\\x2d\\x71\\x05\\x46\\x69\\x4c\\x4f\\x60\\x2d\\xc4\\x06\\xe0\\xb0\\xc2\\x7e\\x5f\\x5e\\x64\\x66\\x7e\\x95\\xc2\\xec\\x9d\\xf2\\xd6\\x52\\x9c\\xf5\\x36\\x22\\xea\\x10\\xb9\\x56\\xb3\\x45\\xec\\x55\\xb6\\xc3\\x9a\\x1e\\x6e\\xd8\\x8a\\xe6\\x6e\\x5b\\x45\\x71\\x79\\x42\\x5d\\x1a\\x84\\x90\\x37\\xb0\\x7c\\x46\\xcf\\x5f\\x36\\x33\\x01\\x09\\x58\\x37\\xce\\x81\\x1b\\xff\\x49\\x60\\xbf\\x9c\\xbd\\x15\\x20\\x1c\\x1b\\x67\\x40\\xbd\\x70\\x10\\x21\\x40\\x74\\x4c\\x33\\x27\\xac\\xa9\\xd6\\xd6\\xd1\\x54\\x93\\x67\\x98\\xac\\x38\\x1f\\xa6\\x39\\xdb\\x43\\x6e\\xe8\\x16\\x56\\x67\\xd5\\x38\\xa6\\xc7\\x4a\\x23\\x3c\\x12\\x4b\\xf6\\x04\\xfd\\xad\\x51\\x98\\x4c\\x41\\x70\\xb8\\x20\\x0d\\x2d\\xf7\\x3c\\x29\\xbb\\x1e\\x37\\x6a\\xff\\xc3\\x14\\xdd\\xe3\\xe8\\x6a\\xf9\\xd2\\xc2\\xe6\\xc3\\xa6\\x52\\x4d\\x32\\x1b\\xce\\x93\\xe2\\x1f\\xc9\\x65\\x56\\x4f\\xaf\\x77\\xd0\\xcd\\x1a\\xcc\\xb4\\xd7\\x62\\x94\\x85\\xf5\\x64\\xc7\\x9f\\x4d\\x8a\\x2f\\xde\\xfb\\x46\\x54\\x54\\x02\\x8c\\x6d\\xd1\\x42\\x80\\x42\\x80\\x53\\x70\\x74\\x33\\x63\\xbb\\x18\\x47\\x6a\\x3f\\x23\\x20\\xdb\\x25\\x89\\xc7\\x21\\x33\\xcf\\x5e\\x29\\xda\\xfb\\x7d\\x07\\xaa\\x69\\xa9\\xb5\\x81\\xba\\xb5\\xa8\\x3f\\x40\\x3e\\xef\\x91\\x7a\\xfa\\x14\\xb7\\x64\\xc3\\x9a\\x13\\xc0\\xc5\\xea\\x70\\x19\\xd2\\xfd\\xfb\\xd7\\xf3\\xf7\\xd4\\x0e\\xb6\\x3b\\x2a\\x08\\x4d\\xa9\\x21\\x89\\x5f\\xe4\\x8f\\x4f\\xd5\\x94\\x01\\x7f\\x82\\x56\\x9b\\x46\\x7a\\xb9\\x01\\x16\\x9e\\xb5\\xda\\x9c\\x40\\x17\\x1d\\x5f\"},\n{{0xb7,0x27,0x98,0xb8,0x11,0xe2,0x33,0x84,0x31,0x25,0x6d,0x24,0x80,0xfe,0x7a,0x36,0x63,0xac,0xec,0xbb,0xe6,0xe6,0xc1,0xb9,0x19,0x1e,0x9d,0x9a,0x22,0x44,0x79,0x40,},{0xce,0x49,0x1d,0xaa,0xd2,0x96,0xb5,0x57,0x27,0xb0,0x95,0x13,0xdf,0x02,0xba,0x59,0x28,0xa3,0x71,0x73,0x7c,0xd3,0x58,0x41,0xe5,0xf7,0x35,0xac,0xab,0x7c,0x5d,0xf8,},{0xdc,0xfc,0x6f,0xd4,0x77,0x99,0xfe,0xc7,0x72,0xc2,0x09,0x9b,0x3c,0x64,0x37,0x24,0x6c,0x3a,0xd0,0x72,0x29,0xfc,0x74,0x0e,0x05,0x31,0x1a,0x20,0x6b,0x18,0xb0,0x2e,0xcd,0xb0,0x26,0xc9,0x26,0xf4,0x9c,0x65,0x52,0xe3,0x47,0xfd,0x35,0xdf,0xde,0x06,0xcb,0x63,0x9a,0x79,0x7c,0x50,0x61,0x2f,0x98,0xe2,0x47,0x8a,0x92,0xaa,0xf6,0x09,},\"\\xa5\\xd4\\x62\\x98\\xb0\\x79\\x06\\x10\\xae\\xdc\\x09\\x70\\xfe\\xa2\\xa7\\x07\\x50\\x81\\x84\\x72\\x66\\xf2\\x2f\\x12\\x47\\x8b\\x93\\xd7\\xe6\\x74\\xc6\\xc5\\x17\\xf3\\xc1\\x4e\\xd0\\x61\\x26\\x9d\\x17\\x0a\\xc3\\x1e\\x2a\\x64\\xf9\\x75\\x4a\\x56\\x5b\\xac\\x1d\\xd9\\x75\\x73\\x22\\xc1\\x11\\x32\\xe7\\xbb\\xee\\x5f\\x32\\x81\\x8e\\x0e\\x30\\x63\\xab\\x64\\xe5\\x52\\xd0\\x9b\\x0f\\xd1\\x75\\x76\\x39\\xb9\\xb9\\xd1\\xc7\\x70\\x01\\x6b\\x67\\x74\\x65\\x87\\x2b\\x66\\x9d\\xd4\\x8b\\xe0\\x38\\x66\\x57\\x51\\x67\\x4d\\xd2\\xf4\\x0a\\x96\\x6a\\x26\\x74\\x8f\\xd3\\xe5\\xdb\\xfd\\x92\\x26\\x5e\\xb9\\x36\\xf5\\x5b\\x09\\x42\\x86\\xc0\\x10\\x62\\x99\\x04\\x34\\x7c\\xb4\\xc5\\x26\\xe3\\x77\\x47\\x0a\\xa9\\x6e\\x81\\x69\\xa6\\xf2\\x11\\x63\\x38\\x07\\xa5\\x00\\x30\\xe7\\xff\\x68\\xe3\\x89\\x11\\xb3\\x55\\x5e\\x72\\x8e\\xd8\\x59\\x0b\\x2d\\xc4\\x5f\\xea\\x69\\x94\\x5c\\xc0\\xc9\\xa3\\xd3\\xe6\\xc9\\x54\\xb3\\xe8\\x01\\x06\\xa5\\xc9\\x1d\\x3d\\x22\\xe8\\x9e\\x8c\\x0e\\x1d\\xe9\\x02\\x05\\x8e\\x9c\\xd0\\xf8\\xce\\x80\\x6e\\xac\\x4f\\x89\\x3e\\xe0\\x42\\x99\\x00\\xfb\\x54\\x87\\xb8\\xfd\\x36\\xdb\\xdc\\xb3\\x4f\\x2d\\x54\\xfc\\x6c\\xc7\\x4a\\x92\\x39\\x51\\xb8\\x63\\xda\\x70\\xf1\\xb6\\x92\\xbf\\x04\\x38\\x48\\x43\\x66\\xcd\\x85\\xee\\xb8\\x80\\xb2\\x79\\xf8\\xfc\\xa9\\xd3\\x24\\x2c\\x55\\x83\\x30\\xf1\\xca\\x57\\xc6\\xa5\\x86\\x08\\xcd\\xbc\\x07\\x73\\xe1\\x60\\x82\\xbc\\xa9\\x64\\xdd\\xc4\\x03\\x47\\xda\\x8a\\x36\\xb2\\xa9\\x32\\x8c\\x2f\\x46\\x60\\x9e\\x09\\x2f\\xd6\\x4b\\x41\\x34\\xee\\xe1\\xd0\\x99\\x81\\x3e\\x12\\x46\\x48\\x9e\\x8e\\xe5\\xb1\\x9b\\x3d\\x3b\\x89\\x1c\\x28\\xf3\\x0b\\x38\\xb6\\xa2\\x8e\\xc1\\xd3\\xe9\\xb0\\x05\\xde\\xc9\\xc6\\x3f\\x8b\\x98\\x13\\xbc\\x1d\\xe4\\xaa\\xf9\\x95\\xf1\\x77\\x9d\\xde\\xd1\\x5c\\x7a\\x43\\x0d\\x70\\xca\\x46\\xe7\\xca\\xfd\\x4e\\x9a\\x54\\x38\\x04\\x44\\x6a\\xb0\\x80\\x7d\\x64\\xf2\\x55\\xe2\\x01\\xef\\x42\\x8a\\x47\\x4d\\xae\\x8a\\x0a\\x75\\x02\\x1b\\x62\\xad\\x39\\x88\\xff\\xb8\\x1c\\xd8\\x22\\x1b\\x24\\x30\\x85\\xa0\\xad\\x04\\x6f\\xdc\\x16\\xc6\\x7f\\x17\\xb9\\xf8\\x18\\x20\\x09\\x59\\x53\\xa5\\xb9\\x8a\\xcb\\xdf\\x93\\xeb\\xcf\\x80\\xbc\\x9c\\x99\\xaf\\x5f\\xbf\\xfa\\xcb\\x61\\xa9\\x25\\x1c\\x5a\\xaf\\xdb\\x22\\xb1\\x12\\x9b\\xfc\\x60\\xc9\\x8e\\x0f\\x17\\x52\\x63\\xbd\\xf9\\x3d\\xc9\\xa0\\x8b\\x8e\\xfc\\x2e\\x8c\\xda\\xf0\\xf8\\x3d\\x6c\\x49\\xec\\x90\\x16\\x45\\xea\\xc5\\xa4\\xff\\x63\\x38\\x5a\\x6f\\x1a\\xf2\\x07\\x18\\x97\\x66\\x2a\\x37\\x22\\x19\\xc9\\x30\\x1f\\x54\\x5a\\x2e\\xbb\\x8f\\x59\\x17\\xdb\\x7f\\x29\\xca\\x13\\xfc\\x86\\x1a\\xf3\\x8d\\x90\\xc3\\x5c\\x03\\xac\\x91\\x84\\xc1\\x22\\xe5\\x7b\\x05\\x7c\\xde\\x42\\x6f\\xd7\\x6d\\xca\\x79\\xe2\\x5e\\x64\\xdb\\xb4\\x1c\\x84\\x14\\xa0\\x45\\x0d\\xa4\\x90\\x5b\\x90\\x2a\\xe9\\x8d\\x2d\\xa4\\xba\\x79\\x28\\x01\"},\n{{0x1f,0xe7,0x32,0x7e,0xa9,0x07,0xd3,0xff,0x17,0x9b,0x11,0x78,0x11,0xd3,0x01,0x93,0xfc,0xba,0x4c,0x34,0x7b,0x90,0x65,0x7f,0xee,0xd9,0x8d,0xee,0xec,0xda,0x9a,0xc9,},{0xee,0xf3,0x01,0xb1,0x6f,0xd7,0xbf,0x3c,0x7b,0x64,0x0b,0xf5,0xee,0x87,0x00,0xac,0x5a,0x87,0x16,0x9e,0xab,0x5f,0x56,0x01,0x5b,0x3f,0x49,0x9d,0x95,0x5e,0x07,0xeb,},{0x9c,0x7f,0xdb,0x53,0xfd,0x60,0x6b,0xc7,0xc9,0xc2,0x23,0xfe,0x94,0x31,0xe1,0xad,0x00,0x95,0x46,0xd0,0x00,0x98,0x81,0x2a,0x49,0x51,0x97,0xf2,0x54,0x1e,0x87,0xf8,0xd6,0xf5,0xda,0x22,0xec,0xef,0xcb,0xb7,0xda,0x56,0x66,0x2a,0x73,0x09,0xd1,0x0a,0x6c,0x4a,0x4f,0x7f,0x29,0x92,0x78,0xd5,0x1b,0xbd,0x11,0xe0,0xcc,0x1b,0x87,0x09,},\"\\x19\\xa8\\x32\\xf2\\x6f\\xbb\\x02\\x39\\xf0\\xd9\\xd2\\x6a\\x2e\\xbd\\xed\\x24\\x03\\xc2\\xa4\\x06\\xdd\\x1f\\x68\\x31\\x8d\\x67\\x7a\\xfa\\x64\\xf3\\x50\\x43\\x31\\x6a\\x5e\\xfd\\x72\\x97\\x83\\xc7\\xf9\\xd1\\x8c\\x09\\x82\\x46\\x14\\x65\\x20\\x91\\x88\\x6c\\xc9\\x54\\xbe\\x9f\\x93\\x12\\xd4\\x58\\x6b\\xf3\\x6f\\x30\\x35\\xac\\x70\\x34\\x38\\xb0\\xcf\\xe3\\xde\\xc5\\x07\\x78\\x13\\xc7\\x10\\xd1\\x44\\x75\\x61\\xab\\x61\\x57\\xbc\\x7a\\xd5\\xea\\xb5\\xb0\\xc0\\xaf\\xdc\\xc9\\xdb\\x77\\xe6\\x6f\\xa8\\x07\\x13\\x66\\x82\\x9c\\x50\\x10\\x96\\xc3\\xd3\\xa9\\x38\\x21\\x8a\\x6e\\x42\\x07\\x10\\x9d\\x1e\\xb8\\x1f\\x7d\\x88\\xbd\\x6f\\xbb\\x2a\\xef\\xb1\\xad\\xef\\x35\\x94\\xaa\\xe5\\x7c\\x46\\xb7\\xb9\\x84\\xdb\\x94\\x68\\xcd\\x96\\x2c\\x61\\x84\\xfb\\x97\\x6f\\x0e\\x2a\\xa8\\x41\\x52\\xde\\xb1\\xc7\\x6a\\xea\\x75\\xae\\x48\\x84\\x42\\x94\\x3a\\x80\\xba\\x7d\\x98\\xa2\\x8c\\xb8\\x64\\xb5\\xe8\\x7c\\xdb\\x28\\x4a\\xd6\\xe8\\xd7\\xaa\\xdc\\x6b\\x75\\xd6\\x9d\\x3b\\xd3\\x45\\x78\\x3b\\x3e\\xbb\\x67\\x6f\\xf9\\x5d\\x7b\\x41\\x91\\xe5\\x99\\x85\\x1c\\x96\\x28\\x83\\x5c\\x7c\\x01\\x19\\x7e\\x7c\\x8f\\x86\\xf9\\xc8\\xfb\\x49\\xfe\\x3e\\x28\\x45\\x8b\\xa9\\xb0\\x23\\x62\\x19\\xbd\\x46\\xc2\\x8d\\xf6\\x53\\x24\\x96\\x99\\x4a\\xc9\\xba\\x73\\x3c\\x01\\x05\\xa0\\x2a\\x26\\x9a\\x2b\\xe8\\xb7\\xcb\\x40\\x07\\x4b\\x88\\x16\\x02\\xef\\x92\\x47\\x05\\x2d\\xe9\\xd6\\x37\\x08\\x91\\x88\\xbd\\x4c\\x18\\x5c\\xca\\xe2\\x58\\xa2\\xae\\x98\\x56\\xa2\\xcb\\xf8\\x45\\x11\\x17\\x68\\x3c\\xe3\\x41\\xf8\\x09\\x6e\\x1d\\x91\\xe8\\x74\\xc5\\xcb\\x8a\\x4e\\x09\\x39\\xeb\\x77\\x37\\x3a\\x9a\\x0e\\xb7\\x91\\x64\\x5b\\x8f\\x54\\x60\\x47\\x2d\\x66\\x9d\\x80\\x14\\x68\\x1a\\x5e\\x77\\x87\\x06\\xcb\\x55\\x66\\xbb\\xd4\\x72\\x7d\\x17\\x16\\xb2\\x3c\\x62\\x0d\\x22\\x8b\\x5d\\x4d\\xc2\\xb3\\x52\\xb4\\x23\\x93\\x1f\\x8a\\x7e\\x8f\\xb5\\x9e\\xda\\xd8\\xae\\x42\\x45\\x87\\x29\\x86\\x1a\\x98\\xe0\\xc8\\x50\\xa7\\x7e\\xd6\\x55\\xe7\\xfc\\xfe\\x4f\\xe3\\x6f\\x97\\x72\\xdf\\x1a\\xc3\\xc6\\x43\\xad\\x31\\xdb\\x56\\x30\\xd5\\x71\\xdf\\x9f\\xcc\\x9c\\x50\\xde\\x76\\x22\\x10\\x84\\x11\\x96\\x2b\\xbf\\x72\\xde\\xfb\\xf4\\x9e\\x99\\x70\\x59\\xc7\\x31\\x1b\\xd9\\xdd\\xd5\\xb3\\x38\\xa9\\x85\\x19\\x38\\xd3\\x7e\\x7a\\x26\\x21\\x08\\xa2\\x91\\xe2\\x01\\x68\\x03\\xbb\\xef\\xf4\\xf9\\xc7\\x76\\x12\\x5c\\xeb\\x7e\\x72\\x72\\xb5\\x1c\\x7c\\x33\\x46\\x1d\\x80\\x89\\xf8\\x40\\x8d\\x8d\\xda\\x92\\x50\\x6d\\x50\\x02\\x08\\x4d\\x4f\\x41\\x4d\\x8a\\x4d\\x28\\xd3\\x69\\x4c\\x88\\x63\\x0e\\x31\\x80\\x19\\x90\\xd9\\x52\\x71\\xce\\xf4\\x7a\\xa5\\xc2\\x63\\xf9\\x7b\\x7d\\xac\\xa1\\x78\\x87\\x01\\x43\\x63\\x29\\xb5\\xbf\\xaf\\x72\\x65\\x3c\\x16\\x6d\\xb0\\x87\\x70\\x81\\x30\\xc5\\xc0\\xd7\\x8c\\xc4\\xe9\\x06\\x4f\\x86\\x06\\x80\\x27\\x1a\\xfe\\x4c\\x40\\x98\\x53\\xc2\\xfa\\xd6\\x75\"},\n{{0x5f,0x9d,0xcd,0x93,0xfb,0x14,0x06,0x10,0xb0,0xe2,0x11,0xb3,0x9a,0xdd,0xb1,0xeb,0x87,0xba,0x97,0x80,0x48,0x77,0xaf,0xbc,0xc3,0x81,0x38,0x8c,0xad,0x65,0x08,0x45,},{0x18,0x2a,0x23,0x7d,0x87,0x8c,0x58,0x19,0x33,0x33,0x2b,0x41,0x78,0xb6,0x7e,0xc4,0x08,0xb3,0x19,0x4d,0x44,0xe4,0xe6,0x93,0x92,0xef,0x80,0x0b,0x26,0x7c,0x29,0x49,},{0xc1,0x91,0x5e,0x05,0x2b,0x66,0x47,0x97,0xe0,0xd5,0xfa,0xad,0xc7,0x8f,0x2a,0x00,0x9d,0x6f,0xbc,0xfd,0xe0,0x3f,0x3a,0xaa,0xd5,0x9b,0x9f,0x45,0x88,0xe7,0xfc,0x3b,0x21,0x99,0x0c,0x52,0x08,0xd3,0xd7,0x6b,0x4a,0xa9,0x5b,0xd9,0x34,0xe8,0x8d,0x3c,0x98,0xc5,0x91,0x93,0x0a,0x59,0xde,0x2a,0x05,0x67,0x01,0xd9,0xf7,0x57,0x74,0x00,},\"\\xc3\\x8b\\x87\\x4d\\x3f\\xf0\\x10\\xff\\xf1\\xa6\\x61\\x3b\\xfa\\x13\\x42\\x57\\xb2\\x48\\x33\\xcb\\x53\\x6d\\xe3\\xe7\\x49\\x92\\xc3\\xcb\\x01\\xfe\\x3b\\xbd\\xee\\xd9\\x7d\\xc3\\xc4\\x59\\x6f\\xa4\\x40\\x61\\x44\\x2b\\xd3\\x1a\\x9d\\x4a\\xa8\\xc8\\x1e\\x34\\xad\\x98\\x88\\x71\\x82\\x06\\x63\\x55\\x09\\xb1\\x33\\xb1\\xba\\x69\\xcb\\x1a\\xa0\\xe7\\x5c\\x7a\\x18\\x93\\xc0\\x80\\x16\\x1d\\x26\\x15\\x2a\\xce\\xf4\\x0f\\x6e\\xf4\\x21\\x0e\\x95\\x2a\\x49\\x82\\x8b\\x5c\\xdd\\xe8\\x04\\xbc\\xb5\\x36\\xcd\\xc3\\x49\\xa8\\xe8\\x31\\xb4\\xb6\\x9d\\x37\\x85\\xa7\\x6b\\xd9\\xfb\\x27\\x08\\x05\\x65\\x97\\x2d\\x0b\\x8f\\xbd\\x16\\xf3\\xf9\\x60\\xa6\\xbf\\x3b\\xa0\\xc5\\xb9\\xc4\\x04\\x96\\x7e\\xc1\\xaf\\xfe\\x59\\xb8\\xc4\\xec\\xc6\\x50\\xfd\\xde\\x1c\\xb0\\x6b\\x70\\x59\\x5a\\xd4\\xd3\\x25\\xda\\x0f\\xab\\x4c\\x55\\x40\\xa7\\xa8\\xd5\\xeb\\xea\\xcc\\x4e\\x99\\xbd\\x0d\\xc9\\x6b\\xde\\x82\\xf2\\xbd\\x7d\\x95\\x86\\x30\\x84\\x65\\xe5\\x5b\\x1c\\xc3\\x88\\xd7\\x50\\x48\\x6b\\xdd\\x5c\\x72\\x64\\xd5\\x4f\\x56\\x14\\xd4\\x87\\x26\\xd9\\x9e\\x44\\xd7\\x77\\x8d\\x9e\\xd0\\x32\\x39\\x58\\xab\\x98\\x58\\xe2\\xb2\\x5d\\xf2\\xbf\\x99\\x4b\\xa3\\xe6\\x25\\xe2\\x80\\x3b\\x6c\\x69\\x31\\xe7\\xa9\\x92\\x6f\\x1e\\x61\\xed\\x86\\x24\\x03\\xce\\x39\\x2a\\xb8\\x3b\\x7d\\x1b\\x66\\x08\\x5d\\xcc\\x06\\xd8\\x2d\\xbf\\x17\\x6d\\x01\\x6d\\x9f\\x44\\xcd\\xcb\\x50\\x72\\xd0\\x04\\x59\\x1e\\x92\\xd0\\x45\\x9e\\xf0\\x5a\\x51\\xb8\\xf5\\x4b\\xa1\\x72\\x51\\xe1\\x66\\x21\\xeb\\xb7\\x53\\xe5\\xb1\\x59\\x0c\\x02\\xd2\\x1e\\x40\\xf4\\xb7\\x5e\\xee\\x46\\x02\\x86\\x0b\\x97\\x41\\xfb\\xbc\\x0d\\x2e\\x38\\x5b\\x8d\\xac\\xa8\\x3c\\xce\\x68\\xc3\\x4a\\x99\\xbd\\xe6\\xa6\\x0d\\x13\\xba\\x64\\x34\\x7d\\x0a\\x38\\xd6\\x4b\\x2a\\xde\\x25\\x0f\\x38\\x85\\x2c\\x4e\\xda\\x2e\\x2e\\x4f\\x30\\x3c\\x3d\\xe1\\xa8\\xa9\\xd4\\xab\\x33\\x00\\xc9\\xe6\\x36\\x22\\x87\\x9f\\xc8\\x53\\x7f\\xfc\\x63\\xb1\\x85\\x61\\xfa\\x1f\\xff\\x65\\x53\\x12\\x41\\x51\\x5a\\x62\\xbb\\x9b\\x08\\xb8\\x0a\\xf3\\x76\\x67\\xa6\\x01\\xae\\x04\\x17\\x17\\x93\\xcc\\x83\\xb1\\x1a\\xdf\\x9c\\x30\\xca\\x9f\\x4d\\xab\\xc7\\xb4\\x01\\xe1\\x6a\\x18\\x14\\xcf\\xc7\\x50\\x24\\x8c\\xc2\\xf7\\x7e\\x03\\xf9\\xc4\\x33\\x44\\x65\\xff\\x6a\\x2c\\x83\\xcb\\xb5\\x6d\\xb4\\xb7\\x34\\x75\\x10\\x43\\x83\\x2c\\x40\\x00\\x97\\x2e\\xe3\\x23\\x2f\\x92\\x9f\\x23\\x33\\x7e\\xba\\x5e\\x65\\x1e\\x34\\xcb\\xdd\\xfe\\x68\\xba\\x21\\x9b\\x63\\x2e\\x7a\\xcd\\xbd\\x46\\x30\\xa0\\x31\\xbf\\x16\\x89\\xfb\\xbc\\x7f\\xbb\\xb2\\x10\\xdb\\xf2\\x5e\\xe8\\x7e\\x2e\\xf2\\xb3\\xcb\\xaf\\x8d\\x9e\\xbd\\x8f\\xc9\\x2c\\x3a\\x58\\xd3\\xc0\\x5b\\x13\\x85\\xa7\\x6c\\x87\\x79\\x1d\\x7c\\xd3\\x74\\x1b\\x71\\xb6\\xc3\\x29\\xde\\x9a\\x9d\\x75\\x08\\xa0\\xc1\\x56\\xa9\\x52\\x1a\\x90\\x20\\x56\\x30\\x99\\xa8\\x2b\\x87\\x70\\xae\\x9a\\x94\\x4a\\x7e\\x94\"},\n{{0x92,0x5e,0xbe,0x04,0xc6,0xea,0xc4,0x9b,0x26,0x73,0x8d,0x6c,0x13,0x00,0xf3,0x1f,0xd4,0x82,0x84,0x78,0xcb,0xe9,0x7d,0xab,0x18,0xbb,0x88,0x96,0x42,0xe1,0xe1,0x10,},{0xcd,0x72,0x31,0xb6,0xeb,0x74,0xe1,0xfe,0x9f,0x92,0x6f,0x00,0xd8,0xde,0x2c,0x51,0x3d,0x49,0x64,0x05,0x25,0xb0,0x79,0x5c,0xab,0x89,0x3d,0x0c,0x89,0x29,0xe3,0xe0,},{0x2c,0x4d,0x69,0xbe,0xd5,0xad,0x8b,0x95,0x84,0xd8,0x49,0xcf,0x3d,0xf2,0xba,0xc7,0x22,0x82,0xb5,0xf3,0x0d,0xe2,0x66,0xb1,0x4f,0x53,0x3c,0xa9,0x6e,0x95,0x50,0xc4,0xb8,0x54,0xc1,0x54,0xbd,0xc1,0x7a,0xa8,0x80,0xcf,0x00,0x1a,0x64,0x54,0xff,0xaf,0xaa,0x2e,0x50,0x17,0x8d,0xe2,0x12,0x16,0xed,0x12,0x6b,0x63,0xf7,0x7f,0x2d,0x02,},\"\\xe6\\xc0\\xba\\xd2\\x3a\\x92\\xae\\x8b\\x1d\\x85\\x77\\x82\\x88\\x15\\x7a\\xc6\\xc6\\x17\\xc6\\x33\\x63\\x34\\x1d\\x77\\x78\\x70\\x34\\x1b\\xb1\\x0a\\x8d\\x3d\\xfc\\x89\\xbe\\x4f\\x55\\xad\\x4f\\x64\\xe8\\x3b\\xf2\\x49\\x9b\\x69\\xfd\\xf7\\x21\\x74\\xd2\\x84\\x4e\\x6b\\xd2\\x89\\xda\\xaa\\x03\\x5f\\xec\\x5b\\xf7\\xcf\\x45\\x52\\x21\\x19\\xdc\\x7a\\x8c\\x81\\x1d\\x79\\x57\\x8c\\x5b\\xb0\\xf6\\xd3\\x4d\\xb5\\x07\\xad\\x1f\\xb6\\xdb\\xff\\xf9\\x97\\xb7\\x9d\\xac\\xfb\\x3d\\xa5\\x0a\\x41\\x5e\\x35\\x0c\\x99\\x8c\\x0a\\x02\\x80\\x0a\\xa5\\x0f\\xfd\\xfe\\x5f\\x42\\x76\\xd8\\xe6\\xbb\\x82\\xeb\\xf0\\x47\\xfe\\x48\\x71\\x1d\\xaf\\x7a\\x89\\x3b\\xdc\\x75\\x37\\xbd\\xae\\xdf\\x3d\\xcb\\x4d\\xec\\x5d\\x24\\x58\\x68\\x11\\xf5\\x9b\\x25\\xb1\\x9e\\x83\\xca\\x61\\xe5\\x59\\x2f\\xed\\xc0\\x8c\\xa5\\x44\\x73\\xce\\xa2\\xec\\x12\\x1b\\xaa\\x0e\\x77\\xfb\\x2d\\x9d\\x76\\x56\\x57\\xde\\x67\\x98\\x0e\\xd5\\x7f\\x2f\\x17\\x78\\x58\\xb6\\xde\\xcf\\x84\\xff\\x90\\x21\\x2d\\x96\\x47\\xf4\\x1e\\xed\\x9b\\x9d\\x0e\\xa3\\xd8\\xd6\\x21\\xe4\\xbb\\x40\\x41\\xac\\xc5\\x14\\x6e\\x96\\xdf\\xcf\\x14\\xea\\x96\\x2d\\x30\\xc8\\xcc\\xb3\\x9e\\xa2\\xbe\\x95\\x8c\\x9b\\x87\\x74\\x45\\x1b\\xfe\\xb7\\xdd\\xce\\x71\\x6e\\x94\\x92\\x3c\\xc8\\x5f\\xbd\\x3a\\x31\\x30\\x78\\x0e\\x2b\\x3b\\x2b\\xb7\\x6d\\xa5\\x34\\x19\\x12\\xa4\\xe9\\x94\\xca\\xfa\\x19\\xbb\\xa1\\x97\\x32\\xf2\\xea\\x40\\x2d\\x71\\xd3\\xd8\\xa9\\x69\\x67\\x9b\\x9d\\x10\\x42\\x43\\xd9\\x83\\x9c\\x69\\xee\\x9e\\x95\\x5e\\x1c\\x60\\x44\\x97\\x88\\xd1\\xf4\\xf6\\x65\\x1f\\x4b\\xc9\\xb9\\x4d\\x73\\x52\\x2e\\xc0\\xcf\\x72\\xca\\xcf\\xcf\\x19\\xf1\\xf0\\x3a\\xd6\\x23\\x21\\x04\\xb5\\x5c\\xbb\\x8b\\x5b\\xb1\\xe2\\x13\\x44\\x71\\x3d\\x48\\x27\\x42\\xd6\\xab\\xc5\\xa9\\x57\\x17\\x4f\\x62\\x3b\\x84\\x95\\x27\\x2c\\xc1\\xe2\\xb8\\x31\\x5e\\x5c\\x80\\xf9\\x47\\xf5\\x00\\xc8\\x3d\\x85\\x44\\xf7\\xcd\\x4f\\x65\\x34\\x89\\x49\\xef\\x44\\x20\\xd7\\xfc\\x83\\x1f\\xa4\\xae\\x2e\\xe1\\x8d\\xbb\\xa6\\x14\\x92\\x5c\\xe1\\xd7\\x67\\xc1\\x77\\xa6\\x26\\xc4\\x52\\x7a\\x81\\x54\\xb5\\x72\\x92\\x18\\x6b\\x04\\x4c\\xbf\\x92\\x89\\x42\\x53\\xb0\\x0f\\xd9\\x34\\x3f\\x9e\\x69\\x7b\\x14\\x12\\xeb\\xa4\\x35\\x97\\xeb\\x72\\xa6\\x69\\xaa\\xa2\\xd7\\x7e\\xac\\xb9\\x68\\xc2\\x0f\\xe1\\x95\\x05\\xa3\\x80\\x74\\x15\\x86\\x21\\xb6\\x06\\xf7\\x7d\\x97\\xbc\\x6e\\xbe\\x50\\xe7\\x58\\x92\\x93\\xdb\\x27\\xfc\\x7d\\xfe\\x63\\x1a\\x4b\\xee\\x83\\xb2\\x26\\x82\\xa7\\x73\\x28\\xc3\\x6d\\x9d\\x7d\\x1d\\x89\\x1d\\x65\\x21\\x7c\\xc4\\x78\\x64\\xf6\\x80\\xdc\\x8b\\x5f\\xd1\\xa0\\x1a\\x0f\\x7c\\x34\\x43\\x0f\\x77\\x06\\x0b\\x69\\x1a\\x1a\\xd2\\x13\\xd2\\x28\\x68\\xe6\\x1b\\xbd\\x38\\xf4\\x3f\\x0c\\x8b\\x4d\\xa6\\x8a\\x58\\x31\\x86\\x66\\xc0\\x99\\x76\\x61\\x70\\xc2\\xdb\\x76\\x6a\\xaf\\x41\\x7f\\x55\\x6c\\xc9\\xa0\\xa3\\x93\\x4e\\x9f\\xce\\xf1\"},\n{{0x4d,0xd3,0xb4,0x78,0xeb,0xdc,0x59,0x47,0x2b,0xab,0x14,0xa8,0xcd,0xd0,0xc2,0xfd,0xac,0x57,0x23,0xee,0x04,0xdd,0x89,0x17,0xc7,0xcf,0xe7,0xa5,0x36,0x48,0x5c,0x77,},{0x5b,0xcc,0xb3,0x7e,0x68,0xc2,0x34,0xbe,0xad,0x49,0x33,0x7d,0xe2,0x08,0xaf,0xba,0xf6,0x11,0x81,0x1d,0x96,0x58,0x59,0xa0,0x6d,0x31,0x30,0x12,0x47,0xd6,0x6a,0xcf,},{0x57,0x88,0xe7,0x9e,0x84,0x3b,0xde,0x9e,0xf1,0x1a,0x9d,0xfa,0xc9,0x70,0x19,0x6a,0x56,0x7c,0x63,0x08,0xc3,0x48,0xe5,0x17,0x4b,0x38,0x77,0x95,0x04,0x6d,0x59,0x0a,0x47,0x49,0x1f,0xd7,0x1d,0x97,0xae,0xaa,0x78,0xc1,0x61,0x59,0x71,0xb8,0x34,0x90,0xe8,0x59,0x28,0x20,0xf9,0x59,0x2a,0xc7,0x62,0x69,0xb9,0xd2,0xba,0x70,0x29,0x01,},\"\\x1c\\xdb\\xd2\\x85\\x56\\xec\\x44\\xe8\\x70\\x5a\\xfd\\xa9\\x2b\\xd5\\xa5\\x3f\\x95\\xd8\\xfe\\x8b\\x0f\\xfe\\x46\\x33\\x73\\x63\\x33\\x16\\xc5\\x22\\x74\\xc1\\x1e\\xdc\\xd6\\x15\\x51\\xe3\\x19\\x9e\\x49\\x4d\\xff\\x6d\\x90\\x6a\\x73\\x9e\\x7b\\x32\\x43\\x03\\xfc\\x47\\x82\\x7e\\x56\\xde\\xf0\\xbd\\xcc\\x46\\xb8\\x16\\x01\\x7c\\x71\\x23\\x05\\x37\\x02\\x63\\xba\\xbd\\x2c\\x71\\xbe\\x47\\x8f\\x41\\xce\\x30\\xb1\\xdf\\x63\\xbe\\xdd\\x3b\\x2e\\x6a\\x51\\x9c\\x53\\xdf\\x51\\x58\\x52\\xc4\\x13\\x7b\\xc1\\xac\\xa4\\x9b\\xf4\\xc4\\x63\\x1f\\xd6\\x56\\x46\\x57\\xd1\\x1c\\xd8\\x3e\\xa7\\x3c\\xc3\\xd0\\xcf\\x9e\\x3b\\x3c\\x3e\\x7c\\xa9\\x9b\\x4f\\x12\\xa9\\xc9\\xb6\\x7c\\x87\\x98\\x14\\x8e\\x0a\\x0d\\xc1\\xef\\x8b\\xf5\\x86\\x42\\xa1\\x4f\\x97\\xa5\\x72\\x13\\x55\\x14\\xc1\\x0b\\x19\\xaa\\xbe\\xc2\\x5a\\x9c\\x6b\\x35\\xaa\\x40\\x34\\xa5\\x7a\\xae\\x1b\\x6d\\x05\\xbd\\xe2\\xb6\\x33\\x0f\\x25\\x1d\\x78\\xdb\\x09\\x93\\xf0\\xca\\x4c\\x26\\x38\\x6e\\x34\\x89\\xa2\\x09\\x28\\x33\\xb8\\xac\\xbb\\xc4\\xf4\\x91\\x7f\\xd3\\x09\\x3d\\xf5\\x82\\xff\\xf7\\x1e\\xce\\x21\\x9d\\x36\\x72\\x45\\x55\\x82\\x60\\x9c\\x0d\\xb8\\xd9\\x6a\\x70\\xfc\\x8a\\xed\\x67\\x98\\xde\\x54\\xbf\\xb2\\xb3\\xee\\x6c\\x5d\\x32\\x8d\\xb1\\x63\\x59\\x3f\\x58\\x01\\x9f\\x38\\xf3\\x39\\xfd\\x37\\x53\\xf8\\x96\\xa4\\xa2\\xcc\\xa8\\xc1\\x40\\x0a\\x77\\xea\\x39\\x19\\x35\\xf3\\x4e\\x26\\x39\\xc5\\x60\\x86\\x08\\x10\\xbb\\xbe\\x4b\\xe1\\xd1\\x6e\\x01\\x2c\\x11\\x49\\x0a\\xa8\\x4f\\x29\\x64\\xc8\\x77\\xc2\\x93\\xb3\\x00\\xf4\\x3d\\x37\\x9f\\x3e\\xba\\x9a\\xf3\\x91\\xde\\xe5\\x10\\x85\\x6a\\x4d\\xdc\\xf7\\x6e\\x0a\\x0a\\xe0\\x6a\\x6a\\x7c\\x0f\\x9c\\x5e\\x3f\\xa1\\xb8\\x35\\x4f\\xe8\\x97\\x7b\\x4e\\xa3\\xb2\\x06\\x61\\x49\\x1f\\xa4\\x61\\x3b\\xa6\\x2f\\x55\\x6d\\x5d\\x5d\\xa8\\x21\\x3d\\x01\\x21\\xde\\x2c\\x87\\x25\\xdf\\x0a\\xae\\x04\\x8a\\xc8\\x91\\xab\\xbc\\x06\\xbd\\xce\\xf3\\xc3\\xef\\xfd\\xf5\\xa3\\x17\\x49\\x47\\x6f\\x81\\x4d\\xb9\\x45\\x79\\x45\\xf0\\xd9\\x1e\\x14\\x08\\x00\\x56\\xbe\\x92\\x1a\\x16\\xaa\\x96\\x4a\\x92\\x98\\x22\\x1b\\x15\\x75\\x94\\x97\\x3e\\x32\\x96\\x99\\x93\\x31\\x0c\\x87\\x07\\xe1\\x9f\\x31\\x43\\xab\\xc4\\xfd\\xa7\\xc8\\xad\\x01\\x60\\xac\\xf0\\x31\\xab\\xa6\\x52\\x80\\x1a\\xa8\\x1a\\x01\\x6b\\x31\\x37\\x03\\x9e\\x27\\xd6\\x73\\x8d\\x02\\x80\\x0a\\x93\\xa8\\x6f\\x9f\\x55\\x85\\xc5\\x18\\xdf\\xa9\\xe7\\xd8\\xac\\x72\\x7f\\x37\\x43\\x7e\\x56\\xd2\\x78\\x83\\x86\\xe1\\x16\\x53\\xa0\\x4e\\x16\\x51\\x69\\xf9\\x03\\x97\\x2a\\x01\\x48\\x47\\x51\\xe7\\xcb\\x38\\x63\\x25\\x90\\xec\\x80\\xd5\\xfc\\xe4\\x54\\x16\\x01\\xa0\\xe0\\x95\\x78\\x5a\\x9e\\xe8\\xd3\\x59\\xed\\xf2\\x6b\\x99\\x46\\xe7\\x98\\xda\\x59\\x98\\xcb\\xb7\\x36\\xf9\\x4e\\xb7\\x13\\x46\\x3f\\x79\\xf5\\x61\\x75\\x9b\\xbc\\xb4\\xc4\\xac\\x69\\x3c\\xab\\xf2\\xe1\\xe0\\x36\\xb2\\xd0\\xb0\\x87\\x9a\"},\n{{0x07,0x4d,0x92,0x18,0xc1,0x21,0x7e,0x75,0x82,0x3c,0x90,0xe0,0x10,0x48,0x4c,0x2a,0xdb,0x88,0xec,0xcc,0xd2,0xbd,0xf0,0x12,0x0a,0xa3,0xed,0xff,0xcf,0xcb,0xd4,0xbf,},{0x37,0x35,0xad,0x19,0x19,0x03,0x3d,0x16,0x17,0xb8,0x5b,0xda,0x04,0xb1,0x61,0x21,0xda,0x1d,0x86,0x1b,0x40,0x41,0x54,0xfa,0x96,0x1d,0x49,0x46,0xe5,0x5e,0xcd,0x83,},{0xb1,0xf7,0x1c,0x3b,0xd1,0xb6,0xbe,0xc4,0x33,0x37,0xe2,0x6d,0xee,0x65,0x5a,0x8d,0x5f,0x4a,0x8d,0xad,0x84,0xa5,0x11,0x84,0xb7,0x75,0xb6,0x86,0xfa,0xd3,0x1d,0x80,0x29,0xe3,0x87,0x69,0x27,0xf9,0x57,0x6e,0x90,0xc3,0x62,0x48,0x75,0xfc,0x00,0x29,0xa5,0xc1,0x0a,0x8a,0x0a,0xf7,0x5d,0x7a,0x88,0x0c,0x68,0x44,0xa4,0xa8,0x3a,0x00,},\"\\x6b\\x5a\\xa4\\x0e\\x91\\x67\\xbf\\xdb\\x84\\x7d\\xaa\\x7d\\x27\\x86\\xe2\\x8e\\x75\\x33\\xe1\\xd6\\xac\\x53\\xbe\\xb6\\xf6\\x9b\\x59\\x53\\x79\\x5a\\x2b\\xf5\\x9b\\xbf\\x7d\\x14\\x19\\x26\\x96\\x8f\\x50\\x96\\x9b\\xad\\x74\\x2a\\x4f\\xb5\\x79\\xd3\\x25\\x0f\\xb1\\xbe\\x4c\\x57\\xeb\\xf4\\xf9\\x11\\x2c\\x70\\xcd\\x9f\\x72\\xa0\\x0d\\xb1\\xc8\\x89\\x6f\\xe2\\xb5\\xbd\\xa7\\xc7\\x03\\x0f\\x49\\x7c\\x0b\\x00\\x1e\\xa2\\x5b\\xa0\\xd4\\x47\\xf0\\x8c\\x36\\xdb\\x8b\\x90\\x7c\\x2f\\x2a\\xbb\\xbb\\x62\\x0d\\x3e\\x8a\\x2c\\x66\\xe4\\x17\\x12\\x85\\xad\\xca\\xad\\xd1\\xc1\\x4f\\xe2\\x39\\xbc\\x59\\x5f\\x09\\x83\\x96\\xaa\\x87\\x80\\xff\\xb8\\x0f\\xe1\\x44\\x6a\\x07\\x00\\x1e\\xc2\\x34\\xd8\\x2a\\xbd\\xcd\\x81\\x00\\x79\\x39\\x15\\xb0\\xb3\\xf8\\x0d\\x84\\xe2\\x0e\\x51\\xea\\xbc\\x79\\x78\\x06\\xf3\\xbe\\x81\\x08\\xa4\\xf4\\x37\\x55\\x0b\\x06\\x69\\x40\\x50\\xa8\\x29\\x31\\xac\\x40\\xc0\\xa4\\x89\\x77\\xed\\xf6\\xce\\xd2\\x42\\x8d\\x7c\\xfe\\xa8\\x20\\x55\\x06\\xde\\x86\\x40\\x80\\x65\\xd1\\xa1\\x98\\x70\\xfa\\x33\\xa7\\x08\\x10\\x37\\xb3\\xee\\x44\\x91\\xb6\\xe7\\xf3\\xd1\\x0b\\x14\\xa3\\x0c\\x20\\x91\\x59\\xa1\\xc8\\x12\\x31\\xa3\\x5f\\x03\\x65\\xb4\\x7d\\x3e\\x0d\\xa0\\x4a\\x32\\xc9\\x5d\\x98\\x33\\x3c\\x44\\xf5\\x72\\xcd\\xaa\\xa9\\x05\\xd0\\x69\\x19\\x7f\\x6e\\x86\\x1b\\x5d\\xfc\\xdf\\xb9\\xdb\\x6c\\x7b\\x0d\\x0c\\xb0\\x0f\\x37\\xc9\\x16\\xa1\\xc4\\xc0\\xb8\\x98\\x5b\\x09\\xf3\\x34\\x09\\x5e\\x12\\x83\\xed\\xfd\\xd4\\xe6\\x2a\\x29\\x41\\x09\\x9a\\x2b\\x69\\x36\\x96\\x60\\x4d\\x99\\x43\\x11\\xe3\\xd5\\xf6\\x10\\x66\\x83\\xe1\\xd7\\xa1\\xc7\\xe5\\x3d\\xf7\\xb7\\x90\\x94\\x7a\\x9a\\x80\\x1a\\x0c\\xcd\\x48\\x43\\x95\\xf6\\xcb\\xfd\\x9c\\xa4\\xd9\\x80\\x4f\\x18\\xd5\\x2b\\xb0\\xf9\\x46\\xd1\\xa8\\x9f\\x97\\xa6\\xfb\\x06\\x80\\xa8\\xc4\\xc0\\x57\\xb6\\x06\\x2b\\x2b\\x9d\\xe7\\xc0\\x37\\x48\\x79\\xb8\\xa6\\xa6\\xd2\\xc1\\x0a\\xef\\x78\\x05\\x08\\xeb\\x28\\xbb\\x56\\x9a\\x08\\x35\\x09\\x44\\xc8\\x2f\\x6e\\xf2\\x8d\\xb2\\x30\\x4d\\xb6\\x97\\xc3\\xae\\x1a\\xf4\\x3a\\x50\\x0b\\x0b\\x97\\x48\\x03\\xe9\\xf4\\x6e\\xa2\\xa0\\x2e\\x85\\xed\\x27\\xdd\\xa6\\x16\\xd2\\x4d\\x6d\\xb3\\xcc\\x4f\\x5a\\xed\\x82\\x40\\xb1\\xae\\xa3\\xdc\\xf6\\x9d\\xee\\x5f\\x14\\xf9\\x5e\\x6e\\x72\\x98\\x7b\\xbe\\x61\\x89\\xbc\\x20\\x45\\xf0\\xd7\\x83\\xa7\\xb4\\x7b\\xfc\\x19\\x83\\x0b\\xc7\\xf4\\xe7\\x98\\xab\\xe9\\x02\\x45\\xfb\\xd4\\x3f\\x37\\xc3\\xf0\\x36\\xd1\\xcb\\xf1\\xe7\\x3d\\xcb\\x1d\\x9d\\xaa\\x87\\x37\\x9b\\x11\\x06\\x97\\x34\\x81\\xa2\\x15\\xc1\\xf4\\xf4\\x6c\\x16\\x03\\xa5\\xd5\\xcd\\x97\\xb7\\x07\\x6f\\x1f\\x5d\\xc7\\x89\\xaa\\x6a\\x71\\xe7\\x2e\\xf5\\x4e\\xd3\\x28\\xa4\\xab\\x64\\x34\\x05\\x39\\xff\\xd1\\x64\\xd0\\xec\\x64\\x5f\\x32\\x2d\\x1b\\xc3\\x71\\x12\\xdc\\x08\\xd8\\xc8\\x07\\x9d\\x19\\xd3\\x7a\\xbb\\x23\\x53\\xf4\\x8b\\x5c\\x49\\x2f\\x80\\x6e\\xd2\"},\n{{0xd2,0xea,0x2d,0xff,0x7a,0xf0,0xba,0x2a,0x6b,0xed,0x7f,0x6c,0xc6,0x8c,0x0d,0xf6,0x64,0xa6,0xb1,0x0c,0xe8,0x01,0xc4,0x2e,0xd5,0xbb,0xe6,0x17,0xbc,0xc8,0xb8,0x4a,},{0xab,0x44,0x70,0x63,0x44,0x02,0x6e,0xd3,0x5e,0x21,0x98,0x29,0x64,0xf7,0xb4,0xdb,0xbb,0xe2,0x07,0xfd,0x27,0xc4,0x67,0x99,0x70,0x1c,0x19,0xa4,0xd8,0x8d,0x1d,0x72,},{0x9a,0xbd,0xb9,0xdd,0x2a,0xb7,0x7b,0x6f,0x5e,0x1b,0x91,0xba,0x0b,0x61,0x3f,0x5f,0x36,0x0e,0xfb,0x50,0x0d,0x3f,0xe9,0x92,0x90,0xef,0x7c,0xa1,0x4b,0xd2,0xb3,0x30,0xf4,0x05,0xa4,0xf7,0xdc,0xda,0xef,0x49,0x23,0xd3,0x11,0x1d,0x40,0xbf,0x03,0x20,0x35,0x33,0x86,0xf6,0x34,0xb4,0x0d,0xe6,0xf0,0x4d,0xe9,0x19,0x0a,0xd5,0x1c,0x08,},\"\\x03\\xab\\x5d\\xae\\xbc\\x6e\\x70\\xd3\\x52\\x97\\x79\\x32\\xa0\\x31\\x07\\x87\\x9b\\xd5\\x5d\\xaf\\xd0\\xc6\\xba\\x7a\\xd9\\x69\\x7a\\x17\\xb1\\x27\\xb3\\xa7\\x4a\\x3e\\xae\\xba\\xbd\\x0f\\x8e\\xee\\xbf\\xc0\\x48\\x3d\\x63\\xfe\\xdd\\xe5\\x2d\\xeb\\x46\\xa3\\x75\\x24\\x49\\xc9\\xc4\\x49\\x5c\\x51\\xa1\\xc9\\x1f\\x57\\xe3\\xad\\x2e\\x6d\\x01\\xa1\\x3d\\x0c\\x47\\x0c\\x52\\x91\\xb8\\xe9\\x12\\x28\\x83\\x40\\x97\\x0f\\xbb\\x85\\x78\\x7b\\x8b\\x37\\x6d\\x72\\x17\\x52\\x50\\xe8\\xcd\\x90\\xc0\\x78\\x88\\xbf\\xef\\x5e\\xbf\\x50\\x86\\xc8\\xff\\x2a\\xbc\\xdd\\x12\\xd2\\x14\\xb9\\xc4\\x5d\\x12\\x08\\x73\\xb4\\x60\\x2e\\x57\\xa6\\xaa\\xb0\\xb8\\x28\\xd1\\x08\\x4d\\xff\\xaa\\x36\\x51\\xee\\x35\\x66\\x26\\x95\\xb7\\xf3\\x43\\x3f\\x4a\\xb5\\x30\\xc2\\x9a\\xc6\\xcc\\x5b\\xb4\\x3e\\xcc\\xd1\\xb6\\x89\\x8b\\x9e\\xf7\\xae\\xc6\\xd5\\xae\\xc6\\x8d\\x5c\\x11\\x14\\xbb\\x5d\\xf7\\x82\\x09\\x66\\x59\\x4c\\x99\\x4d\\x64\\x08\\x91\\xb8\\xf2\\xdc\\x5d\\x25\\x63\\x8d\\xe4\\x35\\x49\\xd8\\x6d\\x34\\x30\\x6f\\xf3\\xf5\\x74\\x57\\x51\\x16\\x40\\x5b\\x9e\\x8e\\x28\\x6e\\xe0\\xcd\\x97\\x8a\\x76\\x00\\x2c\\x44\\x35\\xfe\\xaa\\xc6\\xe8\\x4e\\xae\\x16\\x54\\xf3\\x39\\xa5\\x67\\xd8\\xd0\\x4f\\xcf\\xa3\\xeb\\x6a\\x04\\xb9\\xad\\xc6\\x66\\x02\\x13\\x00\\xe9\\xee\\x59\\x72\\xb3\\xdf\\x5d\\x4d\\x0d\\xd4\\xbf\\x79\\x21\\xdc\\x98\\xde\\x82\\xce\\xf2\\xd1\\xb1\\xd6\\x1b\\x79\\x7f\\xc9\\x96\\x8e\\x11\\x84\\x84\\xc4\\x13\\x42\\x41\\x6d\\xdc\\x6a\\xdc\\x4e\\xe5\\xd6\\x87\\xd9\\x4a\\x40\\xce\\x57\\x2f\\x42\\xa2\\x04\\x86\\x68\\xc1\\x75\\xcf\\x7b\\x1f\\x24\\xc4\\xef\\xd0\\x20\\x55\\x4f\\xc6\\xf6\\x42\\xe1\\x4a\\x57\\xba\\xec\\x23\\xe9\\x5c\\x25\\x14\\x30\\x6d\\x0a\\x6d\\x33\\x64\\x88\\x41\\x49\\x7e\\xac\\x48\\xea\\xbd\\x96\\xd0\\x47\\x31\\xba\\xb0\\x8b\\xf5\\xea\\x9d\\x43\\xe0\\xcf\\x9a\\x37\\xfa\\xaf\\xa7\\x32\\x86\\x9d\\x68\\xe7\\xd5\\xfe\\x69\\x54\\xf8\\xa3\\x19\\xef\\x55\\xda\\x1e\\x17\\x8e\\x43\\xe8\\x4a\\x3b\\x9a\\xa3\\xad\\x00\\xc2\\x9b\\x1d\\x16\\x11\\x63\\xdf\\x4b\\x79\\xf2\\x88\\xe9\\x39\\x1d\\x70\\xa2\\xf8\\x81\\x3d\\x66\\x62\\x2e\\x8a\\xc3\\x33\\xfa\\x6a\\xa5\\x31\\x1e\\xab\\xec\\x38\\x3b\\xa4\\xcc\\x12\\x28\\x15\\xde\\x00\\x88\\x77\\xef\\xbe\\x6e\\x12\\xc3\\x22\\xc9\\x75\\x43\\x4a\\xfa\\xd1\\x73\\xeb\\xe2\\x42\\x03\\xd9\\x16\\xd5\\x75\\x78\\xbd\\x2b\\xca\\xcc\\x78\\xf6\\xe2\\x56\\x45\\x13\\xf8\\xd1\\x13\\xa8\\x33\\xc2\\xc2\\x26\\xeb\\x97\\xba\\x2e\\x23\\x36\\x1a\\x5d\\x02\\x66\\x4a\\xb3\\x77\\xf9\\x64\\xc4\\x30\\x0b\\xe2\\xd7\\x7b\\x62\\xd9\\x24\\x08\\x23\\xa0\\x98\\x84\\xdf\\x30\\x7e\\xff\\x3b\\xe5\\x66\\x4d\\x72\\xd1\\x1a\\xd5\\x13\\xe1\\xbc\\x56\\x10\\xdb\\xfd\\x10\\x09\\xdb\\x39\\xf0\\xcb\\xfe\\x47\\x05\\x55\\xec\\x1b\\x56\\xb8\\x71\\x67\\x07\\x93\\xd3\\xb7\\x04\\xfb\\x06\\xee\\x95\\x0b\\x1a\\xd2\\xa4\\xd7\\x29\\x7c\\xa5\\x8b\\xba\\xd8\\x10\\xc3\\xfa\\xd4\"},\n{{0x7a,0x60,0xcd,0xf1,0x87,0x04,0x60,0xde,0x8a,0xe7,0x78,0x11,0x76,0xd5,0x12,0x7e,0x71,0x20,0x7f,0xaf,0x2f,0x21,0x0b,0xd4,0xdc,0x54,0x73,0x85,0xb6,0x67,0xf2,0xf2,},{0xea,0xd6,0x7a,0x9c,0xf3,0x4d,0x0f,0xf1,0x4e,0x79,0xaf,0xa4,0x6f,0x2d,0xc9,0x96,0xe9,0xac,0x0e,0x3e,0x07,0x63,0x22,0xfb,0xb4,0x00,0x97,0x67,0xb1,0x33,0xf0,0x1b,},{0xb2,0xe0,0x81,0x42,0xbd,0xd6,0x2b,0x78,0x65,0x92,0xc0,0x91,0xf5,0xfe,0x6a,0x9b,0x7f,0x30,0xce,0x13,0x4c,0x3b,0x23,0x6f,0xbc,0x6d,0xfe,0x67,0x34,0xf8,0x82,0x70,0xac,0x58,0xf6,0xd7,0x4b,0x4f,0xd9,0x9c,0x22,0x45,0x1c,0xa4,0x65,0xa4,0x2c,0x00,0x6d,0xb2,0x5a,0xf2,0x15,0xed,0x24,0x1a,0xf1,0x18,0x96,0x27,0xc6,0x05,0x0f,0x00,},\"\\x9d\\xc0\\x23\\xa5\\x25\\xd0\\x1b\\xa3\\x51\\x37\\x98\\xb7\\x38\\xc7\\x91\\x62\\x92\\x6e\\xbc\\xcc\\x0a\\xdf\\x1e\\x57\\xac\\x47\\xc2\\x0d\\xea\\x6c\\xe1\\x37\\x5c\\x3d\\x2a\\xaa\\x17\\x33\\xb7\\xf0\\xc3\\xbd\\x94\\x5c\\x33\\x5f\\xf3\\x57\\x61\\x12\\xbb\\xdc\\x10\\xb6\\x78\\x3b\\xa6\\x54\\xe8\\xc6\\x10\\x47\\xf2\\x77\\x3a\\xa2\\x29\\xbf\\x84\\x69\\x22\\xa8\\x9c\\x6a\\x73\\xd5\\xf1\\x05\\x1e\\x8d\\x96\\xed\\x36\\xd7\\xd6\\x74\\x7e\\x06\\x3a\\x7a\\xc6\\x02\\xf1\\x9f\\xc5\\x2e\\x02\\x1a\\x4b\\xbc\\x28\\xb0\\x35\\x14\\xfb\\xd5\\x1c\\x7b\\x3f\\xd6\\x59\\xf1\\x2d\\x54\\x7d\\x05\\x92\\xdd\\x09\\xf8\\x73\\xc9\\xec\\xc6\\x43\\x9c\\x7e\\x93\\x1a\\xd0\\xe4\\x85\\x6b\\xe3\\x1c\\x60\\x5d\\xef\\x2e\\xd9\\xb5\\xd1\\x3c\\x59\\x42\\xb2\\xf3\\x25\\x39\\x7d\\xac\\x6c\\x97\\x60\\xe9\\xb1\\xbb\\x0c\\x06\\xf7\\x13\\xcb\\x92\\x0c\\x23\\x4b\\xcc\\xfe\\xe9\\xf0\\xb8\\x5d\\xd0\\x20\\xf7\\x98\\x8f\\x3b\\xe1\\xcc\\x66\\xe9\\xe5\\x1b\\xab\\xe2\\xfe\\xe2\\x37\\xeb\\x84\\xec\\x7e\\xff\\x94\\x09\\xaa\\x91\\xc1\\x94\\xe3\\x0d\\xb1\\xe0\\x65\\x01\\x59\\x55\\xde\\x97\\x46\\xbb\\xa0\\x3f\\x7e\\xdf\\x9a\\x58\\x75\\x12\\x40\\x9a\\x41\\x61\\xfa\\x77\\xea\\x62\\xcc\\xf4\\x31\\x60\\x2d\\xcd\\xcf\\x36\\x5e\\xd6\\xbf\\x0a\\xed\\xdd\\x32\\xf7\\xc8\\x44\\xe3\\xa3\\x4d\\x26\\x6e\\x28\\x38\\x2f\\x40\\x62\\xfd\\x4d\\x6f\\x82\\x14\\x25\\x21\\x04\\xd6\\x43\\xa9\\xbf\\xd8\\x07\\x17\\x16\\x37\\x1c\\xcb\\xb5\\x4c\\x8c\\xc8\\xdb\\x79\\xad\\xd6\\x5b\\xcb\\xce\\xa0\\xd0\\x80\\xd8\\x40\\x28\\x03\\xfe\\x23\\x2d\\xf7\\x0f\\x76\\x57\\x72\\x47\\xa6\\x3d\\x55\\x83\\xbb\\xd5\\x64\\x27\\x67\\xbc\\x63\\xf3\\xc5\\xa7\\xbb\\x3a\\x47\\xeb\\x12\\x98\\x4e\\x45\\x41\\xf4\\x1f\\xdb\\x55\\x86\\x9a\\x08\\xfa\\xde\\x66\\xc2\\x0f\\x69\\xa5\\xa9\\xde\\x25\\xf6\\xb3\\x6b\\xa1\\x8a\\xce\\x5b\\x4a\\xc3\\x36\\xbb\\x2a\\x8e\\xbf\\x63\\x0a\\xd0\\x3e\\x8b\\xb8\\x73\\x1d\\x01\\xe8\\x4b\\x91\\xd0\\x24\\xd1\\x17\\x45\\x9a\\x74\\x89\\x2e\\x93\\xd5\\x3b\\x61\\xe6\\xb8\\x06\\x8e\\x4f\\x04\\xb4\\x18\\x1f\\x03\\x87\\xb4\\x56\\x7c\\xcd\\x45\\xe1\\xb8\\x71\\x8a\\x2d\\x7d\\x78\\x78\\x72\\xf3\\xdc\\xf8\\x7a\\x15\\x93\\x5a\\xd7\\xda\\xaa\\x74\\x4e\\xd6\\x8a\\x28\\x66\\x6a\\x51\\xa1\\x0d\\x39\\xfc\\x13\\x9c\\xdf\\xe9\\xa6\\x87\\x30\\x76\\xf7\\xc4\\x25\\x00\\x9c\\x38\\xfa\\xee\\x13\\x5e\\x51\\x32\\x07\\xb0\\x6e\\x7b\\xa3\\x56\\x85\\xf5\\x07\\x2d\\xa3\\x4b\\x60\\x45\\xb5\\x7c\\xd5\\xd1\\xb1\\xa1\\xfd\\xf0\\x17\\xb8\\xaa\\x8e\\xbd\\x27\\x52\\x2b\\xc9\\x5e\\x47\\x90\\x87\\x34\\xe4\\x17\\x22\\xa7\\x67\\x90\\x5c\\x5e\\xcc\\x30\\xc7\\x24\\x81\\xb6\\xc1\\x2b\\xf4\\xac\\xe9\\x4d\\x5b\\xb3\\xa3\\x15\\x56\\x91\\xb7\\x07\\x5b\\x40\\xeb\\xf5\\x96\\x8f\\xdd\\x90\\x3d\\x8f\\xd3\\xcc\\x50\\xb8\\xd6\\x46\\x48\\x59\\xb1\\x0f\\x75\\x51\\x32\\xc6\\xd9\\xb6\\xda\\xd1\\xd6\\xf1\\x4c\\x41\\x85\\xb2\\x64\\xd3\\x49\\x7a\\x4e\\x54\\x98\\x77\\xfe\\x94\\x6e\"},\n{{0x33,0x79,0xd2,0x5c,0x11,0x17,0xcf,0x80,0x2e,0xc7,0x9c,0x06,0x57,0x5d,0x18,0xe6,0xbe,0xce,0x4c,0x70,0x93,0xdd,0x43,0xfd,0xee,0x03,0x68,0x5c,0x70,0xb2,0xfa,0x9f,},{0x85,0x25,0x15,0x6f,0xe2,0x9f,0xc2,0xfb,0xf6,0x61,0xba,0x50,0x18,0x2b,0xe2,0x0c,0x89,0x98,0xd9,0x41,0x49,0x3d,0x59,0x33,0xdc,0xa4,0xd8,0xb4,0x1f,0xb4,0x42,0xd5,},{0x4c,0x36,0xbf,0xc8,0x1e,0xef,0x00,0xb9,0xcb,0x3a,0xb5,0x14,0xc6,0xd4,0x51,0xb9,0x93,0x36,0x1e,0x09,0xa4,0xbe,0x4b,0x50,0x40,0x92,0x6f,0xeb,0x0e,0x0d,0x9b,0x52,0xf0,0x3d,0xe4,0x68,0xe7,0xba,0xd8,0x3f,0x37,0x91,0x54,0xbf,0x2c,0x43,0x7a,0x71,0xf7,0x54,0xf3,0xf4,0x07,0x98,0xee,0xeb,0xd6,0x2e,0x55,0xf2,0xbe,0x77,0x14,0x03,},\"\\x7a\\xcd\\xb3\\x9f\\x12\\x26\\xbd\\x3a\\xbf\\xfa\\x50\\x35\\x0a\\x14\\x97\\xd7\\x61\\xf8\\xf0\\xaa\\xef\\xbf\\xbb\\xbb\\x92\\x5f\\xf5\\x63\\xe3\\x89\\x76\\xaa\\x17\\x2d\\x40\\x7b\\x61\\xff\\xdf\\xb1\\xcd\\x53\\x8a\\x4c\\xd0\\x00\\xb5\\x78\\x18\\xa0\\xbc\\x92\\xc0\\xe0\\xcd\\x0a\\x5a\\xbf\\xcf\\x57\\x83\\x00\\xf5\\xf4\\xe6\\xce\\xfa\\x26\\x72\\x75\\xd1\\x78\\x45\\xda\\x70\\x66\\xfd\\x4e\\x18\\x01\\x00\\x27\\x96\\x0c\\xd3\\x95\\xe6\\x82\\xad\\x71\\xaf\\x34\\x9b\\xbd\\xad\\x5e\\xba\\xa0\\xf1\\x1a\\x77\\x61\\xe1\\x9e\\xa1\\xbe\\xf6\\x61\\x07\\x43\\x16\\x4b\\x17\\x14\\x14\\x53\\xb4\\x72\\xae\\x2c\\x8f\\x36\\xce\\x6b\\x08\\x0f\\x1c\\x07\\x45\\x35\\x24\\x54\\xce\\x5a\\xea\\xe1\\x1c\\x9d\\x75\\xde\\x3c\\x08\\x00\\x42\\x65\\xfc\\x4c\\xa8\\x0d\\x33\\xb2\\x6e\\xae\\x14\\x00\\xdf\\xd8\\x97\\x7b\\xf7\\x23\\xa6\\x16\\xda\\xeb\\x6d\\x42\\x19\\x90\\x10\\xb7\\x3e\\x19\\x3a\\xb7\\x2a\\x58\\xbd\\xd2\\x48\\xa7\\xf4\\x11\\x1c\\xa5\\x0c\\x1d\\xe6\\x46\\xbf\\xea\\x7b\\x4d\\x5b\\xaf\\x0f\\x93\\xdd\\x97\\x3e\\xe9\\x36\\x49\\xe2\\x1e\\xc0\\xc6\\xc4\\xfc\\xca\\x8c\\xd6\\xff\\x69\\xdf\\x76\\x16\\x12\\x02\\x1d\\x85\\xff\\x1f\\xb2\\xa9\\x53\\x37\\xda\\x48\\x05\\xa7\\x6d\\x34\\x7e\\xe7\\x1e\\xf1\\x9c\\x0d\\xff\\xb5\\x9f\\x15\\xf6\\x50\\x29\\x3a\\xbb\\x97\\x21\\x05\\x3f\\x74\\x06\\x90\\x5a\\xe6\\x83\\xf9\\x6c\\x83\\xa3\\xa7\\x44\\x7b\\x1a\\xfb\\x14\\xe1\\x20\\x8c\\x63\\x9f\\x37\\xa9\\x75\\x0b\\xa2\\x1d\\xa5\\x55\\x2c\\xc2\\x04\\xea\\xc4\\x53\\xca\\x03\\x62\\x82\\xf7\\xe0\\x96\\x10\\x93\\xc3\\x9e\\xc1\\x18\\x13\\x8d\\xcf\\x71\\xcf\\x2d\\x28\\xfb\\x96\\xa2\\x49\\x62\\xb5\\x2d\\x33\\x93\\xf8\\x80\\x65\\x3b\\xcb\\xa2\\xc9\\xb9\\xd5\\x7b\\x77\\xc5\\x22\\xf4\\x21\\xfc\\xf5\\xad\\x75\\xfb\\xa9\\xcf\\x33\\x89\\xb1\\x23\\xaa\\x97\\x52\\x17\\x13\\xff\\xf8\\x84\\x67\\xde\\xb8\\xc8\\x99\\x1d\\x4b\\x57\\xc1\\x43\\x81\\x70\\x53\\x7c\\xb5\\x0c\\xdc\\xc6\\x57\\xe5\\x0e\\x5c\\x48\\x0e\\x12\\xc0\\xd4\\x49\\x39\\xb6\\x39\\x99\\x44\\xe7\\xc7\\x1e\\x18\\x6c\\x2a\\xbb\\x81\\xfc\\x57\\x34\\x88\\x36\\xd5\\xe5\\x7b\\x72\\xb2\\x24\\xa6\\xb7\\x1b\\x6c\\xaf\\x72\\x1a\\xca\\x73\\x47\\x8c\\xb6\\xcf\\x5f\\xb8\\x90\\x71\\xae\\x3a\\x39\\x82\\x02\\xdb\\xb3\\x8c\\x30\\x81\\x25\\x63\\xbb\\x9a\\x23\\x40\\x66\\x57\\xa9\\x56\\xd3\\x05\\xa3\\x44\\x9a\\x60\\xcc\\x86\\x41\\xb6\\x21\\x75\\xa7\\x17\\x0c\\x23\\xbd\\x5a\\x25\\xf0\\xf1\\x2e\\x15\\xa7\\xed\\x91\\xfa\\xda\\x6a\\x4a\\x2f\\x0e\\x7b\\x15\\x5a\\x3d\\x64\\x85\\xec\\x03\\xce\\x6e\\x34\\xdf\\x7e\\x21\\x62\\x40\\xbb\\x28\\xa2\\xdd\\x73\\x2f\\xf7\\x90\\xd2\\x28\\x6e\\x20\\x0b\\x33\\xc2\\x9a\\x31\\xa5\\xe1\\x9a\\xd2\\xcd\\x02\\x97\\x4b\\xad\\xc4\\xbc\\x22\\xde\\xb7\\x50\\x4c\\x15\\x24\\x1f\\xc1\\x06\\x0c\\x8a\\xce\\xf4\\xfb\\xb2\\x5e\\xc7\\x60\\x2f\\xce\\x36\\xa2\\x7b\\xb8\\x7b\\x6e\\x64\\x23\\xe6\\xb4\\xf6\\xe3\\x6f\\xc7\\x6d\\x12\\x5d\\xe6\\xbe\\x7a\\xef\\x5a\"},\n{{0xef,0x38,0xc3,0xfc,0x74,0xf0,0x54,0xae,0x43,0xe8,0xd2,0x9d,0x6b,0xa6,0xdc,0x80,0xb5,0xaf,0x84,0x82,0x70,0xd4,0xaf,0x58,0x84,0x4d,0x24,0xbc,0xf9,0x87,0x41,0x4e,},{0x0a,0xe1,0x47,0x8b,0x05,0xfb,0x32,0x99,0x65,0xea,0x0f,0xa9,0x28,0xdc,0xbe,0x81,0xa0,0xbd,0xbb,0x6f,0xf6,0x6c,0x81,0x16,0x71,0x63,0x5e,0x43,0x88,0x88,0x80,0x51,},{0x1d,0x3a,0xc6,0xb6,0xbf,0x18,0xab,0x53,0x09,0x14,0x87,0x99,0x48,0x5b,0x27,0x6d,0x20,0x40,0x1c,0x6a,0xf5,0xf9,0xb2,0xf6,0x03,0x23,0x95,0xa3,0xc2,0xf4,0xb6,0x73,0xb7,0x14,0x0c,0x07,0xcc,0x26,0xf4,0xfc,0x56,0xa5,0xee,0x00,0xb0,0x74,0x6b,0x2a,0x80,0xda,0x6f,0xda,0xd1,0x7e,0xdd,0x11,0x49,0x20,0x10,0x1d,0x2c,0x89,0xc3,0x0e,},\"\\xbf\\x29\\x0d\\xb3\\xdd\\xa8\\x76\\x39\\x37\\xae\\x4c\\x83\\x74\\x67\\x05\\x32\\x72\\x95\\xc2\\xc2\\x48\\x06\\x8f\\x5a\\xb8\\x5c\\x8b\\x5d\\x75\\x6f\\x4e\\x3e\\x34\\x06\\x2b\\x55\\x49\\x38\\x72\\x61\\x47\\x6b\\xcb\\xd1\\xe7\\x33\\x19\\x90\\xf1\\x19\\x10\\xd1\\x1f\\x94\\x60\\x7c\\x2b\\x71\\xf6\\x5b\\x77\\x1a\\xac\\xab\\xdc\\x10\\xf4\\x2a\\xe9\\x18\\xdd\\x25\\x94\\xac\\x71\\x05\\x1c\\x85\\xb3\\x30\\x77\\x9c\\x47\\xaf\\x00\\xa5\\xb9\\x81\\x91\\xb5\\x6c\\xbc\\xf7\\xef\\xe4\\x1a\\x27\\xe8\\x7c\\x67\\x71\\x68\\xc8\\xab\\xe9\\x49\\x6e\\xb2\\xe7\\xab\\xbd\\x0b\\x16\\x04\\x28\\x6e\\xd1\\xa1\\xb1\\x8d\\x26\\x4d\\x73\\x3d\\xe8\\x7d\\x0d\\x3f\\x80\\x55\\x52\\x8c\\x4d\\x42\\x6d\\x7f\\x8e\\x6e\\xd0\\x24\\xa7\\x41\\x40\\xab\\xd3\\x54\\x00\\x79\\x62\\xa2\\xa9\\x7a\\x5c\\x2f\\xf9\\x76\\x54\\x6a\\x8d\\x1a\\xc4\\x92\\x4c\\x09\\x22\\x3d\\x34\\x8d\\xdc\\xd8\\x71\\x0a\\x37\\x99\\xf9\\x1b\\xb8\\x70\\xb3\\xf4\\x6d\\x51\\xf1\\xe7\\xf6\\x89\\x2d\\x6b\\x08\\xb9\\x91\\x74\\x8a\\x03\\x7a\\x86\\x7e\\xcc\\x39\\xee\\x8d\\x64\\x62\\xa7\\x61\\x44\\x88\\xed\\xd3\\xc2\\xba\\x61\\x5c\\xa2\\xe3\\x78\\x54\\x88\\x94\\x41\\xb1\\x3d\\xc8\\x35\\xc3\\x6b\\x38\\x65\\x3f\\x65\\x98\\x61\\x6f\\x35\\x78\\x3e\\x2e\\x15\\x83\\x84\\xbb\\x93\\x1c\\x90\\x1b\\x70\\x3a\\xcb\\x39\\x91\\xfb\\x7a\\xa5\\xba\\x69\\xd9\\xa5\\xbd\\x05\\x70\\x24\\x29\\x61\\xa7\\x1a\\x52\\x47\\x03\\x15\\xe9\\x82\\xe3\\x41\\xa6\\x1c\\x64\\xa6\\x19\\xbd\\x16\\xfe\\x81\\x19\\xaa\\xe0\\xd7\\x50\\x3c\\xe7\\xd7\\xe9\\x26\\x14\\x6b\\x91\\xc2\\x89\\x2f\\x13\\x16\\x69\\xd1\\xe3\\x9e\\x5b\\x75\\xe9\\xc7\\x24\\x52\\x61\\x80\\x99\\xa5\\x7d\\xc2\\xee\\x37\\x7b\\xe6\\x58\\x75\\xee\\x01\\xbb\\x88\\xed\\x52\\x6f\\xc3\\x94\\xe2\\xf5\\xc8\\x12\\x7a\\x5f\\x69\\x12\\x5e\\x67\\x38\\x5e\\xf9\\x4b\\x1f\\x33\\xad\\x52\\x62\\x9d\\x72\\x0e\\x31\\xc0\\x2a\\xe0\\xb5\\x82\\x33\\x9f\\xf0\\xf0\\xbb\\x07\\xff\\x2b\\x03\\x0f\\x48\\xfa\\x7b\\x69\\x27\\x16\\x50\\x1a\\xd7\\x77\\x3a\\xd3\\x15\\x12\\x04\\xa2\\xa5\\x40\\xfa\\x94\\x36\\xbd\\xd4\\x20\\x2a\\x15\\x73\\x09\\xec\\x36\\xce\\xcb\\xe5\\x8b\\x33\\xef\\xf5\\x57\\xfd\\x33\\xe0\\x3f\\xd3\\xeb\\x19\\x00\\x9b\\xd7\\xa2\\xde\\xa9\\xef\\xee\\xf8\\x78\\x55\\x67\\xaa\\xb2\\xa4\\xc9\\x8b\\xd1\\xf2\\xa8\\x10\\x11\\xb3\\x43\\xa9\\xf2\\x0c\\x44\\xc5\\x77\\xa4\\x52\\xfd\\x54\\xba\\x21\\x02\\x9d\\x47\\x06\\x81\\x3b\\x29\\x87\\xc7\\x6b\\xb2\\x42\\xab\\x26\\x20\\x84\\x3c\\x22\\x60\\xb6\\x69\\xad\\x35\\x8e\\xfe\\xe7\\xf9\\x83\\x0d\\xc9\\xc7\\xd4\\x78\\xa2\\xde\\x4a\\x2c\\xf8\\xc4\\x3d\\xa7\\x70\\xe2\\x88\\xe2\\xed\\xbb\\x6d\\x73\\xbc\\xf2\\xec\\xb0\\x23\\xde\\x6b\\x2d\\xcc\\x6b\\x16\\x6e\\x87\\xa3\\x85\\xeb\\x0a\\xdc\\x30\\x56\\x65\\xc5\\xbf\\xa5\\x7f\\x25\\x0f\\xe2\\x23\\xad\\x7f\\xf4\\x51\\x8d\\xe3\\x9c\\x79\\xe8\\x7d\\xc1\\x01\\xa9\\xfa\\xa6\\x82\\x1a\\x74\\x44\\x2b\\xfc\\xfd\\xf0\\xa9\\xe6\\x3a\\x50\\x9e\\x2a\\x2e\\x76\"},\n{{0x7e,0x7b,0x39,0xaf,0x69,0x38,0x0c,0xf4,0x46,0x60,0xe2,0xc1,0xff,0x30,0x83,0x34,0xe8,0x25,0x0f,0xee,0xb8,0x8b,0xe0,0xd4,0x3a,0xab,0xe5,0xe6,0x8b,0x8e,0xf1,0x71,},{0xcc,0xef,0x9d,0xae,0xd9,0x25,0x23,0x53,0x3d,0x4a,0x2d,0xab,0x6d,0x24,0x19,0xf6,0xd0,0x86,0x04,0xdb,0x64,0xce,0x37,0xe3,0x29,0x04,0xac,0x77,0xb9,0xb4,0xa0,0x1c,},{0x10,0x62,0xa2,0xdc,0x9c,0xd5,0x37,0x96,0x75,0xc0,0x4f,0x5e,0x21,0x33,0x8d,0xcf,0xb7,0x7d,0xfb,0xab,0xce,0xdd,0x62,0xb2,0x60,0x71,0x00,0xd7,0x64,0x9a,0x05,0xe8,0x08,0x71,0xe9,0x61,0x23,0x21,0x4f,0x80,0xf4,0xf7,0x3b,0x0d,0x9b,0x06,0xe2,0xd3,0x1f,0x56,0x11,0x9c,0xea,0x69,0xda,0x23,0x47,0xda,0x84,0xa2,0x75,0xb7,0xb2,0x07,},\"\\xd4\\xa3\\x97\\x6d\\xbf\\x83\\x20\\x18\\x56\\x67\\xb5\\xa8\\x23\\x66\\x40\\xf2\\xeb\\xc9\\xe4\\x5e\\x6d\\x5f\\x2a\\x8d\\x92\\x99\\x79\\x27\\xdd\\x9b\\xc5\\xdb\\x95\\xf4\\x46\\x34\\xbd\\x65\\x4e\\xef\\xec\\xe1\\x0d\\x99\\xd9\\x2b\\x46\\x71\\x57\\x91\\x64\\x50\\x04\\xac\\xcc\\x6d\\x14\\x0f\\x32\\xa1\\xc8\\x72\\xe5\\x4a\\xa9\\xa7\\x49\\x3a\\xf9\\x45\\x88\\xb7\\xbb\\x40\\x0d\\x94\\xd4\\x58\\xd4\\x32\\x92\\x30\\x7c\\x5a\\x1a\\x38\\x82\\xa1\\xc8\\xa6\\xa7\\x8d\\x9a\\x94\\x5f\\x79\\xd6\\x4b\\x32\\x94\\xa2\\x8c\\x3d\\x59\\xd8\\x20\\x22\\xb0\\x09\\xcc\\x4d\\x2d\\xa9\\x3a\\x16\\xb0\\x71\\xc9\\xab\\x8e\\xe9\\xa3\\x66\\x3d\\x72\\xed\\x34\\x4f\\x15\\x1d\\x68\\xc6\\x66\\xa4\\xb4\\x96\\x52\\xd9\\x7a\\x46\\xd1\\x42\\xa4\\x74\\x11\\x27\\xf3\\xc5\\x7f\\x15\\x51\\xc4\\x09\\x76\\xcd\\x13\\x81\\xa8\\x2a\\xea\\xe7\\xbc\\x5a\\xdb\\x39\\x87\\x20\\xeb\\x43\\x3f\\x08\\x99\\x48\\x7e\\xd2\\x37\\x84\\x46\\xb1\\xa8\\xdc\\x6a\\x33\\xfc\\xd4\\x53\\x7a\\x05\\xfb\\x60\\x3e\\xc0\\xa9\\x0a\\x27\\x53\\x23\\x00\\x24\\x2b\\x20\\x00\\x10\\x86\\x21\\xb6\\x5a\\xb0\\x00\\xbc\\x06\\x38\\x15\\x30\\xf6\\x90\\xd7\\xe5\\x6f\\x81\\x60\\x4d\\xac\\xff\\x19\\x10\\x71\\x50\\x40\\x41\\x0a\\xa1\\xf9\\x44\\xc9\\x2d\\xd9\\xbb\\xaa\\x5b\\xd0\\x8e\\xa0\\x0c\\x84\\x42\\xdf\\x94\\xf0\\x85\\xeb\\x3d\\xe9\\x73\\x35\\xb6\\x00\\x5e\\x6f\\x84\\xf8\\x23\\xd4\\x34\\x70\\xab\\x1c\\x67\\xda\\x12\\xad\\x44\\x99\\x36\\xc6\\xb5\\x5f\\x9f\\xfd\\x20\\x3d\\xfd\\x6e\\x3f\\x33\\x30\\x9e\\x8a\\x99\\x45\\xa5\\x93\\x20\\xe6\\x67\\x34\\xc7\\x9c\\x48\\x14\\xdb\\xa5\\xa1\\xc1\\x40\\x95\\xc6\\x29\\x25\\xa1\\xe1\\x73\\x3e\\xfd\\x94\\x81\\x7a\\x25\\xef\\x9e\\x47\\x9d\\xd9\\xcc\\xde\\x6c\\xa8\\xad\\xb7\\xa8\\x05\\x3c\\x1b\\x55\\x13\\x46\\x97\\x50\\x4a\\xf8\\x05\\x3d\\x59\\x5b\\x84\\x46\\x40\\xb6\\x1e\\x93\\x16\\x80\\x75\\x46\\x84\\x50\\xeb\\x5d\\xe0\\x35\\x86\\x97\\xc1\\x04\\xaf\\xa6\\xa3\\x79\\x6a\\x50\\x9c\\x26\\xb4\\xc2\\x77\\xc2\\x3f\\xff\\x42\\xdf\\x14\\x6d\\xe5\\x5e\\x95\\xd0\\xd4\\xb8\\x0a\\x7a\\xa1\\x77\\xd9\\x92\\x27\\xec\\xb2\\xa0\\x59\\x4d\\xee\\xde\\xbb\\x9c\\xaf\\xb1\\xa4\\x58\\xac\\xa8\\x07\\x2c\\xc7\\xd7\\x7c\\x71\\x75\\xf6\\x10\\xca\\x30\\x0e\\xfd\\x7a\\xf9\\x38\\x83\\x46\\x49\\x8c\\x22\\x99\\x15\\x64\\x50\\x0e\\x0b\\x0a\\xa4\\xd2\\x94\\x6f\\x18\\xe6\\xf5\\x37\\x5a\\x84\\x82\\x86\\xf3\\x69\\x54\\xc1\\xca\\x22\\x68\\x4c\\x69\\x28\\xc2\\xa2\\x5c\\x7f\\xe2\\x1a\\xba\\x4a\\x71\\x11\\xd7\\xe0\\x5b\\xc8\\xd7\\x0b\\x3d\\xcb\\x4f\\x6a\\xae\\xc0\\x64\\x84\\x5e\\xef\\x55\\x25\\xf8\\x50\\x24\\xc2\\x57\\x0f\\x3b\\x78\\x69\\x8c\\x4b\\xce\\xc0\\xd7\\x1a\\xad\\x53\\x78\\xd8\\x81\\x9e\\x1f\\xac\\x44\\xee\\x41\\x63\\x70\\x21\\x2d\\xba\\xaa\\xe5\\x4d\\x2a\\xf2\\x93\\x9b\\x82\\xcb\\xaa\\xe7\\xf4\\x2f\\xf4\\x85\\xd4\\x5b\\x3a\\xcc\\x21\\x09\\x0f\\x5b\\xa4\\x1e\\xc0\\xda\\x30\\x9e\\x52\\xef\\x28\\x38\\xd1\\xde\\x47\\x1e\\x0b\\x7c\\xf9\\x85\"},\n{{0xa9,0x04,0x8a,0xf0,0xc2,0x0a,0x12,0x5f,0x5d,0x39,0xc5,0x0f,0x22,0xb8,0x05,0xae,0x74,0x2c,0xf6,0x4f,0x1f,0xe8,0xdf,0xbe,0x8d,0xfd,0xaa,0x51,0x1a,0xaa,0x57,0x6f,},{0x15,0x86,0x55,0xdb,0x94,0xb1,0x5c,0xa7,0x29,0x83,0x87,0x7b,0x6d,0xb2,0x31,0xa5,0x84,0x3d,0xf5,0xdb,0xca,0x28,0x10,0xa7,0xe4,0x96,0xfb,0x59,0xab,0x71,0x04,0xca,},{0x18,0xa3,0x12,0xb2,0x0d,0x86,0xac,0x33,0x9a,0x58,0xef,0x2b,0x85,0x2d,0x46,0x7c,0x23,0xbb,0x2c,0xb1,0x22,0x7c,0xb1,0x53,0x38,0xaf,0x07,0xfd,0x04,0xb9,0xa7,0x11,0xe8,0x56,0xee,0x5b,0x2c,0x82,0xe3,0x66,0xc1,0x7f,0x86,0x17,0x13,0xd1,0x08,0x8c,0x1b,0x21,0x44,0xd1,0xc3,0x7d,0x05,0xbd,0xc0,0x0d,0x73,0x96,0x73,0x85,0x20,0x00,},\"\\x8e\\xef\\x2d\\x9f\\x5d\\x59\\x70\\x99\\x59\\xc9\\x24\\xf8\\x7c\\x22\\x78\\x97\\x67\\x39\\x3a\\x15\\x5d\\x5c\\x87\\xde\\x48\\x8c\\xef\\x50\\xb7\\xbf\\x7d\\xa8\\x70\\xe3\\xad\\xc3\\x00\\xae\\xe6\\x60\\x3b\\x2e\\xf0\\x87\\x64\\xd9\\x9d\\x9e\\x77\\x51\\xe5\\xdc\\xe9\\x2a\\xaa\\x71\\xaa\\x18\\xa6\\x9c\\xc8\\x23\\x13\\x4e\\x85\\x52\\xd9\\x59\\xa0\\xdb\\xb4\\x11\\x17\\xe0\\xa5\\x93\\xc3\\x18\\x33\\xb6\\xec\\x21\\x72\\xdd\\xaf\\xaf\\x78\\x48\\xdd\\xd1\\x8d\\x28\\xd0\\xd4\\xed\\x33\\x23\\x7e\\xc8\\x04\\xf6\\x59\\x38\\xae\\xd8\\xe8\\xa3\\x28\\x0d\\x42\\xe3\\x53\\xd0\\x1b\\xe0\\x18\\x7b\\x13\\x01\\xf8\\x3d\\x89\\x84\\x90\\x67\\xb0\\x4a\\x90\\x31\\xf7\\xe0\\xf3\\x3e\\x34\\x16\\x24\\x0c\\x53\\xd9\\x26\\x5e\\xd0\\x66\\x39\\x59\\x97\\x1f\\x41\\x7c\\xb5\\xf2\\x10\\xcd\\xc5\\xae\\xbc\\xb5\\xe1\\xdb\\x7d\\xfb\\x82\\xdf\\x43\\x58\\x76\\xa6\\xe9\\x8f\\x41\\x5b\\x0d\\xf8\\x69\\xf0\\xd8\\x85\\x15\\x35\\x37\\x56\\x45\\xee\\xf7\\x0f\\xae\\xc7\\x44\\xee\\x0d\\xc3\\xac\\xbc\\xb0\\x40\\xf6\\x8d\\x50\\x2c\\x2c\\x62\\xc8\\xdb\\x45\\xeb\\xe5\\x48\\x54\\xa4\\xb3\\x6f\\x43\\xfe\\xb4\\x9a\\x6d\\x1c\\x2c\\x2e\\xa7\\x99\\x14\\xa7\\xc2\\x3c\\x60\\xba\\xaa\\x67\\xcb\\x47\\xb2\\x17\\x8e\\x12\\xdc\\xe7\\x6b\\x00\\x4c\\x87\\xb7\\xb8\\x34\\x6e\\xfa\\xdf\\x38\\x0b\\x9e\\x1e\\x41\\xf6\\x31\\x48\\xda\\x51\\x78\\x1d\\x75\\xce\\xc0\\x40\\xe4\\x26\\x88\\x20\\x21\\x1f\\x3c\\x46\\x25\\x01\\xd8\\x08\\x99\\x89\\x4e\\x79\\xd6\\x18\\xde\\x42\\x46\\x1d\\x78\\x5a\\xea\\xce\\x53\\xae\\x14\\xb7\\x9d\\x33\\x50\\x1e\\xd5\\x62\\x9b\\xbd\\xd0\\x71\\x28\\x15\\x6d\\xb0\\x72\\x5f\\x5b\\x4b\\xed\\x59\\x3a\\x95\\x29\\x47\\x83\\x03\\x84\\xf6\\x1d\\xf0\\x0e\\xe0\\xaa\\x09\\x90\\x99\\xc3\\xcd\\x97\\x65\\xa9\\xc1\\xc7\\xe8\\xa6\\xa8\\x34\\x30\\xb8\\xd9\\x86\\x7c\\x8e\\x17\\x92\\x0a\\xd0\\xff\\x64\\xd8\\xcd\\x2f\\xf5\\xf1\\x14\\x38\\x8c\\xe6\\xd4\\x3e\\xec\\x17\\x15\\xd0\\x35\\xf0\\x22\\xfa\\x97\\x96\\x9e\\x1a\\x5d\\xd9\\xf5\\x8d\\x89\\x6b\\x17\\xc1\\x22\\x1c\\x9e\\x6c\\x85\\x55\\x59\\x72\\x35\\xee\\xda\\x6e\\xc4\\x1b\\x0c\\x11\\x76\\x12\\xb0\\x0c\\x5f\\x0e\\xd1\\x81\\x6b\\x05\\x73\\x63\\x58\\x27\\x07\\xa8\\xaa\\x0d\\x98\\xd4\\xd4\\xbe\\x5e\\x8f\\xa3\\x2d\\x6c\\x9d\\x27\\x82\\x21\\xef\\x30\\x67\\xb8\\xba\\x15\\x16\\xd9\\xe0\\x51\\xd2\\xf6\\x8b\\x7d\\x1b\\x15\\x1f\\x74\\xa3\\x53\\x4e\\x78\\x12\\xc0\\x51\\xe5\\xf2\\xb6\\x3b\\x30\\x35\\xf8\\xe5\\x70\\x3b\\x5f\\x68\\xfd\\x2d\\x65\\xbb\\x75\\x65\\xe8\\xaa\\x67\\xbf\\xd2\\xa1\\x2c\\xaf\\x0b\\xc5\\x48\\x11\\x97\\xa9\\xff\\x89\\xd7\\x7d\\xf7\\xa0\\xe9\\x65\\x5e\\xf0\\x29\\xb4\\x3d\\xd9\\x06\\xd0\\xb8\\x88\\xe3\\x13\\xae\\x9d\\x1c\\x7e\\x93\\x68\\xa0\\x13\\x52\\xd0\\x0c\\x66\\x80\\xdd\\x0f\\x1f\\x57\\x4a\\x58\\x77\\x34\\x8a\\x7e\\xa2\\xc0\\xb9\\xe8\\xe2\\x72\\x75\\x10\\xbf\\x0c\\x9e\\xf7\\x44\\xf3\\x69\\xeb\\x3c\\x6c\\x4f\\xc1\\x6a\\xde\\xb6\\xe1\\x94\\x5b\\xe8\\x28\\x7d\\x0f\\x30\"},\n{{0xf8,0xc9,0x18,0x3f,0x23,0x10,0x5f,0xad,0x0c,0x6e,0x51,0x03,0x35,0x8b,0x58,0x32,0x88,0xf9,0xff,0x6c,0x7d,0xfc,0x91,0x10,0x6d,0x07,0x98,0x7f,0xf6,0x9c,0xe1,0xeb,},{0x4c,0x79,0x62,0x8c,0x95,0x8c,0xde,0x0c,0xc3,0xcf,0x68,0x60,0x95,0xb8,0xa2,0xf4,0x4b,0x71,0x93,0xc6,0x16,0xf5,0x1b,0x21,0xb6,0x70,0xb0,0x38,0xce,0x6f,0x67,0xff,},{0xc6,0xa8,0xbc,0x7a,0x0d,0x5c,0x61,0x85,0xb6,0xec,0xd6,0x03,0x3e,0x42,0x32,0x1d,0x5c,0x87,0x1b,0xf8,0x89,0xbe,0x72,0xbd,0x54,0xcc,0x00,0x83,0xed,0x60,0xa4,0x70,0xb2,0xcc,0x0f,0xb4,0x68,0x2c,0x89,0x4c,0x75,0xb0,0xdf,0x95,0xf1,0xec,0xfb,0xba,0x2d,0x5a,0xce,0xf3,0xe1,0xaa,0xfe,0x54,0xb9,0xf7,0xe8,0x03,0xa1,0xd0,0x15,0x0a,},\"\\xb1\\xd6\\x05\\x95\\x32\\x3f\\xf3\\xc8\\x44\\x87\\x41\\x90\\xe1\\x83\\x6e\\x41\\x01\\x40\\x9c\\xbc\\xea\\xe2\\x8d\\x5d\\xa8\\x1f\\xad\\x29\\x8f\\xe4\\x7f\\x6b\\xdf\\x44\\x74\\x5b\\x7c\\xd0\\xd3\\x71\\x31\\xc3\\xec\\x36\\x5b\\x92\\xf5\\xa1\\xa6\\x9c\\x09\\xfe\\x2d\\x9e\\x81\\xda\\x10\\xcf\\x19\\xd8\\x5f\\xf5\\xff\\x26\\xf9\\xe7\\xdb\\x9f\\x07\\x93\\xb2\\x5a\\xb2\\x6e\\x6a\\x74\\xf4\\x4e\\xb8\\xc4\\xf0\\x78\\xeb\\x7a\\xd1\\x8e\\x65\\xa1\\x62\\x10\\xd5\\xc8\\x44\\xd3\\xce\\xf7\\x5f\\x1d\\xaf\\x44\\xee\\xe5\\x58\\xf9\\x0e\\x52\\x4a\\x03\\x2b\\x6c\\xae\\x6c\\x8d\\x23\\x36\\x7c\\x28\\xce\\x1c\\x75\\xfc\\x25\\xac\\x87\\x43\\x39\\x77\\xd5\\x97\\x53\\x3c\\x92\\xae\\x65\\xf2\\x91\\x3a\\x18\\x90\\x7a\\xc7\\xd9\\x54\\x3d\\xf2\\x41\\x27\\x74\\x39\\x43\\xfe\\xfd\\x9c\\xf8\\x3e\\xd8\\x33\\xf6\\x3e\\xc8\\x36\\x72\\x33\\xd8\\x97\\xbf\\xa1\\x2d\\x46\\x6d\\x2c\\x4a\\x9a\\xd7\\x0d\\x5a\\x67\\x2f\\xc1\\x07\\x75\\xea\\x2d\\x20\\x4e\\x63\\x6d\\xe7\\x01\\x07\\x88\\xda\\x27\\x1d\\xf0\\x38\\x81\\xa2\\x5c\\x8d\\xfa\\x5a\\xf7\\x3e\\xe5\\x59\\xf8\\x1b\\x52\\x9b\\x35\\xaa\\x12\\x7f\\xdc\\x0e\\xe8\\xfd\\x36\\x9c\\x7a\\x04\\x36\\x62\\x39\\x86\\xaa\\x64\\x07\\xfa\\x67\\xa1\\x42\\x0c\\x46\\xf3\\x21\\x1a\\xb8\\x4f\\x84\\x46\\x6d\\xd5\\x8b\\xb7\\x95\\x08\\xa1\\xfe\\xb0\\xa5\\xa5\\xdc\\x3b\\xb0\\xc1\\xb2\\x48\\x09\\x82\\x62\\xa0\\x64\\xf3\\x7b\\xb2\\xf0\\x19\\xe2\\x90\\xc6\\x0a\\xfa\\xa1\\x20\\x66\\x51\\xa2\\x69\\x7c\\xaa\\xcc\\x3e\\xcc\\x02\\xec\\xfc\\x07\\x7f\\x27\\x2e\\x8f\\x75\\xce\\xa7\\x1c\\x3b\\xc3\\x35\\x6d\\x2b\\x58\\x07\\x27\\x6f\\x19\\x55\\x00\\x1c\\xfe\\x10\\xa6\\x17\\x16\\xb4\\x08\\x2b\\xd6\\xf8\\x4c\\xae\\x4b\\xb0\\xd9\\xa4\\xb7\\x5a\\x4b\\x57\\x62\\xf8\\x10\\x79\\xf1\\x9d\\x7d\\x19\\xea\\xff\\x86\\x31\\xc9\\x24\\x88\\x5b\\xd3\\xa6\\x4e\\x12\\x9f\\x4c\\xf6\\xb7\\x9c\\x7a\\x98\\x29\\x66\\x55\\x11\\xe9\\xd8\\x5c\\x74\\x5e\\xb2\\x2c\\x1b\\x7c\\xb2\\xa1\\x7a\\x49\\xb6\\x28\\x5c\\xce\\x37\\xb3\\xde\\x41\\x59\\x40\\x32\\x83\\x23\\xef\\xe2\\x4a\\x1a\\x07\\xee\\x87\\x46\\x8f\\x65\\x10\\xe4\\x2d\\xd2\\x06\\xfe\\x7f\\x09\\xe3\\xd4\\x33\\xfb\\x52\\x15\\x6a\\xe3\\x48\\x38\\x31\\x15\\x64\\x88\\x63\\xe4\\x5b\\xf6\\xa3\\x71\\xb1\\x7e\\x70\\xe1\\x9f\\x96\\x27\\xd7\\xf0\\xa5\\x8b\\x95\\xc6\\xa4\\x78\\x8d\\x5f\\xd7\\x86\\x2f\\x16\\x12\\xc0\\x34\\x73\\x25\\xb7\\x97\\x65\\x1b\\xe3\\x0c\\x3e\\x1e\\x60\\xea\\x4a\\xe6\\x0b\\x57\\x45\\xa3\\x8b\\x6a\\x9d\\x4e\\xb4\\x93\\x5d\\x6f\\x3c\\xb8\\xd7\\x1a\\xd3\\xf3\\x9a\\xdd\\xa5\\xe4\\x2e\\x22\\x19\\xde\\x0d\\x38\\x19\\x09\\xc9\\xcd\\x31\\x7d\\xd4\\x37\\x94\\x21\\xa2\\xa8\\x42\\x68\\xa7\\xea\\x71\\x80\\xa6\\x4c\\x12\\x9b\\xe1\\xe5\\xe8\\xfc\\xbb\\xf5\\xed\\x65\\x9e\\x9f\\x7e\\x76\\x3c\\xe8\\x4f\\x63\\x0d\\x54\\x07\\x95\\x4f\\x9f\\x75\\x57\\x50\\xa6\\xdb\\xf9\\xf7\\x66\\x07\\x17\\xde\\x8e\\x2a\\xdc\\x1e\\x9a\\xc9\\xee\\x31\\x65\\x4d\\x18\\x37\\xce\\xe3\\x97\\x95\"},\n{{0x16,0x08,0x9a,0x1b,0x93,0x2f,0x8d,0x14,0x99,0x56,0x88,0xb4,0x8d,0xd8,0x41,0xed,0xae,0x3d,0xa5,0xcf,0xd2,0xcb,0x16,0x55,0x53,0x06,0xf3,0xfe,0x8b,0xd3,0xed,0xb9,},{0x9e,0xcd,0x9f,0xdd,0x7e,0x0b,0x92,0x3d,0xef,0xf5,0xd8,0x87,0xb2,0x42,0x58,0x5d,0x9d,0x41,0xcd,0x2c,0x7c,0x10,0xf9,0xc3,0x45,0xb3,0x9f,0x63,0x3f,0x4a,0xb9,0x03,},{0x78,0x78,0xab,0x74,0x1e,0xba,0xe2,0x74,0x7c,0x78,0x97,0xcb,0xb1,0xd1,0x05,0x48,0x2f,0x37,0xbe,0x2f,0x5f,0x91,0x79,0x52,0x32,0xcd,0xfb,0xcc,0xc5,0x26,0x60,0x89,0x18,0xe2,0x75,0x6d,0xdb,0x75,0x36,0xb3,0x68,0x0c,0x16,0x2c,0xf8,0xa1,0xef,0x38,0xa3,0x41,0xb9,0x36,0x2b,0xfe,0x5d,0x46,0x8b,0x4b,0xce,0x21,0xdf,0x23,0x4f,0x0f,},\"\\x58\\x50\\x02\\x32\\x38\\x8d\\x9a\\xa4\\xb5\\xfa\\xf8\\x5b\\x02\\x33\\x24\\x7e\\x71\\x7f\\xd1\\x68\\x40\\xde\\x9b\\xfd\\x0e\\xf8\\x6e\\x01\\xe6\\x13\\x02\\x77\\x55\\x13\\xe2\\x24\\x12\\x5e\\x0d\\x20\\x42\\x0e\\xa9\\x49\\xf6\\xc2\\x64\\x25\\xf7\\x00\\x77\\x91\\x1f\\x97\\x11\\x31\\x0c\\xd6\\xfd\\x8b\\xff\\x27\\xcd\\xea\\x11\\x48\\x0c\\x73\\xe8\\xf8\\xb3\\xc3\\x76\\x41\\xe7\\xe8\\xdd\\x86\\x07\\xc1\\x64\\x02\\x18\\xfe\\xc8\\x0a\\x02\\x09\\x28\\xb9\\x3d\\x4d\\x55\\x7e\\xbe\\x82\\xec\\x0b\\xb1\\x75\\x38\\x86\\x7d\\x2c\\xb1\\x4d\\x44\\xd3\\xea\\x72\\x7f\\xdd\\x52\\x82\\x0b\\x0d\\xa9\\x44\\xde\\x21\\xcd\\x5d\\xa3\\x03\\xd7\\x76\\xfe\\x99\\xcb\\xc2\\x64\\x83\\x65\\xe6\\xa0\\xa9\\x8d\\x4d\\xb1\\x50\\x84\\x26\\x61\\x76\\x8b\\xe8\\x4c\\x68\\x50\\x7a\\x5c\\x45\\xd2\\x07\\x84\\x0b\\x03\\x35\\x37\\x78\\x6c\\xb2\\x1d\\xad\\xad\\x5f\\xba\\xb9\\xc5\\xcf\\xc1\\xe3\\x54\\x7d\\xe5\\x50\\xd3\\x13\\x63\\x1d\\xd4\\xfb\\xb7\\xca\\x8f\\x71\\x93\\x86\\x27\\x60\\x8d\\x2e\\xbf\\x65\\x5d\\xb4\\x32\\x5a\\xbf\\x3e\\xd5\\x04\\xdc\\x18\\x30\\x58\\xf9\\xde\\x1e\\x44\\x93\\x12\\xd9\\x04\\xc8\\x46\\xa1\\x84\\xa0\\x28\\xf3\\x64\\xc0\\x28\\xb2\\x7e\\xb4\\x94\\x64\\x27\\xe3\\x1c\\x21\\xe1\\x05\\x1d\\xf3\\x64\\xd4\\x99\\xf4\\x77\\xbf\\x51\\xe7\\xa8\\x89\\x31\\x83\\xe5\\xec\\xf7\\x7d\\x51\\x3a\\x1a\\x76\\xb1\\xa6\\xfd\\xfb\\x16\\xbe\\x90\\xd7\\x4b\\xe4\\xc4\\x34\\x5a\\x4f\\x9f\\x87\\xee\\x44\\x1a\\x10\\x22\\xd6\\x7e\\xe8\\x44\\x78\\x9f\\x21\\xb0\\xc3\\x1a\\xdc\\xc0\\xd9\\x56\\x63\\xcd\\xfb\\x40\\xa8\\x95\\xb9\\x22\\xdc\\xe8\\x06\\x9b\\x93\\x2c\\x80\\x2f\\xd3\\xab\\x1e\\xf0\\xce\\x6b\\xff\\xdc\\xc5\\x65\\x3b\\x1c\\xd5\\x25\\x7e\\x19\\xa0\\x95\\x16\\x87\\xe5\\x45\\xfa\\xf4\\xaa\\x66\\x06\\x5a\\x55\\xc4\\xb4\\x19\\x1e\\x34\\xe8\\x04\\x7d\\x6a\\x4a\\xb5\\x2d\\x1b\\x06\\xc3\\x69\\xa4\\x26\\xca\\x2d\\x16\\xb5\\x1a\\x02\\x71\\xf2\\x7f\\x8d\\x74\\x4c\\x71\\x1f\\xce\\x3a\\xad\\x9d\\x4a\\xc0\\x38\\xee\\x70\\x0e\\x4e\\x97\\x1b\\x21\\xca\\x48\\x9f\\xf2\\xb8\\xc7\\x78\\xa3\\x72\\x1a\\xdf\\x47\\xc1\\xae\\x5a\\x41\\xb9\\xa2\\x7f\\xa7\\x42\\xfd\\x0f\\x18\\x16\\x4e\\xf3\\xc2\\x6b\\x8a\\xe7\\xd1\\xfa\\x29\\xb7\\xc0\\xcc\\x46\\x83\\xbe\\x65\\x02\\x5c\\x96\\x53\\x7a\\x12\\xd5\\xfc\\xeb\\xbd\\x05\\xe9\\x30\\xc3\\x69\\x3e\\xbb\\xba\\x0a\\x78\\xad\\xf5\\x9d\\x8a\\x3b\\x59\\x8a\\x34\\x8e\\xaa\\x9f\\x47\\xca\\xf5\\x31\\xfe\\x44\\x96\\x52\\xdb\\x5b\\x20\\xd6\\x89\\x94\\xe3\\x5a\\xfe\\xc2\\xc2\\x57\\x09\\x05\\x5a\\x1d\\xe2\\x60\\x82\\xe3\\x91\\x2d\\x49\\x7c\\x64\\x77\\x20\\xa3\\xf8\\x73\\x62\\x14\\x56\\xe6\\xa5\\xb9\\xeb\\x61\\x3a\\xcb\\x43\\xb6\\x6d\\x47\\xd0\\xb9\\x54\\xc6\\x9e\\x8f\\xbf\\x2c\\x5e\\x63\\x4c\\x48\\x6e\\x57\\x24\\x93\\x0e\\x0b\\x56\\xa5\\x16\\x94\\x0c\\x8c\\xb0\\xe7\\x75\\x27\\x4d\\xef\\xf9\\x7c\\xbb\\x77\\x59\\xce\\x90\\xa2\\xb9\\x3e\\x9e\\xfa\\xa6\\x24\\xe6\\xb3\\x8a\\x39\\x84\\x9d\\xca\\x1d\\xf6\\x12\\x73\\x6f\"},\n{{0x94,0xd5,0x09,0x15,0x14,0x4c,0x7e,0x7d,0xd0,0xf8,0x5f,0xef,0x87,0xed,0xdc,0x22,0x06,0xc1,0x56,0x9e,0xd1,0x43,0x1c,0x8c,0x5a,0x15,0x3e,0x32,0xe1,0xcb,0x2f,0xb7,},{0x3b,0xb0,0x98,0xcf,0x16,0x0f,0x3a,0xec,0x31,0x70,0xb5,0x7d,0x6a,0xdd,0x4f,0x56,0x73,0x92,0x70,0xe4,0xb3,0xa8,0xef,0x79,0x66,0xec,0x30,0x61,0x9b,0x29,0x91,0x02,},{0x59,0xa1,0xce,0x55,0xf5,0xa6,0xba,0xdc,0x1b,0x93,0x91,0x26,0x36,0x20,0x54,0x2c,0xfc,0xae,0x87,0xa0,0xf2,0xb9,0x50,0x22,0x50,0xcf,0xe4,0xbd,0xcb,0xf7,0x6c,0x46,0x19,0x77,0xc3,0x34,0xa4,0x8d,0x91,0x6e,0xde,0xbd,0x56,0xc2,0x1c,0xe2,0x17,0xc3,0x5a,0x64,0x44,0xcf,0xbf,0xd3,0xb1,0x1a,0x3d,0x48,0xfa,0x2e,0xdb,0x6e,0xb4,0x0f,},\"\\x4d\\x91\\x5f\\x27\\x33\\x2d\\xd7\\x50\\x51\\x71\\x9a\\x24\\xae\\x8d\\x0e\\x9c\\x30\\xda\\x79\\x09\\x99\\xe2\\x2d\\x9b\\x58\\x7e\\xf2\\x03\\x21\\xbe\\xe4\\xc0\\x7d\\x0a\\x12\\x49\\x4f\\xfe\\x59\\x9f\\x47\\xf9\\x69\\x25\\xf5\\xd9\\x25\\x17\\xfc\\x3e\\x5f\\x04\\x1d\\x0c\\x70\\x9f\\x2a\\x97\\x83\\x12\\x5e\\xec\\xa6\\x65\\x29\\x97\\x20\\x1c\\x42\\x9a\\xa6\\xf1\\xce\\x2f\\x07\\xa0\\xd4\\xa0\\xa1\\x8c\\xf2\\x0b\\x3e\\x9a\\x4f\\x76\\x63\\xea\\x52\\x62\\xca\\xd8\\xf9\\x49\\x41\\x1b\\x05\\xff\\x5c\\x5e\\xdd\\x7b\\x30\\xb2\\x17\\xd7\\x5d\\x8c\\x86\\xc9\\x4e\\x5f\\x92\\xc1\\x67\\x34\\x37\\x4e\\x8c\\xea\\xd6\\x1b\\x0b\\x27\\xbb\\x4b\\xf5\\xf4\\x3a\\x31\\x3c\\x1d\\xd5\\xb8\\x3e\\x0e\\xa9\\x33\\xb6\\xca\\xdf\\xed\\xd7\\xa6\\x4a\\xa5\\xdd\\x5b\\x5d\\x02\\xc6\\x95\\xea\\x20\\xe0\\x91\\xfd\\xaa\\x72\\xef\\x4e\\x7c\\xa4\\x0f\\x38\\x39\\x5b\\xe8\\xbf\\x7a\\x25\\x5c\\x6d\\x06\\xa6\\x32\\xd7\\xd7\\x85\\xd9\\xe0\\x47\\xf2\\x32\\xaa\\x50\\xfa\\x14\\x52\\x9f\\x98\\x6f\\x9e\\xf9\\xd7\\xb5\\x80\\xa0\\x39\\x65\\xb0\\x15\\x47\\x88\\x82\\x2a\\x22\\x5b\\xb5\\xab\\x34\\x38\\xb8\\x9a\\x5c\\x28\\x74\\x4a\\xb0\\xbc\\x0b\\x20\\x14\\xe5\\x79\\x6a\\xcb\\x49\\x35\\xa8\\x1b\\x02\\xa0\\x46\\x32\\xac\\xb8\\x8c\\xaa\\x7e\\x39\\xe0\\x69\\xc7\\xc8\\xe1\\x75\\x82\\x91\\x09\\x4a\\x53\\xe3\\x62\\xfc\\xed\\xaa\\xa5\\x83\\xec\\xa7\\x66\\xef\\xeb\\xf6\\x9b\\x38\\xe8\\xcd\\xe9\\xce\\x58\\xe0\\x12\\xc6\\x0e\\xc8\\x8e\\x8c\\x42\\xbe\\xad\\xfa\\x83\\x8c\\xfe\\x44\\x0f\\xa0\\xc0\\x1d\\x65\\x9c\\x96\\x34\\x57\\x6d\\x7d\\x7a\\x2d\\x3a\\x04\\x4f\\x99\\xc6\\xe4\\x26\\x3d\\x4c\\x0b\\x37\\x4a\\x38\\x8a\\x2a\\xcf\\x38\\xef\\xf2\\x9c\\x77\\x7e\\x9d\\xaa\\x60\\xd5\\x98\\x03\\x5a\\x7d\\x9e\\xdf\\x67\\xa5\\x02\\xc3\\xf5\\x73\\x20\\x7b\\x11\\x9c\\xac\\xac\\x3f\\xa7\\x1e\\x2a\\x02\\x07\\xc6\\x01\\xcc\\x0d\\xd6\\x37\\xef\\x56\\x2b\\xac\\xc3\\x5c\\x57\\x04\\x27\\x38\\xf1\\xf5\\x58\\x15\\xa5\\x26\\x80\\x82\\xcd\\x6a\\x50\\x82\\x92\\xfa\\x29\\xe3\\x4e\\x96\\x45\\xd8\\x7a\\x1a\\x2b\\x6e\\x58\\xad\\xb7\\xf4\\xa5\\x7f\\xbb\\x53\\xe9\\x21\\x3e\\xf3\\xdc\\x87\\x3f\\x29\\x39\\x62\\x58\\xa1\\xea\\x54\\x6f\\xb5\\x95\\x2c\\xe3\\x43\\xce\\xe9\\xbb\\xb9\\x0c\\x1c\\xda\\x72\\xc6\\x5a\\x7c\\x8e\\x40\\x31\\x2b\\x32\\x8e\\x23\\x19\\x20\\xc2\\x33\\x07\\x7d\\xca\\x34\\xd0\\x4f\\x9d\\x89\\xda\\xa9\\xa2\\xf4\\x34\\x59\\x16\\x5f\\xd1\\x02\\xff\\x56\\x43\\xc7\\x17\\x52\\x30\\xb3\\x9e\\xc7\\xc3\\xc4\\x75\\x65\\x0e\\xf1\\x31\\x60\\x9d\\x32\\x20\\xf5\\xa2\\x94\\xa4\\x03\\xb1\\xe1\\xc4\\x2c\\xfa\\x16\\x2c\\xd4\\x26\\xf0\\xae\\x43\\xfd\\x6b\\x7a\\xb5\\x47\\xa6\\x2b\\x7d\\x5f\\x84\\x74\\x03\\xc4\\xe5\\x98\\x79\\x53\\x87\\x71\\x58\\xcf\\xde\\xe2\\x3c\\x04\\xf7\\x51\\xc7\\xc8\\x6d\\x07\\x8e\\x82\\x4c\\xa6\\x3b\\x5e\\x65\\x54\\x3e\\x97\\x8b\\x6b\\x0c\\xc6\\x89\\xef\\x66\\x44\\x12\\xb0\\x1b\\x8f\\xf1\\x65\\xe7\\xdb\\xde\\x3c\\x09\\x9b\\xf4\\xf3\\x4e\\xbd\\xdc\\xb4\\xc4\"},\n{{0x0d,0x81,0x92,0x6f,0x51,0x3d,0xb4,0xb2,0x5d,0xfa,0x1e,0x52,0xb5,0xdc,0xa6,0x78,0xf8,0x28,0xa6,0x1c,0x7c,0x91,0x3c,0x82,0x82,0x47,0xc2,0xeb,0x04,0x22,0xb7,0xd1,},{0x0f,0x32,0x41,0x1e,0xf9,0x1d,0x4e,0x4b,0x69,0x41,0xdf,0xca,0xab,0x14,0x2e,0xf3,0xbe,0xc1,0x60,0x98,0x39,0x93,0xa5,0x26,0x2c,0xcf,0x27,0xfa,0xdd,0x2a,0xf8,0x90,},{0xe0,0xcb,0x6c,0x71,0xeb,0xf8,0xd7,0x05,0xe5,0x0c,0xad,0x9f,0x0b,0x8c,0xba,0x3e,0xcf,0x4b,0x9e,0x37,0x93,0x40,0x00,0x92,0xaa,0x5b,0x12,0x1e,0x7d,0xbb,0xc8,0xbe,0xa7,0x1d,0xf2,0x95,0x28,0xca,0x9b,0x47,0xab,0xf8,0x7c,0x19,0x8a,0x8d,0xc4,0xe1,0x4d,0x51,0x80,0xce,0x93,0x2d,0xd2,0x11,0x4a,0x3c,0xda,0xa5,0x55,0x2c,0xc2,0x05,},\"\\xa9\\x38\\x37\\x52\\x2f\\x7e\\xc2\\xe9\\x3a\\x2e\\x4b\\x4c\\x8b\\x46\\xde\\x92\\x6a\\x81\\xad\\xa2\\xd2\\x48\\xbc\\xd3\\x3b\\x39\\xb6\\xc9\\x5f\\xb6\\x2a\\x61\\xdb\\xbe\\xda\\x1a\\xa8\\x5a\\x21\\xd9\\xb9\\x6a\\x08\\x51\\x0d\\x8d\\x3a\\x65\\x8c\\xf3\\x20\\xa1\\x09\\x28\\x69\\x59\\x99\\xd2\\xc0\\xd6\\x05\\xc7\\xf9\\x5a\\x12\\xf5\\x6a\\x87\\x18\\x50\\x7d\\xb0\\xf4\\x97\\xe3\\xea\\xd6\\x13\\x13\\x2a\\xb0\\x92\\xcb\\xf1\\x9d\\x22\\x60\\x35\\x86\\x30\\x35\\x8d\\x9b\\x26\\xe6\\x8d\\x50\\xdd\\xae\\x37\\xc8\\xaf\\x0b\\xb7\\xd2\\x74\\x1f\\xd2\\x92\\x9c\\x21\\x27\\x9a\\x78\\xd1\\x0e\\x2c\\x5f\\x3c\\x5b\\xf4\\xa4\\x2a\\x36\\x17\\x03\\x6d\\x54\\x74\\x36\\x47\\x76\\x5a\\xfd\\x8c\\xd9\\x10\\xf8\\x1b\\x38\\xce\\xd7\\x23\\x90\\x63\\x0e\\xe6\\x89\\x44\\xa3\\x7d\\x29\\xc2\\xfe\\xca\\xda\\x1c\\xc5\\x9e\\xc5\\x44\\x07\\x5b\\xdb\\xc1\\x4c\\x63\\xc6\\x23\\x4b\\x88\\x40\\x49\\x00\\x0c\\x27\\xc7\\x34\\x06\\x03\\x56\\x04\\xfc\\xa8\\x76\\x0b\\x49\\xa5\\xe2\\x10\\x9e\\xf9\\x12\\x85\\xad\\xc4\\xec\\x48\\xc8\\x19\\xd6\\x2d\\x94\\x8f\\xac\\xa9\\x0f\\x62\\xcf\\xae\\xf0\\xb0\\x7d\\x6f\\xe5\\x76\\xd7\\x62\\xbf\\xd0\\xee\\xf9\\x4c\\xf6\\xb5\\x33\\x2c\\x4d\\x42\\x25\\x11\\x60\\x7f\\x2f\\xac\\xc7\\xac\\x04\\x6a\\x59\\xb9\\x61\\x7e\\x83\\x83\\xd1\\x02\\x9c\\xc9\\x1a\\xc5\\x92\\xb5\\x20\\x84\\x41\\x30\\x32\\xbe\\x84\\x1b\\xaa\\x9b\\xf9\\x62\\x51\\xa6\\xbd\\xa6\\x71\\xd4\\xcd\\x4b\\x12\\x5d\\xa6\\x58\\xa4\\xe5\\xa5\\x0f\\x44\\x28\\xee\\xbf\\x26\\x14\\xfb\\x0c\\xe5\\xfe\\xbe\\x80\\xf7\\x21\\xa5\\xf4\\xc0\\x32\\x55\\x06\\xd2\\x7a\\x8d\\x31\\xe3\\x3d\\x86\\x25\\x38\\x70\\xdd\\x63\\xc0\\x8e\\xdc\\x73\\x02\\xb2\\x80\\xe9\\xb9\\xbd\\xc2\\x8b\\xee\\xf0\\x5c\\x7d\\xcb\\x30\\xd4\\xc1\\x62\\xe9\\xbe\\x83\\x2e\\x1c\\x78\\x5e\\x37\\x55\\x12\\x18\\x42\\x1e\\xec\\x85\\x2c\\x42\\x98\\x21\\x3b\\x2f\\x27\\xf8\\xf8\\xc7\\x06\\xd3\\x91\\xb9\\xc6\\x9a\\x56\\xdb\\x7c\\xe5\\xd8\\x15\\x48\\xfc\\xa5\\xfe\\xd4\\x56\\xf2\\xd8\\xaf\\xd0\\xb7\\x5f\\x79\\xf8\\x58\\x68\\x31\\x6f\\x4a\\x09\\x21\\xf0\\xc6\\x63\\x99\\x26\\x51\\x6b\\x3c\\x3e\\x52\\xa9\\xcb\\x22\\x55\\x45\\x46\\xef\\x70\\xe1\\x4c\\x77\\xec\\xbd\\xcd\\x5c\\x0d\\x59\\xa8\\x17\\x69\\xb3\\x0d\\x5d\\x13\\x1f\\x2f\\xb4\\x49\\xc9\\x96\\xb8\\xde\\x8a\\xc7\\xf8\\x08\\x4f\\x84\\x99\\xe1\\xa5\\x6f\\x7c\\xd2\\x9d\\xb6\\xaa\\xef\\xcc\\xae\\x8a\\x60\\xe7\\x56\\x16\\xa1\\xf7\\x02\\xc3\\xbc\\x8d\\xea\\xa1\\x00\\x4a\\x8d\\xae\\x03\\x92\\xa5\\x9c\\xee\\x54\\x81\\x0c\\x6e\\x94\\x0e\\xee\\x25\\xfb\\x2e\\x5d\\x57\\x32\\x67\\x04\\x4b\\x89\\x3f\\xfd\\xe3\\x78\\xfe\\x75\\xac\\x26\\x13\\x37\\x3d\\x84\\xa0\\xca\\x81\\x87\\xaf\\x4a\\x33\\x58\\xe5\\x0a\\x99\\x4e\\xd0\\x33\\x67\\xde\\x64\\x5e\\x10\\x39\\x0f\\xea\\x4c\\x33\\xbb\\x1a\\x6c\\x0c\\x39\\x85\\x8b\\x8d\\xb4\\xa6\\x9f\\xe8\\x94\\xa4\\x22\\x3d\\x45\\xaf\\x69\\xb3\\x6c\\x61\\x17\\xc4\\xdc\\x25\\xde\\x49\\xa6\\x30\\x17\\x00\\x2b\\xa9\\xae\\x55\\x1e\\xf9\"},\n{{0x6c,0x8c,0x53,0xb5,0x6b,0xbc,0xb4,0xc0,0xa2,0x5d,0xc4,0x0c,0x18,0x24,0x0b,0x6a,0x5c,0x75,0x76,0xb8,0x9d,0xde,0x45,0xef,0x13,0xfb,0x15,0x8e,0xa1,0x7f,0x8e,0xd9,},{0x23,0x8e,0x51,0xd6,0xa4,0x4f,0xa7,0xac,0x64,0x26,0x88,0x01,0x26,0x1e,0xa3,0x5b,0x62,0x63,0x8a,0x00,0x6c,0xc4,0x52,0xbd,0xdb,0x9f,0x16,0xfc,0x58,0x03,0x06,0x0c,},{0x4b,0xf1,0xe7,0xd4,0x9c,0xd4,0xd5,0xc3,0xc1,0xfd,0x4a,0x4b,0xc4,0x8f,0xf6,0xb6,0xe5,0x2f,0xd9,0x51,0x0a,0x41,0x18,0x12,0x29,0x69,0x96,0xe4,0xfe,0xc5,0x6b,0xe4,0x45,0x14,0xc5,0x67,0xd1,0xd3,0x34,0x77,0xbd,0x5d,0xc0,0x83,0xc3,0x95,0x8b,0xd9,0x5b,0xfe,0x59,0x9c,0x15,0x3f,0x21,0xae,0x26,0x25,0x29,0x67,0xb7,0x32,0x60,0x03,},\"\\xb6\\x0d\\xf2\\x94\\x4b\\xa0\\x15\\x75\\x98\\x02\\xd3\\xc5\\x87\\xbc\\xfe\\xbe\\x52\\x1a\\x7e\\x77\\xb9\\x98\\x5b\\x76\\x1c\\x96\\x76\\x45\\x4d\\x24\\xa6\\x64\\xaf\\x0b\\x0d\\x44\\x22\\x5a\\x55\\x75\\x12\\xe1\\xc1\\xcd\\x7d\\xd8\\x33\\x5c\\x8f\\x6a\\xdf\\x92\\x8e\\x18\\xf8\\x9f\\xd5\\xee\\xdf\\x6f\\x41\\x1d\\xcd\\xaf\\x99\\x69\\x12\\xe8\\xc3\\xe2\\x3d\\x1c\\xb9\\x5e\\xca\\x4b\\x9e\\x24\\xe7\\x53\\x9c\\x3b\\x98\\xbf\\x3d\\x07\\xec\\x25\\x13\\x92\\x09\\x6c\\x19\\xac\\x53\\x74\\xdc\\xba\\x52\\x61\\x32\\xb6\\xd9\\xbb\\x8f\\x6c\\x85\\x9c\\xe9\\x85\\xd5\\x84\\xc7\\xbb\\xa5\\xb0\\x2a\\x81\\x03\\x4b\\x6d\\x8b\\x52\\x1b\\xd2\\x80\\xe5\\x0d\\x77\\xda\\xa2\\xb2\\x41\\x3e\\xd6\\x79\\x83\\x4f\\x81\\x61\\xd5\\xd0\\x57\\x3b\\xdd\\x47\\x6a\\xc3\\xcd\\x0a\\x3a\\x7d\\x8d\\xb4\\x53\\x34\\xe8\\x9c\\x00\\xab\\x66\\xbc\\x36\\x8a\\x07\\xb4\\x23\\xe2\\x46\\x43\\x46\\x36\\x27\\x2a\\xa4\\xe4\\x63\\x7a\\x53\\x06\\xb2\\xc3\\x39\\x79\\x92\\x78\\x1f\\x30\\x23\\x8d\\xe7\\x9e\\xc1\\x04\\xac\\xc7\\x20\\x0d\\xef\\xad\\x96\\x08\\x83\\xd3\\x91\\x44\\x3e\\x70\\xef\\xbd\\x22\\xf1\\xcf\\xce\\xec\\x51\\x12\\xfe\\x9e\\x8e\\x13\\xbb\\x94\\x1c\\x08\\x34\\x68\\xdd\\x71\\xff\\xca\\x97\\x6c\\xd5\\x1c\\xe1\\x61\\x79\\x31\\x10\\xef\\x00\\xaf\\xf5\\xee\\x2c\\xcb\\x77\\x06\\xa5\\x12\\xb8\\x5b\\xeb\\x94\\xac\\x49\\xd1\\x9a\\xfb\\x63\\x33\\x65\\x5c\\xf3\\xae\\xa5\\x35\\xa6\\xf9\\xc7\\x5e\\x03\\x48\\x41\\xe7\\x63\\xc5\\xa2\\x49\\xb4\\x70\\x4e\\x1b\\xe7\\x8b\\x0e\\xca\\xc6\\x80\\x2c\\x34\\x3c\\x1b\\x7e\\x7b\\x57\\x70\\xde\\x4c\\x93\\xa3\\xa7\\x9c\\x46\\xe6\\x83\\x5d\\xa8\\xae\\x5d\\xb3\\x83\\x8e\\x17\\x96\\xb5\\x64\\xa4\\x80\\xa4\\xf2\\x90\\xb6\\x0a\\x1c\\x63\\xa7\\x25\\xff\\x3f\\xef\\x43\\x4d\\x2a\\x0b\\x3d\\x89\\x31\\x97\\x87\\x42\\xb5\\x25\\xc8\\x3b\\xae\\x67\\x94\\xae\\x64\\x19\\x37\\x94\\xb3\\x70\\xc2\\x89\\xba\\x35\\xed\\x79\\xd3\\x70\\x72\\xa8\\xdc\\xfc\\xad\\xb4\\x6d\\x5f\\xfa\\xee\\xba\\x1b\\xfd\\x4f\\x87\\xd7\\x66\\xb5\\x04\\xe6\\x2b\\x4a\\xcd\\xd7\\x74\\x46\\xe7\\x9b\\xa9\\x94\\xd6\\xdb\\xf4\\x76\\x5e\\xbd\\x74\\xb0\\x36\\x51\\x00\\xda\\x56\\x16\\x2c\\x36\\xfe\\x5a\\x95\\x07\\x7f\\x6b\\x42\\x65\\xe8\\x17\\x96\\xb4\\xa5\\x74\\x43\\x78\\x29\\x70\\xb9\\x6c\\xb4\\x56\\x9b\\xa9\\x85\\xc5\\x5f\\xe3\\xa7\\x18\\x38\\x0b\\xca\\x39\\xf1\\x66\\x24\\xf8\\xe4\\x7c\\xc6\\x3c\\x1b\\x6f\\xa1\\xbd\\xe1\\xae\\xba\\x9c\\x51\\xf9\\x4b\\x70\\x2b\\x13\\x10\\x8c\\xc1\\x48\\x1d\\x42\\xe6\\xfa\\x98\\x1e\\x3e\\xbf\\xe0\\x64\\xd2\\xdc\\xa7\\x42\\x0c\\x74\\x59\\x57\\x92\\x31\\x2a\\xe3\\xfb\\x91\\x01\\xd4\\xb6\\x6d\\x99\\x16\\xdf\\xd6\\xc1\\x3a\\xe8\\x83\\xe6\\x61\\xc6\\x28\\x22\\x8b\\xe9\\x79\\x4c\\xf6\\x03\\x45\\x07\\x6d\\xb2\\x61\\x84\\xb6\\x17\\xe2\\x72\\x29\\x8c\\xd4\\x18\\x3f\\x27\\xbd\\x52\\xd4\\x05\\x10\\xbb\\x01\\x5d\\x20\\x97\\xd4\\xcc\\x76\\xe7\\x6c\\x0a\\x62\\xbb\\xfd\\xaf\\x53\\xc7\\x26\\x87\\x75\\xbb\\xfb\\xdb\\x88\\x70\\xeb\\x9b\\xab\"},\n{{0x69,0xb3,0x20,0xfb,0xd4,0x77,0x40,0x30,0xa2,0x97,0x67,0xa0,0xcc,0x15,0x50,0xd1,0x0b,0x74,0x9b,0x44,0xd6,0x19,0xd4,0x1d,0xce,0x11,0x46,0xf7,0xac,0x80,0xa7,0x55,},{0xdc,0x50,0x8a,0x79,0xc6,0xb8,0xab,0x86,0x6c,0xd1,0x17,0xa5,0xa8,0x4d,0xd9,0xd9,0x31,0xfd,0xa4,0x50,0xbe,0xc2,0x93,0x35,0x34,0x4d,0x0d,0x21,0x92,0x16,0xd6,0x5e,},{0x69,0x7d,0x4d,0x89,0x7e,0x0e,0x2c,0xc0,0x2b,0xc1,0xc2,0xdd,0xa5,0x7f,0x0d,0xda,0x62,0x0b,0x37,0xe8,0x61,0x82,0x2b,0xb7,0xf1,0xa7,0x01,0x93,0x5e,0x95,0x9e,0xa0,0xd8,0x45,0x3f,0x74,0x6f,0xb9,0x2c,0x08,0x7e,0xd6,0x5d,0x98,0x0e,0xea,0x1d,0x6f,0xdb,0xf2,0x3e,0x99,0xb2,0x89,0xaa,0xe0,0xdc,0xbb,0x12,0x8e,0xf8,0x36,0x64,0x0a,},\"\\x21\\x7e\\x33\\xf8\\x86\\x22\\xc9\\x6f\\x8d\\x09\\x2c\\x9e\\x26\\x66\\x4f\\xe9\\xef\\xc0\\xd8\\xd2\\xeb\\x59\\xa0\\x36\\xfa\\x46\\x4c\\xee\\x65\\xce\\x44\\x89\\xca\\xf9\\x03\\xdc\\xe1\\x7a\\xfa\\xfb\\xc4\\xf1\\x8d\\xc9\\xbb\\xfd\\x6c\\x1a\\x4b\\xe7\\xb8\\x34\\x85\\xa6\\xca\\x94\\x7d\\xef\\xb1\\xd3\\x51\\x25\\xd0\\x77\\x39\\x62\\xa3\\x44\\xa3\\x8b\\x6d\\xca\\x9a\\x40\\xc3\\x1c\\x1c\\x4e\\xb2\\xd7\\xf6\\x81\\x8f\\x97\\x8e\\x57\\x3d\\x66\\xb9\\x90\\x92\\x1b\\x92\\xb7\\x77\\x47\\x1a\\x4f\\x6f\\x05\\x47\\x7e\\xbc\\x35\\x3a\\xce\\x1d\\x86\\xb0\\x0c\\xc2\\x51\\x77\\x7a\\xaf\\x6a\\xf3\\xaa\\x11\\x79\\xbf\\xf7\\x8d\\xf5\\x04\\x8e\\x5e\\xf2\\x99\\x68\\x67\\x0e\\x53\\x54\\x83\\x56\\x8d\\x6b\\xb1\\x6d\\xa8\\x29\\x56\\x8f\\x81\\xc7\\x99\\xb9\\xaf\\xd4\\xaa\\xd6\\xef\\x08\\x52\\x52\\xc0\\xce\\x3a\\xc0\\x1a\\xc2\\x1a\\x9e\\xa6\\x9b\\xd5\\x8e\\xad\\xc6\\x69\\x68\\xf5\\x5d\\xee\\x38\\x6b\\x65\\x3f\\x33\\x34\\xef\\xc3\\x98\\xef\\x3c\\x37\\xa3\\x8c\\xe9\\x3b\\x21\\xf1\\x07\\xcc\\x54\\xde\\xc2\\x6f\\x53\\xfe\\xe5\\x60\\x4e\\xb0\\x9a\\x36\\xaf\\xe6\\xb6\\x65\\xb6\\x32\\x4a\\x84\\xc7\\xda\\x7b\\x7d\\xd0\\x1d\\x92\\x78\\xe4\\x72\\xf1\\x5a\\x5c\\xe9\\xff\\x0f\\xd9\\x3d\\x0a\\xa0\\x60\\x4d\\xd2\\xdf\\x8d\\x5b\\xf6\\xa9\\x12\\x73\\x4e\\xc5\\x1d\\xe7\\x7f\\x0c\\xe0\\x99\\xba\\x11\\x67\\x02\\x10\\xa6\\xa2\\x06\\x10\\x6b\\x0e\\xde\\x2d\\xed\\x85\\x8a\\x6b\\xc4\\x11\\xe7\\x61\\x3e\\x6f\\x80\\xe1\\xaa\\x52\\xc3\\x23\\xe3\\x0f\\xa8\\x49\\x95\\x1c\\xc9\\xb7\\x76\\xe4\\xcc\\x58\\xc9\\x0c\\xfc\\x8f\\x44\\x2d\\xf6\\x41\\x51\\xa7\\xfd\\x4a\\x3d\\xd6\\x1a\\x43\\x36\\xda\\x21\\xd0\\x39\\x44\\x63\\x5d\\x3f\\xd6\\x67\\xbe\\x74\\x1e\\xf4\\x5b\\x1f\\x7c\\xb2\\x76\\xd9\\xf4\\xde\\x81\\x07\\xde\\x64\\x58\\x2f\\x79\\x17\\xc6\\xea\\xb3\\x8e\\x0a\\x88\\x90\\xa4\\xbe\\xe4\\x8b\\xc9\\x26\\x17\\xa3\\x61\\xcc\\x7b\\x1d\\x25\\xe0\\x89\\x45\\x3c\\xe0\\xa5\\x25\\x44\\xf8\\x68\\xdc\\xb3\\x24\\x9d\\xe7\\x61\\xe7\\x9d\\xf6\\x3e\\xfa\\x07\\x94\\xe3\\xc4\\x61\\x8c\\x55\\x47\\x53\\xee\\x28\\x1c\\x52\\xac\\x8a\\xd7\\x8d\\x53\\x38\\xf0\\xda\\xc3\\x60\\xa7\\x69\\x38\\x1b\\xb4\\xa3\\x9f\\x19\\x0b\\x88\\x7b\\x47\\x23\\x80\\x6a\\xc4\\xa4\\xf2\\xff\\x30\\x4b\\xc6\\xf9\\x33\\x7a\\xb5\\x4c\\x86\\x6e\\x6b\\xa5\\x1d\\xf5\\x0c\\x43\\xea\\xb5\\x2e\\x2b\\x39\\x79\\x4c\\x99\\x17\\xe0\\xc3\\x14\\x33\\xf0\\x36\\x81\\xd2\\xf1\\xd9\\x3a\\x04\\x36\\x01\\x8c\\xaa\\xae\\x20\\x20\\x6a\\x34\\x58\\xad\\x6c\\x03\\x7a\\xcb\\x51\\x1e\\xf1\\x28\\xf6\\xdc\\xd0\\x53\\x05\\xf0\\x70\\x49\\xa1\\x3b\\x6c\\x6c\\x3c\\x5b\\x81\\x70\\xf1\\x58\\xc8\\xf1\\x2d\\x46\\xe1\\x60\\x93\\x1b\\xa1\\x8b\\xd5\\x9a\\xe1\\x29\\xec\\x07\\xa0\\x65\\x5f\\xa4\\x82\\xeb\\xbd\\x3b\\x85\\x0d\\x36\\xb8\\x32\\xbb\\xb7\\x75\\xf5\\x38\\xe3\\xc1\\xb3\\xa4\\x3e\\xcf\\x94\\xca\\x63\\x0c\\xa1\\x5d\\x50\\x28\\x13\\xee\\xd3\\xe3\\x5e\\x8f\\xd2\\x3d\\x2a\\xb6\\x38\\x60\\x04\\x27\\xd1\\x59\\x7c\\xb2\\x9d\\xa2\\xa5\"},\n{{0x66,0xda,0x8b,0x25,0x4a,0x37,0x06,0x73,0x78,0xf6,0x81,0x38,0xaf,0xed,0xd6,0x64,0x96,0x59,0x6a,0x05,0x85,0x52,0x4c,0x71,0x6b,0xde,0x2b,0x31,0x24,0xc3,0xe7,0xd1,},{0x85,0xbd,0xe2,0x8a,0x92,0x2a,0xb5,0xee,0xaa,0x4a,0x62,0x94,0x52,0x1a,0x2c,0xca,0xc0,0xef,0x23,0x03,0xdc,0xdf,0x8c,0x7f,0xee,0x22,0x8f,0xb4,0x55,0x20,0x12,0xe7,},{0x40,0x82,0xa5,0xbc,0x73,0x0f,0xb5,0x4b,0x6b,0xd0,0xbc,0xd2,0xa0,0x44,0xed,0x5d,0x3d,0x32,0x7d,0xc1,0x9c,0xea,0xc8,0x82,0x5e,0x62,0x9b,0x9e,0x64,0x23,0xcb,0x1c,0x61,0x42,0x36,0xf0,0x97,0xa6,0xb7,0x3d,0x47,0x39,0x47,0xcb,0x81,0xc4,0xe2,0x70,0x85,0x2e,0xe5,0xf1,0x3a,0x5b,0x03,0xdc,0x18,0xe1,0xc9,0xc2,0x7a,0x9a,0x68,0x02,},\"\\x3f\\xae\\x36\\x63\\x88\\x37\\xd0\\xed\\xc8\\xdc\\xee\\x51\\x7e\\x43\\xc4\\x88\\xed\\x57\\xfa\\x6c\\x98\\x53\\xa7\\x45\\xaa\\xed\\xfb\\x10\\x9e\\xc1\\x40\\x9f\\xb8\\xa2\\xfe\\x51\\xd2\\x3e\\x0d\\xd9\\xfb\\xfd\\x94\\xf9\\x1c\\x18\\xe6\\x11\\x4d\\x80\\x89\\x01\\xbf\\x61\\x7d\\x26\\x67\\xce\\xeb\\xd2\\x05\\xc5\\xc6\\x6f\\x5d\\x75\\x34\\xfd\\x2e\\xc3\\x3d\\xbf\\xe5\\x80\\xad\\x91\\x9f\\x50\\x42\\x04\\xea\\xf2\\x42\\xaf\\x87\\x00\\xb1\\x38\\xcf\\xbe\\x0f\\x37\\x29\\x19\\xc0\\x6b\\x86\\x1a\\x27\\xd7\\x20\\xd0\\x9d\\xf2\\x0f\\x4f\\xb7\\xb7\\x48\\xe7\\x18\\xb0\\xfc\\x48\\x6d\\xbd\\xfc\\xb6\\x94\\xcb\\x3f\\x14\\x20\\x03\\x5a\\xc1\\xbe\\x55\\xd3\\x1f\\x30\\xf9\\x97\\xa0\\x43\\xd0\\x47\\x08\\xa5\\xc5\\x42\\xee\\x37\\xc0\\xf7\\xfe\\x0b\\x32\\x11\\xd1\\x8a\\x87\\x03\\x3d\\xcb\\x15\\xc7\\x9e\\x66\\x81\\xc4\\x97\\x05\\x93\\xd3\\x2a\\x13\\xc4\\x8f\\x0a\\x3a\\xf8\\xbf\\xc1\\x36\\xe0\\xf9\\xb5\\x6a\\x12\\x3b\\x86\\xc4\\xc6\\x40\\xb6\\x50\\xcb\\x7d\\xee\\x9a\\x89\\xe8\\x2a\\xee\\xee\\x77\\x3b\\x5c\\xb0\\x32\\xfc\\xa4\\x1c\\x20\\xc4\\x07\\x32\\x8b\\xfe\\xd2\\x92\\x44\\xe4\\x60\\x55\\xa8\\x31\\x14\\x61\\x4d\\x3d\\xb5\\x65\\x81\\x60\\x4b\\x11\\x5f\\xba\\x14\\xf6\\x18\\xe1\\x02\\xa1\\xe1\\x6c\\xb0\\x36\\xea\\x69\\xdf\\x92\\x75\\xb9\\x77\\xa0\\x85\\x81\\x18\\xc9\\x1a\\x34\\xb9\\xa8\\x51\\x9b\\xd0\\xda\\xc3\\xb6\\x14\\x34\\xea\\x08\\x8f\\x38\\x1b\\xa0\\x8b\\xc1\\x58\\x31\\x89\\xa4\\xa7\\xc8\\xb6\\xad\\x18\\xf7\\x32\\xd7\\x4e\\xff\\x3a\\xce\\xf4\\xb6\\x90\\x4d\\xf5\\x8c\\x64\\x69\\x43\\x21\\x51\\x37\\x2d\\xf9\\x32\\x7a\\xe7\\x1a\\x0f\\x35\\x6c\\x94\\x46\\x8d\\xcf\\xc2\\xe4\\xa5\\xc0\\xe4\\xec\\x0b\\x16\\x6d\\x90\\xcd\\x46\\x5f\\x92\\x60\\xeb\\xd6\\xa7\\xa6\\x2c\\xe6\\xc7\\x15\\xbc\\xc7\\x15\\xbe\\x0c\\x7e\\x1f\\x28\\xc4\\x45\\x60\\x12\\xd3\\x31\\x77\\xa7\\xd4\\x11\\x3c\\x9a\\x5a\\x22\\xac\\xfa\\xf2\\xd6\\xb6\\x33\\x09\\x07\\x8f\\xc1\\xb1\\xba\\xa8\\xf3\\x6c\\x7e\\x86\\x6c\\x1f\\x97\\x2a\\x65\\x00\\xa5\\xee\\xa7\\x92\\x01\\x65\\x1a\\x73\\x05\\x20\\x8b\\x6c\\x93\\xc4\\x92\\xbc\\x77\\xca\\xcb\\xc9\\x9c\\x9c\\xde\\xd1\\x79\\xe6\\x64\\xa2\\xf4\\xe1\\x69\\x38\\xcc\\x26\\xfc\\xa8\\xb4\\x33\\xeb\\x80\\x12\\xf7\\xb3\\xad\\x19\\xba\\x1f\\xb8\\x58\\xfe\\x4a\\x00\\xfb\\x3d\\x1f\\x8f\\xd0\\xed\\xdf\\x0c\\x37\\xdc\\xdb\\x2e\\x5d\\x35\\xc2\\x54\\x6f\\x22\\xe8\\xc0\\xf8\\xce\\x90\\xe2\\xdf\\x8a\\xbf\\x24\\x82\\x7a\\x01\\x9b\\x2c\\x33\\xfc\\x59\\x0b\\xbe\\x71\\x2f\\x01\\x92\\x87\\x00\\x2b\\xc2\\x21\\x7c\\x0d\\xc0\\x93\\x1d\\xc8\\xed\\x8f\\x50\\xbb\\x44\\x2f\\x8b\\x2d\\xe2\\x78\\x57\\x36\\x2c\\xe5\\xa9\\xfd\\x97\\xf0\\xfd\\x1b\\x2b\\x92\\x51\\xca\\xd2\\xa4\\xac\\xa1\\xa9\\x4d\\xe2\\xe9\\x53\\x90\\x2d\\x72\\x28\\x14\\x24\\x07\\x44\\x3b\\x1d\\x51\\x71\\x07\\x64\\x8a\\x7b\\xab\\x83\\x07\\x49\\x87\\xd0\\x97\\x8b\\xc6\\x1d\\x41\\x9b\\xc8\\x45\\x91\\xc9\\x69\\xc3\\xd6\\xf4\\xe8\\x6f\\xc4\\x73\\x87\\x37\\xbc\\x05\\x58\\x75\\x5c\\x11\\x0a\"},\n{{0x27,0x65,0x48,0x29,0x0f,0x3e,0x0f,0x90,0x05,0x15,0xdc,0x63,0x36,0x6c,0x03,0xfe,0x0f,0xc6,0xee,0x13,0x0c,0x21,0xfb,0x60,0xa4,0xdf,0x9c,0xf4,0x64,0x79,0x7c,0xda,},{0x7e,0x2a,0x35,0x78,0x00,0x0a,0x08,0x7e,0xdc,0xc9,0xe9,0x4f,0xde,0x50,0x9f,0xc4,0xbe,0x05,0xca,0x0d,0xd0,0x90,0xdf,0x01,0xae,0x11,0x21,0x12,0x35,0x36,0xf7,0x2a,},{0x88,0xa1,0x46,0x26,0x1a,0xd1,0x11,0xc8,0x0f,0xa4,0x29,0x95,0x77,0xe7,0x10,0xf6,0x85,0x9c,0xf0,0xd1,0xca,0x80,0xe5,0x12,0xa5,0x52,0xc7,0x25,0xb8,0x38,0x40,0x37,0xee,0xcf,0x64,0x65,0xce,0x97,0x58,0x5c,0x9d,0x66,0x0a,0x41,0xab,0x91,0x04,0xe5,0xf7,0xc9,0xb2,0xf8,0xec,0x6f,0xb2,0x1f,0x1d,0xdd,0x50,0xd6,0x5b,0x9b,0x66,0x0e,},\"\\xf0\\xdb\\x44\\x2d\\xe2\\x9a\\x7a\\x1d\\xed\\x55\\x0d\\x12\\x00\\x02\\xcc\\x12\\xab\\xff\\xf9\\x8b\\x1f\\x57\\x6d\\x65\\xbd\\xe1\\x6d\\xea\\xba\\x68\\x7e\\x4e\\x0b\\x0d\\x5a\\x87\\x48\\xd7\\x50\\x3d\\xa2\\x96\\x9c\\x64\\xd6\\xa7\\xc2\\x8d\\x27\\xb6\\xc9\\x3a\\xd2\\x57\\xce\\x32\\xec\\xda\\xee\\x37\\x5f\\x43\\xff\\xf9\\x7c\\x43\\x2d\\x45\\x3f\\x71\\x96\\xc7\\x09\\xc3\\xbd\\xfb\\x73\\x88\\xd4\\xd8\\xea\\xf1\\x39\\xf1\\x82\\x94\\x0c\\xe1\\x7b\\x45\\x52\\xe2\\xd2\\x0a\\xed\\x55\\x57\\xba\\x4d\\x2a\\xcb\\xf8\\x45\\x73\\x0c\\x0a\\x66\\xb4\\x5b\\x40\\x95\\x0b\\xaf\\x6a\\x94\\x64\\x37\\xaf\\x6c\\x9e\\x3b\\x33\\xa7\\x9e\\x04\\xdc\\xea\\xe5\\x7c\\x2a\\x54\\x95\\x42\\xea\\xbd\\x21\\x6b\\xf1\\x39\\x48\\xd4\\x1f\\xfb\\x94\\x83\\xfe\\x29\\x80\\x1f\\xc8\\xc1\\x78\\x28\\x40\\xde\\xeb\\x3f\\xb4\\xda\\x31\\x92\\x78\\x5b\\xca\\x13\\xed\\x0a\\x9e\\xff\\x57\\xd6\\x13\\x6b\\xaf\\xbf\\x9d\\xec\\x69\\x7b\\x83\\x24\\x47\\xb2\\xb6\\xe7\\x30\\xfa\\x7f\\x99\\x95\\xba\\xc6\\xb7\\x83\\x2e\\xaa\\x09\\x90\\x5e\\xe4\\x9d\\x46\\x5a\\x5e\\xe4\\x50\\xf5\\x2d\\x1a\\x6d\\x36\\x4c\\x61\\x81\\x44\\xe8\\x86\\xe8\\xef\\x63\\x3d\\xc7\\x9d\\x0a\\xf8\\x93\\xd1\\x6b\\x3e\\xed\\xa0\\xfe\\xfe\\xfd\\x87\\x59\\xf2\\xa0\\xda\\x19\\x30\\x17\\x0d\\xd1\\x9e\\xb7\\x8f\\x0d\\x7a\\x7b\\x74\\x51\\x54\\x03\\x37\\x5a\\x95\\xbd\\xbc\\xce\\x01\\x8b\\xc1\\xed\\xb0\\x8d\\x89\\x7b\\xb7\\x98\\xa9\\x5e\\x7e\\x86\\xa5\\x2a\\xf3\\xd9\\xb8\\xa4\\xa1\\x4b\\x03\\x71\\xd6\\x34\\x98\\xdc\\xb2\\x01\\x62\\x48\\xeb\\xd0\\xbe\\x80\\x0e\\x9f\\x21\\xd5\\x49\\xe5\\xe0\\xe7\\xb4\\x89\\x5c\\xa5\\xcb\\x72\\x5a\\x0c\\xab\\x27\\xda\\x8a\\x8b\\x12\\x99\\xbe\\x38\\xa4\\x26\\x09\\x00\\xae\\x10\\xdf\\x5b\\xab\\xa1\\x1a\\xe2\\xba\\xb7\\x17\\x9d\\xd8\\x45\\x39\\x69\\x42\\x9c\\xcc\\x4d\\x41\\x60\\x55\\xf2\\xbc\\xb9\\x3c\\x1c\\xac\\x6d\\x7e\\x80\\x4c\\xf8\\x12\\xdf\\x14\\x62\\xf2\\x2e\\xe9\\xe8\\x33\\xa9\\x76\\x9e\\x8e\\x67\\x75\\x50\\x40\\x2c\\x40\\x94\\xdf\\x21\\x2f\\xd2\\xc5\\xfc\\xc0\\x9a\\x72\\xc7\\xce\\x00\\x77\\x51\\x00\\x73\\x09\\x0d\\x0e\\x63\\xdb\\x63\\x7d\\x43\\xd4\\xc2\\x1f\\x86\\x19\\xd3\\x4d\\xa5\\xdb\\x08\\x03\\x3f\\x68\\x6c\\xe8\\xb8\\xa0\\x82\\x12\\x22\\xf9\\x54\\x34\\xac\\x4e\\x6f\\x70\\x30\\x94\\xed\\xde\\xd6\\xfb\\x1b\\x84\\x6e\\x97\\x96\\x50\\x97\\x9d\\x3c\\x77\\x45\\x3f\\x40\\xf7\\xfe\\xe7\\xc3\\xe8\\x8a\\x96\\xfd\\x1d\\x70\\x2e\\x81\\xc2\\xa4\\xf3\\xf3\\x75\\x3c\\x79\\x64\\x84\\x2d\\xfd\\x9d\\x39\\x58\\xa7\\x43\\xda\\x06\\x3d\\x1d\\x64\\x8e\\x51\\xb2\\x10\\xa2\\x8e\\xd2\\x48\\x7f\\x14\\xd5\\xf1\\xbc\\x6f\\x33\\x9b\\x2d\\xd1\\x7a\\x66\\x1c\\x39\\x73\\x6d\\xa9\\x9e\\x4a\\x4f\\x07\\x36\\x03\\x42\\xd2\\x37\\xe3\\x81\\x3e\\xa3\\x99\\x8d\\x66\\xeb\\x31\\xa2\\xd7\\x08\\xaf\\x06\\x5c\\x32\\xb9\\x27\\xf7\\x57\\xc3\\x7a\\x80\\x06\\x60\\x67\\x4e\\x97\\x17\\xba\\x58\\xf2\\x80\\xeb\\x2a\\xa4\\x64\\xfa\\x74\\x40\\x21\\x08\\xa5\\xd5\\x66\\x2e\\x8d\\x0f\\xea\\xf3\\x29\\x68\\x7a\"},\n{{0x97,0x2c,0x06,0x16,0x55,0x6e,0xf2,0x2c,0x21,0x48,0x68,0xfd,0xd8,0x22,0xc5,0x57,0x39,0xe1,0xf9,0x6a,0x93,0xae,0x83,0x51,0x2a,0xfd,0xa9,0xca,0x7a,0xa7,0x4c,0xd2,},{0x9e,0x1c,0x6d,0x41,0x07,0xf8,0xab,0x81,0x61,0xc5,0xdb,0x5b,0x88,0xa3,0x7c,0xa1,0xde,0x9f,0x4e,0x29,0x13,0x67,0xab,0xb1,0xef,0xc8,0x4f,0x83,0xf7,0x07,0x69,0x53,},{0x54,0xdd,0x06,0xfb,0xb3,0xd7,0xc6,0x3f,0x8c,0xda,0xf7,0x83,0xc2,0xd7,0xba,0xc1,0x6b,0x4c,0x82,0x6e,0x2d,0x1b,0x18,0x07,0xc8,0x4e,0x04,0x9f,0x64,0xe2,0x71,0xb2,0x1c,0xfa,0x3e,0x37,0xc3,0x44,0x26,0x02,0x87,0x80,0x5d,0x71,0x88,0x06,0xb6,0x2c,0x56,0xb4,0x7f,0x6d,0x5c,0x50,0x81,0x25,0xc9,0xfb,0x5d,0x5e,0xa3,0x5f,0xd5,0x01,},\"\\x86\\x89\\xe2\\xf9\\x5c\\x8f\\xd5\\x0d\\xc4\\x46\\x64\\xa1\\x8f\\xb1\\xa9\\xf2\\xc8\\xf3\\xee\\x73\\xc0\\xf9\\x58\\x7e\\xe2\\x8b\\xfa\\x35\\xc9\\x23\\x1c\\x75\\xbf\\xd3\\xd9\\x53\\x41\\x74\\xe5\\xad\\x3f\\xa9\\xf0\\x92\\xf2\\x59\\x94\\x2a\\x0f\\xf0\\xba\\x2c\\xa2\\xcb\\x59\\x04\\x3d\\x19\\x2c\\xa8\\xe3\\xc8\\x86\\x9b\\xed\\xd2\\x35\\x4c\\xbc\\x5a\\xc7\\x82\\xd7\\x27\\xc0\\xb6\\x94\\x07\\xf6\\x8d\\x13\\x26\\xdf\\x65\\xa6\\x0c\\x4d\\x32\\xf8\\x7f\\x19\\xa1\\x0f\\x3d\\x76\\x5f\\xf9\\x23\\x43\\x4f\\x55\\x11\\xd1\\x34\\xd3\\x97\\xc4\\xfe\\xf6\\xbb\\x19\\x53\\xab\\xfc\\xe6\\x08\\x27\\xc3\\x59\\xaa\\x4b\\x54\\xf9\\x12\\xaa\\x8b\\x17\\xb8\\x3d\\xcc\\x7e\\x3b\\xcb\\xc5\\x05\\xba\\x04\\x6f\\xe5\\x7c\\x16\\xda\\xcf\\x4e\\xe2\\xfa\\xd5\\x38\\xbc\\x06\\x81\\x7c\\x9b\\x9d\\x8d\\xbc\\x5f\\x9d\\x9b\\xbf\\x9f\\x4a\\x93\\x4f\\x14\\xa4\\x2c\\x29\\xe0\\xe2\\xf3\\xa4\\x9f\\x46\\xb2\\x0e\\xe7\\x6c\\xfe\\x20\\xde\\xa1\\xe9\\x74\\x50\\xeb\\x6a\\x8f\\xda\\x04\\x81\\x68\\xdd\\x82\\x78\\x10\\x20\\x7f\\x00\\x5a\\x3c\\xaa\\x93\\xca\\x11\\xf4\\xee\\x60\\x8a\\x7a\\x93\\x55\\x49\\x43\\x13\\xae\\xc8\\xd7\\x07\\x5a\\xfc\\x94\\xc7\\xcc\\xcc\\x75\\xc2\\x31\\x9b\\xb4\\x58\\xc0\\xce\\x37\\x3e\\x9d\\x00\\x7f\\x75\\x3b\\x33\\xb5\\x27\\x93\\xd5\\x84\\x96\\xb2\\xd2\\x5c\\xd1\\xdc\\xd7\\x83\\x2a\\xac\\x5d\\xdb\\x38\\xf4\\xdb\\x19\\xc4\\x27\\x21\\x9e\\x1a\\x04\\x20\\xea\\xd4\\x7b\\xa9\\x5a\\xb6\\xd8\\x9c\\x65\\x93\\x90\\x41\\xcc\\x73\\x4c\\x08\\xeb\\x6b\\x47\\x6c\\xaf\\x7f\\xc7\\x6c\\x59\\x8d\\x94\\x7f\\xf4\\x44\\xb1\\x07\\x70\\xf6\\x29\\x45\\xae\\x65\\x04\\x4f\\x78\\x09\\x82\\x99\\xe2\\x62\\x6b\\x63\\x8a\\x73\\x28\\xd1\\xb7\\xda\\xa5\\x88\\x9e\\x8d\\xb9\\x4b\\xbf\\xf2\\xde\\xd6\\x2e\\x14\\x46\\x37\\x60\\x22\\x7c\\x3f\\x32\\x6e\\xd4\\x93\\x56\\x5d\\xdf\\x0a\\x17\\x61\\xb8\\xe4\\xbb\\x7d\\x24\\x10\\xfa\\x0f\\xdb\\xf3\\x56\\x84\\x39\\x7e\\xef\\xea\\x95\\x89\\x58\\x89\\xa0\\xa9\\xdf\\xfc\\x5e\\x02\\xc0\\x92\\x38\\x3b\\x7c\\xe7\\x4d\\x2d\\x90\\x93\\x99\\x16\\xf2\\x6b\\x71\\xaf\\xd2\\x65\\xf8\\xbe\\xc7\\x4f\\x0d\\xe2\\x47\\xc9\\x64\\x39\\x05\\x58\\x3d\\xf3\\xce\\xe2\\x35\\x37\\xd6\\xb5\\x68\\xc8\\x33\\x8c\\xe5\\xfe\\xe4\\x2f\\x7d\\xd1\\x5d\\xad\\x52\\x47\\xf0\\x09\\xac\\xbf\\xd5\\xd7\\x69\\xb6\\x36\\x69\\x59\\xcd\\x0a\\xe1\\x50\\xf5\\x8f\\x7c\\x80\\xfa\\x10\\xd9\\x89\\xed\\x90\\x11\\x93\\x72\\xe5\\xfe\\xa5\\xda\\x48\\xa4\\xe8\\xea\\x9c\\x72\\x78\\x75\\xdc\\x4a\\x20\\x05\\xb0\\xdc\\x2e\\x3f\\x69\\x7c\\x0c\\xe0\\xa4\\xbd\\xb2\\xf7\\x50\\xc0\\x4f\\xbc\\x0c\\x27\\xd0\\x2d\\xd8\\x28\\x6e\\x54\\xc9\\xc3\\x95\\x9b\\x6f\\xfb\\xdb\\x1d\\xe2\\xaf\\xfe\\x9e\\x78\\x26\\x51\\xe5\\x16\\x8a\\x50\\x0a\\xfe\\xd0\\x37\\xb3\\xe1\\x79\\x0d\\xdd\\x59\\x38\\x51\\xa6\\xa6\\xcc\\xca\\x9f\\xff\\xb4\\xa9\\x9e\\x27\\xdf\\x43\\x81\\x88\\x71\\x53\\x6a\\xb0\\x4f\\x14\\xa0\\x6a\\x1c\\x7c\\xb4\\x7b\\xed\\x62\\x41\\xce\\x74\\x30\\xad\\x3e\\x64\\x0a\\x72\\x67\\x52\\xfa\\x06\\xa9\"},\n{{0xe0,0x40,0x5d,0x37,0x89,0x3e,0x89,0xf5,0x38,0x11,0xd6,0xd4,0x46,0xe1,0xf1,0x93,0xf5,0x1a,0xfa,0x1b,0xbb,0xa7,0x25,0xf9,0x5e,0xb4,0x80,0x33,0x42,0x4a,0x25,0x09,},{0x45,0x10,0x4d,0x59,0x5e,0x44,0x3e,0x8c,0xe6,0x54,0xde,0x9d,0x65,0x50,0x54,0xbf,0x0a,0x99,0xd3,0x56,0x13,0xd7,0x7d,0x57,0x45,0x4c,0xa2,0xd1,0xc8,0x99,0xb5,0x17,},{0x77,0xdd,0xd4,0x91,0xca,0x66,0x2e,0xbf,0xfb,0x12,0xf7,0xf4,0x92,0xd7,0xfb,0xc1,0xa1,0xb4,0x47,0xf6,0xc8,0x59,0x98,0xf2,0xf7,0xcc,0x9a,0xdc,0xe6,0x7d,0xe6,0x3b,0x6e,0xeb,0xd0,0x81,0x17,0x84,0x5a,0x03,0x02,0xf7,0x34,0x97,0x14,0xba,0x9d,0xb2,0xaf,0x58,0x04,0x8b,0x85,0x83,0x7d,0x76,0x60,0xec,0x3d,0xeb,0xee,0xe2,0xd0,0x0f,},\"\\xdf\\x58\\xc4\\xfd\\x07\\x02\\xa2\\x0f\\xaf\\xa3\\xd1\\xd4\\xfe\\x7d\\x85\\x93\\x8b\\x12\\x0f\\xc1\\x1e\\x8d\\x41\\xb6\\x01\\xf0\\xe6\\x0e\\x42\\x23\\x6a\\x49\\xf1\\x26\\x81\\x3b\\xd5\\x12\\xee\\x71\\x35\\x90\\x61\\xe1\\x3e\\xb3\\x14\\xd4\\x17\\xf5\\x6d\\x6d\\x56\\x02\\x85\\xfa\\x89\\x91\\x21\\x32\\x84\\xc4\\x2b\\xc2\\xce\\xf2\\xdc\\x93\\x7b\\xdc\\x0b\\x5e\\x9d\\xc2\\x26\\x9a\\xfa\\xb3\\x2d\\xb3\\x0e\\x68\\x49\\x85\\x59\\x51\\xcf\\xbc\\x53\\xec\\xfa\\x01\\x64\\x38\\x63\\xe0\\x32\\x89\\x95\\xfe\\x85\\x0c\\x0d\\xb5\\x54\\x21\\xbf\\xa5\\x64\\x60\\x1b\\x8c\\x9d\\xb7\\x55\\x2c\\x7e\\x6a\\xa7\\xad\\xfa\\x15\\xa5\\x80\\x21\\xa8\\x42\\x66\\xe9\\x59\\x5c\\x65\\xfc\\xa4\\xa1\\x5f\\xa7\\x0f\\x55\\xf5\\xd2\\x12\\xc9\\xe2\\x77\\xff\\xb8\\x30\\xf4\\xca\\xd1\\x86\\x1f\\x3f\\x49\\x5a\\x9d\\x67\\x2f\\x56\\x91\\x31\\x06\\x39\\xc1\\x2d\\xcd\\x07\\xe3\\xef\\x17\\xa2\\x37\\x50\\xbc\\xb4\\x6b\\x7a\\xd7\\xea\\xc4\\x62\\xeb\\x51\\x22\\x25\\xf3\\xbe\\x7e\\x32\\xf8\\xf4\\x98\\x7a\\x11\\xdf\\x34\\x11\\x66\\x06\\x2b\\x43\\xc6\\x3a\\xb8\\x58\\xa6\\x00\\x49\\x76\\x67\\xfb\\xb8\\x8e\\x93\\xc7\\xe2\\xe0\\xaa\\xb4\\x1c\\x09\\xc0\\x23\\xeb\\x90\\x2e\\xc3\\xba\\xf6\\x79\\xe2\\x5b\\x96\\xe1\\x06\\x92\\x1a\\x91\\x4f\\xd5\\xde\\x20\\x0a\\x47\\x88\\x9d\\xe2\\x3e\\x7b\\x65\\xd0\\xcc\\xdf\\x0c\\x29\\x03\\x64\\x67\\xa1\\x21\\x0c\\x00\\x30\\x30\\x9a\\x2d\\x04\\xec\\x25\\x6d\\x5a\\x4d\\x8b\\x97\\xd4\\x6a\\x3e\\x15\\xf3\\x45\\xb6\\x67\\x17\\x08\\x03\\xcd\\xac\\xf6\\xcb\\x48\\xad\\xd0\\xa1\\x34\\x62\\xdd\\x30\\xfa\\x06\\x2b\\xd4\\x56\\x66\\x41\\xda\\x07\\xd7\\xf6\\x1e\\x06\\x36\\x86\\xed\\xd9\\x6b\\xfe\\x8f\\x97\\xb9\\x86\\xb7\\xc0\\xe4\\x42\\x49\\xcd\\x2d\\x73\\x17\\x47\\x29\\x99\\xb8\\xee\\x4e\\xa8\\x0c\\x90\\x2f\\x3b\\x18\\x89\\x36\\x71\\x2e\\x89\\xd8\\xbf\\x02\\xce\\x8a\\xe7\\x7b\\x6b\\x31\\xab\\xb0\\x63\\x20\\x65\\x45\\x5d\\xdd\\x9f\\x9d\\x1c\\xd9\\x53\\xa4\\xa4\\x9a\\xac\\x1a\\x15\\x16\\x9e\\x68\\x7d\\x4f\\xd3\\xf7\\xc2\\xed\\xfb\\x3a\\xab\\xc3\\xb6\\x61\\x55\\xf7\\xd3\\x15\\xf8\\xa2\\x94\\xfa\\xdd\\xff\\xdb\\x49\\x51\\x36\\x7a\\x0c\\xb8\\x70\\x75\\x9e\\x85\\xa8\\x38\\xaf\\x66\\xba\\x3f\\xc1\\x03\\xda\\x2b\\xab\\xc3\\xf3\\x81\\x69\\x6e\\xf8\\x88\\x2d\\x85\\xa8\\x27\\x8d\\x5f\\xac\\x3a\\x72\\xf1\\x6e\\xb1\\x19\\xee\\x99\\x00\\xb1\\xfd\\x98\\x6c\\x2a\\x9f\\x94\\xee\\xd8\\xe0\\xd4\\xf2\\x73\\x69\\x7e\\x43\\x63\\xa9\\x75\\xff\\x6a\\x7b\\x80\\xd5\\xb4\\xec\\x53\\x55\\xbf\\x63\\xb4\\x2b\\x71\\xcd\\x48\\x42\\x40\\x1d\\x38\\xb5\\xe0\\x0c\\xc9\\x7b\\xfd\\xa4\\x0e\\x45\\x66\\x53\\x68\\x3b\\xc8\\xe6\\xda\\xde\\x7d\\xcf\\x98\\x5a\\x97\\xb0\\xb5\\x77\\x6c\\x4d\\x72\\xca\\x13\\xa1\\x47\\x4e\\x4e\\xb2\\xec\\xcf\\xcd\\x42\\x87\\x86\\xdd\\xd0\\x24\\x6d\\x73\\xa6\\x37\\x7a\\x79\\xcb\\x8d\\xa7\\x20\\xe2\\x26\\xc1\\x94\\x89\\xbd\\x10\\xce\\xdd\\xe7\\x4b\\x49\\xfa\\xc2\\xcf\\xa2\\x07\\x12\\x9c\\x6a\\x10\\x8a\\xa1\\x64\\xbe\\x9d\\x80\\x9c\\x4d\\x31\\x14\\x73\\x60\"},\n{{0x57,0x56,0xe7,0x52,0xdf,0xf6,0x9e,0x3e,0xed,0x84,0x8e,0x4a,0x49,0xc7,0xa8,0xba,0xca,0x12,0x15,0x4f,0x94,0x31,0xde,0xc3,0x56,0x26,0xef,0x8d,0x75,0xa4,0x45,0x14,},{0x59,0x10,0xef,0x00,0xa5,0xb3,0x54,0x14,0x3c,0x46,0x56,0x1d,0xa6,0x2c,0x41,0xaa,0x13,0xd2,0x9c,0x18,0xdc,0x61,0x53,0xbf,0x8e,0x50,0x2e,0x01,0x14,0x00,0x77,0x28,},{0x81,0x57,0xd8,0x33,0x4d,0xed,0x1a,0x32,0x69,0x9b,0x35,0x0a,0xc0,0xd4,0x12,0x00,0x28,0xcd,0x8e,0xf8,0x18,0x94,0x48,0x93,0x48,0x50,0xe5,0x0e,0xe4,0x99,0x9d,0x8f,0xa2,0xcd,0x25,0x76,0x46,0xd9,0x2f,0xba,0x5d,0x66,0x2a,0x82,0x3e,0x62,0x20,0x8a,0xb4,0xfb,0xe0,0x17,0x14,0xa8,0x48,0xa0,0xb9,0x0b,0x55,0xad,0xcd,0x24,0x69,0x02,},\"\\xeb\\x21\\x90\\xa3\\x21\\x9c\\x79\\x2b\\x66\\x66\\xb2\\x75\\x27\\x33\\xad\\x9f\\x86\\xfc\\x39\\x01\\x55\\xc4\\xb4\\x38\\xbe\\x19\\x69\\x59\\x38\\x3b\\x25\\xf3\\xa7\\x49\\x53\\x0d\\x5a\\x4b\\x15\\xeb\\xe2\\xc1\\x8d\\x99\\x17\\x8e\\x6d\\x45\\xbb\\x4a\\xa2\\x12\\x0f\\x95\\xa3\\x52\\xe0\\x40\\x6c\\x63\\xac\\x86\\x72\\x48\\xd9\\xef\\xba\\x12\\x42\\x31\\x06\\x48\\x73\\xc8\\x2f\\xe9\\x95\\xdd\\x03\\x1c\\x7c\\xbc\\x7d\\x15\\xec\\x19\\x1f\\xbb\\x6c\\x47\\x4d\\xc4\\xc7\\x77\\xe8\\xf4\\x57\\x84\\x1e\\xb4\\x62\\x48\\x41\\xc1\\x52\\xd1\\x5e\\xde\\x26\\xe7\\x84\\x79\\xa6\\xa2\\x5f\\xfa\\x33\\x55\\x63\\xf1\\x06\\x4e\\xf0\\x95\\x58\\xb9\\x10\\xe2\\x60\\x84\\x18\\x82\\x0f\\x49\\x55\\x4b\\x67\\x0c\\x6b\\xab\\x34\\xd1\\xd6\\x09\\x84\\xde\\xa5\\x0e\\xd6\\xa3\\x75\\xf4\\x5a\\x74\\xbe\\xad\\xfb\\x04\\xbd\\x93\\x00\\xbd\\x59\\x4e\\x2e\\x20\\xea\\x5d\\x30\\x52\\xbb\\x7d\\xdc\\x51\\xa9\\x49\\xa0\\x04\\x79\\x72\\x68\\x2e\\xbe\\x66\\xd3\\x8a\\xac\\x62\\x92\\x72\\x70\\xde\\x42\\x15\\x0d\\x58\\x22\\x1d\\x03\\xb8\\xac\\xe3\\x58\\x99\\x33\\x48\\x7b\\xf2\\x3d\\x29\\xc5\\xc2\\xc8\\x43\\xae\\xfa\\x2e\\x1c\\xa2\\x2f\\x9d\\x16\\x80\\xf8\\x0c\\x76\\x6d\\x14\\x3c\\xe5\\xec\\xef\\x25\\x3a\\x74\\x5c\\xb7\\x1e\\x72\\xf6\\x50\\x4a\\xd9\\x11\\xf7\\xcb\\x4a\\x81\\x9c\\xd0\\x74\\x86\\x3a\\x92\\x70\\x69\\x29\\xa3\\x14\\x2f\\x8d\\xb7\\xac\\x16\\x41\\x02\\xac\\x2c\\xa0\\xd2\\xe1\\x9a\\x72\\x5e\\x1b\\x5f\\x81\\xf4\\x43\\xc7\\x3e\\x04\\x84\\xf2\\x6a\\x45\\xa3\\xae\\xf8\\x4f\\x1f\\x3f\\xa0\\x4a\\x4a\\xc6\\x95\\xd2\\xda\\xb6\\xef\\xba\\x45\\x6a\\x28\\x1a\\x39\\x73\\xcc\\x18\\x6e\\x68\\x0a\\x66\\xdf\\x52\\x1a\\x4d\\x1f\\x9e\\xdf\\x4d\\xfb\\x27\\x4a\\x42\\x70\\x97\\xbf\\x86\\x32\\x81\\xcf\\xb0\\xed\\x80\\xf8\\xd7\\x67\\x66\\x38\\xd6\\xcd\\xac\\x93\\x78\\x43\\xef\\xbc\\xfc\\xe9\\x1d\\xe1\\xdf\\x6c\\x52\\xb5\\x94\\x57\\x1b\\x93\\x15\\x60\\x0e\\x4b\\x65\\x52\\xde\\xfb\\x84\\x37\\xa8\\x07\\xba\\x21\\x29\\x8e\\x3d\\x97\\x22\\x12\\xba\\x31\\x46\\x92\\x91\\x7f\\x40\\x07\\x53\\x11\\xac\\xd0\\x09\\x39\\x52\\x41\\xb9\\xf1\\xb2\\x56\\xc5\\x15\\x73\\x5d\\xc6\\x74\\xf8\\xe8\\x66\\xd1\\xee\\xb4\\xc3\\x28\\x54\\x8a\\xee\\x71\\x23\\x1c\\x4c\\x9d\\x5b\\xd2\\x2e\\x39\\xde\\x88\\xd1\\x9f\\xab\\xf4\\x9f\\x0b\\x98\\x69\\xcb\\xf8\\x35\\x21\\x4b\\x15\\x52\\x2a\\x93\\xd3\\xa5\\x00\\x7b\\x11\\xf0\\xb5\\x0e\\x52\\x28\\xd4\\xee\\xbb\\x45\\x71\\xb3\\x5d\\xa8\\x4f\\x4f\\x68\\x7e\\x3f\\x43\\x79\\x3d\\x54\\xf3\\x82\\x5b\\x37\\xa5\\x09\\xea\\x56\\x4b\\xdf\\x21\\x7f\\xf4\\xad\\xf6\\x84\\x7b\\xbe\\xa4\\x31\\x6a\\x1d\\xbc\\xc7\\x44\\x8e\\xcd\\x53\\x63\\xea\\xab\\xc1\\x28\\xde\\xcf\\x05\\x4e\\xe1\\xa0\\xee\\x2d\\x87\\x19\\x79\\xf8\\xa6\\x3b\\x26\\x92\\xb0\\x9f\\x6e\\x98\\x6a\\x13\\x8e\\x7f\\x68\\xf6\\x0a\\xa4\\x26\\xa1\\xc9\\xb0\\x1a\\x49\\x02\\xe1\\x3b\\x17\\xbc\\x83\\x12\\x41\\x0c\\x28\\xbe\\xd2\\x9b\\x60\\x1b\\x0f\\xc9\\xf3\\xbc\\x2d\\x22\\x3f\\x87\\x52\\x51\\x10\\x0f\\x86\\x9c\\x6b\\x58\\x44\"},\n{{0xb9,0x04,0xac,0xb1,0x9e,0x5c,0xf8,0x72,0xd3,0x64,0x0c,0xd1,0x8d,0xdf,0x3c,0x0b,0x66,0x57,0xe0,0x11,0x7c,0xe6,0x59,0xdb,0xf5,0x02,0x59,0x01,0x5d,0x3f,0xbf,0x32,},{0xe0,0x4a,0x8a,0xa5,0x6d,0x18,0x18,0x48,0x3b,0x10,0xd0,0xa7,0xc9,0x19,0xe1,0xd5,0xd8,0x00,0x1e,0x35,0x51,0x0e,0x1e,0xc6,0x2f,0x71,0x14,0xdb,0xe8,0x1a,0xe0,0xbe,},{0x9a,0xaf,0x8a,0xc9,0x71,0x40,0xd5,0x50,0x8d,0x58,0xf5,0xac,0x82,0xb7,0xfd,0x47,0xe6,0xb1,0xf6,0x8a,0x7c,0x78,0xa2,0xac,0x06,0xf0,0x41,0x6e,0xf8,0xe9,0x91,0x95,0x3f,0x62,0xc4,0x7f,0xd5,0xfb,0xc6,0xc1,0xe0,0x1b,0xae,0x1c,0x92,0xa3,0x3e,0xf5,0x2b,0x7e,0xfa,0x5f,0x17,0xbb,0x86,0x33,0xbd,0xc1,0xae,0xeb,0xce,0x31,0x8f,0x0f,},\"\\x83\\xf4\\x12\\x4d\\x5a\\xf9\\x55\\x13\\x9b\\x1b\\xc5\\x44\\x1e\\x97\\xc5\\xfa\\xc4\\x91\\xb4\\xea\\x91\\x14\\x07\\xe1\\x54\\x20\\xa0\\x34\\x7e\\xd7\\xfa\\x1f\\x88\\x19\\xe3\\x6c\\x8e\\xd5\\x74\\x0c\\x99\\xd4\\x50\\x5a\\x78\\xb6\\x19\\xd5\\x60\\x74\\x9a\\xf5\\x0b\\x05\\x73\\x51\\x08\\x16\\xd6\\x13\\x22\\xcd\\xa9\\x76\\xa5\\xd4\\xca\\x32\\x05\\xf5\\xf0\\xe6\\x0e\\x75\\x9a\\x5d\\xf1\\xa0\\xbd\\xf3\\x6d\\xfe\\x97\\x17\\x90\\x6a\\xc5\\x7c\\xbf\\xc9\\x70\\xab\\x43\\xb6\\xfa\\x18\\xe6\\xc0\\x00\\x6c\\x84\\xfc\\x72\\x54\\x47\\x0a\\x0b\\x77\\x47\\x27\\xbf\\x5f\\x8e\\x67\\x94\\x23\\xa5\\x31\\xe4\\x1c\\xb5\\x31\\x0f\\x9b\\xcb\\xf5\\xa5\\x44\\x5e\\xbc\\x39\\xfb\\xd9\\x09\\xce\\x11\\xe9\\x7b\\xc2\\xf6\\x6a\\x4a\\x1b\\xb6\\xc2\\xf1\\x67\\xf2\\xc6\\xe8\\x0e\\xb9\\xb8\\xb7\\x2d\\xf3\\xe8\\xcf\\xd4\\xe5\\x14\\x48\\xdc\\x14\\xc0\\xb8\\x37\\xf2\\x94\\x96\\x93\\xd1\\xd0\\x54\\xc8\\xf9\\x5b\\xff\\x7f\\x1e\\x36\\x45\\x67\\xd0\\x34\\xf2\\x22\\x3e\\x15\\x94\\x77\\x2a\\x43\\xdc\\xfe\\x05\\x97\\xfd\\x6d\\x13\\x3b\\x3f\\x2e\\x96\\xff\\xc5\\x66\\x7d\\xd5\\x92\\x8f\\x23\\xec\\x3c\\x75\\x0f\\x84\\x59\\x93\\xa3\\x4e\\x97\\x76\\x15\\x9a\\x68\\x30\\xd6\\xfd\\x90\\x13\\xee\\x7a\\xea\\xa1\\xfc\\xcd\\x69\\xb9\\x6d\\xf2\\x84\\x70\\x4f\\xd0\\x88\\x88\\xb1\\x5b\\x64\\xe2\\xe9\\x0d\\x57\\x8c\\x5c\\xfc\\x0f\\x95\\x69\\x3f\\x6a\\xb6\\x5c\\x69\\x47\\x44\\x6a\\x85\\x7c\\x02\\x9c\\x7c\\xa6\\x60\\x80\\xb7\\x54\\xc7\\x73\\x4b\\x78\\x99\\x8a\\xbe\\x9b\\x7c\\xc6\\xef\\xd0\\x9a\\x44\\x18\\x19\\x4d\\x88\\xb3\\x4e\\xc6\\xc3\\x3a\\xf6\\x30\\xdb\\x81\\xde\\x5b\\x99\\xfe\\x65\\xaa\\xc8\\xb7\\x33\\x62\\x37\\x91\\x19\\xc7\\x00\\xd1\\x07\\xed\\xfc\\x19\\xf2\\x70\\x76\\x04\\x68\\xee\\x8e\\x5f\\x15\\x5d\\x9a\\x34\\x7e\\x57\\xb5\\x93\\x0f\\x32\\x7a\\x8d\\x11\\xc6\\x67\\x4d\\xdd\\x02\\x0f\\x9e\\x7d\\x9b\\x76\\x1d\\xba\\x5b\\x83\\xa8\\x73\\x02\\xf1\\x83\\x3e\\x5a\\xbd\\x49\\x52\\x6d\\x66\\x39\\x1e\\x5b\\xf0\\xe3\\x5b\\x44\\x53\\xd6\\x30\\xbf\\x7d\\x0a\\xdb\\xfe\\x50\\x1a\\xef\\x81\\xe6\\xc5\\x93\\x8f\\x92\\xcb\\x75\\x2f\\x5f\\x14\\xd2\\x80\\x6f\\x90\\xae\\x15\\x46\\x05\\x1c\\xcc\\x7f\\x91\\x3c\\x5d\\x6a\\x38\\xff\\x3b\\x7b\\x9a\\x23\\x66\\x2e\\xf1\\xf0\\x08\\x08\\xed\\xb2\\xfa\\x31\\xec\\xba\\x5c\\x8d\\x33\\x87\\xe8\\x75\\x41\\xcd\\x06\\x16\\xed\\xbf\\x3a\\xaa\\x35\\xa5\\x37\\x92\\x28\\x61\\xf4\\x4c\\xbd\\x9f\\x99\\x2b\\x82\\x46\\xd9\\xc6\\x4c\\x41\\x98\\x81\\x70\\x1a\\xb4\\x3f\\x7f\\xd4\\x64\\x21\\x0d\\x80\\x2b\\xa6\\x56\\xd9\\x5c\\x0f\\x24\\xa3\\x45\\x99\\xb2\\x0b\\x1e\\xc2\\x00\\x11\\x48\\x5c\\xfc\\xb3\\x18\\x6b\\x7b\\xcf\\x69\\xd7\\x45\\x81\\xa7\\xa3\\xee\\xd6\\x13\\x4c\\x4e\\xec\\xd6\\x55\\x74\\xa4\\x32\\x0d\\x9c\\x57\\xa8\\x49\\xc4\\xe7\\x8c\\x8a\\x5c\\xe8\\x25\\x05\\x00\\x4a\\x54\\xf1\\x9d\\x4b\\xdc\\x82\\x23\\x40\\x1b\\x34\\x94\\x6b\\x7d\\x66\\xe4\\x7e\\x63\\xcf\\x9d\\x0f\\x57\\xd0\\x94\\x54\\x91\\x38\\x4b\\xc6\\x86\\x8c\\x4b\\x47\\x86\\x90\\xe5\\x50\\x02\\x1d\\xf1\"},\n{{0x8a,0x35,0x01,0xb7,0x69,0x53,0x60,0x3c,0x90,0x33,0xe3,0xbc,0xbf,0x3e,0xc3,0x78,0xd2,0x57,0x01,0x1a,0x6c,0x50,0xb8,0x97,0x62,0xd4,0x91,0xea,0xa7,0x2c,0x5e,0x0d,},{0x77,0x8f,0x20,0x19,0xdc,0xd8,0xdb,0xb8,0x6c,0x67,0x37,0xcc,0x8d,0xc1,0x90,0xc5,0xa0,0x4c,0x50,0xb5,0xbf,0x45,0x88,0xbc,0x29,0xfa,0x2a,0x47,0xaf,0x25,0x26,0x72,},{0xa8,0xa3,0x09,0xba,0x52,0x12,0x5e,0x76,0xa4,0xa6,0x1e,0xb4,0x3f,0xd4,0x13,0x5c,0x41,0xab,0x11,0x79,0x9b,0x91,0xcc,0x54,0xff,0xc9,0xc6,0xa2,0x0f,0x05,0x0c,0xc5,0x95,0xb2,0x81,0x43,0xc8,0x74,0xbd,0xb9,0x28,0xbe,0xed,0x26,0x1d,0x9c,0x0f,0x12,0xaa,0x19,0x2e,0x66,0x40,0xbf,0xda,0xd5,0x4b,0xa0,0xd4,0x78,0x42,0x6b,0xce,0x09,},\"\\xe6\\x09\\xf1\\x22\\x4a\\x6a\\x45\\x11\\x40\\xcb\\xc0\\x25\\x4d\\x43\\x2c\\xe5\\xfd\\xdd\\x08\\xa8\\xe9\\x12\\xf8\\x1c\\x41\\x2f\\xdf\\xd5\\x18\\x2f\\xf6\\xac\\x2f\\x13\\xc5\\x76\\xc8\\x14\\x5b\\x15\\xf2\\x5b\\x40\\x9d\\x85\\x3f\\x91\\x44\\x09\\xe4\\xe0\\x2c\\xef\\xc3\\x9d\\x9b\\xef\\x4a\\x2a\\x06\\x04\\x98\\x57\\x0b\\x2d\\x3a\\x28\\x38\\xc9\\xb0\\xb8\\xe3\\xaf\\x4f\\xc3\\x7e\\x19\\x15\\xf8\\x04\\xa8\\x01\\x88\\x58\\x5b\\x30\\xb6\\x8a\\x3f\\xfb\\x2e\\x96\\x0c\\x73\\x20\\xe8\\x27\\xd2\\xfe\\x36\\xe6\\xa3\\x28\\xcc\\x6e\\x78\\x06\\x34\\x8a\\xdb\\x0b\\x77\\x3b\\x78\\x4d\\xe5\\x29\\xbb\\x6f\\x64\\x75\\x1b\\x21\\x05\\x85\\x94\\x94\\xfd\\x49\\xdb\\x0b\\xc7\\xf6\\x2d\\xf4\\x6b\\x9d\\x7c\\xe6\\x76\\x97\\x5c\\xc5\\xf4\\x38\\x56\\x49\\x84\\x36\\x81\\x2e\\x04\\xf2\\x6f\\xb8\\xb8\\xab\\x7e\\xba\\x12\\xf1\\xd5\\x67\\x22\\xeb\\x82\\xeb\\xfa\\xfa\\x47\\x35\\x97\\x7a\\x26\\x68\\x1c\\xb0\\x3f\\xa4\\xbc\\x69\\x51\\xab\\x9c\\xbd\\xf7\\x87\\xe3\\x27\\x8f\\x2f\\x57\\xf2\\x9e\\x12\\x09\\x5f\\x8c\\xa2\\xa1\\x78\\xcf\\xa7\\x57\\x13\\x37\\xf0\\x27\\x42\\x37\\x66\\x9f\\x97\\x65\\x7d\\x4b\\xad\\xb3\\x94\\x36\\xd7\\x86\\x49\\x25\\x80\\xfd\\x55\\xd8\\x6b\\xe3\\xa0\\xcd\\x17\\xd1\\x60\\x57\\x01\\x7b\\xaa\\xae\\xa0\\x0c\\x1e\\x14\\x55\\x21\\x59\\xbc\\xab\\xc0\\xe6\\x66\\xba\\xd3\\x41\\x8e\\x4e\\xc1\\x3b\\xfe\\x16\\x3b\\xe2\\x56\\xf0\\xc8\\x9b\\xc2\\x34\\x4a\\x8d\\xdf\\x99\\xca\\x81\\x60\\xb1\\x89\\x87\\x5a\\xd3\\x22\\xd9\\x0f\\x58\\x13\\x25\\x28\\x1d\\x53\\x89\\x96\\x5c\\x0a\\x7b\\x7b\\xca\\xe2\\x29\\x4a\\x3c\\xbe\\x35\\xa4\\xe4\\xe8\\x3b\\x54\\xc4\\x27\\x63\\x53\\x96\\x0f\\xad\\x11\\x85\\x32\\xd4\\x9b\\x70\\x76\\xf2\\x5a\\xd1\\x90\\xab\\x56\\x94\\x91\\x4f\\x71\\x08\\xb0\\xab\\x69\\x69\\xa1\\x91\\x28\\xfb\\x0a\\xef\\x00\\xe6\\x5a\\x04\\xfc\\x83\\x2d\\x07\\x69\\x61\\x67\\xb9\\x34\\x2b\\x35\\x5e\\xc5\\x77\\x37\\xca\\x37\\xcb\\xff\\x3b\\xb3\\x19\\x31\\xcb\\x58\\x71\\x2a\\x4c\\x46\\x89\\x52\\xc6\\x45\\x9d\\x56\\x7a\\x26\\xe7\\x95\\x01\\xe4\\xe3\\x1b\\x1b\\x09\\x53\\x53\\x76\\x32\\x02\\x9e\\x9b\\x49\\x0f\\x72\\xe5\\xa6\\xe0\\x57\\xdd\\xb4\\xb3\\x17\\x56\\xfd\\x97\\x04\\x21\\x8b\\x1b\\x8f\\x4d\\xcb\\x54\\x30\\xc0\\x25\\x04\\x2f\\x47\\x16\\x9b\\xfc\\x7c\\x80\\xd7\\x1c\\xab\\x8c\\xa0\\x7f\\x34\\x0a\\xfa\\x00\\x8a\\xbb\\xe2\\xe3\\xa0\\xab\\xe1\\x41\\xda\\x8d\\x41\\xca\\x6b\\xd6\\x9d\\x36\\xfd\\xb1\\x1a\\x41\\xce\\x0b\\x72\\xfa\\xbc\\x00\\xd9\\x7e\\xa6\\x05\\x27\\x00\\x10\\xb2\\x59\\xdf\\x8e\\x10\\xdd\\x22\\xdc\\x17\\xc1\\x39\\x90\\xa0\\x5f\\x02\\x33\\xe3\\xca\\x85\\x6b\\x40\\x97\\x1c\\xb3\\xe2\\x1c\\x8b\\x39\\x50\\xb1\\x3f\\xc8\\x4e\\x1f\\x26\\x6c\\x2a\\x6f\\xbe\\xce\\x88\\xd5\\x97\\x25\\xc3\\xcf\\xb2\\x22\\x5d\\xbc\\x1e\\xe9\\x5b\\x68\\x6d\\xb7\\x04\\xfc\\x93\\x7b\\x76\\x6f\\x0a\\x9b\\xfe\\x95\\xa4\\x2b\\x90\\x10\\xf1\\x22\\x9c\\x61\\x0d\\x7e\\xde\\x09\\x57\\x12\\xc8\\xf0\\xf1\\xfb\\x00\\x47\\xc0\\x40\\xa8\\x70\\x30\\x6c\\xd8\\xdc\\x74\\xc4\\xda\\x51\\xbf\"},\n{{0x42,0xb5,0x36,0x52,0xd0,0x8b,0x5d,0x76,0x6e,0x66,0xad,0x8f,0x3e,0xbf,0x69,0x3c,0xfd,0x77,0x90,0x7c,0xad,0xd9,0x8b,0x54,0x66,0xdf,0x77,0xdf,0xa2,0xc6,0x37,0xad,},{0x88,0x46,0x3b,0xb8,0xa4,0xb6,0x38,0x8d,0x92,0x4c,0xb8,0x62,0x09,0x83,0x41,0x95,0x43,0x5d,0x79,0xd7,0x7f,0x8c,0x02,0xf4,0x6b,0xbd,0x16,0xd8,0x2e,0xfe,0x42,0xb3,},{0x30,0xc4,0xb9,0x9e,0x68,0xec,0x33,0x51,0x30,0x8f,0xbc,0x76,0xd9,0xca,0xf0,0xaf,0x62,0x21,0xb5,0x96,0xb7,0x01,0x7f,0xe1,0x0c,0xc6,0x33,0x02,0x3b,0xa9,0x7f,0x02,0x38,0x96,0xfe,0x32,0x2b,0xaa,0x34,0x76,0x60,0x61,0x0e,0x05,0xfa,0x49,0x3d,0x21,0x8f,0xa3,0x60,0xf1,0x8d,0x93,0xe2,0x75,0xd1,0xef,0xf6,0x66,0xb6,0x3d,0xb2,0x04,},\"\\x9e\\xe9\\x13\\xc7\\x4e\\xe3\\xc5\\xe8\\xc9\\x0d\\x64\\xb8\\xae\\x3a\\x60\\x04\\x9f\\xc7\\x65\\xe1\\x76\\x06\\x0b\\xcd\\x1c\\xd0\\x9f\\x0e\\xda\\x60\\xbf\\x23\\xba\\xdb\\x8a\\x1c\\xaa\\xc3\\xd6\\x6e\\xbc\\x52\\x68\\x14\\x6e\\xe4\\xa5\\x4e\\x1e\\xb2\\x31\\xed\\x25\\xef\\xf9\\x5b\\x90\\xa6\\xe9\\x83\\x37\\xa5\\x40\\xa3\\xf4\\x84\\x49\\x79\\x4a\\x48\\x73\\xbf\\xc2\\xe8\\x47\\x28\\x96\\x6b\\xb7\\xc6\\xff\\x67\\x6a\\x2f\\xf5\\x73\\x11\\xc1\\xc2\\x5e\\x15\\xfb\\xf3\\xd4\\x0e\\x9f\\x25\\xab\\x5d\\xb9\\x1f\\xdd\\xb7\\xa0\\xae\\x43\\x6c\\x8e\\xc0\\x70\\x75\\x4b\\x6d\\x74\\x3a\\xa1\\xd6\\x04\\x8f\\xb5\\xbd\\x7f\\x5b\\x8e\\x4c\\xca\\xd2\\x03\\x28\\x38\\x95\\x30\\xf1\\x13\\x74\\xa4\\x89\\xb1\\xd5\\x05\\x31\\xa3\\x9c\\x9b\\x32\\xb4\\x03\\x69\\x62\\x60\\x06\\xd2\\x64\\xa9\\x9e\\xec\\x4f\\xac\\x13\\x41\\xf4\\xe7\\x46\\x79\\x45\\x7b\\x41\\x8e\\x6b\\xbf\\xba\\x23\\x3f\\x1c\\xa1\\x58\\xf7\\xb2\\x9d\\x40\\xd5\\x03\\x01\\xf9\\xd9\\x25\\x36\\xfd\\xc5\\xc2\\x3f\\xe5\\xde\\xe4\\xd6\\xdf\\x0e\\xbf\\x13\\xdf\\xa3\\x75\\x4a\\x14\\xc8\\x56\\x00\\x9a\\xde\\xa1\\xdd\\xa4\\x09\\x30\\x4c\\x1f\\x60\\xd2\\x53\\x30\\xfb\\x10\\x95\\x79\\x47\\xa0\\x05\\x08\\xf2\\xfd\\x76\\x42\\x2e\\xac\\x69\\x4c\\xc3\\x9f\\xa8\\xae\\x7f\\xcc\\x77\\xa0\\x2f\\xd9\\xee\\x5f\\x91\\x0d\\x93\\xe8\\xaa\\xc6\\x8f\\x14\\x5d\\xd8\\x78\\x87\\x6b\\xa8\\xed\\xa0\\xa4\\x9f\\xcb\\x20\\x9c\\x34\\xea\\x22\\x0d\\x4d\\x06\\x05\\x54\\x6f\\xc4\\xa8\\x09\\xba\\xf0\\x10\\xd5\\x33\\xe4\\x5d\\x17\\xb0\\xe1\\x6a\\x46\\xe9\\x1e\\xa6\\xfe\\xc2\\xcd\\xc5\\xa8\\xb3\\xec\\x50\\x14\\xb2\\x5e\\x92\\xd8\\xe5\\xc9\\x28\\xab\\x06\\x99\\x3d\\x4f\\xe2\\x3a\\xc8\\xd4\\x5c\\x89\\x03\\x78\\xdd\\x13\\x3f\\x00\\xed\\xb9\\x37\\xc0\\x71\\xf7\\x5c\\xfc\\x13\\xa4\\x02\\xe3\\xe4\\x29\\xa8\\x48\\x65\\x2a\\x17\\x5c\\x9b\\x6f\\x6e\\xac\\x86\\xf6\\x18\\x8a\\x44\\x48\\xa9\\x6c\\xe2\\x87\\x2e\\x5f\\x65\\xf9\\xbd\\xb8\\x71\\x66\\xc9\\xb8\\x7a\\x7e\\x95\\x8e\\x80\\xbb\\x65\\x66\\xe3\\xfc\\xf8\\x71\\x19\\x0c\\xf4\\xa8\\x67\\xe6\\x12\\xcf\\xc1\\xe4\\x37\\x1d\\x2b\\x73\\xd2\\xa0\\xad\\x0a\\xa4\\x00\\xba\\x69\\xe6\\x63\\x36\\x23\\x3b\\x0f\\x3c\\x52\\xb8\\xa6\\x8b\\xca\\x05\\x12\\x56\\x01\\x25\\x50\\x46\\xe6\\xf4\\x9d\\x68\\x8d\\x2d\\xb8\\x5c\\x7b\\x82\\x12\\x70\\x51\\x6e\\x3c\\x06\\x13\\xf3\\xf2\\x3f\\x9c\\x57\\xcb\\x4c\\x87\\x14\\x28\\x5c\\xdf\\x95\\xe1\\x06\\xa3\\xb5\\xaf\\xca\\xeb\\x81\\xb7\\x2f\\x34\\x3e\\x87\\xbd\\x92\\xf1\\x58\\x1d\\xcf\\x9a\\xa9\\x0a\\x02\\x4f\\xa4\\xa1\\x04\\x80\\x59\\xe3\\x0d\\xe8\\xff\\x0d\\x16\\x79\\x4d\\xcd\\x74\\x5d\\x2b\\x2d\\x53\\x4c\\x52\\x0f\\x82\\x78\\x53\\x86\\x74\\xa9\\x34\\xc6\\xf1\\x4a\\x84\\x28\\xe3\\xda\\x01\\x8a\\x36\\xe4\\x5a\\xa5\\x82\\x7c\\xf4\\xb1\\x52\\x84\\x34\\x6f\\xd6\\x93\\x63\\x14\\x92\\x19\\xbb\\x0d\\x1b\\xc9\\x27\\xd8\\xd1\\x93\\xc4\\x82\\x69\\x2f\\x97\\xdc\\x88\\xd8\\xed\\x33\\x7d\\x0c\\x9d\\xc9\\x9c\\x7a\\x5e\\x11\\x1d\\xce\\xd4\\x22\\x50\\xd5\\x80\\xe2\\x06\\x92\\xbb\\x7b\\x88\"},\n{{0x14,0xcf,0xe0,0x0f,0xa7,0x19,0x0a,0xe8,0x10,0x88,0x8a,0xe2,0xbb,0xd0,0xff,0x64,0x12,0xcf,0x1f,0xd4,0x08,0xa3,0x08,0x29,0x43,0x83,0xa1,0x94,0x53,0xb5,0x90,0x73,},{0x4e,0x61,0xaf,0xe8,0xc1,0x74,0xb6,0xee,0x1a,0x29,0xfa,0x09,0xcf,0x87,0xb4,0x00,0x81,0x39,0xf1,0x07,0x0b,0xc8,0x53,0x1b,0x6d,0x06,0xf5,0x4c,0x95,0x62,0xa4,0xf3,},{0xf7,0x85,0xa4,0x6f,0x69,0xbb,0xd0,0x99,0xfa,0x01,0x11,0x24,0xba,0x90,0x32,0xc1,0x89,0x74,0x2c,0x9e,0x00,0x1d,0xbb,0x87,0x81,0xd8,0x22,0x33,0x45,0xa9,0x56,0x9d,0xc1,0x44,0xca,0x69,0x4d,0x90,0x24,0x5e,0x0e,0x51,0x3e,0x88,0xab,0x02,0x3f,0x7f,0x0f,0x99,0xb7,0x41,0x61,0x59,0x75,0x8d,0xd0,0x34,0xe7,0xa8,0x9c,0xff,0x36,0x00,},\"\\xbc\\x66\\xf8\\x01\\xda\\xa8\\x29\\x85\\x8e\\x74\\x02\\x93\\xd4\\xd2\\x18\\x7b\\x8e\\x1a\\x5a\\xfb\\xa5\\xfd\\x67\\xb1\\x09\\x56\\xc6\\x53\\x46\\xac\\xa9\\x44\\x29\\xd3\\x2e\\x4c\\xfb\\x35\\x84\\xab\\x0e\\x00\\x5d\\x0d\\xd7\\x42\\x78\\x1d\\x47\\xe8\\x94\\x47\\xc4\\xe1\\xd8\\x1b\\xf7\\xe6\\x15\\x4f\\x8f\\x73\\xaf\\x03\\x36\\x1a\\xd5\\x6e\\xa3\\xc0\\x60\\x00\\x75\\x4b\\x9f\\x32\\x7d\\x4e\\xde\\xac\\xc4\\xd3\\x48\\xaf\\xb5\\x48\\x23\\xe1\\xc9\\xd4\\x9c\\xd8\\xff\\x2b\\x19\\xf4\\x20\\x21\\xb4\\x0d\\x58\\x0c\\x39\\xce\\x3d\\x24\\x36\\x61\\xb8\\x54\\x21\\xfe\\xc9\\x15\\xba\\x9d\\xd2\\x76\\x2f\\x85\\x0b\\xd2\\x08\\xfd\\xbf\\x20\\xff\\xab\\xa5\\x6a\\x46\\x86\\x60\\xf1\\x7c\\x00\\xfb\\x1c\\x0f\\x4e\\x85\\x27\\xa5\\x09\\xdd\\x4e\\xec\\x13\\x36\\x0c\\xf6\\xe3\\xca\\xc5\\x42\\xb8\\x75\\x18\\x2f\\x2a\\x7c\\xe7\\xbe\\x0a\\x33\\x30\\x2f\\xe2\\x6d\\x36\\x29\\x62\\x93\\x84\\xe3\\x5c\\x06\\x78\\x9d\\xe6\\x34\\xe9\\x0e\\x96\\x4f\\xbd\\xa8\\xcb\\xba\\x98\\x11\\x1e\\x22\\xe8\\xd0\\x76\\x26\\x84\\x26\\x6a\\xab\\x76\\xae\\xba\\x4a\\x38\\x07\\x78\\x69\\x68\\x14\\xa1\\xe3\\x11\\x94\\x3c\\xb3\\x50\\x58\\x92\\x64\\x0c\\x44\\xe3\\xaa\\xc4\\x53\\x0c\\x50\\xac\\x60\\x4a\\x8d\\x2c\\xcc\\x7c\\xea\\xbf\\xfe\\xa4\\xaa\\x3d\\x7f\\x48\\xa6\\x6d\\xcd\\x75\\x88\\xb8\\x02\\x09\\xdb\\xc1\\x73\\xf0\\xc6\\x63\\xe8\\xfc\\x87\\xa3\\x6e\\x89\\x2e\\xc9\\xa3\\xff\\x8f\\x60\\xd2\\xe0\\xd8\\x70\\x4e\\x5b\\x6c\\xbb\\x87\\x32\\x75\\x15\\x1a\\xd4\\xcc\\x00\\x57\\x16\\x50\\x31\\x90\\x50\\x39\\x65\\x1c\\xa1\\x0a\\x95\\xc6\\xfd\\xa3\\xb2\\x78\\x27\\xa6\\x57\\xef\\x9a\\x5f\\xc3\\xeb\\x5b\\x53\\xca\\xc6\\x1d\\xda\\xf5\\xa4\\x17\\x04\\xc8\\x78\\x57\\x0c\\xbc\\x3c\\x41\\xc4\\x75\\xb1\\x17\\xc0\\x5e\\xab\\x0b\\xb1\\x96\\xbc\\xb7\\xc4\\x33\\x34\\xde\\xbd\\x64\\xb9\\xe3\\x74\\x50\\xd2\\x3f\\x5c\\x10\\x16\\x1e\\xc5\\xab\\x4f\\xcc\\xd7\\xcf\\x30\\x8e\\x2a\\x99\\x95\\xcc\\x9e\\x57\\x8b\\x85\\xe8\\x28\\x5a\\x52\\x08\\xb9\\xef\\xd4\\x2a\\xf9\\xcf\\x2a\\xc2\\xb3\\xb7\\x46\\x42\\x54\\x88\\x9a\\x21\\x87\\x31\\x7e\\x32\\x49\\x97\\x09\\xb9\\x13\\x95\\x3a\\xd4\\x6f\\x1c\\x23\\xe1\\xb6\\xb5\\x6f\\x02\\x4c\\x4a\\x7d\\x48\\x46\\x11\\x92\\xc0\\x1c\\x56\\xc5\\x4c\\x56\\x47\\x91\\xec\\x0a\\x67\\xb6\\x1a\\xcb\\xf9\\x57\\xe6\\xd0\\xd7\\xda\\x80\\x53\\xed\\x13\\xa4\\x18\\x93\\xd7\\x67\\xfc\\x57\\x37\\xcd\\x19\\x55\\x53\\xda\\x5d\\x5b\\x07\\x06\\x5f\\x47\\xd7\\x2a\\x35\\xc4\\x2b\\x00\\x1e\\xb6\\xdb\\xd0\\xf8\\xe7\\x7a\\x4b\\x76\\xa6\\x26\\x61\\x92\\x64\\x7f\\x41\\x55\\xea\\x11\\xbd\\x12\\x37\\xba\\x77\\xc8\\x7c\\x62\\xbf\\x4b\\x01\\x14\\x9f\\xc5\\x8b\\xc2\\x8f\\x0b\\x5a\\x28\\x64\\x85\\xd3\\x71\\x7d\\x32\\x39\\x64\\x04\\x62\\x18\\xe7\\x0c\\x7e\\x38\\xb7\\xd5\\xe7\\x4b\\xa6\\xb1\\x2b\\x02\\x2f\\x18\\x19\\x7d\\x92\\xc1\\x3b\\xca\\x89\\x33\\x5c\\x85\\x6c\\xbc\\x57\\x56\\xaa\\x3b\\x64\\xec\\x1f\\x46\\xe3\\x96\\xb1\\x16\\x1c\\x87\\x1c\\xd2\\xdf\\xde\\xd1\\xa4\\xec\\x91\\x92\\x74\\x29\\x37\\xc0\\x70\\x45\\x31\\xc7\"},\n{{0xac,0x0f,0x7f,0x04,0x18,0xde,0x67,0xe3,0x48,0xfa,0x6d,0x56,0x86,0xc4,0x6d,0x21,0xca,0x72,0x62,0x2e,0xe6,0x9e,0xaa,0xbe,0x00,0xd5,0xc9,0x07,0x5a,0x34,0xf1,0x79,},{0xfe,0xab,0xde,0x08,0xf0,0x0a,0x2b,0x68,0x2b,0xce,0x9d,0x45,0x99,0x0b,0xf4,0x5a,0xfc,0x95,0x83,0x39,0xdc,0x44,0x10,0x6d,0xad,0x33,0xb2,0xc4,0x90,0xef,0x70,0x90,},{0x75,0x91,0xcf,0x82,0x57,0xbe,0xad,0x39,0xa1,0xad,0x3b,0xa1,0x91,0x8d,0x51,0x8e,0x67,0x24,0x35,0x6b,0xf6,0x25,0xa5,0x73,0xea,0xe5,0x01,0xd1,0xaf,0x94,0x6c,0x13,0xc2,0x90,0xcb,0x63,0x15,0x6e,0xc9,0xd3,0x62,0x72,0x6e,0xe5,0x0b,0x39,0xfc,0x0a,0x7a,0x2b,0xbd,0x69,0xd4,0xa8,0x1b,0x75,0x93,0x2a,0x90,0xf8,0xc7,0xac,0x7d,0x03,},\"\\xe8\\xd0\\xe8\\x32\\x53\\x35\\xe0\\xf3\\x5a\\x85\\x46\\x7b\\xee\\xd1\\xe1\\x1c\\x6a\\x20\\x78\\xc3\\x5a\\xe4\\xa4\\xa1\\x05\\x43\\xed\\xe4\\x0c\\x17\\x12\\xbc\\x95\\x20\\x12\\xd2\\xf8\\xfe\\xc1\\x05\\xae\\xf7\\xc6\\xc6\\x5b\\x36\\x34\\xb4\\xa7\\x4b\\x22\\xb4\\x98\\xb9\\x13\\x50\\x7d\\x1f\\x6c\\xfd\\xe8\\x38\\x58\\xe6\\x83\\x0c\\x0a\\xf4\\xf4\\x64\\xa6\\x89\\x9d\\x5c\\x4e\\x27\\x9a\\xff\\x36\\x75\\x4c\\x21\\xda\\x80\\xa1\\xbb\\xd1\\xdc\\xf4\\x62\\x20\\x37\\x5b\\x1e\\x11\\x2a\\x5a\\x72\\xf1\\xab\\x6e\\x8f\\x64\\x19\\x42\\xf6\\x6d\\x9b\\xbd\\xbb\\x17\\x9c\\xf0\\x13\\x9e\\xa8\\xde\\xb0\\xf4\\xb8\\x14\\xf5\\x0c\\x51\\x33\\x29\\xa1\\xa0\\xe2\\x67\\xc4\\x43\\x3a\\x23\\x31\\x82\\xbc\\x4a\\x2a\\xcb\\x2c\\x6d\\x4f\\x00\\xb2\\x40\\x94\\xd3\\xbd\\xc0\\xeb\\x81\\xcf\\x37\\xd3\\x82\\x60\\xc2\\x10\\x7d\\xd9\\x49\\x06\\x13\\xd2\\x76\\xee\\x1f\\x72\\x26\\x6c\\x6e\\x4a\\xcc\\xa5\\x24\\x98\\x11\\xa0\\xf8\\xa7\\xda\\xe6\\x6a\\xed\\xb7\\x5c\\x3d\\xf4\\xc8\\xca\\x3c\\xb5\\xd9\\xc5\\x67\\xba\\x54\\x1e\\xe5\\xa9\\x14\\x0c\\x50\\x58\\x72\\x72\\xaf\\x34\\x53\\x0a\\xb8\\xb0\\x8b\\x9e\\xc0\\x32\\xea\\xc0\\x60\\x39\\xe6\\x92\\x63\\x0e\\x2d\\x55\\x4d\\xf7\\x7c\\x1a\\x03\\x88\\xb3\\xca\\xaa\\x3b\\xe3\\x75\\x4a\\x84\\x96\\x1f\\xb2\\x99\\xe4\\x02\\x22\\x71\\x58\\xce\\x36\\x3e\\xac\\x26\\x47\\x8d\\x47\\x97\\x75\\xe5\\x68\\x5a\\xdb\\xf8\\x28\\xbb\\x35\\x5e\\x3c\\x89\\xcc\\xe2\\x41\\x50\\x3c\\x15\\x36\\x64\\x32\\xba\\x94\\xcd\\x3c\\xd9\\x54\\x79\\x14\\x4b\\x63\\x6e\\x0d\\xe7\\x0b\\x3f\\x16\\xd1\\xa3\\xca\\x51\\x8e\\x39\\x90\\x09\\xa4\\xc2\\x47\\xa7\\xf9\\x63\\x67\\xc7\\x14\\x66\\x08\\xaa\\xcc\\x00\\x14\\xfc\\x35\\xb8\\x4a\\xf9\\x93\\x3f\\x09\\xba\\xbb\\x89\\x93\\x7a\\xbb\\x8c\\xed\\x11\\x18\\x91\\x34\\x3d\\xdb\\x79\\xf6\\x0b\\x78\\x89\\x8a\\xb5\\x93\\x8f\\x8b\\xa3\\x81\\x4b\\xd8\\x00\\x26\\x05\\xb1\\xdf\\xd2\\x97\\xfa\\x07\\xc4\\x75\\xa0\\xd4\\xf8\\xf4\\x45\\x1a\\xcd\\x70\\x7d\\xe8\\xaf\\x6c\\x0e\\x88\\x18\\x83\\x3a\\x3a\\xbe\\x5c\\x96\\xd1\\xa8\\xc6\\xc9\\x6e\\x2c\\xb6\\x33\\x28\\xeb\\xa4\\x4d\\xd1\\xd3\\x46\\x84\\xe4\\x12\\xf2\\x88\\xe0\\x65\\x20\\x9d\\x11\\xeb\\x80\\x94\\xd2\\x2e\\x4c\\xc8\\x02\\x62\\x9c\\xcb\\xa3\\x39\\x26\\xbf\\x1a\\xd3\\x6a\\x62\\x85\\x13\\x8a\\xbe\\xe0\\x5c\\x5a\\x39\\xa4\\x75\\xf3\\xfd\\xd0\\xb3\\xec\\x8c\\x37\\x0c\\xd9\\x57\\xa8\\x37\\x9e\\xc2\\xcd\\xaf\\x03\\xe8\\x95\\xc1\\xba\\x12\\xb4\\x49\\xd6\\xcd\\x8b\\xe0\\xf3\\x5d\\x99\\xe2\\xb7\\xfb\\xaa\\x92\\xdd\\x54\\xe6\\x4e\\x7c\\x35\\xce\\xb8\\x8a\\x71\\xa6\\x80\\x52\\x7c\\xb3\\x73\\xaf\\xe1\\x4c\\xdd\\x15\\x8a\\x0b\\x90\\xbf\\x2d\\xae\\xc8\\x0d\\x2e\\xdb\\xdc\\x31\\x28\\xcd\\x6b\\x63\\xfa\\x53\\x2a\\x1c\\x27\\x8c\\xdf\\xe0\\xf8\\xeb\\xb4\\xab\\xba\\x5e\\x1a\\x82\\xbc\\x5c\\x3f\\xed\\x15\\xc5\\x79\\x5b\\xd9\\xff\\xb5\\x76\\x08\\x2c\\xc4\\x79\\xfa\\x1b\\x04\\xc5\\xc5\\xaf\\xca\\xd2\\x69\\xa0\\xf1\\xad\\xdf\\xe7\\x60\\x42\\xc3\\xa8\\xf1\\xf2\\x53\\x77\\xb6\\xcb\\x72\\xec\\x16\\x14\\xeb\\x63\\x83\"},\n{{0xb5,0xa7,0xc7,0x67,0x93,0x63,0x80,0xb3,0xe9,0x87,0x51,0xca,0xfd,0x3e,0xa8,0x9b,0x38,0x8a,0x32,0xcf,0x82,0x8b,0x32,0x1c,0x5b,0xd0,0xcc,0x8d,0xd8,0x5b,0xaf,0x00,},{0xbe,0x7f,0xa6,0x5f,0x1f,0x6b,0xe5,0x10,0x27,0xf8,0xb8,0x48,0xdb,0x7a,0x8c,0x40,0x49,0x61,0xbf,0x1e,0x21,0xa2,0x3d,0xf2,0x3b,0xb8,0xce,0x05,0x85,0x0c,0xda,0xa1,},{0x60,0xe4,0xd2,0x3f,0x1f,0x08,0xfc,0xe4,0x66,0xc9,0x91,0x5d,0xde,0xd9,0x32,0x56,0xb5,0x2b,0x32,0x7e,0x5f,0x81,0xfb,0xb3,0x1d,0x1d,0x10,0xd3,0x21,0xc3,0x90,0x36,0x6e,0xf0,0x01,0xfd,0x75,0x9a,0xa9,0xd0,0xa5,0x51,0x62,0xd5,0x36,0x4d,0x91,0x8b,0x48,0xc7,0x32,0x7e,0x77,0xcf,0x53,0x58,0xbc,0x43,0x19,0xe3,0x25,0xcd,0xd6,0x08,},\"\\x6b\\x67\\xc7\\x95\\xd6\\x6f\\xac\\x7b\\xac\\x84\\x42\\xa6\\xc0\\x99\\x2c\\xb5\\x75\\x88\\x43\\xb3\\xe3\\x93\\x9e\\x3c\\x27\\x6c\\x6e\\x90\\x08\\xda\\x82\\x00\\x76\\x77\\xbf\\x9e\\x67\\xe9\\xac\\x5a\\x1a\\x0f\\x48\\x6b\\xea\\xc0\\xd8\\x56\\x19\\x1f\\xae\\x25\\xa1\\x27\\x39\\x2b\\xed\\x46\\x9b\\xc7\\x8d\\xeb\\x0c\\x4b\\x89\\x3f\\x67\\xf1\\x71\\x6d\\x83\\x50\\x90\\x77\\xe4\\xa1\\xbf\\xd4\\x13\\x6d\\x03\\x15\\x2d\\xcc\\x3b\\x76\\xd9\\x52\\x49\\x40\\xa6\\x06\\x4c\\x66\\x9f\\xbf\\x51\\xf6\\xb9\\x10\\x34\\xb6\\xd5\\xf2\\x89\\x86\\x78\\xa1\\x3a\\x24\\x70\\xf6\\x64\\x1e\\xc8\\x02\\x45\\x7c\\x01\\x02\\xc3\\xeb\\xf6\\x34\\x5c\\x32\\x7e\\x74\\x1b\\x80\\x64\\x4b\\x3a\\x99\\xbf\\x72\\xb5\\x9a\\xb8\\x01\\x6f\\x35\\xd2\\x51\\x88\\xa0\\x85\\x75\\x0d\\xc0\\x60\\xe5\\xa8\\xd5\\x24\\xae\\x21\\x3f\\x07\\x8f\\x28\\x8c\\x7b\\x34\\xbc\\x41\\xf3\\xce\\x35\\x6b\\xf2\\xda\\xfd\\xd2\\xe0\\xdb\\x4f\\xb8\\xd7\\xc2\\xc3\\x19\\xf9\\x90\\x60\\x05\\x97\\x17\\x02\\xe4\\x9c\\xa6\\x2e\\x80\\x50\\x54\\x0d\\x41\\x21\\xd2\\x42\\xf2\\xee\\xab\\x1b\\xd1\\x34\\xe6\\x0b\\xf1\\x1b\\x3e\\xc7\\x1f\\x77\\x65\\xa9\\x7c\\x0e\\x09\\x84\\x55\\xe5\\x9d\\x22\\x35\\xd6\\xb3\\x7e\\x7c\\x9f\\x5b\\x21\\xfa\\x11\\x2c\\x3b\\xa3\\x9e\\x4e\\xa2\\x00\\x61\\x4f\\x58\\xdf\\xb3\\xeb\\x7b\\x83\\x6f\\x0b\\xec\\x1d\\xdd\\x43\\x8d\\x14\\x22\\x45\\x0a\\xe7\\xde\\xd1\\xdf\\x9d\\x71\\xe5\\xd9\\xbc\\x8f\\xa3\\xb6\\xe6\\xf7\\x84\\x46\\xce\\x7c\\x79\\xd0\\xbc\\xfb\\x1c\\x2d\\x26\\xc6\\xfe\\xce\\x68\\x68\\x2d\\xff\\xc6\\x0a\\x9c\\x6e\\x0a\\xd0\\x5f\\x2a\\x09\\xf2\\x1d\\x75\\x23\\x25\\x1c\\xb0\\xc3\\xd0\\x8e\\xfb\\xbf\\x8a\\xc1\\x63\\x39\\xd7\\x17\\x02\\x4d\\x67\\x60\\x24\\xc1\\xee\\x3c\\x1f\\x62\\xc5\\xae\\xab\\x7f\\xff\\x93\\x7c\\x57\\x45\\x4d\\xf7\\xbd\\x96\\xf9\\x84\\x4a\\x2a\\x39\\x99\\x58\\x41\\x8a\\xaa\\x6f\\x18\\x48\\xbe\\xbf\\x7b\\xf1\\x29\\x2c\\x24\\xeb\\x5c\\xd8\\xea\\x56\\x34\\x0c\\x5b\\xeb\\x26\\x88\\x02\\x4a\\x69\\x53\\x27\\x5b\\xe6\\xef\\xd1\\xb7\\x1b\\xa8\\xbe\\x6e\\xb7\\x7f\\x0c\\x65\\xa7\\xc5\\x11\\x1b\\x96\\xc4\\xc1\\xf3\\x9c\\xb7\\xaa\\xf8\\x3f\\xda\\xae\\x8d\\x14\\x8d\\x7a\\x8a\\xf4\\x0a\\xe9\\xe6\\x51\\x91\\x9f\\x7c\\xe2\\x8c\\x8b\\x2b\\x6e\\x45\\xe4\\xd3\\xd5\\x6f\\xdd\\x54\\xd0\\x0c\\x24\\x12\\x79\\x0c\\xbd\\x6f\\x80\\xe1\\x08\\x19\\xe0\\xb8\\xf3\\x7c\\x84\\xfa\\x00\\x49\\x88\\xad\\xaf\\xcc\\xbb\\xc2\\x1c\\x63\\xd6\\xbf\\x2e\\x73\\x2d\\x9d\\xd6\\x3b\\xd4\\x9b\\x04\\x12\\xb9\\x67\\x4e\\x1e\\x88\\xf6\\x14\\x2f\\x7f\\x86\\x7f\\x1f\\x26\\x89\\x1b\\x22\\x43\\x04\\x23\\xce\\xc4\\xdb\\x91\\xb6\\x1c\\x2a\\xbc\\x5c\\x8f\\xbd\\x46\\xb8\\xb9\\x35\\x96\\xfc\\x51\\x60\\x68\\x31\\x36\\xe2\\x11\\x29\\x82\\x27\\x96\\xeb\\x5e\\xa0\\x88\\xe0\\xa7\\xd8\\x12\\x1b\\x25\\x57\\x2e\\x3e\\xc3\\x77\\x43\\xd1\\xff\\x6d\\x8d\\x1c\\x35\\x36\\x43\\x9a\\x10\\xe8\\x4a\\x66\\x5f\\x2c\\x75\\xee\\x73\\xcd\\xc6\\xff\\xac\\x4c\\xc2\\x87\\x24\\x46\\x9f\\x79\\x70\\xb4\\x75\\x07\\xdf\\x3e\\x1b\\x14\\xd4\\x77\\xae\\xc2\\xbb\\x20\"},\n{{0xe1,0x36,0xf3,0x98,0xa6,0x05,0xd1,0x34,0x57,0x84,0x8c,0xea,0xd0,0x7c,0x72,0x86,0xf4,0x2e,0x2f,0x28,0xdf,0x8c,0x12,0x8a,0x3d,0x0b,0xb7,0x2b,0x29,0xaa,0xcc,0x19,},{0x6a,0xa5,0x04,0x5a,0x66,0xf7,0x72,0xa5,0x71,0xfe,0x3e,0x42,0xd1,0x17,0xef,0xcd,0xf6,0xc4,0x95,0x91,0x99,0x61,0x86,0x01,0x2f,0xa9,0x8f,0x7c,0x48,0xe0,0xcd,0xa7,},{0x75,0xa4,0x5c,0x6b,0x95,0x66,0x89,0x98,0x29,0xb4,0x1e,0xe5,0x17,0xb7,0x04,0x5a,0x47,0x3a,0x4f,0x7a,0x26,0x41,0x43,0x9b,0x5d,0x7c,0x56,0x73,0xe0,0x0d,0x8f,0x5c,0x06,0x6f,0x12,0x91,0xf8,0x5d,0xea,0xda,0x05,0x02,0xbd,0x16,0xe9,0x70,0x9f,0x82,0x7d,0x47,0x51,0xf2,0x87,0x38,0x62,0xe8,0x21,0x9e,0x57,0x74,0x6a,0x19,0xa9,0x00,},\"\\xd3\\x28\\x57\\x9d\\xe4\\xc5\\x37\\x2f\\x3b\\x38\\x2c\\x48\\x01\\x1b\\x2d\\x4c\\x60\\x29\\xf9\\x04\\xf3\\xa3\\x3e\\x07\\xd0\\x83\\xd7\\xe2\\xb0\\x37\\x56\\xaf\\x2c\\x4c\\x97\\xa2\\xd6\\x6c\\x10\\xec\\x41\\x54\\xd8\\x74\\x79\\x20\\x42\\xb6\\x46\\xe4\\xaa\\xe5\\x10\\x1d\\x50\\x1b\\xd1\\xbf\\x6f\\x51\\x17\\x51\\xd0\\xaa\\xf8\\x21\\xcd\\x7c\\x0b\\x3e\\xe6\\xd0\\xd7\\xc6\\x90\\xa2\\x77\\x7f\\xe1\\x6b\\xdc\\x7e\\x49\\xb7\\xda\\x4b\\xbb\\x4c\\xce\\x3b\\x61\\x8e\\xe9\\xb6\\xf2\\xe3\\xa1\\x92\\x40\\xcd\\xb7\\x07\\x33\\xb9\\x84\\xb1\\xc9\\x40\\xec\\x66\\x96\\x0b\\x72\\x8c\\xbb\\x87\\x4b\\x80\\x64\\x31\\x23\\x72\\x2d\\xb9\\xdb\\xbe\\x88\\x32\\x20\\x08\\x93\\x1b\\x1c\\x89\\x4e\\xf5\\xd2\\x10\\x99\\xe6\\x3e\\x7c\\x65\\x00\\x7a\\xcd\\x61\\x78\\x4d\\xb4\\x99\\x4a\\x2f\\xb4\\x0c\\x3e\\xfe\\x9c\\x47\\xfa\\xd6\\x37\\x63\\xdd\\xe0\\x6f\\xa0\\x17\\xa2\\x6b\\x82\\xe7\\x1b\\x9d\\xaa\\xbc\\x4f\\xf0\\xf6\\xc7\\x9b\\x8c\\xa7\\xcc\\xb4\\xdc\\x20\\x31\\xbe\\xf1\\x08\\x73\\x67\\xc7\\x08\\x69\\x74\\xa0\\x05\\x66\\xde\\x41\\xa7\\x1e\\x11\\xd9\\x93\\xab\\xe4\\x33\\x56\\x98\\x92\\xb8\\xf7\\x5d\\x76\\x37\\x99\\x32\\x45\\xc8\\x84\\x47\\x8a\\xbe\\x3f\\x95\\xf4\\x4b\\x0a\\x4b\\xbe\\xde\\xfe\\xf8\\x90\\x6b\\x75\\xe0\\xd3\\x40\\x20\\xae\\x53\\x64\\x55\\xb0\\xe0\\x6f\\x9b\\xfe\\xe1\\x1e\\xc9\\xb8\\x60\\x4b\\xac\\x2c\\xc6\\xeb\\xe0\\x8c\\x8f\\xd5\\xf5\\xcc\\xcc\\xcb\\xc1\\x61\\x7b\\x7c\\xf6\\x9a\\x3c\\x51\\x2e\\x1f\\x0b\\xdb\\x58\\x5d\\xf5\\xe1\\x27\\x43\\x06\\x1f\\x7c\\x20\\x53\\xbc\\x37\\x14\\x43\\x61\\xc0\\xb3\\x5f\\xd3\\x9d\\x56\\xb1\\xef\\xaf\\x92\\xc6\\x10\\x36\\x01\\x93\\xec\\x20\\x59\\x8b\\x82\\x85\\x80\\x50\\xa6\\xd9\\x9e\\x08\\x2b\\xce\\xfd\\xbd\\x53\\x18\\xee\\x5e\\xfb\\x3b\\x26\\x0f\\x32\\x76\\xf3\\xc7\\x3f\\x9c\\x24\\xce\\x0c\\xda\\x33\\xc7\\xac\\xc5\\x0c\\xa5\\xdd\\x61\\xbd\\xb8\\x5d\\x79\\x38\\x25\\xf6\\x73\\x2a\\x6e\\x33\\x0c\\xe6\\x72\\xac\\x44\\xfe\\x6b\\x2b\\x9a\\xfe\\x6e\\x2e\\x96\\x5c\\x02\\xd2\\xa1\\xfe\\x0b\\x57\\xcb\\x1b\\x31\\x7c\\x1d\\x31\\x3e\\xfd\\xc3\\x56\\x49\\x2f\\xe8\\x96\\xfd\\x14\\x9d\\xae\\x51\\xc9\\x5c\\xcd\\xbb\\x7d\\x11\\xf7\\xd6\\x10\\xe0\\xc6\\xe2\\xfd\\x3e\\x57\\xfc\\xfe\\xf1\\xc5\\x7c\\x71\\x19\\xa0\\xaf\\x6c\\x78\\x21\\xfe\\xcd\\xb8\\x9d\\x80\\x30\\x2b\\x49\\xfa\\xd4\\x17\\x43\\xf3\\xd2\\xd7\\xa0\\x75\\x15\\x4b\\x31\\x43\\xe5\\x1a\\xeb\\x94\\x7d\\x4b\\x5e\\x8b\\x7e\\x4c\\xa8\\x6f\\xec\\x3e\\x80\\xbd\\x9a\\x78\\x6e\\x4e\\x46\\xed\\x1e\\x6e\\x9f\\x7e\\x0b\\x63\\x52\\x66\\xd9\\xfa\\x09\\x7a\\xa9\\xe2\\x0f\\x32\\xe3\\xd2\\x77\\x2d\\x7c\\x1f\\x00\\x8b\\xcd\\xd3\\xf9\\x2c\\x72\\x83\\xc5\\x77\\x90\\xc3\\x62\\x2c\\xba\\xd3\\xca\\x35\\x80\\x3c\\x45\\xc8\\x69\\xdc\\x37\\x7f\\xf3\\x6b\\xd7\\xc0\\xe6\\xf1\\xbb\\x89\\x2f\\x73\\x29\\xa6\\xe0\\x8d\\xf1\\xdb\\xeb\\xc8\\x1d\\xc7\\xb1\\x15\\xf8\\x52\\xe3\\x6a\\xe5\\xd9\\x28\\x72\\x5f\\xa7\\xc6\\xfb\\x9f\\x28\\xb0\\xfb\\x39\\x4f\\x9e\\x38\\xfd\\x87\\x62\\x5c\\x5f\\xa2\\x3a\\xab\\xa4\\x70\\x54\\xe8\\xcf\\xea\"},\n{{0x97,0xb6,0x70,0x2e,0x24,0x68,0x05,0xdb,0xcf,0xc7,0xfa,0x42,0x4a,0x8c,0xaa,0xbc,0xf2,0x62,0xd4,0x66,0xa0,0x5e,0x0d,0xd2,0xd4,0xe7,0xc3,0x74,0xd5,0x7d,0x52,0x51,},{0xa7,0x16,0xc3,0xd5,0xce,0x78,0xf4,0xd9,0xc5,0xbe,0xe3,0x44,0x7d,0xda,0xf4,0x88,0x1c,0x98,0x6e,0xfd,0xf6,0x67,0xac,0x89,0x77,0xb4,0xfb,0x69,0xb5,0xa7,0x11,0x0a,},{0x90,0x00,0x55,0x41,0xdc,0xc1,0xd7,0xab,0x83,0x7f,0x4d,0xe5,0x39,0x3f,0xad,0xd6,0xa9,0x2b,0x26,0xa7,0xd9,0x3a,0xf3,0xf6,0x69,0xe0,0xf1,0xbf,0xd6,0x21,0xcb,0xd0,0x0c,0x8a,0x23,0x05,0x6d,0x2d,0xa6,0x78,0x65,0x57,0xc8,0x28,0xa4,0x9b,0xe1,0xe4,0x02,0x1d,0x99,0x31,0x12,0x35,0xac,0x0d,0x4d,0x56,0xee,0xfc,0x7c,0x95,0x36,0x05,},\"\\xea\\xa8\\x6c\\xf7\\x6f\\xcb\\x65\\xc6\\xf9\\xfc\\x20\\x8a\\xc3\\x6f\\x28\\xb2\\x00\\xd3\\xb4\\x03\\xac\\xa7\\x32\\x07\\x46\\x1d\\x8d\\x96\\xaf\\xa2\\x46\\xd7\\xc6\\x9d\\x17\\xa7\\xa9\\xbf\\x77\\xf0\\x55\\x43\\x56\\x3a\\x7d\\x3e\\xca\\x1d\\x40\\x79\\xe2\\x29\\x38\\xab\\xa1\\xf6\\xe9\\xe0\\x4b\\x49\\xfb\\xc8\\xed\\x6f\\x63\\xb5\\x99\\x73\\x0d\\xe9\\x97\\x98\\x31\\xc0\\x2f\\x8c\\xba\\x61\\xe5\\x55\\x60\\xd7\\x11\\x0d\\x4c\\x6e\\x61\\x67\\x97\\x06\\xa7\\x15\\x5d\\x5a\\x67\\x3c\\x54\\xd1\\x6f\\xe4\\xd2\\x28\\xc2\\xec\\xa7\\x54\\x6f\\xaa\\x13\\x39\\xf2\\x6d\\x7a\\x0b\\xb4\\xee\\x33\\x96\\x11\\xaf\\xde\\xc9\\xa6\\x8f\\x5f\\xf5\\xb5\\xd2\\x03\\xb6\\x00\\x53\\x3a\\xd5\\xa3\\xb3\\x68\\xc8\\x5d\\xa1\\x15\\x63\\xf0\\x98\\xcc\\x26\\x87\\x1e\\x7f\\xa9\\x9a\\xef\\xd3\\x8c\\xc2\\x61\\x51\\xdb\\x3b\\x0b\\xae\\x38\\xdb\\x6a\\x87\\xb6\\x78\\x9e\\x58\\x40\\xb1\\x08\\x84\\xaf\\x51\\x1f\\x3e\\xcb\\x3e\\xcb\\xf9\\x4f\\xf8\\x6f\\xdb\\x90\\x55\\x05\\xa8\\xc3\\x4b\\x2a\\xa6\\x1f\\xf2\\xec\\x9e\\xc8\\xfe\\xbd\\x1d\\xfe\\xd0\\x96\\x5b\\x6f\\xc5\\xb9\\xf8\\x86\\x9d\\xc3\\xa4\\x75\\x59\\x97\\x4a\\x88\\x22\\x99\\x67\\x06\\xda\\xef\\xbc\\x6c\\x5b\\xf9\\x84\\xce\\x06\\xb0\\xd3\\x2b\\x31\\xcf\\x9d\\x8a\\xd1\\x36\\xae\\xd4\\xb0\\x52\\x58\\x6d\\xce\\x70\\x73\\xb7\\x67\\xb2\\x34\\xe4\\xa3\\x7b\\xeb\\xbc\\x39\\x3d\\xd2\\xe0\\xf7\\xd1\\x55\\x17\\x35\\x48\\xc3\\x8a\\x15\\x83\\xef\\x94\\xe0\\xaa\\x84\\xe7\\xfc\\xe0\\x4f\\xcc\\x9b\\x4e\\x30\\x0a\\xd0\\x99\\x44\\x9a\\x49\\x23\\x2a\\xbd\\xcf\\x3d\\x1a\\x6e\\x6f\\xca\\xb6\\x96\\xf5\\x99\\x6f\\x9b\\xd1\\xb9\\x48\\x5d\\x07\\x47\\x55\\xac\\x5b\\x42\\x97\\xfe\\xe3\\x12\\x4c\\x7c\\x03\\x97\\x6a\\x40\\xd5\\x70\\xbe\\xae\\xc2\\xfa\\xc9\\x92\\x33\\x9f\\x88\\x5f\\x74\\xd4\\x0e\\xd4\\xac\\x87\\xa4\\xf4\\x0c\\xef\\xbc\\x48\\x64\\xf4\\x4c\\x36\\x83\\xaa\\x8f\\x10\\x26\\xe2\\xc3\\x7a\\xef\\xfc\\xeb\\xfd\\xfe\\x24\\xdd\\x0b\\x01\\x9c\\x36\\xa7\\x98\\x88\\x20\\x30\\x04\\xb2\\xad\\x83\\xe8\\x92\\x21\\xf3\\xf6\\x36\\xf4\\x55\\xbb\\x64\\xe1\\x7d\\x17\\x54\\xc7\\xc6\\xdd\\x7f\\xc0\\x9a\\x0d\\x65\\xdd\\xdd\\xed\\x46\\x22\\xfc\\x4f\\x9f\\xba\\x07\\x2b\\x45\\x10\\x34\\x35\\xe1\\x02\\x20\\xa5\\x86\\xf1\\x52\\x26\\xd2\\xeb\\x37\\x7f\\x40\\x64\\xd3\\xff\\x37\\xcb\\xb4\\x70\\x5a\\x1f\\xaa\\xf5\\xb3\\x48\\xf8\\xc0\\xef\\x7f\\xd1\\x56\\x4d\\x42\\x86\\x88\\xf5\\x8f\\x33\\x92\\x96\\x7c\\xf3\\x96\\xa8\\xff\\x2f\\xd9\\xe7\\xb5\\x17\\xb7\\xd6\\xa5\\xed\\xe7\\x44\\x03\\x73\\xd8\\xcc\\x1a\\x83\\x99\\x00\\xe8\\x4d\\x42\\x25\\x42\\x83\\xd9\\x69\\x9c\\x7c\\xa3\\x7e\\x47\\x76\\x92\\xa3\\x49\\x40\\x08\\xb8\\x04\\x44\\xc5\\xcf\\x61\\x4c\\xbb\\xc1\\x69\\xbf\\xb9\\x29\\x63\\x03\\xc6\\x45\\xe2\\xce\\x28\\xd1\\x68\\xdc\\x6c\\xba\\xef\\xae\\x9c\\x73\\x19\\x1f\\x57\\x15\\x1a\\xa4\\x73\\x00\\x9d\\x29\\xe1\\x80\\x0b\\x10\\xf4\\xc4\\x98\\x60\\x9b\\xa1\\x15\\x20\\x98\\x5c\\x78\\x09\\x20\\x58\\x69\\x6f\\xdb\\xca\\x9c\\x02\\x0e\\x2d\\xfb\\x8a\\x04\\x3a\\x3d\\xe8\\xe4\\x52\\xd5\\x8c\\xd1\\xad\"},\n{{0xd1,0x52,0x8c,0x14,0x06,0xa6,0xe4,0x94,0xa0,0x2f,0x63,0x53,0x05,0xfa,0x74,0xd7,0x45,0xc6,0x93,0x27,0xfd,0x31,0xb7,0xd2,0xc2,0x62,0x3d,0xe2,0xc0,0x30,0xed,0x85,},{0x0c,0xfe,0x36,0x9c,0xf9,0x3d,0xaf,0x6d,0x53,0xef,0x02,0x8d,0xdb,0x9f,0x00,0x04,0x43,0xb0,0x97,0x2f,0xe2,0x53,0x2f,0x83,0xa4,0x1c,0xe6,0x57,0xc1,0x83,0x6c,0xa3,},{0xb8,0x39,0x9b,0xc3,0x32,0x6c,0xba,0x0a,0x93,0xa4,0x24,0x97,0x16,0x8b,0xf5,0x7f,0x91,0x06,0xee,0x43,0xd3,0x9b,0xf0,0xfc,0x86,0x68,0x51,0x99,0xdc,0x6e,0x0a,0x13,0xb9,0xc7,0x24,0xef,0x17,0xe7,0x88,0x2a,0xf8,0xc2,0xeb,0x70,0xf6,0xc9,0xe4,0x2d,0xfa,0x2f,0xbf,0x0c,0x1c,0xb5,0x00,0x2b,0x58,0xf1,0x08,0x66,0x19,0x73,0x3e,0x02,},\"\\xab\\xb3\\x67\\x3f\\x3f\\xa1\\x7a\\x33\\xa7\\xaf\\xf7\\x6e\\xac\\x54\\xe7\\x68\\x7c\\x04\\xbc\\x84\\xf7\\x66\\x65\\x1a\\x8b\\x24\\xba\\x22\\x94\\x79\\x08\\xb0\\x4c\\xa4\\x59\\xfe\\xb9\\x8a\\xce\\x7c\\xab\\x1e\\x74\\x33\\xa6\\xa6\\xbe\\xff\\xd8\\xd9\\x50\\x4e\\x29\\x91\\xda\\xa0\\x64\\x4d\\x61\\xb8\\xb2\\xe4\\x54\\x48\\xf5\\x4d\\xf8\\x81\\x3f\\x50\\xc4\\x18\\xb4\\x8f\\x49\\xe1\\x03\\x4e\\x85\\x1c\\xbe\\xc3\\xef\\x0a\\x18\\x50\\xef\\x72\\x67\\x33\\xaf\\xaf\\x68\\xe1\\xa4\\x61\\x04\\x16\\x51\\xc1\\x38\\xd5\\x4e\\x4e\\xf7\\x81\\x87\\xaf\\x9a\\x73\\x42\\xf7\\x12\\x87\\x27\\xf9\\x03\\xbf\\x4f\\xc5\\xef\\x3e\\x40\\xc6\\x4e\\xc2\\x6f\\x89\\x2f\\x59\\xad\\xd9\\x8f\\xe3\\x94\\x76\\x5a\\xaa\\x7d\\x09\\xca\\xe8\\x1b\\x9f\\x69\\x9a\\x9d\\xd8\\xbf\\x2e\\x2f\\xe8\\xe1\\xec\\x78\\xfc\\x88\\x4e\\xaa\\x0d\\x2d\\xbd\\xbf\\xb8\\xc1\\x68\\x83\\x3e\\xe0\\xd2\\x18\\x03\\xcc\\x35\\xdc\\x62\\x8d\\x7c\\x07\\xe0\\x44\\x04\\xfb\\x60\\xe8\\xc4\\x90\\xa8\\xdd\\x34\\xed\\xbc\\xba\\xaf\\x80\\xcc\\xda\\xe3\\xf7\\xd3\\x73\\x9e\\x0e\\x89\\x70\\x23\\xee\\xb5\\xb1\\xa8\\xc0\\x0a\\x96\\x73\\xc5\\x92\\x58\\x24\\x0d\\xdd\\x44\\x20\\x65\\x0f\\xe5\\x77\\x1f\\x7e\\x28\\xcb\\x23\\x99\\xf5\\xe1\\xe0\\x2a\\xd0\\xb6\\x43\\x2d\\x9b\\x49\\x60\\x8f\\xcf\\x0b\\x1c\\x0d\\x7c\\x41\\x2a\\x44\\x52\\x55\\xb8\\xba\\xdc\\x53\\x21\\xc2\\x4c\\x1a\\xc9\\x2c\\x79\\xa0\\xba\\xcc\\xb9\\xde\\xff\\xed\\x02\\xd1\\x2f\\x55\\x36\\xcd\\x59\\x5d\\xc6\\x60\\x83\\xb3\\x3a\\x36\\x03\\xa9\\xd1\\x6e\\xce\\xa2\\xbf\\x38\\xc4\\xf2\\xaa\\xf5\\x70\\xf3\\x0d\\x21\\x16\\x2b\\x2e\\xfd\\x7e\\x4d\\x5e\\xbf\\x1e\\xca\\xe9\\x58\\x8e\\xee\\x36\\xdd\\x9d\\x3d\\x8e\\x3b\\xe7\\xbc\\x6d\\x4b\\xc2\\x18\\x56\\x22\\xf1\\x1d\\x1d\\xa7\\xc4\\x9c\\x93\\xe6\\x23\\xac\\x56\\xfe\\xe7\\xe3\\x70\\x6d\\xb8\\x31\\x3c\\xf9\\x26\\xbe\\x92\\xe5\\xc8\\xa5\\x39\\xfd\\x16\\xb0\\xf4\\x38\\xda\\x8e\\x51\\xa5\\x1f\\x2d\\x27\\x64\\x03\\x56\\x12\\x4e\\xf7\\xbe\\x2f\\x91\\xff\\xa1\\x79\\x6a\\x91\\xb1\\x23\\x01\\x93\\x4d\\xde\\xf0\\xc7\\x93\\x8a\\x7a\\x45\\xf3\\x6f\\x53\\xb6\\x32\\x2d\\x9c\\x8f\\x9d\\x27\\x5e\\x1c\\xd2\\xc0\\xf1\\x29\\xf8\\xab\\x8d\\x74\\x15\\x5b\\x5d\\x9e\\x5c\\x15\\xc0\\x15\\xb0\\xb0\\x00\\x03\\xb2\\xbd\\xdf\\xa0\\xbc\\xfc\\xc6\\x93\\xa1\\xdf\\xcb\\x4f\\x53\\xda\\xec\\x12\\x6d\\x16\\x69\\xf3\\x3f\\x39\\xad\\x05\\x51\\x9e\\xf7\\xc5\\xce\\x40\\xe6\\xf4\\x57\\x3c\\x24\\x7a\\x32\\xc4\\xa0\\x16\\x28\\x31\\x35\\x2f\\x6d\\x55\\x8f\\xf5\\x83\\x6a\\x53\\x17\\xdb\\xc4\\x51\\x5b\\x3d\\xf2\\x69\\xa8\\xac\\x76\\xd6\\x43\\x6f\\x26\\x4b\\x64\\x56\\x1e\\x79\\x68\\xb5\\x82\\x21\\x08\\x48\\x7b\\x04\\x5c\\x92\\xd6\\xc6\\x14\\x2a\\x1c\\x28\\x55\\xb3\\x8b\\xee\\xbd\\x64\\x25\\x65\\x12\\x3c\\xc8\\x27\\xcb\\x18\\x31\\x19\\x9e\\x6f\\x12\\xa7\\xe4\\x23\\x68\\x56\\xb9\\x4d\\xad\\x73\\x8f\\x69\\xd1\\x10\\x6e\\x77\\x35\\xd7\\x11\\xf7\\xc6\\xa3\\xa3\\x37\\x80\\x41\\xfc\\x7a\\x21\\x10\\x3b\\xbf\\x86\\x69\\x07\\xd4\\xed\\xdd\\xaf\\xa0\\xe7\\xf1\\xbb\\x5f\\xfd\\x41\\xa6\\x0d\\x64\"},\n{{0x51,0x23,0x40,0xf9,0x61,0xf1,0x42,0xd1,0x91,0x5e,0x85,0xfe,0x4f,0xa0,0xf5,0x51,0xf8,0x08,0x92,0xe7,0x5a,0xcc,0xce,0x7c,0xd1,0x86,0x9e,0x6e,0x2c,0x9e,0x80,0x15,},{0x0c,0xa0,0x26,0x04,0xfa,0x87,0xe2,0xc2,0x05,0x06,0x25,0x1f,0x07,0x92,0xcd,0x21,0x25,0x85,0x6f,0x0a,0xb1,0x6d,0x66,0x3f,0x28,0x11,0x96,0x3b,0x1f,0x2d,0x81,0x72,},{0x6b,0xb4,0xd9,0x75,0xaf,0xae,0xf4,0x1e,0xa9,0xef,0x08,0x5a,0x68,0xc5,0x68,0xa0,0x5d,0xa3,0x7e,0xf2,0x1d,0xad,0x46,0x4e,0xd8,0x6a,0xc0,0xd4,0x08,0x0e,0x7d,0x01,0x29,0xfb,0x02,0x31,0x31,0xec,0xa5,0xf7,0xad,0xb2,0x58,0x6a,0x18,0xbe,0x40,0x56,0x2f,0xa2,0x76,0x4c,0xa8,0x07,0xe6,0x70,0xa0,0x59,0x6a,0x5c,0x54,0x7b,0xc0,0x01,},\"\\xaf\\x37\\xb2\\xc7\\x58\\x7a\\x8d\\x5b\\xc8\\x95\\xcd\\x35\\x77\\x46\\xab\\x03\\x55\\x2a\\x0a\\x56\\x1a\\x29\\x3d\\xc7\\x16\\x4e\\x39\\xb6\\xa1\\x33\\x3a\\x92\\x0b\\xb6\\xda\\xca\\x60\\x06\\x67\\x6e\\x99\\xbb\\x7e\\x92\\x8f\\x9e\\xa3\\x91\\xe5\\x48\\x02\\xa8\\xd3\\x15\\x96\\x28\\x9f\\xb9\\xbf\\xe3\\x00\\x00\\xcf\\x52\\xeb\\xf0\\xc1\\x24\\xa5\\x89\\x5b\\xce\\x33\\x98\\xc1\\xbf\\x53\\x56\\xbe\\x82\\x61\\x9b\\x8d\\xdc\\x15\\xa7\\x7c\\xa9\\x22\\x49\\x4b\\xdb\\x04\\xf5\\xc2\\xe1\\xb6\\xe8\\xff\\x77\\xae\\x74\\x9f\\xaf\\x2b\\x8a\\x41\\xd8\\x22\\xc1\\x7c\\x06\\xdf\\xb7\\xa5\\xf9\\x43\\x4d\\x8b\\xd7\\x15\\xec\\x87\\x78\\xe8\\x0b\\x81\\xd2\\xe8\\xd0\\x62\\x98\\x74\\x86\\x90\\xc6\\x55\\x52\\x83\\xc9\\x8b\\xb9\\xb1\\x9b\\x92\\x46\\x66\\x7b\\xc4\\x10\\x46\\xff\\x98\\xc2\\xc3\\x5d\\x16\\x1e\\x1f\\x4d\\x69\\xd2\\x54\\xec\\x5a\\x07\\x6f\\x25\\xbd\\x5c\\x7e\\x2c\\x98\\xca\\x3c\\x09\\xd8\\x08\\x33\\x96\\x2c\\xf9\\x66\\x02\\x87\\x88\\x40\\x96\\xeb\\x30\\xc4\\x6c\\x54\\x17\\x41\\x06\\xaf\\x4e\\x29\\x79\\xa1\\x12\\xf3\\xe8\\x94\\x4e\\xaa\\xf7\\x66\\x9c\\x40\\xd5\\xaf\\xb9\\x1a\\x02\\x4a\\xbb\\xeb\\x14\\x66\\x4e\\x30\\x89\\x03\\xe4\\xd2\\x6d\\x70\\x09\\x44\\x6e\\xe2\\xe8\\x30\\xab\\x5e\\xca\\x0d\\xbb\\xc5\\x13\\xfb\\x4e\\x04\\x35\\x1d\\xf2\\xf6\\x74\\x18\\x64\\xfb\\x23\\x71\\xb2\\x50\\x2b\\xe4\\x3d\\xc1\\x5f\\xc0\\x44\\x31\\xff\\xf5\\xeb\\x8d\\x4b\\x68\\xd7\\x24\\x62\\xae\\x32\\x2e\\x57\\xba\\x2d\\x4a\\xdd\\xdf\\x15\\xa1\\x90\\x2c\\x21\\x13\\xae\\xbd\\x3b\\x5d\\x61\\x29\\x17\\xc1\\xbb\\x73\\xe7\\x08\\xad\\x54\\x18\\xe7\\xd4\\x5e\\x4b\\x72\\x80\\xfc\\x88\\x96\\xab\\x80\\x85\\x3f\\xf5\\xf8\\xe9\\x8f\\x26\\x55\\x3f\\xc7\\x8e\\x30\\xb3\\xb0\\xd7\\x27\\xbf\\x6d\\x06\\x4a\\x8f\\x32\\x88\\x87\\x68\\xc5\\x1e\\xbb\\x61\\xb2\\xc6\\x00\\xb4\\x02\\x8a\\x77\\x06\\x0f\\xeb\\xbb\\x02\\xeb\\x3d\\x20\\x17\\x80\\xe7\\x45\\x66\\xc8\\x6a\\x34\\x03\\x18\\x36\\xbc\\xe9\\xea\\xda\\x81\\xe5\\xd0\\xf3\\x39\\x60\\xcb\\x2d\\xf0\\x8a\\xff\\x3c\\x97\\x49\\x21\\xfc\\x9b\\x7d\\x3a\\xa7\\xc8\\x1e\\x9c\\x67\\x1e\\xd6\\xd3\\x3e\\x7a\\xe5\\xed\\x03\\xa5\\x41\\x7d\\x7e\\x5c\\xd6\\xfa\\xac\\x91\\xb5\\x4b\\x8f\\x79\\x2f\\x48\\x28\\x3c\\x60\\x64\\x7d\\xe3\\xda\\x81\\x6c\\xa9\\x75\\x6c\\x5b\\xfe\\x1b\\xb8\\xb5\\x97\\x9e\\x57\\x54\\x01\\xbd\\xa3\\x4e\\x9c\\xbc\\x4d\\x77\\xe7\\x11\\xd6\\xb7\\x3b\\x82\\xda\\x19\\xda\\x47\\x3b\\x55\\xe8\\xe7\\x2d\\x34\\x1b\\x2d\\x85\\x03\\xe4\\x86\\x09\\xbe\\x0f\\xe2\\x91\\x44\\x4c\\x28\\x36\\x69\\xe5\\xde\\xad\\xea\\xf5\\x2a\\xa8\\xec\\x48\\xda\\x83\\xf5\\x32\\x8c\\xc0\\x99\\xfb\\x41\\xf8\\x2b\\xec\\xdd\\x58\\xd0\\x4b\\x1d\\x66\\x20\\x3d\\x73\\x7b\\xed\\x06\\xcf\\x21\\xc9\\x78\\x19\\xac\\x13\\xed\\x71\\x1c\\xa2\\x17\\xa5\\x7c\\xf7\\xd8\\x0f\\xf0\\x82\\xaa\\x1a\\x1c\\xf8\\xfe\\xa5\\x55\\xcd\\x2e\\x47\\xe4\\xdd\\xab\\x5e\\x3f\\x99\\x41\\xad\\x4f\\x77\\x5f\\x49\\x41\\x9d\\xca\\xdb\\x5b\\x00\\x4b\\x68\\xca\\xf4\\x5b\\x27\\xef\\x49\\xba\\x14\\xfb\\x52\\xb0\\x9f\\x1b\\x18\\x5b\\xe9\\xf9\\xc7\"},\n{{0xb1,0xb6,0x36,0xe9,0x57,0x57,0x4c,0x21,0xa9,0x57,0xa4,0x5b,0xd1,0x95,0xc6,0xf9,0xfe,0x4c,0xc1,0xc5,0x7e,0x84,0x13,0x4d,0x39,0xb4,0x2e,0x1a,0x84,0x32,0x9e,0xdb,},{0x95,0xe7,0x7b,0x15,0xdd,0xa4,0x7c,0xaf,0x69,0xb7,0x28,0x88,0xdd,0x69,0x96,0x1b,0xac,0xbe,0xc3,0xbc,0x75,0x35,0x30,0x03,0xe8,0xbf,0xf0,0xa4,0x3d,0xdf,0x4b,0x7a,},{0x76,0x3c,0x7d,0x0d,0x46,0x87,0x8e,0x5c,0x7e,0xcf,0x71,0x04,0xfc,0x1f,0x22,0x30,0xe4,0x61,0x78,0xa2,0x7c,0x75,0xf1,0x96,0x16,0x9c,0x02,0x79,0xed,0xb0,0x1c,0x28,0xfc,0xde,0x3b,0x0d,0x5b,0x86,0x35,0xcf,0xe3,0x39,0xfb,0x23,0x27,0x74,0xb2,0x20,0x6d,0xab,0x8a,0x46,0x0c,0xe4,0x17,0xab,0xf4,0x90,0xbb,0xfa,0x78,0x5c,0x02,0x05,},\"\\xe2\\x5d\\x32\\x9c\\xad\\x83\\x64\\xd2\\xde\\xc2\\x43\\x73\\xe9\\x2d\\x9d\\x50\\xfc\\x7a\\xbe\\x8f\\xdc\\x3d\\x0b\\x4e\\xe5\\x7e\\x1c\\xfa\\x5b\\x7c\\xd5\\x8c\\x23\\xbe\\x91\\x8f\\x05\\x17\\x9b\\xa8\\x41\\xb6\\x1e\\x18\\x00\\x34\\xca\\x7e\\x74\\xd4\\x9b\\x0a\\x1a\\x2c\\xeb\\xb4\\xbe\\x65\\x34\\x4c\\x91\\x3c\\x46\\xd3\\x26\\x52\\x33\\x6e\\x6b\\xda\\x4e\\xfa\\x3f\\x58\\x73\\x0d\\x39\\xa6\\x33\\xa1\\x4c\\xa3\\xd9\\xa6\\x2a\\xbb\\x0a\\x73\\x98\\xcc\\x29\\xaf\\xf9\\x16\\xee\\xea\\x2e\\x7c\\xaa\\xc8\\x08\\x45\\x56\\x2f\\x73\\xd4\\x03\\x0f\\x9c\\xab\\x0b\\xf1\\xc6\\x40\\x7f\\x54\\x01\\x51\\x3e\\xf8\\x7f\\xe6\\xdc\\x09\\x9d\\xbc\\x5d\\xfc\\x33\\x52\\x91\\x1c\\x07\\xaf\\x6c\\x52\\x3b\\xef\\x4c\\xca\\x78\\x37\\x96\\x59\\xe8\\x80\\x3f\\x58\\x59\\x04\\xee\\x6e\\xf6\\xfd\\xe7\\x73\\x66\\xd9\\x6d\\x2c\\xcf\\x24\\x8a\\x53\\x20\\xd9\\xb8\\x29\\x8b\\x2a\\x73\\x36\\x38\\x79\\x10\\x7a\\x02\\xb4\\x7f\\x57\\x21\\x3a\\x85\\x20\\x3a\\xbb\\xca\\x5a\\x41\\x95\\xf8\\xaf\\x3e\\x35\\x93\\xed\\x2f\\xa3\\x50\\x4b\\xb7\\x6a\\x3e\\x1b\\xe2\\x4b\\x66\\xd3\\x55\\x66\\x29\\x32\\xcb\\x67\\xdc\\x88\\x50\\x3a\\xfa\\xf7\\x62\\xbf\\xf7\\x41\\xba\\x1c\\xac\\xe9\\x7a\\xc5\\x8b\\xaf\\xad\\x5d\\x36\\xc3\\xaa\\x02\\xe0\\xcb\\xe2\\x0e\\x5f\\x3d\\xc8\\x09\\x2c\\x51\\x2e\\xaa\\x9c\\x49\\x43\\x47\\x4a\\xad\\x41\\x99\\x00\\x76\\x72\\x1a\\xd3\\xf5\\x3f\\xb0\\x8a\\xc2\\x29\\x82\\xed\\x9b\\x15\\xc7\\x51\\xa9\\xe2\\x33\\x82\\xf6\\xa6\\x9c\\x72\\xe6\\xe2\\x44\\xe0\\xeb\\x68\\x1e\\x6d\\xd2\\x28\\xd3\\x77\\x4f\\xcc\\xb3\\x7e\\xb6\\x23\\x2f\\x82\\x5d\\x16\\x9a\\x2a\\xc8\\xb7\\xe1\\x8a\\x42\\xcd\\xaa\\x4f\\x2c\\xf0\\x58\\x90\\xbb\\x0c\\x59\\x8c\\xf8\\xc3\\x1f\\x82\\x9e\\xf8\\xca\\x24\\x35\\xbd\\xcc\\xeb\\x0e\\x61\\x93\\xad\\xa7\\x84\\x1e\\xe6\\x92\\xf3\\x0a\\xed\\xf8\\x8b\\x62\\x73\\x11\\xb1\\x38\\xac\\x78\\xb3\\x91\\x3e\\x06\\xf7\\xc3\\x21\\xca\\xfb\\x39\\xd9\\x01\\xdf\\xe1\\x74\\x30\\xb1\\xa2\\x0b\\xc4\\x37\\xa5\\x55\\xa5\\x78\\xfa\\x31\\xe4\\xb6\\x80\\x79\\x54\\x45\\x6b\\xd4\\xb0\\x4d\\x5d\\x88\\x79\\x87\\xbd\\xf0\\x4e\\x0f\\x14\\xaf\\x31\\x41\\xb2\\x4c\\x3a\\x7b\\x9a\\xc7\\x5a\\xa3\\x2e\\x2f\\xcd\\x21\\x71\\xa1\\x26\\x09\\xe1\\x5e\\x73\\x09\\x4f\\xd0\\x92\\x21\\xb4\\xd2\\x70\\x90\\xe7\\x32\\x19\\xb6\\x48\\xbc\\xaa\\xbf\\x38\\x07\\xc9\\x28\\x0b\\x6c\\x4a\\xd7\\x50\\xa4\\x68\\xbe\\x0e\\x1a\\xd3\\xe6\\xe6\\x30\\x16\\xcb\\x5c\\xec\\x3a\\xad\\xdc\\x56\\x89\\xc2\\x95\\x5a\\x2a\\x8d\\x5b\\x89\\x84\\xd7\\xc4\\x43\\x76\\xfd\\xd9\\x4d\\x3f\\x5f\\xf1\\x29\\x8f\\x78\\x17\\x2b\\x56\\x59\\x13\\x70\\x4e\\x90\\xe5\\xac\\x03\\x8c\\xb1\\x72\\x0e\\x19\\xb0\\x80\\xf8\\x1b\\x53\\xd6\\xa4\\x5d\\x45\\x28\\x53\\x07\\x11\\xb6\\x3d\\xfe\\x1e\\x47\\x81\\xc2\\x4d\\x74\\xae\\xb2\\xbd\\x8a\\x73\\xfd\\x2a\\x99\\x3c\\x5b\\x08\\x91\\x39\\x21\\x96\\xac\\x32\\xc5\\x23\\x69\\x99\\x60\\xd8\\xb2\\x3e\\x01\\x66\\x4c\\xf9\\x02\\x1d\\x93\\x92\\x80\\x50\\xca\\xf9\\x7f\\xb9\\x85\\x55\\x45\\x80\\xe3\\x33\\x36\\xa4\\x56\\x32\\x47\\xdf\\x59\\xef\\x6c\\xae\\x53\"},\n{{0x10,0xca,0x41,0x3d,0x70,0xeb,0x3d,0xb6,0xe3,0x37,0xf0,0xf1,0x1a,0xbc,0x07,0x5c,0x95,0x85,0x9e,0x82,0x5f,0x87,0x61,0x76,0x07,0x69,0x52,0xd2,0xf1,0x88,0x80,0x30,},{0x50,0x28,0xba,0x38,0xaf,0xec,0xc2,0x42,0x63,0x5f,0x6e,0x35,0x3d,0x5f,0x4a,0xfd,0x12,0x3f,0x86,0x0a,0x04,0x25,0x22,0x0e,0x96,0x65,0x52,0xa0,0x57,0x88,0x08,0x23,},{0x6a,0xec,0x02,0xdc,0x6b,0xdf,0xcb,0x67,0xf0,0xef,0xc1,0xfd,0x31,0xe2,0x3e,0x69,0xe3,0x71,0xab,0x38,0x02,0x50,0x5b,0x32,0x01,0xa9,0x5d,0xd5,0x25,0x41,0x7e,0xd1,0xa1,0x28,0xdb,0x4e,0x18,0x2c,0xb3,0x7c,0x28,0xf6,0x28,0x06,0x66,0x70,0x99,0xa8,0xad,0x48,0x0b,0x0a,0xc9,0xe9,0x4c,0x2a,0x7d,0x5a,0x0e,0x96,0xe2,0xa7,0x36,0x0d,},\"\\xea\\x7f\\xaf\\x79\\xf6\\xff\\x5d\\x78\\xa8\\x23\\xa7\\x54\\x34\\x71\\x34\\xf1\\xb3\\xc3\\xe9\\x1c\\xe5\\x18\\xfd\\xd6\\x33\\xfe\\xb4\\xf0\\x5d\\x12\\x5f\\x05\\xcb\\x54\\x33\\x6e\\xf5\\x60\\xe9\\x2d\\xeb\\x68\\x51\\x12\\xa5\\xff\\xcd\\x3d\\xfd\\x39\\x64\\xb2\\x75\\x8c\\xe4\\x78\\x5f\\x6a\\x34\\xbf\\xeb\\x39\\x78\\x4f\\x0a\\xee\\x55\\x95\\x5a\\xeb\\xd1\\x2d\\xdd\\xa6\\x41\\xd0\\x57\\x69\\xf7\\x44\\x02\\xf7\\x06\\xda\\xd2\\x01\\xc4\\x4c\\x91\\x08\\x1c\\x7d\\x7f\\x65\\xe7\\xaa\\x42\\x46\\xde\\x6d\\xc3\\xed\\x64\\x96\\xd1\\x0f\\x4a\\x41\\x20\\x60\\xd4\\x93\\xba\\xc9\\xae\\xd5\\xbe\\x4f\\x6d\\x74\\x22\\x9e\\x3c\\x55\\xeb\\x68\\x76\\xe3\\xbb\\x2e\\xd4\\x1f\\xa4\\x50\\x4b\\x66\\x70\\xdd\\xa8\\xc7\\x98\\xf6\\xda\\xa2\\x80\\xd1\\xaa\\x72\\x02\\x11\\x74\\xf6\\xc0\\x1a\\xec\\x49\\xb3\\x21\\xd8\\x7f\\x53\\xac\\xbc\\xad\\xcc\\x46\\x07\\xd5\\xb1\\xe4\\x5d\\x63\\xfc\\x48\\x1a\\x6d\\x90\\x57\\x6c\\x87\\xc1\\x88\\x0b\\x2e\\x8f\\xf3\\xe5\\x90\\xa9\\x6b\\xee\\xe1\\x80\\x47\\x68\\xc7\\x56\\xbe\\xb8\\x6b\\xf1\\xde\\x8a\\xdc\\x40\\x8b\\x1b\\x8d\\x66\\x6f\\x74\\xba\\x28\\x63\\x08\\x22\\xf9\\x2d\\x18\\xb0\\x56\\xae\\x37\\xce\\x02\\x93\\xee\\x61\\xb9\\xe8\\x0f\\x33\\xac\\x26\\x96\\x71\\xbd\\x62\\xa4\\x05\\x9b\\x24\\xf7\\xc1\\xa4\\x40\\x80\\x74\\x40\\xd5\\xd5\\x38\\xa6\\x54\\x58\\xad\\xc8\\x15\\x87\\x24\\xb2\\x5c\\x12\\x12\\x7a\\xa0\\x34\\x9e\\x55\\xf6\\xe5\\x5b\\xc9\\x20\\x78\\xfd\\x1e\\xf2\\x74\\xc2\\xaa\\x79\\x19\\x05\\x76\\x6b\\xe3\\x94\\xa2\\x62\\x8f\\x7b\\xbd\\x1a\\x32\\xda\\x5e\\x48\\x74\\x46\\xbb\\xef\\xae\\x88\\xfa\\x6c\\xf3\\xf7\\xb4\\x99\\xf1\\x31\\xfa\\x19\\x31\\x3d\\x13\\xb2\\x80\\xad\\xca\\x50\\xf7\\x78\\x02\\xd1\\x73\\x31\\xb3\\x81\\x68\\x3b\\x5e\\x7e\\xda\\xb9\\x94\\x73\\xed\\xd3\\x1d\\x77\\x44\\x34\\x88\\x21\\x41\\x35\\xfd\\x6f\\x26\\x44\\x50\\x93\\xe9\\xe2\\xaf\\xf7\\xd7\\xe8\\x92\\x33\\x7f\\xdc\\x87\\x79\\x06\\x5d\\x4d\\x97\\xd6\\xd6\\x73\\x57\\x67\\x94\\x95\\x8d\\xbf\\xa6\\xc5\\x0b\\x1b\\x13\\xac\\x39\\x60\\x7c\\x1e\\x66\\xef\\x96\\x29\\x76\\x10\\x71\\x15\\x5f\\xbc\\xa6\\xf3\\x6e\\xb0\\x2c\\xee\\xae\\x16\\x36\\x7f\\xea\\xc0\\x74\\x76\\x90\\x8c\\x84\\x7c\\x9a\\x53\\x3e\\xf6\\x8c\\x94\\x31\\x1f\\xa0\\x89\\xff\\x28\\xfb\\xd8\\x78\\x09\\xb0\\xd3\\x87\\x6b\\x43\\x1d\\x9a\\x18\\xb2\\x02\\xf9\\xa4\\x04\\x9a\\x05\\x77\\xb8\\x17\\x76\\x10\\xdd\\x02\\xe5\\xc5\\x20\\xec\\xa9\\x55\\xe8\\x03\\xc3\\xad\\x4f\\x50\\x97\\x6f\\x7c\\x2e\\xa8\\xaa\\x3e\\xe4\\x83\\x6a\\x19\\x85\\xdf\\x0a\\x4f\\x16\\xef\\x46\\x98\\x15\\x95\\x41\\x98\\x97\\x99\\x35\\x60\\xaf\\x82\\x65\\x1c\\x2b\\x49\\x4e\\x68\\x0b\\x37\\x80\\x2e\\x75\\x37\\xef\\x68\\xa5\\x75\\xc3\\x4f\\x85\\x88\\x06\\x3e\\xe0\\x19\\x72\\x06\\xd9\\xa3\\x2b\\xb4\\x89\\x0e\\x7c\\x21\\x6a\\x4d\\x33\\xfe\\xca\\x36\\xb5\\x49\\xe5\\x32\\xfe\\xa6\\x85\\x56\\xe7\\x54\\x0a\\x4f\\xb1\\x69\\xd4\\x9f\\xc5\\x53\\xb2\\xe6\\x70\\x0a\\xe4\\x2d\\x9a\\x51\\x6e\\x68\\x16\\x0a\\xcf\\x6b\\x27\\x0c\\x77\\xca\\x5e\\xc2\\x6e\\x5a\\xd5\\xdc\\x75\\xc2\\xc3\\x93\\xe2\\x99\"},\n{{0x1f,0x0a,0x10,0xa2,0xcb,0x11,0x19,0x17,0xb9,0xa6,0x7a,0x2a,0x1f,0x38,0xfb,0x86,0xf8,0xed,0x52,0x60,0x7d,0x1d,0x65,0x3a,0x45,0x7d,0x7f,0x47,0x18,0xd9,0xa7,0xde,},{0x70,0xc0,0x75,0xb2,0xe9,0x4c,0x4c,0x02,0xf4,0x5e,0x73,0x04,0x4f,0x24,0x39,0x97,0x41,0xb1,0x61,0xfe,0xb6,0xf6,0x9e,0xab,0x63,0x54,0x17,0x28,0x2a,0x4a,0x93,0x68,},{0xa4,0x24,0x5a,0xa3,0x39,0x5e,0x7b,0xad,0xa2,0xbc,0xdf,0x16,0x03,0x14,0x7c,0xc5,0xf3,0xf0,0xba,0x91,0xf4,0x0f,0xda,0xd8,0xf6,0xd3,0x71,0xc3,0xeb,0xef,0xb4,0xc1,0x50,0x1d,0x07,0x87,0x5b,0x57,0x6f,0x40,0x79,0x78,0x06,0xa4,0x84,0xc7,0xa3,0xf7,0x05,0x69,0xe2,0x32,0xb0,0xc9,0x9d,0x29,0xca,0x23,0xa2,0x33,0xb6,0x8e,0xdb,0x0c,},\"\\x4f\\x6a\\x43\\x4b\\xd5\\xfc\\x77\\xf0\\xf1\\xb7\\x04\\x9c\\x91\\x85\\x3c\\xcb\\xd8\\x94\\x39\\x96\\x2a\\x60\\x78\\xa6\\x74\\xb8\\x67\\x54\\x3b\\x6b\\x7d\\x10\\x55\\x2e\\xc1\\x75\\x8c\\x52\\x83\\x04\\x2b\\xd6\\xb4\\xce\\xa8\\x8c\\x95\\x20\\xdb\\x04\\x74\\x6f\\x08\\x9c\\xf3\\xa2\\x60\\xfb\\x0f\\x33\\x85\\x8e\\xfd\\x6f\\x68\\x0d\\xe5\\xb7\\x2d\\x98\\x76\\x32\\x4b\\xa5\\x90\\x29\\x91\\x38\\xf8\\x5a\\x76\\xf5\\xbe\\x0e\\x05\\xe8\\x85\\x9c\\x02\\xb2\\x35\\x12\\x55\\x9c\\x8b\\xea\\xfc\\x9c\\xfe\\x90\\x1b\\x28\\x3e\\x15\\xd1\\x6c\\x79\\x2e\\xb0\\x3b\\x92\\x88\\x0f\\x6f\\xf9\\x7a\\xa3\\x8e\\xee\\xad\\x3f\\x4f\\xd6\\xc0\\xa9\\x21\\x43\\x23\\xaa\\x39\\xa1\\xc1\\x65\\x15\\xe3\\x0d\\xbd\\x08\\xb8\\x33\\xee\\x40\\xa8\\x14\\xa2\\x88\\x09\\xc8\\x70\\xe1\\xd0\\xa6\\x2c\\x37\\x93\\x2d\\x54\\x08\\xfc\\x6a\\xfc\\x63\\xe7\\x9a\\x65\\x5c\\x5f\\xe3\\xd4\\x02\\x6e\\xf0\\x9e\\x02\\x99\\xfb\\xde\\x5a\\xb3\\x4f\\xce\\xab\\x14\\x13\\x0d\\xc4\\xbe\\x00\\x7e\\x8e\\x64\\x44\\xd7\\xaa\\xae\\xc6\\x2c\\x87\\x3d\\xf7\\x7e\\x80\\x10\\x74\\x3c\\x31\\xe8\\x75\\x7f\\x1e\\xae\\x9e\\xdb\\x55\\x97\\xa1\\xb5\\xd8\\x4b\\xd7\\x7a\\xe7\\x64\\x2e\\x1a\\xca\\x99\\x87\\x3a\\x15\\x2f\\xfd\\xe0\\x68\\xa8\\xe4\\xad\\x92\\x40\\xb9\\x03\\x33\\x27\\x95\\xe4\\x0b\\xb3\\x28\\x65\\xe5\\xce\\x03\\x43\\x07\\xa6\\xc9\\xfe\\x33\\x9a\\x1c\\x93\\x77\\x0d\\xf5\\xca\\x46\\x32\\x9f\\x6b\\x09\\x41\\x97\\x85\\xcb\\xf2\\x84\\x7b\\x0c\\x68\\x32\\x83\\x71\\x23\\x85\\x3a\\xd9\\x52\\x65\\x32\\x65\\xc5\\xb5\\x74\\x0d\\x19\\x4e\\x00\\xf2\\x3f\\x9e\\x96\\x67\\x91\\xf0\\x05\\xf8\\xbf\\x55\\xc3\\x88\\xc2\\xbe\\x9e\\x21\\x53\\x89\\x25\\xf8\\x55\\x5e\\x0d\\xbd\\x83\\xbe\\x07\\x3d\\xf7\\x65\\xaf\\x49\\x40\\xe5\\x9a\\x37\\x90\\xb9\\x83\\x6b\\xab\\x79\\x09\\xe5\\x67\\x6f\\xbf\\x1c\\x21\\x26\\xfe\\x22\\x6d\\x78\\x1a\\x44\\x33\\x0c\\xc0\\x1d\\x32\\x83\\x0f\\xf8\\xae\\x00\\xb9\\x79\\x2e\\x39\\x8c\\x2c\\xbb\\x4f\\xb8\\x3a\\x10\\x05\\xc2\\x45\\x54\\x9a\\x89\\x06\\x3f\\xbe\\x06\\xc6\\x2a\\x48\\xda\\xc4\\x3c\\x51\\x01\\x24\\x99\\x94\\xe9\\x5e\\x37\\xf2\\x4c\\x1d\\x8b\\x3b\\xc6\\x73\\x53\\x8c\\x46\\x05\\x5f\\x80\\x0d\\xb1\\xc0\\xf9\\x56\\x86\\x9b\\x6b\\x29\\x7d\\x99\\x0f\\x44\\xf0\\x5b\\x50\\xc7\\xad\\x6b\\x85\\x6f\\x46\\x21\\x28\\x58\\x47\\x1d\\xd0\\xd3\\x93\\x72\\xb0\\xdb\\x75\\x15\\x73\\xdd\\xb6\\xb5\\xb5\\x6b\\xa0\\x1e\\x37\\x1c\\x78\\xfe\\x58\\xdc\\xd1\\xbe\\x53\\x11\\x2a\\x6a\\x73\\xda\\x9a\\x6b\\xac\\x75\\xd3\\xc3\\x9a\\x1a\\x70\\x5a\\x36\\xf6\\x40\\xfc\\xfa\\xd8\\xcd\\x04\\x07\\x75\\x94\\xd5\\x96\\x85\\xf6\\xe3\\x0d\\xe7\\x1d\\xfd\\x4a\\x44\\xc4\\xe7\\xc0\\x4d\\x6e\\xc7\\xc2\\xe8\\xbe\\x12\\x78\\x5b\\xb0\\x5b\\x29\\xb3\\x91\\x51\\xd3\\x29\\xf5\\x87\\xfd\\xc3\\x81\\xc2\\xdf\\x0c\\xef\\x73\\xfe\\x0e\\x3f\\xd9\\x20\\x8d\\x7c\\xcb\\x6e\\x08\\xd0\\x2f\\x42\\xd1\\xfe\\xed\\x27\\x56\\x1d\\x5e\\x32\\x3a\\xa1\\x48\\x62\\x4e\\x55\\x2a\\xbe\\x87\\x53\\x2d\\xe1\\x5b\\x7f\\x42\\xc2\\x2c\\x98\\xe4\\x05\\x25\\xb1\\x74\\x7c\\xbd\\x75\\x8b\\xfb\\x26\\xfd\\x3e\\xed\\x3b\"},\n{{0x7f,0x05,0xba,0xac,0xf1,0x67,0x58,0x3c,0xf2,0xfe,0x95,0x62,0xa5,0x06,0x99,0x1e,0xd9,0x87,0xf6,0x8f,0xfb,0x71,0x56,0x7c,0x7c,0xcc,0xe3,0xfc,0xc5,0x9b,0x78,0xb0,},{0x0d,0xec,0x39,0x52,0x85,0x2b,0x96,0xfd,0x75,0x58,0x7e,0x97,0x74,0x3f,0x9e,0x41,0xc0,0x9f,0xbe,0x6b,0xa9,0x81,0xbf,0xce,0xb4,0xeb,0xb8,0x89,0x2d,0x98,0x6a,0x16,},{0x0d,0xee,0xd2,0xdf,0x82,0xac,0xf4,0x52,0x9c,0x40,0x8a,0x02,0x93,0x1f,0x67,0x6b,0xec,0x5c,0xb7,0xad,0xe8,0x4e,0xbd,0xcd,0x57,0x8f,0x70,0xf9,0x71,0x38,0x2c,0xf3,0x11,0xbb,0x83,0x09,0x73,0x00,0x45,0x6a,0x55,0x8b,0xc4,0xc0,0x9d,0x89,0x83,0xff,0x13,0x49,0x3f,0xd6,0x11,0xeb,0x66,0xc0,0x43,0xbf,0x01,0x9b,0xad,0x6f,0x33,0x02,},\"\\xa2\\x7d\\x1e\\xab\\x05\\x15\\x09\\x20\\xde\\xd1\\xb1\\xc2\\x57\\x8a\\xf5\\x82\\xb2\\x94\\xf7\\x83\\x7f\\xe4\\xfb\\x1a\\x31\\x69\\xc2\\x5e\\xfb\\x70\\x63\\x4b\\xa6\\x6c\\x7e\\x29\\x91\\xb3\\xe7\\x5c\\xc5\\x12\\x48\\x26\\xa0\\x3e\\x05\\x72\\x59\\xb5\\xcb\\x70\\x62\\x28\\x78\\x0c\\xbc\\x82\\x75\\xc3\\x39\\xf8\\x34\\x0e\\x40\\x2a\\x66\\x50\\x32\\xa4\\xab\\x65\\x78\\x27\\xb1\\xc3\\x48\\x1f\\x75\\x66\\xd3\\x69\\x73\\x5b\\x82\\xdb\\x76\\x28\\xc0\\x22\\xb2\\x12\\x73\\x0d\\xb1\\xe4\\x7c\\x9b\\x2d\\x9b\\xc4\\xd8\\x1b\\x23\\x42\\xd8\\x9c\\x6e\\xaf\\xc3\\xe0\\xb6\\xde\\x50\\xd4\\x84\\xcc\\xef\\x11\\x23\\x8c\\x8e\\x2d\\x24\\x0d\\xd5\\x95\\xdc\\xef\\x8b\\x2f\\xc5\\x7b\\x54\\xff\\x9a\\x8a\\x74\\x11\\x1f\\x61\\xf8\\xa6\\x52\\xf2\\x0e\\xa0\\x12\\xc1\\xad\\xe3\\xe2\\x80\\xec\\xde\\x29\\x4c\\x0e\\x35\\x71\\x71\\x90\\x16\\x2e\\xc6\\xa2\\x26\\x5e\\x7e\\x6f\\x3f\\x07\\x04\\xcf\\x8a\\xb1\\xa0\\x3e\\x5c\\xc9\\x53\\xe2\\x92\\x62\\x91\\xcc\\xd4\\xb0\\x59\\x0d\\x5c\\x20\\x56\\x8f\\x94\\xf9\\xff\\x0f\\xe2\\xab\\x78\\xcf\\x9a\\xe2\\xc3\\x8b\\xcd\\x49\\x1e\\x51\\x8f\\x23\\xe9\\xb6\\x36\\xf8\\x80\\x61\\x5f\\xc5\\x60\\x78\\xe5\\x12\\xd7\\x57\\x7e\\x09\\x49\\x7c\\x11\\x83\\x45\\x3d\\x50\\x81\\xfd\\x47\\x37\\xf2\\x80\\xec\\x5e\\x26\\x7c\\x45\\x86\\xb7\\x8b\\x70\\xff\\xfd\\xfd\\x73\\x0d\\x80\\x9d\\xf5\\x60\\xf2\\xe3\\x77\\x21\\x91\\x84\\x7b\\xbc\\x3f\\x60\\x4f\\xb7\\xf8\\xca\\x49\\xee\\xd3\\x18\\xb5\\xe7\\xd1\\xf2\\xb8\\x3a\\x10\\xda\\x0c\\x85\\x94\\xb3\\x39\\xb6\\x87\\x1a\\x57\\x72\\xdd\\x64\\x16\\x8e\\xcc\\x27\\xe2\\x40\\xa4\\x5c\\x76\\x72\\x5e\\x7d\\x55\\xbe\\xf3\\x7e\\x13\\x5e\\x3d\\x9e\\x0e\\x34\\xe3\\x6c\\x16\\xe3\\x4d\\x77\\x45\\x9a\\x55\\x2f\\x40\\x74\\xd0\\x67\\xa3\\x1a\\x3e\\xd2\\xa4\\x8c\\xde\\xa4\\x89\\x5b\\x10\\xbd\\xf1\\x65\\x6f\\x4b\\x7a\\x41\\x3c\\x6a\\x08\\x8c\\x64\\x9f\\xc9\\xd7\\xbc\\x56\\xab\\xf6\\x44\\x35\\x49\\x12\\x14\\x19\\x2a\\x66\\x70\\xcb\\x8b\\x9c\\x91\\x7f\\x8e\\x1b\\xc7\\xb2\\xcf\\xce\\x78\\xd2\\x8f\\xbc\\x3a\\xfc\\x2a\\x50\\xe9\\x82\\x13\\xe7\\xe0\\x26\\x37\\x8e\\x4e\\xa7\\x11\\xd1\\x51\\xad\\xaa\\xa7\\x19\\xbe\\xb8\\x97\\x46\\x56\\xc1\\x0e\\xbc\\x7d\\xe4\\x6b\\x19\\xec\\x82\\x95\\x1e\\xf4\\x6a\\x8c\\x68\\xe7\\xf4\\x36\\xe1\\xb3\\xeb\\xed\\xb2\\xd0\\x9b\\x05\\x75\\xc9\\x91\\x4e\\xad\\x27\\x96\\xb5\\x3e\\x00\\x61\\xe2\\x12\\x99\\x4a\\xc5\\x02\\x6a\\xea\\x81\\xec\\x37\\xc8\\x13\\x78\\xf4\\xcc\\xfc\\x46\\x77\\x00\\x08\\x79\\x68\\x59\\x7d\\xa3\\x8f\\xed\\x52\\xfa\\x48\\x09\\x3a\\xe4\\xba\\x10\\x66\\xc3\\x1e\\x3c\\x7d\\x85\\x08\\x09\\x5b\\xb4\\x5c\\x28\\x01\\x20\\xf4\\xaa\\x69\\xa2\\x4f\\x3e\\xfe\\xf1\\xf7\\x67\\x98\\x5a\\xa1\\xa3\\x0e\\x14\\x08\\x56\\xf7\\x6d\\x15\\x20\\x73\\x28\\x78\\x48\\x7b\\xe5\\x3f\\x71\\x2d\\xbd\\x7d\\x77\\x9e\\x31\\x51\\x01\\x58\\x8f\\xd7\\xdb\\xdb\\x13\\x2f\\x92\\xc2\\x75\\x75\\xac\\x14\\x86\\xf1\\x76\\xc7\\x90\\x66\\x1b\\x01\\x48\\x39\\x4e\\x92\\xff\\xa3\\xae\\x6f\\x8a\\xfb\\x2f\\xaa\\x2b\\x7f\\x4f\\xbd\\x0a\\xd9\\x1e\\x75\\x9a\\x70\\x2b\\x3c\\x70\\x2b\\x4d\"},\n{{0xd0,0x0c,0x21,0x64,0x26,0x71,0x0d,0x19,0x4a,0x3d,0x11,0xcf,0xc9,0x0a,0x17,0xa8,0x62,0x12,0xe7,0xa0,0xe5,0x4b,0xaa,0x49,0xb0,0x16,0x9e,0x57,0xff,0xf8,0x3d,0x61,},{0xcf,0xe6,0xae,0x89,0x03,0xc6,0xc7,0x01,0xaa,0x30,0x46,0x95,0xc6,0x51,0xbf,0xd8,0x50,0x33,0x1f,0x9a,0xd4,0x81,0x63,0x3a,0xe3,0x70,0xc8,0x6d,0x7b,0xd1,0x3f,0xb9,},{0x15,0xc4,0x5c,0x19,0x42,0x97,0xe8,0x87,0x02,0x9f,0x49,0xd8,0xbd,0xf9,0xd6,0x10,0xdd,0x8c,0x34,0x79,0x9e,0x1e,0x92,0x30,0x26,0x9e,0x7a,0x58,0x92,0x89,0x38,0xcf,0x39,0x6a,0x02,0xcd,0x42,0x20,0x54,0x90,0x39,0x1e,0x1c,0x64,0x35,0x3f,0xb0,0x6b,0x9f,0x8e,0x9b,0x81,0x8a,0x9a,0x36,0x1c,0x20,0x4a,0x38,0x69,0x95,0xbf,0x3b,0x03,},\"\\x82\\xf9\\x78\\x41\\xb3\\xba\\x22\\xdd\\x9a\\x44\\x50\\x83\\x7e\\xa7\\xbf\\x8d\\x27\\xa9\\x73\\x14\\x70\\xca\\xbb\\x0c\\x20\\x78\\x03\\x4b\\xf2\\x4e\\x4c\\x1a\\x62\\x90\\xc0\\x3f\\x40\\x02\\xb8\\x6f\\xa0\\x9f\\x07\\xb5\\x20\\x9f\\x1f\\x53\\xd0\\xec\\xf4\\xd9\\xe9\\x22\\x3b\\xec\\x12\\x5a\\x95\\x45\\x51\\xfe\\x8b\\xff\\x71\\x8f\\x5e\\x26\\x48\\x68\\xe2\\x07\\xf7\\x01\\x19\\x4e\\x41\\xde\\x39\\x97\\x1f\\xd3\\x85\\xf4\\x9a\\x4b\\x4a\\xdd\\xa9\\x11\\xeb\\xa5\\x52\\x59\\xfc\\x68\\x36\\x65\\x32\\x73\\xf6\\x56\\xf4\\xaf\\x60\\xb2\\x06\\x64\\x95\\x6d\\x4f\\x21\\x35\\xd9\\x0d\\x09\\xe9\\x03\\x7d\\x53\\x66\\xa0\\x25\\x34\\x44\\xe0\\x22\\xc7\\x21\\x2a\\xf5\\xfd\\x4f\\xcc\\xd7\\x42\\x37\\xd2\\x88\\x53\\x38\\xe2\\xfd\\x72\\x15\\x22\\xde\\x67\\x63\\xc2\\x54\\x90\\x28\\xc6\\x23\\xb9\\xcf\\x38\\x7d\\x23\\x4a\\xb5\\xe7\\xfc\\xbe\\x5a\\x47\\xc6\\x85\\xb7\\x9e\\x75\\xa5\\x7b\\x09\\x57\\x40\\x82\\xa0\\x22\\x21\\xdf\\x64\\xa2\\xe8\\x41\\x61\\x80\\x87\\xe7\\x22\\xa2\\x1b\\xac\\x1b\\xa4\\xf0\\xd7\\xd8\\x7b\\xdc\\x51\\x0a\\xaa\\x8f\\xbd\\x10\\x75\\x7f\\x6c\\x02\\x9c\\xa8\\x20\\x37\\x1f\\xc7\\x4c\\x3b\\xc5\\x0b\\xd8\\x98\\xc5\\x5d\\x81\\x67\\xf7\\x3a\\xda\\x37\\x7a\\xec\\xc9\\x16\\x29\\xd6\\x4c\\x36\\x0c\\x2c\\x24\\x1c\\x5c\\xb4\\x2e\\x3a\\x51\\x8c\\x5d\\xab\\xf0\\xf4\\x18\\xb2\\xa7\\xf3\\xd8\\x2e\\xef\\xd9\\x20\\x26\\xd3\\x1e\\x8b\\x81\\x60\\x35\\x8e\\xae\\x82\\x1f\\x73\\x0e\\xca\\xfe\\x7a\\xce\\x64\\x7b\\xff\\x87\\x41\\xde\\x2f\\x6a\\x13\\x1d\\x11\\xc9\\x69\\xe9\\x78\\x7c\\xfe\\x6a\\x2f\\xab\\x37\\xbf\\x8d\\x1c\\x7f\\x4a\\x2f\\x36\\x4d\\x2f\\x1a\\x76\\xef\\x04\\x6c\\x18\\x43\\xe6\\x3e\\xc0\\x0c\\xf7\\x92\\x0f\\xfa\\xae\\x56\\x1e\\x73\\x70\\xb7\\x19\\xfc\\x16\\xfc\\xeb\\xca\\x3c\\xfd\\xfa\\xba\\x43\\xf4\\xf0\\x90\\xc4\\x6f\\x47\\x73\\x03\\xa6\\x60\\xee\\x88\\xdd\\x4e\\x89\\xbf\\x14\\xb9\\xf8\\x04\\xb6\\xfd\\x49\\x5c\\xb1\\x41\\x27\\x53\\x47\\x4a\\x05\\x6a\\x0d\\x89\\x31\\xcd\\x9c\\xcb\\xd6\\x4f\\x8f\\xcc\\x7a\\x31\\x23\\x46\\x7c\\x5d\\x47\\xf6\\x90\\x67\\x9e\\x88\\x71\\x28\\x80\\x93\\x73\\x4f\\xd6\\xa1\\x32\\x60\\x38\\x65\\x81\\x56\\x41\\x36\\x96\\x59\\x4c\\x13\\x4d\\x73\\x88\\x7f\\x34\\xee\\x67\\x60\\x9a\\xe8\\xff\\xb3\\x26\\x6c\\x16\\xd8\\x7f\\x15\\x34\\x5a\\x47\\x6f\\x72\\x95\\x0c\\x15\\x87\\x96\\xa8\\x8b\\xbb\\x44\\x4f\\x1a\\xa8\\x09\\xca\\xd8\\x75\\xb8\\x5f\\xb9\\x15\\x1a\\x0e\\x2e\\xef\\x2e\\x00\\xe8\\x0d\\x6b\\x7a\\x9b\\xa4\\x06\\xc0\\x51\\x9e\\xff\\xdd\\x94\\x12\\x62\\x32\\xfd\\xf6\\xf1\\xe7\\xb9\\xbb\\xc0\\x36\\x2a\\xa7\\x75\\x16\\xfd\\xf9\\x39\\xe7\\x90\\x6a\\xab\\x01\\x30\\x71\\x28\\xcf\\x82\\x4c\\x10\\x2c\\x09\\xb9\\x29\\xc9\\xb2\\xd7\\xaf\\x8f\\x85\\xb7\\xd7\\xf9\\xa8\\x38\\xb2\\xae\\xd0\\xc6\\x97\\xe8\\xbd\\xfe\\xe6\\x6e\\xe0\\x16\\xbb\\x1b\\xf3\\x5e\\xff\\x6b\\x2f\\x7e\\xf4\\xb9\\x1b\\x1f\\xc0\\x4f\\xac\\x9f\\x11\\x6e\\x2e\\xdf\\xf4\\x0f\\x95\\xc1\\x5b\\x77\\xc3\\x1e\\xe5\\x22\\xf3\\x93\\x7c\\x7f\\xa0\\x04\\x7d\\x62\\x25\\xe0\\xc8\\xe5\\x5e\\x27\\x8c\\x81\\x03\\x91\\x1f\\xea\\xb2\\xb7\\xf4\"},\n{{0xdd,0x12,0x39,0x72,0xe6,0x28,0x58,0x4a,0xcc,0x46,0x29,0x3b,0x8e,0x4c,0xe2,0xb2,0xdd,0x46,0x9c,0xc4,0xed,0xe1,0x4e,0xf3,0x95,0x21,0xcf,0x08,0x37,0x35,0x85,0xb3,},{0x35,0x22,0xf7,0xae,0x59,0x6e,0xed,0xb2,0x17,0x03,0x5d,0x95,0x39,0x5e,0x44,0x8d,0xbd,0x6f,0xfb,0xf4,0x25,0x85,0xea,0xeb,0x30,0x70,0x26,0x54,0x1c,0x78,0xa6,0x51,},{0x89,0x65,0xa8,0x89,0xd5,0x4c,0xd8,0x07,0x6d,0x35,0xbc,0x2e,0x12,0xb0,0x09,0xd5,0x6b,0x07,0x04,0xc8,0x94,0xf9,0x12,0xa0,0xd1,0xd3,0x07,0x20,0xc2,0x32,0xfe,0x44,0x04,0xbf,0x30,0x09,0x54,0x1e,0x8f,0x32,0x83,0xe8,0x9e,0xa8,0x6f,0x67,0x8a,0xfb,0xdf,0x1c,0x21,0xc9,0x24,0xb2,0x3a,0x52,0xb4,0xca,0x6d,0x63,0xf4,0x8f,0xc2,0x03,},\"\\x2b\\x28\\x57\\xf4\\x52\\x80\\x17\\x3e\\x2e\\x0e\\xf9\\xd5\\x94\\xe6\\x08\\x3f\\x1d\\xc7\\xa6\\x54\\x92\\x97\\x5b\\x83\\x7d\\xef\\x6c\\xad\\xd8\\xc8\\x54\\x50\\x31\\xee\\x9d\\x68\\x36\\x9a\\x93\\x93\\xcc\\x7b\\x79\\x2f\\xeb\\x98\\x04\\x0b\\x21\\xf1\\xeb\\x84\\x66\\x5f\\x87\\x85\\x37\\xce\\x41\\x2e\\x9d\\xb6\\x80\\xd2\\x9f\\xbd\\x8f\\xfc\\x77\\x31\\xea\\xe9\\x1a\\x20\\xb4\\x75\\x48\\x99\\x62\\x04\\xfb\\x06\\xad\\x74\\x0e\\x78\\xf0\\xfc\\x59\\x0b\\x67\\x91\\xdc\\x7a\\x0f\\x26\\x59\\x28\\x6c\\xc1\\x6d\\x02\\xc5\\x11\\x7b\\x56\\x58\\x36\\xb4\\xb8\\x73\\x8c\\xf4\\x0e\\x28\\x5c\\x69\\xc5\\x0e\\x41\\x29\\x11\\x29\\x23\\x67\\x35\\x2d\\xfd\\xae\\xd9\\x98\\x2d\\x0f\\x89\\x9a\\x23\\xc0\\xab\\x51\\x81\\x2b\\x3e\\xc6\\x78\\xf6\\x88\\x2e\\xa4\\x27\\xcd\\xc9\\x3a\\xb4\\xb2\\x48\\x24\\x37\\x70\\x54\\xaa\\x25\\xd8\\x22\\x46\\x65\\x33\\x40\\x07\\x8c\\xf1\\x1d\\x14\\xa5\\x1f\\x0e\\x68\\x6d\\x7e\\x01\\x8b\\x36\\x74\\x16\\x68\\xfc\\xe7\\x45\\x8d\\x16\\x92\\x93\\x36\\x1d\\xd1\\x6b\\x3d\\xeb\\xbe\\xd1\\x9e\\x1b\\xef\\x7c\\x36\\x93\\x4e\\x20\\xf3\\x3a\\x09\\xad\\x3e\\x82\\xb5\\x3a\\xb4\\xe9\\x4c\\x25\\x5d\\x04\\x18\\x98\\xb9\\x77\\x37\\xdf\\x99\\x58\\x4a\\xf1\\x4e\\x40\\x40\\x58\\xd0\\xc9\\x3b\\xca\\xe7\\xbb\\xbc\\x06\\x39\\x5a\\x2a\\xef\\xbd\\xef\\xa7\\xb2\\xed\\x17\\xce\\xbd\\x15\\x13\\xfa\\x39\\x0f\\xe9\\xa9\\xb0\\xce\\x68\\xce\\xcc\\x2b\\x9e\\x12\\x9b\\x7a\\x29\\xf4\\x9b\\x6d\\x18\\xc2\\x8b\\xac\\xd3\\xaf\\x39\\xdc\\x39\\xca\\x97\\x2f\\x0e\\x0d\\x06\\x85\\x5d\\x57\\xc2\\xb5\\xfc\\xac\\x2f\\x79\\xcb\\x8c\\x05\\x79\\x9e\\x4f\\x65\\x73\\x46\\x68\\xda\\xd6\\xaa\\x7a\\x43\\xa1\\x18\\x56\\xe2\\x3b\\x1e\\x73\\x2d\\x00\\xe5\\xfe\\x38\\x85\\xb7\\xda\\xd4\\x2e\\xc1\\x8a\\xc8\\xe0\\x96\\xa0\\x80\\xf7\\xd5\\x50\\x70\\xfd\\xcf\\xf6\\x07\\xbc\\x0b\\x85\\x2d\\x8a\\x08\\x0d\\x2a\\x74\\x05\\xd5\\x94\\x14\\x69\\x5f\\x2e\\xb7\\xfb\\x0a\\xca\\x23\\xc8\\x63\\x57\\x42\\xf8\\xae\\x57\\xf1\\x37\\x80\\x31\\x6e\\x28\\x08\\x72\\x37\\x4e\\x69\\x29\\x59\\x8d\\x02\\x8a\\x33\\xc0\\x5d\\x83\\x1c\\xda\\xbd\\x02\\x94\\x93\\xc3\\xcc\\x85\\x9f\\xff\\x1a\\x67\\xd5\\x62\\x16\\xf0\\x2a\\x22\\x95\\x66\\x53\\x65\\x88\\x7a\\x35\\x0a\\x80\\xaf\\xaa\\x0c\\x36\\x7a\\x74\\xd3\\x70\\x1a\\xe8\\x8f\\x59\\xd8\\xa9\\xd3\\xa1\\xdc\\xe0\\xcf\\xd2\\xea\\xbe\\x2a\\xf5\\x06\\x5a\\x1c\\x7f\\xca\\x4a\\xad\\xcf\\x8e\\x51\\xe7\\x56\\x12\\xa1\\x37\\x1b\\x4d\\xc8\\xff\\xc0\\xc0\\xb9\\xc4\\xfa\\xdb\\x2f\\x08\\x1e\\x2e\\x03\\x2d\\x96\\x81\\x8e\\x55\\x73\\x7a\\xdd\\xe3\\xe1\\xac\\x12\\x1f\\x56\\xcc\\x86\\xfb\\x58\\xa0\\xa5\\x82\\x69\\x2f\\x62\\xce\\x58\\xac\\xce\\x17\\xaa\\xfe\\xc7\\xbc\\xb7\\xe4\\x4f\\x83\\x92\\x58\\xcd\\x4a\\x85\\x1f\\xc0\\x13\\x44\\xee\\x9f\\x1b\\xd0\\x3e\\xb9\\x43\\x44\\xf4\\x77\\x86\\x93\\xc1\\x71\\xdd\\x28\\x92\\xb2\\x42\\x6a\\x88\\x29\\xab\\x0c\\xfe\\x33\\xa7\\xd4\\xa3\\x6e\\xb4\\x01\\x7f\\x7f\\xcf\\xd2\\x41\\x34\\xab\\x8a\\x45\\xf2\\x37\\x17\\xcd\\x13\\x8a\\xa6\\x00\\x01\\x72\\xe3\\x7b\\x40\\x64\\xdc\\x9b\\x6d\\x1e\\x1e\\xf3\\xaf\\x84\\x97\\x1d\"},\n{{0x33,0x35,0xea,0x92,0x81,0x17,0xcf,0xee,0xfb,0xee,0xae,0x14,0x60,0x03,0x88,0x1b,0xdc,0x88,0x89,0xd6,0x58,0x0e,0xed,0x13,0x52,0x37,0x08,0x20,0xad,0x1f,0x58,0x4f,},{0xcb,0x20,0xd4,0xfd,0x75,0x61,0x84,0x80,0x13,0x11,0x1c,0x3e,0x97,0x61,0x7f,0x34,0x18,0x1d,0x2e,0x7f,0xbc,0xf1,0xbb,0x2a,0x2c,0xd2,0xe8,0xc1,0x77,0x5b,0x8b,0x03,},{0xf7,0xc3,0x9f,0x92,0x47,0xd2,0x2f,0x01,0x89,0x99,0x24,0x7f,0x0e,0x00,0x05,0xcd,0x63,0x07,0x6c,0xcf,0x2f,0xee,0x41,0x63,0x42,0x1f,0x86,0x40,0x7a,0x41,0x69,0x8c,0x40,0x58,0x16,0x64,0x73,0x51,0xc0,0x4e,0x93,0xb5,0x44,0x15,0xb6,0x2f,0xc0,0x3f,0xc8,0xc2,0x5e,0x20,0xf7,0x54,0x1d,0xab,0x03,0x19,0x7d,0xc9,0x00,0xb2,0x9c,0x0c,},\"\\x0f\\xa7\\xf6\\xa6\\xfc\\xa9\\x81\\x42\\x9b\\x57\\x2a\\x67\\x04\\x87\\x1b\\xed\\x14\\x0d\\xab\\x93\\xee\\x19\\x92\\x00\\x6e\\x9a\\x3b\\xb2\\xe6\\xcc\\x9a\\x09\\xd4\\xc9\\xcf\\x17\\x06\\x6b\\x32\\xff\\x7e\\xf5\\xb6\\xb2\\xe7\\x91\\x11\\x78\\xed\\x74\\x62\\xc4\\xc1\\x75\\x60\\x31\\x71\\xca\\x61\\x36\\x68\\xb3\\xbe\\x19\\x3d\\x94\\xc3\\x52\\x1e\\x58\\x89\\x13\\xb5\\x94\\x8b\\x55\\x0b\\xe9\\x9d\\x82\\xd9\\x66\\x19\\x7d\\x71\\x0a\\xcf\\xd9\\x59\\x14\\xcf\\x3e\\x19\\x75\\x36\\xe8\\x3e\\x68\\x23\\x0d\\xc3\\xd6\\x7e\\x67\\xdc\\xdb\\xde\\xe0\\x4f\\x0d\\x9c\\x48\\x02\\x37\\xec\\xd2\\x8f\\x74\\x33\\x8d\\xb5\\xf3\\xf6\\x97\\xd3\\xd0\\x7f\\xf3\\x36\\x13\\xbb\\xce\\x54\\x2a\\xcc\\x9a\\x7f\\xed\\x5d\\x12\\x49\\x0b\\x9b\\xfe\\x1d\\x10\\x95\\x40\\xf8\\x63\\x80\\x0d\\xd3\\x56\\xda\\x84\\x1a\\x45\\xa3\\xcd\\x8a\\x08\\xa9\\x45\\xbf\\xa3\\xaa\\x98\\xe1\\x71\\x23\\x12\\xc4\\xc0\\xf0\\xd9\\xdd\\x64\\xf6\\xef\\xcf\\x73\\x6b\\xd9\\x7d\\xea\\xfc\\xa9\\xdc\\xaa\\x3f\\x06\\xd8\\x7f\\x2e\\xd7\\x2a\\xeb\\x6a\\x94\\xf3\\x28\\x00\\x00\\xc4\\xbf\\x72\\x8a\\x01\\xc1\\x86\\x2d\\xaf\\xd9\\xfc\\x5c\\x7d\\x5a\\x46\\xec\\x7d\\x3a\\x87\\xaf\\x59\\xa1\\x1d\\x87\\xf7\\xff\\x84\\x40\\x7d\\x37\\x01\\x0e\\x1d\\x94\\x6c\\xf2\\x25\\xd6\\xb3\\xb1\\xed\\xee\\x2e\\x8b\\xbf\\x1e\\x07\\x9e\\x47\\xfb\\x1f\\x66\\x66\\x93\\x94\\xfb\\xf2\\xfa\\x68\\xfc\\x56\\xfc\\x89\\x82\\x0a\\x68\\x09\\xc2\\x51\\xdd\\x62\\xf5\\xb8\\x65\\xc5\\x47\\xb1\\x4f\\xbd\\x3a\\x19\\x50\\x42\\x44\\xff\\xbc\\x7e\\x52\\x40\\xf8\\x8d\\x43\\x60\\xf9\\xca\\xca\\xaf\\x5f\\x82\\x43\\x3d\\x33\\x44\\xfc\\xae\\xe0\\xac\\xde\\xb7\\xbe\\xb9\\xc0\\xb3\\xc7\\x69\\xea\\xc9\\x20\\xef\\x4f\\x09\\xab\\xc2\\xa2\\x09\\x55\\x12\\x04\\x59\\x43\\xec\\xcc\\x53\\xb1\\xc0\\x3e\\xd2\\x4e\\x56\\x7f\\x3d\\x7a\\x71\\x97\\x7c\\xab\\x98\\x40\\xce\\x89\\x8e\\xe5\\x8e\\xd5\\xc7\\x3f\\x6a\\xde\\xa8\\x23\\x39\\x4c\\x5c\\x8e\\x36\\x58\\xa6\\xbf\\x5a\\xcb\\xbf\\x00\\x55\\x99\\x2c\\x31\\x2c\\x26\\xc7\\x9c\\x5c\\xfb\\xea\\x38\\x60\\xb8\\x76\\x4a\\x6d\\x8f\\xfe\\x44\\x91\\xf8\\xa5\\xb8\\xa2\\x15\\xe0\\x11\\x7a\\x9a\\x68\\x16\\x4a\\xee\\x25\\xf8\\xc0\\xbb\\x38\\x11\\x95\\xb2\\x40\\x0b\\xcb\\x46\\x44\\xeb\\xce\\x1c\\xde\\x5a\\x9a\\x26\\x58\\x2c\\xab\\x9d\\xc7\\xf4\\x3c\\x33\\xea\\xe3\\x50\\xdb\\x65\\xaa\\x7d\\xd2\\x2a\\x07\\x9b\\xdd\\xdc\\xf5\\x6d\\x84\\x8d\\xeb\\x0c\\xfa\\x50\\xb3\\xbd\\x73\\x2d\\x9d\\xa9\\xe8\\xd8\\xab\\x79\\xe9\\x34\\x69\\xde\\x58\\x02\\xb6\\xdf\\xf5\\xac\\x2a\\xa8\\x48\\x2b\\xb0\\xb0\\x36\\xd8\\xf9\\xd5\\x95\\xb8\\xea\\xd9\\x4b\\xb8\\xd7\\x41\\x8e\\x2e\\xa4\\x31\\x92\\xef\\xcb\\xfc\\x05\\xc4\\x67\\xbd\\xe0\\xa8\\x68\\xa5\\x16\\xa7\\xc1\\x4a\\x88\\x9b\\x72\\xc5\\xb7\\x3e\\x7d\\x85\\xc2\\xba\\xe9\\x02\\xe4\\xe6\\x8d\\x1f\\x3c\\xea\\xb2\\xb2\\x77\\x3a\\xf5\\xbb\\xae\\xe6\\xa0\\x0d\\x08\\x06\\x3e\\x78\\x33\\xcd\\x4e\\x29\\x53\\x47\\xe5\\x8f\\x5d\\x1b\\x33\\x97\\xf6\\x40\\xc1\\x59\\xcc\\x60\\xa6\\x74\\xa2\\x27\\xb4\\xcd\\x8c\\x10\\xf1\\xdb\\xae\\xd5\\x16\\xcc\\xac\\xdd\\x29\\x5f\\x11\\xb0\\x81\\x47\"},\n{{0x32,0xa1,0x88,0x3e,0xff,0x57,0xa3,0xa7,0xec,0xdb,0x31,0x02,0x21,0xee,0x83,0xc4,0xde,0x92,0xb7,0x22,0x15,0x96,0x13,0xec,0xf8,0x16,0xe3,0x82,0x43,0x7b,0x60,0xb9,},{0x82,0xdd,0x1a,0x03,0xe5,0x85,0x20,0x62,0xba,0x4a,0x8b,0x6b,0x3b,0x93,0xc5,0xe9,0xc4,0x3f,0xf6,0x99,0x5b,0xd2,0xaa,0xc7,0x26,0x06,0xfa,0xc8,0x58,0x02,0xc6,0x82,},{0x83,0x09,0xcb,0xe7,0x2f,0x80,0x4b,0xd9,0x52,0x1d,0xef,0x5d,0xad,0x4d,0x8b,0xc1,0x38,0x86,0xb1,0xd4,0xf6,0x62,0xc9,0xbb,0x5b,0x97,0xba,0x47,0x90,0xf4,0x4b,0x80,0x1f,0x31,0x95,0xea,0xd0,0xd4,0xdd,0xb6,0x60,0x81,0x8e,0xcb,0xf9,0xa6,0x83,0xca,0xcf,0x85,0xf1,0xdc,0xc9,0xe8,0x2c,0x09,0x11,0x6d,0x73,0x36,0x58,0x09,0x1a,0x00,},\"\\xed\\x2b\\x12\\x3b\\x5d\\xd7\\xf5\\xe7\\x18\\xe0\\x26\\xc7\\x9c\\xfa\\x61\\x11\\x92\\x49\\x02\\xd1\\x89\\xa4\\x06\\xef\\x2b\\x2e\\x56\\xa9\\xee\\x55\\x73\\xa7\\x6d\\xdd\\x1d\\x06\\x29\\xeb\\xcd\\xec\\xf2\\xaa\\xa7\\x4e\\x84\\xfc\\xd0\\x20\\x8f\\x14\\xee\\xa2\\xe1\\x71\\xe7\\xc8\\x60\\x8b\\x81\\x8f\\xef\\xf4\\xdb\\xea\\x52\\xdb\\x35\\x42\\x27\\xd0\\x23\\x25\\x0b\\x1f\\x01\\xcb\\x4c\\xc8\\xc5\\x21\\x32\\xa9\\x8d\\x4a\\xcf\\x55\\xa5\\x4f\\xee\\x81\\xe0\\x94\\xae\\xd6\\x6f\\xa0\\xd6\\xb6\\xa2\\x00\\xb6\\xb8\\x74\\x14\\x40\\x22\\x78\\x53\\x8b\\x90\\x52\\x9a\\x8c\\x60\\x3d\\x92\\x7e\\xdd\\xda\\x97\\xbc\\x4b\\x8c\\xb9\\x5d\\x04\\xb5\\x33\\x7f\\xa2\\x2c\\xea\\xfc\\x8b\\x34\\x0c\\x46\\xfe\\xf6\\x71\\x98\\xd1\\xfd\\x98\\xd8\\x9c\\x65\\xcd\\x08\\x9e\\x23\\xf5\\x3d\\xbd\\xca\\x96\\x77\\x98\\xb5\\xcd\\x92\\x32\\x05\\xad\\x51\\x1e\\xdf\\x70\\x6f\\x12\\x25\\xf4\\x64\\x8c\\x98\\x5e\\x00\\x9e\\xf8\\xa2\\xf6\\xa0\\x11\\x7c\\xdb\\xe1\\x4e\\x75\\x31\\x2d\\x8a\\xc1\\xf0\\x3d\\x04\\x6b\\x37\\xcd\\xee\\x7d\\x69\\xc0\\xf2\\x5c\\xcf\\x18\\x14\\x5a\\x68\\x8a\\x8b\\x3c\\xa8\\x87\\x5f\\xe8\\xd9\\x0b\\xaf\\x86\\xd4\\x39\\x69\\xe4\\xd6\\x10\\x21\\x4f\\x1a\\xc5\\xdb\\xba\\x87\\xa1\\xef\\x10\\x37\\x7e\\x40\\xd7\\x80\\x6f\\xd9\\xd2\\x34\\x57\\xfc\\x9d\\xf2\\x98\\x99\\x23\\x9f\\xd1\\xd2\\x78\\x84\\x96\\x81\\xa9\\x43\\xad\\x9c\\x91\\xfd\\x1b\\xbd\\x92\\xb7\\x3c\\xb1\\x77\\xa8\\x78\\xf9\\x05\\x9e\\xe0\\x7a\\xf7\\xa8\\x73\\x16\\x13\\xe3\\x3d\\x59\\xdf\\x3d\\x97\\x79\\x60\\x79\\xd5\\x63\\x1e\\xd8\\x5e\\xb2\\x24\\x51\\x06\\xa5\\xff\\x6a\\x2b\\xca\\x40\\xdf\\x5c\\x6e\\x87\\x47\\x3b\\x2c\\x08\\xc2\\x21\\x2f\\x56\\xfc\\x29\\x33\\xa9\\x69\\xa3\\xc9\\x58\\xd3\\x7c\\x53\\x43\\xba\\x27\\x60\\xc8\\x13\\xa7\\xa5\\x16\\x5d\\x23\\x1c\\x5f\\xea\\xae\\x62\\xb7\\x55\\xdf\\x49\\xfe\\xca\\x80\\x04\\x1a\\x65\\x35\\xf7\\xe0\\x3b\\xc4\\x8e\\x5f\\x27\\xf9\\xbe\\x26\\xef\\x53\\x67\\x3e\\xb7\\xc3\\x7a\\x2b\\x64\\x74\\x4a\\x6c\\xf1\\x7e\\x88\\x77\\x34\\xae\\x01\\x0b\\xf4\\x0e\\xea\\x03\\xcd\\xa2\\x12\\xf5\\x12\\xfb\\xa0\\x58\\x59\\x47\\x17\\x96\\x40\\xbc\\xc4\\x54\\x4b\\x8d\\xeb\\x4e\\xad\\x12\\x9b\\xc3\\x32\\x28\\x00\\xad\\xf9\\x88\\x18\\xf9\\x95\\x74\\xbe\\xfd\\x9b\\x00\\x16\\xd4\\xee\\xc8\\x1a\\x8e\\x78\\xdc\\x3a\\x2a\\xf1\\x3c\\xab\\x01\\x64\\x9a\\xe2\\xe3\\x3d\\x51\\x6b\\x9d\\x42\\x08\\xad\\x66\\x13\\xd8\\xe2\\x78\\xc3\\x93\\xba\\xa8\\x82\\x34\\x0e\\xf4\\x61\\xff\\x4f\\x94\\x42\\x3d\\x55\\xcf\\x3c\\xed\\xd2\\xa6\\xb5\\x6e\\x88\\x36\\x55\\x31\\xdd\\x29\\xd6\\x82\\x73\\xad\\xbf\\xe3\\x69\\x40\\x2e\\x6a\\x7c\\xee\\x05\\x3d\\xa1\\xf1\\x00\\x54\\x00\\x91\\xa0\\x09\\x29\\x25\\x29\\x83\\x44\\x90\\x24\\xb1\\xc3\\x39\\x11\\x10\\x65\\x00\\x82\\xf0\\xe7\\xdf\\xdd\\xb8\\xed\\xc2\\x04\\x2f\\x3c\\x17\\x13\\xc6\\x94\\x4b\\xa5\\x14\\xee\\x74\\x07\\xd3\\x2b\\xf0\\x6c\\x85\\x8e\\xfe\\xc4\\x2a\\x78\\xbe\\xe9\\x77\\x46\\xe5\\xb4\\x87\\x91\\x41\\xa1\\x3d\\x9f\\xc5\\xcb\\x12\\x3b\\x78\\x32\\x73\\xb8\\x4d\\x57\\xad\\x35\\x26\\xb7\\xda\\x3c\\x68\\xb8\\x39\\xef\\xd2\\x3f\\x5f\"},\n{{0x22,0xec,0xef,0x6d,0xab,0xe5,0x8c,0x06,0x69,0xb8,0x04,0x66,0x49,0x73,0xe4,0x57,0xc0,0x5e,0x47,0x77,0xf7,0x81,0xc5,0x25,0x22,0xaf,0x76,0xb9,0x54,0x81,0xa9,0x14,},{0xd4,0x78,0x40,0x10,0xef,0x04,0x03,0xed,0xdc,0x5a,0x62,0xd5,0xd4,0x5b,0xb2,0x43,0xb8,0x0b,0x4b,0x9d,0x69,0xc3,0x9c,0xa3,0x87,0xc6,0xf5,0xcb,0xa0,0x28,0x64,0x0f,},{0x5d,0x0d,0x2a,0xf6,0x78,0xb3,0xd1,0xb6,0x77,0x51,0x6d,0x08,0xa7,0x9a,0xaf,0xd3,0x6e,0xc6,0x7c,0x14,0xca,0xf5,0xbc,0xda,0xae,0xaa,0xcc,0x51,0xa1,0x4f,0xb8,0x05,0xcf,0x29,0x04,0xe8,0x72,0x1d,0xb2,0x71,0xb2,0x0d,0xf7,0x09,0xbe,0xe1,0xa4,0xfb,0xfe,0x62,0x56,0x50,0x73,0xb2,0xa7,0xe9,0x42,0x72,0x44,0x61,0xf9,0x27,0x93,0x0d,},\"\\xc5\\x35\\xc1\\x3d\\x77\\x9f\\xc0\\x98\\x59\\x73\\xd6\\xbc\\xd5\\x52\\xd8\\x17\\x34\\xe9\\x2b\\xdf\\x10\\x99\\x4b\\x00\\xcd\\x4d\\x53\\xce\\x36\\x5f\\xad\\x8c\\x7c\\xfa\\x96\\x20\\x6a\\xdb\\x62\\xd4\\x56\\x7b\\xe5\\xe4\\x66\\x31\\x32\\x38\\x53\\xe3\\x8c\\xe4\\xbd\\xc1\\x6d\\x7b\\x8f\\x63\\x2a\\x3a\\xd9\\xe0\\x26\\x19\\xef\\xf3\\x71\\x74\\xea\\xc3\\xf0\\xbf\\x2f\\x7a\\x75\\x17\\xd4\\xb8\\x2d\\xe6\\xaa\\x1a\\xf0\\x06\\x38\\x19\\xd5\\xe1\\xf9\\x27\\x8f\\xb4\\xf2\\x4c\\x8c\\xc0\\x02\\xaf\\xb1\\x5f\\x33\\x4c\\x04\\xfa\\xdb\\x00\\x30\\x30\\x13\\xc0\\x16\\x67\\xf4\\x93\\x2a\\x6c\\x4b\\x97\\xd3\\x9c\\xd4\\xa4\\x59\\x85\\x06\\xc0\\xbd\\x74\\x0e\\xa9\\xf1\\x16\\x96\\x35\\x7d\\x7d\\x17\\xfe\\x4d\\x75\\xf9\\xd7\\x42\\x41\\xa7\\xaf\\x71\\xf9\\xd8\\x69\\xef\\x6c\\xd6\\x95\\x68\\x7c\\x03\\xfc\\x34\\xad\\x65\\xa6\\x8a\\x48\\x88\\xa1\\xa7\\x41\\x26\\xcb\\x55\\xcf\\x7d\\xa9\\xcb\\x4a\\x67\\x17\\xf6\\xeb\\x88\\x48\\x40\\x89\\xd2\\xc5\\x18\\x9a\\xe3\\x81\\xf2\\x5e\\x7b\\x3b\\xc3\\xb2\\x3d\\x0c\\x9d\\x9f\\x9c\\xdb\\xbe\\xec\\xfd\\x1e\\x72\\xa0\\x5e\\x67\\xbb\\x48\\x3a\\x97\\x64\\xd9\\xfc\\x75\\xad\\x69\\xe4\\xab\\x12\\x70\\xfb\\x40\\xf3\\x95\\x8f\\xea\\x4d\\xa5\\x59\\xb4\\x39\\x80\\xb2\\x46\\x81\\x31\\x3e\\x85\\x91\\xe6\\x85\\x46\\xa3\\xbf\\x76\\xee\\x34\\xb3\\x39\\x70\\x92\\x95\\xa8\\xd4\\x6f\\xb2\\x43\\x2d\\xda\\x2f\\x22\\x18\\x12\\xdf\\x69\\x28\\x95\\xe6\\x7c\\xb2\\x9c\\xbf\\x6f\\xf4\\x50\\x2b\\x43\\x9a\\x4e\\x9e\\x43\\x63\\x9e\\xc0\\x67\\xbc\\x90\\xae\\x81\\x4a\\x29\\x3a\\x7b\\xd4\\x69\\x68\\xe6\\x56\\x78\\x76\\x42\\x30\\x0a\\x0f\\xf2\\x69\\x7e\\x33\\x13\\xf6\\xa4\\x18\\xd3\\xd1\\x2a\\x5f\\x7c\\x51\\xa4\\xc5\\x7b\\x63\\x38\\x5f\\x2d\\x2a\\x21\\xd5\\xd1\\xd7\\x63\\xfc\\x8d\\x1b\\x93\\xc1\\x34\\x35\\xf9\\xe4\\x7e\\xe7\\xa4\\x25\\x98\\x0a\\x6a\\xe6\\xf1\\xa9\\xd0\\x07\\x60\\x74\\x76\\x78\\x3c\\x6d\\x0c\\x78\\x87\\x38\\x0f\\x86\\x8c\\x65\\xb3\\x82\\xd4\\xcc\\x8c\\x04\\x47\\x8b\\xbd\\x79\\xa1\\xd9\\xa9\\x64\\xb7\\x81\\x71\\xd6\\xbc\\xf0\\xb8\\xee\\xc5\\x0a\\x06\\xa4\\xea\\x23\\x4d\\x1c\\x23\\x46\\x5d\\x3e\\x75\\xb8\\x8b\\xc5\\x40\\xda\\xde\\x74\\xed\\x42\\x67\\x5b\\x07\\xf7\\xcf\\x07\\x82\\x11\\xe9\\x07\\xf8\\x6d\\x0d\\xc4\\xb9\\x78\\x62\\x3d\\x9f\\x08\\x73\\x8a\\xf9\\x28\\x69\\x5e\\x54\\x2e\\xc2\\x98\\x0e\\x55\\xa1\\xde\\x49\\xe2\\x52\\x47\\xfa\\x0a\\x09\\x67\\x81\\x18\\xe3\\x93\\x0b\\xc4\\xd2\\x4b\\x32\\x14\\xd6\\xdc\\xfb\\x6e\\xbd\\xf4\\x90\\x6c\\x92\\x8d\\xeb\\x37\\xbb\\x9b\\xa2\\x9c\\x8d\\xe1\\xbb\\x94\\x18\\xdb\\x71\\x8b\\x28\\x53\\xba\\x57\\xad\\x8c\\xae\\x46\\x77\\xad\\xdf\\xd1\\x8b\\x6c\\x7e\\x8c\\x24\\x26\\x21\\xb3\\x5c\\x7f\\x0e\\xfe\\x8d\\xd5\\xeb\\x26\\xff\\x75\\xfd\\x57\\x48\\xb1\\xd7\\x83\\xf6\\xd6\\x8a\\x7d\\x9d\\x56\\xda\\x2c\\x1a\\x97\\x8a\\xc2\\x5f\\x84\\xfb\\xb2\\xbe\\x55\\x68\\xd9\\x1e\\x70\\x93\\x82\\x21\\xc1\\x02\\xae\\xe6\\x04\\x09\\xbc\\xbe\\xc0\\xc8\\x2e\\x12\\xdd\\xb4\\x25\\xee\\xb6\\xec\\xd1\\x15\\x51\\xec\\xd1\\xd3\\x3d\\xda\\xe8\\x71\\xae\\x0c\\x8f\\x24\\xd0\\xd1\\x80\\x18\\x73\\x2b\\x5e\\x0e\"},\n{{0x8d,0xe8,0x63,0x30,0xb2,0x56,0x09,0x5e,0x11,0x14,0xb6,0x52,0x9b,0xed,0xce,0x18,0x2c,0x16,0x6f,0x67,0xa9,0x15,0x39,0xce,0xbc,0x4b,0xec,0x25,0xad,0xd7,0xa4,0xa9,},{0x33,0xcb,0x05,0x4b,0x55,0xbb,0x79,0x0a,0xc0,0xf3,0xaf,0xdd,0x9a,0x6e,0x7c,0x05,0x0e,0xfe,0x90,0x06,0xc2,0x4f,0x60,0xb8,0x04,0x4f,0xd0,0x8a,0x5c,0x10,0x6c,0x11,},{0x6d,0x01,0xd2,0x37,0xdd,0x2b,0xb4,0x18,0x8d,0x29,0xbf,0xde,0xc3,0x87,0x97,0x6a,0x71,0xbe,0x7a,0xdf,0xbf,0x9e,0x23,0x63,0x9b,0x21,0x6d,0x0a,0xa0,0xc1,0x19,0x32,0x23,0x5e,0xdc,0xcb,0x3b,0x42,0xad,0xcd,0xb6,0x29,0x1a,0x0d,0x29,0x9a,0xed,0x64,0x8d,0xe8,0xb1,0x95,0x79,0x49,0xb9,0xd1,0xcf,0x2e,0x50,0x49,0x30,0x30,0xa4,0x0f,},\"\\x39\\xe6\\x1e\\x0e\\xcc\\xec\\x92\\x9c\\x87\\xb8\\xb2\\x2d\\x4f\\xd1\\x8a\\xea\\xbf\\x42\\xe9\\xce\\x7b\\x01\\x5f\\x2a\\x8c\\xac\\x92\\xa5\\x24\\x48\\xa4\\x2f\\xed\\x4c\\xba\\xdc\\x08\\x5b\\xbb\\x4c\\x03\\x71\\x2a\\xe7\\x2c\\xfc\\xb8\\x00\\xb9\\x78\\x35\\x06\\x69\\xb0\\x99\\x00\\x84\\xf2\\xda\\xb7\\x6e\\xca\\x60\\x6d\\x1a\\x49\\xfc\\x55\\xc5\\x29\\xe1\\xe7\\xda\\xdf\\x39\\x12\\x2d\\xd5\\xbd\\x73\\x38\\x93\\x85\\x8b\\x05\\x23\\xef\\x62\\xdf\\x4f\\x13\\x4c\\xf6\\xc2\\x6e\\xed\\x02\\xfd\\xbc\\xb3\\x0c\\xe4\\x74\\xb1\\xad\\xa3\\xf0\\x60\\x76\\x9f\\x93\\x4b\\xbe\\x68\\x6c\\xce\\xbd\\x60\\x88\\x3e\\xce\\xc9\\xce\\x3f\\xfb\\x8a\\xc4\\xa0\\x67\\x8c\\xdc\\x5b\\x00\\x5a\\xe3\\xdb\\xa7\\xe4\\xfe\\x8b\\xc0\\x45\\x73\\x99\\x57\\xd8\\x49\\xf6\\x9c\\x14\\x74\\x05\\x7b\\x42\\x8c\\x54\\x25\\xf3\\xcc\\x25\\x16\\xe8\\xbb\\xe3\\xbe\\x81\\xaf\\xd4\\xe7\\xb5\\x75\\xab\\xe8\\x8c\\x87\\xf2\\xf0\\x3b\\x56\\xf6\\x9f\\x9e\\x3b\\x61\\xb3\\x78\\x81\\x20\\xda\\xa4\\x95\\xef\\x0e\\x50\\xeb\\x97\\x0a\\x64\\x5c\\x13\\xd2\\x13\\xc7\\xcf\\xb7\\xd0\\xad\\x55\\x5c\\x92\\x0a\\x1e\\x5d\\xbc\\xb4\\x67\\x97\\xd9\\x39\\xfe\\x04\\x01\\xf5\\x47\\xbf\\xd1\\x75\\x43\\x22\\x1a\\x53\\x01\\x0d\\xe0\\x1f\\x25\\xb6\\x45\\x19\\xc8\\xf0\\x39\\x63\\xe4\\xb9\\xca\\x58\\xb0\\x11\\x36\\x27\\xc0\\x5b\\x96\\x08\\xee\\xaa\\x7b\\x9a\\xe6\\x30\\x5c\\x96\\x18\\x81\\x60\\x00\\x0e\\xe3\\xa7\\xad\\xe9\\x6e\\x0b\\x4b\\xde\\x9d\\x0e\\xd6\\xa0\\xce\\xd7\\x65\\xd7\\x86\\x84\\x0a\\x48\\x17\\x5a\\x6e\\x09\\x0a\\x38\\xaf\\x6a\\xde\\xaa\\x14\\x86\\xa9\\xcb\\x5c\\x8c\\x8c\\x92\\x23\\xee\\x0a\\xe4\\xc6\\xc0\\x26\\x91\\xa3\\x54\\x7e\\x32\\x58\\x2a\\x5b\\x70\\x59\\xd2\\xee\\x66\\xfa\\x9c\\xd9\\x65\\x61\\x5c\\x31\\x5b\\x47\\x6f\\xd8\\x61\\x27\\x9c\\xd1\\xdd\\x76\\x07\\x74\\x3f\\xc5\\x56\\x12\\x96\\x31\\x2f\\x11\\xe4\\x65\\xca\\x40\\xbc\\xe3\\xcf\\x0b\\x1f\\x1d\\x5a\\x30\\xaf\\x60\\x87\\xde\\x4d\\xe9\\x6c\\xe4\\x39\\x65\\xa4\\x6c\\x4f\\xcc\\xa1\\x5f\\x28\\x11\\x49\\xb5\\xc1\\xa0\\xc8\\x8f\\xdb\\xf2\\x74\\x09\\xa1\\x34\\xed\\x4f\\x1f\\xb7\\x30\\xfa\\x19\\x18\\x16\\xea\\x78\\x4d\\x98\\x6c\\xc9\\xec\\x4b\\x69\\x44\\x02\\xde\\x1d\\xcc\\xa9\\xcc\\xc6\\x4f\\xbd\\x07\\xb0\\x7e\\x54\\xe9\\x31\\xde\\x82\\x7a\\x84\\x24\\x60\\xca\\x0b\\xf6\\xb0\\x4e\\xbb\\x57\\x1f\\xa7\\x77\\x87\\xe3\\x88\\x4b\\xe2\\x2f\\x1e\\x40\\x2c\\xf2\\xb8\\xa9\\x6a\\x5d\\x39\\x77\\x0e\\xc4\\xa8\\x43\\x03\\x61\\x42\\xa0\\xbe\\x97\\x0b\\xb1\\xab\\x16\\x5a\\x63\\x74\\xdc\\xf4\\x3d\\xeb\\x8b\\x98\\x30\\xb2\\xc4\\x9d\\xb9\\xcd\\xfe\\x4b\\x52\\x42\\xe3\\x6f\\x95\\xe0\\xc3\\xe0\\x77\\xe8\\xd2\\x38\\xfa\\x6a\\x8a\\xc0\\xd5\\x86\\xbf\\x61\\xb8\\x24\\x8f\\xb3\\xa7\\x9a\\x27\\x0a\\xb2\\x2b\\xe8\\xa9\\xda\\x05\\x5f\\xf3\\xd5\\xbb\\x2d\\x1c\\xa9\\xbc\\x25\\xf7\\x01\\x4b\\x96\\x40\\x77\\x19\\xde\\x34\\x4c\\x3e\\x73\\xb8\\xc1\\x14\\xf7\\x92\\x07\\x5a\\x5c\\x22\\xfd\\xd4\\x16\\x15\\x4d\\x34\\x94\\xec\\x3f\\x02\\xfb\\x11\\x2e\\xe5\\x73\\x7f\\x70\\x70\\x4c\\x1b\\x6b\\x07\\xea\\xcb\\xf9\\x45\\x62\\xca\\x7b\\x90\\xdd\\x84\\xd9\\x8c\\x3e\\xdf\"},\n{{0xba,0xb5,0xfa,0x49,0x18,0x7d,0xa1,0xca,0xb1,0xd2,0x91,0x90,0x00,0x19,0xe6,0xcb,0xaf,0xec,0xcd,0x27,0xbf,0x7e,0xcb,0xf1,0x26,0x2a,0x70,0x05,0x16,0xe7,0xc2,0x9f,},{0xf6,0xfb,0x19,0x85,0xec,0x59,0x1f,0x69,0xe3,0xba,0xc8,0x07,0xb2,0xea,0xbf,0x26,0x39,0x90,0xcd,0xfa,0x09,0xb1,0x78,0x09,0xe4,0x8e,0x38,0x5d,0xa0,0x65,0xec,0x21,},{0xe3,0x16,0x03,0x8d,0x6a,0xa1,0x5b,0x1c,0x1b,0x61,0xc1,0xa1,0x6b,0x36,0x90,0x4f,0xe8,0xa2,0x89,0xc8,0xd6,0x02,0xbe,0xcc,0x51,0x4d,0x99,0x22,0x00,0x86,0xb2,0x67,0x85,0x9f,0x5b,0xf6,0xe9,0xc0,0x86,0x35,0x59,0xac,0x62,0x3a,0x56,0xd7,0x53,0x23,0x44,0xe8,0xd2,0xf2,0x8b,0x3f,0x9d,0xf9,0x20,0x89,0x70,0x8b,0x1b,0x05,0x90,0x08,},\"\\x5c\\xf8\\xff\\x58\\x7e\\x52\\xcc\\xcd\\x29\\x84\\xf3\\x47\\x91\\xee\\x68\\x43\\xe7\\x70\\x17\\xc3\\xb5\\x5a\\xd4\\x5c\\x44\\x45\\x09\\x65\\xb7\\x5d\\x83\\x6e\\x78\\xfb\\xd7\\xa1\\xd1\\x72\\x9e\\xff\\x6d\\x6d\\x34\\x0a\\x90\\x3f\\x3c\\xf1\\x7d\\x9e\\x2a\\xec\\xaa\\xff\\x2a\\x32\\x1f\\xcd\\xde\\x0a\\xbc\\xfb\\xbc\\xbc\\xc0\\x9f\\x40\\x86\\xf8\\x12\\xc4\\x6e\\xfb\\x01\\xb7\\x83\\x43\\xaf\\xbe\\x48\\x30\\x9f\\x91\\x74\\x78\\x45\\x5f\\x32\\x00\\x0c\\x6a\\x69\\xf7\\x9f\\xe2\\x11\\xb9\\x9f\\x03\\x7f\\x59\\x56\\xd7\\x22\\x75\\xa7\\xfe\\x7b\\x45\\x29\\x6b\\x5f\\x73\\x9a\\xa4\\x51\\xff\\x05\\x75\\xbc\\x70\\x58\\x85\\xaa\\x56\\x31\\xb0\\xd0\\x85\\x0b\\xc2\\xb1\\x2c\\x41\\x92\\x43\\x5a\\xe5\\xd2\\xf5\\x2b\\xc5\\x43\\x86\\x49\\x7c\\x4a\\x24\\xb8\\xb6\\xdb\\x51\\x6b\\xe0\\x9d\\x8c\\xcf\\x1e\\xca\\x78\\x5b\\xde\\x97\\xe9\\xbe\\x1a\\xc0\\x64\\xf0\\x94\\xe2\\xaf\\xcc\\x30\\x7c\\x0e\\x06\\xb4\\xc5\\x64\\xcd\\x9a\\x9a\\x95\\x30\\x5b\\x37\\xb8\\x1f\\x43\\x46\\x11\\xdc\\xa5\\x5c\\xaa\\xa0\\x31\\xe8\\x84\\x95\\xd5\\xdc\\x5a\\x04\\xff\\x5f\\xaf\\xdf\\x0a\\x82\\xa0\\xc0\\x3a\\xff\\x1b\\xfb\\xf4\\xff\\xeb\\xae\\x71\\x82\\x4e\\x35\\xe7\\x51\\xb0\\x92\\x70\\x00\\x76\\x69\\x86\\x0b\\x58\\x00\\x35\\x65\\x9e\\x23\\xac\\xe7\\x6b\\x3b\\x36\\x9f\\xa3\\x06\\xf2\\xbe\\xd9\\x57\\x99\\xfa\\xfa\\xbc\\x2e\\x69\\xc1\\x41\\xbe\\xb0\\xba\\xca\\xc7\\xea\\xa3\\x47\\xe7\\x7b\\xe5\\xaf\\x3f\\xcd\\xbe\\x7b\\x36\\x4a\\x7f\\x9a\\x66\\xd5\\xe1\\x7a\\x07\\xdf\\x62\\x02\\xfd\\x98\\xc1\\x4b\\xfe\\xe2\\xca\\x6f\\x07\\x45\\x65\\x1f\\x0c\\x85\\x50\\xf9\\xff\\xff\\xca\\xfb\\x96\\xff\\xb3\\xf1\\x03\\xe6\\x52\\xe7\\x8f\\x53\\x91\\x6c\\xd6\\xf1\\xdd\\x05\\xb3\\xfe\\x99\\xb3\\x42\\x01\\xb0\\x7e\\xac\\x26\\x52\\xf5\\x25\\x35\\x71\\xfd\\x38\\x22\\xc6\\x95\\xd2\\x65\\xc7\\xdf\\xdd\\x6c\\x6b\\x14\\xa8\\x0b\\x6e\\x87\\x18\\x3e\\x6e\\x03\\x2e\\x5f\\x24\\x01\\xcd\\x23\\x8c\\xdd\\x37\\x69\\xbb\\x6e\\x39\\x08\\x23\\x43\\x8f\\x56\\x73\\xea\\x9a\\x47\\x9e\\x5c\\x63\\xfe\\x07\\xa0\\x7f\\x4e\\x14\\xf5\\x77\\x57\\xc4\\xd7\\xd2\\x2b\\x35\\xd7\\x1c\\x44\\xea\\xad\\x48\\x73\\xc8\\xec\\xa6\\xf6\\xb2\\x1d\\xcf\\xa9\\x55\\x20\\xff\\x96\\x14\\xab\\xf7\\xa0\\xe1\\x88\\x53\\x09\\xf2\\xce\\xd3\\xbc\\xdf\\xc3\\x19\\x36\\x3a\\x2d\\xa4\\x6d\\xed\\x79\\xa5\\xcc\\x7b\\x6f\\x69\\x38\\x3f\\x94\\xab\\x35\\xc2\\x50\\x62\\x9c\\xb9\\x15\\xd6\\x67\\xb6\\x28\\x11\\x86\\x75\\x48\\x95\\x80\\x3e\\x4b\\x95\\xe7\\x41\\x82\\x89\\xa6\\xac\\x3b\\xcd\\xb6\\xe1\\xe7\\xf6\\xf1\\xdc\\x38\\xe7\\x7d\\x28\\x19\\x14\\xcc\\x40\\x4f\\x97\\xcf\\xf1\\x4f\\xb2\\xc4\\xfd\\x81\\x41\\x2d\\x10\\x1c\\x1b\\xfb\\x36\\x8c\\xe5\\x93\\x11\\xe8\\x92\\xa8\\xb9\\xcd\\xca\\x86\\x93\\x6f\\x3b\\xca\\x7e\\xc7\\x91\\x63\\xed\\xdf\\x1c\\xee\\x68\\xf4\\x9f\\x1e\\xba\\xa2\\x7e\\xc5\\x0f\\x49\\x0d\\x61\\x60\\x1c\\xa3\\x5f\\x8d\\x6e\\xd2\\x66\\x05\\x4a\\xeb\\x9b\\x19\\x9f\\x93\\x3b\\xff\\xd6\\xe0\\x05\\x0f\\x26\\x1b\\x4e\\x13\\xd5\\xeb\\xfe\\x2c\\xaa\\x65\\x57\\xc3\\x2d\\xde\\xae\\xeb\\xc2\\xa1\\x1f\\x0a\\xa2\\x33\\x24\\x0d\\xa1\\xc7\\xe4\\x0f\\x76\"},\n{{0x74,0xca,0x12,0x2a,0xb6,0x0d,0xe5,0x0c,0xdc,0x04,0xa8,0xe2,0xed,0xa4,0x5d,0x96,0x31,0x06,0x1b,0xf1,0x87,0xd3,0x16,0xbe,0x5b,0x7c,0xc0,0x6f,0x02,0x0c,0x48,0x3e,},{0x78,0x7d,0xef,0xd4,0xfb,0x24,0xa3,0x99,0xbd,0x2a,0x4e,0x76,0xdf,0xf7,0xd6,0x03,0xed,0x0a,0xcb,0x32,0x69,0x81,0x3e,0x4d,0xf6,0x90,0xbb,0xf5,0xb2,0xbc,0x69,0x6e,},{0xbc,0xb4,0xb8,0x50,0x69,0x60,0x11,0x99,0x7e,0xb5,0xdf,0xe1,0x43,0xf1,0xa3,0xd5,0x62,0x8e,0xf1,0xa5,0x40,0x76,0x91,0xee,0x48,0xc7,0x9d,0x69,0xab,0xe4,0xd5,0x33,0xf8,0x17,0xad,0x73,0x13,0xb5,0x79,0x5e,0x46,0xe5,0x95,0xf3,0xae,0x3a,0x91,0x65,0xb1,0xb6,0xfd,0xda,0xe8,0x61,0x64,0xff,0xcb,0xa3,0x76,0x24,0x98,0x37,0xf6,0x09,},\"\\xa8\\x0b\\x46\\x07\\x9f\\xa7\\x75\\xf8\\xc1\\xa1\\x9f\\xa0\\x82\\x9b\\xe6\\x66\\xbd\\xfd\\xca\\x07\\x9c\\xad\\x43\\xd7\\x0e\\x08\\x42\\x18\\x3b\\xc0\\xdb\\x95\\x46\\x8a\\x53\\x9f\\x0d\\xb2\\xae\\xa3\\xab\\x9c\\x70\\x73\\xb4\\x5d\\x22\\x8a\\x9b\\xde\\x23\\x28\\x97\\xa6\\xeb\\x6f\\xc9\\xed\\xf7\\x36\\x5e\\x71\\x01\\xba\\x97\\xc4\\x46\\xa5\\x19\\xa3\\x64\\x9c\\xf5\\x27\\xc8\\xa6\\xde\\x72\\x51\\xb9\\x28\\x06\\x81\\x5a\\xc2\\xfa\\x00\\x82\\xef\\xf7\\x5e\\x25\\x82\\xcb\\xca\\x7e\\x1e\\x4d\\xa2\\xa4\\x46\\xea\\x23\\x3e\\x7c\\xf7\\xce\\xdf\\xb0\\xe2\\x39\\x8e\\xb6\\xe1\\x1b\\xba\\xef\\xe3\\xf7\\xec\\x89\\xf5\\xd7\\x3d\\xd3\\x4b\\xd4\\x7f\\xbc\\xb4\\xd7\\xb2\\x2f\\x2a\\xae\\xe3\\x73\\x78\\x56\\x51\\x84\\x11\\x35\\xcd\\x86\\x61\\xa7\\x01\\xb2\\x10\\x84\\xa3\\x16\\xde\\xac\\x30\\x74\\xe2\\x4a\\x2e\\x35\\xa0\\x33\\x0f\\x7d\\x14\\x79\\xb9\\x32\\xf2\\x85\\x27\\x7c\\x18\\xa4\\x41\\x78\\x72\\x24\\xfb\\xbe\\x46\\xc6\\x2e\\x83\\x4a\\x18\\x51\\xed\\x23\\x79\\x98\\xd4\\x8d\\xce\\x20\\xba\\x11\\x4d\\x11\\xe9\\x41\\xbe\\x29\\xd5\\x6d\\x02\\xf7\\x37\\x0c\\x8f\\x6d\\x6d\\x7e\\x50\\x24\\x8d\\xcd\\x8e\\xc8\\x9d\\x3b\\x22\\xf4\\xf5\\x87\\x78\\x12\\x9f\\xaf\\xd4\\xbb\\x92\\xed\\xe1\\x77\\x14\\xbf\\x02\\x2a\\x5b\\xf9\\x2b\\xe4\\x79\\xf1\\x8e\\x63\\x85\\x2e\\xcd\\xcf\\x8c\\x42\\x11\\xf5\\x30\\xdd\\x30\\xf7\\x9c\\xbf\\x4b\\xfa\\x57\\x37\\xf0\\xba\\xd3\\xb0\\x10\\x60\\x67\\xf4\\x13\\x27\\xc3\\x18\\x9e\\x6f\\x20\\x6f\\x0d\\x4f\\x3c\\x70\\x4b\\xf2\\xbd\\x0b\\x16\\x1f\\x01\\x8f\\xd2\\x1c\\xdd\\xfb\\x41\\x8b\\xac\\x4d\\x52\\xef\\x02\\xc4\\x1c\\x87\\x92\\xe4\\x13\\xb0\\x4f\\x08\\x36\\xce\\xa1\\xf8\\x6c\\x92\\xe5\\xd5\\x70\\x3b\\xee\\x2b\\x5c\\x58\\x99\\xe2\\x85\\x99\\x20\\x24\\xf6\\x4e\\x0d\\x16\\xc6\\x0a\\xd0\\xfd\\x92\\x54\\x79\\x32\\xd0\\xc5\\xcb\\x98\\xd8\\xda\\x22\\xfe\\xeb\\xdb\\xba\\x8d\\x1d\\xe1\\xe7\\xe9\\xbb\\x21\\x9a\\x92\\xeb\\x6c\\x1c\\x69\\x8d\\x3b\\x33\\xa3\\x7f\\x9b\\x81\\x97\\xd2\\x6b\\x55\\x0f\\xeb\\xd2\\x60\\x1e\\x7a\\x64\\x3e\\xa7\\xe1\\xd9\\xe4\\x48\\xae\\x03\\x7f\\x62\\x9a\\x30\\x6c\\xe4\\x17\\xae\\xb7\\x9f\\x2e\\x3c\\xa4\\x4d\\x8d\\xb3\\x84\\x8a\\x81\\x1f\\x18\\x46\\x81\\x1c\\xbc\\xb8\\x74\\xf8\\xaf\\x09\\xe0\\xfd\\x01\\x73\\xcf\\x17\\x5f\\x30\\x41\\x15\\x47\\x6b\\xf2\\xc6\\xc2\\xd2\\xf3\\x32\\xeb\\xa5\\x34\\xf4\\x6a\\xae\\x80\\x1c\\x26\\x92\\xc2\\xd2\\xfa\\xdd\\xfe\\xac\\xc0\\xf1\\xda\\xce\\x44\\x0a\\xbc\\x2a\\xe5\\xe5\\xa4\\x9d\\x57\\x8f\\xd7\\xf9\\xde\\x2a\\x84\\x1a\\xd6\\xb6\\x76\\x9c\\x32\\xb1\\x44\\xce\\xea\\x16\\xd0\\xf3\\xc0\\xcb\\x3a\\x8e\\xe6\\x94\\xc3\\x8c\\x28\\x07\\x35\\x95\\x09\\x6c\\x81\\x37\\x62\\xcc\\x2c\\x5e\\xc4\\xb0\\xd8\\xd7\\x23\\xdd\\x66\\x08\\x53\\x27\\x8f\\xc7\\x2f\\xd6\\xbd\\x9d\\x12\\x72\\x93\\x3d\\xd2\\xa3\\x8e\\xd9\\xd0\\x4b\\x13\\x90\\xff\\xe4\\xb2\\x94\\xa6\\xff\\xfa\\x72\\x1e\\xe3\\xbb\\xa3\\x3a\\x03\\xa1\\x49\\xc4\\xa0\\x34\\x52\\x65\\xc0\\x1c\\xe0\\x15\\xe9\\x4d\\xb4\\x19\\xcf\\xf7\\x04\\x98\\x52\\xee\\x00\\x00\\x48\\xa8\\x57\\x58\\xf6\\xd7\\xb1\\xc5\\x9c\\x50\\x89\\xee\\x01\\x8e\\xd0\\x9b\\x52\"},\n{{0x65,0xee,0xa9,0xff,0xb7,0x56,0x12,0xbd,0xe1,0xd9,0xba,0x3e,0xa4,0xfb,0x5e,0xda,0x0a,0xa6,0xf2,0x55,0x6a,0xb1,0x5b,0xf1,0x81,0x7c,0xee,0x3b,0x95,0xbb,0xba,0x12,},{0x5b,0x39,0x36,0xdc,0x74,0x9b,0x6b,0x92,0x39,0xf1,0x57,0x98,0xac,0xca,0xfd,0x88,0x4c,0x36,0x59,0xee,0x01,0xb2,0xd1,0x7d,0x74,0xfc,0x7d,0xa7,0x82,0x74,0xe7,0xe6,},{0xba,0xa7,0x11,0x31,0x55,0x35,0x8c,0x92,0x4f,0xed,0x57,0x48,0x8a,0x65,0x67,0xf8,0x72,0x38,0x50,0xa9,0xf5,0xc0,0x3a,0x0d,0x7d,0xe8,0x5f,0xcc,0xd8,0xfb,0x4d,0x17,0xd7,0x75,0x35,0x23,0xb0,0x0c,0x0d,0x8a,0xdb,0x88,0x4d,0xc0,0xc8,0xa7,0xa4,0x4d,0xc2,0xa6,0x00,0x83,0xaa,0x5b,0x3c,0x5b,0x94,0xa8,0xd8,0x80,0xf2,0xa9,0x4d,0x09,},\"\\xc0\\x69\\x36\\x32\\x3c\\xe3\\x25\\x3c\\xac\\x5a\\xb4\\xf6\\xb8\\x32\\x70\\xcd\\x4c\\xfe\\x85\\xd0\\xbf\\x8b\\xac\\x1e\\x1b\\x8d\\x5f\\x0b\\x15\\x3f\\x54\\x1c\\x8e\\x8e\\xd9\\x5f\\x28\\xd5\\xc8\\x5a\\x23\\x15\\xcd\\x93\\x1b\\x7c\\xf3\\xed\\xae\\x50\\xf9\\x28\\x30\\x59\\x91\\x62\\x80\\x4b\\x13\\x63\\xd3\\xac\\x0d\\xa0\\xab\\xd0\\x97\\x51\\x02\\x3b\\xdd\\xc1\\x62\\x88\\x94\\x4e\\x61\\x6d\\x21\\xd9\\x12\\x71\\x97\\x8b\\xb7\\x82\\xd3\\xeb\\xed\\x7f\\xa6\\x12\\x84\\xc7\\x49\\x0d\\x27\\x59\\x3c\\xa8\\xa3\\xd5\\xb4\\x75\\x62\\x33\\x07\\x01\\x0a\\xbc\\x1f\\xbf\\x79\\x3a\\x81\\x6a\\xaa\\xb5\\xe0\\x92\\x4d\\xec\\x79\\xd6\\x04\\x98\\x96\\x5c\\xf7\\xf8\\x0a\\xb5\\x9f\\xc0\\x29\\xf7\\x82\\x16\\x67\\x55\\xb7\\x2b\\x86\\x90\\x75\\x43\\x4a\\xb6\\x06\\xcc\\x87\\x0a\\x7c\\x0b\\xc8\\xbf\\x29\\xae\\xe0\\x33\\xfa\\x9c\\xc1\\x22\\xed\\x7c\\x8e\\x06\\x9b\\x54\\x7d\\xba\\xe2\\x59\\x01\\xb9\\xe2\\x49\\xb4\\x1f\\xea\\x0b\\xf8\\xda\\xf3\\x82\\x68\\x66\\xbc\\xae\\xd2\\x75\\x3b\\x5e\\x91\\xae\\x93\\x7e\\x71\\x7b\\x50\\x8a\\x0a\\xcf\\x4c\\x3b\\x06\\x1f\\xf0\\xcb\\x9c\\xfd\\x38\\x0e\\x24\\x94\\x50\\x09\\x51\\xa6\\x62\\xfd\\x49\\x28\\xfc\\x5f\\xca\\xf6\\xc1\\x8e\\x84\\xb1\\xd3\\x78\\xe4\\x9b\\xd9\\xd5\\x96\\x86\\xd0\\x87\\xeb\\xd5\\x52\\xd0\\x7f\\xa9\\xba\\x81\\x6f\\xa5\\x40\\x2c\\xa9\\xe7\\x25\\x2a\\x64\\x8d\\x10\\x6c\\xfe\\x6c\\x43\\x1c\\xc2\\xa0\\x53\\xe2\\x29\\x46\\x37\\xcd\\xb9\\x9d\\x96\\xab\\xe6\\x89\\xed\\xab\\xc5\\xca\\x07\\x0f\\x77\\xc1\\xec\\xd1\\xd5\\x2d\\x53\\x85\\x28\\x9f\\x17\\xce\\xd7\\x68\\xc3\\x97\\x16\\x71\\xb9\\xc0\\xb2\\xf8\\x55\\xb8\\x46\\x1c\\x1e\\x74\\x6c\\x7b\\x38\\xf7\\x78\\x96\\xb8\\x5a\\xfb\\xbe\\xdd\\x08\\x37\\x5f\\xe9\\x22\\x98\\x46\\x14\\xdd\\x84\\x9f\\xe2\\xcb\\x89\\xae\\x71\\x49\\xdc\\xd1\\xd3\\x7f\\x49\\x36\\xe6\\x7b\\x14\\x40\\xbe\\x72\\xe0\\x09\\x39\\x8b\\xe6\\xf0\\x83\\xbf\\x96\\x11\\x48\\x0b\\x59\\x2f\\xe2\\xf0\\x11\\x8e\\x25\\x3d\\xb5\\xd2\\xe9\\xe4\\xb4\\x54\\x1c\\x11\\xda\\x00\\xf7\\x16\\x1a\\x73\\x6e\\x5f\\x0b\\xb9\\x34\\x20\\x8e\\x3e\\xf4\\xe0\\xb9\\xa5\\x22\\x58\\x20\\x3f\\x06\\x0d\\x18\\xa1\\x95\\x15\\x9e\\x5e\\x26\\x8a\\xa2\\x80\\x53\\xc8\\x34\\xf7\\xbd\\x5d\\xb9\\xbd\\x71\\xf5\\x07\\xd9\\x13\\x70\\xb3\\xff\\xca\\xbb\\xd4\\xac\\xb3\\x07\\x1d\\x3f\\x6d\\x52\\xc3\\x49\\xac\\xf3\\x50\\x95\\x34\\x8c\\xeb\\xf5\\xa8\\x6f\\x8c\\x59\\xdd\\xc9\\x65\\xef\\xf6\\x10\\xac\\x42\\x58\\x04\\xc0\\xe2\\xf6\\xbe\\x42\\x85\\x3f\\x5b\\x46\\x43\\x4a\\x2c\\x31\\xd9\\xac\\x99\\x53\\x9b\\xfd\\xc0\\x4e\\xcf\\x2f\\xef\\xd0\\x45\\x98\\xfa\\x63\\xc1\\x39\\xff\\x6c\\x6d\\x88\\x41\\x0e\\x73\\xbd\\x32\\x8c\\xc4\\x34\\x9a\\xb4\\xbb\\x86\\xf2\\xe2\\xed\\x7c\\x73\\xde\\x96\\x52\\x0e\\xf7\\x73\\x0e\\xf3\\x83\\x45\\xe0\\xf9\\x72\\xa8\\x4c\\x53\\x88\\x10\\x36\\x87\\xe6\\x8c\\x50\\xf9\\xd8\\xc9\\xaf\\x90\\x3b\\xc6\\x32\\xd4\\x32\\x04\\x06\\x2a\\x4f\\x50\\x2e\\x21\\x4c\\x07\\x05\\x9c\\x2c\\xbe\\xf7\\x2a\\x54\\x11\\x0d\\xbf\\x73\\xe4\\x25\\x40\\x2d\\x17\\xe9\\x78\\xec\\x19\\x9b\\x51\\x8c\\xec\\x03\\x10\\xbf\\xbf\\x7d\\x9a\\xd3\\x00\\x43\\x4a\\x4a\"},\n{{0x08,0xda,0xbd,0x4e,0x5c,0x11,0x9e,0xa9,0x07,0xce,0x45,0xf0,0xa7,0xaf,0x9e,0x62,0xc0,0xc3,0xf1,0xc9,0xec,0x61,0xad,0x10,0x56,0x7d,0x79,0x36,0x28,0x54,0xc5,0x57,},{0x94,0x54,0x06,0xb8,0x5d,0x7b,0x32,0xe0,0xb1,0xab,0x12,0x00,0xb9,0x42,0x22,0xde,0x1a,0xaa,0x68,0x62,0x4c,0x60,0xbb,0x47,0x16,0xb0,0xbc,0xe9,0xdf,0x00,0x57,0x71,},{0x33,0xad,0xbf,0xcd,0x4e,0xd4,0xfa,0x67,0xc5,0x8b,0x5c,0xb5,0x9e,0x16,0x98,0x71,0x48,0x69,0x78,0x12,0x66,0x0b,0x35,0x31,0xff,0x6a,0x21,0xc7,0x49,0xb9,0x60,0x16,0x60,0xba,0xee,0xe2,0x48,0x9b,0x82,0xb4,0xcd,0xe1,0x32,0xb6,0xe6,0x2f,0x2f,0x90,0xd8,0xf9,0x92,0x78,0x60,0xaa,0xad,0x25,0x28,0x1d,0x03,0xeb,0x17,0xa9,0x52,0x0f,},\"\\x6c\\x47\\x19\\xa5\\xa2\\xa6\\x89\\x48\\x35\\xc4\\xac\\x1e\\xd6\\x91\\x59\\xe5\\xeb\\xb5\\x69\\x2a\\xd8\\xea\\xad\\xa4\\x39\\xf7\\x9e\\x96\\x68\\x4b\\x36\\xce\\xcf\\xb4\\x4b\\x89\\x01\\x56\\x31\\x66\\x3e\\x06\\x44\\xf6\\xc7\\xab\\x71\\x39\\x89\\xd7\\x42\\xda\\x27\\x42\\x72\\x53\\x31\\x8a\\x52\\x43\\x2d\\xfa\\xb2\\x12\\x1d\\x1e\\x92\\x33\\xea\\xd7\\x19\\xe2\\xc8\\x6a\\x6b\\xe0\\x73\\x63\\xd0\\x02\\x17\\x3f\\x20\\x54\\x46\\xca\\x95\\xfc\\x17\\xb2\\x46\\x35\\x82\\x7f\\xe3\\x15\\xf2\\x22\\x40\\x8e\\x45\\xe8\\x33\\xf2\\x9f\\xf0\\x8f\\xf3\\x1d\\xac\\x58\\x3a\\x4b\\xec\\x70\\x76\\xd5\\xcc\\x78\\xcf\\xc9\\x44\\x51\\xcb\\xf4\\xf7\\xe2\\xfc\\x5b\\x5e\\xd8\\x07\\x0f\\x4e\\xf8\\x08\\xbe\\x1d\\x8a\\x68\\x0e\\xcd\\xff\\x59\\x01\\x0f\\x39\\xb1\\xde\\x80\\xbe\\xf1\\x71\\x9f\\x1e\\x21\\x8e\\x0c\\xe0\\xa1\\xe3\\x93\\xa5\\x66\\xc5\\x17\\x64\\xd2\\x37\\x0d\\x95\\xa6\\x11\\x91\\xd8\\xf7\\xaf\\x74\\x0d\\xc2\\x08\\xfa\\x78\\x31\\xb2\\x10\\x67\\x05\\x12\\xcd\\x73\\x76\\x6e\\x60\\x9e\\x9b\\x78\\x00\\x21\\xeb\\xb2\\x0c\\xc8\\x79\\x0d\\x8d\\xa5\\xf1\\x0f\\x5b\\x6a\\x11\\x4a\\x1d\\xb8\\x8f\\x66\\x76\\x65\\x01\\x80\\x2d\\x9c\\x36\\x6e\\xa3\\xfa\\x6f\\x1b\\x1e\\x1e\\x8b\\x04\\x20\\x94\\x34\\x13\\xcc\\x6f\\xea\\xb2\\x8c\\x6b\\x68\\x3c\\xd2\\xb3\\x33\\x06\\x9c\\x89\\x51\\xbc\\x45\\xe8\\xa1\\x3b\\xd5\\x22\\x57\\x83\\x51\\xc8\\x82\\xf7\\xc3\\x42\\xfe\\x43\\x31\\xb9\\x21\\xf5\\x33\\xc9\\x2e\\xc0\\x4a\\x49\\xb2\\x92\\xbc\\x56\\x9d\\xdc\\xef\\xca\\xb5\\x72\\x7f\\x9b\\x56\\x25\\xb1\\x67\\xa9\\x02\\xdc\\x89\\x6d\\x8b\\xc7\\xd8\\xe9\\x99\\x20\\xf5\\xdb\\x8d\\xd7\\x67\\x83\\x9c\\x43\\xe3\\xcd\\xf9\\x47\\x08\\x0d\\xec\\x95\\x42\\x14\\xa6\\xfb\\xbe\\x04\\x87\\xa2\\xf3\\x2c\\xd1\\x7a\\x6b\\x00\\x03\\x70\\xbd\\x41\\x44\\x84\\xfb\\x73\\xc5\\x10\\xea\\x01\\x24\\xc6\\xcf\\x0f\\xe5\\x6c\\x08\\x46\\xa7\\x9b\\xfc\\x59\\x77\\x9d\\x3b\\x07\\xa1\\xbd\\x2c\\x7f\\xb7\\xe2\\xd0\\x03\\x9f\\x0b\\xd2\\x1c\\x8a\\x30\\x8f\\xb0\\xf5\\x8f\\xdb\\xf9\\x4e\\xfa\\x08\\x57\\xac\\x3b\\xdd\\xdd\\x86\\xd5\\x76\\x3e\\x20\\x5e\\xe1\\xb2\\x21\\xf0\\x60\\xce\\xdb\\x8b\\xc0\\x5f\\x03\\x1b\\x60\\x6c\\xc7\\x4d\\xad\\xc5\\xdb\\x04\\x23\\x27\\x48\\x86\\x5a\\x73\\xd6\\xcc\\xdd\\xb4\\xd5\\xe9\\x30\\xd5\\x28\\x34\\x8c\\x5b\\xe9\\x08\\x8b\\xfe\\x34\\x45\\x84\\x87\\xa6\\x7b\\x19\\xa1\\x8e\\xca\\x25\\xc0\\xd3\\xfb\\xe2\\x19\\x5e\\xb9\\x17\\x07\\xb6\\x5d\\x91\\x61\\xea\\x93\\xed\\xdd\\x64\\xa6\\x34\\xb2\\x32\\x80\\x19\\x5f\\xdb\\x0d\\x13\\x88\\xf6\\x99\\x8e\\x18\\x58\\xa4\\x5b\\x88\\x69\\x99\\xb8\\x44\\xe6\\x79\\x5d\\x83\\xd3\\x18\\x37\\xe4\\x41\\x1f\\x71\\x69\\x92\\x26\\xde\\x1b\\xa0\\x24\\x56\\x08\\x00\\x0d\\xcf\\x22\\x3d\\xd1\\x83\\x59\\xb7\\xc6\\xd4\\x59\\xa6\\x5d\\xbe\\x66\\xc9\\x0f\\x5c\\xb8\\xc0\\x91\\x22\\x18\\x7a\\x30\\x46\\xa1\\x6d\\xd1\\x79\\xc3\\xf4\\x37\\x3e\\x57\\xcf\\x5e\\xe0\\xea\\xb6\\xa2\\x12\\xcc\\x9e\\xd8\\xb5\\x4b\\xf3\\x7f\\x1d\\x27\\xfb\\xd7\\x98\\x48\\xe4\\xec\\x1f\\x56\\x72\\x43\\xab\\x87\\x40\\xa0\\x51\\x49\\xd9\\x60\\x2e\\xad\\xa9\\x20\\xa4\\x6d\\x61\\x0d\\x3c\\xc8\\x23\\xb5\\x64\\x98\"},\n{{0xe0,0xf7,0xd0,0x08,0x24,0xc5,0xf3,0x70,0x1e,0x55,0x17,0xa4,0xab,0xc1,0x3e,0x2f,0x2c,0x0b,0x13,0x8c,0x83,0x69,0x77,0x84,0x3b,0xbd,0x1e,0xef,0xfa,0xbd,0x96,0x8a,},{0x52,0xfd,0xda,0xe3,0xe0,0x18,0xa6,0x84,0x73,0xb3,0x16,0x8d,0x07,0x64,0xcf,0xe2,0x74,0xdc,0xc8,0x34,0xc9,0x0a,0x91,0xfb,0x4f,0xe7,0x4b,0x93,0x9d,0xd2,0x38,0xb1,},{0xcc,0xdf,0xe1,0x8a,0xd6,0xd0,0xb6,0x5d,0x08,0x6d,0x63,0x2f,0x83,0xcc,0x46,0xff,0x3b,0x3f,0x2c,0x07,0xbb,0x8e,0x76,0x9d,0x0f,0xb4,0xe8,0x2d,0xf8,0xa3,0x87,0x3f,0x9a,0xee,0x35,0xfd,0xd1,0x8a,0x57,0x83,0x60,0x31,0x80,0xa9,0x5c,0x9f,0x74,0xce,0xd9,0xdb,0x51,0x46,0xaf,0xcf,0xbb,0xdd,0x40,0xdf,0x29,0xe0,0x42,0x01,0x20,0x0c,},\"\\xb3\\x9e\\x3a\\xc7\\x5a\\x22\\x1a\\xdc\\xce\\xd0\\x9a\\x85\\x91\\xac\\x5e\\x2f\\xe1\\x5d\\xfe\\xd5\\xb9\\x19\\xcb\\xaf\\x14\\xc6\\x5e\\xb7\\xcd\\x93\\x08\\x6d\\xde\\xe3\\xf7\\x47\\x25\\x47\\xe6\\x6d\\xdc\\x70\\x06\\x2b\\x97\\x62\\x97\\xd1\\xa3\\xc1\\x70\\xee\\x52\\x5c\\x9c\\x53\\xba\\x93\\xa4\\xc4\\xfd\\xb2\\x35\\x72\\xb7\\xca\\x6e\\xd1\\x38\\x53\\xe7\\x0d\\xb1\\xd7\\x2e\\xde\\xb9\\x94\\x4b\\xbc\\x35\\x4a\\x52\\x0e\\x77\\xae\\x59\\x1f\\x31\\x80\\x92\\xef\\xd5\\xe6\\x6d\\x9c\\x09\\x81\\xc4\\xa4\\xbd\\xa9\\x8a\\xa4\\xe5\\x90\\x45\\xff\\x9c\\x4b\\x4c\\xa3\\xac\\xb2\\xff\\xd8\\x93\\x20\\x1c\\x70\\xb3\\x4a\\x77\\xf2\\x4e\\xda\\x54\\x54\\x9d\\xc8\\x4a\\xd1\\x34\\xa3\\x55\\x32\\x55\\x38\\x15\\x88\\x8a\\xe3\\xdd\\x9e\\x24\\x1e\\xc4\\xeb\\xbf\\xf8\\x6f\\x8c\\x1e\\x8a\\xdb\\xaa\\xc4\\xb9\\x1a\\xfd\\x18\\x22\\x8c\\xbb\\xd5\\xdd\\x80\\x5a\\xca\\xbf\\x0a\\x1e\\x29\\x0c\\xe5\\xdd\\xa0\\x25\\x1a\\xdf\\xb3\\x7c\\xb7\\x14\\xc1\\x39\\xb5\\xa3\\x24\\x2d\\x88\\xc6\\x44\\x84\\xa3\\x76\\x55\\xcc\\x8f\\xcb\\xec\\xff\\xa9\\x7f\\xbd\\x14\\xd6\\x4d\\x51\\x2b\\xf8\\xf6\\x30\\x5f\\x89\\xc5\\x09\\x22\\xde\\x54\\x16\\x92\\x15\\x8f\\xb5\\x47\\xfd\\x53\\x9f\\x1e\\x58\\x77\\xcc\\x64\\x94\\x95\\x16\\x63\\x32\\xea\\x2b\\x68\\x5c\\xfa\\x3f\\x60\\x20\\x19\\xdf\\x2a\\xb2\\xc2\\x5e\\xd9\\x6b\\x68\\x74\\x5e\\x9a\\xe8\\x9c\\x94\\x8d\\xa1\\x1a\\xd8\\xa8\\x30\\xdf\\x8b\\x00\\xf2\\xe6\\x68\\x19\\x2d\\xad\\xf2\\xc5\\x62\\x0d\\x35\\xc6\\xe8\\x1a\\x28\\x53\\xf8\\x41\\xe3\\x75\\xa0\\xd9\\xfc\\xa2\\xd2\\x96\\xef\\xce\\x2a\\xc3\\x8d\\x40\\xb0\\x30\\xb5\\x75\\x60\\xae\\x6e\\x83\\x41\\x33\\x9b\\x3d\\x3c\\x2d\\x06\\x11\\x64\\x12\\x43\\x19\\x59\\x86\\x88\\xfc\\xa6\\x18\\xfc\\x64\\xc9\\xe8\\xf5\\xf8\\x31\\x09\\x7a\\x05\\x3a\\xf1\\x9d\\x7d\\xbd\\x61\\x21\\x8d\\x92\\x67\\x42\\xc2\\xe9\\xa4\\x2a\\x79\\xcc\\x1b\\x14\\x89\\x12\\x72\\x2d\\x8c\\xd5\\xca\\x79\\x3a\\x1a\\xd7\\x3b\\x5f\\x14\\x1b\\x41\\x80\\x9c\\x2f\\xc0\\x53\\x0b\\x76\\x30\\xe8\\x03\\x90\\xc6\\xb3\\x38\\xc7\\x18\\x68\\xda\\xcc\\x59\\xbf\\x46\\x3f\\xfc\\x48\\x90\\x16\\xbf\\x67\\xf9\\xc9\\xd5\\x55\\x3c\\x1e\\xde\\x17\\x15\\x28\\x13\\xfe\\x0b\\x26\\x4b\\x65\\xdc\\xa1\\xb2\\xb3\\x8e\\x4b\\x80\\x9f\\x8c\\x97\\x25\\xac\\x5b\\x1d\\x8d\\x2e\\x56\\xbe\\xc9\\x64\\x9f\\xe5\\x5c\\x75\\x83\\xff\\x23\\xb0\\x43\\xd6\\xf3\\x76\\x86\\x28\\xf1\\xf0\\x51\\x63\\x37\\x82\\x4a\\x5a\\x56\\xb4\\x09\\x52\\x0a\\x6a\\x6c\\xb7\\x7e\\x4f\\x5f\\xc2\\x0b\\x9f\\x68\\x99\\xe0\\x0a\\xb2\\x2d\\xb1\\x0d\\x18\\x2f\\x09\\xb8\\x1e\\x94\\xf3\\xad\\x56\\x8a\\x0b\\x81\\x24\\x4d\\xf3\\xf1\\x85\\x5c\\x6e\\xf2\\x22\\xa4\\x1a\\x51\\xb6\\x2a\\x46\\x49\\xbb\\x82\\x69\\x0a\\xb6\\x5f\\xac\\xac\\x0d\\x81\\xd6\\xfe\\x02\\x60\\x11\\x70\\xa8\\xdb\\x62\\xcb\\xc5\\xec\\x99\\x55\\xd7\\x71\\x1a\\x1c\\x39\\x65\\x6a\\x9f\\x6e\\x1f\\xb6\\xbc\\x18\\x3d\\x9b\\xea\\x15\\x03\\x53\\x1f\\x17\\x36\\x27\\x68\\xbb\\x84\\x1f\\x9d\\x21\\xf1\\x3a\\x2c\\x99\\x1e\\x55\\xdf\\xf7\\xf2\\xb3\\x36\\xe2\\x9e\\xb2\\x95\\x07\\x63\\x8b\\xdc\\xad\\x7b\\xb3\\x1c\\x69\\xe9\\x09\\x20\\x7e\\xba\\xbc\\xc6\\x53\\xff\"},\n{{0x6a,0xcd,0x93,0x9e,0x42,0x22,0x26,0xcc,0x54,0x43,0xd4,0xaa,0xbf,0x58,0xc1,0x1a,0xf6,0x50,0xcb,0x40,0xb9,0x64,0x8b,0x4d,0xa3,0x8b,0x92,0x7b,0xff,0x9a,0x58,0xdb,},{0x4c,0x0b,0x91,0x75,0x6b,0x9e,0x20,0x6f,0x78,0x63,0xb1,0x55,0xff,0xc5,0x50,0x9b,0xb5,0x24,0x77,0xce,0xac,0xd0,0x1c,0xa0,0x11,0x43,0x51,0x53,0x67,0x86,0x46,0xcc,},{0x79,0x99,0x58,0x77,0xed,0x24,0xc7,0x91,0x68,0x4f,0x29,0x84,0xbd,0xf9,0x60,0x9c,0x3f,0x7b,0x57,0x6c,0x57,0xd1,0x62,0xee,0x62,0x2d,0x4c,0xe8,0xf3,0x6d,0x9c,0x55,0x73,0x16,0x9d,0x88,0x01,0x21,0x6f,0x1c,0x46,0xff,0xe2,0xf6,0xe2,0xc0,0x90,0x48,0xe4,0x7d,0x4b,0xeb,0x99,0x7e,0x9a,0xbc,0x4a,0xbb,0x12,0x9f,0x9b,0x79,0x69,0x0a,},\"\\x82\\x50\\xd5\\x31\\xcf\\x2b\\x66\\xaa\\xc2\\xb3\\x78\\xd5\\x4b\\xc5\\x7f\\xd3\\x29\\xad\\x5a\\x41\\x4a\\x59\\x92\\x55\\x89\\x8b\\x3c\\x3b\\x45\\xbf\\x9c\\x0d\\x2c\\x77\\x54\\x75\\x66\\xb6\\x60\\xee\\xcc\\x76\\xa6\\x95\\xa2\\xd6\\x08\\xab\\xf1\\x1a\\x5f\\x6d\\xb3\\xe6\\x07\\xfd\\x5a\\x21\\x71\\x4b\\x0f\\xad\\x5d\\x81\\x4c\\x01\\x5e\\xbf\\x48\\xbb\\x73\\xad\\x75\\xda\\x9c\\x03\\xc4\\xaf\\x54\\x89\\xe7\\x82\\xb6\\xbf\\x79\\x08\\xa1\\xbd\\x52\\x8d\\x7c\\xe7\\x88\\xa1\\x8b\\xa3\\x52\\x8e\\x35\\x37\\xaa\\x7b\\xbf\\x75\\xf6\\x52\\x4b\\xbd\\x19\\xa5\\x30\\x4b\\xa2\\xa4\\xa3\\xee\\x58\\xc4\\x1f\\xec\\x31\\x32\\xee\\x65\\x01\\x64\\x12\\x15\\xef\\xf7\\x46\\xd7\\x80\\x0c\\x4d\\x33\\xf5\\x2b\\xe8\\x35\\x7e\\x0e\\xe7\\x58\\x04\\x1d\\x91\\xcf\\xe4\\x3c\\x60\\xc3\\xce\\xdc\\x09\\xb0\\xd4\\x6d\\x4c\\xfb\\x9a\\xe2\\xa0\\x23\\x9b\\x6f\\x33\\xc6\\x94\\x1c\\xff\\x35\\x37\\x26\\x70\\xee\\xf5\\xc8\\x85\\x9a\\xb6\\x5b\\x6e\\x9f\\x7e\\xbc\\xe3\\x2f\\xa1\\x5a\\x9a\\x47\\x7a\\xec\\xdc\\x96\\x83\\xa1\\xe3\\x3a\\x1e\\xdc\\xdc\\x90\\xd4\\x20\\xa3\\x1e\\x78\\xc1\\x53\\xd2\\x60\\x20\\x87\\x1d\\xaa\\x4f\\xff\\x28\\xac\\xc3\\xf1\\x1a\\x72\\x06\\x78\\x88\\x06\\xb6\\xfa\\x02\\x34\\x68\\xea\\x5a\\x3d\\x18\\x6d\\x10\\xf0\\xdd\\x56\\x77\\x96\\x66\\x3b\\xa3\\x7c\\x83\\x2f\\xe7\\x5a\\xae\\x7d\\xcc\\xeb\\xf3\\x19\\xf9\\x36\\x00\\xc4\\x6a\\x22\\xf5\\x72\\x23\\x81\\x2d\\xdd\\x0a\\x68\\xd7\\x6b\\xaf\\x5e\\x27\\xa9\\xfc\\x8b\\xd6\\x8c\\xc1\\x0b\\x5b\\x51\\x51\\xd6\\x2b\\x41\\xf9\\x34\\x8e\\x21\\xb7\\x15\\x35\\x2f\\x26\\x30\\xb6\\x17\\xf8\\x13\\xb0\\xc2\\x89\\x96\\x28\\x59\\x04\\xcf\\x29\\x4e\\x9c\\x28\\x56\\xb1\\x7b\\xa3\\x5f\\x9a\\x82\\x19\\x8b\\x82\\x14\\xa0\\x35\\xe2\\x89\\x6d\\x65\\x68\\xbe\\x42\\x39\\x2c\\xce\\xf3\\x2c\\xd4\\xeb\\xfe\\xeb\\xf1\\x2b\\xe0\\x12\\x52\\x06\\xbb\\xe8\\x93\\x36\\xd3\\xe7\\x62\\x99\\x1d\\xfa\\xb6\\x8f\\xc9\\x9d\\xc1\\x64\\x9b\\x89\\x13\\x83\\xdb\\x31\\xfa\\xb6\\x49\\xe6\\x28\\x82\\x3f\\x45\\x98\\xcb\\x63\\x6a\\x38\\xfe\\x1d\\xf7\\x3e\\x68\\xd7\\x42\\x5f\\xc5\\xd2\\xeb\\x55\\xa0\\xfd\\x1b\\xc9\\xf5\\xce\\xaa\\xbd\\x6d\\xd4\\x1f\\x23\\xe4\\xf0\\x86\\xc6\\x92\\x63\\x3d\\xc3\\xc4\\x61\\x9a\\x97\\xab\\x0e\\xad\\xa1\\x71\\xf8\\x4a\\xdf\\x20\\xec\\xc8\\xec\\xd4\\x7c\\x51\\xcc\\xa3\\xe5\\x9d\\xd8\\x09\\xb0\\xae\\xaa\\x73\\x0d\\xf9\\x4b\\xe3\\xba\\xcf\\xd8\\xee\\x88\\x8b\\xba\\x9d\\x57\\x08\\x50\\x65\\x2c\\xd4\\xd5\\xe6\\xc5\\x52\\xa5\\x7e\\x9f\\x48\\xa2\\xb0\\x6a\\xac\\xdc\\x70\\x8d\\x84\\xa3\\x76\\xfb\\xc6\\xc9\\x4b\\xa6\\xbf\\x64\\xa5\\xf0\\x18\\x80\\x0a\\x7c\\xc8\\x51\\x24\\x5a\\xed\\xb2\\x03\\x78\\xb3\\x29\\xac\\xeb\\xb2\\x97\\x7c\\x13\\x98\\x08\\x2b\\x3a\\x0e\\x5e\\x2a\\x9c\\x24\\x84\\xfa\\x30\\x1d\\x30\\x37\\xa8\\x22\\x4d\\xdc\\xc0\\x95\\xb1\\xdb\\xd8\\xa2\\x31\\x5b\\x55\\xbf\\x33\\x18\\xc2\\x78\\x10\\xef\\xc3\\xd8\\xe2\\x5f\\xa7\\xa8\\x78\\x9b\\x73\\xa4\\xf5\\x50\\x59\\x08\\x0b\\x08\\xab\\xb3\\x69\\x9b\\x7b\\x86\\x26\\xcb\\x2a\\x78\\x0d\\x97\\xcc\\x1c\\xa8\\x03\\x28\\x51\\xba\\xf4\\xed\\x8b\\x64\\xfc\\x43\\x30\\x86\\x5f\\x84\\xcc\\xb1\\x2a\\x3d\\xae\"},\n{{0x4d,0xef,0xf6,0x47,0xcb,0xc4,0x5e,0xca,0xed,0xc3,0xf7,0xdd,0xf2,0x2c,0x16,0x7a,0xf2,0x4e,0x3d,0x63,0xda,0x22,0xb0,0xe6,0xa5,0xb8,0x43,0x9c,0x0f,0x3b,0x19,0x34,},{0x0c,0x27,0xc9,0xd7,0x7a,0xc8,0xc7,0x25,0xbb,0x06,0x63,0x93,0x3a,0xb3,0x0d,0x1a,0xad,0x09,0xcb,0xcf,0x2c,0xd7,0x11,0x6c,0x60,0x85,0xa8,0x49,0x9f,0x70,0x14,0x02,},{0xdd,0x54,0x89,0xfd,0xe4,0xba,0x87,0xd1,0x17,0x3d,0x4c,0xee,0x06,0x82,0xaf,0xdd,0x4b,0xad,0x80,0xdd,0x77,0x0e,0xa7,0xd0,0xdc,0xeb,0xaf,0x21,0xac,0xc6,0x1d,0xd6,0x32,0x4a,0xca,0x29,0x5e,0xd0,0xe2,0x3a,0x91,0x5e,0xcf,0xda,0xd5,0x0f,0x17,0x5e,0xbc,0x51,0x6f,0x1b,0xe5,0xb6,0xd8,0x7d,0x90,0xbb,0xe3,0x86,0x22,0x49,0x53,0x02,},\"\\xd6\\x20\\x1e\\xbc\\x21\\xce\\xc1\\xe9\\xbc\\x28\\xf9\\x57\\xc9\\xd0\\x29\\xcc\\x38\\xf9\\xe8\\x5e\\x06\\xdf\\xc9\\x0b\\xf2\\x97\\xe6\\x1f\\x2b\\x73\\xb4\\x07\\xd9\\x82\\xa6\\x6b\\x91\\xe9\\x4a\\x24\\xe9\\x1d\\x06\\xab\\x8a\\x5c\\x07\\x9d\\x0f\\x69\\xbe\\x57\\x88\\xea\\x8f\\xea\\xce\\xbd\\x91\\x72\\x91\\x19\\x22\\x33\\x86\\x2e\\x6a\\xcd\\xa1\\xe8\\xcf\\x9a\\x48\\xbf\\xfb\\x54\\x91\\xdd\\x65\\xaf\\x54\\x1b\\x6c\\x72\\xaf\\x68\\x1a\\x81\\x82\\x3d\\x98\\xa0\\xab\\xee\\xb6\\xba\\x9f\\x95\\x46\\x5b\\x84\\x11\\xf9\\x9e\\x11\\x9c\\xd2\\x84\\x79\\xda\\x98\\x42\\x59\\xbd\\xf8\\x6c\\x9f\\xef\\x3c\\xca\\x34\\xe2\\x24\\x69\\x1f\\x18\\x3c\\xf0\\x95\\x03\\x77\\x27\\xda\\x9c\\xad\\x29\\xf2\\x42\\xf8\\x3e\\xb4\\xf7\\x36\\xe2\\x7f\\xdf\\x67\\x01\\x8d\\x71\\x1b\\x74\\xc4\\x5b\\x29\\x55\\xa6\\xa7\\x6e\\xc1\\x53\\x30\\xdf\\x5b\\xad\\x80\\x30\\xc6\\xb3\\xa8\\x8d\\x72\\xf2\\x84\\x47\\x65\\x2a\\xc8\\x90\\x2b\\x5b\\x76\\xcb\\xf6\\xb9\\x45\\xce\\xab\\xfe\\xc0\\x4a\\x9b\\x8c\\xb3\\x0f\\x43\\xd9\\xeb\\x77\\x3e\\x67\\x05\\x59\\x4f\\x0d\\xe1\\xb7\\x0f\\x1a\\x20\\xc9\\x9f\\xc4\\xb1\\x22\\x1f\\x8c\\x81\\xb0\\xbc\\x30\\xda\\x12\\xcd\\x5d\\xea\\x8f\\x4d\\x90\\xf1\\x3a\\x81\\x1a\\x2c\\xc1\\x1a\\x96\\x84\\x6a\\xaf\\xb4\\xc4\\x2a\\x00\\xe9\\xae\\x7d\\xa2\\x56\\xa0\\xd2\\x2b\\x19\\x8a\\xfc\\x25\\xcc\\x10\\x41\\xd2\\x4e\\x05\\x6c\\xf3\\x87\\x60\\x1d\\x7b\\xf7\\xeb\\x31\\x82\\xd6\\x05\\xfe\\x5e\\x63\\xb1\\x8d\\x53\\x1a\\x5f\\x84\\xe5\\xdb\\xd0\\x18\\x4a\\x76\\xc6\\xc4\\x67\\xa8\\x26\\x3a\\x98\\xb5\\xc0\\x05\\xfc\\xb2\\xaa\\xf9\\x89\\xf5\\xcb\\xd0\\xa9\\xd9\\x03\\xfc\\xfc\\x60\\x9d\\x6e\\x57\\xd9\\xc4\\x39\\x02\\x1c\\xea\\x93\\xe4\\xc4\\xe9\\x91\\xf1\\x93\\xca\\xf3\\x24\\x37\\x70\\xb3\\x25\\x78\\x74\\x80\\x76\\xb7\\xf4\\xcb\\x97\\xf1\\x7c\\x17\\xa7\\x9b\\x82\\x25\\x3c\\x24\\x23\\xdb\\x69\\x8c\\xd0\\xa3\\x3a\\xb3\\x3b\\xb0\\x9b\\x0b\\x08\\xcb\\x8c\\xea\\xdc\\xa1\\xe2\\x9c\\x5d\\xe2\\xfc\\x12\\xb2\\x40\\x7b\\x6c\\xc5\\xaf\\x5a\\xe9\\x76\\xdd\\x3e\\xc6\\x30\\xd8\\x33\\x9b\\x7d\\xd1\\x1f\\xa3\\x4c\\xaa\\xc1\\x50\\xc7\\xc4\\x79\\x1d\\x8c\\x42\\x7b\\x0a\\xd9\\x2e\\x05\\x29\\x06\\x7a\\x88\\xd5\\x20\\x11\\xe1\\xe0\\xa1\\x82\\x99\\xb9\\x69\\x89\\x6f\\x8b\\x83\\x60\\xf7\\x5c\\x45\\xc4\\x96\\xda\\x47\\xb0\\x9b\\x45\\x0f\\x98\\x22\\xbc\\xbc\\xd4\\x3f\\x42\\x93\\xc5\\x16\\x80\\x2b\\xf7\\x47\\xc4\\xab\\xee\\xdf\\xaa\\x3e\\x79\\xcb\\x91\\x03\\xd3\\x77\\x0f\\x56\\x07\\xb7\\x75\\x16\\xe5\\xb1\\xce\\x0f\\x64\\xb6\\xee\\xc7\\xbe\\xc3\\xc6\\x47\\xc0\\x06\\x95\\x6d\\xc5\\x5b\\x6c\\x79\\xf6\\xaf\\xb3\\x9d\\x1f\\xc3\\xec\\xf1\\x1b\\x97\\x4b\\x44\\xae\\xdb\\x72\\xae\\xd1\\x31\\x66\\x35\\x08\\x3c\\x21\\x24\\x50\\x2e\\x5c\\x72\\xd8\\x6e\\xca\\xb6\\xac\\x90\\x24\\x3e\\xb3\\x9a\\x6a\\xa9\\xcb\\x94\\x80\\xda\\x38\\xe1\\xed\\xb8\\xd2\\x8f\\xf9\\x09\\x24\\xc0\\x5d\\x5d\\x21\\xaf\\x5a\\xf9\\x59\\x57\\xb8\\x02\\x07\\x81\\x37\\x87\\x11\\xa2\\x9d\\x09\\x20\\xac\\xad\\x8c\\xcb\\x39\\xa3\\x11\\x69\\x32\\x78\\xc9\\x90\\x0b\\x47\\x0d\\xa2\\xbd\\x4c\\x12\\xa0\\x1d\\x73\\x96\\x26\\x44\\x01\\x7b\\x60\\x34\\x71\\x3b\\x2a\"},\n{{0x5a,0x19,0xbf,0x6c,0x94,0x1f,0x39,0x4e,0x93,0xbd,0x36,0x25,0xfb,0x81,0xcd,0x9d,0xa8,0x1c,0x90,0x20,0xb1,0xc5,0x31,0x25,0x7a,0x7b,0x59,0x57,0xbb,0x07,0x92,0x11,},{0x20,0xe8,0x69,0x9d,0x08,0x7c,0xe5,0xe8,0x15,0x1d,0x28,0x05,0x3d,0xce,0x66,0xc2,0x3f,0x28,0x08,0x1f,0x35,0xbd,0x26,0x81,0x9b,0xbe,0x85,0xd3,0x8a,0x09,0xd7,0x02,},{0x2a,0x2f,0xd6,0x05,0x4e,0xf4,0xe7,0x9b,0x72,0x19,0x1a,0x0c,0xcb,0xd2,0xb1,0x8a,0xeb,0xab,0xe8,0xb9,0xa7,0x18,0x61,0xde,0xd9,0x8b,0x7c,0xdc,0xb6,0xa6,0x25,0x53,0x28,0xbc,0x1a,0xec,0xb0,0xc9,0x33,0x57,0x21,0xa9,0xa9,0x6e,0xe4,0xb5,0xb4,0x3f,0x90,0xd3,0x22,0xec,0xf8,0x35,0xf7,0x8b,0x26,0x4d,0xae,0x6e,0x38,0x7b,0xfb,0x04,},\"\\xf7\\x21\\xca\\x3a\\x32\\xc1\\xe8\\x1c\\x9c\\x6f\\x46\\xd5\\xe1\\xfb\\x50\\xe7\\xce\\x2f\\x4e\\x70\\x93\\x33\\xca\\x2b\\x55\\x0d\\x52\\x13\\xb6\\x77\\x3d\\x67\\x0c\\xa5\\x9a\\x2b\\x50\\x86\\xa4\\x43\\x84\\x3a\\xc5\\x08\\x13\\xb2\\x44\\xc9\\xc9\\xfa\\xc6\\xd1\\x19\\x69\\x89\\x27\\x81\\x35\\x12\\xc8\\x4f\\xe3\\x0a\\x89\\x55\\x30\\x10\\x13\\x8f\\x91\\xe8\\x17\\x6f\\x5c\\xf2\\x57\\x89\\xd7\\x28\\x1d\\xdb\\x83\\xa2\\x46\\x70\\x5d\\xcc\\xb9\\x99\\xc4\\xcd\\x0a\\xe2\\x19\\xc6\\x45\\xf6\\xd7\\x1d\\x45\\x1a\\xe1\\xf8\\xd2\\xf9\\x89\\x1a\\xf8\\xcc\\xce\\x03\\xf4\\x38\\x55\\x9f\\xb8\\x36\\x67\\xb8\\x07\\x7f\\xbe\\x43\\x5a\\x74\\x4a\\xf0\\x19\\xd6\\xd1\\x39\\x9f\\xd2\\x13\\x7f\\x5a\\xfb\\x8e\\xf3\\xf4\\x7b\\xcf\\x73\\x5e\\x7c\\x9e\\xd8\\xa5\\x4b\\xa0\\xc1\\xc6\\x56\\xb6\\x65\\x0b\\xb3\\x0a\\xdb\\x1d\\x57\\xec\\xd2\\x07\\x46\\x39\\x49\\x42\\x31\\xa2\\xe9\\xe2\\xf9\\x85\\xed\\x84\\x22\\xee\\x03\\xcb\\x3f\\xd7\\x38\\xc7\\x35\\xa1\\xb8\\x28\\x06\\x04\\x74\\x60\\xed\\x84\\xf7\\x46\\x8c\\x3c\\x64\\xb3\\x5d\\xb0\\x6b\\xc5\\x8d\\xe4\\xbb\\xa4\\x63\\xe6\\x38\\xa9\\x41\\x33\\xdf\\x10\\x6a\\xc4\\xf4\\x70\\x36\\x1c\\xcd\\xe4\\x41\\x57\\x29\\x9d\\x22\\x5b\\x17\\x79\\x88\\x91\\xba\\xf5\\x92\\x19\\x86\\xa2\\xba\\xe3\\x26\\xdd\\xa0\\xb8\\x96\\x17\\xc6\\x77\\xbd\\x14\\x08\\xba\\x27\\x48\\xba\\xa6\\x7c\\x8a\\x2c\\x5a\\x96\\x9b\\xc0\\x0c\\xb4\\x0d\\xbf\\x49\\x0e\\x07\\xe2\\x2c\\x91\\x3a\\xfd\\xde\\x63\\x04\\xa0\\x7f\\xc9\\xe6\\x08\\x46\\x99\\x24\\x56\\xbf\\xb0\\x66\\x3a\\x09\\xde\\xf6\\x8d\\xef\\x67\\xa1\\x6d\\x29\\xe9\\x8c\\x7b\\x55\\x35\\x18\\x48\\xa8\\xcf\\x92\\x31\\x0c\\x74\\x63\\xc4\\x75\\xf2\\x49\\xc6\\xf7\\x55\\x7f\\xd0\\xd7\\x55\\xca\\x88\\xf8\\x77\\x84\\x7f\\xe0\\x76\\x57\\x56\\xac\\x34\\xa2\\x3f\\x78\\x40\\xd9\\x5c\\x3d\\x29\\x4e\\x66\\x3b\\xb1\\x51\\x8b\\x75\\x92\\x7c\\x41\\x07\\x57\\xe0\\xf5\\xc0\\x7c\\x5a\\x7f\\xb2\\x15\\xdc\\x72\\x07\\x43\\x3e\\xbf\\x79\\x1e\\xdf\\xce\\xc9\\x0e\\x93\\x0f\\x8e\\x3b\\xa9\\xdb\\xbb\\x98\\x54\\x13\\xc2\\x23\\xbe\\x87\\x87\\x3b\\xd3\\x23\\x99\\x75\\x81\\x80\\x4d\\x88\\x96\\xda\\x38\\x6a\\x6e\\x91\\x20\\x05\\x0a\\x0e\\xae\\xd3\\x12\\x40\\xaa\\x17\\xc7\\xb6\\x69\\x4c\\x30\\xcb\\xcc\\x3c\\x69\\x56\\xa6\\x82\\x0f\\xc9\\xab\\x21\\x87\\x55\\x33\\x96\\x3d\\xc3\\xb0\\xd8\\x83\\x58\\x27\\x12\\x76\\xc6\\x05\\x65\\x28\\x91\\x0d\\xd9\\x89\\xae\\x0c\\x33\\x0d\\x17\\x98\\xf7\\xd8\\xe7\\xd1\\x18\\x4b\\x84\\xa8\\x14\\x34\\x32\\x5b\\x8c\\x30\\x2e\\xdf\\x60\\x1d\\xc5\\xe6\\xf8\\x47\\xfb\\xac\\xbd\\xee\\xff\\x78\\xc6\\x62\\x1d\\x1d\\xaf\\xdc\\x23\\x9b\\x18\\xb8\\xc1\\xaf\\xdc\\xb4\\xb9\\xda\\xbd\\x5d\\x3a\\x92\\xa9\\x32\\xea\\x15\\x99\\x54\\x6e\\x62\\x5f\\x96\\xd6\\xec\\x6f\\xb1\\xcc\\xcb\\x76\\xb4\\x76\\xb3\\x30\\xac\\x59\\x25\\x9c\\x63\\x4f\\xac\\x9b\\x3f\\xa7\\xde\\x7a\\xe7\\x05\\x37\\x73\\xb5\\xbe\\xfa\\x00\\x1b\\x04\\x92\\x9f\\x74\\xb7\\x12\\x41\\xe1\\xb2\\x57\\x69\\x6d\\x65\\xa2\\x6c\\x1b\\x4a\\xc8\\x6b\\x7b\\x1f\\xbd\\x69\\x57\\xfb\\x9b\\x95\\x08\\x4c\\xe7\\xd7\\x00\\x90\\xf5\\x5d\\x44\\x53\\x46\\x94\\x30\\x5e\\x91\\x76\\x9a\\x82\\x94\\x13\\x04\"},\n{{0xb5,0x06,0xc0,0x1d,0x69,0x74,0x6e,0xb4,0xbc,0x63,0x58,0x72,0x0e,0x43,0x8a,0xd3,0x30,0xc8,0x8b,0x60,0x5a,0xad,0x65,0x2f,0x47,0x99,0x57,0x3a,0xb0,0xa1,0xaa,0xf9,},{0x7a,0xc8,0xb6,0x88,0x63,0xbd,0x69,0x15,0x15,0x83,0x78,0x9d,0x86,0x4a,0x73,0x57,0xe3,0xa0,0x45,0xfa,0x86,0x52,0x2a,0x9d,0xaa,0x6e,0x26,0xfb,0x79,0xed,0x6d,0x23,},{0x17,0xa1,0x9d,0x26,0x91,0xb7,0xb0,0x46,0xd7,0xb1,0x96,0x69,0xad,0x73,0x14,0x0d,0xb9,0x2f,0x0c,0x97,0x8c,0x7f,0x61,0xbc,0x38,0x67,0xd9,0x2c,0xa9,0xd4,0x75,0x80,0xa0,0x38,0x0b,0x59,0x01,0xba,0xd8,0x2a,0xf4,0x5f,0x67,0x6f,0x74,0x28,0x73,0x01,0x98,0x0f,0x71,0x87,0x1a,0x42,0x26,0x1d,0xbe,0x08,0x02,0x95,0x03,0x36,0xe6,0x0b,},\"\\xf7\\xfc\\x18\\x06\\x6e\\xd0\\x4b\\x30\\xe6\\x33\\xd9\\x86\\x5d\\xa3\\x21\\x4b\\xec\\xa6\\x0b\\xd7\\x96\\x01\\x9c\\xd7\\xec\\xc9\\x18\\x66\\xf9\\xef\\x24\\x46\\xc1\\xfa\\xb0\\x6d\\x86\\x51\\xbe\\x7f\\x10\\x1a\\xec\\x7b\\xb8\\x4e\\xe2\\x1e\\x71\\xad\\x02\\x02\\x15\\xfc\\xfb\\x36\\xf2\\xd1\\x1e\\x45\\x79\\xac\\x39\\xf8\\xe2\\xb1\\x29\\x0e\\x38\\x96\\xd5\\x22\\xbc\\xf5\\x13\\xaa\\xa0\\x67\\x71\\xf8\\x6e\\xe2\\x28\\xcf\\xf3\\xa2\\x0a\\x1f\\x10\\xc5\\x64\\x33\\x95\\x89\\xbb\\xa9\\x60\\x53\\x44\\xc0\\xa6\\xe6\\x82\\xad\\x5b\\xa4\\x0d\\x10\\x41\\x94\\x1b\\xc4\\x6f\\x98\\xb9\\xd0\\x9c\\xa1\\x7f\\x8f\\x04\\x4e\\x98\\x3b\\x8a\\x49\\x08\\x93\\x3d\\xf2\\x26\\x3c\\xf7\\x88\\x11\\xc2\\x4c\\x8f\\x48\\x14\\x35\\x4f\\x6f\\x4c\\x68\\xb7\\xee\\x7b\\x78\\x30\\x82\\x93\\xbf\\x78\\xfd\\x0f\\xf1\\x22\\xf0\\x95\\xc1\\x4a\\x73\\xa5\\x97\\x97\\x17\\x2a\\xe0\\x5c\\xfc\\xec\\x19\\x56\\x3e\\xb1\\x8d\\x2b\\xc5\\x30\\x0e\\xd4\\xbf\\x6b\\xdc\\x44\\x3e\\xa9\\xb8\\xbc\\x1c\\xbe\\xde\\x94\\xca\\xb9\\x05\\xed\\xa5\\xa6\\xa9\\x31\\x59\\x7d\\xe4\\x02\\x14\\x6f\\xac\\x9c\\xf8\\xcd\\x6a\\x8d\\x10\\x46\\x69\\xf9\\x13\\xfa\\x83\\x40\\x01\\xca\\x4d\\x09\\x0f\\xb7\\x94\\x9d\\x31\\x09\\xa6\\x3c\\x05\\x49\\xb0\\x3f\\x15\\x1b\\x71\\x17\\xc4\\xf4\\x69\\x74\\xba\\x59\\xc6\\x82\\x96\\xed\\xfd\\xde\\x76\\x92\\xee\\x43\\x2a\\xce\\xf7\\x61\\x06\\x47\\xe0\\x95\\x78\\x65\\xe6\\x2c\\x1a\\x0c\\xf0\\x56\\x59\\x82\\x3a\\x55\\x45\\x2d\\xd5\\xe4\\x71\\xb3\\x1c\\x5a\\x49\\xab\\x05\\xb5\\xaa\\xfd\\x5a\\x0e\\x53\\x0e\\x89\\x6b\\x58\\xcc\\x52\\x2e\\xcf\\x19\\xe5\\x2e\\xc8\\x2f\\xa1\\x47\\xf9\\xe3\\x85\\x17\\x4c\\x7e\\xc3\\x3d\\x1d\\x9b\\x86\\x93\\x4a\\xeb\\x4f\\x6c\\x57\\x00\\xf7\\xd5\\xeb\\x33\\xff\\x73\\xc9\\xfc\\x6a\\xa4\\x7d\\xf5\\x1e\\x09\\x22\\x9e\\x6a\\xe8\\x94\\xe8\\x6c\\x81\\x8b\\xef\\x06\\x5f\\x82\\x59\\x71\\xa4\\xcb\\x90\\xad\\xfe\\xfb\\x31\\xeb\\xd9\\xd1\\xb7\\x94\\x22\\xdc\\x98\\x68\\xf9\\xf7\\x4e\\x7a\\x32\\xcd\\x40\\x71\\xef\\xb6\\x9b\\x27\\x23\\x3e\\x6e\\x5c\\x60\\xde\\xdc\\xd5\\x32\\x1c\\x03\\x0a\\x46\\xcd\\x26\\xf5\\x60\\x2c\\xac\\x74\\x7e\\xe4\\xb5\\x22\\xd8\\x57\\xa3\\x32\\x1a\\x03\\xf4\\x03\\xa6\\x00\\x62\\x50\\x40\\x63\\x61\\xe4\\x88\\x15\\xaf\\xba\\x77\\xce\\x08\\x90\\x34\\x41\\x84\\x5b\\xa8\\x72\\x25\\xd8\\xb2\\x40\\x46\\x74\\x5d\\x40\\x65\\x64\\x5a\\x1b\\x98\\x41\\x0c\\xac\\x48\\xd1\\x37\\xcb\\xbb\\x8a\\xb1\\xeb\\xa5\\x0d\\xa9\\xc2\\x31\\xe9\\xac\\xf3\\x22\\xa6\\xdb\\xec\\x0e\\xf4\\x16\\xa4\\x46\\xc3\\xb6\\x10\\xd9\\x35\\x69\\xfd\\xf4\\x5a\\xa6\\xcd\\xc1\\xb6\\x40\\xd8\\xf3\\x01\\xd7\\x86\\x93\\xb2\\x82\\x6c\\xc6\\xed\\x46\\x85\\x68\\xad\\x9a\\x0f\\x94\\xaa\\x9b\\x9f\\xb9\\x2f\\x7e\\x78\\xd4\\x84\\xfd\\xf5\\xd8\\xd4\\x5c\\x99\\x1e\\x28\\x07\\x4d\\xcd\\xd6\\x80\\xd3\\xb1\\xf1\\x89\\xef\\x6b\\xdc\\x32\\x0e\\xe6\\xe6\\x4d\\xd1\\xf8\\x0d\\x92\\x64\\xd8\\x30\\x42\\xd2\\xc4\\x3d\\x83\\x58\\x1e\\xf0\\x39\\x4b\\x1b\\x5d\\x1f\\x69\\xf3\\xbb\\xbf\\x04\\xb7\\xc8\\x08\\xba\\x34\\xc1\\x58\\x0f\\x16\\xf7\\x65\\x37\\xb6\\xa7\\xeb\\xd0\\xa1\\x90\\x8b\\xe9\\x49\\x4d\\x3f\\xca\\xa9\\x87\\x1d\\xb1\\x57\\x50\"},\n{{0xe1,0xcc,0xb8,0x0a,0x26,0x2f,0xf8,0xaf,0x1e,0xda,0x07,0x5c,0x97,0x2c,0x8e,0x94,0x1e,0x77,0xce,0xf5,0x7b,0xdb,0x0a,0x82,0x57,0x2c,0x28,0x20,0x0b,0x49,0x3c,0xa3,},{0x3d,0x37,0xe2,0xa5,0x02,0x7e,0xff,0xde,0xe0,0x7f,0xa5,0x11,0xe4,0x23,0xb2,0xbc,0x56,0xed,0xce,0xa0,0x75,0xb4,0x16,0x49,0x76,0x67,0x25,0xc6,0xb3,0x0a,0x10,0xf4,},{0xfd,0xa3,0x4b,0x65,0x2b,0x79,0x74,0x6f,0x89,0x7e,0x22,0x2d,0x37,0xb7,0x7a,0xa2,0x50,0xd0,0x2c,0x52,0x7c,0x48,0x33,0xdf,0x80,0xea,0x41,0xd5,0x21,0x89,0xd5,0x07,0x00,0xe1,0x28,0xb7,0x8e,0xe8,0x14,0x9c,0x9b,0x19,0xf3,0xab,0xf7,0x55,0xac,0xef,0x53,0x48,0xf5,0xfb,0xaf,0x1c,0xeb,0x41,0xc0,0x38,0x90,0x6a,0xc5,0x94,0x60,0x01,},\"\\xcf\\xdc\\x54\\x97\\xb0\\x23\\xaf\\xa6\\x2a\\x7f\\xe5\\x92\\xca\\xa9\\x2b\\x87\\x5c\\x77\\x05\\x74\\x78\\x34\\x00\\x2f\\x77\\x84\\xff\\x16\\x61\\x89\\x39\\x88\\x15\\xd4\\xe8\\xa7\\xa0\\x03\\x8e\\x1f\\xda\\xdd\\xde\\xba\\x51\\x05\\x73\\x27\\xad\\x19\\x60\\xe8\\x59\\xce\\xe5\\x65\\x26\\xbb\\xb4\\x12\\x7b\\x6a\\x5f\\x90\\xd0\\x4d\\x08\\xb1\\x5e\\xee\\x66\\xc9\\xcc\\xf8\\x8b\\x4b\\x7d\\x1e\\xe9\\xd3\\xb8\\xb8\\xc6\\xf4\\x2d\\xb3\\xc3\\x4e\\x59\\x04\\x8a\\x15\\xc6\\x04\\x1f\\x14\\x2c\\x40\\x79\\x36\\x8b\\x7b\\x11\\xe2\\x99\\x70\\x11\\x8b\\x99\\xe5\\x67\\x0a\\xe3\\x1f\\xcc\\xfd\\xff\\x13\\x99\\x14\\x2e\\xe0\\x6b\\x2e\\x3e\\x2b\\x3c\\x97\\x07\\xdd\\x64\\x11\\x97\\x86\\xe2\\xfa\\xb4\\x7e\\x0b\\xad\\x2c\\xc8\\xb5\\x58\\xd9\\x63\\xbb\\x48\\xa4\\x9a\\xd2\\xc6\\x37\\xdd\\x35\\xb2\\x5d\\xb5\\x4b\\xc5\\xa2\\x63\\x02\\x22\\xfa\\x2a\\xce\\xce\\x9c\\xe1\\x2a\\xb0\\x81\\x30\\x77\\xf7\\x65\\x9f\\x50\\x74\\x42\\x9c\\xa6\\xb4\\x94\\x33\\x10\\x32\\xae\\x79\\x2a\\x59\\x9c\\x42\\x5e\\xe2\\x97\\x45\\x1d\\xcf\\x5e\\xe1\\x95\\x29\\x03\\x12\\x74\\x2e\\x64\\x7a\\x77\\x95\\xb8\\x4d\\xcc\\x66\\x4d\\xda\\xe2\\xa1\\xfb\\xf8\\xc4\\x54\\x8a\\x37\\xfd\\x82\\xd8\\x10\\xe2\\x14\\x5f\\x01\\xdf\\x1a\\x6d\\x3b\\xcc\\x42\\xa9\\x1a\\x10\\x76\\x8e\\x09\\x1f\\x3d\\x69\\x32\\x9a\\x7b\\xad\\x6c\\x07\\x2c\\xac\\x6d\\x89\\xaf\\xa3\\x1c\\x02\\x90\\x56\\xd6\\xb6\\x22\\x12\\x16\\x5c\\xeb\\xcd\\x49\\xac\\x67\\x2e\\x38\\x30\\x26\\x7a\\xf9\\xf2\\x8e\\xa3\\x19\\xbd\\x04\\x2f\\x6c\\x59\\xde\\x47\\x01\\xe5\\x82\\x48\\x73\\x6c\\x8d\\x97\\x6a\\xcf\\x93\\xb9\\x9d\\x2f\\x46\\x47\\xa5\\x47\\xd3\\x92\\x44\\x7a\\x48\\xda\\xc1\\x11\\x81\\xe1\\x6b\\x15\\x01\\xa9\\x4c\\x93\\x16\\xe5\\xa6\\x7c\\x99\\x0b\\x35\\x81\\x0b\\x4c\\xda\\x04\\x73\\xa6\\xa4\\xe5\\x76\\x14\\x21\\x58\\x68\\xe2\\xe0\\x02\\xc6\\x05\\x8b\\x42\\xe4\\xee\\xec\\x84\\x13\\x9d\\xc1\\x9e\\xdf\\x5f\\x80\\xae\\xef\\xfa\\x4f\\x5b\\x07\\xe8\\xfd\\x23\\x13\\x9e\\xdd\\xa3\\x18\\x99\\xeb\\xe6\\xfe\\xe7\\x86\\x43\\xce\\x68\\x6b\\x29\\x63\\xa3\\x20\\x72\\xbd\\x3b\\x3b\\xba\\x68\\x48\\x5a\\x05\\xc2\\xcc\\x04\\x56\\xc3\\xda\\x50\\xc7\\xc8\\xc6\\x51\\xa3\\x06\\x6d\\x13\\xa3\\x66\\x0b\\xd4\\x7a\\xb6\\xdf\\xec\\x49\\xe0\\x15\\x57\\xa6\\x74\\x28\\x96\\xaa\\x4b\\xc6\\x36\\x3a\\x79\\x7d\\xba\\xd1\\xa4\\x09\\xcd\\x4a\\x50\\x91\\x1e\\x70\\xea\\x00\\x7a\\xf8\\xe9\\xb1\\xbb\\x7e\\x3a\\xb5\\x62\\x15\\xa5\\x75\\xc9\\x0f\\x73\\x9c\\x2d\\x48\\xb3\\xb3\\x46\\x94\\xb5\\xac\\xdf\\x07\\x98\\x0a\\xe5\\x28\\xde\\x06\\x21\\xed\\xfa\\xc8\\xb8\\xfa\\x84\\x95\\x4d\\x56\\xdb\\xb4\\xd0\\x30\\x82\\xb9\\x84\\xf1\\x3e\\x5d\\xbe\\x9c\\x71\\x12\\xff\\x97\\x16\\xf5\\x50\\x53\\x06\\x46\\x62\\xce\\x0f\\xb8\\x1e\\xa3\\x5f\\x98\\xfd\\x2c\\xd5\\x11\\x37\\xa4\\x6f\\x64\\xe0\\xc1\\xca\\xf4\\x4e\\x54\\x07\\xdc\\x96\\x17\\x60\\xb2\\x59\\x7f\\x7f\\x92\\x00\\x61\\x7d\\x47\\x13\\x40\\xcf\\x15\\x17\\x6c\\x3d\\xa8\\x80\\xfe\\x4e\\x0e\\x93\\xa7\\x2f\\xb9\\x49\\x26\\xfa\\xed\\x86\\x5d\\xfd\\xc7\\x72\\xe1\\x85\\x29\\x2c\\x1e\\x36\\xb1\\x21\\x17\\x81\\xc3\\xe9\\x38\\xe3\\xd4\\xf2\\x4e\\x29\\xaf\\x51\\x7a\\x37\\x96\\x83\"},\n{{0x4f,0xc5,0x12,0xef,0xd8,0x6e,0x3a,0x63,0xb3,0x95,0xea,0xff,0x1b,0xa0,0x11,0xe1,0x59,0x0f,0xb9,0x32,0x6a,0xd3,0xff,0xed,0xe7,0x87,0x6d,0xcc,0x3e,0x9f,0xab,0xdc,},{0x26,0xc2,0xa2,0x2f,0x9b,0xfa,0xd9,0x06,0x06,0xdc,0x61,0x3f,0xf1,0x07,0x02,0x1f,0xcd,0xdb,0xec,0x72,0x37,0x06,0x66,0x60,0xb4,0x88,0x96,0x43,0x49,0xe0,0xc8,0x28,},{0x82,0xc8,0x24,0xa7,0xd1,0x13,0x9e,0xc7,0x3a,0xe1,0xd0,0x23,0xad,0xf6,0x28,0x11,0x44,0x1e,0x96,0x82,0x87,0xf1,0xa5,0x80,0xb8,0x59,0xcd,0x66,0xcb,0x33,0xb5,0x8e,0x40,0x9b,0xde,0xb2,0xa8,0x74,0xbf,0x4c,0x23,0x61,0x0b,0xd4,0x4f,0x69,0x31,0x47,0xf2,0xf7,0xc2,0x9d,0x44,0x3a,0x90,0x50,0x84,0xf3,0xea,0xaf,0xd9,0x33,0x0e,0x04,},\"\\x07\\xcd\\x1e\\x9b\\xfa\\x38\\xa7\\xd8\\x85\\x34\\x65\\xa9\\x3c\\x77\\xab\\x4f\\x30\\xfa\\xf9\\x14\\xe4\\x8b\\xc4\\x76\\x3b\\xa0\\x7b\\xf9\\x6b\\xa8\\x08\\xc1\\xf5\\x9a\\xd4\\xce\\x9b\\x7d\\x92\\x1f\\xbb\\xc7\\x79\\x65\\x9d\\x7c\\xa3\\x6e\\xdb\\x7d\\xd3\\xac\\xf7\\xa2\\x94\\x52\\xa8\\x45\\xb4\\x9f\\xb6\\x54\\x3a\\x3b\\x6c\\x5c\\x1c\\x29\\x3a\\xff\\x61\\x84\\x85\\xa1\\x0e\\xea\\x60\\xee\\x96\\x49\\xac\\x9d\\x48\\x1e\\x69\\x49\\x96\\x7d\\x39\\x38\\xb5\\x2f\\xe0\\x9c\\x36\\xb9\\xad\\xe0\\x75\\x81\\xdb\\x4e\\xb5\\x42\\xa9\\x7f\\x5a\\xc8\\xac\\x73\\xd3\\xee\\xa1\\x84\\x72\\x25\\x56\\x76\\x0c\\xf4\\x83\\x09\\x05\\x64\\x55\\x30\\x61\\xb9\\x0a\\x0b\\x6d\\x2d\\xff\\x47\\x07\\xbe\\x76\\x39\\x37\\xa1\\x05\\x94\\xa8\\x2b\\x76\\x6b\\xb2\\xcf\\x6d\\xaa\\x52\\xfa\\x8d\\x7b\\x48\\xf3\\x21\\x27\\xc4\\x31\\xad\\x9a\\xae\\xd3\\xbf\\xde\\xb9\\x9a\\xd4\\x21\\x18\\xa1\\xb4\\xde\\x7b\\x99\\x21\\x34\\xed\\x9c\\xda\\xd0\\xb5\\x29\\x6d\\x19\\x7a\\x48\\x5e\\x49\\x3e\\xcf\\xec\\xa3\\x65\\x3a\\xd2\\xce\\x0f\\x92\\x41\\xaa\\xbc\\x09\\x6d\\x7c\\x4b\\xa6\\x03\\xba\\x7d\\xdd\\x07\\xa8\\xb2\\x57\\xfe\\x52\\x32\\x76\\x41\\x70\\x73\\xa6\\x5f\\xa4\\x43\\x42\\x56\\xfd\\x1f\\x23\\x9e\\xc1\\xde\\x5d\\xa1\\xa0\\xa8\\xc5\\xe6\\x86\\xee\\x14\\xd9\\xdf\\xa4\\x38\\xc5\\x3b\\x99\\xc9\\x54\\xaf\\xab\\x2f\\x79\\xe6\\x0b\\x71\\x26\\xf2\\xcb\\x58\\xa2\\x6e\\x29\\x0d\\xa1\\xdc\\xcf\\xc3\\x01\\xf2\\x39\\x74\\x8e\\xde\\x7b\\xcf\\x1b\\xb7\\xcc\\xb4\\x72\\x0e\\x69\\x2f\\x57\\xe5\\x3e\\x6f\\x59\\x07\\x53\\x99\\xe1\\x08\\x0a\\xc8\\xaa\\x9a\\x61\\xa5\\x68\\xc4\\xc5\\x69\\xd3\\x6e\\x76\\xa2\\xd7\\x27\\x1f\\x2c\\x44\\xde\\x4e\\x36\\x3a\\x8c\\x91\\x6a\\x4e\\x44\\x6b\\x02\\x7b\\x64\\x39\\x2e\\x90\\xce\\xab\\xf6\\xb6\\x07\\x1b\\xc4\\x7a\\x13\\x79\\xb6\\xaa\\x63\\x44\\x76\\x3b\\x2a\\x0e\\x7f\\xf7\\xc4\\xa2\\x7b\\xff\\x31\\x06\\x72\\x1c\\x25\\x3e\\x4c\\x1d\\x67\\xc3\\x7f\\xa3\\xd7\\xc1\\xec\\xd0\\x55\\xb8\\xe9\\x29\\xd5\\x2a\\x8e\\x45\\xed\\x89\\xfb\\x18\\x0f\\x74\\xb5\\x52\\xfe\\x06\\xf0\\x66\\xc7\\xe4\\x31\\x8c\\xa2\\xf9\\x15\\x94\\x6e\\x83\\x20\\xd5\\x80\\x65\\x61\\x47\\x2f\\xb8\\xff\\x7f\\xa8\\x07\\x2d\\x8e\\x6f\\xd1\\xce\\x63\\xcf\\x87\\x38\\x2f\\x7b\\x94\\x04\\x54\\x0c\\x1d\\x40\\x6c\\x70\\xb2\\x26\\x85\\x36\\x77\\x09\\x26\\x45\\xce\\x99\\x69\\x22\\xe7\\x34\\x5d\\xc0\\x7f\\xb7\\x33\\x9f\\x9a\\x54\\xff\\x07\\x35\\x2d\\xd2\\xb9\\x93\\x06\\x3c\\x2c\\x83\\xd1\\x28\\x1a\\x4f\\xd1\\x78\\xe5\\xa5\\xf8\\x0a\\x5b\\x33\\xc2\\x29\\xd0\\x57\\x83\\x67\\xd4\\x41\\x92\\xe9\\xa4\\xd2\\x1e\\x97\\x34\\xd3\\xbd\\xa0\\x83\\xb7\\x0f\\x47\\x10\\x3f\\xd1\\x25\\x17\\x70\\x21\\xdf\\x3e\\x53\\xd7\\x99\\x86\\xef\\xea\\x2d\\xc0\\x4f\\x02\\xc0\\xac\\x27\\x87\\x88\\x31\\x9e\\xf3\\xa9\\x13\\x2e\\x62\\x32\\xea\\x6d\\xb3\\x9c\\xa5\\x87\\x08\\x55\\xf9\\x59\\x2f\\xff\\x6c\\x20\\x9a\\xd2\\xf1\\xc2\\x9d\\xd1\\x68\\x55\\x28\\x98\\x97\\x9e\\xcf\\xf8\\xc8\\x11\\x27\\x24\\x8f\\x83\\x10\\x51\\x53\\x00\\x65\\x61\\x29\\xd9\\xb7\\xac\\xbb\\x7e\\xd1\\xe4\\x6b\\xc9\\x8c\\x04\\xd1\\xa3\\x5b\\x18\\x91\\x37\\x38\\xe9\\xdd\\xe4\\xd2\\xb0\\x65\\xf4\\x18\\x42\\x42\\xd8\"},\n{{0x0b,0x7d,0xfa,0xd0,0x5b,0xa6,0x65,0x11,0x1e,0x16,0x81,0xbd,0xc0,0xbc,0x8b,0xa9,0x73,0x76,0x7c,0xb8,0x58,0x77,0x02,0x0a,0x2d,0xbf,0x91,0x83,0x25,0x57,0x1d,0x9f,},{0x95,0x05,0xd9,0xe8,0x6d,0xce,0xf5,0x6c,0x9d,0xb7,0x6f,0x28,0x62,0xb9,0x0e,0x1f,0x27,0x73,0x20,0x2f,0x17,0x50,0x40,0x5e,0x7e,0xe5,0xae,0xd0,0xfc,0x54,0xf8,0xb9,},{0x41,0x5a,0xdb,0xb2,0xf2,0xb9,0x84,0x05,0x77,0xfd,0x18,0x41,0xf9,0xaa,0xe2,0x52,0xaf,0xe8,0xf5,0xa7,0x22,0x36,0x01,0x7d,0x50,0xdb,0x22,0xd2,0x28,0xcd,0xee,0x9f,0x5b,0x3e,0x8f,0xe9,0xa1,0x7a,0x4d,0x4e,0x98,0xb7,0x34,0x13,0x81,0xe8,0xd8,0x62,0x5c,0xdc,0xea,0x95,0x6d,0x25,0x3b,0x74,0xe0,0x2d,0xac,0xb8,0x49,0x20,0xa0,0x09,},\"\\xc4\\x3f\\xd3\\x4b\\xb1\\x42\\x4c\\xca\\x4e\\x4d\\xfb\\xa7\\x5c\\x28\\xbe\\x80\\x18\\x44\\x44\\x6c\\xa0\\x89\\x02\\x08\\x85\\xc7\\x48\\x38\\x25\\x47\\x16\\x4a\\x9d\\x4a\\x7f\\x95\\x70\\xd3\\xd1\\x71\\xad\\x69\\x81\\xab\\x50\\xee\\xee\\x08\\xa4\\xa6\\xc6\\x6d\\x76\\x99\\xd2\\x3e\\xdb\\xe1\\xfa\\xaf\\x44\\x66\\x0c\\x72\\xf4\\x55\\x2d\\x87\\xd2\\x65\\xac\\xe8\\x79\\x28\\x23\\x47\\x4b\\x90\\xa5\\xd7\\xf7\\x40\\x1d\\xeb\\x93\\x77\\x62\\x7f\\x60\\xb0\\x36\\xb3\\x6e\\x04\\x4e\\xb7\\x6b\\xf1\\x32\\xfd\\xdf\\xcc\\x0e\\xf5\\x70\\x4a\\x63\\x3d\\x84\\x5e\\x96\\x2b\\x47\\x51\\x7f\\x0b\\xaa\\x34\\xd3\\xd6\\xe9\\xa8\\xb9\\xf8\\x16\\x8b\\xcd\\xc8\\x4c\\x6d\\x2b\\x30\\xc6\\xf3\\x43\\xe7\\x53\\x57\\xf7\\xf2\\xc0\\x03\\x9b\\xd2\\x54\\xb2\\x44\\xd3\\x6c\\xd6\\x16\\x75\\x58\\x1f\\xb8\\x34\\x57\\x0e\\xd4\\x11\\x3a\\x78\\xe6\\x06\\xf1\\x45\\xa1\\x11\\x99\\x2c\\x2c\\x6b\\x61\\xc4\\x26\\x76\\x28\\xec\\x87\\xcd\\x88\\xc3\\x6a\\x3c\\x84\\x70\\x6e\\x44\\xae\\x96\\xa9\\x6e\\x0c\\x84\\x80\\x31\\x85\\x46\\xd6\\xea\\x6a\\x6d\\xf1\\x8a\\x2b\\x4f\\x19\\xf8\\x36\\x0c\\xfb\\xce\\x4e\\x9d\\x1c\\xf1\\x01\\x1f\\xfe\\xa5\\x63\\x3a\\x66\\x61\\x9a\\xa4\\xa6\\x5c\\xf6\\x9b\\xe4\\x45\\x96\\x17\\x94\\x5e\\x43\\x59\\xa9\\xd4\\x32\\x60\\xca\\x1a\\x20\\xf4\\xed\\x7c\\x1a\\xe5\\xff\\xff\\x3b\\xd9\\x22\\x94\\xea\\x70\\xab\\xba\\xe0\\x38\\x5b\\x09\\x35\\xcd\\x1c\\x0e\\xb5\\x18\\x30\\x29\\xc5\\x85\\xa0\\x29\\x4b\\x79\\x99\\xe3\\x2e\\xf7\\xa2\\x90\\xfc\\xb0\\x95\\x67\\x5d\\xc4\\xf6\\x01\\xe8\\xf2\\xc9\\x6f\\x35\\xb7\\x34\\x9a\\x37\\x05\\x75\\x09\\xf4\\xec\\x70\\xc9\\xf5\\x0f\\x60\\x11\\xf1\\xf5\\xe6\\xb0\\x61\\xc0\\x91\\xd1\\x1c\\x0e\\xd5\\xde\\xc8\\xec\\xe8\\x81\\xaa\\x34\\x05\\x08\\xf6\\x96\\xd9\\xe9\\xcc\\x72\\x98\\xe6\\xbc\\xcd\\x7c\\x21\\x0e\\x2c\\xe0\\xde\\xd8\\x35\\x92\\xa3\\xcf\\xa1\\x3e\\x80\\x78\\xfd\\xb3\\x25\\x8b\\x39\\xf1\\xd1\\x1c\\xdf\\xe0\\x96\\x70\\xc1\\xe6\\x0a\\x39\\x10\\xa4\\xff\\xf5\\x1c\\x6c\\x7f\\x7d\\x66\\x24\\xf4\\xc9\\x3d\\xf8\\x88\\x8c\\x52\\x6f\\x48\\x4f\\x9b\\x13\\xe0\\xa7\\xf6\\x29\\x64\\x78\\x39\\x78\\x68\\x4e\\x29\\x26\\x79\\x80\\x0e\\xd5\\xeb\\x28\\x0e\\x28\\x7c\\x7e\\x63\\x9e\\x85\\xfa\\xa5\\x3f\\xba\\x2f\\xa2\\x04\\x5c\\xe2\\x7d\\x8f\\xb3\\x08\\x36\\x07\\x26\\x55\\x0d\\xf9\\x75\\x2d\\xb3\\x05\\xf8\\xf0\\x66\\x47\\x97\\x0d\\x01\\x46\\x91\\x99\\x9a\\xfa\\x97\\xb6\\x19\\x3f\\xfc\\xc6\\xd5\\x32\\xf4\\xfa\\x69\\xe1\\x33\\xa1\\xd1\\x0f\\x30\\x47\\xfc\\x00\\x38\\x1f\\x49\\x97\\xbb\\x84\\xe5\\xb6\\xcd\\x60\\x28\\xc6\\x21\\x32\\xcf\\xc0\\x24\\xbf\\xeb\\x98\\x03\\x01\\xf2\\x95\\x12\\xbb\\xd1\\x09\\xd0\\x89\\xac\\xe1\\x82\\xcf\\x9c\\x2f\\xfa\\xb1\\xb1\\x7e\\xb0\\x0b\\x6e\\xb4\\x6a\\xe1\\x98\\xda\\x99\\x3f\\x5e\\xfe\\x7c\\x1d\\xc2\\x2d\\x25\\x04\\x7c\\x1e\\xe5\\x24\\x65\\x17\\xe7\\xf5\\x75\\x8f\\x99\\x6a\\xbd\\x83\\xf1\\x3d\\xa2\\x2c\\x13\\xdd\\x20\\x5e\\xe1\\x91\\xb5\\x5a\\xfd\\x48\\x31\\xef\\x07\\x8b\\xb6\\xea\\x07\\x3a\\x62\\x5b\\xc9\\x7c\\x81\\x29\\x61\\x60\\xbb\\xf2\\x55\\x9b\\x27\\x5c\\xc3\\x7c\\xcf\\x01\\xb9\\x1f\\xd8\\x7d\\x4d\\x99\\xa3\\x67\\xaa\\x99\\x78\\xda\\xdd\\x06\\x89\\xf8\\xa6\"},\n{{0x78,0x18,0x8d,0xf8,0xc7,0x54,0x78,0x56,0x21,0xe2,0x7a,0xe5,0x8e,0x10,0x0d,0x50,0x80,0xe1,0x6e,0x0a,0x15,0xe2,0x77,0x05,0x1f,0x95,0xf0,0x80,0x90,0x0e,0xc0,0xd3,},{0xa1,0xbd,0xee,0xe9,0x8b,0x07,0x57,0xba,0x9c,0x2d,0x84,0x09,0xb8,0x74,0x24,0xe6,0x4e,0x42,0xf9,0x93,0x2a,0xcf,0xa9,0xbc,0x71,0xfb,0x3f,0x8c,0xa0,0xe1,0x1d,0x52,},{0xb9,0x41,0x14,0xed,0xa4,0x6c,0xcf,0xc2,0x2a,0x44,0x71,0xa6,0x4d,0x79,0x08,0x92,0xe5,0x9c,0x5d,0x50,0x56,0x18,0xeb,0x0e,0x70,0x13,0x92,0xc7,0x09,0x61,0x3e,0x2d,0x50,0x3a,0x5c,0x2b,0x66,0x60,0x1e,0x63,0x6a,0x3c,0x1c,0x7d,0x49,0xb1,0xac,0x79,0x8d,0x90,0x89,0xb0,0xf9,0xcc,0xd0,0x57,0x9b,0xb9,0x06,0x34,0xd0,0xbd,0x75,0x0e,},\"\\xcf\\x70\\xcc\\xa5\\x7f\\xeb\\x1b\\xee\\xfe\\x98\\x5a\\xd5\\xaf\\x9d\\x43\\x48\\xd3\\xa4\\x6a\\x63\\xde\\x10\\x75\\x38\\x1f\\xb3\\x63\\x9a\\x04\\x4f\\xd6\\xe6\\x09\\x1f\\x5d\\xb9\\xc9\\x4d\\x39\\xbe\\x0f\\x13\\xad\\xe6\\xd9\\xa0\\x74\\xe6\\x7b\\xa7\\x06\\xb3\\xa8\\x80\\x62\\x95\\xf6\\xb6\\x54\\x86\\x57\\x28\\xc5\\x8c\\xa6\\xe9\\x41\\x9d\\x5d\\x04\\x3f\\x21\\x10\\x81\\x4b\\xbf\\x36\\xfc\\x40\\x70\\xe4\\xd9\\x45\\x49\\x65\\xc2\\x51\\x20\\x2c\\xa3\\x95\\xef\\xe3\\xfd\\xbd\\x54\\x4f\\xeb\\x18\\x7e\\x34\\xca\\x3c\\x80\\x79\\x51\\x79\\x55\\x2f\\xce\\x9a\\xa8\\x04\\x43\\x0e\\x5b\\x6c\\x86\\x85\\x34\\x1e\\x91\\xd5\\x88\\x9f\\xbf\\x3f\\x98\\x19\\x04\\x62\\x0f\\xfe\\x70\\x13\\xf5\\x3b\\x93\\x9e\\x17\\x44\\x3d\\x61\\x4e\\x7e\\x6b\\xb5\\x7a\\xd6\\x74\\xf3\\xb4\\xb0\\x01\\x63\\x05\\x26\\xcf\\x73\\x02\\xa7\\xd0\\xaf\\xe7\\xdc\\x24\\xd6\\xda\\xde\\xf6\\xfe\\xba\\x3f\\x96\\x97\\x3a\\xa5\\xb8\\xd6\\x27\\x52\\x62\\xe4\\x30\\xa8\\x2f\\x67\\x86\\x96\\x97\\x1a\\x8b\\x60\\xe3\\x8d\\x3b\\x2b\\xcc\\x17\\x0d\\x5b\\xc2\\x03\\x02\\xa3\\x9c\\x59\\x6d\\x27\\xfe\\xe3\\x9e\\x5d\\xa5\\xb1\\x0e\\xa9\\xf3\\x82\\x29\\x9e\\x19\\x81\\x97\\x17\\xa7\\x18\\xd3\\x7d\\x15\\x5f\\x13\\x92\\x31\\x82\\xb5\\xb7\\xa1\\xc5\\x4c\\xa1\\x09\\xb2\\x2c\\xa8\\xe8\\xb2\\x6c\\xa5\\xca\\x3f\\x3b\\x90\\x62\\x21\\x94\\x61\\xba\\xce\\x97\\xe8\\x90\\xc9\\x4e\\x41\\xca\\x3d\\x84\\x58\\x7f\\xbd\\xf6\\xe2\\x40\\xc3\\x5c\\xca\\xb7\\x1d\\x58\\x47\\x7d\\x28\\x16\\x8e\\x93\\x37\\x26\\x86\\xd4\\x2a\\xad\\x32\\x4a\\x3f\\x16\\xaf\\xe0\\xe9\\xb8\\x9e\\xe2\\x0e\\x48\\x5f\\xe6\\xc8\\x64\\xb5\\x01\\x3b\\xa8\\x83\\x99\\xee\\xaa\\x15\\x98\\x35\\xa8\\xb2\\xbb\\x2f\\x25\\xf5\\x79\\xca\\x3b\\xae\\x67\\x5c\\x63\\xda\\x1b\\x50\\xd9\\x9d\\x4e\\xd9\\x78\\x69\\x2e\\x56\\x00\\x23\\x3f\\x38\\xab\\x7e\\x7a\\x5a\\xe0\\xfb\\xf8\\xc0\\xb6\\x9c\\xc3\\x8b\\xd3\\x0e\\xab\\xd9\\x77\\xef\\xa0\\x5e\\xe2\\xc8\\x35\\x14\\x30\\x2b\\xd4\\x0c\\x4b\\xdc\\xe7\\xa4\\x11\\x0a\\xfb\\xb6\\x57\\x9c\\x62\\x0e\\x97\\xf8\\xcf\\x2e\\x9b\\xab\\x2d\\xcc\\x7c\\x33\\xf1\\x96\\xe5\\x7f\\xe7\\x61\\xa0\\x50\\x12\\x28\\x94\\xb7\\xa7\\x5a\\x92\\x95\\x31\\x99\\x6d\\xda\\xad\\x78\\xde\\x1d\\x4d\\x92\\x4c\\xd9\\x3a\\x61\\xdf\\x22\\x77\\x76\\xbc\\x1c\\x39\\xfb\\xb8\\xde\\x1c\\x44\\x38\\x86\\x8b\\x6a\\x3a\\x2c\\xd9\\x4c\\x07\\xb2\\x9e\\x3f\\x6b\\x23\\xcc\\x7e\\x0b\\x63\\x68\\x90\\x09\\xd9\\xd0\\xba\\xe1\\x60\\x6b\\xaf\\xc7\\xa8\\x08\\xf2\\xd2\\xfa\\x25\\x62\\xb8\\xdc\\x09\\x38\\x42\\xc0\\x1f\\xdb\\x84\\x0d\\xa4\\x86\\x0a\\xce\\xd3\\xfc\\x52\\x5c\\xa3\\x34\\xed\\xcf\\x65\\x94\\x8b\\xc4\\x16\\xf9\\x8c\\x45\\x0f\\x00\\x12\\xa6\\x10\\x7d\\xd7\\xf8\\xed\\xe4\\x0e\\x1c\\x48\\xc9\\xe8\\xa5\\x65\\xa8\\x10\\xb9\\xcf\\xd2\\x03\\x56\\xdb\\x19\\xf1\\xdb\\xde\\x59\\x89\\x21\\x33\\x2e\\x0d\\x81\\x3f\\x0c\\xb8\\x76\\x84\\x37\\x03\\x88\\x77\\x2f\\xf3\\xcb\\xfc\\xbf\\xa2\\x99\\xc1\\x98\\xc9\\x7b\\xfb\\x96\\x17\\x76\\x8a\\x05\\x16\\x1f\\x41\\x69\\xff\\x5d\\xe5\\xd9\\xf4\\x00\\x62\\x09\\x0f\\xb8\\x82\\x98\\x4d\\x9d\\x5c\\x7a\\xa7\\x8e\\xdd\\xcb\\x96\\x34\\xe4\\x66\\xb8\\x85\\x3d\\x51\\x2b\\x4a\\x54\\x6d\\x74\\x23\"},\n{{0x73,0xcb,0x02,0xb0,0xbf,0x26,0xa0,0x15,0xda,0x1d,0xc3,0x01,0xfc,0x12,0x5d,0x7e,0x6c,0x30,0xb6,0x3c,0x9e,0x6e,0xee,0x9e,0x06,0x5d,0x4e,0x84,0x71,0x32,0xc3,0x25,},{0xac,0x9e,0x3d,0xd2,0xce,0xb9,0xb2,0x3e,0x74,0x8c,0x04,0xba,0x75,0x77,0xfe,0xdf,0x7c,0xea,0xb9,0xed,0x87,0xdc,0x43,0x0b,0x5f,0xe2,0x2e,0xac,0x50,0x95,0x0e,0x0d,},{0x1a,0x5d,0xd4,0xc8,0x91,0xc8,0xe1,0x32,0x57,0x01,0x87,0xc2,0x3b,0x9a,0x1e,0x4b,0x26,0xf0,0x54,0x60,0xe8,0x75,0x67,0x38,0x19,0x39,0x6d,0xf5,0x61,0xc8,0xaf,0x0e,0x48,0x33,0x3b,0x62,0xc7,0x77,0x29,0xd4,0x9f,0xc4,0x0e,0x17,0x4a,0x7f,0x3c,0x21,0xf8,0x5e,0xf4,0xd3,0x39,0xce,0xb8,0x0b,0xd2,0xe0,0x37,0xd8,0x03,0xaf,0x56,0x0e,},\"\\x0a\\x2b\\x61\\xba\\x35\\xe9\\x6e\\x58\\x19\\xb8\\x8b\\xfd\\xb2\\x8b\\x7c\\xe0\\x2e\\x64\\xae\\x9c\\xf5\\x72\\xb2\\x1f\\x13\\x55\\x2c\\x0d\\xb1\\x0f\\x39\\x60\\xd4\\x4b\\xa3\\x47\\x2f\\x43\\xab\\xc4\\xe6\\x29\\x5b\\xdf\\x79\\x0b\\xd9\\x33\\xba\\x39\\x75\\xfd\\x44\\x65\\xfa\\x3e\\x2f\\xe2\\xdb\\x02\\xb6\\x37\\x77\\x52\\x22\\x3d\\xec\\x98\\xfc\\xb2\\x40\\x4f\\x3a\\xba\\x43\\x26\\x5a\\x6f\\xa7\\x97\\x6b\\x6c\\x6c\\xb6\\x86\\x8b\\x88\\x1b\\xd6\\xf3\\xd2\\x5c\\xd9\\xd6\\xf7\\x0e\\x51\\x2f\\x80\\x89\\xc8\\xef\\x26\\xfd\\x58\\x24\\x50\\x53\\x77\\x9e\\x59\\xc4\\x72\\x5a\\xef\\xa2\\x64\\x67\\xc9\\xf5\\x00\\xe1\\x7f\\x3e\\x15\\x73\\xf1\\xa8\\x55\\xe9\\xb8\\xb2\\x19\\x25\\xea\\x05\\x27\\xf3\\xce\\x8d\\x88\\xfb\\x54\\xa4\\x7a\\xbe\\xed\\x14\\xf3\\x99\\xcc\\x2d\\x9f\\x1f\\xe5\\x46\\x65\\xfa\\xe0\\xa8\\xf0\\xc6\\x88\\x72\\xa6\\x00\\x04\\x6d\\x1d\\xc3\\x63\\x97\\xd3\\x10\\xce\\x39\\x3f\\xce\\xaf\\xe8\\x7c\\x17\\xeb\\xe1\\x22\\xfd\\xb5\\x43\\xae\\xa7\\x10\\x85\\xba\\xec\\x98\\x27\\x3f\\x41\\xac\\x96\\x69\\x8c\\x15\\x0c\\xf9\\x11\\xd0\\xe5\\xde\\x23\\x92\\xd8\\x48\\x41\\xd0\\x12\\x76\\xae\\xfb\\xfe\\x99\\x95\\xe1\\x0a\\x6d\\x46\\xef\\xdc\\x26\\x78\\xd4\\x56\\xc9\\xf3\\x6b\\x2e\\x10\\x11\\x4d\\x11\\x87\\xe7\\xac\\xa7\\x39\\x03\\x7e\\xa5\\x1f\\x85\\xfd\\x62\\xa2\\x94\\x29\\xba\\x52\\x9c\\xdd\\x8a\\xd9\\x13\\x47\\x49\\x74\\x87\\xed\\x7e\\x87\\x09\\xd4\\x77\\x6e\\xf6\\x86\\x70\\x79\\x2d\\x06\\x15\\xbc\\x96\\xda\\x51\\x78\\xd6\\x06\\xdb\\x63\\xe4\\xe5\\xcb\\x17\\x2a\\xcf\\xbc\\x1c\\xbe\\x20\\x26\\x93\\x50\\xf1\\xb6\\x05\\xf3\\x5d\\xcd\\x47\\x91\\x35\\xbd\\x30\\xfb\\x4b\\x5a\\x39\\x17\\x6c\\xff\\x74\\x4d\\xdb\\xb3\\x06\\xc9\\xe7\\xb4\\x16\\x7d\\xe0\\x37\\x9a\\x61\\x66\\xbe\\x5a\\xaa\\x74\\xd7\\x15\\x7f\\xac\\x95\\x7d\\x88\\xdc\\x57\\x59\\x7c\\xfe\\xf2\\x3e\\xb5\\x10\\x8b\\x3c\\xe5\\x3f\\xc6\\x32\\xda\\xd1\\xb9\\x72\\xa2\\x9d\\xa5\\xde\\x32\\xd2\\x0d\\x8e\\xce\\xde\\x67\\xff\\x00\\xda\\x4a\\x08\\xa0\\xcc\\x1a\\x98\\xbe\\xe7\\xa9\\x4e\\x3c\\xb3\\x2f\\xee\\x94\\xae\\x25\\xa4\\x13\\x54\\x47\\x02\\xc3\\x7b\\x3e\\x17\\x78\\xa0\\x70\\xcd\\xd4\\x84\\x0b\\xd3\\x9f\\x5f\\x45\\x79\\x51\\x92\\xa8\\x67\\x86\\x38\\x76\\xed\\x0d\\x13\\x0d\\x46\\xe2\\x91\\x39\\x35\\x08\\x28\\x09\\xf7\\xe1\\x5a\\x49\\x67\\x10\\xf2\\x55\\xd7\\x83\\xda\\x3d\\x01\\x6a\\x65\\x4c\\x15\\xff\\x5d\\xf9\\x07\\xa3\\xcc\\xaf\\x37\\xcf\\xe1\\x1c\\x8c\\x3d\\x49\\x65\\x07\\xd6\\x76\\x0c\\x05\\x38\\x20\\xf0\\xf5\\x94\\xc3\\xd0\\x1c\\xa2\\x69\\x17\\x8a\\xca\\x52\\x5a\\xb2\\x82\\x1e\\xf5\\x5f\\x92\\xd8\\x5f\\xe6\\x85\\xea\\x34\\x47\\x2e\\xd1\\x39\\x81\\x71\\x06\\x4d\\x74\\xa4\\x22\\xec\\x91\\xd1\\xa6\\x70\\x61\\x8f\\xc9\\xf3\\x24\\x24\\xbc\\xb1\\x1a\\x77\\xf6\\xfb\\x4e\\x2f\\xef\\xd2\\xc4\\xe8\\xa7\\x3c\\x45\\x28\\x86\\xe9\\x31\\x66\\x4d\\x1a\\x83\\xbd\\x92\\x73\\x29\\xc0\\x4d\\x25\\x0b\\x83\\x52\\x1d\\x7d\\xc1\\x3c\\x91\\xce\\xe1\\xec\\x05\\x0e\\x11\\xd4\\x2a\\x4b\\x0c\\x8c\\x06\\x9b\\x61\\xc4\\x42\\x2d\\x3a\\x49\\xc0\\x7e\\xff\\x29\\x05\\xb7\\xbc\\x7f\\x4a\\x5b\\x43\\xe6\\xb0\\xd6\\x1d\\xfb\\x50\\xe4\\xee\\xa2\\xe9\\x0d\\x29\\x8a\\x78\\x1d\\x05\"},\n{{0xdb,0x05,0x60,0x63,0x56,0xba,0xcf,0x23,0xaf,0xf6,0xcd,0xdd,0x42,0xb2,0xc6,0x94,0x35,0x2b,0x5a,0x0f,0xec,0x56,0x0a,0xff,0x54,0xd9,0xbd,0x97,0x10,0xef,0xe0,0x6a,},{0x32,0xa5,0xc7,0xcc,0x49,0x09,0x78,0x6b,0x48,0xa5,0x3f,0x31,0x09,0x3f,0x54,0x9a,0x9f,0x17,0x30,0xca,0x66,0x90,0x38,0x3f,0xdb,0x5f,0x14,0xc2,0x66,0x6e,0x31,0x32,},{0x53,0x09,0x9b,0x76,0x6a,0xdf,0x29,0x44,0xb6,0x82,0x13,0x74,0x84,0x2c,0x25,0xd6,0xe6,0x7b,0x0c,0xcd,0xe9,0xc6,0x37,0xfe,0xcb,0x11,0xb8,0xb8,0xb0,0x72,0x03,0xe3,0x07,0x57,0x32,0x80,0x5f,0x4f,0x14,0xae,0xae,0x73,0xbd,0x62,0xe3,0x08,0xb5,0x88,0x7d,0x68,0x9e,0x29,0xcd,0x89,0xb2,0x3a,0x47,0x69,0x43,0x11,0x07,0x17,0xb1,0x00,},\"\\x1b\\xc9\\xc2\\x83\\x3f\\x37\\xcd\\xf1\\x35\\x6f\\xad\\x16\\x67\\x68\\x64\\x27\\x17\\x70\\x1b\\x38\\xa0\\xab\\x0c\\x2f\\x58\\x1a\\x26\\xd2\\x22\\xd6\\x5c\\xce\\xe4\\xbf\\x0f\\x6d\\xfe\\x64\\xd3\\x3b\\xc0\\x23\\x9f\\x71\\xd4\\xb8\\x26\\x44\\xb0\\x16\\x25\\xa1\\xa3\\x5f\\xe7\\x98\\x67\\x62\\x39\\xe0\\xca\\x77\\x9e\\xf2\\x31\\x38\\xee\\xbe\\x3b\\xd1\\x9d\\xe2\\xd8\\xf7\\xc1\\x5b\\x4d\\x96\\xf1\\x3e\\x51\\xbc\\x63\\x3b\\xea\\x5d\\x61\\x22\\x5b\\xca\\x1d\\x63\\x39\\xba\\x53\\xe8\\x1f\\x7d\\x8d\\x24\\xc5\\xd6\\x0f\\x04\\xce\\x8c\\x72\\x67\\x61\\xd2\\x64\\x58\\x4f\\x1c\\x7e\\x5b\\x5b\\x69\\x92\\x45\\x6c\\x1c\\x76\\x89\\x2d\\x63\\x52\\x11\\x1e\\x3b\\x92\\x6f\\xe0\\x25\\xc0\\x00\\x9d\\xb6\\x7c\\xe0\\xdd\\xc7\\xf7\\x64\\xe0\\xc9\\xad\\xb0\\x48\\x1b\\xc2\\x79\\x54\\x84\\xd9\\x63\\x73\\xa9\\x62\\xa7\\xb7\\x4a\\x55\\x96\\xf5\\x27\\xa7\\x34\\x76\\x49\\x8c\\x78\\x23\\xdf\\xfa\\x6c\\x85\\x43\\xb0\\x79\\x71\\xb5\\xaa\\x27\\x1c\\x12\\x25\\x5e\\x09\\x18\\xdd\\x73\\xf5\\x0c\\x30\\xc9\\xa8\\x5a\\xc7\\xc2\\x99\\x3d\\xd6\\x55\\xda\\x59\\x43\\x12\\x63\\xf5\\x91\\x4b\\xe7\\x06\\x37\\x4b\\xe9\\xc0\\x75\\x85\\xc2\\x87\\x13\\x28\\xb4\\xdb\\xc3\\x94\\x01\\xc9\\x57\\x07\\x38\\x7e\\x6e\\x06\\x9d\\x44\\xb9\\xd8\\xfb\\x05\\x8f\\x22\\xe3\\x15\\xaa\\x0d\\x5b\\x4f\\x11\\x68\\xfc\\x10\\x79\\x62\\xb0\\x64\\xf7\\xd8\\x45\\xaf\\x8e\\x21\\x31\\x95\\x1d\\x1c\\xd6\\x6d\\xc8\\x4d\\xba\\x46\\xd2\\x00\\xaf\\x4f\\x4c\\x5f\\x51\\x22\\x1b\\xc9\\xb2\\x19\\x69\\x42\\xf8\\xb4\\x0e\\x7d\\xdb\\xc9\\xae\\xb3\\xd9\\xaf\\xc0\\x71\\x25\\x95\\x13\\x13\\x5a\\x01\\x6f\\x28\\x66\\x09\\x9f\\xa1\\x0f\\x4c\\x3b\\x73\\x50\\x0b\\xd5\\x5c\\x47\\x7b\\x24\\x15\\xe1\\x0a\\x27\\x9b\\xa1\\x10\\xd2\\x94\\xf3\\xdd\\x18\\x42\\x17\\x7d\\x0b\\x4b\\xfb\\x17\\x34\\xdd\\x0c\\xcb\\x7e\\x39\\x4b\\x43\\xd1\\x6f\\x0b\\x75\\x48\\x36\\x22\\x80\\xf4\\x34\\x76\\x4d\\xa5\\x7f\\x19\\xed\\x3e\\x30\\x2e\\x53\\x70\\xfb\\xa4\\x96\\x64\\xc2\\x30\\x05\\x74\\x33\\xcc\\x64\\x7e\\xb2\\x7c\\xd2\\xc7\\xc1\\x8c\\x7d\\x66\\x90\\x6f\\x08\\x82\\x46\\xc2\\x2f\\x7f\\x79\\x03\\x99\\xde\\xb4\\xc5\\xfb\\xb9\\x06\\x18\\x17\\x69\\xbe\\xf5\\xaf\\xbe\\x8a\\xd1\\xf5\\xde\\x55\\xbe\\x58\\x8f\\x52\\xf6\\x9c\\x54\\xd4\\xef\\x5a\\x96\\x9a\\x0d\\x99\\x5c\\x27\\x40\\x7b\\x23\\xed\\xd9\\x24\\x3d\\x24\\x99\\xfd\\xf2\\x94\\x73\\xb1\\x95\\x5c\\x84\\xb3\\xf7\\xcb\\xdc\\xd8\\x1b\\x76\\x56\\xec\\x0b\\xe9\\xe0\\xfd\\xb3\\x38\\x13\\x56\\x96\\x0f\\xd0\\xca\\x70\\xe7\\xea\\x74\\xb6\\x46\\xfc\\xd3\\x13\\x94\\x8e\\x6d\\xdb\\x47\\x60\\x94\\x76\\xfb\\x6f\\xa4\\x84\\x2f\\xa7\\x88\\xa0\\xd5\\x7b\\xe3\\xb0\\xa6\\xca\\x18\\x19\\xf7\\x16\\x14\\x76\\x00\\x43\\xec\\x49\\x04\\x88\\x19\\x39\\x96\\x8a\\x43\\xb5\\xd1\\x92\\x8f\\x84\\xa5\\x91\\x90\\x93\\xbc\\x38\\x41\\x58\\x81\\x71\\xa9\\xcd\\x39\\x0f\\x8f\\xcd\\x61\\x53\\x8b\\x54\\xe6\\xef\\x99\\x77\\x05\\x73\\xe1\\x98\\x6d\\x15\\x0f\\xa9\\x6b\\x7a\\x07\\xe1\\xd1\\x94\\xaf\\x1c\\x0b\\x40\\x55\\x00\\xac\\xb3\\xd1\\x0e\\x3b\\xe6\\x47\\xc8\\x98\\x62\\x00\\x6f\\xa7\\x85\\x83\\xe7\\x61\\x66\\x84\\x29\\x20\\x16\\x0e\\xb5\\x7f\\x0b\\x2a\\x6e\\xdf\\x19\\x3c\\x44\\xc5\\xee\\xac\\xf4\"},\n{{0x1d,0x13,0x9b,0x1a,0xd0,0xc3,0xaf,0x1d,0x5b,0x8b,0xe3,0x1a,0x4e,0xcb,0x87,0x8e,0xc6,0x67,0x73,0x6f,0x7d,0x4f,0xa8,0x36,0x3a,0x98,0x09,0xb6,0xd1,0xda,0xbf,0xe3,},{0x24,0x28,0xcf,0x1d,0xeb,0x20,0xfb,0xad,0x1f,0xdc,0x66,0x5d,0x82,0x5b,0x61,0x41,0x22,0xdf,0x10,0x1f,0xbe,0x14,0x73,0xa7,0x99,0x96,0xba,0xf6,0x96,0x74,0x34,0xb8,},{0xdd,0x64,0x5e,0x51,0xed,0xab,0x04,0xdb,0x31,0xe3,0x31,0x72,0xcf,0x27,0xac,0xee,0xed,0xcc,0x04,0x63,0xa9,0x63,0x91,0x4a,0x0e,0xac,0x8e,0xfd,0x5a,0x34,0x34,0x1f,0x6b,0xbc,0x52,0xe0,0x42,0xba,0xaf,0x3b,0x40,0xc8,0x9a,0x57,0xef,0xb6,0x45,0x74,0xe6,0x96,0x77,0xfc,0xe9,0x55,0x24,0x6c,0x1f,0xc0,0xf2,0x69,0xef,0x81,0x90,0x00,},\"\\x8d\\xf2\\xd2\\xdf\\x9b\\x98\\x4d\\xa8\\x44\\x33\\x48\\x6a\\x81\\x3c\\x98\\xc5\\x97\\x3a\\x69\\x6c\\x11\\x62\\x46\\x10\\xb2\\x3a\\xa4\\x38\\x08\\x34\\x64\\xf6\\x5a\\x76\\x79\\x66\\x15\\xb7\\x28\\xc2\\xed\\x4e\\x60\\x71\\x58\\x55\\xaf\\xc2\\x39\\x45\\x0d\\x5b\\xc0\\x91\\x1f\\xf2\\xa8\\x52\\x30\\x20\\x5c\\x6f\\x13\\x49\\xba\\x5b\\xd8\\x7e\\xa6\\xf7\\x20\\xdb\\x6b\\xa7\\x0b\\x77\\x42\\x17\\x88\\xe0\\xc6\\x54\\xae\\xbc\\x23\\x07\\x4c\\x5f\\x41\\xd2\\x29\\x07\\x72\\x14\\x0d\\x98\\x1a\\x6b\\xc4\\xfe\\x70\\x9a\\x26\\x8e\\x64\\x17\\x2a\\x02\\x6b\\x27\\x01\\x18\\xb4\\xdb\\x51\\xab\\x6a\\x13\\xc9\\x9b\\x06\\x31\\x86\\xd8\\xd5\\xb3\\x38\\xe9\\x77\\xed\\xdc\\x6b\\xb5\\xfd\\x7d\\xd5\\x7d\\x98\\x45\\xa3\\xc3\\xfe\\x76\\x17\\x7d\\x57\\x38\\xdc\\xa1\\x6a\\x8f\\x91\\x02\\x85\\x75\\x00\\x17\\x4f\\x23\\xff\\x4c\\x3b\\xf3\\xc8\\x53\\x6f\\x11\\x58\\x0e\\xf8\\x51\\x4a\\x40\\x9f\\x5b\\xbc\\x9c\\x02\\x96\\xf1\\x2e\\x34\\x78\\xd4\\x08\\x7f\\x95\\xef\\xaa\\x6c\\x63\\x60\\x71\\xd2\\x11\\x57\\xbf\\x11\\x77\\x4b\\xbf\\xe7\\x69\\x33\\x06\\xca\\x72\\x13\\xda\\x47\\x13\\xeb\\xaa\\xab\\x35\\x54\\xed\\xf0\\x80\\x11\\xa5\\xff\\x73\\xda\\x12\\x03\\x75\\xae\\xd1\\x96\\x28\\x67\\x0f\\x28\\xab\\x24\\xb6\\xf5\\xd5\\xa1\\xd5\\x70\\x48\\x0f\\x65\\xd3\\xc1\\x52\\xbf\\xf1\\xb4\\x7b\\xf0\\x66\\x69\\x29\\xcb\\x7c\\x99\\xd9\\x03\\x3f\\xaa\\xe8\\x53\\x4f\\xc3\\x5d\\xa7\\x30\\xb8\\x11\\xeb\\xcc\\x25\\xae\\x10\\xa1\\x95\\xaa\\xb1\\x2c\\x32\\x6a\\xa4\\x5b\\xf8\\x05\\xc6\\x2d\\xd4\\xcd\\x5f\\x86\\x86\\x23\\xc0\\x4a\\x8e\\x1c\\x6a\\xa7\\x2f\\x1e\\xa4\\x40\\x0c\\x60\\x86\\x7d\\xff\\x62\\x2f\\x31\\x64\\x34\\xf1\\xec\\x89\\x50\\x3c\\x6f\\x9f\\x65\\xc1\\x37\\xb4\\x94\\x4c\\xbc\\xb3\\x5f\\x08\\x6c\\x74\\xcc\\xea\\xfa\\x22\\x42\\xac\\xca\\x6f\\xfe\\x61\\x1c\\x4b\\x55\\x87\\xf5\\xb7\\x5f\\xfa\\xd3\\x49\\xf0\\x0b\\xf9\\x6e\\x4a\\x58\\x0a\\x87\\x5b\\x92\\x65\\x40\\x69\\xb6\\x2e\\xea\\xc0\\xbf\\x78\\xe5\\xae\\xdd\\x71\\x86\\x9e\\xe0\\x5b\\x9a\\x94\\xe1\\xc9\\x8e\\x35\\xa9\\x78\\x00\\xa4\\xa2\\x12\\x20\\xb0\\x39\\xcd\\x5e\\xbb\\xb7\\x56\\xd4\\x0b\\x40\\x42\\xe2\\xc8\\x4a\\x2a\\xe9\\x81\\x82\\x51\\x1d\\xae\\x8e\\xd3\\xb8\\x9f\\x4f\\xa0\\x0f\\xb8\\xed\\x94\\x63\\x16\\x45\\x97\\x10\\x05\\x2a\\xd4\\xc0\\x2f\\x63\\xdf\\x05\\xd3\\xbb\\x1a\\xce\\x33\\x67\\x21\\x51\\xbd\\xf5\\xda\\xb4\\x6c\\x7b\\x58\\x3d\\xb3\\x73\\x89\\x9d\\x4f\\x03\\x5b\\x6c\\x11\\x12\\x58\\xb4\\xe5\\xa9\\xe7\\x07\\xa1\\x1d\\x21\\x5e\\x44\\xe6\\x8e\\xf1\\xa6\\xf0\\x53\\x80\\x9a\\xa5\\x1b\\xd9\\x02\\xe1\\x3c\\xa9\\x9c\\x1b\\x1c\\xec\\xc8\\x3b\\x9c\\x23\\x5c\\x71\\x0e\\x79\\x7d\\x2b\\x1a\\x24\\x9b\\x2e\\xa0\\x79\\xb5\\xc1\\x67\\x4e\\xd7\\x16\\x9f\\x1b\\x6e\\x67\\xf1\\xac\\x77\\xf8\\x6b\\x74\\x32\\x98\\x96\\x93\\x35\\xa7\\x72\\x44\\x0f\\x7f\\xbf\\xa7\\x25\\x13\\x50\\x0d\\x84\\x16\\x61\\x14\\xa8\\xfd\\x54\\x13\\x94\\x64\\xd4\\x2b\\x99\\x55\\x30\\xd3\\x23\\x70\\xb6\\x9b\\xff\\xc7\\x58\\x9d\\x6d\\xcc\\x97\\xe0\\xbf\\x17\\x85\\x6c\\xc3\\xbf\\x41\\x64\\xdb\\xec\\xcc\\x8a\\x88\\x1d\\x41\\x4d\\x6a\\x62\\x02\\x92\\x76\\xc5\\xf8\\x13\\x7c\\x0b\\x3c\\x68\\xbc\\x8f\\x4b\\xd4\\xe7\\xcf\\xf6\\x5e\\xf2\"},\n{{0x4d,0x22,0xe3,0x31,0xe0,0xcf,0x6f,0x6a,0x27,0x2d,0xb4,0xd2,0x06,0x87,0xff,0xb0,0x59,0xf1,0x22,0x5d,0x81,0xe4,0x11,0x23,0xb8,0xc8,0x9b,0x07,0x4d,0xe7,0x6a,0x3b,},{0xb1,0xe4,0xcf,0xae,0xad,0xd6,0x7b,0x12,0xd7,0xb9,0xdb,0xfc,0x0f,0x88,0xed,0xd0,0x37,0x3f,0x9a,0x88,0xc7,0xfa,0x33,0xfb,0x7f,0x2b,0x1e,0x47,0x5e,0xcc,0xb6,0x1b,},{0xc3,0x66,0xb8,0x02,0xf6,0x82,0xfc,0xd7,0x05,0x25,0x26,0x4f,0xb1,0xa3,0xcb,0xcd,0x0e,0xe3,0x5e,0xcf,0xf5,0x97,0x7c,0x2a,0x55,0x4d,0xa9,0x39,0x22,0x9f,0x17,0x81,0x9a,0x96,0x1e,0xa7,0x4c,0x3d,0x7a,0x78,0x81,0xac,0x5c,0x1f,0xa1,0x6b,0xf9,0x84,0xd9,0x45,0x6a,0x13,0x88,0xd3,0x46,0x3c,0x44,0x94,0x42,0x9b,0x1d,0xc4,0x54,0x02,},\"\\x9c\\x8e\\x3f\\x5b\\x4d\\x70\\x40\\x30\\xe1\\xba\\x71\\xf0\\x2e\\xfc\\x4b\\x87\\xd6\\xff\\xfb\\x55\\xbc\\x3d\\x8d\\x03\\x81\\x8f\\x91\\x56\\x24\\xfc\\xf7\\x01\\xc5\\x4a\\xdf\\xaf\\xa2\\xb6\\x94\\xb8\\x77\\x51\\xcb\\x9f\\x69\\x91\\x8c\\x0f\\x05\\x0f\\x4c\\x10\\x5d\\x5c\\xcb\\x40\\x10\\x0b\\x28\\xdf\\xd4\\xf4\\x11\\xd5\\x91\\xc1\\x20\\x19\\x17\\x6a\\xc2\\x01\\x6b\\xfb\\xfd\\xf0\\xdd\\xf1\\x1d\\xb8\\xa7\\xe3\\x9a\\xa7\\xb9\\xe2\\x16\\xf6\\x67\\xc0\\xa1\\x5f\\xb9\\x77\\xea\\xa9\\xba\\x3b\\xc4\\x55\\xcc\\x58\\x94\\x5f\\x3e\\x94\\x4b\\x8a\\xc2\\xfb\\xf4\\xd2\\x4f\\xe7\\xe1\\xe6\\x19\\xcd\\xbe\\xee\\x3e\\x5e\\x12\\xa9\\xa5\\x27\\xd2\\x8f\\x5f\\xd7\\xcf\\xd9\\x22\\x0f\\x13\\x08\\xd8\\x97\\xb6\\xd4\\x31\\x4a\\x5a\\x01\\x87\\x86\\x4a\\x2d\\x62\\x1c\\xf1\\xb2\\x84\\x42\\x61\\x24\\x7b\\xf5\\x20\\xba\\xfa\\x9b\\xf2\\x26\\xe1\\x15\\x68\\x1e\\xcd\\x77\\x42\\x79\\x80\\xcd\\x12\\xb0\\x8c\\x35\\x9c\\xec\\xd1\\xde\\x3f\\x55\\x45\\xf8\\x07\\xf8\\x1e\\xd7\\x63\\x02\\xff\\xd6\\x47\\x7f\\x89\\xb9\\x58\\xcd\\xf1\\x29\\x54\\xcf\\x70\\xc1\\x42\\x53\\x29\\x93\\x83\\x16\\x47\\xea\\xca\\xb0\\xb4\\x80\\x7b\\xfd\\xad\\xb4\\x38\\x9d\\x7d\\xff\\x2c\\x4e\\xf0\\xef\\x5a\\x5c\\x61\\xd0\\xdf\\x76\\x2e\\x2e\\x90\\x80\\xa7\\x18\\x1c\\xec\\xd0\\x6a\\x53\\x19\\x9f\\x0d\\xfe\\xf7\\x02\\x62\\x7a\\xde\\xcf\\x5f\\xcd\\x9b\\x3e\\x68\\xc7\\x23\\x33\\x16\\x17\\x27\\xf8\\x71\\xc7\\xd1\\xc4\\x30\\x51\\xff\\x1c\\x92\\x1f\\xd5\\x3b\\x64\\x22\\x38\\xb9\\x78\\x80\\xd6\\x4e\\x25\\xfa\\xc5\\x12\\xab\\x95\\x4b\\xed\\xbc\\xa5\\x40\\xf5\\xb2\\x00\\x91\\xec\\x72\\xe6\\x7f\\x88\\x77\\x0a\\xfc\\x32\\xf2\\x12\\x5c\\xa0\\xda\\x4f\\xe8\\x7b\\x56\\xaa\\xc9\\x17\\x7f\\x1f\\x4f\\x67\\xc8\\x51\\x72\\x5c\\x5e\\x8a\\xfe\\x64\\xf6\\x64\\x79\\x98\\x33\\xfd\\x79\\x10\\x0b\\x77\\xea\\xd2\\x58\\x38\\x87\\x9f\\xff\\x47\\x47\\xaa\\x0d\\x56\\x72\\xec\\x0a\\x94\\x34\\x81\\x34\\xbd\\xbd\\x4b\\xb3\\x9b\\x0c\\x67\\xa0\\xcd\\x30\\x60\\x2e\\xdf\\x4f\\xec\\x6f\\x7a\\xf0\\xcc\\x2b\\xda\\xe1\\x26\\xce\\xa8\\x42\\xdf\\xaa\\x43\\x91\\xdc\\x5d\\xde\\xa9\\x38\\xe1\\x79\\x21\\x68\\x24\\x0c\\x2d\\x8b\\x25\\x35\\x2f\\x9f\\x3a\\x64\\x42\\x35\\xce\\x36\\xfe\\xfe\\xb6\\x99\\x2a\\xd8\\x8e\\x28\\x7a\\xd2\\xd8\\x5b\\xd8\\x50\\x39\\x6f\\xc2\\xe5\\x17\\xa1\\x52\\x09\\xf5\\x92\\x0a\\xc9\\x8c\\x53\\x2b\\x1f\\x4d\\x86\\x9b\\xeb\\x08\\xbb\\x03\\xcf\\x7c\\x91\\xaf\\x3f\\xfc\\xed\\x68\\xd5\\xfb\\xfe\\xf8\\x6f\\xf9\\x4e\\xce\\x6e\\x2e\\xad\\x34\\x84\\xce\\x08\\x0d\\xb1\\x7b\\xbe\\x40\\xf1\\xdb\\x43\\x2e\\xc1\\x65\\x0e\\xd2\\x4f\\xdd\\x25\\x0f\\x33\\x45\\x74\\x5c\\x9b\\x7b\\x91\\x98\\xc9\\x10\\x9a\\x37\\x26\\x1f\\xc5\\xec\\xbb\\xb1\\x2f\\x83\\xa0\\xe1\\x22\\x0a\\x18\\x67\\xd4\\x5f\\xdd\\xfe\\xa8\\x1d\\xcf\\x75\\xf4\\xec\\x7f\\xdb\\x52\\x50\\xe5\\x77\\x54\\xd6\\xde\\xa2\\x70\\xb6\\x28\\xa7\\x95\\x30\\xec\\x28\\xb6\\x19\\xbc\\xa9\\x49\\x3e\\x63\\x05\\xcf\\xc4\\x41\\x4c\\x1c\\x1d\\xe3\\x38\\x9e\\x89\\x01\\x97\\xc8\\x5f\\x28\\x40\\x4f\\x3f\\xa9\\x6a\\x1e\\x2f\\xd9\\x20\\x6b\\x47\\x2e\\x8a\\x0a\\x0d\\x32\\xaf\\x55\\x60\\x6b\\xb0\\x83\\xf7\\x6a\\x19\\xb8\\xea\\xe3\\x47\\x9a\\xe5\\x1d\\x98\\xa9\\x9a\\x62\"},\n{{0xa5,0x22,0x8f,0xf9,0xbb,0xb6,0xf2,0x32,0x32,0x7e,0xb8,0xd8,0x79,0xd7,0xf8,0xb2,0x77,0xca,0x72,0xba,0xe1,0xf9,0xa9,0xd0,0xe2,0x60,0xdd,0x90,0x57,0x1d,0xb4,0xf9,},{0xd8,0x2f,0x6a,0x69,0x74,0xf5,0x1c,0x88,0x08,0xd9,0xd6,0x17,0xf4,0xce,0xc2,0xd8,0xa3,0x7e,0xb1,0x1a,0x14,0x23,0x7c,0x9a,0xb9,0xcf,0x11,0xeb,0xc8,0x0f,0xf6,0xc0,},{0x97,0x65,0x0f,0xae,0x3f,0x59,0xca,0x76,0x47,0x7f,0x25,0x47,0x16,0x77,0x49,0xc5,0x83,0x02,0x48,0x88,0x32,0x25,0xe3,0x54,0xff,0x46,0xc7,0xe3,0x81,0x96,0x52,0x20,0xd9,0xbe,0xf2,0xc2,0x05,0x7c,0x7d,0x19,0x90,0xf0,0x8b,0xca,0x4c,0xfd,0xe8,0x77,0xff,0xf2,0xb4,0xaa,0x81,0x3d,0x9c,0x4b,0x84,0xfb,0x79,0xec,0xed,0x81,0xef,0x05,},\"\\x1d\\xf7\\xa6\\x83\\x5e\\x33\\x10\\x98\\x3e\\xe7\\xec\\x73\\x11\\x25\\xf5\\xb5\\xcf\\x11\\x7a\\xf0\\xe3\\x6b\\x36\\x85\\xbf\\x54\\xac\\xe1\\xc4\\x8c\\x46\\x30\\x05\\x60\\xa4\\x5e\\x9f\\x9b\\xdd\\x96\\xa0\\xbc\\x4d\\x14\\xe8\\x9d\\x4b\\x57\\x21\\xa2\\xca\\xff\\x66\\x18\\xb1\\x82\\xed\\xb1\\x20\\x2f\\x3d\\x0c\\x5d\\x11\\x8d\\x09\\xb6\\x18\\x12\\xc0\\x10\\xe8\\xb1\\x96\\x34\\x45\\x41\\xcd\\xee\\xfe\\x5f\\xd1\\xf9\\x61\\xc5\\xdd\\x75\\x45\\x95\\x55\\xab\\x72\\xef\\x2a\\xa7\\xa7\\x59\\xa4\\xf3\\xad\\x3c\\xae\\xd4\\x4f\\x4c\\x9a\\x8e\\xf9\\x5b\\x76\\xed\\x9a\\x99\\xb5\\x5d\\xd8\\xa2\\x60\\xba\\x08\\x01\\x0d\\x29\\xff\\x81\\x9f\\x2a\\xf3\\x51\\x3c\\x1a\\x64\\x0d\\x6c\\xcd\\xde\\x49\\x99\\x20\\x5f\\x9f\\xca\\x88\\x57\\x11\\x5d\\x8b\\x5d\\xb9\\xf7\\x0a\\x62\\xe5\\xee\\xa0\\xd5\\xaf\\x06\\x5d\\xe1\\x53\\xf2\\xed\\xed\\xee\\xc6\\x3e\\x15\\xc8\\xe0\\x9a\\x92\\x58\\x21\\x82\\xac\\x07\\xd8\\x1c\\xa6\\x3c\\xa4\\xaa\\x59\\x7a\\x22\\x20\\xe7\\x04\\x81\\x95\\x7d\\x41\\x52\\x64\\xe2\\x58\\xbc\\x26\\x3e\\x1c\\xc3\\x6e\\x53\\x47\\x8a\\xac\\x5c\\xa0\\x16\\x94\\xcc\\xb0\\x9b\\x4f\\xfd\\x84\\x73\\x99\\x72\\xc7\\xdc\\xcf\\x3d\\xef\\xea\\xfd\\xed\\xe1\\x62\\xab\\x6c\\x58\\xa1\\xdf\\x27\\x37\\x1e\\x3f\\x54\\x93\\x06\\x7f\\xc9\\xe2\\x06\\x7e\\x57\\x96\\x23\\xc0\\x09\\xfc\\x82\\x5e\\xef\\x0e\\x01\\x0f\\xd1\\xcc\\xf2\\xa8\\xd3\\xfb\\xbb\\x31\\x56\\xf9\\xdf\\xde\\x0c\\x7c\\xbb\\xaf\\x84\\x33\\x09\\x85\\x17\\x49\\x1b\\x78\\xdb\\x96\\x98\\x61\\x4e\\xa4\\x0e\\x0b\\x1e\\x6a\\x1e\\x36\\xb9\\x00\\x45\\x3a\\x16\\xea\\x27\\x6f\\x34\\x42\\xbb\\xd2\\x7a\\x7e\\xcb\\x98\\x15\\x11\\xf5\\xc9\\x20\\x9e\\xb0\\x96\\xe2\\x85\\x88\\xb6\\x5b\\x96\\xb5\\x01\\x88\\xc0\\x38\\x1f\\xf7\\x12\\xbc\\x06\\xb2\\xc6\\x55\\xcc\\xa0\\x75\\x1c\\x09\\x5d\\x80\\x16\\x25\\x15\\x85\\x85\\x1e\\x67\\x74\\x34\\xdc\\x3e\\xfd\\x08\\x7a\\x12\\x68\\x0f\\xc2\\x2e\\x5b\\x83\\x10\\xa1\\x0e\\x32\\xca\\xac\\x9b\\x71\\xc8\\x76\\xee\\xd3\\x1e\\xf0\\x9f\\x7f\\xa0\\x12\\xba\\x08\\xdf\\xd2\\xad\\x68\\xc1\\xe1\\x47\\xf5\\x05\\x98\\xe5\\x50\\x46\\x7e\\xf9\\x9f\\x29\\x5a\\x31\\x8f\\xaa\\x50\\x7e\\xbe\\x77\\x6c\\xe5\\x5c\\x4d\\xa1\\x64\\x32\\x3c\\x30\\xa5\\xe7\\x2d\\xbe\\x02\\x7c\\x3c\\xcf\\x96\\xc7\\x01\\x97\\xa6\\xfb\\x1b\\x74\\xaf\\x13\\x3a\\x8b\\xe2\\xb0\\x3c\\x1b\\x99\\xfd\\x25\\xb3\\xce\\xd5\\x1f\\xe3\\x88\\x20\\x21\\xa3\\xaf\\xd9\\x22\\x9f\\x64\\x1b\\xc6\\xca\\xd4\\xe1\\xd3\\xcb\\x6e\\xd9\\xb6\\xb6\\x8a\\x25\\xf1\\xe1\\x39\\x72\\x89\\x98\\x1f\\x78\\x92\\x4b\\xff\\x24\\xc8\\xde\\xe6\\xa1\\x8a\\x04\\x21\\xfa\\x32\\xae\\x3a\\xb6\\x0a\\x0d\\x93\\x3a\\x6a\\xf4\\xff\\x70\\x48\\x74\\xb0\\x9b\\x07\\x39\\xe2\\xf2\\x9d\\x8f\\x25\\x2d\\x79\\x05\\x5f\\x89\\xd3\\xbf\\xf1\\x0a\\x22\\xc5\\x4a\\xc3\\xd8\\xaf\\xee\\xce\\x81\\x83\\x53\\xa6\\xab\\xe2\\xb7\\xfb\\x8e\\x8e\\x0d\\xa5\\xb7\\xac\\x1c\\xfc\\x98\\x5d\\xf9\\x75\\x80\\xb1\\x82\\x11\\xa4\\xe3\\xed\\xff\\x95\\xaf\\xdd\\xa0\\x61\\x54\\x7d\\x3a\\xe0\\x40\\x6d\\x32\\x86\\xcd\\x30\\x5b\\xdf\\xd2\\xc3\\xab\\xf8\\xf7\\x4a\\xf9\\xa0\\x34\\x20\\xe5\\xb0\\x3f\\x82\\x5e\\x9c\\x53\\x90\\x7e\\x13\\xa5\\x81\\x21\\x74\\xbe\\x42\\x89\\x86\\x45\\x14\\x9d\"},\n{{0xc0,0x4d,0xc0,0x9f,0x11,0x9d,0x67,0x0f,0xb1,0xea,0xe0,0x13,0x6f,0xcc,0x06,0x08,0x5f,0x29,0x0f,0x4a,0xd1,0xaa,0x1f,0xfc,0x9c,0x16,0x0e,0xa5,0xcf,0x47,0xf0,0x9d,},{0xff,0x49,0x8c,0xe8,0xc9,0xdb,0x78,0x67,0xf6,0xd0,0x27,0x64,0x52,0xa4,0x66,0x72,0x48,0x87,0xe6,0x17,0x2f,0x66,0x81,0x67,0x1b,0x8a,0xe0,0x35,0xf5,0x86,0x5e,0xa3,},{0x4b,0xd1,0x9f,0x3d,0x9c,0x51,0x16,0xec,0x6a,0xe0,0x02,0x4d,0x0f,0x24,0x6d,0x2c,0xe2,0x50,0xd9,0xe0,0x63,0x4a,0x23,0x2b,0xa0,0x6f,0xd3,0x56,0x6a,0xed,0x55,0xcb,0xe5,0x9f,0x12,0x33,0x2c,0xba,0xd6,0x5d,0x43,0x49,0xa9,0xd2,0x2e,0x7d,0x6e,0x46,0xd2,0xfb,0xdc,0x71,0xd5,0xc8,0xf9,0xda,0x15,0xdf,0xbf,0x17,0xba,0x22,0x51,0x07,},\"\\x1e\\x42\\x29\\x7f\\x8a\\xee\\xf2\\x9a\\x84\\x2e\\x0e\\x21\\xf5\\xdb\\xae\\x06\\x8e\\x2c\\x9d\\xda\\xa6\\xfd\\x34\\x8e\\x48\\x88\\x1f\\x0d\\x42\\xc5\\x0b\\xf0\\xec\\xf1\\x70\\x6b\\x94\\xa5\\xd1\\x98\\x17\\xca\\x02\\xd8\\x3e\\x9a\\xb2\\xf9\\x9d\\x8b\\xfa\\xaa\\x5c\\x85\\xad\\x39\\xa1\\x50\\xb2\\x25\\xad\\x3e\\xaf\\xa0\\x67\\x81\\x5b\\x74\\x67\\x2f\\xe0\\x26\\xc3\\xcc\\xc6\\x77\\x25\\x54\\x40\\xb6\\x84\\xa7\\x6e\\x12\\x8c\\xa2\\xcc\\xc4\\x29\\xf1\\x52\\x57\\x7d\\x25\\xb6\\x9f\\x40\\xdb\\x58\\x2d\\x49\\x47\\x9a\\xfa\\xe6\\x80\\x71\\x2d\\xc0\\xfd\\x1f\\xe1\\x41\\x88\\x39\\x68\\x7c\\xa6\\x0c\\xdd\\xe9\\x74\\x14\\x04\\x62\\xf9\\x61\\x48\\x29\\x5d\\xf1\\xce\\x43\\xa9\\x77\\x35\\x1c\\x77\\xf2\\xf0\\xb0\\x9a\\x6b\\x26\\xd6\\xfe\\x96\\x5f\\xce\\xae\\x17\\xd7\\xb8\\x62\\x03\\x71\\x40\\x24\\x28\\x54\\x4f\\xdf\\x91\\x69\\x0b\\x44\\xe9\\xaf\\xc2\\xe9\\x08\\x8c\\x83\\xca\\x48\\xdc\\x85\\x76\\xf6\\x28\\x72\\x47\\x98\\xdc\\x90\\x32\\x31\\x74\\xc4\\x49\\x96\\x59\\x65\\x02\\xa3\\x5d\\xf8\\xb9\\x82\\xc5\\x70\\xa6\\xcb\\x51\\xb9\\xa1\\x97\\xd4\\x31\\xaf\\x33\\xf0\\x2b\\x80\\x01\\x15\\x67\\xfe\\x50\\xcf\\x45\\xac\\x11\\x1b\\x3d\\x55\\x6f\\x8c\\x8c\\xe5\\xae\\x8c\\x99\\x72\\xf2\\xa9\\x93\\x6b\\x1a\\x01\\x2b\\x9c\\x33\\x9e\\x30\\xc9\\x73\\x12\\xb6\\x5e\\xa5\\x9c\\x10\\x0f\\x79\\xd7\\x95\\xb8\\xa2\\x4b\\x31\\xa0\\xa9\\x7d\\xc2\\x5c\\xce\\xd6\\xb8\\xff\\x5a\\xe1\\x45\\x33\\x9a\\x04\\x8c\\xa1\\x2a\\x57\\x90\\x17\\xfa\\xe8\\xd5\\xcb\\xcb\\x61\\xd5\\x2e\\x31\\x4d\\xd7\\xc2\\xe7\\x20\\x10\\xc4\\x72\\x17\\xb1\\xd0\\x68\\x78\\xbf\\x28\\x18\\xca\\x18\\x8e\\x8e\\x30\\x79\\x60\\xc1\\x68\\x9d\\x7d\\xfc\\x02\\x02\\x97\\x3c\\xd2\\x9f\\x2f\\x7b\\xa7\\x43\\x46\\x9e\\x68\\x5e\\x0e\\x70\\x4b\\x04\\xba\\xca\\x4f\\xab\\x54\\x88\\x44\\x8a\\x92\\x2e\\xab\\xf4\\x0b\\xe5\\x81\\xc1\\x99\\x4d\\x74\\xd1\\x3a\\x36\\x6c\\xe8\\x57\\xfb\\x40\\xa6\\xe0\\x5d\\xa8\\x55\\x36\\x94\\x17\\x2c\\xc3\\xfd\\x28\\x06\\x2f\\x53\\x82\\x50\\xaa\\x8c\\x11\\xf6\\x81\\x39\\xe7\\x9c\\xd1\\x19\\x1b\\xa3\\x31\\x4b\\x5c\\xea\\x08\\x64\\x43\\x7e\\xd2\\xe4\\xb6\\xfb\\xd7\\x5b\\x9d\\xed\\x09\\x87\\xb4\\x1c\\x20\\x2a\\x58\\xec\\x02\\x54\\xd9\\xd3\\x71\\xa7\\x95\\xf1\\xdb\\xec\\xdd\\xac\\x11\\x2b\\xe8\\xd0\\x9e\\x2d\\x7b\\x9c\\xa5\\x75\\x2f\\x40\\x6c\\xff\\xb9\\x11\\xca\\x36\\x45\\x0b\\xc0\\x5f\\x1e\\xc1\\xca\\x3c\\xa8\\xd3\\x51\\x24\\xd1\\x28\\x6c\\x55\\xf1\\x0f\\x61\\x33\\x4e\\x46\\xec\\xe4\\x18\\x3b\\x92\\x21\\x9a\\x9d\\xcd\\x0e\\x5e\\x78\\xef\\x2a\\x76\\xcf\\xe9\\xa9\\xab\\x37\\x95\\xdf\\xdc\\xb4\\x4f\\x63\\xd4\\x5f\\x5f\\x48\\xff\\xb4\\x15\\x61\\x33\\xad\\x2e\\x99\\x50\\x88\\x4c\\x5b\\xbd\\x2c\\x1c\\xb8\\x72\\x9e\\x40\\xa8\\x78\\x7f\\x78\\x49\\x69\\xfa\\x88\\x0c\\x07\\xff\\xcc\\x97\\xd5\\xc0\\xd2\\xd4\\x88\\x08\\x5e\\x91\\x16\\xd7\\x10\\x7c\\xd5\\xdb\\x16\\xce\\xcc\\xde\\xad\\x55\\x02\\x5e\\xea\\x2e\\xde\\xe9\\x3c\\x1b\\x10\\x64\\x27\\x61\\x8e\\xe0\\x9d\\xc3\\xda\\xd1\\xe0\\x56\\x76\\xa2\\x36\\x80\\x69\\xc8\\x04\\x5c\\x3e\\xbc\\x6c\\x67\\xaf\\xa5\\x2d\\x59\\x39\\x82\\x48\\xef\\xcf\\x15\\xe9\\x04\\xc7\\x14\\x23\\x04\\xff\\x61\\x97\\x1f\\x4d\\x9b\\xf6\\x46\\x0c\\x1d\\x64\\x17\"},\n{{0x67,0x91,0xbd,0x74,0xd3,0xb4,0x62,0x0e,0xf5,0xf1,0xff,0x56,0x40,0x64,0x32,0xc2,0x6a,0xb6,0x46,0xf6,0xd5,0xe9,0xdd,0xa6,0x84,0x2e,0xd6,0x90,0x52,0x27,0x53,0x92,},{0xda,0x99,0x15,0xa7,0x55,0x2f,0x11,0x0f,0xae,0xa1,0x2d,0x47,0x92,0x0a,0x09,0x60,0x14,0x43,0xd4,0x00,0x0a,0x9c,0x7e,0x21,0x8d,0x5b,0xa7,0x2b,0x74,0x98,0x9f,0xa6,},{0xb1,0xe8,0xd4,0x81,0x06,0x5b,0xd5,0x12,0x1b,0xb3,0xbf,0x56,0x96,0x00,0xbc,0xc2,0x6d,0xf4,0x0c,0x49,0x9f,0xba,0xa9,0x54,0xb3,0x9a,0x61,0x9d,0xc4,0x0b,0x95,0x90,0xc3,0x17,0x56,0xb8,0xb6,0x3f,0x86,0x01,0x51,0x69,0x4b,0x95,0x76,0x5d,0x69,0x7b,0x2e,0x1a,0xde,0x08,0x06,0xe9,0x2a,0x06,0xc4,0xa5,0x59,0xe9,0x0f,0xcf,0xa5,0x06,},\"\\x36\\xa2\\x0e\\x66\\xbb\\x29\\x15\\x51\\x61\\xad\\x85\\xee\\xfe\\x89\\x3b\\x53\\xac\\x5a\\xde\\x16\\x5f\\x08\\x9a\\x77\\x19\\x0b\\x0c\\x23\\x9d\\xec\\x8a\\x20\\x16\\x85\\xb0\\x76\\xb4\\xde\\xd4\\xa1\\x0a\\xa4\\x59\\xb9\\x80\\xa8\\xcc\\xa4\\x7d\\x5f\\x8d\\xe4\\xd2\\xa6\\x62\\xe4\\x46\\xd5\\xf7\\xfb\\x70\\xed\\x9b\\xe0\\x5d\\xb1\\xcc\\xea\\xdd\\x13\\x0b\\x33\\x46\\xd9\\x40\\x9f\\x9d\\x6e\\xf5\\x28\\x24\\xc7\\x64\\xac\\x6f\\xb1\\xcd\\x15\\x6d\\xbd\\x6a\\x47\\x3a\\xe7\\x22\\xd0\\xeb\\xb2\\x56\\x38\\xc5\\x12\\x65\\xa2\\x2f\\xeb\\xbb\\x14\\x96\\x7d\\x6d\\xd8\\x25\\x3c\\x1d\\x03\\x88\\x95\\xc6\\x73\\x7f\\x06\\x7c\\x8f\\x73\\xc3\\xc1\\xcb\\xe6\\xcd\\xa4\\x36\\x96\\x32\\xd7\\xf4\\xc9\\xac\\xeb\\xe8\\x7d\\x05\\x71\\xc8\\x1a\\x58\\xcf\\xd7\\x2c\\xce\\x4a\\x5c\\xf5\\x3a\\x1e\\x75\\x25\\x9f\\x4c\\x99\\x3e\\x67\\xef\\xc8\\xd9\\xc3\\x57\\x6c\\x43\\xaf\\x04\\xa5\\xca\\xf3\\x3d\\x85\\x6f\\x7f\\x27\\x55\\xd3\\xa9\\x75\\xab\\x2b\\x68\\x5c\\x6f\\x65\\x68\\x0c\\xba\\x9a\\xc8\\x79\\xf3\\xa8\\xc9\\xa4\\x76\\x5b\\x87\\x9c\\x0a\\xde\\x1e\\x4b\\xd0\\xd4\\xa7\\x0b\\xb6\\xf9\\x2b\\x24\\xd4\\x29\\xdc\\x74\\x6c\\xc7\\x8f\\x84\\x81\\x1f\\x07\\x6f\\x32\\xc6\\x1e\\x35\\x85\\xcc\\x8a\\xad\\xe9\\xb0\\xca\\x15\\x22\\x4b\\xfb\\xfe\\x18\\xbe\\x10\\xa3\\x36\\x43\\x60\\x0f\\x66\\x12\\xbf\\x01\\x3f\\x0e\\xfc\\xca\\x83\\x72\\x46\\xa0\\xee\\x5b\\x03\\xc0\\x2f\\x15\\x73\\x62\\x4c\\x4a\\x44\\xa9\\x0f\\x9e\\x42\\x3d\\x4e\\x56\\x06\\x1a\\x71\\xd0\\x14\\x4f\\x5a\\x88\\x7a\\x8c\\xd4\\xa9\\xd6\\xf2\\x47\\x90\\x4e\\x26\\x79\\x59\\x51\\x95\\x9d\\xa1\\x21\\xc8\\x3c\\x6c\\x94\\x1e\\x2b\\x6b\\x9a\\xb7\\x62\\x09\\xff\\xe9\\x17\\x85\\x91\\xea\\xd6\\x82\\x30\\xb9\\x4a\\xe9\\x7d\\xf5\\x8f\\x9f\\x17\\x24\\x28\\xc9\\x50\\x67\\x59\\x8a\\xc5\\x82\\xff\\xb9\\x50\\x84\\x0d\\x82\\x66\\x30\\xc4\\x62\\x5f\\x5d\\xea\\xdd\\xec\\x13\\x05\\x20\\x3b\\x4d\\xb6\\xb9\\x45\\xf9\\x91\\xed\\x7c\\xd3\\xd6\\xfa\\xbc\\xa5\\x1e\\x21\\x66\\xad\\xad\\x0a\\xad\\x51\\x17\\x33\\x6d\\x52\\xd5\\x94\\x22\\xf0\\x13\\x5c\\x8f\\xa8\\xcd\\xd0\\x88\\x4b\\xe7\\x35\\x86\\xbf\\x28\\x4e\\x5d\\xdd\\xdb\\xcb\\x95\\xb4\\x11\\xf9\\x85\\x68\\x52\\x6f\\xbe\\x71\\xa5\\x59\\x2b\\x56\\xad\\x5a\\x73\\x45\\xf2\\x87\\x4d\\xb1\\xd5\\x7b\\xea\\xb4\\x3e\\x8c\\xc6\\x95\\x47\\x52\\x06\\x29\\xf0\\xee\\x76\\xdb\\xf4\\x32\\xa3\\x76\\xfa\\xd2\\x8b\\xfc\\x77\\xe1\\x4d\\x84\\x0f\\x0c\\x02\\xd4\\x78\\xf1\\xe2\\x33\\x7c\\x23\\xb8\\x9e\\x73\\xe5\\x27\\x91\\x08\\xb5\\x60\\x9b\\x18\\xe8\\x0d\\xb0\\xde\\x11\\xcf\\xa9\\x4e\\xcf\\x72\\x39\\xbc\\xff\\x59\\xc5\\x41\\x18\\xe4\\xed\\xe4\\xfb\\xfc\\x08\\x23\\xae\\x54\\x60\\x16\\xf7\\x74\\xc5\\x21\\x98\\xa9\\x63\\xb5\\x54\\x5a\\x34\\x89\\xb8\\x9d\\xf7\\x62\\x6f\\xd1\\x1e\\xd4\\x65\\x8d\\x71\\x5a\\x46\\x57\\x99\\x40\\x35\\xd4\\x03\\xb3\\x37\\x0d\\x14\\xee\\xd9\\x71\\x8d\\x59\\x8d\\xb6\\x75\\xf0\\x42\\x59\\x2f\\xea\\x89\\x05\\x65\\x44\\xb3\\x2e\\x5b\\x9c\\x80\\x62\\x82\\x8a\\xaa\\x3c\\xf5\\x9c\\xb4\\x76\\xad\\x36\\xdb\\x1d\\xaa\\x24\\x82\\x22\\x7a\\x9b\\x7a\\xfb\\xc1\\x53\\xce\\x93\\x25\\x3d\\x1b\\x39\\xda\\x95\\xeb\\x96\\xf8\\x31\\x28\\xff\\x25\\x54\\xa5\\x47\\xe3\\x4e\\xea\\x4a\\x00\\x00\"},\n{{0x23,0x4c,0xe4,0xd3,0x9b,0x5e,0xba,0xbe,0x9a,0x2c,0x1e,0x71,0x97,0x0d,0x71,0x81,0x38,0xdc,0xb5,0x30,0xcf,0xd2,0x96,0x02,0x34,0x27,0xd8,0x92,0xbf,0x88,0xf8,0xa4,},{0xcb,0x73,0x93,0x0d,0xb4,0x21,0xf6,0xd2,0x45,0x36,0x83,0x7b,0xd0,0xbf,0xf6,0xfa,0x75,0xbb,0xd1,0x41,0xc9,0x8a,0x40,0x5d,0x42,0x44,0xa3,0xc4,0x24,0x55,0x07,0x79,},{0xf6,0xd0,0x60,0xed,0x7d,0x18,0x27,0x3f,0x18,0xf7,0xa6,0x9c,0xd1,0xd8,0x12,0x6e,0x47,0x8e,0x88,0xa1,0xd7,0x29,0x4f,0xf6,0x04,0x08,0x46,0xd4,0x61,0x07,0xc3,0xe4,0x1a,0x42,0x3b,0xab,0xb2,0x41,0x71,0x39,0xfe,0x58,0x7d,0x29,0x10,0x27,0x1a,0x35,0x7f,0xe5,0xbf,0x57,0xc9,0x2e,0xe3,0xa7,0xb7,0x75,0x33,0x72,0x9d,0x0a,0xc2,0x0d,},\"\\x77\\x73\\x0c\\xf8\\xc8\\xf9\\x6b\\x91\\x87\\x90\\x2a\\xcf\\xf9\\xff\\x0b\\x21\\x74\\x6c\\xca\\xf0\\xa3\\x82\\xa7\\xb3\\x43\\xd1\\xc7\\x20\\x27\\xae\\x3c\\x31\\x68\\xa7\\x3a\\x6b\\x8f\\x49\\xbc\\x87\\x98\\x14\\x1e\\x15\\xc2\\x73\\x2b\\x6a\\x6b\\x3f\\x75\\x7f\\x8a\\x8e\\x86\\xc7\\xa4\\xba\\xcb\\x39\\x55\\x1c\\x54\\x87\\x4d\\x6b\\xf7\\x16\\x89\\x7e\\xe4\\xaf\\x13\\x25\\x3a\\xa5\\xbb\\x79\\xa1\\x92\\x10\\x4f\\x44\\xdc\\xb3\\xde\\x96\\x07\\x45\\xa8\\xe6\\xaa\\x98\\x80\\x52\\x4a\\x62\\x9f\\xb5\\x10\\xa4\\xce\\x4c\\xbd\\xa7\\xe2\\x95\\x7d\\xff\\x1d\\x62\\xe7\\x05\\x60\\x6a\\x2c\\xc8\\x4f\\x91\\x85\\x0b\\xea\\xac\\x5e\\x58\\x46\\xe1\\x42\\x0b\\xc9\\x1d\\xcd\\xd2\\x42\\x7b\\x69\\xcf\\xa4\\x6a\\xe3\\x8a\\x4f\\xef\\x41\\x46\\xea\\xe3\\x5f\\x9c\\x22\\xe9\\x67\\xcb\\x14\\xa1\\xaf\\x9c\\xab\\xf8\\x3b\\x18\\x04\\x65\\xbe\\xd6\\xef\\x2c\\xda\\x38\\x2a\\x84\\xd9\\x99\\x4a\\xad\\x65\\x5d\\x89\\x52\\xe0\\xfb\\xb0\\xf9\\x6f\\xc8\\x08\\x9f\\x2e\\x74\\x89\\x49\\x7f\\xac\\xdc\\xd6\\x56\\xa8\\xa4\\x51\\xb9\\x28\\xc1\\x1e\\x7a\\x40\\x75\\x07\\x2a\\xaf\\xbf\\x17\\xd8\\xf1\\x05\\x4c\\x91\\x96\\x28\\x8d\\xed\\x3a\\xe2\\x1f\\x9a\\xfd\\x58\\x10\\xa1\\x00\\xd8\\xe4\\xd8\\x4c\\x4a\\x35\\xa9\\x8b\\x30\\xd3\\xe1\\x85\\x24\\x43\\x8d\\xd4\\x40\\x2d\\xfd\\x8e\\x76\\x75\\xf0\\x9d\\x08\\x0c\\xd9\\x15\\xf1\\x4a\\xf4\\x37\\x2f\\x7c\\xe5\\x83\\x84\\x97\\x2d\\x5d\\x11\\x10\\x79\\x65\\x1b\\x2a\\xcf\\x39\\xd2\\xa1\\x67\\xc6\\xa0\\x0b\\x2b\\x17\\xce\\x0b\\x26\\x87\\x91\\xbd\\x2b\\xe5\\x17\\x8f\\xe0\\xf8\\x2d\\x64\\xda\\xcd\\xde\\x37\\x7a\\x1e\\x8b\\xe9\\xe7\\xd8\\xdf\\xc8\\x2b\\x08\\x64\\x45\\x37\\xbd\\xc8\\x70\\xc5\\x81\\x92\\x86\\xfd\\x51\\xf6\\x79\\x2d\\xc5\\xf6\\x7b\\x54\\xbe\\x33\\x6d\\x44\\xd5\\x4f\\xeb\\xf8\\x1b\\x8d\\xf8\\xde\\xc5\\xd8\\x68\\x6d\\xb1\\x2f\\x16\\x4d\\x0e\\x8f\\xf1\\xaa\\x2c\\x16\\xba\\xcc\\x98\\x06\\x01\\x0e\\xc8\\xe9\\x11\\x96\\x59\\x7e\\xf0\\x6a\\x4c\\xf1\\x70\\x7d\\xef\\x50\\x67\\xa0\\x48\\x89\\xd8\\xe4\\x8a\\x9b\\xc2\\xc0\\xbe\\xf6\\x64\\xf5\\xac\\xd1\\xb4\\xf5\\xbc\\x2d\\xa7\\xda\\x43\\xdc\\xb5\\xf9\\x63\\x24\\x5b\\xa5\\x52\\xfd\\x49\\x30\\x01\\xd8\\x70\\xa9\\x51\\x7a\\x17\\x9c\\x2f\\x0d\\xe8\\x5b\\xe0\\xc6\\x82\\xd0\\x57\\x48\\x8e\\x35\\xc7\\x81\\x6f\\xf4\\xba\\x52\\x9a\\xef\\xd7\\xc6\\x60\\x91\\xf2\\x06\\xf5\\xf4\\xd7\\x5c\\xac\\x8b\\xd2\\x09\\xec\\x2f\\xa5\\x5b\\xe7\\x4a\\xf2\\x31\\xe2\\xf3\\x89\\xdc\\xc2\\xd6\\x68\\xbf\\x69\\x5e\\xd2\\x67\\xc3\\x59\\x4b\\xad\\x9e\\xfc\\x00\\x21\\x7c\\x7a\\x0e\\x9e\\x7b\\x6a\\x56\\xa3\\x30\\x79\\xa3\\x0e\\x73\\xc3\\x73\\x3f\\x2d\\x24\\xef\\xec\\xdd\\xe8\\x7f\\x72\\xf9\\x48\\xd2\\x77\\xd6\\xb6\\xd5\\xb0\\x35\\xb4\\xc5\\x31\\x80\\xd2\\x3d\\x66\\xcc\\x0f\\xf1\\x7c\\x15\\xdd\\x46\\x85\\x85\\xe3\\x89\\xd9\\x1a\\x4c\\x97\\xfd\\x80\\x11\\x0b\\x21\\x8a\\x0b\\xf7\\xa5\\xe0\\x35\\x3f\\x46\\x09\\xd2\\xcf\\x01\\x8a\\x06\\x55\\x71\\x00\\x1c\\x78\\x88\\x55\\x5e\\xed\\xbd\\x36\\x22\\xc3\\xb1\\x76\\x9c\\xd1\\x3f\\x33\\x37\\x47\\x72\\xaa\\x6c\\x8a\\x8f\\x58\\x81\\x02\\x01\\x7d\\x4e\\xe4\\xe5\\x0d\\xcb\\xbd\\xb1\\xd6\\x10\\xc3\\x26\\x70\\x93\\x4a\\x6d\\x9e\\x6d\\x9b\\x78\\x4b\\xbf\\xe7\\x18\\x62\\xbb\\x38\"},\n{{0x10,0x3d,0x11,0x8c,0x7d,0xd6,0x5d,0x07,0xe8,0xd5,0x58,0x2e,0x45,0x04,0x2a,0x75,0x79,0x24,0x17,0xc6,0x92,0x00,0x1e,0xe6,0xbd,0x9a,0x92,0x7b,0x2b,0x3d,0x90,0x16,},{0xb4,0x5c,0xc9,0x45,0x14,0xa6,0xad,0x67,0x24,0x96,0xcd,0x4e,0xb9,0xfd,0xaf,0xc1,0xd4,0xa1,0x67,0x07,0x2c,0x68,0x74,0xdc,0x8f,0xf1,0x6d,0x76,0x1f,0xb6,0x69,0x86,},{0x2f,0xaf,0xc1,0x3c,0x43,0xaf,0xe5,0x05,0x43,0x72,0xb9,0x23,0xd2,0x4f,0x29,0x2b,0x28,0x3a,0xfc,0xa3,0xac,0xa3,0xb3,0xe4,0x32,0x38,0x06,0x84,0x96,0x17,0x13,0xc8,0xd2,0x3e,0x86,0xb3,0x58,0x04,0x95,0xdf,0xba,0xe4,0x24,0xb7,0x67,0xe4,0x79,0x5a,0x0f,0x92,0x2f,0x71,0xb5,0x0f,0x5d,0x7a,0x36,0x9a,0xb8,0xc6,0xe8,0x80,0x42,0x0c,},\"\\x5a\\x8e\\xe0\\x79\\x18\\x6b\\x51\\xcf\\x46\\x29\\x83\\x4d\\xe0\\xc6\\xbd\\x73\\x34\\x85\\x50\\x39\\xa7\\x63\\x1d\\x68\\x87\\x65\\x2a\\x77\\x28\\x99\\x59\\x72\\xe3\\x62\\xc1\\xc4\\x09\\xf0\\x84\\xf5\\xaa\\xf2\\x98\\x6a\\xe3\\xf5\\x36\\xbe\\x00\\x70\\xc4\\xba\\xf4\\x59\\xef\\x60\\xa0\\x15\\xef\\x9d\\x70\\xdf\\xa3\\xea\\x96\\x71\\x1c\\xbb\\x18\\xe9\\x2a\\xf5\\x0c\\x52\\x7d\\x7e\\xd4\\x57\\x87\\x7a\\x07\\xab\\x83\\x72\\x15\\x18\\xc8\\x9f\\x7a\\x86\\x41\\x91\\xb1\\xe9\\x74\\x33\\xb7\\xc6\\xcd\\x63\\x4a\\x83\\x2e\\x19\\x89\\x1e\\x76\\xc6\\x21\\x22\\xa4\\x9d\\xbf\\xfd\\x83\\x49\\x8a\\xa4\\x16\\xac\\xcc\\xb7\\x73\\x7f\\xe7\\x5f\\x4f\\xb2\\xc3\\x53\\x28\\xe6\\xf6\\xec\\xec\\xaa\\xa4\\x2e\\x43\\xdb\\xa5\\xbc\\x96\\x89\\x67\\x3d\\xab\\x96\\xf0\\xbe\\xfa\\x3c\\x83\\xeb\\x41\\xd4\\xd8\\x87\\xb3\\xa1\\x17\\xd0\\x55\\xe3\\x0b\\xb8\\x7f\\xbe\\x7c\\x71\\x94\\x72\\xf6\\xc7\\xa4\\xcc\\x45\\xf6\\x28\\xf5\\xfa\\xdd\\xc4\\x8c\\xa3\\x44\\xf7\\x7b\\x73\\x3c\\x0e\\x3b\\x9f\\x50\\x79\\xdb\\xd0\\x7a\\xf3\\xa3\\x84\\x7a\\xf1\\x41\\x71\\x9c\\xca\\x2f\\x6a\\x76\\x65\\x52\\xb4\\x5d\\x0f\\xdc\\xdb\\x98\\x68\\xf2\\xc7\\x62\\xb6\\xd4\\x93\\x3b\\xa1\\x08\\x36\\xf9\\x5b\\xff\\x71\\xcb\\x88\\x04\\x00\\x24\\xc9\\x05\\x34\\xc4\\xd7\\xa9\\x5a\\x23\\x03\\xb0\\x4c\\x29\\x61\\x01\\x2a\\xf5\\x8b\\xc7\\x84\\xa9\\x63\\x27\\xbb\\xfe\\xd0\\x39\\xd0\\x80\\x2a\\x05\\x26\\x2d\\x8e\\x66\\x3b\\x78\\x50\\x8e\\x92\\x50\\x8b\\xc1\\xf2\\xea\\x2b\\x9b\\xe7\\x58\\x0b\\xde\\x10\\xa4\\xd6\\x63\\xd0\\xd2\\x5b\\x0e\\x97\\x3b\\x8c\\x5d\\xed\\x59\\xde\\xbf\\x19\\xbb\\x04\\x4a\\xff\\x1c\\x60\\xc7\\x0e\\xa1\\xae\\xfe\\x85\\xf6\\xd1\\x5c\\x2c\\x1b\\x84\\x75\\x3b\\x59\\x57\\x6a\\x49\\x47\\x3d\\x65\\xaf\\x3e\\xd9\\x41\\xa3\\xd5\\x14\\xb5\\xc4\\x52\\x2c\\x14\\x1b\\xdb\\xee\\xd9\\xcb\\x33\\x96\\x95\\xb2\\xe0\\x2d\\xc0\\x70\\x00\\x86\\x7f\\x1b\\xf8\\xed\\x8c\\xfd\\x3b\\x1a\\xfe\\x68\\x8f\\xbc\\xa8\\x0e\\x2f\\x9b\\xa5\\xc0\\xb1\\x88\\xa1\\x9a\\xda\\xff\\x66\\x86\\xca\\x0f\\xf0\\xed\\xd4\\x44\\x66\\x12\\x91\\xfa\\x27\\xca\\x1f\\xc5\\x29\\x42\\x9a\\x5d\\x8f\\xf7\\x9e\\xd2\\x02\\x7c\\x60\\xff\\xe3\\xb2\\xc0\\x3f\\xb8\\xa6\\x6a\\x39\\x85\\x41\\x7b\\xa4\\xac\\xe7\\xd1\\x4f\\xd0\\xe2\\x37\\x1e\\xdf\\x5d\\x71\\xbc\\x02\\xb9\\x05\\x27\\x67\\xc7\\xf7\\x2c\\x4e\\x6f\\x3f\\x30\\xe0\\x63\\x82\\x76\\xb9\\xc4\\x20\\xaa\\x43\\x33\\x09\\x5d\\x31\\x31\\x30\\x33\\x09\\x05\\x82\\xe3\\xac\\x4d\\x9f\\xd3\\x20\\x31\\x20\\xba\\x25\\x14\\x97\\x3a\\xb9\\xd1\\xc7\\xfc\\x42\\x29\\x01\\x16\\xb5\\x1d\\xae\\x9f\\xd5\\x79\\x41\\x0a\\xe0\\x78\\xed\\x32\\x0a\\x5a\\x1b\\x49\\xaa\\x7b\\x5f\\xef\\xcd\\x75\\x63\\x95\\x21\\x3a\\xf8\\x64\\x1e\\x29\\xb0\\xeb\\xb5\\xb8\\x3e\\x37\\x80\\xe5\\xd1\\x0e\\x9d\\x3d\\x11\\x99\\x81\\x48\\xf6\\xc6\\xf8\\x6c\\x4d\\x4e\\xb2\\x52\\xe2\\x8c\\x70\\xfa\\x3a\\x55\\xc4\\x3d\\x4d\\x7f\\xaa\\xfc\\xbc\\xdd\\x45\\xad\\x26\\x37\\xf2\\x15\\xe8\\x15\\x49\\xeb\\x8a\\x4c\\xde\\x47\\x15\\xb7\\x10\\x72\\x07\\x50\\x3a\\x79\\x59\\x50\\x60\\xb8\\x3a\\xce\\x8f\\xeb\\x67\\x3b\\x99\\x79\\x68\\x46\\x9d\\xd9\\xb4\\xad\\x6a\\x7e\\xa8\\x1c\\x6e\\x61\\x81\\x00\\x33\\xf3\\xed\\xfc\\x13\\x7d\\x97\\x42\\x09\\x57\\x5c\"},\n{{0x47,0xee,0xe2,0x02,0x4d,0xbe,0x09,0x95,0x3e,0x98,0x1f,0x69,0x86,0x52,0x0f,0x66,0x60,0x82,0xaa,0x9e,0xf4,0x89,0x2d,0xfd,0xfb,0xdb,0xd2,0x50,0xd2,0xa1,0xdf,0x28,},{0x9f,0x13,0xcd,0x8e,0xbf,0x50,0x80,0x34,0x79,0x75,0x15,0x9f,0x36,0x02,0x96,0xa7,0x16,0x40,0x14,0xd8,0xd0,0x69,0xe8,0x31,0xda,0xb0,0x33,0x26,0x07,0x99,0x7c,0xde,},{0x5d,0xef,0xae,0x0e,0x17,0x3e,0xcc,0x18,0xd5,0xf0,0x1e,0xc9,0x29,0x1b,0xe1,0x60,0xd5,0xea,0xbf,0xf6,0x3f,0xd5,0x42,0x3f,0x2b,0xc6,0x6e,0x3f,0x64,0x08,0xc1,0x96,0x35,0x35,0x02,0xdc,0xef,0x21,0xef,0xfa,0x4b,0x9c,0x14,0xbf,0x27,0xb6,0x87,0xd1,0xb6,0xe8,0x6b,0x2a,0x20,0x5a,0x89,0xeb,0x35,0xc3,0x76,0xa3,0xa3,0x25,0x69,0x0d,},\"\\xc1\\x33\\xf0\\x33\\xcf\\x3b\\xec\\x6c\\xd1\\x92\\x12\\xea\\x47\\xdb\\xec\\xb1\\x3f\\x2c\\x60\\x18\\xf9\\xe0\\x87\\x8a\\xc8\\x84\\xbf\\xb5\\x75\\xc0\\xf5\\xd3\\xfc\\x5b\\x49\\x99\\x58\\x0e\\xb8\\xac\\xbc\\xaa\\xc8\\x3a\\xe9\\xac\\x9b\\x44\\x3e\\x6d\\x1c\\xff\\x44\\x9c\\x36\\x89\\xb4\\x33\\xd5\\x09\\x00\\xb2\\xe8\\xb7\\x1d\\x00\\xe1\\x19\\xc8\\xb8\\x75\\x09\\x4b\\xda\\xb9\\x16\\xad\\xaa\\xb7\\x5b\\xcc\\x85\\x29\\x59\\xd8\\xd7\\x59\\x79\\x5b\\xbd\\x6b\\x36\\x0e\\xe4\\x84\\xaf\\xe4\\x7b\\x1a\\xd2\\x83\\x91\\xf2\\x5a\\xfb\\x8d\\x4e\\x3a\\xfe\\x0c\\x5b\\x60\\x04\\x98\\xa1\\x28\\x33\\xfe\\x2a\\x1a\\x54\\x83\\xdf\\x94\\x0b\\x17\\x3b\\xa0\\xd9\\xd8\\xc4\\xd1\\x32\\x1f\\xa4\\xb7\\x33\\x33\\x4b\\x0f\\x6d\\x87\\x8a\\x0e\\x5a\\x76\\xf4\\xf1\\x80\\xac\\x11\\x9a\\x82\\x08\\x2a\\xcb\\x14\\x88\\xe4\\x9b\\xbc\\xa7\\xa0\\x36\\x9c\\x19\\x1b\\xd6\\xd0\\xc5\\xd4\\x45\\x65\\x68\\x21\\xa9\\x9c\\xcb\\xc9\\x45\\x94\\x9e\\xca\\x81\\x36\\xcc\\x6e\\x12\\x7d\\x9d\\xe9\\x2e\\xf6\\x4f\\x17\\x4a\\x6c\\x04\\xc8\\xb5\\xe5\\x24\\x95\\xf0\\xdd\\x67\\x4b\\xb5\\xca\\x12\\x8a\\x92\\x09\\x96\\x8f\\xd4\\x50\\xdc\\xe3\\x19\\x91\\x3f\\xd6\\xa3\\x0c\\x33\\x82\\x79\\x81\\x63\\xe6\\x58\\x5f\\x58\\xef\\x20\\x8b\\xe4\\xd0\\xc6\\xa2\\x51\\x3a\\x75\\x23\\x88\\x39\\x7a\\x4a\\xe4\\x44\\x83\\x8c\\x84\\x66\\xdb\\xc3\\x6f\\xbc\\x36\\xae\\x08\\xbe\\xc8\\x8e\\xed\\xa1\\x31\\xc1\\x4d\\x06\\x36\\x6b\\x67\\x31\\x51\\x45\\x41\\x00\\xde\\xa1\\x11\\x81\\x50\\xfb\\xe4\\x41\\xb1\\xe7\\x82\\x6e\\x54\\x5d\\x98\\x68\\x24\\x2e\\x89\\x9f\\x5e\\xa5\\x3e\\x43\\x4c\\x37\\x93\\x6c\\xe6\\xfd\\x06\\x14\\x62\\x83\\xe8\\xfb\\xd5\\x36\\x48\\x0d\\xe5\\x5a\\x16\\x10\\x2c\\x44\\x75\\x4b\\xc5\\x54\\xd5\\xbc\\x2d\\xe2\\xf2\\x5e\\x19\\xe5\\x67\\xa0\\x23\\xdf\\x46\\x40\\xe7\\x4f\\xf3\\xa4\\x9e\\x4d\\xd3\\x0e\\x0e\\x25\\x58\\xb3\\xdb\\xc2\\xaa\\xb9\\x2f\\xdd\\x5e\\x79\\x42\\x5e\\xcb\\xc4\\xc6\\x99\\xfe\\x1f\\x16\\x19\\x65\\xf1\\xd0\\xb4\\x5d\\x8b\\xda\\xb5\\x2e\\xc9\\xbf\\x7a\\x69\\xd8\\xaa\\x0b\\xd1\\x71\\xe7\\x55\\xce\\x7b\\x8d\\x07\\x18\\xf7\\x26\\x7a\\xfb\\x73\\x3e\\xfc\\xa5\\x4b\\x21\\x3e\\x6f\\x5a\\xda\\xb4\\xc9\\xd7\\x6c\\x86\\x7f\\xcb\\x69\\xae\\x05\\xc7\\x4b\\xd2\\x15\\x16\\xcf\\x34\\x2c\\x61\\x61\\xf6\\xfc\\x9e\\xcc\\xac\\xf9\\x70\\xeb\\xce\\x54\\x0c\\xd8\\x92\\xbc\\x10\\x6c\\x6b\\xd5\\x63\\x61\\x02\\x98\\xb7\\x09\\x68\\xf0\\x91\\xbc\\xc6\\xe1\\xf7\\xab\\x4a\\x5b\\x2c\\x63\\x74\\xa1\\x90\\x3f\\x4d\\x3a\\xd5\\xe1\\xbd\\x86\\x43\\xa9\\xc2\\xf8\\x78\\xc3\\xd7\\xa4\\xdc\\x49\\xef\\x31\\x97\\xed\\xbc\\xda\\x7b\\xb9\\x1e\\x7e\\x06\\x60\\x60\\x87\\xd4\\xe9\\x81\\xbf\\xab\\x93\\xa6\\x02\\x49\\x77\\x96\\x2e\\x45\\x26\\x25\\x17\\xf3\\x38\\xb6\\x85\\x7e\\xec\\x21\\x58\\xa2\\x97\\xb2\\xaa\\x91\\x52\\x4b\\x67\\x7a\\x21\\xaa\\xc5\\x7b\\xe0\\xb6\\x3a\\x80\\x74\\xfe\\x54\\xe7\\xa9\\xdc\\x70\\xc5\\xa5\\xc3\\xde\\x72\\x8b\\x9c\\x17\\xec\\x12\\x12\\xab\\x11\\x30\\xeb\\x17\\x62\\x2c\\xd7\\xb2\\x2a\\xb6\\xeb\\xa9\\x18\\x5e\\x8d\\x67\\xbe\\x6c\\x47\\xa2\\xe5\\xad\\xc6\\x63\\xd4\\x64\\x2c\\xc1\\x20\\x22\\x2e\\x29\\x9f\\xe1\\x34\\xfd\\x7f\\xcd\\x00\\xad\\xab\\xcf\\xaa\\x64\\x2f\\xe2\\xe0\\x8d\\xd5\\x2e\\x2c\\x3f\\x32\"},\n{{0xb6,0xc8,0x8b,0x4c,0x90,0xfd,0x19,0xa1,0x49,0xd3,0x81,0x67,0x19,0x53,0xb9,0xb1,0x6d,0x42,0x8f,0x63,0x61,0xcf,0x50,0x3a,0x11,0x04,0x77,0xe2,0x97,0xf8,0xd2,0xf8,},{0x8e,0xbf,0xb0,0x84,0xf9,0x97,0xb2,0xea,0x79,0x32,0xa2,0x35,0x3b,0x2c,0x8b,0x16,0xbd,0x82,0x5e,0x1a,0xf5,0x87,0xa8,0xeb,0xc5,0x1a,0x6c,0x45,0xae,0xa3,0x43,0xae,},{0x74,0x47,0xa2,0x01,0x81,0xb0,0x2c,0xf1,0xb6,0xad,0x52,0x95,0x69,0xce,0x43,0x7c,0x2a,0x05,0x08,0x11,0x6f,0x50,0x20,0x5c,0x41,0xe6,0x37,0x8b,0x74,0xfe,0x2f,0xc5,0x36,0x30,0xaa,0x0d,0xc4,0xb8,0x0c,0x31,0xcb,0x26,0xc8,0xf0,0x9b,0xf8,0xfa,0xb2,0x7e,0x3a,0xbc,0x8f,0x1f,0x60,0x4a,0x5e,0xc0,0x66,0x31,0xa8,0x4f,0x6f,0x2e,0x06,},\"\\x7f\\x4b\\xf4\\xf5\\x21\\x73\\xef\\xf0\\x72\\xf8\\x18\\xd0\\xaa\\x97\\xe6\\x93\\x5d\\x8b\\xac\\xcf\\x48\\x39\\x66\\x32\\x53\\xb2\\x41\\x4f\\xe6\\xb1\\xf3\\x4c\\xf4\\x3a\\xb1\\x20\\x15\\x5a\\x1a\\x3a\\xea\\x7b\\x48\\x19\\xdd\\xd1\\x03\\x16\\x73\\xb8\\xa7\\xa6\\xbd\\x0b\\x9d\\xda\\x4a\\xde\\xfe\\x69\\x2a\\x56\\x16\\x2c\\x64\\x61\\x80\\x79\\x42\\x64\\xc5\\x12\\x21\\x15\\xeb\\x90\\xa6\\xd3\\x05\\x4f\\x08\\x43\\x02\\xdc\\xe3\\xd8\\x36\\xac\\x3d\\xe8\\x20\\x63\\x8b\\xd8\\x9a\\x86\\xbf\\x0a\\x4c\\x01\\x54\\x7c\\xfd\\xc5\\x43\\xd6\\x76\\xfe\\x16\\x39\\xef\\x72\\xc5\\xb8\\x45\\xc4\\x94\\xe0\\x78\\x14\\xce\\xc8\\xa4\\x7d\\x03\\xdf\\x73\\xbe\\x4e\\x33\\xc0\\x5a\\xfe\\x9a\\x19\\x0d\\xda\\x04\\x33\\x60\\x49\\x6b\\xe4\\xcf\\x3a\\x63\\x19\\xda\\x9a\\xb0\\x64\\x81\\x67\\x7f\\x1a\\x43\\x74\\xd6\\x0d\\x3d\\x3b\\x63\\x94\\xf8\\x84\\x3c\\x86\\x9b\\x0f\\x41\\xa1\\xe8\\x1c\\x2b\\x1a\\x54\\xbf\\x5a\\xac\\xbd\\x98\\x20\\x7c\\x8d\\xba\\xcb\\x36\\x42\\x2a\\x3a\\xa0\\x13\\xd5\\xe8\\x49\\xe0\\x44\\xaf\\x92\\x85\\x45\\xc0\\x46\\x09\\x7c\\xaf\\x14\\x9d\\x97\\x02\\x15\\x11\\x5d\\xea\\x0b\\x5a\\x85\\x40\\x1f\\xf6\\x72\\xe0\\x2e\\xd4\\x0b\\xd0\\xf5\\xa4\\x40\\xcd\\x56\\x49\\x40\\x53\\xc8\\x96\\xc3\\xbd\\x32\\x60\\x63\\x49\\xf7\\xcb\\xe7\\xec\\xe2\\xa2\\x23\\x0c\\xf2\\x36\\xda\\xc5\\x9f\\x78\\x17\\x96\\x5f\\x3f\\xa8\\x0f\\xb4\\x8a\\xa3\\x0b\\x0b\\x19\\xef\\xa9\\xa9\\x65\\x91\\x64\\x6b\\xd2\\x5e\\x67\\xc1\\x85\\xf7\\x7e\\x21\\xd6\\x63\\x0b\\x28\\x8d\\x4e\\x55\\x14\\x6b\\x2a\\xbc\\x15\\xe9\\x50\\x88\\xd9\\x36\\x08\\x07\\x75\\x61\\x81\\x54\\xbb\\xdd\\xa1\\x15\\x70\\x2a\\x2a\\xfd\\x6f\\xd5\\xf5\\x6b\\x92\\x3e\\x18\\x88\\x33\\xec\\x44\\x89\\x44\\xd3\\x02\\x83\\xe3\\x37\\x25\\x42\\x42\\xc5\\x81\\x2d\\x72\\x45\\xa4\\xe9\\x26\\x70\\xbc\\xe3\\x54\\x6e\\xfa\\xed\\x22\\xd2\\x74\\xe1\\xe6\\x04\\x8b\\x5a\\x0f\\x01\\xef\\xbf\\x89\\x5d\\xc4\\x24\\x94\\xba\\xf1\\x74\\x71\\x85\\xcb\\x1a\\x4b\\x88\\xfd\\xf1\\xe6\\x09\\x9b\\xaa\\xbc\\x6a\\x5a\\xb5\\xa2\\x72\\x7b\\x1e\\x24\\x87\\x89\\xd1\\x70\\xca\\xa2\\x44\\x96\\x71\\xa8\\xf6\\xe0\\x94\\xc1\\x13\\x32\\xea\\x0a\\xc2\\xaf\\xe8\\x81\\x32\\xc6\\x44\\xff\\x88\\x3d\\x0c\\x49\\x9a\\xd7\\x6a\\x93\\xdf\\x47\\x2f\\xa0\\x13\\xea\\xa2\\x7a\\xb4\\xda\\xd6\\x79\\xd2\\x51\\x1b\\x50\\x49\\xc4\\xe9\\x8b\\xaa\\x2e\\x7b\\x00\\xa5\\x34\\x89\\x1e\\x29\\x02\\x65\\xed\\xb0\\x76\\xf7\\xdc\\xa8\\xe6\\xfe\\xf3\\xf4\\x33\\x03\\x4a\\x16\\x57\\x5f\\x0e\\x53\\xda\\x45\\x77\\xe6\\xb1\\x3f\\x0c\\xb0\\xd7\\x85\\x87\\x0d\\x0d\\x09\\x8d\\x5d\\x80\\xf4\\x13\\xa2\\x68\\xba\\x84\\xe0\\x43\\x1a\\x78\\x69\\x23\\x77\\x13\\x78\\xcd\\x57\\xb8\\x19\\x22\\x58\\xe2\\x63\\x3c\\xdb\\xe0\\x3c\\xc3\\x16\\xa0\\x95\\x09\\x70\\x52\\x6f\\xd3\\xe0\\x93\\x76\\xbc\\xef\\x0d\\x03\\xb7\\x07\\x4e\\x59\\xa5\\xa8\\x4f\\xc6\\x4e\\x79\\x5a\\x81\\x21\\x56\\xd9\\x60\\x56\\x76\\x50\\xbb\\x1e\\x14\\x24\\xb3\\xcc\\x9a\\x4d\\x99\\xd5\\x7b\\xa8\\x58\\xdd\\x1a\\x0c\\xad\\x35\\x32\\xe9\\x98\\x14\\x6e\\x79\\x26\\x40\\x45\\xe2\\x8e\\xbb\\xfd\\x75\\xa4\\x26\\xb0\\xbb\\x85\\x1a\\x24\\x4a\\xd6\\xbe\\x7b\\xd5\\x76\\x5a\\xf4\\x93\\xdf\\xc4\\x4e\\xe3\\x78\\xcd\\x04\\xda\\xf3\\x91\\x7e\\xef\\x2a\\x62\\x06\"},\n{{0x79,0x49,0xa9,0x47,0x2f,0x72,0x5c,0xe7,0xc6,0x8d,0x7e,0xa8,0xfc,0x16,0xe1,0x3d,0x9e,0x0e,0x0a,0x58,0xf5,0x8c,0x24,0xf9,0x22,0x8c,0x88,0xe8,0x02,0x64,0x09,0x0d,},{0xa3,0x70,0xf8,0x28,0x33,0xf8,0x8b,0x4f,0x5f,0x53,0x10,0xb9,0x18,0xe6,0xaf,0x93,0xbb,0x72,0x4b,0xfb,0xdf,0x3c,0x02,0xc5,0x03,0x78,0x0b,0x2c,0x83,0xab,0x6c,0xc6,},{0xe0,0x28,0x98,0xcc,0x7c,0x30,0xee,0x01,0x64,0x82,0x47,0x49,0x7b,0xe8,0xa9,0xc6,0x37,0x85,0x93,0xdc,0x88,0x20,0xbf,0x7c,0x17,0xff,0xcd,0x18,0x11,0x8a,0xf0,0x98,0x79,0xa7,0x69,0xf5,0x39,0xdd,0x92,0x37,0xe9,0x68,0x21,0x16,0x66,0x34,0x99,0x8f,0x94,0x6d,0xa6,0x5e,0x6d,0xba,0xd8,0x27,0x15,0x11,0x66,0x9e,0x2d,0x6c,0xad,0x02,},\"\\x95\\x53\\x86\\xb9\\x2d\\xd6\\xbf\\x92\\x60\\x1b\\xf8\\x1e\\x84\\xd2\\x51\\x44\\xb5\\xfc\\x0b\\xcd\\x7d\\x23\\xc7\\x6e\\x7d\\xeb\\x5f\\x5b\\xa6\\x31\\x6b\\xb6\\x1a\\x5d\\x8e\\x74\\x18\\x5b\\x01\\x29\\x67\\xf0\\xa4\\x43\\x8b\\x53\\x16\\x96\\xde\\xb4\\xb8\\x10\\x10\\x89\\xe0\\xc0\\x48\\x2a\\xdf\\x13\\xc0\\x61\\x31\\x91\\xb9\\x77\\xf7\\x7b\\x04\\x19\\x81\\x41\\x47\\xf5\\xda\\x64\\xa1\\xd3\\xbe\\xb1\\x27\\x5b\\x98\\x49\\xd1\\x29\\x7b\\xa8\\x53\\x2a\\xe0\\xa6\\x47\\xa8\\xac\\xe3\\x95\\xae\\x0e\\xd0\\x0f\\x67\\x34\\x8c\\x5e\\xe5\\xea\\x19\\xb5\\xf1\\xc5\\xbd\\x2e\\x62\\x28\\x18\\xe8\\xad\\xcb\\xa3\\xc1\\x7c\\x27\\x98\\x7e\\x4e\\x3d\\x6d\\x91\\x0a\\x56\\xc7\\xe5\\x14\\x9d\\x3f\\x55\\x74\\xfc\\x06\\x00\\x9b\\xf4\\xdd\\x3e\\x37\\xcf\\xe3\\xeb\\xda\\x2c\\x21\\x16\\xd3\\x66\\xdd\\x88\\xce\\x5e\\xa7\\x2a\\xb3\\x87\\x49\\x05\\x85\\x44\\x3b\\x08\\x6e\\x8a\\xa3\\x8d\\x11\\xd3\\x82\\x0b\\x72\\xc6\\x58\\xe4\\x63\\xcd\\xb5\\x9c\\x53\\x93\\x01\\x1d\\x4a\\x8f\\x4c\\xb6\\xa1\\x95\\x22\\x93\\x04\\xe7\\x62\\x39\\xfa\\x5e\\x8c\\x2c\\xbe\\x0f\\x39\\xdc\\xad\\x13\\x8a\\x0e\\xcb\\x3c\\x51\\x57\\x9e\\xc9\\xa1\\x20\\xa5\\x16\\x07\\xee\\xfe\\xbf\\xa5\\x9a\\x44\\x62\\x0e\\xa5\\xb1\\x91\\x60\\x87\\xea\\x33\\x85\\x33\\xfc\\x13\\x2f\\xf2\\xe4\\xa4\\x3d\\x05\\x2f\\xd0\\x8b\\x6b\\x1b\\x24\\xfb\\x67\\x2f\\x73\\xc9\\xb9\\xba\\x20\\xb7\\xc1\\xc4\\x1e\\xa2\\x4d\\x91\\x2d\\xe9\\xb5\\x55\\xb6\\xe5\\x68\\x2b\\x97\\x06\\x08\\xff\\x22\\x9a\\xd3\\x08\\x6f\\x43\\x1f\\x9b\\xe1\\x90\\xec\\x39\\x22\\x4b\\xa2\\xed\\x8a\\xcb\\x4c\\x8e\\xac\\x85\\x82\\xe2\\x3a\\xaa\\x79\\x82\\x7c\\x44\\xe2\\x48\\xc5\\xba\\x09\\x2d\\xda\\xc0\\xf2\\xf7\\x96\\x84\\xaa\\x93\\xfc\\x06\\x10\\x73\\xe1\\x82\\x1a\\x56\\xaf\\xb9\\xbf\\xec\\x95\\x2d\\xf2\\x71\\x9a\\x9c\\x7a\\x40\\x3e\\x6a\\x93\\xf7\\xa6\\x56\\xd7\\x4b\\x61\\xc1\\xd1\\x90\\x83\\xf8\\xd3\\xf1\\x9e\\x65\\x9f\\xa2\\xb7\\x18\\xe0\\xbd\\x04\\xb6\\x93\\xd6\\x3d\\xaf\\xb8\\x6a\\xdb\\xee\\x5d\\x87\\xc7\\x5b\\x7d\\x12\\x91\\x22\\xf1\\x78\\xa0\\xe6\\x69\\xeb\\x03\\x5c\\xa4\\xd8\\xeb\\x45\\x39\\x7f\\x18\\x51\\x26\\x4e\\x2c\\xf0\\xa0\\xcd\\xd3\\x07\\x20\\xc5\\xe1\\x39\\xcd\\x6a\\x57\\x3f\\x1f\\xa2\\x41\\xca\\xe9\\x42\\x58\\x05\\xac\\x79\\x60\\x3e\\x8d\\xe3\\x50\\xef\\xdb\\x0b\\x9b\\xc9\\x5b\\xa7\\xb0\\x85\\xc1\\xed\\x92\\xc1\\x2a\\xcf\\x53\\xf5\\xd4\\xa1\\x13\\x75\\x98\\x00\\x8f\\x2a\\x36\\x72\\xc8\\x4e\\x5f\\x76\\x9a\\x25\\xc7\\xa4\\xa1\\x65\\x79\\xd8\\x62\\x88\\x77\\x49\\x72\\x60\\x6e\\x4e\\x7d\\x85\\x26\\x3a\\xd2\\x17\\xe0\\xdb\\xcf\\x34\\x3f\\xe5\\x54\\xc1\\x09\\xc5\\xd9\\x40\\x9b\\x79\\x39\\x07\\x3a\\xc5\\x5a\\x03\\x42\\x0f\\xec\\x28\\x9b\\x11\\x4a\\x5c\\x54\\xc2\\x0b\\x45\\xea\\x69\\x93\\x85\\x33\\xad\\xe7\\xb3\\xae\\x85\\xe1\\xa7\\x83\\xdd\\x97\\x89\\x7c\\x3a\\xe8\\x25\\x41\\x83\\xcc\\x54\\x04\\x5c\\x2a\\x18\\xec\\xbe\\x52\\x16\\x91\\xf2\\x61\\x9d\\x9b\\x8f\\x1f\\xb3\\x47\\xca\\x05\\x5a\\x7b\\x0b\\x4c\\x24\\xf6\\x4d\\x17\\x73\\xe0\\x14\\x16\\x44\\x1e\\xfe\\x15\\x99\\x23\\x21\\x7a\\x84\\x87\\x4b\\x9c\\x4e\\xc2\\x65\\xcd\\xaa\\xb6\\x43\\x90\\x80\\x68\\x49\\x78\\x12\\xc1\\xaf\\x15\\xc1\\x88\\x07\\x1e\\x78\\xf5\\x97\\xfe\\xdf\\xce\\x91\\xc5\\xd4\\xc6\"},\n{{0xd6,0x8a,0x5e,0x3c,0x47,0xee,0xdb,0x30,0x99,0xdf,0xfc,0x80,0x4c,0xf1,0x9c,0x5e,0x74,0xbf,0x7b,0xf5,0xf0,0x1f,0x54,0xd4,0xd9,0x1d,0x75,0x74,0xf3,0xd3,0xdc,0x7c,},{0x46,0x46,0x7f,0xe9,0xce,0x3a,0xcf,0xd0,0xd7,0x43,0x46,0xbe,0x21,0xc4,0x62,0x16,0xdb,0x81,0xae,0xce,0x6c,0xe0,0x30,0x8f,0xb8,0xdc,0x63,0x86,0xfc,0x34,0x46,0xcf,},{0x89,0x6f,0xc3,0xca,0xba,0x7f,0xd3,0xfc,0x28,0x5d,0x5e,0xdd,0xdd,0xc0,0x12,0x0c,0xd4,0x6d,0xa7,0xc6,0xef,0xab,0xe6,0x6b,0x15,0x0b,0x00,0x27,0x60,0xb8,0x41,0x4a,0x89,0xac,0x9e,0x7f,0x1f,0x7b,0x7c,0x7b,0x33,0x59,0x8f,0x61,0xf4,0x57,0x18,0xe4,0xff,0x4a,0xc3,0x68,0xff,0x12,0x96,0x14,0xb4,0xfe,0x92,0x19,0xf2,0x37,0xb0,0x09,},\"\\x59\\x6c\\x03\\xd0\\x87\\x3f\\x57\\x2f\\x45\\xc3\\xb1\\x6f\\x0e\\xf4\\xb5\\x2a\\xd2\\xbf\\x59\\xec\\x76\\xd3\\xc0\\xe5\\x34\\xd6\\x2c\\x1f\\x84\\x16\\x4d\\xda\\xa4\\x25\\xfb\\x85\\xc9\\x54\\x84\\x85\\xb7\\x06\\x46\\x77\\xe9\\x9d\\x04\\xc3\\x9b\\x6e\\xba\\x04\\xc9\\x66\\x39\\x7b\\xa6\\xa5\\xf4\\xeb\\xaa\\x69\\xa2\\x41\\xdf\\x95\\xa6\\xe4\\x45\\x02\\x50\\x9d\\x63\\x50\\x55\\x7e\\xbf\\xea\\x60\\x26\\x4b\\x62\\xad\\x7f\\x74\\xd1\\x6e\\x5d\\x25\\xd4\\x59\\x70\\xcf\\xeb\\xeb\\x33\\xe7\\xb1\\xba\\xc3\\x34\\x8d\\xd0\\x3a\\x8e\\x99\\x13\\x3b\\x26\\xbb\\xfd\\x7a\\xa7\\x22\\xc2\\x58\\x7f\\x72\\xd5\\x52\\x6e\\x98\\x0d\\xa9\\xee\\xbd\\xf1\\x08\\x21\\x1d\\xae\\x50\\xbb\\xe8\\xc6\\x5f\\x9a\\xbe\\xe6\\x9a\\x1b\\xbf\\x84\\xc0\\x3e\\x40\\x44\\x8b\\xab\\xad\\x03\\xd3\\xcf\\x3b\\x7d\\xe4\\x88\\x7d\\x2b\\x47\\x73\\x77\\x02\\x79\\x64\\x82\\xd2\\x26\\x5c\\x56\\x6b\\x0f\\x62\\x3b\\x53\\xc8\\x67\\x1b\\xd3\\x71\\x9e\\xde\\xc0\\xff\\xd5\\xf4\\x9b\\x49\\xb0\\x72\\xc1\\x56\\x4a\\x57\\xf9\\xba\\xb6\\xb9\\x2d\\x1f\\x06\\x8d\\x75\\x66\\x39\\xa4\\x33\\x14\\x52\\xe6\\x1a\\xa7\\xb2\\x18\\xa8\\x8b\\x9d\\xb7\\x7a\\x19\\xfb\\x82\\xf1\\x3e\\x98\\x68\\xed\\xb7\\x98\\xd5\\xbe\\xec\\xa5\\x5d\\x1a\\xb0\\x95\\xb3\\x16\\x22\\x5f\\x3f\\x63\\x90\\xf8\\x95\\x78\\xf0\\x16\\x04\\x28\\x74\\x7b\\xcd\\x21\\xbe\\x6a\\xe1\\xd8\\x69\\x91\\xb4\\x8e\\xf8\\x0d\\x56\\x92\\x50\\x85\\x8f\\xeb\\xf3\\x27\\x6b\\xd5\\xde\\x3d\\xb6\\x5a\\x24\\x5c\\x8b\\xdc\\xf1\\x48\\x8c\\x48\\x25\\x96\\x89\\x45\\x78\\x6b\\xed\\x63\\xf3\\xd1\\x3f\\x14\\x09\\x36\\x3b\\x94\\x85\\x60\\x47\\x68\\x58\\xb3\\x96\\xbc\\xe5\\x88\\xe4\\x0b\\x31\\x1d\\xdf\\xc2\\x2a\\xd6\\x22\\xca\\x7d\\x1e\\x69\\x56\\x14\\x64\\xdd\\xa5\\x00\\x9e\\x63\\x8a\\xa5\\xec\\x9f\\x4c\\x03\\x92\\x93\\xaa\\xec\\x75\\x00\\x1f\\xfc\\x68\\xa7\\xcb\\x3a\\xe0\\x18\\x74\\xdc\\x7f\\x39\\xd7\\x50\\x27\\xf5\\x9a\\x28\\x96\\x5f\\xc1\\x95\\x30\\xc0\\x75\\x2f\\xe9\\x9b\\x15\\x3d\\xa7\\xc0\\xe5\\x42\\xbd\\xa7\\x6c\\xa1\\xe1\\x0b\\x7e\\xa1\\x58\\xef\\xb4\\xd8\\x21\\xfb\\xc6\\x5e\\x72\\x71\\xad\\x99\\x41\\x09\\x53\\x15\\x44\\x7a\\xbc\\xad\\x08\\x80\\xa0\\x07\\x5d\\xd0\\x4b\\x13\\x25\\xc7\\x26\\x33\\xac\\xbc\\xb2\\x61\\xfc\\xb4\\x07\\xc2\\x64\\xa3\\x4d\\x70\\xbf\\x1f\\x04\\x4f\\xee\\xad\\x06\\x9a\\xf5\\xa8\\x7d\\xd3\\x52\\xf4\\xbd\\x81\\x10\\xfa\\x17\\x8a\\xdb\\xd8\\xdb\\xf2\\x3c\\x6b\\x57\\x5c\\xdd\\x5d\\xf2\\x2c\\xc9\\xa5\\xcd\\xd3\\x7d\\x9c\\x8f\\xaa\\xb8\\x1a\\x4c\\xb3\\xfb\\x5c\\x4f\\xe7\\xff\\x62\\x9d\\xba\\xa9\\xfc\\x06\\xb8\\x0c\\x1f\\xb6\\x91\\xc2\\x86\\x55\\x95\\x5c\\xfe\\x5c\\xa4\\x41\\x49\\xb1\\x50\\xb3\\xcf\\x14\\x0d\\x9a\\xca\\xcb\\x14\\x31\\x3a\\x72\\xc8\\x40\\x98\\xde\\x72\\xba\\xcc\\x02\\x72\\xd7\\x9e\\xd6\\x61\\x7f\\x72\\xde\\xc8\\x8e\\x19\\xb8\\x44\\x25\\x49\\x2a\\x42\\x9e\\xc6\\xd2\\xec\\x08\\xb8\\x63\\x46\\xdf\\xbf\\x20\\xea\\x2a\\x36\\x19\\xe7\\x7b\\x6a\\xc6\\x42\\x30\\xeb\\xe2\\x5f\\xa0\\x06\\x7a\\xbb\\x5f\\x33\\xee\\x49\\xad\\xc7\\xc4\\x4b\\xda\\x70\\x46\\xd7\\xf2\\x24\\xf2\\xe7\\xa4\\x89\\x56\\x83\\xfc\\xa8\\x68\\x4e\\xd6\\xa0\\x31\\x84\\x4f\\x57\\x86\\xbc\\xda\\x48\\xb5\\x04\\x23\\x94\\x48\\x7b\\x52\\x40\\x2a\\x09\\x90\\x77\\x88\\xa1\\xe1\\x40\"},\n{{0x31,0xe8,0x2b,0xc1,0xcc,0x5c,0xed,0x21,0xcd,0xc8,0xbf,0xc2,0xdb,0xbb,0x97,0x6b,0x08,0x78,0x0a,0xfc,0x69,0x44,0xaf,0x7e,0x88,0xe5,0x0e,0x67,0x87,0x4d,0x84,0xf1,},{0x8d,0xf9,0x77,0xe2,0xb0,0x40,0xac,0xeb,0xd3,0xda,0xfd,0x67,0xb8,0x7f,0x92,0x16,0xe8,0xc3,0x71,0xbe,0xce,0xd6,0x18,0xfe,0xf3,0xa4,0x96,0xd6,0x51,0xa5,0xd7,0xb5,},{0x24,0x07,0x02,0xac,0x6c,0x68,0xd5,0x97,0xd2,0x22,0xda,0x94,0x9d,0x0c,0x47,0xd1,0x6b,0x39,0x0a,0x47,0x7d,0x1f,0xb5,0x79,0xe9,0xd8,0x94,0x8a,0xdf,0x9b,0x3b,0x6a,0x7f,0xd4,0x45,0x8a,0xe6,0x38,0x5b,0x7e,0x2b,0x68,0x4a,0x05,0xb5,0x5c,0x63,0xfa,0x6c,0xd0,0x87,0xbb,0x90,0x11,0x3c,0xba,0xb8,0xe4,0xaf,0x14,0x2f,0xcf,0x81,0x0e,},\"\\x69\\xd4\\x61\\xb6\\xb7\\xa8\\x66\\xe9\\x4c\\xd5\\x9a\\x5a\\x23\\xbb\\xa4\\xa1\\x27\\x66\\x02\\xf0\\x42\\xba\\xa8\\x50\\xd5\\xb2\\x92\\x49\\xd6\\x74\\x3a\\xda\\x04\\xd3\\xd9\\x38\\x21\\x9a\\xbb\\xc2\\x2a\\xda\\x66\\xa1\\x77\\x81\\x97\\xf7\\x0b\\xf8\\x0b\\x59\\x7a\\x8b\\x4a\\xe0\\x0b\\xdb\\x87\\x68\\x12\\xd3\\xab\\x4e\\xc0\\x11\\xdf\\x73\\x34\\x1c\\x85\\x05\\x3e\\xeb\\xcc\\x2d\\xf0\\xac\\xfc\\x21\\x54\\x82\\x83\\xb5\\x53\\xec\\xde\\x01\\x54\\x82\\x8e\\xd5\\xaf\\x47\\x57\\x19\\x85\\xf8\\x97\\x67\\xb0\\x05\\xb6\\x22\\xc9\\xe7\\xc0\\x79\\xdd\\xe6\\x94\\xe4\\x9d\\xc0\\x55\\x0c\\x79\\x18\\xcc\\x51\\x5c\\x27\\x4d\\xbd\\x9c\\x54\\x69\\xd2\\xf1\\x8e\\xcd\\x90\\xde\\x66\\x4e\\x03\\xca\\x41\\xe5\\x3b\\xe2\\x0b\\x96\\xe2\\x5a\\xf4\\x0c\\x54\\xab\\x0f\\x7c\\xbe\\x9e\\x05\\xca\\x3f\\xa5\\xa3\\x7c\\x1a\\xa8\\xeb\\xfb\\x64\\x44\\xa3\\x2c\\x49\\x6e\\xfc\\x68\\x15\\x7c\\x69\\xf3\\x58\\xc1\\x5f\\x6a\\xc0\\x9d\\x46\\xef\\xef\\x9a\\x68\\x5d\\xf7\\xe8\\xdd\\x63\\xb3\\x04\\xbd\\x3c\\x63\\x8c\\xcf\\x53\\x2f\\xe9\\x01\\xf1\\x1c\\xf9\\x7c\\x5b\\x1c\\xbe\\xd3\\x3c\\x70\\x63\\x7c\\x72\\x1b\\x02\\x89\\xad\\xf6\\xbb\\x6d\\x87\\xc3\\x04\\x79\\xfa\\x92\\x6e\\x04\\x30\\x74\\x30\\x2b\\x76\\xf1\\x15\\x7d\\x0a\\x81\\xde\\xc4\\x93\\xe8\\x7a\\x3c\\x64\\x3e\\x7a\\x20\\xb7\\xa4\\x15\\x25\\xa3\\x8d\\xb0\\x4e\\x78\\xda\\xe5\\xe7\\x79\\x70\\x66\\xbf\\xae\\x2c\\xf4\\x48\\xa4\\x47\\xe9\\x00\\x4c\\xce\\x8e\\x41\\xf0\\x98\\x79\\x91\\xfa\\xd3\\x03\\x11\\xdd\\xaa\\x45\\x9a\\x26\\x44\\xf4\\xb9\\x41\\xc0\\x68\\xc0\\xd6\\xc0\\x77\\x1a\\xfc\\xf4\\x2b\\xf9\\x13\\x9a\\x68\\x4d\\xa2\\x98\\x48\\x6e\\xcf\\x67\\x52\\x3b\\xf8\\x50\\x9a\\x45\\xba\\x5c\\xb8\\xb3\\x86\\x4a\\xd2\\x2c\\x0c\\x6a\\x82\\x8c\\x6d\\xb7\\x2e\\x37\\x1d\\xe4\\x10\\xb4\\x7d\\xac\\x49\\xae\\x9d\\x3b\\x57\\x02\\xb1\\x73\\x9b\\x8d\\x76\\x0c\\xe9\\x86\\x11\\xc0\\x7d\\x88\\xdf\\x5f\\x04\\x68\\x38\\x08\\xa2\\x1a\\xfc\\x2e\\x61\\x71\\x3f\\xc2\\xc0\\x25\\xcb\\x25\\xfc\\xc4\\xee\\x94\\x18\\x41\\x08\\x3b\\x22\\xf6\\x1e\\x26\\x56\\xfb\\x3b\\x8d\\xad\\x41\\xc2\\x62\\xc8\\x9d\\x2f\\x17\\x61\\x03\\x09\\xf2\\xd5\\xc2\\x95\\x89\\xa2\\xdf\\x61\\xe5\\x51\\x49\\x89\\x50\\x32\\xca\\x98\\x1e\\x45\\x57\\xe1\\x30\\xa2\\x37\\xfc\\x08\\x26\\xfc\\x87\\x25\\x29\\x86\\x1b\\xbb\\x83\\x28\\xd6\\x73\\xf3\\x9b\\x58\\xb7\\x3d\\x06\\x0e\\xc5\\x96\\xbf\\x22\\xe7\\xee\\x08\\x1f\\x44\\xe9\\x2c\\x02\\xa5\\x67\\x76\\x79\\x52\\x0e\\x2a\\x2b\\x4d\\x22\\xc7\\x7f\\x2b\\x21\\x2d\\x5a\\xaf\\x05\\x0b\\xf2\\xc1\\x41\\xe3\\xe2\\x8b\\x85\\x71\\xd4\\x32\\x19\\x37\\x42\\x62\\x35\\xc7\\xa6\\x46\\xd6\\x47\\xe3\\xef\\xe1\\x83\\xc2\\x7b\\x74\\x92\\x56\\x5e\\xca\\xcd\\x7f\\x43\\xc6\\x7a\\x74\\x45\\x3f\\x47\\x80\\xe8\\x87\\x11\\xba\\x2d\\xd4\\xa3\\x94\\x1b\\x12\\xdd\\xd3\\x90\\x92\\x70\\xfb\\x3d\\xeb\\xd4\\x22\\x43\\x6a\\xb6\\x16\\x6f\\x08\\xc9\\x9c\\x88\\x6c\\xc0\\xe8\\xe3\\xce\\xcd\\x06\\x42\\xe4\\x42\\x85\\xb8\\x86\\x4a\\xa4\\x16\\x94\\x3c\\x5a\\x18\\x69\\x74\\xf4\\x64\\x53\\x5a\\x87\\x0a\\x01\\x28\\x61\\xbc\\x2e\\x58\\x71\\x49\\xca\\xe9\\x71\\x62\\x4e\\x61\\xc3\\x1d\\x8a\\x50\\x7e\\x3a\\xd8\\x27\\x73\\xe7\\x23\\xbc\\xb7\\x5d\\xf5\\x4b\\xef\\x84\\x7a\\x40\\x7b\\xcb\\x7b\\x1d\\x57\"},\n{{0xcc,0x56,0xbc,0x7c,0xdf,0xa6,0x11,0x92,0x4e,0x72,0xb0,0x7f,0x68,0xab,0xc6,0xca,0x5b,0x85,0xff,0x8b,0xba,0xcd,0xff,0x40,0x6e,0x51,0xba,0x72,0x0d,0x09,0xa8,0x66,},{0x5f,0xfe,0xe2,0x21,0xab,0x4d,0x0f,0xe6,0xf4,0xc9,0x34,0x6c,0x5e,0x5a,0x4b,0x8a,0x63,0x6a,0x6a,0x0b,0xad,0xce,0x96,0x67,0xbe,0x73,0x9f,0x4c,0x9e,0x67,0x33,0xc1,},{0x9b,0x86,0xa1,0x92,0xb6,0x4f,0x4f,0x04,0x4f,0xfb,0xf8,0x7b,0x41,0xc7,0xee,0x52,0xf7,0xa7,0x21,0xaa,0x32,0x0e,0x7b,0xad,0x64,0x25,0x99,0x59,0x90,0x31,0x5c,0xdd,0x50,0x2b,0xe4,0xe1,0x11,0x60,0x19,0xd1,0x31,0xa9,0x21,0x8d,0x19,0x61,0x4a,0xd9,0x55,0x43,0xb1,0x88,0x9a,0xf0,0xa9,0x7e,0xd4,0xd2,0x56,0xdc,0x33,0xd7,0x6e,0x08,},\"\\x08\\x83\\x04\\xf2\\x2e\\x1a\\x28\\x60\\x62\\xde\\xfb\\xeb\\xb1\\x82\\x7a\\x64\\xb7\\x6a\\x14\\xe8\\x70\\x15\\xe7\\xf6\\x46\\x17\\x87\\x77\\xab\\xa7\\x97\\x04\\x68\\x8d\\x7b\\xf3\\x2e\\x1e\\xfa\\xc9\\x7a\\x9f\\xc3\\x39\\x81\\x0e\\xbd\\x3d\\xf9\\x3e\\x4e\\xa0\\x24\\x68\\x69\\x53\\xed\\x91\\xfa\\x6d\\x2a\\xb6\\xe0\\x7e\\xc7\\x81\\x1a\\x6d\\x91\\xca\\x91\\xb0\\x98\\xdb\\x47\\x25\\xdf\\x65\\x84\\x6a\\x95\\xb8\\x08\\x63\\x5a\\x8d\\x0c\\x5f\\xe5\\xac\\xe2\\x5f\\x07\\x80\\xe8\\x96\\x17\\x7b\\xc1\\xbb\\xa1\\xcd\\xb4\\x44\\x92\\x51\\xc0\\x1b\\x48\\x2f\\x02\\x38\\x62\\xf8\\x8e\\x07\\x2e\\x79\\xcd\\xe5\\xdb\\xd6\\xc1\\xd9\\xad\\x9c\\x07\\xc6\\x06\\xf5\\xdf\\x85\\xa6\\xec\\xa2\\x96\\x6c\\xbf\\xe0\\xa1\\x67\\x39\\x68\\x11\\x2f\\x26\\xa3\\x17\\x05\\x3f\\x16\\x7f\\x61\\x1a\\xf2\\x97\\xef\\xa8\\x02\\xe0\\xa9\\x4b\\x3e\\x1f\\x33\\xa2\\x7b\\x73\\xe5\\x59\\x7a\\xbb\\x22\\x41\\x15\\xeb\\xe7\\x5e\\x29\\x4a\\x1b\\xcd\\xcd\\x97\\x92\\x55\\xb0\\xa8\\x02\\x65\\xc0\\x89\\xaa\\xa7\\xd6\\xbe\\xd2\\xe3\\xd0\\xc9\\x18\\xf5\\x6f\\x4a\\x55\\xf4\\x48\\xd8\\x63\\x36\\x5c\\x6c\\x58\\x46\\xfb\\x9b\\x2b\\x9b\\xb5\\x5f\\x6b\\x7c\\x6d\\xff\\x58\\x47\\xb7\\x1b\\xfd\\xd4\\xbb\\x5b\\x9b\\xb2\\xe4\\x24\\x9b\\xc0\\x24\\x3a\\x02\\xab\\x4d\\x22\\xba\\x78\\xa4\\x3d\\x18\\x21\\x95\\xae\\xd7\\x8f\\xec\\xe8\\x4c\\xb1\\xdd\\xae\\xb9\\xef\\xf6\\x81\\x56\\x04\\x5b\\x29\\x32\\xe6\\x38\\xd7\\x73\\x1d\\x0e\\x8b\\x4c\\x9c\\x8c\\x38\\x3b\\x0d\\x6d\\x39\\x2d\\x21\\xfc\\x64\\x07\\x62\\xc8\\x7d\\x36\\x92\\xb1\\x81\\x0b\\xcc\\x4a\\x42\\x39\\x2f\\xf1\\x3d\\x45\\x16\\x9e\\xcb\\xf0\\x13\\x50\\x55\\x09\\x31\\x05\\x09\\x8c\\x86\\x9b\\x68\\x88\\x7e\\x93\\x4e\\x2b\\x9d\\xa5\\x23\\x2a\\xc6\\xc9\\x37\\x38\\x00\\xf7\\x0b\\x64\\xec\\x64\\xa4\\xaa\\x0c\\xa0\\x44\\xc0\\x77\\x7c\\xa3\\xa3\\xac\\xaa\\x13\\x8c\\x14\\x24\\x96\\x72\\xa5\\x5b\\x24\\xdd\\xfe\\x4d\\xc3\\x57\\x57\\x32\\x41\\xe1\\x4a\\xd0\\xac\\x16\\x47\\x5a\\x8e\\x38\\x67\\x88\\x6d\\x41\\xee\\xa3\\x5f\\xe7\\x93\\x2b\\xa9\\xae\\xaa\\x0c\\x86\\xc9\\xeb\\x6d\\xb7\\x80\\x80\\x49\\xad\\xe7\\xb5\\xcc\\x1a\\x40\\x82\\x2c\\x66\\xde\\xa9\\x3a\\xd2\\x2d\\x44\\xb9\\xe4\\x29\\x04\\xb5\\xb8\\x36\\x84\\xae\\x29\\x31\\xfe\\x36\\xc6\\x08\\xff\\x70\\x96\\xf1\\xb0\\x9f\\x81\\x1b\\x02\\x67\\x28\\x04\\x40\\x6e\\x08\\xed\\x9e\\x77\\x45\\x67\\x6c\\xe0\\x47\\xf0\\xf7\\xf6\\x47\\x08\\xe4\\x9b\\xb7\\x87\\x54\\x72\\x0b\\x8a\\xa2\\x26\\xf5\\x55\\x6a\\xbf\\x05\\xb5\\x65\\x84\\x64\\x52\\x92\\xda\\xd0\\x8e\\x24\\x73\\x63\\x9a\\x8c\\xe5\\x47\\x5e\\x0c\\xe9\\x19\\x2f\\x8b\\xa2\\xdd\\x32\\xce\\x14\\xc9\\x19\\x75\\xab\\x60\\x2f\\x7c\\x13\\x53\\x8c\\x52\\x95\\x2d\\x03\\x96\\x15\\x8c\\x7c\\xc6\\xb9\\x42\\xbe\\x7d\\x92\\x3e\\xeb\\x52\\x3a\\x73\\xb5\\xb4\\x11\\x96\\x6d\\x14\\xac\\x96\\xe5\\xb0\\x96\\xa5\\x29\\x32\\xa4\\x16\\x29\\x2e\\xcc\\xdd\\xb9\\x10\\x71\\xc8\\x85\\x60\\xe7\\x0e\\xcd\\x4f\\xe2\\xfe\\x24\\xd5\\x23\\xfa\\xfc\\xb9\\x8e\\x40\\x21\\x50\\x2f\\x41\\x90\\xa0\\x51\\x5e\\xdc\\xb2\\x40\\x19\\xea\\xca\\x09\\xec\\x26\\x15\\xa9\\xbf\\xde\\xb6\\x0e\\xb3\\x54\\xc8\\x4a\\x1f\\x3c\\xec\\x7f\\xfd\\x7e\\x65\\xa5\\x51\\x5d\\x47\\x95\\x9a\\x4c\\x4e\\xc4\\x8d\\x80\\x21\\xb1\\x75\\x4a\\xe2\\xbf\\x84\"},\n{{0x7a,0x57,0xf2,0xdd,0xa0,0xad,0x03,0x38,0xab,0x9a,0x13,0xc9,0xa3,0x49,0x7e,0x9c,0x75,0x23,0x8c,0x15,0x31,0x58,0x97,0x89,0x22,0x7c,0xd2,0x74,0x9b,0xc6,0xe9,0x50,},{0x6f,0x73,0x8d,0xc5,0xe7,0xd9,0xe2,0x40,0xc9,0xf4,0xd0,0xc0,0x6a,0x5e,0x02,0x17,0x47,0x56,0x8b,0x69,0xa7,0x5d,0x50,0x7a,0x2e,0x0b,0xe7,0xea,0x61,0x35,0x26,0xc5,},{0x98,0x91,0x23,0x76,0x1d,0x93,0x56,0x32,0x78,0xfd,0x0a,0x78,0xae,0xd6,0x4e,0x2d,0xe6,0xf4,0xa7,0x00,0xfc,0x9a,0x70,0xd2,0x18,0x77,0x48,0xac,0x06,0xd9,0xc2,0xc3,0x77,0xd1,0x99,0x5f,0x89,0xc7,0x72,0x7f,0xe2,0xf1,0x20,0x78,0x4e,0x41,0x71,0xc4,0x2d,0x63,0x53,0xac,0x3d,0x4e,0x3f,0x62,0x0c,0x63,0x9c,0x75,0x78,0x6c,0x46,0x0a,},\"\\x8c\\x85\\x75\\xa1\\x1d\\x2f\\xf2\\xc2\\x38\\xe4\\x19\\xcc\\xb0\\x06\\x33\\xd0\\x4e\\x8b\\x8b\\xd7\\x74\\x29\\x01\\xd5\\x88\\xdd\\x6a\\x2f\\x00\\xaa\\x12\\xf0\\x8a\\xe4\\x1d\\xca\\xa9\\x33\\x8f\\x8c\\x47\\xe9\\x53\\x12\\x19\\x2c\\xf6\\xb2\\x45\\xa0\\x0c\\xe6\\x88\\xa0\\x29\\xda\\x56\\xdd\\x1b\\x1d\\xeb\\x0d\\x34\\xb5\\x41\\x4f\\xe1\\xc2\\x1d\\x6b\\x63\\xd0\\x6b\\x85\\x34\\xac\\xe8\\xe8\\x66\\xc9\\x33\\xfd\\x7c\\x5a\\x65\\xed\\xa9\\x5a\\x17\\x37\\xa9\\xec\\xdb\\x17\\x85\\x91\\x49\\xac\\x69\\x69\\x51\\xb8\\x2c\\x23\\x0e\\x82\\x75\\xe9\\x6d\\xd0\\x2f\\xd4\\x55\\xea\\x67\\x53\\x79\\xe6\\x7b\\xa6\\x34\\x84\\xb6\\x28\\x38\\x31\\xfe\\x3f\\xfe\\x52\\xd6\\xec\\x49\\xb7\\x09\\x10\\x67\\x05\\xc9\\xd1\\x9b\\x85\\x9d\\xe9\\xfd\\x20\\x08\\x87\\xcb\\x44\\xd8\\xfd\\xfe\\x69\\x61\\xfa\\x4c\\xa2\\x34\\x09\\x44\\xc7\\x64\\xc7\\x04\\x49\\x12\\x08\\x25\\x7e\\x73\\x54\\x82\\xaf\\x8c\\xb6\\x90\\x41\\xdd\\xe6\\x85\\x24\\x1d\\x3f\\xbf\\x46\\xfd\\xa0\\x57\\x24\\x8b\\x89\\x87\\xbe\\x1f\\x80\\xb5\\x4e\\xb5\\x40\\x09\\xf3\\x24\\xdc\\x45\\x0e\\x88\\x6e\\x79\\xf9\\x12\\x58\\x5b\\x91\\xc9\\xdf\\xaf\\xe9\\x01\\x22\\x62\\xc4\\x71\\x40\\x3b\\x1e\\x8b\\x5c\\x31\\xfc\\x53\\x75\\xa1\\xdd\\xf9\\x9b\\x68\\xed\\xf9\\xed\\x70\\xaf\\x85\\x94\\xf7\\xd8\\x4b\\x2c\\xc4\\x91\\x1f\\xe9\\x05\\x00\\xc6\\xee\\xbf\\xba\\xc0\\x85\\x55\\x35\\x50\\xe3\\x5b\\xd2\\xe5\\x25\\x14\\xe9\\x79\\xe7\\x24\\x1e\\x9f\\x8e\\x34\\xcd\\xf8\\x51\\x3a\\xbe\\x72\\x51\\x0d\\xff\\x3c\\xfe\\xc7\\xe2\\xbc\\x64\\x88\\x64\\x1c\\xfd\\x0a\\x65\\xae\\x0e\\x09\\xeb\\xe9\\x9b\\x15\\xb2\\x9d\\x45\\xea\\x67\\xa5\\x7a\\xad\\x55\\x4d\\x4f\\x8b\\xfc\\xe1\\x38\\x6a\\xce\\x22\\x88\\x39\\xe3\\xa8\\xa5\\x34\\x14\\x0e\\xec\\x3d\\x37\\xd5\\x1b\\xe3\\x61\\xf5\\xea\\x18\\x83\\x73\\x9f\\x56\\x61\\x5f\\x75\\xb0\\x55\\xa0\\x6a\\x91\\x47\\x1b\\xe9\\x8b\\xc9\\x45\\x37\\x83\\xc3\\x58\\x38\\x2b\\xd0\\x55\\x5a\\xe9\\xeb\\x0b\\xdc\\xd6\\x66\\x29\\xa6\\x11\\xfc\\x1a\\x11\\xc6\\x53\\xc8\\x22\\x14\\x58\\x7d\\xec\\x12\\xba\\x12\\x0e\\x25\\x13\\x07\\x0f\\xe6\\x9e\\x98\\x2f\\x7a\\x80\\xad\\x15\\x9f\\x6a\\x32\\x5d\\x97\\x7d\\x01\\xd0\\x50\\xd1\\x16\\xa6\\x2a\\x4f\\x8a\\xca\\xb6\\xc3\\xd6\\x9f\\xf6\\xc8\\x78\\x21\\x3c\\x60\\xa9\\x48\\x45\\xca\\xe1\\x06\\xde\\x6c\\x5d\\x6f\\xe2\\x50\\x8d\\x94\\x56\\x5b\\x7b\\xa7\\x5d\\x58\\xd1\\xad\\x47\\xd7\\x6a\\x20\\xde\\xfa\\x75\\x68\\xcb\\x7f\\xd6\\x6f\\x57\\xcf\\x37\\x74\\xa2\\x1d\\x3f\\xfa\\x7d\\x8a\\xa6\\xd8\\x6d\\xc2\\x84\\xb7\\x0e\\x0f\\x17\\xe7\\x63\\x0b\\xfc\\x10\\xcd\\x1f\\xc9\\xa8\\xd9\\xc5\\x92\\xd3\\x9f\\x24\\xa7\\xb5\\xc8\\xe8\\xaf\\xf3\\x53\\x57\\x7e\\x6a\\xc9\\x00\\x86\\x90\\xc7\\xa1\\x59\\xa7\\xe8\\x3b\\xe5\\xa6\\xae\\x8f\\xca\\x96\\x44\\xbd\\xdf\\xa3\\x7a\\x92\\xb0\\x70\\x55\\xf9\\xfa\\xc9\\xfa\\x97\\xfb\\x3e\\x8f\\x5f\\x4d\\x91\\x7d\\xda\\x5c\\x6d\\xc6\\xea\\x34\\xb6\\x4d\\x30\\x24\\x05\\xbc\\x38\\x06\\x2e\\x07\\xce\\x93\\xa1\\xa8\\x8a\\xed\\x5f\\xba\\xf9\\x95\\xa0\\x9b\\x45\\xb2\\x8a\\xd4\\xa6\\xb2\\x73\\xde\\xc1\\x41\\x3c\\x54\\x04\\x52\\x9d\\x82\\x5b\\x5e\\xdc\\x2e\\x27\\xa3\\x90\\xeb\\x7e\\x8c\\x2b\\x43\\x90\\x5e\\x11\\x6d\\x88\\x7a\\xb5\\xfb\\x99\\x3d\\xfe\\x15\\x0e\\xbd\\xcf\\x81\\x7a\\xe6\\x2e\\x03\"},\n{{0x32,0xef,0x6d,0x78,0x9a,0x1e,0xa3,0x93,0xf1,0xbf,0x9f,0x11,0xde,0x34,0xf5,0x7d,0x65,0x3c,0x4e,0x77,0xd5,0x1e,0x60,0x50,0xfe,0xf4,0xe8,0xd7,0xbf,0x18,0x3d,0xb5,},{0xc1,0xaa,0x18,0x1e,0x62,0x0f,0x60,0x52,0x5c,0x2b,0x17,0xda,0x8d,0x29,0x0b,0xae,0x5d,0x33,0x9e,0x17,0xea,0xbc,0xea,0xb5,0x8c,0xd7,0x6a,0xe0,0x66,0xf4,0x11,0x79,},{0x88,0xf3,0xa6,0xe0,0xbb,0xaa,0x3e,0x06,0x0b,0xc9,0xd9,0x1f,0xe2,0x96,0x8c,0x61,0x12,0x6b,0x20,0x31,0x7f,0x59,0x84,0x2e,0x4a,0xe4,0x87,0x11,0xcd,0xba,0xf6,0x2c,0x6c,0x02,0x07,0x40,0x5d,0x1c,0x48,0x49,0x95,0x02,0x71,0xf0,0xaa,0xa7,0x59,0x30,0x91,0x10,0x9e,0x47,0x8d,0x13,0xf3,0x56,0x96,0x4f,0x7d,0xba,0xb7,0x29,0xaf,0x00,},\"\\x11\\xa9\\xc3\\xc1\\xba\\x7c\\xfb\\x61\\xad\\x10\\x33\\x05\\xc2\\x58\\x86\\xde\\x9f\\x88\\x15\\xc6\\xc2\\x1f\\x17\\xa8\\x73\\x3a\\x02\\x4f\\x94\\x97\\xda\\x05\\x40\\xdb\\x36\\x03\\xa6\\x71\\xaa\\xe8\\x37\\xdb\\xbb\\xa1\\x9e\\x19\\xf8\\x2d\\xdf\\xc8\\xaf\\x85\\x59\\x80\\xa7\\x01\\x25\\xfc\\x61\\xcd\\x7f\\xfd\\x10\\x77\\x7e\\x36\\x6e\\x5e\\x95\\x69\\x92\\x7a\\xf0\\xf2\\x45\\xd4\\xf3\\x9b\\x3f\\xd0\\xf4\\x58\\x79\\xc2\\x53\\x40\\x14\\x12\\x85\\x5e\\x57\\x61\\x90\\x5e\\xd6\\xef\\x31\\x8b\\x6a\\x06\\xea\\x6e\\x9f\\x90\\x6f\\x9b\\xd0\\x16\\xbc\\xb6\\x94\\xa0\\xdf\\x65\\xa0\\x16\\xbd\\xfe\\x84\\x5a\\x09\\xf2\\x3e\\x50\\x86\\xc5\\xaa\\xf3\\x75\\xef\\xeb\\x86\\xda\\x51\\x23\\x9d\\xdc\\x35\\x0b\\xac\\x0c\\xdb\\x03\\xb8\\x74\\xdb\\x15\\x07\\xe6\\xad\\x4e\\x2c\\x9f\\x46\\x02\\x8c\\xa2\\x38\\x83\\x63\\x54\\x14\\x93\\xb6\\xcb\\x92\\xc1\\xdf\\xca\\xa3\\xef\\xd6\\x8c\\x6b\\x4e\\x91\\xef\\xb4\\x67\\x51\\xd2\\x3f\\x4c\\x48\\xa9\\x73\\xf0\\xa5\\xc7\\xc6\\xfe\\x2a\\x12\\x69\\xd2\\xa6\\x9e\\x9f\\xc4\\xab\\x8b\\xa3\\xb9\\x2f\\x79\\x64\\x49\\xba\\x3d\\xc7\\x02\\x45\\xed\\x50\\x5c\\xc0\\xee\\xee\\x16\\x36\\x64\\x7a\\x68\\xc7\\x67\\x9d\\x0b\\x6d\\x65\\x1b\\xba\\x35\\xc2\\x9b\\x81\\x47\\x8d\\x17\\xca\\x36\\x85\\x70\\x7a\\xd6\\x16\\xe6\\xe5\\x60\\x43\\x81\\xf8\\x4e\\xe5\\x2b\\x25\\xad\\x02\\xfc\\x0d\\xfb\\x85\\x43\\x2e\\xfb\\x1f\\xec\\xd0\\x90\\xc0\\x2a\\xd0\\x02\\xc1\\x85\\x7f\\xce\\xd8\\x8f\\xdf\\xb2\\xff\\x26\\xdd\\x0f\\x50\\x18\\xfb\\x47\\xd8\\x13\\x58\\x1f\\x65\\x08\\xca\\x63\\x7c\\x73\\x65\\x17\\x7c\\x51\\x3d\\x1e\\xe0\\x58\\x79\\xa6\\x5c\\x5b\\x67\\x6b\\x3a\\xa8\\x73\\xa1\\x93\\x5c\\x54\\x37\\xea\\xdc\\xb6\\x6d\\xfb\\x05\\x2a\\x5e\\x7c\\x3e\\x81\\xd4\\x4b\\x3d\\xaf\\x69\\x8f\\x42\\x24\\x4e\\xe2\\xee\\x4b\\x6e\\xd2\\xb7\\xe6\\xe5\\x6e\\x61\\xff\\x9c\\xb4\\x5e\\x71\\x9f\\xd7\\x46\\x19\\x8b\\xf2\\xa7\\xde\\x6d\\x25\\xaf\\x3b\\xc6\\xc7\\xb0\\xed\\x8a\\xbe\\x3c\\xb3\\x89\\xaf\\xd8\\x4f\\xfa\\x2a\\x23\\x0d\\x93\\xbc\\x0c\\x29\\xd5\\xa9\\x41\\x9c\\xbf\\xf1\\x1b\\x78\\x83\\x32\\x99\\x21\\x48\\x0b\\x58\\x44\\x65\\x5d\\x99\\x6c\\x7c\\xab\\x29\\xdf\\xb2\\xa3\\x92\\x7b\\x82\\xba\\x7c\\x30\\x6c\\x45\\x77\\xb6\\xf8\\xb5\\xdb\\xe2\\xaf\\xaf\\x9b\\xf1\\x4a\\x8f\\x95\\x54\\xcd\\x01\\xa6\\x9a\\x99\\x1b\\xf2\\x12\\x82\\x8d\\xe1\\xe6\\x31\\x72\\xe8\\x33\\xde\\x06\\x69\\x8c\\xdb\\x3b\\x28\\x71\\x63\\x80\\x31\\x45\\x72\\xbf\\x5b\\xcf\\xd3\\x4e\\xf5\\x2a\\x6f\\xad\\xda\\x87\\xba\\xbe\\x6b\\xac\\xdb\\x20\\xce\\x63\\xc7\\x25\\xcb\\x0f\\xf6\\x1f\\xe3\\x0c\\x1b\\x51\\xdb\\xda\\x2c\\x26\\x25\\xf9\\x9d\\xfe\\xb0\\x29\\xa3\\xe5\\x8c\\xba\\x7d\\x01\\x90\\x51\\x11\\xca\\xf4\\x2f\\x27\\x02\\x5e\\x72\\x0e\\x18\\xee\\xb0\\x7d\\xae\\x91\\x55\\xc5\\x5a\\xa3\\x00\\xe2\\x2e\\xb5\\xe9\\x4d\\xc7\\xa0\\xa8\\x4e\\xe6\\x7d\\x91\\xa9\\x60\\xae\\x08\\xca\\x63\\x2d\\xbb\\x17\\x37\\xfc\\x9a\\x43\\xdb\\xcf\\xb3\\xa8\\x79\\xeb\\x9f\\xbf\\xfd\\x72\\x99\\x33\\x8e\\x26\\x4b\\xc1\\x23\\x7a\\xb6\\xa5\\xbc\\x2a\\x26\\x3c\\xfa\\x99\\xe8\\x54\\x44\\x39\\xd9\\x63\\x31\\x63\\x9f\\xe9\\x40\\x8e\\x54\\xa3\\x50\\x61\\x0f\\xf0\\x1d\\xe3\\xf8\\x57\\x99\\xad\\xeb\\x73\\xd8\\x2b\\xe9\\x38\\x07\\x4d\\xea\\x85\\x8e\\xa6\\x36\\xb6\\x3a\\xbd\"},\n{{0x0a,0x55,0x25,0xa4,0x59,0x8f,0x60,0x99,0x2f,0x86,0xba,0x1a,0xb9,0xee,0xe6,0xe2,0x67,0x56,0x22,0xf9,0x43,0x28,0x4f,0xc0,0x55,0x3e,0x44,0x46,0xac,0x5a,0x4c,0x53,},{0xdb,0x60,0xd7,0xea,0x29,0xf8,0xd6,0x0d,0xad,0x33,0xd0,0x2e,0xc5,0xf4,0x22,0x32,0x05,0x7b,0xd1,0xc4,0xbd,0x61,0x80,0xa2,0x42,0xcb,0x7a,0xb6,0xf4,0x42,0x67,0x81,},{0x8f,0xa6,0xb0,0xae,0xac,0x71,0x13,0x2a,0xd8,0x82,0x97,0x58,0x68,0xf1,0xbd,0xb8,0xc1,0x1f,0x1a,0x6c,0x1b,0x9c,0x54,0x59,0x4e,0x0e,0x46,0x28,0x6e,0xa6,0xc9,0xa5,0xd6,0xd5,0xb0,0xea,0xea,0xca,0x9a,0xe3,0xaf,0x74,0xe7,0x23,0x26,0xb3,0xb6,0xf2,0xea,0xa8,0x93,0xc0,0xec,0x42,0xa4,0x9c,0x56,0xef,0x51,0x4f,0x75,0xc7,0x7f,0x01,},\"\\xf7\\x87\\x32\\x1b\\x42\\xc0\\x8d\\x40\\x52\\x44\\x9a\\x48\\x85\\x93\\xd8\\x85\\xb4\\xe0\\xc3\\x4a\\x5d\\x64\\x14\\x9f\\xa8\\xb9\\xc8\\x5e\\xe5\\x4b\\xcb\\xec\\xb5\\x09\\x09\\xb2\\xa8\\x6b\\x88\\x25\\x8a\\x10\\xe0\\x7e\\x8f\\x8c\\x2d\\x06\\x8a\\x89\\xfb\\x16\\x5a\\x6a\\xce\\x7e\\x64\\x99\\x8b\\xa5\\x7d\\x89\\xd9\\xbf\\x2b\\x8b\\x38\\xa1\\xf6\\xd8\\x36\\x4a\\xee\\x05\\xce\\x33\\x48\\xbe\\xd4\\x8b\\x88\\xc2\\x47\\x3b\\xf5\\xf2\\x66\\x5f\\x51\\xca\\x07\\x3a\\x53\\x05\\x35\\x8e\\xaa\\xd4\\x36\\x5d\\x58\\xb8\\x3b\\xc9\\x81\\x4e\\x25\\xf5\\x4c\\x37\\xcd\\x9b\\x68\\xa8\\x08\\xa5\\x7d\\x6c\\x2d\\x7d\\x7b\\x6d\\xeb\\x5f\\xe2\\x0f\\x4f\\x96\\xfe\\x72\\x5f\\x8d\\xe6\\x5c\\x29\\xa4\\xf1\\xcc\\xef\\xd7\\xc2\\xc6\\xf2\\xfc\\x01\\x16\\xd5\\x86\\x76\\xac\\xbc\\x58\\x69\\x1c\\x79\\xc2\\xb0\\x06\\x78\\x5a\\x09\\x75\\xa3\\x1d\\x8d\\x3c\\x94\\x91\\x61\\x59\\x6a\\x06\\x8a\\xaf\\x22\\x26\\xab\\x84\\x25\\x50\\xe9\\xc0\\xb2\\x61\\x0a\\x29\\x53\\x1d\\x1f\\x3f\\x7f\\x00\\x82\\x6b\\xb6\\xc7\\xdb\\xe0\\x4e\\x28\\xae\\x1b\\x9f\\xf6\\xf8\\x88\\xa4\\x9d\\x82\\x81\\x2f\\x45\\x2e\\x1b\\x32\\x74\\x0b\\x23\\x4d\\xdd\\x96\\x42\\xe1\\x8f\\x32\\xad\\x9a\\x9a\\xf7\\xf8\\x95\\x25\\x28\\x67\\x4a\\x2c\\xda\\x25\\xb4\\xf7\\xba\\x86\\x70\\x07\\xff\\xa7\\xf7\\x8f\\x16\\x3d\\xb8\\xf3\\x69\\x14\\x95\\x6b\\xfa\\xec\\xd5\\x0f\\x6d\\x1a\\xf4\\xee\\x13\\x32\\x75\\xa8\\xea\\xab\\x94\\xbb\\xc0\\xae\\x52\\xb6\\xd9\\xb2\\x83\\x26\\x34\\x23\\x2e\\xc0\\xe8\\xb5\\xf8\\x02\\x2d\\x3e\\xf1\\xea\\xd9\\xb7\\x9e\\xf9\\xa1\\x65\\x64\\x27\\x71\\x94\\xf2\\x38\\x0d\\x90\\x21\\xe1\\xf1\\x7b\\x18\\x4b\\x8d\\x3a\\x7a\\x34\\xd1\\x51\\x39\\xa3\\x9c\\x77\\x28\\xc2\\x2e\\x1a\\x3a\\x67\\xa2\\x7a\\x6c\\xa4\\xb8\\xa8\\xa0\\x63\\x6c\\x60\\x54\\xd0\\xf7\\x41\\xf0\\x46\\x67\\x36\\x19\\xfc\\x6b\\x07\\x0e\\x62\\xff\\x48\\x62\\xf5\\x9d\\x26\\x90\\x07\\xf3\\x43\\x13\\x39\\x63\\x7a\\x89\\xf5\\x64\\xc0\\xdb\\x3d\\x9b\\xcf\\xcd\\x19\\xfc\\x25\\x13\\x8a\\xc6\\x6d\\x47\\x4d\\x80\\xf4\\xad\\x79\\xf6\\xd1\\xe7\\x84\\x44\\x08\\xe8\\x80\\x34\\xee\\xaf\\xf4\\xa7\\x90\\x33\\x8d\\x54\\x6b\\xfc\\xd7\\x42\\x4c\\x11\\x9e\\x21\\x1f\\x36\\x3c\\xb8\\x9c\\x88\\x87\\x49\\x34\\x6a\\x89\\xd3\\x2f\\x02\\x3b\\xb6\\xb0\\x36\\x6a\\x1e\\xde\\x43\\x25\\x03\\x2a\\xa3\\x5f\\x52\\xe9\\xdf\\x93\\x8a\\x50\\x27\\xeb\\xee\\x96\\x88\\xae\\x48\\x0d\\xde\\x1a\\x9c\\x9b\\x42\\xd1\\xa9\\xc0\\x8f\\x71\\x92\\x23\\xdf\\xae\\x1c\\xfc\\xd4\\x9d\\xd1\\x05\\x3a\\xaa\\x38\\x1c\\x24\\xcc\\x9c\\x7a\\xbf\\xcf\\x8f\\x6d\\x86\\xd6\\xaf\\x72\\xee\\xf0\\x53\\x04\\x41\\x2f\\x3d\\xb2\\x58\\x5a\\xa9\\xe0\\xf3\\xa4\\xf1\\xb6\\xd7\\x10\\xd0\\x2a\\xb1\\x1d\\xb1\\xfc\\x90\\xad\\x4d\\xe2\\x5d\\x04\\x29\\x9f\\x31\\x29\\xc2\\x12\\xe9\\xcb\\x73\\xc0\\x04\\x79\\x53\\x45\\x5b\\xf9\\x8e\\xc8\\xfd\\x26\\x74\\xe4\\x7b\\x94\\x99\\x57\\xde\\xed\\xa0\\x18\\xba\\xdc\\x9f\\x2f\\x68\\xa1\\xb1\\x8e\\xf5\\xc5\\x83\\xb0\\x95\\xe0\\x8d\\xd9\\x06\\xda\\x5f\\x22\\x0d\\xa0\\x29\\xb9\\xc4\\x00\\xe3\\xca\\x91\\xc7\\xcb\\xd8\\x7f\\x34\\x30\\xc7\\x42\\x33\\x7f\\x61\\xcf\\x54\\x74\\x5b\\x06\\x22\\xbc\\xb9\\x07\\x62\\xc6\\xba\\xfe\\xf8\\x7e\\x1e\\xc8\\x88\\xc3\\x64\\xfa\\xd6\\x46\\xc3\\x3a\\xcc\\x22\\xaf\\x54\\x38\\xb8\\x4c\\xd5\"},\n{{0x2d,0x5d,0xdf,0xfa,0x2e,0x58,0xc9,0x04,0x51,0xea,0x05,0xde,0x47,0xb8,0xc4,0x92,0x34,0xe2,0x6c,0xed,0x54,0x85,0x4e,0x3a,0xce,0xf1,0x1d,0x8e,0xe6,0x85,0x2d,0xa7,},{0x7b,0xfd,0x1c,0x8a,0x4a,0x0b,0xbb,0x46,0x06,0xd2,0xe5,0xbc,0x09,0x0f,0x56,0xb2,0x0d,0x58,0xf2,0x20,0x4b,0x6a,0xed,0x83,0x1d,0x3d,0xf4,0xd4,0x06,0xb4,0x76,0x05,},{0xce,0xd9,0xd6,0x10,0x10,0x33,0x9c,0x47,0x1d,0xdf,0x9f,0xef,0xca,0xa8,0x2d,0x1e,0xab,0x3a,0x2e,0x0e,0x60,0x27,0x85,0x53,0xb4,0xdd,0x9f,0x39,0x5b,0xe5,0x81,0x49,0xc9,0x15,0x94,0xe5,0x61,0x8b,0x0b,0x10,0xbf,0x3a,0xab,0x94,0xf1,0x59,0xb5,0x30,0xf6,0x44,0x63,0xee,0xd6,0x6f,0xa2,0xac,0xe5,0x4f,0xd9,0x25,0x72,0xa0,0x6a,0x0e,},\"\\x4f\\x1c\\x5b\\x4e\\x6f\\xac\\x3b\\xaa\\x3e\\x90\\x10\\xf3\\xbf\\x29\\x3c\\x77\\x9e\\x61\\xfd\\x7b\\xbe\\x05\\xa5\\x86\\xf5\\xaa\\xf0\\x80\\x26\\x37\\x16\\x27\\xa2\\x09\\xac\\xd1\\x88\\xaf\\xb2\\xdb\\xe0\\x31\\x15\\x47\\x94\\x05\\x59\\x71\\x16\\x40\\xf7\\x8a\\xea\\x9a\\x62\\x81\\x89\\x62\\xf4\\x45\\xa8\\xe7\\xed\\x6f\\xe6\\xc5\\xf4\\x91\\x62\\xe7\\x43\\x5d\\x1b\\x62\\x5b\\x88\\xba\\x39\\xda\\xb0\\xad\\x56\\xfd\\x2c\\x0a\\xd6\\x51\\x26\\x61\\x36\\x2b\\xf7\\x8a\\xfe\\x5a\\x14\\x16\\xb6\\x47\\xf3\\xb8\\x8a\\x05\\x6c\\x9e\\x72\\x89\\xc9\\xb0\\xcc\\x3a\\xfb\\x43\\x40\\x21\\x98\\x56\\x34\\x93\\xe7\\x37\\xb1\\xda\\x05\\x25\\x06\\xb6\\xc9\\x30\\x6d\\x75\\xad\\x66\\x93\\xdb\\x6d\\x15\\x71\\xf9\\x6f\\x6f\\x52\\x99\\x0c\\x4d\\xf1\\x96\\x65\\xa6\\xbb\\x63\\x07\\x3f\\xdd\\x9f\\x55\\x59\\x68\\x96\\xa2\\xe9\\xc2\\x62\\x2f\\x2b\\x0c\\x2c\\xc9\\x9d\\xdd\\x1b\\x64\\x9f\\xb0\\x31\\x80\\x58\\xd7\\x47\\x94\\xe3\\x8e\\xc6\\x57\\xeb\\xc8\\x2a\\xbd\\x5b\\xed\\xf8\\xb3\\xf4\\xbb\\xa3\\xbb\\x6c\\x99\\x35\\xfd\\xf6\\x82\\x65\\x02\\xb7\\x69\\x04\\x6b\\x36\\xd9\\x6d\\xc6\\x95\\xd7\\xc8\\x54\\x04\\x28\\x4d\\x2a\\x2a\\xb7\\xfc\\xf3\\xb0\\x2f\\x68\\xa1\\x49\\x3d\\xd3\\x83\\xca\\x63\\x39\\xfa\\xc1\\xcd\\xe4\\x7f\\x53\\xc5\\xe0\\x26\\xd0\\x86\\x9f\\xaf\\xfe\\x40\\xab\\xdb\\x98\\x19\\x52\\x30\\xf1\\x7d\\x0c\\xfa\\xa5\\x33\\x31\\x5a\\xfd\\xbf\\xe7\\xd1\\xaf\\xc3\\xa6\\x15\\xb4\\xf7\\x50\\x90\\x23\\x3a\\x50\\x3f\\x88\\x61\\xe3\\x23\\x74\\xe1\\xea\\x95\\x57\\x67\\x42\\x31\\xd9\\xd7\\x37\\xd4\\x77\\xb3\\x3f\\xf8\\x2a\\xc0\\xb2\\xc0\\xba\\x93\\xc1\\x1f\\xb5\\x23\\xe6\\x13\\x61\\x8e\\xd3\\x70\\x52\\x4a\\x60\\xf4\\xd4\\xc8\\x36\\x94\\xc0\\x33\\x60\\x6d\\x1d\\x06\\x9d\\x54\\x4d\\xcc\\xd3\\x90\\x0c\\x37\\xa3\\xb3\\x36\\x3e\\xfb\\xcf\\x66\\x97\\xf9\\xf7\\x62\\xb3\\x3b\\x12\\x94\\x58\\x39\\x53\\xfc\\x53\\x77\\x3e\\xf5\\x67\\x26\\xee\\xb4\\x70\\xeb\\xe9\\x21\\x49\\xb7\\x36\\x48\\xa1\\x61\\x61\\xd4\\x94\\x12\\x0a\\x31\\x8b\\xfb\\x08\\x0c\\xc3\\x8e\\x49\\x96\\xf4\\xb2\\x63\\xff\\xe7\\x8c\\x78\\x77\\xfe\\x13\\xc2\\xfc\\x55\\x21\\x9f\\x44\\x26\\x0e\\x8f\\x25\\x3b\\xdd\\x37\\x9d\\x87\\x0e\\x6c\\x91\\x04\\x8b\\x1d\\x8d\\x4e\\x88\\xb8\\x82\\x18\\xb2\\xb0\\x49\\xfe\\xf5\\x3b\\x2a\\xe1\\xf8\\xc9\\x21\\xed\\x2b\\xcb\\x43\\x46\\x69\\xe3\\x97\\x5d\\xcc\\x3f\\xe4\\x52\\x0c\\xa8\\x02\\x48\\x42\\xf7\\xff\\x2b\\xa1\\xe2\\x2c\\xfe\\xb5\\xd4\\xc9\\xe4\\x35\\xea\\xda\\x60\\x1f\\xf1\\x83\\xb2\\x63\\x64\\xee\\xe1\\xfa\\xa5\\x9d\\x19\\xe6\\xaa\\x4f\\x09\\x75\\x23\\x84\\x96\\xa7\\x09\\xe4\\x6b\\xf6\\x83\\x36\\xb0\\x68\\xbd\\x80\\xb3\\x46\\xf1\\x1f\\xaa\\x38\\x17\\xa0\\x7d\\x1c\\xbd\\x84\\x38\\x2b\\x21\\x02\\x98\\x6f\\x29\\x5a\\x13\\x98\\x07\\x7b\\xa2\\x91\\xd6\\xb5\\xf5\\xbd\\x86\\x0e\\xc6\\x17\\x72\\x73\\x46\\x8f\\x0e\\xe0\\xf2\\x59\\x1b\\x57\\x5c\\x43\\x66\\xe1\\x89\\xb2\\x24\\xe9\\xff\\xa3\\x5b\\xc7\\x8a\\x4a\\xa8\\xc0\\x69\\x54\\xfe\\x33\\xd0\\x80\\xff\\xc0\\xb2\\x3e\\x20\\x9f\\xd0\\xe7\\x94\\x21\\xf1\\xbd\\xe8\\x18\\xa8\\x68\\x90\\xcf\\x17\\x22\\x36\\xdb\\x21\\x16\\x57\\xd1\\x00\\x31\\x19\\xfe\\x91\\xd4\\xe2\\x7c\\x52\\x4c\\xcc\\x11\\xfa\\xde\\x0a\\x25\\xf5\\x7a\\x7a\\x1d\\x67\\x7e\\x1d\\xa0\\xb9\\xc0\\x43\\xd0\\x2f\\xca\\x38\"},\n{{0x4d,0xf5,0xe1,0x1d,0xec,0x80,0xec,0xd8,0x82,0x83,0x75,0x54,0xfa,0x31,0x35,0xb9,0xd5,0x02,0x9d,0xf4,0x20,0x27,0xaa,0x3b,0x3c,0x92,0x92,0x46,0x32,0x9f,0xee,0x96,},{0xef,0xd9,0x28,0x89,0x8f,0xa1,0x44,0xc2,0xd1,0xc8,0x33,0x4f,0xa2,0xe6,0xb5,0xb6,0xa3,0x25,0xa7,0x10,0x2a,0x2c,0x34,0x4a,0x14,0x55,0x41,0xee,0x9a,0x6c,0x04,0x6d,},{0x62,0x54,0x5e,0x6c,0x07,0x80,0x1f,0xde,0x95,0xb4,0x61,0xe2,0xe7,0x53,0xc4,0xb6,0xc8,0x4c,0x25,0x12,0x4e,0xb3,0x30,0xa2,0x72,0x59,0x89,0xd5,0xe3,0x40,0xdc,0xef,0x0c,0x74,0x56,0xd4,0xc7,0xc6,0xa1,0x78,0xa2,0x21,0xb6,0x32,0x83,0x48,0x25,0x3d,0xb7,0x87,0xa9,0xe5,0x51,0x0a,0xb9,0xcc,0x27,0x85,0x15,0xae,0x3e,0x58,0xfb,0x01,},\"\\xfb\\xd6\\xf3\\x71\\xb4\\xc8\\xb1\\x52\\xc9\\xce\\x0c\\x63\\x96\\xa7\\x7c\\x0f\\xe4\\x80\\xbc\\x02\\x00\\x7f\\x33\\x6a\\xc5\\x8f\\xd4\\xad\\xdd\\xa9\\xd6\\x98\\x55\\xac\\x9e\\x93\\xa4\\x5d\\x3e\\x35\\x0f\\x41\\xff\\x50\\x2a\\xa1\\xd8\\xfe\\x15\\x9c\\xe8\\x9b\\x06\\x48\\x02\\xa0\\xa1\\x89\\x0f\\x6a\\x40\\xa7\\xef\\x57\\xc6\\xe5\\xe5\\xed\\x04\\x02\\x80\\xdf\\x07\\xe7\\xf4\\x8f\\xe8\\x19\\xbe\\x63\\x17\\x67\\x10\\x75\\x7c\\xb6\\xe4\\x40\\xb4\\xf7\\x8b\\x57\\x59\\xdc\\xe0\\x28\\xbf\\x58\\x5b\\x3c\\x3f\\xec\\xa1\\xcf\\x59\\x81\\xda\\xda\\xdf\\xd2\\x7e\\xa1\\x24\\xaf\\x45\\xef\\x63\\x85\\x42\\xa8\\x61\\x7f\\xf4\\x9f\\x94\\x70\\xac\\x22\\x85\\x94\\x3c\\x7c\\x3b\\x11\\x63\\xb9\\x03\\x95\\x5a\\xb9\\x9b\\x6e\\xab\\x17\\xf4\\xd4\\x9f\\xfa\\x87\\x20\\x7a\\xbb\\xfc\\x11\\x1c\\x4b\\x91\\xf5\\x41\\x3d\\xfc\\x9b\\xea\\x31\\x84\\x3d\\x11\\x5d\\xde\\xb1\\xda\\x40\\xb4\\x5f\\x58\\xf4\\x7c\\x41\\x7b\\x5e\\x77\\xd5\\x81\\x89\\x34\\xe7\\x30\\xeb\\xa9\\xc4\\x55\\x7b\\xbf\\x48\\xcb\\x7f\\xd4\\xe6\\x64\\x55\\x8a\\xf4\\xfb\\x44\\xee\\x3d\\x94\\xc1\\x6e\\x88\\x36\\x31\\xf3\\x84\\x76\\xf4\\x83\\x7d\\xb9\\x4d\\x54\\x12\\x2f\\xa1\\x34\\xca\\x51\\xa5\\x25\\xaa\\xd5\\xe2\\x4b\\x76\\x01\\x8f\\xee\\x9a\\x2e\\x8f\\x60\\xe2\\xbb\\x48\\xd2\\x4a\\xb8\\xb1\\x46\\xf8\\x4f\\xfa\\x98\\x20\\x12\\x0e\\x7c\\x50\\xd4\\x5c\\x0c\\xfb\\xe3\\x5c\\x8c\\x31\\x41\\x9b\\x07\\x8e\\x90\\x71\\x2c\\xfe\\x93\\x4c\\x3b\\xe3\\xa9\\x4f\\xf2\\x15\\x88\\x73\\xae\\xfe\\x34\\xdc\\x6e\\x36\\x90\\x2b\\x16\\x75\\xe1\\xa4\\x7c\\xb6\\x08\\xdf\\xe9\\x60\\xfb\\x4d\\xa8\\xd2\\xa8\\x49\\x0c\\xc3\\x8e\\xba\\xdc\\x73\\xa1\\x00\\x3c\\x49\\x41\\xfd\\xa8\\xfa\\xe9\\x44\\xa1\\xde\\x8e\\x3b\\x10\\xef\\x6d\\x9e\\x67\\xce\\xec\\x74\\x59\\x77\\xd3\\x33\\xac\\x9e\\x71\\x21\\x41\\x21\\xed\\xe8\\x89\\x22\\x95\\xe2\\x77\\x99\\xf2\\x06\\x67\\x5a\\x9d\\x54\\xac\\x12\\x15\\x9d\\x3a\\x1f\\x95\\x4f\\xd0\\xee\\xff\\xbd\\x30\\xa3\\x19\\x04\\xfb\\x2e\\xee\\x77\\xa8\\xaa\\x9d\\xc4\\xcc\\xbb\\xe2\\x85\\x10\\x96\\x14\\x6a\\x4c\\xe0\\xe8\\x1f\\xb9\\xc6\\x24\\x98\\xdb\\xd8\\x3b\\xf8\\x3b\\x55\\x02\\x9a\\x5e\\x90\\x00\\x86\\xb9\\x53\\x1c\\xe3\\x24\\x7a\\x98\\xf8\\x65\\x4e\\xfd\\x8f\\xe7\\xa8\\x36\\x43\\x1f\\x75\\xda\\xf0\\x86\\x8f\\x01\\x08\\x32\\x6e\\x23\\x02\\x6d\\x2d\\xb4\\xa7\\x21\\x24\\xec\\x4e\\x39\\xd4\\xbb\\xf3\\xd8\\x46\\xc9\\xf5\\x1c\\xa3\\xcc\\x31\\xeb\\x1d\\x02\\xc2\\xba\\x32\\x1e\\x46\\x19\\xf2\\xb6\\x59\\xc0\\xbf\\x0f\\xe5\\xc1\\x9b\\x21\\x3f\\x3c\\x79\\x12\\x4f\\x36\\x43\\xf7\\x4d\\xd0\\xff\\x9c\\xe5\\xd2\\x77\\x27\\xbe\\x6c\\x69\\x58\\x15\\x9c\\x16\\x44\\x04\\xf4\\x33\\x01\\xfe\\x17\\x42\\xe2\\x79\\xde\\x9e\\xfd\\x44\\x1e\\x73\\xe4\\xea\\x7a\\x84\\x25\\x87\\xa7\\x9d\\x11\\x5d\\x36\\xec\\xa9\\xc0\\x3c\\x90\\xff\\x0d\\x14\\x74\\x74\\x10\\x9f\\xc2\\x0a\\x91\\xd7\\xb3\\xcc\\x22\\xeb\\xcb\\xb8\\xc7\\xf7\\x1b\\xd6\\x1e\\x8c\\xae\\x47\\xc5\\x05\\x0c\\xec\\x1d\\x48\\x49\\xa1\\xd4\\xa8\\xe7\\xa6\\xf8\\x45\\x54\\x84\\x37\\x70\\x6c\\x25\\x33\\x1c\\x9e\\x57\\xc2\\xcc\\x6d\\xa1\\x17\\xf2\\xe5\\xa0\\xf4\\xb3\\x68\\xc4\\xcb\\x20\\x62\\x65\\xc4\\x17\\x8e\\x06\\x55\\xff\\x67\\x5f\\xfc\\x1d\\x4c\\x58\\xec\\xeb\\x9e\\xdb\\x4d\\xa3\\xad\\x2c\\x5f\\x62\\xcd\\x13\\xab\\x48\"},\n{{0x85,0xd3,0x23,0x30,0xe2,0xe0,0x73,0xa4,0x60,0x30,0xca,0x0e,0xe2,0xdf,0x2f,0x8e,0xb8,0x74,0xa9,0xfd,0xdf,0x56,0x24,0xc8,0x03,0x17,0x75,0x11,0x1f,0x11,0xee,0xa2,},{0x6e,0xa7,0xde,0x2e,0xd5,0xea,0x5c,0xdf,0x50,0xbf,0xff,0xee,0x77,0xf7,0xbd,0x2f,0xcc,0x21,0xd4,0x86,0x66,0xbb,0x1f,0x48,0x90,0xc7,0x6a,0x69,0xcc,0x7b,0xa4,0xe8,},{0x41,0x43,0x63,0xfe,0xad,0x6e,0x59,0xa3,0x43,0x8c,0xe5,0xa3,0xa2,0x77,0xd6,0x2b,0xdd,0x00,0xfa,0x2e,0xfa,0xc6,0x46,0x3d,0xd1,0x3f,0xcd,0xde,0xd9,0x3a,0x7f,0x10,0x8a,0xe1,0xf5,0x28,0xff,0xc8,0xff,0x4e,0xca,0x33,0x1d,0xab,0x91,0xae,0x5b,0x14,0x16,0xe2,0xdd,0xb7,0x3b,0x6d,0xaf,0x85,0x3b,0x03,0xc8,0x1e,0x99,0x36,0x56,0x0a,},\"\\xae\\x61\\x07\\xf3\\x8f\\xf9\\x4e\\xd0\\x32\\x79\\x03\\xcb\\xaf\\x6c\\x3e\\x3a\\x34\\x98\\xc4\\x7a\\xbb\\x29\\x89\\xa8\\xb3\\x7b\\x3a\\x19\\xdf\\x88\\xc6\\xde\\x79\\x0a\\xcc\\xb4\\xb7\\x25\\x81\\x77\\xb9\\x15\\x1d\\x1f\\xe0\\x40\\x63\\x57\\x7d\\x3c\\x3a\\xcd\\xb4\\xc9\\x29\\x96\\x8a\\xfd\\xad\\x6f\\x25\\x2a\\x67\\xed\\x4c\\xa8\\x9d\\x06\\x0f\\x1a\\x46\\x53\\x98\\x3f\\x7a\\xb5\\x8d\\xdb\\x93\\xe2\\x87\\x8f\\xba\\xb0\\x63\\x7d\\xbb\\xeb\\x95\\xd2\\x5c\\x59\\x86\\x83\\x9d\\xe2\\x74\\x8d\\x9f\\x34\\x02\\x7a\\xee\\xbf\\x1d\\x9e\\xb9\\x36\\xcb\\x67\\x70\\xe0\\x8d\\x45\\xb8\\x09\\x5b\\xac\\x9c\\xbb\\x71\\xdb\\x14\\xe8\\xa3\\x42\\x22\\xb1\\xf2\\x23\\x7b\\x9f\\x0b\\xc9\\x76\\x6a\\x23\\x1a\\x6d\\x10\\x27\\x99\\xf7\\xc0\\x81\\xd5\\x00\\xfb\\xea\\xde\\x60\\x3c\\xdc\\xdd\\x7d\\x5b\\x96\\x5f\\xba\\xce\\x4b\\xe5\\xc2\\xcd\\x93\\x2d\\xcf\\x5f\\x6e\\xd3\\x17\\x22\\xf4\\x1d\\x5a\\x36\\x3b\\x34\\xba\\xbf\\x3f\\x63\\x6f\\xb3\\x03\\x82\\x4a\\xa7\\x01\\xdf\\xe1\\xd3\\xe4\\x12\\x63\\x07\\x8c\\x1e\\xbb\\xdc\\xb1\\xf7\\x3f\\x12\\x45\\xb8\\x3e\\x3f\\xa7\\x0a\\xb8\\xe3\\xf1\\x41\\x3e\\x6b\\x06\\xbd\\xae\\x02\\x2b\\x71\\x4d\\x60\\xa4\\x01\\xd5\\x74\\x80\\xdc\\x64\\xe7\\xaa\\xc6\\xd3\\xde\\x85\\xfc\\x94\\xd8\\x53\\xca\\x13\\xb7\\xe6\\x74\\x15\\x57\\x9d\\x5c\\x67\\x21\\x23\\xa5\\xaf\\x19\\x4b\\xee\\x14\\xae\\x35\\xdc\\x27\\x24\\xff\\x20\\x9f\\x11\\x66\\x63\\x86\\x61\\xf8\\x81\\xb1\\x19\\x4a\\xa4\\xe3\\x1b\\x42\\xa5\\x27\\x96\\x47\\x81\\x59\\x15\\x04\\xba\\x76\\x10\\x3f\\x97\\xb7\\xf5\\x52\\x03\\x15\\x47\\x3e\\xc9\\x4b\\xb0\\x17\\xa1\\x66\\x67\\xb2\\x2a\\x85\\x76\\xa7\\xcc\\x2a\\xc0\\xb7\\x75\\x63\\x03\\xc7\\x56\\xf0\\xdd\\xaa\\xe9\\xd0\\x18\\x9e\\x6c\\x8d\\xe3\\x49\\xf9\\x19\\x57\\xc7\\x2a\\x52\\x9e\\x9f\\x7e\\x9b\\x94\\x56\\x52\\x48\\x40\\xba\\x02\\x34\\x4f\\x55\\xad\\x3c\\x11\\xa0\\xb2\\x59\\x90\\x14\\x39\\xf2\\x65\\x5a\\xb9\\xf8\\xc6\\xc8\\xe8\\xe9\\x60\\xc0\\x57\\xd9\\xc7\\xda\\xfe\\x42\\x5c\\x75\\xd4\\xa3\\x3b\\x80\\x1d\\x45\\x47\\xcd\\x05\\x51\\xa6\\x80\\x2a\\x80\\x05\\xdd\\x72\\x42\\x47\\x64\\xdc\\xf5\\x7e\\x4a\\xa2\\x22\\x90\\xea\\x4f\\x5b\\xaa\\xc5\\x1d\\x79\\x39\\xc0\\x53\\x42\\x88\\x2e\\xe1\\x43\\x80\\xef\\x2d\\x47\\x04\\xb4\\x19\\x49\\xb2\\x28\\x2a\\x1e\\x1a\\x3f\\xa7\\xdd\\xea\\x9f\\xe8\\x3b\\x9f\\xc5\\x1d\\x4e\\xef\\xa2\\xeb\\xac\\x72\\x2e\\x4c\\x0a\\x7c\\x59\\x9b\\x69\\x25\\xf0\\x1b\\x8a\\x20\\x66\\xdc\\x0c\\x26\\xf9\\x21\\x96\\xf4\\xf5\\x03\\xe8\\x87\\xc1\\xe6\\xef\\xb0\\x93\\xf1\\x53\\x13\\x87\\xbd\\x88\\xc6\\x91\\x99\\x7b\\x9b\\x89\\xe3\\xcd\\xf7\\xda\\x12\\xd3\\x73\\x41\\x83\\xa4\\xb6\\x12\\x6b\\xe9\\xe0\\x77\\x47\\x04\\xb5\\x29\\x65\\x9b\\x55\\x48\\xf1\\xb8\\x75\\x12\\xcc\\x18\\x78\\xca\\x4e\\xf5\\x59\\x90\\xb4\\x83\\xc9\\xaf\\x6a\\xa9\\x76\\x35\\xf4\\xf0\\x79\\x49\\x72\\x70\\x65\\xab\\xf2\\x1e\\x21\\xe3\\x29\\x90\\xb1\\xa7\\xd0\\x7d\\x74\\xe0\\x2d\\x9b\\x07\\xec\\x63\\x99\\x31\\xbf\\x9e\\x2c\\xa3\\x94\\x1f\\x2b\\xa6\\xb5\\xef\\x14\\xdc\\xc2\\xa2\\x47\\xd2\\x11\\x7e\\x9c\\xb4\\x1e\\xfa\\x3f\\xcc\\xa2\\x47\\x16\\x64\\x14\\x52\\xbe\\xed\\x2f\\x92\\x65\\x7c\\x2f\\xb7\\x31\\xf0\\xb9\\x4e\\x8c\\x89\\x2a\\x81\\xbb\\xa9\\x1f\\x63\\x9d\\xf4\\x37\\x96\\xac\\xd3\\x01\\x3a\\xc0\\x44\\xf6\\x08\"},\n{{0x66,0x59,0x0d,0x36,0x99,0x84,0xc6,0xf5,0xad,0x3a,0x89,0xc7,0x8d,0xdf,0xca,0x10,0xa0,0xa7,0x65,0x79,0x95,0xdc,0x01,0x88,0xb6,0xb5,0x7a,0xc3,0x16,0x47,0x31,0xa4,},{0x98,0x87,0x3a,0xb1,0x33,0x46,0xee,0x48,0x67,0x7c,0x4f,0x86,0x12,0xdb,0x31,0xeb,0xd1,0x3d,0xb5,0x8b,0x2b,0x03,0x4f,0xd1,0x55,0xaf,0xa8,0x72,0x0f,0x4e,0x93,0xe8,},{0xf0,0xdb,0x63,0xa1,0xbc,0x76,0x24,0x16,0x1c,0xa0,0x06,0x38,0x53,0xb2,0xde,0xe4,0x5f,0xcc,0xd2,0x24,0x71,0xe0,0x12,0x36,0x6f,0x86,0x8a,0x4a,0x9c,0x74,0x65,0x4e,0x13,0xf1,0xa3,0x15,0xad,0x83,0x91,0x6e,0xbf,0xb8,0xdc,0x31,0xa4,0x20,0xf8,0x3c,0xf6,0x45,0xc4,0xc9,0xd1,0x6b,0xb4,0xd5,0xd9,0x9d,0x23,0xc7,0xb4,0x3e,0x23,0x00,},\"\\x2e\\xc1\\xc6\\xb0\\x82\\x97\\x37\\x83\\x2c\\x9c\\x79\\x8a\\x92\\xeb\\x49\\x0b\\x23\\xd3\\x34\\xc3\\xbb\\xe6\\x27\\xcb\\x58\\x2d\\x17\\xa9\\xe4\\x29\\x60\\xef\\xcd\\xc7\\xd3\\x47\\x50\\xe0\\xb4\\xaa\\x86\\x4c\\x20\\x4f\\xb8\\xd6\\x2b\\x47\\x99\\x2e\\x91\\xdb\\xfc\\xfd\\x69\\xf5\\x1d\\x93\\x7d\\xc0\\x6c\\x48\\xc0\\xad\\x43\\xe8\\x59\\x83\\x71\\xcd\\x0e\\x3b\\xbc\\xe4\\x16\\xbf\\xd4\\x4b\\x09\\x44\\xb9\\x93\\xaa\\x29\\x93\\xfd\\xea\\x48\\x71\\x34\\xcd\\xe4\\x22\\x77\\x72\\x3e\\x06\\x83\\xec\\x98\\xe6\\x95\\x95\\xe9\\xb7\\xb1\\x4c\\x8c\\xf9\\x61\\x7a\\x1e\\x30\\xdd\\xb8\\x06\\x0e\\xac\\xba\\x48\\xd8\\x82\\x53\\xb1\\x65\\x33\\x61\\x08\\xde\\x0c\\xb0\\x2f\\xf2\\x0f\\x54\\x24\\xb5\\x67\\x83\\x08\\x69\\xc9\\xb4\\x32\\x9c\\x99\\x45\\xf0\\xbf\\x2f\\x3c\\x7a\\xcd\\x1e\\x77\\x43\\x58\\x93\\x0c\\xd8\\x90\\xfd\\x9c\\xb8\\x64\\xd9\\x50\\x93\\x5a\\xd8\\xa4\\xa3\\xbe\\xcc\\xae\\x8f\\x83\\x3f\\x63\\x56\\x19\\x13\\x71\\xc3\\x26\\x33\\xdc\\xf8\\x82\\x70\\x9b\\x0d\\x98\\xbd\\x80\\x7b\\x38\\x3a\\xed\\x8d\\x7b\\xb0\\x97\\xb6\\xe2\\x62\\xef\\x70\\x0c\\x9d\\x76\\x8f\\x4b\\x56\\x90\\xe3\\xa1\\xa8\\xf2\\x17\\x55\\xd6\\x58\\xdb\\x2d\\x1b\\xfd\\x2f\\x70\\x71\\xe0\\xca\\xec\\x7c\\x2c\\x53\\x81\\xc5\\xef\\x5c\\x2c\\x22\\x81\\xc6\\xbc\\xed\\xc8\\x67\\x39\\x0b\\x90\\xf3\\xb2\\x7b\\x0f\\x0f\\x64\\xa3\\x36\\x58\\x57\\x8a\\x5c\\x0d\\x66\\xe2\\x11\\xe6\\xff\\xf6\\xe8\\x64\\x88\\xac\\xf8\\x2b\\xc0\\xf5\\xe2\\x66\\x4b\\x83\\x69\\x90\\x46\\x03\\x7c\\x0d\\x33\\xd3\\x40\\xff\\x98\\xed\\x62\\x63\\x35\\x4c\\x24\\x27\\x31\\x36\\xff\\x0e\\x4f\\x0f\\x23\\x3a\\x6c\\x82\\x54\\xfc\\x0c\\x90\\x76\\x43\\x30\\xe3\\xb1\\x05\\x7b\\x1e\\x66\\x6d\\x5e\\xcd\\x5a\\x2e\\xfe\\xaa\\x6a\\x10\\x5b\\xfc\\x85\\x84\\x31\\xb8\\x8e\\xd7\\xfe\\x55\\x1e\\xb3\\x2a\\xc0\\xaf\\x27\\xc6\\x6a\\x98\\x03\\xa3\\xbc\\xf8\\x76\\x34\\xc6\\x6c\\x70\\x66\\xdd\\x01\\x97\\xa3\\xcb\\xd2\\xd6\\xf4\\xe6\\x5c\\xfd\\xb8\\xf3\\xda\\xf9\\xf3\\xca\\x5c\\x4f\\x4e\\x0a\\xdd\\x45\\xf5\\x54\\x1a\\xa1\\x8d\\x04\\x1f\\x70\\x6e\\x4f\\xa8\\x7c\\x34\\xe9\\xa2\\x23\\xd8\\x85\\x72\\xeb\\x50\\x08\\x3e\\xe8\\xc7\\xc4\\x75\\xdf\\x56\\x8b\\xc7\\x3b\\xd0\\x8c\\x0f\\x0d\\xea\\xa3\\x74\\xaf\\xb1\\xc1\\x78\\xd0\\xdd\\xdb\\x23\\x6e\\x15\\xa8\\xbc\\x23\\x85\\xed\\x3f\\x52\\xb8\\x76\\x1e\\x63\\x78\\x87\\x40\\x7a\\x20\\xae\\xc3\\xe9\\x9e\\xc8\\x30\\xda\\xe3\\x16\\x7e\\xf0\\xcd\\xb3\\xf3\\xff\\xd2\\x00\\xd8\\x3b\\x75\\xb7\\x49\\x69\\x0b\\x9e\\x25\\xe2\\x17\\x1d\\x07\\x2c\\xa5\\x6f\\x71\\xba\\xec\\xd2\\x1f\\x7d\\x45\\xa1\\x2c\\x91\\xb2\\xc0\\xfb\\x3f\\xea\\x3b\\x15\\x8e\\x54\\x64\\x82\\x84\\xbb\\x00\\x95\\xb3\\x62\\x44\\xb0\\xb1\\x21\\xf9\\xf1\\x38\\x4c\\xe9\\x00\\x43\\x65\\xe7\\x77\\x2f\\xa3\\x08\\x28\\x25\\x0f\\x51\\x98\\x5f\\x1b\\x17\\xb2\\xd2\\xf8\\x0a\\x33\\xe8\\xfc\\x6d\\x85\\x65\\xea\\x15\\xcd\\xaa\\xcd\\x42\\xa8\\x7b\\xd7\\xc9\\x40\\x8b\\x1f\\xe1\\xc7\\x70\\x66\\x5b\\xdd\\xed\\x75\\x4b\\xc2\\xff\\x2e\\xf9\\x1b\\x97\\x3a\\x86\\xb9\\x9f\\x10\\x59\\xc6\\xf2\\x27\\x24\\x6a\\x69\\x8b\\x38\\x54\\x15\\x09\\xdd\\x54\\x49\\xfc\\xe6\\x0d\\x38\\x62\\x24\\x18\\x3b\\x7d\\xce\\x1b\\x38\\x84\\xf7\\xba\\xe1\\xc2\\xe4\\xeb\\x59\\x45\\x10\\xb5\\xca\\x58\\x52\\x79\\xd9\\x04\\x1d\\xf8\\x81\\x7b\\x06\\x19\"},\n{{0x41,0xcf,0x07,0x1f,0x48,0x42,0xec,0xd4,0x94,0x19,0x1b,0x8c,0xf2,0x8c,0xc0,0x92,0x31,0x85,0xef,0x1b,0x07,0x45,0x8a,0x79,0xa5,0x9a,0x29,0x6d,0x35,0x49,0x82,0x2e,},{0x6d,0xc8,0xe4,0x46,0xdb,0x1d,0xa3,0x53,0xb5,0x8d,0x0c,0x45,0xd8,0xb4,0xd8,0x16,0xba,0x59,0xe2,0x5b,0xb6,0x80,0x71,0x2d,0x62,0xd6,0xd3,0xdb,0xf7,0x8d,0x06,0x98,},{0x41,0x05,0x2b,0xc4,0x17,0xb2,0x4d,0xc4,0x83,0x83,0x96,0x6a,0xf0,0x14,0x3f,0x9c,0x0b,0xa8,0x5b,0xbe,0xfb,0xda,0xf7,0x91,0xb1,0x6a,0x4d,0xad,0x1f,0x57,0x0e,0xb8,0x07,0x03,0xc0,0xa2,0xcd,0xeb,0x2f,0x7a,0xd6,0xdc,0xd3,0xfa,0x7b,0xdb,0x5c,0x22,0x5e,0x86,0x9c,0xd8,0xfb,0x27,0x8d,0xff,0x06,0x67,0xd3,0x8a,0xcc,0xf3,0xdb,0x08,},\"\\xda\\xeb\\x5f\\x0e\\x84\\xf1\\x59\\x0b\\xca\\x2b\\x9d\\x97\\x19\\xef\\x5d\\x1c\\xfa\\x79\\xe0\\x58\\x34\\x46\\x33\\x2f\\x18\\xe9\\xe4\\xfe\\xb0\\xb1\\xf1\\x53\\x40\\x29\\x7a\\xc9\\xad\\x67\\x24\\xc8\\x5b\\xb1\\x65\\x58\\xea\\x54\\xeb\\x5d\\x70\\x2a\\x47\\x24\\x8b\\xad\\xc6\\x25\\x2a\\x80\\x43\\x71\\xb7\\x4c\\xfe\\x10\\x62\\xd1\\xdb\\xa1\\xec\\x68\\xfd\\x1d\\x4d\\xd0\\x29\\xcb\\x55\\x03\\x4b\\xbf\\x61\\x06\\x82\\x51\\xef\\xf3\\x98\\x36\\x36\\xf6\\xde\\xbd\\x57\\x27\\xbe\\x91\\x99\\x3b\\x3e\\x4d\\x0a\\xbc\\x96\\xec\\x19\\x64\\x21\\xa4\\x7b\\x78\\x93\\xf8\\x39\\x86\\xd6\\xc0\\x32\\x3f\\x0d\\x19\\xaa\\xf2\\xcd\\xe9\\xd3\\x56\\x5c\\x10\\x4c\\x9d\\x31\\x76\\xec\\xb5\\xed\\x5e\\x17\\x3f\\xee\\x52\\xb5\\xa0\\xc4\\x2b\\x6a\\xb2\\xfc\\xb1\\xcc\\xba\\x96\\x49\\xc2\\xc6\\x7c\\x52\\x0e\\x9b\\x96\\xce\\xa6\\x93\\xdf\\x3e\\x58\\x60\\x9a\\xd6\\xa0\\xbd\\x52\\x2e\\xfa\\xaf\\x03\\x85\\x8d\\x24\\x5d\\xd0\\xa3\\x8f\\x84\\xa2\\xfb\\x10\\x20\\xf4\\xdd\\x97\\xc3\\xae\\xef\\x0e\\x24\\x47\\x7d\\x30\\xd2\\x56\\x70\\x1e\\x90\\x0b\\xef\\x26\\xa8\\xa6\\x26\\x9a\\xb6\\x60\\xd7\\x42\\x93\\xa2\\xbf\\x1d\\x20\\xc2\\xcf\\xae\\xbb\\x7c\\x28\\x20\\xf5\\xf5\\xb0\\x74\\x53\\xbb\\x69\\xee\\x76\\x9b\\x52\\x39\\x15\\x39\\xf0\\xc6\\x06\\xd2\\x2e\\xb3\\x92\\x3e\\xe6\\xf5\\xa1\\xd4\\x60\\x50\\xaf\\x90\\xf0\\x11\\xf8\\x51\\xac\\xe7\\x63\\x27\\xd3\\xd1\\x8c\\x48\\x17\\x0a\\x9a\\x25\\xb0\\x4b\\x77\\x0f\\xd9\\x38\\xef\\x8a\\x30\\xb7\\xbd\\x03\\x39\\x1d\\xd3\\x6c\\x51\\x6b\\x62\\xf0\\xcb\\x78\\x67\\x07\\x40\\xe0\\x0e\\x69\\x59\\x5c\\x41\\x8d\\x96\\x72\\x53\\x82\\x0b\\x75\\x4c\\x4f\\xd6\\x66\\xe3\\xcc\\xe1\\x6e\\xe0\\xc9\\x41\\x83\\xbb\\xea\\x70\\x6f\\xe2\\x98\\xe1\\xc9\\x9d\\xdb\\x82\\x12\\x17\\xed\\x90\\x08\\xcc\\x8e\\x8b\\x83\\xbc\\x8b\\x81\\x99\\x15\\xb0\\x7b\\x14\\x6f\\xe7\\x45\\x02\\x4a\\xc3\\xc4\\x61\\x16\\xcb\\x4c\\xce\\x5e\\x32\\xec\\x5d\\x75\\x24\\xa2\\x38\\x8d\\x9f\\xe2\\x97\\xeb\\x02\\x81\\x1a\\xf4\\x54\\x6f\\xcd\\x58\\x60\\xe1\\x4c\\x0d\\x13\\xf0\\x3d\\xd7\\x5a\\x42\\x49\\x61\\x59\\x00\\x07\\x8a\\x3c\\x35\\x8c\\x53\\x42\\x96\\x2b\\xc1\\xbe\\xac\\xf6\\x8c\\x24\\x68\\x21\\xa4\\x59\\xab\\x53\\x21\\xec\\x9f\\x57\\x4f\\x49\\xd1\\x03\\x89\\xf4\\x0f\\x14\\xdd\\xfc\\x85\\x13\\xff\\xe3\\xde\\xaa\\x73\\x36\\x03\\x5a\\x67\\x5f\\xa5\\x85\\x8b\\x49\\x0c\\x5d\\x24\\x77\\x80\\x06\\x4a\\xdb\\xaf\\x75\\xa7\\x63\\x35\\xee\\xc9\\xab\\x91\\x87\\x71\\xb0\\xb1\\xdf\\x51\\x47\\x64\\x2a\\xef\\x4a\\x16\\x6a\\xb1\\x72\\xed\\x60\\x1f\\xed\\x21\\x0f\\x6c\\x0c\\xff\\xd9\\x18\\x69\\xf7\\x49\\x0b\\x57\\xe7\\xc6\\x52\\x41\\x86\\x3e\\x7e\\x8c\\x0a\\x26\\xeb\\xa6\\x3b\\x53\\x42\\xd0\\xfd\\x82\\x14\\xac\\x73\\x1e\\x1c\\x43\\x8d\\x01\\x77\\x11\\x5f\\x6a\\x19\\xe0\\x93\\x5c\\x7a\\xf6\\xbc\\x7d\\xbe\\xb7\\x55\\x11\\xd9\\xbd\\x8e\\x63\\xe3\\xe2\\xf4\\x7a\\xb0\\xdd\\x1c\\xed\\xd7\\xb1\\x80\\xd7\\x4a\\x4b\\x44\\xd4\\x61\\x19\\x7a\\xef\\xdd\\x36\\x20\\x46\\x51\\x66\\xa3\\x9b\\x45\\x39\\x50\\x43\\xce\\x88\\x74\\xcd\\xd7\\x2c\\x60\\x2b\\xd3\\xd2\\xee\\xcb\\xad\\x34\\x66\\xb5\\xcb\\x1a\\xa4\\x1a\\xe9\\x2a\\x8a\\xfe\\xf2\\xd7\\x64\\xce\\xc0\\xc4\\x49\\xd2\\x7e\\xfa\\xc4\\x37\\x93\\x8f\\x28\\x0b\\xea\\x9c\\x50\\xa5\\x82\\xe5\\x7c\\x27\\xf9\\xb3\\xde\\x87\\x2f\\x0c\"},\n{{0xa2,0xc8,0xe1,0x61,0xa8,0xd9,0xd6,0xe8,0x88,0xc3,0xd0,0x9b,0x0b,0x97,0x27,0x37,0x30,0x7a,0x2c,0xbd,0x2a,0xcd,0x7c,0xcd,0x80,0x4d,0x24,0x31,0xac,0x6c,0x58,0xd2,},{0x3a,0x32,0x57,0x75,0x88,0x67,0x32,0xde,0xca,0x40,0x68,0x57,0xa8,0x05,0x60,0x10,0xaa,0xea,0x28,0x75,0x54,0x5b,0xa6,0xf3,0xdf,0x30,0x75,0x45,0x71,0x38,0x69,0x92,},{0x56,0x0d,0x01,0xb9,0x4d,0xf1,0x1d,0x83,0x34,0x77,0x52,0xff,0x51,0xb3,0x54,0x5e,0xf5,0x5c,0x56,0x32,0xae,0x7c,0x8e,0xfb,0x11,0xaa,0xdd,0x83,0x12,0xde,0xf7,0x25,0x62,0xe8,0xf5,0xd7,0x5e,0xce,0x10,0xad,0x46,0xbc,0x96,0xc8,0x60,0xde,0xec,0xe3,0x9e,0x63,0x4a,0x5f,0x50,0x65,0x4d,0x4c,0xdb,0xa8,0x4a,0x8e,0x6f,0x70,0x24,0x0a,},\"\\x83\\xa3\\xbe\\xbc\\xac\\x5f\\x28\\xc5\\x43\\x3e\\x3c\\x4f\\x1e\\x7b\\xf5\\xd2\\xe4\\xdc\\xd2\\xf5\\xe5\\x9d\\xbe\\xe0\\xa8\\x3b\\x07\\x02\\x57\\x15\\x35\\x07\\x46\\xf8\\x56\\x75\\xf1\\xdf\\xea\\x37\\x4a\\xa7\\xd7\\x94\\x28\\x7b\\x89\\x2e\\xf9\\x09\\x7f\\xf6\\xd2\\xe1\\x22\\xf0\\xa6\\x56\\xfb\\xa0\\x79\\x8c\\xdc\\xfc\\xb3\\x64\\x5d\\xfc\\xfd\\x78\\x8c\\x74\\x0c\\x0f\\xd0\\x45\\x20\\xe7\\xa0\\x6a\\x02\\xa0\\x58\\x29\\x63\\x0a\\x2b\\xf0\\xcd\\xfe\\x2e\\xcc\\xa0\\x09\\xec\\x44\\x04\\x99\\x46\\xbb\\x1d\\x23\\x26\\xdd\\xd6\\x1d\\x7e\\xc6\\x40\\xbf\\x69\\xeb\\x44\\xfb\\x23\\xcc\\x1f\\xf4\\x78\\xc5\\x70\\xc7\\x5d\\xb7\\xe7\\x66\\xe3\\x5b\\x7c\\x43\\xdb\\x73\\x68\\x0d\\x14\\x07\\xa9\\x43\\x99\\xfb\\x62\\x1b\\xaf\\x38\\x45\\x74\\x5c\\x1c\\x4e\\xd0\\xb9\\xf0\\xb4\\x85\\xbe\\x2d\\x53\\xc5\\x68\\x54\\x5d\\xdf\\x18\\x77\\x5a\\x83\\x7a\\x05\\xd9\\xc9\\x15\\x7b\\x08\\x4e\\x8c\\xd0\\x1f\\xc3\\x24\\xf0\\x7f\\x11\\x68\\x77\\xe4\\x07\\x5d\\xba\\x24\\x32\\xc8\\xa7\\x75\\x2e\\x9e\\x93\\x95\\x86\\xad\\x93\\xf0\\xc0\\xaa\\x5e\\xda\\xc9\\x4b\\x8d\\x82\\xe5\\x44\\x99\\x97\\xb1\\x5b\\x8c\\x89\\x61\\x58\\x9c\\x44\\x28\\x21\\xaa\\x83\\xb6\\x02\\x39\\xec\\x5f\\x15\\x8c\\x3f\\x5e\\x9e\\xc5\\xbe\\xa5\\x11\\x5d\\x5f\\xed\\x61\\x91\\x8e\\x8f\\xcd\\x5b\\xce\\x61\\xc7\\x77\\xf2\\x0b\\x6b\\xfe\\x80\\x3a\\x69\\xc6\\xfc\\x79\\x4a\\xb8\\xc5\\x7d\\xf2\\x71\\xda\\x86\\x38\\x72\\xa6\\x13\\x35\\xb1\\xfa\\x29\\xf4\\x60\\x8f\\xf0\\x37\\xf7\\x12\\x06\\x98\\x09\\xca\\x64\\x2a\\x03\\x07\\xc7\\x9a\\xa9\\x2e\\x10\\xcb\\x89\\x3a\\x29\\xd1\\x72\\x01\\xa0\\xb6\\xd1\\xb4\\x6a\\x72\\x12\\xb3\\xba\\xec\\x97\\x03\\xc0\\xb0\\x39\\x2b\\xa6\\xb7\\x6e\\x5c\\x9c\\x10\\xf8\\x35\\x99\\xb8\\x1e\\xa2\\x22\\x83\\xf9\\x54\\x7a\\xac\\xda\\xa7\\xf3\\x08\\x96\\xd1\\xff\\x73\\x1e\\x11\\xfb\\x9e\\x56\\xad\\x06\\x03\\x04\\x17\\x11\\x98\\x05\\xba\\xb6\\x35\\x21\\x49\\x6c\\x3b\\xb9\\x2a\\x12\\xf5\\xe5\\x5a\\xfc\\xf6\\x0e\\xd4\\x21\\x77\\x37\\xf3\\x04\\x6b\\x16\\xca\\x50\\x66\\x57\\xa6\\xd6\\x96\\xd7\\x5a\\x6d\\x8e\\x18\\xe9\\xef\\xe2\\xb0\\x8c\\x8b\\x1f\\xa0\\x72\\x82\\x38\\xe2\\x7c\\xfb\\x32\\x21\\x66\\xee\\xe4\\xee\\x76\\x96\\x8b\\x77\\x7b\\x50\\xee\\x6a\\x2b\\x80\\x4e\\x1e\\x9b\\x46\\x01\\x66\\x20\\x13\\x2b\\x65\\x88\\x71\\x8d\\x97\\x8c\\xa2\\xc0\\x02\\x69\\x79\\xc4\\x00\\xd3\\xc5\\x33\\x67\\x51\\x21\\x0f\\x0b\\x00\\xd2\\x69\\xec\\x8f\\x4e\\x2f\\x95\\x59\\xe1\\x80\\x33\\x2d\\xd2\\x70\\xe5\\x0c\\xc9\\x46\\x5c\\x55\\x58\\x93\\x63\\x55\\x52\\x1b\\xc3\\xc9\\x56\\x0f\\xc1\\x9e\\xc1\\x42\\x42\\x12\\x1e\\x6b\\xb2\\xff\\xf8\\xf5\\x03\\x37\\xfc\\x26\\x4a\\xcf\\x1a\\xc1\\x70\\x43\\x28\\x33\\x4b\\x3b\\x52\\xcb\\xa9\\x6d\\x93\\x03\\xb1\\xb5\\xdb\\x85\\x9d\\xae\\x31\\xd8\\x0f\\x17\\x11\\xfb\\xa2\\x51\\xe1\\x0b\\x4d\\x12\\x21\\x28\\xf9\\xfa\\xff\\x68\\x72\\xd0\\xc0\\xb8\\x1e\\xef\\x59\\x54\\x1f\\x83\\x2b\\x0a\\x9d\\xf3\\xa4\\xcd\\xd5\\x91\\xc8\\x77\\x36\\xb1\\xae\\xcf\\x24\\x2c\\x27\\x5a\\x10\\xc3\\xfd\\x67\\x83\\x9d\\xad\\x4e\\xf3\\x99\\xb9\\x49\\x4e\\xcd\\x77\\xf7\\xba\\x5b\\x5d\\x4f\\x2c\\xa3\\x04\\xe5\\xb2\\x29\\x21\\x30\\x7c\\xb1\\x8f\\xa6\\x4a\\xa3\\xd0\\x1c\\x44\\x11\\xc8\\x36\\x9c\\xce\\xde\\x46\\x5e\\xe3\\x69\\xee\\x63\\x7d\\x43\\xd2\\x88\\x26\\xbf\\x60\\xdd\\xde\"},\n{{0xd3,0xd1,0x88,0xb3,0x90,0xba,0xcc,0xd9,0x50,0x24,0x52,0x61,0x46,0xb8,0x2b,0x91,0x84,0xe1,0x97,0xe4,0x6a,0x93,0x40,0xa0,0xe6,0xec,0x18,0xbf,0x75,0xbe,0x7f,0xc5,},{0xd8,0xf7,0x94,0x94,0x8a,0xa6,0x98,0x61,0x00,0x21,0x4e,0x9b,0x7b,0x90,0x24,0x42,0x08,0x06,0xb4,0xc6,0x78,0x46,0xd5,0xbd,0x50,0x61,0x13,0xb3,0x53,0xa2,0xea,0x3d,},{0x16,0x97,0x6b,0x26,0x7d,0xe9,0x6e,0x38,0xdd,0xdc,0x84,0x78,0x07,0x5f,0x6b,0xdd,0x71,0x59,0xe5,0x63,0x34,0xb2,0xd2,0xd1,0x92,0x09,0x46,0x29,0x4f,0x33,0xcd,0x6b,0x7f,0x9c,0x50,0xf8,0x05,0x7f,0x49,0x6c,0xab,0x5d,0x94,0xbb,0x4d,0xca,0x26,0x2f,0x9f,0x0f,0xdf,0x9b,0x1b,0x64,0x74,0x1f,0x4b,0x72,0x2d,0x32,0xef,0xa8,0x22,0x03,},\"\\x5e\\x65\\x65\\x8e\\x42\\x03\\x75\\x43\\x3f\\xd7\\xc1\\xf6\\xbe\\x67\\x88\\x41\\xe5\\x81\\x04\\xf1\\x0b\\x4c\\x67\\x63\\x59\\xd8\\x4f\\xce\\x79\\x92\\xf5\\xc5\\x75\\x57\\xd7\\x38\\xf8\\x30\\xb5\\x05\\xfa\\x0c\\x2b\\x9e\\xab\\xf8\\xd1\\xa9\\xf8\\x1f\\xe8\\xf3\\x15\\xd6\\x62\\xe2\\xb8\\x4c\\xe9\\x52\\x99\\xeb\\xf4\\xe5\\x03\\xb5\\xe1\\xf7\\xf8\\xcd\\xb6\\x68\\xae\\x73\\x3f\\x3d\\x0c\\xdd\\x4c\\x74\\x2a\\xb5\\xf2\\x72\\xbe\\xa4\\xf1\\x8d\\x18\\x3e\\x89\\x23\\x84\\x76\\x62\\xf9\\xa3\\x9c\\xd4\\xb1\\x4e\\xc7\\x6d\\x11\\x03\\x2f\\xe5\\x73\\xc2\\x62\\x01\\xae\\xf6\\x66\\x01\\xce\\xc6\\x83\\xe3\\x4b\\x89\\xaf\\xd9\\x64\\xe9\\x87\\x80\\x1c\\x70\\x6a\\x85\\xe2\\x7b\\xab\\x33\\x70\\x1c\\xd1\\x09\\xbc\\xf0\\x7b\\x27\\xca\\x67\\xf0\\x22\\xc4\\x94\\xa0\\x4c\\xbe\\x5a\\x9c\\x6d\\x63\\xaa\\xd9\\x36\\xcd\\xf1\\xa1\\x80\\xfd\\x05\\x86\\x51\\x98\\xb9\\x6f\\x06\\xa7\\x8d\\xa9\\x57\\x99\\xd3\\xaa\\x4d\\xf3\\xb1\\x70\\x03\\x3c\\x69\\xe8\\xfb\\x04\\x28\\x8c\\x35\\x46\\x55\\x3b\\x57\\x9c\\x0a\\xe3\\x93\\x80\\x62\\xd3\\xd8\\x42\\x1c\\xfa\\x66\\x26\\x85\\x29\\xbe\\xc0\\x27\\x1e\\x53\\xb4\\xee\\x7d\\x09\\x9e\\x71\\x48\\xa8\\x02\\xdf\\x80\\xfe\\x5e\\xed\\xee\\x1c\\x90\\x3a\\xe8\\xed\\x4d\\x64\\x0e\\xad\\x76\\x12\\x62\\xdd\\x40\\x14\\xf2\\x5f\\x93\\x97\\xba\\x3f\\x1c\\x08\\xd8\\x3a\\x3c\\x48\\x5c\\xfb\\x55\\xf8\\x99\\x19\\xaa\\x97\\x2d\\x6b\\x7e\\x77\\x11\\xbe\\x9e\\x30\\xc1\\xeb\\x96\\xa0\\xc3\\x84\\x53\\x09\\xfb\\x23\\xdb\\xc7\\x5b\\x69\\x91\\xdd\\x6e\\x48\\xcd\\xde\\x90\\xe0\\x4f\\x22\\x8e\\x8c\\xcf\\x3b\\xa2\\x3f\\x27\\x47\\xcf\\xb9\\xd3\\x38\\x1a\\x93\\x05\\xf8\\x16\\xf2\\x6c\\xdd\\xe4\\x1c\\x02\\x20\\xfa\\xd2\\x28\\xff\\x6a\\x8b\\x09\\x5c\\x77\\xb6\\xba\\xe8\\xfa\\x33\\x68\\x14\\x27\\x24\\xbf\\x1f\\x5e\\x0f\\x6f\\xbc\\xa5\\x32\\x0c\\x21\\x5b\\x6b\\xa8\\x6b\\x91\\xe3\\xa8\\xac\\xf7\\x50\\xe9\\x3f\\xa7\\xea\\xa6\\x5c\\x4f\\x78\\x5e\\xf8\\x42\\x1a\\x19\\xc1\\xe2\\x7b\\xc2\\x4b\\x42\\x8e\\x08\\xa9\\x02\\x42\\xab\\xac\\x9b\\xd4\\xaa\\x03\\xc6\\x56\\xf8\\xf4\\x6d\\xc4\\x0b\\x36\\x15\\x2c\\x1b\\xd0\\xde\\xf1\\xac\\xfc\\x0d\\xa1\\x0a\\x2f\\xa1\\xdc\\x3d\\xa7\\xac\\xe5\\xa8\\xfd\\x76\\x22\\x7b\\xb1\\xa6\\x02\\x39\\x0f\\xe5\\x7a\\xfd\\x32\\xef\\xe2\\x81\\xf2\\xea\\x6b\\x2e\\x4d\\x25\\x45\\xcb\\x88\\xd2\\x30\\x8d\\x72\\x69\\x1c\\x9a\\x52\\xb4\\xca\\x25\\x23\\x1a\\x01\\x07\\xf2\\x5d\\x11\\x7c\\xc9\\x35\\x39\\x76\\x21\\xc6\\x83\\xbd\\xc8\\xf2\\x2e\\x81\\x03\\x40\\xf2\\xcb\\xac\\x4c\\xea\\xa3\\x46\\x86\\x65\\x26\\x18\\x79\\xf0\\x07\\x42\\x00\\x74\\x3e\\x0d\\xe5\\xf3\\xe5\\x83\\x08\\xb9\\x8b\\x04\\xb8\\xc7\\x14\\x8a\\x4e\\x00\\x4e\\x66\\x7e\\x83\\x2b\\x00\\x84\\xb5\\xf2\\xbd\\xc6\\xfd\\xc9\\x59\\xf2\\xfc\\x28\\xa8\\xd3\\x1d\\x9a\\x9e\\x78\\xe5\\xd5\\xf9\\xc0\\xb1\\x19\\xe5\\xff\\x1f\\x68\\xf7\\xc0\\xda\\xf0\\xc0\\xf1\\x69\\x47\\xcc\\xa5\\xb7\\xce\\xd0\\x96\\x01\\xe2\\xeb\\xed\\x28\\x2e\\xf2\\xbf\\x8f\\xe9\\xa2\\x7e\\xd2\\x7f\\xc5\\xbc\\xda\\x8a\\xed\\x6c\\x71\\xbe\\xe3\\xe7\\x75\\x10\\x04\\x47\\x26\\x89\\xbb\\xf6\\xd9\\xd0\\x79\\x52\\xa2\\x42\\xff\\x87\\x0d\\x7c\\x3f\\x5e\\x1f\\xfc\\x2c\\x1f\\x40\\xfc\\x9a\\xb7\\x57\\x9b\\x39\\x2b\\x55\\x4f\\x3d\\xc5\\x88\\xc0\\x3a\\xb9\\x57\\x43\\x1f\\xe5\\xd0\\x2c\\xbc\\x71\\x1a\\xd4\\x89\\xfe\"},\n{{0x61,0x91,0x7a,0x97,0x5c,0xb7,0xec,0x56,0x4c,0x70,0x8a,0x56,0x53,0x88,0xc5,0x72,0x36,0xa6,0x6b,0x69,0x7d,0xcd,0x5a,0x7f,0x10,0xba,0xe6,0x71,0x57,0x2a,0xc7,0xf0,},{0xec,0xc0,0xf0,0xb9,0x92,0x76,0xe5,0x28,0xf8,0x2b,0x42,0xf2,0xef,0xce,0x85,0x79,0xf8,0x3e,0x63,0x8c,0x6a,0xce,0xfd,0x07,0x28,0x28,0xc0,0x4e,0x43,0x4f,0x55,0xaf,},{0x6a,0xbb,0x3e,0x37,0x7b,0x5c,0x80,0xb7,0x4f,0x77,0x21,0x9c,0x1a,0x9e,0x09,0x6f,0xba,0x0e,0xb6,0x89,0x90,0x81,0x7a,0xcf,0xf1,0x2d,0xba,0x7f,0x61,0xc7,0x7c,0xcf,0x59,0x5f,0xb6,0x60,0x85,0x52,0x00,0x3c,0xea,0xd0,0x6c,0xa1,0x31,0x7c,0x9c,0xd5,0x1a,0xc4,0x72,0x4b,0x29,0xf4,0x09,0x21,0xfb,0x92,0x84,0x33,0x76,0x87,0x64,0x01,},\"\\x6e\\x97\\x0e\\x0b\\x1c\\x92\\xa7\\xf4\\x96\\xa8\\x2d\\x8a\\xe8\\x0c\\xfd\\x0c\\xce\\xf1\\xd2\\xc7\\x99\\xd4\\x17\\x28\\xf3\\x5d\\xdc\\xd6\\x03\\xb4\\x21\\xc2\\xa5\\xab\\x3b\\x48\\x9e\\x78\\xf4\\xb6\\x22\\x97\\xde\\x43\\x7c\\x5a\\xd1\\xa9\\x68\\x3f\\xf8\\x7f\\xa2\\x8e\\xb3\\xcc\\x38\\xce\\x24\\x2a\\xf5\\x94\\x19\\xf9\\xfd\\x43\\xfc\\xaa\\x54\\xfc\\x39\\x89\\x92\\xf8\\xc8\\xe3\\x1f\\x2b\\x33\\xdc\\xcc\\xd0\\xee\\x11\\xba\\x7b\\x38\\x8e\\x8d\\x2a\\x36\\xea\\xd0\\x67\\xc6\\xbe\\xce\\xd5\\x89\\x0a\\xb7\\xd4\\xa9\\x4f\\x55\\xda\\xb9\\x21\\x28\\xa0\\xf8\\x14\\xc0\\xe6\\x89\\x71\\xdf\\x57\\xbd\\x50\\x78\\xa7\\x40\\x31\\x75\\xc7\\xc2\\xfd\\xd4\\xa5\\x24\\x47\\x15\\x3a\\xb3\\x74\\x56\\x72\\x9a\\xee\\x33\\xe5\\xfc\\x93\\xdb\\x8e\\x7f\\x48\\x03\\x09\\x87\\x5e\\xcf\\x6d\\xb0\\x7c\\xe7\\xf3\\xca\\xc5\\xde\\x49\\xe3\\x61\\x27\\x5c\\xa5\\x0b\\x6b\\x71\\x9f\\x4b\\x71\\x5b\\x3e\\x30\\x86\\x3c\\xbb\\x3b\\x71\\x64\\xba\\x9e\\xb9\\x6e\\xf3\\x30\\x4b\\x19\\xad\\x4d\\x74\\xdc\\xe4\\xbd\\x25\\xe7\\x7b\\xbb\\xbe\\xff\\x1e\\xe7\\xd1\\xfb\\x55\\xb9\\xc4\\xf7\\xfc\\x4c\\xd9\\xbd\\x55\\x10\\x8a\\xfc\\xf9\\x9c\\x1a\\x41\\xcd\\x6f\\x6b\\x1a\\xdb\\x29\\x7b\\x10\\x6c\\x8b\\xa2\\x4e\\x31\\x34\\xf8\\x7d\\xd8\\xef\\xe5\\xcf\\x85\\x49\\x22\\x91\\xb9\\x4d\\x66\\x00\\x95\\x8c\\x28\\xb9\\x12\\x2f\\xe6\\xe0\\x1b\\xd3\\xe3\\x29\\xe4\\x2d\\x19\\x26\\xb8\\x9f\\x7a\\x8c\\x40\\xa4\\x98\\x67\\xe5\\xaa\\x3a\\xd7\\x49\\xbd\\x98\\xda\\xe7\\xd0\\x06\\xb4\\x53\\x60\\x9e\\x7d\\xae\\x26\\x36\\x4d\\x91\\x72\\xbe\\x72\\x83\\x33\\x01\\x21\\xed\\x2b\\x40\\x27\\xe0\\x88\\x51\\x18\\x74\\x3a\\x6e\\xa0\\xcb\\x7d\\xc2\\x74\\x09\\xa9\\xb2\\x82\\x0b\\xcc\\x24\\x2e\\xa1\\x0a\\x00\\x93\\x7b\\xf8\\x49\\x20\\x1e\\x0f\\xb6\\x19\\x94\\x21\\xf1\\x63\\xe9\\x79\\x4f\\x2d\\xd4\\xb3\\x32\\x01\\x4a\\x09\\xd3\\xee\\x80\\x71\\xda\\x78\\x77\\x47\\xf9\\x90\\xf5\\x17\\x99\\x19\\x02\\x7d\\xdf\\xf7\\xca\\xb0\\xf5\\x5e\\x9a\\xfa\\x8e\\xcc\\xb1\\x6c\\xc2\\xdd\\x3c\\xbb\\xea\\xd7\\xff\\x7e\\xc8\\x18\\xc2\\x53\\x39\\x3f\\x74\\x87\\x41\\xf5\\x54\\x07\\xf7\\x40\\x8e\\xe3\\x3a\\x42\\xae\\x2d\\x6e\\xcb\\x3f\\xb6\\x00\\xa7\\x1f\\x30\\xab\\x63\\x06\\x06\\xe5\\x53\\xb4\\x36\\x78\\xe5\\x98\\x54\\xf3\\xa2\\x94\\x7b\\xcf\\x4e\\xa0\\xfc\\xfe\\xdc\\x31\\x4d\\x83\\x70\\xd1\\x26\\x63\\x95\\xfd\\xa3\\xc9\\x10\\x5e\\x97\\x59\\x52\\xf6\\x0e\\x30\\x86\\xbb\\x82\\x48\\x15\\x13\\xd6\\xfe\\x8a\\xdb\\x4f\\x95\\xef\\xb9\\xa9\\x5b\\x66\\xd4\\x80\\xd2\\xbb\\x17\\x10\\x78\\xcf\\x40\\x68\\x4a\\xc6\\x9a\\x78\\x9c\\x7f\\xb7\\xfa\\x42\\x53\\x33\\xd7\\x05\\xdb\\x00\\x06\\x67\\x55\\xdf\\x72\\x8d\\xe0\\x2d\\xf2\\x5b\\xae\\x34\\xf1\\xd7\\xd4\\x9c\\xaf\\xfc\\x51\\xe9\\xba\\x2b\\x10\\xb9\\x8f\\xe4\\xcd\\x9d\\x22\\xb7\\x76\\x4e\\xd9\\x31\\xed\\xb5\\xf0\\xb5\\x54\\x49\\x6e\\x99\\x53\\x91\\xe0\\xaf\\x0b\\x8d\\x1c\\x7a\\x82\\x95\\xa8\\xd1\\x5a\\x7c\\x65\\x56\\xd2\\x9c\\xb1\\x9e\\x08\\x55\\xca\\x50\\x5a\\xd0\\x1d\\x2a\\xa3\\x09\\x28\\xa8\\x4b\\xc4\\x89\\x59\\x57\\x6d\\x81\\x2d\\x9b\\x27\\xb8\\xe8\\x88\\x79\\xfa\\xa2\\x80\\x6c\\x08\\x41\\x36\\x0e\\xcd\\x0f\\xe8\\x3f\\x5b\\x84\\x8f\\xc1\\x2f\\x65\\x8f\\x1e\\x7f\\x40\\xe5\\x61\\xc2\\xe7\\x8d\\x3b\\x01\\x25\\x21\\x0a\\x92\\x06\\x1c\\x2d\\xb2\\x1b\\xa6\\x60\\xe8\\x60\\x8f\\xf5\"},\n{{0x7b,0xa2,0x5f,0x27,0x97,0xa2,0x83,0x6f,0x37,0x9d,0x6b,0xbc,0xbe,0x9a,0xbf,0x4f,0x2d,0xef,0x5e,0x52,0xf7,0x2b,0xd9,0xe0,0xb0,0x06,0x57,0x10,0x22,0xfa,0xc2,0xf3,},{0x6c,0x2e,0xd4,0xe8,0xc0,0x12,0x4d,0x5d,0x05,0x40,0x79,0x6d,0x39,0x45,0xd1,0xde,0x71,0xaa,0x69,0x69,0xe6,0xab,0xea,0x0f,0x1b,0x0e,0x6f,0xc4,0x29,0xc7,0x04,0x6f,},{0xf1,0xf5,0x90,0xa9,0x07,0xba,0x98,0x0e,0xb0,0xd6,0x48,0xab,0x4d,0xed,0x5f,0x92,0xfa,0xf7,0xcb,0x85,0x1d,0x81,0xd8,0x58,0xa7,0x8f,0xa6,0xb7,0x7c,0xbb,0xe1,0x2f,0x64,0xd2,0x0d,0xf5,0x27,0x71,0xa7,0xd5,0xe5,0x39,0xa1,0x52,0xd7,0x31,0xe1,0x90,0x3d,0x42,0x11,0xfd,0xcf,0xef,0x9a,0x48,0xb4,0x6c,0x8f,0xd5,0x39,0x4c,0xa0,0x09,},\"\\x17\\x1a\\x34\\x09\\x87\\x80\\x97\\xb3\\xb2\\x2b\\x2c\\x00\\x66\\x0b\\x46\\xe5\\x42\\xc2\\x16\\x4c\\x00\\xbb\\xee\\x54\\x55\\x48\\x37\\x94\\x0e\\x70\\xf0\\x3d\\xa9\\x91\\x6a\\x40\\xf9\\xbd\\xe8\\x28\\x8f\\x45\\xe4\\x7b\\xef\\x7f\\xfe\\x4e\\x55\\x7c\\xd4\\x47\\x40\\x45\\xe7\\x40\\xfd\\x95\\x9d\\x98\\x4f\\x4e\\xc8\\x1d\\xa8\\x8d\\x44\\xa3\\x73\\xc1\\xed\\xa0\\xcf\\xc6\\xb0\\x8e\\x35\\x13\\x73\\xd3\\xb8\\x2a\\xb0\\x90\\x2d\\xf8\\x06\\x3f\\xd9\\x08\\xe7\\x03\\xe0\\xcb\\xec\\x41\\x0a\\xb5\\xcd\\xfe\\xaa\\xe0\\x01\\x88\\xce\\x2a\\xd4\\x2b\\x8b\\xf0\\x4f\\x7d\\xaa\\x5f\\x0e\\xe3\\x33\\xa6\\xf9\\x31\\x1b\\x4a\\xd9\\x81\\x09\\x52\\xd5\\xd5\\xa6\\x4b\\x20\\xf3\\x7e\\x84\\x54\\x15\\xfc\\x3c\\xdd\\x61\\x6f\\xeb\\xec\\x50\\xdb\\x29\\x6f\\xb3\\xf3\\xbb\\x7f\\x6b\\x36\\x6b\\xbe\\x52\\xe4\\x89\\x7a\\x05\\x61\\x7b\\xf7\\xc9\\x81\\xa6\\x2e\\xdc\\xbb\\xbe\\x5d\\xa4\\xc3\\x9c\\xaf\\xa8\\x69\\xaa\\x2b\\x27\\x34\\xe6\\xcf\\xed\\x90\\xed\\x8b\\xe7\\x59\\x49\\x39\\x0e\\xe4\\x45\\x66\\x89\\x24\\x55\\xb8\\x90\\xcf\\x56\\x8b\\x94\\x5a\\xab\\xb7\\x58\\xd3\\x85\\x4b\\xe6\\x53\\x9f\\x3b\\x86\\xbf\\x01\\xd1\\x88\\xe4\\x8c\\xf2\\x62\\x6a\\x0d\\x7d\\x38\\x17\\x03\\xbe\\x6e\\xd1\\x29\\x0d\\xfb\\x94\\x7b\\xc2\\xe0\\xf8\\x3d\\xbc\\x58\\x70\\x30\\x80\\xd7\\xf5\\xb9\\xef\\x19\\xae\\xf9\\x30\\x90\\x8f\\x68\\xf0\\xc8\\x00\\x10\\xa9\\x40\\x1b\\x30\\x3a\\x9f\\x6d\\xa8\\x05\\xbb\\x8a\\x0e\\xd0\\xf3\\x94\\x13\\xee\\xfe\\xdf\\x91\\x9f\\xfd\\x8e\\xa6\\x39\\x1b\\xf9\\x5d\\x42\\x29\\x60\\x4e\\x49\\x45\\x7b\\x8e\\x23\\xbe\\xc6\\x11\\x48\\x4c\\xc7\\xf9\\x83\\x2d\\xd9\\x5b\\xdc\\x3a\\xd1\\x77\\xc0\\x50\\xf4\\xab\\x63\\x3d\\xcd\\xb3\\xe6\\x91\\xf5\\x90\\x28\\x73\\xb3\\x8c\\xb0\\x72\\x0b\\x91\\x13\\x35\\x7f\\xe0\\xcf\\xb9\\x8a\\x68\\xcc\\xcb\\x5d\\x5f\\x08\\x09\\xd5\\x9a\\x37\\x5c\\xf7\\xb5\\xa2\\x75\\xd4\\x3c\\x4c\\x34\\xff\\x68\\xe4\\x48\\x52\\x6e\\x8e\\x1a\\xad\\x44\\xe2\\x00\\x08\\xa2\\x32\\xaf\\xbc\\xf5\\x32\\xa4\\x2b\\x50\\xa0\\x25\\xa1\\xb2\\xee\\x4e\\x07\\x7e\\xb0\\x12\\x5a\\x59\\x3d\\x51\\xa2\\x00\\xec\\x20\\xd8\\x72\\xc0\\x58\\x38\\xad\\x36\\xaa\\xae\\xec\\xcc\\x3e\\xd9\\xef\\x41\\xf6\\xd1\\x22\\x67\\x02\\x17\\xd5\\xc0\\x8f\\x6e\\x13\\xc1\\x72\\x19\\x45\\x89\\xac\\xc3\\xc5\\x9f\\x7e\\xf7\\x90\\xc7\\xc8\\x5a\\xa6\\xd5\\xeb\\x69\\xd4\\xc8\\x9a\\x72\\xf5\\xe7\\xc9\\x24\\x69\\x85\\xc1\\xac\\x0c\\x5d\\x19\\x7f\\x76\\xa7\\x3e\\x37\\x74\\x83\\x9d\\x4a\\xa2\\x09\\x6a\\xca\\x19\\x0a\\x30\\xf4\\xaa\\xc5\\x40\\x57\\xb6\\x4f\\x35\\x8e\\x0e\\x06\\x40\\x0c\\x0d\\xf2\\xf8\\x76\\x41\\x2d\\x34\\x48\\x4c\\x43\\x44\\xf4\\xd7\\xc8\\x66\\x51\\x7d\\x3e\\xfb\\xa4\\xa9\\x0f\\xa7\\x14\\x4c\\x9b\\xa5\\xdb\\x33\\x61\\xdb\\x57\\x69\\x40\\x3e\\xc8\\x16\\x26\\xa5\\x11\\xf9\\x3e\\x30\\xf8\\x58\\x6e\\xad\\xfc\\xaf\\xd9\\xa3\\x6e\\xcf\\xf8\\xd2\\x4b\\x42\\x07\\x9a\\xda\\x8e\\x57\\x9a\\xc3\\x08\\x51\\x17\\x7b\\xce\\x90\\x38\\xb0\\xe1\\x30\\x00\\x72\\xd6\\x8e\\xfd\\xd7\\x23\\xf6\\x35\\x50\\x64\\x84\\x32\\x75\\x81\\x5a\\x66\\xb9\\xd7\\x3a\\x12\\x99\\xaa\\x59\\xa1\\x81\\x2f\\x64\\x52\\xfb\\x41\\x15\\xea\\x2b\\x1f\\x9f\\xf4\\xa9\\x96\\x90\\x59\\x6e\\x3f\\x20\\x22\\xd8\\x1e\\xd8\\x74\\xdd\\x67\\xe6\\x18\\x9c\\xa0\\xe6\\x8b\\x93\\x04\\xe9\\x93\\xa9\\x5b\\x66\\x66\\x5e\\x0d\\x07\\x4c\"},\n{{0xd1,0xe1,0xb2,0x2d,0xe5,0xe0,0x4c,0x9b,0xe4,0x65,0x1d,0xd7,0x39,0x95,0xa3,0x66,0x6c,0xb5,0x35,0x2c,0x65,0xac,0x7b,0x70,0x51,0xb3,0x66,0xfe,0x1a,0xc0,0xc3,0x10,},{0x12,0xfe,0x56,0xf1,0x01,0x2d,0x5c,0x12,0xf1,0x35,0xed,0x59,0x82,0xf3,0x82,0xae,0x5f,0x11,0x43,0xbc,0x90,0xe8,0xcb,0x8c,0x93,0x05,0x17,0x54,0x55,0x1e,0xe9,0x0a,},{0xab,0xaa,0xb4,0xfa,0x6a,0xeb,0x0a,0x0b,0x34,0xee,0x0d,0x61,0x3a,0x0a,0xf0,0x49,0xed,0xb4,0xce,0xdb,0xfe,0x9d,0x3b,0xeb,0xe9,0xc0,0x06,0x18,0xb1,0x15,0xb9,0xd1,0xfa,0x52,0x4e,0xc3,0x49,0x5e,0x13,0x30,0xb0,0x93,0x61,0x81,0xea,0xbb,0x14,0x29,0x9f,0xac,0xcc,0x40,0xea,0xa8,0xcc,0xa5,0x7e,0xd3,0x24,0xb7,0xa6,0x42,0x0c,0x0e,},\"\\xc7\\xf2\\x18\\xb5\\xaa\\x7a\\xae\\x17\\x99\\x62\\x5a\\x56\\xc4\\xd7\\xd7\\xb0\\x26\\x37\\xe5\\x72\\xf1\\x41\\x1a\\x61\\x22\\xf1\\x13\\x79\\x1a\\xa3\\xc6\\x28\\xe8\\x19\\x60\\x2f\\xb4\\xf0\\x33\\x5a\\x61\\x23\\x01\\x3f\\xa6\\x4e\\x9f\\xdc\\x4e\\x4a\\xe4\\x97\\xbd\\x16\\x9c\\x2f\\xa7\\x7b\\xc2\\x36\\x12\\x97\\x17\\xf4\\x62\\x88\\x6b\\x41\\x08\\x93\\xfa\\x78\\x09\\xcb\\xfd\\xc8\\x92\\x22\\x3b\\x40\\xee\\x04\\x1e\\xbd\\x4e\\xc7\\xdd\\xab\\x55\\xbe\\x60\\x81\\xa1\\x64\\x66\\x43\\xa9\\x12\\x0b\\xaa\\x46\\x28\\x9a\\xcb\\xa1\\x5b\\x3b\\x48\\xaf\\x3b\\x7a\\xde\\xcd\\x69\\xf4\\x3e\\xed\\xe7\\x9d\\x9b\\x19\\x57\\xe1\\xd8\\xc3\\x12\\x9e\\x0f\\xa0\\x57\\x9d\\x3d\\x39\\x53\\x70\\x46\\x1b\\x0e\\x12\\x55\\xc9\\xca\\xa9\\x4e\\x47\\x25\\x60\\x1c\\xb9\\xd0\\xe2\\xd6\\x02\\x44\\xd1\\x5b\\x64\\xe1\\xf7\\xbc\\x90\\x15\\x59\\x0a\\xd0\\x99\\x1f\\x12\\xf8\\x26\\x73\\x11\\x20\\x6e\\x9e\\xb5\\xd1\\x6a\\xdd\\x0b\\xa5\\x21\\x8f\\xce\\x5f\\xff\\xe1\\xc9\\xce\\x5f\\xfe\\x1f\\x73\\x11\\x32\\xf4\\xb1\\x2c\\xac\\xb0\\x2f\\x97\\x45\\x17\\x10\\x84\\x6b\\x7f\\x82\\x4f\\x4f\\xa9\\xe0\\x89\\x19\\x26\\x64\\x69\\x78\\x9c\\x00\\xce\\x0d\\x94\\xd3\\x8f\\xa8\\xfe\\xc3\\xf5\\x1f\\x2f\\x88\\x6e\\x9d\\xb0\\x9b\\x80\\x44\\x70\\xb1\\x9e\\xc9\\xe8\\x06\\x63\\xf1\\x55\\xb4\\x98\\x4d\\x2b\\xbd\\x0b\\x2c\\xe9\\x93\\x02\\xe0\\x6c\\x64\\x44\\x4b\\x69\\x6e\\x31\\x29\\xfc\\xef\\x34\\xc3\\xdd\\x00\\xf7\\xab\\x5b\\xed\\xa7\\x47\\xa3\\xfc\\x63\\x39\\x19\\x2b\\x74\\x0f\\x35\\x69\\xb6\\x7d\\xbd\\x6f\\xfa\\x39\\xe2\\x71\\xfa\\xa4\\x00\\xd9\\x61\\x6b\\xff\\x86\\xec\\x49\\xa6\\x59\\xde\\xf2\\xe7\\xf5\\xd4\\x51\\xf2\\xa2\\xb3\\x5e\\x66\\x2a\\x6e\\x7c\\xc2\\x2f\\x1e\\x5c\\xdc\\xde\\x8a\\x59\\x98\\x81\\x35\\xb7\\xe7\\x65\\x62\\x74\\x3c\\x1e\\x6a\\x09\\x99\\x01\\xb3\\xef\\x97\\xcb\\xff\\x23\\xf2\\x09\\xbd\\x70\\x88\\xc2\\xf0\\x32\\x45\\x27\\x9a\\x1d\\xc7\\x8d\\xdd\\xc1\\xbb\\x0c\\x1d\\x35\\x10\\x03\\x57\\x88\\x21\\x26\\xb3\\x28\\xd3\\xd9\\x4e\\x08\\x71\\xb6\\x0b\\xe2\\x53\\xfd\\x1b\\x6e\\xcf\\x03\\xc1\\xdb\\x73\\x1d\\x9e\\xed\\x0e\\xdf\\x2b\\x26\\x43\\x23\\x07\\x80\\xa4\\xd6\\x6e\\x99\\x17\\x9a\\xad\\x1b\\x82\\x40\\x2e\\x55\\xf6\\xd7\\x85\\xeb\\xc8\\x0f\\x8d\\xd2\\xfd\\x2b\\xeb\\x09\\xf3\\x10\\x35\\xdf\\x62\\xc1\\x7f\\x42\\x8e\\xd0\\xb2\\xd5\\x65\\x08\\xdb\\x31\\xe6\\xd2\\xdd\\x5f\\xb6\\x9e\\xbe\\xee\\xa3\\x25\\x70\\x70\\xcf\\x2f\\xe6\\x7d\\x42\\xd2\\x88\\x16\\xa5\\x5d\\xba\\xe0\\xb1\\x85\\xdb\\x44\\x21\\xbb\\xfd\\xae\\xfc\\x79\\xc0\\x8c\\xdc\\x1a\\xcc\\xf7\\x16\\x42\\x56\\x2e\\xc7\\x00\\x36\\xda\\x2b\\xba\\xfa\\x4a\\x89\\x19\\x54\\xc4\\xee\\x40\\x49\\xb5\\x5c\\x64\\x0e\\x91\\x93\\x0e\\x39\\xe3\\xef\\x10\\x18\\xdc\\x16\\x47\\xf2\\x69\\x42\\xc6\\xdb\\xdf\\x4d\\x56\\xe4\\x1e\\xb2\\xc8\\x98\\xc8\\x21\\xfa\\xc1\\x7c\\xc2\\x73\\xe8\\xe4\\xaa\\x56\\x08\\xa8\\x12\\xcf\\x4b\\x82\\xf9\\x60\\x19\\xc2\\x52\\xd5\\x6e\\x78\\x05\\x29\\x8c\\xcb\\xe8\\xce\\x40\\xb0\\xbd\\x0f\\x93\\x3b\\x88\\x4c\\x0f\\xaf\\x97\\xa9\\x58\\xb2\\x04\\x08\\xb8\\xa5\\x29\\x7c\\xce\\x55\\x27\\xb2\\xca\\x21\\x28\\x06\\xe7\\x2a\\x32\\x64\\x45\\x7a\\x7f\\xac\\x86\\x62\\xb8\\x2c\\xa2\\x33\\xe1\\xc7\\x75\\x8d\\xc6\\xe4\\xf1\\xb9\\x99\\x58\\x63\\xf2\\x5f\\x74\\x7b\\xce\\xe4\\x3b\\x63\\x9b\\x1f\\x8f\\x20\\x26\\xd2\\xd2\"},\n{{0xdf,0x29,0x4e,0x47,0x7b,0x1b,0x91,0xc5,0xac,0x5b,0x98,0xc3,0x30,0xd2,0x22,0xd7,0xcd,0x2d,0x53,0xe7,0xd0,0xbc,0x0c,0xa4,0x03,0xdf,0x4e,0xc7,0x53,0x27,0xa2,0x74,},{0x5f,0x0b,0xd2,0x2f,0x2f,0x18,0x96,0xd1,0x56,0x3b,0x4f,0x69,0x40,0xc7,0xdf,0x89,0xef,0xc2,0x58,0xc0,0xff,0x6c,0x2f,0xcd,0x67,0x4d,0xaf,0x4f,0x59,0xfc,0xdb,0x60,},{0x99,0x45,0xab,0x73,0xb5,0x85,0x62,0xb3,0x55,0xda,0xbc,0x4e,0x2b,0x6b,0xe7,0xe0,0x5f,0x37,0xf8,0x95,0x71,0x44,0x0c,0xcc,0x32,0xc1,0xa9,0x47,0x37,0x09,0x5b,0x78,0x66,0x74,0x7d,0x21,0x00,0x70,0x00,0xa0,0xf0,0xe3,0x51,0x11,0x4b,0x88,0xe0,0x13,0x8b,0x55,0xdf,0x44,0xfe,0x72,0xeb,0xe9,0x59,0x14,0x10,0xe7,0x07,0xfa,0x9d,0x02,},\"\\x3e\\x42\\xd6\\x68\\x40\\x96\\x30\\xcb\\xb8\\x48\\x12\\xac\\x7f\\xf1\\x15\\x4f\\x70\\xfc\\xa8\\xbd\\xff\\x3f\\x1a\\x04\\x0f\\xa3\\xaf\\x86\\x8a\\xa1\\xc4\\xe9\\x15\\x08\\xb1\\xae\\xfd\\xf5\\xc3\\xa8\\xb4\\xb0\\x77\\xa4\\xd1\\x62\\xd2\\xc0\\x5b\\xd3\\x64\\xfb\\xbe\\x8c\\x5a\\x08\\x31\\x4c\\x2e\\x07\\xdf\\xfb\\xd6\\xe8\\xdd\\x2e\\x08\\xa0\\xdc\\xc9\\x6e\\xa9\\x2d\\xdd\\x4c\\x97\\xf7\\x9d\\xb9\\x42\\x5a\\x6c\\x6b\\x34\\xc4\\x60\\x43\\xd0\\x9a\\x68\\xb7\\x68\\x72\\x36\\xa9\\x18\\xd2\\x1a\\x56\\x16\\x10\\xa1\\x3a\\xc5\\xe4\\x46\\xe0\\x88\\x1b\\xb2\\x6c\\xc8\\xe2\\x8a\\xad\\x16\\x54\\xf8\\x67\\xad\\x82\\xae\\x33\\xf8\\xf7\\xa7\\x8a\\x65\\xbe\\x57\\x69\\x94\\x75\\x51\\x6a\\x1a\\x87\\x46\\x84\\x3e\\x93\\xa1\\xa2\\x94\\x35\\x46\\x24\\xfa\\xc0\\x4d\\x45\\x2c\\xcf\\xbe\\x4f\\xdd\\x92\\xa9\\x51\\xaa\\xa0\\x7d\\x26\\x67\\x6d\\x5c\\xb0\\x77\\xa5\\x00\\x0d\\x43\\x9c\\x12\\x42\\x76\\xc0\\xdb\\xcf\\x86\\xe7\\xaa\\x15\\x3c\\xc2\\x4b\\x5a\\xff\\x67\\x7c\\x6b\\xad\\xc2\\x61\\xc2\\x89\\xf4\\xa4\\xae\\x51\\x9b\\x2e\\x2f\\xff\\x31\\x2f\\xbf\\x0f\\x5b\\x4c\\x46\\x98\\xf6\\xae\\xdd\\x8f\\xcb\\x1d\\x23\\x48\\x94\\x2d\\xe3\\xfb\\x73\\xba\\x27\\xf6\\xdb\\x14\\xc2\\xf0\\x91\\x80\\x35\\x6e\\x5f\\xca\\xe1\\xad\\xf6\\x5e\\x22\\x42\\x5f\\x8c\\x27\\xf1\\x9e\\x98\\x94\\x83\\x50\\x6e\\x5d\\xf5\\x7a\\x1b\\x61\\x3a\\x22\\xe3\\x45\\x03\\x8b\\x3e\\xa9\\x1c\\x0f\\x78\\xff\\xff\\x46\\x38\\x3f\\x38\\xc7\\x22\\x25\\x35\\x8a\\x34\\x57\\x0d\\x6f\\x66\\x4a\\x17\\x45\\x4a\\x15\\x16\\x13\\xf0\\x1c\\xba\\x77\\x7f\\x62\\xec\\x83\\x18\\x75\\xec\\x5e\\x27\\xd2\\x57\\xf1\\x80\\xb6\\x36\\x6c\\xb1\\x83\\x10\\x7c\\x40\\xf5\\x0b\\x01\\xb2\\xb9\\xbf\\x91\\xb3\\xb5\\x54\\x9e\\xd9\\x31\\xa3\\x53\\x7a\\xa4\\x16\\x89\\xf7\\x2b\\x25\\x7a\\x6a\\xa3\\x9c\\xdc\\x6f\\xce\\xdf\\x14\\x39\\x83\\xbe\\x5b\\xff\\xe3\\xae\\x2b\\x29\\xf8\\x2f\\x88\\x21\\x22\\xd6\\x6a\\x79\\x25\\xf5\\xa7\\x10\\x82\\x6c\\x0d\\xad\\xb7\\xe4\\xfa\\x4e\\xc0\\x79\\xba\\x2e\\x76\\xda\\xda\\x43\\x3f\\x30\\x77\\xcb\\x1e\\xf7\\x46\\x13\\xfc\\x5d\\xbf\\x82\\x58\\xb6\\xda\\x7c\\x73\\xc8\\x66\\x37\\x24\\x57\\xed\\x50\\x0f\\x97\\xf9\\x90\\x7e\\x1f\\xc2\\x63\\x53\\xc7\\x0b\\xa3\\xbd\\x9c\\x36\\x15\\x1d\\x46\\x86\\x5d\\x2c\\x65\\x98\\x65\\x62\\x48\\x5c\\xf8\\x42\\x1f\\xeb\\xbe\\x77\\x7c\\x73\\xe6\\xcd\\x00\\x26\\xd6\\x6d\\x35\\x12\\x8b\\x9f\\x8f\\x33\\x26\\x4a\\xeb\\x56\\xbd\\x3e\\x4b\\x8d\\x1f\\x52\\x66\\x41\\x1e\\xf3\\xb2\\x3b\\x76\\xb3\\x6d\\x4c\\x9d\\xf3\\xc5\\x12\\xfd\\x56\\x0c\\x2b\\xe5\\x2a\\xc5\\x23\\xc1\\x93\\x77\\xad\\x2a\\xdc\\x0e\\x8c\\x30\\x9c\\xf5\\xbb\\xf7\\x2d\\x9e\\xb8\\x5d\\x65\\xa9\\x48\\x47\\xd4\\x97\\xd8\\xd1\\x02\\x42\\x4f\\xb8\\x43\\x81\\x66\\x6e\\xcb\\x1c\\x35\\xa3\\x72\\x5d\\x7d\\x9e\\x92\\x84\\xfd\\xeb\\xb6\\xb3\\x62\\xaa\\x6a\\x9c\\x6f\\xb3\\x7a\\xba\\x87\\x35\\x7f\\x57\\x4c\\x0e\\x63\\xb4\\x49\\x7d\\x49\\x8f\\xfb\\xb7\\xd0\\x69\\x2d\\x78\\x4b\\x4b\\x18\\xce\\x9f\\x91\\x50\\xc1\\x46\\xd3\\xd1\\x8c\\x38\\x2e\\xda\\x04\\x93\\x8c\\x69\\xd0\\x77\\x8f\\x29\\x02\\xd5\\x23\\x5a\\x56\\x52\\xb9\\x7c\\xef\\x6d\\x5f\\x60\\xda\\x6b\\xd7\\xed\\x4f\\xf9\\x7c\\xd9\\x4d\\x49\\x39\\xca\\xca\\x3b\\x6b\\xaa\\x3c\\xfd\\xac\\x04\\xcd\\xa9\\x55\\x96\\xf4\\x67\\xcb\\xc6\\xcb\\xcd\\x92\\x64\\x16\\x77\\x43\\xea\\xc1\"},\n{{0x70,0xc6,0x85,0x9f,0x08,0xcf,0x42,0xb4,0xbd,0xa9,0xeb,0x62,0x97,0x9d,0xff,0xb7,0xcb,0x08,0xeb,0x3d,0xab,0xe9,0x3f,0xe9,0x4b,0x01,0x38,0x46,0x17,0xcf,0x67,0x30,},{0x40,0x1c,0x9e,0x20,0x33,0xe2,0x25,0x9f,0xb6,0x38,0x3b,0x3e,0x8b,0x9e,0x17,0xb3,0xf2,0x06,0x27,0x46,0xbb,0xe6,0x48,0xcf,0x48,0x45,0x16,0xdb,0x0f,0x2f,0x1b,0x06,},{0x0f,0x03,0xa4,0xf1,0x5c,0x33,0x9b,0x4f,0x7b,0x88,0xb4,0xe2,0x1a,0xd9,0xe3,0xd6,0xbb,0xf3,0xef,0xfb,0x7b,0x67,0x8f,0xfa,0x50,0x0d,0x47,0x38,0x3b,0x71,0xa7,0x45,0x4f,0x62,0x90,0x7b,0x56,0xf5,0x9f,0x9b,0x9a,0xf6,0xd5,0xb2,0xa0,0xfc,0x1c,0x73,0x7a,0x64,0x10,0x51,0x95,0x08,0x98,0x99,0xf5,0x7a,0x2c,0x9d,0xba,0x50,0x9e,0x0a,},\"\\xdd\\x06\\x09\\xea\\x15\\x99\\x21\\x39\\x5d\\x11\\xfb\\x2d\\xa8\\xea\\x4f\\x74\\x7d\\x7f\\x74\\xb5\\x80\\x52\\xe0\\x1c\\xad\\x40\\xa2\\x71\\xfa\\x0b\\xbe\\xed\\x91\\x02\\x0f\\x4f\\x0c\\x08\\x46\\xc4\\xf0\\x77\\x78\\xa6\\xaa\\x76\\x8e\\xb5\\x17\\x12\\x29\\x4e\\x9e\\x1f\\x32\\xa6\\x02\\xb1\\x52\\x51\\x4f\\x5e\\x6d\\x39\\xf9\\xe0\\x8f\\x7a\\x78\\x12\\xbd\\x90\\x0c\\x10\\xa9\\x14\\x69\\xe4\\x7e\\x8a\\x78\\xe5\\x4c\\xd4\\xbd\\x7c\\xfe\\xde\\xde\\xc1\\x71\\xef\\x37\\x3f\\x1c\\x4f\\x9b\\xbc\\x2c\\x81\\x40\\x2f\\xb1\\x4e\\xd0\\xbf\\xac\\x8d\\x04\\x3f\\x11\\x7d\\x61\\x24\\x52\\x1a\\xfa\\xe0\\x91\\x6a\\x51\\x0d\\x56\\x8a\\xcf\\xa3\\xaa\\x33\\x01\\xbc\\x97\\x9a\\xc2\\x8d\\x55\\x1d\\xbb\\xea\\x6c\\xea\\xc4\\xc2\\x12\\xaa\\x8c\\x84\\x92\\xb3\\x61\\x3a\\xe7\\x39\\x5d\\xd4\\x12\\x5f\\xc4\\xc2\\x5d\\x5b\\x4d\\x99\\x23\\x08\\x21\\xd4\\xb1\\x7e\\xc2\\xee\\x6b\\xe7\\xd6\\x04\\x19\\x5a\\x21\\x54\\x33\\x3b\\x97\\x35\\x26\\x58\\x0c\\xa7\\xef\\x9e\\x30\\xc6\\xc1\\xdd\\x42\\xef\\x2a\\xfe\\x42\\xb1\\x1b\\x1a\\xa4\\x9b\\x9c\\xca\\xba\\xca\\x17\\x09\\x1e\\xeb\\x38\\x0e\\xc5\\xe3\\x4a\\xd1\\xe3\\x82\\x7c\\xc6\\x0d\\xac\\xf1\\x44\\x28\\x6c\\x78\\x92\\x59\\x0b\\xd2\\x67\\x1a\\x8d\\xc5\\xf3\\xa7\\x02\\xc1\\xde\\x7c\\xd3\\xb4\\x2c\\x1b\\x15\\x0b\\x09\\xc3\\xe5\\x8e\\xf6\\x94\\x3b\\x45\\xd8\\x9d\\x41\\xdf\\x36\\x1f\\x1d\\x5c\\x25\\x56\\x55\\x91\\xb6\\xac\\x8d\\xea\\xa7\\x36\\x76\\x53\\x1f\\x6e\\x5a\\xbe\\x58\\x04\\xb0\\x09\\x7f\\x8d\\x45\\xea\\x29\\x39\\x17\\x73\\x33\\xca\\xce\\xf1\\x2e\\x4b\\x71\\xfe\\x49\\x36\\xba\\xfe\\x00\\x74\\x7a\\x89\\x30\\xbc\\xea\\x55\\xb8\\xfd\\x84\\xa0\\x1f\\x6d\\xf8\\x4e\\x7a\\xcb\\x93\\x1f\\xc7\\xc0\\x1d\\xdf\\xd6\\x3d\\xee\\xc3\\xad\\x3e\\x69\\xdf\\xa2\\xb7\\x35\\x50\\x58\\x3d\\x57\\x47\\xee\\xe9\\x6c\\x55\\x36\\x36\\x87\\x97\\xe2\\x47\\xf2\\x3f\\x53\\x7d\\x79\\x07\\x9a\\xb6\\xda\\x31\\x41\\x02\\xc7\\x44\\x3d\\x41\\x96\\x0e\\x3a\\x3d\\x8c\\x35\\x9c\\x4a\\x4e\\xc6\\x26\\xfc\\xc4\\x4e\\x11\\x0e\\xa7\\x44\\xd4\\x17\\xaa\\x85\\x0d\\xb8\\xec\\xdb\\xfe\\x34\\x0a\\x96\\x2d\\xb0\\xd8\\xc5\\x7d\\xc5\\x17\\xbe\\x8b\\x40\\xd1\\x4d\\xe9\\x7b\\x1e\\x9e\\x04\\x26\\x44\\x7f\\xde\\x0a\\x04\\xe5\\x06\\x79\\xc5\\x3b\\xa1\\xaa\\x3c\\xdc\\x38\\xc7\\xed\\xe6\\xdb\\x6c\\x05\\x4b\\x1e\\x9c\\xe7\\xde\\xad\\xaf\\x93\\xeb\\xdd\\x47\\x07\\x91\\x53\\x5f\\x3e\\xcf\\xab\\xf3\\x41\\x63\\x55\\xf7\\xa1\\x8a\\x38\\xaf\\xe6\\xbf\\xe5\\x07\\xef\\x08\\xc4\\x37\\x3a\\x4a\\x69\\xde\\xe1\\xfc\\xb6\\x5b\\x16\\x31\\xa0\\xde\\x14\\x88\\x64\\x9d\\x0b\\xb2\\x67\\x9a\\x9a\\x45\\xf6\\x78\\x20\\xb2\\xa4\\xa1\\xe5\\xa5\\x48\\x07\\x2d\\xa7\\x03\\x2d\\x17\\x25\\x55\\xe7\\x88\\xcc\\x98\\x60\\xeb\\xb3\\xc0\\xc3\\x59\\x49\\x37\\x51\\xb0\\xc2\\xc9\\x50\\xa7\\xfc\\xf4\\x80\\x3c\\x14\\x7f\\x93\\x40\\xfc\\x93\\xd8\\x5f\\x1e\\xfa\\x57\\xb3\\x90\\x81\\xb9\\x2d\\x93\\x47\\x3f\\xd2\\x35\\x16\\xc4\\x95\\x0e\\xd4\\xb2\\x9a\\x2e\\xd3\\xa0\\x42\\xae\\x3d\\x92\\xa1\\xe5\\x2c\\xb7\\x09\\x63\\x6f\\xc7\\x27\\x2f\\xd7\\x47\\x20\\x8b\\xee\\x2b\\x16\\xd1\\x91\\xe4\\xc6\\xde\\xb2\\x76\\x72\\xaa\\x34\\xe4\\x39\\x14\\xcf\\xf2\\x05\\x5c\\xa4\\xee\\x8b\\xa3\\xe1\\xdc\\x58\\xa6\\x79\\xc7\\xf7\\xde\\xe2\\xc1\\xd5\\x3e\\x28\\x75\\x09\\x70\\xf5\\x7d\\x85\\xea\\xb1\\xc2\\x6b\\x89\\xbb\\x73\\xe0\\xb1\"},\n{{0xc5,0x96,0x29,0x61,0x81,0x5b,0x57,0xcd,0x16,0x24,0x03,0xce,0x08,0xe4,0x10,0x5d,0xdb,0x8a,0xae,0x2d,0x3f,0x53,0x3f,0xb4,0x9c,0xc2,0x36,0xb5,0xff,0x50,0x4d,0x6e,},{0xdb,0xad,0xe7,0x22,0x36,0xba,0x12,0xd4,0x97,0x7b,0xa4,0x6c,0x36,0x4b,0xb6,0x9a,0x88,0x7f,0xf4,0x02,0xde,0x91,0xd4,0x7a,0xfa,0x9b,0x93,0xc9,0x5b,0xe7,0x1e,0x7e,},{0x81,0x01,0xba,0xef,0x00,0x4e,0xb6,0xf5,0xad,0x4d,0xe0,0x97,0x9f,0xf3,0x6d,0x34,0x39,0xb8,0x21,0x2b,0xdc,0x92,0x89,0x42,0xe4,0x31,0x91,0x5b,0x3f,0xd1,0x8b,0xc2,0xad,0x67,0xb2,0x6f,0x18,0x94,0x1d,0xcb,0x16,0xd2,0xc2,0x91,0x91,0x42,0x1e,0x77,0x9f,0xed,0x62,0x2f,0xd9,0xf5,0x82,0x64,0x4e,0xaa,0xdb,0x3f,0xe5,0xc0,0x98,0x03,},\"\\x4a\\xe4\\x14\\x8d\\x79\\xca\\x94\\x25\\x59\\x2a\\xa2\\x40\\xbd\\x15\\x34\\x24\\xa3\\xbf\\x4a\\xe2\\x73\\x95\\x87\\x2c\\xe5\\x72\\x8a\\xc7\\x61\\x35\\x96\\xa7\\x7d\\x5c\\xe8\\x56\\x5d\\x8d\\x6e\\x1b\\x59\\x35\\xb3\\x90\\x6c\\xaf\\xe1\\xff\\x88\\x8e\\xbc\\x98\\x15\\xe0\\x4a\\x62\\x4d\\xfc\\x4c\\x69\\x07\\xb8\\x5f\\x6f\\x1a\\x0d\\xbd\\xdf\\xf6\\x2e\\x91\\x51\\x22\\x0d\\x47\\x44\\x62\\xcb\\x9f\\x13\\xd8\\x9d\\x3a\\x93\\xa0\\x0b\\xa2\\xb6\\x0f\\x7e\\x7c\\xa6\\x3d\\xa1\\x7a\\x63\\x79\\xd6\\x73\\x55\\x1e\\x79\\x0b\\x59\\x11\\x72\\x7c\\x90\\x6d\\xc9\\x4f\\x86\\xd8\\x27\\x75\\x46\\xc1\\x56\\x4a\\x45\\x57\\x3a\\x77\\x43\\xbb\\x8a\\x13\\x8c\\xde\\x87\\xb3\\xb2\\xf2\\x8e\\x5e\\x24\\x59\\x40\\xa5\\x1e\\x7c\\x45\\x8c\\xf8\\xc5\\xf0\\xa7\\x02\\x75\\x96\\x25\\x53\\xe0\\xd2\\x39\\x0d\\x17\\x1d\\xb4\\x4c\\x2f\\x7a\\x5c\\x9e\\x9f\\x93\\xb9\\x0f\\x7a\\x5f\\x54\\xf1\\x91\\xb0\\xd8\\x75\\xba\\xd7\\xe0\\xbe\\xb9\\x80\\xc2\\xa3\\x36\\x5c\\xd7\\xb9\\x20\\x87\\x24\\xf4\\x65\\x44\\x18\\x11\\x7e\\x16\\xef\\x71\\x34\\xe3\\xe2\\x79\\x4b\\x6f\\x9e\\x80\\xec\\xab\\xec\\xa3\\x25\\x4e\\x70\\x4c\\x21\\xb7\\xad\\x30\\xc5\\xde\\xe0\\x17\\xea\\x25\\x33\\xfc\\xd9\\x42\\x51\\xe5\\x5a\\xe7\\x5a\\x8c\\xc6\\xdb\\x66\\x74\\xb3\\x9c\\x88\\xca\\x42\\x00\\x60\\x43\\xd6\\xbd\\x9b\\x00\\xec\\xf6\\x4c\\xea\\xfe\\xeb\\x40\\x2b\\x1f\\x22\\xfd\\x89\\x1f\\x2d\\x11\\xc5\\x15\\xc1\\xab\\xa6\\xa2\\xd4\\xc0\\xbd\\x21\\x81\\xa4\\x8e\\x43\\xfd\\x1c\\x0a\\xf9\\x1f\\x9b\\x7b\\x7d\\x37\\xf3\\xdc\\xd9\\xe4\\xc0\\xa7\\x59\\x74\\x84\\x67\\xd3\\x48\\xa8\\xb1\\x16\\xdf\\x6a\\x4e\\xac\\xf1\\x78\\xae\\xcc\\xcd\\x30\\x66\\xe9\\x2d\\xca\\x45\\xda\\x7a\\x3e\\x31\\x9f\\x37\\x71\\xeb\\x34\\x90\\x02\\x21\\x93\\xc5\\xb6\\x52\\xf0\\x45\\x68\\x7e\\x17\\x05\\xf2\\xe5\\x69\\x1c\\x13\\x4b\\xe4\\x00\\x63\\x53\\xd7\\xec\\xd0\\xe9\\x18\\xd5\\xde\\x0f\\x3b\\x87\\x80\\x9f\\xca\\x4a\\xcf\\xab\\x94\\xe1\\x14\\x8f\\xf7\\xcf\\x07\\xf7\\xcf\\xd0\\xc7\\x45\\xdd\\x2b\\xe0\\x1a\\x24\\xa5\\xe0\\x69\\x28\\x06\\x98\\xbc\\x3f\\x54\\x00\\xa6\\xdc\\xd0\\x8e\\x44\\x59\\x5c\\x03\\x88\\xe4\\x48\\x33\\x76\\x8f\\xc4\\x91\\x04\\xee\\x11\\x5b\\xdc\\xb0\\x2b\\xfb\\xda\\x17\\x9d\\x16\\x4c\\xe9\\x69\\x93\\x66\\x29\\xf2\\x33\\x56\\x01\\xb5\\x6f\\xe8\\xf7\\x85\\xcc\\xa3\\x80\\x5f\\x04\\x03\\x87\\x2c\\x62\\xf7\\x3c\\x3c\\xe8\\x05\\x63\\xd0\\x70\\xe9\\x76\\xd8\\xec\\xc5\\x11\\x24\\xe2\\xca\\xce\\x7e\\xe1\\x86\\x99\\x04\\x7c\\xb0\\xf8\\xfb\\x8d\\x9c\\x59\\xb8\\xa6\\x0d\\x12\\xc0\\x8a\\x09\\xfc\\xe5\\x8f\\xd9\\x2c\\xd3\\x6d\\xb6\\xa8\\xe8\\x9d\\x11\\x8c\\xf8\\x8a\\x92\\xdc\\x8a\\x26\\x00\\xbd\\x95\\xf5\\xa8\\xe8\\x5d\\xb5\\xcd\\xbb\\x24\\x9c\\xa8\\x12\\xca\\x20\\x9c\\x76\\x18\\x05\\x1c\\x45\\x64\\xa3\\xa0\\xe1\\x92\\xb7\\xe4\\x59\\x92\\x45\\x6c\\x87\\xd1\\x74\\x12\\xc1\\x1a\\xde\\xad\\x52\\x6a\\xb8\\xdb\\x21\\x45\\x2f\\x74\\x71\\xd1\\x7f\\x2e\\xbc\\x90\\x01\\x54\\x50\\xed\\xf4\\xf0\\xa4\\x4f\\xb2\\xf4\\x90\\x5f\\x74\\xd7\\x02\\x75\\xcc\\xd8\\x9b\\x93\\xa6\\x50\\x47\\x3c\\x02\\xa7\\xda\\x0c\\xbc\\x67\\x91\\x5c\\xeb\\x7a\\x1e\\xa5\\x9f\\xa8\\x88\\x44\\x72\\xdc\\x91\\x7e\\xe9\\xd2\\x46\\x33\\x9c\\x59\\x26\\x84\\x3e\\xcf\\x53\\xfa\\xfd\\xc5\\x6a\\x69\\x56\\x01\\xa2\\x76\\xc2\\x3a\\x84\\x3e\\x4d\\x30\\xf8\\x9c\\x97\\xc9\\xee\\xe6\\xdf\\xc7\"},\n{{0xde,0xe6,0x86,0x6c,0x78,0x74,0xc1,0x27,0x02,0x9e,0x96,0xe0,0x25,0xbf,0xfd,0x35,0xfc,0xfd,0xf4,0xdc,0x36,0x96,0x6c,0x15,0xee,0x62,0x93,0x36,0x80,0x13,0xd3,0x79,},{0x08,0xc9,0x4d,0xa3,0x51,0xbb,0x2b,0xee,0x72,0xe6,0xe1,0x96,0xbe,0x74,0x88,0x07,0x58,0x37,0x62,0xc5,0x29,0x6e,0x05,0xb1,0xe5,0x29,0xc4,0x7c,0x6b,0xba,0xce,0xc6,},{0xb7,0x8e,0xbd,0x6d,0x65,0xb1,0x75,0xd4,0xbb,0xd3,0xd9,0xa2,0x08,0x2a,0x0e,0xfe,0x6e,0x99,0x1c,0xb2,0xe4,0x03,0x52,0x1e,0xec,0xe0,0x0f,0x41,0x8f,0x2e,0x95,0x6b,0x66,0x90,0x78,0x80,0x65,0x8b,0x9e,0x8e,0x47,0x69,0x96,0x53,0xd1,0x59,0x13,0x23,0x80,0xd9,0xce,0x11,0x09,0xaf,0x9c,0x27,0x57,0xda,0xf4,0xcd,0xf1,0x8c,0x9c,0x0a,},\"\\xf1\\xaa\\x19\\x77\\xf5\\x31\\x1b\\x53\\x8b\\x94\\x0a\\xe4\\x42\\xa3\\xab\\xc8\\x9a\\xac\\xcd\\xcd\\x0a\\x79\\x38\\x0a\\x24\\x25\\x8d\\x4a\\x9f\\x1c\\xe6\\x38\\xfc\\x2f\\x5b\\xa2\\xe5\\x3f\\x8e\\x1f\\xa6\\x17\\x6f\\x17\\x8d\\x90\\x24\\xa7\\x78\\x94\\xc2\\x8c\\xad\\x42\\xd6\\x29\\xc7\\x93\\xd6\\x8a\\x02\\xbe\\x94\\x11\\xb5\\x27\\xac\\xad\\xae\\x7e\\x5c\\x38\\x51\\xba\\xbb\\x45\\xb5\\xfe\\xce\\x32\\x9e\\x29\\x03\\x4c\\xd4\\x25\\x71\\x08\\x37\\x27\\xf3\\x5a\\xec\\xad\\x7c\\x9b\\xe5\\x95\\x4e\\xc6\\x4e\\x8f\\x6e\\xca\\xb7\\xcc\\x05\\x90\\xe5\\x41\\x56\\xa4\\xe1\\xa4\\x53\\x03\\x84\\x9f\\x78\\x97\\xe7\\x2c\\xf2\\xfb\\xcd\\x84\\xf5\\x6c\\x72\\xf9\\x41\\xdb\\xb0\\xb0\\x9a\\x32\\xe6\\x38\\x6f\\xbe\\x18\\xa4\\x3b\\xb9\\xbd\\x8b\\x79\\x3e\\x4b\\x9e\\xdd\\x53\\x21\\x03\\xea\\xb5\\x4d\\x62\\x71\\x17\\xd2\\x81\\x39\\xb6\\x4e\\x60\\xfb\\x0b\\x81\\xd0\\x90\\x01\\xbb\\x24\\x04\\xd9\\x25\\xe2\\x65\\xba\\xbd\\xc6\\x9f\\x96\\xb1\\x35\\xe9\\xe6\\xab\\x7f\\xeb\\xb1\\xed\\x30\\x75\\xd6\\xaa\\x2a\\xbd\\x2b\\xbf\\x9b\\x65\\xfa\\x9b\\x3b\\x71\\x91\\xef\\x37\\xb6\\x33\\x60\\x59\\x10\\xee\\x88\\xf6\\x6e\\xad\\xa7\\x9f\\x00\\xf5\\x36\\xd3\\x80\\xb8\\x2f\\x2f\\x4b\\x59\\x85\\x11\\x2d\\xe0\\x04\\xa5\\x66\\x03\\xf4\\x43\\x6d\\x8f\\xf3\\x00\\xf4\\x2b\\xf5\\xac\\xdc\\x7a\\x4b\\xf1\\xea\\x9d\\x41\\x96\\xc4\\x80\\x49\\x5b\\xac\\xb0\\x06\\x76\\x30\\xfc\\xc0\\x00\\xb4\\xf2\\x79\\xdd\\x3f\\x30\\xf3\\x53\\x27\\x60\\x92\\xd1\\x52\\xc3\\xf4\\x3e\\xfd\\xc0\\x41\\xde\\xaa\\x0b\\xc5\\xaa\\xab\\xa7\\xf8\\xbb\\xd8\\x5e\\x69\\xc1\\x37\\x42\\xd6\\x78\\xdb\\xb6\\x53\\x60\\xaa\\xf7\\xb5\\x48\\xa0\\x44\\xc0\\xec\\x60\\xa5\\x7a\\xf6\\x50\\xbc\\x31\\x97\\x3f\\x83\\x2f\\x96\\x12\\x65\\xbc\\x23\\x18\\xf8\\x07\\x75\\xaf\\xd5\\x1f\\x55\\x19\\x4c\\x42\\x42\\x3f\\x7b\\xf4\\xe0\\x05\\x2f\\x98\\xcb\\x20\\x69\\x13\\xff\\xea\\x48\\x86\\xec\\xd2\\x7a\\x41\\x79\\xb1\\x37\\x73\\xf9\\x47\\x50\\x2e\\x18\\x1b\\xf1\\xa1\\xf2\\xc6\\x2c\\x6f\\x08\\xc2\\x03\\x59\\xf0\\x6d\\xf2\\xb1\\x81\\x27\\x04\\x3b\\x10\\x70\\xd0\\x19\\x4e\\xf5\\xe5\\xbf\\xd3\\x7d\\x22\\x79\\x84\\xcf\\xb1\\x09\\x89\\xf2\\x1c\\x71\\xad\\x0f\\xe3\\xb8\\x12\\x27\\xd3\\xa7\\x17\\x89\\x45\\x5e\\xda\\x38\\x3c\\x22\\xf4\\xd2\\xfc\\xc7\\x25\\x79\\xf4\\x65\\xe0\\x66\\xf3\\xd3\\x8b\\xef\\xc0\\x24\\xef\\xef\\x6c\\x2e\\x32\\x96\\x49\\xce\\x43\\x4d\\x62\\x73\\x67\\xa9\\x00\\xd0\\x7f\\xe6\\x23\\x42\\x35\\xc8\\x46\\x56\\xea\\xc5\\xdd\\x0d\\x78\\x8c\\xf4\\xcb\\x31\\x87\\x18\\x24\\xd6\\x6a\\xe4\\xbc\\x89\\xed\\xeb\\xa1\\xb3\\x67\\x01\\x29\\x84\\x53\\xe8\\xda\\x1e\\x69\\xcf\\xb8\\x68\\x09\\x5c\\x3b\\xe6\\xed\\x21\\x82\\xda\\x1c\\xff\\x49\\x05\\xaf\\xd2\\x07\\x31\\xac\\x1e\\xd9\\x84\\x16\\x47\\x37\\x90\\x3c\\x7d\\x8b\\xb0\\xad\\x16\\xae\\xcf\\x2f\\xae\\x33\\x74\\x04\\xfe\\x35\\x66\\x45\\x15\\xd9\\x3b\\x70\\x1e\\x2f\\x87\\x86\\x64\\x45\\x4c\\x0d\\xec\\xd1\\xc6\\x55\\x8a\\xda\\xce\\x3c\\xdb\\x22\\x75\\x07\\xa5\\x16\\x06\\xf0\\xa5\\x4d\\xf8\\xdf\\xaa\\x42\\x02\\x05\\xdd\\x57\\xc6\\x52\\x42\\xff\\x24\\xa4\\x05\\xef\\x85\\xc9\\x2d\\x60\\x28\\x86\\x93\\x2b\\x35\\xfa\\xbe\\x9c\\x3b\\xce\\xbf\\xc6\\x23\\x56\\x39\\xe8\\x73\\xfc\\x2d\\xd0\\x84\\xc5\\x2c\\xd6\\xa7\\x41\\x3b\\x83\\x1d\\x1c\\xc9\\x99\\x31\\x37\\x3a\\xab\\xd8\\x47\\x62\\x0e\\xb6\\x9b\\xb0\\xfa\"},\n{{0x52,0x36,0x23,0x55,0x59,0x95,0xba,0xaf,0x2a,0x27,0xad,0xcb,0x1e,0xba,0xfa,0xa8,0x02,0xd2,0x3e,0xf7,0xab,0xfa,0x97,0x75,0xf2,0xc9,0xbf,0xa0,0x7d,0x64,0xe0,0xac,},{0xd3,0x4d,0xea,0xe6,0x52,0x3e,0x61,0x9d,0xd1,0xbf,0xc8,0xf3,0xc4,0xca,0x4b,0x78,0xb3,0x68,0xc0,0xf7,0x20,0x03,0x5e,0x14,0x4c,0x3f,0x2f,0xc1,0x05,0xd4,0xce,0x21,},{0xb1,0x87,0x17,0x29,0xfe,0xc8,0x3a,0xea,0x0a,0xaa,0x47,0x2b,0x70,0x0a,0xcd,0x09,0x48,0x13,0xfb,0x7d,0x57,0xb9,0x09,0xe0,0xea,0xaf,0x21,0xee,0x93,0x18,0x47,0xad,0xde,0xdd,0x2b,0xe8,0x53,0x3d,0x0c,0x30,0x5c,0xb9,0xcf,0xe5,0x08,0x0e,0x76,0xc2,0x80,0x8b,0x6e,0x51,0xc9,0x82,0x62,0x90,0xdd,0xb7,0xb9,0x4b,0x6f,0x7d,0x58,0x0b,},\"\\x05\\x53\\xe6\\x9e\\xf2\\x11\\x65\\x2d\\x62\\xbf\\x28\\x1b\\xfb\\xdd\\x37\\xbe\\x22\\x76\\x9d\\x81\\x97\\x46\\x36\\x1c\\x7d\\x65\\xdd\\xd0\\xfa\\xd6\\x77\\xcc\\x04\\x38\\xb3\\x01\\xd1\\x51\\x45\\x78\\xe0\\xda\\x58\\xe5\\x5f\\x72\\x9f\\xa8\\xe6\\x6d\\xde\\xb7\\xf9\\x73\\xa8\\x18\\xd2\\x4e\\xd8\\xfe\\x02\\x7b\\x84\\x91\\x17\\x9d\\x07\\x77\\x3f\\xb5\\xd2\\xbb\\x96\\xaa\\x85\\xd6\\xb3\\x75\\x04\\x54\\xe5\\x0d\\xe9\\x1f\\x9b\\x88\\xae\\xe8\\xaa\\x68\\xe6\\xbb\\x53\\xed\\xc6\\x66\\x77\\xb4\\x1e\\x60\\x1a\\x46\\xab\\x4b\\xb1\\xe6\\x56\\xe7\\xfa\\x5f\\x01\\x79\\x93\\x36\\x80\\xa6\\xec\\x95\\x04\\x27\\x5e\\x7a\\xdf\\x7a\\x32\\x48\\xe6\\x3a\\x0f\\xc9\\xc1\\xea\\x5a\\xe9\\x6c\\xd0\\xc6\\x5a\\x89\\xa7\\x7c\\xec\\x2b\\x1f\\xd8\\xf4\\x53\\x7e\\x82\\xc1\\xc4\\x88\\xa6\\x9a\\x0e\\xf6\\x4f\\x58\\x73\\x4d\\x9e\\x73\\x47\\x8e\\x1d\\x1f\\x12\\x31\\x14\\xef\\x66\\x08\\x5e\\x0b\\xa3\\x19\\xcb\\x81\\x0b\\x66\\xaf\\x96\\xd1\\x30\\x8b\\x1a\\x2b\\xd9\\x2b\\xa2\\xc2\\x65\\xaa\\x30\\x9e\\xcd\\x55\\x57\\xd4\\x02\\xc3\\x80\\x2c\\xae\\x8d\\x7e\\x95\\x00\\x7f\\xe6\\x10\\xc2\\xaa\\x75\\xfc\\x66\\x19\\x6c\\x3f\\xad\\xfe\\x99\\x7d\\x6d\\x59\\x98\\xe1\\x8d\\x26\\x0e\\x9d\\xa3\\x1d\\xa9\\x21\\x8c\\xba\\xd1\\x03\\xcb\\xfc\\x2c\\x75\\x47\\x76\\x5d\\x67\\xe8\\x1f\\x24\\xac\\x83\\x02\\x2e\\xf5\\x1c\\x6c\\xc5\\x08\\x64\\x36\\x6a\\x35\\xf6\\xb9\\xb9\\xaf\\x94\\xe8\\x4c\\xaa\\x9f\\xd3\\xd7\\x67\\xc8\\x31\\xf0\\x96\\x7a\\x61\\x46\\x2f\\xbc\\xfc\\xc8\\x03\\xf1\\x2e\\x37\\x39\\x03\\x9a\\xcd\\x5d\\xbe\\x93\\x66\\xf0\\x5a\\x33\\xdb\\xea\\xf3\\x60\\xe2\\xdd\\xcb\\xe5\\xc4\\x43\\xf8\\x0e\\xf2\\xad\\x62\\xe0\\x3c\\x1d\\x5b\\x70\\xcd\\xea\\xb4\\xa7\\xdd\\x41\\x55\\x30\\x64\\xc8\\xd1\\x52\\x70\\x9d\\xef\\xf8\\x20\\x76\\xb9\\x07\\x11\\x92\\x37\\x6f\\x51\\xd4\\xc2\\xc7\\x1a\\x84\\xe8\\x9f\\x2d\\x94\\x01\\x32\\x0c\\x2e\\x45\\x9b\\x3e\\x24\\x3c\\xca\\x7c\\x26\\xfd\\x09\\x8c\\x26\\x4a\\xc8\\x8e\\xf6\\x38\\x92\\x1d\\x98\\x0b\\x0a\\xe9\\xe5\\x12\\xd3\\x72\\x03\\x7d\\x81\\xad\\xc4\\x81\\x26\\xd7\\xc9\\xe4\\xb5\\xaf\\xa5\\x7e\\xc2\\x65\\xd4\\x01\\xb9\\x65\\x3e\\x92\\x8a\\xfb\\x7d\\xff\\x9b\\x48\\xe2\\x95\\xe4\\x70\\xd6\\xb5\\x2e\\x88\\xb3\\x9d\\x0a\\x40\\xcb\\x8e\\xba\\x24\\x9f\\x8b\\x13\\xd8\\x11\\x13\\xdb\\x1d\\x3e\\x01\\xef\\x75\\xc7\\x22\\xf2\\x69\\x48\\x8e\\x96\\x3c\\xc8\\x18\\x27\\x04\\xf8\\xca\\x01\\x8e\\x73\\xdc\\x07\\x14\\xe9\\xa9\\xfc\\x79\\xbc\\x43\\x63\\xc2\\x8c\\xb3\\x98\\x43\\x74\\xf7\\x3b\\x2a\\xa8\\x78\\x6e\\x74\\xe0\\x15\\x95\\x07\\xa2\\x98\\x83\\xfe\\x0e\\xd1\\xc6\\x00\\xf5\\x25\\x88\\x5f\\x2f\\x10\\xea\\x00\\x6c\\x39\\xe5\\x9b\\x92\\x5b\\x76\\x5b\\x1e\\xde\\x53\\x42\\x57\\xa1\\xf4\\x0f\\x28\\x46\\x58\\x4f\\x06\\x97\\x46\\xb5\\x2f\\x56\\x00\\x43\\x0a\\x28\\x63\\xd7\\x93\\x60\\x95\\xfb\\xc2\\x2a\\x6a\\xda\\x67\\x4d\\x41\\xb3\\x74\\xe2\\xb8\\xb9\\xa1\\x9f\\xa7\\x12\\xb5\\x94\\x45\\x33\\xbb\\x6d\\x6e\\xc4\\x3b\\x89\\xd4\\x97\\x1b\\x70\\x20\\x5a\\x6a\\xcd\\x72\\xa8\\x99\\xda\\x12\\x61\\x82\\x04\\xdb\\x0c\\x3e\\x82\\x67\\xb8\\x45\\x79\\x16\\x93\\xe0\\xae\\x6a\\x35\\xf1\\x4d\\xa1\\xf8\\xf4\\xdd\\x17\\x4b\\xce\\x03\\x18\\xfb\\x5a\\x00\\xf6\\x72\\xed\\xe4\\x23\\x04\\xcf\\x04\\xa6\\x27\\x60\\x57\\x75\\x90\\xf2\\x7e\\x2d\\xfa\\x6e\\x5e\\x27\\x95\\xd6\\x60\\x53\\xb3\\x0a\\xf7\\xf1\\xbf\"},\n{{0x57,0x5f,0x8f,0xb6,0xc7,0x46,0x5e,0x92,0xc2,0x50,0xca,0xee,0xc1,0x78,0x62,0x24,0xbc,0x3e,0xed,0x72,0x9e,0x46,0x39,0x53,0xa3,0x94,0xc9,0x84,0x9c,0xba,0x90,0x8f,},{0x71,0xbf,0xa9,0x8f,0x5b,0xea,0x79,0x0f,0xf1,0x83,0xd9,0x24,0xe6,0x65,0x5c,0xea,0x08,0xd0,0xaa,0xfb,0x61,0x7f,0x46,0xd2,0x3a,0x17,0xa6,0x57,0xf0,0xa9,0xb8,0xb2,},{0x90,0x3b,0x48,0x4c,0xb2,0x4b,0xc5,0x03,0xcd,0xce,0xd8,0x44,0x61,0x40,0x73,0x25,0x6c,0x6d,0x5a,0xa4,0x5f,0x1f,0x9f,0x62,0xc7,0xf2,0x2e,0x56,0x49,0x21,0x2b,0xc1,0xd6,0xef,0x9e,0xaa,0x61,0x7b,0x6b,0x83,0x5a,0x6d,0xe2,0xbe,0xff,0x2f,0xaa,0xc8,0x3d,0x37,0xa4,0xa5,0xfc,0x5c,0xc3,0xb5,0x56,0xf5,0x6e,0xdd,0xe2,0x65,0x1f,0x02,},\"\\x2c\\xc3\\x72\\xe2\\x5e\\x53\\xa1\\x38\\x79\\x30\\x64\\x61\\x0e\\x7e\\xf2\\x5d\\x9d\\x74\\x22\\xe1\\x8e\\x24\\x96\\x75\\xa7\\x2e\\x79\\x16\\x7f\\x43\\xba\\xf4\\x52\\xcb\\xac\\xb5\\x01\\x82\\xfa\\xf8\\x07\\x98\\xcc\\x38\\x59\\x7a\\x44\\xb3\\x07\\xa5\\x36\\x36\\x0b\\x0b\\xc1\\x03\\x0f\\x83\\x97\\xb9\\x4c\\xbf\\x14\\x73\\x53\\xdd\\x2d\\x67\\x1c\\xb8\\xca\\xb2\\x19\\xa2\\xd7\\xb9\\xeb\\x82\\x8e\\x96\\x35\\xd2\\xea\\xb6\\xeb\\x08\\x18\\x2c\\xb0\\x35\\x57\\x78\\x3f\\xd2\\x82\\xaa\\xf7\\xb4\\x71\\x74\\x7c\\x84\\xac\\xf7\\x2d\\xeb\\xe4\\x51\\x45\\x24\\xf8\\x44\\x7b\\xaf\\xcc\\xcc\\xec\\x0a\\x84\\x0f\\xec\\xa9\\x75\\x5f\\xf9\\xad\\xb6\\x03\\x01\\xc2\\xf2\\x5d\\x4e\\x3b\\xa6\\x21\\xdf\\x5a\\xd7\\x21\\x00\\xc4\\x5d\\x7a\\x4b\\x91\\x55\\x9c\\x72\\x5a\\xb5\\x6b\\xb2\\x98\\x30\\xe3\\x5f\\x5a\\x6f\\xaf\\x87\\xdb\\x23\\x00\\x1f\\x11\\xff\\xba\\x9c\\x0c\\x15\\x44\\x03\\x02\\x06\\x58\\x27\\xa7\\xd7\\xaa\\xae\\xab\\x7b\\x44\\x6a\\xbc\\xe3\\x33\\xc0\\xd3\\x0c\\x3e\\xae\\x9c\\x9d\\xa6\\x3e\\xb1\\xc0\\x39\\x1d\\x42\\x69\\xb1\\x2c\\x45\\xb6\\x60\\x29\\x06\\x11\\xac\\x29\\xc9\\x1d\\xbd\\x80\\xdc\\x6e\\xd3\\x02\\xa4\\xd1\\x91\\xf2\\x92\\x39\\x22\\xf0\\x32\\xab\\x1a\\xc1\\x0c\\xa7\\x32\\x3b\\x52\\x41\\xc5\\x75\\x1c\\x3c\\x00\\x4a\\xc3\\x9e\\xb1\\x26\\x7a\\xa1\\x00\\x17\\xed\\x2d\\xac\\x6c\\x93\\x4a\\x25\\x0d\\xda\\x8c\\xb0\\x6d\\x5b\\xe9\\xf5\\x63\\xb8\\x27\\xbf\\x3c\\x8d\\x95\\xfd\\x7d\\x2a\\x7e\\x7c\\xc3\\xac\\xbe\\xe9\\x25\\x38\\xbd\\x7d\\xdf\\xba\\x3a\\xb2\\xdc\\x9f\\x79\\x1f\\xac\\x76\\xcd\\xf9\\xcd\\x6a\\x69\\x23\\x53\\x4c\\xf3\\xe0\\x67\\x10\\x8f\\x6a\\xa0\\x3e\\x32\\x0d\\x95\\x40\\x85\\xc2\\x18\\x03\\x8a\\x70\\xcc\\x76\\x8b\\x97\\x2e\\x49\\x95\\x2b\\x9f\\xe1\\x71\\xee\\x1b\\xe2\\xa5\\x2c\\xd4\\x69\\xb8\\xd3\\x6b\\x84\\xee\\x90\\x2c\\xd9\\x41\\x0d\\xb2\\x77\\x71\\x92\\xe9\\x00\\x70\\xd2\\xe7\\xc5\\x6c\\xb6\\xa4\\x5f\\x0a\\x83\\x9c\\x78\\xc2\\x19\\x20\\x3b\\x6f\\x1b\\x33\\xcb\\x45\\x04\\xc6\\xa7\\x99\\x64\\x27\\x74\\x1e\\x68\\x74\\xcf\\x45\\xc5\\xfa\\x5a\\x38\\x76\\x5a\\x1e\\xbf\\x17\\x96\\xce\\x16\\xe6\\x3e\\xe5\\x09\\x61\\x2c\\x40\\xf0\\x88\\xcb\\xce\\xff\\xa3\\xaf\\xfb\\xc1\\x3b\\x75\\xa1\\xb9\\xc0\\x2c\\x61\\xa1\\x80\\xa7\\xe8\\x3b\\x17\\x88\\x4f\\xe0\\xec\\x0f\\x2f\\xe5\\x7c\\x47\\xe7\\x3a\\x22\\xf7\\x53\\xea\\xf5\\x0f\\xca\\x65\\x5e\\xbb\\x19\\x89\\x6b\\x82\\x7a\\x34\\x74\\x91\\x1c\\x67\\x85\\x3c\\x58\\xb4\\xa7\\x8f\\xd0\\x85\\xa2\\x32\\x39\\xb9\\x73\\x7e\\xf8\\xa7\\xba\\xff\\x11\\xdd\\xce\\x5f\\x2c\\xae\\x05\\x43\\xf8\\xb4\\x5d\\x14\\x4a\\xe6\\x91\\x8b\\x9a\\x75\\x29\\x3e\\xc7\\x8e\\xa6\\x18\\xcd\\x2c\\xd0\\x8c\\x97\\x13\\x01\\xcd\\xfa\\x0a\\x92\\x75\\xc1\\xbf\\x44\\x1d\\x4c\\x1f\\x87\\x8a\\x2e\\x73\\x3c\\xe0\\xa3\\x3b\\x6e\\xcd\\xac\\xbb\\xf0\\xbd\\xb5\\xc3\\x64\\x3f\\xa4\\x5a\\x01\\x39\\x79\\xcd\\x01\\x39\\x69\\x62\\x89\\x74\\x21\\x12\\x9a\\x88\\x75\\x7c\\x0d\\x88\\xb5\\xac\\x7e\\x44\\xfd\\xbd\\x93\\x8b\\xa4\\xbc\\x37\\xde\\x49\\x29\\xd5\\x37\\x51\\xfb\\xb4\\x3d\\x4e\\x09\\xa8\\x0e\\x73\\x52\\x44\\xac\\xad\\xa8\\xe6\\x74\\x9f\\x77\\x78\\x7f\\x33\\x76\\x3c\\x74\\x72\\xdf\\x52\\x93\\x45\\x91\\x59\\x1f\\xb2\\x26\\xc5\\x03\\xc8\\xbe\\x61\\xa9\\x20\\xa7\\xd3\\x7e\\xb1\\x68\\x6b\\x62\\x21\\x69\\x57\\x84\\x4c\\x43\\xc4\\x84\\xe5\\x87\\x45\\x77\\x55\\x53\"},\n{{0x03,0x74,0x9c,0xa2,0x04,0x58,0xa3,0x5a,0x37,0xa8,0xd7,0xa2,0x6f,0x95,0x9f,0x0d,0x59,0xf6,0xdc,0x99,0x73,0xfa,0x36,0x3c,0x1f,0xf8,0xca,0x4e,0x63,0x8c,0x2c,0xd3,},{0xea,0xeb,0x94,0xf4,0x06,0xbd,0xe6,0xa7,0xcf,0x8b,0xde,0x2a,0xdf,0x30,0x81,0xf8,0x37,0x5b,0x87,0xd9,0x33,0x5d,0x49,0x6c,0x71,0xd0,0x42,0xcd,0x2e,0xaa,0x16,0x6c,},{0x78,0xa3,0x87,0x7e,0x02,0xbd,0xfd,0x01,0x5e,0x7f,0x86,0xa3,0x27,0xa4,0x8c,0xc3,0xa5,0x23,0x0b,0xbd,0xb1,0x24,0x3f,0x1a,0x8c,0xf2,0x27,0xf7,0x8a,0xb5,0xe7,0x68,0x0d,0xe3,0x01,0xa9,0x15,0xdc,0x11,0xb3,0x36,0xfb,0x5f,0x65,0x66,0x84,0x8b,0x42,0x50,0x0a,0xdb,0x5d,0x67,0x39,0x69,0x12,0x2b,0xa8,0xf0,0x05,0x3c,0xd3,0x06,0x0b,},\"\\xee\\xf5\\xce\\xeb\\xd0\\x44\\x5e\\x9c\\x91\\x81\\xaf\\xf9\\xc6\\xf2\\x66\\x01\\x28\\xfc\\xfb\\x63\\x69\\x1a\\x42\\xcf\\xa4\\x43\\xd6\\xa6\\x49\\xef\\xc5\\xfa\\xd8\\xc2\\x08\\x03\\x76\\x3e\\xe9\\x7d\\x1d\\xba\\x08\\xe6\\x3e\\x08\\xa2\\x61\\x6d\\xa0\\x50\\x77\\x48\\x9f\\x2f\\xa2\\xc5\\x6b\\x75\\x34\\xf9\\x40\\x26\\x19\\x25\\x1f\\xdf\\x9c\\x32\\x0d\\xe7\\xaf\\x10\\x9e\\x2f\\xd8\\xb2\\x56\\x5c\\xe8\\xa7\\x52\\x4c\\x94\\x05\\xec\\x0f\\x8f\\xca\\xa7\\x14\\x9a\\x6d\\x21\\x0e\\xfd\\xe8\\x3b\\x11\\x1c\\xf8\\x2d\\xc0\\x83\\x5c\\xf9\\x4f\\x20\\xcd\\xb0\\x21\\xb7\\x3b\\xd2\\x62\\x66\\x65\\x55\\xe6\\xd6\\x27\\x07\\xb4\\x6e\\xe4\\x2f\\xa9\\x00\\xb4\\xf4\\xf7\\x05\\xde\\x33\\xd3\\xdb\\xdc\\x68\\xa8\\x8d\\x1a\\x4d\\x0a\\xe9\\x33\\x56\\x6d\\xb6\\xc6\\x23\\x7e\\xc8\\xab\\xe1\\x02\\x4d\\xac\\x4b\\x7f\\x46\\xd4\\x07\\xbe\\x16\\x59\\x4d\\x90\\x46\\xc7\\x31\\x2d\\xda\\x66\\x14\\xd9\\xbc\\xdb\\x01\\xfb\\x83\\x24\\xfc\\x62\\xb8\\xee\\xaf\\x0a\\xbc\\x23\\xcd\\x57\\x0e\\x30\\x4f\\xca\\x08\\xe8\\x8c\\x73\\x5e\\x5d\\x31\\x59\\x24\\x09\\xce\\xb5\\x83\\x86\\x2e\\x6b\\x0a\\x76\\x77\\x29\\xf7\\x55\\x6f\\xa2\\xc0\\x53\\x64\\x4d\\x36\\xc8\\x33\\x7c\\x02\\x74\\xe7\\x49\\x20\\x29\\x82\\xfb\\x4a\\x17\\x1a\\xca\\xc1\\x96\\xc0\\x2b\\x7f\\x16\\xa8\\xda\\x49\\x07\\x1c\\x8a\\xb8\\x07\\x6d\\xd5\\xd3\\xab\\xad\\xfe\\x3a\\xf8\\x2c\\xa8\\x5d\\xa0\\x2d\\xcc\\x1c\\x4a\\x6f\\x2e\\x19\\x30\\xbe\\xe2\\x00\\x9e\\xee\\x0d\\x97\\x1e\\x40\\xdd\\x12\\x17\\x5c\\x8d\\x00\\x69\\x4f\\x03\\x25\\xa3\\xb3\\x13\\x3c\\x0d\\x0b\\xd3\\x82\\xa5\\x19\\x4f\\xb2\\x14\\x22\\xce\\x67\\xc7\\x8a\\x5a\\x6e\\x15\\x37\\xe3\\xb9\\x7d\\x5e\\x20\\x4e\\x5d\\x19\\x56\\x96\\x39\\x0f\\x77\\xd1\\x90\\x24\\xc1\\xbf\\x6b\\x51\\x25\\xa0\\xcd\\xbf\\x7b\\x98\\x80\\x03\\x61\\x81\\xc9\\x8e\\x1a\\xc2\\xe5\\x16\\x5b\\xd4\\x96\\xcf\\x99\\x74\\x51\\xa1\\xc1\\x21\\x02\\xe6\\x69\\x46\\xb1\\x67\\x6a\\xbd\\x4c\\xbd\\xd2\\xc1\\x16\\x73\\xf4\\xf2\\xcd\\x5f\\x3c\\x9a\\x43\\x4d\\x74\\x7f\\xa0\\x5b\\x40\\xfb\\xc7\\x22\\x68\\xb4\\xeb\\x28\\x42\\xe4\\x74\\x1f\\x51\\xb7\\x70\\x9b\\x6a\\xcc\\xc4\\x7f\\xca\\xf7\\x0d\\x9c\\x1c\\x4c\\x35\\x86\\x71\\x19\\xd8\\x1c\\xb3\\xff\\x1f\\x16\\x08\\x11\\x33\\xf1\\x65\\x9a\\xed\\x85\\xf6\\x3b\\xc9\\x01\\x98\\x9e\\x26\\x17\\xfc\\xce\\x15\\x3c\\x29\\x78\\xd7\\x08\\xfd\\x02\\x44\\x9a\\xe4\\xd5\\x38\\xd1\\x22\\xdd\\xb8\\x52\\x7c\\x0a\\x76\\xa1\\x02\\xee\\xff\\x6e\\xdb\\x65\\xdb\\xa2\\x98\\xd3\\xc2\\x17\\xf6\\x55\\x18\\x14\\xed\\xde\\xec\\xe1\\xae\\xf5\\xf3\\x71\\xa5\\x4f\\x12\\xbf\\xfd\\x6b\\x49\\x61\\x81\\x9a\\x0f\\x24\\x4f\\xf0\\xd7\\xd8\\x69\\x4c\\x14\\x42\\x2d\\xe9\\x82\\x2c\\x13\\x17\\x9e\\x4e\\xeb\\x81\\x59\\x50\\x79\\xb9\\xdd\\x2a\\xd1\\xe7\\xc3\\x9b\\xd3\\x03\\xcc\\x44\\xae\\x3f\\x36\\x34\\x88\\x15\\x77\\xa2\\x66\\xfd\\x6b\\xb7\\x91\\x78\\x12\\xb9\\x99\\xdc\\x80\\x9d\\xc0\\x9c\\x3d\\x70\\x19\\xda\\xcd\\x28\\xe4\\x30\\x13\\xa2\\xf9\\xe4\\xf9\\x4b\\xb0\\xbf\\x71\\x24\\xef\\x09\\x17\\x83\\xf7\\x96\\x39\\x7f\\x64\\x63\\xbf\\x1e\\xfb\\x39\\xcd\\x46\\xf3\\x79\\x0a\\x1d\\x9b\\x6a\\x7c\\x30\\xf1\\x49\\xb5\\xe6\\x6c\\x29\\x37\\xe3\\x9c\\xb9\\x74\\x4d\\xdc\\x66\\xab\\x56\\x1b\\xad\\x4e\\x6f\\xa8\\x53\\x4d\\x69\\x88\\x38\\x22\\x64\\x3d\\x63\\xd8\\xbd\\x7b\\x18\\x16\\x21\\xa2\\x67\\xe9\\x55\\xe7\\x58\\xd1\\x79\\x2b\\x44\"},\n{{0x53,0xcb,0xd6,0xf6,0x8c,0xee,0x27,0xb9,0xf7,0xbc,0x05,0x9b,0x80,0x3b,0x44,0x79,0x49,0xbb,0xc9,0xc5,0xd5,0xa3,0x86,0x52,0xd7,0x78,0x9c,0xa1,0x54,0x20,0xde,0xa1,},{0x61,0x16,0x99,0x0b,0x53,0x31,0xe2,0x16,0x5f,0x82,0x74,0x3f,0x01,0xd8,0xe7,0xbd,0x5d,0x70,0x88,0xb3,0x01,0x59,0x83,0x3f,0xa7,0xb9,0x39,0xcf,0xb1,0xcc,0x04,0xd7,},{0xd8,0x25,0x04,0x40,0x5f,0xf1,0x6b,0xa6,0x44,0x3d,0xc4,0x82,0x36,0x72,0x63,0xa8,0xe2,0x00,0x36,0x0a,0xca,0xaa,0x83,0xfc,0x4e,0x4b,0x72,0xbd,0x24,0x9f,0x16,0x10,0x3e,0xc7,0xe5,0xa7,0xe9,0xca,0x17,0x19,0x8f,0x88,0x8e,0xac,0xa1,0x6b,0x74,0x0c,0xc3,0xf5,0xc3,0xb7,0xb6,0x17,0xa3,0x4b,0x94,0x91,0xc3,0xed,0x76,0xaa,0xb3,0x0d,},\"\\x30\\x6f\\x8e\\x1d\\xf0\\xa4\\xca\\x78\\xbd\\x77\\xe8\\xe1\\x19\\x1c\\x94\\xde\\xaa\\x82\\x64\\x83\\x55\\xc2\\xae\\xcb\\x7e\\x82\\xfc\\x56\\xd6\\x4c\\x50\\x46\\x19\\x24\\x7e\\x7c\\xf8\\x94\\x33\\x28\\xd1\\x1f\\x3d\\xb4\\xb1\\xdc\\x14\\x8e\\x8e\\xf6\\xf6\\xc3\\xbc\\x35\\x59\\x69\\x66\\x2a\\x28\\x1a\\x65\\x57\\x63\\x91\\x24\\x2b\\x7b\\xd5\\xa6\\x2f\\x8f\\xa7\\xac\\xb6\\x04\\xe3\\xa3\\x44\\xae\\x1a\\x9d\\x73\\x2a\\x25\\x43\\x15\\xf3\\x1a\\x04\\x64\\xc1\\xe6\\x58\\x74\\x62\\xd2\\x92\\x12\\xc4\\x0e\\x5e\\xcf\\x06\\x1e\\x26\\x9a\\xa0\\xb9\\x03\\x90\\xba\\x41\\x04\\x07\\x21\\x68\\x4b\\xf2\\xaa\\x95\\x82\\xd8\\x30\\x66\\x22\\x1d\\xb6\\x0d\\x0f\\x7a\\xe2\\xf1\\x49\\xa3\\x6e\\x16\\x95\\x27\\x04\\xfb\\x1f\\x3a\\x98\\x2e\\xac\\x6b\\x45\\x83\\x66\\x5c\\x63\\xe5\\xa8\\x99\\x6f\\x24\\xa5\\x66\\xdd\\x50\\x6a\\x33\\xd4\\xec\\x8a\\x02\\xb2\\xbd\\x34\\xb7\\x14\\xc7\\x45\\x00\\x0c\\x01\\x28\\xa3\\xc8\\x9d\\x94\\x25\\x06\\xd1\\x2f\\x4b\\xeb\\x90\\x0e\\x29\\x03\\xcd\\xb3\\x4b\\x35\\xca\\x9b\\x6d\\x3a\\xd9\\xb3\\x50\\xac\\x99\\xf4\\x1d\\xb3\\xac\\xfe\\x7f\\xe5\\x5a\\x28\\xc0\\xf0\\x06\\xb8\\x44\\xc9\\xdc\\x48\\x53\\xfd\\x98\\x53\\x5a\\xda\\x79\\x41\\x6d\\xca\\x5f\\xee\\x58\\x03\\xa2\\xd9\\xf5\\xd6\\x8e\\x6b\\x80\\x53\\x9f\\xf3\\x02\\xe9\\x73\\xf2\\x4e\\x9b\\xc8\\x8b\\x7c\\x41\\x94\\x11\\x7d\\xdb\\x9f\\x93\\x2b\\x32\\xd5\\xec\\x74\\x86\\x8a\\x13\\x63\\x1e\\xce\\x68\\x81\\x4b\\x93\\x14\\x21\\xdc\\x89\\x02\\x49\\x57\\x03\\x41\\xf4\\xb4\\x23\\xe8\\x6e\\x8e\\xe0\\x81\\xb2\\x27\\x02\\xf6\\x49\\xa6\\xc7\\xa0\\xb7\\xbd\\xf5\\xfb\\x75\\x62\\x02\\xbd\\x10\\xb0\\xbb\\x22\\x15\\xc7\\xd6\\x59\\x7e\\xff\\xd8\\x52\\xf0\\xb8\\x9a\\xbe\\xc1\\x5e\\xa8\\x22\\x57\\x68\\x9d\\xf8\\x1e\\x33\\x82\\x54\\xf9\\x3e\\x81\\xcb\\xf0\\x61\\x72\\x9d\\x48\\x3e\\xb5\\xcf\\x64\\x98\\x05\\xd7\\x8e\\xd8\\x92\\xdd\\x0b\\xd2\\x48\\xca\\x1e\\x25\\x2b\\xea\\x51\\x84\\x7e\\x1e\\x82\\xd3\\x9a\\xf5\\x80\\x50\\xdc\\x4a\\xfb\\xf9\\x11\\x5a\\x3a\\x60\\x49\\x3e\\x8c\\x0b\\xa2\\xe8\\x6e\\x08\\x98\\xcd\\x0d\\x43\\x08\\x91\\xb9\\xeb\\x0a\\x40\\xf8\\x74\\x31\\xe2\\x5f\\x41\\x53\\x8a\\x03\\x0f\\x88\\x4f\\xab\\x36\\xad\\x11\\x16\\x5d\\x26\\x7e\\x8d\\xd9\\x4d\\xcb\\x05\\xb9\\x3a\\x5a\\xe7\\x79\\x69\\x43\\x0e\\x18\\x10\\x13\\x4e\\x15\\x72\\x51\\xb9\\x82\\xdf\\x34\\x3d\\xff\\xae\\x61\\x23\\xa9\\x9a\\xa0\\x56\\x2d\\x5d\\xf7\\x24\\x08\\xf1\\xa6\\xe2\\x9c\\x40\\x59\\xa5\\xa8\\xaa\\xa4\\xe6\\x21\\x52\\x8f\\xc6\\x3a\\x9c\\xbe\\x1f\\x4c\\x0f\\xef\\x25\\xfe\\x3f\\x8e\\x18\\x15\\x77\\x74\\x09\\x7a\\x9d\\x91\\x02\\x0a\\x90\\x06\\xb6\\xc8\\x60\\xec\\x1e\\xe1\\x0d\\x52\\x1d\\x20\\x3a\\x1f\\x8b\\xb8\\x25\\x61\\x29\\x6f\\xaa\\xd4\\xb2\\x20\\x3d\\xa5\\x3b\\x20\\x7a\\x45\\x9b\\x29\\xc1\\x8b\\xc0\\x64\\x93\\x32\\xb1\\x80\\x7c\\x13\\xca\\x61\\xac\\xfa\\xf9\\x07\\x79\\xfe\\xbb\\xc7\\xf3\\x24\\x21\\x64\\x79\\x7e\\x6f\\x57\\x2c\\xb1\\x5a\\x9b\\xe5\\x88\\x73\\x43\\x45\\x5e\\x26\\xb9\\x10\\xc8\\xbe\\xfe\\xe4\\x2a\\xeb\\x04\\x7f\\x9a\\xbe\\x6b\\x37\\x50\\xdb\\xd7\\xde\\x99\\x20\\x2a\\x0b\\xb5\\x76\\xce\\x14\\x89\\xe6\\x1c\\x1f\\x5d\\x27\\xc6\\x79\\x2e\\x63\\x21\\x8e\\xdb\\xfd\\xb9\\xb3\\xdc\\x51\\x5b\\x42\\x54\\xd8\\x2c\\x85\\x9e\\x52\\xce\\x6b\\xd7\\xad\\x29\\x6d\\xd0\\xe3\\x70\\x9d\\x4c\\x46\\x63\\x62\\xf9\\x02\\x65\\xe9\\x9d\\xa7\\xd0\\xb7\\x01\"},\n{{0x8b,0x65,0x74,0xf6,0xd7,0x39,0x69,0x81,0xe2,0x23,0xa4,0x83,0x7b,0xc3,0x39,0xc3,0xfd,0x65,0x94,0x19,0x84,0x5a,0x21,0x21,0xbf,0x85,0xbe,0x2e,0x69,0x5d,0x86,0x0d,},{0xe3,0x81,0x1a,0xca,0x70,0x63,0x4f,0x5a,0x9c,0xe4,0xb5,0x92,0xa1,0x7b,0xb5,0xcf,0xda,0x53,0x44,0x24,0x22,0xe2,0x03,0xcd,0xa9,0x50,0x4c,0x9d,0x65,0xb2,0x63,0xe8,},{0x2f,0xd0,0x90,0x54,0x75,0xa2,0xce,0xc3,0xe7,0x6f,0x99,0x09,0xb8,0xaf,0xd8,0x3b,0xeb,0x8d,0xae,0xfa,0x77,0xaf,0xcd,0xa3,0x4c,0xb4,0xf1,0x17,0x28,0xef,0x15,0xfc,0x9c,0x1d,0x7f,0x6f,0x6a,0xff,0xfc,0x28,0xf3,0x87,0x4f,0x91,0x3e,0x17,0x98,0x0f,0x0e,0x8e,0x3d,0x5a,0xd2,0x39,0x51,0xdf,0x2b,0x32,0xef,0xaf,0x62,0x19,0xce,0x0d,},\"\\xa4\\x8a\\xac\\xc0\\x49\\x5f\\xa0\\xf1\\x25\\x9b\\x27\\x86\\x5d\\x3d\\x75\\xdc\\x52\\xc2\\xc8\\x28\\xea\\x8c\\x4c\\x2a\\xd7\\x85\\x77\\x07\\x2f\\xef\\x72\\x70\\xf6\\xa4\\xd5\\x82\\xbb\\x7b\\x96\\x2f\\x4c\\x3f\\xd1\\x49\\xa6\\x0a\\x06\\xbc\\x8e\\xfd\\x29\\x70\\xef\\x03\\x14\\x8d\\xdf\\x61\\x98\\xb9\\xb6\\x95\\xa6\\x9f\\xad\\xb5\\x34\\x09\\x51\\xcb\\x75\\x39\\x8a\\xc5\\x1a\\x4f\\xd5\\x54\\x30\\x37\\x8c\\xd5\\xda\\x88\\x85\\x21\\x0b\\xfd\\x21\\x46\\xf9\\x5c\\x62\\x76\\x32\\xfe\\x8b\\xe0\\x6d\\xe0\\x1a\\x7c\\x27\\xb8\\x9d\\xee\\xfd\\x67\\xef\\xc6\\x9c\\x9b\\x5c\\x62\\xb3\\x81\\x08\\xf7\\x76\\x22\\x91\\x43\\xda\\xe6\\x60\\xc1\\x0c\\xbe\\xa3\\xcd\\x4f\\x7e\\xe5\\x3d\\xc3\\x69\\x2e\\xd0\\x11\\x77\\xe4\\xa6\\xf7\\xe4\\x24\\xb5\\x66\\x6f\\x7f\\x49\\x5f\\x2a\\x65\\x60\\x2c\\x7d\\x08\\xc5\\xd5\\x72\\x23\\x4a\\x56\\x7c\\xb6\\xc3\\x8a\\xfd\\x79\\xca\\xb5\\xc4\\x03\\x6d\\x62\\x63\\x7a\\xef\\xab\\x55\\x88\\x76\\x9a\\x44\\x8a\\xb4\\xc6\\x5e\\x24\\x55\\x4b\\xd4\\x15\\x80\\x50\\xe0\\x9e\\xb5\\x8f\\x99\\xab\\x40\\x77\\x7b\\x03\\x56\\x70\\x9b\\x7c\\x02\\x5a\\xe5\\xae\\x54\\x22\\xac\\xf8\\x74\\x44\\x93\\x1a\\xe4\\xd9\\xa8\\xb3\\xd9\\x44\\x76\\x88\\x11\\x28\\xba\\x1e\\xb7\\x32\\x8f\\xaf\\xc7\\x5f\\x6b\\x9d\\xac\\xc9\\x6d\\x3b\\x64\\x87\\xdd\\xef\\x7c\\x59\\x26\\x2d\\xca\\xda\\x42\\x6a\\xac\\xb1\\x39\\x22\\x93\\x54\\x11\\x56\\x62\\x35\\xe0\\x58\\x37\\x26\\x22\\xd8\\x85\\xbd\\x0c\\xc0\\x49\\x58\\xdc\\xfb\\x17\\xe0\\x8f\\xcd\\x7f\\x14\\x7e\\x20\\x15\\x6c\\x8e\\x26\\xaf\\x85\\x53\\x0f\\x55\\x11\\xa6\\x8d\\xb4\\x3d\\xaf\\xc4\\xe6\\xa2\\x3f\\x66\\x7d\\xf3\\x74\\x3e\\xed\\xd7\\x1a\\x3f\\x07\\xf7\\x6f\\x94\\xd1\\x68\\x8a\\xfc\\x84\\x63\\xbf\\xa5\\xa4\\x39\\xae\\x31\\x14\\x69\\x94\\x8e\\x74\\x47\\x06\\x4f\\x0b\\x05\\x06\\xf3\\x67\\x19\\xc1\\x34\\x66\\xa1\\xb9\\x87\\x76\\xd9\\x67\\xec\\x58\\x20\\x8b\\xa6\\x74\\x03\\x73\\x03\\xdf\\xc6\\x19\\x0d\\xa7\\x83\\xff\\x27\\x30\\x3b\\x86\\xb5\\xfc\\x32\\x11\\xf0\\x1c\\x91\\x5e\\x83\\xa6\\xad\\x01\\x21\\x44\\x79\\x11\\xcb\\xe1\\xcf\\x69\\x6f\\x61\\x8f\\x60\\x23\\x66\\x43\\xf2\\xe9\\x4e\\x15\\x5d\\xb6\\x57\\x18\\x29\\x44\\xc1\\xa4\\x3b\\xdc\\x7b\\xd5\\xea\\xf3\\x48\\x1f\\xe1\\x28\\x40\\x92\\xcb\\x37\\x89\\xa8\\x92\\xbd\\x79\\xa1\\x11\\xfd\\x41\\x01\\x43\\xcf\\x91\\xae\\x33\\x28\\x60\\xb1\\xd2\\x9a\\xa0\\x41\\xd1\\x77\\xb5\\x0d\\x6c\\xc2\\xb9\\x66\\x0d\\x32\\x8c\\x0f\\x23\\x0a\\x35\\x15\\xe6\\xa0\\xd6\\x88\\x70\\x9c\\x0c\\xd3\\x47\\xad\\x2f\\xf3\\x2d\\x61\\xd1\\xe1\\xe9\\xba\\x76\\xf8\\x1e\\x87\\x3a\\x6c\\x42\\x0f\\x17\\x07\\xf3\\x84\\x1d\\xb5\\x19\\x6c\\xb5\\x3f\\x50\\x6f\\x00\\x06\\x35\\x2c\\x7c\\x44\\xc0\\x80\\xf3\\x09\\x68\\x01\\xa5\\x7a\\x49\\xcf\\xe8\\x42\\x05\\xbd\\xd7\\xa9\\x80\\x1f\\x84\\x3c\\xf2\\x6b\\x95\\x58\\xa2\\xdb\\x78\\x8e\\xf1\\xb2\\x37\\x91\\x5d\\x58\\x7b\\x9b\\xa9\\x77\\x98\\x90\\xf6\\x1f\\xdc\\x91\\xe0\\x3e\\x4f\\x4c\\xdb\\xef\\xe4\\x17\\xcc\\x22\\xd5\\x22\\xa8\\x6a\\xdd\\xdb\\x53\\xf3\\x74\\x74\\x50\\xab\\x62\\xb5\\x76\\x56\\x5d\\xb3\\x2e\\x0c\\xd4\\x42\\x76\\x54\\x7d\\x9a\\x16\\x65\\x3c\\x27\\x96\\x59\\xdd\\x4d\\x17\\xec\\x04\\x82\\x7c\\x53\\x3e\\x33\\x39\\x0f\\xe9\\x4f\\x79\\x35\\x09\\x25\\x6d\\xb6\\x75\\x31\\x73\\x6a\\xb3\\xfc\\xee\\x2a\\x30\\x1a\\xc3\\xf0\\xa2\\x4d\\x3b\\x10\\x8d\\x7e\\x75\\xc3\\x2a\\x5a\\xba\\x36\\xd6\"},\n{{0x29,0xb2,0x88,0x1b,0x8c,0xaa,0xdb,0x33,0x6e,0x78,0x80,0xc5,0x10,0xb8,0x00,0x85,0xf4,0xb1,0x22,0x18,0x60,0xb3,0x01,0xeb,0x45,0x25,0x65,0x07,0x52,0xa6,0xd2,0x89,},{0x0c,0x5c,0x44,0xed,0x29,0xd2,0x1b,0xca,0xde,0xe2,0x1c,0xbd,0xe6,0x1a,0x9c,0xdb,0x6d,0x59,0x36,0x00,0x9b,0xa2,0xf5,0xb2,0xe7,0x77,0xc9,0x24,0xdd,0xfb,0x67,0x51,},{0x99,0xe9,0x96,0xe8,0x5a,0x49,0x4f,0x19,0x80,0xcb,0x07,0xde,0x9c,0xa6,0x16,0x5e,0x7d,0xe1,0x04,0xd3,0x9f,0xe3,0xc3,0x22,0x67,0x35,0xc5,0xda,0xa5,0x69,0x51,0x6f,0xca,0xf1,0xb6,0xe4,0xdf,0xad,0x0d,0x38,0x9b,0x6d,0xb0,0xec,0x8a,0x8f,0x20,0xdd,0x2c,0x60,0x26,0x56,0xb5,0xe7,0x61,0xc8,0xf3,0xa6,0x55,0x83,0x82,0x15,0x19,0x09,},\"\\x19\\x74\\xa2\\xe2\\xb4\\x79\\x49\\xf4\\x67\\xa9\\x31\\xd1\\xd9\\xdd\\x5c\\xe1\\x16\\xe9\\xf5\\x03\\x0a\\xd0\\x9a\\x8c\\xc7\\x28\\xd1\\xae\\xb1\\x48\\xbb\\xf9\\xac\\xf5\\x98\\x74\\xda\\x80\\xe7\\x08\\xd5\\x3c\\x66\\x8f\\x2f\\x14\\xd7\\x52\\x20\\x71\\xe9\\x09\\x80\\x84\\x27\\xb2\\xab\\x5a\\x05\\xf8\\xb9\\x4f\\x21\\x50\\x5c\\xd2\\x6a\\xbc\\x53\\x45\\x89\\x78\\xc7\\x84\\xd4\\x79\\xea\\x6d\\xab\\x10\\x5c\\x4f\\x79\\x84\\xa0\\xfb\\x97\\x90\\xe5\\x06\\x24\\xf4\\x73\\x4b\\x55\\x19\\x05\\xaa\\x5f\\xfa\\x60\\x18\\x4c\\xd2\\x01\\xcf\\x2b\\x26\\xc9\\x79\\x5d\\xa6\\xe7\\xe0\\x8d\\x6a\\x0b\\xc7\\x72\\x24\\x00\\xfe\\xf9\\x4f\\xc2\\x10\\x38\\xbe\\x89\\xd3\\x4b\\xcd\\x14\\xc4\\x27\\xb8\\x5b\\x68\\x66\\x73\\x71\\x96\\x15\\x2d\\x4e\\xeb\\x66\\xd0\\x5b\\x24\\x5a\\xe8\\x4b\\xdc\\x77\\x87\\xc1\\x4a\\x8b\\xec\\x2e\\xea\\x53\\x60\\xf0\\x42\\x43\\x3d\\x70\\x79\\x44\\x67\\xd4\\x73\\x93\\xb9\\x37\\x57\\xf3\\x31\\xcf\\x2b\\x53\\xc6\\x60\\xd7\\x1c\\x29\\x58\\x2a\\xee\\xa7\\x9b\\x12\\x52\\x7a\\x28\\xb0\\xc5\\xe1\\x10\\xdf\\x6f\\x85\\x4e\\xea\\xd9\\xa2\\xb0\\x0d\\x42\\x54\\x2c\\xa8\\x27\\x6b\\xb8\\xbf\\x98\\x8b\\xaa\\xb8\\x56\\x59\\x96\\xfe\\xe5\\x0c\\xf3\\x1b\\x24\\x59\\xc4\\xc5\\x0a\\xb4\\x75\\x26\\x5e\\x83\\xe2\\x28\\x5d\\x43\\xfe\\x1f\\x75\\x2a\\x55\\xb2\\xdb\\xc4\\x9f\\xca\\x04\\xa8\\x10\\xf0\\x41\\x3b\\xf6\\xbd\\x81\\xb7\\x9a\\xc6\\x4e\\xe1\\xf8\\x9b\\x97\\xbd\\x7d\\x26\\xd6\\x25\\x12\\x27\\x3e\\x24\\xa6\\xba\\xb2\\xd5\\xf7\\xd2\\x22\\x6b\\xaa\\xab\\x7b\\x11\\x12\\x09\\xbb\\x03\\x73\\x3d\\x8a\\x60\\xdf\\xa3\\x1a\\x51\\x6f\\x4a\\x8c\\x76\\x99\\xd8\\x28\\x5c\\x10\\x65\\x15\\x9a\\x6c\\x73\\x31\\xc1\\xde\\xfb\\x47\\xa3\\x0e\\xf5\\x85\\x8c\\x50\\xb7\\xd0\\x45\\x12\\x4a\\x09\\x81\\x3d\\x1c\\xfd\\xa5\\xc9\\xcc\\x3b\\xb5\\xbf\\xae\\x73\\xc9\\x84\\x19\\x7f\\x8f\\x85\\x7f\\x18\\x6c\\x41\\xab\\x87\\xfb\\x79\\x62\\xb6\\x31\\xf4\\xd0\\x07\\xcf\\xbe\\xe2\\x21\\xfc\\x65\\x72\\x78\\x4a\\x55\\x11\\x94\\xc1\\x97\\x77\\xb0\\x8e\\x6b\\x59\\x67\\x57\\xe7\\xcb\\xa7\\xa0\\xe2\\x7f\\xe4\\x53\\xf9\\x0d\\xc5\\x9c\\xc0\\x8c\\x64\\x72\\x43\\x1c\\x02\\x0e\\x8d\\xd0\\x91\\x75\\x90\\xe7\\x9c\\x1f\\x20\\x73\\x83\\xaf\\xb3\\x90\\x76\\xad\\x24\\xda\\x8e\\xe5\\x24\\x86\\x73\\x94\\x53\\xa2\\x59\\x0e\\x51\\xbf\\xc8\\x9b\\x13\\xc2\\x03\\x3c\\xfa\\x5f\\x89\\x03\\xcb\\xe9\\x96\\x1a\\x85\\x98\\xba\\x55\\x62\\x32\\x86\\x9d\\xfa\\xb4\\xd5\\x6e\\xdf\\x4f\\x05\\xe8\\xb7\\x7d\\x05\\x87\\x18\\x95\\xe6\\x3b\\x53\\x51\\xf7\\x6c\\xb2\\xd2\\xc8\\x38\\x5c\\x10\\x9d\\x73\\x06\\x19\\x2a\\x25\\x44\\x6e\\x4d\\x62\\xdc\\x7d\\x62\\x4f\\x0c\\x66\\x73\\x98\\x6b\\xe0\\x62\\x8b\\x2c\\x2d\\x73\\xeb\\x94\\x1d\\x35\\xa3\\x43\\x30\\x90\\xf5\\x9b\\x28\\xa5\\x97\\x9d\\x56\\xdb\\xc9\\xfd\\x69\\x73\\xf6\\x36\\x47\\x64\\x2c\\xd9\\x03\\xb0\\xcf\\x7a\\x6a\\xcd\\x33\\x0d\\x87\\xe2\\x29\\x27\\x10\\xde\\x99\\xe0\\xc1\\x79\\xca\\x78\\x92\\x9c\\xca\\xec\\xfa\\xed\\xbf\\x27\\x42\\x41\\x4f\\x17\\x6b\\x60\\x90\\xc0\\xd5\\x9a\\x9d\\xb7\\x81\\xc9\\x96\\x7e\\x28\\xfa\\x4e\\x77\\xd2\\xa0\\x82\\xe4\\x2f\\x52\\x16\\x91\\x67\\xe9\\x2d\\x4f\\xdd\\x82\\xe2\\xcc\\x05\\xdd\\x91\\x84\\xc7\\xdf\\xee\\x49\\x0a\\x23\\x7f\\xda\\xd4\\xdf\\xeb\\xc0\\x18\\x68\\xe0\\xa4\\x35\\x3a\\x29\\x54\\xd0\\x90\\x92\\x84\\x61\\x82\\x1a\\x7a\\x84\\x8d\\x1b\\x60\\x81\\x7f\\xc3\\xbd\\xef\\xa1\"},\n{{0x42,0xaf,0xe8,0x9d,0xac,0x83,0xe7,0xd3,0x89,0x96,0xc0,0xdb,0xce,0x0c,0x98,0x74,0xc0,0x09,0x27,0xba,0xbd,0x77,0xca,0x8c,0xea,0xc3,0x4e,0x56,0x44,0x74,0x28,0x2b,},{0xa4,0xc5,0xf5,0xe3,0x80,0x3f,0x0a,0x03,0xd5,0xc1,0xc9,0x06,0xca,0xec,0x9c,0xc6,0xd2,0x85,0x14,0x07,0xf1,0xca,0x29,0xf7,0x2a,0x45,0xf2,0x33,0xe6,0x65,0x62,0x44,},{0x4f,0xba,0x2d,0x6c,0xc1,0xb7,0x19,0x3d,0x35,0x62,0xf8,0xc8,0xbf,0xe6,0x90,0x5c,0x82,0x9d,0xb2,0x65,0xa5,0x42,0x7c,0x5c,0x26,0x57,0x14,0x78,0x5b,0x83,0xf6,0x95,0x14,0xc5,0xe3,0x0e,0x28,0xb5,0x66,0x84,0xc8,0x2d,0xae,0x26,0x37,0x58,0x1b,0xf3,0xf4,0xef,0x27,0x14,0x20,0xbc,0x7e,0x60,0x10,0x61,0x3a,0x38,0xfa,0x10,0x1a,0x0d,},\"\\xe7\\x10\\xa1\\x63\\xad\\x28\\x85\\xae\\xb7\\x65\\x8e\\xb3\\x74\\xf1\\x18\\xb7\\x68\\x42\\xec\\x36\\xef\\x3b\\x01\\x0c\\x3c\\x6b\\x95\\x59\\xe8\\xb1\\x60\\xc2\\x62\\x8d\\xed\\x0b\\x85\\x11\\xeb\\x49\\x07\\x18\\x0d\\xa4\\xb6\\x21\\xe9\\xaa\\x4a\\x32\\x22\\x88\\x88\\x8a\\x1c\\x09\\x13\\x0f\\x69\\xf8\\x90\\x59\\x7a\\x92\\x93\\xe7\\x4f\\x92\\x89\\xbd\\xaa\\x5c\\x91\\xb6\\xfd\\x24\\xaa\\x04\\x4a\\xb9\\xfc\\xb3\\x40\\x2f\\x7a\\xbc\\x48\\xd2\\xab\\x7b\\x38\\x80\\xa0\\x48\\xda\\xa4\\x48\\x64\\x5a\\xd2\\xec\\xb5\\x5b\\x3c\\xae\\xe2\\xd6\\x8a\\x8b\\xed\\xb5\\xd1\\x86\\x5d\\x5e\\x21\\x1d\\xe3\\x9b\\x0e\\xaf\\x22\\xe5\\xda\\xf1\\x0f\\x71\\x68\\x20\\x3a\\xa1\\x5b\\x85\\xaa\\x47\\xbb\\xd3\\xcc\\x41\\x69\\xcb\\xc1\\xfe\\x80\\xb4\\x70\\x0b\\x62\\x58\\x71\\xed\\xab\\xcd\\x4f\\xe7\\x4a\\x3e\\x96\\x55\\x69\\xce\\x24\\x5c\\xfc\\xde\\x42\\x09\\xcc\\x8a\\xbc\\xd6\\x79\\x7d\\x44\\x18\\x5b\\x4f\\x96\\xc0\\x18\\x1b\\xbd\\x27\\x00\\x87\\x83\\xe9\\x35\\x8a\\x53\\x94\\xfe\\x3a\\x34\\xa0\\x68\\x71\\xd3\\x79\\xda\\x35\\xb2\\x0b\\xb5\\x7e\\xef\\x9e\\x55\\x24\\xee\\x79\\x12\\xa6\\xf4\\x1b\\x4a\\x1f\\x68\\x4c\\x39\\x19\\xcf\\xcd\\xc0\\x0f\\x45\\x80\\xba\\xf9\\xe0\\x9d\\x31\\x6c\\xef\\xa0\\xf4\\x65\\xdc\\xa5\\xd8\\xee\\xc5\\x14\\xe9\\x5e\\x5a\\x57\\xbb\\xcd\\x27\\xe4\\x1f\\x81\\x19\\xb2\\x64\\xae\\x14\\xa3\\x19\\xd8\\xc3\\x85\\x9b\\xab\\xf1\\xf4\\xa6\\xb6\\xb7\\x7e\\x44\\x2c\\x86\\x1d\\x6e\\xe2\\x8a\\xd1\\x2b\\x82\\x36\\x2e\\x90\\xdb\\x0c\\x36\\x72\\xb0\\xe0\\xd9\\xff\\x58\\x14\\x6f\\xd1\\x59\\xaa\\x8f\\xa9\\x9d\\xc7\\x55\\xfc\\x85\\xb9\\x0c\\xf9\\x41\\x92\\x79\\xc0\\x62\\x4b\\x93\\xe7\\x5e\\xda\\x0e\\xf7\\xc0\\x96\\x95\\xae\\x93\\xbd\\x72\\x82\\x41\\x93\\x77\\xb7\\x6c\\xa8\\xbd\\xc0\\x52\\x1c\\xfe\\xe6\\xf6\\xd7\\x29\\xc3\\xad\\xff\\x89\\x46\\x87\\xb1\\x77\\xef\\x19\\x52\\x9a\\x6b\\xda\\xce\\x70\\xb6\\x85\\xc6\\xd7\\xa5\\xd7\\x4a\\x08\\xe2\\xa9\\xe7\\x24\\x03\\x59\\x75\\xc8\\x0d\\x18\\xcb\\x36\\x94\\x70\\xde\\x72\\x99\\xcb\\xd6\\xb0\\xa2\\x7c\\x92\\x32\\xc7\\xea\\xba\\xc8\\x6d\\x50\\x93\\xa6\\x5f\\xfe\\x0b\\x40\\xd4\\x0b\\xef\\xe8\\x0b\\x68\\xcd\\x9d\\xce\\x1e\\xa1\\xe6\\x57\\xe4\\x5e\\x9c\\x49\\x9d\\x0b\\x69\\x0f\\x74\\x45\\x5f\\xb4\\x70\\x96\\xed\\x8c\\x18\\xd1\\x51\\x7f\\x90\\x44\\x29\\x01\\xa6\\xc4\\x10\\xb7\\xf6\\x41\\x5f\\x20\\xae\\x48\\xc5\\x8a\\xde\\x8d\\x67\\x5b\\x6c\\x05\\x8d\\xf1\\x6a\\xe7\\x69\\x8f\\xce\\xae\\x95\\xaa\\x77\\x1b\\x4c\\xd8\\x8a\\x0b\\x3f\\x22\\xc5\\x1f\\x98\\xc7\\x1c\\x1e\\xb4\\x6b\\x26\\x4b\\xf9\\x7a\\x30\\x0e\\xcb\\x1f\\xd2\\x62\\x26\\xad\\x8e\\x87\\xa0\\x58\\xcf\\x3e\\x70\\x8e\\x26\\x0f\\x56\\x6b\\x68\\x53\\x14\\x04\\x51\\x33\\xf4\\xa5\\xe8\\xfb\\xc3\\x45\\x61\\xb9\\xa0\\xf1\\xff\\x93\\x39\\xf5\\x52\\x31\\x07\\x6b\\x73\\x6b\\x6e\\x11\\x52\\x43\\x19\\xa2\\x72\\xbd\\x44\\x53\\xa0\\xaf\\x14\\x93\\xda\\xa0\\x91\\x67\\xe8\\x46\\x43\\xd2\\x07\\xa0\\x2f\\xee\\x98\\xfb\\x22\\x3b\\x01\\xa9\\x9a\\xa5\\xce\\xf2\\xb7\\x00\\x1e\\x47\\x0f\\x6f\\x94\\xa5\\xdc\\x20\\x8e\\xdf\\xc0\\xcb\\x8c\\xf3\\x11\\x4a\\x91\\x96\\x00\\xf0\\x61\\x17\\x2f\\x0e\\xfe\\x03\\x90\\x36\\xbf\\x4d\\xdd\\xbf\\xd0\\xd4\\x5f\\x91\\x44\\x3b\\xf2\\x6f\\x8e\\x15\\xed\\x7d\\xb8\\xe5\\x5f\\x08\\x6a\\x4a\\x45\\x83\\xf4\\xbd\\xa0\\xf5\\x56\\x28\\x4d\\xcf\\x71\\x29\\x2f\\xe7\\x0f\\xca\\xa8\\x25\\x9b\\x9f\\xaf\\xf3\"},\n{{0x10,0xf0,0x09,0xaa,0x88,0x7d,0x91,0xce,0xd8,0x09,0xaf,0xe1,0x92,0xd7,0x8e,0x47,0x99,0xd9,0x03,0x77,0x62,0xf4,0xa9,0xd3,0xa4,0x29,0xfd,0xe0,0xf3,0x9f,0x7b,0x7a,},{0xcf,0x51,0x16,0xb9,0x21,0x21,0x2e,0x9b,0x78,0x82,0x9a,0x02,0x63,0x46,0x36,0x91,0xc6,0xfb,0xcc,0xdc,0x0c,0x11,0x8b,0xe1,0x41,0xc9,0x6f,0x8c,0x88,0x05,0x3d,0xd3,},{0xc3,0x7b,0xb7,0xb7,0x3b,0x11,0x05,0xbe,0x08,0x6f,0xf3,0x07,0x69,0x72,0x07,0x72,0x62,0xdf,0x4d,0x73,0x32,0xf6,0x08,0xc7,0xb2,0xb9,0xd9,0x78,0xd4,0x74,0xcb,0xbc,0x27,0x10,0x46,0x08,0x00,0x35,0xf3,0x96,0xee,0x36,0x47,0x9b,0x7a,0x67,0x11,0xc6,0x8e,0x25,0x61,0xc7,0x41,0xc0,0xec,0x5f,0xc9,0xec,0xa1,0x73,0x4e,0x81,0x1f,0x04,},\"\\x2e\\xdf\\x14\\xd6\\xcd\\x56\\x89\\x6e\\xea\\xa7\\x70\\x21\\x1c\\x49\\x84\\xbe\\xd8\\x0e\\xca\\x8d\\x65\\x34\\xd5\\xd5\\x10\\x88\\x4f\\x55\\xf1\\x1f\\x99\\xff\\xa9\\xf8\\x9b\\x58\\x6f\\xfe\\x7b\\x1e\\xc7\\xea\\xab\\x6a\\x9d\\xc1\\xa2\\x4a\\x3e\\xe3\\xc7\\xa6\\xab\\x44\\xad\\xe9\\x91\\x78\\x83\\x26\\x4e\\xde\\x2f\\x13\\x61\\xbe\\x7d\\x7a\\x38\\x17\\xf2\\x9d\\xec\\x95\\x81\\xc3\\x19\\xf1\\x8f\\x95\\xd5\\xbe\\x26\\xd9\\x11\\x8b\\xe6\\x78\\x34\\x00\\x37\\xa6\\x8a\\xbf\\xc5\\xef\\xbb\\x9a\\x3f\\x3f\\x38\\x78\\xaa\\xe3\\x72\\x1f\\xfe\\xf5\\xbb\\x6a\\x26\\xc7\\xb1\\xa3\\xa5\\x6d\\x2b\\xda\\x6c\\x6e\\x86\\x0e\\xb4\\x1f\\xd8\\xd8\\x37\\x11\\x74\\xd9\\x1c\\x74\\xc5\\xeb\\x67\\xc3\\x85\\x5c\\x63\\x0d\\x64\\x1d\\x2e\\x57\\x1a\\x9a\\x51\\xc6\\x40\\x2c\\xfe\\x18\\x42\\xce\\xf3\\x89\\x80\\xcb\\x8d\\x0a\\x64\\xbc\\xc8\\x9b\\xe3\\x18\\x9e\\x68\\x11\\xf4\\x7e\\x8f\\x4d\\x00\\x63\\xa5\\xb1\\x60\\x1f\\x44\\xfd\\xa2\\x0c\\x1c\\x4c\\x2f\\xc4\\x9c\\xbe\\x27\\xa4\\x13\\x7d\\xc4\\x63\\x8c\\x2a\\xd2\\xd0\\xa5\\x47\\x47\\x47\\x22\\x9c\\x56\\x8e\\x38\\x05\\x43\\x1f\\xa3\\x6e\\xeb\\xa7\\x85\\xf7\\xb9\\x78\\x44\\xb5\\xe3\\x19\\xfa\\x6a\\x09\\xcc\\x5a\\xe8\\x40\\x34\\x74\\xbb\\x91\\xdd\\x89\\x6c\\x1e\\xc2\\xba\\xc7\\x3d\\x2e\\x50\\x5e\\xfc\\x62\\xbd\\x50\\x2b\\x5c\\xeb\\x08\\xd1\\x6e\\x83\\x2e\\xc5\\xdc\\x4f\\x98\\xb5\\x1b\\x9d\\x07\\x38\\xb9\\xfb\\x28\\xf3\\xab\\xe8\\x96\\x6b\\xf2\\x23\\x75\\xa0\\xb2\\x2c\\x47\\x1a\\x9e\\x58\\xe3\\xfd\\x70\\x0d\\xe1\\x5c\\x52\\x96\\x37\\x3c\\x1b\\xc9\\xd4\\x64\\x0e\\xb7\\x81\\x6e\\x1d\\xc9\\xc8\\xce\\x86\\x19\\xa8\\x11\\x83\\x00\\x9e\\xc9\\x74\\x87\\x1e\\x8f\\x0a\\x97\\x72\\xed\\xe0\\xa6\\x38\\xb3\\x57\\x4b\\xf7\\x5d\\x8f\\x55\\x98\\x7f\\x3c\\xfa\\x6f\\xec\\x68\\x97\\x0b\\xfe\\x00\\xb2\\x3b\\x59\\xfb\\x5b\\xf4\\x99\\x6e\\xa5\\xd7\\x70\\x4f\\xcf\\x2e\\xff\\xcc\\x0f\\xd7\\xf3\\xd8\\xe6\\x05\\x60\\x08\\x09\\x7f\\x26\\xca\\xff\\xd5\\x41\\x5a\\x28\\x2a\\x27\\x6a\\x9b\\x26\\x45\\xe5\\xca\\xb1\\x29\\x68\\x87\\x2e\\xb0\\x52\\xf4\\xd7\\xc1\\x0c\\xc7\\xc2\\x1d\\x51\\x61\\x81\\x8b\\xb4\\x4c\\xc8\\x56\\xb0\\xde\\x76\\x9d\\x55\\x9c\\x55\\xdf\\x64\\xad\\x9a\\xdc\\x16\\xc0\\xac\\x65\\x83\\x8f\\x66\\x0d\\xa8\\x13\\x86\\xb7\\x0b\\x93\\x52\\x5e\\xc2\\xf4\\x0f\\x6f\\x63\\xf8\\xea\\x5d\\x48\\x30\\xb9\\x64\\x6c\\x46\\x18\\x3b\\xb4\\xe6\\xf2\\x70\\x47\\xbd\\xa2\\xa5\\x46\\xbd\\x34\\xbd\\x4d\\xb5\\xfb\\x88\\xfd\\x8a\\xb7\\xc7\\x5f\\x65\\x2e\\x15\\xd5\\xaa\\xa6\\xb4\\x6a\\x8a\\xcf\\x6e\\x44\\x8b\\xf2\\xdd\\x64\\xde\\xe3\\xc1\\x05\\x64\\x7c\\x7f\\x83\\xad\\x20\\x0d\\x80\\x97\\xc4\\x44\\xa1\\x58\\xd8\\x5a\\x54\\xf0\\xe5\\xdb\\xb1\\x2b\\x43\\xde\\x94\\x3a\\xf1\\xa8\\x18\\x56\\xac\\x96\\x9f\\x52\\xa0\\xbd\\x45\\x43\\x81\\xbd\\x26\\x50\\x41\\xa2\\x69\\x1d\\x1a\\x4a\\x0d\\x81\\x9f\\xa7\\x90\\x92\\xc8\\x80\\x35\\x21\\xfa\\x53\\x68\\x9a\\xb8\\x52\\xf1\\xfb\\xab\\xe0\\x0c\\x94\\xb7\\xf6\\x82\\xd1\\x21\\xcf\\xf5\\x43\\x91\\x32\\x25\\x29\\xc8\\xd5\\xad\\x7b\\xbb\\x98\\xea\\xfe\\x30\\x0a\\xb9\\x22\\xf1\\xc8\\x92\\x40\\xa1\\xe6\\x33\\xcf\\x56\\xa7\\xb0\\x2f\\x74\\xa2\\x92\\x14\\xe5\\x69\\xa0\\x57\\xbd\\x58\\x5e\\x40\\x4d\\x7c\\xd5\\x35\\x20\\x41\\x45\\x6e\\x6c\\xf9\\x0c\\x15\\x34\\x2e\\x02\\x56\\x70\\xf4\\xfc\\xcd\\xf9\\x87\\x83\\xb6\\x85\\x32\\x14\\xca\\xc3\\xfa\\x80\\x8a\\x66\\xc2\\x7b\\x65\\x3c\"},\n{{0x45,0x78,0xc6,0x5a,0x7c,0xa4,0x8f,0x27,0x74,0x05,0x0a,0x7b,0x0c,0xe7,0xa4,0xfd,0x5a,0xd4,0xe6,0x96,0xb2,0xb8,0xaf,0x23,0x96,0x16,0x4a,0x1c,0x7e,0x1b,0x7b,0xd7,},{0x15,0xbf,0x9d,0xbd,0x3b,0x81,0x73,0xe6,0xf0,0x3d,0xcf,0xd5,0x75,0xd9,0x09,0x84,0x5f,0x03,0x8e,0xaa,0x09,0xc5,0xd9,0x08,0xfe,0xf9,0x08,0xa9,0x74,0x58,0xb3,0xef,},{0xa1,0xc2,0x42,0xb4,0x5e,0x94,0xfd,0x18,0x0f,0x05,0x4c,0x71,0x01,0xe5,0x5b,0x39,0x65,0x68,0xf4,0x83,0xdb,0x6f,0x0d,0xfc,0x41,0x68,0xb6,0x9b,0x59,0xd3,0x85,0x81,0x4c,0x19,0xeb,0x30,0x75,0x23,0x7d,0x1f,0xbb,0x1f,0xee,0xbb,0xfe,0xa5,0x0c,0x56,0x81,0x3c,0x8c,0x39,0xc2,0x27,0x52,0xe0,0x2d,0xb7,0xe5,0x7f,0x3e,0x3f,0xbf,0x0d,},\"\\x50\\x6f\\x32\\xb9\\x68\\x14\\x24\\x3e\\x4d\\xd8\\x87\\x0a\\x8f\\xd6\\x0d\\xde\\xf0\\x9b\\xb8\\xc5\\x63\\x15\\x10\\x70\\xd9\\xbc\\xb2\\xb1\\x60\\xa3\\xea\\xbd\\x71\\xa0\\x44\\xd7\\x1e\\xc9\\x3f\\xba\\x95\\x28\\x8e\\xd6\\xfe\\x1a\\x7b\\x92\\x16\\x51\\x60\\x43\\x07\\xd6\\x5a\\x45\\xec\\x5d\\x3f\\x26\\x31\\xac\\xe4\\x0e\\x58\\xd5\\x3c\\x72\\xe5\\x26\\x88\\x6e\\x16\\x97\\x2f\\x6e\\x0d\\xb9\\x4d\\x57\\xb5\\x56\\x34\\xfd\\x39\\xd5\\x5e\\x9b\\xb7\\xf2\\x12\\xaf\\xab\\x00\\xf7\\x74\\x64\\x09\\x26\\x7e\\x8d\\x56\\x5f\\xf5\\xc2\\x25\\x73\\x33\\xc3\\xd0\\x41\\x52\\x17\\x4f\\xe1\\x2d\\xe6\\xa5\\x7b\\xea\\x05\\x7d\\xc2\\x19\\xe2\\xfb\\xa5\\xf1\\x91\\xed\\x81\\x41\\xc0\\x18\\x96\\x9d\\xe1\\x94\\x72\\xd6\\xaa\\xf7\\x63\\xf1\\x9e\\xc5\\x54\\x70\\x2b\\xb3\\xdc\\xbe\\x13\\xca\\x9b\\x23\\xb2\\x41\\x8c\\x99\\xe7\\x18\\x38\\xa8\\x8c\\xf4\\x54\\x72\\x8c\\xf9\\x20\\x8a\\x16\\xc8\\x4e\\xa3\\x98\\x29\\xb4\\xba\\x9b\\x4c\\x77\\xe1\\x76\\x11\\x2b\\xfe\\x1b\\xf3\\x5f\\x95\\xc4\\x02\\x8c\\x7d\\xb8\\x0b\\x36\\xfa\\xa2\\x9d\\x2b\\x89\\xe9\\xe8\\x62\\xf3\\x10\\x00\\x06\\x5f\\x13\\x9b\\x3d\\xa7\\x7d\\x9d\\x86\\x85\\x30\\x57\\x4b\\x7e\\x39\\x1e\\xd9\\x7b\\x34\\xf8\\x78\\x16\\x4f\\x6b\\x8d\\x87\\xb4\\x06\\xc7\\xdc\\x78\\x60\\xa5\\x17\\x5f\\x92\\x0e\\x5a\\x62\\xdc\\x1f\\xc8\\x2e\\xd8\\x45\\x25\\x43\\xb1\\x07\\x36\\x0d\\x35\\xd2\\xb4\\xc4\\x23\\x9e\\xab\\x46\\x6d\\x32\\xbf\\xda\\x34\\xf5\\x10\\x37\\xa6\\xfa\\xe7\\x6f\\x6d\\x8b\\x83\\xe8\\xf7\\xf4\\x89\\xdd\\x4c\\x1b\\x49\\xc3\\x8f\\x53\\x57\\x6e\\x62\\x17\\x2c\\x17\\xde\\xe3\\x66\\x5f\\xde\\x8c\\xbf\\x01\\x5a\\xf9\\x66\\x5b\\x0f\\x1d\\xa2\\xfb\\x77\\xb1\\x34\\xf0\\x4b\\xe2\\x71\\xe4\\x02\\xf3\\x15\\x37\\xc2\\xfc\\x05\\xc2\\xf9\\xb6\\xfc\\x3f\\xfe\\x47\\xde\\x33\\x69\\x13\\x38\\x67\\xc6\\x9d\\x10\\xe7\\xf5\\x37\\xba\\xe4\\x56\\x7d\\x46\\x8e\\x0f\\x2e\\xd8\\x06\\xfe\\x33\\x5f\\x93\\x9c\\x75\\x99\\x4f\\x36\\x3c\\xe3\\xb7\\x0d\\xaa\\x7d\\x5b\\xd2\\x31\\x7c\\x83\\x38\\x51\\xfd\\x8c\\xc9\\x72\\x51\\xec\\x41\\x90\\x23\\xd9\\xd0\\x17\\x4d\\x84\\xd5\\x60\\x9a\\x69\\x18\\xa1\\x74\\x0e\\xb1\\xe3\\x09\\xbd\\x12\\x73\\x66\\xde\\xb9\\xc5\\xab\\x12\\x99\\x2e\\x99\\x02\\xe0\\x15\\xfe\\x58\\xd6\\xad\\xbf\\x52\\xd2\\x2a\\x76\\x0a\\xcd\\x63\\xe1\\xed\\xd8\\xf1\\x38\\xe9\\xfb\\x01\\x37\\x18\\x86\\x01\\xe1\\x97\\x8e\\x7d\\x04\\xfb\\x2a\\xda\\x2b\\x2a\\xee\\x12\\xf4\\x9f\\x28\\x36\\xc6\\x84\\x2d\\x88\\xcf\\x48\\xc8\\x66\\xe3\\xd3\\x3f\\xcd\\x26\\x9c\\x27\\x5c\\x89\\xc2\\x5e\\x36\\x69\\xca\\x90\\xde\\x7b\\x67\\xa7\\xe7\\xa3\\x82\\xcb\\x7e\\xfa\\x47\\xe9\\xc2\\xbf\\x76\\x57\\x1c\\x79\\xa2\\x50\\x85\\xef\\x02\\x04\\x87\\x15\\x2f\\x06\\xbf\\xa1\\x33\\x01\\x5a\\x1b\\x8f\\x1c\\x0f\\x6a\\x9f\\x0e\\xae\\x1b\\xa6\\x2b\\xf1\\x04\\xf1\\xc1\\x6a\\xc1\\x4e\\x1e\\x96\\xc4\\xeb\\xdf\\x06\\x1e\\x0c\\xc7\\x10\\x1d\\x38\\xda\\x7e\\x9e\\x09\\x94\\xda\\xf0\\xf3\\x22\\xaa\\x3c\\xfe\\xf9\\x1b\\x61\\x6c\\x2d\\x00\\x06\\x89\\xab\\x18\\xed\\x45\\x26\\x8d\\xcd\\x27\\x50\\x94\\xf6\\x56\\xba\\x3c\\xf5\\x15\\x26\\x10\\x24\\x74\\x1f\\x74\\x44\\xab\\x7f\\xc4\\xde\\xcc\\xe1\\x67\\x56\\x03\\x2a\\x1b\\xe2\\x70\\xff\\x0b\\x03\\x17\\x54\\x2b\\xa0\\x26\\x62\\x26\\x0a\\x37\\x6f\\xc9\\x12\\xcb\\xb0\\x29\\xca\\xc5\\x45\\x15\\xf5\\xa5\\x51\\x36\\x4f\\x6a\\x99\\xff\\xad\\x0b\\x9c\\xbc\\xd0\\xe6\\x93\\xb7\\xa5\\x21\\xcb\"},\n{{0xc2,0x1e,0x70,0xc4,0x6e,0xde,0x66,0xe6,0x8a,0x88,0x73,0xbb,0xc6,0x4b,0xa5,0x12,0x09,0x30,0x3a,0x0a,0xc4,0xfc,0x49,0xb1,0xd8,0x3e,0x81,0x93,0xad,0x46,0xc0,0x37,},{0x9f,0xbf,0x80,0xa4,0x25,0x05,0xd2,0xc9,0x52,0xf8,0x9f,0x45,0x58,0xc3,0xe6,0xd1,0x87,0xa7,0xbc,0x1e,0xf4,0x46,0xb2,0xe3,0x73,0x23,0x43,0xc1,0x3b,0x33,0xd2,0x00,},{0x0a,0xe3,0x43,0xbb,0x84,0xe3,0xa2,0x99,0x07,0x8e,0x24,0x34,0xba,0x22,0x00,0x22,0xf3,0x16,0x0f,0x96,0x8a,0xc0,0x44,0x82,0xbf,0x8c,0xad,0x13,0xb4,0x23,0xf2,0x67,0x0f,0x01,0xfb,0x5f,0x7b,0x32,0xc5,0x97,0x52,0x0f,0x84,0x60,0x7e,0x0f,0x79,0xc0,0x75,0xfa,0x70,0x78,0xe6,0xe6,0x9d,0x3c,0xec,0x31,0x92,0x65,0xd4,0x66,0x08,0x0b,},\"\\xf5\\x5a\\xa5\\x70\\xce\\x4f\\xc9\\x5f\\x73\\xf5\\x17\\x20\\xd2\\x54\\xe4\\x69\\x5f\\xcd\\xc8\\x1a\\xaa\\x04\\x01\\x30\\xc7\\x68\\x7f\\x03\\x9b\\x8b\\xa5\\x9e\\xd8\\x57\\xce\\xb2\\x9c\\x12\\x10\\x25\\xa8\\x57\\xfe\\xac\\xb4\\xa0\\x1f\\x38\\xe0\\x11\\x78\\x31\\x0a\\xe6\\xe3\\x5c\\x99\\x8e\\xbf\\x89\\xdd\\x79\\x05\\x7b\\x4a\\xfc\\x6d\\xb3\\x40\\x60\\x1c\\x81\\x70\\x3c\\x87\\xa8\\xc4\\x0e\\x5c\\xeb\\xb0\\x44\\x1d\\xf7\\x8a\\x6d\\xe1\\x3a\\x44\\x7c\\xb0\\x16\\xc6\\x5e\\x74\\x1b\\xb7\\xdf\\x30\\x4d\\x83\\x05\\x6b\\x72\\xc6\\x82\\xc7\\x31\\xfa\\xc0\\xa0\\xc7\\x0b\\x78\\x11\\xca\\x14\\xa5\\x01\\x54\\x61\\x30\\x99\\xc2\\xc4\\x37\\x52\\x1c\\x40\\x4b\\x63\\x61\\xde\\x36\\x21\\xf8\\xea\\x56\\xb0\\x8e\\xbf\\xdb\\x07\\xb4\\xf2\\xbb\\x8b\\xa2\\xec\\xc1\\x64\\x33\\x6d\\xa8\\xef\\xc9\\x42\\x76\\x6e\\xf0\\xc7\\x4d\\xfd\\x3b\\x49\\xe0\\x87\\xe9\\xa2\\x7a\\xe5\\x4a\\x7a\\x2b\\x98\\x28\\x1b\\x9a\\xf9\\x3d\\xc1\\x1a\\xa2\\xf0\\x92\\x24\\xab\\x5a\\x73\\x0f\\x02\\x18\\xf4\\xa6\\xe1\\xea\\x48\\x85\\xa7\\x7f\\xbd\\x93\\xa1\\xc5\\x82\\x77\\xd9\\xe0\\x1b\\xe7\\x3a\\x25\\xcd\\xa9\\x18\\xfc\\x27\\xdd\\xdb\\x45\\x3a\\x5d\\xa6\\x90\\x2a\\xd0\\x2b\\xa0\\x57\\x75\\xc6\\x7e\\x07\\xbe\\xa4\\xdf\\x86\\x91\\x34\\x66\\x74\\x43\\x65\\xc1\\x32\\x6e\\x0a\\xb5\\xe1\\x25\\x4c\\x17\\x96\\x74\\x47\\xd5\\x91\\xba\\x5e\\xd1\\xb6\\x3a\\x42\\x54\\x3b\\x87\\xfe\\xd4\\x14\\x59\\xa0\\x89\\xbc\\xea\\xff\\x21\\x98\\x02\\xa8\\x7a\\x87\\x2a\\x76\\x3e\\x69\\x23\\x33\\xce\\x1c\\xc7\\x39\\x78\\x25\\x08\\x4b\\x2b\\x83\\x1e\\x93\\xd8\\x0d\\x67\\x37\\xf3\\x29\\x80\\xf2\\xf3\\xae\\x82\\xc6\\x21\\x90\\xfe\\x3f\\xa7\\x00\\xc5\\xb7\\x32\\x9d\\x6d\\x50\\x04\\x2b\\xdf\\x83\\x1f\\x37\\x54\\x8f\\xcc\\x80\\xb1\\x1f\\x57\\xcf\\x20\\xf6\\x7a\\x3b\\xb6\\x51\\xa7\\xbe\\xff\\xcc\\x48\\xb7\\x0d\\x17\\xeb\\x60\\xf7\\x25\\x9c\\xc5\\x3b\\xf7\\xff\\x60\\x80\\xeb\\x2b\\xd0\\x92\\x3b\\x04\\x83\\xaa\\x30\\x65\\xa8\\x95\\x5f\\x01\\xd2\\x3b\\xa8\\x09\\x51\\xe0\\xae\\xfd\\x2a\\x93\\x72\\x19\\x15\\x72\\xbc\\x52\\x91\\x6a\\xa2\\x2a\\x2a\\xec\\x39\\x37\\x67\\xfa\\xfd\\x08\\x68\\x39\\xe2\\x36\\xfe\\x04\\x60\\xce\\x6d\\x63\\x9c\\x7c\\xe6\\x9f\\xe7\\xf9\\xd3\\xaa\\xd2\\x13\\x05\\x73\\x44\\x35\\x70\\x44\\x3b\\xe6\\xba\\xb9\\x3a\\x06\\xa5\\x4b\\x8a\\xc2\\x9b\\xf3\\x3f\\xf9\\x94\\x9b\\xc9\\x21\\x58\\xe6\\x92\\x4b\\x6b\\x68\\xec\\xda\\x5f\\x6f\\x3a\\xaf\\x42\\xb3\\xd2\\x2d\\xf6\\xd5\\xe6\\x7d\\x5c\\xb3\\xab\\x71\\xeb\\x8e\\xe0\\xb0\\xe6\\x67\\x32\\xe1\\xda\\xca\\x6c\\xd6\\x0d\\x9a\\xa7\\x43\\x05\\xfc\\xd5\\x70\\x07\\x6d\\x22\\x8d\\x44\\x6d\\x5e\\xe5\\x42\\xb1\\x04\\x88\\xbf\\x8a\\xa9\\x88\\xf4\\x51\\xfa\\xeb\\xe7\\x4a\\xb6\\x69\\xd6\\x04\\xd9\\xdd\\xb1\\x51\\x06\\x62\\x0e\\xa0\\x2e\\x8d\\xb3\\x8c\\xe6\\x39\\xb5\\x74\\x78\\x12\\xbb\\x90\\x48\\xee\\x8b\\xf7\\x2b\\x1a\\x95\\x1a\\x05\\xdf\\xfa\\xc9\\x54\\x17\\xcb\\x43\\xb0\\x6d\\xce\\x61\\xee\\x3d\\xa6\\xf2\\x83\\x2e\\xe8\\x3b\\x2e\\x72\\x88\\xdd\\xd6\\x2e\\xeb\\x58\\x93\\xf7\\xf2\\xf6\\xc8\\x09\\x0d\\x99\\xe3\\x36\\xc9\\xf9\\x06\\x9e\\x18\\x15\\x98\\x58\\x41\\xbd\\xd5\\x05\\xb5\\xf8\\x3d\\x89\\x5e\\x87\\x95\\x93\\xda\\xde\\xe7\\x2c\\xeb\\x97\\x65\\x69\\x9b\\xf8\\x0b\\xd0\\x6a\\x5c\\x55\\x33\\x1b\\x25\\x45\\x52\\x7d\\x0c\\x7c\\xae\\xce\\x96\\x58\\x4c\\xe3\\xec\\x7f\\xe0\\x22\\x60\\xf2\\x0b\\x8a\\x1c\\x06\\x35\\x76\\x3f\\xf4\"},\n{{0xf2,0xc1,0x05,0x77,0xf7,0xdf,0x77,0xf0,0xc1,0x15,0x7a,0x8c,0x33,0x1a,0x7b,0xd2,0xae,0x63,0x86,0x67,0x0e,0xb6,0x5f,0x0f,0xae,0x12,0x23,0x31,0x69,0x0f,0x82,0x8a,},{0x0d,0x4c,0x34,0x0f,0xc2,0x31,0xaa,0xfb,0x3b,0x6f,0x74,0xb8,0x9b,0xce,0xf7,0xee,0xaa,0x0b,0x04,0xf2,0x93,0xec,0x85,0x44,0x24,0x7b,0xfc,0x3f,0x2d,0x57,0xc1,0xe0,},{0x60,0xb7,0x03,0x11,0x5a,0x32,0x2a,0xb8,0x92,0xc2,0x76,0xbf,0xd1,0x8f,0x70,0xa9,0xeb,0x0c,0x73,0x23,0xe2,0xc0,0xa6,0xeb,0x5f,0xc7,0xe3,0x30,0xb0,0xbc,0x3b,0x07,0xa5,0x78,0xa0,0x82,0x84,0x62,0x64,0xf0,0x32,0xc6,0x19,0x1d,0x04,0x0b,0xd9,0x8e,0x5d,0x5a,0x4d,0x4f,0x07,0x6f,0xb9,0x06,0x2a,0xcd,0x36,0xbe,0xa4,0x0c,0x91,0x02,},\"\\x38\\xea\\x1e\\x02\\x8a\\x49\\x3d\\x1c\\x60\\xec\\x70\\x74\\x9f\\x14\\xd4\\x36\\xeb\\x3a\\x2b\\x2d\\xe5\\x4f\\x21\\x3d\\x01\\xa6\\x45\\xb5\\x80\\x43\\x0e\\xcd\\x8e\\xce\\x6b\\x55\\x69\\xcc\\x01\\x7a\\x49\\x43\\xe5\\x59\\x5c\\x5e\\xd6\\xe4\\x8c\\x94\\x43\\xf2\\xfa\\x5e\\xb2\\x22\\x7f\\xfe\\x56\\xd2\\x11\\xf2\\x69\\xbc\\x8f\\x6f\\xa9\\xee\\x8c\\xd5\\x6f\\x6b\\x84\\x70\\x53\\x92\\x08\\xaf\\xe2\\x9a\\xb0\\xa1\\x95\\x04\\x4d\\x95\\x7b\\x31\\xf9\\x3e\\x18\\x4a\\x9c\\xbe\\xf1\\xa1\\x4e\\x14\\xf8\\x08\\xbb\\xf5\\x89\\xac\\x77\\x70\\x08\\x4f\\x99\\x8e\\x1b\\x25\\x4d\\xa5\\x9c\\xa6\\xd3\\xe6\\x2e\\x7b\\xe1\\x79\\x07\\x16\\xd2\\x56\\x0f\\x01\\x5f\\x39\\x9c\\xbb\\xce\\x48\\xcf\\xd0\\x39\\x1e\\xad\\x19\\x93\\x44\\x6f\\x6b\\x24\\x93\\x97\\x7d\\x93\\xd7\\xb0\\x9a\\x07\\xa7\\x9a\\x59\\xce\\x15\\xdc\\xe7\\xa1\\xda\\x9c\\x64\\x6f\\x45\\xaf\\x2c\\xca\\xd5\\x5b\\xa1\\x58\\xe6\\x38\\xc4\\xa3\\x0c\\x5d\\x30\\xe9\\xac\\x6e\\x3a\\x33\\x39\\xc2\\x43\\x42\\x6d\\x86\\x49\\x1b\\x2d\\x92\\xda\\xc1\\x47\\x8e\\x8d\\x74\\xff\\x0b\\xf1\\x49\\xbd\\xb5\\xe0\\x9e\\x3f\\xb6\\xb8\\x26\\x2e\\xb0\\x68\\x79\\x81\\x55\\x4a\\xe2\\xcb\\x47\\x19\\x63\\x39\\x07\\x9d\\xa0\\xa1\\xa5\\x72\\x39\\xc1\\x9b\\xf7\\x81\\xf6\\x2f\\xda\\xf4\\xe3\\x15\\x60\\xa8\\x43\\x17\\xef\\x03\\x04\\x92\\xcf\\x1b\\xb1\\x30\\x5b\\xa8\\x51\\x8e\\xba\\xf2\\xb4\\x34\\xd3\\x64\\x16\\x72\\xc8\\xf6\\xea\\x2d\\xef\\xa6\\x96\\xdc\\x7e\\x4f\\x39\\xef\\xc0\\x8d\\x28\\x8d\\x1c\\x96\\x6a\\x6c\\x71\\x48\\xc0\\x12\\xee\\xc4\\x39\\xf7\\xe1\\x2d\\xba\\xb5\\xb8\\x7c\\xfa\\x44\\xc9\\xae\\x19\\x00\\xf8\\x38\\x6f\\x24\\x44\\x4e\\x10\\x92\\xb2\\x3a\\x27\\x4c\\x13\\x8e\\x95\\xc6\\x61\\xe9\\x37\\x7e\\x8a\\xd2\\xd1\\xfc\\xaf\\x19\\x39\\xec\\x9a\\x63\\x2a\\x87\\x3f\\x7e\\xad\\xbe\\x68\\x7b\\x4a\\x03\\x3b\\x92\\xa4\\x77\\xf2\\xe0\\x2e\\x9e\\xd9\\x2c\\xe4\\xf9\\x5c\\xf1\\x70\\xb3\\x90\\x15\\x18\\xa0\\x62\\x14\\x3e\\x56\\xdb\\x05\\x4d\\xf4\\xe4\\x43\\x15\\x44\\x78\\x5a\\x6d\\xfa\\x24\\xee\\xc0\\xf0\\xde\\x7a\\x69\\x9c\\xcf\\x28\\x6d\\xad\\xfa\\xd8\\x59\\x03\\x61\\x22\\x50\\x76\\x4f\\x25\\xcd\\xea\\x81\\x27\\xd0\\x07\\x8d\\x55\\x48\\x25\\xea\\x6e\\x73\\x71\\xc4\\x38\\xbc\\x46\\xf2\\x9f\\xb8\\x93\\x7f\\x8d\\x9a\\x39\\xcf\\x88\\x49\\x05\\x2d\\x43\\xec\\xbf\\xf6\\xc4\\xa3\\x76\\x2a\\x5f\\x40\\x0c\\x15\\x14\\xe8\\x5e\\x91\\x38\\x4f\\xef\\x9b\\x40\\xf4\\x31\\x4e\\x22\\x3a\\x9d\\x68\\xc5\\x26\\xac\\xc7\\x02\\x27\\xd6\\x2b\\x8b\\x63\\x7a\\x34\\x2d\\xf1\\x13\\xd3\\x18\\x20\\x2c\\x51\\xed\\xd3\\xc1\\xef\\xd1\\xff\\x20\\xb1\\xff\\x07\\x8b\\x32\\x06\\x8e\\x79\\x4d\\x92\\x81\\x33\\x03\\x7f\\x1e\\x3a\\x34\\x68\\x9e\\x62\\x9e\\x43\\xfd\\x2b\\x8e\\x88\\xea\\xb5\\x0d\\x7e\\x7a\\xb0\\x64\\x70\\x14\\xab\\x5e\\x4a\\xd5\\x82\\x00\\x65\\x67\\xef\\xf7\\x2b\\x5a\\xf2\\xda\\xc5\\x36\\x89\\x2c\\xcc\\x87\\x1f\\x8a\\x80\\xb5\\xcb\\x79\\xd9\\x0b\\xcc\\x6b\\x77\\xd4\\xcd\\x08\\xf8\\x76\\x18\\x4e\\xf5\\x8c\\x06\\x4a\\xe4\\x30\\xbb\\x79\\xa6\\xb9\\xe9\\x6b\\x0a\\xd8\\x73\\x68\\xaa\\x83\\x8a\\x8d\\xcc\\xff\\xac\\x0c\\xd8\\xce\\x9e\\xa0\\xd0\\xec\\x4c\\x4b\\x0f\\x42\\x67\\x34\\x16\\x65\\x9c\\x98\\x49\\x92\\xcf\\x53\\xb1\\xe4\\x45\\x43\\x10\\x07\\x64\\x0d\\x47\\xec\\xe2\\x6d\\xee\\x4a\\x29\\x43\\xaa\\x70\\x97\\xdd\\x35\\x6c\\xff\\x47\\x54\\xf2\\x1a\\xc0\\x7f\\x6b\\x3f\\x73\\xc4\\x69\\x05\\x55\\x12\\xf3\\x7a\\xba\"},\n{{0x04,0x1a,0x97,0x90,0x6b,0x59,0x56,0xb9,0xd3,0x40,0xf2,0xe0,0xd7,0xa1,0xdc,0xbf,0xef,0xe6,0x63,0xe9,0xbb,0x40,0x26,0xf8,0xcc,0x1a,0xe7,0xe2,0xa1,0x4d,0xe2,0x7e,},{0xf3,0x82,0xd3,0x2e,0x88,0xc3,0xa7,0x2c,0x7c,0xad,0xda,0xfc,0xf8,0xaa,0x69,0x9e,0x21,0xdb,0x7a,0x6b,0xf4,0xed,0xd6,0xe4,0x9a,0x00,0x5a,0xad,0x70,0x2e,0x6a,0x79,},{0xa2,0x3f,0x03,0x2e,0x66,0x92,0xa0,0xe8,0xbf,0xee,0x5b,0x2d,0x30,0xb4,0x14,0xcb,0x16,0xc3,0x5a,0xd0,0x8d,0xa3,0x1f,0x69,0x6d,0x46,0x1a,0x02,0x85,0x78,0x22,0xc4,0xef,0x35,0x7f,0x0c,0xcf,0x31,0x02,0x5a,0x4d,0xc9,0x5c,0xed,0x30,0xa9,0x94,0xf4,0x1e,0xdd,0x1d,0x08,0x7a,0xfc,0xaa,0xf3,0xe8,0xe8,0x75,0x70,0x83,0x20,0xf8,0x0c,},\"\\x71\\xa7\\x59\\x57\\x41\\x15\\x44\\x97\\x5a\\x48\\xcf\\x10\\x3a\\xa1\\xf8\\xe2\\xad\\x15\\x24\\x44\\x59\\xcd\\xc0\\xe3\\x36\\x96\\x6e\\xb8\\xb2\\x6c\\x97\\xf2\\x16\\x9e\\x5d\\x78\\x53\\x70\\x37\\xef\\xc0\\x77\\xe8\\x6f\\x06\\xe0\\x5e\\x9c\\x1d\\xc3\\x41\\x82\\x88\\xc0\\xa2\\xbe\\x6b\\xa3\\x4b\\x3a\\x04\\xab\\x20\\xba\\xe7\\xf3\\x62\\x10\\x94\\xb8\\x7d\\x78\\xa7\\xea\\xcb\\x86\\x4d\\x40\\x78\\xcb\\x4e\\xfc\\xba\\xc5\\xad\\xd9\\x37\\xa2\\xc6\\x01\\x2e\\xe1\\xa8\\xb2\\x56\\xcc\\x27\\x6b\\x65\\xd5\\xe9\\x2b\\x4d\\x00\\xb9\\xb1\\x1f\\xad\\x88\\x49\\x91\\xde\\xc4\\xc1\\xcb\\x9d\\xce\\x18\\x63\\xc8\\xb0\\xa2\\x10\\x16\\x1a\\xe6\\xb3\\xf8\\xbf\\x9c\\xc4\\xdc\\xe4\\xad\\xfd\\xc8\\xed\\x57\\xd8\\x3e\\x95\\xab\\x9d\\xd2\\xd9\\x26\\x58\\xdf\\xbd\\x3a\\xfa\\x99\\xe3\\xf8\\x95\\x1e\\x2a\\xd7\\x4a\\x14\\x8f\\x6f\\x59\\x7e\\xb2\\xc9\\x45\\xc1\\xf1\\xb9\\x44\\x61\\xae\\x07\\x45\\x48\\x1f\\xd0\\xed\\xf8\\x38\\xc6\\x28\\x60\\x35\\xe3\\x6f\\x01\\x12\\x38\\x87\\x5d\\xbb\\xa2\\x28\\x9d\\x3d\\x6a\\x39\\x42\\xa7\\xf9\\x55\\x4c\\x64\\x43\\x05\\x24\\x4d\\xdb\\x77\\xc1\\x17\\xcb\\x4b\\x56\\x23\\x77\\x29\\xdd\\xe4\\x28\\xb8\\xbb\\x42\\xdf\\x9c\\xe2\\x9e\\x14\\x4d\\xfc\\x96\\xcf\\x6c\\x67\\x67\\xb1\\xee\\x6d\\x05\\x3c\\xe4\\xf8\\xbb\\x20\\x56\\xab\\x78\\x10\\xaa\\x13\\x68\\xa8\\x91\\x0f\\x2f\\x69\\xe0\\x61\\xc1\\x9d\\x88\\x47\\x18\\x4f\\xed\\x53\\x4f\\x98\\x75\\x8d\\x70\\x3a\\x76\\x88\\x5f\\x91\\xeb\\x75\\x2a\\x21\\x95\\x4a\\x10\\xc6\\xf6\\xb4\\xda\\x10\\x46\\x4d\\xed\\x36\\xb0\\x00\\x89\\xf6\\x62\\x91\\x54\\x21\\xbf\\xda\\xd4\\x96\\x75\\x36\\x89\\xcc\\xd0\\x3b\\x62\\x40\\x21\\x08\\x07\\x61\\xe6\\x81\\x76\\xb1\\x06\\x97\\xda\\xc8\\x78\\xe4\\xc3\\xdb\\x2f\\xd0\\xb2\\x8c\\x65\\x53\\x35\\xd9\\x80\\x16\\xf1\\x9f\\x26\\x5b\\xb0\\xb2\\x43\\x4c\\xb4\\x63\\x78\\x44\\xd9\\x1e\\xd0\\xce\\x05\\xed\\x25\\x91\\xfd\\x99\\x89\\x65\\xf8\\x3f\\x31\\x97\\xd1\\x0e\\xef\\x44\\x88\\x50\\xe7\\x92\\x03\\x27\\x24\\x70\\x1d\\xa3\\x05\\xcb\\x6d\\x79\\x46\\x69\\x48\\x3f\\xc3\\xdc\\x6f\\x68\\x6b\\x18\\x3e\\x29\\x99\\x13\\x0c\\x8f\\xc0\\x05\\x8d\\xca\\xbb\\xc9\\x18\\x8f\\x26\\xb2\\xd6\\x3e\\xbd\\x6c\\xb1\\xe1\\x8a\\x09\\x7c\\x77\\x04\\xa5\\x9b\\x5e\\x18\\x7e\\x01\\x42\\x59\\x3b\\x70\\x83\\xf7\\x40\\x0a\\xfa\\x9b\\x1b\\xf0\\xc1\\xcc\\x6c\\x35\\x6b\\xc4\\x33\\x4a\\xf7\\x72\\xe6\\x71\\x53\\xb4\\x5b\\x33\\x1b\\x99\\x09\\x20\\xc2\\x4e\\xed\\xe2\\xc6\\xe3\\x23\\x70\\x3f\\x52\\xec\\xd6\\x07\\x35\\xb2\\x3b\\xf2\\x2b\\x81\\xee\\x77\\x59\\x27\\xc3\\x7e\\x53\\xda\\xd7\\x59\\x6e\\xa6\\x5a\\x73\\xbb\\x96\\x77\\x5f\\x3b\\x87\\xc8\\xb3\\xc0\\x88\\xec\\x69\\x5b\\xc3\\xa7\\x50\\x2c\\x0c\\x51\\x0f\\x02\\x0b\\xf9\\xac\\xa3\\xcb\\xb7\\xa2\\xc0\\x11\\xc6\\x7f\\xf2\\x7d\\x63\\x4c\\xaf\\x1d\\xcf\\xc5\\x8e\\x5e\\x39\\x7e\\x66\\x58\\x25\\x22\\x72\\x01\\x1c\\x8f\\xfd\\xd6\\x42\\x30\\xa9\\x32\\x41\\xff\\xf6\\x83\\x72\\xc4\\xba\\x85\\x38\\x2b\\xbb\\x22\\x93\\x09\\x65\\x29\\x22\\xdb\\x68\\x83\\x66\\x31\\xe5\\x5b\\xe6\\x9a\\xb6\\xad\\xb8\\xe4\\x33\\x53\\x57\\xfc\\x92\\x3e\\xfe\\x15\\x4a\\xfc\\xc2\\x22\\xd6\\x0d\\x07\\xf5\\x69\\x90\\xa3\\xe5\\xa2\\x14\\xb2\\x27\\xae\\xcf\\xf2\\xcd\\x1b\\xb6\\xf0\\xc7\\x9f\\xf5\\x45\\xf7\\x0a\\x61\\x61\\x41\\xa9\\xd5\\x3f\\x92\\x2a\\x02\\x44\\x3f\\x7d\\x2a\\x46\\x89\\xc3\\x5b\\x09\\x5d\\xd3\\x94\\xd5\\x0b\\xf4\\x9f\\x96\\x80\\xa5\\xf7\\xd9\"},\n{{0x4b,0xc5,0xe0,0x5a,0xa0,0x03,0xa4,0x49,0x2f,0x4b,0xad,0x10,0x2a,0x53,0x90,0xf7,0xce,0xba,0xb3,0xd3,0xec,0xa9,0x15,0x21,0x42,0xad,0x5e,0xf7,0xd8,0x40,0x30,0xae,},{0x67,0x51,0xd3,0xad,0x8b,0xb6,0xc6,0x4d,0x6a,0x17,0xd7,0xe4,0x47,0xa2,0x7d,0xa2,0x2f,0x5f,0x04,0x03,0xf4,0x37,0xba,0xc9,0x44,0x9f,0x13,0xcc,0x85,0x3d,0xd8,0x40,},{0xa2,0x4f,0xee,0x11,0xf7,0xec,0x6d,0xa3,0xe9,0xdf,0xaf,0x6c,0x85,0x8a,0xc0,0x04,0xb4,0x53,0x1a,0xbd,0x1c,0x9d,0x3b,0xb6,0x4f,0x40,0xdd,0x24,0x7f,0x00,0x35,0x93,0x50,0xe4,0x3b,0x2d,0x4b,0x8f,0xbe,0xc5,0xf6,0xb2,0x41,0xec,0xf9,0xf1,0x10,0x14,0x85,0xcf,0x41,0x87,0x35,0xb0,0x5f,0x71,0x20,0x18,0x33,0x5b,0x20,0x06,0x83,0x08,},\"\\xa8\\xf7\\x94\\xdb\\x17\\x95\\x66\\x7d\\x28\\xd2\\x4b\\x70\\xac\\x22\\x00\\xa6\\x23\\x9a\\x34\\xe2\\x43\\x8c\\xed\\x1d\\x03\\xf9\\x7e\\xd4\\x8b\\xeb\\x4d\\x6b\\xea\\x67\\xc1\\x43\\x38\\xf7\\x73\\x64\\x19\\xdc\\xd2\\xa2\\xa7\\x97\\x37\\x26\\x57\\x2e\\x6a\\xfe\\x7e\\xdf\\xef\\x22\\xc9\\x9b\\xe8\\xb0\\x69\\xf0\\x4f\\x6d\\xc6\\x1a\\x13\\xb3\\x43\\xc6\\xe5\\x85\\xab\\xad\\x22\\x14\\xd8\\x5c\\x36\\xf0\\x29\\x96\\xfa\\xbb\\x46\\xbb\\x91\\xb5\\x17\\x6a\\xc7\\x08\\xe4\\x9a\\x0b\\x05\\x30\\x17\\x04\\x8f\\xbb\\x55\\x45\\x3f\\x2b\\x82\\x08\\xd6\\x67\\x8d\\x1a\\x8c\\xf6\\xa1\\xee\\x9a\\xd7\\xa9\\x1e\\x38\\x03\\x25\\x63\\x5d\\x1e\\x23\\x6a\\x6c\\xa1\\xd6\\xcc\\x7f\\x6b\\x59\\xf2\\xa2\\xbf\\x18\\x4f\\x5e\\xe4\\x51\\xd6\\x79\\x9f\\x69\\xba\\x11\\xa0\\xcd\\x6b\\xc0\\x4b\\xe8\\xa3\\x51\\xa8\\x0e\\x72\\x5b\\x5f\\xc4\\x56\\x3e\\x45\\xbd\\x47\\x49\\xec\\xbc\\x45\\x20\\x52\\x29\\x10\\x5b\\x9d\\xe7\\x32\\x61\\x49\\x85\\x27\\xf3\\xd4\\xec\\xfb\\xb5\\x83\\xff\\x53\\x27\\x53\\xd0\\x7c\\x38\\x52\\x6b\\xb4\\x82\\xd1\\x71\\xa2\\x61\\xb9\\xcf\\x89\\x90\\x6a\\x7d\\xea\\x8c\\xbd\\x7e\\x72\\x6b\\xa3\\x1e\\xa6\\x88\\x03\\xa6\\xb0\\x04\\xf6\\xdc\\xd1\\x9e\\x67\\x19\\x50\\x46\\x37\\x38\\xcc\\xa7\\x8b\\xb0\\xdf\\xfa\\x3d\\x64\\x57\\xe4\\xae\\xca\\x65\\x7e\\xc6\\x49\\xb9\\x7e\\xe3\\x0e\\x97\\xc8\\xcb\\xe6\\xce\\x43\\xc2\\xaa\\x9a\\x69\\x95\\x8e\\x9d\\xc8\\x81\\xe4\\xaa\\x7b\\x32\\x78\\x07\\x4e\\x78\\x7a\\xce\\x5f\\xb6\\x01\\xd7\\xfa\\xf7\\xca\\x51\\x03\\xec\\xbb\\xd3\\xbd\\x55\\x4e\\xb1\\xb0\\x66\\xf8\\x29\\x6d\\x2c\\xc5\\x7e\\x8c\\x8a\\x32\\xe9\\xc0\\xe6\\xa9\\x26\\x96\\x4d\\x6d\\xf2\\xd8\\x64\\x58\\x64\\xb3\\x22\\xc3\\x22\\xf1\\xca\\x80\\x73\\xce\\xdf\\x2b\\x55\\x67\\x11\\xa7\\xa2\\x0b\\x77\\xc0\\xa1\\xed\\x27\\x7a\\x9a\\x6c\\xa2\\xc0\\x71\\x54\\xe8\\x63\\xfe\\xf5\\xa4\\x04\\xe3\\xe8\\x9f\\x0d\\x7f\\x30\\xf2\\x18\\xec\\x4d\\xe7\\xa5\\x3a\\xeb\\x9c\\x41\\xee\\xaa\\xf6\\xce\\x74\\x96\\x49\\xc9\\x99\\x8f\\xd6\\x2b\\xcb\\xa2\\x87\\x23\\x38\\xe1\\x9c\\x94\\xe5\\x9d\\xd5\\xe2\\xdd\\x77\\x6f\\x53\\x71\\x9d\\x21\\x74\\x69\\x76\\x93\\x2e\\xf1\\x1a\\xbf\\x7a\\x32\\xae\\x6b\\x07\\x44\\x66\\x5d\\x0e\\x0c\\xe5\\x13\\x95\\x5a\\x9e\\x68\\x53\\x1d\\x8e\\xe4\\xde\\x9a\\x8d\\x35\\xdd\\xfb\\x88\\xeb\\x5a\\x48\\x6a\\xd6\\x31\\x37\\xe8\\x89\\x2f\\xd7\\xc6\\x89\\xd4\\xf9\\xe7\\x02\\x1b\\x11\\x73\\xbb\\x37\\x52\\xa5\\xee\\xcf\\x29\\x92\\xe3\\xfd\\x46\\x42\\x26\\x3c\\x7b\\x3d\\x81\\x5c\\x29\\xb4\\x66\\xab\\x69\\x28\\x5f\\xfe\\x4b\\x8d\\xaf\\xcb\\xf3\\xd0\\x1d\\x63\\x55\\x53\\xab\\x75\\x75\\xa7\\xa3\\x47\\x1e\\xdc\\x7b\\xe4\\x12\\xd3\\xd0\\x1e\\x6f\\xe8\\xe3\\xcd\\xc3\\xfa\\x04\\xd2\\xa7\\x59\\x93\\x81\\xe2\\x2b\\xba\\x49\\xc5\\x53\\x9d\\x79\\xc6\\x2b\\x52\\xbb\\x0e\\xca\\x33\\xf7\\x42\\x55\\xe4\\x1a\\x95\\x26\\xa8\\x92\\x89\\xb1\\x5f\\x18\\x50\\xd9\\xaf\\xa8\\x7e\\x6b\\x6f\\xa1\\x27\\x10\\x1c\\x1a\\x6d\\x88\\xd4\\x33\\xe0\\xc8\\x6a\\xa6\\x0b\\xba\\x8f\\xe7\\x10\\x0e\\xd6\\x1d\\x5a\\x9d\\x00\\xa0\\x07\\x64\\x51\\x3e\\xb1\\xc7\\xf5\\xf5\\xc3\\xb3\\xef\\xc4\\x53\\x2a\\x36\\xb4\\x07\\xfe\\x2d\\x17\\xcf\\xb4\\xe6\\xfc\\xd6\\x04\\x9c\\xff\\x3a\\x35\\x56\\x23\\xa3\\xa4\\x13\\x90\\xea\\x48\\xf4\\x21\\x20\\xd8\\x97\\x94\\x91\\x11\\xbe\\x3d\\x16\\x9b\\x2d\\x2e\\xf4\\x5b\\xdb\\x89\\x4f\\xe2\\x0b\\x1a\\x95\\xef\\x66\\x14\\x94\\x27\\xa9\\xd8\\xf8\\x0a\\x9b\\x2e\"},\n{{0xa3,0xbe,0xd9,0xfe,0x23,0x54,0xbd,0x28,0x60,0x14,0x9a,0x3d,0xb7,0x5a,0x85,0xb1,0x29,0xcf,0x83,0xe9,0xd7,0x3e,0x63,0x17,0xba,0x70,0x54,0x52,0x19,0x33,0xf8,0x96,},{0x5a,0xc0,0x3b,0x4f,0x13,0xd9,0x1d,0x06,0x6b,0x2c,0xe3,0x59,0xe9,0xbb,0x1d,0xfb,0x6b,0xfa,0x5a,0xfa,0x38,0x2f,0xd1,0xcc,0xd7,0x2a,0xef,0x11,0x76,0x07,0x9f,0x89,},{0x33,0xbc,0x1e,0x0b,0xf1,0xb4,0x93,0xe0,0xcf,0xb7,0xea,0x40,0x48,0x0a,0x14,0x23,0xe0,0x91,0xf7,0x14,0x57,0x45,0x01,0x31,0x73,0x78,0x7d,0xf4,0x7a,0x10,0xdb,0x24,0xc1,0x65,0xd0,0x05,0x96,0xfa,0xb7,0x0e,0x68,0xc9,0x4c,0x10,0x4e,0x8a,0x74,0x07,0xcf,0x69,0x5c,0xd3,0xfb,0xe5,0x85,0xb5,0xb1,0x76,0xb8,0x5c,0xcc,0xa4,0xfd,0x08,},\"\\xdb\\x85\\x38\\x08\\x68\\x6d\\x6d\\x21\\xf4\\xc5\\x7b\\x54\\x1e\\x5a\\xd6\\x33\\x94\\xd4\\x65\\xe6\\x00\\x78\\x64\\x3c\\xab\\x1e\\x06\\x5c\\x9f\\x30\\x6c\\x50\\x00\\x78\\xf0\\xcc\\x41\\xef\\x0f\\x95\\x42\\xb5\\xfe\\x35\\x6a\\xec\\x47\\x77\\xef\\x8a\\x95\\x55\\x4c\\x97\\xb6\\xa4\\x40\\x99\\xe9\\xbd\\x64\\x04\\xfb\\x0b\\x2e\\x41\\xf9\\x19\\x14\\xb0\\x74\\xd1\\x22\\x37\\xcd\\x44\\x2e\\xbd\\x40\\xb5\\x1b\\x8b\\xc8\\xbb\\xe4\\x37\\xa2\\xc5\\x33\\x32\\xd2\\xbe\\xb2\\x28\\x1b\\xf7\\x32\\x4a\\x0c\\xf5\\xb7\\x41\\xbb\\xf9\\x8d\\x1e\\xb9\\x85\\x8b\\xe9\\x26\\xe9\\x15\\xa7\\x8e\\x8d\\x31\\x4b\\x41\\x44\\xf3\\xd2\\x0d\\xfc\\x6c\\xb7\\xf4\\x8c\\x23\\xaf\\x90\\xf8\\x71\\xc6\\xcd\\xa9\\x08\\x45\\xa4\\x1a\\xff\\x17\\x07\\xa8\\x7b\\x4e\\x55\\x16\\xf1\\x8e\\x8b\\xd7\\x68\\x3c\\xfd\\x74\\x07\\x08\\x03\\xe8\\x88\\x33\\x8c\\x9a\\x18\\xf7\\x92\\xc8\\xd3\\xa7\\x04\\x17\\x0f\\xf9\\x82\\xbf\\xfc\\x9e\\x8e\\xc9\\xea\\x5d\\x1a\\x62\\x59\\x2f\\x16\\x88\\xd4\\xf2\\xb0\\x1e\\x11\\xf9\\xf8\\x87\\x74\\xc4\\x7a\\xc1\\xd5\\x8f\\x69\\x0b\\xcf\\x28\\x8c\\xf8\\xa4\\x73\\xd3\\x50\\xa8\\x23\\x9d\\xf9\\xd3\\xa6\\x28\\x81\\xda\\xdd\\x33\\x85\\x31\\xfd\\xce\\x76\\x15\\x80\\x7c\\xe9\\x65\\x49\\x6d\\x6f\\x35\\xd6\\xc0\\x42\\xf0\\xce\\x7f\\x21\\xef\\xe5\\xce\\x64\\x25\\x18\\x59\\x41\\xed\\x56\\x36\\xb8\\xae\\x91\\x3a\\x75\\xd2\\x1a\\xb9\\xdb\\xdb\\x3c\\x3b\\x66\\x87\\xa4\\x5e\\x04\\x49\\x38\\xa9\\xf1\\xc1\\x3a\\x33\\x0e\\xa9\\x76\\x1e\\x28\\x3e\\x61\\xd4\\xa3\\x20\\xe1\\xf5\\x59\\x88\\x2f\\x34\\xb6\\x07\\xfe\\xfe\\x32\\xc3\\x43\\x17\\x4a\\xbc\\xdc\\x77\\xb0\\x65\\xa9\\x29\\x04\\xb4\\x2d\\x96\\x1d\\xb8\\xed\\x91\\x6c\\x01\\x46\\x4f\\xfd\\x43\\xf9\\x3c\\x10\\x77\\xf1\\xdf\\x7e\\xe6\\x50\\x31\\xcf\\xe0\\x5d\\x78\\x0d\\x01\\xd0\\x8e\\xe0\\x36\\xf2\\x2a\\x2b\\x05\\x12\\x19\\x3b\\x0c\\x0f\\x38\\x01\\xe0\\xa0\\x20\\x8e\\xef\\x24\\x5c\\x9e\\x51\\x93\\x52\\xd2\\xb0\\x09\\x63\\x82\\xf2\\xcb\\xa0\\x6e\\xb2\\xa0\\x1d\\xac\\xf6\\x19\\xea\\xbb\\xc8\\x83\\xc5\\xd4\\xf2\\xfd\\x7c\\x34\\x23\\x17\\x9c\\x0f\\x5f\\xfd\\xaf\\x8c\\xaf\\xff\\x5c\\x46\\xb3\\x4a\\x09\\xc3\\xc5\\x0e\\x29\\x49\\xc0\\x60\\x00\\x20\\x7d\\x70\\xd3\\x7d\\x65\\xa7\\x43\\x07\\x5f\\xdc\\x2b\\xe6\\x2d\\x41\\x2a\\xa6\\x3e\\x36\\x37\\x06\\xca\\x90\\xe6\\xef\\x44\\xe1\\x52\\xea\\x4d\\xc5\\xc2\\x89\\x3e\\xcd\\x08\\xd7\\x96\\xd4\\x1f\\x17\\x22\\x54\\xc3\\xd1\\xd1\\x4b\\xb0\\x67\\xb5\\x3a\\x08\\x97\\xbb\\xd7\\x3c\\x99\\x54\\xd9\\x64\\x8b\\x2a\\xf1\\x0d\\x9c\\x27\\x03\\xe3\\x8b\\x6c\\x62\\x46\\x9f\\x6f\\x95\\x8a\\x1c\\xa0\\xa3\\x20\\xc1\\x23\\x39\\xe9\\x0c\\xf7\\x68\\xc8\\x7b\\x47\\x38\\xc2\\x19\\xf8\\x09\\x3b\\xff\\x4c\\x2c\\xfd\\x29\\x45\\x9f\\x6d\\x32\\x81\\x34\\x93\\x78\\xe9\\x15\\xa3\\xb0\\xe7\\x24\\xc7\\x4d\\x2b\\xd7\\xa8\\x51\\xac\\x7c\\x6b\\x48\\xe8\\xaf\\xc7\\x12\\x4f\\xdc\\xbc\\xab\\x5f\\xf8\\x0d\\x1d\\xee\\x30\\xa6\\xc0\\x24\\xcb\\x43\\x31\\x97\\x23\\x66\\xeb\\xab\\x26\\xbb\\xb9\\xf6\\x08\\xca\\xac\\x7e\\x51\\x91\\x4d\\xf0\\x58\\xb9\\xb3\\x74\\x5d\\x98\\xc5\\xd2\\x7e\\x97\\x10\\x54\\x75\\xec\\x01\\x73\\x77\\xe6\\x31\\x61\\x98\\xec\\xe4\\xec\\x59\\x09\\xf0\\x4f\\xc2\\x7e\\x7b\\x38\\x2e\\x66\\xad\\xb6\\x2a\\xc8\\xa9\\x77\\xf3\\x76\\xfd\\x5d\\xae\\x43\\x4f\\xb5\\x51\\x75\\x24\\x9c\\xa1\\xab\\x6b\\xb0\\x2d\\xec\\x06\\x96\\xf0\\x89\\xbe\\x34\\x54\\x88\\x7a\\x0c\\x32\\x36\\x1d\\x17\\x2b\\xd2\"},\n{{0x88,0xa2,0x4f,0x0d,0xf3,0xae,0x29,0x14,0xdf,0x79,0xda,0x50,0xec,0xf8,0xec,0xb4,0x2f,0x68,0xc7,0xba,0xad,0x3b,0x6c,0x3a,0x2e,0x0c,0xc9,0xc2,0x5d,0x09,0xd1,0x42,},{0x12,0xe6,0x60,0x3f,0x71,0x3b,0x23,0x05,0x35,0x85,0x68,0x71,0x00,0x18,0x68,0x5e,0x14,0x15,0x53,0xc4,0x75,0x91,0x39,0x6f,0xb4,0x25,0x9e,0x42,0xdc,0x53,0xb9,0xc9,},{0x17,0x07,0xcc,0x00,0x91,0x86,0xbf,0x3f,0x03,0xf7,0xbb,0x9e,0x3c,0xd4,0xcf,0x6b,0x73,0x7b,0x7a,0x6b,0xaa,0xde,0x7f,0xc6,0xc3,0xff,0x5c,0x12,0x25,0xdb,0xb2,0xba,0xf5,0x4f,0x47,0xc8,0x5e,0xaf,0xa1,0x32,0xc3,0x1e,0xac,0xa0,0x3e,0x6a,0xec,0x14,0x47,0x73,0x3f,0xac,0xd3,0x71,0x49,0xb7,0xc6,0xcf,0x0c,0xd4,0x1f,0x61,0x14,0x04,},\"\\x65\\x4e\\x9e\\xdc\\x69\\xfe\\x63\\x4c\\x23\\x08\\xba\\x8c\\x46\\xa9\\x55\\xe8\\x82\\x45\\x62\\x86\\xea\\xe3\\x59\\x3c\\xae\\x73\\x9c\\x44\\x86\\x6c\\x0d\\xe9\\xed\\xcb\\xbf\\x0d\\xb1\\xc4\\x41\\x49\\x66\\x84\\x67\\x70\\x9d\\xc9\\x70\\x62\\x98\\xdd\\x2e\\xac\\x33\\x01\\xda\\xba\\xd5\\xbd\\x8e\\x93\\xc5\\xe8\\xa9\\x3f\\x19\\x4e\\x0f\\xc1\\xd9\\xf3\\x76\\xc1\\x44\\xc2\\x93\\xae\\xfd\\xa0\\x86\\xb2\\x21\\x8f\\x2e\\x9d\\xfd\\x7c\\x2d\\xc5\\x2b\\xa3\\x3e\\xb2\\x29\\xdc\\xf7\\xbb\\x68\\xce\\x0f\\x87\\x6c\\x5f\\xd4\\xe8\\x1a\\xfd\\x80\\x16\\x9f\\x73\\xcf\\x26\\x4e\\x5d\\xc0\\xce\\x16\\xe1\\xb8\\x76\\xcd\\x11\\xc7\\xad\\x89\\x05\\x8e\\xe0\\x82\\x0c\\x40\\x00\\x5d\\x01\\xf1\\x19\\xf8\\xbe\\x6f\\x1a\\xfb\\xe2\\x4c\\xa4\\xae\\xdc\\x18\\xe9\\x78\\x96\\x82\\x7c\\x3e\\xd6\\x7f\\xc4\\x56\\x30\\xe7\\x90\\x3b\\x7f\\xee\\x9c\\x99\\x0e\\x36\\x19\\x37\\xbf\\x4e\\xa0\\xa4\\xd8\\xd1\\x6c\\xf6\\xd9\\xcf\\x03\\x81\\xe9\\x06\\x5e\\x36\\x25\\x14\\x8f\\x8a\\xe0\\x49\\x1a\\x03\\x41\\xd0\\xff\\x9f\\x72\\x7b\\xe1\\xf3\\x10\\xca\\x1e\\xc3\\xf0\\x10\\x4a\\xa0\\x54\\x32\\x17\\x84\\xdd\\x24\\xd5\\x3c\\x98\\x5b\\x28\\xd4\\x40\\x82\\xf8\\xe1\\xc1\\x08\\xa4\\x41\\x09\\x63\\x8f\\xf5\\x11\\x6e\\xdd\\x85\\xae\\xb8\\x6b\\x6e\\xa5\\x12\\xa1\\x9b\\x60\\x2e\\xdd\\x9d\\x21\\x10\\x70\\xd0\\x44\\xaf\\x5b\\xed\\xb6\\xc8\\x52\\x7b\\xa3\\x49\\x1e\\x34\\x5b\\xac\\xc1\\x30\\xb3\\x69\\x60\\x28\\x2a\\xe7\\x37\\xb8\\x5c\\x76\\x92\\x74\\xf0\\xf7\\xc5\\x88\\xf4\\x0e\\x66\\x25\\xb2\\x36\\xbd\\xc1\\xa3\\xb8\\x73\\x20\\x46\\x0e\\xee\\xad\\xa2\\x78\\x12\\x4b\\x56\\x68\\x87\\x4f\\x39\\xf5\\x9c\\x2e\\x6a\\xa2\\x08\\xc3\\xb6\\xa9\\xb8\\x45\\xc4\\xd0\\xa2\\x7a\\x05\\x46\\x78\\x6f\\xa1\\x3e\\x51\\xcc\\x98\\xb7\\x3f\\xd7\\xee\\x32\\x7b\\x62\\x15\\xec\\x6b\\x62\\x9f\\x4c\\xc7\\xe4\\xbd\\x3c\\x0a\\x3d\\xb7\\x8a\\x21\\xff\\xfe\\x24\\xc7\\x04\\x38\\x71\\x6b\\xc3\\x7b\\x8d\\xa7\\xc5\\xff\\x7c\\x36\\x88\\xa9\\x03\\x39\\xc2\\x2e\\xb5\\x0b\\x7c\\x2c\\xd3\\x6b\\x68\\x83\\x1f\\xd5\\x93\\x91\\x75\\x68\\x9b\\xd3\\xe2\\x2c\\x38\\x81\\xaf\\x33\\x7e\\xe1\\x44\\x35\\x70\\x9e\\x35\\x10\\x40\\xef\\x3d\\xa9\\x55\\x72\\x4e\\x51\\xc2\\x4a\\x5e\\x2c\\x09\\xf8\\x91\\x80\\x83\\x93\\xfb\\xf8\\xef\\x7f\\x1f\\x5f\\x02\\x98\\xde\\xeb\\xdc\\xd8\\xd6\\x66\\xcb\\xcf\\x3e\\x86\\x6c\\x71\\x89\\x99\\xab\\x6b\\x1f\\xee\\xc9\\xc4\\x7e\\x02\\xe7\\xd6\\x35\\x40\\xf8\\x99\\x63\\xd5\\x42\\xc5\\xd0\\x1f\\xb6\\xfc\\x30\\x76\\x89\\x68\\xae\\x81\\xb2\\x0c\\x35\\x4b\\x40\\x00\\xc1\\x32\\x77\\x47\\x64\\xd6\\xd4\\x43\\xad\\xd6\\x4f\\x6d\\xd7\\x48\\xf5\\xfb\\x5b\\x7f\\x6e\\xba\\x40\\x1d\\xb4\\x31\\x8b\\xe9\\x93\\x98\\x9f\\xcc\\x25\\x77\\x96\\x1f\\xa5\\xad\\x31\\xf6\\xa2\\xa9\\xd6\\xa7\\x55\\x28\\x58\\x65\\xcd\\x5d\\xc3\\xa8\\x8c\\xfb\\x5a\\xba\\x7d\\x92\\x3b\\xaf\\x78\\xb5\\xd1\\x31\\xb4\\xc2\\x14\\xdf\\x55\\xb6\\x17\\x1f\\x45\\x20\\x9e\\x21\\xca\\x66\\x45\\x49\\x0d\\x3a\\x36\\x44\\xdd\\xa6\\xdc\\x92\\x9c\\x7c\\x40\\x95\\x76\\xd3\\x71\\x64\\x75\\x5e\\xf8\\xaa\\xf3\\xdc\\xd4\\xd2\\x27\\x75\\xee\\x7d\\xea\\x0e\\x56\\x5b\\xd5\\x47\\x27\\x92\\x1c\\x64\\x9b\\xc5\\x1f\\x20\\xc1\\xf6\\x8c\\x1f\\xde\\xac\\x45\\x5c\\x67\\xd7\\x1a\\x1c\\xb8\\x83\\x7f\\x46\\x91\\x44\\x8b\\xf0\\xbf\\x04\\x4a\\x46\\xf1\\x68\\x5f\\xbe\\x22\\xb1\\xe0\\x18\\x77\\xf7\\x47\\x7d\\x34\\x99\\x40\\x8c\\x4c\\x31\\x65\\x10\\xce\\x2e\\x55\\xb9\\x80\\x05\"},\n{{0x18,0x4d,0x0c,0xe2,0xe9,0xdb,0x7f,0x25,0x7a,0x8b,0xf4,0x64,0x6d,0x16,0xd2,0xc5,0xef,0xc2,0x70,0x2c,0xed,0x02,0x6b,0x69,0x06,0xd3,0xc8,0xc0,0x11,0x8f,0x22,0x61,},{0xe9,0xda,0xb8,0xfd,0x9d,0x94,0xdc,0x9b,0x24,0xcc,0x79,0xc6,0x35,0xcc,0x57,0xce,0x66,0x51,0x89,0x82,0xba,0x3e,0x24,0x47,0x24,0x07,0x41,0xba,0xc0,0x73,0x0e,0xc5,},{0xb1,0xe3,0xbf,0x5f,0xa7,0x4d,0x7e,0x44,0x2c,0xed,0x9a,0x98,0xd9,0x27,0xd8,0xc4,0x5e,0x0e,0x64,0xd8,0x74,0xf8,0xea,0x59,0x20,0xa3,0x60,0xa4,0xbf,0x42,0xd8,0x3c,0xe1,0x8a,0x92,0x4a,0xc7,0x96,0xe1,0xa7,0x7d,0x1b,0x02,0x08,0x29,0x4b,0x50,0xf8,0x22,0x17,0x7f,0xdb,0xdd,0x45,0x8c,0x74,0x35,0x6f,0xcf,0x6b,0xd7,0x94,0x51,0x06,},\"\\x6a\\x9b\\x87\\x6b\\x0b\\xf4\\x18\\x9b\\x3c\\xc1\\x5f\\x9e\\xb4\\xfb\\xe7\\x93\\x2b\\x55\\x77\\x89\\x2a\\x22\\x20\\x0c\\xe1\\x07\\x15\\x68\\x53\\xd6\\xd3\\xca\\x36\\x3f\\x02\\x5a\\xd7\\xa2\\xd8\\x62\\xaa\\xdc\\x74\\x2d\\x94\\x15\\xbd\\x8d\\x1f\\xca\\x13\\xc9\\xdc\\xa3\\x58\\x60\\x44\\xe5\\x5a\\x8c\\xf5\\xde\\xe1\\xce\\x56\\x45\\x76\\xe3\\xe8\\xe3\\x65\\x54\\x05\\x46\\x50\\x1b\\x34\\xca\\x67\\x5c\\xf2\\x00\\xe0\\x77\\x1a\\x81\\x8c\\x73\\xd3\\x7f\\xcd\\xa8\\xcb\\x15\\xe4\\x8d\\x5a\\x0b\\x9e\\xa3\\xbe\\xec\\x0f\\xf6\\x61\\x0b\\x2a\\x8a\\x21\\x4c\\xa4\\xf7\\xef\\xac\\x0e\\x71\\x38\\x10\\x52\\xd9\\xbf\\x3c\\x00\\xc3\\x29\\x59\\x34\\x74\\xeb\\xd0\\xa6\\x87\\xa0\\xb4\\x1d\\x14\\x4b\\x5e\\x7a\\xb1\\x41\\x2b\\x97\\x0a\\x74\\xba\\xba\\x4d\\x27\\x4b\\xb0\\xdb\\xfd\\xb0\\x2b\\x11\\xf7\\xf6\\x39\\x64\\xba\\x6f\\x3b\\xa0\\xad\\x23\\x34\\x1d\\x08\\x3b\\x91\\xa4\\x30\\x82\\x39\\xe3\\x3d\\x50\\x82\\x43\\x96\\x12\\x65\\x88\\xde\\x72\\xa2\\x39\\x0c\\x1c\\x0f\\xc0\\x67\\x47\\xc2\\x87\\x72\\xf6\\x30\\xbf\\x4d\\x14\\x3f\\x7a\\x11\\x59\\xf0\\x28\\xc0\\x93\\x40\\x48\\x94\\xe6\\xd1\\x6f\\x63\\x46\\x35\\xd4\\xfc\\x33\\x0f\\x3d\\x7a\\x73\\x13\\xef\\x75\\x6f\\x5d\\x49\\xd8\\xf6\\x20\\x5e\\xb1\\xc7\\x92\\xa9\\x49\\x5d\\xa1\\x31\\xb4\\x33\\x45\\xa0\\x09\\x0c\\x12\\xca\\x56\\xe6\\xad\\xac\\x5b\\xe0\\xcb\\xca\\xc3\\x60\\x9d\\x69\\xf7\\x24\\x15\\xf6\\xc3\\x7f\\x3c\\xfb\\x2c\\xf7\\x6b\\x3e\\x65\\xf3\\xc9\\x3a\\xc9\\x2b\\x63\\xf2\\xba\\xa4\\x66\\x24\\x90\\x75\\xbc\\xa6\\x9d\\x4c\\x1d\\x1f\\x3a\\xde\\x24\\xab\\x31\\xef\\xfc\\xb9\\x04\\x69\\xc2\\x4b\\xb4\\x10\\xab\\x47\\x23\\xe1\\xb7\\xe1\\xc8\\x8b\\x3a\\x36\\x43\\x35\\x63\\xf7\\x1a\\x99\\xaa\\xd5\\x8f\\xe8\\x05\\x68\\xf9\\xc1\\x02\\xda\\x89\\xba\\xd9\\x79\\x63\\xe7\\x7d\\x66\\x22\\x48\\x31\\x66\\xf3\\xae\\x26\\x1f\\x32\\xa5\\x2a\\x86\\x10\\x1e\\xbd\\x64\\x5f\\x61\\x42\\xc9\\x82\\xe2\\xcd\\x36\\x25\\xcf\\x8b\\x46\\xb9\\xb2\\x89\\x12\\x46\\x92\\x0f\\x69\\x7f\\xca\\xed\\x39\\x7c\\xb9\\x22\\xc2\\x74\\x94\\x51\\x67\\xa0\\xe6\\x19\\xb0\\xb5\\x06\\x37\\x76\\x06\\xdb\\x04\\x57\\x83\\xb0\\xb8\\x8e\\xa0\\x4e\\x93\\x2d\\x21\\xff\\xc0\\x64\\xa1\\x2a\\x40\\xeb\\xe9\\xb4\\x80\\xf1\\xa2\\xc7\\xdd\\xd3\\x95\\xa9\\xb1\\x5e\\xfd\\xc4\\x95\\xc9\\x71\\x4f\\x36\\xfa\\x99\\x6f\\x79\\xf8\\xeb\\x8e\\xfa\\x52\\xd9\\x9a\\x24\\xab\\xfe\\xf4\\x3b\\x32\\xa2\\x37\\xc5\\xbc\\x00\\x18\\xda\\x3b\\x16\\x2f\\x59\\xb8\\xd3\\xd4\\x74\\xe2\\xce\\x08\\xfa\\x80\\x24\\xc5\\x8a\\xcc\\x0a\\x99\\xff\\x61\\x4e\\x6c\\xd7\\xfd\\xd9\\xca\\x4e\\x8f\\x41\\xa1\\x44\\x9a\\xa6\\x18\\xd0\\x33\\x37\\xe8\\xa3\\x74\\xd5\\x60\\x55\\xb2\\x07\\xa9\\xdb\\xe6\\x9f\\x59\\x48\\xf9\\x01\\xca\\x7d\\xb0\\x41\\x0f\\x01\\xaa\\x37\\x3d\\x9e\\x02\\x27\\x62\\x35\\x99\\xbc\\x21\\x28\\x45\\xb0\\x06\\xe9\\x42\\xfa\\xbc\\x58\\x2c\\xd7\\x26\\xdb\\x5c\\x44\\x3e\\xb2\\xdf\\xfb\\xc9\\xe3\\xe7\\xf0\\xe5\\xcb\\x67\\x44\\xf7\\xad\\x71\\x60\\x50\\xfd\\xf2\\xc6\\x0c\\x7c\\x77\\xc2\\x53\\xab\\x74\\x5d\\xb9\\xc8\\x55\\x26\\x55\\x68\\x3e\\xa7\\xea\\x68\\x0a\\xa4\\xaf\\x34\\xdf\\x13\\x25\\xc2\\x9b\\x88\\x74\\xb6\\x1b\\xe2\\x3d\\xe4\\xff\\xba\\x25\\x42\\x4f\\x46\\x19\\xec\\x68\\x2c\\x26\\xb3\\xa6\\x7b\\xda\\x9b\\xc4\\xc9\\x4b\\x79\\xa9\\xfc\\x4d\\x82\\xd3\\x40\\x49\\x5b\\x43\\x7a\\x1c\\xbd\\x6b\\x60\\x30\\x7c\\xfc\\xb1\\x00\\x26\\xf9\\x64\\xa0\\x17\\x62\\x3e\\x33\\xdb\\xf2\\x33\"},\n{{0xd0,0x2b,0xbf,0x70,0xd5,0x13,0x51,0xe3,0xb4,0x7a,0xd8,0xe5,0xed,0x26,0x3d,0xbf,0x55,0x6d,0x14,0x98,0xfa,0x9b,0xd5,0xdb,0xd9,0x9f,0xb4,0x26,0x90,0x09,0xdc,0xed,},{0x8c,0xe4,0xb5,0x9f,0x94,0xce,0xd6,0xec,0x96,0x14,0xd6,0x7d,0x30,0x66,0xd9,0xd3,0xa0,0xdf,0x7a,0x46,0xb3,0x7b,0x4c,0x17,0x25,0xef,0x1e,0x57,0xbc,0x68,0xa0,0xd1,},{0x6e,0x7c,0x66,0xac,0xc9,0x54,0xff,0xd9,0xdd,0x4c,0x1c,0x63,0x35,0xab,0x4f,0xe7,0x9d,0xbb,0xed,0x78,0x2c,0x4a,0x47,0xec,0x30,0xd8,0x48,0xd8,0xbb,0x2b,0x4f,0x10,0x69,0xdc,0x62,0xe5,0x22,0xa1,0xe8,0x01,0x7f,0x54,0xa6,0x34,0x5e,0x17,0x28,0xc0,0x73,0xaf,0x64,0x47,0x85,0x6d,0x8c,0x1e,0xd3,0x58,0x78,0xb5,0x71,0xe5,0x23,0x0d,},\"\\x55\\x45\\x60\\xf7\\xa7\\xfd\\x1a\\xe7\\x75\\x8a\\x2f\\xce\\x7d\\x78\\x0f\\x6b\\x3f\\x04\\x3d\\x3a\\xf8\\x9d\\x4f\\x19\\xef\\x57\\x3c\\x34\\x99\\x75\\x54\\xdf\\x24\\x3f\\xaf\\x2a\\xaa\\xb6\\x5b\\x2a\\xfd\\xd2\\x86\\x10\\xd4\\xa5\\x1e\\x9a\\x4b\\x46\\x4d\\xb6\\xdb\\x09\\xeb\\xf7\\x3b\\x7d\\x24\\x05\\x4c\\xc9\\xb1\\x28\\x14\\xbb\\x29\\xee\\x99\\xe1\\xa7\\x3b\\xd6\\x03\\x89\\x83\\x60\\xf9\\xdc\\xf0\\x1e\\x67\\x08\\x36\\x28\\x6f\\x82\\x36\\xed\\x8c\\xef\\x07\\x5f\\x3d\\x56\\x33\\x12\\xc1\\x6c\\x73\\xfc\\x37\\xee\\xdf\\x25\\x2f\\x8f\\x42\\xd3\\x0a\\x13\\xe7\\xfb\\xa3\\xb1\\x65\\x23\\x8c\\x7f\\x81\\xea\\xae\\xb5\\x31\\x90\\xf3\\xec\\x3b\\x5d\\x63\\xf0\\xee\\x03\\xe3\\x98\\x7e\\x39\\x0d\\x1d\\x81\\xe8\\x27\\x7e\\x9f\\x6c\\x1e\\xe6\\xec\\x4e\\xc3\\xfa\\x0d\\x72\\x0e\\x9f\\x53\\xf9\\xc2\\x6f\\x04\\xaa\\x2e\\xd2\\xb5\\xef\\x31\\x60\\x89\\x59\\x99\\xea\\xce\\x29\\xcf\\x5d\\xc2\\x54\\xad\\x71\\x10\\x6b\\xb7\\xe8\\xbc\\x29\\xa5\\xb1\\xd2\\x41\\x25\\x93\\xd0\\x81\\x94\\xe8\\x8e\\x16\\x59\\xa7\\x31\\x59\\xa2\\xa2\\x20\\x33\\xab\\x06\\x6e\\x8d\\x3d\\x8c\\x3b\\xc8\\x6b\\x7b\\x01\\xde\\x81\\xa8\\xc6\\x60\\x47\\xb0\\x7f\\xe2\\x4e\\xd2\\x40\\x31\\x8b\\xa3\\x7b\\xa3\\xef\\xb6\\xcf\\x63\\x26\\x04\\xca\\x4f\\x44\\x6a\\x75\\xfd\\x8e\\x70\\xc4\\x53\\xf0\\xc6\\x0e\\xe1\\x6e\\xca\\xf5\\x24\\xe7\\x03\\xf4\\x7d\\xf5\\xc2\\x82\\xca\\x32\\x89\\xb3\\xaf\\x61\\xde\\xe4\\x70\\x9e\\xe0\\x85\\x32\\x3b\\x1e\\x5c\\x8a\\x6b\\xc0\\x76\\x62\\x01\\xc6\\x35\\x03\\x14\\x46\\x89\\x1f\\x34\\x94\\xe9\\xdb\\x20\\xdd\\x4e\\x9e\\x08\\x38\\x24\\x9a\\x67\\xe1\\x38\\xd1\\x3e\\xe2\\xc9\\x6f\\x61\\xe7\\x71\\x06\\x15\\x42\\xaa\\x16\\xef\\x20\\xd8\\x1e\\x3a\\x0f\\x4e\\x45\\x21\\xa6\\xcd\\x6c\\x92\\xfc\\x26\\xfe\\xef\\x03\\xb6\\x6c\\x70\\xe0\\x35\\xca\\xfc\\xc1\\x9c\\x96\\xfb\\x9d\\x82\\x91\\x8f\\xe1\\x97\\x78\\x0e\\xff\\x0e\\xda\\x6e\\x25\\x12\\xc5\\x6e\\x2a\\x73\\xd7\\x70\\x32\\xb7\\x68\\x91\\x9b\\xea\\x97\\x72\\xf5\\x98\\x9c\\x8b\\x6c\\x65\\xc3\\xd1\\xe9\\x7a\\x21\\x80\\xcc\\x3a\\x37\\x57\\x9d\\xa7\\x0c\\xe9\\x80\\x6a\\xc1\\x28\\x5a\\x3e\\xab\\x41\\x5c\\x06\\x07\\xd8\\x8c\\xb8\\x65\\x42\\xea\\xb9\\x0b\\x9d\\x2d\\x67\\xfa\\xff\\xfc\\xad\\x23\\xa7\\x14\\x00\\x0e\\xe5\\x9e\\xd6\\x8c\\x95\\x6e\\x81\\xc4\\x45\\x42\\x88\\x82\\xf9\\x7a\\xf7\\x4d\\xb3\\x62\\xe4\\x5c\\x0d\\x1b\\xd8\\x85\\x6e\\xed\\x16\\x6e\\x4a\\xec\\x4b\\xfd\\xf9\\x5e\\xad\\xb2\\x51\\xe2\\xa1\\xef\\x80\\x48\\x52\\xa9\\xea\\x77\\xd3\\x45\\x77\\xfe\\x70\\x83\\x1a\\x92\\x8b\\x10\\x1b\\x60\\xac\\x61\\x3e\\x7b\\xa2\\xe6\\xba\\x0a\\x94\\x01\\x3a\\x64\\xc2\\xf8\\x21\\x9f\\xd3\\x0b\\xff\\x40\\x90\\x99\\x66\\x7a\\x78\\x6f\\x99\\x32\\x7b\\xb0\\x3e\\x2f\\x21\\x87\\xf4\\x45\\xb4\\x6b\\xee\\xda\\xb6\\xd3\\x25\\xaf\\xd9\\x04\\xe3\\x95\\x43\\xe9\\x3f\\x4b\\x6c\\x54\\x43\\x24\\x9d\\x74\\x4b\\x2d\\x1a\\x43\\xe1\\x41\\xe4\\x76\\x8b\\xd4\\x0a\\xab\\xe4\\x05\\x72\\x44\\xe1\\xea\\xdd\\x9d\\xae\\xc1\\x75\\x71\\x9e\\x51\\xa0\\x93\\xac\\xe3\\x2f\\xe8\\x2b\\x2e\\xac\\xb5\\xec\\xb0\\xda\\x6c\\x1f\\xfe\\x98\\xc8\\xce\\xe7\\x88\\x6e\\x30\\x16\\x70\\xdf\\xf8\\x71\\x13\\xef\\xed\\x42\\x82\\x47\\x1a\\xfb\\x6b\\x8a\\x0f\\xdb\\x50\\x5e\\x2e\\x8e\\x7d\\xbc\\x1a\\x08\\xa2\\x2e\\x96\\x80\\xbd\\x09\\x8b\\xf1\\x27\\x58\\x02\\xbd\\xb4\\x59\\x41\\x3a\\x3b\\x23\\x7d\\x77\\x13\\xa1\\xbb\\xf5\\x97\\xe6\\xad\\xf2\\xb6\\x0e\\xaf\\x82\\x37\\x91\\xb3\"},\n{{0xaa,0x0f,0xda,0xe2,0xa5,0xa4,0xc9,0xc0,0x45,0x21,0x91,0x30,0x04,0xcd,0x89,0xef,0xbc,0x88,0xb2,0xda,0xdf,0x5a,0xbb,0x24,0x6f,0x3c,0xa7,0xf6,0x92,0x35,0x44,0xaf,},{0xbf,0xfc,0xb1,0x7c,0x35,0xc1,0x30,0x4c,0xdd,0x9d,0x62,0x4f,0xf6,0x9b,0xee,0x60,0xec,0x7c,0x9e,0xc3,0x27,0xd1,0x23,0x50,0xd7,0x0f,0xac,0x12,0xb4,0x7c,0xc2,0x5c,},{0xf9,0x37,0x29,0x89,0x69,0xca,0x34,0xd9,0x75,0x84,0x44,0x89,0x07,0x35,0x8b,0x0f,0x47,0x84,0x1f,0x30,0x23,0xaf,0xc7,0xef,0x76,0x81,0x52,0x1c,0x5b,0xe0,0xf5,0xe5,0x62,0x8a,0x8f,0x60,0x7e,0x2f,0x31,0x63,0x6e,0xf6,0x36,0x46,0xb0,0xe9,0x89,0x8a,0x72,0xad,0x35,0x57,0x06,0xd2,0xc8,0x06,0x0f,0xbc,0x64,0x0e,0xfb,0x3d,0x66,0x05,},\"\\xb1\\x41\\x84\\xcf\\xdc\\x4a\\x5f\\x0c\\x7f\\x83\\xf9\\x4a\\x83\\x2f\\x58\\x85\\x07\\xe2\\xd7\\x2a\\x89\\x32\\x98\\x70\\x07\\x85\\x71\\xd2\\x08\\xa0\\xc4\\x96\\x0c\\x2f\\xdc\\x4c\\x23\\x6c\\xf8\\x82\\x29\\x98\\x1d\\x12\\xb1\\x0a\\x1b\\x68\\x84\\xc8\\x65\\x0d\\xda\\xf1\\xd4\\xb2\\xeb\\x98\\x15\\x75\\xb1\\xe0\\x19\\xfe\\x3f\\x60\\x42\\x36\\x76\\xf8\\x85\\x6a\\x99\\x2c\\xce\\x36\\xd6\\xd0\\xa3\\xd0\\x26\\x63\\x1c\\x8c\\x1e\\x1f\\xfe\\x34\\x13\\x4b\\x29\\x6f\\x40\\x84\\x2b\\x6d\\xf4\\xf8\\x6f\\x83\\x3e\\x01\\x75\\xba\\xe5\\x0e\\x86\\xbf\\x85\\x6d\\x1e\\xe7\\x99\\x25\\xf4\\x34\\xb8\\xbf\\x2c\\x84\\x51\\x9f\\x1f\\x5d\\x25\\x38\\x60\\x49\\xce\\x3c\\xa6\\x17\\x77\\xe3\\x0b\\x70\\x0a\\x60\\x2d\\x39\\x52\\x50\\xb6\\x0f\\xc6\\x4a\\xc6\\xf8\\xdb\\x02\\x7e\\x8d\\xa8\\xb9\\x55\\x0f\\x24\\xed\\x11\\xa1\\x1d\\x9f\\x9f\\x9c\\x5e\\x0a\\xf1\\x45\\xb8\\x65\\x97\\x51\\xac\\x6b\\x55\\x86\\x1f\\x63\\x88\\xa6\\x43\\x36\\xb3\\x1e\\xfe\\x45\\xc0\\x80\\x2d\\x76\\xa5\\x34\\x86\\xa8\\x1e\\xba\\x07\\x31\\x4b\\x4d\\x96\\x1c\\x14\\x1a\\xb3\\x4e\\x2f\\x76\\xed\\xac\\x0e\\x6d\\xe3\\x14\\x22\\xdf\\x79\\x2a\\xf0\\x81\\xe7\\x69\\xc7\\xed\\x05\\xda\\x9a\\x5a\\xf2\\xfd\\xf3\\x6f\\x14\\x17\\x69\\x90\\x8b\\x70\\x09\\x37\\xf0\\xe1\\x06\\x8c\\x13\\x1f\\x17\\x6e\\xb9\\x6c\\x67\\xaf\\xdb\\xe7\\x8f\\x40\\xd8\\x60\\x07\\xfb\\xcd\\x47\\xe4\\x9e\\x2e\\x4c\\x4c\\xe0\\x49\\x93\\x6a\\xdf\\xf1\\xce\\x3e\\xac\\x42\\xb9\\x6b\\x34\\x29\\xb5\\x62\\x6b\\x1a\\xa6\\x2a\\xcd\\xe0\\x7f\\x45\\xa1\\x3c\\xe1\\xbd\\x21\\x1f\\x32\\xbd\\x7e\\xfe\\x47\\x90\\xc8\\x37\\x1e\\xbf\\x87\\xc1\\x64\\x47\\x7a\\x5c\\x9f\\xa3\\xe7\\x8c\\x2f\\x88\\x07\\x7b\\x09\\x73\\x44\\xcf\\xfa\\x03\\x1c\\x44\\x29\\xc7\\xf4\\x2d\\xca\\x07\\x73\\x78\\x50\\xee\\x7a\\x76\\x9b\\x36\\xd0\\xf0\\x62\\x5a\\xdf\\x12\\x0e\\xa2\\x3f\\xf4\\xe3\\x93\\xa4\\xfd\\xcb\\x65\\x58\\xdb\\xf9\\xb2\\x66\\xa0\\x32\\xe3\\xb0\\x59\\x9b\\x9d\\x66\\x92\\xfc\\xeb\\xd8\\x15\\xa3\\x89\\x76\\x07\\x85\\x63\\x25\\xfc\\xd0\\x11\\x5d\\xc3\\x10\\xdb\\x3a\\x87\\x92\\xfb\\xeb\\xd3\\x99\\x49\\x4c\\x83\\x71\\xe5\\x85\\x72\\x7b\\x3d\\x63\\x24\\x14\\x49\\x68\\x93\\xd0\\x38\\x13\\xba\\x1f\\x99\\x66\\x1b\\xce\\xb9\\xdc\\x18\\xec\\x5d\\xc2\\x7f\\x52\\x67\\x03\\x18\\x68\\x77\\x69\\xfc\\x67\\x8d\\xdc\\x7e\\x40\\x22\\x7c\\x20\\x05\\x22\\x01\\x3f\\x5c\\x0e\\xec\\x0e\\x47\\x81\\xe6\\xfc\\x15\\x3a\\x0c\\x2f\\x4f\\x3f\\x95\\xe5\\x17\\xc8\\x41\\x99\\x24\\xab\\x39\\x99\\x2a\\xf8\\xc1\\x94\\x65\\x05\\x7f\\x13\\x44\\x86\\x69\\x6b\\xa7\\xfd\\x46\\x51\\x76\\x8b\\x4e\\x74\\x9e\\xf3\\x6f\\x02\\x44\\x46\\x17\\xcf\\x97\\xf0\\xa4\\x23\\xe4\\xc1\\x3b\\x7b\\x66\\xba\\x2b\\x6c\\x45\\x68\\x78\\xb0\\xb5\\x0c\\xe2\\xee\\x5e\\xc5\\x64\\xed\\x88\\x54\\xf7\\x82\\xaa\\x1d\\x1c\\x6a\\xa7\\x60\\xf2\\x52\\x2c\\x7d\\x97\\xb9\\xb1\\xab\\xe0\\xba\\x81\\x09\\x59\\xd7\\xaa\\x40\\x3a\\x99\\x37\\x5a\\xa3\\xe3\\x9a\\x11\\x5d\\x1f\\xc6\\xfe\\xdd\\x00\\x2f\\x38\\x30\\xa5\\x0a\\x83\\x7d\\xc7\\x20\\x32\\x9e\\xc0\\xc7\\x3d\\x5b\\xfd\\x50\\x03\\x85\\xc7\\x36\\x83\\x82\\x87\\xe1\\x92\\x01\\x52\\x5d\\x18\\x9c\\x3a\\x08\\x4c\\xd5\\xa3\\xf3\\x59\\x87\\x5e\\x3b\\x83\\x25\\x28\\x9c\\xed\\x18\\xb6\\x3b\\x00\\xff\\x9c\\xd0\\x70\\xc3\\xe6\\x74\\x44\\xbd\\x3d\\x83\\x46\\x17\\x40\\x85\\xcc\\x45\\x13\\x5c\\xaa\\x0c\\x67\\xb3\\x22\\x6e\\x4a\\x52\\xe9\\xa1\\xc5\\x5a\\xed\\x7e\\xc5\\xfa\\xde\\x6b\\xf1\\x6c\\x19\"},\n{{0x71,0x62,0xfe,0xf0,0xac,0xa4,0x97,0x4b,0x09,0x4a,0x6a,0x08,0x05,0x43,0x95,0xf8,0x77,0xff,0x94,0x33,0xf1,0xe3,0x3e,0x20,0xe8,0x8e,0xaa,0x90,0xf9,0x38,0x99,0x7d,},{0xa2,0x80,0x64,0x0f,0x13,0x9f,0x45,0xc3,0x5a,0x48,0x71,0x53,0x7e,0xef,0xe6,0xef,0x9d,0xb0,0x2d,0xe7,0x85,0xee,0x9f,0xd5,0x4f,0x80,0x5f,0xb5,0x7d,0x37,0x46,0xef,},{0xae,0x16,0x1c,0xce,0x95,0x40,0x33,0x84,0xb6,0x5c,0x6b,0xc9,0xb3,0x93,0xeb,0x07,0x25,0x64,0xc3,0x5f,0x3a,0x6c,0x04,0xfa,0x51,0x7a,0xb0,0x68,0xbc,0xd2,0x37,0x67,0xcc,0x0c,0x8e,0xdd,0x92,0xb1,0xa1,0x3a,0xe9,0xa9,0xce,0x48,0x64,0x13,0x7f,0xb8,0x9c,0x1f,0x37,0xb7,0x48,0xcf,0xc9,0x13,0x4b,0x67,0x41,0xba,0x1b,0x22,0x28,0x0d,},\"\\xc9\\x0f\\x45\\x0b\\xda\\x1c\\x6e\\xfd\\x8d\\x12\\x78\\xde\\xbd\\x7a\\xe0\\x3e\\x2e\\xac\\x27\\x40\\xa5\\xa9\\x63\\xfc\\xf9\\x6c\\x50\\x4e\\x31\\xd4\\xd6\\xfc\\xc5\\xe2\\xb5\\x2a\\x25\\x18\\xd2\\x74\\x1c\\x55\\xe9\\x59\\x18\\x67\\xb2\\x42\\x32\\x28\\xf9\\xc1\\x9f\\x33\\xc6\\xf3\\x87\\x05\\xc6\\x20\\x36\\xd4\\x80\\xff\\x53\\xdf\\x12\\x07\\x7e\\x38\\xfd\\xb0\\x73\\xc6\\x73\\x10\\x5d\\xa1\\xe1\\x16\\x19\\xba\\x53\\x21\\xa7\\x1b\\x5f\\x49\\x93\\x23\\x4a\\x11\\x94\\x8e\\xa1\\x10\\xcf\\xa2\\x42\\xbc\\x23\\xfa\\xc9\\xaa\\xe4\\x62\\x60\\x6e\\x39\\x64\\x1c\\xa7\\x14\\x7e\\xeb\\xba\\x1e\\xec\\x55\\x3f\\xce\\x94\\xe5\\x3e\\x4e\\x01\\xb0\\x73\\xdd\\x78\\x0a\\x2f\\xf6\\x78\\xb3\\x15\\x72\\xca\\x11\\xee\\x08\\x77\\xe7\\x56\\xbc\\xdb\\x66\\x53\\xe5\\xe1\\xb4\\xcb\\xfb\\x56\\x9a\\x9d\\x60\\xe3\\xee\\x33\\x61\\x82\\xdc\\xb9\\xb2\\x5d\\x1b\\xe6\\xdb\\xf9\\xb5\\xc7\\x14\\x6d\\x77\\x55\\x85\\x83\\x4c\\xab\\xde\\x02\\x78\\xae\\xe5\\xd5\\x7c\\x85\\xe9\\x83\\xf8\\x4d\\x88\\x33\\xa9\\xe1\\x5b\\xcc\\x11\\x19\\x8e\\x1c\\x1d\\xa6\\xba\\x59\\x28\\x21\\x29\\xf1\\xdb\\x96\\x6f\\x54\\x60\\xc8\\xfb\\x65\\x30\\xfb\\xc3\\xa9\\x8a\\x31\\xfc\\x0f\\x4e\\x9b\\x33\\x73\\x66\\xee\\xc1\\xdc\\xe1\\x08\\xc8\\x26\\xd4\\x90\\x45\\xab\\xfa\\x12\\xee\\x88\\x79\\x7f\\x08\\xf0\\x68\\x3f\\xef\\x77\\xed\\xaa\\x35\\x43\\xb9\\x1c\\xb1\\x18\\xe4\\x24\\xd9\\xc4\\x08\\xda\\x54\\x74\\x31\\x12\\x51\\x07\\xd9\\xb0\\x74\\x4c\\x24\\x43\\xce\\x99\\x17\\xe1\\xe3\\x28\\xd8\\x18\\x50\\xba\\xbb\\xc9\\x4d\\x92\\x0a\\x1d\\x06\\xe5\\x24\\xdb\\xb6\\xc2\\x3d\\xd8\\x2e\\x17\\x87\\x82\\x2d\\x71\\xc4\\xcd\\xc4\\x09\\xae\\x85\\xba\\x4d\\xeb\\x58\\x1f\\x93\\x47\\x48\\xf7\\x5e\\x7a\\x76\\x9b\\x9d\\x68\\xc4\\x58\\x9e\\x59\\x4e\\x65\\xcb\\x6c\\x8f\\x49\\x03\\xff\\xba\\xbd\\x5a\\x32\\x6e\\x89\\x44\\x1a\\x54\\x2f\\x8a\\xc2\\x64\\xcc\\xc6\\x4e\\x95\\xa8\\x98\\x2a\\x71\\x0b\\x6c\\x56\\xff\\x7d\\x10\\x91\\x6a\\xfc\\x40\\x9e\\xa8\\xa4\\x1b\\x74\\x67\\x9d\\xd6\\xa7\\x66\\xf5\\x9c\\x52\\xb9\\x30\\x5b\\xa7\\x33\\xb1\\x3c\\x9e\\x81\\x1e\\xe1\\x30\\x83\\x92\\x5f\\x42\\x00\\x68\\x2b\\xd0\\x5d\\xea\\x33\\x95\\x32\\x52\\x29\\x70\\xaa\\x14\\x9d\\x00\\x4a\\x2e\\xa2\\x0f\\xf4\\x61\\xe9\\xec\\x0f\\x3b\\x62\\x56\\x5c\\x1a\\x10\\x62\\x59\\xc8\\x36\\x60\\x5c\\xc2\\x7c\\xad\\xc9\\x51\\x5c\\xb9\\x97\\x9e\\x89\\xaf\\x28\\x7c\\x02\\x7d\\x75\\xed\\xbf\\x87\\xd5\\xcf\\xf6\\x3a\\x7f\\xec\\x9b\\xd1\\x0e\\x78\\x77\\xab\\x9b\\xf8\\x68\\xd7\\x34\\xbd\\x3a\\x23\\x74\\xce\\xf7\\x02\\x5c\\xc4\\xda\\xb7\\x10\\xe2\\x54\\x80\\x66\\x85\\xa1\\x36\\xec\\xd0\\x3e\\x36\\x77\\x03\\x46\\x51\\x3a\\x15\\x14\\x5b\\x89\\x0e\\xee\\xf4\\x7b\\x80\\xea\\x08\\xe4\\x6c\\x81\\xd2\\x02\\xe5\\x33\\xe9\\xa0\\x6a\\x38\\xa6\\xf7\\x6e\\xf5\\x7a\\x9c\\x73\\x6e\\xc7\\x8d\\x00\\xb8\\x08\\xe3\\xff\\xd9\\xc7\\x9b\\x9d\\xc7\\xa2\\xe5\\x89\\x90\\x76\\x56\\xc9\\x32\\xab\\x8a\\x8b\\x57\\xda\\x1a\\x49\\x5b\\xa7\\x45\\x20\\x15\\xe7\\x92\\x4b\\x52\\x69\\xab\\x1f\\x67\\xbd\\xb4\\x3a\\x35\\x83\\x14\\x87\\xab\\x90\\x02\\xf5\\x2d\\x78\\xb1\\x34\\xcd\\x37\\x51\\x92\\x5a\\xaa\\xb0\\xb4\\x5c\\x8e\\x6b\\x0f\\x2b\\xf0\\xcc\\x9a\\x46\\x59\\x31\\x71\\x08\\xfb\\xa9\\x13\\x6a\\xab\\xb0\\x92\\x1a\\x58\\xfb\\xb9\\xb5\\x0e\\x51\\x24\\x3f\\x9b\\x53\\x18\\x47\\xdc\\x96\\x57\\xe9\\x6f\\xba\\xf7\\xaa\\x69\\x8f\\xe6\\xfe\\x44\\xf9\\x05\\x90\\x14\\x4c\\x70\\x33\\x72\\x50\\xc5\\x8b\\xc5\\xdd\"},\n{{0xde,0xa1,0x80,0xc9,0x1b,0x53,0x3a,0xaf,0x73,0x6b,0xc5,0xd3,0xc8,0xe4,0x74,0xd5,0xe5,0xd4,0x75,0xb7,0x5b,0x92,0xcd,0xe6,0xbd,0x1d,0x10,0xf3,0xb8,0xf5,0x5a,0xd4,},{0x30,0xb2,0x0f,0xb3,0x20,0xb0,0x0e,0x77,0xc4,0xe0,0xa8,0xeb,0x37,0x30,0xaf,0x3c,0x0b,0x1c,0x5f,0x5e,0xd9,0xee,0x2b,0x05,0x62,0x70,0x7e,0x4f,0x55,0xc4,0x93,0x8b,},{0xd0,0x83,0x33,0x3f,0xb8,0x4e,0x79,0xc9,0xb3,0x3e,0x55,0xe8,0x19,0x2d,0x57,0x1f,0xfc,0x8d,0xc5,0x07,0x45,0xb6,0xb5,0xfd,0xd8,0xc4,0x4d,0x92,0xa6,0x3f,0xd1,0x78,0xc4,0xe5,0x7c,0x2a,0xb3,0xa1,0x21,0x1c,0x0b,0xa2,0xd3,0x9d,0xa3,0x0b,0x06,0x62,0x9d,0x8d,0x1c,0xc1,0xd9,0xf2,0x59,0x32,0x63,0xd5,0x24,0xfa,0x5a,0x2e,0xbc,0x03,},\"\\x60\\x61\\x44\\xb7\\xd4\\xf9\\x6b\\xef\\x7f\\x11\\x2b\\x6d\\x41\\xbc\\xb5\\x00\\xd2\\x13\\x6c\\x13\\x4c\\xed\\xa2\\x20\\xe2\\x4d\\x0f\\x15\\x24\\xec\\xa1\\x2c\\x30\\xf2\\xb1\\x02\\xc7\\xf3\\x78\\xd6\\xbb\\xa2\\x59\\xc5\\xb4\\xa5\\xef\\x8e\\xc9\\x30\\x9d\\x5c\\x8d\\xa7\\xe8\\xd2\\xde\\xd3\\x79\\x2a\\xee\\xea\\x21\\x08\\xf7\\x7d\\x66\\xb2\\x30\\x45\\x93\\x8e\\xd6\\x47\\x51\\xf2\\x0d\\x48\\x32\\x6b\\xe2\\xfb\\x99\\x62\\x8c\\xfb\\x18\\x73\\xd7\\xdd\\x27\\x58\\x1c\\x10\\x5e\\xc1\\x32\\x49\\xa9\\x52\\xa5\\x07\\x84\\xb8\\xb3\\x4c\\xb3\\xb2\\xc1\\xa0\\x04\\xfa\\x8b\\x62\\x8a\\x07\\x67\\xfa\\x9a\\xbf\\x05\\x8d\\x95\\x5d\\xf8\\x5d\\x13\\x4a\\x0f\\xc7\\xf4\\xb7\\xd7\\xfb\\x0c\\x8d\\x31\\xbc\\xe3\\x45\\xdd\\x0a\\x42\\x82\\x14\\x5a\\xfb\\x2f\\xf1\\x97\\x51\\xf2\\xcc\\x3a\\x1c\\xae\\xa2\\x42\\xba\\xaf\\x53\\x87\\x49\\xbf\\x38\\x80\\x00\\xe3\\xdc\\x1d\\x73\\x93\\x59\\xdf\\xeb\\xae\\x64\\xae\\x1e\\x10\\xfb\\x6f\\xc1\\x7c\\xc9\\xfb\\x95\\x05\\x35\\xc2\\xde\\x12\\x95\\x87\\xa8\\x68\\x59\\xb7\\xbe\\x36\\xdf\\xe9\\xb6\\xc1\\x14\\x1b\\x25\\xe0\\x91\\x5c\\x8d\\x4a\\xa1\\xcc\\xea\\xe7\\x04\\x6b\\x3d\\x7c\\xfa\\x94\\x0b\\xc9\\x8d\\x4d\\x69\\xfc\\x5a\\x30\\xdd\\xe1\\xde\\xe4\\x2f\\xb5\\x27\\x22\\x81\\xbf\\x8f\\x8e\\x7f\\x3e\\x1a\\x04\\x39\\x7f\\xb4\\xf3\\xad\\xef\\xc5\\x75\\x32\\xdd\\xbd\\xe3\\x68\\x33\\xa6\\x76\\xe6\\xf3\\x9c\\x82\\xaf\\xf6\\xbf\\x48\\x32\\xec\\x97\\x1e\\x03\\xbe\\x38\\x29\\xc0\\x2a\\x20\\x3c\\x82\\xd9\\xeb\\x8c\\x16\\x30\\xee\\x96\\x93\\xf4\\x5d\\x26\\xf5\\xf5\\x1a\\x31\\x03\\xca\\x64\\xd4\\x68\\xec\\xea\\xc1\\xb2\\x9a\\xf4\\xc4\\x2e\\xb2\\x16\\xd7\\x6e\\xc8\\x99\\x48\\x36\\xb4\\xbe\\xc7\\x64\\x89\\xca\\x50\\x70\\x68\\x0c\\x2c\\x2e\\xb4\\x57\\x21\\x0a\\x77\\xc4\\x7f\\xdc\\xbf\\x60\\x01\\x72\\x07\\x3a\\x53\\xf1\\x45\\x3b\\xb5\\xc8\\x04\\x39\\xc8\\x82\\xf0\\x73\\x6d\\xe4\\x06\\x37\\xb4\\xf5\\xab\\x1f\\x76\\x1f\\xf3\\x55\\xc6\\xe9\\xbd\\x4a\\xbd\\xe7\\x56\\x0d\\x5f\\xc1\\x13\\xc8\\x30\\x15\\x9a\\x1b\\x77\\xc4\\xe8\\x7b\\xc2\\xc6\\x98\\x80\\xa4\\x0c\\x58\\x05\\xec\\xc8\\xaa\\xaf\\x57\\x57\\x5b\\xcc\\xd8\\x17\\x7f\\xc6\\xb8\\x35\\x69\\x23\\x3c\\x0f\\x5c\\xa2\\x23\\xac\\x40\\x13\\xca\\x10\\x6c\\xac\\x28\\x54\\x70\\x6a\\xea\\xd7\\x14\\xfa\\x29\\xf2\\x86\\x0a\\x5f\\x97\\x53\\x26\\x8a\\x36\\x71\\xd9\\xf5\\x9c\\xde\\x60\\x48\\xcf\\x0b\\x89\\x86\\x05\\x0f\\x7f\\x54\\x9e\\x4f\\xd7\\x55\\x7f\\x2f\\xc3\\xfc\\xdc\\xcd\\xdc\\xef\\xda\\x58\\x6a\\x64\\xb3\\x00\\x6e\\x58\\x25\\xf2\\x7c\\xa3\\x16\\x87\\xca\\xf6\\x63\\xbd\\x90\\xa0\\x5b\\x11\\x52\\xd7\\xc8\\x8d\\x7f\\x10\\x51\\xa9\\xd7\\x91\\x74\\x86\\x51\\xd8\\x88\\xa6\\xa1\\x2f\\x22\\xd6\\xc8\\xc3\\xf7\\x8c\\x2b\\x86\\xea\\xf5\\x39\\x4b\\x4e\\xf7\\xee\\xfb\\x89\\x79\\x7b\\x25\\xe5\\x42\\xdc\\x93\\x10\\x2d\\x02\\x1a\\x1d\\x0b\\xed\\x6a\\x7d\\xcd\\xd8\\x10\\x2b\\x8f\\x04\\x30\\xa0\\xbc\\x21\\xd9\\x04\\xa3\\xc9\\x34\\x6c\\x01\\x83\\x43\\xdd\\x99\\x37\\xcb\\x35\\x25\\x00\\x07\\xa2\\x84\\x82\\x5d\\xb0\\x8e\\x9a\\x11\\xfe\\xe3\\x1c\\xff\\x7a\\x31\\x4c\\x48\\xc4\\x2d\\x8b\\x31\\x4a\\xcc\\x27\\x82\\x2a\\xf0\\x3d\\x19\\x54\\xc7\\xcc\\x8b\\xf9\\xad\\x4e\\x9e\\x98\\xf4\\xad\\x4e\\xfb\\x35\\x52\\x88\\xda\\xa8\\xc9\\x0d\\xe9\\x03\\x7e\\x64\\xa7\\x86\\x1f\\x5e\\xe4\\x3a\\xda\\x9f\\x0f\\xcc\\xde\\x34\\xd0\\xbc\\xf5\\x02\\x88\\x55\\x0f\\x70\\x0f\\x21\\x5a\\x79\\x44\\xa5\\x38\\x0e\\x2a\\x8e\\x3f\\x04\\xf2\\xb4\\xf5\"},\n{{0x9d,0xaf,0x6d,0xbb,0x7f,0x76,0x29,0x66,0xe7,0xa5,0x7c,0x2e,0xc1,0x99,0x6e,0x9f,0x5b,0x55,0x5b,0x98,0x66,0xb8,0xe3,0x1d,0xea,0xab,0x43,0x56,0xeb,0x13,0x81,0x6e,},{0xf0,0x21,0xb5,0x5a,0x36,0xd9,0xfb,0xfb,0xf2,0x97,0x8b,0xc0,0xdf,0x73,0x6b,0x28,0x9c,0x82,0x41,0xd6,0x43,0x53,0x09,0x84,0x1a,0x13,0x4b,0x07,0xd4,0x7c,0xe4,0xed,},{0x49,0xb6,0xbc,0x46,0xb7,0xab,0xb5,0x69,0x4d,0xa9,0x42,0x15,0xef,0xc4,0xb3,0x0e,0xea,0x04,0xae,0x2e,0x73,0xeb,0x2d,0xa8,0xe8,0xc9,0xef,0x9b,0xe2,0x22,0x24,0x98,0xb1,0x7e,0x13,0x93,0x96,0x46,0xc2,0x9e,0x32,0xd6,0x45,0x58,0x46,0x40,0x64,0x15,0x90,0xb1,0xbb,0xdb,0xfe,0x24,0xf3,0x6c,0x6f,0x69,0x4b,0xf8,0x72,0x38,0xee,0x04,},\"\\x54\\x45\\x23\\x90\\x0d\\xaa\\x67\\x78\\xc0\\x39\\x1a\\xe4\\x04\\x4a\\x51\\xc0\\xc4\\xa5\\xe4\\x44\\x13\\x3f\\xbd\\x77\\x47\\xd5\\x39\\xa7\\x44\\xfa\\x60\\xab\\x5d\\xc5\\x4e\\x18\\x19\\xdc\\x8e\\x56\\x89\\x9c\\x56\\xef\\xd7\\xef\\x3d\\xa3\\x41\\x79\\x0e\\xcc\\x49\\x64\\x5e\\xf3\\x25\\xc6\\x56\\x8a\\xe9\\x71\\xd3\\x0d\\x21\\xbb\\x7f\\x23\\x46\\x4f\\x46\\xa2\\x4b\\x80\\xd4\\x9b\\xb9\\x3c\\x6e\\x91\\xde\\x79\\xb2\\x43\\x31\\xd0\\x70\\x7f\\x43\\xd0\\x66\\x5d\\x01\\x97\\x74\\x3a\\xdf\\xf6\\x90\\xd6\\x15\\xa1\\xc9\\x25\\x87\\x77\\xfc\\x47\\xd0\\x21\\x71\\x42\\x42\\x6a\\x47\\x34\\x89\\x2e\\xb6\\x22\\xab\\x8e\\x50\\xbb\\x12\\x8e\\xc3\\xa8\\x95\\x26\\x6a\\x38\\x61\\xa3\\x97\\x68\\xbc\\x76\\x09\\x6f\\x58\\x1f\\xd0\\x82\\xdf\\x9b\\x72\\x23\\xe8\\x5a\\x8a\\xfb\\xdb\\x5c\\xaa\\x49\\x22\\xaf\\x2a\\x01\\x4b\\xf8\\xa5\\xcd\\x11\\xe5\\xc5\\xea\\x93\\xe9\\x1c\\xd4\\x6d\\x5a\\x1b\\x99\\xb8\\x5a\\x26\\x70\\xe3\\x21\\xde\\x2e\\x32\\x25\\x5a\\xfd\\x67\\xfe\\x2c\\x37\\xfd\\x93\\x2c\\xac\\xa2\\x2d\\x24\\x1f\\xaf\\x4c\\xce\\xfe\\xff\\x58\\xd6\\xbd\\x04\\xcf\\xaf\\x11\\xde\\xdd\\x29\\xc8\\x71\\x9f\\xfc\\xb0\\x2e\\xf6\\x5c\\x5d\\x3e\\xb7\\x8b\\x4f\\xc0\\xd1\\x70\\xa2\\xe3\\x43\\x2c\\xc8\\x12\\xf0\\xd0\\x41\\xd9\\x76\\x0c\\x13\\xc1\\x2f\\x7c\\x7f\\x2f\\x84\\xfe\\x5e\\x0f\\x70\\x0c\\x10\\xb1\\xa6\\x9c\\xa4\\x66\\xa7\\x0b\\xde\\xff\\x8d\\xbe\\xc7\\xd3\\x18\\xfb\\x09\\xdd\\xd8\\x27\\xef\\x61\\xca\\xa6\\x91\\x0b\\xbc\\x06\\x1c\\xbd\\xa2\\xb5\\x27\\xef\\x2e\\x59\\xed\\x4c\\x17\\x22\\x99\\x72\\xf8\\x95\\x67\\xd7\\x05\\xde\\x92\\x31\\x92\\x4b\\x41\\xbb\\x6e\\x7c\\x01\\xfe\\x85\\x42\\x64\\x47\\x4f\\xa7\\x6b\\x1f\\x88\\xcd\\x57\\xea\\xc3\\x11\\x17\\x1a\\xf1\\x03\\xd2\\x30\\x78\\x42\\x4a\\x12\\x67\\x5f\\x2f\\xa3\\x6c\\x2d\\xe0\\xbf\\x53\\xc2\\x95\\xfe\\xeb\\x31\\x57\\xde\\x95\\x89\\x22\\x98\\x6e\\x32\\x51\\x3d\\xfa\\x33\\xb3\\x5e\\x15\\xc3\\x94\\xa1\\x1c\\x0f\\xcc\\x55\\xb8\\x2d\\x6d\\xd0\\x59\\x7c\\xdd\\xd2\\x7e\\xde\\x7d\\xe1\\x29\\x85\\xa6\\x16\\xe6\\x40\\x26\\xbe\\xfb\\x5d\\x69\\x04\\x82\\xb3\\xff\\x22\\xc0\\xdd\\x21\\xf2\\x7a\\x08\\x6d\\x37\\xa0\\x49\\x9e\\xa3\\x6f\\xe2\\xc4\\xb5\\xa9\\x59\\xd1\\x0e\\x9a\\x61\\x0c\\xab\\x1f\\xe0\\xd2\\x8c\\xf1\\x01\\x3d\\xca\\xe6\\x3d\\x8f\\xde\\xe0\\xec\\xbd\\x8b\\x4e\\x19\\xd5\\xd0\\x40\\xe2\\xfa\\xd7\\xd0\\x41\\x3a\\x38\\xe8\\xc4\\xe7\\x35\\x52\\xad\\x46\\x04\\x7b\\x5b\\xbd\\xd1\\x5c\\x09\\xcc\\x0d\\x34\\xe4\\x8b\\x91\\xfd\\xba\\xe2\\xa9\\xd1\\x62\\xd4\\xb2\\x1e\\xe2\\x0a\\x1e\\xf5\\x35\\xea\\x88\\x35\\x95\\xbc\\x49\\x51\\x69\\x2a\\x67\\x16\\x34\\x54\\xc7\\x36\\x7f\\x13\\x4b\\xf6\\x45\\xd4\\x8f\\x99\\x69\\xe3\\xd4\\xf0\\xf9\\xea\\xf4\\x14\\x4c\\xe9\\x80\\xa0\\xa2\\xe3\\x34\\x2c\\x74\\x6c\\x2b\\xdc\\x3c\\xcd\\xc2\\xf8\\xa7\\xda\\x57\\xa0\\xe8\\x02\\x87\\x82\\xd3\\x0a\\xf5\\x85\\x7d\\x9e\\xfb\\x37\\x66\\x6d\\xf6\\x5d\\x7c\\xc3\\x84\\x71\\x66\\x61\\xe6\\x1f\\xf5\\xc0\\x97\\x52\\x59\\x5e\\x94\\x11\\x2c\\xa1\\xa8\\x40\\xd6\\xe4\\xf6\\xec\\x0e\\x55\\x49\\x4c\\x5b\\x44\\xf7\\xc0\\xf0\\xd4\\xa9\\x9c\\xd7\\x09\\x05\\xbf\\x84\\x85\\x56\\x17\\x48\\xf4\\xdc\\x0f\\xd7\\xa4\\x4a\\x1b\\x13\\x91\\x13\\xc3\\x8a\\x1e\\x8e\\xb5\\xc7\\xa2\\x0f\\x3e\\x95\\x2e\\xae\\xa8\\xce\\x38\\xb2\\x07\\xc2\\x8e\\xd9\\x72\\x71\\x8f\\x03\\x1f\\x47\\x7c\\x62\\x07\\xce\\x43\\x3c\\x51\\x5f\\x5a\\xc2\\x84\\x0f\\x49\\x74\\xf1\\xf1\\x69\\x89\\x62\\x6c\\x76\\xbc\\x98\"},\n{{0x71,0x86,0xf8,0xd1,0x68,0xd9,0xdd,0xf1,0x7e,0xdb,0xaf,0x0e,0x7b,0x1a,0xbc,0xb2,0x6d,0xa3,0xe4,0xc0,0x27,0x2d,0x98,0x79,0xc7,0xfd,0xff,0x64,0x21,0xc4,0xea,0x50,},{0x96,0xb4,0xa6,0x56,0x23,0x20,0x29,0xfc,0x1b,0x83,0x64,0x70,0x3c,0xbe,0xa7,0xa5,0xd7,0x38,0x75,0x18,0xa8,0x8c,0xed,0x1a,0x91,0x5e,0xc8,0xd8,0x86,0x84,0x81,0x32,},{0xa9,0xc0,0x49,0x9f,0xc2,0x16,0xa1,0x45,0x32,0xd7,0x36,0x36,0x5c,0x63,0x55,0xf9,0x38,0xf8,0xd8,0x19,0x4f,0xa1,0x13,0x28,0x48,0xf8,0x3e,0x49,0x04,0x54,0xd4,0xbb,0xf6,0x92,0x69,0xf1,0x22,0x59,0xfc,0x6c,0x07,0x4c,0x10,0x15,0xe4,0x25,0xe4,0xf4,0xf2,0x7c,0x02,0x9c,0x93,0x33,0x49,0x51,0x36,0x1a,0x35,0xad,0x11,0x76,0x54,0x0e,},\"\\xa3\\xe6\\xcb\\x6b\\x84\\xcc\\x5c\\xf1\\xfb\\x1a\\x84\\x8b\\x4b\\x8e\\xa7\\xcb\\x7c\\x87\\xe0\\x44\\x57\\x50\\xc6\\x1f\\x9a\\xa5\\xd7\\x7d\\xed\\xdf\\x94\\x94\\x63\\xec\\xd3\\x9b\\xfc\\x71\\xf2\\x61\\x0c\\x2a\\x94\\x24\\x84\\x7f\\xb7\\x6f\\x84\\xc5\\xda\\x1f\\xa1\\x0e\\xf7\\x18\\xa3\\x45\\x66\\xce\\xc1\\xb3\\xe8\\x99\\xe7\\x25\\x2e\\x8d\\x4d\\x34\\x60\\x16\\x49\\x8f\\xf1\\x19\\x97\\x27\\x50\\x06\\x16\\x60\\xba\\xed\\x31\\x28\\x27\\x58\\x31\\x81\\x07\\x3d\\x1d\\xc7\\x4b\\x76\\xc4\\x30\\xca\\x30\\xd4\\x09\\xe4\\xe8\\x43\\x9c\\x0f\\xc4\\x8c\\x00\\x68\\x06\\x29\\xd4\\x3a\\xe2\\xa7\\x7d\\x69\\x22\\x8f\\x7f\\x8a\\x12\\x53\\xaf\\x15\\xbd\\x2c\\xb6\\xbb\\x1c\\x16\\x96\\x55\\x0c\\x4c\\x79\\x0f\\x44\\x98\\x69\\x63\\x0a\\xb9\\x2b\\x9c\\x11\\xcd\\xe1\\xf9\\x61\\xaa\\x21\\x03\\xec\\x23\\xf7\\xd9\\xf0\\xfe\\x9c\\x3c\\x41\\x32\\x58\\x2e\\xfa\\x79\\xa6\\x6a\\xe3\\x42\\x6e\\x51\\x05\\xb8\\x0b\\xfe\\x5e\\x04\\xdc\\x8b\\xb1\\xe3\\x8a\\x31\\x10\\xcd\\x72\\x98\\x4b\\x3e\\xf0\\x2a\\x0c\\xa6\\x2a\\xb6\\x38\\xcb\\xcf\\xbc\\x8a\\x6b\\x59\\x3d\\x26\\x13\\xdc\\x06\\xec\\x86\\xfe\\xe3\\x4f\\x65\\x18\\xd4\\xa3\\xfb\\xdc\\x15\\x72\\x37\\x17\\x45\\x64\\xda\\xeb\\x66\\x74\\xcd\\xc3\\x4f\\x4d\\x65\\x37\\xcf\\x81\\xd8\\xaa\\x9b\\xdd\\xbf\\x3a\\xed\\xa3\\x12\\xda\\xae\\xee\\x33\\x6f\\x9e\\xd8\\xbf\\xf8\\x1e\\x29\\x4b\\xc7\\xd4\\x4d\\x25\\xcd\\x78\\x70\\x72\\xe6\\xcb\\x41\\x4b\\x65\\xfb\\x7a\\x84\\x6f\\xc0\\x65\\x36\\x7b\\xa8\\xe3\\x7b\\xef\\xfd\\xf0\\xb7\\xba\\x8f\\x98\\xcd\\xf1\\xeb\\x87\\x0f\\x4e\\x8b\\x71\\x30\\xfa\\x34\\x29\\xd2\\xe2\\x4b\\xce\\x59\\x94\\xda\\xf1\\xaa\\x65\\xe5\\xf6\\x03\\xb6\\x31\\x05\\x3d\\xc5\\x10\\xb2\\xf0\\x97\\xe8\\x6e\\x9b\\x9b\\x55\\x23\\x02\\x75\\x79\\x68\\xd0\\x13\\x6e\\xe6\\x75\\x4c\\x42\\xa3\\x2c\\x99\\x0a\\xdd\\x9c\\xb5\\x29\\xbc\\x89\\x75\\x1d\\xfa\\x4e\\x5e\\x3a\\x0b\\xad\\xaf\\x4c\\xc4\\x0b\\x6a\\x09\\x50\\x7f\\x9f\\xcd\\x24\\xc3\\xca\\x72\\x25\\x95\\x99\\xc6\\xee\\x58\\xd8\\x57\\xb3\\xa1\\x89\\xe0\\x48\\x90\\x2e\\x88\\x5a\\x36\\x07\\x42\\x60\\x93\\xcb\\x0f\\xab\\x43\\x7c\\x0f\\xb0\\xed\\x2f\\x1e\\x96\\xe9\\x44\\x1a\\x7e\\x95\\x4f\\xe3\\xef\\x76\\x46\\xe2\\x6a\\x39\\xa0\\x70\\x33\\xd0\\xa1\\x55\\x5d\\xfe\\xed\\x9a\\x6f\\x57\\x79\\x4a\\xf3\\xa2\\xab\\xf0\\x05\\x7e\\x9f\\x85\\x3a\\xe5\\xc3\\x01\\x38\\xfd\\x80\\xe2\\xf2\\x9c\\x2f\\x4a\\x93\\xad\\x31\\x45\\xda\\x10\\xa3\\xe3\\x1c\\xe9\\xff\\x97\\x86\\xac\\x65\\xd8\\x60\\x37\\xd9\\x8b\\x7a\\xa6\\xd1\\x1d\\xe8\\x80\\x00\\x10\\xe1\\x33\\x86\\x9e\\xb6\\x7a\\x50\\x39\\xb9\\xb8\\xfe\\xb6\\xef\\x90\\x3d\\x0c\\xc7\\x46\\x41\\x26\\x07\\xda\\x72\\x5c\\xe2\\xdc\\x6a\\x35\\x21\\x09\\xdb\\xc6\\xa5\\xe4\\x0b\\x17\\x0c\\x23\\x05\\x0b\\xc4\\xfb\\x1e\\xfa\\x0c\\x34\\xfe\\xc0\\x0e\\xae\\x32\\x19\\xc2\\x90\\x40\\xe8\\xf5\\x97\\x8c\\x93\\x84\\xee\\x91\\x5d\\x8c\\x93\\x98\\xdd\\x12\\x0d\\x5c\\x3c\\xba\\x38\\xf8\\x52\\x6b\\x06\\x19\\x7c\\xb2\\xc2\\x61\\xde\\xc7\\xd7\\x26\\xae\\x13\\x0f\\x9b\\xee\\x17\\x26\\x17\\x00\\xe9\\x99\\x31\\xfa\\xc4\\xb4\\xdc\\xa0\\xf7\\x58\\x70\\x1a\\xcb\\xf3\\x70\\x7d\\x47\\xdf\\x53\\x21\\x13\\x0e\\xc1\\x0b\\xb3\\xb1\\x30\\x78\\xc4\\xdc\\x5d\\xe3\\x47\\x0f\\x15\\x8b\\x57\\xdb\\xeb\\x87\\x8b\\x3a\\x85\\x24\\xe0\\xed\\x2c\\x95\\x47\\x54\\x5f\\x0f\\xdd\\xf1\\x31\\x25\\xe4\\x5b\\xb2\\x3d\\x6a\\x7b\\x38\\x3a\\x18\\x7f\\x4c\\x5d\\x54\\xa7\\xb4\\xc8\\x3d\\x59\\x57\\xf2\\xcd\\x7e\\x6f\\xbc\"},\n{{0xe8,0x6e,0x8c,0x62,0x56,0x6e,0x15,0x75,0x3b,0xd5,0x57,0x7e,0xaa,0xe7,0xf2,0x41,0x05,0xb7,0x40,0x55,0xa2,0x56,0x29,0x58,0x07,0x08,0xbf,0xc8,0x3a,0xeb,0xf0,0x6c,},{0x8c,0x8c,0xe8,0x82,0xd5,0xf7,0x65,0x86,0xd8,0xdd,0xcc,0xc5,0x57,0x9b,0xcc,0x1c,0xdf,0x4c,0xfd,0x71,0x62,0x30,0x4c,0xb1,0x0e,0x76,0x96,0x02,0x6e,0x70,0x7f,0x17,},{0x54,0xd2,0xfd,0x44,0xac,0xf9,0xe2,0x09,0xbc,0x7e,0x43,0x33,0x72,0xbd,0x73,0x07,0x4d,0x07,0x80,0x6a,0x77,0xc6,0xce,0x22,0x8e,0x9b,0xe9,0x94,0x41,0x8b,0x00,0xc7,0xec,0xbc,0xb7,0xac,0x00,0x6c,0x29,0x4a,0xec,0x9d,0xe6,0x68,0x57,0x2a,0xdd,0x51,0x7c,0x06,0xb4,0xeb,0x4f,0xe2,0xff,0x35,0x23,0xbf,0x04,0x3d,0xf4,0x4d,0x3d,0x0d,},\"\\x12\\xfa\\x63\\x1b\\x0e\\x48\\x2e\\x9b\\x9d\\x63\\x3e\\x94\\xb8\\x2d\\x8a\\xb4\\x36\\xfe\\x54\\x8e\\x5b\\x95\\xda\\x92\\x62\\x46\\x23\\xd1\\x3f\\x2c\\x70\\xda\\x77\\x5b\\xa1\\x36\\xc5\\x22\\x9c\\x16\\xa0\\xc7\\xa6\\xfa\\x91\\x4b\\x2f\\xed\\xa5\\x64\\xe1\\x72\\x19\\xe4\\x73\\x70\\xf9\\x51\\x5b\\xb1\\xd5\\x9d\\xe6\\xe9\\x58\\x62\\x04\\xd9\\x43\\xdc\\x56\\x0d\\x73\\xe2\\xe7\\x57\\xf7\\xeb\\x39\\xbb\\xc7\\x11\\x1b\\xb4\\x6b\\xc6\\x43\\xc1\\x3f\\x60\\x21\\x12\\x73\\x9b\\xec\\x77\\x8d\\x7d\\x4f\\x49\\xd0\\x92\\x56\\x3d\\x68\\xf5\\x77\\x6e\\x43\\x0e\\x3b\\x0b\\xf2\\xdc\\x1b\\x01\\xbe\\xb3\\x04\\x01\\x96\\xda\\x63\\x02\\x90\\x8b\\xfe\\x91\\xe0\\xfc\\x38\\xe0\\x4c\\x15\\x0e\\xf9\\x07\\xdc\\x73\\x6c\\x44\\x5f\\xf2\\x1f\\xdb\\xd2\\xdc\\x1e\\xac\\x0a\\x0f\\x5d\\x00\\xa3\\x0a\\xf0\\x28\\xaf\\xe2\\xff\\x61\\x16\\x2b\\x75\\x8c\\x7d\\xa9\\xa7\\x76\\x66\\x6a\\x11\\x23\\x59\\x43\\x1c\\x48\\x85\\x6a\\x87\\xca\\x82\\xd3\\xdd\\x1c\\x8a\\xf3\\x76\\x59\\x86\\x35\\x43\\x2b\\xf8\\x91\\xbe\\xcb\\xc3\\x3a\\x8f\\xda\\x44\\xce\\x88\\x3e\\xa8\\xaf\\x4a\\xd8\\xb9\\x1a\\x92\\x61\\xce\\x76\\xb9\\xe9\\x39\\xc4\\x61\\xfa\\xc5\\x3a\\xe0\\xf0\\x76\\xe8\\x2d\\x87\\x9a\\xac\\xe8\\xf3\\x8f\\x12\\x0b\\xc9\\xb0\\x4d\\x81\\x25\\xed\\x24\\xbc\\xd7\\x79\\xd9\\xd2\\x43\\x86\\xb1\\xdd\\x20\\x17\\xeb\\xee\\x81\\x97\\x37\\x6e\\x8c\\x36\\xfa\\x3a\\xef\\x8c\\x1e\\x71\\x3e\\x2b\\x8b\\xce\\x49\\x66\\xd8\\x48\\x88\\x68\\x1b\\xa7\\x84\\x95\\xfb\\xd1\\xd6\\xcc\\xa5\\x86\\x26\\xe6\\x85\\x4c\\xda\\x60\\x6b\\x83\\xd6\\x29\\x3d\\x01\\xe8\\xe3\\xe1\\x3b\\xbf\\x4a\\xac\\x85\\x1d\\x9a\\x1e\\x00\\xd0\\x02\\x4e\\x26\\x99\\x3b\\x0b\\x30\\x91\\xbe\\x7e\\x80\\x61\\xbc\\xbb\\x3c\\xbb\\x23\\x02\\xce\\xab\\x96\\x89\\x7a\\x8e\\x1f\\xf3\\x67\\xec\\x86\\x25\\x69\\x3c\\xf3\\x15\\x34\\x12\\x4a\\x9d\\x5d\\x72\\x5b\\xca\\xe0\\x01\\xd6\\x7b\\xc2\\x11\\x1d\\x0a\\xb8\\x11\\x1f\\xa1\\xd2\\x4e\\x4e\\xd0\\x6d\\x63\\x58\\x3c\\xe6\\x90\\xf2\\xa0\\x46\\x26\\xd7\\x91\\xd2\\x9e\\x3e\\x31\\x5a\\x41\\x5b\\xf2\\xe8\\x53\\xa5\\xf2\\x97\\x4c\\x83\\x3a\\x3f\\xe2\\xe2\\x90\\x9c\\xf6\\x69\\xc7\\x3c\\x1f\\x59\\x39\\x2d\\x30\\xc3\\x7f\\x3b\\x9c\\x5a\\x3d\\xdc\\xfd\\x75\\x62\\x1f\\xda\\x36\\xe4\\xba\\x2f\\x16\\x14\\x78\\x58\\xf6\\xf2\\x06\\xb9\\xa1\\x40\\xf1\\xdd\\xc1\\x46\\x6c\\x9a\\x53\\xed\\x73\\xf8\\x24\\x90\\xbc\\x95\\x32\\x2c\\x95\\x5f\\x61\\xd1\\x1c\\xb5\\x1d\\x5e\\x8a\\x58\\xc6\\xb3\\xcb\\x0f\\xdf\\x04\\x19\\x76\\x32\\x01\\xbe\\xea\\x93\\xa8\\x51\\x2b\\x14\\x05\\x24\\x5b\\xfc\\x38\\x41\\x55\\xad\\xc5\\xce\\x77\\x8a\\xa7\\x4d\\x00\\xa3\\x22\\x72\\x64\\x65\\x11\\x9a\\xf7\\x95\\x01\\xf0\\x40\\xdd\\x0a\\x7a\\x84\\x06\\x00\\x01\\xca\\x89\\xd2\\xfe\\x5e\\x9c\\xf9\\x77\\x9a\\x54\\x7e\\x3e\\xbd\\x3b\\xf8\\x64\\x29\\x90\\xa3\\x69\\x0e\\x2b\\x2c\\x3e\\x54\\xcb\\x7e\\xee\\xea\\xbc\\x24\\x2b\\x4d\\xd9\\x92\\x74\\xc4\\x25\\xa8\\x67\\x93\\x1c\\x92\\x9c\\xa7\\x08\\x08\\x60\\x1c\\x39\\x08\\xcf\\xd7\\x88\\x86\\x7d\\x68\\x7d\\xc3\\x66\\xe9\\x76\\x35\\x0c\\x9e\\x70\\x58\\x4b\\xd3\\x90\\xd6\\x7e\\xeb\\x7c\\xfe\\xa2\\x6c\\x42\\x68\\x6d\\x3d\\x96\\x20\\xf6\\x2f\\x64\\x10\\x4e\\xf4\\x1e\\xd1\\xd1\\x30\\xd7\\x9e\\x32\\x59\\x38\\x48\\x62\\x96\\xb7\\xab\\x2d\\x2a\\xdb\\x78\\x52\\x67\\x43\\xe4\\x00\\xac\\xb2\\xb7\\xaf\\x09\\x62\\x8d\\x68\\xcf\\x94\\x75\\x10\\x16\\x25\\xc2\\x0e\\x1d\\xc0\\x51\\xd7\\x3c\\x99\\x7c\\x95\\x2e\\x12\\x81\\x2c\\x80\\x5b\\x68\\xff\"},\n{{0xa5,0xca,0xb2,0x72,0x7e,0x2f,0x13,0x1a,0x4d,0x63,0xfa,0xce,0xe7,0x99,0x33,0x66,0x63,0x93,0x0a,0xa0,0x7a,0xfd,0xa6,0xbd,0x5a,0x8e,0x98,0x5a,0x02,0xde,0xb1,0xea,},{0xac,0x35,0x5f,0x95,0x26,0x0f,0xbf,0xea,0x77,0x8c,0x55,0xb5,0xaf,0x8b,0x3f,0xd1,0xf2,0x4d,0x26,0x93,0xda,0x35,0xde,0x4e,0xe5,0x08,0xa2,0x7e,0xd3,0x50,0x39,0x1f,},{0x13,0x8c,0x7a,0x8e,0xca,0x5b,0x5c,0x37,0x15,0x88,0x13,0x84,0x3c,0x9a,0x90,0x4e,0x5f,0x53,0x0a,0xd9,0x71,0xee,0x43,0x2a,0x44,0xf3,0x44,0xf8,0xc6,0x4b,0xbf,0xaf,0x10,0x2f,0xf4,0x1d,0xaa,0x5c,0xf7,0x22,0xa4,0xbc,0x66,0x40,0x58,0x87,0x59,0xb8,0xf3,0x6f,0x9c,0x05,0x9e,0xab,0x93,0x6c,0xc4,0x5e,0xd4,0x79,0x63,0x94,0xa0,0x02,},\"\\x48\\x34\\x39\\x15\\x4d\\xd5\\xe5\\xd1\\x09\\x85\\x7c\\x24\\xd1\\xc4\\xe7\\xfb\\xbe\\xfd\\x2f\\x38\\x65\\x1d\\xa8\\x12\\x89\\xf2\\xad\\x3d\\x61\\x54\\x30\\x65\\x38\\xb8\\x2a\\xc7\\xdb\\xa9\\x21\\x0e\\x74\\x07\\x76\\xed\\xe4\\xcc\\xf5\\x1d\\x4f\\x63\\x09\\x4b\\x03\\xe4\\x6a\\xd3\\xaa\\x3c\\x31\\x94\\x7d\\x8c\\x36\\xce\\x6f\\x94\\xe8\\x52\\x96\\xbd\\xed\\xcc\\x1e\\xad\\x62\\xea\\xa1\\x44\\x1e\\xcd\\xe0\\xa2\\x25\\xd0\\xbf\\x02\\xed\\xca\\xcf\\x86\\x50\\x14\\x89\\x9a\\xf6\\x6d\\x98\\x08\\x04\\x0c\\x2d\\x02\\x00\\x0a\\x0f\\x5c\\xe4\\xf1\\x68\\x3c\\x1a\\x49\\x52\\x76\\xd9\\xc4\\xd7\\x28\\xc9\\xec\\xd6\\xf0\\x78\\xdb\\x8a\\x0c\\xfc\\x26\\x71\\x87\\x23\\x85\\x62\\xab\\x1a\\x1e\\xa2\\x81\\x3f\\xb4\\xf1\\x2e\\x87\\x8e\\x1b\\xa1\\x43\\xf4\\xd0\\x6a\\x3b\\xc8\\x10\\x0c\\x35\\x50\\x11\\x8d\\x69\\xda\\xe6\\x7b\\x55\\xed\\x69\\x2a\\xcf\\x94\\x44\\xda\\xa5\\xc3\\xe3\\xc0\\xa9\\x8e\\xe2\\x8c\\xf1\\x72\\xde\\x0c\\x58\\x4c\\x9f\\x2e\\xc9\\xbb\\x6e\\x9b\\x57\\xf5\\x72\\xa8\\x6f\\xf8\\x72\\x9f\\x65\\xf4\\xc6\\x5b\\x7f\\xea\\xcc\\xaa\\x21\\x72\\x0e\\xd7\\x9e\\x90\\x61\\x8b\\xca\\xfb\\xfd\\x95\\x33\\xda\\x85\\x23\\x2b\\x45\\x08\\x83\\xaa\\x91\\x9f\\x82\\x7f\\x04\\xc4\\xa9\\x7b\\xf5\\x13\\x90\\xd4\\xf8\\x56\\x9c\\x19\\x17\\x26\\xf4\\x4f\\x7e\\x39\\xfb\\x3d\\xb7\\x3b\\xfc\\x41\\x5b\\x6f\\xfc\\xa8\\xb9\\x1a\\xca\\xad\\x69\\x23\\x85\\x72\\xf1\\x4b\\x49\\x98\\x5e\\xa0\\x3c\\x98\\xd7\\xb1\\xd4\\x4b\\x3a\\x65\\x54\\x76\\x5b\\x19\\xab\\xf9\\xb2\\x52\\x74\\xe9\\x7e\\x46\\x34\\xe4\\xb0\\xf9\\xe8\\x02\\xeb\\x6f\\x74\\x3f\\xff\\x95\\x07\\x57\\xee\\x01\\x3a\\x69\\x88\\x22\\x18\\x81\\xa7\\x44\\x3f\\x1f\\x32\\xbc\\xcb\\x00\\x7e\\x99\\x37\\x9c\\x7c\\xa4\\xf9\\x06\\xd5\\xfe\\x11\\xcb\\x12\\xf6\\x6b\\x53\\xa3\\xd2\\x1a\\xc9\\x47\\xbe\\x0c\\x81\\x50\\xbc\\xd0\\x4f\\x1c\\x81\\x6b\\x3f\\x0c\\x07\\xc5\\xfb\\xc0\\x90\\x5a\\x71\\x36\\x95\\x68\\x49\\xda\\x03\\x83\\x6d\\xae\\xc2\\x5c\\x3e\\x1a\\x06\\xec\\x3a\\xeb\\x20\\x56\\x48\\x17\\x6f\\x89\\xf4\\xa2\\x91\\xfa\\xc4\\xf1\\xd3\\x89\\x9f\\x56\\xc9\\x06\\x5e\\xeb\\xb8\\x76\\x8b\\x84\\xb3\\x1b\\x7c\\xc0\\x31\\x08\\xbd\\x08\\x88\\x33\\x8d\\x17\\x74\\x99\\x49\\x70\\x29\\x2d\\x93\\x50\\x31\\xfe\\xa3\\x35\\xd9\\xe7\\x90\\x8f\\xe0\\x25\\x48\\x89\\xc0\\xb1\\x71\\xcf\\xe0\\xaf\\x2e\\x6f\\xde\\x7a\\x5e\\xa3\\xde\\x1f\\xdc\\xda\\xe5\\x37\\xb6\\x31\\x31\\x19\\xc2\\x7f\\x77\\x20\\x24\\xef\\x36\\xe4\\x5c\\x8b\\x89\\xf2\\x6c\\x93\\xd9\\xee\\xa1\\x37\\x25\\xe1\\x2d\\x81\\x0c\\xf9\\x82\\x4a\\xea\\x04\\xcb\\x80\\x2d\\xa7\\xe4\\x58\\xe8\\x42\\xca\\x37\\x5e\\x36\\x71\\x34\\x6e\\x00\\x89\\xde\\xc5\\x71\\xbe\\x16\\x9b\\x0d\\x90\\x96\\x6b\\xf3\\x68\\xfe\\x36\\x98\\xfd\\x3e\\x72\\xbf\\x16\\x24\\x9d\\xd9\\x00\\xaf\\x6d\\x29\\xff\\xa4\\x83\\x51\\x36\\x0f\\x12\\x24\\x17\\x14\\x58\\x5f\\x7a\\x9b\\x4c\\x7b\\xaf\\xc9\\x52\\x22\\x67\\x35\\xde\\x14\\x62\\x74\\x3d\\x78\\xab\\xad\\x0f\\x67\\x11\\xf2\\x49\\x5f\\x33\\x13\\xad\\x4e\\x0b\\xa2\\x16\\xb0\\xde\\xa5\\xdc\\x15\\x16\\xa9\\x54\\x9f\\x7d\\xfc\\xfe\\xb9\\x3e\\x59\\x1a\\xbe\\xda\\x5e\\xa3\\xc7\\x04\\x59\\x06\\x52\\x3b\\x40\\x86\\x8c\\xa5\\x73\\x5d\\x6a\\x33\\x71\\xc3\\xc2\\x94\\xc1\\x11\\x26\\xd0\\x97\\xf4\\xc7\\x08\\xe9\\x04\\x64\\xc1\\xad\\x91\\x42\\xfa\\x0b\\xed\\xf0\\x7d\\xfc\\x5f\\x4c\\xb6\\x7d\\x6e\\xd8\\x0f\\x1b\\xfe\\x72\\x68\\x3c\\xfb\\x2a\\xd6\\x65\\x30\\xdc\\x43\\xd7\\x02\\x3f\\x37\\x90\\xff\\x42\\xd9\\x5b\\xd8\"},\n{{0xcb,0x63,0x19,0x61,0x37,0x79,0xa4,0xef,0x66,0xbe,0x14,0x14,0x4b,0x28,0x40,0xad,0x01,0x67,0xc0,0x3f,0x3b,0x8d,0x04,0xff,0x59,0x2c,0xd1,0xd2,0xd7,0x22,0xe3,0x30,},{0x18,0xeb,0x03,0xf0,0xa3,0x34,0xb0,0x80,0xe1,0xaf,0x43,0x99,0xd8,0x37,0x6d,0x83,0xc5,0x33,0x31,0x6d,0xc6,0x87,0xcf,0x34,0x1f,0x0a,0xfa,0xb4,0x50,0x96,0x52,0x99,},{0xc1,0xb3,0x99,0xcd,0xc1,0x98,0xe9,0xa1,0x59,0xe6,0x84,0xfc,0x26,0x68,0x6d,0xe6,0x60,0xda,0x54,0xcf,0xe3,0x12,0xca,0x73,0x45,0xdf,0x0c,0x7d,0x15,0xa3,0x57,0x43,0x01,0x44,0x10,0xbd,0x2f,0x6c,0xd1,0x1e,0xef,0x33,0xa8,0x9b,0x3d,0x15,0xcb,0xc1,0x7c,0x7a,0x35,0x89,0x37,0xfd,0x99,0x72,0x05,0x05,0x1f,0x92,0x57,0xc2,0x56,0x09,},\"\\x87\\x4a\\x6c\\x81\\xd6\\xdb\\x71\\x33\\xa7\\x91\\x69\\x76\\x0c\\x84\\xd3\\x6e\\xea\\x3d\\x42\\xea\\x08\\x92\\xb7\\xc8\\xdd\\xe8\\x44\\xa3\\xa6\\xb6\\x0a\\xa9\\xf2\\x66\\x07\\x26\\xc9\\xc4\\xdd\\x26\\xa0\\x1f\\x4e\\xd0\\xdc\\x1c\\x53\\xba\\x60\\x05\\x46\\x3f\\x7e\\xa6\\x4a\\x1e\\xc6\\x39\\x53\\xbc\\x3d\\x81\\x05\\x2a\\x2f\\x10\\x84\\x38\\x9a\\x77\\x06\\xdf\\x74\\xed\\x41\\x36\\x08\\x2a\\xb5\\xc6\\xe8\\xc7\\xf4\\x11\\xdf\\x9d\\x3a\\x0f\\x3c\\x40\\xf5\\xa6\\x0e\\x2d\\x21\\xa8\\x54\\x8e\\x7a\\x25\\xde\\xe3\\x40\\x30\\xb3\\xc3\\xe7\\x5c\\xaa\\x93\\xdd\\xaa\\x9c\\x19\\x0c\\xb6\\xde\\xda\\x24\\x13\\xd5\\x4e\\x37\\x3d\\x43\\x53\\xdb\\xa4\\x3d\\x39\\x49\\x1a\\x2f\\x56\\xc8\\xb3\\x6d\\x45\\x01\\x6f\\x77\\xd7\\x47\\x16\\x91\\x63\\x45\\x39\\xe7\\x6c\\x4f\\xb4\\x19\\x13\\x47\\x2b\\x0a\\x23\\x05\\x4f\\x54\\x8f\\x54\\xb1\\xe7\\x10\\x9c\\x8b\\x65\\x21\\xb5\\x7a\\xe9\\x81\\xd0\\x50\\x31\\x6a\\x33\\xc4\\x9c\\x71\\x16\\x26\\x8d\\xcc\\x4b\\x78\\xc2\\xba\\xe5\\x3a\\x3a\\xe4\\xdd\\x17\\x8b\\xb8\\xb7\\x6b\\xb3\\xbe\\xfe\\x19\\xe4\\x1a\\x2c\\xf1\\x2c\\xeb\\xb7\\x11\\x68\\xf9\\x71\\xf2\\x02\\x46\\x1c\\x63\\xf7\\xd6\\xee\\xf1\\x07\\xf5\\xb1\\x03\\x0e\\xdd\\x4e\\x75\\x00\\x9e\\x91\\x16\\xc3\\xcd\\x0e\\x8b\\xdd\\xc2\\x99\\xb4\\x1f\\x1a\\x45\\xe7\\x84\\xef\\xa6\\x46\\xda\\xda\\x64\\x06\\x8e\\x92\\x48\\xec\\x98\\x8f\\x23\\x26\\x34\\xad\\x3d\\x5a\\xab\\x19\\x56\\x0e\\x83\\x0a\\x5b\\xd6\\x65\\x45\\x7c\\x94\\x29\\x5e\\x1a\\xf0\\x16\\x0f\\xbc\\xe2\\x72\\xef\\x48\\x45\\xdd\\xf0\\xc4\\xf2\\x4d\\x97\\x6f\\x51\\x86\\x90\\xea\\x1f\\x82\\xff\\x4d\\xfa\\x48\\x13\\x64\\x1a\\x67\\x59\\x8e\\xa9\\x84\\x01\\xe0\\xff\\x10\\xa0\\xe5\\x82\\xe2\\xb9\\x08\\x67\\xb4\\xe6\\x23\\x2c\\x34\\xea\\x49\\x9c\\x16\\x99\\x09\\xa4\\x41\\x26\\xf3\\x77\\xd8\\xcc\\x1c\\x11\\x90\\x58\\x66\\x34\\x0e\\xfd\\x1e\\x7b\\x07\\x7d\\xc7\\x45\\x6d\\x59\\xc9\\xb9\\x6a\\x12\\x4a\\xac\\x3b\\x33\\xbb\\x22\\x74\\x41\\xbb\\x7a\\x52\\xe6\\xc3\\x14\\x0d\\x7a\\x4f\\x67\\xca\\x05\\xbb\\xc9\\x3c\\x93\\x77\\x5b\\x92\\x91\\x19\\xa2\\x24\\xed\\x8f\\x39\\x00\\x58\\x20\\xf4\\x20\\xcc\\x6c\\x53\\x0e\\x61\\xe2\\x0a\\xdc\\xa0\\x1e\\x93\\x9c\\xc0\\x31\\xdf\\x49\\xcd\\xb1\\xec\\x8f\\xf4\\x93\\xc9\\xef\\xbc\\xad\\x34\\xc5\\x71\\x08\\xef\\xd7\\x64\\x55\\x89\\x66\\xfb\\x14\\x70\\xb0\\x74\\x5e\\x69\\x66\\x19\\x1a\\x9a\\x9e\\x44\\x58\\x1b\\x09\\xfa\\xf4\\x69\\xf9\\x51\\x53\\x72\\x03\\xd9\\x26\\xbc\\x8a\\x55\\xd0\\x80\\xa8\\x05\\x18\\x1d\\xd7\\x29\\x6e\\xd2\\x0a\\x81\\x82\\x68\\xf7\\x55\\xea\\xa6\\x6b\\x08\\x22\\x42\\xf4\\xd0\\x20\\xf7\\xcd\\x67\\x20\\x89\\x04\\x84\\xc0\\x1c\\x75\\x7f\\xe3\\x5d\\x87\\xb5\\xbc\\x90\\x6d\\xea\\xcc\\x2e\\x30\\x71\\xde\\x46\\x01\\xbc\\xf0\\xdd\\x6b\\x83\\x7c\\x43\\x31\\x06\\x04\\x7f\\xd8\\xec\\x9b\\xd0\\xe9\\x8c\\x9e\\xe8\\x06\\xf7\\xec\\x8c\\x5a\\x10\\xea\\x21\\x36\\xf1\\xf9\\x0f\\x90\\x0b\\x85\\x3f\\x95\\x3f\\x00\\xb0\\x76\\xbd\\x1e\\xbd\\x92\\x9d\\x08\\xa3\\x8b\\xec\\x68\\xd8\\x66\\x43\\x50\\x47\\xbc\\xb6\\x72\\x1e\\x06\\xb6\\x40\\x85\\xdc\\x05\\x58\\xc1\\xfa\\x85\\xa2\\xc8\\x3b\\x0c\\xaf\\x4c\\x81\\x60\\x84\\xf1\\x0a\\x4c\\x58\\x85\\x29\\x5b\\xca\\x15\\xff\\x7c\\x18\\xe5\\x96\\xc6\\x2c\\x92\\xee\\x99\\x21\\xa2\\x7c\\x29\\xd1\\x95\\xbd\\x28\\x22\\x13\\xff\\x36\\x60\\xb6\\xe7\\x54\\x6b\\x4e\\xaa\\x77\\x7c\\xe3\\x9f\\xc5\\xd2\\x04\\x84\\xc7\\x1e\\xd6\\xca\\x06\\xf9\\xb7\\x7a\\xb1\\xd8\\x72\\x39\\x3a\\xb2\\xd1\\x02\\x55\"},\n{{0xb2,0x98,0xad,0xf3,0x8a,0x67,0x08,0xf8,0xd1,0x8f,0xf1,0xed,0x96,0xbf,0xba,0xb4,0x21,0x54,0x0d,0x09,0x6c,0x4e,0x43,0x51,0xb9,0x22,0x09,0xb5,0xe6,0xaa,0xab,0x65,},{0x77,0x0e,0xdf,0x42,0xb8,0xa0,0x39,0xc6,0xca,0xb9,0xba,0x65,0xeb,0xfb,0x13,0x5a,0xbc,0x2d,0xa3,0x14,0xa4,0xc3,0x09,0xf4,0x6a,0x8f,0x32,0x5b,0x52,0xd0,0x65,0x93,},{0xe5,0x5f,0x8d,0x30,0x41,0x22,0xdc,0x17,0x5c,0xf0,0x27,0x46,0x74,0xfc,0x9d,0xed,0xfe,0xc2,0xb5,0xf8,0xa2,0xee,0xb1,0xe3,0xe7,0xf8,0xe0,0xdf,0xba,0x0d,0xac,0x2d,0x32,0xf4,0xe7,0x04,0xce,0x91,0xcd,0x59,0x91,0x84,0x13,0x3c,0x3b,0xf1,0x06,0x3d,0x2f,0xae,0x63,0xd7,0x3a,0xcc,0x57,0x72,0xd7,0x18,0xd8,0x11,0x83,0x31,0x86,0x02,},\"\\x9d\\xf4\\xd5\\xd7\\x56\\x5d\\x2c\\x05\\x22\\x62\\xdd\\x34\\xd6\\x00\\x7d\\x86\\xd9\\xc0\\xf0\\x7c\\x70\\x89\\xaf\\x61\\x19\\xe3\\x04\\xf4\\xd8\\x01\\x1d\\x7e\\xaa\\xd7\\x7b\\x3e\\xf7\\x0c\\xc2\\x80\\x84\\x7d\\x59\\xf2\\x97\\x20\\x2b\\x7e\\x18\\x61\\xae\\xf3\\x34\\xbf\\x38\\xde\\x14\\x74\\x0e\\x80\\x73\\xc9\\x55\\xa8\\x51\\xd2\\xcf\\x3d\\xad\\xc3\\xed\\xce\\x15\\xbe\\x49\\x0e\\xaa\\x84\\x5b\\xa5\\x53\\xfc\\x6e\\x87\\x46\\xe5\\x29\\x15\\xe6\\x55\\xaf\\x4b\\x86\\xc6\\x29\\xd4\\xc5\\x22\\x78\\x36\\x35\\xd4\\x64\\xa2\\x82\\x57\\x77\\xd8\\x9d\\x70\\x97\\x67\\x7e\\xf0\\xe5\\xee\\xae\\x38\\x53\\x7e\\xcb\\x65\\x6e\\x3b\\x28\\xdd\\x07\\x35\\x8f\\xd9\\xfb\\x2c\\xd4\\x62\\x51\\x72\\x86\\x65\\x9a\\xef\\xc7\\x9d\\x37\\x4d\\x1d\\x13\\xed\\x93\\x96\\x7c\\x53\\x0c\\xde\\xa4\\xf3\\x14\\xa0\\xf9\\x1d\\x62\\x89\\xb4\\xc7\\xa4\\x27\\x9b\\x6f\\x4c\\x4a\\xbc\\xa3\\x33\\x57\\xf6\\x9e\\xd8\\x4b\\x91\\x19\\x63\\x7a\\xdb\\x7c\\x18\\xe6\\x94\\xcb\\x3c\\x56\\xe7\\x36\\x37\\xda\\x91\\x07\\x35\\xd4\\x3c\\x38\\xaa\\x80\\x86\\x67\\x5a\\x06\\xad\\x37\\x0e\\x57\\x26\\x88\\x1d\\xa5\\xe1\\xa1\\xdc\\x61\\x44\\xd6\\xa6\\x2a\\xff\\x7f\\xb0\\xc3\\x52\\xd8\\x8d\\xc9\\x71\\xa3\\xd7\\x2d\\x30\\x71\\xe1\\x4b\\x47\\x42\\x53\\x56\\xaf\\x1b\\x01\\x92\\x33\\x53\\x82\\x61\\x45\\x1a\\x99\\xa6\\xcf\\x4a\\x07\\xce\\x9a\\xb1\\xc3\\x99\\x0d\\xe6\\xab\\x8d\\xe2\\x11\\x6c\\x75\\x61\\x05\\xc5\\x12\\xb7\\xa3\\xee\\xb3\\x15\\x7b\\x15\\x8b\\x32\\x1e\\x44\\x4e\\x80\\x6d\\x89\\x0b\\x38\\x90\\xed\\x9d\\xdc\\x86\\x9f\\x17\\x11\\x72\\x3b\\xb9\\x9a\\x72\\xbd\\xb9\\x23\\xd1\\x31\\xba\\x4e\\xdb\\xfb\\xb6\\xda\\xe9\\x9a\\x5c\\x7b\\x32\\x8d\\x31\\x0d\\xf9\\xa6\\xd1\\xdc\\xd8\\x59\\x18\\x96\\x28\\x33\\xe8\\x9e\\x20\\xf5\\xc5\\xe6\\x33\\x3a\\xc8\\x61\\x09\\x4a\\xe9\\xe7\\x99\\xc8\\x64\\x1b\\x9b\\xae\\xa1\\x1a\\x2e\\x0e\\xc2\\x34\\xbe\\x59\\x30\\xe0\\x28\\x80\\x85\\x9c\\xde\\xc0\\xd9\\x78\\x23\\x7c\\xbe\\xa5\\xc7\\xc3\\x2c\\x11\\x1b\\xaf\\xdd\\x4b\\xfb\\xff\\xe4\\xfb\\x34\\x85\\xef\\xfe\\xcd\\x51\\xbd\\x19\\x5a\\x71\\x40\\x4c\\xa5\\xb5\\x9a\\xfa\\x25\\x2d\\x7b\\x5f\\xf9\\xd0\\x30\\xf4\\x8c\\x6f\\xaa\\xdb\\xdb\\xa9\\x18\\xf2\\x1a\\x0c\\xd3\\x9a\\xf5\\x69\\x66\\xdc\\xcf\\xa2\\x5f\\xb5\\xa5\\xcf\\x9a\\x4b\\x26\\xa7\\xf5\\x44\\x1d\\xf6\\xe3\\x20\\xe3\\x4b\\x27\\x39\\x3d\\xe2\\xec\\xfb\\xd6\\x9a\\x15\\x94\\x90\\x9a\\x6c\\x68\\x5e\\xc6\\x45\\xfc\\xf3\\x04\\x8d\\x01\\x48\\xfa\\x38\\xd3\\xe8\\xa6\\x4d\\xc3\\xc2\\x1a\\xe4\\x4d\\xa7\\xe4\\x6a\\x5e\\xa7\\x93\\x6c\\x2b\\xa0\\x83\\x68\\x9a\\x78\\xca\\x3a\\xc6\\x0b\\x87\\xbe\\x6d\\x23\\xea\\x40\\xf5\\x96\\x15\\x83\\x74\\x28\\x42\\xe3\\x75\\x25\\xa4\\x9c\\x5f\\xe8\\xfd\\x15\\xd7\\xb0\\xc9\\xe8\\xfc\\xcd\\x07\\x93\\x6d\\x19\\x53\\x82\\x12\\xf7\\x37\\x3d\\xbb\\xf3\\xdf\\x7d\\x46\\xad\\xf9\\xd9\\xf5\\xdb\\x09\\x52\\x4c\\x65\\xb8\\x83\\xae\\x6f\\x6c\\xef\\xa2\\x4b\\x19\\xec\\x48\\xce\\x28\\xcf\\xa7\\x34\\xd9\\xbd\\x6e\\x77\\x83\\x7d\\x1a\\x14\\xd6\\xa1\\x9d\\x34\\x5b\\xfb\\xea\\x55\\x9e\\x7e\\x6b\\xfb\\x71\\xdd\\xad\\x83\\xcd\\x8d\\xee\\xab\\x68\\x7f\\xe7\\x3c\\x05\\x74\\x88\\xf8\\xf2\\xb3\\xe2\\xe2\\x6d\\x13\\x00\\x9f\\x4d\\x23\\xe6\\x61\\x9a\\x23\\xc0\\x69\\x2a\\xf7\\x66\\x69\\x21\\x7d\\x5e\\xbd\\x46\\x08\\x5b\\x39\\x88\\x90\\xe5\\xc9\\x1f\\xdb\\x4d\\xb5\\xba\\x40\\xe7\\x77\\x3d\\x51\\x8d\\x3c\\xf0\\x0c\\x0a\\x5b\\x5a\\x4b\\x0f\\x1b\\x85\\xd6\\x29\\x16\\xa5\\x9e\\x56\\x07\\xb7\\xb1\\xeb\\x80\"},\n{{0xe9,0xcf,0x16,0xd6,0x96,0xf6,0x3b,0x59,0xe5,0xe2,0x5c,0x9e,0xe2,0xd7,0x5b,0xb0,0x5e,0xd2,0xba,0xa5,0x91,0xa7,0x55,0x7f,0x9f,0xb1,0x29,0xcf,0x98,0x3d,0xe0,0xba,},{0x6d,0x1a,0xe3,0x85,0xe8,0x0a,0x39,0x55,0xe8,0xd0,0xc5,0x93,0xa8,0x1f,0x43,0x1c,0xd4,0x32,0x67,0x1e,0x78,0xcd,0xba,0xfe,0x83,0xfe,0x58,0xdb,0xcd,0xb9,0x85,0x60,},{0x81,0x12,0xac,0x37,0xea,0xfb,0x74,0x9d,0x3f,0x4a,0x1e,0xa1,0x48,0x43,0x79,0xdf,0x3e,0x38,0x3b,0x01,0x9c,0x12,0xde,0x85,0x15,0xe3,0x49,0xe4,0xf6,0xf9,0x98,0x63,0x2e,0x30,0x96,0x83,0x47,0xa1,0xd1,0x5b,0x09,0xda,0x2e,0xb8,0x00,0xb0,0x3d,0x81,0x9d,0x20,0x2b,0xd1,0x0a,0x6a,0x46,0x3b,0xb0,0x2b,0x36,0x6d,0x68,0x55,0xfe,0x0e,},\"\\xa1\\x0f\\xea\\x8f\\xc9\\x3e\\xcc\\xfe\\x2a\\x6b\\x78\\x26\\x07\\x95\\x63\\xad\\xf8\\xaa\\x9a\\x66\\x64\\x44\\x93\\x22\\x00\\xcc\\xa9\\x44\\x7d\\xd0\\x27\\xc5\\xc7\\x20\\x4e\\xa6\\x2b\\xf8\\xf5\\xe2\\xe3\\x91\\x45\\xac\\x39\\x48\\xab\\x3f\\x31\\x86\\x88\\x7b\\x30\\xbc\\x60\\x23\\x30\\x24\\xb4\\x83\\xf3\\xf5\\x19\\x03\\x6a\\x3e\\x94\\xc8\\xd7\\x51\\x0a\\x85\\x3a\\xc6\\xe2\\x0c\\x6e\\x52\\x6e\\xe3\\xcd\\xb7\\x6d\\xe6\\x63\\xf6\\x73\\x05\\xad\\x80\\xdf\\x23\\x42\\xc8\\x50\\x1b\\x4f\\x4a\\x8e\\xe3\\x66\\x5a\\x79\\x8f\\xc4\\x37\\xdd\\x81\\x4e\\x4e\\x47\\xe7\\xa4\\x66\\x89\\x0e\\x0f\\xfa\\x8f\\x51\\x0f\\x3e\\x6e\\x19\\xc9\\xc9\\x69\\xf7\\x0a\\x76\\xe5\\xcf\\x30\\x54\\xd1\\x7d\\xe4\\x59\\xac\\x8e\\xe9\\x95\\x50\\xbd\\x38\\x31\\x9f\\x36\\xe4\\x33\\x43\\x4a\\x92\\x6a\\xd6\\x8b\\x96\\x1e\\x0c\\xa1\\x0a\\xdd\\x4b\\xa9\\x92\\xb3\\x65\\x06\\x60\\xa2\\xc3\\xc2\\x6f\\x5d\\x74\\x0a\\x31\\xaf\\xb7\\x76\\x3f\\x54\\x2f\\x72\\x3b\\x8a\\x3c\\x92\\xd8\\xae\\x92\\xa5\\x67\\x76\\x4e\\xfc\\x70\\x53\\x03\\x12\\xba\\xab\\xdd\\x3f\\xbb\\xd5\\x27\\xfe\\x0f\\xcb\\xca\\x3f\\x6a\\x70\\x64\\xcd\\xde\\x18\\x56\\xe9\\x7a\\xb7\\x86\\xaf\\x7d\\x70\\x22\\xa9\\xd4\\x6a\\x33\\x8e\\x8e\\x17\\x54\\xaf\\xd9\\xad\\xac\\x85\\x6a\\x38\\xde\\x2a\\x4c\\x97\\x66\\xde\\xe8\\xdb\\xc7\\x09\\xb0\\x67\\x1a\\x6a\\x6e\\x6e\\x1e\\x5d\\x12\\x07\\x4d\\x22\\x24\\x5c\\xd7\\x3b\\xee\\xeb\\x1b\\xd8\\xec\\xfc\\x1e\\x85\\xa2\\x1b\\xde\\x25\\x3f\\x7c\\x46\\x5a\\xbc\\x1f\\xea\\xa9\\x61\\xc0\\xff\\x5c\\xff\\x2d\\x89\\x64\\x72\\xae\\x17\\xab\\x84\\x88\\xe3\\x3f\\xfe\\xfd\\xb7\\x2c\\x10\\x5e\\x20\\x4f\\x94\\x4a\\xda\\x51\\xee\\x13\\x98\\x1a\\x13\\x6c\\x0f\\x38\\x42\\x6e\\x3e\\x49\\xb0\\xe9\\x18\\x41\\xc3\\x27\\x94\\xd5\\x2f\\x13\\x35\\xdf\\xa6\\x37\\xf1\\x51\\xc7\\xe4\\x0f\\x9b\\x83\\x0a\\xed\\x53\\x9a\\xc5\\x73\\x1b\\x81\\xcd\\xe3\\x26\\x4d\\x22\\xbe\\xad\\x31\\xa6\\xcc\\x68\\xd1\\xa7\\x31\\x43\\xb5\\xba\\x48\\x16\\x13\\x92\\x32\\xf3\\xf7\\xf9\\x79\\x83\\xf4\\xec\\xba\\x64\\xc4\\x95\\x53\\xbe\\x9d\\x6d\\x94\\x3f\\x91\\xdf\\xe0\\x3d\\x1e\\xe8\\x61\\x8c\\xd4\\x0d\\x2f\\xb7\\x23\\x8a\\x31\\xd1\\xbc\\x38\\xe7\\x6a\\x55\\x1f\\x9e\\xee\\x22\\xe7\\x3a\\x27\\xd7\\xa4\\x8b\\x40\\x87\\x72\\xea\\x72\\xc3\\xed\\x63\\x7b\\xb4\\xb1\\x68\\xf9\\xd7\\xae\\xad\\x94\\xea\\x03\\xbc\\x11\\x10\\x99\\x01\\xc8\\x89\\x92\\x7d\\x51\\xcd\\xac\\xf9\\x62\\x12\\x59\\x62\\x55\\x99\\x79\\xd3\\xe4\\xc8\\xe3\\xb5\\xae\\x58\\x2f\\x2d\\xba\\xd4\\x99\\x88\\x02\\x85\\x6c\\x4d\\xf6\\x9e\\x8f\\xb5\\x49\\x17\\xe2\\xf3\\x6b\\xb6\\x7a\\x19\\xa2\\x6e\\x9a\\x9a\\x94\\x85\\xbc\\xe9\\x8d\\xbf\\xff\\x0d\\x2b\\x02\\xb9\\x37\\x7a\\x91\\x37\\xa7\\x34\\xe5\\x7b\\x5c\\xe6\\x65\\x05\\x30\\x17\\xe9\\x92\\x67\\x7a\\x1a\\xa0\\x79\\x24\\x0d\\x2c\\xf9\\x63\\xcd\\xf9\\xbf\\xea\\x8d\\x46\\x00\\x91\\x23\\x2d\\xaf\\x89\\x80\\x1f\\xd7\\x51\\x71\\xa6\\x19\\x5a\\x5c\\x04\\x68\\x15\\x91\\x4b\\xe1\\xf6\\x28\\x68\\x78\\x3d\\x6f\\x2c\\xf2\\x8a\\xf9\\x37\\x8d\\x6c\\x68\\x93\\xe7\\x5d\\xe6\\x41\\x11\\x1c\\x68\\x47\\x27\\xef\\xfa\\x31\\xb8\\xbc\\x9b\\x0a\\x01\\xdb\\x9c\\x9e\\x81\\xcc\\xd8\\xf4\\xd4\\xe8\\x75\\xd4\\xbd\\x90\\xd2\\x53\\xf5\\x89\\x89\\xa8\\xa5\\x2a\\x20\\x3a\\x77\\xa4\\x96\\xd6\\x97\\x98\\x6b\\x03\\x1e\\x9f\\x69\\x9b\\xc6\\xa1\\x6c\\xd5\\xf9\\xc3\\x60\\x18\\xeb\\xda\\xa3\\x6b\\xad\\x0e\\x01\\x4f\\x4c\\xf3\\xb4\\xb7\\x46\\x17\\x1b\\xf8\\x93\\x14\\xe8\\xb7\\x2c\\xbd\\x47\\xcc\\x61\\x6a\"},\n{{0x23,0x8a,0x6d,0x49,0x79,0x32,0x1a,0x14,0xa9,0x97,0x23,0x6f,0x45,0x85,0x04,0x6c,0xf7,0xa0,0x5c,0x0a,0xdc,0x6b,0xa1,0xfd,0xb1,0x9e,0xc2,0xa3,0x2f,0x62,0xbe,0xeb,},{0x0b,0x4b,0xa6,0x74,0xe4,0x01,0x66,0x5b,0x67,0x90,0xcf,0xda,0x08,0x07,0x04,0xcd,0x90,0xe2,0xf3,0xd3,0xef,0xab,0x25,0x3e,0xd8,0xdc,0xfb,0xd1,0x8e,0x40,0x67,0x89,},{0x29,0x42,0xf7,0x08,0xc0,0xed,0xe4,0xcb,0x0d,0xde,0xf1,0x3b,0x85,0xd7,0x1d,0x72,0x13,0xe0,0x38,0x3d,0xd2,0x94,0xf5,0x34,0x13,0x5f,0xd6,0x9c,0xaf,0xbc,0xfc,0x0e,0x33,0x09,0x0a,0x2a,0x0c,0xa3,0xfa,0x57,0x2c,0x72,0xcd,0xf5,0x59,0x2d,0xe9,0x03,0xb1,0x58,0x44,0x95,0xab,0x63,0x99,0x81,0x50,0xf2,0xb3,0x93,0xa3,0xb3,0x40,0x0c,},\"\\x97\\xcd\\x61\\x9a\\x22\\x51\\xed\\xa9\\x16\\x64\\x64\\x31\\xd4\\xcd\\x15\\x98\\xc2\\xd4\\x4d\\x06\\xaf\\x3e\\x48\\xbd\\x18\\xe3\\xde\\x7f\\xb4\\xbd\\x4f\\x78\\xe0\\x0a\\x69\\xee\\xab\\xde\\x3f\\x82\\x06\\x5c\\xfe\\xe6\\xcd\\x71\\x1f\\x07\\xd2\\x26\\x37\\x16\\x1f\\xf6\\x85\\xf6\\x5a\\x7d\\xdf\\x54\\x55\\x31\\x97\\xfd\\x31\\xc5\\xc6\\xb7\\x1d\\x9e\\x36\\x5a\\x94\\x1d\\xce\\x4c\\x3e\\x22\\x5d\\x19\\xcc\\x63\\x3a\\x7e\\x12\\x86\\x2c\\xd2\\x3e\\xbb\\x7c\\x74\\xa7\\x04\\x85\\x0f\\x76\\x1a\\xc0\\x24\\x1b\\xe5\\x17\\xce\\x7c\\x36\\x09\\x36\\xce\\x07\\x25\\x0d\\x9f\\x2e\\xb2\\x78\\x71\\x15\\xee\\xc3\\x77\\xe1\\x13\\x4d\\xc0\\x8f\\x44\\xeb\\x0a\\x2a\\x2a\\x27\\x16\\xf0\\x01\\x44\\xa4\\x9f\\x01\\x2a\\x57\\xb3\\xcd\\x06\\xef\\xeb\\x3f\\xae\\x92\\x0f\\x28\\x5c\\xff\\xd9\\xa4\\x01\\xa0\\xb9\\x86\\x59\\x4e\\x17\\xb2\\xc9\\xc8\\xfd\\xab\\x83\\x5d\\x9f\\x3f\\x5d\\x47\\x4b\\xe7\\x33\\xc1\\x92\\x5e\\xe6\\xf0\\x93\\x86\\x71\\x10\\x66\\xc3\\xfc\\xd6\\x45\\xee\\xb0\\xfb\\xe7\\x05\\x41\\x69\\xeb\\x70\\x9d\\x4a\\x3f\\x0d\\x16\\xf2\\x8a\\x1f\\xf5\\x06\\x6c\\x84\\x2b\\xc6\\x3e\\x35\\x9e\\x92\\x48\\x5b\\x38\\x75\\x7f\\xf4\\x6c\\x27\\xf7\\x9d\\x0c\\xdc\\xf0\\xe1\\x6e\\x97\\xe3\\xc7\\xb7\\xe2\\x17\\x8d\\xff\\xd2\\x70\\x28\\x2d\\xd6\\x12\\x05\\xd5\\x85\\x4d\\x84\\x1f\\x0e\\x3f\\xc0\\xe4\\x82\\xcc\\x1e\\xe4\\x85\\x52\\xcf\\xe6\\x58\\x93\\x5b\\x54\\x27\\xc3\\x66\\x23\\x0a\\xef\\x79\\xae\\xf4\\x02\\x1d\\x6f\\xab\\x5f\\x18\\x75\\xcc\\x84\\x9e\\x32\\x1a\\x75\\x50\\x0e\\x9e\\x1b\\xa5\\xdd\\x59\\x6b\\x43\\x8c\\xf8\\x8b\\x23\\x5b\\x01\\xa6\\x76\\x25\\xc4\\xbf\\x84\\xd0\\x72\\x4a\\xe6\\x88\\x0a\\x37\\x85\\xe3\\x3b\\xd9\\x23\\x5f\\xd0\\xf5\\x98\\x18\\x04\\xd2\\x1c\\xbd\\x63\\x3c\\xb1\\x80\\xf3\\x44\\x56\\x46\\x02\\x07\\xa2\\x90\\xa2\\x54\\xd9\\xfe\\x61\\x06\\x3d\\x40\\x63\\x4c\\xa3\\x87\\x2f\\x09\\x35\\xfa\\x28\\x32\\x87\\x95\\xca\\x41\\xb0\\x06\\xa2\\x11\\x1f\\xc5\\x93\\x2b\\x1e\\x77\\x9c\\xe9\\x66\\xcc\\x47\\xad\\xb7\\xc0\\xdd\\x98\\x73\\x33\\xba\\x75\\x29\\xa1\\xa4\\x99\\x6c\\xe9\\xf5\\x6e\\x05\\x19\\x81\\xfe\\x1f\\x55\\x3e\\x57\\x8f\\x43\\xc3\\xba\\x94\\xbe\\xac\\xc9\\x3c\\x3e\\x73\\x96\\x67\\xc7\\xa7\\xc6\\xfa\\x27\\xe1\\xe0\\x81\\x69\\x5d\\x20\\xba\\x70\\x5c\\x3f\\x10\\xb2\\x0d\\xf5\\x30\\xcb\\xb0\\xec\\xb8\\x74\\x56\\x50\\x11\\x09\\x68\\x70\\x19\\x31\\x84\\x52\\x78\\x5d\\x38\\xe7\\x66\\xb3\\xcd\\x35\\xb0\\x07\\xd7\\xe3\\xcf\\xe0\\xb2\\xcc\\xa8\\xaa\\x6e\\xf7\\x39\\x55\\x99\\xdc\\xb9\\xc4\\xd2\\x8b\\xcc\\x35\\xc7\\x6d\\xfc\\x35\\x34\\x3c\\xb1\\x34\\x8b\\xa3\\xe9\\x62\\xf1\\x0e\\xe8\\x6f\\x86\\xf5\\xb6\\xd4\\xca\\xe2\\xe8\\xc2\\xb1\\x85\\xe3\\xea\\xa1\\xae\\xb8\\x7b\\xcf\\xcf\\x2f\\xb7\\x6c\\xc7\\xfc\\xc6\\x89\\x50\\x71\\xb1\\x68\\xe8\\xb7\\xf6\\xca\\xa0\\xfd\\x63\\x98\\xe7\\x78\\xcc\\x07\\x91\\x2f\\xf5\\xd6\\xe6\\x10\\x21\\xa8\\xa5\\x9a\\xe0\\x35\\x21\\x60\\xf5\\x6d\\x54\\x88\\xfe\\x2f\\x2a\\xcc\\x94\\x03\\xda\\x9a\\x9f\\xfc\\x66\\x1c\\x1e\\x9d\\xc5\\xbe\\x88\\xc4\\x20\\xdb\\x0f\\xd7\\x7d\\x84\\x5d\\xc8\\xdd\\x9d\\x8e\\x58\\xf9\\x96\\x1b\\x79\\xaf\\xc6\\x86\\x24\\xba\\xa8\\x6a\\xa6\\x43\\xa8\\xa3\\xc7\\xed\\xf7\\x1d\\x55\\x3c\\xc0\\xd3\\x22\\x4a\\x60\\x69\\xec\\x67\\x4f\\x52\\xda\\x29\\xa1\\xcb\\x60\\xc4\\x19\\x23\\x01\\xa2\\x43\\x47\\xa8\\xaa\\x83\\x26\\x26\\x9e\\x0a\\x14\\x78\\x0c\\x95\\x83\\xcd\\xff\\x51\\x59\\x27\\xfd\\x5b\\xef\\x52\\x8f\\x9d\\x23\\x78\\x7a\\xeb\\x80\\x3d\\x70\\xeb\\x91\\x6b\"},\n{{0x59,0xd5,0x01,0x39,0x3d,0xc5,0x99,0x97,0x23,0x81,0x07,0x06,0xfa,0xd7,0xd6,0xef,0xd1,0x63,0xc4,0x47,0x10,0xc7,0x41,0xc1,0x85,0xc2,0x7e,0x04,0x25,0xe3,0xc0,0x5b,},{0x82,0x65,0xd4,0x3c,0xfb,0x07,0x35,0xb5,0xd7,0x25,0x0f,0xcf,0x0f,0xcb,0xd1,0x54,0xbf,0xc0,0xee,0xcb,0x13,0xb7,0xad,0x93,0xb6,0xb0,0x29,0x40,0x58,0x8b,0x84,0x3b,},{0xe6,0x46,0xf1,0x64,0xcf,0xed,0x8c,0x2e,0x06,0x07,0x10,0xdc,0xfb,0xc3,0xe9,0xfa,0x5e,0xb3,0x96,0x37,0x68,0x13,0x19,0x01,0x84,0xe3,0x46,0xf5,0x2b,0xb0,0xba,0x57,0x46,0xcc,0xb6,0xb5,0x95,0x22,0xb1,0xaf,0xf9,0x83,0x0f,0x2f,0x98,0xb9,0xe5,0xda,0xfc,0xd8,0x32,0x07,0x78,0x83,0xc4,0x4e,0x8a,0x35,0x38,0x8f,0x71,0x8b,0xf4,0x0c,},\"\\x56\\x4e\\xd2\\x2c\\x17\\x2f\\x5c\\x3a\\xfb\\xb0\\xb9\\x5a\\xd2\\xfc\\x64\\xe4\\xbe\\x6d\\x4d\\xb1\\xeb\\xb8\\xd3\\x99\\xc4\\x3a\\x5e\\x16\\x04\\x8e\\x7f\\x87\\x32\\x18\\x1e\\x5d\\x0e\\xed\\x8e\\x63\\x8e\\xf2\\xa5\\x5a\\xa0\\xd7\\xb6\\x81\\xfe\\x02\\xbb\\x54\\x23\\xaf\\x94\\xbd\\x35\\x2d\\x3c\\x2d\\xde\\xc0\\xf8\\x47\\x60\\xa4\\x11\\x2b\\x4f\\xe0\\x17\\xcf\\xbc\\x50\\x2f\\x95\\x43\\xcf\\xa4\\x1f\\xb2\\xaa\\xe7\\x5a\\x3a\\x08\\x1f\\x8c\\x49\\x90\\x33\\xd1\\xfa\\xe5\\xd9\\xc5\\x0c\\xb4\\x4d\\xbc\\x63\\x60\\x5a\\x54\\x39\\x8f\\xbf\\x07\\x98\\x52\\xeb\\xa8\\x6f\\x2f\\xdf\\xc2\\x72\\xd0\\xc4\\x17\\x9d\\x7c\\x13\\xcb\\xc1\\xc2\\xa3\\xda\\x0b\\x82\\x84\\x5c\\xf1\\xa4\\x6e\\xbb\\xe3\\x1e\\x79\\xb6\\x00\\x97\\x33\\xc7\\xbf\\xe7\\xaa\\x4f\\x9f\\xfd\\x71\\x9c\\x77\\xdc\\x7d\\x74\\x8e\\x49\\x2e\\x14\\xee\\x5e\\x41\\x79\\xbf\\xa9\\xe6\\x49\\xcf\\x0d\\x89\\x53\\x41\\x86\\x38\\x5e\\xe9\\x94\\x10\\x05\\x1d\\x66\\x56\\xe6\\x23\\x43\\x8c\\xc7\\xb2\\xe7\\x07\\xe4\\x8c\\x84\\x91\\x55\\x49\\xae\\x8d\\x67\\xa3\\x06\\xc6\\x7b\\x10\\x6b\\x7a\\x25\\xf4\\x5f\\x8e\\x10\\xdd\\x7d\\xd3\\xea\\xac\\x31\\xf1\\x05\\x22\\x57\\xeb\\x6a\\x75\\x76\\xb6\\x85\\xcb\\x9e\\x6c\\x1c\\xd0\\xd7\\x3c\\x7a\\x3c\\xed\\x5a\\x8d\\xd2\\x73\\x08\\xae\\x00\\xf9\\x5e\\xab\\xda\\xe9\\xd1\\xc4\\xaa\\x89\\x34\\xe2\\x42\\x4c\\x93\\x28\\xa5\\x22\\x8f\\x4f\\x82\\xdd\\x4a\\x66\\x55\\x6d\\x82\\x17\\xc5\\xa2\\x2b\\x2b\\xeb\\x86\\xa2\\xa4\\x34\\x13\\xee\\x5e\\x10\\xf8\\x83\\xf2\\xcd\\x6c\\x2e\\x87\\x49\\xb5\\x50\\x88\\x42\\xec\\xae\\x5f\\xfc\\xcb\\x79\\x6d\\x96\\x33\\xe8\\x7e\\xf4\\xa9\\x6c\\x0d\\xf7\\xef\\x47\\xb2\\x83\\xd0\\x96\\x72\\x3b\\xa3\\x13\\x5b\\xad\\x75\\xb2\\xe1\\x9e\\xc0\\x4f\\x70\\xa4\\x78\\x42\\x8a\\xd5\\xd0\\xaa\\xc0\\xdd\\x2a\\xb9\\x90\\x59\\x13\\xe7\\xe5\\xad\\xe4\\x08\\x80\\x1d\\x5d\\x3c\\x54\\xd9\\xcf\\x7b\\x8f\\x0f\\x0c\\x5e\\xb0\\x54\\xc1\\x47\\x5c\\xc2\\x10\\xa2\\xc7\\x98\\xd8\\xbd\\x89\\x93\\x2f\\xf9\\xf3\\x60\\x42\\x18\\x58\\x05\\x3a\\x70\\x7b\\x8b\\xbd\\x32\\x05\\x5c\\x44\\xb2\\x07\\x12\\xa2\\x67\\x8a\\x9a\\x6a\\xf9\\xe3\\x6d\\x04\\xdc\\xff\\x44\\xf4\\x31\\xcf\\x19\\x30\\xcd\\x18\\xfc\\x93\\x5d\\x22\\x67\\x77\\x5c\\x69\\x09\\x67\\x25\\xed\\x89\\xa2\\x91\\xdd\\x60\\xe2\\x1a\\xc0\\xb0\\x12\\x87\\x34\\x07\\x29\\x92\\x82\\x3e\\xf8\\x7b\\x5e\\xfa\\x6c\\xc5\\xb0\\x50\\x17\\x7f\\x55\\xf4\\xce\\xc9\\x2a\\x08\\xa6\\x5b\\xca\\xdc\\xab\\x9a\\x41\\xc3\\x60\\x86\\x37\\x0b\\x7b\\x9d\\xd6\\x29\\x8a\\xc7\\xb0\\xae\\x6a\\x09\\xc9\\x71\\x0a\\xbb\\x46\\x76\\xa8\\xfc\\x87\\xa3\\x65\\x12\\x90\\x14\\x4b\\x6b\\x30\\xef\\x4f\\x6f\\xbe\\x5b\\x9a\\xd2\\x52\\x37\\xfe\\x06\\x05\\xe3\\xb9\\xf1\\x8a\\x77\\x18\\xac\\x9f\\xca\\x6f\\x32\\x5e\\xa5\\x5f\\x49\\xa8\\x07\\xfb\\x80\\xa2\\x40\\x2a\\xe1\\x34\\x23\\x08\\x0d\\x32\\x77\\x58\\x64\\x90\\x23\\x79\\x8d\\x57\\x28\\xe0\\xdc\\x64\\xac\\x88\\xa6\\xe2\\x94\\x5d\\xbb\\x3e\\x3f\\xfa\\x9f\\xdb\\x4c\\x7b\\x58\\xfb\\xa3\\xf5\\xfb\\xd6\\x7c\\x68\\x6b\\x29\\x71\\xbb\\xd8\\xba\\x4d\\x27\\x5d\\x57\\x3e\\xb7\\x96\\xeb\\x91\\x46\\x77\\x5d\\x8c\\xdc\\xd5\\xfd\\x3e\\xb5\\xa8\\x8e\\xa5\\xa9\\x30\\xec\\x32\\x44\\xe6\\xa3\\x7c\\x81\\xf6\\xa2\\x55\\x4e\\x5b\\xa7\\x87\\xf0\\xe4\\x53\\x19\\xfe\\x4b\\x8a\\x2f\\xfb\\xfe\\xd5\\x07\\x70\\xe7\\x82\\x7b\\x3e\\x7b\\xc2\\xb4\\x4c\\xe5\\x12\\xae\\x60\\x51\\xb6\\xf9\\xf1\\x39\\x31\\xea\\x6a\\xcc\\x09\\x6b\\x8d\\xcb\\x01\\x96\\xbe\\x42\\x24\\x84\\xdb\\x5f\\xcb\\x29\\x9d\"},\n{{0x83,0x9f,0xb1,0x32,0xe6,0x92,0x50,0xca,0x1a,0xd9,0x45,0x10,0x08,0x7f,0x92,0xce,0x06,0x87,0x69,0x21,0x3a,0x19,0xb2,0xa6,0xc8,0x94,0x90,0xf1,0xf5,0x78,0x80,0x7a,},{0xeb,0x58,0x66,0x19,0xb4,0x4a,0x15,0x37,0x9a,0xcc,0x46,0x21,0xa2,0xac,0x71,0xea,0x58,0x97,0x00,0x26,0xc2,0x8e,0x24,0x09,0xfc,0x1b,0xa2,0xbd,0x8b,0x23,0x6d,0x1d,},{0x66,0x43,0x7b,0x6b,0xc0,0x5e,0x75,0xdd,0x16,0x26,0xc3,0xc4,0xff,0x1f,0x72,0xe6,0xdb,0x38,0x1b,0xa1,0x59,0x09,0x48,0xf8,0xf1,0x6a,0xd4,0xd6,0x6e,0x59,0x91,0x65,0x9a,0xa8,0x44,0x05,0x56,0x8c,0xfb,0xc0,0xa7,0x7c,0x02,0x5e,0x59,0xe4,0x3f,0xd5,0x3a,0xb9,0xff,0xab,0xba,0x7b,0x25,0x8f,0x78,0x79,0x62,0x39,0xf9,0x0d,0x45,0x01,},\"\\xc5\\x72\\x32\\xfe\\x32\\xf1\\x1e\\x89\\x4b\\x43\\x7d\\x40\\x45\\x62\\x07\\xcc\\x30\\x6d\\xb4\\x81\\x69\\xb2\\x0e\\x07\\x81\\x10\\x3a\\xff\\xe8\\x02\\xf5\\xaa\\xbe\\x85\\x82\\x95\\x2c\\xa8\\xe9\\x57\\x45\\xe9\\x94\\x0d\\x53\\x5e\\x00\\xff\\x65\\xab\\x3c\\x64\\xbe\\xd3\\xd1\\x17\\x3a\\x0f\\x3d\\x70\\xce\\x4e\\xbe\\x2b\\x50\\xd0\\x48\\xbb\\x47\\x16\\x4d\\x2a\\x2c\\xd9\\xd9\\x5a\\x10\\xcf\\x0d\\x07\\x3e\\xd1\\xc4\\x1b\\x3d\\xe3\\x33\\x52\\x8e\\xe3\\x29\\x68\\x22\\x3a\\x0d\\x84\\x7c\\xad\\xbb\\x5b\\x69\\xf3\\x82\\x16\\x4e\\x9a\\x28\\xd2\\x3e\\xc9\\xbd\\xe9\\xa8\\x28\\xe8\\x77\\x1c\\x9e\\xb4\\x92\\x20\\xaf\\x54\\x18\\x55\\x08\\xaa\\x07\\x3a\\x83\\x91\\x95\\xf1\\x03\\xbc\\x2f\\x32\\xfe\\x04\\xf9\\x51\\xca\\x45\\xbf\\xbf\\x30\\xd2\\xfb\\x81\\x14\\x05\\x6a\\x73\\x6a\\xdd\\xf2\\x7e\\xcd\\x9a\\xf0\\xf6\\xe5\\xe9\\x7e\\x57\\x73\\xc4\\xfa\\x90\\x22\\x68\\xc3\\x2a\\x15\\x14\\x10\\x95\\x5f\\x3c\\x76\\xaa\\xe2\\x55\\x54\\x9e\\x0f\\x03\\x3f\\x89\\xe1\\xa7\\x8f\\x26\\x5c\\xba\\xb6\\xbe\\xb7\\x51\\x6d\\x4b\\xad\\xc4\\x9c\\xda\\x45\\x88\\x31\\x62\\x25\\xb4\\xc8\\x5e\\xa9\\xfa\\x99\\xc7\\xd6\\x76\\x6e\\x94\\x90\\xc4\\x9d\\xe5\\x9d\\xa7\\x17\\xf6\\x67\\x65\\x35\\x30\\x07\\x1d\\xd2\\xf0\\xc5\\x3e\\x31\\xd8\\x76\\x81\\x56\\xfe\\xb0\\x8f\\xaf\\x00\\xdb\\x0a\\x04\\x53\\x3d\\xf9\\x79\\x57\\xa8\\x4a\\xa4\\x6a\\xeb\\x7e\\x36\\xc0\\xb0\\xbe\\x69\\x01\\x89\\x46\\xf1\\x53\\x8a\\x6a\\xea\\x71\\xdf\\x53\\x6f\\x14\\x42\\xc2\\x44\\x4a\\x43\\xa0\\x43\\xd0\\x46\\xab\\xde\\x1a\\x78\\x2b\\x0f\\x4f\\x5c\\x6a\\xa7\\x20\\xaa\\x60\\xaf\\xed\\x94\\x7c\\x0c\\xee\\x47\\x7d\\xbe\\xc0\\x05\\x57\\xb3\\x72\\x12\\xd9\\x33\\x57\\xca\\x2b\\x6b\\x6f\\x82\\x71\\x5b\\xa0\\xe4\\x84\\xf6\\xda\\xf2\\xd0\\xb7\\xa9\\x8c\\x03\\x35\\x19\\xce\\x38\\x26\\x35\\x86\\x79\\x6d\\x5d\\x31\\xcb\\x2b\\xc3\\xd1\\x12\\x5b\\xc0\\xcc\\xd3\\x29\\xa5\\xc2\\x1f\\xd2\\x7a\\x21\\x8d\\xed\\x60\\x7a\\x0e\\x75\\x15\\xb5\\x71\\xf1\\x92\\xc3\\x3f\\x5f\\xba\\x51\\x4a\\xfe\\x4d\\x45\\x81\\x00\\xf3\\xcc\\xba\\x3f\\x38\\xeb\\x43\\x0b\\x4f\\xc8\\x8f\\xae\\xf9\\x99\\xfa\\x71\\xee\\xe4\\x88\\x22\\x89\\x03\\xbe\\x29\\xf2\\x4d\\xf8\\x1d\\xc9\\x11\\x04\\x4e\\x92\\x4c\\xda\\xa0\\x17\\xcc\\x7d\\x87\\xe5\\x6a\\x6c\\xba\\x87\\x60\\x85\\x9b\\xd6\\x3d\\xd2\\xd4\\xf5\\x81\\xb9\\x55\\xec\\x92\\x4a\\x49\\xaf\\xb4\\x7c\\xa0\\xd6\\x3e\\x78\\x26\\xfd\\xc7\\x12\\xb4\\x94\\x3b\\x73\\x9e\\x18\\x57\\x75\\x5a\\x33\\xc6\\x50\\x36\\x75\\xfd\\xde\\xae\\x06\\x27\\x06\\xe3\\x4f\\x74\\x4f\\xd9\\x32\\x64\\x8a\\x56\\x08\\xce\\x60\\x8a\\x61\\x99\\x57\\x83\\xf3\\x33\\x9c\\xa3\\xfe\\x10\\x7e\\x19\\x72\\x74\\x4b\\xf6\\xd4\\xed\\xaf\\xbf\\x47\\xce\\x02\\x1e\\x05\\x82\\x1f\\xb1\\x24\\xc7\\x08\\x39\\x30\\xe6\\x8e\\x6f\\x5c\\x32\\xd2\\xd9\\xfc\\x4a\\x88\\x4c\\x0b\\xc8\\x84\\x04\\xe4\\xcf\\xe3\\xc1\\xa2\\x42\\x0d\\x41\\x82\\x3a\\x38\\x5f\\xb3\\x28\\x8d\\xb6\\x5c\\x89\\x54\\x5f\\x6e\\x73\\xf0\\xd8\\x00\\x4b\\x2b\\xa1\\x2a\\x4e\\x07\\x72\\x75\\x23\\xef\\x08\\x56\\x70\\xda\\xff\\xaf\\x41\\xc2\\x8a\\x4c\\x11\\x57\\xbd\\xd2\\x45\\xe6\\x87\\x50\\xdd\\x20\\x0e\\x02\\x3a\\xf9\\x0c\\x67\\x56\\x1e\\x0f\\xe4\\xba\\x34\\x0c\\x43\\x3f\\x75\\x5e\\xef\\xab\\xd4\\xb0\\x39\\xbf\\xc3\\x23\\xdc\\x11\\xad\\xb7\\x5a\\xec\\xc4\\x48\\xa8\\x69\\xc7\\xf2\\xa5\\x8b\\x9d\\x86\\x17\\xc6\\x4b\\x8f\\x89\\xfc\\x58\\x3f\\x8c\\x94\\x8e\\x2d\\xf0\\x25\\x1a\\x6c\\x7d\\x8c\\x73\\x8c\\x3b\\x5a\\x42\\xb7\\x49\\xad\\x5e\\x8e\\x98\\x6b\\xd8\"},\n{{0xad,0xc1,0xe5,0x6c,0x3a,0xc9,0x4e,0x6c,0xda,0x04,0x11,0xcb,0xc3,0xce,0x2a,0xf1,0x28,0xd1,0x85,0xa2,0xa2,0x73,0xbd,0xb2,0xaf,0x8d,0x7e,0x50,0xfb,0x96,0xb5,0x26,},{0x5d,0xcf,0xec,0x1f,0x91,0x12,0x75,0x15,0x64,0xec,0xb6,0x07,0x15,0xeb,0xb2,0xc5,0x17,0xb5,0xec,0x37,0xb2,0x53,0x4f,0xd6,0x32,0x99,0x24,0x42,0x9b,0x7f,0xd5,0xc5,},{0xf0,0x2e,0x5d,0xbc,0xb6,0x87,0x04,0xaf,0xad,0x03,0xac,0xa8,0x10,0x61,0xdb,0xdb,0x99,0x85,0x70,0x04,0x9f,0x10,0xce,0x65,0x0e,0xc7,0xa2,0xef,0xf1,0x5c,0x79,0x3d,0xdf,0x5a,0x27,0x2c,0xb6,0x83,0xc2,0x2c,0x87,0x25,0x7c,0x59,0xbd,0xef,0x39,0xef,0xea,0x79,0xbd,0x67,0x95,0x56,0xea,0x15,0x05,0xed,0x00,0x36,0xcb,0x46,0x04,0x0c,},\"\\xd4\\xf9\\x59\\x47\\x4e\\x0b\\x89\\xe2\\xdc\\xd0\\x20\\x66\\x98\\x4f\\x88\\xd7\\x39\\xdd\\x11\\x34\\xa3\\x33\\x09\\xf0\\xa8\\xb7\\x80\\x2e\\xaf\\x01\\x33\\x03\\xc1\\x35\\x15\\xdf\\xeb\\x46\\x1e\\xa3\\xd2\\x48\\xe9\\x98\\xb9\\xa4\\xe5\\x4d\\xae\\x5b\\x00\\x19\\x0a\\x45\\xe7\\x0d\\xc6\\x7e\\x98\\xf3\\xd4\\xcf\\x90\\x6c\\x21\\x4d\\x4f\\x63\\x6d\\x29\\x52\\x92\\x5e\\x22\\xb1\\xa8\\x6a\\x1a\\xab\\xb3\\xa8\\x92\\xa9\\xf8\\xed\\x45\\x4f\\x39\\xc6\\x3d\\x35\\xb7\\x1e\\x87\\xa2\\xda\\x55\\xa8\\xe1\\x67\\xac\\x83\\xa8\\x66\\xad\\x16\\x7a\\x17\\xae\\xd1\\x83\\xc0\\x85\\x18\\xc1\\x5e\\x6b\\xe3\\x48\\x58\\xb4\\xce\\xe2\\xb8\\x42\\x73\\x14\\x76\\x0f\\xff\\xdd\\xd5\\x92\\x38\\x54\\xb1\\x74\\x7f\\x79\\x6e\\x1a\\x52\\x49\\xfb\\x30\\x44\\x89\\x4e\\xd6\\x46\\x82\\x9f\\x65\\x43\\x16\\xee\\x52\\xf4\\x01\\x0c\\x8d\\xd3\\x21\\xfa\\x1d\\xec\\x39\\x7e\\x50\\x14\\x5e\\xd9\\xe3\\x16\\x86\\xfd\\x52\\x03\\xf7\\x23\\x3b\\x8d\\xa7\\x80\\xac\\xaa\\x91\\xee\\x0b\\x5b\\x47\\x20\\x78\\x66\\xaa\\xd8\\x5f\\x83\\x7e\\x03\\xb4\\xe6\\xf6\\xde\\x8c\\x04\\xac\\xaf\\xd7\\x07\\xbd\\xc1\\xdd\\x45\\x50\\x0a\\xb5\\x64\\x80\\x1b\\xee\\x9a\\x58\\xec\\xe3\\x60\\xd0\\x04\\x82\\x8b\\xaa\\xf5\\x23\\xe2\\xf5\\xab\\x69\\x32\\x6a\\x03\\xaa\\xbe\\x01\\x08\\x78\\xfd\\x43\\xff\\xaa\\x56\\x87\\x22\\x44\\xd7\\x68\\x1f\\x16\\x18\\xe6\\x23\\xe3\\xd4\\x74\\xc7\\x3a\\xf8\\xb0\\x80\\xa6\\x18\\x21\\xa5\\x74\\xef\\x2f\\xd7\\x52\\xd2\\x3b\\x60\\x5e\\xc5\\x21\\xc1\\x9c\\x15\\x50\\xde\\x98\\x0c\\x09\\x4d\\x05\\xe0\\x23\\x8f\\x3e\\x00\\x8e\\x6b\\x19\\x5a\\xbf\\xdd\\x40\\x28\\xee\\x1e\\xe1\\xd6\\xc6\\x6a\\x76\\xf1\\x78\\xf0\\xb4\\x31\\xe4\\xaf\\x44\\xdd\\xcc\\xfc\\x52\\x90\\xed\\xff\\x36\\xec\\xe6\\x3e\\x83\\x85\\x56\\x70\\x13\\xf4\\x3a\\x2a\\xeb\\xb6\\x7e\\x3e\\xf4\\x06\\x30\\x8c\\x20\\x48\\x8a\\x76\\xd5\\x8a\\x21\\x4f\\x31\\x39\\xd9\\x83\\xb1\\x9a\\xfb\\x12\\xe3\\x28\\x36\\x07\\xfd\\x75\\x10\\x7b\\xd3\\x1f\\xeb\\x62\\x56\\x17\\x4b\\x7a\\x18\\xae\\xca\\xc9\\xf8\\x56\\x25\\x82\\x01\\x8b\\x0e\\x6d\\xe4\\x05\\x35\\xe3\\x5b\\xef\\x2b\\x56\\x25\\x53\\x88\\x51\\x29\\x39\\x75\\x62\\x90\\x0d\\x34\\x17\\xf9\\x8c\\xdd\\x1e\\x29\\xd7\\x31\\xff\\x48\\x93\\x3f\\x29\\x52\\x95\\x81\\x63\\xba\\x67\\xd5\\x95\\x61\\x81\\x1b\\x83\\x77\\x2b\\xd0\\x57\\x10\\xb6\\xe3\\xcc\\x04\\x34\\x60\\x99\\x37\\x50\\x72\\x23\\xab\\xb7\\x1a\\x6a\\x8c\\x83\\x8f\\xec\\xdb\\x1d\\x2d\\x37\\xc9\\x5d\\xc8\\x06\\xf6\\x5f\\x3f\\x96\\x63\\xd9\\x9f\\x06\\xe6\\xc0\\xf3\\xc3\\x2e\\x95\\xaf\\x1d\\xd7\\x08\\xe8\\x11\\x08\\x63\\x6a\\x26\\xb9\\x68\\xe9\\x83\\x39\\xc7\\x41\\x28\\xb6\\xcf\\x67\\x13\\x35\\x88\\x4a\\xc7\\x2f\\x75\\xb6\\x37\\x19\\x5e\\xa9\\xec\\xa0\\x53\\x60\\x89\\x96\\xc3\\x2e\\xd4\\x45\\x41\\x0f\\x67\\xfa\\x10\\x4b\\x39\\xf0\\xfd\\xf3\\xc9\\xb5\\xc6\\x15\\x7b\\x76\\x80\\x37\\x56\\xb2\\x7f\\x4c\\x3b\\xa1\\xb4\\x7f\\x32\\x85\\x76\\x24\\x8e\\x9b\\xc5\\x3e\\x7b\\x8a\\xb0\\xb2\\xed\\x97\\xc2\\xf9\\x99\\x8b\\xcc\\x7d\\xfe\\x39\\xe2\\x64\\xaa\\xd3\\x0c\\x6c\\xfe\\xf2\\xb5\\x55\\x3f\\xfb\\x5a\\x69\\x9a\\xa4\\xbd\\x0e\\xab\\xe4\\x38\\xce\\x05\\x22\\xcc\\x91\\xfe\\x4e\\x72\\xbf\\x7e\\xac\\xba\\x47\\x71\\xcc\\xf6\\x3a\\x37\\xaa\\xfc\\xad\\xbf\\xbf\\x99\\xdd\\x76\\xb8\\x5b\\x80\\xee\\x07\\x5d\\x3a\\x7d\\x1a\\x90\\xa5\\x5b\\x77\\x29\\xa5\\x41\\x6e\\x5b\\xe6\\x96\\xbf\\x9f\\xb7\\xf3\\x15\\x8c\\xfd\\xb5\\xcf\\xda\\xcd\\xde\\x81\\x72\\xee\\x1a\\xb9\\x48\\x6e\\x24\\xcc\\xea\\xd2\\x9b\\x45\\x7a\\xcf\\x43\"},\n{{0xdb,0x89,0xdf,0x6a,0x23,0xd8,0x90,0xb7,0xf0,0x02,0x60,0xe8,0x1f,0x4a,0xd9,0x8f,0xd0,0x94,0x40,0x36,0x51,0x31,0xe8,0x5e,0x22,0xc7,0x95,0x1a,0x18,0x7b,0x02,0x18,},{0xc9,0x67,0x63,0x67,0x2e,0xe4,0xa2,0xcc,0x5a,0x93,0xb6,0xa6,0x83,0xdf,0x9b,0x5d,0xe4,0xd9,0x38,0x6a,0x79,0x08,0x35,0x68,0x1d,0x12,0x17,0xd1,0x92,0x96,0xbd,0xc8,},{0x80,0xb7,0xfc,0x8b,0x6a,0xe6,0xee,0xce,0x81,0x66,0xb7,0xea,0x53,0x4c,0xb5,0xb2,0x14,0xc9,0xea,0x99,0x73,0x92,0x1e,0xd0,0x5d,0xe4,0x0c,0x78,0xe1,0x4f,0x16,0x2b,0x09,0xe9,0x78,0xca,0x6d,0x86,0xee,0x43,0x4d,0x98,0x4b,0x8b,0x00,0x70,0x40,0x9d,0xd2,0xad,0x11,0xb5,0x31,0x78,0xe2,0x39,0xda,0xb5,0xbc,0x39,0xc7,0xba,0x46,0x0d,},\"\\x54\\xc1\\xc5\\x11\\x1e\\x08\\xc9\\x82\\x45\\xba\\x4f\\x13\\x18\\xba\\x1d\\xb1\\xdc\\xc7\\x4d\\x14\\xa5\\xc9\\x8a\\xb9\\x68\\x9c\\xba\\x1c\\x80\\x2c\\x68\\xbc\\xfc\\x81\\xfd\\x87\\xff\\xc6\\x1c\\xaa\\x94\\x2f\\x66\\xd7\\xe5\\x15\\x7f\\x65\\x53\\x8c\\x7e\\x7b\\x33\\x17\\x04\\x84\\xb4\\xb6\\x54\\x3f\\x36\\x20\\xff\\x29\\x63\\x8b\\x64\\xd4\\xda\\xe7\\xb0\\x22\\x21\\xcf\\x77\\x83\\xf1\\x87\\xec\\x42\\x31\\xe6\\xb6\\x94\\x6d\\x82\\x76\\x20\\x74\\xf0\\x9c\\x32\\x78\\x1c\\x2f\\x38\\x46\\xde\\x3e\\x82\\x17\\xf6\\xe1\\xb6\\xe0\\xd2\\xb5\\x59\\x5d\\x74\\x2e\\x2c\\x4e\\x32\\x5a\\x28\\x41\\x92\\x40\\x44\\xdf\\xcf\\x12\\xb4\\x79\\xeb\\x69\\xf1\\xbb\\xd4\\x0e\\xab\\xdd\\xd1\\xff\\x54\\xa9\\x18\\x4d\\x36\\x6d\\xff\\x9d\\x8f\\x2d\\x86\\x3e\\x37\\x8a\\x41\\xf1\\x0c\\xd1\\xda\\xe9\\x22\\xcd\\x7f\\xbb\\x2a\\x54\\x4e\\x47\\xea\\xbf\\x47\\xca\\x0a\\x38\\xab\\xba\\x34\\x45\\x49\\x19\\xbb\\x9a\\x4e\\xf0\\x44\\xbf\\xb9\\x7b\\x70\\x8c\\x2f\\x74\\x28\\xd6\\x8f\\x9c\\x57\\xc0\\xee\\x7e\\x79\\x25\\xf7\\xa2\\xb5\\xc6\\xe7\\xdf\\x82\\xbb\\x26\\x80\\xc8\\x62\\xdc\\x7c\\xc6\\x8b\\x0f\\x54\\x53\\x0e\\x64\\xaf\\xe2\\x76\\x3d\\x9c\\x7b\\xaf\\x45\\xcc\\x6f\\xe6\\x12\\xd1\\xf7\\x82\\x77\\x39\\xc4\\x41\\x13\\x98\\x88\\x8f\\x73\\x67\\xc3\\xd4\\x37\\x79\\x07\\xac\\xc0\\x6a\\x06\\xf9\\x3f\\x88\\x72\\x26\\x79\\x8f\\x48\\xaa\\x54\\x64\\xf6\\x01\\xc2\\xc1\\xed\\xda\\x77\\xed\\xfe\\xb9\\xb9\\xb5\\xd5\\xf9\\xcb\\x6f\\xed\\x37\\x90\\x05\\x47\\x47\\x7f\\xca\\x1d\\x09\\xab\\x52\\xd6\\x3e\\x49\\x1f\\xeb\\x12\\xfd\\x6d\\xc8\\x05\\xa7\\x8c\\xee\\x3b\\xaa\\xde\\x43\\x52\\x98\\x20\\x61\\xde\\xa5\\xa2\\x65\\x3d\\xb8\\xe7\\x60\\x77\\x72\\xe8\\x34\\xb3\\xa5\\x05\\xc1\\x6d\\xd6\\xe7\\xc7\\x1b\\x91\\x1e\\x84\\x2e\\xba\\x92\\x5d\\x77\\xa3\\x3c\\x5c\\x57\\xce\\x11\\x84\\x09\\x80\\x78\\xca\\x2e\\x6a\\x3f\\x69\\xaa\\x6a\\x14\\x63\\x9d\\xc9\\x7b\\x4b\\x30\\xc9\\x9d\\xc4\\xfa\\x3e\\x2c\\xf6\\x3c\\x70\\x1c\\x30\\x6c\\x5e\\x25\\x3c\\x51\\x13\\x85\\x4c\\x18\\x5e\\xbc\\x8b\\x47\\x98\\xf6\\x8d\\x1f\\xd7\\x80\\x05\\x4d\\x3e\\xed\\x2f\\x39\\x4c\\x45\\x43\\x04\\x96\\x6b\\xdd\\xbd\\x12\\x28\\x08\\x34\\xec\\x9b\\x40\\xc1\\xe9\\x8b\\xc2\\xd9\\x8f\\x48\\x45\\xf6\\xeb\\x44\\xf2\\x53\\x15\\xee\\xdb\\x3b\\x79\\xff\\xca\\x41\\x80\\xc1\\xbd\\xdd\\x97\\xd0\\xc9\\xaf\\xfb\\xac\\x58\\x81\\x49\\x37\\x68\\x26\\x80\\x07\\x6f\\xe5\\xa3\\xba\\xbb\\x65\\xd2\\x8f\\x25\\x17\\x03\\x6c\\x0c\\xfb\\x42\\xf0\\x29\\x3e\\xb2\\xac\\xb1\\x39\\x49\\xfe\\x91\\xe0\\xad\\x06\\x78\\xaa\\x24\\x3d\\x77\\x34\\xa8\\x9d\\x99\\x78\\x70\\xbf\\x9a\\x6a\\x58\\x4e\\xd6\\xe6\\x28\\x16\\x3e\\x39\\xd8\\xaa\\x61\\x0d\\x46\\xb9\\x28\\x5b\\x9e\\x1d\\xd7\\xe8\\xf8\\x07\\xfd\\xf5\\xca\\x2b\\xbf\\x6d\\xe5\\xe5\\xe6\\x8a\\xf7\\xcb\\x7e\\xbd\\x43\\xec\\xce\\x22\\x7c\\xd7\\x0c\\x7b\\xf4\\xee\\x14\\x33\\xed\\xfc\\xfe\\x88\\x66\\x14\\x67\\x0c\\xdd\\x19\\x63\\x43\\xfb\\x91\\xe1\\x54\\x16\\xd2\\xf6\\xac\\xba\\xe3\\xea\\xdc\\x03\\x02\\x31\\xee\\x9d\\x2e\\xcc\\x52\\xa8\\x8c\\xe8\\xdc\\x7d\\x09\\x8e\\x7f\\xac\\x77\\x68\\x5b\\x4e\\xb5\\x40\\xe3\\x01\\x93\\x07\\x14\\x32\\x21\\xb8\\xef\\x77\\xf3\\x63\\x2c\\x89\\x3d\\x55\\x6e\\x0b\\xb7\\x43\\xa1\\x96\\x3e\\xc1\\x58\\x86\\xc8\\x54\\x5e\\x87\\xc9\\x5c\\xc8\\x25\\xf2\\x00\\xd0\\xf3\\xcf\\x4f\\x55\\xa3\\xd6\\x60\\xa5\\x36\\xa2\\x3a\\xef\\xcc\\x42\\x8a\\x43\\x20\\x34\\x85\\xee\\x84\\x34\\x2f\\x5c\\x00\\x1e\\xe8\\x40\\x4e\\x75\\x90\\x17\\x00\\x62\\x82\\xab\\x8b\\xa8\\x90\\x3e\"},\n{{0x00,0xe6,0xbb,0x17,0xaf,0x3c,0x2d,0xf6,0x52,0xb3,0x4f,0x9a,0xbe,0x19,0xf9,0x90,0x19,0x07,0x42,0x33,0x68,0x6c,0x71,0x14,0xe3,0xa0,0xed,0xf0,0x83,0x09,0x93,0x4f,},{0x7b,0x82,0x32,0xa6,0x6c,0xec,0x2f,0x91,0x5a,0xaa,0x79,0x51,0xd2,0x9d,0x2b,0x9e,0xe9,0x3d,0x32,0x1d,0x15,0xb2,0x03,0xc5,0x1e,0x61,0xe8,0xce,0x83,0xd1,0x87,0xf8,},{0x04,0xb3,0xb8,0x50,0x1e,0x39,0x6c,0x4a,0x78,0x8e,0x14,0xac,0x49,0xf6,0x17,0x4c,0xdb,0x5c,0x85,0x5e,0x65,0x12,0x03,0xcf,0x68,0xd1,0xef,0xa8,0x9a,0xa5,0x86,0x78,0xd4,0xd1,0xf3,0x03,0xa9,0x87,0x7a,0x37,0x86,0xd2,0x03,0xc3,0x55,0xb0,0x9d,0x52,0x86,0xc1,0xca,0x0d,0xf0,0x4a,0x89,0xaa,0x06,0xcc,0x3f,0x9d,0x0f,0xd3,0x05,0x04,},\"\\x06\\x32\\x81\\xe4\\x1e\\x8b\\xa9\\x70\\x3e\\xd0\\x9e\\xf3\\xbf\\x0e\\xa4\\x6e\\x4c\\xab\\xdd\\x6e\\xbd\\x76\\x9d\\x05\\xdc\\x04\\x5d\\x4f\\x99\\x0d\\x69\\xfc\\x55\\x41\\x30\\xa4\\xe6\\x1a\\xa2\\x1e\\x2d\\xe4\\xc9\\x2d\\xb4\\x8a\\x20\\xa3\\x7b\\x17\\x47\\xa7\\xea\\xc5\\xeb\\xb2\\x73\\x5a\\x89\\x38\\x19\\x7f\\x13\\x9f\\xad\\x14\\x97\\xb3\\x51\\xad\\x06\\x4c\\x0f\\x18\\xf8\\xfa\\xf1\\xfe\\x11\\xf6\\x39\\x79\\xa6\\x99\\x68\\xe2\\x4c\\xf9\\x1e\\x58\\xa3\\xab\\x03\\x26\\x69\\xe4\\xef\\xee\\x27\\x4f\\x96\\xb5\\x8b\\xe7\\xd9\\xe3\\x91\\xf3\\x6f\\xcf\\x07\\x09\\xb2\\xcb\\x2d\\x22\\x69\\x4a\\x6c\\xeb\\x17\\x24\\x69\\x45\\xeb\\xb3\\xbc\\x7f\\x0f\\x03\\xbf\\x0b\\x08\\xdc\\x96\\x26\\xe3\\xe7\\x15\\xc9\\x91\\x67\\x1d\\x53\\xeb\\xb9\\xae\\x83\\xa7\\xd0\\x8d\\x44\\xf6\\x36\\x35\\xc4\\x0f\\x8d\\x48\\x17\\xf5\\x8d\\xe9\\xeb\\x77\\xcb\\x25\\xb2\\xac\\xd6\\xde\\xf9\\x69\\xab\\x56\\x9e\\x97\\x4a\\x8a\\xda\\xc1\\x1a\\x86\\xb5\\x8f\\xe6\\xc1\\x00\\x67\\x49\\x9f\\xc9\\x14\\xdf\\xf5\\x69\\x02\\xcb\\xc3\\x93\\xa7\\x1c\\xc2\\x5e\\x8f\\x05\\xc0\\x3c\\x94\\xf1\\x3b\\x84\\xa2\\xb0\\x1a\\x58\\xc1\\x0d\\xbc\\xbb\\x60\\xeb\\xce\\xe4\\x87\\xf5\\x29\\x17\\x74\\x66\\x29\\x99\\x25\\xda\\x50\\xe2\\xda\\x5b\\x55\\x57\\xf0\\xae\\xee\\x3f\\xd7\\xf4\\x7b\\x5c\\x2e\\x3f\\x84\\xce\\xfa\\xb4\\x67\\x96\\x91\\x39\\x4d\\xd1\\x22\\x30\\x3b\\xb7\\x69\\xaf\\xb3\\xad\\xfe\\x83\\x58\\xb0\\x2b\\x67\\x92\\x73\\xb3\\x5a\\xbd\\xc6\\x40\\x25\\x76\\xcc\\xce\\x5e\\x10\\x44\\x2a\\x13\\x7e\\xf9\\x45\\x69\\x39\\xb2\\x89\\xef\\x4e\\x41\\x7b\\x1c\\xc6\\x23\\x9f\\x7c\\xee\\xdd\\x68\\xf1\\xa8\\x26\\x41\\x80\\xe0\\x68\\xb4\\x96\\x6f\\xd6\\x7f\\x2b\\xad\\x6e\\xdd\\x8b\\x4a\\x1e\\x8d\\x2b\\x54\\x2d\\xaf\\x26\\xdb\\x83\\x1f\\x1f\\xb5\\x1e\\xb8\\x6f\\xfa\\xde\\xcc\\xd9\\xac\\x3d\\x66\\x4f\\x34\\x6e\\x7d\\x04\\x6c\\x33\\xa5\\x72\\x84\\x1e\\xa8\\x33\\x4e\\x7f\\x2f\\x41\\x7a\\x05\\x71\\x2a\\x9e\\x33\\x4e\\x48\\x7f\\xd3\\xae\\x17\\x54\\x55\\x16\\x2f\\xe8\\xf4\\x9c\\xc0\\x26\\xa6\\x40\\xc6\\xcf\\x93\\xcf\\x58\\x87\\x50\\x52\\xf4\\x1c\\xc9\\x82\\x06\\x15\\x65\\x3e\\xa2\\xd0\\x84\\xc8\\x96\\xea\\xfe\\x5a\\xd4\\x72\\x55\\x79\\x65\\x30\\x84\\x99\\x4f\\x95\\x6d\\x5c\\x94\\x59\\x0a\\x24\\x09\\x58\\x1b\\x6f\\xc8\\x6e\\x40\\xaa\\x58\\xbf\\x6e\\x60\\x57\\xa6\\xf9\\x0a\\xf3\\xb8\\x7a\\xea\\xf3\\x29\\x94\\xa5\\x5a\\x54\\xf7\\x9b\\xdf\\x3d\\xbb\\xf5\\xce\\x0f\\xf8\\x12\\xe4\\x86\\xb0\\x54\\x5d\\x9e\\x9c\\x2b\\x0b\\xce\\x0d\\x4c\\x36\\x47\\xb1\\x82\\x72\\x62\\x49\\x88\\x34\\xe1\\x98\\xa3\\xec\\x70\\xf3\\xb0\\x3d\\x6a\\xad\\x2c\\x49\\xeb\\x80\\xb5\\xe2\\x05\\x14\\x39\\x22\\x5f\\xd9\\xce\\x94\\x68\\xd6\\x9a\\xf7\\x0a\\x26\\x2e\\xe3\\xb8\\xb6\\x2a\\x8e\\x5b\\x41\\x34\\x6d\\xa3\\x01\\x2f\\xfb\\x45\\x81\\x6b\\x7b\\xec\\xb0\\xe7\\x9a\\x60\\xbf\\xf7\\x16\\x36\\xa3\\xe4\\xbb\\x1b\\x35\\xca\\xf1\\x95\\xf5\\x51\\x17\\x28\\x0f\\x78\\x72\\x17\\xb3\\xca\\xa2\\xe7\\x93\\x72\\x6f\\xc5\\xa7\\x4d\\x11\\x60\\xdc\\xad\\x86\\x89\\x04\\xc1\\x97\\x38\\x11\\x34\\xed\\x8c\\x3d\\xb3\\x75\\x0b\\x75\\x56\\xf6\\x9c\\xcc\\xe1\\x8b\\x77\\x38\\x8b\\x58\\xc5\\xb8\\x11\\x3e\\x59\\x0a\\xd6\\xea\\xc5\\xb9\\x1e\\xce\\x5a\\x67\\x05\\x02\\x5c\\x80\\x35\\x3c\\xeb\\x1e\\xd8\\x4a\\xaa\\x1c\\xc4\\x8a\\x41\\x6b\\xc0\\x16\\xae\\xf1\\x73\\xbb\\x80\\xb2\\xba\\x28\\xc5\\x79\\x60\\xc6\\xb0\\x11\\xb6\\xb4\\x95\\xa3\\xf3\\x31\\x1e\\x79\\xfe\\x46\\xbd\\xb6\\xa4\\xc3\\x81\\xfb\\x9d\\xc4\\x62\\x8b\\x0a\\x83\\x02\\x35\\x58\\xf1\"},\n{{0xfb,0xdd,0xf6,0xe6,0x1e,0x20,0xd8,0x06,0xe5,0x59,0x17,0x75,0x6d,0xe6,0x0d,0x0c,0x9a,0x99,0x97,0x6f,0x64,0x67,0x16,0xff,0x2f,0xf1,0x31,0x2c,0x54,0xdd,0x97,0x1d,},{0xac,0x53,0x8f,0xab,0xad,0x43,0x80,0xe6,0x0e,0x97,0x71,0x26,0xe7,0x69,0x5e,0xed,0xa5,0x41,0x7d,0x85,0xf7,0xd2,0x3d,0xb2,0x1b,0xd0,0xad,0x11,0x11,0x16,0xf0,0x5d,},{0x8c,0x9b,0x77,0xaa,0x0f,0x1c,0xf5,0x2e,0x8f,0x7a,0x91,0x8b,0x21,0xb4,0x68,0xe6,0x23,0x35,0x91,0x1b,0xc5,0x93,0x06,0xb3,0x0c,0xe7,0x7b,0xf6,0x92,0xc1,0x10,0x59,0xb0,0xee,0x9c,0x5d,0xaa,0xf6,0x83,0x9b,0xb8,0x13,0x73,0xc6,0x1d,0x28,0xd0,0x72,0x70,0x2b,0x59,0x5e,0x4d,0xce,0x28,0xcb,0x99,0x38,0x22,0xb2,0x48,0x13,0x04,0x0b,},\"\\x3e\\x99\\x53\\xca\\x55\\xd0\\xcd\\x23\\x3b\\x98\\x83\\x3e\\xb1\\xbc\\x79\\xd3\\xb5\\x5f\\x18\\xc8\\xfa\\x1c\\x42\\x02\\x7b\\xca\\x25\\x57\\x91\\x53\\xb5\\x5d\\xa0\\xc5\\xa1\\x78\\xb8\\x38\\x69\\x56\\xd9\\xa5\\x41\\x83\\xb2\\x4c\\x91\\xdc\\x4b\\xe9\\x94\\x84\\x72\\x37\\xd3\\x66\\x6a\\x0a\\x01\\x30\\xfe\\x19\\x92\\x4b\\xc0\\xee\\x50\\x89\\x6c\\x35\\xa2\\xe1\\x6a\\x29\\xe2\\xe2\\xac\\xf1\\x80\\xbd\\xd9\\x37\\x93\\x54\\x68\\x7f\\x0e\\xce\\x68\\x82\\xd2\\x6e\\x98\\x0e\\x68\\x66\\x98\\x04\\x3b\\xb1\\xb0\\x12\\x13\\xaa\\x64\\x4a\\x4f\\x8d\\x61\\xf9\\xb6\\x13\\xe6\\x2e\\xaa\\x35\\x76\\xce\\xa0\\xb0\\xb8\\x3f\\x05\\xce\\x25\\x58\\xff\\x63\\x56\\x49\\x5c\\x45\\xed\\xe4\\xa8\\xf6\\x5b\\x81\\x4a\\xb8\\xa7\\x30\\x94\\x03\\xdf\\xd4\\x3c\\xbe\\xa9\\x08\\x93\\x93\\x9b\\x78\\x00\\xaa\\x00\\x23\\x2b\\x5f\\x6b\\x77\\x14\\xeb\\xdc\\xd8\\xbc\\xf3\\x4a\\x5a\\x7e\\x82\\x2a\\xc7\\xb1\\xb0\\x99\\xac\\x61\\x5f\\x13\\x5f\\x8c\\x35\\x1d\\xc4\\x1a\\xe5\\xf6\\x6d\\x5f\\x9c\\x26\\x00\\x45\\x4c\\xa0\\x1c\\x00\\x9b\\xa6\\xde\\x04\\x16\\x2a\\xe5\\xf1\\xf2\\x70\\x89\\x3c\\xa3\\x90\\x7a\\xff\\x7f\\x78\\xe0\\x33\\x96\\xe3\\x2b\\x62\\x2f\\xf3\\x40\\x53\\x7b\\xf1\\x23\\xe5\\x59\\x95\\xe9\\x20\\x96\\x09\\x33\\x0b\\x2e\\xee\\x51\\x12\\x74\\x84\\xa4\\x0e\\x25\\x07\\x00\\x82\\x3f\\xeb\\x0b\\xc9\\x7b\\xb5\\x09\\xff\\x73\\x26\\x75\\xde\\xc3\\x2e\\xcb\\x63\\x5e\\xd9\\x2c\\x7d\\x78\\xfe\\x30\\x50\\x20\\x0c\\xf1\\xd9\\x41\\xd6\\xb3\\x88\\x80\\x0a\\x84\\x19\\xd9\\x6a\\x59\\x5e\\xce\\xd5\\xec\\x4e\\xfd\\xcb\\x6f\\x98\\x7f\\x54\\x72\\xa5\\xc4\\x30\\x58\\xd3\\xa3\\xa7\\xbb\\x56\\xd7\\x98\\x03\\x65\\xed\\x43\\xdb\\xc2\\xbe\\x48\\xf1\\xd1\\x8c\\xe7\\x6a\\x89\\x18\\x54\\x26\\xfd\\x5c\\x69\\xdf\\x7e\\x92\\x91\\xab\\x78\\x23\\xc2\\x3a\\x76\\x94\\x1e\\xd3\\x83\\x6a\\xac\\x7b\\x58\\xc0\\xd5\\xfb\\x6b\\x63\\x6c\\x42\\x47\\x1a\\x4d\\x17\\x03\\x51\\x6f\\x03\\xe9\\x35\\xf3\\x1f\\x19\\x54\\x50\\xe5\\x37\\xb2\\xa0\\x7d\\x54\\x5b\\xa4\\xb6\\x8a\\xfb\\x06\\x38\\xc6\\x5b\\xb0\\xff\\xaa\\x0c\\xfd\\x69\\xd7\\x10\\x48\\x19\\x79\\x66\\x19\\xd4\\x83\\xa0\\x24\\x5b\\x4f\\xd9\\x01\\x7f\\x62\\xa7\\xd3\\xa5\\xfc\\x3b\\x72\\x89\\xd7\\x57\\x35\\xf2\\x87\\xca\\x0a\\x95\\x1a\\xd5\\x83\\x44\\xb2\\xab\\x7d\\x7d\\xf8\\xdb\\xd7\\x92\\x2a\\x5a\\xbb\\x8d\\x7c\\x2e\\x79\\x14\\x7e\\x6d\\x36\\xee\\x31\\xf9\\x30\\x47\\x3b\\x07\\x27\\xdc\\xfd\\x58\\xd6\\x44\\xd7\\xd7\\x0a\\x0e\\xd3\\x1c\\xa6\\xa1\\x3e\\xd9\\xdb\\xd2\\x24\\x49\\x2e\\xfd\\xa1\\x9e\\x4f\\x8e\\xed\\x46\\x18\\x0f\\xe7\\x50\\xf0\\x7b\\xbe\\x8e\\x99\\x85\\x4d\\x13\\xf5\\x8b\\xa9\\x68\\xce\\x38\\x59\\xd6\\x11\\x89\\xcd\\x2b\\x66\\x7f\\x3b\\x2d\\x06\\x65\\xb5\\x74\\xc4\\xba\\xc1\\x9d\\x9e\\x37\\xe5\\xb7\\xa8\\x0e\\xb3\\x34\\xe3\\x68\\x10\\x53\\x0a\\xa5\\xd1\\x76\\x63\\x93\\xf8\\x11\\x5a\\x52\\x09\\x0c\\x91\\x82\\x34\\x28\\xc8\\x97\\xa5\\xf3\\x5e\\x12\\xa8\\xaf\\x2c\\xd4\\xfb\\x13\\x90\\x7c\\xa6\\x60\\x3a\\x4f\\x76\\xf5\\xc2\\xe0\\x23\\x74\\xa8\\xdc\\x3a\\x47\\xc1\\xbe\\x6f\\x1d\\x1c\\x8e\\xbc\\x59\\xb3\\x6d\\x1c\\xfa\\x0a\\xb2\\x3e\\x9b\\x0a\\xe9\\xb0\\xe6\\x37\\xee\\xed\\xb9\\xc6\\x6b\\xea\\x62\\xdc\\x63\\x0c\\xde\\xfa\\x71\\x82\\x39\\x61\\x7e\\x31\\x18\\xe5\\xb6\\xde\\xb7\\xc2\\x94\\x47\\x52\\x82\\xe8\\xab\\xe2\\x4f\\xd5\\xa5\\x4b\\x78\\x6f\\xff\\x90\\x28\\xc5\\xa0\\x33\\x38\\x4e\\x4b\\xc8\\x01\\x4d\\xec\\x8d\\xa1\\x00\\xa9\\x4b\\x17\\x8e\\xf8\\x8e\\xc3\\x57\\xb6\\x6d\\x2b\\x90\\x98\\xab\\x64\\x79\\x16\\x96\\xb1\\xa6\\x6b\"},\n{{0x8a,0x55,0xe7,0x7b,0xb0,0xc8,0x74,0x0b,0x8c,0x2e,0x8d,0xdf,0xdf,0xdb,0x40,0xf2,0x7e,0x45,0xfe,0x81,0xfe,0x45,0x71,0x11,0xbf,0x1c,0x87,0x30,0xea,0xb6,0x16,0xb4,},{0x9f,0xf1,0xfd,0x0c,0x50,0xeb,0x24,0xf9,0x9f,0xe2,0xf7,0x71,0x1d,0x52,0x87,0x2d,0xfc,0x90,0x03,0x80,0xdd,0xdc,0xdb,0x86,0xfe,0x6f,0x4a,0x5f,0x35,0x0a,0x87,0x43,},{0x8a,0xae,0xba,0x53,0x5c,0x51,0x1c,0x31,0xd3,0xf8,0xe9,0x5c,0xb0,0x77,0xa9,0xa7,0xec,0x7d,0x08,0x44,0x1e,0x53,0x42,0xa6,0xab,0xe0,0xbf,0x2a,0x5d,0x7f,0xc9,0x30,0xb4,0x3d,0xac,0x3d,0x1e,0x8e,0xf2,0xcb,0x03,0x45,0x52,0xeb,0x4d,0x08,0x39,0xbc,0x8b,0xf2,0x94,0x55,0x1d,0xd2,0xd8,0x0c,0x53,0xfd,0x62,0x79,0x35,0x1a,0xc2,0x0c,},\"\\x20\\xfb\\x41\\x4e\\x26\\x4a\\x95\\x47\\x84\\xf1\\x12\\xba\\xce\\x7e\\x04\\x74\\xb3\\x9c\\xb3\\xc9\\xe5\\x3d\\xee\\x0a\\x21\\xf4\\xcf\\x6d\\x4a\\x99\\xb9\\x34\\x7d\\xdf\\xfb\\xe2\\x81\\xa6\\xc2\\x30\\xa7\\x5d\\x63\\xa7\\x2f\\xd0\\x5f\\x6d\\xb5\\x3e\\xa7\\x01\\x4e\\xf7\\x70\\x9d\\x18\\xff\\x97\\x0f\\x48\\x5f\\xe8\\x3b\\xa1\\xd3\\x71\\x47\\x33\\x8a\\xde\\xd6\\xda\\x4c\\xfd\\xac\\xc1\\xe6\\x9d\\x2f\\x3e\\x0e\\xf3\\x62\\xf4\\x7b\\x5b\\xcf\\xb7\\x8a\\x1e\\x17\\x9e\\xb5\\xc5\\xb1\\x06\\xc8\\xd8\\x2a\\x0a\\x0b\\x29\\x0d\\xf0\\x75\\xab\\x27\\x43\\x69\\x29\\xcd\\xe6\\x56\\xf0\\x23\\x09\\xf9\\x57\\x50\\xeb\\x67\\x65\\x83\\x26\\x2e\\x5f\\x2f\\x69\\xf0\\xff\\x72\\xa8\\xe0\\x57\\x26\\x63\\x82\\x26\\x92\\x05\\x31\\x87\\x40\\xbf\\xe0\\x6b\\xf5\\xc2\\xcb\\x45\\x33\\x90\\x8e\\xf9\\xf9\\xf2\\x86\\x9a\\x75\\xb9\\x53\\x35\\x79\\x82\\x0e\\x3b\\xc0\\xca\\xff\\xd6\\x46\\x17\\x1c\\x82\\x86\\xc3\\xa4\\xab\\xa1\\xff\\x09\\x15\\xd9\\x36\\x11\\x20\\x5e\\x23\\x0f\\x39\\xff\\x4c\\x4c\\xaf\\x3f\\x33\\x3e\\x75\\x3f\\xce\\x2b\\x71\\x21\\x3e\\x53\\xd6\\x08\\x41\\x5e\\xe1\\x7f\\xd4\\x82\\x12\\xee\\xdd\\x88\\x40\\xf3\\x37\\x10\\x1e\\xf0\\xd0\\xb6\\xf7\\xbe\\x4b\\xff\\xc0\\x6e\\xee\\xfe\\x80\\x66\\xdd\\x27\\xa0\\x54\\x1a\\x46\\x88\\x31\\xac\\xdd\\xc4\\x90\\x2e\\x2f\\xef\\xef\\xbe\\xd1\\x9c\\x30\\x8e\\x56\\x21\\xe0\\xbf\\x46\\xbc\\xd5\\x38\\xaa\\x13\\xfa\\xf0\\x4d\\x38\\x07\\x59\\xc0\\xe1\\x07\\xe9\\x12\\x00\\x18\\x39\\xdf\\xd0\\xb6\\x35\\x44\\x0e\\x96\\x38\\xf5\\x37\\x7c\\xa8\\x45\\x0f\\x35\\x0c\\x01\\x12\\x9e\\xe3\\x37\\x64\\x41\\x5c\\x53\\xcb\\x2f\\xfb\\xf9\\x68\\xdf\\x78\\xb7\\x42\\xfd\\x06\\x65\\xe7\\x8a\\x34\\xab\\xf4\\xde\\xcd\\x1f\\xd3\\x86\\x28\\x9a\\x13\\x64\\xe6\\x45\\x55\\xee\\xc5\\x8b\\x0a\\xf9\\xa4\\xcd\\x6b\\x36\\xd1\\xd5\\xc6\\x11\\xa2\\x84\\x6d\\xfb\\x55\\x89\\x34\\x4b\\xbb\\xb0\\x25\\x60\\x24\\x1b\\x74\\xb9\\x93\\xa2\\x5b\\xef\\x50\\xfb\\x1e\\x73\\x19\\x08\\x6e\\x6a\\x23\\x98\\x63\\x00\\x83\\x4e\\xd2\\xdb\\xa9\\x8a\\x16\\x87\\x21\\xc2\\xf7\\x84\\xdf\\xb8\\xd3\\x80\\x0d\\x06\\xa0\\x54\\xae\\xf1\\x4d\\x17\\x72\\xb6\\xc5\\x74\\xaf\\x25\\x63\\xd1\\x93\\xef\\x2e\\x51\\xbd\\xc6\\x2d\\x2a\\xbc\\xe2\\xee\\xbe\\xad\\xa7\\x92\\x03\\x49\\x8e\\x66\\x86\\xc2\\x87\\xf3\\x7b\\xd8\\x8a\\xeb\\x16\\x6f\\x7d\\xff\\xc3\\xe6\\xad\\x02\\x94\\x11\\x7e\\xf6\\xee\\x9d\\xa8\\x47\\x9e\\xd8\\xa1\\x6f\\xe9\\xbe\\x24\\x6d\\x26\\x68\\x04\\xf2\\x96\\x58\\xdb\\x75\\xe7\\xa0\\x87\\x3b\\xe7\\x1d\\xc7\\xd4\\x07\\xe3\\x9f\\xab\\xd6\\x6f\\x98\\x8b\\x45\\x74\\x77\\x42\\x7f\\xad\\x81\\x30\\xf0\\x9a\\xb6\\x65\\xf1\\x59\\x7c\\x90\\x46\\xe7\\x37\\x3a\\xf9\\xa8\\x35\\x2a\\x86\\x83\\x0c\\xb9\\x2a\\x80\\x44\\x88\\x70\\x0f\\xe6\\x89\\x19\\x24\\xfe\\x2a\\x72\\x01\\x73\\x3d\\x95\\xe5\\x91\\xee\\x0a\\x1f\\xef\\x1c\\x26\\x36\\x07\\x8d\\x37\\x0e\\x7a\\xd3\\xb6\\xa9\\x44\\xfe\\xd2\\xcf\\x2b\\x30\\xab\\xa2\\xd5\\x6f\\x34\\x95\\xb2\\x84\\x9c\\x03\\xbb\\x61\\x4f\\x48\\xbc\\x4e\\x50\\x7c\\x39\\x5a\\x6c\\x35\\xd3\\xee\\xd4\\xc7\\xbe\\x8e\\x68\\x0f\\x2d\\x45\\xa3\\x10\\xb1\\x87\\xeb\\x88\\xcf\\x0e\\x8e\\xd4\\xde\\x7d\\x37\\x24\\x6a\\x50\\xa6\\x36\\x7b\\x97\\xee\\x37\\x84\\x32\\x2c\\x0b\\x71\\x13\\x1a\\x28\\x31\\x98\\xda\\x48\\x04\\xde\\x75\\x1d\\xcf\\x70\\xc4\\xba\\xd0\\x0d\\xd9\\x8d\\x87\\x3a\\x69\\xdd\\x1a\\x09\\xcf\\x69\\xdd\\xfa\\xd7\\xae\\x60\\x35\\x00\\xb6\\xa4\\x62\\x25\\x80\\x98\\xd8\\xb6\\x6b\\x85\\x29\\x35\\x94\\xe2\\x08\\x82\\x9b\\x52\\x28\\xfa\\xe2\\xfa\\xfc\\x39\"},\n{{0x16,0x3b,0x0c,0xb6,0xa1,0x2e,0x8f,0x07,0xb0,0xc2,0x9d,0x6a,0x63,0xf6,0xa6,0x52,0xce,0x49,0x72,0x70,0xb5,0xe4,0x6f,0xcf,0x83,0x3c,0x99,0xbd,0x84,0x3f,0x8c,0x64,},{0x68,0xa3,0x5d,0xe4,0xba,0x6f,0x0f,0x82,0xec,0xf4,0xb1,0xe0,0xdf,0x8e,0x24,0xcb,0x4f,0x18,0xf2,0x10,0x3f,0xf0,0x4d,0xc1,0xb5,0x33,0x39,0x91,0xb6,0xd3,0x14,0xba,},{0x17,0x73,0x8f,0x57,0x26,0x55,0x07,0x80,0x65,0x1d,0x60,0x19,0x9f,0xda,0x39,0xd9,0xc4,0x76,0x8d,0xb5,0x91,0x7e,0x32,0x39,0x36,0x31,0xc5,0x4a,0x41,0x9d,0x59,0xf1,0x8e,0xf9,0x60,0xdd,0xd4,0x39,0x38,0x0d,0xab,0xc3,0x14,0x76,0x1b,0xd0,0xcd,0xb5,0x7c,0xce,0x48,0x1e,0x61,0x09,0xfe,0xd0,0x95,0xde,0xa6,0xe8,0x65,0xaa,0x67,0x0b,},\"\\x56\\xa1\\x60\\x3f\\x72\\x5b\\xe0\\x76\\x13\\x05\\x8c\\xdb\\x3a\\xcd\\xc5\\x23\\x54\\xe3\\xbb\\x1f\\xf2\\xbe\\xd1\\x3f\\x89\\x51\\x75\\xb1\\x5c\\x8c\\x5a\\x90\\xff\\xbe\\x46\\xb1\\x1a\\x06\\xcf\\xe3\\x62\\xda\\xdf\\x73\\x23\\xc9\\x40\\x41\\x72\\x55\\xaa\\x7a\\xa5\\x43\\x12\\x10\\x3e\\x71\\x46\\x3d\\xaa\\x0b\\x5c\\xda\\xeb\\xd0\\xbe\\x72\\x3c\\x73\\x22\\x73\\xe3\\xc3\\xf5\\xbf\\x7a\\xa3\\x51\\x9d\\x69\\xdf\\x6f\\x47\\x70\\xda\\xa1\\xdf\\x82\\x80\\xbb\\x3c\\xd2\\xc7\\x14\\xac\\x03\\x02\\x00\\x54\\x65\\x79\\xf5\\x6c\\x60\\xb9\\x1a\\xe1\\x1f\\x4c\\xf8\\x74\\xa3\\x5f\\xc5\\x9b\\x35\\x4b\\xed\\x80\\xf5\\x6e\\x11\\xa6\\xcd\\x62\\xa8\\x8c\\xe6\\xb4\\xf6\\xbf\\x39\\xd6\\x4c\\xe3\\xd8\\x04\\x09\\x82\\x5f\\x90\\x16\\x2c\\x3d\\x96\\xd1\\x0e\\x47\\x86\\x07\\x36\\x5f\\x7a\\x24\\x1e\\x71\\xaf\\x98\\x00\\x42\\xfe\\xc2\\xd6\\x88\\x91\\xe0\\xc8\\xa3\\x7c\\x58\\xec\\x4e\\x60\\x0f\\xd5\\x81\\xe7\\x90\\xb0\\xaa\\xe8\\xe0\\x9f\\x35\\xd4\\xcc\\x18\\x76\\xdf\\x43\\x4b\\x80\\xee\\xe0\\x53\\x69\\xf8\\x48\\xfc\\x49\\x30\\x57\\x7d\\x16\\x84\\x27\\x58\\x88\\xf3\\x25\\x9c\\xb4\\x73\\x76\\xc5\\x16\\x9c\\x99\\x37\\xf8\\x55\\xa9\\x6a\\x9e\\x74\\x8a\\xd0\\xa6\\x9a\\xe4\\xab\\x2f\\x2f\\x17\\x44\\xa3\\x92\\xf9\\xac\\xc6\\x20\\x99\\x75\\xb7\\x84\\x98\\x4c\\xb1\\x2f\\x98\\x29\\x2c\\x36\\xa5\\x32\\x21\\x99\\x4a\\xbc\\x56\\xf9\\xa6\\x6d\\xae\\x45\\x60\\xb7\\x93\\x56\\xff\\x47\\xe1\\x28\\xc0\\x79\\x6a\\x7f\\xb0\\xe0\\xbb\\xc9\\x60\\x0a\\xf4\\x8e\\x49\\xea\\xa9\\x42\\x7c\\xf6\\xeb\\x66\\x20\\xb1\\x0c\\xd2\\xc0\\x85\\xb0\\xb3\\x42\\x00\\x4d\\x5b\\x0d\\x3e\\xdc\\x11\\xd2\\x92\\x42\\xa4\\x63\\x87\\x80\\x76\\x2c\\x9d\\xc6\\x06\\x9b\\x66\\xbd\\x84\\x97\\x3b\\x50\\x11\\x96\\x1c\\xe5\\x6d\\xb5\\x8b\\xda\\xf4\\x8e\\x6b\\xe1\\x2a\\xb9\\xad\\x24\\x41\\x62\\x97\\x00\\x4d\\x02\\x91\\x4b\\x95\\x9f\\x54\\xe0\\x92\\xf8\\xcd\\x43\\x65\\xfa\\x6a\\xb7\\x8d\\xdb\\xff\\x4c\\xe8\\xda\\xd4\\xe2\\xf5\\x3a\\x05\\xc0\\xcc\\x49\\x9b\\xfb\\x47\\x81\\x4a\\x27\\x13\\x55\\x1d\\xcd\\x19\\xd4\\x47\\xf6\\x27\\x57\\x6e\\xa4\\xea\\x4b\\xbd\\xa8\\xba\\xe1\\x8a\\x64\\x65\\xce\\xd7\\x47\\xea\\x17\\x18\\x0b\\x00\\x9f\\x01\\x21\\x21\\x60\\x48\\x2b\\x04\\x33\\xaa\\xc6\\x8e\\x67\\x64\\x4d\\x00\\xf4\\x1f\\xdf\\x99\\x90\\xb9\\xe1\\x11\\x17\\x63\\x4d\\xeb\\x13\\x9b\\x1a\\x40\\xad\\x3f\\xce\\x42\\x99\\xa1\\x7f\\xe1\\xdd\\x22\\x53\\x01\\xc7\\xf8\\xd8\\x01\\x0a\\x79\\x6d\\xc7\\x9c\\x13\\x30\\x7d\\x3f\\xf9\\x92\\xa8\\x8b\\xe6\\x64\\xd4\\xc8\\x86\\xd6\\x8c\\xa9\\xe4\\x47\\x0c\\xfb\\xe6\\x3e\\xbf\\xfc\\x42\\x40\\x10\\xe3\\x72\\xb6\\x92\\x2a\\xa9\\x5c\\x80\\x1d\\x1e\\x94\\x06\\xda\\x4b\\xc1\\x88\\xca\\x82\\x06\\x64\\x05\\xbc\\xdb\\x3e\\xaf\\xc9\\x37\\x62\\x9b\\x32\\x63\\xdc\\x7d\\x50\\xee\\x52\\x78\\xcc\\xec\\x6f\\x11\\xd5\\x51\\x7f\\x56\\xbc\\x26\\x9c\\x87\\x36\\x91\\xe7\\xeb\\x53\\xfa\\xef\\xf0\\x75\\x64\\xab\\x46\\xb4\\x03\\xf1\\x5d\\x9e\\x0e\\x69\\x24\\x86\\xee\\x09\\x8e\\x7b\\x51\\xb4\\x28\\x13\\x46\\x9b\\x82\\x35\\x04\\x22\\x33\\xca\\x3f\\x9c\\x4f\\x8f\\xf2\\x4a\\x57\\x1f\\x47\\xe0\\xad\\xf9\\x14\\x4a\\xea\\x48\\x8a\\x2d\\x2d\\xd0\\x01\\xe3\\x1f\\xc9\\x61\\xe0\\x5c\\x3e\\x85\\xf0\\xd9\\x81\\x40\\x7c\\x87\\x31\\x58\\xbb\\x0d\\x35\\xba\\xfe\\x4b\\x60\\x42\\x2e\\x67\\x55\\x1e\\x97\\x01\\x65\\xce\\x3f\\xc5\\x99\\xd0\\xfc\\xc9\\x2b\\x16\\xac\\x36\\xa9\\x2b\\x2c\\x1d\\xc6\\xb3\\xf0\\x33\\xfe\\x31\\x0c\\xd1\\x96\\xda\\x04\\xa4\\xe6\\x39\\x03\\x11\\x77\\xcd\\x27\\xd7\\xc2\\xfb\\xec\\x65\\xa0\\x0b\"},\n{{0x8c,0x83,0x93,0x81,0xb6,0xa7,0xce,0x26,0x49,0xc1,0xea,0x46,0x4a,0xe3,0xc2,0xd3,0xfd,0xb1,0xec,0x66,0x6d,0x7b,0x4b,0xe4,0xe2,0xa9,0x41,0xab,0x6d,0x65,0x57,0xa7,},{0x5c,0x72,0x4a,0x30,0xc6,0xfb,0x32,0x81,0x53,0x43,0xa8,0x0d,0xde,0xe6,0xee,0xe5,0x44,0x51,0x64,0x18,0xea,0x95,0xe1,0xba,0xc8,0x0a,0xfc,0x80,0x40,0xd6,0x3f,0xc6,},{0x5d,0x21,0x10,0xd1,0xd2,0xf3,0xed,0xd6,0x83,0xbd,0xfd,0xbe,0xa3,0xff,0xa7,0xcf,0x55,0x28,0xa4,0x0b,0x8b,0x3d,0x8d,0x8c,0x9b,0xfd,0x22,0xae,0xac,0x28,0xba,0xd4,0x71,0x66,0x6e,0x06,0x2f,0x7d,0x38,0xce,0xda,0x8b,0xb3,0x73,0x97,0xa1,0xc5,0xc3,0xf7,0x33,0xb5,0x37,0x96,0x70,0x45,0x70,0x64,0x78,0x43,0x7d,0x4d,0x18,0x7a,0x0a,},\"\\xcb\\xcf\\x89\\xc3\\x54\\x89\\x64\\xc3\\x8d\\x70\\xfd\\x8f\\x68\\xe8\\xec\\xe3\\x6c\\xc3\\x97\\x55\\xc9\\x71\\xd1\\x4d\\x7e\\x05\\x6f\\x39\\xb0\\x23\\xef\\x16\\x6d\\x17\\xf2\\x43\\x85\\x22\\xf0\\x10\\xd6\\xd8\\x35\\xd8\\x86\\xe7\\x1f\\x47\\x4c\\x67\\x27\\xa4\\x22\\x1f\\xd0\\x3a\\x75\\x74\\x57\\x82\\x89\\xed\\x54\\x93\\xac\\x4c\\x09\\x47\\xe3\\xf4\\x28\\xd8\\xfe\\x06\\x40\\x06\\xa2\\x56\\xce\\xf2\\x18\\x11\\xd7\\x26\\x78\\xf5\\xdf\\xc6\\xba\\x66\\xac\\x29\\xec\\xd1\\xb3\\x2f\\xf5\\x55\\x7c\\xb0\\x8c\\x5f\\x13\\x05\\x59\\x21\\x7a\\x04\\x13\\xb7\\x59\\xc2\\x4d\\x83\\x38\\x8a\\x2b\\xb9\\xb2\\x9b\\x6b\\x91\\xd1\\xf3\\x10\\x1e\\xd6\\x25\\x21\\x1e\\x4d\\x73\\x80\\x51\\x93\\x47\\x8c\\xf9\\x95\\x39\\x6c\\x10\\xb1\\xc5\\xaf\\xfa\\xcb\\x00\\x89\\x9d\\xa0\\x4e\\x3c\\xce\\x19\\x3b\\x49\\x4e\\x2a\\x93\\x3c\\x4e\\xeb\\xe0\\xa3\\x7b\\xfb\\x8f\\x1b\\x83\\x71\\xbd\\xe5\\xfd\\xa0\\x9e\\x80\\x4e\\x94\\x0f\\x34\\x48\\x96\\xa5\\x29\\x46\\x7a\\xde\\xe4\\x5a\\x8f\\xeb\\xf8\\x5a\\xb0\\x36\\xca\\xb8\\x80\\x14\\x3b\\xe4\\xf5\\x9b\\x77\\x41\\xd8\\xe4\\x50\\x27\\x8b\\x06\\x36\\x55\\x78\\xd4\\x0b\\x19\\xdc\\xec\\xc6\\xe1\\xee\\x3d\\xa3\\x4a\\xb2\\x90\\x13\\xfa\\x3a\\xf7\\x72\\x92\\x72\\x96\\x21\\x10\\xe3\\x85\\xab\\x9a\\x02\\x2f\\xae\\x41\\x46\\xf8\\x97\\x16\\xf7\\xba\\xb9\\xd3\\xdc\\x68\\x2f\\x4f\\xac\\x77\\x36\\xd3\\xe0\\x89\\x73\\xc6\\x85\\xbb\\xb2\\x75\\xbb\\xf8\\xf2\\x17\\x41\\x9e\\x5c\\xae\\x02\\x19\\xeb\\xa5\\x16\\x6a\\x5d\\xe1\\xb1\\x1e\\x3f\\x9a\\x90\\x8b\\x8a\\xc7\\xe6\\x5b\\xcd\\x62\\x3f\\x8c\\x18\\xbb\\x02\\x4f\\x60\\x5d\\xcb\\xac\\xda\\x79\\x0d\\x83\\x62\\x95\\x74\\x44\\xa9\\x5c\\x13\\x0a\\x37\\xee\\x9d\\x56\\x3d\\x0c\\xbb\\x4c\\xb2\\xb0\\xff\\x71\\x59\\x1d\\x93\\x90\\xb6\\xc8\\xfc\\x28\\x75\\x3a\\x0e\\x40\\x2d\\x64\\x87\\xcf\\xac\\x60\\x71\\x35\\x92\\x7d\\x89\\x26\\x75\\x12\\xb3\\x4f\\x87\\x70\\x57\\xd9\\x27\\x1b\\xcc\\xc0\\x24\\xdf\\xed\\xcc\\xc6\\xc3\\x2e\\xdf\\x75\\xc8\\xb7\\x55\\x1c\\xdf\\x80\\x15\\x4e\\xe8\\xe0\\x8a\\x0c\\xc4\\x30\\x44\\xe1\\x03\\x6b\\xae\\x01\\x7e\\xb4\\x8b\\x65\\x02\\xc7\\xa9\\xd6\\x0c\\x8b\\x37\\x0c\\xf3\\x79\\x9c\\x46\\x4f\\x96\\x4a\\x69\\xee\\x65\\x95\\x01\\x22\\x3e\\x78\\x9a\\x64\\x97\\xb6\\x34\\x96\\xdf\\x1a\\xda\\x2e\\x80\\x8d\\x24\\x34\\xfc\\x8b\\xb9\\x79\\x4e\\x5e\\x2a\\x20\\xbb\\xf4\\xd6\\x92\\x5c\\xb3\\xc5\\xbb\\x14\\x84\\x2f\\x19\\x20\\x09\\x05\\xba\\x93\\x54\\xe0\\x0d\\xc3\\x3c\\xff\\x5b\\x42\\xd4\\xe9\\xd9\\x66\\x8b\\x34\\xe6\\x61\\xd4\\x4b\\xef\\x76\\xfe\\xfe\\x2e\\xd5\\x1f\\x94\\x42\\x3a\\x93\\x3a\\xc9\\x4f\\x15\\x23\\xbf\\x37\\x82\\x3a\\x23\\x8d\\x61\\x6c\\x6b\\x17\\x97\\x34\\x41\\xe3\\x5f\\x94\\x05\\xa0\\x4d\\x99\\xea\\xa8\\xf5\\x04\\x53\\x4c\\x8b\\x5f\\xa5\\xe8\\xe3\\x35\\xc7\\x43\\xbc\\xf2\\x1f\\x5d\\x49\\x2b\\x71\\x12\\xe0\\x0f\\xd8\\x64\\x2c\\xb1\\x2b\\xfe\\xc8\\x49\\xdf\\x62\\x12\\x0d\\xbb\\x06\\xbf\\xc2\\x94\\x6a\\x56\\x01\\xe2\\x5b\\xe7\\x50\\x11\\xc6\\xf0\\x0c\\x65\\xd3\\x5f\\x44\\xa4\\x6a\\xf9\\xe4\\xf7\\x80\\x9e\\x57\\x89\\xa3\\xa6\\x1b\\xa0\\xa3\\xb2\\x13\\x89\\x04\\x97\\x29\\x6c\\x81\\xe4\\x2e\\x88\\xf0\\xec\\x0f\\x5d\\xef\\xc1\\xf5\\xd3\\x9f\\xf2\\xa4\\x8b\\x7e\\x30\\x26\\xc9\\xe5\\x47\\x20\\x2e\\xdc\\x7e\\xb7\\x38\\xc3\\x4a\\xd3\\xa1\\x5d\\x37\\x3e\\xf8\\x2a\\x4c\\x1d\\x18\\x1f\\x28\\x5a\\x98\\xbd\\x33\\x14\\xc2\\xc1\\x94\\x7c\\x9e\\x2c\\x60\\xac\\xa5\\x17\\x50\\xee\\x7f\\x94\\x3c\\xaf\\x0c\\x4e\\x1e\\x5c\\x7d\\xf7\\x29\\x1e\\x97\\x3b\\x1f\\x93\\x6b\\x73\\x70\\x76\\x19\"},\n{{0xaa,0xbb,0xb2,0xef,0xed,0xb5,0x99,0x42,0x4a,0x5f,0x3e,0x08,0xf9,0x0f,0xa8,0x82,0x6c,0x5c,0x92,0x17,0x0b,0xe5,0x01,0xa1,0x18,0x1f,0xe8,0xe8,0xdf,0x97,0x4e,0x0e,},{0xce,0x73,0x19,0xef,0x88,0xb2,0x42,0x42,0x06,0x66,0xca,0x69,0x7b,0xa8,0x50,0x1d,0x27,0x4e,0xc4,0xa5,0xdc,0xf8,0x44,0x59,0x66,0x08,0xb9,0xdd,0x5a,0x8a,0x3a,0xcd,},{0xa0,0xb1,0x9c,0xfa,0x6c,0x80,0xde,0x77,0xbf,0xcd,0x32,0x10,0x30,0xbf,0x8c,0x03,0x89,0x3e,0x2b,0x21,0xac,0xe6,0xc6,0xba,0x1f,0xf7,0x40,0x8e,0x6f,0xf0,0x7d,0x84,0x7e,0x6b,0x2b,0x68,0x8d,0x4f,0xd5,0x1a,0xa9,0x32,0x70,0x1d,0xb6,0x40,0x2e,0xf2,0x23,0x22,0xe6,0xe9,0xfc,0x7e,0x32,0x0a,0xbb,0x4d,0x24,0xe1,0xac,0xc6,0xcf,0x06,},\"\\xfc\\xc1\\x5c\\xc5\\x79\\x70\\x56\\x9e\\x9c\\xcf\\xa5\\xa7\\x78\\xfc\\x7a\\xed\\x71\\x97\\x8a\\x3f\\x56\\x24\\x57\\x7b\\x6f\\x57\\xfa\\x3f\\x16\\x7e\\xa2\\x23\\xef\\x31\\x76\\x4c\\x48\\x8d\\x05\\x9d\\x06\\x53\\x1d\\x01\\x6b\\xcb\\x17\\xd5\\x44\\xd4\\x69\\x77\\xaa\\x24\\x1f\\x8e\\x07\\xaf\\x47\\x87\\xa0\\x81\\x0f\\x98\\xd7\\x66\\x46\\x0c\\x08\\x41\\xad\\x81\\xb8\\x8f\\x4d\\x5d\\x81\\x64\\x48\\x5a\\x12\\x58\\xa9\\x46\\x22\\xc5\\x49\\x24\\x28\\xd6\\xd5\\x75\\x94\\x37\\x15\\x76\\x6c\\x2b\\x0a\\x86\\x5b\\xed\\xba\\x16\\x7d\\x5d\\x34\\x0e\\xdb\\x57\\x9c\\x47\\xaa\\x32\\x45\\x9b\\x8f\\xc9\\x8a\\x79\\xbb\\x0b\\xed\\x1c\\x96\\x0b\\x4c\\xcb\\x7f\\x2d\\x4b\\x56\\x81\\xa2\\xa7\\x0d\\x50\\x5b\\x85\\xb8\\x1e\\x3d\\x99\\x67\\x27\\x14\\xe4\\xea\\xb4\\x1f\\x3a\\xb0\\xca\\x87\\x4f\\x41\\x71\\x86\\xfe\\xb6\\x9e\\xd1\\x3f\\xb9\\x11\\xf4\\x9d\\x15\\x84\\x75\\x8b\\x2d\\x18\\xb4\\x67\\x3e\\xdf\\xae\\x49\\x5e\\x68\\xda\\xd5\\x13\\xa7\\xac\\x0d\\x47\\xb2\\x75\\x3c\\xb4\\xed\\xa7\\x8f\\xb4\\x31\\xf0\\x4d\\xda\\x8f\\xe8\\x03\\x0d\\x7b\\xb4\\xe8\\xdb\\xcc\\xb9\\x69\\xd7\\xf5\\x80\\xd9\\xc1\\xef\\x93\\x5d\\x07\\x4d\\x7a\\x41\\xd1\\xf8\\xb9\\xdc\\x45\\xc9\\xa2\\xe4\\x10\\x6a\\x55\\x29\\xa9\\x8b\\x95\\x52\\x9a\\xb0\\xed\\xea\\x0b\\x57\\x22\\xdd\\x68\\x6f\\x5a\\x7f\\x3c\\xd8\\xfb\\x26\\x24\\xab\\x26\\xc4\\x2d\\xf1\\x1f\\x51\\x0a\\x10\\x3d\\x8a\\x92\\x98\\x30\\xad\\x85\\xf5\\x21\\x24\\xe3\\xd5\\x82\\x7b\\xa6\\x0b\\xfb\\xcd\\x73\\x6c\\xb6\\xc5\\x90\\xee\\x77\\x7e\\xad\\x7a\\xa2\\x22\\x4d\\x7a\\xe4\\x6d\\x25\\x7a\\x90\\x40\\x72\\x47\\x96\\x0c\\x9c\\xb0\\x38\\x60\\xae\\xaa\\x7f\\x54\\xc1\\xa8\\xe1\\x11\\x60\\xd1\\x1b\\xb4\\x73\\x06\\x5e\\x19\\xb7\\x07\\x21\\xc8\\xf0\\x72\\xe1\\x90\\x9d\\x53\\x9e\\x9a\\xc9\\x41\\x85\\x90\\x4b\\xbb\\xfe\\x54\\x87\\x37\\x54\\xae\\x1c\\xa7\\xbc\\xed\\x6f\\x40\\x56\\x1a\\xf4\\xb5\\x05\\xf0\\x3a\\xc9\\x72\\xa6\\xf0\\xbf\\xa7\\x3b\\x5f\\x83\\x2f\\xe2\\x3b\\x89\\x8b\\x2b\\xbb\\x05\\x74\\xa6\\x66\\x2e\\xe9\\x3b\\x3b\\x36\\x0d\\xa1\\xec\\x7e\\x83\\x8e\\xb2\\xc7\\x7c\\x7c\\xb7\\xfc\\x16\\x4f\\x7c\\x46\\x27\\x01\\x04\\x89\\xc8\\x58\\x90\\x07\\x52\\xc9\\x2d\\x9d\\x75\\xad\\x54\\x71\\x67\\xe4\\xbd\\xd1\\x1a\\x07\\xd2\\x8b\\x65\\x1a\\xa3\\x0f\\x16\\xa8\\x50\\xe0\\x60\\xdd\\x28\\x82\\xfb\\x82\\x09\\x19\\xa3\\x98\\xe8\\x05\\xeb\\x63\\x69\\x9f\\x4f\\xf5\\x95\\xf9\\x91\\x52\\x47\\x31\\x64\\x1e\\xce\\x25\\xfb\\x3f\\x8e\\x89\\xad\\xa5\\x01\\x19\\x2b\\x1e\\xdd\\xae\\xcb\\xac\\xc8\\xb8\\x98\\x52\\x8f\\x2d\\x5b\\x33\\x12\\x69\\x4f\\x5e\\xc2\\xdc\\x91\\x42\\xe1\\x51\\x3f\\x77\\x7a\\x5c\\x83\\x34\\x09\\xc1\\x71\\x63\\x3f\\xf9\\xfa\\x26\\x09\\xd0\\x49\\x7f\\x5d\\xf4\\xfb\\xf4\\x8e\\xf2\\xb7\\x7d\\x55\\xe2\\x55\\x19\\xd2\\xee\\x79\\xb5\\xfe\\x9d\\x8f\\xa4\\x60\\x00\\xde\\xcd\\xb4\\xf2\\x5d\\xfb\\x3f\\x2b\\xaf\\xb1\\x9f\\xbe\\x2c\\xbd\\xac\\x00\\x2a\\x35\\x9a\\x95\\x4b\\xc6\\x9b\\xdf\\xe2\\xfb\\x36\\xad\\xfd\\x9a\\x15\\x09\\xf3\\xe3\\xa4\\xc6\\xb1\\xf3\\xf3\\x6e\\x7c\\xf8\\x0d\\x58\\x3d\\x44\\x0f\\xf2\\xa1\\x44\\x64\\x30\\x98\\x97\\x4d\\x71\\x49\\x3e\\xcb\\x64\\x17\\xc0\\xb8\\x06\\x5b\\xd2\\xc2\\x1c\\x1e\\x34\\xaf\\x09\\x24\\x3f\\xb4\\x9e\\x9d\\x35\\x29\\x7e\\xb0\\xa5\\x2d\\x56\\xdd\\x27\\x0f\\xea\\x6d\\xc5\\xc0\\x80\\xa0\\x55\\x99\\xf7\\x85\\x81\\xe9\\x0f\\xd8\\xcc\\x4c\\xd1\\x1a\\x50\\x5e\\xdd\\xe8\\x4b\\x89\\x2d\\x89\\x53\\xbd\\xbb\\x23\\x79\\xd3\\x3a\\xad\\x64\\x65\\x8a\\xe2\\x06\\x07\\xdd\\x35\\xb0\\xbf\\x3a\\x26\\x37\\xd2\\x0c\\x3f\\x86\"},\n{{0xc2,0xe0,0x74,0xfa,0xa2,0x34,0xe9,0x9a,0xb2,0x0a,0xdb,0xbe,0xae,0x11,0xb8,0x10,0x97,0x23,0xb7,0x08,0xc5,0x45,0x86,0xdf,0x65,0x2b,0x40,0x2c,0x35,0xcd,0xd1,0x27,},{0x5e,0x52,0x4e,0xce,0x1c,0x69,0x6e,0x70,0x5a,0x35,0x14,0xdd,0x00,0x82,0xb8,0x40,0x79,0x5a,0x59,0xc3,0x6a,0x96,0xcb,0xc4,0x82,0xbf,0xf5,0xab,0x4e,0xf5,0x15,0xd1,},{0x65,0x7c,0x38,0x26,0xb3,0x48,0x3f,0xd4,0x2a,0xb6,0xdf,0x86,0x9d,0x1b,0x77,0xa8,0xc4,0xdf,0x67,0xa6,0xa5,0x90,0xc7,0xc6,0x77,0x29,0x69,0xe3,0xdf,0x33,0x12,0xae,0x06,0x54,0xfb,0x83,0x84,0x7a,0xf2,0x21,0x93,0x5a,0x05,0x12,0x29,0x16,0x36,0xec,0x05,0x95,0x70,0x08,0x79,0xeb,0xdb,0xa8,0xa1,0x46,0x7c,0x53,0xd4,0x0c,0x23,0x06,},\"\\x31\\x29\\x03\\x38\\xe4\\x6d\\x1c\\xc2\\x5c\\xe9\\x9c\\xba\\xcc\\x40\\x16\\x03\\x41\\xb7\\x85\\x82\\x3c\\x82\\x3c\\x4a\\xb9\\xba\\xee\\x3b\\x61\\x25\\x79\\xf1\\xc0\\x11\\x71\\x67\\x96\\xe5\\x6e\\x26\\x93\\xf6\\xdd\\xad\\x43\\x92\\x2a\\xa7\\x84\\x7c\\xbb\\x41\\x48\\x10\\x16\\x51\\xbb\\xe6\\x2d\\x50\\xbe\\x90\\x82\\x5e\\x8e\\xab\\x77\\x7a\\xa4\\xb8\\x02\\x6d\\xc5\\x38\\x5a\\x97\\xd3\\xdf\\x76\\x16\\x01\\x91\\xf9\\x22\\xcd\\xd2\\xf0\\x7b\\xa5\\xf8\\x5e\\x95\\xf4\\x5d\\xb2\\x29\\x28\\xf9\\x07\\x34\\xff\\x52\\x0c\\x44\\xdc\\x8f\\xe3\\x90\\x3b\\x4c\\x51\\xcd\\x23\\xe0\\x64\\xf0\\x1c\\x82\\x9e\\xc7\\x4f\\xbf\\xfe\\x25\\xfd\\x0d\\x36\\x9d\\x27\\x65\\x74\\x0f\\x43\\x85\\x6b\\xd7\\x39\\x8a\\x19\\x11\\xad\\x74\\x98\\x36\\x16\\x0f\\xd9\\x8d\\x04\\xb2\\x8e\\xe8\\x7e\\x11\\x1d\\x40\\x71\\x8b\\x5a\\x16\\x6f\\x05\\xc9\\xa4\\x71\\xa4\\x15\\x66\\x55\\x70\\x69\\xf7\\xa1\\x4d\\xe9\\x88\\xbb\\xbf\\x67\\x77\\x52\\x1f\\xcb\\xa6\\xdd\\x65\\xde\\x4c\\x06\\x67\\x4a\\x11\\x85\\x3a\\xf8\\x3a\\xcc\\xb7\\x0f\\xb3\\x28\\xdd\\x8f\\xd6\\x10\\x5a\\x7d\\xf5\\x26\\x9c\\x9f\\xae\\xc8\\xd9\\x00\\x14\\x7e\\x92\\x8d\\x97\\x0c\\x36\\xcd\\x83\\x4b\\xd6\\x05\\x4f\\x70\\x65\\x0d\\xfa\\xce\\x94\\xb7\\x62\\x9d\\x16\\xe3\\x70\\x3d\\x76\\x6c\\xe7\\x63\\x8d\\x0a\\xd1\\xe1\\x7b\\x77\\x46\\x9b\\x95\\x8d\\x2b\\xa2\\xa1\\xe6\\x31\\xa1\\x63\\x5e\\xfd\\xcb\\x00\\x6e\\xbc\\x6e\\x5d\\x8b\\x9f\\xaf\\x7e\\x5f\\xb9\\x89\\xdc\\x08\\x96\\xc5\\x61\\xa2\\x6f\\x3c\\x25\\xf0\\x55\\x71\\x6b\\x36\\x71\\x38\\xea\\x5d\\xa1\\xf8\\x1d\\xc7\\x2c\\xff\\x7a\\x55\\xaf\\xae\\xe5\\x83\\x9e\\xf5\\xaa\\x82\\x2b\\x29\\x70\\xaa\\x18\\xa8\\x98\\x21\\x63\\xbf\\x5e\\xed\\x1b\\x67\\x7c\\xca\\xac\\x12\\x24\\xff\\x6c\\x6c\\xf2\\x56\\x37\\x47\\x80\\xae\\x65\\x80\\x3b\\xf5\\xc6\\xe2\\x3c\\x80\\xba\\xcd\\x76\\xec\\x3e\\x2d\\xdd\\x3a\\xb7\\x19\\x97\\x50\\x64\\x48\\xe1\\x9d\\xb1\\x98\\xef\\xad\\xc9\\xf7\\x57\\x49\\x1f\\x1b\\x09\\x72\\xc8\\x2d\\xb2\\x94\\x10\\xe1\\xe8\\xbb\\x67\\xbb\\xb2\\x3d\\x53\\x56\\x3b\\x88\\x07\\xe5\\xe0\\xc2\\xe3\\x2e\\xe5\\x96\\xb5\\xb4\\x40\\x23\\x28\\xf9\\xe1\\x79\\xe9\\xce\\x85\\x6d\\x3b\\xd1\\x99\\xd5\\x8d\\xe6\\xc5\\xc2\\x52\\xe7\\xa6\\x12\\x4d\\x81\\xfc\\x9e\\xea\\xf2\\x3d\\x34\\x7d\\x2a\\xb8\\x89\\x17\\xaa\\x68\\x44\\x50\\xdd\\x58\\x30\\x35\\x16\\xc1\\xa4\\xd2\\xbd\\xcd\\xde\\x22\\x0c\\x9a\\xe3\\x79\\x0f\\x29\\x8d\\x7d\\x38\\x4b\\x70\\xc2\\xfe\\x25\\x88\\x07\\x84\\x8f\\xc3\\x53\\x20\\xb5\\x78\\xb3\\x35\\x03\\xb7\\x5f\\x38\\xa1\\xdf\\x63\\x0b\\xd3\\x3e\\x6a\\x85\\xa4\\xdd\\x4d\\xf9\\xf6\\xe5\\x5a\\x6e\\x68\\x67\\xc7\\x38\\x01\\xe5\\x93\\xe1\\xd5\\x91\\xdb\\x89\\xba\\x9a\\x9a\\xf0\\xfc\\x29\\x2e\\x06\\xfb\\x51\\x5a\\xc8\\xa5\\xe8\\xe3\\x43\\xa8\\x21\\x33\\x55\\x75\\xba\\x48\\xfb\\xaa\\xe3\\xfb\\x12\\xde\\xea\\xae\\xe6\\x0f\\x4b\\x3d\\x31\\x7e\\xc0\\xa5\\x54\\xdd\\xd4\\x25\\xc8\\x49\\x32\\xc2\\x7a\\x7a\\x12\\xf2\\x9d\\x63\\x71\\x51\\x07\\x83\\xbd\\x75\\xe6\\x0e\\x2f\\x6d\\xa2\\x00\\x52\\x06\\x9e\\xd7\\x1e\\x69\\x5a\\x94\\x31\\x82\\x19\\x3c\\xb6\\x85\\x1a\\x7d\\x2f\\xa3\\xc6\\x66\\xc1\\x93\\x02\\x80\\x15\\xac\\x8b\\x7e\\x7d\\xaa\\x6c\\x52\\x04\\xf7\\x7a\\x62\\x32\\xb8\\x8b\\x4a\\xbf\\xfc\\x53\\x62\\xfd\\xe7\\xde\\xc3\\x6b\\x9d\\x45\\x48\\x80\\x84\\x92\\x83\\xb1\\x15\\x63\\x39\\xea\\x2e\\x8c\\x3b\\x10\\xe5\\x1b\\xfa\\xbd\\xf7\\x25\\x78\\xc7\\x26\\x41\\x9a\\x38\\x54\\x2c\\xf8\\x64\\x9d\\xf9\\xa0\\x90\\x9f\\x58\\x2d\\xeb\\xad\\x5f\\xd8\\x9d\\x8c\\x81\\xf8\\x3d\\x9e\\x42\\x3e\\x75\\x03\"},\n{{0xb9,0xda,0x4e,0x6a,0xf0,0x7e,0x39,0x8a,0xb4,0xd2,0x17,0x52,0xa3,0x2c,0x8f,0xfa,0x9b,0xe0,0xc3,0x10,0xd3,0x50,0x59,0xfb,0x66,0x1b,0xd7,0x3a,0xfa,0x97,0xe2,0xa8,},{0xf8,0x62,0x80,0x3c,0x96,0xcc,0x42,0xad,0xc8,0x25,0x28,0x84,0x54,0x72,0x30,0xb9,0x70,0x04,0x7b,0x7e,0x5d,0xa9,0x96,0x26,0x0c,0xcc,0x02,0x40,0xab,0x71,0xa6,0xec,},{0x62,0x5e,0x1f,0x42,0xc8,0x74,0x34,0xa2,0x5d,0x62,0x2d,0x80,0xd1,0x25,0x32,0x80,0x6a,0xfb,0x25,0x09,0x33,0x24,0x49,0xe6,0x96,0xb6,0x5e,0x1e,0x58,0x88,0x50,0x8f,0x11,0xc4,0xac,0x25,0xf5,0x9b,0x8d,0x94,0xd0,0xbf,0x27,0xe4,0xc8,0xd1,0x86,0x70,0x07,0xc4,0x08,0xda,0x57,0x30,0x82,0xdc,0xf1,0x9d,0x15,0xa9,0xd5,0xcc,0xcb,0x0c,},\"\\x6b\\x95\\xaf\\x0e\\xeb\\xb6\\xa0\\x8a\\xfa\\xda\\xa1\\x96\\x21\\xf7\\x6a\\x83\\x9b\\xe8\\x08\\x51\\xc6\\xdd\\x31\\x5e\\x82\\x76\\xf5\\x01\\x99\\x5d\\x4c\\xe6\\xd1\\x34\\xdf\\x5e\\x79\\x8e\\xd5\\x17\\xa2\\xf0\\xe6\\x2a\\xa1\\xd6\\xc9\\x8c\\x36\\xef\\x14\\xbb\\x1e\\x5d\\xdf\\xc9\\x8d\\x5a\\x7f\\xcc\\x81\\x14\\x0a\\x13\\xc2\\x0d\\x2c\\xa0\\xc4\\xb4\\x0e\\x6e\\x6a\\x03\\xee\\xd8\\xc8\\x99\\xf9\\xd1\\xf7\\x92\\x46\\x81\\x52\\x19\\x9f\\x4b\\x95\\xa4\\x32\\x66\\x89\\x47\\xa5\\x1d\\x7b\\x8e\\x10\\x4d\\x8d\\x1f\\x12\\xaa\\xcd\\x96\\x7e\\x08\\xb0\\x8c\\x41\\xc3\\xc8\\xca\\x3f\\xee\\xda\\xa5\\xb8\\xb6\\x3b\\xce\\xc0\\x61\\x38\\x64\\xd9\\x53\\xd8\\x11\\x43\\xec\\x81\\x42\\x5b\\xde\\x29\\x16\\x4a\\x08\\x76\\xf2\\x3f\\x37\\xac\\x9a\\xc9\\x47\\x36\\x72\\xce\\x11\\xa0\\x8b\\xd5\\x47\\x6f\\x6f\\x66\\xd6\\x65\\xe9\\xad\\x61\\x7e\\x34\\xeb\\x32\\xee\\x56\\xff\\xa4\\x59\\xf2\\x0d\\x1b\\x93\\x53\\xd7\\x82\\x12\\x98\\x54\\x57\\x50\\xc6\\xef\\xf3\\xe7\\xd4\\x07\\x3d\\xc3\\x18\\x5e\\xde\\x03\\x91\\xcc\\xe0\\x57\\x5f\\x8b\\xa6\\x37\\xd8\\x00\\x06\\x8d\\x9d\\x7e\\x54\\x03\\xba\\x70\\x38\\xd2\\xdb\\x77\\xda\\x14\\x47\\x84\\xf2\\xe8\\xea\\x76\\xae\\xdf\\xe5\\x21\\xe7\\xdc\\x6a\\x67\\x4e\\xde\\x35\\x57\\x95\\x95\\x99\\x3f\\xb2\\x0d\\x44\\xb4\\x05\\x27\\x83\\xf5\\x6c\\x8c\\x0b\\xbd\\x04\\x40\\xb6\\x9e\\xab\\xde\\x84\\x46\\x8d\\xd1\\x3c\\x67\\x1f\\xb1\\xbb\\xd5\\xcb\\x02\\x2c\\x2a\\x4f\\xcf\\x35\\x42\\xd8\\xb3\\xbb\\x51\\x8e\\x5a\\xde\\xbd\\xdc\\x84\\xe7\\x14\\xb1\\x3b\\xe5\\x2c\\x56\\xb2\\x82\\xb4\\x2a\\xc0\\x89\\x2a\\x54\\x59\\x28\\x1b\\xe7\\x16\\x07\\x29\\xf4\\x11\\x2c\\x7d\\x99\\xdf\\x9b\\xe5\\x43\\x4f\\x82\\x3a\\x9c\\xe0\\x50\\x17\\x89\\xde\\x1d\\x55\\x0a\\xd5\\x0b\\xb1\\x8c\\x8d\\x89\\xa3\\x36\\x68\\x27\\x0b\\xff\\x7b\\x91\\xff\\x11\\x8f\\x5c\\xd9\\x90\\x9a\\xdd\\xde\\x90\\xc0\\x24\\xa3\\xad\\x71\\x39\\x15\\x17\\x46\\x74\\xf2\\x8a\\xaa\\x9f\\x94\\xa3\\x22\\xba\\xa5\\x43\\x73\\x8e\\xda\\xb4\\x97\\x33\\x12\\xb5\\xbf\\xa1\\x21\\x55\\xde\\xbc\\xee\\x16\\x3c\\xfe\\x2b\\x04\\xac\\x9c\\x12\\x2a\\xc8\\xa4\\xe1\\xbc\\x41\\x8c\\x14\\x95\\x5d\\x96\\x10\\x45\\x5b\\xd9\\x45\\xe9\\x79\\x3b\\x91\\x62\\x67\\xc9\\xc5\\xf9\\xe5\\x3a\\xc0\\x45\\x18\\x92\\x6e\\xc9\\x8e\\xcb\\x84\\xa4\\xf0\\x44\\x5d\\xcb\\x12\\x36\\xc7\\x6c\\x3a\\x67\\x8c\\x69\\xab\\xe4\\xe9\\x2c\\x22\\x97\\x1d\\x62\\x21\\x72\\x01\\xa1\\xbd\\xf0\\x5c\\x04\\xdf\\x84\\x20\\xa3\\xde\\x6a\\x91\\x7a\\x85\\xe7\\x1e\\x2b\\x97\\x25\\xe7\\x7b\\x52\\x29\\x15\\xd4\\xc9\\x94\\x60\\x77\\x63\\x7c\\x2d\\x88\\x13\\xf0\\x10\\xb9\\x49\\x1c\\xf0\\xed\\xdc\\x3d\\x46\\x68\\xcc\\x0f\\x8b\\xc8\\xa6\\x83\\x57\\x9b\\xe5\\x43\\x93\\x4d\\xa2\\x85\\x3a\\x16\\xf5\\x71\\x57\\x24\\xf7\\x79\\x81\\x9f\\x44\\x43\\x9e\\x1d\\xeb\\xca\\xa4\\x27\\x0d\\x9b\\x85\\x94\\xba\\x4c\\x86\\xe1\\x06\\x3b\\x3c\\xe4\\x79\\xd7\\x1a\\x54\\x09\\xbe\\xf2\\x7e\\xf4\\xe5\\xc1\\xd1\\xc9\\x6e\\x8b\\xe1\\x38\\x65\\xaf\\x7b\\xb4\\x3f\\x09\\x16\\x2c\\xcb\\xc8\\x3a\\x2c\\xa9\\xe9\\xb8\\xa2\\x32\\x4e\\x6d\\x99\\x65\\x75\\xee\\xfe\\xd3\\x7e\\xf4\\x99\\x08\\x18\\x57\\x38\\xb8\\xea\\xe4\\x3f\\x8a\\xdc\\xa3\\x30\\xc9\\x9b\\xc6\\x6c\\xc1\\xfd\\x52\\xc5\\x30\\xd7\\x37\\x1c\\x60\\x86\\x9c\\xe4\\x2c\\x19\\x7d\\xca\\x0a\\xd1\\x28\\xb8\\x5f\\x61\\xc8\\x75\\x8f\\x0d\\x54\\x2f\\x3d\\x32\\x98\\xb6\\x5e\\x93\\xc6\\xe8\\xa6\\x8f\\xa0\\xe9\\xa1\\xd5\\xe8\\xc5\\xfe\\xc8\\x05\\xb8\\x3a\\xff\\x43\\x90\\xe1\\x15\\xeb\\x64\\xf3\\xf0\\x78\\xa0\\xb9\\xb6\\x6c\\x27\\x38\\x43\\xfc\\x6c\"},\n{{0x14,0x3f,0x7b,0x42,0x47,0xd5,0x49,0xf6,0xb7,0xc0,0x91,0x72,0x66,0xc5,0x0f,0x96,0x2c,0x28,0xa2,0xea,0x24,0x76,0x2f,0x53,0x7a,0xa0,0x6a,0xd1,0x5e,0x40,0xb3,0x5a,},{0xc9,0x95,0x9f,0x90,0xa2,0xd5,0xfe,0xac,0xba,0xe2,0xc4,0xc8,0x03,0xde,0xd5,0xde,0xab,0x86,0x98,0x76,0x37,0x06,0x43,0x37,0xaa,0x2a,0x0b,0x0d,0xde,0xf2,0xfd,0x86,},{0xc1,0xcf,0xae,0x58,0x51,0x57,0x13,0xea,0x72,0x8c,0xfa,0x09,0x09,0x0e,0x89,0x42,0xf8,0xdf,0x18,0x62,0x1b,0xa7,0x09,0x0e,0x3a,0x33,0x76,0xc3,0x80,0x27,0x75,0xa1,0xec,0xaf,0x43,0x6b,0x18,0x49,0x78,0x04,0x1e,0xbb,0x75,0x22,0x6f,0x97,0x0d,0xf7,0x1d,0x6a,0xd3,0x53,0xc0,0xfb,0x46,0x50,0x23,0xf9,0xe2,0x98,0xf6,0x4a,0x70,0x02,},\"\\xe2\\x74\\x20\\x23\\x47\\xa0\\xd0\\x57\\xa4\\x8b\\xf2\\xa1\\xf6\\xe9\\xf6\\xcb\\x42\\x56\\x07\\x9d\\x80\\x03\\x74\\x09\\x3c\\x02\\x0c\\xbf\\x52\\x0e\\x5f\\xa2\\x7f\\xe9\\x96\\xff\\x07\\xf3\\x3a\\xd3\\xb2\\x1f\\x74\\xab\\x0c\\xd9\\x3c\\x86\\x47\\x5f\\xf3\\x7c\\xf6\\x22\\xd3\\xf9\\xfa\\x4d\\x13\\xbc\\x99\\xf0\\x13\\xe8\\x50\\x2b\\x24\\xe4\\x6c\\xc8\\x7c\\x47\\xe6\\xb2\\xc3\\x66\\x2b\\x50\\xe9\\x79\\xa0\\xf3\\x45\\xb7\\x84\\xff\\x21\\xa8\\xa4\\xd9\\x2a\\xdc\\x65\\xe8\\x6e\\x33\\xb4\\xdb\\xe1\\x7f\\x52\\x8c\\xcd\\xf5\\xb4\\x86\\x46\\x64\\xba\\x94\\xff\\xdb\\x7c\\x7d\\x24\\x12\\xb4\\x38\\xe6\\xe4\\x3f\\xa9\\x66\\x81\\x47\\xee\\x33\\x28\\x22\\x4d\\x1f\\x52\\xa3\\xf5\\xb5\\x43\\x59\\xb4\\xf7\\xfe\\xf6\\x9a\\xf8\\xf8\\x67\\xb4\\x78\\xf1\\x30\\xa1\\x47\\xbe\\xa4\\x2e\\xd3\\x98\\x03\\xbc\\xbc\\x25\\x57\\xbc\\xa8\\xc3\\x99\\x9f\\x1d\\x24\\xf0\\xa6\\xb0\\x3c\\x98\\x84\\x60\\x11\\xf9\\xec\\x74\\xf6\\x66\\x41\\x7b\\x95\\x02\\x0e\\xb1\\xfb\\x2f\\xb8\\x8b\\x63\\x12\\xe5\\x00\\x8c\\xff\\x03\\xe2\\xd7\\x7a\\x26\\xaa\\x53\\x2d\\x17\\x80\\xb5\\x07\\x7f\\x9e\\x8b\\x82\\x86\\x74\\x45\\x5d\\x6b\\xc9\\x57\\x97\\x5f\\x7b\\x2a\\x50\\xe7\\xfd\\x7c\\x16\\x12\\xce\\x02\\x36\\x2e\\xfa\\x4c\\x55\\x5a\\x1e\\xef\\x68\\xec\\x34\\xa5\\xc0\\x06\\xa6\\xda\\x00\\x8a\\x31\\xd4\\x19\\x3d\\xc2\\xcc\\x64\\x76\\x85\\xad\\x3c\\xfa\\x3b\\xd7\\xc5\\x60\\xb7\\xae\\xd4\\x5f\\x0f\\x1a\\x3d\\x1b\\x5b\\x36\\x22\\x68\\xde\\x53\\x28\\x57\\x05\\x5a\\xb9\\xd1\\xd5\\xd8\\x58\\xd9\\xae\\x9a\\x75\\x9a\\x51\\xbb\\x94\\x78\\xe8\\xf0\\xee\\x93\\xc9\\x84\\xb5\\x76\\xb8\\xb4\\xab\\x46\\x02\\x80\\xbe\\x3d\\xe2\\x05\\xa3\\x2f\\x1d\\xc3\\xd5\\x72\\x92\\x3f\\xb2\\x13\\xac\\x15\\x12\\xd8\\x0e\\xb5\\xad\\x5c\\x18\\x94\\x4b\\xe7\\x7f\\xc1\\x7d\\xef\\x13\\xa6\\x1b\\xbd\\x31\\xbc\\x71\\xac\\xc2\\x3d\\x25\\x0e\\xc5\\x89\\x4e\\xbc\\x21\\x4c\\xfe\\xc0\\xc1\\xb9\\x06\\x51\\x6d\\x32\\xd8\\x36\\xad\\xc8\\x38\\x80\\x2e\\x8d\\xe3\\x0d\\xd7\\x6d\\xf6\\xe6\\x1c\\x1b\\xc4\\x38\\xb6\\x8d\\x2b\\x02\\x5a\\x84\\xf2\\x11\\xfa\\xcf\\x3f\\x13\\x84\\xd2\\x61\\x2d\\x0f\\xae\\xf5\\xd1\\x71\\x31\\xcf\\xe0\\xcf\\xe8\\x33\\xfe\\x95\\x0e\\x47\\x9b\\xc2\\x9c\\xbe\\x7f\\xd6\\xda\\x0c\\xce\\x30\\x7c\\xf0\\xb1\\xbd\\x92\\xc8\\x0e\\x87\\x8e\\x43\\x2f\\x63\\x6e\\xa0\\xcd\\x42\\x48\\x0c\\x07\\xe8\\xb8\\xe5\\x7e\\x69\\xb2\\xf9\\x38\\xb7\\x81\\x20\\xf6\\xaf\\x4a\\xbe\\xbf\\x7d\\x4b\\x05\\xca\\xcd\\x6e\\xed\\x85\\x44\\x91\\xc0\\x29\\x75\\x5c\\x4e\\x66\\x33\\x89\\x93\\xed\\x2a\\xc2\\x5d\\x19\\xa0\\xc5\\xb4\\x0f\\x5e\\x32\\xc8\\xa8\\xb1\\xbc\\xe3\\x69\\x71\\x81\\x86\\xc9\\x1d\\x60\\xed\\xff\\x24\\xa8\\x37\\x7a\\x99\\x69\\x75\\x75\\x99\\x06\\x7d\\xd3\\x12\\x63\\xa0\\x6d\\x6a\\x61\\x15\\x47\\x81\\xf2\\x96\\x11\\xab\\x81\\x2f\\xf8\\x2e\\x81\\x37\\x39\\x64\\x62\\x63\\x70\\x4c\\xd6\\x04\\x63\\x57\\xa2\\x3c\\x04\\x5e\\x24\\x07\\xb7\\xa8\\x95\\x08\\x25\\x93\\x91\\x31\\x4f\\x2f\\xbe\\xe4\\x9a\\xef\\x08\\x55\\xc6\\xe5\\xe6\\x3d\\x91\\x2a\\x19\\xdf\\x15\\xb1\\x1e\\xce\\x34\\xe2\\x76\\xdc\\xb8\\x8b\\xf2\\xf2\\xe4\\x75\\x63\\x58\\xf3\\x4a\\x0e\\xe3\\x95\\x2b\\x68\\x6f\\xcd\\x17\\x57\\x8a\\x88\\x41\\x76\\xd3\\x4e\\xa2\\x91\\x6c\\x5d\\x9f\\xcd\\x00\\xeb\\x9e\\x0a\\xa9\\xf2\\xcf\\x0f\\x16\\xe2\\x56\\x4b\\xfd\\x28\\xb6\\xab\\x59\\x68\\xb8\\x44\\x8f\\x06\\x83\\x20\\xe4\\x18\\x71\\x60\\xf8\\x66\\x57\\x81\\xb1\\xe2\\xed\\x9d\\x04\\x9e\\x1b\\x54\\xa7\\xd7\\x27\\x20\\xff\\x9d\\x4f\\x07\\x30\\x51\\x99\\x6a\\x9d\\xb6\\xf0\\xc6\\x82\\x1c\\x42\\x4f\\xa5\\x1d\"},\n{{0x0d,0x1f,0xe9,0xd8,0xb9,0xa2,0xf0,0x4c,0x22,0xbb,0xb0,0xed,0xea,0x38,0x33,0xa0,0xce,0x43,0x33,0x93,0x47,0x53,0x1f,0xdb,0x67,0xed,0x51,0x3a,0x13,0xd3,0x6b,0x39,},{0x67,0xc4,0x9f,0x41,0x0f,0x48,0x53,0x29,0x3d,0x0c,0x4d,0x39,0xf4,0xc1,0xb3,0xd6,0xc6,0x10,0x3c,0x5c,0xfe,0x20,0xa9,0xa5,0x9b,0x53,0x93,0x20,0x43,0x51,0x73,0x69,},{0xb0,0x57,0x25,0xe7,0x37,0x1e,0xd0,0xa9,0x1e,0xbc,0x89,0xf3,0xc3,0x0b,0xaa,0x99,0x18,0x37,0x63,0xed,0xb4,0xce,0x34,0xfe,0x90,0x1a,0xf3,0x73,0x1e,0x00,0x1c,0xc5,0x4f,0x28,0x71,0x18,0x91,0x5e,0x90,0x36,0x5d,0x91,0xac,0xa8,0xfe,0xb1,0x70,0x87,0x69,0xf9,0xf1,0xd6,0xee,0xf5,0xaa,0x11,0x3b,0xee,0x00,0xb5,0xef,0xab,0x27,0x04,},\"\\x64\\x21\\x7a\\xc8\\x41\\xfd\\x4d\\x64\\x59\\xbf\\xc4\\xa4\\x9b\\x88\\x01\\xd6\\x92\\x9b\\xf1\\x9b\\x40\\x8e\\x8a\\x53\\x79\\x0c\\xeb\\x51\\xec\\x34\\x1f\\x9b\\x46\\xa3\\x51\\xe8\\xc2\\xe5\\x9d\\x88\\x7e\\x1e\\xac\\xcb\\x91\\x42\\x31\\xcd\\xca\\x1d\\x3e\\x5c\\x47\\xd1\\x66\\xb4\\xcd\\xb9\\xb5\\x8c\\x01\\x3c\\x59\\xa3\\xbd\\x28\\x3a\\xd1\\x0f\\x6b\\xd6\\x2c\\x0f\\x15\\xf7\\x64\\xce\\x14\\xf3\\xb2\\x65\\xf5\\x37\\xc6\\x3e\\x73\\xb6\\xc4\\xfa\\x65\\xe0\\x6c\\xe1\\xe1\\xf4\\xae\\x0d\\x11\\x48\\x9d\\xd2\\x60\\x2f\\x95\\xfc\\x40\\x2b\\x77\\x12\\x05\\x2a\\xbc\\x84\\xbd\\xc7\\x78\\xc1\\x9f\\x10\\x00\\x1b\\x4e\\x0d\\x5f\\xbe\\x46\\x30\\x90\\xe8\\x3e\\xf4\\x38\\xfe\\x06\\x8f\\x3b\\xb6\\xfb\\xc2\\xc1\\x39\\xaf\\x06\\x78\\xed\\x2a\\x11\\xfa\\xa1\\xb9\\xe4\\x9a\\xaa\\x46\\x20\\xab\\xfc\\x08\\x43\\x9f\\xbf\\xe2\\xc6\\x18\\x40\\x76\\x9e\\x5f\\xda\\x26\\x77\\xf8\\xe2\\xf0\\xa1\\x45\\x64\\xf9\\xf5\\x04\\x23\\x2a\\x9f\\xc0\\xd9\\xda\\x47\\x1e\\x67\\xfb\\xc5\\x74\\xc3\\xd5\\x6d\\x2a\\xeb\\x93\\x7a\\x58\\x6e\\xd5\\x58\\x35\\x56\\x30\\x8a\\x99\\x8e\\xb1\\xdc\\x47\\x6a\\x01\\x4f\\x5a\\x08\\x22\\x8d\\xbe\\xd9\\x5a\\x12\\x08\\xbc\\x1d\\x1f\\x5d\\x76\\xb4\\xe8\\xd0\\xb2\\x43\\x4b\\x99\\x5a\\xd4\\x58\\xe4\\x29\\xee\\x61\\x42\\xa0\\xc9\\x71\\x76\\x8c\\xc4\\x0c\\x40\\xbc\\xb0\\x8e\\x96\\x03\\xf0\\x96\\x11\\x47\\x44\\x71\\xb3\\x85\\x9d\\x7f\\xd5\\x84\\x21\\x9f\\x02\\x65\\x7b\\x43\\x0e\\x9e\\x56\\x95\\x5b\\x34\\x67\\xac\\x56\\xff\\x2e\\xab\\x22\\xcc\\x49\\x84\\x89\\x03\\x6a\\x57\\x41\\x20\\xe2\\xdb\\x76\\x9a\\x3b\\x21\\x50\\x03\\x89\\x14\\x2c\\x78\\xa8\\x7d\\x06\\x9f\\x0e\\x25\\x76\\xca\\xfd\\xa8\\xcd\\xdd\\x79\\x15\\xa9\\x22\\x87\\x73\\xd2\\xac\\x9a\\x07\\x5c\\xb3\\x87\\xf2\\xa8\\x98\\x61\\x72\\x13\\xb2\\xcc\\x50\\x59\\xd1\\x19\\x41\\xbc\\x4f\\xe5\\x86\\x41\\xe7\\xc1\\x75\\x02\\x67\\xe5\\x3e\\x99\\xc4\\x21\\xcb\\x4c\\xf2\\x1d\\x09\\x8c\\xa2\\xd1\\xf4\\x16\\x44\\xf7\\x90\\x89\\x83\\xeb\\x17\\x4a\\x23\\xa7\\x81\\xcf\\x15\\xef\\x38\\xeb\\x91\\x16\\xed\\xa4\\x12\\x3a\\x15\\x22\\xf5\\x3b\\x81\\xfb\\x73\\x68\\xe8\\x07\\x5f\\xb8\\x38\\x59\\xd2\\xcf\\x98\\xd9\\x21\\x53\\x5a\\x70\\x9f\\xaf\\xa9\\x87\\x3c\\x4a\\x03\\x9a\\xae\\x68\\x2f\\x7e\\x62\\x86\\xb8\\x99\\x25\\x7c\\x09\\x24\\x01\\x6c\\xa5\\xbf\\x6d\\x31\\x69\\x09\\x92\\x11\\xa9\\xa4\\xa6\\x74\\x5c\\xdd\\x31\\x98\\xf1\\x33\\x7f\\x60\\x92\\x82\\x27\\xce\\x3c\\x7d\\x60\\x96\\x0b\\x53\\xde\\xdf\\x01\\x1a\\x89\\x40\\xf5\\xc4\\x68\\x20\\x7a\\x38\\x94\\xbb\\x08\\x72\\xb3\\x33\\xcc\\xde\\xc9\\xd5\\xec\\xd9\\x11\\xec\\xbb\\xb9\\x6c\\x9b\\xc4\\xbd\\x48\\x75\\x32\\x0e\\x4d\\x3e\\x9c\\x02\\xd9\\xdc\\x76\\x10\\x9e\\xc4\\x5e\\x61\\xd1\\xcf\\x5a\\xc7\\x29\\xf2\\xe3\\x4a\\x96\\x47\\xb9\\x5b\\xce\\x70\\xb0\\xc6\\x33\\x17\\x1a\\xda\\xf0\\xdf\\xdb\\x5a\\xfb\\xa4\\x03\\x5b\\x3c\\xce\\x8c\\xb7\\x14\\x1a\\xd1\\x42\\xbb\\x7a\\xdd\\x4f\\xc3\\xf9\\x61\\xd4\\x2d\\x72\\x03\\x75\\x4a\\x4e\\x31\\x32\\x21\\xd4\\x87\\x83\\x1e\\x32\\x94\\x7d\\xa9\\x11\\x38\\xab\\x64\\x8b\\x59\\x52\\xef\\x69\\x56\\xe2\\x7a\\xa5\\xd2\\xc1\\x75\\x79\\x4b\\xf8\\x1e\\xf2\\x77\\xfa\\xa6\\xb9\\x05\\xe1\\x45\\x02\\x86\\x68\\x87\\xd8\\x78\\x80\\x60\\x6e\\x81\\xb2\\x7a\\xf0\\x1b\\xb2\\x63\\xec\\xf2\\xc5\\x82\\x05\\x85\\xea\\x6c\\xe8\\xd8\\xb3\\x91\\xd8\\x6f\\xce\\xda\\xdc\\xd1\\x1f\\xdb\\xb5\\x66\\xfd\\xf1\\x47\\xf4\\x02\\x01\\x0f\\xc3\\x5f\\x51\\x57\\xe0\\x36\\x14\\x6b\\x37\\x36\\xc8\\xa4\\x33\\x59\\x12\\x7c\\x26\\x1f\\x6b\\xf0\\xca\\xd3\\xbd\\x8a\\x34\\xcb\\x15\\x09\\xf7\"},\n{{0xc1,0x0b,0x5a,0xc6,0x05,0x5a,0x1d,0xdb,0xca,0x28,0x55,0x2e,0x5c,0x72,0xeb,0xd0,0x52,0x78,0xc9,0x22,0x39,0xb2,0xfc,0xd0,0xc1,0x35,0x36,0x51,0xa8,0xe5,0x59,0xa0,},{0xb2,0x18,0x3e,0x1b,0x00,0x81,0x6d,0x29,0x30,0x5f,0x74,0x68,0xe7,0xe4,0x5e,0xed,0x3f,0xd8,0xf2,0x3c,0x15,0xb3,0x05,0xf9,0xfd,0xa9,0x3e,0x81,0x2d,0x65,0xbc,0x27,},{0x8a,0x9a,0x32,0x17,0xfd,0xf0,0x64,0x3a,0xaa,0xa5,0xc8,0xfb,0x2a,0x88,0xa5,0x56,0x39,0x88,0x59,0xb8,0xfe,0xef,0xbc,0xb4,0x8c,0xcd,0x88,0xe5,0x85,0xa1,0x67,0xc9,0x4d,0xbb,0x5c,0x0c,0xad,0x24,0xd1,0x5b,0xca,0xbb,0xc1,0xed,0xb2,0x1f,0x02,0xa8,0xc4,0x57,0xc5,0x61,0x20,0xa3,0x23,0x4a,0xc3,0x35,0x77,0xb9,0xaf,0x2d,0xdc,0x01,},\"\\x35\\x94\\x90\\x5f\\x9e\\xa4\\x64\\x61\\x5f\\x41\\xb8\\x7a\\xbb\\x9d\\x16\\x73\\x37\\xf2\\x9d\\x45\\xd9\\x7f\\x7a\\x14\\x64\\xec\\x9f\\x2e\\xe5\\x0f\\x90\\xf2\\xe6\\x73\\x39\\x87\\x4d\\x3f\\x20\\x93\\xbe\\x92\\x26\\x10\\x77\\x01\\xec\\x1a\\xab\\x94\\x1c\\x4e\\x05\\x9f\\x1b\\xb2\\x6c\\xe8\\x6e\\x14\\x8d\\x1d\\x9f\\x0d\\xa2\\xa2\\xa0\\xf9\\x82\\x9a\\x36\\x4f\\xb4\\xf1\\x3f\\x58\\xb9\\x60\\xd0\\xf8\\xd7\\x23\\x23\\x28\\x3c\\x44\\x90\\xef\\xdf\\x57\\x87\\x86\\x45\\x89\\x0f\\xf7\\xbc\\x50\\x65\\xda\\xd6\\xe5\\x1d\\xd1\\xe5\\xb9\\xa5\\x07\\x51\\x50\\x97\\x8b\\x33\\x67\\xf1\\xba\\x84\\xe4\\x5f\\xf1\\xf1\\x27\\x6c\\x57\\x6e\\x4b\\xc7\\x2b\\xe8\\xaa\\x8e\\x40\\x5f\\xc2\\xb2\\x7f\\x81\\x46\\xb9\\x99\\x84\\x5f\\xaa\\xa0\\x59\\x5d\\x3c\\xb7\\x0e\\x5d\\x37\\x12\\xed\\x54\\xa0\\xfb\\x3e\\x32\\x2d\\x45\\x38\\x0b\\x5d\\xe3\\x60\\x9b\\x96\\x7b\\x95\\x9b\\xca\\x5a\\x58\\x3c\\xc5\\x20\\xcd\\xcb\\x7b\\xcb\\xb8\\x29\\xaa\\x25\\xd7\\x93\\x20\\x95\\xec\\xb3\\x03\\x92\\x3c\\x25\\x60\\xaf\\xc3\\xfd\\x73\\x24\\xb7\\xb7\\xac\\xd0\\x89\\xa9\\xf0\\x0c\\x03\\xa7\\x3d\\x04\\x3d\\xc0\\xcf\\x0b\\xa0\\xd8\\x41\\x1e\\x2b\\x1b\\x18\\xd2\\x1d\\x2a\\x32\\xa7\\x26\\xa5\\x30\\x59\\x14\\x0f\\x78\\x4f\\x7c\\xed\\xf2\\xf3\\x3c\\xec\\x66\\xfe\\x4a\\xd5\\xcc\\x9e\\xac\\xcb\\xe4\\xae\\x10\\x03\\x6a\\xc3\\x52\\x3b\\xac\\x70\\x0a\\x11\\x3a\\x98\\xb5\\x98\\xe6\\xdf\\x03\\x04\\xc6\\xfa\\x32\\x12\\xac\\xc0\\x4c\\x4e\\x3c\\x7f\\x66\\x87\\x36\\x2e\\xf8\\x6d\\x61\\x7c\\x6d\\xd4\\x83\\xf8\\xd8\\x0c\\xea\\x66\\xd1\\x95\\x11\\x27\\x42\\x8a\\x61\\xc1\\xe1\\x55\\xa6\\x85\\x0b\\xb2\\xaf\\xb7\\xf9\\x1c\\x82\\xd7\\x3e\\xb2\\xb0\\x54\\x3e\\xe8\\xfc\\x1f\\x38\\xe1\\xdc\\xdb\\x3c\\x50\\x3d\\xdc\\x9b\\xa0\\x81\\x24\\x56\\xa5\\xce\\x2e\\x11\\xd5\\x56\\x48\\x7a\\x64\\x69\\x74\\xa7\\xbb\\xf8\\x6e\\x80\\x6c\\x58\\xc6\\x8c\\x42\\x69\\xa7\\xc9\\xbb\\xca\\xc0\\xff\\xef\\x98\\x35\\xb3\\x3d\\xc4\\x49\\xa7\\x54\\x79\\xec\\xd2\\x3f\\x6d\\x14\\x9c\\x1e\\x5e\\xa8\\xb6\\x92\\x08\\xff\\x36\\xe5\\xfb\\xd6\\x82\\x95\\x55\\x03\\x18\\xbf\\xa0\\xd3\\xb1\\xd6\\xc1\\xad\\x42\\x70\\xbc\\xab\\x09\\x04\\xae\\x53\\x49\\x1f\\x9b\\x1c\\xa5\\x02\\xe0\\x12\\xee\\xd7\\x7c\\x42\\x7d\\x49\\xa0\\x96\\x2f\\x10\\x55\\x12\\x5d\\xd7\\xb5\\x37\\x33\\xd8\\x52\\x89\\x34\\xb5\\x58\\x0d\\xd5\\xfd\\x5b\\xbe\\x85\\x49\\x78\\xba\\xe3\\xd2\\x5b\\xb4\\xae\\x94\\x4e\\x90\\x65\\xe8\\xe2\\xe0\\x79\\x46\\x51\\x8a\\x6f\\x54\\x8e\\x36\\xe0\\x56\\xbe\\x82\\x4d\\x9e\\x02\\xa7\\xa3\\xea\\xad\\xd3\\x79\\x29\\xf5\\x81\\x01\\xcb\\x18\\x53\\xbe\\x3d\\x75\\x47\\xf5\\x8f\\x49\\xe3\\x8b\\x01\\x8a\\x74\\x8d\\x3f\\x19\\xc4\\x85\\x82\\xab\\xbd\\xbe\\x95\\x3a\\x8a\\x25\\xba\\x9d\\x36\\x5d\\xea\\x83\\x59\\x35\\x89\\x9c\\x19\\xfb\\x0b\\x51\\x90\\x6a\\xa9\\x72\\xc5\\xac\\x45\\xe9\\x9c\\x40\\xb3\\xb7\\x6e\\x35\\xd3\\x27\\xe3\\x21\\xe8\\xae\\x23\\x06\\xa6\\xeb\\x3d\\x8c\\xb6\\xec\\x2f\\xa5\\x39\\x9a\\xdd\\x19\\xea\\x00\\x28\\xa0\\x17\\x92\\xc0\\x8e\\x27\\xc1\\x6c\\xf4\\xf8\\x5a\\xaa\\xae\\x72\\xf9\\x86\\xb0\\x99\\xf9\\xeb\\xe4\\xad\\x0b\\x25\\xd0\\x6d\\x3d\\xe4\\x4a\\x8b\\xfa\\x52\\x84\\x4b\\xe4\\xa9\\x39\\x44\\x83\\x3c\\xe2\\xad\\xd5\\x1b\\xb5\\x54\\xb3\\x56\\xa7\\xdc\\x49\\x74\\x8d\\xd4\\x5a\\xe7\\xec\\x9e\\x8d\\xb4\\x26\\xc9\\x7a\\x25\\xda\\x5e\\xdd\\x3b\\x62\\x1e\\x4a\\xdb\\xde\\x48\\x19\\x7a\\x33\\x14\\xde\\x1c\\x50\\xf4\\xd6\\x00\\x20\\x27\\xdd\\x75\\x19\\xdd\\xe3\\xe1\\x57\\x29\\xe4\\x86\\x95\\x5a\\xc4\\x0d\\x9d\\x66\\x87\\x6f\\x90\\x66\\x8c\\x68\\x9d\\x8a\\xb5\\x98\"},\n{{0x06,0x1b,0xdd,0xab,0x28,0x0b,0x0f,0xdc,0xb2,0x6b,0xfd,0x9a,0x0f,0xc7,0x21,0xf6,0x8f,0x88,0x34,0x3b,0x5d,0x39,0x83,0xa1,0x6b,0x6d,0xfa,0xa5,0xe7,0x69,0x69,0xf3,},{0x81,0x55,0x78,0xbb,0xa6,0xe7,0x07,0x0e,0xbd,0xec,0xa1,0x17,0x56,0x8b,0xd7,0x7e,0xbf,0xf9,0xe1,0x4c,0xb8,0xbc,0x20,0x0c,0x32,0xbd,0x87,0xdb,0x1f,0xb3,0x7d,0x6c,},{0xb8,0x32,0x97,0xcc,0xdd,0x6d,0x00,0x98,0xeb,0xf5,0xd1,0x32,0xd1,0x74,0xde,0x19,0x58,0x31,0x1a,0x76,0x6b,0xcc,0x4d,0xa1,0x5f,0x86,0x4d,0x80,0x1f,0x38,0xe0,0x9d,0x61,0x3e,0x7a,0xa8,0xc3,0x36,0x30,0x27,0x35,0xd7,0x5b,0xe4,0x16,0x6d,0x73,0xb0,0x18,0x4b,0x0e,0x0b,0xc5,0xef,0x39,0xed,0xbc,0xcb,0x6e,0x0e,0x61,0xaf,0xeb,0x0c,},\"\\xee\\x76\\xb4\\x0c\\xd4\\x29\\xea\\xc7\\xbc\\x12\\x83\\x9c\\xa2\\xf7\\xcd\\x31\\xf1\\xe0\\x09\\x8a\\x39\\xc5\\xfc\\x19\\x80\\x5b\\xe0\\x33\\x1f\\x44\\x79\\x9e\\x31\\x8d\\x12\\x57\\x1f\\x06\\xe2\\x99\\x37\\x53\\xa3\\x68\\x5c\\xd2\\xa9\\x6b\\x23\\x01\\xe2\\x00\\x24\\x20\\x9a\\xdc\\x5a\\xdf\\x74\\x79\\xff\\x90\\xc4\\x77\\xc3\\x69\\x5a\\xbb\\x99\\xbd\\x28\\x57\\x9d\\xbc\\x78\\x31\\xa1\\x92\\xbe\\xed\\x0c\\xe1\\x7b\\x03\\x8b\\x20\\x76\\x48\\x00\\x65\\x3a\\xf7\\xaf\\x02\\x4e\\x2a\\x10\\x4e\\xd0\\xf3\\xe5\\x2d\\x4b\\xbd\\x3e\\x10\\x9c\\xf1\\x26\\x29\\x1f\\x49\\xb0\\xa2\\x1b\\xe4\\x33\\xc1\\xc5\\xa2\\x58\\x9e\\xa5\\x72\\x99\\x7f\\x63\\xd2\\xbb\\x39\\x72\\xd5\\x32\\xbe\\x35\\xa0\\x47\\x1e\\xf0\\x57\\x3d\\x79\\x5c\\x07\\x2b\\x6a\\x86\\x85\\xb9\\x5e\\x47\\xb0\\x9e\\xa9\\xf4\\x75\\xd9\\x3b\\xf1\\x2b\\xbd\\x77\\xb7\\xd2\\xbf\\x5d\\x5b\\xdd\\xf0\\xae\\x02\\x37\\x53\\x71\\xd1\\xd7\\x99\\xea\\x92\\x04\\xbe\\x38\\x9e\\x6a\\x8e\\x5d\\xee\\xdc\\xd4\\x92\\x02\\xe9\\x2d\\xf7\\xc3\\xe7\\x61\\xf9\\x2e\\xf8\\xd7\\x9f\\xa7\\x38\\xd2\\xc5\\xbc\\x28\\x0e\\xd3\\x28\\x79\\x83\\x2f\\xf2\\xb0\\x26\\x42\\x45\\x89\\xcd\\xbd\\x52\\xd1\\x5b\\x60\\xf2\\xaa\\x35\\x26\\xb8\\x98\\x84\\x9a\\x34\\xa8\\x5f\\xf1\\xc4\\x7d\\xc6\\x55\\x4b\\x85\\xac\\x76\\xaa\\x79\\x35\\xcb\\xf3\\xf7\\xbc\\x80\\xad\\x00\\x91\\x92\\xa8\\x75\\xca\\x20\\x9b\\x40\\xfe\\xb0\\x47\\xcc\\x44\\x69\\x68\\xf9\\x70\\xda\\x47\\xb8\\xcd\\x67\\xda\\x7e\\xb4\\xe5\\x4a\\x0e\\x5a\\xb2\\x0c\\xb3\\x5b\\xc6\\xfb\\x7f\\x13\\x30\\x7c\\xe6\\x7e\\xb6\\x20\\x4a\\x67\\xce\\x9b\\xb1\\xd1\\x39\\xc1\\xb4\\xbd\\x5d\\xbe\\xd5\\x80\\x10\\xc8\\x7b\\xf8\\x31\\xe6\\x52\\x2e\\xe1\\x82\\xda\\xd9\\x45\\x80\\x4b\\x76\\x7c\\x4d\\xf2\\x55\\x4f\\x15\\xb9\\xe9\\xaf\\xd2\\x59\\x9e\\xf2\\x58\\xc6\\x7a\\x22\\xca\\xeb\\x92\\xa5\\x79\\x88\\x00\\x6b\\xbc\\x72\\xc1\\x04\\xfa\\xc7\\xe5\\x41\\x3c\\xd3\\xd3\\xb8\\x02\\xc8\\x3e\\x63\\x9e\\xaf\\xe2\\x12\\xa3\\x8b\\xb7\\xef\\x77\\x9a\\xf1\\xa9\\x4e\\xe1\\x37\\xf6\\xc6\\x06\\x67\\xbc\\x48\\xf2\\x7b\\xf4\\xa2\\x22\\x41\\xbc\\x44\\xbb\\x60\\x33\\x83\\x62\\x39\\xbd\\x6e\\xaf\\x3e\\x2e\\x22\\x31\\x87\\x84\\x1e\\x46\\x41\\xb0\\xf4\\xe9\\xff\\x8d\\x5a\\x41\\xdd\\xbe\\xab\\xb4\\x13\\x8f\\x6b\\x58\\x5a\\xce\\x0f\\xb6\\xb5\\x3d\\xc3\\xc9\\xed\\xc0\\x37\\x3b\\x60\\x47\\xf2\\x7d\\x83\\x5e\\x8e\\x24\\x66\\x44\\xfd\\x83\\x2c\\xcf\\xe0\\xdf\\x25\\xc3\\xd7\\xda\\x18\\x7c\\x9f\\xa0\\x54\\x20\\xd4\\x34\\x55\\xf2\\xd0\\x8b\\x57\\x19\\x29\\x38\\x6b\\x59\\xc6\\xe0\\xe1\\x0a\\x35\\x60\\x1d\\xa8\\x99\\xb1\\xb4\\xdc\\x3d\\x95\\xb6\\x7d\\xd9\\xa8\\x38\\x18\\xb0\\xa3\\x18\\xbf\\xdd\\xa0\\x64\\x64\\xb4\\xa4\\x2d\\x3c\\xb9\\x85\\xf3\\x0e\\xc9\\x7d\\x6a\\x2a\\xf1\\x32\\x91\\x15\\x5d\\x60\\xce\\xc5\\x7c\\xbd\\x58\\xd5\\xcf\\xcb\\x35\\xc1\\x85\\x35\\xe8\\xd2\\x99\\xb5\\xb0\\x07\\x59\\x08\\x92\\xea\\x94\\x9d\\x1b\\x13\\x7a\\x62\\xb3\\x9a\\x43\\x6c\\xd7\\xe5\\xb9\\xf8\\xd1\\xb6\\x93\\x8d\\xba\\xa6\\x2c\\x22\\x68\\xd4\\x59\\xc6\\x22\\x0a\\x3e\\x6f\\xcb\\xf8\\x0b\\xa0\\x11\\x8a\\xcd\\x23\\x42\\x56\\x3f\\xbd\\xbc\\x1f\\x7c\\x9d\\xba\\x7e\\xa2\\xc0\\x72\\xaf\\xc8\\xae\\x21\\x28\\xe3\\xeb\\xca\\x06\\x44\\xff\\xd8\\x16\\x3e\\x80\\xa1\\xa5\\x57\\xd9\\xd3\\x90\\x34\\xcc\\xd9\\xdb\\xd1\\x2c\\x88\\x55\\xa6\\xf9\\x16\\x5b\\x08\\x01\\x83\\x9c\\xf6\\xe0\\x7a\\x9f\\xba\\x4c\\x64\\xd9\\xc0\\x99\\xe1\\x54\\x10\\xe2\\x90\\xe6\\x77\\x03\\x1b\\x65\\xcf\\x7d\\xeb\\x00\\x79\\xbd\\xad\\xc5\\x73\\xcc\\x05\\x6d\\x76\\x66\\xd9\\x5d\\x03\\x3a\\x0b\\x6b\\xdb\\xa7\\xec\"},\n{{0x2c,0xab,0x5b,0xf5,0x5f,0xfa,0x91,0x4e,0x9a,0xd0,0x76,0x22,0x19,0x0d,0x34,0x3e,0xc5,0x5c,0x13,0xcd,0x91,0xb3,0x88,0xcb,0x75,0x00,0xff,0xe0,0x6d,0xf7,0xc1,0x80,},{0xb6,0x1e,0x43,0x2b,0xb9,0x7c,0xba,0xe3,0x88,0xa2,0x57,0x8a,0x74,0x84,0x99,0x8e,0x00,0xe9,0xad,0x3d,0xdf,0xd6,0xca,0xb8,0xd3,0xa5,0xfc,0x5b,0xa0,0x43,0x07,0xc8,},{0x4c,0xf0,0x8f,0x4f,0xab,0xbd,0x06,0xdc,0xcb,0xcc,0xe2,0xa7,0xa5,0x94,0x1f,0xe9,0xaf,0xdd,0xc4,0xd2,0xd0,0xbc,0x80,0x80,0x2e,0x93,0xb1,0x2c,0xb1,0x35,0xd3,0xac,0xf6,0x51,0x1e,0x0f,0xe4,0x11,0x3c,0x5e,0x3c,0x55,0x41,0xb2,0x7d,0x3a,0x21,0x50,0xa7,0x57,0x74,0x2a,0xc6,0x5f,0x95,0xa9,0xce,0x66,0x73,0xff,0x0c,0xd2,0x1c,0x0f,},\"\\x2c\\x2d\\x04\\xdc\\x3a\\xd1\\x98\\x23\\x59\\xec\\xd5\\xbc\\x3e\\xe0\\x35\\xf3\\x49\\x8e\\xed\\xff\\x61\\x04\\xa9\\x3c\\x60\\x2a\\xf2\\x17\\x9a\\xeb\\x2c\\xb1\\xf4\\x1c\\x5c\\xdb\\x0a\\x77\\xb1\\x24\\xf9\\x46\\xaa\\x8a\\x82\\x4a\\xa3\\x07\\x6c\\x2e\\x1a\\xcf\\xd4\\x8f\\x68\\x07\\x0b\\x26\\x27\\x6a\\x65\\x6b\\x4a\\x47\\x58\\xab\\x15\\x1a\\x6a\\x9c\\x41\\xbd\\x74\\xe0\\x9b\\xbd\\x9a\\xdc\\xce\\x1e\\x87\\xa0\\xa8\\x0d\\x17\\xfd\\x92\\xe8\\x5e\\x4b\\xda\\x47\\x2c\\x98\\x8b\\x6b\\xb1\\x18\\x3b\\x7e\\xe5\\x9a\\x09\\xd8\\x05\\x70\\x46\\x6d\\xb9\\x0d\\xd3\\x74\\x95\\x79\\xc4\\xeb\\x19\\xab\\x75\\xfc\\x15\\x2e\\xcd\\xcd\\x68\\xcd\\x10\\x78\\xef\\x06\\xe5\\x93\\xc7\\x35\\x16\\xfa\\x82\\x91\\x48\\x1a\\x66\\x7d\\x3f\\x95\\xbf\\xeb\\x14\\x4b\\xab\\x59\\xd6\\xdd\\xc7\\x3a\\x27\\x95\\xc1\\x01\\x7e\\x09\\x53\\x6b\\x31\\x62\\xe4\\xbc\\x58\\xf8\\xea\\xd3\\x89\\x57\\x01\\x8c\\xfe\\xc7\\x2b\\xad\\xbf\\x22\\x81\\x9a\\xb0\\xb4\\x06\\xc6\\x47\\x30\\xfc\\x73\\xfd\\x9e\\xe6\\x1f\\x74\\x18\\x7e\\xda\\x91\\xed\\x4e\\x79\\x93\\xe6\\x68\\x84\\xaf\\x43\\xef\\x4c\\x6b\\xf7\\xf7\\xc3\\x79\\xe8\\xf0\\xf6\\x3d\\xcb\\x80\\x41\\xe2\\x6b\\x8b\\x82\\x92\\xb6\\xb6\\xd1\\x90\\xe4\\xad\\xf4\\x30\\xfa\\x82\\xdd\\x74\\xc5\\x73\\x85\\xb9\\x19\\xc4\\x46\\xdb\\x37\\xb5\\xe8\\x76\\x7e\\x4a\\x0c\\x95\\x01\\x3b\\xe8\\x9b\\x2b\\xc4\\xe9\\xfd\\x62\\x75\\x4a\\x84\\x44\\x18\\x40\\x09\\x68\\xae\\xd2\\xdd\\x32\\x8d\\x7b\\x1d\\xc9\\x1e\\x1a\\x2b\\x30\\x09\\xdc\\x7a\\xd1\\x40\\xa0\\x68\\x6f\\x67\\x31\\x68\\xa6\\x0e\\x88\\xd8\\x0c\\x52\\x0f\\xc2\\xdc\\xfc\\x56\\xca\\x9d\\x4b\\x0c\\x88\\x85\\x90\\x99\\x23\\x07\\x14\\xde\\xc8\\x3d\\x26\\xb4\\x63\\x05\\x54\\xdc\\xb9\\xc4\\x90\\x18\\x95\\xf7\\x8f\\x38\\x34\\xb0\\x97\\x66\\xb6\\x7a\\x46\\x5d\\xe8\\xc9\\x49\\x00\\x65\\xbf\\x56\\x83\\x39\\x24\\x33\\x99\\xfd\\xc9\\xd5\\x10\\x03\\x24\\x66\\x7c\\x5a\\xb2\\x8f\\x35\\xc0\\x0f\\x61\\x25\\x63\\x8e\\x61\\xda\\xb7\\x0d\\x1e\\xec\\x48\\x95\\x1d\\xe0\\xfb\\x3f\\x7b\\x23\\xd3\\xcd\\x98\\x24\\x37\\xc6\\x34\\x73\\x41\\x5b\\xef\\x37\\x4a\\x66\\x32\\x96\\xf2\\x98\\x6b\\x1a\\xe9\\x57\\x9b\\x9f\\xfc\\xe7\\x1e\\xc3\\x5e\\xec\\xa1\\x16\\xd1\\x94\\xf8\\xfb\\xa9\\xa4\\x5a\\x91\\xba\\xe2\\x7a\\xc4\\x55\\xdb\\x71\\xa6\\xb0\\x1a\\x72\\x9d\\x0c\\x13\\x5f\\xcd\\xcb\\xc2\\x3e\\x50\\x4a\\x29\\x43\\xc0\\x0a\\xa4\\x20\\x70\\x51\\x9d\\x9c\\xd7\\x7a\\xe6\\x75\\x4f\\x31\\xeb\\x46\\xa3\\xe5\\xbe\\x9e\\xeb\\x3f\\xc8\\xd3\\x1f\\xf1\\x82\\xda\\x9b\\x08\\x7b\\xe3\\x46\\x2c\\x84\\x59\\x12\\x6e\\x86\\x29\\x09\\x23\\x2f\\xd5\\xf2\\xd8\\x9c\\x01\\x81\\x59\\x57\\x61\\x1e\\x6a\\xe7\\xca\\xa9\\x8b\\x60\\x53\\x77\\x6a\\x77\\x15\\xc2\\xf9\\x3c\\xcf\\x03\\x08\\x87\\x03\\x0c\\x56\\xc2\\xb8\\x22\\x6d\\xae\\x29\\x77\\x99\\x5a\\x6d\\x3f\\x1e\\x9d\\x79\\x11\\xa9\\xc9\\xd2\\xa3\\x03\\xf0\\xe0\\x1f\\x32\\x33\\x8e\\xfd\\xaf\\x8e\\xe6\\x3f\\xc4\\x1b\\x25\\x39\\x9c\\xff\\xd0\\xb3\\x5f\\x7e\\xe5\\x67\\x6b\\xd8\\xfd\\x3d\\xa2\\xcb\\xee\\x4a\\xe2\\xea\\x98\\x08\\xd7\\xe7\\x35\\x83\\xd9\\x94\\x33\\x99\\x31\\x46\\x67\\x4a\\x40\\x40\\xf4\\x2f\\x63\\xd1\\xb3\\x13\\x5c\\xc7\\x97\\xa8\\xd8\\xf0\\xb8\\x85\\x73\\xa3\\x28\\x90\\x69\\x6c\\xac\\x94\\x39\\xd1\\xe1\\x5d\\x19\\x6d\\x90\\x90\\xb6\\x2b\\x6d\\xb7\\xe6\\x3c\\x96\\x47\\x2d\\x94\\x6e\\x66\\x8c\\xbd\\xa1\\xf4\\xdb\\x88\\x93\\x00\\xcd\\xcc\\x25\\xe8\\x4c\\x9f\\x38\\x57\\xd1\\xd9\\xe5\\x32\\x41\\xcf\\x62\\x5f\\x39\\x09\\xaf\\x1c\\x8a\\xaf\\xf4\\x30\\x9f\\x68\\xf6\\x54\\xb7\\xa1\\x5b\\x67\\x71\\x1c\\x5b\\x7f\\x9d\\xe7\\x67\\x75\"},\n{{0xdd,0x7b,0x59,0xa3,0x3d,0x97,0x0b,0xef,0x62,0xe0,0xe2,0x1a,0x7b,0x6e,0x4c,0x30,0x96,0x06,0x86,0xf1,0x7f,0x49,0xaf,0xdb,0x4a,0x9f,0x4e,0x80,0x8e,0x35,0x5c,0x7f,},{0x53,0xa0,0xe5,0x72,0x77,0xd9,0xbb,0xee,0xcf,0x99,0xc4,0xd1,0x38,0xfd,0x66,0xfa,0xfc,0xae,0xc7,0xbc,0x5f,0x56,0x7f,0x83,0x20,0x80,0x0c,0x4e,0x58,0x4f,0xf8,0x2e,},{0x87,0x29,0x4d,0x22,0xd4,0xad,0x0d,0x08,0x14,0xe2,0xd6,0xd5,0xfa,0xf5,0x57,0x49,0xe9,0xb3,0x98,0x03,0xb4,0xd4,0xb7,0x87,0x9e,0x60,0xb7,0x77,0xc1,0xfc,0x41,0x58,0x4f,0xe1,0x51,0x35,0xba,0x11,0x23,0xff,0x5f,0x20,0x0d,0xb3,0x5a,0x34,0x68,0xdd,0x4d,0x58,0xda,0xd7,0x7b,0xd9,0x6e,0xe2,0xb8,0x88,0xa5,0xa8,0xb1,0x8c,0x32,0x04,},\"\\x75\\x58\\x03\\x67\\x93\\x05\\x18\\x16\\x8b\\x0a\\x76\\x4d\\x09\\x58\\xbe\\xc4\\xfc\\x46\\xcf\\x59\\x19\\x99\\xeb\\x37\\x37\\xe4\\x2a\\x02\\xea\\x72\\xd2\\x10\\xda\\xad\\x53\\xe5\\x4a\\x7c\\x2c\\x13\\x4a\\x6d\\x47\\x83\\x37\\xd2\\x63\\x33\\x68\\x54\\x81\\x70\\xed\\xef\\x0d\\x85\\x17\\x9f\\x30\\x23\\xe1\\x50\\x38\\x68\\xa6\\xe5\\xe2\\x77\\x5e\\x41\\x2a\\xc0\\x5f\\x05\\x89\\xd4\\x2a\\x37\\x7e\\x75\\xaa\\x6b\\x8f\\x52\\x20\\xa7\\x69\\x9a\\xe8\\xaf\\xf0\\x10\\x94\\xec\\x46\\x9d\\x63\\x61\\xd3\\xe8\\xf3\\x86\\x15\\xed\\xcd\\xa4\\xd2\\xd5\\x28\\x9a\\xcf\\x73\\xdb\\x64\\x56\\x98\\x57\\x80\\xc9\\x2e\\x07\\xf6\\x2c\\x77\\xa9\\x09\\xfb\\x6e\\xf5\\x98\\x82\\x20\\x62\\xbd\\x57\\x2b\\xf7\\x05\\x8d\\xcb\\x83\\x5e\\xf3\\x44\\x3d\\x3e\\x47\\xb5\\xc6\\x03\\xd9\\x27\\x36\\xdd\\x1d\\xf2\\x6b\\xe4\\xb9\\x28\\x3b\\x76\\xe3\\x21\\xd5\\x5c\\xe2\\xb6\\x38\\xcd\\xe2\\x25\\x77\\xca\\x59\\xc9\\x63\\xc2\\x47\\x95\\x56\\xc5\\x75\\xcc\\xb0\\xd6\\xd1\\x8c\\x80\\x4e\\x2e\\xb0\\x1f\\xf5\\x35\\x81\\xeb\\x04\\x0f\\xfd\\x2c\\xc4\\x67\\x60\\x73\\x7a\\x74\\x67\\x2e\\xa6\\xbf\\x78\\x05\\x8a\\x6a\\x0a\\x1f\\x5e\\xbf\\x56\\xde\\xcb\\xf9\\x4b\\x54\\xaf\\xb2\\x3c\\x11\\xd3\\x41\\x79\\xbf\\x09\\x76\\xb4\\x15\\x80\\x17\\xd4\\x07\\xc9\\x5a\\x40\\x1f\\xa6\\xf9\\x62\\x4d\\x77\\x13\\x5e\\xae\\x81\\x41\\xeb\\xea\\x9f\\x35\\xd5\\xf5\\x1b\\x3d\\xed\\x99\\x5c\\x7f\\x70\\xc0\\x25\\xb0\\x94\\xad\\xef\\x2b\\x07\\x1f\\x97\\x11\\x55\\xd7\\x79\\x6d\\x61\\x3a\\x55\\x0d\\x09\\xe7\\xf4\\xdf\\xc3\\x45\\x17\\xb3\\xf8\\xfa\\x43\\x93\\x28\\x6a\\x2b\\x22\\x80\\x17\\xda\\xf2\\xe0\\x15\\x38\\x7e\\x13\\x52\\x7f\\x63\\x66\\x1d\\x3c\\x13\\xe7\\x8e\\x90\\xfb\\x29\\x55\\xee\\xe3\\x45\\x73\\x91\\x19\\xb7\\x91\\xf0\\x5b\\x07\\xc8\\xf4\\x2a\\x43\\x6e\\xfc\\xad\\x1e\\xc5\\xea\\x10\\xf3\\x08\\xf8\\xe2\\x3c\\xa9\\x8b\\xc6\\x5a\\x5f\\xd9\\x39\\x3e\\xfa\\xaf\\xe5\\xcd\\xef\\xba\\x81\\x05\\x81\\x70\\xcc\\x54\\x93\\xc0\\x0c\\xed\\xf2\\x54\\x09\\x74\\x35\\xd2\\xe2\\xfd\\xe5\\x5f\\x86\\x6b\\xb8\\x2d\\xbd\\xfb\\x91\\x54\\x34\\x49\\x74\\x86\\x63\\x59\\x16\\x7b\\x46\\x6c\\xaa\\x90\\x9b\\x91\\x53\\x0c\\x9c\\x7e\\xe8\\xc5\\x3f\\xa9\\x01\\x64\\xbb\\xd0\\xb1\\xfa\\xdb\\xdc\\xd0\\x81\\x27\\xf1\\x9b\\xe5\\x03\\x30\\x71\\x51\\x8d\\x3c\\xf1\\x0a\\xe6\\xbd\\x6f\\x98\\x27\\xe1\\x20\\x6f\\x5e\\xc0\\x95\\xc1\\x98\\x61\\x70\\xe8\\xd5\\xd8\\xe7\\x2e\\x57\\xd4\\x22\\x87\\x01\\xdf\\x2a\\x48\\xc9\\x54\\x87\\x30\\x56\\xcf\\xdf\\xba\\xaf\\xb1\\x0e\\x46\\xa0\\xc1\\xf1\\x44\\xb1\\xa0\\xea\\xcd\\xd2\\xcb\\x66\\xbb\\x91\\x2a\\xc4\\x71\\x78\\x7d\\xab\\xe4\\x83\\x53\\x85\\x91\\x20\\xb0\\x34\\x03\\x56\\x7c\\x41\\x5d\\xdb\\x88\\xfc\\x0d\\x7f\\xba\\x40\\x69\\xbb\\xfe\\xf4\\x06\\xee\\xd7\\x24\\xa1\\x1a\\xbc\\x04\\x1e\\x8e\\x7b\\xeb\\x66\\x3d\\x0d\\xc9\\x9d\\xce\\xf3\\xac\\x6a\\x14\\x90\\x07\\xb4\\x2d\\xd1\\xf2\\x2a\\x77\\xdd\\x52\\x90\\x18\\x14\\x32\\x51\\x72\\x22\\x4a\\x27\\x78\\xf3\\x66\\xfb\\x9e\\xb0\\x2c\\x81\\x2b\\x84\\x2a\\x42\\x84\\x25\\x61\\xc6\\x8f\\x2a\\xc2\\x31\\xc2\\x6c\\xe9\\xe8\\xb1\\x9a\\xe9\\x1e\\xbf\\xad\\x3c\\x0e\\x9f\\x66\\x36\\x3a\\x13\\xec\\xd8\\xb8\\x97\\xa3\\xd0\\x0a\\x26\\xd2\\x57\\x64\\x8d\\x56\\xc6\\x74\\x74\\x41\\xca\\x1c\\x6e\\xe9\\x9f\\x08\\xdd\\xad\\x25\\xd1\\x16\\xdf\\xad\\xab\\x03\\x83\\x00\\x0d\\x3d\\x72\\x25\\xcf\\x2e\\xff\\x70\\x76\\xb2\\xad\\xab\\x95\\x22\\x29\\x25\\x55\\xf3\\x19\\x32\\x06\\x78\\x60\\x00\\xd4\\x2c\\xa3\\x4d\\x70\\x8d\\xc0\\x42\\x84\\xa9\\x4d\\x17\\x4c\\xc9\\x2f\\x10\\x2e\\xfd\\xdf\\x31\\x48\\xc2\\x99\\x69\\x16\\xd4\"},\n{{0xd8,0x80,0xd2,0xfb,0x06,0x26,0x2f,0x57,0xab,0x87,0x78,0xe3,0x3d,0x16,0xb4,0x73,0x06,0x09,0x78,0xa6,0x54,0x9c,0xdb,0xcd,0x55,0x86,0xba,0x81,0x05,0xf5,0xac,0xa8,},{0x0d,0xe4,0x86,0xd2,0x11,0x5f,0xaf,0x2d,0x54,0x72,0x66,0x77,0x2e,0x43,0x0f,0xd9,0x72,0x7b,0xdc,0xac,0xe6,0xec,0xbf,0x2f,0xe2,0x3a,0xb6,0x0f,0x7b,0x52,0x54,0xb1,},{0x4c,0x00,0xa7,0x16,0x68,0xd3,0x21,0x3c,0x29,0xc7,0x04,0x1c,0x5a,0x03,0x7e,0xdf,0x13,0xc6,0x51,0x4b,0xd0,0xeb,0xc8,0x80,0xc9,0x09,0xca,0xff,0x15,0x06,0xa4,0x5d,0x27,0x80,0x9f,0xb7,0x4e,0x66,0x02,0xea,0x2a,0xad,0x0f,0x84,0x28,0x31,0xb7,0x4f,0xb3,0xd6,0x90,0x0c,0xcc,0x52,0x06,0x52,0xda,0x28,0x36,0x8f,0xd9,0x0c,0xa3,0x0e,},\"\\x11\\x47\\x43\\xe8\\x2a\\x09\\x93\\xce\\xc9\\x70\\x50\\x67\\xab\\xd7\\x7c\\x16\\x8b\\x53\\x67\\x7e\\xde\\x5c\\x15\\x9f\\xad\\x36\\xf0\\x6f\\xc1\\xa1\\x4a\\xcd\\x77\\xf8\\x83\\x79\\x9e\\xd9\\x88\\x3f\\x99\\x15\\xae\\xa6\\x38\\xec\\x17\\x41\\xf3\\xf4\\x21\\x58\\x55\\xfb\\x5b\\x07\\xdf\\x37\\x93\\xbb\\xe5\\xb5\\x68\\xeb\\x35\\x94\\x39\\x1a\\x9e\\xf5\\x72\\x7f\\xab\\x93\\xe5\\x74\\x69\\xb3\\x7d\\xe1\\x25\\xb1\\xe9\\xf2\\xe6\\xfe\\x2c\\x3d\\x1a\\x10\\xec\\xf8\\x7b\\x6c\\x0a\\x66\\x5c\\x6d\\x46\\x0a\\x17\\x0e\\xef\\xb9\\xbf\\x71\\x6c\\xd8\\xfa\\xea\\x97\\x64\\xf5\\x79\\xff\\x34\\xeb\\xfa\\x9c\\x4c\\xfb\\x34\\x70\\x6d\\x8d\\xd7\\xc9\\xeb\\x1d\\x10\\xb2\\xdf\\x46\\x0a\\x46\\xbb\\x57\\x89\\x43\\x0b\\xf4\\x49\\x15\\x8b\\x58\\x24\\xf2\\xa3\\xa7\\xb9\\x18\\xb3\\x3a\\xcf\\x2d\\x9e\\xbe\\x90\\x21\\x6d\\x1b\\x7c\\xbf\\x4a\\xf7\\x70\\xc5\\xdb\\x95\\xfc\\x62\\xff\\x3a\\x3c\\x38\\x5c\\x3a\\x82\\x17\\x85\\x3b\\x73\\x46\\x63\\x4a\\xaf\\x30\\x60\\x72\\x88\\xdb\\x0c\\x48\\x3b\\xd4\\xc2\\x22\\xeb\\x33\\x2c\\xb8\\x9d\\xc4\\xa2\\x17\\xe6\\x33\\x4a\\x26\\x84\\x13\\xa3\\x90\\xbb\\x37\\x1a\\xec\\x35\\x5f\\xbe\\x4c\\x73\\x6f\\x7d\\xa7\\x5f\\x9c\\x88\\x75\\x41\\xa2\\xb7\\xd0\\xda\\xc0\\x18\\xb6\\x13\\x8f\\x02\\x1e\\x77\\x26\\x6d\\xde\\xce\\x84\\x68\\x45\\x2a\\xda\\x39\\xf5\\xe6\\x3d\\x02\\x09\\xb9\\xd6\\xda\\xbf\\x97\\x54\\x13\\x25\\x6d\\xca\\xa1\\x5a\\xc1\\x4b\\x60\\x68\\xe1\\x77\\x05\\x6c\\x7b\\xf0\\xf0\\xf7\\xc8\\x84\\xa3\\x40\\x20\\x32\\x29\\x8c\\xd5\\x59\\xa6\\x31\\x20\\x39\\x40\\x06\\x32\\x32\\x7f\\x9c\\x0e\\x76\\x3e\\x52\\x79\\x8c\\xb1\\x77\\xda\\x44\\x75\\xe4\\xb2\\x40\\x5c\\x15\\x7c\\xa4\\x27\\x74\\x11\\x08\\xd3\\x3e\\xd0\\xb7\\xa3\\xf5\\x34\\x38\\xce\\x6b\\x72\\x5c\\x6d\\xd5\\x81\\x4a\\xf5\\x1c\\xfa\\x45\\xdb\\xce\\xd5\\x57\\xf7\\x26\\xdb\\x13\\x0d\\x55\\xcd\\xe7\\x53\\x3b\\xc2\\x09\\x2d\\x6b\\x69\\x9c\\x2c\\x87\\x0a\\xf2\\x82\\x73\\x1e\\x18\\xd6\\x51\\xae\\x85\\xb3\\xdb\\x4b\\xa0\\x28\\x53\\xf8\\xc8\\x7f\\xd5\\xe3\\xab\\x69\\xbc\\x57\\xb0\\x8b\\x81\\xf8\\x3c\\x23\\x9c\\xcf\\x22\\xe8\\x17\\xe2\\xad\\xa4\\xd0\\xad\\x14\\x48\\x7e\\xd1\\x46\\x12\\xc8\\xb0\\x97\\x3e\\xc0\\x65\\x0a\\x55\\xf6\\xbf\\x9a\\xf4\\xae\\x92\\x56\\xad\\x35\\x46\\xa3\\xf6\\x7d\\xd3\\x5d\\x98\\x7e\\xf2\\x19\\x09\\xa9\\x4c\\x50\\xf0\\xef\\x06\\x40\\xe7\\x55\\xb1\\xc4\\xe1\\xa0\\x12\\xaf\\x0d\\x31\\x76\\x6e\\xeb\\x5d\\xf3\\x1c\\xd1\\x04\\xc6\\x4e\\xb6\\x2e\\xb4\\xef\\xb1\\x39\\xcf\\x30\\x57\\x69\\x40\\x1d\\x21\\x3f\\x96\\xa4\\x88\\xd5\\xee\\x7e\\x3c\\xe3\\x2b\\x01\\x92\\xee\\x8f\\x08\\x31\\xbf\\xbe\\x8f\\xe9\\x5d\\xe9\\x56\\x88\\x6b\\x52\\x4d\\x33\\x19\\xb7\\x3f\\xd5\\x6d\\xc6\\x0e\\x9f\\x1c\\x72\\xd7\\x81\\x55\\xa9\\x7c\\x6f\\x43\\x69\\x7b\\x20\\x46\\x6b\\x3e\\x7a\\xeb\\xd3\\x57\\xb9\\x16\\x96\\xe7\\x34\\x8f\\x45\\x99\\xb3\\x4f\\x35\\x91\\xed\\xdf\\xce\\x2a\\x7b\\xd8\\x49\\xab\\x16\\xf7\\xb4\\x3e\\xbb\\x16\\xe2\\x3d\\x6f\\x52\\x10\\xef\\xa3\\x0a\\xb3\\xba\\x8d\\x32\\xc4\\x06\\x62\\xb8\\x66\\x2f\\xd9\\x11\\x54\\x4b\\xc2\\x45\\x8c\\x65\\x69\\xef\\x75\\xa9\\xb9\\xdf\\x6a\\x0f\\x6d\\x80\\xd6\\x58\\xba\\x86\\xb2\\x41\\xca\\x19\\xce\\x9a\\x6f\\xcf\\x01\\xd3\\xda\\xa9\\x5a\\xfb\\x59\\xc3\\xd8\\x9a\\x18\\xb9\\x48\\x62\\x13\\x94\\x32\\x7f\\xc5\\xe9\\x20\\xa7\\x5f\\x98\\xf5\\xe2\\xb3\\xd6\\xc9\\x5f\\xd8\\x52\\xad\\xf5\\x67\\xb6\\xd3\\x7c\\x54\\xd2\\x97\\x08\\x56\\xa5\\x99\\xf7\\x49\\xe2\\xc5\\x5d\\xac\\x7c\\x23\\xe3\\xfb\\x1a\\x63\\xbb\\x4c\\xc4\\x7b\\x8b\\x94\\xf3\\xd5\\x89\\xac\\x4b\\xee\\xf0\\xaa\\xd4\\xe6\\x29\\x2f\"},\n{{0x58,0x58,0x71,0x94,0x1c,0xc2,0x82,0xe3,0x33,0xd5,0x7b,0xbf,0xc3,0xd4,0xae,0xda,0x86,0x2c,0xfa,0x0a,0x37,0x50,0x30,0xcd,0x59,0x4b,0x36,0x92,0x84,0x8c,0x5f,0x00,},{0x4f,0x34,0x38,0x16,0xcd,0x48,0x05,0x0b,0x67,0x8d,0x3a,0xdf,0x70,0x00,0x88,0x77,0xc9,0xfc,0xf5,0xcb,0x66,0x2c,0xc4,0xad,0x2b,0x93,0x86,0x4c,0x02,0x09,0x07,0x07,},{0x29,0x88,0x56,0xe5,0x70,0x18,0x8a,0xef,0xca,0xd8,0x1b,0xb9,0x70,0xf0,0x76,0x96,0x57,0x70,0xc2,0x67,0x62,0xfe,0x29,0xe6,0x55,0x4d,0xc7,0xaf,0xcd,0xb8,0x01,0x72,0x3b,0xf6,0xc7,0x63,0xb4,0xcc,0xd6,0x5f,0x4e,0x15,0xd7,0xd8,0xea,0x38,0xfc,0xf6,0x7e,0xa9,0xd2,0x85,0x90,0xc7,0x92,0x55,0xc1,0xcf,0xeb,0xa7,0xb5,0xe4,0x5a,0x00,},\"\\x65\\x1c\\x10\\x1b\\x3e\\x2d\\xfe\\xf0\\x78\\x3c\\xe9\\xf6\\x1b\\xd0\\xa8\\xbd\\xc9\\x30\\x7a\\xc0\\x48\\x8b\\x9d\\xd7\\x0c\\xd9\\x0a\\x7e\\xd8\\xf1\\x79\\xa7\\x89\\x35\\x55\\x62\\x95\\xb9\\x1c\\xc2\\xb9\\x72\\x11\\xe3\\xb9\\x81\\xb8\\xda\\xfc\\xb3\\xd0\\x6b\\x76\\xd0\\xb6\\xed\\xa7\\xfc\\x61\\x94\\x5c\\x0e\\xe2\\x65\\x2c\\x5a\\xc4\\x54\\x25\\x64\\x96\\xcb\\x82\\xf9\\x8c\\xc1\\xcc\\x92\\xd8\\x18\\x93\\xb1\\x08\\x2b\\x31\\xb4\\x7e\\x6d\\x22\\xa2\\xde\\x60\\x9d\\xe4\\xce\\x8d\\x7c\\xc4\\xf4\\xa1\\x52\\xc4\\x7f\\x41\\x0d\\x7f\\xc3\\x7d\\x38\\xcc\\xd6\\x29\\xa4\\xb3\\x3e\\x62\\x21\\x89\\x60\\x81\\x79\\x7d\\x07\\x53\\xdd\\x4f\\xaa\\x8a\\x8b\\x44\\xd6\\xc4\\x67\\x71\\x66\\xdf\\xb4\\xd5\\x21\\x54\\x46\\x36\\x0a\\x3c\\x28\\xd8\\xf6\\x8e\\x38\\xab\\x54\\x60\\x8b\\x98\\x82\\x1b\\x83\\xc1\\x87\\xb5\\x39\\x3a\\xd8\\x74\\xa7\\x6f\\x4f\\x5d\\x72\\x94\\x93\\xa1\\xfd\\x74\\xcc\\x77\\x19\\xca\\xea\\x99\\x1d\\x22\\x9c\\x5d\\x0c\\x8c\\x4c\\x5f\\x89\\xd8\\xe4\\x34\\x5f\\x4f\\x52\\x21\\x43\\x13\\x41\\x0b\\x8c\\x06\\xb3\\x31\\x5f\\x45\\xed\\x0c\\x2f\\x91\\x38\\xab\\x96\\x6a\\xec\\x0a\\x64\\x5b\\x6d\\xba\\x76\\x38\\x0a\\x53\\x91\\x23\\xe0\\xf3\\x3b\\x97\\xf3\\xd0\\x60\\x39\\x4a\\x30\\x53\\x58\\x1f\\xfd\\xef\\x3e\\x6d\\x36\\x53\\x11\\x66\\xb5\\x53\\xa9\\xdd\\xe0\\x31\\x05\\xc0\\x4a\\xf6\\x97\\xd9\\x5e\\x95\\x21\\x7f\\xd6\\xdc\\x96\\x8b\\xf3\\xb4\\x48\\xd5\\xf3\\xa8\\xe4\\xf5\\xae\\x7e\\xdc\\x30\\xec\\x78\\xb1\\xae\\xa4\\xf0\\xdb\\x18\\x9a\\x94\\x9a\\x12\\x21\\x38\\xcd\\xfb\\x5f\\x96\\x93\\xdb\\x00\\x4b\\xae\\xd1\\xa4\\x21\\xdc\\x44\\x12\\x2f\\x32\\x72\\x87\\xf7\\x27\\xcf\\x98\\x9f\\xca\\xe3\\xcf\\x3b\\xe3\\xe3\\xdd\\x9b\\x9f\\x53\\x50\\x2c\\xf5\\xd9\\xfb\\x18\\x6d\\xe7\\x91\\xd3\\x10\\xd1\\x22\\x86\\x9c\\x9f\\xc3\\xb6\\x95\\xde\\xc1\\x60\\x74\\x77\\xf3\\xe1\\x49\\xe5\\x2b\\x63\\xcf\\xdf\\xb0\\xd9\\x83\\xe8\\x9a\\xf2\\xf7\\x5a\\x8f\\x48\\x98\\x43\\xec\\x05\\xc5\\xea\\x5f\\x0e\\x72\\x1a\\xca\\xb3\\x87\\xc6\\x80\\x25\\xf2\\x0a\\xbe\\x0d\\x27\\xb4\\xce\\x29\\xf4\\xa6\\x4f\\xb7\\xf8\\xe8\\xa3\\x32\\x87\\x3d\\x3e\\xd1\\x21\\xfb\\x49\\x34\\x14\\xb8\\xcb\\x0c\\x00\\xad\\x3a\\xb6\\x16\\xc5\\xbe\\x52\\x41\\x47\\x1a\\xde\\xe9\\xf8\\xf4\\x69\\x74\\xea\\xe8\\x4a\\x4a\\x8c\\xe6\\xfa\\xbb\\x7f\\x5d\\x9a\\x6b\\x75\\xa7\\xe6\\x70\\x45\\x6f\\xcd\\xcd\\x1d\\x98\\x2e\\x8f\\x82\\x7a\\x4b\\xbb\\x69\\xde\\xc7\\xe3\\x05\\x3d\\xfe\\x83\\x5b\\x70\\x30\\x1b\\x7b\\x76\\x3f\\x00\\x04\\xbc\\x90\\x6e\\x14\\x55\\x42\\xf4\\x87\\xb4\\xdb\\xa2\\xed\\x56\\x1b\\xd1\\xa2\\x03\\x06\\x23\\x6a\\xf4\\xb3\\x6e\\x40\\x68\\xe8\\xc0\\x07\\xb9\\x45\\x4f\\x87\\x41\\xa5\\xf8\\xf0\\x79\\xec\\x1d\\xb8\\x83\\x5e\\xb6\\x54\\x42\\x90\\xd6\\xad\\xb5\\x2a\\x70\\xd7\\x67\\x5d\\x85\\xdf\\x4a\\x9a\\x12\\x55\\xbf\\xd9\\x36\\xc3\\x31\\xfe\\x51\\xc0\\x97\\x7d\\x12\\x4b\\x5a\\x50\\x6d\\x29\\xc6\\xee\\xc3\\x3c\\xaa\\x25\\xd8\\xeb\\x28\\x95\\x2d\\x6f\\xfb\\x9d\\x6e\\x3d\\xa8\\x90\\x38\\x2d\\x88\\x87\\x96\\xd3\\x74\\x60\\x7f\\x66\\x43\\xb8\\x9e\\x73\\x26\\xd9\\xed\\xc4\\x9a\\x0f\\x53\\xbd\\xcb\\x8c\\xc7\\x6f\\xfd\\x39\\x3a\\x77\\x06\\x52\\x2d\\x04\\x17\\x00\\x36\\xcc\\xb6\\x63\\x30\\xdb\\xac\\x9d\\xa7\\xe6\\x16\\x8c\\xaa\\x88\\xcb\\x62\\x18\\x1e\\x55\\xa7\\xb6\\xd5\\x21\\xa2\\x11\\x5e\\x23\\xe2\\x02\\xee\\x24\\x80\\xb5\\x87\\xbe\\x45\\x01\\x44\\x79\\x79\\xa8\\xd7\\x36\\xf9\\x01\\x2e\\xcf\\x00\\xe6\\x7b\\x31\\xe8\\x10\\x4f\\x6e\\x7d\\xf0\\x8a\\x96\\x83\\xcd\\xc8\\x9c\\x03\\xa4\\xe3\\x7e\\xe2\\x29\\x28\\xd4\\x5f\\xa1\\x90\\x94\\xe0\\xd6\\xe7\\xb4\\x0b\"},\n{{0x05,0x88,0xac,0xd4,0xe0,0x9b,0xa9,0x02,0x74,0xc8,0xf3,0xd1,0x57,0x5b,0x2b,0xf3,0x64,0xa7,0x76,0x88,0x4a,0x9a,0xeb,0x41,0x03,0x41,0x5e,0x16,0x3b,0xa0,0xbf,0x81,},{0x3e,0xca,0xe6,0x97,0xb4,0x25,0xd8,0x7e,0x34,0xa1,0xd9,0x44,0x09,0x8e,0x3d,0x32,0xe2,0xc1,0xec,0x56,0xc3,0x62,0x7d,0xf8,0x0b,0xa2,0xb8,0xa4,0x3d,0xdc,0x19,0x03,},{0xa1,0x11,0xb9,0x70,0x6d,0x24,0x2c,0xd3,0x6d,0x6e,0x87,0x41,0xcb,0xb0,0x97,0xb9,0xe2,0xff,0xfa,0x40,0xf4,0x3f,0xd6,0xf2,0xd3,0xd9,0x16,0x93,0x66,0x73,0x32,0xb5,0xf2,0xdb,0x5e,0xe3,0xea,0x20,0xb8,0x32,0x91,0xb8,0x40,0x57,0x95,0xb7,0x4d,0x63,0x3d,0x46,0xf4,0x75,0xab,0x7c,0x47,0x61,0x71,0x18,0x53,0x5b,0x80,0x51,0xd9,0x07,},\"\\xf8\\x28\\xf8\\xc9\\xda\\xd2\\x98\\xc5\\xb7\\x19\\xda\\xa8\\x52\\xb1\\x7e\\x76\\x25\\x98\\xa7\\x0f\\x4e\\xcd\\x16\\xa2\\xfc\\x59\\x6e\\xb0\\x26\\x38\\x99\\xe9\\x83\\xd4\\x4e\\xdc\\xc7\\xbd\\x24\\x0c\\xb0\\x76\\x10\\x60\\x0a\\xe9\\x6a\\xac\\x0d\\xfc\\x3b\\xe3\\x87\\xb6\\x16\\x85\\x08\\x99\\xb5\\xcf\\x44\\xe1\\x76\\x7f\\xfa\\xca\\x3d\\xf3\\x81\\x58\\x59\\x84\\x24\\xf8\\x07\\x14\\x14\\xc7\\x04\\xe6\\x0b\\x42\\x2a\\xd7\\x73\\x77\\xfa\\x7f\\x6a\\x8c\\x5d\\x0e\\xbc\\x02\\x35\\xe2\\xd4\\x3a\\x98\\x4f\\x3a\\xdf\\x75\\x9e\\xb1\\x04\\x47\\xf3\\xc2\\xf6\\xb8\\x0d\\x5a\\x11\\xef\\x41\\xd3\\xa0\\x98\\x52\\xc0\\x93\\x2a\\x1b\\x9a\\xc2\\x3e\\x6f\\x40\\xa1\\x67\\xde\\x21\\x04\\x1b\\xec\\x88\\x85\\xf9\\x43\\x3e\\xb8\\x0b\\x95\\xc9\\x78\\x59\\x58\\x04\\x6c\\xdb\\x7b\\xf1\\x47\\xa7\\x99\\x47\\x82\\x3b\\x41\\x49\\xae\\x05\\x21\\xd7\\xe5\\xaa\\xbc\\x15\\x64\\xfa\\x40\\x44\\x10\\x6e\\x2e\\x39\\x2e\\x9c\\x34\\x44\\x57\\xe9\\x92\\x93\\x76\\xea\\x9b\\x42\\x29\\xc6\\xe7\\x73\\x8f\\xe7\\x90\\x08\\xd5\\x54\\xc4\\x29\\x39\\x69\\x14\\xc3\\x63\\x87\\xf5\\x79\\xb4\\x6b\\xab\\x14\\x6f\\x6a\\x95\\x10\\xeb\\x6f\\x8c\\x85\\x55\\x1c\\xbd\\x84\\xc7\\xdc\\x0d\\x0b\\x1c\\x01\\x0c\\xcb\\xa5\\x96\\x3a\\x7f\\x39\\xf1\\x81\\xe4\\x4d\\xbc\\x98\\xe4\\x95\\xaa\\x63\\xc0\\x10\\x59\\xcb\\xe6\\xa9\\x9b\\x07\\xb4\\x49\\xe7\\x75\\x9c\\x9a\\xf9\\xe0\\xf8\\xd9\\x05\\x4a\\x67\\xa3\\x48\\xfa\\x19\\xd7\\xf9\\x1e\\xc0\\xa4\\xd4\\xf2\\xc7\\x02\\x6c\\x3b\\x84\\x92\\x59\\xa3\\x50\\x41\\x7f\\xd8\\x6c\\xab\\x21\\x42\\xe4\\xcf\\xe3\\xc0\\xaf\\xbf\\x25\\x18\\x2a\\x2d\\x52\\xbd\\x2e\\x0b\\xc9\\x20\\xe8\\x50\\x80\\x83\\x2b\\x91\\xb9\\x27\\xb6\\x29\\x48\\xa6\\x7c\\x31\\x7e\\xb0\\x90\\x91\\x46\\x1d\\x49\\x3e\\xea\\x5f\\xfc\\x47\\xbf\\x08\\x55\\x82\\x96\\x82\\x58\\xa3\\xc8\\xdd\\x81\\xa8\\x58\\x27\\x0b\\xdd\\xaf\\xe7\\x92\\x56\\x84\\xa1\\x5f\\xfb\\x51\\xbc\\xfa\\xab\\x93\\x1a\\xfa\\x46\\x5e\\x30\\x90\\xe8\\x6b\\xe4\\x1e\\x35\\x47\\xcb\\xa2\\x34\\xb8\\x5f\\xe7\\xdb\\x70\\x04\\x96\\xa5\\x05\\x00\\x2d\\xf3\\xca\\x4e\\xae\\xc7\\xb9\\x62\\x78\\xc7\\xd1\\xa7\\x7d\\xb8\\x34\\xa9\\x17\\x97\\xbb\\xb8\\x26\\xd0\\x92\\xaa\\x28\\xb4\\x95\\x45\\xed\\x3b\\x1e\\xda\\x23\\xbe\\x11\\xa3\\xf5\\x28\\xb9\\x55\\xcb\\x0c\\x4f\\xa6\\x6e\\x16\\xe9\\x57\\xe5\\x70\\x4c\\xf3\\x19\\xe5\\xf7\\x9c\\xc0\\x9f\\x2d\\x05\\x4e\\x6d\\xaf\\x19\\xe2\\x92\\x6b\\x11\\xe1\\xe4\\x13\\xff\\x82\\x2c\\xa1\\x41\\xf7\\xc3\\xd3\\x85\\xae\\x95\\xdd\\x20\\xb3\\x46\\xe5\\x83\\xcf\\xb0\\xc2\\x29\\xec\\x39\\xcf\\x88\\x9a\\x54\\x19\\xcd\\x37\\xbc\\x18\\x4e\\xf5\\xfb\\x14\\x46\\x22\\x08\\x0a\\x30\\x2d\\x9d\\x77\\x45\\xc4\\x51\\xf7\\xd8\\x82\\x42\\xcc\\x26\\xb9\\x16\\xa3\\x56\\x9a\\xbc\\x7d\\x1f\\x21\\x6d\\x57\\x79\\x7a\\x47\\x2b\\xc6\\x21\\x76\\x17\\x58\\xe8\\x40\\xeb\\x8e\\x29\\xbc\\x8e\\xfc\\xb7\\xaa\\xfc\\x7c\\xf8\\xf4\\xe5\\x93\\x30\\xd3\\x5e\\xe1\\x07\\x49\\x6d\\xec\\x6e\\x71\\x4b\\x1f\\xa4\\x30\\x98\\x37\\xbb\\x47\\xeb\\x3a\\x06\\xb4\\x60\\x4d\\xd2\\x07\\x33\\xcc\\x0e\\xaa\\xc2\\x64\\x9e\\x18\\xc0\\x73\\x42\\xef\\x55\\xd1\\x9b\\x8d\\x03\\x95\\x91\\xac\\x28\\x69\\xac\\xc3\\x4b\\x6c\\x3c\\x1c\\xa3\\xcf\\x26\\x3f\\xf8\\x4c\\xa4\\x3a\\x5f\\x64\\x65\\xba\\x34\\x88\\x8c\\x10\\x90\\x13\\xb3\\x2b\\xfc\\x0d\\x0d\\x15\\xf5\\xa7\\x6c\\xec\\x27\\x0a\\xb3\\xac\\x9a\\x10\\x63\\x31\\x31\\x2f\\x5a\\x0a\\x84\\x28\\x2c\\x3a\\x3d\\x4a\\xea\\x1e\\x7c\\xf5\\x3d\\xbf\\x8b\\x24\\x0b\\xdd\\x11\\x1c\\x34\\xd2\\xa9\\x3d\\xfd\\x12\\x58\\xfe\\x92\\x67\\x13\\x3f\\x75\\x54\\xdc\\xc2\\x1a\\x8f\\x43\\x9c\\x16\\x5d\"},\n{{0x7d,0x14,0x02,0x3e,0xb4,0x8b,0xbd,0x43,0x76,0x49,0xa2,0x41,0x87,0x79,0x05,0xa3,0xc9,0x32,0xf1,0x46,0x40,0xf2,0x9a,0x0f,0xb1,0x34,0x11,0x4e,0x8f,0x33,0xf5,0x82,},{0xea,0x5c,0x11,0xb4,0xb2,0xc5,0xef,0x4a,0xb7,0x06,0xcc,0xa3,0x47,0x50,0x43,0xc9,0x58,0x18,0xeb,0x56,0x5a,0x79,0x7e,0x33,0x68,0x8a,0xfe,0xac,0xd6,0x8a,0xdc,0xca,},{0x31,0x33,0x9d,0xce,0x23,0x33,0x6d,0xf5,0xb2,0xb1,0x93,0x52,0x2a,0xa3,0xdd,0x2d,0x41,0x14,0xa6,0x6a,0xf1,0x65,0x62,0x89,0xc9,0x52,0xbc,0x11,0xc9,0xb2,0x10,0xf7,0x7a,0x54,0xd4,0x61,0x61,0xf4,0xe0,0xc5,0x2b,0x30,0x13,0xe4,0x0b,0x9e,0x9e,0x84,0x27,0xd8,0x51,0x32,0x5b,0xd7,0x1c,0x4d,0x99,0x35,0x3e,0xee,0xd7,0x51,0x08,0x0d,},\"\\x90\\x01\\xdb\\x31\\xf2\\x79\\xbe\\x50\\x53\\x19\\xb8\\xe7\\x2b\\xde\\x11\\x99\\x51\\x29\\x80\\xdf\\x65\\xf0\\xd8\\xa9\\xb4\\x93\\x04\\x67\\x41\\x3a\\x99\\x7b\\x97\\xa3\\x62\\xb5\\x72\\xa4\\xb4\\x4b\\xc9\\x40\\x48\\x7f\\x18\\xb2\\x08\\xce\\x6a\\xc5\\xc6\\x87\\x16\\xd3\\xaf\\x1b\\xce\\xf1\\x70\\x38\\x3b\\x5c\\x4b\\x5c\\x47\\xe4\\x47\\x37\\x72\\x6f\\x93\\x83\\xbc\\x4f\\x14\\x47\\x68\\xbf\\x5c\\xaf\\xb4\\xe9\\xdf\\xe3\\x97\\x61\\xe6\\xed\\x47\\x89\\x71\\xd1\\xc7\\x0e\\x6d\\xab\\x2f\\xd0\\x49\\x9d\\xff\\x92\\x93\\xb2\\x39\\xd1\\x6c\\x96\\x02\\x61\\xc6\\x82\\x18\\xb9\\xf5\\xb1\\xbe\\xe6\\x90\\xf0\\xd2\\x40\\xc1\\xb3\\xdb\\x71\\x1f\\x9e\\x82\\x1f\\x08\\x09\\xbb\\xeb\\x9a\\xaf\\x24\\x9c\\xcb\\x16\\x8c\\x67\\xd9\\x65\\x56\\x2d\\x24\\xf8\\x48\\x51\\x61\\x40\\xbf\\xd9\\xfc\\x05\\x0d\\x4f\\x20\\xda\\x5a\\x17\\x94\\x46\\x8a\\x9c\\x07\\x25\\xea\\x5c\\x66\\x9d\\x5c\\x63\\x0d\\x93\\x10\\xe5\\x74\\x51\\x07\\xda\\xd3\\x72\\x61\\xb5\\xd9\\x1e\\x38\\xe0\\x85\\x12\\xe6\\xf3\\x73\\xec\\x5d\\xca\\xd5\\xca\\x09\\x07\\x29\\x07\\xc8\\xfb\\x7b\\xf3\\xb9\\x26\\xc3\\x33\\x94\\x90\\xb3\\xf5\\x1f\\x76\\x44\\xe7\\x3a\\xe2\\xec\\x01\\xd6\\x1b\\xe7\\xc6\\x52\\x65\\x36\\xb4\\xff\\xd1\\xab\\x68\\x49\\xfe\\x0c\\x2f\\x40\\xd3\\xbd\\xa2\\xa4\\x9e\\x55\\x50\\xb8\\xdf\\x97\\x90\\x81\\xda\\x85\\x16\\x8d\\x0f\\x71\\x58\\x2b\\x90\\x36\\x77\\x52\\x6d\\x1f\\x1b\\x15\\x11\\xe1\\x38\\xb6\\x84\\xfc\\x46\\xaa\\xc8\\xbd\\x80\\xc3\\xde\\xf7\\xee\\x81\\x38\\x19\\x04\\x61\\x80\\x7c\\x55\\x36\\x12\\x5c\\xb0\\xe2\\xc3\\xd0\\x83\\xa1\\x87\\xc7\\x26\\x9c\\xb5\\x31\\xec\\x36\\x78\\x78\\x7b\\x32\\x55\\x5c\\xf0\\x4a\\xb0\\x93\\xc9\\x00\\x2e\\x7d\\x79\\x2b\\x4d\\x93\\x3f\\x2e\\x30\\x70\\xf3\\x9a\\xc8\\xcc\\xf8\\xd5\\xf5\\x45\\x5f\\x12\\x10\\x9d\\x8a\\x8a\\xeb\\x4e\\x21\\x2f\\xad\\x4a\\x70\\xb1\\x47\\xc0\\x4a\\x7b\\x91\\x84\\x60\\xb1\\x31\\x63\\x76\\xe6\\x40\\x20\\x85\\x95\\x17\\xeb\\x7e\\xe3\\x0c\\x29\\x0b\\xe8\\xb8\\xd6\\xf9\\x67\\x39\\x15\\x25\\x6c\\x3b\\x04\\xb9\\xd9\\x05\\x4b\\x52\\x33\\x8e\\x0d\\x36\\x07\\x85\\xe4\\x6a\\x18\\x28\\x44\\xc5\\xc3\\x76\\x6a\\xea\\x8e\\xd3\\x11\\xb2\\xd4\\x81\\xc0\\xb7\\xb2\\x11\\x4e\\x41\\x8e\\xd1\\x7f\\x8d\\xeb\\xf0\\x1a\\x83\\xff\\x37\\x51\\x70\\x24\\xee\\x9e\\x28\\xe0\\xc9\\x0d\\xce\\x6d\\x05\\x9f\\xfe\\xe4\\x13\\xd2\\x7c\\xd6\\x27\\x83\\xa8\\xb8\\xb5\\x01\\x6a\\xd2\\x76\\xe3\\x9d\\xfd\\x8f\\x8f\\x3d\\xdf\\xc4\\x28\\x10\\x18\\x18\\xce\\x50\\x7f\\x00\\x3e\\xb5\\x8c\\x9a\\x5c\\xc8\\xb1\\xaf\\xf0\\x5a\\xab\\x8f\\x0d\\x7f\\x1d\\x1f\\x6d\\x4b\\x87\\x1d\\xbc\\xed\\x1f\\x3d\\x28\\x66\\x23\\x97\\x52\\xfb\\x13\\xf6\\xe1\\x80\\x34\\xbb\\x2b\\x5a\\x66\\x35\\xca\\xa6\\xec\\xc4\\x62\\xe0\\x58\\xeb\\xe2\\xfa\\x65\\x1d\\x3d\\x0f\\x36\\xe2\\x0a\\x31\\xf7\\x65\\xe4\\xb9\\x58\\x27\\x0b\\xd8\\x25\\xc6\\x81\\x8a\\xac\\x1a\\xd7\\x56\\x31\\x35\\xae\\xed\\xf1\\x4a\\x2b\\x6d\\x39\\x8b\\x6e\\x34\\x00\\x84\\x01\\xb2\\x18\\x46\\x18\\x20\\x07\\x1c\\x5a\\xf7\\x78\\x46\\xcb\\x9c\\x32\\x81\\x90\\xc0\\x61\\xd5\\xaa\\x6e\\x0e\\xcd\\xe7\\xef\\x58\\x56\\xb0\\xe6\\x81\\x4f\\x83\\x3f\\x70\\x40\\x96\\xdf\\x08\\x25\\xfa\\x4b\\x46\\xdc\\xda\\xcf\\xa2\\x7c\\xd8\\x7b\\xd7\\xbf\\xef\\xf7\\xf8\\xca\\xe1\\x66\\xa3\\xa0\\x4d\\x43\\x7c\\x7b\\xe7\\x16\\xc4\\x90\\x45\\xc7\\xbd\\x3d\\x13\\x49\\x62\\x7c\\x9c\\xbd\\x04\\xc1\\x5f\\x00\\xa6\\x96\\xe3\\xcf\\xfb\\xb4\\x5a\\xf2\\x91\\x22\\x62\\x7e\\x7e\\xd3\\x3b\\x42\\x49\\x91\\x3b\\xec\\x00\\xf0\\xe2\\x8a\\xa1\\x12\\x98\\xcc\\xe8\\xb6\\x49\\x08\\x1f\\xe3\\xb1\\x69\\xb4\\xaa\\xea\\xca\\x48\\x5b\\xda\"},\n{{0xe8,0x30,0x6b,0xad,0xa6,0xd5,0x5e,0xb1,0x88,0xd9,0xf7,0x5c,0x81,0x5c,0xc9,0x14,0xe9,0x3c,0x9c,0x72,0x22,0x39,0x1c,0x15,0xbb,0xae,0xaf,0x93,0x54,0x43,0x79,0x35,},{0xbf,0x27,0x98,0xb8,0xe5,0x54,0xf5,0x1e,0x22,0x86,0xc3,0x03,0x4a,0x88,0xe5,0x77,0xff,0x23,0xfa,0x32,0xa6,0x72,0x44,0xea,0x82,0x45,0x91,0x2e,0x8b,0xf4,0x6d,0xa4,},{0xcc,0x66,0x27,0x30,0x8e,0x2f,0x42,0x43,0x83,0xfa,0x70,0x59,0x4f,0x57,0x57,0x91,0x60,0x05,0x40,0x02,0x7a,0x27,0x51,0x61,0x9b,0x28,0x3a,0xff,0xea,0xeb,0xc9,0xc9,0xd2,0x9a,0xc6,0xdb,0x28,0x6d,0xd2,0xc1,0xb5,0x96,0x58,0x7b,0x87,0x8d,0x1d,0xf4,0x78,0x1d,0x43,0x6b,0xb5,0x70,0xc1,0xc0,0xf0,0xd3,0x33,0x68,0xdc,0x66,0x52,0x0b,},\"\\xd7\\x04\\x38\\x09\\xc3\\xe3\\xdc\\x00\\xb1\\x7e\\xfd\\x52\\xc9\\x13\\x0b\\x11\\xb7\\x86\\xf1\\xe2\\x57\\xb5\\xe2\\x2f\\x81\\xa7\\xfa\\xae\\x60\\x0b\\xbc\\xdf\\xd5\\x18\\x53\\x7f\\xe8\\x52\\xc6\\x42\\x35\\x97\\x62\\xfb\\x75\\xe8\\xad\\x85\\x92\\x49\\xe6\\xab\\x49\\xce\\x1b\\xb0\\x4f\\x24\\x92\\xf2\\xaa\\xc3\\x54\\x46\\xba\\x6e\\xb0\\x3e\\x76\\xde\\x3a\\xbd\\x2d\\x5f\\xc7\\xe6\\x14\\x68\\x43\\xad\\xd0\\x42\\x86\\x0a\\x4a\\x16\\xb5\\x9b\\xdd\\x7d\\x03\\x83\\x78\\xa3\\x5e\\x1a\\x04\\xb1\\x21\\x7a\\x55\\x71\\x0d\\x93\\x7e\\x2c\\x90\\x32\\x23\\x2e\\xa2\\xcd\\xd1\\xd2\\x5a\\x0b\\xff\\x71\\xef\\x5d\\x3e\\x0c\\x05\\x6b\\x29\\xcb\\x92\\xf6\\xdf\\x69\\x2b\\xde\\x14\\xdf\\xa5\\x0e\\x13\\x2b\\xeb\\xd8\\x9e\\x9f\\x18\\x33\\x88\\x0b\\x65\\x7a\\x78\\x1e\\x94\\xec\\xb6\\x03\\x04\\x17\\x56\\xe5\\x51\\x7d\\x44\\x23\\xc5\\x6f\\xad\\xc1\\x3e\\x2b\\x31\\x80\\x88\\xfe\\xdd\\xf3\\xb5\\xc8\\x3c\\x20\\xb4\\x6f\\xdd\\xbb\\xa9\\x23\\x05\\xe4\\x86\\x06\\xda\\xb7\\x48\\xce\\x38\\x48\\xb8\\x43\\xf4\\x71\\x1f\\x37\\x0c\\x3e\\xc7\\xd5\\xe1\\x9a\\xb4\\xc0\\xac\\x1a\\xe1\\x5a\\xaa\\xf2\\x3d\\x65\\xfe\\xce\\xda\\xbc\\x08\\x04\\x9b\\x9e\\x29\\x11\\x3e\\x57\\x61\\xed\\x9d\\x1c\\x62\\xeb\\x07\\x5c\\xab\\xb2\\x67\\x4c\\xdb\\xe1\\xe3\\xa8\\x89\\xba\\xe4\\xb1\\xdd\\x31\\xb6\\xa5\\xb2\\xea\\x1b\\x8d\\xed\\xcc\\x3c\\x51\\x5e\\xdc\\x44\\x67\\xc3\\x02\\x31\\x17\\x6c\\xd4\\x4b\\xec\\x8a\\x05\\x79\\x51\\xab\\x5c\\xd3\\x9a\\x96\\x23\\xf8\\xaf\\x84\\x73\\xcd\\x27\\xd9\\x33\\x02\\xbf\\x8a\\xa6\\x24\\xc9\\xc3\\xc5\\x79\\x9d\\xa1\\xdc\\x49\\x44\\x94\\xef\\x8f\\xf1\\xdb\\xe0\\x18\\x7e\\xa5\\x16\\x26\\x70\\xb8\\xd0\\x98\\xc3\\xa9\\x49\\x19\\x39\\x8d\\xad\\xf7\\x9e\\x6c\\x24\\x91\\xc4\\x44\\x39\\x2c\\x29\\xcd\\x50\\xd5\\x74\\x35\\x06\\x32\\x90\\x84\\x2b\\xfa\\x0e\\x85\\x30\\xfa\\xeb\\xc0\\x06\\xd6\\xea\\x78\\x01\\x11\\x7e\\x0a\\x3f\\x01\\x9e\\xe2\\x8f\\xb3\\x79\\x22\\x35\\x40\\x2e\\x2f\\x69\\xb8\\x7a\\x43\\xdc\\x22\\x7f\\x9d\\xe3\\x16\\x02\\x97\\x56\\xc3\\x16\\x7d\\x64\\xa3\\xa3\\xf6\\xd7\\x31\\x60\\x33\\x1d\\x5a\\x18\\xee\\xe5\\xb0\\xe6\\xe2\\x2a\\x66\\x3e\\xfd\\xcc\\x8d\\x67\\xaf\\x3b\\xce\\xd0\\x41\\xea\\x84\\x3a\\x56\\x41\\x60\\x3e\\xc7\\x2e\\xfd\\x64\\x4e\\x17\\x3d\\x19\\x9a\\x8c\\x83\\x0b\\x2e\\xa5\\xfe\\xc0\\x37\\x80\\x27\\xc3\\x72\\x25\\xaf\\xcb\\x60\\x4c\\x4c\\xdc\\xf4\\x09\\xbe\\x1c\\x50\\x9c\\x9a\\x37\\x7b\\xe0\\xd0\\x52\\x41\\x07\\xc6\\xd9\\x2b\\x5f\\x09\\xa2\\x9e\\xfb\\x71\\x09\\x29\\x56\\x70\\xbb\\x1a\\x1d\\xd3\\xea\\x00\\x8b\\xb7\\x91\\x85\\xf0\\x9b\\x98\\xf0\\x20\\xc4\\x3f\\x14\\x39\\x68\\x5b\\x96\\xf6\\x19\\x93\\x11\\xa0\\x90\\x87\\x0f\\x0d\\x9b\\x10\\xd4\\x95\\xcd\\x41\\x0a\\xa9\\x5b\\x7e\\x53\\x74\\x9b\\xe3\\xa6\\xc0\\xfb\\xc7\\x29\\xf9\\x6c\\xf8\\x56\\x43\\x97\\xb0\\x9c\\x13\\x51\\x40\\x16\\x82\\x5f\\x72\\xf1\\x4e\\xb9\\x32\\x94\\xd7\\x01\\x0a\\xcc\\xfd\\x11\\xf1\\x7a\\x6a\\xc8\\xf5\\x44\\x26\\x3d\\x60\\x38\\xd5\\xc7\\xdb\\x29\\x48\\x62\\x91\\xb3\\x0e\\xa4\\x9b\\x6b\\x54\\xcf\\x88\\x82\\x6d\\xd2\\x52\\xcd\\x9d\\xbb\\x57\\xd8\\x41\\xb5\\xa4\\xcf\\x70\\x2a\\x32\\x64\\xfa\\xa4\\xdc\\xcc\\x86\\xab\\x14\\xda\\xf1\\x24\\xef\\x3d\\x53\\x35\\xa6\\x87\\x8d\\x06\\x5c\\x6b\\xa2\\x99\\x91\\x04\\x57\\x65\\xee\\x55\\x42\\xcc\\x9f\\x5d\\x9f\\x35\\x4d\\xcd\\x2c\\x6e\\x0c\\xf7\\xff\\x3a\\x30\\xf6\\x49\\xb5\\x91\\x2d\\x97\\x1d\\x63\\x35\\x78\\xf1\\xe9\\xf2\\x63\\x87\\x4d\\x05\\x65\\xc2\\x47\\x30\\x1d\\xcb\\xd1\\x5d\\x76\\x21\\x1a\\xe2\\xd3\\xd5\\x06\\xfc\\x64\\xde\\xb7\\xe0\\x42\\x56\\x5d\\x43\\x8e\\x2b\\xfb\\x24\\x92\\x43\\xb7\"},\n{{0x36,0x3c,0x1e,0xa7,0xc3,0x2e,0xa3,0x28,0xa0,0x55,0xaf,0x7b,0xd8,0xb3,0xbf,0xd2,0x04,0xfb,0x0b,0xbd,0x4b,0xf4,0x2f,0xfe,0x26,0x2f,0x3a,0x5e,0xbd,0x54,0xda,0x55,},{0x7a,0x83,0xec,0xca,0x51,0xef,0x6e,0x5a,0xa0,0x43,0xa5,0xce,0x04,0xd9,0x28,0x8a,0xdd,0x49,0xa2,0x77,0x54,0x8b,0xd3,0x01,0x6b,0x69,0x3f,0xfa,0x79,0xa2,0x2e,0xdc,},{0x5f,0xd1,0xe5,0xf9,0x92,0x2a,0x12,0xf6,0x36,0xb7,0x2a,0x7d,0x62,0x17,0x09,0x1f,0x94,0x8a,0x55,0xbc,0xb1,0x82,0x6b,0x8f,0xca,0xf9,0x9d,0x26,0x41,0x6c,0x7a,0xb1,0x35,0x1c,0x10,0xf4,0x09,0x3f,0xfd,0x8a,0x2a,0xf8,0x69,0x14,0xa0,0xa9,0x81,0x84,0xec,0x7e,0x06,0xd2,0xde,0xe8,0x7f,0xdc,0x0f,0x4a,0x47,0xf8,0xc6,0x3c,0xf5,0x01,},\"\\xc4\\x1c\\x1e\\x1f\\xb7\\x59\\x54\\xa0\\xae\\x0e\\xbc\\x29\\x09\\x0b\\x9f\\xc5\\x33\\xe6\\x93\\xe7\\xc7\\x10\\x5c\\xfe\\x40\\xef\\x52\\x6e\\x4e\\x12\\xa7\\x40\\x52\\x21\\xf2\\x18\\xc7\\xac\\x01\\x9e\\x1d\\x4c\\x92\\xda\\x28\\x53\\xf2\\xd7\\x26\\xaa\\x62\\x27\\x79\\x24\\xdf\\x0c\\x34\\x3f\\xc3\\xd4\\x7c\\xd5\\xa9\\x9a\\x3e\\x27\\x9b\\x26\\xa1\\xb1\\x3b\\x1f\\x2a\\xa3\\x6f\\x7c\\xcb\\x4b\\x54\\xfb\\xef\\x18\\xbd\\x87\\xa5\\x5f\\x1b\\xc4\\x0c\\xe7\\xb2\\x02\\x91\\x45\\xee\\x7a\\xab\\x39\\x17\\x95\\xac\\x68\\xde\\x61\\x99\\xf5\\x05\\x94\\xfc\\x79\\x61\\x1b\\x85\\x13\\x1c\\x14\\x30\\x21\\xf2\\x6f\\xa3\\x58\\xda\\x0c\\x7c\\x6a\\x65\\xdd\\xe0\\x76\\xda\\xb4\\x88\\x67\\x5b\\x72\\x23\\x09\\xe5\\xed\\x97\\x46\\xd1\\x8a\\x89\\x30\\x99\\x06\\xa7\\xa9\\xdf\\x23\\x7d\\xd2\\x7b\\xd5\\x90\\xcc\\xc7\\x7c\\x40\\x2e\\xf6\\xe1\\x9c\\xa6\\x3c\\xc8\\x6b\\x85\\x16\\x03\\x30\\xee\\x6e\\x1f\\x1f\\x47\\xa2\\xff\\x80\\x7e\\xef\\xad\\xc0\\x09\\x63\\x52\\x0a\\x1c\\x60\\x0a\\x3e\\x45\\xaa\\x7f\\xb2\\x55\\x4f\\x47\\xd8\\x97\\xbd\\x86\\xd8\\x1c\\x3b\\x08\\x77\\x10\\x12\\x22\\xfa\\x78\\x50\\xb8\\x0c\\xe3\\xbc\\x06\\xc9\\xe5\\x8c\\x0c\\x96\\xe3\\x2f\\xec\\x85\\x30\\xc9\\xfa\\x1e\\x41\\x63\\xf0\\xef\\x84\\x56\\x95\\x2b\\xf6\\xdd\\x58\\x04\\x5a\\x36\\x3d\\x61\\x88\\x0e\\x9a\\xc9\\x76\\xa3\\x60\\x3e\\xf7\\x7a\\x4c\\x39\\x5e\\x6a\\x07\\xe3\\x42\\xf6\\x02\\x3b\\x8a\\xf1\\x02\\x25\\xcf\\xf2\\x40\\xef\\xc0\\x36\\x6a\\x79\\x9f\\xd8\\x6e\\x9d\\x06\\x20\\x60\\xd8\\x72\\x40\\x33\\xbd\\xf6\\x75\\x88\\xcd\\x73\\xac\\x28\\x4d\\xe4\\xc6\\x94\\x3c\\xf4\\x5e\\xe4\\xf7\\x5f\\x59\\x37\\xd9\\x7d\\x78\\x10\\x5f\\x0b\\xbe\\xce\\x04\\xd3\\xdc\\xb5\\xe4\\x24\\xef\\xf8\\x9b\\x77\\x3e\\x5d\\x6b\\x4f\\x37\\xef\\xa9\\xa0\\x65\\x4c\\xb3\\xef\\x34\\x52\\x78\\xa6\\x2d\\x87\\x6c\\xfe\\xf9\\xa3\\xdc\\xdc\\xeb\\x70\\x81\\x44\\x18\\x77\\xeb\\xd5\\xfa\\x30\\xc9\\xd9\\x54\\xe3\\x68\\x4f\\xa4\\x76\\xa4\\xf4\\x85\\xd4\\x26\\xfd\\x3c\\x8c\\x32\\xbe\\xa0\\xf9\\xcc\\x20\\xb1\\x5e\\x8f\\xdf\\xc3\\xca\\x4b\\x30\\x2c\\x07\\x4f\\x50\\x81\\x32\\xd1\\x5d\\xe6\\x25\\xc1\\x0a\\xe0\\x73\\x78\\x11\\x46\\x3d\\xcc\\x55\\xfc\\xc4\\x01\\x4b\\x20\\x20\\x8f\\xff\\xce\\xfa\\x9d\\xd4\\x52\\x11\\x9b\\x16\\x52\\xde\\x41\\x34\\x8f\\x69\\xf2\\xc4\\x88\\xf5\\xcc\\x18\\x56\\xd6\\xe7\\x8a\\x5c\\xbe\\x3e\\x37\\x3d\\xd4\\x59\\x8e\\x2d\\x39\\xf8\\x76\\xeb\\x94\\xe0\\xb0\\x1b\\x21\\xfa\\x91\\x29\\xef\\x41\\xb6\\x39\\xf4\\xe0\\x5e\\x69\\xde\\xb1\\x83\\x5e\\xd4\\x4b\\x91\\x12\\xa6\\x86\\x2a\\x5b\\xce\\xa0\\x72\\xc6\\xe1\\xb8\\xf0\\xf0\\x58\\xf4\\x6b\\xac\\x2a\\x84\\x5a\\x58\\x2d\\x14\\x8f\\x17\\x76\\x0b\\x9e\\x0a\\x2b\\xa6\\x0b\\xbb\\xf3\\x88\\x4a\\xf9\\x4d\\xd4\\xc7\\xec\\x9d\\xb0\\x8e\\x9a\\x5b\\xcc\\x6d\\xde\\x13\\x46\\x44\\x2e\\xe1\\xf4\\x70\\x7d\\x1f\\x79\\xb6\\x9b\\xa8\\x67\\xf4\\x18\\xdc\\x27\\x91\\x73\\xf7\\x7a\\xdb\\xc5\\x8a\\xb8\\x5e\\xa3\\x93\\xb9\\xdc\\x68\\x26\\x19\\x00\\xc1\\xca\\xa8\\x2d\\x2f\\x50\\x47\\x4c\\x42\\xae\\xc9\\x11\\x31\\x42\\x78\\xc0\\xaf\\xfa\\x2a\\x6b\\x6c\\x36\\xd1\\xff\\x88\\xf3\\xb4\\x9f\\xb2\\xb7\\xc3\\x39\\xd2\\xa7\\xc2\\xb3\\x04\\x9f\\x8c\\x0a\\x08\\xd1\\x6a\\x9e\\x8d\\xf9\\x3d\\x13\\x0d\\xa4\\x84\\xbd\\xba\\x6d\\xbe\\xc5\\x34\\xcd\\x51\\x09\\x7a\\x04\\x82\\x21\\x10\\x6b\\xab\\x48\\xd6\\x7f\\x95\\x1b\\x75\\x05\\xa1\\x48\\x48\\x92\\xb8\\x57\\x79\\xc5\\xa3\\x11\\x17\\x02\\x12\\x4d\\x95\\x7a\\xcf\\x2d\\xc3\\x52\\xef\\x9b\\xa2\\x47\\xbc\\x80\\xe2\\xce\\x96\\x26\\x9c\\xe8\\x5e\\x78\\xb9\\xeb\\xda\\x98\\x90\\x76\\xdd\\x5f\\xf7\\x3e\\x1e\\xb2\\x75\\xe5\\xd7\"},\n{{0xdb,0x22,0x28,0xff,0xff,0xa9,0xd2,0x53,0x4a,0xef,0x91,0x8f,0xb8,0x5b,0x82,0x1a,0xd3,0x60,0xe2,0xd3,0x9d,0xec,0x5a,0xeb,0x2d,0xb0,0xdf,0x02,0x49,0x7f,0x94,0x16,},{0x6d,0x01,0x95,0x77,0x7f,0x81,0x05,0xff,0x52,0x3b,0x79,0xc5,0x9e,0x3c,0x30,0x81,0xfe,0x89,0xdb,0x6f,0x87,0x03,0x3f,0x09,0x4f,0xa5,0xa9,0x40,0xce,0xf8,0x4b,0xb4,},{0x82,0x18,0x9d,0x34,0x0b,0xc1,0x1c,0xea,0xa4,0x00,0x41,0x0e,0x08,0xba,0xe9,0xd9,0x01,0xaf,0x05,0x91,0x25,0xe9,0x53,0x78,0x6f,0x8a,0x04,0x3d,0xdf,0x11,0xf7,0xb2,0xf8,0xe3,0xb6,0x17,0xac,0xcd,0x78,0xe2,0x93,0x9a,0xdf,0xab,0xf2,0xd2,0x47,0x1f,0xaf,0xd6,0xf5,0xbc,0x45,0xb1,0x40,0x75,0xb3,0x28,0xe3,0x4d,0x80,0x75,0xb2,0x07,},\"\\xfc\\x07\\xcd\\x99\\x04\\x0f\\x13\\xe5\\xa8\\x4f\\x94\\x74\\x6d\\x6b\\xb8\\x68\\xf7\\x52\\xb4\\x48\\xb6\\x2d\\x99\\x59\\x3e\\xf2\\x9e\\x43\\xcc\\x82\\x45\\xf0\\x47\\x0f\\x65\\x55\\x2d\\x64\\x32\\x20\\xf6\\x71\\x92\\x85\\xe1\\x5c\\x37\\xa6\\xd1\\x74\\xae\\xf7\\x60\\x88\\xcc\\xda\\x5f\\x88\\x68\\x5b\\x52\\xda\\xe2\\x84\\xc6\\x5b\\x38\\x0d\\xa3\\x45\\xa2\\xe1\\xaf\\x2e\\xd7\\x64\\x80\\xd2\\x69\\xcb\\x93\\x4b\\x43\\x17\\x62\\x0b\\x79\\x2e\\xbb\\x39\\xb2\\xa6\\x78\\x24\\x7d\\x6d\\x81\\x5f\\x2a\\x5c\\xb9\\xaa\\x56\\x0e\\x4b\\xf6\\xde\\xba\\x4c\\x0a\\x0d\\xdc\\x82\\xd0\\xe5\\xa5\\xa6\\x5a\\xcb\\xc4\\x78\\xe1\\xec\\x6b\\x06\\x4d\\x7b\\xb7\\x38\\x8a\\x73\\xf6\\xed\\xa3\\x0b\\x0b\\x6b\\x73\\xdd\\x8f\\x87\\x92\\x63\\xad\\x1a\\x03\\x48\\x67\\x1d\\xcf\\x21\\x1c\\xb9\\x6e\\xd0\\x8e\\xd5\\x2f\\x33\\x17\\xda\\x68\\x18\\x5d\\x6b\\xb2\\x58\\x9d\\xc1\\x1d\\x75\\x5d\\x47\\xa3\\xb6\\xf6\\xa0\\x38\\x6a\\x85\\x94\\xd9\\x57\\x0b\\x2e\\x9b\\x0d\\x4b\\x5e\\x13\\xdc\\xcd\\x9b\\xb7\\xac\\xbe\\xf0\\xab\\x27\\x6a\\x7a\\xeb\\xe1\\x29\\x31\\xbe\\x67\\xf1\\x0d\\xe2\\x67\\xa0\\x29\\x89\\x53\\x01\\xf5\\x66\\x25\\x30\\xad\\x8a\\xb3\\xd2\\x30\\xb3\\xb6\\xd7\\x09\\x3a\\xcd\\xfb\\xf2\\x74\\x75\\x7a\\x90\\x78\\xe2\\x0c\\x23\\xbc\\x82\\x2d\\xef\\xfa\\x61\\x00\\x54\\x86\\x10\\x2c\\x01\\xab\\x82\\xbd\\xc8\\xcd\\xcf\\x1b\\xb3\\x7f\\x9b\\x56\\xd3\\x9e\\x50\\xfd\\x5a\\x68\\x95\\x41\\x6e\\x76\\x7f\\x4e\\x36\\xc1\\xa4\\x17\\x78\\x90\\x81\\x25\\xb5\\xca\\x3f\\x92\\xa9\\x0d\\xa9\\xad\\xdf\\xf1\\x55\\xfb\\x1f\\xd7\\x76\\x88\\x08\\xa8\\x0f\\x20\\x3e\\xd7\\x37\\xef\\x00\\x77\\x63\\xbd\\x2f\\xea\\x9f\\xf2\\x8c\\x84\\xb4\\x35\\x51\\xc9\\xfc\\x43\\x8f\\xfc\\x47\\xfc\\xfc\\xf6\\x4d\\xc7\\x70\\x06\\x13\\xaa\\x8b\\x3a\\xf8\\x63\\x3a\\xe8\\xb6\\x98\\x74\\x37\\xc0\\xaa\\x47\\x81\\xbe\\x1e\\x82\\x13\\x96\\xc5\\x36\\xcb\\x30\\x05\\xd0\\x55\\x49\\xb1\\xcb\\xa7\\x01\\x35\\xaf\\xb7\\xfe\\x30\\x68\\x96\\x1c\\xad\\x3a\\x14\\x63\\xcc\\x0b\\x55\\x60\\x68\\x4e\\x27\\xbb\\xa7\\x7a\\xef\\x41\\x9d\\x82\\x38\\x68\\xe0\\xce\\xba\\xd1\\xf1\\xce\\x0a\\xe9\\x02\\x74\\x4a\\x15\\x2d\\xd2\\x94\\x51\\xa1\\x7e\\x28\\xa8\\x9a\\x71\\x58\\xa1\\x83\\x6e\\xfc\\xe4\\xa3\\xe5\\xc7\\xd1\\xfa\\xa4\\xc3\\x87\\x5b\\xc4\\x6c\\x4d\\x9b\\xe2\\x2d\\x66\\xd3\\x66\\xac\\x6f\\x59\\x53\\x8a\\x00\\xb2\\x75\\xb0\\x2f\\xac\\x6d\\xa7\\x55\\xa8\\x54\\x08\\x19\\x97\\xd5\\xd1\\xd0\\xe6\\xe5\\x68\\xa5\\x95\\x8c\\xf3\\x34\\xc5\\x18\\xcd\\x51\\x7a\\xb9\\xd7\\x3c\\x48\\xd6\\xcb\\xc4\\xae\\x4e\\xea\\x43\\x53\\x11\\x3e\\x7e\\x4a\\x7c\\x05\\x92\\x0e\\x68\\x6b\\xf0\\x7a\\xfb\\xfb\\x8d\\xd2\\xec\\x4f\\x18\\xfa\\x71\\x38\\xe5\\x7d\\x33\\x2c\\xd7\\xa4\\x22\\x8f\\xea\\x73\\xbc\\x09\\x25\\x2f\\x24\\x42\\x72\\x94\\xeb\\xd3\\x64\\x5e\\xe0\\x99\\x6c\\x2e\\x85\\x1a\\x8a\\xa5\\x1a\\x7c\\xd9\\xfc\\x2e\\xab\\x47\\xc0\\xab\\x21\\x3f\\x4f\\x51\\xd2\\x16\\x09\\x1e\\xd0\\x89\\xe4\\x59\\x2e\\x9b\\xb0\\x82\\x8b\\x85\\x8f\\x84\\xf6\\x0b\\x93\\xad\\x84\\xa0\\xa2\\x28\\x27\\xcb\\xd2\\x74\\x14\\xb7\\x81\\x32\\x2a\\x04\\xd3\\x96\\x08\\x28\\xf6\\x38\\xdf\\x28\\x34\\xc7\\xf7\\x83\\x9d\\x70\\xdb\\x12\\x6b\\xee\\x5a\\xf2\\xee\\x75\\x59\\xa8\\xac\\x4c\\x01\\xa6\\xc3\\x91\\x39\\x6a\\xf9\\x3f\\xa0\\x60\\x89\\x40\\x29\\x7d\\xdf\\x89\\x00\\xc5\\xdd\\xb4\\x66\\x34\\x0a\\xe5\\x1c\\x60\\xc7\\xea\\xd7\\x62\\x44\\x7e\\x76\\xd8\\xbc\\xcb\\x57\\x39\\x97\\xcf\\x66\\x14\\xd1\\x88\\xa0\\xb9\\xa2\\xf5\\x6e\\xed\\x9b\\x0f\\x9d\\x46\\x3a\\x19\\x78\\x7f\\x40\\x92\\x58\\x1a\\x65\\xc6\\xbf\\x78\\x1b\\x93\\xc5\\x60\\x87\\xe5\\x4e\\xe1\\x34\\x3a\\xab\"},\n{{0x66,0xb5,0x0f,0x69,0x2e,0x39,0x5e,0xb8,0x33,0x86,0xe0,0x27,0xc8,0x2c,0xe3,0xfd,0xee,0x3b,0xd8,0x99,0xb0,0xd3,0x17,0x9d,0xb0,0x86,0xfb,0xf5,0x24,0xf5,0x74,0x59,},{0x44,0x85,0x36,0xe9,0x82,0x40,0x84,0x37,0xce,0x89,0x67,0x40,0x53,0xe3,0xc5,0x89,0xc9,0x8c,0x09,0x5c,0x60,0x02,0x1a,0x11,0x81,0x78,0xc6,0x26,0x1d,0x88,0x10,0xfe,},{0xbd,0x13,0xf6,0x36,0x2c,0x07,0x07,0x89,0x22,0xf3,0x0c,0x63,0x30,0x75,0x1b,0xf6,0xe7,0xcf,0x42,0xa7,0x69,0x16,0xee,0x65,0x3e,0xb1,0x7a,0xcc,0xff,0x1f,0xbb,0xca,0x35,0x25,0x8c,0x4c,0xbc,0x58,0x2a,0x5e,0x8c,0xc9,0x4f,0xd2,0xc7,0xed,0xeb,0x53,0x76,0x2f,0x1f,0xc2,0x31,0x23,0xd7,0xf4,0xf1,0x45,0x40,0x9b,0x31,0xcd,0x38,0x02,},\"\\x74\\x28\\xa9\\x64\\x21\\x2b\\xcb\\xe8\\xdf\\x7d\\x59\\xe4\\x8e\\x92\\x34\\x80\\xaa\\x0e\\xe0\\x9b\\x91\\x0d\\x04\\xef\\xb6\\x90\\x36\\x62\\xef\\xc3\\x10\\x7a\\xc8\\xfd\\xc0\\xc5\\xf3\\x92\\x72\\x74\\x0c\\xd8\\x77\\xe1\\x6c\\xd7\\x1c\\x54\\x92\\x38\\xc3\\x37\\x22\\x0c\\xe2\\xf6\\xb5\\xa1\\xfc\\x6f\\x7b\\x0a\\x1c\\xd4\\xed\\x21\\xd9\\x38\\x89\\x08\\x1e\\x34\\xfb\\x7f\\xde\\xcf\\x41\\x78\\xbb\\xd4\\x31\\xe6\\x11\\xe5\\x39\\xd9\\x00\\xc3\\xd0\\xac\\x3d\\xc7\\x10\\x7b\\x36\\xb4\\x1d\\x6d\\x0d\\x5d\\x32\\xc1\\x97\\x27\\xf9\\x08\\xb6\\xeb\\x36\\x7f\\xeb\\xb3\\x52\\xa4\\x93\\x58\\x1f\\xf1\\x28\\xb5\\x6c\\x4c\\xaf\\x6f\\xb8\\xe0\\x99\\x81\\xf0\\xd3\\x79\\x57\\xd1\\x28\\x20\\x17\\xfb\\xb8\\x07\\x61\\x4c\\x20\\xf4\\x65\\xdc\\x02\\xb0\\xcd\\x96\\x99\\x83\\xbd\\x5a\\xe1\\xeb\\xf6\\x57\\x8d\\x7f\\xf3\\xce\\xff\\x32\\x0e\\x25\\x56\\x21\\x99\\xde\\xe9\\x34\\x75\\x7c\\xc1\\xf5\\x8d\\x55\\x40\\xc4\\x1a\\xac\\x1c\\xe4\\xf2\\x11\\xf0\\xb8\\xec\\x41\\x07\\x17\\x40\\x30\\xe7\\x02\\xbc\\x6a\\x8a\\x9c\\x85\\xc5\\x05\\xc9\\x31\\x6a\\xef\\xea\\x3e\\x43\\x72\\x24\\x2d\\xe0\\x19\\xb3\\x5e\\x2b\\xd3\\xc5\\xa9\\x56\\x52\\x19\\x71\\xc1\\x06\\xa3\\xad\\xbb\\xc1\\x3c\\xdc\\x4f\\x7f\\x9d\\x3c\\x58\\xb9\\x6a\\x34\\x4b\\x4a\\xc3\\xef\\x6b\\xd8\\xac\\xa6\\xed\\x98\\x76\\xb4\\x3e\\x64\\x97\\xfa\\xf7\\xfa\\x4c\\xf2\\x7f\\xbc\\xb6\\x65\\x73\\x0c\\x09\\x1e\\x13\\xaa\\xf7\\xe9\\xef\\xe7\\xdd\\x10\\xe1\\x4e\\xb1\\x9a\\x92\\x00\\x42\\x42\\x10\\xec\\x8b\\x8f\\xba\\x7e\\x69\\x44\\x4c\\xe1\\xa9\\xe3\\xa7\\xb2\\x6c\\x11\\xf6\\xb7\\x14\\x5b\\x69\\x83\\xa7\\x80\\x57\\x76\\x48\\x40\\x31\\xbf\\xf5\\x2e\\x81\\xae\\x76\\x9b\\x70\\xa2\\x82\\xb0\\x94\\xff\\xb5\\xfb\\x55\\x25\\xdc\\x1a\\x87\\x2e\\x20\\x7e\\x82\\x7a\\x2e\\x11\\xf4\\xec\\xf7\\xb5\\x30\\x8c\\x74\\x8a\\x92\\x78\\xea\\x7b\\xd6\\x61\\x88\\x19\\x44\\x00\\x43\\x0c\\x8c\\xd5\\x96\\xeb\\xb8\\x72\\x21\\xe5\\x36\\xf6\\xaf\\xe1\\xf1\\x50\\x5d\\x6a\\x59\\xf4\\x1d\\x16\\xa2\\xf0\\x14\\xe1\\xcf\\xa5\\x13\\xf7\\xa6\\x97\\x31\\xd7\\xbf\\xdb\\x2a\\xff\\xce\\xfe\\x05\\x37\\xd4\\x2c\\x79\\x6e\\x3f\\xd2\\x7e\\x41\\xb7\\xca\\x72\\x05\\x1b\\xef\\x28\\xbb\\x7b\\xde\\x70\\x10\\xdc\\xfe\\xd8\\xaa\\x16\\xef\\x67\\x6d\\xb6\\xe5\\x20\\xc3\\xce\\xf8\\xd6\\xf5\\x8a\\x9a\\x28\\x13\\xcf\\xf0\\xf7\\x04\\x1f\\x87\\xfb\\xfb\\x84\\x31\\xe0\\x20\\xed\\xe1\\xd4\\xea\\xf1\\x9e\\x23\\xb9\\x83\\x44\\x5c\\x59\\x15\\xb5\\x4a\\xdf\\xb5\\x57\\xfc\\x20\\xd0\\x05\\x8f\\x40\\xf5\\xe0\\x98\\x25\\xdb\\xa8\\xd8\\xf2\\x0c\\x00\\xf4\\x3b\\x3a\\xee\\xbb\\x61\\x57\\xbe\\x32\\xec\\x54\\x62\\x7d\\x5d\\x42\\xab\\x81\\x3c\\xf9\\x7f\\x09\\x5d\\x26\\xdb\\x80\\x36\\xc1\\x2e\\x82\\xcb\\x96\\x3e\\x80\\x01\\x16\\x7e\\x61\\xab\\x39\\x3b\\x4c\\xca\\x75\\x5e\\xce\\xa8\\x69\\x95\\x4e\\x32\\x3f\\xa5\\x26\\x2c\\x5f\\xda\\x3e\\x0b\\xe9\\xa5\\x1e\\x5a\\xf5\\x1f\\xa6\\x44\\x48\\x24\\xfb\\x83\\x7c\\xc6\\x7b\\xe5\\x37\\xa8\\x75\\x69\\xc3\\x0c\\xf0\\x11\\x4d\\x39\\xa0\\x39\\x42\\xde\\x4e\\x1c\\xd5\\x23\\x35\\x5d\\xab\\x1a\\xf3\\x60\\x80\\xa9\\xa9\\xa5\\x48\\xbe\\x1c\\x2a\\x7f\\xbe\\x54\\x33\\x77\\x23\\x15\\xd2\\x83\\xe5\\x15\\x6d\\xf6\\x48\\xbe\\xe4\\xb7\\xdc\\xda\\x74\\xf1\\x59\\x05\\xd5\\x42\\xbe\\x54\\x87\\x3c\\x15\\xc5\\x3f\\xf4\\x2a\\xca\\xbf\\x8c\\x56\\xf2\\x57\\xd7\\x64\\x72\\x2d\\xb4\\xe9\\xc7\\x18\\xe1\\x20\\x98\\xa3\\x45\\x74\\x86\\xa6\\xc9\\x47\\xac\\x2d\\xe0\\xaf\\x53\\xe8\\x2c\\xf9\\x50\\xbb\\x37\\xca\\x29\\xc8\\xda\\xdf\\xa3\\x64\\x6d\\xb4\\x98\\x2a\\xf5\\x72\\xd3\\x9b\\x26\\x8c\\x7f\\x96\\xb0\\x3e\\xf6\\xb6\\x53\\xc8\\x79\\x45\\xf2\\x9b\\xc5\"},\n{{0x55,0x32,0x8b,0xe4,0xb3,0x70,0x82,0x27,0x33,0xff,0x39,0x89,0xa6,0xa3,0x28,0x2d,0x65,0xfe,0x8f,0x20,0x7a,0xb7,0x27,0x0d,0x7c,0x2e,0x72,0x7c,0xa3,0xcf,0xaa,0xc4,},{0x51,0x8e,0x02,0xee,0xf5,0x2f,0x5a,0xae,0xbd,0xe3,0xd1,0x08,0xea,0x79,0xec,0xad,0xfc,0x4d,0x99,0x4c,0xe1,0x95,0x36,0x21,0xe5,0x4b,0x7b,0x3b,0x12,0x1f,0xf8,0xff,},{0xf5,0x8d,0xb1,0x9f,0xd8,0x34,0xe1,0x51,0x94,0xc3,0xc0,0xf8,0xa6,0xa5,0x0e,0xbc,0x4c,0xf0,0x74,0xe8,0x0e,0xa2,0xe7,0x0c,0xda,0xf1,0xe1,0x69,0xbd,0x51,0xeb,0xd0,0x99,0x0b,0xad,0x77,0xc4,0xfa,0x20,0x8b,0x8d,0xd1,0xe2,0xc8,0x57,0x4c,0x01,0xb5,0xf5,0x96,0xc8,0xdf,0xa6,0xbb,0x8e,0x6a,0xe3,0xa4,0x7f,0xf4,0x12,0xe7,0xe2,0x09,},\"\\x6c\\x24\\xc9\\xaf\\xbb\\xf1\\x2d\\xca\\xee\\x6f\\x10\\xe4\\x08\\x92\\x52\\xf2\\xc6\\x0b\\x2a\\xb9\\x3a\\x02\\xc1\\x60\\x2f\\xb5\\xde\\x4c\\xe3\\xbd\\x92\\x3e\\xb0\\x2f\\xe1\\x03\\x9f\\xdc\\x15\\x99\\x6a\\x44\\x69\\x15\\xe7\\x67\\xde\\xe0\\x17\\x6d\\xdd\\xb7\\x8e\\x9d\\x6b\\xbf\\x06\\x96\\x75\\x77\\x5a\\x82\\x9d\\xd8\\x08\\xd3\\x76\\xb0\\xcf\\x79\\x20\\xbf\\x1a\\x66\\xe1\\x30\\x3b\\xa5\\x24\\x19\\x78\\x5f\\x25\\xf2\\x8b\\xb3\\x38\\x99\\xeb\\xde\\x84\\x0c\\x0a\\xb1\\x4b\\x91\\x9a\\x65\\x80\\xcb\\xaa\\xc3\\xa8\\x05\\x62\\x7b\\x9c\\x4a\\x77\\xba\\xa1\\x6f\\x82\\x5a\\x9e\\xac\\x2d\\x6d\\x36\\x41\\x65\\x14\\x93\\x37\\x0e\\x50\\xee\\xe9\\x4c\\x74\\x04\\x97\\x64\\x36\\x56\\x05\\xab\\x4d\\xac\\x1a\\x03\\x02\\x27\\xa3\\x30\\xaa\\x17\\x8f\\x2f\\x8d\\xa3\\x77\\xaf\\x73\\xf0\\xbb\\x04\\x0b\\xac\\x12\\x36\\x6e\\x65\\xe0\\x59\\x10\\x55\\xf9\\xf2\\x3e\\xac\\xa3\\x5e\\x96\\x88\\xd8\\x37\\xa3\\xc0\\xd9\\x9c\\x16\\x8f\\xd8\\x86\\xac\\xc9\\x22\\xcf\\x37\\xa7\\x11\\x8e\\xf8\\xa4\\x4b\\xb0\\xa4\\xfa\\x42\\x88\\x04\\x93\\x09\\xa7\\xdc\\x1b\\xed\\x80\\x62\\x1e\\x10\\x63\\xe3\\xe5\\x92\\xc0\\xfb\\xa4\\x2d\\x73\\x98\\xeb\\x15\\xf7\\x40\\x28\\xac\\x15\\xd7\\xed\\x65\\xa6\\x36\\x8a\\x13\\xb7\\xf9\\x56\\xd1\\x95\\x47\\xeb\\x50\\x6c\\xe7\\xec\\x90\\x73\\x4e\\xb9\\x49\\xcf\\xf1\\xd9\\x8c\\xe4\\x14\\xf1\\x0a\\xdc\\xba\\x8c\\x00\\x73\\x20\\x01\\x87\\x50\\xa7\\x1b\\xd3\\x6d\\x3b\\x6b\\xfd\\x61\\x27\\x05\\x45\\x08\\xe3\\xef\\x65\\xd9\\x98\\x48\\x51\\x4d\\x33\\xd6\\x8b\\x58\\xe3\\xa4\\xb2\\x24\\xf7\\x9b\\x6e\\x34\\xdd\\x48\\x03\\x40\\x46\\x7f\\xe7\\xf0\\x25\\xcc\\x88\\x21\\x3d\\x80\\x8f\\xbb\\x5b\\x91\\xe2\\xe4\\x3c\\xf9\\xd9\\x50\\x64\\x07\\x98\\x65\\x92\\x73\\xd4\\x7a\\x25\\xf1\\xf0\\x13\\x2f\\x68\\x82\\xfa\\xad\\xba\\xfb\\xa2\\x8f\\xee\\x5f\\xa1\\x72\\x72\\xc1\\xa9\\x00\\x11\\x72\\xb3\\xab\\x6f\\xf2\\xc3\\x15\\xf2\\x6c\\x07\\x73\\x44\\x05\\xb5\\xee\\x8b\\x5e\\x4f\\x08\\xe1\\xe3\\xb8\\xae\\xa0\\x19\\x46\\x7f\\xb0\\x71\\x88\\x7f\\x19\\x19\\x01\\xa2\\x1c\\x59\\x76\\xc1\\xca\\x8a\\xaf\\x0a\\x1d\\x4a\\x2e\\x69\\x8e\\x76\\x23\\xe9\\xbb\\xe9\\xca\\x2a\\x67\\xa1\\x53\\xa1\\x6f\\x89\\x5e\\x6d\\xd9\\xea\\x92\\x44\\x41\\xb4\\xbd\\x0b\\x67\\x45\\x52\\xe3\\x98\\xb8\\xd9\\x70\\x34\\x3a\\x9b\\xc7\\x76\\xa3\\xa3\\xfc\\x1a\\x86\\x60\\xc5\\x62\\x5d\\x60\\x81\\xb5\\xd8\\x7f\\x0f\\x8a\\xc9\\xf0\\x7a\\xb5\\xab\\xe7\\x7c\\xdb\\x8e\\x30\\xd2\\xfd\\x1f\\x6f\\x46\\x52\\x5c\\x75\\xdd\\x0d\\xd1\\xca\\x32\\x81\\xcc\\x89\\x34\\x6f\\xb3\\xe6\\xd7\\x38\\x8e\\xbe\\xe1\\x54\\xcb\\x59\\xbd\\x9e\\x95\\xed\\x6a\\x41\\xd5\\xdf\\x66\\x8b\\x59\\xea\\x13\\x78\\x68\\xeb\\x12\\x0b\\x8a\\x2c\\xfd\\xf4\\x67\\x44\\x14\\xfd\\x27\\x96\\x99\\xf2\\x8b\\x5a\\x5c\\xcc\\x2e\\x2f\\xc8\\x02\\xa4\\xc9\\xe0\\xb8\\x5b\\x76\\xf2\\x0f\\x6b\\xce\\x2a\\x49\\x54\\x88\\x6f\\xc4\\x02\\x67\\x0a\\x71\\xef\\xd2\\x61\\xf5\\xdd\\x7b\\xca\\x16\\x88\\x4a\\x28\\x7c\\x62\\x2f\\xd4\\x45\\xf6\\x8d\\x44\\x15\\x1c\\xc0\\x13\\x4b\\x22\\x9d\\xa3\\x8d\\xaa\\xab\\x81\\xb5\\xc9\\x60\\xd5\\x77\\x00\\xca\\x92\\xb2\\x6d\\x0b\\x14\\x21\\x34\\xce\\x94\\xb7\\xbe\\x6c\\x18\\x61\\x0e\\xa2\\x13\\x6f\\x8b\\xa8\\x32\\x9a\\x2e\\x8c\\x00\\x0b\\x8f\\x02\\xfe\\x05\\xbc\\xf7\\x2c\\xb7\\x1f\\x8c\\x72\\x53\\x5f\\xfc\\xd8\\x18\\xe3\\x8e\\x79\\x92\\xa8\\xf0\\xc3\\x2a\\xc6\\x21\\x77\\xd1\\x52\\x2a\\xe5\\x52\\xc6\\x0c\\x1e\\xe6\\x16\\xb7\\x5e\\x4b\\x34\\x42\\xe7\\x96\\x57\\xe4\\xa3\\x33\\xc0\\xb3\\xd7\\x44\\xea\\xf2\\x60\\xd0\\xc3\\x36\\x93\\x16\\x86\\xa6\\xd6\\x68\\xc6\\x4f\\xef\\x44\\x00\\x52\\x35\\x2c\\x2b\\x25\\x8c\\xfb\\x65\"},\n{{0x7d,0xa0,0x5f,0x04,0xe5,0xd3,0x8b,0x98,0x9b,0x83,0xf7,0x2f,0x7a,0xb2,0x6c,0x13,0x87,0x76,0x75,0x8f,0x4f,0x57,0x7e,0x49,0xdc,0x73,0xd6,0x01,0x3f,0xf4,0x37,0x59,},{0xb1,0xde,0x51,0x67,0xf4,0xd3,0x30,0x80,0x4e,0xec,0x9e,0xb5,0x65,0xef,0x40,0x55,0xf1,0xb6,0x4d,0xd9,0x5e,0x1c,0x9b,0x27,0xc6,0x7f,0xfe,0xf9,0x14,0x82,0xcc,0xa8,},{0x05,0xf1,0x17,0xf9,0xbc,0x3e,0xa5,0x5d,0x45,0x5e,0x9e,0xf1,0x35,0xe9,0x2e,0x76,0x65,0xd1,0x80,0x70,0xd8,0xf5,0xe3,0x75,0xdf,0x67,0xbe,0x18,0x17,0xce,0x14,0x35,0x7a,0x55,0xe7,0x01,0x66,0xf3,0x26,0xb7,0x7d,0x85,0x24,0x32,0x27,0xcf,0x67,0xd8,0xf2,0xe0,0xbf,0x84,0x40,0xca,0xbf,0xb0,0x52,0x75,0xb3,0x73,0xf1,0xe1,0x19,0x0e,},\"\\xa6\\xa8\\x61\\xd8\\x94\\x7c\\x5c\\xd6\\xad\\x08\\x19\\x60\\x2e\\x32\\xea\\x76\\x81\\xc8\\xf7\\x30\\x10\\xee\\xe5\\x53\\xe5\\xde\\xfb\\xf7\\x98\\x20\\x98\\xb5\\xf7\\xb3\\x99\\x24\\xbb\\x79\\x59\\xad\\x64\\xc3\\x03\\x26\\xbe\\xd5\\x60\\xbf\\x51\\xe9\\x98\\x3c\\xda\\x5d\\xff\\x4f\\x31\\x1e\\xea\\x24\\xcb\\xe6\\x8c\\x61\\x06\\xce\\xac\\x9b\\x84\\x3a\\xa4\\xe2\\xad\\x1b\\x6f\\x8a\\xe1\\xe4\\xf9\\x68\\x71\\xfc\\x02\\x5b\\xe4\\xa6\\x16\\x38\\x5f\\xf2\\xd4\\xb7\\xf5\\x68\\x29\\xab\\xef\\xaf\\x6a\\xac\\xbb\\x78\\x0d\\x6c\\xbb\\xc9\\x51\\xb6\\xe0\\x5a\\x78\\x7f\\x88\\x5e\\x33\\x25\\x61\\x16\\x65\\xec\\xc9\\x24\\x27\\x4a\\xa5\\x31\\xbc\\x13\\x3f\\x62\\xc7\\x6c\\xb3\\xad\\x14\\x8f\\x3c\\x95\\x79\\xa8\\x15\\xa1\\x42\\x00\\xb7\\x64\\x8d\\xae\\x0b\\x07\\xb3\\x27\\xd3\\xbf\\xcc\\xdb\\x6f\\xe3\\xb6\\xcb\\xd7\\x0e\\xa6\\x5e\\x6c\\x0c\\xc2\\x51\\x6a\\x89\\x66\\x96\\xd0\\x7b\\x2e\\x77\\x71\\x3b\\x0b\\xee\\x3b\\x92\\xfb\\x1b\\x6f\\x75\\xb0\\x82\\x0a\\x5c\\xb6\\x2c\\x5f\\xe6\\x20\\x40\\x03\\x94\\x3e\\x24\\x85\\x71\\x66\\xfb\\xdf\\x57\\x1f\\x11\\x5d\\x45\\xf4\\x2e\\x75\\x90\\x1d\\xf8\\xb1\\x2c\\x32\\x61\\x8a\\xac\\xb0\\xd2\\x42\\x86\\xc8\\xd3\\x03\\x96\\x05\\x1f\\xc2\\x72\\xaa\\x17\\xf4\\xd2\\xd4\\x74\\x61\\x15\\x2a\\xac\\xd3\\xfa\\xa2\\xb7\\xb2\\x08\\x31\\x22\\x78\\xe8\\x09\\x24\\x05\\x92\\xd1\\xd1\\xaa\\x58\\x5c\\x56\\x28\\x0e\\x66\\xff\\xd9\\x2b\\x57\\x17\\xd0\\xcd\\x1e\\xb9\\xfb\\x74\\x01\\xde\\xf8\\x79\\x48\\x7c\\x37\\x4e\\x5c\\x53\\x0b\\x6f\\xeb\\xf9\\x11\\x12\\x25\\x74\\xd2\\x4f\\xe1\\x04\\xb4\\xf4\\x5c\\x7c\\x60\\x1e\\x6c\\x91\\x7d\\x3c\\x18\\x82\\xc1\\xad\\x3c\\x55\\x5d\\x8f\\x2c\\xe9\\x55\\xb5\\xa1\\x0d\\xb0\\xd5\\xa8\\xb8\\xac\\x7a\\x62\\x66\\xb2\\xe6\\xb2\\x7a\\xd0\\xee\\x34\\xf4\\x7a\\xd8\\x57\\x36\\x7d\\x52\\xf7\\x09\\x6d\\x4b\\xac\\xef\\x0e\\x46\\x72\\x54\\x88\\x42\\x4b\\x93\\xb8\\x9a\\xcd\\x42\\x9f\\xfb\\x5e\\xf3\\x3a\\x0b\\x08\\x1d\\xd0\\x94\\x79\\x67\\x91\\x96\\x02\\x3c\\x39\\x67\\xf4\\x4a\\xd4\\x1e\\xb1\\xa2\\x39\\x55\\x27\\xfd\\x3b\\x79\\x76\\x8f\\x1b\\x88\\x5f\\x04\\x29\\xb4\\x95\\xab\\x60\\x52\\x56\\x91\\xbe\\x84\\x65\\x06\\x32\\xa2\\xf6\\x6c\\xb6\\x3a\\xd5\\xbf\\x2f\\x6a\\xe7\\x0b\\x66\\x8c\\x5a\\x19\\x3f\\x74\\x99\\xfc\\x4f\\xc4\\x2c\\xf8\\xcb\\x30\\x8c\\xe5\\x02\\x9a\\x50\\x27\\xba\\xbe\\xf5\\x5d\\x19\\x25\\xec\\xfb\\xa9\\xf2\\x7e\\xb6\\x08\\x16\\x19\\xed\\x0d\\xf8\\x56\\x9f\\xd8\\x0e\\x9d\\xa1\\x04\\xdb\\x39\\xb5\\xb8\\x14\\x0b\\xfe\\xbe\\xbd\\x29\\x08\\x54\\x40\\x06\\x58\\x19\\xde\\xba\\x8d\\x46\\x9a\\xe8\\xb3\\xea\\x6d\\x3b\\xac\\x58\\x91\\xf9\\xa4\\xdd\\xfb\\x7f\\x1f\\x06\\xd1\\x3c\\x31\\xa0\\x7e\\xe5\\x3f\\xb5\\x4b\\xc9\\x7b\\xd0\\x86\\x96\\x39\\x4c\\x38\\xe7\\xf3\\x68\\x0c\\x0f\\x02\\xf9\\x75\\xf4\\x69\\x92\\x11\\x47\\xa4\\x09\\x85\\x90\\x97\\x81\\x3b\\x4c\\x3f\\xa4\\x3d\\x17\\x4a\\xc4\\x02\\xf1\\xa5\\x28\\xcb\\x5f\\xc4\\xb8\\x07\\x51\\x84\\x32\\xef\\xf3\\x34\\x07\\xa1\\x11\\xca\\x3a\\x3d\\x7e\\x9e\\x84\\x13\\x5a\\xba\\xc8\\xa8\\xf5\\x2e\\xa6\\x31\\xc8\\x6d\\x74\\xa1\\xc6\\xe5\\x74\\x9e\\xdd\\x14\\x91\\xc0\\x02\\x4e\\x7d\\xe7\\xfe\\x52\\x85\\x68\\x29\\xb7\\x2f\\xd1\\x3d\\xa6\\x3a\\x1a\\x23\\x43\\x34\\x9d\\xf6\\x62\\xab\\x31\\x63\\x53\\x60\\x32\\x34\\x6e\\x53\\x47\\xf0\\x43\\xff\\xf5\\x28\\xbf\\x67\\x15\\x09\\x22\\xff\\xf2\\x02\\x6b\\xab\\x74\\x2d\\xb9\\xca\\xe7\\xcb\\x2e\\x3c\\x74\\x58\\x07\\x19\\x65\\x2c\\x28\\x44\\x7c\\x5e\\x20\\x98\\x23\\x17\\x97\\xee\\x6e\\xf1\\x23\\x1f\\x57\\x92\\x05\\x4b\\xc3\\x35\\x9a\\x32\\xc8\\x6d\\x2f\\x94\\xf8\\x5f\\xa7\\xd4\\xa7\\x41\\x9d\\xd2\\x41\\xff\\x66\\x2a\"},\n{{0x1b,0x8e,0xc6,0x58,0x80,0xed,0xbf,0x03,0x9a,0x13,0xe9,0x70,0xb1,0x5a,0xa6,0x7e,0x19,0x2a,0xa0,0x2c,0xa6,0x5c,0xff,0x9a,0xda,0x17,0xd4,0x55,0x8f,0x40,0x13,0x7d,},{0x12,0xc1,0x19,0x1e,0x4d,0xe3,0xbd,0x44,0xd0,0x39,0x07,0x01,0x53,0xad,0xb7,0xb5,0x81,0xf6,0x00,0xe9,0xa1,0xdd,0x69,0xaa,0x89,0xf2,0x77,0xc7,0x06,0x9e,0x76,0xf8,},{0xbf,0xf2,0x69,0xa3,0x5d,0x6c,0x8e,0x55,0x2c,0xe7,0x16,0xd1,0x63,0x81,0x81,0xce,0x85,0x83,0xb4,0x5c,0x0e,0xc5,0x93,0xb4,0xe5,0x8c,0x40,0xac,0x76,0xe7,0xf8,0x5c,0xa1,0xda,0xff,0xfd,0x68,0x54,0x1e,0x62,0x3a,0x1e,0x35,0xa7,0xc0,0x97,0x26,0x88,0xb2,0x5e,0xed,0x72,0xf4,0xda,0x57,0xec,0xa1,0x68,0x57,0xa8,0x26,0x3c,0xaa,0x0b,},\"\\x37\\xf1\\x8b\\x7f\\x64\\xc5\\x13\\x34\\x79\\xd6\\xda\\xe3\\xbe\\xf6\\x79\\xcd\\xc2\\x1e\\xce\\x3f\\x5b\\x57\\x9a\\x6a\\x9c\\x3f\\xa2\\xe5\\x9e\\x9b\\xe8\\x7d\\x20\\x09\\xf7\\x4e\\x1c\\xfd\\xac\\xcb\\x1c\\xe3\\x7d\\x00\\x70\\x23\\x69\\xbd\\x16\\x9d\\x94\\xfd\\xcf\\x85\\xaf\\x9f\\xa3\\x21\\x7d\\x27\\xe6\\xed\\x6d\\x1d\\x8e\\x5d\\xf7\\x61\\x5e\\x8e\\x37\\xea\\x55\\xde\\x1f\\xd0\\xb0\\x6d\\x77\\xb4\\xc8\\x3b\\x92\\x9d\\x80\\x58\\x6f\\xa0\\x69\\x4b\\xe7\\x2e\\xc8\\xb3\\x65\\xad\\x2c\\xbc\\xdd\\x2b\\x1a\\xd8\\xcf\\x7f\\x03\\x6d\\xfa\\x4d\\xaa\\x1a\\x90\\x36\\xcd\\xb1\\x20\\x43\\x22\\x27\\xb1\\xf0\\x7b\\x88\\x66\\xb1\\x22\\x12\\x03\\x09\\xeb\\x91\\x4a\\xb8\\x4c\\xdd\\xeb\\xa1\\xde\\xc4\\x8a\\xb9\\x26\\x36\\x72\\x85\\x88\\xfe\\xdb\\x3a\\xaa\\xd7\\xe7\\xdb\\xb2\\xac\\x30\\xe6\\x3c\\x6f\\x5f\\x90\\xfc\\x6c\\xe6\\x2d\\x6d\\x3b\\xd8\\x8b\\x0d\\x5a\\xac\\xfa\\x61\\xde\\x9f\\x32\\x67\\xb3\\x00\\x91\\x7b\\x57\\xa4\\x80\\x36\\xab\\x20\\xc9\\xa0\\x54\\x46\\xb8\\x76\\x74\\x94\\xaf\\x24\\x9e\\x7d\\xe7\\xbc\\x50\\x7a\\x22\\x07\\xcc\\x95\\x6f\\x71\\x84\\x55\\x5a\\x7d\\x5d\\x88\\x83\\xbb\\x4b\\x3e\\x93\\xf2\\xdc\\xfc\\x57\\xb0\\xda\\x86\\x38\\x65\\x8d\\xcd\\xce\\x88\\x5d\\x44\\xd9\\xcc\\x68\\xb1\\xd8\\x17\\x0a\\x36\\x77\\xcc\\x5e\\x50\\xcb\\xf3\\x3d\\x54\\x3e\\xba\\xe4\\x47\\x7d\\x92\\x39\\xcf\\x83\\x38\\x4e\\xc5\\x9b\\x42\\x33\\xe8\\xff\\x33\\x43\\xf0\\x6f\\x30\\x18\\x77\\x72\\x9a\\x53\\xd4\\x20\\xbf\\x01\\xc6\\x2e\\x66\\xab\\x7f\\xe5\\x5d\\xd8\\x7e\\xe8\\x23\\xa5\\x8f\\xcb\\x87\\x87\\x0e\\x1f\\x52\\xe8\\x79\\x17\\x7c\\xd4\\x39\\xc5\\x33\\xf5\\xa2\\x23\\xe5\\xa3\\x43\\x6f\\xe9\\xd6\\x42\\x65\\x48\\xda\\xcf\\xc8\\x6a\\x08\\x46\\xd3\\xed\\x23\\xac\\x04\\x25\\x63\\xe8\\x87\\xff\\x46\\xaa\\xd0\\x05\\xf4\\xe1\\xde\\xe3\\xee\\x0e\\xe4\\xc2\\x7a\\x72\\x51\\x70\\x9a\\xe4\\x0a\\xbc\\x5e\\x25\\x68\\x64\\xe4\\x78\\x5a\\x4e\\xdd\\x8b\\x2a\\xdf\\x1b\\xc5\\xb4\\x01\\x8e\\x28\\xd0\\xb1\\x75\\x86\\x7b\\x02\\xd0\\x52\\xa6\\xe1\\x7e\\x41\\x1a\\x3d\\x8b\\xeb\\x2a\\x42\\x08\\xb7\\x6c\\xc6\\x21\\xfd\\x18\\xbe\\x14\\x8e\\x23\\x5d\\x55\\xaa\\x71\\x27\\x70\\x65\\x57\\xde\\xc0\\x53\\xa1\\x3f\\x1a\\x47\\xdf\\xda\\x40\\x5b\\x3f\\xe5\\xbd\\x28\\xef\\x5d\\x34\\x86\\x19\\xf5\\x1e\\x59\\x5e\\xf5\\x05\\x5f\\x83\\x9e\\xfa\\xf1\\x10\\xe4\\x90\\x16\\x31\\xac\\x31\\xa0\\x2f\\x4f\\x7e\\xe4\\x24\\xa3\\xa2\\xc3\\xe0\\x0d\\x26\\x02\\xd2\\xcc\\x1e\\x49\\x29\\x06\\xee\\xa4\\x20\\xa9\\x26\\x82\\x38\\xac\\x66\\x22\\xa0\\x89\\x74\\xe5\\x73\\x02\\x92\\xe6\\xed\\x51\\x02\\x56\\xef\\xde\\x66\\x7e\\x0d\\x9a\\x0f\\xf2\\x21\\x3f\\x54\\x12\\x0c\\xcd\\x81\\xff\\xaa\\x6b\\x7c\\xc4\\x81\\x41\\xa2\\xb7\\x29\\x85\\x2a\\xf5\\x83\\xd2\\x6a\\xa5\\x1f\\xbd\\xe6\\x7b\\xe4\\xdf\\x14\\xe5\\x20\\xc2\\x25\\x7a\\x73\\xc5\\xc2\\xe3\\xc3\\xd8\\x7d\\xfb\\x25\\x36\\x11\\x75\\xfd\\x18\\xab\\xd7\\xe9\\x9a\\xa0\\x9b\\x85\\xf8\\x8f\\x19\\xc8\\xd8\\x2d\\x45\\x85\\x8f\\x31\\x44\\xc5\\xdf\\xb7\\xa4\\x9e\\xde\\x45\\xb4\\xef\\xd8\\x71\\x05\\x92\\xa3\\x72\\x06\\x36\\xe7\\xe8\\x89\\xc7\\xe2\\x2a\\xd1\\x3b\\x2d\\x44\\xbb\\x7e\\x2b\\x47\\xb2\\x96\\x3a\\x5f\\xa3\\xf2\\x55\\x7b\\x85\\xbc\\x0c\\x69\\x3d\\xe3\\xd2\\x2e\\xf9\\x46\\x4f\\x7b\\x81\\x4a\\x20\\xa4\\x67\\x6a\\xd2\\x6f\\xca\\xa0\\x35\\x44\\xc6\\xaa\\xd4\\x12\\x83\\x09\\x5f\\xcd\\x12\\x10\\xaa\\x8c\\xc0\\x29\\xff\\x5a\\x26\\x00\\x5a\\x89\\x12\\x26\\xc2\\x98\\xe9\\x4a\\x52\\xaa\\x71\\x33\\x91\\x3e\\xc9\\xd2\\x2a\\x5b\\x2a\\xc0\\xbc\\x6f\\x15\\xb2\\x51\\xd0\\xb9\\x38\\x89\\x21\\x3c\\xd1\\xb1\\xe5\\xc6\\xfd\\x08\\xf1\\xa8\\xf5\\xcb\\xd4\\x21\\x53\\x29\\xa3\"},\n{{0xe7,0x53,0x88,0x02,0x6a,0x6a,0x6d,0x6c,0x6d,0x19,0x9e,0x36,0x29,0x93,0xa5,0xb1,0x04,0x49,0x01,0xe1,0x8a,0x76,0xc2,0xfa,0xc7,0x26,0x1a,0x6d,0x1c,0x19,0xa4,0xf3,},{0xb9,0xce,0x14,0x25,0x1c,0x0c,0xdf,0x3b,0xdd,0xb2,0x06,0xdc,0x6b,0x8b,0x2b,0x7f,0x5b,0x7e,0x4d,0xd1,0xbe,0x2c,0xe1,0x86,0x3f,0xf1,0x88,0x06,0xae,0x00,0xf1,0xee,},{0x6d,0x0f,0x83,0xd9,0xc5,0x5d,0x84,0xbc,0xf9,0xa8,0x61,0x47,0xd9,0xb6,0xba,0x9a,0xd5,0x37,0x83,0x2f,0xd0,0xf9,0x9d,0xae,0x7e,0x72,0xc8,0x13,0x9a,0xfc,0xb3,0x0c,0x7b,0x24,0xf6,0xb2,0x92,0xe3,0x2f,0x98,0x47,0x09,0x75,0x51,0xb7,0xfb,0xfd,0x51,0x0c,0x84,0xe8,0x9b,0xe9,0x82,0x54,0x44,0x14,0x57,0xbd,0x08,0xe5,0xf0,0x53,0x02,},\"\\xb9\\x9c\\xdc\\x84\\x72\\x11\\xc0\\x66\\x42\\xdd\\x11\\x1b\\xc5\\xe0\\xbe\\xca\\x53\\xa7\\x4f\\xfb\\xa2\\xe3\\xac\\x93\\xaf\\xb4\\xb0\\x94\\x75\\x18\\xe8\\x32\\x35\\x27\\x33\\x0a\\x4e\\xfe\\xfb\\xe4\\xba\\xfa\\x00\\xba\\xfe\\xcb\\x43\\x4a\\xb1\\xe5\\xb7\\xce\\x65\\x65\\x6f\\x7a\\x4f\\xd8\\x56\\xaa\\x6c\\x38\\x5e\\xd8\\xd7\\xbd\\x62\\x85\\x58\\x0d\\x7d\\xd6\\x08\\x82\\xe6\\x9c\\x19\\xda\\x07\\x69\\x09\\xd6\\x47\\xde\\x09\\x5a\\x80\\xe9\\x8a\\xd8\\x9b\\x81\\x4a\\xad\\xcb\\xbf\\x6f\\x03\\x3c\\x49\\x20\\x2f\\x65\\x6c\\x09\\x10\\x50\\x39\\x59\\xcf\\x97\\xcd\\x0f\\xa8\\x2d\\x5f\\x6d\\x22\\xfb\\xa3\\x38\\x99\\x51\\x29\\x4c\\x4f\\x7c\\xdc\\x21\\xeb\\x82\\x44\\xbd\\x65\\x60\\x63\\x7a\\x5e\\xca\\x62\\xa8\\xeb\\xa1\\xf4\\xa9\\x33\\xd1\\x87\\xa7\\x5f\\x86\\x71\\x16\\x43\\xaf\\x35\\x88\\x31\\xc8\\xc1\\x6a\\x9a\\x0f\\x09\\xe2\\x53\\xb2\\x39\\x5e\\x9c\\xb3\\x71\\x61\\x1e\\xec\\xdd\\x66\\xb4\\xab\\x52\\x1a\\xa9\\x4b\\x3f\\x20\\x23\\x7e\\xae\\x41\\xcd\\x10\\xc5\\xe2\\x1a\\x45\\x2d\\x48\\xe7\\x48\\x18\\x7f\\x35\\x4a\\x67\\xad\\xf6\\x81\\xb0\\xfe\\x61\\xcd\\xae\\xc9\\x4a\\x5e\\xaf\\x01\\x26\\x9f\\xce\\xb5\\x70\\xd5\\x14\\xff\\x3c\\x55\\xff\\x1d\\xba\\x2f\\xd2\\xdf\\x17\\xf8\\x6a\\x8a\\xeb\\x74\\x78\\x38\\x11\\x3d\\xee\\x94\\xa4\\x3b\\x13\\x84\\xcb\\xe1\\x33\\xcd\\xf6\\x42\\x7e\\x8d\\x12\\x2e\\x4e\\x93\\x37\\x04\\xda\\x6e\\x26\\xcf\\xce\\xe9\\x7f\\xe3\\xf6\\x29\\xb6\\x0b\\x91\\xb2\\xdd\\x86\\x38\\x67\\xfa\\x79\\x80\\x1e\\x2b\\x91\\x6e\\xc4\\xc0\\xfb\\x62\\xe0\\x71\\x59\\x42\\x1e\\x65\\x79\\x74\\x30\\x7a\\x1d\\x02\\xf7\\xf2\\xed\\x47\\x24\\xa8\\xb5\\x21\\xa8\\x61\\xf5\\x5f\\x35\\x52\\x1e\\x8b\\x2e\\x1a\\x84\\x90\\x4c\\x42\\x8c\\xfc\\x5b\\x60\\x14\\xbb\\x0f\\x8b\\xa8\\x43\\x4c\\x22\\x09\\xbd\\x40\\xac\\xa3\\x11\\x30\\xdb\\x97\\x74\\x33\\x33\\x59\\x7d\\x23\\x51\\xd5\\xf6\\x81\\x17\\x41\\xf6\\x26\\x88\\x97\\x3b\\xd7\\x73\\xd3\\x02\\x66\\xfd\\x1e\\xfb\\xd8\\x9d\\x47\\xa9\\x64\\xf9\\xd0\\x19\\x97\\x15\\x3d\\x08\\x7d\\x92\\x69\\x66\\x16\\xdd\\x10\\x3a\\x93\\x4c\\xcb\\xac\\x4c\\x1d\\x14\\x2f\\x20\\x75\\xd4\\xe2\\x2c\\x3d\\xa4\\xa0\\xe9\\x73\\xb2\\x38\\x63\\x19\\x62\\x87\\xb7\\x91\\x74\\xfa\\x29\\x75\\x5f\\xc6\\xd9\\xb5\\xe1\\x00\\xac\\xe0\\xa4\\x59\\x75\\xe5\\x03\\xb2\\x54\\xd3\\xf1\\x95\\xc2\\x61\\x71\\x09\\x10\\xfe\\xf1\\x06\\x89\\x2c\\x08\\xbb\\x29\\x6d\\x23\\x0c\\xde\\xa9\\xf5\\xa1\\x1f\\x91\\xac\\xaa\\x6e\\x7c\\x05\\xe9\\x2c\\x28\\x1d\\x2b\\x31\\x55\\xfe\\x44\\x80\\xb0\\xaa\\x5e\\x0d\\xb4\\x1d\\x10\\xe0\\x5c\\xfd\\xef\\xa4\\x36\\x40\\x51\\xcb\\x75\\x5d\\xc7\\x2f\\xfa\\x97\\x8c\\x00\\xb9\\x4a\\x5f\\x21\\x2d\\xc6\\x91\\xf8\\x39\\xb4\\x9d\\xe9\\x7e\\x01\\x39\\xd6\\x5e\\x8d\\x73\\xb2\\xb2\\x89\\xb2\\x6a\\x12\\xc6\\xcc\\xd8\\xed\\xc0\\x4a\\xdb\\x45\\x2a\\xf7\\xff\\x09\\x4a\\xa9\\x01\\xea\\xf5\\x76\\x51\\xeb\\x1b\\x87\\xb8\\x33\\xd0\\xa0\\x9b\\x4a\\x4a\\x64\\x62\\xf4\\x06\\x64\\x62\\x37\\x69\\xe9\\x50\\x79\\xf3\\xc9\\x62\\x85\\x0c\\xc3\\xb4\\x01\\xbb\\x00\\x58\\xb8\\x47\\x5b\\x10\\xc8\\x62\\xf3\\x2f\\x30\\x0a\\x2b\\x14\\x3b\\x3d\\xea\\x26\\x9d\\xdc\\xbe\\xa7\\xbe\\x7d\\xd2\\x42\\x6d\\x0d\\x42\\x04\\xeb\\x66\\xa3\\x9f\\x13\\x18\\x82\\x2d\\xcb\\x9c\\x56\\x13\\x98\\x63\\x7f\\x4a\\xb8\\xde\\x19\\x67\\x68\\xac\\xe7\\x4f\\x34\\x8c\\x01\\x2d\\xd1\\xba\\xbe\\xc1\\x7f\\x53\\x00\\xff\\xe0\\xd7\\xaa\\xae\\xaf\\xef\\x7d\\xb6\\x50\\xa8\\xf2\\xf3\\x09\\xa9\\x79\\x3f\\x52\\xc6\\x85\\xc7\\xe1\\xd5\\x13\\x32\\x74\\x91\\x57\\x84\\x89\\x9c\\x48\\x1d\\x48\\x5c\\x9b\\xd3\\x0e\\x99\\xfc\\xdc\\x97\\xd9\\x6e\\xf0\\x74\\x87\\xda\\x66\\x3b\\xef\\xe6\\x82\\x99\\xdf\"},\n{{0x5b,0x32,0x3f,0xc0,0x1a,0x16,0xc4,0x5d,0x10,0x64,0x66,0x7d,0x2e,0xa4,0xa7,0xea,0x59,0xd2,0x03,0x42,0x56,0x2d,0x12,0xfb,0xc5,0x98,0xd5,0xaa,0x73,0x00,0x68,0x8e,},{0xd4,0x14,0x1b,0x45,0x5d,0x30,0x16,0x42,0xba,0xda,0x28,0x14,0xaf,0xcb,0x16,0x20,0xd5,0xeb,0x56,0xd9,0x2b,0x11,0x85,0xfe,0x5d,0xad,0xef,0x55,0x96,0x25,0xfa,0x71,},{0xe2,0xef,0xf6,0x07,0xf0,0x22,0x7a,0x29,0xd5,0x82,0xd6,0x9f,0x34,0x58,0xac,0xad,0xd3,0x22,0x6f,0xce,0xaa,0xc0,0xab,0xbd,0xae,0xd5,0x26,0x75,0xc5,0x16,0x30,0x07,0x3c,0xd3,0xa9,0x01,0x70,0x7e,0xcf,0x05,0xe8,0x93,0xf2,0xc3,0x6d,0xaa,0xf0,0xcc,0x49,0x01,0x11,0x69,0x46,0xb5,0x77,0x0d,0xc0,0x38,0x12,0x5f,0x6d,0x13,0x1b,0x09,},\"\\xad\\x24\\x66\\x9e\\xf5\\x5c\\x54\\x0a\\x8e\\xd1\\x62\\xce\\x1d\\x28\\xf0\\x17\\x60\\xa6\\x07\\x19\\xa0\\x37\\x73\\x36\\xeb\\x00\\xb1\\xec\\xbe\\x6f\\x61\\x60\\x1c\\xd5\\x64\\xf9\\x2c\\x95\\x68\\x04\\xf9\\xbe\\xd4\\xe1\\x47\\x6b\\x94\\xe5\\xea\\x8c\\xca\\x80\\xcb\\x49\\xa3\\x04\\xef\\x85\\x1f\\x7f\\x67\\x5a\\xbe\\x58\\xe6\\x68\\x1d\\xc0\\x12\\xad\\x55\\xe5\\x1b\\x02\\x1d\\x98\\x28\\x56\\x9d\\x0b\\xcc\\x9e\\x05\\x27\\xa3\\xfc\\x03\\xc8\\x91\\xd1\\x7a\\x90\\xe6\\x33\\x7a\\x1e\\xa6\\x7f\\x2f\\x08\\x81\\x05\\x87\\x69\\x38\\x37\\x08\\x1e\\x4c\\x08\\xa3\\xd7\\x2c\\x53\\x6c\\x21\\x40\\xda\\x20\\x0b\\xa4\\x56\\xc3\\x76\\xf6\\x1d\\x05\\x65\\x1f\\x0c\\x5f\\x39\\x57\\x11\\xf4\\x1c\\x0d\\x6e\\xae\\x98\\xc9\\x06\\x76\\x4d\\x1e\\xbe\\xf3\\xf9\\x04\\x6c\\xb7\\xc8\\x62\\x26\\x40\\xfc\\xaf\\xaf\\xbf\\xb8\\xf6\\x2e\\x1c\\xd3\\x2c\\x66\\xee\\x1c\\x55\\x50\\x94\\x89\\xa5\\x38\\xab\\x61\\x29\\x99\\xe7\\x99\\x7b\\x77\\x9c\\x64\\x22\\xef\\xf1\\x09\\xda\\x4d\\xf8\\x29\\x20\\x93\\x0d\\x8d\\x36\\x3d\\x78\\x30\\x90\\x87\\x95\\xa3\\x88\\x8f\\x25\\xd6\\x67\\xe1\\x4d\\x15\\x5e\\xd4\\x45\\x81\\xbe\\x43\\x0f\\x79\\x73\\xb5\\x74\\xe2\\xbc\\x0b\\x13\\x4c\\xf1\\x39\\xfb\\x4b\\xb0\\x1d\\xbd\\xa4\\x1b\\x67\\xb9\\x81\\x47\\xd8\\x01\\x2f\\x40\\x67\\x7f\\x4b\\x80\\xce\\x4a\\x53\\x4c\\x90\\xad\\xea\\xbf\\x48\\x4b\\x21\\xfa\\x99\\x4b\\x7a\\x17\\x5f\\x8a\\x8b\\x8a\\x40\\x75\\x56\\x44\\x78\\xdd\\xb0\\x50\\x24\\x58\\x0b\\xab\\x03\\x8c\\xd9\\xea\\xa1\\xdf\\xda\\x55\\x2f\\xb3\\x12\\x29\\x42\\x9b\\x61\\x4f\\xa1\\xd8\\x0c\\x52\\x61\\x4e\\x84\\xfa\\xa2\\x21\\x7f\\x26\\x0f\\xf7\\xcc\\xea\\x8c\\x7b\\x06\\xe3\\xd7\\x7f\\xf8\\x74\\xeb\\x81\\xfc\\x85\\x97\\xe5\\xfc\\xdc\\xec\\x95\\x1b\\x5f\\xe6\\x4a\\x1a\\xf8\\x6e\\x73\\x19\\x3a\\x88\\x24\\x69\\xeb\\x3b\\xa3\\xc3\\x82\\x73\\x4b\\x28\\x87\\xb4\\x19\\x31\\x6e\\xa4\\x48\\xaf\\xc2\\x82\\x47\\x8c\\x25\\xf7\\xbc\\xa1\\x84\\x29\\xcb\\xbf\\xfd\\x88\\x71\\x17\\x7c\\x5e\\xcc\\x7d\\x8a\\xa9\\xa1\\xb9\\xec\\x87\\x19\\x2d\\x29\\xa5\\x25\\x39\\xc0\\x81\\xc3\\x59\\x33\\x32\\x44\\x4c\\xbe\\x66\\x87\\x2c\\xf3\\xd0\\xe1\\x97\\x29\\x2b\\x82\\xb0\\xbe\\x5f\\xcd\\x85\\x8c\\xd6\\xca\\x48\\xb5\\x3e\\xe5\\xb6\\x16\\x41\\xbc\\xaa\\xf3\\x1d\\x81\\x9c\\x7e\\x1c\\xed\\xaf\\x9e\\xe6\\xb0\\x7e\\x09\\xca\\xed\\xfb\\x30\\xb9\\x20\\x4a\\x1d\\x4d\\xdb\\x70\\x56\\x0c\\xbe\\x1e\\xb0\\xc0\\xec\\x43\\xf1\\xd1\\x78\\x20\\x1b\\x29\\x08\\x19\\xfc\\xdc\\x92\\xc6\\x3e\\x0d\\xb6\\x0f\\xb8\\x7d\\xff\\x00\\xe5\\x12\\x64\\x8c\\x89\\x58\\xa8\\x47\\xef\\xc3\\x63\\x46\\x07\\x3f\\x1a\\x4f\\x1f\\x23\\x17\\x06\\x0f\\x1c\\x54\\x3e\\x6f\\x01\\xb4\\x24\\x85\\xbe\\xeb\\x56\\xca\\xb3\\xba\\xb2\\x6e\\x6a\\x0c\\xa6\\x93\\x58\\x02\\xc7\\x62\\xb7\\x99\\x15\\x9e\\x32\\x0f\\x36\\xb5\\xe8\\x3d\\x4a\\xca\\x89\\x62\\xaa\\x2c\\x3c\\x2b\\x7a\\x38\\x70\\xe9\\xe0\\x47\\x31\\xf3\\x94\\x8c\\xf9\\x41\\xe2\\x1d\\x50\\x96\\x4e\\x5d\\x63\\x5a\\x35\\xa5\\x3e\\x29\\x98\\x11\\xb8\\xca\\xdf\\xcb\\x44\\x16\\xc5\\x75\\x98\\xa3\\xfd\\x05\\x41\\x09\\x10\\xdb\\xc0\\xea\\x2c\\x78\\xfd\\xb9\\x25\\x74\\x99\\x7d\\x58\\x79\\x62\\x79\\xea\\xaa\\x78\\xb3\\x6d\\xce\\xf1\\xc9\\xa1\\x29\\xee\\xff\\x82\\x39\\x9a\\x26\\xd0\\x08\\xff\\xa3\\xbf\\x04\\x18\\xff\\x7d\\x39\\xb6\\x42\\x7f\\x34\\x18\\x95\\x02\\x4d\\x16\\xe2\\x2a\\x0c\\x62\\xa8\\x2b\\xeb\\xa2\\xe2\\xba\\xc2\\x3d\\xee\\x18\\xcf\\xcd\\x5d\\xb2\\x39\\x7f\\x37\\x8c\\x53\\x67\\x30\\x90\\x82\\xc4\\x4e\\xb4\\x3c\\xed\\xc1\\x52\\x20\\x25\\x3a\\x62\\x32\\x03\\x99\\x66\\x5f\\x71\\x34\\x9c\\xc1\\xb9\\x44\\xf5\\x8c\\x73\\xa1\\x0a\\x0b\\xbf\\xd4\\xca\\xf1\\x28\\x91\\xe3\"},\n{{0xbe,0x1c,0x11,0x2f,0x78,0xcf,0x13,0xae,0xfc,0x5c,0xe7,0xe3,0x37,0x64,0xac,0xa4,0x48,0x1f,0x9f,0x88,0xb0,0x18,0xe1,0x22,0xdb,0x9f,0x8d,0xac,0x14,0x62,0x46,0x05,},{0xae,0x38,0x99,0x36,0xbb,0xf6,0xd1,0x6e,0x3c,0x1e,0xeb,0x64,0x74,0x29,0x89,0x70,0x86,0x6e,0x12,0xec,0x9c,0x1d,0x6a,0xea,0x2f,0xd9,0xdb,0x6b,0x56,0xaa,0x59,0xc4,},{0xf5,0xfc,0x5a,0xcb,0x17,0xe9,0x95,0x7e,0xa3,0x04,0xf1,0x23,0xb6,0x50,0xe1,0x44,0xc9,0xe4,0x37,0x72,0x83,0x50,0x9d,0x43,0x1d,0xa6,0xa2,0xbb,0xd5,0x27,0xbe,0xb3,0x82,0xc9,0xf5,0x87,0x45,0xa3,0xe5,0x6d,0xcc,0x65,0x5b,0xd2,0xeb,0xb7,0xae,0xef,0xc9,0x3e,0xdc,0x3f,0x20,0xd8,0xd3,0xc3,0x79,0x23,0x03,0x1e,0xec,0x0c,0xb4,0x07,},\"\\xd7\\x7f\\x9a\\xee\\xa0\\xfe\\x98\\xed\\x7f\\xb7\\x4d\\x58\\x2a\\x40\\x2b\\xcb\\x79\\x31\\x47\\x4b\\x4a\\x95\\xd5\\x23\\xf3\\xfb\\x76\\x9f\\xb7\\x09\\x7d\\x2b\\xe4\\xc6\\xec\\x10\\x52\\x14\\x01\\x63\\x22\\x25\\x53\\xaa\\x8f\\x4f\\x89\\xe4\\x21\\x73\\x00\\x14\\xec\\x73\\x46\\x97\\x20\\xce\\xa9\\x67\\xf8\\x8b\\x6a\\x48\\xd0\\x2a\\x2d\\xdc\\x1a\\x12\\x1f\\xdf\\xfb\\x8a\\xe1\\x27\\x73\\x8e\\x29\\x3c\\x4d\\x6b\\x1b\\x74\\xad\\x03\\x84\\x4d\\xe6\\xbf\\xe8\\x21\\x50\\x6b\\x3a\\x7a\\x81\\xd1\\x9c\\x37\\xa7\\xf0\\x1c\\xa4\\x81\\x47\\x12\\x19\\xef\\xe2\\xa7\\xb9\\x2c\\x4b\\xd2\\xac\\x07\\x74\\x3b\\x49\\x75\\x69\\x64\\x41\\x71\\x4b\\x84\\xd6\\x3c\\x54\\x9d\\x7a\\x6f\\xb6\\x1f\\x16\\xfb\\xcd\\xb7\\x2b\\x91\\x4d\\x78\\x82\\xd0\\x91\\xf9\\x70\\x6d\\xa3\\x8c\\x1a\\x81\\xa1\\xc6\\xa4\\x0f\\xbe\\xc0\\xd8\\xe2\\x38\\xb5\\xd5\\x6d\\x46\\x0e\\x90\\x9f\\x85\\x47\\x9f\\x7a\\xd8\\xb1\\x19\\xf3\\x54\\x55\\xe3\\x40\\x10\\xca\\xa7\\xe5\\xd0\\x1f\\x38\\xe3\\x01\\xad\\x37\\xe8\\x00\\x5f\\x6e\\xd2\\x9e\\x4a\\x10\\x2d\\xb3\\xf6\\x1d\\x84\\x09\\x3f\\x78\\xc4\\x9a\\x96\\x48\\xc9\\x77\\xbf\\x4d\\x5b\\x68\\x9f\\x71\\xf4\\x06\\xf8\\xad\\x7b\\x9a\\xeb\\x1a\\xe2\\x21\\x33\\xa8\\x4c\\xe1\\xb2\\x78\\xb2\\xcd\\xde\\x46\\x59\\x01\\xb2\\x3a\\x17\\x9d\\x07\\x2a\\x80\\x87\\x9d\\x0a\\x24\\xd2\\xaf\\x19\\x7b\\x32\\x2a\\x07\\xbf\\x5d\\x40\\xee\\xab\\x3a\\xf1\\x21\\x17\\xf1\\x30\\x21\\xdf\\xc1\\x68\\x1a\\xba\\x5c\\x08\\x3f\\x25\\x96\\xe3\\x7f\\x11\\x23\\x42\\x2b\\xbd\\xca\\x3b\\x2c\\x32\\xcb\\x59\\x4f\\x56\\xc3\\x25\\xe0\\xc5\\x64\\xa1\\x73\\x32\\x88\\x05\\x34\\x59\\xc6\\x24\\x88\\x92\\x5c\\xd8\\x0e\\x7c\\x94\\x4d\\xb9\\x98\\xc3\\xc7\\xbe\\x54\\x6b\\xf8\\x9d\\x7a\\x51\\x1c\\xcd\\xba\\x4b\\x80\\x9e\\xee\\x0f\\xc2\\x87\\x3d\\xad\\x72\\xb4\\xcf\\x3b\\xa0\\x51\\x28\\x9b\\xb3\\xf4\\xe9\\x92\\x57\\x32\\xe4\\x5a\\xe7\\x74\\x10\\x58\\xc8\\xfd\\x11\\x59\\x9d\\xd8\\x43\\x92\\x7e\\x3d\\x14\\x59\\x8b\\xb8\\x30\\x52\\xd3\\x35\\x69\\xcf\\xb0\\x2a\\xf0\\xc8\\x8f\\xa7\\xae\\xa4\\xbb\\x46\\x84\\x1c\\xd2\\xdd\\xbd\\xf5\\x98\\x8f\\xcf\\x32\\x5f\\xf1\\x04\\xa5\\xdf\\xc4\\xa3\\x0d\\x26\\x9d\\x2a\\x94\\x97\\x30\\xc3\\x61\\x3b\\xdd\\xd3\\x67\\x3b\\x42\\xf6\\x09\\x0e\\x6a\\x60\\xe4\\xa2\\x53\\x06\\x24\\x63\\xa6\\x5d\\x7e\\x7f\\xc0\\x03\\x0b\\xba\\x76\\x9c\\xa3\\x44\\xbf\\xa9\\xac\\x82\\x3f\\x58\\xcb\\x5c\\xee\\x8a\\x5f\\xc0\\xca\\x37\\x22\\x8d\\xe5\\xa4\\xd9\\x3e\\x0e\\xcf\\x7f\\x10\\x82\\x16\\x59\\xa2\\x26\\x1f\\x7e\\xf1\\x59\\x6e\\xda\\x4e\\x41\\x1c\\xf3\\xc9\\x66\\x9d\\x81\\xde\\x74\\x54\\x7c\\xe4\\xbf\\x83\\x3e\\xb4\\x32\\xf3\\x85\\xce\\x90\\x38\\xfe\\x84\\x8a\\x8c\\x96\\xda\\x7f\\x01\\xfd\\x95\\xbe\\xa0\\x6d\\x1d\\x74\\x7c\\x8a\\xe7\\x36\\x49\\x5b\\xba\\x22\\x85\\xbe\\x5c\\x32\\xaf\\xea\\x44\\x95\\x20\\xcf\\xe8\\xe1\\xce\\x25\\xf9\\x07\\x7e\\xd0\\xec\\x0f\\x65\\x98\\xa9\\xb8\\xf7\\x38\\x6f\\x15\\x35\\x81\\x70\\xcc\\xef\\xc3\\xd5\\xff\\xb0\\x09\\x28\\x81\\x54\\xde\\x87\\x7c\\x24\\x09\\xae\\x5f\\xd8\\xfe\\xf0\\x09\\x3f\\x1c\\x36\\xb3\\xa8\\xf5\\x47\\x43\\x2c\\xd0\\xf6\\x2c\\x40\\x33\\x24\\x2a\\xd9\\x92\\x1a\\x8f\\x11\\xc0\\x0f\\x36\\x6d\\xa9\\x39\\x69\\x30\\xa8\\x0c\\x99\\x7d\\xf4\\x29\\xa4\\xf5\\xf4\\xe4\\x5c\\x7a\\x6d\\x7e\\x02\\xaf\\x03\\x31\\x86\\x75\\x7c\\x73\\xcb\\xe6\\x4d\\x2d\\x4e\\x78\\xea\\xaf\\xe2\\x75\\x39\\x52\\x80\\x35\\xf2\\xcf\\xcf\\x8e\\xaf\\x0a\\x42\\xbd\\x25\\xf8\\x8b\\x2f\\xc6\\x9e\\x42\\x66\\x8f\\xae\\x66\\x77\\xc9\\xac\\x90\\x91\\xd9\\xd1\\x5a\\x41\\xf3\\xac\\xe6\\x5d\\x90\\xa0\\x22\\x98\\x73\\xdc\\xf2\\x54\\x25\\x6c\\xca\\x44\\x9e\\xd4\\xc1\\x7d\\x54\\x35\\xba\\xe4\"},\n{{0xbd,0x85,0x23,0xed,0xa8,0x99,0xb9,0x84,0x23,0x0e,0x32,0x88,0x75,0xb9,0x67,0x2e,0xdc,0x9f,0xcd,0x24,0xea,0x5c,0xc1,0x2d,0x7b,0x57,0x2d,0xa4,0xbe,0x01,0xfb,0x7b,},{0x02,0xb7,0x34,0xeb,0xbe,0x88,0xc1,0x3b,0xfa,0x95,0xa5,0xd9,0x64,0xfc,0x7e,0xf9,0xd3,0x95,0xbd,0x63,0x03,0xf0,0x65,0xdc,0x4e,0xe1,0x7b,0x3a,0xc1,0x54,0x8b,0x7b,},{0xfc,0xfc,0xdb,0x08,0x8d,0xcb,0xd0,0xa5,0x1b,0xd3,0x01,0xe3,0xe1,0x56,0x16,0x71,0x93,0x5d,0x8b,0x6f,0x71,0x9c,0x5d,0x92,0x69,0x06,0x40,0xd3,0xc9,0x1e,0x77,0x5b,0xf4,0x05,0x41,0x32,0xef,0xc0,0x5a,0x21,0x22,0xfc,0x20,0x9d,0xb3,0xc3,0x34,0x32,0x33,0xff,0x8a,0xec,0xeb,0xd5,0x2d,0xaa,0x2b,0x3b,0x21,0xee,0xb1,0x5f,0xd1,0x02,},\"\\x16\\xc2\\x16\\xc9\\xbe\\x9f\\x0d\\x4b\\x11\\x54\\x10\\xbd\\xfd\\x15\\x93\\xc8\\xe2\\x62\\x22\\x1a\\xb9\\x7a\\x2a\\x39\\x5a\\x12\\x19\\x8f\\x95\\xc3\\x02\\x05\\xb0\\x89\\x62\\xd4\\x89\\x31\\x18\\xba\\x9f\\xf9\\x9a\\xb1\\xc7\\xa6\\xe1\\xf2\\xf1\\x75\\x19\\x10\\x70\\xac\\x94\\x53\\x27\\xad\\x6c\\x47\\x0b\\xab\\xf7\\x92\\x8b\\x07\\xdd\\x78\\x8c\\x85\\xb6\\x4b\\x71\\x2e\\x0a\\xae\\x6c\\x0e\\xa2\\x02\\x81\\xe4\\x2f\\xd5\\x61\\xe8\\x3e\\x3f\\xba\\xc6\\x7f\\x14\\x00\\x0e\\xe5\\x6d\\x98\\x1d\\x2a\\x2f\\x0b\\x9c\\xa0\\x0a\\x9e\\xa4\\x7c\\xa2\\xf6\\xfc\\x8d\\xca\\x10\\x35\\xfc\\xeb\\x14\\x2c\\x3f\\x26\\xf2\\x0e\\x3c\\x73\\x22\\x07\\xff\\xff\\x11\\xb7\\x96\\x95\\xbd\\xaf\\xa4\\x15\\x21\\x4a\\x44\\x99\\x30\\x23\\x26\\x60\\x5c\\xf0\\xb8\\xc8\\x2f\\x2b\\x11\\x39\\x2e\\xcc\\x90\\xcd\\x74\\xa7\\xb4\\x11\\xb6\\xd9\\x07\\xa3\\xd5\\xc1\\x30\\xc8\\x79\\xb7\\xcf\\x88\\x0f\\x22\\xbb\\xd7\\xf0\\xe9\\x59\\x33\\x71\\x8e\\x96\\xd7\\xd1\\x6c\\xae\\xa9\\xf2\\xc3\\x9e\\x89\\xb1\\x3c\\xd5\\x22\\x66\\x27\\x36\\x04\\xa9\\x6b\\x51\\xd6\\xe3\\x4f\\x70\\x67\\x35\\xdd\\xd9\\xfc\\xa4\\x4d\\x09\\xcd\\x86\\xbb\\x72\\x17\\x60\\x0e\\x0d\\x34\\xd4\\x16\\xac\\x24\\x9f\\x2e\\x41\\xbd\\x0f\\x4a\\xbc\\xbd\\x25\\x80\\xad\\xae\\x21\\xd7\\xeb\\xa5\\xfa\\x44\\xf3\\x9d\\x78\\x0f\\x17\\xeb\\x85\\xcc\\xbe\\xf5\\x8f\\xef\\x90\\x3a\\x28\\x0d\\x95\\xf8\\xf3\\x21\\x07\\x89\\xfa\\x12\\xe1\\x20\\xe2\\x1b\\x6e\\x8c\\xad\\x91\\x78\\x35\\xbb\\xdc\\xc3\\xb0\\x7e\\x84\\x69\\x39\\x54\\xe2\\x3a\\x94\\xf9\\x9f\\x93\\x7d\\xdb\\x0d\\x4a\\x18\\xd4\\x2c\\x3e\\xa8\\xfc\\xa7\\xd1\\xea\\x6e\\xd5\\x3a\\x00\\x24\\x6f\\x99\\xea\\x52\\x0e\\x64\\x05\\xbd\\x2a\\xa5\\x49\\xb0\\x6e\\x7d\\xa7\\x22\\xc1\\xba\\x74\\xaa\\x1c\\x13\\x6e\\x8e\\xa5\\x8b\\xaa\\xf8\\xd3\\x76\\x58\\x69\\x3f\\x3e\\x0b\\x44\\xf6\\x31\\xdd\\x6d\\x08\\xff\\xdf\\x4f\\x09\\x18\\x9d\\x30\\x35\\xa3\\xf0\\x34\\x68\\xe2\\x96\\x96\\xef\\x05\\xe0\\x2c\\xc1\\xaa\\xbf\\xec\\xbd\\xa2\\x30\\x1b\\x54\\x0c\\xb0\\xeb\\x0a\\x75\\xbc\\xce\\x73\\xdb\\x92\\x73\\xa9\\x16\\x1a\\x98\\xad\\x89\\x8f\\xcd\\x65\\x79\\xfb\\x7e\\x4b\\x32\\x79\\x54\\x4f\\x2e\\x0b\\xd7\\x74\\xdd\\x1a\\x81\\x57\\xda\\xa8\\x8a\\x70\\x32\\x11\\x67\\x70\\x3c\\x60\\xa6\\x08\\xa4\\xb5\\x42\\x16\\x59\\x03\\x75\\xe5\\x97\\xfe\\x21\\xae\\xa9\\x7b\\x52\\x18\\x5d\\x0e\\x37\\xa5\\x3b\\x63\\x88\\xa7\\x07\\xa2\\xbc\\x24\\xac\\xf9\\x44\\x25\\xf8\\x4f\\x3d\\x56\\xbc\\x9f\\x7e\\xe7\\x41\\x2a\\x9e\\x18\\x33\\xad\\x55\\xb7\\xea\\xe6\\xda\\x58\\x16\\x98\\x16\\x63\\x83\\xa2\\xeb\\xa8\\xb6\\xf5\\x39\\x20\\xf5\\x17\\xa5\\xc8\\x0b\\xd3\\xe0\\x3f\\xaa\\xd4\\x08\\x7e\\x3e\\xe8\\xfe\\xc9\\xa7\\x9a\\x01\\xc7\\x79\\x51\\x21\\x33\\xd7\\xb6\\xe5\\xf1\\xde\\xc7\\x66\\x30\\x0d\\xc4\\x05\\xcc\\x21\\xa8\\xc5\\x83\\xfb\\x73\\xbc\\x90\\xcf\\x24\\x38\\x5b\\x08\\x60\\x49\\xd3\\xbf\\x20\\xc3\\x00\\x98\\x3c\\x0b\\x35\\x15\\x38\\xdc\\xcb\\x22\\x7a\\x14\\xfa\\xfd\\x23\\xac\\x4b\\x26\\xbe\\x81\\xa2\\xb1\\x20\\xcf\\x21\\x6f\\xc5\\x83\\x54\\xf9\\xdc\\xbf\\x05\\xf6\\x63\\x39\\xad\\x6d\\xdc\\x2c\\xac\\x14\\x67\\x7b\\x90\\xe2\\x47\\xeb\\xb6\\xc5\\xc2\\x29\\x00\\x7d\\xc6\\x0f\\x37\\x4a\\x06\\xd4\\x04\\xeb\\x23\\xeb\\x1e\\xc4\\x99\\x07\\xc6\\xe8\\x81\\x62\\x9e\\x18\\x67\\x26\\x8c\\xa6\\xff\\xfa\\x59\\xaa\\x3c\\xa8\\xf6\\xc2\\x95\\x16\\x2b\\x95\\x36\\xc2\\xbe\\x22\\xbb\\xe3\\xb7\\x23\\x80\\xef\\x11\\xb6\\x1b\\x35\\x7a\\x62\\x53\\x10\\x0e\\x30\\xa5\\x86\\x81\\x8b\\xa0\\x03\\xfa\\x3f\\xfd\\x1f\\xc9\\x19\\x88\\x1c\\x05\\x02\\x2f\\x94\\x84\\x85\\x98\\xf2\\x17\\xfe\\xa2\\x22\\x50\\x72\\x20\\xd1\\x08\\xa2\\x8f\\xc7\\xbc\\x39\\xa8\\xa1\\x1c\"},\n{{0x33,0xa8,0x5a,0xe1,0x50,0xbb,0xf5,0x52,0xf4,0x16,0x63,0xb2,0x15,0x21,0xc2,0x96,0xd2,0x46,0xdd,0x6c,0xf8,0x19,0x5d,0xf8,0x51,0xc6,0x95,0xbd,0x15,0xf4,0xa5,0x02,},{0xc8,0xc9,0xc4,0x25,0x21,0x00,0x8d,0x5e,0xff,0xf5,0x76,0xc7,0xe4,0xa5,0x60,0x83,0xce,0xd9,0xa9,0x28,0xda,0x6f,0xd5,0xcf,0x93,0xfd,0xa5,0x72,0xa5,0xa2,0xd0,0xc0,},{0xbb,0xe4,0xcd,0x63,0x67,0x6e,0x26,0xd6,0x75,0xa1,0x91,0x15,0x1d,0x30,0xdb,0x72,0xb5,0xb8,0x4d,0x46,0x1e,0xec,0x65,0x64,0xaf,0x86,0x7a,0xb4,0x1b,0xae,0x99,0x31,0x14,0x78,0x85,0x51,0x9e,0xc9,0xd7,0xe6,0xc8,0x18,0x74,0x3c,0x8e,0xf6,0xd5,0x16,0x7b,0x35,0xb4,0x21,0x36,0x3c,0x09,0xb3,0x57,0x36,0x7f,0xe8,0xde,0x44,0x3a,0x06,},\"\\x93\\x7e\\x05\\xf2\\xf1\\xfd\\xbd\\x41\\x73\\x15\\x53\\xe7\\x7c\\xf1\\x81\\xb5\\x07\\x97\\x58\\x94\\x0a\\xee\\x8e\\x92\\x62\\x3f\\xb1\\xd5\\xf0\\x71\\x28\\xb7\\xd7\\xf1\\x7e\\x48\\x42\\x70\\x7a\\x56\\x2c\\x45\\xba\\x69\\x26\\x4c\\x0f\\x73\\x0a\\x82\\x1c\\x7d\\xb6\\xbf\\x82\\x99\\x0d\\xc6\\x51\\x26\\x9b\\x29\\x6c\\x33\\x51\\x79\\x11\\x30\\x53\\xd6\\xf8\\x5b\\xb0\\x96\\xb2\\x91\\x11\\x65\\xfa\\x39\\x00\\xcb\\x10\\x24\\x16\\x48\\x7b\\xa8\\x07\\x86\\x79\\xc6\\xb3\\x36\\xdf\\xf3\\x87\\x63\\xc0\\x8d\\xcd\\x20\\xfa\\x66\\xdd\\xa4\\x5c\\x57\\x5d\\xf1\\x50\\xd8\\x51\\x16\\x5a\\x48\\x04\\x97\\x38\\x30\\xf4\\x36\\xdf\\x60\\xb8\\x13\\x19\\xf9\\xcf\\xb5\\x64\\xc0\\x65\\x28\\x96\\xed\\x5f\\x18\\x49\\xcb\\x33\\x54\\xf5\\x0f\\x00\\x12\\xf2\\x86\\xe8\\xa3\\x0c\\x21\\x35\\x28\\x69\\x34\\x74\\x00\\x4e\\x85\\x04\\x01\\x2b\\x94\\x55\\x60\\xc0\\x74\\xa6\\xa1\\x63\\x43\\x2c\\xf4\\xac\\x4b\\xa7\\x17\\x5c\\xf2\\x60\\x05\\xdb\\x71\\x99\\xee\\x96\\xd8\\x93\\xcd\\x1a\\xad\\x3f\\xdf\\x5d\\x57\\x46\\x0e\\xf0\\x2d\\xda\\x6d\\x3a\\x14\\x08\\x25\\x19\\x6f\\x3f\\x8e\\x2f\\x37\\xda\\x36\\xb6\\xfd\\xad\\x18\\x4f\\x27\\x40\\xf1\\x16\\xde\\x75\\x8a\\x92\\x91\\x70\\x30\\xc5\\xfb\\x80\\xf0\\x26\\x24\\x96\\xd2\\xdf\\x93\\xc7\\xe2\\x76\\xf2\\x5d\\xa7\\xdb\\xed\\x8e\\xb8\\xdd\\x4c\\x56\\x3a\\xba\\x55\\xb8\\x2a\\xf6\\xba\\x3a\\x70\\xca\\x5f\\x85\\x8b\\x44\\xa0\\x33\\xcf\\xb7\\x95\\x60\\x4d\\xde\\xe7\\x46\\xe7\\xc8\\xae\\x79\\xd2\\x72\\xfb\\x9a\\x23\\x41\\xa2\\xa2\\x02\\xdf\\x5e\\xac\\x08\\xde\\x75\\xad\\x80\\xc6\\x58\\x0d\\x92\\xb1\\x69\\xf2\\xe1\\x31\\x88\\x57\\xb1\\xb1\\x42\\x1c\\x30\\xf3\\xdd\\x46\\x10\\x93\\xde\\x2d\\x34\\x5e\\xde\\x74\\x04\\xb7\\x2a\\x45\\x0d\\xe0\\x7b\\x16\\xee\\xe6\\x8c\\xe6\\x28\\x87\\xb6\\xea\\xa4\\x36\\xee\\xe6\\x84\\xbe\\x75\\xce\\x0e\\x1f\\x96\\x26\\x3e\\x8d\\x87\\x36\\xf9\\xba\\x00\\x0d\\x88\\xe9\\xe5\\x86\\x0f\\x32\\x8a\\xe1\\xe2\\xdc\\x73\\x09\\x9d\\x32\\xfc\\xeb\\x1b\\xd2\\xc0\\x12\\x36\\x98\\xa4\\x9b\\xea\\xd1\\x90\\xa0\\x0e\\xc9\\xa6\\xf8\\x71\\x33\\xed\\xdd\\x45\\x31\\x6f\\x65\\xeb\\x0d\\x32\\x9b\\x07\\xb9\\xa6\\x6b\\xb9\\xfe\\x42\\x58\\x8b\\xf7\\xb8\\xd0\\x6e\\xfe\\xc1\\x98\\x6b\\x82\\xa0\\x81\\xed\\x3f\\x68\\x02\\xe9\\xbe\\x73\\x46\\x47\\x84\\x55\\x9a\\x4f\\x2c\\x09\\x7b\\xa1\\x4b\\x0b\\xfd\\x5d\\x7e\\x0a\\xff\\x65\\xcb\\x69\\xab\\xd0\\x3f\\x86\\x16\\xcd\\x7e\\xdf\\x7e\\xc3\\x68\\x21\\x9e\\xdc\\xf8\\x93\\xe9\\xee\\x71\\xda\\xd9\\xf1\\x8d\\x79\\xe5\\x68\\x26\\x5d\\xdc\\x67\\x16\\x22\\x32\\x13\\x23\\x5b\\xb9\\x28\\xe9\\x08\\xde\\xa8\\x27\\x78\\x4c\\xd1\\xaf\\x39\\x6d\\x59\\x0c\\x81\\xf4\\xea\\xcd\\xfc\\xf8\\x9c\\x5c\\xac\\x96\\xfa\\x05\\x00\\x64\\xa2\\x28\\x41\\xea\\x71\\x5f\\x8c\\x89\\xd6\\xd5\\xaf\\xbf\\x59\\x7a\\x4d\\x00\\x5d\\xbc\\x6b\\x13\\x85\\x6d\\x33\\x5b\\x42\\xa9\\xa8\\x2e\\xdc\\xb9\\x49\\x83\\x5c\\xca\\x20\\xb0\\xa2\\x3d\\xe5\\x1c\\xc3\\xae\\xc3\\x55\\x66\\xef\\xf0\\xc5\\xae\\x1a\\xb3\\x75\\x13\\x20\\xd2\\xc3\\x10\\x49\\x52\\x38\\xed\\xa3\\x83\\xc3\\x8a\\x41\\x63\\x15\\x2b\\x88\\x15\\x69\\x0b\\x8f\\xf0\\x15\\x03\\x5d\\x1d\\x00\\xea\\x4a\\x0d\\x6c\\xaf\\x32\\x4b\\xb7\\x1a\\x66\\x4a\\x1b\\xed\\x31\\x48\\x07\\x84\\xa6\\x8f\\x43\\x8c\\xaa\\x35\\x9e\\x8d\\x26\\x73\\xc8\\x57\\xd4\\xb8\\xc0\\xb6\\xc6\\x95\\x84\\x7b\\x86\\x80\\x0e\\xa3\\xd7\\x34\\xb5\\xec\\xc4\\xd5\\x2b\\x50\\x7a\\xc6\\x9b\\x3a\\x67\\x78\\x91\\x60\\x16\\xeb\\xc2\\x31\\x5f\\x44\\xc9\\x0b\\xf0\\xc3\\xe7\\xda\\xe0\\x1d\\x49\\xcb\\xc3\\x03\\x40\\x2b\\xbc\\x63\\x4a\\xe1\\x19\\x1f\\x3f\\x6f\\xd6\\x3d\\x30\\x3b\\x0c\\x0b\\xe0\\x33\\xa4\\x7b\\x90\\xf8\\xd3\\xa7\\x7f\\x0a\\x44\"},\n{{0xba,0x9e,0x68,0x62,0x04,0x97,0x5c,0x3b,0xde,0xd4,0xc1,0xe9,0xf7,0x4c,0x7e,0x4c,0x7a,0x7e,0x3c,0x99,0x81,0xd0,0x1b,0xfc,0xa0,0xad,0x01,0x15,0xc3,0xf0,0xf5,0xc3,},{0x49,0x90,0xfc,0xe6,0x95,0x2e,0x8b,0x7d,0x0a,0xfc,0xf4,0xbf,0x9d,0xba,0x9b,0xce,0x1b,0xc4,0x81,0x5e,0x37,0x51,0x1d,0xa7,0xc2,0xad,0x48,0x92,0x58,0x1d,0xe0,0x3a,},{0xc7,0xd2,0x3a,0x58,0xe2,0xfb,0x2a,0x8d,0x4b,0x8e,0xd1,0xe9,0xea,0xe9,0x1e,0x11,0x29,0xc2,0xaf,0x8b,0xd0,0x5f,0x0b,0xd5,0x72,0xab,0xeb,0xbe,0x0f,0x30,0x82,0x59,0x25,0xf0,0xdf,0x71,0xcf,0xb7,0x21,0x8c,0x68,0x6e,0x55,0x48,0xd9,0x42,0x77,0x10,0xa6,0x90,0x36,0x6b,0xa8,0x55,0x41,0xc7,0x91,0x01,0xa5,0x8a,0x10,0xe8,0xaf,0x0a,},\"\\x46\\xbb\\x48\\x95\\x2a\\xe5\\x8f\\x2b\\xf5\\x8f\\x5b\\xe8\\xdf\\x4f\\x31\\x6b\\x50\\xf3\\x63\\xec\\x84\\xee\\xd8\\xf8\\x2f\\xf4\\xc0\\x4b\\x06\\x92\\xd0\\x3a\\xef\\x26\\xe8\\xe1\\xe6\\xc9\\x54\\x9a\\x22\\x47\\xd5\\x40\\xa6\\xe2\\x2f\\xeb\\x11\\xe5\\x7f\\x4b\\x80\\x8a\\x20\\x97\\xe8\\xa7\\xb6\\xb3\\xb7\\xaf\\x37\\x69\\xe6\\xd8\\x1d\\x64\\x88\\x6e\\x69\\x62\\x37\\x2f\\x4f\\x39\\xe4\\x9c\\xd4\\x6c\\x1b\\x5f\\x73\\x5f\\x38\\x0f\\x7c\\x27\\x7d\\x09\\x97\\x76\\xed\\x1a\\xea\\xa5\\x7a\\x35\\x9c\\x0a\\xa8\\xc7\\x2f\\x40\\xeb\\x91\\xa1\\xbf\\x07\\xea\\x15\\x7f\\x5d\\xdb\\x30\\x40\\x9d\\x6e\\x3a\\xf9\\x89\\x90\\xce\\x7f\\x30\\xaf\\xfd\\xac\\x5e\\x22\\x01\\x06\\x46\\xdc\\xa9\\x6a\\x54\\x00\\x60\\xfc\\x90\\x8a\\x31\\x25\\xb0\\x00\\xad\\x1e\\xd3\\xa0\\xf2\\x55\\xcd\\x34\\xf1\\x5d\\x7d\\xd1\\xfd\\x68\\x1c\\x3c\\x35\\xa1\\xcd\\x65\\x20\\x56\\xec\\xc5\\x26\\x4d\\x39\\xaa\\xf7\\x2a\\x9b\\xb8\\x3a\\x55\\x1c\\xc9\\x34\\x88\\x7a\\xe1\\x07\\xaf\\xdf\\xef\\x06\\x32\\x17\\x27\\x0d\\x95\\x96\\x89\\x14\\x18\\xbd\\x46\\x1b\\xba\\x63\\xde\\x65\\xbe\\x06\\x7b\\x1b\\x78\\x64\\xfe\\x46\\x48\\x4c\\x7c\\x9e\\x96\\x34\\x9a\\x7c\\x03\\xa8\\x0f\\xa0\\x55\\x05\\x0a\\xa1\\x8a\\xce\\x2a\\x44\\xb4\\xa0\\x3c\\x94\\x78\\x24\\x17\\x2b\\x30\\xe2\\x10\\x11\\x15\\x94\\x43\\xca\\x3c\\xef\\xaf\\x69\\x6a\\x7a\\xa8\\xf9\\x80\\x11\\x26\\x0c\\x94\\x36\\xbf\\x48\\x99\\x1f\\x41\\xd4\\xd5\\x07\\xb9\\x6c\\xe7\\x32\\x3e\\x53\\x1a\\xdc\\xf6\\x63\\x47\\xc5\\x5c\\x88\\x55\\x67\\x3a\\x9f\\x2e\\xc8\\x9b\\x5c\\x80\\x24\\x46\\x06\\x17\\xec\\x72\\x71\\x77\\x3b\\x36\\xd6\\x4f\\xc1\\x4e\\xb5\\xd8\\x26\\x52\\xc5\\x3a\\x30\\x31\\x45\\x72\\x27\\x09\\x3d\\x11\\x8f\\xd8\\xeb\\x93\\x84\\xe8\\x02\\x29\\x04\\x1a\\x96\\xa6\\x49\\x34\\x50\\xf9\\x7e\\x67\\x36\\x26\\x3a\\xbf\\x1e\\xcd\\x9e\\x9f\\xb9\\xa4\\xf0\\xf6\\xd6\\x67\\xfa\\x82\\x41\\x51\\x48\\x5e\\xdc\\x37\\xb3\\x4a\\xcf\\x3d\\x8c\\x35\\xf9\\xc1\\xbe\\x48\\xb5\\xe9\\x6a\\x12\\xaf\\x8e\\x2d\\x35\\xc2\\x3a\\x03\\x58\\x0f\\x21\\x1d\\xa6\\x31\\x6b\\x34\\xc5\\x6b\\xee\\x87\\x2d\\x47\\x64\\x1b\\xca\\x77\\xda\\x64\\x0f\\xdb\\xba\\xd5\\xa9\\xad\\x8a\\xb9\\xdc\\x79\\x57\\x91\\x3d\\xa7\\x34\\xad\\x37\\x49\\x2b\\xa4\\xde\\x8c\\xf1\\x36\\xcc\\xcd\\xeb\\x6b\\xa3\\xf1\\xbd\\x3f\\x00\\x3b\\xe7\\x26\\x3c\\x4f\\x2a\\x40\\xc3\\x3f\\x24\\xca\\x33\\x39\\x59\\x6e\\x6c\\x34\\x28\\x33\\x81\\x00\\xeb\\xcc\\x07\\x22\\xd4\\xf5\\x0d\\x30\\xb3\\x3b\\x91\\x2d\\x4e\\x7c\\x1a\\x9f\\xe6\\x5f\\x66\\x58\\xa6\\xf2\\x39\\x14\\x0a\\x62\\xc3\\x26\\x1e\\x10\\x39\\x2e\\xd1\\x93\\x0a\\xa9\\x17\\x65\\x2d\\x3b\\xd2\\xbe\\x4e\\x8a\\x08\\xab\\x97\\xe1\\x45\\xb9\\x20\\xab\\xb3\\x1e\\xe4\\xbc\\xd5\\xa0\\xd7\\x1f\\x63\\x81\\x80\\xf6\\x1c\\x24\\x58\\x23\\xa3\\x99\\xa7\\x34\\xa4\\xdc\\xde\\x09\\x97\\x88\\x02\\x45\\xed\\x71\\xeb\\x9b\\xc6\\x5e\\x3c\\x6f\\xc9\\x5a\\xb9\\x20\\xb8\\x02\\x4c\\x17\\xd4\\x4c\\xed\\x00\\x37\\xd0\\x4a\\x13\\x3c\\x26\\x41\\x78\\x2f\\x1d\\x62\\x2d\\xf4\\x52\\x69\\xb4\\x91\\xd3\\xfa\\x2a\\x12\\x27\\x57\\x9e\\xaa\\x38\\x6d\\xe3\\xe7\\xde\\x7b\\xc4\\x55\\xc6\\xa1\\x54\\xee\\xe5\\x72\\x7f\\xff\\x04\\x37\\xa2\\x00\\x76\\xc5\\xc3\\xb0\\x57\\x7c\\xac\\x5b\\x4b\\x69\\x34\\xe2\\x69\\x38\\x02\\x22\\x46\\x1a\\x60\\xf9\\x54\\xe4\\x89\\x79\\xc0\\x67\\x12\\x17\\xf1\\x6f\\x70\\x27\\x98\\x30\\x34\\x12\\x10\\x93\\x18\\x6c\\x78\\x70\\x5f\\xc2\\x7d\\xc9\\x2e\\x2e\\xda\\x41\\x16\\xa6\\xbf\\x7d\\x23\\xe0\\x54\\x8d\\x62\\xb6\\x7b\\x25\\xc4\\x1e\\xd0\\x61\\x92\\xbc\\x26\\xef\\x13\\x97\\xbf\\x16\\x01\\xf3\\xa6\\xe2\\xa0\\xe7\\xf6\\x61\\xfb\\x05\\x05\\xee\\x38\\x2f\\x27\\xae\\xc2\\x80\\x5a\\x3e\\x21\\x17\"},\n{{0x59,0x07,0xa8,0xc0,0x84,0x04,0x38,0x75,0x23,0x8e,0xdb,0xdc,0xb7,0x83,0x2f,0xbb,0xa4,0xc0,0x5e,0xa3,0xc5,0xf8,0x8a,0x96,0xf1,0xfb,0xf9,0x50,0x40,0x1e,0xc1,0x64,},{0xe2,0xf4,0x95,0x09,0xd1,0x00,0x7f,0x61,0x8e,0xfe,0x4f,0x1f,0xd6,0x7e,0xaa,0x6e,0x2a,0xb1,0x8a,0xfb,0x2d,0xec,0xce,0xd5,0xa0,0xb2,0xba,0x83,0x63,0x78,0x92,0x60,},{0x8c,0x49,0x12,0xc0,0xf8,0x85,0xd7,0x6c,0x91,0x40,0x59,0x50,0x53,0x73,0xa6,0x4b,0xdd,0xd6,0x7d,0xd4,0x68,0x36,0x9a,0xb9,0x18,0xf2,0x3e,0xa2,0x8e,0x04,0xc1,0x91,0x77,0xa8,0xd4,0x61,0x14,0x4f,0x0a,0x8b,0x51,0xd2,0x15,0x17,0x6c,0xb0,0x8b,0xd6,0x53,0x01,0xc3,0xc4,0x62,0x37,0xb6,0x1b,0xb1,0x49,0x8c,0xa7,0x9d,0x4b,0xe7,0x0e,},\"\\x43\\x3b\\x24\\x78\\xe1\\x8f\\xad\\x5c\\xb8\\x10\\x67\\x06\\x1d\\x22\\x55\\x28\\x22\\x97\\x78\\x30\\x78\\x85\\x47\\x54\\x60\\xfb\\xe3\\x13\\x7a\\x5b\\x44\\x02\\x48\\x94\\xdd\\xbe\\x56\\xfa\\x6e\\xd0\\x21\\x49\\x6f\\x07\\x86\\xe4\\x2b\\xc6\\xc2\\xd2\\x79\\x7e\\xa0\\xa6\\xbf\\x35\\x5e\\x88\\x11\\x5f\\xaa\\x55\\xcd\\x92\\xed\\x42\\x13\\x3d\\x9d\\xcd\\xa6\\xb9\\xeb\\xf6\\x3c\\xe4\\xa9\\x94\\xd1\\xa8\\x2d\\x2a\\x49\\x26\\x75\\x58\\xbe\\x54\\x18\\x2a\\x6f\\x85\\x11\\x2b\\xd1\\x2b\\x24\\x7a\\xda\\xcf\\x14\\x05\\xfc\\x7e\\xc7\\xa0\\x15\\xd4\\x3a\\xb4\\x0b\\x82\\xc6\\x77\\xf7\\xf8\\x5a\\x0e\\x48\\x19\\x7c\\x5b\\x96\\x57\\x61\\x99\\xf4\\xc3\\x34\\x3f\\xf7\\x65\\x4d\\x52\\x3a\\x30\\xc4\\x3a\\x05\\x4c\\x3e\\x46\\x44\\x51\\x27\\x80\\x34\\xb7\\xf1\\x96\\xc3\\x66\\x76\\x8c\\x62\\x8a\\xf9\\x4f\\xc0\\xcc\\xfc\\x9a\\x29\\x55\\xf9\\xd3\\x23\\x38\\xb9\\x44\\x78\\x0f\\x8e\\x32\\x70\\x85\\xb1\\x03\\x78\\x18\\x68\\xe4\\xfb\\x79\\xd5\\x61\\x22\\xd7\\xf3\\xf5\\xab\\x30\\x9e\\x5d\\x63\\x4a\\xdd\\x15\\xda\\x38\\x2c\\x0d\\x23\\x58\\xe6\\x47\\x18\\x2b\\xe4\\xde\\x6e\\x9a\\x9e\\x43\\xe6\\xa3\\xa3\\xb8\\x21\\x5b\\x20\\x4d\\x95\\x07\\x61\\x0d\\x46\\x16\\x21\\x00\\x0f\\xb1\\x89\\x37\\x07\\xaf\\x7d\\x25\\x95\\xbf\\xef\\x8a\\x8c\\x5c\\x5c\\xd0\\x8f\\x30\\x9a\\x5f\\xb5\\x5e\\x45\\x51\\x9a\\xea\\x9b\\x84\\x74\\x8c\\xa5\\xc6\\x72\\xbf\\xec\\xd3\\x0d\\x25\\x65\\x12\\x34\\xa3\\xcc\\x31\\x9b\\x43\\xdf\\xce\\xfc\\x1a\\x07\\xb5\\x5b\\x4a\\xca\\x71\\x4c\\x2e\\x7e\\xf9\\x63\\x8f\\xe7\\x88\\x4a\\x77\\xb2\\x22\\x53\\xa0\\x1a\\x22\\x29\\x50\\x0e\\x9c\\xe1\\x0f\\xda\\x73\\xa8\\x43\\xc1\\x9c\\xc0\\x96\\x26\\xd2\\x45\\x6c\\x22\\xa9\\xc9\\x01\\x88\\x1d\\x52\\x1f\\x4b\\x15\\xd2\\xf6\\x13\\xcb\\x46\\x9d\\x30\\x4d\\x57\\x92\\x23\\xbc\\x5f\\xf7\\x38\\x04\\xdf\\x63\\x71\\x51\\x7e\\xba\\xa5\\xb6\\x77\\xea\\x91\\x0f\\xf1\\xa0\\x2a\\x26\\xfa\\xfe\\x48\\xfe\\xf4\\x69\\xed\\x79\\x9b\\xed\\x6d\\x56\\xce\\x96\\x18\\x34\\xa2\\xed\\xc2\\xe2\\x3c\\x0d\\x94\\x26\\xec\\xcd\\xcc\\x93\\x4f\\x4c\\x22\\x0e\\x37\\x81\\x5f\\x7c\\x33\\x4b\\x73\\x83\\x60\\x7d\\x43\\x05\\x20\\x94\\x6a\\x88\\x1a\\x08\\x32\\x5b\\x41\\x64\\x97\\x9d\\x5e\\x82\\xcd\\x81\\x34\\xd7\\x8c\\xec\\x48\\x61\\xc0\\x19\\xf6\\xde\\x30\\x1c\\x1b\\x9a\\xec\\x52\\xbb\\x98\\x20\\x33\\xfb\\x79\\xb2\\xe9\\x73\\x1b\\xab\\x29\\x68\\xbc\\x3f\\x93\\xfa\\x56\\x04\\xb8\\x93\\xc6\\x02\\x8c\\x20\\x4c\\x36\\xbb\\x8c\\x6b\\x07\\x4b\\xe2\\x8c\\x96\\x4d\\x28\\x49\\xb5\\xbb\\x19\\xd7\\xe0\\xba\\x24\\xe2\\x2a\\x20\\x4d\\x4f\\xda\\x83\\xb1\\x01\\x31\\xd3\\x83\\xf1\\x0b\\x13\\x6b\\xd0\\xdb\\xa3\\x9e\\xc2\\x6a\\xf3\\x0e\\x3f\\xfb\\x4d\\xbc\\x0c\\x92\\x1f\\x0c\\xc9\\x91\\x07\\x15\\xd5\\x1c\\x81\\xfe\\x4c\\x62\\x95\\x0e\\x85\\x55\\x49\\xa1\\x7c\\xd7\\x3a\\x09\\xac\\x91\\xe0\\x6d\\x46\\x15\\x18\\x37\\x6d\\x0f\\xcf\\xa1\\x23\\xdf\\x0a\\x83\\x71\\x03\\x45\\x8d\\x9c\\xe2\\x21\\x80\\x8d\\x1f\\x9e\\xf2\\xed\\xc5\\xcd\\x2e\\x68\\x23\\x14\\x5b\\x52\\x48\\x94\\xea\\x48\\x52\\x6d\\x98\\x5e\\xef\\xd3\\xf6\\x06\\x79\\x39\\x95\\x48\\xe1\\xed\\xea\\xdb\\x53\\x95\\xb4\\x3d\\x87\\x04\\x4b\\x2b\\xfe\\x7c\\x60\\x37\\x02\\x9b\\x34\\x6a\\x40\\x22\\x27\\xea\\xb8\\x1f\\x33\\x3e\\x10\\xe7\\x7f\\x1d\\xbc\\x06\\xa2\\x11\\xd4\\x3b\\x82\\x55\\x86\\x76\\xc2\\xdc\\xff\\x90\\x82\\xb1\\xdd\\x53\\x36\\x8d\\xf0\\x02\\xde\\x13\\x29\\xaf\\x30\\x00\\xb1\\x71\\xa6\\x91\\x43\\x89\\xbb\\x80\\xec\\x0c\\x9f\\x3e\\x41\\x2a\\x44\\x1b\\x80\\x0a\\xfc\\xeb\\x04\\x86\\x70\\x9a\\xda\\xc6\\x6c\\xaf\\xee\\xf2\\x48\\x83\\x93\\x31\\xf5\\xd8\\x92\\x19\\x7e\\x25\\x42\\x0f\\x1e\\x37\\xd7\\xc0\\x24\\x7f\\x66\\x9f\\x5f\\xcb\\xf0\"},\n{{0x60,0x20,0xae,0x27,0x3e,0x0e,0x05,0x37,0xba,0xc8,0x81,0xd7,0x54,0x9d,0x92,0x3e,0xb1,0xcc,0x20,0x0d,0x49,0xca,0x65,0xd4,0xbe,0x63,0x5e,0x39,0x17,0x3d,0xf9,0xda,},{0xda,0xaf,0x0e,0x69,0x9a,0x12,0xa9,0x2c,0x16,0xe0,0xde,0xd3,0xeb,0x34,0x50,0xa3,0x63,0x11,0x82,0x45,0x77,0xe3,0x61,0xf0,0x56,0x96,0x60,0x33,0x00,0x16,0x62,0x97,},{0xb1,0xba,0x88,0xfe,0xd7,0xe5,0xf4,0xb7,0x57,0xf3,0xfa,0x4d,0x1e,0xd9,0xb1,0x9e,0x49,0x8e,0x5d,0x2f,0x5e,0x6c,0xd4,0x6e,0x42,0x6f,0xe8,0xf0,0x39,0x88,0x2f,0x1b,0xe7,0x7a,0xc9,0xe5,0xa9,0x26,0x5c,0xbf,0x7e,0x3c,0xd2,0xa9,0xe9,0x92,0x6c,0x18,0x19,0x91,0x43,0x79,0x8d,0xa5,0xbe,0x47,0xa4,0x08,0x64,0x40,0x49,0x6b,0xa0,0x0f,},\"\\x6a\\x80\\x11\\xde\\x09\\xaa\\xc0\\x0d\\xb1\\x6f\\xf7\\xe5\\x5c\\x2d\\xe6\\x7d\\x8c\\x98\\x83\\xfc\\xb2\\x04\\x0d\\xed\\xbc\\x1e\\x32\\x1c\\xab\\xa7\\xbb\\x03\\x69\\x71\\x53\\x01\\x76\\xd1\\xdb\\xba\\xa9\\x27\\x52\\x0b\\xdf\\xcc\\xbe\\xd8\\x84\\x01\\x26\\x04\\x3e\\xdc\\x44\\xcb\\xb7\\xfa\\x35\\x28\\x68\\x0e\\x5f\\x1b\\x56\\x64\\x95\\x1d\\xc9\\x01\\x09\\xae\\xa4\\xb9\\xc3\\x36\\xca\\x04\\x3d\\x82\\x21\\xa4\\xc8\\xd2\\x01\\x16\\x56\\xbf\\x94\\x4e\\xfd\\x36\\xba\\x0a\\x10\\xa4\\xb3\\x89\\x19\\x60\\x55\\x75\\x0b\\x0e\\x38\\x8f\\xb5\\x28\\x70\\xbb\\xec\\x8c\\x55\\x19\\x81\\x31\\x44\\x39\\x45\\xc0\\x9f\\x3a\\xac\\xe3\\xe6\\x91\\x50\\x14\\x37\\x40\\x73\\x26\\x6f\\x34\\x88\\x74\\x42\\xd7\\x4f\\x46\\x8f\\x8d\\x70\\x78\\xbb\\xa0\\xbd\\x81\\x4c\\xd6\\xdd\\x42\\x3c\\x97\\xb5\\x69\\x05\\x58\\x7b\\x15\\x2d\\x1f\\xcf\\xba\\x0e\\xb9\\xfd\\xe2\\x11\\x26\\x91\\xda\\xfa\\xf4\\xf9\\x21\\x56\\x2f\\x24\\x1b\\x62\\x84\\x10\\x01\\x83\\x4f\\x6c\\xe3\\x66\\x85\\xf8\\x2a\\x8f\\xaa\\x3b\\x7a\\xfa\\xd7\\x3a\\x5e\\x59\\xbf\\x5f\\x9e\\x71\\x3e\\x59\\x16\\x3f\\x31\\xdb\\xe6\\x96\\x11\\x8a\\xf3\\x35\\x06\\xd2\\xff\\xea\\x3d\\x9c\\x15\\x56\\xfb\\x15\\x2f\\xd2\\xb3\\x21\\xc3\\x17\\x57\\xd0\\xc3\\xc0\\xf6\\x0e\\xe1\\x13\\xed\\xac\\x02\\xd6\\x7e\\xfb\\xb3\\x03\\xdc\\xe6\\xfa\\x88\\xf7\\xb9\\x74\\x6c\\xa1\\x10\\xe6\\xa0\\xcd\\x09\\x9c\\x08\\x31\\xf5\\x3c\\x55\\xc2\\x8b\\x6c\\x82\\xaf\\x44\\x64\\x56\\xb8\\x42\\xb2\\xc9\\x50\\xa5\\x53\\xee\\x2c\\x76\\x5e\\x97\\x29\\xe6\\xb0\\xc5\\x46\\xbf\\xc2\\x6b\\xd6\\xd4\\x2d\\x06\\xb2\\xed\\x5d\\x4c\\x8c\\xbb\\xc7\\x5f\\x2a\\x3a\\xd8\\x12\\x93\\x95\\x79\\x3d\\x97\\x9c\\x03\\x1f\\xce\\x7e\\x20\\xb3\\x8b\\xd8\\x9c\\x9b\\x62\\x47\\x48\\xb2\\x01\\x34\\x23\\xce\\xba\\xda\\x02\\xcd\\xe2\\x05\\x2d\\xa5\\x66\\x4c\\x6c\\x64\\x26\\xcb\\xfc\\x88\\xf8\\x4f\\xf6\\x02\\xe2\\xe2\\x0d\\xf9\\x67\\x8f\\xbb\\xa5\\x77\\xa4\\xc1\\x34\\x51\\x7e\\xe0\\x50\\x68\\x11\\x51\\x58\\x0f\\x7c\\x5c\\x97\\x87\\xb9\\x6e\\x55\\xc4\\x07\\x5a\\x26\\xf4\\xf8\\xcc\\xff\\xbb\\xb6\\xea\\x18\\xde\\x1b\\x2c\\xc8\\xc4\\x49\\x6b\\x16\\x04\\x27\\x70\\xb7\\xec\\x6e\\xb5\\x42\\x9e\\x7a\\xc1\\x89\\x12\\x32\\xaa\\x4e\\x47\\x46\\x7f\\x4e\\x9a\\x98\\x5d\\x80\\x54\\x7e\\xcc\\x4c\\x6f\\xd9\\xf5\\x97\\x63\\xed\\xe9\\x16\\x71\\xf2\\xaa\\x57\\x36\\xa5\\xd1\\x48\\xe3\\xa8\\xff\\xc8\\x8e\\x61\\x25\\x3a\\x85\\xb0\\x95\\x36\\x54\\x95\\x8e\\xb2\\xd6\\x94\\x01\\xcb\\xea\\xe7\\x75\\xf8\\xcb\\x8c\\x3c\\xa4\\x2d\\x21\\x69\\x3e\\xbe\\x29\\x88\\x38\\xdf\\x94\\xc1\\xd7\\x7b\\x12\\x6a\\x12\\x05\\xcc\\x47\\xd5\\x0d\\x53\\x67\\xb6\\xf2\\x76\\xec\\x8d\\xb6\\xb9\\x53\\x24\\xa3\\x1e\\x8f\\xd2\\xed\\x2e\\x43\\x42\\x0c\\x4a\\xd0\\x2e\\xa2\\x77\\xdd\\x94\\x8a\\x55\\x19\\x3d\\x0f\\x0b\\x4d\\x1c\\xf2\\x83\\x86\\xc7\\x25\\x97\\x5c\\xe5\\xc1\\x2d\\x2a\\x6f\\x35\\x67\\x3c\\xc2\\x2a\\x06\\x94\\xcc\\xa4\\xda\\xf6\\xaf\\xbf\\xd3\\x26\\xd8\\x8c\\x18\\x50\\xf8\\x34\\xc4\\x2f\\xf0\\xe2\\x92\\xba\\x4f\\x13\\xe5\\xef\\x07\\x74\\xa5\\x96\\xd3\\x39\\x04\\xc0\\x26\\x2d\\x31\\xdf\\x2c\\x58\\x4a\\x0a\\x4f\\x45\\x3f\\x6a\\xe4\\xa8\\x8a\\x27\\x5f\\x7d\\xe7\\x9c\\x13\\xae\\x1a\\x73\\x11\\x5b\\xe0\\x2f\\x42\\x5c\\x6f\\x17\\x7a\\x1e\\xc4\\x63\\x9c\\x42\\xa7\\x92\\x80\\x9a\\x2b\\x09\\x19\\xeb\\xd3\\x21\\xe3\\x16\\x00\\x1d\\x5b\\x2f\\x84\\x89\\x4f\\xce\\xbd\\x50\\xa1\\xdc\\xf4\\x4d\\x70\\x2b\\x92\\x45\\x32\\xfc\\x0e\\x4d\\x3f\\x9f\\xf8\\x48\\x6c\\x0e\\xd1\\x80\\xee\\xcc\\x3e\\x09\\xe2\\x27\\x2a\\x94\\xdc\\x7d\\x24\\xa4\\xe8\\x7a\\x93\\x1f\\xe2\\x49\\x5c\\xbf\\x99\\x2c\\x0a\\xae\\x92\\x01\\xe0\\x79\\x62\\x98\\xf9\\x36\\x3d\\xba\\xc4\\x75\\xe8\\xed\"},\n{{0x93,0x2a,0x20,0x0e,0xce,0xe7,0x22,0x3f,0x24,0x14,0x62,0x83,0xa4,0x04,0x8c,0x67,0xa6,0xa2,0xd2,0xfc,0x4b,0xa0,0xf9,0x24,0x8b,0xdf,0xfd,0x82,0xc6,0xcc,0xe3,0xcb,},{0xec,0x9b,0xfb,0x7a,0x6d,0x04,0xe7,0x26,0xfc,0x1e,0xa0,0xc4,0x24,0x61,0x0d,0xcb,0x79,0x67,0xbf,0x15,0xd6,0xd6,0x62,0x68,0x58,0xd4,0x11,0x19,0x8d,0x40,0xe2,0x39,},{0xcd,0x1e,0x4b,0xdf,0x4a,0x3e,0x4a,0x31,0xd6,0x52,0x54,0x33,0x3c,0x8c,0xc4,0x08,0x7e,0x4c,0xc4,0x0b,0x02,0xe2,0xa3,0x47,0xd0,0x9a,0x3d,0xde,0x69,0x84,0x90,0xc0,0x87,0xd7,0x10,0x9a,0xd0,0x20,0x9c,0x53,0xe9,0x87,0x58,0x9c,0xbf,0x3c,0xe2,0x64,0x12,0xa2,0xb0,0x2c,0xb8,0xa3,0xbc,0x93,0xfe,0xc7,0x5a,0xb5,0xd2,0xc3,0x87,0x03,},\"\\xdf\\x95\\x32\\x07\\x04\\x82\\x13\\xaf\\xb8\\xe2\\xaf\\x45\\x2c\\x88\\x9a\\x21\\xca\\x13\\x6a\\x68\\xc9\\x29\\xbd\\xc8\\x24\\xf9\\xa8\\x9a\\xc5\\x96\\xdc\\xb9\\x00\\x19\\xa4\\x6f\\xb6\\x82\\xbc\\xfd\\x96\\x2f\\xcc\\xb2\\x7d\\x00\\xba\\xf8\\xec\\xca\\xf9\\xd9\\xa7\\xd8\\x18\\x3c\\xab\\xd7\\xdf\\xa5\\x06\\xf7\\xba\\xfb\\x49\\x35\\xab\\x04\\x59\\x31\\xff\\x8f\\xae\\xb7\\x16\\x31\\xf9\\xed\\x6b\\xb8\\xf8\\x47\\x3a\\xd6\\x29\\x0d\\x7c\\xf5\\x19\\xdb\\x31\\x0a\\x44\\x42\\xc4\\x61\\x11\\x8f\\x67\\xd1\\xa6\\xd1\\x03\\xba\\xe6\\xf2\\x69\\x7c\\x94\\xb7\\x42\\x6d\\x9e\\x02\\xe3\\xcb\\x95\\x22\\xfd\\x0b\\x44\\xae\\xf6\\x00\\xc9\\x62\\xfe\\xff\\x58\\x73\\xd9\\x8c\\x27\\x90\\x88\\x7b\\x8e\\x88\\xd1\\x60\\x82\\x4f\\x1b\\xba\\x22\\x01\\x76\\x39\\xf8\\xdc\\xe6\\x8f\\x74\\x34\\x80\\xde\\xea\\x1f\\x92\\xaa\\x1f\\xd4\\x13\\x5d\\xd0\\x64\\x57\\xa6\\x0f\\x36\\xb7\\xd7\\xf5\\x17\\xd4\\x0c\\x94\\xc0\\xdd\\xdc\\x2e\\x46\\x58\\x47\\xd9\\x09\\xb9\\xf6\\x82\\x45\\xff\\x2b\\x42\\x1d\\x59\\x19\\x00\\x1a\\xae\\x5a\\xef\\x24\\xe0\\x2c\\x00\\x2d\\xa9\\x07\\xe8\\x60\\x5f\\x16\\x0e\\xa6\\x09\\x6b\\x58\\x0b\\x75\\xce\\xa0\\x22\\xd4\\x02\\xf7\\xf5\\xfd\\xc4\\x64\\xf8\\x7f\\x78\\xc7\\x90\\x6a\\x01\\xe8\\xe4\\x8f\\xb5\\xb3\\x51\\x74\\x61\\x2b\\x48\\xac\\x8b\\xc7\\x50\\xe0\\xf3\\xae\\xb0\\xa1\\x2f\\x7d\\xfc\\x09\\xb0\\x84\\x2c\\x17\\x80\\xa5\\xfd\\x9c\\x54\\xaf\\xb9\\x39\\x9b\\x94\\x08\\xba\\xac\\xcd\\xa2\\x0a\\xfb\\xe3\\xd6\\x82\\x24\\x8d\\x7b\\xf1\\xef\\xde\\xf4\\x90\\x5a\\x31\\x9b\\x0f\\xfb\\x10\\x8b\\x75\\x3b\\x71\\xcc\\x97\\xe9\\xe2\\x1e\\xc9\\xb3\\xdd\\x28\\xce\\xe0\\x39\\xd9\\x41\\x8a\\x11\\x35\\xf0\\xad\\xd0\\x92\\xaa\\x66\\x31\\x2e\\xa2\\x91\\x33\\x00\\xd1\\xcc\\x89\\x16\\x52\\x43\\x02\\xbd\\x3d\\x1b\\x09\\xe6\\xb2\\x9c\\x68\\x57\\xcb\\xdc\\x56\\xef\\x4b\\x3f\\x35\\xd8\\xee\\x67\\x72\\x08\\xef\\xfa\\x84\\x6f\\xdb\\x06\\x6b\\x05\\xeb\\x71\\x7b\\x4d\\x45\\x12\\x0c\\xab\\x72\\xa7\\xdb\\x7a\\x7c\\xa8\\x46\\xe8\\x7b\\x16\\xb6\\x90\\x47\\xeb\\x76\\xd8\\xf1\\x8d\\xa8\\xe1\\x39\\x9e\\xc0\\xa8\\xc9\\xc3\\x28\\xcb\\xe6\\x0e\\x0b\\xf4\\x20\\x44\\xd2\\xeb\\xf2\\x81\\x8b\\x3c\\x04\\x75\\x88\\x45\\x2f\\xcd\\x2b\\x3e\\xfc\\x1e\\x10\\x09\\xae\\x07\\x68\\x87\\x27\\xdb\\x8f\\xb6\\xdf\\x2a\\x2f\\xe7\\x5d\\x1c\\xf2\\x2f\\x32\\xba\\xc0\\x9c\\x82\\xa6\\xa3\\xd7\\xee\\xd7\\xd0\\x05\\x08\\xcb\\xe5\\xb7\\x24\\x60\\xec\\xfc\\xdd\\x3e\\xe9\\x11\\xef\\xe5\\x89\\x8d\\xbd\\x8e\\x4c\\xe8\\x59\\x13\\x26\\xdd\\x15\\x22\\xf9\\xd2\\x55\\xda\\x86\\x1b\\xf9\\xeb\\x2a\\x1d\\x57\\x25\\xd7\\xd5\\xd4\\x27\\x34\\x03\\x41\\x94\\x5e\\x7b\\xca\\x8c\\xf2\\xff\\x8a\\x99\\x74\\x50\\x95\\x3e\\x77\\xd2\\x03\\x68\\x3e\\x4b\\x0d\\xaf\\xc3\\x30\\xe0\\x56\\x72\\xd2\\xec\\xd1\\x3a\\x3f\\x44\\x2d\\xf1\\x37\\x04\\x4e\\x0f\\x55\\x6f\\xfb\\xce\\xff\\xea\\x26\\xcb\\xae\\x26\\xcb\\xa6\\xf2\\x56\\x8c\\xf3\\x9f\\x90\\x84\\x89\\xe1\\xa9\\x2e\\x76\\xaf\\xbf\\x29\\x79\\x95\\xda\\x4b\\x2c\\xb1\\xab\\xc9\\xee\\x1f\\xe4\\xdc\\xa5\\xaa\\x83\\x8b\\x2f\\xbd\\xc1\\x09\\xe8\\x9b\\xef\\x3c\\xe5\\xa3\\x6e\\x5b\\x2f\\x71\\x2a\\xc4\\xc8\\x89\\x43\\x82\\x48\\xfa\\x5a\\x21\\x50\\xca\\xc6\\xc9\\x77\\xb5\\xe0\\x54\\x3f\\x40\\x10\\xb7\\x31\\x47\\x32\\xfd\\x18\\xe7\\xfd\\x59\\x82\\xe8\\x32\\x76\\x51\\x9e\\x78\\x72\\x5e\\x5a\\x5e\\xeb\\x86\\xf4\\x89\\x20\\x84\\xae\\x52\\xda\\x38\\x49\\xc2\\x28\\xc8\\x09\\xed\\xbf\\x69\\xa2\\xcc\\x47\\xc4\\x78\\xd1\\x87\\x19\\xf1\\x11\\xd7\\x37\\x88\\x7c\\x7a\\x2e\\xb3\\x25\\x08\\x98\\xdb\\x34\\xe5\\xe5\\x07\\x6f\\xab\\x9f\\x4a\\x9e\\x6e\\x19\\x29\\xa3\\x48\\x08\\x36\\xde\\xa0\\x7b\\xa4\\xd6\\x3f\\xce\\xfc\\xe5\\x54\\x34\\x30\\xa8\"},\n{{0x5c,0x48,0x3e,0x83,0x7e,0xb0,0x1e,0xd5,0xa4,0xad,0x5d,0xb3,0x79,0x26,0x99,0x82,0x4d,0xf1,0x3e,0x57,0x6b,0xe9,0x67,0xd1,0x21,0x15,0xc8,0x5e,0x02,0x86,0xe6,0x28,},{0xfe,0x1a,0xa8,0xb0,0x69,0xda,0x56,0xe6,0x76,0xef,0x3a,0x57,0xd9,0xbb,0xa8,0x83,0x05,0xea,0x03,0x28,0x08,0xee,0x63,0x52,0x73,0xb3,0x7c,0x5c,0x63,0x5d,0xef,0x4e,},{0xc1,0x7c,0x2f,0xbf,0x8c,0x00,0xbc,0xea,0x30,0x35,0xbf,0x0a,0x62,0xd3,0x02,0x29,0xdb,0x74,0x2c,0xab,0x11,0x99,0x67,0x7c,0x7e,0xb4,0xeb,0x0e,0xf5,0xc7,0xb5,0x1a,0xd4,0x87,0xa4,0x97,0x1b,0x63,0x1e,0x79,0x4a,0x58,0xbb,0x08,0x23,0xcc,0x0f,0xe6,0x26,0x10,0xfd,0xa6,0xa9,0xe0,0x3f,0x8c,0x4c,0x33,0x81,0xcb,0x15,0x4c,0xef,0x0b,},\"\\x58\\xd5\\xe2\\xcd\\x89\\x9b\\xa9\\x85\\x37\\x8b\\x3e\\xc3\\x3e\\x9a\\x86\\x98\\x22\\xb2\\x3d\\x5d\\x89\\x6a\\x28\\xf4\\x24\\xfc\\xd6\\xe4\\xcc\\x28\\xb8\\x0d\\x4a\\xaf\\x2d\\xe8\\x04\\x36\\x7e\\xfd\\xf5\\xe4\\x23\\xb1\\x23\\x4d\\x82\\x1d\\x63\\xac\\x05\\xea\\xed\\x12\\xc7\\x3e\\x8e\\x36\\x08\\xaf\\x0d\\xdc\\xcc\\x83\\x86\\xb7\\xd8\\x42\\xb1\\x2e\\x60\\xd3\\x0c\\xed\\xe3\\x25\\x53\\x94\\x5e\\x78\\x29\\xe9\\xb2\\x3f\\x5c\\xcc\\x2e\\x71\\x03\\xa0\\x8f\\x2c\\xdd\\x9e\\x75\\xa7\\xb3\\x6f\\x5e\\x63\\x72\\x0e\\xf0\\xd4\\x9b\\x25\\x92\\xbe\\xf3\\x74\\x02\\x68\\xc8\\x9c\\x86\\xa6\\xcb\\xdf\\xe2\\x01\\xde\\x0d\\xb9\\x98\\x5c\\xeb\\x19\\x39\\x9c\\x9a\\x1d\\x5b\\xb0\\x58\\x6a\\xf3\\xc8\\xcd\\xf2\\x71\\x32\\x99\\xeb\\x04\\x43\\xa5\\x41\\xa4\\x73\\x84\\x60\\x72\\x43\\xc5\\x4a\\x05\\x91\\x50\\x58\\x36\\x7d\\x3f\\x2d\\xb3\\x80\\xed\\x31\\x7a\\x8c\\x12\\xc7\\xa6\\x3e\\x80\\x9c\\x2e\\x84\\xd4\\xac\\xb9\\xd9\\xee\\xf5\\x4c\\x6f\\x5a\\xf7\\xab\\x59\\xcb\\x91\\x68\\xb1\\x06\\x8f\\x9d\\x2c\\xcd\\x97\\x8f\\xe7\\x21\\xba\\xd6\\x8a\\x66\\x9f\\xfe\\xde\\xa3\\xe9\\x2c\\x76\\xb3\\x2e\\x31\\x66\\x65\\x8e\\xe3\\xbd\\x0d\\xeb\\x1b\\x08\\x41\\x94\\xce\\x35\\xd9\\xa7\\x41\\xc5\\x7f\\xc2\\x24\\x1e\\x68\\xef\\xaa\\x65\\x32\\x0b\\x23\\xa1\\xdd\\x19\\xea\\x8b\\x7e\\xc8\\x1e\\x76\\xf1\\xe9\\x16\\x3f\\x95\\x92\\xee\\xee\\x5a\\xf8\\xec\\xed\\x02\\x72\\xf3\\x35\\x12\\xd0\\xd4\\xca\\x06\\x7f\\x05\\x55\\x1b\\x26\\x53\\x96\\xe1\\x00\\x14\\x78\\x3c\\xac\\xac\\x79\\x43\\x7b\\x19\\x84\\x2d\\xe6\\xab\\x91\\xb9\\xd9\\x23\\xbb\\xeb\\x50\\x33\\x25\\xbc\\x54\\x86\\x9f\\x66\\x3e\\x6e\\xa4\\xae\\x68\\x97\\x70\\x1b\\xe7\\xe1\\x1d\\x16\\xcd\\xfa\\xe0\\xee\\xe8\\x61\\x86\\x20\\x00\\xe7\\xa4\\x16\\x07\\x81\\x54\\x7e\\x42\\x52\\x6a\\xf5\\x1b\\xa9\\x69\\x8d\\x23\\x4a\\xaf\\x51\\x0d\\xa8\\x1a\\x0d\\xbf\\x26\\x43\\x66\\x15\\x3d\\x7a\\x6d\\x5e\\xb3\\xfb\\x08\\xb9\\xbb\\x5e\\xa0\\x65\\xc2\\xf5\\xe5\\xb6\\xbb\\x67\\x9d\\x2e\\x21\\x0b\\x5b\\x40\\xe2\\xbc\\x82\\xf7\\x8d\\xc9\\xab\\x58\\x24\\xb7\\x4a\\xad\\xad\\xd8\\x9b\\xf8\\xa8\\xb7\\x3a\\x0a\\x2f\\x43\\xac\\x74\\x83\\x78\\x92\\x1a\\x73\\xa2\\x52\\x70\\x4a\\x4a\\xdb\\xf7\\x40\\xcb\\x99\\xc1\\xe1\\x59\\x4c\\x37\\xac\\x9a\\xcc\\x19\\xf5\\x23\\x15\\xc6\\xa8\\x46\\xa5\\x7b\\x36\\x12\\x8c\\x64\\xd7\\x67\\xaf\\x44\\xe9\\xc8\\x63\\x05\\xbf\\x18\\xba\\x7c\\xd5\\x26\\x80\\x52\\x3a\\x3b\\x10\\x2f\\xba\\x6f\\xe5\\x55\\x67\\x06\\x9d\\x20\\x47\\xcb\\xdd\\x96\\x05\\xea\\x12\\xc8\\x87\\x7d\\x39\\x9c\\x1e\\x66\\xe3\\x38\\x17\\x73\\x1f\\x50\\xb8\\x4f\\x81\\x7d\\x1f\\x07\\x60\\xa4\\x0f\\x97\\x46\\x86\\x18\\x93\\x41\\x05\\xeb\\x00\\xec\\x50\\xc7\\x6d\\xb3\\xc5\\x3f\\xcf\\x43\\xfe\\x17\\x02\\x90\\x7d\\x9a\\x75\\x6b\\xcf\\x43\\x9f\\x88\\x31\\xd0\\xbf\\xac\\x92\\xe7\\x05\\x8f\\xb1\\x57\\xbe\\x3e\\x59\\x1d\\x37\\xeb\\x34\\x16\\x5e\\x3c\\x6f\\xc6\\x0e\\x72\\x29\\x4c\\x08\\x3e\\x47\\x76\\x26\\xf9\\x00\\x1c\\x1d\\x73\\x7c\\x29\\x03\\x77\\xdf\\xa5\\x8e\\xa4\\xea\\xd3\\x02\\x8f\\xc7\\x62\\xce\\x8a\\x3a\\xfe\\xc2\\xe6\\xe1\\x32\\xc6\\x62\\xdf\\x60\\x34\\xab\\x55\\x4f\\x93\\xef\\xac\\x65\\x7a\\xd3\\x4f\\x61\\x07\\xd3\\x47\\xfc\\x5c\\x5e\\x53\\xf3\\x73\\x3e\\x17\\x8b\\x76\\x01\\x4d\\x2f\\x9b\\xbd\\x06\\xef\\x2d\\xfe\\x60\\xe2\\x08\\x3d\\x88\\x65\\xf7\\xf5\\xb2\\xac\\xc0\\x25\\xd9\\x12\\xe5\\xcf\\x6c\\xda\\x6e\\x79\\x81\\x43\\xe9\\xdb\\xbc\\x70\\xa0\\x21\\x1d\\x8e\\x40\\x03\\xd7\\x8b\\x38\\x3d\\x66\\xa6\\xad\\x29\\x71\\x7c\\xa2\\x4e\\xdd\\xef\\x7d\\xf7\\xcd\\x3a\\x7e\\xf6\\x52\\xab\\xa5\\x48\\x7a\\xfe\\x5d\\x02\\x6c\\x9b\\x10\\x28\\x07\\x29\\x4e\\xb2\\x7d\\x98\\x24\\xee\\xb6\\xb4\\x0f\\x08\\x3d\\xe7\"},\n{{0xb0,0xd0,0xab,0xdd,0x84,0x44,0xe1,0x0f,0x29,0x37,0x54,0xac,0x9f,0x16,0xe3,0x1b,0xdc,0xdd,0x97,0xb7,0x06,0x71,0x28,0xaa,0xe8,0xe4,0xd7,0xf1,0x12,0x89,0xe2,0xcd,},{0x1c,0x78,0xcc,0x01,0xbe,0xa1,0x53,0x52,0xb6,0x3c,0x56,0x97,0xf1,0xcf,0xe1,0x2f,0xfd,0xd1,0x6d,0xdc,0x1d,0x59,0xe7,0x79,0x51,0xb6,0xe9,0x40,0x8e,0xe2,0x28,0xad,},{0x64,0x40,0x8b,0xdd,0x2d,0x0f,0xc8,0x92,0xa5,0xb6,0x2b,0x5a,0xcf,0x8e,0x3b,0x3c,0x73,0xc0,0xb5,0xc4,0xfa,0x2a,0x72,0xe3,0x9d,0xd6,0x08,0xd4,0x93,0x7f,0x93,0x32,0xf7,0x3e,0x14,0xd0,0x8b,0xad,0xc6,0x27,0x01,0x14,0xd1,0xf1,0xa5,0x56,0xcc,0x6e,0xe8,0x48,0x8a,0xbb,0x90,0x7f,0x79,0xae,0x17,0x5c,0x35,0x2e,0x9f,0x11,0xee,0x05,},\"\\xaa\\x27\\x6c\\xc5\\x43\\xfc\\xc6\\x2d\\x70\\xa7\\x04\\x60\\x8d\\x98\\xce\\x51\\xb6\\x45\\xb5\\xc2\\x4a\\x64\\x0a\\x5d\\xf1\\x0a\\x55\\x91\\x41\\x7d\\x10\\x89\\x26\\xdf\\x3f\\x0c\\xe1\\xb9\\x21\\x03\\x33\\x09\\xeb\\x8d\\x86\\x59\\xf4\\x89\\xfd\\x6f\\x79\\xaa\\x1b\\xf4\\x88\\x2d\\x72\\xac\\x69\\xcc\\x58\\xd3\\xbc\\xe0\\xfa\\x89\\xb1\\x64\\x11\\xe9\\x75\\x3e\\xb4\\x0c\\x6c\\x4d\\x59\\x8d\\xc8\\xf4\\xab\\xb0\\xbc\\x48\\xf1\\x37\\x03\\x71\\x32\\x6c\\x9a\\x86\\xbb\\xc2\\xac\\x62\\x14\\x47\\x8e\\x78\\xa3\\x84\\x08\\xbd\\xda\\xfa\\xa9\\x59\\x26\\x00\\xc4\\x9a\\x12\\x9c\\x05\\x39\\x2f\\x8a\\x7d\\x64\\x2b\\x49\\x13\\x7a\\x20\\xf3\\xfe\\x9f\\x11\\xee\\x17\\xcf\\xa3\\xaf\\xd2\\xaf\\x71\\x56\\x5e\\x9c\\x40\\x08\\x0b\\x60\\xcd\\x0d\\xbc\\x37\\x8e\\xda\\x06\\x2c\\x7c\\xbc\\x7f\\xe9\\x72\\xbd\\xe4\\x50\\x9a\\x1d\\xe9\\x5f\\x14\\xdf\\x48\\x2f\\x48\\xaa\\xcc\\x46\\x3c\\xd5\\x94\\xf6\\x6d\\x64\\x8d\\x37\\x94\\x73\\x8a\\xd6\\xab\\x49\\x6e\\x2d\\xa5\\x0b\\x0d\\xb2\\xba\\x7b\\x65\\x91\\x85\\xe4\\x58\\x7f\\x18\\x2e\\x83\\x3d\\xe7\\x50\\xfa\\xac\\xdd\\xf2\\x1a\\xf5\\xe0\\xcf\\x4c\\x9a\\xf3\\x85\\xb0\\x4f\\x7b\\xe2\\x31\\x49\\x8a\\xd0\\xb7\\x42\\xd5\\xa8\\x7c\\x06\\x11\\x5d\\xb2\\x30\\x97\\x3a\\x51\\x42\\x7f\\x20\\x2f\\xa3\\x9a\\xfb\\x98\\x28\\xb5\\xf0\\x3f\\xa3\\x27\\xcb\\xd5\\x2d\\xfe\\xc6\\x6d\\x71\\xea\\x31\\x98\\x65\\xdc\\xf6\\x81\\x0f\\x18\\x58\\x47\\x2d\\x8b\\xea\\x3e\\x44\\x7a\\xdf\\xb4\\xb6\\x07\\x58\\xe8\\x6b\\x48\\x13\\x37\\x09\\x73\\x2d\\x2b\\xcf\\x51\\xc7\\x6c\\xaa\\x84\\x7b\\x65\\x37\\xfc\\xb0\\x5b\\xb8\\xc8\\x7d\\xc5\\xe9\\xfb\\x02\\x2b\\x32\\x60\\xc1\\xd7\\x1b\\x14\\x98\\x59\\xc9\\x66\\x3d\\xbd\\xae\\x6a\\x7b\\xbf\\xd6\\xde\\xb9\\xd1\\x23\\x80\\x9c\\x24\\x14\\x01\\xaf\\x10\\x71\\x9c\\xf9\\x1a\\x6b\\xed\\x16\\x08\\x4c\\x44\\x46\\x07\\x35\\x9e\\xd8\\xf0\\x18\\xdb\\x11\\x15\\x11\\x89\\x2b\\x46\\xbd\\xac\\x6c\\x9c\\x61\\x38\\x41\\xde\\xd8\\x86\\xb9\\xde\\xc0\\x6c\\x01\\xe8\\x04\\x87\\xe4\\x8f\\xbe\\x77\\x8e\\x9e\\x97\\x50\\x8f\\xfd\\xa0\\x57\\x78\\x53\\xaa\\xbd\\xca\\xca\\x8b\\x0b\\xab\\x6c\\xe4\\x15\\x57\\xaa\\xb9\\x63\\x1c\\x96\\xd6\\x09\\x77\\xe3\\x57\\x18\\xb6\\x05\\x95\\x27\\x3f\\xdb\\xa1\\x40\\xf5\\x50\\x0a\\x8d\\x35\\x76\\xf5\\xa9\\xfc\\x8f\\x3c\\xa4\\xc0\\x2c\\x16\\x7a\\xf2\\xe0\\x3d\\x25\\x75\\x0b\\x42\\xad\\xb0\\x3b\\x14\\x17\\xf2\\xb6\\xd2\\x19\\xbe\\x5f\\x84\\x29\\x33\\x1a\\x26\\xa4\\x49\\xb5\\xd4\\xdb\\x2b\\x1a\\x09\\x15\\x2e\\xea\\x2b\\x25\\xd2\\xdf\\x7e\\xf6\\xfe\\x0a\\x32\\xe2\\x5f\\xae\\x79\\x36\\x0a\\x9a\\xee\\x15\\x11\\xfd\\xa8\\x06\\x45\\x50\\x93\\x7a\\x71\\x30\\x97\\x19\\x30\\xc6\\x73\\xbb\\x35\\x8e\\x5f\\x55\\x95\\x1f\\x50\\xb1\\x46\\xd8\\x5d\\x38\\x3f\\x3e\\x01\\xc1\\x51\\xec\\xe6\\xc0\\x6d\\x83\\x67\\x01\\x25\\x32\\x80\\xfd\\xcf\\xf4\\xe1\\x39\\xd3\\x31\\x9a\\xb2\\xe2\\xca\\x71\\xbc\\xc3\\xfa\\x0f\\xaf\\x7c\\x70\\x2c\\x9c\\x60\\x4e\\x56\\x51\\xde\\x4a\\xf5\\x70\\x0e\\x9e\\xde\\x72\\x58\\xb9\\xbc\\x14\\x8d\\x55\\x95\\xcd\\x34\\x17\\x0e\\x3e\\x5c\\xf2\\x92\\x82\\x83\\x90\\x90\\x8f\\xda\\x96\\x1f\\x22\\x30\\xac\\x0b\\x8c\\xac\\x64\\x73\\x97\\x32\\x70\\x6c\\xe2\\xd5\\xe5\\x9a\\xbd\\x6d\\x5e\\x20\\x7b\\xda\\xfe\\xa7\\x4d\\x28\\xd7\\xa7\\x58\\xf2\\x20\\x0e\\x4e\\x00\\xa0\\xbc\\xf0\\x30\\x6a\\x3c\\xab\\xda\\x47\\x02\\x4f\\xab\\xea\\xe4\\x88\\xab\\x5c\\x32\\x37\\x15\\xcf\\x3c\\xa7\\x72\\x0a\\xf9\\xeb\\xbf\\x85\\x82\\xe1\\x15\\x8a\\x09\\x9d\\x73\\x6b\\x56\\x9b\\x9d\\x40\\x29\\x58\\x17\\xea\\x25\\x54\\x06\\x8b\\xef\\x32\\x44\\x2c\\x11\\x1e\\xc8\\x14\\xc6\\xed\\x41\\x59\\x19\\xba\\x73\\x52\\x63\\x34\\xdf\\x30\\xba\\xc6\\x66\\x08\\x4e\\x56\\x01\\xc2\\x28\\x1c\"},\n{{0x49,0x84,0x97,0xfd,0xcc,0x6a,0x10,0x58,0x91,0xe0,0x23,0xff,0x32,0xd7,0x5f,0x7c,0x37,0x48,0xd8,0xc5,0x2d,0x87,0xdd,0x3b,0x27,0x75,0xae,0xfd,0x81,0x60,0xa1,0x43,},{0x2d,0x79,0xae,0x9c,0xee,0x4a,0xc6,0x27,0x5b,0x05,0x74,0x9c,0x43,0x8e,0xbe,0x55,0x2b,0x41,0x3d,0x87,0x3c,0xc0,0x7f,0x14,0xf5,0xfa,0x13,0x01,0x77,0x21,0x4c,0x54,},{0xb0,0xa3,0x6a,0x2c,0x93,0x47,0x56,0x34,0x8e,0xb4,0x7c,0x25,0xa3,0x2c,0x3f,0x2a,0x5d,0xdb,0xd5,0x8f,0xcc,0x72,0xa0,0x8c,0x3c,0xea,0xd1,0xa2,0xd9,0x00,0x33,0x5c,0x30,0x01,0xe3,0x5b,0xfe,0x1f,0x3f,0xb5,0xa5,0x55,0x00,0x9b,0xa8,0xe9,0x68,0x74,0x49,0x4b,0x97,0xe8,0xb0,0x97,0x00,0xed,0xcb,0x1f,0x25,0x84,0xb9,0xd0,0xfe,0x03,},\"\\xbe\\x38\\xbc\\x8c\\xdf\\x46\\x19\\x0e\\x30\\x4a\\xb5\\x3d\\xd2\\x9c\\x2b\\xc4\\x09\\x54\\xfd\\x4c\\x6d\\x2b\\xb9\\x90\\xf9\\x3b\\x2b\\x5c\\x69\\x1f\\xdf\\x05\\x27\\xc2\\x60\\xf5\\x06\\x61\\x87\\xf2\\xd0\\xf3\\x1f\\x43\\xa0\\x8b\\x36\\x0e\\xa1\\xed\\x82\\x00\\x65\\x17\\x64\\xb8\\xfa\\x49\\x59\\x5a\\x15\\x94\\x10\\x9e\\x49\\x67\\x59\\xab\\x66\\x23\\xfa\\x33\\x37\\x8d\\x80\\x0e\\x61\\x17\\xe0\\x79\\xe1\\x3f\\xe8\\x5c\\x81\\xb6\\x3e\\xbe\\x24\\x7b\\x3d\\xf6\\xc1\\x58\\x4b\\xc7\\xcf\\xfb\\xdf\\xa4\\x5f\\x2a\\x2c\\xe7\\xc2\\x37\\xaa\\xaf\\xef\\x8c\\xbc\\xa7\\x0b\\xca\\xbc\\xe0\\xb8\\x47\\xd5\\x51\\xf4\\x6a\\x7d\\x15\\xce\\x2a\\x0d\\x3d\\x54\\x5a\\xba\\xcc\\x59\\x30\\x01\\x0c\\x53\\x64\\x88\\x87\\xd4\\x76\\xe0\\xd1\\x3a\\x34\\xfc\\x1c\\x54\\xdf\\x09\\xd1\\x06\\xed\\x75\\x8d\\xee\\xdc\\x76\\x1d\\x55\\x7a\\x73\\xb2\\xbc\\xdd\\xde\\xfb\\xa4\\xed\\x00\\x59\\x97\\xb1\\x92\\x79\\xb9\\xd2\\xde\\x37\\xd0\\x41\\xfe\\x01\\x3e\\xef\\x05\\xa2\\xe1\\x1c\\x9a\\x23\\x4e\\x87\\xcc\\x0e\\x16\\xc0\\xc6\\xda\\x42\\xaa\\xa5\\xbf\\x99\\x64\\x17\\xbf\\x64\\xe5\\xb7\\x85\\xd6\\x7d\\xc3\\x25\\x47\\xc1\\xf0\\x52\\x17\\x8d\\x69\\x4c\\xf2\\x0f\\x16\\x98\\x58\\x9e\\x7e\\xd4\\x9b\\xe2\\x9d\\xd5\\x9f\\xd5\\xc0\\x1b\\xa1\\xd9\\xf5\\xfb\\x06\\xa7\\x58\\x95\\xb7\\xb1\\xe1\\x58\\x95\\x09\\x7e\\xbd\\xe8\\x4c\\xad\\x63\\x03\\xaa\\x0a\\x86\\xdb\\xc3\\x24\\x74\\x7d\\x97\\x24\\x5d\\x70\\xc5\\x20\\x3b\\xe0\\x1b\\x06\\xcb\\xde\\x06\\xae\\x03\\x72\\x04\\xd2\\x37\\x30\\xcd\\x69\\x61\\x89\\xf7\\xac\\x26\\x7c\\xf2\\x02\\x17\\x99\\x29\\xce\\x54\\x10\\xe0\\xe3\\xad\\xe5\\x13\\xd2\\x20\\x1b\\xfd\\x20\\xfe\\xfa\\x40\\xb4\\x47\\x6f\\x27\\xbf\\x90\\x7c\\x76\\x2e\\xb7\\x26\\x2a\\x5b\\xe1\\x3c\\xfc\\x04\\x7a\\x84\\x6d\\x20\\xa9\\xf2\\x31\\x1b\\x64\\x69\\xb0\\x6a\\xb5\\x45\\xf0\\xec\\x9f\\xc4\\x46\\xea\\x25\\x0c\\xd3\\xb7\\x3a\\x7b\\x6b\\x96\\x0c\\x10\\xca\\x4c\\x2d\\x6c\\x64\\xa1\\x56\\xa1\\x8c\\x9f\\xb8\\x10\\xe4\\x9a\\xfd\\x0c\\x36\\xda\\xab\\x8b\\x8b\\x85\\x66\\x43\\xa4\\xcc\\xaf\\xa9\\xad\\x88\\x6e\\x91\\xe5\\x44\\x53\\x5b\\x8e\\xdd\\xa2\\x7c\\x90\\xc0\\x6a\\xb6\\xbc\\xc5\\x36\\x28\\xbe\\x18\\xd7\\xd6\\x36\\x9c\\xa1\\x80\\x1f\\x91\\xc2\\xe0\\xb9\\x5f\\x36\\xd7\\x02\\xf7\\x72\\x34\\xb4\\x10\\x07\\x19\\xc0\\x59\\x95\\x1e\\x45\\xb1\\xf9\\x16\\x98\\x39\\x34\\xe3\\x2b\\x4d\\x4d\\x8f\\x29\\xc0\\xa3\\x73\\xf8\\xd8\\xf0\\x91\\x8b\\x96\\x78\\x65\\xcd\\x0e\\x4b\\xec\\xa0\\x13\\x27\\xc9\\x9d\\x5f\\xde\\xd4\\xc1\\xa6\\x9a\\xc2\\xd4\\xd9\\xb7\\x8f\\xfb\\x83\\x05\\x67\\x00\\x21\\x04\\x02\\x50\\xcc\\x27\\x73\\x7e\\x75\\xdf\\x75\\x76\\x0f\\xec\\x8b\\x8d\\x30\\xb2\\x45\\x65\\x4f\\x3c\\x12\\xf1\\xf7\\xce\\xa0\\xbc\\xe7\\x8a\\xb3\\x69\\x35\\x78\\xaf\\x3e\\xa6\\x1f\\xfc\\xcd\\xf9\\xba\\xf7\\xc3\\xea\\x65\\xb8\\x8f\\xc8\\x54\\x12\\x81\\x26\\x47\\x67\\x96\\x89\\x2c\\x66\\x3b\\xd1\\x45\\x18\\xc9\\x91\\x86\\x29\\xa1\\x09\\x5f\\x61\\x4e\\x04\\x92\\x44\\x6c\\x3d\\x84\\xb1\\x6e\\xc9\\x4f\\x7e\\xca\\xda\\xeb\\x6b\\x65\\x9b\\xbb\\x48\\x67\\xb5\\x79\\x06\\x17\\x14\\xfd\\x5b\\xb0\\xfa\\xa4\\xad\\x6b\\xe0\\xff\\xb3\\x88\\x8b\\xea\\x44\\x7e\\x4e\\x34\\x38\\xc8\\xf0\\xea\\xe6\\x44\\xfb\\xd4\\x5a\\x38\\x02\\xdc\\x40\\xec\\x45\\x1b\\x21\\x2b\\xd5\\x92\\xda\\xcd\\x4d\\xa9\\x66\\x86\\xdc\\x8b\\x20\\x24\\x25\\x7f\\x25\\xe9\\xc8\\x30\\xbf\\xf7\\x95\\xee\\xe8\\x5d\\x87\\xa0\\x90\\xc1\\xa4\\x23\\x21\\xe7\\x10\\x55\\x57\\x64\\xed\\x82\\x57\\xc9\\x41\\x5c\\x7f\\x22\\x4b\\x53\\x75\\x58\\xce\\xfd\\xc6\\x15\\x12\\x9f\\x28\\x35\\x02\\x67\\xc0\\x1b\\xa0\\x40\\x3e\\x07\\xf5\\xc6\\x06\\x7f\\x91\\xc8\\x5a\\x2c\\x50\\xc8\\x66\\xdc\\x43\\x88\\xaf\\x38\\xd2\\x16\\x02\\x03\"},\n{{0xd9,0x62,0xa6,0x71,0x9e,0x5c,0xc7,0x72,0x4c,0xa4,0xa1,0xd5,0x59,0x53,0x68,0x12,0xb4,0xe2,0x2a,0xa7,0xbc,0xb1,0x3e,0x4f,0xb1,0x72,0x2d,0x28,0xe0,0x45,0x21,0x7c,},{0xa9,0x44,0x59,0x2d,0xbc,0x7d,0x77,0x03,0x9d,0x72,0x02,0x56,0xc3,0xfd,0x34,0x0d,0x34,0xdb,0x89,0x2a,0xb1,0x3e,0x48,0x12,0xd6,0x62,0xe2,0x84,0x0c,0x28,0xb6,0xd0,},{0xdf,0xb9,0xb6,0x35,0xac,0x0e,0xdf,0x83,0xb7,0xb5,0x9d,0x0b,0x84,0x09,0xaf,0x47,0x5f,0x66,0xfc,0x99,0x46,0xaf,0x0b,0x7c,0x63,0xab,0x8c,0xf5,0x92,0x9d,0x47,0x01,0xa1,0xbf,0x66,0x95,0x9c,0xde,0x62,0xfb,0xcf,0x59,0xa4,0x8a,0xb3,0xbb,0xaf,0x0b,0x9a,0x61,0xb6,0xe0,0x0b,0x21,0x81,0xeb,0x93,0x42,0x82,0x07,0x0a,0x5d,0x53,0x00,},\"\\xa6\\xaa\\x7a\\x19\\x0d\\x00\\x3a\\xb1\\x75\\x33\\x2b\\x8f\\x58\\xe7\\xca\\xeb\\x69\\x08\\x54\\xd9\\xdb\\x56\\xdb\\xb6\\x95\\x7b\\x3f\\xb6\\x54\\xe2\\xe0\\xda\\x99\\x1f\\x31\\x54\\x21\\x42\\x04\\x13\\x5d\\xf1\\xe1\\x10\\x43\\x17\\xc9\\xe3\\xc5\\x8e\\xed\\xff\\x1f\\xc6\\x1a\\xba\\x57\\x74\\x4c\\x0c\\x7e\\xf4\\x86\\x00\\x0a\\x70\\xb2\\xc1\\x42\\xeb\\xad\\xdc\\x07\\xab\\x06\\x5e\\x2a\\x85\\x5d\\xaf\\x19\\x8a\\x68\\x03\\xac\\x24\\xef\\x37\\x24\\x48\\x7c\\x13\\x51\\xdd\\xed\\xa0\\x51\\x39\\x13\\x45\\x7d\\x76\\x86\\x0d\\x78\\xa9\\xb6\\xbc\\x3d\\xba\\x66\\xc4\\x0e\\x5f\\xc3\\x49\\xa8\\x73\\xad\\x60\\x65\\xce\\x7d\\x7f\\xdc\\x2c\\xc4\\x83\\xb3\\xae\\xfb\\xf2\\xf0\\x3d\\xd6\\x69\\xbd\\x9c\\xb8\\xf6\\x3c\\xee\\x47\\x78\\x5c\\xac\\xb0\\x9d\\x87\\x2c\\x9a\\xeb\\x83\\xe9\\x86\\x84\\x05\\x25\\x43\\x24\\x03\\x79\\x82\\xe0\\x86\\x13\\x45\\x5d\\x95\\x21\\xd8\\x8e\\xa2\\xfd\\xa0\\x20\\xbe\\x73\\x0c\\xfc\\x8c\\x07\\xcb\\x0b\\x37\\x61\\x4c\\xcb\\xa2\\xfa\\x3e\\xc4\\x98\\xb8\\x15\\xbb\\x5a\\xdb\\x99\\x6e\\x84\\x8b\\x38\\xc0\\x15\\xa6\\xa5\\xc7\\x52\\xeb\\xda\\xc7\\xb9\\xee\\xd8\\xb6\\x96\\x19\\xd8\\xc8\\x46\\xb6\\x6f\\x78\\x16\\xd1\\xdf\\x1e\\xbc\\x21\\x07\\x1c\\xef\\x0b\\x25\\x1e\\x2e\\xab\\x59\\x82\\x7f\\x6d\\x60\\x55\\x08\\x43\\x70\\xfd\\x27\\xc2\\x03\\xe8\\x6a\\x18\\x9f\\x1e\\xe1\\x1e\\x84\\x03\\xab\\xdc\\xbd\\x1f\\x45\\x34\\x1a\\x82\\x05\\x25\\xd8\\x63\\x7d\\xc4\\x84\\xa5\\x18\\x5d\\x65\\x51\\xcb\\x88\\x2a\\x96\\xb9\\x98\\x1a\\x5f\\x1a\\x82\\x1f\\x27\\xb6\\x56\\xff\\xf9\\x0e\\x7f\\x69\\xbf\\x28\\x6f\\x75\\x2f\\x97\\x0f\\xfc\\xa5\\xc5\\x3e\\x08\\x50\\xb2\\x0b\\x94\\xf9\\x43\\x16\\x27\\x09\\x4a\\xce\\xa9\\x12\\xa8\\x80\\xb7\\x49\\xa6\\xf8\\x0b\\xb2\\x06\\xcc\\xaa\\x74\\x6f\\xa7\\x0c\\x83\\x3c\\x9f\\x32\\x30\\x89\\xce\\x05\\x58\\xc9\\xdc\\x20\\x0d\\x57\\x39\\xd1\\xe4\\x99\\x63\\x4f\\x2c\\x16\\xe5\\x4b\\x7f\\x6d\\x78\\x19\\xc4\\x70\\x71\\xb6\\x0b\\xd5\\x4d\\xd0\\xf2\\x73\\xa3\\x19\\x75\\x0f\\xd3\\xc5\\x10\\xa4\\x9a\\xb5\\x6f\\x63\\x0c\\x7c\\xe6\\xd8\\x02\\x3d\\x97\\x86\\x23\\x46\\x85\\x9b\\xc0\\xb4\\xd6\\x05\\x22\\x49\\x69\\x70\\x89\\x03\\x76\\x03\\x01\\x40\\x9c\\x60\\xab\\x25\\x17\\x56\\x11\\xf0\\xbe\\x98\\xb2\\x3a\\x8c\\xd8\\xac\\x53\\x5e\\x35\\x13\\xbc\\x77\\xe1\\x45\\x21\\x93\\xda\\xdf\\x44\\x35\\xe6\\x3c\\x36\\x29\\xb6\\x66\\xa5\\xea\\x4c\\x4b\\xad\\x36\\xea\\xca\\xd2\\x60\\x14\\x04\\xea\\xbd\\x8d\\x9a\\x07\\x95\\x6e\\xc2\\xb4\\xb7\\xbb\\x63\\x36\\xed\\x75\\xb8\\xdf\\x8f\\x16\\xde\\x42\\xc0\\xfc\\xae\\x93\\x65\\x2e\\x3c\\x40\\x7c\\xbd\\x45\\xe8\\xd4\\x13\\xef\\x51\\xe8\\x54\\x2d\\xf6\\x25\\x12\\xee\\x79\\x3e\\x41\\x35\\x8a\\x1d\\xe1\\x92\\x46\\xc6\\x58\\x6b\\x3c\\x14\\x07\\x41\\x04\\x21\\xf6\\xe8\\x65\\xc7\\x5a\\x9f\\x4a\\x6a\\x47\\x88\\xf8\\x4a\\x9c\\x78\\x1d\\x8f\\x80\\x24\\xbf\\xdb\\xe2\\x5b\\xdc\\x7d\\x4b\\x69\\xcb\\xaa\\x77\\x19\\x62\\x8c\\x0b\\x07\\xec\\x2c\\x4a\\x23\\x4f\\xff\\x4a\\xc3\\xd4\\x93\\x5b\\x9c\\xe4\\xc8\\xa1\\x69\\x47\\xab\\xe7\\x95\\x1f\\xf8\\xd9\\xac\\x92\\x15\\xe3\\x38\\xfa\\x0f\\xe9\\x12\\x41\\x76\\xd1\\x7b\\xac\\x1e\\x05\\x59\\x2c\\x43\\x98\\x68\\xae\\x5a\\x4f\\x75\\xfd\\x1e\\xa8\\x2a\\xa4\\x54\\xc2\\x0a\\x93\\x9d\\xed\\xa7\\x29\\xa0\\xe1\\x96\\x46\\xce\\xbd\\x82\\x20\\x49\\xc8\\x25\\xc7\\xe3\\x1c\\x6e\\xfa\\xd4\\x5e\\x30\\x6f\\x2d\\x9f\\x05\\x69\\xe0\\x71\\x73\\x31\\xf4\\x80\\x04\\xc2\\x6e\\xbf\\xe6\\x8f\\x38\\x43\\xe9\\x0f\\x80\\x67\\x03\\x2d\\x21\\xe7\\x86\\xc8\\x53\\x9e\\x01\\xbe\\x3c\\xea\\xc5\\x95\\x4a\\x05\\x46\\xc8\\x4b\\x73\\x4d\\x99\\x94\\x56\\xa7\\xc4\\x5f\\x8c\\xeb\\xaa\\x47\\x8e\\x54\\x80\\x07\\xf9\\xd3\\xaf\\x83\\x6f\\x75\\x4d\\xe4\\x12\\x3f\\x2f\"},\n{{0xe1,0xd1,0x41,0x65,0x18,0x92,0x1d,0x07,0xc8,0xc3,0x9e,0x29,0x73,0xd8,0xea,0x12,0x49,0xca,0xa8,0xbf,0x65,0x9c,0xc3,0x6c,0x79,0x37,0xf8,0x4e,0xce,0x7a,0xd4,0xfc,},{0x48,0xbd,0xcc,0x3f,0x1a,0x5b,0x80,0x58,0xed,0x9a,0x32,0xef,0x1c,0xc4,0x8c,0xf7,0xa8,0xab,0x76,0xa6,0xe4,0x51,0x9e,0x5a,0x82,0x85,0x52,0x41,0xad,0x6f,0xff,0x8a,},{0x42,0x32,0xd2,0xa4,0x81,0x08,0x4d,0x11,0x96,0xdb,0x62,0xf2,0x2d,0xc7,0x4c,0xf2,0xea,0xf2,0xdb,0x0d,0xf0,0x5a,0xd7,0xcd,0xde,0x67,0xbf,0xc2,0x9b,0xff,0x56,0xcd,0xe0,0x19,0xac,0x9f,0x03,0xd8,0x1f,0x18,0x27,0xeb,0x1e,0x3b,0x0a,0xbe,0x02,0x04,0xca,0x7f,0x77,0xfa,0x87,0x4a,0xb5,0x26,0x83,0x54,0xff,0x08,0xbb,0x7f,0x48,0x00,},\"\\x3d\\x26\\x3d\\xe1\\xab\\x91\\xe8\\xdd\\x7b\\x31\\x7f\\x7a\\x27\\xfb\\x60\\xa6\\xe1\\x83\\x8c\\x0c\\x79\\x3b\\x03\\xab\\xbe\\x70\\x82\\xb6\\xbd\\xa0\\xc7\\xc4\\x60\\x62\\x26\\x21\\x92\\xc8\\x8b\\x65\\xc0\\x26\\xc1\\x74\\x58\\x4d\\x29\\x64\\x97\\x10\\x42\\x9a\\xe4\\x4a\\x46\\x14\\x0b\\x4c\\x82\\xc8\\xa0\\xb7\\x4d\\x56\\xa0\\x04\\xf8\\xe2\\xf5\\xc1\\x8f\\x84\\xf0\\x46\\x41\\x53\\x77\\x2f\\x83\\x12\\x63\\x3f\\xc6\\xad\\x28\\xa7\\xd9\\xfb\\x55\\xf7\\xd7\\x8c\\xd6\\x48\\x8c\\xa5\\x81\\x17\\xea\\xf9\\x23\\xfa\\x28\\x87\\x5e\\x2b\\x31\\x89\\x89\\x31\\x85\\xaa\\x3c\\xcd\\x04\\x4d\\x3f\\x11\\x0e\\x2e\\x7c\\xab\\xdf\\x6f\\x81\\x4b\\x9f\\xdd\\x67\\x33\\xbd\\x5f\\x30\\x7a\\x87\\xbc\\x73\\xb6\\x25\\x0d\\x58\\x83\\x93\\x6d\\xeb\\x1d\\xb0\\xe0\\xaf\\x1b\\xe7\\xab\\x32\\x9b\\x5c\\x6b\\xd9\\x35\\xbd\\x8f\\x8d\\xc8\\x88\\xf0\\xd1\\xc4\\x64\\xed\\xbc\\x02\\x3c\\xbc\\x08\\x07\\x53\\xee\\x8f\\x79\\x9f\\x10\\x72\\xba\\xd1\\x14\\x4d\\xfa\\xa6\\x15\\xa5\\x9e\\x2a\\xed\\xc6\\x62\\xe8\\x3c\\xb1\\xf8\\xe5\\x20\\x96\\xa7\\xee\\x48\\x3b\\xf8\\x73\\xb2\\x5a\\x0c\\x04\\xc1\\x85\\x1a\\x0e\\x87\\x37\\x50\\x63\\xaa\\x1a\\x94\\xfa\\x83\\x5c\\x05\\x26\\x40\\x36\\x6b\\x79\\xf7\\x35\\xd3\\x28\\x61\\x97\\xab\\x32\\xeb\\xdb\\x51\\x23\\xf6\\xb4\\x7a\\xd3\\xf4\\x42\\xc4\\x4c\\x53\\x0a\\x68\\xf8\\x51\\x27\\x59\\xe9\\xcf\\x38\\x6f\\xba\\x07\\xb8\\x06\\x4b\\xc8\\xfe\\x83\\xe2\\x45\\x49\\x5e\\xc4\\x5f\\x89\\x38\\xf8\\x25\\x9d\\xc8\\x01\\x62\\x05\\xf7\\x8d\\x39\\x54\\x44\\x2e\\xc1\\xb4\\x45\\xd8\\x3d\\x95\\xad\\x18\\x05\\xa5\\xe0\\xe8\\xb3\\xd5\\x6b\\x87\\x0a\\x20\\xda\\x18\\xd7\\x4f\\x26\\xf5\\x50\\xa9\\xc7\\x53\\x4a\\x41\\x44\\xdc\\xbc\\x1c\\x3c\\xdb\\xbe\\x47\\x0c\\xc1\\x53\\x90\\x50\\x43\\x08\\x8f\\xac\\xf1\\xd3\\x03\\x55\\x9d\\xe4\\x1e\\x96\\xc0\\xab\\x40\\x9b\\xb3\\x6d\\xcf\\x38\\xcc\\x90\\x38\\xa6\\xa4\\x90\\x8d\\xea\\x82\\xa6\\x53\\x19\\x5c\\x16\\xf2\\x90\\xa7\\xc3\\xac\\x48\\x76\\x36\\xcc\\x5b\\xcb\\x18\\xd1\\x5a\\x14\\xac\\x62\\x4c\\x70\\xb6\\xf6\\x46\\x2b\\xf2\\x49\\xe0\\x00\\xce\\xe9\\x24\\x01\\x8b\\xdf\\x7d\\xde\\x39\\x11\\x4c\\xb4\\xf6\\x52\\xe1\\x22\\xe8\\x74\\x4d\\xa2\\x8b\\x05\\x89\\xe1\\x28\\x4d\\x70\\xd9\\xf1\\x06\\xde\\x16\\xd0\\x73\\x64\\x80\\x80\\xe6\\x43\\x7f\\xf3\\x84\\xe6\\x81\\x77\\xd5\\xcb\\x71\\x8e\\x2c\\xe3\\xf1\\x7b\\xa1\\xe9\\x90\\xae\\x3c\\xe9\\x40\\x66\\x01\\x30\\xe9\\x37\\x50\\xb8\\x2e\\x2f\\xb4\\x1a\\xa3\\x69\\x77\\x45\\x68\\xd7\\xcf\\x28\\x67\\x25\\xe3\\xc5\\x8f\\x63\\xe7\\x3f\\x86\\x97\\xae\\xec\\xc7\\x17\\xc5\\xcf\\x1a\\xf7\\xad\\x74\\xf4\\x46\\x29\\x2c\\x90\\x5d\\x84\\xe2\\x2b\\x23\\xd4\\xe0\\xd2\\x60\\x4b\\xff\\x48\\xfe\\xfc\\x40\\xc6\\x20\\x4b\\x5e\\x34\\xc0\\x42\\x29\\x2e\\x53\\xbe\\xc9\\x36\\x01\\x59\\xa5\\xcd\\x97\\xb2\\xdf\\x57\\x86\\xb8\\xf5\\xa2\\x92\\xc0\\xb3\\x9d\\x14\\xa8\\x70\\xa4\\x58\\x8e\\x67\\xbd\\x12\\xb2\\xc2\\xf7\\xa4\\x40\\x84\\x62\\x85\\x1d\\x2a\\xa7\\x87\\x97\\x1d\\x93\\x15\\x19\\x0f\\x42\\xcc\\x58\\x8a\\xf0\\xd2\\xdc\\xd9\\x1f\\x31\\xbb\\x71\\x5e\\x92\\x50\\xf1\\x19\\x28\\x14\\xf7\\xb8\\xa2\\x1f\\xef\\x45\\x17\\xb0\\xcf\\x8b\\xb8\\xa1\\xa1\\xa5\\xf5\\x00\\xee\\x21\\x9d\\xfb\\x46\\x13\\x2e\\xfe\\x8e\\x90\\xbc\\x49\\x09\\x3a\\x55\\x59\\xf9\\x68\\x1b\\x4f\\xb5\\x9e\\x5b\\xa9\\xef\\x3f\\x05\\xd3\\x4e\\xed\\x03\\x4c\\x14\\xd7\\x7e\\xe9\\x5e\\xbd\\x76\\xff\\xa5\\xaf\\x0b\\xef\\xcb\\xa1\\x8f\\xdf\\x93\\x2a\\xf4\\x85\\x45\\x10\\xb7\\x5d\\xb0\\x0a\\x72\\x57\\xb2\\x34\\x88\\x7d\\x49\\x60\\x7d\\xfd\\x16\\x18\\x0d\\xb5\\x16\\xc7\\xa2\\x0c\\xcf\\xca\\xed\\xa6\\xae\\xdf\\xb6\\xa2\\x37\\x7f\\xbf\\x31\\xe6\\x7b\\x51\\x76\\x55\\xdb\\x73\\xca\\x29\\xe1\\x18\\x62\\x4d\\x60\\x80\"},\n{{0x2b,0xf7,0x4f,0x00,0x4d,0x7d,0x0a,0xf7,0x3a,0x83,0xea,0x20,0x8c,0xc2,0x06,0x72,0x3d,0x18,0x8f,0x4c,0xf6,0x07,0xbc,0xad,0x4b,0x69,0x80,0x26,0x8f,0xf2,0x1f,0xa7,},{0x8f,0xdc,0xd9,0x93,0x52,0x43,0x8b,0xeb,0x52,0xf0,0xd1,0x74,0x2b,0xae,0x71,0x84,0x45,0x12,0xdd,0x06,0x85,0xaa,0xf1,0xc9,0x09,0xe3,0x8f,0xc4,0xb5,0xaa,0xb6,0xcc,},{0x3e,0xb5,0xb3,0x39,0xe1,0x91,0xa3,0xb6,0x16,0x85,0x45,0xda,0x5f,0xb0,0xca,0x9b,0xe2,0x09,0x04,0x39,0x19,0xb9,0xc7,0x0a,0x07,0xb4,0xa7,0xa3,0xbf,0x64,0xb1,0x02,0xf6,0xff,0xd6,0xd2,0xb0,0x25,0x59,0xdc,0x68,0x1e,0xd3,0xb9,0xc8,0x22,0x97,0xb2,0x01,0xdc,0x25,0xc4,0x97,0x38,0x80,0xe1,0x55,0xe1,0x3a,0x29,0x42,0x6e,0xb4,0x0d,},\"\\x89\\x8e\\x43\\x03\\xea\\x5b\\xeb\\xd2\\x00\\xa5\\xf7\\x56\\x2b\\xe5\\xf5\\x03\\x26\\x40\\xa3\\xf5\\xcc\\xfa\\x76\\x42\\x92\\x04\\x5a\\x1a\\x36\\x8d\\x02\\xaa\\x59\\x10\\x77\\xd8\\xf3\\x04\\xf7\\x4d\\xbd\\xfc\\x28\\x07\\x34\\x45\\x4e\\xd8\\xc2\\x72\\x7a\\xff\\x39\\x2c\\x10\\x8c\\x52\\x6e\\x52\\x7e\\x67\\x2c\\x53\\x97\\xb2\\xd7\\x7c\\x01\\xf7\\x74\\x1e\\xf8\\xdc\\xc2\\x51\\x0e\\xe8\\x41\\xb5\\x9d\\xd1\\x0f\\x4e\\x1d\\x3a\\xc5\\x01\\xaf\\x7c\\xbd\\xb8\\x5b\\xa3\\x11\\x29\\xc2\\x62\\xfd\\xe1\\xa0\\xc8\\xbc\\x83\\xd6\\xff\\x94\\x4b\\x6b\\xae\\x3f\\xa7\\xfb\\x62\\x58\\x7c\\x68\\x1d\\x8e\\x34\\x29\\x65\\xc5\\x70\\x5f\\xd1\\xa6\\xab\\x39\\xe5\\xa0\\x77\\x0e\\xe7\\x79\\x8d\\x9f\\xb6\\xc0\\x01\\x8a\\x51\\x4d\\x53\\xaf\\x84\\x8d\\xb6\\x04\\x7c\\xd0\\x2d\\xb3\\x52\\xd5\\x56\\x3b\\x53\\x66\\x23\\x73\\xb9\\x71\\x93\\x5a\\x1a\\xc2\\xb7\\xb6\\x36\\x1d\\xac\\x67\\x48\\x77\\x18\\x13\\xf7\\x74\\x93\\x16\\x69\\x49\\x61\\xb9\\x40\\xff\\x38\\x05\\x81\\x1a\\x49\\xfa\\x27\\xa9\\xba\\x45\\x7a\\xd2\\x88\\x48\\xc6\\x97\\x05\\x0e\\x01\\x88\\xd0\\x77\\x3e\\x17\\xfb\\x52\\x19\\x4e\\x19\\x0a\\x78\\x72\\xa3\\x98\\xf3\\x1c\\x0f\\x0a\\xe0\\x65\\x37\\xa2\\x73\\xff\\xb5\\x0c\\x2c\\x81\\x64\\x45\\xab\\x88\\x28\\x11\\x92\\x2c\\x06\\x21\\x55\\x6c\\x46\\xa3\\xa0\\xec\\x40\\xbf\\xed\\xb4\\x11\\xe9\\x0b\\x6d\\xb1\\xdd\\xd4\\xbb\\xeb\\xb5\\x7d\\x10\\xdf\\x56\\x6a\\x63\\xd7\\x26\\xa3\\x33\\x08\\x51\\x4c\\xe3\\xb4\\x99\\xd5\\xe5\\x26\\xc2\\x2b\\x95\\x6d\\x8b\\x99\\x91\\x3d\\xcb\\x13\\xe4\\x37\\xe9\\x47\\xb6\\x66\\xc4\\x1c\\x54\\xd8\\xb3\\xae\\x23\\x56\\x64\\x7e\\x80\\x17\\xab\\x67\\x83\\x86\\xc9\\x27\\x21\\x9a\\xe7\\xbd\\xdc\\x0d\\x82\\x12\\x65\\xf9\\xdc\\x4f\\xf3\\xf8\\xce\\x5b\\xe6\\x0f\\x8e\\x9d\\xef\\xc5\\xca\\x33\\x50\\x68\\xee\\x29\\xfe\\x83\\x04\\x91\\x7b\\x78\\x87\\x84\\xa2\\x38\\x8a\\x32\\x01\\x92\\xf9\\x32\\x5d\\x0e\\x6c\\xff\\xfe\\xa2\\x1e\\x6e\\xaa\\x29\\xe7\\x70\\x7f\\x63\\xa9\\xea\\x4f\\xbb\\x25\\x58\\xe3\\xd0\\x83\\x5b\\xab\\x1f\\x52\\x36\\x10\\x37\\xae\\x59\\xe5\\x03\\xee\\x96\\xb9\\xd7\\x08\\xa4\\x7a\\x3a\\xe4\\xba\\xd1\\x13\\xe2\\xa4\\x60\\xa2\\x69\\xcc\\xf2\\x5a\\x00\\x03\\xcb\\x3e\\x68\\xa5\\x51\\x86\\x4e\\x59\\x84\\x09\\x14\\x79\\x11\\x26\\xf9\\x54\\x78\\x8b\\x25\\xb5\\xaf\\x5a\\xaf\\x58\\x6e\\xbb\\x87\\xfa\\x5f\\x37\\x7b\\x4d\\x7d\\x7f\\x84\\xc0\\x00\\xdd\\x2c\\xb4\\x40\\xe2\\x14\\xd3\\x8d\\x5e\\xcf\\x70\\xf2\\x0e\\x98\\x81\\x82\\x8e\\xda\\xa1\\xdb\\xec\\x37\\x09\\x3d\\xb9\\x60\\x68\\x6c\\xa1\\x23\\xf1\\xec\\xba\\x63\\x36\\xb3\\x7f\\x46\\xcf\\x76\\x5b\\xe2\\x81\\x4b\\x9e\\x67\\x05\\xbc\\x9d\\x6a\\x49\\x31\\x81\\x18\\xc7\\x52\\x9b\\x37\\xc8\\x4e\\xc8\\x8d\\x58\\xa8\\x45\\x3d\\xcb\\x69\\x2c\\x9a\\x36\\x01\\x6b\\x94\\x8e\\xbe\\x6f\\xb2\\xc1\\xd0\\xad\\xf5\\xf1\\x98\\xee\\x30\\x97\\xa6\\xff\\x0b\\x8e\\xeb\\xba\\xd8\\xb0\\x76\\x93\\x30\\xb1\\x86\\x89\\x51\\x6b\\xc0\\xfe\\x66\\x8b\\x0d\\x05\\xe3\\xa5\\x84\\xfc\\xf8\\x9c\\x49\\xdb\\x50\\x1d\\x61\\xc2\\xde\\xf7\\xed\\x37\\x22\\x07\\x01\\x93\\xa5\\xb6\\x83\\xc5\\x08\\x7e\\xf2\\x74\\xce\\x6a\\x19\\x3d\\xd4\\xa3\\x03\\x53\\x6c\\x67\\x93\\x4b\\x46\\x60\\xa8\\x41\\xee\\x1b\\x44\\x6a\\x68\\x92\\xb1\\x4d\\x0b\\x0a\\xa3\\xe9\\x8f\\xdf\\xfd\\x43\\xc7\\x97\\xad\\xd3\\x65\\x83\\xf7\\x4c\\x94\\xd0\\xe2\\xd6\\x8e\\x2d\\xe8\\x18\\xd9\\xaf\\x20\\x05\\x98\\xf0\\xb2\\xbe\\xae\\x16\\x9c\\x8d\\xfb\\xc4\\xd3\\x97\\xe6\\xd1\\xce\\xb6\\xda\\xa6\\xc9\\xf6\\xbb\\xf4\\xf8\\x31\\x1b\\xa2\\x6f\\xfb\\x19\\x4d\\x44\\x21\\x6c\\x51\\x30\\x52\\x67\\x07\\x4e\\x85\\x6a\\x1d\\x6e\\x92\\x27\\x80\\xf4\\x79\\x8e\\x2f\\x22\\x02\\x23\\xff\\xf1\\xdc\\x37\\x0c\\x8e\\x34\\x51\\x4a\\xba\\x42\\xdf\\x51\"},\n{{0xf5,0xf7,0xd5,0xb7,0x3c,0x5a,0x65,0x30,0x1b,0x5b,0x4c,0x67,0x10,0xed,0x12,0xc1,0x6e,0x79,0x03,0x17,0x7d,0xb7,0x92,0xca,0x71,0x5e,0x23,0x38,0x9d,0x05,0xd8,0x3e,},{0x7c,0x47,0x62,0xe9,0x79,0xf0,0xc7,0xe2,0x07,0xbe,0x18,0x43,0xe2,0x66,0x6a,0xca,0x27,0xea,0x89,0xbf,0xf5,0xb6,0x1d,0x57,0x3c,0x98,0x5f,0xc7,0x02,0x5e,0x1e,0x28,},{0x58,0xfb,0x39,0x2f,0x82,0xd5,0xe5,0x2f,0xf0,0x72,0xcc,0x77,0xef,0xe0,0x48,0xf2,0x23,0x52,0x50,0xc7,0x11,0x25,0xee,0x82,0x1c,0x5f,0x3b,0x39,0x3b,0xcf,0x2f,0xa4,0x6b,0xe4,0xc5,0xd8,0xca,0xf1,0x3c,0xb5,0x19,0xef,0xe0,0xc2,0xfa,0xd9,0xee,0x23,0x1a,0xe9,0xb6,0xfd,0x1f,0xd5,0x09,0xc9,0x8c,0x69,0xc2,0xd3,0x6c,0x75,0x3e,0x0e,},\"\\x7c\\x93\\x18\\xd5\\x6e\\x63\\xf1\\x65\\x35\\x43\\x6f\\xa4\\x5a\\xfe\\x27\\x8e\\x74\\xe6\\x18\\x81\\xbb\\x46\\x89\\x97\\xd0\\x41\\x8b\\xc7\\x20\\xb6\\x30\\xda\\xdb\\x81\\x28\\xb4\\xb6\\x5c\\xa6\\xe9\\x21\\xe5\\x01\\x81\\x3d\\xf9\\xfe\\x03\\xb4\\xef\\x0a\\xae\\x80\\x35\\xdd\\x08\\xc5\\xf8\\x20\\xce\\x5d\\xf1\\x2e\\xe1\\x18\\xd9\\xc3\\x6d\\x3b\\x15\\x1a\\x52\\xc3\\xf9\\x6a\\xe1\\xca\\x4c\\x82\\xfd\\x19\\xda\\x66\\x9d\\xdb\\xa9\\x4f\\xeb\\xf8\\xea\\xc8\\xc4\\x2b\\x44\\x7b\\xab\\xc8\\xa6\\x0b\\x36\\xe8\\x03\\x62\\x4f\\x7d\\x20\\x47\\xbd\\x8d\\x8a\\x15\\x36\\x87\\xf1\\x0d\\xc1\\xca\\x82\\x10\\x0b\\x7c\\x87\\xd3\\x23\\x70\\xec\\x8f\\x26\\x71\\xed\\x7d\\x06\\x7c\\xc8\\x05\\x87\\xca\\xb8\\xdb\\x3a\\x71\\xce\\x5e\\x40\\x63\\x27\\xf7\\x63\\xec\\x1b\\x3c\\x16\\x67\\x70\\xa7\\x55\\x36\\x63\\x0c\\x81\\x5f\\xd8\\x26\\x75\\x82\\xd1\\xb5\\x05\\x1f\\x0f\\x82\\x1c\\x02\\x15\\x0b\\x2e\\xef\\x34\\x9b\\x50\\x59\\x03\\x14\\xaa\\x25\\x70\\x79\\x3f\\xa6\\x4a\\x76\\xed\\x2e\\xd8\\x3d\\x2b\\xa1\\xf9\\xb9\\xf1\\x16\\x31\\x54\\x61\\x2b\\x49\\xa6\\x4a\\xd8\\xd5\\x57\\x3c\\x25\\xb1\\xcd\\x37\\xc4\\x1a\\x44\\xe3\\xdf\\x78\\xf1\\x05\\x3d\\x90\\xb0\\x68\\xf0\\xd3\\x7a\\xe0\\x0c\\x4a\\x32\\xb1\\xa3\\xff\\x87\\x4c\\x41\\xda\\x4a\\x70\\x43\\x39\\x2f\\x18\\xef\\xe5\\x51\\x8d\\x76\\xe8\\x8b\\x41\\xce\\xd6\\x9e\\x6f\\x4c\\x01\\x4f\\x06\\xeb\\xc5\\x14\\x6e\\x61\\xe8\\x2f\\xae\\x1c\\x49\\xc3\\x7c\\x39\\x4f\\xea\\x34\\x19\\x9a\\xb8\\x6c\\x11\\xa4\\x46\\x7a\\x37\\x4e\\x40\\x25\\x5a\\x05\\xd4\\x26\\x97\\x14\\x30\\xd5\\x6c\\xdb\\xa2\\x5a\\x21\\xad\\x77\\x9c\\xc7\\xf6\\x2d\\x22\\xcd\\x87\\xb6\\x0f\\x08\\x91\\xbd\\x85\\x6a\\x51\\x7e\\x14\\xb7\\x2a\\x9a\\xc7\\x67\\x2e\\x4e\\x8f\\xb3\\x74\\xa9\\x75\\x8a\\xb0\\xc4\\xe5\\x96\\x4a\\xae\\x03\\x22\\x89\\x73\\xf1\\x73\\xa5\\xd4\\x2a\\xef\\x9d\\xb3\\x37\\x36\\xc3\\xe1\\x8d\\x8e\\xec\\x20\\x4a\\x1a\\x17\\xb9\\xd0\\x45\\x93\\xde\\xa4\\xd8\\x04\\xcb\\xc8\\x1b\\x9a\\xc5\\x45\\x80\\x50\\x49\\x55\\x39\\x99\\x9a\\x99\\x85\\x48\\x7e\\x7c\\xa1\\x1c\\x37\\x58\\x2e\\xf8\\x5c\\x84\\x1e\\x8f\\x06\\x5e\\xa9\\x8f\\xdd\\x6b\\x1c\\x60\\xde\\xa1\\xec\\x28\\x83\\x52\\x15\\x68\\x85\\x6a\\x6e\\xbb\\x27\\x49\\xf2\\x07\\x2e\\xb4\\x34\\x48\\xbe\\x07\\x05\\xed\\x47\\x7c\\xf4\\xb2\\x00\\x48\\x65\\x21\\x7d\\xe5\\xfa\\xdb\\xe2\\xa0\\xf9\\xd6\\xb8\\x4b\\x3f\\xe7\\xf7\\xbf\\x6c\\x77\\x53\\x74\\x96\\x24\\x6e\\xc7\\x96\\xb8\\xef\\x2c\\x04\\xf6\\x8a\\xb5\\xb1\\x4f\\xce\\x0c\\x6d\\x28\\x7b\\x83\\x62\\x27\\xd9\\xf0\\x8f\\xa0\\xee\\x19\\x72\\x2f\\x67\\x98\\xa5\\xd8\\x28\\x0d\\x10\\x7c\\xfc\\x1b\\xd5\\x92\\xd9\\xdd\\xc7\\x24\\xea\\x86\\xfc\\x39\\xdc\\x94\\xa3\\x94\\x01\\x9e\\x3a\\x3d\\xe9\\xe0\\xd1\\xc7\\x35\\xe8\\x62\\xde\\x2b\\xb9\\x52\\x5b\\x5f\\xb4\\xbd\\x12\\x12\\x12\\xbf\\xaf\\xf9\\xff\\x58\\x6a\\xc3\\xc7\\x5c\\x5a\\xce\\x74\\x6d\\x9c\\xa3\\x07\\xf7\\x95\\xff\\x26\\x97\\xf2\\xb4\\x1a\\x63\\x46\\xed\\x23\\x39\\x7e\\xb3\\x88\\x98\\x69\\x1e\\x6f\\x66\\x84\\x16\\x37\\xd0\\xab\\x0d\\x96\\x83\\x09\\xe0\\x19\\x40\\x02\\x30\\x90\\x15\\x41\\x6e\\x74\\x47\\x2f\\xe3\\x24\\x25\\xd4\\x5f\\x07\\xc7\\x71\\x19\\x18\\xb1\\xe5\\x79\\x0f\\x57\\x2c\\xe4\\x44\\x10\\x42\\xd4\\x26\\x03\\x37\\x92\\x29\\x7b\\x5f\\x81\\xe0\\x80\\x9b\\xd9\\x69\\x1f\\x0a\\x50\\x5e\\x32\\x59\\xfc\\x03\\xc9\\xff\\x10\\x7e\\xb9\\xb4\\x87\\x95\\xf4\\x9f\\xb0\\x9c\\x1b\\xab\\x56\\x59\\xd3\\x9f\\xfe\\xcb\\xdc\\xc4\\x03\\xe3\\x80\\x3d\\xc0\\x12\\x43\\x8c\\x2f\\xb3\\x6f\\x68\\x30\\x15\\xc5\\xdf\\x04\\x82\\xcb\\x7d\\x7f\\xc5\\x75\\x73\\x64\\xa0\\xa3\\xc1\\x0d\\x0e\\x12\\x59\\xc0\\x1f\\xcc\\x4d\\xd5\\x49\\x4b\\x52\\x90\\xa6\\x94\\xae\\xa3\\xf6\\xfa\\xe5\\x47\\xac\\x57\\x6f\"},\n{{0x43,0xd4,0xbe,0x6d,0xe9,0xcb,0x00,0x89,0x8e,0x99,0xdd,0xcc,0x2e,0x15,0x30,0x11,0x0f,0xa2,0xcb,0xc4,0x37,0x6c,0x48,0x5e,0x9c,0xa5,0x7f,0xd6,0x55,0x86,0xd8,0xa3,},{0x36,0x32,0xad,0x38,0x9b,0xe2,0xfa,0xb3,0xfb,0xa0,0xd8,0x04,0xbf,0x63,0x45,0xcd,0x32,0x2e,0xdd,0xd6,0xa7,0x5d,0x8c,0x37,0xfd,0x4b,0x5b,0xa1,0xc9,0xc2,0x5e,0x8f,},{0x86,0xae,0x93,0x25,0xf8,0x0b,0x98,0x86,0xc8,0x38,0x1f,0x96,0xa1,0x8c,0x21,0x20,0xe6,0xdb,0x01,0x6a,0x0d,0x6c,0xa2,0x82,0xed,0x93,0xba,0x9b,0x61,0xca,0xec,0x02,0xde,0x88,0xef,0xca,0x8b,0x8e,0x91,0x6a,0x4b,0x16,0xa5,0x85,0x25,0xa2,0xf6,0x8d,0x21,0xe5,0xfb,0xe6,0x7d,0xb4,0xc4,0xd6,0x20,0x95,0x95,0xc4,0xab,0xc3,0x2b,0x09,},\"\\xd9\\xd5\\x5d\\xab\\x0f\\xa6\\xda\\x76\\xb6\\x8e\\x84\\x1c\\x24\\xd9\\x71\\xba\\xc1\\xf7\\x9a\\xf5\\x13\\xd8\\x34\\xe4\\x26\\xa5\\xd0\\x81\\x14\\xce\\x8b\\x54\\xce\\x8b\\x7a\\xfe\\x01\\x6b\\x0f\\xad\\x03\\xee\\x74\\x50\\xc6\\xc3\\x09\\x71\\x73\\x68\\x1a\\x4b\\x2e\\xb9\\xf9\\xc1\\x79\\xa8\\x8e\\x7c\\xc3\\x68\\x13\\xf2\\xf5\\xd1\\x5f\\x79\\x98\\xaf\\xa9\\xfd\\x4e\\x54\\x6c\\x73\\xbb\\x42\\xe7\\xf9\\x52\\x2b\\xe6\\xaf\\xab\\xca\\x8c\\x7b\\x64\\xfe\\xd0\\xe2\\x92\\xe4\\x37\\x5f\\x3e\\x1e\\x5f\\xd9\\xfc\\xb5\\x39\\xf4\\xe5\\xe5\\x43\\xfb\\x6a\\x11\\xa0\\xdf\\x32\\x1e\\x70\\x08\\x4a\\xaa\\xbb\\x70\\xa9\\x95\\x0c\\xee\\xe3\\xd8\\x79\\xc3\\x86\\xef\\xca\\x1e\\x59\\xc3\\xcb\\x7c\\x45\\xb5\\x60\\x09\\x5e\\x7a\\xf0\\x0f\\xf5\\x2f\\x8a\\x1a\\xaa\\x9c\\xcf\\x09\\x2f\\x0b\\xb8\\x06\\xd9\\x76\\x10\\x74\\x2a\\xc5\\x82\\xa3\\xab\\xbe\\xdd\\xf3\\x9f\\x49\\xd2\\x29\\xd3\\x2a\\x11\\x86\\xd0\\x21\\x51\\x8d\\x74\\x72\\x8d\\x13\\xd9\\x62\\x63\\x5d\\x63\\xba\\xa6\\x74\\x3b\\x12\\x6b\\xf4\\x58\\xfa\\x2a\\xc7\\x56\\xfb\\xf8\\x80\\x96\\xc8\\xd3\\x34\\x0c\\x62\\x23\\x90\\x53\\x4a\\x74\\x3f\\x18\\x64\\xd5\\x4d\\xea\\xb5\\xe5\\x53\\x63\\x72\\xce\\x5a\\xc9\\x37\\x62\\x28\\x74\\x14\\xea\\xe1\\x58\\xa7\\x6b\\xf8\\x1d\\xf5\\x41\\x7c\\xf4\\xc0\\x47\\xbe\\x3a\\xc1\\x47\\x5c\\x51\\x7e\\xbd\\x3a\\xc1\\xd1\\xd1\\xbd\\xda\\x11\\xb3\\xf9\\x9c\\x18\\x17\\x3e\\x03\\x0a\\xcd\\x51\\xd2\\xb5\\xcf\\x79\\x51\\x65\\x09\\x41\\x54\\x05\\x07\\x75\\x11\\xbd\\xd9\\xcb\\xe1\\x7d\\x04\\xf4\\x78\\x05\\xe9\\x8d\\x0d\\x14\\x5e\\x60\\xa5\\xd0\\xe0\\xf4\\x53\\xcd\\x9b\\x5c\\x1a\\x24\\xf1\\x2b\\x75\\xe8\\xcc\\x34\\xd5\\xe0\\x06\\x91\\xff\\xac\\xbf\\xf7\\x88\\xfe\\xa8\\x34\\xd9\\xd7\\x79\\xc1\\xe6\\x10\\x29\\x4d\\xce\\x19\\x17\\x0d\\x28\\x16\\x0c\\xff\\x90\\x9b\\xea\\x5a\\x0a\\xa7\\x49\\x40\\x17\\x40\\xea\\x3a\\xf5\\x1e\\x48\\xb2\\x7c\\x2b\\x09\\xf0\\x25\\x44\\x42\\x76\\xc1\\x88\\xc0\\x67\\x1a\\x6d\\xa9\\x4b\\x43\\xd1\\xe5\\x25\\xe6\\xa4\\xa8\\xa1\\xa7\\x3d\\xfe\\xdf\\x12\\x40\\x18\\x46\\xba\\x43\\x06\\x8a\\x04\\x09\\x2b\\x12\\x91\\x22\\x70\\xd2\\xb6\\x0d\\xf6\\x09\\x97\\x79\\x75\\x6b\\x8b\\xbb\\x49\\xec\\xe8\\x2d\\x55\\xf0\\xf8\\xdb\\x1b\\x80\\xfb\\x4b\\x59\\xbb\\xa8\\x60\\xbd\\x18\\xc7\\x5d\\x6c\\x83\\x4d\\x69\\x44\\x2a\\xe0\\x31\\x4c\\xf2\\x39\\x9f\\x53\\x92\\xa3\\xc6\\x72\\x8c\\x63\\xe5\\xc5\\x16\\xc4\\x22\\x2a\\xac\\x60\\xf9\\x16\\xdd\\x63\\xd1\\xd0\\x51\\x7e\\x8e\\xb1\\x0b\\xd0\\xe1\\x5e\\xb9\\x06\\x14\\xde\\xb2\\x96\\x40\\x3a\\xd1\\x5b\\x8c\\x12\\xb9\\xe9\\x71\\xef\\x2f\\x01\\xe5\\x9f\\xc3\\x5d\\x90\\xc5\\x5a\\x8e\\x20\\xe9\\x43\\x7d\\xd4\\x34\\xb2\\x6d\\x5c\\x2c\\x6e\\xc2\\xd5\\x3a\\xce\\xc1\\x7e\\x81\\xe4\\x78\\x31\\xdc\\x2d\\xe8\\x21\\x83\\xd7\\x13\\xb5\\x9a\\x4d\\x1f\\x46\\x96\\x9d\\xdc\\xdd\\xaf\\x27\\xf4\\x4e\\x5a\\x31\\x1a\\xaa\\xc3\\x9c\\x3d\\x5a\\x97\\xbc\\x90\\xca\\xd7\\x12\\xf4\\x6f\\x85\\xe6\\xc8\\xfb\\xf5\\xd5\\x8d\\x8b\\xc3\\xec\\x27\\xd3\\x10\\xa9\\xea\\xf2\\xc3\\x69\\xcb\\x00\\x64\\x97\\x70\\x39\\x0a\\x3f\\x98\\x8f\\x36\\x2e\\xfc\\x15\\x5f\\x56\\xa1\\x46\\xa6\\x26\\x50\\x54\\x7e\\x91\\x53\\x25\\x07\\x01\\xee\\xad\\x1b\\xd0\\x1c\\x89\\x46\\x22\\x72\\xdf\\xaf\\x0a\\x43\\x1a\\xf4\\xbd\\x7c\\x3d\\xb4\\x51\\xad\\xa6\\x03\\x23\\x3f\\xda\\xd3\\xaa\\x89\\x99\\xaa\\x21\\xe2\\xd3\\xa4\\x3b\\x0b\\x56\\xfc\\x6a\\x91\\x24\\xd3\\x35\\x98\\xb3\\x73\\x7f\\x4e\\x5c\\xb2\\x58\\xbe\\xda\\x75\\x6a\\xd2\\xe1\\x7d\\x06\\x91\\xd1\\x5d\\x41\\x6b\\xb7\\xcb\\x07\\xec\\x8d\\x8c\\x7a\\xf5\\xde\\x80\\xe5\\xb9\\x39\\x4e\\x32\\x0c\\x4c\\x6e\\x43\\xef\\xaa\\xe6\\x84\\xad\\x00\\xf6\\xdd\\x20\\xa8\\x75\\x0e\\x95\\x9c\\x2f\\x04\\x20\\x6f\\xc0\\x23\\xaa\\x19\\x0c\"},\n{{0x7d,0x01,0x0d,0x76,0x0f,0x24,0xe5,0xa2,0xde,0x34,0x08,0x9c,0x9f,0xdb,0x19,0xc3,0x3b,0x15,0x5b,0x0a,0x37,0xca,0x45,0x5a,0x5e,0x5b,0x1d,0xae,0x7a,0x07,0x31,0x76,},{0x4c,0x87,0x7b,0x3c,0x49,0x71,0xfb,0xb5,0x51,0x16,0x6e,0x21,0x4d,0x1c,0x76,0x24,0xc5,0x22,0x77,0x90,0x3c,0x59,0xa5,0x62,0xa8,0x0b,0x91,0xa8,0x54,0x83,0xfb,0x47,},{0x55,0x70,0x61,0x38,0x79,0xae,0x22,0x77,0x8b,0xd5,0x4f,0x14,0xfb,0x6e,0x8c,0x02,0x56,0xa7,0x1f,0x3d,0x79,0xc3,0xe5,0xcd,0x8e,0x41,0xae,0xa8,0xcf,0x77,0x3e,0x24,0xd2,0x9f,0x1f,0x1b,0x24,0xf8,0xc8,0x0d,0x29,0x49,0xe8,0x20,0x14,0x65,0xdb,0xde,0x89,0x40,0xb1,0xfa,0xb6,0x48,0x3b,0x08,0x5d,0x41,0x8e,0x25,0x10,0x14,0x20,0x0c,},\"\\x86\\xe2\\x11\\x55\\x72\\xbf\\x4c\\x01\\x3e\\x6b\\x4b\\x04\\xd0\\xb0\\x3e\\x60\\x6e\\xe7\\x0d\\x92\\x9c\\xb8\\xec\\x36\\xf4\\xe2\\xf3\\x55\\xdb\\x3b\\x5e\\x15\\x73\\xd6\\x58\\xd1\\x7b\\xb1\\xa3\\x10\\xc1\\x69\\x89\\xa1\\x6b\\x95\\x58\\x92\\x2e\\xe4\\x93\\xf3\\x59\\x04\\x21\\x03\\xc4\\xdc\\x1b\\x40\\xdf\\xf7\\x70\\x99\\x01\\xfd\\x58\\x30\\x13\\x3f\\x42\\xc4\\x65\\x1e\\xca\\x00\\x8b\\x49\\x9e\\xe4\\xf8\\x4c\\xd4\\xec\\x1e\\xda\\xa7\\x82\\x56\\xed\\xb6\\x2f\\x24\\x02\\x1a\\x00\\x76\\x25\\x69\\x19\\xe4\\xe2\\xce\\x0a\\x5a\\x20\\xf9\\x21\\xc2\\x78\\xcc\\x29\\x91\\x59\\x64\\x4b\\x5e\\x3a\\x3b\\xbd\\x08\\x9d\\xcb\\xbe\\xba\\xd3\\x76\\x6a\\xea\\x77\\xe9\\xf0\\x8e\\xe5\\xf7\\xd4\\xc1\\x9d\\x81\\x70\\xbc\\x3d\\xe1\\xba\\x77\\x9a\\x76\\x99\\x14\\xf9\\x65\\xdb\\xde\\x2b\\x61\\xba\\xd2\\x14\\xc5\\x08\\x18\\x60\\x41\\xf7\\x6c\\x25\\xbe\\x95\\x76\\x56\\xf5\\xcf\\xb7\\x33\\x4e\\xb8\\x38\\xa3\\xcf\\xbc\\x55\\xcf\\xba\\xb6\\x7a\\xdf\\x15\\x52\\x61\\x99\\x41\\xb8\\x35\\xcd\\x3e\\x34\\x10\\x3b\\x18\\xb4\\x91\\x31\\xe8\\x20\\x96\\xf0\\x5f\\x57\\x0b\\x89\\x98\\x04\\xba\\xb8\\xb6\\xcb\\xad\\xdb\\xbc\\x02\\xf9\\xf3\\xb5\\x59\\x73\\x6d\\x99\\xca\\x7b\\x02\\xd3\\x26\\x8f\\xa2\\x73\\x99\\x6f\\xcf\\x05\\x71\\x97\\x7d\\x1c\\xc3\\x00\\x8c\\x4e\\xf8\\x48\\x97\\x0e\\xe3\\x50\\xb1\\x58\\xc4\\x7e\\xc2\\x77\\xad\\xd4\\x74\\x2f\\xa2\\xbc\\xbe\\xa9\\xbd\\x55\\x49\\xc7\\xbc\\xa0\\x38\\x02\\x0e\\xce\\x68\\xf1\\x88\\xc1\\xea\\x3a\\x62\\xdd\\x9a\\x07\\x3d\\x4c\\x13\\x8c\\xa8\\xa9\\xac\\x04\\x08\\xdc\\xfd\\x46\\xe3\\x6b\\xdf\\xf7\\x39\\x88\\xa5\\x8b\\x96\\x17\\xca\\xa0\\x8b\\xd4\\x1b\\xf3\\xe8\\x12\\xe7\\x82\\x4f\\x0f\\x7e\\x81\\x46\\xa4\\x44\\xf3\\x6b\\xf5\\x3a\\x1c\\xd8\\x92\\x03\\x9c\\xcd\\x33\\x5f\\x5a\\x2e\\x79\\x74\\x5e\\xac\\x96\\x14\\x8c\\x2a\\x29\\x99\\x47\\xf1\\xb2\\xe3\\x28\\xa3\\x78\\x9b\\xf1\\x3c\\x6d\\x73\\x50\\x6f\\x3b\\xdc\\x68\\xea\\x48\\xab\\xf0\\x02\\x27\\x0f\\xe4\\xee\\x9e\\xf9\\xed\\x6b\\x10\\xc2\\xfb\\xb4\\xff\\x12\\x75\\xb9\\xd7\\xdd\\x35\\xd8\\xa5\\x2e\\x37\\x17\\x58\\x57\\x4c\\xb4\\x66\\xc5\\x7b\\x5a\\xbc\\x24\\x29\\x76\\xbe\\xfc\\x8d\\x98\\xa0\\x13\\x1b\\x9b\\xb8\\x46\\xb2\\x19\\xe4\\x66\\x91\\x86\\xa8\\x3c\\x05\\x6c\\xd8\\x08\\x06\\x61\\xde\\x16\\xb5\\x1c\\xe5\\x76\\x7b\\x22\\xe9\\xa9\\x32\\x42\\xbf\\x8d\\x32\\x05\\xc6\\x6a\\x67\\x3c\\xe7\\x83\\xd1\\xc0\\xd3\\x7b\\x63\\x00\\xfb\\xf0\\xd6\\x12\\x79\\x40\\xf8\\x8f\\x18\\x19\\xc4\\x50\\xdc\\xc9\\x05\\x43\\xed\\x79\\x4f\\x1f\\xd4\\x4e\\x65\\x39\\xfe\\xba\\xf1\\x9a\\x4c\\xc9\\x88\\x70\\x01\\x4d\\x7c\\xca\\xd7\\x4d\\x18\\x76\\xa1\\x23\\xec\\xd1\\x45\\x51\\x6c\\x74\\x3b\\x4b\\xba\\x62\\xd8\\x21\\xca\\x9a\\x79\\x51\\xe0\\xdf\\xb2\\x3f\\x38\\xd9\\xe3\\xa3\\x65\\xfd\\x83\\x22\\xf2\\xee\\x47\\x99\\xe9\\xff\\x11\\xe1\\xc5\\xc3\\x0b\\x55\\xa3\\x55\\xc8\\xa5\\xde\\xea\\x81\\xa5\\x45\\xe3\\x47\\x05\\xab\\x56\\xd1\\x7b\\x1f\\xa0\\x6e\\xd7\\x64\\x15\\x55\\x67\\x02\\xf3\\x64\\x80\\x82\\x46\\xf8\\x63\\xc3\\x19\\xf7\\x5c\\xdf\\x6b\\xd7\\x48\\x43\\x8d\\x1a\\x2e\\xaf\\x42\\x06\\xc5\\x60\\xbf\\xaf\\xc2\\x35\\x67\\x9a\\xd6\\x04\\x9c\\x1a\\x01\\x52\\x6f\\xcb\\x9a\\x3c\\xe1\\xb1\\xd3\\x9b\\xe4\\xdf\\x18\\xb1\\x5f\\xa0\\xea\\x55\\x27\\x2b\\x17\\xeb\\xde\\xdf\\x6c\\x30\\x49\\x8a\\x8a\\x14\\xf2\\x04\\x2b\\xe1\\xc2\\xcd\\xb0\\x9e\\x9e\\xf3\\x84\\x6d\\x66\\x59\\xa9\\xf6\\xd6\\x73\\xdf\\x9a\\xfb\\x7e\\xde\\xd0\\x4b\\x79\\x3d\\x97\\x31\\xf0\\xac\\xcc\\x41\\x46\\x8d\\xc1\\xf3\\x23\\x6c\\x99\\xac\\xad\\xee\\x62\\x39\\xc3\\x61\\xb8\\xbd\\x7e\\x2d\\x0c\\xfe\\x8b\\xb7\\xc0\\x66\\x87\\xe0\\x8e\\x76\\xb7\\x1a\\xd5\\x7a\\x03\\x61\\x79\\xf2\\x91\\xd0\\x96\\xae\\x2f\\xa0\\x81\\x8e\\xf4\\xbf\\x48\\x66\"},\n{{0xaa,0xaa,0xbb,0x7c,0xe4,0xff,0xfe,0x4d,0xc3,0x57,0x47,0xba,0xea,0x2b,0xc5,0xf0,0x50,0xbe,0xf0,0x6e,0xe0,0xc1,0xfd,0x63,0x2a,0x06,0x7f,0xec,0xe1,0xef,0x4f,0xb5,},{0x82,0x0a,0x24,0x42,0xd5,0xf4,0x5f,0x3c,0x79,0x14,0x78,0xe0,0x98,0xfb,0x3b,0x06,0x8d,0xa5,0x2e,0xc4,0xe8,0xda,0xde,0xc8,0x50,0x65,0xc3,0x56,0x59,0xf4,0x37,0xe0,},{0x05,0x0a,0xe8,0xae,0xce,0xec,0x96,0x27,0xb8,0x01,0x37,0x35,0x7a,0x22,0x96,0x2a,0xc8,0xb4,0x50,0x48,0x66,0x17,0x08,0xd3,0x94,0xd0,0xa5,0x1a,0xad,0xc3,0x81,0xfe,0x85,0x35,0x02,0x3d,0x6e,0x1b,0xda,0x0e,0x72,0xb3,0x49,0xb5,0x0b,0x26,0xda,0x7c,0x3a,0x30,0x85,0xe8,0x1e,0x9d,0xd6,0xcf,0x12,0x78,0x68,0xfc,0x5b,0xae,0xab,0x01,},\"\\xf9\\xd2\\x85\\x97\\xa3\\xe2\\xb6\\x4b\\xa3\\x27\\xac\\x5c\\xd2\\x9f\\x08\\x1e\\x74\\xbf\\x46\\x1b\\x2e\\xb2\\xd3\\xcf\\xd9\\xd5\\xe9\\x21\\x58\\xd2\\x1d\\x1d\\x2a\\x47\\xab\\x50\\x98\\x1c\\xb1\\x9f\\xe3\\xf8\\xc6\\xfe\\x48\\x82\\x49\\xb1\\xc4\\x9f\\xb8\\x97\\xa0\\xfe\\x21\\xab\\x54\\x04\\x41\\x4f\\xd9\\x14\\x87\\x5c\\x22\\x0f\\x1c\\xbc\\x12\\xf5\\xc3\\x8c\\xfb\\xa7\\x9f\\x7a\\xc3\\x03\\xa5\\x23\\x1a\\x37\\x2b\\x02\\xfa\\xd6\\xc8\\x46\\x2f\\x8c\\xc4\\x9f\\x0f\\x64\\x96\\x5b\\x65\\x1d\\xcc\\xef\\x0b\\xb9\\x60\\x82\\x15\\x09\\x08\\x49\\x17\\x7b\\xe4\\x7b\\x2d\\x30\\x72\\x94\\x4d\\x36\\xe8\\x56\\xda\\x18\\x5c\\x7b\\x3a\\x68\\x9f\\x7e\\xde\\xf9\\x88\\x33\\x8e\\x09\\x63\\xed\\x31\\xa6\\xb0\\xa8\\x0d\\x5c\\xb0\\xb1\\xcc\\xcf\\x6f\\x39\\x48\\x37\\xaa\\x6f\\x8b\\x2f\\x3d\\xa5\\xef\\xbd\\xf4\\xd3\\x60\\xd4\\xbf\\x4d\\xd7\\x08\\xce\\x64\\x45\\x58\\x7d\\x94\\x2b\\x79\\x76\\x1c\\xe9\\x51\\xb1\\xbb\\x4d\\x90\\x50\\x70\\x36\\x18\\xa6\\xd9\\x30\\xa8\\x0c\\x69\\x57\\x6f\\xc4\\xaf\\x30\\x6a\\x2a\\x56\\xdb\\xd8\\x84\\xa0\\x5a\\x1e\\x4e\\x9f\\x31\\x36\\xcd\\x0b\\x55\\xae\\x47\\x4b\\xb5\\xd3\\xd0\\xfb\\xc9\\xb0\\x33\\x9c\\xec\\x34\\x4f\\xdd\\x08\\x5c\\x19\\x28\\x10\\x14\\x81\\xc6\\x87\\x94\\xf5\\xc8\\x90\\x13\\x71\\x08\\xce\\xa7\\x91\\xd2\\x1f\\x81\\x68\\x3d\\x3e\\x1a\\x9e\\xec\\x66\\xac\\xe5\\xc0\\x14\\xd8\\x9e\\x69\\x80\\x8e\\x5f\\xa8\\x3d\\x38\\x12\\xee\\x68\\x0f\\x5a\\x99\\x71\\x68\\x1b\\x8a\\xdc\\xd4\\xa1\\x6e\\x9a\\x4c\\x16\\x5b\\x5e\\xf9\\x93\\x2c\\x5e\\xd8\\x25\\x23\\x7f\\xd5\\x03\\x7b\\xcb\\xef\\xe4\\xcb\\x11\\x56\\x4f\\xa7\\x07\\xc8\\xa9\\x32\\x90\\x75\\x14\\x14\\x89\\x1b\\x1e\\xdd\\x33\\x13\\xc6\\x5f\\x8b\\x91\\xc2\\xe9\\x25\\xa3\\xc1\\x2a\\x9d\\x3a\\xa4\\x5f\\xd5\\xa6\\x67\\xb7\\x83\\x93\\xc3\\xe3\\x9d\\xf8\\x8a\\x8f\\x0d\\x11\\x48\\xb5\\x31\\x1e\\x3d\\x87\\xc4\\xa9\\x2e\\x0a\\x3f\\xb9\\x15\\xbc\\x90\\xd5\\x55\\x8d\\x05\\xb4\\x75\\xa8\\x83\\x47\\x78\\xaa\\x94\\x3e\\xa3\\x9b\\x8e\\xaa\\x95\\xad\\x18\\x32\\xe5\\x91\\x6e\\xa3\\x10\\x2d\\x7d\\xe0\\xb8\\x36\\xcd\\xe8\\xf3\\x75\\x9d\\xbb\\x3b\\x9d\\x56\\xea\\x81\\x7b\\x3e\\x49\\xc9\\x83\\x21\\x02\\x77\\xc2\\xc7\\xc5\\xb0\\xdb\\x18\\x74\\x22\\x53\\x2f\\xca\\x98\\xa2\\x8b\\x3b\\x65\\x9c\\x6b\\x81\\x5a\\xc1\\x26\\xfa\\xdb\\xe2\\xf4\\x00\\xc7\\x3e\\x9d\\x2d\\xed\\xcb\\xbd\\x2d\\x3a\\x36\\x5f\\xfa\\xd7\\xe6\\x66\\xc8\\x96\\xe3\\x1e\\x61\\xb3\\x84\\xed\\x3a\\x9f\\xcf\\x12\\x90\\x53\\x8d\\xf1\\x1b\\x94\\x74\\xc6\\x28\\x1c\\xc5\\x92\\xc7\\x1c\\x88\\x08\\x86\\x8b\\x42\\x92\\xc1\\x7e\\xce\\x6b\\x3e\\xdf\\x5e\\x35\\x42\\xa7\\x0b\\x91\\x15\\x93\\xe9\\x3f\\x35\\xec\\xd9\\x72\\x9b\\xd8\\x88\\x0a\\x24\\xea\\xf4\\x1f\\xbc\\x65\\x74\\xdf\\xe1\\x67\\xec\\x2d\\x0e\\x7a\\xb3\\xdf\\x5e\\xc3\\x4b\\x8b\\x55\\xd5\\x48\\xab\\x93\\x73\\x8a\\x2e\\xea\\xf2\\x1c\\x88\\x4c\\x5c\\x85\\x51\\xdb\\x2e\\xdf\\x2b\\x04\\x9f\\x1a\\x2a\\x84\\xfa\\x72\\xac\\x89\\x78\\xa4\\xc2\\x78\\x09\\xf2\\x09\\xc1\\xb2\\x19\\x5a\\xff\\x50\\x4f\\x69\\x98\\x56\\xcc\\x4f\\x22\\xd4\\x4e\\xbd\\xd0\\xfe\\x50\\x37\\x44\\x68\\xd0\\xb1\\x79\\x2e\\x57\\x4b\\x51\\x10\\xa1\\xf4\\xcd\\x0e\\x22\\x1e\\x82\\x4a\\x78\\xdd\\xc4\\x84\\x5f\\xeb\\x46\\xd6\\x6d\\x63\\x3d\\x23\\xcd\\x23\\xf4\\xb6\\xfb\\xe4\\xc8\\xce\\x16\\xcd\\x1a\\xf6\\x15\\x36\\xda\\x5f\\xa6\\x7b\\x10\\xac\\x75\\x55\\xa6\\x8c\\x0e\\x0b\\xdb\\xf2\\xf8\\xd7\\x23\\x09\\xd9\\x95\\x51\\x6b\\x81\\x18\\xbf\\x43\\x83\\x5d\\x0a\\x01\\xc0\\x8f\\xfe\\xba\\x3e\\xa3\\xed\\x05\\xcd\\x2d\\x54\\xf0\\xea\\xbc\\xda\\x05\\xd0\\x03\\x7d\\x52\\xca\\xed\\x3b\\x19\\x37\\x4f\\xaf\\x73\\x99\\x90\\x94\\xf7\\x90\\x55\\x92\\x4b\\xea\\x9a\\xec\\x44\\x70\\x13\\x5f\\x5e\\x8b\\xf1\\x83\\xc9\\xd1\\xc9\"},\n{{0xe9,0x5c,0xc2,0xa4,0xd1,0x19,0x3b,0x75,0x39,0xfc,0xbb,0xea,0xae,0xed,0x98,0x5b,0x6f,0xb9,0x02,0xdd,0x0e,0xfb,0xd6,0x38,0x74,0x57,0x55,0x0d,0x0d,0x6a,0x2f,0xea,},{0x72,0xa1,0xff,0x1e,0x9b,0xb1,0x1c,0x8d,0x88,0x96,0x8a,0x7b,0x16,0x96,0x37,0xad,0xee,0x43,0x8e,0x22,0x63,0xf0,0x06,0xdc,0xa4,0xfe,0x02,0xfe,0x06,0x6c,0xba,0xd3,},{0x1b,0x8d,0x7c,0xc2,0xad,0xf3,0x6c,0xae,0x16,0x31,0x25,0x0c,0x82,0x43,0x1b,0xd8,0x84,0x37,0x16,0x3a,0x63,0x49,0xad,0x96,0xe7,0xa8,0x64,0x44,0x7e,0x9f,0xee,0x75,0x3a,0xc3,0x65,0x5c,0x98,0x35,0xb4,0xd1,0xec,0xbb,0x30,0x6c,0x63,0x8b,0xa5,0x40,0x2a,0xd0,0x2b,0xa6,0xd2,0x25,0xd9,0x68,0x82,0x88,0x9f,0xe8,0xd2,0x04,0xa6,0x04,},\"\\x84\\x26\\x74\\x39\\x20\\x1b\\x05\\x91\\xdb\\x60\\xc0\\xf1\\x7a\\x9c\\x15\\xe4\\x54\\x09\\x29\\x56\\x52\\xd5\\xf5\\x5b\\x87\\xfb\\x35\\x19\\x67\\xc8\\x46\\xa5\\x67\\xf5\\xce\\xba\\xae\\xd1\\x76\\x2b\\xff\\x54\\x85\\xf0\\x48\\x53\\xca\\x92\\x69\\xf4\\x64\\x09\\x4e\\x51\\x2d\\xf1\\xf0\\x2e\\x13\\xe5\\x17\\xb1\\xda\\xa5\\x8d\\x34\\xca\\xa2\\xd5\\xff\\x9f\\x9e\\x79\\xbc\\xaf\\xb4\\xce\\x96\\xe8\\xa0\\x89\\x25\\x8a\\xd6\\x13\\x43\\xb4\\x46\\x62\\x8e\\xbc\\x4f\\x5b\\x2a\\x84\\xd0\\x3b\\x72\\xef\\x3f\\x73\\x85\\x89\\xfa\\x13\\xc4\\x25\\x19\\xa8\\x28\\x29\\x9a\\x3f\\xae\\xc0\\x35\\x03\\x7b\\xc1\\x0b\\x44\\xe3\\xbd\\xfe\\xd9\\xe0\\x87\\x07\\x17\\xcb\\xaf\\x31\\xbe\\xf8\\xb2\\x2c\\x4e\\xa1\\x6e\\x81\\x57\\xfc\\xbc\\x63\\xee\\xfa\\x39\\xed\\x82\\x2e\\xfd\\x42\\x15\\xc2\\x47\\xdd\\xa4\\x87\\x86\\x27\\x7e\\xc0\\x30\\xa8\\x6c\\x0e\\xf4\\x85\\x1d\\x67\\x3c\\xfe\\x75\\x2d\\x06\\x77\\x88\\x3c\\x2c\\x45\\x20\\x38\\x97\\x0c\\x09\\xbd\\x48\\x17\\x14\\xbc\\x3f\\xbe\\xcf\\xa4\\xff\\x2a\\x3c\\x24\\x56\\x95\\xd7\\xec\\xc2\\xf4\\xde\\xc7\\xf5\\xed\\xe0\\x4f\\xf6\\xdb\\x43\\xe2\\xbb\\x91\\xc0\\x66\\xb6\\x49\\xef\\x73\\xfd\\x3b\\xe8\\x60\\xcb\\x83\\xfa\\x80\\xb0\\x74\\x14\\x9f\\x43\\x1e\\xeb\\xb9\\x17\\xec\\x84\\x78\\xda\\x87\\x0c\\x11\\xe3\\x17\\x70\\x38\\x59\\xf9\\xf2\\xf4\\x00\\x8a\\x6c\\x7c\\x75\\x4b\\x06\\xe1\\xf7\\xd2\\x47\\x96\\x89\\xda\\x84\\xe8\\x89\\x22\\xf3\\x82\\x74\\x98\\x5e\\x11\\xce\\x13\\xcd\\xbd\\xb0\\xf2\\xec\\xe6\\x8f\\xb6\\x02\\xad\\xe0\\x3d\\xd5\\x49\\xa3\\x62\\x49\\x1f\\x4a\\x20\\x3f\\xf8\\x07\\x44\\xf6\\x63\\xc5\\x23\\xa0\\x26\\xb4\\x31\\xaa\\xd4\\x5c\\x58\\x29\\xe0\\x29\\xad\\x62\\x56\\xd1\\x27\\x6f\\xd7\\xb7\\xa1\\x2d\\xdb\\xf1\\x72\\x7d\\x9e\\x23\\x3f\\xb5\\x34\\x45\\x73\\x70\\xa4\\x26\\xe5\\x6f\\xb3\\x9c\\xf4\\x04\\xa3\\xec\\xbf\\x0c\\x4b\\x50\\xbb\\x52\\x2d\\xce\\x98\\x1e\\x08\\x30\\xfd\\x84\\x06\\xe6\\xd9\\x72\\x5c\\xeb\\x1d\\xdd\\x3a\\x19\\x47\\x93\\x7d\\x90\\xe0\\x4d\\x76\\x8a\\xe1\\xd1\\x26\\xe2\\xae\\xac\\x21\\xb8\\xc9\\xef\\xc5\\x4c\\x40\\x96\\x1b\\x7f\\x4e\\x9e\\x88\\x02\\x5f\\x7e\\x0b\\x9d\\xe9\\x01\\xeb\\xf0\\x04\\x9e\\x74\\x1b\\x79\\x79\\x97\\xd8\\xdb\\x78\\xe9\\x28\\x3b\\xbb\\x5f\\x90\\xf3\\x5a\\x2c\\x4d\\xee\\x27\\x31\\x42\\xec\\x25\\x8c\\x02\\xad\\x0e\\xcc\\x61\\xcc\\x5c\\x9f\\x12\\x13\\x2d\\xb2\\x8a\\xf4\\x1c\\x1f\\xb7\\x8e\\x52\\x4b\\xe5\\x32\\x7b\\x5f\\xfc\\x35\\x96\\x27\\x79\\xfb\\x11\\xff\\x0c\\x5d\\x3e\\xe0\\xa3\\x1f\\xf4\\x7e\\x73\\xb1\\x72\\x9d\\xfa\\x46\\xe8\\x98\\x6b\\x1b\\x89\\xab\\xc8\\x8a\\xd0\\x6a\\xbd\\x5b\\x6f\\x76\\x6d\\x23\\xab\\xf6\\x42\\x25\\x78\\x94\\xeb\\xdf\\xa7\\x9e\\x63\\x09\\xf1\\x27\\x23\\x74\\xee\\x94\\x33\\x67\\x7b\\xa1\\x3e\\x45\\x1b\\xaa\\x95\\x33\\x0e\\x66\\x0c\\x80\\x52\\xae\\x87\\x2e\\x0e\\x32\\xe2\\xb2\\xd1\\x28\\x6d\\x01\\xa0\\xab\\x58\\x10\\x42\\x4e\\xd8\\xb9\\x40\\x54\\x65\\xbd\\xeb\\xa0\\x3b\\x69\\x83\\x84\\x67\\x6f\\xe5\\xea\\x46\\x4a\\x03\\x44\\x6c\\x4f\\x7c\\xd7\\xb4\\x33\\x12\\xec\\xf1\\x51\\x36\\x04\\x64\\x57\\x1a\\xd2\\x86\\x10\\x58\\x1f\\xba\\xdb\\x94\\x5a\\x1d\\x68\\x18\\x1d\\xeb\\x40\\x3a\\xa5\\x6e\\xba\\x0b\\xb8\\x40\\x32\\x8e\\xee\\x36\\x10\\x3c\\x7d\\xe0\\x73\\xa6\\x87\\x9c\\x94\\x1c\\x75\\x54\\xc6\\xf6\\xf2\\xa0\\x80\\x80\\x9e\\xb0\\xe5\\xbd\\x0e\\x13\\x0f\\x29\\xa2\\x29\\xe9\\x30\\xdb\\x01\\xfe\\xca\\xc2\\xe0\\x36\\xbd\\xf0\\xe0\\x01\\xe2\\xa8\\xea\\x32\\x64\\xf8\\x64\\x9d\\x5b\\x60\\xc2\\x91\\x03\\xf0\\xb4\\x9c\\x24\\xc9\\x7f\\xac\\xaf\\x7e\\x81\\x06\\x9a\\x2b\\x26\\xab\\x3f\\x93\\x3f\\x42\\x7d\\x81\\x27\\x2c\\x6c\\x8b\\x7c\\xd0\\xdf\\xb7\\xc6\\xbb\\xe9\\xc0\\xea\\xab\\x32\\xbb\\xda\\x22\\x18\\xb9\\x62\\x3a\\x21\\x19\\xaa\\xb1\\xf3\\xeb\"},\n{{0x77,0xad,0x0f,0x94,0x2c,0x37,0xf0,0x31,0x3e,0x6b,0x04,0x56,0xda,0xba,0xec,0x81,0xb2,0xd6,0x1f,0x6c,0x11,0x8d,0xdb,0x29,0xea,0xf3,0xac,0x5b,0xf1,0x95,0x04,0xd4,},{0x69,0x2d,0x2d,0xa5,0xa9,0x5f,0x48,0x61,0x1a,0x6d,0xa8,0x9c,0xfb,0x3b,0x35,0x40,0xf6,0xaa,0x0c,0x85,0x0d,0x6d,0x98,0xde,0xea,0x87,0x0e,0x39,0x7f,0xed,0xe3,0x28,},{0x69,0x6b,0xd5,0x52,0xdd,0x01,0xdb,0x80,0xb3,0xd6,0x7d,0x61,0xee,0xb7,0xec,0xc5,0x68,0x78,0x40,0x4a,0xb1,0x19,0x44,0x2a,0x1c,0x74,0x22,0x99,0x2c,0xfa,0x35,0xae,0xa9,0x20,0x82,0x5d,0x2d,0xaf,0xd8,0x92,0xad,0x7e,0xb6,0x82,0x5a,0xd9,0x99,0xae,0xe5,0xc8,0x3b,0x7b,0x50,0x79,0x06,0x53,0x4f,0x91,0xac,0xe7,0x59,0xc5,0x51,0x0c,},\"\\x87\\xe6\\xde\\xad\\x2c\\x85\\x54\\x9e\\x3d\\x8d\\x25\\x88\\xa0\\xa3\\x36\\x06\\x03\\xa6\\x24\\xfb\\x65\\xae\\xbb\\xc1\\x01\\xbf\\x7f\\x1f\\xec\\x18\\xd0\\xb2\\x8f\\xbd\\x5d\\xba\\xee\\xd3\\x87\\x52\\xcd\\xf6\\x35\\x5c\\xe8\\xdc\\x84\\xe1\\x8a\\xc1\\xa4\\x39\\x3d\\x2a\\xb8\\x88\\x88\\x2c\\x4f\\xf1\\xc9\\xc8\\x13\\x7f\\x83\\xbe\\xe3\\x63\\x36\\xbc\\xbf\\xbb\\x72\\xd5\\x04\\x9e\\x0a\\x40\\x08\\x74\\x51\\x4f\\xdc\\x36\\x33\\x04\\x6e\\x89\\x38\\x3d\\xde\\xd9\\x3c\\xa3\\x1f\\xde\\x0d\\x89\\x8e\\x11\\xe9\\x26\\x8d\\x3d\\x5c\\x24\\x06\\x66\\xed\\x55\\x27\\x61\\x3d\\xa7\\x9f\\xb7\\xe4\\x96\\x25\\xb4\\x4c\\xde\\x78\\xb4\\x1c\\x67\\x90\\x2e\\xb0\\x21\\x6b\\x3a\\x7a\\x3e\\x56\\x0e\\x26\\x1d\\x71\\xd7\\x64\\xaa\\xcf\\x15\\x95\\x9c\\x17\\xfc\\xd6\\x17\\x6f\\xb2\\x5e\\x24\\x9e\\xe6\\xbb\\x1b\\x3b\\xd7\\xbd\\x90\\xf6\\x0b\\x0b\\x0f\\xfa\\x03\\x15\\xa0\\x65\\xa2\\x4b\\xba\\xe8\\xf2\\x55\\xbf\\x29\\x8d\\x7e\\x4d\\x44\\xf0\\xb4\\x30\\xc4\\x15\\xb4\\xfb\\x36\\xcf\\xa6\\x62\\x6a\\x83\\xf4\\x9a\\x25\\x67\\xf6\\x24\\x4f\\x40\\xe9\\x23\\xad\\xd1\\xd4\\x9a\\x72\\xf5\\x7b\\x15\\x30\\xf5\\xb3\\x79\\xde\\x3a\\x91\\xc2\\xe9\\xa1\\xac\\x79\\xab\\x37\\xbc\\x3b\\x9b\\xa7\\x3d\\x88\\x28\\x13\\x6b\\xcc\\x87\\xd2\\xc0\\x11\\x90\\xde\\x54\\x57\\xfa\\xcd\\x90\\xf3\\x69\\x55\\x3f\\x7a\\xc5\\x21\\xc5\\x67\\x2b\\x08\\x67\\xdf\\xa8\\xda\\x3b\\x95\\x2a\\xd9\\x5b\\x67\\xda\\xb9\\x9b\\x48\\x20\\x57\\x2f\\x2d\\x4a\\x29\\x8e\\x95\\x18\\x63\\x77\\x79\\x28\\x9c\\x03\\x1b\\x79\\x3d\\xee\\x85\\x9c\\xde\\x7b\\x24\\xad\\xd6\\x49\\xff\\xf8\\x71\\x24\\x8a\\x66\\x02\\xd2\\x51\\x62\\x79\\xda\\x60\\x58\\xcb\\xb6\\x96\\xfa\\x8b\\x1d\\x89\\xa2\\x0d\\x20\\x99\\xe6\\x46\\x44\\x32\\x10\\x48\\x3e\\x5d\\x41\\x34\\xe9\\x28\\xfa\\xeb\\x38\\xa3\\xb5\\x08\\x19\\x9e\\x0d\\x69\\xbb\\x55\\xee\\x34\\x77\\x42\\x05\\xc0\\xa6\\x12\\x05\\xb5\\x0b\\x08\\xfe\\xbe\\xaa\\x40\\x1e\\x6e\\x3a\\x51\\xa2\\xbf\\x98\\xef\\xac\\x78\\xb7\\xae\\x2b\\x85\\x2c\\x53\\x95\\xa1\\x2c\\x40\\xe2\\xc7\\xdd\\x1b\\x20\\x25\\x04\\xb5\\xa7\\xd2\\xf7\\xe4\\xfd\\x4f\\x86\\x10\\x93\\x0d\\x28\\x68\\xcb\\xa8\\x86\\x43\\x39\\xe0\\x41\\xda\\x21\\xc0\\x71\\x5f\\x41\\xb2\\xb2\\x3d\\x14\\xd0\\xb5\\x45\\x48\\x0b\\xc3\\xbd\\x7d\\x72\\x15\\xcf\\x2f\\x81\\x6a\\x33\\x32\\x08\\x1e\\xca\\xa0\\x8c\\x0f\\x8b\\x99\\x52\\x52\\x51\\xf5\\x72\\x31\\xb6\\x75\\x0c\\x2d\\xbd\\x11\\x09\\xac\\x41\\x60\\x48\\x6b\\x76\\x83\\x24\\xb6\\xba\\xc8\\x7e\\xf5\\xa2\\x26\\x44\\x8c\\x43\\x12\\x40\\x32\\x8f\\x42\\xcc\\xa5\\x86\\xbe\\x7a\\xff\\x3c\\xbe\\x76\\x05\\xfa\\x34\\x15\\x14\\xfc\\xcf\\xb9\\x66\\xaf\\x3d\\x45\\x30\\xe8\\xcd\\x90\\x37\\xa1\\x1c\\xe5\\x93\\xc2\\xd3\\x83\\xe1\\x03\\x5a\\x0c\\x2e\\xda\\x09\\x8d\\xe9\\x0d\\x50\\xc5\\x18\\x4a\\x9c\\x01\\xb5\\x7f\\x26\\xb9\\x4d\\xed\\xd1\\x45\\x4c\\x34\\x06\\x37\\xec\\xcc\\xee\\x70\\x62\\x57\\x54\\xa3\\x28\\xc6\\x5f\\x42\\x64\\x5b\\x5e\\x1a\\x56\\x55\\xee\\xf9\\x7d\\xfb\\x1c\\x63\\x08\\xed\\xf4\\x9f\\xa3\\x68\\xd1\\x7d\\x17\\xe0\\x6a\\xdc\\x51\\x2b\\x39\\x73\\xea\\x65\\x2a\\xc4\\x0a\\x99\\x78\\xe1\\xbb\\x1b\\x2f\\x86\\xc5\\xa9\\xff\\xbf\\x60\\xdc\\xc4\\xf6\\xbb\\xc9\\x8a\\x64\\xf4\\xde\\x65\\xe7\\xec\\x61\\x72\\x1e\\xde\\xb0\\xe5\\x23\\x84\\x56\\xf7\\x61\\xd2\\xd1\\x29\\x3a\\xf0\\xde\\x9f\\x79\\x3b\\x11\\xd8\\xca\\xdf\\x01\\xa9\\x43\\x19\\xa0\\x2a\\x42\\x73\\xff\\xc4\\xd3\\xff\\xa7\\xb3\\x4d\\x74\\xfd\\x2e\\x0b\\x10\\x0f\\xca\\x58\\xb5\\x32\\x5f\\x90\\x7a\\x74\\x91\\x93\\xe7\\x51\\xd6\\xc1\\x16\\x68\\x7a\\xee\\x37\\x47\\xb5\\x94\\x60\\xd4\\xef\\x15\\x6e\\x72\\x47\\x6e\\xae\\x1b\\x84\\x55\\xd7\\x6e\\x71\\xb3\\x06\\xb9\\x81\\x29\\xb7\\x2f\\xe1\\xcb\\x5e\\xb4\\x05\\xa7\\xc2\\xf4\\x32\\x7f\\x38\\x62\\xd4\"},\n{{0x29,0x32,0x14,0x69,0xee,0x9f,0x2b,0xb1,0x65,0xa0,0x69,0x64,0x03,0x32,0xb4,0x89,0xbf,0x5c,0x3f,0xab,0x68,0x2e,0x93,0xda,0xe9,0xd8,0x63,0x17,0xbf,0x50,0xc5,0x2c,},{0x96,0xf7,0x30,0xf8,0xef,0x89,0x70,0x26,0x8d,0xba,0x0f,0x75,0x70,0x41,0x0b,0x61,0x88,0xa1,0xa3,0xc8,0x63,0x97,0x74,0x09,0x13,0xd5,0x3a,0xda,0x26,0x2a,0xb8,0x7e,},{0x4e,0x1a,0xff,0x84,0x63,0xbc,0xa1,0xb7,0xde,0xb1,0xd3,0x77,0x3d,0xf2,0xe7,0xa0,0x68,0x64,0x11,0x1b,0x6d,0xc4,0x2a,0x62,0xae,0x98,0xde,0xb2,0x31,0x39,0x43,0xb3,0x15,0x3e,0xe4,0x66,0x96,0xb1,0x5c,0x24,0xef,0xc2,0xa8,0x08,0xaa,0xba,0x81,0xc7,0x8e,0x3d,0xfa,0x4d,0xfb,0x50,0xca,0x9f,0xe8,0x44,0x45,0xea,0x68,0xbc,0x8e,0x0a,},\"\\x9c\\x71\\x2c\\x83\\xd5\\x4f\\x2e\\x99\\x3c\\xa6\\x8a\\x96\\x32\\x84\\x60\\x04\\x49\\x9c\\x51\\x95\\x44\\x8d\\xdc\\x49\\x1c\\x3a\\x0d\\x2e\\x3a\\x66\\x6d\\x6b\\x33\\x09\\x8e\\x48\\x64\\xfd\\xf8\\x6e\\x61\\x9d\\x50\\xf1\\x0b\\x7c\\xc6\\xc3\\x9b\\x3f\\xf2\\x80\\x1a\\x94\\x91\\xf6\\xfa\\x97\\xc5\\xf1\\xc4\\xaf\\xa7\\xae\\xff\\x31\\xd7\\x38\\xf9\\xa7\\x68\\xa7\\x9c\\x73\\xb2\\x55\\x77\\x31\\x0f\\xb0\\xad\\x4f\\xaf\\x85\\x43\\xa0\\x98\\xf8\\x59\\x57\\x1b\\x61\\x48\\xe8\\xb5\\x29\\x26\\x44\\x57\\x57\\xd5\\x54\\x9f\\xd2\\x5a\\x26\\x51\\x85\\x31\\x56\\x63\\x79\\xd1\\xc2\\x74\\xe6\\xc6\\xa9\\xd6\\x41\\x32\\xe4\\xac\\x25\\xac\\x9a\\xf9\\x38\\x1b\\xcb\\x88\\x53\\x32\\x11\\x3f\\x43\\x01\\x4a\\x13\\x9a\\x81\\xf8\\xd4\\x3c\\x8a\\x6a\\xb5\\x4c\\x11\\xa5\\xc9\\x2e\\x06\\x19\\x1c\\x1e\\x51\\xb7\\x57\\xac\\x9f\\x11\\xe3\\xdc\\x15\\xdb\\x44\\x86\\xd1\\x67\\xff\\x9f\\x2d\\x65\\xe2\\x3e\\x6c\\x96\\x22\\x3d\\x9a\\xff\\x8d\\x10\\xd1\\x50\\x2c\\xf3\\xdb\\xce\\x5e\\x35\\x7e\\x6b\\x12\\xdb\\xe9\\xb7\\xe9\\x97\\xc3\\xd0\\xa5\\x07\\xd3\\xba\\xe3\\xcf\\xef\\x1f\\xfc\\x8d\\x05\\x6e\\xf7\\xdc\\x72\\xdd\\xc1\\xc8\\x1e\\x31\\x0a\\xd2\\x05\\xbe\\x16\\xe7\\x7f\\x27\\x38\\x35\\x4b\\x10\\xb4\\x84\\xd3\\x07\\x6c\\x27\\xe6\\xb4\\xf1\\x66\\x38\\x85\\x81\\xf3\\x50\\xbe\\xfe\\x22\\xfb\\xb0\\x82\\xb5\\x41\\x21\\xee\\x59\\xec\\xc7\\xae\\x5d\\xec\\xe8\\x98\\x82\\xac\\xf2\\x6c\\xb7\\x47\\xff\\xaa\\x3e\\x2d\\x05\\xa6\\x96\\xf6\\x0f\\xd9\\xe8\\x29\\xc7\\x09\\xd8\\xf0\\x2d\\xaf\\x53\\x7b\\x23\\x69\\xb8\\x91\\xfe\\x6c\\xcb\\xf8\\xdf\\xcd\\xd7\\xf4\\xa3\\x64\\xb1\\x99\\x85\\xbe\\x7e\\xde\\xc6\\x7d\\xdc\\x1d\\xb7\\x13\\xc0\\xa9\\x0f\\xaf\\xa4\\x88\\x37\\x77\\x25\\x62\\xde\\xac\\xc2\\xd2\\xa0\\xe7\\x89\\xe1\\x8a\\x8b\\x5b\\x3b\\xd9\\xe0\\x83\\xea\\x92\\xff\\xfc\\x31\\x83\\xd5\\xd4\\x14\\x15\\x32\\x59\\xb3\\x3a\\x43\\x29\\xcf\\xc8\\x08\\x24\\xeb\\xcb\\xe0\\x44\\xa7\\xe3\\x3a\\xb8\\xa2\\x4f\\xde\\x54\\xbd\\x95\\x20\\xae\\xa2\\x84\\xb0\\xc4\\xc4\\xfa\\x94\\x27\\xd2\\x51\\xc0\\xdd\\xd0\\x13\\xec\\xdd\\x82\\x90\\xef\\x55\\x65\\xf6\\x08\\x50\\x8e\\x36\\x35\\x89\\xe5\\x29\\xd8\\x4f\\xf0\\xf2\\x6f\\x9e\\xcb\\x03\\x05\\x2d\\x58\\x97\\xfa\\xbc\\x91\\x7e\\x56\\xe6\\x01\\xb6\\x4a\\xbf\\xe5\\xa1\\x7c\\x39\\x50\\x28\\x9d\\x0c\\xdc\\xaf\\x1f\\x60\\x05\\xa9\\xf8\\x10\\x6f\\x43\\xe1\\x7a\\xdc\\xaa\\x2d\\x1e\\x26\\x91\\x66\\x76\\x2f\\x80\\x54\\xde\\x05\\x13\\x5d\\x5d\\x13\\x93\\xd7\\x00\\x0a\\x15\\xb8\\x7b\\xd6\\x88\\x46\\xa8\\x9d\\x5b\\xc2\\x28\\x63\\x32\\x51\\x51\\xaa\\xc8\\x43\\xf7\\x22\\x78\\xae\\x6f\\x4a\\xf7\\x2a\\x4e\\x44\\x9a\\xdb\\x7e\\xae\\x6d\\x43\\x6a\\x1e\\xc7\\xe5\\x8e\\x59\\xb7\\xb8\\xbb\\x9e\\xf0\\xdd\\xaa\\xa0\\x01\\x82\\x6f\\x8d\\xcb\\x44\\x64\\x79\\xde\\xaf\\xd8\\xb8\\xd5\\x42\\x04\\x1c\\x19\\xa0\\x5b\\x1e\\x0e\\xe4\\x7b\\x46\\x40\\x91\\x0c\\x31\\x93\\x0c\\xa4\\xe2\\x0b\\x10\\x57\\x58\\xec\\x75\\xf1\\x95\\x03\\x56\\x94\\x7f\\x62\\x61\\xd0\\x03\\x7f\\xe3\\x07\\x73\\xa3\\xec\\xe6\\xa9\\x6c\\x8d\\x54\\x33\\x33\\x3d\\x82\\x2c\\x27\\x77\\xef\\x7f\\xf8\\xbe\\x60\\x33\\x34\\x5b\\x50\\x55\\xd5\\x8f\\x5e\\xb3\\x72\\x9a\\xf5\\xae\\x88\\x24\\xf3\\x31\\xee\\x07\\x31\\xc8\\x9b\\x20\\xac\\x11\\x8f\\x55\\x04\\x27\\xcd\\x95\\x8a\\x55\\xf6\\xb1\\xa2\\x88\\x8a\\x08\\x7b\\xb7\\xdb\\x55\\xbf\\xc7\\x3b\\x29\\x42\\x9b\\x44\\x48\\xdb\\xe9\\x11\\x9c\\x45\\xa8\\x73\\x39\\xb4\\x49\\x7a\\x69\\xa4\\xcf\\x83\\x3e\\x8f\\x37\\x70\\xcc\\xe5\\xe0\\x1f\\xaf\\x5e\\x73\\xbb\\xaf\\x62\\x76\\x83\\xc0\\xa2\\x8c\\x73\\x05\\x2f\\xbe\\xce\\x20\\x30\\x43\\x38\\x9d\\xfb\\xfd\\x45\\x49\\x5e\\x51\\xda\\xb8\\x6a\\x25\\x2e\\x5b\\xc1\\xb4\\xb7\\xfe\\x28\\x07\\xe3\\xd0\\xe2\\x36\\x3b\\xea\\xb5\\x1c\\x67\\xfb\\x31\"},\n{{0x04,0x65,0x77,0x50,0x49,0x7e,0x68,0x15,0x2c,0x43,0xce,0x34,0xa5,0x8d,0x21,0x06,0xe6,0x4c,0x55,0x7c,0xd7,0xa8,0x4e,0xf0,0x5d,0x9e,0xb8,0x2e,0x6b,0xcb,0x05,0xf5,},{0x3b,0x3a,0x19,0x47,0xb4,0xcb,0xf6,0x0b,0x82,0x6d,0x60,0x9f,0x19,0x2d,0xc2,0x30,0xaa,0x9b,0x9b,0xaf,0x4c,0xd6,0xa6,0x09,0x2e,0x49,0x5f,0x1d,0x2e,0x47,0xad,0x62,},{0x7e,0x2e,0xae,0x5a,0x29,0x3f,0x41,0x83,0x91,0xf6,0xd8,0x5a,0x79,0x94,0xb0,0x7c,0x45,0x22,0x80,0x01,0x7e,0xe6,0x53,0xbf,0x61,0x7a,0x8d,0x5b,0xe2,0x4c,0xbb,0x5d,0x0e,0xfd,0xfb,0x7f,0x7f,0x00,0x13,0x12,0x26,0x0f,0x34,0x4e,0x6f,0xb9,0x15,0xad,0x8d,0x7d,0xe9,0xc0,0x51,0x98,0x27,0xc0,0x57,0x26,0xf9,0xce,0x25,0x45,0xdd,0x0b,},\"\\x29\\x48\\x22\\x7a\\x89\\x0f\\x6f\\x84\\x5b\\x77\\x5e\\x62\\xc5\\x3a\\xf3\\x80\\x50\\x64\\xa1\\x57\\x64\\x46\\xf0\\x85\\xd9\\x0f\\x8b\\x9a\\x5e\\xd6\\x8d\\xf1\\xea\\x39\\x3c\\xe4\\x79\\xc4\\x41\\x41\\x49\\xa9\\xec\\x5a\\x17\\x10\\x36\\x42\\x4d\\xff\\x03\\x44\\xb4\\x95\\x8f\\x61\\x32\\x29\\x8d\\x0e\\x24\\xc9\\x26\\xd2\\x8a\\xd9\\xd7\\x9f\\x98\\xc6\\xe6\\xbc\\xf1\\xc5\\x76\\x76\\x06\\xec\\xd2\\x91\\xc6\\xad\\x47\\xb4\\xf9\\xfb\\x2b\\x02\\x01\\x15\\x5a\\xda\\x62\\x7b\\x7a\\x1f\\xd5\\xb0\\x74\\x19\\x87\\x40\\x83\\x05\\x9e\\xb5\\x2b\\x2f\\x6e\\xc2\\x28\\x18\\xb7\\x82\\x46\\x22\\x8f\\x3f\\xe6\\x35\\x5d\\xfd\\xa7\\x0e\\xbb\\x9b\\xbe\\x73\\x22\\x93\\x78\\x73\\x63\\x99\\x55\\x7c\\xe2\\x4b\\x30\\xbf\\x64\\x5a\\x14\\xe2\\x25\\x6f\\x70\\x01\\x9b\\x33\\x36\\xb2\\x03\\xfb\\x77\\xc6\\xec\\x94\\xa7\\xa2\\x63\\x48\\x88\\xfe\\xea\\xd4\\xd7\\x2c\\x23\\x91\\xe9\\x9e\\x8c\\x8d\\x53\\x3f\\xd8\\xa4\\x2b\\x08\\xc1\\x1f\\x88\\x7a\\xb2\\xde\\xb6\\xeb\\xbf\\xe3\\xd2\\x51\\xde\\x63\\x53\\x6c\\x36\\xcd\\x53\\x42\\x23\\x98\\xe5\\x44\\xcf\\xf8\\x7b\\x07\\xa6\\x33\\x49\\xfc\\x50\\x85\\xdd\\xe9\\x3a\\x1b\\xfd\\x71\\x71\\x13\\x3a\\x20\\x43\\x98\\x1f\\x60\\x75\\x22\\xc8\\x13\\x3c\\x63\\x42\\x8d\\x1b\\x92\\x62\\x6c\\x79\\xb7\\x35\\x8e\\x70\\x21\\xcf\\x1f\\x41\\x2a\\x78\\xaf\\xa7\\xcb\\x3f\\x59\\xff\\xef\\x92\\x79\\x88\\x5a\\x5b\\xdb\\x24\\x66\\xac\\xd3\\x4c\\xd5\\x15\\x80\\x83\\x0b\\x83\\x51\\xeb\\xd4\\x40\\xa9\\x66\\x23\\x90\\x7a\\xd1\\xf4\\xb5\\x62\\x03\\xf5\\xe1\\x59\\xa4\\x29\\xe3\\x54\\x6e\\xad\\x0c\\x01\\x1d\\xbe\\xd0\\x90\\x28\\x71\\x7e\\x3c\\x3d\\xfe\\xd3\\x91\\x97\\x76\\x4d\\x4d\\x24\\x5e\\xf2\\x28\\xb9\\x80\\x44\\x71\\x8e\\xf4\\xd8\\x82\\x2f\\x21\\xb2\\xc5\\x68\\x50\\x38\\x47\\x3b\\xf9\\x3d\\xc0\\x93\\x74\\x51\\xeb\\x02\\xd3\\x1a\\x46\\xc8\\xdc\\x7e\\x94\\xc3\\xe8\\x67\\x8c\\x83\\xb9\\x8a\\x43\\x81\\x8f\\x12\\x5b\\x52\\x8b\\x47\\x6a\\xad\\x31\\xd1\\x58\\x4f\\xfd\\x48\\xf1\\x49\\xe5\\x73\\x6e\\x58\\xf9\\x42\\x05\\xd3\\x88\\x9e\\x56\\x7e\\x4d\\xd1\\xea\\xc2\\xfa\\xc1\\xf8\\xf4\\xdc\\x54\\x0e\\x53\\x22\\x46\\x0f\\xb9\\x40\\xe1\\x2e\\x93\\xc4\\xc9\\x8d\\xed\\x19\\x41\\xc1\\x90\\x4f\\x96\\x7f\\xb4\\x64\\x36\\x84\\xc1\\x9a\\x4d\\x5c\\x44\\x1d\\x60\\xb0\\xe9\\xf4\\x08\\x55\\xe5\\x23\\xfe\\x7f\\x99\\x10\\x76\\x57\\xa6\\x80\\x76\\x27\\x5b\\xf8\\x4b\\x7c\\x69\\xa3\\xf2\\xb3\\x85\\x5b\\xc8\\x02\\x6b\\xa9\\xb0\\x0b\\xc6\\xfe\\x34\\xb9\\x9d\\xa0\\x63\\x17\\x00\\xa6\\x7f\\x52\\xb3\\x4e\\x17\\x96\\x33\\x98\\x87\\xa4\\x83\\x05\\x12\\x1d\\x53\\xab\\x44\\x40\\xfc\\x4b\\x5c\\x9b\\xf7\\x23\\x94\\xd5\\xed\\x37\\x2f\\xf1\\x8c\\xa3\\xf0\\x07\\xbd\\x02\\xdf\\x65\\x1d\\xc3\\xac\\x43\\x82\\x75\\xf1\\xa3\\xe5\\x24\\x22\\xb8\\x6c\\x45\\x86\\x76\\x6a\\x21\\xcd\\x89\\xf8\\x05\\x80\\x5d\\xbb\\x44\\xfd\\x89\\xfe\\x24\\xfb\\x2c\\x0b\\x40\\xd1\\xb7\\x54\\xc3\\x35\\xdb\\xaf\\xfc\\x3b\\x3b\\xb8\\xbb\\x46\\xc7\\x4c\\x36\\x37\\x45\\x04\\x04\\x2d\\x86\\x78\\x92\\x27\\x59\\x98\\x62\\x31\\x2e\\x99\\xca\\x89\\xeb\\x50\\x4c\\xc3\\xd7\\x5d\\x19\\x49\\x5a\\xa8\\x6b\\x20\\xb2\\x73\\x6b\\x12\\x1b\\xb2\\x07\\x5c\\x88\\xed\\x4a\\x3f\\xbd\\xaa\\x6b\\x2c\\x3f\\x76\\xd1\\xff\\x55\\x25\\xd3\\xa2\\x86\\x3e\\x4d\\x83\\xc7\\x2b\\xfe\\x01\\xe1\\x02\\x78\\x80\\x94\\x74\\xe1\\x82\\x2d\\xe2\\xd9\\x62\\x83\\x48\\x93\\x20\\x02\\x96\\x11\\xaa\\x9d\\xff\\xc4\\x82\\x9d\\x66\\x86\\x9e\\x63\\x49\\x4f\\x9a\\xad\\xe7\\x0b\\x77\\xa7\\xb8\\x0f\\xbc\\x93\\xe3\\xde\\x4d\\x93\\x59\\x13\\x75\\x2d\\x04\\x5e\\x13\\xb3\\x12\\xc5\\xd0\\x82\\xf6\\x24\\x2d\\x49\\x85\\xb0\\x53\\xb3\\x78\\x3e\\xb0\\x2c\\x66\\x14\\x96\\x3d\\xc0\\xd5\\x5d\\x4c\\xbe\\x88\\x7b\\xae\\x29\\xcc\\x18\\x97\\x9e\\x5e\\x2e\\xa9\\x45\\xbc\\xd4\\x0d\\x89\"},\n{{0x8b,0xd9,0x90,0x70,0xc5,0x0a,0x9f,0xa4,0x18,0xef,0x7f,0x75,0xc0,0x01,0x29,0x91,0x6a,0x41,0xc8,0x60,0x70,0x96,0x1c,0xcb,0x2b,0x20,0x2b,0xe1,0x8c,0x2d,0x10,0xd7,},{0xdd,0xd7,0x33,0x08,0xfc,0xe8,0xca,0x65,0x52,0xd0,0x39,0x42,0x8c,0x7a,0x1a,0x94,0x92,0x33,0x20,0xa3,0x1c,0x0f,0x58,0x0d,0x3c,0x23,0x52,0x80,0xf0,0x3c,0x18,0x30,},{0xb1,0x4a,0x7b,0x26,0x20,0x12,0xc5,0x90,0x9e,0x21,0xd5,0x87,0xfb,0x4f,0x29,0xa9,0x09,0x3c,0x8e,0x1c,0x29,0x99,0x81,0x6a,0x82,0x11,0x8f,0xef,0xbf,0x10,0xe6,0x8e,0xa8,0x98,0xbf,0x0d,0xa1,0x8e,0xbf,0xd0,0x34,0x1e,0xa8,0xf8,0x2a,0x18,0x44,0xc8,0xe0,0xdd,0x53,0x06,0xe5,0x09,0xb9,0xd0,0xc3,0x5b,0x47,0x3a,0x7d,0x20,0x95,0x07,},\"\\x48\\x5f\\x8d\\x68\\x0f\\x79\\xee\\x2d\\x82\\x8b\\xe7\\xd0\\x18\\xa6\\x5e\\x0b\\x64\\xb0\\xf0\\x18\\x48\\x19\\x86\\x3e\\x71\\x10\\xee\\xa8\\xf2\\x99\\xa7\\x2c\\x4d\\xc8\\x7f\\x8e\\xe8\\xa8\\xae\\xaa\\x81\\xaf\\x91\\xdc\\x71\\xad\\xea\\x79\\xfc\\x97\\x97\\x42\\x1c\\xcc\\x64\\x6e\\x6c\\xd5\\xdd\\x48\\xb4\\xde\\xc1\\xde\\x96\\x86\\x93\\xfb\\xce\\x0d\\x00\\x21\\xa3\\xd9\\x8d\\x38\\xa8\\xbb\\xc5\\x81\\x95\\xe6\\xdf\\xc3\\xb5\\xe1\\x46\\x1b\\x2a\\x59\\x41\\x03\\xe8\\x0a\\x29\\x44\\x1d\\x5a\\xaa\\xf8\\x89\\xe3\\x1c\\xc8\\x65\\x14\\x1f\\x0c\\x6b\\x2c\\x8c\\x81\\xf7\\x21\\x67\\x9e\\xa2\\x39\\x4e\\xc6\\xe4\\x08\\x1e\\xc2\\x03\\xc2\\xea\\x39\\x7d\\x94\\x84\\x75\\x7a\\x7a\\x0e\\xcd\\x53\\xe6\\x52\\xdb\\x9d\\xf1\\x7b\\xea\\x0e\\x32\\xfe\\x8b\\x2c\\xbc\\xe0\\xd1\\xd9\\x7b\\x96\\x1e\\xd7\\x4e\\x8e\\x62\\x2b\\xcd\\xd3\\x55\\x8b\\x7c\\x48\\x69\\x5a\\xdf\\x18\\xaa\\xe6\\x11\\x0e\\xa9\\xa3\\x39\\xb9\\xda\\x40\\x7a\\x9e\\xda\\xf2\\xab\\x08\\x1a\\x68\\x1e\\x18\\x32\\xcc\\x21\\x5b\\x1f\\x08\\xa6\\x7d\\x55\\x9a\\x47\\x44\\xaf\\x7c\\xd5\\x03\\x18\\xc2\\x06\\xee\\x91\\x15\\x75\\x82\\xf8\\x2e\\xb6\\xc0\\xfc\\x29\\x02\\x7b\\x44\\x61\\xc3\\x07\\x33\\xb8\\x16\\x9d\\x14\\x81\\x32\\x2c\\x48\\x60\\x50\\x9b\\xa0\\x96\\xba\\xcb\\x71\\xa5\\x79\\x24\\x67\\x51\\xd5\\x67\\x54\\x0e\\x41\\x43\\x1e\\x14\\xf1\\xb4\\x6e\\xf1\\x6e\\xba\\x27\\x61\\x04\\xbc\\x01\\x65\\x0d\\x5c\\x49\\x26\\xe4\\x7c\\x9c\\x60\\x40\\x78\\x4b\\x04\\x3c\\xd0\\xaa\\x48\\x54\\xef\\xe8\\x79\\x7f\\xd0\\x46\\x2d\\x45\\x39\\xf3\\x80\\x35\\xae\\xf0\\x8b\\x45\\x77\\xc1\\xa9\\x11\\x8d\\x00\\x4b\\x6d\\x01\\x86\\x2f\\x52\\x76\\x77\\x6d\\xfe\\xf1\\x37\\x18\\x64\\xf1\\x55\\xac\\x0f\\x07\\x83\\x89\\xc2\\x05\\xcf\\x05\\x38\\xd8\\x5f\\xa3\\x48\\x24\\x4d\\x7a\\x42\\x29\\x11\\x31\\x0f\\xf6\\xc1\\x01\\x32\\xb1\\x59\\x8b\\xb4\\x45\\xc7\\xe2\\x07\\x7b\\x76\\x3c\\x47\\x3d\\x1e\\x7a\\x61\\xa3\\x8b\\x64\\x92\\x9a\\x64\\x8b\\x60\\xb2\\xe5\\x43\\x54\\x37\\x39\\x22\\x4b\\x40\\xfb\\xf6\\xd8\\x7f\\x10\\x79\\xc3\\x0b\\xc8\\x73\\xac\\x38\\x99\\x1d\\x51\\xb8\\x9e\\x9d\\x26\\x1c\\x4b\\xcc\\xb3\\x75\\x35\\x5c\\x07\\x2c\\x1e\\xa2\\x0e\\x4f\\xf9\\x1d\\x55\\xd9\\xf7\\x54\\x4e\\x90\\xd1\\xc6\\x64\\x6c\\x59\\xaf\\x72\\x42\\x4d\\x8a\\xaa\\x8e\\x0a\\xed\\x07\\xb3\\x88\\x9d\\x4e\\x45\\x0c\\x12\\x09\\x68\\x4c\\xe1\\x38\\xd0\\xc9\\xda\\x07\\x95\\x25\\xf5\\xaa\\x02\\x05\\x0a\\xf5\\x70\\xe4\\x31\\x5c\\x2f\\xa8\\xb0\\x99\\xb7\\x76\\x5b\\xfb\\xb8\\x94\\xfa\\xd3\\x59\\xb8\\xe2\\x48\\x04\\xec\\xe0\\x52\\xac\\x22\\xa1\\x91\\x70\\x53\\x35\\xe9\\x88\\x40\\xa6\\x24\\xe4\\xcb\\xf3\\xa1\\xa1\\xa3\\x27\\x81\\x27\\x85\\xb2\\xc0\\xf5\\xd6\\x38\\x14\\x57\\xb7\\x2f\\xdb\\x63\\x3e\\x81\\x93\\x8b\\xbb\\x54\\xb8\\xc3\\x7c\\xcc\\xb5\\xd5\\x9c\\x58\\x27\\xc7\\x68\\x3a\\x52\\x47\\x54\\x49\\x77\\xe9\\x84\\x44\\x21\\x78\\xd0\\x85\\x29\\x06\\xca\\x6f\\x94\\x5c\\x42\\x29\\xeb\\x08\\xad\\x27\\xe6\\xc2\\x75\\xd7\\xb4\\xec\\x8d\\xc2\\x5f\\xb2\\x81\\x93\\x37\\xe5\\x3e\\xad\\x6c\\x7a\\xa7\\x87\\xf9\\x1a\\x7d\\xc6\\xdd\\xaf\\xd5\\x36\\xee\\xfc\\xbd\\xec\\x2c\\x50\\x16\\x7b\\xe3\\x43\\x06\\xa8\\x2e\\x16\\xd5\\xd5\\x2b\\x3b\\x1b\\xe0\\x08\\xa7\\xa6\\x11\\x27\\x4c\\xe2\\xcf\\x8d\\x62\\xe3\\xb9\\x00\\xc0\\x99\\x43\\xbe\\x70\\xcc\\xc7\\x7b\\x07\\x06\\x37\\xc2\\x50\\x61\\xd6\\x1b\\xe9\\x10\\xee\\xf5\\x0d\\xf1\\x87\\x44\\xc3\\x3e\\x76\\xf6\\x70\\x1e\\x0a\\x8f\\xf6\\x29\\x7f\\xa6\\x7e\\x4b\\x41\\x08\\xc1\\x37\\x56\\x72\\x7a\\x9d\\x74\\xbc\\x9e\\x17\\x98\\x3e\\xec\\x08\\xf8\\x66\\xb7\\xc7\\xff\\xb3\\x7f\\x3c\\xcb\\x01\\x41\\xa8\\x0f\\xef\\xf6\\x32\\x2b\\x2a\\xc6\\x2b\\x84\\xce\\x27\\x97\\xfd\\x98\\xd6\\xff\\x26\\x9a\\x41\\xa0\\xc3\\x84\\x82\\xdb\\x67\\x98\\x62\\xa3\\x8c\\xd2\"},\n{{0x1a,0xf4,0xcf,0x6d,0x24,0xab,0x37,0x82,0x86,0x7d,0x96,0xa1,0xc2,0x75,0xce,0xeb,0x02,0x2c,0x69,0x1a,0x30,0x8e,0x62,0x45,0x66,0x5d,0x61,0x6b,0xf6,0x7c,0x2c,0x32,},{0x19,0xd3,0x17,0xea,0x98,0xd3,0x5b,0xa5,0xfa,0x67,0xc1,0x2e,0xcf,0xb3,0x27,0x50,0xdf,0x27,0x5d,0x7a,0x45,0xb8,0xe2,0x11,0xa7,0xac,0x47,0xed,0xe7,0x71,0x2d,0x9f,},{0x7e,0xb4,0x6c,0xd0,0xde,0x31,0x55,0xb4,0x37,0x47,0xd7,0x32,0xf1,0x04,0x5d,0x8e,0xf7,0x44,0x92,0xad,0x82,0x7a,0x22,0x45,0xbd,0x17,0x10,0x28,0x28,0x44,0x2e,0x43,0xa0,0xce,0x7e,0x8b,0x26,0x8e,0xd7,0xfd,0x8d,0x3e,0x7b,0x28,0xf0,0x72,0x79,0x5d,0xa3,0xe0,0x70,0xf1,0x2b,0xc4,0xe2,0x3e,0xae,0xf5,0x7b,0x85,0x3c,0xee,0x88,0x0a,},\"\\xf4\\x45\\xfd\\xcf\\xe2\\x8c\\x17\\xbd\\x44\\x27\\xae\\xa5\\x67\\x6c\\x0e\\x12\\x80\\x84\\x15\\x97\\xe9\\xd6\\x6d\\xe7\\xd7\\xa7\\x17\\x23\\x11\\x09\\x39\\xbe\\xd0\\x0f\\x4e\\xba\\xf9\\x60\\x3d\\x53\\xc9\\xcb\\xf6\\x27\\x1b\\xe5\\x47\\xaf\\x29\\xb2\\xa0\\x45\\xec\\x41\\x28\\x8a\\x7b\\xb7\\x9d\\x66\\x2d\\xc2\\x10\\xe2\\x15\\x95\\x7f\\xa8\\x46\\x88\\xc9\\x16\\x54\\x3e\\x56\\x17\\xf5\\x60\\xe4\\xd3\\x8f\\x73\\xba\\xef\\xc3\\x7e\\x11\\x91\\x4e\\x47\\xc5\\x15\\x06\\x78\\x51\\xe8\\xed\\x21\\x39\\x3e\\x13\\xdd\\x19\\xed\\x9b\\x73\\xd9\\x89\\x45\\xfc\\x82\\x6a\\x25\\x8e\\x95\\x7d\\xc0\\x83\\xdd\\x8e\\x53\\x5c\\x30\\xa5\\x4b\\x42\\x66\\xdd\\x71\\xd1\\x13\\xce\\x85\\x6b\\x46\\x28\\x2a\\x18\\x03\\x36\\x27\\xa9\\x8e\\x64\\x72\\xcc\\xb4\\x63\\xed\\x3d\\x96\\xfa\\x7b\\x35\\x5d\\x3b\\x2c\\x2a\\x2b\\x60\\x10\\xdd\\x14\\xf4\\xea\\x39\\x65\\xdd\\x87\\xbe\\x1c\\x42\\x9b\\xde\\xa8\\x30\\x0b\\x4b\\x0b\\x44\\x45\\x86\\x35\\xb4\\x97\\x9f\\x5e\\x3e\\x8e\\xb5\\xc6\\x18\\xd4\\xe1\\x3e\\x1d\\x68\\x8b\\xf8\\x8c\\x7e\\x4a\\x3d\\x93\\x8e\\x84\\x33\\x6d\\x67\\xbe\\x68\\xdf\\x34\\x35\\xc5\\xc9\\x90\\x86\\x32\\x1c\\x02\\xe1\\x3b\\x4a\\x12\\x52\\x4b\\x34\\xe4\\x6a\\x0b\\x4d\\x27\\xf3\\x0d\\x7e\\xd4\\xf5\\xce\\xcb\\x36\\xde\\xad\\xf0\\x9e\\x7e\\xfc\\xc7\\x55\\xca\\x66\\x75\\x68\\x29\\x79\\x14\\xc6\\xbc\\x24\\x06\\x27\\xd9\\xd0\\x9a\\xac\\xf8\\x54\\x15\\x41\\x2c\\x06\\x35\\x62\\x34\\x53\\x27\\x8d\\x9b\\xf0\\xe1\\x0e\\xec\\x65\\xfc\\x72\\xaf\\xff\\xfa\\x93\\x92\\xdc\\x78\\x81\\xd1\\xe5\\xc7\\x60\\xa4\\x02\\x80\\xf1\\x6b\\x14\\x75\\x12\\x7b\\x91\\xb6\\x9c\\xcb\\x65\\xdc\\x4b\\x35\\xde\\x10\\xf9\\x43\\x25\\xc0\\xcb\\xe1\\xc4\\x70\\x19\\xa2\\xea\\xf2\\xb4\\xba\\x92\\xd7\\x85\\x22\\x9a\\xac\\xfa\\xd1\\x82\\x6e\\xbb\\xde\\xbe\\xfb\\x7d\\xad\\x4b\\x05\\xf8\\x82\\x43\\xe1\\x5f\\x27\\x97\\x66\\xe3\\x32\\x1d\\xd8\\xdb\\xa6\\x50\\x44\\x4d\\x81\\xfb\\x08\\x78\\x76\\x7a\\x9c\\x63\\x53\\x4b\\xb4\\xba\\x21\\x28\\x5a\\x24\\x16\\xcb\\x8f\\x85\\x6d\\x11\\xa9\\x6e\\x0a\\x8c\\x8d\\xe1\\xe1\\xa7\\x51\\x32\\xf1\\x56\\x4c\\xd9\\x94\\x99\\x56\\x90\\xbb\\xed\\x2e\\xe1\\x54\\x53\\x7f\\xb6\\xf2\\x79\\xfb\\x09\\xc8\\xde\\xa6\\xf6\\xaf\\xab\\xc6\\x28\\x56\\xe3\\xd1\\x28\\xfd\\xfa\\x79\\xfc\\x49\\x76\\x19\\x3b\\xb9\\xb3\\x36\\x86\\x1e\\x47\\xb5\\x6d\\xc2\\x58\\x23\\x93\\xd2\\xe5\\x44\\x65\\x1a\\xc8\\x5b\\xc5\\x8e\\x9e\\x6a\\x94\\xdc\\x4c\\x39\\xc4\\xef\\x72\\x53\\x8a\\x14\\xf8\\x56\\xcd\\x95\\xc3\\xe2\\x79\\x0a\\xde\\xe0\\x3a\\xb2\\xe5\\x2c\\xa0\\xae\\x47\\x1d\\xe5\\x02\\xcb\\x19\\xe6\\x76\\xaf\\x35\\xf5\\xf9\\x3d\\x84\\x0f\\xef\\x96\\x06\\xcb\\xe9\\x2d\\x8b\\xc2\\x50\\x06\\x10\\x5d\\x92\\x34\\x45\\x88\\x83\\x88\\x42\\xc3\\xbe\\x50\\x5c\\x73\\x50\\xe3\\x51\\xb7\\x35\\xe6\\xcc\\x6f\\xb7\\x92\\x75\\xb2\\x7b\\xd9\\xeb\\xd3\\x6b\\xa4\\xd0\\x60\\xac\\xee\\x73\\xb5\\xa3\\x15\\xce\\xff\\xab\\x86\\xd0\\x6f\\x21\\x68\\xa6\\x70\\x65\\x57\\x81\\x96\\xa0\\xed\\x04\\xa4\\xdd\\x71\\xd6\\x73\\x48\\x37\\xdb\\x08\\x38\\x57\\xab\\x1e\\xb5\\xe0\\xee\\xc4\\xff\\xba\\xc9\\x54\\x4f\\x4e\\xc1\\x9b\\xde\\x19\\x4d\\xf8\\x4b\\x1c\\x84\\x83\\x41\\x57\\x4b\\xf1\\x0d\\xae\\xe8\\x5b\\x81\\x78\\x19\\x6f\\xb6\\x08\\x12\\x3a\\x80\\x81\\x71\\xd7\\x3c\\xe4\\x20\\x6a\\xd6\\x52\\x16\\xad\\x1a\\x5c\\xbd\\xe4\\x0b\\x19\\xd6\\xae\\x7f\\x40\\xdf\\x97\\xab\\x84\\x32\\xe2\\xc5\\x3a\\x50\\x4e\\xd1\\x22\\xe2\\x5f\\xb7\\xa5\\x1c\\x14\\x35\\x4a\\xb3\\x92\\x8e\\xde\\xb3\\x9c\\x29\\xeb\\x24\\x6b\\x74\\xa0\\x76\\xf8\\x9d\\x03\\x50\\x4f\\x40\\x1b\\xd1\\x76\\xb5\\xcf\\xfe\\xe4\\xb9\\xdb\\x09\\x7c\\x45\\x76\\x4f\\x51\\xaa\\x37\\x67\\x04\\xb5\\xa7\\xf2\\x10\\xb3\\xf1\\xa9\\x05\\xe2\\x5d\\x67\\x00\\x2f\\x65\\x57\\xeb\\xb7\\x49\\x73\\x7c\\xda\\x31\"},\n{{0x2a,0xac,0xc8,0x19,0x7f,0xf8,0xfa,0xe1,0xc1,0xcf,0x38,0x62,0xe3,0xc0,0x4a,0x21,0x78,0x29,0x51,0xf8,0xe4,0x8e,0x40,0xb5,0x88,0xf8,0xbc,0x74,0x60,0xc3,0x0a,0x03,},{0x9a,0x1b,0x01,0xe2,0x15,0x4f,0x1c,0x36,0xa8,0xe1,0x6b,0x79,0xee,0x7d,0x2d,0x05,0xb8,0x71,0x2e,0x0d,0x27,0xa0,0x61,0xa6,0xd4,0x1d,0x47,0x57,0x78,0xb0,0xdf,0x8c,},{0x64,0x7c,0xdd,0x6c,0x1a,0x67,0x29,0x0e,0x57,0x67,0x6a,0x78,0x11,0x3a,0xaa,0xdc,0xa6,0x9a,0xc5,0x7b,0x99,0x77,0x15,0xc5,0x09,0x89,0x5b,0x8c,0x5c,0x94,0xe8,0x2c,0x0b,0x6a,0xce,0xcc,0xf3,0xba,0x8b,0xd7,0xcf,0x61,0x75,0x2b,0x1b,0x19,0xd1,0x3b,0x49,0xf1,0x5f,0x8b,0xfa,0x04,0x6e,0xb4,0x42,0xa5,0x5c,0xd5,0xba,0xb1,0x42,0x02,},\"\\x5d\\x82\\x75\\x2c\\xe5\\xda\\x31\\x80\\xfa\\xf4\\x78\\x7a\\xed\\xfb\\x19\\x29\\x4b\\x43\\x48\\xa1\\xd9\\x20\\x2c\\x85\\x39\\x83\\x31\\x32\\x3e\\x0f\\x42\\xb0\\x83\\x52\\x27\\xe6\\x8e\\x11\\x56\\xf2\\xd4\\xba\\x2f\\xe4\\x50\\xe6\\xd6\\xef\\x2b\\x92\\xd8\\x9b\\xbb\\xe4\\x09\\x6e\\x12\\xca\\x83\\x97\\xeb\\x2f\\x45\\xe6\\x76\\xf1\\x67\\x3a\\xa4\\x1c\\x95\\x9f\\xcd\\x30\\xd5\\x57\\x88\\x53\\xb5\\xdb\\xd1\\xc0\\xd5\\xb3\\xa0\\xf0\\xd8\\x70\\xec\\xa7\\x1e\\xa1\\x33\\x90\\x11\\x1b\\x25\\x8f\\x65\\x48\\xb3\\x2f\\x37\\xa0\\x5e\\x97\\x44\\xa6\\x56\\xfd\\x77\\x8d\\x65\\x72\\x19\\x65\\xc6\\xd9\\xb3\\x28\\x60\\x0b\\x45\\x70\\x47\\x70\\xe0\\x4b\\x09\\x97\\x90\\xaa\\x78\\x84\\xf0\\x0d\\x7b\\xb7\\x65\\x9e\\x33\\x72\\x10\\xbd\\xc2\\x3e\\xaa\\x71\\xd7\\xb0\\x16\\x03\\x0a\\xca\\x62\\x23\\xb5\\x56\\x9b\\xdf\\xc2\\x90\\x81\\x1a\\xac\\x40\\x95\\x24\\xdc\\xcb\\xf9\\xba\\xbc\\xbe\\x4b\\xf2\\x09\\x46\\xb5\\x44\\x31\\x7c\\xa6\\xf2\\xf9\\x18\\x31\\xc7\\x9f\\xb2\\x73\\xb6\\x40\\x4e\\xb4\\xe6\\x1e\\x1f\\x7b\\x10\\x6e\\xbd\\x0d\\xb9\\xf2\\xb1\\x97\\x4d\\x2f\\x03\\x1b\\xce\\x25\\x80\\x36\\x06\\x55\\x2c\\x34\\x41\\x65\\x5e\\xfc\\xf2\\xc7\\xea\\x52\\xad\\xcb\\x30\\x99\\x3d\\x85\\xf2\\xdd\\xa7\\x96\\x03\\xe9\\x41\\x5a\\x02\\x32\\x45\\xa6\\x6c\\x07\\xa9\\x56\\x93\\x31\\x46\\xf5\\x3c\\x99\\x3c\\x08\\x89\\x18\\x08\\xb8\\x16\\x6b\\x30\\x72\\x1f\\xbd\\x1f\\x8a\\x1b\\x93\\x7d\\x14\\x07\\x0d\\x78\\x6e\\x9e\\xb4\\x51\\xf2\\xab\\x51\\x42\\xf8\\x3a\\x60\\xf3\\x5d\\x76\\xad\\x8b\\x81\\xd6\\xa5\\x7c\\xf3\\x68\\xfc\\x6f\\xca\\xcc\\x0c\\x47\\x58\\x44\\x0d\\x9c\\xd5\\x95\\xb1\\xb0\\x94\\x2a\\x36\\x55\\xe2\\x50\\xda\\x98\\x3b\\x72\\x41\\x54\\x6d\\xcf\\xbe\\x0a\\xe8\\x10\\x77\\x65\\x02\\x95\\x40\\x9f\\xf9\\xe9\\x09\\x77\\xfb\\x99\\x60\\xcb\\xf4\\x0a\\x2a\\xf5\\x17\\x74\\x02\\xba\\x2f\\xaf\\x50\\xdb\\x6f\\x1a\\x73\\x65\\xcf\\x99\\xe9\\x92\\x42\\x9e\\x38\\xdb\\x43\\xea\\x83\\xfd\\xdc\\x95\\xa6\\x48\\x67\\x6c\\x0b\\x16\\xbc\\x95\\x2b\\x15\\xde\\x99\\xd5\\x2f\\x6b\\x52\\x33\\xda\\x4e\\xae\\x19\\x78\\xe8\\xba\\x25\\xe6\\x23\\x5a\\xfb\\xc5\\x11\\xc7\\x6c\\x4c\\x87\\x4c\\x92\\x37\\x92\\x2b\\x1c\\xef\\x08\\x47\\xd0\\x7a\\x80\\x20\\x0c\\xba\\xe3\\xc7\\xc8\\x1f\\xcb\\xd0\\xd1\\x72\\x52\\xed\\x8c\\x61\\xad\\x19\\x54\\xfc\\x86\\x2e\\x1e\\x04\\x44\\x4c\\x32\\x08\\x6f\\xee\\x38\\x0d\\x1c\\x17\\x54\\x13\\x22\\xb9\\xa6\\x0d\\xa6\\x62\\x35\\x2e\\x21\\x0e\\x9a\\xe2\\x15\\xe3\\x53\\x29\\x6d\\xb9\\x22\\x33\\x9a\\xa1\\x7d\\x21\\x73\\xec\\x31\\xf1\\xc5\\x30\\xa2\\x4b\\x1f\\x34\\x8a\\x31\\x57\\x2e\\x14\\x69\\xca\\xac\\x80\\x8f\\x9c\\x76\\xec\\x27\\x31\\x87\\x3b\\x80\\x3e\\xad\\x3e\\x54\\xea\\x24\\xbc\\x24\\x49\\x9b\\x97\\x04\\xb3\\xbd\\xce\\x81\\x38\\x9b\\x9d\\x14\\xd4\\x95\\x27\\xc0\\x4b\\x3b\\xb9\\xe3\\xba\\x6d\\x94\\x6c\\xea\\x58\\xcf\\x78\\x6d\\x4d\\x28\\xb8\\x9b\\x41\\xc5\\x82\\x74\\x03\\x5a\\x86\\x90\\x5a\\xd9\\x57\\x58\\xc3\\x16\\x13\\x66\\xab\\x93\\xda\\x81\\xe6\\xb4\\xc8\\x08\\x36\\x4e\\x08\\x7d\\xae\\xea\\x4c\\x4c\\x5c\\x2a\\xa6\\x87\\x19\\x37\\xc5\\xfe\\xab\\xa2\\x14\\x9f\\x01\\xf7\\x38\\xf4\\x53\\x96\\xe6\\x6e\\xa8\\x06\\x32\\x21\\xe1\\xc8\\x1c\\x05\\x25\\x5b\\xa5\\x64\\xad\\x44\\x0c\\xb5\\xd0\\x7c\\xbd\\x4b\\xab\\x94\\x1e\\xa5\\x93\\x24\\x49\\x30\\xbc\\x5c\\x28\\x9b\\x31\\x65\\xd3\\xec\\x88\\x47\\xeb\\xc4\\xb6\\x74\\xc0\\xa4\\x9f\\x91\\x69\\xad\\xef\\x78\\x6d\\x77\\x67\\xbc\\x8f\\x21\\x3d\\xb7\\xd9\\x5c\\x06\\xe9\\x9b\\xc1\\x1e\\x20\\x00\\x55\\xb6\\x5e\\xb7\\x9a\\xda\\xa0\\x1b\\xcd\\x2c\\x85\\xda\\x43\\xce\\x63\\x70\\xe1\\x2e\\x34\\x9b\\xf6\\xd4\\x75\\x48\\x7a\\xff\\xdf\\x92\\xe2\\x0a\\x3a\\xcd\\xed\\x1d\\x76\\xf9\\xe8\\x3e\\x91\\x9e\\x98\\xde\\xf1\\x95\\x07\\x2a\\x50\\xd0\\xc5\\x71\\xdd\\x25\"},\n{{0xff,0x86,0x21,0x56,0xc7,0xea,0xb6,0x81,0xc9,0x5e,0xff,0xf8,0x00,0x3e,0x00,0xa1,0x4f,0x1f,0x0d,0x50,0x5d,0x55,0x07,0xe6,0xe5,0xb3,0x91,0x79,0xdf,0x9b,0x1c,0xda,},{0xe1,0xb8,0x9f,0xb3,0x11,0x14,0xea,0x46,0x10,0x7f,0xfd,0x03,0x29,0xf1,0x06,0x64,0x28,0xde,0x54,0x70,0x8e,0xdb,0xec,0xf3,0xed,0x9d,0x47,0x08,0xcd,0x14,0x3f,0xe2,},{0x4b,0x81,0x37,0x04,0x2d,0x67,0x84,0x75,0x7d,0x4a,0x9c,0x06,0xbc,0x74,0x32,0xf4,0x80,0x9b,0x1c,0x6a,0x90,0x35,0x42,0x73,0x6d,0x9a,0x57,0x66,0x8c,0x20,0x84,0x5c,0x17,0xd4,0x68,0x55,0x70,0x85,0xc5,0x7f,0xb6,0x32,0x13,0xda,0xd3,0xbe,0x0f,0xa3,0x6a,0x11,0x8f,0x7c,0x1a,0xef,0xf2,0x56,0x2f,0xf4,0xb8,0x88,0x8c,0x26,0x90,0x0e,},\"\\xb3\\xd1\\xdb\\x72\\xa6\\xa9\\x85\\xec\\xd7\\x0a\\x2c\\xff\\x6c\\x18\\xc1\\x79\\xe2\\x17\\xd4\\xf4\\x10\\xfd\\x39\\x34\\x96\\x96\\x85\\x90\\x1b\\xd0\\x71\\xbc\\xe6\\xc2\\xfb\\x67\\x63\\xe1\\x0c\\x6f\\xa1\\x6e\\x75\\xa1\\x17\\x60\\x66\\xb8\\xec\\x81\\xae\\x3a\\x80\\x39\\xe7\\x1d\\xc2\\xcd\\xc6\\x4a\\x40\\xfd\\x62\\xb7\\xce\\xe7\\xbe\\x4b\\xa0\\x33\\x2f\\xe4\\x5d\\x0b\\x60\\x15\\x86\\x52\\xe3\\x3f\\x8d\\x3a\\xff\\x3c\\xb4\\xd6\\xb0\\x21\\x74\\x4d\\x0d\\xd1\\x78\\xb1\\xbf\\x0a\\x1c\\xc1\\xd3\\xfe\\x93\\x21\\xbe\\x28\\x42\\x1e\\xb8\\x82\\x63\\xa1\\x24\\xf4\\x97\\x92\\xd0\\x79\\x47\\x5a\\x8c\\x55\\x5f\\xf5\\x69\\x08\\x73\\x51\\x4b\\x5d\\x48\\x3e\\x53\\x21\\x7e\\x0c\\xbb\\x12\\x86\\x2b\\x85\\x0f\\xe3\\x90\\xc8\\xf8\\x30\\x08\\x08\\x6e\\x64\\x9a\\xc9\\x04\\xb0\\x18\\x35\\x0a\\xb4\\x91\\x57\\xee\\x9b\\xca\\xe6\\xc0\\x7a\\x4b\\x87\\x8b\\x48\\xe2\\x5e\\x98\\x4f\\xbb\\x4d\\x36\\xb6\\x1d\\x68\\x9b\\x13\\x46\\x8a\\x28\\xd1\\xe3\\x87\\xe0\\xe8\\x86\\x57\\xf8\\xc8\\xac\\x95\\x86\\xa6\\xe2\\x6c\\xf9\\x4d\\xff\\x6f\\x82\\x64\\xe3\\xff\\x62\\x58\\x86\\x5c\\x6d\\xcf\\x85\\x7b\\x00\\x14\\x78\\x86\\xe1\\x75\\xdf\\x04\\x32\\xe3\\x2f\\x04\\x40\\x0e\\x29\\x9f\\x21\\x18\\x83\\x12\\xb3\\x2d\\xfc\\x05\\x0e\\x7b\\x7e\\x87\\xee\\xaa\\x0c\\xba\\xac\\x6b\\xe9\\x93\\x7a\\x5e\\x0c\\xc3\\x11\\x13\\xde\\x7c\\x8b\\x23\\x3e\\x1c\\xe8\\xe5\\xd9\\xc5\\x64\\xfb\\xe9\\xf3\\x7b\\xbd\\x41\\x1d\\xf7\\xa5\\xe4\\x4e\\x6c\\x7e\\xbb\\x67\\x6d\\x85\\x89\\x4d\\xcc\\xf4\\x86\\x5e\\x4d\\xda\\x0c\\xad\\xef\\x2b\\xbc\\x55\\x00\\x0b\\x3a\\x29\\xf1\\xf7\\x1e\\xf4\\x46\\x1d\\xdc\\x3b\\x33\\x1d\\x91\\x56\\x65\\x34\\xc5\\xd6\\xd8\\x4c\\x73\\x13\\x76\\x29\\x53\\x20\\xf8\\x0a\\xdc\\x90\\x28\\x8f\\x99\\x53\\x55\\x4f\\xcd\\xf9\\x21\\x3d\\xe6\\xa9\\x05\\x21\\x0d\\x4c\\x80\\x64\\xaf\\x91\\xcd\\x98\\x32\\x5e\\xf9\\x18\\x98\\xd3\\x3d\\x70\\x03\\x82\\x02\\xe3\\x2f\\xb6\\x70\\x9c\\xa3\\xd7\\x88\\xfe\\xcb\\xd1\\xb8\\x41\\xfa\\x4e\\x5e\\x90\\x62\\xd6\\x42\\x67\\xc3\\x5c\\xfd\\x44\\x4f\\xb6\\x9e\\x2f\\x60\\x47\\xf5\\x8b\\x1c\\x2a\\xf4\\xcc\\x7e\\x4c\\xac\\x2f\\x89\\x08\\x88\\x36\\x05\\x92\\x11\\x3e\\x96\\xad\\x3a\\x85\\x7e\\xd0\\x5e\\xaa\\xba\\x6f\\x91\\x53\\xef\\x89\\xb9\\x3e\\x00\\xe8\\x74\\x37\\x33\\xec\\x47\\x2d\\x9b\\x0e\\xec\\x1c\\xd8\\xfa\\x52\\x42\\x5c\\x4a\\x26\\xbd\\x7d\\xf7\\x3a\\x27\\x12\\xbe\\xbe\\x51\\xae\\x3b\\x25\\xeb\\x78\\xdb\\x82\\x14\\x90\\x31\\xfe\\x7b\\x28\\x1a\\xf6\\xcb\\x77\\x14\\xed\\xf8\\x9d\\xe9\\x15\\xf3\\x47\\x0f\\x15\\x3e\\xed\\x7f\\x45\\x62\\x43\\xbb\\x90\\x34\\x2e\\x19\\x0e\\x64\\x7f\\x39\\xe0\\x46\\x88\\x3c\\xe2\\x8a\\x89\\x20\\x03\\x31\\x5e\\xa3\\x79\\x42\\x9e\\x95\\x82\\xa9\\x35\\xeb\\x78\\x96\\x33\\x96\\xd1\\x36\\x84\\x5f\\x86\\xc4\\x66\\xe8\\xfa\\xf2\\x27\\x2f\\x43\\xff\\xef\\xc2\\xad\\xa5\\x60\\x1f\\x8a\\x6b\\x2a\\xc4\\xcc\\x6b\\x92\\x82\\x09\\x17\\xf2\\xe0\\x39\\x3c\\x8f\\xaf\\x98\\x2d\\x6c\\x5f\\x4f\\x23\\x0e\\x27\\xce\\x22\\x78\\xa7\\x23\\x77\\x47\\xfa\\x85\\xa9\\xc8\\x57\\xbf\\x18\\x02\\xc3\\xea\\xe0\\xd2\\x35\\xb5\\xad\\x58\\x49\\x7d\\x66\\xa0\\xd3\\xa9\\xba\\xeb\\xcc\\x41\\x7f\\x18\\x33\\xe9\\xcc\\x44\\x60\\xf9\\x75\\xd7\\x28\\x58\\xcd\\x11\\x8d\\x7a\\xaf\\xaf\\x1c\\x87\\x82\\x97\\xca\\xcf\\x71\\xac\\x75\\x67\\x6d\\xc1\\xb4\\xfb\\x51\\xc1\\x77\\x58\\x10\\xd0\\x35\\x37\\xf2\\xd7\\x66\\x27\\x8b\\x99\\x71\\xbb\\x97\\xd3\\xc4\\x9b\\x51\\xfe\\xb2\\x6d\\x37\\x5e\\x0c\\xb9\\x10\\x95\\x74\\xa8\\x16\\xf8\\x4e\\x76\\xfc\\x7e\\xf0\\x72\\xd5\\x79\\x3c\\x2f\\x65\\xab\\x2e\\xfd\\x90\\x52\\xe6\\xb8\\x56\\x9f\\x28\\x05\\x86\\x1c\\x31\\xa7\\x34\\x4a\\x3c\\x44\\x06\\x9a\\x94\\x32\\x0d\\x27\\x4e\\x27\\x12\\x71\\xea\\xfa\\x3b\\xfe\\x64\\xde\\x75\\x37\\x84\\x6a\\x01\\xe5\\x1f\\xda\\xe0\"},\n{{0x58,0x26,0x19,0xab,0x3c,0xf5,0xa3,0xae,0x77,0x66,0x88,0xbf,0x6d,0xba,0xcb,0x36,0x33,0x0a,0x35,0xad,0x75,0x24,0xe4,0x9e,0xf6,0x63,0x68,0x77,0x64,0xcf,0x6e,0xc7,},{0x20,0x02,0xea,0x0a,0x38,0xa3,0x27,0xe0,0x38,0x4a,0xea,0xe4,0x68,0xdb,0x0f,0x6c,0x85,0x16,0xa6,0x96,0x09,0xaf,0x9e,0xee,0x93,0xe9,0xec,0xb9,0x4b,0x44,0x9c,0x66,},{0xfe,0x97,0x01,0xda,0x1a,0xa8,0x1c,0x55,0xba,0xc3,0x36,0x38,0xf7,0x75,0x54,0x2b,0x80,0x44,0x80,0xf3,0x4b,0x7b,0xfc,0x78,0xda,0x99,0x16,0xe5,0x24,0x6a,0x60,0x4d,0x39,0x0b,0xf9,0x20,0xc8,0x72,0xa7,0x79,0x24,0x24,0x6e,0xe8,0xd0,0x39,0x3b,0x20,0x2e,0x7b,0x25,0xb2,0x48,0x4f,0x65,0x4a,0xc3,0x67,0xcb,0x09,0x25,0xec,0xe3,0x05,},\"\\xca\\x74\\x28\\x4f\\x11\\xc5\\x6e\\x25\\x98\\xd7\\x8a\\x4e\\xcd\\x03\\xb4\\x0e\\x01\\x7a\\x55\\x81\\x76\\x01\\x2b\\x26\\xfd\\xf6\\x95\\xc3\\xde\\x98\\xa7\\x4f\\x8f\\x40\\xa4\\x7d\\x79\\x78\\xed\\xc2\\x4e\\xe8\\x09\\x2b\\xfe\\x5e\\x61\\x59\\x68\\x34\\xde\\xed\\x1d\\x9d\\x34\\xa0\\xf5\\xcd\\xae\\xbe\\x34\\x21\\xaa\\x19\\xe0\\x12\\xde\\x86\\x5b\\x9e\\xe1\\xb7\\x34\\x79\\xb2\\xbd\\x1a\\xc9\\x82\\xf9\\x7e\\xd9\\xc7\\xcd\\x20\\x45\\x9c\\x60\\xfb\\xb1\\x1e\\x1e\\x2b\\x4e\\xac\\x5d\\xb6\\x84\\x4c\\x71\\xd7\\x29\\x49\\x50\\x2b\\xba\\x50\\x3a\\xce\\xc9\\x05\\xad\\xba\\x25\\xf6\\xb1\\x19\\xea\\xf9\\x63\\x9f\\xa8\\xab\\xb3\\x02\\xdf\\xf9\\x93\\x2d\\x85\\x0c\\xc4\\x4c\\x57\\xcf\\x90\\xb2\\xe5\\x8a\\x8b\\x52\\x51\\xc1\\x26\\xa9\\xe2\\x8f\\x5c\\x76\\x1b\\x62\\x80\\xe2\\xcd\\xdd\\x79\\xcb\\xd6\\x8e\\x53\\xff\\x4a\\x62\\x26\\xd3\\xbd\\x4c\\x96\\x1b\\x9b\\x9e\\x43\\x45\\xa2\\x54\\x58\\x62\\xc7\\x97\\x38\\x66\\xf0\\x42\\x0b\\x89\\x8e\\x7b\\xae\\xa9\\x0e\\xa4\\xee\\x00\\x40\\x42\\xef\\x38\\xa1\\xfd\\x95\\x6a\\x72\\xfd\\xf6\\xfd\\x43\\x25\\x7d\\xa9\\xfd\\xb9\\x66\\x80\\xef\\x4f\\xdf\\x9e\\x94\\x3d\\x26\\x5c\\xdc\\xf2\\xe5\\x2e\\x32\\x01\\xd5\\x40\\x8b\\xc6\\xce\\x10\\xe5\\x70\\x0a\\xdf\\x12\\xb5\\x5b\\xa1\\x4a\\xa8\\x29\\xd8\\x69\\x1c\\x31\\xf2\\x4f\\xc4\\xa5\\x1c\\xe6\\xfa\\xa1\\xf3\\xef\\x2e\\xad\\x78\\xe5\\xe7\\x53\\x44\\x6a\\xd3\\xfa\\x4a\\x84\\xc1\\x93\\x97\\x9a\\xeb\\xc8\\x30\\x9b\\xad\\x60\\x81\\x4f\\x48\\x59\\xb9\\x31\\xd7\\x04\\x14\\x76\\x44\\x91\\xc6\\xc9\\xed\\x8d\\xb6\\x73\\xc5\\x43\\xd3\\x51\\x85\\xcd\\x28\\x88\\xaa\\x21\\xc1\\xa9\\x20\\x34\\x27\\xe0\\xac\\x0b\\x1f\\xe3\\x4c\\x0e\\x4a\\x40\\x01\\xe0\\x95\\x6c\\x13\\xcb\\x59\\xa3\\xba\\xf8\\x7c\\x21\\x09\\xa8\\x88\\xa4\\xc9\\xe7\\xaa\\x48\\x17\\x67\\xd8\\x02\\x0f\\xf3\\x5d\\xd7\\xc5\\xcc\\xec\\x7c\\x08\\xe9\\x71\\xa7\\xe2\\x18\\x13\\x8c\\x90\\x54\\x6a\\x7d\\xdf\\x36\\xad\\x11\\x4b\\xe5\\x85\\x57\\x43\\x2c\\x2d\\xdf\\x34\\xce\\xd3\\x37\\x9f\\x70\\xd4\\x40\\x7e\\x58\\x79\\xf9\\x84\\x2f\\x38\\x17\\x17\\x05\\x1b\\x16\\x85\\xaa\\x7a\\xb0\\xad\\x38\\x54\\x1e\\xc1\\x68\\xf5\\x1c\\xb6\\x88\\xf3\\xcd\\x1a\\x01\\x9a\\x33\\x6c\\x9f\\x4f\\x3f\\x82\\xde\\x78\\x5c\\x07\\x48\\x67\\xfd\\xc8\\x80\\x0f\\xc7\\x6f\\xba\\x04\\xc8\\xad\\x8d\\xe1\\x0d\\x2e\\x9b\\x43\\x05\\x81\\xbe\\x44\\xc4\\x1e\\xcc\\x8f\\xc8\\xa6\\x16\\x31\\x43\\x99\\xd1\\x8c\\x64\\x79\\xf5\\x7e\\x57\\x3b\\x22\\xa6\\xee\\x5c\\xe2\\xdc\\xc0\\x89\\x48\\xa0\\xde\\x1f\\x0d\\xd2\\x5b\\x65\\x71\\x5a\\xb1\\x8c\\x70\\xc7\\x62\\xfc\\x3d\\x7d\\x60\\x0c\\xad\\x63\\x22\\x60\\x38\\x50\\x9c\\x19\\xab\\x35\\xb5\\x49\\x3e\\xee\\x73\\xa7\\x03\\x73\\x1e\\xc5\\x35\\xc9\\x0c\\x6f\\x06\\xd9\\x4d\\x3e\\x5f\\x7e\\x51\\xa0\\x9f\\x9f\\x8f\\x42\\xc5\\x01\\xb8\\x50\\x46\\x86\\x36\\x5c\\xee\\xe9\\xe0\\xfe\\x00\\x13\\x29\\xf3\\x03\\x52\\x21\\x46\\x71\\x7c\\x6a\\x12\\x58\\xd0\\xf1\\x57\\xcb\\xea\\x4b\\x5a\\x5e\\x3d\\x13\\xbc\\x90\\x7e\\x95\\xfd\\x6e\\x8a\\x71\\x89\\x6a\\x02\\xc3\\x10\\x6b\\xd2\\x6a\\x51\\x00\\x51\\xf1\\xb3\\x02\\x58\\xab\\x27\\xf8\\x75\\x67\\x3b\\x13\\x37\\xee\\x36\\xb7\\x1a\\x37\\x6e\\x0f\\x9e\\x78\\x09\\xa6\\x7c\\x67\\xd9\\xac\\xc1\\x6c\\x25\\x1d\\xcb\\x8c\\x92\\x6c\\x8e\\x93\\x25\\x16\\xd3\\x8b\\x72\\x33\\xea\\xc6\\x15\\x9c\\x59\\xca\\xd0\\x30\\x7c\\x59\\x0e\\x71\\x31\\xb6\\x22\\x19\\x14\\x5a\\xaa\\x35\\x5b\\xfb\\x4a\\xcb\\x6a\\xf0\\xa5\\x50\\x00\\x06\\xcd\\xd8\\xb8\\x13\\xfe\\x19\\x08\\x60\\x2e\\x08\\x74\\xc9\\x62\\x2b\\xb3\\x76\\x73\\xba\\x1a\\xcb\\xa4\\x14\\x23\\x16\\x67\\xbc\\xc4\\x90\\x7a\\xc8\\x71\\xf8\\x7e\\x6c\\xe3\\xf5\\x91\\xc1\\x91\\x71\\x05\\x7a\\x9f\\x45\\x7f\\x53\\x62\\xae\\xda\\x10\\x5d\\x18\\xfb\\x84\\xf7\\xd0\\xf0\\xa7\\xda\\x7e\\xf8\\xda\\x91\\x14\"},\n{{0x2b,0xbd,0x83,0x0c,0xe7,0xde,0xf3,0xfe,0xce,0xa1,0xec,0xd6,0xea,0x0a,0xe9,0xc9,0xf4,0xfa,0x8f,0xfc,0x3b,0x1f,0x19,0x38,0xc5,0x05,0x05,0x1b,0xab,0x40,0xcf,0x7a,},{0x0f,0xdf,0xed,0x8d,0xe3,0xc1,0xea,0xf8,0x91,0xce,0x37,0xe3,0x4c,0xb4,0xa2,0x44,0x1c,0xbb,0xae,0x08,0x83,0x38,0x3d,0x70,0xde,0x24,0x64,0x85,0x0b,0x4a,0x64,0x2a,},{0x13,0xeb,0xc9,0x79,0xa8,0x87,0x10,0xe3,0xc5,0xf3,0x45,0xcf,0xbb,0x82,0x48,0x13,0xb3,0x08,0xa9,0xd5,0xc6,0xde,0xe3,0x28,0xbf,0xd2,0x35,0xa9,0x7d,0xe7,0xb3,0x26,0xde,0x6c,0x73,0x8f,0x96,0xf6,0x98,0x31,0x94,0x92,0x09,0x99,0x68,0x52,0xdd,0x9c,0x09,0x8d,0x58,0x08,0x41,0x87,0x09,0xf2,0xbf,0x51,0x0d,0x46,0xb7,0xf0,0x36,0x06,},\"\\x5f\\x1e\\xde\\xaa\\x3c\\x0b\\x2a\\x63\\x31\\x1d\\x97\\xf1\\xc5\\x4e\\x7e\\x2f\\x68\\x71\\x70\\xe6\\xb4\\x6e\\x21\\x69\\xcb\\xf5\\x6c\\x66\\xf2\\x31\\xbf\\xc4\\xa5\\x76\\xbd\\x2b\\x84\\x20\\xbf\\x35\\x7d\\x3a\\x90\\xf8\\xf3\\x2e\\xa1\\xad\\x99\\x39\\xb4\\x67\\x25\\x4b\\x66\\xa1\\xdf\\x1f\\x5b\\x4c\\xba\\xc6\\x3a\\x5c\\x27\\x24\\x26\\x0d\\x24\\xd8\\xdf\\x8e\\xdb\\x58\\xae\\x24\\x7a\\x25\\x91\\xe9\\x20\\xb1\\xa4\\x20\\xcf\\x8d\\x85\\x39\\xea\\x57\\xdb\\x0d\\xad\\xff\\x1a\\xd3\\xe9\\x8c\\x31\\x72\\xd0\\x33\\x16\\x3c\\xb4\\x34\\xa7\\x66\\xb0\\xc1\\x18\\xa5\\x6a\\xbd\\xcc\\xe7\\x9c\\x82\\xaf\\x7b\\xac\\x74\\xed\\x0e\\xa0\\x24\\xac\\x4c\\xe0\\x22\\x2d\\x0a\\xa9\\x14\\xf4\\x32\\x09\\x2b\\x1b\\x51\\x78\\x04\\xdb\\x59\\x18\\xa8\\x45\\xe9\\xcc\\xa5\\x5a\\x87\\xdb\\x7c\\x28\\x52\\xf7\\xdd\\x2e\\x48\\x36\\x01\\x85\\xcc\\x44\\x2c\\x79\\x30\\xaf\\xe1\\x5d\\xd6\\x22\\xcc\\x02\\xbc\\xd1\\xee\\x77\\x8b\\x59\\x70\\x5f\\x14\\x33\\x32\\x41\\x58\\x8a\\x52\\x2d\\xe2\\x44\\x07\\xe8\\xe6\\xe1\\x0d\\x5e\\xf3\\xa8\\x8e\\x3a\\x3c\\x44\\x38\\xc1\\x7f\\x75\\x04\\x67\\x4f\\xd7\\xe4\\x18\\xcb\\x2f\\x77\\xad\\x0a\\x56\\xd2\\x38\\x67\\x03\\x15\\x5e\\x9a\\x40\\x1c\\x43\\xdd\\xb5\\x1e\\xad\\x55\\x20\\xaa\\x7b\\xa0\\x38\\xe7\\xde\\x53\\x31\\x41\\x8a\\xd5\\x52\\xbd\\xcd\\x18\\x5f\\x50\\x3a\\x85\\x48\\xf5\\x5b\\x63\\x86\\xe4\\x68\\x7c\\xa5\\x15\\xf7\\xc0\\xee\\xa5\\x70\\x98\\x3b\\xfb\\x24\\xbe\\x16\\xf7\\xb3\\x00\\x3f\\xb7\\x56\\xe3\\x26\\x56\\x2f\\x2a\\x32\\xfe\\x65\\xff\\x84\\x4c\\x39\\x84\\xc7\\x2e\\x40\\xdd\\x49\\xe4\\xf3\\xae\\x8c\\x0f\\x81\\x9a\\x79\\x39\\xb2\\xe7\\x36\\xe3\\x81\\xf5\\x82\\x3c\\xbc\\x61\\xb2\\xed\\x01\\xd9\\xb0\\x5c\\xf8\\xb1\\x46\\x48\\xa4\\x8b\\x0d\\x7c\\xbe\\x88\\x2a\\xc1\\x6c\\xad\\xd8\\xc4\\x2a\\xa2\\xc7\\x02\\x46\\x34\\x7b\\x4d\\x84\\x95\\x36\\xa7\\xac\\x22\\xc7\\x20\\xda\\x3c\\xf1\\x78\\x72\\x5e\\xe5\\x57\\xa9\\x2c\\x25\\xb1\\x2b\\x8b\\x95\\x6d\\x3b\\xf4\\x80\\x2e\\x9e\\x8a\\x15\\xb5\\xab\\x75\\x42\\x35\\xcc\\xa0\\xe5\\xb7\\xe5\\x5e\\x4a\\xec\\xe4\\x5a\\x47\\xe0\\x84\\xce\\x14\\x47\\x44\\x05\\x98\\xef\\x5d\\x4f\\x5f\\xdc\\x2c\\x98\\xa5\\xad\\x13\\x6c\\xff\\xbf\\x87\\xd3\\xcf\\x52\\xf6\\x73\\x8c\\xca\\x79\\x48\\x35\\x60\\x92\\x07\\x8f\\xdf\\x25\\x45\\x77\\xf5\\x59\\x69\\xa0\\xc6\\x52\\x46\\xda\\xc8\\x09\\xa2\\xfc\\xa1\\xf6\\x0a\\x1d\\x92\\x98\\x77\\xb9\\xa6\\x54\\x0e\\x88\\xa9\\xe6\\xe9\\x15\\x59\\x38\\xd2\\x2c\\x68\\x7e\\x63\\xb3\\x87\\x53\\x4d\\x38\\x5e\\x89\\x61\\xe5\\x88\\x67\\x43\\xf9\\x5f\\x4a\\x70\\x80\\xd9\\x16\\x62\\x45\\x17\\xb1\\x53\\x36\\x03\\x0a\\x46\\x71\\x4b\\x16\\x8b\\x83\\xd6\\xf9\\xcc\\xe0\\x60\\x66\\x49\\xc0\\x1f\\x0a\\x1d\\x0a\\x2a\\x53\\xf5\\xe3\\x78\\xf6\\xaa\\x98\\xc3\\x84\\xaa\\xfb\\x3e\\xef\\xdb\\x34\\x21\\xfa\\x3a\\xc9\\x8a\\x0d\\x3a\\x9c\\x02\\x9c\\x23\\x00\\xae\\x02\\x41\\x06\\x7d\\x1a\\x4f\\xc9\\x2e\\x43\\x86\\x88\\xea\\x88\\x9f\\xcb\\x1a\\x1a\\x9e\\x86\\x34\\xb9\\x16\\xc6\\x0b\\xaa\\x0c\\x18\\xbf\\xcd\\x13\\x9b\\xfe\\x30\\x17\\xbf\\xbe\\x16\\x29\\x13\\x43\\xce\\x86\\x05\\xbb\\x78\\x72\\x55\\x8c\\x6b\\x5f\\xd5\\x6d\\xfd\\x22\\x15\\x77\\xed\\xcf\\xfa\\xa8\\xbd\\xa3\\x4d\\x7a\\x11\\xab\\x8c\\xb2\\x78\\x28\\x8e\\x58\\x34\\x84\\x26\\x76\\xfc\\xcf\\xfa\\xa9\\x11\\x1b\\xce\\xd2\\xb3\\x57\\x5f\\xdd\\x49\\x62\\x1b\\x76\\xe8\\xd1\\x29\\xb6\\x17\\x00\\xee\\xab\\x03\\x14\\xef\\x94\\xd5\\x50\\x50\\x6a\\x4b\\x8d\\x1e\\xe6\\x55\\x08\\xd8\\x9d\\x0e\\x99\\xe9\\x33\\x6b\\x41\\xd9\\xf7\\x4a\\xa4\\xd7\\x22\\x11\\x4d\\xe0\\xf3\\x1e\\xcf\\x00\\xb0\\x97\\xf5\\x3c\\x9a\\xca\\x9c\\x7a\\x28\\x5b\\x58\\xa3\\x5d\\x70\\x29\\x8c\\x5c\\x34\\xf7\\x4b\\x4a\\x70\\x53\\x08\\x03\\x31\\x00\\x34\\x9f\\x0c\\x62\\xf9\\xc2\\xeb\\xf7\\xde\\xad\\x0a\\x77\\xb2\\x98\\xeb\"},\n{{0x1a,0x7a,0x3c,0x2f,0x54,0x81,0x13,0x1b,0xe5,0xf8,0x68,0x45,0x6a,0xa2,0xfa,0x90,0xe5,0x6d,0x52,0xcb,0x72,0x1c,0x71,0x84,0xeb,0xff,0x06,0xfe,0xd2,0xfe,0x68,0x5d,},{0x7c,0x2a,0xd0,0xf2,0xa5,0x70,0x55,0x03,0x26,0xfb,0x50,0xa8,0x50,0x83,0x58,0x21,0x67,0x6d,0xe1,0xde,0x12,0x7f,0x6d,0xe1,0x67,0x02,0x99,0xd8,0x14,0xf6,0xe3,0xce,},{0x97,0x61,0x60,0xfb,0x5b,0xbd,0xab,0xe5,0xc8,0x96,0x2f,0x23,0xba,0xba,0xcf,0x0b,0x0a,0xb4,0x1c,0x2b,0xb1,0x3e,0x9c,0x0d,0x44,0x90,0x67,0xb7,0xde,0xcc,0x7d,0xb4,0xe9,0x4e,0x76,0xa7,0x1b,0x9c,0x0a,0xc4,0xd6,0xaf,0x38,0x7a,0x72,0xa8,0xcd,0x73,0xe3,0xbc,0x63,0xb7,0xed,0x65,0x0b,0xee,0xbf,0x17,0x42,0x4c,0x49,0x0b,0xd6,0x0d,},\"\\xc6\\x28\\x34\\xd9\\xd5\\x5d\\x1a\\x44\\x03\\xe9\\x25\\xd0\\xa5\\xb5\\x52\\xda\\x17\\x4c\\x02\\xf4\\xe9\\x45\\xde\\xc3\\x38\\xc1\\xbb\\xb2\\xae\\xb4\\xff\\x40\\x02\\x0e\\xf7\\x0f\\xf5\\x05\\x20\\x5c\\xf8\\x81\\xb6\\x29\\x96\\x0a\\xbd\\x62\\x76\\x4e\\x5a\\x54\\xf2\\xb5\\x10\\x56\\x67\\xb1\\x1c\\x7d\\x5b\\x7a\\x4c\\xcc\\x3f\\x48\\x8b\\xdd\\xdb\\x95\\x8a\\x7b\\xe9\\x54\\x62\\x07\\xe6\\xc4\\x67\\x18\\x97\\xc0\\x53\\x50\\x8e\\x1f\\xd8\\x32\\x22\\x13\\x0a\\x79\\x33\\x97\\x6d\\x2b\\xec\\x61\\x4e\\xd8\\xf9\\xb6\\xa6\\xb9\\xf4\\xef\\xb2\\xa5\\x8b\\x9d\\x00\\x5b\\x94\\x3e\\x42\\xf1\\x71\\xb7\\x09\\xa7\\x31\\x30\\x70\\xcb\\x2e\\x06\\x8d\\xa3\\x9c\\xf9\\x99\\x22\\xb6\\x9e\\x28\\x5c\\x82\\xad\\x97\\xf2\\xd6\\xc7\\x79\\x22\\xca\\xe2\\xb5\\xe3\\x20\\xe8\\x35\\x77\\xc0\\xd0\\x88\\x76\\x1e\\xc8\\x81\\x52\\xc2\\x97\\x49\\x29\\x78\\xa9\\xd7\\xa3\\xff\\x67\\xed\\xe4\\x4c\\x2a\\x70\\x7c\\xf3\\xe2\\x35\\x2e\\x23\\x2f\\x53\\xc8\\x78\\x2b\\xa4\\x89\\x28\\xa9\\x7f\\x8a\\x36\\xb2\\x0a\\x41\\x68\\x16\\xe9\\x45\\x79\\xb9\\xd7\\x25\\x0a\\x29\\xdc\\x84\\x70\\xf6\\x3a\\x70\\x58\\xe2\\xd2\\xa9\\x9d\\x6f\\x0c\\xcb\\x53\\x0d\\xf5\\x96\\x95\\x05\\xef\\x5c\\x78\\x44\\xeb\\x16\\x7d\\x20\\xf4\\x12\\xa5\\x08\\xfa\\xb1\\xf8\\xcd\\x9c\\x20\\xc5\\xeb\\x9a\\x41\\x7a\\x54\\x12\\xb5\\xda\\x6a\\x57\\x13\\x57\\x59\\xfa\\xb1\\x7f\\x63\\x14\\xf6\\x8d\\xf3\\x5b\\x17\\x72\\x42\\x14\\x43\\x67\\x6f\\x31\\x25\\x79\\xaf\\x6b\\x14\\x11\\x53\\x5a\\xda\\x8f\\x76\\x01\\x2b\\x69\\xbb\\xeb\\x60\\xb2\\x89\\x7e\\xe6\\x60\\x7c\\xb3\\x69\\xcd\\xf5\\x2f\\x4f\\x6d\\xdf\\x88\\xcd\\xb2\\x63\\x0d\\x78\\x89\\x6f\\x13\\x61\\xfe\\xa2\\x2a\\xe6\\x34\\x21\\x76\\x96\\xff\\x11\\x4f\\xb4\\x2d\\xbe\\x4f\\x43\\x46\\xf1\\xbe\\x5b\\x57\\xad\\xb3\\x84\\xae\\x7e\\x49\\xb4\\x1f\\x74\\xb3\\x1b\\x9a\\x62\\xbc\\x69\\xdc\\xa1\\x65\\x89\\xc6\\x34\\xeb\\x9d\\x7c\\x6c\\x94\\xf8\\xec\\xe4\\x4b\\x60\\x62\\x8f\\x98\\xe1\\x02\\x4c\\xf3\\x2e\\x3e\\x3d\\xd6\\xdc\\xe5\\x5a\\x12\\x22\\x53\\x2f\\x49\\x0d\\x63\\xe6\\xa2\\x75\\x28\\x1c\\x0f\\x3a\\x6c\\x10\\x18\\x91\\xb8\\xd5\\x7a\\x45\\xde\\x11\\xde\\x35\\xeb\\xb1\\x51\\xc0\\xdc\\xd7\\x5e\\x6c\\x05\\x0b\\x3c\\xd8\\xba\\xba\\xe8\\x45\\xc3\\x9f\\x66\\xc3\\x6c\\x77\\xcd\\xe0\\x5b\\x68\\x3e\\x4f\\xb0\\x10\\x3d\\x93\\xe7\\x65\\x93\\x35\\xc8\\x7f\\xc0\\xe3\\x23\\x5b\\x2e\\x82\\x48\\x8c\\xda\\xbe\\xb5\\xc5\\xc8\\x75\\x80\\x87\\x45\\xee\\xa9\\x2d\\xe8\\x6b\\x8e\\xfc\\xb6\\x3e\\x16\\xd0\\x82\\x91\\x9a\\xee\\x2e\\x92\\x89\\x9c\\xb0\\xbc\\xf1\\xc1\\x42\\x15\\x77\\xa4\\xa0\\xd9\\xdb\\x09\\xee\\x1f\\x9f\\xeb\\x92\\xa5\\x38\\x21\\x03\\xcf\\x7c\\x32\\xcf\\xe4\\x63\\x72\\x5a\\xe4\\x86\\x6d\\xaa\\xfe\\xda\\x05\\x34\\xc1\\x69\\xf8\\xf9\\xbe\\x40\\x4f\\x3b\\xaa\\xe1\\x23\\xfa\\x76\\x8a\\xce\\x46\\x17\\x8d\\x4b\\x9b\\xbc\\x5b\\xd7\\xae\\xec\\x79\\x03\\xb0\\xa5\\xbc\\x57\\x53\\x89\\x86\\xee\\x09\\xe0\\x7e\\x32\\x07\\x7b\\x3b\\x9d\\xe5\\x0d\\xd1\\x96\\x7a\\x37\\x2c\\x38\\x5a\\xc8\\x86\\x28\\x7c\\x18\\x45\\x1a\\x64\\xef\\xb3\\x7d\\x05\\x6f\\x9f\\x41\\x94\\xc0\\x8b\\x1e\\x3e\\xc9\\x70\\x22\\x26\\x7b\\xf0\\x04\\x3c\\x13\\xd2\\x6b\\x9c\\xe1\\xf5\\x39\\x05\\xf6\\xe4\\x1b\\x3d\\x99\\xdc\\x81\\xb3\\x31\\x90\\x9b\\x72\\x26\\x66\\xef\\x24\\x32\\xe6\\xaf\\x8a\\x45\\x31\\x07\\x53\\x12\\x30\\xce\\x4a\\x1a\\xf8\\xee\\xd6\\x26\\xda\\x22\\x3d\\xa7\\x6b\\x46\\x50\\x7e\\x33\\xd7\\xcd\\xbd\\xe0\\x2d\\x41\\x10\\x40\\xc8\\x9a\\x11\\xd9\\x51\\x56\\xed\\x4a\\xc2\\x60\\x5b\\x82\\x69\\x39\\xc6\\xcf\\x87\\x7b\\x4e\\xe7\\x36\\xc5\\xda\\x77\\xcf\\x46\\x50\\xa9\\x99\\x7a\\x3b\\x9c\\xf4\\x6a\\x82\\xba\\x2b\\xc0\\x13\\x33\\xc0\\x44\\x78\\xb5\\xc9\\x2e\\x24\\x98\\xbd\\x00\\x2f\\x01\\x31\\x40\\xae\\xdb\\x30\\x1b\\x95\\x99\\x3d\\x1d\\x75\\x08\\x70\\xd9\\x88\"},\n{{0x19,0x1a,0x1d,0x90,0x32,0x1c,0x7f,0x4e,0x74,0x94,0xbb,0x98,0x29,0x09,0xa9,0xeb,0x40,0xc3,0x34,0x1d,0xd3,0x2a,0xe4,0xd9,0x67,0x50,0xb7,0xd0,0x29,0x66,0xb4,0x0f,},{0x95,0x62,0xd9,0xe2,0x13,0xf1,0x45,0xc4,0x56,0x93,0x5b,0x70,0x31,0xc6,0x80,0x66,0x9f,0x8b,0xbd,0x31,0xa4,0xc2,0xed,0x3c,0x91,0xc4,0x00,0x2a,0x56,0x29,0xe9,0x7b,},{0x74,0xcb,0x02,0x8d,0xc6,0xb7,0x5b,0x37,0xa1,0xda,0xea,0x1c,0xf8,0x84,0x65,0xdb,0x83,0xa0,0x09,0x3f,0xec,0xb2,0x2d,0x99,0xba,0x85,0x5e,0x9a,0xb5,0x9d,0x05,0xcb,0x22,0xc8,0x7d,0x0b,0x09,0xdf,0x7c,0x11,0x62,0x13,0xba,0xa8,0xf1,0x89,0xb2,0x70,0x3f,0xf9,0x53,0xcd,0x20,0x2e,0xb9,0xde,0xa3,0x97,0x6e,0xe8,0x8f,0x5f,0xa7,0x03,},\"\\x85\\x89\\x0d\\xb4\\xe2\\xfb\\xce\\x09\\x3d\\xde\\x5a\\x80\\xbf\\x8f\\xe0\\x9a\\x98\\x4b\\x83\\xa4\\x9b\\x7c\\xcb\\x5d\\x4b\\x06\\xcd\\xaf\\xdd\\xd3\\x82\\xe4\\xb8\\xa8\\xa5\\x05\\x30\\xe8\\x2c\\x20\\x06\\x12\\xc9\\xd7\\xd8\\xa0\\x89\\xbc\\x8a\\xa8\\x45\\xc3\\xcf\\xcc\\x38\\xa6\\x19\\x5d\\x21\\xc2\\x61\\x8c\\x3d\\xba\\x2b\\x57\\x09\\x20\\xec\\xcf\\xcd\\x23\\x6f\\x17\\xf0\\x8d\\x81\\x42\\x68\\xf8\\x82\\x24\\x2d\\xdf\\x07\\x02\\xda\\x87\\x85\\xf4\\x07\\xaa\\x8f\\x86\\xfe\\xcf\\xa9\\x03\\xc4\\x8d\\xa8\\x3f\\x83\\x97\\x77\\xeb\\x6b\\x4a\\x2b\\xbf\\x5d\\xf7\\xa4\\xda\\x53\\x47\\x5a\\xf1\\xff\\xe4\\x4b\\x5f\\xe0\\x07\\x2b\\x8f\\xbf\\x3d\\x26\\xe6\\xd8\\x9e\\xa6\\x7d\\x8a\\xc8\\x45\\x94\\x92\\x89\\x0a\\xda\\x65\\x7e\\xb3\\xdc\\x24\\x92\\xb8\\x8d\\xe1\\x75\\xb4\\xbb\\xa1\\xa5\\x08\\x06\\x4d\\x61\\x96\\x74\\xaa\\xae\\x2a\\xf0\\x9d\\x31\\xa5\\xc2\\x7c\\x8d\\x5d\\x5a\\x29\\xb0\\x37\\x79\\xf4\\x28\\x6b\\x89\\x66\\xce\\x40\\x7e\\x6f\\xf6\\x92\\xfb\\x94\\x25\\x20\\xa9\\x93\\x8d\\x69\\xcc\\x70\\xac\\xb0\\x6b\\x01\\x4b\\x6d\\xfc\\x19\\x83\\x42\\x06\\xcf\\x1a\\xc6\\xc4\\x48\\xae\\x6f\\x07\\x80\\x25\\xb5\\x5f\\x3d\\x82\\x72\\x01\\x26\\x8a\\x92\\xad\\xd9\\xad\\x17\\x8e\\xf7\\x6a\\x29\\x89\\xfe\\xdc\\x6e\\x39\\xf4\\xeb\\xb9\\xf9\\x6c\\x9b\\x83\\x52\\x69\\x4f\\xa5\\x4f\\xa0\\x22\\x01\\x9c\\x0e\\xc0\\x01\\x2d\\x0d\\x76\\x9e\\x23\\x67\\x80\\x3f\\x92\\x5f\\x17\\x5f\\x9f\\xb9\\xcb\\xec\\x4a\\x0c\\x9c\\x1e\\x2c\\x83\\xea\\x57\\xe6\\xa9\\x2a\\x17\\xf5\\x55\\xca\\xb9\\x34\\x27\\x1e\\x72\\xc8\\xcc\\x32\\x15\\xfc\\xb8\\x7c\\x20\\x53\\x9b\\xf1\\x42\\x77\\xb1\\xbf\\xbd\\x6e\\x58\\x80\\xef\\x95\\x3f\\xc7\\x5f\\x23\\xc0\\xdd\\x4f\\xcc\\x1e\\x0b\\xe3\\x40\\xaf\\x94\\x7d\\xe0\\x2e\\x87\\x7f\\xd5\\xc7\\x7d\\xd1\\xdf\\x7b\\x41\\x4b\\x5c\\x0b\\x40\\xc7\\x49\\x56\\xa5\\x45\\xa1\\x15\\xb0\\xc6\\x99\\x3a\\xb2\\x33\\xb7\\xe7\\x2c\\x82\\x2b\\x6b\\x33\\x81\\xbb\\x1f\\xc1\\x08\\x75\\xbf\\xfe\\x3e\\x2e\\xd1\\x19\\x0f\\xa3\\x3f\\xc1\\x5d\\xa0\\x83\\x79\\x4f\\xcc\\x2c\\x5b\\xf5\\xa0\\x79\\x09\\x06\\x3c\\xb2\\x89\\xa0\\x8a\\x2c\\x8a\\x33\\xd3\\x43\\x84\\x2c\\x2d\\x6a\\x3c\\xfa\\x2a\\x16\\xca\\x2e\\xaf\\xca\\xb7\\xea\\x10\\x0d\\x1c\\x71\\x4b\\xaa\\xbb\\x71\\x49\\xf0\\x7e\\x25\\xde\\xe3\\x23\\xe7\\x80\\x75\\x7d\\xfa\\x80\\x16\\xfa\\xa7\\xc0\\x62\\x62\\x22\\xc3\\x65\\xf8\\xf2\\xf6\\x68\\x7d\\x1d\\xed\\x23\\x4f\\x79\\x9c\\xc5\\x0d\\x1c\\xd2\\x6b\\x4c\\xfa\\x40\\x45\\x91\\x70\\x56\\xfc\\x79\\xc3\\xb8\\x8b\\x2b\\x19\\x08\\xe3\\x72\\xdf\\x66\\xda\\xc8\\x73\\x46\\x31\\x64\\x83\\x49\\xbc\\x37\\xfa\\x34\\xb2\\x5f\\xff\\x3b\\x07\\x47\\xb6\\xbc\\x16\\xb9\\x4e\\x3e\\x58\\x95\\xe4\\xbb\\xd9\\x3d\\x47\\x8a\\x6c\\x1f\\x75\\xe4\\xfa\\x30\\xfa\\xa9\\x22\\x04\\x9e\\xd4\\xc5\\x0f\\x12\\xf4\\xb3\\x12\\xa8\\x97\\x4d\\x0f\\xed\\x8d\\x44\\x25\\x5d\\xcb\\x2b\\xf0\\xfe\\xbe\\x47\\xfb\\x3f\\xb8\\xed\\x99\\x03\\xb5\\xba\\x4c\\xa1\\x8e\\x3c\\xc6\\x76\\x2c\\xfa\\x1e\\xaf\\x04\\xdf\\xa9\\x44\\xd4\\x96\\xe0\\xfe\\x8b\\xb7\\xdc\\x04\\x54\\x51\\x39\\x6b\\xfa\\xba\\x54\\x85\\xd9\\xd5\\xf3\\x91\\xa9\\x54\\xc3\\x71\\x42\\x53\\xcc\\xd9\\xb1\\x99\\x64\\xd4\\x28\\x06\\x80\\x72\\x07\\x83\\x03\\x6b\\x3a\\xbf\\xaf\\x28\\x84\\x58\\x3e\\xa5\\xbd\\xbc\\xf6\\x9d\\x08\\x89\\x7a\\xb2\\x88\\x31\\x46\\x35\\xab\\xb4\\xc2\\x96\\x4b\\x71\\xad\\x92\\x91\\xfe\\xb5\\xb6\\x1f\\x80\\xe9\\xb0\\xcc\\x07\\xf9\\x12\\xa8\\xe5\\x59\\x8d\\x55\\x48\\xde\\xfe\\x0e\\xea\\x1c\\x44\\x85\\x73\\x71\\x0a\\xac\\xdd\\xb1\\x52\\xf9\\x3c\\x7c\\x6f\\xd3\\xf7\\xe4\\xed\\x9f\\x74\\x42\\xa6\\xb9\\x00\\xf2\\x3c\\x3c\\x54\\x4c\\xe5\\xc9\\xba\\x5f\\x5e\\x92\\xaa\\xfd\\x11\\xc9\\xff\\x5f\\x79\\xc0\\x8b\\x9d\\x04\\x5f\\xef\\x07\\x97\\x06\\x25\\xf6\\x2e\\x2f\\x43\\x34\\xa4\\xd6\\x64\\xca\\xf7\"},\n{{0x62,0x85,0x63,0xaa,0x3e,0xe2,0xfc,0x61,0x1b,0xcf,0xf7,0x8b,0xfb,0x2a,0x75,0xe9,0xfd,0x87,0x80,0xe8,0x7a,0x93,0x94,0x99,0xa6,0x1b,0xea,0xa6,0xa4,0xb7,0x19,0x13,},{0xda,0x20,0x61,0x6e,0xe4,0xa4,0x1c,0x2e,0xbf,0xdc,0x50,0xab,0x54,0x95,0x3b,0x6d,0x38,0x7b,0x06,0xc6,0xde,0xf7,0x57,0x96,0xb0,0x88,0x09,0x56,0x5c,0x6c,0xf8,0x05,},{0xc9,0xa6,0xaa,0xa9,0xb4,0xe1,0xcc,0xe1,0xb5,0x84,0x45,0x72,0x5f,0x61,0xf5,0x52,0xc8,0xfb,0x45,0x83,0x1f,0x03,0x48,0x27,0x98,0xf0,0x1f,0x66,0x3e,0x99,0x83,0xdb,0x1a,0x82,0xfd,0x33,0xab,0xa3,0xec,0xcb,0x96,0x22,0x64,0x26,0xd5,0x0a,0xe1,0x7c,0xc5,0x12,0x74,0xce,0x18,0xa3,0x88,0x60,0xf4,0x0b,0x2f,0x82,0x36,0x1b,0x5c,0x03,},\"\\x05\\x6f\\xb9\\x54\\xfb\\xe6\\xa6\\x01\\x4f\\xad\\xac\\x1e\\x1a\\x9f\\x56\\xcc\\x08\\xaf\\x37\\x34\\x8e\\xba\\xf6\\x92\\x06\\x83\\x38\\x4e\\xfa\\x47\\x62\\x6c\\xcd\\xdf\\xea\\xd2\\xd5\\xe9\\xe8\\xcf\\xff\\x45\\xf7\\xac\\x63\\xde\\x63\\xf6\\x9d\\x12\\x84\\x8c\\xe3\\xc0\\xef\\x1f\\x53\\x0a\\xde\\x43\\x0f\\x0a\\xfd\\x5d\\x8e\\xcf\\xd9\\xff\\xd6\\x0a\\x79\\x74\\x6a\\x2c\\x5b\\xee\\xdd\\x3e\\x67\\x24\\x99\\x82\\xf8\\xb6\\x09\\x2e\\xe2\\xd3\\x40\\x47\\xaf\\x88\\xa8\\x1f\\xea\\xb5\\xd5\\x2b\\x47\\xd5\\xb3\\xf7\\x6c\\x20\\x41\\x72\\x5f\\x6f\\x81\\x32\\x93\\x05\\x0a\\xaa\\x83\\x4b\\x01\\xa3\\xa5\\x8f\\x69\\xaa\\x4a\\x8c\\xa6\\x1f\\x5b\\x74\\x6f\\x60\\x0f\\x3d\\x45\\x2c\\x62\\x82\\xff\\xdc\\xa4\\x42\\x9b\\x93\\x38\\x96\\x7b\\xa3\\xa7\\x26\\x66\\x90\\xae\\xc7\\x5e\\xbf\\xbf\\x7b\\xe9\\x8d\\x99\\x9b\\x03\\xed\\xdc\\x72\\x92\\x58\\x1b\\x0d\\x69\\xe3\\x0a\\x03\\x51\\xa1\\x51\\xdb\\x70\\x41\\x2b\\x0b\\xfd\\x43\\xd3\\xba\\xa9\\xd4\\x56\\xcb\\x3e\\x0b\\x4f\\xc1\\x9c\\xb0\\x9e\\x6c\\xad\\xcb\\x6d\\x3f\\x3b\\xe5\\x13\\x7c\\xc7\\xa8\\xd3\\x21\\x9e\\xc2\\x03\\x6e\\xc6\\x70\\xed\\x7e\\xc5\\x23\\xb1\\xb1\\xc6\\x87\\xb5\\x46\\x53\\x07\\x88\\x2f\\xe3\\x8d\\x74\\x72\\xd0\\xba\\x87\\xa4\\x71\\x86\\x83\\x09\\xd2\\xf7\\x73\\xff\\x24\\xc8\\x7d\\x39\\xc1\\x6b\\x70\\x8a\\x4e\\xd9\\xaf\\x43\\xf7\\x4c\\x8d\\x85\\xcf\\xe8\\xab\\x54\\x06\\x90\\x7e\\x94\\x1a\\x14\\x97\\x0e\\x20\\x9c\\x29\\xff\\x7e\\xd8\\xa2\\xf9\\x35\\xae\\x41\\x70\\x9f\\x27\\x0d\\x0d\\x08\\x55\\x5e\\xf7\\xaf\\x2e\\xdf\\xe4\\x0d\\xf3\\x99\\x22\\x3c\\x78\\x5a\\x43\\xe7\\xf3\\x69\\x15\\x89\\xe2\\xea\\x4c\\x03\\x6f\\x11\\xd0\\x3d\\x7d\\x1e\\xea\\x14\\xf6\\x20\\x03\\x53\\x25\\xcf\\x2b\\x33\\xba\\xf3\\x86\\x39\\x3e\\x8a\\x97\\x2a\\x7a\\xf6\\xcd\\x9b\\x85\\x43\\xb3\\x2e\\x25\\x33\\xd1\\xfc\\xc3\\x17\\x7f\\xd9\\x6d\\x1e\\x13\\xbf\\x8b\\x68\\xde\\xb2\\x22\\xf9\\x44\\x97\\x26\\x5d\\x3c\\xcb\\x34\\x57\\x51\\xbd\\x5b\\x66\\x90\\x78\\x08\\x19\\x98\\xd6\\x08\\xca\\x5f\\xdc\\x13\\x48\\x39\\xd4\\xed\\x2b\\xeb\\xb2\\x95\\x2f\\xea\\x5a\\x39\\xc6\\xf0\\x33\\xc1\\x55\\x8f\\x69\\x8c\\xe4\\x94\\x6e\\x4f\\x6c\\x08\\xaf\\x87\\x4f\\x27\\x35\\x7f\\x87\\x0e\\xbe\\xeb\\x21\\x99\\x97\\x6f\\xfa\\xef\\xac\\x95\\x1f\\x8e\\x17\\xfe\\x7d\\x08\\x21\\xe1\\xb9\\x2a\\x90\\xaa\\x4e\\x9d\\xef\\xd3\\xfa\\xfd\\xa0\\x52\\xa4\\x44\\x47\\x6d\\xb1\\xce\\x38\\xa9\\xe1\\x76\\xe8\\x41\\x18\\x9a\\xbd\\x8f\\xec\\xde\\x0f\\xbc\\x5c\\xb5\\x5f\\x51\\x1f\\x5f\\xde\\x07\\xea\\x97\\xde\\xb3\\x9b\\x7a\\xa8\\xdc\\x84\\xa3\\x94\\x6a\\x6c\\xf9\\x26\\xd3\\x9b\\x95\\xc1\\x1a\\xf9\\xd6\\x4d\\x98\\xb8\\x07\\xf4\\x70\\x4d\\x0a\\x2b\\xda\\x97\\xda\\xd9\\x88\\x1a\\xda\\x1b\\xf6\\x63\\x63\\x66\\xe6\\x0a\\x52\\x2b\\x48\\x21\\x04\\x78\\x61\\xc7\\xaa\\xe2\\x14\\x6a\\x02\\xee\\xf6\\xb2\\x5d\\x51\\x37\\x1a\\x0f\\x17\\xd2\\x4b\\xc1\\x87\\xdc\\xdd\\x05\\xd5\\x41\\xc2\\xf7\\x22\\x01\\x42\\x79\\x15\\xa3\\x92\\x8c\\xd3\\x78\\x68\\x91\\x03\\xac\\x50\\xb3\\x3f\\x87\\xa4\\x7e\\x8c\\xdf\\xa6\\x87\\xa5\\xf0\\xaf\\x8a\\x56\\x73\\x1d\\xab\\xe6\\x62\\xf4\\xf2\\x83\\x6d\\xe0\\xba\\x8f\\xaf\\xd8\\x6a\\x38\\x54\\xbc\\xa0\\x12\\xd7\\x08\\x8a\\x00\\xb9\\x85\\x4c\\x2d\\x3c\\x70\\x8d\\xdf\\x58\\xfa\\xa3\\x55\\xa8\\x9a\\xfc\\x2c\\x80\\xf3\\xf5\\x33\\x6d\\xa0\\x1d\\x72\\xa2\\x77\\x1a\\x05\\x58\\x13\\xfb\\x35\\x33\\x0f\\x7d\\x2e\\x01\\xb1\\xd1\\x2d\\xaa\\x95\\xed\\x55\\xd3\\xbd\\xc5\\xdf\\x77\\x39\\xcb\\xc3\\xca\\x09\\x7a\\x41\\xb6\\xb2\\xbd\\x7f\\x0f\\xf9\\xdd\\x1d\\x86\\x58\\x98\\x3b\\xa3\\xff\\x79\\x20\\xc1\\x5f\\x29\\x2a\\x1e\\xf9\\xfc\\xad\\xa1\\xc6\\x07\\xec\\xb4\\x5d\\x3a\\x73\\xc9\\xff\\xd4\\x2f\\x3e\\x16\\x02\\x2f\\xdf\\xe1\\x27\\x44\\x92\\x63\\x95\\xf7\\x4f\\xb3\\x11\\x17\\x93\\xfa\\x92\\x81\\x82\\x1a\\x66\\xa0\\x1d\"},\n{{0x91,0x41,0xf7,0x9e,0xd3,0x0b,0xf6,0x00,0x61,0x1a,0x13,0xf3,0x67,0xb4,0x03,0x96,0xf2,0xec,0x83,0x9c,0x56,0x12,0xbb,0xf1,0xe6,0xe4,0x97,0xf8,0x39,0x54,0xbc,0x88,},{0xf1,0x4e,0xda,0x96,0x26,0x40,0xbe,0xcb,0x66,0xc4,0xd1,0xf1,0xa0,0x21,0x11,0x02,0x51,0x91,0x7b,0x8b,0x1d,0x34,0x82,0x82,0x98,0xd3,0x21,0x45,0xba,0xf6,0xe5,0xd9,},{0xcf,0x20,0x2d,0x7f,0x2f,0x9e,0xd1,0x17,0xf4,0x29,0x50,0x2b,0x2a,0x5a,0xff,0x54,0xa7,0xf7,0x51,0xd2,0x17,0x15,0x15,0xa4,0xd2,0x03,0x75,0x34,0x46,0xdf,0x0e,0xba,0xc8,0x69,0x84,0xc8,0x8b,0xd4,0x2b,0xd1,0xfb,0x8d,0xcb,0x40,0x87,0x76,0x72,0x2a,0x38,0xf3,0x2c,0xce,0xb2,0x5f,0x32,0xa2,0x5d,0x73,0x93,0xf1,0x38,0xee,0xdf,0x0a,},\"\\x8f\\xec\\xaa\\x7a\\xe9\\xa3\\xd4\\xa4\\x85\\x1a\\x66\\x36\\x2b\\x36\\x6e\\x16\\x7b\\x9f\\x43\\x00\\xfd\\xab\\x20\\x56\\x54\\x75\\x19\\x87\\xf0\\x85\\xde\\x61\\xbe\\xc9\\x34\\x4a\\xa8\\x6f\\x5e\\x5c\\x64\\x77\\x51\\x4c\\x28\\x04\\xce\\xd7\\xac\\x0c\\xd0\\x62\\x85\\x29\\xa3\\xa1\\x59\\x92\\x36\\xed\\x67\\xbe\\xbe\\x1f\\x2e\\x95\\xaa\\x15\\x1f\\xe0\\xf3\\xb3\\x01\\x1a\\x1d\\x4b\\xe9\\x90\\x1c\\xaf\\xab\\x2f\\x18\\x91\\x90\\x4d\\x4b\\xff\\x01\\x28\\xc1\\xd3\\x5e\\xce\\xcb\\x32\\x2b\\x3c\\xc0\\x1d\\xac\\xc5\\xae\\x3d\\xca\\x69\\x14\\xa7\\xd3\\x4d\\xa8\\xc9\\x65\\x7b\\x95\\x0f\\x89\\xd1\\xd6\\xae\\xc3\\x29\\x9b\\xb6\\x90\\x11\\x10\\x71\\xfa\\x87\\x28\\x27\\x74\\x94\\x3d\\x96\\xa4\\xab\\x7c\\x3d\\x6d\\xe7\\xd1\\xbf\\x11\\x93\\x63\\x06\\x8c\\xc8\\x2d\\x45\\xe4\\xb7\\x64\\x54\\xc6\\x08\\xbc\\x35\\x66\\xb7\\xf9\\xb3\\x85\\xcc\\x7e\\xb3\\x8e\\xe4\\x29\\xaf\\xc2\\xda\\x99\\x66\\x9f\\xc5\\xc1\\xbe\\x82\\x16\\x1a\\x1b\\x0c\\x33\\xf7\\xba\\x9a\\xd4\\x41\\x9d\\x20\\x62\\x97\\x19\\x01\\xdb\\x00\\x3b\\xfa\\x23\\xc4\\x47\\x14\\x99\\x5c\\xb0\\x6b\\xfa\\x96\\x6e\\x50\\x23\\xaa\\x93\\x46\\xfd\\x37\\x5a\\xe2\\xa1\\xe8\\x40\\x84\\x31\\x4d\\xf3\\xf0\\x8c\\xe2\\x08\\x00\\xc2\\xc2\\xad\\xfb\\xb8\\x13\\x66\\xf6\\xb1\\x04\\x24\\x3d\\x62\\xd5\\x04\\x1e\\x72\\x73\\x43\\x3f\\x17\\x58\\x1b\\xf9\\x3f\\x4c\\x61\\x46\\xfa\\x96\\x6f\\x63\\x8a\\xb0\\x7e\\xa1\\x66\\x94\\xa7\\xce\\x30\\x5c\\xc6\\x09\\xa6\\xe1\\x06\\x23\\xff\\x7f\\x6c\\x79\\x16\\xb6\\xe4\\xdb\\xde\\xbb\\x7b\\x52\\xec\\xa7\\xf0\\xd5\\x18\\x7f\\xf6\\x64\\xd7\\xc3\\x70\\xed\\x22\\x88\\x6a\\xa2\\x67\\x13\\x29\\xd9\\x28\\xe0\\xa3\\xbe\\xa3\\xb4\\x71\\x1a\\x12\\x8b\\x9a\\xab\\x90\\x26\\x6f\\x86\\x51\\xd2\\x20\\xb9\\xcc\\x1c\\xbf\\x5b\\x1c\\xe7\\x26\\x59\\x31\\x80\\x36\\x90\\xd3\\x29\\x1c\\x01\\xea\\xd4\\xdb\\xc3\\x32\\x9a\\x97\\xe8\\x5c\\x4f\\xe1\\xd3\\x56\\x60\\x8c\\xc9\\xe6\\x0b\\x05\\xbc\\x14\\x83\\x8a\\x86\\x08\\x27\\x9a\\x00\\x61\\xde\\x28\\xff\\x7b\\x8e\\x81\\xf5\\x9c\\x8a\\x8c\\x55\\x23\\x92\\x4c\\x4c\\x48\\x5e\\x6e\\xa8\\x0a\\xc8\\x17\\x50\\xbb\\x0e\\x41\\x9e\\xfc\\x78\\x58\\xcd\\x4a\\xf5\\x0c\\x8b\\x8c\\x80\\x65\\x0f\\xac\\xab\\x4d\\x82\\x58\\xf9\\xca\\xfa\\x03\\x10\\xa0\\x07\\xcc\\xcb\\xc4\\x18\\x5c\\x82\\xfd\\x14\\x6d\\xf1\\xd8\\x11\\x87\\x9d\\xa3\\x65\\x0d\\x57\\x16\\xf1\\x00\\x4b\\x71\\xd2\\xc7\\xf2\\xbd\\x65\\x03\\xc3\\x54\\x58\\x9f\\x86\\x02\\xc9\\x50\\xa1\\xf5\\x13\\x9f\\x81\\x14\\x60\\x75\\x28\\x80\\xa3\\x41\\x11\\x66\\x30\\xe4\\xff\\x84\\x94\\x8e\\x74\\xa9\\xeb\\x35\\x0d\\x64\\xd8\\x29\\x30\\x02\\x20\\x02\\x33\\xf2\\x09\\xb1\\x7d\\x78\\x89\\x7c\\x7c\\xe6\\xce\\x29\\xe2\\x9f\\x82\\xd4\\xad\\x6c\\x61\\xeb\\x79\\xf5\\x73\\x9c\\xb6\\x68\\xb2\\x1a\\x74\\x55\\x55\\xc9\\x6e\\x19\\x52\\x68\\x45\\xe8\\x2c\\x6e\\xd2\\xb1\\xc6\\xbd\\xd6\\x36\\x4b\\x8f\\xc7\\x9b\\xa9\\xa3\\x2d\\xbd\\x3f\\x8b\\x97\\x5e\\xb9\\x23\\x62\\x39\\x58\\xae\\x0d\\xaa\\x4f\\xfa\\x13\\x92\\x17\\xc0\\x0e\\x02\\x1f\\x93\\x7e\\x9b\\x79\\x1c\\x37\\x99\\x1a\\x35\\xe5\\x23\\x1a\\x19\\x14\\xc0\\x45\\xa7\\x87\\x43\\x2f\\x97\\xb8\\xe2\\x06\\x3d\\xb1\\x05\\xe1\\x4d\\xa9\\x79\\xc1\\xc4\\xcb\\xa7\\x85\\x21\\x0e\\xb0\\x20\\x11\\x33\\x4b\\x23\\x0c\\xfb\\x68\\x31\\x99\\x8c\\xcc\\xe2\\x53\\x86\\xf4\\xf3\\xba\\x0d\\xce\\x20\\x06\\xe9\\xc3\\x94\\x0b\\x4d\\x5a\\x56\\xaa\\xcc\\xdc\\xab\\x02\\x71\\x86\\x89\\x81\\x63\\x60\\xf1\\x88\\x52\\xfd\\x19\\x98\\xa9\\x9f\\xce\\x9a\\x04\\xda\\x3f\\x5e\\x23\\xaf\\x94\\xc6\\xe8\\xa5\\xba\\xdf\\xd3\\x93\\x04\\xb9\\xe2\\xa3\\x76\\xa1\\xf9\\xba\\xc0\\x9a\\x85\\xbd\\x04\\x24\\x76\\xe2\\x6b\\x58\\xec\\x73\\xf1\\x23\\x6d\\x41\\xab\\x4b\\x4e\\x7a\\x54\\xde\\xf9\\xd6\\x6a\\x38\\xf8\\xe5\\x46\\xde\\x7b\\x38\\x8e\\x1e\\x7d\\x66\\x81\\xe5\\xe2\\xa0\\x96\\xf1\\x60\"},\n{{0x69,0x5c,0x96,0x0b,0xbb,0x0d,0xd5,0x7f,0xfa,0x36,0x15,0x1c,0x85,0xde,0x73,0x51,0x54,0xfe,0x5a,0xd5,0xf5,0xfc,0x77,0xd0,0x05,0xa0,0xa3,0x20,0x11,0xde,0xb3,0x0c,},{0x34,0x12,0x5e,0x4e,0x21,0xf7,0x89,0xed,0x0e,0x11,0x80,0xc1,0xf6,0x36,0x9c,0x72,0x1d,0xca,0xe9,0x85,0x9b,0x6f,0x7b,0x04,0xf9,0x57,0xe5,0x10,0x01,0xee,0xde,0x8a,},{0x4a,0xf4,0x1c,0x55,0x4d,0x99,0x08,0x12,0x68,0x6c,0x32,0x9a,0x87,0x5c,0x41,0xee,0x24,0xb4,0xa7,0xfd,0x7b,0x3d,0x4f,0x8c,0x8d,0x52,0x75,0xf2,0xe7,0xcb,0x24,0x2b,0x25,0x8b,0x58,0x58,0xa4,0x66,0xde,0x59,0x5c,0xe2,0xa2,0x17,0x7e,0x35,0x1c,0x7f,0x08,0xc7,0xfc,0x4e,0x0b,0xf9,0x7e,0xc5,0xfb,0x2d,0xcb,0x82,0x52,0xd2,0xc9,0x0a,},\"\\x37\\x06\\x69\\x6c\\x7a\\x90\\x66\\x90\\xd0\\xd3\\xb7\\x1e\\x7e\\x21\\x1c\\x7b\\x06\\x71\\x68\\xf3\\xa8\\xf1\\xed\\x98\\x4a\\x0a\\x5e\\x60\\x78\\x59\\x76\\x62\\xe4\\xe7\\x88\\x9d\\x52\\xdb\\x0f\\x78\\xe0\\xd5\\xef\\x0e\\x5f\\x7a\\x0a\\x0f\\x42\\x63\\xb6\\x84\\x8b\\x07\\x25\\xca\\xa4\\xb1\\xce\\xa6\\x98\\x74\\x09\\x51\\x1c\\x8e\\x5e\\x98\\x2d\\x3f\\x5b\\x82\\xbb\\x56\\xa4\\xa7\\x94\\x71\\x21\\x93\\x7f\\x8e\\x10\\x5c\\x5a\\x14\\xb5\\x3e\\x6c\\x37\\xcc\\x71\\x6b\\x1e\\xba\\x92\\x24\\x21\\x82\\x8b\\x04\\x6f\\x68\\x56\\xc4\\x4f\\xab\\xf1\\x3a\\x75\\x16\\xc6\\x2a\\x5f\\xf9\\x85\\x68\\x45\\x0c\\xee\\x78\\xb1\\x40\\x33\\x50\\x47\\xbf\\x1c\\xa7\\x7e\\x15\\x49\\xa8\\x94\\xfe\\xeb\\x07\\x80\\x45\\xe4\\x64\\x18\\x32\\x25\\x3b\\xf6\\x95\\x48\\x54\\x52\\xec\\x36\\x90\\x65\\xa6\\x00\\x29\\xa6\\xc9\\x07\\x7a\\x37\\x9d\\xb2\\x04\\x85\\xea\\x2e\\xdb\\x6c\\x96\\x95\\x47\\xbb\\x26\\x53\\x28\\x9b\\xc6\\xe8\\x1f\\xfc\\xb8\\x4b\\xdb\\xf7\\x73\\xdd\\xea\\x4b\\x37\\x50\\xe9\\xa7\\x23\\x95\\xd1\\x17\\xf6\\x44\\xb0\\xe2\\x20\\x61\\xd4\\xf3\\xbb\\x7c\\x5b\\x61\\x2e\\x4b\\x70\\x39\\x5e\\x07\\x79\\x51\\x6b\\x46\\x65\\x91\\x16\\x90\\x2f\\xd0\\xfb\\xcd\\x23\\x40\\xee\\xa4\\x5e\\x9c\\x23\\xdb\\x25\\x64\\xa5\\xe1\\x1d\\xc7\\x9e\\x8f\\x4b\\x33\\x2a\\x44\\x3e\\xc3\\x5a\\xad\\x96\\x04\\xfe\\x79\\x12\\x52\\x08\\x82\\x95\\xe8\\x4f\\x65\\xa3\\x07\\x31\\x25\\x50\\xd9\\xeb\\xf6\\x1f\\x36\\x7e\\x4a\\x0f\\x2b\\x56\\x23\\xe5\\x3e\\xf6\\xbc\\x13\\x28\\x25\\xfc\\x24\\xeb\\xee\\x4e\\xbf\\x33\\x8c\\xbf\\xb5\\xdf\\x69\\xb3\\x2d\\x03\\x0d\\x44\\x7c\\x44\\xf3\\x13\\xba\\x96\\xfe\\x07\\xbb\\xfe\\x5b\\x01\\x66\\xea\\xec\\xbc\\x61\\x9b\\xb6\\xb2\\xe5\\x92\\x40\\x10\\xba\\x3e\\xc1\\x50\\xff\\x6a\\x69\\xfe\\xc4\\xde\\xd9\\xc4\\x42\\xf9\\x8c\\x15\\xe7\\x7f\\x31\\x9b\\x48\\x43\\xb3\\xb7\\x48\\xb5\\xd2\\x60\\x89\\xa7\\x6c\\x2b\\x83\\x4f\\xf9\\x3c\\x41\\x3e\\x04\\xca\\x95\\x50\\xcd\\x21\\x1c\\xe2\\xd6\\xa5\\x83\\xd7\\x82\\x57\\x50\\x66\\xdb\\x6d\\xd3\\x3e\\x8d\\x5e\\x83\\x74\\x35\\x5d\\x06\\x8a\\x5e\\xb9\\x6f\\x8b\\x3d\\xa8\\xdd\\xdf\\xb5\\xba\\xf5\\xc5\\x96\\xda\\xaf\\x55\\x6a\\x8f\\x2c\\xb5\\x78\\x1e\\x50\\x42\\x32\\x7f\\x92\\xae\\x06\\x21\\xea\\xe0\\x88\\xb5\\xf0\\x13\\x59\\x2e\\x77\\x87\\x3a\\x81\\xd7\\xe0\\x68\\xd7\\xb8\\x33\\x7d\\xb9\\xf1\\x09\\xa8\\x35\\xb4\\x75\\xe5\\xca\\xf7\\xce\\xa5\\xaf\\x3b\\x4a\\xd6\\xd9\\x0b\\xaa\\xf1\\xc7\\x36\\x55\\xec\\x67\\x67\\x47\\xfc\\xdd\\x41\\x77\\x5b\\x4f\\xbe\\x39\\x24\\xc3\\xf4\\x1d\\x8a\\x73\\x75\\x28\\xd1\\x2d\\x61\\x56\\x65\\x3a\\x22\\x35\\x8c\\x68\\x21\\x42\\x6b\\x2c\\x0a\\x33\\xe1\\x63\\x4c\\x62\\xc7\\xc8\\x38\\x56\\x49\\xbc\\x23\\x3e\\x7d\\xaf\\x94\\x39\\xf0\\x9d\\xb9\\xbd\\x11\\xea\\x01\\xe2\\x8b\\x77\\xec\\xbb\\xc4\\x59\\x0e\\x29\\xfd\\xcf\\x0f\\xdd\\xe1\\x52\\xf6\\x47\\x81\\x32\\xfe\\x4c\\x3a\\x5b\\x45\\xa7\\x30\\x5a\\xf6\\xe3\\x81\\xca\\xdd\\x72\\x49\\x6e\\x66\\xbb\\xb8\\x66\\xce\\xa4\\x7f\\x7e\\x7d\\x7e\\x63\\x34\\x16\\x00\\xaf\\x3f\\x49\\xce\\x9c\\x9e\\x4e\\x37\\x39\\x4d\\xf5\\xdf\\x71\\xdc\\x10\\xcd\\x39\\x1f\\xdc\\xb8\\xa1\\x93\\xdc\\x98\\xfc\\x19\\x05\\x9f\\xa3\\xac\\x23\\x0e\\xc5\\x47\\x6b\\xf9\\x4d\\x85\\x55\\x6a\\xce\\x6e\\x1b\\xa3\\x24\\x21\\xbf\\x59\\xdc\\xbe\\x05\\xc5\\xe1\\x5d\\x34\\xc6\\x64\\x4e\\x27\\xd0\\xa0\\x2b\\xe9\\x7f\\xa8\\x38\\x7e\\xe0\\x37\\x06\\xf2\\x2a\\x8f\\x4b\\x3b\\x40\\x40\\xad\\x7d\\x3f\\x8a\\x86\\x97\\x1a\\x20\\xa0\\x9e\\xc8\\x1b\\x76\\x96\\xd8\\x34\\xc5\\x26\\xb8\\xe5\\x1c\\xb9\\x7d\\x27\\x64\\x3f\\x9a\\xbf\\x5e\\x29\\xff\\xd0\\x33\\x3f\\x95\\xde\\x15\\xd1\\x10\\xc2\\x06\\x4c\\xa4\\x94\\x67\\xc1\\x4e\\xf2\\x27\\xf4\\xba\\xbf\\x1a\\x55\\xe7\\xb1\\xcd\\xa0\\x42\\x9c\\xff\\x25\\x6b\\xe3\\x1c\\xf1\\x16\\x71\\x9a\\x81\\xb9\\xc5\\xfb\\x75\\xfd\\xf6\\x4e\"},\n{{0x25,0xcb,0x17,0xfc,0x33,0xd2,0xbf,0x83,0x84,0xae,0x4d,0xf2,0x0c,0x1f,0xad,0x5c,0x35,0xfd,0x76,0x5a,0xff,0xde,0x04,0xb5,0x25,0x6d,0x4d,0xe0,0x1c,0xa8,0xde,0x14,},{0xb8,0x6c,0xa3,0x12,0xfe,0x59,0x85,0x20,0xc6,0x4b,0xe5,0xc7,0x2f,0x5b,0x23,0x81,0x65,0x07,0xf6,0x9e,0x07,0x0f,0x82,0x8e,0x02,0xd2,0xaf,0xcf,0xe1,0x1b,0xfa,0x01,},{0x8c,0xcb,0x0d,0xbc,0xf7,0xcc,0x03,0xe8,0x3e,0x21,0xc5,0x74,0x74,0xaf,0xd3,0xad,0x88,0x98,0x09,0x7b,0x97,0x2e,0xde,0x17,0x5a,0xca,0xae,0x48,0xe3,0xec,0x17,0xb2,0xdb,0x06,0xfc,0x82,0x77,0x6b,0x07,0x51,0xc0,0xf9,0x56,0xfd,0x71,0x96,0xf3,0xd1,0xc9,0x63,0x21,0xa6,0xcf,0x3d,0x89,0x24,0x15,0xd8,0xf8,0xee,0xb4,0xa1,0x41,0x08,},\"\\x4b\\x4a\\x71\\xcb\\xf8\\xcb\\xaf\\x57\\xa7\\x7d\\x4e\\xa1\\x88\\xa6\\xf9\\x64\\x84\\x0f\\x0d\\x71\\x4a\\x5f\\x38\\xa0\\x95\\xa1\\x3b\\x4e\\x57\\x12\\x97\\xa8\\x8b\\x79\\x24\\x17\\xd1\\x61\\x84\\x42\\x7f\\x90\\xe0\\x43\\xdd\\x8a\\x55\\xb7\\xf1\\xc1\\x3e\\x00\\xdf\\xa6\\x05\\x16\\x44\\x5c\\xbe\\x77\\x06\\x8c\\x79\\xc8\\xc3\\x5e\\xbe\\xac\\x33\\x0c\\x33\\xf1\\x12\\x1d\\x05\\x73\\x1a\\x8f\\x51\\x32\\xd6\\x48\\x00\\x73\\x27\\x46\\x41\\x19\\x5a\\x75\\x20\\x21\\x16\\xff\\xf1\\xc3\\x18\\x81\\x71\\x78\\xfd\\xd7\\x68\\xbb\\xdf\\x10\\x5f\\xa0\\x69\\xc7\\xa3\\xd1\\x43\\xfd\\xf5\\xd1\\x7b\\xfa\\xd7\\xc0\\x62\\x4e\\x52\\x92\\x06\\x8f\\xd7\\xbb\\x6d\\x30\\x3b\\x4a\\x27\\xcb\\x20\\xa4\\xe6\\x18\\x75\\x07\\x67\\x87\\xd1\\x9f\\xa6\\xf7\\x29\\xc9\\x4d\\xc0\\xba\\x9b\\x8c\\x0b\\xfd\\x98\\x66\\xda\\x5c\\xb2\\xe7\\xa2\\xcd\\x2e\\xdb\\xdc\\x95\\xac\\x34\\x9e\\x5e\\x5c\\x21\\x72\\xe5\\xa4\\xcf\\x7b\\xd9\\x0c\\xab\\xe2\\xc6\\xe2\\x24\\x59\\x80\\xbd\\x72\\xd0\\xf6\\xf5\\x47\\x98\\x81\\xe8\\xc4\\xc3\\x54\\xf6\\x8a\\xa7\\x28\\x41\\xd0\\xc7\\x3b\\x98\\x6b\\xa5\\x10\\x21\\x20\\x31\\x61\\x02\\x6e\\xe3\\xd7\\x29\\xdd\\xf1\\xa0\\x49\\xff\\xe9\\xeb\\x25\\x43\\x98\\x02\\xf0\\x30\\x11\\xd1\\x44\\xe5\\x0b\\x02\\xbd\\x4a\\xca\\x5e\\x55\\x06\\xd3\\x2f\\xcf\\x69\\xe3\\x2f\\x54\\x25\\x44\\x79\\x8f\\x4e\\x87\\xf7\\x2b\\xdf\\x24\\x33\\xb1\\xff\\x32\\x59\\x29\\x2e\\x1d\\x90\\x81\\x2c\\xff\\xd7\\x9f\\x6a\\x54\\x32\\x70\\xba\\xf2\\x4a\\x3c\\x39\\xdd\\x35\\x98\\xe1\\xc6\\x61\\x61\\x29\\x22\\x52\\x2f\\x38\\x7d\\x51\\x59\\x76\\x92\\xf3\\x14\\xc4\\xd5\\xac\\x4b\\xf1\\x88\\x3a\\x61\\x46\\x36\\x33\\x6a\\x55\\x44\\xd5\\x9f\\xf4\\x1d\\x1e\\x0d\\xbc\\xf8\\xe6\\x62\\x7e\\x7c\\x80\\x85\\x64\\x63\\x22\\xdf\\xc2\\x0c\\x33\\x2c\\xbd\\xf3\\x53\\x70\\xd4\\x7d\\xca\\xbb\\x80\\x2e\\x17\\xca\\x84\\x78\\x0e\\xec\\x66\\x1c\\x90\\x4d\\x5b\\xfb\\xc2\\x40\\xad\\x6a\\x14\\xa7\\x53\\x3f\\x71\\xa2\\x75\\x00\\xc6\\x1d\\xd3\\xe4\\x73\\x98\\x38\\x87\\xa8\\x68\\x35\\x18\\x7a\\xbb\\x0d\\xf0\\x8f\\xa6\\x2c\\xda\\x69\\xdc\\xe8\\x6e\\x21\\xfa\\x5a\\xe9\\x54\\xc2\\x2e\\xdd\\xb6\\x0e\\xe3\\x13\\x15\\x04\\xa6\\x9b\\x50\\x48\\x6a\\x17\\x76\\x70\\x91\\x88\\x37\\x60\\x63\\x8a\\x29\\xc3\\x80\\x30\\xe1\\xe0\\x5f\\xdb\\x28\\xe1\\x58\\x63\\x30\\x10\\x38\\x5a\\x62\\x06\\x13\\xcc\\x10\\xd5\\xa5\\xf3\\x50\\x95\\x5f\\x4a\\x34\\x7c\\x65\\xed\\xdd\\xb7\\xe2\\x51\\x59\\xda\\x8d\\xcc\\x26\\x55\\x92\\x8a\\xd6\\xf6\\xd8\\xc4\\xc1\\xab\\xb8\\x17\\xd7\\xfe\\xf3\\xba\\xe5\\xde\\x04\\x02\\xed\\xde\\xe7\\xb5\\x15\\x21\\xce\\x28\\x0a\\x66\\xb7\\x96\\x14\\x0f\\x56\\xaf\\x9b\\xc2\\x0e\\x46\\x58\\x75\\xce\\x26\\x28\\xa8\\xa1\\x04\\x77\\xce\\x9b\\x2e\\xac\\xc7\\xd8\\x6f\\x88\\x27\\x24\\x57\\xbf\\xd4\\x43\\xe7\\x12\\x52\\x69\\x96\\x25\\x43\\x80\\xf0\\x13\\x52\\x27\\xe9\\xfc\\x15\\x1c\\x86\\x95\\xe9\\xcc\\x64\\xd2\\x72\\xb2\\x56\\xab\\x95\\xc9\\xa9\\xf5\\x68\\xe9\\x37\\x16\\xe0\\xe5\\x3d\\x29\\x88\\x2e\\x3c\\xe7\\x42\\x61\\x25\\x7a\\x02\\xcd\\x49\\x7c\\x37\\xd7\\x64\\xd9\\x0f\\x7f\\xd4\\x78\\xa1\\x7a\\x89\\x0a\\x8b\\x2e\\xa6\\x1a\\xb8\\x1f\\x68\\x69\\xb1\\x20\\xa2\\xf6\\x48\\x4a\\x88\\xc1\\x51\\x95\\x33\\x91\\xec\\xa4\\x45\\x01\\x53\\x77\\xb3\\xa5\\xdf\\xfe\\x4c\\xfb\\xac\\xfb\\x5b\\xab\\x2c\\x47\\xf6\\x54\\xf7\\x2a\\x9d\\x19\\xcb\\xc4\\xd2\\x95\\x37\\x19\\x84\\x05\\xe3\\xa0\\x4b\\x4b\\xfe\\x11\\xbc\\xdb\\x5c\\x1f\\x30\\xd9\\xac\\x02\\xf5\\x48\\x49\\xc5\\x7a\\xa9\\x6f\\x7b\\x56\\x63\\x61\\x16\\xf2\\xbb\\x6f\\x25\\x83\\xd9\\xaf\\x94\\xc8\\x6a\\xff\\x5c\\x13\\x7f\\x63\\xce\\x54\\xe8\\xf0\\xc2\\x1b\\x6c\\x25\\xc1\\xf0\\x47\\x2a\\x22\\x9c\\x90\\x81\\x7e\\x61\\x62\\xea\\xc7\\x1c\\xcd\\xa3\\x09\\xa1\\x64\\x3b\\xd6\\x31\\x2a\\x52\\x63\\xa2\\xef\\xe6\\x46\\xdf\\xfe\\x79\\xeb\\xd8\\x15\\x7a\\x28\"},\n{{0x49,0xe2,0x4d,0x16,0x99,0x83,0x37,0x26,0xb1,0x8c,0x78,0xea,0x65,0x68,0x40,0x1a,0x97,0x1e,0x1c,0xa3,0x9d,0xd0,0x6d,0x75,0x63,0xac,0x8b,0x42,0x50,0xd4,0xa9,0xf5,},{0x71,0xcf,0x05,0xe9,0x0d,0x30,0x1a,0x6d,0x9f,0xad,0x7f,0x0b,0x38,0xec,0x8b,0xb0,0x44,0xfc,0xfd,0x97,0xc8,0x49,0xb0,0x4c,0x00,0x36,0x25,0xde,0x29,0xbe,0x86,0xbb,},{0xa0,0xb6,0xa2,0xaf,0x15,0xb6,0xbe,0x9e,0x95,0x1e,0xf3,0xf3,0x2c,0xbd,0x1c,0x67,0x02,0xe8,0xe0,0x17,0xfb,0xd3,0x15,0xa3,0xf2,0x59,0x9c,0x3f,0x1a,0x11,0x86,0x5d,0x46,0xe7,0x84,0x59,0xa0,0xd7,0xf7,0xbe,0x04,0x6a,0xae,0x29,0x3c,0xad,0x09,0x13,0x7e,0xc8,0x47,0xe2,0x69,0x28,0x10,0x6d,0x9a,0xa3,0x5e,0x09,0x82,0xb9,0x92,0x02,},\"\\x6d\\x26\\x05\\xf6\\x1e\\x1a\\x04\\xb6\\xae\\x18\\xc2\\xc2\\x5a\\xe1\\x00\\xdd\\x42\\xa6\\x1e\\x66\\x4e\\x2d\\xb5\\xc3\\x4d\\x7a\\xd1\\xf8\\x4a\\xc5\\x07\\x55\\x2b\\x74\\x1c\\x20\\x86\\xc1\\x7c\\x85\\x2b\\xab\\xe0\\x7a\\x91\\xe1\\x29\\xa5\\x06\\xee\\x59\\xed\\xb9\\xce\\x73\\xbe\\x1b\\x1d\\x06\\xd1\\x20\\xec\\x36\\xa1\\xe9\\x4c\\x62\\x81\\x05\\x4e\\x78\\xce\\xb1\\xbd\\xef\\xfb\\xcb\\xf4\\xf0\\x10\\x51\\xed\\x38\\x1b\\xfc\\x8a\\xd1\\x76\\x9f\\x41\\xe2\\x40\\xbf\\x60\\x59\\xd9\\x70\\x4c\\xac\\xec\\x66\\x66\\x11\\xf4\\x1e\\x4d\\xd4\\x38\\xb7\\xf5\\x02\\x42\\xea\\x86\\x75\\x6b\\xb1\\xf8\\x1e\\x59\\x42\\xc0\\x92\\x12\\x9f\\xbc\\x6d\\xe4\\x95\\x5d\\x28\\xdf\\xf3\\x52\\x37\\xdb\\x30\\xe4\\xa5\\x03\\x6a\\x99\\x14\\xc9\\xf8\\x4d\\xbd\\x8c\\xcf\\x82\\xba\\x2b\\x1b\\x3b\\x55\\x54\\xa2\\xb7\\xa7\\x4c\\xb0\\xb2\\xa1\\xe1\\x96\\x33\\x45\\x28\\x6e\\x25\\x8d\\xc8\\xe7\\xd5\\x67\\x18\\x03\\x5f\\x95\\xf3\\x13\\x81\\x1c\\xfb\\xd8\\x52\\xa0\\xf8\\xf4\\x9a\\x29\\xef\\x93\\x3e\\x7c\\xda\\x7e\\xd9\\xc7\\xe8\\xb1\\x62\\xcd\\xba\\x1a\\x82\\x26\\x2c\\xd4\\xdf\\x7c\\xf8\\xea\\x4b\\x58\\x6d\\xb4\\x3d\\xcc\\x1e\\x37\\x64\\x59\\x8e\\x9c\\xa4\\x66\\x73\\x82\\x2b\\xaa\\x2a\\xd8\\x7f\\xb1\\x4b\\x6f\\xdb\\x9e\\x20\\x32\\xd0\\xca\\x51\\xc2\\x6c\\x5e\\xf3\\xd9\\xf7\\x97\\x85\\xfa\\xc2\\x49\\x1c\\xdb\\xf7\\xc3\\x99\\xf3\\xcd\\x17\\x74\\xc1\\xa6\\xb1\\xe4\\xa6\\x7f\\x54\\x36\\xd8\\x0d\\xb0\\x25\\xf8\\xfb\\x64\\x09\\xe2\\x75\\xbd\\x0e\\xd5\\x08\\xb5\\xe0\\x39\\xed\\x2e\\x4e\\xec\\x8b\\x0f\\x4d\\x5b\\xe9\\x9d\\xca\\xfa\\x6a\\x14\\x01\\x25\\x27\\x32\\xa6\\x5b\\x37\\xc9\\x43\\xc0\\x7e\\xf3\\xac\\xbc\\xfb\\xb3\\xdc\\x06\\xda\\xd0\\xa8\\x8f\\x2f\\x5e\\xb5\\x51\\xa3\\x99\\x7a\\xd6\\xc6\\xee\\xd9\\x5e\\xdd\\x9a\\x0a\\xf4\\xa2\\x88\\xd5\\xe4\\x32\\x86\\xb2\\xac\\x07\\x29\\x77\\xc4\\x36\\xb7\\xc5\\xff\\x7a\\xb6\\x1c\\x94\\x84\\xf2\\x57\\xf5\\x8e\\x01\\x0c\\x9b\\x6a\\xd4\\x15\\x81\\xd7\\x42\\xcd\\x19\\x75\\x2c\\xde\\x54\\xd2\\xb4\\x20\\xd6\\x43\\x65\\x4e\\x90\\x96\\xa8\\x1e\\xb9\\xdc\\xf8\\x04\\xc7\\xc2\\xed\\x0e\\x38\\xd1\\x3a\\x5c\\xe3\\x99\\x78\\xcd\\xd0\\x2b\\x25\\x35\\x09\\x45\\xde\\x78\\xfe\\xec\\xc0\\xc2\\xc2\\x2f\\xfd\\x70\\x5c\\x3b\\xa8\\x11\\x32\\x65\\xc7\\xb9\\xa7\\xc8\\xdd\\xb5\\x91\\x78\\xbd\\x21\\xd7\\xf6\\xc3\\x1c\\x6b\\xe2\\xc3\\x67\\x49\\xee\\x0f\\x9a\\xb8\\xbc\\x1d\\xcf\\x5d\\xa5\\xcb\\x2d\\x2d\\x59\\x62\\x35\\x8f\\x71\\xf9\\x6a\\xb3\\x79\\x2a\\x25\\x2a\\x51\\x9e\\x41\\x53\\x51\\xf4\\x3e\\x7e\\x12\\x03\\x5b\\x03\\x28\\xf2\\x82\\x08\\xcf\\x4b\\xe5\\x29\\xd2\\x99\\xaa\\x5c\\x12\\x8c\\x9d\\x5e\\xd5\\x75\\xbf\\x90\\xc5\\x35\\x05\\x69\\xea\\xa6\\xf2\\xd5\\x52\\x1d\\xe1\\x18\\x03\\x09\\xf6\\x86\\xc9\\x7e\\x9a\\xd6\\xfa\\x1e\\xc1\\xdd\\x86\\x27\\xae\\x89\\x51\\x58\\x1c\\xf6\\x04\\xb8\\xb9\\x17\\xc5\\xba\\x43\\x4a\\x63\\x7b\\xe1\\xbc\\x8b\\x79\\xf4\\xac\\xaf\\x77\\x95\\xf4\\xe5\\x1a\\xab\\xdb\\x88\\x50\\x77\\xbc\\x4f\\x3c\\x68\\xfc\\x33\\x18\\xde\\x58\\x23\\xd7\\xe0\\x80\\x4e\\xe9\\x95\\xb7\\x03\\x87\\x95\\x0f\\x79\\x93\\x53\\x68\\x23\\x00\\xd4\\xe7\\x97\\xf3\\xca\\xd6\\x11\\xb4\\xc5\\x62\\xc8\\x64\\x0f\\xf2\\xb3\\xfe\\x29\\x29\\x16\\xa9\\x70\\xfb\\x98\\xc1\\x47\\x5c\\x1f\\x4e\\x27\\xb9\\xb3\\x3c\\xfe\\x0d\\x3a\\xd9\\x32\\xa1\\xeb\\xe6\\xa2\\x7f\\xc3\\xb4\\x46\\x62\\x29\\x54\\xae\\xe1\\x68\\x36\\x68\\xc8\\xbd\\x4a\\x3f\\x90\\x3b\\xe5\\xc7\\x7d\\xfd\\xb8\\xe8\\x91\\x4c\\xed\\xc5\\x1f\\x65\\xfe\\xd2\\xd9\\xc4\\xd0\\x3e\\x13\\xa6\\x68\\xd4\\xc7\\xea\\x5e\\x31\\x88\\x3e\\x1b\\x3d\\xb6\\x43\\x63\\xe2\\xac\\x5c\\xc5\\x4b\\x54\\xce\\x69\\xc6\\xad\\x52\\xf8\\x74\\x99\\x9b\\x5d\\xd2\\xc5\\x78\\x2f\\x03\\xc3\\xd5\\x15\\x05\\xdf\\x53\\x6a\\x1f\\xe0\\xd8\\x60\\xd3\\x3e\\xab\\xed\\x64\\x1a\\x94\\x00\\x89\\xf1\\x29\\x7d\\xd0\\xf5\\x7f\"},\n{{0xf8,0xff,0x97,0x03,0x2a,0x34,0xcf,0x99,0x99,0x08,0x80,0x58,0xaf,0x56,0xff,0x70,0xb6,0xac,0xb2,0xed,0xf7,0x59,0xe1,0x31,0xfa,0xec,0x84,0x40,0xfd,0xec,0xf6,0xc4,},{0x54,0x38,0xb4,0xe3,0x3f,0x1c,0x5e,0xa1,0x12,0xfb,0x1b,0xaf,0xef,0x40,0x59,0xbf,0x09,0x5a,0x11,0x40,0x9b,0x64,0xd4,0x6b,0xfb,0x4d,0x25,0x47,0x3c,0x1c,0x08,0x74,},{0x50,0x9e,0x9e,0xad,0xfe,0x8d,0xde,0x79,0x14,0xac,0x20,0xca,0xfc,0x0b,0x0a,0xf2,0x2b,0x84,0xdd,0x8a,0x21,0x0a,0x48,0x12,0xcd,0x8c,0xae,0x39,0xb0,0xa2,0x72,0xe5,0x3e,0x02,0x24,0x6d,0xc8,0x93,0x9e,0x92,0x26,0x92,0x03,0x36,0xe1,0x40,0xb3,0x15,0x32,0xd0,0x68,0x13,0x7a,0x34,0x16,0x1e,0x59,0x9a,0x86,0x94,0xa9,0x5d,0xdf,0x01,},\"\\xdf\\xb4\\x1f\\xb9\\xd5\\x37\\x02\\xcb\\x2b\\x9e\\x3f\\xfc\\xad\\x4e\\xa6\\x02\\x71\\x6f\\x71\\x8a\\x7e\\xa3\\x3e\\x21\\x84\\x3e\\x2a\\x6c\\x05\\x2c\\x70\\xc6\\xc5\\x14\\x85\\xd7\\x2b\\x53\\xa5\\xbb\\x4e\\x34\\xe0\\x3e\\x3e\\x1d\\x1a\\x52\\x51\\x8e\\xb3\\xe7\\xf1\\x8f\\x2a\\x1e\\x1c\\xaf\\x78\\xac\\xb2\\x11\\x60\\x89\\xbe\\xd4\\xc6\\x17\\x13\\x8e\\x71\\x6a\\x91\\x43\\x1f\\x2c\\xf6\\x44\\xa1\\x21\\x0f\\x6d\\x19\\x20\\xd2\\x85\\x99\\x42\\x64\\xd6\\x46\\x6b\\x0d\\x8d\\x2c\\x62\\x63\\x80\\x44\\x61\\x6f\\x57\\x6e\\xdc\\x7d\\x0d\\x93\\xcb\\x66\\x01\\x31\\xd4\\xbb\\x50\\x87\\x5e\\x15\\x36\\x40\\x12\\x3a\\x96\\xf1\\x5b\\x75\\xa5\\xbc\\xee\\x46\\xd5\\xcc\\x5e\\xb1\\xa4\\x31\\xc5\\x9d\\x2e\\xad\\xdf\\xd5\\x53\\x15\\x02\\xfe\\xb1\\x55\\x1b\\xf7\\x79\\x1c\\xd5\\x98\\x9d\\x17\\xd1\\x02\\x96\\xd0\\x1b\\xa3\\xae\\x3e\\x38\\x4c\\x67\\x45\\x26\\xca\\xb6\\x2a\\x7c\\x24\\xc0\\xff\\x67\\x7d\\xe7\\x1c\\xa1\\x72\\x62\\x1a\\x28\\xa8\\x5e\\x01\\xee\\xfe\\x07\\xf6\\xee\\xf9\\xc3\\xec\\xfd\\x7f\\x94\\x98\\xac\\x42\\xf4\\x6a\\x43\\x71\\x6f\\x61\\x53\\x18\\xa3\\xb2\\x87\\x57\\xc3\\xa1\\x5f\\x4f\\x1c\\x38\\x22\\xae\\x7a\\x75\\xc2\\x03\\xa2\\x98\\x25\\x8d\\x75\\x36\\x38\\xcf\\x42\\x5e\\x15\\xbb\\xc4\\x62\\x02\\xb0\\x93\\xb8\\xe4\\xf3\\xe6\\x70\\xfb\\xb6\\x63\\xdb\\x2b\\x69\\xc8\\xfb\\x0f\\x62\\x50\\x74\\xd8\\x5a\\x44\\xd3\\x50\\xe0\\x42\\xbb\\x1b\\x74\\x02\\x1d\\x19\\x29\\x97\\xa2\\xc2\\x7d\\xd6\\xc8\\x63\\x48\\x41\\xd1\\x00\\xa0\\x34\\x4b\\xae\\xd7\\x50\\xa3\\x9f\\xf5\\xdc\\xd9\\x84\\x8d\\xfc\\xf0\\x9e\\x5c\\x8c\\x47\\x96\\x7b\\x96\\x55\\x6e\\x23\\x32\\xca\\x17\\xd8\\xe4\\x2d\\xd8\\xf3\\x93\\xa5\\x44\\x5a\\x37\\x22\\x44\\x60\\x0b\\x30\\x01\\xb8\\xfe\\x86\\xc4\\x5e\\xaf\\xc6\\xe7\\x38\\xaa\\x7e\\x11\\x7b\\x4a\\x79\\xfa\\x2e\\x6b\\x00\\xf4\\x64\\x92\\x8d\\x18\\x56\\xc8\\x3e\\xcf\\xe8\\x7d\\xd3\\x4d\\x15\\x8f\\x5c\\xb4\\xe4\\xf4\\xd6\\x10\\xf5\\x97\\x17\\xec\\x79\\x0b\\xd3\\xff\\x87\\x20\\x40\\xb6\\x7e\\x8d\\x39\\x39\\xe8\\x04\\xe3\\xb5\\xdb\\x98\\x5a\\x09\\x56\\x21\\xcb\\xcc\\xd6\\x86\\xc0\\x93\\x4e\\xce\\x3e\\x27\\xab\\x2c\\x6c\\xe3\\x3f\\xb5\\x2b\\x11\\x1f\\x48\\xe4\\xf2\\x74\\xbd\\xf3\\x20\\xd0\\xb0\\x23\\x84\\xc8\\x3c\\x49\\xe1\\xa0\\x41\\xbd\\x23\\x19\\x10\\x9c\\x85\\xa0\\x6d\\x80\\x48\\xa9\\x93\\x35\\x7a\\xbf\\xd8\\x11\\xac\\x2f\\x38\\x05\\x9d\\x07\\x7a\\xcb\\xc3\\x6a\\xa9\\x66\\xc0\\x28\\x90\\x37\\x48\\x62\\x5f\\x92\\xe8\\xf7\\x9d\\x51\\xbd\\xa1\\x0f\\x78\\x52\\x29\\x77\\xf7\\x6e\\xc4\\xe8\\x85\\xe4\\x9a\\x46\\xc6\\x8d\\xe0\\x9f\\x3d\\xa8\\xf8\\x6b\\x71\\xae\\x64\\x23\\xbd\\x29\\xde\\xef\\x1c\\xc6\\xa1\\x13\\xea\\xc1\\x15\\xa6\\xcd\\xe2\\xcc\\xd0\\x11\\xfc\\x1c\\x0f\\x0e\\x34\\x27\\xf4\\x3c\\x3e\\x96\\xfc\\x41\\x56\\xed\\xf6\\x2d\\xdf\\xb7\\xb0\\x83\\x6b\\x88\\x8b\\xab\\x3c\\x43\\x45\\x05\\x5a\\x6c\\x41\\x78\\xe9\\xe2\\x28\\x29\\xfd\\x8c\\xfc\\xe3\\x9b\\x0b\\x84\\x44\\xeb\\x26\\x48\\x7c\\xc9\\xdc\\x82\\x60\\x6f\\xea\\xad\\xaf\\x49\\x78\\x69\\x4e\\x65\\x64\\xf2\\x72\\x9c\\x1b\\x13\\xab\\x37\\xc9\\x07\\x2d\\xb4\\xe9\\xde\\x94\\x0e\\xe5\\xf1\\xd0\\x58\\x84\\xae\\x7f\\xd9\\xd9\\xec\\x9c\\xb7\\xde\\x56\\x34\\x76\\x00\\xa8\\x8d\\xea\\x92\\x08\\xa6\\x34\\x19\\xfc\\xe2\\x9e\\xe5\\x00\\x55\\xa3\\x74\\xa8\\xf2\\x2f\\x9a\\xe2\\xbe\\x98\\x05\\xa9\\xf4\\x76\\x15\\xaa\\x59\\x57\\x6b\\x44\\x04\\x2f\\xf1\\x26\\xa8\\x98\\x24\\xe3\\x6a\\xd6\\xbc\\x58\\xe0\\x6b\\xb9\\x0f\\xbe\\xef\\xba\\xe5\\xd6\\xd7\\xd6\\x24\\x30\\xf3\\x73\\xb6\\x29\\x6f\\xbf\\xcd\\x4d\\x66\\x20\\x16\\x83\\x53\\x58\\x3f\\xbd\\x3d\\x5a\\x29\\x2b\\x95\\x72\\x51\\x75\\x34\\xe2\\xfb\\x0b\\xee\\xf2\\xfa\\x98\\xa4\\x64\\xe5\\x91\\x03\\xe7\\xa0\\x42\\x87\\xf1\\x5d\\xad\\x0f\\xac\\x54\\x97\\x0e\\x77\\x15\\x07\\x8d\\x63\\xec\\x26\\x36\\x2f\\x6f\\xba\\xbc\\xdd\\xea\\xf7\"},\n{{0x2e,0x4c,0x39,0x21,0x9f,0xc9,0x2a,0x53,0x8e,0x48,0xe9,0x5f,0xbf,0xcf,0xef,0x30,0xf5,0xa2,0x1b,0x78,0x94,0x0b,0x81,0x05,0x3b,0xda,0xd4,0x60,0x2b,0x4c,0x96,0x90,},{0xf8,0xee,0xd8,0x92,0x17,0x66,0x20,0x43,0x4c,0x7f,0x0e,0xc5,0x3d,0xcf,0xf3,0x98,0x63,0x10,0x9e,0x7c,0xa4,0xd0,0xb3,0xc6,0xc4,0xb5,0x64,0x10,0xbe,0x01,0xe5,0x37,},{0x39,0x45,0x20,0x12,0x2b,0xb0,0xa5,0x64,0x64,0x8a,0x7a,0x8b,0xc8,0xdc,0x73,0x63,0x6c,0x51,0x77,0x46,0xa3,0xc8,0xa0,0x5b,0x90,0x1e,0x72,0x52,0xfe,0xf0,0xe5,0x02,0x3d,0x90,0x99,0x1e,0x31,0x1b,0x53,0x82,0xd4,0x91,0x00,0xe5,0x26,0x33,0xc7,0x0f,0xe9,0xc2,0x6c,0x14,0x50,0xe0,0x60,0x3e,0x6d,0x45,0x22,0x99,0xaf,0x4d,0xae,0x07,},\"\\xc8\\x7d\\x1f\\xba\\x9d\\x94\\xa6\\xa5\\x40\\x89\\x80\\xfc\\x80\\x83\\x98\\x0f\\xd2\\xd2\\x52\\xfa\\xe5\\x40\\xf6\\xee\\xc1\\x9e\\xd6\\x74\\x6c\\x29\\xe3\\x39\\xa1\\xc2\\x9f\\x6f\\x53\\xbc\\x23\\xfd\\x6b\\xfa\\x43\\x85\\x07\\xef\\xf5\\xda\\xf9\\x03\\x40\\x3c\\xda\\x70\\x7b\\x4d\\xc5\\xe8\\x44\\x80\\x5d\\x6b\\x1c\\xeb\\x4a\\xff\\xf4\\xb2\\x32\\xe8\\xe6\\x9d\\x7d\\x27\\x1f\\x3c\\x06\\x7c\\x48\\x54\\xf3\\xd9\\x4f\\x27\\xfe\\x32\\x55\\x81\\xfa\\xca\\x79\\xd1\\xf0\\x2a\\x26\\x29\\x0a\\xd2\\x3a\\xf7\\x11\\x00\\xc1\\x2c\\x09\\x15\\x76\\x47\\xca\\x9d\\xa4\\x3d\\x76\\x90\\xdd\\xcd\\x94\\xdb\\x65\\xe0\\x00\\x98\\x9c\\x87\\x8b\\x75\\xa0\\xff\\x22\\xd2\\xc7\\x09\\x62\\x59\\x4c\\x9b\\x08\\x08\\xf2\\x78\\x46\\xcc\\xac\\x85\\x67\\xbc\\xe5\\xd2\\xe3\\xb7\\x60\\x28\\x09\\xf2\\x3b\\x59\\xcd\\x71\\x8a\\x08\\x05\\xd1\\x08\\xf3\\x1a\\x63\\x2a\\x05\\xb8\\xdf\\xa5\\x03\\x5a\\xb9\\x46\\x1a\\xeb\\xa4\\x16\\x00\\x9d\\x74\\xfd\\xf9\\xe0\\x07\\x20\\x28\\x56\\x89\\x0d\\x2c\\xff\\x80\\xfa\\x24\\x0b\\x97\\x8a\\x48\\x27\\x0f\\xcb\\x2f\\x47\\x36\\x97\\xbc\\xba\\x8e\\x73\\x0a\\x55\\xc2\\x87\\x61\\x91\\x9a\\x23\\xbe\\x41\\xda\\x27\\xff\\xea\\x09\\xe3\\x55\\x9c\\xaa\\xab\\xf9\\x51\\x9e\\xc0\\x8e\\x1f\\xfa\\x86\\x81\\x7a\\xa3\\xe8\\x87\\x4f\\xa8\\x16\\xe7\\x71\\x8c\\x5b\\x2f\\x34\\x49\\x67\\xba\\x1b\\xc2\\x81\\x9c\\x4f\\x04\\x5a\\x97\\xb4\\x05\\x44\\xea\\x61\\xd7\\x17\\x08\\x3c\\xca\\xf1\\x1e\\x9d\\xdc\\x04\\xa3\\x59\\x8e\\xf1\\x81\\xe7\\xbe\\xf4\\xac\\xef\\x45\\xb6\\x55\\x1b\\x47\\x8a\\x0d\\x77\\x31\\xc4\\xf0\\x8c\\xe5\\x80\\x2f\\x78\\x25\\x8d\\x41\\x90\\x17\\x66\\x10\\x76\\xd7\\xd6\\xd2\\xef\\x39\\xe5\\x7c\\xf9\\xcd\\x93\\x97\\xdc\\xc5\\xde\\xbf\\x64\\xab\\x82\\xb6\\x61\\x59\\xf5\\x78\\x31\\x6e\\x74\\xcd\\x49\\xf5\\xad\\x2c\\x6f\\xef\\x83\\xcf\\x08\\x68\\x3b\\x95\\x70\\xa9\\x46\\xad\\x49\\x03\\xdf\\x4e\\x96\\xec\\x00\\x8e\\x14\\xa5\\x01\\xfa\\x93\\x86\\xbd\\xaf\\x2a\\x63\\x99\\x3c\\x6c\\x9b\\xdf\\x23\\x1f\\xd0\\x9e\\xa6\\xf9\\x6e\\xf4\\xd4\\xe2\\x9a\\x3a\\x33\\x27\\xcb\\xf7\\x4e\\xa8\\x31\\x05\\x4e\\x66\\xca\\x86\\x68\\x0c\\x6c\\xe5\\x3b\\x66\\xf9\\x46\\x5d\\x06\\xb3\\xfa\\x07\\x98\\xbb\\x69\\x05\\xae\\x38\\x45\\x59\\x34\\xf2\\xfb\\x7e\\x0b\\xa4\\x72\\x32\\x89\\x89\\xf0\\x01\\x30\\x86\\x71\\xcc\\xcb\\x56\\x6d\\x22\\x2c\\x72\\x16\\x5b\\xb3\\xa7\\x44\\xfb\\x98\\xe2\\x21\\x0f\\x96\\x20\\x68\\x0d\\xf3\\xe3\\xcd\\x14\\xa8\\xbd\\x94\\xb5\\x74\\x5c\\x00\\x16\\xdd\\xa7\\x7f\\x05\\x9f\\x26\\x05\\x3b\\x64\\xcf\\x45\\x23\\xc3\\xd4\\x29\\x11\\x2f\\xb6\\xb3\\x28\\x39\\x8b\\xc6\\x30\\xa2\\xe9\\x06\\xb9\\x5a\\x6c\\x57\\x80\\xcf\\xdc\\x06\\x41\\xbe\\x47\\x51\\xbe\\xbd\\xdf\\x77\\x24\\xdc\\x9c\\x27\\xe7\\x8d\\x60\\xed\\x0f\\xd7\\x36\\xd5\\xab\\xd8\\x89\\x29\\xc1\\x79\\x5d\\x47\\x3a\\xbd\\x2b\\x03\\x20\\xc5\\x40\\x47\\x57\\x28\\x82\\x18\\x67\\xa4\\x09\\xa2\\xff\\x13\\xcc\\x44\\xce\\x35\\xe5\\x98\\x1e\\x9f\\x6b\\x87\\xa2\\x8d\\x4f\\xa8\\xb8\\x67\\x5e\\x50\\x3f\\xae\\xfc\\xa7\\xc1\\xd7\\x98\\x47\\x37\\x87\\x1f\\xe9\\x19\\xac\\x41\\x4e\\xea\\x26\\x5e\\xe3\\x1f\\x9f\\x78\\xf5\\x21\\xf3\\xf4\\xf8\\xd0\\x0c\\x3f\\xb7\\x91\\x71\\xf3\\xc6\\xa5\\xdb\\xf5\\xe1\\xac\\x8b\\xf6\\x3b\\x4c\\x3d\\x8d\\x8b\\xc1\\x21\\x03\\x6e\\x9e\\x55\\xbb\\x70\\x2e\\xa6\\xc8\\x6e\\x92\\x5e\\xc0\\xb9\\x84\\xde\\xd2\\xc7\\x1f\\x3b\\xfd\\x49\\x32\\xe6\\xc4\\x1b\\x58\\x2f\\xd0\\x2c\\xa5\\x9f\\x53\\xce\\x29\\x74\\x45\\x78\\x5c\\xc4\\xca\\xc2\\x47\\xb0\\xb8\\x4e\\x7f\\xa0\\xbc\\xdc\\xf7\\x9b\\x3e\\x4a\\x15\\x5f\\x98\\x78\\xc1\\xf6\\x43\\xbe\\x9c\\x42\\xf7\\xa4\\xf2\\x72\\x60\\x44\\x45\\x05\\xc1\\x84\\x5b\\xd5\\x3b\\x55\\x0a\\x31\\xd7\\x95\\x3c\\xc7\\x38\\x86\\x1f\\x46\\xbd\\xf4\\x87\\x0f\\x3a\\x77\\xac\\xe1\\x91\\xab\\xd6\\x3c\\x45\\xad\\xb1\\x53\\x90\\x9f\\xb5\\x9a\\xb5\\xdb\\x9b\"},\n{{0xf0,0x92,0xe6,0xbe,0x8d,0x2d,0x9a,0xd0,0x69,0xa3,0xe2,0xb9,0x76,0xd2,0x44,0xe3,0x4c,0x15,0xc2,0x8c,0x48,0xd3,0x2f,0x55,0x60,0xa5,0x41,0x85,0xd1,0x50,0x15,0x02,},{0xcf,0xeb,0x3e,0x74,0xe4,0xb5,0xc8,0x35,0x6a,0x81,0x75,0x7b,0x8f,0x1b,0xe4,0xb4,0x29,0xfc,0x18,0xfc,0xaf,0x49,0x7c,0xbf,0x8d,0x8b,0xc0,0x48,0x0f,0xf9,0x78,0xf9,},{0x63,0xcd,0x4c,0x0b,0xa3,0xbe,0x93,0x97,0xcc,0x0f,0x3c,0x1a,0xf3,0x48,0xec,0x4b,0x8a,0x91,0xe4,0x2f,0xee,0x67,0x5d,0xa1,0xd0,0x59,0x00,0xb9,0xa8,0x6c,0x13,0x8f,0x91,0x74,0xeb,0x99,0x6b,0xbd,0xf3,0x1c,0x42,0x95,0xe0,0xc5,0x78,0xac,0x0f,0x9d,0x53,0x76,0x41,0xa2,0xaf,0xd5,0xdf,0xf9,0x3a,0x39,0xc5,0xcd,0x9d,0x3c,0x48,0x0b,},\"\\x2c\\x25\\x5f\\xb2\\x5d\\x45\\xb0\\x86\\xc0\\x71\\xe0\\x3e\\x52\\x5b\\x4d\\x72\\x85\\x78\\xfb\\xb6\\xb0\\xc6\\x0d\\xa9\\x41\\xe6\\xbf\\x2a\\x48\\x98\\xb2\\xd5\\xb6\\x98\\x8c\\x53\\x30\\x27\\x85\\xab\\x7a\\x3b\\xc4\\xbb\\x2c\\x20\\x5a\\xcd\\x27\\xd6\\xa4\\xcb\\xdd\\x1a\\x0c\\x08\\x89\\xde\\xd7\\x84\\x26\\x4c\\xb7\\xc0\\x28\\x89\\xc5\\xc7\\x11\\x3f\\xc9\\x0b\\xbb\\xcd\\x31\\xff\\x00\\x14\\x32\\xc0\\x53\\xf9\\x71\\x07\\x3c\\xf6\\x71\\x2f\\x66\\x7f\\xce\\x46\\x98\\x77\\x6b\\x98\\xcc\\x54\\x44\\xc6\\x92\\xab\\xd1\\x28\\x81\\x98\\xbe\\x5a\\xd5\\x67\\x46\\x09\\xf7\\xe1\\x39\\xad\\x1b\\x9c\\xcb\\x94\\x3f\\x8d\\xfd\\x9d\\x12\\xc5\\x4e\\xce\\xe2\\x78\\x34\\x1b\\x2e\\xe1\\x27\\x79\\x91\\xca\\x62\\xcd\\x3b\\xfe\\x12\\x8d\\x13\\x92\\x96\\x4e\\x95\\x88\\xe2\\xf9\\x7c\\x32\\x17\\x04\\xa3\\xde\\x10\\x61\\x88\\xc5\\xeb\\x33\\x5a\\xa5\\xa1\\x9a\\xcc\\x90\\x67\\xb4\\xa9\\x41\\x29\\xb9\\xd1\\xa6\\x16\\x7c\\x4b\\xbf\\xb5\\x6f\\xb9\\x76\\x84\\xcb\\xbd\\x72\\x0c\\x86\\x86\\x9e\\x00\\x20\\xab\\x07\\x76\\xcd\\xc9\\x95\\x4f\\xeb\\xa8\\x62\\x12\\x4b\\x07\\x3f\\xba\\x8d\\xe9\\xea\\x9a\\x38\\xea\\xcf\\xa0\\x03\\xae\\x4f\\x1c\\xdc\\xbf\\x15\\xc3\\x2f\\xb6\\xb9\\x70\\xc7\\x31\\x15\\xdd\\xff\\xcd\\x4f\\xa3\\xb7\\x18\\x46\\x11\\x0e\\xde\\xc2\\x57\\xfc\\xae\\xd6\\x11\\x36\\x04\\xf7\\x19\\x25\\x72\\x57\\x72\\x64\\xb9\\x90\\x5c\\xa6\\xae\\xd8\\xda\\xec\\x13\\x84\\x03\\xca\\x41\\xaa\\x95\\x42\\x78\\xa5\\x72\\x0b\\x26\\x7b\\x90\\xca\\x16\\x3a\\x9b\\xdf\\x44\\x7e\\xad\\xe8\\xde\\xb7\\x69\\xa3\\xb4\\x92\\x37\\xa7\\x35\\x16\\x97\\x7c\\x28\\x73\\x45\\x55\\xdd\\x23\\x4c\\xa7\\xde\\x49\\x99\\x26\\x1b\\xc7\\x96\\x0f\\x53\\x6b\\xa8\\xa3\\x5a\\xd3\\xd0\\x2c\\x75\\xf1\\xc2\\xbe\\xa0\\xa0\\x61\\x2e\\x7d\\x49\\xc4\\x03\\x97\\xdd\\x6a\\xf5\\xff\\x58\\xba\\xe6\\xa6\\x4b\\x6a\\x77\\xe9\\x81\\xf9\\x2d\\x15\\x9e\\x0b\\x2b\\xd2\\x05\\xab\\x15\\x70\\x52\\xf4\\x70\\x17\\xa3\\xe1\\x8a\\xec\\x94\\x4d\\x04\\x65\\xee\\x00\\x17\\xe9\\x61\\x48\\xa6\\x12\\x9f\\x74\\xd3\\xcc\\xb4\\x89\\xfe\\xa1\\x3a\\x15\\xa9\\xb9\\xac\\xed\\x58\\xc6\\xee\\x0e\\x6e\\x84\\xe0\\x5f\\xda\\xdf\\xae\\x07\\xb3\\x34\\xa9\\x8f\\xc3\\x7f\\x7e\\x51\\x1c\\xd5\\xa4\\x4e\\x9c\\x74\\xe4\\x78\\xd3\\x49\\xe3\\x0e\\x29\\xae\\xb4\\x6a\\x4d\\xf0\\x1e\\x43\\x07\\xfe\\x65\\xe1\\x39\\x4a\\x75\\x8f\\x6a\\xda\\x2f\\xb1\\x20\\x22\\x5c\\xcd\\x50\\xa4\\x90\\x13\\xe6\\xc9\\xf1\\x75\\xaf\\x90\\xf3\\xfc\\x8c\\x57\\xe7\\xa6\\xa9\\x69\\xa9\\x16\\xc3\\xf1\\xaa\\xcc\\x22\\xf3\\xe0\\x1a\\x07\\x0c\\xc4\\x8e\\x6f\\xd8\\x78\\xe2\\xbd\\x07\\x3d\\xf9\\xee\\x6f\\x05\\x9b\\x98\\x56\\x84\\x04\\xfc\\x7e\\xae\\x7d\\x4b\\xf6\\xfa\\x16\\xc0\\xc8\\x03\\xc6\\xbe\\x84\\xe8\\xb7\\x9c\\x67\\xaf\\xfc\\x8c\\x88\\xca\\xbd\\xee\\xbc\\x11\\x34\\xbb\\x23\\x86\\xe2\\x2b\\xa4\\xd2\\xe9\\xe0\\xf3\\xe1\\xab\\x3a\\x0d\\xac\\x7c\\x80\\xdd\\xee\\xd7\\x73\\xcd\\xa0\\xc4\\x1d\\xc9\\xde\\xfa\\x67\\xfe\\xa3\\x77\\x69\\xcb\\x4a\\x1e\\x15\\x22\\xd7\\xe0\\xb3\\xd7\\xc4\\x63\\x8b\\xcd\\x98\\x31\\x53\\xd4\\x78\\xbe\\x5e\\xcf\\x2b\\x6a\\xb1\\xb4\\x01\\x24\\xe4\\x22\\x2b\\x8c\\xaa\\x46\\x47\\xbd\\x50\\xd7\\x4d\\x20\\x39\\x43\\xab\\x20\\x93\\x8d\\x5f\\x27\\xd9\\x08\\xa6\\x73\\x67\\x40\\x46\\xce\\x2e\\xf1\\x8e\\x85\\x8b\\x0a\\x01\\xa7\\xe7\\x53\\x0d\\xed\\x0f\\x8c\\xc8\\x9e\\xf0\\x9b\\x73\\xca\\x59\\x7c\\xf7\\x3a\\xfb\\xc9\\xa2\\x71\\xa4\\xd2\\x3c\\x92\\xfe\\x59\\x18\\x83\\xc4\\x40\\x10\\x9c\\x4e\\xf4\\x16\\x67\\x0b\\x7f\\x2c\\x59\\x05\\xb7\\x7f\\x65\\xf5\\x6d\\x09\\xd4\\x02\\x50\\x35\\x6f\\x9b\\x1d\\xbc\\xaf\\x1e\\xe2\\xc0\\xb6\\x36\\x96\\xf8\\x4d\\x68\\xdd\\xbe\\xa1\\x60\\x08\\x51\\x51\\xa9\\x52\\x62\\x74\\xd7\\xb8\\x46\\xcc\\xeb\\x6c\\x43\\x48\\x09\\x84\\x84\\xde\\x3b\\xb7\\x23\\xae\\x5e\\x85\\x27\\x6d\\xf4\\x9f\\x56\\x34\\x13\\x0f\\xf9\\x05\\x75\\x4f\"},\n{{0x01,0xa2,0x47,0x94,0x3a,0xfe,0x83,0xf0,0x36,0xb6,0xb6,0x0f,0x23,0xd9,0x77,0x74,0xfd,0x23,0x20,0x8e,0xdc,0x31,0xcf,0x3d,0x88,0x20,0xe9,0xdc,0x63,0x66,0x11,0x03,},{0x8c,0x97,0xa5,0x8b,0xe0,0xe8,0x47,0xc4,0x8a,0x6a,0x39,0x87,0xcf,0xe2,0x50,0xa8,0xd7,0xb0,0x7d,0x97,0xf9,0x61,0xf6,0xb7,0xb7,0x9e,0x7d,0x80,0x42,0xb8,0xbd,0x7b,},{0xed,0x2c,0xed,0x1a,0x4f,0xdd,0xb3,0x44,0x2a,0x63,0x73,0x48,0x17,0x9a,0x6a,0x5b,0xee,0xdc,0xb4,0x4c,0x8e,0x98,0x8c,0xa2,0x6f,0x78,0x93,0x6d,0x2c,0x8d,0xb5,0xc5,0x16,0xd5,0x4b,0x8c,0x4f,0x08,0xd9,0x1d,0xd7,0x04,0x2a,0xb6,0xab,0x26,0xd8,0x7f,0x23,0x0e,0xb2,0xb2,0x15,0x6f,0x3c,0xe2,0x99,0x4f,0xce,0x7c,0x2b,0x0f,0x10,0x0e,},\"\\x08\\xd8\\x14\\x95\\xda\\x77\\xf4\\x07\\x25\\x5c\\xc4\\x1a\\x81\\x8e\\xef\\xa7\\x27\\xe2\\xc4\\x7a\\xe4\\x11\\xf4\\xb5\\x41\\xf0\\x1f\\x81\\x1d\\x90\\x6d\\x55\\xfb\\x1e\\x3c\\x9c\\x48\\x4d\\xf3\\x05\\x65\\x36\\x4d\\xe9\\xdc\\xb9\\xfe\\xa0\\xaf\\x66\\x11\\x2f\\xe7\\x5f\\xd1\\x1a\\xe8\\x1d\\x26\\x41\\xb5\\x47\\x58\\x9f\\x8b\\x97\\x4a\\x97\\xe7\\x97\\x6e\\xd6\\x92\\xaa\\xd6\\x40\\xed\\xd2\\x88\\xbd\\x86\\x3d\\x11\\xc4\\xca\\x98\\x36\\xf9\\xd7\\xc1\\x15\\xc3\\xd9\\x88\\x30\\xd6\\x42\\x47\\xcb\\x6f\\x8f\\xb6\\x03\\xc6\\x98\\x11\\x33\\x55\\x2a\\x32\\x04\\x04\\x19\\x61\\xbd\\xd8\\x3e\\x2f\\x9d\\xeb\\xa7\\x70\\xc0\\x39\\x4f\\x9b\\x60\\x2a\\x45\\x35\\x51\\x07\\x49\\x21\\xa3\\xde\\x28\\x32\\x13\\x69\\xd7\\xf8\\xca\\x64\\x0c\\x45\\x10\\x9e\\x8f\\x52\\x2c\\x97\\xed\\x9f\\x35\\xb9\\x27\\x7a\\x35\\x0e\\x29\\x59\\x31\\xb4\\x2e\\x01\\x35\\xe9\\x4a\\x92\\xfe\\xd3\\x63\\xd6\\xca\\xe3\\x92\\xf7\\xc4\\x51\\x99\\x32\\x7e\\x24\\xb4\\xcf\\xa5\\x89\\x8a\\xb5\\x99\\xae\\x7b\\xd5\\x0b\\xd3\\xa0\\x0c\\x0d\\x00\\x7e\\x95\\xfa\\xf8\\xf2\\xae\\x10\\x38\\x02\\xca\\x7e\\x53\\xb2\\x79\\x18\\x4d\\x06\\x90\\x5f\\x57\\x48\\xca\\x8b\\xe1\\xf7\\x2e\\x66\\x8c\\xb8\\x32\\x83\\xdd\\x00\\x40\\x64\\x91\\xf8\\xb9\\xb4\\xe5\\xa9\\xd4\\xa5\\x43\\x8b\\x2f\\xa4\\x37\\x1e\\x0b\\x05\\x68\\x6f\\x87\\x57\\x5b\\xaa\\x79\\x6e\\x30\\x2f\\x08\\xff\\xc4\\x25\\x66\\x27\\x50\\xa3\\x3a\\x0c\\x9c\\xfa\\xa4\\xb4\\xd7\\x04\\x1f\\x92\\x64\\xfe\\xd7\\xbe\\x4f\\x9f\\xde\\x2c\\xac\\x68\\xa2\\x15\\x82\\x36\\xf6\\xac\\x43\\x04\\x7e\\x91\\x1f\\x4c\\x4e\\x8b\\xc6\\x63\\xfd\\xd5\\x05\\x17\\xdf\\xaa\\x8f\\xbc\\xd2\\x19\\xdd\\x7a\\x0e\\x93\\x69\\xf4\\x3d\\x0d\\xd2\\x5b\\x4f\\x0c\\xf9\\x30\\xf2\\x0b\\x7b\\x7c\\x6d\\xb9\\xd5\\xbe\\x0c\\x6e\\x19\\x60\\x94\\x1a\\x3e\\x04\\xd1\\x41\\xc0\\x3e\\x59\\x61\\xaa\\x33\\xe9\\x02\\x44\\x77\\xd5\\x33\\xc9\\x95\\x37\\x87\\x96\\xbf\\x22\\x92\\xad\\xe9\\x22\\x69\\x5b\\x14\\x56\\x9f\\xc3\\x39\\xb3\\xd9\\x08\\x5c\\x63\\xfc\\x6e\\x5b\\xef\\x4d\\x99\\x0c\\x80\\x33\\x3a\\x6b\\x57\\xaf\\x47\\x8f\\x93\\x8e\\x3e\\xe7\\x38\\xb1\\xd1\\x29\\xbd\\x97\\x6a\\xfe\\x68\\x61\\x28\\xbc\\xac\\x08\\xcc\\xbe\\xb0\\x34\\x9b\\x9b\\x53\\x73\\x13\\xbc\\x7b\\xf5\\x91\\xc6\\x5d\\x4a\\x71\\x23\\xad\\x30\\xbd\\xbe\\x14\\x86\\xb4\\x28\\x08\\x47\\x48\\xb6\\x50\\x7f\\x6f\\x5e\\xf6\\x7c\\x26\\xca\\x86\\x2c\\xf7\\x26\\xaa\\xc1\\x40\\xb8\\x61\\xae\\x0d\\xc7\\x4b\\xb3\\xc0\\xb4\\x89\\x78\\x9f\\x17\\x14\\x5e\\x9a\\x85\\x5a\\x3e\\x2b\\x5d\\xaa\\xc4\\x18\\xd8\\x35\\x37\\x33\\x23\\x9e\\xf6\\x9c\\x7b\\x56\\x5b\\x53\\x03\\xeb\\x87\\xbd\\x7f\\x64\\x9a\\xbf\\x40\\xa2\\xf1\\x35\\xa2\\x9e\\xd2\\x7e\\x3b\\xe4\\xc1\\x2c\\xd6\\xdd\\xd2\\xe5\\x41\\x8a\\x99\\x97\\x43\\x83\\x66\\x3f\\x58\\x49\\xbf\\x3c\\xe5\\x53\\x2b\\xf6\\x4a\\x80\\xaa\\x52\\x11\\x91\\xd2\\x53\\x90\\xbc\\x19\\xa4\\x5e\\xed\\x1d\\x3f\\xec\\xa1\\xd9\\xfc\\xc0\\xdb\\x03\\x1b\\xfb\\x48\\xe4\\x50\\xbe\\x3d\\x45\\x93\\x35\\x6d\\x5b\\xa0\\xf3\\x10\\x47\\xb4\\x57\\x74\\x5f\\x21\\xe3\\x2e\\xbe\\xa3\\xca\\x6c\\x35\\xf0\\x5d\\x78\\xd8\\xc3\\x16\\x40\\xb0\\xfe\\xcb\\x94\\x01\\x16\\x56\\x75\\xc7\\xf9\\xcb\\xb1\\x9b\\xc4\\xb5\\x67\\x7c\\x2c\\xce\\xdc\\x4e\\x7a\\xaf\\xb8\\x41\\x84\\xc1\\x91\\x99\\xac\\xa0\\xdb\\x21\\xcf\\x50\\x67\\xdc\\x3a\\xf7\\x69\\xbc\\xc6\\x29\\x35\\x5f\\xf7\\x25\\x7a\\x9e\\xfd\\x71\\xa6\\xa9\\x2d\\x13\\x0d\\x35\\xab\\xee\\x6e\\x70\\x60\\x5b\\x5c\\xab\\x93\\xc0\\x28\\xfa\\xc3\\xaa\\x23\\x44\\xba\\x86\\x1a\\xc1\\xe8\\xce\\x9a\\x4b\\x07\\x0c\\x3d\\xf7\\x40\\xd2\\x8c\\x5e\\xce\\x0f\\x1b\\xc3\\x1c\\x2d\\x7d\\x1e\\x5e\\xcc\\x76\\x10\\x44\\x80\\x93\\x91\\x33\\xa1\\x86\\x60\\xe4\\xa3\\xe4\\x84\\x6b\\x25\\x17\\xbe\\x3b\\x8e\\x7a\\xfa\\xfe\\x07\\x83\\x91\\xd8\\xaa\\x8e\\x5c\\x30\\x13\\x7e\\x85\\xd9\\x4d\\x64\\xa2\\x79\\xfb\\xee\"},\n{{0x91,0xfd,0xef,0xcd,0xbc,0x99,0x0d,0x3e,0x8e,0xeb,0x60,0x17,0x04,0x34,0xda,0x10,0x83,0x1b,0x03,0x08,0x1f,0x6a,0xfd,0x0d,0x7e,0x12,0xb1,0x00,0x11,0xe0,0x2a,0xef,},{0xc5,0x8d,0x3e,0x20,0xb8,0xd4,0x7b,0xa4,0x55,0xb9,0x12,0x57,0x2d,0xc8,0x40,0x81,0x5e,0x3d,0x88,0x5f,0xa5,0x91,0x7d,0x1d,0xa4,0x84,0x08,0xb9,0xa9,0x56,0x40,0x98,},{0x51,0x01,0x12,0x22,0x3b,0x33,0xa5,0xab,0x15,0x64,0xf7,0x53,0x71,0x91,0xcd,0x29,0x2a,0x9d,0xbd,0x5a,0x32,0x3d,0x7a,0xdd,0x05,0x84,0xc1,0xb0,0xad,0x00,0xd0,0xac,0x71,0x99,0xc3,0xfb,0x75,0x8e,0x91,0x3f,0xf3,0xd7,0x16,0xc2,0xe9,0x0d,0xd9,0x0d,0x4e,0x8f,0x59,0x95,0x1e,0x87,0xef,0x8b,0x78,0x21,0x4a,0x51,0x75,0xc4,0xe6,0x08,},\"\\x5b\\x0c\\x1a\\x3a\\x95\\xe0\\xba\\x74\\x74\\x76\\x6c\\x9b\\xad\\xfa\\xe3\\x4a\\xb8\\x60\\xe0\\xa6\\xc0\\x33\\xa2\\x2f\\xba\\x72\\x11\\x27\\xf5\\xbb\\xee\\xe8\\xe2\\xcb\\xde\\x1a\\x1d\\xfe\\xb1\\x8d\\x55\\x1c\\x95\\x99\\x4d\\x21\\xe3\\xeb\\xc6\\x8a\\xfa\\xe6\\x85\\x44\\x4a\\x3a\\x41\\x95\\xbc\\x75\\x55\\x38\\x90\\x3a\\xcf\\xa6\\x71\\x55\\x92\\xdd\\xe2\\x56\\xe7\\xa1\\xb4\\xc3\\x63\\xec\\xa7\\x1e\\xf0\\xf3\\xa4\\x8a\\xe3\\x44\\x2d\\x50\\xd5\\x66\\x1b\\x39\\x40\\x96\\xb7\\xec\\x27\\xbb\\xf5\\x29\\x53\\xf3\\x04\\x0c\\xd2\\x5b\\x78\\xce\\x47\\x55\\x27\\xe0\\xcc\\x59\\xf1\\xef\\x9a\\xe2\\xe0\\x59\\x04\\x31\\x58\\x2b\\x2d\\xf8\\x14\\x14\\x99\\x82\\x9a\\x2c\\x5f\\x7b\\xbe\\x35\\x98\\xe4\\xc9\\x6c\\xc0\\x1e\\xde\\x2f\\x43\\xb6\\x56\\x05\\xb4\\x88\\x59\\x37\\x09\\xc0\\x94\\xb5\\xa0\\x42\\xb2\\x85\\x55\\xfb\\x52\\x27\\xa6\\xd1\\x56\\x37\\x6f\\x3f\\xf0\\x7b\\xd5\\xc8\\xbc\\x68\\x04\\xd3\\x9a\\x32\\x82\\xac\\x59\\x70\\xba\\x08\\xae\\xbf\\x75\\x42\\xb8\\x45\\xf6\\xb5\\xc2\\x38\\xc2\\xce\\x20\\x44\\x3f\\x7f\\x77\\x55\\xd7\\x5f\\xe4\\xfa\\x16\\xb9\\x64\\x4c\\xa3\\xe2\\x1d\\x91\\xa9\\xa8\\x7c\\x68\\x61\\x15\\x74\\x8a\\x16\\xc0\\xae\\x4a\\xe4\\xe1\\x6d\\x1c\\x71\\xae\\x60\\x0b\\x39\\xcd\\x25\\xe5\\x63\\x3b\\x39\\x9f\\xee\\x7f\\xf2\\xe3\\x62\\xbe\\xd2\\x51\\x25\\xc6\\xfd\\x5c\\x7f\\x5f\\xfa\\x2d\\xa2\\x35\\x3f\\xd3\\x5b\\x78\\x4a\\x1b\\x1b\\x03\\x19\\x77\\x47\\x58\\xb7\\x39\\x0c\\x44\\xdc\\xc9\\x2f\\xca\\x42\\x01\\xdf\\xe1\\xa3\\x75\\x69\\xde\\x05\\xf0\\x66\\x4d\\x08\\xb9\\x0d\\x6e\\x2b\\xad\\xc2\\x1b\\x92\\xf9\\xce\\x87\\x21\\x42\\x35\\x7b\\x96\\x15\\x08\\x0a\\xb7\\x65\\x9a\\x24\\x6f\\xf0\\x85\\x2a\\xdb\\x17\\xdf\\xda\\x70\\xcf\\x17\\x54\\x15\\x7b\\x13\\xbc\\x03\\x2b\\x4c\\x5d\\xeb\\x8e\\x10\\x68\\xb4\\x69\\x2b\\x93\\x16\\x5d\\xa3\\x5e\\xfc\\x9d\\xa8\\x6a\\xcb\\xe6\\xf8\\x0f\\x01\\xbb\\xc2\\x6f\\x57\\x5e\\xc5\\xaf\\x5b\\x05\\x0e\\x98\\x28\\xaf\\xde\\x6c\\x3b\\x78\\xe7\\x33\\xeb\\x5a\\x91\\x24\\x92\\xf7\\x65\\xbc\\xad\\x73\\x1b\\x95\\xe3\\xab\\x88\\x96\\xb6\\x17\\x58\\xbf\\x91\\x3b\\x9a\\x15\\x68\\xf9\\xc5\\xb4\\x60\\x33\\xcf\\x45\\xdc\\xc1\\x75\\x0d\\xa2\\x06\\x6c\\x60\\x8d\\xc3\\xd3\\x43\\x73\\x8e\\x84\\x8d\\xc3\\x90\\xcd\\x47\\x44\\x32\\xe9\\x91\\xd7\\xaa\\x2c\\x5b\\x27\\x81\\x42\\x1e\\xfe\\x55\\xe3\\x6b\\x0b\\x42\\xc1\\xf4\\x9a\\xe2\\x77\\x48\\x0b\\x0f\\xc5\\xff\\x68\\x5b\\xb5\\xa3\\x1b\\xe3\\xa0\\xfa\\x44\\x82\\x38\\x16\\x07\\x70\\x37\\x54\\x8a\\x5c\\x9b\\x0e\\x1c\\xc6\\xc6\\x35\\x04\\xa4\\x07\\x57\\x9a\\x36\\x32\\xb3\\xc9\\x6f\\xcd\\x0d\\xe5\\xea\\x1e\\x4d\\x6e\\x87\\xc0\\xca\\xf7\\xb6\\xca\\xe3\\x12\\x0d\\xb8\\xb1\\xf4\\x61\\x5c\\xe6\\xa7\\x5a\\x81\\x65\\x4f\\x39\\x04\\x28\\xb6\\x4c\\x21\\x3e\\x72\\x7e\\xec\\x3a\\xe7\\xf9\\xf4\\x2d\\xb9\\x06\\xf4\\xde\\x1f\\xda\\xdd\\x34\\xa3\\xda\\x2a\\xeb\\x12\\xb4\\xd9\\xa1\\x85\\xf4\\xa6\\x0c\\xb0\\xc2\\x67\\x45\\xf5\\x30\\xb4\\x81\\xfc\\x97\\x6a\\x09\\x3c\\xe2\\x4a\\x30\\x91\\x6a\\xf6\\x05\\xee\\x94\\xb0\\x87\\x85\\x19\\x3a\\x94\\x9d\\x56\\x9c\\x4b\\x7e\\xf5\\x96\\x03\\xbb\\x62\\x43\\x60\\xe7\\xb4\\x08\\xd9\\x8c\\xa5\\x09\\xda\\xf5\\xa9\\x2a\\x6d\\x40\\x15\\xbd\\xb6\\xf9\\x7a\\xd4\\xff\\x0c\\xf0\\x5c\\x8f\\x0c\\xd5\\x47\\x6a\\x93\\x44\\x26\\xa0\\x59\\xf2\\x44\\x44\\x46\\xe5\\x86\\x4f\\x08\\x9e\\x0f\\x06\\x75\\x61\\x59\\x10\\x66\\x2d\\x7c\\x1e\\x79\\xa6\\xc7\\x5f\\xa3\\x14\\xb7\\xba\\x2c\\x64\\x3b\\x0d\\x37\\x65\\x3e\\xef\\xe5\\x93\\x17\\x2d\\x1d\\x33\\x2c\\x8d\\xd6\\x44\\x92\\xea\\xf1\\x04\\xfb\\x19\\x57\\xba\\xa5\\x20\\x49\\x44\\x2d\\x10\\xb5\\x6a\\xf8\\xea\\xe8\\xff\\x82\\xcd\\x8f\\x46\\xa0\\x49\\x4b\\xec\\x2f\\xcb\\x9f\\xad\\xf1\\x0c\\xf7\\x1a\\x6e\\xec\\xd0\\x54\\x7d\\xaf\\xdc\\x7a\\xdb\\xaa\\x45\\x03\\x78\\x3f\\x94\\x3a\\x46\\xb4\\xad\\x0e\\x6d\\xd7\\xf2\\xca\\xb5\\x56\\x17\"},\n{{0xef,0x00,0xb3,0xc1,0x81,0xf6,0x32,0x7d,0x02,0x25,0x67,0x51,0xcb,0x51,0xc2,0xc3,0x6c,0x0c,0x0a,0x78,0x07,0x63,0x40,0x54,0x8f,0x5b,0xc0,0x70,0xd8,0x6d,0x9e,0x26,},{0xdb,0x14,0xcd,0x32,0x58,0x8f,0xd7,0x41,0xe8,0xf4,0x2e,0x51,0x21,0xcc,0x81,0x1a,0xd4,0x50,0x63,0xf2,0x81,0x41,0xe8,0x3c,0x66,0x8f,0x07,0xd9,0x12,0x28,0xf0,0x49,},{0x13,0x9f,0x9c,0xb9,0x9b,0x99,0x5b,0xe6,0x58,0x8c,0xdd,0xb5,0x05,0x16,0x94,0x83,0x8f,0x9d,0x82,0xa6,0x07,0x61,0xfd,0xe3,0x04,0xb0,0x02,0x7f,0xf8,0x65,0x84,0xbf,0x65,0xc7,0x3c,0xc6,0xd2,0x53,0xe5,0x60,0xf6,0x55,0x25,0xdf,0x04,0xbf,0xe1,0x46,0xc8,0x3b,0x42,0x26,0x9c,0xf3,0x78,0x0f,0x8b,0xc3,0x92,0x43,0x78,0x94,0xae,0x01,},\"\\x7d\\x6a\\xbe\\xc7\\xa1\\x1a\\xf6\\x73\\x24\\xce\\x17\\xb1\\xd2\\x0b\\xb4\\x0c\\x66\\x8a\\x21\\x9b\\xc9\\x5d\\xf0\\x5e\\x32\\x5d\\x86\\xf8\\x87\\x95\\xe2\\x64\\xd4\\x54\\xfc\\x5f\\xa7\\xd9\\xc8\\xaa\\xfe\\x77\\xe9\\x0a\\x6a\\xf6\\xb5\\x74\\x53\\xd8\\x5b\\x97\\x0b\\x55\\x2a\\x85\\x6b\\xa6\\x59\\xab\\x31\\xbd\\x8a\\x66\\x0e\\xb7\\xd3\\x58\\x7b\\x45\\x3e\\x5c\\x5f\\xc6\\xb7\\x94\\x72\\xb2\\x6e\\x8f\\xf7\\xdd\\x6d\\xb6\\xbe\\x35\\x72\\x54\\x8b\\x0d\\x75\\x4e\\xd4\\xd9\\x85\\xb8\\xd9\\x96\\x5f\\x88\\xb9\\x52\\xfc\\x4f\\xa3\\xb7\\x61\\xcc\\xff\\xc3\\x53\\x54\\xdb\\x0e\\xb9\\xc5\\xa1\\x71\\x71\\x8a\\x8a\\x55\\x92\\x87\\x02\\x13\\x82\\x7d\\x36\\x91\\xba\\xe7\\xfd\\x9c\\x63\\xf2\\x05\\x03\\xe0\\x43\\x19\\xb5\\xe9\\x53\\x57\\x9d\\xe4\\x7e\\x3e\\xf8\\xe1\\x62\\x85\\x49\\x50\\x3c\\xb4\\xf6\\x87\\x1b\\xa2\\x5d\\xb8\\x73\\x47\\x08\\x0e\\x53\\x1a\\x51\\x7a\\x8b\\x72\\x21\\xe6\\xad\\x84\\xdf\\xf8\\x32\\x56\\xd9\\xab\\x9a\\x43\\x3d\\xe8\\x71\\xb9\\xcb\\x9c\\x50\\x44\\x58\\x9e\\x67\\x20\\x6b\\x31\\x7a\\x52\\x06\\xae\\xba\\x96\\xc9\\x2f\\xd6\\x09\\x40\\x71\\xc6\\x44\\xfe\\x52\\x65\\x8d\\xed\\x92\\x20\\xcf\\x6a\\xbd\\x50\\xe2\\x30\\x5a\\x1c\\x90\\xfd\\x66\\xaa\\xcf\\xb3\\x8e\\xb0\\x5e\\xaf\\xf6\\xca\\x5f\\x85\\xf4\\x29\\xcd\\x57\\x71\\x6e\\xb8\\x77\\x39\\xa0\\x2b\\x64\\xcf\\xfa\\x08\\xc4\\xf6\\x85\\xb0\\x03\\x10\\xb5\\xb4\\x84\\x49\\x20\\xdf\\x21\\x5a\\x9f\\x24\\xa1\\x76\\x13\\xae\\xf8\\x5f\\xec\\x94\\xf5\\x11\\xdc\\x8a\\x42\\x94\\xed\\xdc\\xea\\x11\\xc0\\x8c\\x0b\\x39\\x9a\\x23\\xd9\\x16\\x38\\x3e\\x29\\xad\\xeb\\x98\\xc6\\x5d\\x41\\xc7\\x05\\xa5\\x7f\\x84\\x05\\x20\\xfa\\x80\\x8d\\x7f\\xd2\\x5f\\xdc\\xe1\\x59\\xf7\\xa0\\x84\\xd0\\x62\\x97\\x4b\\x30\\x13\\x2a\\x57\\x12\\x42\\xba\\xff\\x41\\x96\\x24\\x6d\\x6d\\x75\\x7b\\x31\\x2e\\x9d\\x60\\x85\\x53\\xd2\\xdc\\x53\\xb6\\x23\\xb2\\xe9\\x5c\\x75\\x38\\xfb\\xc5\\xde\\xb6\\x2b\\xa7\\x37\\x76\\xd8\\x5e\\x51\\x18\\xfa\\x1a\\x30\\x2d\\x4d\\x07\\x6d\\x99\\xe1\\x00\\xf0\\xdf\\x11\\x9c\\x33\\xfc\\x66\\xcd\\xfe\\x6f\\xd4\\x4d\\x71\\x99\\x7b\\x78\\xc8\\xf7\\x89\\x0c\\x70\\x73\\x46\\x05\\x62\\x20\\xd1\\xe9\\xde\\x88\\xbc\\x17\\x3c\\xf0\\xb7\\x6c\\xb3\\x02\\x87\\x7e\\xc1\\x6a\\xf4\\x6e\\x4c\\x31\\x63\\x9f\\x54\\xee\\xdc\\x16\\xda\\x9d\\x9e\\xb0\\xad\\x95\\xbd\\xa5\\x45\\xdf\\xc4\\xa7\\x32\\xb6\\xda\\x98\\x14\\x13\\x6a\\xb1\\xb9\\x39\\x2a\\x07\\x1b\\x02\\x24\\x73\\xb3\\x49\\x05\\x57\\x69\\x8b\\x77\\xe7\\x44\\x7a\\xc8\\x59\\x0d\\xca\\xf4\\xf2\\x42\\xad\\x3d\\xfb\\xc0\\xdf\\x71\\x6c\\xc0\\xea\\x75\\x36\\x26\\x97\\x3d\\xf0\\x8d\\x93\\x5d\\x17\\x8e\\x33\\x12\\xfb\\xe2\\xa7\\xba\\x9c\\x50\\x93\\xc5\\x3b\\x92\\x55\\xea\\xca\\x29\\xb7\\x25\\x78\\xe3\\xba\\x1b\\xdf\\xaf\\x0c\\x9e\\xce\\x21\\xa5\\xdf\\xf6\\xea\\x42\\x15\\x24\\xf7\\x0f\\xc1\\x90\\x4e\\x9a\\x2c\\xf7\\xc5\\x18\\xbf\\xcc\\x7e\\x36\\x73\\xee\\x87\\xff\\x27\\xe1\\xca\\x2a\\xc3\\x2b\\xcb\\x40\\x91\\xcb\\x34\\xa8\\x2a\\x71\\x56\\x3f\\xf6\\xa6\\xa1\\x5d\\xa0\\xeb\\xd5\\xbd\\x10\\x25\\x6c\\xe9\\x60\\xf4\\xea\\xa7\\xfe\\x35\\xe1\\x28\\x88\\x60\\x50\\xd0\\x49\\xfe\\xc3\\xa4\\xab\\x16\\xd5\\xb0\\xc1\\x07\\x26\\x7e\\xae\\x1a\\xb8\\x01\\xea\\x5b\\x91\\x98\\x38\\x39\\xda\\x1c\\x48\\x8c\\x12\\xf8\\x64\\xd7\\xc3\\xa7\\x7f\\x2b\\x6a\\xe2\\x7d\\x54\\x01\\x09\\xf6\\x8d\\x78\\x36\\x4b\\xb6\\x27\\x18\\x3b\\xd5\\x03\\x91\\x75\\x47\\xaa\\xf3\\xb3\\xa1\\x80\\x9d\\xa0\\x25\\x77\\xb3\\xf0\\x3a\\x9a\\x3f\\x5a\\xf4\\x8c\\x88\\x02\\xe2\\x97\\xc8\\xbb\\x63\\xdb\\x6a\\x86\\xd3\\xea\\x72\\x7a\\x6d\\x71\\x48\\xb3\\xaa\\x44\\x4b\\x8d\\x16\\x8f\\x38\\xc6\\xc8\\xf2\\x40\\x88\\xa4\\x9a\\xf3\\x31\\x77\\xa3\\x44\\xad\\xab\\x2c\\xf6\\xe0\\x8e\\x0c\\xb0\\x37\\x1e\\xd5\\x2b\\xde\\xad\\x13\\x2f\\x77\\xe7\\xae\\x3e\\xe5\\xd8\\xfb\\x17\\xaf\\xc0\\xa0\\xbb\\x73\\x11\\xb9\\x56\\x0b\\x67\"},\n{{0xd0,0x71,0xd8,0xc5,0x57,0x8d,0x02,0x59,0x49,0x93,0x2a,0xa6,0xbf,0x6a,0x80,0xb1,0xcc,0x41,0x2f,0x10,0x6f,0x91,0x57,0x4e,0xe2,0x46,0x54,0xb4,0x45,0xee,0x9a,0x97,},{0x9b,0xcb,0xf7,0xd2,0x21,0x2f,0xb6,0x2c,0xcc,0xf8,0xb6,0xc7,0x68,0x03,0xa5,0xea,0x24,0x40,0x9d,0xa6,0x28,0x7e,0xfb,0xb8,0xb1,0xf0,0xc7,0xb3,0x0e,0xbd,0xd9,0x3e,},{0x0c,0x29,0x7a,0xbe,0x0f,0xd8,0xeb,0xcc,0x6b,0x77,0x19,0x98,0x75,0x5e,0x2c,0x6b,0xe0,0x7c,0x81,0x2b,0x5a,0x80,0x54,0x49,0x57,0x06,0x31,0x70,0xca,0x69,0x43,0x2e,0x72,0xb6,0x0d,0xaa,0xe3,0x22,0x95,0x8a,0x22,0x38,0xcd,0x6a,0x46,0x28,0x94,0xa3,0x87,0xee,0xf6,0x5b,0xf9,0x6f,0x63,0xf5,0x4c,0x08,0x56,0x87,0xa5,0x02,0x75,0x0e,},\"\\x3e\\x8e\\xe7\\x0e\\x51\\xe5\\x6e\\xf5\\x7f\\x6e\\x66\\xb3\\xa8\\x84\\xaa\\x04\\xa7\\xb4\\xd4\\x59\\x9f\\xb9\\xb4\\x39\\x96\\xb3\\x93\\xa8\\x68\\x09\\x35\\x12\\xea\\x74\\x1a\\x0c\\x6a\\x94\\xf4\\x0c\\xe4\\x98\\x62\\xd2\\xfd\\x1f\\x75\\x51\\xf4\\x64\\x7a\\xbd\\x80\\x75\\xbc\\x1b\\x74\\x2a\\xd4\\x0e\\x29\\xa6\\x04\\x61\\x30\\x12\\x24\\xfe\\x8f\\x76\\x92\\xb1\\x47\\x72\\x78\\x2b\\x4e\\x89\\x6b\\x63\\xfe\\x05\\xab\\xd5\\xff\\x53\\x14\\xf9\\xec\\x80\\x75\\xf2\\x8d\\x90\\x8c\\xca\\xaa\\xce\\x5e\\x90\\x5e\\xa7\\xf5\\x7a\\x49\\x1b\\x99\\xb3\\x59\\x1e\\xea\\x54\\xa6\\xb7\\x81\\x91\\x67\\x74\\x9d\\x38\\xa0\\x47\\x62\\x06\\x76\\xa1\\xa7\\xaf\\x11\\xf4\\x85\\xa5\\x5b\\x7c\\x87\\x9e\\x68\\x50\\x38\\x08\\x58\\xc8\\xf4\\x5c\\x0c\\x1c\\xcb\\xd7\\x40\\x6e\\xd0\\x99\\xd8\\x4a\\x74\\x71\\xb9\\x35\\x0c\\x4d\\xdb\\x28\\x47\\x0b\\xf5\\xbf\\x32\\x7d\\x5b\\x3c\\x22\\xd8\\x99\\xb4\\xc6\\x60\\x83\\x9e\\x10\\x4a\\x06\\x22\\xae\\x85\\xc8\\x4a\\xa9\\xfc\\x7f\\x0a\\x2c\\x7c\\xeb\\x6e\\x69\\x1c\\x49\\xc0\\x64\\xb5\\x31\\x34\\x99\\x68\\x3e\\x8e\\x03\\xb2\\x11\\x5e\\xda\\x7d\\xda\\xd5\\x5a\\x49\\xf9\\xfb\\xe6\\x25\\x44\\xf9\\x14\\x51\\x1c\\xfb\\xec\\x6b\\x84\\xdb\\xde\\x7e\\x80\\x90\\x9b\\x45\\xfb\\x10\\x50\\x2e\\x2c\\xaa\\xa7\\x21\\x24\\xfd\\x94\\x56\\xa3\\x87\\x2f\\x95\\x92\\x70\\x7e\\x9a\\x4c\\x50\\x12\\xda\\xa9\\x72\\xea\\xf6\\x5f\\xab\\xe5\\x53\\xde\\xbe\\x82\\x57\\x01\\xef\\xef\\x5c\\x75\\x6b\\xb4\\x65\\xe9\\x66\\xab\\x68\\xdd\\x52\\xf3\\xdd\\x00\\xa4\\x5c\\xf6\\xdc\\x3f\\x19\\xb8\\x6b\\xb0\\xdb\\x4a\\x86\\xe4\\x66\\x98\\x85\\xa0\\x74\\x69\\x6a\\x67\\xd8\\xea\\x21\\x18\\xc7\\x66\\xef\\x62\\x5f\\x8a\\x98\\x02\\x6f\\x9f\\x4a\\x3c\\x5c\\xcc\\xf9\\x84\\x6f\\xdc\\x90\\xed\\x93\\xec\\x7c\\x1f\\x3c\\x70\\x86\\x95\\x4f\\xa2\\xf0\\xa4\\xca\\x96\\xd4\\x01\\x84\\xaa\\x57\\x54\\x55\\x27\\xa1\\xf9\\x65\\xc1\\x1d\\x84\\x3c\\x90\\xc5\\xa5\\xe0\\x8d\\x7c\\x11\\xf2\\xd5\\x61\\x00\\x4e\\x90\\x57\\x48\\x52\\xeb\\x50\\x46\\xaa\\x1e\\xa7\\xb6\\x10\\x09\\xfd\\x5d\\xd7\\xd6\\x24\\x2a\\x8d\\xf5\\x8a\\x9e\\x8e\\x55\\x5c\\x7f\\x4c\\xdc\\x13\\x0d\\x69\\x01\\xbf\\xe6\\x79\\x7f\\xdc\\x6c\\x39\\xbe\\xec\\xfb\\xba\\xb6\\x62\\x5b\\x2e\\x4f\\xb9\\xd8\\x00\\x02\\x76\\xd4\\xa9\\x4f\\xc6\\xfc\\x10\\x51\\xfe\\xff\\xf5\\xad\\xeb\\x72\\x4b\\x87\\x09\\x0d\\xb0\\xa2\\xc6\\x97\\xd0\\x56\\x66\\x4d\\x99\\x1f\\xad\\x80\\xdc\\x80\\xfa\\xb7\\x00\\xb1\\xf1\\xf2\\xee\\x27\\x73\\x4e\\xbc\\x26\\xb2\\xa6\\x41\\xc3\\x2a\\x0c\\x91\\x1b\\x27\\x0a\\xc7\\x6b\\x0d\\xa5\\xc0\\x89\\x14\\x97\\x1c\\x91\\x12\\x46\\x3a\\x70\\x70\\x9c\\x0d\\xda\\xc7\\x91\\x00\\x16\\xf9\\x13\\xf6\\x21\\x00\\x86\\xd7\\x25\\x5c\\xef\\x11\\x95\\x57\\x10\\xf6\\x51\\x88\\x9c\\x83\\x62\\x1d\\xd8\\xa4\\xfc\\xd5\\x36\\x63\\x02\\xd6\\xc9\\xb5\\x6e\\xef\\xcf\\xac\\x85\\xc1\\x4a\\x94\\x78\\xb6\\xd7\\x18\\x07\\x54\\x28\\x80\\x07\\x60\\x51\\x5c\\xab\\x5f\\x3d\\x44\\x55\\xe2\\xb9\\x70\\xdf\\x9f\\xe4\\xbe\\x83\\x83\\xd7\\x04\\x83\\xbb\\xdd\\x75\\x60\\x71\\xf5\\x3b\\x2f\\x9c\\x27\\x5c\\x7c\\x85\\x12\\xd1\\x63\\x51\\x8f\\xe5\\x55\\x83\\x75\\x14\\xc8\\x67\\x76\\xc9\\x47\\xf2\\x9a\\x77\\x57\\x02\\x87\\x44\\x6b\\x69\\xbe\\x40\\xc8\\xd4\\xab\\xbd\\x65\\xef\\x25\\x07\\x24\\x9b\\x5a\\xec\\x33\\xac\\xb7\\xb8\\xbd\\x3f\\x35\\xbc\\x85\\x9b\\xa4\\xe3\\x7b\\xdb\\x49\\xcf\\x91\\x3d\\x93\\x98\\x9c\\x44\\x38\\xd2\\xab\\xcf\\xa3\\x88\\xcc\\x89\\xd7\\x8a\\xc0\\x62\\x70\\x65\\x64\\x92\\xe7\\x52\\x8f\\x29\\xbd\\xfe\\x8c\\xbb\\x9b\\xfa\\x9e\\x73\\xc1\\xda\\x01\\x3f\\xc3\\xce\\x21\\x05\\x65\\x76\\x13\\xff\\x62\\xbb\\x0c\\x3b\\xf4\\xde\\xe3\\xb0\\xd2\\x65\\x9c\\x72\\x6e\\x7b\\xcd\\x9e\\x97\\xec\\xce\\x92\\x47\\xd4\\x60\\x0d\\xfe\\xaf\\x60\\x44\\x4e\\xd8\\x62\\xb0\\x0b\\xa1\\x1e\\x70\\xea\\x88\\xd4\\xf0\\xb6\\xb5\\x39\\xfc\\x9f\\x36\\xbb\\x2a\\x1a\\x9e\\xd2\\xb3\"},\n{{0xe9,0xd4,0x86,0xc2,0x9a,0xe8,0x11,0xb9,0x42,0xe1,0x0d,0x81,0xf0,0xa6,0x71,0x63,0x17,0xb8,0x42,0xc2,0xc5,0xbf,0xde,0xf5,0x5c,0xc4,0x32,0xb7,0xfc,0xae,0xb8,0x18,},{0x43,0xa5,0x2d,0x15,0xb9,0xf7,0x31,0xd7,0x37,0xb1,0xc4,0xdb,0xc3,0x22,0x27,0xa4,0x80,0x96,0x30,0x91,0xd2,0xc6,0x28,0x6f,0x48,0x2e,0xf1,0xe8,0x36,0x70,0x54,0xe5,},{0x65,0x19,0x1a,0xa8,0x85,0xdd,0xab,0x9f,0x67,0x27,0x18,0x79,0x95,0x2f,0xc6,0xaf,0xfe,0x41,0xca,0x20,0xeb,0x3b,0xcd,0x86,0x67,0x31,0x61,0xb0,0x3b,0x53,0x26,0x94,0xd6,0xdd,0x88,0x90,0x8e,0xb1,0xb1,0xee,0xc0,0x03,0xcf,0xcb,0xe6,0x14,0x6b,0x45,0x38,0xe2,0x1d,0xf5,0x59,0x69,0x91,0x2a,0x0d,0x7d,0x88,0x18,0xad,0x79,0x59,0x0d,},\"\\x14\\xfe\\x1e\\xd5\\xbb\\xbd\\x76\\xcc\\x73\\xdc\\x56\\x50\\xbd\\xa9\\x2d\\xe8\\x63\\x26\\xe2\\x4d\\x2f\\x1f\\x62\\x24\\xba\\x85\\x68\\x94\\x4d\\x6f\\xe3\\x44\\x26\\x75\\xdb\\x96\\xf1\\xd8\\x49\\x8f\\x16\\x34\\xff\\x9b\\x6e\\x50\\xcb\\xa9\\xdb\\x4e\\xb0\\xb0\\xb0\\x21\\xb2\\xbe\\xcf\\xce\\x4b\\xef\\x33\\xc4\\xce\\x0e\\x32\\xc8\\xa9\\x83\\x89\\xec\\xa9\\xe0\\x59\\xa6\\x62\\xd6\\xf0\\x37\\xc5\\x4a\\xa4\\x0c\\x76\\xcd\\xee\\xe8\\x56\\x50\\xf0\\x89\\xea\\x56\\xe1\\x38\\x3a\\xb0\\xf5\\xc3\\x6f\\x6d\\x66\\x45\\xff\\x7e\\x87\\x66\\x73\\x01\\xf9\\x44\\xfd\\xc2\\xed\\x35\\xb0\\xd2\\xc3\\x5c\\xb2\\xe4\\xb4\\x56\\x36\\xe7\\x49\\x8e\\x92\\x7f\\x58\\x46\\xb3\\xe1\\xed\\xfb\\xd1\\x60\\xa4\\xae\\xf3\\x32\\x0c\\x34\\x28\\x49\\x6b\\xda\\xaf\\x7d\\x3e\\xd5\\x6e\\xf0\\xb7\\x25\\x4a\\xc5\\x97\\xbe\\x58\\x9a\\x70\\x58\\x44\\x16\\x30\\x0c\\x1a\\xdc\\xfb\\xa4\\xf2\\x2c\\xfd\\x4c\\xd6\\x61\\xe1\\xf5\\x0f\\x15\\x5d\\x17\\x2f\\xa5\\x74\\x8d\\x29\\x6b\\x29\\xcd\\xd7\\xeb\\x81\\x21\\x48\\x3f\\xf1\\xd9\\xfe\\x95\\x3f\\x94\\x51\\xc7\\xc7\\xa5\\x42\\x00\\x72\\x85\\xee\\x72\\x46\\xbc\\x0f\\xde\\xa9\\x38\\x81\\x40\\x29\\xab\\xce\\x05\\x7a\\x0e\\xcb\\x97\\x4b\\x12\\xd3\\x60\\xea\\xb6\\xaf\\xd3\\x07\\x97\\xd6\\x14\\x45\\xad\\x2b\\xac\\x7e\\x52\\xbc\\xe4\\x34\\x63\\x15\\xf7\\x8e\\xb8\\x75\\x42\\xd5\\x95\\x28\\xb2\\xf6\\xc5\\x6d\\x66\\x24\\x1c\\xb4\\x42\\x03\\x3f\\x64\\x3d\\x3d\\x2a\\x67\\xcb\\x63\\x7d\\x8d\\xa9\\x5d\\x4f\\xd1\\x23\\x4b\\x03\\x1a\\x3e\\x51\\x72\\x3a\\x1d\\x26\\xe6\\xf5\\xca\\x07\\x98\\x73\\x21\\xad\\x11\\xa9\\x0f\\xcc\\x1d\\x4e\\x2b\\x0b\\x89\\x66\\x50\\xc3\\xa7\\x51\\x8d\\x56\\x55\\x29\\xbe\\xa8\\x06\\xa0\\x5d\\x44\\x7e\\x08\\xd2\\xa6\\xa3\\xdb\\xf1\\xa3\\x69\\x15\\xb2\\x95\\x7c\\xa5\\xb4\\x0e\\x58\\xb9\\x7a\\xd0\\x36\\x97\\x35\\xc4\\x28\\xbd\\x6d\\x69\\xbd\\x21\\x00\\x44\\xb6\\x51\\x41\\x8d\\x98\\xb0\\x59\\xd9\\x0c\\x83\\xe4\\x60\\x11\\xf4\\x1c\\x03\\x2c\\x56\\x55\\xa5\\xef\\x21\\xac\\x2c\\x8c\\x2b\\xc9\\x4b\\xe0\\x7e\\x45\\x42\\x6a\\x7a\\xe5\\xd4\\x7b\\x45\\xf2\\x7c\\xf4\\x28\\x9c\\xa4\\xdd\\xab\\xe0\\x8a\\x12\\xb9\\x10\\x20\\x7d\\xab\\xb3\\x4a\\x46\\xab\\x75\\xce\\x69\\xb5\\x8e\\x7e\\x17\\x66\\x4b\\xf3\\x35\\x9a\\x8f\\xb6\\x8e\\xb0\\x32\\xc9\\xea\\xa6\\xdf\\x87\\x38\\x29\\xf0\\xe0\\x84\\x85\\x53\\xf7\\x32\\xe1\\xc3\\xc0\\x84\\xb3\\x2b\\x7a\\xf7\\x50\\x74\\xe7\\xbb\\xaa\\x4e\\xb5\\xd7\\xea\\xd7\\xaf\\xf9\\x75\\x80\\x10\\x9b\\x60\\xf4\\xc7\\x92\\xf9\\xe2\\xa6\\x51\\x37\\xb0\\xaa\\x48\\x17\\x5b\\x81\\x15\\xd9\\x13\\x05\\xf4\\xc7\\x7e\\x2d\\x08\\xe7\\xe8\\xd7\\xe7\\x78\\x5c\\x96\\x68\\x42\\xc2\\xe3\\x50\\xfe\\xd4\\xf9\\xe3\\x3b\\xf6\\xe1\\x84\\xc5\\x50\\xb4\\xb0\\x6e\\x95\\x74\\x14\\xed\\xf5\\x2f\\xa0\\x79\\xe8\\x19\\x73\\x45\\x84\\x61\\xfb\\xb9\\xb7\\xd7\\xd3\\x4b\\xef\\x15\\x03\\x57\\xf4\\x32\\xca\\xac\\x3a\\xe9\\xf3\\xdc\\x96\\xeb\\x5a\\x2d\\x12\\x3e\\x09\\xed\\xa1\\x70\\x2e\\x1d\\x10\\x70\\x17\\x7b\\xb2\\x20\\xc4\\x23\\xc0\\x96\\xec\\x24\\x42\\x43\\x85\\xc6\\x79\\xbe\\x02\\xef\\x84\\xd0\\x9e\\xd1\\x02\\xf4\\x9c\\xad\\x3b\\x1f\\xd6\\x70\\x67\\x9a\\x39\\x71\\x4f\\xf1\\xd6\\xe4\\x22\\x8d\\x8d\\x7d\\x0e\\x19\\xed\\x0e\\xba\\x13\\x2f\\x21\\x28\\xd4\\x7b\\xaa\\x56\\x9a\\x8e\\xcb\\x7b\\xd4\\x8a\\x82\\x62\\x82\\xf9\\xcf\\xcb\\xf6\\x0d\\xde\\xce\\xaf\\x1d\\x02\\x13\\x2c\\x8a\\xff\\xed\\x3a\\x03\\xd2\\x34\\x0d\\xeb\\x78\\x7c\\xd6\\x49\\xc5\\x1c\\x6e\\xcb\\x9f\\xf7\\x5d\\x7a\\x7b\\x4e\\xf9\\xb1\\x51\\x39\\xcf\\xea\\x27\\x62\\xab\\x18\\x61\\x51\\x97\\xa6\\xb5\\x1f\\x6e\\x75\\xdb\\xd0\\x45\\x73\\xa2\\x44\\x80\\x94\\xd0\\xcd\\xeb\\x0f\\xe4\\x58\\x58\\x83\\xff\\x9b\\x68\\x82\\x4a\\x04\\xb8\\x3e\\xc9\\x1c\\xf8\\x4a\\xcd\\x6a\\x74\\x46\\xcb\\x1f\\x5e\\xe3\\x7d\\x5d\\xf8\\x0f\\x17\\xcb\\x2b\\xdc\\x3f\\x31\\x22\\xa8\\xfa\\xf7\\x6e\\xbd\\x06\\xcf\\xe8\\x17\"},\n{{0xe6,0xfa,0x10,0xdb,0xb4,0x78,0xe1,0xe3,0x6b,0x35,0xdf,0xeb,0x02,0x50,0xf6,0x3c,0x08,0x51,0x50,0x70,0xae,0x79,0xb2,0x2f,0x04,0x7e,0x27,0x17,0x08,0xd6,0x4f,0x5c,},{0xe0,0x2e,0x1f,0x2b,0xd8,0x79,0x2e,0xf4,0x83,0x48,0x1c,0x6d,0x11,0xf7,0xc7,0xc9,0xdb,0xde,0xec,0xc9,0x85,0x94,0x32,0xe7,0xf2,0x79,0xe9,0xd1,0x73,0xd3,0x11,0x64,},{0xc0,0x3c,0x47,0x03,0x59,0x12,0x7e,0x9d,0xe3,0xaf,0x0e,0x0e,0xd7,0xd3,0xb1,0x9f,0xae,0xe0,0xec,0x14,0x0b,0x79,0xc2,0x99,0xe2,0xcb,0x6d,0xac,0x0a,0x3e,0x7e,0x31,0x41,0x41,0xcc,0x85,0x4b,0x45,0x96,0xce,0x4c,0x51,0xc7,0xb0,0xde,0xc8,0xa5,0xc8,0xcf,0x09,0x36,0x20,0x53,0x61,0xd5,0x36,0x5f,0x4b,0xcc,0x07,0xc4,0x28,0x7c,0x07,},\"\\xad\\x31\\x60\\x75\\x8d\\x8c\\x08\\xa6\\x61\\x52\\x5c\\x95\\x28\\x0a\\x37\\x18\\x87\\x49\\x69\\x85\\x9f\\x1c\\xc9\\x18\\xe3\\x4f\\xec\\x00\\x8a\\xcf\\x23\\xb8\\x89\\x6e\\x8d\\x50\\xc3\\xc0\\x51\\x23\\x31\\xdc\\x89\\x78\\x0f\\x8b\\x10\\xfc\\x34\\x9c\\x67\\x5c\\x4c\\xd8\\x2a\\x5d\\xf8\\x58\\x6b\\x43\\xc8\\x64\\x44\\x8f\\xac\\x00\\xb8\\x47\\xb9\\xc9\\x80\\x54\\xab\\x79\\x3f\\x63\\xc7\\x1a\\xa5\\xe5\\x24\\x8e\\x22\\xd0\\x69\\xbd\\x3f\\x85\\x2a\\x3b\\x8c\\x6e\\x2a\\xc8\\xef\\x86\\x1d\\x90\\xbc\\xd9\\x84\\xbf\\xca\\x87\\x58\\x3e\\x59\\xe9\\xa7\\x46\\x8f\\x29\\xb8\\x08\\xdc\\x2f\\xe5\\x30\\x2a\\x98\\x9d\\x6f\\x2e\\xcd\\xe7\\x58\\x5c\\xd9\\xbe\\x4e\\x4c\\x76\\x1c\\x4d\\x4b\\x3e\\xea\\xf4\\x69\\x9f\\x65\\x56\\xef\\x03\\x9a\\xf2\\xb8\\x0f\\x94\\x07\\x60\\x5a\\xc3\\x97\\x35\\x1d\\xd8\\x55\\x95\\x58\\x44\\x95\\xba\\xa1\\x77\\xb0\\x8c\\x88\\xd2\\xec\\x1f\\xc4\\xe3\\x2d\\x1c\\x0b\\x8d\\x7e\\x7a\\xc5\\x83\\x9d\\xfb\\x92\\x3f\\x09\\xb3\\x23\\xe7\\x8e\\xce\\xb7\\xe9\\x6c\\x06\\x04\\xb0\\x1a\\x19\\xe4\\x9c\\x9b\\xea\\xf4\\xf2\\x5e\\xc4\\xa8\\x4c\\x1a\\x08\\xf2\\x38\\x0e\\xdd\\xc3\\xa7\\xf0\\x12\\x18\\x49\\x59\\xcc\\xd1\\x9e\\xcb\\xba\\xc6\\x5e\\xac\\xa1\\x55\\xce\\xe9\\xec\\xfe\\xc1\\x1e\\x7f\\xee\\x05\\x8e\\x17\\x4f\\xc4\\xed\\x7c\\x67\\x9f\\x2c\\x15\\x63\\x1d\\x4e\\x15\\x27\\xbc\\xdb\\x0e\\x3b\\xb0\\x81\\x5f\\xfd\\xff\\xc0\\xc8\\x56\\xbe\\xf0\\xdc\\x0f\\x5c\\x82\\x37\\xf7\\x09\\x8e\\x26\\xbd\\xb6\\x9e\\x87\\x82\\xd1\\xca\\x51\\x11\\xec\\x3c\\x7e\\xdb\\x42\\x5d\\xff\\x80\\x32\\x02\\x6c\\xba\\x3d\\x2e\\x08\\x1b\\x71\\x31\\x0d\\xb9\\xba\\xda\\xd1\\xad\\x02\\xf1\\xec\\xcc\\x53\\x7d\\x87\\x4c\\xd1\\x8c\\x6b\\xb0\\x12\\x21\\xf7\\x1e\\xe6\\x62\\x50\\xd9\\x4c\\xf8\\xec\\xce\\xaa\\x96\\xd3\\xc5\\x7e\\xea\\x2b\\x0a\\x8e\\xc7\\x24\\x29\\xd7\\x60\\x64\\x88\\xbd\\xf1\\x9e\\xc3\\xbb\\x16\\xe5\\x08\\x67\\xc7\\x93\\x7d\\xef\\x09\\xfc\\x78\\x3f\\x20\\xa2\\xa5\\xec\\x99\\x25\\x3d\\x6b\\x24\\x0d\\xf4\\x67\\x7d\\xd2\\xd5\\x27\\x7b\\x01\\xc5\\xb8\\xe5\\xbd\\x6c\\x7d\\xf0\\x87\\x42\\x05\\xbc\\x8c\\x2f\\xff\\xdb\\xa1\\x31\\x46\\x74\\xd3\\x1c\\x9b\\x2c\\x91\\x99\\x22\\x8e\\x19\\xe0\\x42\\x18\\x34\\xc1\\x65\\x7d\\x06\\x98\\x28\\x69\\x16\\xc7\\xe3\\x92\\xf0\\xab\\xd5\\x54\\x5b\\x96\\x3a\\xc1\\xff\\xa9\\x97\\x21\\x61\\x6c\\x23\\x79\\x6f\\x85\\xc3\\x4a\\x5c\\x66\\x4a\\xe8\\x1d\\x16\\xb2\\x16\\xa5\\xb0\\xcf\\x5b\\xc6\\xb5\\xa9\\x08\\x29\\x72\\x85\\xd6\\x16\\x44\\x12\\x8f\\x88\\x6f\\x38\\xaf\\x9e\\xdd\\x25\\x19\\x3d\\x7e\\xcc\\x77\\xa7\\x99\\x94\\x27\\x8d\\xa0\\x71\\xf5\\x44\\x95\\x93\\x7f\\xee\\xf5\\xa5\\x19\\x57\\x52\\x7c\\x3e\\xec\\x7c\\xb0\\xb4\\xe8\\xaa\\x7a\\x4e\\x85\\x6d\\xef\\xd5\\x7d\\xd9\\x23\\x34\\x15\\x1b\\x98\\x6a\\xa6\\x9c\\xa6\\x92\\x60\\xd1\\xe2\\xd7\\xb5\\x3c\\x05\\x67\\x7e\\xe0\\xd2\\x16\\xb2\\x8d\\x03\\x62\\x52\\xdd\\x30\\x06\\xde\\xbe\\x1b\\x65\\x74\\xa2\\x5e\\x6b\\x19\\xdf\\xb4\\x8f\\xa6\\x43\\x16\\xaf\\x8f\\xd6\\x8d\\x78\\x93\\xb3\\x97\\xe7\\xdb\\x57\\x80\\xab\\x27\\xbf\\x87\\x26\\xff\\xf6\\x05\\xd3\\xb4\\x6d\\x80\\x05\\x95\\xb4\\x62\\x4b\\xee\\x30\\x2c\\x96\\x43\\x26\\x03\\x4b\\x52\\x34\\xd1\\x75\\xdf\\xdc\\xc2\\xce\\x88\\x2e\\x65\\xb3\\xd9\\x3a\\x04\\x38\\xf6\\x92\\xe9\\x69\\x5d\\xe1\\xf2\\x4c\\x70\\xa7\\x9b\\xee\\xd2\\x54\\x15\\xec\\x5a\\xae\\xcf\\x33\\x91\\x95\\x3b\\x2f\\xfd\\x45\\x3a\\x8f\\x04\\x67\\x56\\x1a\\x4a\\x47\\xee\\x14\\x4a\\x43\\xfd\\xff\\x83\\xdf\\x2b\\xea\\x5f\\x66\\xa7\\x22\\xb5\\x2a\\xbe\\x86\\x13\\xf2\\x0c\\x59\\x4a\\xf0\\x98\\x2e\\xb3\\xf0\\x45\\x05\\xa5\\x24\\x61\\xdd\\x03\\x4d\\xa8\\x6c\\x36\\xca\\x16\\x21\\x77\\x05\\xc0\\x48\\x23\\x91\\x1d\\x72\\xa2\\x47\\x69\\x51\\x76\\x33\\x56\\x28\\x86\\xf2\\x50\\xf2\\xcf\\x78\\x8b\\x8f\\x32\\x86\\x4a\\x94\\x74\\xf5\\x7e\\x62\\xe5\\x7d\\xe8\\xfd\\xaf\\x95\\x9a\\x6b\\x72\\x28\\x74\\x40\\xa8\"},\n{{0x05,0x8e,0x36,0x80,0xb8,0xfc,0xc0,0xaa,0x14,0x90,0x08,0x9c,0x11,0x24,0x67,0x7f,0x98,0xd7,0x4b,0x1b,0xfb,0x71,0xee,0x86,0x63,0xf0,0x25,0xf0,0xd9,0x46,0xcd,0x20,},{0xec,0x72,0xce,0x0e,0x82,0xc6,0xa3,0xb2,0x12,0x43,0xd2,0xf0,0x0e,0x9e,0x88,0x3a,0xdb,0xc5,0xcb,0x63,0xb3,0xd9,0x36,0xef,0xa5,0x0c,0x07,0xcb,0x92,0x91,0x48,0xe2,},{0x57,0x34,0xec,0x50,0xa7,0xf8,0x2e,0x48,0x53,0x6b,0xdc,0x43,0x70,0xcf,0xef,0x2e,0x15,0x0a,0x63,0x1d,0xab,0xaf,0x89,0xed,0xcf,0x0f,0xda,0xbe,0x4f,0x58,0x39,0xf4,0xf5,0xfb,0xd8,0xdf,0x8e,0xc4,0xa3,0xac,0xd4,0x0a,0x8b,0xfb,0x96,0x3d,0x18,0x55,0xff,0x92,0x74,0xdb,0xc3,0x31,0x65,0xb5,0xe6,0xd3,0x7a,0x23,0x9d,0xac,0xe9,0x03,},\"\\xe6\\x3d\\x14\\xf5\\xbe\\xa7\\xa1\\xab\\xb8\\xfe\\xe6\\x97\\x74\\x6c\\x22\\x80\\xdf\\xd0\\x62\\x2d\\xe7\\x35\\x72\\x26\\xcc\\x07\\x42\\x72\\x2a\\x32\\x29\\xbe\\x12\\x6b\\x08\\x3e\\x86\\x8a\\xea\\xf0\\x7d\\x2f\\xc9\\x7a\\xdc\\x33\\x42\\x70\\x96\\x74\\x19\\x3c\\xa2\\x81\\x74\\x4e\\x85\\x0e\\xa1\\x54\\x40\\x05\\x0a\\xec\\x93\\x0e\\x45\\xd7\\xa8\\x7b\\x8a\\xc8\\x01\\x5c\\x89\\x67\\xc2\\x00\\x33\\xa5\\x32\\xd2\\x95\\x91\\xb1\\x35\\x58\\x6c\\xe0\\xfd\\xd2\\xe6\\x68\\xb5\\xc8\\x64\\xb3\\xbd\\xe7\\x0c\\x7e\\x71\\x9a\\xd2\\x41\\x93\\x12\\x51\\x86\\x19\\x33\\xff\\xbf\\xa9\\x64\\x83\\xff\\x82\\x85\\x67\\x48\\xc5\\x6d\\xc2\\x6e\\x25\\x7d\\x69\\x2e\\x51\\x34\\xd8\\x2f\\xc7\\x19\\x1c\\x11\\x0d\\x95\\x90\\xd3\\xfc\\x75\\x1c\\xd6\\x36\\xb0\\xc4\\x6f\\x44\\xf8\\x80\\x3e\\x59\\xe2\\xf9\\x3f\\xa0\\xcb\\xe2\\x47\\xa1\\xa6\\x25\\xb4\\xbc\\x2c\\x7b\\x1f\\xdc\\xeb\\x5a\\x2b\\x22\\x59\\x1f\\xa6\\x13\\x7c\\x54\\x04\\xdf\\xec\\x6a\\x69\\x63\\x9e\\x3f\\x63\\x2b\\x59\\x76\\xab\\x9f\\xe1\\xc6\\x3a\\xa3\\xda\\x9d\\x52\\xb0\\x44\\x00\\x8f\\x3a\\xe4\\x4b\\x7c\\x36\\x4f\\x08\\x56\\x64\\x32\\x3a\\x88\\xeb\\x45\\x83\\xe8\\x71\\x40\\xf7\\x63\\x78\\x2b\\xff\\x88\\x19\\xcf\\x74\\x1a\\x87\\x5d\\x50\\x6c\\x92\\x9d\\x34\\xbb\\xd4\\x30\\x07\\xde\\x4b\\x18\\xf6\\x87\\xa7\\x58\\x11\\x11\\x28\\xb1\\xdb\\x86\\xfc\\x5a\\xd2\\xfb\\x9f\\xca\\xd1\\x2c\\x9d\\xd2\\x8f\\xee\\x5a\\xd1\\x0d\\xe0\\x73\\x9f\\x8e\\xfd\\x9b\\xff\\x66\\xf8\\x40\\xb1\\x1b\\x3f\\x91\\xc5\\xe0\\x7c\\x21\\x45\\x2c\\xab\\x24\\x24\\x2b\\x6e\\x32\\x16\\x5c\\xd1\\xe6\\x95\\x72\\xbf\\x21\\x6e\\x86\\x04\\x53\\xda\\xd2\\xfd\\x12\\x9c\\x33\\x37\\x58\\x58\\x0b\\xb7\\xd0\\xf1\\x95\\x09\\x74\\x5e\\x85\\x14\\x63\\xd1\\x27\\xa5\\xf9\\xbe\\x21\\xfe\\x54\\x9c\\xae\\x55\\xd5\\x6b\\x8b\\xea\\x80\\xbf\\xaf\\xda\\xc1\\x0a\\xcd\\x83\\x8e\\xa8\\xaf\\x31\\xc0\\x07\\xdc\\x32\\xbf\\xd7\\x40\\x82\\xd9\\x11\\x0a\\x3e\\x91\\xe6\\x1e\\x03\\x57\\x58\\x7e\\x4e\\xd3\\x28\\x27\\xad\\xe9\\xb6\\x91\\x0a\\x98\\x8c\\x1d\\x3b\\x2d\\xd2\\x2c\\x0e\\xe7\\x6e\\xf3\\x5f\\xe1\\x5e\\x09\\x94\\x04\\xa4\\x5d\\x4b\\x2a\\xca\\xb9\\x12\\x3e\\xcc\\x45\\x55\\x0a\\x40\\xfa\\xf8\\x33\\x6b\\x46\\xc6\\x30\\xa9\\x08\\x03\\x58\\xff\\x8b\\x8e\\x58\\xaf\\x0b\\xcc\\xbd\\x35\\x01\\x0c\\x1e\\xcc\\x12\\x81\\x66\\x55\\xa5\\xec\\xeb\\xa9\\x5a\\xd3\\xf5\\x03\\xa1\\x8e\\xc5\\xbe\\xce\\x3a\\x33\\xf4\\x69\\xdf\\xe9\\x17\\xe1\\xc5\\x5e\\xf1\\xd8\\x1e\\x5a\\x75\\x56\\x1e\\x6b\\xbd\\x99\\xc6\\x53\\xa6\\xd0\\x95\\xb9\\xf3\\x87\\x91\\x1e\\x40\\x33\\x2f\\x62\\x16\\xf9\\x56\\xa3\\x5c\\xf7\\xd9\\x9a\\x9f\\xdd\\x0c\\x44\\xc5\\x1e\\x90\\xa5\\x64\\xf1\\xc3\\x6b\\xf3\\xd4\\x0a\\x7f\\xaf\\x4b\\xa2\\x8b\\x1a\\x12\\x0b\\x32\\x05\\xfb\\xac\\x1a\\x98\\x56\\x92\\x90\\xbe\\x37\\xc5\\x8b\\xbd\\x74\\x5c\\xe0\\xfb\\x74\\x83\\x52\\x70\\xab\\xa2\\x25\\x2a\\xda\\xec\\x15\\x7d\\xc4\\x24\\x61\\x22\\x1a\\x2c\\xff\\x68\\x7b\\x9e\\x65\\xce\\xb5\\x7c\\x2d\\x77\\x70\\x0a\\xea\\x63\\x20\\x48\\x6c\\x5b\\x1b\\xec\\x9c\\xc5\\x3e\\x7e\\xf9\\xe4\\x8f\\xcd\\x1b\\x77\\x83\\xac\\xbe\\x75\\xa6\\xbe\\x02\\x67\\x27\\x88\\x12\\xdb\\xf3\\xd2\\x57\\x6c\\xf7\\xad\\x39\\x11\\x27\\x1a\\xce\\xbe\\x0f\\x2c\\x04\\x60\\x2a\\x08\\x0c\\x8b\\x96\\xc1\\x20\\xfd\\x86\\xfd\\xa2\\x82\\xaa\\x4e\\x1c\\x13\\x1f\\xe9\\x7c\\x90\\x7c\\x15\\x85\\x5f\\x87\\x75\\x5f\\x51\\x1c\\x03\\x7b\\xef\\xad\\x0f\\x56\\xb3\\x9f\\x32\\xa2\\x13\\x3a\\x22\\xf3\\xd5\\xa9\\xbe\\xc3\\x44\\x3f\\x29\\xa6\\x94\\xe9\\x7f\\xe0\\x5e\\x10\\xfb\\x8e\\xf9\\x99\\x13\\x02\\xb9\\xe0\\xd8\\x4d\\x92\\x9a\\x19\\xeb\\x03\\x47\\x1f\\x3a\\x86\\x13\\xd3\\x93\\x68\\xe1\\x58\\x83\\xa7\\xe4\\x97\\x0b\\x53\\xcb\\xaf\\x29\\x29\\xd8\\xde\\x43\\x1b\\x48\\xb4\\x35\\xd7\\x53\\x3c\\xaa\\x2e\\x36\\xce\\xab\\x6c\\xdd\\xb3\\x46\\xe5\\x35\\xe5\\x15\\xc4\\xb3\\xdb\\x76\\xde\\x07\\xd9\\x85\\x54\\x14\"},\n{{0x51,0xba,0x3a,0x4f,0x3d,0x85,0xd1,0x54,0x8c,0x2f,0x24,0x94,0xa3,0x51,0x1f,0x3b,0x95,0x15,0x66,0x3d,0x7e,0x85,0x37,0x0f,0xb6,0x15,0x02,0x37,0xe9,0xbc,0x98,0x0b,},{0x77,0x49,0xde,0x02,0x10,0xbc,0xe0,0x6d,0x48,0xf5,0x9b,0x95,0xae,0xb1,0x52,0x8f,0xd9,0xb4,0xe5,0x2c,0xdd,0xe2,0x2f,0xb8,0x19,0x3b,0xed,0xd5,0xdf,0x12,0x81,0x7c,},{0x16,0xfb,0x29,0x0c,0x91,0x3b,0x20,0xeb,0x1c,0x3d,0x7b,0x79,0x82,0x49,0xeb,0x84,0x59,0xd4,0xbe,0xe8,0x12,0x5d,0xb2,0xb3,0xf1,0xda,0xab,0x8a,0xf9,0xd9,0xa7,0x00,0xed,0x79,0x8a,0xdd,0xd8,0x02,0xdf,0xcd,0x29,0x7a,0x41,0x25,0x93,0xcd,0xa7,0xbe,0x99,0x79,0xa1,0xf0,0x93,0x50,0xe8,0x6f,0x69,0x8a,0xc3,0x38,0x0e,0x34,0x1d,0x07,},\"\\xd1\\x8d\\x0c\\xbf\\xc1\\x6d\\x0f\\x9b\\x67\\xf2\\x53\\x9a\\xd6\\x20\\x7c\\xd9\\x21\\x7a\\xd5\\xed\\x03\\x33\\xcd\\xdb\\x10\\x41\\xe0\\xac\\x2b\\xdd\\x92\\x02\\x76\\x62\\x96\\x52\\xb4\\x9c\\xbc\\x98\\x02\\x59\\x3e\\xc3\\x64\\xea\\x79\\x5a\\xbc\\xd1\\x58\\x20\\x85\\xf5\\x5b\\xc6\\x6c\\x48\\xfd\\x3e\\xed\\xe6\\x18\\xd6\\x36\\x96\\x17\\x10\\x0e\\xae\\xcc\\xc1\\x5f\\x24\\x9d\\x6e\\xee\\x5b\\xb2\\xc4\\x3c\\x01\\xb0\\x62\\x3f\\xe6\\x03\\xce\\xee\\xe4\\x9b\\x40\\xfb\\x7c\\x53\\xfc\\x68\\x47\\x36\\x73\\xc0\\x9b\\x1a\\xc7\\x7e\\xa9\\xbe\\xb7\\xe8\\x53\\x03\\x79\\xa8\\x6d\\x69\\xec\\xd1\\xff\\x11\\x81\\x3f\\xbb\\x88\\xf6\\x92\\xf0\\x5e\\xf1\\x32\\x07\\x42\\xb4\\xfe\\x7e\\x06\\xd5\\xba\\x71\\x65\\x66\\x46\\xcd\\x75\\x00\\xde\\x19\\xbb\\x93\\xd8\\x44\\x53\\x66\\x03\\xf4\\x0b\\xd4\\xae\\xea\\xf0\\xc4\\xdb\\xc0\\xac\\xfd\\x20\\x2b\\x28\\x6b\\x64\\xaf\\xb8\\x3d\\x4a\\x37\\x8d\\xd4\\x5e\\xe3\\xc1\\xdf\\x6b\\x3e\\xf1\\x6b\\x8b\\x1a\\xcc\\xbc\\x04\\x06\\x32\\x50\\xec\\x47\\xb8\\x6a\\xe5\\xa7\\x1d\\x1d\\xab\\x38\\xb5\\xeb\\x80\\xd6\\x63\\xfa\\xa7\\x88\\xf8\\xb5\\x9a\\x75\\x4c\\x0f\\x9c\\x9f\\x6d\\x90\\x62\\x52\\xaf\\x46\\xab\\x1f\\xff\\xed\\x27\\x6d\\x23\\x88\\xdb\\xe7\\x0d\\x96\\xba\\x67\\x47\\xd1\\xfe\\xd4\\xfc\\x0b\\x55\\x29\\x3d\\x5f\\x78\\x7b\\xda\\x0c\\x0d\\xf4\\x6a\\x73\\xf4\\xaa\\x7d\\x29\\xe1\\xc9\\xcc\\x85\\xcd\\x04\\x3e\\x3d\\xff\\xe0\\x57\\x46\\x2c\\xa5\\xfe\\x5c\\x64\\x70\\xe7\\x39\\x27\\x6f\\x8b\\x53\\x4c\\x01\\x72\\xe4\\x60\\xf3\\x40\\x48\\x7a\\x56\\x94\\x68\\xaa\\x58\\x90\\xcc\\x14\\xf2\\x0d\\x67\\xd7\\x9c\\x66\\x1e\\x87\\xfe\\xba\\xc6\\x27\\x59\\x71\\xc3\\x73\\x08\\x07\\xeb\\xf1\\x75\\xe0\\xde\\x10\\x49\\xbe\\xe6\\x7c\\x89\\x5e\\x57\\xb7\\x1a\\xb8\\xa2\\xf3\\xcf\\x36\\x41\\xfd\\x54\\x8d\\x09\\x41\\x4f\\x5f\\xc3\\x02\\x6a\\x0a\\x35\\xf6\\xba\\x95\\x16\\x73\\x94\\x49\\x41\\xcb\\x23\\x6f\\x3d\\x19\\x76\\xdc\\x69\\x07\\x7d\\x95\\x14\\x50\\xe7\\x66\\x03\\x16\\x98\\x8f\\x6f\\x2a\\x6f\\xbb\\xff\\x3b\\x37\\xce\\xaa\\x02\\xfd\\x6f\\x02\\x73\\xbd\\x80\\x31\\x85\\xa1\\x09\\x03\\x9c\\x63\\xf2\\x51\\x9b\\x98\\x3d\\xaf\\x65\\x54\\x25\\x3b\\xed\\x54\\x97\\xc0\\xb0\\xbd\\xaa\\x0b\\xd4\\xa1\\xfa\\xc9\\x00\\x26\\xad\\xe3\\xe4\\x0c\\x55\\x4c\\xff\\x2c\\xcb\\x36\\x99\\x0e\\x71\\x55\\x67\\x08\\xc5\\xc4\\x03\\x92\\x56\\xff\\xc7\\x33\\x7e\\x5f\\xea\\x11\\xf5\\xe9\\x0d\\x3e\\x4d\\x93\\x35\\x91\\x79\\x11\\x6a\\x85\\xc2\\x41\\x36\\xca\\x34\\x83\\x5c\\xd3\\x40\\x12\\xe4\\xd7\\xdd\\xc7\\xb7\\x21\\xc2\\x46\\xc7\\x37\\x00\\xe2\\x76\\xdc\\x2f\\xf9\\xf2\\x77\\x0b\\x43\\xc8\\xe8\\x0a\\x17\\xf0\\x1d\\x32\\x68\\x0b\\xae\\x22\\x8e\\x64\\x23\\xa8\\x80\\xc3\\xfb\\x99\\x6a\\xb8\\xd2\\x21\\xbc\\x62\\x74\\xac\\x5f\\xa7\\x70\\xd2\\x05\\xfc\\x87\\x8f\\xba\\x9b\\xbd\\x77\\x6a\\x3d\\x79\\xed\\x77\\x04\\x89\\x50\\xf3\\x6d\\xc0\\xaa\\x3c\\xcd\\x28\\xe4\\x75\\x6a\\x99\\x19\\x04\\xae\\x05\\x1b\\x8a\\x4b\\x7d\\xe3\\xa1\\xf2\\xad\\x0f\\xb4\\x5a\\x33\\xd0\\xc6\\x82\\x25\\x84\\x1f\\x8e\\xb6\\x5b\\x6a\\x16\\xe9\\x5f\\x89\\x35\\x91\\xe1\\xaa\\x73\\xa6\\x4f\\x0d\\x2e\\xe9\\x38\\xab\\x69\\xad\\xcc\\x8c\\x59\\x51\\x8b\\xec\\x50\\x1c\\x39\\xf1\\x39\\x17\\x4b\\xbb\\x00\\x69\\x9e\\x1a\\x0f\\x0e\\x0d\\x88\\x9a\\xae\\x54\\x3a\\x55\\xe6\\xac\\x56\\xd5\\x20\\x4c\\x1a\\xde\\x1f\\x27\\xd8\\x2a\\x6a\\x95\\xe1\\x4b\\x2d\\x69\\x09\\xdd\\xa7\\xbf\\xaa\\x7f\\x48\\x7f\\xb6\\x19\\x59\\x01\\x4b\\x78\\x79\\x5c\\xb4\\x63\\x9f\\x09\\xf0\\xd3\\x29\\xfe\\xb3\\x5c\\xcf\\x52\\xed\\xc2\\xdb\\x72\\x19\\x14\\xe4\\x23\\x30\\x68\\x89\\xa4\\x83\\xfe\\xe8\\x76\\x36\\x0e\\xe3\\x26\\x33\\x53\\x19\\x07\\x0c\\x56\\x4f\\x3a\\x8b\\x95\\x3f\\x52\\xf4\\x15\\x13\\xa2\\x26\\x08\\x83\\xc3\\x8d\\xd9\\x78\\xa2\\x48\\x60\\x4a\\x41\\xbd\\x4b\\xfc\\x9e\\x84\\x18\\x4d\\xc9\\xe8\\x4d\\x25\\x89\\xf4\\xaf\\xff\\x84\\x17\\x82\\x4c\\xe5\\xad\\xba\"},\n{{0x7d,0xde,0xc5,0x26,0xa4,0x97,0x1d,0x89,0x12,0xa6,0xbd,0x43,0xc6,0x9f,0x92,0xed,0x86,0x44,0x2b,0x15,0xf4,0x2f,0xba,0xbb,0xf2,0xd1,0x7e,0xff,0x98,0x99,0x31,0x61,},{0x0d,0xfe,0xff,0xb2,0x76,0x23,0x09,0xb4,0x73,0x4e,0x4c,0xe2,0x52,0x3c,0xf1,0x86,0x31,0x49,0xf7,0xe1,0x9a,0x7c,0x14,0x7e,0xc0,0x89,0x9e,0x11,0x0c,0xa9,0xd8,0x7d,},{0x9e,0x60,0x3b,0x01,0x5f,0x42,0x87,0x1b,0x78,0xeb,0x27,0x52,0x3f,0xbb,0x7c,0xe9,0x62,0xfc,0xa3,0x2a,0xe2,0x70,0xe8,0xe1,0x2d,0xca,0xdd,0x25,0xaa,0x85,0x2b,0x89,0x1f,0x6f,0xef,0x77,0xb5,0x9a,0x54,0x6c,0x9a,0x7a,0x7c,0xac,0xb5,0x5e,0x1d,0x32,0xad,0xc8,0x05,0xae,0x5f,0x61,0xa6,0x9e,0x67,0x64,0xc7,0xc0,0x82,0x92,0xeb,0x03,},\"\\xe8\\x77\\x4a\\x45\\xd4\\xd8\\xf8\\x6d\\xda\\x5c\\x08\\x80\\x2b\\xa2\\x47\\x2e\\xf3\\xc8\\xd3\\x6c\\x7f\\x38\\x3a\\xc0\\x46\\x12\\xa4\\x64\\x38\\x2e\\x9d\\x6c\\x07\\xd8\\xd3\\x58\\x22\\xc5\\x3f\\x43\\x88\\xf5\\x15\\x36\\x14\\xfe\\xfa\\xf4\\x63\\x74\\x74\\x7b\\x9d\\x4f\\xd4\\x46\\xa8\\x64\\x76\\x9a\\x4c\\xad\\xe8\\x43\\xc1\\xea\\xb8\\x57\\x43\\x19\\x11\\x2f\\x01\\x79\\xd2\\xea\\x9e\\x3c\\x19\\x5d\\xc0\\x68\\xf0\\x69\\x74\\x62\\xb9\\xe0\\x7c\\x87\\x94\\x87\\x0f\\x8f\\xb8\\xff\\xc0\\x81\\xe4\\x58\\x6a\\xfb\\xcd\\xba\\x7a\\x4f\\x59\\x25\\xe9\\xfd\\x9e\\xc9\\x42\\xd8\\x43\\x47\\x33\\xc2\\xdd\\xd5\\xe2\\x9b\\xbd\\xfc\\x73\\x42\\xb9\\x28\\x68\\x71\\x9b\\x54\\x40\\x88\\xa4\\x8e\\xba\\x4c\\x82\\xf1\\x87\\xdd\\xca\\x8f\\x47\\x46\\x25\\xa7\\x1c\\xf6\\xb7\\xaa\\x5f\\x08\\x1c\\x74\\xf7\\x40\\x8f\\x53\\xb7\\x81\\x63\\x6e\\x7e\\x9d\\x29\\xb0\\x7f\\xdb\\x6d\\x9c\\x35\\xe5\\xeb\\x38\\x2d\\xb7\\xa3\\x1a\\x8b\\xa5\\x16\\x91\\x5d\\xf8\\xde\\xe9\\xe1\\xad\\x3f\\x18\\x28\\x43\\x68\\x3e\\x8d\\x1d\\xc5\\xd8\\x66\\x9d\\xbf\\xcf\\x09\\x54\\x1a\\x43\\xc0\\xa0\\x46\\x13\\x38\\x1a\\x5b\\x5e\\x4e\\x71\\xb2\\x3c\\x5a\\xd0\\x9b\\x8e\\xaa\\x51\\xcb\\x93\\x8d\\x0c\\x75\\x2c\\xc3\\xd3\\xa1\\x0f\\x10\\xb4\\x2b\\xe8\\xee\\x7f\\x6b\\xda\\xc8\\x07\\x85\\x68\\x43\\x49\\x46\\xbb\\xf5\\x6d\\xa7\\x0e\\x7d\\x54\\x15\\x7a\\x6e\\xfd\\x48\\x46\\xeb\\x15\\x52\\x78\\xc9\\x4c\\x38\\x88\\x65\\x8a\\x7a\\x2f\\x8e\\xa3\\xba\\xc1\\x47\\xaa\\x89\\x16\\x92\\xae\\x8b\\x23\\xf1\\xaf\\xe7\\x1e\\xcf\\xde\\xca\\xa6\\xc1\\x13\\xb5\\xca\\xaa\\xa1\\x93\\x98\\xc7\\xdf\\xe7\\x3f\\xac\\xb4\\x15\\x5f\\xd6\\xba\\xc1\\x8d\\x5d\\xf2\\x12\\x9e\\x8b\\x29\\x07\\xec\\xee\\x15\\x1b\\xdd\\x14\\x7a\\x7c\\x3e\\x46\\xea\\x72\\x75\\x4d\\xe3\\x2c\\xeb\\x06\\x6d\\x9d\\xb1\\xc2\\x6e\\x80\\xdf\\x36\\x31\\x29\\x2b\\x16\\x17\\x4c\\xfa\\x6f\\x1d\\x9c\\x08\\x28\\xb8\\x49\\xc2\\x2d\\x29\\x65\\x1a\\x73\\xe9\\x10\\xd9\\x27\\x58\\x77\\xf4\\x64\\xce\\x93\\x26\\xc6\\xe4\\xed\\x6b\\x07\\xdc\\xb3\\xa3\\x53\\x63\\xc1\\xaa\\x64\\x72\\xe0\\x2c\\x5c\\xd8\\x55\\xe3\\x8a\\xab\\xe9\\x65\\xac\\xe9\\xf3\\xf5\\xa4\\xf5\\xde\\x03\\x00\\x86\\x94\\xcb\\x90\\xaf\\xe4\\x16\\xc9\\xd4\\x86\\x88\\xde\\x7f\\x75\\xcf\\xe2\\x43\\xff\\x7f\\x41\\xe0\\x59\\x31\\x09\\x34\\x90\\x3d\\xb5\\x68\\x84\\x45\\x08\\x26\\x2c\\x89\\x9d\\xfa\\x75\\x0c\\xd6\\xa2\\x82\\x98\\x24\\xba\\x02\\x7a\\xea\\x1b\\x6d\\x01\\x77\\x72\\x6a\\x34\\x3a\\xdd\\x4e\\xcd\\xc5\\xf7\\xe6\\xe9\\x09\\xab\\x7d\\xe6\\x15\\xef\\x28\\x07\\xf9\\xe7\\xd7\\x1c\\xe2\\xf7\\x8a\\xcf\\xf5\\x7e\\xba\\x79\\xc3\\xf5\\xe0\\x7c\\x8b\\x66\\x1c\\x1e\\x30\\x27\\xf8\\x17\\x6d\\x28\\xbf\\xef\\x76\\x7d\\xd6\\x8d\\x4e\\x5d\\x62\\x8f\\xec\\x0b\\xfe\\x88\\x79\\x93\\x41\\xf3\\x06\\x12\\x87\\x34\\xfa\\xd2\\x02\\xaa\\xfc\\x9f\\x11\\x12\\x3f\\xb3\\xe3\\x63\\xd1\\x0a\\xee\\x0d\\xb5\\xe2\\x7a\\x15\\x70\\xdf\\xae\\xe4\\x7e\\x24\\xda\\x47\\x3b\\x07\\xfe\\xe5\\x9a\\x6c\\x93\\xf0\\x98\\x1d\\xbe\\x32\\x5c\\xd8\\xcc\\x2d\\x2e\\xd7\\xdc\\x17\\x16\\x6b\\x26\\x7c\\x1b\\x11\\x05\\x36\\xf2\\x63\\x6b\\xba\\x34\\x75\\x1a\\x78\\xf7\\xf6\\x29\\x81\\x82\\x44\\x2d\\x83\\xc1\\x23\\xbb\\xee\\x4f\\x50\\xc5\\xb0\\xfa\\xcf\\xf0\\x3e\\x7c\\x55\\x6e\\xd9\\xe6\\x4c\\xa2\\x7c\\x4b\\xca\\x5a\\xb0\\xde\\x0d\\x5f\\x9c\\x2c\\xbb\\x54\\xcc\\x2d\\x94\\x73\\xa3\\x2d\\xf9\\x99\\x39\\x0a\\xc2\\xff\\xee\\xd3\\xd4\\xcb\\xa3\\x49\\x73\\xdc\\xec\\x3f\\xba\\xba\\xfc\\x4d\\x54\\xca\\xe4\\xe7\\xe8\\x5d\\x4a\\x6e\\x8a\\xfe\\x45\\xca\\xcd\\x71\\xe0\\xf2\\xe6\\xd0\\x4b\\x4f\\x9d\\x3b\\xcf\\x43\\xd3\\xfa\\x41\\xe9\\x98\\xcc\\xbe\\xd0\\xf1\\x50\\xd5\\xca\\x1d\\x52\\x72\\x93\\x2d\\x93\\xec\\xa1\\x04\\x95\\xc6\\x83\\x34\\xfa\\x32\\x68\\xf3\\x1d\\xe5\\x22\\xcb\\x12\\xa7\\x44\\x9f\\xfb\\x5c\\xb5\\xe8\\xf1\\x46\\x2c\\xd9\\xb5\\x17\\x70\\xcc\\xaf\\x58\\xb1\\xe0\\xd8\\x2e\\xf9\\x29\"},\n{{0x0b,0x65,0x90,0xdd,0x7c,0x2f,0x15,0xf9,0x4a,0x56,0xe2,0x40,0x16,0x93,0x63,0xc2,0x67,0x32,0x30,0x2b,0x9d,0x44,0x0b,0x53,0x27,0x23,0x00,0x2e,0x15,0x5d,0x02,0xd9,},{0xcd,0x18,0xe0,0x32,0x57,0x7c,0x55,0x76,0xf2,0x23,0xf3,0xe3,0xd8,0xa1,0xfa,0x8e,0x9a,0x87,0x0f,0xef,0x09,0xe9,0x40,0x9f,0xaf,0x40,0xd7,0x14,0x3e,0x52,0xfc,0x44,},{0x64,0x2d,0x81,0xac,0xf3,0x8c,0xf0,0x99,0xa8,0x33,0xa7,0x4f,0x2d,0x80,0xb8,0x54,0x48,0xec,0x2b,0x1a,0x5d,0xdc,0x64,0x47,0x0b,0x21,0x3d,0x54,0xb7,0xbe,0x61,0x33,0x68,0x9a,0x71,0x94,0xf5,0xd8,0x97,0x92,0xe1,0x6e,0x5d,0xf7,0x55,0xa4,0xfd,0x9e,0xf4,0x68,0x9e,0xa9,0x52,0x92,0x6e,0x0e,0x4e,0xcb,0x3b,0xd4,0x81,0xfd,0x91,0x02,},\"\\x71\\xfe\\x0f\\xd5\\x5d\\x5e\\xd1\\x20\\x6f\\x28\\xee\\x16\\xe4\\x19\\xfa\\xb6\\xfa\\x66\\xa2\\x51\\xfa\\x6b\\x06\\x01\\xda\\x26\\x1e\\x42\\x9f\\x55\\xb8\\xd5\\xae\\x3f\\x3c\\x52\\xa1\\x7f\\xe1\\xec\\x73\\x4b\\x81\\x0a\\xb6\\x3a\\xad\\xe4\\x44\\x70\\x39\\xca\\x0a\\xe4\\x68\\x7c\\x24\\x35\\xf5\\x61\\xe4\\x6c\\x5b\\x30\\x97\\x17\\xab\\x31\\xe0\\xf6\\x40\\x76\\xb2\\x16\\x92\\x11\\x57\\x2b\\x74\\xe1\\x8a\\x1f\\x45\\x25\\xa6\\x4f\\xa7\\x17\\xa5\\xed\\xf1\\x49\\x75\\x81\\x29\\xcb\\x04\\x03\\x5e\\x7e\\x20\\xba\\x40\\x05\\xb7\\x48\\x09\\xde\\xc6\\x44\\x50\\x4c\\x24\\x54\\xa7\\x7f\\x99\\xb2\\x0c\\x53\\x74\\xf3\\xce\\xe7\\xd8\\xc6\\xb6\\x8b\\x24\\x3c\\xaf\\xb3\\x00\\x98\\xdc\\xe9\\x04\\x90\\xfd\\xc3\\xb9\\x2f\\x54\\x94\\x8f\\x42\\x46\\x39\\xe1\\x9f\\x8f\\x20\\x20\\xd1\\x55\\x13\\xda\\xef\\xad\\xd9\\xe9\\xb1\\x2a\\x84\\x76\\x1e\\x5e\\xce\\xa0\\x88\\xad\\x56\\x1f\\x06\\x20\\x9f\\xd4\\x42\\x3f\\xcd\\x00\\x3f\\xbc\\xd1\\x87\\x3e\\xa5\\x49\\x63\\xa2\\xfa\\x07\\xc7\\x47\\x6b\\x13\\x88\\xf9\\x01\\x5d\\x9e\\xac\\x30\\x5b\\xea\\x5a\\x3d\\xe1\\x94\\xf5\\x5a\\x17\\xb4\\x2d\\x59\\x9e\\x5c\\xe6\\x2c\\x8b\\x7c\\x19\\xe7\\xe7\\x09\\x61\\x37\\xb9\\xd0\\xa6\\x5e\\x63\\xc1\\xa3\\xb8\\x45\\x38\\xca\\x65\\x36\\x9a\\x20\\xe8\\x82\\x2f\\xff\\x5e\\xcb\\x57\\xfc\\x09\\xb4\\xe6\\x84\\x5b\\x4f\\x24\\xd4\\x88\\x69\\x71\\xac\\x1a\\xc2\\x8c\\x77\\x58\\x0e\\xa5\\x67\\x2a\\xd1\\x4c\\xe4\\x44\\x17\\x19\\xc2\\x14\\x54\\x6d\\x07\\x36\\xcb\\x7a\\xd0\\xbd\\x9f\\xb5\\xb2\\x6c\\x6d\\x9c\\x53\\x6b\\xf8\\xc8\\x57\\xae\\x42\\x57\\x7b\\x36\\x34\\x1d\\x39\\x2b\\x43\\x32\\x3b\\xda\\xe7\\xdf\\xaa\\x49\\x19\\x86\\x87\\x2a\\x23\\xd8\\x27\\xc6\\xef\\x8b\\x57\\xe7\\xd0\\x0f\\xea\\xe3\\x83\\x4c\\x46\\x64\\x00\\xaa\\xd1\\xd3\\x67\\x82\\x39\\x84\\xaa\\x02\\xd2\\xef\\x49\\x29\\x14\\xae\\x11\\x27\\xe7\\x55\\x1b\\x81\\x25\\x59\\x37\\x83\\x05\\xe4\\xfd\\x52\\xd8\\xbc\\x7e\\x41\\x57\\xec\\xca\\x45\\x1f\\x43\\xee\\x9f\\x54\\xc8\\x21\\x53\\xc7\\xdb\\xfa\\xf7\\xec\\x35\\x23\\x87\\x73\\x05\\x1b\\x4e\\x58\\x7d\\xb1\\x36\\x95\\x7e\\xc5\\x71\\x38\\x2b\\x90\\x59\\x0b\\x5d\\x10\\x26\\x02\\x45\\x80\\x96\\x6b\\x72\\x52\\xd2\\xcd\\x3f\\x4f\\x16\\x25\\xc4\\x85\\xba\\x90\\x6b\\xff\\x17\\x59\\x92\\x18\\x89\\x78\\xf2\\xd6\\x27\\x4f\\x3a\\x03\\x17\\x49\\xba\\x7e\\x70\\x2f\\x56\\x54\\x7e\\xdc\\x96\\xec\\x26\\x7b\\x84\\x89\\x28\\x80\\xd7\\x50\\xd7\\x31\\x0e\\xbf\\x6d\\xb2\\x41\\x25\\x3c\\xab\\xe4\\xb2\\x5a\\x97\\x74\\x58\\xc6\\xff\\xc9\\xe3\\x53\\xe6\\x2a\\xdf\\x05\\xe6\\xef\\xc0\\xfc\\x1e\\xbe\\x89\\xf5\\x27\\x70\\x5b\\xcc\\x26\\xb7\\x01\\x28\\x56\\x10\\xd9\\x8a\\xa3\\xbf\\x23\\x87\\x2b\\x69\\x96\\xd3\\xde\\x48\\x0e\\x8d\\x09\\xd7\\x83\\xc4\\xa0\\x8c\\xd3\\x83\\xc9\\x01\\x26\\x35\\xaa\\x68\\x97\\x8b\\x50\\x06\\x81\\x8b\\xbd\\xe4\\x4f\\x29\\x87\\x47\\x9b\\xcb\\x2b\\x71\\x1c\\x1b\\xee\\xed\\x27\\xcf\\x09\\x97\\x0a\\x16\\x4e\\x45\\x4f\\x71\\x08\\x22\\xee\\xf5\\x55\\xc1\\xc7\\xbf\\x9f\\x76\\xd5\\x25\\x4c\\xe2\\x20\\xc9\\xaa\\xa7\\x16\\x84\\x7a\\x24\\x94\\x88\\xf9\\xcd\\xb4\\x4c\\x48\\xf4\\x52\\xab\\x52\\xc4\\x0f\\x6d\\x03\\xad\\xc8\\xbf\\x3f\\x19\\x7b\\x25\\xe3\\xd1\\x27\\x83\\x0e\\x74\\xfd\\x81\\xeb\\x14\\xf7\\x54\\x20\\x5b\\x3a\\x48\\x44\\xc5\\x96\\xb6\\xe3\\xa9\\x93\\x6a\\xd6\\xfd\\x9e\\x80\\xa1\\x63\\x20\\xb3\\x81\\xc3\\xff\\xc7\\xb6\\x9e\\xab\\x54\\x53\\x6f\\x55\\xab\\xe2\\x2c\\x91\\xd8\\x98\\x40\\x8e\\x88\\x0c\\x6d\\xbf\\x0f\\xa5\\x64\\x8d\\x51\\x77\\x72\\xca\\xa5\\x35\\x3b\\x25\\xdb\\x60\\x50\\xd7\\x53\\xfa\\xf1\\x98\\xec\\x1d\\x37\\x5d\\xe0\\xfa\\x72\\x18\\x0a\\x93\\xba\\xb0\\x3d\\xed\\x77\\x16\\xcb\\x87\\x50\\x5b\\x68\\xac\\x6a\\x35\\xe7\\x3d\\x0f\\xcf\\x34\\x45\\x7e\\xff\\x82\\x17\\x89\\x52\\x14\\x2c\\x7b\\xac\\x9d\\xfd\\x87\\x2a\\x9a\\x82\\xf8\\x5b\\x24\\xb8\\x8f\\xa4\\x2d\\x4b\\xe0\\xa0\\xca\\x0b\\x2c\\x70\\xf4\\xc6\\x22\"},\n{{0xc6,0xd9,0xac,0xc5,0x17,0x5f,0xa2,0xb8,0x96,0x5c,0x15,0x8c,0x56,0xba,0x0a,0x5a,0x66,0x6a,0xd2,0xc7,0x40,0xcd,0x5b,0xb6,0x79,0xbb,0xa9,0xb1,0xdc,0x50,0x92,0x84,},{0xf5,0xcf,0xca,0x21,0x1b,0x02,0xfb,0xa7,0x72,0x03,0x47,0x70,0x3b,0xf1,0x63,0x1c,0xb3,0x08,0xfa,0xbc,0xda,0xa6,0x74,0x29,0x52,0x7c,0x5b,0x7b,0x67,0x6d,0xba,0xef,},{0x4d,0x2c,0xe7,0x07,0x09,0x0b,0x0f,0x3f,0x41,0x46,0x2f,0xd7,0x5b,0xd6,0x09,0xa2,0x72,0x4f,0xad,0xfe,0x5c,0xa3,0x90,0xe3,0x13,0xa4,0x2c,0xab,0x42,0x86,0x8e,0xd6,0xe9,0xa8,0x91,0x4d,0xc1,0x39,0x09,0xc0,0xd6,0xf6,0x1e,0x63,0x71,0x29,0x57,0xc7,0x6f,0x3b,0xd8,0xb7,0xf5,0x53,0x49,0x71,0x5a,0x3a,0x31,0x75,0x15,0xc0,0x71,0x08,},\"\\xf2\\x45\\x10\\x0c\\xd2\\xd3\\x16\\x48\\xf5\\xf3\\x51\\xbd\\xa5\\x64\\xc9\\xdb\\x4a\\x35\\x82\\x0c\\xc3\\x0e\\xf6\\x51\\x33\\x7c\\x4c\\xd8\\x88\\x07\\x05\\x69\\xd1\\x17\\xa9\\x34\\xb9\\xc9\\x18\\xe5\\xdf\\x8b\\x37\\x44\\xdd\\x66\\x20\\xcc\\xbc\\x49\\xf6\\xb3\\xe5\\x78\\x2a\\x30\\x33\\x9d\\xbb\\x9c\\xbe\\xd0\\x5d\\xd2\\xb3\\xb8\\xc5\\xbf\\x15\\x46\\xe7\\x0a\\xf6\\x36\\xe6\\x61\\x5c\\x48\\xb2\\xc3\\xc2\\xd1\\x9f\\xe3\\x54\\x20\\xdf\\x53\\x14\\xf6\\x3c\\x48\\x12\\xb5\\x8e\\x82\\xa2\\xa6\\x0b\\x18\\x02\\xf3\\x8e\\x50\\x5c\\xe7\\x48\\x01\\x7a\\xfa\\x97\\x7d\\x3f\\x9b\\x1b\\x6b\\xea\\x21\\x92\\xac\\xec\\x73\\xbd\\xce\\x12\\xd6\\x5e\\x68\\x4d\\xa4\\xd8\\xb4\\x1f\\xa9\\xa8\\x6f\\x11\\x08\\x6e\\xdc\\x2d\\x52\\x96\\xf6\\x7e\\xfc\\x53\\xac\\x84\\x07\\x0f\\xde\\x13\\x69\\x3e\\xb2\\x31\\x8f\\x5a\\x8c\\x3b\\x11\\x7c\\x23\\x34\\x22\\xad\\xcd\\xd3\\x52\\xf3\\x28\\xf0\\xec\\x69\\x9a\\x46\\x50\\xc9\\x3f\\x9b\\x4a\\x7d\\x79\\x5d\\x7f\\xc2\\x62\\x2a\\x03\\xd9\\x9b\\x64\\xf7\\xb3\\xdc\\x31\\x94\\xf6\\xc3\\xb1\\xb6\\x9d\\x99\\x07\\xce\\x09\\x24\\x01\\x07\\x3f\\x47\\xa2\\x8f\\x47\\x99\\xd2\\x29\\x09\\x2a\\x1b\\x07\\x41\\x29\\x95\\x4b\\xe8\\x0c\\xa4\\xa3\\xe6\\x58\\x2e\\xe0\\x5c\\x30\\x2c\\xac\\xb7\\x43\\x1d\\x1c\\xa6\\xa4\\x51\\xaa\\xed\\x72\\x78\\xab\\xc7\\xf7\\x85\\x75\\x24\\x1c\\x2a\\x2e\\xea\\x2e\\x84\\xcb\\xf9\\xa3\\x34\\xdf\\x40\\x21\\x09\\xc0\\x28\\xe3\\x45\\x47\\x3a\\x13\\xaf\\x9b\\x00\\x8e\\x20\\xbc\\x8c\\xf0\\xbc\\xef\\xbb\\x7a\\xa7\\x27\\xec\\x85\\x6e\\x99\\x25\\xb4\\xdd\\xd9\\x9d\\xeb\\xa8\\xf2\\x52\\x91\\x1a\\x59\\x01\\x54\\xb5\\x79\\xa8\\xaa\\xa3\\x1f\\x07\\xdd\\x50\\x25\\xdf\\x5c\\xd8\\xa0\\x9f\\x74\\x29\\x64\\xcc\\x8c\\x36\\x5d\\x8a\\xff\\x4e\\xb1\\xd7\\x9f\\x6e\\x5a\\x07\\xda\\xc5\\xf4\\xed\\xe9\\x2b\\x4e\\x2e\\x61\\xd3\\x4c\\xc2\\xd4\\xf0\\xaa\\xaa\\xb0\\x37\\xad\\x5f\\xdb\\x95\\xde\\x6c\\xd5\\x98\\x4e\\xba\\xf7\\xcc\\xe7\\xf0\\x8d\\x0c\\xa0\\xdb\\xbe\\x48\\x3c\\xe3\\xcb\\x35\\xcd\\x79\\x0c\\xa0\\x42\\x70\\x65\\xa3\\x4d\\xf7\\xf4\\xc2\\xaf\\x86\\xef\\xe9\\xb7\\x65\\x71\\x3a\\xff\\x25\\x7f\\x5c\\x1d\\x54\\x70\\x95\\x27\\xad\\x18\\xac\\x33\\xab\\xcd\\xee\\xdb\\x20\\x80\\x64\\xeb\\xae\\xa4\\x83\\x5b\\xe4\\x94\\x2b\\x8f\\xc6\\x66\\xad\\x1b\\x79\\xb6\\x65\\x13\\x09\\xe5\\xea\\x1d\\xa3\\x02\\xd7\\xfb\\xa2\\xe9\\x9f\\x0e\\x63\\x19\\xe8\\x2b\\x99\\x05\\xa1\\xea\\x48\\x2b\\xa0\\x43\\xb6\\x80\\x0b\\x33\\x0d\\xc4\\x8b\\x33\\x13\\xf5\\x9b\\xb2\\xf9\\xe8\\xa7\\xf0\\x7e\\xb1\\x80\\x0a\\x70\\x27\\x45\\xdb\\x14\\xc6\\x29\\x9a\\x98\\x2d\\xad\\x89\\x79\\x54\\x44\\x5b\\x7d\\x98\\xeb\\x58\\x37\\xfd\\x70\\xbf\\x19\\x0c\\x64\\x95\\x52\\xc8\\xe8\\x6f\\xeb\\x7f\\xf5\\xb3\\xed\\x8e\\x0a\\x06\\x70\\x4d\\x45\\x53\\xa3\\xc2\\xdd\\x74\\xf1\\x8e\\xa8\\x23\\x3a\\xe0\\xa5\\x0d\\x91\\x4f\\xe0\\x8f\\xbc\\xd3\\xa1\\x43\\x5f\\xed\\x56\\xa9\\xf3\\xa7\\xef\\xfa\\x14\\x0f\\xb5\\x52\\xdd\\xd2\\x1d\\xff\\xff\\x7f\\xa4\\x73\\x32\\xdd\\xfc\\x1e\\x53\\x17\\xf4\\x17\\x7d\\x5e\\x2f\\x11\\xa0\\x6e\\xc8\\x4c\\xcf\\xb8\\x9b\\x65\\x4e\\xa8\\x1b\\xd4\\x2d\\x7e\\x07\\xa3\\x87\\x30\\x1d\\x0f\\x40\\x26\\x4a\\xbb\\xf9\\xf9\\x10\\x7b\\x30\\xed\\xe8\\x64\\xcc\\x76\\x90\\xc0\\x6d\\x2e\\x24\\x7a\\x06\\x0b\\xb2\\x24\\x4a\\xd7\\x8e\\xd5\\xc5\\x51\\x5a\\x1a\\x2a\\x61\\x2d\\x61\\xe3\\xd9\\x31\\xe2\\x8b\\xc9\\x39\\xb4\\xd3\\x43\\x5e\\xee\\x4f\\x73\\x31\\xb1\\xf0\\xf8\\x53\\x75\\xd8\\x2a\\xc9\\xa7\\x7c\\x43\\x74\\x00\\x32\\x05\\x17\\x46\\xdc\\x92\\x69\\x45\\x8c\\x14\\x7d\\x18\\x8d\\x84\\x40\\x19\\x54\\xa4\\x89\\xcb\\x4f\\xbf\\x9b\\xf8\\x4b\\xa7\\xd8\\xf1\\x00\\x90\\x3c\\xe6\\x78\\x31\\xb4\\x05\\x4d\\x0f\\x58\\xcd\\x88\\x3d\\x54\\x2c\\x49\\x33\\x10\\x3f\\xf0\\x70\\xcd\\xfc\\x9d\\xbb\\x0f\\xcc\\x31\\xef\\xca\\x46\\x6e\\x77\\xa3\\x3f\\x1a\\x81\\x3d\\xa6\\xdc\\x0c\\x7c\\x31\\x58\\x5e\\x8f\\x4f\\xef\\x1e\\xbf\\x42\\xfb\\xd1\"},\n{{0x7d,0xfa,0xe4,0x16,0x41,0x9d,0x7b,0x0d,0x4f,0xc1,0xf8,0x23,0x84,0x0c,0x3e,0x4b,0xd4,0xad,0xcd,0x4d,0xc2,0xdc,0x17,0xb3,0x86,0x37,0xac,0xed,0xac,0xbd,0xbb,0x45,},{0xbc,0x51,0xd7,0x74,0x59,0x31,0x31,0x7e,0x1e,0x34,0x6e,0x2e,0x7c,0x92,0x03,0x91,0x81,0xb6,0xbf,0x38,0xee,0x2f,0x5a,0x44,0xfb,0xe2,0x33,0x9c,0x4f,0x95,0x2a,0xb9,},{0xda,0x34,0xb1,0x98,0x3e,0x8c,0x55,0xe4,0x1f,0xda,0x8e,0xc8,0xab,0xf2,0x3b,0x36,0x7a,0x0d,0xa6,0x06,0xc8,0xcd,0xbb,0x1e,0x8b,0x57,0xe0,0x34,0x3c,0x05,0x57,0xa5,0xf0,0xe8,0x15,0xe7,0xf2,0x2f,0x86,0x05,0xae,0x93,0xb2,0x7d,0x03,0x77,0x6a,0xc1,0xf7,0xde,0x3d,0x79,0x2e,0xa2,0x93,0x3a,0xc2,0x2d,0x2d,0xc2,0x3b,0x32,0x3d,0x0c,},\"\\xec\\x84\\x3d\\xc4\\xdd\\xa6\\xe9\\x02\\xe9\\xbe\\x31\\xb7\\x0f\\x11\\x76\\x3b\\x75\\x7a\\xb6\\xce\\x73\\x34\\xdc\\x00\\x76\\x4b\\x2d\\x08\\x4e\\x9d\\xaf\\x24\\x84\\x48\\x59\\x84\\xee\\x28\\xa2\\x83\\x0f\\xcb\\x94\\xc5\\x41\\xcb\\x46\\x94\\x40\\x03\\x67\\x31\\xde\\x80\\xff\\x56\\x0f\\x53\\x0c\\x9d\\x9e\\x6e\\x1f\\x7d\\x9c\\x4c\\x5b\\xdf\\x50\\xb0\\x4f\\x54\\x03\\xc2\\x9f\\x76\\xd7\\xe3\\x6e\\x00\\xbb\\xea\\x35\\xdb\\x1c\\xc6\\x0d\\xa8\\xd7\\x76\\x52\\x62\\x66\\xc3\\x32\\x4c\\xe7\\xef\\xec\\x64\\x50\\x85\\x96\\x09\\x26\\x68\\x56\\xd7\\x01\\xa4\\x7a\\x48\\xde\\xe8\\xbf\\x37\\x40\\x95\\x65\\xc7\\xfb\\xfa\\x99\\xa2\\x04\\xe5\\x53\\x0c\\x97\\x1c\\x60\\x5b\\x44\\x30\\x5d\\x5c\\x74\\x67\\x89\\x41\\x14\\x25\\x3c\\xf4\\x3c\\xdd\\xf1\\x8b\\x62\\x96\\xdd\\x25\\x4a\\x4d\\x96\\xac\\x70\\x00\\x91\\x81\\x86\\xdf\\xd4\\xbf\\x45\\x4e\\xd3\\x09\\x74\\xc5\\x53\\xd0\\xae\\x15\\x1a\\xd4\\xcf\\x54\\x0c\\xec\\xaa\\xa0\\xb5\\x94\\x8b\\x09\\x85\\xa9\\xc7\\xb6\\xe7\\x81\\x59\\x32\\xba\\xc1\\x17\\x32\\xfc\\x7d\\x10\\x26\\x7f\\x6b\\xf8\\xf1\\xe7\\xc0\\x8d\\x65\\x0e\\x56\\x7b\\x4e\\xdd\\x15\\xae\\x79\\x58\\x41\\x0e\\x42\\xf1\\xf5\\x37\\xfa\\x73\\x2f\\x72\\x7a\\x26\\x83\\x88\\x32\\x1d\\x53\\x44\\xc4\\xe7\\x8b\\xb9\\xa7\\x4e\\xab\\x9d\\x6a\\xbf\\x96\\x89\\x65\\xc6\\x66\\x93\\xd5\\xf1\\x12\\xdd\\x4c\\x14\\xfd\\xfd\\xd9\\x60\\x05\\xea\\xa6\\x75\\x7f\\xa2\\xcc\\x10\\x13\\xfe\\x43\\x27\\xab\\x09\\x99\\xd1\\x17\\xf3\\xdb\\xf3\\x25\\xb0\\x7c\\xd4\\x54\\xd4\\xb1\\x41\\x99\\x1e\\xf7\\xe2\\x3d\\xb5\\xee\\x24\\xbe\\xda\\x35\\x88\\x4a\\xa3\\x70\\x48\\x08\\x64\\x8a\\xa4\\x3c\\xd6\\x25\\x62\\x59\\xf7\\xd3\\xdb\\x5e\\x05\\x53\\x11\\xf2\\x53\\xe8\\xb5\\x7a\\x4c\\xda\\x5a\\xfe\\x0b\\x0a\\xdf\\xc3\\x64\\xe1\\x60\\xca\\x37\\xe8\\xde\\xc6\\xb9\\x5a\\xa6\\x15\\x2e\\x5d\\x5d\\xa6\\xeb\\x91\\xbe\\x0e\\x44\\xff\\xe8\\xe4\\x95\\x33\\x26\\x7b\\x7e\\xb7\\x95\\xf5\\xf8\\xe0\\xb2\\xc3\\x5b\\x29\\xdf\\xbc\\x87\\x58\\x5f\\x22\\xbd\\x5b\\x90\\x9d\\xfd\\x6a\\x5e\\xdc\\x0e\\x3a\\x9d\\x97\\xb0\\xc4\\xf3\\xad\\xc5\\x1e\\x96\\x99\\x37\\xc0\\x8f\\xd6\\x5f\\x53\\x7a\\xac\\xda\\x8f\\x11\\x27\\x5a\\xf0\\x2c\\x33\\x54\\x54\\x26\\x30\\xf3\\x92\\x0c\\x39\\x3f\\x5c\\x42\\xb9\\xfc\\x63\\x3d\\xe9\\xd9\\x4c\\x72\\xe3\\xf2\\x00\\x02\\x34\\x9a\\xd0\\x41\\x80\\x35\\xb3\\xf2\\x5f\\x02\\xca\\x92\\x8e\\x5b\\x2d\\x40\\xa7\\x7a\\x1c\\x3e\\x56\\x22\\x1f\\x4b\\x9d\\xb0\\xc2\\x5b\\x09\\x6d\\x6e\\x5d\\x0f\\xe7\\x58\\xda\\x2c\\x69\\x05\\x3e\\x8d\\x08\\x6d\\xef\\x4e\\xdc\\x6e\\x34\\x53\\x78\\x3f\\xfc\\x63\\xa4\\x96\\x01\\x22\\xd9\\x23\\x67\\x1a\\x90\\x60\\x08\\xba\\xc1\\x05\\x61\\xae\\x62\\x19\\xd2\\xb5\\x1d\\x53\\x67\\xbf\\x13\\xcc\\xab\\xf5\\x93\\x1b\\x9f\\x18\\x6e\\xb1\\x09\\xba\\xcd\\xe4\\x0e\\x1a\\xf2\\xb5\\x64\\x81\\xe0\\xc6\\xdc\\x6f\\x5c\\x54\\x73\\xf8\\x00\\x1c\\xf3\\x71\\x91\\x9a\\xcb\\x40\\xce\\xc5\\xb9\\x62\\xeb\\xba\\x80\\xe3\\x2d\\x6e\\xba\\xc4\\x80\\x6d\\x04\\xd2\\x47\\x68\\xc2\\xad\\x2e\\x3f\\x92\\xa8\\xcb\\xe4\\x77\\x54\\xf9\\xbf\\x61\\x59\\x53\\x52\\x2b\\x26\\x3d\\xc2\\x49\\x37\\xfb\\xd9\\x32\\xc8\\xc4\\x59\\xeb\\x8b\\x10\\x94\\x43\\xaf\\x6c\\x19\\x5a\\x59\\xfd\\x27\\x21\\xb0\\x12\\x56\\x28\\xf2\\xb8\\x14\\x3c\\xf3\\xc1\\x28\\xbc\\xec\\x13\\x92\\xef\\xd1\\x6b\\x73\\x4c\\x10\\x71\\x6d\\x96\\xba\\x7d\\x1f\\x41\\x39\\x17\\xcc\\xaf\\xa5\\xbf\\x5f\\x83\\xf5\\x24\\xfe\\x84\\x06\\xa1\\x52\\x11\\x5e\\xa7\\x70\\xe1\\x74\\x5e\\x82\\xe8\\xb5\\x1d\\x75\\x2b\\x8b\\xd7\\x85\\xdf\\x48\\xbf\\xc1\\x20\\x41\\xbf\\x87\\x4f\\xc7\\x3a\\xfb\\x42\\xca\\x5d\\x69\\xc6\\x41\\x64\\x79\\xce\\xb4\\xaa\\xa0\\x49\\x2b\\x6f\\xf2\\x1e\\xe1\\x2d\\xb2\\x21\\x3a\\x42\\x86\\xfd\\x56\\x05\\xc9\\x3a\\x7b\\xb8\\xa3\\xb0\\x71\\xb0\\xb2\\x5f\\xb0\\x1d\\x77\\xab\\xbc\\x87\\x71\\x48\\x94\\x70\\xa1\\x07\\xaa\\xda\\xe9\\xf6\\x40\\xc2\\x4d\\xfd\\x53\\x28\\xf6\\x0f\\x4b\\x7d\"},\n{{0x70,0x94,0x16,0x07,0x49,0x97,0xb9,0xc9,0xaf,0x4d,0x37,0xa0,0x11,0x39,0xe8,0xa3,0xf9,0xf2,0xce,0x5d,0x72,0xa5,0x7d,0x80,0x5e,0x82,0x2a,0x81,0x18,0x6d,0x01,0x7e,},{0xae,0xe1,0x10,0xf1,0xf4,0xd4,0x6e,0xa6,0x06,0x49,0xd7,0x86,0xb1,0x50,0x05,0x2e,0x28,0x7a,0x9d,0xa6,0x01,0x22,0xc4,0x7b,0x09,0x08,0xfa,0x8b,0x2c,0xa2,0x8a,0x80,},{0x8e,0x4b,0x41,0xf0,0x97,0xd8,0x36,0x14,0x18,0x4b,0xa7,0xf5,0x2b,0xa2,0xfd,0x9f,0x05,0x65,0xf8,0xa6,0x37,0x21,0xef,0x55,0xf9,0x31,0x62,0x82,0x6b,0x9f,0x0a,0xc0,0x70,0xc0,0xe2,0x86,0x4b,0x5f,0xfd,0x8e,0xcc,0xc1,0x8e,0xfa,0xd1,0x8b,0x2c,0xe8,0x4b,0xe5,0x7c,0x0b,0x4a,0x41,0xc5,0x2e,0x20,0xef,0x37,0x72,0x23,0x77,0xc6,0x0f,},\"\\xed\\xda\\xa3\\x69\\xc0\\xe3\\x1a\\x1f\\xcc\\x1d\\xa4\\x6f\\x65\\x36\\x24\\x42\\xa0\\xcc\\x21\\xc7\\xdc\\xdd\\x5c\\xd9\\x0e\\x0a\\x2e\\xe9\\xf2\\x51\\x10\\x81\\x2b\\xa1\\x14\\x93\\x1c\\x86\\x8a\\x70\\x86\\x07\\xac\\x16\\x08\\x4d\\x79\\x71\\x5d\\x13\\xb3\\x38\\xc0\\x5c\\x6a\\xef\\x73\\x43\\xe7\\xda\\xd2\\x82\\xf9\\x6f\\xe2\\x81\\x93\\x18\\x8f\\x0c\\xc8\\x93\\xc7\\xdc\\xe8\\x05\\xfd\\x3a\\x7c\\xd2\\x68\\xb7\\x28\\x94\\x16\\x0b\\x52\\x45\\xfe\\xd9\\xfa\\x99\\x43\\xb7\\xc8\\x0a\\xdb\\x3c\\x2d\\x1a\\x35\\x3d\\x8f\\x12\\xdf\\x25\\xa3\\x1d\\xde\\x7f\\xa3\\x85\\xbb\\xec\\x35\\x1d\\xa6\\x6f\\x15\\x30\\x32\\xe1\\x77\\x56\\x27\\x3f\\x8d\\x54\\xe9\\xa3\\xb9\\xea\\x25\\xae\\x67\\xd1\\xe9\\xc1\\x8c\\xc6\\x8b\\xe6\\x01\\xe3\\xd6\\x82\\x82\\x81\\x8c\\xe0\\xe7\\xcf\\x88\\xa4\\xd1\\x33\\x64\\x53\\x02\\x17\\x32\\xf0\\x8d\\x9e\\x76\\xcd\\x23\\x63\\x79\\x29\\xb0\\x91\\x1d\\x5f\\x86\\x14\\xf4\\x84\\x2e\\x67\\x0c\\x14\\x28\\x60\\xaf\\xc2\\x65\\xc5\\x01\\x72\\xb1\\x3b\\xfd\\x35\\xad\\x8f\\xc5\\x4b\\x28\\x65\\x7d\\xa3\\x2b\\xac\\x15\\x3b\\xa9\\xaf\\xfc\\x89\\x7a\\xfb\\x3c\\x72\\x1f\\x48\\xca\\xa4\\x62\\x40\\x58\\x57\\x10\\xb0\\xf2\\xd2\\x4d\\x5f\\xf4\\x96\\x5d\\x1d\\x10\\xf1\\xa0\\x7b\\x06\\xab\\xea\\x6a\\x08\\xe1\\xd6\\xf1\\x50\\x0d\\xa1\\x2c\\x43\\x4a\\x6d\\x77\\x8c\\x94\\x10\\x67\\x10\\x80\\x00\\x47\\x5c\\xe8\\x31\\xbc\\xfe\\x2d\\x0a\\xfe\\x40\\xb7\\x41\\x9d\\x07\\x05\\x9b\\xc0\\xcd\\x8d\\xce\\x4b\\xe9\\x58\\x7f\\xf2\\x9a\\xd8\\xbf\\x0b\\x26\\x8a\\xe2\\x3c\\xe0\\xda\\x5b\\xb5\\xbf\\x74\\xff\\x0b\\x2b\\x31\\xb8\\x21\\x12\\xa9\\xfd\\x5a\\xbd\\x9b\\xfd\\x0a\\x90\\xe6\\xf4\\x72\\x35\\x48\\xc6\\xbb\\x2f\\x99\\xdc\\x06\\x1b\\xa3\\x2e\\xba\\x2d\\x53\\xe6\\xbc\\x79\\xbf\\x44\\x1b\\x23\\xfb\\x74\\x60\\xde\\x04\\xe8\\xe8\\xef\\xbc\\xd4\\xd4\\xcc\\x73\\x55\\xde\\x9e\\x3b\\x08\\x61\\xa6\\x81\\xb9\\x83\\x83\\x9d\\x44\\x88\\xe5\\x51\\x75\\x1f\\x23\\xe9\\xa6\\xe2\\xe4\\xd4\\x43\\x27\\x3b\\x9e\\x0f\\xe6\\x4d\\x8a\\xcd\\x1c\\x74\\x8b\\x55\\x59\\x43\\x82\\x23\\xdd\\x21\\xb5\\x18\\x31\\x89\\xe0\\xf3\\xc0\\xe8\\xed\\x41\\x4c\\x03\\x56\\xba\\xb7\\x7a\\x65\\x4d\\xe1\\xa5\\x77\\x14\\x62\\xef\\x14\\x34\\x49\\x70\\xa4\\x91\\x51\\x1a\\x72\\x29\\x14\\xf4\\xa8\\x9f\\x4f\\x1a\\x82\\x7e\\x18\\xcd\\x84\\x47\\x9c\\xc9\\x25\\x92\\xea\\xdf\\x8d\\xe2\\xdf\\x82\\x4b\\x97\\x6d\\xcb\\xd2\\x84\\xa3\\xba\\x64\\xbc\\xdb\\x0d\\xf1\\x5e\\x8f\\x41\\xc0\\xb2\\x47\\x15\\x86\\xb2\\x6a\\x06\\x35\\x3d\\x90\\x50\\x28\\x23\\x5c\\x1c\\x6e\\x5c\\x45\\x87\\x22\\x27\\x25\\xaf\\x08\\x3e\\x11\\xe7\\x9c\\x94\\x3a\\xa4\\x44\\xd4\\xaa\\x41\\x21\\x8d\\x3e\\x97\\x43\\x36\\xe3\\x72\\x81\\x3e\\x99\\xe2\\xb0\\xc5\\xf0\\xae\\x81\\x0f\\xfe\\xd9\\xa7\\xa3\\xd6\\xcb\\x74\\xc5\\x47\\x3d\\x99\\x0a\\x59\\x11\\x32\\x9b\\x8e\\x82\\xec\\x6b\\xf2\\xbd\\x43\\x21\\xbb\\x48\\x73\\x70\\xf8\\x73\\x9e\\x7a\\x2a\\x4a\\x53\\x43\\x08\\x33\\xd4\\x5b\\x9f\\xe3\\xde\\xb9\\x3f\\x79\\xfc\\x6a\\x51\\xd5\\x63\\x69\\x5e\\xcd\\xb9\\x78\\x58\\xd2\\x13\\xda\\x58\\x44\\x34\\xb7\\xc7\\x15\\x46\\xaa\\xe8\\xd9\\x67\\xe1\\xc6\\xd0\\x08\\x2b\\x10\\xd4\\xa7\\x2d\\xe1\\x74\\x2e\\x53\\xc4\\xb2\\xf9\\x2e\\xb8\\xb5\\xc8\\xc3\\x5a\\xb6\\x53\\x5e\\xa8\\x10\\x0b\\x37\\x92\\x4a\\x0a\\x91\\xd2\\xa7\\x28\\xd0\\xf5\\x64\\x24\\x37\\xaa\\x66\\xc8\\x2a\\xb7\\x4b\\x5d\\x07\\x45\\xec\\x08\\xf7\\x70\\x5c\\xb8\\x1f\\xa0\\x79\\xd8\\x9e\\xcd\\xc9\\xaa\\x1f\\x8d\\x7d\\x82\\xdc\\x77\\x46\\xd3\\x46\\x15\\x34\\x3a\\x69\\x25\\xdc\\x31\\x8f\\x35\\x2a\\x2b\\x45\\x01\\x24\\x38\\x42\\x4f\\x90\\x98\\xfd\\xdf\\x6e\\x61\\xfd\\x1f\\x8f\\xb4\\x9d\\xa4\\x0b\\x3e\\xec\\xe8\\x9a\\x1a\\xf1\\x99\\x6d\\xe7\\x0c\\xd1\\x69\\x6c\\xbf\\xd9\\xe3\\x01\\xea\\x5f\\x44\\x37\\xc7\\x1a\\xc2\\xa0\\x32\\x25\\x4c\\x14\\x0a\\x90\\xe8\\x5f\\xb8\\xff\\xc4\\x66\\x7f\\xa1\\x39\\xc1\\xee\\x9b\\xbf\\x12\\xee\\xd9\\x06\\xa9\\x67\\xbc\\x09\\x21\"},\n{{0x3d,0xcb,0x7a,0xe7,0xd9,0xf0,0xf1,0x41,0xf1,0xd9,0xf0,0x78,0x83,0x63,0x5b,0x91,0x3e,0xd2,0x9f,0xb6,0x1d,0x0f,0x74,0x1c,0x9a,0xfd,0x05,0xa2,0x7b,0x04,0x5b,0x06,},{0xae,0x62,0xb7,0xee,0x1b,0x8d,0xb5,0x76,0x4d,0xaf,0xdd,0xd9,0x72,0x4a,0xcc,0x10,0x6d,0x6c,0x0a,0x4d,0x1e,0x85,0xd8,0x90,0x6f,0x75,0x84,0xb5,0x58,0xf5,0x77,0xdf,},{0x09,0xa1,0xe6,0xfe,0xdf,0x97,0x1b,0x3e,0xdb,0xfa,0xef,0xbe,0xb8,0x9a,0xa5,0x39,0xca,0x0b,0x02,0xb3,0x7e,0x7a,0xc4,0xea,0x89,0x20,0xd6,0xd4,0x34,0x8e,0xe0,0xcf,0x9a,0x2d,0x5e,0x96,0xfc,0xe5,0x17,0xc6,0x65,0xe7,0xc3,0x83,0x68,0xba,0xf2,0x49,0x79,0x24,0x9a,0x95,0xb7,0x0e,0xa7,0x43,0x6c,0x00,0x78,0x5f,0x16,0xa3,0xae,0x09,},\"\\x38\\x11\\x6a\\x57\\x26\\x69\\x07\\x0d\\xd5\\x86\\x32\\x18\\xc9\\x1a\\x77\\xa4\\xab\\x47\\x55\\x36\\x88\\x48\\x8c\\x79\\x28\\x38\\x50\\x9e\\x9a\\xba\\x25\\x06\\x7a\\xdb\\x7e\\xa4\\x24\\x98\\x48\\x00\\x9d\\x91\\x4a\\xe9\\x87\\xa6\\x03\\x23\\x48\\xc1\\xc0\\x68\\x1c\\xf9\\x77\\xa9\\x55\\x2d\\xd6\\xbb\\xf4\\xe6\\xff\\x32\\xac\\xc9\\xfa\\x61\\xcb\\xee\\x25\\xa3\\x93\\x07\\x65\\x0f\\x8b\\xa6\\xa7\\xce\\x42\\x1e\\xf2\\xf7\\x1b\\xcc\\xc0\\x95\\x81\\x38\\xf9\\x32\\x4c\\x86\\xbf\\x2e\\x52\\x8f\\xa3\\xe4\\xd1\\xb1\\x9f\\x9f\\x2c\\xa5\\x26\\x84\\x09\\xb8\\xcc\\x19\\xc6\\x2d\\xd9\\x79\\xb8\\x96\\x97\\xe4\\x57\\xed\\x2d\\x98\\xbd\\x20\\x96\\xf6\\x2d\\x3d\\x9e\\x24\\x73\\x88\\x79\\x59\\x27\\x80\\x3e\\x79\\xab\\x71\\xd4\\xf7\\x2f\\x56\\x8e\\x94\\x5a\\x8a\\x16\\x21\\x59\\xd9\\xb8\\x48\\x36\\xe4\\x58\\x56\\x44\\xd4\\x97\\x9f\\x61\\x4a\\xad\\xa7\\x3a\\xd4\\x13\\xa8\\x33\\x91\\xe9\\xcf\\x88\\x0c\\x42\\xac\\x2a\\x98\\x34\\x3b\\x6a\\x82\\xcd\\x2b\\x61\\x58\\x14\\x56\\xf6\\xde\\x5c\\xeb\\x24\\xfe\\x46\\xb7\\x62\\x5d\\x52\\xab\\x2c\\x2c\\x32\\x4a\\xc7\\x47\\x03\\xd1\\x5e\\x15\\xf1\\xae\\xff\\x80\\x55\\xd2\\xf7\\x39\\xf7\\x36\\x3e\\x16\\xec\\x1d\\x78\\xbe\\x2c\\x62\\x99\\x43\\x6c\\x8c\\x8d\\x33\\x6b\\xd2\\x92\\x71\\xa8\\x97\\xa6\\xec\\x93\\x2e\\xd0\\x87\\x25\\xbe\\x21\\xb2\\x8f\\x9a\\xa1\\x4e\\xaf\\x4f\\x71\\x85\\x31\\x54\\xdb\\x14\\x58\\x7c\\x93\\x0a\\xb3\\xeb\\x02\\x27\\xad\\x7f\\xfb\\x45\\xb3\\xba\\xa6\\xa9\\x99\\x49\\x9c\\xc8\\xa6\\xe4\\x5b\\x1a\\xb4\\xd0\\xb3\\x39\\x78\\x2b\\xcd\\x9c\\xfb\\xcf\\x88\\xcf\\x7e\\xae\\x89\\x1c\\xc8\\x41\\xe9\\xc8\\x8a\\x1f\\x6a\\x69\\x1f\\x39\\x48\\xa6\\xbc\\x85\\xba\\x7f\\x46\\x11\\x64\\x2e\\x84\\x22\\x3c\\x3b\\x17\\x89\\x46\\xdd\\xbe\\xdd\\xcf\\xcd\\xef\\x4a\\xe4\\xc4\\xe1\\xa8\\x14\\xb9\\xb1\\xf0\\x2b\\x1e\\xaa\\x82\\x4d\\xb9\\x3f\\x44\\xb2\\x7d\\x14\\x20\\x6b\\x34\\x04\\x65\\xa1\\xce\\xfc\\xf5\\x35\\xc6\\x3e\\x55\\xc4\\x28\\x72\\x24\\x26\\x27\\x33\\xd9\\x8a\\xaa\\xa1\\x54\\xf3\\xad\\x42\\xcd\\x85\\x46\\xa4\\x61\\xce\\x0d\\x46\\xd8\\x86\\xd3\\x46\\x1a\\x21\\x50\\xcb\\x45\\xdb\\xe5\\x64\\x73\\xff\\x63\\xd3\\xdc\\x7a\\x2b\\x95\\x7b\\x82\\x39\\x69\\xf1\\x9b\\x59\\x68\\xe8\\xb4\\x24\\xc8\\x79\\x74\\x19\\x26\\xd8\\x2c\\x63\\x86\\x75\\x3b\\x0f\\xa1\\xf0\\x80\\x28\\x4e\\x55\\x78\\x94\\x23\\x63\\xaa\\xde\\xb2\\x1f\\x8e\\x1e\\x89\\x09\\xfa\\x6c\\x38\\x07\\x64\\x14\\x9b\\xc9\\x15\\xb2\\x28\\x60\\x4e\\xfc\\x56\\xd9\\x2e\\x4b\\xeb\\x72\\x0e\\xdc\\x74\\xc4\\xd7\\x8f\\x92\\x5d\\x6c\\xfd\\xf7\\xba\\x2f\\x14\\xb5\\x62\\x37\\x75\\x81\\x0d\\x2d\\x07\\xbd\\x38\\x8c\\x57\\x3e\\x36\\x52\\x3f\\x21\\x57\\x38\\xe6\\x91\\x14\\xdc\\xf8\\xd8\\x0f\\x17\\x0b\\xfa\\x67\\x6e\\x31\\xfb\\x62\\x6a\\x7d\\x44\\x9e\\xd9\\x66\\x47\\x36\\x34\\x75\\x97\\x0c\\x8c\\x47\\x80\\x97\\x09\\xbc\\xb5\\xe7\\x20\\x0f\\x2a\\x22\\x7c\\x7c\\x8e\\x7b\\x00\\x0f\\x30\\xc0\\xbd\\xe6\\x1d\\x67\\xbd\\x68\\x95\\x36\\x16\\x29\\xa3\\x6c\\x8f\\xdd\\x5a\\x56\\xb8\\x1e\\xfb\\xac\\xf1\\x5c\\x1b\\x35\\x30\\xa0\\x8c\\xde\\xd5\\xb1\\xfd\\x45\\x7f\\xbd\\x2f\\x03\\x04\\x2f\\x56\\xf1\\xb3\\x7e\\xd1\\x5c\\xdb\\x91\\x2f\\xa0\\x29\\x8c\\x27\\x67\\x25\\x08\\x7e\\xe2\\x7d\\x3c\\xf2\\x55\\x0f\\xe6\\xe8\\xa0\\x33\\x0a\\xf4\\x17\\xf4\\xf5\\xba\\xf0\\x36\\x27\\xed\\x67\\xc5\\xf8\\x32\\x33\\x63\\xab\\xac\\x5a\\x1f\\xe3\\x48\\x23\\x18\\x0e\\x3e\\x0e\\x20\\x80\\xf7\\x5b\\xfd\\x91\\xc2\\x07\\xcf\\x6b\\xaa\\x9a\\x22\\x9c\\xf4\\x43\\xdd\\x44\\x2c\\x59\\x02\\xe0\\x67\\x3f\\x32\\x52\\xb8\\x52\\x63\\x46\\x58\\x58\\x72\\xf6\\xcd\\x36\\x60\\x25\\xa5\\x69\\x92\\xb7\\x0e\\xde\\x39\\xbc\\x8d\\x32\\x2f\\x9c\\x22\\xa1\\xdc\\x59\\x9e\\x9f\\x0d\\x52\\x4c\\xb6\\xd2\\xea\\x5a\\xe2\\x87\\x8e\\xf6\\xbe\\xd4\\xb7\\x02\\x80\\x7f\\x1e\\x1e\\x73\\xeb\\xf2\\x90\\xeb\\x6c\\x0e\\xeb\\x85\\xc1\\x37\\x16\\xf6\\x26\\xaa\\x90\\xd3\\x64\\xb4\\x90\\x48\\x37\\xce\\x05\"},\n{{0x29,0x73,0x11,0xdd,0xef,0xfe,0xc9,0xd2,0xbe,0x68,0xef,0x7b,0x2a,0x20,0xfe,0x2d,0x27,0x7e,0x1d,0x8e,0x51,0x64,0x8b,0x03,0x57,0x2a,0xda,0x27,0xec,0x1f,0x9f,0x43,},{0x6a,0x6c,0x28,0xe7,0x61,0x64,0x0c,0x40,0x08,0x33,0x3a,0xae,0x5a,0x33,0x66,0x30,0x2e,0x2f,0x46,0x77,0xa9,0x53,0xba,0x48,0x2a,0xb6,0xfb,0x4a,0x1d,0x70,0xb4,0x47,},{0x4b,0xf0,0xb9,0x2c,0x6e,0xe4,0xea,0xce,0x5e,0x8e,0xb1,0x03,0x70,0xff,0x9d,0x9c,0x68,0xa5,0x74,0x9d,0x59,0x89,0x9d,0x04,0x32,0x7a,0xaa,0x38,0xf8,0xf8,0x25,0xe0,0x32,0xe5,0x97,0x42,0xb3,0x7d,0xe2,0x31,0x07,0xa3,0xec,0xdd,0x3f,0x7a,0x0d,0x08,0x12,0x26,0x14,0xb7,0x8f,0xdd,0x37,0x29,0x3c,0x8d,0x05,0xe2,0x8f,0x5f,0x71,0x08,},\"\\x26\\x52\\xac\\xfc\\x3b\\xdf\\x09\\xa5\\x99\\xec\\x67\\x86\\xbb\\xd9\\x4f\\xe5\\x77\\xcf\\x57\\x8e\\x02\\x63\\xcc\\x68\\xd9\\xf5\\x7a\\x6c\\x83\\x45\\x8f\\x80\\xac\\xd8\\xa7\\x5e\\xf0\\x30\\x40\\xa6\\x35\\x67\\x2b\\x96\\x8f\\xf2\\xaf\\xdb\\x28\\x8d\\x28\\xb9\\x99\\x6f\\x64\\x15\\xb2\\xf3\\x17\\x5e\\x9e\\xa3\\x7a\\xeb\\x05\\xdf\\x81\\x81\\x2e\\x38\\xa4\\xc9\\x76\\xeb\\x92\\x85\\x6c\\xed\\xb9\\x1a\\x26\\x9a\\x46\\xfc\\xa5\\xdf\\x9b\\xd7\\x30\\xfd\\x84\\x45\\x2b\\x4b\\xd9\\x35\\x77\\xc6\\x1f\\x42\\xc1\\x41\\x13\\x97\\x98\\x82\\xa8\\x6a\\x9f\\xe6\\x32\\xe4\\x75\\x6a\\xfd\\x89\\x81\\x6f\\xc4\\x67\\x0a\\x31\\x05\\x03\\xfd\\xaa\\xd2\\xdb\\x76\\x4c\\x37\\x21\\x21\\x3c\\x3e\\x60\\xf2\\x9c\\x26\\x68\\xd4\\xde\\x8f\\x42\\xb0\\x87\\xf2\\x5c\\xd5\\x6c\\x69\\xa4\\xe4\\x8f\\x13\\x4f\\x55\\x98\\xcf\\x14\\x5b\\xe6\\x38\\xa5\\xc2\\x31\\x88\\x63\\x32\\x90\\x61\\x72\\x9a\\xac\\x91\\xda\\x6a\\x19\\x1f\\xd7\\x74\\x88\\x0c\\xf9\\xcb\\x55\\x5e\\xec\\x15\\xb0\\x04\\x4f\\x10\\xe5\\x43\\x3f\\xb4\\x6a\\x9b\\x88\\x92\\xda\\x8f\\x6d\\x24\\xf1\\x42\\x58\\x8b\\x70\\xff\\x0b\\x49\\x20\\x0c\\x50\\x6b\\x88\\xbe\\xd4\\x49\\xad\\x10\\xd3\\xf9\\x2c\\x2b\\xae\\xda\\x6b\\xbf\\x58\\x67\\x6c\\x5b\\xbc\\x67\\xd3\\x1f\\x64\\xfb\\x12\\xe8\\xd5\\xe7\\x88\\x76\\xd5\\xc8\\x49\\xfc\\x31\\x4b\\x2c\\xf8\\x01\\x0c\\x51\\x02\\x04\\xc8\\x63\\x3d\\x0c\\xc3\\x18\\x56\\xec\\x6a\\x11\\x4e\\xa8\\xa8\\x9c\\x48\\x92\\x7b\\x07\\xa3\\x1a\\xb8\\x42\\xc9\\xb8\\x35\\x2d\\x93\\x67\\x34\\x51\\x41\\xa9\\x9b\\x40\\x04\\x9d\\x5c\\x48\\xe7\\xd2\\x7c\\xab\\x42\\x7a\\xde\\xfd\\x1f\\x0f\\xc1\\x13\\x6b\\x35\\x3c\\xb0\\x1c\\x3d\\xef\\x91\\xff\\xfe\\xe8\\xad\\x91\\xe8\\x8f\\x4b\\xb7\\xd2\\x61\\x5c\\x0d\\xcc\\x95\\x34\\x4c\\xd0\\x19\\x50\\x93\\x8e\\xcb\\x14\\xb8\\x44\\x6b\\x56\\xa0\\x6b\\xf2\\xf2\\xf6\\x5f\\xb8\\x73\\x5e\\x8a\\x7b\\xc9\\x6b\\xb4\\x6c\\xe9\\xca\\xc7\\x1a\\x88\\xeb\\x8f\\xda\\x5e\\x69\\xd6\\x9e\\xb2\\x9a\\xa4\\x2a\\x01\\x6b\\x85\\x83\\x89\\x3e\\x9d\\x72\\x77\\xcb\\x13\\x59\\xc5\\x68\\x7e\\xed\\xcd\\x59\\x9d\\x8a\\x46\\xe6\\xc1\\x49\\x63\\x63\\x7d\\xb0\\x4a\\x92\\x9f\\x4b\\xc7\\x93\\x04\\xac\\x2d\\xae\\x73\\x3b\\x3a\\x83\\x9e\\xb7\\x4f\\xbe\\x3d\\xe5\\x04\\x2f\\xd6\\x55\\xea\\xec\\xb1\\x5f\\x39\\xb2\\xfe\\x16\\xda\\xd8\\xa6\\xff\\x8d\\xbc\\x05\\x4f\\xed\\x51\\x28\\x2a\\x85\\x6e\\x9d\\xa6\\x31\\x6f\\xac\\x6d\\xb5\\xd5\\x6f\\x77\\xf1\\x8d\\xa8\\x41\\x2e\\xb3\\x77\\xe5\\xb1\\xb8\\xf4\\xcb\\x13\\x54\\xec\\xfe\\x8f\\xe8\\xfd\\x54\\xe6\\x2d\\x76\\x7a\\x80\\xde\\x04\\xcb\\x76\\x20\\x22\\x9a\\x88\\x31\\xdb\\xc9\\xec\\xd4\\x57\\x8f\\xfa\\x2f\\xf0\\x6b\\x54\\x45\\xe4\\x40\\xd6\\x9a\\xab\\xc9\\x4c\\x47\\xbd\\x17\\xf2\\x2b\\x69\\xf5\\x2e\\xea\\xe5\\xcf\\xcd\\x01\\xa5\\xca\\xfe\\x05\\x80\\x07\\x2a\\xe9\\x16\\x6b\\x95\\x74\\x3d\\x68\\xc3\\x56\\x4c\\x5a\\x7e\\x46\\xf2\\x4b\\xc4\\x8a\\x89\\x8a\\x1a\\xb2\\xeb\\xe6\\x3f\\x36\\x85\\x1d\\x2a\\xac\\xfa\\x0c\\x4f\\x32\\xd9\\x93\\x77\\x1d\\x31\\x4e\\x72\\x5a\\x43\\xd9\\x80\\x5d\\x13\\x71\\xcf\\x72\\x3e\\xf1\\x61\\xd4\\x2e\\x63\\xff\\xca\\x68\\x8d\\x7f\\x0e\\x21\\xef\\x5b\\x3f\\x9a\\x56\\x1a\\x62\\x10\\x70\\x2b\\x85\\xfb\\xd1\\xf8\\xca\\x75\\x38\\x9c\\xc7\\xa2\\x27\\x39\\xba\\xe4\\xde\\xd9\\x37\\x57\\xf1\\x52\\x0d\\xc3\\x88\\x44\\xa1\\xa8\\x8b\\xe8\\xe0\\x96\\x45\\x05\\x91\\x48\\x80\\x7b\\x93\\x37\\x70\\x87\\x8c\\xb8\\xa9\\xad\\x92\\x11\\x31\\x71\\x31\\xe6\\x93\\x24\\x53\\x2f\\xd0\\x27\\x9b\\x83\\x18\\x5b\\x62\\x8f\\xc2\\xf9\\xe2\\x15\\x00\\x38\\x46\\x93\\xfa\\x29\\xf2\\x6b\\xd1\\xb9\\xc3\\x01\\x60\\x13\\x67\\x66\\x5f\\x05\\xf3\\x72\\xda\\xb4\\xe3\\x10\\x77\\x26\\xcd\\x3f\\x63\\x9c\\xa6\\x2b\\xf6\\x3a\\x75\\xf7\\x7e\\xaa\\x75\\xf7\\x13\\x61\\x57\\xad\\xa2\\x37\\x4e\\x65\\xfb\\x4f\\xd3\\x49\\xb4\\x5e\\x25\\x44\\x1f\\xd2\\x1b\\x13\\xe6\\x91\\x13\\x66\\xb9\\x7c\\xfb\\x4d\\x6a\\xd5\\x22\\xb8\\x50\\xad\\xf4\\x0c\"},\n{{0x4d,0xb2,0xb5,0x81,0x44,0xa8,0xd2,0xd0,0xec,0x03,0xbb,0x9b,0xc2,0x9b,0x4c,0xa8,0x93,0x85,0x4c,0x80,0xb6,0x4a,0xfa,0x4a,0xf7,0xa9,0xc9,0x36,0x93,0x5e,0xcb,0x04,},{0xfc,0x5c,0xd7,0x50,0xe1,0x74,0xed,0x71,0x8b,0xd9,0x38,0xfa,0x8e,0xd9,0x9a,0x1b,0x9d,0x55,0x6b,0xa7,0x67,0x0f,0x2a,0x77,0xda,0xf1,0xc7,0x20,0x11,0x37,0x32,0xa5,},{0x42,0x45,0x17,0xaa,0xdd,0x85,0x3c,0xe3,0x98,0x57,0x59,0xa3,0x27,0xe7,0x76,0x0d,0x91,0x56,0xd3,0xb2,0x73,0x45,0x38,0x3f,0x0e,0x4a,0xd6,0x66,0x1e,0xe4,0xa3,0x72,0x4d,0x18,0xd8,0x20,0xf6,0xc5,0x57,0xf8,0x27,0x97,0xbe,0xb6,0x2d,0x2f,0x08,0x54,0x33,0x74,0x4f,0x89,0xa2,0xd8,0x52,0x93,0x79,0x64,0x81,0x86,0x2e,0xf8,0xa4,0x0f,},\"\\xc8\\xd1\\xdb\\xc9\\x36\\x91\\x1e\\x12\\x2c\\xee\\x18\\xf9\\x2b\\x16\\xa3\\x9a\\x2e\\xef\\x08\\x23\\xb2\\x27\\xf8\\x98\\xcd\\xf5\\x84\\x2b\\x93\\xd5\\x9f\\xc0\\x02\\xed\\xb5\\x49\\x8a\\x20\\x87\\x2e\\x19\\x55\\x4e\\xf7\\x39\\x99\\xeb\\x3a\\x7b\\x3e\\x2f\\xdd\\x90\\x70\\xe1\\xef\\xa9\\x22\\x8e\\x9e\\x93\\xb2\\x9a\\x86\\x8a\\xe3\\x79\\x9e\\x4e\\x57\\x23\\x24\\x83\\x6b\\x1a\\xd5\\xaa\\x81\\x2b\\xf0\\x0f\\x84\\x5b\\xc2\\x17\\xeb\\xbc\\x3f\\xab\\xdc\\x4e\\x1b\\x6e\\x51\\xef\\x9e\\xfa\\xc2\\x77\\x0a\\xa0\\xa4\\xa1\\x1e\\xe5\\x2a\\xb9\\x56\\xac\\x64\\x48\\xaa\\x26\\x29\\xcb\\x61\\xdb\\xb1\\xf1\\xed\\xb3\\xbd\\xe9\\x9b\\x48\\x76\\xda\\x39\\x2a\\x6e\\x0b\\x9a\\x0c\\x31\\x84\\x9a\\x58\\x90\\xae\\xa9\\x52\\x2f\\x56\\xd0\\x15\\xa1\\x93\\x50\\x15\\xb9\\x1b\\xf4\\xc6\\xa0\\x01\\x1d\\x23\\x77\\xd6\\x71\\xc3\\xd0\\xd7\\x53\\xc2\\x7f\\x8c\\x76\\xe4\\x05\\xd0\\x23\\x0f\\x1f\\x4b\\x9b\\x88\\xfc\\xeb\\xba\\x1e\\xaf\\x13\\x77\\x72\\x35\\xe5\\x53\\x24\\xb7\\xd3\\xf8\\x1e\\x68\\x61\\x09\\xd9\\x1c\\xe6\\x89\\x53\\x0b\\x90\\xd2\\xc5\\xc7\\x1d\\xd1\\x87\\x72\\xb3\\x85\\xd6\\x2c\\xcb\\xfd\\x2e\\x08\\x9a\\x1b\\x67\\x09\\x83\\xf6\\x0c\\x21\\xc4\\x45\\x5c\\xb9\\xd1\\xa0\\xdc\\xaa\\x74\\xc8\\x74\\xe3\\x52\\x11\\xf8\\x22\\x7f\\xf7\\xc2\\x34\\xdf\\xf8\\x5e\\xc0\\xb0\\x7e\\x36\\x8c\\xfa\\x50\\xa3\\x43\\x57\\x83\\x95\\xa1\\x4c\\x68\\xf1\\xf8\\x9b\\xd4\\xec\\xbc\\x17\\x2e\\xf8\\x05\\xe5\\x83\\x1e\\xc8\\x94\\x75\\xfc\\xc8\\xd6\\x85\\xca\\x92\\x55\\xa7\\x7e\\x3b\\xa3\\xc1\\x47\\x50\\x8e\\xc9\\x2d\\x7b\\xcc\\xe8\\x79\\xaf\\x0a\\xbd\\xd2\\x41\\x6b\\x67\\xb5\\xf5\\x05\\x07\\x33\\x79\\x14\\xf3\\x90\\xbb\\xe0\\xb4\\x50\\xb6\\xa2\\xf1\\x15\\x93\\x72\\xc4\\xbc\\xce\\xa3\\x82\\xce\\x3d\\x6d\\x9f\\xb2\\x51\\x5e\\xcf\\x79\\x30\\x05\\x9a\\x05\\x52\\xb7\\x5f\\x97\\x88\\x62\\xbf\\x97\\xe8\\x32\\x5a\\xf2\\x4d\\x1b\\x8c\\xe9\\x51\\x2b\\xfc\\x7c\\xef\\x88\\x42\\x32\\x04\\x23\\x41\\xd8\\x2f\\x9b\\x5d\\xad\\x2e\\x50\\x2a\\xc6\\xac\\x79\\x5f\\x99\\xda\\xc7\\xfc\\x60\\xe3\\xb8\\x63\\x9d\\x0e\\x15\\x00\\xde\\xad\\x4e\\x78\\xac\\xa1\\x09\\x95\\x7d\\x57\\x7a\\x13\\xc1\\x92\\x5d\\x74\\x03\\xc1\\xac\\xf9\\x89\\xa9\\xde\\x67\\x11\\xe2\\x3c\\x67\\xbf\\x87\\x22\\xf5\\x51\\xb7\\x74\\xca\\xda\\x93\\x1b\\x5f\\xd9\\x73\\x43\\x4e\\x3b\\x71\\x72\\x81\\x98\\x83\\xe7\\x0c\\x52\\x78\\x5e\\x3b\\x49\\xd3\\x23\\xd0\\x56\\x36\\x64\\x11\\x58\\x64\\x0d\\xcf\\x6a\\x4c\\x20\\x0e\\xb2\\xc1\\x3b\\x1b\\xee\\xb2\\xdc\\x36\\x03\\x52\\x47\\x0d\\x15\\x38\\x6e\\x59\\xe6\\xfa\\x60\\x36\\x7e\\x5e\\x7f\\x17\\x2b\\x21\\x15\\x9d\\x5e\\xe7\\xca\\xb0\\xd7\\xf5\\x86\\x82\\x39\\x85\\x8e\\x2a\\x93\\x55\\x04\\x80\\xfe\\x8f\\xb4\\xdc\\xaf\\x4f\\x22\\x4c\\x4b\\x2a\\xd5\\x44\\x87\\x91\\x63\\x2d\\xf3\\x0e\\x8e\\x5f\\xb9\\x98\\xb3\\x5e\\xa9\\xae\\xc8\\xc9\\x34\\xa4\\x40\\x3a\\xef\\x82\\x18\\x7c\\xa1\\xab\\xf8\\x2a\\x34\\x4d\\x00\\xff\\xb9\\x93\\xd9\\xff\\x34\\x61\\xd6\\xfe\\xcd\\xaf\\x5d\\x3b\\x48\\x1e\\x0d\\x31\\x15\\x3d\\xbf\\x6a\\xed\\x28\\x8c\\x8a\\xdd\\x06\\x4e\\x83\\x31\\x55\\x01\\x41\\xbd\\x5f\\x7a\\x7e\\x04\\x7b\\x86\\x07\\xd8\\x46\\xa6\\xbf\\xb7\\x2d\\x68\\x34\\x46\\xa4\\x45\\x11\\x46\\x06\\x25\\x0d\\x8d\\x2d\\x3a\\x8b\\x95\\x08\\xbb\\x07\\xd4\\x62\\x3c\\xdf\\x17\\x88\\xb5\\x49\\x9e\\x9c\\xb9\\xa1\\x37\\x98\\x49\\xbf\\xa1\\x9c\\x9a\\x9f\\x4c\\xd3\\xd9\\x25\\x3a\\xdf\\xfd\\xa2\\x5f\\x47\\xc8\\x11\\xbe\\x83\\x3b\\x02\\xf3\\x32\\x7e\\xbb\\xa8\\x37\\x30\\x19\\x5d\\x61\\x4b\\xae\\x6f\\xe4\\xe7\\xa3\\x83\\x08\\x15\\xd2\\xaf\\x40\\x0d\\x20\\xa9\\x41\\x7a\\x09\\x5e\\x7e\\x8e\\xea\\x10\\x44\\x91\\x7c\\xbe\\x51\\x2c\\x40\\x18\\xd6\\x56\\xe2\\xdb\\x67\\xbb\\x98\\x9c\\x00\\xe1\\xe5\\x07\\x62\\x3e\\x82\\x78\\xd7\\x29\\x92\\x5b\\x84\\xfb\\x5c\\x18\\x6a\\x7b\\xac\\x18\\x9e\\x6d\\x6a\\xb1\\x4f\\xd7\\xb6\\x2f\\xdc\\x63\\x2b\\xeb\\xb5\\xf7\\x7c\\xb5\\xcc\\x2f\\x70\\x7d\\xf4\\x05\\x30\\x99\"},\n{{0xc8,0x20,0x41,0x3c,0x24,0x56,0x74,0x71,0x04,0x66,0x2e,0xf4,0xdf,0xf3,0xac,0x23,0x3a,0xc4,0xb9,0x1a,0x76,0xd3,0xc4,0xea,0x75,0x44,0x90,0xbc,0x9b,0x1e,0x29,0x1f,},{0x89,0x93,0xce,0xa2,0xf7,0xf2,0x80,0x6c,0x77,0xb3,0x98,0x1b,0x54,0xbf,0xa9,0xbf,0x17,0x62,0x15,0x1b,0x41,0x8e,0x5e,0x72,0x53,0x71,0xca,0x2c,0x04,0xd2,0x23,0xee,},{0x7e,0xf7,0x0e,0x4a,0x14,0x95,0x4d,0x50,0x9f,0x11,0x7f,0x4b,0xd0,0x1b,0x22,0x0b,0xcc,0x19,0x2d,0x3b,0x5f,0xdf,0xc3,0x48,0x2f,0xbb,0xc3,0xb6,0x9d,0xc0,0x68,0xa7,0xc4,0x76,0x1d,0x1b,0xeb,0xc2,0x31,0x7d,0x6d,0xb7,0x4f,0x90,0x6a,0x15,0x56,0x42,0xb0,0xa3,0xc6,0x59,0x2b,0xdc,0x72,0xe6,0x4e,0xac,0x6f,0x20,0x3f,0xb7,0x4e,0x02,},\"\\xd2\\x99\\x2f\\x83\\x92\\x4a\\x59\\x48\\x87\\xe6\\xef\\x13\\xf2\\xae\\x80\\x8f\\xc8\\x63\\x9c\\x7b\\x2c\\x99\\x4f\\xaf\\x0f\\x79\\x5e\\x36\\x01\\x6d\\xab\\x77\\x00\\xa0\\xee\\x53\\x01\\x70\\xf0\\xb9\\xfe\\x98\\xab\\x75\\x88\\xce\\x03\\xbc\\x50\\xc2\\xba\\xe6\\x5e\\x05\\x26\\x47\\xe7\\x56\\x73\\x5b\\x35\\xd0\\xb5\\x9c\\x96\\x4e\\x91\\x7d\\x8c\\x83\\xe2\\xf9\\xfe\\xcc\\x4c\\xb0\\x55\\x64\\x28\\x7f\\x0e\\x34\\xc9\\x49\\x40\\x05\\xe2\\x5b\\x1a\\x8b\\x1b\\x94\\x2b\\x54\\xd8\\x90\\x35\\xf1\\xb1\\xc3\\xc9\\x45\\xfc\\xc8\\x4e\\x4a\\x39\\xef\\xa2\\xca\\x50\\x95\\x9b\\x45\\x9a\\xf7\\x4d\\x21\\xb6\\x24\\x2e\\x2f\\x56\\x51\\x8f\\x70\\xe8\\x67\\x92\\x57\\xc0\\x89\\xd2\\x6c\\x3b\\xb7\\x92\\x68\\x7c\\x92\\x33\\x55\\xb2\\xc1\\x8e\\xe2\\x13\\x6d\\x40\\xcb\\xa4\\x5a\\xcb\\x64\\x24\\x0d\\x96\\x67\\xf3\\x9d\\xba\\x36\\x39\\xb6\\x51\\x6d\\x4c\\x49\\x47\\x57\\x3e\\xf4\\xce\\xd8\\x76\\xb5\\xb2\\xea\\x34\\x89\\xea\\xea\\x53\\x9f\\x55\\x7f\\x58\\xda\\x20\\x46\\x91\\xa7\\x6e\\x29\\xc9\\x4b\\x8b\\x05\\x38\\x23\\x2c\\x5f\\x7d\\x0b\\xb0\\xfd\\xd0\\x16\\x91\\x04\\x31\\x35\\x4b\\x3e\\x1e\\x7c\\xe6\\x2a\\xd4\\x36\\x91\\x7c\\xd5\\xc3\\x15\\xa5\\xbe\\x9b\\x97\\x1c\\x80\\xf9\\x7b\\xc9\\xd5\\xc1\\x56\\xff\\xd6\\x4f\\xd4\\xe3\\x1d\\xa5\\x60\\x83\\xe0\\x2a\\x0c\\x8f\\xce\\x55\\x4d\\xb6\\x86\\x74\\xcb\\x62\\x70\\x0b\\xa9\\x51\\x75\\x2b\\x82\\x9b\\x03\\xc5\\x42\\x32\\x74\\x12\\xee\\xc9\\xcc\\xc6\\xa5\\x0a\\xdf\\x47\\xbb\\xee\\x15\\x44\\x66\\x82\\xda\\x2f\\xea\\x42\\x04\\x89\\x36\\xd7\\x63\\x06\\x0c\\xd8\\xf5\\x39\\x65\\x26\\x16\\xdf\\xa8\\x08\\xd6\\x23\\xff\\x77\\x7b\\x41\\x13\\x65\\x2e\\x78\\x9e\\xc0\\x25\\xb8\\x5e\\x04\\xef\\xe8\\xad\\x4c\\x96\\x0b\\x19\\x0b\\xf4\\xa5\\xa6\\x32\\x4d\\x6f\\x57\\xc1\\xad\\x22\\x01\\x8c\\x83\\xcd\\x7e\\x7e\\x09\\x7f\\xc6\\x7b\\x80\\x26\\x9c\\x13\\xb4\\xdd\\x97\\x01\\xca\\x98\\xf9\\x87\\x69\\x58\\xba\\x76\\x89\\xc6\\xf6\\xf1\\x0a\\x73\\x2a\\x64\\xbe\\xf2\\x2e\\x8b\\x98\\xbd\\x30\\x4d\\x5d\\xbf\\x4f\\xb1\\xf9\\xe4\\xca\\x53\\x9a\\x5c\\x4a\\xa6\\x19\\xc4\\x4d\\x6f\\x58\\xf8\\x24\\xb2\\xdb\\xae\\x77\\xb7\\xe8\\x3b\\x56\\xdb\\x5e\\x5a\\xa7\\xb0\\xae\\x9c\\xe1\\xcd\\x10\\xa6\\x9f\\x04\\xa8\\x0f\\x13\\x79\\xeb\\x0c\\x47\\x4e\\x47\\x82\\xdf\\x0e\\x3b\\xa6\\xa1\\x48\\x22\\x6b\\xd1\\xa6\\x62\\xd9\\x5e\\xe2\\xd6\\x7c\\x52\\x07\\x33\\x3c\\xb1\\xd5\\x41\\x76\\xd9\\xe5\\x06\\x45\\x94\\x79\\x02\\x9f\\x31\\xdc\\xac\\xe2\\x69\\x93\\x8f\\x6b\\xc5\\x62\\x78\\x78\\x41\\xdc\\xfe\\x10\\x1f\\x4d\\xb6\\x0b\\xd6\\x60\\x16\\xe1\\xee\\xbb\\x6b\\xfb\\xd9\\xcd\\x83\\x04\\x2d\\xd1\\x37\\x9a\\x46\\x4f\\x40\\x5a\\xaa\\xe3\\xc1\\x18\\x07\\x84\\x8c\\xc4\\xf9\\x5c\\x3c\\xc6\\xfa\\x92\\xab\\x4e\\xa5\\x30\\x58\\x34\\xeb\\x86\\xb8\\x73\\xfa\\x30\\xed\\x1f\\x7f\\x47\\x0b\\xf6\\x63\\xf1\\xa7\\x0c\\xf9\\xe6\\x0a\\xb6\\x80\\xcd\\x1d\\xbb\\xd0\\x3a\\xc0\\x43\\x3b\\x3d\\x4b\\xb4\\x82\\xf8\\xb3\\x44\\xd4\\x6b\\x3a\\xa9\\x34\\xb8\\x63\\x3f\\x57\\x09\\x0b\\xea\\x5f\\xcc\\xca\\x64\\x88\\x79\\x98\\x35\\xf1\\x33\\xf8\\xbc\\xf6\\xe8\\x87\\xca\\x59\\xd1\\x90\\x76\\xd6\\xca\\x19\\xd4\\xe2\\x83\\x49\\x05\\x1e\\x01\\x6b\\x03\\xe9\\xa9\\x20\\xf4\\x12\\x0f\\xb5\\x23\\xd1\\x37\\x1d\\x0e\\x38\\x46\\x73\\x19\\x54\\x3f\\x12\\x7e\\xd9\\x14\\xb4\\x3a\\xd0\\x62\\x22\\x6a\\x53\\x65\\x82\\xdb\\x72\\x8c\\xcd\\x76\\xe9\\x83\\xf1\\x17\\x66\\xa8\\x86\\x3c\\x2f\\x42\\x4f\\x65\\x50\\x8d\\xcb\\x26\\xfe\\x0c\\x5a\\x80\\x0c\\x35\\x09\\x39\\x60\\xa1\\x21\\x97\\x6e\\x30\\x51\\xe2\\xef\\x1a\\x2a\\x99\\xc1\\x2f\\xb7\\xbd\\x8b\\xc0\\x37\\xa4\\x39\\x68\\x68\\x06\\xeb\\x72\\x01\\x7a\\x07\\x1a\\x91\\xb3\\xe3\\x9c\\x90\\xe8\\x6b\\xc3\\x35\\xf9\\xbb\\x54\\x3b\\x12\\x7c\\x98\\x86\\x73\\x8c\\xb5\\x38\\x06\\xb9\\xcb\\x3c\\x25\\x94\\xc7\\xef\\xfc\\x2a\\x59\\x20\\xaa\\x83\\x4b\\xe6\\x5c\\x49\\xf4\\x79\\x64\\xe8\\x9e\\xec\\x74\\x72\\x8d\\xe7\\x71\\xf3\\xd6\\x75\\xde\\x9d\\x1e\"},\n{{0x67,0x69,0xcc,0x8e,0x12,0x56,0x17,0xc2,0x2c,0xe5,0x72,0x37,0xa4,0xfc,0xa1,0x50,0x7f,0x94,0x12,0x34,0x66,0x1d,0xf7,0x43,0x28,0xd0,0x4a,0xb6,0x2e,0xf8,0x6c,0x47,},{0x05,0x11,0x2c,0xa6,0x0b,0xaf,0xf7,0x9b,0x49,0x16,0xc1,0xbe,0xe2,0xb9,0x39,0x0c,0x04,0x7a,0xf0,0x8c,0x35,0xeb,0xb3,0xc3,0x81,0xb9,0x74,0x8d,0x1d,0xd4,0xc4,0xfd,},{0xd3,0x9d,0x85,0x3d,0x2c,0x2c,0x5d,0x21,0xb5,0x87,0x1e,0xa5,0xa7,0x5c,0x04,0x10,0x48,0xd9,0x3a,0x47,0xdc,0x59,0x9a,0x5f,0xdd,0xc0,0x85,0x62,0x85,0xce,0x63,0x6f,0xcd,0xfd,0x85,0x64,0x08,0x3d,0x06,0xff,0x28,0x4a,0x52,0x4b,0xc6,0x33,0xcf,0xdf,0xc3,0xb0,0x37,0x16,0x3d,0x67,0x4c,0xb9,0xbb,0x5b,0xa3,0xbc,0x25,0xbe,0xd0,0x0e,},\"\\x68\\x54\\x89\\x73\\x9b\\x98\\x56\\x47\\x49\\x58\\x7f\\xf1\\xac\\x96\\xba\\x68\\x2d\\xa3\\x0b\\x40\\xa4\\xde\\x24\\xf5\\x4e\\xc8\\xb0\\x83\\xdd\\xa4\\x53\\x33\\x16\\x21\\x67\\xcb\\x3f\\x97\\xb2\\xc7\\x31\\x4c\\xe7\\xa3\\xf3\\xf3\\xd3\\x19\\xcc\\xc3\\x5b\\xb6\\xa9\\xf0\\x07\\x7d\\x56\\x31\\x61\\xe2\\x81\\x46\\x9c\\xf0\\x89\\x68\\xd9\\xdc\\xf7\\xae\\x5f\\xff\\x83\\x0a\\x5d\\xb0\\x0b\\xc3\\x80\\x10\\xe6\\x66\\x2d\\x49\\x4f\\x3c\\x86\\x47\\xc4\\xf7\\x0c\\xe2\\xd2\\x9a\\x9d\\xa8\\x46\\x10\\xa0\\x80\\xb5\\x75\\x9a\\x3b\\x58\\x20\\x52\\xdf\\xde\\x66\\xe4\\xa7\\xfa\\x5f\\xb2\\x7f\\x06\\x50\\x73\\xfe\\x72\\x3d\\x83\\x70\\x1d\\x5b\\xac\\x06\\xca\\x43\\xb4\\x6d\\x1e\\x58\\x09\\x76\\x70\\xc1\\x94\\xa1\\x3a\\xf8\\xb5\\x73\\xa3\\x79\\x1a\\x96\\x61\\x55\\x7c\\xbc\\x04\\x27\\x57\\xab\\x8a\\xdd\\x0e\\xf7\\xcf\\x4f\\x35\\x43\\x5a\\x42\\x12\\x35\\x3f\\xcb\\x3c\\x20\\x3c\\x73\\xdb\\xc9\\xd2\\x68\\x52\\xd0\\xe9\\x17\\x32\\xe3\\x62\\x1c\\xe8\\x28\\x92\\x9c\\xdc\\xa4\\xd9\\x19\\x20\\x48\\x75\\x19\\x22\\xed\\x22\\x5e\\xab\\x29\\x00\\xcf\\xf9\\x71\\xa2\\xa2\\xd3\\x42\\x46\\x36\\x48\\xbb\\xb1\\x94\\x43\\x19\\xa8\\xef\\x6d\\x43\\xdb\\x62\\x48\\x0f\\xbf\\x1d\\x72\\x57\\xd2\\x26\\x94\\x53\\x97\\x93\\xf2\\x5c\\x92\\x79\\x17\\xca\\xab\\x25\\xc1\\x19\\x3a\\x2d\\x2b\\x23\\xbb\\x5c\\xb8\\x56\\x9a\\xef\\xff\\x4f\\x0c\\xa4\\x23\\xd1\\x9b\\xbd\\x46\\xfc\\x5e\\xf7\\x52\\x4f\\xf8\\xcb\\x70\\x6f\\xfc\\x47\\x07\\x65\\x09\\xc0\\x5a\\x81\\x58\\xaf\\x77\\xf9\\x8d\\xf6\\xa9\\xb5\\xcb\\x32\\x44\\xab\\xa4\\xb5\\xc5\\xf9\\xce\\x59\\x7e\\x7d\\x29\\xba\\x07\\x01\\x3d\\xca\\xc1\\x91\\x1b\\x6d\\xe7\\x11\\x3c\\x73\\x6a\\x40\\x05\\xc4\\x59\\x99\\x29\\x79\\x01\\x9a\\x45\\xb2\\xdd\\x80\\x2a\\x07\\x66\\x09\\x09\\xeb\\x4c\\xe2\\x05\\x40\\x81\\x70\\xd8\\x25\\x45\\xda\\xcb\\xa8\\x68\\x6d\\xbd\\xe9\\x27\\xdb\\xc9\\xc7\\xd9\\x62\\x05\\x8e\\x9a\\x95\\xea\\x66\\xb8\\xdf\\xd3\\xea\\x43\\x53\\x57\\xa9\\x3c\\x73\\x94\\x8c\\xd3\\x55\\xf6\\xac\\x65\\x52\\x32\\x3f\\x17\\xc2\\xa6\\x78\\x66\\x2b\\xc0\\xe9\\x72\\x6a\\xd5\\xa5\\x25\\x1d\\xd2\\x76\\x47\\x40\\x4c\\xbf\\xe6\\x1c\\xea\\xaf\\xdc\\xfc\\x08\\xa4\\x75\\xff\\xd8\\x7c\\xb7\\xf5\\x97\\xe5\\x6a\\xc1\\x67\\x04\\x09\\xdd\\x94\\x08\\xae\\x47\\x70\\x42\\x0c\\x6e\\x5e\\x6d\\xd8\\xe7\\x48\\xfe\\x03\\xa7\\x2d\\xc1\\x28\\x03\\xd0\\x27\\x71\\xd9\\x2f\\x47\\xe6\\xe7\\x17\\xcc\\xc1\\x44\\xfc\\x03\\x72\\x75\\xb6\\xf7\\x45\\xdd\\x30\\xda\\x1a\\x45\\xd2\\x9d\\xb6\\xd9\\x07\\x3e\\xee\\x50\\x09\\xcf\\xd5\\x46\\x27\\x33\\x41\\x4a\\x49\\x5f\\x34\\x9d\\xb0\\xb6\\xdb\\xf2\\xce\\xa9\\xcc\\xd5\\x72\\x38\\xed\\x5e\\xe9\\x1a\\xd8\\xbc\\x86\\x17\\x9a\\xd5\\x69\\x5a\\x85\\xa5\\x04\\x84\\xe6\\x17\\x75\\x1d\\xe5\\xef\\x7a\\x7d\\x8a\\x8d\\xb9\\x50\\xa9\\x8a\\x6b\\x7f\\x7d\\xee\\x9d\\x42\\xa5\\xdf\\x69\\x2f\\xcc\\xf5\\x55\\xc9\\x40\\xdc\\x39\\xcf\\x2e\\xac\\x48\\xcb\\x9d\\x15\\xcd\\xa1\\x4d\\xd2\\xa7\\xec\\xc0\\xb7\\x6e\\xbe\\xc6\\x8a\\xd4\\x17\\x7d\\x11\\x17\\xe0\\x77\\x66\\xc4\\x85\\x90\\xd4\\x3c\\xa7\\x66\\x28\\x68\\xeb\\x97\\x90\\xac\\x29\\xf4\\xf2\\x39\\x2b\\x9a\\x93\\xf8\\x97\\x59\\xe7\\xba\\x54\\x6b\\x92\\x5b\\xd8\\x6f\\x80\\x7d\\x8d\\x16\\xc7\\xe6\\x37\\xdc\\xc6\\x66\\xe9\\x05\\x90\\xbf\\x43\\x0d\\x98\\x6a\\x67\\xf1\\xb0\\xc7\\xc2\\xc9\\x49\\x30\\x84\\x58\\x69\\xed\\x8d\\x8a\\xdd\\xe1\\x8f\\xc1\\x88\\x74\\x56\\x88\\x1b\\x4b\\x26\\xb5\\x3d\\xcb\\xa7\\xa5\\x26\\xf0\\xec\\xa1\\x4e\\x8b\\xb6\\x89\\xd6\\x6f\\x0a\\xa1\\xb2\\x53\\xc3\\xdc\\xfc\\xf5\\x95\\x40\\xd5\\xd2\\xf5\\xad\\x61\\x7f\\x52\\xc3\\x09\\x38\\xa5\\xa9\\x2e\\xa3\\x85\\x07\\x7d\\x75\\xaa\\x4a\\xc0\\x7a\\xfc\\x2b\\x35\\xfb\\x8c\\x1d\\x5e\\x78\\xeb\\x29\\x5f\\xc2\\x0f\\xe3\\x7c\\x41\\xac\\x06\\x95\\x9d\\x3a\\x17\\x97\\x84\\x3a\\xd7\\x05\\x6c\\x1b\\x41\\x2d\\xd0\\xb4\\x80\\xaa\\x3b\\x39\\xbc\\xc2\\x05\\x87\\xd9\\xa0\\xfe\\xf9\\x2c\\x6c\\x95\\x0e\\xbc\\x5b\\xb8\\xe1\\x42\"},\n{{0x1d,0xf7,0xac,0xfb,0x96,0x33,0x04,0xe5,0x1e,0xc4,0x71,0xca,0xf1,0x81,0x10,0x25,0x56,0x78,0x3c,0xb7,0xd9,0x1e,0xad,0x30,0xbd,0xc2,0x53,0x4d,0x07,0x8a,0x14,0x88,},{0x05,0xa3,0x1f,0xfc,0x70,0xe4,0xe3,0x56,0x9f,0xc2,0xbe,0x11,0x0c,0x64,0x3a,0xd5,0xf0,0x87,0x91,0x3c,0x7a,0xa4,0x76,0xdc,0xd8,0xd6,0xe4,0xbc,0x7e,0xc2,0x2d,0x24,},{0xb1,0x81,0x93,0x8d,0xe1,0x01,0x42,0xf3,0x24,0x07,0xb4,0xe7,0x86,0xcd,0xdd,0xe9,0x32,0xeb,0x11,0xdb,0xc0,0xbf,0x0e,0x5a,0xc5,0x09,0xfa,0xe7,0xa5,0xbc,0xc3,0x29,0x61,0xfe,0x34,0x48,0xf9,0x12,0xc8,0x50,0x0f,0xc6,0xdb,0x4e,0x1d,0x32,0x62,0xa8,0x3c,0x9d,0xbe,0x76,0x9b,0xb8,0xc3,0xa7,0x61,0x00,0x0f,0xe3,0x6c,0x0d,0x71,0x04,},\"\\xb0\\xc3\\xee\\xb5\\x7f\\x14\\x60\\x6a\\xb7\\xab\\xea\\xb2\\xee\\x05\\x73\\x84\\x3c\\xa2\\x2e\\x6d\\xb2\\xfd\\xf2\\xc9\\x06\\x4c\\xea\\x51\\x98\\xdc\\x58\\x30\\xeb\\x15\\x8d\\xa8\\xe2\\xda\\xa8\\x88\\x57\\xaf\\x8b\\x8e\\xef\\xcc\\xf0\\xc2\\x6c\\x3e\\xc0\\xf3\\x30\\xe9\\x2c\\xff\\x06\\xbc\\x05\\xa2\\x9b\\xfc\\x99\\xf9\\x40\\xb6\\x1f\\x3c\\xfb\\x29\\x64\\xb3\\x37\\x09\\x7a\\x65\\x50\\xa3\\xe9\\xa3\\x28\\xc8\\x5b\\xe6\\xf1\\x60\\xd2\\xc0\\xa5\\x7f\\xf6\\xf1\\xb3\\xc5\\xff\\xcc\\xa8\\x90\\x89\\x42\\x5a\\xb6\\xbe\\x01\\x72\\xe1\\x75\\xba\\xf4\\x0c\\xf1\\x2b\\x24\\xa8\\x15\\xf7\\x0f\\x29\\xa3\\xa4\\xcd\\x0a\\x6a\\x13\\x2f\\x12\\x00\\x97\\x75\\x2f\\x4b\\xc7\\x43\\xed\\xe0\\x8f\\x5f\\x21\\xd4\\x2f\\x28\\x2f\\x76\\x71\\xf7\\x78\\x3e\\x27\\xb2\\xa8\\xe2\\xc1\\x46\\x92\\xf1\\xe0\\xe5\\xde\\x82\\x85\\x5d\\xab\\xf9\\x8a\\x1a\\x63\\x97\\x60\\x06\\xff\\xbf\\xe5\\xf5\\xa5\\x79\\xb4\\x60\\xe2\\x6d\\x06\\xbd\\x54\\x28\\x42\\xa5\\xf9\\x26\\x1b\\xbf\\x26\\x04\\x51\\xd2\\x32\\x1c\\x50\\x89\\x32\\x01\\x3c\\xc6\\xe9\\x04\\xf7\\x9b\\x5e\\x46\\x86\\xd0\\x33\\xe1\\x2c\\x7b\\xbd\\x7e\\xb1\\xc9\\x23\\x79\\xc5\\xec\\x34\\x1b\\xf6\\x45\\x7a\\x3f\\x17\\x26\\x4a\\x7c\\x27\\x8b\\x27\\x50\\x1e\\xca\\xed\\xc3\\x61\\xeb\\xa8\\x44\\x44\\x23\\x42\\xb4\\xb1\\x0f\\xa9\\x4d\\x26\\x58\\x65\\x11\\x6a\\xcf\\x43\\xfc\\xbe\\xc9\\x65\\xd2\\xab\\x4b\\xbb\\xe6\\x14\\xc4\\xf9\\x0a\\xb6\\xb3\\xe0\\xd5\\x38\\x3f\\xa0\\x49\\x88\\xbf\\xbb\\x26\\x03\\x07\\xdd\\xe2\\x2d\\x84\\x09\\x8b\\x63\\x31\\xd1\\x55\\x14\\x1a\\x92\\x7b\\xb7\\x8d\\x66\\x4b\\x34\\x1d\\x2f\\x2a\\x93\\xe2\\x91\\xcf\\x79\\xba\\xae\\xcd\\x26\\x12\\xf6\\xb1\\x04\\xf3\\xfc\\x81\\x37\\x3a\\x7c\\x6a\\x04\\x5b\\x59\\x24\\xbf\\x95\\x0c\\xd5\\x42\\xf7\\xb7\\xac\\xce\\xf3\\xaa\\x7d\\x72\\x5d\\xe0\\x53\\x05\\x5d\\x95\\x1b\\xd7\\x68\\x11\\x13\\x92\\x59\\x66\\x38\\xae\\x09\\x71\\x70\\xf4\\x49\\x2b\\xa5\\x0a\\x46\\x8f\\x8e\\x34\\x77\\x63\\xdb\\x61\\x2d\\x3c\\x7d\\xe7\\xe5\\x64\\x59\\xb2\\x6e\\xe0\\x29\\xc6\\x30\\x82\\x7a\\x35\\x3a\\xee\\x73\\xde\\x68\\xd6\\xd7\\x2b\\x27\\xaf\\xd7\\x5d\\x22\\x16\\x45\\x27\\x94\\x5c\\x72\\x26\\x84\\x4f\\xab\\x15\\xb8\\xdc\\xc9\\x14\\x34\\x9e\\x31\\x41\\xc6\\x13\\x16\\xad\\xc8\\x94\\xde\\xdc\\xdc\\x84\\x39\\x84\\xd9\\xc7\\xfe\\xae\\x39\\xdb\\x33\\x2d\\xc3\\x93\\xe9\\xe8\\x96\\x1b\\xbd\\xe0\\x71\\xc3\\xd2\\x85\\x8b\\x3c\\xb5\\xf3\\x3b\\x16\\x4a\\x15\\x61\\x6c\\x6f\\xe1\\xbb\\xc2\\x4a\\x35\\xf2\\x13\\x36\\xd2\\x61\\xc5\\xd8\\xcf\\x75\\x9e\\x27\\xe2\\x2c\\x91\\x01\\xc4\\xae\\xbd\\xe3\\xe1\\x26\\xcf\\x64\\x6c\\xa7\\xb2\\xe0\\x31\\x28\\x09\\x5c\\x59\\x76\\xbf\\x3f\\x6e\\x49\\x1a\\xf0\\xf0\\xb6\\x40\\xc7\\x31\\x09\\x66\\xac\\x59\\xc5\\x9f\\xbc\\x5b\\xfe\\x05\\x48\\xf8\\x8e\\xe6\\x1a\\xd9\\xec\\x40\\xc1\\xc0\\x6d\\xd2\\x9d\\x79\\x4c\\x44\\xa3\\xea\\x22\\xc3\\xd4\\x76\\x26\\x22\\xec\\x1e\\x8b\\x33\\x3e\\x45\\x07\\x4d\\xb9\\x37\\x41\\xfd\\xa1\\x93\\xc9\\x11\\xf6\\xdb\\x58\\x79\\xe5\\x5e\\xe3\\x6e\\xf6\\x02\\x61\\x4a\\xe6\\x4a\\x5c\\xde\\x9d\\x83\\x06\\xd2\\x2f\\xbc\\x4a\\xe9\\xc8\\x81\\xa5\\x94\\xbd\\xe6\\x79\\x61\\x25\\xfc\\xb6\\x28\\xb9\\xf3\\xb6\\xfb\\x3f\\xfd\\x51\\x1b\\x35\\x3f\\x14\\x6a\\x27\\x27\\x2a\\xfd\\x3e\\x5d\\x28\\xb7\\x7f\\x58\\xa6\\x7f\\x1f\\xd2\\x72\\x85\\xc2\\x5e\\xcc\\x1c\\xcf\\x64\\xe3\\x8d\\x21\\xf3\\xb9\\xff\\x22\\xe0\\x0e\\xe9\\x00\\x62\\x9e\\xf1\\xa6\\x3e\\x71\\x3f\\x25\\x88\\x83\\xdd\\x91\\x1f\\x30\\xc0\\xd3\\x98\\xb7\\x4b\\xd7\\x97\\x14\\x9b\\xe5\\xe2\\x69\\x67\\x22\\xda\\x09\\xd5\\x2d\\x4e\\xbf\\x3c\\x67\\x39\\x29\\xd2\\x98\\xaa\\xc3\\x4c\\xe0\\x5b\\xea\\x08\\xea\\x9a\\x42\\x4e\\x93\\x45\\x9c\\x2e\\xb8\\xfc\\x22\\x22\\xc3\\x1c\\xc1\\x3d\\x80\\x3b\\x90\\xa8\\xa7\\x0b\\xcd\\x0a\\x30\\xc2\\x09\\x21\\x1d\\xc2\\xcc\\xc8\\x5b\\x0b\\xcd\\x45\\x82\\xc6\\x95\\xf5\\x8d\\x80\\xbf\\x6e\\xc4\\x71\\xa2\\x50\\x5f\\x68\\x84\\x7a\\x75\\xf6\\xe9\\x11\\xfd\\x87\"},\n{{0x7e,0xd8,0x7c,0x36,0xdf,0xdb,0xae,0x60,0xc9,0x40,0xa3,0xb3,0x25,0xc1,0x9f,0xde,0xd8,0x14,0xd7,0x6a,0x54,0x48,0x20,0xa3,0x2f,0x28,0x6a,0x5c,0x0a,0xd7,0x1d,0x72,},{0x3c,0x4a,0xc5,0x10,0xb3,0x62,0x22,0xc2,0x52,0xa2,0xdc,0x1a,0xfc,0xb4,0x0f,0xb0,0xeb,0x85,0xbc,0xa9,0x03,0x91,0x19,0x6a,0x58,0x83,0xaa,0x2c,0xc9,0x12,0xb2,0xdf,},{0x57,0x9b,0x38,0x12,0x4b,0xd0,0x59,0x1a,0x59,0x7c,0xc9,0xa3,0x89,0x12,0x7c,0xea,0xf5,0x51,0x56,0x07,0x73,0x63,0xed,0xb8,0x11,0xd0,0xb6,0x55,0x52,0xac,0xfc,0xc6,0x77,0xb2,0x72,0x94,0x21,0x99,0xca,0x25,0xab,0x79,0x0d,0xe6,0xe0,0x84,0x60,0x3a,0xd1,0x05,0x2e,0xc2,0x10,0xcf,0x6f,0xcb,0x14,0x17,0x28,0x90,0x67,0xce,0x3c,0x08,},\"\\x62\\xd3\\x13\\x91\\x2a\\xbb\\xb0\\x06\\xb7\\x77\\x4a\\x67\\x37\\x71\\x4a\\x34\\x99\\x70\\xce\\x04\\x21\\x11\\x2f\\x40\\x04\\x63\\xd3\\xdb\\x0e\\x2f\\x7f\\x12\\x8d\\x7b\\x96\\x93\\x9f\\x43\\xc1\\xe7\\x10\\x7b\\x51\\x18\\xa7\\x7c\\x11\\x96\\x83\\xd8\\x66\\xb7\\xe3\\xd7\\x2a\\xc2\\x1f\\x6b\\x42\\x72\\xb4\\xbe\\x92\\x89\\xb6\\x55\\x6f\\xe3\\x1b\\x60\\x51\\xa0\\xb4\\x2e\\xd5\\xea\\x0c\\xf3\\x47\\x69\\x6d\\x30\\xfb\\x8b\\xff\\x6b\\x8b\\x57\\x27\\x19\\xde\\x19\\xa2\\x31\\xcc\\x85\\x45\\x9a\\x99\\x0c\\x37\\x80\\x1f\\x08\\x37\\x18\\x6c\\xef\\xbb\\x55\\x21\\x56\\x96\\x66\\x96\\x7c\\xd4\\x24\\x3d\\x73\\x07\\xf1\\xb0\\xb2\\x4c\\x8e\\x2b\\x9b\\x69\\x23\\x17\\x30\\x4f\\xbe\\x3d\\xd0\\xa2\\x63\\x65\\x01\\x91\\xb3\\x52\\x16\\xf5\\x29\\x16\\x57\\x3a\\xf9\\x05\\x24\\xf9\\x1d\\xb1\\xa9\\x24\\x71\\xd7\\x58\\xc9\\x2d\\xc6\\xd1\\x4d\\x1a\\x4b\\x26\\xf4\\x1b\\x40\\x40\\x3c\\xa8\\x7d\\xcf\\xab\\xdc\\xa4\\x7b\\x9f\\xc2\\x53\\x35\\x78\\xf1\\x61\\xf3\\xb0\\x19\\x9b\\x5c\\x69\\x8e\\x08\\x07\\x04\\xb2\\x1c\\x9e\\x61\\x52\\x69\\xfc\\xd0\\xd4\\x04\\x39\\xed\\x8b\\xc3\\xbd\\xfb\\xc9\\xaf\\xb4\\x4c\\x11\\xfa\\x89\\x27\\x5f\\x0e\\xaa\\xa5\\xd0\\x8f\\xa9\\x59\\xd6\\x37\\x8d\\x0d\\xb8\\x99\\x10\\xd4\\x8f\\x2d\\x86\\xa1\\xeb\\xfc\\x5c\\xbf\\x10\\xeb\\x2d\\x5a\\xad\\xf5\\x1b\\xbd\\x83\\x44\\xff\\x8b\\xbb\\x5b\\x8a\\xfe\\x05\\xa4\\x50\\x11\\xb5\\xe4\\xb7\\x2e\\xb8\\x64\\xad\\x26\\x3e\\x8a\\x03\\xa6\\xc7\\xf9\\x8a\\xee\\xb3\\x54\\xf7\\x30\\xa3\\x18\\xaa\\x30\\xfb\\x56\\xd3\\x3d\\x80\\x74\\x8c\\x98\\xeb\\xec\\x15\\x87\\x8c\\xcf\\x3c\\xe8\\x22\\xf6\\x9d\\x34\\x56\\x84\\x3c\\x40\\x0d\\xc5\\x6b\\x48\\x1a\\x95\\xe6\\x88\\xb8\\xa4\\x73\\x5b\\xf3\\x84\\x3f\\x58\\x33\\xdd\\xa0\\xef\\xe0\\x9e\\x71\\x75\\xb5\\x67\\xc6\\x61\\x38\\x7a\\xfd\\x2e\\xbc\\x07\\x9a\\x48\\xe3\\x49\\x67\\xec\\x97\\xb9\\x27\\xdf\\xa5\\x81\\x88\\x8f\\x23\\x1a\\x98\\xa7\\xed\\x33\\x10\\x3b\\xfa\\x8e\\x8f\\x9b\\xa6\\x51\\x35\\x27\\x90\\x0b\\x39\\xb8\\x62\\x31\\xda\\x79\\x11\\xa2\\xfc\\x93\\x58\\x88\\xa7\\x5f\\x11\\x29\\x58\\x4a\\xff\\xf2\\x02\\x52\\x49\\xc4\\x18\\x8f\\x09\\x05\\x2f\\x85\\x68\\x77\\x06\\xd0\\x5e\\x29\\x91\\x44\\xd4\\x0d\\xe8\\x89\\x8b\\x7c\\x8b\\x2d\\xfe\\xf0\\xc3\\x70\\x85\\x73\\xd8\\xb0\\x56\\x3a\\x6b\\xd0\\xa5\\x04\\xc0\\xb6\\x74\\x57\\x02\\xb1\\xb5\\x71\\x21\\xc6\\xf0\\x40\\xaf\\xf2\\x71\\x98\\x94\\x8b\\xa6\\x9c\\x21\\x25\\x3a\\x28\\xd3\\x9e\\xba\\x72\\x62\\x19\\xbe\\xda\\x1f\\x82\\x09\\xfb\\x83\\xe9\\xad\\xb0\\x7a\\xd4\\x09\\xfb\\xd6\\xd2\\x55\\x65\\x88\\x9a\\xb4\\x51\\x23\\xf9\\xd9\\x45\\xec\\xd7\\xd9\\xca\\x70\\x28\\xec\\xe0\\x92\\xe3\\x5f\\xbb\\x7c\\xb3\\xf3\\x28\\x12\\x6e\\xfd\\xda\\xc5\\xd8\\x59\\xf2\\xb2\\xc6\\xeb\\x09\\x01\\x33\\x69\\x0e\\x20\\xc1\\x7d\\xea\\xf3\\x88\\x26\\x85\\xf0\\x7e\\x9e\\xd2\\x65\\x3b\\x80\\x3b\\x9b\\x38\\x3b\\x70\\x74\\x8a\\x1f\\xa9\\x2c\\x86\\xf8\\x6d\\x6c\\x47\\xea\\x87\\xb1\\x0b\\x12\\xe3\\x63\\xba\\x50\\x80\\x60\\xf4\\x7c\\xe2\\xa2\\xf3\\xb6\\xa3\\xee\\xfc\\xd4\\xda\\xcf\\xc7\\x1c\\x41\\xf4\\x36\\xfe\\x0c\\x2b\\xc3\\x4d\\x4b\\xaa\\xd4\\x95\\x74\\xe7\\x44\\x3c\\x12\\x6a\\x58\\x9f\\x6e\\xf7\\xbc\\xa4\\x49\\x54\\xf0\\xbb\\x28\\xec\\x71\\x51\\xb0\\x51\\x1c\\x23\\xc6\\xbc\\x42\\xd5\\xe8\\x59\\x83\\xec\\x16\\xbb\\x5f\\x50\\xa3\\x82\\xd6\\x88\\x15\\x0a\\x49\\x60\\x9c\\xbd\\xe5\\x69\\x8e\\x86\\xdc\\xbf\\x02\\x12\\xc2\\x29\\x22\\x99\\xdc\\x4d\\xcf\\x87\\x42\\x9f\\x6c\\xd2\\xee\\xc8\\x09\\x48\\xce\\x86\\x7e\\x25\\xc9\\x45\\x84\\xcd\\xc6\\x4b\\x09\\x90\\x29\\xeb\\x85\\x4e\\xdc\\x26\\xea\\x21\\x42\\x1e\\xff\\x48\\xcf\\x4e\\x41\\xf4\\x9e\\x2d\\x89\\x47\\x8d\\xef\\x06\\xc4\\x2b\\xea\\x22\\x0a\\x13\\x3e\\x50\\xf5\\xc7\\x44\\x64\\xc7\\xe7\\x3f\\xb1\\xc1\\xa7\\x7c\\x50\\x7c\\xf6\\xcd\\xa8\\x5b\\xe4\\x02\\xb7\\xe6\\xd6\\xd2\\x1e\\x81\\x0d\\x6d\\x0b\\x59\\x72\\xb9\\xfe\\x77\\xe5\\x4e\\x74\\xae\\xe1\\xf3\\xbb\\xfd\\x6e\\x7d\\xe6\\xb5\\xc0\"},\n{{0x6a,0x29,0xf8,0x1b,0x8d,0x9a,0xa4,0x8a,0x1b,0x23,0x36,0x4e,0xac,0x8f,0x6a,0x4b,0xdd,0x60,0x7a,0x84,0xcf,0xe8,0xe8,0x8d,0x90,0x17,0x5d,0x80,0x64,0x3a,0x58,0xa8,},{0x4c,0x3b,0xe3,0xa2,0xa8,0x42,0x5f,0xf3,0x1c,0x3a,0x0d,0xb4,0xa5,0x2a,0x0c,0xb1,0x41,0x6c,0xeb,0x48,0xcc,0x3e,0x4c,0x28,0xa4,0xf2,0x28,0x4a,0xb3,0x46,0x07,0x15,},{0xdf,0x09,0xcb,0x9b,0x87,0x8d,0x3d,0xc9,0xe5,0x42,0xdb,0xac,0x28,0x94,0x3e,0x28,0xe4,0x1d,0xce,0xcb,0x92,0xcb,0x7e,0xa4,0x40,0x09,0x88,0x5e,0x46,0x49,0x97,0x43,0x33,0x05,0x61,0xba,0x1d,0x36,0xae,0xdd,0x46,0x76,0x75,0xfd,0xca,0x2b,0xaa,0xa4,0x70,0x1b,0x6f,0xad,0x97,0x9f,0xd8,0x39,0xc4,0x70,0xd1,0x3c,0x82,0xda,0xa9,0x05,},\"\\x78\\x76\\xa3\\xf4\\xeb\\x69\\xbb\\x7e\\x54\\xe9\\xff\\x95\\x4e\\xbd\\x3b\\x10\\xb9\\x3a\\x4c\\x1a\\xfe\\xae\\x92\\xfa\\x03\\xc1\\x03\\xcb\\x63\\x13\\xa2\\x01\\xc5\\xb3\\x3a\\x9a\\x72\\x23\\x75\\x5c\\xb5\\x10\\xe2\\x5e\\xc5\\x82\\xb5\\x4e\\x81\\xb8\\x49\\x56\\xf6\\xc5\\x3f\\x1f\\x08\\xa6\\x3b\\xf0\\xc4\\xa2\\x61\\xaf\\x45\\x0e\\x52\\x3f\\xe8\\xf6\\x1d\\xdb\\x3c\\x0e\\xea\\xb8\\x75\\x10\\x72\\x68\\x88\\x01\\xb2\\xa4\\x73\\xb7\\x1a\\x2e\\x38\\x70\\x8d\\xa6\\x8c\\x2f\\x37\\x92\\x5c\\xb0\\x5a\\x20\\xc4\\x28\\x3b\\x3a\\xf9\\x7b\\x6f\\x0b\\xa6\\x5a\\x54\\x03\\x55\\x43\\x75\\xe2\\x15\\xd9\\xe3\\xaa\\x1b\\x0f\\x9f\\xdb\\x0f\\x84\\x99\\x23\\xed\\xbd\\xaa\\x0a\\xb4\\x81\\xc5\\x45\\xa5\\xdf\\x8f\\x51\\xd1\\xf6\\x8b\\x22\\x35\\x07\\xea\\x0e\\xcc\\xfa\\xeb\\xb5\\xfc\\xcf\\x5e\\x3d\\xfa\\x65\\xa4\\x4e\\xea\\x50\\x45\\x68\\xa8\\x81\\x80\\xa0\\x60\\xbb\\x06\\xc5\\x15\\x57\\xb8\\x1e\\x66\\x7b\\x4b\\x04\\xe3\\x21\\x0f\\xa4\\xc3\\x79\\x87\\x6c\\x49\\xf3\\xe5\\x6b\\xf2\\xbe\\x1c\\xf5\\x19\\xa7\\x41\\x83\\x93\\xd2\\x40\\xdc\\x8a\\x22\\x4c\\x6c\\x38\\xac\\x2a\\xb9\\xd8\\xfa\\xdf\\xc5\\x36\\x20\\x30\\xc7\\x93\\x0c\\x3c\\xe7\\x79\\x5b\\x14\\x7c\\x26\\xc8\\xa2\\x8c\\x65\\x34\\x29\\xd9\\x0a\\x17\\x3a\\x86\\xa8\\xb1\\x8a\\x00\\x9e\\x62\\xae\\xf6\\xec\\xa9\\x5d\\x39\\xbd\\xbe\\x45\\x64\\x77\\x78\\xa2\\x53\\x2a\\x41\\x5a\\xe1\\x9b\\xad\\x23\\x11\\x29\\x12\\x78\\x42\\xfe\\x1d\\x0f\\x11\\xfa\\xb4\\xa1\\xcf\\x0b\\x17\\xe4\\x98\\xcd\\x59\\x52\\xc9\\x39\\xe0\\x90\\x09\\x02\\x87\\xb1\\x44\\x89\\x5d\\xff\\x00\\xce\\xc8\\xd6\\xae\\xda\\xf6\\x24\\x81\\xa4\\x17\\x83\\xe0\\x21\\x08\\x2c\\xe3\\x52\\x06\\x3e\\x62\\x81\\x1f\\xd9\\x99\\x90\\x10\\x4d\\x8a\\x46\\xcd\\xca\\xee\\x2b\\xab\\x45\\x8e\\x52\\x47\\xfb\\x02\\x3e\\x92\\x33\\x30\\xa4\\x28\\xc7\\xbc\\xfd\\x20\\xb0\\x8f\\x52\\x0e\\x89\\x46\\xdd\\x65\\x83\\x47\\x35\\x2a\\xe0\\xc4\\xbe\\x73\\xc3\\xd5\\xec\\xcd\\x11\\x14\\x9f\\x3a\\xb7\\xb8\\x05\\x2c\\xfd\\x95\\xc3\\x5d\\x41\\x64\\x54\\x6f\\x5d\\x8f\\x37\\x75\\x17\\xa7\\xf4\\x32\\xc0\\xd5\\x56\\x3a\\x7b\\xcc\\x7b\\xd1\\x19\\xd3\\x42\\x1d\\xfe\\xba\\xae\\x84\\x45\\x99\\xb2\\x9b\\x38\\x3b\\xb8\\xd5\\xdb\\xf1\\x40\\xd9\\xbd\\x47\\xa0\\x78\\xb7\\xae\\x7c\\x6a\\xa8\\x7b\\x1e\\x29\\x23\\x6c\\x9f\\xcf\\xd6\\x54\\xb7\\xf8\\x09\\x79\\x4c\\xcc\\xb2\\x61\\x58\\x8e\\x18\\xde\\xc6\\xc4\\x04\\x6a\\x93\\x40\\x67\\xd0\\xdf\\xa0\\x37\\x91\\xd0\\x3d\\x83\\xb7\\x18\\xac\\x4d\\x24\\xdc\\xe7\\x85\\xa3\\x02\\x8d\\xe0\\xc9\\x59\\x2d\\xba\\x7c\\x5c\\x58\\x45\\x18\\x4a\\xfc\\x9c\\x0d\\xfc\\xf9\\x40\\x95\\x86\\x0f\\x0e\\xb8\\x02\\xeb\\xea\\x20\\x17\\x8e\\x78\\xb5\\x64\\x2e\\x5d\\xd6\\x1c\\x33\\xb3\\x97\\x69\\x05\\x2d\\x9d\\x85\\x4d\\xce\\x90\\x2f\\x47\\x6e\\x21\\xf9\\x6c\\x65\\x0b\\x46\\x3b\\x7b\\xc3\\xd0\\xff\\x29\\x96\\xb6\\x5c\\x57\\x83\\x1f\\x8b\\x7c\\x0f\\xb9\\x15\\xf4\\xdd\\x72\\x26\\xac\\x95\\x5c\\xbc\\x7d\\xfb\\x03\\xf9\\xb7\\x58\\xdd\\x3e\\x0d\\xfc\\xe2\\xe0\\xe5\\x80\\xc9\\x1a\\x30\\xc7\\x83\\xff\\x56\\x7b\\x17\\xf1\\x2d\\xfd\\x5d\\x31\\x37\\x64\\x6e\\x20\\x01\\x1c\\xdc\\xaa\\xe1\\x11\\x02\\xdc\\x71\\x68\\x86\\xcb\\xf1\\x23\\xc0\\x94\\x88\\xb1\\x73\\x63\\x6a\\xbd\\x54\\xe9\\x62\\xca\\xee\\xc9\\x7d\\x5e\\xb9\\x40\\x68\\x2e\\x70\\x3b\\x73\\x0f\\x61\\x56\\x2c\\xd1\\x4b\\x9e\\x65\\x61\\xb5\\xe9\\x3f\\x60\\xcd\\x0e\\x1e\\x86\\xd1\\xa1\\xb4\\x71\\x9c\\x5b\\x50\\x82\\x42\\xbd\\x6b\\x2d\\x9a\\x54\\x8f\\x59\\xbb\\xb8\\x75\\x07\\x59\\x69\\xef\\x20\\x32\\xf3\\x19\\x6b\\x8a\\xec\\xcc\\x45\\xa4\\x4d\\x9d\\xbd\\xaf\\x87\\x8e\\xd1\\x6f\\x1d\\x85\\x5e\\x89\\x18\\xed\\x65\\xa4\\x5e\\xe5\\xc7\\xfa\\x32\\xa1\\xec\\x69\\x32\\xa1\\x59\\xcf\\xb5\\x0f\\xfc\\x87\\xbe\\x06\\xdf\\xcf\\x72\\x28\\xae\\x88\\x70\\xcc\\xd3\\x57\\xfc\\x65\\x6e\\x33\\xfa\\x4b\\x6b\\x8b\\x7d\\x1a\\x72\\x15\\x55\\x3c\\xab\\xac\\xc7\\x0a\\x39\\xc9\\x80\\xb9\\x71\\xe5\\x1a\\x17\\xed\\x63\\x18\\xb4\\x3b\\x29\\xbb\"},\n{{0xef,0x12,0xdf,0x47,0x9d,0x98,0x3a,0xd9,0x6e,0x8b,0xa6,0x53,0x30,0xb3,0x6d,0x49,0xaa,0xdb,0x98,0x31,0x64,0xe1,0xc0,0xb4,0x52,0xb5,0x60,0xde,0xd1,0xd0,0x8d,0x60,},{0xf7,0x61,0xcf,0x28,0x26,0x92,0x7a,0x7c,0xda,0x8c,0xb0,0x4f,0xaa,0x2c,0x59,0xf8,0x42,0x5a,0x8f,0x7d,0x39,0x8f,0x76,0xe8,0x67,0x02,0x1c,0x95,0x1f,0x07,0x38,0x09,},{0x4c,0x80,0x10,0x86,0x6d,0x91,0x15,0xf0,0x52,0x93,0xb9,0x34,0xca,0xc6,0x81,0x04,0xcc,0x2c,0x34,0x37,0x56,0x8c,0xb9,0xd5,0xc5,0x70,0xb1,0xa8,0xbe,0xe7,0x06,0x60,0x30,0x75,0x53,0x70,0x33,0xbd,0x70,0x8a,0x9c,0x9f,0x3d,0x1e,0x25,0x19,0xa9,0x15,0xb1,0xc4,0xae,0x4c,0xcd,0xdf,0xcf,0x0e,0xd0,0xc0,0x49,0xd3,0x42,0xa0,0x2e,0x02,},\"\\xe5\\x8f\\x34\\xda\\xea\\x75\\x5a\\xc4\\xe4\\x13\\x33\\xd6\\xf0\\xed\\x01\\x35\\xf7\\xdb\\xce\\x50\\x30\\x9b\\xb1\\x95\\x6b\\xc7\\x1a\\xcb\\x12\\xc7\\x70\\x67\\xa6\\x47\\xff\\xd8\\x6a\\xa5\\x87\\x0c\\x0c\\x00\\x07\\xe8\\xf9\\x95\\xa2\\x2b\\x88\\xc4\\x67\\xde\\x22\\x54\\x44\\x54\\x42\\x01\\xc5\\x57\\x49\\x5e\\x25\\x3e\\x33\\x19\\xcc\\x5c\\xa3\\x76\\xd3\\xe7\\xcc\\x1e\\xb4\\x67\\x34\\x6e\\x52\\xad\\x95\\x6a\\x6f\\xa7\\x33\\x72\\x0b\\x17\\x11\\x7b\\x5b\\x75\\x85\\xe4\\xd5\\x59\\x40\\x9a\\xae\\xfa\\x95\\x58\\x0f\\x91\\xe5\\x02\\x01\\x5f\\x49\\x7c\\x5c\\xdc\\xb7\\xd4\\xd5\\x61\\xf5\\x44\\xef\\xa3\\x5c\\x1e\\x2a\\x53\\xb7\\x2b\\xdd\\xec\\xee\\xc2\\xd1\\x05\\x0f\\x17\\x7d\\x48\\x0f\\x68\\x74\\x05\\x66\\x4d\\xfd\\xde\\xc0\\x6e\\xee\\x4b\\xd1\\x47\\xa9\\x12\\xfd\\xbf\\x74\\xf2\\xa9\\x5d\\x1f\\xd1\\xe1\\x12\\x68\\x69\\x4c\\xe4\\xd4\\xec\\x4f\\xff\\xd6\\xdd\\xb3\\x25\\x4d\\x36\\x0f\\x23\\x6f\\xab\\x4d\\x1a\\x17\\xf8\\xd0\\xd1\\xa5\\x11\\xf9\\x44\\x69\\x2f\\x23\\x96\\x39\\xae\\x03\\xd6\\x4f\\xac\\xec\\x65\\x38\\x42\\x7a\\xb7\\x1f\\x71\\x27\\xf4\\xa2\\x76\\xf9\\xbc\\x45\\xbb\\xa6\\x11\\xdf\\xcc\\xe6\\x44\\x6c\\xc1\\x39\\x68\\x97\\x6c\\x8b\\xb6\\xd6\\xfe\\x21\\x06\\xd7\\x05\\x92\\x2d\\xca\\xc9\\x56\\x96\\x6a\\x76\\xd4\\x8f\\x2a\\xff\\x4b\\x86\\x51\\x4e\\x39\\xa6\\x7e\\x16\\x43\\xfc\\xc3\\x21\\x85\\x80\\x24\\xe6\\x93\\x18\\x98\\x33\\xc8\\xad\\x59\\xb4\\xb6\\x25\\x29\\x8e\\xba\\xfe\\x64\\x62\\x6b\\x48\\x0f\\x32\\x6f\\x13\\x40\\x72\\x3c\\xb3\\xd3\\x83\\xf4\\xfc\\xcb\\xfc\\x23\\x7a\\x3f\\x4c\\x4f\\x7e\\xcf\\x0b\\xa4\\x36\\xb3\\x2c\\x2f\\xe3\\x51\\x79\\xda\\x93\\x11\\x1b\\x48\\xcc\\x9e\\xa2\\x42\\x02\\xbd\\xc1\\xb2\\xfb\\x60\\xa4\\x31\\x9d\\xfd\\x98\\x64\\x47\\x0f\\x73\\xf5\\x41\\x37\\x20\\x6e\\x0b\\xf0\\x07\\xf5\\xae\\x88\\xa8\\x87\\x47\\x00\\x8a\\x60\\xf4\\x78\\x9a\\xd1\\x67\\x72\\x4f\\x17\\x9c\\x02\\xb6\\x3a\\xed\\x00\\x25\\x73\\xd2\\x8a\\x6b\\xcf\\x88\\xe0\\x7c\\xe8\\xda\\xea\\x5d\\x5f\\x1a\\xcf\\x48\\x7b\\x4c\\x5c\\x16\\xc2\\xbf\\xe1\\x12\\x31\\xea\\x5e\\xa7\\x63\\xe8\\xf3\\x32\\xcc\\x73\\xda\\x1b\\x2f\\x8c\\x19\\x8e\\xa8\\x17\\x3f\\xd3\\x3d\\x4b\\x2a\\xe6\\x9e\\x5d\\x4d\\x1a\\xad\\xdd\\xf2\\xfd\\x82\\x1b\\x85\\xbe\\x45\\x15\\x19\\x62\\xd1\\xf9\\x9d\\xf8\\x13\\x08\\x61\\x88\\x52\\xad\\x7c\\xf4\\x1d\\x72\\xda\\x08\\xa1\\xb3\\x9d\\xf7\\xd8\\xb9\\x94\\xb4\\xdd\\xff\\x37\\xf9\\xdf\\xe8\\xf3\\x8c\\xe3\\x0e\\x91\\x06\\x1d\\x95\\xd5\\x8f\\x7a\\xe8\\x26\\xb0\\x23\\x85\\x27\\x2e\\xc0\\x9f\\x01\\xa7\\xb3\\xe4\\xb3\\x91\\xd0\\x9b\\xce\\xd6\\x65\\xda\\xd6\\x95\\x05\\xb4\\x19\\xda\\x84\\x81\\xbc\\x37\\x92\\xbf\\x8b\\x8e\\x7a\\xd6\\x4b\\x63\\xf2\\x45\\x66\\x6c\\x8c\\x32\\xfd\\x5c\\x1b\\x1b\\x48\\xc9\\x95\\x1e\\x1c\\x21\\xa1\\xeb\\x5f\\x50\\x7c\\xff\\x13\\x7c\\xfb\\x86\\x2c\\x2c\\xc9\\x87\\x66\\xe8\\x78\\xc9\\x30\\xa0\\x83\\x82\\x8c\\x9d\\x8d\\xb1\\x8b\\xf1\\x67\\x16\\x68\\x5f\\x39\\xd6\\x57\\x2a\\x8c\\xa8\\xb2\\xa5\\x14\\xf7\\x70\\x03\\xd4\\xe7\\x5b\\xc1\\x54\\xae\\xbf\\x14\\x10\\x37\\x78\\xf3\\x65\\xb1\\xc3\\xf0\\x35\\x41\\xdd\\xbd\\x07\\xd6\\xe2\\x3e\\x56\\x76\\x2d\\x97\\x1e\\xb0\\x29\\x83\\xe9\\x3c\\x4e\\x01\\xba\\x4b\\x8a\\x21\\x78\\x92\\x8c\\x43\\x37\\xd3\\x02\\xf3\\x1c\\x9c\\xcb\\x75\\xb2\\x49\\xa8\\x2d\\xc9\\x68\\x21\\xe9\\x5a\\x03\\xab\\x6b\\x77\\x0d\\xf2\\xc3\\xdf\\xdb\\xf1\\xfe\\x97\\x73\\xf8\\xbc\\x1b\\xc5\\xb3\\xaf\\xa0\\x44\\x0b\\x10\\x25\\x78\\xf3\\xd2\\x13\\xc8\\xd0\\x19\\xcf\\xf1\\x24\\xf7\\x5c\\xe4\\xac\\xcc\\x8c\\x66\\x7f\\xeb\\x27\\xc7\\x51\\xa6\\x12\\x00\\x74\\x81\\x31\\x04\\xe0\\xcd\\x07\\x0c\\x9f\\x5e\\x45\\x1d\\xcc\\xff\\x4c\\x80\\xd7\\x11\\x07\\xc9\\x75\\xab\\xfa\\xc0\\x7d\\x4d\\x27\\x0c\\x72\\x7d\\x8a\\x2f\\xec\\x34\\x9b\\x53\\x39\\x68\\xe2\\x71\\x89\\x2d\\x2b\\x62\\xc1\\x25\\xfb\\x79\\x74\\x60\\x3c\\x30\\x5e\\xa3\\xbf\\xa3\\x0f\\xb6\\x10\\xfc\\x5a\\x23\\xeb\\x68\\xa8\\x40\\x64\\x44\\x39\\x1a\\x52\\x13\\x37\"},\n{{0xf7,0x31,0x31,0x7c,0xf5,0xaf,0xfe,0x58,0x70,0x4c,0x4d,0x94,0x97,0xae,0x86,0x0b,0xbf,0x73,0x9d,0x0f,0xd9,0x6b,0x7c,0x02,0xef,0xb6,0x77,0x7b,0x3c,0x85,0x8a,0x19,},{0xd7,0xd6,0x38,0xae,0xcc,0xe1,0x46,0x1e,0x31,0x42,0x55,0xaa,0x29,0xd9,0xa6,0xb4,0x88,0xae,0xa1,0x39,0x6e,0x96,0x82,0x69,0x5a,0x47,0x0e,0xff,0x23,0xf3,0xed,0x84,},{0x2a,0x4f,0xea,0x98,0xf9,0x24,0x01,0x71,0xa1,0x82,0x3f,0x2f,0x69,0x35,0x20,0x62,0x67,0x2e,0x6c,0x6e,0x66,0x52,0xd3,0x88,0xa8,0x77,0x14,0xd6,0x47,0x99,0x5d,0xf7,0x5b,0x6e,0x1e,0xd1,0x74,0x6a,0xf2,0xad,0xf4,0xe8,0x06,0x13,0x5d,0x60,0x75,0x4e,0x60,0xfe,0xa0,0x32,0x12,0x8e,0x35,0xab,0xc1,0xf1,0x61,0x51,0x81,0x12,0x5f,0x0b,},\"\\x16\\xf5\\x1c\\x59\\xe9\\xae\\xfc\\x26\\xb0\\xda\\x5e\\x00\\x85\\xeb\\x2e\\x2f\\x1f\\x85\\x6d\\xef\\x97\\x25\\x76\\x9e\\x3a\\xf1\\x2f\\x86\\x09\\x05\\xae\\x13\\x3f\\x65\\x07\\x4d\\xa7\\x6d\\xbf\\x25\\xc6\\x7f\\x62\\x57\\xd2\\xdc\\x66\\xc0\\x5f\\x9b\\x31\\xae\\x17\\x7b\\x69\\x92\\x9f\\xc1\\x83\\xb5\\x88\\xc5\\x19\\xbc\\xa1\\x47\\x96\\xa0\\x89\\x6d\\x29\\x05\\xfd\\x94\\x2d\\x7a\\xb4\\xa3\\xfd\\x95\\x41\\xa5\\x52\\x9f\\x72\\x9c\\x58\\x51\\x41\\x9b\\x5f\\xbe\\xf7\\xb1\\x34\\xd6\\x76\\x2e\\xb9\\x7e\\x8a\\x95\\x1a\\x8f\\xf5\\x2a\\xa0\\xd7\\xe6\\x74\\x44\\xd0\\x6b\\x07\\xaa\\x55\\xe4\\xeb\\x9a\\xb8\\x92\\xf4\\x7b\\xfd\\x11\\x1d\\xf5\\xb6\\x2f\\x6f\\x3f\\xd1\\xa5\\xed\\x84\\x12\\x5f\\xee\\xbb\\x77\\xda\\x63\\x7c\\x05\\xd5\\x26\\x5c\\xed\\x11\\x3d\\xfe\\x87\\x82\\xdb\\xd1\\xce\\xcd\\x2c\\x6c\\x03\\x2b\\x8f\\xa8\\x85\\x5b\\x3a\\xe7\\x8d\\xe7\\x4f\\xaa\\x5a\\xa2\\x0a\\x76\\x14\\x63\\xc2\\xa3\\x0b\\xe6\\x6b\\xd3\\x8c\\xde\\xc7\\x5f\\x89\\x57\\xcb\\x94\\xc1\\x13\\xa4\\x5d\\x54\\x6d\\xaf\\x47\\x5d\\x89\\xaa\\x14\\x82\\xf8\\xd2\\x80\\x3a\\x23\\xc9\\x39\\x20\\x20\\x15\\xa0\\x8e\\x94\\xb1\\x32\\x72\\x8f\\xbe\\x8f\\x60\\x19\\xd7\\x16\\x8a\\x08\\xa5\\x93\\x01\\x70\\xe5\\x63\\x9d\\x11\\x0e\\x47\\x39\\xdb\\x85\\xe6\\x1e\\x64\\x49\\x59\\x44\\xb5\\x42\\x3a\\x74\\xad\\x5a\\x8a\\x0a\\x51\\x06\\x12\\xec\\xe6\\x55\\xce\\x18\\x86\\x40\\x51\\x52\\x5b\\x90\\x8e\\x0b\\x19\\x29\\x0a\\xbe\\x8b\\x11\\x82\\xc4\\x8c\\x70\\x0d\\x35\\x05\\x15\\xfd\\x34\\x99\\x56\\xe8\\x08\\x73\\x27\\xf3\\x0b\\x6f\\xc3\\xf1\\x31\\xc2\\x14\\x4a\\xbb\\x3f\\x0e\\x9c\\xa3\\x31\\x17\\x2b\\x35\\x06\\x4a\\x82\\x81\\x1a\\x68\\xe2\\xcf\\x36\\xb4\\x3e\\x3a\\xd2\\xe8\\xdf\\xa5\\xb1\\xce\\xf5\\x0e\\x2a\\x60\\x29\\x3f\\xc5\\xf6\\x35\\xc9\\xa9\\x99\\x8d\\x8c\\x1a\\xd2\\x96\\xe7\\xc7\\x8f\\xc0\\x58\\x20\\x22\\xd6\\x30\\x67\\x18\\x6b\\x65\\xe7\\x64\\x82\\x8c\\xc0\\xf5\\xf7\\x63\\x2d\\x5e\\xef\\x86\\x3e\\x6c\\x6d\\x90\\xe3\\x8c\\xcc\\x87\\xd7\\xb7\\x47\\xfa\\xc8\\x49\\x1d\\x63\\x2c\\xf7\\xf5\\x4b\\x9a\\x9e\\xed\\x16\\xee\\xbe\\xc0\\x1b\\x6c\\xc3\\x3d\\x24\\x63\\xf7\\xf9\\x50\\xd8\\x28\\xb5\\x5e\\xe3\\xf7\\x7c\\xbe\\x97\\x4f\\x48\\x94\\x8e\\xb7\\x57\\xae\\xd4\\xe0\\xdb\\xb0\\x0a\\xd9\\x5e\\xe0\\x13\\x23\\x48\\x6e\\xba\\x3c\\x8d\\xa8\\x86\\xed\\x7f\\x57\\xbb\\x40\\x0d\\x63\\xa1\\xb2\\xeb\\xea\\xa2\\xe7\\x0a\\xdf\\x03\\x79\\xe3\\x39\\x30\\x01\\xba\\x62\\x6c\\x0d\\xd5\\x4b\\x7f\\x0c\\x9a\\x25\\xaa\\xe6\\xc9\\x87\\x5d\\x4e\\x76\\x22\\xf3\\xed\\x42\\x8f\\xb3\\x12\\x4b\\x29\\xc5\\xdb\\x9a\\x7e\\xf1\\x6e\\xbd\\xdd\\x68\\x05\\xf0\\x95\\xf5\\xe7\\x69\\x82\\x3c\\x43\\xf2\\x62\\x86\\x8f\\xf4\\x3e\\x3e\\x05\\x25\\x74\\x6d\\x94\\x97\\xaf\\x12\\x4a\\x01\\xdf\\xf6\\x1e\\xc7\\x18\\xaf\\x3b\\x5b\\xb7\\x46\\xfc\\xc0\\x8a\\xeb\\xd1\\x66\\x84\\xd4\\x56\\xae\\x79\\x32\\xff\\x5e\\xd7\\xd6\\xb0\\xf1\\xb2\\x5c\\x7a\\xde\\xef\\x59\\x8b\\x5d\\x58\\x87\\x75\\x90\\xac\\x1d\\xc0\\x59\\x75\\x15\\x67\\x96\\x99\\x87\\x74\\x08\\x1e\\x5b\\x66\\x82\\x2a\\x94\\xa6\\xa8\\x02\\xc3\\xa2\\xcd\\x9f\\x48\\x9e\\x16\\x28\\xaa\\xf4\\x65\\x2b\\xe1\\x18\\x4b\\x0f\\xc7\\xc5\\xee\\x7f\\x97\\xce\\x08\\xb9\\x23\\x3b\\x4b\\x83\\xd9\\x36\\x7b\\xe5\\xf4\\xaa\\xe9\\x78\\x25\\x93\\xa3\\x52\\x65\\x15\\x4d\\xea\\x4c\\x37\\x5c\\x16\\xf0\\xca\\xf6\\xdc\\x45\\x94\\xd2\\xbd\\xbf\\xc3\\x37\\x5b\\xb2\\xa0\\x43\\x2c\\x48\\x2f\\x13\\x94\\x1c\\xe2\\xaa\\xab\\x4d\\x83\\xe7\\x4d\\x11\\x6f\\x5d\\xe4\\xab\\x28\\xf8\\xdc\\x3d\\x1c\\xd1\\x9d\\x27\\x1e\\x56\\xe1\\x03\\x98\\xbd\\x1d\\xf5\\xc8\\x70\\xfc\\xbf\\x93\\xa7\\xd1\\xdf\\x39\\x39\\x54\\x7c\\x10\\x7b\\xfd\\x90\\x64\\x3f\\x6f\\x50\\x01\\xae\\x7e\\x06\\x39\\x7a\\xe1\\xa2\\x71\\xbb\\x82\\xa1\\xf3\\x8e\\x09\\x7b\\xec\\x66\\x74\\x66\\xb8\\x0e\\xe3\\xe5\\x0d\\xd4\\xfc\\x9d\\x5d\\x54\\xf1\\x8f\\xaf\\x7a\\x5b\\x55\\xa8\\x83\\x45\\x94\\xef\\x0c\\xb7\\xe5\\x08\\xbb\\xd2\\x8f\\x71\\xfd\\x34\\x23\\x5b\\xbf\\xd3\"},\n{{0x49,0x8e,0x5a,0x21,0xa9,0xb0,0xc3,0x47,0xba,0x83,0xa4,0x7a,0xc1,0x00,0x69,0x45,0x7f,0x57,0x83,0xc2,0xe1,0xe6,0xe4,0x64,0x00,0x45,0xe5,0x94,0xb1,0xc6,0x93,0x32,},{0xfb,0x39,0x48,0xc8,0x11,0x99,0x56,0x91,0x05,0xcc,0x1b,0x7d,0x9c,0xeb,0x3b,0x41,0xa3,0x43,0xbb,0x00,0x57,0x55,0x38,0x59,0x2e,0x09,0x84,0xf4,0xf4,0x71,0x0a,0xbe,},{0x28,0x60,0x83,0x0c,0xcd,0x1d,0x41,0xd9,0x50,0x76,0x81,0x6a,0x39,0x84,0x24,0xf7,0xb7,0x39,0xc4,0x9f,0xda,0xcf,0x56,0x54,0x52,0x9d,0xa8,0x5f,0xe3,0x56,0x55,0x84,0xf6,0xaa,0xc2,0x61,0x4c,0x63,0xf7,0x74,0xb6,0x1d,0xb9,0x08,0x1f,0x14,0x10,0xfb,0xa8,0xe5,0x0a,0xb3,0xb4,0xc3,0x9d,0xc0,0x63,0x14,0x24,0x3f,0x3f,0x0d,0x8e,0x0f,},\"\\xe4\\xfb\\xea\\x86\\x4a\\xa5\\x11\\x90\\x82\\x66\\x45\\xd2\\xf7\\x72\\xcb\\x0f\\x9e\\xdd\\xd3\\x03\\x44\\x73\\xfa\\x31\\x77\\xc7\\xaf\\x9a\\x5d\\x41\\xe1\\xa7\\x3a\\xd5\\x78\\x4c\\x70\\x96\\x55\\x9f\\xcd\\xdb\\x7b\\x7c\\x85\\x89\\x1c\\xf2\\x4e\\x82\\xc5\\x88\\xd7\\x47\\x74\\xff\\xca\\xc0\\xc6\\xb4\\xee\\xbc\\x2f\\x3f\\xa4\\x3e\\x9d\\x45\\xf2\\x59\\xd6\\x75\\x64\\x03\\x0c\\xfe\\xea\\xb9\\x23\\x6c\\x66\\x5b\\x65\\x0a\\xf0\\xc9\\x2c\\x87\\x51\\x89\\xf5\\xf9\\x38\\x35\\x04\\xb1\\x53\\x60\\xa0\\xb9\\xa5\\xa0\\x0d\\xa3\\x1f\\x63\\x5b\\x96\\xf6\\xc7\\x3e\\xf4\\x7b\\x6b\\x06\\xf0\\x28\\x11\\xd1\\xd1\\x9c\\x2e\\x8e\\x53\\x55\\x0c\\xe2\\x2e\\x42\\xec\\x50\\xa1\\xeb\\x2e\\xa2\\xf4\\xcd\\x03\\xc4\\x42\\xd4\\xaa\\x43\\x68\\x94\\x23\\x8c\\xeb\\x18\\x35\\xfe\\x99\\xb2\\x40\\x35\\x8a\\xa0\\x56\\x2c\\x24\\x96\\x98\\xa3\\xf1\\x23\\xc2\\xc1\\x7e\\x59\\x10\\x10\\xbd\\x6f\\xdf\\xcb\\xd7\\xdb\\xe7\\x0b\\x04\\x52\\x05\\x02\\xec\\xe3\\x7a\\x9a\\x1d\\xfa\\x1a\\xe3\\x37\\x04\\x17\\xb0\\x04\\x21\\x7a\\x5b\\x8f\\xe9\\x90\\x3c\\x9a\\x3b\\x9f\\x4b\\x6d\\x5c\\x46\\xc0\\xed\\x0c\\x53\\x8c\\xec\\x22\\xf2\\xdf\\xcb\\x2a\\x28\\x0a\\x42\\xad\\xc4\\x89\\xcf\\x2e\\x06\\x29\\x12\\xbe\\x99\\x28\\xf0\\xc0\\x60\\x89\\x1e\\x43\\x20\\x91\\x17\\x75\\x26\\xf1\\xb3\\xa9\\x68\\x06\\x9d\\x4a\\x57\\xad\\xe8\\x28\\x55\\x98\\x10\\xae\\x03\\x60\\x68\\x1f\\xf9\\x93\\x29\\xfa\\x0f\\x59\\xe7\\xe5\\x9c\\xdf\\x87\\xf9\\xf3\\x3c\\x40\\xe9\\x70\\x31\\xb9\\xf8\\x1d\\x48\\xfc\\x12\\x28\\x6e\\xfb\\xb3\\xd4\\xe5\\xa6\\x2e\\xf5\\x7b\\xc0\\xd5\\x2d\\x53\\x3b\\x99\\xc5\\x10\\x6a\\xa7\\x9c\\xfe\\x17\\x93\\xa9\\x08\\x51\\x85\\x96\\xc3\\x83\\x48\\x3e\\xc4\\x9f\\xf9\\x8e\\xc5\\x57\\xbf\\xff\\x74\\x90\\xa4\\x6d\\xaf\\x67\\x14\\xf2\\xc2\\xc3\\x2f\\x57\\x93\\x2c\\xa0\\xd7\\x30\\xf0\\x3f\\x38\\x1d\\x69\\xde\\xcd\\xbd\\x9a\\x7a\\x6d\\x4a\\xfc\\x62\\x40\\x65\\x43\\xc8\\xeb\\xe9\\x0a\\xc7\\x6e\\x6a\\xfa\\xbd\\xb8\\x24\\x92\\xa2\\x06\\xa3\\x69\\xe0\\x42\\x86\\xd3\\x13\\xe1\\x11\\x07\\xd8\\xcd\\x9b\\x4b\\xf6\\x8f\\x81\\x5d\\xba\\x4e\\x99\\x0b\\x04\\x9d\\x79\\x21\\x6d\\x36\\x53\\x13\\x83\\x42\\xcd\\x11\\x8b\\x13\\x0f\\x66\\xb0\\x06\\xf3\\xd8\\x9a\\xc3\\xcf\\x89\\x83\\x70\\x48\\xb0\\xf8\\xa6\\x2d\\x94\\x05\\x1d\\x2e\\xab\\x89\\x1a\\xc5\\xf4\\x78\\x88\\x87\\x9d\\x88\\xe5\\x46\\x67\\x6d\\x1d\\xae\\xeb\\x4d\\x17\\x5d\\x3f\\x04\\xa9\\xd7\\x4f\\xfc\\xdd\\x47\\x74\\x60\\x16\\xf8\\x4a\\xd0\\xd1\\x12\\xaf\\xb5\\x9a\\xd1\\x21\\x87\\xe9\\x4f\\x22\\x53\\x5d\\x77\\xe9\\xe0\\x51\\x6f\\xa4\\x21\\x85\\xc1\\x97\\xba\\x77\\x4b\\x39\\x32\\x27\\xf7\\x41\\xfe\\x68\\x27\\x3f\\x42\\x3f\\xb0\\xe0\\xe0\\x47\\x4b\\xfd\\xaf\\x2d\\xa7\\x8a\\xeb\\x1c\\xd5\\xb9\\x8c\\x1d\\xc0\\x83\\x21\\x24\\x74\\x2a\\x47\\x54\\x12\\x5f\\xc7\\x8b\\x19\\xc5\\x59\\xa5\\xb3\\xf7\\x71\\x1e\\x06\\x8c\\x44\\x0c\\xc0\\x46\\x9a\\x1c\\xfa\\x5c\\x18\\x64\\xbe\\x18\\x73\\x5a\\xa8\\xbc\\xd4\\x06\\xc4\\x37\\x1e\\xb8\\x57\\x75\\x4d\\x90\\x8b\\xf3\\x79\\xb9\\x1f\\xcb\\x24\\xe3\\x43\\x96\\xbf\\x87\\xc1\\x9a\\x04\\xa8\\x3d\\x59\\xda\\xe7\\x1f\\x3f\\x38\\x39\\x82\\x9d\\x06\\x22\\x13\\x01\\xef\\x59\\x56\\x96\\xe7\\x19\\xd5\\x6b\\x79\\x52\\x0a\\x0e\\x50\\x99\\x29\\x83\\x3b\\x1d\\x80\\x4a\\x6a\\x0e\\xa4\\x04\\x00\\xbb\\x45\\x02\\x8c\\xe5\\xd3\\x69\\x33\\x88\\x3e\\x17\\x40\\x6e\\x27\\xa8\\x10\\x90\\x57\\xb1\\xa1\\xa5\\xe5\\xda\\x21\\x0a\\x69\\x21\\x99\\x4f\\x46\\x7a\\xb4\\x1a\\xa8\\xf0\\xd8\\x87\\x75\\xa8\\xa8\\xeb\\xb4\\xec\\x77\\xd7\\xc8\\x0e\\x45\\xa7\\xbb\\x42\\x2a\\x4c\\x00\\xc9\\x05\\x83\\x91\\x14\\x65\\xe6\\xb5\\xf0\\xfd\\xcd\\xea\\xb7\\x28\\x71\\xca\\x54\\x2e\\x1d\\x1a\\x2c\\xa9\\x4d\\xf4\\xed\\x2e\\xab\\xf9\\x0d\\xed\\x00\\x45\\x29\\x03\\x24\\xa9\\xff\\xfb\\x30\\x14\\x54\\x70\\x20\\x9f\\x38\\x26\\x58\\x09\\x89\\x34\\x91\\x99\\xdc\\x5a\\xb8\\xd4\\xa2\\x5d\\xf7\\xa0\\x52\\x9c\\xf9\\x14\\x71\\xe3\\x08\\x42\\xab\\xfa\\xcd\\x44\\xab\\x78\\x1d\\xfc\\x13\\x95\"},\n{{0xc2,0x4c,0xbf,0x40,0x1a,0xd0,0x3b,0xd8,0x8d,0xcc,0x7b,0x51,0x9e,0xcf,0x62,0x4d,0xb2,0x22,0x3e,0x99,0x02,0x89,0x30,0x9e,0x1e,0x9f,0x1f,0x8f,0x61,0x27,0xc6,0xc9,},{0xa7,0x46,0x66,0xf3,0x57,0x20,0x9f,0x71,0x89,0x90,0x37,0x88,0xf1,0x07,0x56,0x3e,0x50,0xc0,0x51,0xc3,0xd4,0x0c,0x3f,0x3d,0xad,0x10,0xd3,0xc3,0xcf,0xf1,0xe6,0x78,},{0x58,0x1e,0x6c,0x85,0xae,0xc6,0x23,0xb6,0x2b,0x3d,0x4c,0x9b,0xc9,0xc7,0x77,0x59,0xd5,0x49,0x27,0x22,0xe2,0x52,0xd4,0x4c,0x1f,0x8a,0xda,0x9d,0xa2,0xec,0xc6,0x7c,0x17,0x08,0x32,0x73,0xaa,0x09,0x1b,0xba,0xc0,0x46,0xae,0x63,0xc7,0x88,0x93,0x15,0x2e,0x14,0xd9,0x26,0xc4,0x1a,0xe3,0x5f,0x0e,0x6e,0x39,0x59,0x49,0x6b,0x13,0x06,},\"\\xe7\\xfa\\x35\\x9e\\x6a\\x09\\xb2\\xc5\\x4a\\xab\\xed\\x3b\\xba\\xbf\\xb7\\x28\\x53\\xa8\\x05\\xaa\\xbc\\xf4\\xd1\\x8d\\xda\\xd3\\x9f\\x03\\xf3\\x46\\x01\\xe5\\x5b\\x6c\\xe2\\x63\\xc9\\xa3\\xca\\x6a\\x3e\\x5f\\x14\\x25\\xc8\\x21\\x92\\x8c\\x61\\xe7\\xf7\\x50\\x91\\x9b\\xd3\\xaf\\x32\\xbc\\xb7\\xb9\\x4d\\x45\\x9a\\x7a\\x9a\\x35\\xf6\\x1c\\x94\\x17\\x92\\xe2\\xcc\\x2e\\x43\\x27\\xbe\\xb3\\x44\\xa8\\x41\\xa0\\x7f\\x32\\x06\\x8a\\xf1\\x02\\xb3\\xde\\x61\\xea\\xb6\\x4e\\xf6\\xd5\\xe6\\x90\\x62\\xe3\\x93\\xab\\x5e\\xdf\\x6a\\xc9\\xef\\x7b\\x38\\xd4\\x9a\\x01\\xbe\\xf0\\x00\\x3f\\x42\\x11\\x74\\xc8\\x88\\x59\\x75\\xc0\\x18\\x32\\x89\\x9c\\x31\\x35\\xe7\\xa8\\x6e\\x5b\\x55\\xd9\\xb1\\x32\\x8b\\xb4\\x28\\x9b\\x5c\\x40\\x20\\x0f\\x49\\xe5\\x52\\x3b\\x3c\\x46\\x1d\\xc7\\x17\\x5e\\x14\\x65\\x02\\x22\\x97\\xc3\\xd3\\x80\\xf2\\xb1\\xfe\\xf3\\x9c\\xb8\\x2c\\x00\\xfd\\x16\\x0f\\x44\\x7e\\xb5\\x12\\x63\\xfa\\x25\\xb4\\xdf\\x0f\\xca\\x41\\xec\\x0c\\xa2\\xec\\xe7\\x47\\x22\\x01\\xaf\\x86\\xc3\\x03\\x8c\\x49\\xdf\\x09\\x9a\\x9a\\xef\\xa1\\xf8\\x8d\\x0e\\xdf\\xd1\\x7c\\x0b\\x3c\\x86\\x04\\x66\\x29\\xc0\\x94\\x54\\x05\\x4a\\xa0\\xfb\\x2c\\x69\\x49\\xdd\\x9c\\x13\\x01\\x85\\xdf\\xa5\\xd9\\x03\\x89\\x1e\\x08\\x74\\x2c\\xd0\\x42\\x94\\x03\\xf5\\x7f\\x40\\x52\\x15\\x8b\\x2f\\x40\\x1d\\xa4\\x75\\x68\\x54\\xe4\\xaa\\xf0\\x24\\x22\\x1e\\x37\\x51\\x3c\\xf6\\x77\\xee\\x6a\\x0b\\x15\\x9f\\x50\\x1d\\x37\\x7e\\xa3\\x2e\\xb7\\x1e\\x77\\x80\\x04\\xf2\\x72\\x03\\xcd\\x6d\\x55\\x3f\\xda\\x5d\\x65\\xe1\\x87\\x94\\x77\\x04\\x6f\\x3e\\xa3\\xd1\\xd7\\x5c\\x9d\\x0d\\x30\\x31\\x14\\x56\\x70\\x9c\\xc7\\xf6\\xab\\x68\\xc7\\xb0\\xd5\\x2b\\xe4\\x0f\\x04\\xcf\\x65\\x56\\x55\\x32\\x32\\x85\\x31\\x83\\x29\\xe8\\x4c\\x6a\\x5b\\x07\\xe0\\xce\\xed\\x5f\\x78\\xf7\\xf1\\xfa\\x62\\x29\\xbe\\xf8\\x78\\x79\\x3c\\x58\\x47\\x28\\xab\\xf4\\x51\\x0b\\x7f\\x27\\x79\\x4b\\x59\\x42\\x91\\x62\\x54\\xc5\\x89\\xa0\\x9c\\x8e\\x91\\x1f\\x0b\\x95\\x42\\x11\\xa6\\x36\\x99\\xa7\\x52\\x14\\x7f\\x2a\\x4e\\x1a\\x18\\x95\\x66\\x44\\xbe\\xa2\\xca\\x26\\x92\\xba\\x18\\x22\\x80\\xe0\\x4a\\x72\\xdd\\x89\\xb0\\xd1\\x26\\x85\\x00\\x93\\x8f\\x34\\x7b\\xf4\\x3f\\x2a\\x24\\x2e\\xe9\\xb9\\xa6\\xba\\xac\\x9b\\x35\\x0d\\x65\\x6f\\xb1\\x9e\\xc8\\x34\\xab\\xe3\\x16\\x44\\x40\\xf2\\xd2\\x07\\x1f\\xe5\\xe3\\x2c\\x8e\\x4c\\xf9\\x05\\x53\\x9b\\x83\\x9c\\xee\\xca\\x26\\x20\\xfc\\xb2\\xa0\\x87\\xf7\\x80\\xe6\\xc7\\xf5\\xe0\\x5c\\x50\\x68\\x88\\x25\\x0e\\xa7\\xc8\\x56\\xfb\\x30\\x98\\x32\\x00\\xaa\\x8f\\x78\\xfc\\x17\\x71\\x05\\x4a\\xda\\x0f\\x3f\\xac\\x38\\xae\\x2f\\x33\\xdc\\x4a\\x4f\\x85\\x1b\\x76\\xed\\x74\\x0c\\x09\\x62\\xa7\\x6a\\x4d\\xe4\\x40\\x80\\xdc\\x62\\x0a\\x44\\xad\\x8f\\x23\\xd3\\x46\\x2b\\x79\\x2a\\xb3\\xaf\\xb1\\x9c\\xb8\\xa9\\xf4\\xd9\\xe5\\x9a\\xd7\\x65\\xa7\\x71\\x89\\x9d\\xa8\\xcb\\xec\\x89\\xe5\\x07\\x7e\\x85\\xc0\\xc9\\x31\\x26\\x37\\x6c\\x94\\x1b\\xef\\x1f\\x8b\\xb9\\x92\\xd3\\xa3\\x5f\\x27\\x07\\x25\\x84\\x6f\\xb2\\x52\\xf8\\xb5\\xfb\\xb7\\x56\\x7e\\x40\\x6a\\x1b\\x53\\xb6\\x19\\x76\\x9e\\x63\\x2b\\x2b\\x40\\x87\\xcd\\x4c\\x27\\x6e\\x5d\\x58\\xff\\x2b\\x56\\xe8\\x9e\\xde\\xc4\\x8c\\xe5\\x3a\\x52\\xe3\\x29\\xca\\x15\\x59\\x53\\x8f\\x10\\x90\\x2c\\x01\\xa8\\x5f\\xbb\\x3c\\xd7\\x2e\\x6b\\x82\\x91\\xe5\\xfe\\x63\\x9b\\xee\\x9d\\x47\\xd3\\x4c\\x24\\x9a\\x7a\\x07\\xd7\\xa1\\x42\\x7a\\x01\\xf6\\x3d\\x60\\x98\\x4c\\x45\\x0b\\xef\\x81\\x9b\\x19\\xf6\\x5e\\x26\\x14\\xfd\\x9c\\x2f\\xae\\x7b\\x92\\x31\\xa0\\xbc\\xa4\\x14\\xed\\x94\\xa5\\xee\\x7e\\x66\\x32\\x7d\\x2a\\x99\\xc8\\x48\\x78\\xb7\\xbe\\xe0\\x87\\xe8\\x91\\xf2\\x53\\xfa\\x1f\\xec\\xe3\\x13\\x64\\x8c\\x06\\xc4\\x5d\\xb2\\xd9\\xf3\\xbc\\x85\\x99\\x93\\x7b\\x75\\x2d\\x38\\xce\\x50\\x63\\xd0\\xed\\x9a\\x43\\xec\\x9d\\x40\\x15\\x89\\x3d\\x43\\xbf\\x5b\\x2d\\x1c\\x60\\x47\\x85\\x10\\x46\\x89\\x68\\xb7\\x96\\xf0\\x15\\x37\\x89\\x59\\x54\\x41\\x72\\x2a\"},\n{{0x8b,0x3d,0xcd,0xe4,0xab,0xbf,0x4e,0x62,0x11,0xc4,0xa5,0x1c,0x4b,0x02,0x68,0x00,0xa8,0xa2,0xa0,0x61,0xcb,0x38,0xa2,0xec,0xc7,0xc9,0xcf,0x11,0x3f,0x92,0x70,0xbf,},{0x51,0x45,0x35,0x58,0x0f,0x0d,0xe3,0x59,0xbb,0x0d,0x41,0xf2,0xef,0xdd,0xaa,0x04,0xc2,0xec,0x95,0x01,0x19,0xf3,0x16,0x34,0xb2,0xc1,0xa3,0x2f,0x19,0x5f,0x69,0x68,},{0x4f,0x3d,0x4d,0x22,0x85,0x03,0x01,0x7e,0x74,0xa6,0xbb,0x58,0xaa,0xfa,0xe3,0x5c,0x3f,0x37,0xbd,0xee,0x4f,0xf6,0xbe,0x2e,0x62,0x40,0xb5,0x08,0x2f,0xed,0xdb,0x22,0x27,0x35,0xe1,0x2f,0x31,0xe0,0x56,0xfa,0x68,0x54,0x47,0xe5,0x38,0x48,0x03,0x00,0x7e,0xa7,0x91,0x0e,0x60,0x5c,0x1b,0x78,0x11,0x8c,0xd5,0xac,0xc5,0x87,0xa6,0x06,},\"\\x48\\x14\\x25\\x02\\x7d\\xa6\\x72\\xb6\\xf2\\x6c\\x91\\xb8\\x0e\\x55\\x58\\x2c\\xae\\xf4\\x7b\\xb1\\x5a\\x2d\\xe8\\xfc\\xa8\\x52\\x22\\x17\\x85\\x18\\x0b\\x20\\xa7\\xfd\\x6d\\x49\\x07\\xb5\\x88\\x1c\\xc1\\xd6\\xe3\\x9a\\xb9\\x61\\x2c\\xc7\\x4d\\x69\\x77\\xe9\\x14\\x1f\\x70\\x87\\xbb\\x27\\xab\\x30\\x84\\xa2\\x62\\x85\\x58\\x6f\\x84\\x11\\xdb\\x1f\\x50\\x3a\\xdf\\x52\\xdc\\xb2\\x5a\\xb8\\xff\\xfd\\x2e\\xc1\\x50\\x4c\\x17\\x77\\xb9\\xd6\\xdd\\x4a\\x29\\xe2\\x01\\x9e\\x5c\\xba\\xe1\\xb7\\xeb\\x26\\xf9\\x5b\\xbe\\x07\\xd9\\x0c\\x2f\\x6f\\xb0\\x88\\x4a\\x59\\xa8\\xd5\\x8d\\xde\\x51\\x16\\xed\\xc3\\xbc\\x34\\x9d\\x37\\xc1\\x60\\xb2\\x7b\\xef\\xbe\\x5a\\x5c\\x18\\x1c\\xe7\\x25\\x63\\x92\\x35\\x4d\\x22\\x1b\\x58\\xc4\\x7e\\xb0\\xbb\\x10\\x92\\x9e\\x74\\x21\\x79\\x5f\\x4b\\x7a\\x7c\\x27\\x5e\\xdd\\x08\\xc0\\x88\\x56\\x87\\x72\\xe9\\x93\\x21\\x8d\\xd6\\xf3\\xc2\\xcb\\x4a\\xc6\\x57\\xa0\\xa3\\xf9\\x1f\\x31\\x26\\xb9\\x91\\xad\\xf6\\xcb\\xe7\\xd1\\xb1\\x9b\\x8c\\xd8\\x3b\\xe3\\x60\\x2e\\xd1\\x8f\\x03\\x96\\x33\\xfb\\xd2\\x38\\x7b\\xda\\x69\\xe2\\xcf\\x03\\x87\\xd8\\x64\\x4d\\x97\\xb3\\x03\\xfb\\x00\\x63\\x9a\\xee\\xe7\\xae\\x46\\x3f\\x6f\\xe1\\xa2\\xc4\\xb8\\x9a\\xeb\\xa3\\xe9\\x09\\x4c\\x11\\xfc\\x29\\x11\\x4b\\x20\\x28\\x3f\\x28\\x7c\\x6d\\xd2\\x8c\\xb0\\x98\\xda\\xe8\\xda\\xbc\\x48\\xe8\\x5b\\xb5\\x9c\\x0d\\xc6\\xe7\\x8c\\x95\\x66\\x05\\xcb\\x7c\\xf0\\x69\\x42\\x35\\x3e\\x7a\\x22\\xe9\\x6f\\x80\\xa3\\x7a\\x66\\xf7\\x18\\xd9\\xe4\\xdb\\x8c\\x52\\x45\\x2a\\xa0\\xa3\\x57\\x72\\xe8\\x1b\\xa2\\xb3\\x03\\x20\\x5b\\x41\\x2d\\xd2\\xbf\\xc1\\x5c\\xe9\\xb4\\x36\\xf9\\x9f\\xbb\\x32\\x12\\x6b\\x63\\xce\\x9c\\xb4\\x31\\x99\\xf1\\x57\\xd8\\x17\\x51\\xa7\\xc4\\x93\\x7d\\x13\\xaf\\x4c\\x58\\x29\\x52\\xb5\\xd6\\x06\\xb5\\x55\\xb0\\x46\\xbf\\x1d\\xe0\\x6c\\xf3\\x9b\\x63\\xa8\\x02\\x87\\x37\\x18\\x03\\x60\\x9a\\x38\\x7e\\xe8\\x0f\\x3a\\x5d\\x88\\xb9\\xd6\\x21\\x96\\x50\\xed\\x17\\xd3\\xcc\\x18\\x3b\\x2c\\x70\\xd5\\xeb\\x94\\xe3\\xbc\\x52\\xae\\xa7\\xaa\\x7f\\x53\\xbe\\x0e\\x20\\xb8\\x97\\x2f\\x14\\x3d\\x8e\\x20\\x16\\x2e\\x80\\x3e\\xdb\\x4a\\xa8\\x3d\\x55\\x53\\xfd\\xd5\\x53\\x39\\x8b\\x0f\\xa1\\x76\\xb9\\x59\\xcb\\xa1\\x40\\xd6\\xe9\\x80\\xc9\\x25\\x1b\\x0f\\xa0\\xb6\\x5e\\x90\\x84\\x17\\xf8\\x2f\\x45\\x1f\\xf9\\xf2\\xde\\x6b\\x9c\\xa5\\xe3\\xb5\\xf4\\x1b\\xa4\\x0d\\x05\\xa5\\x4f\\x3d\\xab\\x48\\x86\\xaa\\xcc\\xa0\\x5c\\x9c\\x27\\x98\\x13\\x9a\\x4c\\xb3\\x3e\\x96\\xa9\\x14\\x94\\x74\\x99\\x10\\xa1\\x7c\\xe8\\xb3\\x92\\xfc\\x0f\\xc7\\x76\\x29\\x74\\xd7\\x9d\\x33\\xdb\\x92\\x4b\\xfe\\xf8\\x65\\x5a\\x72\\x37\\x76\\xff\\x87\\xf9\\x50\\xfd\\xc5\\x68\\xb1\\xe5\\x26\\x53\\x45\\x41\\xf5\\x72\\x72\\x3b\\x84\\x06\\x63\\xc1\\x91\\x88\\xc4\\x24\\xf7\\xc4\\x89\\x23\\x5a\\x42\\x4b\\x09\\xfe\\x25\\xc3\\x07\\x27\\xea\\x1c\\xb0\\x49\\x53\\xd7\\x06\\xd6\\x8b\\xfe\\x12\\x10\\x0e\\xf6\\xf6\\x4c\\x35\\xc6\\xb8\\xde\\x67\\xed\\xf0\\xe3\\xad\\x01\\x4a\\x40\\x0e\\x82\\x1e\\xa3\\x40\\x24\\x32\\x19\\x99\\x86\\x7b\\x43\\xc8\\x2c\\x45\\x01\\x84\\xb7\\x8f\\x74\\x25\\xce\\xbd\\x73\\x19\\xdc\\x6f\\x65\\xd3\\x60\\x66\\x5d\\xfb\\xe7\\xc3\\x66\\x74\\xda\\xc3\\xa5\\x4e\\x96\\xda\\x91\\x0c\\x02\\xd3\\x64\\x07\\x80\\xb2\\x2d\\x51\\x2c\\xa0\\xe3\\xca\\x35\\x87\\xb9\\x4e\\xa9\\xfc\\xd7\\xa3\\x1b\\x4a\\xf6\\x9f\\xd6\\x20\\x7c\\x68\\xfe\\xd2\\x5f\\x89\\x92\\x1c\\x1c\\xdc\\xde\\xfd\\x1c\\x09\\x02\\x04\\x49\\x2b\\xff\\x9b\\xbb\\x52\\xe0\\x88\\x85\\x82\\x9d\\x01\\x2b\\xc2\\xdf\\xb4\\xfe\\x8c\\x35\\xe5\\x9c\\xd1\\x3b\\xcb\\x8e\\xad\\x34\\x19\\x3c\\x40\\xb0\\x3e\\xe4\\xd8\\x25\\xee\\x13\\x22\\xff\\x4e\\xf0\\x71\\x27\\x95\\x74\\xcb\\xae\\xe7\\xc0\\x7f\\x14\\xbe\\x60\\x6b\\x9c\\xd0\\xe2\\x61\\x11\\x1e\\xf2\\x0d\\x96\\x81\\xd7\\x6c\\xf7\\x8c\\x89\\xa8\\xc3\\x97\\xd6\\xb8\\xdc\\x77\\x8f\\x49\\x84\\x16\\x6a\\xd5\\xdf\\x3a\\x81\\xaa\\xf2\\xe6\\xde\\x09\\xf7\\x00\\x19\\x5a\\xe2\\xc1\\xd4\\x60\\x96\\x47\"},\n{{0xd4,0xa7,0xa9,0x52,0x4d,0x30,0xa6,0x33,0x7c,0x0a,0x0b,0xe9,0x5c,0xa9,0x05,0x91,0xde,0x98,0x88,0x03,0x8e,0x3e,0x59,0xe1,0xb2,0x5a,0x41,0x81,0xef,0x94,0x66,0x29,},{0x9f,0xc3,0xeb,0xd1,0x39,0xcc,0x5b,0x7c,0x0e,0x05,0xaf,0x47,0xbf,0xf6,0x61,0x9b,0x81,0x28,0x15,0xbb,0x01,0xce,0xec,0x39,0x2a,0x3f,0xf0,0xae,0xc3,0x81,0x1d,0x2c,},{0xd1,0x57,0x88,0xbc,0xd8,0x8d,0x1d,0x81,0xb9,0xe6,0x1d,0x4f,0xe2,0x6e,0xa4,0x9e,0x66,0x81,0x9a,0x59,0xd2,0xae,0x48,0x32,0x32,0x1b,0x81,0x4d,0x50,0x62,0xfa,0xdb,0x87,0x80,0x7d,0xb6,0x85,0x2e,0x1d,0x82,0x95,0xe3,0x1a,0x29,0x1b,0x1e,0x78,0x5d,0x01,0xd8,0x34,0x89,0x5f,0x88,0xf4,0x00,0xdf,0x88,0x32,0xc1,0x60,0x7b,0x5b,0x0c,},\"\\x17\\x19\\x80\\xc0\\x3f\\xdf\\x7a\\x72\\x7b\\xd5\\xba\\xb3\\xba\\x09\\x45\\xe6\\xad\\x5f\\xaf\\x0a\\x7f\\x50\\x6a\\x56\\xd1\\xd0\\xed\\xd9\\xa3\\x06\\xb3\\x15\\x8d\\x84\\x32\\x66\\xd3\\x09\\x1f\\xc1\\xe4\\x22\\x81\\xdf\\x97\\x55\\x9a\\x22\\x01\\xf5\\xbd\\xdd\\xfe\\x68\\x3d\\x0e\\x10\\x28\\xd1\\xd9\\x5b\\x2f\\x31\\x3b\\x48\\x4c\\x39\\x2f\\xfd\\xb1\\xcd\\xf8\\x85\\x08\\xaf\\xde\\x3d\\x6f\\xd2\\xa1\\x28\\x88\\xba\\xce\\xde\\xb7\\x9f\\xf3\\xdb\\x40\\xc9\\xac\\x0e\\xc3\\xfb\\x90\\x1b\\x22\\x86\\x98\\xad\\xf8\\xd8\\x45\\xff\\x4f\\xce\\x10\\xde\\x55\\xd4\\x24\\x36\\xdc\\xe9\\x30\\x97\\x3a\\x34\\xbe\\x05\\xd1\\x40\\x1f\\x33\\x4d\\x4c\\xe8\\xe3\\xa7\\x93\\x79\\x9e\\xaf\\xdb\\x94\\xd0\\xf2\\xab\\x09\\x50\\xb0\\x79\\xe6\\x65\\x3e\\xeb\\x49\\x9f\\xc7\\x44\\x7c\\xcb\\xee\\xed\\x8d\\xbd\\x54\\x56\\x80\\x8c\\xd7\\xa3\\x8f\\x9a\\x15\\xa2\\xa9\\xc7\\x38\\xd6\\x13\\x34\\xca\\xb8\\xce\\xeb\\xbb\\xf4\\xa4\\x81\\x4d\\x94\\xc6\\x18\\x59\\x17\\x87\\x84\\x60\\x4e\\x0c\\x21\\x54\\x59\\x7e\\x72\\xcf\\x58\\x7c\\xd1\\xf5\\xda\\xfe\\x59\\x22\\x05\\x18\\x90\\xe7\\x6d\\x61\\x6d\\x8c\\xd5\\xb0\\x5d\\x64\\x78\\xd0\\x62\\x6e\\xa8\\x3c\\xe8\\x08\\xc4\\x61\\x43\\xe6\\xfb\\x06\\xb4\\x18\\x2d\\x22\\x8d\\xa8\\xf6\\xd4\\x13\\x9e\\xca\\x5b\\x8f\\x3b\\x1b\\x98\\xaf\\x68\\xc5\\x9b\\x4b\\x5a\\x53\\xc1\\x36\\xee\\x90\\x43\\x2a\\xca\\x2b\\xb9\\x15\\x52\\x9d\\x26\\x36\\x79\\x49\\x82\\x62\\x33\\xb4\\x3e\\x55\\x80\\x4b\\x55\\xfc\\x9f\\x21\\x5e\\xb0\\xb0\\xb7\\x92\\x91\\x46\\x5b\\xb3\\x4e\\xda\\xea\\xdf\\xfa\\xbf\\xe6\\xcf\\x41\\xbc\\x07\\xb5\\xdd\\x4d\\x01\\x42\\xf0\\x36\\x1f\\x05\\x8e\\xe1\\xb3\\xb9\\xfc\\xc1\\x96\\xeb\\x9b\\x35\\xb1\\x34\\xbe\\x3d\\x1d\\x23\\x20\\x04\\x48\\x9e\\x8f\\x69\\x93\\xf6\\x25\\xa6\\x30\\x15\\xbc\\xd3\\xf1\\xe8\\x75\\x88\\x32\\x48\\x58\\xcc\\xfb\\x77\\x0d\\xdd\\xd8\\x94\\xbf\\x29\\x7b\\xd7\\x63\\xef\\x58\\x28\\xe2\\x1f\\x5c\\x89\\xaa\\x98\\xcf\\xbc\\x1c\\x08\\x2d\\xd7\\xfb\\xaa\\x43\\x07\\xbd\\xa4\\x0b\\x4a\\x75\\x8c\\xa8\\xf3\\x9f\\x4e\\x4a\\xae\\xd3\\x09\\x04\\x12\\x68\\xdb\\xcf\\x0a\\xf3\\x2d\\xe0\\xd7\\xfa\\x90\\xa5\\x23\\x96\\x3b\\x78\\x0b\\x6a\\x93\\x2c\\xf8\\x94\\x99\\x02\\x5f\\x0e\\x0d\\x04\\x74\\xc7\\x43\\x48\\x94\\x75\\x10\\xe6\\xc5\\xec\\x7c\\x9e\\x05\\x06\\x6e\\xeb\\x4a\\x73\\x52\\x0c\\x3d\\x92\\x7c\\x39\\xac\\x26\\xad\\x75\\x96\\x32\\x5b\\x2c\\xc4\\x7c\\x5e\\x82\\xa7\\x75\\x45\\x5b\\x7a\\xf0\\x31\\x20\\xb1\\xcf\\xbf\\xd6\\xec\\x3f\\xc0\\xc3\\xbe\\x60\\x78\\xb0\\x0c\\xfd\\xf8\\x34\\x2a\\xe8\\xbf\\x14\\x71\\x59\\xf5\\x0e\\x9d\\x56\\x4e\\x2f\\x68\\x30\\x6d\\xae\\x3c\\xae\\xdd\\x10\\x19\\xf3\\x23\\xc4\\x78\\xa1\\xe1\\xf6\\x75\\x98\\xdd\\x83\\x4b\\xd1\\xd1\\xa8\\x73\\x3f\\xd7\\xfd\\xd8\\xa8\\x76\\x52\\x6c\\x53\\x15\\x18\\x93\\x6e\\xdb\\x72\\xd0\\x16\\x56\\xb3\\x44\\xc7\\xd6\\x5a\\xc1\\xce\\xe3\\x7c\\xe5\\x99\\x7b\\xa4\\x8d\\x3f\\x4d\\x06\\x4d\\x88\\x05\\x7e\\xfe\\x9a\\x48\\x2d\\x9e\\x00\\xab\\x5c\\xae\\xb5\\xac\\xa2\\xd6\\x60\\xe3\\x37\\xbd\\x15\\x48\\x73\\x65\\x69\\x79\\x56\\xa5\\xe4\\x7b\\x02\\xab\\xdc\\x30\\xd8\\xe3\\x53\\xfe\\xd4\\xe1\\xac\\x41\\xd2\\xbc\\x21\\x20\\x02\\x11\\x43\\x63\\x59\\x35\\xc6\\x20\\x18\\x6a\\x52\\x2b\\xde\\x54\\xbe\\x04\\x46\\xfb\\xd2\\xdc\\x88\\xb5\\x63\\x04\\xb3\\xa6\\x42\\x27\\xd0\\xac\\xd5\\xf8\\x5a\\x6b\\x67\\x87\\xa3\\xad\\xcf\\x2d\\x7c\\xfc\\x86\\xc6\\x34\\xb4\\xd7\\xab\\x43\\x15\\xb9\\x7d\\xe9\\xe6\\x66\\xcf\\xf3\\xff\\x1b\\x88\\xf3\\x29\\x5e\\x7b\\xab\\x9e\\x9f\\xd4\\x6f\\xaf\\xdd\\xb4\\xf5\\xfa\\xc5\\x1c\\xc0\\x17\\x01\\x29\\xc6\\x51\\xb4\\xef\\x4d\\x39\\x50\\xd6\\x94\\x2f\\xf0\\x20\\xd1\\x66\\x8a\\x52\\x8b\\xde\\x1d\\xa9\\x36\\xc0\\xec\\x1a\\xe0\\x9e\\x84\\xf8\\x20\\x58\\x61\\xff\\xf4\\x91\\x50\\x2a\\x87\\x2c\\x81\\x54\\xa9\\x6e\\x7e\\xa2\\x5e\\xda\\x95\\x5a\\x7f\\xd2\\xe4\\xb4\\xc7\\xa8\\xd2\\x73\\xf6\\x0b\\xc7\\x4f\\xab\\x7b\\x49\\x68\\xca\\x6f\\x75\\xda\\xea\\x50\\x40\\xf8\\x39\\xfd\\x56\\xc2\\xa9\\x80\"},\n{{0xd0,0x8f,0x4b,0xab,0xba,0x3b,0x53,0x65,0xfa,0xf7,0x38,0x79,0x5c,0x9d,0xa4,0x5d,0xb1,0x86,0x2c,0xb2,0x8b,0x93,0xeb,0x66,0x35,0xd1,0x32,0x0d,0xa0,0xf4,0xd9,0x37,},{0xef,0x31,0xb4,0x54,0xf7,0x34,0xe5,0x2b,0x34,0x38,0xee,0x2f,0x1c,0xbc,0x35,0x63,0x1b,0x19,0x69,0xde,0x54,0xac,0x98,0xfe,0x46,0x33,0xf2,0xf5,0x00,0xac,0x87,0x12,},{0xac,0xeb,0xe4,0xc8,0x6f,0xa9,0xfe,0x2c,0x1a,0x5c,0x57,0x6a,0xc0,0x50,0x1e,0x8a,0xb0,0xf6,0x40,0xfa,0x40,0x38,0x05,0x36,0xfc,0xf9,0x50,0x59,0xd5,0x3d,0x4a,0x35,0x55,0xd2,0x20,0xac,0x36,0x35,0x87,0x17,0x5e,0x4b,0xde,0x16,0x3c,0x0d,0x00,0x65,0x0a,0x12,0x96,0x3d,0x46,0x76,0x6c,0x99,0xbb,0x62,0xbf,0x75,0x73,0xe2,0x87,0x0c,},\"\\xa3\\x94\\xd8\\x85\\x4c\\xeb\\x5c\\x43\\xaf\\xee\\x1a\\x48\\x92\\x6b\\xbd\\x66\\x85\\xaa\\x8a\\xec\\xfd\\xcf\\x85\\x41\\x33\\x33\\x39\\x74\\xd6\\x24\\xbf\\x2f\\x1f\\x9c\\x30\\xf0\\x05\\xbb\\xf3\\x4c\\xee\\x3a\\xfe\\x2b\\x29\\x06\\x00\\xee\\xae\\x6f\\x1d\\xd1\\x2a\\x0c\\x34\\x6f\\xbb\\x2a\\xb9\\xc9\\x16\\xc5\\xd5\\xd8\\x0d\\xcd\\x87\\x88\\x78\\x75\\xa0\\xac\\x84\\x76\\x78\\x03\\x9f\\xdc\\xd3\\xa9\\x79\\x35\\x41\\xf5\\xd6\\x75\\x14\\x3a\\x6a\\xba\\xdc\\x3b\\x18\\xf0\\xfe\\xf5\\x10\\x8c\\x19\\xc2\\xdb\\xfb\\x59\\x71\\x0e\\xef\\x98\\x66\\xa4\\xf3\\xf2\\x97\\xa0\\x9e\\xe4\\x8c\\x68\\x03\\x00\\x7d\\xd6\\xba\\x8f\\xd4\\xbe\\x84\\x1c\\xfb\\x10\\xff\\x05\\x14\\xc3\\x0f\\xc4\\xdd\\x49\\xa3\\xcd\\x43\\xbb\\xd1\\x6e\\x46\\x04\\x43\\xa1\\x1a\\xfe\\x64\\x9e\\x90\\x1d\\x63\\xd8\\x9a\\xf5\\x98\\xaa\\x68\\x6b\\x2f\\x60\\x7e\\xc1\\x1f\\x35\\xe1\\x7a\\x79\\x8a\\x42\\x13\\xb7\\x5a\\x38\\x78\\x8d\\xa4\\xf2\\x7c\\xf2\\xb0\\x2c\\xad\\xdf\\xe6\\x1c\\x37\\x29\\xa8\\x7e\\xc6\\xe6\\xb0\\x98\\xf6\\x8e\\x7a\\xed\\x28\\xa8\\x00\\xc4\\x84\\xdf\\xa0\\x13\\x04\\x01\\x20\\x8f\\x98\\x6d\\x79\\x2f\\x54\\x63\\x5a\\xdd\\x28\\x48\\xe1\\x51\\x26\\x2a\\x36\\x5e\\xb2\\x1e\\x27\\x27\\x19\\x1e\\x1f\\x70\\x0f\\x3b\\xf5\\xc7\\x3b\\x0f\\xb4\\xc5\\x46\\xd0\\x04\\x8a\\x15\\x5c\\x18\\x71\\x79\\x20\\xfc\\x04\\x25\\xc8\\xc8\\xfa\\x8f\\x16\\x7c\\x43\\xa2\\x77\\xbb\\x36\\x6e\\x0a\\xd7\\x02\\xc8\\x9b\\xc5\\xaa\\x06\\xfd\\x47\\x09\\x43\\xbe\\x05\\xcb\\x9e\\x32\\x59\\x78\\x72\\x29\\x71\\x4c\\x30\\xa4\\xe8\\x7b\\x00\\xa6\\x33\\xaa\\xf7\\xbe\\x6b\\x58\\x75\\x01\\x0d\\x12\\xe1\\x07\\xc9\\xa5\\x26\\x1c\\xa5\\x62\\xd6\\x70\\x25\\xbe\\xa0\\xfe\\x22\\x34\\x63\\xed\\xb9\\x2e\\xa0\\x1c\\xca\\x92\\xc4\\x4f\\xf2\\x4d\\xa9\\xd8\\xa8\\x0a\\x64\\x21\\xf3\\xd4\\x13\\x5d\\x64\\x7d\\x1b\\xb0\\xfd\\x98\\x8c\\x46\\xc8\\xa1\\x70\\xce\\xb4\\xf3\\x3f\\xff\\x9c\\x0f\\xfb\\x6a\\xba\\xd1\\x09\\x2c\\x84\\xdf\\xad\\x82\\x90\\x89\\x8b\\x24\\x95\\x16\\xa2\\x92\\xe8\\xda\\x96\\xfd\\x51\\xa8\\x10\\x05\\xee\\xcf\\xde\\xbb\\x05\\x93\\x30\\x99\\x27\\x7d\\x07\\x3a\\x48\\x0c\\x3f\\x9e\\xb8\\xaa\\x11\\x96\\x8c\\x4d\\x8d\\xc0\\x78\\x7a\\x9a\\xec\\x3e\\x05\\x27\\xb7\\xfe\\x4c\\x06\\x35\\x41\\x13\\x35\\xa1\\x81\\x16\\x89\\xe8\\x8f\\x6d\\x5c\\xed\\x0d\\x40\\xd6\\xb4\\x8b\\x7f\\x2d\\x99\\x29\\x52\\x93\\x48\\x94\\x15\\x30\\x76\\xa8\\xd3\\x73\\x72\\xfa\\x00\\xd9\\xce\\xfc\\x5c\\xf8\\xc2\\x6a\\xdb\\x5a\\xcf\\x32\\x5a\\x01\\xcd\\x00\\x5a\\xb8\\xd4\\x74\\xa5\\x2d\\x67\\x11\\x40\\x78\\xc6\\x51\\x6a\\xef\\x80\\x4b\\xba\\x19\\xb8\\x87\\xa2\\x8e\\xd5\\xe4\\x6e\\xe9\\x99\\x5e\\x5a\\xd3\\xa8\\x2f\\xb9\\xcd\\x93\\x28\\x34\\x33\\x68\\x09\\x21\\x11\\x4b\\x4d\\x9a\\xf8\\xfc\\xb6\\xb2\\xb5\\x35\\x83\\x9c\\x36\\xde\\x8d\\xf1\\x2b\\x17\\xea\\x6d\\xdc\\xfc\\xb3\\x33\\x4f\\xf4\\x0e\\x6c\\xf0\\x4c\\xcd\\x5c\\xa6\\x40\\x3b\\xa0\\xb6\\x2b\\x4c\\xb7\\x1b\\xbd\\xe9\\x1d\\x8b\\xab\\xda\\x69\\x15\\x2c\\x9c\\x93\\xae\\x76\\x9b\\x55\\x29\\xc8\\xd5\\x2f\\xd9\\xa6\\x90\\x9a\\x15\\xe1\\xa0\\x60\\x1a\\x71\\x46\\x49\\xc9\\x6e\\xc9\\x96\\xc1\\x70\\x6d\\x10\\x21\\xb9\\x74\\x87\\x98\\x0d\\x7b\\x2c\\x2a\\x39\\xbb\\xb0\\xe4\\x70\\xd8\\xe4\\x6a\\xc4\\xaa\\x60\\x9a\\x09\\x22\\xc9\\xbd\\xc0\\x16\\x12\\xea\\xde\\xac\\xcd\\x5f\\xa5\\x23\\xb2\\xa8\\xd0\\xe6\\x2f\\xfe\\x56\\x28\\x16\\x47\\xd6\\x1f\\xff\\xbb\\xc8\\x40\\x53\\x57\\x45\\xd1\\x44\\x25\\x9c\\xc8\\x13\\x00\\xfe\\x99\\xdf\\xbf\\xfe\\xa6\\xb0\\xb9\\xbc\\xd2\\x84\\x73\\x98\\x2d\\x32\\xe9\\x3e\\xd4\\x66\\x34\\xa9\\x98\\x79\\x06\\xd6\\xf4\\x89\\x39\\xd8\\xdf\\xbf\\xb3\\x7d\\x33\\xb8\\x88\\xdb\\x60\\x8c\\xb2\\xff\\xe3\\x9a\\x8c\\xf6\\x7b\\x72\\x64\\x46\\x11\\xc7\\xd3\\x2a\\x4a\\x8d\\xf6\\x12\\x46\\x8c\\xd5\\xe5\\xd7\\x5f\\xbb\\xa7\\x9e\\x63\\x8a\\xa1\\xda\\xa2\\x8c\\x4e\\x0e\\xeb\\x9a\\x63\\x7f\\xf8\\xa0\\x8b\\x65\\xf7\\xa7\\x61\\x24\\x14\\xdf\\x76\\xbc\\x7b\\x0b\\x56\\xb5\\x53\\x7d\\x66\\x6f\\xac\\xfd\\xda\\xf6\\x5a\\xf1\"},\n{{0x8f,0x47,0x4f,0x88,0xcf,0x86,0x3c,0x48,0x54,0x56,0xa5,0xa2,0x15,0x52,0x81,0xff,0x27,0xb2,0x84,0x59,0xf6,0x3b,0xc4,0xf1,0xdb,0x00,0xe0,0x03,0x10,0x64,0xf6,0x49,},{0x43,0x14,0x4a,0x32,0x9d,0x75,0x1d,0x04,0xe0,0x71,0x69,0xb7,0x79,0xee,0x92,0x0d,0xd0,0x29,0xcb,0x44,0x5b,0xf3,0x76,0xba,0x3a,0x66,0x85,0x72,0x18,0x23,0x44,0xa3,},{0xf6,0x1f,0x78,0x07,0xc3,0x3e,0x19,0x6d,0x0f,0xe1,0x82,0xef,0xa4,0xd4,0x51,0x6a,0x98,0x15,0xdd,0xd4,0x49,0x53,0x8b,0xba,0xa6,0xb8,0x6b,0x69,0x01,0xa0,0x5f,0x5d,0xdd,0xa0,0x60,0x1e,0xc9,0x0f,0x39,0xf1,0x55,0x47,0x79,0xdb,0x7a,0x09,0xa6,0x05,0x72,0xef,0xfd,0x4d,0x12,0x8d,0x0d,0x3c,0x2d,0xd4,0xe8,0x83,0x57,0x4b,0xc6,0x0b,},\"\\x84\\x08\\x91\\xd9\\x48\\xec\\x19\\xc8\\xc7\\xf7\\xc9\\xd3\\xc4\\x77\\x53\\x62\\xa5\\x44\\xa0\\xec\\x97\\x45\\x7a\\xb5\\xd1\\x4e\\x12\\x5d\\xc5\\x4b\\x59\\xc8\\xdc\\x9a\\x63\\x5e\\x7b\\xad\\xb6\\xbe\\x73\\xc3\\xa5\\x8d\\xc0\\xe9\\x92\\x9f\\x2b\\x42\\x0d\\x83\\x56\\xd6\\x17\\xc3\\xd4\\x1b\\xfe\\x69\\xb4\\xe1\\x58\\xd4\\xbf\\x08\\xfb\\x17\\xe6\\x88\\xd3\\xcf\\x3c\\x94\\x8b\\x69\\xb3\\x5f\\x0b\\x6d\\xb6\\x62\\x72\\xa8\\xeb\\x2b\\xd4\\x10\\xd6\\x50\\x9f\\x6c\\x82\\x8b\\x6a\\x20\\xd6\\x58\\x6e\\xaf\\x85\\x76\\x01\\xed\\x9d\\x60\\x54\\x79\\x9c\\x25\\x32\\x0e\\xba\\x80\\x77\\xfe\\x1a\\xe2\\x26\\x71\\xb3\\x3a\\x15\\x88\\xff\\x2b\\x23\\x5d\\x3c\\x71\\xa2\\x7c\\xe5\\xc6\\xc6\\x6e\\x18\\x88\\x91\\x98\\xd1\\x16\\x93\\x36\\x76\\xbc\\x4f\\xb0\\x71\\x0d\\xb7\\xff\\x1a\\xc2\\xf2\\x0c\\xe3\\x69\\xbe\\xf5\\x6b\\x43\\xcd\\x1d\\x40\\x6c\\xef\\xda\\xcf\\x00\\xf1\\xf3\\x48\\xb8\\xca\\x7a\\xa6\\x14\\xdb\\x11\\xa3\\xa6\\x40\\xfd\\xb5\\x93\\x89\\xd1\\xa6\\xa3\\x94\\x75\\x5c\\x13\\x3f\\x1b\\x01\\x9c\\x83\\x08\\xca\\x5a\\x95\\x1e\\x73\\xb8\\x10\\xa1\\x80\\xf6\\xff\\x25\\xb2\\x9d\\xbb\\xcc\\xef\\x4c\\x13\\xa9\\x75\\x03\\x39\\x39\\x07\\xa2\\xdb\\xa0\\x96\\xa8\\xce\\x5c\\x86\\xc0\\xee\\x6f\\x97\\xc1\\x44\\x1b\\x8d\\x63\\x31\\xcb\\xa5\\x3b\\x19\\x60\\x6b\\x42\\x1a\\xf5\\x2f\\x65\\xf9\\xc6\\x63\\xe6\\x3d\\x39\\x82\\x71\\x8f\\x94\\x8c\\x6b\\xae\\x96\\x1b\\x8e\\x4b\\xf8\\xcd\\x9e\\x31\\xcd\\x09\\x92\\x8e\\x4e\\x80\\x61\\x65\\x97\\xcc\\xfa\\xdc\\xb8\\xa6\\x14\\x15\\x49\\x33\\xbc\\x37\\x58\\x9c\\x85\\xc7\\x76\\xe3\\x4e\\x5a\\x90\\x66\\x0f\\x59\\xa6\\x5b\\x5e\\x93\\xad\\x43\\x88\\x42\\xf9\\x82\\xd0\\x2b\\x04\\x1e\\x6d\\xbd\\xdf\\x17\\x10\\x99\\xf8\\xdb\\x70\\x99\\x57\\x31\\xa0\\xdb\\x8c\\x46\\x25\\xc9\\xbc\\xa7\\x10\\x80\\x59\\x61\\xfb\\x17\\x6d\\xae\\x81\\x97\\x68\\xfc\\xad\\x7f\\xf9\\xbf\\xce\\x36\\x40\\x3c\\xa7\\xf7\\x83\\xe7\\x61\\x37\\x26\\xd7\\xdc\\x59\\xf2\\x4e\\x24\\x7c\\xf1\\x50\\x68\\xff\\x3b\\x19\\xc7\\x25\\xfa\\xd6\\x5e\\xa8\\xe8\\xa7\\xf7\\x22\\xd5\\x28\\xc9\\x5f\\xce\\xf1\\xc0\\xcc\\x79\\xd1\\x8e\\xf0\\x7c\\xee\\x8b\\x01\\x1e\\xea\\xbd\\x99\\x21\\x63\\x4d\\x76\\xa6\\x1a\\x8a\\x3c\\x89\\x31\\xb8\\x27\\xe8\\x18\\x98\\x81\\xf8\\x1f\\x7a\\x17\\x5f\\x21\\xfb\\x03\\x78\\xb8\\x18\\x8e\\x58\\xbd\\xb2\\x01\\x7b\\xef\\x39\\x0f\\x18\\x00\\xd9\\xd7\\x4f\\x26\\x3a\\x81\\xdf\\x8e\\x67\\x52\\x2d\\x09\\x2e\\x77\\x5d\\x01\\xe0\\x04\\xe7\\xf8\\xd8\\x28\\x1a\\xe2\\xc2\\xfd\\xf8\\xc3\\xa4\\x45\\xf9\\xef\\xf7\\xfd\\xf1\\x3f\\x26\\x1a\\x77\\x3d\\xdf\\x2d\\xd9\\xcc\\x6b\\xa5\\x58\\x5d\\x99\\x0c\\x99\\x5e\\x6e\\xb8\\x9d\\xff\\xd9\\xff\\x0a\\x9d\\xbb\\x76\\xce\\x5e\\x10\\xdd\\x02\\x72\\xd5\\x00\\x14\\x97\\x88\\x13\\x66\\xf5\\xd6\\x36\\xa9\\xcc\\xea\\xa2\\x83\\x22\\x8d\\x3a\\xc6\\x14\\xdb\\x21\\x7a\\xb8\\x91\\xd6\\x68\\x9d\\xbe\\xb9\\x50\\xe1\\x20\\x0c\\x3d\\xe5\\x3b\\xc5\\xda\\x07\\xf1\\xd3\\x63\\xda\\xe9\\xbe\\x6e\\xc3\\x6e\\xda\\x6e\\x68\\x7d\\x26\\x29\\x0f\\x7a\\xbc\\xa2\\x68\\xa7\\xfa\\x03\\xd9\\x31\\x88\\x64\\xed\\xa9\\xa1\\x1e\\x3b\\x26\\x14\\x06\\x05\\x92\\x0a\\xc1\\x3a\\xde\\xc1\\xb5\\x54\\x8c\\x9a\\x7a\\x32\\x15\\xa5\\x87\\x6b\\x7e\\x94\\x1a\\xfa\\x1c\\xb5\\xd7\\xf7\\xf0\\xc1\\x16\\x30\\xcd\\x42\\x9f\\x3b\\x2b\\x37\\xdc\\x76\\xc6\\xcb\\xea\\x4f\\x3b\\x72\\x6a\\xa8\\xa5\\xf8\\xb9\\xf7\\x05\\xb0\\x5d\\x7e\\x94\\x51\\x95\\x6f\\x8a\\xf1\\x3c\\xe0\\xa8\\x59\\x55\\xc7\\x13\\x5d\\x64\\xad\\xe5\\x49\\x6e\\xa5\\x42\\xe7\\x0f\\x8d\\xa5\\xb5\\x73\\xaa\\xf1\\x37\\x08\\x5d\\xc9\\x6c\\x69\\x27\\x09\\x96\\x95\\x67\\x26\\x68\\xb3\\xc7\\xc6\\xf9\\x3c\\x97\\x7a\\x4e\\x8e\\x9e\\x77\\x02\\x95\\xf2\\x0d\\x52\\xdf\\xf1\\x87\\xf8\\xdb\\xb2\\x5e\\xe7\\xe7\\x74\\x02\\x4e\\xb9\\xbe\\x08\\x12\\x1e\\xd7\\x4b\\x6d\\x54\\x62\\xf4\\xbb\\x7d\\xc2\\x00\\x38\\x74\\xca\\xa3\\x1b\\xb7\\x59\\x5c\\xd9\\x3a\\x99\\xeb\\xe1\\xef\\xf9\\x28\\xbb\\x5f\\xcb\\x9e\\x9c\\x89\\xdd\\x31\\xd4\\x87\\xfc\\x0e\\x20\\xbb\\xe1\\x50\"},\n{{0xe4,0x2b,0x30,0xd4,0x9c,0x43,0xc4,0xfa,0xd8,0x3d,0xd5,0x1f,0xdc,0x2a,0x4a,0xc5,0x90,0x13,0x27,0xad,0xd8,0x00,0xb6,0x69,0x72,0xc8,0xc7,0x0b,0xde,0x18,0x0a,0xdc,},{0xf7,0x34,0xaa,0xfa,0xa4,0xdb,0xaf,0x31,0x5c,0x25,0x8c,0xca,0x8b,0xbc,0x1d,0x4f,0x34,0xe8,0x36,0x01,0x10,0x98,0x74,0x22,0x2a,0xa0,0x55,0x89,0xf3,0xa6,0x63,0x5f,},{0xff,0x8e,0x07,0x6e,0x34,0x3c,0x8b,0x73,0xaa,0x45,0x3b,0xfe,0xe9,0xb2,0xba,0xb6,0xd5,0xc2,0xf7,0x4c,0x35,0xe1,0xba,0xd1,0xe5,0x2a,0xe7,0x77,0xd6,0x9f,0x79,0x76,0x40,0x83,0xf9,0x94,0x36,0x8a,0x1a,0xc8,0x51,0xa6,0x41,0xcd,0x24,0x70,0x08,0xa3,0x4f,0x3b,0x60,0x89,0x62,0xf4,0xdd,0x51,0x09,0xac,0x71,0xcc,0xe9,0x78,0xec,0x02,},\"\\x0d\\x49\\x70\\x51\\x86\\x1e\\x22\\xd8\\xa9\\xc6\\x0e\\x5f\\x7d\\xe6\\xc8\\x95\\xcb\\xa3\\x35\\xb2\\xe8\\x2e\\x60\\x21\\x18\\xad\\x83\\x42\\xb4\\xd4\\xed\\xaa\\x80\\xf9\\x5e\\xfb\\xb5\\x9c\\xfd\\xa1\\xfc\\xc0\\x29\\x17\\x25\\x70\\x0e\\x8a\\x81\\xbb\\x12\\xa0\\xb8\\x62\\x3b\\x1f\\xe2\\x89\\x1b\\x8d\\x98\\xf7\\xa8\\x4c\\x59\\xfd\\x92\\xf8\\xa7\\xad\\xfc\\x06\\x50\\x42\\xf7\\xf4\\xfd\\x7e\\x1a\\x79\\xf5\\x5a\\x1d\\x4d\\x5e\\x54\\xe0\\x4e\\x67\\x2f\\x1c\\x9e\\x4c\\x4c\\xd8\\xd0\\x00\\x3f\\x3c\\xd5\\x4b\\x76\\xe2\\x16\\x3d\\xd7\\x37\\xac\\xb2\\xde\\x5c\\x26\\x3a\\xc1\\x02\\xa4\\x8f\\x69\\x6b\\x60\\xca\\xf9\\xbe\\x39\\xc6\\x65\\xcc\\xe1\\xe0\\xf3\\xd4\\x98\\x55\\x3f\\x57\\x90\\x61\\x88\\x9a\\x5e\\xc5\\x60\\x3e\\x4d\\x14\\x1c\\xfd\\xed\\xe8\\xe7\\x31\\x75\\x72\\xcf\\xe7\\x6a\\x0f\\x48\\xe4\\xae\\x06\\x06\\x2c\\x91\\x57\\xb5\\xea\\xac\\x34\\x68\\x93\\x81\\x92\\xdb\\x4b\\x16\\x10\\x5c\\x73\\x64\\xa9\\x44\\x32\\xb2\\x15\\xa7\\x17\\x97\\xfe\\xe1\\x4c\\x3c\\x9c\\xe2\\xf7\\x46\\xed\\x79\\x03\\x02\\xfc\\x41\\xdc\\x49\\x2d\\x37\\xd9\\xef\\x02\\x4a\\xb5\\x1d\\xa3\\xbd\\xaf\\x0f\\x81\\xd9\\xa9\\x30\\xaa\\x0e\\x02\\x5c\\x04\\xfd\\x71\\x02\\x6b\\x6a\\xfe\\xb7\\xed\\x01\\xa9\\x1a\\x1e\\xfd\\x6c\\x39\\xf5\\xe4\\x47\\xc6\\x6d\\xd3\\x8a\\x76\\x56\\xc6\\x13\\xd0\\x21\\x26\\xf3\\x58\\x5d\\xfa\\xa0\\x2d\\xf9\\x30\\x25\\x3f\\x83\\xbd\\x42\\x19\\x64\\x63\\xeb\\xc5\\x0f\\x8c\\xfc\\x94\\x9e\\xd3\\x50\\x39\\x2e\\x61\\xce\\xec\\x13\\x09\\xda\\x15\\xa4\\x32\\xf8\\x0d\\xfe\\x94\\x8e\\x26\\x1c\\xe6\\xd8\\x42\\x1c\\x54\\x59\\xcd\\x21\\xf3\\xff\\xa2\\xed\\xb5\\x00\\x98\\x2b\\x2a\\xbf\\xa5\\x2e\\x82\\x43\\x7c\\xa2\\x30\\xf6\\x09\\x11\\x63\\x20\\xd9\\x89\\x3e\\xb8\\x2a\\x14\\xdf\\x72\\xb7\\x73\\x66\\x67\\x51\\x6f\\xc0\\x12\\xb2\\x8a\\x03\\xc9\\xdd\\x88\\xea\\x43\\x08\\xd8\\xce\\xea\\x44\\xcc\\x60\\x44\\x54\\xcd\\xfa\\x2c\\x79\\x76\\x15\\xbc\\x0a\\x6b\\x3e\\x00\\x89\\xaf\\x0a\\x81\\xbe\\x54\\xd1\\xb1\\x10\\xa1\\x3a\\xb9\\x11\\xb4\\x52\\xc3\\x42\\x80\\x0c\\xee\\x2a\\xd2\\x39\\xa2\\xb1\\x88\\xa7\\xfa\\x87\\x5e\\x94\\x1d\\xaa\\xeb\\xcf\\xc8\\x8b\\x70\\xae\\x4b\\x1c\\x57\\x5c\\xdb\\x6e\\x6d\\x89\\x44\\x81\\x36\\xf6\\x0e\\xe8\\x1c\\x70\\x3c\\x47\\x82\\x2d\\x2c\\x0e\\x50\\xc7\\xf1\\xe8\\xb7\\xfc\\x7e\\xbd\\x80\\x78\\x9f\\xcd\\x7e\\x06\\xc7\\xe5\\x0b\\x5f\\xc8\\xb7\\x76\\xe8\\xb9\\xa4\\xcd\\x59\\x05\\xa2\\x90\\x69\\xbc\\x3a\\x55\\x8d\\x7c\\xab\\xce\\x2a\\xf4\\xf3\\x10\\x76\\x7d\\x5b\\x11\\x7e\\x30\\x76\\xb3\\xa0\\xd5\\x27\\x17\\x55\\x43\\xb2\\xcc\\xea\\x28\\xd5\\xf7\\x16\\xfa\\xc3\\x2e\\xfe\\xd3\\xd2\\xe0\\x27\\x6b\\xe4\\x4a\\x89\\x56\\xfc\\x82\\x40\\xf2\\xdb\\x33\\x97\\x61\\x4f\\x2f\\x2d\\xa0\\x21\\x66\\x69\\x4e\\xc6\\xa7\\xfe\\xec\\x6e\\xce\\x39\\xd7\\x2b\\x64\\xbb\\xc6\\xb4\\x76\\xa4\\xf8\\x4f\\x8d\\x87\\x93\\x80\\xa3\\x84\\x88\\xe4\\xd6\\xe5\\x8c\\xac\\x03\\x90\\xae\\x25\\xa5\\xfc\\xb7\\x3d\\x47\\x41\\x4b\\x4c\\x26\\xbb\\xb9\\xb4\\xcc\\x66\\xe4\\x25\\x94\\xbd\\x56\\xd8\\x41\\xa3\\x60\\x92\\x34\\x91\\xd1\\x17\\xbe\\x2c\\x6e\\xb2\\x32\\x0f\\x3c\\x61\\x75\\xe4\\x4e\\x27\\xb6\\x65\\x3c\\x5d\\xac\\x6f\\xae\\x73\\x60\\x0b\\x67\\x96\\x0d\\xca\\x50\\xaa\\x85\\x5a\\x89\\xe0\\xff\\x51\\x1e\\xa0\\x4f\\x14\\x3e\\x89\\xf1\\xda\\x02\\x84\\x76\\xbe\\x4b\\xf6\\xd9\\x4c\\x80\\xff\\x72\\x63\\x39\\xe8\\xbc\\xfb\\x7d\\xd9\\xf8\\xcf\\x20\\x22\\x59\\xc0\\xac\\xb6\\x27\\x6c\\x28\\x1e\\x38\\x47\\xc2\\xcc\\x8d\\x2f\\xba\\x84\\x43\\x8d\\x2d\\x3c\\x60\\x31\\xf2\\xa7\\xb9\\x5c\\x1d\\x8f\\x9f\\x3c\\xc8\\x6a\\x5e\\xff\\x65\\xcc\\x01\\x1d\\xe9\\x5a\\xd8\\x96\\x85\\x8e\\x1f\\x7f\\x6d\\x6b\\x94\\xbf\\x49\\xdf\\xff\\x5d\\xe2\\xd7\\xfd\\x71\\xef\\x10\\x81\\x34\\x28\\x5f\\x61\\xae\\x47\\x54\\x83\\x44\\x2d\\xc9\\x0b\\xf0\\x13\\xfa\\xed\\xf3\\x77\\x1c\\x47\\xc5\\xb9\\x6d\\xc3\\xcf\\x8e\\x48\\x51\\x00\\x60\\xad\\x8d\\x45\\xfd\\x54\\x61\\x62\\x27\\x80\\xd8\\x69\\xd4\\x61\\x7b\\x57\\xfe\\x3c\\xb5\\xcc\\x02\\x03\\x15\\x3a\\xae\"},\n{{0x5c,0xb5,0x14,0x21,0x74,0x82,0xbf,0x42,0xf6,0x11,0xfc,0xec,0x36,0xa5,0x28,0x68,0x07,0xc2,0xbd,0xbb,0x56,0x96,0x76,0x91,0x35,0x3f,0x54,0x31,0x0e,0x1a,0xd5,0x53,},{0x28,0x06,0x99,0x00,0x3d,0x5d,0x3e,0x1c,0x05,0xad,0x10,0xfb,0x10,0x95,0x9b,0xbc,0x59,0x5c,0xfe,0x21,0x30,0x69,0x96,0x5c,0xd8,0xcf,0x39,0xdd,0x42,0x6a,0x05,0x68,},{0xd5,0x3e,0xe2,0xe0,0xf0,0xfd,0x65,0x7b,0x20,0x52,0x47,0x8f,0xd1,0x5d,0xf1,0xd3,0x8f,0xe0,0xe9,0x3a,0x54,0x83,0xeb,0x4a,0x6e,0x7d,0xe9,0x3d,0x02,0xa4,0xcd,0x54,0x4d,0x8f,0xdd,0xdc,0xea,0x82,0x2b,0x71,0x57,0x6e,0xd0,0x28,0x53,0xd9,0xa6,0xb1,0x4e,0x1a,0x54,0x8a,0xef,0xe9,0x0d,0x92,0xf8,0x83,0x79,0x2b,0x7f,0x1d,0x86,0x09,},\"\\x2f\\x57\\x25\\x8c\\xca\\x79\\x32\\xe5\\x8b\\xed\\x54\\x6c\\xb0\\x04\\x11\\x15\\xbb\\xad\\x23\\xd1\\x83\\x46\\xef\\x7a\\xb5\\xe3\\x11\\x00\\x82\\xb3\\xa9\\x71\\x2f\\x6c\\xbe\\x12\\x70\\xe6\\xdc\\x0c\\xea\\x33\\x64\\xa0\\x6a\\x5f\\x2f\\x28\\x3e\\xc3\\x9b\\x63\\x05\\x8d\\x34\\xd5\\x99\\x79\\x07\\x2f\\xcb\\xbd\\x7a\\x5d\\x0f\\x44\\x2b\\xbd\\xf0\\x82\\xd5\\xbf\\xe2\\x99\\x8a\\xeb\\x51\\xbd\\x26\\x12\\x78\\x03\\xe5\\xc7\\x96\\xc3\\x88\\x43\\x20\\x0a\\xe2\\xf6\\xe6\\x05\\xaf\\x31\\x2f\\x54\\xfd\\xff\\x17\\xed\\x1d\\xfa\\xa8\\x9d\\x28\\xfa\\x67\\xdc\\xe4\\x62\\xde\\x4f\\xe2\\x52\\x68\\x21\\x2b\\x28\\x2e\\x22\\x2a\\x44\\x3e\\x2f\\x31\\xe2\\x69\\x05\\x41\\x71\\xaa\\x73\\xc7\\x19\\xa8\\x96\\xcd\\xb7\\xa5\\x39\\xdf\\xd1\\xd4\\x29\\x91\\x97\\x81\\x97\\xd7\\xc4\\xf2\\xd3\\x0a\\x64\\x1b\\xe3\\x4b\\xf1\\x38\\x0a\\x4f\\x4d\\xc6\\xd9\\xb1\\x01\\x63\\x66\\x36\\xa4\\x96\\xbe\\xb3\\x57\\xe3\\x47\\xc1\\x66\\x65\\x16\\xdf\\x8e\\xb5\\x60\\xa0\\xe0\\xd1\\xe1\\x52\\x9c\\xe3\\x6a\\x60\\xe0\\x0e\\xd2\\x78\\xda\\x38\\x02\\xbe\\x19\\x23\\x42\\x98\\x9b\\xb6\\x11\\xb4\\xe3\\xcb\\xd9\\xc3\\x7e\\x8c\\xce\\x07\\xef\\xc1\\x2d\\x29\\xbe\\xfd\\x7e\\x2f\\x3a\\xdb\\x13\\xd2\\x8f\\x70\\x8d\\x97\\xb6\\x3e\\x10\\x74\\x82\\xc8\\x62\\x95\\x6d\\x7c\\xe8\\xdf\\xc2\\xaf\\x5c\\xac\\x8d\\x51\\x65\\x92\\x67\\xb0\\xbb\\xed\\xdd\\x5e\\xfa\\x41\\x4d\\xde\\xab\\xd1\\x7b\\x23\\xca\\x6e\\x84\\x3f\\xf4\\x9e\\xff\\xc8\\x2a\\x5d\\x07\\xe3\\x6a\\x83\\xb6\\x7c\\x2a\\xd7\\xe4\\x8e\\xb9\\x99\\x0b\\x42\\x1c\\x55\\x58\\x00\\x9b\\xd6\\x93\\x4e\\x86\\xd5\\x4a\\x8a\\x6a\\xc4\\x07\\x87\\x96\\xe3\\x05\\xc7\\xcc\\x81\\x0d\\x3f\\x66\\xea\\x6b\\x95\\x04\\xfe\\x0a\\xe6\\x75\\x7c\\x50\\x4c\\x55\\x52\\x53\\x0a\\x6f\\x8b\\xbb\\x52\\x40\\x9b\\xe0\\x79\\xd8\\xe4\\xa2\\x8a\\x6f\\xd7\\xdc\\x89\\x35\\xf8\\xeb\\x94\\x98\\xad\\xc0\\xf2\\x3d\\x08\\x07\\xec\\x86\\x29\\x5f\\x48\\x98\\xf5\\xd0\\x5e\\x15\\x0b\\xdc\\x43\\xaa\\x8b\\x7b\\xdc\\x89\\x3a\\x0a\\x68\\x4c\\x30\\x63\\x89\\x8b\\x6c\\x95\\xe7\\xd5\\x6a\\x4c\\x10\\x26\\x90\\x43\\x8e\\x9d\\xf9\\x97\\x58\\xa9\\x0f\\x47\\xc6\\x08\\xda\\xcc\\x4c\\xa2\\x40\\x26\\x6f\\xab\\xa3\\x5f\\xa1\\xeb\\x2e\\xaa\\xbe\\x28\\x8d\\x2c\\x2a\\xd5\\x0b\\x6c\\xbf\\x10\\x7c\\x00\\x25\\x75\\xe9\\x1f\\xf4\\x72\\xa4\\x41\\x79\\x40\\x66\\x7b\\xe8\\x18\\x01\\x73\\x85\\x4c\\x93\\xdf\\x84\\x46\\x4b\\xcd\\x31\\x2b\\x7a\\x7a\\xe4\\xdc\\x2b\\x90\\x59\\xfb\\xe6\\xf8\\x3f\\x53\\x80\\x64\\x25\\xbd\\xff\\x03\\x1c\\x6a\\xed\\x6e\\xfa\\xfd\\x9d\\xe8\\xdc\\xd0\\xdf\\xab\\xea\\x8e\\x6f\\xa6\\x81\\xe9\\x91\\x93\\xfb\\x3c\\x64\\x7e\\x44\\x21\\x12\\xc9\\xa2\\x3f\\x59\\x6e\\x65\\x41\\x1d\\x8d\\x6b\\xfc\\x39\\x23\\x00\\x4e\\xce\\x91\\xea\\x6d\\xeb\\x88\\x11\\x11\\xb1\\xdc\\x29\\x94\\x3f\\x57\\x89\\x81\\xee\\x8c\\x3b\\xce\\x85\\x25\\xf7\\x85\\x65\\xf3\\x4b\\x85\\xff\\x20\\x01\\x5f\\xea\\xe8\\x46\\xf9\\x5b\\x18\\x70\\x0b\\xc5\\xcd\\xf1\\x4b\\x2d\\xb6\\xca\\xc6\\x98\\x14\\xd6\\x3d\\x74\\xbf\\x20\\x32\\x93\\x03\\xe5\\xca\\x9f\\x04\\x73\\x1f\\x68\\x81\\xce\\xc6\\xd3\\xab\\xf8\\x7f\\x5e\\xac\\x08\\x73\\x4f\\xaa\\x34\\xcf\\xf4\\xd3\\xcd\\x9a\\x4a\\x11\\xd7\\xb1\\x2f\\x73\\x25\\x3b\\x4d\\xd0\\xa4\\x31\\x78\\xf0\\xd3\\xc1\\x9c\\x0c\\x40\\xd9\\xed\\x91\\x8d\\xd1\\x76\\x46\\xf6\\x16\\xaf\\x79\\xfd\\xf6\\x19\\x42\\x62\\xf0\\xfa\\x4f\\x71\\xb3\\x18\\x7d\\xed\\xca\\x48\\xd9\\xcb\\xcc\\x19\\x93\\x1a\\x15\\x19\\x67\\x74\\x56\\x25\\x6e\\xd3\\x83\\x54\\x56\\x7c\\x3a\\x67\\x57\\x1c\\xdf\\x82\\x17\\x0a\\x2c\\x85\\xbd\\x2c\\x5e\\x68\\xe0\\x5a\\x0f\\x3b\\x93\\x90\\x3f\\x19\\x1b\\x89\\x4f\\x84\\x94\\x6f\\x89\\x00\\x05\\x68\\x05\\x4c\\x1c\\xea\\x9f\\xd0\\xb8\\xbb\\x55\\x01\\x95\\x06\\xc5\\x43\\x41\\xc2\\x49\\x31\\x98\\x45\\x48\\xba\\x45\\x8a\\x4d\\x81\\x30\\x89\\x89\\x6e\\x86\\xa2\\xdc\\x33\\xd9\\x46\\x04\\x00\\x3f\\x35\\x4a\\x7c\\xc9\\x41\\xc7\\x54\\xaa\\xea\\x24\\x25\\x3c\\xbe\\x4c\\xf2\\x14\\x7f\\xfe\\xc5\\xe7\\xb9\\x50\\xcb\\xf2\\x8e\\x28\\x44\\x81\"},\n{{0x87,0xd3,0xba,0x95,0xc4,0x0d,0xf8,0x00,0x69,0xb1,0x79,0x7d,0xdf,0x68,0xe8,0x66,0xe6,0x6d,0x46,0xc5,0x1f,0xde,0x60,0xe7,0x68,0xa9,0xdb,0xc5,0xc9,0x2f,0x57,0xa9,},{0x2b,0x81,0x2b,0x2c,0x9b,0x60,0xff,0x31,0x97,0x5c,0x42,0x9a,0x86,0x73,0x6d,0xcc,0x17,0xa5,0x8d,0x3d,0xc1,0xda,0xa3,0x46,0x23,0xa4,0xbb,0xcb,0xe2,0xcc,0x05,0x81,},{0xfa,0x0d,0x12,0xcd,0x53,0x23,0x6c,0x41,0x08,0x6b,0xea,0x8c,0x0c,0xc6,0x0b,0x77,0x64,0xa3,0xed,0x72,0xbd,0xeb,0x9d,0x1a,0xe5,0xee,0xac,0xb4,0x88,0x11,0xfe,0x52,0x97,0x62,0xa2,0xc6,0xf2,0xbb,0x06,0xd9,0xb3,0x18,0x21,0x8d,0x96,0x8f,0x64,0x44,0x35,0x49,0x7a,0x1b,0xd0,0xd0,0xd8,0xc1,0x61,0x2a,0xb8,0x99,0x6d,0x98,0xd7,0x07,},\"\\xe1\\x12\\x56\\xf8\\x2a\\xd7\\x6f\\x3f\\x4a\\x49\\xd7\\xba\\xd3\\xce\\xd8\\x71\\x8d\\x36\\xd2\\xf2\\xbb\\x3d\\x31\\xbb\\x61\\xed\\xd1\\xec\\xbc\\xee\\x66\\x21\\xfd\\x2e\\xee\\xd3\\xe3\\xde\\xb5\\x97\\xb1\\x49\\xff\\x71\\xb8\\x51\\xf6\\x1c\\x8c\\x68\\x19\\xe1\\x31\\xf9\\xa2\\xaf\\x76\\x73\\xc3\\xf2\\x07\\x02\\xac\\xfd\\xc8\\xb8\\xf9\\x06\\x4b\\x41\\x5c\\x9a\\x3e\\x35\\x56\\x8e\\x37\\x1d\\x74\\x0a\\x38\\x12\\x7c\\x1f\\x27\\xb3\\x91\\xb4\\x5d\\x07\\x04\\x5a\\xea\\xf0\\x0a\\x54\\xe5\\xb7\\xfa\\x54\\x8a\\xfb\\x5f\\x96\\xfe\\xb5\\xf5\\xb4\\x4f\\x60\\xcd\\x17\\x07\\xe8\\xfa\\x95\\x67\\xf7\\x80\\x6e\\x15\\xf6\\xa0\\x1a\\xa0\\x20\\x77\\x73\\x3f\\xe7\\x38\\xb0\\x8f\\x21\\xef\\xbc\\xf9\\x8c\\x19\\xd5\\xb9\\x70\\xe6\\x16\\x3e\\x5f\\xe8\\xf4\\x80\\x0e\\xf9\\xed\\x22\\xa0\\xf9\\xb5\\x12\\x6f\\xf1\\xeb\\x1c\\x7d\\x65\\x01\\x9c\\x8b\\x44\\x03\\x91\\x92\\x70\\x29\\xb8\\x13\\xda\\xb7\\xc7\\xe8\\x63\\xd4\\x82\\x29\\xf8\\xdf\\x85\\x39\\x43\\x45\\xfc\\xc8\\x8a\\x30\\x0f\\x60\\xa8\\xd5\\x16\\xd8\\x77\\xa5\\xa3\\xa7\\xe3\\xc4\\x9a\\x9e\\xb0\\x6c\\xd9\\xf2\\x66\\x5c\\xe2\\xa8\\x90\\x22\\x96\\x2b\\x1d\\x49\\x59\\x2b\\x09\\xc7\\x54\\x3d\\xa8\\x35\\xce\\x63\\xbc\\x9a\\xbb\\x82\\x21\\x45\\x76\\x2b\\x71\\xcb\\xe1\\x50\\x29\\x2c\\xe5\\xc8\\x70\\x4e\\x5a\\xd3\\x4f\\xb4\\x59\\x2f\\x97\\x20\\x44\\xe4\\x3e\\x69\\xf0\\xe1\\x67\\x2d\\x6c\\x83\\xcf\\x25\\xaa\\xc6\\x8e\\xfe\\x3d\\x27\\xaf\\x2a\\xd3\\x42\\x74\\xb9\\xd2\\xb7\\x77\\x42\\xd9\\xc6\\xdf\\xbd\\x57\\xf9\\x2f\\xf6\\x4d\\x3e\\x4c\\x67\\xc5\\x41\\xd8\\x50\\x2a\\x7d\\x03\\x18\\x95\\xaf\\x85\\x31\\x9a\\x4e\\xae\\x2d\\x25\\x43\\x35\\x83\\x5e\\xff\\x11\\xe7\\xa3\\x67\\x1a\\x6a\\x0d\\x21\\xb7\\x2c\\xe1\\xfc\\x2a\\xcb\\xa1\\xa9\\x20\\x18\\x38\\x34\\xbc\\x0a\\x4b\\x73\\xf6\\x39\\xff\\xcb\\x0f\\x6b\\x81\\xcd\\x92\\x0f\\x2e\\x94\\x20\\xd6\\x12\\x16\\x6d\\x56\\x82\\xa0\\x60\\x60\\xea\\x0b\\x6f\\xa6\\x95\\xfe\\xcc\\x77\\x04\\xbb\\xe4\\xb0\\x52\\xaa\\x3e\\xc8\\xf7\\x20\\xf7\\xd4\\xf3\\x2e\\x8a\\xff\\x86\\xb8\\x0b\\x8c\\x1c\\xc1\\x27\\x64\\xa0\\x48\\x74\\x03\\x7c\\x31\\x03\\xe9\\xdf\\xec\\xb8\\xf7\\xab\\xcb\\x0e\\x07\\x3b\\x23\\xe6\\x7c\\xa0\\xa9\\xb1\\xfc\\x72\\x99\\x3a\\xbf\\x31\\xdb\\xc2\\x4a\\x8f\\xee\\x09\\x5b\\x32\\x51\\xc2\\x26\\x26\\xaf\\x5d\\xd1\\xb6\\xd3\\x4b\\xe5\\xea\\x06\\xa0\\x2a\\xe1\\x76\\xc7\\xb8\\xcb\\x9d\\x06\\x35\\x01\\xbe\\x6f\\x61\\x20\\x82\\x88\\x9f\\xdb\\xdc\\xbf\\xad\\xc3\\x3a\\x0d\\x31\\x1b\\x08\\x0b\\x8d\\x64\\xe4\\x9f\\x16\\xb1\\x6d\\xd8\\xed\\xd3\\xb2\\xed\\x11\\x93\\xa7\\x4e\\x5b\\xe5\\x07\\x60\\x9b\\x04\\x27\\x27\\xcc\\xf0\\x8a\\xfb\\x05\\xcc\\x6c\\x50\\x52\\x4e\\xf0\\xe2\\x66\\x46\\x21\\xdc\\x8b\\x05\\xb1\\x5f\\xfa\\x81\\xab\\x6f\\x7e\\x3c\\x8a\\x5b\\xb3\\xea\\xb1\\xf6\\x8e\\x36\\x56\\xc1\\x19\\xd9\\x69\\xe4\\x14\\x4c\\xf3\\x28\\x5a\\xf2\\x3c\\x04\\xdb\\xec\\xc0\\x38\\xae\\xfd\\x91\\x83\\xc4\\xe7\\x24\\x47\\xb2\\xaa\\xa8\\x31\\x5f\\x46\\x96\\xce\\x6d\\x1e\\xf4\\x29\\xba\\x0e\\x5c\\x3d\\x5f\\xfa\\x7f\\x05\\x0b\\xe3\\x9c\\x7f\\x61\\x2f\\x4e\\x10\\xf8\\xef\\x07\\x0d\\xf7\\x2f\\x8a\\xdd\\xbe\\xaf\\x33\\x39\\xc1\\xad\\x8b\\x5f\\xc3\\x9a\\x2e\\xcf\\x29\\xa8\\x7f\\x82\\xe2\\x9a\\x01\\x17\\xba\\xac\\x66\\x25\\xad\\x5c\\x80\\xcf\\xe7\\x59\\xfa\\x1d\\xbc\\xfa\\xa1\\x2b\\x37\\x44\\x77\\xd8\\x0b\\xfc\\xf0\\x67\\x96\\xc3\\x0f\\x2c\\x39\\xcf\\x03\\x03\\xd0\\x0d\\xc5\\x6a\\x32\\xd1\\xd0\\x39\\x59\\x2d\\xdb\\x06\\xc2\\x2a\\xa0\\x68\\x84\\x1c\\x0b\\x46\\xfd\\x48\\xdf\\x8f\\xbb\\x74\\x92\\xcc\\xbc\\x59\\x0c\\x56\\x3c\\x8f\\xec\\xce\\x42\\x63\\xc8\\xc7\\x53\\x92\\x18\\xbb\\x97\\xb3\\x57\\x11\\x53\\x7e\\x98\\x81\\x95\\xdb\\xf5\\xbc\\xd5\\xcc\\xaf\\x06\\xfa\\xf5\\x08\\x47\\x09\\x77\\xa5\\x35\\x8e\\x6f\\x02\\x60\\x83\\x49\\xfb\\xb9\\x9a\\x23\\xfb\\xe3\\x6b\\x8c\\x97\\x15\\x5a\\xdc\\x24\\x6a\\xd7\\xd9\\x3a\\x8c\\x20\\x3f\\x75\\x44\\x6c\\x83\\xc4\\x34\\x2c\\x35\\xba\\x10\\x4e\\xcc\\x67\\xe6\\x69\\xdb\\x4a\\x95\\x46\\x6e\\xe6\\x8f\\x45\\x8a\"},\n{{0x7c,0x27,0xae,0x47,0x07,0x2b,0x0c,0x9b,0x9c,0x2c,0x35,0x1f,0x13,0x27,0x89,0x98,0x95,0xef,0xa5,0x36,0xc9,0xc0,0x67,0xd0,0xe0,0xce,0x8e,0x82,0xe6,0x29,0x27,0x93,},{0xf9,0xfe,0xbd,0x12,0x1e,0x17,0xdb,0x72,0x29,0xb5,0x67,0x09,0x02,0x18,0x49,0xc3,0x5d,0x69,0xfa,0x08,0xb5,0x06,0x20,0xe6,0x67,0xf8,0x42,0xec,0x7a,0xc7,0x82,0xdc,},{0x32,0x71,0x96,0xdd,0xd4,0x3b,0xb6,0x02,0xd0,0x4d,0x19,0x64,0xcc,0xc0,0x59,0xed,0x62,0x7c,0xef,0x0a,0x88,0xd8,0xad,0x91,0xbe,0x49,0x31,0xf1,0x7c,0x25,0x0d,0x55,0x29,0xf5,0x52,0x79,0x4a,0x3e,0x26,0x9d,0x17,0xa6,0x3b,0xd3,0x29,0x33,0xeb,0x5e,0x51,0x9c,0x1d,0x50,0x65,0x74,0x77,0x0a,0xe4,0xa7,0x29,0x64,0xe0,0x6f,0x7d,0x00,},\"\\x15\\x47\\x87\\x6a\\x98\\x8d\\x1b\\xe7\\x14\\xa4\\x2f\\xb9\\x1c\\xb0\\x37\\x63\\xf1\\x91\\x3a\\x89\\x2e\\xcb\\xd4\\xde\\x2c\\xcf\\x83\\x44\\xd2\\x07\\x58\\xb7\\xb6\\xd0\\x02\\x59\\x10\\x1f\\xe9\\x72\\x25\\xb2\\x97\\xf8\\x7b\\xfe\\x22\\x20\\x04\\x32\\x5d\\xb7\\xf6\\x32\\xce\\xaf\\xfb\\xd1\\x34\\xc9\\x6c\\xbd\\x57\\xe9\\x85\\xbe\\xc8\\x43\\x4f\\x81\\xa4\\xee\\x6a\\xf8\\x5c\\x3f\\xad\\xe5\\x0e\\x4c\\x4e\\xf2\\x0c\\xb0\\x39\\x35\\x45\\xe4\\xd4\\xa8\\x6e\\x1f\\xa3\\x9a\\xaf\\x33\\x3f\\xe4\\xde\\xd0\\x54\\xbf\\xc0\\x50\\xa8\\x98\\x3a\\x03\\xdd\\x1e\\xcf\\x2b\\x5e\\x95\\x17\\xba\\xf9\\xe1\\x15\\x21\\x29\\xa8\\xa7\\x59\\x35\\x71\\x1e\\xdb\\x20\\xaf\\x5c\\x8c\\xf9\\xc6\\x94\\xa3\\x3c\\xee\\x45\\x1c\\xd9\\x50\\xb2\\xff\\xf0\\x8e\\x31\\x58\\xc5\\xcf\\xb7\\xb1\\x5c\\xb3\\xe9\\x0d\\x46\\xf4\\x94\\xb6\\xa1\\x08\\xd8\\x88\\x8d\\x5e\\xc2\\x9a\\x33\\xc0\\x66\\x02\\x3b\\x49\\x77\\x09\\xb2\\xd9\\x40\\x1f\\xea\\xf2\\xe7\\x4f\\xf2\\x6c\\x16\\xd3\\x6c\\x39\\xe6\\x51\\x7f\\xf9\\x54\\xbd\\x98\\xbc\\xe7\\x70\\x06\\x71\\x98\\x8f\\x66\\xe8\\x51\\x07\\x64\\x4b\\xa2\\xea\\x00\\x7a\\x13\\x01\\x8c\\x1c\\x14\\x4e\\x3c\\x5b\\xb8\\x0d\\xb9\\x51\\x1f\\xcc\\xa4\\x10\\x1b\\xf4\\x9f\\x8c\\x80\\xff\\x3c\\xa7\\xd2\\x98\\x25\\x7c\\xbf\\xea\\x62\\x9f\\x83\\xd5\\xe0\\x66\\x39\\xd3\\x1f\\x63\\x9d\\xb4\\xb8\\x72\\x6c\\xbe\\x22\\x4d\\x75\\x88\\x29\\xba\\xb1\\x09\\x05\\x17\\x1c\\x9c\\x0e\\xc3\\x70\\xd5\\x80\\x31\\xef\\xe4\\xcc\\x5a\\xe7\\x2a\\x49\\x5a\\xcf\\xf6\\xcb\\x2e\\xd9\\xee\\xc6\\x58\\xba\\x11\\x70\\x88\\xdd\\x3c\\x6e\\xd1\\xdf\\x8f\\x9c\\xb1\\x0b\\xd4\\xfe\\x0e\\x5e\\x8a\\xd9\\xf5\\x03\\x4e\\x34\\x65\\x2d\\x98\\x66\\x8d\\xb1\\x5c\\x85\\x33\\x39\\x3a\\x6e\\x9e\\xc0\\x87\\x0c\\x35\\x66\\x6c\\xe5\\x4e\\xfe\\x2b\\xcb\\x45\\xc3\\x4a\\x72\\x30\\xe6\\xa7\\x00\\x67\\x63\\x49\\xc7\\xb3\\xab\\xf3\\x1d\\xe7\\xb7\\xb0\\x52\\x1f\\x89\\xb3\\x0a\\xc4\\x03\\x4c\\x2a\\x4b\\xa8\\x21\\x8e\\xef\\xdf\\x8d\\x2a\\x5c\\x1f\\x8e\\xd9\\xb7\\x01\\x57\\x9e\\x47\\xaf\\x8a\\x52\\x9a\\x95\\xa1\\xff\\x64\\xd8\\xfd\\xb8\\x85\\xc3\\x68\\x39\\xb4\\xc5\\xf6\\xd7\\x2a\\x99\\x25\\x7e\\x86\\x78\\xdc\\xcf\\x31\\x27\\x54\\xb9\\xd4\\x61\\x9b\\xee\\xce\\xb8\\x25\\x52\\x6d\\xe6\\x22\\xbd\\x96\\x76\\xfd\\x5f\\x35\\x76\\x93\\xab\\xab\\x07\\x8b\\x9e\\x03\\xae\\x21\\xe8\\x7c\\xa1\\x61\\xe7\\x78\\xaf\\x77\\x09\\x6e\\xaa\\xc2\\xd2\\xd3\\x2b\\xfe\\xc8\\xec\\x94\\xaf\\x79\\x65\\xf6\\x1d\\x68\\xef\\x66\\xa4\\x52\\x3c\\x1c\\xc7\\x0c\\x95\\x19\\xb0\\x75\\x0b\\x3c\\x9e\\xed\\x5a\\xeb\\xa9\\xf0\\xa9\\xb7\\xef\\x52\\xcd\\x4a\\x2d\\xe2\\x9b\\x39\\x5b\\x70\\x5f\\xa5\\x3f\\x02\\x8f\\xa7\\x66\\x15\\x9f\\x20\\xe7\\x5f\\x4d\\x38\\x4e\\xc4\\xfd\\x66\\xdf\\x06\\xe7\\x44\\xc9\\x9a\\xc8\\x8c\\xb8\\x49\\xc2\\x85\\x75\\x7c\\xc5\\x57\\xe2\\xee\\xdd\\x86\\x95\\x9d\\xa2\\xc1\\xb8\\x1f\\x5b\\x27\\x15\\xa6\\x51\\x98\\x48\\x90\\x1a\\xe4\\xf8\\x9d\\x09\\x13\\xc8\\xde\\x57\\xc5\\x3d\\xad\\xf2\\xe5\\xe1\\xaa\\x2a\\x9c\\x5f\\x46\\x4f\\xc7\\x61\\x0e\\x8e\\xf5\\xf5\\xcd\\xd8\\x20\\x3a\\x67\\xa9\\x3c\\x33\\xa0\\x6d\\xab\\x35\\x8d\\xc5\\xae\\x23\\xed\\xfe\\xe6\\x33\\x42\\x62\\xf4\\x7b\\x19\\xb1\\x13\\xd6\\xca\\xfe\\xda\\xc1\\xb4\\x39\\x02\\x53\\x9d\\x74\\xfb\\xa2\\x9a\\xaa\\x7b\\xce\\x68\\x88\\x4b\\x72\\x61\\x6a\\x05\\x42\\xc9\\xfc\\x69\\x54\\x7c\\xd1\\x9a\\xe1\\xdf\\x01\\x72\\x3a\\xbd\\xda\\x65\\xe9\\xbf\\xac\\x5d\\xa0\\xd0\\x42\\x40\\xc6\\xa2\\x17\\x5c\\x00\\x62\\xe4\\xe1\\xed\\x8a\\x5b\\x39\\x7a\\xfc\\xd4\\xde\\x38\\xe8\\x62\\x09\\x27\\x2c\\x7a\\x42\\x4b\\x5a\\xe8\\xd5\\xa4\\x0b\\x48\\x4c\\xe1\\xb4\\x70\\x4a\\xf2\\x83\\x16\\x09\\xad\\x0f\\x36\\xe9\\x0e\\x07\\xb2\\xaf\\xed\\x01\\xdc\\x05\\x57\\x4a\\xd3\\x97\\x17\\x23\\xc5\\xb5\\xc1\\xdd\\xd4\\xfc\\x8b\\xd2\\x63\\xbc\\xdf\\x56\\x8a\\xf7\\x5e\\x73\\xd8\\xab\\xd1\\x00\\x8c\\x9e\\xc7\\x12\\xf8\\x0f\\xfc\\x65\\xac\\x34\\xe2\\xa7\\x93\\x04\\xea\\xde\\x1d\\x2a\\x1d\\xff\\xec\\x0e\\x4c\\x98\\xc3\\x58\\x24\\x68\\xf3\\x20\\xbf\\x8f\\x66\"},\n{{0x08,0xed,0xdc,0xb5,0x62,0x5a,0xe1,0x9f,0xfe,0x7b,0x49,0xa7,0xdc,0x82,0x9c,0x89,0x3c,0x75,0x38,0xb0,0x88,0x5e,0x18,0xf9,0x8d,0xb7,0x8c,0x8b,0xeb,0x56,0x9c,0x26,},{0x83,0x47,0x8b,0x1c,0x58,0x57,0x6a,0x0d,0x18,0x34,0xb2,0x8d,0x46,0xfb,0x80,0x51,0x6d,0x6f,0xb6,0xf9,0xf5,0x91,0x69,0x4b,0x44,0x35,0x2e,0xec,0xd1,0xe7,0xe8,0x9a,},{0xec,0xe7,0x53,0x22,0x99,0x51,0x54,0xb2,0x92,0x43,0x7e,0x47,0xd3,0x8a,0x6a,0x70,0xaf,0x37,0xe2,0x02,0x07,0x16,0xfd,0xe4,0x6b,0xfd,0x39,0x3b,0x3d,0x36,0x9b,0xdd,0xb5,0x32,0x53,0xb5,0x56,0x62,0x1c,0xfb,0x34,0xc8,0xa9,0x02,0x54,0xe1,0x32,0xfd,0x28,0xec,0xd0,0x98,0x43,0x34,0x13,0xa2,0x1b,0xd3,0xa9,0x79,0x8c,0xa1,0xf3,0x09,},\"\\x01\\x5b\\x1d\\x3e\\xeb\\x00\\x92\\x9e\\xa8\\x0b\\xd8\\x68\\x7d\\x18\\x28\\x6f\\x0a\\xdf\\xe6\\x45\\xcc\\xf2\\x5a\\x22\\xb5\\x06\\x19\\x21\\xe2\\xa0\\x30\\xfc\\x76\\xd0\\x33\\xfb\\x53\\xd0\\x93\\x7c\\x69\\xb3\\x1c\\x5b\\xe4\\x99\\x13\\xca\\x1f\\x2c\\x3d\\xca\\x12\\x1b\\x2b\\x87\\xc5\\x9b\\x3c\\x84\\xc7\\xae\\x52\\xaf\\x19\\xc6\\xb9\\xfa\\x1b\\xd6\\x75\\xfb\\x6d\\xd8\\xb3\\x29\\xd5\\x66\\x87\\x86\\xdc\\x78\\x83\\xe2\\xd2\\xe8\\x58\\x6f\\xf4\\x12\\x8b\\x90\\xde\\xe8\\x4b\\xe0\\xab\\x54\\xd6\\x81\\x3f\\x7a\\x8c\\x61\\x34\\x75\\x71\\x73\\x98\\x17\\x75\\xde\\x84\\xc4\\xdd\\x39\\xe3\\x36\\xf8\\xa4\\xef\\x8d\\xca\\xde\\xc9\\x43\\xe9\\x0d\\x42\\x1b\\x22\\x9c\\x11\\x78\\x5f\\xcd\\x3f\\xe9\\x63\\x03\\x74\\x58\\xe7\\x6c\\x82\\x0b\\x3b\\xc2\\xc9\\x47\\x60\\x01\\x26\\x2b\\x26\\x1d\\x28\\xb6\\x5b\\x48\\x9d\\x76\\xb4\\xbe\\x23\\x65\\xe4\\xa8\\x0f\\xa8\\x71\\xb0\\xa5\\x3b\\x6a\\x5f\\xb2\\x43\\x68\\x82\\x35\\xac\\xc5\\xf4\\x77\\x4d\\xb1\\x5d\\x47\\xb4\\x2d\\xd6\\xc8\\xd9\\xe1\\x2d\\xcb\\x0b\\x5d\\x98\\x0d\\xab\\x0f\\x3a\\xd8\\xa4\\x96\\xf7\\x6e\\x50\\x06\\xc2\\xca\\x82\\x67\\x5f\\xf1\\x94\\xca\\xf8\\x07\\x0d\\x04\\xbd\\x38\\x4f\\x97\\xe5\\x83\\xe7\\x3c\\xbc\\x4f\\x7f\\x25\\x73\\x10\\xa6\\x1b\\x1c\\x80\\x62\\x32\\x2d\\xce\\x81\\x15\\xf6\\xdd\\x93\\xee\\xe8\\xa9\\x3f\\xfa\\x5c\\xab\\x66\\x34\\x11\\x6e\\x1a\\xb7\\x05\\xfa\\x86\\xc4\\xa8\\xea\\xa5\\x56\\xc6\\xc8\\x9d\\xbc\\xad\\x01\\x04\\x36\\xbf\\xfe\\x45\\x18\\x22\\x49\\x1f\\x1e\\xa8\\x6c\\x20\\x20\\x7e\\x4d\\x12\\xdf\\xa3\\x62\\x61\\x6c\\x58\\x9f\\x97\\x10\\x7e\\xa5\\xd8\\xbd\\x8a\\x72\\x15\\xc6\\x00\\xff\\xc7\\x0b\\x80\\xe2\\xab\\xb1\\x5a\\xcb\\xe4\\xbe\\xcc\\xa2\\x0d\\x72\\x15\\x5a\\xbc\\x3d\\xbe\\x8e\\x37\\xcf\\xd7\\x3f\\x74\\x20\\xf2\\x1c\\x9b\\xcd\\x0c\\x32\\x73\\x51\\x3b\\x50\\x49\\x67\\x08\\x74\\xd5\\x51\\x9b\\x3b\\xc1\\xdb\\x52\\x3c\\x1d\\x7e\\x90\\xc1\\x65\\x96\\x7c\\x4c\\xb2\\x84\\x5a\\x2e\\x8b\\x47\\xb5\\x88\\x92\\x54\\xf5\\x8a\\x9b\\xbb\\x82\\x6f\\x94\\x52\\x1c\\xdb\\xd0\\x41\\x6f\\x5f\\x18\\xff\\x78\\xa3\\xfd\\x0d\\x7a\\xb8\\x97\\x90\\x62\\x64\\x48\\x3c\\xde\\x64\\x2d\\x8e\\x70\\x3f\\xd8\\x2e\\x5a\\xe7\\x0a\\x9f\\x97\\x8f\\x64\\xee\\x80\\x52\\x05\\x54\\x85\\x05\\x28\\x58\\x1c\\xa9\\xa0\\xb3\\x8c\\x19\\x6f\\xd1\\x66\\xda\\xe5\\x87\\x9b\\x3f\\x72\\xf5\\x9c\\xde\\x91\\xcc\\xa2\\xc8\\xbf\\xaa\\x47\\x8b\\x98\\xd6\\x24\\xcd\\x34\\x72\\x44\\x02\\xde\\x57\\x8e\\x57\\x54\\x82\\x5c\\xe2\\x27\\xd2\\x87\\x1b\\x45\\xa5\\x11\\x71\\x49\\x51\\x5b\\xff\\x81\\xa9\\x23\\x24\\x6f\\x3b\\x72\\xd0\\x7b\\xd4\\x58\\x12\\x5c\\x70\\xa1\\x4d\\x87\\xc3\\xfd\\x13\\x39\\x2a\\x3b\\xda\\x65\\x53\\x01\\x6e\\x8b\\x2d\\x07\\xbd\\xe9\\x03\\xcf\\x68\\x7b\\x44\\x5c\\xfd\\x6f\\x76\\x14\\x92\\xeb\\xa4\\x65\\x22\\xad\\xa8\\x4a\\x96\\x15\\xd8\\xda\\x34\\x98\\xb2\\x58\\x06\\x72\\x69\\xb7\\x88\\xe5\\x59\\xb6\\x59\\xd4\\xb4\\x8a\\x87\\xd8\\x80\\xd6\\x37\\x8b\\xe6\\xa8\\x87\\x46\\xf3\\x5b\\x32\\x2b\\x04\\x78\\x45\\xaa\\xdc\\x52\\x3b\\xea\\xff\\x30\\x70\\xf7\\x21\\xc3\\xc0\\x71\\xea\\xa3\\x19\\xb7\\xa4\\x7c\\x1b\\x20\\xd3\\x00\\xdc\\x03\\x21\\x90\\x9b\\x66\\x9e\\x57\\xd3\\x9a\\x1c\\xe2\\xfd\\xbe\\xaa\\xfa\\xc2\\x13\\x50\\xec\\x2d\\x6e\\x6d\\x5b\\x88\\x01\\x86\\xc0\\x28\\xa8\\x61\\x47\\x4d\\x50\\x76\\xa4\\xad\\xc5\\x03\\x2f\\xec\\x91\\x40\\x78\\x7c\\x36\\x80\\x6e\\xf7\\x9c\\x72\\xe3\\xa1\\x9d\\x8c\\x8b\\x70\\xbd\\xaf\\x20\\x72\\x95\\x54\\x2d\\x96\\x82\\x5a\\x5d\\xe7\\xdf\\xe1\\x08\\xef\\x57\\x45\\x99\\xb8\\xf1\\x84\\xc6\\x3a\\x5a\\x13\\x1d\\xb1\\x9b\\x3b\\xe5\\x3f\\x69\\x9c\\x10\\xfc\\x4c\\xa7\\xc6\\x3f\\x35\\x00\\x21\\x1b\\x35\\x6a\\x0a\\xc6\\x64\\xdd\\xfc\\x1a\\x92\\x52\\x59\\x00\\x26\\x39\\x5b\\x47\\x9b\\xe9\\xa5\\xe4\\x75\\x84\\x23\\x56\\x0b\\x65\\xbb\\xce\\x5b\\xba\\xde\\x49\\x3b\\x13\\xd0\\x0c\\xf8\\xc1\\xd3\\xb7\\xe9\\x22\\x13\\x67\\xe8\\xf0\\xea\\xda\\xb6\\xe6\\xd1\\xb5\\xff\\xfd\\xe7\\xb2\\xd7\\x41\\xfc\\x2c\\x83\\x02\\x24\\xff\\xf7\\xff\\x14\\xae\\x5c\\x07\"},\n{{0x22,0x73,0x94,0x2d,0xb3,0xe5,0xd3,0x22,0x1e,0x80,0xd9,0x94,0xfd,0x5e,0x11,0x63,0xaf,0x55,0xf5,0x45,0x5a,0x8e,0x52,0xbe,0x85,0x2d,0xd3,0xad,0xf7,0x62,0xb4,0x40,},{0xbc,0x58,0x67,0x4e,0x99,0x6b,0x6f,0x3e,0x32,0x20,0xb3,0xe9,0x4f,0x00,0x67,0xbb,0x0e,0x9b,0x0d,0x97,0xd9,0xe1,0x05,0x9c,0xf1,0x39,0x97,0xa1,0x93,0xac,0x03,0x2a,},{0x87,0x4d,0xde,0xce,0x08,0xf3,0x0b,0x30,0xf0,0xd4,0xc8,0xb3,0xed,0x7c,0x61,0x51,0x49,0xb8,0xaa,0x74,0x0d,0xaa,0x34,0x7b,0x55,0x95,0x8f,0x1e,0x21,0x19,0x04,0x4f,0x69,0x5a,0x21,0x06,0x96,0x90,0x50,0x64,0x48,0xd8,0xe7,0x35,0x2b,0x90,0x46,0x51,0x1d,0x7f,0x39,0xa5,0x41,0x5b,0xb9,0xc5,0x70,0x50,0xfc,0x17,0x05,0x5c,0x38,0x08,},\"\\x8a\\xa0\\x50\\x9e\\x4b\\x91\\x41\\x86\\xff\\xff\\x07\\xae\\xb9\\x7a\\x04\\xb5\\x46\\x27\\x2d\\xa2\\xf9\\xea\\x7b\\xfa\\x65\\x9a\\x24\\xcb\\x50\\x96\\x6c\\x23\\xeb\\x65\\x42\\xe4\\xf2\\x2d\\xeb\\xe3\\x3b\\x65\\x76\\x92\\x45\\xc4\\xd1\\xb5\\xdc\\xf3\\xe6\\x99\\xc7\\x0c\\x5c\\x2b\\xaa\\xd9\\x73\\x4e\\x9d\\x1e\\xfe\\x54\\x48\\xab\\x71\\xc8\\x94\\x6a\\xec\\xce\\x52\\x68\\xd2\\x6f\\x19\\xcf\\x60\\x5e\\xb3\\xbf\\x38\\xb0\\xb3\\x32\\x26\\x94\\xac\\x0d\\xcb\\x76\\xb0\\xf9\\x46\\x84\\x2f\\x6c\\x5c\\x68\\xd7\\x63\\xfc\\xe7\\x47\\x01\\xbd\\x6b\\x78\\xe7\\x1c\\x8c\\x31\\x42\\xad\\xd4\\xed\\x46\\xe0\\x96\\x9b\\xb9\\x55\\x5b\\xe0\\x36\\x02\\xd5\\x62\\xe4\\xc8\\x9f\\x3a\\x91\\x99\\x40\\xe8\\x83\\xa9\\x69\\x40\\x54\\x2f\\x27\\x79\\xfb\\xf9\\xec\\x0a\\x28\\x5d\\x9d\\x8a\\x72\\x36\\x01\\x46\\xe3\\xff\\xbd\\xb7\\x8d\\x21\\x03\\x16\\x03\\x8d\\x95\\xd6\\xab\\x75\\x71\\x65\\xaa\\x94\\x3c\\x03\\x3e\\xeb\\xb3\\x21\\xc0\\x5a\\x39\\x95\\x69\\xbc\\xf6\\x6b\\x4d\\xdb\\x0b\\x2e\\x0e\\x33\\xc4\\x79\\x3d\\x81\\x7c\\xcf\\xf5\\x7f\\x99\\xb3\\x18\\x9c\\x60\\xd5\\xd7\\xb9\\x41\\x9d\\x1e\\xbc\\x94\\x3a\\x79\\xd4\\xd8\\xc3\\x94\\x56\\x61\\x80\\x59\\x4f\\x55\\x9a\\x80\\x52\\x9c\\xc1\\xba\\x28\\x87\\x7a\\xf8\\xf5\\xc0\\x50\\x3e\\x94\\x3c\\xd3\\xaa\\xd9\\x98\\x11\\x64\\x52\\x72\\xda\\xfb\\x49\\xb9\\xb3\\xe6\\x10\\x7e\\xb5\\xe5\\x18\\x6e\\x16\\x08\\x75\\x71\\x26\\x05\\x3d\\xeb\\xce\\xc7\\x5d\\xd9\\x56\\x5c\\xee\\xa0\\x6a\\x13\\x91\\xa8\\x22\\x6d\\x1f\\x45\\x93\\x79\\x22\\x40\\xcc\\xd9\\x7c\\x67\\xa6\\xc2\\xb1\\x34\\x4c\\x22\\xc9\\x1f\\x42\\x03\\x3a\\xde\\xf5\\x28\\x61\\xf3\\x2a\\x4e\\x07\\x12\\xa9\\x17\\x87\\x9a\\x0b\\x05\\x18\\xb5\\x42\\x4b\\xcd\\xc0\\x54\\xb4\\x4e\\x97\\x2e\\xd2\\x4d\\x01\\x68\\x9f\\x4f\\x27\\xf5\\xf1\\x76\\xf0\\xa5\\x78\\xab\\x2d\\x3c\\x08\\x78\\x27\\x2e\\x8c\\x08\\xc2\\x15\\x82\\x11\\x86\\x54\\x12\\x4d\\xca\\x39\\x58\\x53\\x37\\xc1\\x3c\\x18\\x65\\x81\\x4c\\xaf\\x09\\x96\\xca\\xdf\\xa6\\x5b\\xe5\\x80\\xde\\xe3\\x22\\xeb\\xcc\\xda\\x70\\x4b\\x22\\x80\\x58\\x26\\x04\\x06\\x7d\\xc3\\xc6\\xb1\\xf7\\xd8\\xa2\\x69\\x78\\xa6\\x5c\\xff\\xd1\\xed\\x31\\x96\\xa2\\xb0\\x65\\xfb\\x3c\\xaa\\x79\\xe6\\xb5\\xb6\\x6c\\x13\\xd7\\xbd\\x7d\\x0e\\xc1\\x4a\\x3a\\x4d\\x58\\x41\\x3f\\x21\\x2f\\x47\\x1e\\xca\\xad\\x3a\\x84\\xaf\\x35\\xe5\\x98\\xa8\\x9f\\xb3\\x44\\x7d\\x33\\x24\\xf0\\x20\\xfb\\xf1\\xb7\\x3e\\x2a\\x98\\x6e\\x0d\\xa1\\x6c\\x01\\x83\\xbf\\x92\\xa3\\x98\\xc4\\x19\\xa0\\xf9\\xf3\\x05\\x37\\xbe\\xa0\\xdf\\x8d\\xf2\\xdc\\x53\\xc1\\x54\\xe8\\xea\\x16\\x06\\x89\\xe7\\xbb\\x4d\\x72\\x9d\\xd8\\xab\\x90\\x03\\x14\\x27\\xaa\\x39\\x45\\x86\\x3a\\x85\\xe8\\x96\\x52\\xb9\\x35\\x38\\x05\\x16\\x6f\\x7c\\x0a\\x18\\xc9\\x39\\x95\\x4b\\x27\\x87\\xc3\\x70\\x94\\xf9\\x25\\x12\\x72\\x2e\\x52\\xb0\\xc9\\x76\\xb9\\xe4\\x2a\\xf4\\x03\\x9d\\x2c\\x05\\x78\\xff\\x14\\xfa\\xe1\\xd8\\xc2\\xd1\\x39\\x6b\\xeb\\x2d\\x6a\\xa6\\xeb\\xd5\\x54\\x74\\xa9\\x34\\x98\\x67\\xa0\\x3f\\x3a\\x99\\xd7\\x87\\x80\\x63\\x4a\\xb4\\xb3\\x5c\\xfe\\x1b\\x87\\xa9\\x13\\x32\\x52\\xa6\\x98\\xbc\\x40\\x7d\\x63\\x84\\x28\\x70\\xe2\\x2c\\xcf\\x39\\x33\\x62\\x0a\\xc0\\x42\\x3c\\x3d\\x1f\\x68\\x1d\\xd7\\x3c\\x01\\xd0\\x6c\\x3b\\x94\\x15\\x06\\xc9\\x8e\\xed\\x9b\\x78\\x68\\xe0\\x17\\xb7\\xf9\\x97\\x16\\xb0\\xb7\\x7f\\x11\\x32\\x1e\\x5a\\xb2\\x3d\\xbf\\xcf\\xca\\x93\\x50\\x84\\x5e\\xe1\\x80\\x44\\x4c\\x50\\xff\\x0a\\x9c\\x96\\x5f\\xcb\\xf7\\x77\\x70\\x8e\\x4f\\x34\\xcc\\xc6\\x37\\xc6\\xa0\\x8d\\x85\\x43\\x84\\xf8\\xd3\\xe2\\x51\\x69\\x56\\xc1\\x51\\xd0\\x31\\xbb\\x1c\\xbe\\x71\\x2a\\x5e\\xf9\\xee\\x16\\x61\\x92\\x28\\xbd\\x29\\x6f\\x2a\\xfe\\x58\\x2d\\x99\\x53\\xd5\\x90\\xd1\\x8b\\xb2\\x05\\xf7\\x0f\\x84\\x4c\\x16\\xc0\\xa2\\xd8\\x31\\x80\\x37\\xd4\\x3d\\xd8\\x0f\\x65\\xc6\\xa7\\x53\\xf2\\xa8\\xe2\\x7c\\x89\\xc8\\x3e\\x7e\\xd7\\x0c\\x52\\xf7\\x06\\x2d\\xfb\\xb1\\xf5\\x44\\xaa\\x23\\x6b\\x5c\\x70\\x4e\\x7b\\x39\\xce\\x0a\\x55\\xfd\\x46\\x52\\x80\\x83\\xca\\x61\"},\n{{0xdb,0xfa,0x45,0xab,0xaa,0x55,0x41,0x52,0x38,0xb1,0x28,0x76,0x34,0xd5,0xee,0xc4,0x02,0xda,0xdf,0x62,0x2e,0x27,0x0c,0x04,0xa8,0x91,0x4c,0xed,0x27,0x0a,0x72,0xbe,},{0xc0,0xfe,0x32,0x35,0x81,0xea,0x29,0x67,0x50,0x79,0x7e,0xb5,0x50,0x8c,0xa1,0x9a,0x58,0x3b,0x53,0x7f,0xa7,0xdf,0x45,0x29,0xf0,0x80,0x4a,0x33,0xc1,0xa4,0xbe,0xf4,},{0xa4,0x62,0xa9,0xba,0xa5,0x6d,0xc0,0xf7,0xa7,0x1b,0xf8,0x7b,0x95,0xf4,0x8d,0x64,0x20,0x22,0xd9,0xd1,0x73,0x3e,0xe3,0x68,0x37,0x77,0xa3,0x78,0x22,0x28,0xac,0x85,0xfc,0xd8,0x30,0x26,0xbe,0x4c,0xa9,0x7a,0x34,0x5b,0x08,0x4f,0x50,0x87,0x4e,0x91,0x24,0xe1,0x6b,0xa1,0x7d,0xea,0xd4,0xad,0x85,0xc0,0xe5,0x6f,0x16,0xef,0x18,0x04,},\"\\xe2\\x6e\\x8d\\xcb\\x44\\xe6\\x41\\xfc\\x20\\x08\\x0e\\x95\\x47\\x4b\\xd3\\x9d\\x71\\x6c\\x5a\\xfe\\x5a\\x1f\\xfb\\x05\\x6d\\x1e\\xaa\\xb0\\xc4\\x9f\\x85\\x70\\x71\\x7d\\xb6\\x43\\x7a\\x03\\x22\\x8a\\x9a\\xd9\\xf4\\xbb\\x0b\\x34\\x3b\\x95\\xe1\\x60\\x23\\xc0\\x80\\x7e\\xb2\\xa1\\x51\\x06\\xa6\\xeb\\x12\\xdc\\x76\\x68\\x3e\\x69\\xdd\\xa3\\x36\\x31\\x48\\xc5\\xd7\\xdd\\x97\\x13\\xaf\\x6f\\x87\\xa0\\x94\\x10\\xea\\x8f\\x76\\xb6\\xb7\\x8a\\x11\\x44\\x29\\xbc\\x85\\xf7\\x84\\x81\\x2f\\xca\\x31\\xac\\xb0\\x30\\x95\\x52\\xcc\\x18\\x8c\\x6e\\x96\\x97\\x09\\x3c\\xf4\\x04\\xc6\\xf0\\xf4\\xab\\xe8\\xa1\\x60\\x86\\x73\\xfd\\xfa\\x5e\\xb7\\x8f\\x65\\xfc\\x1d\\x49\\xcd\\xec\\x40\\x94\\xb1\\xbd\\x23\\x4a\\x46\\xe0\\xec\\x62\\xa4\\xb6\\xd3\\x1b\\x82\\x96\\x11\\x54\\x01\\x27\\x87\\x6b\\xff\\x4c\\x17\\x3d\\xe0\\x58\\xcf\\x61\\x00\\x4b\\x01\\x4a\\x7b\\xdf\\x79\\x3d\\xfd\\x6b\\x63\\xc5\\x07\\xd2\\xb2\\x3e\\x0f\\x56\\xbc\\x2f\\xe6\\xba\\xf6\\x37\\xce\\xe4\\x0d\\x18\\x99\\x22\\x95\\xd8\\x48\\xef\\x49\\x8f\\x8a\\x16\\x1b\\xd8\\x7e\\x60\\xc9\\x1f\\x97\\xa9\\x1e\\x9e\\xf3\\xf6\\xd9\\x7f\\x2b\\x2d\\x21\\x04\\xba\\x6f\\xdd\\xd6\\xc6\\x80\\x70\\x62\\x73\\xda\\xe8\\x7e\\x6e\\xec\\x1a\\xf2\\xa4\\x59\\x84\\x98\\x50\\x69\\xe8\\x09\\xe8\\xde\\x32\\xc1\\x28\\x89\\x29\\x9a\\x32\\xd4\\x0f\\x38\\x77\\x45\\x99\\xac\\x33\\x24\\xb7\\xcb\\x0a\\x4e\\xa6\\x32\\xc5\\xf9\\x10\\xad\\x87\\xf5\\xad\\xbf\\xa5\\xc3\\xbb\\x20\\x49\\x82\\x79\\xfd\\x53\\xc1\\xc2\\x67\\xfe\\x0a\\x84\\x77\\x30\\x85\\xda\\x26\\x6b\\x25\\x3c\\xd8\\x53\\xdf\\x7e\\x96\\x35\\x58\\xcb\\x06\\x88\\x07\\x80\\x97\\x34\\x23\\xc5\\x64\\xcd\\x0b\\xcd\\x6b\\x93\\x33\\x4c\\x19\\x59\\x53\\xd7\\xcd\\x89\\x9f\\x8a\\x54\\x7d\\x1a\\x1a\\x0a\\x8d\\xef\\xf1\\x38\\x1b\\x43\\x21\\x57\\x47\\x28\\xcf\\x71\\xb9\\x6f\\xf2\\x09\\xe8\\x99\\xda\\xa8\\xf1\\x3f\\x41\\xb2\\x30\\xe1\\x7b\\xff\\xdf\\xdd\\x2a\\x89\\x43\\xaa\\x5d\\x21\\xe5\\xf3\\x6e\\x1d\\xa0\\x7e\\xdd\\x6c\\xee\\x92\\xdc\\x48\\xb5\\xb2\\xa7\\x58\\x01\\x46\\xa9\\xba\\xf7\\x13\\x95\\x0c\\xe6\\x76\\x25\\x5a\\x89\\xe3\\x4f\\x87\\x87\\x54\\x7d\\x62\\x86\\x8d\\xb1\\x4b\\xa4\\x65\\x94\\xda\\x31\\x0d\\x7e\\x2d\\x9e\\x7c\\x7d\\xbe\\x17\\xdb\\xd7\\x1e\\xb4\\x7c\\x56\\xc5\\x72\\x1d\\xc9\\x6d\\x69\\x64\\x70\\x57\\x37\\x94\\x80\\x94\\x11\\xcd\\xfa\\x27\\x6b\\x05\\x9d\\x00\\x07\\xc2\\x5d\\x74\\xb2\\xa6\\x7d\\x38\\x24\\x6d\\xe1\\x1e\\xf4\\x6d\\xfe\\x26\\x70\\x92\\x6f\\xe4\\xb6\\x36\\x56\\x23\\x1b\\xc7\\x26\\x8b\\xba\\x23\\xf3\\x78\\xe8\\x4a\\x42\\x8c\\x3c\\xbf\\x45\\xcc\\x53\\x96\\x78\\xfd\\x46\\x7c\\xd3\\x3d\\xd0\\x75\\x7c\\xfa\\x02\\x4e\\x54\\xda\\x1f\\xf5\\x4c\\xe8\\x20\\x22\\x9b\\x77\\x8b\\x18\\x4b\\xe1\\xfa\\x2e\\x84\\x68\\xcc\\x19\\x95\\x59\\x40\\x73\\x5e\\xaa\\xa8\\x84\\x02\\x2f\\x64\\x18\\xb0\\xb1\\xf2\\x6b\\xcc\\xf1\\x69\\xf1\\xbc\\xac\\x7d\\x82\\xa3\\x5a\\xb6\\xef\\x84\\x7e\\x1d\\xba\\x53\\x7d\\xca\\xff\\x57\\x25\\x0a\\x8d\\x1c\\x71\\xfa\\xcb\\x13\\x4c\\xd0\\x6b\\x01\\xc4\\x53\\x19\\x13\\x27\\x45\\xdc\\x48\\x88\\x88\\xa1\\xd7\\x76\\x1b\\x84\\x86\\xa3\\x7e\\x69\\x88\\xa1\\x12\\x0b\\xcc\\x16\\x82\\xdb\\xfc\\x89\\x14\\x3f\\xc3\\x5b\\x46\\x93\\x5d\\x8a\\xcf\\x6e\\xf3\\xc4\\x2f\\x0f\\x4b\\xf6\\x79\\xdf\\xd6\\xff\\x44\\xb6\\xad\\xa2\\x6b\\x01\\xa9\\xf8\\x9f\\x37\\x4c\\x7d\\x2e\\xe4\\x8d\\xfe\\x1a\\x41\\x0e\\x89\\x7c\\xdf\\xd9\\x7f\\x62\\x6d\\x26\\x68\\x50\\x28\\x14\\x40\\x07\\x93\\xb3\\xb0\\x7c\\x87\\x20\\xbb\\xdd\\xc5\\x9c\\xb0\\xf9\\xde\\x96\\x4a\\xe0\\x75\\xb4\\xaf\\x3d\\xd4\\xba\\xf6\\xd0\\xe4\\xf9\\x4f\\x29\\x4e\\x81\\x09\\xd6\\x57\\x7c\\x4f\\x8a\\x9c\\x7a\\x5f\\x7d\\x69\\x4b\\xf8\\x8f\\x1a\\x5e\\xa7\\xeb\\xa0\\xa6\\x6d\\xa6\\xc7\\x70\\xc0\\x8b\\x3a\\xbf\\xfc\\x53\\x4d\\xf2\\x19\\xdc\\x3e\\x33\\x23\\xb0\\x22\\xe9\\x6c\\xc8\\x60\\x02\\xb1\\x89\\x18\\x1a\\x1d\\x2b\\x52\\x7d\\x27\\x95\\x0b\\x7f\\x42\\x5a\\x47\\xda\\x40\\x13\\x77\\x8b\\xd0\\x0b\\x71\\x10\\x59\\x22\\x20\\x49\\x21\\xe9\\xdc\\x69\\x2c\\x23\\x3f\\x7b\\xaa\\x04\"},\n{{0xef,0x64,0xe1,0x7a,0x53,0xf7,0xfb,0xca,0xfe,0x3e,0xa4,0x68,0x76,0x84,0xa0,0xda,0xdb,0x18,0xd0,0x37,0x35,0xa4,0x0a,0x53,0xb3,0xed,0xb0,0x49,0x07,0xee,0x61,0x62,},{0x91,0x86,0xe6,0xbc,0x14,0x29,0x61,0xc4,0xd3,0xeb,0x36,0x9e,0x9e,0x11,0x57,0x82,0x92,0xde,0x5b,0x6a,0xf5,0x34,0xd4,0x23,0xff,0x24,0x0f,0xa2,0x6e,0x21,0xa7,0x81,},{0xf5,0x8f,0x39,0x6b,0xa2,0x7e,0x06,0x7a,0x5f,0xe0,0x03,0xe3,0x85,0x58,0x2a,0xe3,0x49,0x0e,0x05,0x95,0x77,0x15,0xd7,0x04,0xda,0x0d,0xa6,0x3a,0x64,0x19,0xd2,0xe4,0xf6,0xdc,0x66,0xb7,0xe8,0x8e,0x42,0x8a,0x6f,0x21,0xb9,0xea,0x20,0x22,0x99,0xa3,0xc3,0x6b,0x24,0x2b,0x0e,0xa0,0x64,0x76,0xff,0x12,0xd0,0xb6,0x58,0x0c,0x04,0x03,},\"\\x68\\x82\\x45\\x6c\\xc3\\xd1\\xad\\x0d\\xaa\\x9b\\x88\\xef\\xf0\\x96\\x9f\\x15\\xe9\\x7b\\x48\\xd0\\x51\\x96\\x7e\\x13\\x90\\x84\\x72\\x25\\xf2\\x6a\\xc2\\x55\\x59\\xf0\\x24\\x6b\\xf7\\xd6\\x83\\xfa\\x28\\xec\\xed\\xad\\x21\\x49\\x1d\\x77\\xbd\\x26\\x96\\xfa\\x83\\x5d\\x0f\\xd1\\x19\\x88\\x4f\\xec\\xe9\\xd8\\x03\\x69\\x1b\\x2f\\xd3\\xde\\x17\\xee\\x08\\x7c\\x74\\x00\\x7a\\x7d\\xe9\\xbc\\x65\\x34\\xbb\\xfe\\x95\\xfd\\x32\\xe9\\x7c\\x37\\x5f\\x4c\\xb6\\x57\\x31\\xaa\\x1e\\x83\\x46\\xbe\\xa2\\x1b\\xe9\\xf2\\xc3\\xdc\\x87\\x4a\\xf0\\x43\\x19\\x06\\xcc\\xbc\\x2c\\x60\\x01\\x27\\xf4\\xd3\\xb0\\x69\\xeb\\x09\\x1d\\x16\\x5e\\xc4\\x53\\xe6\\x72\\xe9\\x3c\\xae\\x8b\\x72\\xf0\\x33\\x71\\xd8\\xb8\\xa8\\x24\\x4e\\xc4\\xec\\x2e\\x09\\xf3\\x1d\\xf4\\x02\\x06\\xa2\\xb1\\xc8\\x4c\\xaa\\x1b\\x99\\x3c\\xc6\\x75\\xfd\\xe1\\xc7\\x9b\\xd4\\xa7\\xd1\\x59\\x74\\xfa\\x29\\xce\\x2e\\x89\\x2c\\x28\\x99\\xcf\\x48\\x2c\\x3d\\x96\\x63\\xf6\\xd2\\xa7\\x97\\x84\\xf4\\x1c\\x1f\\x58\\x66\\xd3\\x7c\\x85\\x46\\xf3\\x57\\xd5\\x64\\xd3\\xc4\\x21\\x8d\\xfa\\x6d\\x20\\xb6\\xc2\\x82\\xb4\\x00\\xfe\\xdd\\xe5\\x24\\x39\\xd4\\x72\\x21\\x2c\\x57\\x67\\xa3\\x5d\\xa5\\x20\\x10\\x32\\xda\\x87\\x30\\x96\\x8b\\x07\\x20\\xe8\\xa6\\x04\\xde\\x6c\\x1b\\xaa\\x3f\\x4e\\x89\\x6a\\xc2\\x61\\x4f\\xb1\\xab\\x6e\\x3f\\x6c\\xf3\\x87\\xa8\\xeb\\x2f\\xf8\\xa9\\x21\\x47\\xab\\x34\\x92\\x38\\x43\\x2e\\x50\\x9d\\x82\\x9c\\xb7\\x5b\\x2c\\x17\\x65\\xc5\\x12\\x21\\x84\\x8e\\x25\\xaf\\xff\\x5f\\x16\\xe4\\xdd\\x0c\\xd5\\xc9\\xf7\\x13\\xc4\\xaa\\xab\\x2c\\xe8\\x36\\xf8\\x49\\x45\\x06\\xb5\\x30\\x9d\\xc2\\xb0\\xae\\x74\\x5b\\xb9\\xc4\\x79\\x80\\x98\\xfb\\x86\\x41\\xd5\\x20\\xa0\\x8b\\x02\\xf7\\x5a\\xd8\\x0d\\xbc\\x2c\\xe2\\x9e\\x89\\x0b\\x4d\\x72\\xa3\\xff\\xb2\\xa1\\xcb\\xd5\\x38\\xe1\\x22\\x9f\\x57\\x9c\\x29\\xae\\x66\\xbc\\xa8\\x5e\\x0f\\xa0\\x8c\\x86\\x47\\xa1\\xab\\xcf\\xe8\\xa4\\x9f\\x5e\\x50\\x8d\\x4d\\x24\\x95\\x55\\x66\\x23\\xd9\\x26\\xce\\x49\\xef\\xa4\\x35\\x0a\\xaa\\xab\\x5c\\xec\\x2c\\xd8\\x85\\xbe\\x1d\\x63\\x47\\x5e\\x3b\\xab\\x7c\\x7c\\xdc\\x8d\\x65\\x61\\x73\\xb8\\xd4\\x56\\x02\\xf4\\xb3\\xd2\\x81\\x24\\x1d\\x17\\x19\\x03\\x27\\xb2\\x4c\\x38\\x36\\xb1\\x93\\x11\\xa1\\x93\\xaf\\x86\\xa6\\x76\\x8f\\x04\\x85\\x2a\\xb0\\x6e\\x67\\xc8\\xea\\xd5\\x91\\xcd\\xcb\\xf3\\x78\\x9c\\x61\\x32\\x09\\xcf\\xe0\\x3f\\x58\\xc0\\x30\\x5f\\x63\\x20\\x3b\\x48\\x7f\\x7c\\x5f\\xc0\\x98\\x87\\x7e\\xc9\\x8a\\x68\\x9c\\x9d\\x35\\xaf\\x81\\xe8\\x40\\x78\\xd6\\x6f\\xe9\\xe4\\xec\\xcb\\xb1\\xcc\\x6c\\x71\\x99\\x1c\\x03\\x01\\x7b\\xb8\\x11\\xf4\\x1f\\x07\\xde\\x68\\xfa\\xd1\\x94\\x14\\x60\\x61\\x32\\x4f\\x3d\\x0e\\xf2\\x17\\xa5\\x4c\\xf3\\x8f\\x7a\\x62\\x5a\\x38\\x86\\x9f\\x67\\xd0\\xb7\\x43\\x1d\\xf9\\x37\\xcd\\xe3\\x49\\xc1\\x75\\xce\\x8b\\x26\\xac\\x88\\xd3\\x9a\\x43\\xe2\\x79\\xb0\\x18\\x76\\x4e\\xfa\\x4d\\xd6\\x27\\xcb\\xf5\\x91\\xf6\\x20\\x9c\\x4a\\x5b\\xb1\\x9e\\xbf\\xa7\\xc7\\x13\\x55\\x92\\xd0\\x2e\\x50\\x1c\\xae\\x5e\\x6b\\x31\\xc9\\x0e\\x72\\xfa\\xab\\x47\\xf7\\xdc\\xed\\x2c\\x48\\xad\\xf8\\x84\\x43\\xb3\\xed\\xe6\\x0c\\xef\\xb0\\xd6\\x37\\x9d\\x69\\x22\\xec\\x43\\x7f\\x08\\x6b\\xad\\x62\\x17\\xd4\\xd4\\xff\\xef\\x18\\xe2\\x25\\x23\\x66\\x4b\\xf4\\xe9\\xca\\x1e\\x65\\xa2\\x8c\\x2a\\x7a\\x60\\xc5\\xf6\\xbc\\x90\\x6b\\x73\\x7c\\x29\\x93\\x5f\\x90\\x97\\x46\\x30\\x48\\x57\\x5b\\xef\\xd1\\xa2\\x54\\x9d\\xc4\\x74\\xb1\\x3e\\x68\\xae\\xec\\xf1\\x66\\x04\\x3e\\x07\\x5a\\xac\\x51\\x55\\x40\\xf8\\x31\\xb4\\x30\\x66\\xce\\xf9\\x32\\xe6\\x3d\\xcd\\x5b\\x37\\xb6\\x15\\x78\\xc3\\x5b\\x09\\xe4\\x5c\\xc2\\xa8\\xde\\xf5\\x71\\x03\\xed\\xfc\\x5f\\x64\\x98\\x31\\xa8\\x96\\x1f\\xe4\\xa4\\xb3\\x72\\x1f\\x1d\\x6d\\xf4\\xea\\x9f\\x03\\x38\\x81\\xb4\\x74\\x30\\x0e\\x0f\\x12\\xcb\\x9c\\xd3\\xba\\xbd\\xcf\\xfb\\xb9\\x18\\xdd\\x9b\\xb0\\xe2\\xf5\\xb2\\x10\\x33\\xe4\\x30\\x23\\xa0\\xd2\\xe6\\x6d\\xa3\\xab\\x0f\\x07\\xee\\x98\\x8b\\x16\\x88\\x9c\\xa5\\xd5\\x1a\\xbd\\xc0\\x5f\\xde\"},\n{{0x33,0x47,0xdc,0x47,0xbb,0x3d,0x2e,0x5d,0x02,0x86,0xac,0x06,0xa5,0x4f,0xd9,0x21,0xc9,0xe9,0x6b,0x68,0x99,0x86,0x2a,0x54,0xe5,0xcc,0x81,0x15,0xd3,0xd0,0xba,0x99,},{0xd0,0x0b,0x64,0x5d,0x86,0xdb,0xb7,0xe5,0x24,0x75,0x7e,0xc7,0x78,0xc6,0x2b,0x7e,0x60,0xd0,0xb6,0x57,0x68,0x83,0x33,0x8c,0x9b,0x67,0xc2,0xc7,0xe4,0x50,0x92,0x68,},{0x9a,0xb4,0x29,0x9b,0x17,0x72,0x93,0x44,0x75,0x0b,0x69,0xdc,0x60,0x37,0x36,0x8c,0x98,0xf4,0x7b,0xe6,0x27,0xfb,0xd9,0xad,0xfd,0x8d,0xb3,0x9f,0x99,0x64,0xdd,0xb7,0xbc,0x92,0xd6,0x74,0xc7,0xbe,0x74,0x07,0x56,0x39,0x6b,0xaa,0xee,0xac,0xbf,0x74,0x94,0x7b,0x61,0x91,0xc6,0xed,0x1f,0x5d,0x32,0xa6,0x3d,0xf3,0x6d,0x54,0x26,0x01,},\"\\xe2\\xf4\\x8e\\xdf\\x9d\\x64\\x33\\x20\\xab\\x99\\x1c\\x8f\\xf9\\xf6\\xaa\\x75\\xfe\\x06\\x6e\\x7d\\x88\\xff\\x1e\\x47\\x2a\\x5a\\xc9\\xc5\\x18\\xde\\x1f\\xb6\\x29\\x83\\xb1\\x00\\x7f\\x64\\x22\\x80\\x91\\x17\\xbd\\xbe\\x8a\\x0e\\x57\\x87\\xf6\\x6b\\xb0\\x57\\xd2\\x7f\\x12\\x9a\\x20\\x0b\\x40\\x57\\x6e\\x17\\x19\\xcf\\x9e\\x98\\xfc\\xb7\\x2a\\xf9\\x4b\\xb8\\x2e\\xe7\\x0f\\x37\\x19\\xa2\\xe2\\xcd\\x9b\\x64\\x77\\x7c\\xea\\x5e\\x44\\x64\\x59\\x87\\x4b\\x74\\xbf\\xbf\\x56\\xb2\\xd2\\x52\\x64\\x00\\x59\\x2a\\x9b\\x45\\xa5\\xcb\\x79\\x80\\x92\\xb6\\x0a\\x81\\xb7\\x1d\\x82\\xf0\\x68\\x5f\\xae\\x7f\\x81\\x0b\\x52\\xd2\\x26\\xad\\xac\\x7a\\xd8\\xa9\\x18\\x3f\\x09\\xfe\\xbe\\xe9\\xd2\\x50\\x46\\xc0\\xfe\\x30\\x66\\x81\\xac\\xe2\\xbf\\xf9\\x1b\\x34\\x82\\xb0\\xbc\\x30\\xb2\\x02\\x1c\\x43\\x41\\x64\\x5d\\x67\\x51\\x34\\xfe\\x30\\x81\\xc5\\x1e\\x5c\\x59\\xe4\\x0b\\x37\\x5a\\x14\\x34\\xf6\\x3b\\x42\\x6e\\x30\\x53\\x0d\\xa9\\x35\\x3b\\xb2\\xa9\\x42\\x32\\x20\\x43\\x4a\\xe5\\x9d\\x7b\\x6f\\xdc\\x14\\x3f\\x49\\x82\\xeb\\x8c\\xfa\\x77\\x51\\xb7\\x5b\\xf3\\xe9\\xc9\\x13\\xc7\\x3b\\x76\\x0b\\x07\\xd3\\x95\\x31\\x0c\\x59\\xf3\\xb7\\x7e\\xbf\\x12\\xed\\x2d\\x7b\\x03\\x59\\x0d\\x33\\x17\\xaf\\x17\\xdf\\x42\\x1e\\x78\\xb0\\x84\\x9f\\xd5\\x6d\\x94\\x5c\\x56\\x96\\xa0\\x40\\xfc\\xaa\\x78\\xa9\\x3e\\xcc\\x16\\xd5\\xac\\x34\\x45\\x06\\x36\\x11\\xf3\\x01\\x3e\\x9a\\x3a\\xe2\\xe1\\xc2\\x70\\xdd\\x01\\xa8\\xff\\xe3\\xe6\\x12\\x6b\\xc1\\xe4\\xc9\\x5f\\x65\\x47\\xa8\\x65\\x1f\\x26\\xb6\\x40\\x4e\\x39\\xee\\x4c\\xe7\\x61\\x89\\x18\\xf3\\xf9\\x37\\xa5\\x25\\x73\\xec\\x27\\x7b\\x77\\x1e\\x91\\xad\\x09\\x6f\\xa1\\x5c\\x7a\\x34\\x0a\\x80\\x9b\\x47\\x03\\x18\\xa4\\x63\\x64\\x23\\xeb\\x48\\x88\\xa1\\x21\\x60\\xc4\\x66\\x3f\\xce\\x29\\x96\\xd6\\x38\\x89\\x6c\\x83\\x9b\\x2c\\x7a\\xd4\\xb3\\xa9\\xb2\\xe6\\xcb\\x71\\xe9\\x12\\xfe\\x39\\xb8\\x43\\xc6\\xe0\\x83\\x2e\\xca\\x22\\xde\\x93\\x8b\\x50\\xae\\x86\\x3e\\x48\\x58\\x2c\\x10\\x85\\x12\\x32\\xf7\\x5e\\x52\\x25\\xb8\\x89\\x6b\\x5a\\x47\\x0f\\x81\\x8b\\x6f\\xa3\\x9e\\xb7\\xbb\\x59\\x03\\x57\\x67\\x86\\x12\\xd2\\x5f\\xe1\\xa4\\x0e\\xa1\\xb9\\xd7\\x1d\\x88\\x09\\x09\\xc1\\xbd\\x4a\\xd1\\x76\\xcc\\x0c\\xef\\xfd\\xce\\xe7\\x09\\x9e\\x78\\x82\\xa7\\xc9\\x07\\xe4\\xbe\\xc7\\x98\\x30\\xc6\\x77\\x1a\\xcb\\x89\\x94\\x4b\\xd5\\x4a\\x51\\x65\\xb3\\x18\\x70\\x91\\x69\\x21\\xb1\\x98\\xac\\xd4\\x43\\x2e\\x7e\\xed\\x8c\\xe1\\xde\\xb3\\x45\\xb1\\x07\\xed\\xa7\\x60\\x26\\x6f\\xcb\\xda\\x3b\\xa5\\x22\\x94\\x00\\xa3\\x03\\x60\\xa4\\x64\\x5c\\xa8\\xdb\\x38\\xc3\\xd5\\xf4\\xa8\\xde\\xf1\\x57\\xbb\\xdb\\xbf\\x2c\\x1f\\xa1\\xdc\\x6b\\x05\\x14\\xa4\\xf5\\xa0\\x36\\x4f\\x92\\x83\\x81\\xb4\\x0f\\x95\\x57\\x9a\\x26\\x46\\x7f\\x22\\x82\\xa8\\xa2\\x55\\x75\\x84\\x02\\xac\\x9c\\xa8\\x0e\\x89\\xb9\\xcc\\x68\\x60\\xa3\\x4b\\xb3\\xf9\\x0c\\x32\\x37\\x65\\x7c\\x21\\x29\\xea\\x48\\xc8\\x52\\xb9\\x25\\x69\\xe8\\x11\\x06\\xbc\\xe4\\x61\\xe2\\x02\\x44\\x54\\x82\\x1a\\x91\\x75\\x92\\xd1\\x99\\x1b\\x5b\\x69\\xf2\\x7b\\xbe\\x01\\x99\\x77\\x52\\x8a\\x2f\\xc0\\x11\\x92\\xc5\\x6b\\x4a\\xea\\x87\\x3c\\xf8\\xc5\\x8d\\xfd\\x7c\\xb4\\xb0\\xe9\\x17\\xe8\\x7a\\x87\\x04\\xc9\\x92\\x82\\x0f\\x98\\xd7\\x74\\x04\\xd3\\xf1\\xd2\\x05\\x0c\\x67\\x43\\xf6\\xe9\\x3c\\xdb\\x51\\xa6\\x1a\\xa6\\xf4\\x5b\\x35\\x1b\\x26\\x46\\x1d\\x13\\x29\\xf3\\x15\\x12\\x72\\xac\\x39\\x62\\x34\\xd0\\xd6\\x7c\\x17\\x8a\\xcf\\x91\\xfc\\x51\\x0d\\x86\\x42\\x9c\\x69\\xa8\\x7f\\xdf\\x10\\x11\\x55\\xda\\x8d\\x94\\xde\\x67\\x22\\x23\\x8a\\x6f\\xb1\\x70\\x16\\x86\\x2b\\x11\\xd5\\x02\\xc6\\x67\\xee\\x9c\\xa0\\xaa\\xbe\\x1c\\x20\\xb9\\x77\\x89\\xf1\\x86\\x7a\\xdd\\x78\\xb8\\xb8\\x7e\\x9a\\xb5\\x19\\x34\\xc0\\xb4\\xa1\\x6c\\x2c\\xbc\\x4d\\x2e\\xfe\\xdb\\x79\\xc0\\x5b\\x23\\xe0\\xcf\\x78\\x92\\x01\\xac\\x75\\xfe\\x07\\x6d\\x31\\x5f\\xcb\\xac\\x20\\xba\\x0d\\x31\\xe4\\xdc\\x61\\x69\\x27\\xd6\\xea\\xb1\\xb1\\xc8\\x7a\\x1c\\x9c\\x77\\x8e\\x4b\\xd2\\x85\\x29\\x58\\x74\"},\n{{0xff,0x15,0xd6,0xe7,0x4e,0x28,0xe4,0x1d,0x05,0xa8,0x66,0x3a,0x70,0x2f,0x03,0x8d,0x5b,0x85,0x78,0xc4,0x27,0x5e,0x77,0x2b,0x73,0xba,0x44,0x0b,0xc5,0xf5,0x5a,0x06,},{0x47,0x47,0xe2,0xe9,0xb8,0x26,0x37,0xb3,0x84,0x4b,0x85,0xf7,0x5b,0x59,0xf7,0x13,0x6b,0x7f,0xdb,0x1a,0x62,0xe7,0xb7,0x0d,0x6a,0xac,0x17,0xb3,0xc5,0x75,0x2f,0x2f,},{0x42,0xc1,0x29,0x5f,0xaf,0xe2,0x6d,0xe3,0xea,0x34,0x92,0x6b,0xf1,0xef,0x80,0xbc,0xaf,0xe4,0x7b,0x21,0xb9,0x0e,0xae,0xd1,0x96,0x35,0xed,0x75,0x38,0xd7,0x67,0xcb,0xf3,0xa1,0xe5,0xde,0xda,0xab,0x82,0xad,0xf7,0x51,0x20,0x37,0x3e,0x92,0x32,0x02,0xf7,0xfd,0xa0,0x82,0x67,0x84,0x29,0x2e,0xba,0x8b,0x23,0x8b,0x6c,0xb8,0x83,0x04,},\"\\xce\\x7b\\xf9\\x72\\x84\\x4f\\x51\\x84\\xae\\x8e\\xac\\x87\\xb1\\x2b\\xe9\\x20\\x2c\\x72\\x39\\x96\\x1d\\xc2\\x3c\\xd4\\x1f\\xf5\\x5b\\x9b\\xfa\\xac\\x0c\\xc0\\x6f\\x3f\\x1d\\xec\\xfa\\x95\\x71\\x09\\x5c\\x8e\\x82\\xb4\\xeb\\x6f\\x8a\\x1c\\x52\\xc8\\xd3\\xde\\xaa\\x61\\xa9\\xaa\\x94\\xe2\\xec\\xd9\\xab\\x5b\\x80\\x63\\xf2\\xda\\x6d\\x80\\x15\\xdf\\x0a\\x51\\x44\\xfa\\x3a\\x48\\xe3\\x05\\xad\\x9f\\x41\\xea\\xa1\\x1c\\x4d\\x74\\x85\\x43\\x74\\xec\\xbf\\x38\\x2e\\x30\\x02\\x57\\x9a\\x9a\\x24\\x9e\\xfa\\x1e\\x1c\\xa0\\x4d\\x33\\x84\\x47\\xd7\\xf2\\x20\\x67\\x03\\xe6\\xca\\xbf\\x5b\\xbd\\x33\\x2b\\x42\\x57\\x3b\\xcb\\xd3\\xb6\\xf7\\x1b\\x7c\\x3b\\xf7\\x3d\\x4c\\x77\\x4a\\xa0\\x1e\\x86\\x68\\x41\\x43\\x28\\x29\\xd0\\x7f\\x96\\xe1\\xf6\\x1a\\x20\\x21\\x6d\\x96\\x8c\\x90\\xe3\\xed\\x11\\xf6\\x63\\xf7\\xd6\\x27\\x16\\x22\\xfe\\xfc\\xf3\\xab\\x68\\xf3\\x44\\x32\\x85\\x15\\xd5\\xcc\\xe2\\xce\\x85\\xe8\\xbf\\x3d\\x1d\\x09\\x04\\x36\\x92\\xe1\\xfb\\x8b\\xbd\\xdc\\x07\\xa4\\xab\\x0a\\x3e\\xef\\x8c\\xa6\\xa4\\x20\\xe7\\x4b\\xff\\x8d\\x3d\\x71\\x55\\x96\\xaa\\x82\\x16\\x82\\x95\\x4f\\xe8\\x96\\x29\\xae\\x27\\xc1\\xbb\\x03\\xb6\\xaa\\x09\\xf3\\x6a\\x39\\xa3\\xe3\\x7b\\xa9\\x81\\x32\\xf4\\xe2\\x38\\x88\\xf9\\xf3\\x35\\xe7\\xbe\\xaa\\x2c\\xb2\\x72\\x7a\\xcc\\x3d\\x27\\x77\\x30\\x9b\\x85\\x29\\x52\\x32\\xe5\\x4d\\xa8\\x8e\\xbb\\x6f\\x10\\x53\\xd6\\xde\\x79\\xac\\x66\\x09\\x85\\x2e\\xb9\\x3a\\x0a\\x35\\xbc\\x1a\\x7b\\xdc\\x22\\xd6\\x28\\xbc\\x86\\x12\\x4d\\x69\\x6c\\x3f\\x98\\x28\\xb6\\xf8\\xb9\\xaa\\xde\\x1a\\x65\\x21\\x61\\x77\\x48\\x6c\\x25\\x2a\\x4b\\x42\\xd9\\x0a\\x4e\\x0f\\xea\\x20\\x93\\x48\\x9e\\x24\\x4d\\x80\\x8e\\xf7\\x02\\x1a\\x97\\xd5\\x60\\x8c\\x0a\\xe1\\xd6\\x63\\xc7\\x75\\xe8\\xbb\\x9e\\x9a\\x73\\x15\\xf1\\xfe\\xb6\\xd1\\x29\\xb5\\xa5\\x41\\xea\\x59\\x29\\xa2\\xc6\\x33\\xb6\\xd8\\xc3\\xc4\\x54\\x41\\x71\\x79\\x46\\xcf\\x87\\x3e\\x9b\\x4c\\x51\\x21\\x80\\x13\\x5d\\x54\\xf0\\x53\\xab\\xe4\\x4c\\x6d\\xf3\\x9b\\x7b\\x06\\x2e\\xf7\\x24\\x01\\x62\\xcb\\xd0\\xb8\\x51\\xaf\\xe5\\xf9\\x15\\x36\\xa9\\x49\\x94\\x18\\xe8\\xbf\\xf4\\x99\\x64\\x73\\xd8\\x05\\xeb\\xc1\\xae\\x48\\xda\\x2d\\x0b\\x12\\x9e\\x8e\\x82\\x52\\xf1\\xd5\\x3c\\x32\\x8f\\x32\\xdb\\x25\\x2d\\xe3\\xbe\\xfb\\xe5\\xf3\\x12\\x80\\x12\\x11\\x43\\xa8\\x00\\x4a\\x4c\\xae\\x63\\x1c\\x82\\x74\\x09\\xe5\\x20\\xe3\\x94\\xcd\\x0f\\x89\\x50\\xcd\\x4c\\x3c\\xf3\\xf3\\xdb\\xd4\\x95\\x2a\\x4d\\xfe\\x69\\x87\\x5f\\x56\\x53\\x89\\x06\\x1a\\xd0\\xa0\\xce\\xe6\\xb6\\xaf\\xf0\\x9c\\xec\\xa2\\x6d\\x99\\x0e\\x89\\x6a\\x2a\\xba\\x9f\\x3b\\x26\\x01\\x5b\\x63\\x42\\x37\\x68\\x68\\x4c\\x03\\xed\\x0d\\xe6\\xce\\xe7\\xac\\x5b\\xbd\\xf9\\xf4\\x85\\xc2\\x27\\x5c\\xd1\\x2a\\xef\\xa8\\xf9\\x07\\xb8\\x51\\xa0\\x2d\\x51\\xc3\\x4f\\x12\\x1b\\x77\\xf3\\xa5\\x6a\\x9e\\xbd\\x1d\\x65\\xff\\xe8\\x9b\\xee\\x38\\x1f\\xf2\\xa7\\x48\\x0e\\x89\\x68\\xcf\\xf2\\x5a\\xc8\\xd0\\x4e\\x14\\x9a\\x9d\\x50\\x27\\xd1\\x4b\\x88\\xf8\\xae\\x26\\x04\\xd2\\xac\\x22\\xac\\x67\\xd1\\x3e\\x90\\xad\\xa6\\x20\\xc2\\x04\\x6d\\x28\\x29\\x93\\x84\\xd0\\x95\\x9f\\xb7\\x6e\\x22\\x58\\x87\\x96\\xce\\x42\\x7a\\xae\\xaf\\x4e\\x2a\\x8a\\xae\\xc3\\xe8\\x7f\\x84\\xcc\\xd0\\x82\\x52\\x4c\\x96\\xd7\\x66\\xee\\xc6\\x6f\\x0b\\xec\\x3e\\x79\\x95\\x58\\x14\\x5f\\x09\\xd3\\x30\\x13\\x4f\\x1c\\x63\\xf3\\x70\\x53\\xcd\\x4b\\xdc\\x1c\\x37\\xfd\\xe9\\x72\\x91\\x85\\x75\\x51\\xf5\\x0a\\xc8\\xe1\\x5f\\x06\\xac\\x1c\\x73\\xda\\xa1\\xe8\\xc5\\xbc\\x92\\x77\\xe3\\xd6\\x9c\\xb4\\x4a\\x32\\x37\\xec\\x57\\xdb\\xbc\\xcf\\xdf\\x66\\x85\\xad\\xa2\\x0b\\x74\\xa1\\xbc\\x6b\\x74\\xab\\x05\\x69\\x0e\\xaf\\x9b\\xd0\\xc4\\xbe\\x17\\x04\\x2f\\x5c\\xd3\\x20\\xcd\\xd6\\x13\\xdc\\x08\\xd2\\x9a\\xf3\\x46\\xaa\\x41\\x91\\xce\\x0b\\x4f\\x85\\xbb\\x2a\\xd7\\xf3\\xba\\xc7\\x38\\xa9\\x37\\x7e\\xc6\\xb8\\x40\\x62\\xcc\\x70\\xfc\\xa9\\xec\\xfb\\xe1\\xf5\\x7f\\xe5\\xb2\\xce\\x7a\\x4f\\x73\\x9c\\x81\\xca\\xbc\\xde\\x04\\x64\\x51\\xdd\\x61\\xce\\x1d\\xbc\"},\n{{0x1e,0xd3,0x7b,0x61,0x0b,0x8b,0x35,0x41,0x7d,0x04,0xe5,0x9a,0xaa,0xda,0xc6,0x88,0xff,0x81,0xf1,0xe5,0x07,0xc8,0x9b,0x4f,0x40,0x01,0x60,0x94,0x19,0x08,0xcb,0x8c,},{0x48,0xe8,0xcb,0xeb,0x12,0x40,0xbd,0xeb,0xf0,0xa2,0xd9,0x29,0x53,0xaa,0x89,0xb2,0x82,0xc4,0x9a,0xab,0x2c,0x38,0xae,0x69,0x04,0x4c,0x51,0x51,0x5c,0x33,0x00,0xd5,},{0x86,0x08,0x81,0x5e,0x10,0x59,0x0d,0x55,0x04,0x87,0x4d,0x89,0x99,0xfd,0x6f,0x09,0x62,0x6f,0x95,0x0b,0xe2,0x0c,0x91,0x2c,0x27,0xc9,0xde,0x6e,0x79,0xb0,0xfa,0xf7,0x77,0xa5,0x33,0xbd,0x5b,0xb6,0x67,0xab,0x51,0x3a,0x49,0x45,0x8e,0xcd,0x67,0x87,0xa0,0x9e,0xc0,0xdf,0x6c,0x9c,0x9d,0x63,0x33,0xc5,0xe3,0xae,0x61,0xea,0x37,0x0a,},\"\\x1e\\x67\\x67\\xdf\\x97\\xdb\\x1c\\xfb\\x40\\x88\\xda\\x7b\\x20\\x0d\\x9f\\x59\\xec\\x8d\\xd4\\x53\\x3b\\x83\\xbe\\x30\\x9f\\x37\\x65\\x00\\x31\\x06\\x57\\x27\\xcd\\x52\\x02\\xce\\xf4\\x84\\x26\\xa5\\xf3\\xa1\\x1d\\x50\\xb3\\x81\\xf8\\xbc\\x22\\xff\\x10\\x18\\x27\\x35\\x9f\\x2d\\x0a\\x61\\x0a\\x4f\\x75\\x54\\x64\\xa0\\xc8\\x91\\xcb\\xd9\\x8d\\x2d\\xcb\\x41\\xd9\\x77\\x9d\\x28\\x8f\\xcf\\x1f\\xea\\x62\\xe5\\x21\\x63\\xae\\x67\\xe9\\x04\\x28\\xb8\\x63\\x98\\xef\\xa2\\x18\\xf1\\xb9\\x82\\x08\\x1f\\xc5\\x13\\x30\\x5f\\xd3\\xe8\\xec\\xe7\\xf9\\xac\\xb0\\xe1\\x0e\\x00\\x1d\\x2e\\xd2\\x99\\xa4\\x8a\\x80\\x87\\x0b\\x3d\\x5d\\x8a\\xb9\\x00\\x63\\x09\\xb3\\x15\\x91\\xca\\xf0\\x58\\x33\\x80\\x07\\x3a\\x2d\\xb6\\x1f\\x45\\x25\\x4a\\xb9\\x65\\xb5\\xe4\\x67\\x2c\\x4b\\xfa\\xa8\\x6e\\x33\\x6c\\x49\\x27\\x85\\x52\\x72\\x9f\\xb2\\xda\\x76\\xff\\xe5\\x02\\xec\\x61\\xe1\\x69\\x6c\\x7f\\xc9\\xef\\x19\\xf7\\xcc\\x2a\\x27\\x75\\xb2\\x97\\x00\\xcb\\x38\\x42\\x94\\x06\\x3a\\x17\\xfe\\xd4\\xfc\\x63\\x5b\\xc1\\x32\\x82\\xa9\\x0d\\xad\\x0c\\x00\\xaa\\xdb\\xcd\\x56\\x9f\\x15\\x6a\\x85\\x4f\\x8b\\xa9\\xe7\\xd6\\x07\\xd2\\x0f\\x2e\\x9e\\x53\\x37\\x98\\x11\\x61\\xd8\\x04\\x64\\x46\\x68\\xd0\\x64\\xfa\\x63\\xdc\\xeb\\x9f\\x58\\x01\\x35\\x3d\\x0a\\xb9\\xf4\\x1d\\x1d\\x8b\\xdc\\x76\\xc1\\x3a\\xb2\\xf0\\x23\\xea\\x01\\xad\\xbc\\x4c\\x81\\x68\\xd9\\x39\\xe9\\x8f\\x64\\xfd\\x89\\x19\\x38\\x4a\\xbe\\x76\\x70\\x92\\x63\\xc0\\xcd\\x7c\\x3e\\xfa\\xdc\\x28\\x01\\xcc\\x4a\\xbd\\x80\\xa0\\x9b\\xb3\\xed\\x6b\\xb7\\x8c\\xd6\\x20\\x96\\x9c\\xd3\\x5c\\x6a\\x3a\\x5d\\x01\\x48\\x5e\\xad\\x4c\\x45\\xeb\\xb6\\xac\\x6a\\x83\\x21\\x2a\\x7c\\x76\\x67\\x54\\x27\\xb2\\x1d\\xa8\\xa7\\xa5\\x04\\x7b\\x30\\xa6\\x10\\x0c\\xda\\x02\\x47\\x6c\\x18\\x6e\\x6c\\xe4\\x0d\\x27\\x68\\xa9\\x42\\xc9\\xf8\\x73\\x05\\xe9\\xd3\\x63\\xb5\\x24\\xc0\\x09\\x4a\\x9e\\x2e\\x29\\xf5\\x85\\x89\\x4c\\x0a\\xdb\\xfc\\xd6\\x06\\x90\\xfc\\x7f\\xb0\\xa9\\xc7\\x17\\xcf\\x43\\xb4\\x84\\xfd\\x45\\x15\\x1b\\x13\\x04\\x16\\x9c\\x26\\x92\\x1d\\xb2\\x27\\x6e\\xc0\\x5a\\xd2\\x2a\\xd1\\x66\\x85\\x4f\\xd2\\xf9\\x40\\x85\\x77\\x8c\\x47\\x0d\\xc4\\x52\\xe5\\xcf\\xa4\\xae\\xe0\\x4f\\xac\\xb7\\x70\\x52\\x6e\\x1f\\x24\\x8d\\x3d\\x15\\xc2\\x72\\x80\\xfd\\xfa\\x1f\\xd2\\xc1\\x04\\x4b\\xcb\\xc8\\x81\\xc3\\xd9\\x98\\x15\\xc9\\x7f\\xbe\\xa4\\x61\\x10\\xbe\\x02\\xda\\xb7\\x74\\xf3\\xa6\\x10\\xe5\\x80\\x2a\\xbf\\x36\\xa4\\x98\\x75\\xc6\\x82\\x63\\x8e\\x0a\\xe4\\xcc\\x82\\x77\\xc5\\xe9\\xaa\\x73\\x07\\x44\\x5e\\x6b\\xbc\\xbe\\x54\\x9e\\xec\\x2a\\x45\\xb1\\x59\\x7f\\x74\\x47\\x10\\x7b\\x62\\xe2\\xce\\xe0\\xa5\\xfc\\x51\\xbe\\xae\\x3e\\x1f\\xe9\\xbe\\xfb\\x18\\x85\\xd9\\xb3\\x0f\\x9b\\x4f\\x1f\\x56\\x20\\x6d\\xee\\x0d\\x67\\x77\\x9c\\x57\\xf4\\x84\\xc8\\xc3\\xc8\\x99\\xa5\\x15\\xa9\\xd1\\xc1\\x0f\\x60\\x59\\x84\\x0c\\x1c\\x73\\xd3\\xf0\\x5b\\xcb\\x88\\x59\\x0c\\x52\\xf7\\xda\\x39\\x18\\x38\\xdc\\x2e\\x73\\x22\\x8f\\x09\\x81\\xc2\\x89\\xa4\\xc2\\x7f\\x0c\\x75\\x7f\\xaf\\x7b\\x3b\\x89\\x14\\x6e\\x33\\xda\\xfa\\x49\\x0d\\x9e\\x0f\\x92\\x75\\xb0\\xcf\\xa6\\xa7\\x71\\x0a\\x73\\x83\\x14\\x59\\x59\\x5b\\xf7\\x32\\x11\\x2b\\x62\\xfc\\x86\\x4c\\xa4\\xc8\\x29\\x78\\x4a\\x3f\\x16\\xee\\xc4\\xe1\\x8f\\x93\\x69\\x18\\xa7\\xb9\\x89\\x16\\x69\\xe9\\x33\\x22\\x3f\\x74\\x5f\\xda\\x56\\x2b\\xc0\\xa4\\xe6\\x1e\\x3d\\x14\\xea\\x45\\xdf\\xc3\\x27\\xe2\\xfc\\x0c\\xdf\\xe6\\xf2\\xf9\\x75\\x46\\xc9\\x0f\\xce\\x82\\xf5\\x22\\x29\\x14\\x80\\x11\\x1a\\x1e\\x6b\\x93\\x88\\x27\\x2c\\x0b\\xe2\\x8d\\x20\\xed\\x84\\xbb\\x84\\xd4\\x9b\\xc1\\x99\\xcd\\x59\\x99\\x48\\xb8\\xf2\\x03\\x9d\\x07\\x82\\x7a\\x3f\\x40\\x75\\xd3\\xa6\\x7e\\xe5\\x72\\xa0\\x13\\x79\\xa3\\x62\\x13\\xfe\\x11\\x6e\\x76\\x8b\\x41\\x14\\xe8\\xa4\\xb3\\x13\\x4c\\x38\\x18\\x96\\x07\\x72\\xd7\\x27\\xb0\\xca\\x6f\\x7c\\x99\\x7c\\xa9\\x98\\x43\\xb7\\xeb\\x02\\xff\\xc0\\x13\\x97\\x1c\\xbe\\x0e\\x6e\\x60\\xd4\\x97\\x73\\xf1\\xe8\\xc0\\xb3\\x06\\x06\\x13\\x1c\\xb1\\x0c\\x3e\\x04\"},\n{{0x84,0x36,0x44,0x78,0xec,0x94,0xbd,0x25,0xc4,0xbd,0xb8,0x2d,0x29,0x62,0x29,0xe6,0xda,0xce,0x2b,0x13,0x59,0xd6,0xd2,0x1b,0xe2,0xb3,0xaf,0xcd,0x7b,0xda,0x19,0xc7,},{0xa1,0x81,0x4f,0x8c,0xe0,0xfc,0x3b,0x23,0x60,0x93,0xa5,0x0f,0x46,0x8c,0x13,0x16,0x21,0x1f,0xe6,0xc5,0x2e,0x23,0x45,0xd9,0xf0,0x76,0x6b,0x36,0x88,0xa0,0x3c,0xad,},{0xb4,0xc2,0x32,0x1a,0xde,0x3c,0x19,0xed,0x4e,0xd4,0xc6,0x39,0xd5,0xa4,0xd6,0xf2,0xbe,0x8e,0x2f,0xb1,0x3b,0xb7,0xbd,0x62,0x5a,0xd6,0xdc,0x87,0xe2,0xc2,0x0f,0x93,0xad,0x6b,0xe7,0xb7,0xe4,0x27,0x11,0xa8,0x78,0xdb,0x9d,0x76,0x05,0x4b,0xfd,0x7b,0xc2,0x5e,0x37,0x74,0xa9,0x3d,0xa1,0x54,0x3c,0x9b,0x4f,0x66,0x33,0xb0,0xbe,0x09,},\"\\x7b\\xb7\\x29\\x3d\\xe5\\x5f\\x05\\x8f\\xb2\\xec\\x22\\xb6\\x87\\x26\\x05\\x43\\xdc\\xaa\\x90\\xf1\\x40\\xb9\\xf4\\x5e\\xdd\\xd4\\xbc\\x22\\xe4\\x09\\x77\\xe0\\x0e\\xd3\\x3c\\xd1\\xef\\x1b\\xba\\x13\\xc1\\xd0\\x99\\x08\\x59\\x00\\x55\\x69\\xa8\\x07\\x67\\xe4\\x86\\x4a\\x2c\\xd2\\x88\\xc8\\x13\\x93\\xe0\\x4a\\xd9\\x71\\x78\\x2e\\x2b\\xc4\\x93\\x10\\x8c\\xbe\\x80\\xda\\xcf\\x0b\\x7b\\x9c\\xd5\\x34\\x98\\x84\\x07\\xa4\\xf9\\x32\\x7e\\xc8\\xe9\\xc4\\x04\\x32\\x84\\xef\\x6e\\xe5\\xa2\\x6a\\x5b\\x41\\x77\\x65\\xd3\\xea\\xbb\\x48\\xa0\\x07\\xe7\\xc7\\xf3\\x29\\x87\\xd7\\x0a\\x13\\x9a\\xc4\\x16\\x78\\xcd\\xf7\\xa5\\x5c\\xb8\\x0c\\xf9\\xdb\\x5e\\xaa\\x45\\xf3\\xde\\x0f\\xbf\\xba\\xdf\\xfc\\x40\\x99\\x63\\x70\\xe4\\x8b\\x1f\\xf5\\xed\\xd9\\x79\\x40\\xe7\\x50\\x79\\x21\\x64\\x83\\x6a\\x4a\\x5a\\xc2\\xe3\\xff\\x53\\xe4\\x8a\\x1e\\x55\\x6d\\xb9\\xad\\x0c\\x5c\\x0b\\x94\\x4f\\x4a\\xee\\x51\\x9a\\x2b\\x0a\\x88\\xbb\\x1c\\x1f\\xc7\\x45\\x45\\x24\\xcd\\x57\\xaa\\x53\\x50\\x98\\x62\\x43\\xd3\\x4f\\xc5\\x8e\\x24\\xe8\\x19\\xec\\x0b\\x85\\x45\\xd8\\xdf\\xcf\\x6b\\x20\\x31\\x14\\x41\\xd3\\xa3\\x5d\\x3e\\x71\\xb3\\xe3\\xec\\xd7\\x88\\x4d\\xda\\x84\\x33\\xa4\\x05\\xe3\\xd9\\x96\\x90\\x00\\xc8\\x20\\xa8\\x9b\\x95\\xd1\\x97\\x84\\x1d\\x98\\xae\\x73\\x4a\\x2e\\x81\\xda\\xf6\\xa7\\xdc\\xf5\\x6c\\xb2\\xfc\\x26\\xf2\\x16\\x5a\\x5f\\x42\\xb8\\x6c\\x7e\\x9e\\x5b\\x11\\x16\\x17\\x00\\xa1\\xab\\x98\\x31\\xf3\\xfa\\xe5\\x8e\\x14\\x20\\x8b\\xe1\\xbf\\x33\\xb5\\x8e\\xcc\\xe8\\x1b\\x0c\\x6b\\x7e\\x02\\xf8\\x8a\\xdf\\x9a\\xb0\\x30\\x26\\x3e\\x2c\\xc9\\xb6\\xe3\\x3e\\xbc\\xa3\\xf4\\x95\\x49\\x2e\\x32\\xbf\\xe3\\x72\\x53\\x7d\\xe6\\xc6\\xb8\\x76\\x44\\x82\\x8f\\x74\\x94\\x2a\\x02\\xb0\\x07\\xf1\\x4c\\x3f\\xc5\\xdb\\xde\\x76\\x33\\x3d\\x36\\xd0\\x76\\x31\\xb7\\xa9\\x92\\x4f\\x71\\x75\\x50\\x04\\x06\\x97\\x92\\x3f\\xa7\\xb9\\x54\\x6b\\xfb\\x02\\x17\\x02\\x4e\\xa3\\xf2\\x52\\xb5\\x15\\xb5\\xd6\\x4a\\x62\\xc4\\x8e\\x02\\x7c\\xef\\x67\\x50\\xbe\\xda\\x49\\xa0\\x24\\x47\\x03\\x9b\\x25\\x0a\\x0b\\xda\\x07\\xdc\\x06\\x24\\x91\\xa6\\x62\\xe2\\x68\\x74\\xc8\\xd0\\x0f\\x80\\xe6\\xcf\\xc8\\xb3\\x0f\\x2c\\x3b\\xf7\\x72\\x0b\\x57\\xf2\\x61\\x5f\\xc4\\x78\\xfe\\xfa\\xa6\\xd3\\x17\\x05\\xb4\\x3c\\x5a\\x54\\xf7\\x58\\x66\\x6b\\x30\\x2a\\x8d\\x34\\x95\\x31\\x31\\x94\\x1b\\x79\\x57\\x73\\x04\\x76\\x79\\x4d\\x0b\\xd9\\xd2\\xdf\\xa7\\x2f\\xd2\\x03\\xf2\\x2d\\xf5\\xec\\x6b\\xba\\xac\\xe8\\xb9\\x39\\x4b\\xeb\\xda\\xea\\xa5\\x61\\x46\\x10\\x11\\xb4\\xfc\\xa6\\x18\\x5c\\x9a\\x38\\x28\\x3f\\x54\\x03\\xfd\\xac\\x32\\x6d\\x1f\\x73\\x4c\\x6a\\x5d\\xed\\x67\\x24\\xd9\\xf3\\x84\\xae\\xbd\\x6c\\xab\\xfc\\xbe\\xc1\\x2a\\xba\\xb9\\x82\\x0d\\x08\\x07\\x32\\x51\\x5e\\x05\\x00\\xcf\\x5d\\x3e\\x2f\\x9e\\xf8\\x0a\\x4d\\x76\\x46\\xa7\\xda\\x9e\\xff\\x41\\x0f\\x50\\x7c\\x69\\x87\\x3b\\x32\\xd5\\x40\\xec\\x32\\xb2\\x83\\xef\\x31\\x79\\xa4\\xc6\\x32\\xb3\\x66\\x57\\x6d\\xff\\x05\\x8f\\xaf\\x8c\\x8c\\x70\\xbc\\x69\\xbe\\x80\\x89\\x82\\xec\\x14\\x97\\xae\\x89\\x11\\xb0\\x01\\x65\\xa6\\x66\\x95\\xf4\\xd3\\xb9\\x87\\xe7\\x39\\x0b\\x5c\\xf8\\x78\\xe3\\x5e\\x67\\x65\\x41\\x28\\x5e\\x4e\\x13\\xdf\\xae\\xb2\\xf3\\x68\\xcb\\x51\\x1b\\x77\\x8b\\x10\\x6a\\x42\\x87\\x78\\xa1\\xb8\\xf2\\xa7\\xd2\\xe0\\x93\\x51\\x9b\\xc9\\xb5\\x18\\x8e\\x38\\xc6\\x79\\x3e\\x96\\xbd\\x0d\\x30\\xe2\\xa3\\xdb\\x9e\\xe1\\x46\\x8c\\x3d\\xc8\\x7c\\xc3\\x65\\xc8\\x10\\xf9\\xdb\\xdf\\x01\\xa4\\xb5\\x14\\x21\\xf6\\xfc\\x8d\\xfd\\xa3\\xa1\\x6e\\x2d\\xa7\\xca\\x71\\x59\\xb6\\x86\\xa5\\xe1\\x67\\x33\\x89\\x37\\x88\\x2f\\xf7\\x15\\xd3\\xe7\\x50\\xd9\\x58\\xfc\\x9e\\x4b\\x1f\\x05\\x53\\x12\\x92\\x99\\xaa\\x84\\x30\\x18\\x3e\\x50\\x6c\\xd7\\xf2\\xb2\\x79\\x07\\x6e\\x0e\\x1c\\xca\\x97\\x49\\xcf\\x12\\x3c\\xe5\\x07\\xfe\\x07\\xdd\\xbb\\xc4\\xdc\\xca\\x6c\\xdb\\x9e\\xf1\\xb8\\x33\\xf6\\x1d\\x4b\\xff\\x00\\xbe\\xc0\\x12\\x15\\x8f\\x43\\x2c\\xeb\\x75\\xb4\\xf2\\xed\\xb1\\xbb\\x84\\xe5\\xeb\\xb9\\x25\\x9e\\x09\\xf9\\x62\\x5c\\xe3\"},\n{{0x00,0xdb,0x37,0xad,0x2a,0x19,0x5f,0x08,0xa0,0x84,0x40,0xd0,0x59,0x25,0x9e,0x53,0x9f,0xeb,0x40,0xb4,0x74,0x92,0x82,0x55,0xe7,0xc9,0x4e,0xbc,0x3b,0x05,0x03,0x8c,},{0x04,0xf8,0x8b,0xf6,0x39,0xe0,0xf7,0x1a,0x57,0xd0,0xd0,0xaf,0xff,0x5f,0xe9,0x7d,0xde,0x38,0x09,0xff,0x28,0xec,0x68,0xeb,0x6f,0xc4,0x23,0xf4,0xfa,0xff,0x43,0x90,},{0xf4,0xd1,0xc8,0x0f,0x5e,0x7b,0x91,0xc5,0xc7,0xa8,0x2a,0x68,0x2d,0x49,0xba,0x6f,0xb1,0x9d,0x40,0x0a,0x29,0x97,0x48,0xa0,0xc9,0x69,0xbb,0x99,0x81,0x69,0x98,0xbe,0x63,0x4e,0x84,0xda,0x78,0x58,0x1b,0x06,0xe3,0x47,0x0e,0xfe,0xc3,0x98,0x04,0xfe,0xd9,0x3d,0x29,0x73,0x9f,0x04,0x39,0xa8,0x09,0x5a,0xc4,0x0d,0x9d,0x38,0x5e,0x04,},\"\\x5a\\x94\\xf7\\x29\\xd3\\x0d\\xd8\\xaa\\xe2\\xa5\\xc8\\xc2\\x85\\x47\\xbf\\x45\\x06\\x29\\x5d\\xc6\\x1b\\xfe\\xad\\x97\\x27\\x74\\x60\\x82\\xd4\\x3b\\x0f\\x81\\x14\\xc8\\xc1\\x8c\\x5e\\xda\\xf2\\xfe\\xc7\\xca\\xe8\\x19\\x35\\x63\\x38\\xf0\\xbf\\x11\\x5a\\x17\\xb0\\x38\\xac\\xfd\\x7c\\x96\\xba\\x62\\x62\\xca\\xbd\\x57\\x10\\xfc\\x0e\\xfb\\x43\\xd1\\x3d\\xf4\\x06\\x5b\\xec\\xbf\\x1b\\x9e\\x27\\x9c\\x03\\xec\\x9b\\xbf\\xed\\x54\\xd9\\xa1\\x3f\\xe0\\x6a\\x55\\xa3\\xbd\\x05\\xc8\\x07\\x85\\x8b\\x41\\xe1\\x8d\\xbd\\xe1\\x3b\\x09\\x07\\xd4\\x03\\x41\\x32\\x26\\x2d\\x9c\\x2f\\x4d\\x2d\\x37\\x6e\\x16\\x09\\xad\\x28\\x0d\\xe2\\x0b\\xa7\\x09\\x84\\x4d\\xbd\\x12\\x95\\x02\\x57\\xf1\\xb0\\x7e\\xf8\\xcc\\x33\\x37\\xc0\\x1a\\x70\\x26\\x93\\xfb\\x4d\\x92\\xd0\\x47\\xe6\\x98\\xc3\\xa6\\xdd\\x46\\xc4\\xa9\\x2a\\x10\\xd4\\xc7\\x80\\xe5\\x2e\\x50\\x25\\xe0\\x9d\\x56\\x53\\x5d\\x7e\\xeb\\x9f\\xe7\\xf0\\x33\\xe6\\xe9\\x26\\x0a\\x68\\xf9\\xd5\\x4b\\x6f\\x37\\xcc\\x06\\x96\\x56\\xe3\\xbc\\xee\\x06\\x92\\x2b\\x34\\x96\\x81\\xa8\\xe7\\x75\\x1c\\xde\\xcb\\xe1\\xec\\xb6\\x63\\xfb\\xc6\\xf7\\xc8\\x61\\xf8\\x53\\xdc\\x31\\x0f\\x33\\xde\\xfa\\x98\\xee\\x34\\x3a\\x68\\x63\\x2e\\xc2\\x2c\\xaf\\xec\\xb7\\xf3\\x21\\x2f\\x81\\xe7\\x0b\\x71\\x84\\x3b\\x9f\\xe8\\xc8\\x6a\\x68\\xb5\\xc8\\x6f\\x03\\x22\\xd3\\x48\\xa7\\x6d\\xa7\\xf1\\xba\\x0c\\xa3\\xcd\\x7b\\x6f\\xd1\\x5f\\xf8\\x92\\x92\\xb3\\xf6\\x36\\xcd\\x08\\xcf\\x62\\x5c\\x74\\xd5\\x10\\x2c\\xab\\xb5\\x71\\xa3\\xdb\\xa8\\x6a\\x1c\\x92\\xf4\\x1c\\x72\\x03\\xb4\\x49\\x42\\xf5\\xa2\\x46\\x25\\xac\\x37\\xd7\\x7e\\x49\\xa5\\x7f\\x11\\x82\\x38\\x69\\x9d\\x80\\x7c\\x25\\x0d\\x5b\\xf4\\x6f\\x7a\\x3c\\xec\\x57\\x79\\xa6\\xe5\\xae\\x1a\\x6c\\xa1\\x60\\xcf\\xf3\\x7f\\xb3\\xb7\\x83\\x88\\xfe\\x9c\\x03\\x0c\\x40\\xe7\\x15\\x46\\x01\\x08\\x1a\\x51\\x7f\\xc0\\xaa\\x18\\x02\\xcd\\x3b\\x84\\x5b\\x94\\x6e\\xfe\\x94\\xaa\\x8b\\x9e\\x03\\xf6\\x8a\\x80\\xde\\xd0\\xdf\\xbf\\xad\\x4d\\xae\\xe4\\x0f\\xa8\\x38\\xc1\\x33\\x84\\x1a\\xe8\\xa3\\xce\\x0d\\x79\\xfa\\x8a\\x2b\\x94\\x34\\xba\\xc5\\xe1\\xda\\x6e\\x0c\\x71\\x93\\xe8\\xde\\xa4\\x35\\xa0\\x3a\\x85\\xf7\\x61\\x84\\xf7\\xeb\\xe2\\xaa\\x74\\x9b\\xe9\\x41\\x31\\x04\\xa1\\x78\\x68\\x9b\\xa6\\xd2\\x7e\\x94\\xfc\\xcf\\x61\\xeb\\x3a\\xba\\x0e\\x6a\\x5a\\x63\\xaf\\x0c\\xa8\\xf0\\x5a\\x35\\xcb\\x63\\x70\\x51\\x94\\xe4\\x4d\\x92\\x93\\xde\\x39\\x29\\xb0\\xd9\\x2b\\xe6\\xf8\\xe6\\x27\\xc3\\x50\\xa8\\x3f\\xc9\\x00\\x0a\\xa9\\x5b\\x93\\x82\\x0b\\xe9\\x79\\x5c\\x80\\xb5\\x66\\x2c\\xd7\\xb3\\x48\\x22\\x32\\x80\\x61\\x35\\x6d\\xc5\\x80\\x57\\x8d\\x1a\\x35\\xb1\\x01\\x40\\xdc\\xd2\\x48\\xe4\\x85\\x31\\x04\\xd2\\xc5\\xb2\\xc1\\x3f\\xf6\\x83\\xdd\\x5c\\x30\\x79\\x4b\\xe4\\xa7\\x68\\x58\\xaf\\x1c\\x0d\\x9a\\xf3\\x47\\xce\\x1d\\xcd\\x97\\x2e\\xe4\\x9a\\xac\\x12\\xbb\\xcd\\x89\\x9c\\x93\\x29\\x87\\x1d\\x3e\\x7a\\x06\\x83\\xd1\\x75\\x77\\x9a\\xfe\\x35\\xf2\\x6a\\x2d\\x24\\x8f\\xd7\\x80\\xea\\x85\\x1d\\xc4\\xba\\x6d\\x21\\xf8\\xa1\\x71\\xaa\\x6c\\xb8\\x69\\x7d\\x9d\\x11\\x21\\x61\\x54\\x03\\x07\\xcd\\x54\\xf9\\x31\\x77\\x5d\\x70\\xb3\\x3d\\x3b\\x6d\\xe1\\x09\\x1f\\xc1\\x75\\x05\\x31\\xc0\\x8f\\xa7\\x0f\\x7b\\xe3\\x8a\\xa1\\x10\\xd6\\x74\\x6b\\xb5\\x65\\xdb\\x7b\\x47\\x0f\\x90\\x08\\x50\\xfb\\xbf\\x1c\\x66\\x2f\\xd6\\x13\\xe4\\xf3\\xa5\\x68\\x95\\x49\\xe3\\x10\\x7e\\x9b\\x0f\\x17\\xde\\xf7\\xa5\\xbd\\x7f\\xd7\\x59\\x6c\\x4d\\x04\\xc7\\xf4\\x8c\\x77\\x9f\\xc3\\x5e\\x09\\x33\\x5e\\x1d\\xf7\\x84\\x08\\x4e\\x55\\xd8\\x55\\x1d\\x1f\\xf4\\x9d\\xe5\\xb3\\x11\\xcd\\x35\\x0f\\x34\\x7a\\x0b\\xd2\\x86\\x3a\\x2a\\x30\\xe6\\xea\\x18\\x3a\\xd2\\xe3\\xee\\xde\\xbc\\x18\\xdd\\x28\\xc6\\xa5\\x96\\xe6\\x93\\xdc\\x33\\x89\\xf7\\xd9\\x0b\\x71\\x3e\\x3a\\x85\\xa6\\x25\\x16\\x30\\x5a\\x70\\x66\\x7f\\xc1\\xfb\\x3c\\xb1\\x0e\\x8a\\x95\\x57\\x50\\x27\\x39\\x43\\xc5\\x68\\xe1\\x07\\x69\\xce\\xf7\\x81\\x99\\xdf\\x44\\x50\\xdb\\xc4\\x90\\xfe\\xf1\\xb3\\x04\\xb0\\x52\\x22\\x1b\\x2d\\xb9\\xc4\\x4f\\xe0\\x03\\x45\"},\n{{0x6c,0xa1,0xa1,0x48,0x2a,0x07,0xf2,0xa6,0xc5,0x7f,0x04,0x11,0x97,0xb3,0x4a,0x51,0x19,0xe6,0x89,0x03,0xcf,0x6d,0xfb,0x51,0x71,0x1d,0x95,0x50,0x97,0x31,0x63,0xc0,},{0x80,0x34,0xa5,0x5e,0x3b,0x6e,0xd7,0x99,0xf4,0x9e,0x2e,0x70,0x3a,0x81,0xf4,0xac,0x02,0x57,0x3c,0x44,0x5d,0x76,0x5e,0x30,0x69,0xbe,0x42,0xf0,0x9c,0xbd,0x18,0xad,},{0xdd,0x9b,0xdb,0xad,0xd9,0xfd,0xc8,0x1c,0xe2,0x30,0x28,0x8c,0x4a,0x06,0x8d,0xf0,0x7e,0x18,0xb4,0xc7,0xcc,0x51,0xc0,0xca,0x48,0x11,0xdf,0xbd,0x04,0x76,0x5c,0x56,0xbc,0x88,0x32,0x40,0xe4,0x6e,0x3a,0x42,0xc0,0x1d,0x8d,0x24,0x24,0xfb,0xc3,0x32,0xb7,0xc5,0xa1,0x7b,0xce,0xb1,0xf6,0xe8,0xda,0xd0,0xbf,0xe5,0x62,0xca,0xd3,0x02,},\"\\x08\\xfd\\x84\\x87\\x50\\x3c\\x3f\\x32\\x96\\xb6\\xf1\\xb6\\x4d\\x6e\\x85\\x90\\x6f\\xd5\\x98\\x6c\\xf9\\xc5\\xd9\\xfa\\x8a\\x59\\xd9\\x2f\\x44\\xe6\\x47\\x0a\\xf3\\x4b\\xcd\\xef\\x33\\x6f\\xfd\\xc8\\x64\\x56\\xec\\x7a\\x7b\\x57\\x61\\xf1\\xad\\xea\\x02\\x73\\x26\\x63\\x0e\\x68\\xab\\xc6\\xb8\\xcd\\x5d\\xdf\\x40\\xb6\\x41\\xa2\\x59\\xad\\x02\\x43\\x21\\xbf\\x3e\\xf9\\x8e\\x76\\x32\\x79\\x71\\x49\\xc4\\x92\\xd5\\x35\\x94\\x75\\x2c\\x55\\x0d\\xfb\\xc4\\xfa\\x6b\\xf4\\x71\\x76\\xf4\\x23\\xa2\\x70\\x56\\x93\\x94\\x7a\\xa9\\x0d\\x68\\xdd\\xc8\\xef\\xb6\\xcb\\x9d\\xbe\\xca\\xfd\\x28\\x30\\xd0\\x4f\\xd9\\x3b\\x1e\\x9e\\x7c\\x12\\xb9\\x3e\\x0d\\x0f\\x3e\\x26\\x34\\x90\\x0f\\x25\\x86\\x0d\\xda\\xdb\\xae\\xce\\x17\\x80\\xff\\x2d\\x3f\\x3d\\x9f\\xb8\\x38\\xfd\\x0d\\x5d\\x66\\xf8\\xaf\\xb3\\x05\\xff\\x1a\\x1a\\xed\\xca\\x2b\\x97\\x4b\\x63\\xe4\\x3f\\x5b\\x3c\\xc9\\xdf\\xed\\x1b\\xcf\\x11\\x99\\x91\\x76\\xed\\x95\\x85\\xac\\x82\\x9b\\xc6\\x79\\x4e\\xf3\\xac\\xd8\\x72\\xe8\\xd2\\xe9\\x26\\x08\\xb3\\x20\\xf8\\x94\\x99\\x6a\\x56\\x2e\\x1e\\xb1\\x77\\xe2\\x1b\\xe5\\x7c\\x22\\xc4\\x1e\\xc2\\x59\\xa3\\xdf\\xf9\\xc7\\xc9\\x49\\x1d\\xb8\\x38\\xd7\\x6c\\xf9\\xb0\\x38\\x31\\x11\\x59\\x8e\\x35\\x7f\\x44\\xba\\xbe\\xbf\\x12\\x1b\\xdb\\x24\\xee\\x9d\\x55\\x7b\\x7d\\x5a\\xf4\\x91\\xa0\\xa0\\x36\\x5c\\x90\\x36\\x1f\\xe4\\xf7\\xe3\\xd1\\x3a\\x17\\xda\\x3a\\x39\\xfd\\x43\\xf6\\x90\\xdf\\xb0\\xb2\\xd8\\x60\\xca\\xb4\\x19\\xf7\\x75\\xab\\x71\\x52\\xcd\\xc8\\xf2\\xaf\\xdc\\x50\\xe8\\xd5\\xda\\x5d\\xa0\\x17\\x06\\xee\\xa2\\xa2\\xff\\xad\\x4b\\xab\\xee\\x8b\\x03\\xda\\x33\\x6a\\x4d\\x84\\x3d\\x9d\\x7e\\x0a\\x93\\xf3\\x6a\\x92\\xe6\\x61\\x0a\\x36\\x8b\\x63\\x13\\x3f\\x05\\xa3\\xfd\\xc5\\x5e\\x3e\\x1a\\x44\\x0b\\x0f\\x87\\xa5\\x33\\x64\\xc1\\xd3\\x72\\x42\\xc5\\x7a\\x10\\x9e\\x6d\\xf6\\x93\\x45\\xb0\\x1c\\x21\\xc1\\x08\\x9e\\x79\\x0a\\x66\\xf4\\xf3\\x38\\x0d\\x3b\\x76\\xff\\xb4\\x20\\xdf\\xe1\\xe6\\x20\\x0e\\xac\\xe5\\x79\\x26\\x5a\\x42\\x7f\\xbd\\x35\\x55\\x14\\xef\\x95\\x3e\\x1a\\x6e\\x96\\x8e\\x37\\x02\\x1b\\x3c\\x6a\\x29\\x0d\\xcd\\x02\\x93\\xda\\x67\\x68\\xda\\xd7\\xc6\\x63\\x11\\x63\\x30\\x51\\xc0\\xac\\xcb\\x0b\\x91\\x65\\x46\\x4d\\xfd\\xdf\\xde\\xd2\\x3b\\xd1\\x3e\\xf9\\x08\\x74\\x4f\\x9c\\x21\\x11\\xdc\\x15\\x31\\x42\\xd2\\xf1\\x05\\x34\\xd8\\x93\\xfe\\x0b\\x54\\x5f\\xec\\x53\\xfd\\xb3\\xb3\\x5b\\x51\\x83\\x98\\xb0\\x2a\\xb2\\x17\\x91\\xfa\\x97\\x7e\\x30\\xcf\\x4b\\x40\\x4e\\x7a\\x29\\x9d\\x37\\x87\\x10\\x8b\\x83\\x6a\\xa0\\xd5\\x9c\\x11\\x4f\\x1f\\x36\\x71\\x9a\\x7a\\xcf\\x85\\xac\\x99\\x4d\\x9c\\xb7\\x23\\x06\\xf2\\x58\\xf7\\x8a\\xc0\\xa3\\xb6\\xc0\\x53\\x43\\xe0\\xb7\\xa9\\xaa\\x72\\x6e\\x52\\x26\\x7e\\xdf\\x97\\xf4\\x97\\x2f\\x76\\x64\\xf4\\x37\\x20\\xad\\x33\\xce\\x6e\\x61\\x54\\x40\\xe3\\x65\\x37\\xcb\\xc5\\x69\\xbd\\x6f\\xf9\\x4f\\xfd\\xae\\xa5\\x1e\\x06\\x02\\x9d\\xae\\x78\\xc5\\xb9\\x15\\xc5\\x37\\xca\\xea\\x6f\\x15\\x04\\x14\\x79\\x79\\xb8\\xaa\\xae\\x0b\\xcd\\x96\\x18\\x43\\x7e\\xbe\\xd0\\xb5\\x5e\\xfa\\xec\\x32\\x0e\\x84\\xc7\\x59\\x59\\xa3\\x7a\\x26\\x0a\\x02\\xd4\\xef\\x1b\\xb6\\x26\\x41\\x52\\x0f\\x1a\\x03\\xdd\\xea\\x8c\\x4c\\x1d\\xe8\\xd7\\xfa\\xc5\\x8d\\xa4\\x08\\xb0\\xab\\x47\\x57\\xa1\\x35\\xf1\\xd0\\x75\\xc9\\xf7\\xc9\\x9f\\xb9\\x9d\\xb9\\x42\\x7c\\xe9\\xb0\\xd6\\x26\\xcb\\x1a\\xc1\\x89\\xad\\x86\\x63\\xd7\\xa7\\x14\\xfb\\x5c\\xd1\\x58\\x5c\\x3b\\xf9\\x9a\\x0a\\xa4\\x6d\\x76\\x39\\x78\\xd0\\xb1\\x2d\\x65\\xc4\\x38\\xbb\\xb7\\x3f\\xea\\xa5\\x1b\\xa2\\x6a\\x45\\x9e\\x7b\\xea\\x25\\x43\\x94\\x66\\xc0\\x86\\x13\\xe4\\x25\\x40\\xc8\\xc6\\xd5\\x43\\x67\\xf2\\x21\\xfc\\xce\\x0c\\x5e\\xb6\\xaf\\x2f\\xaa\\x18\\x1e\\xa2\\x15\\x21\\x80\\x9b\\xe7\\x56\\x49\\xcf\\x8d\\xee\\x76\\x71\\xdb\\x7f\\x94\\x8f\\x34\\x6c\\xbd\\x03\\x02\\xbf\\x9a\\x06\\xea\\xbc\\x72\\xe2\\xe5\\x12\\xb3\\xdf\\x88\\x5f\\x6d\\xaa\\x39\\x8f\\x93\\xe3\\x6d\\xae\\x2d\\x6a\\x04\\x47\\x81\\x21\\xf9\\x77\\x87\\xd4\\xce\\xdf\\xf6\\xdb\\x09\\xaa\\xf1\\x0f\\x27\\xb1\"},\n{{0x27,0x84,0xdf,0x91,0xfe,0xa1,0xb2,0xd2,0x1d,0x71,0x3d,0xe2,0xed,0xc6,0x65,0x24,0x51,0xa0,0xc1,0x59,0x54,0xb8,0x65,0x60,0x62,0xea,0x1d,0xed,0xc2,0x44,0x5b,0x2a,},{0x95,0x56,0xdb,0x53,0x70,0xf8,0xfb,0x3c,0x74,0x78,0xde,0x03,0xd2,0x3d,0xf1,0xcd,0xa9,0x6f,0x27,0x40,0x11,0x8e,0xfd,0xd3,0xd1,0xa9,0xfa,0x4c,0x3b,0xfe,0x88,0x49,},{0x17,0xd1,0x71,0xd9,0x46,0xde,0x35,0x16,0x15,0x84,0x07,0xe1,0x32,0xcc,0x1a,0xce,0xca,0xef,0xd6,0xd0,0x92,0x11,0x2b,0xe6,0x53,0x99,0x95,0x23,0xe2,0x0b,0xd4,0x95,0xf7,0xb7,0xf6,0x00,0xe8,0xd5,0xa6,0x71,0x33,0x0d,0x32,0x69,0x3d,0x60,0x19,0xc0,0x8d,0x2d,0x00,0x3b,0x17,0x6e,0x63,0x19,0xc3,0x53,0x94,0x20,0x0e,0x02,0x7d,0x0e,},\"\\x2e\\x3b\\xc5\\x4d\\xf4\\x16\\x74\\x1d\\xbe\\x79\\x16\\xad\\x25\\xf0\\x4e\\x48\\xd5\\xa9\\xd7\\x7a\\x62\\x3e\\x57\\xf9\\xcd\\x61\\xec\\xb4\\x4f\\x09\\xf7\\x68\\x33\\xeb\\x2a\\x3e\\x9a\\xb7\\xaa\\x89\\xff\\x5d\\x2d\\x56\\x0c\\x07\\x17\\x7d\\x85\\x4d\\x7c\\x49\\xcb\\xef\\x49\\x2b\\x7f\\x4f\\x7e\\x56\\x7d\\xe1\\x27\\x51\\x24\\xe1\\x6c\\xa4\\xa7\\x98\\x01\\x62\\xfa\\x0f\\xd1\\x62\\xa8\\xe5\\xfd\\x6f\\x35\\x61\\x70\\x07\\x03\\x4b\\xce\\xec\\x57\\xc8\\xfa\\xf7\\x66\\x4f\\x4b\\x3b\\xaf\\xfd\\xea\\x8d\\x8f\\xc2\\xba\\x22\\xd5\\x85\\xe9\\xe2\\xd7\\x39\\xf5\\xff\\xc9\\x9b\\x4e\\x0d\\xbe\\x9c\\x36\\x86\\x54\\x7e\\xa0\\x48\\x15\\xa5\\x9c\\x4a\\x25\\xb5\\xf2\\x39\\x06\\x68\\xe4\\x18\\xba\\x0f\\xcb\\xdf\\x4c\\x4a\\x51\\xf3\\x39\\x05\\xc7\\x4f\\xbb\\x83\\x0a\\x19\\xf9\\xbc\\x86\\x36\\xdb\\xaa\\xff\\x20\\x99\\x95\\x44\\x79\\x96\\xd2\\xe5\\xb1\\xc3\\x77\\xb4\\xcb\\x87\\xa4\\xe1\\xef\\xe1\\x2d\\xe3\\x4d\\x33\\x59\\x9f\\xf3\\x97\\xb7\\x40\\x17\\xd7\\x11\\xed\\xd3\\xe7\\x72\\x15\\x5b\\xe5\\xa4\\x40\\x6e\\x74\\xcb\\xe2\\x93\\x1e\\xf5\\x13\\x59\\xaf\\xd5\\x1b\\x5b\\x1a\\x7b\\x3e\\xa2\\x2e\\xe8\\xed\\xa8\\x14\\x76\\xbc\\xc1\\x7e\\xa7\\x68\\x0f\\x6f\\x31\\x04\\x70\\x3b\\x9f\\x2a\\x35\\xcf\\x26\\x27\\xeb\\x74\\x1d\\x1a\\x30\\xaa\\x4b\\xee\\xf6\\x57\\x9e\\xc7\\xd0\\xb0\\x7a\\x4e\\xf3\\x2a\\xbc\\xb4\\xd7\\x56\\x97\\x0f\\x70\\xa3\\x67\\x8e\\x17\\xe6\\xe5\\x73\\x18\\x90\\xae\\xbc\\x8c\\x92\\xb9\\x56\\xd4\\xb3\\xb5\\xfe\\x2a\\xdf\\xd7\\x9b\\x21\\x1a\\x18\\x83\\xdf\\xc8\\xc9\\xa4\\xb1\\xb9\\xc8\\xc1\\xbb\\x26\\x5e\\x1f\\x3d\\xd3\\x92\\x44\\x5e\\xa5\\x9b\\x59\\x0a\\x01\\x95\\x51\\xf8\\x12\\x18\\x49\\xf4\\x35\\xb3\\xac\\x1b\\x29\\x90\\x2f\\xc8\\x39\\x25\\x54\\x05\\x6b\\x93\\x90\\x3d\\x5f\\x26\\x3b\\x3d\\x54\\x08\\x43\\xd6\\xaf\\xa7\\x5a\\x2a\\xd8\\x30\\x4b\\x76\\x90\\xde\\x99\\xa7\\x34\\xc3\\xd1\\x30\\xb6\\x95\\x47\\xb1\\x8b\\x09\\xe9\\x8c\\xbf\\x25\\x27\\x30\\xe4\\xae\\xdb\\x6d\\xc4\\xb5\\x8b\\x22\\x43\\xfe\\x55\\xe8\\x09\\x39\\xd3\\x7b\\x0a\\x59\\xd7\\x22\\x26\\xd8\\xa2\\xcc\\x51\\x53\\x09\\x5e\\x15\\x99\\x4a\\xd6\\x21\\x95\\xaa\\x31\\x0f\\x2a\\x64\\x26\\x67\\x6b\\x66\\x1e\\x47\\xb9\\xfc\\xff\\xfa\\x04\\xd6\\xdc\\x62\\x5f\\x29\\xf4\\x4c\\x7c\\xf6\\x20\\xb3\\x78\\xa6\\x5d\\x23\\x83\\x44\\xb3\\x80\\x44\\x8c\\xd1\\x19\\xcc\\x7f\\x37\\x3f\\x62\\xcd\\xfa\\xd6\\x41\\x49\\x90\\x63\\x53\\xf3\\xa5\\x41\\x07\\xc5\\xdb\\xa6\\x5e\\x3c\\xc4\\x94\\xb0\\x53\\x1f\\x4d\\x64\\x74\\x93\\x63\\xf2\\x30\\x73\\x8b\\x2c\\xfe\\xed\\x98\\x35\\x20\\x22\\x7d\\xd5\\xbc\\x43\\xbe\\x59\\xb3\\x26\\x8e\\x28\\x32\\x16\\xf6\\xe9\\xc7\\x5e\\x0c\\x1c\\x71\\x27\\x2e\\x54\\xfd\\xb2\\x9c\\x78\\x58\\xd2\\x87\\xd1\\xef\\xa1\\x91\\x7b\\xe3\\x7c\\x8e\\xea\\xb5\\xe4\\x4c\\x3a\\xd7\\xb3\\x6e\\x8a\\xc9\\xf6\\x69\\x91\\xeb\\x82\\xa5\\x14\\x8e\\x59\\x72\\x03\\x4a\\xd0\\x1c\\x62\\x61\\x5a\\x45\\x15\\x45\\x79\\xfa\\x50\\x86\\x9e\\x7b\\xe9\\x87\\x6b\\x56\\x56\\xea\\xad\\x2e\\x43\\x02\\x5a\\x62\\xdd\\x13\\x4b\\x61\\x2d\\x8f\\x4d\\x5e\\xbc\\xf8\\x05\\x6e\\x19\\x8b\\x71\\x34\\x38\\xe8\\xe0\\xe3\\x47\\xca\\xfb\\xfc\\xb8\\x9e\\x39\\x4a\\xa3\\x30\\xd4\\xc7\\x88\\xd4\\x9c\\x65\\x8f\\xcf\\xc8\\x0b\\x3e\\x00\\x78\\xf0\\xe8\\xe1\\x9a\\xa9\\xb8\\xfe\\x8e\\xb0\\xba\\xb9\\x3d\\xe7\\x85\\xd0\\x43\\xe0\\xf4\\x75\\xae\\xb6\\x0d\\x62\\xe3\\x8f\\xb1\\xf8\\x38\\x4a\\x00\\xb7\\xa9\\x02\\xda\\xee\\x13\\xd2\\x13\\x62\\x69\\xe5\\x08\\x01\\xb8\\x0a\\x65\\xb2\\xf9\\x13\\xcf\\xe3\\xff\\xb3\\x65\\xd9\\xaa\\x2f\\xd1\\x93\\x72\\xa0\\xb0\\x22\\x56\\x95\\x44\\x4e\\x4b\\xc5\\x48\\x71\\xd1\\x08\\xe0\\x9c\\x7e\\x1c\\x2b\\x42\\xdc\\xbb\\xac\\xce\\x24\\xea\\x5b\\xd5\\xbf\\x1f\\xcf\\x4a\\xc6\\x97\\xa3\\xfe\\x09\\xa5\\x46\\x77\\xb7\\xa8\\xdc\\x8d\\x5e\\xec\\xb8\\x6c\\xc7\\x92\\xee\\x9b\\x6f\\xea\\x2d\\xe1\\x6a\\x47\\x32\\x69\\xfd\\xc6\\x5d\\xbb\\x73\\xc2\\x58\\xc8\\x21\\x44\\x04\\x07\\xc6\\x42\\xf7\\xd3\\xd3\\xf5\\xc7\\x08\\xd5\\x53\\x32\\xda\\x83\\x43\\x10\\x6c\\x19\\xb2\\x30\\xa5\\x14\\x27\\xf3\\xb7\\x71\\x91\\x6a\\xe3\\x68\\x8b\"},\n{{0x4b,0xb7,0x92,0x36,0xfa,0xda,0x31,0x44,0xb6,0x82,0x96,0x49,0x9b,0xa4,0x4a,0xe5,0x34,0x07,0x4c,0xa9,0x4d,0x4b,0x58,0x1e,0x5e,0xdc,0xff,0xfe,0x13,0xb3,0xad,0x19,},{0x0a,0x83,0x99,0xf1,0xe5,0xa4,0x23,0xdc,0xf7,0xb2,0x5b,0x2f,0xb0,0xac,0x9e,0x1e,0x95,0x48,0x14,0x8b,0xea,0x84,0xd0,0x21,0xe0,0x42,0x87,0x60,0xe0,0x5d,0x58,0xbf,},{0x69,0x8f,0xab,0x68,0x51,0x0d,0xb8,0x12,0x1a,0x46,0x5d,0xb7,0x7e,0x4f,0x8b,0x58,0x6a,0xee,0x89,0x58,0x16,0xe6,0x3b,0xbf,0x0b,0xeb,0x24,0x2d,0xb4,0xe8,0x4c,0x15,0x7f,0x4b,0xe2,0x01,0xae,0x65,0x64,0x51,0x7a,0x87,0x0d,0x17,0xf6,0x0c,0x85,0x83,0x70,0xc0,0x1c,0xca,0x17,0x18,0x9c,0xb4,0x18,0x9e,0x81,0x43,0x91,0xd1,0x50,0x0d,},\"\\xad\\x81\\xab\\xf6\\x93\\x7a\\x7a\\xcd\\x7f\\x18\\x37\\xf0\\x4d\\x3f\\x10\\xe7\\x08\\xc6\\x1a\\x5f\\xbe\\xde\\xee\\x4d\\xb7\\x6e\\x15\\x98\\x57\\x03\\x84\\xe6\\xef\\xec\\xe9\\x7c\\x92\\x5d\\x2e\\x5c\\x34\\x88\\xca\\xb1\\x0b\\x5b\\x52\\xb8\\xa5\\x48\\x6e\\x99\\xd8\\xff\\xe8\\x6c\\x19\\x81\\xa1\\xf1\\xd5\\x32\\xdc\\xd4\\xd4\\x89\\xe5\\x54\\x6d\\x86\\x65\\x32\\x98\\xe7\\xa5\\xf9\\x6e\\x81\\x44\\x55\\x2d\\xda\\x8a\\x18\\xe7\\x5b\\x5f\\x73\\x55\\xb1\\x35\\x41\\x62\\x11\\x06\\xe4\\x97\\xe5\\x1a\\x56\\xd8\\x65\\x9d\\x19\\x8f\\xe1\\x00\\x37\\xe2\\x21\\x28\\xaf\\xc2\\x71\\x4a\\x2c\\xb5\\xa1\\x2c\\xc5\\xdb\\x09\\x68\\xa3\\x43\\xef\\x91\\x8e\\x87\\x69\\xdd\\x6a\\x3e\\x5b\\x9e\\x32\\xaa\\xb6\\x6c\\xb0\\x23\\x9e\\xbe\\x4c\\x17\\xf1\\x82\\x18\\xe2\\x52\\xeb\\xa6\\x16\\x2e\\x97\\x70\\x49\\xeb\\xac\\x0b\\x38\\x04\\x8b\\x3a\\xaf\\xb7\\xd4\\xd7\\x22\\x63\\xe9\\x21\\x28\\x99\\xa3\\xbf\\xe0\\xa6\\x9c\\x99\\xe2\\x2a\\xc6\\x1c\\x5e\\x96\\x12\\x45\\x63\\x03\\xd9\\x24\\x58\\xb5\\xc5\\x02\\x91\\x6c\\x34\\xa8\\xee\\x5c\\xd9\\xa5\\x82\\xa5\\x25\\x76\\xb6\\xdc\\x9d\\x7d\\x4c\\x64\\x2f\\x21\\x29\\x98\\xbf\\x33\\x58\\xd4\\xa8\\xc2\\xea\\x67\\x68\\x6e\\x55\\xd4\\x89\\xf6\\xa7\\x6e\\x6b\\x07\\x0e\\x6e\\x99\\x5a\\x74\\x53\\x26\\xc9\\xaa\\x63\\x63\\x0a\\x00\\x33\\xad\\x30\\x72\\x1a\\xa6\\x5f\\xac\\x60\\x4a\\x6e\\x58\\xc7\\x50\\x72\\x1a\\x56\\xca\\x67\\x60\\xc9\\x41\\x34\\xd6\\x11\\xfa\\xb4\\xd3\\x54\\xe4\\xf6\\x6a\\x29\\x67\\x7b\\x1a\\x66\\x66\\x01\\xe9\\xda\\x79\\xf2\\x13\\xf5\\x82\\x03\\x74\\x33\\xc0\\x7f\\x94\\xd5\\xf0\\xde\\x6a\\xa9\\xfa\\xa0\\xb3\\x2f\\x7b\\x02\\x3f\\xb9\\xfc\\x13\\x5a\\x26\\xf9\\x70\\x52\\xac\\x80\\xb3\\x9b\\x30\\x6a\\xed\\x13\\x92\\x6c\\x28\\x54\\x19\\xa2\\x9b\\x20\\xe2\\x37\\x0d\\x8a\\x09\\x5b\\x32\\x25\\x8f\\xa9\\x89\\x34\\x89\\xee\\x21\\x08\\x9c\\x75\\x2e\\xc0\\x62\\xe1\\x20\\x35\\x9e\\x2f\\x35\\x15\\x12\\x82\\x54\\xc8\\x09\\x8c\\xca\\x65\\xa9\\x1a\\x02\\x2d\\xd0\\x57\\xa2\\xc2\\xa1\\xb6\\xb8\\x5d\\x13\\x7c\\x3c\\x96\\x7d\\xcb\\x70\\xaa\\x17\\xa2\\xff\\x4b\\x37\\x67\\x8b\\x38\\x29\\x02\\xf0\\xf9\\x31\\xee\\x74\\x3f\\xc3\\x98\\xac\\x1b\\x8c\\x10\\x46\\x98\\x67\\x30\\x84\\x79\\xe4\\x0d\\x7f\\x2f\\x04\\xa4\\xb0\\x4c\\x44\\x89\\x15\\x84\\x88\\xdd\\xb7\\xbe\\xc5\\xa4\\x7f\\x20\\xff\\x35\\x6d\\x99\\xa1\\xb3\\xe9\\xd0\\xb7\\xfe\\x9b\\x0a\\xd9\\x49\\xf2\\x98\\x96\\x0e\\xfa\\x4d\\x97\\x28\\xf8\\x10\\x1c\\xf5\\x3d\\xa3\\xbf\\xfd\\xd9\\x52\\x4b\\xf4\\x40\\xa5\\x8b\\x32\\x73\\x8d\\x0b\\x62\\x93\\xe8\\x53\\xf4\\x66\\xff\\xd4\\x2c\\x56\\x07\\xac\\x9e\\x35\\x3b\\xa0\\x3e\\xfb\\x57\\x8c\\xc9\\x96\\x3d\\x8a\\xaa\\x9d\\x2e\\x26\\x6d\\x1d\\x2a\\xe9\\x29\\x6f\\x30\\xc9\\xef\\x44\\xec\\x69\\x10\\x30\\xd5\\x96\\xa4\\x01\\xb6\\xce\\xe7\\x2a\\x54\\x0e\\xf3\\xc4\\x2e\\xc0\\x17\\x42\\x66\\xba\\x54\\x01\\xf3\\x54\\xad\\xc8\\xe2\\x54\\x04\\x43\\x7e\\x88\\x8b\\x08\\x28\\x69\\x39\\xbe\\xde\\x30\\x8a\\xcd\\x30\\x32\\x7e\\xbf\\xf0\\x62\\x70\\x09\\x7c\\xc2\\x94\\xf0\\xa0\\xf3\\x9f\\x9a\\xa3\\xc6\\x65\\x85\\xca\\x47\\xe6\\x0c\\x4b\\x8e\\xa3\\x60\\x89\\xeb\\x8a\\x90\\x88\\xbb\\x18\\xb0\\x34\\x31\\x35\\xbb\\x6a\\x45\\x6d\\x2f\\x6a\\x3b\\xf3\\x90\\x72\\x3e\\x78\\xb4\\x2c\\x03\\x7c\\x2d\\xe2\\xe1\\x43\\x2c\\xaa\\xd3\\xa5\\x94\\x02\\x12\\x94\\xd4\\x3f\\x5b\\x15\\xa2\\xe8\\x19\\xdc\\x74\\x8e\\x45\\x1d\\xe4\\x00\\x68\\xc8\\xf0\\x32\\xf1\\x3b\\x47\\x11\\x37\\x70\\x12\\xed\\xcd\\x4f\\x11\\xde\\xc1\\x11\\x1b\\x12\\xeb\\x6e\\x1b\\x00\\x63\\x38\\x18\\x70\\x6d\\x71\\x32\\xd9\\x91\\xce\\x20\\xdf\\x3b\\x92\\x1d\\xb2\\x18\\x5e\\xe2\\x5b\\xb6\\xf5\\x82\\x75\\x76\\xec\\x01\\xad\\x89\\x0f\\x79\\x79\\x3b\\xaa\\x35\\x8c\\x2b\\xbf\\xb6\\xfa\\xad\\x11\\xd8\\xcb\\x0d\\x0d\\x2d\\x2b\\x29\\x81\\xfb\\xf4\\xe3\\x72\\x34\\x9f\\xc6\\xa0\\x1c\\x36\\x07\\x7b\\x59\\x32\\x5f\\x70\\x2b\\x38\\x00\\x59\\xa6\\x5c\\xf2\\xf5\\xea\\x98\\xd6\\xbd\\xc8\\x15\\x20\\x53\\xb8\\x5b\\x28\\xc8\\x1e\\x41\\x3c\\x4c\\xac\\x7e\\x22\\x6c\\x13\\xdb\\x32\\x67\\xd2\\x18\\x30\\xf0\\xe5\\x43\\x11\\x02\\x91\\x70\\x05\"},\n{{0xaf,0xd7,0x65,0xe6,0xaa,0xc0,0x14,0x6d,0x48,0x11,0xef,0x95,0x97,0xbc,0x3f,0x44,0x76,0x3f,0x03,0x37,0x8b,0x7b,0xe0,0x33,0xd6,0xe6,0x4c,0xa2,0x9d,0xec,0xae,0xf9,},{0x6b,0xb7,0x61,0x23,0xd9,0x25,0x89,0x22,0x68,0x6c,0x53,0xfb,0x69,0x17,0xb9,0xa4,0x59,0xca,0xbd,0x30,0xbe,0x8c,0x43,0x97,0x0d,0x80,0xf5,0x35,0x0c,0x2d,0x98,0xef,},{0x3d,0xc9,0x19,0x4d,0x50,0x81,0x14,0x19,0x04,0x9e,0xaa,0x07,0xb6,0x55,0xb7,0xd4,0x06,0x4b,0xcb,0x0e,0x7f,0xb5,0xf9,0xe5,0x32,0x6b,0x5f,0xc8,0x56,0xfc,0x0a,0xb8,0x70,0x59,0x73,0xae,0x10,0x01,0xdf,0x55,0x37,0x39,0x77,0xdd,0xe2,0xd9,0xb8,0x10,0x79,0x55,0x14,0x14,0xad,0xc7,0x1c,0xc8,0x52,0xd4,0x99,0xb0,0xcf,0x82,0x4f,0x07,},\"\\x18\\x3b\\x10\\x92\\xc7\\x90\\x4e\\x47\\xa1\\x42\\x03\\x17\\xa2\\x5d\\x0f\\x59\\x11\\x0a\\xa8\\x4d\\x6b\\x34\\x19\\xad\\x45\\x68\\x65\\xc4\\x3b\\x29\\xe9\\xd1\\xda\\xcf\\x75\\x5d\\x9e\\x5c\\xf9\\x4c\\x55\\x91\\xd5\\xd9\\x12\\xd0\\x5c\\xa9\\xa5\\x2d\\x01\\x5d\\x6e\\x8f\\x5d\\xc9\\x4e\\xfd\\xce\\x0d\\x7c\\xf5\\x65\\x12\\x03\\xb1\\x1e\\x54\\x27\\xa9\\xf6\\x79\\x42\\x9e\\x00\\x41\\x4a\\x48\\xea\\xb1\\x3f\\xd8\\xe5\\x8b\\x87\\xeb\\xa3\\x9d\\x10\\x25\\xd6\\xa1\\x8b\\x2c\\xdc\\xbe\\x14\\x74\\x36\\xdb\\xf3\\x8a\\x1c\\xe8\\x64\\x13\\xae\\x31\\x87\\x65\\xe1\\xbb\\x1d\\xf7\\xe2\\xb3\\xbe\\x97\\xe9\\x04\\x08\\xb1\\x17\\x17\\xcf\\x45\\x9b\\xcd\\x0f\\x3c\\xac\\x58\\xb4\\xa0\\xd3\\x5b\\xff\\xb5\\x33\\xe2\\x0d\\xf3\\x74\\x51\\xc1\\x14\\x01\\xce\\x1d\\xab\\x02\\x05\\x5c\\x7e\\x08\\xc5\\xec\\x46\\x39\\x0c\\xd6\\x17\\xa6\\xb5\\xf2\\x2f\\x65\\x18\\x30\\xa1\\x11\\x2a\\x06\\xed\\xe4\\xc4\\x0a\\xb7\\x95\\x78\\x51\\xd6\\xc6\\x6f\\x17\\x1c\\xd1\\x62\\x41\\x59\\x09\\x00\\xb8\\x52\\xa3\\xd0\\x19\\x95\\x7b\\xe1\\xb7\\xbb\\x7a\\xcb\\x89\\x23\\xf2\\xa3\\x57\\xc3\\x26\\x44\\x56\\xcf\\xca\\x9b\\x42\\x9d\\x71\\xfe\\xcb\\x7e\\xda\\xe3\\x9b\\x25\\x2b\\x4e\\xb6\\x10\\xe8\\xc7\\x18\\x83\\x56\\x99\\x75\\x4b\\x8d\\x41\\x24\\xb4\\x92\\x48\\x8e\\xde\\x62\\x61\\x0c\\xce\\x44\\xb5\\x92\\x18\\x66\\x3b\\x6c\\x96\\x46\\xa1\\x4a\\x84\\x17\\xed\\xdb\\xb6\\xf4\\xfb\\xe5\\xa4\\xbb\\xbb\\x48\\x2b\\x37\\xa4\\x45\\xe3\\xc1\\x6b\\x65\\xa1\\x41\\xcd\\x3e\\x12\\xa5\\xb2\\xc0\\x48\\x1d\\x61\\x4d\\x6d\\x20\\x84\\x79\\xb9\\xb2\\x09\\xb8\\x28\\x85\\x4d\\xae\\x0e\\xa1\\xed\\xed\\x50\\x65\\x55\\xfe\\x18\\xe1\\x85\\x40\\x05\\xcf\\x00\\x1a\\x80\\x77\\x08\\x34\\x98\\xd2\\x7f\\xad\\xf1\\x18\\x28\\x6b\\x53\\xb8\\x97\\x4d\\x69\\xfa\\x28\\x25\\xbe\\x8c\\xa3\\xd6\\x03\\x6a\\x92\\xca\\x52\\xf9\\x1d\\xde\\x6d\\x5b\\x1f\\xfe\\x28\\x88\\xf4\\xd6\\x07\\x79\\xfa\\xd1\\xfb\\x41\\xd8\\xc0\\x71\\x40\\x49\\xaf\\x68\\x1b\\x75\\x5f\\x2d\\x42\\x04\\xee\\xcd\\x09\\xe0\\x77\\x21\\x0a\\x48\\xa1\\x95\\xe7\\x2c\\x80\\xe1\\x27\\xc3\\xd4\\x87\\x50\\x95\\xc6\\x57\\x0a\\x1f\\x78\\x09\\x59\\x07\\x52\\x8c\\xf7\\x74\\x6f\\x31\\xd9\\x71\\x11\\xc6\\xf4\\xcb\\x25\\xb3\\x74\\x12\\x99\\xa7\\x57\\x48\\x22\\xd4\\x6b\\x6e\\x79\\xed\\x23\\xc2\\xfe\\x05\\x7b\\x3a\\xc7\\x29\\x0b\\x46\\x0b\\x16\\x6e\\xe9\\x0a\\x45\\x56\\x2e\\xff\\xed\\xcc\\x6b\\xa8\\xf4\\x79\\x5f\\x73\\x95\\x81\\x8d\\xb5\\x6b\\x6e\\xdd\\x59\\xca\\x2c\\xc4\\xae\\xa1\\x84\\x1f\\xd9\\x56\\x5b\\xec\\xd6\\xc0\\x81\\x04\\xcd\\xee\\x26\\xba\\x9d\\xe2\\x00\\x77\\x3d\\x09\\x1b\\xc7\\x7a\\x57\\xc5\\x47\\xf1\\xa6\\xba\\x0a\\x2c\\xd7\\x17\\xab\\x32\\x56\\x1d\\x74\\x22\\xea\\x72\\x35\\xad\\xb0\\xcb\\x36\\xbf\\x5c\\xbd\\xf8\\x8f\\xca\\xe0\\x66\\x30\\xa1\\x56\\x47\\xd9\\xa3\\x57\\xb4\\xe0\\xe5\\x02\\xd2\\x73\\xf3\\x79\\x6a\\x51\\xe0\\xbc\\x3f\\xed\\xbf\\x7a\\x1e\\x64\\xaa\\xd7\\x22\\xaa\\xc5\\xfd\\x02\\x2f\\xa7\\x9d\\x60\\xfc\\x70\\x73\\x25\\xf1\\x27\\xeb\\x1f\\x03\\x86\\x87\\x95\\xcc\\xdc\\x0b\\x4c\\xb2\\x6f\\x20\\x23\\xd1\\x52\\x15\\x3a\\x97\\xa2\\x60\\xbf\\xf1\\x17\\x45\\xd2\\xe2\\xcc\\x0b\\xf8\\x60\\xd4\\xa6\\xe3\\x58\\xa6\\xd8\\x17\\x6d\\x2a\\xc1\\x78\\xa9\\xae\\x1a\\x2d\\xc7\\x5e\\x8b\\x49\\x04\\x08\\xff\\x7c\\xdf\\x99\\x13\\x29\\xf3\\x3c\\xb0\\xc0\\x5e\\x1e\\x35\\x69\\x25\\x08\\x7e\\x0b\\x8d\\x96\\xa5\\x23\\x51\\xd1\\xd1\\x77\\x68\\xeb\\x13\\x4c\\xdb\\x21\\xa1\\x54\\x6a\\xae\\xdc\\xc6\\x87\\xdf\\xa1\\xb2\\x2e\\x92\\xfb\\x52\\x41\\xa8\\x36\\x77\\xa1\\x53\\x44\\x5b\\x77\\xd5\\xe7\\x03\\x50\\x8e\\x2a\\xbc\\x58\\x8a\\x9f\\x42\\xe5\\xbc\\x71\\x06\\x73\\xe4\\xdd\\x8a\\xd7\\x03\\xfa\\xb2\\xd7\\xdb\\x1e\\xb8\\x42\\x26\\xc8\\x9d\\x87\\x62\\xa7\\x09\\xe3\\xe9\\x13\\x8a\\x1f\\xa7\\x90\\xf2\\x92\\x9b\\xff\\x61\\xbc\\x1e\\xa6\\xe8\\xaa\\x1a\\xd0\\xe3\\x88\\x7d\\x70\\xa5\\x6d\\x4e\\x65\\x47\\xfc\\x60\\x6a\\x50\\xd3\\xbe\\x3b\\xd6\\xdb\\x03\\x66\\x3e\\x00\\xca\\x9e\\x4f\\x24\\xfe\\x8c\\xbf\\xd7\\xd8\\xc9\\x73\\x8d\\x63\\x67\\x55\\x4b\\x7b\\x60\\x1f\\x74\\x19\\x0b\\x59\\x70\\xa3\\x98\"},\n{{0xeb,0x34,0x71,0x45,0xf3,0x39,0xed,0xd8,0x02,0x78,0x5b,0x6f,0xbe,0xcd,0x5c,0xb8,0x08,0x89,0xac,0x7c,0xe4,0xeb,0xad,0x2f,0x67,0x07,0x67,0x65,0xdb,0x93,0x9b,0xca,},{0x99,0x4a,0x45,0x6e,0xad,0xa0,0x30,0x20,0x92,0x1c,0x3d,0x10,0x9c,0x13,0x5e,0xb9,0x61,0xfc,0xd4,0xa0,0xa4,0x00,0xba,0xfd,0x32,0xca,0x06,0x1b,0xbc,0x86,0x25,0x43,},{0xfd,0xbd,0x15,0xe1,0xe6,0x46,0x9d,0xf7,0x20,0xd9,0x55,0x2c,0xb5,0xdd,0x17,0x7b,0xcb,0xd2,0x92,0xfc,0xda,0x83,0xcd,0x93,0xc8,0x8d,0x01,0x14,0x91,0x2d,0xc8,0x70,0x31,0x09,0xba,0xc0,0xd4,0x59,0xac,0xe9,0x95,0x7d,0xf2,0x29,0x3a,0xc1,0x6d,0x40,0xd5,0x14,0x89,0x35,0x56,0x85,0x32,0x99,0xb9,0x7b,0x4f,0xd4,0x13,0x7a,0x3d,0x00,},\"\\x5b\\x8b\\x31\\xba\\xf8\\x84\\x83\\xf0\\x95\\xb5\\xd0\\x2e\\x17\\xd8\\xb7\\xb4\\x6c\\xf4\\x64\\x60\\xe6\\x4c\\x6b\\x02\\xc5\\x6d\\x8d\\xaf\\xe3\\x48\\x23\\x70\\x6c\\xb5\\xc1\\x5f\\x33\\x8a\\xd9\\xb5\\x65\\x86\\xa9\\x49\\x71\\x1a\\xa7\\x31\\x2c\\xc9\\x34\\x50\\xd2\\xfb\\x9a\\xf4\\x61\\x3f\\xc3\\x07\\x93\\xa6\\x31\\xa5\\x5c\\x14\\xe5\\x3c\\x0c\\xb1\\x5f\\x06\\x11\\x63\\x99\\x39\\x8c\\x8d\\xd6\\x18\\x76\\xc6\\x29\\x15\\xf9\\xf9\\xe4\\xcd\\xf8\\xf7\\xd8\\x9a\\xde\\x12\\x9e\\x6d\\xde\\x7d\\x63\\x67\\x1a\\x18\\x63\\xf5\\xda\\x8f\\x42\\xea\\x64\\xc0\\x79\\xec\\xb9\\xa2\\xc1\\xb1\\xdd\\x9a\\xda\\xe6\\x0e\\x96\\xb9\\xcb\\xbc\\x76\\x24\\x53\\x2a\\xa1\\x79\\x75\\xeb\\xa1\\x7a\\x7a\\xf0\\x2b\\xfb\\x21\\x9a\\xac\\x02\\xb3\\xd4\\x30\\x6c\\xd3\\x89\\x33\\xa8\\x50\\x60\\xcd\\x62\\xab\\x51\\x3a\\x39\\x65\\xb0\\x91\\x50\\xa4\\x88\\xc9\\x2b\\xf7\\xca\\xb0\\x48\\x2e\\xee\\x56\\x46\\x3f\\x01\\x39\\x00\\x9b\\x9f\\xbb\\x3f\\xf4\\xec\\xae\\x21\\x1f\\x42\\x8b\\x5b\\xfb\\x88\\x76\\xf0\\x04\\x98\\x3b\\x90\\xc4\\x47\\x84\\x6c\\xa4\\xb7\\x45\\x66\\xe9\\x79\\xbc\\x30\\xc9\\x5e\\x99\\xfa\\xab\\x69\\xa3\\xeb\\xbf\\xe4\\xda\\x60\\x34\\xc8\\x2d\\x63\\xe9\\xc5\\xcc\\xaf\\x84\\x86\\xaf\\x3b\\x5e\\x0d\\x38\\x14\\x22\\x93\\x8b\\x0c\\x22\\xf5\\x16\\x95\\x5b\\xdc\\x36\\x94\\x31\\x73\\xf5\\x83\\x27\\x08\\xa3\\x3c\\xf5\\x2d\\x88\\x75\\xd9\\x7f\\xde\\x58\\x5b\\x49\\x17\\xe4\\xad\\xec\\xdd\\x1e\\x79\\x85\\x67\\x62\\x03\\x3a\\xf2\\x2f\\x25\\x4b\\x50\\xce\\x9d\\x0c\\x70\\x0e\\x77\\xa7\\x31\\x55\\x4f\\xa0\\x11\\x3a\\x0c\\x66\\x66\\x83\\xf3\\xfd\\xb1\\x9e\\x3a\\x42\\x63\\x02\\x23\\x0b\\x63\\xe3\\x3a\\x78\\x5e\\xf2\\x4a\\x92\\x89\\x45\\x5b\\x3b\\x8f\\xc6\\x18\\xff\\xfe\\xf4\\x9c\\x2c\\x6e\\x48\\xfd\\x4b\\xb4\\x22\\xf5\\x04\\x14\\x9d\\xe2\\xb4\\xc0\\x35\\x5c\\x36\\x34\\x08\\xe6\\x6d\\xa8\\x1c\\xbb\\x58\\x15\\x52\\xa4\\x11\\xe3\\x64\\xfe\\x3e\\x4c\\xa9\\x6d\\x70\\x72\\xab\\x07\\x2e\\x75\\x68\\xc1\\x3d\\x35\\xe4\\x1c\\x78\\x25\\xa1\\x3a\\x5c\\x68\\xfb\\x9f\\xb5\\x98\\x8b\\xbb\\xfb\\x9a\\x0b\\x51\\x16\\x57\\x64\\x66\\x0c\\xdf\\xa2\\x41\\x1f\\x3d\\x42\\x16\\x5d\\xa1\\x87\\xc5\\x8e\\xde\\xf0\\x10\\x5a\\x6d\\xb1\\x77\\x42\\x05\\x43\\xe9\\x58\\xd5\\xd5\\xe8\\xa3\\x71\\xf7\\x98\\x70\\x51\\xc4\\xe1\\x78\\x6d\\x01\\x8e\\xb3\\xd7\\x32\\xc2\\x10\\xa8\\x61\\xac\\xaf\\x67\\x1b\\xe9\\x5b\\xb6\\x3f\\xbc\\x88\\xbf\\x8b\\xe7\\xbe\\x53\\x90\\x93\\x9c\\xd9\\xfb\\x2a\\xcf\\x39\\x81\\xdd\\xa6\\x1b\\x78\\x7a\\x7b\\xbd\\x78\\x46\\x8e\\x1d\\x32\\xca\\x46\\xaf\\x8f\\xb3\\x2a\\x18\\x46\\x3c\\x18\\x0f\\x52\\x4b\\xe1\\xda\\x91\\x0d\\xa5\\x50\\x8d\\x42\\xa0\\x05\\x17\\x41\\x22\\x7c\\x9b\\x62\\xde\\x6d\\x19\\xb3\\x3c\\x0b\\xd4\\x80\\x67\\xb0\\x35\\x85\\x9a\\xd9\\xbd\\xc2\\xdd\\xd9\\x7b\\xef\\xca\\x31\\xe6\\x5a\\x88\\x6c\\xfc\\x75\\x3a\\xfc\\x4f\\xf2\\xa7\\x21\\x2a\\x89\\xd3\\x7c\\x04\\x6c\\xdf\\x39\\x99\\xc0\\x51\\xff\\x13\\x96\\xbd\\x99\\xcb\\x54\\x94\\x56\\x39\\xeb\\x64\\x62\\xdb\\x9e\\xce\\x84\\x07\\x7b\\x0b\\x3d\\x6b\\x3d\\xf3\\x95\\x2d\\xd3\\x67\\x56\\xc6\\xda\\xb2\\xab\\xc2\\x5a\\x51\\xbf\\x32\\xc1\\xe9\\xcd\\xd0\\xa7\\x28\\xa7\\x98\\x5f\\x7b\\x7e\\x0d\\x9c\\x1a\\x6f\\x66\\xce\\x12\\x16\\x37\\x3d\\x25\\x2d\\xaf\\x59\\x58\\xf2\\xe8\\x97\\x3f\\xd2\\x68\\xfa\\xd0\\xef\\xe2\\x51\\xce\\x76\\xfe\\x47\\xbd\\x0a\\x4d\\x0c\\x4f\\x10\\x17\\x94\\x9d\\x4c\\x2b\\x16\\x71\\x72\\x18\\xe1\\x49\\x15\\x4e\\xd6\\xfb\\xe5\\x6f\\x86\\xd8\\x2e\\x19\\xef\\x0a\\x91\\x63\\x19\\x12\\xf2\\xa8\\xf3\\xde\\xbb\\x00\\x76\\x6b\\x61\\x77\\x80\\x2f\\x4b\\x2e\\x79\\xf6\\xe7\\xbf\\xa9\\xc6\\x2c\\xfa\\x2f\\x75\\xcd\\xb6\\x04\\x92\\x63\\x0a\\x85\\xc9\\xb4\\x31\\x77\\xd2\\xdd\\x9b\\xa8\\xd0\\x54\\x8a\\xbe\\x24\\x92\\x3a\\xe8\\x44\\x3e\\xea\\xdc\\xd0\\xf5\\x8a\\x7b\\x82\\xdf\\xf5\\x0d\\x88\\x40\\x03\\x88\\x9c\\xb5\\x60\\xf7\\xac\\x53\\xe7\\x10\\xa7\\x55\\x75\\x36\\x24\\x64\\xb1\\xaa\\x43\\xd2\\xa9\\xb2\\x2f\\x2b\\xd2\\x16\\x2d\\x30\\x2f\\xaa\\x74\\x52\\x34\\x4c\\xe7\\xad\\xe9\\x98\\x36\\x87\\xb6\\xc6\\x8e\\xca\\x47\\xdd\\xdb\\x28\\x9b\\x15\"},\n{{0x32,0x08,0x83,0x7d,0x15,0x54,0xb6,0x51,0x1a,0xdd,0xa0,0x9c,0xba,0xe5,0x65,0xda,0x78,0x43,0x9a,0x47,0x2a,0x5d,0x1b,0x10,0x7c,0xe0,0xa9,0xb1,0xd7,0x75,0x7d,0xb7,},{0x9b,0x52,0x5e,0x35,0x36,0x8a,0x92,0x1e,0x3a,0x2e,0x9a,0x35,0xa4,0xde,0x9e,0xa4,0xc4,0x36,0xca,0xba,0x27,0x12,0x3e,0x5c,0x36,0x9e,0x2a,0x6c,0xf5,0xc9,0x0a,0xb6,},{0x70,0x9d,0x1c,0xa9,0xca,0x2f,0x74,0x2a,0xb9,0xdd,0x0b,0x04,0x93,0x35,0xf5,0x44,0xcf,0xfb,0x2f,0x1a,0x36,0x93,0xd5,0xf5,0x3f,0x8b,0xa0,0x83,0xb9,0xb0,0xd8,0x6e,0x52,0x08,0xfa,0x8e,0x1e,0x81,0x56,0xc9,0xcc,0x22,0x42,0x77,0x5a,0xbb,0x7e,0x15,0xaf,0x30,0x85,0x86,0x8e,0xf4,0x57,0x63,0x4e,0x99,0x26,0xc4,0x04,0xec,0xf3,0x0f,},\"\\x43\\x6a\\x3c\\x31\\x76\\x3f\\x93\\xd4\\xd5\\x46\\xc6\\xd1\\xec\\xfb\\x7a\\xe4\\x59\\x16\\xaf\\x75\\x4f\\x83\\x9d\\xcf\\xe9\\x6d\\x6b\\x69\\xc6\\x12\\x14\\xd0\\x16\\xfc\\x84\\x2f\\x56\\x46\\x2a\\x3f\\x07\\xf6\\x61\\xb2\\xe2\\x50\\x5a\\xcf\\xaf\\x48\\x2a\\x0b\\x0f\\x4f\\x55\\x01\\xee\\xc4\\xb2\\xd2\\xd7\\xd4\\x44\\x54\\x4d\\xe0\\x00\\xb9\\x90\\xf4\\x36\\x3d\\x3f\\x98\\x3f\\x5d\\x4e\\x09\\x30\\x97\\x52\\xff\\x57\\x9c\\x73\\x20\\xc9\\x15\\x95\\x1c\\xc3\\xa1\\xe3\\x23\\x8c\\x1b\\xa7\\xa1\\x91\\x30\\xea\\xbf\\x6a\\x37\\xf5\\xf0\\xbc\\x56\\xe2\\x52\\x42\\xf7\\x52\\x06\\x1f\\x3c\\x63\\xac\\xad\\x99\\x2a\\x75\\x01\\xe9\\x67\\xde\\xb9\\x25\\xb3\\x0e\\xd1\\x05\\x43\\x1e\\x58\\x21\\x02\\xfa\\x4f\\x30\\x8c\\x2f\\x06\\x83\\x61\\x2b\\x56\\x68\\x6d\\x52\\xda\\xed\\x69\\x43\\xa7\\x21\\x9f\\x3b\\xee\\xa2\\xe0\\xa2\\x92\\x42\\xe8\\x6d\\x55\\x62\\xff\\xab\\x83\\xb5\\x6b\\x26\\x33\\x26\\x66\\x4e\\x02\\x9e\\x96\\x1e\\x70\\x17\\xd8\\xe8\\x9f\\x5e\\x3e\\x1d\\x10\\xf5\\x93\\x28\\x54\\x55\\x0c\\xe6\\xe5\\xcd\\x76\\x97\\x1f\\xd2\\x35\\xcf\\x9c\\x00\\x27\\xd0\\xcf\\xed\\x33\\x15\\xc2\\xcb\\xf1\\x85\\x08\\x62\\x4d\\x8a\\xcf\\x04\\x7f\\x9b\\x96\\x8f\\x90\\x7d\\x9e\\x6f\\x4c\\xfa\\x5e\\x45\\xc8\\x0a\\x27\\x2c\\x2d\\xbb\\x62\\xc5\\xd4\\x19\\x45\\x80\\xdf\\xab\\xed\\xd8\\x2c\\xb4\\xd7\\x64\\x92\\x34\\x4b\\xe9\\x6c\\xcf\\x5d\\xaa\\xf6\\x1e\\x6b\\x2b\\x55\\xef\\xdb\\x3f\\x65\\x21\\x0a\\x3d\\x6e\\x1f\\x36\\x98\\x87\\xca\\x0e\\xa0\\xd5\\x8c\\x3d\\x14\\x6a\\xe3\\xcf\\x9b\\x00\\x00\\x76\\x88\\x41\\x15\\xfa\\x51\\xb5\\xfd\\x66\\xbe\\xc0\\xcc\\xbf\\x0d\\x29\\x20\\x19\\x6a\\x7d\\x7a\\x38\\x44\\x5f\\xbe\\xd2\\x2d\\xfc\\x75\\x64\\xdc\\x56\\xf6\\x0d\\x6e\\x29\\xe5\\x92\\x48\\x53\\x74\\xc6\\xbd\\x1e\\x5b\\x15\\x93\\x1b\\x69\\xca\\x6e\\xe6\\xb3\\xaa\\x25\\x25\\xc2\\x35\\x85\\xf0\\x92\\x9f\\x31\\xcb\\xd1\\x1f\\xb1\\xa5\\x33\\x02\\x16\\xb9\\x0a\\xe5\\xa6\\x56\\xdf\\x7a\\x07\\x4c\\xec\\x64\\xe5\\x98\\x18\\x4f\\x50\\x3f\\xb2\\x3c\\xc0\\x5e\\x65\\xda\\x9a\\xe7\\xe8\\x44\\x1f\\x40\\xe2\\xdc\\x26\\xb8\\xb5\\x6d\\x2c\\xb5\\x23\\xa7\\xc6\\x35\\xdc\\x08\\x47\\xd1\\xcd\\x49\\x8a\\xbf\\x75\\x6f\\x5a\\x13\\xea\\x14\\xf8\\xfa\\xb2\\xc4\\x10\\xb1\\xa4\\x70\\xf4\\x9a\\xa8\\xdc\\xa4\\xac\\x02\\x56\\xb1\\x18\\x00\\xde\\x0d\\xd0\\xec\\x42\\xb1\\x42\\xc5\\x61\\x12\\x8d\\x35\\x7e\\x78\\x3b\\x12\\xf6\\x1c\\x66\\x8f\\x5e\\x6e\\x06\\xb7\\xb4\\x8b\\x7b\\x22\\x54\\xde\\x5b\\xdc\\x18\\x04\\xb7\\x23\\xd5\\xfd\\x6a\\x0f\\x4b\\xc7\\xc5\\x9e\\x7c\\x50\\x54\\x18\\x26\\x13\\xbb\\xd2\\xfa\\x92\\xb4\\xc1\\xda\\x16\\xbc\\x8c\\x97\\xe1\\x6b\\xcb\\x0d\\xbf\\x8c\\x92\\xb7\\x48\\x99\\xb3\\x7f\\x31\\x87\\x57\\x14\\x0b\\x6c\\x4f\\xd5\\x35\\xe2\\xe1\\xe0\\x57\\x0a\\x50\\x81\\x8c\\xf7\\x8f\\xb9\\x88\\xe1\\xf4\\xce\\x40\\xe7\\x6e\\x8f\\xe3\\xd6\\x97\\xd7\\xa4\\x58\\x50\\xf2\\x93\\xce\\x17\\x0f\\xd8\\xab\\x07\\xcf\\x15\\x34\\xea\\x5f\\xfa\\xd3\\x4f\\x6f\\xcf\\xa4\\x2d\\x0d\\x21\\xa9\\x1d\\xfb\\xfe\\x05\\x97\\xc7\\x3f\\xd9\\xb9\\x76\\x76\\x14\\xeb\\xdf\\xd0\\x2c\\x3a\\xc0\\xc4\\x9a\\xd1\\x0c\\x94\\xbe\\x59\\x69\\xee\\x08\\x08\\xc0\\xa3\\x0b\\x2a\\x1e\\xaa\\x90\\xea\\x43\\xb8\\x57\\x5c\\x30\\x56\\xf4\\x23\\xcd\\x4b\\x6f\\x34\\xae\\x51\\xc2\\x22\\x37\\x65\\xa9\\xea\\x21\\xf6\\x45\\x73\\xc1\\xa1\\x39\\x61\\x32\\x12\\x46\\xe3\\xb5\\x34\\x9e\\xe0\\x48\\xfb\\x62\\xd5\\xfb\\x61\\xb1\\x71\\x43\\x91\\x18\\x25\\x62\\xb9\\x15\\x98\\x36\\x0e\\x5f\\x9b\\xf4\\xac\\x80\\xdb\\x24\\x64\\x32\\xaf\\xb3\\xa4\\x3d\\x34\\x96\\x50\\xde\\x03\\xd3\\x43\\xc2\\xe9\\x7a\\x8e\\xef\\xd1\\xbf\\x30\\xc1\\x0c\\x25\\x86\\x7f\\x53\\x26\\x6b\\xd1\\xf0\\xdc\\x14\\xae\\x1a\\x6b\\xe9\\xef\\xde\\xcf\\xf6\\x7e\\x7d\\x29\\x2c\\x6c\\xdf\\xc9\\x0d\\x80\\xb8\\x86\\x66\\x8f\\x04\\xc2\\xa0\\xf5\\xad\\x7f\\xa1\\x7c\\x17\\x8b\\x6e\\x9b\\x45\\xa1\\x1f\\x4d\\xdf\\xe2\\xd6\\x69\\x60\\xa3\\xf7\\x51\\x35\\xad\\x5e\\xd1\\x54\\xe5\\x13\\xe1\\xa5\\xd1\\x38\\xe7\\x37\\x1e\\x84\\xd7\\xc9\\x24\\x53\\xe6\\xc6\\x2d\\xc5\\x9b\\x8e\\x1f\\xa9\\x3d\\x77\\x3a\\x25\\x40\\xd9\\x1c\\x25\\x7c\"},\n{{0x4e,0xc6,0x82,0x9b,0x43,0x99,0x70,0x56,0xd9,0x96,0x85,0x38,0x9b,0xd5,0x3c,0x52,0x8d,0xe7,0xe5,0xff,0x27,0x15,0xd6,0x5c,0x95,0x66,0x19,0x82,0x6e,0x3f,0xb5,0xb5,},{0x7d,0x92,0x2d,0x57,0xfd,0xb1,0x27,0x92,0x87,0x9a,0xec,0x4e,0x8c,0x65,0x14,0x63,0xec,0xe0,0x64,0x49,0x2c,0x72,0x17,0x53,0xd2,0x2e,0x11,0x55,0x09,0xfe,0xd7,0x06,},{0x15,0x9c,0xa4,0x04,0xf7,0xf7,0x41,0x17,0xc5,0x16,0x3c,0xf4,0x04,0x11,0x09,0x49,0xeb,0x57,0xae,0x2d,0x76,0x62,0xb1,0xff,0x41,0x78,0xcc,0x67,0x56,0xe9,0x0a,0xda,0xea,0xb7,0x1b,0x06,0x4c,0xe1,0xdf,0xf4,0x57,0xb2,0xdb,0xa7,0xe2,0xdc,0x13,0xc2,0x17,0xbc,0xae,0x8a,0x61,0xfc,0xf8,0xce,0x14,0x87,0xa6,0x49,0xc2,0x57,0xff,0x07,},\"\\xed\\x26\\xb4\\x13\\x0d\\x4e\\xbf\\x3f\\x38\\x61\\x49\\x1a\\xa3\\xdd\\x96\\xa4\\xeb\\x69\\x75\\x21\\x73\\xfa\\x6c\\x84\\xca\\x65\\xdf\\xc9\\x91\\xc7\\xfe\\x44\\xe0\\x2b\\xd6\\x16\\x50\\x25\\x2a\\x1d\\x23\\x78\\x66\\x82\\xec\\x38\\xc1\\xfe\\xe8\\x2c\\xc3\\x50\\xdb\\x7c\\x3c\\x39\\x49\\xa1\\xc9\\x35\\xff\\xeb\\xd7\\xba\\xa2\\x4f\\x35\\xa3\\x93\\xfb\\xd2\\x7e\\x7c\\x34\\xc2\\xf9\\xff\\xda\\x60\\xa1\\x8d\\xf6\\x6c\\x3e\\x46\\x5d\\x90\\xed\\x48\\xfb\\xba\\xd3\\xfa\\x79\\x47\\xde\\xe7\\xe6\\x59\\xa3\\xee\\xad\\xb8\\x87\\xf0\\x96\\x3f\\x6b\\xdd\\x76\\xc3\\x6c\\x11\\xae\\x46\\xd0\\x88\\xee\\x50\\xbc\\xa8\\x18\\x7a\\x0a\\x88\\x32\\xdb\\x79\\x84\\xb7\\xe2\\x7c\\xbe\\x6a\\xbf\\x12\\xd2\\xc9\\x4f\\x33\\x7e\\xc7\\x8c\\xb3\\x8b\\x26\\x24\\x1b\\xd1\\xa3\\xd2\\xf5\\xfa\\x44\\x07\\xfd\\xd8\\x02\\x27\\xd2\\xb1\\x70\\x14\\x4b\\x41\\x59\\x78\\xe3\\x72\\x01\\xd0\\xfc\\xf4\\x31\\x74\\xb9\\xd7\\xb2\\x11\\x5d\\x5e\\xb8\\xbc\\xec\\x27\\x6a\\x77\\x5a\\xea\\x93\\xf2\\x34\\x0d\\x44\\x25\\xd3\\x4d\\x20\\x47\\x49\\x4d\\x91\\x7e\\x0d\\xbe\\x37\\x85\\x7e\\x6c\\x99\\x85\\x9b\\x71\\xc9\\x14\\xaa\\xd5\\xe5\\x4f\\x7b\\x2b\\x03\\x3e\\x59\\x4e\\x27\\x2c\\xc5\\xcf\\xe9\\x19\\xf8\\x88\\xe5\\x5c\\xb6\\x15\\x7a\\xff\\xcf\\x35\\x72\\x46\\xd0\\x0b\\x53\\x2c\\xc4\\x71\\xb9\\x2e\\xae\\x0e\\xf7\\xf1\\xe9\\x15\\x94\\x4c\\x65\\x27\\x93\\x15\\x72\\x98\\x53\\xda\\x57\\x2c\\x80\\x9a\\xa0\\x9d\\x40\\x36\\x5f\\x90\\x87\\x5a\\x50\\xd3\\x1c\\xa3\\x90\\x0d\\xa7\\x70\\x47\\xc9\\x57\\xc8\\xf8\\xbf\\x20\\xec\\x86\\xbd\\x56\\xf9\\xa9\\x54\\xd9\\x98\\x8e\\x20\\x6b\\x44\\x4c\\xa5\\xa4\\x43\\x45\\x21\\xbf\\xc9\\xc5\\xf3\\xa8\\xa0\\x61\\x47\\xeb\\x07\\xd1\\x1d\\xfe\\x11\\x71\\xec\\x31\\xff\\x55\\x77\\x15\\x88\\xb3\\x33\\xee\\xe6\\x21\\x5d\\x21\\x6c\\x47\\xa8\\x56\\x6f\\xbb\\x2b\\x18\\x97\\x46\\x46\\xac\\x5a\\x92\\xc6\\x99\\xd7\\x75\\x84\\xc0\\xde\\xfe\\xfd\\x2d\\xfa\\x58\\xfc\\xa2\\x71\\x99\\xe4\\x1e\\xc5\\x8a\\x24\\x63\\x20\\xb3\\x5f\\xaa\\xb7\\x5b\\x97\\x95\\x19\\x24\\x22\\x6d\\xa4\\xab\\x28\\xf0\\x1b\\x47\\x07\\x8e\\x71\\x2e\\x4f\\xd9\\xf7\\x7b\\x25\\x1c\\x96\\x67\\x85\\x8c\\x28\\xe3\\x2e\\xf1\\xcd\\x01\\xfc\\xbe\\x43\\x5c\\x54\\x2d\\xba\\xd0\\xa8\\x4a\\x13\\xcd\\xbb\\x57\\x75\\xe6\\x2d\\x81\\x1d\\xc6\\x90\\xd9\\x55\\x5c\\x37\\xf1\\x5f\\x91\\x76\\x7a\\x56\\x13\\x57\\xdf\\x10\\x6e\\xef\\xe0\\x56\\xe7\\x36\\x06\\x70\\x65\\x0f\\xb8\\x18\\xfc\\x6a\\xdc\\x59\\x97\\x3e\\x9a\\xd5\\xcd\\xcd\\x80\\x98\\x07\\xab\\x56\\x39\\x7f\\x3c\\x13\\x94\\x87\\x32\\xd9\\x8d\\x67\\x6f\\x4a\\x44\\x70\\xa9\\x5d\\x8b\\x51\\x82\\x37\\xe2\\x26\\xf0\\xcc\\x5f\\x47\\x65\\x16\\x4a\\x5c\\x3e\\xf0\\x50\\x71\\x4b\\xe0\\x2a\\x12\\x6b\\xe8\\xf6\\x65\\x46\\x48\\x15\\x81\\xb9\\xe9\\x4a\\x26\\xaa\\xd2\\x4c\\x69\\x3b\\x7f\\xdb\\xc1\\x8a\\xcd\\x3e\\xd7\\xcf\\xc4\\x7d\\x8a\\xb2\\x67\\x45\\xd7\\x8e\\x70\\x1d\\x0c\\xf0\\x5d\\xd8\\x44\\xb5\\xb3\\x45\\xa2\\x9d\\xab\\x68\\x4c\\xbc\\x50\\x92\\xba\\x02\\x2e\\x3c\\x58\\x2d\\xfc\\x04\\x4c\\x31\\x00\\xad\\x02\\x75\\x66\\x97\\xa8\\x49\\x82\\x29\\x15\\xa1\\x6e\\x2a\\x2b\\x81\\x0e\\x68\\x15\\xf5\\x44\\x21\\xd2\\xf3\\xa6\\xff\\xf5\\x88\\xc0\\xd9\\x01\\x3c\\x76\\xf3\\x3e\\x09\\xbe\\xae\\xef\\x60\\xd8\\x77\\x42\\x30\\xe8\\xce\\x71\\x31\\x28\\x9a\\xef\\x2a\\x40\\x68\\x6c\\x81\\x9f\\xb2\\x04\\x0b\\x06\\x12\\x4d\\x3d\\x9a\\xa4\\x19\\xd5\\x67\\x88\\xf1\\x7f\\xa7\\xed\\x9b\\x9b\\x57\\xce\\xaa\\xd1\\x33\\x7a\\x01\\x01\\xbe\\xa0\\x44\\x0c\\xff\\x74\\x5d\\xdd\\x97\\x22\\x05\\x5d\\x1f\\x9b\\xcf\\xb0\\x09\\xce\\x2c\\x2f\\x41\\xa9\\xe7\\xe8\\x68\\x06\\xb8\\x72\\xcd\\xc2\\x05\\x9b\\xc8\\xec\\x68\\xf5\\xee\\x56\\xc4\\xba\\xcf\\x4b\\xbd\\x30\\xea\\x4c\\x71\\x55\\x86\\x4d\\x60\\x0c\\x0e\\x2e\\xee\\x73\\xb3\\x19\\xbd\\xa4\\x37\\x2e\\x9c\\x60\\x3c\\x77\\x2c\\x25\\x89\\x0c\\x76\\x10\\x48\\x99\\x89\\x47\\x5d\\x37\\xa7\\x7a\\x45\\x74\\xa2\\xba\\x55\\xbf\\xd9\\xc9\\xcf\\xd1\\x46\\xfb\\x97\\xe6\\x16\\x5d\\xcc\\x19\\x55\\x9f\\x4f\\x85\\xdf\\xca\\x2f\\x97\\xf3\\x70\\x2e\\xd8\\xfa\\x6b\\x3c\\x2a\\x97\\x41\\x97\\x4a\\xa0\\x7a\\xb6\"},\n{{0xb1,0x50,0xa7,0x89,0x29,0xed,0x1e,0xb9,0x32,0x69,0x21,0x3e,0x1e,0xbc,0x22,0xe2,0xe4,0x0a,0x60,0x1b,0xdb,0x00,0x54,0x99,0xb7,0xbe,0xb0,0x58,0x91,0x7c,0x53,0x40,},{0x28,0x86,0x6b,0x6d,0x1c,0x39,0x3c,0xb0,0x8e,0x46,0x4c,0xf5,0x57,0x14,0x40,0xa6,0x49,0xe5,0x06,0x42,0x38,0x0d,0xdf,0x4f,0xfb,0x7a,0xd1,0x50,0x48,0x5c,0x10,0x8e,},{0x27,0x6d,0xd0,0x96,0x2e,0x6e,0xe6,0x4f,0x05,0x92,0x44,0x1a,0x8a,0xf0,0xe5,0xef,0x8f,0x93,0xbf,0x0b,0xae,0xba,0x20,0x50,0x4b,0x9d,0xb4,0xf9,0x5a,0x00,0xb9,0x39,0xea,0x38,0xde,0xf1,0xc7,0x97,0x86,0x28,0x98,0xca,0xbe,0x9d,0xc4,0x64,0x4f,0x0e,0x67,0x7e,0x87,0xc0,0xa3,0x3b,0x87,0xb6,0xa4,0xd2,0x2a,0x80,0x7d,0x0e,0x1e,0x02,},\"\\x1b\\xf5\\x5d\\x27\\xf9\\xdd\\xe6\\xc4\\xf1\\xc0\\xdd\\xd3\\x60\\xa2\\x5d\\x94\\x93\\xc0\\xff\\xdc\\xa7\\x4a\\x7e\\xd5\\xe5\\xa5\\x14\\xe9\\x55\\x15\\xcd\\xa4\\xaa\\xd8\\xf4\\x5c\\xd6\\xed\\x79\\x01\\xf8\\xf2\\x24\\xa6\\x3b\\x38\\x12\\x1c\\xbe\\xac\\x2f\\x56\\xda\\xe2\\x10\\xdd\\x05\\x37\\x50\\xcb\\x20\\x75\\x14\\xa8\\x89\\x1e\\x24\\x5a\\x5d\\x07\\xe7\\xde\\x78\\xa2\\xe3\\x81\\x44\\x63\\xf1\\x48\\xd2\\xac\\xb7\\xdc\\x71\\xf9\\x95\\xc9\\x29\\x9a\\xd0\\xd6\\x26\\x6c\\xfe\\xfc\\x94\\x26\\x96\\x57\\xfd\\x47\\xcf\\x53\\x12\\xb9\\x2a\\xf2\\x75\\x06\\x51\\xc4\\x79\\x63\\x6c\\x9d\\x36\\xae\\xf0\\x8f\\x7d\\x11\\x95\\xe7\\xfa\\x1b\\xa3\\xab\\xb5\\xdc\\xb9\\x01\\x36\\xb0\\xfb\\x9a\\x37\\x66\\x8b\\x87\\xa2\\xdb\\x88\\xd1\\xe2\\xb6\\x44\\x0d\\x3e\\x6e\\x60\\x1e\\x6d\\x4b\\xc1\\x0c\\xf1\\xcb\\xdf\\x1d\\x61\\x69\\xc0\\xdc\\x2c\\x4a\\xec\\xde\\xb6\\xcd\\xd4\\x56\\x7d\\x42\\x50\\xb2\\xaf\\xa7\\x15\\xb1\\x66\\xc9\\x46\\x7f\\x90\\x7d\\x3f\\xa5\\xa6\\xda\\xf2\\x00\\xb3\\x09\\xc1\\x09\\x37\\x68\\x30\\x49\\x9c\\xaf\\x31\\x49\\x00\\x1c\\xf3\\x33\\x94\\x48\\xca\\x3d\\x76\\x52\\x25\\xd6\\xb3\\xc1\\xcd\\x26\\x7c\\xba\\x93\\x6e\\x7a\\xa4\\x83\\x25\\x39\\x46\\x6f\\xd2\\x0c\\xbb\\x38\\x32\\x3c\\xbb\\x22\\x28\\xa2\\x71\\xf2\\xd2\\x82\\x56\\x1c\\x73\\xed\\x79\\xa1\\xad\\x04\\x69\\x8e\\x27\\xef\\xe3\\x93\\x23\\x5f\\x34\\x56\\xc2\\x95\\x40\\x7d\\xa0\\x96\\x0f\\x00\\x34\\xd8\\xde\\xef\\xd1\\xc1\\x85\\x73\\x6f\\xd3\\xea\\xf1\\xf9\\xa1\\xe3\\x2f\\x09\\x17\\x4c\\x1f\\xe1\\x27\\x20\\xb7\\xc9\\x6f\\xeb\\xdb\\x33\\xe0\\x1b\\x1b\\x6a\\x1c\\x63\\x71\\x50\\x19\\x4b\\xe4\\xff\\xab\\x15\\x9e\\x45\\xb2\\x45\\x85\\x57\\x68\\x46\\xbb\\x64\\x27\\x4e\\xca\\x7b\\x39\\xa3\\xed\\x93\\x57\\xde\\x7b\\x08\\x42\\x13\\x02\\x4a\\x9e\\x85\\x89\\x26\\x36\\x00\\xa2\\x86\\x7c\\x2a\\x7c\\xf8\\xb9\\x90\\x76\\xa1\\x2a\\x07\\xbd\\x7d\\xf8\\xd5\\x27\\x7b\\xb0\\x4a\\xd7\\x2e\\x63\\x9b\\x77\\xea\\xca\\x1e\\xc5\\x8e\\xf9\\x63\\x7e\\x9a\\x23\\x76\\xba\\x87\\x8a\\x45\\x72\\x35\\xa0\\x6f\\x78\\xfd\\xf0\\xe0\\xd9\\x25\\xcb\\x2f\\xd2\\xa3\\x8c\\x77\\x18\\x8f\\x60\\x37\\x2e\\xf6\\x00\\x97\\x92\\x42\\x43\\x99\\xc9\\xb6\\x79\\x28\\xda\\x2e\\x3b\\xa9\\x1c\\xbd\\xe4\\x07\\xe7\\xe8\\x76\\xba\\x98\\x13\\x9e\\xd2\\x2c\\xa3\\xb9\\x83\\xbe\\xde\\x00\\x00\\x52\\x87\\x96\\x44\\x8e\\x4a\\x10\\x55\\xac\\xb2\\xde\\xaa\\x56\\xbc\\x30\\x82\\x54\\xc5\\xbd\\x49\\x8c\\x27\\x5e\\xce\\xdc\\x13\\x57\\xef\\xe1\\xfd\\xa0\\x1d\\x34\\xd9\\x16\\xdd\\x4d\\x86\\x47\\xe5\\x77\\x19\\x95\\xa6\\x53\\xe0\\xf8\\xa5\\x28\\x4c\\xc7\\xbf\\x73\\x15\\x7b\\x33\\x49\\xd5\\x9e\\x6f\\x92\\x0c\\xad\\x6c\\xdd\\x17\\x19\\xf0\\x38\\x02\\x5c\\x43\\x00\\xe0\\x21\\x0c\\xe2\\x49\\xfa\\xf3\\xc8\\x2d\\xe1\\xfd\\x1c\\xda\\xbe\\x61\\xc1\\x4e\\xcb\\x1d\\xf0\\x0c\\x5c\\x46\\x6a\\xa6\\xa0\\x12\\xa9\\xc1\\x0d\\xcf\\xe5\\x9b\\x7e\\x9d\\x3b\\x15\\x5d\\xab\\x6c\\x7b\\x7c\\x16\\x08\\xc1\\xed\\xd5\\x1d\\xbd\\xad\\xf6\\xba\\x58\\x76\\xb5\\xe6\\x0f\\xdf\\x7f\\x19\\xe6\\xef\\x71\\x2c\\xd1\\xa7\\xdd\\x3a\\x06\\x2a\\x65\\x74\\xa7\\x43\\x6b\\x31\\x9e\\xfb\\x94\\x4e\\x42\\x23\\xf5\\x42\\xb2\\x50\\x2c\\x1b\\xa9\\x76\\xbe\\x91\\xe0\\x5b\\x0f\\x85\\xa0\\x9f\\xd7\\x93\\xbe\\xca\\x88\\x33\\x75\\xfb\\x67\\xcd\\x13\\x3f\\x52\\x84\\xd8\\x99\\x84\\xff\\x3c\\xaf\\xa7\\xe1\\x1a\\x9d\\x85\\xe7\\x89\\x32\\x32\\xa5\\x24\\xec\\x54\\xb2\\x0f\\x97\\x5d\\x3c\\x0a\\x11\\x43\\xa0\\xef\\x41\\x17\\x6b\\x70\\x51\\xea\\x91\\xd4\\x0c\\x5f\\x44\\xfd\\x9e\\x10\\x05\\x58\\xbf\\x12\\x12\\xa7\\xb8\\x91\\xe6\\x8b\\x55\\xca\\x61\\xf4\\xbe\\x94\\x52\\x66\\xd9\\xa1\\x00\\x7a\\x14\\xaa\\xeb\\x68\\xc4\\x8e\\x25\\x7f\\x0f\\x46\\x31\\x0a\\xd1\\x64\\x81\\x46\\x7e\\xc1\\x77\\x35\\x35\\xd5\\xfc\\x08\\x49\\x15\\xf5\\xd0\\x04\\xba\\x0d\\xc7\\x59\\x1d\\x21\\x23\\xc6\\x22\\x07\\x90\\x9d\\x84\\xf2\\xb3\\x82\\xf5\\xef\\x12\\x75\\x9a\\x95\\xcd\\x3f\\x51\\x89\\x80\\x6e\\x27\\x39\\x60\\xae\\xe1\\x62\\xc0\\x0f\\x73\\xe7\\xfa\\x59\\x36\\x39\\x57\\x65\\x4b\\xb1\\x91\\x6b\\x57\\x09\\xbb\\x0a\\x9d\\x04\\x05\\x14\\xae\\x52\\x84\\x95\\x1e\\x6b\"},\n{{0x9f,0xc7,0xc4,0x9c,0xb8,0xc4,0xf0,0x97,0x2d,0x6e,0xd9,0x70,0xae,0x2c,0x6a,0xc3,0x37,0xe6,0x75,0x42,0x5c,0xc8,0xdc,0xe7,0x30,0xfc,0x41,0x44,0x43,0x02,0x93,0x5d,},{0x47,0x82,0x52,0x0b,0x06,0xf9,0x33,0x44,0xaa,0x76,0x67,0x80,0xe5,0x44,0x01,0x36,0x3d,0xfd,0x7d,0x96,0x7c,0xc3,0xbf,0x06,0x48,0x8a,0xf9,0x09,0x20,0xa3,0x0f,0x85,},{0x5c,0x78,0x3a,0x86,0x0a,0xa6,0x68,0x18,0x4d,0xd2,0x2c,0x4f,0x9a,0x54,0x6b,0x5e,0xc9,0x6e,0xba,0xd2,0xe4,0xaf,0x00,0xf9,0x68,0xc6,0x88,0x67,0x13,0x54,0xe0,0xcc,0x9b,0x57,0x2c,0x73,0xbc,0x6f,0x19,0x93,0x7a,0x05,0xf1,0xba,0xf3,0x43,0x47,0x63,0x96,0x5c,0x96,0xe1,0x03,0x40,0x7f,0x0e,0xb6,0x42,0xc5,0x64,0x41,0x54,0x29,0x0b,},\"\\x82\\xbc\\x2c\\x70\\x0d\\xb2\\x22\\xa4\\xac\\x91\\x4a\\xa2\\xbe\\x8f\\xa2\\x8e\\x42\\x20\\x67\\xf9\\x4f\\x33\\x44\\xf5\\x36\\x2b\\xeb\\xaa\\xbe\\xd7\\x61\\x2b\\x0e\\x46\\x4a\\x73\\xa6\\xc4\\x56\\x90\\x35\\x64\\xb1\\x53\\x93\\x48\\x51\\x40\\xdd\\x0f\\x3a\\xff\\x90\\xaa\\x6e\\x16\\x61\\xdd\\xf6\\x82\\x85\\x0d\\x04\\x90\\xaf\\xc3\\xd7\\x35\\xde\\xa0\\x5b\\xa4\\x7c\\x85\\xd9\\x7e\\x83\\x35\\x33\\x51\\x4c\\x19\\x8b\\x4c\\xf6\\xe6\\x6d\\x36\\x0e\\xe5\\xbf\\x00\\xe1\\x4a\\x3a\\xab\\x1a\\xd0\\xe7\\xb8\\xab\\x2a\\xac\\xc9\\x64\\xd4\\x28\\x30\\xc7\\x84\\x53\\xdf\\x19\\x55\\xbb\\xed\\x1c\\xd6\\x8a\\xda\\x3d\\xb0\\xec\\xdb\\x60\\x1a\\xd7\\x66\\x7d\\x5c\\x5e\\x2f\\xd4\\x9e\\x36\\xf7\\x32\\x8e\\xaa\\x33\\x7d\\xbd\\x6f\\xf7\\x0e\\x78\\x98\\xa3\\xf9\\x8c\\x15\\x9d\\x04\\x5a\\x24\\x27\\xad\\xe5\\x33\\x3c\\x88\\xfc\\x4a\\xfd\\x38\\x19\\xdc\\x82\\xf4\\xda\\xa3\\xc5\\x23\\xcb\\x57\\xe3\\x5a\\x2a\\x5a\\x72\\x5d\\x63\\xd4\\x02\\xba\\xef\\x51\\xe5\\x1f\\x1e\\xf4\\xf8\\xf9\\xa5\\x95\\xc9\\x37\\x9c\\x9a\\xba\\x87\\x3f\\xb4\\xe7\\x65\\xa9\\x31\\xda\\x09\\x14\\x8a\\xba\\x6e\\xc5\\xb4\\x48\\x59\\xb0\\xe8\\x1f\\xf9\\xfc\\x22\\x95\\x98\\xac\\x9f\\xbd\\xb0\\xbd\\xbd\\xdb\\x56\\x92\\xa5\\x22\\x22\\xdf\\x52\\xea\\x38\\x7b\\xbb\\xf3\\x6a\\xd6\\x4d\\x19\\x46\\xbd\\x28\\x2e\\x32\\x3f\\xf4\\x82\\x2a\\xd9\\xda\\x89\\x7f\\xf7\\x3f\\x01\\xb3\\x90\\xcf\\xe2\\xe6\\x4d\\xe4\\x92\\xd5\\x5d\\xe7\\x7f\\x5d\\x7d\\x00\\x60\\xa6\\x87\\x2a\\x01\\x83\\xcc\\xba\\x61\\x0f\\x53\\x27\\x4c\\xcb\\x29\\xce\\x6d\\xce\\x6a\\x03\\x6c\\x53\\x17\\xa1\\xed\\x2a\\x7c\\x10\\x68\\xc1\\xb2\\x46\\xfc\\x1d\\x58\\x81\\xd0\\x0d\\xe0\\x6e\\xb4\\x01\\xcf\\xf9\\x5e\\x6b\\x69\\x14\\x86\\x99\\xdb\\x13\\xe9\\x4b\\xb5\\xb2\\x80\\x21\\x2d\\xff\\x54\\xc7\\x0e\\x56\\xde\\x23\\x5a\\x5f\\x14\\x00\\xb5\\xbe\\xa5\\x67\\x72\\xd0\\x60\\x17\\x0f\\x1d\\x06\\x57\\x32\\x15\\x61\\xe4\\xb4\\x91\\x07\\xeb\\x96\\xd9\\xb3\\xbc\\x5a\\xdf\\x45\\x1c\\x2a\\x52\\x4e\\xba\\x4d\\xb0\\x03\\xb7\\x7b\\x63\\x2a\\x5d\\x89\\x82\\x7a\\x62\\x24\\xcc\\x79\\x8e\\x09\\x6b\\xa2\\x7f\\xb3\\x3b\\xf6\\x1e\\x3b\\x8e\\xaf\\x18\\xd0\\x01\\xae\\x8e\\xb5\\x2f\\x85\\xc9\\x0d\\x9e\\x12\\x54\\x48\\x03\\xe6\\x7f\\xf0\\x20\\x47\\xe0\\xd2\\x3c\\x22\\xe7\\xf8\\xb9\\x80\\xc0\\x1c\\x3d\\x48\\x24\\xb2\\xa9\\xa1\\x4a\\x2e\\x8f\\x67\\x2a\\x7b\\x0c\\xe0\\x3b\\xdb\\xb3\\xbd\\x56\\xd7\\x54\\xa0\\x96\\x4d\\xb0\\x1c\\xa8\\x99\\xd4\\x88\\x00\\x15\\x08\\x65\\x7b\\x7b\\x02\\x2c\\xcf\\x04\\x2c\\x38\\xfc\\x19\\x49\\xd0\\xe0\\x0a\\xf4\\xd3\\x01\\xd4\\xf0\\x0c\\x3d\\xea\\x20\\xe3\\x08\\xa0\\xf9\\xdc\\xac\\xb4\\x32\\x22\\xb3\\x82\\x41\\x44\\xaf\\x77\\xbe\\x18\\xa5\\x04\\xaa\\x8d\\x26\\x8b\\x8a\\x56\\x00\\x72\\x5e\\x7c\\xc5\\xf3\\xa2\\xe6\\x25\\x6a\\x80\\x74\\xd1\\xae\\xbc\\xa1\\x23\\xea\\x53\\xa0\\x76\\x7a\\x92\\xe1\\x78\\x3a\\x49\\x83\\xc5\\xef\\x3d\\x7d\\xd7\\xf0\\x2a\\xa9\\xd1\\xf4\\xf9\\xaa\\xc6\\xce\\x25\\x45\\x93\\xf0\\x87\\x92\\x01\\x4f\\xb8\\x67\\xea\\xf8\\x79\\xb8\\x8a\\x4e\\xfb\\x18\\xe8\\x9b\\xa1\\x10\\x06\\xad\\x09\\xd8\\x54\\x31\\xcc\\x26\\x57\\x5b\\x53\\x8d\\x8e\\x78\\x90\\x64\\x6c\\x59\\x88\\x64\\x7c\\xc1\\x05\\xd5\\x82\\x90\\x7a\\xe6\\x25\\xe0\\x9c\\xd0\\x89\\xf4\\x72\\x49\\xe8\\x18\\x14\\xda\\x14\\x04\\x4c\\x70\\x14\\xe8\\x0e\\x7a\\x8e\\x61\\x9c\\x7b\\x73\\x5f\\x70\\x16\\x16\\xb6\\xa3\\xc6\\xf4\\x92\\xcd\\xc6\\xed\\x46\\x3e\\x71\\xa3\\xd2\\x22\\x91\\x48\\x2d\\x90\\xa1\\xde\\x6f\\x09\\x7c\\x4a\\xe2\\x54\\x87\\x61\\x84\\xc5\\x62\\xb1\\x65\\x75\\xb9\\xd0\\xd1\\x93\\x13\\xed\\x98\\x86\\x4f\\x49\\xfe\\x2e\\x1d\\x07\\x4a\\x21\\x21\\x1b\\x2b\\x2a\\x6d\\x27\\xdd\\xb2\\x86\\x11\\x52\\x0d\\x5f\\x71\\x23\\x05\\x8f\\xd0\\x07\\xbb\\x01\\x00\\x1d\\xef\\x07\\xb7\\x92\\xbb\\x05\\xbb\\x74\\x1c\\x12\\x9c\\x6a\\x36\\x37\\x6c\\x38\\x53\\xb8\\xbb\\x4f\\x66\\xb5\\x76\\x0c\\x8e\\xb4\\xec\\xc7\\x30\\x6b\\xa3\\xa9\\x0c\\x70\\xda\\x47\\xc9\\x65\\xf6\\xdc\\xcb\\xdb\\x61\\xa7\\xfd\\xa1\\x8e\\xe9\\x67\\xcf\\x8c\\x5f\\x05\\x03\\x11\\x09\\x2d\\x0f\\xde\\xea\\xed\\xd1\\x26\\x5d\\xef\\xdd\\x66\\x0a\\xbe\\x70\"},\n{{0x08,0xbf,0x05,0x9b,0x4d,0xa9,0xaa,0x7f,0xfc,0x70,0x2f,0x5b,0x23,0x04,0xc4,0xf9,0x6c,0xa4,0x9b,0x7d,0xab,0xb6,0xaf,0xb4,0x1d,0xc9,0x1c,0x0f,0x00,0xc6,0x5b,0x78,},{0xa6,0x28,0x9b,0xa2,0x8e,0x80,0xe8,0xd1,0xa3,0x19,0x22,0x3e,0x41,0x65,0xdc,0x0b,0xce,0x73,0x52,0xaa,0xf2,0x42,0xf7,0x0c,0xc9,0x68,0xd2,0x1d,0x77,0x75,0x28,0x32,},{0xe2,0x47,0x65,0x86,0x01,0x37,0x68,0x9a,0xad,0x50,0xeb,0xee,0xfc,0x8d,0x6d,0xb8,0xe9,0x36,0xa4,0xcb,0xa6,0x2c,0xe8,0x7a,0x7f,0x58,0x02,0x09,0x38,0x4a,0x9d,0x7e,0xec,0x90,0x70,0x90,0x5f,0x60,0xad,0x63,0xa7,0xbe,0xfd,0x7c,0x70,0xf0,0xae,0x7c,0x81,0x09,0x16,0x9a,0xee,0x4e,0x51,0x8f,0xce,0xbf,0xac,0xa7,0x23,0xc5,0xb2,0x07,},\"\\xbd\\x4f\\xb2\\x8a\\x1d\\xd0\\x8b\\x07\\xba\\x66\\xe1\\x7f\\x0c\\x4f\\x21\\x85\\x3f\\xef\\xef\\x1c\\x9d\\x20\\xba\\x79\\x77\\xf1\\x54\\x64\\x1e\\xa1\\xa1\\x8b\\xec\\xf6\\xbb\\xb8\\x03\\x88\\x88\\x62\\x94\\xe0\\x75\\x6a\\x3c\\x50\\x8f\\xfd\\xfe\\x90\\xb5\\x1e\\x13\\x56\\xd1\\x12\\xd8\\xcd\\xe5\\xee\\x2c\\xc6\\x33\\x2e\\x61\\xd1\\x69\\xcc\\xc8\\xcc\\x93\\x49\\x94\\xf1\\xbb\\x56\\x0f\\xa4\\x66\\x0c\\x0b\\x0f\\xd4\\xe8\\x14\\x9a\\x22\\x5e\\xd4\\x88\\x3e\\x68\\xfb\\xb6\\x9d\\xa7\\xaf\\x8a\\x52\\x4b\\x17\\x14\\x1c\\xcb\\x76\\xb5\\x0c\\xd8\\xe1\\xb6\\x7d\\x3c\\xe0\\x37\\xde\\xd7\\xdf\\xa5\\x9b\\xc7\\xc2\\x67\\x42\\x26\\xec\\x7e\\x07\\xb7\\x8e\\xa3\\xf7\\x82\\xfd\\xa3\\xe5\\xf1\\xe9\\xca\\xea\\xb6\\x08\\xca\\x38\\x7c\\x30\\x46\\x54\\xf8\\x01\\xd0\\x0e\\x10\\xa7\\xc2\\x9f\\x4b\\x0d\\xa3\\xe5\\xf8\\x95\\x13\\xa9\\x80\\x37\\x71\\x9a\\x1a\\xef\\x4c\\x25\\x06\\xc1\\x77\\xaf\\x54\\x51\\xa0\\x07\\x57\\xa5\\x9f\\x16\\x22\\x9c\\x4f\\x44\\x14\\xdf\\x51\\x58\\x0d\\x48\\x21\\x0d\\xab\\xc9\\x37\\x73\\x70\\xb6\\x06\\x8a\\x88\\xe8\\x1d\\x3a\\xd1\\xbe\\xd4\\x98\\x51\\x55\\xc3\\x60\\x0f\\xf4\\x87\\x68\\xb9\\x03\\x02\\x2f\\xe0\\x2a\\xe4\\x80\\xf2\\xe6\\x32\\x9f\\x0b\\xcc\\x91\\xd7\\x5f\\x5c\\x6a\\x09\\xfd\\xf7\\x7b\\xde\\x90\\x49\\x9f\\x3c\\xa3\\x95\\xcb\\x20\\x06\\x2a\\x09\\x84\\xad\\x6a\\x01\\x41\\xfd\\x01\\xc2\\xd5\\x4d\\xfb\\xb1\\xee\\x58\\x46\\x10\\x64\\x07\\x73\\x43\\x9a\\x16\\x58\\xd2\\xc9\\xf8\\x62\\xf1\\x83\\xbf\\xef\\xb0\\x33\\xa3\\xbe\\x27\\x18\\x12\\xf1\\x3c\\x78\\x70\\x46\\x57\\xe7\\xfb\\x4f\\x85\\x01\\x75\\xfc\\xd6\\x3d\\x3e\\x44\\x05\\xd1\\x92\\x24\\x2c\\x21\\xf2\\x7c\\x51\\x47\\x7f\\x32\\x11\\xa9\\xce\\x24\\x8e\\x89\\x2b\\x42\\xfb\\x6d\\x85\\x82\\x0f\\x41\\xb8\\x97\\x83\\x6f\\x20\\xf8\\x5a\\x13\\x11\\x53\\x4b\\x5c\\x40\\x4f\\x8b\\x7a\\x4a\\x03\\x19\\xbc\\x6c\\xec\\xaa\\x57\\xfe\\x4d\\x4f\\x20\\x60\\x7c\\x99\\xc2\\xdf\\x22\\xfa\\x06\\x76\\xf9\\x9d\\x1b\\xd8\\x78\\x86\\xc9\\x28\\xc4\\x98\\x8c\\x6e\\x78\\xc5\\x7d\\x75\\x83\\x30\\xe6\\x92\\x2c\\xbe\\x03\\xc1\\x03\\x40\\x25\\x3d\\x0d\\xd4\\x83\\x79\\x2c\\xe7\\x5e\\x6c\\xd0\\x9d\\x12\\xfb\\xbb\\x04\\x1f\\x02\\x05\\xe6\\x5a\\xd2\\x5c\\xe7\\xc1\\xb2\\x4e\\x77\\xee\\x8d\\x6f\\x91\\x5e\\x3b\\xc3\\xe1\\x0d\\x09\\xfb\\xd3\\x87\\xa8\\x4b\\xda\\xab\\xfd\\x1c\\xed\\xb5\\x2c\\x0b\\x17\\x33\\xb5\\xf4\\x70\\x88\\xc0\\xd3\\x5e\\x0e\\xf4\\x58\\xc8\\x54\\x14\\xc2\\xb0\\x4c\\x2d\\x29\\xf6\\x3f\\x77\\x58\\x61\\x31\\xee\\x65\\x53\\x0f\\x20\\x9b\\x51\\x8a\\x0f\\x25\\x7a\\x07\\x46\\xbb\\xd5\\xfe\\x0a\\x2e\\x0c\\x38\\x8a\\x6c\\x48\\x0e\\x1b\\x60\\x71\\x4f\\xee\\x1c\\x59\\x41\\xbb\\x4e\\x13\\xf7\\x07\\xea\\xc4\\x87\\xa9\\x66\\x6a\\x72\\x3b\\x57\\x93\\x13\\x4a\\x26\\x8b\\x77\\x59\\x77\\x86\\xc3\\xa3\\x19\\x3b\\x46\\xd3\\x55\\xdd\\x08\\x95\\xfc\\x62\\x16\\xc5\\x36\\xa5\\x42\\xff\\xd7\\xd7\\xb0\\x80\\x10\\xc8\\x6f\\x54\\x7a\\x5d\\xaa\\x38\\x33\\x5a\\x8b\\xfa\\x26\\x55\\xd5\\xf7\\x1b\\x4d\\x88\\x07\\xf5\\x0c\\x85\\x45\\xc5\\x83\\xdd\\x0b\\x69\\x00\\x22\\xee\\x65\\x87\\x3a\\xea\\x3e\\x8f\\x1a\\x56\\x5f\\x3b\\x0e\\x4e\\x02\\x95\\xfb\\x0d\\x32\\x1f\\x5c\\x0b\\x39\\x7f\\x2f\\xd0\\x52\\x8f\\x86\\xa0\\xd1\\xb7\\x07\\xf7\\x37\\xb1\\x75\\xc6\\x9e\\x9e\\x7a\\xe3\\xc8\\x4d\\x4b\\x2c\\xf3\\xa3\\x8a\\x63\\x1a\\xa8\\x03\\x2b\\x3e\\x65\\xbb\\x45\\x28\\xf6\\x6d\\x0b\\xfd\\x34\\x47\\x3e\\xd0\\x10\\x1d\\x2a\\x61\\x25\\x5b\\x21\\x5b\\xc1\\xcb\\xab\\x9a\\x26\\xd2\\xb9\\x69\\x32\\x4b\\x77\\xc8\\xa5\\x46\\x4e\\x5b\\x23\\xdf\\x6c\\x51\\x12\\xf9\\xd1\\x7c\\x58\\x7d\\x95\\x55\\x9d\\xe2\\x12\\xad\\x24\\x1d\\x8b\\x12\\x60\\x50\\xe5\\xfd\\xdf\\xcc\\x83\\x9a\\x7e\\x5a\\xa2\\xfd\\xa1\\xca\\x20\\xc0\\x91\\x0d\\x86\\x34\\x18\\xf1\\x95\\xb3\\x8a\\xdf\\xcc\\x36\\xe9\\x2f\\x23\\x96\\xac\\x31\\x44\\xb5\\x37\\xb3\\x0f\\xbe\\x4d\\xde\\x61\\x49\\x02\\xf8\\x99\\x78\\xb7\\xfb\\x42\\xcd\\x99\\xf1\\x3d\\x99\\xc4\\x5c\\x73\\x4f\\xb8\\x2c\\x32\\x59\\xf9\\x0b\\x88\\xfd\\x52\\xbd\\xcb\\x88\\xf7\\xee\\xec\\xdd\\xe4\\xc2\\x43\\xd8\\x80\\xba\\xc7\\x61\\x4e\\x15\\xcf\\x8d\\xb5\\x99\\x3f\\xfa\"},\n{{0xdb,0xbd,0x0f,0x7e,0xcb,0x64,0x82,0xcb,0x01,0xc4,0xdb,0xdc,0x38,0x93,0xc0,0xdb,0x81,0xe8,0x31,0x35,0x3a,0x5b,0x01,0xcc,0x75,0xd3,0xb1,0x1f,0x2f,0xf3,0xc5,0x9c,},{0x2d,0x4e,0x58,0x8d,0x31,0xa3,0x84,0xb1,0x78,0x58,0xc0,0xd7,0x84,0xf6,0x71,0x2b,0xaf,0xd0,0xb4,0x12,0x04,0xcf,0x8f,0x0d,0x57,0x97,0x3e,0x59,0xc7,0x70,0xd3,0xda,},{0x96,0xc0,0x03,0x61,0xfb,0x71,0xc5,0x23,0x05,0xe1,0xab,0x77,0x07,0xe0,0x46,0x52,0x03,0xeb,0x13,0xdf,0x3e,0x06,0x55,0xf0,0x95,0xfb,0x33,0x19,0x42,0xa4,0x0b,0x15,0x58,0x41,0x43,0xb3,0x70,0xa7,0xdd,0x57,0x61,0xfb,0x03,0xc0,0x75,0xd0,0x4a,0x83,0x48,0x66,0x1c,0xce,0xa9,0xad,0xa5,0x33,0x65,0xb5,0x00,0x08,0x7d,0x57,0xec,0x0c,},\"\\xe0\\xff\\xf3\\x59\\x75\\xeb\\xa7\\x8d\\xa2\\xb0\\xff\\xcc\\x5c\\x1b\\x66\\x36\\x00\\x88\\x8e\\x82\\x55\\xcd\\x20\\x8f\\x6d\\xce\\x7e\\x88\\x95\\x3b\\x71\\x42\\x93\\x73\\x89\\xa3\\x37\\xae\\x82\\xf4\\xcf\\xe3\\x2f\\xcb\\x34\\xf5\\x52\\xa4\\x8f\\xa8\\x89\\x9e\\x1a\\x65\\x9e\\x3e\\xd3\\xd3\\xd2\\x90\\xef\\xc9\\xa0\\xf7\\xde\\xdf\\x33\\xe2\\x1d\\x04\\x8d\\x8d\\x91\\x07\\x57\\x03\\x7b\\x76\\xe8\\xa7\\xee\\x9e\\x4e\\xca\\x30\\xf5\\x29\\xdd\\xc0\\x2c\\xef\\xfc\\x26\\xd6\\x4f\\xda\\x73\\x03\\xcc\\x0d\\x89\\x40\\xe9\\xef\\x59\\xdc\\x98\\x3c\\x12\\xcc\\xd1\\xd2\\x71\\x7e\\x64\\xd3\\x00\\x6a\\xf8\\x2a\\xb1\\x5b\\xb8\\x78\\xbb\\x89\\xd1\\x75\\x8b\\xe4\\x43\\x10\\x42\\x06\\x38\\xb9\\x6a\\x0b\\x5e\\x1e\\x65\\x00\\x9d\\x69\\x39\\x5d\\x02\\x7a\\x5d\\xa4\\xa8\\x5e\\x90\\x1b\\xe9\\xaa\\x2c\\x0b\\x3a\\xcc\\x50\\x8e\\xe1\\x85\\x74\\xc1\\xb2\\xfa\\x9b\\xd5\\xd7\\xae\\x7c\\x7d\\x83\\x07\\x12\\xda\\x5c\\xbf\\x26\\xbe\\x09\\xa3\\x12\\x84\\x70\\xa1\\x2a\\x14\\x90\\x9a\\x80\\xa2\\x66\\x65\\x9b\\xef\\xda\\x54\\x8f\\xd2\\xb2\\x2f\\x24\\xc5\\xfd\\xc2\\x06\\xed\\x3a\\x4e\\x75\\xf5\\x32\\x06\\x82\\xed\\x0e\\x4c\\xe8\\x17\\xd6\\x3d\\x5c\\x7f\\x1e\\xe2\\xb4\\x40\\x64\\x33\\x55\\xbe\\x65\\x42\\xf5\\x9d\\xc6\\xc4\\x5a\\xb1\\x57\\x72\\xf2\\x21\\x9a\\x81\\x2e\\xf7\\x52\\x76\\x42\\x01\\x5b\\xc7\\x5f\\xe4\\x5b\\xa9\\x69\\xe8\\x10\\x0c\\x26\\x8e\\x24\\xce\\xef\\x92\\x05\\xa8\\x3a\\x3f\\x7b\\x5a\\xe8\\x00\\xad\\x06\\xe0\\x95\\xb9\\xb1\\x39\\x21\\x94\\x89\\x79\\x3a\\x7b\\xce\\x84\\xeb\\xeb\\x65\\x4a\\xb6\\x66\\x9e\\x28\\x55\\xcc\\xbe\\xb6\\x94\\xdd\\x48\\x65\\x15\\x05\\xb9\\x59\\xd3\\x2a\\x77\\x02\\x0b\\x86\\x95\\x33\\xe3\\x25\\x6d\\x40\\x68\\x5a\\x61\\x20\\xba\\xb7\\x94\\x48\\x5b\\x32\\xe1\\x16\\x92\\x56\\xfb\\x18\\x8f\\xe7\\x6e\\x04\\xe9\\xef\\xa6\\xd1\\x0d\\x28\\x6a\\xe8\\x6d\\x6f\\x1c\\x87\\xe8\\xfc\\x73\\xad\\x9b\\x59\\xfe\\x0c\\x27\\xee\\x92\\xa4\\x64\\x15\\xb3\\x9d\\x78\\x6d\\x66\\x32\\x5d\\x7f\\xa6\\xfd\\xa7\\x12\\xf1\\x99\\xda\\x55\\x4f\\xc1\\xc8\\x99\\x44\\xa4\\xe8\\x4c\\x19\\x6e\\x97\\x9a\\x80\\x75\\x53\\x71\\x8c\\xb8\\x1c\\x07\\x6e\\x51\\x1e\\x60\\x9d\\x5c\\xac\\x23\\xd8\\xf4\\x5b\\x38\\xb9\\x4b\\xcf\\xcf\\x15\\x8d\\x0d\\x61\\x60\\x22\\x38\\xd5\\x2e\\x3a\\xe8\\x4c\\x81\\x53\\x22\\xf5\\x34\\xf2\\x54\\xe6\\x33\\x89\\xae\\x15\\x5d\\xee\\x2f\\xa9\\x33\\x96\\xf0\\xea\\x49\\x9d\\x5d\\x08\\xc2\\x47\\x59\\x08\\xc6\\x48\\xbd\\xdc\\xee\\x59\\x1e\\x13\\x37\\xe9\\x42\\x1d\\xc5\\xa2\\x57\\xce\\x89\\xcc\\xce\\x4c\\xee\\xa8\\x09\\xd7\\xe8\\x71\\x34\\xe0\\x39\\xdb\\x1b\\xe5\\x98\\x19\\x6d\\x30\\x89\\xfd\\xcf\\xa8\\x97\\x8e\\x02\\xc1\\x55\\x58\\x32\\xda\\x0a\\x72\\xb0\\x8a\\xd0\\x7c\\xdd\\x07\\x26\\x27\\x40\\x9c\\x87\\x39\\x37\\xb0\\xe8\\x35\\x71\\x5b\\xaa\\xf2\\x60\\x8b\\x23\\x95\\x32\\x74\\x67\\xcf\\x69\\xa1\\xcd\\xcc\\xe6\\x37\\x24\\x18\\x38\\x3e\\x7b\\x89\\xc8\\xdf\\x4d\\x53\\x1f\\x58\\x51\\x49\\x50\\x9e\\xad\\x1e\\x41\\xb6\\x62\\x7f\\xea\\x81\\xc7\\x95\\x8c\\xb4\\x9d\\x2d\\x3c\\x3e\\x2f\\xc6\\x91\\xe0\\xb8\\xcf\\x72\\x67\\x9c\\x08\\xb8\\x90\\x46\\x54\\x53\\x1b\\xc4\\x36\\x8f\\xb6\\x17\\xac\\x75\\x57\\xd9\\xdb\\x8d\\x32\\x9d\\x77\\xe4\\x8d\\x8f\\xb4\\xde\\x73\\xab\\xe7\\xcb\\x93\\x88\\x27\\x4a\\xf5\\x85\\xf8\\x75\\xc0\\xda\\xb7\\x93\\xe4\\x35\\x35\\x18\\xbb\\x24\\x69\\x53\\x42\\xaf\\x0f\\x5d\\xf5\\xbe\\x4e\\x9c\\x7a\\xd2\\x15\\xbe\\x90\\xe2\\x55\\x40\\xda\\x34\\x89\\x71\\x7d\\xd3\\xd2\\x92\\x54\\x58\\x5a\\x45\\xc1\\x3e\\x6d\\xcc\\x7e\\x9c\\x8a\\x3a\\x79\\xff\\x75\\x5c\\xbe\\x46\\x5b\\x25\\xe2\\x3a\\x1d\\xa6\\x08\\xe1\\x08\\x4f\\xec\\x83\\xbf\\xf8\\x0c\\xfb\\x74\\x42\\xb1\\x46\\x01\\x87\\x30\\x7a\\xcd\\x75\\xe3\\xf2\\xd1\\x28\\x43\\xa7\\x70\\x94\\xac\\xc3\\x28\\x88\\xfb\\xe5\\xf1\\xfc\\x24\\xc6\\x15\\xd1\\x9a\\x06\\x53\\x91\\xd4\\x17\\x64\\x74\\x64\\x42\\x46\\xb5\\x34\\x3d\\xa7\\x76\\x26\\xa2\\xd4\\x83\\xfe\\x20\\x4f\\x83\\x93\\x28\\x77\\x5b\\x71\\xa4\\xcb\\x56\\x72\\x73\\xe1\\x69\\x64\\x0a\\xf9\\x3d\\xde\\x3e\\xca\\x91\\x16\\xf4\\x00\\xe2\\x3a\\x7a\\xd3\\xd8\\xfc\\x3a\\x28\\xe5\\x65\\xf1\\x25\\xd6\"},\n{{0x74,0x8b,0xb3,0xcd,0x47,0x71,0x37,0xbc,0x88,0x0e,0xa7,0xc6,0x1d,0xf2,0x5c,0x1d,0xac,0x6e,0xbe,0xc9,0xe6,0xc3,0x19,0x3d,0x81,0xff,0xa6,0xf7,0xa8,0x1e,0xc6,0x67,},{0x10,0x6f,0x28,0xcf,0xed,0xf0,0x96,0x45,0x42,0x26,0xb3,0xb0,0x1f,0xc2,0x4a,0xb1,0xc9,0xbb,0xd7,0xf2,0xb0,0x97,0x3e,0x56,0xfe,0x2f,0x4c,0x56,0xa0,0xb1,0x47,0x5b,},{0xe1,0x3c,0xa8,0xe5,0xce,0x7c,0x26,0x80,0x90,0x90,0x8d,0x61,0xcf,0x2f,0x0a,0x3e,0x45,0x72,0x41,0x2b,0xf5,0xad,0xfc,0x5a,0xdd,0xfe,0x88,0x55,0x6f,0x14,0x8b,0x5f,0xcb,0xe3,0xe1,0xbc,0x65,0xff,0x16,0x11,0x7d,0x35,0xc9,0xd5,0xdc,0x3b,0x11,0x71,0x98,0xf8,0x84,0x92,0x5b,0x40,0x35,0xb2,0xc0,0xde,0x6c,0x40,0x2e,0xd4,0x7a,0x01,},\"\\x00\\xde\\x6d\\x99\\x0c\\x84\\x33\\x8a\\x39\\x8f\\xda\\x5f\\x4a\\x2c\\xca\\x73\\x3c\\x56\\xb2\\xa2\\xea\\x39\\x6c\\x2f\\xe6\\x67\\xc2\\x68\\xe3\\x81\\x45\\x87\\x85\\x39\\xbd\\x41\\xbc\\x14\\x0a\\x2c\\xdf\\xe7\\xe1\\x83\\x60\\x41\\x10\\x48\\xcc\\xa6\\x0f\\x35\\xce\\x51\\x09\\x91\\xdf\\x26\\x1c\\xbf\\x66\\x90\\x39\\xd9\\xd2\\x56\\x87\\xa0\\x7f\\xc0\\x47\\x6a\\x41\\xf5\\x0e\\xcc\\xf3\\x81\\x53\\xee\\x6a\\xe9\\xff\\xd3\\x92\\xb2\\xbe\\xc0\\xcc\\x67\\x10\\x1e\\xc3\\x69\\x6d\\x7a\\x2e\\xc8\\xcb\\xd4\\x47\\xb6\\xa6\\xea\\x06\\x3d\\x33\\xec\\x12\\x8a\\xe8\\xb5\\x75\\x77\\xde\\xe1\\x7b\\x97\\x16\\x25\\x63\\xf1\\x5e\\x42\\xb5\\x5c\\xa4\\xbe\\xdb\\xdf\\xb6\\x31\\xa9\\xf6\\x26\\x2f\\x94\\xae\\x35\\xbb\\x35\\xf7\\x95\\xc3\\x5a\\x01\\xde\\xdb\\x46\\x45\\xa7\\x3c\\xfa\\x6e\\xd9\\xee\\x52\\x1e\\x46\\x31\\xfb\\x17\\xbb\\xc0\\x6e\\xe5\\x73\\x16\\xbe\\x52\\x74\\x27\\xc8\\xaa\\x55\\xc6\\x31\\x18\\x74\\x62\\xd4\\xb2\\xc8\\x82\\x2c\\xa4\\xe1\\x8b\\x7a\\x5d\\x4c\\x11\\x4c\\x11\\xdc\\x22\\x06\\x9b\\xc8\\x32\\x65\\x6d\\x5f\\x4d\\x39\\x54\\x87\\x18\\xc5\\x1f\\x5e\\x4f\\xc8\\x28\\xf6\\x0e\\x37\\xf0\\x13\\x07\\x50\\x52\\x65\\xac\\xb2\\x2d\\x5e\\x8d\\x76\\x7b\\x9a\\xa7\\xb8\\x66\\xa1\\x57\\xc6\\x43\\x87\\x3e\\x09\\x08\\x4a\\x1a\\x40\\x4a\\x7b\\xb5\\x8c\\xcc\\x4b\\x5a\\x39\\x0f\\xd3\\x06\\x01\\xc8\\x96\\x93\\x5e\\x35\\x56\\xf6\\x0d\\x2d\\xc6\\xbd\\xff\\xe4\\x7d\\xa0\\xa6\\x87\\xc8\\xec\\xe1\\x24\\x1f\\xf6\\xc0\\x7d\\x77\\x61\\x11\\xca\\x65\\x98\\xfc\\xa9\\x68\\xcb\\x6a\\xfa\\x0a\\x14\\xa3\\x4a\\xb8\\xf5\\x4b\\x95\\xd3\\xd8\\x47\\x3a\\x17\\x4b\\xc7\\x25\\x52\\x3f\\x86\\x74\\xdf\\xb2\\xb1\\x0f\\x87\\x42\\x07\\xfe\\xe1\\xb0\\x8b\\x42\\xda\\x1f\\x58\\x65\\x53\\x05\\xa3\\x59\\x75\\x7a\\xa0\\x25\\x1f\\x14\\x13\\x8e\\xed\\xbc\\x28\\x0c\\xbd\\x38\\x5b\\xf4\\xbb\\xf5\\x53\\x01\\x14\\xcc\\x43\\xb0\\x47\\x47\\x79\\xe2\\x04\\x96\\x2f\\x85\\x60\\xd4\\xaa\\x42\\x3e\\x17\\xe6\\xae\\xca\\xce\\x66\\xc8\\x13\\x78\\x4f\\x6c\\x89\\x8b\\x5b\\x9c\\xb7\\x46\\xa9\\xe0\\x1f\\xbc\\x6b\\xb5\\xc6\\x60\\xf3\\xe1\\x38\\x57\\x4f\\x59\\xb9\\x74\\x54\\x45\\x48\\x6c\\x42\\x2b\\xc0\\x6a\\x10\\xcc\\x8c\\xc9\\xbc\\x56\\x45\\x8e\\xf8\\x5e\\x0e\\x8a\\x02\\x7c\\xb0\\x61\\x7d\\x03\\x37\\xdd\\xda\\x50\\x22\\x0b\\x22\\xc5\\xc3\\x98\\xf5\\xce\\x05\\xec\\x32\\xf0\\x9b\\x09\\x0f\\x7c\\xf6\\xc6\\x0f\\x81\\x8c\\x6b\\x4c\\x68\\x30\\x98\\x3e\\x91\\xc6\\xea\\xdf\\x1e\\xae\\x4d\\x54\\xbd\\xe7\\x54\\xf7\\x5d\\x45\\x0a\\xe7\\x31\\x29\\xf6\\xc4\\xff\\x5c\\x4c\\x60\\x6f\\x7c\\xad\\xbf\\x4f\\x78\\xa1\\x8d\\xb2\\x96\\x1c\\xc8\\xc8\\xdd\\xab\\x05\\x78\\xcf\\xed\\xfc\\xf9\\x5e\\xf0\\x88\\x8a\\xfd\\x38\\x55\\x37\\xd1\\xd0\\xa0\\x76\\x48\\xa5\\xce\\x25\\x22\\xd0\\x63\\x35\\x07\\xd7\\x75\\x93\\xe1\\xa0\\x36\\x6d\\x1e\\xce\\x84\\x3d\\xe6\\x98\\x67\\xd7\\xac\\x44\\x2b\\xa7\\xda\\xd2\\xa9\\x0b\\x59\\xd8\\x98\\x4e\\x4a\\x94\\x6b\\xbe\\x5f\\x17\\x2d\\xa4\\x27\\x63\\x8b\\x2b\\x61\\x20\\x90\\x41\\xff\\xf5\\x0e\\x60\\xec\\x02\\xec\\x2c\\x0b\\x1d\\xc4\\xbe\\x2e\\xdd\\x13\\xe8\\x7b\\x64\\xd1\\xd1\\x66\\x31\\x14\\x57\\x3c\\xf5\\x8a\\x17\\x73\\x9f\\x46\\x3a\\x1c\\x3d\\x6b\\x21\\x23\\x39\\x01\\x83\\xb5\\x05\\xc8\\xee\\xff\\xb2\\x05\\x39\\xbd\\xfe\\xeb\\x40\\x77\\x6d\\x20\\xc4\\x59\\xba\\xc4\\x56\\x99\\x68\\xfc\\xaf\\xe4\\x4e\\xa4\\xcd\\x62\\x4a\\x84\\xbf\\xcc\\xd7\\x87\\x6d\\xd7\\xbf\\x55\\xf8\\x3a\\xc7\\x04\\x0e\\x30\\xf3\\x26\\xdc\\xe3\\x25\\x58\\x8e\\x1b\\xa5\\xbc\\x07\\x90\\x26\\x5d\\xfd\\xba\\x09\\x83\\x9e\\xef\\x57\\x16\\x41\\xe8\\xa1\\x23\\x4b\\x6c\\xfc\\x3a\\x36\\xa8\\x66\\xbd\\x6b\\x92\\xcd\\x71\\xec\\x74\\xe0\\xd4\\xde\\xb9\\xe7\\x4d\\x15\\x82\\x01\\xaa\\x50\\x2f\\x07\\xc8\\xba\\x34\\x8a\\xc2\\x6a\\xaf\\x9b\\x3d\\x07\\x0c\\x9a\\x40\\xb5\\x2a\\x44\\xe9\\x32\\x55\\x2b\\x67\\xa2\\xdf\\x05\\xa7\\xf0\\xf0\\x3c\\x61\\x7b\\x48\\xdc\\x27\\x82\\x36\\x6a\\x23\\x1e\\x0c\\x4e\\x39\\x38\\xa4\\x27\\x4b\\x36\\xaa\\x94\\x50\\xff\\x93\\x6b\\xe1\\x32\\xdc\\xb6\\x92\\x83\\x8d\\x65\\x4c\\x94\\x54\\x2c\\x6e\\x04\\x7a\\x7f\\x78\\xba\\x71\\x19\\x19\\xf9\\x08\\xa1\\x5b\\x30\\xb9\"},\n{{0x39,0x3d,0x44,0xdd,0x0d,0xed,0x71,0xfc,0x08,0x47,0x7b,0xd2,0x5e,0xd0,0xe6,0x62,0x9f,0xa7,0xf8,0x8f,0x08,0x2e,0xbc,0xef,0x09,0x18,0x98,0xe5,0xc9,0xe3,0xd5,0xb8,},{0xc5,0x2a,0x99,0x3b,0x80,0x2d,0x84,0x54,0x0d,0x27,0x54,0x79,0xa1,0xaf,0x5e,0x28,0x7d,0x19,0xea,0x13,0xb3,0x80,0xfa,0x30,0x68,0xd2,0xf2,0xc6,0x8e,0xb9,0x7a,0x09,},{0x84,0xc7,0x16,0xe6,0x0d,0xe6,0x7b,0x02,0x0c,0xc1,0xa6,0xa2,0x4e,0x65,0x49,0xfe,0x56,0xc6,0xd9,0x41,0xa8,0xed,0xea,0xe4,0x07,0x62,0x66,0x66,0xc3,0x1c,0xb6,0x0d,0xee,0x6b,0xe5,0xa7,0x1e,0xbd,0x76,0xba,0xf7,0x1b,0x75,0x11,0x4b,0xcc,0xfd,0x37,0xd1,0x63,0xa9,0x68,0xbb,0xee,0xc1,0xf7,0x69,0x72,0x15,0x12,0x96,0xc4,0x7e,0x07,},\"\\x14\\x2b\\x6e\\x82\\x50\\x13\\x62\\xd5\\x5a\\x04\\xb8\\x9d\\x54\\x1a\\x79\\x68\\x63\\xd7\\x78\\x38\\x40\\xd3\\x4c\\xbd\\xfc\\x51\\x6a\\x3c\\x84\\x77\\x2f\\x92\\x44\\x6f\\x5f\\x0d\\xf4\\xc4\\x5c\\x6e\\x0d\\xc8\\xec\\x1e\\x9b\\xb0\\xff\\x7e\\xc1\\x69\\x6a\\x09\\xcd\\x7a\\xe3\\x4c\\x10\\xf8\\xe6\\x1a\\x9a\\xca\\xbd\\x43\\x03\\xf0\\xa9\\x24\\x72\\x37\\x62\\x1c\\x49\\x0e\\x8d\\x9d\\x0f\\xe4\\x44\\x82\\xc5\\x60\\xd0\\x51\\xb8\\x2b\\x07\\x4a\\xc3\\xd8\\xe4\\x9b\\xb2\\xac\\x71\\x5a\\xc4\\xcd\\xe3\\xd4\\x70\\x9d\\x0e\\xa3\\xaf\\xc5\\x1b\\xfd\\xef\\x4b\\x65\\x67\\x71\\xfb\\xd5\\x5f\\x89\\xda\\x9f\\xa6\\xdc\\xaa\\x62\\xcb\\xae\\x56\\x12\\x08\\xd9\\x8c\\xfa\\x24\\xcb\\x81\\x25\\x2b\\x89\\x5f\\x6a\\x4a\\x92\\xc8\\xe4\\x07\\xaf\\x6c\\x1f\\x1e\\xf4\\x9d\\x8d\\xde\\x15\\x4f\\xbc\\xb1\\xca\\x45\\x7a\\x20\\x4b\\x5e\\xa5\\x43\\x2e\\x4d\\x71\\xfb\\x7e\\xb2\\x4d\\x43\\xf6\\xfe\\x25\\xe7\\xb4\\xc6\\x59\\xb0\\xee\\xbc\\x4c\\xbc\\xc8\\xb3\\xcf\\xde\\x07\\xc8\\xf0\\x7b\\x18\\xa5\\x15\\x70\\xe7\\x16\\x3e\\x33\\xb3\\x17\\xb6\\x13\\x60\\xf9\\xce\\x08\\xd9\\x5d\\xe2\\xc3\\x15\\x6a\\xf1\\xcc\\xc9\\xb5\\x5b\\xcf\\x81\\xea\\xbf\\x3c\\x40\\x43\\x40\\x46\\xbb\\xe8\\x2e\\x02\\x99\\x2a\\x2a\\xc8\\xb3\\xb4\\x25\\x68\\x0a\\x23\\xd9\\x34\\x72\\x6c\\xb1\\xb7\\xbf\\x26\\xce\\xb5\\x2a\\x39\\x02\\x2c\\x00\\xac\\xf4\\x25\\x25\\x71\\x67\\xb8\\x21\\x18\\x5f\\x68\\xe3\\xed\\x17\\x90\\x3d\\x8d\\x22\\x27\\x54\\x98\\xc3\\x9a\\x9e\\x8d\\xf8\\x84\\xec\\x00\\x55\\x8d\\xcf\\xa4\\x3b\\x8a\\x11\\x9c\\x2e\\x85\\x3b\\x9a\\x03\\x18\\xbb\\xea\\x08\\x7f\\x9c\\xec\\x17\\xca\\x49\\xb7\\x08\\x17\\xb8\\xd7\\xc1\\x70\\xa8\\x90\\x6f\\x3e\\xe9\\xe8\\xf8\\xcb\\x27\\xa1\\xd0\\xf5\\x75\\xab\\xfa\\x62\\x7e\\x88\\xf0\\x8c\\xa4\\xb9\\x3c\\x32\\x97\\xc4\\xf3\\x17\\x07\\x2f\\x42\\x1c\\x5e\\x60\\x2e\\x2f\\x83\\x1d\\xfb\\x82\\x55\\x1b\\xdc\\xe8\\xd7\\x12\\x16\\xf0\\x5c\\xf9\\xa2\\x77\\x3b\\x90\\xfc\\x93\\xb9\\xd8\\x55\\xa9\\x1e\\x35\\xad\\xe3\\x32\\xa5\\x06\\x1f\\xdb\\x82\\xb3\\x09\\xba\\xb4\\xf5\\x6e\\x2d\\x58\\x6a\\x84\\xc6\\x74\\x81\\xd1\\x90\\x2c\\x26\\x1b\\x3f\\x97\\xdc\\x30\\xb1\\x84\\x61\\x9d\\xf9\\xfd\\xfc\\x7a\\x32\\x9d\\x06\\x1a\\x41\\xdf\\x33\\x22\\x02\\x13\\x3d\\x8e\\xae\\xed\\xdb\\x4c\\xfc\\xee\\x53\\x53\\x6e\\x07\\xaa\\xd1\\x15\\x53\\xdc\\xf5\\xed\\x1e\\x94\\x9d\\x45\\x35\\x5f\\x9e\\xf4\\x2c\\x78\\x32\\xb0\\xde\\x7c\\x2f\\x15\\x26\\xfb\\xef\\x86\\xb6\\x36\\x49\\xb6\\xb8\\x5a\\xe5\\xca\\x86\\xf0\\xce\\xa6\\xdf\\x9c\\x12\\x6c\\x1d\\x79\\x48\\x9c\\xc3\\xbf\\xc6\\xe8\\xbf\\x03\\x46\\xeb\\x30\\xd0\\x16\\x43\\xc0\\x10\\x15\\x0c\\x5c\\x8d\\x0e\\xb5\\x01\\x0a\\x46\\x11\\x22\\x15\\x13\\x79\\x91\\x08\\x5e\\x57\\x49\\x3b\\x22\\xe8\\x35\\x26\\xb7\\xb1\\x72\\xc6\\xc7\\x34\\x1c\\x40\\x32\\x1e\\x9c\\xeb\\x7c\\x82\\xbf\\xba\\xa4\\x8f\\x3b\\xd8\\xf5\\x13\\x72\\xd9\\x6d\\x47\\x44\\x4f\\xf0\\xd8\\xbb\\x2e\\x5f\\xd2\\x65\\x14\\xeb\\x63\\x91\\x05\\xe3\\x38\\x95\\xfd\\xc4\\x1f\\x6d\\xf1\\xfb\\xfd\\xcb\\x08\\x46\\x6e\\xc2\\xd2\\x17\\xfc\\x99\\xfb\\x01\\x2f\\xe6\\x54\\x0c\\x0c\\x5a\\x59\\x66\\xed\\x3e\\x66\\xfa\\xb1\\x20\\x2a\\xb9\\xda\\xff\\xe8\\xe2\\x7e\\x8f\\x74\\x62\\x82\\x8d\\x66\\x26\\x59\\xea\\x3b\\x2c\\x60\\x8c\\xf6\\x8e\\x30\\xdb\\xac\\x62\\xff\\xd8\\x22\\x9f\\x4a\\x53\\xf5\\x9a\\xe1\\x68\\x33\\xb8\\x1a\\x15\\x91\\x61\\xf1\\x93\\x69\\xf6\\x0f\\x51\\xc4\\x3a\\x21\\x7e\\xfc\\x5e\\xfd\\x6a\\xb7\\xa9\\x1f\\xe2\\x49\\xc7\\xb8\\xa0\\xc1\\x4e\\x9f\\xae\\xa5\\x33\\xde\\x13\\x38\\x49\\xa9\\x24\\x47\\x67\\x6f\\x6c\\xc1\\x8b\\xef\\x4f\\xec\\x7f\\x37\\x31\\x97\\x59\\xce\\x80\\xea\\x3e\\xac\\x18\\xfa\\x2d\\x9f\\xa0\\x23\\x09\\xe1\\xce\\x93\\xac\\x6c\\xf4\\xcd\\x2c\\xb2\\xc9\\x5f\\x1e\\x2a\\xff\\x7b\\x2a\\x88\\x56\\x40\\x5a\\x7b\\x8e\\xba\\xbe\\xb4\\x90\\x6d\\x9b\\x97\\x34\\xda\\x9f\\xb5\\xe5\\xd3\\xf3\\x22\\xbb\\x5b\\x55\\x9f\\xa6\\x1e\\xc8\\xf5\\x15\\xdb\\x90\\x65\\xab\\x4b\\x91\\xa7\\xa3\\x1d\\x5c\\x62\\x50\\x61\\xc2\\xfd\\x2b\\xcf\\xe1\\x7f\\x94\\xbb\\xde\\x47\\x76\\x30\\x2b\\x8a\\xef\\x3d\\x5b\\x52\\xdb\\x3b\\xc7\\x3a\\xe4\\xa3\\x0c\\xc4\\x41\\x7a\\xcb\"},\n{{0x71,0x19,0x36,0x40,0xa0,0xa2,0xb2,0x2f,0xb2,0x2d,0x00,0xa8,0x0b,0x33,0xa5,0x51,0x4f,0x3d,0x10,0x00,0x03,0x4f,0xcc,0xd8,0x85,0xd8,0xea,0x86,0x38,0xf0,0xb0,0xf8,},{0xb1,0xd3,0x6f,0x72,0x3b,0x70,0x86,0xd9,0x23,0x11,0x9f,0x46,0x75,0x9b,0x39,0xfa,0x1e,0x40,0x38,0xc6,0x41,0x8c,0x37,0x9b,0xa9,0x8b,0x58,0x40,0xc7,0xea,0x50,0x68,},{0xa9,0x70,0x2a,0x33,0x95,0xac,0xd2,0x0d,0x75,0x43,0x73,0x09,0x5d,0xc6,0x14,0x45,0x58,0x4d,0x8e,0x57,0x10,0x80,0xe1,0x79,0xad,0xcb,0xa3,0x10,0x6b,0xb0,0x6a,0x7c,0xe4,0xd4,0x60,0xf1,0x26,0x1a,0xef,0x86,0x43,0xab,0x16,0x34,0xf4,0x7c,0x94,0x14,0xa3,0x2e,0x18,0x3a,0x32,0x76,0x91,0xe6,0x58,0x43,0xdd,0x6c,0x05,0x50,0x72,0x07,},\"\\xe0\\x28\\x79\\x48\\xbb\\x85\\xa3\\x98\\xe6\\xaf\\xfa\\x2d\\x25\\xfc\\xff\\x8b\\xdb\\x93\\x26\\xf5\\xd1\\x4f\\xde\\xb6\\x05\\x49\\xf5\\xfb\\xf0\\xc1\\x81\\x6f\\x11\\xcb\\xdd\\x4e\\x90\\xfe\\xa0\\x39\\xdc\\xa6\\x0f\\xaa\\xd1\\x69\\x60\\x03\\xf9\\x15\\x15\\xc9\\xb2\\x72\\x88\\x2c\\x95\\xc9\\xa4\\xab\\x6e\\x27\\x77\\xbd\\x92\\x7e\\x7d\\x84\\x42\\xae\\xa6\\xce\\xa6\\x19\\xc9\\xb1\\x52\\x55\\xfe\\xd6\\x12\\xb5\\xcc\\x31\\x58\\xfc\\x70\\x5b\\xb7\\xa5\\x06\\xf4\\xaf\\xec\\xf4\\xe3\\x4e\\xd5\\x17\\xb2\\xc1\\x2b\\x83\\x62\\x61\\x0e\\x5e\\xa2\\x70\\x48\\x5c\\xcc\\xb3\\xc9\\xaa\\x97\\xec\\xd6\\xcb\\x19\\x63\\x09\\x00\\xf0\\x7d\\x94\\xcb\\x29\\x3c\\xb6\\xe0\\x89\\xa9\\xa7\\x7c\\x01\\x94\\x07\\x3a\\x7f\\x71\\x77\\xb0\\x23\\x0d\\x25\\x76\\x3a\\x2e\\xf9\\x8d\\x47\\x70\\x4c\\xb2\\xc3\\xaf\\x4c\\x3c\\x1b\\x49\\x56\\x31\\xb4\\xa5\\xb2\\x1b\\x2e\\x56\\xbf\\xf2\\xed\\xe0\\x3e\\xa4\\xfe\\x7c\\xf8\\x29\\x17\\x34\\x7e\\x3a\\x9d\\x4d\\xbe\\xef\\x37\\xd1\\xcf\\x17\\x61\\x5a\\xda\\xa0\\xfd\\x17\\x05\\x79\\x69\\x91\\x7d\\x47\\x8d\\x03\\xcc\\xd8\\xf8\\xb8\\x8e\\x5e\\x5a\\xca\\xe6\\x73\\x2a\\x81\\x61\\xdf\\xb5\\xf7\\xd0\\x21\\x23\\xc8\\xd5\\xa5\\x65\\xcf\\x4d\\xd9\\x8d\\xfc\\x9a\\xaf\\x5a\\x33\\x50\\x58\\xa9\\x41\\xca\\x43\\x07\\x3f\\x26\\x59\\x61\\x5a\\x72\\xfe\\x78\\xc1\\x01\\xc4\\x1a\\xed\\x07\\xf3\\xbc\\xf9\\x80\\xb0\\xa5\\xb3\\xfb\\xaf\\xdb\\xbe\\xa9\\x2f\\xd8\\x89\\xcf\\xd5\\x3d\\x40\\x32\\x78\\xbc\\x15\\xa5\\x9a\\xa1\\x40\\xc2\\xd7\\x73\\xb8\\x88\\x9b\\x96\\x3d\\xce\\xa3\\x65\\x36\\x2e\\x42\\x6e\\xf4\\x60\\x98\\x45\\xc9\\xbc\\xe9\\xf8\\xae\\xb5\\x91\\xd1\\xa4\\x69\\xb0\\x72\\xb4\\x12\\x09\\xf5\\xa8\\xb6\\xdc\\x23\\x95\\xad\\x90\\x60\\xeb\\x2e\\x37\\x09\\x78\\xae\\x33\\x11\\xd1\\xcf\\x0a\\x8f\\x20\\x51\\x42\\xd4\\x36\\xba\\xb6\\xb9\\x59\\x43\\xa9\\x7c\\x23\\xe6\\x1b\\xd1\\x4b\\x2d\\x95\\x67\\x2c\\xb9\\x32\\x5e\\x9a\\xb1\\xfc\\x9e\\xee\\xaa\\xcc\\xd5\\x8b\\x9f\\x4a\\xc1\\x55\\x0b\\xde\\xc8\\x44\\x9b\\x03\\x60\\x39\\x49\\x6c\\x5f\\x07\\xa5\\xed\\x64\\xd5\\xd8\\x51\\x71\\x69\\x01\\x44\\xdb\\x5c\\x81\\xc8\\x1c\\xbc\\x4c\\x16\\x71\\x8d\\x52\\xc4\\xdf\\xd1\\x95\\x8c\\xa5\\xc9\\xc8\\xba\\x58\\x2c\\xd9\\xd7\\x06\\xf2\\x7a\\x74\\x74\\x4c\\x3a\\x05\\xbf\\x1c\\xcd\\x51\\xf1\\x09\\x20\\x10\\xd3\\x6f\\x15\\x78\\xb5\\x78\\xae\\x0e\\x9f\\xfa\\x47\\x07\\x90\\x55\\xef\\x94\\xfa\\xbc\\x9f\\xf7\\x2f\\x73\\x8b\\xef\\x68\\x46\\x1e\\xb3\\x40\\x4c\\xce\\xe9\\x53\\xf5\\xee\\x86\\x4c\\x97\\x4c\\xe7\\x0e\\x90\\x37\\xe3\\x38\\x8f\\xba\\xf2\\x88\\x9e\\x13\\x66\\xca\\xa0\\xf6\\x51\\xe2\\x1b\\x33\\x9e\\x3d\\x56\\xb9\\xd9\\x5a\\xc3\\x0b\\x35\\x92\\xa9\\x48\\x91\\x2c\\x90\\xbf\\x54\\x47\\x3c\\xeb\\xc4\\x67\\xb0\\x9a\\x39\\x43\\xdc\\xac\\x48\\x68\\xac\\xb5\\xb3\\x5e\\xa6\\x91\\xef\\xf4\\xd8\\xcc\\x1c\\xda\\x0c\\x6c\\x0a\\x9c\\x16\\x9a\\x4e\\xe1\\x00\\x41\\xf3\\x5f\\x43\\x3f\\xb5\\x3d\\x26\\x06\\x7b\\x29\\x10\\x56\\xb1\\xda\\x69\\xff\\x46\\xfb\\xea\\x1c\\xa7\\x21\\x36\\x59\\xa9\\x90\\xd5\\xd5\\xdf\\x14\\x06\\xb0\\x93\\xda\\x2a\\x33\\xc8\\xdf\\x95\\xab\\x3c\\xe8\\x11\\xaf\\xb9\\xc9\\x8c\\x5b\\xfd\\x7c\\x4e\\x98\\x1b\\x3e\\xa9\\x4e\\xef\\xd2\\xe2\\xfe\\x95\\x70\\x7d\\x89\\xf3\\x07\\xfa\\x76\\x82\\x8b\\x5c\\x67\\x74\\x95\\x0a\\xee\\x80\\x62\\x67\\x14\\x25\\x6e\\x19\\x7d\\xc7\\xda\\x97\\x21\\x58\\xc7\\x68\\xbb\\xee\\x7f\\xbd\\x16\\x9e\\xc1\\x5b\\x4b\\xb7\\xbe\\x72\\x97\\x6d\\xbe\\xd3\\xe5\\x12\\x76\\x6e\\xf2\\x2e\\xf3\\xb8\\x12\\xbc\\xac\\x4a\\xa3\\x11\\x5a\\xfe\\x83\\xd3\\x12\\x84\\xaf\\x8e\\xac\\xea\\x4e\\xe4\\x9a\\xfd\\x42\\xd9\\xc4\\x4f\\xff\\x2d\\x86\\x1c\\x08\\x62\\x9b\\x55\\xda\\xe0\\x0f\\xf6\\x74\\xfb\\x02\\x8e\\x73\\x8b\\x05\\xdc\\xb3\\x8a\\xea\\xa6\\x96\\x3c\\xc3\\xfa\\xaf\\xc7\\xb6\\x92\\x45\\xa2\\xa1\\x22\\xa9\\x6d\\xd2\\xf0\\x3a\\x82\\x4d\\x72\\xb0\\xfe\\x0d\\xd7\\x98\\xdf\\x5c\\x4b\\xb7\\x5a\\x87\\x32\\x4e\\x76\\x4a\\x50\\xa5\\xff\\x52\\x54\\x7a\\xda\\x8f\\x8f\\x88\\xe6\\xf3\\x8a\\xee\\x49\\xd5\\x8d\\xdb\\x01\\x26\\x48\\x85\\x4c\\xd5\\x9d\\x0e\\xc9\\x7b\\xc3\\xd5\\x8d\\x0a\\xd4\\x49\\x1f\\x08\\x59\\x07\\x67\\xce\\xb1\"},\n{{0xbf,0xc9,0x62,0x6c,0x91,0xf3,0x48,0xfd,0xaf,0x46,0x9d,0xef,0x23,0x02,0xe9,0xe3,0x8f,0x90,0x51,0xe7,0x34,0x9e,0x48,0xf8,0x50,0xcf,0x35,0x2a,0x83,0x31,0xa2,0x8b,},{0x4e,0x81,0x93,0x06,0x1c,0x9d,0x65,0xa8,0x2b,0xcb,0x25,0xda,0x08,0x9b,0x4a,0x80,0xba,0x41,0xb3,0xdd,0x2f,0x8e,0xd1,0xdc,0x81,0xe1,0xcf,0xd0,0x3c,0x84,0x91,0x15,},{0x66,0x02,0x42,0xc1,0xdc,0xf3,0x29,0x13,0x69,0xc6,0x5c,0x9d,0x7f,0x89,0x87,0x2e,0xab,0x48,0x22,0x00,0xe3,0x44,0xb2,0x96,0xe3,0x36,0xa0,0xa2,0xe6,0x31,0xfa,0x79,0x60,0x24,0xb6,0xe1,0x11,0x9c,0x27,0xd5,0x22,0x64,0xa4,0x98,0x15,0xdd,0x78,0x19,0x27,0xa7,0xdf,0x46,0x7e,0x88,0xb8,0x01,0xe6,0x84,0xfc,0x60,0x22,0x96,0x25,0x0e,},\"\\x2f\\x11\\xf4\\x0b\\x2a\\x19\\xf6\\x40\\xc0\\x04\\x4c\\x7b\\x13\\x96\\x80\\xc3\\xc3\\xb6\\x9f\\x00\\xff\\x9f\\x6a\\x41\\x86\\xfd\\x7d\\xed\\x56\\x9c\\x1d\\x8c\\x57\\x20\\xf1\\x9d\\xd3\\x5c\\x78\\x16\\xd0\\x8a\\x94\\xc0\\x82\\x04\\xe4\\x76\\x43\\xe2\\x64\\xd4\\x25\\xe2\\x1c\\xef\\xb8\\x31\\x29\\xc9\\x09\\xa3\\xd7\\x8c\\xaf\\x72\\xc4\\x6b\\xf1\\xa7\\x29\\x76\\x5e\\xf4\\xb8\\xca\\x80\\x3f\\xda\\xf8\\x05\\x2f\\xfc\\x6c\\xc4\\xa6\\xb5\\x79\\xa1\\x60\\xb7\\x03\\xb1\\x53\\x55\\xc6\\xfc\\xd3\\xb9\\xa2\\xec\\xbc\\x26\\x7e\\x60\\xdd\\x59\\xf6\\xa2\\xb1\\x94\\x20\\xe5\\x57\\x27\\xa8\\x0b\\x0b\\xb6\\x41\\x67\\xc8\\x3b\\xa0\\xc8\\x05\\xde\\xed\\x49\\x1d\\x93\\xe7\\x23\\xf3\\xb4\\x32\\x63\\xd1\\x74\\x20\\xb8\\x5b\\xe8\\x6c\\x16\\x5c\\x55\\x27\\x79\\xdb\\x96\\x0e\\x0a\\xa9\\xeb\\x4d\\x9f\\x3a\\x16\\x4a\\x5a\\x21\\xfa\\xb3\\xf5\\x09\\xa8\\xf0\\x19\\x9a\\x69\\x43\\xc4\\xb2\\x23\\xcf\\x9d\\xac\\xa7\\xe1\\x10\\xe0\\x56\\xa8\\x1d\\x9c\\xe0\\xe0\\xc0\\x2a\\xc2\\x65\\xee\\xac\\x05\\xec\\xd8\\x44\\x48\\x46\\x8a\\x4d\\x12\\x2b\\x87\\xa3\\xe0\\x4c\\x28\\x37\\xe4\\x3d\\x21\\x27\\x04\\xfd\\x41\\xe7\\xf3\\xd1\\x98\\xa2\\xe7\\x6b\\xec\\xa0\\xe7\\x02\\x9c\\x43\\x2a\\x06\\x54\\xec\\xd4\\x4f\\x98\\x4c\\x5d\\xf0\\x67\\x41\\x96\\x4d\\x83\\x72\\xc8\\x6e\\x16\\x2a\\x8c\\x54\\x18\\x84\\x9b\\x41\\xe5\\x71\\xfe\\xb8\\x3e\\xb4\\x2f\\xbb\\xcd\\xdb\\x8a\\x08\\x21\\x43\\x90\\x9e\\xaa\\x50\\x12\\xb9\\x79\\x93\\x1d\\xc7\\xe3\\xcc\\xcb\\x44\\xc7\\x91\\xe0\\x4b\\x80\\x65\\xee\\x63\\xf0\\x56\\x1d\\xa1\\xbb\\xf3\\x7b\\xf6\\x50\\x34\\x77\\x87\\x9c\\xfb\\xaf\\x6d\\x9d\\x7d\\x9a\\x74\\x75\\x55\\x3f\\x53\\x53\\x5f\\x84\\x7a\\x76\\xdc\\x3b\\x2b\\x7a\\x3d\\x1d\\x47\\x0b\\xbe\\x17\\x12\\x4a\\x88\\xe0\\x3f\\xe9\\x94\\xba\\x10\\xc2\\x42\\x21\\xe3\\x9e\\x3d\\x0f\\xf5\\x3c\\x79\\xe2\\xfa\\xaf\\xa1\\x90\\x12\\xd5\\xef\\x19\\x2b\\xc6\\xd5\\x26\\x0b\\x66\\xf9\\x97\\xb6\\x44\\xcf\\x48\\xd9\\x9f\\x38\\x99\\xd7\\xc4\\x85\\xe6\\x84\\xaa\\x1e\\x6e\\x30\\x85\\x5c\\xf7\\x5c\\x2d\\x80\\xc7\\xa3\\xee\\x43\\x54\\xfe\\x13\\xc6\\x76\\x09\\x1c\\x86\\x67\\x37\\x3d\\x30\\xe6\\x0f\\xf8\\xe0\\x9f\\xed\\xef\\x17\\x5a\\x1a\\x87\\x39\\x5f\\xef\\xa0\\x72\\x2b\\xf6\\xc0\\x1c\\x65\\x55\\xcf\\xf0\\x68\\x89\\x2a\\xfe\\x94\\x86\\xcb\\x1f\\xcc\\x5f\\xb6\\x64\\x1e\\x82\\xd8\\x70\\x79\\xba\\x5d\\x7a\\x9c\\x13\\x93\\x55\\xd6\\xc1\\x4c\\x50\\x7d\\xbd\\x59\\x47\\x24\\xb5\\x53\\x51\\x10\\x09\\x65\\xbe\\x9e\\x5d\\xbf\\xa7\\x70\\x88\\x78\\xc4\\xb2\\x9f\\x4d\\x54\\xc2\\x17\\x74\\x6e\\x32\\x6a\\xb2\\xa5\\x4f\\x99\\xb8\\x81\\xd7\\xda\\x5b\\x11\\xed\\xb0\\x8a\\x6d\\x79\\xd8\\x85\\x69\\x1b\\x1f\\x70\\x85\\x51\\x73\\x10\\xb3\\x09\\xcf\\x9b\\x1b\\x71\\x4a\\xab\\xc5\\xc1\\x7a\\x50\\x9b\\x14\\x0b\\x89\\xb3\\xf9\\xdc\\xee\\x50\\xca\\xb4\\x41\\xbf\\x5a\\xd3\\xbb\\xc2\\x99\\x90\\xf6\\x27\\x40\\x61\\x70\\xa7\\xa1\\x0f\\x2d\\x47\\xdf\\xc9\\x25\\x61\\x54\\xf9\\x62\\x30\\x8e\\x76\\x9a\\x2a\\xb1\\xb2\\xa0\\x0e\\x27\\xe3\\x27\\xf0\\xd1\\xfa\\x16\\x4d\\x1e\\x38\\xea\\xd5\\xce\\xaa\\xe2\\x38\\xba\\x52\\x6f\\x54\\xb8\\x1b\\x45\\xde\\xa6\\xc8\\x97\\x41\\x86\\xb1\\xb6\\x72\\x5f\\xa4\\xc8\\x3e\\x62\\xf3\\xe2\\x54\\xf7\\x29\\x87\\x1b\\xda\\x4d\\xc4\\x44\\xbc\\xe7\\x8f\\x09\\x03\\xfa\\x31\\x8e\\xaa\\xc8\\x22\\xa9\\x55\\x32\\xab\\x01\\x9e\\x9c\\xfc\\x56\\x19\\xe2\\xc2\\x06\\x7f\\x25\\x8f\\x43\\x75\\xd2\\xe0\\x22\\x2e\\xa5\\xbf\\x96\\xa2\\x53\\xa2\\xa3\\xfa\\x9e\\xea\\x02\\xc3\\xee\\xcc\\xb0\\x28\\xc7\\x6b\\xc6\\x0d\\x38\\x29\\x8b\\x95\\xb9\\xaf\\xe6\\x60\\x31\\xb1\\xa2\\xa2\\x61\\x52\\xfd\\xaa\\x7e\\xf4\\xf8\\x37\\xab\\xb5\\x11\\x85\\xdf\\x8b\\x2e\\xf8\\x5a\\xd2\\xc9\\xbe\\x6d\\xfb\\xa7\\x5e\\x37\\xdc\\x7d\\x12\\xe1\\x78\\x7f\\xc5\\x5f\\x86\\x6f\\xd0\\x66\\xf1\\x22\\x91\\xdf\\xf1\\x97\\x6a\\xfc\\x10\\xda\\x91\\x31\\x01\\xe7\\x04\\x95\\xd8\\x78\\x33\\x48\\xd6\\x11\\xb0\\x11\\xec\\x67\\x1c\\x0d\\xa7\\x37\\xbf\\x96\\x2c\\xdc\\xc9\\xe4\\xa8\\x00\\xb5\\x13\\x93\\x5a\\x56\\xd0\\x84\\xea\\x64\\xa7\\xd4\\xe8\\xe9\\x9e\\xe9\\x44\\x0a\\x73\\x61\\x32\\xe4\\x2c\\x90\\x95\\x03\\xc2\\x22\\x4a\\x14\\x1b\\x25\\xce\"},\n{{0x39,0x3b,0x76,0x94,0x82,0x37,0x5b,0x82,0x14,0x27,0xa6,0x6d,0x16,0xe4,0xf5,0x51,0x85,0xb7,0xa3,0xb7,0x33,0x8f,0x1a,0x06,0xf6,0x7c,0xdf,0xa7,0xe3,0x5c,0x54,0x1c,},{0x84,0xaf,0xd7,0x06,0x78,0xff,0xa8,0x5a,0x9f,0x65,0x74,0xcb,0xcf,0xe3,0xb1,0x5d,0x04,0xa9,0xfd,0x15,0x01,0x6f,0xf8,0x55,0x0a,0x98,0x7c,0x4b,0x95,0x1c,0x71,0x22,},{0x31,0xf9,0x8c,0x0a,0x08,0xfd,0xa8,0xe7,0x35,0xb5,0x73,0x66,0xaa,0x1b,0x83,0xb9,0x3d,0xae,0x63,0xb5,0x81,0x0c,0x82,0x1d,0x99,0xcb,0x39,0xdf,0x52,0x1f,0xea,0xc0,0x7f,0x3c,0x41,0x0b,0x27,0xba,0x33,0x07,0x75,0x7d,0x60,0x49,0xf2,0x24,0x54,0xfb,0x6d,0xe9,0xe2,0xc3,0xc2,0x43,0x8d,0x68,0x31,0x90,0x97,0xd1,0x12,0xcf,0xdb,0x07,},\"\\x8a\\xe8\\x05\\x3e\\x03\\xbe\\xbe\\xae\\x54\\x40\\x43\\xb8\\x41\\x4b\\x38\\x53\\x64\\xad\\xd1\\x67\\x37\\x37\\xcf\\x8a\\xb2\\x01\\x93\\xd4\\xaa\\xbc\\x8a\\x78\\xe1\\xd6\\x9b\\x9c\\x7e\\x52\\x72\\x9e\\x69\\x30\\x78\\x06\\xe9\\x27\\xce\\x38\\x07\\xb0\\x7c\\x68\\xc8\\x33\\xc4\\xfc\\xf1\\x6d\\xb1\\x5e\\x7d\\xce\\x60\\x4d\\x17\\x98\\x91\\x5f\\xd4\\x21\\x16\\x89\\xb4\\x86\\x46\\x42\\x50\\x2d\\x38\\xe9\\x1b\\x19\\x97\\xb7\\x18\\x23\\x31\\x8b\\x69\\xab\\xe5\\xbe\\xd6\\xf5\\xe3\\x01\\x5b\\xfb\\x22\\xdf\\x30\\xdb\\x37\\x1f\\x22\\x60\\xc5\\xc2\\x2e\\xba\\x60\\xdf\\x39\\xb3\\xed\\xd3\\xc4\\xd7\\xa1\\xe1\\x11\\xcd\\x9b\\x8a\\xa4\\x6f\\x67\\xbd\\x0c\\xf3\\xa7\\x17\\xaf\\x06\\xec\\x0c\\xe5\\x67\\x02\\x8e\\x06\\xe4\\x79\\x79\\x34\\xad\\x69\\xb1\\xf5\\xbe\\x44\\x0f\\xf3\\x7a\\x8a\\x03\\x4b\\x15\\x33\\xfa\\x94\\x64\\x24\\xac\\x59\\x54\\x00\\xad\\x27\\xd3\\xbe\\x76\\xdc\\x89\\xba\\x9d\\x6c\\x49\\x93\\x9a\\x09\\xf2\\xe4\\x01\\xc8\\xf2\\x0f\\x7f\\x7b\\x4b\\x9e\\x63\\xb9\\xd5\\x52\\x01\\x53\\x4a\\xb4\\xcc\\x7b\\xe8\\x85\\xf0\\x43\\x2a\\x2c\\x66\\x73\\xd2\\xe7\\x65\\x19\\x4d\\xff\\xd9\\xb6\\x09\\x6d\\xd2\\xb2\\x84\\x39\\x18\\x75\\x09\\x59\\xa8\\xdd\\xe4\\xa3\\xab\\x40\\x7e\\xb2\\xf7\\xe1\\xa4\\x9c\\x25\\x97\\xe3\\x08\\x05\\xf8\\x48\\x0d\\xd0\\xcc\\x82\\x72\\xa3\\x20\\xc0\\x0a\\xa2\\xb2\\x10\\xf5\\x76\\xe4\\x25\\x77\\xd3\\xaa\\x41\\x97\\x03\\x69\\x7c\\xa4\\x06\\xd4\\x3a\\x1a\\x4f\\x99\\xb0\\x73\\x36\\x64\\xf6\\xd6\\xb2\\x40\\x3c\\xba\\x1b\\xdc\\xc5\\x1f\\x54\\x1c\\xf2\\x42\\x36\\x07\\x05\\x70\\x54\\x07\\x55\\xc7\\xa8\\x63\\x1f\\xcc\\x2f\\x18\\x93\\x8f\\xa1\\x1b\\xc2\\x91\\x15\\x5b\\x39\\xd7\\xa7\\x62\\xa1\\xff\\x4d\\xca\\x97\\xb4\\x48\\xf7\\x0e\\x2d\\x3d\\xe4\\x47\\xcb\\x08\\xf9\\x18\\xea\\x20\\xcb\\x43\\x3f\\xa1\\x15\\xe3\\x08\\x80\\xc9\\x6c\\x8c\\xf5\\xf0\\xeb\\xbc\\xf4\\x82\\x30\\x9d\\xb6\\xdc\\x1f\\xb6\\x4e\\x17\\xc0\\x4d\\x7c\\xdf\\x7a\\x90\\xf4\\x01\\x4d\\x15\\xae\\x76\\x96\\xb4\\x44\\x23\\xb0\\xba\\x08\\x4e\\xed\\x4d\\x3f\\xb2\\x8c\\x1e\\xfb\\x39\\x82\\x8a\\xca\\x2f\\x40\\xca\\x6d\\xf3\\x42\\xc2\\x0e\\x95\\xf8\\x00\\x6b\\x27\\x67\\xa8\\x3f\\x50\\xc3\\x1f\\xcc\\x15\\x81\\xa0\\x97\\x53\\xe7\\x82\\x91\\xf0\\xd9\\x93\\x1d\\x99\\x2a\\xd3\\x60\\x44\\x73\\xce\\xb8\\x85\\xec\\xbe\\x78\\x57\\xcc\\x52\\xad\\x55\\x85\\x33\\x4d\\x14\\x85\\xd0\\x22\\xe1\\x06\\xb7\\x1c\\x29\\xbd\\xfc\\xf2\\x3e\\xe8\\xa4\\x75\\xdf\\x2c\\x09\\x05\\x32\\x35\\x6a\\x6f\\xfc\\x02\\x23\\x23\\x17\\x98\\x8a\\x2c\\xbc\\xfb\\xc2\\xa3\\x6b\\x4b\\x48\\x3c\\xb4\\x45\\x10\\xe8\\x55\\x99\\xb6\\x12\\x59\\x6b\\x62\\x65\\x72\\xb0\\x99\\x6d\\x8a\\x61\\xc0\\xee\\x3e\\xff\\xf1\\xf7\\xc7\\x1c\\x05\\xfb\\x5a\\x8d\\x8c\\x5d\\x09\\xd9\\x24\\xeb\\xaa\\xc8\\x80\\x04\\x51\\xc9\\xdb\\x24\\x56\\x71\\x0a\\x27\\x9d\\xfe\\x2d\\x22\\xf6\\xae\\xa9\\xde\\x31\\x80\\x1d\\xc7\\x42\\x53\\x43\\x62\\xb0\\xe8\\x10\\xe9\\x9e\\x84\\x1d\\xbb\\x7f\\x0c\\xf9\\xaf\\x1a\\xef\\x54\\x2a\\x52\\xc7\\x76\\xcc\\x51\\xf2\\x87\\x36\\x8f\\xbe\\x6a\\xd6\\x51\\xfa\\xd5\\x78\\x7e\\xf7\\x7c\\x73\\x53\\x5f\\x3d\\xfb\\x36\\x18\\xcc\\x8f\\x0d\\xbb\\x54\\x9d\\xdc\\xa9\\xb9\\xbf\\x91\\x13\\x5a\\x34\\x56\\x00\\x1a\\x46\\x21\\x5a\\xde\\x38\\x8e\\x7c\\xeb\\x9f\\xcd\\xfd\\x0d\\x2d\\x0a\\x03\\x56\\xaf\\xbe\\x2c\\xec\\x1c\\x2e\\x78\\xb4\\xd9\\x98\\xd4\\x55\\x4f\\x46\\x21\\xf1\\x15\\x1d\\xd3\\xff\\xd3\\xba\\x4c\\x0b\\xc8\\x52\\xf3\\x11\\x75\\x8c\\x5d\\xca\\x42\\x5d\\x18\\xba\\x15\\xa8\\xd6\\x7c\\xa4\\x01\\xd0\\xe6\\xcf\\x28\\x0c\\xb8\\x83\\x84\\xa2\\xda\\xd4\\x9f\\xae\\x39\\xba\\x2a\\x77\\xb4\\x67\\xb3\\x23\\x8a\\xa2\\x8c\\xfd\\x13\\x7e\\x5c\\x5c\\x0f\\xf9\\x00\\x0f\\x8b\\x06\\xa2\\x19\\x2e\\x16\\x29\\x20\\x69\\x22\\x65\\xdb\\x24\\xab\\x6a\\xed\\xe5\\x35\\xe3\\x1c\\x20\\x93\\xbe\\x57\\xeb\\xf8\\x80\\x5d\\xf1\\x78\\x89\\x14\\xf3\\xa8\\x84\\xf8\\x84\\x17\\x90\\x15\\x80\\x8d\\xb4\\xd3\\x02\\x0f\\x3e\\x78\\xbc\\x34\\x28\\x5d\\x23\\x37\\x62\\xe8\\x99\\xeb\\xff\\x28\\x42\\x82\\x15\\xe2\\x44\\x40\\x4d\\xe2\\x91\\x72\\x8f\\xbf\\x41\\x24\\xce\\x5b\\x24\\x35\\x26\\x0a\\x8e\\x34\\x11\\x80\\x07\\x5a\\x56\\x51\\xe6\"},\n{{0x26,0xcb,0xc2,0x51,0x0e,0xe6,0xea,0x39,0x0a,0x2c,0xb9,0x48,0xa0,0x15,0xd1,0x31,0xab,0xf4,0xc0,0x95,0x49,0x15,0x62,0x0b,0x78,0x16,0xae,0xcf,0x4e,0x11,0xda,0x6d,},{0x14,0x5e,0x8d,0xd2,0x2b,0x44,0x00,0x28,0x9d,0xaf,0xb6,0x26,0xd9,0x5a,0x94,0xc2,0xf3,0xb6,0x9c,0x65,0x19,0x77,0x17,0xcb,0xdc,0xd8,0x50,0x98,0xc5,0x49,0x21,0x07,},{0x67,0x10,0xd0,0xdd,0x00,0x54,0x5b,0x44,0x4c,0xf7,0x14,0xb7,0x91,0x44,0xfe,0x79,0xf3,0x8c,0xb1,0xc0,0xf5,0xb7,0x42,0x48,0xd4,0xf0,0x1f,0xe3,0x60,0x11,0x7a,0x26,0xff,0xed,0x4a,0x3b,0xf2,0x13,0x23,0xb2,0x8a,0x39,0x3a,0xe9,0xde,0xe0,0x7d,0x69,0xe5,0x83,0xe3,0x16,0xc6,0xa5,0x73,0xd3,0x7c,0x64,0x4a,0x8d,0x62,0xc4,0x05,0x06,},\"\\x9c\\xeb\\xe2\\x4b\\x4f\\x8a\\xde\\x86\\x43\\x0e\\x27\\x9a\\x3c\\x43\\x3e\\x4a\\xe1\\x7e\\x00\\x88\\x52\\xa2\\x4f\\x08\\x69\\x0c\\xbc\\x3d\\x75\\xe3\\xb7\\xf2\\x00\\xda\\x89\\x7c\\x25\\xf7\\x48\\x3b\\x37\\x63\\x7d\\x4b\\xc1\\x10\\x08\\xd9\\x22\\x4c\\xd5\\x81\\xfb\\xc0\\x38\\xad\\xad\\xa0\\x2d\\x27\\x1e\\xd2\\xa5\\xd2\\x85\\xd8\\x43\\xa0\\xf8\\xb7\\x9e\\x37\\x94\\x5d\\xc3\\x5b\\xc2\\x64\\xbe\\xcd\\x80\\x43\\x07\\xe1\\xd4\\x42\\x18\\xa6\\x43\\xe4\\xb5\\x9a\\x93\\x11\\xde\\x98\\x5d\\x24\\xb4\\xc2\\x6f\\xb1\\x46\\x03\\xbe\\x5d\\xba\\x18\\x39\\xee\\x0c\\x8d\\x2e\\xde\\x6c\\xb5\\x0a\\xf6\\x7c\\x80\\x45\\x19\\x03\\x7b\\x1b\\x16\\x63\\x31\\x8c\\xfc\\x6e\\x75\\xd0\\xf0\\x51\\xdb\\xb5\\xd3\\xea\\xf3\\xaa\\xd1\\xf7\\x8e\\xf0\\xcf\\xf4\\x8d\\x5c\\x55\\xb2\\xfd\\x25\\xdb\\x15\\x39\\xd0\\xf0\\x2d\\xae\\x9f\\x25\\x14\\x8a\\x8d\\x33\\x8b\\x97\\x87\\x9b\\xbd\\x39\\xdf\\x96\\x1a\\xa2\\xc3\\x96\\x31\\x5a\\x2a\\x86\\xcc\\x78\\x35\\x81\\xe6\\x7e\\xa8\\x44\\xac\\xfe\\x86\\x45\\x42\\x8a\\x27\\xb8\\xd3\\x2e\\xa3\\x06\\x4e\\x3b\\xf6\\x2d\\xcf\\x58\\x01\\x0e\\xc4\\x34\\x88\\x62\\xfa\\xc2\\x5e\\x3d\\x9f\\xcd\\x4e\\x5d\\x65\\xbe\\x59\\x90\\x5d\\x81\\x6d\\xfb\\x96\\x49\\x92\\xba\\x7a\\xce\\xef\\x8c\\x20\\x75\\xa3\\x12\\xe5\\xff\\xc4\\xf9\\x53\\x0e\\xa2\\x0f\\x77\\xf9\\x3e\\x81\\xcf\\x8a\\x01\\x9d\\xc3\\x94\\x56\\x34\\x36\\x4b\\xab\\xf7\\x97\\x72\\x04\\x5a\\x0d\\xba\\xa7\\x7c\\x47\\xa2\\x2b\\x77\\x22\\x3b\\x70\\x4d\\xeb\\xd2\\xd0\\x03\\xf6\\xa5\\xc7\\xbf\\x6b\\x19\\xcd\\x2c\\x49\\xb6\\x14\\xfd\\x4d\\x47\\xfd\\x25\\x1f\\xe6\\x22\\xcb\\x98\\x17\\x85\\xc1\\x46\\xbd\\xb7\\xc1\\xd2\\xea\\x02\\xb1\\x16\\x92\\x3b\\xf9\\x8a\\x1a\\xfb\\xb7\\x85\\x8a\\xdf\\x2d\\xf9\\x38\\xa7\\x90\\xec\\x1f\\x90\\x74\\xad\\xb8\\xd1\\xaf\\xb5\\x63\\x3f\\xa9\\x61\\xa8\\x47\\x64\\x01\\x0d\\x3b\\xde\\xd1\\xc0\\x33\\xd2\\x5a\\xbd\\xb4\\xb0\\x0f\\xb0\\x5e\\xd7\\x64\\x0f\\xae\\x61\\x87\\x9d\\xf8\\x8f\\x0b\\x09\\xe3\\xab\\xd0\\x57\\xb9\\xa5\\x21\\x08\\xa9\\xbc\\x98\\x5f\\xb7\\x3a\\x5f\\x29\\xd8\\x4d\\x1c\\xa6\\x92\\x1b\\x62\\xf1\\xb7\\x03\\xc7\\xee\\xb4\\x81\\x5d\\x9d\\xd6\\xd0\\x66\\x73\\x8d\\xb1\\x18\\xba\\xf6\\x1b\\x04\\x22\\xf3\\x88\\xf1\\xbf\\xc9\\xe3\\xa9\\xbe\\xd8\\x3a\\x1a\\x72\\x7d\\xcc\\x26\\x6a\\x99\\x88\\x36\\x48\\x46\\x80\\x7f\\x4d\\x55\\x18\\xbc\\x2e\\xdd\\x0e\\xcb\\x34\\x13\\xc2\\x6f\\xd0\\xc7\\x9b\\x75\\xd8\\xcb\\x5b\\xcd\\x85\\xc0\\x6f\\xcc\\xea\\x4d\\x03\\xfb\\x89\\x88\\xdf\\xf3\\xed\\x0c\\xc9\\xdb\\xae\\x78\\xd6\\xae\\x8d\\x5f\\xc4\\x02\\x46\\x17\\xa2\\x3f\\x52\\xbd\\x61\\x53\\x85\\xd4\\xee\\xe0\\x8f\\x91\\x34\\xeb\\x3b\\x25\\x0c\\x8f\\x82\\x2b\\x47\\xd9\\x1e\\x8c\\x4d\\x4c\\x29\\x29\\x80\\x16\\xe6\\xfc\\x81\\xf1\\xf1\\x09\\x92\\x53\\xd7\\x94\\x5e\\x07\\x98\\x95\\x5d\\xa0\\xdd\\xe1\\x4e\\xbb\\x93\\x4e\\xcf\\xae\\xea\\xba\\xe8\\x78\\x83\\xe1\\xcc\\x39\\x80\\x67\\x40\\x0f\\xe4\\x62\\xa2\\xc4\\xe9\\xf2\\x32\\xdb\\x5c\\xdd\\x61\\xeb\\xa9\\x49\\x18\\x8c\\xf0\\x1b\\x23\\x8b\\xe7\\xad\\xa9\\x38\\xf0\\x02\\xdc\\x3a\\xe3\\x1f\\xdf\\xd4\\x25\\xc8\\xd4\\x6e\\xa0\\x32\\x32\\x3a\\xaf\\x20\\xdd\\x3d\\xe2\\x50\\x7d\\x36\\xbb\\x45\\xfb\\xb9\\x1c\\x40\\x96\\x9a\\x9e\\x5d\\xa2\\x0f\\x7f\\x93\\x6b\\x0f\\x4b\\x13\\x7b\\x62\\xfe\\x2b\\xa3\\xa6\\x67\\xbc\\x03\\x62\\xd9\\x3f\\xc5\\x0d\\x3f\\x22\\x95\\xe1\\x67\\xfc\\xba\\xb0\\xfb\\x3a\\x39\\xb7\\xcb\\x02\\x4b\\x57\\x8f\\x94\\x90\\xf7\\x34\\xb2\\x8c\\x9c\\xcf\\x71\\x92\\xf1\\x83\\x94\\x7d\\x5a\\x51\\x3e\\xfa\\x49\\x16\\xe4\\xd8\\x2b\\x2a\\xb4\\xba\\x7e\\xc2\\xff\\xba\\x21\\x3c\\xe8\\x2a\\xd6\\xed\\x3b\\x10\\xe4\\x85\\x53\\xe7\\x33\\xc9\\x40\\xaa\\x9b\\x9c\\xe7\\x13\\x37\\xc6\\xc2\\x80\\x5d\\xfb\\x8d\\xd6\\x61\\x8b\\x6d\\x40\\x90\\xa3\\xd6\\xcc\\x96\\x3e\\xce\\xa2\\x6d\\x1c\\xdc\\x2b\\xf5\\xac\\x99\\x9c\\x11\\x27\\x61\\x68\\xa9\\x31\\xd8\\x16\\x46\\x9d\\x79\\x08\\x3c\\x24\\x08\\x1a\\x50\\xdc\\xbd\\x22\\x27\\x52\\x38\\x52\\x67\\xce\\x1b\\xfc\\x1d\\xb7\\x6b\\x15\\x54\\xad\\x57\\xe3\\x47\\x52\\xb7\\xf8\\x98\\x31\\x47\\xc1\\x16\\xd4\\xa3\\xfa\\xe6\\xf6\\xd5\\x7e\\x65\\x4f\\xed\\xd7\\x37\\x8d\\x2b\\x49\\x89\\xea\"},\n{{0xb1,0xf5,0x9e,0x3c,0x23,0x80,0xd7,0xaa,0x41,0x4d,0x0b,0xf9,0x08,0x93,0xa3,0x8d,0xdd,0xfc,0x29,0x38,0x59,0x30,0x3d,0x16,0xf0,0x0d,0x9e,0xae,0x6c,0xb3,0x45,0x0e,},{0x84,0xe3,0xf5,0xf7,0x2f,0x19,0x09,0x5b,0x0f,0x53,0x38,0x48,0xa5,0xa9,0x1d,0x0f,0x07,0x43,0xb8,0xe3,0xa3,0xe2,0xf5,0x2f,0xcb,0xd7,0xeb,0xe7,0xc5,0xb5,0xa9,0x98,},{0x60,0xaf,0xc1,0xe9,0x91,0xfd,0xd2,0x7c,0xc4,0x72,0xb9,0xac,0xc9,0xd4,0x05,0xb4,0xd2,0xb9,0x13,0x08,0x92,0x90,0xb3,0x11,0xc4,0xfa,0x89,0x1a,0xe2,0xee,0xa0,0x56,0x71,0xfd,0xe7,0xa0,0xef,0x86,0x55,0x7b,0xd8,0x67,0xd1,0xc0,0xb7,0x47,0xca,0xf3,0x52,0x29,0xd6,0xef,0x52,0x8f,0xe3,0xe0,0xd0,0xbc,0xf6,0x30,0x38,0x0e,0xa9,0x0e,},\"\\xc6\\x17\\x4c\\x9a\\xd3\\x68\\x5d\\xd6\\x48\\x63\\x60\\x17\\x83\\x7b\\x8d\\x99\\x22\\x00\\x31\\x9e\\x9a\\x5a\\x0d\\x26\\xd9\\x4d\\x2d\\xa7\\x5e\\x2c\\x3a\\xff\\x46\\xf4\\x2d\\x7b\\x3a\\xba\\x47\\x2b\\x7f\\x86\\x0b\\x0f\\xe1\\xf6\\x95\\x52\\x97\\x31\\xfd\\xc8\\xcf\\x0d\\xa7\\x05\\xd1\\xd0\\x9a\\xca\\xd0\\x4f\\x01\\x08\\x37\\xec\\xef\\x41\\x9d\\x57\\xe9\\xea\\x6c\\xac\\xf1\\x68\\xc5\\x21\\x56\\x96\\xf4\\x71\\xf3\\xca\\xa8\\x97\\x60\\x7c\\x62\\x9d\\x44\\x3d\\xe0\\x99\\xd3\\x17\\x53\\xc2\\x46\\x77\\xd8\\xd7\\x5f\\x4b\\xf1\\x72\\x46\\x81\\x8b\\x58\\xad\\xc0\\x42\\x4b\\x76\\x2a\\x19\\x1e\\xf3\\x9a\\x70\\x76\\xa5\\xad\\x12\\x61\\x4c\\xf5\\x4c\\x47\\xeb\\x09\\x08\\xbb\\x86\\x65\\x18\\xc5\\xfa\\xc1\\xca\\x2d\\x2e\\x5b\\x65\\x75\\x20\\xa2\\xb3\\x69\\x5c\\x6f\\xb3\\x60\\xf1\\x6f\\x4a\\xb3\\x57\\x99\\x8e\\x4c\\x0e\\x97\\x23\\x1d\\x6f\\x89\\xc9\\x68\\xdc\\x29\\xec\\xc1\\xaa\\x91\\xfa\\x0d\\x75\\x43\\xb5\\xd2\\x24\\x7b\\x0d\\x85\\xe4\\x87\\x43\\xab\\x7c\\xc8\\x15\\xcf\\xda\\xa8\\x2b\\xf6\\x8c\\xa6\\xd3\\xe2\\x25\\x0b\\xfd\\xa2\\x70\\x24\\xd6\\x1b\\x47\\x4c\\x6b\\x81\\x54\\xac\\x8d\\x1b\\x5a\\x36\\x20\\x97\\x82\\x51\\x5c\\x16\\x46\\x68\\x0d\\x37\\x06\\x9b\\x8b\\x44\\x12\\xf9\\x51\\xb0\\x25\\xa4\\xd5\\x43\\x62\\x5d\\xd0\\x22\\x90\\xbf\\x03\\xc6\\x73\\x46\\x13\\xf9\\x9b\\x7a\\x4c\\x3a\\xf5\\xc5\\xf9\\xe9\\xac\\x34\\x74\\x46\\x5e\\x64\\x84\\x23\\x01\\x8d\\x40\\xa6\\xad\\xbe\\x88\\xa3\\x30\\x1d\\x3d\\x25\\x9b\\x04\\xee\\x44\\xcc\\x05\\x62\\xee\\x0d\\xed\\x4f\\x5e\\x26\\xad\\x97\\x7a\\xb5\\x63\\x1f\\x85\\x76\\x8d\\xbc\\xe5\\x3f\\x61\\x6c\\x02\\x9a\\x8b\\x8f\\x93\\x3e\\x2a\\x92\\x64\\xb1\\xc8\\x1f\\x51\\x7e\\x9f\\xf5\\x8a\\xb9\\xf4\\x5a\\x23\\xee\\xed\\x42\\x04\\x35\\x8f\\x8f\\xff\\x0c\\x8f\\x97\\x5e\\xf1\\xdf\\xa5\\x77\\x6a\\x5f\\x77\\x93\\xba\\xe2\\xf2\\x81\\xd7\\xb0\\xcb\\xef\\x24\\x0b\\x3f\\xc6\\xbe\\x05\\x88\\x21\\xea\\x2b\\x80\\x0f\\xff\\xe5\\x5a\\x7d\\xe0\\xaf\\xc9\\x3e\\xde\\x9c\\x60\\xc8\\xde\\x00\\x5a\\xbb\\x9a\\x2c\\x88\\xf4\\xe6\\x1e\\x8d\\xeb\\x31\\x70\\xf1\\x07\\x8a\\x36\\xe2\\xd8\\xf2\\xa5\\x82\\x39\\xbd\\xee\\x49\\x6e\\x90\\xd1\\x37\\xd2\\x11\\x0f\\x0a\\xd8\\x57\\xa8\\x8b\\x35\\x27\\x66\\x4f\\x78\\x19\\x39\\xe0\\xb2\\xf7\\x66\\x34\\xff\\x9f\\x6c\\x57\\xe1\\xc4\\x3f\\x58\\x24\\x31\\x71\\xcd\\x86\\x2e\\xf4\\x28\\x45\\x76\\x17\\x2a\\xf1\\xf6\\xc3\\xbd\\x37\\xd5\\xd7\\x4b\\x28\\xa7\\xa9\\x86\\x98\\xbd\\x74\\xe5\\x7b\\xbc\\x14\\x2e\\x67\\xf7\\x03\\xf9\\xd6\\x2c\\xde\\x76\\x1a\\x02\\x26\\x8f\\xec\\xb3\\x43\\xfc\\x01\\x41\\x88\\x36\\x41\\x4f\\x12\\x22\\xca\\x24\\xbc\\xdd\\x69\\xd0\\x05\\x90\\x1d\\xa2\\xa0\\xf9\\x44\\x65\\xe4\\xd4\\xba\\x68\\x89\\x88\\x16\\xbf\\x7e\\x3e\\x4b\\xb7\\x9c\\x8c\\xa5\\x99\\x7f\\xba\\x9a\\x8d\\xf8\\x4f\\xaa\\x2d\\x24\\xb0\\x44\\xc4\\xea\\x61\\x02\\x9a\\x46\\xcb\\xa7\\x03\\x42\\x1e\\x36\\x1d\\xfa\\x52\\xca\\xaf\\xf3\\xbb\\xaa\\xb7\\xfd\\x75\\x3f\\x28\\x56\\xd7\\xc0\\x83\\xae\\xb9\\x76\\x8d\\xa1\\x1d\\x82\\x1e\\x2d\\x30\\x9f\\x7a\\x73\\x5c\\x39\\x96\\x92\\xda\\xc2\\xf2\\x62\\x84\\x6b\\x89\\x1b\\xf6\\x46\\x1a\\xf2\\x3c\\x8c\\x7c\\xe1\\xd4\\xd9\\x03\\x2c\\x3c\\x14\\x0f\\x73\\x9e\\x55\\x84\\xc3\\x6f\\x05\\xea\\xf4\\x34\\x9f\\xf4\\x54\\x5f\\x28\\x3a\\x4e\\x0f\\xea\\x49\\x43\\x0a\\x1b\\x18\\x0d\\x08\\x71\\xe3\\x74\\x2b\\x88\\xcc\\xb5\\x91\\x12\\x4f\\xc4\\x27\\xed\\x67\\x3b\\x5f\\x27\\xb0\\xb0\\xa6\\xf5\\x4a\\xf2\\x2b\\xa4\\xa6\\xd1\\xc6\\xc1\\xdb\\x2a\\x1f\\xca\\xa6\\xd8\\xa0\\x30\\x8b\\x77\\xef\\x2d\\x0c\\x61\\xbb\\xf5\\x1b\\x95\\xf1\\xe8\\xb6\\xab\\xc5\\x04\\x1d\\x97\\xb6\\xb6\\xf1\\xb5\\x69\\xb3\\xf6\\x3c\\xec\\x05\\xcb\\x56\\x7a\\xae\\xa1\\x06\\x72\\x70\\x96\\xee\\x8a\\x9e\\xa8\\x7b\\x88\\x04\\x90\\x1f\\x7e\\x88\\xa7\\x40\\x9c\\x66\\xf1\\x52\\xde\\x9d\\xbf\\xcb\\xe3\\x19\\x52\\xe6\\xfd\\x83\\xb2\\x87\\x7a\\x77\\x5f\\xae\\x42\\x5b\\x38\\x51\\xe0\\xef\\xf8\\x79\\x2f\\xfb\\x38\\x48\\xf8\\x4a\\x65\\xcc\\x31\\x72\\x53\\xb2\\x72\\x47\\x5e\\x71\\x7e\\x49\\xe9\\xc6\\xff\\x6b\\x78\\x59\\xd1\\x1b\\xba\\x7c\\x44\\x28\\xc8\\x2d\\x17\\x89\\xe0\\xdc\\xa5\\xbc\\xad\\xca\\x2f\\xdb\\x25\\x9e\\x98\"},\n{{0xdb,0x46,0x1b,0x9f,0x70,0x7e,0xb2,0xcd,0x77,0x48,0xc4,0x4c,0x99,0x56,0x2f,0x13,0x02,0x39,0x74,0x89,0x35,0x3d,0xf5,0xf3,0x03,0x79,0x7f,0xe0,0xd0,0xb5,0x8d,0xe1,},{0x63,0x51,0x16,0xda,0x8b,0xa5,0xa3,0x6a,0x37,0x77,0x28,0xe2,0x86,0x18,0xe7,0x5c,0x55,0x92,0xae,0xcc,0x18,0xe3,0x40,0x11,0xc4,0xc4,0x25,0x91,0x97,0x0b,0x73,0x66,},{0xdd,0x04,0x9c,0xa7,0x9b,0xeb,0x9e,0xac,0x32,0x5a,0xcf,0x44,0x67,0x2f,0xf5,0x78,0xa9,0x68,0x50,0x2f,0xe1,0xbc,0xf5,0xea,0x19,0xd5,0x2c,0x0f,0x67,0x78,0xc7,0xf1,0xc7,0xbb,0xf7,0x42,0x74,0x79,0x07,0x78,0x6e,0x60,0x81,0x23,0x91,0x1a,0x92,0x07,0x78,0xd2,0xf9,0x59,0x6f,0xe2,0x9b,0xe7,0xcc,0x28,0xfd,0x00,0x9d,0x7c,0x44,0x0e,},\"\\x1a\\x2a\\xc8\\xc1\\xb9\\xea\\x09\\x9b\\x83\\x1a\\x68\\x12\\xd2\\xb4\\x26\\x13\\x09\\x05\\x8e\\xa5\\x88\\x3d\\x70\\xb1\\xc6\\x07\\xb9\\xcd\\x3f\\xdf\\xdb\\x86\\xe7\\x99\\x02\\xb0\\xfe\\x89\\xe8\\x0e\\xa7\\xc4\\x78\\x20\\x76\\x74\\xb2\\xd8\\x03\\xb0\\xb9\\xca\\x14\\x7f\\xfe\\x62\\xe5\\x94\\xf5\\x06\\xc7\\x96\\xd6\\x89\\x97\\xce\\x48\\x2b\\x51\\xa4\\x6e\\x49\\xb4\\xa5\\xd8\\x58\\xcd\\xea\\xe2\\xc6\\xec\\x9b\\x69\\x41\\x98\\xe6\\x82\\x2f\\x0e\\x33\\xed\\x57\\xbe\\xdb\\x03\\x35\\xc7\\x89\\x0a\\x72\\xa7\\xee\\x3c\\x23\\x82\\x3b\\xe7\\x9b\\x7f\\x94\\x71\\xe0\\x33\\xc7\\x9a\\xee\\xd5\\x2e\\x57\\x60\\xfb\\x0c\\xcb\\xb9\\xd3\\x8f\\xde\\xd8\\xb4\\x73\\x83\\xc1\\x91\\x03\\xce\\x44\\x70\\x58\\x34\\xc5\\x9d\\xdd\\x86\\xf7\\x03\\x39\\x48\\x61\\x2d\\x66\\x62\\xf5\\x16\\xce\\x4e\\x39\\x9f\\xf2\\x03\\x63\\xcc\\x72\\x81\\xa6\\x9b\\x2d\\x5c\\x30\\x7b\\x10\\xb7\\x04\\x15\\x01\\x84\\xec\\xe3\\x2f\\x39\\x0d\\x77\\x2c\\xcf\\xa7\\x84\\x83\\xbb\\x77\\xa9\\xfb\\xa8\\x44\\x25\\x36\\x69\\x84\\x17\\x1c\\xc2\\xbb\\x60\\xb0\\xec\\x6c\\x62\\x8d\\x4e\\x90\\x30\\x74\\x6d\\xac\\x1c\\xab\\xca\\x60\\xf0\\x56\\x83\\x81\\x33\\x46\\xa1\\xa5\\xbc\\x14\\x72\\x75\\x49\\x79\\x5c\\x1c\\x92\\x68\\x69\\xe1\\xaa\\x25\\x09\\x3d\\x59\\x1b\\x43\\xe0\\x86\\xe4\\x3a\\x04\\xd1\\x70\\xd9\\x42\\xc4\\x16\\x5e\\x1c\\x5c\\xe7\\x6c\\x3e\\x64\\x97\\x3d\\x91\\x36\\xf9\\x32\\x5b\\xee\\x82\\x16\\x82\\xf1\\x04\\x3e\\x95\\x1b\\x02\\x76\\x7f\\x3f\\xb4\\x58\\xd0\\x24\\x49\\xad\\xd3\\xe8\\xa6\\x6e\\x51\\x6f\\xdb\\x1e\\xd5\\x80\\xe0\\x56\\xe0\\xf7\\x8e\\xe3\\x3f\\xd9\\xee\\x32\\x80\\x91\\x2f\\xae\\x07\\xfe\\x1e\\xa0\\x25\\x27\\xcd\\x00\\x1d\\x6f\\x6f\\x2f\\x89\\xee\\x64\\x9f\\x51\\x74\\x14\\xd5\\x6f\\x57\\x35\\x9a\\x84\\x68\\x91\\xf0\\x22\\x2c\\x32\\x1d\\x7e\\x70\\x81\\x79\\x95\\xa8\\xcd\\x8e\\x94\\x76\\x0b\\x6e\\x74\\x83\\x2b\\xab\\x68\\xd5\\x5b\\xc4\\x64\\x18\\x84\\x22\\x1f\\xd2\\x9f\\x12\\x2d\\x87\\xa9\\xa8\\x68\\xb6\\xa6\\x06\\x0c\\x87\\xb2\\x38\\x2c\\xf7\\xbb\\xdd\\xa4\\xcd\\x6a\\xaa\\x1b\\xbc\\x8e\\x6d\\x63\\x4a\\xb5\\x80\\xc8\\x65\\xf5\\xad\\xd6\\xa1\\xd5\\x4e\\x61\\xa6\\x07\\xdc\\x2c\\x37\\xb0\\x8a\\x8c\\xba\\x6e\\x61\\x0c\\x12\\xcf\\xeb\\xef\\x9c\\x98\\x9e\\xef\\x3b\\x78\\x2a\\xcb\\xd1\\xbc\\xec\\x5f\\x04\\xe8\\x35\\xca\\x10\\x12\\x98\\xb5\\xe9\\xbd\\xd8\\x81\\x3a\\x71\\xb0\\xd4\\x69\\xfc\\xf1\\x27\\x27\\xd3\\xde\\x1c\\x3f\\x97\\xdd\\xbc\\x6a\\xb2\\x65\\x84\\x40\\xdd\\x64\\x21\\x01\\x9b\\xc6\\x8f\\x35\\x6d\\x6f\\x25\\x53\\x68\\x65\\x85\\x1d\\x92\\xd9\\x0f\\xe9\\x96\\x9c\\x3b\\x7c\\x35\\xa2\\xe8\\x8c\\xe1\\x53\\x47\\x6e\\xc3\\x97\\x3a\\xf9\\x35\\x9f\\x16\\x77\\xa4\\xca\\xf1\\xcc\\x48\\x1c\\x71\\xbd\\x90\\x22\\x8f\\xf5\\xfc\\x6d\\xd8\\x3b\\x8a\\x69\\x9f\\xfe\\x51\\x49\\x29\\xf5\\xc9\\x5c\\xb4\\xf0\\x4b\\x00\\xdd\\x18\\xa2\\x87\\x2c\\x41\\x86\\x8d\\x3b\\xeb\\x76\\x49\\x8d\\xdc\\x92\\x34\\xb6\\x3f\\x59\\x9d\\x70\\x71\\x80\\x1d\\xb2\\xc2\\x87\\x8f\\x7b\\xef\\x4f\\xfd\\xdd\\x81\\x32\\x26\\xf0\\x6d\\xb8\\x4e\\xb3\\x02\\x17\\xa7\\x18\\x30\\x82\\xe3\\xc1\\x24\\x2b\\xb6\\xd0\\x1c\\xd3\\xa6\\xce\\x27\\xbf\\xf1\\x6b\\xfb\\xfd\\xd7\\x5b\\x7e\\x51\\x04\\x31\\x2c\\x49\\xc4\\x3a\\xad\\xfc\\xd5\\xb4\\xed\\xba\\x0f\\xf5\\x0d\\x28\\x90\\xca\\x3c\\xd9\\xcc\\xa3\\x3e\\x4f\\xc6\\x94\\xc0\\x57\\xc4\\x7e\\xbe\\x1c\\x20\\xa4\\xad\\x11\\x5f\\x98\\x5d\\xc7\\x44\\x2c\\x6f\\x6d\\xa7\\xbe\\x53\\x0b\\x69\\x02\\x28\\x9c\\xab\\x9c\\xa1\\x39\\xc6\\xb2\\x4c\\xb8\\x0f\\xfd\\xd7\\x82\\x32\\x4e\\x60\\x2c\\x45\\x91\\x0d\\xb6\\x3d\\x8b\\x5c\\x44\\xca\\x29\\xd2\\x7f\\x56\\xdb\\xf0\\x01\\x86\\xba\\x58\\x3c\\x34\\xe1\\x60\\x31\\xdf\\x35\\x75\\x46\\xb3\\xab\\x9a\\x3d\\xd6\\x5e\\x91\\xd7\\x12\\x8c\\x93\\x91\\x95\\xe6\\x46\\xa0\\xf0\\xb8\\x9b\\xf5\\xdf\\x04\\xba\\x23\\x3d\\x6a\\x12\\xa2\\x71\\xf7\\xe0\\x4a\\xa4\\x5c\\xda\\x99\\xb4\\xa5\\x5a\\x21\\xcb\\xbb\\x73\\x85\\x15\\xe3\\x2c\\x56\\xaa\\xc2\\x49\\x62\\x32\\xb1\\x00\\x8a\\x67\\x61\\xc8\\x04\\x5a\\x1f\\xe0\\xf9\\xa3\\x64\\x40\\x47\\xb5\\x96\\x6a\\x58\\xa6\\x00\\x46\\x6c\\x1b\\x1d\\x11\\xdd\\xad\\x5a\\xa5\\x73\\xc4\\x3e\\xbd\\xa8\\x87\\xe1\\x6a\\x05\"},\n{{0xf5,0xc0,0xa7,0xf8,0xf6,0x58,0x4c,0x5d,0x2f,0x2e,0x1d,0x08,0x10,0xe8,0xe8,0x61,0x03,0xe4,0xe2,0xd4,0x5c,0xf9,0xa7,0x21,0xd8,0xc4,0x7f,0x67,0x49,0x33,0x96,0xa4,},{0x3c,0x6d,0x6c,0xce,0x49,0x63,0x31,0x41,0x07,0x86,0x96,0x13,0x1a,0x8d,0x84,0xed,0x82,0x3f,0x30,0x66,0x4b,0x28,0x9a,0xf9,0xdd,0x30,0xc6,0x40,0x7f,0x6f,0x03,0x13,},{0xd4,0xc3,0x0a,0x48,0xc4,0x52,0x3b,0x1f,0x84,0xb1,0x4b,0x65,0x7a,0xf8,0xf8,0x59,0x75,0x5b,0xba,0x63,0x59,0x98,0x8b,0x67,0x5c,0x6d,0x85,0xdd,0xf3,0x54,0x62,0x82,0x0d,0xa4,0x76,0xd8,0x4f,0x6c,0x40,0x2e,0x65,0xb0,0x20,0xd9,0xe8,0xa2,0xc2,0x85,0xc1,0x67,0x08,0xae,0x58,0xd1,0xf8,0xdb,0xc6,0x57,0x82,0xa8,0x98,0xa6,0x65,0x08,},\"\\xd6\\x8a\\xbc\\x60\\x9a\\x7a\\x0c\\xe2\\x56\\x69\\x9e\\xb1\\x70\\x43\\xde\\xfe\\x1e\\xb8\\x22\\xc9\\x70\\x8f\\x65\\x71\\x8a\\x06\\x58\\x1f\\xab\\x21\\x10\\xec\\x2d\\xb0\\x92\\x13\\xbb\\x9e\\x0f\\x36\\x12\\xce\\x4a\\x3f\\x8f\\xdb\\xe7\\x57\\xa9\\xf0\\xeb\\x2c\\x3e\\xba\\x43\\x8a\\x90\\x88\\xb1\\x8f\\x6c\\x5c\\xaa\\xbb\\xe5\\xc8\\x2f\\x7a\\x9a\\xb2\\xfe\\xcf\\x0f\\x58\\x59\\xd1\\x75\\xe1\\x39\\x26\\x30\\x33\\x74\\x24\\x58\\xf8\\x2a\\x6f\\x38\\x75\\x6c\\xd5\\xbc\\xdf\\x9e\\x07\\x36\\xdb\\x2c\\xab\\x20\\xa0\\xcd\\x3f\\x0f\\x1c\\xdb\\xea\\x85\\x56\\xd8\\x49\\x09\\x35\\x8d\\xd8\\xf6\\x9f\\x0d\\xac\\xd4\\x9a\\xbf\\x8a\\xc1\\xbf\\xe7\\x59\\x40\\xd6\\x93\\x9e\\x6a\\x55\\x38\\x5b\\x5a\\xce\\x7c\\xe1\\xfd\\xe1\\x20\\x67\\x9a\\xb6\\xea\\x7a\\x89\\xd1\\x42\\x68\\xd2\\x9f\\xfb\\x46\\xdf\\x10\\x5b\\xf3\\x90\\x92\\x42\\xc6\\x60\\x5f\\x3e\\x3e\\x2a\\xb7\\x44\\x89\\x37\\xd6\\xdb\\x2b\\xa0\\x54\\xc7\\xb1\\x4f\\x43\\x2d\\xb4\\x1d\\xc1\\x8a\\x5b\\x95\\x73\\x36\\xb7\\xf5\\x2d\\x97\\x8e\\xc0\\x3e\\x7d\\x57\\x64\\xe9\\xbd\\x2f\\x4b\\x68\\x95\\x8d\\x93\\x7b\\xf2\\x98\\x23\\xb2\\x7e\\xfb\\x31\\xe2\\x5b\\x43\\x92\\x5c\\x4d\\xac\\xbe\\x67\\x18\\xa6\\x0f\\xea\\x3b\\x32\\x70\\xe7\\xb7\\x6b\\x0d\\xe0\\xe7\\x0f\\x7f\\xa3\\xc1\\x2c\\x21\\x5e\\xf7\\x2b\\x95\\xdc\\x1b\\x52\\x76\\x23\\x81\\x79\\xdf\\xc5\\x2f\\xc4\\x88\\x59\\x64\\x9f\\xa5\\x82\\xd0\\x5a\\x60\\xdf\\x68\\x59\\x9a\\x1c\\xee\\xa6\\x4f\\x64\\x12\\xd3\\xf8\\x49\\x8a\\xe2\\xce\\xdb\\x12\\x42\\x45\\x88\\x3a\\x24\\x0b\\xc0\\x85\\x1f\\x0e\\x32\\x49\\x65\\xbe\\x12\\x04\\x86\\xe1\\xea\\x89\\xa0\\x18\\x2d\\xfa\\x8e\\xab\\xd3\\xb8\\xfa\\x66\\xa9\\x9c\\x51\\x49\\x13\\x89\\xf3\\xc8\\x3a\\x3c\\xdb\\x42\\x67\\xf3\\xe4\\xdb\\xc9\\x8f\\x0c\\x44\\x85\\x6b\\x04\\x4d\\xc8\\x8d\\x90\\xee\\xee\\x84\\x15\\xbf\\x73\\xde\\x17\\x1a\\xfe\\x84\\xbe\\x90\\x35\\xe0\\xdc\\x4c\\x80\\xcf\\x04\\x22\\x46\\x9f\\xe0\\xc9\\xbd\\x1c\\x6a\\xa6\\x54\\xa5\\x9b\\x5e\\x34\\xee\\xd3\\x51\\xcd\\xa2\\x87\\x12\\x69\\xac\\x47\\x8e\\x8d\\x38\\x2e\\x74\\x0e\\x9a\\xc7\\xab\\x4d\\xdc\\x4c\\x0d\\xef\\x0a\\xea\\xb7\\x97\\xb6\\xf1\\xa4\\x27\\xb8\\xe4\\xa8\\x49\\x7a\\x0b\\x97\\x97\\xda\\xdc\\xd3\\x5c\\x41\\x4f\\xd5\\x5b\\x78\\x31\\x30\\xf6\\xcd\\xed\\x38\\xa4\\x4c\\x1a\\x89\\x28\\x83\\x07\\xeb\\x84\\x25\\x48\\x41\\x37\\xa8\\xae\\xdb\\x03\\x0d\\x54\\xb6\\x16\\xa8\\x2e\\x3c\\x5a\\xcf\\xfb\\x08\\xd6\\xcc\\x1a\\x61\\x74\\x5c\\x29\\xaf\\xc6\\x8a\\x0c\\x18\\x38\\xb1\\x39\\x15\\x9c\\x5f\\xa6\\x67\\x4d\\x66\\xb9\\xe3\\x38\\x11\\x5a\\xad\\x4b\\x1b\\x47\\x10\\xaa\\x5d\\x95\\x17\\xbc\\xf7\\xe1\\xcb\\x12\\xd4\\xe6\\xa5\\x1c\\x11\\x78\\x9f\\xdc\\xae\\x9d\\x9b\\xbe\\x78\\xf6\\x9a\\x33\\xe5\\x2d\\xf1\\x83\\x3c\\x87\\x6b\\x02\\x68\\x7a\\x40\\x4f\\xac\\xad\\x32\\x84\\x1c\\xb2\\xd5\\x25\\x54\\xe7\\xb8\\xe2\\x20\\x9e\\x3f\\x88\\xfd\\x94\\x8c\\x1e\\xcf\\x83\\x95\\x7c\\x96\\xf4\\x3b\\x03\\x4b\\xed\\xa6\\xc4\\x76\\x09\\x6b\\xcb\\x09\\x30\\x1a\\xd6\\x1f\\x83\\x67\\xcc\\x43\\xe1\\x56\\x13\\x18\\x62\\xb4\\x2e\\xce\\x28\\x5b\\xec\\x2d\\xcc\\x2d\\x02\\xd0\\x94\\xd0\\x42\\xa1\\x60\\x72\\xeb\\x22\\xab\\x98\\x88\\x01\\x3b\\xe8\\x23\\x71\\x56\\x94\\x00\\xec\\x1f\\x8e\\xc7\\xe7\\x91\\x08\\xc4\\x1b\\x85\\x33\\x65\\x26\\x8f\\xa4\\xcf\\xbc\\x62\\xc4\\xac\\x12\\xcc\\x98\\xd2\\xec\\x38\\xa8\\x7d\\x60\\x85\\x85\\x95\\x67\\xc0\\xf2\\x7d\\x6d\\x43\\x1a\\x04\\x6e\\x88\\xa9\\x81\\x55\\x58\\x66\\x07\\x05\\xfd\\x05\\xeb\\x06\\xc6\\xc0\\x5e\\x5b\\x7d\\x62\\x34\\x7c\\xee\\xe2\\x7d\\xff\\xed\\x71\\x41\\x54\\x0d\\x60\\x8c\\xb9\\x75\\x07\\x5a\\x96\\x44\\xac\\xc6\\x32\\x84\\x39\\xf9\\xfa\\x68\\x2b\\x22\\x6b\\x18\\x61\\x54\\x54\\x90\\x11\\xc3\\xb0\\xf0\\xff\\x4f\\x74\\xca\\xa7\\x1c\\x19\\x44\\xe4\\xcb\\x83\\x6c\\xe8\\x51\\xd9\\xb5\\xd9\\xe7\\x27\\xc5\\x53\\xe3\\xc7\\x23\\xcf\\x98\\xc2\\x73\\xe5\\x67\\x5c\\xab\\x89\\x9b\\xb6\\x6f\\x46\\x33\\xa7\\x6d\\xea\\x35\\x73\\x41\\xf9\\x83\\xc5\\x3d\\x91\\x58\\xad\\x31\\x9a\\xda\\x75\\x40\\x8b\\x41\\xc0\\x6f\\x26\\xb7\\x43\\x5b\\x80\\xdc\\x3b\\xc0\\xaa\\xf2\\x2a\\x83\\x3d\\xde\\xdc\\xd6\\x78\\x5c\\x87\\xd1\\x96\\xb0\\xaf\\x2c\\x9a\\x43\\xd1\"},\n{{0x1a,0xb9,0x46,0xc0,0xc1,0xae,0xbf,0x9c,0xa3,0x7c,0x2f,0x4e,0x2a,0x4b,0x33,0x7d,0x5b,0x1e,0xbc,0xcd,0x24,0x73,0x4c,0x9c,0xb2,0xa1,0x60,0x8c,0x88,0x1e,0x57,0x57,},{0x9a,0xfc,0x63,0xdf,0xce,0x0d,0x48,0x9b,0x40,0x90,0x7a,0xee,0xd6,0xdf,0xfe,0x4c,0xd8,0xef,0x5a,0x6f,0xfa,0x22,0x98,0x95,0x56,0x44,0x5c,0xbf,0x9b,0x35,0x19,0xc2,},{0xbf,0xab,0xde,0xa4,0x18,0x10,0xa5,0x3f,0x8e,0x52,0x7a,0xcd,0x66,0xec,0x10,0x6c,0xe2,0xae,0x1a,0x67,0xff,0x6a,0x9b,0x52,0x2e,0x0f,0x08,0xfb,0xbf,0x12,0x52,0x68,0x2c,0xb3,0xa1,0xdc,0xc8,0x75,0x60,0x19,0x44,0xcb,0x88,0x00,0x0f,0x72,0xe1,0x39,0x07,0x00,0x79,0x03,0xa7,0x7c,0xd0,0xdb,0x03,0x16,0xd4,0x19,0xac,0x38,0xc2,0x04,},\"\\x9b\\xb0\\x71\\xb6\\x2c\\x04\\x06\\x4b\\x0c\\x96\\xe2\\x43\\xdd\\x19\\x8c\\x39\\x71\\x7b\\x25\\xc9\\x94\\x48\\xc2\\xc0\\x02\\xb8\\x4a\\x99\\x20\\x4c\\x5a\\x6e\\x23\\xb4\\xb9\\x12\\x02\\x86\\x75\\xbf\\xdc\\x4d\\xf9\\x3c\\x5b\\x2f\\xb8\\x08\\x81\\xa2\\x3e\\x0d\\x44\\xba\\x18\\xbd\\xe9\\x91\\x21\\xee\\xe8\\x6a\\xdc\\x6f\\x84\\x28\\x19\\xd6\\xeb\\xc7\\xa2\\x88\\x99\\x2d\\xa3\\x28\\x58\\x05\\xa8\\xb8\\xb6\\xfb\\xcd\\x22\\x67\\xb6\\x86\\xb3\\xe1\\xbf\\x79\\x60\\xb4\\x5f\\x24\\x4f\\x85\\x2e\\x82\\x49\\x29\\x44\\xe3\\xd6\\x18\\xbc\\xc4\\x51\\x4c\\x17\\xf7\\x22\\xba\\x49\\xac\\xa7\\xf2\\xf3\\xbb\\x4e\\x91\\xf9\\x40\\xe9\\xce\\xf0\\x15\\x65\\x0c\\x3e\\x40\\xb0\\xc8\\x55\\xa1\\x7c\\x42\\xf1\\x1e\\x3a\\x34\\xac\\xc8\\x52\\x87\\xdb\\xe0\\xf9\\x09\\x3c\\x00\\x37\\x3d\\x50\\xc0\\xb3\\x06\\x4a\\x5a\\x5f\\x2b\\x1e\\x89\\x20\\x65\\x17\\x52\\x82\\x95\\xfd\\x87\\x17\\x03\\xa8\\xe7\\x62\\xb5\\xe7\\x6f\\xb9\\xb7\\x47\\x3d\\x21\\x49\\xb8\\x5b\\x94\\x61\\xf5\\x58\\x7e\\xd7\\xe7\\xfc\\x8b\\x50\\xaa\\x09\\x87\\x6d\\xee\\xb6\\xe2\\x37\\x07\\x85\\x02\\x14\\x2c\\xec\\x6b\\xdd\\xc7\\x01\\x40\\xfe\\x1d\\x1f\\x16\\x58\\xd5\\xd3\\xe9\\x10\\xfd\\x70\\x36\\xa2\\xf9\\x24\\xb4\\x99\\xdb\\x17\\x56\\xf7\\xc8\\xce\\x0d\\x5f\\x0d\\x04\\x5b\\x39\\xbc\\x81\\xc5\\xc2\\xf1\\xa7\\x61\\xf5\\x2f\\xf3\\x93\\xe0\\x64\\x9b\\x8d\\xb0\\xbd\\x88\\x54\\xbd\\x02\\x6b\\xe2\\xc7\\xc3\\xcd\\x63\\x52\\x6b\\xa5\\xa8\\x0d\\x48\\x33\\x5f\\x03\\x38\\x32\\xd6\\x33\\x76\\x07\\x1b\\x63\\x08\\xf0\\x59\\x60\\xcb\\x3f\\xc9\\xfa\\xc9\\x32\\xed\\xd8\\x37\\x6d\\xae\\x51\\xf2\\xc6\\x61\\xf7\\x5b\\x7c\\x6f\\x4a\\xc8\\x56\\x75\\x3a\\xca\\x62\\x06\\x28\\x77\\x60\\x9f\\xc4\\xa0\\xff\\x60\\x67\\x02\\x82\\xc0\\x5e\\x88\\x2d\\x1a\\x03\\x5b\\xf9\\x89\\x0c\\xab\\x29\\x6a\\xc7\\xa8\\xdf\\x24\\x4c\\x56\\xf4\\x90\\x25\\x0f\\x02\\x00\\x54\\xb8\\xaf\\x51\\xbe\\x4f\\xc3\\x18\\xbe\\xba\\x50\\x62\\x32\\xbf\\x45\\xe1\\x7f\\x5c\\x74\\x0c\\xf0\\x9d\\x37\\x51\\x5a\\x8b\\xc8\\x94\\xbc\\x95\\x5c\\x8a\\x46\\x08\\x77\\xc7\\x85\\x4f\\x8b\\xe3\\x63\\xb2\\x19\\x33\\xe1\\x62\\x87\\xae\\x0c\\xb7\\x0f\\x22\\x2d\\x4e\\x36\\xb8\\xb4\\x24\\x97\\x55\\x59\\xbb\\x4b\\xfc\\x8d\\xd1\\xd5\\x1b\\x3c\\x0f\\xaf\\x4a\\x53\\xe3\\x02\\x19\\x6f\\x9f\\xed\\xb5\\x32\\x87\\xd0\\x93\\x15\\xdf\\xff\\xa2\\xbc\\x4b\\x3a\\xcf\\xf1\\x37\\xf9\\xa7\\x6d\\x68\\x56\\x21\\x7f\\x79\\xcb\\xb2\\x54\\x33\\xfc\\x97\\x89\\x9f\\xd6\\x54\\x0f\\x18\\x08\\x8e\\x84\\x41\\x7e\\x48\\x33\\xe4\\xa9\\x1a\\xab\\xa4\\x65\\x8a\\xe9\\xad\\x7f\\x76\\x0d\\xd9\\xc5\\xb7\\x19\\x1a\\x0d\\x3c\\x05\\x54\\x1b\\x83\\xc0\\x25\\xa7\\x99\\x21\\x38\\xe6\\xd1\\x08\\x0d\\xa1\\x4c\\x2c\\x88\\x7c\\x6d\\x67\\x0a\\xab\\x37\\x4d\\x43\\x6c\\x27\\x2f\\x9e\\x96\\xf8\\x5a\\x9c\\x42\\x33\\x79\\xc0\\xd4\\x7c\\x46\\xdf\\x6d\\xe3\\x34\\xea\\x20\\x57\\x15\\x8d\\x33\\x23\\x1e\\x14\\x26\\xa6\\x6d\\x3c\\x70\\x82\\x7a\\xad\\x55\\x11\\xb8\\x46\\xe0\\x3b\\x94\\x92\\x3d\\x5f\\x94\\xba\\xf1\\xf8\\xcf\\x11\\xa8\\x61\\x37\\x3a\\x5b\\x80\\xad\\x5e\\x31\\x7e\\xc2\\xa5\\x29\\xe9\\x4e\\x63\\x6c\\xdc\\x3a\\xa2\\x9e\\x5d\\xac\\x20\\x5a\\x0c\\x13\\xf6\\x8f\\xb1\\x98\\xcf\\x94\\x56\\xe6\\x39\\x0a\\xea\\xd4\\xd9\\x78\\x2a\\x10\\x38\\xf6\\x47\\x8d\\x33\\x9a\\x81\\xba\\xe7\\xaf\\x2a\\x04\\x15\\x1c\\x2f\\x22\\xe8\\xd3\\x9f\\xe0\\x71\\xe1\\xa5\\x21\\x68\\xd5\\x7c\\x84\\xc3\\x62\\x93\\x41\\x3f\\x8e\\x6f\\xf6\\x93\\x4f\\x05\\xe7\\xef\\xad\\x6f\\xa1\\x20\\xc8\\xc1\\xc3\\x8a\\xd1\\x88\\x6a\\x3d\\x00\\xbf\\xc3\\x06\\x45\\x92\\x03\\xc0\\x2c\\xdf\\x4f\\x06\\x65\\x2b\\xc8\\xfa\\x0e\\x8b\\x9c\\xc7\\x79\\xd4\\x3f\\xbb\\x78\\x9e\\x7d\\xad\\x5d\\xc9\\x9f\\x41\\xd4\\xcc\\x58\\x8c\\x1b\\x65\\x42\\x6a\\x4e\\x77\\x38\\x9e\\xdd\\x04\\x97\\x75\\x78\\xf8\\xf3\\x16\\xbc\\xdd\\x94\\x61\\xd6\\x66\\x47\\x2c\\xdd\\x27\\x6a\\xa5\\x69\\x72\\x1c\\x65\\x23\\x22\\x56\\xba\\x1c\\xf0\\xe7\\xf5\\xea\\x55\\x32\\x17\\x29\\xbb\\x0e\\x03\\x86\\xa7\\x7b\\x86\\x55\\x32\\x02\\x46\\x96\\xed\\xde\\xf4\\x85\\xb7\\xd7\\xb2\\x8c\\x15\\x73\\xb9\\x34\\x7e\\x41\\x4d\\x42\\x61\\x99\\x54\\x82\\xe3\\xb3\\x12\\xde\\x13\\x31\\xf8\\x4e\\x75\\x48\\x60\\x7a\\x84\"},\n{{0x04,0xbb,0x88,0x7a,0x8a,0x31,0x84,0xff,0xc7,0xea,0x09,0xc9,0xbc,0x7c,0x1f,0x7c,0x34,0x11,0x55,0x6a,0x7c,0x7c,0x39,0x8c,0xb8,0xb2,0xd9,0x8f,0xfd,0x9e,0xe8,0x66,},{0x6a,0xb1,0xe4,0xae,0x4a,0xa0,0xd3,0x89,0x89,0xae,0xef,0xa8,0x05,0xb5,0x78,0x80,0x6e,0x2e,0x97,0x1a,0xc7,0xac,0x05,0x40,0x99,0x58,0xbf,0xe6,0x00,0x71,0xf4,0xa7,},{0xcd,0x84,0xf5,0x5e,0x5e,0xf4,0x53,0x19,0x24,0xc5,0xa2,0x18,0x1e,0xc8,0x7a,0x64,0x54,0x13,0x88,0xc1,0x05,0x94,0x06,0xbc,0x07,0xd5,0x31,0x57,0xa1,0x68,0xe2,0x03,0xcc,0x8a,0xa0,0xf0,0x06,0x9d,0x53,0xff,0x58,0xa9,0x5b,0x8a,0x8c,0xaa,0xfd,0xad,0x26,0x36,0x3c,0x7d,0x0f,0x80,0x45,0xc4,0x35,0x9e,0x97,0xb4,0x36,0x02,0xc6,0x06,},\"\\xb7\\xab\\x0c\\x81\\x63\\xf4\\x78\\xc6\\xca\\xbf\\x2b\\xbd\\x7c\\xa3\\x7c\\xb0\\x24\\x56\\xd7\\x6e\\x52\\x7e\\xea\\x1b\\x0d\\x26\\xdb\\x24\\x2e\\x37\\x87\\x76\\x32\\x98\\x5a\\x3e\\x3c\\xa4\\x1b\\x52\\xe2\\x1d\\x79\\x01\\x7b\\xff\\x81\\xee\\x55\\x1a\\xd7\\x2a\\xf2\\x77\\xb4\\x10\\xe4\\x2a\\xf8\\x22\\xc6\\x08\\xcd\\x69\\xd0\\x0b\\xf4\\x40\\xb7\\x5b\\x78\\x7a\\x8c\\x91\\x5d\\x70\\xb6\\xc6\\x37\\x6c\\x3f\\x67\\xfa\\x64\\xd6\\x12\\xa1\\xb4\\x49\\xa7\\xe2\\x13\\x4d\\x9c\\x23\\x23\\x01\\x57\\xd5\\x76\\xe0\\x6a\\x66\\xa8\\x42\\x2a\\x61\\x1e\\x2a\\x0f\\x09\\x72\\x86\\xc1\\x99\\xea\\x2a\\x16\\x28\\x61\\x86\\x4b\\xd0\\x35\\x07\\x6a\\xb2\\x0b\\xba\\xe2\\xb4\\x40\\x8a\\x2c\\x64\\x33\\xcb\\x23\\x43\\x3a\\x88\\x9f\\xe6\\x59\\x8f\\x47\\xbe\\x53\\xbb\\xd2\\xc8\\x0f\\x07\\xa8\\xfc\\xcb\\x8a\\xae\\x51\\x11\\x61\\xe6\\x09\\xda\\x4d\\x18\\x0a\\xce\\xa5\\x44\\x81\\x1e\\x94\\x49\\xc5\\xdc\\x22\\x50\\xe3\\xe5\\xa0\\xcd\\x41\\xda\\x33\\xa2\\xda\\x63\\x2e\\x60\\x38\\xbd\\x86\\xf1\\x6d\\x5b\\x7c\\x1b\\xe4\\x9f\\xc6\\xdb\\x49\\x90\\x76\\xca\\x91\\xf7\\xaa\\x02\\x8f\\xe3\\x85\\x29\\x70\\x0b\\x21\\xd0\\x72\\xd2\\xb7\\x5d\\xcc\\x8b\\x43\\x78\\x1d\\x4b\\xc4\\xd3\\xbb\\x58\\x4d\\x9d\\xa0\\x1c\\x3e\\xcc\\x85\\xb1\\xe9\\x3f\\xce\\x04\\x5d\\xad\\xce\\xea\\x51\\x06\\x46\\x8b\\xdf\\xe5\\xf7\\x0d\\x66\\xa4\\xfa\\xd6\\x0e\\x4f\\xb8\\x64\\xec\\x15\\xea\\x50\\xf6\\xcb\\x79\\x72\\x23\\xc8\\xc7\\x56\\xf7\\xa1\\x93\\x1a\\x39\\x46\\x4e\\xbb\\xb9\\x67\\x9f\\x6b\\x01\\x68\\x7c\\x17\\x4e\\xaa\\x32\\xb9\\x68\\xb9\\xcf\\xac\\xe8\\xc1\\x67\\x12\\x0a\\xa7\\xbd\\x02\\x42\\xf0\\x03\\xa0\\xc3\\x77\\x70\\x25\\x51\\xb3\\x0d\\xa2\\x48\\x8e\\xb2\\x94\\x40\\x52\\x93\\x4a\\xef\\x4b\\xfe\\x11\\x5f\\x0a\\xb7\\x40\\x5a\\x3d\\x5f\\xa9\\xbd\\x79\\x6b\\x37\\x17\\x42\\xbc\\x11\\x4a\\x9b\\xf2\\x8c\\x5b\\xd2\\x56\\x26\\x29\\x5c\\xe2\\x61\\xa6\\xa8\\x3e\\xf6\\x0b\\x77\\xd2\\xd3\\x2d\\xd7\\x10\\x5f\\xc8\\x36\\x64\\xaa\\x89\\x76\\x5b\\x3f\\x81\\x91\\xee\\xee\\xd8\\x78\\xf2\\xeb\\xff\\x2f\\xb9\\x76\\x63\\xa6\\x18\\x77\\xc0\\x93\\x93\\x3b\\xbd\\x07\\x31\\xe6\\x37\\x57\\x57\\x1b\\x0e\\x37\\xca\\xc9\\x9e\\xd0\\x1f\\xd2\\x14\\xcb\\xd4\\xfe\\xb9\\x77\\xe8\\x56\\xe0\\xa1\\xa7\\xef\\x0c\\x40\\x8c\\x20\\xe0\\xdd\\xaf\\x1f\\xd8\\xf0\\x28\\xcf\\xa0\\x8c\\x85\\x0f\\xa7\\x09\\x0d\\xca\\x8c\\xdd\\xe0\\xcb\\x69\\x03\\xda\\x18\\xc6\\x29\\x0c\\x66\\xa1\\xc0\\xae\\x0a\\x08\\x4b\\xf2\\x50\\xc5\\x1a\\x9d\\x03\\x5e\\x5b\\x16\\xec\\x61\\x66\\x36\\xaf\\xb9\\xb5\\xbc\\xe3\\x6a\\x77\\x5f\\xe2\\x17\\x5b\\xcc\\x2e\\xe0\\x72\\x20\\x83\\x4e\\xeb\\x31\\xca\\xee\\x50\\xe9\\xf8\\x06\\x3f\\xb1\\xfc\\x84\\x68\\xae\\x25\\xe3\\x96\\x67\\x89\\xa6\\xd8\\xdf\\xfe\\x08\\xa6\\xf7\\xa1\\xe6\\x72\\x6f\\x93\\xae\\x74\\x82\\xde\\x02\\x62\\xbb\\x1f\\x8d\\xe0\\xc9\\x5a\\x99\\xec\\xb9\\x56\\x84\\xd4\\x4b\\x3f\\x1a\\x33\\x2a\\x18\\xd2\\xcd\\x3d\\xcf\\x25\\x3c\\x33\\xd7\\x35\\x52\\x2f\\x79\\x6b\\x65\\x1c\\x9a\\x63\\x3a\\x8e\\xbe\\x95\\xd0\\x2b\\xc0\\x46\\x58\\x25\\xee\\x54\\x1a\\x7d\\x92\\x7b\\xb5\\xb9\\x0a\\x6d\\xb5\\x49\\x9f\\x8d\\x99\\x3a\\xb4\\x04\\xb1\\x65\\x0b\\x75\\xe7\\x92\\xa7\\xc8\\x34\\xeb\\x41\\xf0\\x47\\x01\\x38\\xb0\\xf5\\x78\\xa0\\x4c\\x9b\\xa5\\xad\\x95\\x0a\\xc7\\xc9\\xb5\\xd3\\x28\\xf3\\x40\\x8b\\x64\\x5a\\xd9\\xc6\\xbf\\x19\\x6d\\xd9\\x61\\x44\\x55\\x96\\xbc\\x78\\xf2\\x84\\xb8\\x91\\x4b\\x2a\\x8c\\xf9\\xb7\\xbd\\x3a\\x71\\x6d\\x8f\\x14\\x4b\\xb6\\xb1\\x5d\\x83\\x10\\x23\\x71\\x3b\\x5e\\x41\\xfd\\xa9\\xb5\\x87\\xff\\x9d\\x6c\\xc4\\x3c\\x08\\xd3\\x5a\\x70\\x7f\\x49\\x52\\x83\\xe1\\xac\\xe9\\x60\\x48\\x7e\\x7f\\x02\\xb7\\x54\\x3b\\x68\\xa7\\x31\\xa2\\x9b\\xf3\\xbe\\x14\\xb6\\xe9\\xc3\\x71\\x74\\xa9\\xf4\\x6f\\x56\\x11\\x99\\xdb\\xd2\\x7b\\x46\\xbf\\xe6\\x22\\x43\\xe0\\xc1\\x1c\\x0e\\xdf\\x13\\xb6\\x4f\\x41\\x1c\\x8e\\x8e\\xce\\xd3\\x5d\\x84\\x28\\xf7\\x9f\\x10\\xea\\xcf\\xfb\\x72\\x34\\xe5\\x46\\x41\\x3d\\x1e\\xb0\\xfa\\xd8\\x8c\\x0e\\x93\\x85\\x93\\xb4\\x3b\\x5e\\xe0\\xe4\\x28\\x5d\\x4d\\xdd\\xf5\\x29\\x5d\\xbf\\x1a\\x3d\\xdb\\xe9\\xf4\\x13\\x4d\\xd7\\x6d\\x3d\\xe7\\x04\\x62\\xc2\\xf0\\x4f\\xe0\\xae\\xbd\\xf5\\x9a\"},\n{{0x97,0x76,0xa4,0x67,0xfa,0x14,0x00,0x73,0x54,0x12,0xa7,0x9b,0x49,0x5f,0x9f,0xca,0x07,0x8c,0xe1,0xd8,0x7a,0x85,0x30,0xd8,0x5c,0x26,0x05,0x5d,0x3a,0x39,0x44,0x88,},{0xc7,0xdb,0xe0,0xe4,0x1c,0x0a,0x31,0xc0,0x94,0x27,0x93,0xff,0xd1,0x42,0xd8,0xb9,0x5c,0xc8,0x2e,0x5c,0xaa,0x92,0xa3,0x79,0xba,0x23,0xf6,0x44,0xed,0xf2,0x24,0xda,},{0xe1,0x31,0x7b,0xa2,0xa1,0x23,0xae,0x3b,0x29,0xe7,0xb6,0x0e,0x8e,0x93,0xbe,0xed,0xd7,0xa0,0x84,0x51,0xa0,0x13,0x69,0x5b,0x6d,0xcf,0x35,0x8e,0x40,0x34,0x02,0x6d,0xc7,0x40,0x37,0xaf,0xbd,0xd2,0x17,0xff,0x4b,0x14,0x8b,0x02,0x91,0x38,0xf4,0xbc,0xc8,0xf9,0x83,0x6a,0xbb,0xae,0x7e,0x62,0x76,0xe9,0xe7,0x69,0xdb,0xd8,0xf0,0x07,},\"\\xd7\\x85\\x53\\xa1\\xb7\\x05\\x5b\\x58\\xb2\\x13\\x10\\x1b\\x1c\\x84\\xc5\\x3e\\x16\\x4e\\x39\\xc6\\xe9\\xd3\\x6d\\xb4\\x3f\\x30\\xe1\\x9e\\x2a\\x12\\x5a\\x9a\\x67\\x70\\x9e\\xaf\\xef\\x96\\x4f\\xa5\\xba\\xb7\\x26\\x1d\\xdb\\x3a\\x8a\\x01\\x88\\x45\\x7d\\xfb\\xf5\\x15\\x9c\\x40\\xe5\\x1d\\xa8\\x20\\x84\\x83\\x24\\x57\\x81\\xd7\\x13\\x1e\\x23\\xa8\\xbe\\xe5\\xe5\\x06\\x33\\x18\\x16\\xb9\\xde\\xee\\xfe\\x6e\\x55\\x6e\\x3f\\x0c\\x95\\xc6\\x68\\xd1\\xbe\\xdb\\x7d\\xa6\\x35\\x06\\x54\\x58\\xad\\x20\\x46\\x70\\x12\\xf5\\x9f\\x17\\x13\\x52\\x06\\x80\\x20\\xce\\x3c\\x75\\x87\\x86\\x93\\xf6\\x43\\x7b\\xc4\\xa0\\x9f\\x13\\xb9\\xb0\\xf0\\xcd\\xda\\xf1\\x69\\x1b\\x87\\x2f\\x82\\x00\\x80\\x93\\xeb\\xfb\\xe2\\x33\\xd0\\x31\\x3e\\x72\\xc8\\x63\\x2d\\x7d\\x17\\x93\\xf0\\xb8\\x1c\\x76\\x88\\xf5\\x44\\x70\\x33\\x0f\\x04\\xe6\\x48\\x60\\xe6\\x44\\x6b\\xfc\\x6d\\x96\\xc8\\x75\\x69\\xbf\\x18\\x2f\\x0f\\x43\\x85\\xaf\\x48\\x5d\\x42\\x99\\xca\\xc0\\x4e\\x06\\xba\\x47\\x34\\x65\\x56\\x6c\\x47\\x7f\\x07\\xb9\\xdb\\x27\\x7a\\xb4\\xa9\\xde\\x2f\\xb2\\xde\\xd0\\xa5\\x01\\x1c\\xd0\\x6d\\x67\\x5c\\x08\\x00\\xb3\\x4f\\x55\\xbc\\xf3\\xec\\x72\\xd2\\x1c\\xa1\\x50\\xc8\\xbf\\x23\\x61\\x28\\x7b\\xe8\\x1e\\xfa\\xbb\\x96\\xd8\\x68\\x8a\\x1d\\xee\\x3f\\x43\\x0f\\x06\\xf6\\x37\\xdf\\xd0\\x6f\\x15\\x14\\x64\\xa0\\x5c\\x95\\xf5\\xfe\\x76\\xaf\\x2e\\x06\\xd0\\x12\\x3f\\x69\\x48\\xa2\\x6b\\x3b\\xe8\\x35\\x04\\x5a\\xa2\\x68\\xcc\\x1b\\xe9\\x76\\x69\\x71\\x07\\x77\\x02\\x08\\xa7\\x56\\x8f\\x02\\x5c\\x2d\\x53\\xc7\\x19\\xe5\\x24\\xcc\\x36\\x9d\\x9b\\x4a\\x33\\x7d\\x8f\\xd1\\xef\\x34\\x5b\\x9b\\xca\\x57\\xfb\\xd7\\xb6\\x5a\\x6b\\x99\\x7c\\xad\\x3f\\xce\\x4c\\xf0\\x6f\\x2c\\xa4\\x3e\\xbe\\x29\\x86\\xd0\\x96\\x82\\xd4\\x7c\\x92\\x2b\\x2c\\xb7\\x56\\x9d\\x98\\xde\\x97\\xa6\\x16\\x4f\\x54\\x70\\xee\\xc7\\x1c\\xed\\xa5\\x20\\xcc\\xec\\x77\\x32\\xbd\\x01\\x68\\x9e\\xf8\\x16\\x56\\xe9\\xf6\\xd0\\xc5\\x8a\\x89\\x55\\x58\\xae\\xe8\\x63\\xf5\\x46\\x9e\\x7a\\xb9\\x79\\x15\\xbf\\xe0\\xb8\\x0a\\x06\\x4c\\x65\\x9b\\x18\\x30\\x31\\xf7\\xf1\\xa8\\x6f\\xb1\\x1a\\x9d\\x52\\x8c\\x28\\x15\\xdc\\xaa\\x2f\\x0d\\xec\\x3d\\x21\\xa8\\x82\\xe1\\x06\\xe2\\x04\\x93\\xee\\x0a\\xcb\\x77\\x08\\xea\\xa2\\x91\\x25\\x74\\xae\\x97\\xbb\\x28\\x8b\\x41\\xfc\\x09\\x25\\x05\\x3a\\x29\\xb0\\xbf\\xbc\\x0e\\xba\\xe8\\xd6\\x3c\\xc0\\xb4\\x6e\\x37\\x38\\x04\\x6c\\x5a\\x20\\x25\\x30\\xbc\\xb1\\x5b\\x18\\x7a\\x72\\x85\\x4a\\xa2\\xd8\\xa7\\xa7\\x6c\\x89\\xa8\\x9a\\x5d\\xb4\\x60\\x32\\x07\\x4e\\x1b\\xd7\\xde\\x77\\xef\\x20\\x65\\xa0\\x8f\\x38\\x9d\\x78\\x3c\\xf7\\x59\\xeb\\xd5\\xa6\\x3a\\x44\\xd9\\x19\\xf9\\x48\\xf5\\x60\\xc3\\xe9\\x4c\\x42\\x39\\xe2\\x74\\xe0\\x51\\xa2\\x04\\x85\\xa4\\x30\\xcb\\xd5\\x29\\xf3\\x13\\xd9\\xf7\\xed\\x67\\x9a\\x34\\x18\\x7b\\x24\\xf8\\x41\\x30\\x87\\xa9\\x02\\x1e\\x47\\x31\\x73\\x0f\\x5f\\x46\\x1f\\xc5\\xaa\\xd6\\x65\\x4d\\xfa\\x1c\\x05\\x04\\xd2\\x61\\x24\\x70\\x7e\\x63\\xee\\x57\\xf9\\x31\\xb2\\x78\\x59\\x08\\xf8\\x6b\\x10\\x4b\\x3e\\xcb\\x96\\x00\\x02\\x51\\xd0\\x6c\\xe1\\xfa\\x45\\xe4\\xcd\\x6d\\xf9\\x1a\\xc1\\x5b\\xbf\\x7c\\xa3\\xc3\\xeb\\x8e\\xe0\\x82\\x76\\x12\\xa2\\x9e\\xcb\\x7a\\x36\\xd5\\x47\\x0c\\x40\\x50\\x51\\x82\\xfa\\x9a\\xc9\\x13\\x57\\x0d\\x0c\\x10\\x50\\xd9\\xa4\\x34\\x55\\xcb\\x7b\\xdc\\x17\\xd1\\x69\\x80\\x5f\\x01\\x89\\x56\\xf8\\x54\\xf8\\x91\\x9b\\xbf\\xb7\\x19\\xe1\\x86\\x7b\\x36\\xa6\\x4a\\xab\\xcd\\xb8\\x07\\xf4\\x8d\\xcc\\xc0\\x67\\x2f\\x67\\x88\\x74\\x50\\xb3\\xf3\\xe9\\x58\\xd7\\x84\\x99\\xe0\\xd1\\xab\\x36\\x8a\\xa4\\x94\\x42\\xe5\\xe8\\xa3\\x32\\xbf\\xfd\\x44\\xc1\\x69\\xea\\x67\\x62\\x9c\\x85\\x72\\x4d\\xb6\\xf1\\x58\\x6b\\x6c\\x6b\\x5b\\xe4\\x86\\x4d\\xfd\\x53\\xda\\x7c\\x0f\\x7b\\x8b\\xb3\\x57\\x31\\x16\\xbe\\x50\\x77\\xd3\\x32\\xbd\\x12\\xa6\\x30\\x0f\\x3a\\x68\\xa8\\x98\\x66\\xb4\\x79\\xec\\x2b\\xaa\\x27\\x7f\\x9f\\x56\\xf6\\xe1\\xd4\\x9d\\x74\\x1e\\xb3\\x22\\x03\\x5f\\xf8\\xcb\\x1d\\xe8\\x5c\\x8d\\xc8\\x7a\\xc8\\xe6\\xe4\\xc5\\xd2\\x0b\\xfb\\x6d\\x31\\x7a\\xb1\\x25\\x93\\x0c\\x42\\x60\\x9b\\xe3\\xae\\x82\\x24\\x2a\\x9e\\xf0\\x56\\x88\\x58\\xd8\"},\n{{0x09,0xd8,0x12,0x26,0x97,0x12,0x6d,0xfc,0x7e,0x11,0x68,0x5a,0x04,0x12,0x3f,0xdf,0xb4,0x7c,0xcd,0xdb,0x44,0x99,0xd8,0xa3,0xae,0xf4,0x18,0xcb,0x65,0xae,0xd7,0xa7,},{0xf8,0xdd,0xb1,0xc0,0x0f,0x6e,0x0f,0x4b,0xea,0xa6,0xfc,0x38,0xe5,0xd0,0xa5,0x77,0x5e,0xe2,0x8c,0x80,0xdb,0xde,0x3f,0x0c,0x79,0x30,0xa3,0x3a,0xad,0x71,0x50,0xf3,},{0x18,0xcf,0xaf,0x6d,0xc8,0xe4,0xe8,0x58,0x2b,0xce,0xfe,0x0c,0xdc,0x6f,0xce,0xfe,0x6a,0x4a,0x87,0xea,0x62,0x95,0x85,0xf3,0x7d,0x2f,0xba,0x44,0x6b,0x3a,0xeb,0xd4,0x52,0x42,0x63,0x82,0xda,0x0d,0x49,0x1c,0x39,0xcb,0x7d,0x54,0xd2,0x73,0x00,0x5d,0xc1,0x32,0x12,0x15,0x68,0xd2,0xab,0x67,0x45,0x20,0xad,0xda,0x75,0x23,0x84,0x0d,},\"\\xa0\\xd8\\xd8\\x79\\x8e\\xba\\x22\\xf5\\x67\\x60\\xc3\\x06\\x43\\xe9\\xfc\\x67\\x95\\x54\\x7e\\xa5\\xf2\\xf2\\xbb\\xd1\\x1c\\x03\\x92\\xb2\\xeb\\xf7\\x11\\xac\\xa2\\x2f\\x08\\x24\\x19\\x9f\\xc3\\x18\\x8a\\x45\\xbd\\xff\\xde\\x70\\xec\\xe9\\xab\\x15\\xa5\\xea\\x89\\x62\\x2a\\x58\\x71\\xe0\\xef\\x76\\x85\\xd1\\x0f\\x12\\x74\\xcc\\x19\\x5b\\x4f\\xda\\x81\\xf8\\x79\\xd1\\xe9\\xbf\\x42\\xf8\\x73\\xb2\\x0a\\x85\\x9c\\x23\\x3f\\x9e\\x49\\xad\\xbf\\x05\\x77\\x31\\xe1\\x13\\x35\\xe9\\xb6\\xd8\\xed\\x0e\\x06\\x9e\\x13\\x4e\\xc4\\x61\\xca\\x88\\x90\\xd7\\xb0\\x47\\x3c\\x40\\x5e\\x8a\\x9d\\x95\\xd1\\x57\\x11\\xb1\\x24\\x76\\x10\\x37\\x62\\xc6\\x26\\xd9\\xf2\\xaa\\x5d\\xd5\\x19\\xbd\\x82\\x5b\\x60\\xb3\\x23\\x4e\\xbf\\x65\\x1e\\x0d\\x19\\x33\\x37\\x1c\\x52\\xbf\\xd8\\xce\\x33\\xfc\\x36\\xbb\\xa3\\x28\\xf7\\xf3\\xf2\\xcc\\xc0\\x10\\x00\\xa8\\x99\\x04\\xaf\\x37\\xe4\\xe1\\xe9\\xe1\\x5f\\xff\\xab\\x5c\\x2b\\x0c\\x47\\xf3\\x7c\\xdc\\xb0\\x68\\xdb\\x33\\xac\\x36\\xa5\\xf0\\xd6\\xde\\x12\\x03\\xfb\\xf8\\x94\\x93\\x24\\xbd\\x3e\\xfd\\xa0\\xf9\\x88\\x9d\\xb0\\x0d\\xa2\\x31\\x7b\\x49\\xfd\\x18\\x69\\x99\\xdf\\x7f\\xcd\\xc3\\xcb\\x4e\\x1d\\x18\\xfa\\xa2\\x54\\x56\\x1c\\x25\\x11\\x78\\xb8\\xd3\\x3f\\xdc\\x9d\\xcc\\xd8\\xd2\\xd7\\x21\\xb9\\x3a\\x53\\x6c\\xcd\\x3c\\x0e\\x9c\\x85\\x63\\x37\\xf1\\x95\\xee\\xe7\\xda\\x9a\\x7f\\x6b\\x0a\\x42\\xb7\\xc5\\x41\\xc6\\xa6\\x8c\\x59\\x5b\\xf3\\x47\\x04\\xd9\\xfe\\x3a\\x56\\xd2\\xec\\x84\\x81\\xd5\\x77\\xc9\\x6e\\xcc\\x08\\xb8\\xe4\\x0a\\xcd\\xbf\\x05\\x0e\\x20\\xc6\\x83\\xf3\\x9c\\x41\\x4e\\x8c\\xbf\\xcf\\x4a\\x01\\x52\\x31\\x4c\\x05\\x98\\x7a\\x83\\xbd\\xe3\\x02\\x5b\\x73\\x5c\\xca\\x30\\x23\\xab\\xc5\\xfe\\xb7\\xe0\\x0d\\x02\\x36\\xb4\\xf2\\x4b\\x15\\xe6\\x79\\xdb\\x05\\x2c\\x8d\\x2f\\xdd\\xb3\\xbe\\xf8\\x66\\x3a\\x6d\\xf8\\x19\\xa9\\x81\\x55\\x27\\xa1\\xa2\\xf6\\x0a\\x0f\\xa4\\xe5\\x07\\x8d\\xdc\\x6d\\x43\\x5f\\xe8\\x92\\x87\\xb3\\x0f\\xfd\\xeb\\x5d\\x9a\\xe0\\x5d\\x1a\\x86\\x90\\xfb\\xc7\\x59\\x0a\\xad\\x57\\xd4\\x3d\\x22\\xc1\\x2a\\xce\\x2c\\x81\\x96\\x88\\x8e\\x35\\x4e\\x9f\\x78\\x2f\\x5d\\xbb\\x44\\x14\\x9e\\x83\\xfb\\x8b\\xbc\\x9d\\xa6\\xd8\\x9c\\xe2\\x06\\xc1\\xe2\\xb6\\xb2\\xb2\\x8f\\x93\\x3f\\x3e\\x5f\\xf1\\x17\\x5a\\x31\\xa8\\xff\\x5d\\x31\\xe6\\x5c\\x8b\\x00\\xc5\\xba\\x46\\x22\\x24\\xa1\\xe0\\x9d\\x4f\\x09\\xcb\\x40\\xfc\\x87\\xc3\\x6e\\x7d\\x28\\x5c\\x77\\x4a\\x96\\x97\\x62\\x03\\x65\\x18\\x28\\xe7\\x83\\x62\\x88\\x47\\xac\\x51\\x2e\\x5d\\x1c\\x35\\xb3\\x5b\\x03\\x01\\x71\\xf9\\x23\\x96\\xf5\\xff\\xaf\\xf5\\x85\\xce\\xad\\x04\\xb6\\xae\\x21\\x0d\\x80\\x70\\x7c\\xc6\\x83\\x2d\\x98\\xa2\\x0d\\x3a\\x94\\x76\\x48\\xda\\x26\\x04\\x93\\x7f\\xef\\xd2\\x5a\\x9f\\xe0\\xfc\\x5c\\xac\\x08\\x3d\\xdd\\x7d\\x20\\x75\\x30\\x7f\\x4f\\x38\\x26\\x64\\xf6\\x87\\xdc\\xe8\\xc6\\x55\\xde\\xd9\\xc1\\x2d\\x48\\xff\\x76\\x01\\xdf\\x2a\\x48\\xd3\\x7f\\xe2\\x14\\x97\\x08\\x44\\xc0\\x75\\xf2\\xea\\xb0\\x02\\x05\\x9f\\xc2\\x27\\x1e\\x61\\x7c\\x96\\x57\\xa0\\x1b\\xec\\x1d\\xd3\\x8f\\x6c\\x28\\xba\\x8a\\x61\\x7b\\xd3\\x08\\x51\\xe3\\xf9\\xdb\\xac\\x90\\x44\\x18\\xdf\\x1d\\x02\\x15\\xad\\x45\\xdf\\xc9\\xf0\\x2b\\x5c\\x5e\\x9f\\x9b\\xbc\\x6d\\xe8\\xb0\\x7a\\xf0\\xbd\\x1f\\x7f\\xa8\\x92\\x25\\x44\\xf1\\x2d\\x2a\\x3e\\x1a\\xad\\xff\\x7e\\x9c\\x6b\\x93\\x32\\x0c\\x3a\\x61\\xef\\x33\\xda\\x07\\xeb\\x87\\xb1\\x61\\x7f\\x9e\\x77\\xd7\\x70\\x2e\\x55\\x8b\\xc7\\xd8\\x12\\x2e\\x0d\\xfe\\x2a\\xe8\\x3e\\x83\\x6c\\x5b\\x1a\\x62\\xaa\\x58\\x5c\\x0d\\xff\\xe7\\x16\\xf7\\x46\\x3c\\x0b\\x33\\xda\\x5b\\x1e\\xda\\x55\\x6a\\x1e\\xf1\\xe4\\x50\\x42\\xc7\\x9b\\xdd\\x3e\\xc3\\xcb\\x88\\x63\\xa7\\xbc\\x1b\\x0f\\x7e\\x1c\\x05\\xbd\\x99\\x20\\xf0\\x5b\\x4e\\xda\\x86\\x51\\x77\\x05\\xed\\x07\\xf6\\xdc\\xa7\\xbb\\x00\\xae\\x04\\x56\\xe6\\x78\\x7d\\x9f\\xae\\x8e\\xde\\x4e\\xcd\\x0b\\xc5\\x72\\xeb\\x5c\\xc6\\xd1\\x9e\\x89\\x1f\\x1b\\xcb\\x22\\x9e\\x94\\x09\\xe0\\x65\\x74\\xc7\\xdf\\x05\\x81\\x73\\xcb\\x58\\xc3\\xfd\\xf2\\x0f\\x3f\\xf1\\x7c\\x37\\x05\\xaf\\x62\\xd9\\xb7\\x22\\x5c\\x57\\x43\\xf6\\x00\\x60\\x7f\\x77\\xcb\\xe7\\xd6\\xe7\\x61\\x8a\\xbc\\x79\"},\n{{0x10,0x20,0x1b,0xf0,0x08,0x43,0x67,0x59,0x0d,0xe6,0x74,0xcc,0x0e,0xd2,0x64,0x8e,0xc2,0x5d,0x3b,0xa8,0xdb,0x40,0xd0,0x0e,0xde,0x15,0x33,0x98,0x50,0x8b,0xc1,0x26,},{0xba,0xdb,0xd0,0x5e,0x5f,0x79,0xe3,0x11,0x69,0xf7,0x40,0xba,0x46,0xa5,0x89,0x10,0xa1,0xb7,0x77,0x05,0xaf,0x45,0x71,0x7b,0x2a,0xf8,0x08,0x56,0x45,0x7c,0x58,0xc9,},{0xf1,0xd9,0x96,0x58,0x8b,0x29,0x8f,0x27,0x1e,0x97,0x0c,0xeb,0xd2,0xa1,0xb3,0x39,0x97,0x9c,0xd2,0x9d,0xdd,0xee,0x36,0x45,0xd0,0x7f,0xab,0x8a,0xb4,0x65,0xdd,0xe3,0xe9,0x86,0x67,0xec,0x01,0xad,0x7f,0x1c,0x0a,0x65,0x92,0xe0,0x69,0x7e,0x66,0x5c,0x72,0xfd,0x38,0x14,0xdb,0xe1,0x89,0xed,0x5f,0x4e,0x76,0xc7,0x94,0xe5,0x38,0x09,},\"\\x7b\\xb1\\x47\\x06\\x17\\xd1\\x1e\\x45\\xeb\\x60\\x2a\\x82\\x9a\\xd7\\x73\\xee\\x2b\\xb7\\xe6\\xb8\\x8d\\xa4\\xc0\\x4a\\x72\\x16\\xa4\\x50\\xf8\\x49\\x93\\xa4\\x98\\xcb\\xd3\\xb9\\x25\\x40\\x28\\xf2\\xf9\\x9f\\xc2\\x1a\\x23\\x28\\x8b\\xdc\\x1e\\x15\\x1a\\x72\\xa9\\x13\\x0c\\x3d\\xed\\xda\\x1b\\xbb\\xcc\\xd4\\xe6\\xc0\\xf4\\x8a\\xe9\\xf3\\x53\\x18\\xcb\\xef\\xc9\\x59\\xf4\\x05\\x04\\x5e\\x6e\\x0b\\x5f\\xb2\\xe7\\x38\\xf2\\xb7\\x65\\xbe\\x11\\xb1\\xb6\\xa0\\xf1\\xe8\\x31\\x95\\x49\\xd9\\x5f\\xa8\\xd1\\xdf\\x81\\x67\\xcd\\x4a\\x77\\x17\\xae\\x16\\x36\\xa9\\xdf\\x54\\xd9\\x6e\\xaf\\x2d\\x63\\x23\\x69\\x00\\xfd\\x11\\x33\\x82\\x52\\xa5\\x00\\x8d\\x5d\\x48\\x0e\\x2b\\x1e\\x98\\x61\\xd1\\xf7\\x06\\x88\\xc4\\x7e\\xae\\x46\\x89\\xda\\x01\\xa4\\x7d\\xa3\\xdf\\xb6\\xd2\\xba\\xb3\\xcd\\xf5\\x05\\xee\\x5d\\x80\\x1a\\x15\\x2c\\x26\\x70\\x93\\xd1\\x7e\\x9b\\xf7\\x13\\x7a\\x6e\\xe7\\xb8\\x34\\xd0\\x08\\x55\\x00\\xe4\\x01\\xc1\\x7f\\x32\\x86\\xc1\\x57\\x5d\\x1c\\x01\\x00\\xfa\\x98\\x07\\x63\\x0c\\x4a\\x99\\x06\\x54\\xc1\\xe7\\x1a\\x8b\\x71\\x56\\x27\\xbb\\x13\\xd4\\x42\\xc8\\x4a\\x44\\x98\\x44\\xc4\\x04\\xb8\\x72\\xbf\\xba\\xc7\\x18\\xa4\\x8d\\x0e\\xa0\\x94\\x5c\\x77\\x16\\x6a\\x53\\x13\\x9b\\x0f\\xf0\\x09\\x81\\x34\\x76\\x4f\\x9e\\xcd\\xb8\\x8e\\xab\\xe0\\x7c\\xcb\\x2c\\xce\\xd4\\x95\\x5e\\x08\\x24\\x9b\\x2f\\x57\\x70\\xad\\x41\\xfc\\xcd\\x7b\\x5b\\xb3\\x72\\xe6\\xc3\\x37\\x67\\xe0\\x7f\\x5b\\xe7\\xd1\\x07\\x12\\xde\\x81\\x84\\x1b\\x13\\x4e\\x19\\x3d\\xf0\\x77\\x6a\\x0f\\xc1\\x56\\xff\\x5d\\x0e\\x96\\xf4\\x0a\\x70\\x47\\x53\\xe1\\x14\\x5e\\x9f\\xa0\\x83\\xc4\\xdd\\xee\\xf4\\x41\\x62\\x34\\xf6\\xe1\\xa2\\x38\\x2c\\x8e\\x5b\\x3a\\xd4\\x05\\x45\\x8e\\x89\\xd2\\xf4\\x93\\xa4\\xd7\\xc2\\x9a\\x23\\xde\\x21\\x07\\x48\\x5b\\x7f\\x56\\x35\\x01\\x24\\xe7\\xe0\\xd6\\x95\\xc5\\x22\\xb6\\xde\\x7a\\x92\\x47\\xa2\\x92\\x4c\\xe6\\xf2\\x86\\x32\\x36\\xc1\\x0c\\xc2\\x12\\x64\\xad\\x54\\x59\\x0d\\x31\\x47\\x63\\xea\\x1a\\x19\\xaf\\xac\\xd9\\x0e\\xba\\x95\\x58\\x70\\x40\\x7e\\x8c\\x63\\x65\\xa1\\x43\\xa5\\xc1\\xb9\\xa8\\xbe\\x5e\\x4a\\x4d\\xca\\xdb\\x72\\xe0\\xd4\\x76\\x49\\xbd\\x53\\xab\\xd4\\x6b\\x5c\\x69\\x60\\xea\\xe2\\xca\\xb7\\x73\\x75\\x3c\\xc0\\xe0\\x4e\\x99\\x41\\x4b\\xc2\\xcb\\x30\\xf4\\x8b\\xb5\\x41\\x39\\xd0\\x66\\xe4\\x3e\\x2f\\x0e\\x1a\\x4a\\xe9\\x63\\x85\\x8b\\xef\\x96\\x7d\\xf8\\xc8\\x41\\x40\\xd2\\xd0\\x92\\x02\\xb4\\x06\\xd5\\xd8\\x5c\\xb7\\xa9\\x6c\\xc5\\x7f\\x23\\x3e\\xb2\\x18\\x7f\\xfd\\x02\\xf9\\x4e\\x92\\x29\\x7b\\x5e\\x69\\xd9\\x69\\xd3\\xa5\\x93\\x6e\\xfe\\x49\\x29\\x14\\x4f\\x25\\x8b\\xfb\\x39\\xdd\\x0c\\xe2\\x63\\x59\\xc4\\x54\\x9f\\xc2\\x18\\xa0\\xaa\\x54\\xf3\\x1b\\xd5\\x51\\xb8\\x78\\x1a\\xcb\\xbf\\x61\\xcb\\x3f\\x73\\x2c\\xda\\xf6\\x22\\xc6\\xa6\\x91\\x88\\xcf\\x55\\x7a\\x3a\\x92\\xed\\x15\\x3e\\x69\\x12\\x5a\\x40\\x90\\xac\\x45\\x15\\x36\\xa0\\xe9\\xa6\\x3a\\x41\\x78\\x29\\x10\\xff\\xcc\\xb4\\xe8\\x50\\x02\\x11\\x23\\xff\\xd1\\xf3\\xbf\\x39\\xc7\\x34\\x60\\xa6\\x5c\\xcf\\xe4\\xdb\\xa9\\xbd\\xef\\xb5\\xd5\\xf4\\xda\\x6c\\x46\\x9a\\xa1\\x32\\x2f\\xa2\\x70\\x43\\x23\\x83\\x63\\xee\\x72\\x91\\x86\\x88\\xd7\\xca\\x1c\\x4c\\x29\\x52\\xe4\\x30\\xd5\\x63\\x25\\x6b\\xb8\\x6d\\x35\\x0a\\x35\\xee\\x82\\xe0\\x15\\x04\\x74\\x7f\\x31\\xd0\\x2e\\x03\\xae\\xdd\\xa5\\x46\\xd0\\xf1\\xb2\\xf4\\x51\\xb8\\x70\\x82\\x16\\x02\\xd0\\x0e\\x81\\x90\\x36\\xad\\xe5\\xa7\\xc7\\xfc\\xd2\\x1a\\x6d\\xe6\\xaf\\x35\\xb1\\xf9\\x63\\x2a\\x70\\xaf\\x65\\xdf\\x64\\x45\\xf6\\xfa\\xdf\\xbc\\x0f\\x41\\x67\\x55\\xc8\\x24\\x66\\x40\\xe5\\x6b\\x85\\x6b\\x66\\xdd\\xd9\\x2a\\x60\\xc0\\x35\\x38\\x22\\x1d\\xc8\\xfb\\x14\\x2c\\xe2\\xdb\\xac\\xdb\\x74\\x25\\xf3\\x3c\\xb8\\x5d\\x85\\x0c\\xc0\\x2c\\x31\\x5c\\xfc\\x11\\x1f\\x6f\\x65\\x1d\\xde\\x1b\\xdb\\x67\\xfb\\x20\\x8e\\x1f\\x6b\\xde\\x78\\x4d\\xdc\\xf7\\xbd\\x18\\xc8\\x05\\x1a\\x2e\\x0b\\xbf\\x10\\x18\\xb8\\xf3\\x95\\x36\\xc5\\x89\\xde\\x65\\xea\\xdc\\x6c\\xf3\\x79\\xb7\\x7c\\xad\\x13\\xf9\\x08\\x9c\\xb3\\x23\\xfb\\x2e\\x94\\x3d\\x06\\xcd\\xd1\\x07\\x05\\xc1\\x21\\x13\\x4c\\x65\\x48\\xdc\\x53\\x41\\x5f\\x8c\\x37\\x0e\\xc6\\x90\"},\n{{0xc4,0xaa,0x42,0x52,0x46,0xb5,0x17,0x3f,0x5e,0xf8,0x98,0x15,0x2e,0xca,0x3d,0x09,0x2b,0xb4,0xc2,0xdd,0x02,0x85,0x3f,0xcf,0xc7,0x17,0x83,0x99,0xf4,0xe2,0xf7,0x58,},{0x29,0xb7,0x7a,0x30,0x75,0xf4,0x19,0x24,0x3c,0x0c,0x1b,0xc3,0x96,0x59,0xd7,0x31,0x17,0xac,0x00,0xe5,0x5e,0x8d,0xe3,0x8f,0xe9,0x82,0x9a,0x87,0x9c,0xc5,0xb8,0xa0,},{0x5d,0x85,0x45,0xa4,0xbe,0x3f,0xd6,0xda,0x25,0x78,0xc2,0xec,0xcb,0x64,0x8d,0x83,0xfc,0xfe,0x58,0x71,0x33,0xfa,0x7a,0xe4,0xa1,0xcf,0xca,0x9a,0xe6,0xda,0xa4,0x92,0x59,0xc9,0x52,0x04,0x4a,0x85,0xa2,0x0b,0x6f,0x53,0x24,0xf8,0x27,0xdb,0xa2,0xd1,0xa8,0x38,0x8c,0x40,0xa9,0x28,0xb9,0x50,0x91,0x3c,0x63,0x4f,0xb3,0x09,0x27,0x07,},\"\\x7d\\xf9\\x78\\xa1\\xf4\\x97\\x68\\x38\\xff\\xed\\x74\\x49\\xa4\\xdc\\x13\\x8b\\x60\\x4f\\x4b\\x2a\\x4a\\xe6\\x89\\xce\\x75\\x01\\x8e\\xbc\\xcd\\xab\\x2e\\xaa\\x0b\\x60\\x76\\x8f\\x72\\x08\\x25\\x7f\\x2b\\x28\\xe7\\xaa\\x09\\xbf\\x6c\\x05\\x88\\x8d\\xa4\\x6f\\xd3\\x96\\xd1\\xc8\\x03\\x01\\x17\\x50\\xe3\\x0e\\xb4\\x84\\x87\\x0c\\x88\\x06\\x97\\x76\\x96\\xf1\\x2e\\xbb\\x9f\\xee\\xb4\\xca\\xf9\\x2a\\x02\\xdb\\xaa\\x22\\xbb\\xff\\x63\\xf8\\x42\\xc3\\xba\\x14\\x7b\\xca\\x7c\\x00\\x31\\x42\\x78\\xac\\xd0\\xdb\\x17\\x35\\x69\\xf4\\xe3\\x65\\x27\\x95\\x8e\\xf6\\xf1\\x00\\x2b\\xd3\\xcd\\x01\\xf4\\x07\\xa8\\x65\\x31\\xed\\xcb\\xd9\\xf3\\x1b\\x3a\\x4a\\xb8\\x80\\xa4\\xf5\\xb5\\x2b\\x42\\xd0\\xd4\\xa1\\xba\\x66\\xa2\\x09\\x86\\x51\\xae\\x3e\\x6c\\x91\\x51\\xf4\\x02\\x73\\x28\\x5f\\x7f\\x6a\\x4e\\x81\\x60\\x6b\\xf9\\x80\\xf6\\x89\\x50\\x4b\\x42\\x08\\x0f\\xdb\\x97\\xc7\\x28\\x46\\xfb\\xa9\\x04\\x7c\\x7e\\x66\\x0b\\xa5\\xc6\\xbf\\x12\\x6a\\x9a\\x59\\x9e\\x25\\x71\\xfa\\x13\\x50\\x5a\\xf7\\x58\\x1b\\xfe\\xbc\\x16\\x51\\x3f\\x5c\\x94\\xdc\\x71\\x93\\x7e\\x6e\\x61\\xb3\\xea\\x10\\x93\\x9b\\x02\\xea\\x10\\x85\\x9f\\x32\\xd7\\x91\\x2b\\x9e\\x38\\x06\\xab\\xef\\x61\\x85\\xfc\\xff\\xa6\\x88\\x21\\x47\\x80\\x05\\xcb\\xfc\\x1d\\x63\\x7d\\xd0\\x20\\x42\\x56\\x20\\xa3\\x18\\x07\\x48\\x98\\xbd\\xc3\\x09\\x31\\xc5\\x9a\\xc0\\xc6\\x6c\\x4d\\x12\\x38\\xb0\\x97\\xcd\\x5b\\x17\\x0f\\x08\\x44\\x35\\xd4\\xba\\xe4\\x8a\\x03\\xd9\\x2f\\xd4\\x8f\\xc2\\xca\\xa4\\xff\\xc5\\x05\\xf1\\xbc\\xa5\\x16\\xfb\\xd6\\xe4\\xf8\\x88\\xcc\\xed\\x98\\x2a\\xe0\\xdd\\xb8\\x8f\\xc2\\x8a\\xa6\\x97\\xb7\\x07\\x1d\\x01\\x5b\\x0a\\xcb\\x28\\x09\\xb0\\x1d\\x1d\\x9c\\x7e\\x7b\\x53\\xee\\xe6\\x82\\x4c\\xc3\\x7c\\xce\\x5b\\x69\\x93\\xd8\\x8d\\x83\\xea\\xfc\\x2e\\x92\\x8a\\x6f\\x14\\x7d\\xb6\\xeb\\x80\\xb1\\xa6\\x9f\\x01\\x60\\x5b\\x04\\x6b\\xd2\\xfd\\x1d\\x92\\xc5\\x45\\x9d\\x6d\\x33\\x98\\xa9\\xca\\xa2\\x99\\xdd\\xd0\\xc3\\xba\\x2e\\x08\\x94\\x13\\x07\\xb1\\x20\\xcc\\x13\\x99\\x2f\\x70\\x03\\xac\\xed\\x14\\xa4\\xa4\\xd9\\x23\\xbb\\xb1\\x2f\\xc3\\x93\\xff\\xcf\\x92\\x0b\\x9f\\x6d\\x47\\x75\\xe9\\x4d\\x4a\\x51\\x22\\x67\\xfd\\x26\\xa6\\x99\\x7c\\x60\\x62\\xb4\\xc9\\x90\\x0f\\x98\\x62\\xb9\\xea\\x0c\\x8d\\x7d\\xf1\\x9f\\x05\\xc2\\xb6\\x04\\xaf\\x5b\\x98\\x64\\xfb\\x27\\x54\\xa8\\x07\\x3b\\xbb\\xfb\\x18\\x23\\x3e\\x6e\\x15\\x0f\\x72\\xa5\\x25\\xe3\\xa5\\x76\\x0f\\xcd\\xa7\\xd3\\x2a\\x60\\x03\\x4f\\x95\\x6e\\x3c\\xbd\\x34\\x36\\xc2\\x00\\x83\\x0b\\x3e\\x7a\\x14\\x57\\x12\\x20\\xbc\\xb6\\x27\\xd5\\xa4\\xbe\\x72\\xc2\\x0b\\x23\\x35\\x1b\\x2d\\x92\\x06\\x02\\xa5\\x1c\\x3e\\xb3\\x2c\\x12\\x37\\x03\\x9d\\xfb\\xff\\x43\\xc9\\x87\\xfd\\x85\\x63\\x77\\x7f\\x0e\\x5a\\x39\\xf8\\x14\\x6c\\x16\\x4b\\xdf\\xfc\\xe4\\x4f\\x3b\\x13\\xee\\x74\\xd6\\x4b\\xfd\\xcf\\x98\\x03\\xf0\\x3d\\xd0\\x17\\x2a\\xc4\\xfa\\x4b\\xf6\\xc7\\x83\\x9c\\xb1\\x1f\\x3d\\x34\\xba\\xef\\x0e\\x32\\xb5\\x49\\x42\\xfc\\x4f\\xa3\\x8f\\x47\\x3e\\x29\\x66\\xf4\\x91\\x1c\\x0e\\x80\\xd7\\x69\\x37\\xb2\\x5b\\x76\\x32\\x27\\x5b\\xa8\\x83\\x09\\x63\\x5a\\x60\\xdf\\x13\\x54\\x89\\x20\\x8d\\x3e\\x73\\x4b\\x67\\x2e\\xda\\x7d\\x2b\\xa2\\x15\\x79\\xab\\xa8\\xd8\\x86\\x0e\\xa7\\x64\\xfd\\x67\\xea\\xf9\\xc3\\x8e\\xa7\\x63\\x7d\\x1b\\xad\\x57\\xb2\\xf3\\xd7\\x82\\xb9\\x1e\\x1d\\x5d\\x92\\xac\\x30\\x0b\\xdb\\xa7\\xab\\x91\\x13\\xce\\x91\\x3d\\x0c\\x79\\x3c\\x12\\xa9\\xa7\\x26\\xe3\\xfc\\xab\\x05\\xcb\\x47\\x99\\x77\\x87\\x16\\x40\\x63\\x0d\\x45\\x9e\\x69\\xe8\\x1c\\xa5\\xcf\\x56\\xdd\\xb2\\xa0\\x61\\x1d\\x61\\xd4\\x81\\xc1\\xb8\\xce\\xf3\\x80\\x4b\\xd4\\xe5\\x75\\x4a\\x61\\xeb\\x49\\xb1\\x7e\\xf2\\xb0\\x3c\\x83\\x05\\x7b\\x5d\\x20\\xd8\\x82\\x05\\x8c\\x00\\xf5\\x4b\\x6c\\xca\\x86\\xbe\\x95\\x35\\x0d\\xd7\\xbc\\xb2\\x5e\\x4c\\x1c\\x46\\x58\\xf4\\x52\\x29\\xc8\\xbb\\x9f\\x5c\\xdf\\xcc\\x44\\x79\\x5c\\x97\\x8e\\x33\\x88\\xd3\\x25\\x76\\x01\\x06\\xe5\\x2b\\xe9\\x83\\x4b\\xd8\\x1f\\xfc\\x5c\\x62\\x48\\x6b\\x6f\\x33\\xc2\\x74\\x59\\xdf\\x17\\x8e\\xb9\\x46\\xe7\\xa8\\x2d\\xb9\\xce\\x0d\\x29\\x5b\\x92\\x5b\\xb6\\x12\\x6d\\xd5\\x5c\\x31\\xf4\\x9a\\x68\\xdc\\xef\\xc7\"},\n{{0xf1,0x3c,0xaf,0xde,0x6f,0x39,0xb9,0x63,0xdc,0xa9,0x66,0x26,0x86,0x2f,0x4f,0xbc,0x5c,0x2e,0x00,0xdd,0xf0,0x8b,0xec,0xea,0xc7,0xa6,0xe2,0xfc,0xa9,0xe1,0xcc,0xf7,},{0xc1,0xb0,0x1a,0x91,0xe8,0xee,0x0b,0x9f,0x19,0xa7,0x2e,0x5e,0x7e,0x0a,0xef,0xcf,0xdc,0x44,0xa1,0x57,0x47,0x4e,0x99,0xfe,0xeb,0xd0,0xff,0x55,0x2d,0x73,0xb2,0xac,},{0x6c,0xa9,0xf8,0x0a,0x62,0x50,0x1f,0xaf,0x31,0x9f,0xb8,0x4a,0xf4,0x71,0xf6,0x76,0xae,0x3f,0xff,0x85,0x56,0x5c,0x97,0x98,0x1f,0x14,0x57,0xcb,0xb8,0xc4,0x9f,0x97,0xb2,0x66,0x31,0x6a,0x99,0x2d,0xb0,0xd4,0x2b,0xc5,0x02,0xf0,0x95,0xa5,0xf2,0xd9,0xa4,0xe1,0xcf,0xac,0x0c,0xc9,0x35,0xd3,0x88,0x2c,0x8a,0x3a,0x0e,0xa6,0xe1,0x0e,},\"\\x2b\\xee\\x73\\xb7\\x4f\\x1b\\x76\\x22\\xeb\\x09\\x6a\\x28\\xd8\\x3a\\x81\\x9b\\xce\\xc2\\x2d\\x99\\x99\\xa3\\x20\\x62\\x10\\x3d\\x60\\x4a\\xe6\\xd7\\x8e\\xdf\\x8f\\x89\\x38\\x95\\xd2\\x22\\x0a\\xb7\\x56\\x90\\x41\\x0c\\x58\\xaa\\xb5\\x90\\xa9\\x8d\\xdf\\xf2\\x3a\\x94\\xd2\\x35\\x0f\\x88\\x9e\\x53\\x46\\x42\\x00\\xa5\\x27\\xd5\\x4d\\x62\\x57\\x11\\x07\\xb2\\x7e\\x57\\x4f\\x54\\x2e\\xba\\xc2\\x49\\xb8\\xe2\\xe3\\xce\\x08\\xd1\\xbd\\x27\\xbd\\x8d\\x29\\xf2\\xe6\\x12\\x43\\xde\\xef\\x0e\\x69\\x38\\xe5\\x2e\\xe2\\x99\\x2f\\xf2\\x18\\x7d\\x7a\\x7f\\x52\\x82\\xed\\xd9\\x8f\\xc4\\x98\\x5b\\x61\\x9a\\xcb\\x80\\xaa\\x9d\\x03\\xd6\\xcb\\x84\\xb8\\x21\\x10\\x6f\\x40\\xd6\\xe5\\xf4\\xc3\\x87\\xab\\x0a\\xf6\\xf2\\x06\\x61\\x5d\\x0a\\x17\\x5f\\x7e\\x60\\xee\\x27\\x55\\xae\\xa3\\x46\\x75\\xfd\\xd8\\x23\\xeb\\x24\\x10\\x9a\\x9b\\xd8\\x18\\xea\\x2d\\x9d\\x9b\\xd1\\x99\\xcf\\x8d\\xfe\\x79\\x62\\x4b\\x03\\x72\\xae\\x85\\xe9\\x8c\\x60\\x20\\x02\\x34\\xbd\\x41\\x3f\\x4a\\x62\\xce\\x68\\xa4\\x7b\\x6c\\x9b\\x12\\x85\\x7c\\x0d\\x39\\x9a\\x44\\x8e\\x5a\\x52\\x80\\xe9\\xf2\\x2f\\x9b\\x12\\xea\\x2c\\xd3\\xc6\\x87\\x13\\xe7\\x7d\\x0a\\x11\\xf3\\x62\\x8d\\x8e\\xc5\\xe0\\x60\\x63\\x90\\x31\\xd3\\xb6\\x40\\x02\\x1c\\x9c\\x38\\x80\\x9d\\xc5\\xf4\\x2d\\x2e\\x1c\\x2e\\x23\\x46\\xc8\\x6e\\x24\\xee\\xdc\\x59\\x84\\xa1\\x15\\xa4\\x2d\\xe8\\xde\\x7e\\x35\\xc9\\x91\\x75\\x39\\xe8\\x98\\x85\\xca\\x91\\x6e\\x07\\x2a\\xfd\\x5d\\x46\\x84\\x6b\\x2a\\x93\\x59\\x61\\xc2\\xfe\\x28\\xe9\\xeb\\x3c\\x8f\\x89\\x6b\\x86\\xfc\\x12\\x0c\\xbd\\x3a\\xf2\\xaa\\x13\\x9c\\x49\\x9d\\x29\\xcf\\xc3\\x69\\x9d\\xb7\\x9c\\x14\\x48\\x4e\\x9e\\xc2\\x57\\xa5\\xf6\\x43\\x44\\xb7\\xad\\x1e\\x3d\\xfb\\x34\\xee\\xe7\\x65\\x4c\\x6b\\xf1\\x2f\\xd3\\x8f\\xbb\\xa8\\x0f\\xe1\\x76\\x2a\\xab\\x57\\x11\\x2b\\x3a\\x94\\xe2\\xbe\\xe7\\x90\\x41\\xd1\\xe8\\x84\\x40\\xf8\\x5f\\xb7\\x2d\\xde\\x68\\xd4\\x9e\\x84\\xbc\\xed\\x99\\x8a\\x2f\\x63\\x35\\x44\\x6e\\x4a\\x83\\x5e\\x70\\xc5\\xf8\\x27\\xfb\\x3a\\xd7\\x82\\x3d\\x5f\\xbe\\x3b\\xe5\\xf6\\xec\\x7e\\x43\\x4e\\xe5\\x24\\xcc\\xd9\\xff\\x5b\\x7e\\x72\\xa3\\x2d\\x09\\x1a\\x7e\\x17\\xc8\\xb1\\xae\\x41\\xa1\\xaf\\x31\\x79\\x3c\\xce\\x91\\xd8\\x4c\\x36\\x22\\x67\\x89\\x69\\xc8\\xf5\\x17\\xdc\\x26\\xe3\\xcd\\x61\\xd2\\x44\\x69\\x12\\x28\\x3f\\x93\\x53\\xbb\\x5a\\xd0\\x3c\\x11\\x1c\\x62\\x33\\xde\\x31\\x4c\\x61\\xb8\\x31\\xcb\\xf3\\x8b\\x04\\xfe\\x58\\xcf\\x44\\xf1\\xd2\\xd0\\xb4\\x5f\\x25\\xa6\\xb4\\xe0\\x25\\x68\\x59\\xcd\\x5d\\x83\\x0f\\xac\\x5e\\xc3\\xc8\\xd7\\x63\\x98\\x55\\x9e\\x9b\\x26\\x01\\x0f\\x5e\\x1d\\xa5\\xf2\\x5d\\x22\\x00\\x93\\x54\\x53\\xff\\xac\\x5a\\xea\\x51\\xf7\\xe8\\x1e\\x72\\xec\\x8e\\x5f\\x04\\xd2\\xf8\\x85\\xc7\\xb4\\x5c\\x63\\xf6\\x44\\x56\\xcf\\xe2\\x31\\xb8\\xcb\\x24\\xaa\\x16\\x20\\xa9\\x02\\x63\\x9c\\xa7\\x8d\\xd3\\x91\\xaa\\x4a\\x3d\\x03\\xe1\\x19\\x75\\xc8\\x90\\x7f\\x96\\x4f\\xd5\\x5d\\xf9\\xbb\\xb1\\x40\\xe3\\x8d\\x6d\\xb9\\x32\\x56\\xb4\\xb3\\x9c\\x2b\\x7b\\xcb\\xe3\\x5b\\x11\\x82\\x6b\\xbf\\x8c\\x08\\xf1\\xdc\\xb4\\x8e\\xdc\\x4b\\xfb\\x70\\x46\\x2a\\x35\\xea\\x8c\\xd8\\xcb\\xa7\\x9f\\xab\\x8b\\x4c\\x44\\xe7\\x3b\\xe7\\xec\\xfa\\x11\\x21\\x66\\xf6\\xdc\\xab\\x70\\xd8\\xbb\\x55\\xd8\\xb8\\x42\\x8c\\x2d\\xa7\\x1a\\xac\\xa2\\xfc\\x3d\\x90\\xf3\\xcc\\x5e\\xd0\\x15\\x51\\x35\\x8d\\x60\\x78\\x9b\\x9d\\x57\\x1e\\xfe\\x10\\x89\\x20\\x27\\xfa\\x37\\x40\\x4a\\xaf\\x59\\xec\\x1c\\x2d\\x71\\x11\\xec\\xc3\\x59\\x24\\x67\\xed\\x1d\\x9b\\x8a\\xba\\x8e\\x22\\x9e\\x32\\xd2\\xa0\\x0c\\x19\\xdb\\x71\\x87\\xfb\\xcb\\x12\\x20\\x61\\x96\\x1c\\x1f\\xda\\xca\\x30\\x7e\\x9c\\x9c\\x9d\\xe9\\x72\\xad\\x51\\x40\\x2f\\xa6\\x7d\\xc1\\xc2\\xa4\\x03\\xb3\\xc5\\xe8\\xb1\\xe2\\x46\\x86\\x2d\\x6a\\xd6\\xa4\\x98\\xdb\\x6d\\x76\\x1f\\xb5\\x66\\xf6\\x06\\x59\\x42\\xb6\\x0a\\xd4\\xb4\\x30\\x9d\\x18\\x2b\\xc5\\x15\\x4c\\xfc\\x36\\x86\\x31\\x85\\xa8\\x7e\\x23\\xab\\xaa\\x1d\\x54\\x1a\\xb7\\x63\\xa4\\xa1\\x06\\x6c\\x0a\\x7a\\x8c\\x3d\\x82\\x1a\\xe3\\x2f\\xd3\\x1c\\x88\\x92\\x40\\x10\\x46\\xd0\\xa2\\x0e\\x91\\xa6\\x47\\x79\\xf4\\xbd\\xa8\\x11\\x20\\xaf\\x3f\\xb3\\x48\\x6d\\x3f\\xc0\\xa7\"},\n{{0xc8,0x46,0x34,0x42,0x61,0xa3,0x48,0x65,0x39,0x38,0x34,0xbf,0xaa,0x3a,0x15,0xa3,0xf5,0x3a,0xc9,0xe1,0x38,0x33,0xb0,0xb2,0x87,0x12,0x27,0x81,0xb7,0x9d,0xe3,0x92,},{0xeb,0xad,0xe0,0x22,0x61,0x95,0xae,0x25,0x4b,0x61,0x15,0xe2,0x16,0x96,0xa9,0xc6,0x5a,0x19,0xd5,0xe0,0x40,0x44,0x31,0x31,0xc2,0x2b,0x89,0xf0,0x2f,0x69,0xab,0x78,},{0xd5,0xe4,0x1b,0x47,0xad,0x0f,0x34,0x00,0x70,0x97,0x70,0xed,0x43,0x91,0x9b,0xaf,0xdf,0x24,0x38,0x1b,0x66,0x15,0x44,0xe5,0x1d,0x8b,0x5c,0xee,0x9e,0x97,0xb3,0x67,0x6a,0x4c,0x0f,0xfa,0xeb,0xb2,0xcb,0xd2,0xdb,0x79,0x85,0x32,0xb6,0x5c,0xf6,0x54,0xa5,0xb6,0xc1,0x66,0xef,0x88,0x6c,0xb0,0xfb,0xbf,0x4a,0x4f,0x84,0x4c,0x44,0x0b,},\"\\x5a\\xbd\\x13\\xe9\\x5b\\x6e\\xe1\\xd5\\x51\\x47\\x68\\x28\\x22\\x00\\xa1\\x4f\\x7d\\x1a\\x57\\x1f\\x34\\x68\\xe2\\x2e\\xfe\\xc9\\x93\\x46\\x30\\x66\\xa3\\x7a\\xec\\x83\\x73\\xe5\\xfb\\x49\\x95\\x64\\x19\\x1f\\x32\\x94\\xa9\\xb3\\x0a\\xfb\\x5f\\x1a\\x34\\xd4\\xd8\\x8a\\xbc\\x3e\\x9b\\xc3\\x03\\xc1\\xab\\xa0\\x5b\\xd8\\xfa\\xca\\x90\\xee\\x35\\xd9\\x7a\\xc3\\xdd\\x91\\x06\\xf6\\xfa\\x3c\\xa8\\x1a\\x38\\x10\\xec\\xce\\xfa\\x6a\\x20\\x9e\\xa3\\xf3\\xfc\\x30\\x49\\xdc\\xb1\\xb0\\x03\\xc7\\x28\\xf7\\xf6\\x37\\x4c\\xa9\\x8c\\x58\\x2d\\xe6\\xdb\\x1a\\xf7\\x60\\xf0\\xa0\\x21\\x33\\xca\\x4a\\x01\\x03\\x24\\x30\\x4d\\x26\\xa0\\xe5\\x0a\\xf0\\xd1\\x3c\\x13\\x4d\\xa3\\x4a\\x03\\xa4\\x1e\\x83\\xec\\x8f\\x10\\xea\\x5b\\x85\\x9b\\xec\\x1f\\x51\\xb0\\x1c\\xab\\xb2\\xd1\\x6c\\x1f\\xc5\\x2b\\x05\\x8f\\x8e\\x5d\\xef\\xae\\xde\\x12\\x81\\x71\\xc2\\xe0\\x26\\x90\\x23\\x16\\xf8\\x71\\xb3\\x5e\\x32\\x92\\x65\\x6f\\x0e\\x5b\\x39\\xbb\\xbc\\x81\\xd0\\xc0\\x83\\x0e\\x6a\\xc0\\x1f\\xac\\x9b\\x45\\x39\\xf4\\x7f\\x9a\\xcf\\xbd\\x58\\xb7\\xab\\x9f\\x5a\\x12\\x56\\x00\\xf2\\x51\\xa2\\x71\\xd7\\xbf\\x16\\x7f\\x29\\x54\\xca\\x8e\\x1e\\x0c\\x96\\xe1\\x6b\\x06\\xe8\\x30\\x7d\\xf8\\x8b\\xb8\\xe9\\xd5\\x7d\\x5b\\xa0\\x44\\xf2\\x7f\\x3e\\xaf\\xf8\\x1d\\x9f\\x15\\x05\\x54\\xaa\\x71\\x22\\xfd\\x10\\xd1\\x1f\\x35\\xd2\\xbe\\x2b\\x16\\x24\\xe3\\xe1\\xa1\\xd7\\x7f\\xea\\x4c\\x5c\\x7f\\x8b\\x98\\x3e\\x94\\x5b\\xa8\\xc0\\x8d\\xc1\\x54\\x5b\\x3e\\x6b\\x29\\x73\\xad\\x04\\x1c\\x44\\xd0\\x61\\x7e\\xcc\\xc8\\x71\\xa3\\x82\\x1a\\x9f\\xfe\\xa9\\xdb\\x7c\\x2b\\x0d\\x05\\x5d\\xa5\\x5d\\xe0\\xb3\\x50\\x63\\xe4\\x22\\x5a\\xee\\x6b\\x22\\x5a\\xb2\\xa7\\x90\\x6a\\x8e\\xe3\\x29\\xd1\\xb3\\x97\\x2e\\x0d\\x1f\\x70\\x81\\x7c\\x50\\xcc\\xfe\\x94\\x03\\xd1\\x2a\\xd6\\x2c\\x94\\x92\\x3b\\x9a\\xa2\\xd7\\xf8\\x5a\\x8d\\xda\\x47\\xbe\\x4d\\xce\\xc0\\xdc\\x2b\\x0b\\x58\\xf7\\xac\\x19\\x0a\\xe0\\x57\\x9b\\x9b\\x13\\xbb\\xb8\\xb1\\x6a\\x31\\xb0\\xab\\x4d\\x6f\\x27\\x91\\x25\\x3a\\xb4\\x75\\x1b\\x53\\x6b\\x88\\xd3\\xb4\\x93\\x7c\\xc3\\xa1\\x10\\xaa\\x82\\xa6\\xff\\xed\\x68\\x53\\x52\\x4b\\x66\\xb3\\xef\\xfc\\xd2\\xf6\\x3c\\x6f\\x96\\x45\\xce\\xa1\\x3a\\xa2\\x3c\\xd1\\xc9\\x9d\\x9f\\xfd\\xa4\\xcd\\x3a\\x9c\\x5d\\xf4\\x5e\\xc7\\x47\\x26\\xc3\\x47\\x11\\x28\\xb7\\x08\\x9f\\xbd\\x82\\x69\\x4d\\x2d\\x3f\\x08\\xdc\\x93\\x06\\xc0\\xfc\\x9c\\xe7\\xc8\\x01\\x13\\x8e\\xb1\\xec\\xb7\\x56\\xe5\\x71\\xe9\\x05\\x9b\\x75\\xed\\x03\\xf9\\x2a\\x31\\x50\\x2f\\xbe\\xb5\\xfe\\xc5\\x1d\\xe9\\x35\\x90\\x10\\xc4\\x39\\x7d\\x28\\xb6\\x5e\\x35\\x6e\\x38\\x00\\x1d\\x0d\\x51\\xac\\x96\\x00\\x72\\x8c\\x78\\xb5\\x76\\x6e\\x0f\\x21\\x79\\x38\\xb4\\x10\\xe7\\x85\\xb4\\xc0\\x1e\\x86\\xa3\\x45\\x2b\\xcb\\x38\\x84\\xac\\xa4\\x75\\x40\\x85\\x9c\\xc4\\x9b\\x00\\x0f\\x0b\\x61\\xfd\\xbe\\x72\\x75\\x25\\x74\\xb2\\x7a\\x22\\xd4\\xc4\\x04\\x13\\xa4\\x3b\\x31\\x09\\x24\\xb1\\xbb\\x14\\x0f\\xc9\\xfd\\xaa\\xe2\\x66\\xd6\\x59\\x30\\xe3\\xf2\\x34\\xfe\\x84\\x1d\\x82\\xb2\\x61\\x76\\xff\\x86\\xc5\\xd2\\xbd\\x8d\\x96\\x5c\\x52\\xd7\\x28\\x06\\x4e\\xbd\\xf6\\x8d\\xc8\\xe4\\x83\\x49\\x41\\x80\\x1c\\xca\\x0b\\x2f\\x25\\x6d\\x4f\\x6c\\x3d\\xd1\\x9d\\x35\\xd5\\x36\\x2b\\xbf\\x9b\\x8a\\x3a\\x1c\\x86\\x3e\\x09\\x26\\x89\\xdd\\x28\\x52\\xad\\xd4\\x88\\xbf\\x42\\x68\\x5b\\x11\\xe1\\xe1\\xad\\x57\\x45\\xd0\\x75\\x62\\x8d\\x73\\x1f\\x91\\xcf\\xd7\\x49\\x15\\x9e\\x2e\\x1c\\x83\\x7f\\x4e\\xf8\\x3d\\x80\\xea\\x1d\\xd9\\xbd\\xed\\x5f\\x88\\x01\\x8c\\xe1\\xd4\\xb3\\x37\\x1f\\x95\\x43\\x53\\xf3\\xd8\\x94\\x37\\x00\\x62\\xc0\\x96\\x5d\\x67\\x98\\x6d\\xbc\\x48\\x17\\x15\\xf4\\x2d\\xd2\\xc9\\x16\\x07\\xab\\x8b\\x5f\\x0d\\x89\\xf6\\x6e\\x68\\xd7\\x3d\\x50\\xd6\\x40\\x52\\x4d\\x72\\xe6\\x91\\x34\\xb8\\x87\\x29\\x8e\\x5c\\xd8\\xc4\\xb9\\x05\\xba\\x5e\\xfa\\x0e\\x9d\\x68\\x52\\x14\\xb8\\x42\\xf5\\x0a\\x2a\\x39\\x83\\xa1\\xaf\\x58\\x5a\\xf2\\xca\\x43\\xdb\\xcf\\x02\\xc4\\x08\\x97\\xae\\x2e\\x1a\\xb5\\x1d\\xbc\\xe5\\x70\\x34\\x5e\\x8e\\x13\\x5f\\xb7\\xb4\\xeb\\x0a\\x1d\\x6a\\x0b\\xb5\\xa8\\xa1\\x80\\x7e\\x42\\x5b\\x2d\\x62\\x83\\x60\\x76\\x80\\x58\\xe6\\x1a\\xd1\\xcf\\xaa\\x20\\x99\"},\n{{0xfa,0xaf,0x55,0xd3,0xc2,0x97,0x14,0xb6,0x5c,0x22,0x81,0xe2,0xc2,0x2d,0x61,0x34,0x97,0x1a,0x2e,0x74,0x00,0x8f,0xb9,0x40,0x89,0xa7,0x73,0xee,0xeb,0x44,0x83,0xa6,},{0x39,0x86,0x2e,0xac,0x6d,0xd5,0x2e,0x38,0x1b,0xb3,0x4d,0xc1,0x96,0xba,0x8a,0x37,0x4d,0xcb,0x7d,0xf6,0xcb,0x14,0x0f,0xd0,0xcf,0xa6,0xcf,0xa3,0x9b,0x8c,0x75,0x3f,},{0x5b,0x00,0x83,0xf7,0xa8,0x20,0x61,0xc6,0x5c,0xf6,0xc7,0x56,0x40,0xc8,0x1c,0x28,0xe8,0xd6,0xd2,0xe8,0x7f,0x6d,0x57,0x95,0xc9,0xaa,0x3b,0xb3,0xe3,0x90,0xe9,0x19,0x90,0xe8,0x2d,0xb6,0xf0,0x7e,0x61,0x4f,0x50,0x7a,0x56,0x0a,0xba,0xa1,0xec,0xa6,0x56,0xc6,0x78,0xdd,0xca,0xe8,0x19,0x82,0x51,0xe6,0xaf,0x0b,0x76,0xb8,0x8d,0x0d,},\"\\x94\\xe6\\x61\\xc2\\x52\\x40\\xa8\\x9e\\x82\\x3d\\x7f\\x5d\\xc0\\xe6\\x92\\xed\\xdd\\x13\\x70\\xc3\\x5a\\xc4\\x4d\\x5a\\x8c\\x87\\x98\\xd0\\xc9\\xaa\\xfd\\xf0\\xbb\\xfb\\x54\\x92\\x60\\x56\\x8d\\xba\\x1c\\x69\\x08\\x6b\\xee\\x63\\x6b\\xe8\\xed\\xcc\\xd3\\xcb\\xb2\\x70\\x16\\x24\\x4d\\x54\\xd7\\xed\\x2f\\xeb\\x7f\\xa6\\x46\\x14\\xd4\\x54\\x49\\xd7\\xe0\\x58\\xe7\\x1b\\x30\\x6c\\x22\\xe6\\x91\\x1c\\x2a\\xc7\\x42\\x07\\xba\\xe5\\xa8\\x4d\\x0f\\xc2\\x47\\xbe\\x49\\xd3\\x56\\xe5\\xd4\\x35\\x3b\\xa5\\x58\\x6b\\x6e\\x4b\\x2b\\x97\\xce\\x9e\\x23\\x77\\xb6\\xee\\xd9\\x2c\\x84\\x9e\\x67\\x69\\x44\\xae\\x90\\xdc\\x42\\x08\\xe3\\x00\\xe1\\x9c\\xc9\\x1d\\xc2\\x6b\\xbd\\xd5\\xa3\\x0c\\xfa\\x92\\x81\\xa1\\x5e\\xfd\\x87\\x30\\x66\\xf8\\x5a\\xf3\\xa2\\x6f\\x31\\x06\\x23\\xe0\\x09\\x80\\x48\\x53\\xcc\\x68\\x55\\x90\\x3e\\xa6\\x4a\\x90\\x98\\x97\\xe3\\x15\\xe7\\x3d\\x31\\x29\\x48\\x98\\x0e\\xf6\\x28\\x9d\\xb2\\x1a\\x5e\\xbb\\xec\\x8c\\x8e\\xfe\\x20\\xd1\\xd5\\x3d\\xfa\\xad\\x6d\\x9f\\x42\\x96\\x53\\x2e\\x88\\x7c\\x37\\x35\\x01\\x05\\xa6\\x33\\xab\\xc7\\x73\\x18\\x87\\x51\\xb2\\x8c\\x3a\\x08\\xf1\\xb5\\xee\\x04\\x72\\xde\\x46\\x27\\xe6\\xb6\\x1b\\x68\\x27\\x8d\\xd5\\x1c\\xed\\x6a\\x61\\xec\\xf3\\x88\\x86\\xe4\\x53\\x39\\xdc\\x6c\\x60\\xc3\\x1e\\x85\\x0e\\xf8\\x29\\x6a\\xe8\\x0f\\x9d\\x31\\x70\\x17\\x76\\xeb\\x9a\\xf2\\x16\\x93\\xf4\\xc5\\x2e\\xc0\\x62\\x62\\x57\\x38\\xd4\\xe3\\xaf\\xbf\\x71\\xd1\\xc8\\x1f\\xc4\\x84\\x63\\x60\\x36\\x3e\\xa5\\x41\\xa9\\x76\\x62\\x3a\\x5e\\x4e\\x6b\\x6a\\x67\\x23\\x7e\\x92\\x37\\x17\\x3f\\x1a\\x1d\\x54\\x33\\x02\\x85\\x88\\x85\\x71\\x4c\\x2a\\x59\\x1d\\x0a\\x78\\x62\\x82\\xa0\\x28\\x5a\\x37\\x11\\xf7\\xbc\\x2b\\x63\\xca\\x79\\x87\\xe9\\xae\\x7d\\x02\\x03\\x55\\x55\\xcf\\x3b\\x6a\\xd6\\xf7\\x1c\\xa9\\x8a\\xa9\\x28\\x88\\x3b\\xf8\\x1d\\xd6\\xf8\\x64\\x93\\xea\\xab\\x56\\x37\\xb4\\xdd\\x56\\x9d\\x1e\\xe8\\xde\\x6a\\x44\\xbc\\xed\\xb6\\x2b\\x97\\x06\\xb1\\xdb\\x89\\xe3\\xf0\\x5d\\xf1\\x63\\x10\\x01\\x7d\\x89\\xef\\x3e\\x4b\\xc0\\x99\\xb7\\x21\\xa5\\xc8\\xd3\\x80\\x43\\xd6\\xe4\\xa2\\x2c\\xf0\\x40\\x09\\xc0\\xfc\\xee\\x6b\\xe6\\x99\\x37\\x82\\x99\\x54\\x94\\x1b\\x8b\\x4a\\x1e\\xbf\\x4d\\xae\\xa0\\xd7\\x74\\xd0\\x78\\x2b\\xe1\\x76\\xc8\\xe5\\x91\\x90\\x77\\x56\\xc2\\xcf\\x75\\xde\\xa6\\xf7\\x87\\x7d\\xd6\\x87\\x5b\\x8f\\xe1\\x01\\x2f\\x30\\x50\\xcf\\xb1\\x28\\x9c\\xf0\\x88\\x66\\x7e\\x15\\x22\\xee\\xed\\xc9\\x27\\xac\\x86\\xbf\\xe2\\xc4\\x07\\x43\\x2b\\x4a\\x81\\x3a\\x6a\\x7a\\x55\\x04\\xe9\\x99\\x20\\x6d\\xb1\\x82\\x7e\\x25\\xfa\\xfd\\x70\\xce\\xd3\\x6d\\xb3\\xb2\\x81\\xb6\\xf7\\xb1\\x4e\\xd5\\xba\\xa0\\x57\\x23\\x15\\xa9\\x39\\xc5\\xbf\\x4a\\xbb\\x13\\x3d\\x2e\\x7b\\x16\\xd5\\x2d\\xe2\\x08\\x17\\xaf\\x05\\x5d\\xf5\\xf1\\x41\\x20\\x77\\x34\\x61\\x0a\\x0c\\x6e\\xeb\\xed\\xaf\\xff\\xd9\\xcc\\x9f\\x06\\x9b\\x67\\xf9\\xa1\\xc0\\x45\\x4b\\xe4\\x1d\\x54\\xc1\\x38\\xbe\\x54\\x2e\\x5e\\x38\\xcf\\xe2\\xf2\\x93\\xf7\\xd2\\xd3\\xdf\\x66\\x97\\x7a\\xcb\\x36\\x6a\\x42\\xc1\\x9b\\x31\\x85\\xac\\xfa\\x1b\\x36\\x3c\\x61\\x31\\xa4\\xa8\\x11\\x1c\\x3b\\x1f\\x4f\\xd7\\xac\\x40\\x6d\\x0e\\x69\\x10\\x3b\\xa1\\x5b\\x8c\\x4b\\xf2\\x9b\\xc2\\xed\\x9c\\x45\\xcf\\xd1\\xd2\\x79\\xd8\\xd9\\x31\\x44\\x4b\\x2b\\x18\\x49\\x25\\x2b\\x8a\\x70\\xee\\xd8\\x0f\\xd2\\x60\\xed\\xf5\\xa3\\xc0\\x1b\\x96\\x90\\x16\\x0d\\x23\\x11\\x85\\x1d\\x21\\xc9\\x30\\x2d\\x98\\x59\\x86\\xea\\xee\\xb3\\xae\\x2c\\x07\\xc7\\xc7\\x67\\x20\\x94\\xf9\\x1d\\xb0\\xbd\\x50\\xbe\\x37\\x7e\\x4d\\x1e\\xb0\\x7e\\xe7\\x6a\\xf4\\x9d\\xc1\\x36\\xa1\\x45\\xa1\\x1b\\x17\\x2f\\x08\\x11\\xfe\\x73\\xd6\\x25\\x9b\\xe3\\x70\\xc4\\xdf\\xca\\xb6\\xf1\\x9e\\x4a\\x64\\xb1\\x51\\xd0\\xa6\\xdb\\x80\\x50\\xc3\\xde\\x2c\\xc3\\x25\\xf5\\xc5\\xf6\\x59\\x4c\\xf6\\x24\\x8e\\xb0\\x81\\x20\\x95\\x39\\xe0\\x8c\\xa3\\x42\\x29\\x84\\xe7\\xbf\\x80\\x3d\\xe3\\xa4\\x19\\xb1\\x44\\x23\\xf1\\xe5\\xa5\\x42\\x24\\x04\\x2c\\xe4\\xf0\\x54\\x88\\xa6\\x04\\x4f\\x40\\x42\\xbd\\x64\\x9b\\x1a\\x08\\xce\\x10\\xc2\\x00\\x6e\\xa7\\x6e\\xfa\\xb4\\x64\\x1f\\xef\\x28\\x97\\xef\\xd7\\x24\\xe6\\x05\\x4a\\x3b\\xd1\\xa6\\x9e\\x39\\xa4\\xa5\\xe2\\xd5\\x02\"},\n{{0x6d,0x78,0x55,0xe3,0x0f,0x7a,0x13,0xe2,0x37,0xb0,0x67,0x14,0x43,0x46,0x43,0x4b,0xb4,0xb0,0x51,0x78,0xc7,0xd8,0x8d,0x49,0x2e,0x79,0x02,0x7c,0x4b,0x0f,0x3c,0xdd,},{0x72,0x73,0x29,0x38,0x28,0xef,0xa3,0x49,0x82,0x23,0x92,0xdb,0xba,0xb0,0x78,0x79,0x57,0x7e,0x1a,0x77,0xa6,0xfd,0x6a,0xfe,0x33,0x75,0x3a,0x9e,0xec,0x88,0xc4,0xaf,},{0x0f,0xe2,0x8e,0xad,0xd9,0xe5,0xdd,0x57,0x4b,0x3f,0xaa,0xea,0x81,0x0d,0x44,0x52,0x2c,0x8b,0x1b,0xfb,0xb3,0xe3,0xd5,0x7e,0xd8,0x89,0xfa,0xed,0xec,0x91,0xd0,0xe1,0x4a,0x86,0xb9,0x14,0xc4,0xc7,0x66,0xf1,0xbf,0x9b,0x8f,0x18,0xb0,0xdb,0x89,0x0d,0xb6,0xc1,0xb1,0x25,0xd5,0x78,0x04,0x33,0x36,0x19,0xb1,0xe0,0x72,0x0a,0x33,0x00,},\"\\xf8\\xb9\\x36\\xe7\\x93\\xb0\\x17\\x58\\x0c\\xc0\\xe9\\xcb\\xda\\x2a\\xcb\\x64\\x74\\x50\\x7f\\x4b\\xca\\x3a\\xfc\\x87\\x83\\xec\\x46\\xee\\xb8\\x2c\\xcd\\x4d\\xd2\\x52\\x56\\x76\\xaa\\x6a\\xb5\\xc0\\xdc\\xf7\\xd7\\x5f\\x7e\\x03\\x11\\xe6\\xfe\\x6b\\xf2\\x72\\x63\\xf8\\x57\\x8f\\xeb\\x55\\xc5\\x61\\x2d\\x1f\\x28\\xe8\\x88\\xb7\\x66\\x56\\xc4\\x1c\\xcd\\x8a\\x70\\xb9\\xbc\\x60\\x4b\\x42\\x72\\x4f\\xa2\\xbc\\x41\\x1d\\x44\\xc3\\x1a\\xb6\\x8c\\xe8\\x4f\\x83\\x93\\x39\\x9e\\x34\\xd5\\x40\\x85\\x79\\xc2\\xba\\x29\\x21\\xf2\\xf8\\xd1\\x14\\x87\\xaa\\x7e\\x52\\x55\\x7f\\xee\\xd9\\x67\\x57\\x19\\x9d\\x3a\\xae\\x63\\x77\\x77\\x01\\x54\\xb1\\x7f\\x35\\x77\\xc7\\xac\\x3d\\x8c\\x76\\xcf\\x74\\x61\\xb5\\xe8\\xd4\\x2a\\x71\\x85\\x07\\x8e\\xd4\\xf8\\x62\\xfc\\x57\\x50\\x2f\\x61\\x50\\x75\\x30\\x7b\\x6e\\x10\\x3c\\x77\\xc1\\xf6\\xc8\\xbd\\xa7\\xaa\\x17\\xe4\\x35\\xe2\\x1b\\x94\\x9a\\xf4\\x4d\\xff\\x5a\\xa3\\x0a\\x62\\xda\\x71\\x2f\\xa9\\x96\\x6a\\x61\\x2f\\xfc\\xa1\\x48\\x71\\xfd\\x6f\\x86\\x0b\\x4a\\x96\\x14\\x01\\x2c\\x53\\x69\\x91\\x0e\\x0f\\xfd\\x6f\\x0f\\xbd\\x88\\x9a\\x9c\\x25\\x7c\\x32\\xbd\\xcf\\x90\\xbb\\x80\\x62\\x7c\\xb2\\x72\\xec\\xd4\\x59\\x98\\x97\\x55\\x59\\x55\\xe1\\xfe\\x08\\xcd\\x7e\\xbb\\x21\\xc0\\x71\\xbe\\x0f\\x48\\x98\\x96\\x96\\xcb\\x39\\xaa\\x82\\xad\\x11\\xba\\xa5\\xd4\\xac\\x61\\x3a\\xbf\\x1b\\x6d\\xb8\\xa2\\x0e\\x68\\x68\\x36\\x22\\x28\\x33\\xf8\\xb6\\xdd\\x2f\\x00\\x06\\x22\\x7b\\xe4\\x8e\\x85\\x80\\xdc\\xc8\\xde\\x62\\x0d\\xac\\xb2\\xf6\\x5a\\x69\\x36\\x75\\xd6\\xcb\\x45\\xba\\x5d\\xd1\\xaa\\x70\\xdb\\x76\\xbc\\x64\\x1d\\x4f\\xb5\\x67\\xec\\xbc\\x71\\x11\\x44\\x2e\\x29\\x41\\x58\\xbe\\x57\\x5c\\x71\\xdd\\xc2\\x6e\\x94\\xf4\\x12\\x66\\xa2\\xfd\\x3a\\x0d\\x43\\x57\\x81\\xfc\\x09\\x46\\x48\\xfa\\xdf\\x5f\\x17\\xcd\\x41\\xab\\x89\\x58\\x21\\x89\\x4e\\xc0\\x80\\x6b\\x26\\x2c\\x39\\x35\\x34\\xfe\\x66\\xf2\\x1e\\x37\\x83\\xc1\\x4a\\x96\\xc8\\x8f\\x2e\\x06\\x53\\xfe\\x32\\xe7\\x5d\\xce\\x8a\\x46\\x3b\\xb9\\x7e\\xed\\x6c\\x16\\xf3\\xf3\\x22\\x81\\x69\\xab\\xb5\\xb4\\xbf\\x9e\\xa3\\x27\\x8c\\x1f\\xf0\\xf8\\x6e\\xae\\x71\\x38\\x9b\\x64\\x33\\xac\\xd0\\x97\\xee\\xfa\\x9e\\x6e\\x05\\xf4\\x95\\x5c\\xd5\\x17\\x83\\x0b\\x8d\\x98\\x70\\xcc\\xb5\\x22\\x74\\x15\\xe5\\x0f\\x23\\xf6\\x47\\x32\\x17\\xa7\\x45\\x09\\x64\\x70\\xdc\\xa9\\x3d\\x2b\\x34\\x67\\x3c\\x5d\\x6a\\x57\\xed\\x02\\xc8\\xe0\\xca\\xe1\\x19\\xb3\\xf3\\x29\\xd8\\xab\\x64\\x98\\x49\\x4c\\x29\\x21\\xbb\\x6f\\x49\\x6d\\xd0\\x83\\x81\\xe7\\xd3\\x9f\\x2d\\xb5\\x76\\x3b\\x14\\xa2\\x82\\x1b\\xef\\xcc\\xa0\\xa9\\xfd\\x31\\x25\\x45\\xde\\x68\\xab\\xf2\\x06\\xd1\\x2d\\x8e\\x02\\xe7\\x3b\\xc7\\xe3\\xcb\\x79\\x6e\\x7e\\xe2\\x6c\\xc6\\x3d\\x74\\x1e\\xfa\\xfc\\x53\\x45\\xf8\\x13\\x29\\x51\\xbc\\xfb\\xfd\\xdf\\x63\\x1f\\xb7\\xcb\\x43\\xef\\x35\\xb9\\x45\\x3c\\x93\\x90\\xeb\\x23\\xb1\\xf9\\xd8\\xb1\\xc7\\x2d\\xeb\\xd2\\x4f\\x09\\xa0\\x1a\\x9d\\xc6\\x0e\\xe6\\x81\\x53\\x06\\x18\\x83\\x57\\x78\\x1a\\xf6\\xe1\\x82\\x0a\\xa3\\x5e\\x4e\\xc1\\x21\\xb7\\xca\\x34\\xd7\\xde\\x76\\x11\\xb2\\x46\\xa3\\xe7\\x03\\xed\\x48\\xc7\\xeb\\x03\\xa6\\xfe\\x8f\\x85\\x2e\\xe7\\xd3\\x25\\x45\\xc9\\xd8\\x52\\xd6\\x4d\\x5d\\x75\\x93\\x0e\\x5f\\x1e\\xbe\\x21\\xa3\\x07\\xef\\xa7\\x62\\x2e\\xda\\xce\\xd6\\xd8\\x79\\x02\\x6f\\x0f\\x85\\xa9\\x11\\x20\\x12\\x80\\x37\\x05\\x58\\x22\\x69\\xd3\\x9f\\x14\\x32\\x34\\xdf\\x89\\x09\\xab\\x3d\\x94\\x8e\\x76\\xd3\\xda\\xaa\\x24\\x22\\x6d\\x9a\\xc6\\x01\\xee\\xf2\\x77\\xfd\\x2c\\xfc\\x4a\\x19\\xae\\xdf\\x43\\x87\\xa2\\x16\\x17\\xb0\\x3e\\xc3\\xd3\\x84\\x5a\\x38\\x55\\x4f\\x5e\\x97\\x03\\x6e\\x56\\xec\\x1c\\xe6\\x60\\xdf\\x9c\\x06\\x2c\\x2c\\x99\\x3b\\x77\\xc5\\xba\\x6a\\x6d\\x05\\x23\\x1d\\xae\\x37\\x64\\x18\\x3c\\x3e\\x96\\xaa\\x53\\x9c\\xfb\\x34\\x15\\xfb\\x16\\x3c\\x64\\x5b\\x23\\x03\\xb2\\xd6\\xd4\\xbd\\xa8\\xca\\x6c\\x72\\xbc\\x03\\xd5\\x30\\x5f\\x9b\\x11\\x8e\\x92\\x5e\\x27\\xd2\\x9a\\xb7\\xdc\\xb1\\x96\\x47\\x0e\\x63\\x39\\x63\\x1b\\x23\\x80\\x74\\x4c\\x04\\xd1\\xda\\x34\\x8f\\xc0\\xfe\\x27\\x42\\x77\\xf8\\x2f\\x95\\xbd\\xfb\\x0b\\x64\\xb4\\xcf\\x3b\\x51\\xe5\\x71\\xc0\\xdd\\xb3\\xb5\\x3c\\xa6\"},\n{{0x7e,0xe4,0xe7,0xe9,0x8c,0x6a,0x40,0xf0,0xe7,0x44,0x13,0xf2,0x40,0x39,0xbd,0x22,0x0d,0xf1,0xf8,0xc7,0xf0,0x15,0x52,0x8d,0xbf,0x52,0x84,0xab,0x9f,0x7c,0x82,0xe2,},{0x4d,0x5a,0x80,0x0f,0x9b,0x22,0x07,0x0e,0x01,0x6e,0xe2,0x3a,0xf8,0xa3,0x10,0x90,0x2b,0x36,0x9d,0x58,0x9a,0x84,0x7f,0x34,0x5c,0x2e,0xa2,0x96,0x8d,0x6d,0x09,0x24,},{0xac,0x3b,0xfe,0x3a,0xdf,0x94,0x1c,0x93,0x4d,0x33,0x49,0xc4,0x92,0xde,0x70,0xd5,0x16,0x6b,0xe3,0x89,0xf9,0x55,0xbe,0x87,0xc2,0x88,0x3f,0x41,0xf2,0xda,0x14,0x6c,0x91,0x06,0x51,0xa3,0xb4,0x52,0xc2,0xd7,0x39,0xdc,0x9b,0x53,0x1c,0x57,0x45,0x56,0x5e,0x69,0xd9,0x83,0x59,0xf1,0xd7,0xd9,0x3e,0xbd,0x36,0xd7,0x0a,0xbb,0xf0,0x0d,},\"\\x8f\\xb0\\x13\\x73\\xc4\\x2e\\x69\\x61\\x4a\\xea\\x99\\xaf\\x49\\x32\\x37\\x85\\xf3\\x38\\x61\\xb9\\x4e\\x90\\xf5\\x65\\x38\\x9e\\xbf\\x70\\xe2\\x19\\xf5\\xde\\xc7\\x32\\xe0\\x01\\x0b\\x58\\xf7\\x29\\x05\\x30\\xdf\\x22\\x2a\\xc9\\xc7\\x3e\\x1c\\x2e\\x92\\xa5\\xe6\\x06\\x1d\\xe5\\x59\\x0c\\xaf\\x9c\\x0d\\x50\\x21\\xd7\\x29\\xea\\xa1\\x15\\x41\\xfa\\x1d\\x08\\x21\\x60\\xbe\\xaf\\x61\\x1e\\x7c\\xfd\\xc0\\xeb\\xb3\\x15\\xd3\\x88\\xe5\\x38\\xb4\\xb5\\x02\\x8f\\x9b\\x30\\xd3\\xd9\\x73\\x34\\x7f\\xfd\\x44\\x26\\x3e\\xef\\x08\\x3b\\x81\\xb2\\x1b\\x82\\xec\\xa5\\x75\\x6a\\x49\\x4b\\x1d\\x81\\xc0\\x7d\\xe8\\x49\\x50\\x6d\\x3e\\x3b\\x66\\x87\\x97\\xa5\\xc5\\x44\\x25\\x4d\\x4e\\xbe\\x5c\\xf8\\x17\\x1b\\x39\\xf8\\x72\\x4c\\xbc\\x41\\x89\\x29\\x1b\\x3c\\x53\\xc2\\x1e\\xce\\x49\\xa1\\xd7\\x39\\x56\\x3c\\x65\\xb4\\x90\\x25\\x93\\x56\\x47\\xa7\\x30\\x3a\\xe0\\xef\\x7f\\x6d\\x24\\x55\\x46\\x45\\xa4\\x28\\xdb\\xbb\\x42\\x44\\x9f\\x53\\x99\\xe3\\x6d\\xc7\\x87\\xb7\\xd6\\x95\\x8a\\x02\\xee\\xbb\\xb8\\x36\\xe5\\xe5\\x3e\\x26\\xe4\\x87\\x23\\x9d\\xe9\\x4d\\x1d\\x25\\x0e\\x79\\x43\\xac\\x0e\\x22\\xd9\\x27\\x50\\xa0\\xcf\\x34\\x73\\xbe\\x1a\\x62\\x25\\xcb\\xe7\\x95\\x45\\x04\\x82\\x69\\xf6\\x23\\x7e\\xc9\\xf9\\xec\\x30\\x7e\\x8a\\x34\\xb7\\xbb\\x34\\xcd\\x49\\x06\\xe4\\x31\\x62\\xa3\\x70\\x8f\\x32\\x9c\\x5b\\x98\\x9d\\x7a\\x7f\\xcd\\xe1\\x09\\x9a\\x54\\x25\\x46\\xfe\\x9c\\x33\\x18\\x2b\\xa5\\x1b\\x84\\x3e\\x96\\xd1\\x1c\\x79\\xe9\\x1a\\xd2\\x1f\\x71\\x70\\xe2\\x57\\xfd\\xc2\\x81\\x8e\\x12\\xf9\\x16\\x8a\\x97\\x4c\\x96\\x8a\\x4d\\x27\\x3f\\xa3\\xff\\xa9\\xf3\\x5f\\xf9\\x05\\x98\\x0e\\xaa\\xd3\\x72\\x1c\\xae\\x80\\x2b\\xee\\x36\\x21\\x0b\\x40\\xb9\\x93\\x19\\xbb\\x66\\x99\\x82\\xe9\\x43\\xb2\\x70\\xa4\\xc4\\xd0\\xa9\\x2e\\xcb\\x5b\\xba\\x2d\\xd8\\xb4\\x0a\\xc3\\xd2\\xf0\\x32\\x5c\\x46\\x9d\\x5e\\x9d\\x48\\x3f\\x52\\x41\\x97\\x40\\x10\\xc5\\xc0\\xda\\x33\\x5f\\x16\\xe9\\x62\\x19\\x6c\\x2e\\xf1\\x4e\\xb2\\x4a\\xaf\\xbb\\x31\\x1b\\xfd\\x5f\\xa8\\xdc\\x8d\\x2d\\x61\\xe6\\x87\\x8a\\xd2\\xcc\\xe0\\xdc\\x99\\x39\\xe4\\x45\\x22\\x72\\x3d\\x42\\x7e\\xf3\\x2f\\xb4\\x3b\\x96\\x7f\\x5e\\x44\\xfc\\x66\\x57\\x92\\x79\\x6f\\x8c\\xf9\\x34\\xf0\\x1c\\x32\\x5d\\x63\\xd5\\x83\\xdc\\x3c\\xa9\\xd4\\xfc\\xc7\\x57\\xd9\\x17\\x85\\x80\\xda\\xef\\x53\\xaa\\x3a\\xb2\\x1d\\x2c\\xe4\\x35\\x95\\x5d\\x1c\\x6d\\x47\\x63\\x8c\\x5e\\xdb\\x62\\xff\\x55\\x61\\x69\\x3d\\x1c\\xbd\\x10\\xec\\x9e\\x39\\x9a\\x71\\xbf\\x9d\\xb1\\xc9\\x96\\x9f\\xd5\\x9e\\x4e\\xeb\\x31\\xaa\\x59\\xbf\\x39\\xe9\\xf1\\x84\\x17\\x8d\\xef\\x72\\x46\\xed\\x4b\\x8f\\x4b\\xe5\\xba\\xda\\xa5\\xdb\\x4a\\xf8\\x67\\xf4\\xf2\\xec\\x39\\xa1\\x37\\x04\\x20\\x2c\\x87\\x84\\xfa\\x16\\x8c\\xe9\\x6f\\x9c\\xfa\\xc7\\x10\\x17\\x23\\x62\\x75\\xfd\\x85\\x7c\\xc3\\xc5\\x1a\\x9c\\x7a\\xc2\\x56\\x21\\x5e\\x14\\xb8\\x43\\xf7\\x21\\x4d\\xc9\\xf8\\x24\\xb9\\x1d\\x1a\\x51\\x70\\xd0\\xef\\x1d\\x37\\x69\\x6f\\x93\\xee\\x96\\x6a\\x2b\\x7d\\xec\\xe2\\x2b\\x4f\\x3a\\xfd\\x39\\xc1\\x6d\\x60\\x1e\\x5f\\xf8\\x40\\x8d\\x45\\xc1\\xa6\\xce\\x71\\xf0\\x60\\x97\\x6c\\x5b\\xe4\\xc0\\x42\\xb1\\xb7\\x38\\xdf\\x95\\x80\\xba\\x5a\\xe7\\x78\\x80\\xa7\\x0c\\x0b\\x94\\xf0\\xe1\\xc9\\xf9\\xaa\\x34\\xc0\\x90\\xd6\\x12\\xd5\\x7a\\x9b\\x93\\x1f\\x50\\xa1\\x25\\xfa\\x35\\xce\\x40\\xa2\\xcb\\x7f\\xaa\\xd5\\x30\\xf8\\x09\\x08\\xc7\\x3c\\xb7\\x82\\x58\\xaf\\xd2\\x63\\x13\\x90\\x04\\x1d\\x92\\x61\\x7e\\x9b\\xf6\\x4c\\xe9\\x6e\\x8e\\x4a\\xc7\\xf3\\x12\\x6d\\x8a\\xf8\\xa0\\x4c\\x75\\xff\\xd4\\x38\\x76\\x9d\\xe0\\x6f\\x74\\xc2\\xfc\\x20\\xcc\\x81\\x92\\xda\\x35\\x3e\\x79\\x06\\x12\\x83\\xbb\\xa0\\x8a\\x8d\\x24\\xe6\\xe4\\xe2\\xe8\\x3b\\xa5\\xb0\\x8e\\x42\\x75\\x22\\x60\\x62\\x14\\x8d\\x8a\\x02\\xaf\\xad\\x65\\xb6\\xf6\\x27\\xcf\\xbd\\x29\\xb7\\x1c\\xa1\\x8a\\xee\\x5b\\x1f\\x97\\x16\\x9b\\xf0\\x22\\x8b\\x37\\x6f\\x41\\x06\\xb5\\x0f\\xd9\\x1a\\x38\\xa6\\x62\\x11\\xd6\\x9e\\xbb\\x4a\\x7a\\xf0\\xe1\\xc2\\x21\\x7f\\x1b\\xa0\\x14\\xd1\\xe0\\xcd\\x17\\x50\\x8d\\x58\\x15\\x5d\\x16\\x3d\\xd9\\xde\\x2f\\xe1\\xc6\\x4c\\x7f\\x88\\xd5\\xb5\\x53\\xe9\\xba\\x1e\\x1f\\x25\\x43\\x0d\\x7e\\x12\\x5b\\x07\\xa8\\xc2\\xed\"},\n{{0x1f,0x28,0xd9,0x09,0x1d,0x19,0x6c,0xba,0x3d,0x45,0x52,0xe5,0xa3,0x37,0xa4,0xd8,0xaf,0x3f,0x29,0x5e,0x62,0x9e,0x4b,0xa6,0xfe,0x99,0x70,0x31,0x20,0xae,0x41,0xe0,},{0x81,0x4d,0x34,0xbf,0x28,0xee,0x6d,0x90,0xf0,0x39,0x59,0x90,0x41,0xdb,0x81,0x0f,0x7c,0x9d,0xaa,0x91,0x8e,0x03,0xe9,0x61,0x97,0x41,0x4b,0xc9,0xaa,0x31,0xec,0xdc,},{0x5b,0xe5,0x52,0xfa,0x73,0x1e,0x83,0x67,0x93,0xf6,0xdd,0xa8,0x95,0xdc,0x9b,0x1e,0x2c,0xcd,0x66,0x9d,0xe1,0xc8,0x43,0xe0,0x0e,0xa6,0xfa,0x3c,0x5e,0xbf,0x97,0xa3,0x4b,0x26,0xf1,0xf3,0xac,0x7f,0xf2,0x22,0x5e,0xe4,0xa7,0xe4,0x30,0x07,0x2c,0x13,0xda,0x40,0x66,0xdc,0xdc,0xc0,0x5b,0xa2,0xb5,0xf6,0x1a,0x6e,0x8d,0x21,0x07,0x09,},\"\\xa6\\x94\\x68\\xbc\\x33\\xeb\\xfe\\xf0\\x61\\x5c\\x64\\x3c\\x49\\xda\\xc6\\xe0\\x4f\\xdb\\x6c\\xfb\\x8e\\xc4\\x58\\x57\\xbb\\xb7\\xa2\\x7e\\x52\\x8f\\xd6\\x31\\xfc\\x34\\x11\\xba\\xee\\x65\\xcc\\x1f\\x94\\xfc\\xc9\\x4a\\xed\\x4a\\x43\\x32\\xfa\\x68\\x61\\xe0\\x65\\xe0\\x61\\x63\\x54\\x17\\x09\\xd7\\x97\\x28\\xe0\\x1b\\xe2\\xb1\\x40\\xa0\\x22\\xc8\\x3e\\x7b\\x23\\xb9\\xed\\x2a\\xd2\\x83\\x21\\x69\\xdf\\xc9\\x56\\x90\\x91\\x3c\\xf3\\x72\\x01\\x30\\x65\\x70\\x80\\xc9\\xd5\\xa7\\x82\\x7e\\x56\\x60\\x75\\x74\\x52\\xc5\\xfc\\x3d\\xcd\\x80\\xcc\\x6b\\xe0\\x98\\xc6\\x29\\x22\\x6d\\x54\\x66\\xe0\\x2b\\x97\\x12\\x6b\\xe7\\x4a\\x14\\x52\\xee\\x16\\x81\\x50\\x95\\xde\\xb4\\x2b\\xf0\\x65\\x66\\x71\\x50\\x28\\xc1\\x18\\x25\\x82\\x0a\\x8a\\x23\\xc6\\x0d\\xa2\\xb6\\x8d\\xd9\\xa5\\x5d\\xad\\x2a\\x29\\xa4\\x96\\x44\\x43\\x81\\x7c\\x07\\xd7\\x76\\xb2\\x44\\xb1\\x51\\x86\\x81\\x9a\\x3b\\xbe\\xd4\\x14\\xab\\xf4\\x57\\x9a\\x3e\\xce\\x3a\\x3d\\xc7\\xb1\\x05\\xd0\\xa9\\xdb\\xa3\\x7b\\x9e\\xaa\\x78\\xbe\\x8e\\x46\\xe1\\x69\\x8b\\x59\\xb0\\x94\\x0b\\x01\\xf3\\x8b\\x28\\x3c\\x33\\xa9\\xa4\\xb1\\xd4\\xf8\\x14\\x4b\\x16\\xee\\xb5\\xfc\\x0a\\x7a\\xf0\\xd0\\x81\\x69\\x66\\x45\\xa1\\xea\\xb3\\xa7\\x87\\xcb\\xcf\\x88\\xfa\\xd9\\x3d\\xd6\\xcd\\x46\\xd2\\x95\\xa8\\x79\\xa1\\x77\\x50\\x33\\xa9\\x85\\x63\\x82\\x2e\\xf1\\xf6\\xb6\\x9a\\x58\\x1e\\x49\\x73\\x6c\\x8d\\x70\\x1b\\x44\\x53\\x96\\x93\\x40\\x52\\x1e\\x4a\\xd4\\xbf\\x94\\xb9\\x11\\xb0\\xe2\\xd8\\x6f\\x34\\xee\\xce\\x4a\\x63\\x85\\xff\\x1f\\xe6\\x32\\x20\\xcd\\x3c\\xc5\\x92\\xf3\\x6d\\x6c\\x49\\x1f\\xa1\\x8f\\x7c\\x14\\x04\\x36\\x0d\\x2a\\x77\\x53\\xfe\\x07\\x3e\\x09\\xa2\\xfc\\x42\\xa4\\xbb\\xea\\x55\\xbc\\x96\\xd7\\xf0\\x5c\\x98\\xae\\xd2\\xcc\\x4a\\x9f\\xae\\x8f\\xd4\\xa0\\x19\\x7f\\xf0\\x1f\\xa7\\xf0\\x04\\x6e\\x3c\\x3e\\xb5\\x9a\\xaa\\xbc\\xa3\\x13\\xa4\\xdd\\xaa\\x5d\\x20\\xd2\\x7c\\x2c\\x5f\\x1a\\xc6\\xd8\\x7f\\xd3\\xcb\\x4b\\xd3\\x5a\\x1e\\xc7\\x5d\\x10\\x4f\\x7c\\x36\\x73\\x31\\xa3\\xe2\\x95\\xe5\\x3c\\x4e\\x80\\xba\\xe1\\x4b\\x97\\x92\\xd0\\xd5\\x26\\xf7\\x40\\xd4\\xff\\x03\\x6f\\xaf\\x54\\x87\\x96\\x7f\\xfa\\xbe\\x8e\\x88\\x3d\\x3f\\xb0\\xd1\\x6f\\xaa\\xdb\\x28\\xe1\\x28\\x5d\\xed\\x41\\x57\\x0c\\x0b\\x07\\xc2\\x55\\x9b\\x53\\x1e\\x0f\\x92\\x54\\xef\\x88\\xe5\\xb1\\x0f\\x64\\xf4\\x83\\x9a\\x9a\\x0b\\x6c\\x3c\\x7f\\x1b\\x78\\x50\\xf4\\xad\\x9b\\xf0\\x99\\x9a\\x7f\\x2a\\xe7\\xc4\\x5a\\x65\\x8e\\xa5\\x30\\x36\\xfc\\x70\\x19\\x98\\x42\\xb8\\xe4\\x9e\\x60\\xf9\\x67\\xde\\x1f\\xf3\\xab\\xff\\xf6\\xcd\\x73\\x5b\\x7c\\xd8\\xb8\\xf9\\xe2\\x48\\xf1\\x56\\xf6\\xc6\\x54\\x38\\x69\\xeb\\x99\\x82\\x3d\\xae\\xa8\\x8d\\xeb\\xaf\\x79\\xf0\\x1e\\x65\\x21\\xec\\x63\\xfe\\x72\\x72\\x4e\\xe3\\xc8\\x22\\xb8\\x8b\\x39\\x68\\xb2\\x48\\x52\\x09\\x15\\x83\\xc4\\x9a\\xb3\\xc1\\x5f\\xa1\\xf7\\x9b\\x18\\xd9\\x8f\\x04\\xd9\\xb6\\x84\\x1c\\x9a\\x7c\\xa0\\xde\\x2f\\xcc\\x02\\xf9\\x5d\\xd6\\x49\\x49\\x2e\\x8b\\x56\\xa3\\x1e\\xc1\\xe2\\x44\\x33\\x7a\\xf6\\xaa\\xae\\xde\\x8b\\xf9\\x9f\\xc8\\x14\\xef\\x57\\xc0\\xd5\\xe0\\x8c\\x3c\\x7e\\xcc\\x18\\x97\\x98\\x0a\\xa1\\x69\\xa9\\x92\\x6d\\x20\\x69\\x8d\\xf6\\x93\\x0e\\x21\\x10\\xcb\\x46\\x0f\\x49\\x39\\x01\\x00\\x74\\x10\\x95\\xf8\\xed\\x00\\x41\\x2a\\xe6\\x96\\xd9\\x8e\\xfe\\xfd\\x29\\x0d\\xa5\\xf7\\xd0\\xb7\\x28\\xd2\\x0a\\x1e\\xbf\\xa6\\xbd\\x7d\\x27\\x0f\\x28\\x1a\\x98\\xc7\\xb1\\xe4\\x08\\x43\\x51\\x25\\xaa\\x48\\x3c\\x6b\\x7d\\x63\\x3f\\xf7\\x58\\x8a\\x94\\x16\\x58\\xf6\\x12\\x95\\x44\\xd6\\x29\\x45\\xb9\\xb8\\xaf\\x71\\xa8\\xc6\\x2c\\x0a\\x50\\x07\\x6c\\xb8\\x54\\x1b\\xa7\\xe4\\xbd\\xe4\\xed\\xe4\\x41\\x72\\x2c\\x6e\\xb9\\xdf\\x8c\\xfd\\x06\\x56\\x33\\x9e\\x86\\xd2\\x26\\xab\\xae\\xa0\\x5e\\xa0\\x47\\xf6\\xb8\\x30\\x77\\x01\\xf6\\xc9\\xa4\\x4c\\xc9\\xcb\\x83\\x7b\\x8e\\xb6\\x24\\x45\\x92\\x5e\\x8a\\x88\\x81\\xd2\\x53\\x8f\\xcb\\x2b\\x24\\x9e\\x4e\\xe8\\xb6\\x86\\xec\\xfb\\x49\\xc4\\xdf\\x86\\x40\\x1d\\x24\\x9a\\xac\\x35\\x84\\x1e\\x91\\x40\\x04\\xf9\\x45\\x5d\\x3f\\xde\\x37\\x5d\\x20\\xa0\\x1f\\xba\\x27\\xb1\\x97\\xa6\\x98\\xd3\\x84\\xc7\\x65\\x05\\x10\\x68\\x01\\x62\\x7e\\x83\\x36\\xbd\\x2d\\x76\\xd7\\x61\\xa8\"},\n{{0xc6,0x4d,0xd2,0x0d,0x42,0x62,0x75,0x26,0x19,0x8a,0x22,0x64,0x76,0x90,0xc8,0x95,0xb5,0xb4,0x5b,0x69,0x8f,0x57,0xa6,0x9d,0xfb,0xe4,0x8d,0xbd,0x42,0x6a,0xa4,0x70,},{0x2e,0x01,0xd4,0x04,0x16,0xf7,0x8a,0xcd,0xdb,0x34,0xb8,0x44,0x5e,0xa4,0xfd,0x0a,0xb3,0xfa,0x9e,0x66,0x43,0x04,0x47,0x52,0x21,0x3f,0x07,0xc7,0xf0,0xff,0x43,0xa0,},{0xde,0xac,0xc8,0xc2,0x32,0x18,0x72,0x76,0x76,0xd5,0x40,0xa2,0x3b,0xda,0xd7,0x81,0x02,0x11,0xe6,0xd5,0x7a,0xd2,0x94,0xc3,0x7d,0x4b,0x1c,0x9a,0xf6,0xb3,0x37,0xa5,0x3f,0x78,0x80,0xd2,0xba,0xfa,0x73,0xb3,0x05,0x08,0xc0,0x08,0x42,0x6b,0xf8,0xd7,0xc9,0x65,0xa1,0xf4,0xa4,0x22,0xa1,0xbc,0x7d,0x6a,0xd6,0x22,0x6f,0xd1,0x97,0x06,},\"\\x82\\x1b\\x9f\\x7c\\x16\\x10\\x4b\\x53\\x3b\\xd1\\x27\\x18\\x4f\\xd7\\x2a\\xde\\x09\\x2b\\x13\\xbb\\xd9\\xac\\xee\\xd2\\x9b\\x8d\\x10\\xf1\\x66\\x88\\x92\\x2d\\x16\\x5f\\x89\\x31\\xd5\\x3d\\xf5\\x90\\xfb\\x71\\x3b\\x67\\x4d\\x80\\x5c\\xe0\\xc9\\xd6\\xce\\x6c\\x43\\xba\\x69\\x68\\x19\\x1d\\x12\\xbf\\xa0\\x8a\\x8c\\xe2\\x2e\\x8f\\x33\\x6b\\x2b\\x49\\x1a\\xf2\\x5d\\x1b\\x16\\x06\\xf9\\x30\\xca\\xeb\\xe5\\x22\\x39\\x2a\\x87\\xd4\\x2c\\xe7\\xbc\\x16\\x7a\\xa7\\xb6\\x10\\x59\\x72\\x20\\xaf\\x31\\xa6\\x65\\x35\\x30\\x71\\xe8\\xd9\\xe5\\xf4\\x20\\x78\\xb9\\xc3\\x88\\xbf\\x04\\x02\\x58\\xe2\\x1f\\x9c\\x3a\\xb3\\x8c\\x04\\x27\\x61\\x8b\\x2c\\x28\\xd3\\x43\\x0d\\xf2\\x79\\x21\\xbf\\xc5\\x84\\x87\\xb3\\x46\\x19\\x78\\xbf\\xa8\\xbf\\x58\\x6c\\xfe\\x83\\x58\\xe0\\x92\\xf8\\xf4\\x74\\x66\\xe7\\x62\\x45\\x1d\\x50\\x16\\x4a\\x0d\\x74\\x36\\x0f\\x66\\xb4\\xcd\\x3a\\x35\\x75\\xda\\x01\\xda\\x23\\x75\\x24\\x30\\xc0\\x35\\xda\\x85\\x9f\\x57\\x7d\\xe2\\x22\\x90\\xaa\\xb4\\xed\\x7f\\x34\\xd2\\x67\\x40\\x6a\\xb5\\x47\\xeb\\x44\\x5c\\xc6\\x4d\\xf5\\x30\\x19\\x42\\x7f\\x4e\\xb7\\x2b\\xca\\x55\\x39\\x71\\x53\\xd0\\x1c\\xcf\\x7e\\xc9\\x7d\\x7a\\x96\\x7d\\x9a\\xff\\x46\\x23\\x1d\\x2e\\x20\\x27\\xb3\\x8f\\x3b\\x41\\xbd\\x2c\\xb1\\xb7\\x98\\xa4\\xae\\x88\\xab\\xf4\\x89\\x62\\x16\\xd3\\x15\\xbd\\x53\\x83\\x02\\x42\\x59\\xe5\\x97\\x42\\x80\\x2a\\x91\\x1b\\xad\\xcf\\x84\\x73\\xdb\\x91\\xaf\\x31\\x97\\x33\\x32\\x0c\\xb9\\x52\\x1e\\xf9\\xce\\x43\\x72\\x67\\xb6\\xea\\x17\\xbc\\xaf\\xe5\\xd0\\x90\\x3b\\x12\\x3a\\x35\\xc9\\x88\\xf4\\x98\\x34\\xf6\\x1d\\xd5\\x52\\x64\\x0a\\x32\\x76\\xda\\x26\\xaf\\x17\\xec\\x21\\xa2\\x02\\x96\\x58\\x6d\\xd6\\xf4\\xb3\\x6c\\x7a\\x4f\\x0b\\x89\\x9d\\x70\\xb4\\x2a\\xf8\\x9e\\x29\\x37\\x01\\x32\\xed\\xfb\\x72\\xd6\\x83\\x41\\x94\\xa1\\x60\\x93\\x60\\xb1\\xf1\\xfe\\xab\\x89\\xb9\\x6b\\x8e\\x8f\\x0f\\x68\\x98\\x7c\\x57\\xcc\\xe0\\xba\\xb7\\x68\\x11\\x37\\x18\\xfb\\x17\\x09\\xde\\x2d\\xf3\\x21\\x77\\xd4\\x40\\x85\\xda\\x5e\\xfd\\x9d\\xa7\\x0e\\x1a\\x85\\x8c\\x92\\xf2\\x45\\xac\\xfe\\xe6\\x4b\\x71\\xf3\\xeb\\x16\\xe0\\x4f\\xc1\\x39\\x89\\xe6\\x93\\x37\\x99\\x97\\x01\\xdd\\x73\\xab\\xc2\\x66\\xc9\\xfd\\x4c\\xff\\x91\\xa0\\xfd\\x04\\xfb\\xd8\\xb1\\x3b\\x12\\xe6\\xf4\\x50\\x38\\x57\\x15\\x84\\x8e\\x00\\x7f\\xa0\\xd4\\x63\\x11\\x9f\\xd7\\xde\\x63\\x25\\xb6\\x40\\x04\\x2b\\x65\\x42\\x12\\xe0\\xdb\\x8d\\xa1\\xad\\xeb\\xd2\\xa7\\x58\\x9f\\x77\\xee\\x4f\\x75\\x2d\\x28\\x2c\\xa1\\x11\\x9c\\x43\\x1b\\x17\\xad\\x0a\\x02\\x1e\\xf2\\xbf\\x95\\xe5\\xac\\x47\\x04\\xe6\\x2d\\x70\\x39\\xd0\\xe6\\x51\\xe4\\x56\\xd6\\x0e\\x63\\xba\\xde\\x40\\x1c\\xca\\x77\\xc9\\xa8\\x91\\x63\\x17\\x4d\\x50\\x22\\xd7\\x45\\xab\\xdc\\x76\\xb9\\xff\\xe2\\x54\\x41\\x55\\x23\\x5e\\x30\\x63\\xe6\\xe4\\xae\\xec\\x44\\xed\\x5d\\x8a\\xb4\\x08\\xd9\\x66\\xfe\\xc1\\x20\\x16\\xc1\\x30\\x73\\x0b\\xbc\\x55\\x87\\x32\\x06\\x5d\\xa8\\x00\\xa7\\x0c\\xbf\\xb0\\xfc\\xcc\\xa4\\x5d\\x00\\x28\\xcb\\xfd\\x96\\x32\\xdd\\xb2\\xf0\\xed\\x12\\xed\\xae\\x7b\\x93\\x0b\\x10\\x6c\\x9d\\x12\\x85\\xa4\\xb8\\x70\\xde\\x75\\x07\\x99\\x9c\\x74\\x79\\x3d\\xd4\\x97\\x40\\x87\\x19\\xc8\\x98\\xab\\xe4\\x9f\\x7f\\x33\\xa3\\x3e\\x69\\xb5\\x0f\\xa5\\xaf\\x94\\x80\\x06\\x85\\x66\\xd1\\xfd\\xdf\\x44\\x82\\xd7\\x97\\x04\\xad\\x8e\\xf1\\x1b\\x88\\xb4\\x2c\\xc6\\x9f\\xce\\x8a\\x55\\x7b\\x5b\\xa5\\x10\\xe7\\x08\\xb9\\x37\\x51\\x23\\x03\\x85\\x68\\x27\\x0d\\xe4\\x07\\x23\\x2e\\x95\\x62\\x1e\\x2d\\x04\\x57\\x0b\\xec\\x2c\\x41\\xec\\xcf\\xd8\\x55\\xb2\\x1f\\x0c\\x9b\\xba\\xa2\\x3b\\x5c\\x58\\x15\\xfc\\x88\\x8f\\x7f\\xbe\\xd4\\x82\\xc3\\x20\\xff\\xa1\\xe0\\x63\\xe8\\x7b\\x55\\xbc\\x8f\\x7e\\xee\\xa3\\x74\\x06\\x3a\\x9b\\xe6\\x5f\\x7e\\xd9\\x22\\x5b\\xf6\\xca\\x34\\xcf\\xa3\\x11\\xb7\\x9f\\x3a\\x25\\x8c\\x25\\x2e\\x63\\x45\\xed\\x6a\\xc8\\x47\\x48\\xf4\\x68\\x07\\xa5\\x5d\\x4b\\xa4\\x12\\x66\\x16\\x9c\\xd2\\x62\\xd4\\xf7\\x22\\x79\\xef\\x0c\\xaa\\x77\\xff\\x44\\x93\\x35\\x32\\xbd\\x13\\x74\\x75\\x6c\\x23\\xec\\x85\\xf5\\x5e\\xfe\\x9f\\xc2\\x33\\x1f\\x26\\xf8\\x81\\x62\\x9f\\x80\\xc2\\x69\\x2f\\x7f\\x53\\xe4\\xbc\\x6f\\x22\\xef\\xb4\\x54\\x57\\xa2\\x23\\xf0\\xd1\\xc4\"},\n{{0x0f,0x8e,0x9f,0x35,0x26,0xb4,0xfa,0xea,0x92,0x76,0xf2,0x2a,0x17,0x79,0xe6,0xf8,0x27,0x09,0x80,0x8f,0x6d,0x0c,0x61,0x2a,0xdf,0xe3,0x2a,0x6e,0x8a,0x06,0x10,0x05,},{0xd4,0x8c,0x3f,0x0f,0xde,0xf3,0x82,0xd1,0xd8,0x03,0x13,0xe8,0x46,0xfc,0xa9,0x5e,0x41,0x81,0x76,0xbb,0x5d,0xfa,0x9d,0x39,0x8c,0x1d,0x21,0x24,0x77,0x6f,0x69,0x0a,},{0x2f,0x59,0xa2,0x93,0x60,0x73,0x91,0x38,0x34,0xeb,0x15,0xa0,0xe0,0xbc,0xb9,0xaa,0x80,0x40,0x89,0x46,0x8f,0x24,0xdd,0x1b,0x2d,0x37,0xa1,0x93,0x4a,0xe9,0xba,0x10,0x20,0xff,0x64,0xb7,0x2e,0xec,0x03,0x26,0x8d,0x0a,0x7c,0x01,0x2c,0x4e,0x79,0x63,0x00,0xf6,0xdf,0x7a,0xdd,0xa0,0x1c,0x8b,0xc5,0xe9,0x01,0x5c,0xcd,0xee,0x1a,0x00,},\"\\x0c\\xcd\\x37\\xc4\\xcf\\xd8\\xe7\\x0c\\xa3\\xbb\\x39\\x46\\xd0\\x9d\\x70\\xd0\\xf6\\xa4\\xb8\\x1d\\x6d\\xfb\\x07\\x9d\\x78\\x73\\x74\\x80\\x71\\x58\\x98\\x80\\x92\\x73\\x82\\xf7\\x43\\x6a\\x6e\\xf8\\xf5\\x1c\\x25\\x54\\x73\\xdd\\x01\\xfe\\xb5\\x2c\\x8e\\xdb\\xe4\\xd3\\x25\\x57\\x13\\xe6\\x8d\\x64\\x0f\\x3d\\xcf\\x15\\x8f\\x2b\\xfb\\x9f\\xbe\\xcf\\x71\\xf0\\x71\\x9d\\xfe\\x8c\\xe6\\xb6\\x01\\x28\\x1b\\xa6\\xc2\\x0a\\x56\\xb4\\xf8\\xe7\\xca\\xa4\\xaa\\x9f\\x86\\x8f\\xbf\\xc5\\xe4\\x32\\x1c\\x22\\xd6\\x5f\\x03\\x82\\xc4\\x89\\x6b\\xf9\\xbe\\xbe\\x35\\x46\\x94\\x9e\\x81\\x85\\xa4\\xd8\\x17\\xe4\\x5b\\x5d\\x12\\x93\\x95\\x38\\x21\\xbd\\xd9\\x8e\\xc2\\x59\\xf6\\x4a\\x3d\\xe5\\x38\\x65\\xb1\\x49\\xea\\x01\\xc8\\xf6\\x83\\xec\\xda\\x61\\xda\\x5d\\xc1\\x0e\\x7e\\xbd\\xdd\\xfe\\x74\\x84\\xf5\\xeb\\x10\\x31\\xb7\\x91\\x65\\x87\\xca\\xa3\\x99\\xa0\\x6b\\x6f\\xea\\x4c\\x5e\\x6e\\x0b\\xe6\\x50\\xfb\\xdf\\x06\\xc1\\x03\\x6d\\xf2\\xcc\\x35\\xf6\\x2e\\xa0\\xea\\x71\\x3f\\x52\\x80\\x9d\\x77\\xf4\\x7c\\x2e\\x55\\xc9\\x23\\x92\\x48\\x16\\x80\\xb6\\x33\\x20\\x56\\x22\\x69\\x13\\xb0\\xce\\x88\\xa6\\xc5\\x5a\\x26\\xbd\\xb5\\xb8\\xba\\xb3\\xcf\\x46\\x95\\xa8\\xc5\\x22\\x30\\x2c\\x4e\\xba\\x37\\xd3\\x1f\\xf7\\x7e\\x58\\x30\\x1b\\xcc\\xfc\\x7c\\x7b\\xe8\\x58\\x0c\\x63\\x42\\x68\\x79\\x95\\xf4\\x4a\\xcd\\x19\\x09\\x65\\xae\\x0d\\x7b\\xf0\\x66\\x95\\x92\\xb6\\xad\\x88\\x74\\x3e\\xbb\\x36\\x0c\\x73\\xe0\\x48\\x4a\\x23\\xd2\\xf9\\xe9\\x9e\\x9e\\xb0\\x38\\xdc\\xbd\\x87\\xca\\x9b\\x1a\\x49\\x8f\\x1b\\x2d\\x35\\xfe\\xdd\\x7f\\x8e\\x1f\\x7f\\xd8\\xca\\x52\\x64\\x86\\x91\\x1e\\x07\\x6a\\xea\\xb4\\x87\\x7b\\xba\\xcf\\x37\\x8a\\x28\\x55\\xf9\\xc5\\xac\\x03\\x91\\x30\\xdc\\x69\\x0e\\x17\\x7d\\x67\\xb2\\x44\\xcc\\x8a\\xd0\\x32\\x37\\x9e\\xf7\\x1f\\xe0\\x5e\\x9c\\x86\\x13\\xd8\\xf5\\xd6\\xea\\x3d\\x4e\\x3e\\x47\\x22\\x20\\x29\\xcc\\x00\\x42\\x53\\xbe\\x47\\xf8\\x7f\\xb5\\xe3\\x31\\x4c\\x48\\x98\\x13\\x4b\\x87\\xac\\xf1\\x0b\\x25\\x38\\xba\\xd8\\x97\\xbd\\xc5\\x01\\x2d\\x8f\\x97\\x62\\xc8\\x71\\xb6\\x53\\xd4\\x00\\xfe\\xe0\\xce\\xed\\x5e\\xf6\\xbd\\xd1\\x6f\\xaf\\x3f\\x0a\\xbd\\xbd\\x72\\xcd\\x0a\\x12\\x94\\x05\\x46\\xf0\\x99\\x5f\\xf1\\x4b\\x0f\\x1b\\xd5\\x48\\x56\\xff\\x74\\xc3\\x6e\\xb4\\xf2\\x2d\\x72\\x87\\xae\\xfd\\xc6\\x09\\x99\\x8c\\x1f\\x41\\xbc\\xc3\\xbb\\x3a\\x5f\\xa4\\x92\\x34\\xf4\\xfa\\x8e\\x92\\x9c\\xd0\\xf5\\x54\\xb3\\x15\\x39\\x5d\\xae\\x87\\x3c\\x61\\xca\\x70\\xe0\\x41\\x0c\\x2f\\xd5\\xa1\\x15\\xd2\\xa6\\xff\\x1f\\x1c\\x94\\xb2\\x7b\\xa4\\x50\\xb8\\x19\\x4b\\x21\\xf0\\x95\\xc6\\x1a\\x5f\\x21\\x5e\\x3c\\x84\\xf5\\xd4\\x3f\\x0e\\x73\\x62\\x86\\xd3\\x3b\\x8c\\x47\\x81\\x4d\\xb9\\x79\\xf9\\xdc\\x00\\x91\\x98\\x46\\xbe\\xe6\\x85\\x33\\x7d\\x99\\x55\\x5a\\x24\\x47\\x2e\\x6b\\x00\\xb3\\xf4\\xa1\\x43\\x11\\xa6\\xc7\\xc9\\x04\\xba\\x58\\x89\\xda\\x6c\\x1d\\xdc\\xc1\\x11\\x75\\x80\\xf5\\xfb\\xc4\\x1f\\x2b\\x8a\\x42\\x68\\xcf\\x0e\\x9f\\xa5\\xbf\\x41\\x25\\x34\\xc9\\xe4\\x05\\x2a\\xac\\xb5\\x04\\xcb\\x86\\xe2\\x14\\x7a\\xb8\\x02\\x3d\\x58\\x80\\x0b\\x76\\x3f\\x9a\\xbf\\x9d\\x04\\x40\\x78\\x8a\\x51\\xdf\\xe5\\xcb\\xd4\\x42\\x30\\xba\\x52\\x28\\xf1\\xf5\\x96\\x0e\\xa3\\xa4\\xe4\\x04\\x4d\\x36\\xda\\xf8\\x11\\xcb\\xdb\\xec\\x5d\\x69\\x64\\x63\\xd8\\xe9\\x41\\xf2\\x72\\x17\\x56\\x3b\\xb4\\x4a\\x21\\x18\\xa4\\xf5\\xac\\xd6\\xe7\\x94\\xde\\x17\\xe0\\x28\\xcb\\xde\\xef\\xde\\xf2\\xcb\\xf0\\x3d\\xd3\\x2e\\x78\\x99\\xe6\\x5a\\x1c\\xf8\\x39\\xf5\\xd9\\x0e\\x1f\\x8c\\x36\\x4b\\x57\\x7f\\xe3\\x10\\x53\\x53\\xf6\\x67\\x68\\xdb\\xf7\\xaf\\x0c\\x52\\x1a\\xa8\\xa4\\x9f\\x7a\\x22\\x08\\x2d\\x88\\xf9\\x01\\x49\\x8c\\x90\\xb9\\xd7\\x77\\x7e\\xd2\\xf9\\xf0\\xe8\\xa5\\x52\\xd8\\xa1\\xfa\\x5e\\x96\\x32\\xed\\x85\\x32\\x58\\xc9\\xc2\\x15\\xb6\\xdb\\xb4\\x11\\x1d\\xcf\\xca\\x55\\x4b\\xfb\\xc9\\xbb\\xa2\\x2f\\x88\\xbc\\x55\\x55\\x2c\\x6d\\x86\\x25\\x56\\xd7\\x41\\xda\\xd5\\x9f\\x21\\x5e\\x37\\x28\\x83\\x46\\xca\\x7d\\x7f\\xd8\\xc6\\x5a\\x38\\x0d\\x72\\x0c\\xaf\\xf9\\xef\\xa1\\x49\\xf3\\xfd\\xa2\\x32\\xda\\xa5\\xb1\\x2e\\xf1\\x1c\\x0a\\xf0\\x86\\x2b\\xd0\\x22\\x9e\\x07\\x5a\\x3c\\x6b\\x60\\xef\\x0b\\xbb\\x3d\\xad\\x7f\\x29\\x08\"},\n{{0xfe,0x7c,0xdc,0x79,0x66,0xd0,0xff,0xb9,0xc7,0x6f,0x4a,0x18,0xe7,0xf0,0xbf,0x90,0x69,0x0e,0xb7,0x6d,0xc3,0xd3,0xd5,0x08,0x84,0x64,0x8e,0x2e,0x39,0x37,0xd0,0x20,},{0xa1,0x2e,0xe9,0x81,0x2d,0x6a,0xf6,0xaa,0x48,0x79,0xfa,0x72,0xbc,0x0a,0x69,0x80,0x4e,0xa1,0xa8,0x5f,0x9b,0xc4,0xa2,0x6a,0x5b,0xa7,0xcf,0xbb,0x91,0x4d,0x0d,0xd9,},{0xb5,0x2d,0x03,0xfd,0xeb,0xcd,0x42,0x97,0x37,0xef,0x70,0x92,0x06,0x87,0x21,0x1f,0xbb,0x4c,0x04,0xf8,0x1e,0x35,0x5c,0xec,0x70,0x72,0xc5,0x05,0x41,0x75,0xd2,0xed,0x77,0xf3,0x8f,0x46,0x6f,0x00,0x14,0x22,0xda,0x8f,0xcd,0xf0,0x67,0xdb,0x14,0x51,0x00,0x7c,0xab,0x60,0x7f,0x04,0x9c,0x2e,0x26,0x07,0xb5,0x7d,0x44,0x71,0x3c,0x04,},\"\\xdc\\xb9\\x1c\\xf1\\x55\\x46\\x1a\\x60\\xdf\\x07\\xee\\xc2\\x9d\\x98\\x61\\x6e\\xd1\\x72\\x8b\\x34\\xef\\xa9\\xe1\\xf7\\x44\\x5a\\x91\\x58\\xa8\\xf8\\x8d\\x7f\\xaa\\xae\\x0e\\x24\\x72\\x5a\\xef\\xf2\\x63\\xc3\\xf7\\x4f\\x0c\\x68\\x4f\\x18\\x58\\xf0\\x5b\\x69\\x95\\xd2\\x84\\x6b\\x6a\\x83\\x2f\\x67\\x08\\x5a\\x42\\x76\\xd8\\x66\\x1a\\xeb\\xd3\\xbf\\xcc\\x73\\x18\\x1f\\x1f\\x51\\x02\\x93\\xb6\\xde\\x5e\\x4b\\xb2\\x3f\\xf2\\xdc\\xa1\\xdf\\x60\\x8c\\xb1\\x4a\\xe5\\x22\\xac\\x4b\\x51\\xe1\\xf9\\xb9\\x73\\xab\\x8b\\xaf\\xcd\\x53\\x4e\\x71\\xc5\\x71\\x81\\xb1\\x18\\x96\\xee\\x10\\x61\\xfb\\x36\\x9c\\xa4\\xd2\\x93\\x9d\\x1e\\x57\\x06\\x0d\\x9f\\x4d\\xb0\\xa5\\xc0\\xb0\\x7d\\x52\\x68\\x7f\\x15\\x78\\x17\\xe6\\x3e\\x2f\\xe7\\xeb\\xcc\\x3e\\x7c\\x95\\xef\\xe0\\x5b\\x85\\x99\\x10\\xc9\\x5e\\xed\\xe8\\x6d\\x14\\x39\\x9e\\x61\\x62\\x48\\xa2\\x8c\\x24\\xc4\\x14\\xdb\\xb6\\x93\\xaf\\x9b\\xe4\\x35\\xa3\\xa9\\xcd\\xc3\\x3e\\x0e\\x2a\\x58\\x69\\x18\\xd9\\x1b\\x8a\\x85\\xce\\xdd\\x16\\x12\\xd7\\xc1\\xa2\\x17\\x92\\xbd\\xd4\\x3a\\x91\\x5b\\x15\\x7e\\x04\\xbb\\x3a\\x44\\xec\\xbe\\x23\\xfa\\x49\\xcc\\x55\\xda\\xab\\xbe\\xaa\\x15\\x5a\\x73\\x7f\\x76\\x5b\\x8d\\xdb\\x0f\\x3b\\x15\\xd4\\xec\\xf2\\xce\\xf7\\x05\\x4c\\xa7\\x3e\\xc8\\x7d\\x91\\x75\\x2c\\x2e\\x99\\x19\\x5c\\xdb\\x19\\x58\\x84\\x4f\\x14\\x4e\\xda\\xb8\\x2a\\x97\\x54\\x9f\\xc9\\xce\\xc0\\x8e\\x87\\x11\\xcf\\xf8\\x63\\xb6\\x3f\\xc2\\x31\\xa7\\x7f\\x76\\x2e\\x5c\\xd9\\xda\\x9d\\x59\\x40\\x92\\x52\\xe9\\x9a\\xb0\\x4c\\x42\\xbc\\x57\\x09\\x7e\\x46\\x4e\\x3c\\x6a\\x48\\xd8\\x02\\x41\\xe6\\x32\\x5e\\x3e\\x40\\x94\\x98\\x9b\\x34\\xc0\\xe8\\xb3\\x2b\\x1a\\x78\\x29\\xd5\\x4d\\xf3\\x2a\\x05\\x0e\\xe8\\x7d\\x8f\\x7c\\x4f\\xe3\\xe4\\xf4\\xf7\\x04\\x9d\\x1f\\xee\\xcd\\xbe\\xa6\\x71\\x08\\x35\\x0d\\xb4\\xe8\\xed\\xbe\\x3c\\x3f\\xf8\\xab\\x2a\\x25\\xd1\\x47\\xb1\\xc1\\xc5\\x82\\x1b\\x0f\\x8c\\x21\\x04\\x2d\\x65\\x5d\\xb8\\x31\\x69\\x1f\\x59\\x98\\x3f\\x27\\xd2\\xed\\x1d\\x49\\x06\\xc5\\x44\\xe2\\x4e\\x79\\xbe\\x68\\x65\\x3c\\x9b\\x22\\x9a\\x7f\\xb6\\x1e\\xf5\\x45\\xba\\xb1\\x6e\\x98\\x81\\xcb\\x4d\\x92\\x65\\xe2\\x93\\x59\\x0a\\x0b\\xc2\\xdc\\x86\\xba\\xd2\\x30\\x07\\xff\\x40\\xc9\\x58\\x61\\x92\\x3b\\x49\\x82\\x41\\xc1\\x0d\\x26\\xbf\\x48\\x48\\xf6\\x2b\\xa7\\x38\\x3f\\x64\\x9d\\xc3\\x8a\\xf1\\x84\\x0d\\x0d\\xe9\\x28\\xa9\\xbf\\xee\\x5e\\x11\\xb5\\x14\\x34\\x16\\x3a\\x7a\\xb1\\xed\\x53\\x74\\x15\\xf1\\xe9\\x32\\x85\\xe3\\x69\\x92\\x05\\x72\\x01\\x58\\xf9\\x55\\x7d\\x86\\x41\\xed\\x2b\\xf4\\x85\\xb8\\x21\\x2c\\x8f\\x82\\x66\\x8b\\xac\\x3c\\x22\\x8e\\x69\\x24\\xc1\\x7d\\x0d\\x98\\xf2\\xe6\\xd9\\x23\\x43\\x71\\xc4\\x42\\x5e\\xb7\\x58\\x68\\x9f\\xdb\\x0d\\xc1\\xce\\xa1\\x39\\x4a\\x28\\x62\\xe8\\x7b\\xb3\\x8e\\x62\\x4c\\x34\\x79\\x91\\x68\\x61\\x32\\x78\\x22\\x5f\\xb5\\xe1\\x9c\\x92\\x47\\xad\\xa3\\x55\\x54\\xf2\\xc4\\xad\\xdb\\xb6\\x1d\\x5a\\x50\\x2a\\x70\\x81\\x27\\xd6\\xef\\xbc\\xa8\\xf7\\x35\\x09\\x0b\\xdf\\xdd\\x88\\xdb\\x29\\xfb\\xd1\\x4b\\x69\\xab\\x12\\x62\\xf0\\xc3\\xe2\\x6d\\x26\\x3a\\x59\\xc5\\xae\\x46\\x39\\x06\\x53\\x83\\xd5\\x25\\x0b\\x54\\xcf\\x59\\x2b\\xb7\\xad\\xfe\\xaa\\xe0\\xd2\\xfe\\x81\\x6b\\x63\\x81\\xe8\\x6e\\xa2\\xd1\\xc7\\x18\\x13\\xcb\\xc3\\xd8\\xfe\\x2d\\x31\\xde\\x7b\\x30\\xfb\\x6e\\xc2\\x29\\x4f\\xe4\\x53\\x6a\\x36\\xc6\\xa1\\x83\\x5a\\x71\\x62\\xab\\x4b\\xf8\\x9d\\x19\\x46\\x61\\x19\\x65\\x7b\\x0e\\x46\\x45\\xae\\xf5\\x03\\x50\\x5b\\x4d\\x55\\xdf\\x97\\x7b\\xd2\\xc9\\x0c\\x64\\x40\\x6f\\x49\\x70\\xd5\\xcf\\xf2\\x45\\xb8\\x35\\x32\\x2a\\x6f\\xbe\\x23\\x4e\\x5e\\xfb\\xb5\\xea\\x45\\xe8\\xf0\\xd3\\x97\\x3b\\xe4\\xaa\\xa2\\xaa\\xda\\xab\\x07\\x7d\\x6c\\x9b\\x25\\xbd\\x44\\x94\\x40\\x9e\\x93\\x47\\x9d\\x2d\\x15\\x07\\xf6\\x6b\\xc8\\xbe\\xf8\\x29\\x99\\xa1\\x3c\\x79\\x43\\xb4\\x72\\xb9\\xe6\\x1e\\xc2\\x9d\\xeb\\xef\\xbf\\x22\\x41\\x42\\x3e\\x0f\\xaa\\x42\\xc1\\xa3\\x38\\xa7\\xa6\\x13\\x1d\\xed\\x93\\x5b\\xa0\\x3a\\x28\\x66\\x2e\\x68\\x59\\x33\\x68\\xdd\\xe5\\x4b\\x46\\x2f\\x2a\\x5f\\xb7\\x46\\x18\\x5f\\xf5\\x50\\x3e\\x69\\xba\\x36\\xbf\\x16\\xf7\\x14\\x58\\xcd\\xd0\\x57\\xe5\\xc1\\x72\\x67\\xf6\\x74\\x98\\xd6\\x52\\x86\\x0b\\x46\\x5e\"},\n{{0xf6,0xc9,0xab,0x5e,0xa7,0x5f,0x29,0x4e,0x8e,0x0c,0x07,0xc4,0xc0,0x9e,0xd8,0xee,0xa3,0x11,0x3b,0xdf,0xc2,0xef,0x75,0x9e,0x20,0xa2,0x64,0x57,0x16,0x04,0x10,0x8d,},{0xb1,0x2f,0xf5,0x5b,0xd3,0xec,0x42,0x61,0x0e,0xac,0xea,0x28,0xb3,0x13,0xa1,0x6e,0x19,0xc9,0xe8,0xb4,0x7c,0x2b,0x15,0x17,0x09,0x91,0xbe,0x08,0x8d,0x65,0xcf,0x63,},{0xa7,0xf9,0xd0,0x8b,0xa1,0x41,0x83,0xef,0x24,0x7f,0x2c,0x25,0xfe,0xcc,0x2b,0x83,0xed,0xa6,0xde,0x58,0x02,0x2e,0x46,0x6c,0xe7,0x8f,0xcf,0x50,0xf7,0x1c,0xe2,0x61,0x62,0x44,0x65,0x62,0xee,0xa4,0x5d,0x63,0xa2,0x1c,0x3b,0x22,0x56,0x1f,0xd4,0x68,0x00,0x58,0xac,0xb8,0x25,0x40,0x7a,0x15,0x40,0x8f,0x27,0x13,0x61,0xa1,0x46,0x0f,},\"\\x71\\x62\\x3b\\x39\\x74\\x3e\\x39\\xc7\\xe0\\x86\\x38\\x80\\x6d\\x46\\x8a\\x1a\\x8a\\x6f\\x35\\xc2\\xae\\x38\\x8e\\xef\\xc2\\x73\\x74\\xbb\\x52\\x53\\x88\\x14\\xc4\\xb3\\x6c\\x9b\\x8e\\x38\\x9a\\xd8\\x31\\x83\\xde\\x02\\xa1\\xbb\\xd0\\x32\\x57\\x34\\xe4\\x61\\x87\\x54\\x09\\x23\\x37\\xd3\\xe7\\xdc\\x12\\x56\\x92\\x8e\\x35\\x28\\x87\\x0c\\xa7\\xf0\\x06\\x13\\xa2\\x5b\\x71\\xbb\\x15\\xd1\\xd9\\xea\\xaf\\xf9\\xf2\\x26\\x9b\\x71\\xc1\\x97\\x69\\xe0\\x03\\xce\\x84\\x56\\x14\\xb2\\xec\\x95\\xed\\x28\\xca\\x85\\x5b\\x52\\x21\\xd4\\xcb\\x80\\xa6\\xca\\x94\\x66\\xaa\\x33\\xe2\\x51\\x0d\\xdf\\xf7\\xdc\\xe1\\x86\\x15\\x9d\\xa7\\x0f\\xc8\\xb1\\xfb\\xac\\x12\\xa2\\x6e\\x1f\\xc0\\x94\\x22\\x76\\x89\\x2a\\xd6\\xe9\\xb0\\x03\\xf5\\x69\\x59\\xbd\\x31\\x3a\\xf2\\x89\\xe7\\xa0\\x53\\x2a\\x66\\x4b\\x76\\xb9\\x6b\\x91\\x98\\x54\\xe0\\x65\\x0c\\xb8\\xc5\\x2e\\xc4\\xc5\\xfb\\x50\\x53\\xaf\\x2f\\x0c\\xf8\\xc0\\xf2\\x2a\\x52\\x3f\\x9e\\x2c\\x64\\x19\\xdf\\x8d\\x0b\\x71\\x4e\\xe3\\x77\\x68\\x00\\xeb\\xfa\\x70\\x77\\x60\\x84\\x66\\x7d\\x6d\\xcf\\x54\\x1f\\x14\\xcf\\x16\\x62\\x62\\xe0\\xf6\\x4c\\x42\\x76\\xae\\x28\\x88\\x5e\\x6c\\xfd\\x09\\x7b\\x70\\xc0\\xd6\\x18\\x6e\\xa5\\xdb\\xd0\\x33\\x32\\x3c\\x98\\x76\\x13\\xda\\x08\\x64\\x5d\\xe0\\x72\\x08\\xba\\xe1\\x2a\\x17\\x8d\\x8f\\x7f\\x65\\x0a\\x25\\xaf\\xbd\\x70\\x1c\\x85\\xa1\\xba\\x63\\x9e\\xf9\\xf1\\x21\\xc4\\x0c\\x5c\\x12\\x9a\\x47\\x37\\x34\\x33\\x86\\xa4\\x81\\x83\\xff\\x3c\\x59\\x13\\x89\\xd8\\x9e\\xcd\\xa5\\x26\\xcf\\xfb\\x26\\x74\\xf1\\x7b\\xb1\\xc2\\x30\\x90\\x55\\x4b\\x13\\x40\\x84\\x97\\x96\\xa6\\xd4\\x44\\x46\\x0b\\xb4\\x19\\x42\\x7e\\x93\\xe6\\x58\\x5b\\x0f\\x4f\\x06\\x5a\\xd8\\x7e\\xe6\\xed\\xf5\\x4b\\xe6\\x18\\x8a\\x1d\\xd5\\xac\\xe1\\x36\\x4d\\xef\\xa5\\x61\\xf7\\x4e\\x26\\x76\\x9c\\x9b\\x29\\x1e\\xe7\\x55\\x52\\x76\\x50\\x1c\\x6a\\x49\\x08\\x0d\\xa0\\x92\\x4f\\x37\\x92\\xc2\\xa7\\x28\\xa5\\x20\\x07\\xb1\\xc0\\x7c\\x95\\x57\\x8f\\xed\\xaf\\x40\\x39\\x96\\x23\\x9e\\x9c\\x55\\xa9\\xa4\\x4c\\x3d\\xfc\\xc3\\x7c\\xdf\\x03\\xfb\\x48\\x5d\\xb5\\xa0\\x8d\\xff\\x15\\xa7\\xa4\\xf7\\xb7\\xf1\\x54\\x74\\x2e\\x84\\x31\\x56\\x4d\\xc1\\x7d\\xbd\\x43\\x2e\\x10\\x33\\x7c\\x22\\x76\\xfc\\xfd\\x9d\\x70\\xf7\\xc3\\xd5\\x70\\x39\\x3a\\x0c\\x19\\xf6\\x40\\x51\\xc7\\x3a\\x87\\x0e\\x20\\x55\\x84\\x10\\x65\\x31\\xd1\\xfd\\x2a\\x1d\\xd1\\xc9\\xd0\\xfc\\xe1\\x4f\\xfa\\xaa\\x07\\x7b\\xb7\\xe2\\x60\\x25\\x1e\\xed\\x6c\\x62\\xbc\\x6e\\xdc\\x24\\x22\\x51\\x94\\x40\\xc2\\x24\\x4e\\xba\\x38\\x40\\x46\\xb0\\xed\\xda\\xa6\\xcf\\x2c\\x1c\\x7e\\xee\\xbf\\xcd\\x78\\xfc\\xae\\x18\\xb8\\x22\\x90\\x55\\x2b\\x59\\xc0\\x46\\x3d\\xc4\\x50\\x61\\x8b\\xa6\\x7c\\x77\\x0d\\xec\\x0e\\x22\\x9b\\x84\\x60\\x93\\x6c\\xa8\\x19\\x56\\x2b\\xcb\\x36\\x96\\x9c\\x8f\\xf7\\x0b\\xf1\\x13\\xc1\\x16\\x71\\xe0\\x0b\\x94\\x13\\x55\\xbf\\x01\\xad\\x54\\xb0\\x5c\\xfe\\x2a\\x04\\x8b\\x38\\x72\\x8c\\xbd\\xd1\\xb4\\x98\\x09\\xe1\\xf2\\x07\\xac\\xa3\\x09\\x8d\\x99\\x42\\xee\\xc4\\x7d\\x6c\\x9d\\x41\\x3b\\x37\\xc9\\x14\\xfe\\xdd\\x38\\xac\\xd5\\xff\\xe4\\x96\\xca\\xc7\\x57\\xc2\\xef\\x8b\\x77\\xbd\\x84\\x03\\xd1\\x4b\\x1f\\xc9\\x8a\\x90\\x3f\\xe2\\xb9\\x79\\x46\\x82\\x33\\xa7\\xf2\\xae\\xd6\\xf8\\xd5\\x09\\xd8\\x74\\xe1\\xdc\\xe0\\x51\\x49\\xaf\\x9d\\xf3\\xfe\\x45\\x95\\xc7\\x1e\\x8b\\xc4\\x63\\xde\\xe9\\x38\\x4d\\x5e\\x05\\x05\\xd2\\xa6\\xb0\\xa2\\xb8\\xa1\\xed\\x62\\x16\\xaa\\xae\\x9d\\xcc\\x76\\x02\\x48\\x7a\\x4c\\x08\\x51\\xfd\\xf0\\x96\\x29\\xc1\\xe9\\x91\\x18\\x80\\x9a\\x95\\x44\\xa6\\x57\\x7a\\xf9\\xf9\\x15\\xd1\\xe6\\x5d\\x81\\x62\\x20\\xc4\\x8c\\x84\\x90\\xfa\\x9b\\x70\\xda\\x42\\x2a\\xd6\\x80\\x02\\x23\\xd6\\xd8\\xc3\\x40\\xf9\\xea\\xb2\\xcc\\x7e\\x14\\x93\\x62\\x12\\x4a\\x30\\x0b\\x40\\xcb\\xb8\\xc0\\xa6\\x5d\\xa3\\x01\\xdb\\xba\\x93\\x1b\\xa5\\x64\\xf3\\x59\\x73\\xca\\x8b\\xf2\\xd1\\xed\\xb5\\x6c\\x19\\x46\\x61\\x95\\x5b\\x3b\\x68\\x38\\x1f\\xa1\\x5d\\x4b\\x8d\\xc6\\xad\\xa1\\xa5\\xce\\xbd\\xa3\\xa4\\xcc\\xc5\\x51\\x23\\xe0\\x05\\x7f\\x4f\\x82\\x10\\x41\\x93\\x7d\\xd5\\x49\\x20\\x9c\\x82\\xe1\\x16\\x57\\x0b\\xc9\\x08\\xa2\\x8e\\x32\\x99\\xa9\\x44\\x14\\x43\\x49\\x8f\\x74\\xb3\\xcc\\x88\\xe1\\xa6\\x2d\"},\n{{0x43,0x10,0x3d,0xf0,0x1a,0x48,0xa0,0x3c,0x57,0xf3,0x2f,0x52,0xd7,0x0c,0x68,0x49,0xee,0x44,0x58,0x0b,0x2a,0xb4,0xee,0x72,0xd5,0x48,0xd8,0x48,0x13,0x4f,0x7c,0xeb,},{0xa3,0xcb,0xe0,0xd6,0x4b,0x05,0x60,0xbc,0xb5,0xae,0x00,0x90,0x01,0xe3,0x14,0xd9,0xec,0x90,0x79,0x01,0xdd,0x74,0xa8,0x04,0xa0,0x05,0x90,0x22,0xed,0x9c,0x6d,0x04,},{0x19,0x54,0x47,0xbe,0xb1,0xde,0x4a,0x7e,0x36,0xea,0x89,0xa6,0xce,0x3c,0x99,0xbc,0xc8,0x94,0x11,0xdf,0x5e,0x0b,0x15,0xf7,0xba,0x0b,0x1d,0x11,0x0c,0x45,0x6a,0xbc,0x6b,0x3f,0x5f,0x1d,0xa6,0x10,0x6e,0xd8,0x87,0x86,0x4b,0xa5,0x6a,0xab,0x46,0x6a,0x8a,0x63,0xb3,0x35,0xcf,0xcf,0x4c,0x64,0xd6,0x5c,0x0e,0x6f,0xb4,0x80,0xb4,0x01,},\"\\x73\\x8c\\xbf\\x06\\xd0\\x0d\\x4d\\xcd\\x5e\\x5f\\x24\\x3a\\x1c\\x18\\xdd\\x5e\\xc2\\x02\\x78\\x88\\x46\\x95\\xa1\\xcf\\x3b\\xea\\x67\\xbb\\x5b\\x05\\xdd\\x7e\\x60\\xa2\\xa2\\x4f\\xd3\\x25\\xbe\\x6b\\xf4\\x6b\\x46\\x28\\x73\\xec\\x90\\x7f\\x9d\\xe8\\x8d\\xc2\\xc7\\x62\\x62\\x0b\\x7e\\x0e\\xf7\\x27\\x65\\xd4\\xbd\\xa6\\x62\\x45\\x49\\x93\\xc8\\x28\\xa1\\x74\\x6e\\x9e\\xd8\\xd1\\x9d\\xff\\x43\\xc4\\xc4\\x85\\x27\\xac\\x84\\x5f\\x21\\x86\\xa4\\xad\\x7c\\x1d\\x99\\x2a\\x16\\x24\\x5c\\xd5\\x73\\x07\\x3e\\x09\\x40\\xdc\\xee\\xd3\\x68\\x11\\x0b\\xb5\\xfd\\x0a\\x4c\\x88\\x34\\xce\\x88\\xa7\\x71\\x25\\xb9\\x14\\x73\\x93\\xc8\\xb5\\x8c\\xb1\\x6e\\x5e\\xbd\\xc1\\x82\\x44\\xeb\\xfa\\x48\\xba\\xba\\x46\\x97\\x3f\\xdc\\xd4\\x85\\xb1\\xb2\\xe5\\xf3\\xb0\\xe7\\x09\\x92\\xcf\\x19\\x99\\x58\\x06\\x38\\xd8\\x7f\\x1f\\x5b\\x27\\xc4\\xd7\\xf9\\x1d\\xec\\xf3\\x7d\\xe2\\xe7\\x34\\xe3\\x19\\x55\\x35\\xc6\\x31\\x08\\x2b\\x3e\\xba\\xa8\\xce\\x30\\xa9\\xc2\\xc2\\xdb\\x01\\x6d\\x7d\\x35\\x47\\xe6\\x21\\x61\\x88\\x50\\xe2\\x20\\x40\\x03\\x8d\\x0f\\xe0\\xfa\\xea\\x2f\\x9b\\xf5\\x10\\xb6\\x82\\xc4\\xfd\\x14\\x75\\x0e\\x89\\xb4\\xc1\\x99\\xef\\x0c\\x99\\x05\\x00\\x54\\x3e\\xee\\xab\\x5f\\x0b\\x50\\x7a\\x31\\x31\\x99\\xc2\\xa2\\xa0\\x26\\x2d\\x6d\\x81\\x4c\\xbc\\x09\\x33\\xc5\\x92\\xe2\\x56\\xc3\\xe2\\x9d\\x52\\x4b\\x06\\x6e\\xa5\\xa4\\x54\\x33\\x61\\xa1\\x04\\x50\\xe0\\xaa\\x67\\x5c\\x61\\x40\\x8f\\x30\\x7f\\x26\\xee\\x58\\x96\\x9d\\x63\\x27\\x8f\\x13\\x5b\\x7d\\xcb\\x66\\x6b\\x93\\xf2\\xca\\xcf\\xd8\\x38\\x73\\x47\\x1e\\x97\\x4a\\x28\\x6b\\x09\\x02\\x3f\\x50\\x15\\xfa\\x1a\\xaf\\x18\\xbf\\xbf\\xa5\\xf7\\x43\\x85\\xd0\\xdf\\x6b\\x9a\\xdd\\x51\\x6f\\xfc\\x0c\\x31\\x13\\xe3\\x7e\\x09\\x78\\x38\\x64\\x6a\\xc9\\x30\\x54\\xff\\x4d\\x96\\x02\\x06\\x67\\x44\\xba\\x33\\x96\\x95\\x3f\\xd7\\x81\\x68\\x13\\x01\\x70\\xbb\\x27\\x5c\\x15\\x2b\\xdd\\x36\\x6f\\x73\\x06\\x5c\\x0a\\x7a\\xd7\\xad\\x00\\x75\\x8c\\xb9\\x9a\\x7a\\xc1\\xb7\\x80\\x9d\\x26\\xdf\\xaa\\xc7\\x58\\x46\\x82\\x01\\xee\\xb6\\x0d\\xea\\x36\\x8c\\x33\\xf2\\x57\\xaf\\xe2\\xf1\\xb4\\xc0\\x2e\\x37\\xba\\xfe\\x40\\xf5\\xd7\\xfd\\x40\\xc8\\x7d\\x1c\\x56\\xa0\\xcb\\x28\\xe9\\xd2\\x83\\x69\\xa3\\x92\\x4b\\xce\\xf8\\xb6\\xd9\\x99\\xdc\\xf4\\x29\\x4d\\xd8\\xc4\\x14\\x3d\\x75\\xc6\\xc2\\x5b\\x5a\\x45\\x44\\x48\\x8d\\xde\\x72\\x52\\x48\\xc7\\x8d\\x93\\xc1\\x5b\\x81\\x5b\\x01\\xcb\\xd0\\xf3\\x1d\\x1b\\x00\\xac\\x04\\x83\\x7e\\xf8\\x5b\\x40\\x03\\xfc\\x96\\xd4\\x45\\x7a\\xc5\\xa0\\x23\\x62\\x3e\\x67\\xb6\\x6d\\xa4\\x70\\x0a\\x08\\x59\\xf8\\x3f\\xdc\\xcd\\x3c\\x7a\\xae\\x09\\xde\\x09\\xa0\\x57\\xe0\\x0d\\xb4\\x4a\\x2a\\x6a\\xac\\xaa\\x21\\x74\\x6a\\x49\\xb8\\x22\\x46\\x89\\xa5\\xcc\\x18\\x54\\xba\\x3d\\xc4\\xaa\\x2a\\xa3\\x45\\x24\\xe7\\xa5\\xa8\\x9d\\x11\\xee\\xa3\\x56\\xaa\\xea\\x5e\\xf5\\xfb\\xf5\\x42\\xc9\\x9f\\x54\\x4d\\xb9\\x40\\xf5\\x08\\x68\\x38\\xee\\x2a\\xb2\\x18\\xb8\\xd3\\xf2\\xe1\\x07\\xd0\\xb2\\x9d\\x4b\\x04\\x83\\x0e\\xed\\x79\\xc0\\x76\\x8e\\x02\\xc2\\x84\\x4b\\x3c\\xba\\x32\\x68\\x95\\xf4\\xab\\x38\\xa3\\x99\\x4b\\x83\\xab\\x30\\x60\\x0f\\xf5\\x11\\xcc\\xb5\\x95\\x99\\x2f\\x8c\\xc0\\xd2\\x95\\x48\\x07\\x97\\x2d\\xa3\\x65\\xb0\\x6f\\xbd\\xab\\x53\\x9b\\x2e\\x03\\x59\\x8b\\x34\\xe5\\x3c\\xfc\\xf9\\x39\\x90\\xb9\\x7a\\xac\\x1d\\x32\\x97\\x83\\x36\\x6d\\x45\\x1f\\x97\\x2b\\x8d\\x8a\\x00\\xb6\\xb8\\xec\\xdb\\x37\\x27\\x96\\x44\\xce\\xc1\\x44\\x7c\\x09\\x98\\xee\\x4f\\x70\\x90\\xf3\\x4c\\x9c\\xc8\\x53\\x05\\x90\\xca\\xe7\\x65\\x36\\x0a\\xad\\xb0\\xab\\x31\\x35\\x00\\x49\\x41\\xc9\\x23\\x02\\xcb\\xb2\\xb3\\x50\\xa1\\x4e\\x8f\\x30\\xaf\\x53\\x25\\xc2\\xb4\\x38\\x00\\x5e\\x3a\\x9d\\x45\\x85\\xe6\\x32\\x65\\xc3\\x27\\xba\\x72\\x57\\x54\\xb3\\x32\\x56\\x91\\x7f\\xb9\\x65\\xae\\x9f\\x02\\xed\\x21\\x26\\xb4\\x81\\x47\\x3d\\xc0\\xe9\\x31\\xc2\\x52\\x2b\\xf0\\x0f\\xe6\\xa2\\xec\\x95\\xc7\\x92\\x24\\x7b\\x1e\\x03\\x39\\x61\\x12\\xf7\\x83\\x07\\x0e\\x2f\\xe6\\xc2\\xcb\\x98\\x22\\x50\\xd1\\x3f\\x2d\\x54\\x60\\xc7\\x44\\xfd\\xe4\\x53\\x23\\xe6\\x31\\xcc\\xcb\\x54\\x0c\\xd7\\x25\\xf2\\xc5\\x5a\\x70\\x58\\xf2\\x30\\xe8\\x2b\\x79\\xf3\\x66\\xaf\\xcb\\xb0\\x25\\xb4\\x92\\x55\\x43\\x95\"},\n{{0xf9,0x13,0x9e,0x57,0x9f,0xa9,0x6e,0xbd,0x62,0x87,0xdb,0x3b,0xab,0xcd,0xa6,0x0f,0x92,0xe7,0x31,0x53,0x56,0x6f,0x92,0x4c,0xb5,0xde,0x04,0xde,0x44,0x93,0x48,0x1e,},{0xc0,0x6c,0xe3,0x35,0x53,0x3a,0xf8,0xd8,0xf3,0x37,0xf2,0xb3,0x8e,0x0a,0xaf,0xa2,0xce,0x9b,0x27,0x22,0x3c,0xd9,0xdd,0xc5,0xef,0x32,0x02,0x7f,0x04,0x88,0x9b,0x7f,},{0x05,0x1d,0x8d,0x7f,0x0b,0x68,0xd2,0xee,0xc7,0x2c,0x81,0xad,0xfc,0xfb,0x31,0xae,0x85,0x58,0xf6,0x0a,0xb6,0x3c,0x9f,0x56,0x52,0xa8,0xdf,0x63,0x8f,0x66,0x6f,0x1e,0xbc,0x0c,0x6e,0x0b,0x41,0x19,0x53,0xbc,0xda,0x6b,0x51,0x51,0xb2,0xb9,0x3a,0x39,0xe3,0xc5,0x33,0x0a,0x85,0x73,0xe1,0x68,0x79,0x22,0x72,0xab,0xd3,0x6c,0x81,0x0a,},\"\\xb3\\x30\\x76\\x4d\\xdc\\x62\\x8e\\x4a\\xd6\\x7a\\xa4\\x98\\x2a\\xe8\\x6d\\x45\\x81\\x07\\x1c\\x19\\x3e\\xc3\\xc5\\x8f\\x81\\x3d\\x79\\x21\\xb8\\x4d\\x2a\\x54\\x56\\x2b\\xd8\\x74\\x17\\xae\\x1d\\xe5\\x90\\xa1\\xa4\\x8c\\x4e\\xc7\\xd5\\x56\\xad\\x93\\x1d\\x65\\xc0\\x54\\x3f\\xdf\\x06\\x07\\xc7\\x49\\x85\\x9e\\xe1\\x2f\\x99\\x52\\x02\\x0c\\x19\\x5c\\xf8\\x74\\x60\\x95\\xe1\\x08\\x7c\\xc6\\xc3\\xc8\\xef\\x9d\\x24\\x05\\x25\\x60\\xce\\x81\\x3d\\x61\\x39\\xb7\\xa7\\x5c\\x8f\\x4b\\x8e\\xa3\\x0a\\x9c\\x4a\\xb8\\x88\\xd0\\xa6\\x34\\x1c\\x99\\xab\\xd3\\x5e\\x09\\x03\\xbf\\xe5\\x6c\\x93\\x15\\x23\\x40\\xc4\\x12\\x76\\xd7\\xf2\\x4e\\x09\\x12\\xb1\\x2a\\x4d\\xb3\\xd7\\xee\\x44\\x84\\xdf\\xa5\\x3a\\xfc\\x0b\\x1a\\xea\\x14\\x09\\xd1\\xe0\\x32\\x8a\\xa1\\xc8\\x60\\x41\\x27\\xca\\x2e\\xb1\\xa5\\xe8\\x1b\\xf3\\x1f\\x8c\\x7a\\x51\\xc6\\x05\\x2c\\x53\\x4e\\xfe\\x6b\\x3d\\x0e\\xe7\\x4f\\xf5\\xa9\\xb1\\x1c\\x61\\x57\\xe3\\x64\\x77\\xef\\xa9\\x38\\x2f\\x57\\x51\\xbe\\x8c\\x8c\\x64\\x54\\xc4\\x46\\xd6\\xf8\\xdc\\x7e\\x92\\x95\\x25\\xcc\\x3d\\xe7\\x8c\\xb1\\xba\\x4a\\xba\\x9b\\xd4\\xbe\\x15\\x26\\x10\\x43\\x75\\x82\\xc9\\x65\\xee\\xa4\\x8c\\xbd\\x4c\\xaa\\x6f\\x30\\x8f\\x85\\xf4\\xf8\\xd0\\x06\\xa0\\x42\\xf6\\x19\\x20\\x07\\x62\\xe1\\xbb\\x9b\\xa4\\x22\\xe6\\x54\\x75\\xb3\\x3a\\x94\\x94\\x29\\x8c\\xfb\\xb7\\x5a\\x15\\x2b\\x36\\xd2\\xa0\\x55\\x01\\x80\\x77\\x05\\xb9\\x52\\x76\\x53\\x50\\xcd\\x14\\x14\\x1d\\x35\\xd4\\x98\\x66\\x92\\xd6\\xc3\\xbc\\xfc\\x6d\\x61\\xdf\\x00\\x52\\xa6\\x20\\xaa\\xb8\\xcc\\x13\\x20\\x5e\\x75\\x4c\\x16\\xf9\\x3e\\xca\\x79\\x20\\xbb\\xea\\x51\\x57\\xef\\x11\\x2f\\x0b\\x64\\xc1\\x05\\x4f\\x90\\xa5\\xdd\\xc1\\x75\\xa8\\x9e\\x29\\x24\\x2f\\x57\\x64\\x6e\\x74\\xcc\\x88\\x5e\\x81\\xa1\\xcc\\x14\\x4c\\x3d\\x78\\x2d\\x11\\x52\\xa9\\xe4\\xcf\\xe7\\x6c\\xb3\\xff\\xab\\xe7\\xdb\\xe6\\x03\\xfb\\x38\\x69\\xec\\xa8\\x69\\x96\\x98\\x70\\x9c\\xc8\\x7f\\xc9\\x61\\xc1\\xe2\\x99\\xcf\\xca\\x22\\xe3\\x24\\x2e\\xae\\x78\\x8c\\xff\\x11\\xbf\\xca\\x61\\x02\\x67\\x45\\xf4\\x97\\x62\\x25\\xb2\\x6e\\xe2\\x00\\xc4\\xf1\\x91\\x0c\\x4b\\x83\\xdf\\x5c\\xe4\\x6e\\xf4\\x87\\xd7\\x48\\xd9\\xc4\\xc5\\x02\\x14\\x1b\\x78\\x74\\xca\\xf4\\x1e\\x5a\\x29\\x7b\\x24\\x8c\\x2b\\xac\\x69\\x90\\xa1\\x5b\\x07\\xb4\\xcf\\x81\\x0e\\x59\\x28\\x74\\x42\\xd9\\xa3\\x69\\x6c\\x02\\xe8\\xd7\\x32\\x4d\\x3c\\xf7\\x30\\xdd\\xa5\\x40\\x53\\x6b\\xeb\\x13\\xcf\\xde\\xae\\x61\\x80\\xdd\\x74\\x84\\x83\\x2d\\xfa\\x94\\xe9\\x4a\\xa6\\xcb\\xa1\\x17\\xaa\\xe1\\x72\\x70\\xf4\\x8f\\x93\\xb2\\xf9\\x8a\\xe9\\x58\\x17\\x18\\x16\\x3f\\x44\\x63\\x54\\x6c\\x0a\\xe0\\xf2\\x79\\xc3\\x6b\\x92\\xbe\\xe6\\x6f\\x1c\\xa2\\xd6\\xa4\\xf7\\x26\\xd2\\xdf\\xee\\x0b\\xc1\\x1c\\x1d\\x8a\\x1f\\xa6\\x2c\\x3c\\xc8\\xab\\xa2\\x66\\xb9\\x87\\x59\\x28\\x6c\\x10\\x68\\x48\\x3b\\x23\\x76\\xb4\\x03\\xc8\\x87\\xfb\\xb6\\x57\\xdc\\x0f\\x25\\x5d\\xea\\x90\\xdb\\xd2\\x33\\x08\\xf7\\xe0\\xe8\\x42\\xb4\\x98\\xa8\\xdf\\xc7\\xc9\\xcd\\x5a\\xef\\x0e\\x87\\xd5\\x6b\\xe4\\x0d\\x50\\xfc\\x1d\\xd4\\xc0\\xaa\\x7d\\xee\\x55\\xae\\xbe\\x4d\\x6b\\x6a\\x52\\x05\\x39\\x62\\xb8\\x7b\\x0f\\x2e\\xe0\\x9a\\x90\\x81\\x61\\x55\\x33\\x3d\\x5c\\x57\\xa1\\x47\\x24\\xe0\\x01\\xbc\\x3d\\xed\\x17\\x84\\x3b\\x76\\xe2\\xc4\\x7a\\x17\\x63\\x39\\xc8\\xde\\xfc\\x54\\xb5\\x5b\\x23\\x58\\xae\\x7d\\x01\\xb0\\xf6\\xe0\\x8f\\x31\\x21\\x6a\\xe9\\x03\\x40\\x69\\x41\\x68\\xa5\\xa7\\x9e\\xe8\\x83\\xea\\x78\\x58\\x00\\x7d\\x17\\xc3\\x73\\x59\\xc9\\x9d\\x65\\x97\\xef\\xe4\\x60\\xc1\\xa2\\xf7\\x73\\x8a\\xc3\\x2c\\x5e\\xb5\\xe3\\x9e\\x50\\x0c\\x49\\xc0\\xdf\\xf9\\xc4\\x65\\x9e\\x8c\\x50\\xcc\\x5c\\xa7\\x9d\\x8b\\xa4\\xe5\\x97\\x2d\\x67\\x22\\x54\\x68\\xfb\\xa6\\x41\\x67\\xa6\\xb2\\xc6\\xf3\\x68\\x93\\x5c\\x7a\\x04\\x9d\\x35\\xd3\\x55\\xc7\\x67\\x25\\x20\\xd3\\xc9\\xe4\\xe4\\x3c\\x67\\x1c\\x3c\\xb8\\xde\\xe2\\x59\\x04\\x74\\x95\\xde\\x0f\\x56\\xdd\\x71\\x91\\xd5\\xbd\\x4b\\xbd\\x29\\x51\\x7e\\x36\\x47\\x92\\xff\\x89\\xd3\\x37\\x99\\xb6\\xe7\\x81\\xc2\\x01\\x93\\xf5\\xa3\\x16\\xfb\\x40\\xde\\x74\\xfe\\xe2\\xac\\xc2\\x5e\\x47\\xf5\\x12\\x21\\x4d\\xe3\\xb1\\xe9\\xb3\\x82\\xa8\\x69\\x29\\xc1\\x57\\x3d\\x37\\x24\\xc2\\x50\\x17\\xc0\\xe5\"},\n{{0xc8,0xee,0x95,0x4d,0xb5,0xa1,0x1b,0x29,0x2e,0xd9,0x77,0x64,0xfa,0xe6,0xb2,0x83,0x05,0x1d,0xb5,0x7d,0xcd,0xc0,0xaa,0x0d,0xf5,0x39,0x3b,0xb6,0x0c,0x11,0x2e,0xd3,},{0x5c,0x2f,0x81,0x82,0x4e,0x99,0x75,0xdd,0x7e,0xa3,0x53,0xbc,0x66,0x80,0x7d,0xed,0xc7,0x61,0x03,0x49,0x79,0x4e,0x2f,0xc0,0x8e,0x5a,0x31,0xe0,0x02,0xe3,0xfe,0x07,},{0xf3,0x07,0x7a,0x75,0x10,0x1e,0x12,0x1e,0x5c,0x3e,0x77,0xd8,0xed,0x97,0xb5,0x78,0xd2,0x39,0xbd,0x42,0x18,0x03,0xd3,0x45,0x5b,0x56,0x54,0x40,0x5a,0x4c,0x58,0x6a,0x60,0x92,0xe1,0x3a,0x85,0x29,0xba,0xce,0x46,0x8a,0x30,0x57,0x84,0xb3,0x73,0xe4,0x33,0xfe,0xe4,0xa3,0xdf,0x89,0x56,0xbe,0xfa,0x01,0x2f,0xd8,0xa8,0xee,0xd1,0x0c,},\"\\x7b\\xa3\\xfb\\x56\\x83\\x15\\xaa\\x81\\xe2\\x1f\\x19\\x77\\x80\\xed\\xc2\\xc6\\xea\\x26\\xd8\\xd0\\x6a\\x43\\x78\\x91\\x2f\\xca\\x23\\x01\\xcf\\x1e\\xab\\x3d\\x80\\x3c\\x84\\x69\\xde\\xdd\\xf3\\x76\\x70\\x3d\\xdb\\x7c\\xe0\\x6a\\x77\\xda\\xb2\\x0e\\x02\\x34\\x4f\\xad\\xcc\\x50\\x02\\x2a\\xb3\\xc7\\x13\\xcd\\x03\\xc1\\xda\\xa9\\x3f\\x1c\\x7e\\xa5\\x72\\x62\\x9f\\x61\\x0b\\x5e\\x3c\\x51\\x41\\x1b\\xb8\\xc1\\x96\\x94\\xbb\\xce\\x90\\x3c\\xac\\x47\\x05\\xf9\\xb5\\xdd\\x0f\\x47\\xbc\\x5d\\x0a\\xa3\\x25\\x3f\\x90\\x88\\x70\\x29\\x90\\x27\\xff\\xbd\\x34\\x49\\xee\\xba\\xd4\\x53\\x32\\xb5\\xd0\\xc4\\xf5\\x33\\xdb\\xed\\x18\\xa9\\x9a\\x24\\x98\\xb9\\x16\\x4e\\x24\\x5f\\xb6\\x5c\\x0a\\xfa\\x0b\\x05\\x37\\x03\\xa0\\xcf\\x95\\x94\\x0a\\xc7\\xa0\\x19\\x5d\\x4f\\x70\\x46\\x60\\x9c\\xf0\\x43\\x71\\x33\\x87\\x06\\xb9\\xb1\\x98\\x6c\\x0f\\x11\\x81\\x75\\xd2\\xcd\\xfc\\xe7\\x4a\\x6f\\x88\\x65\\x98\\x25\\x85\\x4e\\x94\\xec\\xe5\\x8f\\x51\\x57\\x63\\x6d\\x62\\x35\\xb7\\x6d\\x32\\x74\\x5a\\x2a\\x81\\xa9\\x67\\x1a\\x8f\\x86\\x02\\x7b\\xa9\\xe0\\x17\\x63\\x88\\x8f\\xc1\\x71\\xce\\xf7\\xc4\\x51\\xc3\\x60\\x72\\xbc\\x74\\x99\\x83\\x9d\\x43\\x1c\\xf1\\x8c\\xd7\\xc6\\xc9\\xfb\\xa3\\xaa\\x71\\x2a\\x05\\x43\\x28\\xcc\\xd6\\x2b\\xe4\\x82\\x0a\\xbd\\x5e\\x78\\x21\\x62\\x76\\x46\\x11\\xd4\\x53\\x9b\\xa2\\xce\\xbd\\xc2\\x09\\xb3\\xf4\\xe4\\xb6\\x9c\\x3d\\x64\\x07\\x3e\\x92\\x0d\\x21\\x52\\x14\\xfb\\x0f\\xda\\x44\\x18\\x5a\\xad\\xa5\\xc3\\x61\\x27\\xa1\\x5b\\xa1\\x5c\\xa2\\x8a\\x3a\\xd0\\x86\\xe9\\xd0\\x33\\x66\\x86\\x9c\\x60\\xc3\\xfb\\xce\\xbd\\x86\\x9d\\x2e\\x40\\x64\\x3e\\x83\\x3f\\x89\\x48\\x03\\xf9\\x80\\xa2\\xda\\x7e\\xa4\\xe5\\x9c\\xe4\\xd7\\xc0\\x6f\\xd2\\xaf\\xf0\\x87\\xee\\x7b\\xcf\\xdd\\xaa\\x3b\\x32\\x81\\x7c\\xe6\\x3a\\x63\\x58\\x7d\\xba\\xfe\\xf3\\x80\\x01\\x3a\\x6f\\x1e\\xe3\\x73\\x4b\\x94\\xca\\x3d\\xf9\\x64\\x4d\\xd0\\x43\\x43\\x02\\xec\\xb3\\x24\\xaf\\xe3\\x5f\\x46\\x5c\\x9c\\x1c\\x93\\x1b\\x27\\x29\\x4f\\xc6\\xee\\x02\\x72\\xde\\x22\\x42\\xae\\x90\\xd7\\xf2\\xe0\\x67\\x02\\x7e\\xf8\\x64\\x2e\\x8f\\x17\\x1e\\xd8\\x80\\xff\\xab\\xce\\x8a\\x20\\xa1\\xb3\\xe3\\x39\\xad\\x4e\\x3f\\x1a\\x90\\x01\\xf2\\x0f\\x90\\x02\\x61\\x88\\xfd\\xe3\\x4b\\x21\\x7a\\x6e\\x26\\xaa\\xff\\x18\\x42\\x2b\\x7f\\x84\\x3d\\x0f\\xdd\\xa3\\x21\\xc3\\x19\\xc7\\x78\\xf2\\x31\\x37\\xf2\\x0c\\xcc\\x1b\\xda\\x18\\x90\\xe5\\xbc\\x91\\x6a\\x54\\x56\\xd0\\x68\\xd3\\x7b\\x5a\\xcc\\x63\\x47\\x72\\x0c\\x56\\xa5\\xa4\\x91\\xbc\\x34\\x8d\\x6c\\x84\\x8a\\x9c\\x8f\\xec\\xfe\\x58\\xc9\\x2b\\x1f\\x30\\x2f\\xe1\\x49\\x19\\x71\\x8c\\xd5\\xe7\\x8b\\x7f\\xd6\\x01\\xd0\\x9d\\xc0\\x1e\\x69\\x04\\x86\\x1e\\x8d\\x68\\xb3\\xc5\\x75\\x35\\xb6\\x13\\x66\\x76\\xcb\\xc6\\xe8\\x39\\xaf\\x0d\\xd7\\x39\\xdb\\x89\\xa7\\xab\\xd9\\x13\\xfd\\xf6\\xb0\\x0e\\x9c\\xa0\\x26\\x02\\xde\\x6c\\xa0\\xaf\\xd0\\x91\\x3d\\x99\\x2f\\xba\\xa8\\xff\\x82\\x2b\\x9d\\x9b\\x09\\xdd\\xa7\\xa2\\x9b\\xe9\\x19\\x10\\xd8\\xfa\\x3c\\xaa\\x2a\\x5e\\x51\\x83\\x46\\xc1\\x67\\xc9\\xf5\\x19\\x41\\xcf\\x73\\x53\\xf3\\xf3\\x4c\\x1d\\xab\\x33\\x48\\x5d\\x0a\\x8c\\x19\\xda\\xf9\\x51\\xfd\\x3e\\xf2\\x0d\\x0b\\x11\\x9d\\x80\\x38\\xdf\\x90\\xc1\\x14\\xa2\\x5a\\x5b\\x93\\xae\\x40\\xec\\x44\\xb9\\xa5\\xd2\\xbc\\x1c\\x65\\x17\\xc6\\x82\\x50\\x0d\\x4c\\xdc\\x19\\x71\\x42\\xbe\\xc3\\xaf\\x82\\x32\\xc0\\x71\\x42\\x8d\\xc5\\x4c\\x0d\\x30\\x45\\x42\\x72\\xe7\\x33\\x6b\\x0b\\x58\\x88\\xa6\\xe8\\xfe\\xcd\\xe8\\x59\\xe2\\xac\\xcb\\x7f\\xb0\\x94\\xac\\xc5\\x4f\\xfa\\x48\\x1f\\x76\\x23\\xd9\\x44\\x69\\x1f\\x04\\xfb\\x36\\x13\\xa9\\x95\\x49\\x80\\xf1\\x7e\\x2a\\xd2\\x17\\x3d\\x68\\xcf\\x0e\\xc1\\xb6\\x7d\\x8a\\x91\\xd6\\xec\\x82\\x94\\x6b\\xcf\\x05\\xcb\\x90\\x68\\x1a\\x71\\x62\\x7b\\x59\\x02\\x38\\x33\\x4e\\x3d\\x5a\\xb9\\xda\\x6a\\x08\\x9b\\xd7\\x26\\x24\\xdf\\x90\\x74\\xcd\\xd2\\x30\\x9e\\x04\\xdf\\xca\\xe0\\x32\\x81\\x2f\\xe8\\x4f\\x9d\\xb8\\x82\\xcd\\xea\\xae\\x69\\xee\\x5d\\xaa\\x5a\\x66\\xff\\x42\\x7f\\xc4\\x52\\xed\\xd0\\x76\\x9b\\x6a\\xab\\xcc\\x13\\x9d\\x0f\\x70\\xaf\\x8b\\x97\\x43\\x0e\\x64\\x4f\\x58\\xa4\\x12\\x87\\xa9\\x3f\\x63\\x1d\\xed\\xa8\\x2c\\xa0\\x71\\x6d\\x79\\x75\\x4c\\x5c\\x50\\x3e\\x52\\xa6\\x65\\xda\"},\n{{0x6d,0xbc,0x55,0x9e,0x4a,0xb1,0x93,0xee,0xbf,0x70,0xc5,0xc3,0x2d,0x79,0x7b,0xe0,0x0b,0x73,0x11,0xe8,0xe6,0x69,0x1d,0xa9,0xaf,0xcc,0x18,0x72,0x91,0xf2,0x50,0x1c,},{0x38,0xa7,0x03,0x44,0x76,0xfb,0x93,0x82,0xf1,0x41,0x77,0x68,0xc4,0x21,0x62,0x95,0x1a,0x26,0x36,0x90,0x2c,0x38,0x98,0xc0,0x29,0xbe,0x27,0x8a,0xb4,0xc3,0x1f,0x31,},{0x31,0xf1,0x6a,0x7c,0xaf,0x2b,0x74,0xf6,0x5e,0x05,0x7c,0x93,0x33,0xa1,0xa2,0x63,0x3d,0xac,0x73,0x46,0x33,0x8f,0x79,0x85,0x10,0x73,0x0e,0xb8,0xd5,0xd3,0x25,0xfc,0x10,0x80,0xdd,0x5a,0xad,0x5f,0xce,0x05,0x34,0xe9,0x54,0x3f,0x3c,0x93,0x58,0x68,0x04,0x46,0x4a,0xf5,0x88,0x6e,0x86,0x44,0x12,0x9c,0x77,0xeb,0xaa,0x48,0x5f,0x01,},\"\\x88\\xee\\x23\\x65\\xf7\\xcf\\x9d\\xe3\\x3a\\xcd\\x53\\x56\\x49\\x68\\xb2\\xdc\\x7f\\x73\\x70\\xb7\\xe7\\x03\\x3f\\x4c\\x66\\x3a\\x88\\xc2\\x5f\\x60\\xf7\\xf7\\x11\\xd6\\x19\\x08\\xeb\\xf1\\xf5\\xbb\\x72\\x83\\x55\\x53\\xc8\\xaa\\x8c\\x8e\\x4f\\xcd\\xec\\xd3\\x79\\x78\\x23\\x82\\x89\\xbf\\x6c\\xa8\\x48\\x76\\xd2\\x28\\x21\\x7a\\x28\\xd8\\x1b\\x0b\\x45\\x7c\\x92\\x2e\\x91\\xec\\xba\\x8d\\x3e\\x1d\\x2e\\x66\\x59\\xc2\\xb0\\xae\\xa0\\x51\\xb9\\xc2\\xe0\\x9c\\x7d\\xfe\\xb5\\x1d\\x30\\xed\\xe7\\x67\\x57\\x03\\x41\\xff\\xac\\x1e\\xcf\\x0d\\xe2\\x0c\\x82\\xd1\\xe9\\xed\\x07\\x75\\xde\\xac\\x72\\xda\\x7c\\x2d\\xec\\x23\\x48\\x65\\xde\\xc8\\x3f\\x67\\x15\\xe1\\xc3\\xc5\\x9d\\xe2\\x03\\x3c\\xc2\\x4d\\x86\\xbc\\x2d\\x31\\xaa\\x16\\x64\\x96\\x86\\xed\\xe0\\xdb\\xbd\\x89\\x64\\xc3\\xa6\\x4a\\x3d\\xca\\x55\\x88\\xd7\\x24\\x8b\\x1f\\x24\\xdf\\x8d\\x75\\xf0\\x9a\\xac\\x62\\xc0\\x78\\x28\\xca\\x43\\x1a\\x3a\\x2d\\x77\\xa6\\x0c\\xc9\\x3c\\xfa\\x34\\x95\\xca\\xbe\\xb1\\x90\\x4e\\xd5\\xb5\\x63\\x98\\x4e\\x8c\\x20\\x77\\x7b\\xac\\x87\\x74\\x10\\x8a\\x64\\xed\\xa5\\x8f\\xb3\\x20\\x24\\x4a\\x3a\\xdd\\x3e\\x3e\\x7a\\x76\\xcd\\x13\\x7c\\xfa\\x4a\\x09\\xb6\\xe6\\xe9\\x30\\x11\\xea\\x0a\\xe6\\x51\\x71\\xaf\\x13\\x07\\x11\\x76\\x6c\\xd2\\x5b\\x3c\\x74\\xec\\x54\\xc0\\xbd\\xfa\\x02\\xb3\\x12\\x0a\\xc2\\x90\\x87\\xeb\\xac\\x98\\x37\\xfc\\xa6\\x5b\\xa9\\x71\\xbc\\x42\\x81\\xdd\\x55\\x7c\\x50\\x0e\\x22\\x5e\\xa6\\x6c\\x3c\\x3f\\xd5\\x22\\x06\\xc1\\x9a\\x9f\\x93\\x95\\x46\\x31\\x69\\xf8\\xc7\\xa8\\x46\\xbd\\x9f\\x83\\x4d\\x7f\\x33\\x7d\\x0b\\x61\\xfb\\x30\\xbc\\xe2\\x94\\xf4\\x78\\xae\\x1f\\x1d\\x97\\x7e\\x45\\x4e\\x43\\x3e\\xe8\\x72\\x9f\\xb0\\x65\\xcc\\xe0\\x3f\\xb2\\xe4\\x35\\xdc\\xbc\\xbf\\xba\\x01\\x53\\x7e\\x7a\\x67\\x62\\xe5\\x5e\\x7e\\xd2\\x25\\x28\\x30\\x37\\x04\\xbe\\xb5\\xae\\x38\\x1f\\x2e\\x18\\x10\\x56\\xf2\\x51\\x33\\x27\\x3c\\xf1\\x7d\\xdf\\x2b\\x06\\xe2\\xd9\\x47\\x7f\\x2c\\x09\\x75\\x5f\\xc8\\xd9\\xc7\\x3c\\xb3\\x31\\x00\\x46\\x8c\\x64\\x13\\x1c\\x68\\x6c\\xac\\x79\\xfd\\x38\\x45\\x01\\xe5\\x0f\\x8b\\x0b\\xee\\x28\\xba\\x39\\x58\\x3f\\x42\\xe4\\xfd\\x37\\x99\\xe2\\x4f\\x60\\xda\\x5f\\xd3\\xc7\\x79\\xaa\\xbf\\x69\\x9f\\xfd\\x23\\x21\\xed\\x04\\x5a\\x85\\xbc\\x64\\x24\\xf6\\x0f\\xdc\\xc4\\x9c\\x1c\\xb3\\x1f\\x24\\x9a\\x42\\x36\\xc0\\x94\\x91\\x76\\x81\\x81\\xb9\\x21\\xf5\\x86\\x02\\xfd\\x41\\x5c\\x1e\\xde\\xb2\\x6f\\x39\\x32\\x4a\\xdd\\xff\\x14\\x77\\x13\\x24\\x73\\x7c\\x67\\x20\\xcc\\x92\\x39\\x1b\\x94\\x9d\\xcb\\x42\\x12\\xbd\\x69\\x31\\xd4\\xde\\x51\\x40\\x1e\\x7f\\x95\\x3b\\x7b\\x03\\x6b\\x22\\x3f\\x0a\\xf7\\xa8\\xe4\\x08\\xb0\\x4e\\xa6\\x35\\xa2\\x3f\\xa0\\x70\\x9b\\xa0\\x42\\xa5\\xd9\\x92\\x95\\x4c\\x09\\xd8\\x58\\x1d\\xcc\\xcf\\x52\\x56\\x8a\\xd2\\x7a\\x1c\\xc7\\x1d\\x18\\xaa\\x27\\x40\\xf6\\x21\\x21\\x2e\\x7f\\x4c\\x5e\\x5e\\x5e\\x5e\\x45\\x32\\xd9\\xa6\\x7e\\xc2\\x77\\x3a\\xc2\\x1c\\x8a\\x4b\\x00\\x2d\\x65\\x24\\xf6\\x18\\x2d\\xd3\\x71\\x73\\x5d\\x2c\\x2a\\xbe\\x6c\\x95\\xc2\\x81\\xc6\\xfb\\x1e\\x97\\x6b\\xc1\\x7e\\x38\\x3f\\xd5\\x2a\\xea\\xaa\\x9f\\xbd\\x4a\\xbb\\x82\\xa2\\xcc\\x65\\x39\\x5f\\x8c\\x2c\\xc7\\xd8\\x18\\x2a\\x0d\\x25\\x0c\\x68\\x5c\\xfc\\xba\\x93\\xa9\\x51\\xee\\x7c\\x50\\x3c\\x6e\\x3e\\xec\\x23\\x6c\\xe3\\x3e\\x08\\x6c\\x61\\x07\\x28\\x73\\x7c\\x1c\\x3b\\x3a\\x24\\x25\\x2d\\xa7\\xf2\\x16\\x72\\xd9\\x28\\xeb\\xda\\x99\\x3a\\x94\\xc4\\x58\\xab\\x99\\x0f\\x5d\\x19\\xd8\\x00\\x23\\xc3\\x6a\\xa1\\x6e\\xaf\\xca\\xb1\\x43\\xf3\\x52\\xe9\\x7d\\x64\\x09\\xf3\\x24\\x99\\x41\\x11\\x9b\\xfd\\x9f\\x5f\\x90\\x84\\x72\\x4d\\x9e\\xba\\xd3\\x83\\xb1\\x0f\\x34\\xd3\\x3a\\xc8\\x30\\xcc\\xe9\\xe5\\xcb\\x8a\\xec\\xee\\x6f\\x40\\x30\\x1c\\xbb\\xe3\\x09\\xfd\\x06\\x15\\x34\\xa7\\xd0\\xc3\\xed\\xaa\\xea\\x02\\xa1\\x71\\xd8\\xb2\\x34\\x9d\\xbe\\xec\\x62\\x85\\x20\\xac\\x33\\x4a\\x5b\\xfe\\x28\\xa9\\xd5\\xf4\\xc0\\xd7\\x40\\xf7\\xc7\\x2d\\x4d\\x72\\xd8\\x9a\\x97\\x32\\x6a\\x03\\x00\\x2d\\x1e\\xf3\\x85\\x22\\xbc\\xd3\\x7b\\x42\\x84\\x7a\\x31\\x4b\\xd8\\x43\\xec\\x88\\xd1\\xf2\\xf9\\xd3\\x9f\\x57\\xf2\\xf1\\xa1\\x3d\\x01\\x40\\xa8\\x84\\x74\\x50\\x44\\x8c\\x88\\x0b\\x3a\\xe7\\x65\\x31\\xe9\\x5c\\x43\\x92\\x97\\x32\\x50\"},\n{{0xc9,0xd4,0x16,0x83,0x0a,0xe2,0x02,0x8f,0x21,0x75,0xd2,0x2b,0x61,0x4c,0x79,0x19,0x8c,0x67,0x0c,0xfa,0xa0,0xe7,0xa3,0x61,0x50,0xef,0x0f,0xee,0x21,0xa9,0x5c,0xe6,},{0x6e,0x3e,0xb4,0xd0,0x18,0x73,0x07,0x2d,0xf9,0x46,0xf1,0x79,0x2f,0x71,0x06,0x33,0x08,0x95,0xe7,0xa7,0x6d,0xd9,0xae,0x27,0xf8,0xa9,0x88,0x03,0x94,0x90,0xfd,0x4b,},{0x47,0xfa,0xad,0x4e,0x65,0x52,0x93,0xed,0xa1,0x56,0xb2,0xa1,0xfa,0xbb,0xfb,0x7e,0x00,0x9f,0xc2,0x90,0xaa,0xfe,0xdb,0xd5,0x65,0x21,0x14,0xa4,0x78,0x53,0xbc,0x77,0xa8,0x23,0x3a,0x2b,0x17,0x9f,0x60,0x54,0x77,0xd7,0x87,0x87,0x8c,0xbb,0x15,0xea,0x61,0x24,0xdf,0x8d,0xc5,0x7b,0x2c,0xe7,0xbe,0x7d,0x18,0xb7,0x16,0x2f,0xb5,0x0d,},\"\\xff\\x9a\\xd4\\x83\\x7c\\xd0\\xbb\\x77\\xd6\\x21\\x0f\\xdd\\xdc\\x75\\x5e\\x6c\\x0f\\x1a\\x73\\xc2\\xbc\\xd0\\x3f\\x7a\\x58\\x69\\xe7\\x34\\x2c\\xfd\\x73\\xcf\\x70\\x86\\xf8\\x65\\x56\\x15\\x60\\x27\\x7b\\xf6\\xc3\\x42\\x1a\\x91\\x2d\\x67\\x65\\x8b\\x1f\\xa9\\x70\\x57\\xc4\\x96\\xf4\\xbe\\x8e\\xdc\\xbe\\x18\\xb5\\xec\\xd0\\x8a\\x1e\\x7d\\xb2\\x52\\x23\\xab\\xda\\x20\\x8f\\xa5\\x31\\xf4\\xb2\\x80\\xaa\\x03\\xb0\\x4b\\x60\\x60\\x34\\x11\\xd3\\x74\\xba\\x7c\\xbb\\x02\\x0b\\xb9\\xa8\\xce\\x4c\\x0e\\x45\\xa7\\xe1\\x32\\x14\\x48\\x43\\xc3\\x1f\\x8b\\x45\\xc5\\x8e\\xb3\\xea\\x85\\x3c\\x2c\\xeb\\x61\\x37\\x6e\\x9d\\xf8\\x1d\\x97\\x78\\xe7\\x21\\xad\\xac\\x77\\xb5\\x03\\x54\\x93\\x7f\\x34\\x37\\x2f\\xcc\\xd5\\x75\\xe8\\x8d\\x9d\\x05\\x8e\\x43\\xdf\\x94\\x2f\\x2c\\x43\\xb5\\x23\\xc8\\x09\\x8e\\x6d\\xd9\\xe6\\xbd\\x21\\xd5\\xa6\\x49\\xb4\\x72\\xd4\\x1e\\x34\\x5f\\xcd\\x5e\\xfd\\xdd\\x49\\xea\\xb3\\x02\\x70\\xcd\\x87\\x88\\x40\\x4f\\x28\\x51\\x6e\\x09\\xd3\\xac\\xc4\\x00\\x48\\xb3\\x9d\\x32\\x46\\xf7\\x57\\xe4\\x82\\xe1\\x45\\x9c\\x62\\x6b\\x79\\x9e\\x04\\xd0\\x67\\x27\\x13\\x73\\x71\\xe1\\x20\\xaf\\xb9\\xfe\\xc3\\x9a\\x25\\xf4\\xe6\\x76\\x4b\\xf9\\x79\\x2f\\xe4\\x92\\xee\\x0f\\x21\\x0b\\x57\\xdb\\x9e\\xbb\\x9e\\x8e\\xf4\\x1b\\x02\\xc7\\xfe\\xe9\\xed\\xd4\\xb6\\x17\\x4c\\x57\\x0d\\xe0\\x20\\xa3\\x91\\x28\\x71\\x33\\xfe\\x8c\\xcb\\x41\\xa8\\x3f\\x91\\xbd\\x22\\x38\\x2b\\x21\\xe1\\xd7\\xeb\\xc2\\xc7\\xe5\\x01\\x8e\\xf5\\x14\\x2d\\x82\\x63\\x7d\\x02\\x62\\x0f\\xbc\\x05\\x69\\xcc\\x09\\xc4\\x4e\\x91\\x11\\x12\\xbb\\xae\\x99\\x06\\x4d\\x68\\xd1\\xc6\\x9e\\x77\\xc9\\x93\\x0b\\x0d\\xe0\\x30\\xc8\\xc1\\xd7\\x48\\xc4\\x14\\x05\\x9d\\x5e\\x29\\x9b\\x7e\\xdc\\x08\\x94\\x06\\x51\\x89\\x4b\\x30\\x3a\\x2b\\x32\\xdd\\x2c\\x36\\x5a\\x06\\x7c\\x97\\x23\\x58\\x55\\x94\\x64\\x4d\\x3e\\xe8\\xde\\x1a\\x51\\xfa\\xea\\x0e\\x65\\x0f\\x21\\x24\\x88\\x5a\\x94\\xcb\\x99\\xeb\\x90\\x3b\\x7d\\x45\\x79\\xbd\\xe5\\x91\\x49\\x7d\\x95\\x39\\x30\\xd3\\x63\\xdd\\xdb\\xda\\xc6\\x27\\xb9\\x7a\\x91\\xf4\\x96\\x82\\xdf\\x8e\\x72\\x50\\xa7\\x07\\x3d\\x38\\x3a\\x7a\\x22\\xcf\\x11\\x3f\\x28\\x58\\xce\\x6b\\x63\\x2a\\x28\\x92\\xc4\\xe8\\x8a\\xa9\\xa0\\xd2\\x89\\xeb\\x57\\x62\\x9b\\x00\\x8d\\x3b\\x1b\\x60\\x81\\xe6\\xfe\\x5d\\x3c\\x0a\\x6c\\x80\\x21\\x89\\xb5\\xf1\\x08\\xe7\\x66\\x31\\x9e\\x15\\xb3\\x3e\\xaa\\x5b\\x8c\\xed\\x40\\x27\\xea\\xec\\x83\\xb4\\xac\\x68\\xb1\\x4b\\x82\\x98\\xbc\\x51\\xcd\\x8e\\xb3\\x80\\x9b\\x7a\\x2d\\x68\\x4f\\xe3\\x2b\\xbd\\x9f\\xab\\x5c\\x91\\x8e\\xeb\\x17\\xcc\\x44\\x4d\\x73\\xf7\\x30\\xd4\\xc8\\xcc\\x05\\x7b\\xd3\\xa2\\xf1\\xf0\\xae\\xbb\\x61\\x63\\x29\\x34\\xe6\\x17\\x02\\x16\\x88\\x29\\xcd\\x7e\\x91\\xde\\x81\\x50\\x96\\x29\\xd0\\x1a\\x8c\\xde\\xfe\\x0d\\x1a\\xc4\\x9e\\x21\\xf0\\xc5\\xfb\\xe1\\xb2\\x24\\x48\\x27\\x26\\x8a\\x0a\\x27\\x35\\x7e\\x15\\x8b\\xd7\\x68\\x84\\xa2\\x1e\\x7f\\x1f\\xac\\x1b\\x62\\x72\\x16\\x6d\\x5a\\x9f\\x64\\xf9\\xb6\\x72\\x98\\x9a\\x87\\x62\\xf5\\x12\\xbf\\x1d\\xf4\\xb2\\xab\\x69\\x97\\x65\\xf2\\xcd\\x83\\x96\\xf4\\x76\\xe7\\xf5\\x99\\x95\\xde\\xe7\\xd8\\x90\\x20\\x7e\\xff\\x0f\\xd2\\x72\\x63\\xec\\x23\\x2e\\x37\\xcf\\xed\\xfe\\x7c\\x44\\x05\\x55\\xd4\\xca\\x74\\xe5\\x2d\\xa2\\x46\\xc4\\xb8\\x37\\x57\\xbe\\xaf\\xd2\\xab\\x2a\\x51\\xef\\xe1\\x60\\xbb\\x02\\xb9\\x8c\\x26\\xd6\\xb2\\xc3\\xf0\\xc1\\xaa\\xcb\\x2f\\x3c\\x34\\xa5\\xb2\\xa3\\xb6\\x6f\\xee\\x17\\x5b\\x78\\x75\\x48\\x07\\x3d\\x8b\\x57\\x77\\xc6\\xbe\\x88\\x0b\\xdc\\x19\\x6b\\x33\\x74\\xa2\\x15\\x4f\\x94\\xd9\\x36\\x0f\\x77\\x55\\xac\\x68\\x15\\xa2\\x8a\\xf2\\x96\\x27\\x1e\\x22\\xa8\\xf2\\x35\\x43\\xc7\\x49\\x55\\xa6\\x09\\x12\\x5b\\x02\\xa5\\x69\\x21\\x80\\x11\\x42\\x02\\x95\\xcc\\xf0\\xd7\\x35\\x69\\x99\\xa5\\xb8\\x95\\xcc\\x88\\x48\\x3f\\xad\\xf7\\x97\\x0c\\xec\\x6c\\x64\\x24\\x0f\\x70\\x79\\xfd\\xb1\\x5f\\xfc\\x5c\\x42\\x27\\xe5\\x39\\x26\\xd2\\x78\\xba\\x0f\\xed\\x3c\\x39\\x93\\xbc\\x86\\x82\\x28\\x23\\xdd\\x58\\x1a\\x32\\xab\\x2e\\x3a\\x07\\xf7\\x94\\x30\\x22\\x4b\\x27\\x4e\\xad\\xd8\\x45\\x59\\x8a\\x7d\\x1d\\x89\\x67\\x6a\\xaf\\x23\\x67\\x77\\x74\\xb7\\xb0\\x58\\x3b\\xcc\\x83\\x59\\x9d\\x15\\x5d\\x14\\xb0\\x9a\\xdc\\xf4\\x9e\\xd5\\x05\\xe8\"},\n{{0x2d,0x27,0x7d,0xd5,0x5f,0x57,0x19,0x5e,0xc0,0x72,0xb4,0x7c,0xb1,0x44,0x8c,0xb5,0x82,0xc8,0x35,0x73,0x9e,0x6c,0x98,0xba,0x71,0xab,0x12,0x8f,0x70,0xce,0x6b,0x79,},{0xdf,0xa9,0x25,0x93,0xef,0x0f,0x0d,0x97,0x4a,0x11,0x37,0x83,0x0a,0xd1,0x38,0x48,0xaf,0xef,0x3b,0x81,0x0c,0x2a,0x21,0xbf,0x77,0x91,0x78,0xce,0x4b,0x3a,0xb9,0x74,},{0x73,0xc1,0x06,0x06,0x49,0xa7,0xc0,0x14,0xed,0x01,0x94,0x58,0x51,0xb5,0x3e,0x28,0x53,0x24,0xe6,0x0d,0x06,0x1c,0x83,0x1d,0xda,0x41,0xf0,0x33,0xb5,0x65,0x83,0x06,0xa1,0xf1,0x12,0x32,0x7a,0xfe,0x93,0xca,0xa9,0x21,0x02,0x07,0x30,0xaa,0xe0,0x06,0x9c,0x9a,0x2b,0x45,0xee,0xf5,0x5c,0xbb,0x4a,0x5a,0x9c,0xd4,0x6c,0xda,0x80,0x08,},\"\\x14\\x54\\x9e\\xdd\\xd5\\xf2\\xb7\\x90\\x5d\\xda\\x19\\xd7\\x4a\\xb2\\x07\\xaa\\xc6\\xfb\\x3e\\x3d\\xf3\\x29\\x5d\\x84\\x52\\x31\\xef\\x3a\\xea\\x6e\\x1f\\x04\\xee\\x03\\x3c\\x90\\x38\\xdc\\xb4\\xbd\\x3d\\x5e\\x45\\x2c\\x54\\x83\\x4d\\x0f\\xf2\\xb7\\xde\\x3f\\x32\\x2e\\x56\\x26\\x94\\x9c\\xd6\\x1d\\x6e\\x89\\x01\\x38\\xff\\x0e\\xa8\\xad\\x84\\x6e\\x8f\\xe8\\x87\\xae\\xe1\\x5f\\xc4\\x8b\\xbe\\x4f\\xba\\x42\\x45\\x5f\\x5c\\x17\\x45\\x7a\\xe7\\x89\\xb4\\x05\\xaf\\x85\\x96\\x11\\xfe\\x1f\\x87\\x46\\x18\\x5a\\x65\\xae\\xf2\\x13\\x4e\\xa4\\xd8\\xf3\\x98\\xd4\\x8d\\xf7\\xc1\\xbb\\xa4\\x30\\x44\\x08\\xae\\x7e\\xfb\\x35\\x29\\x24\\x09\\xd5\\x08\\xdd\\x55\\xce\\x21\\xde\\x8c\\x28\\x16\\x0d\\xc9\\xe8\\x77\\x70\\x0c\\x76\\x3d\\x06\\xb0\\x1b\\x85\\x42\\x05\\x2d\\x7d\\xdb\\x63\\x35\\x54\\xe3\\x58\\x42\\x79\\xc7\\x96\\x93\\x70\\x23\\xc8\\xea\\xc3\\x72\\x77\\xbe\\x2b\\x82\\x04\\xff\\x3e\\x0e\\x10\\x31\\x19\\x0a\\x01\\x01\\x4c\\xf5\\xf5\\xb4\\xd7\\xad\\x99\\x67\\x27\\xf9\\x75\\x31\\xe0\\x35\\x5b\\x87\\xc9\\xe6\\x11\\x52\\x5a\\xad\\x07\\x99\\x58\\xe9\\xaf\\xe2\\xab\\x10\\xe4\\xa3\\xe7\\xa1\\xb6\\xba\\x0a\\xff\\x81\\x5d\\xa2\\xcd\\x81\\xea\\x9e\\xb9\\xf5\\x36\\x98\\x66\\x33\\xf3\\x16\\xdd\\x06\\xc2\\x50\\x3c\\x6b\\x19\\x8d\\xc5\\x93\\x04\\x80\\x7b\\x98\\xb4\\x29\\x35\\xf5\\x1f\\x63\\x7d\\xdb\\x59\\xe2\\x33\\xfe\\xd5\\x66\\x43\\x9c\\x1f\\xe9\\x6c\\xda\\xaf\\xa4\\x9f\\x44\\x12\\xd0\\xc1\\xe6\\x54\\xd8\\xc6\\x90\\x42\\x47\\x0b\\x3a\\x59\\xac\\xb6\\xbf\\x67\\xe4\\x0b\\x38\\xa7\\x70\\x67\\xd5\\x99\\x7b\\x8d\\x35\\xed\\x61\\xd6\\xeb\\x3c\\xc7\\x8b\\x8b\\xdc\\xb9\\x57\\x4b\\x1c\\xed\\x9f\\x6f\\x33\\x9e\\x9e\\x38\\xf9\\x41\\x46\\xef\\x63\\xf0\\x49\\xe6\\xb8\\x02\\xbf\\xed\\x2a\\x51\\xab\\x42\\xe7\\xd4\\x89\\xf3\\x16\\xff\\x4d\\x1c\\xd8\\x98\\xbc\\xf8\\x50\\x56\\x51\\x68\\x74\\x40\\x74\\x9c\\x0f\\xb7\\xa5\\x7d\\xbe\\xff\\x72\\xe6\\x46\\x89\\xfa\\xa4\\x1c\\x07\\xb4\\xad\\xe5\\x99\\x33\\xd2\\xfa\\xc6\\xd5\\x73\\xde\\xb7\\x39\\x54\\x9e\\xb7\\x5f\\x1e\\x6f\\x73\\x85\\xd8\\xc6\\x14\\x28\\x94\\x97\\x3e\\xd6\\x85\\xeb\\x8e\\xd0\\x80\\xc2\\xa4\\x9f\\x3a\\xc6\\x57\\x11\\x61\\xaf\\x96\\x63\\x5a\\xd0\\x57\\xdf\\x14\\x86\\xd3\\x96\\x77\\x3a\\xc8\\x98\\x32\\x10\\x97\\x89\\x86\\xe1\\xbf\\x21\\xa2\\x08\\x06\\xd6\\x67\\xa4\\x8a\\x55\\x5a\\x96\\x32\\x21\\xd5\\x06\\x14\\xa8\\x97\\x6b\\x2e\\xec\\x97\\x51\\x2d\\xb1\\x1a\\x35\\x81\\x94\\x49\\x2a\\xb5\\x45\\x58\\x01\\xba\\xa1\\x4a\\x51\\x1b\\x26\\xeb\\x0c\\x68\\x28\\x9d\\x79\\x05\\x23\\x71\\x2f\\x2f\\xf8\\x70\\x98\\x92\\x69\\x5c\\x4d\\xb9\\xad\\x31\\x0d\\xf8\\xc6\\xee\\x7b\\xd8\\x3c\\x87\\x1f\\x05\\xae\\xc3\\x3b\\x7a\\xd3\\x26\\xf4\\x46\\x69\\x2a\\x42\\xf7\\x22\\x23\\x76\\x24\\x6d\\x53\\x6a\\x32\\x6c\\x4d\\x73\\xeb\\x57\\x2f\\xea\\xda\\x11\\xb8\\xac\\x71\\x14\\xf6\\xcb\\x44\\x4c\\xa2\\x78\\xfc\\xf0\\x7b\\x97\\x0d\\x2a\\xd4\\x65\\x37\\x2a\\x68\\x7d\\x36\\xb7\\xda\\xac\\x47\\x87\\x48\\xec\\x6a\\x93\\x2d\\xa2\\x08\\x43\\x94\\x8e\\xfa\\x39\\x30\\x97\\x81\\x42\\x72\\xe5\\xca\\x1c\\x73\\xe7\\x11\\x97\\x3a\\x52\\x68\\x3f\\x98\\xc0\\x1e\\x55\\x24\\x1c\\x15\\x4d\\x28\\xe3\\x8d\\x3e\\xdf\\xad\\xe2\\x30\\x3a\\x4e\\x7c\\x45\\xc2\\xa7\\xa1\\xc9\\x96\\xee\\x11\\x37\\xaf\\x86\\x4a\\x98\\xb6\\x98\\x09\\xfc\\x92\\x14\\xee\\xa8\\xcf\\x3a\\xfe\\x84\\x2f\\xee\\x3e\\xb9\\xa9\\x32\\x2c\\x3b\\x82\\xfd\\xdb\\x05\\xd4\\xd1\\xa2\\xde\\x09\\xc1\\xce\\x72\\x73\\x44\\x53\\xa8\\xdd\\x3a\\x89\\x20\\xd0\\xd0\\xac\\x96\\xef\\x77\\x8b\\x9e\\x02\\xc6\\xa3\\xf1\\x28\\x72\\xe1\\x7d\\x3a\\x81\\xba\\x75\\xfd\\x23\\x3b\\xaa\\xdb\\xe2\\x16\\xea\\x0a\\x58\\xe9\\xdd\\xa0\\x08\\x40\\x87\\x02\\x08\\xae\\x41\\x35\\x40\\x03\\x0b\\x3c\\x05\\xe5\\xd0\\xb8\\x32\\xdf\\x87\\xc8\\xee\\x7f\\x15\\x34\\x87\\xaa\\x11\\xba\\xd9\\xf1\\x39\\xc7\\xdd\\x4b\\xcf\\x41\\x8f\\x4b\\xcb\\x95\\xbe\\xe8\\x57\\xd0\\xe9\\x60\\x84\\x47\\x23\\x87\\xcb\\x39\\x12\\x7a\\x94\\x71\\x34\\x50\\x19\\x63\\xa7\\x07\\x1b\\xdb\\x34\\xde\\x69\\x61\\xbe\\x2b\\x6b\\x06\\xe4\\x03\\xe7\\x59\\x18\\xe6\\xf6\\x9d\\x08\\x02\\x1c\\xf2\\xa8\\xac\\xb8\\x0a\\x01\\x11\\xf4\\xd5\\x06\\x10\\xc1\\x52\\xd3\\x9c\\x66\\x21\\xc0\\x57\\x8a\\xc6\\x89\\x95\\x9b\\x1c\\xe6\\xf3\\x76\\xf4\\x3d\\x18\\xaf\\x06\\x2e\\x4a\"},\n{{0x42,0x80,0x66,0xc5,0x24,0x45,0x72,0x6d,0x0e,0xa2,0x00,0x7e,0x50,0x46,0x37,0x27,0x4d,0x84,0xee,0x23,0x23,0x25,0xb5,0x05,0xf2,0xc5,0x16,0x35,0x7f,0x80,0x75,0x83,},{0xdd,0x40,0xfe,0x8f,0x67,0xc6,0x65,0x61,0x3b,0x3c,0x45,0x9f,0x6a,0xce,0x8d,0xc2,0x8d,0x34,0xe0,0xe7,0x7e,0x2f,0x6a,0xa0,0x60,0x59,0x28,0x19,0xbe,0x6a,0x9d,0x68,},{0xc9,0x38,0x82,0x9f,0x59,0x8b,0x1f,0xf1,0xb8,0x18,0x33,0x60,0xd2,0x23,0xf4,0x3c,0x59,0x47,0x30,0x60,0x68,0x76,0xa9,0x9a,0x3f,0x31,0xb2,0x06,0x5d,0x04,0xe6,0xf0,0x75,0xd1,0x39,0x6b,0x3c,0x8c,0xff,0xb0,0xe1,0xe2,0xea,0xab,0xda,0x7d,0xa5,0xe7,0x89,0xcc,0xd1,0xc0,0x20,0x83,0x5f,0xe3,0xa7,0x1d,0xcd,0xb6,0xaf,0x03,0x96,0x0c,},\"\\xe2\\x79\\x6c\\x50\\xd9\\x3d\\xf8\\x12\\xbc\\xa4\\x1b\\xf2\\xa1\\xe1\\xdd\\x73\\x7d\\x8c\\xf6\\xf6\\xb4\\xf7\\x62\\x42\\xe3\\x91\\x78\\x18\\x67\\x58\\xcb\\xae\\x08\\x84\\xe6\\x0c\\x6b\\x4a\\xaa\\xdd\\xae\\xc9\\xa8\\x99\\xa9\\x12\\xe5\\xc5\\xb9\\x80\\x4d\\x7b\\x04\\x97\\xba\\xb4\\x45\\x8c\\x58\\x5d\\x4f\\x25\\x92\\x22\\x49\\x8c\\xe9\\xe8\\x0e\\xb6\\xa7\\x97\\x9b\\xbe\\xd6\\xd5\\x2c\\xc3\\x80\\x72\\xf7\\x45\\xcb\\x2c\\x63\\xe6\\x63\\xbc\\x3b\\x9d\\x6c\\xaf\\x01\\x2a\\x60\\x7f\\x6d\\x3b\\x70\\x6e\\x15\\x57\\x57\\x87\\x17\\xec\\xbb\\x97\\x1a\\xeb\\x7c\\x48\\xe1\\xdf\\x95\\x71\\x1c\\x55\\x0e\\x00\\x69\\x93\\xbf\\xfb\\xa9\\x11\\xcb\\x64\\xad\\x52\\xd5\\x17\\xed\\x18\\xbe\\x82\\x36\\x9e\\x81\\x58\\x19\\xd3\\x17\\x59\\x47\\xd4\\xa3\\x5b\\x2c\\xc7\\xb9\\xdc\\x6c\\x10\\x05\\x13\\x26\\xb3\\xf1\\xdc\\x1e\\xdb\\x1b\\x68\\xba\\x01\\x5f\\xf7\\xca\\x1d\\xc3\\x61\\xd8\\x96\\x7a\\xbc\\xff\\xd3\\xc3\\x1f\\x7d\\x6b\\x0c\\xb1\\x39\\x6a\\xe5\\x41\\xf2\\x97\\x59\\xc4\\x13\\x0b\\xe5\\x2e\\xcc\\x11\\xd9\\x92\\x61\\xc3\\x65\\xbf\\x7c\\xde\\xc7\\x81\\x49\\x4c\\x5f\\xa0\\x52\\x6d\\xb4\\xdb\\xbe\\x66\\x0a\\x43\\x2b\\xe5\\x60\\x43\\xc6\\x6e\\xa0\\x7c\\x25\\x62\\x7a\\x5f\\x72\\xb7\\x81\\x23\\xdc\\xf9\\x86\\xff\\x71\\xed\\x1a\\xff\\xd1\\x65\\x9b\\x13\\x93\\xd9\\x62\\x1f\\x71\\x1d\\xfa\\x63\\xea\\xda\\x38\\x34\\x30\\x79\\x70\\x58\\xf1\\x56\\x6a\\x00\\x05\\x2d\\x67\\xba\\x53\\xc1\\x23\\x7b\\x56\\x91\\xde\\x3b\\x03\\x9f\\xd4\\x47\\x6f\\x11\\x51\\xe5\\xed\\x5f\\x5a\\x98\\x67\\x2f\\xa3\\x3a\\x1d\\x85\\x4f\\xa0\\x15\\x66\\xb3\\x32\\x31\\xd4\\x6a\\xcd\\x7f\\x34\\xb8\\x03\\x44\\x79\\x98\\x18\\x53\\x76\\x4d\\xab\\x87\\xf4\\x98\\x44\\xcb\\x62\\xc6\\x3d\\x53\\x6f\\xac\\xa9\\x20\\x44\\x7d\\x8c\\xd1\\xe8\\x11\\x3e\\xdb\\xc8\\x3e\\x4a\\x6b\\x78\\x15\\xe1\\x80\\xcd\\x78\\xb9\\x33\\xd9\\x68\\x7f\\xd5\\xbe\\x99\\xd0\\x51\\x8a\\x44\\x66\\x29\\x89\\xbc\\x64\\x01\\x11\\x24\\xf1\\x87\\xd4\\x39\\x79\\x99\\x4a\\x95\\xe0\\xc9\\x03\\xa0\\x06\\xc1\\xc0\\xbe\\xf1\\xc0\\xf3\\xdf\\x1e\\xb7\\x00\\xf9\\x80\\xc2\\x8c\\x3c\\x1e\\x99\\x7d\\x0c\\x56\\xd1\\x13\\xda\\xe1\\x96\\x88\\x2b\\x05\\x01\\x8f\\xca\\xb3\\x14\\xd8\\x11\\x7f\\xaf\\xba\\xbe\\x77\\x00\\xb9\\x32\\xd4\\x7c\\x57\\x36\\x2b\\x20\\x35\\xed\\xdc\\xe2\\xd2\\xef\\x33\\x64\\x1e\\xa9\\x0c\\x3e\\xa3\\xfe\\xc6\\xea\\x5b\\x87\\xe1\\x61\\x01\\x4c\\x4f\\x82\\x14\\xfd\\x03\\xce\\xbf\\x94\\xab\\xe1\\x22\\x53\\x7a\\x98\\x70\\x32\\x39\\xdf\\x58\\x21\\xc5\\xab\\x63\\x3f\\x98\\x36\\x5c\\xc6\\x36\\xe3\\xf1\\xd2\\xf7\\x4e\\x0f\\xf8\\xf1\\xfe\\xe0\\x6a\\x3f\\x73\\x90\\x7e\\xe5\\x04\\xb3\\x10\\xfd\\x52\\x24\\xad\\x4d\\x05\\xcd\\x23\\xc3\\x56\\xdf\\x8b\\x34\\x64\\x72\\x98\\xc4\\x98\\x28\\x72\\x5b\\xa5\\xfd\\x60\\x61\\x1e\\x82\\x9b\\x63\\x37\\xbc\\xc9\\xdc\\xf8\\xe8\\x97\\x1c\\xab\\x3e\\xe9\\xc2\\x63\\x37\\xd3\\x8d\\xfd\\xfa\\x03\\x6b\\xf6\\x09\\x6b\\x63\\x5a\\xc1\\xbd\\x55\\x25\\xec\\xd3\\x77\\xa1\\x52\\x72\\xa8\\xac\\x9b\\xbe\\xf1\\x33\\x10\\x7a\\x42\\x25\\x8d\\x8b\\x19\\xec\\x69\\xdc\\x42\\x61\\xbe\\x53\\x00\\xa2\\xd2\\xd5\\xca\\x99\\xf3\\x1e\\xfd\\xf2\\x59\\xf9\\xd0\\x79\\x86\\x9a\\x34\\x41\\x37\\x79\\xf3\\x02\\x88\\x24\\xd7\\x47\\x68\\x6c\\x46\\x0f\\xfc\\x49\\x6f\\x20\\x10\\xf4\\x03\\xe9\\x03\\xe2\\x7a\\x87\\xdd\\x07\\x5a\\xe0\\xa7\\xf1\\x68\\x94\\x16\\xd3\\x1b\\xcc\\x15\\xf4\\x90\\xca\\xf9\\x75\\xc4\\x0e\\x71\\x5d\\x54\\x99\\x03\\xe8\\xbc\\x0f\\x7d\\x91\\x41\\xe0\\x20\\xf4\\x10\\xf3\\xca\\x2b\\x2c\\x07\\x97\\xca\\x0d\\xc8\\xd7\\x39\\x2b\\xff\\x24\\x35\\x28\\xc7\\xf3\\xbe\\x13\\x89\\x97\\x18\\x5a\\x4b\\x36\\xf4\\x53\\x76\\xd9\\xfd\\x70\\xba\\x20\\x98\\x9d\\x2d\\x1a\\x91\\x1d\\x4b\\x98\\xd1\\x60\\xd2\\xb8\\xde\\x59\\x2d\\xe2\\xf4\\xc0\\x4f\\x35\\x86\\x0d\\xf3\\x20\\xc5\\x48\\x44\\x0d\\x5e\\x3a\\x34\\x6a\\x14\\xd3\\xa6\\x3f\\xe4\\x85\\xc2\\x88\\x91\\x26\\xb7\\xf4\\x1d\\x55\\xa6\\xeb\\x23\\xd5\\x62\\x0b\\xab\\xf8\\x56\\x4a\\xa7\\x9d\\x15\\x6e\\x98\\x3f\\x36\\xd9\\xed\\x49\\x8d\\xa9\\xca\\x88\\x8d\\x94\\x6b\\x53\\xcc\\x47\\x68\\xa5\\x89\\x2d\\x52\\xd5\\x41\\x52\\x69\\x60\\x28\\x25\\x24\\xba\\x61\\x94\\xda\\x65\\x94\\x1d\\x1e\\xa3\\x0f\\x80\\x6b\\xb6\\xd9\\x7c\\x74\\x88\\xb9\\x3f\\xd0\\xa7\\x70\\xa9\\xb1\\x5e\\xfc\\xd1\\x2c\\x5c\\x46\\x94\"},\n{{0x31,0x45,0xbc,0x68,0xd8,0x29,0x79,0x40,0x8e,0x46,0x57,0xb7,0x75,0xf1,0x50,0xc6,0xd2,0x8a,0x32,0x4d,0x74,0x6e,0xa6,0xde,0x90,0xfd,0x72,0xb1,0x7a,0x25,0x79,0x82,},{0xc7,0x76,0x18,0x6c,0xe4,0x7f,0x30,0xad,0x08,0xfa,0x1d,0x2c,0x61,0x6a,0x36,0x44,0x66,0x5b,0xa5,0x4f,0xf7,0x30,0xfc,0x2f,0x4d,0xb1,0xdb,0xa3,0x8d,0xde,0xed,0xca,},{0x24,0xa4,0x33,0x33,0x76,0x83,0xbc,0x71,0xa6,0xca,0x3b,0xcc,0xd8,0xcc,0x24,0x00,0xc2,0x44,0x64,0xfa,0x67,0x71,0x4b,0x46,0x51,0x5f,0x2a,0x14,0x32,0x71,0x27,0x05,0xd5,0x70,0x61,0x4d,0xb6,0xd2,0x6b,0xbb,0xd3,0xf0,0x26,0x7c,0x14,0x27,0xca,0x1c,0x2f,0x40,0xdc,0x9a,0x6f,0x1f,0xb0,0xf0,0xfc,0x71,0x4a,0x02,0xe2,0x4b,0x47,0x08,},\"\\x2e\\xa8\\xdc\\xe1\\x48\\x7f\\x45\\xd6\\xff\\x8e\\xb8\\x3c\\x54\\xfb\\x7e\\xdd\\x76\\xad\\x6e\\x60\\x8b\\xb8\\xda\\xf1\\xa1\\x82\\x3d\\xa4\\xf4\\xe4\\xe9\\x86\\x31\\x73\\x89\\x7c\\x19\\x7a\\xc6\\x58\\x04\\x82\\x3b\\xca\\x95\\x09\\x1f\\x59\\xe8\\x6d\\x63\\xc1\\x8d\\xbc\\xdb\\x85\\x74\\x3f\\x88\\x93\\xee\\x69\\x4d\\x81\\x56\\x01\\xf8\\xf2\\x2f\\x4d\\x7d\\xf0\\x87\\xf0\\x11\\x4b\\xb2\\x6c\\x37\\x95\\xe1\\xfe\\x4b\\x7f\\x4a\\x8f\\xa3\\x1f\\xd9\\xf4\\xff\\x10\\xfe\\x5d\\xd4\\x52\\xc5\\x4c\\x55\\x78\\xc7\\x52\\xf8\\x88\\x21\\x30\\x76\\xbe\\x46\\x7b\\xa3\\x0d\\x2e\\x2f\\xbb\\xee\\x87\\x7c\\x4b\\xe9\\xb6\\xec\\x4f\\x04\\x02\\x1c\\x00\\x6f\\x92\\x66\\x31\\x19\\x43\\xca\\xb7\\xce\\xa9\\x9a\\x2a\\xce\\xbb\\x69\\xee\\xc3\\xe6\\x18\\xc1\\x31\\xf9\\x74\\x30\\x07\\x5f\\x79\\x75\\xe3\\x9f\\x26\\xd5\\x31\\x51\\x78\\xb6\\x9a\\x1d\\xdf\\x73\\x17\\x61\\x05\\x1b\\x93\\xfb\\x8d\\xf7\\xe0\\xe8\\xb4\\x1e\\x82\\xe7\\xf4\\xf7\\x5e\\x91\\xd6\\xc8\\x90\\xb1\\x4c\\xa5\\x33\\xe0\\x94\\xeb\\x8e\\xa4\\x48\\x6d\\x38\\x71\\x85\\x96\\x6c\\x98\\x29\\x5d\\x3f\\x58\\xb1\\x7e\\xef\\x6c\\xc3\\xb4\\xd0\\x7e\\x93\\xa3\\xd9\\xf4\\x77\\x2e\\xe5\\x2f\\x18\\xa5\\xbb\\x30\\xaa\\x39\\x72\\x85\\x0e\\x65\\x81\\x70\\xbd\\xdb\\x67\\x6f\\x33\\x26\\x6c\\x9f\\xd1\\x0f\\x59\\x90\\xba\\xd8\\x91\\xf0\\xce\\xb7\\x82\\x73\\x6b\\x40\\xf0\\x1b\\xd8\\x65\\x09\\xb0\\x63\\x04\\xa9\\x6d\\x93\\xda\\x23\\x3d\\xbe\\xd1\\x8a\\xfa\\x18\\x18\\xaa\\xf5\\x7a\\xf9\\xbd\\xbc\\x86\\x7b\\x39\\x7f\\xf2\\x35\\xa8\\x3e\\x85\\x72\\x24\\xb1\\x50\\x65\\x22\\x5e\\xec\\x03\\x9d\\xd4\\xe2\\xd6\\x9a\\x04\\xee\\x10\\xbe\\xa0\\x69\\x50\\x41\\xed\\xa5\\x9b\\x05\\x8e\\xc0\\x5f\\x49\\x04\\x8e\\xe3\\x24\\xd1\\x6c\\x4d\\x61\\x07\\xb6\\xec\\xd0\\x48\\x75\\xeb\\x74\\x4e\\x93\\x65\\x47\\x1b\\x4c\\x5f\\xe6\\x61\\x1b\\x26\\x18\\x93\\xf9\\xd2\\xb1\\x28\\xe1\\x35\\xf9\\x2e\\x47\\x41\\x56\\xb2\\x71\\xb3\\xc8\\x2e\\x9a\\x76\\x63\\xda\\xd4\\x95\\x3d\\x30\\xe1\\x0e\\xda\\x08\\x62\\x60\\x7d\\xec\\x33\\x72\\xb3\\x99\\x70\\xf2\\xa8\\x4b\\x12\\xf6\\x0e\\x6d\\xae\\x7f\\x31\\x79\\x90\\x86\\xd3\\x8a\\x7e\\x34\\x94\\x84\\x19\\xc1\\xb0\\x7f\\x44\\xc2\\x15\\x9c\\x86\\xb8\\xc0\\xcf\\xe8\\x74\\x7f\\xc2\\xba\\xd5\\xbf\\x47\\x53\\x56\\xcf\\xe6\\x9d\\xe2\\xdc\\x6a\\xd5\\xa5\\x19\\xfd\\x65\\xc1\\x25\\x64\\x70\\x1c\\x05\\xf7\\xc2\\x77\\xec\\xaf\\xcf\\x4c\\x87\\xb1\\x48\\xdf\\x1f\\x98\\x79\\xa9\\xae\\x44\\x3c\\x55\\xae\\xa5\\x21\\x38\\xc6\\xfa\\x01\\xef\\x0c\\x3a\\xbb\\x5f\\x2d\\xf9\\x0a\\x57\\xab\\x66\\x24\\x17\\x8c\\x73\\x7b\\x54\\x91\\x5b\\x7a\\xa2\\x9e\\xa7\\x8e\\x8e\\x49\\xef\\x5a\\x81\\x6d\\x8a\\x92\\xc2\\xf8\\x1b\\x8a\\x19\\x63\\x27\\x79\\xc8\\x92\\xd6\\x6f\\x75\\x3d\\x51\\x8c\\x41\\xcc\\xcc\\x9e\\x59\\x3e\\x50\\x74\\x26\\x25\\xbc\\xaf\\xa4\\x68\\x80\\x5c\\x37\\xa2\\x1f\\x8e\\x29\\xa6\\x96\\x0d\\xdf\\x5c\\x5e\\x5c\\xa1\\x4a\\x7b\\x05\\x2a\\x7b\\x60\\x15\\x69\\x7a\\x02\\x10\\xed\\x6f\\x01\\x43\\xe6\\xb4\\x84\\xc3\\xf5\\xb3\\xb4\\x72\\x6c\\x60\\x7d\\x07\\xbf\\xb3\\xd5\\x4a\\x09\\xc9\\x80\\x43\\xf2\\x1d\\xcc\\x5c\\xc2\\x0b\\xb4\\x75\\x4e\\x2e\\x5a\\x73\\xb2\\xf8\\x06\\xc2\\x20\\x4b\\x72\\xf3\\x6a\\xb9\\xe9\\x6a\\x62\\xc6\\x27\\x7c\\x0a\\xd6\\x6b\\xe7\\xab\\xff\\xc1\\x63\\xb4\\xe8\\xfa\\xfc\\xef\\xf5\\xe2\\x02\\xe5\\x94\\x3f\\x4f\\x0e\\x6b\\x92\\xb4\\xdd\\xb9\\x53\\xcb\\xb7\\x91\\xf8\\x31\\x66\\x03\\x69\\x38\\xe6\\xc4\\x4a\\xd9\\x1a\\x59\\x6a\\x55\\x73\\x44\\x0f\\xb3\\x07\\x41\\xe6\\x60\\xb6\\xcd\\x5f\\x86\\xff\\xa7\\x46\\xe6\\xe9\\x72\\xb8\\x05\\xc1\\x0b\\x7b\\x7b\\x9a\\x63\\xc0\\x55\\x1d\\xb8\\xeb\\x4f\\x84\\x00\\xcd\\xe2\\x86\\x8c\\x0d\\x0d\\x4e\\xb4\\xcf\\x11\\x7f\\x8e\\xc4\\xab\\x97\\x44\\xfc\\x58\\x79\\xde\\xa7\\xf0\\xef\\x16\\xc2\\x91\\xd5\\x5c\\x17\\xf0\\x8b\\x73\\x1b\\x7c\\x65\\xd0\\xc4\\x41\\xb6\\x3b\\xc8\\xff\\x5e\\x94\\x90\\x4c\\x02\\x6a\\x13\\x61\\xda\\xcc\\x80\\xa9\\x3a\\x9b\\x9f\\xba\\x3b\\x40\\x36\\x17\\xae\\xb9\\x4a\\x56\\x85\\x41\\x84\\x80\\x11\\x95\\x42\\x34\\xae\\xad\\x70\\x0f\\x03\\x4c\\x47\\xc7\\xde\\xf8\\x77\\x90\\x52\\x55\\xf1\\x8b\\xdb\\x9a\\x25\\x7c\\xe5\\xbd\\xcf\\x0e\\x17\\x67\\x0c\\xda\\xaf\\x13\\xb1\\xc7\\xe0\\x9d\\x58\\xf9\\x2a\\x96\\x63\\xaf\\x23\\x9e\\x22\\x07\\x8e\\x18\\x0a\\x23\\xcc\\xb6\\xf6\\x4d\\x64\"},\n{{0x5a,0x25,0xea,0x5e,0x18,0x2d,0x9b,0xf8,0xe9,0x30,0xa2,0x0b,0x6c,0xf5,0x5e,0x24,0xe8,0x38,0x62,0x78,0x9b,0x38,0x39,0xb1,0xce,0x9a,0x71,0xe9,0x38,0xc4,0x2d,0x37,},{0xc9,0x81,0xfc,0x36,0xf1,0xa6,0xd5,0xf7,0xd4,0x51,0xcd,0x5e,0xf3,0x9c,0xd3,0xab,0x02,0x08,0x7f,0xcc,0x6a,0xf2,0x7d,0xd7,0x8e,0xa8,0x27,0x49,0x7e,0x77,0x9e,0x21,},{0xa4,0xf3,0x5b,0x49,0xd7,0xe1,0x98,0xe5,0xd3,0x26,0xe3,0x53,0xfb,0xb0,0x1f,0xa1,0x3b,0x6a,0xe2,0x60,0xd1,0xe4,0x8e,0x30,0xc1,0xb9,0x67,0x73,0x7a,0x5e,0x79,0x93,0x6c,0x97,0xca,0x2b,0xa7,0x99,0xca,0x34,0xe5,0xe7,0x88,0xce,0xa5,0xac,0x8e,0xd1,0x0d,0x5c,0xd1,0x5d,0xae,0x53,0xe4,0x24,0x32,0x32,0x1c,0xc2,0x6d,0xc9,0x98,0x09,},\"\\x21\\x4d\\xd1\\x92\\x7f\\x2c\\xac\\xd9\\x88\\x87\\x14\\x24\\x9b\\x85\\x43\\x46\\x02\\xac\\x78\\x45\\x3b\\x4a\\xf5\\x38\\x6e\\xee\\x39\\x29\\x5d\\x3d\\x5a\\x22\\x67\\x80\\x6e\\xb0\\xcf\\xf2\\xc1\\x32\\xd3\\x64\\xc2\\x42\\x0d\\x04\\xe3\\xf6\\xcc\\x0a\\x96\\x7b\\xf0\\x5a\\x10\\xff\\xcf\\x12\\x17\\xbb\\xf3\\x15\\xe7\\x5b\\x98\\x06\\x0f\\xd4\\x58\\xd6\\x7e\\xba\\xad\\x93\\x80\\xf4\\xad\\xc4\\xdb\\xdf\\x74\\xcb\\xf1\\xc6\\x47\\x92\\x02\\xbd\\xd7\\xfe\\xd3\\xa9\\x46\\x69\\x7d\\xc3\\x84\\x44\\xd8\\x8b\\xfe\\x51\\xd4\\x1d\\x7a\\x9b\\x38\\xda\\x60\\xb8\\x50\\xc5\\x6b\\x48\\xba\\x98\\x4f\\x6a\\x18\\x89\\x51\\x49\\x55\\xc0\\xda\\xdb\\x69\\xa8\\xc7\\x36\\xcc\\x76\\xcd\\xc4\\x9f\\x13\\xf8\\x5a\\x8b\\xfb\\x79\\x28\\xff\\x0a\\x0c\\x0c\\x03\\xf1\\x7c\\x74\\xb5\\xe1\\x06\\x2d\\x75\\x53\\xfb\\xeb\\x9d\\xd3\\xd5\\x08\\x1d\\xe1\\xdf\\xd8\\xa6\\xa9\\x97\\x66\\x97\\xc6\\xa2\\x59\\xbc\\xf7\\xd4\\xbe\\xf1\\xc2\\x1e\\x0a\\xaf\\x32\\x98\\xb0\\x42\\x1b\\x91\\x9f\\xdd\\xfc\\x1d\\xcb\\x3e\\xc6\\x83\\xd8\\x6f\\xf3\\xd4\\x23\\xd7\\x1c\\x8f\\x2d\\x72\\x3a\\x42\\xff\\x68\\xd8\\x2e\\x9f\\x39\\x17\\x49\\xb8\\x29\\x98\\xdc\\xfa\\x11\\x21\\x60\\xf5\\x2a\\x41\\x3a\\x23\\xd9\\x5f\\xc4\\x2c\\x3b\\xd2\\x23\\x84\\xba\\xd7\\x77\\x54\\xa7\\x10\\xd8\\xb9\\xf8\\x4a\\xe0\\xa8\\x02\\xfc\\x46\\x50\\x9e\\x7f\\x2b\\x07\\x07\\x90\\x12\\xb4\\x3b\\xfe\\xea\\xb7\\x19\\xbd\\xe5\\x6f\\x00\\xe5\\x9b\\x8e\\xdf\\x1c\\x47\\x28\\x83\\xb1\\x98\\x5b\\x2f\\xa6\\x99\\xa1\\xae\\x90\\xcf\\x45\\xd7\\xac\\x58\\x0c\\xeb\\x5f\\x27\\x97\\xde\\xf5\\xb8\\xbf\\x4f\\x2b\\x9b\\x35\\x19\\xa7\\x27\\xb9\\xf2\\xcd\\x12\\x56\\xa2\\xf0\\x76\\xed\\x22\\x96\\x49\\x5b\\x5c\\x2d\\xf7\\x88\\x7f\\xf8\\x9e\\x88\\xe2\\x36\\xa1\\x4c\\xde\\x63\\x24\\xf4\\x3d\\x68\\xd9\\x01\\x72\\xb0\\xb8\\x8b\\xd2\\x88\\x03\\xe9\\x99\\xdb\\xed\\xcc\\x50\\x1d\\xb6\\x54\\x54\\x4e\\x17\\x1e\\xc1\\xf9\\xf3\\x2d\\x4d\\x33\\x21\\xd5\\x89\\x39\\x2e\\x03\\xca\\x65\\x9f\\x96\\x75\\x2e\\x1f\\x08\\xa5\\x5d\\xb5\\x53\\xd8\\x66\\x98\\x55\\x41\\xf5\\xbe\\xf8\\x4c\\xe2\\xee\\x32\\x3e\\x17\\xd1\\xf7\\xdc\\x16\\x4b\\x50\\x51\\x5a\\x28\\x7d\\x53\\x05\\xfc\\x28\\xc5\\x98\\x3b\\x9e\\x53\\x98\\xb2\\x40\\x7a\\xe4\\x72\\x96\\xfe\\x4a\\x48\\x1d\\x22\\xff\\xb4\\xb8\\x65\\xa6\\x6b\\x97\\xa6\\xc2\\x79\\x35\\xdd\\x8e\\xb8\\x69\\x94\\xb7\\x9d\\x36\\x83\\x63\\x71\\x3f\\x10\\x1d\\xc3\\x7f\\x42\\x9e\\xee\\x0f\\xee\\x24\\x41\\xc2\\xdc\\x17\\xbf\\x43\\x92\\x4f\\x0c\\x04\\x4f\\x14\\x32\\x90\\xea\\xf3\\xf9\\xee\\x4d\\x94\\x6d\\xbe\\x45\\x83\\x1a\\x0d\\x83\\xc0\\x76\\xe7\\x51\\xc1\\x4f\\x3b\\x1a\\x72\\x67\\xf5\\x44\\x6c\\x18\\x86\\x98\\xd2\\xb4\\x6d\\x87\\xe6\\xf3\\xb2\\x0b\\xb3\\xfd\\xaf\\xe2\\x4c\\xc0\\x96\\xbc\\x31\\x2d\\x86\\x78\\xb3\\x8a\\x80\\xc3\\xf0\\x52\\xa0\\xc9\\x6d\\x5a\\xd8\\x7a\\x5d\\xd8\\xc1\\x33\\xcc\\x9a\\x15\\xbe\\x33\\x57\\x4c\\xd9\\x43\\x08\\xc2\\x4d\\xec\\x1a\\x9b\\xdf\\x18\\x9b\\xa6\\x87\\x19\\x9f\\x72\\xef\\x67\\x09\\x87\\x8e\\x10\\xf8\\x7b\\xd8\\xa0\\x3d\\xc8\\x4c\\x8f\\xa9\\x64\\x20\\x28\\x58\\x98\\xca\\x32\\x11\\xd8\\xb0\\xcc\\xef\\x64\\x01\\x1e\\xc2\\x4f\\x38\\xe5\\x74\\xda\\x34\\xda\\xb9\\xd2\\xf0\\x02\\x10\\x52\\x27\\x89\\x0f\\x92\\x48\\x8c\\x62\\x1e\\x57\\x13\\xe4\\x7d\\xbc\\xb1\\xa8\\x2a\\x6d\\xa6\\x0d\\x8b\\x22\\x01\\xeb\\x29\\xd4\\x94\\x49\\x33\\x60\\xed\\x5a\\x3f\\x4b\\x52\\x25\\xea\\xe7\\x70\\x7e\\xe0\\xb4\\xc0\\x40\\x73\\x05\\xc1\\x67\\x54\\xc7\\xf6\\x30\\xfc\\x85\\xc1\\x3e\\x49\\x17\\x04\\x7b\\xcf\\xf3\\xb2\\xa2\\x93\\xfe\\x95\\x55\\x06\\xc7\\x26\\x4e\\xa6\\x5b\\xf3\\xa9\\xb2\\x5a\\xcf\\x34\\x36\\x00\\xd8\\xfa\\x0c\\x7c\\x1a\\x29\\x0d\\x02\\x71\\x10\\x1b\\x7f\\x40\\xb9\\x6e\\x7f\\xda\\xf2\\x9d\\xef\\x9d\\x93\\x27\\xa5\\xae\\x05\\x44\\x6c\\xb5\\xa6\\xd3\\x22\\x45\\x3a\\x8b\\x09\\x8b\\xcf\\x3a\\xee\\x1f\\x70\\x4e\\x14\\xd0\\x0b\\xe3\\x42\\xb8\\x93\\x4d\\x19\\xe5\\x29\\x21\\x88\\x72\\xea\\x3a\\x2f\\xb2\\x12\\x4b\\x52\\x66\\x7c\\x01\\xfc\\xa5\\x84\\x1c\\x66\\xe1\\xe6\\x4a\\x1e\\x68\\x0e\\x09\\xba\\x18\\x6e\\x04\\xd1\\x05\\x18\\x6c\\xf6\\xeb\\x72\\x8b\\x9d\\x50\\x2a\\x66\\xb8\\x29\\xfb\\xc9\\x92\\xa3\\x88\\x10\\x04\\xec\\xdc\\x80\\xad\\xfd\\x04\\x4e\\xda\\x88\\x0f\\x8a\\xf7\\x2a\\x14\\xfb\\x55\\x0d\\x7c\\xc7\\x41\\x94\\xa9\\x45\\x20\\x7d\"},\n{{0x42,0x33,0x5c,0x30,0xb3,0xf6,0xb3,0x59,0xce,0xf5,0xaa,0xb6,0xa3,0xce,0x28,0x58,0xa1,0x51,0xb7,0xa4,0xfd,0x78,0xd2,0xfd,0x3e,0xe3,0x6f,0xc2,0x9d,0x24,0x94,0x04,},{0x30,0x1c,0x51,0x5a,0x02,0xa4,0xc6,0x6b,0xc6,0x40,0x10,0x80,0xc6,0xca,0x79,0x23,0xb7,0x83,0x1e,0x3c,0x9a,0x72,0xb5,0x5b,0x14,0x02,0x7e,0xb2,0xe7,0xb3,0xb1,0x52,},{0x67,0xb0,0xf1,0x74,0x49,0x03,0x9e,0x8c,0x79,0x7b,0xf9,0x13,0xaa,0xe6,0xe4,0xf0,0xbb,0x99,0xc7,0x4d,0x6d,0x10,0xc9,0x73,0xb9,0x90,0xff,0xe0,0x3e,0x7e,0xe4,0xab,0x5b,0x35,0x80,0x6d,0xb1,0x5a,0x98,0xc0,0x84,0x6a,0x82,0x7e,0x7b,0xcd,0x53,0x9c,0xd3,0xbc,0x09,0xdd,0x11,0x8a,0xb3,0xe5,0x26,0x63,0xa3,0x57,0xb1,0x29,0x91,0x07,},\"\\x6d\\xa2\\x25\\x1e\\x6f\\x55\\x95\\x36\\xb0\\x9b\\xfa\\xfb\\x81\\x60\\xa2\\xe8\\x10\\x2d\\x31\\xf8\\xb5\\x93\\x24\\x08\\x3e\\x52\\x27\\xb2\\x0c\\x3e\\x5c\\x3a\\x06\\xe2\\x39\\x67\\x68\\xdc\\xa3\\xec\\x76\\xdc\\x7f\\xc0\\xeb\\x3d\\x14\\x5e\\x62\\xed\\x07\\xfc\\x1a\\x8b\\x1b\\x2e\\x34\\x70\\x13\\xa0\\x52\\x72\\x74\\xd0\\xb2\\x34\\xfe\\x72\\x50\\x26\\xa9\\xd1\\x28\\xf8\\xdf\\x20\\xdb\\xfa\\x3b\\x65\\x03\\x81\\x8e\\xde\\xbd\\x7f\\x24\\x93\\x40\\x80\\x94\\x5a\\x7e\\x1e\\xa0\\x22\\x73\\xfe\\x48\\xb6\\xed\\x1e\\x83\\xfd\\x16\\x8d\\x79\\x73\\xfb\\xb7\\x94\\x1b\\x40\\x37\\xd3\\xcd\\xa5\\x55\\xe0\\xe8\\x9c\\x2b\\x94\\x3f\\xb1\\xe2\\x07\\x65\\xac\\x7d\\x4f\\xa3\\x77\\x7f\\x35\\xa0\\xa8\\xbc\\x11\\x8f\\x59\\x9c\\x84\\x7b\\xe3\\xfd\\xb2\\xd8\\xe2\\x01\\xae\\x12\\xa3\\x0b\\xde\\xfb\\x03\\x4f\\xf2\\x4e\\x3e\\x2e\\x70\\x1a\\x0d\\x17\\x33\\x73\\x40\\x78\\xbd\\x1f\\x9a\\x69\\xbb\\xc6\\x67\\xe4\\x61\\x21\\x1f\\x2c\\x76\\x9d\\x29\\xdb\\x7c\\x4d\\x62\\xd6\\xb1\\xb9\\x2b\\x56\\xf5\\xf1\\x8a\\x93\\x1a\\x92\\x60\\x64\\xb7\\x8d\\xa1\\x46\\xe1\\x8b\\x48\\x13\\x9b\\x9b\\x39\\x86\\x2a\\xec\\x37\\xbc\\xce\\x12\\xcb\\x78\\x94\\x29\\xe6\\x8e\\xa3\\x81\\x12\\xd0\\xb5\\xcc\\xe3\\x0b\\xd2\\xd2\\x6c\\x5f\\x7f\\xd4\\x15\\xda\\xf7\\xca\\x31\\x7b\\x33\\x68\\xb7\\x61\\x7d\\x45\\x25\\xe5\\xbc\\x97\\xd9\\x46\\x1d\\x5d\\x64\\xf6\\xb5\\xd3\\x18\\xd0\\xbc\\x3b\\x76\\xf2\\x5b\\x06\\x05\\x42\\x69\\x09\\xf2\\xaa\\x0c\\xd6\\x67\\xa4\\xf0\\xe0\\x75\\xb9\\xa9\\xfb\\x2e\\x9a\\x6c\\x82\\x70\\x4d\\x8a\\x9f\\x16\\x66\\x84\\x4e\\xdc\\x32\\xf6\\x3a\\x3d\\x4e\\x0f\\xd9\\xfd\\xba\\x30\\xb5\\x1b\\x33\\x36\\xb9\\x6e\\x9e\\xae\\x39\\x2a\\x34\\x2d\\xe4\\x9e\\x9b\\x5f\\xa0\\xf9\\xb9\\x01\\x71\\xbd\\xe0\\x9c\\xf1\\xe9\\x46\\x49\\x91\\x40\\x00\\x81\\x59\\xeb\\x18\\x65\\x56\\x3c\\x28\\x39\\x4b\\x03\\xa8\\xd7\\xa5\\x52\\x27\\x1b\\x28\\x76\\x68\\x75\\x66\\xb8\\x0f\\xd3\\xbe\\x2b\\x66\\x33\\x2f\\xca\\xd1\\x96\\xca\\xb8\\x52\\x7c\\x56\\xe2\\x15\\x36\\xa1\\x41\\x65\\x2c\\xdc\\x7f\\xa7\\x45\\xb2\\x6a\\x33\\x1d\\x78\\x7b\\x93\\xe5\\xe8\\x16\\xd8\\xd8\\x51\\xa5\\x8f\\x6a\\xc0\\x7a\\x58\\x27\\xfc\\xdf\\x47\\x2e\\x86\\x85\\x43\\x3a\\x40\\xca\\xc0\\xc4\\x9a\\xa5\\x69\\x31\\x9a\\x2e\\x57\\xb4\\x1c\\x99\\x98\\x16\\x5e\\x69\\x72\\x3b\\xa7\\x7e\\x5c\\x04\\x23\\xc4\\xb4\\xca\\x07\\x18\\x7b\\xb7\\x44\\x2e\\x7d\\x31\\xca\\xac\\xb2\\x77\\x00\\xc7\\x1a\\xe4\\x8c\\xd0\\x55\\xed\\x2f\\xe4\\xda\\x36\\x3f\\x44\\x82\\x11\\x24\\xcc\\xa1\\xbf\\x2e\\x63\\xd9\\xb8\\xab\\xd2\\xfa\\x41\\xb1\\x42\\x2f\\x52\\xd5\\x58\\xbc\\x5f\\x11\\x0c\\x86\\x3c\\xc6\\x00\\x86\\x49\\x84\\xed\\x25\\x9b\\x73\\xcd\\xdd\\x57\\x96\\xb3\\x29\\x79\\xed\\xdf\\x76\\xa0\\x7b\\xc5\\x9b\\x73\\x68\\xc4\\x8e\\x12\\x9e\\xcc\\x0d\\x45\\x35\\xdc\\xce\\xe2\\xc3\\xb8\\xe5\\x6d\\xe5\\x0e\\x6f\\x5c\\xc6\\xea\\x51\\x5c\\xd6\\xa0\\xeb\\xdf\\x1c\\xa7\\x9a\\xa2\\x79\\x48\\x21\\xad\\x2e\\x10\\x9e\\xdd\\xa4\\x50\\xc9\\xfc\\x3c\\x84\\xd8\\xc9\\x6b\\xc3\\x8d\\x4b\\x43\\x7a\\x73\\x8f\\x81\\x8b\\x4d\\xdc\\xb6\\x84\\x38\\x3c\\x09\\xb1\\x1b\\x36\\x05\\x2e\\x9d\\x2f\\x76\\xa6\\x1e\\xb4\\xd6\\x20\\x49\\xce\\xd5\\xf6\\x16\\x62\\xc4\\xb9\\xec\\xd2\\x4a\\x67\\xf4\\x51\\x9d\\x46\\x52\\x8c\\x5b\\x2e\\xb2\\x10\\x05\\xf4\\x9c\\x73\\xa3\\x37\\x0c\\x68\\xe3\\x7a\\xc2\\xb1\\x8d\\x48\\x1f\\xa1\\x0f\\x96\\x71\\x4f\\xe0\\x5c\\x16\\x8d\\xf1\\x1c\\xda\\x54\\xf1\\x4f\\x49\\x37\\xe9\\xfc\\xe1\\xf5\\x16\\xc0\\x37\\x1b\\x36\\xa2\\xc0\\xa0\\x50\\xba\\xc7\\xfa\\x51\\x22\\xa6\\xe3\\x5e\\xc9\\xc4\\x04\\x36\\x58\\x5f\\x31\\x6e\\x6c\\x91\\x1b\\xdf\\xd7\\xdb\\x4b\\x80\\xb4\\x30\\x64\\x79\\xb8\\x2a\\x2b\\x24\\x3a\\x52\\xb2\\xd2\\xb6\\x27\\x42\\xed\\x11\\x28\\x27\\x90\\xcf\\x6f\\xdc\\x7c\\x9c\\x82\\x43\\x64\\xcf\\x25\\x63\\x6a\\x85\\x51\\x50\\xbd\\xdb\\xdf\\x7e\\x64\\x0f\\x9f\\x95\\x2a\\x94\\x7e\\xc7\\x97\\x49\\x25\\xe8\\x24\\x50\\x68\\xb2\\x92\\x10\\x1b\\x1f\\x4b\\x20\\x18\\xe8\\x5d\\x07\\x8c\\x2f\\xee\\xf4\\x49\\x23\\x49\\x72\\x9a\\xd4\\xac\\xb3\\x8f\\x1c\\x7c\\x02\\x70\\xb6\\x1d\\x3d\\xfd\\x76\\x36\\xc6\\xcb\\xf1\\x81\\xe4\\xc8\\xa0\\xe6\\x4f\\xa0\\x61\\x32\\x55\\x3c\\x2b\\x9d\\xb7\\x01\\x9e\\x3b\\x3c\\x48\\x5d\\x8d\\x5b\\x7d\\xfd\\x5f\\x51\\x5e\\x4d\\x71\\xed\\xe5\\x35\\xae\\x7f\\x2a\\xae\\xdc\\x23\"},\n{{0xbe,0x6b,0x2b,0xab,0xdd,0xd2,0xdc,0xa1,0xb0,0xe1,0x0d,0x12,0xd2,0x0a,0x9c,0xe2,0x9c,0x67,0x85,0xda,0xc1,0xd6,0x0f,0x2e,0xdf,0xa9,0x4a,0xc2,0x78,0x4b,0xa7,0x66,},{0x39,0x8f,0x22,0xf0,0xef,0xbf,0x8c,0x38,0x35,0x5e,0x47,0x91,0xbf,0x67,0x08,0x98,0x95,0x1f,0xbb,0xd5,0x51,0x8f,0x0e,0x2a,0x60,0x5d,0x46,0x00,0x23,0xf6,0x13,0xf0,},{0x70,0x2a,0xb9,0xac,0xbf,0xa7,0x5e,0xa2,0xad,0xbe,0x4b,0xe2,0xb6,0x84,0x76,0x25,0xae,0xb4,0x09,0xee,0xf9,0x59,0x6f,0xab,0xe3,0x9d,0x2c,0x53,0x3a,0x03,0x43,0x1e,0x5e,0x57,0x95,0x52,0xe8,0xa6,0x4f,0xc4,0xfb,0x7d,0x92,0x6a,0xa8,0xff,0xfe,0x06,0x40,0x69,0x84,0x64,0xc4,0x45,0x4c,0xe3,0x5f,0xe8,0x3f,0xf2,0x63,0x05,0x1a,0x01,},\"\\x5c\\x92\\x95\\x88\\x1b\\x7a\\x67\\x06\\x69\\xb0\\x4c\\xbe\\x0d\\xab\\xd8\\x96\\x93\\xb7\\x7f\\x7c\\xce\\x0d\\x4a\\x33\\xf5\\x2e\\x02\\xeb\\x26\\x95\\x9e\\x71\\x3d\\x9a\\xef\\x5f\\x95\\x44\\x2b\\xdf\\x91\\x72\\x83\\x83\\x32\\x52\\x02\\xaa\\xcc\\xc0\\x37\\x47\\x7e\\x36\\x66\\xfa\\xca\\xf2\\x4e\\xac\\x95\\x34\\x87\\x9a\\xa3\\xef\\xe1\\x8f\\xfc\\x1a\\x5c\\x54\\xe3\\x9c\\x76\\x87\\xd0\\x93\\x7b\\x24\\x71\\xba\\xb3\\x89\\xb6\\x46\\xcb\\xe6\\xb3\\xe5\\xd5\\x96\\x1e\\xa6\\x3b\\xd4\\x52\\xb4\\x74\\x33\\x44\\xce\\x4c\\x79\\x33\\x74\\x52\\x37\\x95\\xc7\\x81\\xee\\x84\\xd5\\x11\\xe2\\x94\\x11\\x19\\xba\\xd1\\xf4\\xa7\\x46\\xed\\x9d\\xba\\x89\\xc8\\xd0\\x75\\x1a\\x64\\x02\\x71\\x86\\x35\\xf6\\xe3\\x1d\\x9e\\x18\\x68\\x1c\\x69\\x56\\xc5\\x37\\x32\\x51\\xd3\\x5f\\x53\\xba\\xa1\\x98\\x7c\\xd4\\x48\\xc9\\x03\\x1a\\x07\\xf3\\x2c\\x80\\x29\\x11\\x9d\\xe3\\xa9\\x16\\x31\\xde\\xde\\x1d\\x93\\x3e\\x0f\\xa3\\x26\\x29\\xaf\\xe1\\xb4\\x2e\\xb5\\x91\\xc2\\x2f\\x87\\x33\\x1e\\x93\\xcc\\x08\\x3c\\x23\\xf6\\x4a\\x6e\\x5e\\x58\\x6f\\xf3\\x1c\\xc0\\x4e\\x42\\x3c\\x56\\xae\\x3f\\x6a\\x73\\x94\\x6c\\x48\\xde\\x4d\\x85\\xab\\x00\\x17\\xba\\x24\\x45\\x6d\\x69\\xb5\\x9d\\xca\\x6d\\x40\\x3b\\x64\\xb0\\x7c\\x40\\xd3\\xb9\\x0e\\x12\\x23\\x21\\x5e\\x3f\\x7e\\x87\\x6c\\x67\\x01\\x11\\x1e\\x37\\xe5\\x17\\x77\\x08\\x87\\x31\\x0c\\xa8\\x56\\xf0\\x09\\xa0\\xd6\\x06\\x54\\x83\\x5d\\x94\\xe6\\x58\\x7a\\x43\\x9d\\xa5\\xdb\\x0a\\x0c\\x37\\xd7\\xc9\\xd3\\x7c\\xa1\\xd7\\x03\\xe1\\xb3\\x22\\x76\\x31\\xad\\xac\\xaa\\x79\\x42\\x1a\\x1c\\x43\\x9d\\x60\\x34\\x9a\\xe5\\x77\\x41\\xb7\\xa8\\xad\\x09\\xec\\x29\\x31\\x23\\x03\\x0b\\xf6\\xba\\xc0\\x68\\x9e\\x53\\x1c\\xa7\\xe7\\x27\\x18\\x22\\x3f\\x9e\\xa4\\x3b\\xec\\xb0\\xee\\x9d\\x9c\\x1a\\xb8\\x45\\xed\\x1c\\xae\\x44\\x3e\\x3c\\x5d\\x4a\\x9b\\x1e\\xde\\x6d\\xb3\\x41\\x7c\\x3a\\xce\\x28\\x11\\x43\\xf4\\x2d\\x85\\xf5\\x99\\xb3\\xb9\\xd3\\xd0\\x5f\\xa0\\xed\\x07\\xc1\\xec\\x35\\xff\\xab\\x03\\x05\\x16\\x8b\\x4e\\x56\\xe5\\x8a\\xfa\\x06\\x17\\xf9\\xa8\\x6b\\x1b\\x5b\\x20\\x1d\\xcc\\xb0\\x72\\xb4\\xce\\xf0\\xbb\\x7b\\x95\\xc5\\x2d\\xae\\xef\\x9d\\x9e\\x74\\x24\\xa5\\xc0\\xf1\\x48\\xf9\\xff\\xe6\\x0a\\x5b\\x23\\xe0\\xff\\x82\\xc7\\x30\\x99\\x2a\\xc9\\xc1\\x7f\\x97\\xf0\\x65\\xcf\\x0a\\xd5\\x37\\x7e\\xac\\xcb\\x31\\xd8\\xbb\\x92\\x3b\\xd2\\x60\\xea\\x11\\x9e\\x6f\\xa9\\xbd\\x69\\x83\\x48\\x2d\\x70\\xd9\\x21\\x91\\x02\\x40\\x2d\\xc6\\xa3\\x49\\x91\\x93\\xd0\\xc1\\xcd\\x3e\\xd2\\xa6\\x69\\x21\\xa9\\x8d\\xf6\\x9b\\x79\\x14\\x13\\xf4\\x97\\x0b\\xbc\\xe0\\x4f\\x63\\x9a\\xf9\\x09\\xc6\\x4f\\x45\\x60\\xdb\\x0a\\xf6\\x00\\x3d\\xc4\\x62\\x19\\xe8\\xad\\x2b\\x37\\x2f\\x8b\\x5f\\x81\\xcf\\xaa\\x04\\x1a\\xb7\\x1a\\x34\\x8c\\x93\\x1e\\x8d\\xfd\\xbc\\x40\\x9c\\x22\\xd7\\xee\\x6e\\x07\\x62\\x6e\\x10\\x4e\\xc6\\xcc\\x7c\\x6a\\x41\\x16\\x17\\x7f\\x93\\xaf\\x16\\xf1\\x24\\xf1\\x96\\xda\\xb6\\x19\\xb6\\xf6\\x98\\xc2\\xd1\\x91\\x85\\x8e\\x96\\x0c\\x2e\\x94\\x7b\\x51\\xf3\\xac\\x48\\x38\\x75\\x9c\\x21\\xfe\\xf7\\xeb\\xae\\x35\\xda\\x24\\xf5\\x5e\\xbd\\xa9\\xb9\\x87\\x9a\\xea\\x17\\xa6\\xd8\\xd9\\x27\\xde\\x48\\x7b\\x17\\x5f\\xd7\\xfa\\xa2\\x14\\x38\\xa2\\x09\\x23\\xdd\\xbb\\xca\\x72\\xe6\\x72\\x69\\x34\\xbd\\x6c\\x21\\xe8\\x11\\x80\\x19\\xf6\\x5b\\x38\\x10\\xa0\\x7f\\xa2\\x7b\\x1c\\xba\\x64\\xd0\\xf3\\x9f\\x0b\\xfd\\x49\\xdc\\xfa\\xfd\\xef\\xe3\\x79\\xbd\\xea\\x82\\xf3\\x1a\\x9c\\x39\\xf7\\xe8\\x1d\\x29\\x43\\x37\\xd1\\x0f\\x1e\\x9d\\x8b\\x50\\xeb\\xa4\\x58\\xce\\x7b\\x75\\x3d\\x36\\x96\\x85\\x38\\x51\\x3e\\xdd\\xb0\\xe8\\x45\\x34\\x41\\x1c\\x4a\\xf3\\xf0\\x21\\x46\\x10\\xee\\x39\\x01\\xa0\\xeb\\xf3\\x16\\x17\\x3c\\xca\\xf1\\x5c\\xd7\\xee\\x49\\x6d\\xbf\\xc2\\x46\\x5e\\xb8\\x34\\xdf\\x62\\x02\\x9d\\x62\\x1f\\xe9\\x11\\x82\\x4d\\x79\\x87\\xdf\\x2d\\x46\\x34\\x6b\\x4d\\xce\\x1e\\xce\\x7d\\x19\\xd5\\x51\\x18\\xc0\\x37\\xc9\\x95\\x51\\x11\\xd0\\x7f\\x1f\\xc3\\x62\\xc7\\x39\\xf1\\xea\\x5b\\x27\\x5c\\x71\\xc0\\xae\\xbf\\x59\\x65\\x5e\\x2d\\xef\\x16\\xe1\\x23\\xb3\\xeb\\x25\\x26\\xc3\\xca\\x5e\\x83\\xcb\\x24\\xd5\\xb6\\x8d\\x7a\\xc4\\x0a\\x67\\x59\\x33\\x84\\xc5\\x63\\xaf\\xe0\\xb5\\x52\\xad\\xaf\\x60\\x80\\x50\\x35\\xbe\\x97\\xb8\\x06\\x76\\xad\\xeb\\x15\\x76\\x52\\x08\\x33\"},\n{{0xb1,0xe4,0x7c,0xa3,0x1c,0x64,0xb6,0x8a,0xaf,0xaf,0xb4,0x43,0x51,0x2e,0x66,0x78,0x7c,0x65,0x92,0xf3,0x34,0xaa,0x78,0xfa,0x21,0x9a,0x3d,0x93,0xc3,0x3a,0x4a,0xb3,},{0x58,0x11,0x9b,0x38,0xe6,0xa1,0x48,0xa9,0x36,0xbc,0x5f,0x92,0xf4,0xf2,0x9b,0x98,0x2f,0xf2,0xcc,0xa6,0x4a,0x5a,0xff,0xa1,0x4c,0xa1,0xb6,0xa6,0x2f,0xe3,0x28,0xc4,},{0xdf,0xac,0x86,0xdf,0x58,0x6e,0xc3,0x4c,0x7c,0xfe,0xa5,0xd5,0xa6,0xcd,0x11,0x40,0xe5,0x0b,0x6b,0xf0,0x50,0xf8,0xe4,0x1a,0x19,0x0e,0xbf,0xd3,0xb1,0x43,0x2b,0x95,0xa5,0x7d,0x56,0x52,0xdb,0xae,0x8f,0x53,0xe0,0x37,0xae,0x32,0x6e,0x7f,0x18,0xcf,0xef,0x7c,0x77,0x9f,0x40,0x34,0x6f,0x7c,0x0d,0x86,0x44,0x61,0x05,0x93,0xf2,0x09,},\"\\x76\\x7e\\xc1\\xb3\\xda\\xf2\\x04\\x38\\x7f\\x3f\\xd3\\xb2\\x00\\x10\\x78\\x1a\\xfb\\x1f\\x38\\xf6\\x14\\x47\\x42\\x13\\x28\\x7f\\xff\\x11\\x30\\x7f\\x5f\\xf5\\xae\\x7e\\xc9\\x45\\xa2\\xb9\\xb4\\x87\\x00\\x49\\xd4\\x53\\x2f\\x8f\\x61\\xc1\\xa7\\xb5\\xf2\\x11\\xfc\\xa2\\xe6\\x7c\\x37\\x4d\\x96\\x21\\x9d\\x8e\\xa9\\xde\\x73\\xf0\\xe3\\x87\\x04\\xfc\\x94\\xc0\\xe9\\xe7\\x2f\\x2e\\x15\\xda\\xba\\x3f\\x88\\xf7\\x49\\xb1\\xed\\x70\\x26\\x60\\xdb\\x1a\\x35\\x2a\\x26\\x67\\xd4\\xdf\\xd4\\xe0\\x0a\\x18\\xef\\xa4\\xc6\\x60\\x9e\\xe9\\xc9\\xa8\\x8a\\xda\\xcb\\xbb\\x98\\x5d\\x3d\\xe8\\xdd\\xd1\\x7d\\x4e\\x4e\\xb7\\xcf\\x74\\xa1\\xda\\x91\\xed\\xb3\\x90\\x85\\x2e\\xa4\\xcb\\x9a\\x42\\x4f\\x7f\\xa2\\x22\\x9e\\x08\\x30\\x33\\xa3\\x40\\x59\\x11\\x7e\\x5e\\xfa\\x7b\\x66\\x13\\xd7\\x5e\\x58\\xb7\\x02\\xc6\\xce\\xe5\\xd0\\x04\\xe8\\x59\\x9b\\x97\\x50\\x3a\\x5f\\x10\\xc4\\xc4\\xe5\\xb9\\x57\\x73\\x71\\xd3\\xd0\\x5b\\x2d\\xfb\\xf7\\xcb\\xef\\xe6\\xd0\\x92\\xd6\\x5c\\xbd\\x40\\x51\\x38\\xd9\\xb0\\x4c\\x51\\x86\\x23\\x59\\x83\\xfa\\xb6\\xd4\\xce\\x85\\xb6\\x36\\x27\\x62\\x06\\xd7\\x4a\\x2e\\xe7\\xdb\\x61\\x64\\xda\\xc4\\x7c\\xce\\x78\\xf5\\x0d\\xb9\\x9a\\xf6\\xac\\x6e\\x70\\x64\\xc1\\x3a\\xab\\x79\\x3b\\xe8\\x7e\\x66\\x28\\x9c\\x94\\xa0\\x9f\\xb0\\xa3\\x1d\\x97\\x97\\x1e\\xdd\\x74\\xea\\x9c\\x0c\\xe8\\x74\\xd2\\xb7\\xd6\\xc4\\xab\\xae\\xff\\x07\\xf8\\x70\\x22\\x51\\x51\\x94\\x6a\\x5c\\x47\\x6f\\x6b\\x97\\x89\\x96\\xb8\\x7d\\x8c\\x98\\x46\\x06\\xc7\\x91\\x28\\x7d\\xa6\\xba\\xd0\\xaa\\x44\\xb0\\x13\\x0b\\xe8\\x86\\x71\\xa5\\x56\\xe2\\xde\\x35\\xc4\\xcb\\x03\\x8e\\xe7\\x81\\x27\\x35\\x30\\xac\\xe0\\xa1\\x04\\xc2\\x78\\x09\\xae\\xe0\\x33\\xc8\\xbf\\x90\\x29\\xd9\\x0f\\xe7\\xba\\x06\\xaa\\xa9\\x4e\\x16\\xa5\\x2c\\x64\\x3d\\xfd\\x92\\xa7\\x62\\x4f\\xbb\\xee\\x77\\xa7\\x15\\x8b\\x2c\\xc1\\x51\\xbd\\x3f\\x61\\xa1\\xa7\\x6f\\x32\\xb2\\x84\\x89\\x30\\x7a\\xcf\\x0d\\xd8\\xc2\\x6c\\xc4\\xad\\xbb\\xb8\\xde\\x43\\x0d\\xb4\\xe4\\xf5\\x83\\x08\\xb6\\xab\\x90\\x45\\x61\\x11\\xde\\xac\\x29\\x78\\x17\\x2f\\xe1\\xfc\\x0c\\xe4\\x98\\x08\\x8a\\xdd\\x4c\\x31\\xc2\\x1f\\x24\\x27\\x90\\x25\\xfe\\xb4\\x8c\\xbb\\x7a\\x92\\x0c\\xff\\x2d\\x28\\x71\\x05\\x87\\xaf\\x52\\xc8\\x44\\xdb\\x8a\\x7a\\xeb\\x7d\\xf1\\x0d\\x43\\x41\\x1a\\x3c\\x8e\\xee\\xbb\\x40\\x6d\\x6e\\xfc\\xb1\\x92\\x48\\x88\\x7d\\x45\\x0b\\x57\\x3d\\x90\\x30\\x5e\\x1f\\x23\\x75\\x3e\\x89\\x05\\x11\\xdc\\xc7\\x7c\\x74\\x0e\\x31\\x6a\\xd7\\xf5\\x2d\\x49\\x02\\x07\\x3d\\xb3\\x99\\x8e\\x4e\\x4a\\xcc\\x4e\\x01\\x88\\x5b\\xd1\\x18\\x8e\\xcd\\x61\\x65\\xae\\xde\\xd1\\xe7\\x78\\x70\\x2b\\x6a\\x6a\\x79\\xa9\\x49\\x99\\x10\\x2d\\xf7\\x20\\x18\\xf7\\x92\\xf8\\xf1\\x62\\x00\\x7e\\x81\\x2a\\xef\\x8f\\x95\\x6e\\x12\\x32\\x82\\xbb\\xdb\\xd0\\xc3\\x56\\x12\\xc2\\xd3\\x47\\x3f\\x94\\x4c\\x6d\\x76\\xbe\\x9e\\x86\\xff\\xfa\\x46\\xcc\\xb1\\xae\\x13\\x50\\x5a\\x4a\\x81\\xf3\\x1b\\x84\\x26\\xb8\\xb6\\x0d\\xe8\\xe8\\xa7\\xc1\\x6d\\x1e\\x16\\x65\\xb2\\x71\\x43\\x46\\x65\\xc4\\x42\\xa9\\xc6\\xa9\\x77\\xce\\x98\\x6f\\x69\\x93\\xb7\\x43\\x9a\\xf0\\x3b\\x40\\x2e\\xea\\xff\\xf1\\x45\\x6d\\x15\\x15\\x26\\xd9\\xc5\\x8f\\x51\\x5f\\xd2\\x48\\x5e\\x0c\\xbb\\x32\\x4a\\x50\\x3a\\x8d\\x49\\x13\\x44\\xcd\\xb2\\xaf\\xf4\\xc4\\x1a\\xa8\\xe2\\xed\\x66\\xe5\\x80\\x83\\xbf\\x0d\\x2f\\xbf\\x48\\x77\\xc8\\x5a\\x4b\\xcd\\x6b\\x9c\\xbb\\x82\\x12\\x42\\xc9\\x41\\x47\\xe5\\xfd\\x8b\\x7d\\xd7\\x92\\xad\\x0a\\x28\\xd4\\x9d\\x41\\x10\\x0b\\x43\\x1b\\xb4\\xd8\\xc7\\x83\\x3d\\x85\\x05\\xdd\\x9e\\x26\\x49\\xf9\\xca\\x70\\x51\\xbe\\x68\\x71\\x2e\\xf3\\x63\\x71\\x02\\x03\\x6b\\x00\\x26\\x49\\x47\\x3c\\xe2\\x59\\x67\\x7d\\x82\\xc6\\x06\\x28\\x95\\xe1\\x61\\x92\\x8b\\x75\\x2f\\x13\\xc9\\x1a\\x45\\x95\\x5e\\x80\\xf0\\x07\\xde\\x69\\x0e\\xdf\\x8a\\x0e\\x5e\\xee\\x44\\x22\\xe1\\x62\\xb9\\xd2\\xb4\\xa9\\x21\\xd3\\xa6\\x48\\x45\\x79\\x3a\\xa2\\x22\\x9e\\x9c\\x23\\x9e\\x57\\xa6\\xb1\\xa9\\x0a\\x52\\x54\\xc3\\x51\\x2f\\x99\\x34\\x53\\x15\\xac\\x7d\\x34\\x57\\xf9\\x15\\x42\\x96\\xc6\\x68\\x22\\xab\\xe1\\x84\\xd6\\x4e\\x57\\x2b\\x9c\\x38\\x49\\x29\\x58\\xe2\\x1b\\x02\\x92\\x67\\x54\\x10\\xe7\\x34\\x8b\\x2b\\x71\\x8a\\x0b\\x75\\x92\\xca\\xee\\x94\\x58\\x1a\\x94\\x8d\\x2f\\x41\\xfa\\x03\\xc6\\x1e\"},\n{{0xfb,0xd5,0x5f,0xa7,0x43,0xc3,0xa5,0x91,0x0b,0x38,0x57,0xdd,0x0b,0x6a,0xa5,0x84,0xf3,0xb2,0x38,0xde,0x05,0x6b,0x76,0xab,0x76,0x17,0xae,0xb5,0x26,0x38,0xfe,0xf6,},{0xa7,0xa1,0x63,0xc4,0x18,0x3b,0xd8,0x4b,0x75,0x6d,0xf3,0xc8,0xaf,0xdf,0xb9,0xcd,0x5b,0x24,0x23,0x52,0xd9,0x49,0x9e,0xbd,0xab,0x90,0x78,0x5c,0x3b,0xd6,0xdb,0x2d,},{0xef,0xfb,0x29,0xda,0x69,0x85,0x97,0x1c,0x20,0x2e,0x24,0x50,0x30,0x1d,0x49,0x71,0x1b,0xed,0x25,0xfa,0xd8,0x5f,0x61,0x99,0xd1,0xeb,0x1e,0x71,0x91,0x4d,0x96,0x4c,0xbe,0x18,0xe3,0x4c,0xc3,0xe3,0x28,0x72,0xcd,0xec,0x02,0x6b,0xd1,0x19,0xa4,0x1c,0x1c,0x07,0xca,0x41,0xe8,0x2a,0xcb,0xa6,0x2f,0xb0,0xa7,0xc8,0x2a,0xed,0x80,0x0c,},\"\\xbf\\x52\\x52\\xb2\\xae\\xca\\x11\\x63\\x77\\x1f\\x76\\x62\\x78\\x76\\x80\\x66\\xf2\\x19\\x71\\x35\\x7e\\xa7\\x99\\x61\\x58\\xa8\\xd6\\xe9\\x08\\xdd\\x59\\xb5\\x99\\x71\\x34\\x9f\\xa1\\x78\\x82\\xcb\\x92\\x24\\xb9\\x72\\xd0\\xff\\xab\\xe8\\x55\\x10\\xdc\\xf2\\x5a\\x9f\\x9f\\x9b\\xde\\xfa\\xd2\\xf4\\xca\\xdf\\xbb\\xda\\xcc\\x1f\\xca\\x9d\\x94\\x8c\\xb5\\x41\\x2f\\x47\\x4c\\xad\\x23\\xb5\\xb9\\x19\\x9b\\xf3\\xc7\\x37\\x06\\x41\\x33\\x9b\\x75\\x0e\\x1f\\x78\\xc2\\xad\\xb4\\x60\\xaa\\x5b\\x21\\xb1\\xfa\\x8f\\x97\\x71\\x4a\\xbb\\x4e\\xd5\\xe9\\xcb\\x51\\xd6\\xde\\x55\\x81\\x66\\x18\\xab\\xd3\\xfd\\x2b\\x28\\x6b\\xc1\\x1c\\x67\\xba\\x01\\x12\\x93\\x73\\xd4\\x35\\xb3\\xe7\\xe3\\x91\\xba\\x37\\x26\\x14\\xda\\x83\\x22\\x87\\x5e\\x46\\xa6\\x75\\xb6\\x45\\x15\\x60\\x24\\xca\\xd2\\xdd\\x13\\xf9\\xa0\\x81\\x61\\x6b\\xf1\\x31\\xa2\\x43\\x58\\x89\\x4e\\x0e\\xfa\\x1d\\x56\\x64\\x8f\\xfb\\x42\\xef\\xb5\\x40\\x31\\xda\\x7f\\x37\\xd1\\x97\\x61\\x51\\x55\\xae\\xdb\\x69\\xc4\\xe7\\x09\\xc8\\xbb\\xbe\\x7f\\xbf\\xcb\\x59\\x83\\x47\\xac\\x5d\\x0c\\x63\\x84\\x07\\x84\\x7b\\x28\\x1c\\xf1\\x16\\x43\\x30\\x97\\xf5\\x66\\x21\\x58\\x71\\x9f\\xcd\\xd3\\x7b\\xeb\\x48\\x92\\x68\\xce\\x71\\xde\\x7d\\x70\\xed\\x92\\x5f\\x74\\x3f\\xc6\\x3a\\x71\\x5f\\x7e\\xee\\x75\\x49\\xfd\\xb9\\x09\\xcc\\x45\\x4c\\x98\\x8b\\x30\\xae\\x4d\\x77\\xd6\\x2f\\x65\\xa0\\x7e\\x2c\\x8f\\x93\\x62\\x38\\x5d\\x02\\x8a\\x60\\x31\\x08\\xc9\\x45\\x87\\x2f\\x5e\\x1a\\x97\\x41\\x98\\x78\\xed\\x49\\x54\\x2e\\x28\\x8e\\xf0\\x7b\\x5c\\x90\\xf5\\xc4\\x15\\x9e\\x16\\x23\\x03\\xd0\\x80\\xf6\\xac\\x2b\\x05\\x8d\\xdc\\xac\\x60\\x74\\x6f\\x9e\\x1c\\x9e\\xc1\\xdf\\x8e\\xda\\x42\\xd6\\x27\\x38\\x58\\x6d\\x3f\\xdd\\x65\\xdf\\x55\\xf4\\x37\\x4f\\x32\\x94\\xe0\\x86\\x8d\\x41\\xef\\x0b\\xb1\\xfd\\x55\\xe0\\xcb\\xf1\\x95\\xbb\\xfc\\xfc\\xde\\x5b\\xdb\\x41\\xfa\\xd9\\xa0\\x47\\x7e\\x4c\\x90\\xca\\x27\\xfa\\x8c\\xf5\\x03\\x36\\x2a\\x33\\xfd\\xec\\xa5\\xa4\\xf0\\xff\\xea\\x26\\xe8\\xd7\\xe1\\x34\\xfa\\xd3\\xb1\\xec\\x3d\\x05\\x60\\x55\\xbb\\xa5\\xe6\\x5d\\x81\\x15\\x3e\\xe8\\x31\\x87\\x3b\\x93\\x8d\\xf7\\xd2\\xc8\\x3c\\x2a\\x52\\xb3\\xc2\\x21\\x82\\x7f\\x96\\x1b\\xd0\\x08\\x36\\x22\\x32\\xd8\\x82\\xa0\\x41\\x2a\\x04\\x7a\\xfd\\xfb\\x85\\x97\\xc8\\x65\\xa2\\xaa\\x2c\\x2c\\xf5\\x18\\x99\\x34\\xa8\\x3e\\xe6\\xb7\\x52\\xa6\\x26\\x94\\x1e\\xdc\\xe0\\xc2\\x0b\\x6f\\x7a\\x69\\xf1\\xcf\\x12\\xf9\\xa3\\x31\\xcd\\xfa\\x9e\\xda\\x24\\xc8\\xde\\xfa\\x76\\x9c\\xcc\\xe2\\xef\\x74\\x6c\\x30\\x7d\\x8b\\xb0\\x48\\x91\\xfc\\xef\\xd4\\x9a\\xf3\\xe6\\xf9\\x69\\x91\\xa7\\xa2\\x0f\\x27\\xb6\\xc0\\xaf\\x12\\x18\\xbe\\x31\\x79\\x1d\\x1d\\x02\\x93\\xe0\\x81\\xb9\\x0a\\xf3\\xb9\\x2e\\xcb\\x17\\x5e\\xc8\\xc7\\x89\\xf7\\xa8\\x64\\x2e\\x04\\x1e\\xc3\\xa6\\x1a\\xae\\xfe\\xf6\\x2a\\x80\\x7d\\x1a\\x50\\x54\\xad\\xf8\\x32\\x3b\\xed\\x94\\x22\\x41\\x62\\x37\\x32\\xa2\\x05\\x1d\\xc0\\x1f\\x9a\\x20\\xa2\\x9a\\xa4\\x8b\\x3f\\xdf\\x26\\x5d\\x0b\\xa6\\xc1\\x38\\xfb\\x57\\x93\\xe2\\x87\\x50\\x02\\xe7\\xde\\x3f\\x5c\\x3f\\xf7\\xe8\\x3a\\xd2\\x7d\\x11\\x1c\\x84\\x8b\\x7e\\x6e\\x2e\\x5a\\xd5\\xf2\\x8e\\xb7\\xc3\\x63\\xf9\\x5f\\x96\\x0c\\xbc\\x42\\x13\\x36\\xce\\x98\\x5f\\x94\\x6b\\x05\\x15\\xb1\\xbd\\xd3\\xa8\\x32\\xc3\\xfe\\x90\\x3f\\x7b\\x44\\xe2\\x0c\\x92\\xea\\x80\\x82\\x6f\\xbf\\x97\\xe2\\xa4\\xfc\\xaf\\x2d\\xb1\\xa0\\x86\\x98\\xdd\\x62\\xed\\xd0\\xa8\\x45\\x89\\xd7\\x46\\x2c\\x44\\x7b\\x4a\\x89\\x6f\\xe0\\x08\\x60\\x04\\x24\\x96\\xbd\\x51\\xb1\\x92\\x5c\\xb7\\x9c\\xc3\\xb8\\x29\\x01\\x6a\\x4c\\x7e\\x62\\x79\\x0f\\x80\\x58\\xc5\\x46\\xf2\\x14\\x5a\\xaa\\xef\\x4d\\x4b\\x1e\\x27\\x3f\\xf6\\x13\\x00\\xf8\\x00\\x8e\\x94\\x6b\\x62\\x2f\\x60\\xe5\\x05\\xf5\\xf6\\x29\\x0d\\x51\\xeb\\x99\\x7d\\x20\\xfc\\x3f\\xbb\\x3e\\x99\\xed\\xd6\\x8f\\xf5\\xcc\\xe9\\xe8\\xc2\\x83\\x88\\x1c\\x36\\x4f\\xf2\\x15\\xcb\\x50\\x04\\x5e\\x60\\xf4\\xa7\\xee\\x45\\xb6\\xc9\\xd8\\x64\\x47\\xf3\\x81\\x41\\xd3\\x42\\xdb\\xc5\\x30\\x8f\\x8c\\x66\\xef\\xc4\\x7f\\x7c\\x45\\xf6\\xd2\\x5e\\x65\\x64\\x30\\x9a\\x86\\x2d\\xb9\\x0f\\x4d\\xf3\\x31\\x78\\x7e\\xcd\\xd8\\x9d\\x3a\\xaa\\x46\\x05\\x3e\\x29\\xf1\\x02\\x62\\x4d\\xdf\\xe8\\x0e\\x8a\\x3f\\x99\\x28\\x7c\\xec\\x19\\xfa\\x83\\xe4\\x4d\\x55\\x7c\\x04\\x41\"},\n{{0x5d,0x66,0xce,0xb7,0xc6,0xe5,0x8c,0xac,0x91,0xe2,0x88,0x27,0x91,0x70,0xe8,0x18,0xe7,0x87,0x18,0x0c,0x6b,0x42,0xdf,0xa1,0x68,0x78,0x7d,0xd0,0x7f,0x80,0x9f,0xa4,},{0xef,0xc9,0xb3,0x5d,0xb8,0x1f,0x34,0x61,0x98,0xa7,0xac,0xc6,0x9f,0x65,0xfd,0xfb,0xf4,0xc2,0x2e,0x68,0xdd,0x76,0x12,0xe3,0xb8,0xec,0x68,0xd3,0x78,0x55,0x3b,0x8d,},{0x6e,0xf2,0x64,0xab,0xf8,0xb0,0xe5,0xc2,0xd7,0x93,0xb2,0xc7,0x52,0x79,0x61,0x4a,0x39,0xc7,0x75,0xeb,0x2b,0xcc,0x08,0x91,0x06,0x7a,0xbc,0x61,0xf6,0xd6,0x44,0xa6,0x9f,0xf8,0xf8,0x14,0xa3,0x05,0x22,0xcc,0xa9,0x05,0x36,0xf0,0x12,0xc6,0x28,0x3a,0x76,0xc3,0x2b,0x89,0xee,0xe1,0xbd,0x9a,0x43,0x36,0xf4,0xfd,0xda,0xc8,0xdc,0x0b,},\"\\x94\\xd7\\x2f\\x6d\\xec\\x4f\\x7c\\x92\\x06\\xb4\\x15\\x10\\xce\\x71\\xa0\\x29\\x55\\x60\\x4f\\x3c\\x5d\\xe8\\xe4\\x47\\xd5\\x87\\x18\\x65\\xa7\\x58\\x98\\xa4\\xd2\\x07\\xa2\\x6c\\xf3\\x3d\\x10\\xca\\xf0\\x5a\\x0b\\x6e\\xd0\\xd3\\x89\\xfe\\xe9\\xed\\x49\\x27\\x50\\x98\\xa8\\x8e\\x1c\\x0d\\x83\\x04\\xe8\\x1b\\x40\\x74\\x21\\x4c\\x7a\\x5c\\xe1\\x57\\xeb\\x26\\x17\\xef\\x04\\xe1\\x32\\x4b\\xa9\\x42\\x12\\x9f\\xaf\\x32\\xc3\\x1c\\xb4\\xaa\\xe4\\xa5\\x91\\x6c\\x75\\x08\\x08\\x72\\x68\\x56\\xf7\\x18\\x0e\\x57\\x97\\xed\\xe4\\x43\\x62\\xd7\\x47\\xd7\\x0c\\xec\\x15\\x9d\\x3b\\x6a\\xce\\xc6\\x3a\\x51\\x4c\\x7e\\xf3\\x1b\\x2e\\xcd\\x16\\xdb\\x7f\\xe6\\x8e\\xa9\\xc5\\xea\\xd9\\xd8\\x70\\x92\\x18\\x00\\x34\\x8f\\x69\\x54\\x12\\xf3\\x09\\x3e\\x61\\x98\\x5a\\x31\\xea\\xdb\\x79\\xb5\\x9d\\x91\\xdd\\x9a\\x37\\xf8\\xd4\\xef\\x7a\\x5d\\xdf\\x22\\x3d\\x4b\\x24\\x77\\x4c\\x2e\\x44\\xe3\\xf2\\x71\\xff\\xb8\\x50\\x0d\\x59\\x53\\x81\\xb3\\xdf\\x2e\\x8e\\x6b\\x79\\xee\\x65\\x53\\x5a\\x51\\x9a\\x43\\xea\\xa5\\xe5\\x2b\\x25\\x6c\\x26\\x43\\x30\\x5e\\x31\\x70\\xcb\\xe5\\x76\\x06\\xa0\\x54\\x5f\\x85\\x86\\x56\\x5c\\xfb\\x75\\xbf\\x5e\\x95\\x64\\xc6\\x2a\\xf0\\x5f\\x15\\xee\\x6e\\x62\\xaf\\xee\\xf8\\xc2\\xc7\\xa9\\xda\\xe2\\x35\\xc9\\xed\\xd1\\xd7\\xc2\\x5c\\xf4\\x9a\\xdc\\x03\\x3e\\xe7\\xb5\\x83\\xf5\\x18\\xbc\\x16\\x8e\\xa4\\x88\\x36\\xb5\\x0f\\xfe\\xdd\\x20\\x32\\xb3\\xf6\\x30\\xcc\\x56\\xda\\xad\\xd5\\x13\\xeb\\xda\\x86\\x48\\x23\\x61\\x0f\\xc6\\x7a\\x72\\xb9\\xa7\\xd8\\x11\\x71\\x05\\xc1\\xc7\\x1d\\x85\\xa9\\x6b\\x1d\\x27\\xa4\\x41\\xfa\\x1e\\x7c\\x6c\\xf8\\x02\\x33\\xa4\\x9f\\xe0\\xe7\\x6a\\x40\\x27\\x8d\\x06\\xe3\\x43\\x47\\xd8\\x7b\\xe7\\x7b\\x98\\xde\\xd5\\xe2\\xa3\\xea\\x1a\\xfb\\x13\\xbe\\xe1\\xe6\\xcd\\x6c\\xa6\\x3b\\xe5\\x4f\\xcf\\x88\\xa2\\x0c\\xcb\\x7a\\x9f\\xc3\\x24\\xbf\\x61\\x43\\x20\\x1b\\x44\\x48\\x3b\\xcc\\x96\\x40\\x33\\xda\\xb7\\x1c\\xf8\\xf2\\xa5\\x91\\xfc\\x05\\x0d\\x57\\x24\\xe9\\x5a\\xa5\\x0d\\x32\\x89\\x6e\\xec\\x0f\\x3b\\x34\\x31\\x1d\\x2a\\x99\\x34\\xe9\\xf8\\x52\\x97\\x7e\\x25\\x3f\\x15\\x30\\x4c\\xae\\x24\\x16\\xc2\\xc4\\xfc\\xd8\\xf1\\xfe\\xcc\\x3f\\x1f\\x64\\xbb\\x79\\x75\\x99\\x29\\xab\\xb0\\xe8\\xe8\\xf5\\xf7\\x29\\x3d\\x69\\x1a\\xf2\\x2a\\xbd\\x3b\\x2a\\x67\\x70\\xb0\\xcf\\x14\\x46\\x08\\xf2\\xd6\\x2c\\xc7\\xe5\\x2b\\xfe\\x33\\x3b\\x2e\\xd2\\xde\\x39\\xb9\\x9a\\xfd\\x37\\xe3\\xac\\xf0\\x7e\\xda\\x37\\xdd\\xf0\\xdf\\x02\\x9b\\xff\\x2e\\xc2\\x25\\x44\\xb6\\x0b\\xd7\\xdb\\x23\\x8d\\xf1\\x97\\x5f\\xfa\\x00\\x75\\xa8\\x2a\\xbd\\x8d\\x6b\\x05\\xb2\\x67\\x18\\x0b\\x87\\x0e\\x21\\xab\\xf3\\x69\\x81\\xae\\x77\\x68\\xde\\x53\\x99\\x3b\\x30\\x4f\\x1c\\x54\\x53\\x87\\x2f\\xdf\\xa8\\xed\\xad\\x45\\xf8\\x00\\x1a\\xa0\\xe7\\x34\\x2b\\x3b\\x58\\xec\\x0f\\x38\\x9d\\xcb\\xc2\\x71\\xfb\\x0f\\x90\\x00\\x62\\x87\\x57\\xab\\xba\\x58\\xc0\\x57\\xe1\\xa0\\x89\\x9f\\x6f\\xaf\\x15\\xf3\\x74\\x0f\\x31\\x43\\xf5\\xc0\\xb7\\xa9\\x15\\x96\\x80\\xde\\x8c\\x55\\x72\\x66\\x44\\x1b\\x3b\\x01\\xca\\xac\\x12\\xec\\x27\\x8f\\x5a\\x10\\x25\\xdf\\x53\\xed\\xb6\\x13\\x4c\\x96\\x66\\x3a\\x96\\x66\\xae\\x3b\\xaa\\x90\\xfc\\x83\\x51\\x11\\xef\\x05\\x1b\\xd9\\x12\\xf6\\x79\\x67\\x44\\x91\\x13\\xb6\\xa8\\x5f\\x71\\xdf\\x8c\\x60\\x37\\x72\\x4e\\xb8\\xfc\\x7d\\x83\\x19\\xbc\\x03\\x85\\xbe\\x9b\\x0e\\x99\\xe9\\x5f\\x9a\\xed\\xca\\xe8\\xd4\\x5a\\x51\\x44\\x76\\xf0\\x5b\\xcd\\x72\\x35\\xc0\\x13\\xeb\\xc3\\xae\\xa9\\x12\\x3c\\x67\\xaa\\x6f\\x3b\\x79\\xc8\\x5e\\xa5\\xdb\\x15\\x9e\\xef\\xad\\xfb\\x75\\xa5\\x0a\\xc6\\xb9\\x5b\\x49\\x6b\\x55\\x72\\x58\\x1a\\x76\\x11\\x2f\\xf6\\xdb\\x26\\x3f\\xc1\\x4c\\x58\\x18\\xaa\\xd5\\xbc\\xa3\\xb2\\xcb\\x3a\\xc8\\x11\\x6d\\x42\\x94\\x82\\x78\\x1e\\x06\\xf6\\x1e\\x75\\x63\\xe6\\x50\\x5e\\x51\\xc8\\xff\\x99\\x8b\\xf8\\x4a\\xed\\xb5\\x20\\x2e\\x2f\\x9f\\xf4\\xc2\\x68\\x98\\x20\\x29\\x6c\\xc6\\x96\\x03\\x09\\x1b\\x8b\\x81\\x8f\\xbe\\xb2\\xaf\\x5f\\x4c\\x57\\x06\\x0d\\x98\\xc1\\xa9\\x04\\x84\\x3a\\x70\\xbf\\x97\\x5b\\x3c\\x3c\\xa6\\x03\\x1a\\x4c\\xad\\x5b\\x4b\\xbf\\xba\\x7e\\x9b\\x47\\x49\\x1a\\xb7\\x40\\xd9\\xeb\\xe4\\x1d\\x76\\x88\\x10\\xcb\\x8c\\xc5\\x1a\\x93\\x7f\\x7e\\x3b\\x22\\xe3\\xcf\\x07\\xce\\xae\\x0c\\xe2\\x08\\x31\\x49\\x5a\\xfc\\xdd\\x8c\\x1a\\x98\"},\n{{0x62,0xed,0x86,0x82,0xbd,0x3a,0xb3,0x96,0x6e,0xba,0x3b,0xff,0xb7,0x75,0xa3,0x18,0xa0,0x3d,0x99,0x93,0x19,0x79,0xe9,0x9f,0xeb,0x2d,0xdb,0xd6,0x94,0x55,0xa0,0xef,},{0xd3,0x2a,0xda,0x17,0x8b,0x3e,0xc7,0x70,0x0c,0x47,0xdd,0x6d,0x36,0x53,0x22,0x03,0x3f,0xe4,0x31,0xc3,0x02,0xb4,0x6f,0x8d,0x58,0x79,0x8e,0xd8,0x33,0x71,0x56,0x6b,},{0x3d,0xa8,0xd1,0x4d,0xc4,0xe7,0x1f,0xe6,0xc3,0x2e,0xde,0x46,0x37,0x88,0xe4,0x1b,0x82,0x6b,0x4e,0x21,0x60,0xba,0x10,0xc9,0x5f,0x1c,0x8a,0x27,0x49,0xaa,0xd8,0xf1,0x2e,0x98,0xae,0x24,0x68,0x30,0x3b,0xaf,0x69,0x08,0xbd,0xb3,0x5e,0xf3,0x8a,0x5e,0xcd,0x77,0x74,0x1e,0x72,0xee,0x3a,0x42,0x7f,0xd9,0x04,0xda,0xe6,0x6f,0xcf,0x03,},\"\\x9e\\xb1\\x3b\\xc7\\xfa\\xcf\\x51\\xa1\\x80\\x54\\x1e\\xc1\\xdc\\x5f\\x5a\\xcb\\x14\\x8c\\x8d\\x5e\\xad\\xcd\\x2c\\x4e\\xf0\\x68\\xbc\\xdd\\x11\\xb3\\x49\\x25\\xea\\xbf\\xaf\\xab\\xfe\\x82\\xa2\\x84\\xbc\\xba\\xee\\x13\\x81\\x15\\x2a\\xf8\\xe5\\xe0\\x9f\\x03\\x7c\\xf1\\xbb\\x64\\x84\\xac\\x18\\xe3\\x73\\x59\\xbf\\xaa\\x4c\\x87\\xaa\\x07\\xd3\\xd1\\x4e\\xd0\\x89\\xb0\\x53\\x91\\x0d\\x1f\\xa4\\x73\\xf7\\xbc\\xe1\\x43\\xe2\\xa5\\x9c\\x4d\\xaf\\x99\\xb6\\xc6\\xe4\\xe9\\x29\\x1d\\x97\\xc8\\x64\\x71\\x2a\\xf3\\xea\\xba\\x53\\xce\\x25\\x17\\xa4\\xf7\\x5c\\xd7\\xec\\xf2\\x78\\xf3\\x4e\\x22\\xb7\\xdf\\xfd\\x08\\x8f\\xa5\\xec\\xad\\xc0\\xdd\\x22\\x13\\x5e\\x42\\xa5\\x36\\xc6\\x84\\xf2\\x19\\x5d\\x31\\x5f\\x69\\x24\\x57\\x1e\\x46\\x3f\\x5c\\xfc\\x11\\xb9\\xf9\\xd0\\x5a\\x7e\\xa1\\x1b\\x98\\xa1\\x69\\xa1\\xe3\\x93\\x60\\x97\\x3c\\x50\\xad\\x45\\xc7\\x49\\x1b\\x57\\x13\\x8e\\xc0\\x50\\xf4\\x3c\\xbd\\x5d\\x17\\xeb\\x3f\\xe0\\x01\\x3e\\x3d\\x28\\xd5\\x26\\x05\\x4e\\x07\\x63\\x31\\x52\\x24\\x6f\\x16\\x55\\x4f\\x30\\x54\\x74\\x9e\\xea\\x68\\x7b\\x9c\\x37\\x1b\\x40\\x9c\\xd3\\xec\\xef\\xb1\\x11\\xa1\\xd6\\x00\\x40\\x73\\x44\\xe6\\xd6\\xec\\x38\\xc6\\x0f\\x6e\\x54\\x5a\\x92\\x38\\x2e\\x46\\xc4\\xd1\\x13\\x12\\x5d\\xbe\\x5b\\x98\\x26\\xe1\\x27\\xf1\\x01\\x81\\xa3\\x5a\\xcf\\xff\\x28\\xab\\x37\\x64\\xca\\x7f\\x23\\x8f\\xf4\\x79\\xfd\\xbc\\x45\\xb7\\xa2\\xad\\x0f\\xf5\\x38\\xc8\\xac\\xd0\\x01\\x8d\\x44\\x70\\xfe\\xbc\\xc6\\xa3\\x07\\x65\\x1c\\xb5\\x83\\x2f\\x32\\x6b\\x19\\x24\\x1b\\xe9\\x86\\x7e\\x4e\\xca\\x6a\\xe3\\x6f\\x0e\\x2d\\x83\\xfd\\x77\\xb9\\x72\\x02\\xb3\\x64\\x71\\x6e\\x36\\xd1\\x89\\x5a\\x36\\x85\\x3e\\x7e\\x76\\xe8\\x8f\\x62\\xdb\\xbf\\x77\\x26\\xc2\\x18\\x05\\x69\\xc6\\x66\\x73\\x83\\x7a\\xd7\\x2f\\xf9\\x36\\xcf\\x0e\\x2f\\xdb\\x9e\\xc6\\xaf\\xcc\\x79\\xf8\\x82\\x9e\\x15\\x7f\\x95\\x22\\x88\\xf4\\xe0\\x0d\\x04\\x10\\xa7\\x22\\x53\\xbf\\x60\\x5e\\xdd\\xce\\xb0\\x14\\x40\\xde\\xe5\\xdd\\x32\\xb5\\xa8\\x03\\x43\\x9f\\x03\\x8c\\x06\\xaf\\x1c\\x90\\xb2\\x7b\\x5f\\xe9\\x84\\x3c\\x27\\xae\\x76\\x60\\x9c\\xbf\\x83\\x28\\x35\\xc0\\xe3\\xc4\\xbb\\x59\\x97\\x6c\\xce\\xde\\x44\\x87\\x86\\xd9\\x1e\\x43\\x8e\\x07\\x75\\xc0\\x6a\\x92\\xd0\\xf0\\xb8\\xdc\\x0e\\xf6\\x82\\x60\\xf7\\xdd\\x9e\\x68\\x71\\xc4\\xd0\\xc0\\xc0\\x94\\x63\\x85\\x26\\x15\\x21\\x85\\x16\\xf4\\xa6\\xde\\xbf\\xdb\\x46\\x27\\x3b\\x28\\x33\\x82\\xcd\\x9c\\xa7\\x44\\xab\\xf9\\xfd\\x43\\x91\\x94\\xb8\\xcf\\x1b\\xdb\\xb3\\x17\\x5c\\xa9\\xc5\\x7a\\x1c\\x37\\x3c\\x41\\xfc\\xe9\\x2b\\xd5\\xfc\\x01\\x2b\\x19\\xa0\\x69\\x8a\\xef\\x37\\xba\\xf8\\x06\\xae\\x09\\xad\\xd8\\xcb\\x97\\x2a\\x9e\\xf9\\xa7\\xa5\\xa9\\xb1\\xfd\\x9a\\x41\\xd8\\x54\\xc3\\x0c\\xca\\x13\\x96\\x14\\x0e\\x20\\xc2\\xb9\\x86\\x54\\xfe\\x6e\\x51\\x1b\\x62\\x6a\\x43\\x91\\x5b\\x22\\xfb\\x2d\\xad\\x74\\x7b\\xa7\\xfe\\x74\\x60\\xd8\\xce\\xbb\\x20\\x06\\xfe\\xa1\\x9b\\x32\\x84\\xb0\\x9c\\x06\\xa6\\xf5\\x2f\\x17\\x9a\\x32\\xbe\\xb5\\x63\\x57\\xb9\\x29\\xa6\\x59\\xf0\\xfe\\x6a\\x26\\xb6\\x97\\x03\\x3d\\xef\\x58\\xba\\x60\\x3f\\x43\\x0f\\x74\\xaa\\x35\\x07\\x09\\x81\\xdb\\x74\\xcc\\xf1\\x91\\x90\\xa1\\xfb\\x05\\x14\\x4e\\xc0\\xa0\\x9a\\x51\\xe5\\x47\\x65\\x06\\x97\\x30\\xb0\\x9a\\x7a\\x23\\x31\\xff\\xb3\\xde\\x2a\\x7e\\x02\\xc5\\xe1\\x84\\xda\\x40\\x13\\xdf\\xe9\\x37\\xc3\\x71\\x11\\x75\\x24\\xf7\\xb2\\x10\\xba\\x60\\xe2\\x69\\x2d\\xcd\\xce\\xf3\\x6a\\xb2\\x27\\xb4\\xc4\\xf0\\x2a\\x9f\\x48\\x89\\x72\\xb8\\x47\\xf0\\xd6\\xb5\\x9d\\x02\\xee\\x54\\xfe\\xde\\x88\\x21\\xdb\\x6c\\xf7\\x31\\xcc\\x8a\\xc8\\x95\\x35\\x0a\\xc5\\xcd\\x4d\\x6b\\xaa\\x3a\\xd0\\x36\\xf0\\x6f\\x20\\xd1\\x0a\\x14\\x0c\\x4a\\xd3\\xd1\\x0c\\xa9\\x85\\x53\\x2e\\x31\\x60\\x46\\x27\\x73\\x38\\x5a\\x2e\\xb5\\xe4\\x64\\xd5\\x28\\xe1\\xe5\\x9c\\x29\\xf6\\x6b\\x3d\\xe5\\x9e\\x9e\\xa2\\x8a\\xf3\\xf9\\x7b\\xfc\\x55\\x89\\x03\\x57\\x52\\xa5\\xa5\\x52\\x3d\\xec\\xd2\\xdf\\xf0\\x1f\\xc0\\x0f\\xf3\\x1b\\x30\\x15\\x2f\\xf5\\xda\\xfa\\x33\\x1c\\x6a\\xb1\\x58\\x73\\xaf\\x41\\xaa\\x96\\x0a\\xac\\xe7\\xd2\\xcb\\x4f\\x95\\xc2\\x3d\\xf4\\x4b\\x9e\\x6c\\x6e\\x2f\\x86\\x78\\x8a\\x87\\x2f\\xd3\\xa5\\xcb\\xe4\\xac\\xc9\\x58\\x10\\xda\\xa0\\x9d\\xcc\\x1d\\xf9\\x33\\x46\\x5e\\xf0\\x40\\xc5\\x3d\\x9d\\x95\\x9f\\x9d\\xad\"},\n{{0x4e,0x57,0xf0,0x31,0x1f,0xff,0x0e,0x5d,0x53,0x88,0x49,0xb1,0x21,0x6f,0x69,0x5b,0x1a,0x52,0x77,0x94,0x17,0x08,0x20,0x4d,0xb2,0xf0,0xc1,0x5b,0x3c,0x73,0xc8,0x2a,},{0xe3,0x37,0x1f,0xe2,0x36,0xad,0x2f,0x6f,0x42,0xf9,0xe1,0xfa,0x4e,0x1e,0xda,0x2c,0x3e,0x29,0xc3,0x6c,0x8a,0xd2,0x21,0x8a,0x3c,0x03,0x79,0x82,0xf0,0xb5,0x79,0xec,},{0x4f,0xdc,0x7b,0x6e,0x28,0x27,0xf6,0x4b,0xa3,0xc0,0x33,0xc7,0xfb,0x6d,0x1b,0x35,0xdd,0x68,0x0f,0x53,0x29,0x99,0xa0,0xd7,0x7a,0xeb,0x27,0x6c,0x31,0xbd,0x9e,0x39,0xc6,0x70,0x97,0x8b,0xe4,0x72,0x43,0xc1,0x13,0x22,0x3a,0x57,0xaa,0x10,0x23,0x31,0x50,0x67,0x8b,0x40,0xdb,0x78,0x59,0x1c,0x04,0xd0,0x8d,0xf5,0x7a,0x70,0xa2,0x09,},\"\\x05\\x2a\\x1f\\x41\\xeb\\xfd\\x4b\\xf6\\x5e\\xfb\\x0e\\xc8\\xe7\\x4d\\xd7\\xb3\\x06\\x5e\\x9c\\x48\\x2c\\x49\\xb9\\x92\\x62\\xe6\\xdf\\xa8\\x40\\x7d\\x9e\\x31\\xed\\x34\\xd2\\x29\\xba\\x41\\xfc\\x49\\xa9\\x4a\\x13\\x09\\xf9\\x90\\xa9\\x9c\\xb9\\x90\\x2f\\xb8\\x4f\\x4e\\xde\\x91\\xbb\\x64\\x71\\x45\\x64\\xa9\\x13\\xd5\\x74\\xd4\\xa3\\xc2\\x86\\xf0\\xa1\\x92\\xa7\\x8c\\xe2\\xd5\\x5a\\xae\\x5c\\x9f\\xb0\\x57\\xff\\x36\\x12\\x00\\x18\\xb2\\xa8\\xb5\\x4d\\x98\\x08\\x55\\x37\\xea\\x64\\xae\\xa9\\x99\\xd5\\x32\\x1c\\x78\\x80\\xb3\\x6a\\xb4\\x30\\x18\\xea\\x2c\\x92\\xa5\\xe6\\x83\\x50\\xd3\\xde\\x85\\x26\\xe2\\xc8\\xbc\\x91\\x41\\xf4\\x34\\x9a\\x18\\xa3\\x4f\\x21\\xde\\x0a\\xbb\\xf2\\x93\\x09\\x87\\x56\\x7f\\x0a\\xaf\\x8e\\xb1\\x91\\x45\\x58\\x0d\\x71\\x30\\x6c\\xe8\\xa6\\x9e\\x79\\xf8\\xee\\xa2\\x6c\\xfa\\x0b\\x8b\\xeb\\x49\\xcc\\x5a\\xa2\\xbc\\x77\\xb7\\x97\\xd4\\xf8\\xd5\\x03\\x26\\xff\\xb9\\x37\\x39\\x9e\\x94\\xfd\\xec\\x85\\xe1\\x92\\xf1\\x27\\x2a\\x80\\xe9\\xa0\\xeb\\xba\\xf5\\xd0\\x1f\\x1b\\x97\\x06\\x08\\x02\\xbd\\x4a\\xf3\\x4c\\x0f\\x7d\\x7e\\x98\\x54\\x3f\\x9d\\x66\\xd6\\x0e\\x0e\\x6b\\xc0\\xbf\\x9c\\x99\\x0b\\xe3\\x1e\\xea\\x19\\x78\\xff\\xd1\\x67\\x33\\xa8\\xab\\xe4\\x95\\x58\\xb3\\xad\\xd0\\xdc\\xe6\\xde\\xfd\\x64\\xdc\\x04\\x3f\\x15\\x19\\xb1\\xe9\\xbe\\x66\\xe0\\x6e\\x41\\xec\\xab\\x16\\x8c\\x83\\x39\\xa8\\x5e\\x0b\\x91\\x38\\x18\\x64\\x4e\\xa7\\xc5\\x33\\x44\\x68\\xfd\\x71\\x96\\xa0\\x1e\\x1d\\x4c\\xe8\\xdd\\x1e\\x7e\\xe3\\x13\\xdd\\x53\\x50\\xb8\\xdc\\xe4\\xf5\\xd7\\xa6\\xac\\x09\\x85\\x7c\\x4d\\x3d\\x0f\\x10\\xa3\\xd9\\x06\\x26\\x09\\x75\\x45\\x92\\xad\\x10\\x77\\xb2\\xe2\\x09\\x6f\\xc9\\xe5\\xb1\\x97\\x8c\\x98\\xb5\\x66\\x0d\\xdf\\x51\\xb4\\x6e\\xde\\x9f\\x9d\\xcd\\x41\\xb2\\xef\\x44\\xe7\\x9f\\x6d\\xaf\\xf7\\xd3\\x62\\x68\\x70\\xe2\\x24\\x3c\\xaf\\xb2\\xf4\\x36\\x79\\x39\\x10\\x9e\\xd9\\xc0\\x14\\x84\\xb7\\x9e\\xaa\\x30\\xa1\\x89\\x1e\\xa1\\x8f\\x98\\x4e\\x16\\x1d\\xcd\\xd1\\xbd\\xa3\\x71\\x34\\xbf\\x67\\x35\\xd2\\xb2\\x14\\x9b\\x48\\x98\\xda\\xcb\\xfd\\xa6\\x1e\\x60\\x02\\xd7\\x2a\\x6f\\xc5\\xd2\\x1f\\x10\\x98\\x21\\x32\\x31\\x13\\x2d\\x56\\xdf\\x68\\xd6\\xa9\\xbf\\xdf\\x4e\\xdd\\xc0\\x52\\x4d\\xb8\\xfd\\x8f\\x24\\x88\\x52\\x04\\x9a\\x68\\x25\\xa5\\xed\\xd2\\x36\\x0c\\x00\\x9a\\xf2\\x4f\\x0a\\x94\\xc5\\x07\\x9d\\xdf\\x6f\\xe7\\x96\\x94\\x5f\\xf9\\x84\\xaa\\xc3\\x64\\x11\\xce\\x80\\xd9\\x87\\xc6\\xed\\x67\\xb6\\xb0\\xdd\\xb6\\xd4\\x17\\xf6\\xe8\\x09\\x99\\x1e\\x72\\x9d\\x14\\x7d\\xd0\\xd2\\x1a\\x09\\x32\\x41\\x36\\x3c\\xf4\\xef\\x3b\\x8e\\x3b\\xa0\\x2d\\x48\\x66\\x33\\xb6\\xb2\\x17\\xf5\\x49\\x3e\\x2e\\x43\\x2b\\x8c\\x2e\\x27\\xd0\\x0c\\x5b\\x56\\xc9\\xb6\\x5f\\x9a\\xed\\x49\\xce\\x93\\xd7\\x7e\\x7d\\x0b\\xf5\\xf9\\x2f\\x92\\xf5\\xbb\\x4b\\x59\\x5d\\x66\\xf8\\x87\\xa4\\x88\\x01\\x33\\xf9\\x70\\x46\\x3a\\xb8\\xb7\\xf3\\xd8\\xc7\\x94\\xc0\\x40\\x6e\\x88\\xe3\\xea\\xb9\\xae\\x65\\xf1\\xa1\\x85\\xd6\\xe3\\x9e\\x2d\\xd6\\xab\\xb8\\xa9\\x3d\\x2a\\xc4\\xb9\\x20\\x83\\x98\\xda\\xb8\\x9d\\xbc\\x07\\xa4\\x1a\\x50\\x26\\x40\\x26\\x41\\x2d\\xa0\\x22\\xb5\\x8f\\x48\\x9d\\x4d\\xba\\x31\\xfb\\x88\\x2f\\xec\\xb1\\xff\\x8c\\xa1\\x82\\x0d\\xda\\x18\\x65\\xaf\\x15\\x51\\xe4\\x6c\\xd6\\x18\\xb4\\x4c\\x4e\\x6e\\xb3\\x03\\x7a\\x93\\x33\\xfd\\xcc\\xef\\x4b\\x89\\x51\\x89\\xe4\\x39\\x0e\\x93\\x14\\x5d\\x26\\x4c\\xa5\\xf4\\x52\\x02\\xa3\\xeb\\x28\\x53\\x59\\x3f\\xee\\xd6\\xc6\\x6d\\xbb\\x28\\x8f\\xf3\\xa3\\xc0\\xfa\\x83\\x2b\\x2a\\xa7\\xe5\\x29\\xb5\\x56\\x88\\x97\\xb3\\x14\\x94\\x02\\xa9\\x07\\xe7\\x41\\xe1\\x01\\x1c\\xe0\\x73\\x1c\\x91\\x5f\\x91\\x44\\x6a\\xa0\\xd5\\xca\\xf0\\x59\\x5f\\x18\\x16\\x43\\x4f\\xa4\\x57\\x6d\\xb3\\xbc\\x31\\xe1\\x0c\\xc2\\xaf\\x33\\xf6\\x13\\xf0\\x3c\\xa7\\xb9\\x49\\x1a\\x0a\\x34\\x05\\x25\\x27\\x1a\\xb5\\x37\\xf6\\x2a\\x11\\xa8\\x4d\\xa0\\x1c\\x7f\\x55\\x81\\xad\\x57\\x38\\xc3\\x72\\xb5\\x33\\x5b\\xab\\x9b\\x2b\\x9d\\xc2\\xfe\\x91\\xe9\\x33\\x30\\x4d\\x94\\x01\\xba\\x8e\\x1c\\xe8\\xdc\\x55\\xc4\\xfb\\x46\\x6b\\x3a\\x8e\\xd7\\xf5\\x3a\\x12\\x2b\\x83\\x81\\xd8\\xf2\\x90\\x47\\xd7\\x26\\x4d\\x06\\xfb\\x51\\xec\\x3e\\x70\\x07\\x1f\\x27\\x36\\xa4\\xe7\\xe1\\x53\\x7a\\x52\\xfa\\x25\\x6a\\x04\\xee\\x86\\xfa\\xd2\\x7a\\xd2\\xd2\\x8a\\x9b\\x36\\x29\"},\n{{0x39,0xf0,0x55,0x6b,0x1c,0x5d,0xca,0xb3,0x87,0x10,0x41,0x81,0xbb,0x30,0x4d,0xe0,0xcf,0x81,0x59,0x20,0xb9,0x72,0xe8,0x71,0xd5,0xf0,0xfb,0x41,0x6d,0x8e,0x61,0x6a,},{0xd8,0x5f,0xb7,0x6e,0x78,0xc3,0xd5,0xbb,0x7c,0xa6,0xb0,0x5b,0x31,0x01,0x91,0x82,0x1a,0x4a,0x7d,0x2d,0x9b,0xdf,0x02,0x29,0x2c,0xc7,0xae,0xa5,0x64,0x2e,0x48,0x19,},{0x01,0x66,0xaf,0xed,0x5a,0x8f,0x7c,0x3f,0x7a,0xd6,0xf3,0xfd,0xd2,0x93,0x8e,0xff,0x00,0x89,0x8e,0xab,0x81,0x5c,0x54,0x55,0xac,0x90,0xfb,0x51,0xf6,0xe1,0x85,0x4f,0x0c,0x07,0x53,0x19,0x4b,0x76,0x29,0x59,0x4c,0xc1,0x27,0x1b,0x00,0x34,0x31,0x22,0x1c,0x57,0x4b,0x0c,0x0d,0x19,0x08,0x2f,0xee,0xda,0x51,0xb0,0x84,0xae,0x5e,0x03,},\"\\xa8\\xd0\\x34\\xe1\\x70\\xfc\\x22\\xb5\\x7a\\x44\\xaa\\x62\\x69\\xed\\x1f\\x01\\xcb\\xa8\\x01\\xf3\\x98\\xdf\\x1a\\xdf\\xe7\\xdf\\x04\\x4d\\x5f\\xa4\\x68\\xbb\\xfa\\x8a\\xf4\\x74\\x9a\\xb5\\x0d\\x24\\xd6\\x2e\\x31\\x3a\\xc0\\xe7\\x3a\\x64\\xb4\\x28\\x2b\\x74\\x62\\x6a\\xf2\\xb4\\xa4\\xb5\\x4c\\x27\\x4e\\x5a\\x6b\\xc2\\x80\\xb6\\xdc\\x25\\xdc\\xfe\\x07\\x81\\x4c\\x9c\\x81\\x6d\\x2f\\x9e\\x36\\xc0\\x5b\\x9b\\xfe\\xdf\\xf7\\xc6\\xb0\\x3c\\xdd\\xeb\\xd4\\x73\\x5e\\x09\\x93\\xd3\\xc3\\xfd\\xc6\\x54\\x04\\x43\\xc6\\x00\\x5e\\x90\\x0b\\x40\\x35\\xe1\\x40\\x8a\\x85\\x01\\x6a\\xa1\\xb8\\x92\\x02\\x99\\x0e\\x5d\\x84\\xed\\x99\\x81\\xc2\\x9b\\x77\\x20\\x6d\\x7c\\x11\\x30\\x52\\xa2\\x02\\x98\\x12\\xc6\\xea\\x13\\xaa\\xe8\\xbe\\x0a\\xca\\x7a\\x33\\x06\\xbf\\x61\\x72\\x42\\x29\\x8e\\x68\\xbe\\xcd\\x0d\\x5d\\x16\\xc8\\x88\\x7f\\xd1\\x95\\x0b\\x77\\x85\\xa4\\x6b\\xb0\\x22\\xb3\\x9f\\x76\\x07\\xcd\\x89\\x13\\x71\\x8b\\x30\\x17\\xfc\\x3f\\x86\\xd6\\x93\\x3f\\x75\\xee\\xc5\\x19\\x1a\\xd1\\xf1\\x98\\x9a\\x8d\\x26\\x17\\x86\\xf5\\x6b\\xe4\\xa9\\x88\\x37\\x0d\\xb8\\x29\\x61\\xa9\\xfc\\xc9\\x53\\x54\\x2e\\x51\\xc2\\xe0\\x86\\xdb\\x0e\\x02\\xb4\\xfc\\x34\\x66\\x94\\xab\\xd9\\x05\\x9d\\x5b\\x11\\x72\\x26\\x47\\x66\\x9e\\x7f\\x17\\xb7\\x45\\xa6\\x0b\\x02\\xf7\\x33\\x9f\\xcc\\x99\\xbc\\x35\\xd5\\x9f\\xd0\\xb9\\x8b\\x60\\xc3\\x14\\xab\\xd4\\xbf\\x8a\\xa4\\xb7\\xea\\xe0\\x9d\\xd0\\x09\\x7a\\xcb\\x91\\x89\\xf0\\x2c\\xf8\\x5a\\x25\\x1a\\xc9\\x2a\\xaf\\x69\\x1b\\x15\\xcd\\x4a\\x33\\xb5\\x8d\\x76\\x63\\xab\\xd0\\xb0\\x44\\x43\\x33\\x04\\x4a\\xf5\\xce\\x20\\xfd\\x71\\xcb\\xaf\\xfc\\x0d\\x29\\x83\\x58\\x19\\xf4\\x92\\x93\\xfc\\x26\\xe7\\xf9\\x78\\x7f\\xc3\\x68\\xc4\\xd3\\x5c\\xae\\x92\\x74\\x7f\\x21\\xca\\x1f\\x3e\\xfd\\x87\\xa0\\xd8\\x10\\x41\\x99\\x41\\x64\\x82\\xd0\\x7b\\xfe\\xc1\\x28\\x1c\\x66\\xf5\\x65\\x28\\x5b\\xf6\\x72\\xd5\\xe7\\x48\\x64\\x00\\x66\\x0c\\x01\\x75\\x55\\xe9\\xfa\\x2b\\xf6\\xa4\\xe7\\x02\\x7f\\x0e\\x7e\\x5f\\x44\\x3e\\xd6\\x58\\xb7\\x5b\\x59\\x06\\x12\\xab\\xde\\x0d\\x80\\xd1\\xa2\\x6c\\xb8\\xbd\\xe7\\x6b\\x99\\x6e\\xff\\x6a\\x74\\xe3\\xda\\xfc\\x59\\xeb\\x1b\\x58\\x4f\\x45\\x97\\xa2\\x39\\xcd\\x83\\x9f\\xa1\\xf1\\xb7\\xbd\\xa1\\xa2\\x4d\\x15\\x0c\\x4e\\x24\\xb9\\x1c\\xec\\x01\\xee\\x53\\xa3\\xac\\x85\\x2a\\x91\\x2d\\xe1\\x95\\xa3\\xc2\\x9d\\xd7\\x07\\x9a\\xa7\\xe8\\x8a\\xa8\\x1e\\x9d\\x31\\xb8\\xfc\\xcd\\x43\\x5e\\xda\\x11\\x3c\\x3f\\x82\\x45\\x8b\\x7f\\x79\\x33\\x57\\x2b\\x77\\x67\\x53\\xc9\\x22\\x40\\xcc\\x03\\x61\\x58\\xa4\\xba\\x0e\\x56\\xef\\xed\\x53\\xec\\xb5\\x3f\\xc0\\x93\\xfe\\xad\\x14\\x34\\x34\\x85\\xae\\x5d\\x91\\x05\\xbb\\x16\\x3f\\x26\\x25\\x14\\xe4\\x8b\\xe7\\x41\\x59\\xc9\\xfa\\xbc\\xb7\\x1d\\x1a\\x42\\x80\\xd9\\xed\\x70\\xd7\\xe4\\x2b\\x75\\xf7\\xfd\\xad\\xd0\\x2d\\x69\\x19\\x8f\\x5f\\x46\\x5b\\xf6\\x04\\xcb\\x42\\x54\\x41\\x7b\\xac\\x37\\x14\\xb3\\xa9\\x9e\\x6f\\x1a\\xce\\xc9\\xe3\\xb3\\xd0\\x97\\xf9\\x72\\xfb\\xc3\\x6f\\x2e\\xda\\x39\\x26\\xd5\\x61\\x12\\xd4\\xe9\\x09\\x7d\\x89\\xbd\\xc3\\x59\\x37\\xb9\\xa3\\x15\\x8e\\x7c\\xdd\\x5d\\xa4\\x01\\xe1\\x80\\xd3\\xed\\xe6\\xb1\\xff\\x02\\x86\\x41\\x92\\xeb\\x72\\x97\\x81\\x53\\x4f\\x49\\x64\\xdd\\xf2\\xaf\\x11\\x80\\x0d\\x8b\\x5b\\x6d\\x01\\xb2\\x09\\xaa\\x33\\x69\\x36\\x6c\\x19\\xa2\\x8c\\x79\\xa8\\x7d\\x21\\x74\\xec\\x22\\xfb\\x14\\x89\\xa6\\x75\\x5c\\x34\\x8a\\x99\\x6d\\x0a\\xa5\\x6e\\x0f\\x60\\xd5\\x8e\\x26\\xbe\\xfa\\x23\\xa8\\x6b\\xef\\x4e\\x35\\x29\\x51\\x2e\\x30\\xa9\\xd1\\xc5\\xe4\\x88\\x50\\x18\\xcb\\x97\\xae\\xb7\\xc9\\x3c\\x5c\\x41\\xca\\xa3\\x42\\x36\\x57\\x5c\\x22\\x6f\\x3b\\x23\\x5e\\xdd\\xba\\x36\\x4e\\x28\\x5b\\x6e\\x35\\x27\\x07\\xbb\\xb3\\xb3\\x39\\xbb\\xf2\\xa6\\x3a\\x9c\\xb9\\xbd\\x33\\x3a\\x77\\xe7\\x9b\\xd5\\x8a\\x48\\xe1\\x4c\\xe5\\x88\\x6e\\xd0\\xcd\\x07\\xc2\\xd1\\x65\\xa8\\x1b\\x5e\\x6a\\x31\\xa8\\xae\\x78\\x06\\xbc\\xf2\\xe0\\xc4\\xec\\x29\\xa9\\x67\\x72\\x5e\\x57\\x7f\\x17\\x41\\xee\\x68\\xf3\\x45\\xf5\\xf7\\xab\\x0f\\xad\\x31\\xc8\\xb4\\xb1\\x8b\\x43\\x1c\\x49\\x77\\xd5\\xc5\\x84\\x00\\x4b\\x45\\xf7\\xcd\\x19\\x61\\xaf\\xfe\\x87\\x38\\xe2\\x4c\\x38\\x26\\x10\\xef\\xe9\\x98\\x35\\x3d\\x7e\\xba\\xf9\\x19\\xb2\\x79\\xbb\\xb6\\x91\\xc3\\x05\\x2b\\x8b\\x2c\\x5f\\x09\\x80\\x8e\\xf3\\xa6\"},\n{{0xba,0xb3,0xff,0x7a,0x44,0x48,0xd8,0xa0,0x3d,0x8a,0xcf,0xdb,0x91,0x3f,0x77,0xfe,0x77,0x80,0x43,0x95,0xc3,0xe5,0x4e,0xc2,0x35,0x11,0x79,0x27,0xe3,0x2b,0x50,0xd5,},{0x54,0x97,0x5e,0x35,0xe5,0xb1,0xd0,0x32,0x3f,0x2d,0x6f,0xb5,0xc6,0x15,0x8b,0xf6,0x65,0x4b,0x08,0x4f,0x76,0xbb,0xdc,0xfd,0x72,0x34,0x92,0x29,0xe8,0xe4,0xa6,0xe8,},{0xd6,0xb4,0x13,0x5f,0xc7,0xac,0xb3,0xd7,0xcd,0xf9,0x87,0x89,0x6d,0x91,0xb8,0xa9,0x0d,0xb5,0x84,0xd8,0x93,0x3a,0x6f,0x30,0x29,0xe3,0x26,0x1e,0xc1,0xc3,0x90,0xcb,0xac,0xfa,0xaf,0xef,0xf4,0x43,0xb6,0xda,0x4f,0xdb,0x1d,0x84,0xc6,0x4a,0x54,0x56,0x0f,0xef,0xfa,0x2f,0x1c,0x7a,0x91,0xbd,0xe9,0x73,0x02,0x22,0x92,0x3b,0x67,0x03,},\"\\xb6\\x47\\xb6\\x7c\\xf0\\x1c\\x2c\\xac\\xc3\\x9d\\xe5\\x96\\x9e\\x19\\x9b\\xe6\\xd9\\x32\\x01\\x67\\xa4\\xce\\xbb\\xf1\\x62\\x59\\x50\\xb1\\xe6\\xb7\\xad\\xf5\\xca\\x24\\xd1\\x34\\x95\\x68\\x86\\x5f\\xbb\\xfd\\x90\\xf5\\x13\\xf0\\x5f\\x79\\xf7\\x0a\\x63\\xa2\\x38\\x73\\xdc\\x7a\\x19\\x5d\\x4b\\x28\\x5a\\x08\\xf3\\x0e\\xe0\\x61\\xd0\\xb8\\xe6\\xb4\\xd6\\xbf\\x9b\\x2e\\xcf\\x2c\\x69\\xf3\\xd5\\xa0\\x7a\\x67\\x30\\x53\\x7c\\xca\\x4a\\x4e\\x4c\\x7e\\xe6\\x84\\x70\\x2b\\xff\\x88\\x3f\\xab\\x8b\\xca\\xf8\\x93\\x11\\xc5\\x49\\x8b\\xcc\\xb5\\xa0\\xf7\\xc8\\xd4\\x9b\\x54\\xf4\\x82\\xff\\xfb\\xca\\x6e\\x7d\\xa2\\x62\\x45\\x2b\\xa5\\x9a\\x57\\xa6\\x87\\x9d\\x81\\xb7\\x3c\\xd7\\xad\\xf7\\x2a\\x3b\\xe2\\x8a\\x37\\x3c\\xd6\\x33\\x10\\x40\\x84\\x61\\xc2\\x1b\\x90\\x7f\\x63\\xe0\\x86\\xb2\\x92\\xff\\x02\\x83\\x3e\\x8a\\x2f\\x46\\xad\\xbd\\x67\\x1d\\x02\\xb0\\x3a\\x69\\xac\\xa2\\xe1\\x1d\\x28\\x7c\\x52\\x2a\\x95\\x45\\x20\\x44\\x2e\\xce\\xfa\\xa9\\x05\\xdb\\xfc\\xc8\\x25\\x4c\\x58\\xc3\\x95\\x4a\\x89\\xbf\\x56\\xcb\\xe0\\x1a\\xd5\\x63\\x19\\x71\\xeb\\x39\\xeb\\x43\\x2a\\x85\\x4e\\x69\\x19\\x29\\xdf\\x7e\\x48\\xb9\\x00\\xca\\x6e\\x74\\x0a\\xcc\\xf5\\x78\\xb3\\x17\\x95\\xb4\\x9a\\x6c\\xa7\\x74\\xbd\\x8b\\x99\\x31\\x06\\xa9\\xc4\\x94\\x8c\\x18\\x71\\x49\\x48\\x31\\x59\\x90\\xa5\\xf1\\x91\\x69\\x24\\x20\\xf2\\x89\\x32\\x8a\\xb7\\x13\\xec\\x19\\xb7\\xea\\x89\\x4d\\x16\\xe6\\x47\\x61\\x00\\x87\\x1c\\xf3\\x16\\x8e\\x4f\\x93\\x5b\\x55\\x05\\xd1\\xed\\x5b\\x0a\\xa2\\x9b\\xe3\\x6f\\xa3\\xa3\\x46\\xac\\x3e\\x76\\xf1\\x43\\xc4\\x6c\\xa6\\x91\\x23\\xb7\\x9c\\x36\\x39\\x9a\\x0d\\x2e\\xd3\\x02\\x77\\x24\\x94\\xad\\xf4\\x42\\xbb\\xaf\\xbc\\x4d\\x01\\x53\\x26\\x92\\xc7\\x85\\x9d\\xf0\\x4d\\x2c\\xa7\\x8b\\xa5\\x5d\\x77\\xfd\\xf3\\xe5\\xad\\x99\\x37\\x86\\xa2\\x4c\\xff\\x21\\x99\\xbb\\x49\\x38\\x78\\x73\\xcc\\x41\\x4b\\x4c\\xf1\\x13\\x7a\\xbb\\x7e\\x94\\xae\\x3d\\xdb\\xf9\\x7f\\x53\\x4a\\x18\\xfc\\x5a\\xe5\\x85\\x23\\xa3\\xcc\\x52\\x28\\x3d\\xc7\\xb0\\x16\\xf3\\x1c\\xd6\\x55\\x79\\x81\\xc5\\x07\\x6c\\x77\\x4f\\x30\\x3a\\x47\\xc4\\x27\\x87\\x0e\\x20\\x7e\\xd8\\xbd\\x66\\x64\\x0f\\xf0\\x92\\xdb\\x50\\x3f\\xa1\\x24\\xbf\\xdc\\xf0\\x20\\x05\\x1d\\xad\\xd1\\x06\\xdd\\x24\\x58\\x40\\xb3\\x19\\x10\\xb8\\xa9\\x06\\x0d\\x59\\x86\\xf0\\x2b\\x60\\xaa\\x5e\\x33\\xb4\\xd7\\x55\\x09\\x12\\xcd\\xc5\\x77\\x6c\\x77\\x2a\\xac\\x93\\xae\\x19\\xc7\\x3b\\x7e\\xcf\\xca\\x38\\x9e\\x62\\x76\\x81\\xa8\\x78\\x1e\\xb4\\x7d\\x84\\xe9\\x34\\x60\\xba\\x89\\x1d\\x3f\\xf6\\xea\\xdf\\x8f\\x2a\\x90\\x3c\\x38\\x34\\x74\\xbe\\xaa\\x42\\xb9\\x0e\\x03\\x22\\x36\\xdc\\xd8\\x98\\xd0\\x2a\\x40\\xef\\xb4\\x4e\\x47\\xea\\xd5\\x2b\\x75\\xb0\\x9c\\x7d\\xa1\\xcd\\x6a\\x2d\\xfd\\x4d\\x1c\\x04\\x52\\xde\\x69\\xf6\\xac\\xac\\x1a\\x68\\xdd\\x78\\xda\\xf9\\x72\\xae\\x26\\x08\\x21\\xe2\\xec\\x52\\x2f\\xb5\\x74\\x9b\\xeb\\xe0\\xad\\xb4\\x52\\xbf\\xa4\\xfa\\xa1\\xe9\\x79\\x11\\xc1\\x29\\x9f\\x16\\x56\\x8d\\x68\\xee\\xf4\\x05\\xf4\\xb1\\xcd\\xac\\xab\\xed\\x59\\xf7\\xb0\\xfb\\xce\\xab\\x71\\x9a\\x34\\xb2\\x99\\xf5\\x8a\\x4a\\xe8\\x15\\x4f\\x98\\xf4\\xd9\\xf4\\xf1\\x40\\xb1\\xf0\\x85\\x00\\x69\\x46\\x72\\x5e\\x7c\\x29\\xbb\\x0b\\xc6\\xcc\\xf2\\x53\\x44\\x97\\xc6\\x1d\\x4c\\x16\\x12\\x62\\x4a\\x61\\xd7\\x0d\\x26\\xc3\\xef\\xb7\\xd7\\xc3\\x51\\x84\\x86\\x57\\xf7\\xf8\\xee\\xbf\\x8b\\x99\\x07\\x47\\x74\\x0e\\x6f\\x91\\x0c\\x97\\xce\\xf1\\x50\\x37\\x57\\x65\\xc8\\xc0\\xb3\\xb4\\x49\\xc0\\xd0\\x9d\\x66\\xf0\\x08\\xe6\\x7c\\xfa\\x76\\xea\\x2b\\x68\\x08\\xb6\\xfe\\x63\\x2e\\xaf\\xe0\\x58\\x7f\\x37\\xe3\\x6b\\xe9\\x8d\\xcb\\x17\\xa3\\xf4\\xa1\\x5b\\x65\\xa9\\xf6\\xfc\\xf9\\x64\\x2b\\x52\\x52\\x20\\x77\\xb1\\xfb\\x4c\\xc3\\xc0\\x8d\\xf4\\xb4\\x67\\xca\\x71\\x6d\\xb1\\x6b\\x73\\x7f\\x78\\x2c\\xdf\\x38\\x71\\x70\\xa5\\xf1\\xf6\\xa7\\xae\\x0a\\xb3\\xf5\\xb7\\xc5\\x85\\xe3\\xb0\\x65\\x5a\\x64\\x56\\xa5\\x03\\x59\\x5c\\xe8\\xea\\xea\\x25\\x37\\x85\\x5e\\x7f\\x0d\\x50\\x61\\xbc\\x29\\xb4\\xe6\\x7d\\xaa\\x82\\x46\\x3c\\x19\\x0e\\x9f\\xdd\\xd5\\x2f\\x83\\x22\\xdd\\xb4\\xe0\\xf2\\x6b\\x68\\x77\\x82\\x28\\xeb\\x57\\xe1\\xa1\\x85\\xb7\\x02\\x5d\\xa1\\x49\\x87\\xd4\\x4b\\xaa\\x76\\x7b\\x22\\xee\\x7f\\x4c\\x84\\x59\\x10\\x32\\xe8\\x8e\\xc1\\x2e\\xb8\\xc5\\xa4\\xb9\\xe1\\x57\\xec\"},\n{{0x48,0x6c,0x7b,0x43,0x6c,0x1d,0x43,0xd6,0xb7,0x03,0x51,0x22,0x83,0xc1,0x66,0xdc,0x86,0x3e,0x5a,0x33,0x80,0x2f,0x4e,0xa6,0x5f,0xc7,0x38,0x77,0x89,0x02,0xd0,0x14,},{0xb5,0xdc,0x94,0x7d,0x64,0x33,0x7c,0xae,0x82,0x12,0x2b,0xd6,0x8c,0xc8,0x08,0x40,0x59,0x6d,0xe3,0xbe,0x56,0xcb,0xd0,0xc8,0x33,0xaf,0x3f,0xaa,0x3a,0xdc,0x37,0x76,},{0x31,0xf9,0x5c,0xbb,0x74,0x63,0xb8,0x75,0x28,0x65,0x42,0x27,0xbb,0x13,0x97,0xbf,0x10,0x65,0xb4,0xf5,0x76,0x80,0x80,0x78,0x20,0x7d,0xfa,0xf0,0x6d,0x12,0x4b,0x41,0xf4,0xc3,0x18,0xf4,0xa9,0x31,0x5a,0x66,0x08,0x5b,0x9e,0x56,0x8a,0x71,0xe4,0x14,0xed,0x94,0x14,0x51,0x73,0x10,0xc6,0x99,0x94,0x6d,0xb0,0xc9,0x76,0x28,0x52,0x07,},\"\\xaf\\x03\\x60\\x53\\x67\\x2d\\xcf\\x3a\\xa2\\x6e\\x28\\xec\\x6a\\xa6\\x42\\xce\\x28\\x4b\\x89\\x6c\\x69\\x88\\x7d\\xfd\\xcf\\x08\\x24\\x51\\x5e\\xb0\\x84\\x8d\\x9d\\x97\\x0c\\xa2\\x72\\xdf\\x77\\xa8\\x6b\\x3f\\xf6\\xdd\\xaf\\x3c\\xba\\xdd\\x3a\\xb6\\x28\\x3b\\xc3\\x7c\\xdf\\x7a\\x56\\x07\\xd5\\xdf\\xc7\\xcf\\x96\\x32\\x92\\x99\\xcc\\x53\\xed\\xbb\\xe6\\x57\\xfd\\xfa\\x2c\\xa2\\x44\\x67\\x05\\x0a\\x0a\\xeb\\x8c\\xff\\xd7\\xd3\\x3d\\x54\\x3e\\xc2\\xc1\\x91\\xcc\\x0b\\xce\\x89\\xac\\x37\\xd3\\x32\\x93\\xb1\\x88\\x8c\\xcb\\x76\\xc2\\x8a\\xdc\\x67\\x1a\\x49\\x35\\xa8\\x46\\xd9\\x07\\xe4\\xad\\xd0\\x11\\x0f\\xeb\\xbe\\xe5\\xae\\xc8\\x0f\\x9d\\x2f\\xf7\\x4e\\x2a\\xf4\\xfd\\xbe\\xbb\\xcf\\x49\\x10\\x5a\\x64\\x69\\xd7\\x38\\x00\\x06\\xb2\\xca\\x44\\x36\\x48\\x14\\x45\\x4e\\x44\\x5e\\x36\\xdc\\x00\\x12\\xf3\\x39\\xc9\\x68\\x54\\xf8\\x36\\x44\\x2a\\x05\\xa5\\x0b\\xec\\x90\\x73\\x27\\xf7\\x4b\\xa9\\xf6\\xfd\\x79\\x0f\\xf0\\xad\\x37\\x83\\xd2\\x97\\xbd\\xcc\\xa7\\x64\\x60\\x78\\x37\\x03\\xeb\\x5f\\x2b\\x1f\\x51\\xb0\\xa7\\x40\\xce\\x7a\\x8f\\x00\\xa3\\x87\\xe3\\x63\\x62\\x70\\xa9\\x71\\xfa\\x8f\\x15\\xb4\\x49\\x67\\x30\\xd8\\x8a\\xdd\\x80\\x7a\\x7f\\x7e\\x98\\x7c\\xd4\\x15\\x95\\xa2\\xe7\\x43\\x5d\\xf5\\x19\\x55\\x76\\xa3\\x5f\\x5e\\x91\\xb2\\xfc\\xfa\\xc9\\x4e\\xd5\\xd7\\x76\\x63\\x78\\x3b\\x61\\xe6\\x67\\x1d\\x34\\x83\\x8b\\x6b\\x56\\x44\\xfb\\xc1\\xc5\\x39\\xfe\\x15\\x9b\\x77\\x92\\xdb\\x96\\x7e\\x83\\x52\\x61\\x8d\\xda\\xca\\x0c\\xde\\x73\\x43\\x7b\\x59\\xe7\\x80\\x1b\\x49\\xeb\\x46\\x09\\xb1\\x05\\x77\\xca\\x26\\x92\\xdd\\x6f\\x9d\\x5e\\x9d\\x4b\\x5e\\x5e\\x62\\xc5\\x91\\x3e\\x7b\\x87\\xe6\\xb3\\x47\\xbe\\x61\\x53\\xb1\\x71\\x99\\xc9\\x16\\xa1\\x3f\\x8a\\x88\\x5b\\x37\\x8e\\xf0\\x9e\\x13\\xca\\xe4\\xd8\\xb0\\x79\\xd7\\xd5\\xcb\\x90\\x94\\x19\\x9b\\x0f\\x20\\x53\\x3c\\x90\\x08\\x3b\\xc3\\xac\\xb2\\x66\\x76\\x97\\xee\\xd2\\x2e\\x36\\x70\\xab\\xb4\\xa5\\x53\\xe9\\x95\\xc9\\xdd\\x95\\x94\\xe5\\x92\\x39\\x1a\\x00\\x04\\xb6\\x55\\x65\\x44\\xf3\\x56\\x12\\xc4\\x97\\x13\\x59\\x57\\x7c\\x47\\x63\\x82\\xca\\x53\\xb3\\xf2\\x62\\xa5\\xe3\\x3e\\xd2\\x6e\\xec\\x80\\x9f\\x4f\\xdb\\xa4\\x89\\x8a\\x11\\x36\\x75\\xcb\\x6a\\xf7\\x17\\xdb\\x62\\x57\\x9f\\x39\\x80\\xb2\\x14\\x63\\xbe\\x02\\x9c\\xb4\\x16\\x0f\\xe5\\xd2\\x57\\xc4\\x6c\\xd6\\x66\\x4f\\x98\\x61\\xac\\x50\\xfe\\x05\\xc1\\x44\\x05\\x7d\\xce\\x2f\\x8d\\xf1\\x53\\x2a\\xa7\\xaf\\x58\\x9f\\x41\\x27\\x06\\x01\\xce\\xf0\\x6b\\xbe\\x4f\\x35\\xc3\\x1c\\x78\\x2b\\xb3\\xcf\\xff\\x7d\\x5a\\xb6\\x4a\\x14\\xec\\x41\\x73\\x61\\xf1\\xd3\\x2c\\xbd\\x38\\xb6\\xbd\\x0e\\x02\\x50\\x5d\\x14\\x16\\x30\\x2b\\x85\\x05\\xae\\x2a\\x96\\xe8\\xd5\\x33\\x9c\\x34\\x6c\\x2b\\x06\\x62\\xd3\\x50\\x25\\x9c\\x50\\xc5\\xe4\\x87\\x95\\x91\\x4e\\x6f\\x88\\xe9\\x7c\\x81\\x1c\\x39\\x3b\\xdf\\x9a\\xec\\x7e\\xf8\\x20\\x47\\xca\\x28\\xee\\x97\\x1c\\x17\\x5c\\x27\\xe3\\x6e\\x10\\x97\\x27\\x96\\x0d\\xdf\\x1a\\x1b\\x97\\x6a\\xb4\\x4f\\x48\\x51\\x60\\x7b\\xd9\\x66\\x80\\x8a\\xc4\\x6d\\x54\\x00\\x31\\x28\\x29\\x7f\\x5f\\x44\\x87\\x10\\x8d\\x6a\\x02\\xe7\\xa1\\x64\\x13\\xd2\\xb7\\x5e\\xcb\\x42\\xfd\\xdf\\xb6\\x69\\xc8\\x01\\xd2\\x3d\\xe5\\x0a\\x6f\\x7b\\xf6\\x58\\xf7\\x53\\xc6\\xb2\\xb3\\xb4\\x7c\\x06\\x40\\x10\\x5d\\x0a\\x80\\x1b\\x32\\xa1\\x94\\x3c\\xdc\\x15\\xc8\\x86\\x55\\x5e\\xb7\\x5b\\xb7\\x92\\x7b\\x93\\xc3\\x5c\\x5b\\xe1\\xf9\\x8b\\x19\\x6c\\xaa\\xc2\\xda\\xd9\\x91\\xb1\\x04\\x4e\\xa8\\x63\\x94\\x4d\\x54\\xd8\\x83\\xab\\xc3\\xc6\\xde\\x66\\xed\\x86\\x8e\\xe8\\x4b\\xcf\\x9c\\x34\\xcc\\xdb\\x80\\xfc\\xd9\\xcc\\x04\\x02\\x74\\x77\\x32\\xcd\\x63\\x0b\\xbf\\xa3\\xbb\\xe8\\xb0\\x38\\xdc\\x1d\\xbd\\xaf\\x43\\x6d\\x9a\\xc0\\x0c\\x02\\xd5\\x28\\xec\\xe2\\xe7\\x91\\xee\\x31\\x2a\\x86\\x8f\\xeb\\x2f\\x58\\x7c\\xa4\\x4d\\xb5\\x73\\x13\\x84\\xfa\\x18\\x31\\x14\\x20\\x61\\xb2\\xea\\xd2\\xb8\\x0c\\x66\\xbd\\x2f\\xa5\\xdc\\xca\\xbe\\x6a\\x25\\xf2\\xa4\\x93\\xfe\\xaa\\xcd\\x23\\x1d\\x2f\\x40\\x96\\x46\\xb9\\x42\\xa5\\x78\\x54\\x5e\\xa4\\xfe\\xea\\x9a\\x73\\x47\\x3f\\x79\\xdc\\xf1\\x3e\\x0c\\x9f\\x1b\\x49\\xfd\\x89\\x12\\xec\\x48\\x73\\x28\\x04\\x5b\\xd0\\xfa\\x22\\x89\\x22\\xee\\x6e\\x97\\x3e\\x61\\xf6\\xe9\\x33\\x65\\x29\\x65\\x78\\xdc\\xc2\\x1c\\x36\\x14\\x79\\xee\\x2d\\x24\\x87\\x9f\\x2e\\x9b\"},\n{{0xa6,0xe6,0xad,0x2c,0x37,0x9c,0x6f,0xcc,0xad,0xb4,0xa4,0x9b,0x23,0x2a,0x91,0x42,0x61,0x8e,0xa3,0x01,0x03,0xc3,0x3c,0x22,0x6f,0xf6,0x28,0xbc,0xfd,0x81,0xf4,0x26,},{0xf7,0xc4,0x32,0x3f,0x5c,0x41,0x9d,0x9b,0x3f,0x34,0xa8,0xeb,0x42,0xae,0x7f,0x1f,0xaa,0x23,0x33,0x07,0x90,0x30,0xc5,0xd6,0x4f,0x9f,0xfb,0x1e,0x9b,0x16,0x00,0x2d,},{0x07,0xd9,0xfc,0x24,0x4f,0xda,0xb0,0x01,0x59,0xeb,0xec,0xc5,0xa0,0x08,0x83,0x45,0x3f,0x08,0x31,0x01,0x71,0x76,0x9d,0x29,0x70,0x01,0xe8,0x77,0x01,0x0e,0x3e,0xce,0xd9,0xfb,0x60,0xec,0x91,0xcb,0x4d,0x88,0xe7,0xba,0x40,0xc5,0x30,0xb1,0xf9,0x23,0x79,0x78,0xcc,0xd9,0x6d,0x5c,0xba,0x9e,0x4f,0xa2,0x7e,0x2a,0x0a,0xd9,0xd6,0x0c,},\"\\x2e\\x85\\x76\\x76\\xa5\\xbb\\x1c\\x6e\\x9e\\x94\\x50\\x7f\\x83\\xc6\\x0a\\x67\\xf5\\x47\\xc5\\xde\\x9e\\x94\\x56\\x6b\\x19\\x7a\\x6a\\xf6\\xcf\\x47\\x52\\xe9\\x3d\\xbd\\xef\\x6b\\x9f\\x66\\xd1\\xfe\\xbd\\x95\\x7e\\x42\\xa7\\xf5\\xad\\x64\\xef\\x1d\\xbc\\xc4\\xfe\\x69\\xae\\x95\\x25\\xd1\\xa4\\xde\\x67\\x05\\x4c\\x88\\xf2\\x9c\\x06\\x47\\xba\\xcf\\x8b\\x82\\xf3\\x21\\xff\\x99\\xfe\\x9e\\xed\\xc9\\x92\\xed\\x34\\xc1\\x17\\x7f\\xc5\\x42\\x12\\x27\\xcc\\xac\\x10\\xfe\\xb9\\xce\\xd4\\x08\\x2f\\x56\\x58\\xda\\x63\\x71\\x47\\x23\\x97\\x97\\x37\\xe7\\xdc\\xbf\\xe2\\xe8\\xb5\\xd5\\x0f\\x91\\xdf\\xca\\x83\\xe7\\xf9\\x5f\\x35\\xd1\\xad\\x8d\\xd5\\x11\\x44\\x50\\x2f\\x3d\\xf6\\x72\\x43\\x26\\x11\\xf0\\xe7\\x66\\xa9\\x0d\\xcc\\x2a\\x57\\x39\\xc8\\x05\\xd9\\x5f\\xe5\\xb0\\x41\\xde\\x9d\\x7f\\xb4\\x7b\\x44\\x04\\xaf\\xc8\\x03\\xa3\\xbd\\x48\\x04\\xc7\\x81\\x7e\\xbc\\x5b\\xdf\\xef\\x8a\\xdd\\x9e\\x25\\x0b\\x50\\x96\\x6c\\xa8\\x93\\x9b\\x22\\xb3\\xc6\\xff\\x93\\x6e\\xaa\\x65\\x9a\\x24\\x0c\\x0c\\x84\\x8b\\x81\\x0a\\xce\\xcf\\x61\\x81\\xe0\\xe4\\xdb\\x8e\\x4c\\xf8\\xfc\\xce\\x7d\\xe5\\x59\\xcb\\xe8\\xaf\\xa9\\xdb\\x84\\x99\\x57\\x09\\x11\\xa3\\x88\\x7e\\x85\\x0e\\x50\\x9c\\xdb\\x70\\xde\\xbc\\x34\\x77\\xd1\\x21\\x75\\x01\\x4f\\x79\\xf8\\x1b\\xa1\\x13\\xd0\\xb7\\xb3\\x35\\x11\\x8f\\x85\\xcf\\x59\\x99\\x6f\\x80\\x67\\x58\\xeb\\x90\\x3c\\xc4\\x50\\xf5\\x2f\\xee\\x10\\x2e\\xfc\\x01\\x44\\x1e\\x9a\\xe5\\xfa\\xe7\\x4c\\x23\\x1d\\xfd\\x85\\xeb\\x6b\\xad\\x17\\xd6\\xb7\\x0e\\x93\\x85\\x84\\xfa\\xcb\\x21\\x72\\xcb\\x03\\xbd\\x5e\\xa0\\x7b\\x7f\\x0d\\x37\\x1f\\xfa\\x35\\x1c\\x0e\\xe4\\xef\\xe9\\xba\\x4a\\x3f\\xd5\\x43\\x87\\x46\\x55\\xe7\\xd3\\x9c\\x53\\xae\\x86\\x32\\x98\\x02\\xe5\\xc3\\x85\\xe9\\x28\\x3a\\x29\\x73\\xca\\xb8\\xcf\\x7a\\xc7\\xff\\x0f\\x91\\xd1\\xd4\\x8b\\x58\\xab\\xfd\\xad\\x65\\x8d\\x81\\x2f\\x07\\x88\\x16\\x76\\xbd\\x22\\x6b\\xfe\\x95\\x7d\\x7d\\xf3\\x0c\\x41\\x30\\xa4\\x48\\x35\\x4a\\x6b\\x94\\x40\\x5a\\x41\\x16\\x50\\xa9\\xc8\\xfc\\x85\\x11\\x55\\xec\\x5a\\x8a\\x3e\\x3b\\x67\\xae\\x0c\\x4b\\x5c\\xb8\\x9b\\xb7\\x3f\\xc8\\x29\\x74\\xbe\\x62\\xda\\x73\\xf0\\xe2\\x30\\x92\\x93\\x7d\\x40\\x5b\\xa4\\xaf\\x6c\\xab\\x94\\x65\\xea\\x43\\xa6\\x25\\x3f\\x44\\x57\\x08\\x2a\\x06\\xac\\x12\\xb7\\x5e\\x88\\xec\\x68\\x44\\x87\\xf9\\x07\\x63\\x73\\xfa\\xb8\\x89\\x28\\x59\\xd8\\xe8\\xba\\x43\\x14\\x23\\xaa\\x80\\x5a\\x22\\x0c\\xbf\\xda\\x43\\x1b\\x32\\xb1\\xe0\\x31\\x21\\xf7\\xfd\\x4d\\xe1\\x85\\x91\\xf2\\x50\\x5c\\xc0\\xf5\\xb2\\xb1\\xa7\\x60\\x5f\\xbc\\xc6\\x37\\x57\\xb0\\x7e\\x29\\x9f\\xef\\x5a\\x2b\\x73\\x65\\x23\\x0c\\x2e\\x92\\xa2\\x59\\x62\\xc2\\xe8\\x01\\x2a\\xd3\\xfa\\x9e\\xe9\\x48\\x82\\x70\\x96\\x25\\xba\\x68\\xc7\\xb2\\x13\\x66\\x4a\\xe2\\x53\\x2b\\x60\\x9d\\x7c\\x9a\\xa0\\xe8\\x3d\\x49\\x3d\\xbc\\xe7\\x63\\x2f\\x35\\x58\\x0e\\x06\\xd3\\x11\\x1c\\xed\\x32\\x0d\\xd0\\x19\\x04\\x41\\xf6\\x2d\\x9e\\x35\\xf5\\x0d\\xe5\\x9c\\x27\\x2f\\xb0\\x0f\\x56\\x8a\\x00\\xb0\\x74\\x6c\\x33\\xa9\\xbd\\x24\\x90\\xc0\\x74\\xb9\\x1c\\xdd\\xc4\\x87\\xef\\x2e\\x45\\xa0\\xf0\\x30\\xe0\\x8f\\xdc\\x18\\x17\\xbc\\xa8\\xa9\\xce\\x29\\xd2\\x92\\x79\\xe7\\x55\\xde\\xbc\\x28\\xdf\\xad\\xc3\\xc4\\xd1\\xb4\\x58\\x48\\x6e\\x3c\\x8d\\x0c\\x43\\x18\\xe7\\xe6\\xf9\\xeb\\x5a\\x36\\x53\\xb3\\xf7\\xc4\\x95\\x07\\x07\\x7c\\xd5\\xeb\\x81\\xf1\\x0b\\x88\\x10\\x7c\\xc0\\xf9\\x31\\x69\\x32\\xab\\xe9\\xb6\\x4e\\x88\\x86\\xd0\\x68\\x56\\xa8\\x5b\\xe6\\x3b\\x0c\\x2b\\x47\\x5c\\x0a\\xfc\\xb0\\x69\\x44\\x26\\x86\\x0f\\xb2\\x4b\\x5c\\x17\\xab\\x6a\\xb7\\x73\\x3d\\x5e\\x64\\x1b\\xe7\\x4f\\xd5\\xf6\\xa1\\xff\\x18\\xd2\\xf9\\xa4\\x27\\x70\\xfb\\x30\\x75\\x0f\\x56\\xf4\\x85\\x4e\\x38\\xd5\\x8a\\xef\\x18\\xa2\\xa6\\x1c\\xbf\\xb4\\x9e\\xe5\\x76\\xed\\x97\\x73\\x7b\\xc2\\x8d\\xf3\\x26\\x8a\\x33\\x41\\x75\\x51\\x3d\\x97\\xaf\\x00\\x9c\\xbb\\xcf\\xdf\\xad\\x50\\x39\\xd6\\x9b\\xb4\\x6f\\x70\\x88\\x67\\xd9\\xb3\\xce\\x0b\\xf2\\xf5\\x69\\xe3\\xcf\\xbc\\xf6\\x13\\x6f\\x88\\x70\\xd2\\x52\\x08\\xb2\\x1a\\x3e\\xdc\\xb7\\x33\\x93\\xdf\\xcd\\x41\\x72\\xc1\\x40\\x2c\\x41\\xf3\\x6e\\x3f\\x82\\xa4\\xea\\x6d\\xcd\\x89\\x16\\x86\\xba\\x66\\xe1\\x43\\x20\\xaa\\x0e\\x22\\xba\\x0c\\x1e\\xf0\\x33\\xd6\\x62\\xcd\\xb8\\x60\\xcd\\xfa\\x3a\\x40\\xf6\\xcc\\x53\\x2a\\x08\"},\n{{0x9b,0x6d,0x7e,0x28,0xeb,0x05,0x15,0x97,0x32,0x4d,0xce,0xb7,0xa1,0x89,0x41,0x24,0x67,0x25,0xe8,0x8d,0x53,0xab,0x2c,0x34,0x77,0x11,0x05,0x33,0x0c,0xf1,0xf4,0xae,},{0x88,0x72,0xa5,0x0b,0x5f,0xe3,0x62,0xf8,0xea,0xd1,0xd4,0x0e,0x20,0x45,0xf0,0xd4,0x0b,0x2e,0x7b,0x50,0xb5,0x9d,0x80,0x90,0xbc,0x47,0xad,0x68,0xeb,0xee,0x09,0xed,},{0xc6,0xdc,0x5c,0xa1,0xe8,0x56,0x00,0x15,0xb4,0x93,0xaf,0xe2,0x66,0x6c,0xcf,0x6f,0xef,0xa8,0x03,0xd8,0x52,0x6c,0x83,0x7f,0xe7,0xf1,0x23,0xc7,0x99,0x14,0x27,0xab,0x03,0x0d,0x7c,0x77,0x0e,0x45,0xf6,0xde,0x84,0x81,0x52,0x3b,0x94,0xec,0xe9,0x7f,0x3f,0x16,0x1c,0xf5,0xb8,0xc7,0xae,0xa3,0x9f,0x5a,0xd8,0x26,0xbf,0x8d,0x0a,0x02,},\"\\xd1\\xe1\\x98\\x7b\\xff\\x65\\xf6\\x2a\\xd6\\x76\\x24\\xc6\\x65\\x79\\x24\\xf5\\xd6\\x73\\xb7\\x82\\x4e\\xbe\\x40\\x40\\x26\\xc0\\x56\\x2d\\xed\\x31\\x43\\x44\\x0b\\xe6\\x37\\xf9\\x8c\\x9e\\x01\\xa6\\xaf\\xdf\\xa9\\xa4\\x7d\\xd4\\x9c\\x7c\\xba\\x6e\\x3f\\xd2\\x3e\\x45\\x52\\xf7\\x63\\x2b\\x14\\x38\\x0b\\x27\\xcd\\x3e\\x96\\x06\\xcc\\xe3\\x50\\xf1\\x52\\xab\\x12\\x6b\\xea\\xd0\\xa5\\xd3\\xbc\\xe4\\xd4\\x20\\x92\\xd9\\x34\\xc8\\xca\\x33\\x7e\\x98\\x7e\\x11\\xd8\\x6c\\xfb\\xfb\\xd2\\xac\\xc3\\x22\\x3b\\xd1\\x67\\x44\\xa9\\x27\\x72\\x8f\\x48\\x53\\x72\\x17\\x5c\\xc6\\x94\\xdf\\x30\\xa7\\x3f\\x9d\\x33\\x76\\x5f\\xf0\\x14\\xef\\x00\\x8d\\x58\\x63\\x21\\x03\\x38\\xcc\\x34\\x82\\xcc\\x27\\xea\\x31\\x7e\\xec\\x92\\x1b\\x0c\\x56\\x8c\\x38\\xab\\x27\\xc4\\xa5\\x64\\xe8\\x02\\xb1\\xb9\\x46\\x68\\xc6\\x51\\xe2\\x0a\\x0b\\x55\\xf3\\xa7\\x9d\\x21\\x5f\\xc3\\xa0\\xd0\\x49\\x04\\x01\\x09\\x32\\xc4\\xcc\\x68\\xc2\\xa9\\xe7\\xd0\\x0e\\x5d\\x38\\xd8\\x2d\\xf5\\x52\\x06\\xba\\xb9\\x5c\\xf6\\x97\\xbe\\xbc\\x72\\x06\\xee\\xde\\xf6\\xfd\\x18\\xd9\\xa2\\x0c\\x2c\\xbb\\x28\\x5b\\x00\\xef\\xa7\\x69\\xa0\\x8d\\xab\\x2b\\x3a\\xba\\xdf\\x00\\xd1\\x98\\xb4\\xf1\\x92\\xdd\\x44\\xbc\\xb9\\x14\\x31\\x82\\x3a\\xe6\\xfd\\xf9\\x84\\x58\\xec\\xa3\\x9c\\xd2\\x92\\x63\\xf0\\x99\\x93\\x03\\xe7\\x0d\\xc6\\x94\\xfe\\x01\\xc5\\x3a\\x11\\xc1\\xd1\\xc3\\x4c\\x1e\\xe5\\x06\\x8a\\x20\\x1d\\xbe\\x7e\\x10\\x08\\xd7\\x64\\x35\\x89\\x68\\xb4\\x02\\xaa\\x39\\x85\\x49\\x50\\x7f\\x7b\\xd1\\x85\\x08\\x00\\xe4\\x11\\xb1\\xc4\\xe2\\x8d\\xdc\\x04\\xa8\\x59\\xe1\\x79\\xbe\\x8a\\xd7\\xe6\\x67\\x0e\\x50\\x9d\\xb0\\x27\\xad\\x7e\\x51\\x7e\\x44\\x25\\x95\\x4f\\x5a\\x80\\x74\\x14\\xa6\\xda\\x26\\x7a\\x76\\x4e\\x71\\x2a\\x99\\x84\\x65\\x06\\x49\\x82\\xd8\\x51\\xa2\\x65\\xea\\x3c\\x4d\\xfb\\x74\\xf9\\x92\\xa7\\xcc\\xcd\\x9a\\x82\\x68\\x7f\\xa6\\x1c\\x32\\x2c\\x4f\\x58\\x9e\\x86\\xb8\\x82\\x52\\x13\\xbf\\xa9\\x51\\xda\\xe6\\xaf\\x35\\x4a\\xce\\x18\\xf0\\x73\\x99\\x5a\\xdc\\x95\\x83\\x9d\\xac\\x01\\x65\\x51\\x1d\\x61\\x75\\x37\\x91\\xa5\\x3e\\x48\\xe3\\xa8\\x27\\x3d\\x44\\x82\\x3d\\x25\\x96\\xf2\\xa2\\xdb\\x2e\\x5f\\x1a\\xe5\\x97\\x22\\x1b\\xa7\\xf3\\xeb\\xaf\\x4a\\x7b\\x28\\x88\\x39\\x50\\x02\\xbd\\xaf\\xf5\\x1f\\xa5\\x4b\\xfb\\x97\\x9d\\xe1\\x03\\x14\\x04\\xca\\x77\\x89\\xfe\\x09\\x5d\\x4d\\x17\\xf0\\x7a\\x35\\x55\\x6b\\x10\\xfe\\x8e\\x14\\x17\\xc8\\xa6\\xa6\\x31\\xc2\\xed\\x36\\xcb\\x7a\\x0e\\x61\\x81\\x77\\x62\\x89\\xc3\\x44\\x81\\x4d\\x42\\x13\\x1a\\x73\\xb1\\x2f\\xaa\\x35\\xd7\\x78\\x14\\xc6\\x81\\xa6\\x01\\x37\\x4b\\xa7\\x1c\\xb9\\xad\\x53\\x15\\xfa\\xd4\\x2d\\x3a\\xcf\\xc7\\xc1\\xd6\\x28\\x81\\x02\\x56\\xda\\xf7\\xd8\\xc3\\xc9\\xa2\\xe5\\xbd\\xcf\\xb7\\x70\\x08\\x2f\\xa6\\x38\\x16\\x89\\x58\\x52\\x3a\\x1c\\x3b\\x03\\x5d\\xbc\\x6d\\x5a\\xdf\\x26\\xdf\\x89\\xa7\\xcc\\xab\\xed\\x3e\\x7d\\xd3\\x77\\xc1\\x6d\\xa8\\x41\\xf1\\x3c\\x68\\x94\\xd4\\x3c\\xeb\\xb4\\xe3\\x90\\x22\\xf1\\xcc\\xec\\x22\\x74\\x44\\x5c\\x78\\xb3\\xad\\xc7\\xbb\\xf7\\x0d\\x89\\x0b\\x80\\x23\\x6c\\xc4\\x46\\x8f\\x95\\x69\\xc5\\x9a\\x7e\\x33\\xb5\\x70\\xe6\\x70\\x38\\x0d\\x24\\x4e\\x4e\\x31\\x0e\\x11\\xc3\\x92\\xf1\\xe3\\x34\\x05\\x4b\\x92\\xc8\\x38\\x6c\\x16\\x1c\\xe0\\x41\\x09\\xb0\\x37\\xbd\\x62\\x8d\\x91\\x9d\\xcb\\x62\\xda\\x14\\x35\\xbf\\x94\\xe8\\x8b\\x0a\\x88\\x46\\xd4\\x86\\xd1\\x67\\x78\\xf7\\xa3\\xb8\\x80\\xe6\\x60\\xf4\\x41\\xfd\\xf8\\x6e\\x56\\xb8\\xaa\\x06\\x61\\xf5\\x5a\\xae\\xce\\x27\\xf9\\xdd\\xaa\\x0e\\x2a\\x22\\xc2\\x15\\xb0\\x40\\x53\\x97\\x26\\xb9\\x85\\x39\\x15\\xa1\\x59\\x2d\\xff\\xea\\xe3\\x2d\\x7b\\x5b\\x67\\xeb\\x62\\x05\\xbb\\x0b\\xd7\\x27\\x9f\\x78\\x8d\\x5f\\x83\\x3c\\x40\\x66\\x78\\x0c\\xa0\\xa4\\x2d\\x3e\\x4e\\x1a\\xa2\\x2b\\xd0\\x6b\\xb5\\xee\\xd8\\x9b\\x94\\x13\\x77\\x1e\\xca\\xb6\\x44\\xca\\x72\\xd1\\x29\\x1d\\x00\\xf7\\x40\\x90\\x1a\\x73\\x11\\xdc\\x03\\x67\\x15\\xd2\\x3e\\xbd\\x9a\\x59\\x89\\x16\\x28\\xf0\\xd8\\x7e\\xd4\\x89\\x50\\x2f\\x06\\xd7\\x5b\\xbd\\x11\\xcd\\x16\\x02\\xa3\\x5e\\xe7\\xe1\\x33\\x35\\xd6\\xa1\\x44\\xb0\\x88\\x30\\xe6\\x69\\xc0\\x2e\\x65\\x2f\\x3f\\x10\\x0d\\x39\\x3e\\xf9\\xb4\\xac\\x05\\x32\\x14\\x39\\xbc\\xe6\\xce\\x36\\xff\\xc5\\xab\\xca\\x89\\x0b\\x87\\x96\\xcc\\xb5\\xe1\\x63\\x03\\x55\\x9c\\x5d\\x91\\x17\\xf0\\xf3\\x1d\"},\n{{0x70,0x09,0xed,0xd0,0x79,0x50,0x96,0xed,0xc4,0xfe,0xd5,0x5a,0x17,0xcc,0xf4,0x84,0x13,0x1e,0x60,0x8c,0x6d,0x5d,0x66,0x96,0xbf,0x33,0x76,0xe2,0x69,0x24,0x95,0x9b,},{0x77,0x57,0x4b,0xf0,0x69,0x52,0x71,0x45,0xe7,0x2d,0x3e,0x85,0xce,0x7d,0x4f,0xcd,0x67,0x1a,0x33,0xe0,0xa7,0x1e,0x6b,0xf0,0xda,0x7e,0xa4,0x71,0xdd,0x6e,0x86,0xa4,},{0xb7,0x01,0xb8,0xf9,0xa4,0x34,0xe0,0x6d,0x71,0x9a,0xd2,0x5d,0xcc,0x54,0x06,0x0c,0x79,0x86,0x64,0x7f,0x44,0xf3,0x88,0x4b,0xcb,0x6e,0x5e,0xe1,0xd7,0xa4,0x46,0xcc,0x26,0x5c,0xec,0x02,0x9b,0x53,0x7d,0xa7,0xf2,0x52,0x33,0x26,0x55,0x8a,0xc9,0xba,0x34,0xf4,0xcc,0x2a,0x97,0xcc,0xa3,0x45,0x2e,0x70,0x56,0x2e,0x7a,0x8f,0x55,0x04,},\"\\xb1\\x2c\\x12\\x47\\x05\\x39\\x54\\x7c\\x2d\\xe6\\xbc\\x4e\\xea\\xc7\\xb6\\x3e\\x50\\x8e\\xd7\\x10\\xf3\\x56\\x37\\xd9\\xfd\\xd2\\xdc\\xca\\x32\\x2a\\x7a\\x50\\x71\\xda\\xb2\\xb2\\x84\\x5e\\x30\\x79\\x28\\x06\\x03\\x5c\\x9f\\xcd\\xaf\\xe2\\x78\\x3e\\x3b\\x67\\x7d\\x6b\\xe5\\xaa\\xc7\\x0b\\x33\\x91\\x0a\\x2b\\x95\\xe8\\xb5\\xd5\\x9b\\xda\\x61\\x59\\x35\\xa4\\x17\\xb7\\xae\\x19\\xa7\\x85\\x37\\x74\\xe8\\x9a\\x12\\xaa\\x54\\x7b\\x41\\x92\\x97\\x9a\\x01\\xef\\x6e\\xf3\\x2a\\x40\\xde\\x79\\xd6\\x80\\x05\\x7a\\x83\\xa0\\x74\\x61\\x7c\\xa6\\x50\\x1f\\x59\\xe7\\x35\\x64\\x92\\x7c\\x38\\xb5\\x8c\\x19\\x58\\x5a\\x2c\\x03\\x65\\x9c\\x02\\x6e\\x4d\\xe3\\x80\\x6d\\x6c\\x1c\\xa8\\x95\\x8d\\xee\\x47\\xbc\\xb8\\x89\\xe7\\x6d\\x2c\\x3a\\x9a\\xb5\\xb8\\xb6\\xaf\\xb2\\xe8\\x42\\x29\\x80\\x56\\x56\\x7b\\xf9\\xb5\\x89\\x57\\x41\\x54\\x83\\x33\\x62\\x33\\xef\\x49\\x20\\xfa\\x57\\xf4\\x96\\xe1\\xf0\\x34\\x8c\\xca\\x20\\x36\\x64\\x96\\xfa\\xb3\\xa7\\x5b\\xf4\\x21\\x4e\\xce\\x47\\xa4\\x5f\\xea\\xa1\\x39\\x2d\\xb3\\xf2\\x54\\xd9\\x6a\\x7f\\x37\\x40\\x2c\\x98\\x11\\x14\\x0d\\x73\\x58\\xb4\\xef\\x8f\\x20\\xa2\\x98\\xee\\xef\\x90\\x4e\\x37\\xd6\\x8f\\x37\\x8d\\x33\\xcb\\x96\\xd0\\x0c\\x03\\x10\\x9f\\xc8\\x3f\\xd0\\x6a\\x87\\x6c\\x92\\x48\\x2f\\x61\\xab\\x79\\x14\\xeb\\x7c\\x2e\\x5e\\x84\\x06\\x6e\\x0e\\x91\\xe2\\x1e\\x42\\xe9\\xbe\\x23\\xdf\\x12\\xb5\\xc7\\x47\\x97\\x3c\\xb8\\x64\\x42\\xc3\\x22\\x91\\xd3\\xd1\\xae\\x71\\x9b\\x36\\xa6\\x2f\\xaf\\x3a\\xba\\xa2\\x05\\x3a\\x31\\x3f\\x62\\x5d\\x85\\xc5\\x1a\\x51\\x98\\x57\\x19\\x15\\xef\\x8a\\x2b\\x19\\x9b\\xa3\\x7d\\x25\\x88\\x45\\x75\\xba\\x1b\\x72\\x84\\x4c\\xab\\x43\\x28\\xb5\\x7f\\xab\\x1e\\xc9\\x74\\xee\\x8e\\xa1\\xdf\\x7c\\xa9\\xc7\\x8a\\x4d\\x3a\\x03\\xbc\\xb0\\xab\\x41\\x69\\xbf\\x06\\xa3\\xa4\\x38\\xd9\\x56\\x6c\\x6c\\x50\\x1d\\x8d\\x9c\\xcc\\xcb\\x1a\\xc2\\x6b\\x4d\\xa4\\xae\\x1a\\x9d\\x8e\\x8b\\x9d\\xf6\\x62\\x82\\x1a\\xd9\\x75\\xc9\\xb0\\x15\\xfe\\x26\\xf6\\x89\\x8d\\x22\\xab\\x91\\x2f\\x0e\\x40\\x5a\\x5b\\x27\\xcf\\xd3\\x9d\\x65\\x7d\\xcd\\x92\\xcd\\xeb\\xe6\\x79\\x19\\x02\\x71\\x34\\x84\\x40\\x6d\\xdd\\xce\\x71\\x18\\x87\\x31\\xe4\\x43\\x19\\x38\\x1a\\xf2\\x7d\\xaf\\x76\\x79\\x22\\x73\\xb8\\xc3\\x52\\x51\\xd1\\x1b\\x83\\x6a\\xfe\\x8b\\x3c\\xe9\\xb4\\x02\\x73\\xf6\\x91\\x5e\\xbe\\x6b\\xc9\\x5a\\x75\\xbb\\x94\\x1a\\x42\\x92\\x09\\x86\\x7f\\xba\\x87\\x64\\xbf\\x6c\\x40\\xdb\\x6e\\xec\\xb4\\xf2\\x17\\x47\\x83\\x7c\\xf6\\xae\\x7f\\xbf\\xe3\\x6d\\x50\\x23\\xdf\\x7f\\xce\\x2c\\x0c\\x3c\\x57\\xaf\\x28\\x98\\x88\\x53\\x13\\xc5\\xc4\\xbd\\xa3\\x5c\\x7d\\xa6\\xcb\\x29\\x93\\x2f\\xb1\\x99\\x1f\\x62\\xbb\\xb0\\x80\\xb3\\x2e\\x20\\x50\\x61\\x93\\x11\\xae\\x69\\xab\\xb3\\x02\\x2d\\x91\\x3f\\xa9\\xea\\xbd\\x5d\\x5c\\xb4\\xdc\\x54\\xd7\\x5d\\xca\\x63\\x8c\\xda\\x9a\\xf3\\x31\\xc0\\xcf\\x4d\\x20\\x07\\xb6\\xca\\x39\\xf6\\x55\\xa6\\x1c\\x01\\x03\\x9f\\x12\\xa4\\xb9\\x78\\x2b\\xc3\\x9a\\xec\\x4d\\x22\\xef\\x00\\x93\\x38\\x8d\\xd7\\xd5\\xb5\\x6d\\xfb\\x8a\\x7f\\x9d\\x86\\x69\\x00\\x4e\\x28\\x78\\xdd\\x8a\\x6d\\x76\\x85\\x7c\\x08\\x45\\x24\\x50\\x68\\xfe\\xe1\\xc5\\x31\\x96\\x31\\xe7\\x8d\\x37\\x85\\x16\\x5c\\x70\\xaf\\xd6\\x52\\x99\\x30\\x13\\x78\\x55\\x1e\\xbf\\x61\\x35\\x84\\xc6\\xa7\\x62\\x0a\\x0e\\x3b\\x67\\x79\\xf3\\x8c\\x09\\x40\\x06\\x24\\x97\\x00\\x8e\\xb2\\x33\\x87\\x08\\x68\\xc2\\x1c\\xcc\\xac\\x23\\x95\\x01\\xb6\\x3b\\x74\\x9a\\x85\\x60\\x2c\\x28\\xa0\\x95\\xca\\xfc\\x74\\x9b\\x05\\x11\\xa6\\xc8\\x78\\xed\\xb3\\xb7\\x80\\xea\\x17\\x4d\\x07\\xb1\\x21\\xe3\\x15\\xa8\\x26\\xdd\\xa6\\xec\\x8d\\xc5\\x43\\x63\\xe2\\xcd\\x2e\\x63\\x05\\xa1\\x94\\x82\\x5c\\x0e\\xa9\\x0e\\xfd\\x7a\\x9f\\xd8\\x9c\\xd9\\x7b\\x99\\xc4\\x30\\x0b\\xd3\\xbf\\x93\\x53\\xd8\\x2f\\xbc\\xce\\xea\\x71\\xb4\\xee\\x3f\\x1a\\xae\\x95\\x39\\xb4\\xcc\\xe9\\x0c\\xa4\\x77\\x59\\x7c\\x17\\x4e\\xf2\\x0f\\x4b\\x9f\\x4e\\x62\\xd0\\x9a\\x57\\x0d\\x31\\x35\\xaa\\xbe\\xe9\\x55\\x1f\\xa6\\x09\\x83\\x95\\x8c\\x0b\\x7b\\x8c\\x37\\x44\\x55\\x3e\\xe1\\x4e\\x7f\\x3c\\xd1\\x03\\xa1\\x92\\x51\\xc9\\x9b\\xf6\\x38\\x4a\\xbb\\x60\\xa7\\x6a\\xfc\\x66\\x58\\xb8\\x0d\\xfc\\x51\\x10\\xad\\xc4\\xc7\\x32\\xfe\\x0e\\xe3\\x29\\x33\\xfb\\x28\\x48\\x28\\xe0\\x08\\x88\\x7a\\xef\\x80\\xf6\\xf8\\x13\\x34\\x04\\x46\\xc0\\x21\\x7c\\x12\\xee\"},\n{{0x12,0xfe,0x8e,0x5c,0xe2,0x0c,0xaf,0xaa,0x32,0x79,0xda,0x7b,0x34,0xaa,0x87,0x75,0x2e,0xad,0x67,0x9f,0x15,0x61,0x28,0xaa,0xef,0xb4,0xaf,0xa5,0xdb,0x4f,0x2a,0x6f,},{0xe7,0x7f,0x44,0x20,0x6b,0xb0,0xc4,0xc5,0x9a,0x28,0x70,0xcf,0xc2,0xec,0xac,0x63,0x36,0x2d,0xee,0xcb,0xe8,0x11,0x5d,0xe5,0xcb,0x1a,0xfc,0x2d,0x9a,0x3d,0x47,0xf1,},{0x04,0xea,0xf9,0x00,0x96,0x6e,0x09,0x92,0xd3,0x6e,0x3c,0x22,0x0a,0x4b,0xd4,0xd8,0x2b,0xcc,0x6e,0xb9,0x98,0xed,0x05,0x1d,0xbc,0xb9,0x16,0x0b,0xcd,0x35,0x74,0x09,0x73,0x6b,0xcf,0xf7,0xe6,0x63,0x0e,0x96,0xf5,0x53,0x8a,0xec,0xa6,0xab,0x8b,0x0d,0x0b,0xd8,0x2c,0x0c,0xd7,0xc4,0x54,0x99,0x17,0xfe,0xbb,0x9c,0xba,0xda,0x08,0x0c,},\"\\x6b\\x80\\xcc\\x6f\\xbb\\xd3\\x32\\xf8\\xc6\\x19\\x7c\\xdf\\x2e\\x6d\\xc1\\x9a\\x21\\x30\\xfa\\xa2\\xec\\x93\\x8e\\xf5\\x58\\xb8\\x84\\xba\\x4f\\xa5\\xe1\\x13\\xe5\\xb3\\xe4\\xb1\\xaa\\xf5\\x1b\\x69\\x5f\\x13\\xef\\xfe\\x13\\xf7\\x7d\\x39\\xca\\xb3\\xc0\\x7d\\x04\\xd6\\x6d\\x43\\x0d\\x99\\x74\\xb1\\xda\\x3d\\x39\\xdf\\x12\\x78\\xc0\\x0d\\x6b\\xcb\\xfd\\x4b\\xae\\x75\\xb8\\xc0\\x76\\x40\\x4d\\xbb\\xb8\\x34\\x48\\xfb\\x49\\x3d\\xf6\\x70\\x00\\xf9\\x7d\\x24\\x7e\\x8f\\x23\\xdc\\x08\\x1f\\xce\\x99\\x2b\\x65\\xa2\\x1b\\x35\\xd7\\xbd\\x7f\\xa7\\xdc\\xcc\\x54\\xa5\\x60\\xaf\\xd1\\x4b\\x1e\\xc4\\x36\\xc1\\x09\\x46\\xf6\\xaa\\x59\\xea\\xe1\\xbe\\x3e\\xcf\\x31\\x1d\\xef\\x51\\xe4\\x6b\\x6b\\x4d\\x1d\\x08\\x0d\\x17\\x84\\xb2\\x33\\x4b\\x80\\xcf\\xba\\x72\\xcd\\x93\\x1f\\x55\\xec\\xd2\\x98\\xb0\\x5d\\xc8\\x36\\xab\\x12\\xd0\\xad\\x8b\\x5d\\x6e\\x9b\\x1e\\x3c\\xea\\x3d\\x84\\x33\\x68\\xee\\xf1\\x9f\\x5c\\x14\\xc6\\xbb\\xad\\x94\\x14\\xcc\\x7a\\x4d\\xb6\\xa7\\x26\\xe4\\xfc\\xae\\xd4\\x44\\x40\\xa0\\x19\\xfe\\x12\\xa6\\x05\\x73\\x40\\x3c\\x0e\\x66\\x2d\\xc9\\x02\\xd1\\xc8\\x73\\xff\\x30\\xc9\\x31\\xba\\x7e\\x43\\xa3\\xb3\\xbf\\x71\\xd5\\xb0\\x94\\xea\\x50\\x49\\x71\\x64\\x7c\\xa9\\x43\\x56\\xf0\\xa5\\x3e\\x44\\x4b\\x4c\\x00\\x8e\\xe5\\x97\\x72\\x04\\x22\\x1b\\x40\\x0d\\xee\\xc3\\x7f\\xc2\\x73\\x45\\x25\\x45\\xf8\\xf2\\x18\\xbe\\x98\\x87\\x25\\xbc\\x38\\xc8\\x5d\\xf2\\x12\\xea\\x73\\xdc\\x0b\\xc7\\xcb\\xba\\xc9\\x07\\x98\\x2f\\xef\\xad\\x68\\x0f\\xbd\\x97\\x5c\\x20\\x93\\xa7\\xfe\\x8e\\x6b\\x37\\xc1\\xcc\\xed\\x87\\xf8\\x1d\\xaa\\x57\\x29\\x1a\\x5a\\x18\\x47\\x6d\\x11\\xa1\\x8e\\xc4\\xb5\\xcb\\xce\\x5d\\x55\\xac\\x9b\\x62\\x4b\\x04\\x84\\x30\\xf2\\x54\\xf6\\x71\\x07\\x85\\x06\\xe6\\x98\\x9d\\xf7\\xc0\\x92\\x56\\x52\\x50\\x39\\x08\\x5a\\xb7\\xc1\\x30\\xc2\\x40\\x00\\x4a\\xbb\\xb3\\xaf\\x6b\\x48\\x1c\\xc1\\xa0\\x61\\x7e\\x57\\xe3\\x88\\xee\\x4b\\x1f\\x05\\x2f\\x34\\xa0\\x03\\xfe\\x6b\\xb2\\x02\\xcb\\x87\\xd2\\x74\\x1b\\xd8\\xe3\\x45\\x4c\\xa7\\x3d\\x2f\\x61\\x20\\x11\\xec\\xc7\\x4d\\x88\\x34\\x35\\x10\\xa6\\x3c\\x93\\x13\\xdd\\xc3\\x6c\\x25\\xd3\\xfb\\x03\\xe1\\x88\\xf5\\x60\\xbd\\x02\\x9c\\x80\\x15\\x85\\xce\\x55\\x29\\x88\\xdc\\x55\\xb7\\xd8\\x52\\x2a\\x33\\x96\\xc0\\x1d\\x5e\\x71\\x5a\\xe2\\x6c\\x62\\x2c\\x64\\xfe\\xd5\\xb9\\x8e\\x9c\\x55\\x9e\\x4a\\xa7\\x8d\\x1e\\xd3\\xb7\\xb8\\x90\\xd4\\x77\\xec\\x8c\\x50\\xa0\\xff\\x10\\x7a\\x3f\\x83\\xb0\\x7b\\xd3\\x5e\\x9c\\xe9\\xa0\\x8b\\xcf\\xc0\\xf1\\x68\\xee\\xc7\\xaa\\x31\\x1f\\x71\\xc6\\x6a\\x71\\xce\\xb9\\xd5\\xa2\\x19\\x9a\\x14\\xbe\\x36\\x86\\x5c\\xa8\\xd0\\x7e\\x18\\x6b\\x13\\x92\\xb9\\x29\\x0c\\x57\\x80\\x04\\xd5\\x84\\xf1\\x91\\xc8\\x2a\\x53\\xd8\\x50\\x89\\x0b\\xcc\\x0d\\x12\\xdf\\xf8\\x40\\xe0\\x43\\xdd\\xdc\\x2e\\x67\\x0c\\x83\\x60\\x20\\x92\\x4f\\x58\\xc0\\x44\\xb2\\x18\\x76\\x3c\\xa6\\x19\\x82\\xbc\\x33\\x2d\\x24\\x7b\\x2a\\x00\\x8a\\xb5\\x70\\xb6\\x56\\x5a\\x06\\x89\\x2a\\x26\\xcf\\xb0\\x85\\x3d\\x79\\xda\\x28\\xef\\x8b\\x91\\x0a\\x93\\x29\\x54\\x4b\\x79\\x2a\\xe4\\x45\\x6b\\xa7\\x76\\x50\\x66\\xb9\\xd1\\xb4\\xa3\\x00\\x21\\x04\\x48\\x66\\x0a\\xe4\\x8b\\x50\\x44\\x41\\x01\\x7c\\xdd\\xd1\\xf6\\xf0\\x09\\x38\\xb1\\x07\\x2c\\x8a\\xb8\\x24\\xad\\xfe\\x8a\\xe3\\x49\\x23\\xc8\\x2e\\xec\\x75\\x4b\\xee\\x1a\\x65\\x50\\xab\\x1d\\x3d\\xa0\\x86\\xe3\\xae\\xbb\\xf2\\x11\\x69\\xc4\\x44\\x69\\xe0\\x3b\\xba\\xe0\\xd7\\x2c\\xe8\\x63\\x45\\x77\\x84\\xcf\\xe1\\xdf\\xc2\\x76\\xf1\\xaf\\xad\\x9e\\xe5\\x3e\\xba\\xb5\\xa3\\xc6\\x57\\x2e\\xb1\\xca\\xe0\\x99\\xa4\\xa5\\xfe\\x19\\x31\\x92\\x90\\xe6\\xa1\\xb8\\xb0\\xe7\\x54\\x1e\\xd7\\x35\\xb3\\xf2\\x1b\\x1e\\x2c\\x75\\x09\\xf8\\x7f\\xd1\\xfe\\xd0\\x00\\x07\\x47\\x9b\\x3c\\x1b\\xb7\\x84\\x32\\x46\\x63\\x02\\xd2\\x46\\xd8\\xd0\\x31\\x99\\x63\\x07\\x26\\x0a\\x0c\\x41\\xa0\\xe3\\xec\\xd1\\xe7\\xfd\\x83\\x4d\\xac\\x11\\xa1\\x3e\\xb0\\x36\\xb3\\x9c\\x36\\x99\\x66\\xfd\\xef\\x39\\x4c\\x18\\x3e\\x54\\xe7\\xb0\\xcb\\x3d\\x0c\\xeb\\x19\\x8b\\xd0\\xe6\\x6c\\x00\\xd3\\x8d\\xb7\\x03\\xaa\\xce\\x30\\xcb\\xbd\\xab\\x36\\x9d\\xfd\\x1d\\x9e\\x51\\x4d\\x09\\x68\\xf1\\x00\\xc9\\xf0\\x7c\\x31\\x50\\x89\\xad\\xb3\\xad\\x02\\xe5\\x9c\\x04\\xb9\\xbe\\x46\\xe9\\x9f\\xbf\\x5a\\x62\\xc6\\xbb\\xec\\xdf\\xf5\\xb3\\x81\\xe5\\x51\\x27\\x82\\x4d\\xdb\\x18\"},\n{{0xee,0x9b,0x6c,0x2e,0x0c,0x9b,0x01,0x47,0x2c,0xe3,0x2d,0x54,0xd1,0x76,0x2a,0xb0,0x30,0x33,0x17,0xd7,0x6d,0x3a,0xa7,0x8f,0x5e,0x08,0xa9,0x02,0x4c,0xa1,0xe0,0x83,},{0x01,0x6d,0xf0,0xf7,0x17,0xbc,0xb7,0xad,0xf6,0x26,0x95,0x8d,0x83,0xbf,0x8a,0xa3,0x25,0xc7,0x05,0x18,0xc6,0x8b,0xc7,0xef,0xd8,0x42,0x53,0xb7,0x5d,0xb0,0x87,0x88,},{0x4b,0x00,0x1d,0x96,0x42,0x83,0x5d,0x72,0x13,0x8d,0x68,0x01,0x98,0xe6,0xaf,0x70,0xb5,0xde,0x7a,0xf0,0x15,0x13,0x1e,0xa7,0x26,0xf4,0xe5,0x1b,0x5e,0x8b,0x6d,0x48,0xc2,0xa6,0xca,0x8e,0x87,0x09,0xcc,0x82,0x22,0xa5,0x04,0x7c,0x09,0xa6,0x6e,0x51,0x8a,0xc5,0xe8,0xb6,0xe5,0x35,0x48,0x94,0x82,0x61,0xf0,0x70,0x1f,0x68,0x73,0x08,},\"\\x77\\x2c\\xc2\\x5c\\x3b\\x69\\xbb\\x3f\\xf5\\x65\\x56\\x64\\xef\\xa4\\x78\\xac\\x41\\x4a\\xdf\\xae\\xa7\\x0a\\xc4\\xa2\\xa8\\x87\\xed\\x39\\x68\\xc5\\x4d\\x34\\xdb\\xf1\\xbe\\x32\\xcc\\x9a\\x9b\\x54\\x20\\xa4\\xad\\x3c\\x9a\\x87\\x7b\\xc8\\xcc\\xec\\x94\\xad\\x47\\x3a\\xa7\\xa3\\xc7\\xde\\x08\\xa0\\xfd\\xb5\\xed\\x1e\\x89\\x87\\x2b\\xe7\\x81\\x70\\xbe\\x22\\x1d\\x27\\x97\\x76\\xbb\\xc6\\xed\\x9c\\x5a\\x67\\x16\\x89\\x80\\xd5\\xea\\xf8\\x95\\xe1\\x34\\x0f\\x5d\\xfa\\xa3\\xdf\\x62\\x2d\\x65\\x44\\xb3\\x99\\xd7\\x49\\x45\\xfd\\x13\\xbb\\x11\\x73\\x62\\x1e\\x05\\x61\\x51\\x46\\x40\\x13\\x7a\\xa7\\xbc\\x9c\\xb7\\xde\\xbe\\xff\\x2c\\x62\\x69\\x77\\xd4\\x47\\x26\\x3b\\x7e\\x57\\xd4\\x3d\\x69\\xef\\xb2\\x30\\xcd\\x25\\x86\\x5e\\x4d\\x92\\x48\\x28\\xf5\\xe3\\x6f\\x96\\x4e\\x40\\x3e\\x34\\x93\\xf3\\x0d\\x6d\\xfe\\xa6\\xca\\x3b\\x78\\x10\\x75\\xb5\\xe3\\xb2\\x5c\\x05\\xac\\x50\\xe5\\x55\\xf1\\x5b\\xa1\\x2b\\x0e\\x05\\x9b\\xff\\x99\\x64\\x84\\x12\\x9d\\xb6\\xea\\xfd\\x88\\x99\\x3d\\x6f\\x0b\\x7e\\xcd\\x15\\xdc\\xe2\\xfc\\x99\\xf8\\xb8\\xe4\\x35\\x16\\x35\\x2d\\xdb\\x46\\x1a\\x04\\xb9\\xff\\x34\\x86\\x45\\x2e\\x6a\\xa6\\xa5\\x4b\\x2d\\x10\\x62\\xa7\\x71\\x42\\x50\\xcd\\x2a\\x88\\xff\\x6c\\x4c\\x17\\xb6\\xcc\\x66\\x52\\xd8\\xc5\\xac\\x27\\xd4\\x44\\x3a\\xeb\\xf3\\xd5\\xfb\\xaa\\xee\\x45\\x21\\xec\\x76\\xf0\\x41\\x3d\\xb6\\x44\\x21\\xec\\x8d\\x69\\x49\\x62\\x67\\x25\\xfe\\x56\\x16\\x0a\\xb3\\x07\\xc0\\xe7\\x39\\x06\\xc4\\x51\\x55\\xef\\xab\\xb4\\x72\\x22\\x02\\x1f\\x22\\x0d\\x32\\xbd\\x3d\\xb0\\x71\\x2a\\xbd\\xe2\\x59\\x9e\\xa4\\xff\\x79\\x97\\x17\\x81\\x1d\\xcd\\xf8\\x18\\x2d\\xf6\\x71\\x6d\\x2a\\x03\\x8a\\xee\\x15\\xd7\\x78\\xda\\x55\\xac\\x20\\xf0\\x1f\\x25\\x30\\x9c\\xea\\xd5\\xb5\\xb7\\xb2\\x23\\x22\\xe1\\x82\\x8e\\xa7\\xc9\\x1a\\xe6\\x66\\xf2\\xdc\\xd6\\x84\\x07\\x31\\x48\\xe3\\x1b\\xb2\\x24\\x7d\\x5f\\x93\\x50\\x6e\\xa8\\x08\\x52\\x27\\xad\\xc9\\xae\\x19\\x82\\xe9\\x50\\xf0\\x06\\xa9\\xda\\x15\\x8b\\x9c\\xec\\xff\\x89\\x29\\x76\\x1c\\x84\\xf9\\xd9\\x76\\xfd\\xcd\\x31\\x7f\\xfe\\xd3\\x6c\\xbf\\x6a\\xcd\\xa3\\xe5\\x0c\\x9b\\x73\\xbd\\x2c\\x80\\x85\\x40\\x9d\\x11\\x9b\\x64\\xce\\xd7\\x34\\x9a\\x26\\x74\\x26\\x2a\\x83\\x2b\\xec\\xb0\\x3c\\x2e\\xdc\\xca\\xc0\\xec\\x54\\x12\\x4e\\x82\\xf8\\x10\\x18\\x17\\x92\\xda\\x49\\xea\\x10\\xbd\\x94\\x1f\\x98\\x95\\xa0\\x69\\x59\\xfd\\xe0\\xd3\\xb0\\xae\\x84\\xc3\\x9d\\xf0\\x53\\x90\\xab\\x33\\xc3\\x6c\\x79\\xca\\x22\\xe6\\x59\\x4d\\x7f\\xc6\\xe3\\xf8\\x69\\x22\\xd7\\x8e\\xb7\\xf5\\xc2\\x54\\x95\\xd8\\x22\\xa3\\xb4\\x10\\x51\\xb2\\x4e\\x57\\xa7\\x6f\\xcf\\xc1\\x65\\xcd\\xe6\\xd0\\x96\\xcc\\x7b\\x7e\\x9d\\x05\\x5f\\xe8\\x64\\xd5\\x29\\x42\\xd6\\x29\\xa8\\xac\\x26\\x1b\\xe1\\xdc\\xd3\\xa2\\x1f\\x89\\x5f\\x49\\xb6\\x7e\\xe4\\x7e\\xab\\x7c\\xf1\\x64\\x4d\\x57\\x1d\\x5f\\xf3\\x8c\\x17\\x9f\\x5c\\x6a\\x54\\xa3\\x61\\x2f\\xb3\\x47\\x53\\x41\\x2a\\x1b\\x95\\xbf\\x62\\xff\\x31\\x79\\x80\\x4f\\xfb\\xb9\\x90\\x51\\xf2\\xb0\\x80\\x56\\x3a\\x4a\\xe0\\xf2\\x7c\\xf9\\x96\\xea\\x8b\\xe3\\xba\\xe0\\xa4\\x33\\x9d\\xcc\\xdf\\xf6\\xb6\\x67\\x15\\x59\\x26\\x6e\\xaf\\xf4\\xef\\xf6\\x82\\xb8\\xde\\xe8\\x9c\\x9d\\x2d\\x45\\xac\\xdb\\xec\\x4a\\xa6\\xce\\xcd\\xbd\\xb1\\xd2\\x84\\x60\\x9e\\x65\\xef\\xb7\\x7b\\xb8\\xf1\\xa5\\x1f\\xc4\\xd4\\x56\\x8a\\x70\\x5f\\xb9\\xc9\\x7b\\x23\\x03\\xc1\\x46\\x7d\\xff\\x8c\\x8c\\x5e\\xe2\\x75\\x59\\xb9\\x3a\\xd1\\xc5\\xb9\\xc5\\xc6\\xc7\\xc5\\x29\\xfa\\x8c\\x55\\xc7\\x5e\\xbb\\x59\\xb2\\xa8\\x18\\xaa\\x9b\\xda\\x1e\\x9e\\x79\\xbc\\x66\\x02\\x97\\x72\\xf8\\xae\\xa1\\x1b\\xad\\xd3\\x22\\x65\\x65\\xd5\\x4f\\xd0\\x1b\\xda\\x8c\\xb2\\x70\\xe7\\x0d\\xc9\\x33\\x9b\\x46\\x90\\x0b\\x58\\x18\\xe9\\x32\\x07\\x5b\\xe6\\xc2\\x8e\\x73\\xa1\\x91\\xd0\\x2c\\xbd\\xc7\\x45\\x4b\\xe1\\x23\\x87\\xb0\\xd4\\x7a\\x1a\\xb1\\x42\\x32\\xd2\\x34\\x2a\\x6f\\x15\\x18\\xea\\x97\\x09\\x8b\\x81\\x5a\\x1c\\xa3\\xf9\\xc7\\x0b\\x25\\x72\\x2b\\x1b\\xcd\\x7d\\xac\\xda\\x63\\x56\\x22\\xfc\\x8e\\x72\\x95\\x9f\\x57\\xf7\\x67\\xea\\x56\\x3d\\xa4\\xc1\\x58\\xee\\xf7\\x20\\x01\\x09\\xf6\\x14\\x16\\xc2\\xe7\\x04\\x39\\x92\\x30\\x62\\x43\\x7b\\x1d\\x08\\x2a\\x8c\\x7f\\x43\\x94\\x71\\x3c\\x1b\\x7b\\xa0\\x58\\x7b\\x84\\x1c\\x11\\x44\\x75\\xee\\x3f\\xf0\\x59\\xdf\\x8c\\xfa\\x12\\xa3\\x21\\xd9\\x01\\xcb\\x47\\xf5\"},\n{{0xa3,0xd2,0x35,0x05,0xd0,0x7c,0x5f,0x93,0x7f,0x13,0x63,0x9d,0xbd,0x81,0x8e,0x85,0x14,0x52,0x34,0xee,0x70,0x17,0xec,0xee,0x86,0x36,0xc7,0xba,0x76,0xeb,0xef,0x5b,},{0xfd,0x7f,0xdb,0x3d,0x02,0x2b,0xa3,0x6e,0xad,0xfe,0xd0,0xda,0xaa,0xe5,0xbf,0xf0,0x45,0x05,0x40,0x3f,0x17,0x14,0x73,0xe4,0xd3,0x61,0xee,0x8d,0x15,0x0a,0x0e,0xb4,},{0x67,0xa6,0x67,0xee,0x0d,0x62,0x54,0xca,0x0a,0x8f,0x21,0x25,0x82,0xc0,0xcb,0x8b,0x6e,0xd9,0x7c,0xc9,0x67,0xdb,0x02,0x12,0x96,0xad,0x6a,0xa9,0x9f,0x0a,0xd3,0xa9,0x44,0x97,0x8c,0xfd,0xaf,0xf1,0x3f,0xe5,0xf8,0xc6,0xe8,0x8c,0xbd,0x83,0x1a,0x54,0x73,0xd0,0x74,0x2e,0x37,0x34,0xb3,0xe2,0xdf,0x00,0xff,0x32,0x40,0xa5,0xde,0x02,},\"\\xbc\\x29\\x8e\\xd6\\x98\\x92\\x90\\x40\\x28\\x72\\x5e\\x21\\xb1\\x14\\x46\\x2d\\x89\\xd8\\xc0\\x06\\xdc\\x88\\x4b\\x17\\x87\\x56\\x83\\x8a\\xf4\\x95\\x4f\\xf0\\xf1\\xb7\\x95\\x17\\x30\\x7a\\x25\\x8a\\x0e\\x76\\x81\\xe8\\x79\\xac\\x47\\xd7\\x92\\x02\\x30\\xb0\\xcc\\x1d\\x66\\x17\\x1e\\xb2\\x14\\xd7\\x7c\\xd9\\x7f\\x61\\x7c\\x40\\x5e\\x6c\\x21\\x72\\xfc\\x58\\x9f\\x16\\x25\\xcc\\x5e\\x1b\\x59\\x31\\x10\\x53\\x1f\\x6e\\xb5\\x3f\\x1e\\x6f\\x48\\x6d\\x19\\x64\\x61\\x24\\x47\\x75\\x0a\\x04\\x1f\\xe5\\x1b\\x33\\x2e\\xb3\\xfb\\xc7\\x11\\x61\\x6c\\xe3\\x5f\\x04\\x04\\x42\\xb4\\x31\\x63\\xb8\\x0b\\x75\\x1e\\x21\\xec\\x12\\x45\\xf1\\x2e\\x48\\x83\\xc7\\x9d\\x3b\\x41\\x32\\x82\\xc6\\x9b\\xfc\\x6a\\x46\\x5d\\x1e\\x78\\x96\\xba\\xb0\\x38\\xdc\\x89\\xb4\\xcf\\xc0\\x32\\xfc\\xcd\\xfc\\x87\\xb0\\x7f\\x06\\x11\\x0e\\x1f\\x50\\x6a\\xcc\\xa8\\x15\\x7a\\x32\\x25\\x43\\xbf\\x1e\\xd8\\x90\\x67\\x27\\xf2\\x8d\\x0d\\x68\\x9b\\xcd\\x7d\\xd3\\xdf\\x85\\x93\\x52\\x04\\xa9\\x04\\xab\\x3f\\x7a\\x0d\\x99\\xc1\\x6e\\x5a\\x54\\x2c\\xc2\\xbc\\xde\\xbf\\x5b\\x50\\x2d\\xba\\xbe\\x33\\xb9\\x72\\x48\\x0e\\x02\\xe7\\x1a\\x43\\x8a\\x19\\x80\\xa8\\x76\\x6f\\x10\\x8b\\xd8\\xad\\x51\\x10\\x42\\x23\\x99\\x4d\\x9b\\xfb\\x3c\\x3a\\x4b\\x7a\\x59\\x23\\x8c\\xe2\\xef\\x7d\\x72\\x88\\x38\\x3f\\xfb\\xf2\\x91\\xe1\\x60\\x2b\\x38\\x4a\\xf6\\x07\\x00\\xd7\\xda\\xf0\\xe8\\xfe\\x60\\xf8\\xca\\xed\\xe4\\x3d\\xb0\\x6b\\x3f\\x4c\\x8c\\xff\\xf7\\x49\\xae\\xaf\\xa4\\x6f\\xc6\\x1c\\x49\\xb2\\xd5\\xa4\\x12\\x04\\xcf\\x86\\xf0\\x49\\x25\\x4d\\x80\\x9e\\x94\\x98\\xaa\\x9d\\x4c\\xfd\\xb9\\x4a\\xcb\\x2b\\xab\\xfc\\xf7\\x86\\xdd\\xfb\\x03\\x69\\x15\\x16\\xb3\\x83\\x8b\\x0d\\x4f\\x20\\x1c\\xb2\\x59\\x1e\\xdb\\xb0\\xb0\\xf6\\x74\\xe1\\xe2\\x82\\x03\\x16\\xb7\\x2e\\x81\\xb4\\x8c\\xc5\\xa6\\xb2\\x93\\x38\\xbc\\x36\\x68\\x1f\\x8f\\x7d\\xca\\x43\\xee\\x6c\\x0b\\xd2\\xe4\\x02\\xaf\\xbf\\x96\\x77\\x97\\x51\\x64\\x53\\xbc\\x01\\xbe\\x86\\xbf\\x42\\x29\\x9d\\x1b\\x73\\x6a\\x0d\\x97\\xbb\\xc9\\x22\\xf5\\xa7\\x8a\\xf2\\xdf\\x42\\xe6\\xf8\\xc2\\x8e\\x95\\x3f\\x2c\\xea\\xda\\xff\\xc5\\xe9\\x30\\x64\\x04\\x1e\\x42\\x5a\\xd6\\x97\\x5f\\x88\\xc7\\xaa\\xdf\\x81\\xc3\\x68\\x69\\x1a\\x58\\x1e\\x88\\x5f\\x2a\\x6b\\xa7\\x2e\\xd6\\x8b\\x8f\\xef\\xbc\\xd6\\xce\\x36\\x86\\x26\\xd4\\x48\\x92\\xa2\\x02\\x70\\xb5\\xf7\\x09\\xc2\\xe3\\x4b\\x83\\x35\\xd4\\x2e\\xeb\\xd6\\x7a\\x24\\xdf\\x73\\xf4\\x54\\x55\\xc4\\x19\\x44\\x18\\x7b\\x66\\x92\\xf0\\x54\\xb2\\xfc\\x95\\x91\\x37\\x3f\\x19\\xfc\\x71\\xaa\\x7f\\xa2\\x7d\\xf6\\x00\\x6a\\x1d\\x54\\x9b\\xbf\\xae\\x7d\\x3c\\x3e\\xb3\\x6e\\x5a\\xb2\\xaa\\xa1\\x0a\\xa5\\x53\\x8d\\xa7\\xef\\x36\\xc8\\xff\\x35\\x4b\\x60\\x58\\x13\\x40\\x04\\xd6\\x60\\xa4\\x03\\x63\\x21\\xca\\xad\\x00\\xa3\\x0b\\x1c\\x49\\x8b\\xa3\\xd8\\x08\\xc4\\x40\\x5e\\xf7\\x96\\x18\\xfc\\x22\\x12\\xa7\\xb8\\x33\\x96\\xa3\\xd7\\xce\\xdc\\xeb\\x86\\x3c\\x66\\x37\\x4d\\xc4\\x69\\xae\\x18\\x3c\\x7e\\xd7\\x4b\\x3e\\x70\\xd6\\x37\\x4a\\x06\\x2d\\xe0\\x37\\x9b\\x21\\xcf\\x25\\xd3\\xc4\\xc5\\x76\\x21\\x15\\xcd\\xfe\\x75\\x55\\x45\\xe8\\x9a\\xd4\\x05\\x2b\\xb0\\x27\\x9d\\x93\\x8e\\x90\\xde\\x3a\\xbf\\x50\\x44\\x10\\xca\\xad\\x72\\xb7\\xc2\\x9f\\x53\\xd0\\x1d\\x9d\\xd7\\xf2\\xec\\x5e\\x45\\x9a\\x04\\x59\\x2b\\xdd\\x66\\x41\\x66\\x13\\xe6\\xed\\xd0\\x04\\x56\\x9e\\x0e\\x6c\\x98\\x82\\x7b\\x8c\\x1d\\x70\\x02\\xa6\\xd1\\xbf\\x30\\x3e\\x18\\x25\\x95\\x01\\xdd\\x89\\xf6\\xee\\x94\\x76\\x6d\\x18\\xaf\\x81\\x04\\x63\\xeb\\x13\\xb2\\xef\\xdd\\xf1\\x72\\x3a\\xf7\\x35\\xa8\\x87\\x16\\xe1\\xfc\\xb4\\xb7\\xb4\\x3c\\xb9\\x7e\\x1c\\xc9\\x03\\xb2\\x40\\x8e\\xf4\\x53\\xad\\xa4\\x16\\x47\\x86\\xf0\\x08\\x45\\xfb\\xfa\\x1f\\xfc\\xa5\\xcc\\x3e\\x1c\\x4b\\xd9\\x94\\x0e\\x7d\\x99\\xae\\xf9\\x19\\x16\\x6d\\x05\\x8b\\x51\\x45\\x3c\\x9c\\x14\\xfb\\x9f\\x32\\x51\\xec\\x5f\\xe4\\xf1\\x53\\xc7\\x0a\\x44\\x92\\xdc\\x34\\x96\\x29\\x61\\x86\\xf2\\x3a\\xd4\\x7e\\xba\\xd1\\x3c\\x66\\xe6\\x87\\x27\\xce\\x50\\xba\\x94\\x87\\xf1\\x80\\x18\\x90\\xb6\\x93\\xef\\xeb\\xfc\\x37\\xbb\\x5d\\x95\\xf8\\xaf\\x54\\x8e\\xc8\\xd6\\x49\\x82\\x89\\xe5\\x5f\\x98\\x83\\xfc\\x5b\\xe8\\x4c\\x25\\x6d\\x2b\\xc5\\x48\\x49\\x38\\xc7\\x09\\x82\\x0d\\x9b\\x6b\\x80\\x59\\xc0\\xaa\\x42\\x67\\xdd\\xe6\\x90\\x78\\xe4\\x87\\xc8\\x86\\x5c\\x0b\\x13\\x0a\\x0c\\xa8\\xca\"},\n{{0x6e,0x26,0x51,0x05,0xee,0x71,0x71,0xd1,0xbd,0x79,0x3e,0xff,0xd8,0x7d,0x1e,0x2c,0x79,0x45,0x0d,0x5e,0x18,0x8b,0x57,0xbe,0x3a,0xa1,0x62,0xe2,0xa5,0x25,0x28,0xad,},{0x1f,0x40,0x3c,0x7a,0x75,0x50,0x31,0xc1,0x3c,0xa6,0x3a,0xf5,0x76,0x35,0xdc,0x6e,0x2c,0x4f,0x23,0xbd,0x6b,0x1d,0x67,0xca,0x65,0xda,0x68,0xb0,0x99,0x43,0xc5,0x54,},{0xb5,0xa8,0x3a,0x11,0x7a,0x60,0x34,0x5a,0x67,0xe4,0xa6,0x65,0xf3,0x7d,0xe7,0x22,0xa6,0xec,0x03,0x91,0x38,0x29,0x38,0x99,0x59,0xf3,0x76,0xee,0x62,0x64,0x77,0xe6,0x54,0xac,0x8d,0x72,0x0f,0xc7,0x27,0xd4,0xbb,0x8f,0xe1,0x54,0x4f,0x5d,0x0b,0x0b,0x85,0x05,0x14,0x29,0x0b,0x24,0x27,0x3c,0x4c,0xd4,0xb7,0x3a,0xca,0x4a,0x53,0x00,},\"\\xf8\\xb9\\xd4\\xb0\\x27\\xeb\\xb1\\x0e\\xe5\\x11\\x81\\x9e\\x6e\\x56\\xfb\\x1b\\xa9\\x58\\x40\\x18\\x41\\x8d\\x82\\x88\\x5a\\x38\\xa4\\x49\\x08\\x60\\x07\\xb8\\x78\\x5b\\x51\\x05\\xca\\xf7\\x82\\xbf\\x9b\\x36\\xda\\x03\\x9c\\xc6\\x0e\\x22\\x7c\\x7e\\x16\\x14\\xf2\\x9b\\x64\\x0b\\x1e\\x9b\\x22\\x74\\x7e\\xea\\x7a\\x67\\x25\\x61\\x4e\\x89\\xe0\\x78\\x3e\\xbe\\xbb\\xb7\\xee\\x55\\x7e\\xf3\\x6b\\x2b\\x46\\xcf\\x64\\x61\\xe5\\xbe\\x2a\\xd1\\xd7\\xa7\\xc2\\x71\\x1a\\x47\\x5c\\xa4\\xfb\\xc3\\x30\\x92\\xba\\x42\\x56\\x67\\xe3\\x4d\\x09\\x00\\x60\\x51\\x8f\\x2f\\xec\\x63\\x6b\\x04\\x91\\x23\\x87\\x6a\\xb2\\x1c\\x8b\\xd9\\xc5\\x0d\\xcc\\xb9\\x84\\xca\\x01\\x1a\\x02\\xee\\xa0\\x20\\x56\\x4f\\xa8\\x21\\xfc\\x36\\x2b\\xfe\\x39\\x2a\\xab\\x50\\xc2\\x73\\xfc\\x7b\\x5a\\x04\\x21\\x88\\xe3\\x31\\x62\\x1b\\x9d\\x2f\\x74\\x3e\\x5c\\x8c\\xf3\\xab\\x1f\\xaf\\xfa\\xfe\\x2a\\x00\\x04\\xc8\\xef\\x7c\\xdf\\x5e\\x6d\\xbb\\x5e\\xb5\\x44\\xe4\\x28\\x9f\\x71\\xa6\\xfd\\x15\\xc6\\x38\\xce\\x29\\xd2\\x8e\\xfb\\x9c\\x03\\x9e\\x47\\x74\\x29\\xa3\\x49\\x7a\\x83\\x82\\x7e\\x76\\xce\\x77\\xa4\\x98\\x16\\xd9\\x0b\\x41\\xa8\\xe1\\x52\\xf3\\x7a\\x09\\xe6\\x34\\x0d\\xfe\\x06\\x9a\\x4a\\xc6\\xf2\\x7d\\xd2\\xea\\xc7\\x47\\xfd\\x21\\xe3\\x15\\x20\\x88\\xc1\\xb1\\xec\\xd3\\x2a\\xc6\\x79\\x92\\x74\\x90\\x75\\x04\\x88\\xc2\\x91\\x78\\x51\\x47\\xb6\\x3b\\x0b\\x8f\\xf1\\x1d\\x18\\x9b\\x90\\x49\\xb8\\xa3\\x96\\xb6\\x93\\x2f\\x85\\xbd\\x6a\\x15\\xef\\xf9\\xf0\\xce\\x18\\x08\\x41\\x1a\\xf0\\xf9\\xc8\\xe6\\xe9\\x7b\\x81\\x4f\\x11\\x0b\\xd4\\xdf\\x13\\x86\\xa9\\x79\\x7d\\xc5\\x11\\xf0\\xaa\\xb6\\xab\\x65\\x07\\x1d\\x9e\\xa8\\x36\\x53\\x2c\\xec\\x51\\xb9\\x2c\\xa7\\xfb\\xdb\\x8d\\xe1\\xc8\\x43\\x66\\x58\\xde\\x2e\\xb6\\x5e\\xdd\\x86\\x04\\x4f\\x6c\\x1a\\xba\\x31\\x78\\x64\\x7a\\xd6\\x78\\x61\\x2e\\xe7\\x4f\\x04\\x6c\\xa3\\xc7\\xfe\\x2f\\x39\\xc0\\x9d\\xd2\\xe0\\x7d\\xf2\\xb4\\x22\\x70\\x85\\xfe\\x93\\x6e\\x79\\x4d\\x22\\xfd\\x5f\\x40\\xa2\\x5f\\x08\\x77\\x15\\x80\\xac\\x80\\x1d\\x98\\x89\\xf5\\xa7\\x6a\\xea\\xe1\\xf0\\xcc\\x4a\\x9e\\x1e\\xdb\\xdd\\xa3\\x75\\x0c\\x74\\xc8\\x50\\x52\\x4b\\x32\\xf4\\x49\\x33\\xfd\\x88\\x3b\\x53\\x72\\xbf\\xb7\\xe7\\x61\\xe0\\x69\\xfe\\x7c\\x1c\\x0e\\x7f\\xbd\\x4a\\x7f\\x58\\x46\\x7e\\xa6\\x88\\x3f\\x9d\\x5b\\x7f\\x66\\xd3\\x86\\xb0\\x49\\x9b\\xb6\\xfb\\x5e\\xad\\x89\\xc9\\xa1\\xfd\\x2c\\xce\\xb9\\x73\\xe2\\x87\\x9b\\x5d\\x03\\xea\\xa4\\x52\\xe1\\x60\\x22\\xd5\\x96\\x17\\xda\\xa0\\x48\\x6f\\x4d\\x4c\\x11\\x78\\x07\\xfd\\xa8\\x49\\x9d\\xfb\\x7a\\x28\\x6f\\xd2\\xf7\\x1a\\x8e\\xb5\\xfe\\x64\\x06\\x5c\\x41\\xe4\\xe1\\xe2\\x36\\x2a\\xb4\\xe4\\x77\\x96\\x9e\\x3a\\x40\\x8a\\x24\\x7e\\x3a\\x56\\xfc\\x86\\xf2\\xb0\\x1e\\xf8\\xd3\\xcd\\xda\\x87\\x25\\x82\\x34\\xbc\\x7f\\x25\\xb6\\x69\\x07\\xf3\\x64\\xb3\\x7b\\x62\\x45\\x29\\x6c\\x4f\\xdf\\x49\\x9f\\x20\\x23\\x7f\\x48\\x64\\x85\\x2f\\xc5\\xd8\\xcd\\x5d\\x05\\x41\\x8b\\xe8\\xb1\\x38\\x59\\xee\\x9a\\x43\\xe1\\x7e\\x1f\\x57\\xa4\\xc3\\x5e\\xa2\\x82\\xed\\x68\\xeb\\xcd\\xa6\\x82\\x81\\x74\\x24\\x5a\\x49\\xc6\\xcb\\x65\\x90\\xeb\\x1f\\x2d\\xcf\\xb0\\x07\\xbf\\xa1\\xc3\\x20\\x77\\x95\\x6d\\xa9\\xac\\xbe\\x3e\\xf0\\x72\\x37\\x99\\xfd\\xb8\\x69\\xd8\\xde\\x30\\x70\\x6a\\x9c\\x02\\x68\\x14\\xd1\\x6a\\x01\\xe0\\x33\\xc9\\x1b\\x59\\x07\\x0d\\xfe\\x44\\x5c\\x5b\\x84\\x8a\\x51\\x66\\x12\\xe5\\x13\\x1f\\xe8\\x48\\x69\\x21\\xe3\\x6b\\x8e\\x7e\\xf1\\x57\\xa8\\x88\\x22\\x88\\x6c\\x68\\x1b\\x5d\\xa7\\x1f\\xea\\x94\\xd9\\x57\\xda\\xfe\\xc2\\x6f\\x41\\x47\\xa3\\xb2\\xac\\x38\\x3a\\x5f\\x47\\xc8\\x58\\x5e\\xb1\\x7a\\x8a\\xc6\\x57\\x90\\x64\\x1b\\x42\\x18\\xd7\\x55\\xf8\\xbe\\xa4\\xd9\\x7a\\xe2\\xa4\\x5b\\xdc\\xdc\\x23\\x23\\x62\\x94\\xd8\\x52\\xc9\\x5d\\x08\\x40\\x6d\\x2e\\x9b\\xd3\\x0c\\x32\\x64\\x52\\x53\\x8c\\x1f\\x5e\\x50\\x04\\xd4\\xa1\\xa8\\x27\\x20\\xda\\x32\\xe5\\x9d\\xc3\\xab\\x18\\xea\\x08\\xa0\\x58\\xf7\\x91\\xd2\\x44\\x18\\x55\\x60\\x86\\xc1\\xe4\\xed\\xce\\x89\\x82\\xaa\\x23\\xb1\\x18\\xfb\\x26\\x6e\\x60\\xb5\\x42\\x78\\x0a\\x69\\x33\\xad\\xd9\\x13\\x26\\x55\\x12\\xc0\\x7b\\x11\\x49\\x78\\xd4\\x4a\\xf7\\x3b\\x20\\x30\\xec\\x47\\xb0\\x6f\\xd0\\x9d\\xda\\x8c\\x4f\\x1d\\x4e\\x31\\x37\\x75\\x46\\x8c\\x45\\x1f\\x9e\\xe6\\x11\\xe9\\xcd\\x4c\\x08\\x45\\xc2\\x50\\x19\\x48\\xa7\\xb1\\x4e\\xf1\\xd4\\xb5\\xcf\"},\n{{0xc4,0x37,0x0d,0x2a,0xaf,0x35,0xac,0xd1,0x58,0xfc,0x0d,0x16,0x22,0xa3,0x99,0xc9,0x9f,0x41,0xb9,0xda,0x4e,0x97,0x0b,0x35,0x4e,0x5b,0xa0,0x5c,0xbe,0x84,0x4c,0xa8,},{0x35,0x45,0xd7,0xd4,0xc9,0x5c,0x3d,0xb6,0xa5,0x45,0x30,0x53,0x7a,0xfa,0xfa,0x4d,0x86,0xdd,0xec,0xf9,0xcc,0x7e,0x66,0xc3,0x19,0xba,0x9f,0x7d,0xd7,0xd0,0x7e,0xe7,},{0x9f,0xeb,0xab,0x5a,0xe1,0x61,0xd6,0x92,0xa6,0xa3,0x94,0x50,0x0a,0x28,0x90,0xd2,0x1c,0x7f,0x0e,0xe2,0x6f,0x46,0x40,0xaa,0xba,0x4f,0xe6,0x6b,0x90,0xb8,0x9e,0xdc,0xb8,0x0e,0xa4,0xcd,0xca,0xbb,0x4d,0x2c,0x3a,0x5c,0x41,0x54,0xe8,0xff,0x20,0xd0,0xe2,0x37,0xfe,0xfd,0x00,0xc7,0xba,0x97,0x82,0xe1,0x74,0x8f,0x64,0x88,0xac,0x01,},\"\\x61\\x9f\\x57\\xde\\x2b\\x1d\\xba\\xee\\x20\\x9a\\x82\\x5d\\x8c\\xa9\\x7f\\x84\\xee\\x49\\xeb\\x12\\xa0\\xb1\\x3d\\xcd\\xd2\\xb3\\xa4\\xee\\x45\\xe0\\x17\\x6d\\x47\\x4c\\xf0\\x94\\x60\\xc8\\x31\\xa8\\xae\\x1d\\x3f\\x39\\xbe\\xeb\\xd0\\x88\\x08\\xb3\\xed\\x17\\x61\\x21\\x3b\\xa9\\x53\\x42\\x18\\x60\\xcc\\x07\\xe2\\xdb\\x31\\x2e\\x68\\x0d\\xf0\\x3e\\x60\\xa6\\x87\\x02\\x64\\xab\\xca\\x8f\\xd5\\x13\\x01\\xe1\\xc1\\x56\\x20\\x23\\xd8\\x02\\xcc\\xd5\\xc7\\xd1\\x96\\xdb\\x39\\xfb\\xb8\\x30\\x4b\\x0e\\x59\\xe3\\x33\\x16\\x41\\x92\\xec\\xc3\\x33\\x38\\x7e\\xef\\x69\\xc7\\xa7\\x8a\\x5d\\x11\\x25\\x88\\x62\\xd6\\xc2\\x81\\xb1\\x9c\\x0b\\xd3\\x36\\xcd\\x3e\\xdb\\x2f\\x9f\\xaa\\xd4\\x02\\x1a\\xc2\\xf2\\x05\\xc1\\x68\\x14\\xb3\\x85\\x48\\x43\\x3f\\xf9\\xed\\xdf\\xd6\\x11\\x33\\x77\\x97\\x69\\xdc\\x69\\xaf\\xac\\x65\\x8a\\xfc\\x1d\\x1b\\x41\\x6d\\x39\\x0a\\xd5\\xb4\\x5a\\x1a\\xd5\\xcc\\x4b\\x00\\xb4\\xb2\\x78\\xfb\\xe4\\xb5\\x9d\\x52\\xe6\\x1a\\x6a\\x5f\\xd0\\x02\\x41\\xc6\\xcb\\xc3\\x82\\xd2\\xd6\\x21\\xa3\\xde\\xd0\\x02\\x01\\x9b\\x33\\x05\\x60\\xe3\\x61\\xfa\\xab\\x28\\xf4\\x1d\\x1a\\xf9\\xc9\\xc0\\x02\\x0f\\x2b\\xaf\\x99\\xe8\\xd8\\xee\\x58\\xe3\\x12\\x22\\x02\\x14\\x7c\\x0a\\xdc\\x57\\xd6\\x70\\xc5\\xb3\\x80\\xaf\\x59\\x4c\\xc7\\xed\\x57\\xb8\\x7e\\xc6\\x67\\x4a\\xb6\\x3f\\x3a\\x98\\x49\\x75\\x3b\\x94\\x62\\xaa\\xb5\\xde\\x88\\xc9\\x48\\xa8\\xb1\\x09\\xaf\\x4d\\x49\\x54\\x92\\x7a\\xac\\x58\\xbe\\xe9\\x53\\xbe\\x0d\\x8d\\x7d\\x71\\xaa\\x11\\xd1\\x1f\\x1a\\x87\\xb1\\x47\\x7b\\x91\\x70\\xbd\\x73\\x5c\\xfc\\x24\\x49\\xf0\\x51\\xb8\\x2b\\xc5\\x9b\\x0b\\xee\\x76\\xa1\\x72\\xe8\\xd3\\x26\\x70\\xf5\\x1d\\xdd\\xdb\\x80\\x4a\\xd1\\x10\\xa5\\x65\\xe3\\x84\\xcd\\xb7\\x6f\\xad\\x04\\xcf\\xf6\\x78\\x93\\x09\\x1e\\x41\\xe6\\x9c\\xfd\\xf7\\x0e\\xa9\\x26\\xc2\\x63\\x69\\xa5\\xb6\\x19\\x3b\\x19\\xab\\x0a\\x62\\x55\\x8d\\xa5\\x5f\\xfa\\xfe\\xb8\\x78\\x97\\x57\\x71\\x06\\x44\\xaa\\x19\\xf4\\x74\\xbe\\x4a\\xda\\x9d\\xc1\\x84\\x9b\\x07\\xd5\\xe1\\x7b\\x85\\xf9\\x21\\xe1\\x01\\x6a\\x54\\xaa\\x60\\x95\\x77\\x72\\x53\\xa7\\x34\\x26\\xfc\\x78\\x64\\xb9\\x95\\x5f\\x04\\x90\\x70\\x23\\xdb\\x20\\x7f\\x85\\xdd\\x21\\xa6\\x51\\x06\\xcf\\x0d\\x62\\x23\\x85\\x87\\x0c\\x34\\xc2\\xda\\x9a\\x11\\xe4\\x72\\x63\\x95\\x12\\x1e\\x4a\\x67\\x61\\xfb\\x52\\x22\\x29\\xd9\\xe5\\xcc\\x9d\\xab\\x35\\xae\\xb8\\x7d\\x0d\\x79\\x69\\x3c\\x00\\x6f\\xde\\x1c\\xfa\\xf1\\x16\\x20\\x8b\\xba\\x96\\x20\\x59\\xcf\\xc0\\xd2\\xd6\\x37\\x0a\\xac\\x77\\x48\\x36\\x2e\\xe6\\xa0\\xa3\\xca\\x7b\\xf1\\x33\\xeb\\xcf\\xa2\\x0f\\x1c\\x4e\\xd8\\x30\\x7f\\x80\\x0c\\xca\\x7e\\x6c\\x4b\\xea\\xa3\\xfb\\x2a\\xb0\\x86\\x12\\x53\\x64\\x28\\x5c\\x44\\xed\\x1a\\x73\\x7a\\x67\\xcb\\xf3\\xb7\\x63\\xc9\\xf8\\xb1\\x42\\x7e\\x89\\xdf\\xa9\\x6d\\x29\\x0e\\x9d\\x48\\x42\\xfe\\x63\\x16\\xaf\\xef\\x83\\x4c\\xd8\\xcd\\x1f\\xdc\\x1f\\x12\\x4c\\xa3\\xfe\\x26\\x26\\x6d\\xa6\\x2e\\x27\\x5c\\x0b\\xf7\\xfc\\xc8\\xe5\\xf9\\xbb\\xa6\\xc0\\xd3\\x8e\\x23\\xfa\\xfa\\xb1\\xe0\\x49\\x48\\x17\\x94\\xc1\\x4f\\x4a\\x8c\\x53\\xbe\\x1c\\x96\\xf7\\x69\\xc9\\xb1\\x3e\\xac\\xa3\\x9a\\x0e\\x49\\x36\\x6d\\x2c\\x9f\\xfe\\x8f\\x20\\x63\\x60\\xa9\\xd5\\x03\\xde\\xc5\\x98\\x62\\x11\\x12\\xe3\\x77\\x67\\x13\\xe7\\xfc\\x06\\x49\\x43\\x3e\\x25\\x7e\\x50\\x3a\\x54\\x60\\x59\\xa9\\x89\\xda\\x89\\x15\\x7d\\x76\\x47\\x60\\x05\\xfd\\x90\\xe4\\xb0\\x7a\\xaf\\x0d\\xb0\\xbc\\x0b\\xc0\\xb6\\x7d\\xb8\\xdc\\xba\\xdf\\xf3\\x93\\x74\\xe1\\xaf\\xae\\x55\\x16\\x34\\xe0\\xe3\\x28\\x31\\xad\\x0e\\x5f\\xa7\\xd5\\x21\\x6f\\xa7\\xc6\\x44\\xf7\\x3e\\x1e\\x8e\\x07\\x23\\x83\\x94\\xa4\\x16\\xc1\\x69\\xaa\\x9d\\x53\\x03\\xf4\\x69\\xa5\\xd4\\x07\\x43\\x08\\x72\\x1f\\xfd\\xde\\xff\\x65\\x59\\xe5\\xad\\xf0\\xc2\\x77\\x3b\\x3f\\x52\\x64\\xe7\\xaa\\xa8\\xc2\\xdb\\x88\\x8e\\x28\\xe8\\x15\\xc7\\x10\\x69\\xc3\\xb4\\xce\\x6c\\x29\\x03\\x4c\\x0a\\xb3\\xb5\\xc1\\x9a\\x80\\xa9\\xd8\\xc2\\xe8\\x74\\x81\\x35\\x31\\xc4\\x22\\x75\\x2a\\xd6\\x2b\\x3c\\x5a\\x1a\\x3d\\x6c\\x5a\\x5d\\xb5\\x87\\x27\\x06\\x93\\xaa\\x75\\xd5\\xf1\\x72\\xee\\xdd\\xf4\\xeb\\x83\\x9b\\xd7\\x93\\xaf\\xfb\\x1c\\x79\\x6a\\x1d\\xf0\\xe4\\x42\\xdd\\xf9\\x9b\\x78\\x0a\\xa4\\x1e\\xea\\x0f\\xe6\\xf8\\x65\\xbb\\x53\\x9c\\xa5\\x3a\\xa4\\x5d\\xb9\\xa8\\x56\\xcb\\x75\\xd0\\x15\\x1d\\x35\\xed\\xea\\x80\\xf2\\x94\\x6d\"},\n{{0xbd,0x3d,0xe1,0xa1,0xd1,0x64,0xbd,0x6e,0x9b,0xe0,0xa6,0xd1,0x07,0xf7,0x03,0xa6,0xdd,0x91,0x4c,0x86,0x67,0xcd,0x34,0x1d,0x13,0x9f,0x19,0x57,0x8d,0x93,0x3b,0x16,},{0x9b,0x02,0x49,0x64,0xbd,0xfa,0x85,0x2e,0xb2,0xd4,0x14,0x4f,0x35,0xb7,0xcd,0xc2,0x67,0x81,0x14,0x3c,0x2b,0xd7,0xf6,0x60,0x23,0x3f,0x8b,0x8a,0xa3,0x60,0x71,0xee,},{0x13,0xcc,0x15,0x8f,0xd0,0x61,0x79,0x2f,0xce,0xd1,0x56,0x87,0x95,0x98,0x25,0x1d,0xd0,0x1d,0x57,0x5b,0x40,0x0f,0xe3,0xe3,0x9a,0x70,0x08,0x63,0xaa,0xe8,0xdb,0x1f,0x91,0x97,0xfa,0x50,0x1c,0x0c,0xf9,0x93,0xe4,0x4d,0x6a,0xc5,0x51,0x80,0xb8,0x69,0x83,0x8e,0x8a,0xe2,0x4b,0x21,0x4f,0xa3,0x5e,0x24,0x4b,0x7a,0x6c,0xff,0x6d,0x0d,},\"\\x17\\x69\\xfc\\xdb\\xf5\\x12\\x47\\xed\\x4c\\x83\\xa0\\x0b\\xbb\\xf0\\x2f\\x44\\x28\\xda\\x6f\\xce\\xdd\\xd0\\x16\\x1a\\x02\\xfc\\xcd\\x15\\x00\\x97\\x06\\x65\\xe1\\xc7\\x63\\x0a\\xd2\\x2e\\x3d\\x97\\x49\\xc7\\x92\\xe7\\x1a\\x26\\x0c\\xff\\xf6\\x05\\x32\\x56\\xe0\\x2f\\x5b\\x47\\xbb\\xa1\\x4b\\x76\\x1a\\xe5\\x3c\\xa7\\x21\\x9e\\xd2\\x80\\x1d\\x2d\\x78\\x8e\\x26\\x41\\x9f\\x36\\xc8\\x1e\\xf9\\x2c\\x23\\x03\\x68\\x37\\x35\\xc8\\xa1\\x75\\x6a\\xda\\xb6\\xa4\\x87\\x92\\x31\\x53\\xe4\\x35\\x60\\x3c\\x96\\xb2\\x39\\x55\\x3e\\xdf\\xde\\xb0\\x93\\x29\\x8f\\x7a\\xe7\\xdc\\x90\\xf1\\x6a\\x7e\\x56\\x64\\xb9\\xe4\\xc0\\x2b\\xa7\\x31\\xa2\\x3c\\xf2\\x23\\x4e\\x25\\x0a\\xc9\\x74\\x26\\x33\\xa9\\x32\\xa9\\x48\\xbb\\x83\\xdc\\x3d\\x79\\x4d\\x05\\x9f\\xed\\xf4\\xec\\x86\\x18\\xc7\\x43\\x3c\\x5d\\x8f\\xe5\\xe6\\x2c\\xf0\\x7b\\x57\\x68\\xc4\\xd9\\xb2\\x61\\xc7\\x15\\x36\\x80\\x4f\\xe2\\xe7\\xca\\x70\\x98\\x87\\x65\\x21\\xd5\\x76\\x77\\x36\\x14\\x24\\xe4\\x7f\\x1b\\x95\\x92\\x37\\xf9\\x07\\x10\\x42\\x1f\\x5b\\xc4\\xf1\\x09\\xf7\\xd4\\x89\\xc7\\x55\\xe9\\x4e\\xef\\xdf\\xb3\\xc8\\x5b\\x90\\xec\\x01\\x31\\x81\\xa2\\x3b\\xb9\\x53\\x5f\\xee\\xa4\\x94\\x1d\\x0a\\x06\\xa5\\x40\\xbd\\x6b\\x58\\x8e\\x55\\xb7\\xf3\\x57\\x57\\x14\\x9c\\xa3\\xe6\\x40\\x96\\x5e\\x1a\\x0f\\xf7\\xf3\\xc8\\x25\\x92\\x59\\x95\\x7f\\xf5\\xda\\xb9\\xfb\\x87\\x32\\xea\\xe7\\x19\\xb6\\x24\\xa4\\x49\\x28\\x78\\x17\\x9b\\x5a\\x83\\xab\\xe5\\x1c\\xaf\\x02\\x08\\x3d\\x73\\x7c\\xeb\\x4f\\xcf\\x04\\x2f\\x2e\\x60\\xba\\x02\\x97\\xac\\x72\\xb8\\x7f\\xe3\\xe1\\x4b\\xa5\\xfb\\xc5\\x4b\\x48\\x09\\x10\\x73\\x89\\x68\\x23\\xbf\\xa2\\x89\\xce\\x8e\\x16\\x87\\x3b\\x48\\x81\\x2c\\x32\\xbf\\xea\\x5f\\xf6\\xbb\\x22\\x1d\\x1e\\xa5\\x46\\x3d\\x32\\x5b\\xbe\\x31\\x1e\\x7f\\xd1\\xe7\\x83\\xde\\x65\\x0b\\x79\\x52\\xea\\xe4\\x61\\xd6\\x3b\\xc7\\x47\\x05\\x22\\xaf\\x5b\\x77\\x89\\xf8\\xfc\\x2e\\xb1\\x92\\xd2\\xcf\\x77\\x6c\\x5c\\x24\\xb4\\x4e\\x29\\xcd\\xb0\\xcc\\xcb\\x1d\\x90\\x36\\x14\\x38\\xe4\\x95\\x0f\\xf3\\x4d\\xbc\\xb3\\xcb\\x0e\\x81\\xcc\\x45\\xf8\\xd0\\xff\\x57\\x09\\x49\\xf7\\x80\\x84\\xe1\\x06\\x0f\\xf5\\x59\\x4a\\xd5\\x16\\xf5\\x0f\\x1c\\xb0\\xa7\\x65\\xe1\\xc0\\xe0\\x38\\xd5\\x94\\x3b\\x93\\x6e\\x4a\\x8b\\x49\\x33\\x54\\xe7\\x9a\\xbc\\x91\\x7b\\xb9\\x27\\x12\\x66\\xee\\xba\\x77\\xa9\\x3a\\x65\\x7f\\x9a\\xd8\\x7b\\x29\\x1a\\xc7\\xea\\x38\\x6f\\x5d\\x4f\\xcb\\xc5\\x82\\xe7\\x2d\\x5c\\x23\\xd9\\x2b\\xa9\\x44\\xb0\\x06\\x4c\\x20\\xe3\\xe2\\xdc\\xf5\\x04\\xbc\\xc7\\xc6\\x96\\x6c\\x63\\xf2\\x08\\x08\\x43\\x60\\x0b\\xa3\\x13\\xec\\x27\\xcb\\xa9\\x5e\\x7e\\xf3\\x18\\x16\\x8c\\x90\\x67\\xdc\\xe8\\x6c\\x1e\\xf0\\xd5\\xd9\\xeb\\x7a\\x61\\x58\\x48\\x9d\\xf3\\x2e\\xd5\\x8b\\x69\\x31\\x03\\x08\\x18\\xf0\\x07\\x05\\xa0\\xdc\\x55\\xd3\\xdb\\xf8\\x00\\x6a\\x85\\x46\\x64\\x1b\\x18\\x65\\xd9\\x19\\xbc\\x24\\x22\\x02\\xcb\\x3a\\xe3\\x00\\xbf\\x86\\x53\\xe3\\xb3\\x78\\x94\\xc3\\xdc\\x0e\\x47\\x7b\\x9d\\x7c\\x41\\xba\\xf8\\xd3\\x88\\x7c\\x2e\\xb5\\x9b\\x1e\\x4d\\x50\\xbb\\xb6\\xf1\\x79\\x2a\\x1c\\x93\\x67\\xc6\\x5c\\xdb\\x45\\x0c\\x2d\\xfa\\x21\\x45\\xe6\\x11\\xa9\\x7a\\xd8\\x1c\\xff\\x1f\\xd8\\x3c\\x6c\\xf7\\x23\\x09\\x47\\xea\\xff\\x4c\\x21\\xdc\\x1b\\xaf\\xb7\\x1e\\xc4\\x1e\\x5b\\xc7\\x2b\\x37\\x45\\xec\\x3e\\x38\\xbf\\x59\\x30\\xc1\\x26\\xd0\\x60\\xf0\\xc5\\x0a\\x89\\x5f\\x00\\x9a\\xa1\\x8e\\x87\\xf2\\x17\\x4f\\x58\\xab\\x53\\x79\\xa7\\x21\\xfd\\x83\\xaa\\xd5\\x51\\x7f\\xd9\\x9d\\xff\\x14\\x6e\\xde\\xea\\x61\\x52\\x12\\x35\\xe2\\xf1\\xa1\\x6e\\xe5\\x83\\x03\\xe0\\x91\\xbe\\x8d\\x57\\x90\\x94\\xc1\\xd8\\xa2\\x0b\\xc7\\x4a\\x55\\x0d\\x77\\xc0\\x0d\\x08\\x75\\x71\\x51\\x7a\\x63\\xcd\\x41\\x26\\x93\\x3a\\x4f\\x09\\xa0\\x70\\xbf\\x8e\\xa4\\xff\\xb8\\x46\\xa9\\x78\\x0e\\x97\\x34\\x04\\x3b\\xac\\x4c\\x0f\\xf4\\x7b\\x1a\\xfc\\xcf\\x52\\x93\\xac\\x14\\xbc\\x73\\xeb\\xf6\\x71\\x29\\x65\\x7e\\x4b\\x8a\\x8b\\x33\\xdd\\xac\\x7b\\x0f\\x4d\\x71\\x9d\\x2d\\xc6\\x5d\\xf6\\xea\\x0a\\x3f\\x24\\xcf\\x44\\xc8\\x33\\x8e\\xd6\\x01\\xa3\\x93\\x9c\\xa3\\x58\\xfc\\x4b\\xe1\\x3e\\x8e\\xde\\x02\\x75\\x39\\x71\\x2c\\xa2\\x3e\\x3f\\xfb\\xa7\\x06\\xe8\\xfd\\xd6\\x2a\\x07\\x4e\\xe0\\xad\\x74\\x20\\xf7\\x80\\x60\\xcc\\x96\\xfb\\x2a\\xbf\\x30\\xe9\\xea\\xa2\\x41\\xc0\\xf8\\x7e\\xbb\\xe3\\xec\\x73\\x51\\x75\\x96\\xf7\\xc3\\xc5\\xa8\\x0c\"},\n{{0xf6,0xae,0x51,0x6a,0x51,0x29,0x6f,0xc5,0x23,0xce,0xa5,0xf0,0x08,0xcf,0xbd,0x09,0xe7,0x3f,0x78,0xb6,0xfd,0xd3,0xb6,0x94,0x26,0x12,0x80,0x41,0xa5,0x60,0x4c,0xf9,},{0x37,0x6c,0x82,0xba,0x7b,0x87,0xaa,0x77,0x41,0x87,0x27,0xdb,0x33,0xd3,0x26,0xae,0x75,0x8b,0xf7,0xa1,0x35,0xc1,0x04,0x60,0xcd,0x8b,0xf8,0xfe,0xb8,0x3c,0x2b,0x10,},{0x0f,0xe4,0xdd,0x7e,0x1f,0x60,0x8e,0xe8,0x2b,0x7f,0xe8,0x63,0xd1,0xb0,0x3a,0x81,0x84,0x3c,0xe2,0x0c,0x76,0x2c,0xd8,0xbb,0x24,0xef,0xd4,0x6b,0xa0,0x25,0xff,0xf3,0x33,0x1d,0x87,0x57,0x52,0xca,0x72,0x20,0xc5,0x3d,0xd3,0xc7,0x1f,0x2b,0xc1,0xe2,0xc6,0x4a,0x2f,0x9c,0x58,0x86,0x5a,0x2a,0x24,0x48,0x09,0xf4,0x13,0x4e,0x53,0x07,},\"\\x83\\x42\\xf2\\x5a\\xc4\\xb1\\x7e\\xba\\xd6\\xf7\\x9b\\x9a\\x03\\x31\\x75\\xc7\\xf2\\x8a\\xf0\\x9e\\x65\\x8e\\x8c\\xb9\\x8c\\x29\\x4f\\x15\\xc3\\xc8\\x34\\x26\\x29\\xcb\\x2a\\x32\\x47\\xdf\\xc8\\x75\\xb8\\x2f\\x5b\\x38\\x0c\\x5d\\x11\\x42\\x6a\\x2e\\xeb\\x62\\x45\\x0b\\xd8\\x85\\x65\\x01\\x07\\xc6\\x83\\x62\\xa3\\xb7\\x2c\\xe8\\x23\\xf2\\xd1\\x59\\x42\\xb7\\xdd\\xa3\\x01\\xd2\\xfb\\x63\\x8f\\x30\\x2a\\xa9\\x57\\x0b\\x47\\x91\\x1d\\xad\\xd3\\xbd\\xdb\\xfe\\xd5\\x54\\xc1\\xc8\\x0b\\xd7\\x18\\x07\\x8b\\x8b\\xd2\\xc9\\xc3\\x14\\xa5\\x16\\x6f\\x26\\x5e\\x82\\x66\\xee\\x2d\\xb3\\x57\\x56\\x1a\\x55\\x85\\xc4\\x14\\xa7\\x84\\x0b\\xfa\\xe6\\x09\\xd7\\xcd\\xdd\\xe1\\xfa\\xde\\x85\\x56\\x0f\\x23\\xd6\\x38\\xef\\x3d\\x52\\xe5\\x1f\\x5c\\xf3\\x13\\xa0\\x72\\xc5\\xea\\x0f\\x81\\x7f\\x72\\x81\\xe2\\xcb\\xa5\\xc5\\xc8\\xd2\\x6c\\x92\\x85\\x92\\xb8\\x1f\\x0f\\xf8\\xcd\\x18\\xdb\\x5a\\x2c\\x41\\xd8\\x80\\xd7\\x44\\x73\\x86\\x3c\\x7b\\xbd\\x00\\x56\\xfa\\x4d\\x4a\\xfa\\xbd\\x17\\xa3\\xb8\\x9d\\x97\\xd3\\xfe\\x5d\\xc0\\x6b\\x0f\\x61\\x2a\\x1d\\x66\\x42\\x39\\x23\\xba\\x8d\\xfb\\xb8\\xec\\x82\\x46\\x62\\x4d\\x83\\x78\\x4e\\xba\\x4f\\x57\\x36\\xba\\x38\\x5e\\x44\\x22\\x96\\xc8\\xcb\\x0f\\x1b\\x68\\xe0\\x33\\x42\\xb2\\xc6\\xc1\\x03\\x34\\x6f\\x6d\\xd7\\x40\\xe2\\x6c\\x3d\\x13\\xca\\xef\\x80\\x1d\\x1b\\x26\\x21\\xd8\\x9f\\x06\\x93\\x91\\xa0\\x78\\xd4\\x3a\\xe6\\xff\\x12\\xee\\xca\\x66\\xbc\\x32\\x63\\x7b\\x45\\xf0\\xac\\x62\\x7c\\x2d\\x7b\\xbf\\x8a\\x49\\xd9\\x46\\x81\\x75\\xe2\\x68\\x85\\xe0\\x28\\x21\\xd3\\xa3\\xba\\xa2\\xc3\\xe3\\xa6\\xbb\\x96\\xb5\\x75\\x26\\xe2\\x24\\xcf\\x3d\\x85\\x9f\\x66\\x95\\x73\\xcb\\xd5\\xc8\\x73\\x93\\x74\\x61\\x56\\xf3\\xd1\\xc7\\xa8\\x03\\x08\\xdc\\x1f\\x24\\x05\\xbf\\x0d\\x40\\xbe\\x1c\\xa7\\x3b\\x76\\x7d\\xed\\xf4\\x03\\x13\\x37\\xc0\\x81\\xbf\\xa3\\xae\\x6e\\x54\\xf6\\x02\\x3f\\x42\\xf0\\xcb\\xd8\\x77\\x62\\xdb\\x55\\x91\\x3c\\x70\\x72\\x06\\x03\\x40\\x10\\xdf\\x2a\\xa8\\x75\\x3d\\x03\\x0f\\x03\\xc2\\x67\\xe7\\x1a\\x9d\\xd2\\xc6\\xc1\\x9d\\xe3\\xe1\\x85\\x1a\\xbf\\xac\\xbb\\xd5\\xdd\\x5b\\xf8\\x96\\xfa\\xb8\\xe4\\x15\\x31\\x7b\\x49\\xf1\\xe4\\x09\\x6e\\x3d\\xa9\\x9a\\x5b\\x5d\\x0a\\x3c\\x42\\xda\\xf9\\xde\\x94\\x84\\x7c\\x1e\\x53\\xc8\\x81\\x8a\\x5b\\x84\\x33\\x23\\xf5\\x01\\xe3\\xa7\\xfa\\x68\\xdf\\x89\\xa5\\xf4\\x1f\\x2c\\x62\\xc3\\x8d\\x17\\xf2\\x50\\xb0\\x2a\\x67\\xfa\\xe4\\x7d\\xaf\\x06\\x3f\\x55\\x89\\x42\\x37\\x7e\\xf8\\xa8\\x90\\x52\\xf1\\xa2\\x15\\xd7\\x68\\xf7\\x91\\x3a\\x7e\\xc1\\x4e\\x98\\xb8\\x1e\\x4b\\x2c\\xcf\\x26\\xba\\xca\\xd6\\xf3\\x96\\x64\\xaf\\xc0\\xe9\\x1a\\x3c\\xad\\x69\\x1d\\xb2\\xbf\\x56\\xa7\\xab\\x66\\x77\\xb4\\x95\\x96\\xdb\\x88\\x7c\\x97\\xde\\xf4\\x35\\x08\\xa7\\xa2\\xec\\x2a\\xb7\\x55\\xec\\x36\\x8e\\x2e\\x53\\xd1\\xe1\\x6b\\x60\\xff\\xf0\\x9c\\x3b\\x52\\x26\\x3f\\x0f\\x7c\\x1e\\xa9\\xcc\\x35\\x37\\x31\\x97\\xe9\\x5c\\x11\\xe6\\xd2\\x2f\\xa9\\xd8\\x29\\x9c\\x42\\x37\\x36\\xf5\\x81\\x4f\\x1e\\x79\\x8d\\x22\\x75\\x18\\x60\\x0d\\xf6\\xa7\\x90\\x35\\x8d\\xea\\xe3\\x8d\\x56\\x39\\xe1\\x98\\x3f\\xe0\\x18\\x43\\x6e\\xa5\\x8b\\xa8\\x46\\x75\\x48\\xc9\\x29\\xef\\xbb\\x16\\xdf\\xea\\x41\\x02\\x25\\x3a\\x35\\x0f\\xb8\\x4d\\x98\\x31\\xc4\\xc2\\xcb\\xcb\\x76\\xe1\\x8d\\x7f\\x3e\\x95\\x36\\x41\\xad\\xa4\\x14\\x21\\x39\\x30\\x91\\xe6\\x3d\\xfe\\x66\\xde\\x24\\xc9\\x92\\x32\\xc7\\xd6\\xa2\\x83\\x7a\\x48\\x98\\x3c\\xf5\\xb1\\x63\\x31\\xce\\x00\\x05\\x0d\\x1c\\x71\\x39\\x58\\xff\\xce\\x5f\\x2e\\x93\\x48\\xc5\\x2f\\x53\\x12\\x05\\x79\\xa7\\xc9\\xa1\\x60\\x08\\xd1\\x34\\x83\\x8e\\x59\\x61\\x29\\xc7\\x02\\xfc\\xd2\\x11\\x48\\xbd\\xf9\\x17\\x4d\\x48\\xe2\\xda\\x0a\\x8a\\x66\\x35\\x9e\\xde\\xe0\\x1c\\x50\\x09\\xef\\x67\\x42\\xfe\\xc4\\x1c\\x1a\\xce\\xcd\\x03\\xef\\xe1\\xcc\\xc9\\xb1\\x30\\xd6\\xe5\\xac\\x92\\x57\\x6a\\x85\\xcc\\xb7\\xcf\\xc7\\xd0\\xe4\\x23\\x31\\x06\\x17\\x29\\x31\\xa0\\x86\\x99\\x79\\x0b\\xc4\\x1a\\xcf\\xbb\\x73\\x1a\\xdb\\xb2\\x6d\\x56\\xb3\\x9a\\xaa\\x5b\\x33\\x3b\\xc1\\xa1\\x0e\\x2c\\x70\\x64\\xca\\x86\\x11\\x9d\\x8c\\x71\\x71\\x48\\xf9\\x24\\x41\\xaf\\x24\\xcd\\x2a\\xa8\\xf5\\x7c\\x86\\xba\\x38\\xa5\\x9a\\x10\\x0b\\x92\\x76\\xdf\\x38\\x27\\xec\\x7f\\xb4\\xd3\\xfa\\xf5\\x8b\\xe3\\x1c\\x6e\\xca\\xfd\\x69\\xcf\\x1c\\x64\\x10\\xa4\\x9c\\xd7\\x08\\x1f\\xf6\\xe9\\xfc\\x39\\x7c\\x2d\\x20\"},\n{{0x83,0xf7,0x89,0x90,0x0f,0x04,0x0d,0xc6,0x2f,0x4d,0x18,0x78,0x4c,0xb6,0x4b,0x63,0xc8,0x8e,0x8d,0x18,0x00,0x16,0x96,0xbb,0xeb,0x47,0x07,0xc4,0x69,0xd1,0x1a,0x5b,},{0xed,0xfc,0x2b,0xab,0x7e,0x79,0xf4,0x00,0x37,0xfe,0x4d,0x90,0x41,0xde,0x48,0xda,0x9a,0xee,0x8f,0x97,0x80,0x98,0xd7,0xb0,0xae,0x17,0x92,0x90,0x25,0xe4,0x27,0x3d,},{0xea,0x65,0x82,0xcc,0x23,0xe0,0x46,0x09,0x17,0xf7,0x82,0xd9,0x64,0xe3,0xbb,0x6d,0xcd,0xe0,0xae,0xea,0xc4,0x2c,0xc1,0x49,0x19,0xd3,0x6c,0xe7,0x8a,0xa0,0xaf,0xd9,0x80,0x72,0xf5,0x4c,0x79,0x5f,0xbf,0xd7,0xa4,0x1d,0x99,0xd7,0x06,0x06,0xc2,0x8a,0x5d,0xcf,0x19,0xbe,0x38,0xa0,0xce,0x2d,0x09,0xbb,0x8f,0x84,0x4c,0x31,0xbf,0x00,},\"\\x6c\\x11\\x2a\\x20\\xd3\\x06\\x57\\xab\\x5f\\x8c\\x5c\\x04\\x47\\x8d\\x6c\\x42\\xd1\\xc6\\xbd\\xef\\x38\\xcd\\x4f\\xe0\\x06\\xac\\x2a\\x57\\xe2\\x90\\xff\\x29\\x28\\x78\\x96\\xee\\xa8\\xc3\\x0a\\x01\\x39\\xc1\\x8f\\xc8\\xc9\\x75\\x64\\x56\\x3e\\x86\\xc8\\xd3\\x40\\x56\\xa6\\x71\\x9b\\xfe\\x47\\x9d\\x9e\\x87\\xe8\\x1b\\x19\\x45\\x23\\x31\\xbf\\xa1\\x54\\x80\\x68\\x82\\xe5\\x03\\x9a\\x20\\xc9\\xe9\\x54\\xb1\\xfc\\x7c\\x01\\x5d\\xcf\\x58\\x15\\xbd\\x7c\\xf7\\xb6\\x35\\x7d\\xf9\\x28\\x0b\\x9b\\xd4\\x3f\\x89\\xff\\xc9\\x19\\x45\\x32\\x3b\\x5a\\xcb\\x2a\\xe0\\x02\\x54\\xd4\\x16\\x28\\x68\\xd1\\xc8\\x3e\\xc6\\xe0\\xfc\\xbe\\x7a\\x8a\\xb9\\x25\\x41\\x92\\x14\\x9c\\x6b\\xc9\\xe5\\xfe\\x35\\x06\\x94\\x16\\x5d\\x66\\x38\\x33\\x1e\\xb2\\x4e\\x3b\\x13\\x90\\xc6\\x98\\xc4\\x83\\x83\\x78\\xc0\\x1b\\x2c\\x61\\xa3\\xeb\\xe2\\xc0\\x60\\xb9\\x8b\\xa6\\xee\\x02\\xb5\\x19\\xb4\\xea\\xc1\\xe0\\xbc\\xc0\\x9b\\x23\\x24\\xcc\\xf5\\xb1\\xa7\\xfe\\x8f\\xd0\\xb1\\x54\\x5a\\x94\\x27\\x83\\x2a\\xbb\\x25\\x74\\x4e\\xeb\\x36\\x32\\x6b\\xe6\\x4e\\xfe\\xd3\\xa7\\xb0\\x7d\\x63\\x0a\\x21\\xc3\\x08\\x1b\\x55\\x26\\x1c\\x35\\x32\\x87\\xc6\\x6c\\x57\\x66\\x3a\\x99\\xdb\\x46\\x6a\\x5d\\xee\\x22\\x74\\x6b\\x81\\xc7\\x50\\xef\\x85\\xbe\\x51\\x14\\x3e\\x22\\x1e\\xcd\\xf1\\x14\\xfe\\xf1\\xb3\\x08\\x2f\\xf5\\x4f\\xd0\\x44\\xbc\\x88\\x4b\\xfb\\x3c\\xc5\\xc5\\x33\\x59\\x97\\x00\\x98\\x67\\xce\\x94\\x91\\xa8\\x0f\\xe6\\x96\\x82\\x5f\\x99\\x42\\x6d\\xef\\xab\\x6a\\x49\\xba\\xdc\\xde\\x40\\x3f\\x58\\xe8\\x31\\x79\\x66\\x21\\x07\\x47\\xb5\\x67\\x75\\x4d\\xe5\\x30\\x76\\xb3\\xec\\xbf\\x65\\x34\\x6c\\xb8\\x39\\x05\\x83\\x2e\\x16\\xd0\\x1b\\x50\\xb9\\x3d\\x37\\xeb\\x9b\\xfe\\x20\\x17\\x2a\\x31\\x63\\x0d\\x25\\xf3\\x21\\x7d\\x87\\xd9\\x34\\x65\\xfd\\x8a\\xc5\\x54\\xcb\\xbb\\x39\\xd9\\x82\\xea\\xd7\\x21\\x93\\x91\\x23\\x4c\\x88\\x9f\\x0b\\x92\\xa2\\xe0\\x41\\x3d\\x86\\x6c\\xac\\x08\\x7d\\x62\\x8c\\xe3\\x1c\\x61\\xc6\\x32\\x3e\\xcb\\x8e\\x68\\x95\\x55\\xaf\\x10\\xde\\x2b\\x65\\x6e\\x6a\\xea\\x2c\\xde\\x93\\x2e\\x24\\x1f\\x6d\\x1f\\x8a\\x9e\\x33\\x16\\xcf\\x13\\xf1\\x35\\xac\\xef\\x83\\xa0\\xc0\\xcf\\x22\\xf9\\x5c\\xa8\\x18\\xe6\\x1f\\x92\\x76\\x87\\x74\\xc6\\x30\\xe0\\x92\\x5b\\xe9\\x9d\\xbd\\x32\\xb4\\x99\\xc0\\xfe\\x7d\\x84\\xa4\\x2e\\x39\\x32\\x87\\xf6\\xf5\\xce\\x3d\\x0b\\x27\\x1f\\x17\\x00\\x45\\xa6\\xd4\\x8e\\xab\\x31\\x6f\\xe1\\x7b\\x18\\x58\\xb1\\xff\\xee\\xe9\\x08\\x88\\xf3\\xa3\\x7a\\x24\\x80\\xdf\\xd0\\x4a\\x4a\\x86\\x29\\xf8\\x68\\xb5\\xc0\\xa8\\x0e\\xe1\\xf0\\x37\\x19\\xf3\\xa4\\x7d\\x40\\x95\\xbe\\xf1\\x0e\\x02\\x34\\xfc\\x30\\x0e\\x2a\\xf4\\x82\\x28\\x5d\\x78\\x93\\x79\\x68\\x31\\x9d\\xa9\\x4b\\xeb\\x6c\\x40\\xe0\\x78\\x57\\x7c\\x02\\x4f\\x3a\\x5c\\xda\\x00\\x84\\xe2\\xf8\\x55\\xa9\\x39\\x6a\\xaa\\x9e\\xe9\\xbf\\xaf\\x2c\\xc7\\x71\\xfe\\x68\\xc4\\x0b\\x62\\x9e\\x8d\\xcf\\x11\\x5e\\xf0\\x3e\\x75\\x7a\\x2a\\xc9\\xee\\xf0\\x73\\xf1\\xbd\\xf9\\xc5\\xa4\\x41\\x00\\x31\\x55\\x8a\\x6d\\x38\\x2b\\x5f\\x16\\x02\\x4b\\x15\\x1b\\x1c\\x01\\xee\\x78\\x17\\x41\\x3a\\x3c\\x4d\\xe9\\xdd\\x64\\x78\\x78\\x5b\\x81\\x10\\x1d\\xf5\\x52\\x24\\x30\\x05\\x87\\x80\\x20\\x7e\\x79\\x0f\\x61\\x2d\\x78\\xe5\\x70\\x5c\\xee\\xd4\\x6b\\x0e\\xc0\\x75\\xe7\\xc1\\xdc\\x07\\x3b\\x17\\xb2\\xb4\\x3d\\x72\\x53\\x59\\x27\\xbf\\xd2\\x71\\xe9\\x2e\\x3c\\x93\\x63\\x8e\\x40\\xa9\\x60\\x1d\\xc2\\xc1\\xab\\x76\\xd9\\x1a\\x41\\x03\\xdf\\x65\\x7d\\x91\\x1c\\x82\\x9e\\xe8\\xa5\\xf7\\x47\\xf7\\x64\\x2f\\x5a\\x91\\x5a\\x5f\\x40\\xf6\\x30\\xb4\\x30\\x39\\xc7\\xd4\\xbd\\x2a\\xd2\\xb3\\x21\\x29\\xd9\\x4e\\x5b\\x2f\\x03\\xad\\x4a\\x3d\\x45\\x57\\x7e\\xb8\\x1f\\x36\\x9c\\x9e\\x3e\\x2a\\x4f\\x6a\\x8e\\x41\\xac\\xf8\\x28\\x3b\\xe5\\x84\\x25\\xea\\x99\\x3b\\x8e\\x98\\xee\\xa6\\x33\\x05\\x56\\x64\\x86\\x18\\xda\\xd9\\x8f\\xa2\\x55\\x62\\x0d\\x83\\x6d\\x3c\\x7f\\x29\\xb9\\x07\\x89\\x58\\x49\\x28\\x61\\x67\\xc7\\x18\\x1e\\x2c\\xaf\\x55\\xc2\\xc1\\x84\\xa9\\xa9\\x11\\xf8\\xe4\\x1c\\xb0\\x42\\xe2\\xcd\\x48\\xb0\\x54\\x4e\\xa7\\x9f\\xe2\\xef\\x38\\x1e\\xbc\\x5b\\x15\\xe3\\x9a\\x9b\\x5c\\x6d\\x99\\x8f\\xae\\xaa\\xa7\\x77\\x3c\\xfe\\xc0\\x84\\xc0\\xbf\\xae\\xd1\\xbc\\xab\\x96\\x3a\\x4e\\xf3\\xd9\\x4d\\xbb\\x3d\\xfe\\x72\\x4c\\x04\\x0c\\xe4\\xd1\\xe2\\xee\\x7f\\xc2\\xda\\x4b\\x25\\x12\\x7c\\xe3\\xa5\\xdf\\x69\\x3f\\xcf\\x5a\\x6e\\xd1\"},\n{{0x43,0xbf,0xf3,0xcd,0xd5,0x30,0x7e,0xd7,0xd2,0x5c,0xf9,0x6f,0xdb,0xba,0x64,0xab,0x18,0x11,0xc8,0xbb,0x93,0x4e,0x21,0x87,0xea,0x7f,0xfc,0x01,0x8d,0x85,0xe0,0xf2,},{0x00,0xf1,0xb5,0xd3,0xca,0xc6,0xe5,0x6c,0xa5,0xf8,0x94,0xd4,0xcd,0xbf,0x9b,0xeb,0xd9,0x68,0xd2,0x4d,0x5e,0xff,0xa5,0x05,0x8b,0x0e,0x20,0xbb,0x08,0x98,0xf6,0xf1,},{0xa6,0xb5,0x6b,0x76,0x86,0xdf,0x1d,0xc5,0xf4,0xed,0x54,0x4a,0x4d,0x97,0xe6,0x70,0x36,0x19,0x5a,0x32,0xb2,0x2e,0xcd,0x5d,0x31,0xea,0x17,0x30,0xe6,0xed,0x8f,0x81,0x0d,0x25,0x8b,0x44,0xc0,0x8e,0xa4,0x5f,0x03,0x2b,0x93,0x74,0x41,0xb7,0x2c,0xd0,0xdc,0x37,0x55,0x6f,0xd7,0x87,0x4e,0x9f,0xe6,0x4f,0x15,0x76,0x5c,0x52,0x10,0x03,},\"\\x64\\x6f\\x8b\\x34\\x18\\x2d\\x5e\\x60\\x2b\\x51\\xca\\x73\\x29\\x34\\x7c\\x0e\\x19\\x8c\\xb7\\x47\\xe4\\xda\\x0a\\x6b\\x80\\xf3\\xf6\\xf9\\xf3\\x36\\xf6\\x70\\x8d\\x85\\xcb\\x42\\x9a\\xb2\\xd6\\xbe\\xd3\\x5d\\x50\\x13\\x12\\x9c\\xd1\\x00\\x14\\x2c\\xdd\\xce\\xe8\\x63\\x51\\x79\\x02\\x1b\\x3e\\x24\\x92\\x2b\\x81\\xae\\xf1\\x3c\\x13\\x70\\x28\\x69\\x39\\xd6\\x3d\\x6b\\x6a\\x41\\x95\\xed\\xa1\\xd8\\x12\\xca\\x51\\x82\\x04\\x76\\x8f\\x87\\x34\\x8c\\x68\\x89\\x55\\x2c\\x63\\xd1\\x37\\x2c\\xde\\x6a\\x5e\\x9d\\xaa\\x7f\\x84\\x45\\xec\\x8d\\x61\\x30\\xa3\\xf5\\xae\\xf0\\xed\\xea\\xce\\x01\\x0b\\x6c\\x7f\\x0b\\x9d\\x24\\x16\\x2a\\x8d\\x04\\x45\\x4b\\x81\\xd4\\x8e\\xa9\\x09\\x7b\\xd8\\xdf\\x09\\x34\\x59\\x71\\x9c\\xcb\\x54\\xaa\\x10\\xf5\\x1c\\x24\\x6a\\xa9\\x9c\\x58\\x0b\\xea\\xf9\\xc9\\xc5\\xbc\\x60\\xfa\\xf0\\xae\\x5c\\xec\\x7f\\x51\\x37\\xf6\\xc5\\xc1\\x44\\xdf\\x45\\xd1\\x2e\\xe9\\x95\\xad\\xcc\\xf2\\x5a\\x9d\\xb8\\x1b\\x85\\x58\\xbd\\xfb\\x65\\x83\\x01\\x86\\xe7\\xb9\\xd4\\xee\\xd9\\xf6\\xb4\\xd7\\x32\\xb1\\xb5\\x82\\x2d\\x03\\xeb\\x01\\x7c\\x07\\x24\\xf4\\x8f\\x87\\xba\\xaa\\xe1\\x04\\x5d\\x6f\\xdb\\x12\\x5c\\x91\\x34\\x06\\x4f\\xaf\\x18\\xdb\\xed\\x58\\xd8\\xfb\\xac\\xea\\xcd\\x4f\\x09\\x7d\\xf9\\xb3\\x42\\xe5\\xc4\\xa5\\xbc\\x85\\xb2\\x95\\x97\\xd4\\xb6\\x40\\xf1\\x55\\x1c\\x5b\\x62\\x4a\\xb2\\x1b\\x48\\xe9\\x4a\\x90\\x30\\x04\\x9b\\xe1\\xf0\\x5a\\xa8\\x51\\xd0\\x82\\x7e\\xaf\\x87\\x00\\xdf\\xe1\\x47\\xfd\\xcd\\xee\\xdb\\xc9\\x8c\\x4f\\x15\\x77\\x4f\\x01\\x20\\xfb\\x59\\x70\\xa2\\xf8\\xb2\\x17\\x94\\x34\\x0b\\x62\\x83\\x79\\xa8\\x02\\xb9\\xf7\\xc0\\x68\\xb0\\xdf\\x63\\x19\\x3e\\x51\\x0f\\xc7\\xb2\\xaf\\x97\\xee\\x38\\xde\\x47\\x92\\x97\\x85\\x53\\x55\\x28\\xd3\\x50\\xd8\\x86\\x20\\x61\\x0c\\xfd\\xb5\\x5d\\x24\\x9e\\x38\\xfb\\x73\\xc8\\x28\\x71\\x13\\x91\\x9c\\xe3\\x32\\x67\\xd7\\xdb\\x92\\x4e\\x49\\x19\\xa4\\x4e\\x6e\\x29\\xa9\\x0d\\xbe\\x3b\\x7b\\x0d\\x39\\x21\\x16\\x3f\\xeb\\x5a\\xc1\\x05\\x62\\x4e\\xd8\\x52\\xbe\\xce\\x35\\x38\\xe9\\x91\\x93\\x30\\x0c\\x89\\x33\\x45\\x69\\x93\\x50\\xa8\\xf9\\x9e\\x8c\\x6a\\x41\\x09\\x5f\\xc9\\xfc\\x08\\xda\\x07\\xf7\\x57\\x11\\xf7\\xdf\\x03\\x44\\x06\\xde\\x14\\xed\\xd8\\xe2\\x2a\\x63\\x3a\\x86\\xe4\\xa5\\xa5\\xc9\\x75\\xac\\x5d\\x34\\x89\\x1c\\xcc\\xfc\\x85\\x43\\x77\\x1f\\xfa\\x08\\x0e\\x0b\\x45\\xd6\\x5a\\xb8\\x30\\xa3\\x61\\xac\\x4c\\x42\\x62\\x94\\xd3\\x68\\x5e\\xa8\\xc2\\x60\\x39\\xc7\\x1c\\x90\\xfc\\x3f\\xb5\\x12\\xbe\\x9f\\xc9\\x48\\x07\\xd7\\x6d\\xbd\\xaf\\x8f\\xfa\\xa4\\xfb\\xf9\\x84\\x9d\\x68\\xe8\\xa5\\x7d\\x30\\xc4\\xa0\\xb9\\x73\\x5c\\x23\\xf0\\x8e\\xf2\\xe2\\x84\\x45\\x84\\x67\\xe1\\x5d\\x66\\x53\\x62\\xcb\\x64\\x6f\\xde\\x69\\x37\\xec\\xba\\x53\\x09\\x12\\x64\\x63\\x83\\x57\\xa7\\x22\\x42\\x5b\\xc6\\x2d\\x1e\\x30\\xec\\x5f\\x0d\\xd8\\xfe\\xa2\\x6b\\x2e\\xa4\\xa8\\x49\\x00\\x35\\xde\\x43\\xf2\\x74\\x84\\x6f\\xb0\\xcf\\x02\\x09\\xec\\x74\\x37\\xf3\\xc3\\xd0\\xa5\\x60\\x37\\x3d\\x03\\x4e\\x5f\\xd7\\x9e\\x25\\xb6\\x42\\x4d\\x9b\\x2c\\x17\\x61\\x63\\x2b\\x35\\xa1\\x21\\x32\\x52\\x18\\x27\\x34\\x5c\\x55\\xe4\\xe7\\x14\\x2d\\xd6\\xfe\\x94\\xd6\\x20\\xfe\\x51\\x5c\\x15\\x3e\\x83\\x95\\xb5\\xd1\\x30\\xc7\\x44\\x13\\x9b\\x6a\\x92\\xef\\xd3\\x7f\\x22\\xba\\x13\\xfe\\x4c\\x09\\x53\\x73\\x55\\x0e\\x2e\\x4f\\xcb\\xa0\\x32\\x5b\\x3e\\xa3\\xb9\\xfe\\x25\\xcc\\x7d\\xd9\\x2c\\xbf\\x42\\xe1\\x5f\\x45\\x54\\xb7\\x7a\\xc2\\x7a\\x4a\\x34\\x63\\x82\\xff\\x61\\x00\\x45\\x15\\x08\\xd6\\x02\\xcf\\x64\\x3f\\x60\\xb6\\xca\\x42\\x86\\x35\\x6f\\x21\\xa3\\x11\\x0d\\x4e\\x2c\\x8a\\x89\\x62\\xa7\\x80\\xfc\\xff\\x43\\x9b\\x3a\\xa8\\x04\\x99\\xdf\\x27\\x0f\\xc3\\xe6\\xca\\xd8\\x89\\x33\\x48\\x87\\x2f\\x0f\\x70\\x2f\\x93\\x90\\x00\\x0c\\x7f\\x6e\\x06\\x27\\xd2\\xbb\\xb7\\xb7\\xce\\xf5\\xc4\\xda\\x25\\xda\\xdf\\xea\\x80\\x32\\xe5\\x02\\x32\\x97\\xa7\\x0a\\x65\\x8e\\x9a\\xe7\\x3b\\xdd\\xc3\\xb2\\x27\\xa1\\xc1\\x17\\x41\\x13\\x3f\\x01\\x2f\\x0f\\x48\\xfe\\x26\\x44\\x6f\\xa6\\x7e\\x64\\x72\\x0f\\xc8\\xdc\\x97\\xf3\\x0d\\x0d\\xd0\\x26\\xf6\\xdc\\x21\\x64\\xea\\xd8\\x57\\x82\\x4a\\x0a\\x7a\\xeb\\x20\\xf1\\x15\\xd5\\x0d\\x1b\\x65\\xdd\\x5d\\x82\\xe0\\x9a\\xbe\\x83\\x4e\\x8c\\xa8\\x89\\x57\\xe3\\x99\\x84\\x82\\x49\\x55\\xa1\\xa1\\x3e\\x3b\\x94\\xa0\\x01\\x57\\x18\\x6d\\xcd\\xc2\\x89\\xe3\\x4b\\x67\\x8c\\x91\\xcb\\x2a\\x1a\"},\n{{0x06,0x3b,0x90,0x25,0xe3,0x21,0xe9,0x72,0xd6,0x53,0xa0,0x62,0xbe,0x34,0xf9,0x93,0x65,0xaf,0xfd,0xcc,0x98,0xec,0x9f,0xf4,0x3e,0xf4,0x22,0xbe,0x0f,0x80,0x44,0x60,},{0x10,0xd0,0x1a,0x63,0x01,0x2a,0xc0,0x99,0x56,0xba,0x9e,0xd6,0x1d,0xf3,0x5b,0xb7,0xaf,0xe3,0x65,0x8b,0xb3,0x00,0x48,0x52,0xe4,0x71,0x74,0xbd,0x07,0xdd,0x4d,0xe7,},{0x85,0xc8,0x1d,0x6b,0x0d,0x85,0x78,0xfa,0x58,0xe1,0x3a,0xb3,0x91,0x00,0x15,0x28,0xb4,0x6a,0x1d,0x63,0xa0,0x32,0x7c,0x7a,0x4a,0x04,0x08,0x7f,0xc6,0x68,0x75,0x8a,0xa6,0x5c,0x01,0xd5,0xa1,0x50,0xf9,0x35,0x67,0x4e,0xf3,0x07,0x50,0x7e,0x6f,0x4c,0x91,0xe1,0xfc,0x35,0x00,0xb2,0x6f,0x64,0x9b,0xee,0xa8,0x7d,0x27,0x56,0x37,0x04,},\"\\xa7\\xee\\xd2\\x96\\x52\\x84\\x4e\\xe0\\x04\\x9b\\xaf\\xb2\\xcf\\x63\\x40\\x29\\x71\\x02\\x0d\\x7e\\x65\\xc1\\x0b\\x91\\xac\\x57\\x26\\xee\\xa8\\x6f\\x40\\xdb\\xc5\\x3c\\x3f\\x0a\\xbe\\xde\\xba\\xf6\\xcc\\x44\\x9b\\x4f\\xea\\x48\\xc0\\x15\\xfe\\x4d\\x90\\x7b\\x3e\\x55\\x05\\xcf\\xf5\\x0a\\x12\\x18\\x19\\xa2\\xe4\\xa8\\xa2\\x96\\xd5\\x75\\x10\\x15\\xbb\\xcd\\x7e\\xf6\\xfb\\x7c\\x27\\x27\\xbb\\x00\\x0b\\xe1\\x34\\x2a\\x7d\\x14\\xbc\\xa9\\x79\\x04\\xed\\xfe\\x8b\\x18\\xdd\\xb6\\x39\\x33\\x41\\x83\\x27\\xa5\\xaf\\x81\\x7e\\x95\\xba\\xd7\\x4e\\xb7\\x90\\x20\\x36\\x15\\xd0\\x82\\xe7\\x14\\x93\\xea\\xd4\\x7c\\xcc\\x09\\x01\\xa2\\xca\\x9f\\x50\\x13\\x3c\\x44\\xef\\x85\\x08\\xd5\\x1f\\xb7\\x3c\\x61\\x6f\\x01\\x47\\x53\\x22\\x45\\x82\\x2d\\xd1\\x02\\xb3\\x37\\xa1\\xb2\\xaa\\xe2\\xef\\xc7\\x2d\\xca\\x7a\\x94\\x19\\xd5\\x98\\xa6\\x47\\x52\\x33\\xdc\\x1a\\x4e\\xe0\\xec\\x6d\\x05\\xda\\x12\\xa2\\xb2\\x87\\xcb\\x77\\xff\\xaf\\xdd\\xe2\\xd0\\xac\\xc2\\x81\\x99\\x93\\x3e\\x66\\x21\\xee\\xc1\\x6a\\xb4\\x24\\x51\\x70\\xcf\\x02\\xda\\x80\\xd4\\x92\\x26\\x31\\xa2\\x32\\x72\\x91\\x51\\x65\\xad\\x88\\x72\\x27\\x50\\x03\\x5d\\x2a\\x09\\x77\\xbc\\x79\\x1d\\x14\\xfb\\x3d\\x8c\\xb0\\x2b\\xc7\\x7f\\x7c\\x71\\xbe\\x52\\x42\\x62\\x9a\\x4c\\x9a\\x58\\x8d\\xfd\\xde\\x95\\x78\\x49\\x4d\\x8b\\xaa\\x4e\\x68\\xf5\\x19\\x4b\\x80\\x02\\xc8\\xe3\\x78\\xa0\\xe8\\x33\\xb7\\xc1\\xa9\\x69\\x81\\xc4\\xfb\\x05\\xe4\\x57\\xff\\x48\\x26\\x0b\\x72\\x49\\x3c\\xbc\\xb8\\x2a\\xe1\\x16\\x73\\xd1\\x4c\\xee\\x85\\x28\\x8f\\x63\\x70\\xbd\\x4b\\xca\\x92\\x51\\xa7\\xe2\\x14\\xc3\\xeb\\x79\\xe7\\xbb\\x6f\\xce\\xbb\\x16\\xc9\\xe0\\x56\\xf2\\x9b\\x62\\x72\\x74\\x3e\\xfa\\x6f\\xe8\\xbf\\xd2\\x55\\x97\\xce\\x86\\x89\\x8a\\xb3\\x05\\x9e\\xb0\\x23\\x1c\\x73\\xb5\\x30\\x59\\x03\\xfd\\x13\\x19\\xbd\\xf4\\x9e\\x59\\x9d\\x8b\\xbc\\xd7\\x4a\\x8b\\x97\\x67\\x30\\x8b\\x61\\x56\\x3c\\xcb\\xac\\xd3\\x8f\\xc5\\x0c\\x83\\xab\\x44\\xca\\x75\\x9d\\xc9\\xb6\\x5b\\x2a\\x4b\\x54\\x7c\\x50\\x97\\xf2\\x20\\xc1\\xc8\\x8b\\x2b\\x0a\\x48\\xf6\\x5f\\x91\\xfe\\x78\\xb1\\x50\\x12\\x78\\xe1\\xe3\\x04\\xde\\x58\\xb4\\xc8\\x2a\\x5c\\x39\\x99\\x81\\x09\\x8a\\x17\\x84\\xeb\\x90\\x42\\x50\\x18\\x59\\xf2\\xa9\\x3f\\x31\\x7e\\x41\\x77\\x2f\\xd5\\x2f\\x97\\x2e\\x51\\xb0\\x7e\\xd9\\x4d\\x31\\x4e\\x1d\\x1a\\xf4\\xed\\x82\\x90\\x9a\\x0b\\xef\\x67\\x1f\\x54\\xb5\\x5d\\xb7\\xb7\\x0d\\xa1\\xf7\\x18\\xc8\\xe6\\x48\\xae\\xdd\\x6d\\xa6\\x4b\\x05\\x77\\x05\\x26\\xf1\\x2b\\xc4\\x3f\\x68\\xb9\\x55\\x48\\xda\\xc5\\x08\\x09\\xa6\\x87\\xdb\\x97\\xd7\\x3f\\x06\\xf4\\x7e\\xd0\\x88\\x31\\xb6\\x0a\\x28\\xe9\\x82\\x92\\x06\\x32\\x05\\x8f\\x0e\\x6c\\x90\\xc0\\x18\\x7f\\xf4\\x45\\x64\\xf8\\x1e\\xfd\\x8f\\xd9\\x3e\\x32\\x7b\\xc6\\xd8\\x0b\\x49\\x0e\\x08\\x8b\\x9a\\x10\\x03\\x6c\\x80\\xdc\\xda\\xd4\\x9d\\x2b\\xe0\\x74\\xfb\\xba\\x31\\xe0\\x6f\\x71\\x80\\xe5\\xad\\x1c\\x88\\x23\\xd6\\x09\\x66\\xa9\\xce\\x15\\x50\\x3c\\xe6\\x0d\\xd4\\x0e\\x91\\xee\\xf2\\x35\\x9d\\x83\\xd7\\x0d\\x98\\x40\\x1d\\xde\\x7b\\xe3\\xc6\\xb0\\x7e\\x57\\xd4\\xe4\\x7d\\x04\\x21\\x76\\x33\\xd8\\xe2\\x63\\xca\\x34\\x8f\\x81\\xfb\\xe9\\xa4\\xa6\\x2f\\x45\\xd7\\x7c\\x84\\x3b\\x6b\\x1a\\xd2\\x84\\x66\\xd9\\xda\\xfb\\x1b\\x91\\x0b\\x34\\x8e\\xd8\\x7c\\x68\\x6c\\xab\\x29\\x2d\\x48\\x0c\\x19\\x1d\\x18\\x7b\\x40\\x4a\\x9b\\x1d\\x13\\x2b\\xa4\\xe2\\x93\\xd3\\xad\\xa9\\x91\\x72\\xac\\xc1\\x21\\xfe\\x66\\xb8\\x45\\xb9\\x8b\\x16\\x0c\\x58\\x23\\xf6\\x01\\xc7\\x75\\x8f\\xb2\\x6c\\xae\\xe8\\x57\\x01\\x59\\x5b\\x2d\\x52\\xca\\xa2\\xf5\\x68\\x8a\\xa2\\xbf\\x2f\\x6c\\x4b\\xb6\\x37\\xf8\\xe0\\x0f\\x49\\xab\\x6c\\x26\\xbc\\x6a\\xd8\\x9e\\x13\\x67\\xfd\\x28\\xe4\\x91\\x7d\\x25\\x08\\x93\\xa7\\xb3\\x2d\\x39\\x66\\x0b\\xde\\x8d\\xb4\\x9f\\x08\\x6f\\xb7\\x39\\xe5\\x60\\x12\\xc3\\x6b\\xea\\x0b\\x26\\xcf\\x6d\\x93\\x57\\x94\\x0b\\x00\\xd5\\xa4\\x52\\x8f\\x90\\x59\\xaa\\xf0\\x86\\x69\\xe5\\xf4\\x6c\\x99\\x5e\\x60\\xf8\\x87\\xb5\\xc4\\xab\\x88\\xac\\x74\\x42\\xed\\x01\\xa1\\x4c\\x6a\\x42\\x00\\x6b\\xaf\\x1f\\x34\\x3f\\xef\\xe3\\xe4\\xac\\xa8\\x43\\xa3\\x24\\xe1\\x76\\xb2\\xfe\\x7e\\xc7\\x88\\x3d\\x1c\\xbd\\x06\\x8b\\xc2\\xfc\\x96\\x2f\\xfa\\x60\\x24\\x4f\\x65\\x4c\\x77\\xac\\x56\\x50\\x81\\x7d\\xc0\\x84\\x46\\x55\\x45\\xa9\\x23\\x0a\\x74\\x82\\x6b\\x0c\\x50\\xeb\\x85\\x25\\x2a\\x88\\x6f\\xf2\\xb1\\xaf\\xea\\xf8\"},\n{{0x88,0x3c,0xc1,0x38,0x17,0x57,0xb0,0xfe,0x04,0x55,0xb7,0x7b,0xc9,0xcd,0x0d,0xd4,0x64,0xd2,0xb4,0xbf,0x0c,0x7a,0x3c,0x0c,0x2d,0xc7,0x75,0xfb,0x78,0xaa,0x37,0x32,},{0x83,0xa8,0xb6,0x69,0xcc,0xd0,0x12,0x45,0xce,0x3b,0x81,0x8d,0xcb,0x1b,0x58,0x8f,0x86,0x53,0x58,0x50,0xe6,0xc7,0x10,0xc7,0x92,0x17,0xfe,0x43,0x98,0x24,0xf3,0xfa,},{0xc7,0xcf,0xd5,0xc9,0xfe,0x93,0x0d,0x15,0xa1,0x1e,0xbb,0x34,0xe3,0x43,0x1f,0x48,0x9d,0xa0,0x10,0xeb,0x19,0x3e,0xdb,0xfa,0x6f,0x23,0xd5,0xd1,0x4d,0xd8,0xfe,0xab,0xd7,0x88,0x0d,0x2d,0x5a,0x56,0x00,0xd3,0x85,0x46,0xce,0x3b,0xc6,0x4a,0x86,0x29,0x1a,0x1c,0xe3,0x1f,0x27,0x2f,0xf0,0x20,0xdf,0x8c,0xb6,0xa0,0xfd,0x4d,0x3a,0x0d,},\"\\xff\\xec\\x29\\x3d\\x12\\xea\\x63\\x6c\\xa4\\xc4\\xa0\\xa5\\xe2\\xdb\\x15\\x34\\x26\\x39\\xc4\\x76\\x67\\x4d\\x2e\\xbd\\xab\\x4a\\xef\\xd4\\x04\\x6b\\x5d\\xdb\\x56\\xae\\xb2\\x10\\xc1\\x19\\xaf\\xdf\\xb8\\xa8\\x91\\x28\\xa3\\x4f\\x6d\\x77\\xf2\\x61\\xed\\xea\\x07\\x72\\xa2\\xf8\\xdb\\x14\\x0a\\x26\\x40\\xfd\\x8e\\xca\\xdb\\x0b\\x47\\x92\\x16\\x9b\\x6b\\x28\\x10\\xae\\xe2\\xc5\\xcd\\x83\\x52\\x88\\xbf\\xf4\\x93\\xbc\\xeb\\xee\\xea\\x28\\xa7\\xa2\\x48\\xc3\\x61\\x16\\x54\\x0f\\xa7\\x17\\x36\\xd6\\x6b\\x0a\\x47\\x5b\\x5f\\xa9\\x2c\\x0d\\x46\\x00\\x2f\\xca\\x7a\\x1e\\x69\\xd1\\xb5\\x9e\\x81\\xa3\\xa6\\xd4\\xf3\\x39\\x76\\x9d\\xae\\xb2\\x0b\\x5f\\x9d\\x75\\xc4\\xc2\\x8f\\x69\\x21\\x32\\xd2\\x8d\\x3c\\x56\\x4c\\x09\\xfe\\x3d\\xcc\\xa0\\x35\\x9c\\x3c\\x63\\xec\\x37\\x7a\\x33\\xf9\\xee\\x87\\x4d\\x8a\\x78\\x9d\\x77\\xc9\\x6a\\xc0\\x5f\\xdf\\x3a\\xb3\\x8b\\x2c\\x82\\x74\\xa9\\x02\\xef\\x8b\\xb7\\xf4\\x67\\xfc\\x7e\\x07\\x3c\\x77\\xb1\\xdb\\x5f\\xc8\\xef\\x96\\x6c\\x12\\x0c\\x4d\\xae\\x3f\\xb7\\xf5\\xb7\\x4a\\xbb\\x99\\x01\\x66\\xc8\\x12\\xa5\\x25\\xd1\\x23\\xf7\\x6e\\xd5\\x12\\x12\\x50\\x80\\xa1\\x53\\x4f\\x3d\\x8b\\xdc\\xcc\\x54\\x1f\\xc9\\x75\\x90\\x28\\x75\\x46\\x09\\x6f\\xc8\\x80\\xbf\\xcf\\xdd\\x00\\xe6\\x5c\\x0e\\xbf\\x4a\\x09\\xfd\\x64\\x76\\xce\\x1b\\x7c\\x8f\\xaa\\xa5\\xa1\\xcc\\x27\\x86\\x71\\x9a\\x30\\xd8\\x25\\x58\\x11\\x18\\x47\\x52\\xa8\\x8b\\x08\\xac\\x9f\\x0f\\xf1\\xd6\\x26\\x2f\\x25\\x86\\x94\\x0a\\xfe\\x1f\\xe4\\x5e\\x0b\\x56\\x34\\x48\\xa5\\x5f\\x30\\x30\\xe4\\xc3\\x9c\\x1f\\x3f\\x86\\xa7\\x33\\x67\\x03\\x80\\xea\\xb0\\x88\\xe3\\x93\\xde\\x09\\xd1\\xf5\\x08\\xd2\\xfb\\xca\\xfc\\x64\\x9a\\xea\\xe6\\xb8\\xc3\\x0e\\x32\\x9e\\xc3\\xfd\\x28\\x29\\xbe\\x6d\\xb0\\xab\\x8e\\x63\\x7e\\xa1\\x09\\x5b\\xdc\\x3d\\xf3\\xac\\xc2\\x3d\\x3c\\xf7\\x05\\xa9\\x54\\x2c\\x19\\xe5\\x90\\x92\\xec\\x41\\x3a\\x4e\\x2b\\xd5\\xde\\xd2\\x8c\\xd3\\x4d\\xdb\\x3d\\x32\\x94\\x9a\\xa4\\x87\\xf1\\xc3\\x37\\xd6\\x97\\x9c\\xf5\\x12\\x62\\x2d\\xbf\\xb7\\xda\\x1c\\xbb\\x1c\\x7e\\x5a\\xbe\\xea\\x70\\x09\\xe2\\x94\\x3f\\xfb\\xa2\\x25\\x2e\\x1d\\x86\\xec\\xa9\\xd6\\xd5\\xc2\\x46\\xcd\\x2e\\x13\\x4a\\x3e\\x5d\\xad\\x37\\xef\\xef\\x71\\xce\\x39\\x7a\\xda\\xfb\\xd9\\xe7\\x2b\\x3f\\x9a\\x86\\xff\\x0f\\x5d\\x81\\x2c\\x46\\x22\\x5b\\xeb\\xd0\\x70\\x3b\\xc5\\xcc\\xe9\\xc6\\x45\\x82\\x00\\x8f\\x7e\\x55\\x8c\\x40\\xa3\\xb3\\x52\\x20\\x96\\xd1\\xaa\\x2b\\x61\\xbc\\x90\\xcd\\x88\\xc6\\x28\\x5d\\x94\\x20\\x87\\xd8\\xa4\\x66\\x5a\\x0e\\x64\\xd3\\x57\\x2f\\x74\\x68\\x9b\\x4f\\x24\\xef\\x40\\x0d\\x74\\x1b\\x57\\x14\\x06\\x13\\x47\\x14\\x44\\xde\\xcc\\x65\\x4a\\xf0\\xff\\xb2\\xed\\xfd\\xf9\\xfd\\xd0\\x75\\x09\\x81\\x90\\xb3\\x4c\\xde\\x28\\xdd\\x16\\x68\\x72\\xc6\\x08\\x65\\x67\\xa6\\x87\\x61\\xce\\xf2\\x5d\\xa4\\x0b\\xd4\\xc3\\xd3\\x4f\\xdd\\xd7\\x2e\\xe5\\x65\\xb0\\xb9\\x37\\x67\\x8e\\xe8\\x43\\x49\\xd1\\x16\\x0f\\x5f\\x07\\x05\\xf8\\x95\\xd0\\xf1\\x41\\xce\\x8f\\x51\\xa1\\xe4\\xfd\\x2d\\xc4\\x70\\x4b\\x52\\x7a\\x40\\x25\\xa9\\x39\\xcb\\x2b\\xb7\\x88\\x57\\xeb\\x18\\xd7\\x88\\x72\\xed\\xc9\\xee\\x70\\xe6\\x0b\\x2a\\x42\\x70\\x0a\\x19\\x8f\\x4f\\xff\\x6c\\x31\\x92\\x51\\x68\\xbe\\x07\\x7d\\xc2\\x3c\\x32\\x2a\\xbb\\xca\\x97\\x36\\x1f\\xec\\xaa\\x3f\\xcb\\x19\\x6e\\x65\\x6c\\x12\\x8f\\x39\\x82\\xfe\\x11\\xe5\\x51\\xa4\\xa0\\x88\\x5d\\xa6\\x0d\\x39\\x7d\\x0e\\x40\\xd0\\xd8\\x97\\x26\\x2f\\x1b\\x4b\\x67\\x2f\\x78\\xa2\\xd2\\xad\\xfc\\xdd\\x6e\\x15\\x25\\xc2\\x6e\\x71\\x95\\xfb\\x9a\\xc6\\x06\\xbb\\x1b\\xa4\\xa9\\x89\\x08\\x03\\xb4\\xbd\\x84\\x34\\x6a\\xe8\\xd8\\xc7\\x19\\x6c\\x90\\xae\\xcc\\xb2\\x96\\xa4\\xc3\\xeb\\x4e\\xfa\\xcb\\xfc\\xb6\\x2e\\x38\\x3b\\x8a\\x49\\x4a\\xc7\\x23\\x56\\x2d\\x0d\\x8c\\x37\\x91\\x87\\xa9\\x2e\\x3b\\xda\\x6b\\x15\\x69\\x47\\x6a\\xed\\x21\\xae\\xd7\\xa0\\x56\\xb4\\xa5\\x82\\x67\\x44\\x01\\x7c\\xc0\\x06\\x0b\\x4d\\x55\\xfa\\x87\\x72\\xb5\\xb1\\xc1\\x5f\\x57\\x48\\xad\\x72\\x98\\x00\\x5a\\xec\\xbc\\xbd\\x90\\xa3\\xe5\\xc6\\x15\\x9a\\x86\\x74\\xab\\xbb\\xa3\\x79\\x14\\x41\\x50\\x02\\xb5\\xa6\\xef\\x5d\\xf3\\xc6\\x49\\x42\\x6e\\xa1\\x27\\x5a\\x01\\xd8\\x0a\\xdf\\x49\\x0a\\xc5\\x46\\x06\\x2d\\x93\\x99\\x9a\\x6d\\xcc\\xac\\xb9\\x6a\\x09\\x04\\xad\\x33\\xd9\\x05\\x76\\xdc\\x6a\\x21\\xb6\\x72\\xe8\\xff\\xb0\\x66\\x13\\xfb\\x3f\\x14\\xe6\\xcb\\xdd\\xe8\\x8c\\x24\\x37\\xc9\"},\n{{0x5e,0x40,0xa7,0xaa,0xbb,0xb0,0x83,0x0a,0x9a,0xb0,0xfd,0x79,0x69,0x0e,0xe0,0x43,0x39,0x01,0xc6,0xcb,0x06,0x76,0xab,0xe4,0xbb,0xa0,0x6f,0x5b,0xbe,0x58,0xfa,0xc2,},{0x4d,0x4f,0x28,0xfe,0x09,0xc4,0xaa,0xbf,0xca,0x01,0xef,0x6e,0xe7,0xfd,0x63,0x72,0xfb,0x62,0xdb,0x61,0xaa,0xee,0x82,0x7c,0x43,0xfd,0x1a,0x6d,0x1c,0x25,0x90,0x32,},{0x59,0x76,0x72,0xab,0x8d,0x3a,0x60,0xde,0x54,0x56,0xfc,0xc9,0xc3,0x82,0x53,0xf5,0xf3,0x7b,0x80,0xe7,0x4a,0x00,0x7c,0x9f,0x6d,0xb9,0x09,0xd2,0x7d,0x0e,0xad,0x16,0x27,0x89,0x24,0x49,0x94,0xf3,0x5b,0x80,0xd6,0x1b,0xe1,0x99,0xc4,0x17,0xc7,0xea,0x90,0x1b,0x98,0xcc,0x63,0xfe,0x3c,0x50,0xfc,0x3c,0x63,0x38,0x49,0x0f,0xa2,0x06,},\"\\xfd\\x4e\\xc8\\xb3\\x4f\\xc6\\xb7\\x43\\x81\\x3f\\x59\\xe2\\xfd\\x1f\\xef\\xa8\\x70\\xf5\\xa9\\x70\\xe2\\xeb\\x75\\x16\\xef\\x7c\\x30\\x6f\\x4b\\x82\\x3f\\xfe\\xe9\\x2d\\x60\\x1f\\x76\\x5d\\x79\\xca\\x14\\x6a\\xba\\x8b\\xc6\\xe7\\x98\\x44\\x55\\x99\\x35\\xcd\\xdc\\x24\\x26\\x49\\xc0\\x59\\xec\\xf2\\xdb\\x84\\xfd\\xc2\\x19\\x36\\x66\\x88\\xa8\\x8f\\xc2\\x5b\\x85\\x1c\\x36\\x61\\xe5\\x19\\x88\\xc2\\xbf\\x73\\xbb\\x8e\\x3d\\xc1\\x6d\\x22\\x41\\x5a\\xb1\\xa7\\xb3\\x55\\x79\\xda\\xac\\x73\\x25\\xe3\\x19\\x15\\x7d\\x7d\\xa5\\xfe\\xe8\\x7c\\x93\\xa4\\xdf\\xcb\\xaf\\xc9\\x2f\\xba\\x7e\\x17\\xcc\\x68\\xe3\\x90\\x37\\x33\\xc6\\xc8\\x01\\x57\\x2d\\x90\\x73\\x20\\xb2\\xfe\\xb5\\x17\\x10\\xe8\\x56\\xa1\\xf7\\x6f\\x85\\xa7\\xee\\x1a\\x11\\xe6\\x2d\\x2e\\x45\\xa3\\x52\\x93\\x8d\\xd8\\xcf\\xc2\\xbc\\xcb\\x90\\x2d\\xea\\x44\\x4f\\xaa\\xae\\x6d\\x84\\xc5\\xf3\\x91\\xe1\\x0a\\xef\\x76\\x92\\x8a\\x45\\x15\\x3d\\xb6\\xcd\\x25\\xa2\\xbf\\x35\\x3d\\x80\\xd9\\x7b\\xf4\\xb3\\x80\\x86\\x05\\xe8\\x98\\x00\\xd2\\x98\\x40\\xea\\x60\\x97\\x8d\\x9e\\xc9\\xb2\\xc3\\x02\\x74\\x98\\x88\\xf9\\xde\\xbc\\x84\\xdd\\x1e\\x2a\\x79\\xaa\\x0b\\x6b\\xa0\\x2a\\x03\\x91\\x93\\x08\\x1b\\xdb\\xff\\x05\\x99\\xa1\\x4d\\x91\\x8c\\x0c\\x8d\\xea\\xc4\\xf6\\x0b\\x6e\\x99\\x47\\x4a\\xb5\\x30\\x11\\x74\\x10\\x34\\xfe\\x2a\\x20\\xcf\\xf4\\xe0\\xf0\\x23\\x42\\x4c\\x8e\\x57\\x97\\x76\\x8a\\xd5\\x3d\\xf6\\xd0\\x1a\\x24\\x01\\x1f\\xa9\\x0f\\x0b\\xb1\\xd5\\x06\\x9c\\xdb\\x36\\xb4\\x50\\xf4\\x33\\x11\\x0c\\x2c\\x56\\xf3\\x4a\\x1d\\xe4\\x26\\x09\\x14\\xcd\\x46\\x96\\xb1\\x4a\\x09\\xc0\\x26\\x8b\\x2a\\xe2\\xe9\\x8e\\x6b\\x4e\\x99\\x2b\\x91\\x25\\xf8\\x78\\xf1\\xac\\x09\\x82\\x31\\x70\\x62\\x83\\x88\\xf0\\xf6\\xe2\\x56\\x25\\x9c\\xa7\\x86\\xbb\\xe1\\x44\\x88\\x4c\\xb2\\x98\\xcc\\x04\\x3d\\x02\\xf5\\xc3\\xdc\\x68\\x4f\\x78\\x7f\\xaf\\x16\\xc1\\x0f\\xdd\\x84\\x37\\xa8\\xc3\\x09\\x74\\x63\\xbd\\xb9\\x9b\\x78\\x03\\x0f\\x94\\x74\\xfc\\x5c\\x99\\x51\\xdc\\x75\\x26\\x49\\x05\\x86\\xfe\\x1c\\x2d\\xb0\\x54\\x11\\x34\\x14\\x60\\x23\\x9d\\x5e\\x8b\\xc5\\x30\\x65\\x90\\x2b\\x95\\xfb\\xa2\\x82\\xc2\\x76\\x65\\xe8\\x69\\xa1\\x9d\\xae\\x84\\x60\\x6d\\x17\\x26\\x67\\x51\\x55\\xd3\\x80\\x39\\xb9\\xe5\\x5d\\xb4\\xd5\\xce\\xec\\x95\\xcd\\x6d\\x87\\xf8\\x5e\\x99\\xdd\\xe5\\x4a\\x04\\x76\\x1e\\x6e\\xad\\xa6\\x61\\x9d\\xa8\\x95\\xb6\\x54\\xfe\\x38\\x45\\xe8\\xa6\\x0f\\x3a\\x3b\\x32\\x48\\x3d\\x6d\\x27\\x97\\x8a\\xf5\\x45\\x02\\xb2\\x20\\xe4\\x78\\xdb\\x78\\xcf\\xf7\\x7a\\x9c\\x97\\xfb\\x79\\xfb\\x5a\\xcf\\x56\\x28\\x9f\\x38\\x1a\\xcb\\x10\\xde\\x64\\xc3\\xf2\\x38\\x42\\xb1\\x2b\\xf5\\xf1\\xb2\\x83\\xbd\\x25\\xd4\\x8d\\x09\\x12\\x8f\\xb5\\x5d\\xda\\xe2\\x55\\xbe\\xb7\\xc6\\x6a\\x74\\xcf\\x6f\\x06\\x95\\xa4\\xf8\\x28\\xcb\\x29\\xe4\\xaf\\xdb\\xb3\\xb4\\x2a\\x23\\x5d\\x4f\\xdb\\x66\\xb9\\x63\\xac\\x8f\\x68\\xe8\\x2b\\x00\\xa1\\xc4\\x50\\x08\\x63\\x29\\x62\\x47\\x17\\x8c\\xfd\\xef\\x80\\x3b\\xb7\\xb1\\x14\\xf0\\xc0\\x32\\x76\\xf6\\x71\\x66\\x9a\\x08\\x7d\\x92\\x28\\xa3\\x7a\\xe7\\xb9\\x9b\\x06\\x15\\x49\\xc1\\xcf\\x8e\\xc1\\x72\\x46\\xea\\x1e\\xe0\\x3d\\xbc\\x88\\xbf\\x42\\x64\\x16\\xd5\\x86\\x57\\x2f\\xf1\\x0a\\x31\\x45\\x60\\x6f\\x27\\x84\\xe4\\x35\\x7b\\xe4\\xed\\xee\\xc6\\xc3\\xa7\\xbf\\x11\\xbb\\x5b\\x0e\\x90\\xcf\\x50\\xed\\xaf\\x89\\x1e\\x51\\xd2\\x63\\x57\\xbf\\xc8\\x53\\xce\\x23\\xb2\\x99\\x15\\x5c\\x82\\xc1\\x03\\x1d\\xfa\\x64\\x07\\x4d\\x72\\xa0\\x9d\\x29\\x72\\x0e\\xad\\x6e\\xbb\\xbf\\x75\\xd5\\x73\\x8e\\x32\\xcd\\xa6\\xb6\\x46\\x6a\\x8d\\xef\\x6b\\x50\\xa1\\xed\\x9b\\x86\\x5a\\x9a\\x88\\xa0\\x80\\x18\\xac\\xb5\\x01\\xa4\\xde\\x9d\\xb5\\x4d\\x05\\x22\\xce\\x9c\\xec\\x7a\\x06\\xbd\\x9a\\x5f\\x86\\xb0\\xb4\\x6c\\x07\\xbf\\x3e\\x7f\\x5a\\x42\\x6f\\xf6\\xb4\\xbb\\xe1\\xe0\\x03\\x13\\xa5\\xac\\x27\\x19\\xa9\\x59\\xed\\x44\\xee\\x0a\\x44\\xbd\\x97\\xda\\x6d\\xb2\\xcb\\x97\\x1b\\xd6\\x83\\x34\\x90\\x89\\x49\\xed\\x85\\x0f\\xbf\\x73\\xd0\\xe0\\x20\\x49\\xda\\x18\\x1c\\xce\\x9c\\x2d\\x9c\\xa1\\xb6\\x24\\xc8\\xd8\\x7c\\xf9\\x04\\xeb\\x82\\x1d\\xc7\\x95\\x92\\x95\\xda\\x57\\x77\\x92\\x06\\x60\\xb4\\x3c\\xcc\\x25\\xcd\\x38\\x9f\\x15\\x7f\\x67\\xfa\\x03\\x90\\xfe\\xac\\x97\\xa7\\x52\\xc1\\xac\\x20\\x4c\\x21\\xdf\\x56\\xbb\\x0f\\x4f\\xc0\\x16\\x41\\xb4\\x80\\xaf\\x2b\\x89\\xb5\\xd1\\x6d\\x4a\\x0b\\xcb\\x0a\\x50\\xb8\\x2b\\x0e\\x04\\x84\"},\n{{0x3a,0x34,0x13,0x6a,0x97,0x34,0x80,0xd9,0x70,0x06,0xdc,0x27,0x93,0x58,0xe6,0x60,0x62,0x93,0xd8,0xcb,0xc1,0xa4,0x4e,0xe5,0x52,0x33,0xaf,0x2b,0x52,0x64,0xb9,0x0c,},{0xe5,0xef,0xfd,0x92,0x1b,0xe8,0xee,0xc5,0x30,0x75,0x2f,0xcc,0xc5,0x76,0xef,0x0d,0x9b,0xcd,0xe4,0xb3,0x2c,0xc6,0x49,0xd3,0xf7,0x95,0x47,0x17,0x56,0x28,0x60,0xcc,},{0x42,0x5f,0x27,0x22,0x12,0x83,0x57,0x55,0xad,0xcc,0x05,0x22,0xc6,0xf6,0xe0,0x5f,0x68,0x00,0x8a,0x3b,0xe9,0xba,0x59,0x74,0xe4,0x20,0xc4,0xc5,0xcb,0x56,0xe6,0xc5,0x5d,0xec,0x0d,0xe3,0x47,0xb1,0x6c,0xae,0xf8,0xbd,0x33,0xb7,0x1b,0x44,0xc8,0x35,0x7d,0x05,0xb6,0x32,0x1d,0x7b,0xf4,0x93,0xd2,0x58,0x61,0xdb,0x48,0x7b,0xd6,0x03,},\"\\x98\\x1c\\x8e\\x10\\x90\\xe3\\x96\\x95\\x1b\\x07\\x2e\\xf8\\x49\\x70\\x62\\x02\\x08\\x97\\xbf\\x7d\\xd7\\xad\\x50\\x5b\\x4d\\x6d\\xc1\\x1b\\x3e\\x1d\\xbc\\xb0\\xda\\x24\\x99\\x84\\xa1\\x40\\xe1\\x64\\xfc\\x2e\\x02\\xb3\\x1d\\xa3\\x98\\x46\\x55\\x4a\\xa8\\x90\\x5b\\xc8\\xb3\\xdf\\x8a\\x76\\xbf\\x60\\xeb\\x5f\\xfc\\xf2\\x2c\\x97\\xb6\\x71\\x22\\x7d\\x24\\x90\\x71\\xda\\x8f\\xf6\\xbb\\xa7\\x5b\\x2f\\x76\\x68\\xce\\xc1\\x9a\\x89\\xe6\\x47\\x5a\\x12\\x46\\x3d\\xab\\xf3\\x68\\xb3\\xca\\x24\\x45\\xbb\\x30\\x35\\xcc\\x00\\xfa\\xe8\\x5b\\x70\\x72\\xfb\\xcf\\x59\\x54\\x01\\x75\\x5b\\x80\\x51\\xe6\\x09\\x70\\x65\\xae\\x42\\x9f\\x18\\xee\\xb1\\x3f\\xfa\\x6d\\xde\\x59\\xdf\\x6f\\x3c\\x20\\x6b\\xfd\\x9c\\xe1\\xf8\\xa8\\x00\\xc8\\x59\\x0a\\x40\\x21\\xd1\\x60\\xf6\\x6d\\x67\\x40\\xa3\\x69\\xae\\x83\\x56\\x17\\x53\\x8b\\x58\\x90\\x23\\x1f\\x13\\xc5\\x66\\x7b\\xaf\\x51\\x0a\\x60\\x6b\\xda\\xa8\\x4b\\x8d\\x10\\xee\\x60\\x15\\xe1\\x2a\\x4c\\x1e\\xc0\\xbd\\x04\\x21\\xa2\\x94\\xc5\\x1c\\xf6\\x3b\\x5d\\x1f\\x05\\x8e\\x11\\x53\\xdc\\x42\\x5d\\x10\\xce\\xe8\\xb1\\xb0\\x84\\xd6\\xc2\\x93\\x47\\xe9\\x6f\\x0f\\x31\\xb8\\x39\\x60\\x7d\\x07\\x8b\\x79\\xa9\\x0c\\xa3\\xd1\\xf0\\x63\\x80\\x7a\\x46\\x3b\\x7c\\x32\\xf4\\x5a\\x53\\x44\\x98\\xd7\\x1d\\x47\\xed\\xc3\\xb1\\x7a\\x4d\\xff\\x27\\xfe\\xdc\\xff\\xab\\x30\\x1f\\x34\\xf1\\xa6\\x4c\\x02\\x78\\xa5\\x35\\x89\\x34\\x9a\\x23\\x3a\\xf3\\x0b\\x1e\\xc1\\xae\\x41\\x0f\\x7b\\x16\\x30\\xc7\\x14\\x5c\\xa4\\x2c\\x96\\x63\\xf5\\x12\\xe8\\xa5\\x78\\x26\\x7d\\xc9\\x5e\\x83\\x28\\x9c\\x17\\x03\\x2e\\x09\\x78\\x2e\\x2f\\xe8\\xe1\\x6e\\xfb\\x87\\xf0\\x3c\\xa0\\x3b\\x11\\x95\\x61\\x4f\\x89\\x96\\x1c\\xa3\\x93\\x9d\\x3b\\xdf\\x73\\x72\\x21\\xa2\\x2d\\x7a\\x18\\xec\\x30\\xfc\\x12\\x6d\\x0c\\xa6\\x63\\xe8\\x8d\\x60\\x60\\xd0\\x4c\\x6a\\x44\\xe5\\x61\\x6e\\x55\\x6e\\x07\\xd6\\xd4\\xa8\\x47\\xf1\\x71\\x1c\\xf4\\x37\\x17\\x81\\x0c\\x70\\xaa\\x4b\\xe7\\x30\\x27\\x8b\\x3b\\xd6\\x55\\x5c\\x95\\x4d\\xc6\\xed\\xb0\\x9d\\xb0\\x8f\\x0e\\x21\\x18\\x03\\x59\\x62\\x80\\xf3\\xc7\\x86\\x8d\\x23\\x42\\xcc\\x23\\x08\\xea\\xae\\x4d\\xa1\\x91\\x35\\x14\\x66\\x4b\\x1d\\xb9\\x62\\xe9\\x9c\\x8a\\x8c\\xff\\xe5\\x79\\x31\\xf5\\xdf\\xcd\\xdb\\xc1\\xcb\\xb3\\x6c\\xe1\\xc8\\x42\\xe2\\xdd\\xde\\xad\\xfd\\x7e\\x7d\\x0a\\x50\\x48\\xcd\\xcb\\x96\\x1b\\x14\\xf3\\x5f\\x43\\x5e\\x73\\xa6\\x83\\xc8\\xce\\x25\\xc8\\x16\\x81\\x25\\x66\\xfd\\xf8\\x17\\xe0\\xd3\\x36\\xae\\x0b\\xd2\\x47\\x32\\x85\\x12\\xb2\\xa8\\x56\\x76\\x32\\xbf\\x20\\x55\\x3d\\x9b\\xd6\\xfe\\x15\\x7f\\x22\\x0f\\xfb\\x0b\\x46\\xeb\\xae\\x89\\xa7\\x04\\x59\\x72\\x8a\\x57\\xee\\xd1\\x79\\x62\\x56\\xf1\\xbd\\x50\\xb6\\xd5\\x47\\xea\\x3e\\x25\\xfa\\x59\\x13\\xd3\\x89\\xa2\\x25\\x83\\xe9\\x15\\xeb\\x49\\xde\\x35\\xa9\\x7b\\x5a\\xcc\\x52\\x1d\\xb0\\xd0\\x05\\xc2\\x95\\x75\\xe1\\x66\\x11\\xa7\\x55\\xf2\\x1a\\x3a\\x5a\\x82\\xa2\\x0a\\xa9\\x00\\xa7\\x07\\xce\\x36\\x82\\x54\\x92\\xc3\\xca\\x15\\x39\\x5f\\x17\\x00\\xb4\\xaf\\xab\\x94\\xda\\xa7\\xa0\\x2f\\x14\\x53\\xb1\\xf9\\xa6\\xbd\\x36\\xef\\xb2\\x04\\xd9\\x28\\xee\\x1f\\x4d\\xcc\\x86\\x0f\\x3a\\x85\\x9b\\xad\\xc0\\x06\\xfb\\x30\\x5f\\xa1\\x23\\xd4\\xc7\\x9b\\x23\\xa2\\x0e\\x32\\x29\\x5d\\x04\\x0a\\x7f\\x8f\\x6c\\xac\\xa2\\x5d\\x83\\xf7\\x1c\\x62\\xe3\\xaf\\x78\\x36\\xef\\x76\\xb9\\x3a\\x83\\xd3\\xc3\\xb4\\x93\\xaf\\x14\\x17\\x53\\xda\\x19\\xe4\\xcd\\xcb\\xa5\\x66\\x17\\x27\\x10\\x34\\xb4\\xf4\\xf3\\x94\\xc7\\xc6\\xb7\\xd7\\x96\\x66\\xf3\\xaf\\xb6\\x92\\x24\\x4f\\x06\\x1c\\x69\\xa8\\x88\\x1d\\x1b\\x52\\xb8\\x84\\x9f\\xb5\\x34\\x99\\x0a\\xc2\\x39\\x19\\x09\\x47\\x1e\\xbb\\xb7\\x28\\xe2\\x9c\\xd2\\x0f\\x42\\x23\\x54\\xc4\\x30\\x97\\x17\\xeb\\xff\\x3e\\xfd\\x18\\x33\\x37\\x08\\x06\\xd5\\xbf\\xb5\\x3c\\xa2\\xda\\x31\\x6d\\xac\\xb5\\x0a\\xb7\\xfb\\x73\\x96\\x73\\x23\\x5a\\x1d\\xc5\\x3a\\xa8\\x89\\x30\\x72\\xd5\\xb9\\x1c\\x9f\\x6d\\xb8\\x3f\\xc4\\xea\\x41\\xd1\\xee\\xf4\\x9a\\xc2\\x8a\\xfc\\x1c\\xed\\x8f\\x36\\x18\\x90\\xab\\x9f\\x77\\x9d\\x19\\x30\\x82\\x83\\x1c\\xb8\\xc4\\x2f\\xb2\\x79\\x2b\\xee\\x3b\\x26\\x29\\x6b\\x62\\x95\\xeb\\x78\\xa8\\xd8\\x53\\x11\\x76\\x61\\x62\\x4e\\x11\\xf7\\xf5\\x7a\\xfd\\x60\\x85\\xa7\\xb9\\x12\\x36\\x79\\xfd\\xac\\xa1\\xcf\\x2a\\x78\\xd3\\x80\\xbc\\x4c\\x36\\x0a\\xa7\\xc3\\xcb\\xfd\\xe0\\xc0\\x09\\x1f\\xe5\\x3e\\x22\\x19\\xc0\\x70\\xf2\\xf0\\x2f\\x14\\x83\"},\n{{0xcf,0x33,0xe7,0x97,0x4d,0x8f,0x0b,0xf8,0x99,0xac,0x5b,0x83,0x4c,0x7c,0xf9,0x64,0x79,0xce,0x1c,0xfd,0x45,0x3a,0xf0,0x7f,0x97,0x05,0x27,0xf3,0x6a,0xa8,0x5c,0x1f,},{0x57,0x8f,0x60,0x33,0x8b,0x1f,0x04,0x1a,0x97,0xd3,0x19,0xfe,0xcf,0xa3,0x0c,0xfa,0xed,0x36,0x93,0x03,0xcc,0x00,0xb3,0xec,0x8c,0x5c,0x99,0x04,0x11,0x58,0xe2,0x0c,},{0x97,0xa5,0xb6,0xd2,0x68,0xa5,0xb4,0x17,0x5f,0xb0,0x6f,0x1f,0x37,0xd0,0xa6,0x33,0x51,0x92,0x96,0xed,0xc3,0x00,0x11,0xc9,0x54,0xd8,0xf0,0xb9,0xbb,0xe2,0x64,0x18,0x00,0x39,0x6c,0x4b,0x35,0xd4,0xb0,0xd7,0xd2,0xa1,0xd1,0x7c,0xbb,0xeb,0xdc,0x55,0xa8,0x09,0x46,0x2d,0x6c,0xc1,0x9a,0x6f,0xad,0xbe,0x1b,0xd1,0xba,0xe8,0x8a,0x01,},\"\\xe8\\x13\\x14\\x4b\\xd1\\x16\\xf6\\xac\\x36\\x38\\x92\\x17\\xb5\\x17\\x1a\\x90\\x2f\\x06\\xb7\\xdd\\x7b\\x14\\x4d\\xf4\\xf9\\x09\\x15\\x53\\xc7\\xc7\\x83\\x57\\x53\\xa2\\x96\\xcb\\xb0\\xd7\\xfa\\xb9\\x9c\\xef\\x77\\xb6\\x1f\\x34\\xa0\\x4c\\x8a\\xf0\\x4e\\x7d\\x5d\\x1f\\x96\\x13\\x02\\xde\\x89\\xe2\\x00\\x5f\\x29\\x9f\\x5a\\x4a\\xa1\\x79\\x24\\x61\\x7d\\x00\\x66\\x93\\x93\\x77\\x45\\x53\\x9c\\x30\\x48\\xee\\x36\\xb8\\xc2\\x3a\\xfe\\xc0\\xaf\\x9f\\xea\\xa0\\x06\\x6c\\x8a\\xf8\\xe0\\xa7\\xf0\\x90\\x93\\x49\\x82\\x10\\xf6\\xd8\\xdc\\xc0\\xaa\\xad\\xa5\\x66\\x87\\x86\\x91\\x0f\\xf7\\xc5\\xb3\\x48\\xd4\\xcc\\xd6\\xee\\xef\\xfa\\x3a\\xcd\\x18\\x16\\xd9\\x01\\x1a\\x4c\\x40\\x25\\xf6\\xc2\\xfd\\x2c\\x02\\x0a\\x10\\x59\\x36\\x27\\x52\\x0d\\x4d\\xd9\\x9e\\x07\\xc6\\x2d\\x2d\\xbe\\xbe\\x84\\x13\\x9e\\x1c\\x7d\\x86\\x7c\\x09\\x35\\x74\\xfa\\x60\\x1e\\x4e\\xe3\\x07\\xac\\x92\\x6e\\x5d\\x36\\xb6\\x2d\\x7e\\xd8\\x4a\\x26\\x15\\x88\\xb7\\xe2\\x88\\x3c\\x79\\x26\\x61\\x2b\\x4c\\xc6\\x7e\\x2b\\xb7\\x25\\x44\\xa1\\x0d\\x6b\\x49\\x29\\xc8\\x8e\\xf6\\xc4\\x7c\\x26\\x25\\xd2\\xf6\\x81\\x6b\\xd7\\x3c\\x3b\\xae\\x89\\xd2\\xe0\\xc8\\x61\\x71\\xac\\x4b\\xd0\\x80\\xae\\x55\\x5d\\x62\\x74\\x0d\\x1d\\x2a\\x76\\x1c\\xed\\x86\\xdf\\xc3\\x28\\xec\\xc2\\x7e\\xe3\\xdb\\x6d\\x40\\x41\\x08\\xef\\x4e\\x0b\\x64\\x90\\x62\\x53\\xb4\\xc0\\xa7\\x71\\xad\\xef\\xed\\xc8\\xa2\\xc5\\xb5\\x3c\\x42\\x5a\\x70\\xcd\\x6f\\x63\\x95\\x6f\\x7a\\x0a\\x61\\x9f\\xdf\\xbf\\xd0\\x0a\\xa0\\x78\\x41\\x8e\\xb4\\x65\\x2f\\x8b\\xc6\\xf3\\xc2\\x53\\xbe\\xec\\x98\\x38\\xb7\\x7f\\x9c\\xbe\\x2e\\xf2\\xb8\\x05\\x5c\\x57\\x73\\x53\\x9e\\x35\\x6b\\xd8\\x19\\x26\\x06\\xec\\x10\\x1e\\x3f\\x60\\x58\\xb1\\xdd\\x08\\xa6\\x8f\\xdb\\xc5\\x49\\xdf\\xe6\\xb7\\x72\\x5d\\xc2\\x54\\x9e\\x8e\\x3f\\x90\\xdc\\x5b\\xe3\\xcc\\xfb\\x0a\\x38\\xba\\xf9\\x37\\x7c\\xb3\\xf6\\x50\\x1d\\x2e\\x15\\xcc\\xb3\\x55\\x6a\\x89\\x5c\\xcb\\x23\\xf0\\xb6\\xdf\\x9f\\xe5\\x93\\x11\\xcf\\xf5\\x53\\x74\\xc3\\xfb\\x3a\\x32\\x98\\x1c\\xa2\\x6a\\xb4\\x26\\xf3\\x66\\x3d\\x04\\xe3\\x16\\x7e\\x53\\xa5\\x37\\xb7\\x58\\x9a\\x9f\\xb7\\x36\\x79\\x09\\x0a\\x20\\x55\\x32\\xc1\\x32\\x90\\x66\\x34\\x33\\x4a\\x7e\\x87\\x49\\x79\\x3f\\x8c\\x59\\x3f\\x3f\\xd6\\x27\\x8c\\xe0\\x05\\x03\\x83\\x48\\x7f\\x3b\\x24\\x50\\x67\\xaf\\x94\\x88\\x1a\\xa1\\xae\\x96\\x8d\\x0c\\xae\\xba\\x5f\\xa5\\xc7\\xbe\\x5f\\x4e\\x4b\\x72\\x57\\x51\\x86\\x95\\xd8\\x9b\\xcc\\xde\\xc5\\x07\\xb9\\x67\\xb4\\xfd\\x64\\xb6\\x89\\x3b\\x3e\\xe7\\x80\\x3c\\x1d\\x36\\xea\\x8a\\x02\\xfc\\x42\\x6f\\x9a\\xfc\\x8e\\x9f\\x24\\x32\\x15\\x27\\xec\\x98\\x44\\xbc\\x3c\\x54\\xa0\\xf7\\x66\\x7e\\x03\\x43\\x00\\xbb\\xb4\\xfb\\x02\\x0f\\x6d\\x5b\\xb9\\x54\\xe7\\xb5\\xa3\\xa7\\x06\\xa4\\x93\\x9d\\xb3\\x3c\\x15\\x48\\x92\\x64\\x34\\x76\\xa2\\x91\\xd4\\x7d\\xc1\\xe6\\xf7\\x2c\\xe9\\x1d\\x13\\x6f\\x11\\xdb\\x26\\xb9\\xc9\\xba\\x73\\x6e\\x40\\xdf\\x0a\\x15\\xc1\\xa8\\x91\\x49\\x99\\x6b\\x25\\x1d\\xd9\\x88\\xb3\\x90\\x04\\xe6\\xef\\x41\\xbd\\xc0\\x61\\xdb\\x58\\x0b\\x7b\\x74\\xde\\x2a\\x65\\x18\\x10\\xbd\\x89\\x17\\x53\\xb9\\x73\\x86\\xd7\\xf8\\xcb\\xdb\\xb6\\xec\\x38\\x6f\\xa2\\xc3\\x42\\xf5\\xef\\x20\\xe6\\xe3\\xa8\\xbb\\x4d\\x51\\x49\\xa7\\xd4\\xde\\x12\\x24\\xdf\\xf1\\xd1\\x72\\xc8\\x75\\x70\\xf7\\x76\\xd5\\xef\\x45\\x95\\x9b\\xe0\\x93\\x8a\\xd7\\x9f\\x5d\\x33\\x95\\xcb\\x27\\x21\\x62\\x71\\x22\\x88\\x7b\\xd7\\xa8\\x98\\x3b\\x64\\x77\\x97\\xbd\\x41\\xd8\\x82\\x64\\x1c\\x81\\x43\\x1c\\xe8\\xd9\\xb3\\x06\\x7a\\xde\\xc4\\xcd\\xe9\\x26\\xc5\\x13\\x13\\xf0\\xcf\\x84\\xc5\\x29\\x25\\x62\\xdd\\x49\\x08\\x64\\x2d\\xd2\\x45\\x28\\x84\\x84\\xc5\\x56\\x8a\\x78\\x7d\\x0c\\xed\\x36\\xa3\\x52\\xf0\\x32\\xda\\x4f\\x7e\\x4d\\xe0\\x6b\\x11\\x47\\x3f\\x65\\x0e\\xec\\x65\\xdd\\xa9\\x96\\x39\\xaf\\x2d\\x42\\xd8\\x4e\\xe2\\x30\\xf4\\xf8\\x36\\x23\\xd9\\xc9\\xaa\\xa3\\xb1\\x6b\\xda\\x10\\xdd\\xaa\\xd2\\x5a\\xf5\\xc1\\xc1\\x0f\\x81\\xc8\\xc5\\x1c\\x81\\x1a\\x3a\\xa3\\xe3\\xdb\\x58\\xa7\\x02\\x5e\\x43\\x80\\xe2\\x85\\xda\\x47\\x4a\\x61\\xba\\x59\\x17\\x3f\\xf0\\x42\\xa4\\x6a\\x79\\xab\\x18\\x4b\\x07\\x01\\x08\\x41\\x6f\\x9d\\x61\\x58\\xcf\\x96\\xd0\\xe6\\xdb\\x44\\x76\\x14\\xa0\\xd9\\x08\\x9e\\xbb\\x6a\\xee\\x4e\\xf1\\x07\\xbe\\x45\\x93\\xd7\\x1e\\x79\\xf6\\x79\\x86\\x68\\xa7\\x40\\xae\\x4b\\xac\\x5a\\xc7\\x59\\x4e\\xcb\\xd5\\xdc\\x82\\xe7\\xd0\\xf9\\xcb\"},\n{{0x51,0xb1,0xad,0x0f,0xfc,0x21,0x49,0x7a,0x33,0xdb,0xdb,0x85,0xea,0x2b,0xc1,0xce,0x3d,0x0c,0x2d,0x95,0xd9,0x46,0x1a,0x39,0x09,0x73,0xfe,0xe3,0x77,0xfc,0x75,0xf4,},{0xba,0xd0,0x41,0x25,0x75,0xd3,0x80,0x13,0x01,0xed,0xee,0x6b,0xc0,0xf2,0x76,0xe7,0x87,0x35,0x7b,0x41,0x22,0xf5,0x2d,0xe9,0x81,0x88,0x58,0x51,0x88,0x42,0x49,0xcb,},{0xcf,0xb6,0x5b,0x6f,0xf0,0x37,0x7c,0xef,0x51,0x1f,0xd9,0x7b,0x90,0xc3,0xec,0xb8,0x08,0x33,0xf1,0x42,0xa7,0xcf,0x50,0x22,0xce,0xd3,0x0b,0x3f,0xb7,0x86,0x20,0x86,0xd0,0x13,0x39,0xb8,0x86,0x6a,0x23,0x8c,0xb0,0x70,0x27,0x6e,0x19,0x44,0xb5,0xfe,0x32,0xcc,0x40,0x99,0x47,0xcb,0x91,0xde,0xb1,0x43,0x2c,0x29,0x1b,0x60,0xfb,0x0d,},\"\\x78\\x82\\xe8\\x6e\\xf3\\x40\\x2f\\x6d\\xbc\\x65\\xcc\\xe8\\x31\\x5b\\x39\\x76\\x5f\\xaa\\x4b\\x1f\\xc8\\x76\\xfa\\xd5\\xf8\\x22\\x0c\\xb2\\x2a\\x7d\\xf2\\xe3\\x58\\x0e\\xab\\x3a\\x7e\\x8f\\xa7\\xfb\\xb6\\xb5\\x94\\x82\\xca\\x0e\\x36\\x4a\\x13\\x13\\x96\\xdf\\x79\\x2a\\x32\\x41\\xa0\\x60\\xe4\\x41\\x43\\xb6\\x76\\x74\\x93\\xc6\\xbf\\x75\\xf1\\x87\\xa9\\x64\\x3a\\xa1\\x1e\\x11\\xeb\\xa7\\xb0\\xa8\\x0f\\x0a\\x68\\xb9\\xf1\\xb7\\x9f\\x75\\xb6\\x6c\\xc5\\x9d\\x9d\\xa7\\x79\\x55\\xfd\\x7e\\x87\\x99\\xf9\\x9d\\x6e\\xb0\\x8f\\x90\\xd3\\x18\\xf4\\xef\\xcb\\xfe\\x71\\x15\\x9b\\x10\\xa8\\x3a\\xa5\\xfd\\x69\\xbb\\x75\\x33\\x6f\\x5d\\xf2\\x96\\xea\\x06\\x0a\\x42\\x6c\\x95\\x45\\xdf\\x94\\x0b\\xc1\\x45\\x4e\\xfc\\x1f\\x9d\\xc9\\x65\\xf1\\xf2\\x2d\\x94\\x73\\x03\\xfb\\x8e\\xc1\\x24\\x07\\xff\\xf6\\xb1\\xdb\\xe4\\x7e\\x34\\x21\\xc3\\x17\\x64\\xfd\\x90\\xc8\\x3a\\xc7\\x11\\xd1\\x99\\x26\\xe2\\x29\\xa0\\x64\\xc6\\x1f\\xe3\\x67\\x6a\\xf3\\x00\\xa1\\x71\\x6f\\xab\\xe4\\xe3\\x84\\x22\\x64\\xad\\xb3\\x2e\\x0d\\x9c\\x9f\\x5d\\x4a\\x65\\xd0\\xd7\\xb5\\xc3\\x77\\x0d\\x73\\x7e\\xe1\\x3c\\xbe\\xd2\\x1d\\x7a\\x1d\\xa3\\x6a\\xaf\\x7e\\xc0\\xf3\\x6f\\xcc\\x47\\x6f\\x65\\x96\\x81\\xe5\\x16\\x0a\\x5a\\x1f\\x49\\xe7\\x59\\xb9\\xd0\\xfc\\xd4\\xfd\\xb8\\x54\\xec\\xcd\\x99\\x17\\x2a\\x47\\xd2\\xc4\\xef\\xbe\\x0b\\x37\\x57\\x63\\x1d\\xf1\\xba\\xe1\\x75\\xf0\\xfa\\x74\\xdd\\x04\\x8b\\xb6\\xa5\\xfe\\xd8\\x43\\x02\\x84\\x34\\x9d\\xa3\\xd6\\x7d\\xf2\\xa6\\xf7\\xe8\\x26\\x9b\\xc7\\x9f\\xb2\\xc5\\xd5\\xed\\x60\\x84\\xe9\\x07\\x6f\\x45\\x5a\\xb6\\x38\\x91\\x90\\x46\\x36\\x9a\\x44\\x6d\\x57\\xfc\\xad\\xa7\\x01\\x1c\\xc7\\x71\\xbf\\x6d\\x87\\x4a\\x8e\\x5d\\x23\\xc6\\x87\\x74\\x7d\\xe4\\x1d\\xd0\\x4b\\xff\\xc7\\x17\\xd6\\x12\\x81\\x83\\x84\\x6e\\xb5\\x94\\xb3\\xcb\\x1c\\x1a\\x8a\\xa0\\x4f\\x0d\\x7e\\xba\\x53\\xaf\\x39\\xcb\\x1d\\x4e\\x6f\\xec\\xf3\\x11\\x3b\\xd8\\x42\\x24\\x16\\xf4\\xc4\\x40\\x37\\xae\\xee\\x9e\\x0f\\xdc\\x51\\x7c\\x48\\x73\\x1f\\xd0\\x4e\\xe9\\xc9\\x9f\\x5d\\xbc\\xa3\\xd5\\x74\\x50\\x9d\\x7b\\xaf\\x32\\x88\\xf2\\xc2\\x30\\xa0\\x2d\\x17\\x03\\xbd\\xb1\\x61\\x1c\\xde\\x2a\\x76\\x6d\\xac\\x19\\x3d\\xe1\\x67\\x44\\x3d\\x20\\x09\\x0d\\xc3\\x4d\\x29\\x27\\x7a\\x86\\xb1\\xe9\\x98\\xb2\\x45\\x64\\x51\\x17\\xe5\\x11\\x1f\\x12\\xf1\\x46\\x06\\xc5\\x54\\x46\\xdd\\x91\\x2d\\x34\\x75\\xc1\\x98\\x76\\xe1\\x9a\\xc5\\x36\\xd3\\x17\\x87\\x6c\\x4b\\x0a\\x2e\\x0f\\x98\\x61\\x61\\x29\\xa5\\x68\\x37\\x32\\xa4\\x23\\x17\\xc5\\xe8\\x09\\xdc\\xa9\\x56\\xb2\\xab\\xb4\\x84\\xad\\xa8\\x10\\xa1\\x5c\\x81\\xcc\\x85\\x62\\xb5\\x55\\xda\\x94\\x58\\xf9\\xb4\\x43\\x38\\x49\\x02\\x30\\xc7\\x40\\x4f\\x3d\\x48\\x61\\x1f\\x84\\x12\\x7e\\x73\\xe2\\x77\\xd8\\x8c\\x62\\x21\\x2d\\x2a\\x3a\\x35\\x1f\\xc6\\x76\\x65\\xb1\\x8d\\x77\\x21\\x62\\x30\\x63\\x2c\\xbc\\x78\\x12\\x88\\xe1\\x5c\\xeb\\xf3\\xec\\x33\\xa7\\x20\\x5e\\xb2\\x2b\\x9a\\xbe\\x4c\\xdb\\xc7\\xdd\\xba\\xaa\\x53\\x64\\x08\\x75\\xeb\\x76\\x3f\\x52\\x2c\\x36\\xcf\\xff\\x2e\\xb2\\x3e\\xe5\\x86\\xd7\\x75\\x28\\x62\\x59\\xfa\\x94\\xa4\\x4f\\xa7\\xec\\x01\\x50\\x96\\xa2\\xa4\\x46\\xb6\\x73\\x2b\\x80\\x02\\x42\\x67\\xfe\\x3d\\x5d\\x39\\xd1\\xc4\\x85\\x09\\xb3\\xec\\xaa\\x2e\\x24\\xe5\\x4d\\xe4\\xd6\\x1c\\x09\\x7b\\x70\\xf7\\x53\\xb5\\xaf\\x9a\\x6d\\xb6\\xf9\\x75\\xd2\\x5f\\x4f\\x83\\xd0\\x6f\\x87\\x9e\\x17\\xef\\x7c\\x50\\x9a\\x54\\x14\\x44\\xba\\x3e\\xb6\\x86\\x78\\x38\\x09\\x0e\\x22\\xda\\xfd\\xbb\\x0e\\xb3\\xb0\\x56\\x5b\\xe1\\x57\\x9c\\xee\\xcd\\xed\\x20\\xf5\\x44\\x25\\x6c\\x7c\\x4e\\xde\\x3b\\x62\\x84\\x3c\\x65\\xb0\\x46\\x6b\\xe6\\xb7\\xe2\\x73\\x05\\xb9\\x63\\xca\\x91\\x4e\\x3b\\x7d\\x21\\x73\\x61\\x18\\xed\\xb3\\xd6\\x58\\xd9\\xd7\\x6f\\x50\\x9d\\xb3\\xb9\\xca\\x2e\\xae\\x28\\x96\\x4a\\x4b\\x3b\\x3c\\x38\\x4a\\x81\\xa4\\x89\\x0e\\xe9\\x6f\\xbe\\x93\\x4a\\x6f\\x2a\\xec\\x8e\\xeb\\x6c\\xfe\\x59\\xac\\x9d\\x3b\\xbc\\x16\\x46\\xba\\x32\\xa1\\x14\\x2f\\xee\\x59\\xfe\\xd6\\xfb\\x7b\\xbc\\x04\\x98\\xcc\\x27\\xde\\xad\\x41\\x3b\\x7b\\x43\\x51\\xec\\x20\\x63\\x43\\xc0\\xab\\x89\\xfc\\xf8\\x72\\x43\\xb1\\xab\\x45\\x0e\\x58\\xff\\x11\\xa1\\x14\\x0a\\x38\\x3f\\x19\\x6a\\xa3\\x97\\x6c\\xe1\\x7c\\xf3\\x45\\x30\\xf0\\x49\\xa1\\xde\\x90\\xe3\\x17\\x53\\xcd\\x85\\xe7\\xf1\\xfd\\x5c\\xf2\\x04\\x26\\xc9\\x37\\x9f\\xeb\\x8c\\x31\\xb4\\xbf\\xec\\x35\\xea\\x5a\\x78\\x95\\x3d\\x75\\xc5\\xcf\"},\n{{0xfa,0x2f,0x46,0x1c,0xe8,0xc7,0x12,0x62,0x18,0xc4,0x7c,0x91,0x56,0x9e,0x87,0x99,0x79,0x7c,0x83,0x36,0x8f,0xc8,0x42,0xb6,0xe1,0xc2,0x2f,0xd5,0x2a,0xec,0x70,0xbf,},{0x6b,0x89,0xb2,0x3f,0x1e,0x11,0xa7,0x5a,0x53,0xf9,0x92,0xf6,0xca,0x57,0x75,0x00,0x8c,0x6e,0x9e,0x7e,0x49,0xc0,0xd8,0x51,0x0b,0x0e,0x83,0x69,0xb7,0xa2,0x0b,0xcc,},{0x84,0xf7,0x9d,0x9e,0x8f,0x30,0xe5,0xbb,0x63,0x62,0x23,0x97,0x14,0x55,0x6b,0x04,0x73,0x6f,0xa4,0x44,0x65,0xca,0xba,0xad,0x23,0xbe,0xaf,0x5a,0x99,0xfc,0x45,0x1a,0xd4,0xae,0x5a,0x18,0xc7,0xf6,0xf9,0x64,0xfa,0x41,0x03,0x92,0x16,0x01,0x8e,0xc5,0xa2,0xac,0xca,0xe1,0x07,0x5a,0x6b,0xb3,0xa6,0xec,0xbc,0x1f,0xca,0x02,0xb9,0x04,},\"\\x79\\x9b\\x39\\x80\\x2a\\x18\\x27\\xe4\\x5c\\x41\\x12\\xfe\\xe0\\x26\\x03\\x4c\\x0e\\x59\\x8a\\xff\\xce\\x2c\\x55\\x0c\\x19\\x3f\\xee\\x73\\xf1\\xdf\\x8c\\x30\\xc8\\xd3\\x87\\x33\\x40\\x08\\x8c\\xe8\\x59\\xde\\x34\\x71\\xe9\\xd0\\x57\\x68\\x6c\\x82\\x9b\\x54\\x08\\x79\\x5e\\x08\\xb3\\xdc\\x7a\\xa3\\xb6\\x37\\xc7\\xde\\x9d\\x21\\x72\\xad\\x03\\x33\\xc1\\xbe\\xa8\\x61\\xa6\\x23\\x2f\\x47\\xf0\\x5a\\x10\\xbf\\x5d\\xf8\\x08\\x15\\xa2\\x71\\x25\\x6e\\x37\\xe8\\x08\\xa0\\xe6\\x2f\\x1f\\x07\\xd9\\xe1\\x0e\\xbb\\x94\\x7d\\x3e\\xfa\\xbf\\x8a\\x28\\xfa\\x9d\\xcc\\xd9\\xa1\\xd5\\x99\\xf5\\xfd\\x61\\x65\\x50\\x8e\\xfd\\x67\\x9c\\xf3\\x56\\x01\\x50\\x58\\xbf\\x4b\\x34\\x11\\x8f\\x83\\xaa\\x3e\\x5b\\xc2\\xce\\x19\\xec\\xa8\\x4f\\x71\\x83\\x98\\xad\\xbc\\x0a\\x52\\x76\\xcf\\x9d\\x8c\\xaf\\xfc\\x27\\xe3\\xe6\\xab\\xbe\\x34\\x5b\\x0e\\x9e\\xcf\\x89\\xc6\\x77\\x1b\\x0e\\x75\\xd4\\x08\\xba\\x2f\\xbb\\x90\\xfc\\xfd\\x70\\xc5\\x3f\\x2e\\x4d\\x52\\xba\\x54\\xd9\\x78\\x4c\\xf7\\x1c\\x34\\x9e\\xf6\\xf1\\x4a\\xe4\\x97\\x0d\\xef\\x6e\\xfb\\x5f\\x30\\xe9\\x84\\xd6\\x01\\x6a\\x19\\x6d\\xea\\xec\\x7e\\x04\\xb4\\x76\\x19\\xc4\\x8b\\xf4\\x9d\\xc0\\x2f\\x7f\\xef\\x3e\\x13\\xb7\\x56\\x17\\x4e\\x90\\xd0\\x5f\\xcb\\xdd\\x5e\\x13\\xf0\\xe4\\x34\\xef\\xd5\\x42\\x1b\\x09\\x1d\\x51\\x79\\x00\\xed\\x0d\\x57\\x85\\x96\\x88\\x62\\xb4\\xbf\\xe5\\x09\\x3a\\xb6\\x72\\x17\\x18\\x0d\\x97\\x55\\x4c\\xcd\\x9c\\xc3\\x14\\x29\\x32\\x6c\\xab\\x42\\xf3\\xf8\\x39\\x80\\x60\\xc1\\x9d\\xb4\\x88\\xb5\\xd1\\xc8\\x0b\\x29\\x09\\x0a\\xfd\\x1c\\x6b\\xac\\x36\\x42\\x26\\x48\\x00\\x21\\x1b\\xc2\\x78\\xfc\\xb9\\x9d\\xae\\x9d\\xbf\\x49\\xda\\xf1\\xb2\\x4a\\xb5\\x69\\xdc\\xbb\\x87\\xd4\\xd3\\x54\\x73\\x35\\xe3\\x5d\\xb9\\x84\\x00\\xcd\\xfc\\xe6\\x79\\x06\\x82\\xe9\\x36\\x00\\x22\\x0e\\xc4\\x99\\x24\\x5f\\xa4\\xee\\x15\\xd8\\x43\\x83\\x1b\\x56\\xcc\\x26\\x41\\x80\\x25\\xbf\\x87\\x00\\x16\\x05\\xc6\\x69\\x1c\\xa6\\xbd\\x40\\xa4\\xe2\\x48\\xc3\\x09\\x80\\x1b\\x76\\xa7\\x95\\xed\\xe8\\xad\\x53\\x08\\xbc\\xb6\\xd1\\x75\\x4a\\xb3\\x37\\x1f\\x00\\x03\\xbb\\x8c\\x4e\\x4e\\x47\\x19\\x54\\xe2\\x8b\\x1e\\x98\\x66\\x37\\x9f\\x82\\xe1\\xfb\\xac\\xb7\\x9d\\x50\\xad\\xdd\\xad\\x5b\\x97\\x78\\xb5\\x58\\xcd\\xdb\\xb0\\x03\\x8a\\x5f\\xf3\\xd5\\xc9\\x55\\x7b\\x96\\x5d\\xe3\\xa7\\x08\\x2c\\x45\\xa8\\xec\\xf3\\xe7\\x72\\x1e\\xb6\\x90\\xb6\\xc7\\x1f\\x3d\\x89\\x75\\xd5\\x30\\x0f\\x67\\xc4\\xdc\\x4a\\x73\\x68\\x46\\xe4\\xcc\\xd2\\x6f\\x93\\x46\\x3d\\x5b\\xc6\\xf4\\x6e\\xdc\\x48\\x86\\x64\\xbe\\x96\\x96\\xbe\\x12\\xb0\\x2d\\xd1\\x04\\xd1\\x0c\\xc6\\xb1\\xd8\\x2e\\x81\\x17\\x81\\x12\\x14\\xa6\\x48\\x7d\\x17\\x36\\x7e\\x39\\x5a\\xde\\x2e\\xf6\\xb2\\x6a\\x17\\x83\\xa7\\xe2\\xf2\\x45\\x21\\x3b\\xc0\\x3a\\x75\\x5d\\xf3\\xee\\x8e\\xf9\\xf1\\xef\\xf9\\x72\\xc6\\x91\\x90\\x65\\xcb\\x7b\\x75\\x66\\x78\\xd4\\xdd\\xfd\\x19\\x3e\\xdd\\xc0\\xb4\\x2e\\x86\\x89\\x61\\x36\\x43\\x14\\x6d\\x74\\x28\\xca\\x37\\xbf\\x31\\xbd\\xf1\\x4e\\x31\\x86\\x78\\x58\\xf3\\x9d\\x23\\x23\\x70\\x9e\\xb3\\xb7\\xd7\\xf4\\xe3\\x97\\x02\\x23\\x78\\x42\\x4b\\xde\\xe9\\xbc\\xb7\\x4e\\x9d\\x5d\\xfd\\x37\\x1f\\x47\\x34\\x99\\x8f\\xc1\\x8d\\xf4\\xcd\\xfb\\x4b\\x5c\\x21\\xc2\\xe5\\x0f\\x8d\\x6c\\x15\\xbc\\x14\\xbf\\x4f\\xda\\x6c\\xeb\\x9d\\x80\\x82\\xca\\xe4\\x32\\xdf\\xc9\\x8b\\xfb\\x3e\\xcd\\x16\\xb8\\xd7\\x4f\\x83\\x0b\\x64\\x2b\\x04\\x28\\x75\\xe9\\x21\\xb0\\x54\\xbd\\x1a\\xaa\\x58\\x1f\\x60\\xd7\\x18\\xdf\\x66\\x9f\\x56\\xdc\\x2f\\x10\\xd4\\x78\\x99\\x77\\x22\\x16\\x2e\\x83\\x94\\x0e\\x61\\xa1\\xb6\\xe4\\x2d\\xf2\\xa4\\xa3\\xa7\\xcb\\xcd\\xd6\\x11\\xce\\x96\\xcb\\xcf\\xb5\\xa9\\x5c\\xc4\\x73\\x23\\x1c\\xa1\\x3c\\x06\\x09\\xd0\\xce\\x1a\\xe5\\xdd\\xb5\\x46\\x6d\\x6d\\x65\\xee\\xfa\\xd9\\xda\\xf2\\xa3\\x69\\x01\\xbc\\xc9\\x45\\x84\\x7d\\xa1\\xed\\x6e\\x2e\\x24\\x0e\\x84\\x8b\\x23\\x1b\\x7d\\x0e\\x1a\\xcd\\x06\\x54\\x3e\\xc9\\x3e\\x76\\x8e\\x59\\x98\\x5d\\x7e\\x96\\xc8\\xc3\\x1f\\xcd\\x12\\x10\\xf0\\x96\\x42\\x71\\xe2\\x18\\x77\\x52\\x5c\\xb1\\x34\\xbc\\x35\\x36\\x25\\x7d\\xbb\\x11\\xd3\\x0a\\x3c\\x4f\\x94\\x9f\\xb8\\x2a\\xe0\\xc3\\x1c\\xcd\\xfe\\x41\\x94\\x32\\x51\\xe5\\x0a\\xa4\\x35\\x53\\x92\\xac\\x30\\x9e\\xf6\\x0f\\xc1\\x74\\x32\\xa2\\xbe\\x4b\\xdb\\x2f\\xcb\\x28\\x60\\x7c\\xc4\\x5a\\x52\\xb6\\x00\\x16\\xbb\\x1d\\x2e\\x23\\x97\\x2f\\xf2\\xc2\\xa2\\x47\\xd7\\x25\\x58\\x5b\\x1e\\xf2\\xb1\\x5f\"},\n{{0x1b,0xe2,0x94,0x9d,0x51,0xe7,0x20,0x81,0x75,0x82,0x62,0x13,0xee,0x6a,0xe3,0xc0,0x91,0x17,0x27,0x42,0xe8,0x8c,0xaa,0x02,0xed,0x0f,0x31,0x3e,0xcb,0xe5,0xd9,0x10,},{0xd7,0xbf,0x47,0x48,0xd6,0xdd,0xed,0x5b,0x57,0xa2,0xab,0xf7,0x97,0xfa,0xcc,0x56,0x0b,0x48,0x56,0x3d,0xfd,0x9d,0xcf,0xf4,0xbe,0x52,0x2c,0x71,0x7a,0x6c,0xfd,0xa9,},{0xf4,0x1f,0x2e,0xf6,0x59,0x5f,0x17,0x66,0x0b,0xb2,0xfe,0x93,0xe5,0x1f,0xc6,0xfa,0x9c,0x31,0xda,0xdc,0x9d,0xb9,0x0c,0x3f,0x46,0x60,0x7a,0x7f,0xb4,0x80,0x0b,0xb7,0x5a,0xd9,0x63,0x25,0xdc,0x7e,0xab,0x78,0x24,0x72,0xb0,0x4d,0xa6,0xd8,0xe6,0xfe,0x64,0x65,0x5d,0xea,0x55,0x1f,0xbd,0x50,0x49,0xe8,0x76,0xce,0x5a,0x40,0x5f,0x02,},\"\\x04\\x5e\\x2b\\x0e\\xc7\\xbb\\x20\\x3a\\x49\\xbd\\xcb\\xa9\\x41\\xe2\\xb7\\x3c\\x23\\xc1\\xfe\\x59\\xa1\\x7d\\x21\\xa0\\x12\\x4e\\xa2\\x4b\\x33\\x7f\\x92\\xab\\x9c\\x92\\x3a\\x20\\x57\\x6b\\x62\\xd5\\xd0\\xf6\\x24\\xe7\\x93\\x2c\\x11\\x5b\\x54\\x74\\xe0\\xa4\\x6a\\x4d\\xc9\\xec\\x51\\xf6\\xa0\\xce\\x8d\\x54\\x74\\x4d\\x1d\\x52\\x09\\x33\\x20\\xe3\\x9b\\xe2\\x03\\xf7\\x4a\\x0f\\x5d\\xfa\\xc5\\x2c\\xf0\\xf9\\x95\\xc6\\x6d\\xf2\\x91\\x4b\\x68\\xad\\x87\\x1f\\xbe\\x81\\x52\\x5a\\xd2\\xd8\\x8a\\xc6\\x99\\x33\\xa7\\x5a\\xea\\x74\\xac\\xe4\\xe3\\x63\\x43\\xdd\\xc0\\x6d\\x32\\x08\\xf1\\x6d\\x80\\x5f\\x5d\\xd7\\x86\\xb4\\xda\\xaa\\x16\\x67\\x48\\xcf\\xee\\xc5\\x71\\x4c\\x85\\xc1\\x04\\x78\\xb5\\x97\\xac\\x7f\\x6a\\xe2\\xc9\\x88\\x91\\xe3\\x8f\\xd4\\x14\\xaa\\x81\\x1b\\x76\\x21\\xd8\\x05\\xeb\\x8f\\xcc\\x46\\xcf\\x4d\\x56\\x8a\\x8a\\x92\\x58\\x7c\\xbb\\xc1\\xae\\xcc\\x12\\xf1\\x0d\\x90\\xac\\x1e\\x01\\xae\\x98\\x6d\\x14\\xfe\\x82\\x95\\x1c\\x68\\x2c\\xea\\xc8\\xc9\\x25\\xfc\\x66\\x54\\xd8\\x38\\xac\\x93\\x53\\xae\\x2f\\x93\\xf3\\xc8\\x8b\\xf7\\xb8\\x2c\\xbc\\x43\\xb1\\xe4\\x9e\\x5c\\xeb\\xfb\\x19\\x49\\xad\\xe4\\xb2\\x2e\\x4b\\xcf\\x1b\\x40\\x0c\\x0a\\x8f\\xa8\\xa6\\xfe\\x76\\x70\\xf6\\x9f\\xc3\\xfa\\xec\\xd4\\x80\\x5b\\x8c\\x95\\x4c\\x01\\xa5\\x40\\xd1\\xa1\\xe7\\x88\\x43\\x6e\\xae\\x07\\x3a\\xe9\\x56\\xda\\xe3\\x17\\x69\\x05\\xa8\\xf0\\xa3\\xc6\\x0f\\xd9\\x80\\xda\\xb4\\x19\\xd4\\x1e\\xc0\\x6e\\x52\\x73\\xfb\\xb1\\x3d\\xb9\\x38\\x1f\\x89\\xb6\\x63\\xcc\\xc4\\xbd\\x75\\x3f\\xd9\\x0f\\x14\\xa7\\x7b\\x3d\\x81\\xc4\\x5d\\xd3\\x56\\x1c\\xd1\\xfa\\x0e\\x94\\xd2\\x34\\xce\\xf9\\xd7\\x85\\x9a\\x2e\\xc9\\x42\\xbf\\xc1\\x88\\x49\\xd7\\xf2\\xad\\xa3\\xa5\\xd6\\x57\\xbc\\x19\\x3d\\x2e\\x14\\x91\\x68\\x2f\\x16\\x65\\xa5\\x34\\xb1\\xac\\x20\\x83\\xb7\\x38\\xbe\\x8f\\x9e\\x96\\x3f\\x59\\x41\\xed\\x48\\x3c\\x6a\\xcc\\x82\\xe9\\x59\\xb8\\x1b\\x8a\\xf0\\x2f\\x47\\x1c\\x08\\xf5\\xf8\\xb1\\x2e\\x10\\xe0\\x08\\x19\\x28\\x98\\xa4\\x45\\x02\\x02\\xaf\\x73\\x15\\x92\\xe7\\x4e\\xfe\\x2a\\x94\\x8e\\x51\\xd0\\x6e\\x44\\xde\\x9b\\x95\\x6b\\x7b\\xc9\\xa6\\x9b\\x6e\\x74\\x68\\x7a\\xb2\\x06\\xde\\xc4\\xd3\\x5b\\x31\\x73\\xfb\\xc4\\x38\\x82\\x9d\\x50\\x64\\xbf\\xbc\\xf7\\x43\\xc1\\xe2\\xd4\\x6f\\x62\\x8f\\x2e\\x51\\xc6\\x26\\xd8\\xe4\\x16\\xd7\\xbe\\x6e\\x55\\x5a\\x24\\x96\\x91\\xab\\xb1\\x67\\xf1\\xd9\\x2f\\x4f\\xa3\\x39\\x2f\\xde\\x24\\xe9\\x93\\xce\\x7f\\xf5\\xc1\\xb8\\xe1\\x57\\x7a\\x7c\\x0e\\x73\\x02\\x5c\\xc6\\xfc\\xd7\\x27\\xa8\\x2e\\xf0\\xc1\\x29\\xe9\\x1e\\x55\\x33\\xe0\\x21\\xa3\\xcd\\xbb\\x99\\xd5\\x4b\\xf7\\xcd\\xcd\\x3f\\xf1\\x19\\x15\\x4f\\x3f\\xad\\x92\\x42\\xb6\\xed\\x35\\x0d\\x10\\x37\\x2c\\x97\\x6f\\xf3\\xa4\\x37\\xd0\\x97\\x86\\x7d\\x9b\\xfb\\xa9\\x1d\\x84\\xbd\\xa5\\x5a\\x6b\\xcd\\x6e\\x36\\x41\\xb2\\x13\\xa2\\x18\\xb3\\x04\\x15\\x89\\xc5\\x5a\\xfb\\xb3\\x44\\xde\\x6e\\x97\\xd8\\xc3\\x5b\\x5c\\x86\\xcf\\x3b\\xe0\\x63\\xf9\\x01\\xff\\xee\\xa8\\xcc\\x91\\x06\\x99\\x67\\xd2\\x34\\x60\\x35\\xa9\\x1e\\xb5\\x70\\x6a\\x3b\\x53\\xf6\\xd1\\xc3\\x4d\\x4d\\x21\\x16\\x70\\x6b\\x65\\xc2\\x98\\xec\\x57\\xde\\x82\\xab\\xc4\\x00\\x3c\\xe8\\xcc\\x5e\\x0b\\x88\\xff\\x71\\x0d\\xda\\x1d\\xce\\xf6\\xf1\\x54\\x27\\x71\\x06\\xb8\\x3e\\xb4\\x6c\\x04\\x5b\\x08\\x2d\\x11\\x3b\\x36\\x1d\\x6a\\x62\\x58\\x08\\xc9\\x13\\x05\\x84\\xdf\\xc9\\x67\\x07\\xef\\x89\\x55\\x90\\x7b\\xaa\\x61\\xcf\\x88\\xc6\\x6b\\x6d\\x1f\\x60\\x58\\x11\\x19\\xcb\\x62\\x17\\xa8\\x52\\x15\\x73\\x36\\x17\\x8c\\x68\\x5e\\x6e\\xd4\\x85\\x26\\xed\\x5c\\x4e\\x3b\\x79\\x67\\xd5\\x1f\\x99\\xdf\\x68\\x76\\xa1\\xac\\xfb\\x84\\x5c\\x57\\x1b\\x89\\x86\\x56\\xe5\\xe3\\xbc\\x73\\x98\\x0b\\x9b\\xed\\x11\\x98\\x86\\x63\\x59\\xc9\\xe9\\xb1\\xef\\xa9\\x15\\xf8\\x10\\xd1\\xef\\x8a\\xd6\\xcb\\x3f\\xc2\\x1f\\xbf\\xe6\\x54\\x30\\x6d\\xe6\\xca\\x13\\xa3\\xa6\\xa4\\x8e\\x7a\\x13\\xed\\x87\\x46\\xac\\xbd\\x07\\xf4\\x8e\\xb0\\x0c\\x36\\x37\\x4b\\x1e\\xb4\\xf3\\xf0\\x1c\\x19\\xe2\\xe8\\xd3\\x7e\\x9f\\xc0\\x64\\xb3\\x3c\\x0d\\x66\\x9b\\xba\\x55\\x4d\\xdc\\x68\\x21\\xa7\\x7b\\x40\\x89\\xca\\xbd\\xca\\xfc\\x97\\xf6\\x0e\\x60\\x50\\xbc\\xa4\\x44\\xae\\x8c\\xfc\\x44\\xd9\\x3c\\x40\\xef\\x53\\x18\\xbe\\xe6\\xf8\\xcf\\x0c\\x06\\x7b\\x85\\xcd\\xdd\\xc4\\x59\\x74\\xa4\\xea\\xcf\\xc3\\xef\\x51\\x31\\x5b\\xa0\\xf3\\xf6\\x29\\x68\\xc7\\x00\\x3a\\x7f\\xf4\\x44\\x61\\x24\\x00\\xb1\\x59\"},\n{{0x3b,0x6b,0xa6,0xd5,0xcc,0x9c,0xd6,0x24,0x1d,0x8b,0x00,0x97,0xa3,0x72,0x2e,0x4d,0x06,0x6f,0xea,0x3d,0x56,0x0a,0xea,0xb4,0x67,0x3e,0x86,0xf1,0xf8,0xec,0x60,0x26,},{0x8c,0xa6,0x52,0x07,0x17,0xcf,0x36,0x3c,0x4c,0xef,0xfa,0x76,0x32,0x8a,0x0a,0x16,0x6f,0xf8,0x3e,0x45,0xca,0x7d,0x19,0x1c,0xc8,0xef,0x6c,0xa6,0xe5,0x24,0x33,0x67,},{0x78,0x8c,0x9f,0x45,0x54,0xdd,0xba,0x5c,0x7d,0x64,0xba,0x75,0x9e,0xc4,0x56,0x94,0xec,0x79,0xfb,0x85,0xe8,0x23,0x68,0xa0,0x74,0xbd,0xd8,0xdf,0x34,0x42,0x13,0xa5,0x6d,0xd0,0x9f,0x33,0x4c,0xd9,0xac,0xb9,0x41,0xbe,0x28,0x3d,0x98,0xc4,0xb1,0x5d,0xcf,0xec,0xd1,0x4e,0x93,0xf6,0xa2,0xe3,0xcb,0x0c,0x1a,0xa2,0xde,0xe7,0xd9,0x0b,},\"\\x36\\xde\\x93\\x0c\\xc8\\xe1\\x88\\x60\\x83\\x6a\\x0c\\x82\\x9d\\x89\\xe9\\x63\\xa5\\x8b\\xdd\\x9c\\x6b\\x6e\\xf5\\xbc\\x61\\xf7\\x59\\x92\\xd2\\x07\\x52\\x42\\xdc\\xa2\\x3e\\x28\\xde\\x20\\x5a\\x33\\xdf\\xea\\x86\\x1f\\xc4\\x4a\\x32\\x62\\x8e\\x8e\\x7c\\xdd\\x3e\\xd7\\xff\\x49\\xea\\x6a\\x70\\x97\\xe0\\x09\\x0c\\xfd\\x9f\\xf5\\xec\\xab\\x1d\\xe8\\x22\\xfc\\x0a\\x4c\\x37\\x76\\xdd\\x56\\xc1\\x91\\x92\\x04\\x51\\x6a\\x94\\xce\\xc5\\x63\\x8d\\xa1\\xd9\\x9e\\x52\\xb8\\x66\\xf5\\xec\\x41\\x62\\xa9\\x12\\xed\\xb4\\x1c\\x1e\\x92\\xed\\xfc\\x35\\x3f\\x67\\x05\\xe1\\xc1\\x2c\\xd4\\x1c\\xb6\\x2d\\xed\\x4a\\xd8\\x15\\x79\\x40\\x05\\x9b\\xfc\\xf5\\x07\\x19\\xd3\\xf2\\xad\\x00\\x84\\x85\\x40\\xce\\x89\\xf3\\xf9\\xaf\\xa6\\x10\\xcc\\xba\\x5e\\xcc\\x37\\xe3\\xe2\\xc1\\x53\\x4f\\xcb\\x38\\xfc\\xd3\\x9a\\x2d\\x14\\xd5\\xb5\\xda\\x6f\\xea\\x24\\xe0\\x06\\x65\\x4e\\x30\\x90\\x47\\xa2\\x9c\\xad\\x0a\\xe4\\xda\\x8e\\x70\\x8f\\x97\\xa1\\x8c\\xad\\x5f\\xbd\\xc9\\xac\\x84\\x40\\x0c\\x53\\x2c\\xed\\x54\\x88\\x86\\x53\\x9e\\xdd\\x6c\\x54\\x10\\x74\\x79\\x0a\\xe4\\x50\\x2f\\xdf\\xe9\\xf3\\x27\\x3a\\x87\\x6a\\x21\\x86\\x23\\xa2\\x57\\x06\\xa1\\x52\\x5e\\x67\\xe5\\x7a\\x16\\xd2\\x2c\\x21\\xb6\\xa4\\x5e\\x23\\x84\\xe2\\x87\\xac\\x44\\x52\\xae\\xc4\\xe0\\x63\\x05\\x6b\\x4c\\x17\\x8a\\xb0\\xe5\\xb2\\xa5\\xba\\xd3\\xf4\\x63\\xc4\\x72\\xc4\\xea\\x1f\\x9c\\x1a\\x66\\xe5\\x27\\x04\\x73\\xa8\\x35\\x09\\x4e\\x8f\\x0e\\xef\\x68\\x0c\\xd7\\xb2\\x0d\\x0e\\x70\\xf4\\xd6\\xc9\\x58\\xfe\\xe0\\x8a\\x93\\x60\\xaa\\x60\\x66\\x88\\x8f\\x4d\\xd7\\xce\\x5e\\xc2\\x22\\x59\\xfa\\x0b\\x53\\xfe\\x92\\x71\\xc0\\x83\\xc6\\xfc\\xdb\\x72\\x83\\xb0\\x90\\x61\\x08\\x8c\\x52\\xf7\\x1b\\xfd\\xd2\\x77\\x7c\\xe0\\x80\\x1f\\x41\\xa6\\xc4\\xce\\x90\\xef\\x13\\x1d\\xe1\\xe1\\x83\\xcb\\x89\\x49\\xce\\x32\\x3c\\x9e\\xb1\\x3a\\x4b\\x0c\\xac\\xf9\\x9d\\xef\\xdf\\xdb\\x68\\xd5\\xed\\x1f\\x68\\x91\\xb4\\x8e\\x21\\x04\\x76\\x68\\xd6\\x9d\\xe8\\xa8\\x0f\\x8e\\x56\\x34\\xde\\xd0\\x87\\x36\\xa4\\xfb\\x54\\x10\\xcd\\xea\\x9c\\x72\\x59\\x6e\\x36\\xdf\\x68\\x41\\xf2\\xee\\xa4\\x68\\x50\\xc8\\x74\\x73\\xc8\\x95\\x54\\x02\\x05\\xb0\\x92\\x19\\x60\\xff\\xa5\\xd9\\xd8\\xff\\xb8\\xe2\\x9c\\xde\\x96\\xa3\\xed\\xe0\\x15\\xac\\xbc\\x26\\x97\\x40\\x04\\xd3\\xe4\\x38\\xa8\\x5b\\x2e\\x33\\x85\\xf6\\x4d\\x18\\x14\\x00\\x39\\x41\\xff\\xd3\\x63\\x99\\x2d\\x39\\x40\\xc6\\xe6\\xd8\\x1f\\xf8\\xe4\\x5f\\xce\\xd6\\xd3\\x6c\\xe1\\x98\\xd8\\xcc\\xbe\\xfe\\xe4\\x32\\xa7\\x7d\\x8f\\xca\\xdd\\x73\\xfb\\x79\\x9f\\x6b\\xaf\\xef\\xb5\\x1a\\x2d\\xa7\\x98\\x72\\x1c\\x3d\\x46\\x5b\\x16\\x3e\\xf1\\x3e\\x6e\\xcc\\x65\\xe6\\x03\\xb2\\x89\\x3e\\xe4\\xcc\\x9e\\x1c\\x6d\\x1d\\xe7\\xa6\\x5c\\xab\\x5c\\xbd\\xf5\\x36\\x85\\x5e\\x28\\x8c\\x3c\\xcd\\xa8\\xd2\\xfa\\x3c\\xe1\\x0c\\xf4\\x93\\x58\\xa2\\xef\\x4e\\xf0\\x76\\xe5\\xbf\\xa9\\x1b\\xbc\\xf3\\xd9\\x66\\xdf\\xa3\\xdc\\x6e\\x71\\x2f\\x19\\x56\\xd4\\xe5\\x8a\\xa3\\x6e\\x71\\x2d\\xd3\\x34\\x71\\x69\\xb1\\x9c\\x8d\\x44\\xbe\\xc5\\xbc\\xb7\\x30\\x77\\x8f\\xcc\\xcc\\x58\\x9e\\xd5\\xd3\\x50\\xd4\\x4c\\x17\\xbd\\xe2\\xee\\xbb\\x6f\\x5e\\xc5\\x9f\\xb2\\x40\\xd6\\x7d\\x81\\xae\\xa9\\x26\\x7f\\x34\\xf1\\x5e\\xee\\x2d\\xe3\\xf4\\xfa\\x67\\x39\\x14\\x79\\xbd\\xbb\\x43\\x0f\\x48\\x43\\x70\\xfb\\x0e\\x08\\x95\\xb9\\xae\\x06\\x5b\\xbd\\xd4\\x3e\\x23\\x0c\\x62\\xac\\x07\\x18\\x4e\\x8b\\x06\\xb2\\x4b\\x8b\\x97\\xec\\x02\\xdc\\x6f\\x37\\xef\\x61\\x64\\x1e\\xd5\\x6e\\x3f\\x5e\\xb8\\xd2\\x08\\x0b\\x51\\x44\\xef\\x76\\x0b\\x51\\x87\\x52\\xe1\\x97\\x54\\x79\\x2e\\x19\\x34\\x3a\\x38\\x55\\xe1\\xe2\\xf7\\xa7\\xdc\\x62\\x35\\x17\\xee\\xd2\\xf5\\xd2\\x65\\x48\\xa6\\x8e\\xb8\\xff\\xd7\\xbf\\x70\\xf7\\x8f\\xd1\\x86\\xdb\\x63\\x49\\x28\\xbb\\x98\\x13\\x8f\\x2b\\x8f\\xe8\\x44\\x81\\xcc\\x53\\xf5\\xaa\\x35\\xe2\\x66\\x6c\\x63\\x25\\xe1\\xd2\\xb8\\xac\\x5e\\x2d\\xf2\\x93\\x5b\\x7f\\x64\\x13\\x95\\x2d\\x10\\xd6\\x07\\x6f\\xfc\\x75\\xbb\\x6a\\xf6\\x3b\\x29\\xb0\\xb9\\x66\\x3b\\xec\\x37\\x24\\x7b\\x66\\xb5\\x08\\xdd\\xe4\\x1f\\x2f\\x11\\xb8\\x43\\x33\\x55\\x9d\\xfa\\xc7\\x3f\\x76\\x1b\\xcd\\xa8\\x4a\\x48\\xd2\\x66\\x07\\x3a\\xef\\x16\\x38\\x46\\x08\\x49\\xe7\\xa1\\x72\\x06\\xa2\\x5f\\x68\\x00\\x77\\x0b\\x91\\x4c\\xc0\\x26\\xba\\xf9\\xe3\\x25\\x59\\x14\\xe1\\x32\\x58\\x44\\x1c\\xef\\x35\\xad\\x1d\\x66\\x83\\x3e\\x98\\x7e\\xbe\\x44\\x31\\xe6\\xa6\\xbb\\x22\\x2c\\xbb\\x65\\xaf\"},\n{{0xdd,0x99,0x87,0xb1,0x8f,0x9a,0x92,0x2c,0x0f,0x6f,0xea,0x18,0xeb,0x00,0xb8,0x96,0xc7,0xa2,0xd3,0x09,0x3d,0xb3,0xea,0x31,0xd3,0x84,0x21,0xda,0x0d,0xe5,0x12,0x31,},{0x57,0x39,0x21,0xa9,0x55,0xfe,0xb6,0xdd,0xe4,0x1b,0x05,0x5c,0x8d,0xac,0xac,0xcd,0x1d,0xb7,0xfe,0x9e,0x36,0xb5,0x09,0xd3,0xc9,0xe3,0x6f,0x97,0x35,0x75,0x23,0x24,},{0x3e,0x9f,0x2b,0x00,0x7c,0x0e,0x29,0xec,0x87,0x59,0x95,0xa6,0x30,0x9b,0x97,0x3d,0xeb,0x8b,0xaf,0x11,0x3d,0xed,0x13,0xf1,0xe0,0x00,0x3e,0x9b,0x9b,0xf9,0x39,0x16,0xa4,0xdf,0xe4,0x79,0x37,0xda,0xdf,0xc7,0x8a,0xa6,0x63,0xc5,0x5f,0x67,0x4e,0xc3,0x5c,0x38,0x46,0x25,0x8f,0x18,0xe7,0xbb,0x93,0xfb,0xba,0x3e,0x82,0x6a,0x1f,0x0d,},\"\\x48\\x16\\x2f\\xdc\\x3a\\xbf\\x73\\x19\\xc6\\xca\\xab\\x60\\xcb\\x8d\\x05\\x20\\x87\\x5c\\xb4\\xee\\x8a\\x07\\x09\\x27\\x83\\x16\\x7d\\x47\\x33\\xff\\xe5\\x20\\x4e\\x5f\\xeb\\xe7\\xd2\\x91\\xe9\\x53\\x6b\\xde\\xa3\\xdf\\x06\\x37\\x15\\x9a\\x65\\x3e\\x09\\xfd\\x99\\xaf\\x66\\x1d\\x83\\x00\\xae\\x74\\x1a\\x3e\\x91\\xa8\\xbd\\x85\\xea\\xd0\\x5d\\xc7\\xd9\\xe6\\xf9\\x29\\x32\\x33\\x16\\xed\\xc4\\xca\\x62\\x4e\\xa7\\x81\\x8b\\x25\\xbd\\xc0\\x61\\xf7\\x14\\x92\\xfd\\x22\\xd4\\x65\\xab\\x22\\x6f\\xd9\\xa1\\x0d\\x8b\\xab\\xfc\\x07\\x4c\\x68\\x6c\\x43\\x6c\\x24\\xa3\\xa5\\x3f\\x8f\\xf3\\x89\\xce\\x9c\\xa1\\xdb\\xc8\\x90\\x74\\x45\\x88\\x92\\x41\\xf8\\xfd\\xa3\\xa7\\xa3\\xf5\\x02\\x4f\\xa8\\xcb\\x0d\\x04\\x4b\\xda\\xf6\\x71\\x6d\\x98\\x3a\\x6d\\x83\\x98\\x14\\xff\\xe7\\x0d\\xdc\\x55\\xbb\\xba\\x11\\xac\\x97\\x88\\x7b\\xdb\\x4d\\xad\\xa9\\x65\\x65\\xbb\\x07\\x5d\\x5f\\xc1\\xd3\\xc5\\x24\\x4b\\x9f\\xff\\x77\\xde\\x58\\x72\\x9a\\x05\\x9a\\x91\\x1f\\xb3\\xe0\\xeb\\x16\\x4f\\xb8\\x42\\x9e\\x26\\x56\\x85\\xd1\\x4a\\x63\\x23\\x30\\x46\\xd2\\x0e\\xcf\\x28\\x9c\\x55\\x72\\x31\\x69\\xa9\\xd6\\x3d\\xda\\x0d\\x52\\x55\\x15\\x3d\\x9e\\xf4\\xa6\\x1b\\x92\\x12\\xf4\\xb8\\x20\\x69\\x7a\\xe7\\xc3\\x08\\xcf\\xab\\x40\\x3b\\x2c\\x34\\x31\\x90\\x62\\x26\\xe4\\x5c\\xe2\\x19\\x20\\xdf\\x52\\x01\\x60\\x9d\\xaf\\x83\\x0f\\x28\\xad\\x79\\x60\\x05\\xa9\\xbd\\x8e\\xba\\x62\\x0c\\xf8\\x39\\xc3\\xba\\x22\\x7b\\x96\\x3c\\x7b\\xd0\\x91\\x48\\x22\\xdf\\x2c\\xa0\\x3c\\x22\\x54\\xd0\\xcb\\x8a\\xca\\xe0\\xd5\\x9e\\x4c\\x3e\\x0e\\xc2\\x15\\xc8\\x36\\x96\\x9d\\xcd\\x1d\\x49\\xbf\\xe1\\x97\\xe2\\xf3\\xee\\xa3\\xfa\\x8a\\x37\\x3b\\x55\\x8d\\x0f\\xb9\\x06\\x3c\\xf1\\x56\\x8e\\x73\\x9a\\xad\\x8f\\x09\\xfb\\x43\\x7c\\xaf\\xb5\\xa2\\x72\\x37\\x5f\\x43\\x60\\x64\\xee\\xe1\\x1b\\xd9\\x03\\xd3\\xaa\\xea\\xb4\\xe3\\xfd\\xcd\\x36\\xbd\\x20\\x76\\xee\\xa1\\x79\\xa4\\xf0\\xd4\\xfb\\xc8\\xdf\\x42\\xbf\\x26\\x60\\xf0\\x8d\\xe7\\xd5\\xc6\\x39\\x7c\\xae\\x10\\xb7\\x27\\x74\\x58\\xaa\\x6c\\xfa\\x01\\xe8\\xa6\\x73\\x7e\\xb1\\x26\\x22\\x78\\x56\\x64\\x66\\x91\\x68\\x1c\\x10\\x6a\\x15\\x7a\\x26\\xae\\xd2\\x1b\\x1a\\xaf\\x0e\\xd2\\x76\\x64\\x21\\xcf\\xc3\\xd1\\xc7\\xdd\\xfb\\x72\\xfc\\xdf\\x4b\\x8b\\x49\\x0f\\xc0\\x9a\\xce\\x49\\xae\\xdd\\x77\\x12\\xb2\\x1a\\xc5\\x6f\\x86\\x01\\xf6\\x25\\x56\\x3c\\x78\\x43\\x06\\xf3\\xb9\\x17\\x4a\\xdd\\xf7\\x64\\xe0\\x51\\xaa\\xdf\\xe1\\x28\\x31\\xaf\\x96\\x69\\xe6\\x2c\\xab\\x12\\x1c\\x74\\xdf\\x34\\x37\\x24\\x42\\x9d\\x6c\\x26\\x66\\x02\\x71\\xc3\\x2f\\x40\\xcf\\x7c\\x2d\\x08\\xbd\\x0a\\xfc\\xc7\\x28\\xde\\xf4\\x13\\x5d\\x4e\\xb5\\x5b\\x6a\\x3e\\x76\\x29\\xd8\\x06\\x86\\x4a\\x85\\xb3\\x6a\\x32\\xb9\\xb2\\x1a\\xc0\\xd3\\x96\\x80\\xa2\\xae\\x4e\\xc4\\x18\\x97\\x09\\x17\\x8e\\x34\\x94\\x97\\xf3\\x93\\x99\\xfb\\xc7\\x8b\\x3c\\x6c\\xfa\\xca\\x6e\\xde\\xa7\\xc3\\x3d\\xda\\x3c\\xc1\\x1e\\x43\\x84\\xf1\\x58\\x3d\\x6c\\xfc\\x6b\\x58\\xf4\\xea\\xa2\\xbc\\x56\\xab\\xa4\\x2f\\x73\\x8a\\x42\\x9b\\x93\\x58\\x08\\x50\\xde\\xe3\\xfd\\x25\\x39\\x94\\xf8\\xb0\\xfa\\x66\\xee\\x8e\\x27\\x3d\\xec\\xab\\xd5\\x32\\x09\\x5f\\xb0\\x4a\\x4a\\x3c\\x34\\x0a\\xf0\\xe5\\x5b\\x57\\xef\\xab\\x43\\x63\\x0f\\xc0\\x2e\\xf2\\x0b\\x42\\x5c\\xa2\\x18\\x7e\\x3c\\x6c\\x5e\\x10\\xf1\\x2d\\x61\\x8f\\xd2\\x43\\xa2\\x24\\xf6\\x50\\x1e\\xbe\\xb9\\xd3\\x21\\xc6\\x38\\x5b\\x81\\x27\\xef\\x9c\\xdc\\xd0\\x97\\xce\\x7f\\xa0\\x21\\xcf\\x40\\xd2\\x1c\\x39\\x91\\x23\\x43\\xf6\\x7a\\xcc\\xe1\\x82\\x5e\\x3a\\x51\\xb8\\xa7\\x18\\xe8\\xc3\\x40\\x62\\x2f\\xff\\x65\\xfe\\x00\\x53\\xd2\\x4a\\xa3\\x35\\x1b\\x6a\\x24\\x00\\x18\\x5d\\x7a\\xeb\\x88\\xe8\\x7a\\xc4\\xa1\\xd3\\x94\\x90\\x9d\\x49\\x41\\x4a\\xef\\xc2\\x2b\\xa0\\x09\\xaf\\xf6\\x96\\x2c\\x92\\x17\\xd7\\x55\\x69\\x4e\\x4d\\x6a\\xa8\\xa5\\xd6\\xa8\\x03\\xce\\xbb\\x15\\xde\\x8f\\x54\\x16\\x34\\xb6\\xfc\\xeb\\x0c\\xac\\x79\\xdd\\xa8\\xa1\\x8e\\xef\\xbb\\x53\\x7e\\x70\\xff\\xe9\\xaa\\x5a\\x6a\\x6a\\xaf\\x92\\x40\\xfa\\xc2\\xea\\xcb\\xfb\\xef\\x01\\xad\\x6b\\xdf\\x50\\x75\\x87\\x80\\xf8\\x6a\\x4e\\x48\\x89\\x85\\x36\\x2d\\x58\\x25\\x01\\x1f\\x5e\\x8b\\x66\\x42\\x5a\\x61\\x6b\\x7e\\x10\\x4e\\xb2\\x3f\\xe8\\xf1\\x00\\xcb\\x02\\x49\\x82\\x36\\x62\\xbd\\xa3\\xda\\x47\\xa4\\xc3\\xc1\\xca\\x2f\\x91\\x4b\\x25\\xb9\\x73\\x85\\x34\\x02\\x60\\x47\\xdf\\x6d\\x7f\\xf6\\x31\\xdf\\x2c\\x41\\x31\\xf6\\x80\\xe1\\x37\\x43\\xc9\\xcc\\xf2\"},\n{{0x38,0xd2,0xef,0x50,0x9f,0x93,0x05,0x1f,0x14,0x51,0x67,0x73,0x7c,0x22,0xe1,0xa5,0xbf,0xe8,0xf4,0xa9,0x1e,0xba,0x0b,0xb8,0x7c,0x39,0xce,0x04,0xa8,0x9b,0xae,0xc6,},{0x01,0x11,0x5f,0x6d,0x89,0xa5,0xda,0xab,0x54,0xf8,0x92,0xbb,0x4a,0x4b,0xda,0x1c,0xe5,0xd8,0xf6,0xc9,0xc8,0x8a,0x50,0xce,0xe8,0x3b,0xd9,0x87,0xa2,0xc0,0xdd,0xf7,},{0xde,0xc4,0x62,0x53,0x50,0x9b,0x11,0xe4,0xb5,0x2a,0x6a,0xe4,0xf3,0x66,0xb6,0x80,0xdf,0xfc,0x28,0x0d,0x0a,0x04,0x4f,0xc0,0xcb,0x79,0x0b,0x6e,0x75,0x13,0x81,0x46,0x1e,0x1e,0x60,0x2a,0x89,0xe3,0xb3,0xd3,0x06,0x4c,0x40,0x7f,0x60,0x2f,0x1c,0x22,0x40,0x4b,0x68,0x23,0xbd,0x24,0x67,0x54,0x93,0x14,0xa0,0x00,0x01,0x66,0x4a,0x08,},\"\\x42\\x7b\\x5a\\x01\\xe8\\x59\\x7f\\x04\\xfd\\x42\\x2f\\x0a\\x66\\x2d\\x0b\\xe2\\xdf\\xa8\\x53\\xed\\x5f\\x9d\\x3f\\x60\\xff\\x90\\xf2\\xc5\\xee\\x08\\xbb\\x59\\xfd\\x03\\xd4\\x02\\xb7\\x54\\xca\\xf5\\x4d\\x00\\x58\\xf5\\xa2\\xcf\\x87\\xaf\\x4f\\xef\\x21\\x77\\xd5\\x9e\\x18\\x22\\x62\\x93\\xfd\\x2a\\xf3\\x76\\xbc\\x98\\x7b\\xf7\\xb3\\x20\\xb9\\xd1\\xe2\\x49\\xab\\x9e\\xfb\\x75\\x07\\x8e\\x6d\\x3d\\xf2\\x9e\\x03\\x50\\x47\\x76\\x35\\x43\\x44\\xaa\\x69\\xe7\\x2e\\x1e\\xbc\\x52\\xa3\\xc3\\x8a\\x4c\\x2a\\x16\\x73\\xb4\\xe9\\x74\\xa2\\xe4\\xe1\\x2a\\x2e\\x78\\xea\\x3e\\x3f\\xe5\\x0c\\x53\\x63\\x0d\\x09\\x6d\\xa3\\xe2\\xfe\\x82\\x99\\xf7\\x1a\\x1b\\x44\\x1b\\x4c\\xf0\\xca\\xeb\\x93\\x7a\\xfa\\x4a\\x0e\\x39\\x15\\xcc\\xab\\x39\\x96\\xc9\\xf6\\xa8\\xf4\\xfd\\x37\\x54\\x3e\\x8f\\x75\\x90\\x0c\\xfd\\x47\\x17\\x53\\x70\\xef\\xb8\\x52\\xa5\\xf6\\x9d\\x67\\x36\\x83\\xf9\\x98\\xfd\\xcf\\xf8\\x5f\\xf8\\xf3\\x2b\\xaa\\x80\\x70\\x66\\x60\\x44\\x22\\x02\\x7d\\x51\\xa4\\x35\\xdd\\xf9\\x88\\xed\\x2f\\xd8\\xeb\\x19\\x1f\\x10\\xb4\\x68\\x07\\x42\\x00\\x08\\x75\\x6e\\xb4\\xe3\\x00\\xc4\\x09\\x9c\\x2d\\x64\\x50\\xbc\\xc6\\xa4\\xe7\\xd0\\x67\\x31\\x56\\xb8\\x37\\xf0\\x50\\x63\\x38\\xf3\\xd1\\xb5\\x73\\x4b\\x16\\x6c\\xa5\\xcc\\x2f\\x24\\xa4\\xef\\x02\\x6c\\xda\\x2c\\x4a\\xe3\\x10\\x5b\\x63\\xca\\x85\\x70\\xd1\\x85\\x46\\xcf\\xac\\xb8\\x60\\x42\\x96\\x6a\\x00\\xef\\x52\\xc7\\x29\\x90\\x19\\xf6\\x8a\\x2d\\xf0\\x8c\\x8b\\x70\\x4e\\x85\\xe7\\x13\\xc3\\x48\\xd7\\xf1\\x67\\x76\\x60\\xe1\\x8e\\xba\\xb5\\x9b\\xf4\\xe1\\x2e\\x6f\\xf2\\xd7\\x83\\xd8\\xd5\\xd4\\x2a\\xab\\x6e\\xf0\\x17\\xb7\\xa1\\x96\\x6a\\xee\\x8d\\xc1\\x4d\\xda\\xbe\\xd4\\x9b\\x4b\\x64\\x3d\\xf4\\xe9\\xb0\\xb6\\x03\\x83\\xc7\\xd8\\xb4\\xb8\\x8c\\x65\\xa8\\x98\\xc1\\xc7\\x7d\\x43\\xd6\\xbd\\x68\\xb2\\xa5\\x74\\x3f\\x1f\\xed\\xd6\\x54\\xdc\\x84\\x49\\x6d\\xa0\\x2c\\xeb\\x69\\xb9\\xb4\\xd3\\xa8\\xe0\\x0c\\xcd\\x72\\xe7\\xc7\\x5f\\xc5\\x0a\\x8d\\xd0\\x87\\xe1\\x83\\xe6\\xc1\\xf5\\x79\\xba\\xeb\\xc5\\xc6\\x3f\\x28\\x07\\x93\\x67\\x91\\xb5\\xfe\\x48\\x47\\xcd\\xcf\\x15\\x17\\x74\\x23\\x52\\x05\\xcd\\x2d\\x7b\\x8b\\xf4\\xae\\x88\\x19\\x22\\x5e\\xa7\\x08\\xb7\\xba\\xac\\x66\\x99\\x8f\\x0c\\xba\\xb2\\xc7\\xdd\\xf2\\x51\\xf3\\xb1\\xde\\x10\\x17\\xd3\\x97\\x69\\x22\\x05\\xee\\xa6\\x39\\xf1\\x2d\\x77\\xbe\\xef\\x6c\\x13\\xbb\\x12\\x10\\x0f\\xf8\\x90\\x64\\x70\\xbc\\x7b\\x21\\x29\\x80\\x53\\xbe\\x1a\\x61\\xb7\\xb3\\xa4\\x99\\xed\\xc3\\x10\\x99\\x6c\\x8b\\xc0\\x87\\x19\\x07\\xca\\x46\\x8e\\x89\\xed\\x31\\x1a\\xdc\\xa2\\xe2\\xb8\\x29\\x30\\x97\\x5b\\x3e\\xfb\\xbf\\xc0\\x3c\\xdd\\xf4\\xd9\\x48\\xc4\\x76\\x5e\\x8c\\x10\\x59\\x08\\x82\\x16\\x9a\\xcd\\xdb\\x8f\\x8c\\x36\\xd8\\x4c\\x2d\\xac\\x3b\\x79\\x8e\\x7a\\xbf\\x84\\x47\\x12\\xfa\\x45\\x8d\\x27\\x7c\\x24\\xe8\\x14\\x04\\x7d\\x74\\x23\\x19\\xa8\\x34\\xdd\\x9f\\x92\\x7a\\x2b\\x44\\x85\\xef\\x13\\x74\\x5f\\x7a\\x60\\xdd\\x6b\\xb3\\x37\\x93\\x63\\x04\\xc9\\x7d\\x3f\\x9f\\x14\\x4e\\xb2\\x9b\\xb6\\x95\\xb8\\xdc\\x31\\xb9\\xd8\\x49\\x10\\x61\\x1d\\x28\\xd5\\x81\\xca\\xa9\\x36\\x5d\\x6d\\xff\\x52\\xd4\\x10\\xa4\\xad\\x52\\xbd\\x12\\x17\\x29\\xff\\xf5\\x28\\x88\\xf4\\xda\\xae\\x17\\x07\\xf6\\xf5\\x6d\\xac\\x61\\xff\\xb9\\x96\\x1c\\xda\\x71\\x76\\xaf\\x44\\x60\\xa6\\xd5\\x54\\x2a\\x20\\x44\\x6f\\xb5\\x14\\x7f\\xce\\x72\\x72\\x04\\xce\\xc6\\x89\\x9b\\x9a\\x3d\\x4f\\xf6\\x22\\x6b\\xb8\\xa1\\xc7\\x8e\\x36\\xfc\\xdd\\x9e\\x50\\xc0\\x40\\xd7\\x2d\\x0f\\x40\\x07\\xd3\\xfa\\x9a\\xa7\\x67\\xe4\\xab\\xd0\\xad\\xd6\\x2f\\xdb\\xcc\\xde\\xff\\x67\\x21\\xeb\\x25\\x9e\\x00\\xa7\\x21\\x63\\x20\\x06\\xbe\\xde\\x0d\\x17\\x3d\\x38\\x34\\x4d\\xea\\x44\\xf9\\x6b\\x67\\xd9\\xa2\\xee\\xa1\\xd2\\xaf\\x5f\\x74\\x8e\\x8e\\xbd\\xb4\\x41\\xbf\\xb4\\xe5\\x8e\\x2d\\x42\\xfe\\xc7\\x40\\x56\\x6a\\xcf\\x73\\xa3\\x03\\x35\\x8f\\x7d\\x89\\xc8\\x15\\x8c\\xf2\\x1f\\xe8\\x5b\\x0d\\x4a\\x41\\x7e\\xbd\\xc8\\x6d\\x04\\x69\\xf6\\xb9\\x1c\\x24\\xad\\x61\\x0d\\x48\\x6d\\xed\\xc2\\x18\\xb2\\xce\\x7a\\x8b\\x96\\x75\\x47\\x23\\x15\\x1f\\x0d\\x00\\x76\\xff\\xf9\\xf1\\x9d\\x11\\x2d\\x9c\\x05\\x92\\xfb\\x8d\\x92\\xc9\\x9d\\xcb\\x8d\\xdf\\xaa\\x46\\xfb\\xe0\\xd9\\x2d\\xf4\\x6b\\x8c\\x00\\xca\\x43\\x45\\xad\\xb6\\x9a\\x5a\\xca\\x69\\x4a\\x86\\xcf\\x30\\x64\\x64\\x51\\xbb\\x17\\xba\\x6e\\x60\\x7a\\x91\\x2b\\xf1\\x09\\xd5\\xfc\\x2d\\x3e\\x27\\xd0\\x0d\\x94\\x56\\x00\\xa8\\xa5\\x7c\"},\n{{0x43,0xbf,0xb3,0xdb,0xe4,0xd9,0xbd,0xaa,0x82,0xb3,0x54,0xdd,0x59,0x63,0x34,0xe6,0x60,0xd7,0x6f,0xc0,0xb2,0xeb,0x69,0x89,0x93,0xae,0xf3,0x76,0x7f,0x1c,0x7c,0x7f,},{0xd0,0x0a,0xec,0xef,0xf0,0xce,0xb8,0x32,0xc2,0x51,0xd1,0xfe,0x6b,0xcb,0xea,0xea,0xcb,0xb4,0x11,0x3f,0x52,0x81,0xba,0xba,0x4e,0x87,0x8f,0x7b,0x95,0xf9,0x3f,0x07,},{0xa9,0x99,0x55,0x23,0x02,0x0a,0x0d,0x22,0x2b,0xc4,0x8f,0x98,0xd0,0x55,0x04,0xe3,0x06,0x8f,0x30,0x4a,0x6d,0x19,0x70,0x06,0xcc,0x9c,0x03,0x5e,0xea,0xde,0x09,0x9e,0x7a,0xa9,0x7e,0x90,0x89,0x4e,0xad,0x17,0xe8,0xc3,0x0b,0x0a,0xa4,0xa9,0x80,0x88,0xf0,0x38,0xb9,0x22,0x44,0xc4,0xb2,0x0f,0xde,0x96,0x4f,0x85,0x34,0xe8,0xfb,0x03,},\"\\x3f\\x3e\\xed\\xdc\\xae\\xf4\\xe1\\x66\\x2a\\xdb\\x66\\xbb\\x1b\\x20\\x7d\\x79\\x3f\\xcb\\xef\\x81\\x50\\x05\\xe8\\x26\\x43\\xed\\x70\\xc9\\x85\\x54\\x03\\xda\\xc2\\x8b\\x52\\x07\\x27\\xa9\\x01\\xa5\\x32\\xd2\\x8b\\x9b\\xd1\\x34\\x8d\\xb2\\xf8\\x96\\x7b\\xbb\\x8c\\x90\\x98\\xb0\\x7f\\x57\\x0a\\x2e\\xae\\x1e\\xe4\\x82\\x64\\x0c\\x0b\\x67\\xa5\\x2a\\x38\\x61\\x21\\x33\\xa1\\x5e\\x25\\x8e\\xde\\x38\\xcd\\xa8\\x78\\xff\\x36\\xed\\x32\\x1d\\xff\\x87\\xcc\\x6a\\x01\\x38\\x3b\\xa8\\x40\\x67\\xd6\\x0a\\xf4\\x17\\x76\\xac\\xf8\\x0a\\x8a\\x4e\\xac\\x77\\xf7\\xd8\\x7c\\x37\\xa7\\x04\\xa3\\xe2\\xac\\xa1\\xe8\\x81\\x5e\\x49\\xfb\\xca\\xb7\\x97\\xc8\\x56\\x52\\x95\\x38\\xbe\\x07\\xd5\\x16\\x96\\x32\\x1f\\x69\\xb0\\x9b\\x5d\\xc5\\xa1\\x5e\\x5f\\x0e\\x4c\\x22\\xd2\\x28\\x37\\xf6\\x2e\\xe4\\xc8\\xbc\\x7f\\x25\\xa9\\x48\\x7b\\x96\\x2c\\xc2\\x0f\\x13\\x3f\\xcb\\x87\\x0e\\xd1\\x25\\xcc\\xa5\\x85\\xd1\\x81\\xbd\\x39\\xf9\\xdf\\xa6\\x61\\xf1\\x9b\\xe7\\x6d\\xa7\\xf6\\x5f\\x22\\xfb\\xbc\\x80\\x75\\x2a\\xeb\\x39\\xe8\\xd5\\x9e\\xd9\\x6e\\x14\\xf5\\x95\\xd0\\x49\\x29\\x40\\x2b\\x50\\x29\\xc6\\x0c\\xee\\x37\\xc0\\x21\\x7b\\xc5\\x31\\xd8\\x0d\\xb3\\x41\\xda\\xce\\x3c\\xce\\x76\\xe6\\x43\\xaa\\xc5\\x38\\x87\\x47\\x3e\\xdc\\x6e\\x19\\xcb\\x39\\xfe\\xcf\\x6a\\xf4\\x24\\xa2\\x06\\x63\\x93\\xd1\\xc3\\x3f\\xc7\\xb9\\x36\\x76\\xd7\\xe6\\x10\\x5b\\x9b\\xfc\\x96\\x7d\\x1e\\x29\\xaf\\xdc\\x4c\\xf1\\x5b\\xca\\xfa\\x09\\xc2\\x95\\xa6\\xf9\\xde\\xee\\x33\\x1a\\xb3\\xb0\\xd4\\x93\\x12\\x6e\\x2b\\x2f\\xff\\xb4\\x2a\\x6b\\x68\\xe7\\x9e\\x13\\x8d\\xb5\\x50\\x82\\x72\\x62\\xe4\\x87\\xa8\\x3f\\x37\\xf0\\x1d\\xd7\\x92\\x2b\\xe7\\x5e\\x92\\xfc\\xf5\\xd9\\xd4\\x80\\x3b\\x3a\\xc2\\xf3\\x5d\\xa2\\x10\\xfb\\x38\\xb2\\x63\\xb0\\xff\\xb6\\xc2\\x70\\x8d\\x4b\\x55\\xb7\\x57\\xaf\\x52\\x07\\x7a\\x7e\\x31\\x84\\xd0\\x1e\\x82\\xf6\\x4d\\x32\\xcc\\xe4\\xfd\\xee\\x0f\\x8d\\x4e\\x36\\x4b\\xcf\\xb9\\x58\\xeb\\xbf\\xdb\\xb6\\x22\\xb3\\x8b\\x51\\xe9\\x30\\x27\\x1c\\x7b\\x1b\\x70\\xaa\\x9d\\x4b\\xb3\\xaa\\x4b\\x99\\x7c\\x52\\x14\\x4d\\x3a\\xa6\\x21\\x62\\x57\\x3a\\x3a\\x1d\\x9c\\xe4\\x6c\\xdb\\xee\\xb8\\x44\\x9f\\x12\\x25\\xc4\\x49\\x63\\x1e\\x88\\x97\\x52\\x1c\\xd0\\xf6\\x37\\xb7\\x21\\xa1\\x25\\x2b\\x8a\\x10\\xab\\x0b\\xe8\\x70\\xaf\\xbc\\xd8\\x9d\\x58\\xb2\\xeb\\xb6\\x32\\x11\\x95\\x0c\\xad\\x7a\\xb8\\x2c\\x81\\x95\\x02\\x6b\\x50\\xea\\x8b\\x77\\xb9\\xe9\\x0e\\xd5\\x59\\xaf\\x44\\x84\\x30\\x88\\x51\\xa3\\xa1\\x56\\x71\\x68\\x53\\xa8\\xac\\x4e\\xcb\\x8c\\x5c\\xc7\\xd9\\x35\\xb0\\xf4\\x66\\x12\\x41\\x43\\xb1\\x17\\x7f\\x05\\xd0\\x8b\\x97\\xd1\\xad\\x54\\x2e\\xd2\\xc2\\x46\\x5a\\xf1\\x85\\xe7\\xdb\\x42\\xb6\\x9c\\xb8\\x02\\xa7\\x17\\x94\\xa3\\x13\\x98\\x83\\x02\\x96\\x70\\xc9\\x56\\x74\\x2a\\xaa\\xd7\\x90\\x7a\\x71\\xd9\\x59\\x85\\xfc\\x1d\\x45\\xb6\\x59\\x97\\xb4\\xec\\x6c\\xe8\\x25\\x5d\\xe9\\x59\\x27\\x0a\\xfa\\x7d\\xe9\\x0f\\x29\\x29\\xde\\x63\\xf9\\xb1\\x72\\x11\\xd7\\xf1\\xae\\x82\\x0a\\xda\\x9c\\xe3\\xe4\\x86\\x49\\x17\\x9d\\x60\\xb0\\x14\\x94\\x93\\x48\\x1f\\x01\\xd4\\x59\\xdb\\x7d\\xad\\x05\\x26\\xb5\\xbd\\x9f\\x4b\\x33\\x80\\xd2\\x5b\\xa2\\xc5\\x02\\xba\\x8f\\xa3\\xc4\\xd4\\x13\\x1b\\x46\\x62\\xad\\xde\\xfb\\x41\\x82\\x7f\\x75\\x9f\\xa7\\x1d\\x44\\x7d\\x5f\\x02\\x92\\x45\\xf4\\x8c\\x62\\x2e\\xb7\\xc6\\x8c\\x8e\\x71\\x08\\x1f\\x7f\\x78\\x9d\\xe7\\xa2\\x83\\xd2\\xed\\xa8\\x3a\\x7d\\x17\\x22\\xa0\\x5f\\xb7\\x2e\\x17\\x60\\xc2\\x40\\x40\\xc4\\xd8\\x34\\xde\\xf5\\xdf\\x5f\\x74\\x2e\\x02\\xb3\\x04\\x51\\xc8\\x93\\xbc\\xf7\\xd7\\x71\\xdb\\x78\\x4c\\xbb\\xda\\xec\\x87\\x6d\\x8a\\xc8\\x67\\x43\\xb5\\x29\\xa2\\x92\\x00\\x7a\\xc7\\x53\\xc9\\x9a\\x57\\x99\\xcc\\x32\\x4f\\xe5\\xeb\\xb5\\x44\\x8a\\xb5\\x54\\xb1\\x0d\\x41\\x36\\x97\\x4a\\x12\\x54\\x2d\\x25\\xc6\\x14\\x7c\\x67\\xc5\\xd2\\x33\\x6c\\x9d\\xb7\\x5c\\xba\\x2f\\xd6\\x08\\xcd\\x43\\xab\\x95\\xbe\\xac\\xd0\\x43\\xa1\\x34\\x9c\\xef\\xa8\\x28\\xe2\\x3b\\x5f\\x0b\\x6e\\x0e\\x29\\x51\\xf3\\x35\\x3b\\xb9\\x2b\\xfd\\x1f\\x0a\\x49\\xc3\\x3f\\xb3\\xcf\\x37\\x99\\xa0\\xb5\\x43\\x19\\x8a\\xd5\\xd0\\x3d\\x26\\x3c\\x1a\\x06\\xc3\\x5a\\x26\\xad\\xe1\\x51\\x84\\x91\\xc8\\xc1\\xd2\\x7a\\x2d\\xb0\\x33\\x80\\x89\\x32\\xcd\\x1c\\x47\\xb5\\xa1\\x26\\x98\\x5a\\xcb\\x8d\\x88\\x83\\x60\\xee\\xcc\\xfe\\xb3\\xbf\\x51\\xb0\\xd1\\x89\\xb4\\x19\\x04\\x40\\x40\\x4d\\x12\\xfb\\xa6\\x5d\\x0a\\x7a\\x14\\xc6\\x20\\xc5\\x55\\xf8\\x22\"},\n{{0x51,0x4e,0x07,0x0b,0x01,0x90,0xd1,0x8c,0xbe,0x98,0x1a,0x5a,0x15,0x1e,0x77,0x53,0x39,0x8a,0x27,0x2b,0xcf,0x01,0x48,0x13,0xad,0x37,0x97,0x22,0xc3,0x6e,0x13,0x3d,},{0x6f,0xbd,0xe0,0x47,0x4c,0xc4,0x81,0x0e,0xff,0xa5,0x0a,0x07,0x82,0x0c,0x96,0x5a,0xa0,0x03,0x95,0xff,0x3a,0x5b,0x3e,0x2e,0xdd,0x7d,0x35,0x6b,0x7d,0x6a,0xef,0x2b,},{0xb6,0xc3,0x55,0xc9,0x58,0xb5,0xba,0xa7,0xeb,0xe9,0x77,0xa9,0x3f,0xcf,0x53,0x95,0x89,0xa3,0x66,0xd4,0x01,0x60,0xe4,0xe0,0x31,0xb8,0x8a,0xb9,0x64,0x02,0xc7,0xbd,0x57,0x7f,0xf6,0x35,0xfc,0x07,0x78,0x24,0x23,0x59,0x8d,0xca,0x43,0x66,0x81,0x24,0xa8,0xb2,0x87,0x51,0x0e,0x2c,0xfd,0x07,0xa1,0xe8,0xf6,0x19,0xf6,0xc8,0x54,0x0a,},\"\\x83\\x14\\x55\\x76\\x2a\\x5d\\x80\\x09\\x7b\\xb2\\x84\\x50\\x42\\xf4\\xc8\\x76\\xe7\\x10\\x85\\x35\\xbe\\xd6\\x83\\xe8\\xc4\\x46\\x19\\xd0\\x81\\x54\\xa2\\x29\\x44\\x4b\\x10\\x1e\\x3e\\xd7\\xc0\\x15\\x07\\xe8\\x70\\x94\\x14\\x46\\xaf\\x97\\x8c\\x0f\\x53\\x41\\xd1\\xac\\x1d\\xd1\\x5b\\x14\\xe8\\x96\\x67\\x12\\xdf\\x19\\xf5\\x2f\\xeb\\x51\\x03\\xcf\\x62\\xb6\\x63\\x27\\x56\\x44\\x6c\\xc7\\x54\\xdf\\x00\\xa3\\xf6\\xdd\\x71\\x99\\x68\\xa2\\xce\\xf6\\x6c\\x3a\\xdf\\xb7\\xd1\\xfc\\x49\\x1f\\xbb\\xf3\\xd5\\x92\\x94\\xab\\x34\\x61\\x9e\\x17\\x6d\\xb0\\xd4\\x46\\x15\\x1e\\x37\\xea\\xa3\\xda\\xf1\\x72\\x40\\x6e\\x98\\x3d\\x9d\\x23\\xa6\\xb6\\x9e\\x92\\x97\\x60\\x30\\xf5\\xac\\x70\\x40\\xad\\x51\\x14\\x12\\x9f\\xea\\xf9\\x7a\\xf1\\x5b\\x22\\x96\\xfa\\xe7\\x04\\x92\\xdb\\xbe\\xb2\\xb4\\x82\\x76\\x87\\xfb\\x79\\x87\\x15\\xc9\\xbb\\x2c\\x32\\x55\\x7a\\x81\\xd8\\x91\\xb8\\x97\\x05\\x29\\x00\\x70\\x71\\x59\\x75\\x1f\\x07\\xdb\\x07\\x4c\\x77\\xf0\\x71\\x96\\x71\\xf1\\x76\\x66\\x89\\x02\\x9a\\x3c\\xdd\\xf3\\x9d\\xf3\\x48\\x3c\\xf2\\xb0\\x4f\\x71\\xc2\\x5d\\xe0\\x5f\\xc2\\xd0\\x2b\\xb4\\x8e\\x53\\x9e\\xaf\\x1a\\x32\\x16\\x46\\xcd\\x80\\xef\\x2f\\x0a\\xc7\\x03\\xf4\\x5e\\x73\\x89\\x53\\x08\\x00\\xe5\\xd4\\x17\\xcc\\xea\\x8a\\x5c\\x08\\x66\\x82\\xf0\\x47\\x45\\xd5\\x0b\\x5d\\xfc\\x8f\\x6e\\xdc\\x87\\xa9\\x5c\\x7d\\x20\\x2a\\x9c\\xfd\\x99\\x87\\x14\\xb7\\x46\\x92\\x0e\\xbb\\xe2\\x33\\x5b\\xca\\x1a\\x01\\x71\\x76\\x20\\x16\\xf5\\xe4\\xbd\\xa8\\x9c\\x57\\xd0\\xed\\xc6\\x91\\x0c\\x6d\\x22\\xc8\\xf9\\x09\\xda\\x3d\\xb1\\x35\\x2f\\x0c\\x8b\\xd1\\x8f\\x3b\\x5a\\xac\\x25\\xf1\\x93\\xb8\\x94\\x70\\xf9\\x76\\xbc\\x4f\\x1a\\xff\\xb3\\xc6\\x6b\\xc5\\x87\\x6c\\x6f\\xe2\\xac\\x75\\x08\\x53\\x3d\\x97\\xbb\\xcf\\x77\\x11\\x9d\\x9a\\xae\\x19\\x3f\\x07\\xe0\\xb6\\x4b\\x46\\x1c\\x9c\\x6c\\x3b\\x9d\\x29\\x3b\\xd3\\x7d\\xe3\\xd8\\xe1\\xab\\x1e\\x8d\\x87\\x2c\\xd9\\x4e\\x6c\\xf0\\xeb\\x68\\x43\\x9f\\xdc\\xd3\\xb2\\x5c\\xe8\\x48\\x34\\x60\\xbd\\x8b\\x7c\\xce\\x88\\x9f\\xb7\\x22\\xb4\\x36\\x1e\\x11\\x8d\\xa9\\x83\\xef\\x4a\\x9e\\x45\\xce\\xbc\\x0c\\x1b\\x82\\x29\\xea\\x53\\xe6\\xf5\\x55\\x05\\xf6\\x44\\xe0\\x9a\\xca\\xa4\\xc4\\xb8\\xcc\\x64\\x0b\\x2c\\xd2\\xb3\\x12\\xe1\\xc3\\xa2\\xc0\\x26\\x69\\xe1\\xf9\\xc0\\x63\\x11\\xc7\\x8d\\x36\\x00\\x09\\xdb\\x9e\\x67\\xc3\\x9b\\x49\\xd1\\xe5\\xd7\\x70\\xc0\\x1d\\x28\\x4b\\x0a\\x17\\xa4\\x1b\\x4e\\x7c\\xa7\\x45\\xd6\\x65\\xec\\x07\\x50\\x0e\\x4d\\x9f\\xc8\\xeb\\xc1\\xcc\\x6a\\xf5\\x3a\\x3f\\xc7\\x6b\\x0c\\x3f\\x14\\x31\\xd4\\x98\\x43\\xf2\\x0e\\x18\\x27\\x82\\xc8\\x2b\\x3b\\x5a\\xae\\x36\\xfe\\x20\\xca\\x64\\x26\\x18\\x06\\x8b\\xe2\\x33\\xd4\\xb5\\xef\\x9e\\xae\\xff\\x40\\x15\\x36\\xdc\\x59\\x3a\\x2b\\xc1\\x83\\x44\\xf5\\x5a\\xc5\\xd5\\xfc\\x7b\\x3e\\xb5\\x06\\xd1\\x1c\\xb3\\x75\\x33\\x00\\x63\\xc6\\x20\\xc5\\x33\\x4d\\x72\\x3c\\x7d\\x1f\\x04\\x28\\x16\\xbc\\x47\\x85\\xb3\\x5a\\xc0\\xe6\\xf1\\x74\\xf7\\x36\\x87\\x8b\\x7b\\x49\\x16\\x58\\xca\\x67\\xd8\\xfc\\xab\\x53\\x8f\\xc6\\xec\\xd2\\x77\\xea\\xd9\\x0d\\x95\\x4b\\x46\\x0d\\xa4\\x25\\x3a\\x1c\\x3a\\x30\\xb3\\xd8\\x92\\x8f\\x69\\xac\\x98\\x76\\xa2\\x89\\x19\\x69\\xfc\\x2d\\x06\\xa6\\x68\\x99\\x2b\\x8e\\x21\\x15\\xdf\\xe5\\x35\\x8a\\x71\\x24\\xba\\x7c\\xcf\\x42\\x1d\\x80\\x54\\xea\\x04\\x34\\x44\\xcd\\xeb\\x40\\xb7\\x16\\xdc\\x7a\\x36\\x59\\xa3\\xca\\x94\\x34\\x72\\x93\\x48\\x90\\x60\\xe2\\xcf\\x67\\x12\\xa2\\xa6\\xc7\\xb8\\xad\\x14\\x67\\x85\\xfc\\x40\\xcc\\xb9\\xda\\x28\\x78\\x30\\xd0\\x11\\xd0\\xd2\\x4d\\xf3\\xe7\\xaf\\xbe\\x97\\x2d\\x6f\\x41\\x7d\\xe5\\xcd\\x75\\xf2\\x59\\xea\\x07\\xca\\xfd\\xde\\x20\\x5f\\xc0\\xa3\\x65\\x13\\x5c\\x23\\x2c\\xbd\\x7c\\x1b\\xc5\\x39\\xfa\\x4b\\x7e\\x1c\\xce\\x35\\x18\\x52\\x37\\xc2\\x3f\\x80\\xae\\x97\\xc1\\x86\\xd0\\xd3\\xb1\\x05\\x03\\xd5\\x98\\x4a\\x20\\xec\\x41\\xc3\\xcd\\x04\\x2c\\x28\\xa4\\xc3\\x1f\\x95\\x74\\xb0\\x6a\\x87\\x2b\\xf9\\x59\\xab\\x0a\\xdd\\x1f\\x5d\\xee\\x14\\xa1\\xe7\\x41\\xef\\x23\\x8d\\xfc\\xde\\xc0\\x85\\xaa\\x08\\x8d\\xcf\\x39\\xa3\\x6d\\xda\\x8f\\x2a\\x85\\xed\\x0d\\x36\\x2c\\xcb\\x00\\x5d\\x02\\xe5\\xac\\xcc\\x09\\x2a\\x37\\x6d\\xc1\\x1a\\x56\\x61\\x70\\xd5\\x83\\xdb\\x35\\xf1\\xde\\x0b\\xe3\\xf1\\x59\\x08\\x59\\x6e\\x9b\\x78\\x1a\\xc8\\x1b\\xe0\\x7b\\x9b\\xd2\\xaf\\x46\\xc5\\x6f\\xb4\\xd9\\xd8\\x42\\x76\\x01\\x1e\\x46\\x18\\xb7\\xf7\\x6f\\x96\\x79\\x4c\\xd0\\xfd\\x57\\xed\\x41\\x4b\\x63\"},\n{{0xbc,0x79,0x0a,0x73,0x85,0xdd,0x1d,0xdd,0xc7,0x62,0xe3,0xb2,0x02,0x21,0xdc,0x07,0x8b,0x6c,0x3d,0xa8,0x98,0x6d,0x41,0x80,0x94,0x07,0x27,0x25,0x7c,0xfd,0xcd,0xf1,},{0xc9,0x26,0x46,0x26,0xf6,0x8f,0xed,0xb5,0xb3,0x9c,0x28,0xf0,0x30,0x45,0x3b,0x54,0xd0,0xd5,0x1a,0x98,0xb1,0x77,0x21,0xf2,0x61,0x1d,0x7f,0x27,0x7e,0xf4,0x8b,0x81,},{0x6d,0x6b,0xd6,0x5f,0x37,0x26,0x79,0xfe,0x9d,0x94,0x5f,0xf5,0x65,0x16,0x33,0x3e,0xce,0x0b,0x7a,0x25,0xb1,0x5a,0xd2,0x48,0x73,0x81,0x67,0x0e,0x53,0x6f,0x52,0x46,0x77,0x5e,0xb3,0x9a,0x11,0x4d,0xb2,0xb9,0xcd,0x50,0xf3,0x12,0xb3,0x60,0xd9,0xd0,0xbe,0xa2,0x95,0xdc,0x37,0xb8,0x17,0xb3,0x32,0x89,0x0a,0xdb,0x65,0xe4,0xc4,0x01,},\"\\x14\\x3d\\xd7\\xbf\\xbf\\xf2\\xad\\xc7\\x1f\\x5d\\x12\\x3d\\x47\\x4e\\xa0\\x69\\xdf\\x14\\xae\\x92\\x3e\\xd9\\xbf\\x8f\\x98\\x91\\xe6\\x0b\\xae\\x43\\xf0\\xc9\\xf5\\x55\\x37\\xac\\x9d\\x1a\\xe5\\x23\\xce\\x4e\\xcf\\xd3\\x3b\\x20\\xae\\x44\\x5e\\x9c\\x42\\x63\\x72\\x05\\x0f\\xa5\\x21\\x7c\\x1e\\x4f\\xb0\\x13\\x53\\xeb\\xf2\\xe3\\x29\\x04\\xef\\x7e\\xef\\xcf\\x72\\xe8\\x02\\x3b\\xae\\x06\\xbb\\xb6\\x40\\xcf\\x77\\x7d\\x5b\\x0e\\x11\\x52\\x7b\\xc8\\x35\\x49\\x3a\\xd6\\x98\\x0a\\x15\\x7b\\xb2\\xd5\\x0b\\xe2\\x33\\x65\\xe7\\x2c\\xbf\\x0b\\x3f\\x20\\x9e\\xf0\\xc4\\x4a\\x00\\xb4\\x1a\\x62\\x26\\x24\\x88\\x09\\x6c\\xae\\x5a\\x69\\x6b\\x4d\\x64\\xcb\\xad\\x34\\x50\\x0d\\x41\\xfb\\x4e\\x4b\\xc7\\x0f\\x8b\\xf6\\x21\\x44\\xd0\\x1c\\x22\\x75\\xd6\\xd2\\x9f\\x5d\\xe7\\x5b\\x17\\x21\\xd5\\x04\\x6b\\x68\\x29\\x16\\x44\\x43\\xeb\\xfd\\x9c\\x17\\x81\\x31\\x9d\\x88\\xf5\\x40\\x10\\xed\\xc2\\x96\\xab\\xbe\\xd0\\x2b\\x7d\\xad\\x9b\\xa5\\x85\\xb5\\x52\\xe0\\x00\\x5d\\xcc\\xa4\\x00\\xbf\\x4f\\x45\\x9e\\xed\\x7d\\xb8\\x6e\\xa8\\x61\\x2b\\xe9\\xe9\\x18\\xdf\\xd4\\xe2\\x70\\x0c\\x47\\x10\\x08\\x32\\x83\\x62\\x6f\\xac\\x75\\x44\\x17\\xe0\\x08\\x7d\\x26\\xba\\x14\\x5d\\xfc\\x45\\xb1\\xc9\\xbf\\x7b\\x4d\\xd7\\x0e\\x6c\\x50\\x87\\x47\\xef\\x80\\x5c\\x9a\\x02\\x42\\x5a\\xeb\\xc6\\x42\\x1e\\x0d\\xeb\\x6a\\x79\\xd8\\x9a\\xce\\xee\\xe0\\x1e\\xce\\xcc\\x9f\\x3c\\xa3\\x65\\x38\\x38\\x26\\x58\\x4c\\x43\\x0e\\xbd\\x39\\xec\\xf0\\xa7\\x28\\x66\\xae\\x0a\\xce\\xca\\x5a\\xd4\\xf0\\x40\\x5b\\x67\\x77\\x9c\\x04\\xc5\\xde\\x03\\x30\\x61\\x4d\\xa3\\x47\\x0b\\x80\\x5d\\x78\\x7c\\xe7\\x9a\\xc5\\xa6\\x96\\xdd\\x6f\\x6b\\x55\\x39\\xb1\\xa6\\x51\\xb4\\x24\\xce\\xfb\\x19\\x49\\x1d\\xa6\\xe0\\x88\\x92\\x23\\xcc\\x98\\x39\\x8b\\x42\\xc0\\x04\\x14\\xff\\x8d\\x6c\\x06\\x27\\xeb\\x97\\xcf\\xf2\\x0a\\x8c\\xbe\\x7f\\xcc\\xb4\\x1d\\x81\\x0f\\xcf\\xe8\\x58\\xca\\x74\\x75\\x24\\x7e\\xf6\\x28\\xe8\\x4a\\x09\\xd0\\x12\\xfe\\x12\\x23\\x5b\\x38\\xc1\\xcc\\x9d\\x82\\xe2\\xb6\\x9d\\x01\\xd6\\x21\\x8c\\xfd\\x48\\xe8\\x5f\\x26\\xae\\xad\\xd1\\x95\\x40\\x8c\\xdd\\x4c\\x2f\\x80\\x6a\\x89\\x04\\x1f\\xd0\\x31\\x7f\\xb1\\xa7\\xb6\\x20\\x9f\\x90\\x42\\x70\\xd3\\x4e\\x60\\x61\\x95\\x04\\x72\\x88\\xb0\\xfb\\x11\\xa5\\x72\\x29\\x38\\xf6\\x7c\\x22\\xb3\\x13\\xf7\\xf7\\x4b\\x20\\x25\\xc7\\x5b\\xcd\\x1e\\xcc\\x5a\\x9a\\xdd\\x4a\\x64\\x0a\\x41\\xf2\\x99\\x6e\\xb6\\x6e\\x5a\\xf1\\x96\\x19\\x8d\\xb5\\x8a\\x3f\\xb9\\x93\\x8f\\x34\\x9f\\x92\\x2a\\x24\\xd8\\x6f\\x4e\\xd8\\xa9\\x6a\\x09\\xa1\\x96\\xc2\\x4d\\x6d\\x01\\xed\\x76\\xf3\\x81\\x6c\\x05\\xc4\\xf2\\x6b\\xac\\xa9\\xb9\\xd6\\xdc\\xc7\\x9b\\x58\\x0d\\xfb\\x75\\xd6\\xc9\\x05\\xd4\\x80\\xda\\xd7\\x69\\x51\\x85\\x4b\\xda\\x1c\\xaa\\x7f\\x4a\\x81\\x95\\x43\\xae\\xd0\\x1a\\xe9\\x56\\xbf\\x30\\x58\\xfe\\x8b\\x3c\\x7d\\x5d\\x72\\x49\\x62\\xf1\\xa6\\xa8\\x31\\x43\\xdd\\xad\\x27\\x4f\\xda\\x3a\\xd5\\x78\\xe9\\x8a\\xa9\\x67\\xc4\\x10\\xee\\x57\\x57\\x5e\\xf0\\x1c\\x02\\x58\\x56\\x0f\\x0a\\x1f\\xa4\\xb7\\x93\\x27\\x79\\x6d\\xe9\\x94\\x20\\xcf\\xd0\\xa4\\x15\\x50\\x63\\x60\\xf1\\x24\\x2c\\xcc\\x58\\xa6\\x88\\x09\\x27\\x75\\x0d\\xbb\\xff\\x13\\xd7\\xc1\\xb4\\xed\\x51\\x9c\\xda\\x35\\x72\\x10\\xf1\\x2f\\xb0\\xd1\\xc4\\xd4\\x8f\\x04\\x11\\xbd\\x7e\\x05\\x8c\\xc4\\xcb\\x93\\xd3\\xc7\\x75\\x97\\xe2\\x65\\x3f\\xfa\\x28\\x2d\\x3c\\x2f\\x12\\x8a\\xc3\\x3a\\x23\\x7a\\xf2\\xfc\\xbc\\x9e\\xf9\\xc8\\x11\\xf3\\x78\\x14\\xba\\x2b\\x0b\\x85\\x09\\x3d\\x0f\\xd1\\x8b\\x8c\\x6f\\xb0\\x9a\\x43\\xce\\x52\\x25\\x4d\\x23\\xd5\\x5f\\x32\\xe1\\xd3\\x24\\x2a\\xed\\x1f\\x23\\xd9\\xcf\\x20\\x4a\\xa0\\xdf\\xd4\\x4a\\x34\\x6f\\xe0\\x9e\\x55\\xa4\\xa0\\x6c\\xf1\\xbe\\xf8\\xbb\\xf3\\x7b\\xa1\\xf1\\x59\\x8a\\x58\\xae\\xf8\\x95\\x01\\xec\\xba\\xc0\\x45\\x35\\x43\\xe4\\x80\\xed\\x0a\\xdd\\xe9\\x0c\\x84\\x1d\\x95\\xeb\\xd6\\xeb\\x23\\xba\\xa9\\xf7\\x0f\\x83\\xc1\\x49\\xea\\xb3\\x2d\\x09\\x13\\xc7\\x9b\\x09\\x93\\xd0\\xe1\\xd3\\x57\\x4f\\x0f\\x54\\x2e\\x56\\xa2\\x06\\x16\\xcf\\xe4\\xa8\\xbd\\x7a\\xae\\xeb\\xe0\\xb0\\x83\\xdc\\x2c\\xe0\\x14\\x61\\x78\\xc0\\x74\\x82\\xa0\\x11\\x29\\xbc\\x6f\\xef\\xdc\\x81\\x41\\xc1\\x38\\x48\\x94\\xb6\\x9c\\xbe\\x2f\\x29\\xda\\x18\\x8f\\x7f\\xd4\\xac\\x34\\x1a\\x2d\\xf6\\xfd\\x90\\xde\\xe6\\xa4\\x46\\xd2\\x74\\x63\\x24\\xc7\\x5c\\x1e\\xf5\\xb1\\xac\\xe1\\x87\\xd3\\xbc\\x16\\xd7\\x05\\x59\\x89\\x29\\x75\\xd7\\xe4\\x71\\x38\\xf0\\x40\\x63\\x85\\xea\"},\n{{0xdb,0x3a,0x44,0xdf,0x40,0xd2,0x55,0xa2,0x5c,0xf2,0x3f,0x53,0xc4,0x52,0x23,0xb7,0xd8,0xf1,0xf1,0xf1,0x11,0xba,0x07,0x40,0x6b,0x71,0xe1,0x84,0xa8,0xcd,0x06,0x12,},{0x6b,0x12,0xbd,0x95,0x80,0xae,0x20,0x7a,0x9b,0x0b,0xaa,0x82,0x87,0xb8,0xbb,0x86,0x66,0x93,0x73,0xee,0x5e,0x5a,0x62,0x5a,0xb4,0xa6,0xef,0x2d,0x08,0x71,0x25,0x97,},{0xcc,0x28,0xb5,0xef,0x4b,0x97,0x73,0x63,0x7f,0xae,0x7e,0x5f,0x08,0x4b,0x69,0x94,0xaa,0x35,0x98,0xf8,0xf4,0xa6,0x5d,0x0b,0xb2,0x01,0xd1,0x72,0xd8,0x61,0xa3,0x01,0x49,0xb3,0x33,0x8d,0x3c,0x3a,0xb7,0x5b,0x32,0xb2,0x55,0x95,0xcd,0x8b,0x28,0x96,0x30,0xc3,0x37,0x6a,0xcd,0x10,0xba,0x2a,0xb2,0x6b,0xc1,0xab,0xa9,0x00,0x84,0x0e,},\"\\x52\\xdd\\x8b\\xa4\\xff\\xfa\\x34\\x4d\\x1e\\x08\\x11\\xd9\\x67\\x5c\\x31\\x3f\\x9c\\xc0\\xe5\\xa1\\x38\\x47\\x86\\x91\\x98\\x9d\\x2b\\x7f\\x73\\x89\\x02\\x50\\x68\\xfa\\x35\\xf7\\x4f\\x9a\\xea\\xf1\\xe9\\x56\\x65\\xec\\xf8\\xd5\\x70\\x7f\\x75\\xf6\\x5f\\x22\\x56\\xee\\xa9\\x33\\x98\\xbe\\x59\\xc0\\xd5\\x38\\xf5\\xe8\\x58\\x4b\\xfb\\xb3\\xa2\\x40\\xf5\\x01\\x6d\\x79\\x27\\x23\\x4c\\xb3\\xea\\xc3\\x5b\\x39\\x1b\\x8b\\x53\\xf2\\x0e\\xd8\\xba\\xe0\\xba\\x11\\x08\\x96\\x94\\xbf\\xea\\xde\\x11\\x07\\x16\\x56\\xd4\\xcf\\x18\\xef\\x2d\\x36\\x81\\x92\\xe0\\x4e\\x08\\xe3\\x02\\x4f\\xc1\\xd2\\xfd\\xa6\\x31\\x2a\\xfc\\xa6\\x8d\\x10\\xc9\\xc3\\x36\\xa0\\xe3\\x68\\x50\\xbe\\x1a\\x4f\\x35\\xb0\\x33\\xa8\\x5a\\x2a\\x95\\x49\\xf2\\x67\\x3a\\x99\\x5f\\x2a\\x9a\\xb4\\xbd\\x46\\xc8\\xfd\\x2d\\x83\\x8e\\x64\\xf7\\x61\\x71\\x34\\x27\\x32\\x9c\\x9a\\xf5\\xe4\\x21\\x1a\\x22\\xab\\x20\\x8a\\xaa\\xb8\\x0e\\x19\\x4c\\xd0\\xf6\\xa5\\x02\\xb3\\x08\\xfe\\xd6\\xc5\\x83\\x51\\x78\\x01\\xa4\\x8e\\xd4\\x33\\x0e\\x2f\\xad\\xdc\\xd4\\x18\\x09\\xc3\\x91\\x9b\\x30\\xe8\\x4d\\xb3\\xc6\\x87\\x31\\x03\\x1e\\x79\\x85\\x7d\\xd9\\xf9\\x7f\\xfd\\x12\\x54\\x7d\\xa7\\x06\\x67\\x98\\x07\\x41\\x51\\xec\\x88\\xa5\\xfa\\x96\\x3b\\x9d\\x9d\\x83\\xba\\x2f\\xee\\x13\\x58\\x33\\x95\\x0e\\xf7\\xbc\\x62\\xb3\\x40\\x1e\\xa1\\x1b\\xb3\\x6f\\x25\\x56\\x1b\\xc0\\x52\\x2b\\xb0\\x2d\\x8d\\xad\\x05\\x43\\xf6\\x3d\\x54\\x7b\\xe7\\x7d\\x0a\\x4c\\x9b\\xf6\\x5d\\x42\\xf3\\xa2\\x76\\x14\\x4d\\x2e\\x47\\x4e\\x29\\x42\\xf3\\x79\\x02\\x21\\xe2\\x6f\\xba\\xe7\\xca\\x91\\xef\\xd8\\x59\\x21\\x99\\x08\\x35\\xfa\\xfb\\x6d\\xc6\\x74\\x63\\x5c\\x96\\x01\\x82\\x10\\x38\\xb5\\x27\\x11\\x34\\x3d\\x1a\\xa2\\x5f\\x1c\\x46\\xba\\x4e\\x3c\\x6e\\x71\\x2b\\xac\\x19\\xe5\\x3e\\xae\\x30\\xe5\\x24\\x6e\\x4f\\x04\\xdd\\xf2\\xac\\xdb\\xb3\\x41\\x63\\xc2\\x43\\x67\\x76\\x90\\xbe\\x0b\\xf2\\xe3\\xfa\\x16\\x48\\x70\\xb5\\xe6\\xf5\\x36\\xb2\\x2f\\xb8\\x9e\\x5e\\x8e\\x1d\\x87\\xcd\\xb3\\x40\\x44\\x97\\x7e\\xd2\\x83\\x6e\\x54\\x4d\\x7b\\xa4\\x93\\xdd\\x42\\xa2\\xb6\\x49\\xbc\\xf3\\x13\\xc5\\xb3\\x9a\\x1d\\xbf\\xff\\x3e\\x7f\\x2a\\x59\\xad\\xe8\\x7d\\x3e\\x7b\\x25\\x8f\\x58\\xe5\\x65\\xfd\\xba\\x3e\\x4d\\x92\\xb1\\xed\\xb8\\xbf\\xf5\\x4d\\xc4\\x9d\\x86\\xc5\\x3c\\x03\\x0c\\xf5\\x8b\\x97\\xef\\x06\\x6d\\x24\\x1b\\x54\\x05\\x30\\x21\\x39\\x05\\x73\\x9d\\x8e\\x1a\\xa7\\x2e\\xd9\\x0f\\x68\\x5d\\x39\\x58\\xea\\xa2\\x42\\xb0\\xcb\\xf7\\xa2\\xeb\\x97\\x6e\\xe9\\x6a\\x63\\xe6\\x67\\x86\\x46\\x41\\x69\\xa7\\x42\\xd4\\x57\\xe4\\xd9\\x11\\x7c\\x7d\\x66\\x42\\x84\\x45\\xa4\\x69\\x30\\xc2\\x8b\\xa7\\xa2\\x65\\x82\\x41\\x80\\x5e\\xbe\\x72\\xc7\\x8e\\x02\\x03\\x5d\\x26\\x3a\\x21\\x1e\\x59\\x0b\\x49\\x0c\\xdb\\x84\\x41\\x50\\x62\\xee\\xd1\\x4f\\x13\\xb8\\xa1\\xa9\\xe7\\x7c\\x8d\\x7b\\x75\\x51\\x5b\\x18\\xfb\\x85\\x38\\x6e\\x4a\\x7e\\x05\\x39\\x80\\xd3\\x0f\\x48\\x99\\xe8\\x38\\x63\\xbe\\xe8\\x75\\x58\\x58\\x87\\xc5\\xf4\\x8b\\x51\\x6c\\xcb\\x73\\x1c\\x4b\\xca\\xa3\\xdf\\x07\\xd0\\x47\\x95\\x81\\x40\\x96\\xc7\\x9d\\x7c\\x5f\\xdc\\x4d\\xab\\xf5\\xe2\\x6a\\x4c\\xa1\\x83\\x8e\\x0e\\x5d\\x87\\xdb\\x71\\x30\\x9b\\x81\\xea\\x7c\\xe4\\x61\\xe5\\xe4\\x4c\\x7a\\xb2\\xf1\\x05\\xad\\x75\\xc5\\x43\\xc1\\xe9\\x17\\x9c\\x36\\xa5\\xfa\\x55\\x5e\\xc9\\x22\\xff\\xed\\x1b\\x76\\xd2\\x58\\x01\\xdd\\x74\\xf8\\x0c\\xd0\\xa6\\xba\\x7b\\xc2\\x0d\\xb0\\xad\\x58\\x0b\\x7b\\xbb\\x9d\\xdc\\xfd\\x93\\xad\\x1c\\x5f\\x20\\xf3\\xe2\\x7c\\x3e\\xa3\\xa1\\xe7\\x1e\\xb7\\x4f\\xf5\\xf9\\x44\\xcd\\x3b\\x98\\xf6\\xd0\\x45\\x29\\x59\\x30\\x11\\xc4\\xae\\xce\\xf6\\xdc\\xaa\\x60\\xfb\\x18\\x36\\x8c\\xb1\\x2b\\x6e\\x39\\x1b\\x3f\\x5d\\xf7\\x65\\xcb\\xab\\xff\\x15\\x89\\x8c\\x84\\x79\\x6f\\xc2\\xb5\\x3f\\xa4\\x90\\x0d\\xad\\x03\\x4a\\x13\\xb0\\xce\\x14\\x45\\xad\\xda\\x4e\\xf7\\x19\\xbe\\x74\\x14\\x19\\xe2\\x31\\xe9\\x2f\\x1f\\x66\\x7a\\x32\\x84\\x2a\\x42\\xdb\\x79\\xbd\\x7a\\x01\\x4a\\x80\\x9c\\x81\\x59\\x6e\\x82\\x62\\x73\\xd1\\x6f\\xe5\\xd4\\x04\\x58\\x24\\x2a\\xe1\\x0e\\x12\\xe6\\x0b\\x34\\x89\\x53\\x0c\\x66\\x22\\xb5\\xbb\\x44\\x45\\x4f\\x29\\x61\\x6e\\x47\\xe9\\xa2\\x97\\xce\\x1c\\xa0\\x74\\x13\\x7f\\xd9\\xae\\x13\\xe3\\xee\\x8e\\xdb\\xcf\\x78\\xaf\\x26\\x54\\x59\\xdb\\x1a\\xf3\\x42\\xdc\\x0b\\x2f\\xc8\\x09\\xbd\\xa0\\x15\\xb5\\xa8\\x2b\\x2b\\x7c\\x54\\xef\\xe4\\xe5\\xfc\\x25\\x2e\\xb1\\x3d\\x66\\xe8\\x08\\x93\\x6f\\x19\\x10\\xf4\\xc4\\x8b\\xe0\\xef\\x7a\"},\n{{0x77,0x96,0x4d,0xad,0x52,0xb5,0x79,0xb8,0x96,0x67,0x53,0xda,0x31,0x86,0xd1,0xc5,0xe9,0xd3,0x3d,0x33,0xa4,0xdb,0x38,0xbc,0x0d,0x7a,0x1a,0x6c,0x11,0x2c,0x13,0xc2,},{0xfc,0x25,0x12,0x5e,0x78,0x29,0xf6,0x42,0x34,0x37,0x5e,0x52,0xae,0x9f,0x77,0xae,0x10,0x13,0xf9,0x9d,0xf5,0xf9,0x96,0x5a,0xd2,0xaa,0x16,0x58,0x95,0x96,0xd0,0x91,},{0x3d,0x1b,0x4b,0x4e,0x82,0x0d,0x25,0x0b,0xe2,0xa8,0xfa,0x97,0x1e,0x59,0x9e,0x1e,0x98,0x97,0x75,0x28,0xb2,0xf9,0x30,0x18,0x96,0x81,0xa9,0x3b,0x05,0xe1,0xa7,0x06,0xfc,0x80,0xef,0xfa,0x94,0xe9,0x29,0xbc,0x43,0x92,0x16,0x56,0x89,0x73,0x88,0x28,0x8a,0x9b,0x29,0x27,0x1f,0x37,0xa1,0x4b,0xe0,0x14,0xb8,0x73,0xc6,0x8f,0xc9,0x04,},\"\\xc3\\x39\\xe7\\x18\\xa7\\x57\\xf3\\xf3\\xbd\\x1b\\xab\\xdd\\x2e\\x00\\xaa\\xa5\\xcd\\x7f\\xc9\\x00\\x5e\\xe3\\x4b\\x6f\\xdc\\x09\\xd7\\x1f\\xbd\\x9c\\x92\\x89\\xab\\x1d\\xd1\\x4d\\xba\\x2c\\xad\\x58\\xcb\\x80\\x51\\x16\\x77\\x7b\\xd8\\x0c\\x85\\x96\\x64\\x33\\xad\\x46\\xf9\\xca\\x6e\\x54\\xf1\\x3d\\xd3\\xca\\x7e\\x56\\xe4\\x7f\\xea\\x41\\xe5\\x48\\x8a\\x45\\xad\\x53\\xbc\\x5d\\x65\\x74\\x27\\xe1\\xd7\\x93\\x8f\\x55\\x19\\xf1\\xb0\\x9f\\x5b\\xdd\\x98\\xaa\\xe5\\xac\\x96\\x43\\xef\\x78\\xeb\\xa4\\x93\\x49\\x25\\x33\\x9a\\x15\\x5d\\xc6\\x68\\x28\\x57\\x10\\x02\\x09\\x7a\\x11\\xa5\\xce\\xe7\\xb5\\x1a\\x44\\x1b\\x75\\x6b\\x0c\\xe6\\x5b\\x77\\x9a\\xfe\\x19\\xda\\x6a\\x18\\xef\\xc1\\x45\\xf6\\x09\\x0c\\xe7\\x70\\xde\\x9e\\x0e\\x91\\xf5\\x43\\x27\\x0a\\x09\\x85\\xea\\xb4\\x75\\x29\\x3c\\xcf\\xdd\\x31\\x41\\xc4\\x14\\x2e\\x47\\x22\\x23\\x3b\\x26\\x74\\x99\\x44\\x76\\x41\\x23\\x5d\\x72\\x8b\\xd7\\x5c\\xd1\\xad\\xc0\\xdb\\x14\\x2f\\x73\\x31\\xad\\xdd\\xf8\\xc5\\xee\\xa3\\xd5\\x76\\x40\\x5d\\x86\\x99\\x15\\xb5\\x60\\xf9\\x64\\xe3\\xe0\\x00\\x3c\\x91\\xf5\\xe9\\x6b\\xff\\xbe\\xee\\xc7\\x3e\\x51\\x02\\x4e\\xf5\\x2c\\x55\\xc6\\xdc\\xb5\\x4d\\x58\\x20\\x3e\\x62\\xf4\\xdd\\xb6\\xe1\\x37\\xeb\\x08\\xe1\\xbf\\x13\\x26\\x01\\x8a\\xfd\\x1a\\x86\\xca\\xb6\\xc8\\x41\\xe0\\x66\\x1c\\xe0\\xa1\\xa7\\xae\\x96\\x7f\\x24\\xc1\\xa7\\x7f\\xc7\\xca\\x50\\x5f\\x72\\xe5\\xf7\\x93\\x6e\\x39\\xc6\\xf4\\x83\\x7e\\x25\\x95\\x19\\x5a\\x69\\xcd\\x67\\x65\\x10\\xa7\\x16\\x1a\\x4d\\xc5\\xe3\\x18\\xf3\\xd4\\xf3\\xac\\x0a\\xf0\\x3f\\x8c\\x4a\\xe5\\xbc\\xe3\\x93\\x24\\xe9\\x73\\x8a\\xea\\x49\\xf0\\x02\\xd3\\x2d\\x16\\xde\\x23\\x17\\xe9\\x5a\\x9f\\x32\\xee\\x60\\x4e\\x13\\xdb\\x80\\x38\\xb2\\x64\\xcf\\xc1\\x7a\\xed\\x29\\xc9\\xde\\xbf\\x81\\x91\\xde\\x9e\\x0e\\xfc\\x95\\x1a\\xd6\\xd5\\x48\\x67\\x06\\x8c\\xf5\\x0a\\x26\\x9c\\x37\\xa2\\x41\\xf8\\x52\\x06\\x78\\x8d\\x23\\x14\\x31\\x77\\xf6\\x59\\xcc\\xa6\\x6c\\xfc\\xe0\\x3b\\xc0\\x50\\x22\\x55\\x33\\x7f\\x16\\xb3\\xda\\xd6\\xf7\\x91\\x32\\xab\\xf8\\x0f\\xf1\\x2b\\x6d\\x22\\x81\\xe6\\x37\\xeb\\x6c\\x71\\xf7\\x6e\\x26\\x33\\xa1\\x14\\x56\\x52\\x40\\xee\\xd0\\x0f\\xab\\xea\\x9e\\xd8\\xde\\x28\\xc8\\x32\\x21\\xf8\\xcb\\x48\\x5f\\x51\\x2d\\x90\\x08\\xbf\\xc7\\x4a\\x36\\x6d\\x4c\\x2b\\x4e\\xd1\\x72\\xd3\\x67\\xe0\\x24\\x7c\\xb6\\x50\\x98\\xc1\\x10\\x28\\x2e\\x83\\x1d\\xf8\\xe9\\xbd\\x4f\\xbd\\x5f\\x4d\\xd2\\xb7\\xf2\\x42\\x0c\\x23\\xb8\\x5a\\x63\\x7a\\xa2\\x26\\x2c\\x3c\\xb8\\x84\\x05\\xf7\\x07\\x30\\xc9\\xab\\x4c\\x9d\\x0f\\x22\\x7e\\xe4\\xfa\\x4e\\xf9\\x1e\\xfe\\x9a\\x59\\xb3\\xe6\\xd8\\x43\\xdb\\x87\\x9f\\x56\\x50\\x05\\x9e\\x99\\xf0\\xe4\\xa0\\x38\\x68\\x38\\xe6\\xf9\\x87\\x6f\\x67\\xd5\\x0f\\x89\\x83\\x2d\\xda\\x5f\\x30\\xa9\\xcb\\xfd\\x71\\x01\\x34\\xf9\\xb5\\xb5\\x46\\x27\\x49\\x6a\\xa3\\xa4\\x32\\x12\\xb0\\x7f\\x03\\xdb\\x11\\xd3\\xd4\\xf8\\x75\\xd4\\x1d\\x1f\\x4a\\xc4\\x59\\x69\\xdd\\xef\\x69\\xf8\\x1a\\x06\\xd2\\xb0\\xc6\\x46\\xc9\\xcd\\x93\\x1c\\xf2\\x50\\x2f\\xef\\x0d\\xd3\\x2a\\xbb\\xf0\\x95\\x1e\\xd3\\x03\\xf5\\x28\\x48\\x25\\x93\\x43\\x97\\xfc\\x22\\xe7\\x86\\x98\\xd3\\x5a\\xd8\\x1d\\x82\\x25\\x6b\\xf9\\xe1\\x54\\x00\\xa1\\x09\\x16\\x23\\xa9\\x82\\x6f\\x1e\\x57\\x79\\x23\\x67\\x41\\x7e\\xf0\\x25\\x86\\xd6\\x4e\\x65\\x0d\\xa9\\xac\\xe2\\xf1\\x8a\\xa0\\xa1\\x26\\xd8\\x67\\xca\\xc4\\xb5\\xd4\\xc9\\x1b\\xf5\\x20\\x9e\\x53\\x59\\x55\\x63\\x86\\xf8\\x27\\x08\\x3e\\xb5\\x3e\\x8b\\x47\\x09\\xff\\xfa\\xbe\\x92\\xc6\\x1d\\x78\\xff\\xb5\\xda\\xf1\\x02\\x74\\xe2\\x42\\xa7\\x00\\x91\\xf3\\xf9\\xb9\\xd5\\x96\\xc1\\x25\\x8c\\x9a\\x63\\x38\\x4f\\x4b\\x05\\xb0\\x28\\x66\\x12\\x22\\x18\\x1c\\x0f\\xca\\x96\\x5f\\x0a\\x2c\\xb5\\x6e\\x4b\\x55\\x6d\\x6f\\xbf\\xf7\\x1b\\x64\\xd9\\xb3\\x58\\xda\\x31\\xaa\\x37\\xc7\\x4f\\xf5\\x96\\x2f\\xb8\\xd9\\x6a\\x38\\x3d\\x04\\x97\\x24\\xc1\\x9e\\x24\\x9c\\x9e\\xdb\\xb2\\xa3\\x75\\xb2\\x3c\\xe3\\x10\\x4d\\xa0\\xec\\x58\\xd2\\x63\\x5b\\xa0\\x3b\\x55\\x42\\x3f\\xa2\\xdb\\x7e\\xb3\\x49\\xa4\\xfc\\x58\\xa1\\xef\\x54\\x0e\\xe9\\xa0\\x2c\\x2e\\x70\\x3c\\x68\\xd7\\xf8\\x47\\x5f\\x43\\x4d\\xdd\\x32\\x00\\xdb\\x1f\\x06\\x74\\x57\\x91\\xa3\\xac\\xc3\\x16\\x0d\\xba\\x50\\xa3\\x93\\x44\\x7f\\xfe\\xef\\x6d\\xc7\\xb9\\x8f\\xb0\\x66\\x84\\xcc\\x90\\xfd\\x85\\x20\\x3d\\x11\\x9d\\xcd\\x81\\x99\\xe4\\xd9\\xa8\\x9a\\xe3\\x46\\x7a\\xe4\\xbb\\x19\\xfb\\x71\\xcf\\x74\\x70\\x29\\xc2\\x40\\x96\\xf9\\xa5\\x0e\"},\n{{0x5c,0xaf,0xd8,0x17,0xa4,0x41,0x0c,0xcb,0x27,0x12,0x17,0x23,0xef,0x32,0x07,0xc1,0x73,0x1a,0x08,0x61,0x94,0x5b,0xe9,0x62,0x71,0x4c,0x0e,0xd9,0x50,0x38,0xa1,0x95,},{0x4e,0xa0,0x86,0xbe,0x43,0xec,0xe1,0xc3,0x2d,0x08,0x05,0x9b,0xba,0xdc,0x9e,0x9a,0x2b,0x2f,0x4f,0x3f,0xe3,0x70,0xf1,0xf5,0xcc,0xd7,0xdb,0xde,0xc0,0xaa,0xf3,0x03,},{0x28,0x85,0x15,0xfa,0x72,0x59,0xf1,0xeb,0x58,0x7f,0xe8,0xa2,0xc4,0x03,0x43,0x4c,0x46,0xf8,0xd7,0xe7,0x5b,0x6d,0x22,0xbb,0x38,0x96,0x56,0x6c,0x01,0x7d,0x09,0xb6,0x98,0xc2,0xc8,0x07,0x79,0x9c,0x2f,0x65,0xf9,0xcd,0xb4,0xeb,0x58,0x15,0x1c,0xcf,0xc4,0x8d,0x10,0x80,0x61,0xa6,0xb3,0x14,0x84,0x32,0xb2,0xbf,0xc1,0xcd,0xab,0x05,},\"\\x50\\xb2\\xf0\\x53\\x42\\x41\\x80\\x46\\xd1\\x6a\\x30\\xbe\\x4f\\xc6\\x2b\\x67\\xda\\xf6\\xc1\\x8d\\x2a\\x74\\x24\\x2b\\x7c\\xb5\\x5b\\xa9\\x0a\\xd2\\x0b\\x6c\\xaf\\xdd\\x60\\x15\\x57\\x37\\xc2\\x9d\\xe4\\x8a\\xa5\\xd7\\x99\\xfe\\x54\\x95\\xfe\\x59\\xdf\\x5a\\x9b\\x8c\\x0a\\x8e\\x54\\x18\\x90\\x47\\x63\\xfb\\xad\\x83\\xea\\x69\\x86\\x65\\x1b\\xac\\x31\\x11\\x79\\x39\\xce\\xf4\\xe0\\xc7\\x99\\x30\\xd5\\x2d\\xfd\\x7d\\xb4\\x3c\\x31\\xad\\xda\\xe3\\xcf\\x93\\xe3\\xef\\xc5\\xa9\\x16\\xef\\xd0\\xd6\\x5f\\xdc\\x30\\x90\\x9f\\xa3\\x56\\xcc\\xbc\\x52\\x47\\xd7\\xaa\\xa0\\x67\\x13\\x1b\\x6b\\x48\\x20\\xfd\\x02\\xf8\\xe3\\x95\\xf5\\xa9\\x70\\x4c\\x9b\\xdd\\x75\\x60\\xa6\\x11\\xd6\\x25\\x59\\xa8\\xdf\\xe1\\xd2\\x85\\x9c\\x52\\x48\\x6c\\xc1\\x1e\\xd3\\x33\\x19\\x92\\x48\\x8f\\x41\\x75\\x20\\xd9\\x20\\xdc\\x73\\xa3\\x2d\\x4f\\x08\\x11\\x00\\x82\\x50\\x0f\\x5a\\x96\\x2a\\x30\\x69\\x32\\xc6\\xa7\\x80\\x29\\x55\\xce\\xda\\xd7\\xab\\xf5\\x3b\\x0f\\x19\\xfe\\x47\\x94\\xa3\\x1d\\x6b\\x85\\x53\\x80\\x28\\x43\\x06\\xcc\\xff\\x71\\xa4\\x00\\x78\\x59\\xa2\\x32\\x8b\\xb1\\x90\\x24\\xc4\\x3e\\x10\\xd7\\x70\\x64\\xd8\\x66\\xd9\\x62\\x2d\\x14\\x2c\\x27\\x35\\x4b\\x84\\xac\\x3b\\x4f\\x82\\x32\\xf7\\xa2\\xf8\\xaf\\x64\\x09\\xd5\\xcc\\x75\\x7a\\x18\\xef\\x81\\x3d\\xfa\\xf4\\xb9\\xbc\\x04\\x0c\\xb0\\x06\\xd7\\x7f\\x14\\x36\\x41\\xaa\\x20\\x36\\xac\\x7b\\xc9\\x28\\xdc\\x96\\x58\\x5d\\x9e\\x36\\xc7\\xbc\\x9c\\x56\\x4d\\x25\\xf1\\xc2\\xcc\\x0b\\xea\\xb9\\xd5\\xf2\\x07\\xe8\\x4b\\x21\\x5f\\x1e\\x7a\\xa6\\xfc\\x32\\x82\\x37\\xb7\\x9c\\x39\\x92\\x3a\\x4e\\x09\\xc7\\xc7\\x3d\\xc6\\xb2\\x4b\\x14\\x16\\x29\\x4d\\x79\\x8a\\x4e\\xd5\\xf7\\x58\\x33\\x6d\\x91\\x5a\\x87\\x0a\\x7d\\x6b\\x75\\x92\\xb5\\xb8\\x8a\\xac\\xe2\\xdc\\x5f\\x26\\x7b\\xdb\\x49\\x11\\x41\\xcb\\xba\\xe2\\xa6\\x77\\x40\\x7c\\xc0\\x95\\x5f\\x96\\x19\\x62\\x59\\x93\\x04\\xba\\x0b\\x83\\x96\\x71\\xa5\\xc0\\x00\\xe9\\x20\\x10\\x8a\\x05\\x29\\x80\\x87\\xe4\\x97\\x70\\xae\\xee\\xaa\\xb3\\x63\\x27\\x24\\xcb\\x0f\\xc2\\x28\\x57\\x96\\xdc\\x41\\x48\\x14\\xfd\\xa7\\x8a\\x54\\xe6\\x7f\\x00\\xa0\\x2f\\x77\\xd3\\xcc\\xde\\x1e\\xd9\\xd7\\xb1\\xde\\xf1\\x4e\\xa1\\xf6\\x19\\x10\\xbd\\xf3\\x0a\\x11\\x96\\xfc\\x63\\x51\\xb6\\x22\\x54\\xd6\\x44\\x5e\\x6c\\x90\\x44\\x5b\\x16\\xef\\xaf\\xe2\\x89\\xa2\\x78\\x4b\\x92\\xe4\\x2b\\x78\\xa4\\xa9\\x00\\xc3\\x5f\\x55\\x63\\x0b\\xbb\\x77\\x62\\xff\\x9e\\xb7\\xfe\\xf7\\xd0\\x4c\\x90\\xb9\\x57\\x1c\\x4f\\xc7\\x60\\xa4\\x10\\xdb\\xfc\\x25\\x29\\x91\\xd0\\xba\\x27\\xf2\\xd4\\x14\\xfe\\x64\\xee\\xfd\\xff\\x4a\\xbc\\x18\\x81\\x7c\\x97\\x06\\xc6\\x31\\xbf\\xa2\\x03\\x82\\x1d\\x3b\\x92\\xcb\\x33\\x8b\\xaa\\xf5\\xd1\\x23\\x2b\\x46\\x26\\x47\\x95\\x4d\\x09\\x02\\x46\\x2f\\xb1\\x69\\x6e\\x99\\x1f\\x07\\xfa\\x9c\\x3d\\xbc\\xf2\\x87\\x29\\x60\\x83\\x1b\\x4d\\xed\\x92\\xa4\\x21\\xcf\\x21\\xb7\\x53\\x16\\x5f\\xf3\\x09\\xef\\xe2\\xef\\x54\\x38\\xc0\\x12\\x70\\xd1\\x0c\\x6a\\x03\\xd3\\x4f\\x71\\xeb\\xc2\\xda\\xb1\\xda\\x90\\xda\\xa3\\x57\\x98\\x4d\\x24\\x62\\xbc\\xb3\\x5e\\xe3\\xde\\x55\\xc3\\xa5\\x5f\\x8b\\x98\\xae\\xc2\\x11\\x4f\\x74\\xc8\\x43\\x41\\xa6\\x41\\x27\\x86\\x3c\\x12\\x0b\\x5e\\xca\\xd9\\xe3\\x29\\xa5\\x75\\x6a\\xe4\\xa2\\x55\\x5d\\x84\\x92\\xcd\\xa8\\x35\\x22\\x5a\\x8d\\xeb\\x3f\\x9c\\x15\\x58\\xf0\\xd4\\x25\\xbc\\x17\\x2f\\xf7\\x64\\x0c\\xc7\\x9d\\x97\\x80\\x04\\x16\\xfd\\x62\\x94\\xcc\\xcc\\x70\\xcd\\x1c\\xf5\\xb6\\xa8\\xe2\\xaa\\x07\\x28\\x9b\\xd5\\x22\\xbf\\x99\\xdc\\x96\\xc3\\x6b\\xfe\\xe8\\x0e\\x84\\x6f\\x5d\\xd7\\x46\\xdd\\x4c\\x50\\x03\\xe4\\xbf\\x7d\\x29\\xef\\xee\\xa7\\x50\\x8a\\x01\\x61\\x23\\x68\\x82\\xc9\\xa8\\x2a\\x56\\xaa\\x2c\\x25\\x74\\x66\\x96\\x52\\xc6\\x30\\x92\\x3a\\xb4\\x70\\xdd\\xb9\\x5d\\x45\\x6f\\x7b\\x8e\\x8f\\x07\\x59\\x9b\\xa0\\xd1\\xd3\\x8b\\xc7\\xf8\\x17\\x6e\\x3f\\xdf\\x02\\x09\\xbd\\x6f\\x75\\xd4\\xcc\\x11\\x80\\x3a\\xfb\\x18\\x56\\xcb\\xc0\\xe9\\x1c\\x73\\x73\\x0e\\x4f\\xb9\\x8f\\x3c\\x94\\x8a\\x87\\xd5\\xa7\\xed\\xcc\\x0a\\x6a\\x8a\\xc8\\x10\\xea\\x3e\\xaa\\x6e\\x06\\x3c\\xec\\x5f\\x55\\x66\\xcd\\x6d\\xed\\xc5\\x37\\xdb\\x6d\\x68\\x6b\\x80\\x21\\xf6\\xea\\x82\\x5a\\xd7\\x47\\x5e\\xc7\\xf1\\xc5\\xdb\\xde\\x45\\xd3\\xff\\x4b\\x5e\\xe5\\x1c\\x0d\\x04\\xf1\\xd7\\x40\\x18\\xeb\\x91\\xe5\\x04\\x0d\\x01\\xc8\\xb7\\x1a\\x4a\\xab\\xbd\\xe6\\x09\\x4d\\x4a\\xfe\\xcc\\xb1\\x8d\\xfc\\xde\\xd7\\x3e\\xa7\\x5e\\x3b\\x9f\\x8c\\xe1\\x67\\xdf\\x62\\x09\\xae\"},\n{{0xd5,0xca,0xc8,0x55,0x21,0xaf,0x78,0x1f,0x3d,0x5f,0x66,0x86,0x2a,0x04,0xb0,0x87,0xd0,0xcc,0xdc,0xac,0x92,0x6c,0xfe,0x9e,0x74,0x7b,0xe8,0xd5,0xc2,0x63,0x3f,0x78,},{0x10,0x0d,0xcc,0x53,0x03,0x9b,0xf0,0x5e,0xa0,0xa9,0xf5,0x88,0x82,0x12,0x69,0x3d,0x4f,0x9e,0x0e,0x75,0x25,0x95,0xbb,0xcd,0x02,0x06,0x10,0xe0,0xae,0x21,0x35,0x96,},{0x5d,0xc0,0x33,0x63,0x41,0x4e,0xea,0xc0,0x08,0x6f,0xb6,0xfe,0xba,0x44,0x21,0x7c,0xef,0x4c,0x52,0x0d,0xb6,0x19,0x26,0xdf,0x68,0x0c,0xa6,0x02,0xdc,0x11,0x00,0x3c,0xe6,0xaf,0xbf,0x3d,0x13,0xc8,0xc5,0xb0,0x52,0x73,0xd2,0x14,0x15,0xe6,0x7c,0x14,0xa2,0xee,0x5d,0x0b,0x1d,0x53,0x52,0x41,0x9a,0xb9,0xb3,0x9c,0x00,0x3a,0x51,0x0c,},\"\\xd5\\xe7\\xdd\\x59\\x49\\x09\\x37\\x5a\\x4b\\xe0\\x8e\\x74\\x82\\x5d\\x59\\x8d\\x53\\x5b\\xf4\\x6e\\xc0\\x84\\xde\\x52\\xb5\\x73\\x91\\xc1\\x27\\xef\\xf5\\x22\\x4a\\xb2\\xd1\\x94\\xdf\\xb2\\x66\\x33\\x47\\x8d\\x02\\xfb\\xda\\x74\\xd1\\xdc\\x58\\x21\\xf7\\x91\\xbf\\x96\\x2d\\x8d\\xad\\x9e\\x4e\\xf2\\x42\\x24\\x89\\x19\\x07\\xb0\\x18\\x9c\\xcc\\xc8\\xb1\\x33\\xd3\\xaa\\x20\\x78\\x92\\x6d\\xae\\xf2\\x89\\x8c\\x19\\xc2\\xe0\\xbf\\xe0\\x20\\x41\\xa9\\x04\\xb9\\xf0\\x4b\\xe7\\xcb\\x50\\xae\\xd0\\xd9\\x62\\xd1\\xad\\xd2\\x0b\\x40\\xa8\\x8a\\xb7\\xab\\xad\\x62\\x6c\\xf4\\xda\\x0a\\x78\\xf9\\xf5\\x36\\x85\\x50\\x1f\\xdf\\xa5\\x85\\x43\\xdd\\xf2\\xea\\x0e\\xea\\x69\\xe7\\xba\\x16\\x0f\\x8a\\x17\\x7a\\x25\\xfc\\x21\\xe8\\xa2\\x9c\\x66\\x16\\x33\\xe3\\x0e\\x52\\x3b\\x0e\\xc0\\x1b\\x2a\\xee\\xe2\\xd4\\x26\\xe4\\xae\\xad\\x45\\x74\\x88\\x10\\x8f\\xe5\\xf5\\x69\\xcf\\x6e\\x2f\\xdb\\x68\\xc2\\x8f\\x2b\\x30\\x52\\x82\\x35\\x77\\xcd\\x93\\x4e\\x7b\\x06\\x2c\\x8a\\x34\\x24\\xcd\\x43\\x67\\xfb\\x31\\x5b\\x74\\x4c\\xa3\\x52\\x55\\xd7\\xf1\\xaf\\x4e\\xdc\\x9b\\xc9\\xd8\\x83\\x71\\x23\\xd9\\x79\\x03\\xb4\\x3d\\xf3\\x67\\xc7\\xd4\\x18\\xc7\\x93\\x47\\xff\\xaf\\xe7\\xc7\\xb1\\x72\\x4b\\xba\\x34\\xed\\xe8\\xd3\\x56\\x8d\\xb5\\x05\\x98\\x3e\\xad\\x47\\xf6\\x2b\\x56\\xe3\\x61\\x8c\\x11\\xdb\\x8f\\xf0\\xbf\\x49\\x2a\\xc6\\x75\\x97\\xd2\\xf9\\x6a\\x6f\\x42\\x0f\\xf9\\x85\\x34\\x1b\\x78\\x6a\\xd6\\xce\\xae\\xdd\\x10\\x5d\\x0d\\x15\\x63\\xb2\\xd5\\x35\\x43\\xd7\\x8e\\x72\\x56\\x72\\x5d\\x20\\x4e\\x82\\xed\\x3a\\x2e\\x6a\\x6e\\x83\\xdf\\x61\\xfc\\x28\\x2a\\x62\\xca\\x06\\xe6\\x21\\x74\\xb5\\x5b\\xef\\x40\\xa0\\xbd\\xf8\\xd2\\x3d\\x1c\\x33\\x0c\\x71\\x44\\x14\\x85\\xee\\x85\\xe7\\x0c\\xed\\x12\\x1e\\xac\\x60\\x7f\\x58\\x06\\x78\\x16\\x3e\\x4b\\xd7\\x5c\\x67\\x09\\xff\\x3b\\x41\\xde\\x80\\x59\\x4b\\x9e\\x2f\\x2a\\xa2\\x78\\xfe\\xfc\\x21\\xd7\\x3e\\xe3\\xf7\\x28\\x54\\xb9\\x58\\xd9\\xa8\\xf6\\x3e\\x3d\\x70\\xf7\\xfe\\xad\\x8c\\x3d\\xca\\x8e\\x71\\xbf\\x4b\\x9c\\x2a\\x36\\xf2\\x12\\xb3\\x2e\\xb3\\x29\\x2e\\x63\\x55\\x80\\x38\\x65\\x59\\xee\\x1a\\x11\\xdf\\x15\\x29\\x3a\\x0c\\x21\\xcd\\x73\\x60\\x86\\x98\\x46\\xba\\x5b\\x7b\\xa8\\x5c\\x99\\x4f\\x5b\\x2f\\x9c\\xc5\\x0e\\x5e\\xea\\x8e\\x4b\\x36\\x91\\xd8\\x86\\x06\\x2a\\x18\\xcf\\xb1\\x82\\xf1\\xe8\\xb6\\x11\\xfe\\x1b\\xc2\\x63\\x15\\x9c\\xb8\\xa0\\x86\\x78\\x7c\\x81\\x1b\\xea\\x48\\x12\\x53\\x00\\x08\\xc7\\x0c\\xa0\\xc4\\x7e\\x64\\xeb\\x2f\\xba\\xd5\\xb0\\x27\\x27\\xa6\\x6f\\x2c\\xdd\\x6d\\xde\\x86\\xf5\\xd2\\xa9\\x64\\x5a\\x1e\\x9a\\xa6\\x6e\\xe0\\xe1\\x5b\\x97\\xf5\\xfd\\x22\\x95\\x96\\xee\\x02\\xe6\\x61\\xca\\xb9\\xa5\\x4e\\xee\\x1b\\x81\\xf9\\x8f\\xe2\\x56\\xed\\x6c\\x54\\xfe\\xaa\\xa0\\xba\\x04\\x7e\\xea\\x35\\x33\\x44\\xf6\\xe5\\xc6\\x2b\\xe1\\xe9\\xd5\\xc0\\x9a\\x2a\\x69\\x94\\x11\\x11\\x0c\\x56\\xd1\\x94\\x9e\\x90\\xc0\\x7b\\x19\\x38\\xba\\x95\\x55\\xac\\x1b\\xe8\\x51\\x1b\\x51\\x02\\x18\\xd7\\xcd\\xe7\\xe1\\xd7\\x4a\\x68\\xaf\\xb6\\x42\\xf8\\x17\\x15\\xfe\\x9e\\x6c\\x96\\xc5\\x03\\x81\\xae\\x5a\\x9d\\xf3\\x06\\x51\\x87\\x85\\xdc\\x4d\\xbc\\x3a\\x64\\xf6\\x0f\\x24\\x5c\\x56\\x4b\\x80\\x29\\x51\\x2f\\x38\\x1b\\x56\\xee\\x78\\x77\\x03\\x42\\x68\\x03\\xc8\\x0a\\xb1\\xc3\\x11\\xf4\\x77\\xb8\\x91\\x70\\x8b\\x59\\xfa\\x74\\x8f\\x32\\xde\\xbf\\x54\\xd2\\x41\\x37\\x71\\x97\\x8c\\x26\\x5c\\x9b\\x87\\x11\\x4a\\xdf\\x25\\xb8\\x33\\x7a\\xa9\\x3b\\x0e\\x63\\x2a\\x5b\\x6e\\xda\\x47\\x4b\\xec\\x16\\x32\\x81\\x59\\xfb\\xed\\x06\\x7b\\x00\\xb8\\x7a\\xdd\\x61\\x96\\x54\\x92\\xec\\xcc\\x6f\\xd3\\x46\\x1c\\x10\\x00\\xe4\\x03\\x7a\\xb1\\xe8\\xac\\x89\\xa8\\x52\\x4f\\x78\\xae\\x09\\xd3\\x08\\xea\\x6c\\x94\\xff\\x88\\x37\\x32\\xb7\\x12\\xee\\xc0\\xef\\x07\\x71\\x8d\\x33\\xc0\\x11\\xb9\\x39\\x8f\\x8c\\xfe\\xa7\\x33\\x07\\x5a\\xf3\\x31\\xfb\\x3f\\x97\\xcd\\xc1\\xe8\\xc9\\x9f\\x6a\\x10\\x72\\x5a\\x68\\xc5\\xc5\\x8f\\xdd\\x8b\\x0b\\xaa\\x50\\x22\\x7f\\x34\\xd7\\x3d\\x23\\x90\\x52\\x03\\x69\\x8e\\xaf\\xf6\\x26\\x65\\x4c\\xe8\\x3d\\x86\\x51\\x08\\x49\\x9b\\xe6\\x86\\x1f\\x61\\x41\\xbf\\xa6\\x21\\x9d\\x7a\\xb8\\xb5\\x84\\x51\\x91\\x99\\xf8\\x80\\xcf\\xa1\\xb2\\x6d\\x91\\x94\\xd3\\x01\\x71\\x1c\\x30\\xfb\\x44\\x6d\\x6e\\xa7\\x64\\xa4\\x31\\x0f\\x70\\xe4\\xb8\\x59\\xcf\\x95\\xfd\\x44\\xaa\\xf8\\xc1\\xe2\\x40\\xe8\\x0a\\x71\\x61\\x1d\\xbc\\xf5\\x2d\\xa5\\x8e\\xdc\\x32\\x03\\x11\\xde\\x38\\x8d\\x5d\\x9d\\x76\\x9e\\xb5\\x9b\\xe0\\x93\"},\n{{0x15,0x9a,0x9e,0xdd,0xea,0x5d,0xe6,0x34,0x03,0x98,0x7b,0x56,0x70,0xdb,0x6f,0xac,0x98,0xff,0xe5,0xec,0x3a,0x6c,0xf0,0x15,0x16,0xee,0x2c,0x70,0xce,0x3b,0x3b,0xe0,},{0xf6,0x1f,0x4a,0x04,0xa5,0xa1,0x2c,0xca,0xec,0xfa,0xf4,0x4c,0x1c,0x9c,0x18,0x88,0x47,0x5a,0x2c,0x89,0xfb,0x02,0xf2,0x6b,0xb8,0x1a,0xb5,0xf7,0x8f,0x4c,0xe3,0xa8,},{0x05,0x43,0x71,0x2c,0xef,0xa2,0x9a,0x22,0x0d,0x90,0xf8,0x1b,0xaa,0x4e,0x4c,0xf7,0x7a,0xc6,0x52,0x08,0xb2,0xd5,0xce,0x9f,0xd1,0x7c,0xe2,0x14,0xad,0x4a,0x93,0x7b,0x7f,0xc5,0xc7,0x86,0x41,0x3b,0x58,0x05,0x1c,0xca,0x3b,0xb8,0xb2,0xeb,0x55,0x65,0x7d,0x89,0x57,0x2b,0xc5,0x0e,0xa2,0xe5,0xec,0xdc,0x55,0x50,0x88,0x49,0x16,0x03,},\"\\xd1\\x95\\xe5\\x90\\x0d\\xd3\\x93\\x14\\x81\\xbc\\x01\\x2e\\x77\\xbf\\x06\\x0a\\xaf\\x31\\xcc\\xcb\\x0f\\xe1\\xa6\\xc4\\x0e\\xaf\\x28\\x6a\\x61\\x66\\xa1\\x66\\xb1\\xea\\x37\\x05\\x34\\x26\\x28\\x4b\\x92\\x0c\\x67\\xfe\\xe1\\xd4\\xb9\\xd8\\x6f\\xb8\\x61\\xcc\\x6e\\xdd\\x34\\xe1\\x0c\\x52\\x23\\x37\\x34\\xd9\\xcd\\x92\\xf5\\xdb\\xf4\\x33\\x51\\x2e\\xd2\\x55\\xac\\x6b\\x26\\xe5\\x6f\\x5c\\x66\\x4b\\xcc\\xb2\\x60\\x69\\x2c\\xf4\\x9d\\x08\\x36\\x3e\\xe9\\x4e\\x33\\x6a\\xcc\\x48\\x96\\x00\\xa6\\xaa\\x51\\x2a\\x04\\x0f\\x10\\xeb\\xf1\\x8f\\x7d\\x2c\\xbe\\xe9\\xca\\xd1\\x4c\\x4f\\xf8\\x73\\x77\\xa3\\x26\\x34\\x19\\xd8\\x29\\x75\\x29\\x40\\x1f\\x15\\x33\\x7a\\x4c\\x4d\\x23\\x25\\xed\\x7d\\xef\\x76\\x3a\\x0d\\x47\\x9c\\xaa\\x40\\x82\\x66\\x83\\x4d\\xa2\\x42\\xf3\\xa1\\x6b\\x79\\xa4\\x58\\x66\\xb9\\xd9\\xd7\\x1a\\x48\\x29\\x31\\x76\\x74\\xcf\\xf7\\xae\\x6c\\x8c\\x58\\x7b\\xa4\\xd4\\x98\\x0e\\x81\\x86\\x13\\xd3\\xad\\x82\\x50\\x7a\\x7a\\xb0\\x32\\xbb\\xf9\\x9c\\x5e\\x9b\\x64\\x03\\x71\\xbb\\x41\\xb9\\x1e\\x96\\x5d\\xc3\\x1e\\x8c\\x7d\\x4b\\x3b\\xaf\\xd4\\x95\\x70\\x52\\x7f\\xaa\\xa8\\x7a\\xbb\\xf6\\x41\\x6c\\x47\\xb1\\xb1\\xb0\\x9d\\x34\\x01\\x25\\x31\\x26\\xcb\\x24\\x6a\\xe4\\x5a\\xcf\\x5f\\x10\\x0b\\xb1\\xf9\\x2f\\x11\\xa5\\xc6\\xc9\\x37\\xe0\\x58\\x8d\\x8b\\x14\\x6b\\x3e\\x4d\\x3c\\x7e\\x5b\\xf5\\x74\\x84\\xe9\\x84\\xfe\\x3a\\xfc\\x47\\x72\\xf2\\x4e\\xbf\\x89\\x4c\\xdb\\x39\\x83\\x7f\\xbd\\x46\\x9a\\x92\\x1a\\x96\\xac\\x5a\\xf5\\xe0\\x70\\xf6\\xc9\\x62\\x4c\\x58\\x8e\\x9d\\x4f\\xe6\\xdd\\xfe\\xed\\x1f\\x8f\\xe2\\x0e\\xb9\\xc4\\x60\\xce\\x6e\\xe3\\x8b\\xf4\\x71\\xdd\\x56\\xdc\\xf2\\xe3\\xee\\x99\\x8b\\x8e\\x7f\\xdc\\xf6\\x12\\xe7\\x8a\\x2e\\x7c\\x71\\x73\\xc0\\x16\\x09\\x82\\xbe\\xde\\xcc\\x2c\\x62\\x1e\\x5f\\x66\\x11\\xb4\\xef\\x21\\x02\\xe3\\x2e\\x7c\\x29\\x80\\x3a\\x7e\\x25\\xfe\\xe1\\x51\\x24\\x31\\x58\\xa7\\x6e\\xe5\\xd8\\xc1\\xbb\\x2e\\x7d\\x8c\\x88\\x87\\x1b\\xa4\\x33\\xc5\\xe5\\x41\\xc2\\x60\\x26\\x93\\xd9\\x01\\x10\\xbe\\x79\\x5b\\x52\\x3a\\x8f\\xad\\xb6\\x05\\xd8\\xe3\\xd7\\xe4\\x93\\xfe\\x24\\x5d\\x9c\\xc5\\x32\\x0d\\x32\\xb8\\x5d\\x61\\x35\\xa4\\x4b\\x11\\x68\\x72\\x94\\x14\\xc2\\xca\\x21\\x56\\x0f\\xb4\\xfe\\xec\\xde\\xef\\x0c\\xf7\\xd8\\xe0\\x71\\x27\\x4e\\x88\\x56\\xc0\\x04\\x03\\x3e\\x80\\x01\\x3c\\x73\\xaf\\x71\\x77\\xc3\\x19\\x78\\x16\\xa5\\x03\\x2d\\x90\\x59\\xb1\\xb6\\xe4\\x15\\x2c\\x38\\x61\\x92\\xdd\\x54\\xb9\\x0f\\x9d\\x30\\x8b\\xe9\\x8e\\xd7\\xd0\\xca\\x9d\\x12\\xe8\\xaa\\xf6\\xf9\\xd8\\x69\\x38\\x6a\\xa9\\xdb\\xb0\\x15\\x93\\xd3\\x7e\\x72\\xf0\\x90\\x12\\x4d\\x34\\x55\\x29\\x8e\\x9b\\x4c\\x9e\\xc3\\xca\\xe7\\x3b\\xb8\\xee\\x41\\xeb\\x63\\xe3\\x8c\\x56\\x13\\x3e\\xfd\\xba\\xf4\\x49\\xb8\\x4e\\x1e\\x49\\x1e\\x49\\x6f\\x1c\\x70\\xa4\\x4d\\x06\\x99\\x86\\xba\\x88\\x18\\x42\\x20\\x69\\x06\\x1b\\xb6\\xeb\\xcb\\x7b\\x20\\x54\\xe6\\x3d\\xf3\\x81\\xba\\x03\\xc6\\xa7\\x67\\x4a\\xbd\\x61\\x05\\x0d\\x69\\x3d\\x41\\xbf\\xe3\\xca\\x50\\x46\\xc6\\x5f\\xfb\\x06\\xa0\\x74\\x98\\x09\\xe5\\x8d\\x4c\\x93\\xa9\\xff\\x69\\xed\\x30\\x95\\x0b\\xde\\x1f\\x99\\x21\\x6f\\xff\\x29\\x9f\\x22\\xf1\\x6b\\x07\\xc2\\x54\\xc2\\x65\\xae\\x0b\\x12\\xe3\\x13\\x16\\x3c\\xcd\\xf5\\x03\\x6d\\x49\\x05\\x5f\\x9a\\x96\\x67\\xb0\\xb7\\x12\\x92\\xbc\\x3b\\x62\\x60\\xcb\\x87\\x56\\x8f\\xd2\\x67\\x17\\x0b\\xc9\\x40\\xc3\\x33\\x29\\xd7\\x29\\xc9\\xe3\\x2d\\x0f\\x91\\x80\\xb1\\x34\\xbf\\xf8\\xae\\x93\\xb1\\xbf\\xeb\\xfa\\x38\\x42\\xfe\\xf2\\x0b\\xc0\\x4a\\x29\\x7b\\x00\\xa8\\x4a\\x0f\\x42\\x8d\\x5f\\x42\\xfa\\xb8\\x61\\x42\\x99\\x6d\\x4a\\xd9\\xef\\xab\\xc4\\x98\\x52\\xf8\\x81\\x2f\\x3b\\xfb\\x5e\\x57\\x53\\x9e\\x21\\x86\\xeb\\x8a\\xe2\\x29\\x58\\x0b\\xc6\\x04\\x48\\xac\\xde\\xf5\\x72\\x3c\\x88\\x15\\x88\\xb5\\x37\\x89\\xf0\\x5b\\x91\\xe0\\x22\\x89\\x22\\x32\\x52\\xd7\\x53\\xf7\\x98\\x13\\x77\\x9a\\xce\\x70\\x5e\\x04\\xae\\xd1\\x52\\x65\\xd3\\xbd\\xf2\\xa2\\xe4\\xb1\\x56\\x54\\x77\\x0a\\x27\\x58\\x54\\xe6\\x4c\\xf4\\x43\\x90\\x60\\x7a\\x45\\xd7\\xbb\\xa9\\xaf\\x3e\\x1a\\x2e\\x28\\x30\\x67\\xfc\\xd6\\xe6\\x33\\xaa\\x2d\\x24\\x03\\xbd\\x81\\xf7\\xc7\\x92\\x76\\x55\\x10\\xb5\\x98\\x41\\x2f\\x6b\\xda\\x07\\xb2\\xa9\\x45\\xb9\\xf6\\xd4\\x6a\\xb2\\xf7\\xc3\\x20\\x07\\x5b\\xc6\\xb6\\x0a\\x80\\xda\\xa4\\x4a\\xf3\\x91\\xf4\\xcd\\x56\\x21\\x31\\xbb\\xdd\\x40\\x7d\\x66\\xf8\\xdb\\x12\\x59\\xbd\\x76\\xfa\\x7e\\x4d\\x52\\x64\\xe1\\x45\\x54\\x6c\\x94\\x2d\\xfe\\x90\\x07\"},\n{{0xed,0xa0,0xfe,0xac,0x0f,0x2a,0xfe,0x01,0x74,0x49,0x15,0x52,0x48,0x7f,0x39,0x62,0x17,0x13,0x32,0xb8,0x22,0xdc,0x3d,0xa4,0x26,0xf9,0xa5,0xf6,0x2b,0xef,0x7b,0x8d,},{0xef,0xf2,0x7c,0xb5,0x1f,0x4d,0x39,0xc2,0x42,0xf3,0x23,0x01,0x9a,0x12,0x34,0x81,0x8e,0xf2,0xe4,0xcd,0x1b,0xda,0xbc,0x0f,0x2d,0x8d,0x21,0x34,0x58,0xdc,0x47,0x1a,},{0x6c,0xbc,0x7e,0x6f,0x5e,0x12,0x14,0x5b,0x01,0x68,0x7a,0xd9,0xca,0x6b,0xf6,0xe4,0x7f,0x94,0x17,0xc2,0xce,0xfa,0xd3,0xfb,0xd6,0x8f,0xd6,0x5d,0xd7,0x4f,0xaa,0x97,0x50,0xcb,0xa9,0x92,0xde,0x4c,0xeb,0xcf,0xcd,0x35,0x80,0x8c,0xbb,0x3f,0xf1,0x2c,0x8d,0x93,0x07,0x99,0xaf,0x36,0xef,0xe7,0x97,0x6b,0xf2,0xfe,0xa7,0x9e,0x3e,0x0e,},\"\\x90\\x11\\x19\\xda\\x4e\\xd1\\x81\\xaa\\x9e\\x11\\x17\\x0b\\x20\\x62\\x6e\\x00\\xab\\xf0\\xb5\\x48\\x24\\x5e\\x3d\\xeb\\xf9\\x4b\\xf5\\xed\\x50\\xae\\xef\\xe9\\x42\\xb4\\x02\\xcc\\x99\\x48\\x94\\x78\\x52\\xde\\xdf\\x2b\\x53\\x04\\x01\\x76\\x65\\x74\\x9c\\xd4\\x7c\\x21\\xfc\\x65\\x2e\\xe9\\x95\\x67\\x9f\\xf9\\x31\\xe3\\x0e\\x94\\xaf\\x98\\xb4\\xa9\\x8f\\xd4\\x4e\\x84\\x9e\\x98\\x47\\x0f\\xe0\\xa7\\x6c\\xe8\\x0c\\x61\\xf8\\x3f\\xb4\\xe8\\x5b\\xa5\\x23\\xee\\x3f\\xd2\\x5d\\xb0\\x00\\x05\\x3b\\x49\\xd0\\x93\\x0e\\x3b\\x07\\x9e\\x86\\x6e\\x15\\x3f\\x7d\\x86\\x36\\x7f\\x23\\xa4\\xc4\\xab\\xc6\\x3b\\x30\\x75\\x46\\x1e\\x90\\xe4\\xfd\\x89\\x6d\\xa0\\x49\\x2e\\x27\\xd7\\x14\\x94\\x1e\\x96\\x7f\\x52\\xc9\\x3f\\xfa\\xec\\x44\\x80\\x3f\\x57\\x87\\x7d\\x86\\x6e\\xb5\\xf8\\xc5\\x28\\x17\\x85\\xaa\\x48\\x26\\x79\\x2e\\x39\\x64\\xc6\\x65\\x90\\x82\\x1e\\xea\\x66\\x75\\x20\\x74\\x26\\x40\\x18\\xa5\\x71\\xf5\\xb0\\x13\\xb3\\x8e\\x15\\x2c\\x95\\xc0\\x24\\x8a\\xe6\\x03\\x68\\x22\\xa6\\x7a\\xfc\\x9e\\x02\\x69\\x45\\x73\\x15\\x2b\\x86\\x4c\\x56\\xc2\\xf7\\x30\\xa0\\x82\\x10\\xf8\\x5e\\xc4\\x6f\\x98\\x4a\\x64\\x3d\\x51\\x6a\\x15\\xfc\\xfa\\xa8\\x48\\x40\\xf5\\x12\\x04\\x7d\\x11\\x0e\\x07\\x18\\xd2\\x93\\x95\\x5f\\x01\\x58\\x25\\x7f\\xba\\x0d\\x78\\xeb\\x7d\\xf2\\xf0\\xb7\\x7e\\x6e\\xeb\\x76\\xdb\\x5e\\x71\\x70\\x73\\x10\\xe8\\x27\\x36\\x1c\\xd4\\xe1\\x19\\x74\\x0e\\x63\\x92\\x2d\\xb4\\x2c\\x2c\\xeb\\x5e\\xe1\\x75\\xd5\\x0d\\xec\\xc7\\xb7\\x49\\xfd\\x23\\x25\\xbc\\xe1\\xe6\\xa8\\xf7\\x10\\xff\\xcc\\x1e\\x1c\\x9b\\x33\\xc3\\x80\\xe5\\x2a\\x64\\xda\\xa9\\x58\\x5f\\xab\\xe4\\x06\\xd9\\xcf\\x24\\x48\\x8f\\xe2\\x6f\\x3a\\x49\\x5f\\xb0\\xab\\x50\\xe1\\xe2\\xba\\xd8\\x23\\x81\\xaa\\x22\\x43\\x10\\x99\\xcc\\x8a\\x56\\x98\\x13\\xd7\\x9c\\x9d\\x78\\x56\\x9c\\x0d\\x95\\xda\\x9a\\xad\\x2b\\xfb\\x57\\x75\\x8d\\x52\\xa3\\x75\\x27\\x52\\xe0\\x23\\xd6\\x51\\xc9\\xcb\\x66\\xa4\\x12\\xa5\\xc8\\x0f\\x6b\\xa5\\x47\\x93\\xf7\\xec\\x87\\xb4\\xc5\\x98\\xfe\\xd2\\xce\\x24\\xab\\xd7\\x60\\x87\\x08\\x89\\x5c\\x46\\x72\\x73\\x59\\xff\\xec\\xa6\\xd6\\xc6\\x2e\\x10\\xa6\\x78\\xca\\xa7\\x18\\xb4\\xcd\\x26\\x32\\x92\\xcf\\xef\\x53\\x5b\\x9f\\xbe\\x27\\x56\\xb7\\x39\\x6d\\x69\\x7b\\x31\\x46\\xc5\\x51\\xe6\\xaa\\xc1\\xf5\\xf1\\xc2\\x4b\\xe9\\xb6\\x7a\\x1e\\x2a\\x2a\\xff\\x74\\x53\\x01\\xba\\x6a\\x21\\x22\\x17\\xc5\\x3d\\x68\\x16\\x81\\xbb\\xb4\\x01\\xbf\\x4a\\x43\\x65\\x6f\\x5d\\x15\\xcd\\xe9\\x69\\xc1\\x78\\x00\\x99\\xa3\\x32\\x37\\xeb\\x19\\xa3\\xb8\\x58\\x5d\\x6b\\x5d\\xea\\x2f\\xb5\\x77\\x84\\x5f\\x25\\xee\\x2a\\x82\\xcc\\xf4\\xb2\\x85\\x02\\xf9\\x0f\\xe8\\x0b\\x8c\\xdc\\xdf\\x2c\\xcf\\x93\\xc4\\x34\\xc0\\xe6\\xaa\\x5d\\x87\\x52\\xa4\\x43\\x43\\xc2\\xb1\\x8d\\x20\\xfe\\x40\\x04\\xc4\\x70\\x38\\x65\\x93\\x56\\xf8\\x7a\\xbe\\xd5\\x44\\x50\\x34\\xd8\\xe2\\xd3\\xd1\\x47\\x68\\xf5\\xef\\x31\\x2c\\xf1\\x02\\xa9\\x88\\x46\\x83\\xbc\\xc0\\xcd\\x8a\\x71\\xe3\\xec\\x36\\xfb\\xb6\\x33\\x4a\\x1b\\xba\\xed\\x5d\\x2b\\xf1\\x04\\x16\\xd8\\x2b\\xd6\\x53\\x04\\x75\\x38\\x0a\\xb6\\xe2\\x57\\x7b\\xbc\\x69\\xce\\xbd\\xa7\\x5f\\xaf\\x02\\xad\\x82\\x7b\\x54\\x51\\x82\\x13\\x20\\x6f\\xd4\\xcd\\x66\\xf2\\x52\\xb2\\x34\\xac\\xa9\\xee\\xde\\x7e\\x3e\\xeb\\x81\\x5d\\xdc\\xd8\\xd5\\x19\\xc5\\xd7\\xf5\\xd9\\xd1\\xfb\\x9c\\xa0\\xfa\\x44\\x67\\x99\\x00\\x95\\xfa\\x46\\x22\\x0c\\x20\\xa2\\x07\\x1d\\xfc\\xaa\\xd5\\xf0\\x24\\xda\\xe3\\x41\\x6f\\x7c\\x49\\x2d\\x75\\x74\\x88\\xc4\\x9a\\x2e\\x4d\\xf4\\x83\\xbc\\x9b\\x80\\x09\\x8e\\x0d\\x5d\\x68\\x3f\\xac\\xb8\\xc9\\x60\\x82\\x9d\\xff\\x09\\xb3\\x03\\x36\\x9d\\x46\\xcb\\x57\\x33\\x1f\\xf2\\x17\\x91\\xee\\x25\\xd6\\xbe\\x7d\\xec\\x7e\\xba\\xf1\\xb3\\x24\\x79\\xa7\\xf5\\x14\\xdc\\x64\\x71\\x05\\xc9\\x44\\xc3\\x6f\\x7d\\xbf\\x0a\\x5b\\x58\\x91\\x28\\xdb\\xaa\\xa4\\x21\\x71\\xd6\\x42\\xf2\\x5a\\x98\\x1c\\xe1\\xf8\\x37\\x9f\\x91\\x69\\x0b\\x36\\xaf\\x77\\x46\\x48\\xd5\\x62\\x4c\\x08\\xdb\\xd0\\xa9\\x0f\\x70\\x87\\x16\\xdf\\xab\\x20\\x24\\xda\\xe8\\x65\\xb9\\xc4\\x9a\\xb2\\x74\\x73\\x82\\x6c\\xd4\\xa0\\x10\\xbf\\xdb\\x52\\x01\\x1d\\x8c\\x7c\\xb3\\xf4\\x21\\xca\\x8c\\xa3\\xcd\\x04\\x86\\x88\\x91\\x88\\xe6\\x7d\\xf0\\x0f\\xb8\\xc2\\xa6\\x43\\xe7\\xad\\xb2\\xf8\\x27\\x9f\\x76\\x3e\\x5b\\x9a\\x81\\xb6\\xdf\\xc3\\xf7\\x21\\xfc\\x5f\\x68\\x49\\xf6\\x67\\x36\\x78\\x8c\\xc5\\x57\\xc4\\xeb\\xc6\\xfc\\x68\\xd6\\xf6\\xac\\x77\\xbe\\xdd\\xa8\\xac\\xb3\\x62\\x24\\x3b\\xda\\x74\\xe7\\xb2\"},\n{{0xec,0x05,0x9f,0xc6,0xbe,0x98,0x3c,0x27,0xec,0xa9,0x3d,0xdc,0xdc,0xb5,0x3a,0xf7,0x28,0x62,0x55,0xda,0x91,0xe2,0xa5,0x6a,0x68,0x4f,0x64,0x1e,0xc2,0xd0,0x9d,0x6e,},{0xff,0xc6,0xcb,0x75,0x1c,0x70,0x07,0x1b,0x65,0xec,0x2a,0xc6,0xb4,0x5f,0xd1,0xd5,0x5f,0xe8,0x36,0x96,0x5f,0x80,0xb3,0xe7,0xc7,0x84,0xfc,0x70,0x4a,0xcb,0xdf,0x69,},{0xa7,0xb8,0x8e,0x5a,0xbf,0x13,0x28,0x24,0xbd,0xde,0x77,0xc5,0xf8,0xdf,0x94,0xab,0x26,0x48,0x1f,0x6b,0xee,0x66,0x0e,0xa1,0x62,0x24,0x70,0x82,0xa2,0x50,0xd3,0x90,0xc7,0x1d,0x32,0x0a,0xd0,0x60,0xd8,0xef,0x34,0x1f,0xb6,0x9a,0x48,0x32,0x94,0xf0,0xd6,0xde,0x72,0x6f,0x0c,0x86,0x2f,0xa3,0x7e,0xa4,0xbc,0x6d,0xab,0x52,0x15,0x09,},\"\\xd1\\xac\\x63\\x25\\xa4\\xe6\\x90\\xfa\\x79\\x53\\x68\\x83\\xd5\\xc2\\x0e\\xac\\xb7\\xd9\\x64\\xc0\\x17\\x8f\\x74\\x2c\\x2b\\x23\\x72\\x7d\\xeb\\x62\\x64\\x5a\\xf7\\xc8\\x19\\x22\\xa0\\xe7\\x2e\\x5e\\x30\\xb5\\x83\\x9a\\x2e\\xd5\\xe5\\x67\\xec\\x31\\xce\\x22\\x41\\x15\\xb8\\x2d\\x2b\\xf2\\x51\\xb7\\x39\\x3f\\x01\\xb0\\xd0\\x3a\\x60\\x2b\\xc1\\x20\\xae\\x62\\xaf\\x7f\\xbc\\x37\\x9d\\xfc\\xf9\\x5b\\xbb\\xba\\x98\\x4a\\xab\\xa3\\x4f\\xe2\\x12\\xac\\x99\\x00\\x33\\x28\\xb8\\x32\\xc3\\x53\\x2d\\x42\\xee\\xe1\\xe1\\x87\\x4d\\xc2\\x2a\\xd6\\x7d\\xb6\\xc9\\x1d\\xbb\\xfb\\x2b\\x45\\x78\\x5d\\xbc\\xd3\\x99\\x17\\xd3\\x6f\\xb4\\x8c\\x1b\\x5d\\x6f\\x38\\xbd\\xda\\x5d\\x28\\xfb\\xba\\x64\\x17\\x55\\x75\\xaf\\xea\\x46\\xc8\\xed\\x67\\x57\\xff\\x30\\x16\\x4e\\x0d\\xf2\\xe7\\x21\\x76\\xe8\\xb6\\xc9\\xdb\\x5b\\x5e\\xf3\\x90\\xb7\\x2f\\x2d\\x4d\\x94\\xe3\\xb6\\x6f\\x0d\\x44\\xa7\\xe0\\xf0\\x6e\\x89\\xde\\xbc\\xdf\\x13\\x63\\xc0\\xe7\\x5d\\x50\\xdb\\x5b\\xb7\\x01\\x90\\xd1\\x9f\\x66\\xa3\\x9c\\x6f\\x7d\\xba\\x70\\xdf\\xcd\\x4a\\x9f\\xed\\x02\\xc2\\xf1\\xd0\\x67\\xe7\\xc7\\x88\\xc5\\x8f\\xdb\\x3e\\x17\\xa2\\x37\\x7c\\xe4\\x86\\xec\\x65\\x82\\xf3\\xba\\x99\\x7b\\xb5\\xf7\\x0c\\xd6\\x21\\x00\\x29\\x56\\xf5\\x13\\x1a\\xa3\\xa1\\x61\\x7c\\x0c\\xeb\\xcc\\xd9\\x39\\x1d\\xe1\\x30\\x7c\\x85\\x97\\x0a\\x8b\\xc1\\x55\\xf5\\x19\\x87\\x26\\x68\\x45\\x0c\\x91\\x48\\x86\\x89\\xf5\\x3c\\x2c\\x1a\\x7e\\xd5\\x3f\\x38\\x8c\\xb1\\x3a\\x2c\\x38\\x96\\xfe\\x5b\\x7d\\x3a\\x0d\\xc1\\x68\\x3f\\x27\\x66\\x4c\\x8b\\xea\\xea\\x68\\x0c\\x8c\\xc5\\x4a\\x90\\xe4\\xc6\\xf9\\x9f\\xbf\\x05\\xf2\\xc2\\x2d\\xf6\\x0d\\xe9\\xae\\xc8\\x0c\\x79\\xb7\\xd6\\x62\\x07\\x05\\x06\\x67\\xb4\\x52\\xd7\\x85\\x7f\\x9a\\x8c\\xa7\\x23\\x28\\x0d\\xac\\x79\\x92\\xe2\\x07\\x92\\x67\\xec\\x3a\\xd9\\x11\\x40\\x46\\x42\\xc4\\xe3\\x26\\xbf\\xb9\\x6b\\x43\\xc8\\x94\\x34\\xba\\x4b\\xc7\\x8c\\x25\\x2f\\x4d\\x4c\\xa8\\xd1\\x3a\\x88\\x74\\xc6\\xfc\\x82\\x52\\xea\\x0b\\x56\\xc6\\xbc\\x78\\x68\\x47\\xd4\\x31\\x83\\x06\\xe1\\xc6\\x52\\xc4\\x52\\x58\\x5e\\xef\\xd0\\xbd\\x9d\\xd3\\xc1\\x48\\xa7\\x3b\\xa8\\x6e\\xed\\xea\\x94\\x5f\\x01\\x67\\x13\\xed\\x7d\\xf0\\x85\\xd0\\x06\\x66\\x89\\xe7\\x92\\xda\\xcb\\x2b\\xfc\\x1e\\xb5\\xc8\\x24\\x37\\x2a\\x26\\xc5\\xe9\\x44\\xaa\\x74\\x44\\xac\\x97\\x73\\xd4\\xa1\\x92\\x1e\\x49\\xbd\\xd4\\xf8\\xf6\\xd7\\x88\\xc2\\x63\\xfe\\xe0\\x4c\\x7b\\x44\\x4c\\x53\\x05\\xed\\xb6\\x33\\xe1\\xff\\xe0\\xba\\x4e\\xa8\\xda\\x01\\x1a\\x62\\xf2\\xbb\\xfe\\xf4\\xb8\\x95\\xad\\x3f\\x22\\x4c\\x3b\\xa3\\xbf\\xf0\\xc9\\x5d\\x75\\x75\\x0c\\x9b\\xcc\\x66\\xff\\x8a\\x20\\xb6\\xc2\\x4b\\xde\\x75\\x81\\xa7\\xec\\x38\\x66\\xf8\\x71\\x6f\\x78\\x1f\\x46\\xdc\\xad\\x45\\xa9\\xeb\\xcb\\x6e\\xd4\\x69\\x53\\x36\\x83\\x97\\x01\\x17\\x35\\xd4\\xb5\\x2d\\x00\\xe8\\xdb\\x39\\x79\\x95\\xdb\\xdb\\x3d\\x4f\\x42\\x54\\x68\\x7f\\x04\\x68\\x8a\\x26\\x8c\\x30\\x5b\\x2b\\x1f\\x62\\x2c\\xf5\\x1b\\x17\\x47\\x75\\xba\\xd7\\xf6\\x67\\x4a\\xdc\\x2e\\x58\\xe0\\x5c\\xce\\x86\\x5f\\x12\\xd7\\x56\\x9c\\x8e\\x9b\\x35\\xbc\\xdf\\x3c\\xcc\\xe6\\x33\\x0d\\x08\\xce\\x53\\x40\\xa7\\xc6\\x30\\xf2\\x7a\\x6c\\x80\\x86\\xb5\\x14\\x6b\\x29\\x2f\\xcb\\xf5\\x0f\\xf6\\xaa\\xae\\xf8\\x84\\x8a\\x70\\x7b\\x25\\x43\\xc6\\x18\\xd1\\x7b\\xd9\\x76\\xc2\\x40\\xbc\\x79\\xd3\\x3e\\x00\\x4e\\x49\\x53\\x48\\x29\\x15\\xe7\\xe6\\xef\\x94\\x96\\x4b\\xde\\xa4\\xe0\\x2d\\xd7\\xc2\\xf4\\x75\\x23\\x5f\\x2b\\x99\\xe4\\x32\\x29\\xc9\\xac\\x3a\\xba\\x0d\\xb5\\x9a\\xc2\\xda\\x03\\xa9\\xee\\x4f\\x37\\xdb\\xf2\\x47\\xa3\\x3e\\x6d\\xfe\\x5b\\xe7\\xc7\\xf8\\x25\\x84\\xf0\\x4a\\x46\\xd4\\x9f\\x66\\x21\\xda\\x31\\xb9\\x1a\\xc3\\xda\\xa4\\xd6\\x8d\\x48\\xa5\\x66\\x59\\xb4\\x48\\xc0\\xed\\x36\\x5c\\xb4\\xaa\\x0c\\xfd\\x90\\x88\\x53\\xdf\\x5b\\xbf\\xa8\\x8e\\x60\\xe1\\x0a\\x5a\\x00\\x2c\\x32\\xab\\x33\\x33\\xf2\\xc3\\x9b\\xbf\\x3e\\xe0\\x1a\\x4a\\xa6\\x0d\\x2d\\x01\\x42\\x3e\\x60\\x97\\xdc\\x54\\x30\\x5f\\x81\\xa2\\xd9\\x3e\\x2f\\x6b\\x4e\\x8b\\x35\\x19\\x71\\xcb\\xf2\\x45\\x7d\\xc7\\x6e\\x1f\\xb8\\x92\\x93\\x38\\x47\\x98\\xef\\x28\\x23\\x4e\\x9b\\x1a\\x47\\xde\\xdc\\x23\\x36\\xf8\\x6b\\x8e\\x13\\xc4\\xae\\xf7\\x90\\xf5\\xa1\\x12\\x39\\xc7\\x47\\xd9\\xd8\\x65\\xc9\\xa1\\x5a\\xde\\xb0\\x71\\x07\\x02\\x67\\xe5\\x34\\x62\\x56\\x64\\x8a\\xdc\\x0f\\xa4\\xdb\\xdf\\xd7\\x87\\xca\\x14\\x65\\xfc\\x24\\x0a\\x32\\x4c\\x3c\\xaf\\x29\\x31\\xda\\x41\\x49\\x9e\\x27\\x5f\\xd4\\xb3\\x5f\\x6d\\x08\\xdb\"},\n{{0xf1,0x6a,0xbd,0xbc,0xc0,0xbc,0xc6,0x1a,0x1a,0xee,0x3a,0xbd,0x87,0x67,0xab,0x52,0xe5,0xf7,0x99,0x99,0xbb,0x77,0xa3,0x97,0x6c,0xbc,0x82,0x67,0x0d,0xfd,0x2f,0x73,},{0x10,0xf4,0x51,0x71,0x9d,0xb0,0xfd,0x21,0x37,0x6e,0x22,0x8a,0x41,0xc3,0x03,0x5c,0x8c,0x2b,0xc4,0x2e,0x5a,0xaa,0x92,0x6f,0xe6,0x08,0x87,0x8d,0xbb,0x0d,0xc7,0xab,},{0x33,0xd8,0x05,0x29,0x08,0x69,0xb8,0xe0,0x4f,0xf0,0x89,0xfa,0xa2,0xd1,0xfa,0xb8,0x37,0x43,0xba,0xda,0x68,0xad,0xe5,0xb3,0x8a,0xe5,0xf0,0xcc,0x58,0xc3,0x37,0x4e,0xba,0x43,0x94,0x3c,0x1f,0x51,0x10,0x67,0x8e,0xb3,0x9b,0x46,0x58,0x61,0x18,0x22,0xa2,0x6d,0x35,0xff,0xe1,0x9e,0x9c,0xfc,0xb9,0xba,0x95,0x89,0xe4,0xec,0x31,0x05,},\"\\xbf\\xac\\xd7\\xdd\\x4e\\xea\\x46\\x7d\\xcc\\xe4\\x04\\xf4\\xa3\\x52\\x0a\\x45\\xb9\\x4e\\xba\\xa6\\x22\\x19\\x7d\\x02\\xd6\\x15\\x29\\xd2\\xb3\\xbf\\x27\\x3c\\x4e\\xe1\\xfb\\x95\\xa1\\x80\\xc8\\xf8\\x7d\\xe1\\x90\\xa2\\xe5\\xea\\x70\\xb8\\x4a\\xe1\\xeb\\x6f\\xd4\\x44\\x7d\\x8a\\x3a\\x8d\\xed\\x10\\xf6\\xed\\xe2\\x4f\\x0e\\xb9\\x2b\\xd3\\x0b\\xc6\\x5d\\x48\\x71\\xe8\\xf5\\xda\\x08\\xcb\\xe8\\xcd\\x3c\\x0a\\xc6\\x4f\\xd5\\xa5\\x7a\\x6b\\x06\\x4a\\x89\\xd5\\x15\\x9b\\x42\\xf8\\xb3\\xe5\\xa1\\x83\\x8c\\x9c\\xb1\\x9d\\x88\\x10\\x6c\\x07\\x73\\xa2\\x75\\xcd\\x2a\\x1d\\x60\\x99\\x30\\xbf\\x6b\\x30\\xae\\xca\\x62\\xb9\\x7e\\x31\\x9b\\xbf\\xa9\\x34\\xf4\\xd0\\xa1\\xe6\\xac\\x80\\xba\\xeb\\xcb\\xa2\\xd8\\xea\\x4b\\xed\\x9c\\xa8\\x56\\x2b\\x4a\\xcb\\x56\\x97\\x9b\\xf8\\x85\\x32\\x4a\\xc4\\x0a\\xb4\\xa5\\x0b\\xfb\\x9f\\x34\\x90\\x49\\xfc\\x75\\xa0\\xe0\\x3d\\xe4\\xcc\\x43\\xea\\xe3\\xc6\\xa6\\xcf\\xfb\\x5f\\x6a\\xe6\\xc9\\x45\\x04\\x41\\x5e\\x6c\\x7e\\xd3\\x04\\x5a\\x93\\x2f\\x47\\xfd\\x20\\xb9\\xf3\\x48\\x3a\\x77\\xb6\\xd4\\x49\\xd8\\xdf\\xd4\\xa6\\x38\\xdb\\xf5\\x6f\\x03\\xf0\\xf0\\x31\\x87\\x90\\x59\\xb2\\xfb\\x49\\x76\\x79\\x43\\xf4\\x6b\\x38\\x72\\xe2\\xde\\x56\\x7d\\x5f\\xef\\x80\\xb0\\x29\\x25\\xe9\\x86\\x3e\\x0f\\x1d\\x31\\xa8\\x0f\\x4e\\x64\\x51\\xc3\\x25\\x69\\x4b\\x80\\xcf\\x1f\\x19\\x18\\xc6\\xe4\\x98\\x87\\x8e\\xdc\\x47\\xc4\\x53\\x0c\\xac\\x46\\x6f\\x1a\\x29\\x4d\\x55\\xdf\\x09\\xaf\\x4f\\xdc\\x80\\x72\\xad\\xb1\\xbf\\x26\\xca\\x8c\\x92\\xf9\\x12\\xa2\\xb9\\xfe\\xbc\\x8b\\x97\\xb5\\x8c\\x1e\\x9d\\x32\\xc7\\x80\\x32\\x30\\x52\\x97\\x2b\\x6f\\xbd\\x53\\x30\\x4c\\x05\\x19\\x3c\\xae\\xb6\\x7c\\x5b\\xd3\\xe6\\x74\\x79\\x72\\x5d\\x29\\x7d\\xff\\xb0\\x68\\x90\\xab\\xf8\\xcd\\x9e\\x42\\x45\\x8e\\x16\\x8a\\x61\\x18\\xf9\\x05\\xb1\\xd5\\x34\\x86\\x01\\x6f\\x85\\xdc\\xd9\\x8d\\xd3\\x39\\xe3\\x46\\x05\\x33\\xd0\\xb8\\xa4\\x9f\\xae\\x6d\\xc1\\xa0\\x71\\x72\\x5e\\x6a\\xe5\\xf2\\x94\\x47\\x9e\\xe3\\xbd\\xca\\xeb\\x74\\x06\\x18\\x41\\xfb\\x26\\x08\\xe8\\x8a\\x49\\xfd\\x0f\\x38\\x95\\xb1\\x8f\\x85\\xb9\\x0f\\x72\\x41\\xdd\\x13\\x87\\x71\\x00\\x53\\xfa\\xa6\\x2b\\xae\\x75\\xe9\\xae\\x39\\x36\\x9c\\x1c\\x02\\xde\\x5d\\x19\\x24\\x2e\\xfa\\x16\\xe1\\x1d\\x44\\xa4\\xba\\x57\\x78\\xce\\x77\\x22\\xa9\\x1c\\xec\\x0b\\xc0\\xa0\\x8c\\x06\\x9b\\xdf\\xa1\\x30\\xd1\\xc6\\xc4\\xb5\\x6c\\x6e\\x93\\x54\\x24\\x03\\xcc\\xf2\\x76\\x84\\xde\\xf5\\x7d\\xef\\x26\\xdf\\x86\\xce\\xd5\\x71\\x28\\x2d\\xc9\\x60\\x97\\x46\\x18\\xf0\\xa7\\x4a\\x0c\\xde\\x35\\xb6\\x53\\xcc\\x6e\\x77\\x30\\x43\\x1b\\x82\\x5f\\xfb\\x9b\\x8a\\xaa\\xb3\\xc7\\xa3\\x97\\xc9\\x92\\xbc\\x2f\\xa2\\x32\\x70\\xfb\\x11\\xee\\x43\\x1a\\xfd\\x5f\\x9a\\x64\\x44\\x83\\x01\\x11\\x73\\x99\\x3f\\x19\\x48\\x5d\\xd3\\xcb\\xdd\\x18\\x7b\\xd3\\xd9\\x95\\xeb\\xf0\\x03\\x1b\\x1b\\x0d\\xe4\\xa8\\xde\\x9c\\x14\\xeb\\x6f\\x78\\x0e\\x36\\xb8\\x92\\x57\\x56\\xb9\\x79\\x06\\xa1\\x96\\x9d\\x85\\xe9\\x67\\xd8\\x80\\xe6\\xe7\\xdd\\xa4\\x2f\\xd3\\xc3\\x00\\x19\\xf1\\x1d\\x70\\x81\\x07\\x1e\\xee\\x66\\x26\\x42\\x28\\x36\\xbb\\xed\\x27\\xd4\\x6d\\xd0\\xdf\\x1f\\xeb\\x66\\x10\\xdc\\x85\\x9f\\x51\\x3c\\x0b\\xc6\\x53\\xd7\\x02\\x20\\xfe\\x04\\x8d\\x2e\\x97\\xc2\\xe0\\x6a\\xf5\\x30\\xe1\\x1b\\xdc\\x70\\x29\\xbc\\xcc\\x5c\\x92\\xed\\xec\\xef\\x5e\\x4a\\x2e\\x0b\\xe2\\xd2\\x51\\xf4\\x41\\x5d\\xca\\x3e\\x55\\xb3\\xa8\\x50\\xf2\\x63\\x0b\\x87\\x9e\\x4e\\x03\\x6c\\xe8\\x63\\x3b\\xf2\\x09\\x20\\xb6\\x80\\x94\\x21\\x59\\x29\\xac\\xcc\\x7b\\xe4\\x0c\\x57\\x78\\xbc\\x55\\x4e\\x6e\\xdd\\x7e\\x54\\xc9\\xe1\\x45\\xb2\\xee\\x07\\xb6\\x5d\\x06\\x1c\\x11\\xde\\x0e\\x83\\xf3\\x81\\xce\\x4f\\x57\\xc6\\x48\\x3f\\x51\\x06\\x93\\x63\\x51\\x10\\x74\\xc7\\xa5\\x77\\x35\\x3b\\x45\\xc6\\xeb\\x71\\x19\\x9d\\xce\\x50\\x59\\xfd\\x2c\\x46\\x11\\xb0\\x54\\x23\\x8a\\xaa\\xdf\\x2b\\x6b\\xa5\\x34\\xbf\\xff\\xc2\\x72\\x2a\\xe3\\xe3\\x1f\\xf7\\x9a\\xe2\\xeb\\xca\\x99\\xcc\\x35\\x07\\xf8\\xa0\\x33\\xcf\\x4f\\xea\\x70\\xc5\\x2f\\x7d\\xb5\\xde\\x44\\x2b\\x42\\xb8\\xd4\\x1e\\x99\\x01\\x2e\\x42\\xca\\x0e\\x85\\xa9\\xfb\\x6d\\x4f\\x16\\x5b\\x33\\x0d\\xe6\\x38\\x3c\\x57\\x26\\xef\\xca\\x2f\\xe9\\x71\\x34\\x00\\x02\\xf5\\x62\\xdc\\x6c\\xb8\\xf2\\xfa\\xf0\\x66\\x57\\x25\\xe0\\x97\\x79\\x9d\\x09\\x60\\x91\\x86\\x4d\\x66\\xa9\\x50\\xa5\\x79\\x09\\x53\\xee\\x16\\xb9\\xea\\x58\\x20\\x09\\x21\\x87\\x08\\xc4\\xac\\xcd\\x81\\x38\\x13\\x58\\xa2\\xc6\\x89\\xa0\\x41\\xd0\\x2d\\x78\\x61\\x21\"},\n{{0xbe,0x79,0xd1,0xae,0xea,0x86,0xe8,0x6f,0x39,0x81,0x37,0xe6,0x2f,0xfd,0x79,0xe5,0x0e,0xff,0x9f,0x31,0x3f,0x25,0x19,0x2f,0x89,0xe5,0x2f,0x0b,0x4b,0xbd,0x5d,0x32,},{0x18,0x7d,0xac,0x85,0x5c,0xa4,0x42,0xfd,0x9a,0x3d,0xdc,0x32,0x89,0xc2,0x4e,0xb2,0xd2,0x6f,0x7a,0x40,0xfb,0x29,0xd8,0xe7,0x44,0x31,0xb2,0x50,0x22,0xc3,0xa0,0xcc,},{0x6d,0xab,0x59,0x3b,0xb1,0xd4,0x48,0xc9,0x74,0xa6,0x5c,0x6a,0x0b,0x6f,0xad,0x22,0xb4,0x73,0x26,0x32,0xd0,0x04,0x89,0x17,0x6e,0xf1,0x26,0xaa,0x59,0x01,0x09,0xe0,0xa7,0x23,0xa1,0x13,0x10,0x7b,0x53,0xe1,0x7d,0x69,0x0a,0x0d,0x40,0xb0,0xfa,0x33,0x6c,0xc8,0x7f,0xd5,0xfc,0xe8,0xf5,0x41,0xac,0xce,0xc6,0x7f,0x7d,0x1e,0xbc,0x06,},\"\\x6d\\x63\\x2a\\x7d\\x3c\\x9b\\xe5\\x36\\x49\\xd0\\xd1\\xa5\\xee\\xdf\\x51\\x9a\\x41\\x3b\\x13\\xac\\x64\\xe9\\xad\\x85\\x4d\\xfa\\x04\\xf2\\xe1\\x73\\x29\\xd8\\x22\\xbe\\x57\\x3d\\x9e\\x35\\xac\\x06\\x6f\\x02\\x22\\x13\\xa3\\x44\\x62\\x0b\\xba\\x28\\x9f\\x53\\x31\\x69\\x55\\x84\\xd1\\x34\\x3e\\x81\\x54\\x05\\xae\\xab\\xe3\\x86\\x1d\\x63\\xb3\\xa5\\xb9\\x2b\\x8c\\xd8\\xee\\xed\\x22\\x80\\x22\\x2a\\xbd\\xe3\\x0a\\x1b\\xcc\\xd3\\xf3\\xe4\\x11\\xaa\\xb9\\x22\\xfa\\x1b\\xaa\\x09\\x7a\\xa5\\xc7\\x80\\xd0\\xea\\xef\\x94\\xea\\x10\\xfe\\x21\\xf7\\xd6\\x39\\xb7\\x6d\\x47\\x88\\xae\\xb5\\x92\\x4a\\x9d\\x26\\x2d\\xcb\\xc5\\x68\\x8a\\x3e\\x43\\x54\\x4b\\xec\\x08\\x8c\\xa2\\xe0\\xd0\\x6d\\x77\\xa7\\x1f\\xb6\\x41\\xd5\\x52\\x26\\x61\\x44\\x52\\xb1\\xe0\\x80\\x7a\\x9f\\xcd\\x3c\\xa6\\x9b\\xf7\\xf2\\x5d\\x80\\x41\\x47\\x0c\\xeb\\x7b\\x21\\xea\\xd0\\x3e\\xc0\\x37\\xa1\\x62\\x9b\\xd5\\x00\\xaa\\x23\\x3b\\x59\\xbe\\x44\\x97\\x82\\x10\\xb6\\xa3\\x66\\xf2\\x23\\xac\\xfa\\x07\\x97\\x95\\x40\\x07\\xb0\\x0e\\xfb\\x4f\\xfa\\xdb\\x5f\\xc9\\x2b\\xdb\\x37\\x86\\x3e\\x50\\x2d\\x7d\\x70\\x68\\x10\\x39\\xed\\xf3\\x37\\x70\\xdf\\x3d\\x1d\\xe3\\x43\\xdc\\x35\\xf2\\x26\\xd5\\xe7\\x39\\x44\\xba\\x02\\x55\\xe2\\xa8\\x8e\\xf6\\xc4\\x1e\\x47\\x2b\\x21\\x45\\x67\\xc2\\x49\\x59\\x4a\\x50\\x87\\x8b\\x67\\x31\\xc1\\xae\\xb5\\xb1\\x0f\\xa9\\x1f\\xa7\\x6a\\x37\\xe1\\xf9\\xf1\\xc0\\x0f\\xdb\\xfe\\x34\\x85\\xde\\xd5\\x4a\\x00\\x9a\\xb6\\x13\\x39\\x27\\x11\\x56\\x68\\xb5\\x9f\\x51\\x15\\x50\\x8d\\xa9\\x37\\x0f\\x6b\\xc9\\x2a\\x11\\x85\\xc0\\xd5\\xca\\x01\\xd2\\x91\\xe1\\x8c\\x54\\xac\\xfa\\xca\\x73\\x8b\\xd7\\x19\\x68\\xa3\\x42\\xa0\\xcb\\xa6\\x2e\\x4b\\xb1\\x04\\xa5\\xbb\\x37\\x9f\\xc8\\x3e\\xe1\\x82\\x0d\\x1d\\xb9\\x80\\x25\\x3d\\x6c\\xb3\\x83\\xe9\\x5a\\xf1\\x5f\\x53\\xc8\\x5d\\x17\\x58\\x90\\xdd\\xe5\\xe4\\xed\\x03\\xd2\\xd0\\x13\\x5e\\x3d\\x60\\xb1\\x82\\x93\\xf5\\xb5\\x64\\x1e\\xf8\\x3c\\x6e\\xce\\x3d\\x52\\x59\\x8f\\xc6\\x35\\x36\\x86\\xe6\\xf7\\xb0\\x9f\\xde\\xc1\\xf6\\xf1\\x53\\x67\\x2d\\x34\\xb4\\x89\\xb4\\x8a\\x0d\\xb9\\xe4\\x2c\\xed\\xa7\\x17\\x55\\x48\\x1c\\x04\\x70\\x16\\xc2\\x25\\x34\\xe9\\x0c\\x6d\\x20\\x1e\\xd7\\x85\\x96\\x02\\x63\\x6e\\xa7\\x7a\\xe8\\xc6\\x73\\x4b\\x7c\\x4c\\x5b\\xd9\\x95\\x79\\xc5\\x08\\x73\\x1c\\x72\\x46\\xa2\\x95\\x86\\xe4\\x06\\xe1\\xd9\\x32\\xf6\\x71\\x30\\x71\\xd4\\xbe\\xa6\\x3d\\xc5\\xe2\\xa3\\x76\\x1e\\x16\\x02\\x4d\\x2c\\x32\\x84\\xf7\\x09\\xa1\\xf2\\xba\\x08\\x5e\\xad\\x32\\x00\\xc7\\x04\\x62\\x75\\xcb\\x96\\xb6\\x1a\\x60\\xb5\\xac\\x55\\x9b\\xc4\\x88\\xbd\\x10\\x64\\x67\\xc3\\xde\\x50\\xbf\\x5d\\x74\\x0d\\x05\\xc9\\xcd\\x70\\x1d\\x65\\xb7\\xda\\xea\\x29\\xe6\\x4d\\xd5\\xa9\\x7a\\xdb\\x6b\\x5c\\x82\\xcf\\x7f\\x23\\x01\\x7a\\xa7\\xca\\x1a\\xc9\\xa3\\x9e\\x58\\x27\\xeb\\x47\\xe2\\x0d\\x35\\x9b\\x67\\xc7\\xd4\\xe1\\xa8\\xe3\\xe2\\x7c\\x52\\xd3\\x3d\\x93\\x03\\xa5\\x92\\x62\\x34\\x84\\xd7\\x97\\xb4\\x02\\xcb\\xb4\\x58\\xd1\\xac\\x2e\\xa5\\x3e\\x1c\\x4f\\x7a\\xbb\\x70\\xcc\\x02\\x95\\x54\\xa2\\x34\\x57\\x4d\\xef\\x9b\\xc3\\xb0\\xd3\\x83\\x5d\\xc3\\x14\\x90\\x2e\\x25\\xab\\xb2\\x2d\\xfd\\xed\\xdc\\x67\\x9a\\x3c\\xc8\\xf0\\x73\\x40\\xb1\\x5f\\x57\\x62\\xf4\\x40\\x7f\\x38\\x03\\x42\\x55\\x4e\\xd0\\xc6\\x2f\\x73\\xb6\\x18\\x16\\xea\\x8c\\x52\\x94\\x61\\xe1\\xbf\\x0e\\x9d\\x1c\\x2d\\x5e\\x4c\\x57\\x46\\x33\\x6b\\xc0\\xe1\\x32\\x87\\x3c\\xde\\x0d\\xc2\\x15\\x8b\\x54\\xfa\\x1b\\x67\\x8a\\x00\\x6b\\x4d\\x95\\xed\\xa8\\xa9\\x55\\x71\\x42\\x73\\xb7\\xcc\\x5c\\xf2\\xad\\xd9\\x09\\x4d\\x46\\xe4\\x9a\\xbc\\x09\\x6a\\x45\\xf4\\x18\\xe2\\xed\\xbe\\x99\\xdd\\x85\\x29\\x11\\x68\\x80\\x64\\xdf\\x7c\\xf0\\x61\\xd0\\x7a\\xee\\xf4\\x27\\x95\\x69\\x0f\\x48\\xc9\\xba\\x19\\x56\\x54\\x75\\xd5\\x46\\x8a\\x9e\\xf4\\x5d\\x7b\\xf7\\x5f\\xd7\\x11\\x82\\xdd\\x6e\\x64\\x01\\x38\\xf1\\x82\\xa6\\xa0\\xc6\\xcb\\xbd\\x00\\xc4\\x95\\xc4\\x38\\x95\\x30\\xac\\x8e\\x67\\x96\\x0e\\xb5\\xc5\\x76\\x3f\\x54\\x84\\xea\\xb1\\xc1\\xab\\x85\\x01\\x40\\xda\\x04\\x2b\\xa4\\x7e\\xd8\\x52\\x88\\x00\\xd4\\x17\\x87\\xf0\\x75\\xfe\\x0d\\x85\\x50\\x1a\\x7a\\xb7\\x66\\x35\\xd0\\x34\\x10\\xd2\\x86\\xc0\\xe1\\x7d\\xb4\\x02\\x3a\\x76\\x39\\x74\\x68\\xcc\\xb0\\x91\\xcc\\x5a\\xc1\\xf6\\x43\\x45\\x87\\x91\\x3e\\xab\\x92\\x2b\\x50\\xca\\x55\\x67\\x01\\x6d\\xde\\xa3\\x2f\\xb5\\x32\\x55\\xbe\\x67\\xf2\\xdc\\xf9\\xff\\xa8\\x5d\\x11\\x7f\\x1a\\x65\\x5f\\xa7\\x0d\\xd3\\xa5\\x4c\\xf9\\x91\\x53\\x1f\\x19\\x13\\x0e\\xaa\"},\n{{0x26,0x99,0x52,0x17,0x2c,0x3f,0xa9,0x76,0xde,0xfb,0xf4,0x0b,0xd6,0xed,0xd8,0xf1,0x5c,0xfd,0x4b,0xe1,0x0c,0x75,0x8e,0x37,0x41,0xd7,0x41,0x62,0xd8,0xea,0x22,0x9a,},{0x4a,0xea,0x57,0xc7,0x21,0xe3,0xdc,0xca,0x82,0x39,0xe9,0xad,0x9b,0x22,0xc1,0x9b,0xab,0x8d,0xf7,0x2c,0x88,0x79,0x3b,0x24,0xd8,0xdc,0x47,0xcf,0x97,0x40,0xfc,0xf8,},{0x3a,0xc8,0x0d,0x1e,0x8f,0x68,0xb4,0x05,0x8c,0x3a,0x04,0xda,0xd7,0x18,0x73,0x73,0x95,0x9f,0x26,0xa2,0x70,0x02,0x49,0x6f,0x8a,0xfa,0xac,0xcd,0x8b,0xea,0x09,0x01,0xc5,0x4c,0xab,0x87,0xb2,0xa2,0x30,0x2e,0x1f,0x36,0x25,0xc2,0xb0,0x6c,0x7e,0xbc,0xf3,0xce,0x96,0xde,0x3a,0xfd,0xf0,0x0f,0x51,0x94,0xa3,0x5e,0x05,0x52,0xc7,0x0e,},\"\\x7c\\xcb\\x6a\\x05\\x70\\xc5\\x33\\x73\\x7b\\x9a\\x53\\x4a\\x34\\x1a\\x7a\\x96\\xdc\\x76\\x52\\x8b\\x99\\x7a\\x9b\\x48\\xe6\\xe0\\xfd\\xe1\\x0f\\x47\\x4b\\x27\\xec\\x98\\x99\\x12\\xd1\\x76\\xca\\xb7\\x42\\xd8\\x9a\\x84\\x8b\\x36\\x66\\xe9\\x27\\x7d\\x69\\x5b\\x02\\x2f\\xd5\\x3a\\x9e\\xb8\\x9e\\x88\\xc7\\x20\\x39\\x9e\\x24\\xed\\x25\\xdb\\x9e\\xb3\\x5d\\x6d\\xa0\\x09\\xe9\\xf0\\x24\\xef\\x8e\\x65\\x51\\x65\\xbd\\xef\\x1c\\x0d\\x79\\x7c\\x74\\xf0\\x19\\xcd\\x59\\x1a\\x04\\x42\\xa1\\x2d\\x1c\\xa8\\x93\\x83\\x6c\\xa2\\x62\\x8b\\x33\\xe8\\x54\\xf3\\x42\\x8e\\xec\\x4a\\xa5\\xed\\x84\\xf4\\xbd\\xd2\\xee\\xf8\\xb6\\xd2\\x25\\xca\\xf9\\x49\\x6d\\xf9\\xed\\xff\\xd7\\x35\\xea\\x54\\xdb\\x1b\\xde\\xa8\\x83\\xad\\x5d\\x47\\xeb\\x0b\\xd4\\xa6\\x65\\x3f\\x0a\\xb0\\x37\\xf0\\x40\\xa4\\x15\\x17\\xa7\\x74\\x1f\\x91\\xe8\\x2f\\xdb\\x6f\\xda\\x04\\xf0\\xdf\\xa1\\xbc\\xf8\\xb9\\xb3\\x7b\\xf2\\xbf\\xbd\\x87\\x32\\x7a\\x63\\x6f\\x90\\x7f\\xdf\\x96\\x8d\\x01\\x89\\xd1\\xa1\\x18\\x09\\xc4\\x23\\x0b\\xa6\\x9d\\x5c\\xbd\\x84\\xf5\\x61\\xbc\\xac\\x3a\\xd0\\x02\\xe5\\x58\\xc5\\xb9\\xb0\\x97\\xa0\\x19\\x02\\xf2\\x9c\\xe3\\xf1\\xec\\x26\\x41\\x53\\xd6\\x68\\xc7\\x8b\\x84\\x51\\x05\\xb9\\xcd\\x2e\\xf3\\xc9\\x43\\x53\\x1b\\x75\\xaa\\x42\\x8f\\x17\\x9e\\x4b\\x34\\x18\\xb1\\xd5\\xa4\\xaa\\x7a\\xb1\\x20\\x3e\\xfa\\x49\\x5c\\x87\\x69\\x62\\x8e\\xb1\\x06\\x3a\\x93\\x7b\\x73\\xe4\\xb5\\xcd\\x0c\\xda\\x33\\xda\\xb0\\x1a\\x50\\xc6\\x4f\\xeb\\xd9\\x75\\xc5\\x7a\\x1e\\x84\\x15\\x08\\xe8\\x60\\x60\\x94\\xd0\\x82\\x4f\\xdd\\x96\\xcc\\x6c\\xfa\\x18\\xfa\\x82\\x09\\xb3\\x0f\\x0a\\x2a\\x78\\xea\\xc9\\xa7\\x67\\x17\\x6f\\x57\\x3e\\x78\\xc0\\x68\\x80\\x9b\\x19\\x9a\\x69\\xac\\x6d\\x33\\x5d\\x7c\\x92\\x09\\x99\\xc4\\x0c\\xba\\xd8\\x7c\\xf4\\xcc\\x7c\\xa5\\xc6\\x44\\x29\\x1d\\x75\\xad\\x7a\\x74\\xbc\\x1e\\x63\\x92\\xd1\\xce\\x31\\x1e\\xcf\\xd2\\xeb\\xc9\\x16\\xe3\\x9e\\xb6\\xaa\\x3e\\x7d\\x89\\xfb\\x80\\x5a\\x27\\xa5\\x5f\\x17\\x89\\x12\\xb1\\x57\\xbc\\x01\\xa0\\x55\\xf6\\x7a\\xef\\xa7\\x8e\\x55\\xc8\\x06\\xcb\\xd9\\xc0\\x1b\\xaf\\x8e\\xf9\\x2c\\xad\\x22\\x60\\xb4\\xbb\\x14\\xcf\\xe6\\x17\\x82\\xde\\xe5\\xc5\\x99\\x72\\x50\\x69\\x41\\xc4\\x62\\xa4\\xda\\x7e\\xb8\\x99\\x53\\x1c\\xf9\\x96\\xbc\\x98\\xba\\x36\\x29\\xef\\xfe\\x6f\\xcd\\x17\\x06\\xd1\\xb4\\xee\\x4f\\x2a\\x14\\xe9\\x21\\xbd\\x40\\x8f\\x30\\xe1\\x2e\\x73\\xfb\\x7a\\xa8\\x60\\x53\\x6b\\x03\\xe7\\x7c\\xa9\\x37\\x82\\x32\\x81\\xa1\\x64\\x53\\xfe\\x82\\x79\\x35\\x94\\x32\\x01\\xe6\\xec\\x14\\x3a\\x67\\xee\\xfa\\x4f\\x94\\xe9\\xab\\xf9\\x4f\\x7e\\x3d\\x41\\xb7\\x0a\\x82\\xbe\\x69\\xde\\xd8\\xa5\\x30\\x60\\xc2\\x30\\x5f\\x42\\xf6\\x2f\\xe6\\xa2\\xf7\\x04\\xb6\\x7a\\x1e\\x8f\\xdd\\xc7\\xd9\\x8b\\xa7\\xf3\\x45\\x71\\x19\\xb3\\x11\\xd4\\x49\\x66\\x3e\\xd9\\xe3\\x20\\xd6\\x18\\xdc\\x23\\x68\\xd4\\x95\\x08\\x75\\xb9\\xc3\\x8c\\x5d\\x8c\\x03\\x10\\x4e\\x2e\\x32\\xc4\\x32\\x5d\\xed\\xd2\\xbc\\x26\\x7e\\x2a\\xcc\\xb0\\x11\\x20\\x18\\xe9\\xc5\\xa8\\x00\\x7c\\xca\\xb2\\xf6\\xd7\\xc7\\x37\\x79\\x20\\x02\\xac\\xb7\\x30\\xd7\\x2e\\x9f\\x73\\x08\\x29\\xeb\\xc4\\x2c\\xa5\\x64\\xc1\\xd9\\x27\\x1b\\xf1\\x86\\x9c\\x4d\\x35\\x83\\x55\\x89\\xb7\\x43\\x1e\\xf7\\xa3\\x1a\\x07\\x00\\x60\\xfe\\x4a\\x08\\x9f\\xb1\\x1f\\x2d\\xd3\\xdc\\xe6\\x5a\\xe0\\xfb\\x45\\xbc\\x3a\\x28\\x60\\x91\\x7d\\x93\\x3b\\xa2\\xd0\\x90\\x56\\x9e\\xf5\\xed\\x43\\xbc\\x25\\x32\\xdb\\x87\\x9e\\x0f\\x1f\\x22\\x5e\\xad\\xcb\\xef\\x1c\\x03\\xd9\\xed\\x78\\x29\\x9e\\x23\\x3e\\x4c\\xf0\\x7b\\x06\\x4a\\x7b\\xaa\\xc3\\x4c\\x5a\\x0c\\x19\\xfc\\x3a\\x55\\x42\\x08\\x9f\\x70\\x16\\x7b\\xe2\\xf8\\x5b\\x4a\\x10\\xe7\\x78\\x52\\x52\\x23\\xbe\\x8f\\xfd\\x5c\\xff\\x96\\x48\\xb1\\x00\\x5a\\x09\\x8b\\x4b\\x39\\x24\\x39\\x8f\\xb0\\xbc\\xab\\xcc\\x6e\\xdf\\x30\\xc0\\x61\\xec\\xe7\\xae\\xa3\\x5f\\xe9\\x8a\\x92\\x03\\xf8\\x71\\x13\\x69\\x53\\x0f\\xeb\\x5e\\x67\\xbb\\x2d\\x4f\\x59\\xd9\\xc8\\xbc\\x99\\x38\\x54\\xdd\\x47\\x47\\xcd\\xe3\\x99\\xbd\\x0e\\x63\\x74\\x0c\\x1c\\xc8\\x39\\xad\\x0f\\x09\\x8a\\x38\\xa8\\x0b\\xea\\xdd\\x64\\x8e\\x14\\x36\\xde\\xee\\x60\\xe9\\x31\\xe6\\x8f\\x52\\x97\\x9c\\xe4\\x9f\\x30\\x1f\\xe3\\x9a\\xfb\\xb6\\x15\\x35\\x20\\x91\\xc8\\xb6\\x58\\x5f\\xe8\\x84\\x47\\xed\\x6e\\x59\\xa0\\x20\\xb2\\xbb\\xe6\\x6a\\x94\\x23\\xae\\x52\\x28\\xc2\\x03\\xbf\\xd4\\x84\\x7b\\x51\\x81\\xe2\\xc3\\xb4\\xda\\xd8\\x3a\\x6d\\x4f\\xa7\\x69\\x85\\xee\\xf7\\x6a\\xdd\\xe3\\xb3\\x4e\\xdb\\xdd\\x28\\xd6\\xa0\\xb4\\xa4\\xee\"},\n{{0xcc,0x31,0x38,0xe5,0x02,0xa5,0xff,0x6f,0x80,0xd2,0x46,0x36,0x6e,0x84,0xd6,0x5c,0x59,0xf1,0x2d,0x4f,0x49,0x63,0x97,0xe6,0xeb,0x99,0xb5,0x26,0x7b,0x8c,0xbe,0x2a,},{0x9e,0x2d,0x3e,0x88,0xaf,0x7b,0x52,0xdd,0xcf,0x00,0xe6,0xd0,0xc7,0x75,0x9c,0x12,0x38,0xb8,0xfb,0x3e,0xb1,0x44,0x21,0xfe,0x82,0xc3,0x48,0x33,0x43,0x78,0x35,0xbd,},{0xa2,0x70,0x0e,0x38,0x95,0xed,0x0c,0xc2,0xaa,0xf0,0x12,0xa4,0x0b,0xc7,0xbd,0x0b,0xd2,0x9d,0xd7,0x9c,0x69,0xc0,0xb4,0xa6,0xed,0xd0,0x53,0x0c,0xf3,0xe2,0x67,0xc0,0xf8,0x2d,0xd8,0x4e,0xda,0xf1,0x74,0x4d,0xc4,0x11,0xd6,0x2c,0x00,0x28,0x71,0x52,0x58,0x82,0x2d,0x7b,0x63,0xd3,0x97,0x05,0x61,0x2b,0x3f,0xad,0x4b,0x5e,0xfb,0x04,},\"\\x58\\x5e\\xcf\\x2f\\x09\\xeb\\x92\\x3d\\xf2\\x0a\\x85\\x55\\x64\\x2a\\x2b\\xc0\\xb6\\x8c\\x6a\\x5f\\xcf\\xd6\\xb8\\x40\\x1c\\x4a\\x0c\\xba\\xbb\\x4c\\x6e\\x6a\\x20\\x67\\x62\\xb7\\xa3\\x9f\\x2c\\x54\\x55\\xd7\\x80\\x8e\\xbf\\xbe\\xd5\\x6d\\x67\\x60\\xa4\\x31\\xc7\\xd2\\x0c\\x2d\\xc6\\xef\\x1b\\x73\\xca\\xa3\\xc4\\x94\\x88\\xe3\\x0b\\x1c\\xa2\\x52\\x0a\\xd2\\x0b\\x26\\xa1\\x97\\x00\\x78\\x0e\\x5e\\xf3\\xce\\x01\\x44\\x38\\x8d\\x84\\x07\\xb6\\xa7\\x0c\\x1c\\xda\\x37\\xdb\\x7f\\x12\\x09\\x1d\\x89\\x2f\\x2e\\x91\\xad\\x40\\x78\\xbb\\x4d\\xb1\\x76\\x2e\\x46\\x28\\x5a\\x7b\\x66\\x4b\\x2a\\xd3\\xa3\\x4d\\x26\\xd8\\xa9\\x4d\\x64\\x58\\x7a\\x84\\x52\\x77\\x22\\xea\\x83\\xcb\\x8a\\xa8\\x89\\x84\\xe1\\x48\\x97\\x43\\xb4\\x21\\x4e\\xa6\\x04\\x1a\\xa1\\x8e\\x55\\x20\\x09\\x54\\xef\\xc7\\xed\\xb3\\x19\\xdf\\x94\\x7e\\xfb\\xfc\\x6c\\x8d\\x0f\\xea\\x48\\xa1\\x31\\x61\\x34\\x65\\xd8\\xf4\\xc4\\x94\\x98\\xf2\\x26\\x91\\x45\\xc6\\xda\\xe5\\x04\\x78\\x05\\x25\\x98\\xe1\\xca\\x3b\\xe0\\xe3\\x36\\x11\\x57\\x1f\\xa3\\x84\\x77\\x1e\\xee\\x40\\x2c\\xc2\\xb1\\xd8\\x48\\x36\\xc8\\xf1\\xad\\x28\\xf2\\xad\\x23\\xde\\xe9\\xff\\x1d\\x7e\\x1f\\x25\\x21\\x63\\x58\\x74\\x11\\x5d\\xef\\x4d\\x93\\xe8\\x9b\\xe7\\x61\\x80\\xbc\\x55\\xf7\\x61\\x14\\x43\\x60\\xa8\\xb2\\x22\\x89\\x2d\\x64\\xd1\\x57\\xcc\\xb5\\xd8\\xf4\\x85\\x5d\\xca\\x56\\x70\\x14\\x95\\xa0\\xe1\\x00\\x2d\\x34\\x0a\\x4a\\x46\\x15\\x6b\\x9b\\x7f\\xe0\\x6b\\x7c\\x07\\x59\\xe0\\xb6\\xdf\\x55\\x9b\\x69\\x1e\\xde\\x78\\xb5\\x5a\\xf6\\x4e\\x7c\\x8d\\xd9\\x08\\xb7\\x88\\xdd\\x6b\\xa3\\x5a\\x90\\x2c\\x81\\xdc\\xeb\\x37\\x88\\xb6\\x15\\xde\\x22\\x5a\\xfa\\x58\\xa8\\x11\\x81\\xab\\x24\\xa7\\x37\\x05\\xee\\x83\\x8b\\x6e\\x86\\x3f\\xe1\\xbc\\xc2\\x6c\\x1b\\x94\\x32\\x39\\x23\\x0c\\x27\\xc6\\xb3\\x97\\xb2\\x3d\\x13\\xde\\x6a\\x02\\xc9\\x7f\\x36\\x45\\xda\\x91\\xd4\\x13\\xf9\\x16\\x47\\x3b\\x01\\x8a\\x61\\x59\\x4b\\x6f\\x51\\xce\\xa4\\x44\\x57\\xda\\x1e\\x3d\\xbb\\xba\\x6d\\xe1\\x68\\x66\\x65\\x7e\\x92\\xef\\x02\\x02\\x71\\x8a\\x84\\xad\\x03\\x33\\xe8\\x33\\x6b\\x05\\x2b\\x00\\x47\\x33\\xe8\\xe9\\x5e\\xc1\\x3e\\x5f\\x91\\xb3\\x80\\x6a\\x98\\xd3\\xdb\\x72\\x9f\\xb7\\x35\\xb8\\x14\\x7c\\x4a\\x98\\x2a\\x2d\\x5b\\x4e\\xfa\\xe9\\xc0\\x9d\\x0a\\x9b\\xf8\\x91\\xcb\\xbc\\x3c\\x8f\\x53\\x1e\\x76\\xe4\\x04\\x4e\\xc9\\x1f\\x4d\\x7c\\x5c\\xf7\\x73\\x10\\xe2\\xb2\\xcd\\xe2\\xe0\\x7c\\xcf\\x3e\\x0a\\x19\\xdd\\x6a\\xe1\\xb3\\xfc\\xb2\\xdf\\x42\\x18\\x6e\\x9c\\x72\\x92\\x2d\\x2d\\x4c\\xe5\\x1b\\x30\\x6e\\x81\\xb1\\x6c\\xfc\\xf8\\xf0\\x0d\\x51\\x3f\\xbd\\x2c\\x52\\x39\\xb4\\x5a\\xfc\\x65\\x4f\\x6f\\xe2\\x1a\\xcb\\x7e\\x8a\\x0c\\x9a\\xa8\\x7b\\x0b\\x60\\x50\\x74\\xdf\\x95\\x76\\xa6\\xdd\\xd9\\x00\\xac\\xa5\\x67\\x61\\x7c\\xb7\\x96\\x56\\xb3\\xb5\\xec\\xb9\\xff\\x68\\xb2\\xf6\\x24\\x1e\\xd0\\xd0\\x24\\xac\\x27\\xaa\\x6e\\xb4\\x86\\xb6\\x9f\\xdc\\x0a\\x0d\\xb9\\x20\\x96\\xab\\xf8\\x60\\x02\\xde\\xc7\\xaf\\xd8\\x47\\xa0\\x06\\xa3\\xf6\\x95\\x5b\\x49\\x56\\x90\\x53\\xbe\\x9f\\x1d\\x0a\\x49\\xb7\\x93\\xa5\\x41\\x1e\\x59\\x16\\xf4\\x18\\xec\\xab\\x95\\x32\\x43\\x55\\x3b\\x66\\xe6\\xba\\xdc\\x4e\\x90\\x9b\\xe0\\xef\\x5c\\xc7\\xc6\\xd2\\x71\\x99\\xec\\x3f\\x21\\x42\\x3b\\xc4\\x57\\x73\\xfb\\x40\\xb9\\x7b\\x61\\x18\\x5b\\x57\\x08\\x0e\\x8f\\x0b\\x89\\xa3\\xea\\x57\\xc8\\x44\\x4a\\xb2\\x7e\\xcf\\x70\\x06\\xa7\\x66\\x04\\x7e\\xef\\xf5\\x4d\\x85\\x56\\xcf\\xed\\x23\\xde\\xf1\\xda\\x2c\\xc8\\xae\\xbb\\x48\\xc9\\x4e\\x77\\x9e\\x82\\x03\\xae\\x2c\\x90\\x2b\\x51\\xde\\x0e\\xde\\x04\\x56\\xfb\\x73\\xfb\\x4d\\x5f\\x51\\x4a\\x4c\\xeb\\xc4\\x7f\\xec\\x3f\\x94\\x84\\x69\\xa5\\x45\\xc6\\xbc\\x57\\xb4\\x13\\x8d\\xb3\\x4e\\x7c\\xc0\\x06\\xde\\x26\\xef\\x50\\x7b\\x54\\xd2\\x81\\x47\\x56\\x7a\\x8c\\x29\\xac\\x1e\\xce\\xf5\\xbb\\x84\\xfb\\x99\\xac\\xeb\\x23\\xa2\\x02\\x94\\xd7\\x4a\\x85\\xae\\x36\\xb3\\x34\\x50\\x66\\x8a\\x5c\\x26\\x09\\xd3\\xa9\\x39\\x34\\x58\\x6f\\xf9\\x0c\\x3b\\x6d\\x27\\x32\\x9e\\xee\\xf3\\xa7\\x54\\xe9\\xa9\\xcb\\xd5\\x61\\x7e\\xf3\\xb0\\x93\\x97\\xbd\\xc9\\x71\\x37\\x07\\x66\\x58\\x9a\\x12\\xd8\\x90\\x05\\x0d\\x16\\x51\\x45\\x8b\\x3f\\xc5\\x33\\xc8\\x43\\xbf\\xfd\\xf9\\x75\\x4d\\x93\\x2c\\x4e\\xd7\\x61\\x1d\\x4d\\x27\\xc3\\x2a\\x08\\x75\\x55\\xb5\\xea\\xa3\\x7a\\xe9\\x0c\\x49\\x79\\xef\\x54\\x29\\x9c\\x42\\x0a\\xb5\\xe2\\x9a\\xe2\\x84\\x5d\\x4d\\xcf\\x21\\x78\\x92\\x0a\\x86\\x51\\x75\\xfb\\x9c\\xc0\\xe6\\xb8\\xc5\\x24\\xb1\\xee\\x49\\x58\\x05\\xd5\\x17\\xbf\\xe0\"},\n{{0x5c,0x69,0x2c,0x68,0x11,0x98,0xb1,0x72,0xdf,0x2f,0xac,0x2a,0xec,0x3f,0xcf,0x70,0x15,0xc2,0xbb,0x68,0x30,0xf2,0xa9,0x8e,0x30,0xa3,0x96,0xb6,0x4a,0xf4,0x28,0x0e,},{0x33,0xb1,0x69,0xd4,0xca,0x27,0x10,0x40,0x92,0x6e,0xa8,0x78,0x35,0xe5,0x06,0x6f,0x9f,0x05,0x78,0x2f,0x08,0x7f,0xca,0x7a,0x55,0x6f,0x7b,0xf4,0xcb,0xa2,0xe8,0x86,},{0xad,0x8f,0x37,0x9c,0xaf,0x41,0xf7,0x2d,0xcc,0xad,0xc3,0xe9,0x15,0x35,0x7a,0xb0,0xcd,0x30,0x4e,0x10,0xf4,0x12,0x0e,0x0d,0xbb,0xfa,0xac,0x01,0xbf,0xfa,0xf2,0xbe,0x89,0x3f,0x70,0x07,0x2d,0xc9,0x64,0x06,0x91,0x81,0xbe,0xc1,0x7f,0xe0,0x25,0x10,0x55,0xb2,0x1e,0x23,0xde,0xe4,0x36,0x3b,0x27,0xef,0x1f,0xff,0x67,0xaa,0xfe,0x06,},\"\\xb1\\x60\\xee\\x3a\\x93\\xcf\\x6b\\xc3\\x45\\x6e\\x5b\\xd0\\x19\\x7c\\x09\\xaa\\x76\\xc2\\x25\\x80\\x52\\xf9\\xa3\\x4d\\xbc\\x2e\\xd5\\x89\\xf8\\xdb\\xe5\\xff\\x99\\x69\\xa6\\x1c\\xfe\\x84\\x6b\\x2f\\x67\\x39\\xdc\\x7d\\x4a\\x14\\x96\\xe9\\xad\\x58\\x60\\x5b\\x5a\\x27\\x58\\xca\\x07\\x8c\\x55\\xa9\\xfc\\x1c\\x4e\\xeb\\x54\\x91\\xa8\\x4b\\xfd\\x46\\x8a\\x2c\\xeb\\x14\\x1a\\x77\\x34\\x93\\xa9\\xb3\\xee\\x82\\x8b\\x5d\\xde\\x9c\\x00\\xc2\\x36\\xff\\x01\\x56\\xe4\\xe2\\xe4\\x5f\\xa0\\x79\\x31\\xda\\x68\\xbb\\xd2\\x03\\x0a\\x88\\x14\\x05\\xc4\\xf7\\x87\\x28\\x81\\x3a\\x5e\\x04\\x81\\x24\\x04\\xc2\\xa1\\x9c\\x9b\\x87\\xb1\\xcf\\xe9\\xaf\\x95\\xe2\\x73\\xec\\xf9\\xc5\\x18\\xc5\\x39\\x35\\xf8\\x42\\x56\\x3b\\x19\\x2f\\xae\\x12\\xa7\\x3c\\xef\\x08\\x5f\\xe1\\x9e\\x89\\x9e\\x5b\\xa0\\x89\\x79\\xe3\\x11\\xfb\\x28\\x6f\\xbf\\xc7\\xb2\\x48\\xaa\\xbd\\x40\\xdc\\x61\\x61\\x0e\\x1d\\x4f\\xc9\\x80\\x6d\\xd2\\x12\\x92\\x39\\x2d\\xb2\\xdb\\x40\\x42\\x6c\\x5d\\x19\\x6a\\x48\\x9c\\x5d\\xb7\\x7e\\x3e\\x9c\\xf0\\xbd\\x04\\x1e\\x3c\\x23\\xb5\\xba\\x1d\\xb7\\x81\\xa1\\x07\\x90\\xbe\\x1f\\xe0\\x7a\\x2b\\x00\\xca\\x3a\\xf8\\x9c\\xbd\\x46\\xef\\xce\\x88\\x0e\\x1e\\xf2\\x8b\\x0c\\xd7\\x9d\\x53\\xb4\\x2c\\xd8\\x0e\\xaa\\x13\\x7e\\xff\\x7d\\xf9\\x0b\\xcb\\xcf\\x95\\xc9\\x85\\x8d\\xc0\\xcc\\xc6\\xd8\\xca\\x8a\\xe3\\x54\\x7b\\xdb\\xf9\\xff\\x90\\x24\\xf3\\xcf\\x17\\x01\\x15\\xeb\\x28\\xbf\\x12\\xb7\\xd3\\xb7\\x01\\x46\\x0f\\x48\\xd1\\xb4\\xb2\\x3d\\x7f\\x6f\\xf7\\x2f\\xfd\\xc9\\xa6\\xc5\\x26\\x24\\xd1\\x53\\x12\\xd7\\xf1\\x9d\\xdb\\x60\\x26\\xa1\\x5e\\xb5\\x42\\x95\\xd3\\x31\\xfd\\x79\\x50\\x91\\x03\\xbc\\x59\\xa3\\xb6\\xe1\\xba\\x7a\\xc8\\xc1\\x12\\xe4\\xde\\x28\\x17\\xe5\\x1c\\x1e\\x16\\x50\\x7b\\xa6\\x6f\\x25\\x47\\xbc\\x89\\x9f\\x69\\xc1\\x20\\x7a\\xe5\\xe3\\x7b\\xdb\\x0e\\x16\\x1b\\x15\\xb6\\x12\\x30\\x5b\\xc0\\x94\\x0f\\x9d\\x1b\\x38\\x2a\\x37\\xec\\x2d\\xa6\\x39\\xa6\\xec\\xba\\x1b\\xcd\\xfc\\x51\\x21\\x4c\\x32\\x23\\xc1\\x1b\\xba\\xb7\\x9f\\x3f\\xae\\x3d\\x55\\xe2\\xd4\\xbe\\x58\\x4f\\xd7\\x60\\x1e\\x4e\\x2e\\x55\\x8b\\x3b\\xe5\\x70\\x71\\x15\\xa6\\x1f\\x5a\\x81\\x5e\\xc2\\x4a\\xac\\x18\\x09\\x34\\x57\\xbc\\x46\\xc0\\x5c\\xfb\\x7a\\x3f\\x25\\x33\\xea\\xda\\xdc\\x9e\\x6c\\x1f\\xe3\\x10\\x77\\x9e\\x69\\x7f\\x68\\x30\\x35\\xce\\x57\\x87\\x3d\\xf5\\x5d\\x79\\x1f\\x6d\\x2f\\xb0\\xe2\\x10\\x7e\\x68\\x66\\xf8\\x39\\xc3\\xa1\\x26\\xe9\\x02\\x38\\x65\\xce\\xd1\\xbc\\xf6\\x77\\x99\\x55\\xaf\\x54\\x7e\\x1d\\x87\\xeb\\x32\\xa9\\xbf\\x32\\x28\\x57\\xfd\\x12\\x6b\\x0c\\xdc\\x5d\\x5e\\x90\\x4e\\xb7\\x6c\\x67\\x06\\xe3\\xc8\\x97\\xae\\xfd\\x6e\\x47\\x56\\xfb\\x8a\\xca\\x81\\x70\\xca\\x5b\\x39\\x66\\x90\\x89\\xaf\\x1b\\xb1\\x41\\xa2\\x5d\\x6b\\x8b\\x06\\x03\\x4d\\x8b\\x11\\xab\\xf1\\xff\\x8f\\x8d\\x43\\x37\\x58\\x46\\xfa\\x8f\\xa8\\xa3\\x4b\\x5f\\x26\\x48\\x20\\x74\\x4d\\x31\\x14\\x9b\\x7d\\x57\\x32\\x6c\\x59\\xb1\\xdb\\x74\\x13\\x16\\x78\\xf6\\x34\\xe7\\x23\\x2c\\xa5\\xea\\x51\\x88\\x76\\x0a\\x70\\xdc\\x35\\xdc\\x89\\xf8\\xe4\\x53\\xb4\\xc6\\x5b\\x77\\x2c\\x2b\\x6b\\x62\\x76\\x8d\\x83\\x73\\x23\\x65\\x51\\xba\\xaf\\x24\\xd3\\xc3\\x04\\xc4\\x1b\\x62\\xc3\\x6e\\x6a\\x33\\x83\\xb3\\xa1\\x63\\xb7\\x3e\\x78\\xd8\\xba\\xdb\\x75\\x74\\x1e\\x50\\x01\\xd4\\x19\\xd3\\x0e\\x2e\\xd7\\x7c\\x30\\x96\\xe8\\xd8\\xdf\\x71\\x3b\\x93\\x76\\x2c\\x97\\x07\\xbd\\xd0\\xf3\\x65\\xa8\\x74\\xb9\\xda\\x8a\\xb7\\x10\\x49\\x5d\\xd5\\x6a\\xea\\x93\\xbb\\x77\\xfb\\x22\\x26\\x35\\xc6\\x3b\\xce\\x9f\\x63\\xaf\\x91\\xfa\\xc8\\x9c\\x66\\x98\\x6b\\x8e\\x21\\x76\\xdd\\x45\\x1d\\x58\\x33\\x94\\xc1\\x90\\x7c\\xba\\x17\\x25\\xf0\\x6d\\x25\\xd1\\xd0\\x91\\x2b\\x3e\\x5c\\x6c\\x7d\\xcd\\x34\\x35\\x8f\\xad\\x59\\xdb\\xc6\\xf6\\xb1\\xc2\\xef\\x33\\xd3\\xca\\x82\\xf4\\x35\\x18\\xfe\\x4f\\xf3\\x13\\x78\\x01\\x6e\\x57\\x8a\\x7b\\xab\\x0b\\x77\\x67\\x6e\\xba\\xe0\\xd4\\x8d\\x08\\x89\\xd6\\x90\\x29\\xd2\\x09\\xf2\\x83\\xce\\x8f\\xe0\\xec\\x23\\xcd\\x83\\x2a\\xdc\\x12\\xa9\\xc3\\xe3\\xae\\xc2\\xd6\\x03\\x66\\x95\\x55\\x6d\\x93\\x13\\xf1\\x2a\\x89\\x9d\\xd5\\x9a\\x66\\xbe\\xf2\\x8e\\xde\\x17\\x5f\\x8a\\xae\\xee\\xb2\\x94\\x2b\\xb9\\x08\\x92\\xa0\\x4b\\x44\\x0d\\x04\\xb6\\x6f\\x5e\\xef\\xf6\\x1a\\xda\\x72\\x79\\x02\\x94\\xce\\x55\\xc8\\x6c\\x6d\\x92\\x78\\x5d\\xdd\\x26\\xc7\\xa7\\x31\\x60\\x3b\\x06\\x9c\\x60\\x3c\\x92\\xe4\\xfe\\x8f\\xf7\\x82\\x54\\x4c\\x8e\\x89\\xb4\\x0b\\x8b\\x55\\xf9\\x0e\\x2a\\x5e\\x9a\\x0f\\x33\\xc7\\xfe\\xc7\\x7d\\xad\\x81\\x52\"},\n{{0x9d,0x5f,0x85,0xd2,0xe7,0xdf,0xd0,0x3b,0xb6,0x89,0xd9,0x00,0x28,0x5f,0xd4,0x46,0x15,0x38,0xa5,0xf2,0x71,0x0a,0x13,0xed,0x21,0xc7,0x75,0xf6,0xef,0xf6,0xb3,0xff,},{0xb8,0x67,0x97,0xe4,0xbe,0x02,0x86,0xae,0x39,0xe4,0x4d,0xf0,0xa0,0x0c,0x01,0x6d,0xb4,0x55,0x5e,0xf8,0x6f,0x2f,0x05,0xd0,0xa3,0xed,0x89,0xd8,0x9a,0x4c,0x3e,0x5e,},{0x17,0x6b,0x95,0x92,0xf8,0xc2,0x51,0x35,0x29,0x2a,0xdd,0x4d,0xaa,0xcc,0x9c,0x4f,0xaa,0x21,0xd4,0xf4,0x9b,0x27,0x84,0x80,0xc4,0xe8,0x88,0x1c,0x01,0x62,0x4d,0xf9,0xa3,0x7e,0x23,0xe1,0x8e,0x84,0xca,0x32,0xd0,0xd8,0xcb,0x85,0x10,0x54,0x22,0x2f,0x10,0xa4,0x95,0x41,0x9f,0x19,0x7e,0x7b,0x3d,0x18,0xdf,0x0a,0xdf,0xb1,0xb3,0x07,},\"\\xf7\\x0b\\x5b\\x05\\x3a\\x46\\x72\\x51\\x2c\\x24\\xb3\\x16\\x83\\x92\\xf6\\xa1\\x7d\\xd7\\x7d\\x86\\x89\\xc2\\x1c\\x86\\xef\\xc2\\x58\\x29\\xa1\\xa0\\x4f\\xab\\x4f\\x76\\xc8\\x52\\x16\\x84\\xd3\\x20\\x10\\x45\\x59\\x07\\xa2\\x69\\x08\\x67\\x7b\\x40\\xdc\\x69\\x47\\xd6\\x54\\xf2\\x91\\x4c\\x30\\xec\\xee\\x72\\x4f\\xa6\\x84\\x46\\xb5\\x9d\\x09\\x1e\\x25\\x8f\\xc8\\x62\\x41\\x1c\\x96\\x4d\\x66\\x8d\\xef\\x83\\x03\\x4b\\x62\\x7e\\xd4\\x16\\xdc\\x19\\x0b\\xb5\\xa2\\x63\\xa6\\xff\\x8d\\x55\\x9e\\x13\\xb8\\x93\\x62\\x25\\xfb\\x4d\\xab\\x4f\\x7b\\xda\\x04\\x68\\xe5\\x47\\xe7\\x08\\xcb\\x04\\xce\\xbe\\x1e\\x5c\\xfc\\x69\\xf7\\x6a\\x1d\\x28\\x3f\\x28\\x16\\x82\\x86\\xf2\\x4e\\xce\\xa5\\x53\\x5e\\x44\\x90\\xa0\\xc5\\x55\\x67\\xa7\\x34\\x5e\\xf9\\x53\\xce\\x42\\x6b\\x20\\x9a\\x3d\\xe3\\xdf\\x59\\x5e\\x80\\xee\\x61\\xe5\\x72\\xa2\\x78\\xab\\x02\\x21\\x95\\x51\\xb7\\x3d\\xa4\\x19\\x84\\x80\\x82\\x85\\xa8\\x35\\x98\\xa0\\x2d\\x9b\\x28\\x67\\x12\\x10\\x00\\x4e\\x31\\xd8\\xaf\\x92\\x42\\xc1\\x6f\\x90\\xd5\\xea\\x8f\\x63\\xa1\\xff\\x66\\xcf\\xe6\\x0e\\xcb\\xe5\\x37\\x24\\x5f\\xa1\\x2a\\x9b\\x15\\x41\\x15\\x29\\x58\\x06\\xea\\x2d\\x11\\xf3\\x67\\x17\\x82\\xb9\\xaf\\x4f\\xa8\\x6a\\x12\\x88\\xe1\\x23\\xcf\\xd2\\x40\\x9a\\x5d\\xc9\\x8f\\x41\\xb8\\xf6\\xdf\\x29\\x9b\\xbc\\xc4\\xbb\\x64\\x47\\xdc\\x03\\xa6\\xd6\\x0e\\x9b\\x2c\\x5b\\x8f\\xfc\\x40\\xd9\\x83\\x95\\x6b\\xe9\\x77\\x68\\xdd\\x06\\x12\\xd4\\x7c\\xbf\\xa7\\x57\\x1c\\x99\\x69\\x85\\x6c\\x15\\x2c\\xd3\\xb4\\x73\\xac\\xe0\\xb8\\xa1\\x44\\xaa\\xc2\\x09\\x5c\\x0f\\x72\\xf1\\xd3\\x14\\x71\\x52\\xb9\\x08\\xef\\x66\\x26\\xd5\\x22\\x28\\x19\\xb2\\x0b\\xb3\\x35\\x0a\\x46\\x45\\x2f\\x67\\x54\\x90\\xc2\\xa8\\x21\\x50\\xee\\xc4\\x0d\\x75\\xb6\\x6a\\x32\\x5d\\x6e\\x92\\x9a\\x90\\x5a\\xde\\x1e\\x31\\x60\\xab\\x95\\x01\\x81\\xef\\xc6\\x6e\\x59\\x23\\x08\\x65\\xd5\\xe5\\x99\\x69\\x8a\\x8a\\x3f\\xf5\\x60\\xc4\\xc6\\x01\\xa7\\xa9\\xa5\\xda\\x3b\\x5d\\x89\\xbc\\xa9\\x3f\\x7c\\xf5\\xbc\\xf5\\xbd\\x5e\\xcf\\xf8\\xf1\\xa1\\x85\\xc8\\x22\\x0e\\x4c\\x77\\x82\\x1e\\x62\\xad\\xf9\\x5a\\x03\\x7f\\x2d\\xf7\\xce\\xf4\\x3a\\x4c\\x60\\xac\\x75\\x80\\x1e\\x9f\\xcc\\xdc\\x5b\\x08\\xee\\xd3\\x28\\xdd\\x93\\x10\\x09\\x04\\x11\\x56\\x45\\xec\\x1e\\xe0\\x85\\xcc\\x77\\x8b\\x0f\\x4e\\x46\\xe1\\x72\\x98\\x98\\x4a\\x70\\x2e\\xce\\xb3\\xe1\\x52\\x83\\xd8\\x20\\x00\\x4f\\x74\\xa0\\x79\\x52\\x0d\\x63\\xa7\\x5f\\xae\\x33\\xec\\x3f\\x4b\\x83\\x64\\x69\\xe1\\xaa\\x99\\xea\\x24\\x4a\\xf1\\xfb\\x08\\xb0\\x0a\\x8c\\x9d\\xfd\\x03\\x30\\x8d\\xfc\\x20\\x23\\x5e\\xa9\\xc8\\x28\\x3f\\x4d\\xa4\\x7c\\xfb\\xcd\\xbd\\x03\\x1a\\x02\\xd1\\x64\\x16\\x0f\\x2a\\x58\\x98\\x67\\x00\\xb1\\x95\\x26\\xd4\\x1e\\x4d\\x7f\\xd4\\x58\\x43\\x4d\\x72\\x64\\xbc\\x8e\\xb6\\x42\\xe6\\xd8\\xdd\\x27\\x59\\xce\\x2b\\x85\\xc9\\x7b\\x37\\x02\\xe7\\x0d\\xa7\\x1f\\x18\\xed\\xc5\\x3e\\x91\\x40\\xa6\\x45\\x62\\x7e\\x02\\x78\\xe8\\xe7\\x05\\x39\\x03\\x74\\x84\\xdc\\xd1\\x8c\\x62\\xfa\\x33\\x07\\x17\\xd6\\x14\\x8a\\x0d\\x62\\x3f\\xf8\\xb6\\x5e\\xa8\\x56\\x7e\\xc7\\xfa\\x04\\xc8\\x92\\xe3\\xa1\\xec\\xee\\x96\\xe8\\x32\\xf4\\x15\\x50\\x74\\xc8\\x3c\\xbc\\x93\\xe9\\x8c\\xc6\\x7f\\x1f\\xa1\\x12\\xaa\\x06\\xe9\\x91\\x5f\\xa4\\xd2\\xde\\xa9\\x31\\x55\\x1e\\x7c\\x62\\x3a\\xa8\\xa3\\xa7\\x61\\x9e\\xa2\\x4f\\xf9\\x14\\xe2\\x64\\xf3\\x1f\\xc7\\x3d\\xfa\\x8c\\x43\\x0a\\xc4\\x6c\\xe1\\x6d\\xc9\\x68\\xc5\\xa4\\x08\\x5d\\x5c\\x38\\x0d\\x30\\xcd\\xc6\\xf4\\x3d\\xee\\x80\\x6f\\x38\\xd1\\xdf\\x42\\x0a\\x06\\x55\\x74\\x14\\x47\\x37\\x05\\x6d\\xaa\\x62\\xf0\\xc0\\x98\\xc9\\xc5\\x2f\\xcc\\x04\\xcc\\xa6\\x42\\xc4\\x5d\\x68\\x73\\x45\\xa0\\x94\\x61\\x3d\\x4a\\x3c\\x6c\\x87\\x88\\xbf\\xa2\\x18\\x53\\x8a\\xd7\\xec\\xe1\\xbd\\xb6\\xc9\\x39\\x24\\xee\\xc4\\xba\\xaa\\x3e\\xb1\\x5d\\xc1\\x49\\x4d\\x65\\xff\\xa1\\xa2\\x3f\\xf8\\xe9\\x85\\x26\\x34\\x08\\xfb\\x02\\xbf\\xe3\\x9a\\x8c\\x55\\xb3\\x00\\xb1\\xa0\\x2e\\xd3\\x6c\\x67\\x14\\xdd\\x5a\\xb7\\x50\\xd4\\x7f\\x02\\x1f\\x65\\xe0\\x8c\\x63\\x5f\\x1d\\x6b\\x7b\\xaf\\x39\\x6c\\xb4\\xf9\\x3d\\x56\\xc1\\xca\\x46\\x1b\\xb1\\x2e\\x94\\xde\\x7e\\x5d\\x98\\x65\\x9a\\x8a\\xf0\\xbf\\x01\\x9f\\xc4\\x22\\x80\\xe1\\x11\\xe0\\x48\\x00\\xff\\x80\\xe0\\xc1\\x57\\x15\\x0e\\x16\\x56\\x09\\x45\\x42\\x81\\xb2\\x00\\x07\\xe3\\xed\\xfa\\xa1\\xea\\x85\\x44\\x65\\x54\\x7a\\x00\\x6a\\x4c\\x32\\x36\\x41\\x14\\x95\\xda\\x16\\x60\\x98\\xaf\\x28\\x23\\xa4\\x59\\xcf\\x10\\x0a\\x1f\\x3c\\x92\\xc6\\x39\\x0c\\x60\\x66\\xcd\\xbf\"},\n{{0x4a,0xaf,0x2d,0x13,0x28,0x84,0xf3,0x0d,0x11,0x27,0xcf,0x18,0x7e,0xe0,0x93,0x88,0xb4,0xa5,0xc4,0x4a,0x9a,0x92,0x67,0xe6,0x72,0x83,0x17,0x39,0x89,0x51,0xfb,0x61,},{0x83,0x72,0x7e,0x92,0x57,0x34,0x91,0x28,0x55,0x9e,0xbf,0x75,0x9f,0xdc,0x82,0x12,0x2c,0xce,0x76,0x74,0x66,0x39,0xc0,0xad,0xa9,0x76,0x1f,0x0d,0x60,0xb9,0x40,0xb1,},{0x5f,0x11,0xdf,0x39,0x06,0xa7,0x12,0xa9,0x53,0xf4,0x7c,0x85,0x98,0x06,0xb5,0x23,0x73,0x58,0xd0,0x8b,0xa9,0x5e,0x49,0xf9,0xe5,0x30,0xa3,0x71,0x65,0x83,0x5e,0x93,0x59,0xd9,0x76,0x9d,0xc2,0x1f,0xbb,0x4d,0x44,0x49,0x7b,0x93,0x90,0x5b,0xca,0x8d,0x99,0x17,0xc7,0x28,0x49,0x3f,0xee,0x3a,0xcd,0x5b,0x52,0x1d,0xbd,0x1e,0x24,0x08,},\"\\xd7\\x3e\\xaf\\x11\\x41\\x3b\\xf4\\xd5\\xbc\\xcf\\x6a\\x2e\\x80\\x9c\\xd6\\x83\\x2a\\x51\\x82\\x3a\\xa2\\x2b\\xd1\\x6e\\x09\\xcf\\x56\\xff\\x04\\x5e\\xef\\x2d\\x1a\\xda\\xdd\\xa5\\x0c\\x2e\\xbd\\x67\\xbb\\xc4\\xd7\\x0e\\x49\\x3c\\x96\\x8c\\xb4\\xde\\x49\\x77\\x06\\x5d\\x44\\x63\\x30\\x06\\x94\\xc9\\xca\\xa5\\x72\\x06\\xd6\\x66\\x46\\x93\\xd8\\x46\\x2c\\x3c\\x57\\x6b\\x52\\x5c\\xc7\\xac\\xf7\\x9f\\x26\\xf9\\x05\\x5a\\x1b\\xcf\\xa7\\xd0\\x77\\xf4\\x5e\\xbe\\x0b\\x2d\\x48\\x1e\\xbd\\x63\\xf7\\x34\\x0a\\x33\\xe4\\xab\\x68\\xf1\\x60\\x49\\x75\\xec\\x1d\\xfe\\xc4\\x5a\\x79\\x1a\\x2a\\xbb\\x10\\x44\\xd7\\x5a\\x4d\\xb5\\x5a\\xdf\\x59\\xb8\\x39\\x4e\\xbd\\xe6\\x82\\x4c\\x21\\x14\\x5b\\x00\\xef\\x3b\\x1b\\x08\\xed\\x11\\xfd\\x51\\xdd\\xa5\\x14\\xed\\x7e\\x21\\xe5\\x4d\\xba\\xf6\\xab\\xb6\\xd9\\xe3\\x17\\xfc\\xf9\\xfd\\x37\\x5b\\x18\\x76\\x4e\\x64\\xac\\x9b\\xe5\\xb0\\x8f\\xec\\x3b\\x78\\xab\\xba\\xb1\\xd1\\x2a\\x2a\\xb0\\x9d\\x55\\x9a\\xcd\\xc7\\x13\\x3f\\xb2\\xe0\\x00\\x8e\\x0c\\x11\\x4b\\x7c\\xad\\xb4\\xbf\\x76\\x30\\x78\\x67\\x4d\\x03\\xe9\\xc8\\x07\\xbe\\xc1\\xe2\\xca\\x71\\xad\\xcd\\xaa\\x31\\x0d\\x58\\x7f\\xa5\\x69\\x50\\xfc\\x0f\\xb2\\xe9\\x79\\x04\\x3d\\x50\\xf9\\xae\\x23\\xfa\\x8f\\x82\\x1c\\xd9\\xd6\\x23\\x27\\x89\\xd0\\xee\\xcc\\xfc\\x4f\\x47\\xe3\\xad\\x80\\x4e\\x25\\xcf\\x5a\\x42\\x5f\\x94\\x37\\x7d\\x17\\x87\\x48\\x33\\xe6\\xae\\x36\\x38\\x17\\x8c\\x78\\xb7\\x95\\x19\\xd6\\x4d\\x97\\x93\\xf4\\x50\\x46\\x06\\xa0\\xea\\xb6\\x87\\x07\\xf6\\xe1\\xf7\\xcc\\xcb\\x51\\x5b\\xe3\\xd1\\x20\\x1b\\xcd\\x19\\xf2\\xf0\\xe2\\x55\\xc7\\x22\\xea\\xb1\\x2b\\x43\\xaf\\xf8\\xc8\\xc5\\x56\\x11\\x25\\xfb\\xca\\x1f\\x65\\x42\\x07\\x6a\\x06\\x15\\x2e\\xb7\\xe4\\xb0\\x78\\x63\\x24\\xc2\\x49\\x5e\\x79\\xd7\\x9c\\x0a\\x8e\\x29\\x5b\\xb2\\xe3\\xdf\\xd0\\x5a\\x90\\x33\\x19\\x00\\x65\\xa2\\x84\\x55\\x2a\\x6e\\x73\\x60\\x06\\xac\\xe4\\x1f\\x97\\xcc\\x43\\x4a\\x25\\x12\\x05\\x1b\\x72\\x7c\\xe5\\xbc\\x9c\\x4a\\x75\\x52\\x9e\\xc5\\x3d\\xd7\\xd1\\xf1\\x26\\xe7\\x93\\x85\\x77\\x47\\xb5\\xba\\x8d\\x03\\x15\\x5d\\x45\\x55\\xf5\\x9e\\x8b\\xaf\\x2f\\x0c\\xdb\\xa8\\x71\\xac\\x16\\x0e\\x75\\x19\\xa8\\x52\\xdb\\x00\\x4f\\x70\\x16\\x41\\xa4\\x0a\\x42\\x2d\\x4c\\x38\\xb6\\xc0\\xc3\\xcc\\x8f\\xbb\\xd0\\x53\\x22\\xdd\\xc0\\x00\\x1f\\xb8\\x67\\x28\\x6e\\x29\\x6c\\xbd\\x69\\x86\\x2c\\xbc\\xcc\\x74\\x47\\x03\\x8e\\xb3\\x0f\\x8a\\x81\\x23\\xb7\\xb3\\x13\\x73\\x98\\x47\\x02\\xc3\\xbe\\x45\\x7a\\x4b\\x8c\\x54\\xe6\\xe5\\x28\\x04\\x85\\xa2\\xc4\\xff\\x84\\x52\\x1f\\x29\\x8d\\xde\\xb3\\xb3\\xb2\\xbc\\x91\\xf1\\x14\\xdd\\xce\\x67\\x03\\x02\\x48\\x04\\x44\\x69\\xdc\\x06\\xf3\\x62\\xf2\\x91\\x9a\\x3f\\xec\\xe5\\x08\\x23\\x75\\xd0\\x40\\x80\\x37\\x6f\\xe2\\x19\\xd9\\xb4\\x57\\x5b\\x1c\\xf1\\xc9\\xec\\x4d\\xca\\xc5\\x74\\x9f\\xc7\\x78\\xf5\\x15\\xdd\\xa1\\x3f\\xa0\\xd5\\x86\\xc2\\x64\\xb9\\xbb\\x61\\x50\\x33\\x10\\x76\\x2c\\x78\\x9c\\xa1\\x16\\x08\\xd2\\xfe\\xe6\\x74\\xc7\\x0a\\xc4\\xfc\\x6d\\x5e\\xbc\\xf6\\x8c\\x4a\\xb8\\x9b\\xd8\\x45\\x55\\xfc\\x00\\x75\\x23\\xc2\\x8a\\x7e\\x1d\\xd0\\x8a\\x98\\x62\\x04\\x4d\\x52\\x45\\xb9\\x1a\\x87\\x78\\xec\\x9e\\xe9\\x84\\xa4\\x1a\\x9e\\x13\\xb7\\xab\\xd6\\x57\\xae\\x2a\\x46\\xae\\x86\\x01\\x52\\xc6\\x44\\xac\\xd9\\x53\\x67\\x67\\x8f\\xf6\\x4c\\xc5\\x40\\x06\\xe3\\x66\\x14\\x80\\x5e\\xd6\\x18\\xa7\\xc6\\xd0\\xfd\\x33\\xa9\\x08\\x52\\x30\\x90\\x84\\x1c\\x23\\x0a\\xf0\\x98\\x46\\xd1\\x32\\xbb\\x4c\\x6b\\x60\\xe2\\x44\\x1f\\x9d\\x3c\\x49\\x87\\x14\\xf4\\x70\\xf6\\xbc\\x03\\xa8\\x0d\\x14\\xa2\\x94\\xb5\\x65\\xd1\\xd5\\xe7\\x81\\xcf\\xfc\\xb1\\x30\\x4e\\xfd\\xbb\\xc7\\xbf\\xea\\xbd\\xed\\xc8\\x57\\xac\\xc4\\x2e\\x27\\x62\\xbb\\xf9\\x7a\\xf8\\x39\\xa1\\x66\\x75\\x2d\\xa2\\x95\\x67\\x28\\x17\\xf1\\x0d\\xbd\\x47\\x2d\\x38\\x1f\\x53\\x16\\x55\\x55\\xac\\x82\\x22\\xa7\\x85\\x35\\xa8\\x68\\x05\\xf1\\xbe\\xd4\\x22\\x88\\x9f\\x20\\x61\\x09\\xaa\\x74\\x77\\x2e\\xdc\\x0b\\xb5\\x1e\\x8a\\x98\\x40\\xcf\\x62\\xc9\\x2f\\xa6\\x35\\xb9\\x0c\\xae\\x07\\x6d\\xd5\\x0e\\x5a\\xed\\x9d\\xea\\xc8\\x43\\xfa\\x8a\\x6b\\x53\\x99\\x88\\x28\\x5f\\xf1\\xad\\xab\\xe4\\xc7\\xb8\\x3d\\x9e\\x29\\xac\\x2d\\x94\\x09\\x2d\\xaa\\xfe\\xc9\\xf6\\x67\\x36\\x89\\xba\\x9e\\x92\\x52\\xd8\\x64\\xd7\\x57\\x7a\\xa8\\x95\\x05\\xd3\\x31\\xfe\\x78\\x09\\x86\\x12\\x77\\x00\\x2a\\x0b\\x44\\xa9\\x6b\\xa6\\xae\\x4a\\x52\\xb3\\x54\\x8b\\xf2\\x68\\xe7\\x77\\x78\\x0c\\x00\\x20\\x9b\\x24\\x5f\\x8b\\x14\\x17\\xee\\x5e\\x70\\x1a\\x12\\x33\\x4a\\xd5\"},\n{{0x4b,0xc7,0xda,0xab,0xc5,0x40,0x7c,0x22,0x6d,0x19,0x20,0xdb,0x4a,0xfd,0x21,0xb2,0xa5,0xb3,0xe5,0x9b,0x8e,0x92,0x46,0x05,0x3f,0x6a,0x1a,0x6a,0xfa,0x54,0xe7,0xe7,},{0xdc,0x53,0x98,0x85,0xfc,0x7b,0xee,0x00,0x2a,0xc5,0xde,0xba,0xe1,0x6b,0xdd,0xbe,0x4b,0x55,0x3f,0xa1,0x5e,0x81,0xee,0x79,0x88,0x76,0x94,0x0f,0x38,0xcf,0xc4,0xc5,},{0xa7,0xa6,0x48,0x88,0x39,0xbb,0xae,0x04,0xde,0xc9,0x2f,0x96,0xd7,0x28,0xc4,0x64,0x68,0x5d,0x7a,0x96,0xdf,0x51,0x2b,0x00,0x51,0x16,0x3d,0x22,0x53,0x8f,0x74,0x54,0x6f,0xa9,0x86,0xb1,0xb6,0x0a,0x6d,0x8c,0xc7,0x66,0xa2,0x6c,0x69,0x84,0xc9,0xcd,0x26,0x88,0x39,0x58,0x98,0xe2,0xb2,0xae,0x72,0xdc,0x6a,0x2d,0x5a,0x9f,0x75,0x0e,},\"\\x6a\\xcc\\xe9\\x98\\x43\\xb2\\x41\\xaf\\xe6\\xed\\xd5\\xd0\\xab\\x78\\xd0\\xfb\\x21\\xc8\\xc3\\x5a\\xff\\x88\\x13\\x89\\xd5\\x05\\xf2\\xf1\\xdd\\x91\\xaf\\x1e\\xb2\\xad\\x22\\x92\\x54\\x92\\x7c\\x7f\\x0e\\xcf\\xb7\\xa8\\x14\\x16\\x90\\x57\\x3a\\x65\\x5d\\x69\\x85\\x3d\\x74\\xd0\\x70\\x8b\\xf8\\xb1\\xe6\\x0a\\x03\\x96\\x30\\x28\\xa6\\x25\\xb7\\x9f\\x3d\\xfe\\xa2\\xb1\\x13\\xff\\xca\\xb4\\x6f\\x3c\\xfd\\x4a\\x62\\x1e\\x8f\\xd8\\xff\\x0a\\x96\\x81\\x43\\xb0\\xae\\x03\\xcc\\xb6\\xf4\\x2e\\x25\\xe2\\xd7\\x4d\\xbf\\x51\\x5b\\xc3\\x58\\x69\\x9b\\x63\\x50\\x09\\xb0\\x1d\\x61\\xfe\\x59\\x7f\\x1d\\xc2\\xc3\\x5a\\x7b\\xa4\\x55\\x52\\x78\\xee\\x0e\\xa4\\x56\\xc7\\xd3\\x5f\\xa8\\x75\\x7a\\x41\\x79\\x24\\xb1\\xd0\\xa8\\x35\\x1f\\x22\\x6a\\x13\\xec\\x29\\xd0\\x25\\xb4\\x26\\x96\\xec\\x1d\\x99\\x25\\xb7\\x69\\xcd\\x59\\xc8\\xe2\\xf9\\xcd\\x3c\\xe4\\xe5\\xc0\\x20\\xe0\\x51\\xe7\\xa3\\x6f\\x3f\\x97\\xc1\\xe8\\xec\\x71\\x97\\x4b\\xc1\\x6a\\xc4\\xde\\x46\\x51\\xad\\x4d\\xf2\\xe9\\xc0\\xee\\xd6\\x86\\x92\\x42\\x24\\xfe\\x6d\\xe6\\xc6\\x0d\\xd4\\xac\\xc2\\x6e\\x0a\\xab\\xd8\\x0c\\x21\\xd5\\x09\\xd9\\x59\\xb8\\x0b\\x43\\x53\\x95\\x8d\\x00\\xe4\\x4c\\x51\\x1d\\x23\\xbc\\xf4\\x45\\x52\\x60\\x8b\\xfa\\x56\\xa9\\xc5\\xae\\x79\\xde\\x62\\xbb\\x23\\xf1\\x1d\\x74\\x0f\\x48\\x24\\x0c\\x27\\xe1\\x01\\x99\\x97\\x51\\xf2\\x53\\x47\\x42\\xc0\\xa6\\x91\\x3f\\xf6\\x4b\\x68\\x3a\\x18\\x99\\x5a\\xbc\\x39\\x3f\\xeb\\x9d\\x57\\xc7\\x1f\\x49\\xa0\\x80\\x55\\x72\\x98\\xcc\\x40\\x5d\\x11\\xb7\\x98\\x8d\\x71\\x16\\x84\\x0c\\x5a\\xda\\xf5\\x3b\\xc6\\x72\\xb4\\x69\\x23\\xcc\\x45\\x7c\\x70\\x39\\x94\\x0a\\xd4\\xd5\\xbf\\x07\\x3c\\x6c\\x88\\x6b\\x13\\x39\\x52\\x59\\x26\\xd2\\x81\\xdb\\xd1\\xa7\\x97\\x39\\xb2\\xe3\\x64\\x14\\xcb\\xd3\\x21\\xb1\\x85\\xfc\\x88\\xf1\\x8d\\x2f\\x81\\xc8\\x09\\x97\\x5b\\xe9\\xa0\\x93\\x64\\x4c\\xc5\\x59\\xed\\x2a\\xe5\\xcc\\x0e\\x35\\xcb\\xdd\\x18\\x11\\xf7\\x02\\x86\\x05\\x7a\\x3f\\x70\\x30\\x67\\xed\\xdd\\xf5\\xeb\\x16\\x90\\xa7\\x42\\x7b\\xb7\\x3f\\xe3\\x02\\x4e\\xd0\\xdb\\x82\\xa5\\xce\\x8f\\x17\\x16\\x42\\x8a\\x76\\xfd\\x29\\x2b\\xa9\\x9a\\x30\\x0c\\x4b\\x2f\\x36\\x0d\\xa2\\x12\\x46\\x17\\x59\\x0b\\x10\\xe3\\xb1\\x62\\xa6\\xe6\\x7d\\xd5\\xd5\\xa5\\x9b\\xcc\\xa1\\x0f\\x61\\x0f\\xa0\\x64\\xaf\\xfd\\x55\\xf8\\x48\\x3b\\x98\\xa6\\x8d\\x07\\x6f\\x27\\x8a\\xbf\\x88\\x8a\\x08\\xa0\\x14\\xe0\\xea\\x49\\x91\\x80\\xfb\\xc7\\x98\\x40\\xce\\xed\\x13\\xcc\\x6b\\x24\\x58\\xbf\\xab\\x9b\\x0d\\xd7\\xae\\x9d\\x86\\x46\\x1f\\xe2\\x15\\xe7\\xc9\\xf6\\x3f\\x76\\x8c\\xee\\x4a\\x88\\x2d\\xf0\\xdd\\x84\\xe3\\xeb\\x4f\\x2d\\x7f\\x6b\\x18\\xfa\\x57\\xd8\\xbc\\x7d\\x9a\\xfb\\x63\\xc2\\x1a\\xc4\\x65\\xe7\\x90\\x3b\\x9b\\xfb\\x86\\x38\\xa2\\x93\\x61\\xf7\\xeb\\xfc\\x6e\\x54\\xe5\\x46\\x5a\\x6c\\xef\\x46\\x3a\\xe2\\x26\\x43\\xae\\x41\\x02\\x58\\x77\\x9c\\xa7\\x4b\\x70\\x40\\x1a\\x94\\x55\\xa4\\xd1\\x57\\xd7\\x4a\\x70\\x29\\xef\\xe6\\xb5\\x19\\xa8\\xc4\\xbe\\x69\\x67\\x56\\xe0\\x45\\xae\\x40\\x81\\xb7\\x7d\\xd6\\x03\\x1f\\x0d\\x25\\x0f\\xa7\\x61\\xe6\\x0f\\x85\\x9d\\x90\\x63\\xfc\\x10\\x5a\\xa0\\xa1\\xa7\\x45\\x0a\\xf1\\x53\\xe7\\x05\\x47\\x77\\x77\\xc4\\x42\\x58\\x6d\\xf4\\x07\\x40\\x2b\\xa2\\x38\\x75\\x2f\\xae\\xf7\\x4f\\x33\\x45\\xc2\\x6a\\x45\\x33\\xbe\\x9a\\x61\\xf5\\xfc\\x6b\\xde\\x48\\xe3\\xcb\\xa7\\x5c\\x04\\xd6\\xf7\\xb3\\x33\\xe3\\x70\\x06\\xdd\\x0c\\x94\\xfd\\x3b\\x6a\\x13\\x0b\\xd6\\xfc\\xdb\\x3c\\x6a\\xbe\\x21\\xca\\x60\\xeb\\x43\\x1c\\xc2\\xd8\\xa2\\xec\\xe7\\x16\\x9d\\x2d\\xcf\\xce\\x27\\x60\\x82\\x56\\x57\\xfd\\x4c\\x26\\xf3\\xc3\\xb8\\x30\\xac\\xdf\\xd5\\x08\\x01\\x1d\\x14\\x76\\x4b\\x3b\\xe9\\x17\\x15\\x57\\x1a\\x31\\x83\\x01\\x8e\\x0d\\x22\\x1f\\xb9\\x53\\x2b\\xb2\\xe1\\x71\\x1e\\x72\\x5a\\x27\\x3a\\xe0\\xcc\\x2f\\xac\\xcb\\xa7\\xd5\\x50\\x49\\x29\\x45\\x9c\\x99\\x25\\x17\\xb0\\x5c\\x1d\\xdd\\x03\\xaa\\xcc\\xd9\\x37\\xb8\\x6e\\xb6\\x7b\\xc8\\x20\\x2d\\x01\\xca\\xb3\\xd4\\x89\\x58\\x6e\\xea\\x1a\\xcc\\xa7\\xdc\\x20\\xcd\\x0b\\x64\\x75\\xc2\\x58\\xff\\x67\\x36\\x61\\x49\\x6a\\x22\\xea\\x96\\xb8\\x9d\\xb4\\xbf\\x3f\\xca\\xae\\x3b\\xb0\\x4f\\x67\\xdb\\x09\\x6a\\x47\\xff\\x7e\\x1e\\xe2\\x39\\x56\\x2d\\xc1\\x0d\\x40\\xf0\\x53\\x94\\x4f\\x3d\\x7b\\xcc\\x3f\\xf4\\xc0\\xff\\x76\\x56\\x54\\xba\\x5e\\xa6\\x4f\\x0e\\xa6\\x3e\\x45\\xa2\\x1d\\x9b\\x12\\x94\\x9f\\x14\\xf7\\xea\\x70\\x74\\xe9\\xb6\\x59\\xc5\\xc5\\xd4\\x48\\x16\\x84\\x2d\\xe8\\x96\\x98\\xa8\\xfc\\xca\\xce\\x43\\xeb\\x6b\\x41\\x35\\xe0\\xb3\\x33\\xac\"},\n{{0xf2,0x6a,0xf2,0x10,0xe3,0xb2,0x01,0x73,0x99,0x0c,0x77,0x45,0x92,0x2c,0xdf,0x94,0x24,0x77,0x3a,0xbb,0x37,0x4d,0x77,0x7a,0x51,0x2c,0xf5,0xb9,0x7b,0x3a,0x00,0x0d,},{0x54,0x58,0x6a,0xbf,0x04,0x11,0x76,0xe0,0x6a,0xec,0x5b,0x60,0x10,0xe1,0x90,0x91,0x6d,0xa5,0x4a,0x8c,0x4b,0xde,0x28,0x8c,0xf2,0x4d,0x8c,0x10,0x7c,0xb3,0xb7,0x30,},{0xce,0x45,0x45,0x30,0xb9,0x22,0xba,0x5e,0xa1,0x62,0xf1,0xa4,0x52,0xe0,0x5c,0x00,0x36,0x3a,0x49,0xa9,0xdb,0x8a,0x56,0x94,0x97,0xc0,0x0c,0xaf,0x1c,0xbe,0xa9,0x91,0x80,0x77,0x05,0x54,0xed,0x4e,0x31,0x40,0xdf,0xca,0x45,0x55,0x15,0x9e,0xbf,0x48,0xef,0x5d,0x2a,0x50,0xf3,0x94,0xae,0xbd,0x78,0x21,0x16,0xed,0x65,0x69,0xa4,0x09,},\"\\x88\\xe2\\x6d\\xa3\\x5c\\x54\\x88\\x4b\\x47\\x14\\x6f\\x4e\\x3f\\x01\\x4a\\xb6\\x5b\\x3d\\x71\\xaa\\x7e\\x3c\\x33\\x91\\xad\\xbe\\xb1\\x9e\\xf2\\xe7\\xb9\\x30\\x2e\\x28\\x19\\x91\\xb2\\x61\\xb6\\xa0\\x99\\x2e\\x2e\\x89\\xa4\\x9f\\x48\\x0c\\xa2\\xd8\\xe6\\x84\\xb1\\x2f\\x9b\\x15\\x09\\xb3\\x8f\\x6a\\x7a\\x98\\xa5\\xdd\\xb4\\xc2\\xd8\\x69\\xfd\\x03\\x18\\xe9\\x8e\\xcd\\x8f\\xd9\\xdf\\x49\\x1b\\xaf\\x99\\xa9\\x29\\x4d\\xe4\\x9e\\x1c\\xf8\\xdd\\x41\\xee\\x85\\x73\\x0a\\xf0\\x25\\xa7\\x01\\x14\\x3e\\x4f\\x0c\\x8e\\x3d\\x92\\xd5\\x5b\\x59\\xca\\x7d\\x4a\\x6c\\x89\\xad\\x76\\x0d\\xff\\xc0\\xc2\\x18\\x92\\x09\\x50\\x8e\\xf6\\xc2\\x21\\x4e\\xdf\\x99\\x67\\xb1\\x7d\\xef\\x12\\x3d\\x86\\x92\\xc9\\xe4\\xe2\\x0b\\x1e\\x98\\x26\\x88\\x08\\x70\\x4f\\x5f\\x9f\\xe1\\xa6\\xd6\\x05\\x5e\\x32\\xc8\\x72\\x56\\x4b\\xd1\\x7e\\xdb\\x73\\x59\\x57\\x86\\x29\\x01\\x7f\\x0c\\x30\\xfe\\xab\\x8b\\x50\\x4e\\x22\\x89\\x23\\xad\\xc7\\xe8\\x1a\\xe2\\x0a\\x85\\x2d\\xb0\\xad\\x67\\x6a\\x78\\xe0\\x81\\x33\\x6d\\x6b\\x04\\x02\\xf9\\xcd\\xc5\\xd5\\xe9\\x01\\x28\\xca\\x94\\x5d\\x10\\x51\\x5c\\xa0\\xc5\\xef\\x03\\xf7\\x31\\xb1\\xd4\\x0a\\x71\\x07\\x41\\xd4\\x1c\\x1d\\xd1\\xca\\x16\\xb1\\x06\\x0f\\xeb\\xf2\\xa0\\x53\\x2e\\x6f\\x5d\\x76\\x51\\xef\\x44\\x63\\x75\\xec\\x18\\x09\\x0c\\xb8\\x41\\x8b\\x82\\x02\\xf2\\x5a\\x03\\x89\\x03\\x1b\\x30\\x7f\\x22\\x3c\\x5b\\x5f\\x6a\\xfe\\x36\\xa9\\xad\\xc1\\x06\\x8f\\x2c\\x6e\\x0e\\xa5\\xb2\\xb6\\xcf\\xeb\\x8d\\xc0\\x04\\xf7\\xb8\\x29\\xc8\\x04\\x39\\x06\\x9b\\x81\\xa7\\xbd\\x90\\x74\\x77\\xc6\\x13\\x5e\\xf2\\x82\\xb7\\x71\\xf1\\x41\\xdb\\xe7\\x5a\\x0f\\xa0\\x56\\xe0\\x6b\\x8a\\x1a\\x1f\\x98\\xc2\\x5f\\xa5\\x4d\\x14\\xc8\\xfd\\xb4\\x2d\\x65\\x02\\x59\\x5c\\x59\\xd2\\x5b\\xac\\xf1\\xa1\\x9a\\xde\\xfc\\xc1\\x31\\x70\\xf7\\xa4\\x31\\x7b\\x6a\\xb6\\x10\\xb6\\x09\\xd4\\x14\\xb0\\x07\\x3e\\xa0\\x4a\\xc2\\x9e\\xb1\\x0e\\xe7\\x3c\\xd7\\x1a\\x4c\\xa6\\x04\\x09\\xf8\\xe7\\x60\\xe6\\x0f\\x93\\x95\\x10\\x10\\x0d\\x0c\\x8c\\xd7\\x6f\\x26\\x4b\\xb3\\x78\\x11\\xf9\\x7a\\xa5\\x29\\x9a\\xc0\\xb1\\x2d\\x41\\x68\\xff\\x38\\xec\\xdf\\xa8\\x0b\\x1e\\x5c\\x1b\\x3b\\xbd\\x4d\\x40\\xd3\\x54\\x47\\x35\\xdf\\x71\\x67\\xeb\\x15\\x8a\\x9a\\x9a\\x23\\x4d\\x44\\x5f\\x1d\\x66\\x3d\\xed\\x71\\x71\\xed\\xc6\\x8d\\x17\\x2c\\x92\\x21\\x4b\\x82\\xef\\x13\\xfe\\x6b\\x8c\\x43\\xaa\\x89\\xb7\\x39\\xb4\\x99\\x0a\\xe9\\x47\\xa3\\x4f\\x02\\x0a\\x8d\\x89\\x43\\xb0\\xf7\\xa5\\xd6\\x1d\\xfa\\x76\\xad\\xde\\x02\\x72\\xe9\\x8c\\x11\\x59\\xc0\\xfd\\x8a\\x1d\\xe3\\x3f\\x2c\\xef\\x8e\\xdd\\x32\\x85\\x7b\\x21\\x89\\xed\\x96\\x12\\x80\\x57\\xeb\\xde\\xa8\\x1f\\x7a\\x3a\\x3d\\xff\\xe1\\x89\\x3b\\x5b\\xa8\\x77\\x55\\x6c\\x90\\x38\\x3f\\xa2\\xc5\\xa6\\xfd\\x68\\x0e\\x8a\\x67\\xde\\xe4\\x80\\x2d\\x90\\xdf\\xe9\\x71\\x62\\x3a\\x7b\\xe2\\x2a\\xb3\\xca\\x56\\x06\\x7b\\x1e\\x5c\\x69\\x4a\\xa8\\x4c\\x19\\xf1\\x6d\\x69\\xe2\\x84\\xdd\\xfa\\x03\\x9c\\x10\\x8d\\x04\\x35\\x81\\x38\\x12\\x39\\x0d\\x8e\\xbc\\x1e\\x50\\x13\\x81\\x76\\xf2\\x59\\xdc\\x0f\\x26\\xbc\\xa1\\x3b\\xc9\\x43\\xf5\\x0d\\x5a\\x35\\x00\\xb1\\x8d\\x59\\x35\\x74\\xc6\\x20\\xfc\\x09\\x7a\\xce\\x43\\x0f\\xb8\\x07\\x28\\xd3\\xa1\\xaa\\x64\\x4e\\x50\\x4b\\x10\\x09\\xad\\x67\\x53\\x6c\\xeb\\x01\\x1f\\x2a\\x35\\x7d\\xbd\\x00\\x9e\\x4a\\x63\\xf5\\x24\\xd5\\xb5\\x95\\x7f\\x33\\x15\\x67\\xc5\\xb4\\xd1\\x85\\xa6\\x1d\\xf2\\x2d\\x70\\x71\\xd3\\x1a\\xe9\\x21\\x41\\xe1\\x99\\xc1\\x22\\x89\\x51\\x5a\\xed\\x80\\xc9\\x10\\x21\\x45\\x6b\\xcd\\x45\\xcc\\xc6\\x34\\x03\\x7d\\xcf\\x69\\xb4\\x1d\\x6b\\x1f\\xf5\\x34\\x71\\x01\\x0d\\x99\\xf1\\x87\\xf0\\x46\\x54\\xf4\\x36\\x22\\x28\\x78\\x71\\xfe\\xe6\\xdc\\xf5\\xf3\\x02\\x3c\\xbd\\x09\\x13\\xd9\\x9a\\xff\\x43\\xfa\\x95\\xb3\\x2e\\xa2\\xb1\\x33\\xb4\\xc9\\xac\\x4b\\x01\\x7b\\x7c\\xf8\\xf9\\xbe\\x50\\x86\\xfe\\x92\\xb4\\x2c\\xb8\\xdb\\xed\\x5b\\x63\\x0b\\xf0\\x97\\xc1\\x8e\\x2e\\x55\\xc3\\xdd\\x93\\x27\\x1e\\x09\\xc2\\xd1\\xcc\\x6a\\xf8\\x7d\\x83\\xfd\\xef\\x3c\\x3e\\x3c\\x4c\\xba\\xfb\\xea\\x9b\\x60\\xfd\\x5e\\x9c\\xf0\\x01\\x1d\\xe2\\xe9\\xe2\\x6f\\xbf\\x09\\xaf\\xee\\xf5\\xc6\\x98\\x02\\xa6\\xc4\\x6b\\xdf\\x54\\xc1\\x45\\x86\\x29\\x44\\x17\\x3e\\x01\\x7e\\x30\\x14\\x9e\\xa5\\xc0\\x3c\\x7a\\xef\\xa2\\x8a\\x9c\\xac\\x77\\x67\\x00\\x2e\\xa3\\xfe\\xfb\\xde\\xae\\x5b\\xae\\x00\\x5c\\x37\\x0d\\xbc\\x06\\x42\\x44\\xd5\\xb9\\xbe\\x55\\x00\\xa3\\x57\\x26\\xa9\\x9b\\xc9\\xe8\\xc2\\x75\\x2d\\x51\\x0e\\x13\\x9a\\xf2\\x25\\x58\\x00\\x98\\xc8\\x18\\x9a\\xa9\\xc5\\x20\"},\n{{0x39,0xbf,0xfe,0x00,0x7f,0x8d,0xf7,0xce,0x4e,0x56,0xfd,0x17,0x6b,0x10,0x2b,0x92,0x3b,0xa4,0x8a,0xeb,0x82,0x69,0xfd,0x0c,0xd5,0x20,0xc2,0x3a,0x7b,0x23,0x6e,0x6c,},{0x95,0x32,0x63,0x68,0x00,0x01,0x0b,0x3d,0xd4,0x01,0x2e,0x34,0x1f,0xca,0xd6,0xd2,0x9a,0xfa,0xd4,0x84,0xe6,0xfd,0x73,0x6e,0x89,0xd5,0xbc,0x02,0xba,0x0a,0xc8,0x53,},{0xa2,0x7c,0xca,0x4b,0x9f,0x5b,0x95,0xad,0x0e,0x44,0xe4,0x74,0x0c,0x15,0xde,0xae,0xb9,0x3f,0x22,0xa9,0xb2,0x54,0xeb,0xbd,0x23,0x29,0x36,0x5a,0x00,0x96,0x6c,0x9f,0x4e,0xc1,0xe5,0x5c,0x58,0x94,0xe7,0xbf,0xc2,0x3d,0x39,0x8d,0x39,0x70,0xb9,0x46,0x5e,0x98,0xa8,0xd2,0x3e,0x72,0xda,0xe8,0xe3,0x50,0xda,0x35,0x31,0xae,0x69,0x08,},\"\\x7a\\x8c\\x20\\xbf\\x2e\\xff\\x69\\xaf\\x8b\\xad\\x6b\\xdf\\xab\\xc7\\x90\\x9c\\x58\\xce\\x74\\x6c\\xc4\\xdf\\x78\\xb6\\x9b\\x33\\xc1\\x05\\xba\\x3b\\xd8\\xda\\x75\\x24\\x47\\x58\\xb5\\x17\\x2d\\x5c\\x45\\x01\\xbc\\x39\\x97\\x01\\x85\\xee\\x3d\\x43\\x70\\x83\\xa9\\x95\\x9f\\x81\\xe7\\x66\\x5b\\x82\\x9a\\x69\\xa5\\xd7\\x2e\\x03\\x4d\\x35\\x1a\\xdd\\xdc\\xeb\\x3d\\x3f\\xff\\x58\\x99\\x88\\xdf\\x18\\x2b\\x46\\xfa\\x53\\xd2\\x6e\\x7c\\x9e\\xac\\x06\\x22\\x15\\x78\\x8f\\x23\\x37\\xbf\\x90\\xf0\\x17\\x7d\\x8c\\xa7\\x44\\xf9\\x5f\\x28\\xfe\\xa8\\x54\\x59\\x3c\\x43\\x62\\xc8\\x2e\\x9d\\xed\\x19\\xb9\\x04\\xff\\x99\\xd2\\xbe\\xa8\\x24\\x32\\x82\\x2e\\x52\\xc3\\xda\\x6d\\x46\\x2d\\xa7\\x54\\xff\\x1f\\x8b\\xd1\\x09\\x94\\x2d\\xf5\\x1d\\xba\\x25\\xb7\\xcd\\xe8\\x38\\xd5\\xf5\\x24\\x23\\x9f\\x13\\x31\\xf4\\x63\\x19\\x4e\\x10\\xff\\x56\\x79\\x5b\\x29\\x68\\x78\\xfe\\xb1\\xf5\\x5d\\x43\\xec\\x7d\\xaf\\x0c\\xa5\\xab\\x3d\\x68\\x4b\\x55\\xbb\\x0a\\xa4\\xc7\\x20\\xd4\\xb5\\xc2\\xe8\\x30\\xc8\\x58\\x69\\x4d\\x3d\\x0f\\xdb\\xaa\\xd0\\xbf\\x67\\xd8\\x73\\x18\\x2d\\x95\\xb2\\x41\\x2f\\xce\\x5e\\x7b\\x00\\xfa\\x6b\\xfc\\x38\\xb1\\x32\\xef\\xb9\\x6f\\x87\\xbc\\x6c\\x10\\x07\\x0a\\x57\\x16\\xec\\x9b\\x33\\xa2\\x69\\x2c\\xdf\\x5b\\xc4\\x1c\\x7f\\x73\\x7e\\x28\\xc4\\x22\\x03\\x17\\xa4\\x89\\xb7\\x32\\x3d\\x5e\\x20\\xf6\\x5d\\x37\\x5d\\x76\\x9f\\x9e\\x79\\x37\\x6f\\xd0\\x2d\\x85\\x36\\x86\\x71\\xe7\\xe0\\x81\\xeb\\x75\\x3f\\x88\\x85\\x45\\xeb\\xe5\\xc0\\x00\\xb2\\xf8\\x01\\x43\\xeb\\x35\\x8d\\x43\\x18\\x5e\\x2f\\x1c\\x29\\x4b\\x9f\\x29\\xc8\\xbb\\x91\\x48\\x2d\\x43\\x87\\x49\\x4a\\xad\\x17\\x6d\\xeb\\x85\\x54\\x0f\\xd0\\x05\\xc9\\x7d\\x13\\xe6\\x66\\x3f\\x09\\x94\\x4e\\xb4\\x3a\\x46\\xe6\\x23\\x67\\x94\\xbf\\x6e\\x21\\xf8\\x1d\\x0a\\x42\\x09\\x0f\\x9c\\xce\\xf9\\x0a\\x6c\\x48\\x07\\xb5\\xff\\x54\\x13\\x00\\xe5\\x93\\x48\\x81\\xa8\\xd9\\x21\\x96\\xb4\\xce\\xe8\\x5d\\x28\\x09\\x2a\\x82\\x8e\\xa3\\xbf\\xc6\\xb7\\x45\\xad\\x21\\x9b\\xe9\\xf5\\xe9\\x57\\x41\\x17\\xd0\\x79\\xe0\\x2f\\x4b\\x74\\x8e\\x2c\\xc0\\x1a\\x32\\x82\\x6a\\x37\\x08\\x23\\x19\\x14\\xd2\\x77\\x2c\\x76\\x41\\x19\\xfd\\x99\\xd5\\x3a\\xb5\\xb5\\xa2\\xe9\\xd8\\x91\\xa4\\x8a\\x9a\\xaa\\xac\\xc2\\x63\\x38\\xb1\\x82\\x48\\xdb\\x8a\\xb2\\xd5\\x25\\xda\\xf1\\x5f\\xf5\\x3a\\xcb\\xc3\\xaa\\x98\\xd4\\xf2\\xd4\\xa3\\x37\\xbb\\xaf\\x6d\\x1b\\xe2\\x19\\x85\\xa4\\xaf\\x60\\x0e\\x29\\xbb\\xb4\\x2c\\x8d\\x89\\xe6\\xb3\\x89\\xc6\\x6f\\x42\\x27\\x0c\\x3a\\x0b\\x05\\x1b\\xdb\\x62\\x38\\x81\\xe0\\x2f\\x2f\\x42\\x94\\xce\\xc3\\x47\\x63\\x86\\x74\\x7a\\xba\\xe6\\xc7\\x70\\x0b\\x8f\\x9b\\x03\\x87\\xcd\\xdf\\xb7\\x36\\x68\\xfb\\x57\\x69\\x3d\\x84\\x74\\x19\\x6b\\x33\\xab\\xd1\\x2d\\xce\\x59\\xa5\\x7c\\xf7\\x2e\\xe6\\xcc\\x1d\\xdb\\xaa\\xdf\\xb1\\x9e\\x90\\xaf\\x81\\x31\\xb3\\xa9\\x0f\\x98\\x67\\xf4\\xc7\\xe1\\x5b\\xdf\\x9e\\x21\\x84\\x77\\x01\\x6b\\xd0\\xad\\x3b\\xe8\\xdd\\x05\\x96\\x71\\xff\\x65\\x6c\\xbd\\x4e\\xd8\\x98\\x08\\x6d\\xe4\\xd4\\x23\\xf3\\xdf\\xb2\\x70\\xbb\\xf1\\x9d\\x9f\\x53\\xf7\\xf6\\xf2\\xd2\\x2c\\x6a\\xc9\\x02\\x5c\\xba\\xdb\\xa4\\x42\\xe3\\x1d\\x98\\x11\\xe3\\x7e\\x84\\x7d\\xbd\\x48\\x4d\\x80\\xcf\\x74\\x30\\x39\\xff\\xa7\\x04\\x84\\x70\\xfb\\xdc\\x60\\x80\\xf6\\xd3\\x81\\xdc\\x7e\\x3f\\xa2\\x71\\x22\\xdf\\x53\\xcc\\x06\\x39\\x4e\\xa6\\xfc\\x44\\x6e\\x1b\\xa7\\x25\\x38\\x73\\x3e\\xd3\\xab\\xb6\\x85\\xf1\\x6d\\xfd\\x5c\\xcf\\x58\\x5a\\xe8\\xfb\\xf9\\x95\\x4b\\x50\\xf1\\x0b\\x7e\\x54\\x32\\xa2\\x2b\\x36\\x94\\x06\\xa9\\xb7\\x08\\x89\\x61\\xf0\\xae\\x20\\x74\\x95\\xae\\x71\\x85\\x39\\x6d\\xcc\\xf2\\x92\\xdc\\x46\\x3f\\x41\\xf3\\x76\\xa1\\xca\\x89\\xee\\xfb\\xae\\x19\\x26\\x91\\x52\\x03\\x1b\\xfd\\x81\\x52\\x88\\xe8\\xb5\\xba\\xf3\\x48\\xc4\\xf8\\xff\\x3d\\xff\\x4f\\xd6\\xd1\\x08\\xf8\\x71\\xda\\xa3\\x52\\x11\\x0f\\xa6\\x41\\x88\\xb0\\x1b\\x85\\x26\\xa8\\x45\\xaa\\xed\\x13\\x3e\\x45\\x6b\\x4c\\x83\\xc4\\xfd\\x4b\\xbb\\x16\\x5b\\x40\\x90\\x30\\x7e\\x8e\\xb1\\x7d\\xf1\\x76\\xc3\\x22\\x52\\x0f\\x37\\x59\\x9c\\x21\\x05\\xaa\\x81\\x20\\x75\\x83\\x94\\xa4\\x22\\x24\\x73\\x47\\x67\\x64\\xcf\\x0a\\xf7\\xc5\\x51\\x83\\xeb\\xa9\\x68\\x3d\\x72\\x70\\x63\\x14\\x43\\xf3\\xc5\\x1f\\xb8\\xab\\x0c\\x13\\x0a\\xc4\\x36\\xab\\x60\\x3f\\xf4\\xf1\\xd8\\x65\\x6c\\xdb\\xed\\x22\\x9a\\x20\\x2b\\x40\\x00\\x8e\\xa1\\x0b\\x17\\x15\\x42\\xf7\\x4a\\x70\\xb7\\xbb\\xac\\xc4\\x01\\x6b\\x7f\\x63\\x6a\\xa8\\x96\\x33\\xb7\\x66\\x80\\x58\\xf1\\x33\\x12\\xf5\\x7c\\x51\\x62\\xd1\\x8e\\x39\\x9e\"},\n{{0x3c,0x40,0x80,0xcd,0xa0,0xfc,0x3c,0x03,0xb6,0x14,0xd9,0x80,0xf2,0xff,0x83,0x1f,0x5b,0xe0,0xe7,0xa9,0x81,0xd5,0x38,0x1a,0x16,0x18,0xe0,0xb8,0xfd,0x00,0x17,0x76,},{0xf1,0xc3,0x26,0x9d,0x87,0x04,0x02,0xca,0xa4,0x38,0x82,0x13,0x5d,0x9d,0xba,0xdb,0xbb,0x16,0x2d,0xfc,0xa0,0xb3,0xda,0xd1,0x97,0xe6,0xb8,0xa7,0xee,0x67,0x9a,0x70,},{0xc9,0xd4,0xa4,0x72,0x8b,0x8f,0xdd,0x24,0x0d,0x9c,0x49,0x8a,0xa3,0x5d,0xe9,0x5a,0x4b,0xbd,0x51,0x78,0x5b,0x73,0xc8,0x40,0x3f,0xdf,0x04,0x0d,0xfa,0xed,0x94,0x47,0xef,0xad,0x00,0x69,0xb6,0x7c,0x78,0x3d,0x4b,0x81,0xd9,0x66,0xbe,0xf6,0xe3,0xd9,0xa8,0x08,0xa0,0x58,0x4b,0x98,0xec,0x2b,0x18,0x32,0x2c,0x4c,0x92,0x0e,0xb0,0x0a,},\"\\x0c\\xee\\xbc\\x0e\\x8a\\x47\\x72\\x0f\\x25\\x83\\x5e\\x2b\\x9a\\xcf\\x89\\x1b\\xcc\\xa4\\xbd\\xa3\\x86\\x37\\xf3\\x63\\x27\\x44\\x58\\xba\\xa9\\xe2\\xbb\\xaf\\xed\\xd0\\x93\\x8f\\x56\\x88\\x73\\x4e\\x22\\xac\\x50\\xfb\\x12\\x0f\\x66\\x5f\\x6c\\x4c\\x61\\xc6\\x53\\x17\\x39\\xb9\\x29\\xac\\x83\\xcd\\x77\\xf8\\x96\\x3b\\x75\\x44\\x88\\xb9\\xb8\\x59\\xc1\\x38\\x53\\x63\\x7c\\xf0\\x25\\xc1\\x4e\\x8f\\xdd\\x11\\x8f\\xaa\\x14\\xcf\\x39\\x30\\xce\\xb3\\x5f\\x10\\x4d\\x95\\x44\\x1e\\x56\\x48\\x94\\x40\\xf6\\x20\\x41\\xef\\x1a\\xa7\\xc4\\xb0\\x8b\\x28\\x07\\xe3\\x2b\\xb9\\x58\\x4b\\x90\\x04\\xd7\\x6e\\x76\\x53\\x33\\x48\\x50\\x6d\\x64\\xf1\\x12\\xe1\\xff\\x6f\\x93\\x8f\\x64\\x22\\x30\\xbf\\x38\\xaf\\x01\\x0e\\x41\\x98\\x72\\x70\\x24\\x8b\\x13\\x63\\x5a\\x35\\x67\\xb3\\x55\\xbb\\xa5\\xb5\\x74\\x48\\xc6\\xd1\\x3b\\x74\\xf3\\xbe\\xbf\\x61\\x79\\x15\\x82\\x10\\x28\\xfc\\xa5\\xde\\xfa\\x4c\\xe5\\x42\\x4c\\xa1\\x91\\xcd\\x54\\xa2\\x29\\x44\\xa3\\xd9\\x40\\xe4\\xee\\x2e\\x2b\\xa5\\xd5\\x04\\xc8\\x5f\\x95\\x9b\\x51\\x4c\\x4f\\xab\\x41\\xcc\\xb5\\x74\\x3d\\x9c\\xb2\\xf9\\xbf\\x33\\xd1\\xd8\\xc2\\xa5\\x86\\x9e\\x9f\\x46\\x60\\xc3\\xfb\\x22\\x4b\\x39\\x14\\x1e\\x31\\x10\\xc9\\xee\\x8a\\xeb\\x87\\x1e\\x14\\xc6\\x2c\\x6b\\xe3\\x8f\\xb9\\xa4\\x56\\x8d\\x73\\x68\\x10\\xbb\\x9d\\x20\\x73\\x17\\x8b\\x6c\\x7e\\x87\\xe3\\x58\\x2e\\xfc\\x62\\xb5\\x3c\\x23\\xc5\\xd4\\x65\\x20\\xba\\x33\\xff\\xb3\\xa9\\xca\\x64\\x9e\\xf2\\x6f\\xe7\\x4a\\x3c\\xff\\x61\\x88\\x42\\x73\\x26\\xb8\\xc9\\x6f\\x74\\x35\\x4c\\xb3\\xec\\xaa\\x61\\x1b\\x12\\xcd\\xed\\x56\\x5e\\x59\\xfe\\x1f\\x8f\\x40\\x00\\x97\\xe9\\x3e\\xa8\\x59\\x51\\xb5\\xb4\\xe9\\x00\\x9e\\xea\\x7d\\xb9\\x37\\xe4\\x34\\x9c\\x4e\\x5e\\x00\\xc4\\x45\\x6c\\x6c\\x5f\\x4e\\x57\\x41\\x1b\\xaf\\x4e\\x46\\xe7\\x00\\xac\\x40\\x02\\x57\\x76\\x5f\\x48\\xda\\xb0\\x3e\\x43\\x9f\\x76\\xc1\\x49\\x9b\\x51\\x08\\x04\\x7c\\x83\\x01\\x09\\xdc\\xe7\\xf7\\x40\\xd1\\x39\\x37\\x87\\xe2\\x9d\\x37\\x16\\xd3\\xc4\\x7e\\x75\\x5c\\xb8\\x28\\xe7\\xd4\\x40\\xa9\\x71\\x97\\x51\\x97\\xeb\\xdb\\x3f\\x9b\\x73\\x7b\\xa1\\x1f\\x7f\\xd0\\x38\\x6a\\x95\\x92\\x49\\x01\\x7d\\xe7\\x23\\x4d\\x5e\\x5a\\x9b\\x47\\x3b\\xb9\\x58\\x3a\\x37\\x42\\xc7\\x74\\xee\\x55\\x2a\\x12\\xa1\\xf3\\x6e\\xb3\\xf2\\x6c\\x88\\x5b\\xed\\x22\\xe9\\x1c\\x74\\xcf\\x32\\xa8\\xdd\\x3e\\xdb\\x08\\xb6\\x74\\xbf\\x38\\x6e\\xf4\\x27\\x72\\x79\\x12\\xd5\\x7c\\x5f\\xaf\\xaa\\x1c\\xfe\\xb7\\x40\\xcd\\x52\\xb9\\xde\\xe9\\x95\\xe3\\xd0\\x16\\x1c\\xd9\\x21\\x3f\\x38\\xfd\\x68\\x1d\\x53\\x8a\\xb8\\xbf\\x97\\xb7\\x45\\xf5\\x49\\x80\\x03\\x0e\\xf8\\xb7\\x26\\x96\\xd4\\xe2\\x74\\x73\\xfb\\x0f\\x1a\\xcd\\x5d\\x0a\\xae\\x02\\x97\\x21\\x16\\x80\\xea\\x0f\\xc5\\x9d\\x7b\\x6d\\x51\\xc6\\x32\\x92\\x58\\x5a\\x1d\\x55\\x3d\\x0c\\x89\\x54\\xb4\\x2a\\x4b\\xd6\\xfc\\xd3\\xa4\\x95\\x75\\xbf\\x5c\\x88\\x95\\x3f\\x1f\\x4e\\xa7\\xfe\\x0e\\xd7\\xa5\\x79\\xd1\\x69\\x7e\\x64\\x5e\\x2a\\x61\\xc6\\x9d\\x1a\\x56\\xbc\\x60\\x5b\\xb0\\x40\\x60\\xa2\\x77\\x8d\\x50\\x9a\\x8a\\xad\\xbf\\x35\\xd9\\x46\\x97\\xcc\\xee\\x9d\\x35\\x43\\xdd\\x01\\x28\\x1a\\x03\\x1f\\x2a\\x0e\\xb3\\xa9\\xeb\\x13\\xae\\x56\\xff\\x44\\xfa\\x0a\\xed\\x4f\\x34\\x88\\x74\\x7d\\x6a\\xf8\\x20\\xf3\\x98\\x9b\\x71\\x33\\xf4\\x49\\xea\\x56\\xd3\\xa7\\xf7\\x31\\xe7\\x91\\xb7\\xed\\x2a\\x5d\\xb9\\x39\\xbb\\x75\\x35\\x2d\\xe7\\xda\\xec\\x50\\x66\\xfd\\x57\\x55\\x71\\x65\\xad\\xff\\xa6\\x31\\xcd\\x3f\\x96\\x7c\\x3c\\x7c\\xfc\\x11\\xcc\\x1f\\x14\\xfa\\x23\\xde\\xfe\\xc3\\xeb\\x02\\x39\\xb4\\x5e\\xd6\\x01\\xa3\\xa8\\x07\\x8c\\xcf\\xc7\\xf8\\x38\\x09\\x02\\xa8\\x59\\xee\\x9c\\xe2\\xdb\\x79\\x5e\\xfa\\xca\\x0a\\x01\\xdc\\x08\\x79\\xd5\\x06\\xac\\x97\\xd1\\x07\\x04\\xd7\\x75\\x7b\\x3c\\xcf\\x3b\\x37\\xc3\\x39\\xb4\\x2d\\xb2\\x37\\x82\\x27\\x80\\x23\\xe4\\xc2\\xe7\\x7d\\x74\\x24\\x6c\\x9e\\x54\\x41\\x49\\xa5\\x5c\\x0c\\x92\\x0e\\xbf\\x29\\x86\\xb4\\xc5\\xb4\\xb3\\x57\\x2f\\x74\\x8c\\x4b\\x15\\xc7\\xf8\\x63\\x99\\x9b\\xc5\\x13\\x2a\\xda\\xd0\\x97\\x61\\xeb\\x76\\x50\\x50\\x19\\x76\\x9f\\xb5\\x54\\x22\\xf6\\x03\\x18\\x4e\\x24\\xc0\\xd4\\xf3\\x76\\x19\\x87\\xb5\\xc5\\x0f\\xea\\xfc\\xce\\x53\\x30\\x2a\\x3a\\x41\\x5e\\x20\\xf5\\x6a\\x05\\x48\\x03\\xe5\\x53\\xba\\xcd\\x24\\x2a\\x5e\\x13\\x64\\xaa\\x3b\\x2d\\x7c\\xb3\\xbc\\x1e\\x1b\\x86\\xa4\\x74\\x31\\xcb\\xd3\\x96\\x95\\xb6\\x7f\\x55\\x4c\\x46\\x45\\xb7\\x23\\x69\\x04\\x09\\x4c\\x11\\xaa\\x1b\\x40\\x32\\x6b\\xa9\\x1b\\x8b\\xf4\\x87\\x3e\\x9a\\x4d\\xe0\\x4e\\x2b\\xf4\\x62\\x59\\x72\"},\n{{0x45,0x43,0x8f,0x91,0x46,0x5d,0x74,0xa2,0x82,0x5b,0x0f,0x66,0xa3,0x5b,0xd7,0xc8,0xd0,0x05,0x86,0x54,0x79,0xb3,0xdc,0x10,0xa9,0xb5,0x6f,0x29,0x7d,0x31,0xb9,0x26,},{0xf0,0x92,0xb5,0x88,0x03,0x30,0x87,0x1e,0x5a,0xaf,0xdd,0x3c,0xeb,0x38,0x50,0xee,0x7e,0x09,0x41,0xa2,0xa1,0xdc,0x89,0xf4,0xfb,0x47,0x71,0xd7,0x5a,0x22,0xf6,0xf2,},{0xd9,0x28,0x7b,0x7f,0xec,0x01,0x7f,0x2e,0xa4,0x0a,0x14,0xa1,0xf6,0x2d,0xca,0x78,0xb0,0x2a,0x3d,0x66,0x32,0xdf,0x7c,0x60,0xeb,0xd9,0x0f,0xc5,0xe4,0x92,0xc5,0xc6,0x2c,0x43,0x16,0x6b,0xf8,0x56,0x58,0xfb,0x30,0xa0,0x8b,0x57,0xa5,0x81,0x31,0x21,0xb8,0x03,0x97,0x57,0x1a,0x31,0x2b,0x6d,0xd1,0x1b,0x65,0x39,0x20,0x54,0x16,0x02,},\"\\x30\\x71\\xd4\\xb7\\x20\\xdf\\x10\\x93\\x65\\x99\\x67\\xcd\\x4e\\xef\\xef\\x2e\\xf9\\x67\\x84\\x75\\xf7\\xde\\xc5\\x8f\\xec\\xec\\x1d\\x92\\x8d\\xea\\xf8\\x02\\x45\\x7a\\x19\\x34\\xe6\\x04\\x55\\xf4\\x96\\xcf\\x42\\x51\\x82\\x0e\\xd6\\x0a\\x3d\\x81\\x33\\xb6\\x24\\xd3\\x3a\\xf2\\x6a\\x26\\x27\\x84\\xb5\\xa2\\xfb\\xa7\\x3c\\xca\\x2a\\xa5\\xe5\\x19\\xe1\\xf5\\x39\\x58\\x47\\x80\\x64\\x98\\x64\\xba\\x5f\\xbc\\x1f\\x01\\x1d\\xdd\\xac\\x38\\x1f\\x8d\\x48\\xd0\\xd6\\x0c\\xe8\\x23\\x17\\x01\\x17\\x3c\\x9d\\x2a\\x30\\x7a\\x76\\x30\\x2e\\xbc\\x69\\xdc\\xbc\\x93\\x0d\\x28\\x43\\x14\\x75\\xb5\\x16\\xf9\\x8f\\x77\\x8e\\xd2\\xe1\\xff\\xf2\\x72\\x90\\x9a\\x27\\x2c\\xc3\\xfb\\xb6\\xb3\\x1c\\x80\\x41\\xa3\\x7c\\xb7\\x77\\xe0\\x62\\xe4\\x96\\x49\\xaf\\xad\\x12\\xc1\\xb5\\xf7\\xfc\\xb8\\x06\\x5a\\x99\\xe7\\x42\\x33\\x62\\xad\\x16\\x90\\x60\\x31\\x26\\x5d\\xb7\\xe8\\xb8\\x97\\x51\\xf8\\xa4\\xa4\\x07\\xf2\\x50\\x26\\x50\\xfe\\xd7\\x53\\xe4\\x2c\\x8c\\x91\\x1e\\x50\\xb9\\x4b\\x38\\x00\\x69\\x5b\\x0e\\xba\\x7d\\xff\\x06\\xb7\\xa7\\x10\\x11\\x7e\\x49\\x20\\xd4\\xb1\\xc6\\x05\\xa3\\xeb\\xf3\\x2e\\x06\\x96\\x67\\x16\\xed\\xa1\\x4b\\x30\\x42\\x99\\x8a\\x3c\\x7a\\x5e\\x9f\\x83\\x54\\x2d\\x7d\\xde\\x65\\xe5\\x28\\xbe\\xd6\\x10\\x1d\\xeb\\x33\\x1d\\xeb\\x94\\xcd\\xd4\\x60\\x44\\xbe\\xf8\\x8c\\x09\\x7b\\xaf\\xd4\\x0d\\x69\\x21\\xa7\\xc4\\x84\\xc8\\xf9\\x66\\x84\\xdc\\x37\\x16\\x71\\xd9\\x4e\\xee\\x7c\\xbe\\x5d\\x58\\x77\\x15\\x31\\x4c\\xff\\x0d\\x18\\x77\\x27\\x2d\\x81\\x90\\xa9\\x0e\\x18\\xbf\\xb3\\x21\\xd5\\x2b\\xf7\\x47\\x05\\x13\\x7b\\x2a\\xbf\\x91\\x65\\x73\\x17\\x67\\xa1\\x3a\\xdc\\x9c\\x85\\xe0\\x39\\x7b\\x47\\xae\\xf9\\x6b\\xad\\xb2\\xca\\x7f\\xcb\\x82\\x93\\xb0\\x1f\\xd1\\xde\\x31\\x6e\\xe1\\xe6\\x5f\\x35\\x6b\\x9d\\x6e\\x8e\\xa1\\xfd\\xd8\\x37\\xbd\\x96\\x08\\x11\\x49\\xea\\x2d\\xcd\\x73\\xc4\\x88\\x1f\\x32\\xb7\\xde\\xeb\\xc3\\x71\\x5e\\x2d\\x7c\\xdb\\x64\\x3e\\x0d\\x98\\xf4\\xe8\\x46\\x50\\x8b\\x04\\xb3\\x24\\x39\\xff\\x14\\xb1\\x16\\x4f\\x46\\x84\\x6d\\xf9\\xaf\\xae\\x44\\x46\\x4c\\xf5\\x50\\x10\\x4c\\xd3\\xaa\\xb3\\x81\\x75\\x40\\x47\\x0a\\xaa\\x2a\\xb9\\x55\\x9a\\x68\\xb7\\xff\\x6b\\x1b\\x9c\\x0c\\xe9\\xf5\\x86\\x9c\\xbd\\xcd\\xd6\\x17\\x09\\x09\\x42\\xe3\\x53\\xb4\\xc7\\x7f\\x09\\x39\\x58\\x96\\xbe\\xcd\\xdf\\xf1\\xab\\x7f\\x07\\x58\\x6a\\x51\\x4d\\x81\\xfb\\x09\\x63\\x61\\x55\\x75\\x66\\x87\\x0f\\x16\\x91\\x98\\x34\\x85\\xa8\\x0c\\x34\\x13\\xda\\x98\\xb8\\xd1\\x9c\\x78\\xe6\\x37\\x9f\\x94\\x3e\\x5b\\xd5\\xa5\\x69\\x7a\\xa3\\x3c\\x5e\\x6b\\xfc\\xfb\\x7b\\x8d\\xf1\\xe1\\x57\\x4e\\xe4\\x16\\xfa\\xb3\\xc8\\xa7\\xd0\\x88\\xb3\\xa0\\x57\\xcf\\x86\\x53\\x21\\xb7\\x4e\\x61\\x03\\x52\\x6d\\xd9\\xad\\x15\\xca\\x5a\\xd3\\xc0\\xf6\\x97\\x18\\xe2\\x70\\x81\\xd4\\xb3\\x4a\\x7c\\x6d\\x1a\\xab\\x6b\\x96\\xc0\\xa7\\x54\\xb9\\x89\\xb4\\x94\\x06\\x38\\xc9\\xed\\xe3\\xd1\\x7b\\xd4\\x9f\\x65\\xbf\\x78\\x3d\\xc8\\x5f\\x1c\\x4b\\x14\\x48\\x76\\xcd\\xbd\\xb2\\x28\\x2a\\x95\\x64\\xaa\\x81\\xb5\\x70\\x92\\x08\\x0d\\x64\\x48\\xfb\\x65\\x80\\xec\\xf0\\x9f\\x82\\xa7\\x55\\x01\\x0d\\x55\\xd4\\xa5\\xe4\\xf3\\x05\\xe2\\x59\\xdb\\xe9\\x95\\x08\\xb4\\x79\\x25\\x0d\\x80\\xec\\x17\\xc8\\x76\\x0a\\x93\\xe0\\x5a\\x29\\x57\\x1f\\x68\\x56\\x07\\x30\\x22\\xc8\\x70\\x69\\x13\\xc4\\x6a\\x2e\\xfd\\x2e\\x9c\\xaa\\xe4\\xff\\xa1\\xb4\\x22\\x2e\\x3d\\x70\\xe9\\x79\\xe8\\x1a\\x71\\x95\\x1d\\x7c\\xb8\\x30\\xbc\\xbc\\xf9\\x01\\xaf\\x24\\x4f\\x64\\xe4\\xad\\x9f\\x52\\xfa\\x3b\\x62\\x03\\x1e\\x35\\x16\\xda\\x50\\xbc\\x2b\\xce\\x78\\xeb\\x9d\\x61\\xbf\\xed\\xd9\\xb3\\xf5\\x7e\\x89\\x35\\x5f\\x17\\x7d\\xb6\\x16\\x2b\\xf6\\x1d\\xa0\\xe4\\x54\\xc3\\x42\\x88\\xb9\\x67\\xc3\\xfb\\x4c\\x34\\x1b\\x32\\xd4\\xd1\\x3a\\x31\\x98\\x69\\xb8\\xe3\\x60\\x46\\xf9\\xe3\\x38\\xb5\\xf3\\x6a\\x1f\\xc1\\xa7\\xed\\xa7\\xd7\\xb0\\xd4\\x38\\xe0\\xa7\\x5d\\x84\\xbb\\xe4\\xd6\\x8c\\x87\\x9a\\xda\\x80\\xdd\\xe2\\x3f\\x71\\x55\\xb5\\x32\\xcc\\xcf\\x7a\\x63\\xf1\\xbe\\xdf\\x84\\xf8\\x2f\\x44\\x0c\\x9e\\xc3\\xcb\\x0e\\x45\\xf3\\x2c\\x92\\xf7\\x64\\x38\\xf5\\xb4\\xb9\\x10\\x44\\x1e\\x67\\x38\\xaf\\x3f\\x5d\\x20\\x50\\xd5\\x79\\xee\\x96\\xb8\\x8f\\x3b\\x00\\x81\\x0a\\xb1\\x26\\xff\\x3a\\x8f\\xef\\xd9\\x71\\x04\\x43\\x24\\xdd\\x4e\\xb3\\x44\\x7d\\xac\\x5b\\x77\\x80\\x9c\\xda\\x8c\\x71\\x68\\x25\\x49\\xd7\\xcf\\x2d\\xce\\xe3\\x40\\xed\\xcf\\x94\\x94\\xac\\xa4\\x29\\x01\\xe2\\xc1\\x1e\\xd9\\x77\\x90\\xaf\\x48\\xbc\\xea\\x29\\x52\\x1e\\xf0\\xe3\\xd0\\x3c\\xda\\xde\\xcd\\xc8\\x94\\xdd\\x07\\x56\"},\n{{0x72,0xcf,0xce,0xf4,0xc9,0xd6,0xa1,0x98,0x6d,0x19,0x03,0x11,0x84,0x0e,0x55,0xcb,0xaf,0xac,0xc8,0xa6,0xeb,0x5e,0xcc,0x72,0x93,0x4f,0xda,0x53,0x5b,0xdc,0xff,0xb2,},{0xa9,0x44,0x64,0xd8,0xcc,0x8f,0x3e,0x43,0x39,0x39,0x47,0x64,0x9f,0x91,0xc2,0x75,0x23,0x27,0xe4,0x0d,0xac,0xa1,0x1a,0x99,0x70,0xc5,0x18,0x1e,0xda,0x37,0xd6,0x06,},{0xdb,0x72,0x70,0xac,0xce,0x78,0xd7,0xfb,0x09,0x08,0x0a,0x32,0x79,0x41,0xbc,0xe7,0xeb,0x14,0x5b,0x9e,0x36,0x61,0x86,0x6a,0x86,0x83,0xf9,0xa1,0xa3,0xde,0x97,0xfb,0x02,0xb0,0x25,0xdb,0x9e,0xc7,0x6f,0xf3,0x25,0x60,0xfe,0x63,0x88,0x27,0x74,0x2e,0xa2,0xf4,0xeb,0xef,0x6b,0x7c,0xce,0x44,0xf9,0xaa,0xee,0x43,0x4f,0xd7,0xc1,0x08,},\"\\x66\\xa6\\xcb\\xe8\\x8a\\x8a\\xb9\\xa3\\x38\\x47\\x79\\x7f\\xc4\\x80\\xb2\\x44\\xe8\\xa2\\xb8\\xec\\x79\\xe8\\x0b\\xc2\\x63\\x77\\x53\\xde\\xb3\\x6f\\xa3\\x01\\x4f\\x84\\x3e\\x22\\xa4\\x7d\\xb0\\xa3\\x17\\x78\\x38\\x5e\\xc1\\xf4\\x55\\x67\\x2e\\x0d\\xff\\x6c\\xa2\\x1c\\xa4\\xcf\\xd2\\xb9\\x89\\x47\\x1b\\x7f\\xfc\\x30\\x78\\x28\\x13\\x8b\\x0a\\xd4\\xe6\\x47\\xc2\\xd1\\x3c\\xef\\x72\\x44\\x69\\x05\\x4a\\xbd\\x37\\x40\\x24\\x5a\\xea\\x4b\\x78\\x9e\\x24\\x4e\\x95\\xcf\\x9e\\xcf\\xd0\\x8a\\x0d\\x13\\xc7\\xce\\xd3\\x93\\x33\\x27\\x27\\xa7\\xf3\\xd8\\xfb\\xda\\xbd\\x93\\x9d\\xe2\\x8c\\xaa\\x41\\xcc\\x96\\xc7\\x08\\x11\\x98\\xe2\\x26\\x53\\xd9\\x4e\\x02\\x4a\\x61\\xf5\\xf3\\xdc\\x5a\\xa3\\x7f\\xa9\\xad\\xdd\\xc9\\x6c\\xf1\\x69\\xd3\\x50\\x62\\xa0\\xa2\\x9b\\xa4\\x5a\\x53\\x9c\\x87\\xa6\\x8a\\x3a\\x03\\x04\\x36\\x13\\x09\\xd2\\x13\\xe6\\x14\\xee\\x83\\x73\\xda\\xfb\\xa2\\xa7\\xd6\\xed\\x7d\\x2a\\xd3\\x77\\x04\\xc0\\x94\\x6e\\x4d\\x09\\x3e\\x2d\\x94\\xd0\\x61\\x36\\x4c\\xc1\\x23\\x10\\x63\\x72\\x91\\x03\\xa7\\x7c\\xcb\\x50\\x18\\x91\\xbb\\xc3\\x18\\x54\\x57\\xbb\\xd2\\x86\\x9e\\xb6\\x3d\\xc6\\x0f\\x19\\x6f\\x10\\xa3\\x8b\\x7b\\x36\\xcb\\x3f\\x64\\x3d\\x35\\xdd\\xbf\\x43\\x8a\\x44\\xbf\\x0c\\x8f\\x57\\x0f\\xad\\x41\\xbd\\xde\\x26\\x7f\\x0f\\xfc\\xf1\\xf2\\xf9\\x27\\xd6\\x26\\xd1\\xb0\\xd9\\x80\\xa0\\xce\\x22\\x3f\\x2f\\x00\\x54\\x84\\x5a\\xfe\\x41\\xd3\\x9d\\xe5\\xa4\\x57\\x21\\x9f\\x27\\x6c\\x67\\xe6\\x9b\\xe2\\xd5\\xc9\\xe0\\x70\\x13\\x16\\x39\\x56\\x1c\\x26\\x75\\x1f\\xb0\\x64\\x35\\xe0\\xe4\\x2e\\x25\\x08\\xc5\\xf4\\x9c\\xd1\\x2b\\x51\\x7c\\x98\\x33\\xff\\x97\\xf5\\xe5\\x1e\\x1d\\xce\\xaf\\xa9\\x42\\x6d\\x3d\\xc5\\x2f\\xd1\\x37\\x9c\\x64\\xcc\\xaa\\xbb\\x26\\xdb\\x1a\\xf6\\xde\\xd7\\x15\\x36\\x28\\x84\\x2f\\x0c\\xbd\\xbb\\xbd\\x6a\\xa0\\xcf\\xa5\\x40\\x7f\\x40\\x94\\x96\\xc0\\x65\\x32\\xdb\\xea\\xc9\\x4d\\xab\\x9b\\xab\\xa0\\xb3\\xc9\\x88\\xfa\\x03\\xd3\\x6f\\x91\\x1d\\x80\\xe4\\x9b\\x37\\x0b\\x68\\x37\\x03\\x7f\\xf2\\x49\\xe7\\x6d\\x69\\x2c\\xd1\\x77\\x37\\xe0\\xd0\\x79\\x65\\xd3\\x3f\\x17\\x04\\x2b\\xbc\\xd1\\xe9\\x90\\xe0\\x40\\xf7\\x19\\x36\\xf6\\xfc\\xa2\\x54\\x2a\\xe3\\x37\\x48\\x36\\x77\\x87\\xc0\\x1b\\xde\\xa7\\x5c\\x9a\\x0e\\x66\\x15\\x02\\x81\\xc4\\x68\\xfe\\x5c\\x73\\xaf\\x9e\\x5b\\xec\\x37\\x2d\\x50\\x20\\xc3\\xd3\\x7f\\xa1\\x03\\x5a\\x67\\xe2\\x24\\xd0\\x95\\xf0\\x66\\xa5\\x1f\\xe1\\xf6\\x81\\xc3\\x07\\x39\\x39\\x27\\x2f\\x6a\\xf7\\x75\\x0e\\xd8\\xd1\\x83\\x49\\x17\\x8a\\xb4\\xa2\\xee\\xb4\\xe9\\xca\\x82\\xbb\\x67\\x29\\x6e\\x98\\x90\\xf3\\x16\\xc9\\xd9\\x49\\x59\\x53\\xd6\\x84\\x36\\xeb\\x1c\\x1a\\x2f\\xb6\\xa1\\xcc\\xa4\\x5a\\x8e\\x88\\xa0\\x9b\\xdd\\x65\\xa5\\x55\\x80\\x25\\x61\\x8b\\x36\\xd7\\xf3\\xcb\\x38\\x9d\\x2e\\x2a\\xb1\\xed\\x23\\x32\\x28\\xec\\x92\\xa3\\x27\\x97\\x8c\\x0a\\xdc\\xed\\xdb\\x6c\\x96\\x32\\xd3\\xab\\xd7\\x97\\x16\\x21\\x71\\x37\\x54\\x75\\x8e\\x21\\x01\\x3a\\x0c\\x3d\\x00\\x9b\\x6e\\x31\\x93\\xcc\\x15\\x2c\\x57\\xef\\x73\\x10\\x7b\\xd4\\x35\\x7d\\x52\\x8b\\xe4\\x08\\x73\\x02\\x7b\\xf1\\x84\\x0f\\x68\\x55\\x36\\x08\\x0f\\x12\\xc5\\xff\\xa9\\x3c\\xa6\\x29\\x73\\x67\\x80\\xe0\\x15\\xe8\\x6d\\x19\\x09\\xf0\\xd8\\xf3\\x72\\x01\\x0c\\x9c\\xb7\\x2c\\x09\\x89\\x84\\x5f\\xc8\\x83\\x15\\xe6\\xb9\\x37\\x0d\\xc9\\x2d\\x36\\x83\\xef\\x44\\xd3\\xf7\\x5f\\xc9\\x6c\\x4b\\x0e\\x89\\xe1\\x3d\\x68\\x2d\\x19\\x88\\xb6\\x85\\x71\\x3e\\xad\\xa8\\x42\\xbe\\x9d\\x2b\\xbe\\x2a\\x76\\xbb\\xa1\\x5d\\x38\\xcb\\xaf\\xb6\\x5c\\x40\\xc2\\x15\\x9b\\x0c\\xee\\xb0\\xd7\\x69\\xb9\\xbe\\x35\\x55\\x40\\x73\\x4f\\xf3\\x77\\x36\\xc0\\xf0\\xfa\\xcb\\x95\\x15\\x93\\x09\\x36\\x5b\\x96\\x46\\xbc\\x4b\\x34\\x4f\\xb1\\x9a\\x5c\\x16\\x39\\xa8\\x8e\\x87\\x31\\x7b\\xfb\\x3b\\x5e\\x7b\\x51\\x30\\xfa\\x7d\\x56\\x43\\xed\\x4d\\xa0\\x64\\x30\\xc8\\xa0\\xc1\\x85\\x8c\\xcf\\x2f\\x9a\\x6e\\x3d\\x62\\x01\\x22\\x53\\xf0\\x12\\x2d\\xba\\xb4\\xa3\\x54\\x75\\xa6\\xf6\\x55\\x89\\xb2\\xb0\\x95\\x99\\x28\\x26\\xe4\\xf1\\xb5\\x8f\\xa0\\x50\\xb8\\xf9\\x5c\\x4f\\xeb\\xa3\\xfb\\xaa\\xdd\\x2c\\x22\\x44\\xad\\x4a\\xbd\\x41\\x01\\x39\\xad\\xf4\\xc1\\x53\\xcb\\x5e\\x69\\x33\\x7a\\xf1\\x76\\xa7\\x83\\x7e\\xea\\xea\\x99\\xbd\\xcd\\x59\\x38\\x5a\\xfd\\xed\\x34\\xff\\xba\\x80\\x63\\xa3\\x5f\\x4f\\x55\\x8e\\x4e\\xeb\\x48\\xf1\\x48\\x7b\\x56\\xb1\\xf8\\xd1\\xf7\\x30\\x67\\x62\\x1c\\xb5\\x48\\xc8\\x08\\x75\\x3e\\x35\\x26\\xa2\\xf2\\xaa\\xbd\\xe1\\x26\\xbe\\xa5\\x21\\xcf\\x67\\x3d\\xea\\xfa\\x79\\x2c\\xa5\\xbd\\x22\\x12\\x79\\x5b\\xd6\\x6b\\x86\"},\n{{0xa6,0x33,0x7e,0x4d,0x3b,0x1a,0x49,0xb1,0x26,0x31,0x67,0x78,0xc6,0x13,0x51,0x6c,0x03,0xac,0x88,0xc9,0x6d,0x92,0xff,0x5c,0xc7,0xe0,0xc8,0x52,0x7c,0xce,0x1a,0x62,},{0xf5,0xea,0xc4,0xfe,0x0e,0xa1,0xa5,0xf2,0x36,0xb4,0x9d,0xa3,0x3a,0x24,0xe2,0xf3,0xa8,0x3d,0x4b,0x26,0x0c,0x54,0xd3,0x41,0x6c,0x64,0x4e,0x05,0xc8,0x38,0xbf,0x51,},{0x78,0x13,0x76,0xc9,0x51,0x2f,0xa3,0x3c,0x45,0x70,0x47,0xa1,0xf4,0xf0,0xda,0x31,0x76,0xe6,0x0e,0xe4,0x77,0x82,0x86,0x9b,0x7e,0x9f,0xa5,0x84,0x1d,0x96,0x4f,0x3c,0x1a,0xd6,0x6b,0x70,0xc1,0x14,0xb1,0x77,0x1c,0x32,0x4c,0x83,0xff,0x6c,0xd9,0x97,0xae,0xfc,0xcd,0xc5,0x9c,0x11,0x4d,0xb9,0xf2,0xf3,0xca,0x7d,0x84,0xa7,0xb6,0x0f,},\"\\xe3\\x34\\x30\\xc3\\x8c\\x4a\\x40\\xb3\\xc6\\x6e\\x20\\xcf\\x3b\\x70\\xe9\\xfe\\xa8\\xcc\\x50\\x76\\x1f\\x2a\\xfe\\x24\\x9e\\xc0\\x59\\xc0\\x7b\\xc3\\xb3\\x7e\\x5b\\x94\\xf4\\xa4\\x3e\\x31\\x00\\x99\\xb1\\x9a\\x85\\xf5\\x9d\\xff\\x73\\xa7\\xe4\\x95\\xc4\\xdf\\x31\\xf7\\x47\\x80\\xcd\\xef\\x7b\\xd6\\xe4\\x7c\\x39\\x4c\\x18\\x91\\xea\\x30\\x52\\xe3\\xcc\\xf5\\xd8\\x4b\\xae\\x08\\x2d\\x24\\xba\\x71\\x78\\xac\\x65\\xd2\\x29\\xad\\x18\\xa8\\x49\\x40\\xf6\\xb4\\xdb\\xc5\\x96\\xee\\x63\\xc1\\x81\\xb5\\x7b\\x5b\\x49\\x69\\x89\\x79\\xc1\\x86\\x32\\xfa\\x82\\x1c\\xa6\\x1e\\x35\\xa0\\xd0\\x35\\x1f\\xe1\\x3d\\x69\\xe0\\x6d\\xdc\\xc8\\xd6\\x66\\xdc\\xa2\\x45\\x02\\x17\\x7f\\x34\\x4e\\x2f\\x44\\x05\\x75\\xd3\\x9e\\xbf\\xe5\\xe7\\xf1\\x06\\x53\\xb6\\x5b\\xef\\x29\\x1d\\xc8\\x13\\xa0\\x43\\x4c\\x97\\x5d\\xe1\\x64\\xc1\\xa7\\x6b\\xf6\\xfc\\xef\\x98\\xf2\\x31\\x81\\xc0\\x09\\xb9\\x18\\x30\\xb6\\x18\\xe4\\x87\\x48\\x47\\xd2\\xe2\\x1b\\xbd\\xb9\\x3f\\x20\\xcd\\x8b\\x1f\\x4b\\xaa\\xdf\\x99\\x42\\x8a\\x22\\x67\\x43\\x86\\xa6\\x68\\x15\\x2b\\x4b\\x90\\x39\\xff\\x06\\xab\\xcf\\xe3\\x34\\xa0\\x62\\xf7\\x94\\x05\\x61\\x72\\xec\\xbc\\x07\\x94\\xdf\\x98\\x27\\x1b\\x9a\\xcf\\xe4\\xb7\\xda\\x55\\x3a\\x87\\x63\\x42\\x37\\x63\\x00\\x09\\xa0\\x5b\\x25\\x7c\\x18\\x4c\\xbe\\x23\\xd9\\xcd\\x5a\\x03\\x86\\x58\\x01\\x0f\\x57\\x48\\x99\\xf3\\xb2\\xd1\\x54\\xd1\\x85\\xee\\x67\\x23\\x09\\x13\\x65\\x0c\\x3a\\x05\\xb5\\x4a\\x2e\\xdc\\x24\\x3a\\x42\\x87\\x39\\x8e\\x37\\x69\\x28\\xea\\x9c\\x6b\\x2c\\xba\\xf3\\x71\\x25\\x25\\x40\\xe2\\xb8\\x04\\x3f\\xcf\\x55\\x68\\x13\\x19\\x6a\\xe5\\x72\\xc2\\x7c\\xfb\\x5a\\x46\\xab\\xb9\\x72\\x9a\\xf2\\xdc\\xfc\\x29\\xe0\\x33\\xdd\\x11\\xf3\\x3e\\x86\\xcc\\x6a\\xc3\\xbc\\xe6\\xf3\\xf9\\x57\\x7d\\x36\\x78\\x1a\\x69\\xed\\x7e\\xaf\\x8c\\x82\\x63\\xa0\\xf1\\x8e\\xba\\x0f\\xe8\\xa4\\x81\\xf3\\xe1\\x5a\\x55\\x59\\x94\\x34\\x19\\x5f\\x7c\\xb0\\x57\\xdd\\x36\\x4e\\xaa\\x07\\xdd\\x0d\\xfd\\x26\\x6b\\x80\\x7f\\x53\\xa2\\x07\\x0f\\xd7\\x91\\xe8\\x72\\x42\\x2f\\xd9\\x07\\x13\\x4f\\x4a\\x8a\\x78\\xa8\\x76\\xbd\\xcb\\x03\\x1a\\xc8\\x60\\xdf\\xe0\\xbb\\x57\\xe1\\x05\\xdb\\x82\\x87\\xb3\\x1a\\x60\\x4e\\xb7\\x12\\x69\\xbe\\x5b\\xa2\\x29\\x98\\x5c\\xea\\xbc\\x2b\\xdf\\x16\\x5a\\xc7\\x41\\x65\\x0b\\x1f\\x01\\x3a\\x66\\xc9\\xbd\\x24\\x3d\\x03\\xa8\\xb1\\xc5\\x08\\x13\\x81\\xcb\\x92\\xe2\\x3f\\x90\\x57\\x77\\x1f\\xc0\\x7c\\xa3\\x2d\\xff\\x1d\\xb9\\x4f\\x5a\\xdf\\xd2\\xf4\\xff\\x9a\\xf3\\x1d\\x25\\x0d\\xd4\\xf8\\x6b\\x22\\x59\\x2f\\x60\\xa7\\x45\\x75\\x15\\x62\\x13\\xf1\\x08\\x46\\xc7\\x46\\xa9\\x20\\xfe\\x39\\x85\\x1b\\x32\\xfe\\x4c\\x8b\\x87\\x58\\x76\\x5b\\xc5\\xb8\\xb9\\xd5\\xb9\\x92\\x63\\xdf\\x36\\xf9\\x78\\x88\\x05\\x3f\\xd1\\x0f\\x1d\\x68\\xf5\\x77\\xae\\xd5\\x59\\xbc\\xfd\\xe7\\x44\\xbc\\x65\\x11\\x07\\x6c\\xaf\\xd6\\x89\\x44\\xa0\\xed\\x10\\x55\\x2d\\x11\\x34\\x4b\\xc7\\xe4\\xd9\\xef\\x93\\x6d\\xac\\xce\\xd5\\x27\\x43\\x31\\x32\\x95\\x9b\\x1c\\x73\\x24\\xad\\x1c\\x4c\\xbc\\x3a\\x1a\\x73\\x6b\\x1f\\x02\\xaa\\xe8\\xe0\\x61\\x1a\\xe2\\x3f\\xdd\\x47\\x4f\\x5b\\x8e\\xe7\\x05\\x6f\\xcb\\x5a\\xf6\\x13\\x3e\\xcc\\x08\\x4b\\xb9\\xf1\\xf5\\x0c\\xbd\\xac\\x66\\x24\\x44\\x37\\xb4\\x34\\x8f\\x4e\\xdf\\xe2\\x37\\xfc\\x3c\\x38\\x29\\xab\\x94\\xeb\\x4f\\x14\\xca\\xb1\\xcc\\xd6\\xca\\xee\\x36\\xfa\\xdc\\x20\\xa3\\x10\\xcf\\x06\\x90\\x62\\x2c\\xdc\\xa8\\x48\\xae\\xd0\\x3f\\xf4\\x03\\xa6\\x63\\x3f\\x4f\\x65\\x79\\x94\\xb7\\x80\\xdd\\x60\\x48\\x14\\x9c\\x3b\\xfb\\xc1\\x78\\x89\\xe3\\x7d\\x90\\xb1\\xe5\\x42\\x0e\\xb3\\xd4\\x59\\x6b\\x91\\xba\\x11\\xbc\\x02\\x29\\xc6\\x5d\\x05\\xb9\\x3c\\xd7\\xe0\\x45\\x4d\\x1f\\x3c\\x6e\\x1e\\x80\\x71\\x98\\x37\\x92\\xc4\\xd4\\x36\\x8d\\x07\\x78\\xae\\xf4\\xe1\\x23\\x33\\x5f\\xd2\\x96\\x2c\\x65\\x7b\\xd0\\x51\\x35\\x71\\xa5\\xfc\\xe2\\x11\\xde\\x62\\x87\\x4f\\x27\\xca\\x10\\xdc\\x15\\xba\\x2d\\x44\\x5f\\x1c\\xf4\\xbe\\x5f\\x83\\x3c\\xf0\\xb5\\x64\\xc0\\x22\\x57\\x6b\\x98\\xc0\\xa2\\x43\\x49\\xb6\\x70\\x85\\xf9\\x22\\x02\\x67\\x5d\\x7d\\xac\\x48\\xb9\\x5e\\x3b\\xfd\\x65\\x55\\xa9\\xec\\xb7\\xc7\\x2f\\x08\\xbf\\xec\\x0d\\x22\\x02\\x22\\x49\\x2f\\xdc\\x96\\x36\\xf0\\x36\\xec\\x45\\x08\\xa3\\x65\\xb7\\xb7\\x09\\x79\\xf9\\xeb\\x4a\\x72\\x63\\xa8\\xba\\xcb\\x1c\\x1d\\x01\\x55\\x73\\x86\\x46\\xcd\\xd4\\x6a\\xb9\\x23\\x4a\\x17\\x03\\x11\\x50\\x0d\\x0b\\xae\\x6e\\x55\\xa8\\x63\\xbd\\xaa\\x56\\xf5\\x16\\x45\\xad\\x85\\x29\\x7a\\x73\\x81\\xf8\\xd2\\x0c\\xf9\\x6c\\x47\\x4d\\x1b\\xb8\\x1f\\xce\\x13\\x2b\\x14\\x55\\x5d\\x1a\"},\n{{0x10,0x7d,0xa9,0x8d,0x0e,0xe8,0xe7,0xc0,0x0f,0x6d,0x41,0xec,0x26,0x59,0x44,0xce,0x67,0xef,0x8c,0x8f,0xfb,0x51,0xf4,0xf1,0x1f,0x4e,0x5f,0x1a,0x27,0xfb,0xe8,0x05,},{0x3b,0xec,0x34,0xb1,0x61,0xb1,0xbc,0xff,0x00,0x9f,0x8c,0xfc,0x50,0xd8,0x4c,0xeb,0x6a,0x2d,0x5b,0x20,0x3b,0x52,0x38,0xa8,0xaa,0xd8,0xa8,0x36,0x18,0xb4,0x42,0xe7,},{0x53,0x25,0x2b,0x92,0x3a,0xd1,0x9c,0xc3,0x97,0x84,0xd3,0xa9,0xae,0x59,0xd6,0x2a,0x63,0x00,0xdc,0xc5,0x0a,0xc8,0xfd,0x07,0x13,0xcb,0x58,0x84,0x45,0x01,0xd8,0xd3,0x80,0x5a,0xfa,0x0f,0xda,0x64,0xc7,0x3e,0xa0,0xf6,0x0e,0x6a,0x8b,0x34,0x45,0xbf,0xff,0xe6,0xca,0x6b,0xfd,0xc8,0x7e,0x12,0x8b,0xaf,0x99,0xbf,0x62,0x68,0xfc,0x09,},\"\\x1a\\x7b\\x7f\\x3e\\x1c\\x7c\\x41\\x49\\x2a\\x7c\\xe7\\x99\\xef\\xdb\\x2d\\x9d\\xc2\\xf2\\x48\\x9c\\x84\\xae\\x28\\xbb\\x7d\\x08\\x4f\\x32\\xec\\xa8\\xfb\\xb0\\x66\\x88\\x5a\\xc6\\xf2\\xef\\x74\\x49\\xe7\\x12\\x26\\xa8\\x2e\\x9f\\x15\\x37\\x72\\xa9\\x93\\xeb\\x6b\\x6b\\xca\\x64\\x91\\xd2\\x6a\\xca\\x5d\\xee\\x98\\xb7\\x7a\\x1d\\xdc\\x59\\x92\\x2b\\x31\\x45\\xc4\\x47\\xde\\x73\\x7f\\xaf\\xac\\xba\\x5a\\x75\\xf2\\xa8\\x01\\x37\\xb5\\x59\\x46\\x97\\x22\\x0d\\x19\\x61\\x76\\x74\\xa6\\x91\\x13\\xfd\\xf7\\x7c\\x34\\x3a\\xf2\\xb7\\xe3\\x86\\x1b\\x5b\\x78\\x22\\xf5\\x8d\\x60\\x08\\x9c\\x3c\\xa5\\x4c\\x74\\x9d\\x27\\xf8\\x83\\x79\\xc0\\x67\\x59\\x8f\\x06\\x39\\x39\\xba\\x86\\x31\\xd1\\xf5\\x2d\\xc9\\xab\\x45\\x50\\x45\\xfb\\x36\\x0c\\xc2\\xa5\\xb6\\xb0\\x12\\x7f\\xac\\xfc\\xf5\\xb1\\xb4\\xc3\\x3e\\x3f\\x19\\x4f\\xc9\\x24\\xb8\\x54\\x16\\x8c\\xb1\\x16\\x9a\\xb1\\x09\\x97\\xb4\\x38\\xb7\\x1c\\x80\\x87\\x83\\x47\\xbe\\x88\\x7a\\xf4\\x48\\x10\\x13\\x4b\\x51\\x4c\\x80\\x69\\x08\\x20\\x1a\\x3d\\x3e\\x6d\\x0c\\x56\\x12\\x0c\\x43\\x14\\x87\\x4d\\xc2\\x94\\x4d\\x84\\x44\\xf0\\x1b\\xaf\\xa3\\x4a\\xa6\\x2e\\xce\\xf0\\x98\\x15\\x45\\xe5\\xd0\\x2f\\x40\\x16\\xc0\\xb1\\x64\\xfc\\x05\\xae\\x18\\xf5\\x35\\xc3\\x1b\\xf2\\x0b\\x86\\xf3\\x1f\\x7a\\x79\\x4a\\xba\\x14\\x89\\x84\\xc3\\xff\\x43\\x3d\\xc2\\x22\\xc4\\x43\\xb5\\xd2\\x6c\\x1f\\x66\\xe6\\xc5\\xf1\\x9d\\x19\\xcd\\x6e\\xad\\xd4\\xdc\\x94\\x10\\x1b\\x2f\\x52\\xb5\\x8c\\x9d\\x45\\x90\\xcb\\x10\\xdb\\xc5\\xd6\\xea\\xcd\\x11\\xd4\\x2e\\xd0\\x9f\\x15\\xbd\\xe4\\x4e\\xe9\\x27\\x1d\\xef\\x29\\x2f\\x73\\x1b\\xf3\\xb4\\xac\\x6c\\xd1\\x27\\xe4\\x88\\x4c\\x2c\\xb3\\x0b\\x28\\x5f\\xc9\\x24\\x76\\x38\\xa2\\x99\\xe4\\x16\\x52\\x06\\x24\\xd1\\xec\\x8d\\x0d\\xf2\\x49\\x89\\x39\\xc7\\x19\\xa9\\xe7\\xbd\\x29\\xa3\\xc5\\xc3\\x2a\\x3e\\x82\\x41\\x36\\x8d\\x6e\\x4f\\x90\\xfe\\xa2\\x9d\\xc3\\xa3\\xf1\\x47\\xea\\x9f\\x76\\xc5\\x78\\x0e\\x73\\x14\\x3f\\x55\\xd3\\xde\\xc7\\xb6\\x63\\x41\\xd3\\xf3\\xea\\xc1\\xd9\\x8f\\x8e\\x7d\\x4e\\x87\\x75\\x09\\xb4\\x43\\x8c\\x3a\\x52\\x46\\x6d\\x24\\x2a\\x10\\xb4\\xc2\\x7c\\x4a\\x0d\\xb9\\x23\\x2d\\xad\\x01\\x14\\x14\\xeb\\xfb\\xd5\\x79\\x06\\xf1\\xa4\\x10\\x20\\x7b\\x52\\x6b\\x0d\\x1f\\x1b\\x69\\x86\\xb3\\xeb\\xd7\\x55\\x0a\\x2b\\x3c\\x15\\xfc\\x24\\x09\\xc7\\x62\\x6e\\x0d\\xd3\\x30\\xef\\x67\\x22\\xe3\\xba\\x48\\xb1\\xd9\\x20\\x56\\x52\\xac\\x19\\x4c\\x21\\x47\\x3c\\xe2\\x58\\x55\\x9d\\xb5\\x11\\xef\\xad\\x3e\\x5d\\x55\\xf2\\xa7\\x96\\xd6\\x5a\\x6a\\xb9\\x7d\\x86\\x31\\x06\\x2a\\x59\\x3a\\x13\\xaa\\xa0\\x95\\xdb\\xc9\\x3e\\x62\\x17\\xce\\xd6\\x19\\xcb\\x16\\xa5\\x7e\\x74\\x43\\x55\\xa1\\x6b\\x15\\xe7\\x7d\\x49\\x79\\x11\\x92\\x99\\xbb\\x04\\x3e\\x48\\xfa\\x3e\\x61\\x54\\x60\\xe1\\x64\\x88\\x29\\x84\\xa2\\x23\\xd4\\x18\\xca\\x95\\x34\\x0c\\x5b\\xfc\\xda\\x67\\x3f\\xcd\\x13\\xb2\\x9f\\x2c\\x47\\xd2\\xf9\\x7e\\x3e\\x8c\\x61\\x3b\\x6c\\x58\\xdf\\x0e\\x62\\xcf\\x23\\x06\\x1d\\x6f\\x54\\x5b\\x75\\x50\\x33\\xfd\\x3d\\xc1\\x40\\x5e\\x5f\\xef\\x35\\xa1\\x3e\\x01\\x5f\\x98\\xb1\\xcc\\x42\\xf7\\x1b\\x99\\x68\\x1f\\x96\\x81\\x25\\x82\\x29\\xa4\\x47\\x3d\\x86\\xea\\xbb\\x0c\\x17\\x92\\x79\\x41\\xe5\\x0c\\x08\\xf3\\x4a\\x76\\xb4\\x3b\\xcc\\x6d\\x04\\x2e\\x56\\x32\\xef\\x9c\\xcc\\x91\\xb6\\xe6\\x95\\x0f\\x5d\\x30\\xf6\\x70\\xfb\\x39\\x02\\xc3\\xd4\\x09\\x31\\x5a\\x40\\xb0\\x82\\x1c\\xe8\\xa9\\x9a\\x97\\xfe\\xca\\x54\\x78\\xbf\\xd7\\x82\\xe7\\x87\\x67\\xb3\\x11\\xf3\\x74\\x16\\x3f\\x58\\x96\\xb0\\xbe\\xb9\\x58\\x38\\xe6\\x45\\x87\\x8c\\x64\\x99\\x03\\x85\\x12\\x3b\\x61\\x57\\x5d\\xd8\\x42\\xdc\\x76\\x35\\x4b\\xac\\x9c\\x6d\\x5a\\xcd\\x99\\x35\\xb6\\x09\\xbc\\xcc\\xb8\\x46\\x3d\\x39\\x22\\x5d\\xa1\\xaf\\xb8\\x91\\x1d\\x36\\xe6\\x09\\x89\\x2d\\xd1\\x72\\x38\\x52\\xab\\x9f\\x82\\x75\\x8f\\x3f\\x1e\\x4d\\x28\\xdc\\xf0\\x2c\\xb0\\x6e\\xed\\x26\\x84\\x4a\\xae\\x68\\x82\\xed\\x44\\xbc\\xe4\\x4a\\xbc\\xd1\\xdf\\xba\\x63\\x34\\x18\\xc9\\xf1\\x55\\x87\\x9c\\x97\\xab\\x27\\xf8\\xae\\x23\\x83\\x30\\x39\\x2b\\xe5\\x49\\x1a\\x07\\x86\\x62\\xda\\xaa\\x02\\xa3\\xd5\\x45\\x8b\\x77\\xc5\\x49\\xc4\\x9b\\xe2\\x01\\x24\\x5e\\x7a\\xae\\xc0\\xd9\\x4e\\x54\\x37\\xbe\\xca\\x6e\\x5a\\xb0\\x46\\xd6\\x94\\xe9\\x6b\\xf5\\x1e\\x04\\xfb\\x44\\x37\\x9b\\x2b\\x9b\\x80\\x16\\x75\\xfe\\x14\\x77\\xf3\\xe0\\x89\\x87\\x4a\\x60\\x11\\x71\\xd8\\xb6\\x8f\\x02\\x02\\x01\\x46\\x01\\xa5\\x3f\\x81\\x2f\\x53\\xe5\\x81\\xc3\\xb9\\x63\\x12\\xb3\\x6b\\x9e\\xe0\\x4f\\xff\\x11\\xd9\\xea\\xb4\\xe4\\x51\\x48\\xdc\\xc8\\xf0\\xfa\\xb1\"},\n{{0x8b,0xc2,0x29,0xfc,0x23,0x46,0x53,0xb1,0x3c,0x92,0x47,0x10,0xcb,0x46,0x8b,0x8f,0xa9,0xb2,0x80,0xe2,0xad,0xb4,0x9c,0xb4,0xb3,0x6b,0xf5,0x9d,0x6f,0xa4,0xa6,0x39,},{0x46,0x14,0x69,0x75,0xdf,0x67,0x04,0xcb,0xf4,0x53,0x20,0xa5,0xe6,0xcb,0x6d,0xe8,0x13,0x46,0x9f,0x31,0x31,0xe6,0x1d,0x44,0x7b,0xbc,0xa1,0xa4,0x77,0xa0,0xc5,0x57,},{0xd2,0x43,0xb8,0x7d,0x13,0x97,0xd5,0x94,0x13,0x9d,0x83,0xc3,0x9a,0xcf,0x85,0x01,0xd0,0x73,0xbd,0x4b,0xe7,0x18,0xb4,0xc2,0x06,0x98,0x07,0x29,0xe7,0x20,0xa4,0xc5,0xb0,0xea,0x91,0xa2,0x8e,0xa1,0x26,0x04,0xa9,0x87,0xe6,0x95,0x91,0xc5,0x43,0x04,0x9f,0x29,0x73,0xbb,0x91,0xc1,0x70,0x21,0x3c,0x32,0xa6,0x4a,0x0f,0xac,0x82,0x04,},\"\\xba\\xe2\\xdc\\x7f\\x94\\xab\\x5c\\xcd\\xca\\xa8\\xcf\\x49\\xed\\xbe\\xf0\\xf6\\xd7\\xae\\xb1\\xfa\\x89\\x07\\x80\\x05\\x33\\xaf\\x44\\x92\\x61\\x11\\x94\\xe5\\x6c\\xef\\x37\\xb1\\xf0\\x33\\x30\\x37\\x38\\xae\\x2c\\x3b\\xc4\\x58\\x8f\\x5c\\xb3\\xd5\\x5f\\x34\\x5b\\x9a\\x40\\x7e\\x78\\x77\\x42\\xa0\\x6a\\xf0\\xb6\\xee\\x20\\xde\\xe3\\xdf\\xe9\\xc9\\x1d\\x76\\x2a\\x3e\\xbd\\x19\\xae\\xd0\\x79\\x07\\xbb\\xb9\\x1c\\xd7\\x76\\x32\\x65\\x40\\xde\\xd9\\xf7\\xff\\x7d\\xda\\x76\\x61\\x5f\\x97\\x8e\\x94\\x90\\xf4\\x06\\xed\\x2d\\x91\\x16\\xe2\\x09\\x3f\\xa7\\x85\\xe9\\x71\\xb5\\x06\\x2d\\x31\\xcb\\x40\\xff\\xf9\\xe3\\xc5\\x51\\xa7\\x3b\\x20\\x24\\x5d\\x46\\xdf\\x4d\\x7f\\xd1\\x30\\x3a\\x28\\x18\\x01\\x72\\xd9\\xa2\\xbf\\x55\\x93\\xc4\\x79\\x17\\xb5\\x86\\x90\\x91\\x7c\\x1f\\xb0\\xe1\\xe2\\x99\\x4d\\x1f\\xa9\\x77\\x35\\xae\\x37\\x8d\\xe6\\xea\\xfd\\x5c\\x1a\\x25\\xab\\xaf\\xa3\\xcf\\xd2\\xdf\\x7a\\xea\\xbd\\x6e\\x68\\xfc\\x44\\xed\\xf8\\x2f\\xc8\\x36\\x94\\xe5\\xd8\\x41\\xa1\\x5b\\x14\\x56\\x8b\\x61\\x10\\xbe\\x64\\x4b\\xf2\\x2b\\x71\\xfc\\x47\\xd7\\xf0\\x7e\\x16\\x66\\x95\\x7d\\x0f\\x87\\xda\\x17\\xf1\\x3f\\xcd\\x63\\xc1\\xc2\\x96\\x6f\\x68\\x7d\\x25\\xdc\\xbd\\x99\\x63\\xf0\\x1e\\xff\\x13\\x2d\\x5f\\x2b\\x86\\x67\\x78\\x16\\x58\\x8c\\x12\\x3e\\x94\\x57\\xbe\\xfc\\xce\\xd2\\xd3\\xcd\\x1d\\x1b\\xeb\\xe8\\xdd\\x8f\\xbb\\x15\\x87\\xe5\\x53\\xcb\\xcc\\x4c\\x87\\x62\\x06\\x4c\\xd3\\x2e\\xf7\\xa1\\x70\\x24\\x10\\xf7\\x7f\\x15\\x24\\x0d\\x7e\\x2b\\xb5\\x82\\xc6\\x78\\xc0\\xda\\x88\\xef\\x45\\x22\\x83\\x0b\\x14\\x36\\x60\\xac\\x9c\\x43\\x4d\\x95\\x77\\x2e\\x6e\\xee\\xed\\x60\\x14\\xae\\x16\\x82\\x4c\\xcd\\xc4\\xdf\\x2d\\xf6\\x4a\\xeb\\x69\\x80\\xb5\\x1d\\x11\\x89\\x85\\xdc\\xbb\\xd1\\x96\\x1f\\x31\\x5e\\x6a\\x94\\x33\\xf0\\xb9\\x6b\\x1e\\x63\\x51\\x25\\x7e\\xad\\x83\\xe0\\x5b\\x4c\\xc8\\x9c\\x92\\x4b\\xf8\\x35\\x58\\xba\\x7d\\x2e\\x7c\\xa3\\x7c\\x03\\x17\\x9a\\x8f\\x85\\xb8\\x31\\xe7\\x21\\x7b\\xf4\\xc5\\x53\\x83\\x87\\x61\\xd3\\x26\\x02\\x85\\x3b\\x81\\x59\\x3b\\x0e\\xbf\\x8e\\x4b\\x9f\\xfa\\xf0\\xec\\x40\\x5b\\x2a\\x83\\xaf\\x7d\\xe5\\x55\\x4d\\xaa\\xd2\\x8b\\x58\\x2e\\xe0\\x8b\\xd8\\x4b\\x37\\x55\\x50\\xca\\xe0\\x8a\\xe4\\xa5\\xbd\\xa7\\x15\\x81\\xfc\\x3b\\x7b\\x54\\x49\\x8c\\x4e\\x1a\\xfb\\x96\\x6b\\x4a\\xf1\\xd9\\xc8\\x43\\xa6\\xb2\\x5b\\x34\\xe0\\x4c\\xfd\\x9b\\xd2\\x37\\x42\\x44\\xf1\\xfe\\x20\\xec\\x62\\xbe\\x3c\\xcf\\xab\\x4e\\xde\\xf7\\x9e\\xd6\\x4e\\x6b\\x71\\xaa\\x92\\x28\\x12\\x7c\\x63\\x59\\xea\\x1c\\x4a\\x80\\x87\\x89\\x08\\x96\\xff\\xa4\\x6e\\x00\\x92\\xde\\xc7\\xef\\xbc\\x96\\x0a\\x17\\xb7\\x70\\x91\\x6f\\x95\\x40\\x70\\x13\\x2e\\x26\\xd9\\x8d\\x97\\x74\\xa2\\xac\\xdf\\x80\\x9d\\x58\\x6d\\xf0\\x25\\x2f\\x67\\xcf\\xe8\\xd9\\x85\\xa3\\xe2\\x48\\xdb\\x0f\\x90\\x73\\x1a\\xce\\x7a\\xbd\\x99\\x9c\\x74\\x6b\\x69\\x64\\x8d\\x5c\\x3b\\x4b\\xd6\\x11\\x37\\xe0\\x8f\\xcc\\x8b\\x2e\\xfc\\x56\\x76\\xbc\\xd8\\x56\\xa1\\x3b\\x36\\x21\\x51\\x47\\x4c\\x4a\\x1e\\xfd\\xed\\xc5\\x92\\xcf\\x3e\\xad\\x1a\\xba\\xbc\\xd4\\x8e\\xe2\\x04\\xd2\\x77\\x26\\xad\\x1b\\xda\\x4f\\xe4\\xb0\\x9a\\xb5\\x10\\x89\\xd0\\x16\\xde\\x6b\\xa2\\x59\\xea\\x81\\x80\\x7f\\xaf\\x21\\x1c\\x87\\xe4\\xc9\\xef\\xbf\\x6a\\x4c\\x75\\x3e\\x08\\xf7\\x80\\xed\\x55\\x33\\x8c\\x0f\\xde\\x14\\xfb\\x99\\xb3\\x07\\x22\\xb5\\x59\\x4b\\x3a\\xbe\\x02\\x04\\x7f\\x46\\x62\\x42\\x42\\x1f\\xb8\\x11\\x76\\xc9\\xc4\\xf0\\xfd\\x2b\\x5e\\x7c\\x5a\\x0f\\x65\\xa0\\xc5\\x9a\\xa8\\xc3\\xa9\\x86\\x08\\x7d\\xe7\\xba\\x40\\xba\\xca\\x77\\xbd\\x36\\xac\\x21\\xce\\x34\\xe9\\xfe\\x97\\xfa\\xcc\\x4e\\x29\\x83\\x30\\xee\\xce\\x1c\\x8e\\xc6\\x23\\xe6\\x6a\\x4b\\x0f\\x23\\x42\\xd2\\xc5\\xa0\\x2c\\x5f\\x5a\\xbd\\xdc\\x5f\\xf1\\xf1\\xf2\\xd0\\x3c\\x1d\\x4e\\xe9\\xb4\\xb3\\x42\\xed\\x3b\\x1c\\xc2\\x65\\x61\\xf3\\x21\\x7b\\xf8\\x50\\x0e\\x08\\xf0\\x27\\x57\\x1c\\x53\\xc9\\x23\\x26\\x05\\xa5\\x3f\\x2b\\xda\\x02\\x4e\\x39\\x92\\x91\\x63\\xa8\\xe0\\x07\\x91\\xac\\x06\\x56\\xbb\\x07\\x83\\x82\\x5e\\x71\\x05\\xff\\xa9\\xd9\\x09\\x69\\xdc\\x09\\x4a\\xf4\\x6f\\x70\\x2e\\x85\\xcc\\x11\\xe4\\x42\\xb3\\xd5\\x53\\x4c\\x1d\\x32\\x75\\x20\\x7d\\x6d\\x29\\xa9\\x42\\xc3\\x58\\xed\\x5f\\xa0\\x75\\x57\\xc3\\xc0\\x14\\xcf\\x54\\x1f\\x9a\\xae\\xea\\x60\\x25\\xb4\\x1e\\xcd\\xd8\\x48\\x51\\x2b\\xa2\\x5e\\x72\\x1e\\x43\\xd3\\x29\\x18\\x5f\\x8f\\x94\\x89\\x2e\\x9e\\x2d\\x5e\\x7c\\xbb\\x99\\xe7\\xad\\x25\\xf6\\x9e\\x5b\\xef\\x73\\x2c\\xfc\\xeb\\x07\\x86\\x11\\x55\\x3c\\xc7\\x83\\x77\\x37\\x5e\\x74\\xe6\\x6f\\x1b\\x9d\\x8d\\x20\"},\n{{0x3e,0xdb,0x50,0xff,0x07,0x4e,0xf9,0x71,0x7f,0x4f,0xb0,0xb6,0xce,0x25,0x2b,0xf4,0xbd,0x04,0x9c,0x90,0x83,0x77,0x5f,0x52,0x9e,0xaf,0x51,0xe9,0x75,0xcb,0x32,0x45,},{0x4b,0xc2,0x1f,0xe0,0x3e,0x67,0x9a,0xbb,0xfc,0xd8,0xc5,0xea,0x2b,0xcc,0x4d,0x83,0x8a,0x78,0x7d,0x48,0x40,0xc3,0xbc,0x39,0xde,0x4b,0x04,0xc4,0x17,0xc7,0x68,0xa5,},{0xde,0xb3,0xd9,0xfc,0x7b,0x2d,0x86,0xab,0x4b,0x92,0x6f,0x99,0x52,0x79,0x70,0xab,0xb5,0x18,0x38,0xbc,0xc2,0x91,0x9e,0x94,0xcd,0xa3,0x37,0x1f,0xd0,0xe7,0x69,0x3f,0xe3,0x7e,0x0c,0x40,0xe1,0x23,0x3b,0x09,0xff,0xa9,0x03,0xa0,0x34,0xdd,0xe2,0x87,0xc0,0x23,0x7d,0xc5,0x94,0xf5,0x3a,0xbc,0x87,0x84,0x48,0x69,0xdc,0xe9,0x20,0x02,},\"\\x97\\x5e\\xce\\x4e\\x81\\xf0\\x01\\x5f\\x5a\\xc3\\x04\\x46\\x09\\xd0\\xac\\x3a\\x8d\\xf9\\x14\\x5b\\x50\\xc4\\x28\\x89\\xdd\\x31\\x2f\\x56\\x3c\\xf6\\x12\\x6e\\x36\\xff\\xfa\\xf2\\x1e\\xb6\\xb8\\x4f\\xbd\\xa1\\x5a\\xa8\\x5c\\x66\\x14\\x5f\\x75\\x41\\xe5\\xb4\\x1a\\x8e\\x81\\x70\\x0b\\xe3\\x56\\x22\\x4f\\xc1\\x09\\x32\\x7a\\x69\\x19\\x66\\x56\\x73\\x53\\x4f\\x5c\\x8a\\x4a\\x00\\x17\\x50\\xb1\\x99\\xdb\\xfd\\x63\\x06\\x91\\xaf\\x55\\x2d\\x4d\\x26\\xa9\\xd9\\xaf\\xb3\\x3a\\x16\\xaf\\x39\\x11\\x54\\x12\\x4b\\x53\\x42\\x6c\\x9f\\x69\\x50\\x57\\xb1\\x81\\x4f\\xd6\\xd3\\x10\\x29\\x8a\\xf6\\xc8\\x30\\x68\\x6a\\x4a\\x00\\x7a\\x14\\xe0\\x05\\x7b\\x72\\xfb\\xad\\x5b\\x80\\x3a\\xd3\\x53\\xd1\\xc3\\xfd\\xb8\\x90\\xa9\\xc8\\x18\\x08\\xe8\\x9f\\x22\\x91\\x87\\xbc\\xb4\\x4f\\xee\\x16\\xa4\\xeb\\xca\\xd5\\xeb\\xa4\\x59\\xb0\\x28\\x27\\x2a\\x56\\x2c\\x05\\x07\\x9f\\xa7\\xae\\x3e\\xca\\xe8\\x04\\xa9\\xe8\\xc4\\xf3\\xf3\\x15\\x81\\x3c\\x5e\\xe0\\x84\\x1b\\xbc\\xcf\\xe4\\xa9\\x56\\x23\\xb5\\x17\\xa4\\xb4\\x2b\\x2c\\x6d\\x97\\xa3\\xbf\\x26\\xac\\xdb\\xe2\\xe9\\x79\\x63\\x3f\\x02\\xaa\\xc4\\x66\\x52\\x6a\\x3e\\xbb\\x14\\xda\\x19\\xbc\\x95\\xf2\\xc3\\xfd\\xf6\\xbd\\xb0\\x8b\\xe8\\xbd\\xe9\\x7a\\x86\\x4c\\x90\\x7e\\x91\\x8c\\x67\\x9a\\xb7\\x26\\xf8\\x01\\x77\\x14\\x58\\x40\\x21\\x6b\\x9d\\xc3\\xf9\\x81\\xef\\x17\\x87\\x4f\\x08\\xb2\\xfc\\x66\\x11\\xa6\\x34\\x6c\\x3d\\xa6\\xa5\\x5e\\xcf\\xa7\\x53\\xc9\\x91\\x9f\\x4f\\x19\\xe3\\xc7\\x90\\x93\\xbf\\xd7\\x8f\\x86\\x15\\x98\\xe4\\x66\\x6e\\x1c\\xab\\x68\\x8e\\x46\\x04\\xd4\\x6c\\x9c\\x58\\x2e\\xad\\xb9\\x2c\\x98\\x8f\\x47\\x8d\\x16\\x0f\\x5a\\x15\\x18\\x2b\\x33\\x40\\x20\\x17\\x97\\xd0\\xb9\\x55\\x28\\x2e\\x4a\\x21\\x7b\\x50\\xb1\\x4b\\x10\\xc9\\xf4\\x90\\x67\\xea\\x3e\\x84\\xe5\\x27\\x4d\\xca\\xec\\x74\\x47\\x4c\\x57\\x07\\xc2\\x8b\\xba\\x0d\\xb8\\xcd\\xe3\\xe8\\x38\\xd7\\x31\\x3c\\x17\\x1b\\x85\\xff\\x2b\\x9a\\x3d\\x2b\\x16\\x7e\\x90\\x61\\xf8\\x4d\\xf3\\xb1\\x3b\\xdd\\x08\\xb2\\xd5\\x01\\xe5\\x37\\x92\\xd6\\x80\\x54\\xd0\\x48\\xab\\xfe\\x3b\\xce\\x98\\xd9\\x78\\x25\\x6f\\x2f\\xd2\\xc6\\xc4\\xe7\\x6f\\x39\\x68\\x8c\\xcc\\xf0\\xfe\\x14\\x9a\\xf9\\xd3\\x47\\xe7\\xb0\\x40\\xef\\x24\\x1d\\xd5\\xa5\\x3e\\xaa\\x5e\\xab\\x35\\xa1\\x8c\\x68\\xc7\\x54\\xa0\\x6b\\x03\\x39\\x9b\\xbe\\x56\\xa2\\x52\\x68\\xc8\\x29\\xa5\\xba\\x82\\xb2\\x81\\x92\\x04\\x1d\\x3b\\xd2\\x44\\xeb\\x08\\xbf\\x78\\xe7\\x6d\\xef\\x87\\xcd\\x09\\xf3\\x2b\\xea\\xc9\\xbb\\x63\\x98\\x23\\xb3\\x69\\x67\\xa5\\x74\\xd8\\x96\\x0d\\x1b\\xd0\\x34\\x35\\x67\\x9d\\x93\\xed\\xdc\\x55\\x80\\x63\\xc5\\x40\\xb9\\xc2\\xf6\\x09\\xfe\\xd2\\xe2\\xe3\\x57\\x6d\\x19\\xe6\\x20\\x9e\\xab\\x46\\x6c\\x20\\x67\\x91\\xc3\\xaa\\x19\\x96\\x23\\xfb\\xae\\x7d\\x34\\x97\\xe8\\x0f\\xdd\\x3f\\xcb\\xaf\\x5b\\x89\\x11\\x0e\\xd7\\x22\\x44\\x23\\x4b\\xe8\\x5c\\xca\\x4b\\x27\\xa0\\x9b\\xb7\\x0a\\x26\\xec\\xe4\\xeb\\x8d\\xd9\\x70\\xa2\\x6e\\x5b\\x04\\x36\\x1f\\xa5\\x0e\\x90\\x38\\x0e\\xd6\\x5f\\x41\\x4c\\x1b\\xe9\\xf5\\x06\\x4f\\x71\\x42\\x91\\x16\\x26\\x7e\\xdd\\x69\\x76\\x42\\x2a\\xd9\\x2d\\xeb\\x2b\\x80\\x4a\\x92\\xe8\\x1c\\x9f\\x65\\x22\\xa0\\xf3\\xb5\\xd8\\xad\\x36\\xb4\\xf8\\x7d\\xb5\\x16\\xa2\\x28\\x73\\xe6\\xf2\\x72\\x84\\xf2\\xca\\x36\\x0a\\x2f\\x40\\xff\\x3d\\x8e\\x23\\xde\\xc8\\xef\\x8a\\x17\\xa4\\x3a\\xcb\\xb6\\x12\\x71\\xa7\\x27\\xcb\\x86\\x90\\xd2\\x9b\\xb8\\x20\\x16\\x73\\x6b\\x31\\x02\\x62\\x01\\xdd\\x3d\\x38\\x8d\\x2c\\x64\\x3a\\x73\\xcf\\xbd\\x0a\\x94\\xe2\\x05\\x51\\xfb\\x5f\\x8e\\x1f\\xfc\\x39\\x74\\x12\\x72\\xaa\\x23\\x08\\xdc\\x8d\\x21\\x33\\xa3\\xfa\\x9c\\xf1\\x09\\x79\\x6d\\x69\\xd2\\xcc\\x8a\\xdd\\xc4\\x4a\\xe2\\x52\\x77\\x81\\xee\\x99\\x3a\\xf2\\xa6\\x37\\xa8\\x72\\xf0\\x2a\\xff\\x47\\x4a\\x70\\x73\\xf2\\x9d\\x9c\\x89\\x50\\x77\\x01\\xfe\\xcb\\xbf\\xd5\\x10\\x13\\x53\\x53\\x7e\\xba\\x17\\xc2\\x96\\x69\\xda\\xc0\\x42\\x7e\\x38\\xe2\\x2d\\xfa\\xac\\x91\\xfc\\x20\\xd9\\xe3\\xfe\\xe7\\x91\\xf4\\x62\\xa8\\x63\\xbb\\x19\\x08\\xfb\\x1e\\x42\\x04\\xb6\\x88\\x80\\x31\\x4d\\xda\\xca\\xaa\\x35\\xa1\\x7a\\xf5\\xf5\\x7a\\x39\\x9f\\x19\\x31\\xe7\\x8f\\x5a\\x37\\x45\\x4f\\xd3\\x8c\\x57\\xa6\\x8e\\x8d\\x36\\x78\\x48\\xa9\\x73\\x45\\x18\\x9c\\x70\\x07\\x7f\\xd1\\xaa\\x07\\x54\\xe7\\x03\\xe3\\x52\\x61\\x80\\x63\\xb9\\xe3\\xfa\\xf3\\xb1\\x4b\\x5f\\x0b\\x27\\x11\\x36\\x33\\xc5\\xd1\\x73\\x63\\x74\\x1e\\x96\\xa6\\x7e\\x81\\x64\\x01\\xe8\\x09\\x8c\\x17\\xbf\\xfe\\x9c\\x6f\\x35\\x87\\x64\\x6f\\x40\\xe9\\xfd\\xb6\\x81\\x9f\\xd2\\x2a\\x74\\x3a\\x7a\\x6e\\x10\\xfe\\xba\\x11\"},\n{{0xcd,0xa4,0xba,0x93,0x94,0x0a,0xa0,0xc0,0xc3,0x15,0x0b,0x39,0x29,0xb9,0x5e,0xe7,0x76,0x9c,0xe4,0x3f,0xd9,0x8e,0xca,0xff,0x9c,0x4a,0x50,0x9e,0x73,0x6d,0x5c,0x8e,},{0xf4,0xc7,0xa2,0x5f,0x1a,0x74,0x3d,0xaf,0x41,0x41,0x7e,0x47,0xe0,0x27,0x53,0x7f,0x24,0xf4,0x81,0xbd,0x1a,0x75,0xe6,0xb1,0xd3,0x3e,0xc4,0xc8,0x2c,0x55,0xa2,0xd3,},{0x31,0x04,0x8d,0x33,0x4a,0xf0,0x5a,0x4f,0x27,0x5f,0xf8,0x27,0x54,0x4e,0xa2,0x96,0xa4,0xa7,0x75,0xfa,0x59,0xef,0xa0,0x00,0xc5,0x76,0x13,0xfa,0x6e,0x5c,0x49,0x3c,0x3a,0x9b,0x79,0xe8,0xce,0x56,0xe7,0x22,0x5b,0x0f,0xa3,0x26,0x20,0x4f,0x03,0x36,0xc2,0x13,0x53,0x5a,0xe5,0x89,0x17,0x7a,0x8e,0xae,0xdb,0x6d,0xf8,0xb2,0x02,0x03,},\"\\x3a\\x1d\\x66\\x8c\\x66\\x88\\x41\\x48\\x96\\xa7\\x69\\x7f\\x3c\\x2e\\x43\\x10\\x98\\xed\\xfc\\x45\\x7e\\x04\\xd2\\xda\\x86\\x95\\x68\\xad\\x5b\\x33\\x10\\xe5\\x9e\\x4c\\x72\\x7c\\x90\\x3c\\xbf\\x18\\x17\\x40\\x88\\x02\\x31\\x9a\\x8c\\x23\\x1b\\x58\\x02\\x3d\\xfa\\xe4\\x94\\xc0\\x13\\xaf\\x0f\\xdb\\x78\\xc9\\x1d\\x5b\\x45\\x7f\\x8c\\x47\\xa3\\xdc\\x31\\xd8\\xc8\\x59\\x4a\\xa0\\x8f\\x14\\x62\\x03\\xfa\\x2c\\x28\\xb3\\xdd\\x79\\x6a\\x11\\xa9\\x7a\\xde\\xde\\x6a\\x7a\\x70\\x9b\\x5a\\x19\\x18\\xef\\x1b\\xea\\x83\\x53\\x3c\\x78\\x34\\x73\\x70\\x33\\x56\\xf5\\xbe\\xea\\x7f\\xd1\\x8a\\xc4\\x4e\\xc6\\x89\\x04\\x95\\xed\\x17\\x0d\\x03\\xf1\\x5b\\x41\\x86\\x08\\xa7\\xd9\\xef\\xd5\\x2f\\xa1\\x09\\x18\\x63\\x80\\x51\\xc4\\x48\\xd9\\x8d\\x57\\x24\\xf5\\x67\\xc8\\xc6\\x7f\\xd5\\xb6\\xec\\x8c\\x3d\\x63\\x60\\x08\\xb9\\xba\\xe5\\xe8\\xb1\\xe9\\x84\\xf8\\xff\\xb8\\xb6\\x4b\\xee\\xbd\\x63\\x45\\xa1\\x05\\xc1\\xc1\\x08\\x31\\x32\\xfd\\x45\\x08\\xd6\\xac\\x0d\\x4e\\x91\\x45\\x50\\x12\\x10\\xe5\\x17\\xd9\\xb2\\x24\\x78\\xe2\\x15\\xb6\\x02\\x59\\x9f\\x80\\x37\\x62\\xdc\\xd5\\xa4\\x09\\xb3\\x46\\x0e\\x7f\\x34\\x0f\\x47\\xef\\x77\\x28\\x1a\\xd2\\x38\\x3d\\xe0\\x8c\\x5b\\x80\\x95\\x38\\xaa\\xec\\x92\\x2b\\xfc\\xa0\\xd6\\x75\\x2f\\x14\\x79\\x72\\x64\\x6d\\x0a\\x8d\\x83\\x40\\x77\\x2c\\x87\\x1d\\x3b\\x34\\xab\\xc0\\x60\\x37\\xde\\x3a\\xb4\\xe3\\x71\\x29\\x86\\x5d\\x5b\\xa7\\x0b\\x6f\\x3c\\xc9\\xa0\\x59\\xef\\xb7\\xdd\\xdc\\x38\\x82\\xf4\\xfc\\xfe\\x13\\xf4\\x48\\xc9\\xbc\\x66\\x48\\x88\\x58\\x96\\x03\\xba\\x98\\x68\\x3a\\x93\\xb4\\xb3\\xb1\\x01\\x49\\x92\\xa5\\x5c\\x8e\\x4e\\xa1\\xba\\xf9\\xcc\\x00\\xd1\\xba\\xdf\\xf5\\xfd\\x7f\\x5d\\xa5\\xe3\\x07\\xfb\\xd1\\xb4\\xc9\\x84\\xe0\\xfa\\x0e\\xde\\xc5\\xd3\\x0b\\xfe\\xf5\\xf4\\x77\\x30\\x12\\x63\\xb5\\xd7\\x52\\x00\\x1b\\x85\\xdd\\x52\\xdf\\x3b\\x4a\\x7a\\xc2\\x3b\\x93\\x0a\\x91\\xc0\\xa4\\x57\\x65\\xa6\\x64\\x88\\xd8\\xeb\\x59\\x01\\x85\\x70\\x60\\x06\\x7b\\x82\\x37\\x81\\x88\\x54\\x92\\x88\\xdd\\xc6\\x18\\x31\\xe5\\xb6\\x84\\x1b\\x34\\x4c\\xae\\x22\\x50\\x04\\x22\\x19\\xcf\\xb4\\xac\\xe0\\x23\\xe6\\x91\\xf9\\xe4\\x8d\\x00\\x6e\\x9a\\x07\\xc6\\x7d\\x24\\x68\\xf9\\x35\\x93\\xb4\\xaf\\xc1\\x61\\xc0\\x76\\x8b\\x6c\\xeb\\x74\\x4c\\x24\\xc9\\x23\\xda\\x34\\xaf\\x3d\\x5e\\xd5\\x77\\xcc\\x7f\\x85\\xd4\\x91\\x56\\x0f\\x4c\\x0b\\xcb\\xcd\\x1d\\x5e\\x34\\x21\\xbd\\x1c\\xcf\\xaf\\xb3\\x73\\xd6\\x51\\xbd\\x61\\xed\\x71\\xc0\\x9e\\x99\\xf6\\x12\\x00\\x17\\x04\\xd0\\xc6\\x30\\xd8\\x54\\x7b\\xd9\\x70\\xb6\\x6e\\x7f\\x5c\\xe7\\xa0\\x14\\xe0\\xff\\x5a\\x33\\x7d\\xc5\\xc5\\x6a\\x99\\xf1\\x31\\xb9\\x12\\x91\\x40\\xee\\xea\\x39\\x39\\x7c\\x48\\xca\\xa9\\xa8\\x08\\x6f\\x9f\\xd9\\x91\\x50\\xbe\\x7e\\xf8\\x7b\\x6d\\x4b\\x94\\xb1\\xbd\\x52\\x87\\x8b\\xf3\\xbb\\xfc\\xce\\xac\\xc2\\xcc\\x45\\xe8\\x97\\x1c\\x3a\\x4d\\x4a\\x3e\\xb8\\x6a\\xf9\\x87\\x4d\\x4f\\xa5\\xe7\\xca\\xa7\\xf4\\x5d\\x15\\x53\\xff\\xbb\\x41\\x64\\x5b\\xf0\\xf5\\xe9\\xb2\\x97\\x72\\xe3\\xdc\\x08\\x1b\\x25\\xb5\\x2e\\x1c\\xb7\\xe2\\x16\\x74\\x83\\xd5\\x4f\\xba\\x69\\x0d\\xdb\\x29\\xd5\\x46\\x2d\\x2a\\x27\\xa3\\x5d\\x85\\xf0\\x07\\xad\\xed\\xe2\\xa3\\xdd\\x72\\x81\\xf6\\x54\\x33\\x6a\\xfa\\xfb\\x73\\x70\\x78\\x2b\\x29\\xca\\xd6\\x43\\xd9\\xd9\\xdb\\x2f\\x05\\xf2\\x81\\xb5\\x3e\\x13\\x3e\\xc3\\x0e\\xec\\x09\\xfb\\x0d\\x06\\x1b\\x74\\x58\\x1a\\x2b\\xd2\\x79\\x0b\\x13\\x73\\x91\\xf1\\x93\\x28\\x88\\x0f\\x64\\xc5\\x3b\\xe7\\x00\\xd0\\xfa\\xdd\\xb7\\x0d\\xc1\\x65\\xd2\\xd6\\x2e\\x67\\x1e\\xb9\\x44\\x9a\\x2e\\x6e\\x9d\\xf2\\xc1\\x6d\\x8f\\x49\\xfa\\x4b\\x5b\\x84\\x30\\x9f\\x73\\x35\\x13\\x3d\\xbe\\x87\\x2c\\x5a\\x8f\\xdc\\xfb\\xc4\\x98\\x0a\\xbf\\xb3\\xc9\\x59\\x7d\\x5d\\x66\\x7a\\xd2\\xf6\\x88\\xc7\\xab\\x24\\xc9\\xe4\\x40\\x29\\x8d\\x72\\xb2\\x8b\\x0f\\xcd\\xe9\\xc6\\xf0\\x71\\xbc\\xcc\\x93\\xe8\\xdd\\xbb\\xa7\\xb6\\x0a\\x0b\\x54\\x4a\\x2e\\x06\\xc3\\x9c\\x67\\x23\\xd4\\xf7\\xdc\\x18\\x5c\\x21\\x13\\x5f\\xd1\\x3a\\x72\\x77\\x0b\\x97\\x61\\x19\\xe4\\x9a\\x1f\\x81\\xed\\x47\\x6b\\xe0\\x7c\\x44\\x3d\\xe0\\xb0\\xee\\x76\\xfb\\xd9\\x19\\x38\\x93\\x28\\xb3\\xeb\\x86\\x07\\xbc\\x2f\\xe3\\x8f\\x85\\x74\\x5e\\x28\\xad\\xb7\\x48\\x2b\\x70\\x1c\\xcc\\x66\\x90\\xe4\\xae\\x5a\\x93\\x32\\xea\\x44\\x61\\x31\\x79\\x38\\x7d\\xc6\\xfc\\x47\\xc1\\xd1\\xec\\x36\\x60\\x35\\xe9\\x91\\xe1\\x40\\x43\\x23\\xbd\\xbb\\xf5\\x35\\xf1\\xc3\\x3c\\xf5\\x7b\\x67\\x23\\xf1\\x3c\\xa6\\xca\\x32\\x9e\\x2a\\xaa\\x4b\\x46\\xb4\\x26\\x07\\x33\\x99\\x06\\xc7\\xef\\x49\\xb3\\x2d\\xb8\\x2c\\xdf\\x6a\\x87\\xad\"},\n{{0x21,0x7e,0xcd,0x6a,0x7f,0xcc,0x98,0x71,0x92,0x10,0xc3,0x4c,0xc2,0xe1,0x4f,0x5e,0x2d,0x6b,0x5a,0x22,0xf2,0x68,0xc1,0x4b,0xc4,0xd8,0xa7,0xf2,0x81,0x72,0x00,0xc3,},{0xd5,0x91,0x91,0xce,0x28,0x2d,0x72,0xfe,0x3a,0xc4,0x58,0x78,0xe2,0x4b,0xb2,0xf2,0x8c,0x40,0x9b,0xa0,0x5d,0x76,0xce,0x9b,0xcf,0x22,0xf5,0x0b,0x0c,0x77,0x86,0x75,},{0xa0,0xb1,0x69,0xe8,0xe9,0xce,0x55,0x75,0x55,0xe0,0x33,0x4a,0x0d,0xe7,0x43,0x8e,0x55,0x36,0x75,0x48,0x9e,0xa4,0xba,0x9c,0xc6,0x3a,0x23,0x4d,0x00,0xde,0xd8,0xab,0x69,0x67,0xa3,0xbe,0x90,0xef,0x69,0xe0,0x76,0xdb,0x9e,0xa3,0xd5,0xca,0x23,0xb3,0x24,0x8d,0xd2,0x59,0x91,0xee,0x1f,0x4d,0x80,0x62,0x0b,0xf4,0xdb,0x43,0x8f,0x0e,},\"\\x9b\\x53\\x37\\xe7\\x8f\\xb3\\x82\\xf2\\x2e\\xa6\\x0e\\x03\\xc0\\xbf\\x3e\\xe4\\x70\\x0b\\x69\\x78\\xa9\\x1e\\xe6\\xac\\xdf\\x6a\\x40\\x9e\\x49\\x18\\xd1\\x68\\x48\\x81\\xfa\\x1d\\x11\\x8c\\x08\\xc9\\xf6\\xf2\\xca\\x0c\\xab\\x56\\x74\\x02\\xc9\\x50\\x10\\xe7\\xab\\xdf\\xe8\\x48\\xae\\x79\\xba\\x24\\x9a\\xdc\\xb9\\x6e\\xae\\x1d\\xfa\\x08\\x43\\x95\\x21\\x39\\xcf\\x49\\xb5\\x88\\x64\\x78\\x95\\x69\\x1a\\x2e\\x98\\x80\\x46\\x6b\\x7e\\x77\\xe5\\x4f\\x6f\\x60\\x81\\x5e\\xbf\\xd5\\xe5\\x74\\x8f\\x41\\x3c\\x0e\\x15\\xf9\\xd5\\x76\\x79\\x9b\\xcf\\x31\\x28\\x47\\x10\\x63\\x6f\\x6e\\x9d\\xc7\\x87\\x85\\x00\\x79\\x6e\\xed\\x80\\xc8\\xaf\\x4b\\xe2\\x96\\x19\\x52\\xea\\x80\\xbb\\xed\\x14\\x04\\xbd\\x5d\\xae\\x9e\\x6d\\x05\\xfd\\x4f\\x32\\x5a\\x3b\\x83\\xcd\\x45\\x28\\xa0\\x86\\x9c\\xef\\x84\\xb4\\xd3\\x0e\\x02\\xf9\\x41\\xd7\\x49\\xa8\\xda\\xc9\\x7b\\xb3\\xfa\\x83\\x9d\\x25\\x73\\x9b\\x97\\xec\\x37\\x45\\x36\\xbd\\xea\\x50\\x04\\x84\\xa9\\x41\\xdb\\x9f\\x22\\x99\\x97\\x06\\x58\\xd4\\x11\\x48\\x29\\x5c\\xa0\\x84\\x6c\\xa2\\x36\\x62\\x38\\xb6\\x20\\x1a\\x48\\xb3\\xe4\\x47\\xed\\xbe\\xa7\\xa4\\xc8\\xf7\\x10\\x20\\x14\\x27\\x69\\xe1\\x5f\\xa7\\x2a\\xe5\\xf2\\x87\\x14\\x0b\\xc5\\x95\\x3b\\x8a\\x9a\\x24\\x2d\\x20\\x5f\\xc0\\x19\\x09\\x1f\\x2a\\xbe\\xd0\\xfd\\xa4\\x7f\\x52\\xd5\\x9a\\x02\\x04\\xce\\x74\\x01\\xc1\\x82\\x9b\\x58\\x57\\xb9\\xa0\\x91\\x6f\\xce\\xbe\\x2e\\xef\\x99\\x1c\\x41\\x3a\\xcd\\x71\\xb1\\x8d\\x85\\x90\\xd6\\xb6\\xd0\\xfb\\x39\\x94\\x30\\x26\\x78\\xc2\\x9f\\x2b\\x6a\\x53\\x02\\x3f\\x91\\x87\\xe4\\x6c\\x36\\x79\\x0b\\xce\\x73\\x87\\x3c\\x54\\x5a\\x72\\xbe\\xb5\\x53\\x29\\x4b\\x1e\\xe5\\xd0\\xd0\\xdf\\xf2\\x39\\xe2\\x8e\\xc6\\x3b\\x01\\xe4\\xd8\\xfe\\x0d\\x6e\\x69\\xb1\\x60\\x1e\\xfa\\x24\\x11\\xf0\\xc0\\x60\\x1e\\x7e\\x4f\\x65\\xc9\\x84\\xf8\\x29\\xf0\\xdc\\x2a\\x84\\x21\\xe7\\xf6\\x6d\\x93\\x30\\x53\\x71\\x51\\xc7\\x24\\x3c\\xa5\\x24\\xd7\\xa5\\x47\\x35\\xc6\\xe3\\x44\\xf1\\xfc\\x93\\x8e\\xae\\xea\\x27\\x79\\xc9\\x40\\x89\\x1d\\x6d\\x01\\xaa\\x55\\xf4\\x0c\\xc1\\xad\\xba\\x12\\xe8\\xa6\\x7a\\xd9\\xa2\\x7f\\xe6\\x3f\\xb4\\xf3\\x8d\\xc0\\xf0\\x18\\x41\\x92\\x57\\x18\\x42\\x72\\x55\\xbd\\x66\\x5d\\x5e\\xb3\\xbc\\x86\\x98\\x96\\xdb\\x86\\x25\\x20\\x4a\\xd4\\xb0\\x2f\\x5a\\x22\\xaa\\xee\\xad\\x6e\\x30\\x04\\x71\\xfe\\xa6\\x1d\\xbb\\x1b\\x55\\xc0\\x71\\x36\\x5c\\x58\\xb1\\x51\\x1f\\x38\\xb0\\x9a\\x46\\x71\\xbd\\x66\\xb3\\xfe\\xdd\\xa9\\xc8\\x7e\\x43\\xd1\\xeb\\xf3\\x01\\x76\\x4e\\x18\\xfc\\x0c\\xf1\\x6b\\x2d\\x2d\\x67\\xed\\x23\\x9b\\x39\\x3a\\xc7\\x19\\x68\\xa9\\x03\\xc0\\x24\\x77\\xfb\\x2d\\xf9\\xef\\x01\\xdb\\xfc\\x31\\x67\\xde\\x72\\x65\\xf8\\x91\\xe4\\xfd\\x24\\xd0\\x2c\\x63\\x10\\x35\\x19\\xb8\\x6a\\x70\\x85\\xb1\\xec\\x2f\\xb4\\x19\\xdb\\x76\\x6b\\xee\\x7a\\x64\\x1a\\x4b\\xe4\\x29\\x61\\x4a\\xb8\\x9f\\x20\\xf9\\x75\\x34\\x10\\x72\\xbf\\x04\\x41\\x9f\\xb6\\x9b\\xe7\\xa9\\xee\\x71\\xa5\\xb4\\x9a\\xf8\\x3e\\xd3\\x22\\xba\\xc6\\x8a\\x42\\x9f\\xf5\\xc5\\x20\\x67\\x73\\xbe\\x54\\x38\\xb6\\x5e\\x53\\xf6\\x09\\x72\\x9f\\x4f\\x6a\\x21\\xc1\\x33\\x39\\x11\\x26\\x4d\\x63\\x92\\x70\\x17\\xe8\\x13\\x6b\\x47\\x25\\xcd\\x1c\\xc9\\x64\\xe0\\x8c\\xa0\\x93\\x3a\\x56\\x1e\\x7e\\x3f\\x59\\x87\\x76\\x83\\x30\\xe2\\xe5\\x4f\\x8d\\x72\\x8f\\x59\\xed\\xfe\\x2c\\x91\\xc4\\xf9\\x9a\\xef\\x97\\xd1\\x85\\x59\\x19\\x5a\\x3d\\x8e\\xb3\\x15\\xdf\\xf9\\x6f\\xe2\\x76\\xda\\x71\\x37\\xef\\xf9\\x30\\x57\\xac\\x73\\x1e\\x06\\xa6\\x0a\\x58\\xbd\\x8a\\x9a\\xe8\\xc7\\xcb\\xaf\\xf0\\xcb\\x33\\x72\\xc6\\x8d\\xaa\\x17\\x5c\\x42\\x8d\\x52\\xf1\\x07\\x3a\\x38\\xbf\\x29\\x46\\x5d\\x2a\\x71\\x28\\xbb\\x40\\x07\\x40\\x06\\xed\\xcb\\x72\\x5a\\x83\\x1d\\x81\\x28\\x64\\xef\\x43\\xf3\\xb8\\x66\\x7c\\x9f\\xb7\\x10\\x93\\xa1\\x67\\x30\\x49\\xde\\xc0\\x5e\\x09\\x16\\x9d\\x86\\xfe\\xe9\\x2d\\xf2\\x86\\x00\\x8a\\xd9\\x90\\x65\\xa2\\x92\\x97\\x97\\xa9\\x13\\xd0\\x23\\x3f\\x4d\\x1a\\x95\\xa2\\x20\\xbd\\x91\\xc1\\x1d\\xd9\\xc4\\x56\\x85\\xdc\\xad\\x38\\x57\\x80\\xa0\\xc4\\x8b\\x9c\\x4a\\xd2\\xd6\\x63\\x03\\xe8\\xde\\x4a\\xf1\\xdb\\x3c\\x04\\xe4\\xa3\\xdd\\x42\\x19\\xfe\\x77\\x3f\\x83\\xa8\\x92\\x4b\\x0f\\xcb\\xff\\xfc\\xf2\\x64\\xab\\xce\\x32\\x83\\x29\\x24\\x03\\x6b\\xfa\\xbb\\xa6\\x54\\x6b\\x1d\\xf4\\xe3\\xf7\\x88\\xed\\x8a\\xd5\\xc2\\xcd\\x92\\xb2\\x64\\x1b\\x47\\x09\\x0a\\x10\\x3c\\xf5\\xbd\\xc4\\x6d\\x8b\\x21\\x43\\x17\\x47\\x57\\xda\\x80\\x1c\\x36\\x0a\\x7a\\xa1\\x07\\xfa\\xc6\\x54\\xb3\\x4c\\x86\\x0b\\xd5\\x4f\\x76\\xbb\\xf4\\x3c\\x48\\x47\\x8d\\xf4\\xfe\\x7a\\xa5\\x9c\\xf9\\x1d\"},\n{{0x08,0xd1,0xd0,0x6f,0x3e,0xc2,0x9e,0xb5,0x22,0x93,0x90,0x7b,0x70,0x5e,0xc5,0x6c,0x5a,0xb3,0x54,0xfb,0x78,0x67,0x37,0x73,0xae,0x61,0x25,0x30,0x94,0xb8,0x9e,0x82,},{0xc1,0xb9,0x9a,0x87,0xad,0x15,0xbd,0x46,0xf6,0xc8,0x48,0x45,0x2a,0xf0,0xfa,0x3c,0xcc,0xcb,0x5c,0xdf,0x6e,0x34,0x8d,0x81,0x6e,0x36,0xc5,0xd0,0xfc,0xa6,0x6e,0x66,},{0x0b,0x8e,0xdc,0xb8,0xb1,0x5a,0x8c,0xd0,0x74,0xc4,0x1d,0xc2,0xa1,0xba,0x29,0xd9,0x64,0x8d,0x6a,0xcb,0xdc,0x33,0x83,0x14,0x70,0x7e,0xca,0x6f,0xb4,0x71,0x4c,0x99,0x54,0x3b,0x49,0x07,0xb9,0xf8,0x5e,0x57,0xee,0xcf,0xfe,0x0f,0x7a,0x6b,0x70,0x73,0xa8,0x09,0x46,0xf8,0x08,0x75,0x53,0xf4,0x68,0x31,0x09,0x27,0x3a,0x60,0x4a,0x08,},\"\\x12\\x0b\\x35\\x57\\x3c\\x34\\x91\\x4b\\x37\\x30\\x51\\x88\\x0d\\xa2\\x7e\\xd2\\x41\\x37\\x7f\\x0e\\x78\\x97\\x2c\\x98\\xd0\\xfa\\xeb\\xaa\\x76\\x7e\\xb7\\xa7\\xc7\\xe7\\xc6\\xfc\\x34\\x05\\xa4\\x33\\x6e\\xf9\\x5b\\xc5\\xda\\x92\\x25\\xbb\\xd0\\x9e\\x9e\\x11\\xf2\\xa1\\xbf\\x14\\x2a\\xf4\\xe8\\xa0\\xf9\\x24\\xd3\\x23\\xdd\\x5a\\x49\\xdf\\xe5\\x84\\xf0\\x90\\x43\\x9c\\x08\\xe5\\x15\\x11\\x34\\x4d\\x47\\x0c\\x62\\x00\\xac\\x7e\\x7c\\xa1\\x50\\xd0\\x88\\xa9\\x1e\\x47\\xc4\\xc9\\xff\\x74\\xe3\\x8a\\x42\\xa3\\x32\\x15\\x5d\\x81\\x52\\xae\\x4a\\xbd\\x11\\x61\\xad\\xca\\x93\\x4c\\x23\\x4c\\xe4\\x60\\xaf\\x87\\x89\\xe5\\x3f\\x10\\x9d\\x7d\\x31\\xee\\xde\\x0a\\x90\\x9b\\xd1\\x93\\xfc\\x8d\\x3c\\x2c\\xfe\\xc1\\x0b\\x14\\x3c\\x31\\x47\\x67\\x11\\xbb\\xec\\x27\\xe1\\x96\\xa5\\x49\\x85\\xbc\\x34\\x71\\x67\\xac\\xd2\\x33\\x50\\x88\\x27\\xba\\xd3\\x6e\\x54\\x8c\\x88\\x06\\x42\\xb8\\x6a\\x28\\xc6\\xd3\\x40\\x4b\\x51\\x1d\\xa2\\x4f\\x11\\xdf\\xaf\\x6a\\x8f\\x46\\xdd\\xcb\\xc9\\xde\\x9e\\x39\\x15\\x97\\x66\\x9b\\xdd\\xfc\\xa6\\x56\\x0f\\x91\\xac\\xd3\\x45\\x9f\\x32\\x9b\\xb0\\x71\\xdd\\x80\\xda\\xdf\\x35\\xf0\\xe5\\x0d\\xf5\\xb1\\x0f\\x88\\xd2\\x67\\xac\\x9d\\x30\\x62\\x33\\x0d\\xd9\\x9a\\x6b\\xcf\\xa1\\x31\\x87\\xf4\\x5c\\x0c\\x21\\x4d\\xcd\\xe2\\xcd\\xf9\\xc3\\xba\\x4d\\x59\\xe6\\x33\\xa3\\x54\\xa4\\xe2\\x77\\xc6\\x77\\xbb\\xdf\\xa2\\x41\\x91\\x17\\x9c\\xbc\\xaf\\x05\\xa1\\x0d\\x40\\x78\\xd8\\xad\\xd9\\x3b\\xc9\\xed\\x8f\\x6c\\x6c\\x49\\x97\\x57\\x40\\x36\\x55\\x34\\x1f\\x90\\x4e\\x37\\xd9\\x27\\x75\\x0c\\x69\\x9c\\x26\\x9d\\xc9\\x0d\\xc2\\x6d\\x00\\x56\\x25\\xc3\\xf4\\x12\\x4b\\xff\\x66\\xfe\\xca\\x59\\xd4\\xab\\xff\\x41\\x72\\xba\\x3d\\xf4\\x5a\\x87\\x43\\x02\\x23\\x10\\x30\\xfa\\x78\\x33\\x84\\xf5\\x09\\x99\\xe3\\xc4\\xba\\xa5\\xea\\xdb\\x45\\x14\\x52\\xc8\\x88\\xb5\\x19\\x27\\x2e\\x90\\xf7\\x3c\\x68\\x72\\x76\\x8e\\x0d\\xe2\\x0e\\xe2\\xe5\\xf9\\x50\\x2f\\x35\\xe4\\x9f\\xec\\xc2\\x8b\\x75\\x20\\x18\\x87\\xfe\\xd2\\x81\\x8e\\xff\\x54\\x53\\x98\\x39\\x2f\\x5e\\x5b\\x68\\x76\\xbc\\x55\\x6a\\xc1\\x3a\\x19\\x03\\xad\\xa1\\xb9\\xd7\\x25\\xb0\\x4a\\x14\\x20\\x4b\\x59\\x9e\\xc3\\x3d\\x62\\xb7\\xdc\\xae\\xea\\x8c\\x52\\x87\\x7b\\x2c\\xfd\\xc3\\x55\\x8a\\x91\\xd2\\xc9\\x15\\x75\\x00\\xa3\\xbb\\x6d\\x45\\x2e\\x5e\\x2f\\xf0\\x93\\x29\\x4f\\xc4\\x33\\xcb\\xd6\\x34\\x65\\xbb\\x19\\x13\\x07\\xed\\x80\\x1a\\x15\\xb8\\x5d\\xc2\\xff\\x0b\\xb3\\x83\\x12\\xf8\\xb8\\x17\\xa4\\x36\\xd4\\x22\\xcf\\x46\\x07\\xc6\\x4e\\xe7\\x03\\x59\\x23\\xdb\\x6b\\x96\\xa3\\x89\\x99\\x10\\x14\\x9b\\x0d\\xa4\\xaa\\x3e\\x96\\x68\\x5d\\x71\\x63\\xaa\\xcf\\x9e\\x61\\x9d\\xc6\\x08\\x13\\xce\\x4f\\x34\\x4f\\x30\\x79\\xb4\\x3f\\x18\\x7f\\xa3\\x1b\\xda\\xcb\\x9a\\x1d\\x77\\x20\\xb9\\x39\\xd5\\xbd\\x24\\x1b\\x96\\xa1\\x77\\xd7\\xb7\\x76\\x8f\\xfe\\xbf\\x79\\x04\\x4c\\xd2\\x95\\x6d\\x6f\\x88\\xdb\\x1c\\x24\\x3a\\x10\\xfe\\xde\\x68\\x14\\x85\\x2c\\xf4\\x04\\xb2\\xcd\\xcf\\xa7\\x74\\x07\\x6d\\xc1\\x25\\xc7\\x0a\\x57\\xc6\\x90\\x7e\\x99\\xaf\\xe3\\x96\\x22\\xae\\x11\\xf5\\x57\\xe7\\xd3\\x4b\\x39\\xaa\\xaf\\x45\\xf8\\x34\\x05\\x8d\\x2f\\xe5\\xf1\\x5b\\x5e\\xb7\\x0a\\xc1\\x5a\\x90\\xa3\\xde\\x58\\x50\\xab\\x1d\\xcb\\x48\\xb0\\x6b\\x6c\\xca\\xa4\\xb4\\x2f\\x85\\x7e\\x71\\xec\\x00\\xb8\\xa3\\xd8\\x97\\x4b\\x0b\\xea\\x68\\xfa\\x0f\\x66\\x55\\x92\\x11\\x5b\\x4f\\xa5\\x55\\x72\\xcf\\x0b\\x07\\x38\\x64\\x1f\\xc8\\x68\\xd4\\xa2\\xe7\\x14\\xdb\\x3a\\xd7\\x21\\x9a\\x82\\x3d\\x54\\xb7\\xf7\\xc2\\x65\\x6b\\xa5\\xc5\\xee\\xbe\\x35\\x94\\xc7\\xdb\\x12\\x29\\x8c\\x16\\x25\\x1d\\x98\\x45\\xbf\\x2f\\x78\\x00\\xb4\\x19\\x0b\\x74\\x6e\\x21\\xb0\\xc1\\xa5\\xc4\\x7a\\x3d\\xf9\\xa0\\x59\\xce\\x09\\x56\\x67\\x4e\\xb7\\x03\\xde\\xcb\\x0a\\x00\\x45\\x43\\x7d\\xa4\\xda\\x10\\xf2\\x86\\xd7\\x20\\xd1\\xb9\\xdf\\x05\\xfb\\x24\\x41\\x5d\\x68\\xe0\\x65\\x57\\x0e\\x6b\\x31\\x50\\x31\\x42\\xd0\\x33\\x35\\xa8\\x07\\xbd\\xca\\x30\\x89\\x2e\\xdb\\x5f\\x55\\xf8\\x98\\x9d\\x9e\\x64\\x96\\x59\\xc0\\x74\\x4c\\x54\\x33\\xbf\\xb4\\xde\\xeb\\x11\\xc2\\x62\\x6a\\x86\\x50\\xe5\\x4d\\x4d\\x39\\x8b\\xa1\\x9b\\x64\\xf6\\x8b\\xed\\x06\\xd7\\xfc\\x40\\x8f\\x47\\x0a\\xc7\\x04\\xe2\\xac\\x92\\x2a\\xc1\\x41\\x1f\\xee\\x24\\x54\\x3e\\x56\\xf2\\xf5\\x0b\\x6b\\x08\\x95\\x3d\\xc5\\x6a\\x7a\\x75\\xed\\xae\\x43\\x0a\\x6d\\xf2\\x8a\\x22\\x7a\\xda\\xc9\\x1b\\xa2\\x6f\\x0e\\x19\\x85\\x95\\x32\\x77\\x39\\xcb\\xa3\\x03\\xe9\\xaa\\x39\\x3e\\xa6\\x61\\x8a\\x84\\xf8\\xf5\\x03\\xd0\\x05\\x6e\\xe8\\xd8\\x7e\\x37\\x96\\xe0\\x36\\xcc\\x51\\xcc\\xb7\\x91\\xde\\xb7\\x95\"},\n{{0xf0,0xc8,0x5c,0x76,0xb1,0x53,0x2e,0x89,0xae,0xa9,0x75,0x15,0x6d,0xdd,0xb1,0xd3,0xd0,0x66,0xf6,0x40,0x9f,0x84,0x1b,0xb4,0x41,0x09,0x22,0x72,0x5f,0x26,0x9d,0x86,},{0xfd,0x75,0xfc,0x75,0xc3,0x6f,0x83,0x49,0x8d,0x8f,0x08,0x27,0xf0,0x1d,0x3b,0x45,0x7f,0x8b,0xc4,0xd9,0xdc,0x55,0xe4,0xa4,0x62,0x74,0xdd,0xf0,0x03,0x4f,0xe1,0x6f,},{0x42,0x18,0xfe,0x4c,0x1d,0xce,0x79,0x5c,0xa9,0x2a,0x49,0xa6,0xf4,0x79,0x8e,0xb5,0x41,0x2d,0xc8,0x25,0x86,0x03,0x14,0xec,0x46,0x9f,0xed,0x45,0xde,0x3a,0x7b,0xf8,0xea,0x55,0xe8,0x53,0xa3,0x49,0x58,0x4b,0xd9,0x5a,0x82,0x6a,0x58,0x5a,0x50,0x3f,0xd5,0x0b,0xfe,0x4c,0x63,0x5e,0xf1,0x83,0xd0,0x73,0x01,0x36,0x7e,0x90,0x10,0x0a,},\"\\xae\\x2e\\xb0\\x18\\xd4\\x8d\\xbd\\x4f\\x21\\x0b\\x16\\x77\\x8b\\x5b\\xd2\\xfd\\x14\\xc9\\x4e\\x6b\\xbf\\x2b\\x3f\\xf8\\x55\\x18\\xe5\\x60\\xab\\x8d\\x3e\\x72\\x20\\x1f\\x43\\x34\\x20\\xf0\\x0f\\x11\\xbc\\x78\\xe0\\xe9\\xf3\\x72\\x08\\x75\\xb2\\xe9\\xdc\\x11\\xe0\\x43\\x25\\xb8\\xb3\\xf0\\xd4\\x65\\xdd\\xab\\x21\\x51\\x1c\\x45\\x7d\\x6a\\xca\\xd8\\xf2\\xfd\\x5f\\xdc\\x0d\\x28\\x23\\xfe\\x6c\\xaa\\x66\\xa1\\x91\\xa3\\xb6\\x32\\x6b\\x32\\xa1\\x6b\\xef\\xd6\\x4d\\x15\\xb3\\x61\\xa4\\x15\\x13\\x64\\x1b\\xce\\xba\\x26\\xbf\\xe9\\x3b\\xdf\\x85\\x4a\\x4f\\x8f\\x8a\\x0b\\x29\\xf7\\xe2\\x82\\x62\\xe2\\xd6\\xe9\\x8a\\xa2\\x4a\\xc2\\x7f\\x6f\\x78\\x83\\xac\\x01\\xa7\\x4c\\x40\\xcc\\xe9\\x47\\xeb\\xac\\x70\\xe9\\xfe\\xf2\\xa1\\x6e\\x62\\x89\\xe4\\x68\\x95\\x0e\\x39\\x1e\\x9e\\x24\\xef\\x58\\xe8\\x8a\\x44\\x37\\x72\\x69\\xce\\xba\\xfe\\xd8\\x98\\x7d\\x22\\x0d\\xca\\xe2\\xd8\\xb1\\x26\\xb6\\xbf\\x81\\x21\\x67\\xd0\\x23\\xd9\\xba\\xac\\x95\\x0d\\x9d\\xb8\\xcf\\x52\\xde\\x63\\x06\\xbd\\x48\\x99\\x96\\x10\\xc0\\xa4\\x33\\xfa\\x9e\\x17\\x71\\xcb\\x83\\x2d\\x41\\x97\\xaa\\x34\\x0d\\xd0\\xcc\\xd0\\x74\\x4f\\xc6\\xb6\\x2f\\x90\\xbd\\x3e\\xbb\\x53\\x08\\xca\\xb5\\xf9\\x40\\xe2\\x91\\x64\\x23\\xcf\\x0f\\x3b\\xf0\\x80\\xc0\\x6a\\x94\\xf0\\x26\\x91\\x04\\x60\\xdd\\xa8\\x09\\x37\\x4e\\x64\\x57\\xf0\\x64\\xf1\\x78\\xe3\\x08\\xe7\\xa1\\xb5\\xaf\\x4d\\xef\\x31\\x90\\x07\\xd0\\x41\\x77\\x8c\\x3d\\x6a\\x41\\x9f\\x51\\xba\\xdf\\x87\\x66\\x38\\x79\\x30\\x2b\\x53\\xff\\x26\\x9d\\xf4\\x42\\xd0\\xe0\\x5c\\x95\\x8d\\x5b\\xaa\\xcc\\xee\\xd7\\xf5\\xf8\\xaf\\xc8\\x11\\xc1\\x89\\x00\\xee\\x3b\\x0f\\x61\\xe5\\xdc\\xcf\\xd5\\xda\\xc8\\x53\\x32\\xd3\\x2e\\xbb\\xa3\\x71\\xaa\\x2d\\x47\\xa6\\x06\\xf5\\x95\\x46\\xe4\\xbb\\xb6\\x05\\xa7\\x46\\x77\\xb1\\x9a\\x0f\\xe8\\xe9\\x5f\\x9f\\x77\\xc0\\xb8\\xb7\\x1d\\x07\\xe9\\x83\\x00\\x4d\\xc2\\xab\\x2c\\xb3\\x79\\x3a\\x32\\x3c\\x10\\x8d\\xfa\\x79\\x70\\xda\\x00\\xdb\\x19\\x86\\x74\\xbd\\x34\\xbf\\x73\\x10\\x76\\x7f\\x76\\xa2\\x24\\xe0\\x7b\\xdb\\xc6\\x2b\\x9d\\x07\\x8c\\xbc\\x75\\x36\\x7e\\x2e\\xba\\xa2\\xc5\\xd2\\x74\\xbf\\x34\\x27\\xf2\\xa0\\xcc\\x5d\\xbe\\xf0\\xaf\\x4e\\x63\\xad\\x88\\x9e\\x13\\x1b\\x12\\xbc\\x8c\\xa3\\x2d\\x82\\x7f\\x72\\x60\\xb0\\x44\\x9d\\x04\\x43\\xfa\\x28\\x84\\x40\\xef\\xd1\\x36\\x4e\\x3c\\x98\\x49\\x47\\x7e\\x73\\xee\\x0b\\xa4\\x24\\x0d\\x49\\x2a\\xf5\\xce\\x13\\xc3\\x45\\x61\\xb4\\x50\\x10\\xc1\\x09\\xd8\\x42\\xc1\\xfe\\xd1\\xbe\\x3f\\xa9\\xe1\\x84\\xaa\\xa1\\x40\\x64\\xf4\\x3f\\x6d\\xea\\x0b\\x65\\x9c\\x5b\\x97\\x89\\x3c\\xf2\\xa4\\x33\\xbc\\xfb\\x1d\\x2a\\x87\\xeb\\x56\\x4b\\xd9\\x09\\x2c\\x26\\x66\\x70\\x47\\x31\\xf8\\x3e\\x56\\x43\\x4b\\x2a\\x42\\x99\\x65\\x0c\\x70\\x60\\xf9\\xff\\x7e\\x8a\\xad\\xcb\\x45\\x93\\xf6\\x09\\x18\\x8d\\x8b\\x46\\x76\\x46\\xcf\\xe9\\x52\\x70\\x06\\x7a\\x1d\\x35\\xcd\\x75\\x9f\\xe5\\x81\\xaf\\x4e\\x62\\x60\\x2c\\x02\\xef\\x14\\x74\\x41\\x43\\xeb\\x42\\x4f\\x2d\\x9f\\x33\\xa6\\x02\\x88\\xc1\\xb2\\x5f\\x08\\xe4\\xb2\\xf5\\xfe\\xae\\x06\\xcb\\xcc\\x2b\\x20\\x52\\xbf\\x38\\x4e\\x1a\\x6f\\xcd\\x84\\x71\\xce\\x5e\\x56\\x58\\xd7\\x7f\\x40\\xc3\\x5c\\x41\\x5e\\x2a\\x9e\\x09\\xfb\\x58\\x3b\\xb7\\x47\\x12\\x58\\xe7\\xc8\\x06\\xf3\\xc2\\x18\\x22\\xdd\\x10\\xf5\\x6a\\x64\\x0c\\xdc\\x00\\x12\\x8d\\x3b\\xa5\\x56\\xba\\x51\\xdc\\xaa\\xb4\\x7c\\x3b\\xaf\\x9f\\x01\\x97\\xd3\\x66\\x3d\\xe8\\xd0\\x93\\xe8\\x31\\x73\\x32\\x5d\\xef\\x1e\\x83\\xa2\\xf5\\xf5\\xac\\xf1\\x2a\\xe0\\x9f\\x3c\\xe9\\x6c\\xd8\\x88\\x03\\x4d\\xcb\\xe6\\x14\\x7d\\xc5\\x99\\x83\\x62\\xa4\\xbc\\x40\\x6d\\x28\\x84\\x6a\\xb1\\x50\\x3c\\x17\\xc9\\x4f\\x9a\\xfd\\x90\\x3c\\x9a\\x58\\xe1\\xce\\xbb\\x4a\\xbb\\x4f\\xf6\\xf2\\xa4\\x10\\x24\\xe0\\x6d\\xca\\xad\\x14\\xf5\\xb7\\x0c\\x1b\\x26\\xe6\\x9f\\x96\\xec\\xf1\\x4b\\x8d\\xa3\\x1c\\x62\\x1f\\x9a\\xd4\\xe3\\x0a\\xeb\\x98\\x23\\x78\\x67\\x1f\\x7d\\x1f\\x2c\\x4b\\x57\\x2c\\x41\\xbb\\x88\\x30\\x84\\x0a\\xc5\\xdd\\xce\\xd8\\x81\\xf8\\xff\\xf2\\x10\\xc3\\xc7\\xf2\\x36\\xd8\\xc5\\xf2\\xcf\\xda\\xcd\\xa2\\x98\\x93\\x30\\x2f\\xde\\x15\\x28\\x2d\\xb5\\x40\\xcb\\x54\\x37\\x37\\xdd\\x77\\x85\\x25\\x69\\x22\\x1f\\xdd\\xcd\\xd6\\x8d\\x87\\xe2\\x40\\x21\\x79\\xd3\\xa5\\xa7\\x77\\x34\\xc2\\x75\\xa1\\xd5\\x60\\xa4\\x62\\xf4\\x03\\x18\\xbb\\x68\\x19\\x83\\x7d\\xa3\\xd3\\x05\\xeb\\x49\\xb3\\x86\\x50\\xef\\xdc\\x8f\\xe4\\x09\\xd4\\x0f\\xb9\\x4c\\xd5\\xdc\\x3e\\xb0\\x27\\x38\\xf3\\x88\\x52\\xf6\\x71\\xa0\\xc4\\x14\\x14\\xb7\\x6f\\xb4\\x36\\xf3\\x41\\x7b\\x8e\\xf3\\x00\\x92\\x1c\\x00\\x9e\\xbb\\xd7\\xcf\\x8e\\x11\"},\n{{0x18,0xe2,0x68,0xb1,0x5a,0x25,0x01,0xdd,0x4c,0x97,0x9d,0xc1,0x03,0xca,0x6a,0x84,0x22,0x16,0x13,0x2b,0x3b,0x50,0x81,0xd7,0x75,0xf8,0x86,0x40,0xf8,0x9c,0x80,0x41,},{0xb3,0x4e,0x19,0xc1,0xe2,0x08,0xfb,0x48,0xa8,0x85,0x07,0x9d,0x9f,0xbf,0x37,0xc7,0x4f,0x92,0x71,0x09,0x60,0xf8,0x32,0x15,0x4f,0xab,0x18,0x57,0x0c,0xfb,0x4c,0x1d,},{0xf2,0xdc,0xfc,0x06,0xef,0x1d,0x8e,0xcc,0xd8,0xe4,0x0b,0xdf,0x01,0x30,0x7d,0xd1,0x96,0x83,0xf2,0x14,0xd4,0xf0,0x84,0xe6,0xb6,0x93,0x4f,0x63,0x72,0x78,0x30,0x0d,0xbb,0x18,0x89,0xf2,0xd3,0x7f,0x53,0xb3,0xae,0xf2,0x6f,0xbb,0x3e,0x36,0xbd,0x75,0x98,0x5f,0xa7,0xc8,0xea,0x6d,0xdf,0xfa,0x72,0xc8,0xe4,0x06,0xf2,0x4b,0xb2,0x0e,},\"\\x42\\x4b\\xdc\\xf0\\xb2\\x56\\x00\\x14\\x39\\xd1\\x69\\x58\\xff\\xf6\\x48\\xcf\\x7a\\x86\\x04\\xaf\\x22\\xcf\\xa5\\xb4\\x43\\x31\\xb4\\xdc\\x35\\x6d\\xff\\x25\\xcc\\x05\\x63\\xda\\x9d\\x64\\x01\\x33\\xac\\xb7\\x0b\\x6a\\x11\\x76\\xc4\\x82\\xdb\\xc9\\x40\\x8c\\xd6\\x79\\x3d\\x56\\xbc\\x29\\xcc\\x40\\x88\\x23\\xd3\\x88\\xed\\x88\\xb2\\x4c\\xeb\\x66\\x21\\xdb\\xac\\x00\\x23\\xee\\x69\\xf7\\x6f\\x82\\x96\\xa7\\x39\\x52\\x11\\x68\\x5b\\x3c\\xea\\xa9\\x95\\xf0\\x35\\x5d\\x9a\\xad\\x3d\\x97\\x35\\x8f\\x4a\\x37\\x9e\\x59\\x20\\xec\\x54\\x5f\\x46\\x96\\x21\\xcf\\x76\\x8a\\xbf\\x55\\xd2\\xa5\\x54\\xc9\\x49\\xb0\\xed\\x70\\x18\\x7c\\x22\\x05\\xad\\x03\\x29\\x85\\xc9\\xb5\\xb2\\xe4\\xba\\x57\\xe0\\xb4\\xa4\\x7d\\x34\\x45\\x12\\xb8\\x4b\\xfe\\x9f\\x3a\\xa5\\x60\\xfe\\x6e\\xcf\\xc5\\xbd\\xf8\\xc3\\xb4\\x18\\x45\\x29\\x35\\x73\\xf8\\x1e\\xd3\\xb7\\x0e\\xdc\\x63\\xa3\\x0c\\x70\\xcd\\xa3\\xf4\\x55\\x90\\x13\\x13\\xf6\\xd2\\x3d\\xb3\\x09\\x47\\x8f\\x03\\xe3\\x4e\\x71\\x35\\x6d\\x83\\xfa\\x5d\\xb9\\x28\\x0c\\xc2\\xb4\\x36\\x9c\\x3d\\x24\\xdd\\x90\\x38\\xf2\\x47\\x59\\x6c\\x39\\x1e\\x48\\xb2\\xf3\\xf8\\x90\\xa1\\x41\\xca\\x1d\\x12\\x07\\x7c\\x69\\x34\\x47\\x35\\xa5\\x9b\\x1d\\xd4\\x07\\x6b\\x22\\xe1\\x61\\x89\\x99\\x1e\\x5f\\x1b\\xe4\\xfb\\x76\\x95\\xaf\\x90\\xeb\\xea\\x5d\\xf2\\x86\\x13\\x5c\\xec\\x2a\\x6e\\x99\\xaa\\x1d\\xda\\x32\\x8e\\x62\\xc0\\xdf\\xb6\\x37\\x42\\x20\\x2d\\x63\\x62\\x4d\\xcc\\x0c\\x5c\\xf1\\xa5\\xdf\\x79\\xe2\\x87\\x8d\\xbc\\x71\\xfa\\x96\\x57\\x66\\x01\\xaf\\x22\\x84\\x4f\\x54\\x57\\x33\\x12\\x6a\\xf7\\xd3\\x98\\x4c\\x3e\\xd2\\x52\\xe6\\xa8\\x76\\x44\\x5c\\x92\\x25\\x9f\\xbb\\x47\\x0a\\x10\\x56\\x9b\\x49\\xe5\\x79\\x1f\\xd0\\x18\\x2c\\xfe\\x1c\\x3f\\x88\\x29\\x7f\\xac\\xc8\\xc3\\x1a\\x53\\x32\\xf1\\xf4\\xeb\\x49\\x58\\xdb\\x13\\xb6\\xc0\\x79\\xaa\\x9c\\x94\\x94\\x87\\x26\\x34\\x03\\x19\\x0c\\x83\\xc1\\x1a\\x43\\x19\\x1f\\xfe\\xc6\\x02\\x3f\\xb3\\x4c\\xfa\\xb2\\x52\\x5b\\xeb\\x54\\x6c\\xf9\\x20\\x0a\\x96\\xf5\\x85\\x4b\\x2f\\x78\\xec\\xb2\\xd9\\xa5\\x3a\\xa9\\xd2\\x87\\xa9\\x0d\\x4d\\x41\\x0a\\x63\\xad\\xa0\\xe9\\x75\\xd3\\x04\\xd5\\x14\\x83\\x53\\x46\\x3f\\xa8\\x05\\xb4\\x80\\x5f\\xb4\\x68\\x7e\\xd8\\x85\\x7d\\xfc\\xe4\\xbc\\x6e\\x80\\x83\\x3c\\x8f\\x9a\\x79\\xcd\\x4f\\x02\\x9a\\x2d\\x80\\x2b\\xfd\\xc8\\x19\\xed\\x0c\\x0a\\xc8\\xf2\\x10\\x23\\x28\\x7f\\x2b\\x4b\\xaf\\xbc\\xc8\\x99\\x93\\xfe\\x46\\xd5\\x2a\\x9c\\x62\\x46\\xde\\xad\\x61\\x7d\\xf7\\x97\\xd4\\x8e\\xe9\\x85\\xf0\\xf0\\xdf\\x9a\\xa8\\x2e\\xa2\\x0e\\x0d\\x0d\\xb2\\x8a\\x25\\x4a\\x9a\\x25\\x3f\\x39\\xf9\\xcf\\x01\\xe3\\xdb\\x8f\\x3e\\xbc\\xf7\\xcb\\x97\\xce\\xc5\\x8c\\x4e\\xfe\\x03\\x12\\x69\\xb4\\xb3\\x7e\\x4c\\xbb\\x36\\x1f\\x73\\xab\\x4b\\x49\\x80\\xbd\\x90\\x08\\x49\\x53\\x88\\x44\\xc5\\x2c\\xb3\\xac\\x75\\x83\\xb8\\xf8\\x96\\x53\\xa0\\xde\\x65\\xa8\\xbe\\x91\\x58\\x2c\\x55\\x23\\x9c\\xb8\\xf5\\xd5\\x31\\x8a\\x88\\xd1\\x60\\xe1\\xc8\\x71\\xe5\\xea\\x7e\\x75\\xf5\\xa6\\x9c\\xba\\x85\\x38\\x22\\x1a\\xb4\\x2c\\xe2\\xa2\\xc4\\xd9\\xc3\\xb7\\xec\\x85\\x7f\\x23\\x0d\\x57\\x37\\x31\\x13\\x36\\x86\\xae\\x8a\\x7e\\xd6\\x40\\xf4\\x2f\\x31\\x02\\x94\\x89\\xe4\\xe6\\xaf\\x2b\\x3e\\xa4\\xc7\\x94\\x8e\\xd5\\x37\\xc0\\xc5\\x90\\x67\\x26\\xc2\\xb6\\x25\\xfd\\x5f\\x94\\x9e\\x3a\\x7c\\xf3\\xb6\\xe9\\x98\\xec\\x76\\x1d\\xd6\\xe2\\xb5\\x17\\x1a\\x68\\x74\\x97\\x52\\xe7\\x21\\xb7\\x88\\xc3\\x47\\x7f\\xa1\\x90\\xcd\\x6e\\xa8\\x1d\\x57\\x9d\\xce\\x64\\x62\\xd9\\xc6\\x62\\xad\\x89\\x62\\xe7\\x93\\x38\\x71\\x0c\\xc8\\xd2\\x73\\x8a\\x5f\\xb0\\x4a\\xdf\\xdb\\x3f\\x14\\x32\\xcf\\xd8\\x0e\\x2e\\x96\\x7d\\xa0\\x00\\xd8\\x3a\\x0f\\xa8\\x5a\\xba\\xe2\\x95\\x2f\\x3f\\x36\\x83\\xe2\\x54\\xd8\\x68\\xf4\\xbf\\x80\\x9e\\xb2\\xe3\\x00\\xe7\\xb2\\x09\\x73\\x4a\\x3c\\x89\\x4e\\x96\\x6b\\x16\\x08\\x8d\\x5e\\xd3\\x54\\xbf\\xfb\\xff\\xbb\\xf2\\xec\\x2b\\xe9\\x3a\\x32\\xa8\\xbe\\x5c\\xfa\\x18\\xfa\\x56\\x53\\x01\\x2e\\xda\\xe5\\xaf\\xd8\\x70\\x9c\\xa5\\x5c\\x0c\\xf2\\x3a\\x55\\x0d\\x34\\xca\\x0f\\x32\\xd8\\xf6\\x66\\xfb\\x47\\xa1\\x2f\\x2b\\x73\\x53\\xa4\\x0c\\x53\\x79\\xf7\\x53\\x66\\xc1\\x3f\\x4a\\xb9\\xf1\\x4c\\xf8\\x0a\\x94\\xe1\\xf1\\x3d\\x8b\\x09\\xb7\\x6f\\xd8\\xd1\\x4f\\xfa\\x53\\x8f\\x31\\xfd\\x8a\\xeb\\x49\\xd3\\x34\\x33\\xf4\\xdf\\x7c\\x2c\\xa6\\x73\\x99\\x57\\x9f\\xe9\\x90\\x78\\xaa\\x72\\x1d\\x6b\\x6f\\xc0\\xc5\\x0e\\x8a\\x91\\xfc\\x71\\xca\\x25\\xea\\xc1\\x37\\x6f\\xc6\\x71\\xbf\\x61\\x53\\xe7\\x20\\xb2\\x5c\\x7e\\x97\\xa3\\xd4\\xef\\x84\\x42\\xac\\x67\\xac\\xf5\\x8b\\x50\\x4b\\x67\\x15\\x8f\\x91\\x30\\x25\"},\n{{0x3c,0x39,0x3f,0x9d,0xf1,0xfb,0x0b,0x1e,0xec,0x09,0xb7,0xf2,0x70,0xb8,0x59,0x82,0xba,0x0f,0xd5,0xe4,0xb1,0x79,0x5e,0x1a,0x7f,0xa9,0x91,0x37,0xfe,0xe2,0x4d,0x7d,},{0x97,0x4f,0xe2,0x37,0x30,0xfc,0x17,0x94,0x56,0x70,0xfb,0xc1,0xf8,0x0b,0x93,0xf9,0x45,0x93,0xc8,0xd4,0x4b,0xc7,0x5d,0x18,0x9a,0x6b,0xbf,0xaa,0xba,0xf5,0xdb,0xd9,},{0x22,0x33,0x3e,0x56,0x41,0x0f,0xdc,0xbf,0x84,0xf6,0xa8,0xde,0x74,0x13,0x37,0x69,0x16,0x84,0x49,0x5b,0xa6,0x9e,0xff,0x59,0x6d,0xb9,0xc0,0x3a,0x28,0x12,0x10,0x88,0x1e,0x6c,0x91,0xef,0xa9,0x1b,0x21,0x83,0xc0,0xea,0xc9,0x16,0x15,0x28,0x17,0xa7,0x8c,0xa7,0x24,0xba,0x7c,0x8b,0x51,0xbb,0x4c,0xaa,0xde,0xa9,0xa3,0x41,0xeb,0x0e,},\"\\x54\\xd8\\xb8\\xd5\\xfa\\xc2\\x8c\\xff\\xa7\\x7a\\x09\\x16\\xd6\\x33\\x3c\\x16\\xed\\xbc\\x8b\\xb7\\x4a\\xa0\\x6e\\x56\\xdc\\x00\\xe4\\x7e\\x39\\x29\\xe4\\x08\\x64\\xb8\\x84\\x0d\\x91\\x20\\x79\\x59\\x7e\\xac\\xd8\\x1d\\xae\\x43\\xe2\\x78\\x5d\\xfc\\x68\\x9f\\x3e\\x85\\xf8\\xc6\\x65\\x81\\xef\\xc5\\xe8\\x53\\xd1\\xfa\\xaa\\xc7\\x44\\x40\\x0a\\xb0\\x8c\\xbd\\xb5\\xd1\\x61\\x46\\xfa\\x60\\xf9\\x99\\x05\\xed\\x84\\xfd\\x29\\x36\\xdd\\x73\\xf4\\xbc\\xa2\\x57\\x2b\\x7c\\xf5\\x16\\x05\\x60\\xff\\xaa\\x68\\xda\\x7a\\x67\\xe4\\x0e\\x08\\xa7\\xbb\\x7a\\xef\\xc4\\x04\\x3e\\xbe\\xd5\\xfe\\x80\\xa4\\x14\\x81\\x7e\\xdf\\x2c\\x63\\xf6\\x2f\\xac\\x0d\\x47\\x44\\x6e\\xd0\\xbb\\x58\\x40\\x58\\xf4\\x87\\x2f\\xec\\xff\\x62\\x15\\x59\\x31\\x1a\\x27\\x0a\\xea\\x37\\xa6\\x29\\x68\\x64\\xe8\\xd1\\x68\\xbf\\x1e\\x2f\\x55\\xcd\\x3b\\x27\\x6e\\xdf\\xa6\\x12\\xb5\\xd9\\xc3\\x36\\x2e\\x61\\x8b\\xe6\\xe8\\x2a\\x6e\\x5f\\x82\\x66\\x79\\x24\\xf3\\xd1\\xd3\\xdf\\x82\\x5f\\x9d\\x23\\xf4\\xd6\\x14\\x2d\\x31\\x00\\xdf\\xc7\\x0f\\x70\\x60\\x3a\\xbf\\x3f\\xda\\xda\\xca\\x69\\xef\\x6a\\x18\\xef\\x90\\x92\\xb3\\xc4\\x1e\\xc6\\x58\\xab\\x27\\x21\\x6f\\xc6\\x14\\x7a\\x08\\x0a\\xcd\\xa6\\x0a\\x84\\x19\\x84\\xee\\x83\\xf4\\x1a\\xc4\\x2a\\x80\\xea\\xac\\x91\\xff\\xfc\\x82\\x28\\x39\\x1e\\xf5\\x83\\xab\\x3e\\xdd\\xcf\\x87\\x65\\x23\\xc2\\x02\\x81\\x35\\x53\\x00\\xd8\\x6c\\x11\\xa4\\xe7\\xc1\\xad\\xe8\\xe5\\x05\\x60\\xf4\\x39\\x06\\xc9\\xbc\\x8c\\xa5\\xfb\\xf8\\x33\\x9f\\xbe\\xbd\\x02\\xe3\\x3e\\x85\\x18\\xbe\\xe5\\xe8\\x06\\xb8\\xc1\\x0f\\x82\\x77\\xf4\\x10\\x66\\x47\\x35\\xa2\\xbf\\x55\\x68\\x39\\x63\\x54\\x92\\x45\\x2e\\x6c\\xa0\\x79\\xde\\xb9\\x75\\x1c\\xfc\\x67\\x97\\xf4\\x9b\\xca\\x96\\x13\\xff\\x2e\\x7f\\xdd\\x36\\x46\\xf7\\xc5\\x23\\x6a\\x36\\xbd\\xf0\\x05\\x17\\x45\\xe5\\x95\\xdc\\x00\\x72\\xfd\\x66\\x51\\xd5\\x76\\x27\\xa6\\x00\\x4c\\x0f\\x0c\\xfa\\xe8\\x56\\xbb\\xc2\\x8a\\x12\\x31\\xcb\\x83\\x96\\x65\\xff\\x04\\x15\\x2e\\xc3\\x1c\\x00\\x7b\\x3e\\x2e\\xd0\\xa9\\x73\\xb2\\x4c\\x93\\x14\\x9c\\xe7\\x01\\xe6\\xfd\\x65\\x39\\x20\\x6a\\xe9\\x1b\\xec\\x4c\\xe6\\x5a\\x89\\xdb\\x26\\xc7\\xd3\\x8c\\xec\\xb8\\x91\\x9f\\x96\\xfb\\x6c\\xb8\\xf6\\xc1\\x93\\x9d\\x90\\xfb\\x3f\\x90\\xb8\\x87\\x78\\x9f\\x29\\x57\\x5a\\xb2\\x0e\\x0b\\x08\\xbc\\x35\\x81\\x53\\xd8\\xc0\\x35\\x21\\xdc\\x89\\x18\\x70\\xb5\\xf7\\xee\\xdc\\xc1\\xe6\\x2b\\xee\\x7d\\xa0\\x63\\xae\\x66\\xff\\x0a\\x4b\\x7d\\x98\\xd1\\xcb\\x75\\x8f\\x69\\x74\\x3c\\x3d\\xb3\\xae\\x2a\\x2c\\x9b\\xe1\\xbe\\x09\\x4f\\x17\\xcd\\x28\\xf9\\x2d\\x8c\\xcb\\xca\\x98\\x3c\\x74\\x9c\\x75\\xc6\\x10\\xf8\\x40\\x83\\x6e\\x2c\\x43\\x0c\\xcd\\xef\\xf0\\xaf\\xa5\\x44\\x44\\xf1\\x2b\\x4a\\x4f\\x00\\x2c\\x60\\x94\\x51\\x83\\x42\\x44\\xc0\\xc0\\x7d\\xf8\\xe1\\x22\\x02\\xa6\\x5f\\x94\\x44\\x7c\\xd4\\x90\\x3a\\xcb\\x60\\x6d\\x77\\x25\\xa8\\x6e\\x4a\\x23\\x43\\x98\\x4e\\x67\\x9c\\x4a\\xf1\\xb3\\x67\\x9c\\x75\\x5e\\xa5\\x0d\\x0a\\xbe\\x2f\\xcc\\x0c\\x1c\\x33\\x51\\xa9\\xee\\x19\\x6b\\x46\\x44\\xc4\\x24\\x22\\x2b\\xe9\\x9e\\x2f\\xb3\\x73\\xf9\\x64\\x1e\\x3f\\xae\\xbf\\xf4\\x31\\x70\\xeb\\x03\\xfb\\x8e\\xc4\\x55\\x7d\\x15\\x1a\\x55\\xfa\\xb6\\xc4\\x99\\xd4\\x44\\xc8\\x4b\\xe8\\x9f\\x24\\x47\\x68\\x2d\\xe4\\xe6\\xf6\\x35\\x34\\x75\\xef\\xcb\\x8f\\xc5\\x32\\x56\\x76\\x3a\\x94\\x8d\\xc7\\x5c\\x51\\x5f\\xa3\\x53\\x54\\x5d\\x0c\\xba\\xd2\\x9d\\xf5\\xe9\\xdb\\x5c\\xc4\\x57\\xed\\x30\\x86\\xcf\\xfb\\x3d\\x75\\xe8\\x46\\xc4\\xe8\\xd8\\x81\\x47\\xfc\\xd0\\xd8\\xaa\\x5a\\xba\\xb4\\x9b\\x5e\\x05\\xc3\\xd7\\xfe\\xef\\x63\\x79\\x43\\x34\\x7a\\xd3\\xf4\\x92\\xee\\x35\\x6e\\xf3\\x48\\x81\\xcf\\xd8\\x5a\\xbc\\xe8\\xa1\\x44\\xce\\x77\\x61\\xe2\\x84\\xe8\\xb8\\xcb\\x08\\x96\\x60\\x49\\x04\\x7a\\x99\\x6e\\x23\\x55\\x9f\\x77\\x6b\\x1a\\x9f\\x41\\xcb\\xa3\\x95\\x41\\x08\\x48\\x6e\\x29\\x27\\xbe\\xb6\\x43\\x3a\\x36\\xff\\x8b\\x2f\\x03\\xaa\\x74\\xb3\\xd2\\x09\\xc4\\x88\\xe0\\x77\\xf9\\x24\\xf2\\x31\\xe2\\x83\\x45\\x94\\x2c\\x7d\\xcc\\x2e\\x61\\xd7\\xc9\\xb5\\x22\\xb6\\x59\\xfc\\xb5\\x36\\x62\\xaf\\xf3\\x64\\x8f\\x66\\xda\\x3e\\x83\\xe5\\x9b\\x0d\\xaa\\x90\\xb9\\x4c\\x51\\x5d\\xad\\xab\\x10\\xd5\\xa8\\x39\\xcb\\x3a\\x2f\\x1d\\x3c\\xd0\\x92\\xde\\x55\\xd9\\x95\\x13\\x8c\\x3a\\xc0\\xb9\\x07\\xaf\\x15\\xac\\x63\\xec\\x18\\x74\\x11\\x43\\x27\\xe2\\x19\\x71\\x34\\x5e\\xf1\\x70\\x31\\xd5\\x26\\x17\\xe7\\x84\\xda\\x37\\x71\\x43\\x9b\\xe2\\xe8\\x41\\x48\\xbc\\xfe\\xa1\\x32\\xbd\\xe1\\x0e\\x6f\\xda\\x54\\x7d\\xcb\\xb1\\xc4\\xd8\\xf7\\x4d\\xdc\\xe1\\xfc\\xcf\\x82\\x13\\xe0\\xda\\x6e\\x97\\xb8\\x1f\\x75\"},\n{{0xf8,0x66,0x9c,0x88,0xf1,0x68,0x5b,0xbf,0x04,0x80,0xcc,0x92,0x21,0xac,0x2e,0xad,0x8f,0x55,0x1b,0xfa,0x87,0xec,0xba,0x2f,0xd4,0xdd,0xf3,0xba,0x34,0x76,0xeb,0xda,},{0x34,0x72,0x3f,0xb8,0xe2,0x53,0xad,0x9c,0x71,0xce,0xfd,0xe0,0x36,0x28,0xd2,0x04,0xe5,0x35,0xde,0x47,0x9e,0x10,0x48,0xe5,0x18,0x87,0x62,0xa1,0xf3,0x37,0xfe,0x5f,},{0x37,0x46,0xda,0x6c,0xd8,0xca,0x10,0x8b,0xee,0xf0,0x64,0x87,0xbe,0xe6,0x35,0x84,0xf8,0x12,0xc8,0xe0,0x69,0x5f,0xc8,0x63,0xb8,0x6e,0x5d,0xb1,0x32,0x38,0x0b,0x62,0xff,0x85,0x44,0xf6,0xf3,0x74,0x82,0x5b,0x0e,0x3e,0xa0,0x62,0x0e,0xf8,0x54,0xc1,0x33,0x11,0x14,0xd6,0x67,0xdf,0x1f,0x9e,0xa7,0x76,0xc3,0x96,0x38,0x70,0x29,0x0d,},\"\\x5b\\x49\\x41\\xbe\\xec\\x22\\x41\\xc9\\xfb\\x76\\xd8\\x48\\x4f\\x4f\\x3f\\x3a\\xb4\\xff\\xe8\\xec\\xc8\\xe7\\xae\\xc7\\x6d\\xe2\\xab\\x8c\\x36\\x85\\x84\\xd7\\x51\\xb0\\xd3\\xfe\\xb8\\xa1\\xdc\\x81\\x68\\xcd\\xc6\\x94\\x96\\x8f\\x66\\xb2\\xa0\\xb0\\x52\\xaf\\xbf\\x8b\\xe3\\xa7\\xd9\\x51\\x63\\xe9\\xda\\x91\\x41\\xc5\\x9c\\xa5\\x59\\x76\\xc2\\x92\\xc5\\xc7\\x4d\\x31\\x31\\x8d\\x6a\\x91\\xe7\\x81\\x7c\\x5a\\x8b\\x2f\\x81\\x21\\x18\\xcb\\xeb\\xa3\\xa1\\x33\\x23\\xcd\\x97\\x48\\xbf\\x86\\xed\\x1a\\x85\\xdd\\x4e\\xbc\\x0d\\xf4\\x95\\xcf\\xa3\\xd4\\x62\\x74\\x34\\xbf\\x14\\xaa\\xe8\\xab\\x67\\x81\\x46\\x7a\\x56\\xd9\\x65\\xd1\\x0e\\x63\\x71\\x98\\x9d\\xfa\\x0f\\x6b\\xc0\\xf7\\x85\\x9f\\x37\\x71\\xeb\\x90\\x04\\xb3\\x43\\x67\\xdb\\x27\\x05\\xdb\\xd6\\x0f\\xa8\\xf7\\x89\\x5c\\x1e\\xad\\xf5\\x9f\\x53\\xda\\xb1\\x68\\xb4\\xf9\\x36\\x39\\x79\\x02\\x55\\x01\\xdd\\xd9\\x68\\x0d\\xeb\\xc0\\x7c\\xd1\\xca\\x4a\\x09\\x97\\x87\\x6e\\x92\\x11\\xf3\\x07\\xd9\\xb7\\xb9\\xd9\\x04\\xe4\\x8d\\x28\\x61\\xa7\\x78\\xb8\\x79\\xad\\x59\\x0a\\x9a\\x2f\\x14\\x1b\\xd5\\x68\\xe3\\xa1\\xbb\\x24\\x94\\x62\\x8e\\x9e\\xc0\\xc6\\x42\\x55\\xae\\xea\\x6f\\x0e\\xed\\xca\\x30\\xad\\x38\\xa1\\xf3\\xff\\xec\\x3b\\x2b\\x5e\\x94\\x2e\\x21\\x94\\x01\\x04\\xe9\\x14\\xd1\\x1a\\x44\\xc0\\x0f\\xdd\\x47\\xda\\x3e\\x55\\x13\\xaa\\x85\\x30\\xae\\xe2\\x47\\xc9\\x5c\\xa6\\x6d\\x08\\xa2\\x60\\x8c\\x75\\xba\\x98\\x58\\xda\\x14\\xf9\\xa8\\xa3\\x2b\\xe7\\x13\\xd3\\x09\\xe0\\xf5\\x84\\xc8\\x1e\\xf5\\xbe\\x04\\x0e\\x00\\x65\\xf0\\x7b\\x77\\x5a\\xe1\\x75\\xdf\\xe2\\xc8\\xb9\\x0a\\x88\\xcc\\xda\\x17\\xfa\\x4f\\x21\\xc7\\x7e\\xad\\xf5\\xd2\\x5b\\x6e\\x40\\x4b\\xf0\\x04\\x47\\x9e\\x05\\xa0\\x1a\\xc0\\x04\\x2b\\x89\\x93\\x7e\\xb2\\x78\\xc1\\xc3\\x4f\\x33\\x02\\x8d\\xb7\\x80\\xba\\x3b\\x61\\x79\\x18\\x59\\x5a\\x39\\xc0\\xfc\\xad\\x67\\x4b\\x85\\xc4\\x0c\\xac\\x8d\\x34\\x5b\\x7c\\xa0\\xbb\\x48\\xa2\\x8e\\x66\\xc4\\x4d\\x8b\\xb5\\xf2\\x79\\x41\\xe4\\x0b\\x0e\\x9c\\x70\\x97\\x97\\x6c\\x62\\xdf\\xef\\x50\\xc9\\x8f\\x17\\x56\\x6c\\xcb\\xac\\xc8\\x7c\\xb0\\x3b\\x94\\xdf\\xdf\\xaf\\x32\\xf1\\xe5\\x6f\\xfa\\x63\\x9d\\x63\\x61\\x1e\\x21\\x3c\\xeb\\xf5\\x4c\\xd0\\xa3\\xe2\\x17\\x2d\\x81\\x1c\\x0e\\xbd\\x75\\xb1\\xa8\\x64\\x62\\x64\\xdd\\x8b\\x1a\\xbd\\x46\\xe5\\x48\\x97\\x2a\\x1b\\x26\\x2c\\xd9\\x5d\\x51\\x15\\x36\\xdd\\xdc\\xb4\\x97\\x29\\xfe\\x7b\\xd0\\x0b\\x38\\x38\\xbd\\x2f\\x20\\xa1\\x42\\x64\\x0e\\xdb\\x1b\\x6e\\x76\\x5b\\x65\\xda\\x72\\xe7\\x23\\x32\\x61\\xc8\\x89\\x2e\\x2f\\x49\\x49\\xbb\\x51\\xf3\\x2a\\x1a\\x5a\\x3e\\xe1\\x49\\xbe\\xa2\\x6f\\xdc\\xed\\xb9\\x91\\xd2\\xcd\\x12\\x66\\x37\\xe2\\x97\\x1e\\x9b\\x6f\\x0b\\x78\\x5d\\xf2\\x8a\\x48\\xf3\\x01\\x70\\x73\\x49\\x42\\x3f\\x44\\xe8\\x46\\x22\\x89\\xd7\\x25\\x49\\x82\\x30\\x48\\x9d\\xf1\\xb5\\x1b\\xe3\\x0f\\x08\\xd7\\xe3\\x25\\x05\\x65\\xc6\\xef\\x82\\x4b\\xc5\\x3a\\x1b\\xa7\\x4a\\x57\\xa2\\x5c\\x06\\x86\\xad\\xcb\\x6c\\x82\\x5a\\xb1\\xca\\x70\\xc8\\xa5\\xd4\\x6d\\xbb\\xc6\\xfa\\x60\\x74\\x61\\xe2\\x6d\\x16\\xfe\\x93\\xbb\\x3d\\x3a\\x94\\x3a\\x3d\\xc0\\x5f\\x30\\xea\\x6d\\xc8\\xbb\\x12\\xd7\\x08\\x21\\xd3\\x20\\xf1\\xad\\xf1\\xce\\xba\\x4b\\xe6\\x57\\x19\\x4f\\x7f\\xcc\\xd2\\x19\\x90\\xf8\\x62\\x9d\\x74\\x46\\x01\\xcf\\x52\\xea\\x6d\\x94\\x05\\xaa\\xa2\\x87\\x8f\\x1e\\xec\\x40\\x03\\xb4\\x5a\\x42\\x18\\xd8\\xf8\\x0b\\xb0\\xf5\\xaf\\x04\\x73\\x26\\x48\\x77\\x52\\xe2\\xb7\\x6d\\x68\\x87\\x25\\x20\\xbb\\xea\\xe7\\xb3\\x09\\xd7\\x82\\x82\\xa0\\x73\\xfe\\x0b\\x1a\\x1a\\x7a\\x98\\xda\\x23\\xdf\\x68\\xca\\xf8\\xc2\\x69\\x9b\\x1c\\x7d\\x0f\\x47\\xbd\\x7d\\xe2\\xc0\\xbb\\x23\\x36\\x99\\x63\\xe6\\x8a\\x69\\x74\\xc8\\xe2\\xb5\\x95\\xb8\\x29\\x3a\\x9f\\x4d\\x98\\xdf\\x7e\\x9a\\xe3\\xad\\xd2\\xa3\\xf6\\x4e\\x83\\x03\\x97\\x39\\x64\\x2d\\x19\\x22\\x04\\xe8\\x5e\\x6c\\x48\\xd5\\xd6\\x71\\xf6\\xc7\\x5a\\x0a\\x89\\x57\\xed\\xbb\\x74\\x18\\x76\\x20\\xf2\\xab\\xa9\\x9c\\x1c\\x62\\x58\\x4c\\x59\\xac\\x00\\x64\\x7e\\x3f\\xb4\\x02\\x92\\xb9\\xdc\\x1a\\x33\\x46\\x86\\x85\\x53\\x39\\x2f\\xd3\\xf1\\x1d\\x6d\\xc6\\xf5\\xf2\\xf4\\xe8\\x5e\\xe2\\x51\\x25\\xcd\\xd6\\x44\\x74\\x3c\\x7d\\x45\\x28\\x1e\\xda\\xc6\\x38\\x4c\\x77\\xcb\\x98\\xa6\\x7d\\x9a\\xe6\\xfc\\x9a\\x0a\\x76\\xb9\\xf6\\xfa\\x69\\x6f\\xdf\\x4a\\xce\\xab\\x5f\\x79\\x4e\\xe5\\x21\\xb1\\xe5\\xa0\\xee\\x57\\xaf\\x53\\xbd\\xf1\\x76\\x80\\x1b\\x4f\\x45\\xcf\\xb3\\xca\\xe3\\x28\\x72\\x34\\x23\\x4b\\x77\\xce\\x21\\xed\\xf8\\x68\\x0d\\x68\\xc4\\xa8\\xee\\xcf\\x1b\\x03\\x53\\x7e\\xa5\\x69\\x9a\\xcb\\x56\\x27\\x77\\xe4\\x2a\\x48\\x6f\\xe7\\xcd\"},\n{{0xce,0xcc,0xc6,0x83,0x11,0xfc,0x45,0xb6,0xc2,0xa2,0xf1,0xff,0x9c,0xdd,0xe0,0x07,0xec,0x78,0x7f,0xdf,0x25,0xd0,0x2c,0xcd,0x2a,0x1c,0xad,0x9d,0xe3,0xfb,0x4c,0xff,},{0x6f,0x80,0x47,0x34,0xef,0x92,0x82,0x41,0x80,0xda,0x71,0xe5,0x5c,0xf3,0xbf,0x1a,0xfe,0xf6,0x5b,0xcf,0x56,0x09,0x62,0xe0,0xb0,0xac,0xbb,0x2d,0x8c,0xca,0x59,0x84,},{0x3c,0x44,0x62,0xaa,0x47,0x01,0x01,0x32,0xdb,0xb2,0x63,0x11,0xe4,0x44,0x72,0x72,0x79,0xed,0xad,0xe1,0x5a,0x4d,0x66,0x2c,0xf6,0x47,0xf3,0x27,0x5c,0xf3,0x25,0x3e,0x6d,0xe9,0x33,0x38,0x30,0xe0,0x51,0x7a,0xa5,0xfa,0x7b,0xc2,0xd0,0xe6,0x3e,0xa2,0x59,0x7a,0x94,0xb0,0xfe,0x92,0x70,0x6e,0xcd,0x17,0x2c,0x5e,0xc5,0xc7,0xf0,0x06,},\"\\xba\\xc1\\x86\\xd9\\xfe\\x5a\\xbd\\xa7\\x9c\\x3a\\x35\\xa7\\xa3\\xc2\\xea\\xe6\\xae\\x6a\\xb2\\x82\\x47\\x91\\x27\\x70\\xc8\\x4e\\xfd\\x04\\x8e\\xbd\\x3a\\xba\\x57\\xc3\\x7c\\xf4\\xc6\\xc7\\xf3\\x0a\\x79\\xf6\\x8a\\x3f\\x76\\xb2\\x0c\\xd8\\xc6\\x63\\x1f\\xcc\\x96\\x67\\x05\\x22\\x08\\x0e\\x6b\\x62\\xe8\\x87\\xae\\x6f\\x44\\x36\\xd4\\xca\\xf5\\x69\\x43\\x13\\x1c\\x52\\xdd\\x28\\x2b\\x25\\x1c\\xd0\\x75\\xf1\\xf7\\xf8\\xe0\\xbd\\xb6\\xbe\\xdf\\xc9\\xa0\\x79\\x6f\\x55\\x79\\x04\\x2b\\x56\\xe6\\x93\\x74\\x96\\x1b\\x11\\xdf\\xd6\\x1b\\x12\\xde\\x2b\\xb7\\xd4\\x9b\\xfc\\x50\\x9c\\xdb\\x31\\x38\\xf3\\x35\\x6a\\x0d\\xde\\xd9\\x8f\\x53\\x01\\xb7\\xc4\\xa7\\x48\\xbf\\x89\\xb2\\x3d\\xf4\\xf7\\x47\\x2f\\xf8\\xb1\\xf5\\x05\\xd7\\x65\\xc6\\xff\\x82\\xdb\\xad\\x74\\xb9\\xd7\\xae\\xf2\\x2f\\xbc\\xca\\x0b\\x7f\\x35\\x04\\x2f\\x9a\\x76\\x2b\\xd0\\x69\\x02\\xbb\\x21\\xc7\\xf9\\xf7\\xf6\\x6b\\xef\\x38\\x90\\x1d\\x75\\x01\\x2d\\x61\\xd7\\x44\\xde\\xe7\\xaf\\xd8\\x9f\\xc7\\xe9\\x08\\xc4\\x06\\x85\\xbd\\x44\\x0a\\xed\\xa4\\x20\\x4d\\x00\\x6f\\x26\\x30\\x7d\\x82\\xa4\\x96\\x96\\x31\\x15\\xf9\\x0e\\x09\\xf7\\x66\\x88\\x29\\x1f\\x4a\\x67\\xd6\\x41\\x1f\\x76\\xd1\\x66\\x17\\x87\\x5b\\x2b\\x99\\x82\\xdf\\xdc\\x5e\\xe9\\xb8\\x3b\\x98\\x17\\x00\\x93\\x19\\x11\\x0b\\x54\\x04\\xc6\\x31\\x16\\xfb\\x6e\\x94\\x64\\x84\\x6f\\xa0\\x09\\x55\\x56\\x32\\xf0\\x76\\x98\\x4c\\x15\\xe1\\xf6\\x08\\x17\\x33\\xa0\\xd4\\x6f\\x2d\\x6a\\x3c\\xeb\\xf7\\x9e\\xd9\\x02\\x0c\\x9d\\xec\\x8d\\xf1\\x58\\xa3\\x34\\x1f\\x39\\xea\\xa5\\xfc\\xf1\\xcf\\x42\\xa9\\x48\\x49\\xb2\\x35\\x2c\\x1a\\x1e\\xcd\\x4f\\xb8\\x14\\xc2\\x0d\\x07\\xdf\\xda\\x31\\x2b\\xd4\\xf2\\xf5\\x8c\\x15\\x76\\xb4\\xaa\\x31\\x5c\\x96\\xc8\\x78\\x6a\\x4c\\xfb\\xb7\\x36\\xb2\\xd2\\x3c\\x38\\xb1\\xd8\\x1c\\x46\\x44\\xea\\x36\\xaf\\xa0\\x76\\xe0\\x55\\xbe\\x59\\x17\\xcd\\x7a\\x92\\x35\\x0a\\x7e\\xd6\\x6a\\x5a\\xb2\\x25\\x3f\\x55\\xc4\\xfd\\x1a\\x0d\\x0e\\x6d\\x4e\\xda\\xb5\\xf7\\x12\\xed\\xb4\\x40\\xc0\\x6f\\xac\\x8f\\x07\\xe6\\xd7\\x3c\\xc9\\x0b\\x2b\\xa7\\x13\\xd7\\x3c\\x73\\x80\\x23\\x61\\xce\\x46\\xa4\\xeb\\x5e\\xd1\\x06\\x0c\\x4c\\xf5\\x32\\x07\\xd3\\x01\\xf0\\xfc\\xd4\\xf0\\xc9\\xd1\\x58\\x0d\\xb2\\xfc\\x10\\x59\\xd3\\x72\\x07\\x64\\x38\\xa0\\x11\\x92\\xa7\\xf9\\xfd\\x6f\\x78\\x83\\xf5\\x64\\x22\\x86\\x6f\\xd9\\xf0\\xaf\\xe5\\x3f\\xdc\\x91\\x0a\\xfa\\x5a\\x75\\x1c\\xbf\\xa3\\x77\\x59\\x25\\x79\\x16\\x5c\\xb5\\x6d\\xc3\\xeb\\x4d\\xce\\x67\\xe3\\xdb\\x33\\xa9\\x81\\xa5\\x6b\\x7d\\x9f\\x7b\\xde\\xa7\\x4f\\xba\\xea\\x34\\x78\\xe6\\xab\\x2c\\x64\\x4f\\xd7\\x77\\xb8\\xbf\\xa7\\x2a\\xa0\\xf0\\xa5\\x21\\x98\\xd3\\x6e\\x5b\\x63\\x4d\\x2c\\x9a\\x11\\xb7\\xfe\\x0a\\xb2\\xf9\\xa4\\x09\\x01\\xc5\\xb1\\x48\\xa0\\x19\\x2e\\x95\\xa1\\x70\\xba\\xf7\\xd5\\x35\\x0f\\xe0\\x1e\\x56\\x95\\x42\\xb9\\x34\\x85\\xa4\\x19\\x71\\x44\\x34\\x85\\xfa\\xf5\\x7f\\x67\\xf5\\x6d\\xfe\\x2c\\x58\\xe5\\x39\\xc9\\xf9\\xb4\\x49\\xc3\\xf9\\x12\\x49\\xa1\\x0c\\x1a\\x1b\\xe7\\xe0\\xb3\\xea\\xbe\\x8e\\xe0\\xba\\xb1\\xf1\\x1f\\x89\\x61\\x4d\\xce\\xd4\\x18\\xc6\\x2a\\x07\\xa0\\xb5\\x9a\\x13\\x70\\xd6\\x53\\x1b\\xa1\\x77\\x09\\x1c\\x6a\\xd5\\x95\\xfb\\x59\\x48\\x82\\x04\\xf6\\x33\\x44\\x73\\x6e\\xa1\\x01\\x7a\\xff\\xbe\\xb7\\x53\\xa9\\x97\\x86\\xb1\\xeb\\x64\\x51\\x0e\\x2e\\x71\\x7e\\xc9\\x0e\\x02\\x74\\x4b\\xc3\\x52\\xd3\\xf1\\xb2\\xab\\x7b\\xe0\\xeb\\x65\\x62\\x3d\\x04\\xfb\\x3a\\x04\\x6c\\xe7\\xf4\\xda\\x69\\x7d\\x82\\x98\\x28\\xa5\\x2c\\x7b\\x04\\x3b\\x2a\\x82\\xec\\x97\\xfb\\x04\\x1b\\xf5\\x19\\xb4\\xde\\x31\\x6f\\x4e\\x2f\\x5b\\x0d\\xb6\\x2a\\xed\\x0e\\xed\\x95\\xca\\xd4\\x32\\x0c\\x19\\x47\\xc3\\x5f\\xd8\\x84\\x7a\\x58\\x67\\x87\\x28\\x83\\x56\\x11\\x19\\xc0\\x1b\\x00\\x89\\x21\\x3d\\x84\\xdb\\x99\\xd4\\x39\\xf0\\xf6\\x44\\x4d\\x87\\x83\\xdd\\x4b\\x64\\xbe\\x35\\x77\\xcd\\x46\\x1c\\xf7\\x53\\xc8\\xe6\\x1c\\x91\\x2d\\xe2\\xe5\\xd7\\xa7\\xe2\\xba\\xef\\xa2\\x58\\x97\\x5d\\x16\\xef\\x31\\x17\\xda\\x59\\xa6\\xc8\\x93\\xf3\\x33\\x91\\x87\\xdf\\x31\\x68\\xb8\\x9f\\x0f\\xb0\\xb2\\x19\\x8b\\xb6\\xf1\\x59\\x4b\\xb8\\x8f\\x3d\\x61\\x0f\\xce\\xc3\\xe3\\x6d\\xe0\\x4a\\xe1\\x03\\x28\\x11\\x2e\\x6f\\xf7\\x4f\\x5a\\x8c\\xe6\\x8d\\x40\\x71\\x74\\xb4\\xc0\\x69\\x1c\\x76\\x02\\xea\\xb1\\xbb\\x10\\xf3\\xc4\\x9d\\xd2\\x2b\\x84\\x50\\x78\\x2d\\xea\\xe9\\xa7\\x31\\x5e\\x3b\\x88\\xde\\x79\\xcd\\x15\\xe6\\xc9\\x26\\x81\\x65\\xed\\x3a\\x0f\\xb3\\xf8\\x9b\\x18\\x3e\\x1a\\x21\\x21\\x52\\x00\\x3f\\x32\\xa2\\x66\\x5d\\x37\\xcd\\xd7\\xf6\\xb5\\x6c\\x24\\x53\\xe5\\x58\\x0c\\x4d\\x21\\xf9\\x98\\x3f\\x38\\x79\\x8e\\x9b\"},\n{{0x7b,0x30,0xb4,0x2d,0xc2,0xc6,0x70,0xa1,0x95,0xfe,0x2a,0xf8,0x79,0xfc,0x5d,0xe3,0x74,0x02,0x45,0x88,0xfe,0x3d,0xe4,0x3e,0x2d,0xd5,0x08,0x44,0xf4,0x8f,0x42,0xbe,},{0x82,0xa2,0xac,0x60,0x79,0xf2,0x12,0xb5,0xee,0xdd,0x0c,0x19,0xe9,0x39,0x4f,0xaf,0xac,0xd7,0x4d,0x71,0x6f,0xde,0xfb,0xfc,0x6c,0xb8,0xa7,0xea,0xf4,0x1c,0x03,0x62,},{0x0a,0x63,0xb8,0x4f,0x46,0x93,0x5f,0xaf,0x3e,0xa1,0x64,0xb0,0x0a,0xf2,0x27,0xb0,0x08,0x68,0xa0,0x3f,0x56,0x12,0x93,0x5e,0x18,0x61,0x9a,0x84,0xa2,0xe5,0x7b,0x88,0x51,0xd7,0x46,0xe6,0x3f,0xd9,0x10,0x07,0x87,0xf5,0x33,0x8d,0x51,0xc1,0x07,0x3c,0x2f,0xc5,0x30,0x30,0x99,0xe1,0x87,0x3e,0x5e,0x3d,0x3e,0x5c,0x03,0x6f,0xbe,0x01,},\"\\xc6\\x68\\x7a\\xef\\xeb\\xc5\\xc8\\x16\\xd1\\xa3\\x34\\x53\\xbe\\xca\\x50\\x20\\xd3\\xa9\\x7c\\xda\\x1d\\xac\\x56\\x62\\xf0\\xaf\\x72\\xba\\xd4\\x44\\xe2\\xfd\\x11\\x76\\xa7\\xb0\\x4c\\x1b\\xd0\\x9d\\x83\\x26\\x18\\x20\\x9b\\xf3\\xe3\\x3e\\x52\\x35\\x38\\xd6\\xda\\xa7\\x53\\x04\\x6e\\x87\\x1d\\xd3\\xb3\\xc7\\xac\\xad\\x33\\xe7\\x9c\\x1b\\xb7\\x89\\x64\\x07\\x86\\x5d\\x16\\x8d\\x4b\\xc3\\x75\\x7b\\xde\\x4f\\x82\\x3c\\x08\\x77\\x86\\x26\\xf8\\xc7\\x1f\\xb7\\xcf\\xcf\\xdf\\x03\\xa8\\x24\\x97\\xbd\\x8b\\xe7\\xd8\\xf8\\xef\\x64\\x90\\x30\\xb5\\xf3\\x6a\\x33\\x94\\x59\\x96\\x8e\\x24\\x6a\\x1e\\x42\\x08\\x53\\xda\\xce\\x41\\xca\\x85\\x0a\\x4e\\xea\\xe8\\x34\\xae\\x11\\x96\\x10\\xca\\x4c\\xd0\\x66\\x2a\\xac\\x39\\x62\\x15\\x86\\x99\\x80\\x27\\xef\\x2f\\x61\\x48\\x5c\\x02\\x85\\x06\\x71\\x4a\\xe0\\x9c\\x76\\x39\\x9d\\x87\\x3e\\x80\\x81\\x58\\x57\\x8a\\xa5\\x9e\\x82\\x12\\xf5\\x88\\x65\\x31\\x9f\\x9e\\x0d\\x2b\\x8d\\xa7\\xad\\x52\\x9e\\x0a\\xc1\\xf1\\xeb\\x43\\x5a\\xec\\xfd\\x35\\xf5\\xab\\xb9\\x2b\\xea\\x50\\x73\\x49\\x6b\\xf4\\xc0\\xbf\\x15\\xba\\xa2\\x73\\xbf\\xc5\\xc3\\x10\\x44\\x74\\xa2\\xdc\\xf1\\x32\\xc3\\x33\\xeb\\x36\\xec\\x2c\\xbf\\x04\\xfa\\x95\\x80\\xb7\\x68\\xf5\\xce\\xa7\\xb5\\x61\\x7e\\x58\\x80\\xaf\\xf6\\x32\\x01\\xc2\\x74\\xd6\\x69\\x74\\x3e\\x1b\\xc5\\x56\\xb0\\x67\\x90\\x2e\\xee\\x29\\xd2\\x91\\x11\\x28\\x89\\x69\\xcf\\xfa\\x87\\x9f\\xc9\\xcb\\xf6\\x6f\\xbf\\x93\\x26\\xd9\\xd9\\x25\\xac\\x41\\x02\\xfa\\x9f\\x1a\\x06\\x08\\x1a\\xde\\xc0\\x79\\xcb\\xc9\\x67\\x46\\xd7\\x9b\\x63\\xa0\\x12\\xed\\x77\\xd8\\x2c\\x9f\\xfd\\x4e\\x3f\\x16\\x1f\\x6c\\xea\\x28\\xcc\\x23\\xfa\\xc2\\xa5\\x43\\xf5\\xb1\\xd0\\x64\\x4e\\xc0\\x48\\x38\\x32\\x7b\\xcc\\x65\\x2b\\x85\\x8f\\x93\\xff\\x46\\x3f\\x7e\\x94\\x9e\\xec\\x8c\\x9d\\xb6\\x56\\x9a\\x86\\x98\\x4f\\x83\\x1d\\xf6\\xac\\x6d\\x95\\xf3\\x8f\\x46\\xce\\xbb\\x6e\\x65\\x83\\x65\\x7f\\xac\\xd2\\x10\\x8d\\xbc\\xd0\\xaf\\x23\\xab\\x01\\x01\\xa1\\x30\\x1b\\xeb\\x48\\xa4\\x4c\\xac\\xcb\\x91\\x09\\x44\\x73\\xd7\\xe5\\xa5\\xc8\\x8c\\x64\\x4f\\xd3\\x42\\x05\\x73\\xb6\\x78\\xf1\\x7b\\x51\\x74\\xcb\\x14\\xe9\\x0f\\xac\\x69\\x4d\\x1d\\xbc\\x6c\\x96\\x32\\xb5\\x97\\x4a\\xef\\x28\\xac\\x08\\xd7\\x20\\xb2\\xea\\x30\\x44\\x0d\\x2a\\xfb\\x04\\x93\\xb4\\x0d\\xb2\\x4e\\xfb\\xdb\\xf5\\x3c\\x43\\x09\\x21\\xe5\\x2a\\x10\\xb5\\x46\\x61\\xe1\\x49\\xd1\\x65\\x59\\x1a\\x7c\\xf9\\x1d\\x65\\x08\\xea\\x47\\x2f\\xb3\\xbe\\x16\\x39\\x5e\\x30\\x31\\x2f\\x19\\xb8\\x7c\\x47\\xe4\\x68\\x04\\xa0\\xfa\\x29\\xb5\\x6b\\x5a\\xc9\\x50\\x67\\x7b\\xc6\\x02\\x38\\xb5\\xe9\\x9e\\x03\\x0b\\x1e\\x55\\x21\\x46\\xa0\\xe8\\x8c\\x29\\x4c\\xfc\\xa8\\x35\\xc1\\x01\\xc5\\x5f\\x34\\x23\\x87\\x4c\\xc1\\x28\\x75\\x6e\\x73\\xa5\\xde\\xbe\\x8e\\x97\\xfe\\x21\\x66\\xb6\\x5c\\xb4\\x46\\x42\\x77\\x0c\\x6d\\x1d\\x23\\x90\\xaf\\x1b\\x0f\\x31\\xb9\\x58\\xc8\\x30\\xe9\\xac\\x4f\\xe2\\xf5\\xad\\x59\\x05\\x82\\xfb\\xb8\\x92\\xbf\\x94\\x95\\x84\\x47\\x7e\\xf7\\xbd\\xe2\\x3f\\x7d\\xd0\\x2b\\x63\\xf7\\xc2\\x90\\x88\\xa5\\x72\\x51\\x00\\x91\\x32\\xff\\xbb\\x78\\xed\\x14\\xde\\xfb\\xef\\xd9\\xfd\\x31\\xfd\\xca\\xb0\\x3b\\xa8\\x0a\\x23\\xf3\\x33\\x98\\x37\\x60\\xab\\xad\\x4f\\x16\\xdd\\xf9\\xdd\\x44\\x14\\xf0\\x4d\\x00\\xdb\\x56\\xba\\x72\\xd6\\x3a\\x3a\\x13\\xd2\\xc4\\x42\\xf5\\x49\\xfd\\x66\\xc9\\x88\\xd2\\xe4\\x60\\x1d\\x13\\xb5\\x2f\\x77\\x50\\x0d\\xd6\\x92\\xbe\\xc9\\xd6\\xbd\\x3b\\xaf\\xa9\\x24\\x2f\\xdc\\xfa\\xeb\\x69\\xb9\\x8b\\x0b\\x57\\x89\\xb2\\x80\\x38\\x40\\xde\\xc6\\x37\\xb4\\x9a\\xf4\\x38\\x1a\\xe3\\xfa\\x42\\x9f\\xb5\\x34\\x61\\xa0\\xc6\\x74\\xeb\\x5a\\xa1\\x8d\\xbd\\x60\\x7a\\x2b\\x77\\xa9\\x6d\\x3a\\xb4\\x64\\xec\\xd9\\x74\\x92\\xf6\\xde\\x46\\x0c\\x9f\\x11\\xb5\\xc1\\x75\\x6c\\xb5\\x9c\\xb1\\x34\\x8d\\xfd\\x77\\x95\\x6b\\x71\\x90\\x7c\\x54\\x82\\x1e\\x30\\x3c\\xb8\\xb1\\x49\\x06\\xc0\\x03\\xe3\\x48\\x4b\\xe4\\xea\\x05\\xa6\\x90\\x1d\\x69\\xb0\\x74\\x85\\xe8\\x58\\xf7\\xb4\\x71\\xc6\\x35\\xf9\\x03\\x95\\xb9\\xa3\\xe2\\x24\\x7f\\x1a\\xd1\\x2b\\x11\\x8f\\xfa\\xfc\\x72\\x21\\xa5\\x7b\\x10\\xe3\\x19\\xb6\\x1a\\xf1\\xc1\\x36\\x06\\xa8\\x16\\x16\\xce\\x3f\\x1d\\x62\\xba\\x93\\x2f\\xf4\\xe6\\x3e\\x74\\xb8\\x42\\x55\\xe3\\xaf\\x52\\x10\\xbb\\xd5\\x71\\xbd\\xa4\\x4c\\xbf\\x44\\xb7\\x14\\x42\\x2c\\xb4\\x5c\\x2e\\xf2\\x1f\\x98\\x13\\x1b\\xa9\\x6b\\x7e\\xdb\\x9b\\x03\\xe3\\x3d\\x7d\\x18\\x8d\\x5b\\x8d\\x90\\x4c\\xb4\\x13\\x6f\\xe2\\x69\\xdb\\x14\\x69\\x88\\x16\\x8e\\x7e\\xe2\\x45\\x35\\x63\\x54\\xf0\\x02\\xa5\\xea\\x8b\\x35\\xa3\\xa9\\x9e\\x83\\xa1\\x32\\x72\\x27\\x41\\x44\\xb3\\x3a\\x60\\xca\"},\n{{0x66,0x56,0xf4,0xd4,0x71,0x81,0x57,0xc4,0xba,0xc3,0x8f,0xf7,0xab,0xe5,0xeb,0x1f,0x81,0x2c,0x0b,0x98,0x6d,0x9c,0x01,0x4a,0xba,0xd5,0xb0,0x9a,0xa6,0xc8,0xee,0x4a,},{0xf3,0x08,0x78,0x98,0xe4,0x52,0xbe,0x9e,0x30,0xae,0xcc,0x4e,0x8f,0xfe,0x0c,0x01,0x16,0x98,0x88,0x68,0x3f,0x62,0xa4,0x5b,0x8d,0xa3,0x82,0x99,0x01,0x4f,0x5b,0x4a,},{0x9c,0x2c,0x39,0x91,0x5a,0xed,0x6a,0xdd,0x00,0x4e,0x7d,0xd6,0x84,0xee,0x3d,0xcd,0xd1,0x0d,0x87,0xa4,0x87,0xf6,0x77,0xe7,0x3c,0x2b,0xce,0x0f,0xca,0x7d,0x50,0x87,0x96,0x46,0x41,0x50,0xa5,0x2a,0x44,0x0f,0x52,0x37,0x85,0x0a,0x00,0x9c,0x72,0x16,0x2d,0x9d,0x29,0x85,0x47,0x0a,0x33,0x49,0x0e,0x66,0xd3,0xc4,0x01,0x70,0x4c,0x05,},\"\\x94\\xd9\\xe5\\xe5\\xa7\\xb7\\x05\\xd9\\xd9\\x76\\xfe\\x71\\xe9\\x4d\\x3f\\x7f\\xa7\\x86\\x6a\\xfb\\xf7\\xec\\xe4\\x24\\xf1\\x36\\x32\\x77\\x99\\xb2\\xb2\\x06\\xce\\x4e\\xf4\\xc3\\xf3\\xe7\\x05\\x55\\x3a\\xfc\\x8f\\xd5\\xc1\\x95\\x2a\\x4c\\x16\\x65\\x8d\\x4a\\x78\\xaf\\xbb\\x9a\\x97\\xf2\\x71\\x93\\xc6\\x5b\\x65\\xb8\\x2e\\x8f\\x3b\\x71\\x51\\x5f\\xac\\x82\\x64\\x0e\\x0f\\x8a\\x5f\\xb3\\x5a\\xe6\\xfc\\x6a\\x3d\\xb0\\x51\\xa2\\x2d\\x4a\\x53\\x00\\x41\\x3e\\x6e\\x33\\xd1\\x9c\\x20\\x13\\xc2\\x98\\x3a\\xca\\x8a\\xd6\\xce\\xc2\\xce\\x64\\xa8\\x14\\x16\\x4f\\x06\\x1a\\x1a\\x3c\\x5a\\x86\\x10\\xa7\\x65\\x0b\\xfb\\x54\\x23\\xd4\\x36\\x2c\\xe0\\x22\\x06\\xdb\\xe4\\xa6\\xfa\\x82\\x6f\\x03\\xb4\\x2a\\xc3\\xcd\\x9e\\xa4\\xc6\\x51\\x40\\x1b\\x3c\\xea\\x82\\xc3\\x99\\x3f\\x6a\\xf8\\xb2\\xc9\\xe2\\xe6\\xff\\xe6\\x92\\x80\\xab\\x3f\\x09\\xfb\\xe9\\x0d\\xd5\\x47\\xcc\\xda\\x9d\\x9e\\x8e\\x8a\\x53\\x7b\\x3b\\x36\\x05\\x54\\x22\\x7e\\xd0\\x70\\x9f\\x29\\x31\\x98\\x98\\x2e\\xfb\\x5e\\xfb\\x0e\\x73\\xe0\\x00\\x42\\xd1\\xa0\\x63\\xb5\\x74\\x52\\x02\\x7d\\xce\\x1a\\x39\\xe4\\xb0\\x06\\x8f\\x58\\xb1\\x11\\xec\\x5d\\xc1\\x42\\xbf\\x41\\x9a\\xd8\\x93\\xd5\\x4f\\x42\\x60\\xcb\\xde\\x76\\x28\\xf7\\x83\\xde\\x84\\x96\\x38\\x03\\x06\\xa4\\xef\\xf6\\xd8\\x28\\x69\\x10\\x42\\x59\\xc9\\x4c\\x54\\xad\\x5a\\xa8\\xb0\\x67\\xc4\\x24\\x96\\xcb\\x88\\xdd\\x31\\x15\\x0e\\xa0\\x4d\\x49\\x9b\\xfa\\xc9\\x1f\\x4b\\xb3\\xe6\\x8a\\xf5\\xaf\\x7a\\x56\\x8a\\x3e\\x4c\\xe7\\xf1\\x70\\xd9\\x86\\x01\\x16\\x3f\\x49\\x52\\xf1\\xd2\\x5e\\x12\\xe0\\x0e\\xf0\\xa2\\xd8\\xf1\\x11\\xaf\\xdb\\x0f\\xaf\\xba\\xd2\\xbf\\x8e\\x8b\\x9d\\x49\\x36\\x3f\\xca\\x68\\x18\\x36\\x17\\xb5\\x41\\x27\\x0d\\xda\\x46\\x09\\xb2\\x61\\x67\\x29\\xab\\x1b\\x8c\\x42\\xdb\\xdd\\x7b\\xf9\\x86\\xaf\\x8f\\xba\\x52\\xe7\\x33\\xe4\\x2b\\xa0\\x3c\\x89\\x2e\\x1e\\x1e\\xc0\\x6a\\x90\\xb1\\x63\\xf5\\xa7\\x9f\\x61\\x65\\xeb\\x73\\x16\\x97\\x2a\\xc1\\xad\\xbf\\xcf\\x1d\\xca\\xb0\\x78\\x47\\xef\\x82\\xc2\\xca\\xb1\\x01\\x5d\\xbb\\x50\\xaa\\xdc\\x79\\xfe\\x11\\xc8\\x32\\x09\\x8c\\xac\\xc3\\x98\\x20\\xab\\x08\\x5b\\x69\\x63\\xbd\\x42\\x16\\x0e\\xd6\\x61\\x3b\\xae\\x5e\\x20\\x1f\\x17\\xc0\\xfd\\x7f\\x32\\x35\\x7a\\xe3\\x50\\xce\\x9c\\xbb\\xe9\\x26\\xfa\\x42\\xdc\\xbd\\x42\\x2a\\xc1\\xbf\\x09\\xa1\\x9a\\xd1\\xf6\\x94\\x69\\xe4\\xd1\\xdc\\xb1\\x24\\x11\\x8e\\xd4\\x52\\x2d\\x35\\x3c\\x17\\x42\\x98\\x65\\x0f\\xf8\\x83\\x82\\xfa\\x2f\\xdb\\xb2\\x86\\xc4\\x5b\\x18\\xa9\\xba\\xf6\\xf6\\x76\\x3a\\xc2\\x0c\\x9c\\xa4\\x76\\x7d\\x34\\x8c\\x4b\\x8d\\xed\\x63\\x00\\x76\\x65\\x7b\\x85\\xb1\\x4c\\x11\\xae\\x27\\x37\\xea\\x29\\xa4\\x35\\x15\\xb7\\xf0\\x56\\x74\\xa0\\xcd\\x3e\\xd4\\xbf\\x6a\\x3d\\x18\\x9a\\xe9\\x72\\x21\\x8f\\x87\\x7c\\xd8\\xaa\\x69\\x49\\x9d\\x5a\\x08\\xc9\\x9e\\x44\\x06\\x94\\xcc\\xac\\xcd\\xf1\\xf6\\x42\\xe1\\x4e\\x90\\x10\\x5b\\xee\\x6d\\x98\\xed\\xee\\xab\\x3b\\x4f\\x33\\x9f\\x30\\x01\\x88\\xae\\xc0\\xc1\\x6b\\xd6\\x45\\x21\\xd9\\x28\\x73\\x98\\xe6\\x48\\xdb\\x94\\x33\\x0e\\xd8\\xf6\\xb9\\xab\\x6c\\x7a\\xd9\\x3f\\xfc\\x43\\xe8\\x79\\x2e\\x63\\x7c\\x61\\xbf\\xf7\\xd8\\x56\\xe5\\x4e\\xf4\\x98\\x73\\x84\\xe3\\x12\\xcb\\x57\\x01\\x7a\\x50\\xea\\xe5\\x95\\x2a\\xbe\\x19\\xd8\\x99\\x9c\\x8c\\x82\\xdf\\xc4\\x57\\x98\\xcc\\x17\\xc8\\xd9\\x49\\x6b\\xf5\\x20\\xec\\xc5\\xb7\\x7f\\xe2\\x84\\x91\\x55\\x66\\xc4\\x56\\x85\\xc3\\x04\\xa2\\xac\\xd5\\x25\\xef\\x12\\xc8\\x6f\\x38\\xae\\xf5\\x54\\xd8\\xa2\\x38\\x47\\x37\\xcc\\x41\\x33\\xfb\\x7e\\x2b\\x65\\xc1\\x3b\\xef\\x31\\x66\\x8a\\x6c\\x2f\\x60\\xee\\xcd\\x84\\x12\\xee\\xff\\x7f\\x6b\\x60\\x5c\\xbe\\x95\\x08\\x3e\\x23\\x3e\\xc1\\xa7\\xbb\\x36\\xde\\x23\\x6c\\x8a\\x71\\xba\\x28\\x72\\xbe\\x94\\x6c\\xd3\\xb3\\x89\\x35\\xf5\\xda\\x64\\xc8\\xfe\\xc8\\xe1\\x4f\\x45\\xcc\\xf6\\x12\\x4b\\xab\\x7f\\x70\\x56\\x7c\\x2f\\x2b\\xfd\\xd5\\x66\\x67\\x60\\x95\\x72\\x03\\x7c\\x76\\x14\\x6c\\x99\\x17\\x07\\x65\\x9b\\x57\\x09\\xb0\\x74\\xe3\\x45\\x1f\\x92\\x1a\\x2d\\xf2\\x83\\xb9\\x6a\\xa2\\x6a\\xb4\\x76\\x62\\x50\\x16\\xf1\\x81\\xad\\x64\\xc9\\x91\\x9c\\xf4\\x1d\\x71\\x4a\\x1a\\x9a\\x5e\\x2b\\xb2\\x6b\\xaf\\x87\\x70\\xb2\\xeb\\xa7\\x7b\\x77\\x8a\\x33\\x26\\x77\\xa7\\x57\\x2e\\xe3\\xa2\\xb1\\xdc\\x05\\xf7\\x35\\x6b\\xdc\\xae\\x5f\\x55\\xe3\\x53\\x29\\xe3\\x4c\\xaa\\x79\\x43\\x0b\\x27\\x0c\\x03\\x61\\x60\\xdc\\x9f\\xca\\xab\\x5b\\x25\\x45\\x43\\xac\\x94\\xb2\\x46\\x81\\xf1\\x71\\x72\\xb6\\x15\\x9d\\x16\\x62\\x1d\\x7a\\xd0\\xee\\xbd\\x89\\x5a\\x1e\\x1d\\x09\\xb9\\x16\\xa8\\x6f\\xb4\\x8e\\x4c\\x91\\x66\\x10\\x57\\xee\\xe9\\x5c\\x08\\x70\\xed\\x54\"},\n{{0x14,0x38,0x3e,0x6e,0x56,0x04,0xc9,0x9c,0x24,0x8d,0x39,0xbe,0x51,0xd1,0x64,0xb1,0x34,0x42,0xb0,0x5e,0x51,0xd7,0x8e,0xcd,0x99,0x93,0x64,0x22,0x1a,0x45,0x03,0x6b,},{0x2f,0xc1,0x61,0x38,0x22,0x0a,0xb7,0x4b,0x3b,0xd4,0x46,0xf8,0xa7,0x14,0xb5,0x8d,0x54,0x63,0xd4,0x0d,0x43,0x67,0x92,0x50,0x07,0x47,0x4c,0x5b,0x9e,0x35,0xd4,0x94,},{0x45,0xe8,0xed,0x1a,0x75,0x1d,0xfc,0x3b,0x9b,0x7b,0xd7,0xa1,0x0b,0xf5,0xbd,0xcf,0x8c,0xa4,0x61,0x86,0x5a,0x49,0x0c,0x10,0x5f,0x10,0x45,0x29,0x41,0xcf,0x87,0x72,0x12,0x14,0xbf,0xbf,0x3a,0x35,0x60,0x6b,0x7c,0xe3,0x5d,0x6f,0x70,0xaa,0xf2,0xd5,0xea,0xdc,0xc0,0xde,0x03,0x5e,0x9b,0x2f,0x6d,0x7b,0x86,0x2f,0xc2,0x84,0x90,0x04,},\"\\xc4\\x75\\x3b\\x7f\\x7a\\x6f\\x6d\\xea\\x25\\x15\\xc6\\xe3\\xd2\\x95\\x61\\x50\\x6f\\x4f\\x36\\xe0\\xde\\x84\\x99\\x92\\x21\\xf2\\x28\\xe2\\x0b\\xd5\\x12\\x8e\\xd9\\x3b\\xdb\\x8d\\x11\\x93\\x23\\x7d\\x8e\\x29\\x41\\x69\\xa2\\xbc\\x44\\x8a\\xf9\\xdd\\x36\\x06\\x63\\x01\\xef\\xb7\\xfe\\x12\\x31\\x35\\x3c\\x06\\x23\\xff\\xe1\\x11\\x5d\\xeb\\xb6\\x90\\x5a\\xc6\\x94\\x6e\\xe3\\x82\\xa2\\x7c\\x3c\\x09\\xe1\\xb1\\xf5\\xc1\\x14\\x93\\xdb\\xa3\\x7d\\xa0\\xff\\x6e\\xea\\x75\\xd9\\xfa\\xb0\\xee\\x92\\x6d\\x70\\x1d\\xac\\x2f\\xc5\\xb7\\xef\\x57\\x88\\x80\\xa5\\xd5\\xee\\xec\\xad\\xc1\\xf4\\xbc\\xc4\\xcd\\x4e\\xc6\\xf2\\xf1\\x4f\\x52\\xa8\\xc1\\x64\\x07\\x2e\\x6f\\xde\\x5a\\xb2\\xee\\x9c\\xee\\x0b\\x48\\xe5\\x1a\\xf0\\x55\\xf9\\xfe\\xc7\\xc6\\x37\\x50\\xfe\\xdf\\x72\\x33\\x2b\\x23\\x86\\x3a\\x1e\\x54\\xc5\\x2b\\x46\\x1a\\x21\\x50\\x6d\\xfd\\xfc\\x63\\x88\\x0e\\x22\\xd8\\x9c\\x89\\x44\\x12\\x66\\x6c\\x92\\x98\\x21\\xc0\\xe4\\x39\\xe7\\x45\\x41\\x5f\\x71\\x79\\x69\\xe6\\x05\\x85\\x54\\xd6\\x4b\\x94\\x7a\\x4f\\xc9\\xd1\\x6a\\xca\\xe3\\xe4\\x9a\\xec\\x08\\x80\\x1a\\x09\\xd9\\x72\\xf7\\x9e\\xad\\x68\\xd5\\x29\\x76\\x80\\x69\\x73\\x5c\\xaa\\x74\\x2b\\x45\\xa5\\x83\\x05\\x81\\xb8\\x0c\\xa0\\x61\\xa6\\xc1\\x51\\x5e\\x3f\\x7d\\x5a\\x93\\x37\\x87\\x8c\\x19\\xfc\\x94\\xee\\xf2\\x26\\x98\\xea\\x6c\\x4d\\x05\\xf9\\xed\\x41\\x1b\\x6b\\x8f\\x05\\x2b\\x5f\\xf1\\x5d\\xc2\\x3a\\x64\\xbe\\xea\\xae\\x99\\xf8\\x48\\x93\\xde\\x3d\\xf9\\x40\\xa4\\xe0\\xb8\\xe9\\x93\\x93\\x01\\x39\\x05\\x2d\\x99\\xbe\\x47\\xbc\\xa8\\x77\\x5f\\x85\\x63\\xbd\\x40\\x26\\xb7\\x13\\x43\\xd5\\x19\\x68\\xf2\\x33\\x75\\x28\\xf4\\xc9\\xdb\\x8b\\xbd\\x0a\\x29\\x8a\\xf0\\x4b\\x27\\x69\\x5d\\x86\\xb7\\xf7\\xba\\x6c\\x4c\\xcc\\x62\\x73\\xfe\\xbc\\xd8\\xf7\\x5c\\xff\\x26\\x69\\x95\\x24\\x4f\\xc1\\xfa\\x13\\xd8\\xd8\\x43\\xf0\\xbf\\xf4\\x9c\\xc2\\xd5\\x08\\xf4\\xa2\\xb3\\xaa\\xd1\\xd9\\x5f\\xb2\\x2a\\x2b\\xc6\\xad\\x1b\\x96\\x6b\\x08\\x12\\xd9\\x90\\x70\\xbb\\xa0\\x7c\\x92\\x3e\\xe4\\xd0\\x81\\x07\\x48\\x6d\\xc0\\x1a\\x06\\xdb\\xa6\\xf1\\xd5\\xf1\\x05\\xac\\xea\\xde\\x33\\xb1\\x66\\x51\\x0e\\x42\\x7e\\xbb\\xce\\x52\\xa3\\xe7\\x83\\x1f\\x0f\\x78\\xa3\\xc6\\xe0\\x72\\x60\\x83\\x34\\xd8\\x02\\x1c\\x33\\x8a\\x73\\xcc\\x0c\\x47\\xf1\\x9c\\x9f\\xae\\x40\\x3b\\x97\\x16\\xd0\\xd1\\x5f\\xbd\\xf6\\x46\\x6b\\x08\\xf6\\xac\\xce\\x3f\\x50\\xa7\\x03\\xb1\\xde\\xa8\\xd8\\x26\\xdf\\x84\\x2c\\xa1\\xba\\x20\\xd2\\x9f\\x45\\x48\\xac\\xfc\\x75\\x4c\\xf0\\x11\\xf5\\x70\\x68\\x1b\\x59\\xe4\\xda\\x25\\x38\\x5e\\xbd\\x6d\\x5c\\x3a\\xdc\\x93\\x05\\x29\\xe1\\x66\\xce\\x67\\x05\\xf6\\x01\\x02\\x10\\xdb\\x10\\x64\\x62\\xb3\\x33\\x32\\x04\\xe7\\xad\\xad\\xee\\x66\\x06\\xa5\\x62\\x06\\xb4\\x7e\\xef\\x20\\x74\\xb1\\x16\\xe2\\x2a\\x61\\x54\\x18\\xec\\x2c\\xdc\\x33\\x1f\\x1e\\x19\\xe0\\x7e\\x8a\\x37\\xb9\\x2d\\x69\\xdf\\x07\\x34\\xe0\\x85\\xda\\xee\\xb9\\x01\\xec\\x6e\\x8c\\x35\\xf1\\x03\\xf1\\xd8\\x6e\\xf0\\xd2\\xa2\\x65\\x2b\\x01\\xd1\\x83\\x59\\x7e\\x4c\\xfd\\xee\\xdf\\xe5\\xdf\\x9a\\x7e\\xf6\\x6a\\x1c\\x79\\x6a\\x37\\xa2\\x71\\x13\\xb9\\x44\\xdd\\x7b\\xa1\\x7c\\x46\\x00\\x15\\xab\\x8a\\xce\\x45\\x1c\\x57\\x85\\x0e\\xc6\\xc2\\x90\\xc5\\x4e\\x51\\x13\\xf5\\x5e\\x99\\xa8\\xe6\\xe4\\x71\\x1e\\x3b\\x78\\x17\\xbf\\x91\\xa5\\xad\\xb3\\x7f\\xb9\\x46\\x1b\\xe6\\xb1\\xb5\\x5d\\x58\\x60\\x46\\xe4\\x2a\\x54\\xc5\\xde\\xf4\\x07\\x6f\\x1f\\xf6\\xc3\\x1b\\x80\\x6f\\xc6\\x02\\x47\\x43\\x56\\xaa\\x28\\x99\\xea\\xe7\\x0f\\x5e\\x5a\\xbf\\x1f\\x75\\xa7\\xf2\\x4c\\x13\\x4c\\xde\\x11\\x79\\x3b\\xb1\\x62\\xe0\\x3a\\x58\\x3d\\x5b\\xe0\\x46\\xac\\xc7\\x34\\x56\\xd1\\x2d\\x50\\x9d\\x92\\xf7\\x70\\x57\\x68\\x68\\x6f\\x6c\\x71\\x4a\\x4e\\x57\\xec\\x88\\xb7\\x13\\x98\\xe2\\x3e\\x83\\x5d\\x6d\\x65\\x47\\x22\\x59\\x96\\xb7\\xed\\x08\\xf3\\xb7\\x44\\x3b\\xb1\\x7c\\x89\\x94\\x09\\x49\\x3d\\x0e\\xfe\\x84\\x55\\xbe\\xc8\\xe8\\xc2\\x84\\xa3\\xb1\\x49\\xa5\\xb4\\xca\\x63\\x1e\\xa6\\x20\\xb1\\xbb\\x81\\x7c\\xed\\xab\\xa5\\x0b\\x04\\x44\\x11\\x84\\x9d\\x26\\x0a\\x6f\\x2a\\x0d\\x3f\\x2c\\xce\\xec\\x38\\x42\\x71\\x9a\\x5e\\xa4\\xfe\\x18\\xdd\\xe0\\xd4\\x2d\\xcb\\x33\\xad\\x21\\xe6\\x45\\x33\\x25\\xaf\\x6f\\x3c\\x00\\x9f\\x2b\\xb9\\x78\\xd3\\x0c\\xee\\xae\\x9a\\xa4\\x92\\x8b\\xf7\\x37\\x67\\xcd\\xa9\\x29\\x2a\\xb8\\x93\\xce\\x5f\\xa3\\xaa\\x4c\\x23\\x21\\x63\\xb4\\x5c\\x64\\xed\\x79\\x77\\x77\\x9b\\x1c\\x0c\\xaf\\xcf\\xc2\\xb9\\xfa\\x08\\x4a\\x32\\x4f\\x11\\x3a\\xde\\xec\\x21\\x8b\\x47\\x35\\xb6\\xb4\\x64\\xdb\\x6d\\x46\\xc2\\x79\\x1a\\xf3\\x45\\x5f\\x1c\\xa5\\xea\\x1e\\x9a\\x04\\x8c\\x05\\x1a\\x54\\xdf\\xa0\"},\n{{0x59,0xb0,0x72,0x63,0xb2,0x2c,0x0a,0x38,0xbb,0xc5,0x91,0x05,0x95,0x94,0xb2,0xbd,0x92,0x7e,0x80,0x59,0x61,0xdd,0x07,0xe1,0xf9,0x42,0x45,0xb2,0x3a,0xa2,0xe0,0x16,},{0x0b,0x1e,0x4c,0xf5,0xaf,0xf2,0x78,0xec,0x65,0xb4,0x05,0xf5,0x10,0x8e,0x1b,0x5b,0x18,0xa9,0x69,0xad,0x1f,0x1e,0x63,0x81,0x91,0x2c,0x82,0xd6,0x98,0x90,0x7c,0xba,},{0x88,0x6d,0xa3,0x3e,0x35,0x53,0x28,0x5e,0xa5,0x9c,0x14,0x31,0xb6,0xe8,0x6e,0xa4,0x9b,0xb6,0x8b,0x2e,0x0e,0xfd,0x2b,0x15,0x7e,0x77,0x91,0xb7,0x4f,0x35,0xa2,0x42,0x1b,0xb3,0x59,0xf3,0xdc,0x1e,0x4c,0xe5,0xf1,0x1f,0x73,0x65,0x2e,0x03,0xbf,0xc0,0xb4,0x29,0xc5,0x8f,0x0f,0x2d,0x74,0x18,0xc7,0xc2,0x0b,0xce,0x2e,0x2d,0x19,0x01,},\"\\x08\\xce\\x0d\\x4d\\xb5\\xc2\\xaa\\x50\\x0a\\x19\\xef\\xbc\\x8d\\xc8\\x54\\x92\\x50\\xf7\\xdd\\x46\\xa7\\xa9\\xa5\\x40\\x74\\x17\\xb3\\xd5\\x18\\x20\\xe4\\xb0\\xd6\\x12\\x75\\x58\\x3f\\x56\\xf8\\x97\\xfd\\x94\\x2b\\xdd\\x73\\x11\\xad\\x6b\\xaf\\x73\\x81\\x28\\x56\\x7a\\xf6\\x55\\x8d\\x75\\x90\\x6a\\x02\\xc4\\x34\\x3a\\x99\\x55\\xd5\\x9b\\x11\\x08\\x8c\\x58\\x8d\\xc7\\xdd\\x08\\xf6\\x79\\x65\\xc5\\x60\\x2a\\x56\\x92\\x8d\\xda\\x4a\\xe1\\x64\\x29\\x31\\x63\\xb5\\x17\\xca\\x17\\xde\\xd0\\x4f\\xe4\\xab\\x2f\\x97\\x89\\x13\\x0a\\xe9\\x6a\\xb2\\x31\\xf0\\x7e\\x09\\x01\\x5b\\x78\\xf3\\x84\\x8c\\xef\\x43\\x5d\\xb0\\xad\\x9f\\x35\\xe0\\xfb\\xc9\\x85\\x1e\\x3e\\xcf\\xc9\\xfb\\x18\\x6d\\x14\\xd8\\xda\\x4d\\xda\\x45\\xd0\\xb3\\xeb\\x3e\\xe4\\x50\\x0c\\x10\\x1e\\x31\\x94\\xb5\\x72\\x14\\x06\\x89\\xcd\\x75\\xda\\x12\\x87\\xb2\\x54\\xf3\\x74\\xe3\\xd9\\x33\\x26\\xae\\x5f\\xaf\\x11\\x40\\x18\\xac\\x71\\x4b\\xd0\\x03\\x75\\xd9\\x2a\\x8b\\xb6\\x59\\xc3\\x29\\x12\\x83\\x1f\\x4f\\x20\\x77\\x6e\\x9e\\x2c\\x25\\x02\\x9f\\x0a\\xff\\x39\\xfd\\xda\\xc7\\x24\\x15\\x43\\xa0\\x36\\x6b\\x84\\xde\\x7b\\x1f\\xf2\\x3e\\x8e\\x4d\\xc0\\x93\\xdf\\x0d\\x2d\\xd5\\xe5\\x3e\\x68\\x47\\x94\\x8c\\xf3\\xd0\\xff\\x3f\\x56\\x4a\\xd9\\x4d\\x9c\\xc0\\x0a\\x5e\\xa5\\xb6\\x95\\xe4\\x08\\xbf\\x50\\xf5\\xba\\xb2\\xf6\\xea\\x87\\xba\\x8a\\xd3\\xa1\\x94\\x01\\x95\\xcf\\x1b\\xc2\\xb5\\xb3\\x48\\x47\\xad\\x3a\\x5e\\xff\\xb8\\xa7\\x82\\x3d\\xe9\\x1e\\xf1\\x63\\x38\\x69\\xd1\\xf0\\x46\\x43\\xaf\\x4d\\x82\\x6a\\x59\\xe7\\x8b\\x9d\\x18\\x63\\x12\\xb3\\xd9\\x72\\x26\\x36\\x54\\xac\\x55\\x87\\xb8\\x0b\\x71\\x76\\x46\\xf3\\x10\\x03\\xdb\\x81\\xac\\x70\\x86\\x0d\\x3f\\xc8\\xcd\\x3a\\x6a\\x0a\\x0d\\x57\\x6d\\x25\\x73\\x1e\\xf7\\xb8\\x96\\x62\\x63\\xd7\\xa0\\x5b\\x55\\x00\\x9e\\x8a\\x23\\xda\\xc0\\xf9\\xa2\\x1a\\x24\\xb0\\x6e\\x13\\x90\\x0e\\x44\\x44\\x46\\xfd\\xfe\\x56\\xcb\\xc1\\xa0\\x26\\xdf\\x41\\x06\\x6b\\x20\\x1b\\x14\\x81\\xe5\\x61\\x58\\x92\\x6c\\x0c\\x9e\\xa9\\x0f\\x0c\\x64\\x5a\\xab\\x4b\\xef\\x12\\xd4\\xe0\\x72\\xcb\\xfd\\xc3\\xc3\\xd5\\xe0\\xc7\\x2c\\xf8\\x8f\\x16\\x6d\\xe0\\x48\\x87\\x4f\\x35\\x34\\xe0\\x40\\xc6\\x2b\\x16\\x62\\x82\\x1b\\xdd\\x16\\xb0\\xe8\\x58\\x28\\x17\\x46\\x1c\\xb2\\x68\\x92\\x79\\xb4\\x46\\xd7\\x0c\\x8a\\xc2\\x0a\\xd0\\x3e\\x59\\x8c\\xad\\x49\\x08\\xc5\\x2c\\x35\\x0d\\x42\\x43\\xee\\x8a\\xed\\xb8\\x7a\\x4a\\xf9\\x77\\xf7\\xdb\\x57\\xcd\\x94\\x7b\\x47\\xd6\\xbb\\x51\\x40\\x9d\\x80\\xd8\\x1f\\x6d\\xb0\\x3c\\xb9\\xa6\\xa6\\xb7\\x98\\x12\\xf4\\x70\\x69\\x0a\\xfc\\x18\\x36\\xa5\\x31\\x33\\x80\\x94\\xcf\\x26\\xd3\\xc1\\x23\\x2f\\xd5\\x60\\x5d\\x8f\\x8c\\x55\\xb6\\xf8\\xa2\\xa7\\xef\\x1e\\x0c\\x78\\x15\\x55\\x94\\xb2\\x37\\x95\\x6d\\x2a\\xba\\xd6\\xa9\\xad\\xcd\\x58\\xe1\\x1c\\xcd\\x35\\xcc\\x99\\x5b\\x9a\\x0a\\xec\\xbf\\x7f\\x57\\x41\\xac\\x05\\x1b\\x04\\xef\\x6b\\x97\\x44\\xb5\\x6f\\xcc\\xb4\\x63\\x98\\x52\\x8b\\xb3\\x1f\\xbe\\x84\\xe0\\x78\\x84\\x3e\\x69\\xbf\\x33\\x88\\x98\\xcd\\xef\\x69\\xad\\x41\\x87\\x23\\x95\\xe4\\x6b\\x59\\x39\\x04\\x82\\x55\\x47\\xe0\\x0b\\xda\\xf2\\x21\\xf8\\xfa\\x58\\x7e\\xa2\\x03\\x7f\\xfb\\x9a\\xc9\\x30\\x7d\\xd3\\xf8\\xf3\\x5e\\xc5\\x38\\x6b\\xa9\\x66\\x33\\x3e\\x2a\\xc8\\x72\\x7b\\x0e\\x1b\\x80\\x61\\x2d\\x3c\\x7f\\x2c\\xb8\\x8b\\xaa\\xca\\xdf\\xe2\\x16\\x3b\\xc3\\x8c\\x88\\x84\\x2e\\x76\\xa3\\x94\\x57\\x1d\\x40\\x61\\x0e\\x8a\\x29\\x76\\x02\\x79\\x37\\x63\\x29\\x6e\\x3e\\xab\\xf7\\x20\\xe9\\x84\\xb2\\xed\\xd2\\x8c\\xf5\\xc4\\xe0\\xf9\\xa0\\xf7\\x6a\\xce\\xba\\x28\\xcc\\x1f\\x1b\\x69\\xff\\x1d\\x35\\xb4\\xbd\\x33\\x47\\xb7\\xf9\\xa9\\x5a\\x4c\\x1e\\xa1\\x07\\x34\\xe1\\xc9\\x18\\xeb\\x96\\x24\\x9d\\x0c\\xc7\\x0b\\x47\\x7f\\x6f\\x23\\x80\\x9b\\xbd\\xa9\\x01\\xd5\\x3f\\x48\\x5a\\x71\\xf5\\x08\\x60\\x02\\xc1\\xb7\\x1e\\xfc\\xc4\\x1c\\xb1\\xae\\xb5\\x12\\x2a\\x3f\\x3b\\xfc\\x96\\xc5\\x1a\\x55\\xd7\\x5c\\x02\\x98\\x42\\x88\\xbe\\x65\\x78\\x87\\x85\\x4c\\xfa\\x73\\x89\\x74\\xbc\\xd5\\x44\\x01\\x46\\xf9\\xbb\\x14\\x04\\x0d\\xe5\\x4f\\x54\\x44\\xad\\x43\\xb7\\x9a\\xf9\\xbd\\xb2\\x4e\\xd6\\xa4\\x8e\\xb2\\xfd\\xee\\xd7\\x1f\\x31\\xf0\\xec\\xe1\\x02\\xe9\\x18\\xe9\\x56\\x35\\xc7\\xa0\\x38\\x63\\x3e\\xe3\\x48\\xd8\\xb5\\x78\\x16\\x52\\xd5\\x05\\x9d\\x21\\x5a\\xc9\\x7f\\x30\\xea\\x20\\xd2\\x77\\xeb\\xbf\\x15\\x24\\x69\\x05\\x42\\x8a\\x7b\\xec\\x02\\xb8\\xf9\\x26\\x31\\x5b\\xad\\x67\\x23\\xfd\\x64\\xd7\\x1f\\xc9\\x5f\\x33\\x33\\x64\\xcb\\xe9\\x0d\\x46\\x46\\x33\\x3c\\x40\\xdd\\xa6\\xd1\\xd4\\x33\\xb7\\xc1\\x95\\xa7\\x58\\xdb\\xb4\\x03\\x8a\\xf5\\xdc\\xc7\\x23\\x2d\\x45\\x47\\xf5\\x40\\xe3\\x94\"},\n{{0x5c,0xc1,0x15,0xd8,0x39,0xe0,0x58,0xcd,0xb6,0x51,0x8e,0xe9,0xc1,0x61,0xc0,0x04,0xd8,0x8b,0xd3,0x90,0x8d,0x3c,0xf6,0xd5,0x2c,0x8f,0x29,0x6a,0x1a,0x07,0x6b,0x9b,},{0x1e,0x8f,0x33,0x05,0xbf,0x2f,0xa1,0x1b,0x17,0xd9,0x24,0x16,0xab,0x0e,0xa7,0x62,0x39,0x6d,0x88,0xf2,0xf9,0x70,0xef,0x0b,0x10,0x0e,0xd3,0xbf,0x5c,0xc1,0x34,0x40,},{0x03,0x71,0xc2,0xd6,0x4c,0x5e,0xc0,0xc8,0x27,0x6c,0xa5,0xff,0xa6,0x15,0xef,0xf4,0x2f,0x9e,0xff,0xfc,0x58,0xdd,0x8e,0xcf,0xcf,0x67,0x62,0x0a,0x9b,0xcb,0x38,0xfa,0xf1,0x18,0x93,0x2b,0xf2,0xcd,0x5b,0x92,0x05,0xfa,0x55,0x13,0x34,0xdf,0x2a,0x75,0x7c,0x59,0x77,0x44,0xf7,0x91,0xf3,0x71,0xfb,0xed,0xd9,0x8b,0x21,0xf7,0x34,0x05,},\"\\x53\\x3e\\x49\\xc1\\xd5\\xf3\\x3c\\x5e\\xc4\\xbe\\x84\\xc6\\x19\\xf4\\xec\\x64\\x9c\\x25\\xfd\\x70\\xbd\\xcf\\xe2\\x57\\xa6\\x3c\\x33\\x73\\xa4\\xd0\\x89\\xc8\\x9a\\xf6\\xee\\xb7\\x16\\x0d\\xd7\\x7a\\xb6\\x6b\\x1e\\xe7\\xe1\\x08\\x50\\xab\\x4f\\xc1\\xf3\\x51\\x32\\x33\\x2b\\x53\\x78\\x9b\\x2b\\x01\\x40\\xc4\\xf2\\x0f\\x97\\xf2\\x14\\x20\\x72\\xd6\\x24\\xaf\\xf7\\xaa\\xd3\\x24\\xaa\\xcd\\x06\\x8c\\x03\\x5a\\xff\\x52\\xfa\\x71\\x2f\\x4e\\x74\\x83\\x2d\\xe0\\x31\\xb2\\x64\\x23\\x14\\xd1\\x71\\x10\\xde\\xe6\\xfb\\x85\\x76\\x2d\\xc3\\x0d\\x7e\\x97\\x78\\x2f\\xd1\\xfb\\xff\\x71\\x79\\xf0\\x09\\x17\\xf5\\x5a\\xf7\\x50\\x3a\\x5b\\x7e\\x23\\xc6\\xea\\xdb\\x65\\xe1\\x04\\xf1\\x51\\x7b\\x66\\x24\\xc9\\xe5\\x20\\x4b\\x3f\\xd2\\x9a\\x65\\x85\\xe9\\x2c\\xe3\\xa3\\xee\\xe2\\xc5\\xae\\x17\\x79\\x20\\xf7\\xb4\\xab\\x2c\\xac\\x87\\xd6\\x72\\xab\\x6b\\xaa\\xc1\\x18\\x6d\\x90\\x4a\\xea\\x34\\x98\\x53\\x4e\\xb5\\xab\\x23\\xe4\\xac\\x4c\\x0d\\xdb\\x0d\\x82\\xa5\\xae\\x53\\x1d\\x76\\x54\\x9d\\x36\\x76\\x28\\x57\\x7b\\xac\\x42\\x35\\xe8\\x97\\xd9\\xfe\\x20\\x55\\x22\\x04\\x7d\\x21\\x4f\\xf6\\xcc\\xf3\\x11\\xc4\\xe3\\x97\\x82\\x7d\\x97\\xf2\\x86\\x8e\\x70\\xac\\x17\\xd2\\x8e\\x33\\x49\\x99\\x74\\x4d\\x35\\x93\\x76\\xa4\\x82\\xfd\\xcb\\x41\\x4b\\x02\\xb2\\x68\\x7b\\x96\\x2e\\xe8\\x08\\x6e\\x57\\x3f\\xe0\\x00\\xdc\\x51\\xde\\xe0\\x68\\x79\\xc6\\x84\\xe2\\x5f\\x94\\xce\\xe5\\xe8\\x61\\x34\\x7e\\x7b\\xe7\\xfc\\xa5\\x49\\xa0\\xf7\\x65\\x13\\x6a\\x2f\\x4b\\x88\\xfe\\xde\\x07\\x02\\x4d\\xd2\\xfc\\xe1\\xf6\\xd0\\xc0\\x35\\x4d\\xa1\\xa1\\x6e\\xf3\\x66\\xb3\\x15\\xb3\\xf7\\x23\\x30\\x31\\xf9\\x79\\xb7\\x0e\\xac\\x6e\\x23\\xbf\\x3b\\x34\\x9e\\xfb\\xd0\\xe4\\xf5\\x3f\\x4d\\x5c\\x41\\xfc\\x00\\x42\\x76\\xa5\\x96\\x70\\x65\\x9f\\x69\\x05\\xef\\x03\\xd2\\xfc\\x09\\x8d\\x58\\x9f\\xcb\\xc1\\x32\\x82\\x82\\xfa\\x22\\xb1\\x0d\\xb8\\x3c\\x5d\\x70\\x86\\x59\\x94\\xfd\\x19\\xd7\\x60\\xa3\\x9d\\x47\\x6e\\x02\\x33\\x0d\\x2c\\x6d\\x19\\xe7\\x42\\x26\\x7d\\xd3\\x65\\xbb\\xe1\\xfe\\x5c\\x71\\x1a\\x95\\xb1\\x84\\x50\\x8c\\xe4\\x8c\\x1c\\x96\\xd7\\xe6\\x39\\x90\\xb4\\x08\\xd4\\x50\\x89\\xbe\\x79\\xe3\\x2f\\x9c\\xb0\\x16\\x2f\\xd1\\xe7\\xd0\\xd1\\x9d\\x97\\xd0\\xae\\x78\\xff\\x82\\x4c\\xc6\\x98\\x94\\x86\\xc0\\xbd\\x03\\x83\\x52\\x55\\x1f\\x37\\x49\\x9e\\x9e\\x98\\x26\\x80\\x4e\\x9d\\x26\\x24\\xad\\x0c\\x7b\\x75\\x34\\x56\\x0f\\x45\\xfd\\x7d\\x32\\x4b\\x8e\\x51\\x7e\\x01\\xc9\\xb2\\x74\\x3c\\x14\\x97\\x9c\\xfd\\x51\\x2b\\xc3\\xfe\\x66\\x72\\x79\\xb3\\xa2\\x77\\xfb\\x46\\x3e\\x9d\\x73\\x49\\xb6\\x4f\\xfc\\x9f\\xe6\\x08\\x84\\xc2\\x1e\\x48\\x10\\x81\\xed\\x70\\xe6\\xda\\x5a\\x35\\x39\\xc4\\x48\\x97\\x1f\\x0d\\x97\\x87\\x28\\x9f\\xcb\\x00\\x80\\xf2\\x19\\xe9\\x94\\x49\\xf8\\x29\\x8c\\x42\\x47\\x5f\\x87\\xfd\\x10\\xae\\xb5\\x09\\xc5\\x30\\xcf\\x6a\\x57\\x74\\x8e\\xb8\\xf3\\x56\\x21\\x61\\xfa\\x48\\x75\\xea\\x95\\x3f\\x09\\x65\\x9c\\x7d\\xf7\\xa9\\x95\\x0f\\x03\\x17\\x46\\x7c\\xb4\\xe5\\x36\\x6e\\x19\\x6e\\x32\\xf5\\xe2\\x69\\x67\\x33\\xa2\\x5e\\xac\\xbd\\xe4\\x92\\x10\\x49\\x07\\x62\\x06\\x0e\\xa2\\x31\\x37\\x0d\\x40\\x90\\x42\\x9b\\xb0\\x6b\\xb8\\x67\\x39\\x9e\\x8d\\x37\\xbf\\x5d\\x21\\xa0\\xe7\\x21\\x47\\xe4\\x96\\xcf\\x3b\\x7d\\xd6\\xfe\\x6e\\x5e\\xde\\xa9\\x66\\x8d\\x80\\x21\\x90\\xa9\\x1c\\x60\\x0e\\x29\\x52\\x3f\\x8e\\xb9\\x04\\xe4\\x8b\\x70\\x41\\x2b\\xc1\\x0a\\x70\\x20\\x98\\x4c\\x5f\\xf0\\xf5\\xf3\\x83\\xf2\\x14\\xae\\x59\\x4d\\xc8\\x59\\x71\\xe4\\x80\\x37\\x28\\x48\\xd0\\xd7\\xe7\\xcc\\x5c\\x18\\xff\\x88\\xba\\x9b\\x26\\x2d\\x78\\x84\\x69\\x8a\\x41\\xc6\\xc7\\x81\\x9c\\x03\\x19\\xfd\\xc6\\xbb\\x07\\xb9\\x1d\\xc1\\x69\\x4d\\xaf\\xe3\\xaf\\x37\\xa5\\x38\\xbf\\x2b\\x2d\\x8c\\xac\\xb2\\x7d\\x24\\xcd\\xc6\\xea\\xdb\\x8c\\x6a\\x2e\\x6b\\x7d\\xf8\\xa4\\x65\\x4a\\xe9\\x37\\x85\\x0c\\x89\\x0a\\xd9\\x30\\x98\\x0a\\xfc\\xc1\\x49\\x2d\\xb8\\xa0\\x16\\x8c\\xbc\\x9f\\x10\\x65\\x7e\\xb4\\x8d\\x2a\\xc8\\x7f\\x51\\x75\\xd2\\x3c\\xae\\xd4\\xb5\\xe6\\xf1\\x0b\\xbe\\xaa\\x5e\\x33\\xfc\\x5f\\x64\\x18\\xd6\\x3b\\xa3\\x74\\xab\\x1a\\x3c\\xbd\\x36\\xb7\\x29\\xdd\\xbd\\xab\\xa9\\x89\\xd4\\x64\\x5e\\x3a\\x66\\x13\\x0b\\xae\\x41\\x7c\\xad\\x08\\x6d\\xad\\xd3\\x08\\x43\\x35\\x25\\x14\\xc3\\x75\\xf2\\x57\\x1a\\xba\\xf9\\x3e\\x9a\\x07\\x71\\xfa\\x10\\x3a\\xe9\\x25\\x85\\xb0\\x4f\\x55\\xc4\\x34\\x76\\x9b\\x43\\xd6\\xd2\\x2f\\x75\\x3f\\x93\\x06\\x03\\x6e\\x53\\x52\\x4f\\x6f\\x4d\\x9c\\xcb\\xd2\\xc3\\x03\\x17\\xa8\\xe8\\x99\\xf3\\x16\\x14\\x90\\x35\\x89\\x4d\\xa9\\x45\\xb7\\x6d\\x90\\x82\\xbf\\xee\\x32\\x8e\\x7a\\x31\\xb6\\x63\\x28\\xee\\x8b\\x94\\xe0\\x68\\xc7\"},\n{{0x75,0xa5,0x03,0xf4,0x8f,0xfc,0x22,0x16,0x17,0x67,0x25,0x19,0x11,0x1b,0xf9,0x0d,0xa3,0x9d,0xa9,0xea,0xb2,0xe2,0x91,0x4f,0xd3,0x75,0x5f,0x10,0xf5,0x39,0x36,0x68,},{0xf6,0x80,0xcc,0x0f,0x63,0x58,0xcd,0xcf,0x53,0x7a,0xa7,0x11,0x28,0xcf,0xad,0xfc,0x0f,0x3a,0x89,0xc1,0x00,0xaa,0x34,0xbc,0xd2,0x42,0x7e,0x24,0x8b,0x6e,0xd5,0x0b,},{0xdf,0x28,0xe3,0xe6,0x30,0x36,0x08,0x67,0x86,0x4b,0xc4,0x1e,0x43,0xfd,0x7d,0xde,0xb5,0x28,0x76,0xdc,0xe9,0xb2,0x34,0xa3,0xfc,0xc3,0xd8,0x54,0x9d,0xb0,0x11,0x2e,0x17,0x63,0x90,0xa6,0x85,0xeb,0xd4,0x84,0x93,0x6e,0x25,0xc0,0x8c,0x8a,0x38,0x78,0xa3,0x7b,0x3c,0x4e,0x23,0x9a,0xd0,0xa0,0xe5,0x01,0x99,0x37,0xff,0xbc,0xd4,0x07,},\"\\x7b\\x01\\x09\\x04\\x23\\x23\\x6c\\xb4\\xb1\\x3c\\x41\\x77\\xfc\\xe5\\x2a\\x7f\\xf6\\x58\\x05\\x88\\xcc\\x2e\\xb5\\xa3\\xf3\\x9f\\xf5\\xd0\\xc7\\x3e\\x01\\xe0\\x1b\\xf7\\xbd\\x74\\xaf\\xe4\\x15\\x12\\x50\\xc3\\x91\\x42\\x6e\\xa5\\x07\\x27\\x1b\\xea\\x1d\\x6d\\x85\\xf0\\xb2\\xfe\\x35\\xc4\\x05\\x00\\xf9\\x8d\\x06\\x56\\xc6\\x38\\x8f\\xc9\\xef\\xba\\x18\\x37\\xdb\\x22\\xdf\\xa2\\x9d\\x89\\x26\\x76\\xf5\\x0e\\x57\\x5f\\xe8\\x9f\\xd2\\x93\\x89\\xd0\\x9d\\x08\\x0b\\xad\\x67\\xba\\x54\\x4c\\xac\\xab\\xf5\\xa7\\x73\\x82\\x37\\xc5\\x5e\\x28\\x75\\xed\\x49\\x16\\x30\\x2a\\x2b\\x4d\\xc4\\x96\\xe7\\x42\\x73\\xbf\\x05\\x19\\x11\\x37\\x81\\x0e\\x50\\xe4\\x81\\x95\\x26\\x0b\\xab\\x6d\\x81\\xf9\\xc8\\x05\\x62\\xee\\x73\\xcc\\xb9\\x33\\x3c\\xd9\\xb6\\x1d\\xaf\\x5b\\x00\\x38\\xa4\\xe6\\xc5\\xc9\\x58\\xa9\\x1f\\x68\\x50\\x8c\\x1d\\x88\\x25\\x19\\xc1\\xaa\\x4f\\xfc\\xc5\\x35\\x62\\x46\\x3a\\x0a\\xe3\\x01\\x63\\x69\\x6f\\x84\\xb9\\x7c\\xcb\\xd8\\x67\\x98\\x20\\xed\\xd3\\x61\\x7e\\x7b\\x89\\x6e\\xef\\xfe\\x34\\x1e\\xc6\\xb5\\xb0\\x3f\\x73\\xb6\\x25\\xd7\\x41\\xc6\\x55\\xfe\\x6e\\x82\\xd1\\x1d\\x47\\x8a\\x7d\\x54\\x3f\\xf6\\xc0\\xfa\\x3a\\x3a\\x8c\\x94\\xa6\\x16\\xfb\\x84\\x70\\x70\\xd1\\xfb\\xdd\\xe6\\x01\\x0f\\x02\\x6b\\x08\\x9c\\xd8\\x63\\xc3\\xbd\\x29\\xb1\\xc4\\x26\\x9f\\x77\\x65\\x9e\\x51\\x57\\x28\\x89\\x0c\\x97\\x3b\\xe8\\x7f\\x0b\\x83\\x3c\\xa5\\xaf\\x6b\\x4c\\x31\\x33\\xad\\x4f\\xa4\\xf9\\x16\\x55\\xc6\\xad\\xb5\\xb7\\x23\\x5c\\x27\\xfe\\x34\\x82\\x84\\xf3\\xf1\\x33\\x66\\xa6\\xa0\\x3a\\xd2\\x2b\\x87\\xc6\\xf5\\x58\\x4b\\xde\\xae\\xa4\\x8c\\x70\\x32\\x5d\\x6e\\x33\\xa4\\x75\\xf5\\x05\\x11\\x06\\x38\\x75\\x19\\x2a\\x87\\xed\\xc3\\x88\\x08\\x9b\\x84\\x39\\x53\\x90\\xc2\\xa3\\xad\\x89\\xa2\\x25\\x95\\xdc\\x4a\\x71\\x5a\\x42\\xa2\\xc0\\xef\\xde\\xf6\\x7b\\x35\\x4b\\x34\\xfc\\x75\\xca\\x98\\xdf\\x91\\x3e\\x75\\x9e\\x51\\xc7\\xf6\\x25\\xdd\\xd5\\x98\\xac\\x22\\xd4\\x21\\xde\\xcb\\x57\\xbe\\xbd\\x54\\x22\\x0e\\xc6\\xda\\xa5\\xec\\xe7\\x69\\xd2\\xe0\\x1b\\xe7\\xb6\\xbe\\xe2\\xff\\x5a\\x0b\\x06\\xb3\\x2d\\x6d\\xa1\\xd7\\xbc\\x05\\x7e\\x3a\\xbf\\xaa\\xb2\\x42\\xa3\\xf7\\xe6\\x64\\x6a\\x15\\x9e\\x4f\\x50\\x5e\\x46\\x62\\x98\\x2b\\x13\\xd0\\xcc\\x1f\\xba\\x91\\xd1\\x03\\x09\\xa4\\x2d\\xc1\\x08\\x7c\\xf1\\x0d\\x36\\xe3\\x1f\\x17\\x06\\x15\\xa0\\xac\\xb5\\x08\\xbf\\x68\\x3e\\x2d\\xe0\\x0c\\x87\\x64\\x0d\\x30\\x4a\\x94\\x7b\\xc4\\x97\\x1f\\xf3\\x61\\x9c\\x72\\xab\\xd8\\x3c\\x7b\\x2c\\xbb\\x34\\x64\\xc4\\x04\\x0c\\x26\\x62\\xb5\\x85\\x08\\xb7\\x46\\x80\\xcf\\xa6\\xde\\x06\\xe8\\xd2\\x1e\\x3b\\xec\\x85\\x11\\x19\\x93\\x12\\x68\\x00\\x09\\x07\\x1f\\x70\\x6b\\x7b\\x13\\x3a\\x24\\x87\\xd5\\x74\\x5f\\xfa\\xdd\\x5d\\xc0\\xeb\\x2b\\x55\\x3d\\xf4\\x40\\x78\\x7f\\x01\\x1d\\xda\\x37\\x71\\x9f\\xa7\\x13\\x15\\xe8\\xb2\\x91\\xef\\xd7\\x7d\\xa3\\xba\\x14\\xfb\\x99\\x5f\\x03\\x57\\x1a\\x3d\\xb5\\x22\\xb6\\x3c\\x60\\xbe\\x56\\x19\\x94\\x16\\x99\\xb3\\x92\\x22\\xb5\\x9d\\x0f\\x23\\xe5\\xeb\\x37\\xea\\xd4\\xb7\\xf7\\x50\\xed\\x4a\\xbf\\x4d\\xb8\\x7c\\x70\\xda\\x66\\x5b\\xef\\x4d\\x7a\\x29\\x21\\xb2\\xc9\\x98\\x97\\xf2\\x32\\x1c\\x9b\\xe6\\x07\\x5e\\x74\\x4c\\x82\\x28\\x63\\x9a\\xb7\\x36\\xdb\\xeb\\x2b\\xea\\xb4\\x40\\xc1\\x56\\xa3\\x9a\\x2e\\xfd\\x26\\x1d\\xb5\\x08\\x55\\xe3\\x04\\xd9\\xcf\\xeb\\x99\\x14\\x1c\\x61\\x35\\x58\\x10\\x9f\\x21\\x47\\x4d\\x27\\x2a\\x2d\\x90\\x6d\\x48\\x93\\x93\\x4a\\xff\\x8e\\x08\\xa4\\xfc\\xee\\x96\\x4a\\x5c\\xd0\\x07\\x32\\xfd\\x33\\xaf\\x29\\x84\\x9c\\x8d\\xfc\\xa6\\x59\\x79\\x42\\x18\\x57\\x18\\x5c\\xf6\\x29\\xf8\\x68\\x07\\xa8\\x59\\x73\\xd3\\x44\\x0a\\x6b\\xf8\\x11\\xa5\\x8d\\x04\\x13\\x87\\x24\\x98\\x11\\xec\\x04\\x7e\\x5e\\x8b\\x34\\x3b\\x23\\x87\\xd0\\x18\\x1e\\x0d\\x0b\\xd4\\x61\\xef\\x10\\xe8\\x16\\x4a\\xae\\x35\\x7d\\x9b\\x29\\xdc\\x0a\\xce\\x3e\\xc6\\xd7\\x43\\xae\\x34\\x54\\xab\\x9f\\x84\\x2a\\x28\\xd5\\x71\\x02\\x17\\xdf\\xfe\\x50\\x34\\x4e\\x8d\\x93\\x2f\\x18\\x01\\xb0\\xe8\\xf9\\x66\\x19\\x8e\\xf1\\xc9\\xcc\\x69\\x69\\xf3\\x47\\x34\\xaa\\x6a\\x63\\xae\\xaa\\xb4\\x33\\x9f\\x75\\xd3\\x4f\\xfa\\x8a\\xcb\\x93\\x7e\\xd9\\xc7\\x30\\x92\\xa3\\x09\\xa9\\xb8\\x4a\\x25\\x01\\x1e\\x31\\x14\\xc2\\x65\\xe4\\xf6\\x02\\x33\\x7e\\xb6\\x99\\xb5\\xa2\\x2d\\x57\\x2b\\x03\\xe4\\xda\\xd0\\x3b\\x04\\x61\\xc0\\x0d\\xb9\\x67\\x9b\\x72\\xfc\\x5b\\x49\\x3e\\xf4\\x48\\x6f\\x85\\x53\\x5d\\x81\\x3a\\x58\\x08\\x03\\x85\\xaf\\xd4\\xe8\\xd8\\x71\\x82\\x80\\x34\\x33\\x4b\\xfe\\x44\\x1d\\x18\\x98\\x4e\\x4d\\xfc\\xde\\x02\\x44\\x03\\xb5\\xae\\x66\\xcc\\x50\\xa4\\x73\\x01\\xb5\\x7f\\x9a\\x32\\xf7\\x40\\xbd\\xc7\\xff\\x1d\"},\n{{0xd8,0xaa,0x2a,0x0a,0xa5,0x14,0xfd,0x84,0x5f,0x7a,0xa6,0x6b,0x83,0xc0,0xea,0xbb,0x9c,0x16,0x02,0x3a,0xbc,0x16,0x95,0x77,0x34,0x50,0xb2,0xbb,0x33,0x25,0x22,0xf2,},{0xe4,0xe8,0xd6,0xb2,0x98,0x24,0x8c,0x15,0xfe,0x08,0xf8,0x7a,0x3b,0xc6,0x08,0x4b,0xf2,0xd6,0x4d,0x7f,0x1e,0x4b,0x2d,0x51,0x59,0x9e,0x9f,0xad,0x9c,0xc9,0x10,0x92,},{0x14,0x6f,0x65,0xd4,0x3e,0x71,0x55,0x42,0x89,0x4b,0x79,0x00,0xa2,0xf8,0xcd,0x4b,0x17,0xd3,0x87,0x0a,0x61,0x00,0xe3,0x7d,0xe0,0x05,0xb0,0xdb,0x5d,0x81,0x51,0x24,0x6d,0xe4,0xee,0x38,0x42,0xd3,0xeb,0xca,0x20,0xa5,0xda,0x22,0xa3,0x63,0xa7,0x57,0x5e,0x7a,0x55,0x12,0x82,0x95,0xf2,0x72,0x11,0x48,0x4a,0xf5,0x7c,0xd5,0x31,0x09,},\"\\x08\\xde\\xb3\\xb8\\x32\\xf5\\x2d\\x65\\x56\\xf7\\x8c\\x3f\\x0a\\xbe\\x46\\xf1\\xef\\xe4\\x5e\\x3d\\x5d\\x88\\xe7\\xf8\\xed\\xf8\\x03\\x67\\x0c\\xe4\\x61\\x29\\x21\\x74\\x9e\\x9e\\xce\\x63\\xfd\\xc9\\xbe\\xf2\\xba\\x48\\x38\\x12\\xbb\\x62\\x2b\\xe7\\x44\\xd4\\x04\\x04\\xfd\\x6e\\x09\\xc9\\xe1\\xcb\\x7c\\xe1\\x9d\\xe8\\x1a\\x9d\\xad\\xf5\\x56\\x35\\x2e\\xe8\\x98\\x10\\xc7\\x6a\\x9b\\x10\\x47\\xac\\x62\\xb1\\x6e\\xbb\\x7d\\xa2\\x3d\\xdc\\x2d\\x4a\\xb7\\x6a\\x02\\x05\\x61\\xd0\\x2d\\x41\\xb5\\x8b\\x94\\x95\\x3a\\x23\\xfa\\xaf\\xdd\\xd7\\x81\\xb7\\xdc\\xa7\\xb7\\xfb\\xee\\x70\\x6e\\xc1\\x0a\\x73\\x12\\x5b\\xf7\\x44\\x36\\x05\\x6b\\xf3\\xb4\\xf2\\xa0\\x70\\x1c\\xfe\\xf0\\x5b\\xeb\\xd3\\xdd\\x8e\\xef\\x30\\x6c\\x1a\\xc1\\xb0\\x09\\x50\\x88\\x1f\\xf0\\x5a\\xb5\\xc8\\x24\\x8a\\xd1\\x09\\x6a\\xc9\\x1d\\x52\\x6a\\xe5\\x9b\\xa0\\x58\\x3b\\x27\\xdb\\x7d\\x1e\\x39\\x0f\\x57\\xa5\\x88\\x9e\\x27\\x99\\xa4\\xa1\\x51\\x9b\\x15\\xd9\\x3d\\xbf\\x0b\\x21\\xd4\\x50\\x87\\x3c\\x76\\xba\\x52\\x04\\x61\\xe8\\xbb\\x5c\\x83\\xc9\\x01\\x2e\\xac\\xd5\\x57\\xbe\\xa6\\x40\\x58\\x6e\\xfc\\xb8\\x69\\x00\\x76\\x47\\xd4\\x49\\xf9\\x1c\\xcd\\x52\\xaf\\xe3\\xa8\\x94\\x77\\xde\\x7c\\x2b\\x64\\x7e\\xcc\\x9b\\xf9\\x67\\xfb\\xf5\\x76\\x9d\\x74\\x88\\x94\\x47\\xd9\\x52\\x2d\\x9e\\x80\\x69\\xc3\\x49\\x9a\\xf6\\xa8\\xa1\\x09\\x7a\\x95\\xd3\\xbc\\xc5\\xf8\\x34\\x33\\x93\\x44\\x84\\x31\\x4c\\xb3\\x07\\x58\\xb5\\x25\\xfe\\x53\\xe9\\x07\\x21\\xdf\\x5c\\xbe\\x03\\xd9\\x6f\\x0d\\x0f\\x98\\x52\\x1f\\x01\\xa5\\xfb\\xe5\\x7c\\xe8\\x80\\x4d\\xbd\\x18\\xf8\\xf5\\xea\\xc8\\xf7\\xdb\\xb5\\x8c\\x41\\x78\\x9a\\x44\\x43\\x3f\\x8a\\x8d\\x12\\x45\\xd2\\xad\\xda\\x8c\\x78\\xd8\\x81\\xc6\\x5e\\xa6\\x61\\xab\\x17\\x8d\\x4f\\xc2\\x63\\x4c\\xd6\\xcb\\x51\\x4a\\xb6\\xf2\\x54\\x3e\\x91\\x12\\x18\\x3f\\x3f\\xf7\\x3a\\x3f\\x45\\x01\\x06\\xb0\\xee\\x8a\\x34\\x7a\\x80\\xcb\\x82\\x4a\\xc1\\xf8\\x01\\x64\\xe3\\xbb\\x51\\x23\\x69\\x8d\\xe0\\xe7\\x47\\x35\\x9c\\xa3\\x5a\\xca\\xa3\\xba\\x0c\\x94\\x3b\\xea\\xcd\\x7a\\x9b\\xdf\\x8f\\xf7\\x39\\x78\\xe9\\xfb\\x00\\x20\\x45\\xe8\\xfe\\x56\\x48\\xcc\\x0f\\x9c\\xfa\\x88\\xb0\\xd8\\x12\\xe8\\x1a\\xa6\\x2e\\x0d\\x9c\\x73\\xfe\\x61\\x3a\\xfd\\x95\\x39\\xbc\\xb6\\x15\\x72\\x1f\\xb4\\x97\\xd6\\x2f\\x65\\xc8\\x3b\\x87\\xa6\\xd2\\x14\\x3f\\x9b\\x1c\\x88\\x0e\\xc8\\x67\\x1b\\xd4\\x2c\\x8d\\xe9\\x57\\xb1\\xa6\\x8e\\xe4\\x92\\x26\\xff\\x71\\x7c\\xcc\\x6e\\x74\\xf2\\xee\\xe4\\x9c\\x30\\xde\\xa5\\x3f\\xec\\x3c\\xd4\\xd9\\x0f\\x2c\\xcc\\xd8\\xf9\\x7c\\x55\\xd5\\xc7\\x52\\x45\\x4b\\xe2\\xba\\x7b\\x6f\\xf2\\x03\\x0b\\xe6\\x7e\\x0d\\xf5\\x0c\\x5e\\x88\\x38\\x43\\xe7\\x16\\x12\\xf2\\xb9\\x53\\x59\\x54\\x3e\\x2b\\xa1\\xbf\\x2e\\x98\\xde\\xbc\\xf5\\x76\\x8f\\x2b\\xe6\\xfd\\x50\\x4d\\x97\\x83\\xce\\x92\\x1a\\x81\\xe0\\x94\\x16\\xdb\\xcf\\x2b\\xb6\\x55\\xa9\\x24\\xb1\\xef\\x01\\x12\\xd6\\x71\\xf0\\x84\\xa5\\xb6\\x90\\xb0\\xb6\\x4a\\x8b\\x9b\\xf5\\x03\\x33\\xc3\\x59\\xff\\x3f\\xef\\x19\\x96\\x94\\xf9\\xb6\\x29\\x24\\x24\\xf0\\x06\\x66\\xce\\xf6\\xd0\\x6d\\x16\\x1a\\x79\\xe3\\xa1\\xb9\\xb9\\x62\\x9e\\xea\\x53\\x50\\x5f\\x5e\\x36\\xae\\xad\\xfe\\x0d\\x75\\x96\\x72\\xb0\\xff\\xe4\\x98\\x39\\x7d\\x90\\xa5\\x5d\\x99\\x44\\xb3\\x05\\x41\\xa7\\xe1\\xbd\\xac\\x53\\x02\\x06\\x40\\x13\\x7d\\xc2\\x52\\xae\\xf6\\x22\\xf3\\x81\\x9d\\x36\\xab\\x49\\x8d\\x76\\x3e\\x43\\x27\\xba\\x85\\x80\\xdd\\x9f\\x7e\\x5f\\x47\\xc2\\x4c\\xc9\\x92\\x87\\x34\\xb7\\xe6\\x21\\x12\\xc5\\x7e\\x3e\\x0c\\xfe\\xde\\xcd\\xcb\\xac\\xcb\\x0c\\x45\\xaf\\x82\\x19\\x45\\x5e\\xe7\\x22\\x3c\\x71\\xe7\\xe2\\x04\\x10\\xc5\\x24\\x4e\\xb8\\x27\\xaf\\x2f\\x39\\x35\\xce\\x47\\x55\\x44\\x47\\x47\\xaa\\x94\\x5f\\x4c\\x26\\xdb\\x3a\\x29\\x85\\x19\\xe7\\x5f\\xc6\\xba\\xce\\x91\\x52\\x99\\x72\\xe8\\x69\\x1b\\x69\\x4d\\x30\\xaa\\x8b\\x5e\\xc4\\xc1\\xa0\\x28\\xd3\\xbd\\x10\\xbd\\x0c\\x8a\\x40\\x8f\\xb7\\xd9\\xd7\\x03\\x49\\x55\\x53\\xec\\xea\\x59\\x8d\\x06\\x22\\xdc\\xc7\\x4d\\xe4\\x89\\xba\\x71\\x95\\xcd\\xae\\x8d\\x5c\\xff\\x98\\x55\\x92\\x18\\x37\\xb5\\x28\\x43\\x3e\\xe5\\x5c\\x0b\\x70\\x90\\x85\\x7a\\x0c\\x27\\x84\\xd9\\x31\\x0b\\x48\\x25\\xa7\\x99\\x3a\\xd9\\xc6\\xf1\\x8f\\x83\\xbc\\xa5\\xcc\\x6a\\x25\\x04\\x71\\x68\\xa8\\x37\\x6b\\x06\\x2e\\x3a\\x48\\xea\\x90\\xca\\xd8\\x8e\\x33\\x11\\x87\\xc2\\xb6\\xf2\\x81\\x42\\x6f\\x81\\xf7\\x88\\x04\\xa8\\x95\\xc4\\xec\\x06\\xc3\\x41\\xfe\\x84\\x6a\\xf4\\x52\\x7e\\xa2\\x60\\x69\\xdc\\xf6\\x1d\\x81\\x3f\\xdd\\xf0\\xfc\\x43\\xc7\\x07\\x35\\x0b\\xfb\\x2f\\xc1\\xcf\\xfc\\xee\\x7d\\x7c\\xcd\\x7d\\x75\\xf7\\xa4\\x65\\xa3\\xd1\\x4d\\x57\\x30\\x2c\\x14\\x6a\\xba\\x3e\"},\n{{0xde,0x8f,0x1c,0x99,0xe7,0xf8,0x55,0x6d,0xf2,0x0b,0x59,0xb8,0x50,0x4c,0xff,0x7c,0x6c,0x52,0x41,0xa8,0xae,0xeb,0x30,0xb9,0x2e,0xab,0x97,0xbf,0x48,0x1d,0x0f,0xe9,},{0xe4,0x63,0x79,0x1d,0x0f,0x56,0x7e,0xe7,0x3a,0xbb,0xf4,0x7d,0xd5,0x71,0x67,0xa5,0x35,0x61,0x3b,0x05,0xcd,0x48,0xd9,0x2e,0xbc,0x7d,0x24,0xe6,0xeb,0xff,0x95,0x73,},{0x30,0xab,0xc4,0xe4,0xe4,0xb3,0x88,0x58,0x1e,0x66,0x8b,0xd4,0x09,0xee,0x18,0xa6,0xed,0xe8,0x1a,0x13,0x6c,0x28,0xa2,0x92,0x4d,0xf5,0xfc,0x00,0xd7,0xc2,0x80,0xd9,0x78,0x62,0xae,0x3a,0x67,0xa9,0x35,0xce,0x49,0x23,0x64,0x13,0x5e,0x65,0x9a,0xdb,0x5f,0xba,0xbe,0x68,0x98,0x16,0x59,0x1f,0x49,0xac,0x50,0x22,0xa3,0x87,0xcc,0x09,},\"\\x38\\xd9\\x3e\\x5c\\x98\\x01\\xdb\\x90\\x17\\x97\\xec\\x75\\xc6\\xdd\\xdc\\x65\\xae\\x79\\x80\\xde\\x21\\x0b\\xed\\x43\\xb3\\x3e\\xb4\\x4c\\xdc\\x6d\\xc9\\x93\\x3f\\xb6\\xbe\\xc7\\x42\\x1d\\xb1\\x0f\\x0a\\x59\\x32\\x0b\\x9e\\x64\\x2a\\x21\\xf1\\xdd\\x23\\x56\\x01\\xfc\\xd6\\xc5\\x3b\\xe4\\xa8\\x77\\xf4\\xfe\\xd3\\xfa\\x4a\\x0a\\xd4\\xdc\\x6e\\x9b\\x39\\x1b\\xcf\\xa4\\x34\\x90\\x69\\x25\\xba\\x45\\xec\\xc5\\xb4\\x35\\xd9\\xab\\x8c\\xfa\\xfc\\x39\\x4b\\xdc\\xca\\x9b\\x07\\xd5\\x66\\x83\\x93\\x44\\x6e\\x34\\x00\\xe9\\x03\\x94\\x35\\xa1\\xdc\\x78\\xcb\\xc0\\x88\\x07\\xa3\\xfb\\x24\\xca\\x8b\\x19\\xf6\\x4e\\xa0\\x8b\\x8b\\xf6\\xc2\\x0a\\x19\\x5b\\x51\\xff\\x80\\x15\\xf3\\xe7\\xc9\\x1d\\x08\\xe4\\xbc\\x62\\x41\\x55\\x95\\xa5\\xa8\\x82\\xfb\\xa6\\x51\\xdc\\x3a\\x67\\x51\\x87\\xaf\\x61\\x82\\x49\\x74\\x7b\\x46\\x80\\xd1\\xd1\\x5a\\x20\\x2e\\xa9\\xdf\\x48\\xb1\\xc2\\x14\\xfd\\x40\\x34\\x66\\xfd\\x1a\\x26\\x5f\\x2d\\xef\\xaf\\x8e\\xd5\\xa6\\xbf\\x0e\\xb0\\x8d\\x18\\x64\\xf2\\xa2\\x8e\\x94\\x72\\x14\\x3c\\x6f\\xd1\\x03\\xb6\\xb1\\x08\\xc0\\xd1\\xd1\\x36\\x3b\\x99\\xf9\\x20\\x2d\\x11\\xf0\\x20\\x56\\xc2\\x79\\xcc\\xa3\\x15\\xdb\\x1a\\xb6\\xd3\\x10\\x18\\x45\\x8f\\x57\\xba\\x33\\x16\\xcd\\x27\\x38\\xe8\\x0c\\x49\\x2d\\x85\\x7c\\xb1\\x74\\x99\\x25\\xe3\\x31\\xc6\\x58\\x58\\xb5\\x09\\x83\\xcd\\x98\\x38\\xcf\\xd2\\x18\\x8a\\x5e\\x8f\\x05\\xb4\\x71\\xfd\\x3c\\xdd\\xcd\\x30\\xd9\\x69\\x01\\x19\\x40\\x20\\xf1\\x15\\xfb\\x46\\x9a\\xb5\\x84\\x90\\x06\\xdf\\xfa\\x2d\\x54\\x3a\\x13\\xb3\\xb5\\x06\\xed\\x65\\xcc\\x45\\x75\\x32\\xb8\\xaa\\x3e\\xe3\\x1d\\x9d\\x8d\\x9e\\x52\\x98\\xd7\\xac\\x70\\x7a\\xc1\\x5b\\x82\\x7a\\x57\\x8c\\x81\\xd4\\x34\\xf8\\x4c\\xb1\\xb5\\x61\\x20\\xd6\\x67\\xb2\\xaf\\xe6\\xd1\\x53\\x0a\\xfd\\xdf\\xb9\\x66\\xd9\\x53\\xbe\\x7e\\x32\\xdf\\x07\\xde\\x38\\x9e\\x2d\\x04\\xb2\\x32\\xd3\\x51\\x2c\\x7d\\xb9\\x35\\x8f\\xc9\\x44\\xd1\\xb1\\x18\\x07\\x8e\\x69\\x99\\xe8\\x91\\xbb\\xfa\\x4a\\x43\\x29\\xf6\\x5d\\x80\\x71\\x88\\xb5\\x98\\x58\\xc4\\x31\\x21\\x1b\\x29\\x57\\x6f\\x44\\x96\\x13\\x8b\\x7c\\x0c\\x12\\x8f\\x7b\\xef\\x5f\\x79\\xb0\\xf4\\x46\\xfc\\x6b\\x4a\\x0e\\x20\\xbc\\xa4\\xc4\\x0a\\x83\\x57\\x1a\\x36\\x64\\x4a\\xbf\\xfa\\xbd\\x49\\xcb\\x58\\x5f\\xd0\\x64\\xc8\\xe5\\x09\\xd9\\xa0\\xfc\\xff\\x46\\x26\\x76\\xf0\\xeb\\xcb\\x61\\xce\\xc6\\x1e\\x51\\x2b\\xe6\\xf1\\x82\\xab\\xd5\\x9e\\x09\\xf6\\x42\\xaa\\x61\\x96\\x34\\x85\\x34\\x82\\xec\\xe8\\xf8\\x98\\x00\\xf9\\xc5\\xbc\\xfb\\x84\\x14\\x31\\xca\\x06\\x91\\xed\\x8d\\x80\\xe0\\xa2\\xfc\\xb7\\x97\\xa0\\x36\\x89\\x7c\\xfb\\x65\\x37\\x58\\x6b\\x31\\xc0\\x0b\\x79\\x65\\xef\\xdd\\xfd\\xa7\\x28\\x61\\x84\\x50\\x26\\x45\\x91\\x57\\xf7\\x9e\\xba\\x1b\\xca\\xf6\\xcd\\x41\\xd6\\x18\\xae\\xb1\\xbd\\x8d\\xa1\\xbe\\x98\\xf0\\xcd\\xc7\\xf2\\xe0\\x9b\\x90\\x3d\\xe4\\x9c\\x0c\\x1b\\xe9\\x1d\\xcc\\x17\\x7b\\x29\\x80\\x96\\x83\\x6d\\xce\\xa4\\xf6\\x01\\xdd\\x86\\x69\\x15\\x55\\x12\\x83\\x25\\x43\\x8b\\xd9\\xcc\\xbf\\xc0\\xe7\\x77\\x92\\x0a\\xe8\\xbb\\xd5\\x76\\x34\\xc6\\x10\\x4f\\xe6\\x9a\\x3a\\x72\\x01\\x2a\\x23\\x60\\xb6\\xe5\\x52\\x55\\x0c\\xff\\xb4\\xe2\\xf0\\xb4\\x1f\\xe1\\x55\\x37\\xee\\x0e\\x6f\\x37\\xe7\\x88\\x0f\\xb4\\xd1\\x2b\\xef\\x6c\\xad\\x26\\x6c\\xe5\\x8d\\xf9\\x81\\x6b\\x35\\x96\\x0c\\xd0\\xbf\\x86\\x52\\x86\\x2e\\xe7\\x89\\xcc\\xc3\\x1a\\x7e\\xfc\\x21\\xa8\\x1b\\xda\\x46\\x14\\x6b\\x11\\x1f\\xcf\\xd9\\x4f\\x04\\x85\\x6a\\xb6\\x1a\\x55\\x7b\\x1f\\xf7\\xc8\\xe4\\xea\\x6d\\x9c\\x4b\\xcd\\xd9\\x3b\\x15\\x1a\\xa0\\x84\\x61\\xc5\\x68\\xde\\xfb\\x2a\\xef\\xdf\\xce\\x96\\x39\\x4d\\xc8\\x22\\xd4\\xef\\x6c\\xc4\\xb9\\xa3\\xe6\\xc3\\x32\\x03\\x9f\\x65\\x38\\xaa\\x0d\\xf8\\xde\\x81\\x26\\xd9\\x0c\\x31\\x2f\\xf4\\x96\\x88\\x74\\x86\\x11\\x15\\x65\\x53\\x43\\x46\\xa7\\x46\\x26\\x25\\xd6\\x3d\\xf6\\x9f\\xcb\\x57\\x41\\x90\\x6f\\x19\\xe0\\x0f\\xc8\\x00\\x3f\\x08\\xb9\\x59\\x85\\xc3\\x8b\\x86\\x74\\xaf\\x42\\x3c\\xa5\\x6d\\xe5\\xf8\\x81\\xb5\\x9c\\x46\\x62\\x43\\xa7\\xad\\xba\\xdb\\xa2\\x9c\\xaf\\x57\\xfa\\x77\\x71\\x22\\xe6\\x18\\x23\\xb4\\xe7\\x08\\x18\\x2a\\xaf\\x37\\x20\\x6d\\x7d\\x5e\\xd0\\x51\\xc1\\x2a\\x5c\\x0f\\x6b\\x43\\x71\\x04\\x3f\\x56\\x2c\\xdc\\x02\\x9d\\x5e\\x1b\\xa9\\xb2\\xbf\\x5f\\xfb\\xf1\\xf5\\xf5\\x23\\xdb\\x06\\xfe\\xca\\x42\\x7d\\xb7\\xa0\\x88\\x19\\xff\\xb2\\xd0\\x58\\x52\\x42\\xe2\\x0d\\xa5\\x8e\\x32\\x0b\\x16\\xb1\\x6e\\x44\\x8d\\x8b\\xe0\\xef\\x74\\x02\\xd2\\x4a\\x71\\x94\\x25\\x71\\x33\\xbd\\xc9\\x82\\x31\\x4d\\x83\\xad\\xbc\\xd1\\x2e\\x8a\\xf3\\x13\\x03\\x42\\x6c\\x59\\xff\\xd8\\x26\\x9c\\xe4\\xb9\\x87\\xca\\x9b\\x6f\\x0f\\xfd\\xbb\\x4d\\x1d\\x12\"},\n{{0x07,0x36,0xf8,0x01,0x72,0x0a,0x94,0x7c,0x5c,0x2f,0x32,0x58,0xce,0x0d,0x51,0x1c,0x3e,0x17,0xe9,0x4e,0x37,0xb3,0x0a,0xdf,0xa5,0x20,0x95,0x92,0x11,0x71,0xd4,0x00,},{0x4f,0x69,0x42,0x55,0x92,0x0d,0x0c,0x38,0xde,0x6e,0x72,0xe1,0x65,0xc3,0x3a,0xee,0x76,0xb1,0xcb,0xf6,0xf4,0x83,0x7a,0xa5,0x90,0x14,0x75,0x66,0x7a,0xcd,0x28,0x26,},{0xc0,0x3c,0x03,0x14,0x85,0x12,0x79,0xed,0xcd,0xe9,0x70,0xc2,0x3e,0xfa,0x23,0x6f,0x23,0x5e,0xda,0x96,0x0d,0x2c,0x27,0xd3,0xca,0x94,0x6f,0x65,0x0c,0x20,0x0b,0x4e,0xba,0x04,0xbe,0x66,0x8f,0xf6,0x2e,0xaf,0xfa,0x6c,0xea,0x35,0x1a,0xbd,0xfc,0x54,0x40,0x1d,0xcc,0xce,0x3d,0xba,0x78,0x00,0x4a,0xec,0x95,0x81,0xa2,0xcc,0xf4,0x0f,},\"\\x7f\\x87\\xb5\\x1f\\x6e\\xad\\x2d\\x44\\x02\\xa3\\xbd\\x3c\\x37\\x69\\xa2\\x67\\xac\\x8e\\x82\\xf7\\x79\\xad\\x7b\\x98\\x6d\\xec\\x82\\xcb\\xfc\\x1e\\xa5\\x12\\x91\\x88\\x43\\x26\\xd9\\x22\\x69\\x67\\xcb\\x66\\xa9\\x68\\x73\\x18\\x4f\\x0e\\x83\\xb3\\xab\\x25\\xa5\\xab\\x2f\\xa8\\x05\\xfe\\x3a\\x0e\\x7b\\x19\\x0a\\x62\\x2d\\x46\\x1b\\x78\\x30\\xa3\\xf6\\x97\\xc8\\x31\\xc2\\x9e\\xa7\\xc0\\xcd\\x4b\\x68\\xd8\\xe7\\x7a\\xa6\\x97\\x11\\xcf\\x86\\x4d\\xc1\\xd5\\x39\\x4f\\x48\\x45\\xe2\\xfb\\xb5\\x07\\x64\\x04\\xe0\\x9a\\x88\\xb7\\x9f\\x05\\x67\\x05\\x51\\xbc\\xe2\\xef\\x54\\x68\\xb7\\x9d\\x57\\x88\\x8b\\x98\\x52\\xa4\\xbb\\x47\\x9a\\x4f\\xd0\\xbe\\xb6\\x81\\xfd\\x52\\x3f\\xc5\\xbf\\x44\\x58\\xab\\xbc\\x38\\xec\\xe7\\x2e\\x10\\x6e\\x00\\x22\\x20\\x15\\xa5\\x7e\\xbe\\xc5\\x5b\\xf4\\x75\\x13\\xe2\\x5c\\x3c\\x45\\x54\\x84\\x3b\\xda\\xcb\\xcf\\xe9\\xf1\\xb8\\xd0\\xae\\x35\\x4e\\x48\\xd0\\x3f\\xde\\xbd\\xf2\\x0d\\x65\\x5b\\x52\\x68\\xd8\\xbb\\xbf\\x33\\xb1\\x28\\x89\\x10\\xf0\\x44\\x4f\\xcd\\x56\\xc0\\xda\\x7b\\x89\\x03\\x36\\x2b\\x7e\\x37\\xa8\\x64\\x65\\x42\\x77\\xcf\\xfb\\xe6\\xc6\\x08\\x57\\xf0\\xb3\\x51\\x4d\\x22\\xa4\\x0b\\x9d\\xd2\\xd3\\xfe\\x5c\\xae\\xa5\\x50\\x7a\\x0d\\xe3\\x05\\x1b\\xb3\\xa4\\x01\\x5f\\xa0\\xfe\\x4c\\x46\\x2b\\x98\\xfe\\xf2\\x35\\x7d\\xcf\\x6b\\x97\\xdc\\x75\\xde\\xf3\\x82\\xf9\\x01\\xf9\\x6f\\x4a\\x04\\xa3\\xef\\xc6\\x02\\x54\\x20\\x0a\\x2c\\x4c\\xdc\\x8a\\x58\\xb2\\x5d\\x94\\xe3\\x29\\x54\\xea\\xff\\x15\\x11\\xac\\x46\\xe3\\x60\\x66\\x63\\xb6\\x87\\x5f\\x13\\x64\\x99\\xda\\x6a\\x76\\x90\\x97\\x87\\x9a\\x6e\\x08\\x34\\xd5\\x64\\xfa\\x7f\\xdb\\x99\\x58\\x11\\x83\\xed\\x0c\\x9d\\x48\\xfd\\x19\\x5d\\x7e\\xcd\\x9f\\x4d\\xd4\\x86\\x55\\x65\\xfd\\x17\\xa0\\x08\\x71\\x8d\\xcd\\x76\\xf6\\x8a\\x54\\xe5\\x16\\xa2\\xb7\\x30\\xed\\x3d\\xba\\x5c\\x2c\\xf4\\x06\\x30\\xbb\\xfe\\x7f\\xa0\\x3b\\xb7\\xcd\\xd9\\x67\\x69\\x54\\x95\\xa7\\xc8\\x6e\\x2e\\x84\\xcb\\x01\\x7e\\xc6\\x96\\x01\\x92\\x46\\x31\\x59\\x5a\\xff\\xaa\\x8c\\xfd\\x04\\x8d\\x14\\x26\\x7c\\x73\\xe5\\x4c\\xfa\\x53\\x90\\x47\\xe7\\x17\\x69\\x1e\\x39\\x97\\x37\\xfa\\x50\\xcc\\x48\\x44\\x96\\x12\\x57\\xc9\\x3d\\x72\\x53\\xd2\\x32\\x26\\xb7\\xcd\\x0d\\x1b\\xd3\\x1f\\x3f\\x0d\\x2d\\x89\\x2d\\x07\\x3d\\x8c\\x50\\x73\\xc6\\x02\\xf6\\x1a\\x04\\xd6\\x43\\x7c\\x39\\x03\\xeb\\x4a\\x64\\xa0\\x1f\\xbc\\xc0\\xc7\\xe1\\x59\\x20\\x1c\\xdc\\x4a\\xa4\\x2e\\xf3\\xb1\\xff\\x9c\\x78\\xfc\\x27\\x5c\\xfb\\x11\\xa0\\x5f\\xfe\\xd8\\xf9\\xf2\\x2d\\x85\\xba\\x92\\x4d\\x8d\\x32\\x23\\x1c\\x25\\x4d\\x89\\x8d\\xa7\\xf0\\x67\\x9a\\x64\\xca\\xb8\\x40\\x26\\x90\\x6e\\x9e\\x85\\xf9\\x5e\\xfd\\x8e\\xe2\\xa1\\x72\\x56\\x33\\xf4\\xde\\x2b\\xa6\\x7d\\x99\\xaa\\x7f\\x05\\x50\\xaf\\x13\\x9e\\x9f\\x8c\\x52\\x93\\x78\\x67\\x27\\xd8\\x26\\x30\\x29\\x6d\\x5d\\xaa\\x9e\\x83\\x0a\\xa1\\xb3\\xb5\\xb3\\x02\\xb8\\xb6\\x62\\xac\\x83\\x2e\\x92\\x13\\x01\\x6b\\xa4\\x93\\xa0\\x3a\\x28\\xcc\\x3e\\x95\\x40\\xd0\\xd6\\x5a\\xcd\\xdb\\xfe\\x12\\x52\\xb5\\xc1\\x6a\\x84\\xa4\\x45\\xce\\x75\\x41\\x5c\\x6c\\xd8\\xab\\x16\\xfe\\x5e\\xef\\x11\\x70\\x97\\xd7\\x1e\\xb5\\x67\\x6b\\x9a\\x95\\xb3\\x58\\x82\\xa7\\xc3\\x50\\x6b\\xc5\\xd0\\x2f\\x03\\x91\\x0a\\x63\\xd4\\x68\\x46\\xb2\\x13\\xc3\\xc9\\xbb\\x2f\\xc3\\x4e\\x6c\\x69\\x01\\x7d\\x20\\x65\\xa1\\xad\\x3c\\xe3\\xfd\\x14\\xab\\x00\\x14\\xf5\\x84\\xe5\\x7e\\xa9\\xd9\\x03\\xe4\\x0a\\xce\\xb2\\x30\\xa8\\x69\\x3f\\xa2\\xe6\\x36\\x41\\xc2\\x54\\x38\\xff\\x7a\\x16\\x38\\x76\\x04\\x38\\x84\\x4c\\xdf\\x00\\x11\\x80\\xf5\\xb1\\x77\\xbe\\x69\\xed\\xf7\\xef\\x66\\xb3\\x93\\x12\\x80\\x52\\x14\\xcb\\x17\\x70\\x6c\\xef\\xe5\\x45\\xbe\\x5a\\x77\\x01\\x9a\\x5e\\xc5\\x2b\\xbf\\x78\\x85\\x0f\\xa3\\xd9\\x7d\\xe2\\xd4\\xd7\\x4a\\xa6\\x8b\\x58\\xca\\x81\\x2a\\x1b\\x15\\x6a\\x0c\\x40\\x01\\x12\\x9f\\x06\\x72\\x32\\xa6\\xec\\x91\\xa5\\xed\\x42\\x70\\xf2\\xa4\\xc6\\xef\\xee\\xe7\\x87\\x00\\x47\\x70\\xc8\\x59\\xe4\\x50\\xe8\\x37\\xef\\xb0\\x4d\\xc9\\x98\\xbd\\x27\\x3c\\x27\\xa0\\x98\\x55\\xe4\\xec\\xa1\\xa2\\x2a\\x9b\\x88\\xc1\\x7b\\xdb\\xf2\\x53\\xa7\\x97\\x61\\x07\\x0a\\x76\\x81\\x7a\\x7f\\x74\\xff\\x3f\\x07\\xfb\\x71\\x8b\\xff\\xa0\\xb4\\xf3\\x26\\xf2\\x84\\xe6\\x2f\\x83\\x68\\x32\\x42\\x7b\\xe8\\x2f\\x48\\x33\\x73\\x51\\x5b\\x9b\\xf5\\x9a\\xf4\\xa7\\x6a\\x57\\xe2\\xf4\\x0b\\x91\\x03\\x4d\\xd5\\x68\\xec\\x14\\xac\\x10\\xe2\\x30\\x9b\\x87\\xe2\\x92\\x2f\\x9c\\xd9\\xfc\\x1a\\x46\\xa4\\x7e\\xd3\\xbc\\x7e\\x1b\\x9f\\xeb\\x9e\\xe0\\x67\\x07\\x3f\\xa5\\xdc\\xe2\\xa6\\x75\\x30\\x52\\x6d\\xe6\\x7e\\xe0\\xe5\\x09\\x66\\x3c\\x44\\x46\\x7e\\xeb\\x59\\x42\\x01\\x03\\xeb\\xcd\\xff\\xa7\\x09\"},\n{{0xfa,0x75,0x65,0x04,0x91,0x04,0x74,0x28,0xd3,0x63,0xb5,0x82,0x22,0x22,0x12,0x2d,0xff,0xb5,0xa9,0xfd,0xdc,0x60,0x3c,0x33,0xc8,0xa6,0x08,0x61,0x83,0x75,0xdc,0xf3,},{0x98,0xc9,0x64,0x1f,0xa9,0xdf,0xa8,0xea,0x13,0xe0,0xd1,0xc7,0x16,0xb8,0x67,0x9e,0x26,0x4b,0xe1,0x5d,0xd2,0xd4,0xc0,0x6a,0xb4,0x3c,0xbe,0xe4,0x79,0x16,0xee,0x01,},{0x1e,0xff,0xbf,0x92,0x99,0xa1,0xb9,0x35,0x4f,0xe1,0xf1,0xde,0xc1,0x76,0x65,0x95,0xea,0x76,0x7a,0xb8,0xe4,0xda,0x9b,0xb5,0x7b,0x4f,0x69,0xbc,0xbd,0x8c,0xb3,0xd8,0x6f,0x76,0x83,0x92,0xf5,0x9b,0x39,0xfa,0xfa,0x8a,0x21,0x0a,0x65,0x09,0xfe,0x0d,0x60,0x08,0xd6,0x35,0x61,0x11,0xad,0xfb,0x37,0x99,0xc1,0xd5,0x59,0xc2,0x63,0x09,},\"\\xf5\\x4e\\x41\\xb9\\x39\\xe3\\x7d\\xf1\\x7c\\x7d\\x60\\x43\\xfd\\xed\\x14\\xa9\\x15\\xd9\\x34\\xe8\\x67\\xc3\\x45\\x26\\x9f\\xdc\\x01\\x77\\xf5\\xbd\\x10\\xc4\\x34\\x8f\\x31\\x9e\\x0a\\xb9\\xa6\\x4c\\xc0\\xb7\\xd4\\xe0\\xc9\\x1c\\xa9\\xaa\\xda\\xab\\x2e\\xdc\\xba\\x54\\x4f\\x14\\xed\\x2c\\xb5\\x39\\xca\\x89\\x75\\x09\\x7d\\x87\\x92\\x70\\x95\\xb4\\xeb\\xd4\\x90\\x34\\x43\\x40\\x06\\x1e\\xd9\\x3c\\x38\\x16\\x7e\\xda\\xa0\\x96\\xa2\\x30\\xdb\\x59\\x62\\x4c\\x67\\xfb\\x9a\\x1e\\x1d\\xda\\xc4\\x02\\x13\\x3f\\x4d\\x47\\xcf\\xc1\\x1e\\x2f\\xae\\x6b\\x3f\\x3c\\x50\\x01\\xcb\\xa9\\xa8\\xae\\xd9\\x00\\x73\\x10\\x32\\x40\\x22\\x7e\\x71\\x6f\\xf7\\x1b\\xf6\\x8a\\x59\\x1b\\xa2\\xce\\xff\\x2d\\x31\\xb8\\x6e\\xf2\\x1a\\xb0\\x12\\xec\\xcd\\x40\\x9a\\xd5\\xc2\\x9d\\x65\\x9a\\x1b\\x37\\xc4\\xd8\\x55\\x05\\x30\\x41\\x40\\xfb\\x2c\\x34\\x37\\xa2\\x06\\x86\\x8b\\x13\\x52\\xc1\\x02\\xbb\\xfa\\x3b\\x9a\\x76\\x52\\x2a\\x2b\\xfc\\x54\\x06\\xb2\\x57\\x69\\x6d\\xe7\\x4e\\xe7\\xd3\\x15\\xc8\\xe9\\x9c\\xaa\\x96\\xbd\\x83\\x80\\x06\\xc6\\xda\\x2a\\x42\\x33\\x31\\x5a\\x85\\x6a\\xcb\\x8e\\x80\\xc3\\x31\\x68\\xb3\\x33\\x55\\x1d\\x91\\xd0\\x74\\x05\\x57\\x34\\x13\\x0b\\xd7\\xd1\\x4c\\x56\\x81\\x1e\\xba\\xbf\\x7d\\x5a\\x25\\x0e\\x60\\x72\\x59\\x3d\\x9f\\x2f\\x8b\\x97\\xc1\\x2a\\x70\\x3c\\x2c\\x47\\x9c\\xb0\\xb1\\x5b\\x7a\\x27\\x75\\xc9\\xdc\\xd2\\xca\\x46\\x24\\x67\\x23\\x68\\xa2\\xe6\\x14\\x54\\x67\\xf3\\xbe\\x66\\x15\\xf9\\x3b\\x81\\x20\\xa0\\xa1\\x2d\\xa1\\x56\\x06\\x63\\xa2\\x6a\\x61\\x73\\x19\\x66\\xb4\\x4b\\x29\\x9e\\xbf\\xad\\x2a\\x95\\xc6\\x23\\x60\\xf3\\x9c\\xe0\\x5d\\x95\\x58\\xe3\\x05\\xee\\x23\\xa5\\x2f\\xa5\\xce\\x20\\xf6\\xbe\\x5e\\x26\\x2a\\xff\\x3a\\x86\\x4d\\x5d\\xda\\xbe\\x23\\xff\\x94\\x3f\\x71\\xd5\\x99\\x84\\x93\\xd9\\x9f\\xe2\\xac\\x23\\x74\\xb4\\x64\\xa6\\x91\\x83\\xc3\\xbc\\x4f\\x1d\\xdb\\x88\\x36\\x11\\x14\\x9d\\x7d\\xdb\\xf1\\xe8\\x38\\x0b\\x54\\x43\\x35\\xe2\\xb8\\x93\\x95\\x05\\x4c\\x9f\\x25\\x58\\xdf\\xc5\\x6e\\xa9\\x3f\\xf1\\x4d\\x0f\\x15\\xd2\\xe0\\xbd\\x89\\x37\\xa5\\x56\\x38\\x7d\\xe9\\x6e\\x41\\x8d\\x8b\\x3a\\x7d\\x66\\x6f\\xb1\\x90\\x36\\x4b\\x2c\\x21\\x90\\xd3\\xc2\\x5f\\x17\\x52\\xd5\\x48\\x3d\\xcb\\xb5\\x96\\x00\\x64\\xf0\\xc8\\x7f\\xcf\\x8f\\x31\\x3d\\x28\\x78\\x1c\\x11\\x4a\\x16\\x9b\\x69\\x0a\\x87\\x01\\xc5\\x0d\\x89\\xc7\\x73\\x24\\x53\\x1c\\x0f\\x84\\x9d\\xba\\xd1\\x63\\x3d\\x92\\x5a\\xcd\\x06\\xc1\\x6a\\x9c\\xea\\x19\\xa4\\x34\\xeb\\xc4\\x2a\\xeb\\xb1\\xfd\\xb9\\xb0\\xba\\xcc\\x93\\xce\\xc3\\x99\\x19\\x94\\x36\\x64\\xea\\x1a\\x95\\x84\\x06\\xff\\x9e\\x49\\x35\\xc9\\x2c\\xa7\\xc3\\x97\\x08\\xf9\\xca\\xb7\\x10\\xa5\\x83\\x09\\x6b\\x4e\\xd9\\xf4\\x8d\\x9e\\x09\\x06\\x47\\x24\\x0d\\x76\\xec\\xcb\\xab\\xa5\\x91\\xf5\\x5f\\xe7\\xe3\\x6d\\x72\\xc2\\x17\\x27\\xac\\xba\\x0f\\x80\\x30\\x95\\x4e\\x62\\xbc\\x58\\x0b\\x8b\\x67\\x0c\\x44\\x57\\xc3\\x40\\x3e\\x36\\x9a\\xc2\\x0e\\x66\\x0d\\x66\\x2f\\x7f\\x6a\\x41\\x42\\x13\\xea\\x43\\xf7\\xc0\\x10\\x50\\x09\\xc1\\xde\\x81\\x7a\\xdf\\x6f\\xfd\\x9c\\xca\\x3b\\x45\\xa6\\x3a\\x82\\x22\\x81\\xc6\\xe2\\x77\\x2f\\xd7\\xb7\\x80\\x96\\x03\\x18\\x4b\\x48\\x79\\xb1\\x8c\\x88\\x79\\x03\\xf0\\xfc\\x8d\\x8e\\x1e\\x2d\\xbf\\x6e\\x77\\x2f\\x0b\\x2d\\x9b\\x8a\\x29\\x92\\x7a\\xcc\\x81\\x71\\x4a\\x22\\x56\\xad\\x8d\\x7b\\x73\\x30\\x52\\x7d\\x7d\\xbf\\x8b\\xef\\xd8\\x2f\\x8c\\x9b\\xb4\\x01\\xcf\\x0a\\x90\\x24\\x9a\\x64\\xca\\x6f\\x88\\x33\\xdb\\x31\\xbd\\x03\\xb9\\xe7\\x94\\x6d\\x06\\xdd\\x04\\x38\\x3d\\x7c\\x08\\x2d\\x70\\xae\\xb3\\x7f\\xf8\\x4c\\x2b\\x05\\x7d\\x97\\x3b\\x89\\x4b\\x4a\\x03\\xec\\x7b\\xf0\\x31\\xae\\xa6\\x56\\xa1\\x90\\x84\\x88\\x89\\x4a\\x4a\\xda\\x3f\\xd7\\xfa\\xdf\\x91\\xed\\xe9\\x55\\x0d\\x38\\x41\\x5f\\x82\\xa0\\x94\\x55\\xc0\\xf4\\x32\\xfb\\x55\\x98\\x71\\x32\\xf0\\x00\\x42\\xaf\\xd6\\x0e\\xa5\\x1d\\x1f\\x1c\\x6c\\x1a\\xfe\\x0c\\xf8\\x7c\\x34\\x6e\\x31\\xe6\\x3e\\x26\\xf4\\x9b\\x13\\x71\\x77\\xb2\\xd4\\x7a\\xb3\\x0f\\x07\\xce\\xa0\\x71\\x93\\x12\\x74\\xcf\\x01\\x08\\x36\\xd6\\x83\\xff\\xf3\\xbe\\x71\\x34\\xc7\\x8b\\x8b\\xfd\\x8b\\x1b\\x8f\\xc2\\x04\\x9e\\x18\\xcc\\xb1\\xe1\\x8a\\x0a\\x95\\x85\\xa7\\xd8\\xa1\\xe2\\x54\\x92\\x60\\x86\\x68\\xc9\\x6d\\x62\\xa0\\xac\\xa8\\xef\\x90\\xe0\\x48\\xd2\\x03\\x78\\xc1\\x08\\xd0\\x6b\\x03\\xfe\\x3e\\xc4\\xad\\xb2\\x75\\x28\\xae\\x08\\xf7\\xde\\xd9\\x48\\x78\\x93\\xae\\x64\\xca\\x4b\\x93\\x92\\x02\\xaa\\x4c\\x17\\xaf\\xe7\\x18\\xcd\\xca\\x49\\xff\\x96\\x16\\xd0\\xcd\\xf8\\x33\\x4b\\x6a\\xee\\x2d\\x6d\\x20\\x94\\x7c\\xa4\\xbd\\x7d\\xf5\\x31\\xdd\\x1d\\xa9\\x95\\x81\\xff\\x72\\xea\\x56\\xfe\\x62\\xca\\xa2\\xc9\\x5e\\x35\\x87\"},\n{{0xe1,0xc1,0x29,0x46,0xd2,0x21,0xa1,0x94,0xf2,0x2f,0x27,0x62,0xc0,0xe5,0x1c,0xbe,0x3f,0x98,0xb9,0x14,0xa4,0x7d,0x3d,0xc4,0x1a,0x1f,0x45,0xc5,0x43,0x70,0x63,0x7c,},{0x10,0x40,0x81,0x36,0xa6,0x8f,0xc5,0x6c,0x7d,0x3b,0x36,0xb7,0xfe,0xf1,0x22,0x09,0x4d,0xe0,0x81,0x03,0x11,0x89,0xcc,0x84,0xa4,0x88,0x06,0xaa,0xf6,0xcb,0x91,0x85,},{0x8f,0xd7,0xfa,0x40,0x0c,0x03,0x2f,0xcf,0xbc,0x40,0x29,0x42,0xfc,0x78,0x63,0x75,0x26,0xbe,0x97,0xab,0x82,0xf2,0x37,0xbb,0x39,0x3e,0xa3,0x9e,0x35,0x73,0x8c,0x67,0xd7,0x54,0x09,0x54,0x3a,0x8b,0x3c,0x05,0x5f,0x08,0xbf,0x69,0x19,0x9a,0xf6,0x3b,0x69,0x11,0xa4,0x82,0xfb,0x4f,0x65,0x80,0x80,0x2e,0xc9,0xd2,0xdc,0x3c,0x11,0x06,},\"\\x87\\x0f\\x4c\\xd9\\x7c\\xfc\\x0a\\xaf\\xad\\xa4\\x00\\x72\\x31\\x2f\\xb5\\x4b\\xcc\\xc0\\x76\\x28\\x71\\x4e\\x49\\x62\\xd4\\xbe\\xf4\\xee\\xb5\\xde\\x40\\xa1\\x9a\\x24\\x6b\\x5b\\x7d\\x52\\xd4\\x87\\xb7\\xe5\\x2d\\x65\\x6f\\x2c\\x64\\x03\\xb9\\x16\\xd0\\x2e\\x02\\xa6\\xd2\\x91\\xc1\\xe1\\x82\\x8d\\xd9\\x45\\xa5\\x83\\xb4\\x38\\x52\\x8d\\x1c\\x39\\x76\\x5a\\x57\\x20\\x31\\xff\\xa9\\x16\\xb6\\x83\\x21\\xf3\\x2e\\x66\\x46\\xf0\\xdc\\xc1\\xc6\\x02\\x35\\xff\\xaa\\x32\\x35\\xf4\\x84\\xa5\\xc4\\x97\\x8f\\xa3\\xe6\\xbf\\x14\\x30\\x1d\\x53\\xe1\\x2f\\x4c\\xc5\\x21\\x18\\xb1\\xf6\\xf0\\x7f\\x53\\x36\\xf5\\xd0\\xa9\\x37\\x89\\xbb\\x01\\xd1\\x62\\xfb\\x31\\x26\\xdc\\xd7\\x56\\xe0\\x64\\x2e\\x7e\\x69\\x89\\x63\\xc0\\x34\\x59\\x11\\xa5\\xcf\\x3c\\x99\\x53\\xf7\\x73\\x19\\x42\\x6c\\xea\\x2c\\xde\\xda\\x3e\\xfe\\x98\\x9e\\xcb\\x63\\xcb\\x9e\\xb8\\xb9\\x20\\xde\\x76\\x6c\\x4f\\xcf\\x63\\x36\\xe5\\xbc\\x43\\x71\\xa0\\x68\\x37\\x1f\\xed\\x95\\xc8\\xc2\\xb6\\x1e\\xe9\\xb7\\xc3\\xe3\\x83\\x1c\\x20\\xbf\\xfe\\x87\\x07\\xc0\\xc9\\x8b\\xe9\\x61\\x53\\xc8\\xa8\\x73\\xd7\\xf2\\x8a\\xfc\\xa1\\xbf\\x71\\x08\\x5c\\xe0\\xe3\\x89\\x9e\\xef\\x55\\x91\\xbd\\xd6\\x66\\xdc\\x2d\\x07\\x64\\x17\\x72\\xd7\\x45\\xc5\\x16\\x44\\xa2\\x60\\x81\\x5b\\x20\\x8c\\x4d\\xd3\\x05\\xf0\\x5f\\xe4\\x63\\xd0\\xd9\\xd5\\xa9\\xee\\xff\\x97\\x79\\xf5\\xb1\\xd4\\x4f\\x26\\x08\\x30\\x78\\x56\\x6d\\x0e\\x5f\\xf5\\x6b\\x3a\\xf0\\xe6\\x4c\\xc3\\x87\\x08\\xaf\\x5a\\x65\\xf6\\x54\\x35\\x2d\\xf1\\x04\\x37\\xf1\\xdd\\xf9\\x45\\xa0\\xda\\x1f\\x4d\\xef\\x6a\\x71\\xa0\\x60\\xe0\\xc4\\xad\\xec\\xca\\xac\\xf8\\x5e\\x09\\x0f\\x70\\x90\\x37\\x0a\\xe2\\x4e\\x52\\x38\\xd7\\x68\\xa0\\x8f\\xe6\\xb4\\xbb\\x5e\\xc4\\x97\\xa6\\x60\\x31\\x98\\x60\\x84\\x15\\xc7\\xc6\\x49\\x00\\x48\\xaa\\x36\\x73\\x7c\\x08\\x50\\x30\\x08\\xae\\xce\\x0f\\x49\\x42\\x19\\xdd\\xf8\\x9b\\x72\\xea\\x77\\x17\\x1c\\x6d\\x31\\x17\\x08\\x9e\\xb8\\x89\\x07\\xe8\\xc3\\x3f\\xb9\\xe7\\x0b\\x0d\\xc2\\x81\\xf6\\x64\\xb5\\xf9\\x65\\xb5\\xd2\\xad\\xb1\\x25\\x07\\x10\\xef\\x23\\x52\\x02\\x5f\\xb2\\x93\\x39\\x5a\\xe1\\xd2\\x3e\\xe3\\xb5\\x92\\xb4\\xc5\\xf2\\xd5\\x55\\x69\\xa5\\x45\\x86\\x54\\xce\\x3f\\xc2\\x5d\\xd0\\xe3\\xf7\\xe6\\x75\\x7a\\xa7\\xb3\\x47\\xc1\\xff\\xd3\\xba\\x4d\\x4f\\x2c\\x4b\\x6d\\x36\\xaf\\xd5\\x98\\x63\\xa3\\x2a\\x59\\x4e\\x74\\x53\\x7e\\xce\\x9b\\x8b\\x1e\\xc2\\x69\\xbb\\xc4\\xcb\\x54\\xd7\\x62\\x38\\x21\\x1f\\x62\\xa9\\x8a\\x46\\xa4\\xaf\\x66\\x2f\\xa8\\x1e\\xba\\x6f\\x30\\xf5\\x14\\xb8\\x66\\xb7\\x94\\x2b\\xc1\\x73\\xf7\\x21\\x1a\\x6c\\x01\\x4d\\xa1\\x4e\\x74\\x13\\x27\\xa5\\x68\\x62\\x3d\\x14\\xb8\\xf8\\x35\\xef\\x1d\\x5d\\x62\\xb2\\x52\\x3c\\xfe\\x6a\\x85\\xbc\\x69\\xfa\\x05\\x20\\x0d\\xea\\xc1\\x56\\x8b\\x94\\x6a\\x81\\x6b\\x75\\xc5\\xd7\\x60\\x31\\x74\\xfd\\x4e\\x2f\\x91\\x01\\xa7\\x90\\x63\\x79\\x1b\\xc3\\xd5\\x92\\x97\\xcd\\xc1\\x0b\\xda\\xa6\\x63\\xab\\xf3\\xc1\\xbe\\x2f\\xda\\x17\\xe4\\xe5\\xce\\x39\\x4e\\x90\\xbd\\x76\\xb1\\xf9\\xe0\\x40\\x5f\\x56\\x75\\xb9\\x9d\\x63\\x8a\\xbc\\x2c\\x1b\\x2d\\x8b\\x53\\xa6\\xfd\\x3d\\xc8\\x37\\x58\\x55\\xec\\x54\\xcc\\xbd\\xa2\\x4e\\x67\\x25\\x27\\x72\\x3b\\x07\\xbb\\x59\\x9d\\xb5\\x4e\\x38\\x79\\x33\\x91\\xcf\\x09\\xef\\x3b\\x1f\\xd7\\x61\\x49\\x90\\x06\\x5b\\xbd\\x4a\\x19\\xe8\\xd3\\xd1\\x04\\x82\\x53\\xba\\x4c\\x97\\x1c\\x2f\\x98\\xd2\\xb3\\x59\\xdf\\x50\\x90\\x87\\x32\\x3a\\xa6\\x90\\x50\\x29\\xf5\\xcc\\x5e\\x1a\\x0a\\xaf\\x2f\\x7c\\x01\\x08\\xdd\\xb1\\xa4\\x0f\\x56\\x2b\\xe6\\x4e\\x57\\xe6\\x95\\xed\\x21\\xdc\\x7d\\xb1\\x7d\\x53\\x36\\x77\\xef\\x12\\xfc\\xbb\\xe2\\x9f\\x3b\\x23\\x7b\\xb6\\x34\\x4b\\x11\\x09\\xb3\\x2a\\x94\\x62\\xab\\xc3\\xad\\x3c\\x07\\x10\\xb0\\x4f\\x38\\xc6\\xf5\\x95\\x2d\\xb2\\x75\\xe7\\x7e\\x2f\\x37\\xe9\\x5d\\x55\\x09\\x6b\\xba\\xf3\\xe3\\x05\\xd5\\xd7\\x43\\xd3\\x65\\x95\\xbf\\x05\\x67\\x89\\x2c\\x21\\x0a\\xc7\\xba\\xe7\\x37\\x1d\\x16\\x45\\x84\\x78\\x5d\\xd8\\x90\\x17\\x41\\x59\\xb3\\x93\\x0a\\x9a\\x6c\\xe3\\xa1\\x66\\xdd\\xa2\\x38\\x3e\\x6e\\x2a\\xf2\\x8c\\x1b\\xf3\\x19\\x24\\x47\\xe9\\x05\\x11\\xdc\\xd8\\x0e\\xbd\\xf9\\xee\\x2c\\x9b\\xde\\xdd\\xee\\xb6\\x10\\x55\\x86\\x41\\x53\\x2d\\x07\\xcd\\x13\\xda\\x61\\x25\\x41\\x54\\xcc\\x0f\\xd9\\xd4\\x81\\xe3\\xb0\\xa2\\x37\\xaf\\x2e\\xc2\\x62\\x56\\xd4\\xab\\x21\\x9f\\xaf\\x15\\xad\\x2b\\x7e\\x8e\\x57\\xab\\x72\\x6f\\xf2\\x72\\x32\\x16\\xa5\\x74\\x58\\x5e\\x2a\\x63\\x9d\\x94\\x8c\\x2c\\x4f\\x69\\xee\\xaa\\xd2\\x83\\xe3\\xa4\\x4f\\xf2\\x68\\xea\\xef\\xd7\\xe6\\x6b\\x73\\xed\\xe4\\x73\\xa8\\x39\\x7c\\x76\\xb4\\x8d\\x56\\xcb\\x3c\\xcd\\xab\\xc9\\x1a\\x89\\x29\\xcf\\x42\\x99\\x83\\x50\\xe0\"},\n{{0x76,0x2f,0x06,0xca,0x01,0xe3,0x14,0x71,0x5f,0x92,0xc9,0x0b,0xbe,0x72,0xa2,0x5b,0xf2,0x62,0x12,0xc8,0x1e,0xb1,0xd1,0xa0,0xda,0xe2,0xc3,0x11,0x30,0xf7,0xcd,0xbb,},{0xf9,0x62,0x6f,0xfd,0x69,0x27,0x31,0x92,0x5e,0x5a,0xac,0xfa,0x1b,0xde,0xd0,0x1a,0xa8,0xf7,0x30,0xb7,0x72,0xd5,0xe4,0x6a,0xdb,0xc3,0x15,0x56,0x5b,0x9b,0xf2,0xc9,},{0xe8,0x42,0xb4,0x9e,0x53,0x3d,0xbc,0x92,0x99,0x8d,0xc0,0x78,0xe5,0x97,0x93,0xa2,0xc2,0xfa,0x63,0x6b,0xdf,0xaf,0xdb,0x48,0x93,0x4c,0x93,0xcf,0x34,0x79,0x71,0x02,0x93,0x8d,0x13,0x7a,0xb7,0xea,0xd1,0xa0,0xf7,0x0e,0x94,0xa6,0x7d,0x57,0xef,0x6a,0x02,0xc9,0xec,0x77,0xd7,0x1f,0x70,0xcc,0x57,0xf1,0x53,0x3b,0xec,0x87,0x73,0x0e,},\"\\x94\\x97\\x48\\x3a\\x4f\\xba\\x78\\x43\\x3b\\x38\\xe9\\xde\\xb8\\x91\\x5c\\x75\\x0b\\x6d\\xa0\\xf7\\x8a\\xf4\\xa6\\x8b\\x62\\xf9\\xfc\\x03\\x91\\xe3\\x38\\x87\\x3b\\x1d\\x64\\xb1\\xb7\\xf0\\x9f\\x12\\xf0\\x56\\xa3\\xc9\\x16\\x53\\x49\\x8a\\xd5\\x6e\\x06\\x9b\\x8b\\x16\\x08\\x87\\xe8\\xe3\\x78\\xa7\\x6d\\x8b\\x3c\\x66\\x70\\x83\\xc0\\xa2\\xb2\\xd2\\x31\\x7d\\x3b\\x87\\x48\\x57\\xe5\\x78\\x62\\xef\\x0c\\xb7\\x04\\x36\\xa9\\x02\\x8f\\x01\\x91\\xcc\\xc6\\x16\\xe9\\xd7\\xc9\\xbd\\x86\\x98\\x08\\xcf\\x09\\x48\\x35\\xff\\x51\\x86\\x77\\xb3\\xfb\\x08\\x9f\\x4c\\x9d\\x07\\x7c\\xc7\\x74\\x24\\x05\\xb4\\x86\\x3a\\xc7\\xa5\\x96\\x45\\xc9\\xcf\\x54\\x0d\\x57\\x39\\x9d\\xa6\\xae\\x9d\\x07\\xfd\\x19\\xfc\\xa9\\x5b\\xc8\\xa8\\x6d\\x8b\\x8e\\x24\\xe4\\x87\\x33\\xf3\\x21\\x58\\xfd\\x19\\xa8\\xa1\\x11\\x1d\\x1d\\xa1\\xf9\\xb5\\x80\\xa3\\x9c\\x10\\x48\\x46\\x16\\xcf\\x2b\\xc0\\xec\\x29\\xf6\\x3f\\x77\\xc8\\x53\\x56\\x15\\x8e\\x16\\xda\\x59\\x4b\\x5a\\x89\\x0e\\x55\\xd0\\xb6\\x45\\x99\\xb3\\x02\\x93\\xe9\\x00\\xed\\x92\\xad\\x26\\x19\\x69\\xe7\\xdf\\x4c\\x4b\\x1d\\x0b\\x60\\x24\\xbd\\xce\\xb6\\x90\\x67\\xef\\x48\\x6c\\x20\\xfd\\xcd\\x22\\xa1\\x0d\\x5d\\xa4\\x5f\\xbf\\x90\\x5b\\xa1\\xe9\\x35\\xc9\\x6f\\x50\\xaf\\xb6\\x35\\x71\\xbc\\xff\\x31\\x30\\x68\\x4e\\xda\\x0b\\x56\\xe6\\x0b\\x26\\xcf\\x4c\\x0e\\xf9\\x93\\x8a\\x92\\x76\\x8f\\xc8\\x63\\x1f\\xe3\\x08\\x23\\x6b\\x01\\x2f\\x92\\xaf\\x24\\xa8\\xf6\\xe6\\xec\\xbe\\x76\\x62\\x9b\\xba\\xf8\\xff\\xe5\\x4c\\xdb\\xe8\\x67\\x1d\\xe2\\xba\\x62\\x4a\\x7c\\x0f\\x61\\x93\\xbb\\xa4\\x11\\x04\\x12\\x90\\x2b\\xac\\x29\\x90\\x92\\x2a\\x9e\\x5a\\x81\\x05\\x3c\\xf8\\x76\\xa4\\xc8\\x05\\xa0\\x4c\\x56\\xa8\\x13\\x9d\\x34\\x19\\xe4\\x54\\xa6\\x22\\xd0\\x34\\x2b\\xf4\\x26\\xe9\\x80\\x2c\\x3d\\xc1\\xb4\\x08\\x0c\\x75\\x49\\x2a\\xfe\\x9d\\x7b\\x15\\x45\\xfe\\x08\\x6d\\x96\\x35\\x41\\x32\\x4f\\xf5\\x2a\\x48\\xc6\\xbf\\xae\\xa2\\x66\\x68\\xb3\\xe0\\x1e\\x52\\x36\\xfd\\x45\\xfe\\x54\\x59\\x45\\x35\\xc0\\xb2\\x3e\\x28\\x7e\\xbd\\x14\\x28\\xc8\\xbe\\x0a\\xd1\\x41\\x60\\x0e\\x91\\xcb\\x51\\xe1\\xea\\x66\\x27\\x1a\\x64\\x21\\xfb\\x68\\x9e\\x88\\xa0\\x79\\x0a\\x65\\x1d\\xbd\\x21\\xee\\x20\\x89\\xb2\\x74\\x66\\x6f\\x66\\x0c\\xa0\\x9c\\xe2\\xd6\\x0e\\x39\\xe2\\xee\\x5f\\x03\\xb6\\xeb\\x82\\xd1\\x99\\x76\\x96\\x6e\\x79\\x90\\x0a\\x81\\x0f\\x6d\\x5b\\x5c\\x1a\\x54\\x8e\\x50\\x64\\xf5\\xc3\\xd8\\xa9\\xf2\\xde\\xf0\\x17\\x9d\\xf9\\x9d\\x14\\x3f\\xde\\x69\\xb0\\x71\\x2c\\x09\\x1c\\x29\\xe9\\xb2\\x5f\\x40\\xca\\xfd\\x57\\xa0\\x24\\x65\\x8d\\x77\\x74\\x03\\x76\\x10\\x34\\x2f\\x38\\x00\\xfd\\x51\\xf4\\x9e\\x79\\xa5\\xb3\\xde\\xcc\\x11\\x2f\\x58\\xd0\\x3e\\x3d\\x29\\x58\\x75\\x85\\x88\\xbc\\x4b\\x1c\\x6a\\x6c\\xda\\x7b\\xc5\\xf5\\xbe\\x18\\x3e\\x41\\x51\\x3c\\x1f\\x23\\x0f\\x3c\\xc3\\x64\\x30\\x4b\\xf8\\x24\\x84\\xb7\\xcf\\x19\\xa0\\x02\\xe1\\x50\\xf9\\x8c\\x5e\\x97\\xc6\\x16\\x6e\\xa1\\x5b\\x86\\x34\\x0b\\x8c\\x5e\\xbe\\x5c\\x1a\\x18\\x3e\\x55\\x88\\xe6\\x6f\\x55\\x90\\x50\\x86\\x31\\x3f\\x37\\xa4\\x09\\xe8\\x9b\\x47\\xdb\\x31\\xae\\x97\\x45\\x3e\\xdf\\x69\\xfe\\xd7\\xbe\\x08\\x11\\x30\\x71\\xf3\\x74\\xb2\\x6e\\xc6\\x04\\x3f\\x2a\\x0e\\x9c\\xf8\\xba\\xd8\\x02\\xab\\xad\\x69\\xe6\\x17\\xe7\\x62\\x43\\xb3\\xcc\\x03\\x4b\\x09\\x9d\\x87\\x29\\xee\\x40\\x7a\\x53\\xeb\\x03\\xbd\\xc6\\x41\\x0a\\x03\\x95\\x04\\xb3\\xb1\\x2c\\x81\\x9b\\x64\\x54\\x5d\\x40\\x5c\\x6a\\x4f\\x08\\x49\\x21\\x93\\x5b\\xdf\\xf4\\x13\\x0a\\xe6\\x29\\xd9\\x09\\x62\\x6b\\x06\\x26\\x76\\xe5\\x38\\xea\\xfd\\xff\\xb1\\xd6\\x22\\x9c\\x08\\x89\\xd3\\xcd\\xdd\\x33\\x65\\xdc\\x3d\\x65\\x36\\xf7\\x24\\x8c\\x49\\x31\\x7c\\xb5\\x0c\\x56\\xfb\\x57\\x85\\x55\\x41\\xd6\\xfe\\xeb\\xac\\x81\\x6c\\x99\\x28\\xfa\\x66\\x2d\\x0a\\xe8\\x0a\\x0f\\x39\\xe5\\x70\\xbb\\x7d\\x22\\x41\\x6f\\x98\\xf3\\x71\\xb6\\x42\\x47\\x96\\x89\\x51\\xa8\\xa2\\x46\\xf7\\x4b\\x30\\x61\\x74\\x3c\\x9a\\xf7\\x68\\x4b\\xbb\\x96\\x6a\\xe0\\xbd\\x78\\xa8\\x10\\x49\\x3e\\xa4\\xcc\\xd7\\x11\\x74\\x87\\x1c\\x82\\xbb\\x65\\x2b\\x27\\x48\\xe5\\xbc\\xcb\\x0a\\xb6\\x38\\x8a\\x50\\xf0\\x53\\xa0\\x48\\x08\\x7f\\xd9\\x7e\\xb1\\x5c\\x1a\\x21\\xb1\\xee\\x18\\x25\\xe5\\x4a\\xa1\\x30\\xd6\\x63\\x18\\xaa\\xf6\\x61\\xbb\\xb2\\x47\\x63\\x57\\x7e\\xb3\\x7d\\x31\\x0e\\x21\\x9b\\x0a\\x9b\\xba\\x03\\x75\\xeb\\x9c\\x9b\\x4a\\xf8\\xc4\\xb9\\x9a\\x36\\x99\\xe0\\xd3\\x26\\x67\\x33\\xb6\\xe4\\xe9\\xc5\\x34\\x49\\x0a\\x13\\x41\\xcb\\x19\\x90\\xca\\x5b\\x1c\\x84\\x7b\\xc8\\x12\\x60\\x26\\xfe\\xa9\\x03\\xa1\\xf5\\x49\\xd6\\x5a\\xf8\\xfe\\x02\\xa9\\x16\\x3f\\xf8\\xea\\x28\\x1e\\x72\\x26\\x24\\x3e\\x2a\\x15\\x3b\\x92\\x18\\x51\\xde\\x10\\xf7\"},\n{{0xc5,0xcc,0x0b,0x95,0x81,0x8c,0x4b,0xf3,0x8d,0xa1,0xd6,0x5f,0x02,0x16,0x27,0xe9,0xe5,0x7d,0x26,0x2b,0x02,0xec,0x6d,0x91,0x7a,0x7d,0x46,0xb1,0x1c,0x7f,0xe4,0x8a,},{0x45,0x7d,0xa4,0xef,0x14,0x51,0x9d,0x54,0x1e,0xdf,0x92,0xca,0xbe,0xd9,0xb0,0x4d,0x8a,0x2f,0x2a,0xfd,0x15,0x10,0xa9,0x2f,0x00,0x9b,0xb4,0xe8,0x75,0x4f,0x1e,0xba,},{0x3b,0xa0,0xaf,0x8a,0xf1,0x27,0xc4,0x58,0x48,0x26,0x09,0x0e,0xcd,0xaf,0x48,0x5e,0xbd,0xf0,0x7b,0x82,0xbc,0x49,0x9c,0x9a,0x2b,0xef,0xca,0x28,0xd4,0x93,0x44,0x97,0x4a,0xdd,0xbc,0x8d,0x80,0xa5,0x25,0x60,0xe0,0xf3,0xd7,0x3f,0xf5,0xcc,0xcc,0x72,0xc7,0x4b,0x5b,0x47,0xad,0x2e,0x6d,0xe9,0x61,0x2d,0x1a,0x00,0xae,0xc9,0x27,0x01,},\"\\xd6\\x60\\x8b\\xf5\\xac\\x00\\x0e\\xca\\xf9\\x5f\\xc0\\x9f\\x9c\\xb7\\x49\\x8c\\x51\\x8a\\x6e\\x02\\x55\\x58\\x6e\\x63\\x37\\x85\\x3b\\x1d\\x7d\\x9d\\x7d\\xe4\\xdf\\xe1\\x24\\x5d\\x59\\x03\\x1a\\x31\\x7d\\x4e\\x2b\\x6a\\x73\\xc4\\xc3\\xf9\\x5b\\x58\\x2e\\x72\\xa6\\x42\\x02\\x21\\x58\\x7b\\xac\\x12\\x0f\\xb8\\xed\\x73\\x48\\x07\\x0f\\x28\\x60\\xd8\\x58\\x66\\xa0\\x9f\\xe7\\x56\\x74\\x34\\x97\\xf2\\x11\\x9b\\xc1\\xbf\\xdf\\x57\\x3b\\xe3\\x5d\\x10\\x91\\xbe\\x37\\xf1\\x8b\\xcd\\xa6\\x74\\x1c\\x90\\xd5\\x66\\xcc\\x92\\x4b\\x72\\x16\\x4b\\x74\\x9a\\xf9\\xa6\\xf4\\x0f\\x71\\xd3\\xea\\x5d\\x87\\x64\\xcd\\xc8\\x17\\x14\\xbd\\x73\\x95\\xe5\\xf6\\x79\\x97\\x36\\x36\\xef\\xf1\\xdb\\x1c\\xf0\\x01\\x29\\x83\\xf7\\x1a\\x2f\\x2b\\x12\\xd4\\x5a\\x29\\x4e\\x5a\\x38\\x9f\\x4c\\xd2\\x48\\x3e\\xb3\\x9d\\xa0\\xdf\\x26\\xb7\\x36\\xc7\\xaf\\x6e\\x41\\xdd\\x35\\xa7\\x8e\\x45\\x29\\x2c\\x39\\x4e\\x34\\x68\\x95\\x32\\x88\\x87\\x21\\xf8\\x63\\xc5\\x6d\\xb9\\x7d\\xa1\\xcd\\x10\\xa6\\x6a\\x20\\xa6\\x70\\xb2\\x7f\\xe8\\xce\\x55\\x68\\xa4\\x2b\\x89\\x37\\x79\\x0c\\x7b\\xe1\\xaa\\x42\\x0d\\x20\\x3d\\x7a\\x88\\x5c\\x17\\x29\\xcd\\x6b\\x8e\\x19\\x71\\x89\\xe4\\x79\\xd5\\x42\\xcb\\xcb\\x9b\\x53\\x65\\x6f\\x2b\\x9f\\x53\\x9c\\x32\\x5c\\x34\\xaa\\x59\\x8f\\xd9\\x1e\\x7d\\xf7\\x0f\\x9a\\x74\\xab\\xec\\x46\\x76\\x54\\xb1\\xc9\\xa3\\xd1\\x44\\x38\\xe7\\xc0\\x83\\x60\\x40\\xb7\\x93\\x87\\x1e\\xcb\\xe9\\xe5\\xf6\\x68\\x0c\\xcc\\xcd\\x5d\\x46\\x96\\xa8\\x7e\\x37\\xe8\\x9e\\xab\\x28\\xb6\\xbd\\x67\\x9e\\x8f\\xe1\\x62\\x7b\\xdc\\x9d\\x37\\x3b\\x82\\xf5\\x2c\\xd8\\xc4\\x9b\\xe9\\xba\\xcd\\xc6\\x30\\xa3\\x2f\\xd1\\x28\\x35\\x25\\x5a\\x54\\x2f\\xb7\\xb1\\x23\\x93\\x77\\x9d\\x44\\x98\\xaa\\x06\\xa0\\xe7\\xe1\\xa4\\x97\\x79\\x39\\x81\\x7e\\xb2\\x08\\x8a\\xf1\\xe1\\x9b\\xb0\\xe5\\xac\\xa8\\x54\\xc1\\x25\\xdc\\x60\\x3d\\x83\\x57\\x36\\xa0\\x3d\\x93\\x80\\x51\\x53\\x0c\\x9a\\xb1\\xaa\\x3b\\xc7\\x79\\xb3\\xba\\xe7\\x45\\x0e\\xf5\\x7d\\x1b\\x3f\\xc0\\x93\\xa3\\x7d\\xbe\\x9d\\x1b\\xd6\\xd0\\x40\\xf2\\xf8\\xee\\xba\\x77\\xf7\\xfa\\x88\\xc1\\x49\\xf0\\x65\\xc7\\xac\\xe3\\x32\\x77\\xaa\\x99\\x69\\xc2\\x66\\xea\\x6d\\x85\\xca\\xd6\\x2c\\xfa\\xf5\\x50\\x8e\\x70\\x32\\x71\\x6b\\xe6\\x84\\xa2\\x28\\x56\\x41\\x3e\\x0e\\x65\\xe4\\x2b\\x6e\\x9e\\x6d\\x86\\x5a\\x87\\x36\\x3c\\xbb\\x62\\xd5\\xbb\\xb6\\xa3\\x73\\x1d\\xdd\\xa0\\xfa\\x6a\\xd0\\x29\\x3a\\xf9\\x89\\x3c\\x09\\xa9\\xe7\\x43\\x09\\x0f\\x2c\\xee\\x2f\\x44\\x37\\x73\\x6d\\xd4\\x33\\xe2\\xac\\x74\\x28\\xbd\\xc8\\xc7\\x7c\\xb9\\x96\\x43\\x55\\xfa\\x44\\x15\\xcc\\x38\\x31\\xd8\\xc7\\xca\\x5a\\xf9\\x3d\\x51\\x75\\x2e\\x71\\x8c\\x60\\x66\\xec\\xa1\\x42\\x6a\\x87\\xc2\\x98\\x08\\x28\\x1a\\x85\\xac\\x7e\\x0b\\x40\\x44\\xff\\x6e\\x28\\x0e\\x28\\x01\\x4b\\x93\\x83\\xd1\\x9c\\x9d\\x38\\x7d\\x29\\xdc\\x14\\xde\\x43\\x3d\\xa2\\x60\\x78\\x4a\\x49\\x44\\xca\\x76\\xc2\\xfe\\x8a\\x08\\x0d\\x09\\x96\\xd9\\xa6\\xc2\\xa3\\xd3\\xa7\\x07\\x72\\x80\\xed\\xce\\xe0\\x38\\x9a\\xa8\\xe5\\x36\\x5d\\x1d\\x9b\\x34\\x6e\\xca\\x09\\x47\\xb0\\xff\\x52\\x65\\x94\\x3c\\xcf\\x09\\x93\\x9a\\x4b\\x4a\\x8f\\x98\\x5f\\x6a\\x5e\\x72\\x72\\x3c\\x79\\x5d\\xa0\\xbc\\x36\\x0d\\xce\\x50\\x1f\\x67\\x3a\\xb6\\xea\\x84\\x43\\xf1\\x29\\x42\\x79\\x52\\x45\\x3e\\xb7\\x2b\\x3a\\x8d\\x0d\\x97\\x6c\\x27\\x8c\\x5b\\xd1\\xa9\\x85\\x3c\\x91\\x8e\\x0c\\x24\\x0c\\x3c\\x73\\x49\\x32\\x95\\x3f\\xdb\\x50\\x39\\xfb\\xb0\\x46\\x87\\x93\\x7c\\x9f\\xf0\\xab\\x74\\xa1\\x6e\\xae\\x21\\x2b\\xc6\\xf2\\x0e\\x70\\x0a\\x77\\xc0\\x92\\xd2\\x3d\\x2e\\xfb\\x58\\x0e\\x0c\\x19\\xd6\\x5f\\x30\\x41\\x29\\xab\\x8e\\x6c\\xc1\\x2e\\x58\\x05\\x22\\x57\\xba\\x09\\x44\\x9f\\x30\\xd3\\xd9\\x74\\x39\\x1a\\xff\\xf5\\x63\\x3d\\xef\\x2f\\x5c\\x4e\\xbd\\x57\\x3a\\x9e\\x44\\x4b\\xf3\\xa3\\xdd\\xac\\xed\\xf0\\x2c\\x05\\xf3\\xcc\\x2e\\x75\\x06\\x64\\xa8\\x4a\\x1d\\x24\\xc5\\xd2\\x8b\\x49\\x67\\x0d\\xe8\\xa2\\xf2\\x09\\x08\\x39\\x48\\x3c\\xa3\\x89\\x59\\x99\\x1a\\x7d\\x37\\x27\\xe2\\x1a\\x15\\xe8\\x20\\x16\\xc1\\x5a\\x09\\xee\\x71\\xf4\\xf4\\x3c\\x0a\\x60\\x8b\\x48\\x48\\x5c\\x99\\x34\\xa3\\x86\\x14\\x79\\x4d\\x62\\x91\\xda\\xa3\\x9c\\x01\\xc4\\x5d\\x3d\\xeb\\xe5\\x79\\xb5\\x82\\x3b\\xf3\\x40\\x64\\x04\\xb4\\xc8\\x0e\\xe6\\xff\\x34\\x2b\\x46\\xb3\\x34\\xb0\\xb8\\x83\\xb4\\x0b\\xfd\\x2f\\x9a\\x53\\x59\\x5a\\xb6\\x2f\\xd1\\x35\\x1e\\xbc\\x88\\x30\\x83\\x70\\x49\\x72\\x18\\xdf\\xc9\\x8c\\xe0\\x81\\x40\\x7d\\xa8\\x12\\xa4\\x6d\\x64\\x97\\xd7\\xaf\\x9e\\xc6\\xd8\\x3e\\x1c\\x60\\xee\\xb7\\x12\\xd8\\x89\\xdf\\xbe\\xd0\\xc8\\x05\\xaa\\x11\\xcf\\x81\\x7d\\xd8\\xf0\\x43\\x96\\xef\\x87\\x1a\\x26\\x11\\x2d\\xcb\\x7c\\x0e\\x1d\\x2e\\x68\"},\n{{0x61,0xfa,0x86,0x77,0xee,0xda,0xde,0xd6,0x9b,0x16,0x5c,0x8d,0x27,0x7c,0x97,0x82,0x49,0x66,0x30,0x28,0x30,0x1d,0xf6,0x16,0x3e,0x39,0xb0,0x6a,0xc2,0xf5,0x62,0x5f,},{0x87,0x33,0x9e,0xb5,0x72,0x38,0xdb,0x2e,0x4e,0x60,0xf3,0xc2,0x8a,0x3f,0xd5,0xfb,0x61,0x1c,0x65,0xfd,0xdc,0x81,0xee,0xd7,0xcf,0x77,0x71,0xdf,0x34,0xd9,0x22,0x67,},{0xc0,0x4e,0xbd,0x11,0xc3,0xeb,0x09,0x39,0x6f,0xe8,0xd6,0x82,0x79,0x51,0x0a,0x9e,0xfe,0xe3,0x91,0xab,0xee,0x40,0x81,0xf0,0xd2,0x75,0x67,0x4a,0x30,0x47,0x94,0x83,0x5a,0xad,0x7f,0x3e,0x34,0x5b,0xcf,0x0a,0xf8,0x02,0x7f,0x97,0x47,0x7e,0x79,0xe6,0x79,0x2b,0x8f,0x29,0x98,0x46,0xae,0x28,0xcb,0x13,0xbd,0x88,0x75,0x37,0x99,0x0d,},\"\\x02\\xc5\\x81\\xde\\xe0\\x3f\\x2c\\x60\\x39\\x35\\xaf\\x5e\\xce\\xec\\xfa\\x67\\x71\\x34\\xa3\\xe0\\xae\\xa5\\x4f\\xec\\xaf\\x42\\x71\\xfb\\x52\\x95\\x1a\\x27\\xb7\\x68\\x77\\xcc\\xd4\\x9a\\xb4\\x86\\xdf\\xc2\\x27\\xcf\\x31\\xc9\\xd9\\x57\\xcc\\x97\\x30\\x65\\x73\\xfc\\x7f\\xe1\\xd3\\x1b\\x6c\\x7d\\xf3\\xd7\\x80\\xf3\\xa0\\x5c\\xa6\\x39\\x56\\x57\\xa9\\x42\\x43\\x42\\xc9\\xc6\\xb7\\x03\\x12\\x7e\\x03\\x8d\\xf0\\x79\\x21\\x54\\xe3\\x0a\\x49\\x47\\x61\\x12\\xcb\\x92\\xd0\\xd5\\xa2\\xd2\\x2e\\x89\\x57\\x52\\xa8\\x6e\\xdd\\xdd\\x91\\x2f\\xdc\\x81\\xb1\\xe6\\x4a\\x7b\\xb7\\x50\\xf0\\x99\\x18\\x21\\x32\\xee\\x48\\x23\\xfd\\xe8\\x45\\x80\\x2a\\x94\\x45\\x39\\xd4\\x12\\xb2\\xa8\\x1a\\x15\\xb0\\x00\\x71\\xa9\\x50\\x50\\x4c\\x5b\\x55\\xa7\\x1b\\xdb\\x8c\\x5a\\x58\\x26\\x39\\xe8\\x55\\xe8\\xbe\\x24\\x1c\\xda\\x1b\\xa6\\xb3\\xb4\\xf6\\x45\\x54\\xd1\\x78\\x24\\x90\\x4c\\xb3\\x0c\\xd7\\xef\\xd9\\xac\\x04\\x9e\\x39\\x0b\\xb7\\x9f\\x53\\x59\\x8e\\xf1\\xe8\\xfc\\x27\\xdd\\x7b\\xf5\\x99\\xc9\\x02\\x8c\\x9e\\xbf\\x92\\xfc\\x3b\\xe1\\x1d\\xf3\\x29\\x61\\x2a\\x22\\x8e\\x0f\\x56\\x84\\x68\\x7b\\xf4\\x1f\\xf2\\x03\\xe9\\x7a\\x76\\x86\\x12\\x6a\\x39\\x36\\x6b\\xdc\\x26\\xd5\\x0b\\xe0\\x25\\xd5\\x18\\x7c\\x6b\\xa0\\x66\\x6e\\x37\\x9b\\xe4\\xa8\\x0a\\x9e\\x62\\xef\\xfc\\xd9\\x16\\xd7\\xf9\\x8d\\xe6\\x51\\xe0\\x0b\\x97\\xad\\xf5\\xd2\\xd5\\x3d\\xaa\\x7f\\x8d\\x69\\x5a\\x29\\x15\\x60\\x75\\x5c\\x74\\x44\\x82\\x36\\x4c\\x4f\\x1f\\xa4\\x7e\\xc0\\xb1\\xda\\x16\\x1a\\xa3\\x88\\xf9\\x59\\x79\\x89\\xa9\\x77\\x26\\xd3\\xed\\x2c\\xec\\x82\\xf1\\xa1\\xbb\\xc4\\xac\\x0b\\xe0\\xa0\\x0c\\xb4\\xa8\\xdb\\x1f\\xb7\\xc1\\x4b\\xa0\\x5d\\x89\\x63\\x48\\xdc\\x05\\x59\\xd2\\xa9\\x0b\\xea\\xc2\\x04\\x1d\\xd7\\x7f\\x82\\xd6\\xb1\\x2a\\xeb\\x22\\x43\\xca\\x0f\\x41\\x9a\\x57\\xd3\\xca\\x9c\\x7d\\x25\\xa3\\x0f\\xf0\\xe8\\xbb\\x0d\\x94\\x51\\x55\\xd1\\xb3\\x6a\\xd1\\x07\\xb5\\x5b\\xea\\xa9\\x5b\\x7d\\x5e\\x32\\x00\\x34\\x07\\x62\\x9f\\x15\\x15\\xf8\\xa7\\x08\\x9e\\x24\\x88\\xd0\\xd7\\x54\\x4c\\x2f\\x7c\\xc7\\xc7\\xf0\\x98\\x5d\\xa4\\x28\\x40\\xd4\\x36\\x8f\\xf4\\xf0\\xfa\\x4f\\xa2\\x98\\xe3\\xb7\\x22\\x93\\x03\\xab\\xa5\\x14\\xae\\x94\\xe7\\x02\\x65\\x35\\xa3\\xf4\\x26\\xff\\xbb\\x4e\\x00\\x1c\\xd5\\x0e\\xd1\\x2f\\x21\\x4b\\x3a\\xbe\\xf9\\x6e\\x30\\x16\\x35\\xc9\\x87\\xb1\\x33\\xfc\\x5e\\x61\\x84\\xe7\\xb7\\x57\\x2b\\xc3\\xd9\\x9a\\x45\\x23\\xcb\\xd5\\xaf\\xe5\\x93\\xce\\xdf\\x4c\\x9c\\xd0\\x2f\\xf2\\xe3\\x62\\x37\\xe4\\xee\\x12\\xef\\x1a\\x22\\xd1\\x6d\\x7c\\xf4\\xc0\\x72\\xdc\\xed\\x91\\xcd\\xd2\\x6e\\xe1\\x44\\xcc\\x2b\\xef\\x49\\x50\\x02\\x63\\x49\\xe9\\x44\\x47\\x84\\x08\\x1f\\xe4\\xe0\\x49\\x8b\\xc7\\x5f\\x72\\xe6\\x81\\x8f\\x45\\x9b\\xba\\x90\\x49\\xc5\\x61\\x31\\x6c\\x9f\\x49\\x8e\\x7b\\x1a\\x99\\x4b\\x0e\\x93\\x05\\x5f\\xe7\\x3e\\x44\\x4c\\xbd\\xf9\\x6a\\xc3\\x5e\\x9c\\x4e\\x92\\xe6\\xb4\\x9e\\x3b\\xc0\\xe9\\x9d\\xe1\\x71\\x6d\\xf8\\xea\\xca\\xeb\\x8d\\x2f\\xd7\\x48\\x70\\x04\\x4c\\xb3\\x9c\\x0e\\x36\\x7a\\x1f\\xe3\\x2a\\x9b\\xb2\\x97\\x44\\x16\\x36\\x4e\\x73\\x0d\\x52\\x48\\xdf\\xb1\\xdf\\x16\\x4a\\x8d\\x58\\xca\\xa1\\x00\\x5f\\xdc\\x91\\xba\\xc2\\xbc\\x01\\xcc\\x77\\xde\\xcc\\x14\\x89\\x3e\\xf9\\x46\\xfb\\x3c\\x81\\xbe\\x08\\x32\\xc7\\x2f\\xba\\x37\\x20\\x62\\xf8\\x36\\x0f\\x4d\\x8e\\x6d\\x5b\\x74\\x1c\\xf7\\x03\\x2d\\x8d\\x89\\xde\\x2e\\xdf\\x4c\\x71\\x4a\\x29\\xf7\\x5a\\xbd\\x8f\\x5f\\xf4\\x3e\\xcd\\xd4\\xb7\\xa0\\x4d\\x7d\\xb0\\x88\\x2d\\x16\\xe7\\x44\\x73\\xa0\\xfb\\x79\\xdb\\x44\\x4a\\x78\\xea\\x44\\xaa\\x26\\x31\\xb8\\xc0\\xd7\\xb0\\x30\\x0d\\x55\\xcb\\x6a\\xc4\\x85\\xf2\\x4c\\x0a\\xcc\\x64\\x77\\x47\\xc4\\x3d\\xb3\\xb2\\xa8\\x67\\x7b\\xaf\\x65\\x6f\\xa7\\x35\\xa5\\x75\\xf1\\x81\\x3f\\x36\\x68\\xa2\\xac\\xa9\\x17\\x57\\x11\\xb5\\x25\\xeb\\x49\\x6e\\x9e\\xf9\\x71\\x1d\\x75\\xf5\\x90\\xc7\\xd9\\xef\\x99\\xe0\\xf5\\x9e\\x84\\x83\\xcb\\xf9\\xf2\\x84\\xe3\\xf5\\xa3\\x3e\\xe7\\x78\\x1e\\x62\\xb8\\xb0\\x55\\x51\\x77\\x7e\\xfe\\x0f\\xbf\\xd1\\x9e\\x54\\xb6\\xbb\\xd1\\x42\\x94\\x4b\\xc2\\x95\\x9a\\x82\\xeb\\xd2\\x95\\xd2\\x3d\\x34\\x43\\xb6\\xce\\x65\\x8c\\x2d\\x57\\x9a\\x76\\x37\\xb5\\x49\\x52\\x04\\x91\\x90\\x8e\\x34\\x28\\x2e\\xc2\\x71\\x69\\x72\\xe6\\xf0\\x35\\x39\\x29\\x54\\x7e\\xf1\\x53\\x7a\\xec\\xc9\\x6b\\x2d\\xf6\\x16\\x14\\x85\\x99\\xb0\\x9d\\x9b\\x81\\x39\\x4a\\x13\\xfe\\x7d\\xb8\\x67\\x60\\xb1\\xe2\\xa0\\x60\\xef\\xd4\\x84\\xe8\\x18\\x99\\x39\\xeb\\xdf\\x6f\\x21\\x64\\x0d\\x89\\xd8\\xe7\\x36\\xde\\xe0\\x82\\xad\\x72\\xa0\\x18\\x4a\\xde\\xdd\\x8d\\xf2\\x14\\x74\\xc9\\xf5\\x26\\xbc\\xfd\\xf7\\xe8\\x56\\x58\\x19\\x4b\\xb6\\xd9\\x42\\xe7\\xf3\\xfe\\x96\\xc2\\x3f\"},\n{{0x70,0x48,0xc6,0x52,0x1a,0xef,0xaf,0xa4,0xea,0xc6,0xd6,0xc3,0xa7,0x02,0xb9,0x52,0x54,0x80,0xa6,0x64,0x82,0xe4,0x96,0x98,0x96,0x75,0x7f,0x2c,0xd1,0xac,0x7d,0x5b,},{0xed,0x93,0x11,0x3c,0x16,0x43,0xa5,0x3a,0xa0,0x64,0xca,0xa6,0x31,0xce,0xb6,0xe2,0x0f,0x6d,0x6e,0xc2,0xfc,0x6c,0x07,0x11,0xcb,0x8a,0x1f,0xe7,0x31,0x39,0xaf,0x93,},{0x7c,0x45,0x70,0x3e,0xd3,0x94,0x2e,0x44,0x04,0x1c,0x7f,0xa1,0x85,0x8a,0xa5,0xf1,0xdc,0x38,0x1f,0x49,0x3a,0x45,0x2d,0xfb,0x52,0x70,0x80,0x17,0x89,0x8f,0x71,0x0e,0x31,0x11,0x8e,0x33,0x1f,0x00,0xaa,0x64,0xcb,0x73,0x88,0x36,0x68,0x2b,0x7d,0x17,0x7e,0x97,0x95,0x5c,0x00,0x31,0x9a,0xbd,0x79,0xa4,0x9e,0x0f,0xcd,0x16,0xfe,0x00,},\"\\x53\\xf7\\x4c\\x72\\x4d\\xb1\\x57\\x8a\\x1a\\x29\\x6a\\x7c\\xca\\xc9\\x04\\xa2\\x50\\x4d\\xd9\\x00\\x53\\x89\\xb4\\xf8\\xd4\\xea\\x4b\\x63\\x07\\x29\\x8f\\xc6\\xdc\\xce\\x98\\xa6\\xbc\\x07\\x28\\x0d\\x20\\x36\\x4e\\x40\\x5a\\x46\\x7e\\x73\\x65\\x78\\x96\\x52\\x69\\xc8\\x14\\x61\\xd6\\x1f\\xc6\\xb7\\xe4\\xba\\xd6\\x8d\\x2b\\x6d\\xd0\\x00\\x58\\x50\\x10\\x5f\\x0a\\x67\\xbb\\xc6\\xee\\x22\\x3e\\xc1\\x75\\x4a\\xf4\\xe3\\xb9\\xaf\\xa5\\x06\\x2d\\x1c\\x18\\x61\\x04\\x8f\\x18\\x5b\\x12\\x8f\\x1a\\x5c\\x0f\\xb2\\x5c\\x39\\x19\\xb4\\x83\\x3e\\x29\\xe2\\x02\\xbc\\x94\\x1a\\x90\\x5e\\x63\\xc2\\xc0\\x5b\\x10\\x14\\x64\\x7b\\xd7\\xed\\xe5\\xbe\\x9f\\x99\\x66\\x15\\x18\\x7a\\x3d\\x3b\\xb2\\xc7\\xdc\\x4c\\x28\\xf7\\x05\\x3d\\xef\\x9b\\x28\\xb2\\x9e\\x23\\x31\\xf1\\x62\\x96\\xdc\\xe8\\xf1\\xed\\xe4\\x84\\xca\\xec\\x99\\x67\\x02\\xbd\\x99\\x02\\xe5\\x26\\x84\\xc8\\x12\\xc8\\x74\\x40\\xf6\\x9b\\xd1\\x41\\xc7\\xe0\\x0c\\x69\\x47\\xd1\\xfc\\x7c\\x3b\\xdc\\x0b\\xc5\\x50\\x6b\\x6e\\xa4\\x62\\xe6\\x5f\\x9e\\x74\\x3b\\x72\\xc0\\x07\\xdd\\xc7\\xa3\\x77\\x49\\x37\\x77\\xd4\\xeb\\x12\\x62\\x0c\\xa6\\xc0\\x19\\xc8\\xbf\\xc4\\xc2\\x9e\\xc8\\xaf\\x38\\x2f\\xc3\\xea\\xc8\\x41\\x02\\x1a\\x74\\xe4\\x67\\x4b\\xa3\\xe4\\x3e\\x5d\\x7b\\x41\\xe3\\xfe\\xeb\\x17\\xda\\x00\\xa7\\xce\\x45\\x5a\\x1c\\xec\\x70\\xb0\\xbe\\x6e\\x56\\xf8\\x5f\\xc3\\x7f\\x64\\xcf\\x07\\x33\\xb7\\xe3\\x12\\x41\\xde\\x64\\x1a\\x8a\\x8e\\x5b\\x91\\x89\\x7b\\xc1\\x58\\xfe\\x93\\xd1\\x02\\xc0\\x1d\\x1f\\x5e\\x16\\x6d\\x40\\x81\\x65\\xfe\\x3f\\xcb\\x13\\xd5\\x30\\x45\\x90\\xab\\x8e\\xf0\\xdc\\x8d\\x5a\\x8c\\x1d\\x8a\\x93\\xfc\\xeb\\x85\\x4f\\xc1\\xfa\\x36\\xd0\\xcc\\x48\\x0c\\xf8\\x51\\x2d\\x80\\xbe\\xe6\\x9b\\x06\\x50\\xa9\\x57\\xda\\xed\\x28\\x3c\\xd7\\x63\\x81\\x55\\xed\\x77\\x30\\x86\\xe8\\x6a\\x8f\\xfb\\x19\\x8a\\xcc\\x74\\x23\\xb5\\xd1\\xa6\\x09\\xa1\\x75\\xa5\\x6b\\x94\\xc9\\x6b\\x73\\x18\\x51\\xb9\\x3a\\x94\\x97\\x71\\x01\\xe2\\x55\\xf1\\xce\\x92\\xe2\\x32\\xa0\\x5e\\x2e\\x33\\x87\\xfc\\xb4\\xdc\\x13\\xa3\\x1b\\xee\\x6e\\xe2\\x55\\x07\\x32\\x2c\\x73\\xc9\\x88\\x30\\x80\\xa7\\x4c\\x00\\xf8\\x03\\xa9\\x98\\xdd\\x53\\x0a\\x79\\x12\\x6b\\xb1\\x44\\xed\\x55\\x74\\xc4\\xb2\\x31\\x80\\xe3\\x4e\\x09\\x92\\x83\\xb4\\xbb\\x1d\\x28\\x82\\x2f\\xce\\x37\\x17\\x04\\x6f\\xf3\\x2e\\xf9\\xe2\\xcd\\xf9\\x67\\xe3\\x18\\xea\\x72\\x6a\\x2a\\xee\\xc5\\x78\\x06\\x64\\x3a\\xd4\\x80\\x1d\\x3e\\x0d\\xa5\\x2a\\x1d\\x77\\xbf\\x04\\x3f\\x5a\\xe9\\xf3\\xae\\xa9\\xe4\\xbc\\x4f\\xa7\\x95\\xd0\\x84\\x01\\x08\\x5c\\xa9\\x4c\\xfc\\x4c\\xe7\\x19\\xda\\xbc\\x7b\\x23\\x90\\xd0\\x3d\\x29\\x4a\\x65\\xb7\\xaf\\x9b\\xc3\\x90\\x72\\x28\\x5b\\x77\\x7b\\x2f\\x13\\x3d\\xc1\\x1a\\x70\\xc0\\xa9\\xf0\\x60\\xe1\\x04\\x41\\xf4\\x02\\x16\\xac\\xb6\\x41\\x63\\x7a\\x2e\\xad\\xf1\\xf7\\xb8\\xd2\\x62\\xfe\\xc1\\xb4\\xd0\\xf0\\xf4\\xfa\\xa9\\x3f\\x3f\\x73\\x2c\\xac\\x38\\x2d\\x8a\\xc4\\x2e\\x17\\x8e\\x22\\x44\\x99\\x9d\\x76\\x4a\\x9d\\x0e\\x98\\x17\\x14\\x68\\x6e\\xb4\\x92\\x44\\x97\\xe5\\x6b\\x50\\x15\\x7e\\x99\\x39\\x03\\x2c\\x9f\\x88\\xeb\\x65\\x7c\\xfd\\xe4\\x4a\\xd3\\x47\\x14\\xaf\\x4a\\x51\\x32\\x4e\\x5e\\x77\\xd0\\xde\\xea\\x99\\xc9\\xf2\\x44\\xd2\\xe0\\x9e\\xa4\\x25\\x82\\x0a\\x74\\x6d\\x88\\x3a\\x0c\\xf4\\xb7\\x05\\xc2\\x9d\\xf8\\xc0\\x37\\x44\\x81\\x54\\xdc\\x08\\xa4\\xd4\\x33\\x74\\x05\\xfb\\x87\\x65\\x82\\x31\\x14\\x37\\x0b\\x37\\xed\\x86\\x08\\x6e\\xc5\\xf8\\xbd\\x6c\\x72\\xab\\xf1\\x3f\\x51\\x84\\x30\\x71\\x0f\\x59\\x7b\\x06\\x10\\x8f\\x65\\xb3\\x0a\\x48\\x34\\x96\\xe2\\xed\\x81\\xda\\xb1\\x0f\\xee\\x94\\x7f\\xe0\\x4b\\x54\\x85\\xf2\\xe3\\x07\\x40\\x49\\xd2\\x22\\x84\\x26\\x66\\x51\\xad\\x10\\xdd\\x08\\x6a\\xaa\\x5d\\x45\\x2e\\x0d\\x1a\\x61\\x12\\x9d\\x1e\\x77\\xc6\\x63\\xc2\\x6d\\x08\\x89\\x62\\xb5\\x54\\x56\\x45\\xb7\\xa1\\xa8\\x71\\x3d\\x51\\x32\\x7a\\x7a\\x35\\x9b\\x12\\xda\\xad\\xb8\\x5a\\x2c\\xd4\\xb5\\x41\\x0d\\x5c\\x20\\x26\\x7f\\xa7\\x66\\xb8\\xc4\\x2a\\x84\\xdc\\x42\\x66\\x45\\x88\\x87\\x9b\\x3e\\xae\\xfd\\x4c\\xc8\\xdc\\x69\\x3f\\x98\\xac\\x20\\x56\\x09\\xe5\\x70\\x66\\x5b\\x01\\xea\\x46\\x55\\xe3\\x94\\x29\\xa7\\xa7\\xe5\\x42\\xef\\xb4\\xf7\\x89\\x0d\\xbf\\x4e\\x34\\xc6\\xcf\\xf0\\x7e\\x4d\\x35\\xbd\\x3e\\xee\\xdf\\x5b\\x46\\x28\\x0f\\x4a\\x0d\\xa0\\xc2\\xe7\\x3c\\x94\\xea\\x81\\xcf\\xea\\xe7\\xf9\\xbd\\x04\\xfe\\x2d\\x45\\x97\\x65\\x00\\xf7\\xdc\\xac\\xb0\\xdf\\x2a\\x5d\\xc7\\x36\\xa8\\x23\\x67\\x1d\\xb6\\x79\\xbe\\x66\\xcb\\x33\\xc1\\x62\\xfd\\x2c\\x74\\xae\\x71\\xfb\\xf4\\xd2\\xb0\\x5a\\xf0\\x42\\xb3\\xa9\\x77\\xf5\\xb9\\x44\\xb9\\xfd\\xb6\\xc3\\x44\\x24\\x42\\x1b\\xcf\\x4f\\x62\\x23\\x76\\x84\\x28\\xfa\\x14\\x0f\\xd4\"},\n{{0x3e,0x63,0x73,0xb2,0x65,0xb9,0x67,0x89,0x00,0x7a,0xd2,0xa1,0x0c,0x30,0x9a,0x56,0x76,0x38,0xf2,0x55,0x87,0xd7,0x7e,0x28,0xb0,0x82,0x3a,0x4f,0x17,0x9a,0xe4,0xfe,},{0xa3,0x23,0x4e,0x5d,0x13,0xb0,0x34,0x72,0x16,0x50,0x36,0x40,0x4f,0x6d,0xe8,0x0e,0x70,0x28,0x39,0x50,0x0f,0x13,0xd9,0xc9,0x85,0xa0,0x77,0xd4,0x5c,0x69,0xff,0x45,},{0xf5,0x1e,0x0f,0x87,0x8a,0x5a,0x70,0x96,0x47,0xe8,0x5f,0xea,0x83,0x9f,0xd5,0x66,0xe6,0xf3,0x5c,0x8a,0x61,0x85,0xd0,0xc9,0xeb,0x13,0xe0,0xd5,0xb9,0xe6,0xe8,0xaa,0x95,0xc3,0x33,0xa8,0xf5,0x06,0x32,0xa4,0xd6,0x65,0x7b,0x51,0x8c,0xe4,0xcf,0xde,0x40,0xb8,0xf5,0xa0,0x5b,0x2d,0x9f,0x84,0x41,0xfc,0xc9,0xd2,0xd6,0x92,0xd5,0x09,},\"\\xb9\\xd0\\x68\\xbb\\xca\\xe7\\x72\\x2f\\x82\\x8b\\x0f\\x8c\\x98\\xa7\\x38\\xe3\\x6a\\x7d\\xf4\\xc9\\x97\\xc7\\x24\\xba\\x27\\x53\\x1a\\xf3\\x4a\\x2f\\x10\\x6c\\x75\\x13\\xa4\\x4a\\x46\\x1a\\x9a\\xa4\\x30\\x9b\\xc1\\x5c\\x4e\\x0d\\x42\\x75\\x91\\x93\\xea\\x1c\\xde\\xa9\\x56\\xbb\\x81\\x59\\x85\\xf5\\x78\\x67\\x14\\x5e\\x9e\\x2c\\x75\\x85\\xfc\\x8d\\x61\\x02\\x7e\\x47\\xd2\\xd7\\x35\\xe2\\x44\\x8a\\xf3\\x78\\x29\\x09\\x40\\x4e\\xde\\xaa\\xc0\\xfd\\x73\\xf6\\x04\\x5d\\xcd\\xb0\\x4f\\x03\\x77\\x75\\x8f\\x02\\x20\\x4a\\xae\\x3a\\x72\\x20\\x31\\x1c\\x0f\\x47\\x23\\x58\\x27\\x10\\xcc\\x44\\x0c\\x36\\xc9\\x58\\x7b\\x5c\\x9e\\xbc\\x40\\x63\\xfe\\xa8\\xca\\x3f\\x43\\x19\\x58\\x94\\xf7\\x9a\\x36\\x50\\x87\\x13\\x72\\x82\\x30\\x2d\\xbf\\x2e\\x7a\\x0d\\x41\\x1a\\xb5\\x8b\\x70\\x26\\xcc\\xde\\x19\\x88\\x69\\xaa\\x73\\x43\\x34\\xc0\\x52\\x38\\xe2\\x75\\xe3\\xc3\\xab\\x21\\x70\\x83\\x49\\x57\\x69\\xe2\\xfa\\xd3\\x74\\x05\\x14\\x52\\xd7\\xf5\\xb1\\xdb\\x0e\\x78\\x58\\x36\\xd4\\xbd\\x5e\\x29\\x78\\xa3\\xe9\\x91\\xaf\\x0f\\xf7\\x16\\xf4\\x38\\x89\\xa0\\x7f\\x5d\\xf2\\x99\\x60\\x36\\x21\\xc3\\x9e\\x2c\\xde\\xe0\\x89\\x98\\x5d\\x9e\\x6b\\xf7\\xb2\\xfb\\xd0\\x23\\x73\\xae\\x1b\\x5e\\x9b\\x88\\xf5\\xb5\\x4a\\x07\\x6e\\x67\\x6d\\x77\\x90\\xbf\\xc8\\xf5\\x7d\\xcc\\x59\\xef\\x52\\x85\\x0c\\xe9\\x92\\xa7\\x3b\\xa7\\xbc\\x99\\x1d\\xeb\\x4d\\xde\\x5e\\xb0\\xb2\\x16\\x70\\xb1\\xb3\\xd4\\xb6\\x4f\\x36\\xcc\\xa8\\xe3\\x07\\x09\\x85\\x68\\x49\\x7d\\x89\\x16\\xf6\\xb5\\xd0\\xe9\\xe8\\x9f\\x99\\xf8\\x60\\x06\\xf3\\x9b\\xd3\\xa8\\x10\\x76\\x9c\\x8f\\x78\\x01\\x77\\x3c\\x96\\x38\\xab\\xcf\\x5e\\x27\\x11\\xb1\\x9d\\x11\\x67\\x59\\x3a\\xcb\\xe8\\x5e\\x41\\x61\\x42\\x89\\x97\\xa2\\x19\\x4d\\xc5\\xe7\\xb7\\x64\\x0f\\x0d\\x2c\\x1e\\xb2\\x05\\x55\\x3b\\xe9\\x16\\x7f\\xfb\\xc2\\x2b\\x7c\\x2e\\x76\\x98\\xf3\\xaf\\xa1\\x07\\x54\\xcb\\x44\\xd4\\xb1\\xd4\\x5b\\x83\\x73\\x03\\xb1\\x66\\x90\\x73\\x41\\x5a\\x22\\x60\\x6b\\x50\\xf2\\x1f\\x82\\x65\\xe1\\x39\\xf2\\x30\\x5a\\xc0\\xe0\\x12\\x7a\\xe0\\x56\\xce\\x8a\\xbe\\xab\\xa2\\x0e\\x1d\\x26\\x9a\\x2b\\x2e\\x89\\x9c\\x49\\x54\\x72\\x68\\xa0\\x69\\x6a\\xe4\\x50\\xdc\\x02\\x67\\xf7\\xf6\\x3a\\x8e\\xdf\\x07\\x4c\\x47\\xd3\\xc2\\xdb\\x1d\\xa3\\x63\\x93\\x73\\x73\\x04\\xe6\\xdd\\x4f\\xac\\xcd\\xb6\\xab\\x55\\xe5\\xf8\\x52\\x0c\\x3d\\xff\\x5f\\x6b\\xea\\xc3\\x0b\\xa8\\x5b\\x86\\x08\\x23\\x51\\xe3\\xde\\xd8\\x40\\x0a\\xa5\\x7f\\x65\\x0c\\x0c\\x33\\x03\\x6d\\x65\\xb3\\x9b\\x7d\\x2f\\xb6\\x11\\x28\\x63\\xd5\\x9b\\x72\\x55\\x82\\x42\\xe8\\xb0\\x45\\xad\\xdd\\x35\\x7d\\xe6\\xfd\\x37\\xa8\\xf6\\x61\\x17\\x65\\xc9\\xb5\\xff\\x19\\xcc\\x4d\\xb7\\xe1\\x17\\xc6\\x5a\\x00\\x45\\x89\\x08\\xb0\\x24\\x5d\\x04\\xf7\\x90\\x8f\\xc7\\x3b\\x16\\x5d\\xff\\x6e\\x4b\\xe4\\xb4\\x20\\x32\\xd8\\xcf\\xd7\\xd6\\xf7\\x77\\x2c\\x1b\\xfe\\x72\\x1d\\x4b\\xcf\\xe2\\xfc\\x52\\x79\\x98\\xf3\\x4f\\xb4\\x41\\x8a\\x1f\\xae\\x1e\\x6c\\x37\\x67\\xc4\\xd0\\x78\\x06\\x21\\xf9\\x23\\xda\\x1f\\x0a\\x0d\\x3d\\x21\\x9c\\x03\\x6a\\xcf\\xd3\\x70\\x9d\\xad\\x4c\\xf2\\x4d\\x90\\xbc\\x69\\x1d\\x70\\x0e\\x6a\\x9c\\x80\\xcc\\xfd\\x10\\xbd\\xe8\\xe7\\x91\\xc0\\xfe\\xa8\\x28\\x80\\xc0\\x7b\\xaa\\xaa\\x31\\x1e\\xef\\x79\\x24\\x07\\x84\\xf6\\x28\\xa7\\xd2\\xa0\\x91\\x84\\xe0\\x16\\xf8\\x10\\x08\\xe7\\x74\\x29\\xa8\\x65\\x8b\\x15\\x3e\\x44\\xe7\\x9a\\x98\\xad\\x24\\x8f\\x7f\\xda\\x23\\xb5\\x90\\xd6\\x46\\xd7\\xc1\\xd8\\x41\\xf4\\x92\\x7d\\x6e\\x8b\\xc7\\x32\\x14\\xd1\\x0a\\x7f\\x3c\\x29\\xc8\\xf8\\x39\\xa8\\x90\\x8d\\x20\\xa7\\x4e\\x82\\x7a\\xf4\\x67\\xac\\x5a\\xbf\\x0f\\x1d\\x0e\\xd3\\x9c\\xdd\\xd9\\x69\\xdd\\xe9\\xee\\xb4\\xa4\\xb7\\x52\\x7a\\xb3\\xe2\\x47\\x5a\\x19\\x5e\\x24\\x47\\x4a\\x4e\\x36\\xb0\\x90\\x52\\xe2\\xda\\xd4\\xa5\\xeb\\x46\\x91\\xe2\\x63\\xb8\\xc6\\x1b\\xbd\\xe8\\x77\\x72\\x20\\x7e\\x01\\x1c\\x4c\\x1e\\x14\\x23\\x5f\\xb2\\x4e\\x4d\\xa4\\x38\\x87\\x5d\\x18\\x53\\x0f\\xef\\x90\\x26\\x19\\xdd\\x48\\x5d\\x77\\xb5\\x45\\xab\\xb5\\x6b\\x69\\xc7\\x55\\xaf\\xe7\\x58\\x60\\x69\\x71\\xab\\x97\\xdd\\x3a\\xce\\x1c\\x1a\\x34\\xa3\\x37\\x94\\xc8\\x15\\x6d\\xa7\\x99\\xe8\\x22\\x4d\\x88\\x5e\\x18\\x68\\xf9\\xcb\\x46\\x6d\\x80\\x2c\\x82\\x7c\\xc3\\xe1\\xec\\xd0\\xae\\x6e\\x0b\\x01\\xf8\\xf7\\x91\\xb1\\x22\\x08\\xfc\\xc0\\xfe\\xd3\\x85\\xb7\\x96\\xeb\\x2f\\x29\\x08\\xb5\\x8d\\x30\\xb3\\x73\\x3f\\x14\\x70\\xf2\\xe2\\xef\\x12\\xad\\x43\\xfe\\xb7\\x2d\\x08\\x16\\xde\\x3c\\x13\\xa8\\xb5\\xa5\\x23\\xe1\\x4c\\xdf\\x5f\\xf3\\x72\\x0b\\xf8\\x77\\x69\\xcd\\xe7\\x49\\x5d\\x22\\x6b\\xf3\\x82\\x38\\xa8\\x25\\xf7\\x5a\\x09\\xf6\\xbb\\x9a\\xfc\\xe5\\x16\\xa7\\xbc\\x70\\x11\\x43\\x70\\xbb\\xc4\\x0f\\x17\\xc7\\xbc\"},\n{{0xf5,0xe8,0x59,0x7e,0xac,0x0e,0xbf,0xa9,0xd3,0x85,0xde,0x85,0xa1,0xfb,0xaa,0x35,0x14,0x63,0x95,0xb1,0x34,0x57,0xb5,0xb1,0x4d,0x36,0x70,0xda,0xca,0x69,0x05,0xe7,},{0xce,0x93,0xe6,0x42,0xc2,0xf1,0x50,0x84,0xbc,0x83,0xba,0xfd,0xaa,0x19,0x67,0x63,0xde,0x2a,0x3c,0x51,0x3b,0x0e,0x44,0xf6,0x8d,0xdb,0xde,0x37,0x85,0x14,0xc4,0x41,},{0x57,0x65,0x43,0xfc,0x21,0xab,0x0a,0x7c,0x5f,0x63,0xb1,0xcf,0xf0,0x1b,0xf8,0x45,0xdf,0x91,0x79,0x2e,0x7a,0x97,0x50,0xc5,0x50,0x8b,0x51,0x66,0x5e,0x7f,0x89,0xf1,0x7c,0x6e,0xc3,0x35,0x5a,0x0a,0xed,0x87,0xdb,0x8c,0x77,0xbd,0xb2,0x71,0xfb,0xed,0xc7,0x14,0xff,0xad,0xb7,0x8b,0x5e,0x0f,0x97,0x81,0x16,0x77,0x1b,0xa7,0xcf,0x0b,},\"\\x27\\x33\\x41\\xf2\\x19\\xff\\x5c\\xf3\\x81\\xc7\\x7b\\x2d\\xd2\\x26\\xc5\\x8f\\x8f\\x33\\xc4\\x52\\x70\\x48\\xcb\\x00\\x6a\\xff\\xef\\x8c\\xee\\x15\\x1e\\x30\\x0e\\xfe\\xf6\\x29\\xfe\\xd2\\x1b\\x70\\x45\\x1f\\x72\\x92\\x92\\x62\\x7d\\x1f\\x3f\\x1b\\x52\\x57\\x35\\x9e\\xe5\\xa6\\x71\\xcf\\x62\\xae\\x57\\x32\\x49\\x40\\xf2\\xd0\\xb1\\x5a\\xac\\x76\\xff\\x39\\x82\\x20\\xc0\\x80\\x24\\xe2\\x9a\\x8c\\xf3\\x65\\x04\\xe1\\x2a\\x4e\\x96\\x43\\x8f\\x42\\xc3\\xda\\x0c\\x00\\x05\\x41\\xbc\\x11\\xf0\\x91\\x38\\x1b\\x0b\\x72\\xb5\\x8a\\x92\\x08\\x3f\\x44\\x6e\\xca\\x19\\x91\\x99\\x68\\x78\\xde\\x35\\x08\\x1c\\xc4\\xab\\x90\\x95\\x8c\\x96\\xcf\\x5c\\x99\\x79\\x6c\\xba\\x79\\x51\\xee\\x18\\x6f\\x26\\x52\\x7a\\xed\\xe6\\x9d\\xb3\\x04\\xce\\x29\\x41\\xba\\x15\\xcc\\x00\\xba\\x2f\\x14\\x11\\xf2\\x08\\xda\\xd4\\x5e\\x87\\xbc\\xf6\\x38\\x79\\x2d\\xe0\\xa6\\x86\\x24\\xb6\\x67\\x29\\x7c\\x27\\xa3\\x43\\xdb\\x4b\\xaf\\x34\\xa0\\x22\\x8e\\xaf\\x0d\\x10\\x22\\x00\\x9b\\x5d\\x06\\x8b\\x25\\x34\\xd9\\x20\\x30\\x2e\\x71\\x31\\x0f\\xeb\\xf0\\xdf\\x1b\\xb0\\x2c\\x2e\\xf0\\xad\\x1a\\xe1\\x49\\xde\\xad\\xf8\\xc1\\x84\\x37\\x3c\\x0f\\x7e\\xb6\\xb2\\x56\\x95\\xbe\\x82\\xd1\\x2c\\x71\\xb6\\xc8\\x32\\x67\\xd9\\xa2\\x33\\x66\\x7e\\x77\\xbc\\x20\\x59\\x83\\xf8\\xb8\\xd8\\x77\\xd8\\x5a\\xea\\xd3\\xf6\\x0e\\x82\\x0f\\xfc\\xb1\\x7a\\xdd\\xdd\\x92\\xa7\\x71\\x2b\\xbe\\xb3\\x4e\\xe7\\x19\\x66\\xda\\xfd\\x99\\x07\\xd1\\x93\\xdd\\x9d\\x72\\x5a\\x31\\xa6\\x13\\xd2\\x9e\\x32\\xbe\\x72\\x13\\x28\\x08\\x92\\x6d\\x94\\x37\\x47\\x7f\\xee\\x25\\xed\\xa6\\x10\\xae\\xb1\\xdc\\xe1\\x2e\\xa3\\x16\\xc6\\xae\\xc6\\x68\\x9e\\x50\\x1c\\x55\\x19\\x23\\x82\\x5a\\x34\\xb4\\x2c\\x4f\\x06\\x75\\xb8\\x6a\\xb2\\x6a\\xde\\xea\\x2e\\x60\\xda\\xe6\\xc6\\xd1\\xcd\\xd0\\xcb\\x3c\\x34\\x7b\\x16\\x38\\x40\\x39\\xa8\\xe3\\xfd\\x60\\x87\\x38\\x13\\x87\\xcb\\x4b\\xc7\\x2d\\xdb\\x5f\\x25\\xb3\\x74\\x85\\x9b\\x02\\xe5\\xbb\\x1b\\xa0\\x6d\\x3c\\xc6\\x9e\\xc4\\x4c\\xec\\x4b\\x98\\x5c\\x84\\x76\\xe3\\x50\\x32\\xe9\\x9a\\xbf\\x00\\x1a\\x1d\\x44\\xdd\\xc6\\xe2\\x88\\x9c\\x3c\\x2c\\x3e\\xca\\xce\\xd6\\x09\\xb2\\xb2\\x68\\x0e\\x00\\xb1\\xef\\xa7\\xe9\\xd2\\x6d\\x62\\xf2\\xb3\\xab\\x36\\xf9\\x21\\x04\\x47\\x90\\xab\\xbd\\x49\\x36\\x07\\x56\\xdc\\xff\\xcc\\xf2\\x30\\xf6\\x6d\\xbb\\x70\\x1a\\xa1\\x64\\xda\\xd6\\x06\\x9a\\xa2\\xb8\\xb3\\x30\\x9f\\x2f\\xe4\\x4d\\x5e\\x0b\\x25\\xbd\\x55\\x64\\x31\\xf0\\xdf\\x4c\\x2e\\xa9\\x7a\\xe7\\x9e\\xd4\\xa5\\x75\\x78\\xd6\\x6f\\xc6\\x93\\x9c\\x57\\x62\\x8a\\x90\\xca\\xc9\\x7a\\xdf\\xa8\\x70\\x2a\\x4a\\x1c\\x89\\x65\\xba\\x1a\\x90\\x26\\x25\\x67\\x28\\x66\\x64\\x00\\x30\\x03\\x53\\x3c\\xc9\\x31\\x4c\\xaf\\x7d\\x3b\\x98\\x2e\\x0a\\x43\\x2f\\xf5\\xaa\\x4e\\xd5\\x74\\x19\\x83\\xd9\\xb5\\x43\\x23\\xac\\x7e\\x29\\x9b\\x2b\\x49\\x56\\xc1\\xa2\\xc1\\x91\\x55\\x7b\\x27\\xd8\\x6b\\xe7\\x14\\xb5\\xb6\\x8f\\xcb\\x1d\\x41\\xf7\\x8c\\xa5\\xdd\\xb6\\xb5\\x3b\\x3d\\xfc\\x8e\\x7d\\x6b\\x3c\\x3d\\xb0\\x59\\xaf\\x9f\\x2d\\xd7\\x65\\xef\\x04\\xb6\\xd1\\x6e\\x67\\x37\\xc7\\x27\\xaa\\x11\\xf3\\xdf\\x37\\x74\\xa3\\xfc\\x96\\x18\\x2e\\x28\\x2a\\xcc\\x3d\\x23\\x3e\\xea\\xbf\\x8c\\x72\\xd3\\xf2\\x46\\xae\\x18\\x45\\x05\\x28\\x8f\\xef\\x39\\xb3\\x67\\x66\\xb1\\x0d\\xd1\\xbf\\xbf\\xbf\\xa7\\x0f\\x97\\xb3\\xc9\\x01\\x72\\x6d\\x1e\\x0d\\x0a\\x83\\x7d\\x11\\xf0\\x12\\x3a\\x34\\xab\\xad\\x1a\\x79\\xaa\\xbe\\x80\\xb1\\x25\\xb1\\x28\\xee\\x16\\x0b\\x51\\x18\\x48\\xf7\\xf0\\x4c\\x49\\xc8\\xd5\\xc2\\xf2\\x04\\x1d\\xa7\\xd9\\x59\\x9c\\x29\\xb1\\xda\\xc8\\xc6\\x80\\x77\\xef\\xac\\x3e\\xca\\x58\\xbb\\xc1\\x63\\x7a\\xad\\xce\\x21\\xc7\\x74\\xfe\\xa4\\x2d\\x2b\\xcf\\x4a\\x0b\\x98\\x92\\x30\\x7e\\x36\\xfa\\x25\\x0a\\xce\\xe7\\x95\\xad\\x2b\\xfe\\xcf\\xbf\\x60\\x31\\x9b\\x81\\x66\\x3e\\x2a\\x26\\x57\\x19\\x46\\xf7\\x5a\\x8d\\x96\\x9a\\xf1\\x6b\\x3b\\x57\\xc3\\xec\\x3e\\x66\\x15\\x8a\\xaf\\x42\\xcc\\xf5\\xe5\\x8b\\x93\\x7a\\xae\\xf6\\x13\\x31\\x86\\x06\\x60\\x33\\x17\\xe5\\xaa\\x31\\x8b\\xe7\\x0f\\x8d\\xa3\\xc0\\xc1\\x6b\\xe6\\xc2\\x9e\\x3e\\xc9\\xfe\\xf4\\xe4\\x6e\\x8c\\xa2\\x41\\xd9\\x41\\xd5\\x80\\x49\\xa0\\x63\\xd9\\x0a\\xfc\\x95\\x3c\\xa3\\x2e\\x8a\\x50\\xa6\\x47\\x36\\x32\\x58\\x8a\\xc4\\x1e\\xae\\x97\\xf2\\x0c\\xe9\\xb7\\x41\\xed\\x41\\xc9\\xa4\\xaa\\x65\\x51\\xfd\\x82\\x3c\\xe0\\xc8\\x11\\xa5\\xbb\\x5a\\x17\\x1c\\x1e\\xa4\\x23\\x8a\\x02\\x46\\x81\\x1e\\x46\\x9c\\xf4\\x98\\xb7\\x96\\x21\\xc3\\x23\\xeb\\xa7\\x98\\x53\\x44\\xfe\\x11\\xe6\\x74\\x99\\xed\\xf4\\x96\\x74\\x91\\xaa\\x74\\x9f\\x8f\\x3f\\xe3\\x99\\x61\\xd7\\x68\\x92\\xc9\\x3a\\xac\\x3b\\x19\\xfa\\x4b\\x4f\\xc1\\x74\\xd7\\xd4\\xd4\\xd8\\xbd\\x6e\\xe4\\x75\\x47\\x50\\x08\"},\n{{0xcd,0xad,0xc5,0xb8,0x9c,0xb2,0xb6,0x30,0x8a,0x00,0x6f,0x2f,0x4e,0x95,0x5a,0x91,0xaa,0xf3,0xba,0x70,0x16,0x5f,0x2d,0x44,0x4e,0xf1,0xff,0xeb,0xbd,0xaa,0xa2,0x21,},{0x05,0x41,0x41,0x5f,0xf5,0x46,0x7f,0x28,0xce,0xac,0x83,0x9b,0x13,0xa1,0x76,0x6e,0x72,0xc9,0x9e,0x65,0x45,0x20,0x7d,0x9d,0x5d,0x96,0x97,0x41,0x1e,0xb6,0xbc,0xa7,},{0xff,0xed,0xe7,0x01,0xeb,0x18,0x29,0xce,0x23,0x61,0xcd,0xa2,0xc8,0xbb,0x63,0x33,0x85,0x39,0xd8,0xad,0x2f,0x66,0x77,0x58,0x55,0x31,0xe7,0xbf,0x1d,0x39,0x22,0x38,0x26,0x79,0xa1,0xae,0x84,0xff,0xeb,0x75,0x3f,0xc9,0x75,0x4e,0x50,0xc0,0x18,0x52,0xf9,0x55,0xe3,0xfd,0x60,0x9f,0xf6,0x4b,0xf0,0x5b,0xbe,0x70,0x75,0xcd,0xbe,0x00,},\"\\x91\\x17\\x27\\x03\\x6d\\xb3\\x09\\xd6\\xe2\\xe3\\x36\\x9e\\x4f\\x17\\xd9\\x8d\\x99\\xec\\x07\\x0c\\x33\\x28\\x3b\\xb1\\x24\\x4e\\xfd\\x62\\xe7\\x6b\\xd7\\x0a\\x69\\xb9\\x72\\x3b\\xd2\\xb5\\x20\\x47\\x2b\\x98\\xaa\\x06\\x59\\x24\\x36\\x6d\\xe7\\x80\\x90\\x0b\\xcd\\x8b\\x77\\xb5\\x0f\\x87\\xc3\\xc3\\x61\\x87\\x02\\x4b\\xbc\\x59\\xcc\\xf4\\x48\\x2c\\x7b\\x4a\\xad\\xb5\\x6e\\x2e\\x5e\\xcc\\x00\\x03\\xd9\\x89\\xd6\\xaf\\xc6\\x3e\\xc1\\x02\\x42\\xe5\\x74\\x82\\xfe\\x39\\x21\\x52\\x61\\xd5\\xfc\\x95\\xa0\\x18\\x5f\\x95\\xe9\\x54\\x0c\\x55\\xf7\\x4d\\x69\\x60\\x48\\xbc\\xa7\\xab\\x11\\x26\\x81\\xa5\\x55\\x8e\\xa9\\x3c\\x3b\\x1f\\x1c\\xd3\\x64\\x65\\x9e\\x94\\x33\\xce\\xee\\xbe\\x05\\x4e\\xe7\\x13\\xc4\\x77\\x60\\xd7\\xad\\x13\\x2a\\x7f\\x3f\\x8f\\xe3\\xd5\\x04\\x1b\\x81\\x1a\\x26\\xb6\\x5e\\xfb\\x1f\\x34\\x0e\\x18\\x1a\\x4e\\xc7\\x20\\xea\\x13\\x6b\\x3a\\xf3\\xd9\\xe5\\x46\\x1d\\xd2\\x43\\x70\\x33\\x6f\\x10\\xe6\\x35\\x4c\\x8c\\x17\\xac\\xf9\\x99\\x85\\x44\\xce\\xc0\\x87\\x3e\\xfa\\x68\\x7c\\xb1\\x32\\xae\\xcf\\x70\\xae\\xbb\\xc5\\x67\\xba\\x03\\xc5\\x36\\x49\\x9e\\xf9\\x6c\\xc8\\x41\\x2e\\x7a\\xaa\\xd5\\xbf\\x96\\x42\\x2b\\xe4\\x7c\\xb9\\x41\\x36\\x45\\xdf\\x2c\\x17\\x03\\x19\\x23\\x47\\xdc\\xbb\\x12\\x31\\x27\\x45\\x59\\x71\\xae\\x15\\x7e\\x9f\\xa2\\xdb\\xff\\x88\\x74\\x5a\\x96\\xc6\\x58\\xb8\\x65\\xe4\\x1f\\x55\\xae\\xbf\\x98\\x39\\x50\\x05\\xdd\\xcb\\xd5\\x98\\x3e\\x6a\\xe0\\x2c\\x4f\\xbb\\x5e\\x17\\x91\\x67\\x96\\x32\\x5f\\x76\\xed\\xf5\\xb6\\x4a\\xfa\\x4e\\xc5\\xa7\\x41\\x8a\\xfe\\xd2\\x3a\\x97\\xef\\xad\\xe6\\x8b\\x6a\\x5b\\x31\\x45\\xf0\\x8a\\x5d\\x3d\\xb9\\xc2\\x98\\xa5\\x12\\xfa\\xbd\\xac\\x68\\x56\\x2b\\x3f\\x55\\x37\\x7f\\xf4\\x4b\\x00\\xc1\\xc2\\xf3\\xef\\xd1\\x81\\x32\\xda\\x71\\xf9\\x71\\xa9\\x53\\xa9\\x31\\x8c\\x57\\x52\\x33\\x61\\xa1\\x60\\xf9\\xb7\\xe3\\xb5\\x1c\\x52\\x4e\\x95\\xdd\\x5e\\xf4\\x56\\x8e\\xf1\\x8a\\x80\\x07\\x75\\xe9\\xd2\\x6e\\x07\\x13\\x19\\x42\\xd2\\xbe\\x4e\\xf2\\x2c\\x0c\\xbc\\x13\\xdf\\x01\\xc6\\x8b\\x1b\\xcd\\x3b\\xce\\x9b\\xd5\\x1c\\x4c\\xed\\x65\\x2a\\xdc\\x40\\x07\\xbe\\x43\\xb3\\x7c\\x67\\xa5\\xc5\\x5e\\xd4\\x02\\x9e\\x8a\\xd1\\x5d\\xef\\x83\\x05\\xc9\\x68\\x62\\x1a\\xed\\x4c\\xd4\\xbf\\xe0\\x79\\xa6\\xf4\\x88\\x84\\xd8\\x56\\x80\\x39\\x2c\\xa9\\x2b\\xa6\\xe1\\x2f\\xea\\x6f\\x4a\\x05\\x6f\\x79\\xd6\\x7b\\x19\\xb0\\x5f\\x90\\xd6\\x84\\xbe\\x7d\\x45\\x72\\x5f\\x79\\x67\\xc6\\xa4\\x67\\xaf\\x43\\xb8\\x6a\\x6b\\x1b\\x9d\\x9e\\xed\\x3a\\x42\\x48\\x97\\x1c\\x76\\xa7\\xac\\x29\\xc2\\x92\\xdf\\xba\\x4d\\x75\\xc5\\xf7\\xba\\x70\\x9a\\x39\\x05\\x8e\\x96\\xad\\xf6\\xdb\\xd7\\x60\\xd3\\xce\\xf4\\x02\\x4b\\xf3\\xed\\xc4\\x41\\xef\\xbf\\x11\\x47\\xa2\\xc1\\x08\\xbd\\x6f\\x9e\\xb4\\x39\\xc1\\xc5\\xc4\\xd3\\xa6\\xea\\x4e\\xc3\\xd9\\x2c\\xef\\x38\\x13\\x61\\x88\\xbe\\xc9\\xe0\\xb6\\xc0\\x51\\x8d\\x8b\\x79\\xba\\x59\\xc5\\xdc\\xba\\x39\\x3a\\xed\\xfd\\xff\\xb0\\xb7\\x0d\\x77\\x9c\\x2b\\x97\\x65\\xce\\x44\\x52\\xe7\\xe3\\xb0\\x8c\\x44\\x02\\xb1\\xa6\\x08\\x32\\x08\\x40\\xfb\\xe9\\x6d\\x1e\\xb8\\x65\\x6e\\xb1\\xc2\\x0d\\x95\\x51\\xdd\\xf5\\x33\\xb9\\xf1\\x5e\\x4e\\xb5\\x78\\x37\\x56\\xc5\\x3d\\xdd\\x3b\\x14\\xd8\\x07\\xf8\\x38\\xac\\x96\\x80\\xf8\\x9f\\x1a\\xdf\\xb7\\x8d\\x68\\xcc\\xb0\\x67\\x31\\xa9\\x0b\\xea\\xc5\\xf0\\xd7\\x09\\xd5\\xb8\\x8c\\x75\\x43\\x7a\\x66\\x3c\\xb9\\x62\\xd3\\x7f\\x96\\xb8\\xe8\\x92\\x84\\x77\\xb5\\x61\\x12\\x28\\x01\\x5d\\x33\\x7f\\x04\\x9e\\x8b\\x62\\xe4\\xdf\\xf8\\xd0\\xbb\\x6c\\xda\\x24\\xa5\\xdf\\x90\\x83\\xe3\\x48\\xbe\\xf1\\x25\\x85\\xf5\\xf4\\xc4\\xd3\\xbb\\x3c\\x7e\\x78\\xd5\\x50\\x19\\x4a\\x45\\x25\\x1a\\x08\\x79\\xa1\\x62\\x4b\\xf9\\xdd\\x35\\xeb\\x65\\x5c\\x39\\x39\\xfe\\xa8\\x90\\x9f\\x6d\\xf3\\x95\\xbe\\xbd\\x02\\xb6\\x8a\\x17\\xa8\\x97\\xc9\\xaa\\xdd\\xd6\\xe2\\xe2\\x04\\x61\\xe3\\x03\\xf5\\x7c\\xde\\xb0\\x0a\\xe0\\xf2\\x3e\\x60\\xa9\\x4c\\x19\\xc7\\x71\\xd8\\xaa\\x60\\x53\\x3b\\x93\\xce\\xdc\\x1b\\x76\\xd2\\x29\\x0a\\x01\\xbf\\x43\\xb2\\x72\\x5f\\x12\\x5b\\xef\\xa5\\x75\\x15\\x4e\\x98\\x6c\\x9c\\x62\\x05\\xa1\\x59\\x6c\\xba\\xa2\\xd1\\x34\\x70\\xc2\\x34\\x22\\xf2\\xdf\\x7b\\xec\\xe4\\xe6\\xeb\\xd7\\x52\\xe9\\x38\\x9a\\xe6\\x08\\x57\\xb5\\x29\\x69\\xd2\\xdd\\xef\\xa9\\xc0\\x34\\xf1\\xbf\\x35\\xae\\x33\\x16\\x30\\x4e\\x94\\x9c\\x89\\x90\\x82\\x0e\\x26\\xe6\\xcf\\xfa\\xe4\\xb3\\x88\\xd1\\x50\\x5f\\x92\\x37\\x06\\x29\\x7f\\x8d\\xb5\\x56\\x53\\x79\\x19\\xeb\\xbe\\x30\\x86\\x02\\x3f\\x12\\xf4\\xde\\xd3\\xb1\\x1a\\xcf\\x2a\\x6d\\x97\\x3d\\xdd\\x8e\\xb2\\x7b\\x07\\xc5\\x80\\xbf\\x44\\x8c\\xaa\\x5a\\x2e\\xa1\\x16\\xc5\\xea\\xf3\\x6f\\x7a\\x6b\\x17\\xa8\\x5b\\x39\\x55\\xdc\\x8a\\x44\\xa6\\x20\\xd8\"},\n{{0x2d,0xdd,0x79,0xe7,0x60,0x64,0xc2,0xe6,0xb3,0x22,0xaf,0xb0,0xc5,0xc6,0x85,0xcd,0xbe,0xc6,0x28,0x21,0xcd,0xfc,0x0c,0xb1,0x4d,0xb7,0xd0,0x1b,0xa3,0xbf,0x21,0xa5,},{0xf5,0x5b,0x4a,0xb6,0x4a,0x25,0x82,0x21,0x2b,0x96,0xcc,0xac,0x06,0x40,0xe2,0x71,0x94,0x4a,0x34,0xa2,0x86,0xd0,0x35,0x83,0x30,0x45,0x81,0x0e,0x34,0x18,0x24,0xbb,},{0xa4,0xc3,0x96,0xe1,0x9d,0xd4,0x2e,0x03,0x91,0x84,0xcd,0x25,0x11,0x88,0xff,0xa2,0x45,0xf0,0x36,0x7c,0x69,0xc0,0x2d,0x12,0x47,0x4e,0x5c,0xa9,0xe5,0xc7,0x68,0xa7,0xee,0x3a,0x3d,0x47,0xeb,0x22,0xd1,0xac,0x9e,0x04,0xb7,0x04,0xa7,0x4f,0x41,0x69,0x47,0xf3,0xf4,0x9a,0x32,0x42,0x59,0x4e,0x7b,0x63,0x90,0xe8,0x2b,0x60,0xd5,0x05,},\"\\xa5\\x66\\x74\\xa1\\xe1\\xf0\\x97\\x95\\x25\\x1a\\xbe\\x54\\xab\\x43\\xc2\\x98\\x20\\x8f\\xef\\xc9\\xbb\\x91\\x76\\xfd\\xb2\\x3e\\x1e\\x9f\\x60\\xf0\\x32\\x64\\x79\\x15\\x56\\x7e\\xbd\\xcc\\x2b\\x86\\x9e\\xdb\\x70\\x55\\xf4\\xab\\xa6\\x7e\\xcf\\xe7\\xfa\\x19\\xed\\xa4\\x5c\\x06\\x04\\x7c\\x7a\\x51\\x84\\x8b\\xe9\\x97\\x32\\x51\\xf8\\x5f\\xf7\\x6f\\x1c\\x59\\xe3\\x65\\x43\\x82\\x85\\x8c\\x9b\\xe1\\x23\\xdb\\x8a\\x94\\x90\\xc6\\xc9\\xb3\\x09\\xb8\\x2d\\x1e\\x2c\\xa6\\xf4\\xa0\\x7d\\x00\\x12\\x02\\x83\\xc6\\xc2\\x95\\x64\\x49\\x95\\xa9\\x66\\x28\\x61\\x2b\\x8d\\x67\\x91\\x57\\x35\\x18\\xe2\\x55\\x6a\\x68\\x8a\\x09\\xf1\\x49\\xbc\\x84\\x6a\\x68\\xbd\\x0e\\xf7\\x92\\x79\\x03\\x57\\x10\\x03\\x1e\\xf0\\xa8\\xfe\\xd1\\xdd\\x0b\\xf0\\x26\\x12\\x5d\\xc6\\x64\\x8f\\x86\\xf6\\x43\\x09\\x94\\x2e\\x18\\xf2\\x3b\\x12\\xd1\\xdc\\x68\\xc6\\xf2\\x77\\x0c\\xa8\\xb5\\x48\\x5b\\x36\\x9b\\x0c\\x92\\x00\\x7a\\x94\\x61\\xc1\\x39\\xfc\\xbb\\x41\\x17\\x5f\\x31\\x6d\\x44\\x67\\x06\\x0a\\xb4\\x3d\\x12\\x22\\xf5\\x80\\x24\\x04\\xbf\\x63\\xc2\\xdf\\x7e\\x00\\x4b\\xdc\\x40\\x0c\\xa8\\x0f\\xe0\\xd2\\xcb\\x68\\xa2\\x10\\xfb\\xc3\\xfc\\x0b\\x90\\x32\\x09\\xd5\\x47\\x6e\\x7a\\x56\\xba\\xef\\xb8\\xfa\\xd7\\xf3\\x28\\xb7\\x2f\\x32\\x71\\x13\\xe1\\x39\\x41\\x4b\\xa6\\xf3\\x4e\\x99\\xc2\\xec\\xcd\\xe0\\x44\\xe7\\xa3\\xac\\x70\\xc5\\x80\\xcd\\x26\\xc7\\x45\\x01\\x92\\xca\\x4c\\x82\\x3c\\x7a\\xc5\\xea\\xe8\\x76\\xc0\\xd1\\xc8\\xc7\\x68\\xc1\\xcb\\x0b\\x7e\\xa4\\x1f\\xc9\\xb7\\xd2\\x94\\x37\\xbb\\xad\\xab\\x18\\xe0\\xf5\\xed\\x1d\\xef\\xe0\\xcf\\x6c\\x0e\\xba\\xa6\\xb6\\xd7\\x77\\xf4\\xda\\xd9\\xab\\xdd\\xbf\\xc0\\xfd\\x6a\\xb5\\xee\\xea\\x80\\x3c\\xfa\\x01\\xc0\\xbd\\x46\\xf6\\x5f\\xef\\xa4\\x69\\x01\\xab\\xbe\\x0d\\x89\\x10\\x4e\\x3b\\xc4\\xae\\xe1\\xf0\\x59\\x9c\\x69\\xb6\\x7b\\xa5\\x45\\xab\\x9b\\x54\\xf5\\xde\\xe3\\x40\\xac\\x69\\xd8\\x82\\x99\\xe8\\x68\\x22\\xac\\xdd\\xdd\\xce\\x60\\x11\\x22\\x01\\x2f\\x99\\x29\\x97\\x74\\xaa\\xf1\\x7c\\x96\\x4e\\xde\\xcb\\x95\\xe1\\x27\\x7d\\x46\\x2d\\xe6\\x4e\\x91\\x15\\xa6\\x1a\\xd9\\x8a\\xa3\\xd2\\x2e\\x3b\\xa6\\xf8\\xf1\\xcd\\x69\\xb6\\xb5\\x2b\\x83\\x38\\x28\\x23\\xf3\\x0e\\x96\\x6b\\xda\\xd1\\xff\\x5f\\xc1\\x98\\xae\\x32\\xe9\\xb6\\x80\\x55\\xd4\\x39\\x2b\\xc7\\xc3\\xdf\\x10\\x15\\xf1\\x28\\xae\\xe1\\xe4\\xfa\\x3d\\x49\\x99\\xe3\\x29\\xf2\\x2f\\x0f\\xf6\\xaa\\x77\\x8b\\xae\\x02\\x94\\xa1\\xdf\\x74\\x36\\xcb\\x16\\xa2\\xbf\\xcd\\x74\\xb4\\x63\\xab\\xe7\\xcb\\x4b\\xac\\x53\\x62\\xc8\\x9c\\x9d\\x1a\\x37\\x8a\\x2c\\xb8\\x85\\xcc\\x3b\\x26\\xab\\x4b\\xe8\\x81\\xef\\x1a\\xfc\\x14\\x43\\x0e\\x10\\xd2\\x65\\x39\\xca\\x35\\x8c\\x36\\x76\\x28\\x6a\\xd8\\x1c\\xe1\\xc9\\xe7\\x85\\x92\\xaf\\x66\\xf1\\x82\\xbb\\x1f\\x7f\\x86\\x2f\\xe7\\x55\\xbf\\xfb\\x5b\\xe5\\xc5\\xf2\\xb7\\x31\\xc1\\x32\\xe2\\x38\\x8a\\x76\\xa1\\xa7\\xb1\\xcd\\xdf\\x05\\xae\\xd2\\xac\\x9e\\xc4\\x08\\x47\\x52\\x71\\x94\\x2c\\xca\\xdd\\x32\\xe4\\x9d\\x87\\x91\\xed\\xf8\\xb8\\xde\\x11\\x75\\x51\\xce\\x26\\x4a\\x60\\xb8\\x41\\x05\\xea\\xe8\\x7e\\x66\\xf6\\xa4\\x01\\xd1\\x32\\x2b\\xb2\\x1a\\x98\\xe8\\xac\\xd2\\x77\\x49\\x32\\x54\\xe5\\x04\\x00\\x4f\\x72\\xc7\\x6e\\x79\\x03\\xd2\\xfa\\x38\\xfa\\xb7\\x17\\xe9\\x4c\\xe6\\x27\\x94\\x7c\\x4e\\xa3\\x26\\xbd\\x25\\x75\\xc3\\x73\\x10\\xf3\\xb4\\xd8\\x43\\xb9\\x0f\\xa7\\x7d\\x32\\xd9\\x95\\x21\\x94\\x15\\x0b\\x62\\xf8\\x50\\x18\\x7a\\x4f\\xdf\\x38\\x46\\x6d\\xfa\\x06\\x56\\xc0\\xa2\\xe0\\xb3\\xf0\\x74\\x92\\xac\\x8e\\x37\\xe5\\xd0\\xdf\\x95\\xcc\\x89\\xdf\\x30\\x85\\xa2\\x69\\x29\\x1d\\xc2\\x51\\x22\\x10\\xd3\\xfe\\x44\\x24\\x8d\\x7a\\xb9\\x96\\xbe\\x09\\x9a\\xf6\\x4c\\x22\\x75\\x66\\x66\\xf8\\xde\\xa5\\x6c\\x00\\xb9\\x06\\x77\\xd1\\x18\\x25\\x00\\xdd\\x27\\x4f\\xd0\\x76\\x92\\x53\\x82\\x6d\\x67\\x7a\\xb1\\x6a\\x55\\x7b\\x08\\xb3\\xc5\\x22\\x65\\x49\\x8d\\x85\\xc4\\xcb\\x2b\\x60\\x0e\\xe0\\x48\\x1b\\x7c\\x1c\\x47\\x6a\\x9d\\xaa\\x8b\\x88\\xc7\\x1f\\xc2\\x1b\\x6f\\x89\\xbf\\xdf\\xec\\xe5\\x8d\\xa9\\xe8\\xd5\\x65\\x65\\x2e\\x43\\x95\\xbd\\xf4\\xc8\\x11\\xb4\\xf4\\xf2\\x2d\\x2b\\x96\\x13\\x26\\x1f\\x88\\xc6\\x04\\xc2\\x97\\x4d\\x3e\\x97\\x7d\\x14\\x0d\\x04\\x6e\\x1b\\x66\\x25\\xb7\\x07\\x16\\x40\\xd3\\x52\\xcb\\x7e\\x7e\\x65\\xd4\\x6c\\x61\\x34\\x47\\xbe\\x8d\\xc5\\xa2\\x00\\xaa\\x9a\\xca\\xb4\\x6a\\xfc\\xcf\\xeb\\xb6\\xb1\\xc3\\x19\\x73\\x24\\x6c\\x34\\xfa\\xaf\\x8d\\x26\\xea\\x5e\\x83\\xbe\\x15\\x71\\x8f\\x8f\\xdb\\x0c\\xfc\\x44\\x4e\\x2e\\xb6\\x0f\\x36\\x59\\xb0\\x20\\x16\\x1c\\x22\\x8e\\x6b\\x92\\x40\\xb7\\xac\\x39\\x4c\\xab\\x81\\x2d\\xe1\\x05\\x15\\x76\\x6f\\x22\\x47\\x3e\\xcc\\xa5\\x35\\x59\\x4c\\xe5\\x28\\xa5\\x7c\\xf5\\xda\\xb2\\xeb\\x32\\xab\\x84\"},\n{{0x3a,0xbb,0xdb,0x0b,0xa1,0x1a,0xa1,0x06,0x3b,0xd2,0x6b,0x02,0xc1,0x16,0x03,0x78,0x62,0x28,0x5b,0xab,0xd2,0x15,0xd2,0x40,0xbc,0x9c,0x09,0x26,0xf4,0xec,0xea,0x81,},{0xb8,0xfc,0x59,0x43,0x8f,0x8c,0xe9,0xe3,0x78,0x5a,0x47,0x3b,0x22,0xc8,0x89,0x2c,0x51,0xea,0xc2,0x56,0x8c,0x68,0x1d,0xcc,0x77,0xb6,0xf0,0xe0,0x79,0x9c,0x4e,0x33,},{0x98,0x1f,0x20,0x05,0x5a,0x45,0x75,0x25,0xae,0xe5,0x61,0x62,0x64,0xe6,0xaf,0x42,0xe8,0xb3,0x87,0xcb,0x08,0xf8,0xb4,0xa7,0x3f,0x9b,0xe0,0xb3,0x66,0xf1,0x03,0x5b,0xb3,0x0a,0x1c,0x87,0x48,0x94,0xcb,0xec,0xe0,0xa8,0x46,0xd8,0x49,0xb7,0xec,0xc5,0x56,0x58,0x5d,0x0d,0x3d,0x39,0x56,0x45,0x80,0x7f,0xf2,0xa3,0xca,0x5a,0x59,0x0c,},\"\\xdc\\xcd\\x55\\xf9\\x22\\xcd\\x27\\x4f\\x69\\x75\\x00\\x0a\\xdc\\x8d\\x98\\x63\\x0c\\x6d\\x75\\x2c\\x12\\x02\\xa9\\xdd\\x12\\x10\\x48\\xb9\\x39\\x45\\xaf\\x2b\\x11\\x10\\x96\\x77\\x88\\xf9\\x9e\\xc0\\x28\\xe3\\xd3\\xb4\\xcf\\x82\\xfb\\x07\\x17\\x3e\\xa4\\x40\\x1e\\x3b\\xb4\\xb0\\x7b\\x7b\\x0b\\x24\\xb0\\x59\\xa7\\x66\\x33\\x95\\x32\\xd9\\xdf\\x3e\\x31\\xb7\\x2c\\x95\\x8c\\x11\\x9d\\x8d\\xfa\\x15\\xa5\\x07\\xaf\\x6c\\x5f\\x7e\\x78\\xfe\\x27\\x0f\\xa8\\x1b\\x9d\\xf0\\xf2\\xe4\\xaf\\x24\\xbd\\x99\\xfb\\xeb\\x14\\xe0\\x03\\x30\\x84\\xd7\\xfb\\xf8\\x4d\\xde\\xdf\\xd5\\xce\\x56\\x75\\x1d\\x15\\x90\\x84\\x75\\xdf\\x8a\\xf0\\x13\\xd0\\x91\\x17\\x3c\\x13\\x86\\xb9\\x13\\x94\\x26\\xcc\\x60\\x81\\xea\\x16\\x5b\\x8c\\xe4\\x81\\x94\\xb8\\xe1\\x8a\\x9b\\x91\\xa4\\x63\\x13\\x44\\xfe\\x29\\xc8\\xe7\\x28\\x18\\xb7\\x1f\\xa1\\x5c\\x92\\x92\\xd1\\x3f\\xdf\\x5f\\x9d\\x18\\xe2\\x9b\\xd0\\x29\\x1b\\x81\\x38\\xde\\x73\\x8f\\xd3\\xa3\\x6c\\x35\\x23\\x90\\x22\\x36\\x8b\\x45\\x6f\\x1f\\xac\\xba\\x90\\xa0\\xd8\\x0d\\x6e\\x31\\x1c\\x5f\\x6c\\x6f\\x04\\x67\\x7e\\x92\\x37\\x3a\\x5f\\xc4\\x73\\x88\\x94\\xdb\\xed\\x20\\x6c\\x30\\xda\\x34\\x1b\\x3b\\x19\\x6c\\x94\\x78\\x58\\xa6\\xd2\\xad\\xc6\\x8a\\xac\\x3f\\x20\\xcf\\xdb\\xe0\\x49\\x79\\x61\\xda\\xe3\\x34\\x70\\x26\\x6d\\x17\\xec\\x71\\x9a\\x59\\xf0\\x58\\x6f\\x82\\xf9\\x9f\\x1c\\x90\\xed\\x70\\x05\\xa2\\x07\\x21\\x9a\\x55\\xed\\xc7\\x60\\xf4\\xeb\\x8f\\x24\\x02\\x64\\x7f\\x6f\\x77\\x97\\x1f\\xf7\\xb6\\x34\\x35\\x7b\\x6b\\x29\\xbb\\xd7\\xea\\x05\\xe2\\xe2\\x58\\x54\\xe9\\x9c\\x62\\x0f\\x4b\\x8b\\x64\\x73\\x90\\x22\\xff\\x0b\\x33\\x8a\\xfe\\xf3\\x5f\\xb6\\xf4\\x1a\\x53\\x62\\x9a\\x51\\x8e\\xb9\\x3d\\x66\\x02\\x0f\\xb3\\x53\\xae\\xf8\\xdd\\x07\\x1e\\x09\\xc9\\x16\\xd4\\x70\\x4a\\xcd\\xf7\\x76\\xb3\\x8c\\xa9\\xc5\\x9f\\x21\\x1f\\xf8\\x8c\\x43\\x0a\\x57\\xe8\\xf1\\x71\\x39\\x23\\xb3\\xf3\\x0c\\xa8\\x69\\x70\\xa1\\x4a\\x52\\xdb\\x4b\\xcb\\xe6\\x0d\\xf4\\xbc\\x3c\\xfd\\xf2\\x54\\xbf\\x10\\xf8\\xaf\\xae\\x87\\xbd\\x61\\xb3\\x58\\xf4\\x3c\\xc2\\x96\\xc0\\x41\\x29\\x64\\xc4\\xe0\\x0f\\x71\\x21\\x33\\x97\\x46\\x85\\x17\\xcb\\x01\\x37\\x9c\\xb7\\x29\\xc7\\xb9\\xe3\\x5b\\xd5\\x0b\\xdd\\x98\\xc3\\xd3\\xb7\\x62\\x97\\xa1\\x38\\xb5\\x7c\\xeb\\x6c\\x77\\x74\\x2d\\xf0\\x88\\x1d\\x07\\x66\\x8c\\x08\\xa6\\x30\\xa4\\x4e\\x6e\\xd7\\xeb\\x20\\x6d\\x6a\\x56\\x44\\x07\\x10\\x43\\x8a\\x51\\x11\\x42\\x4b\\x61\\xaa\\xee\\xce\\x40\\xe9\\x00\\xf5\\xe3\\xc4\\x57\\xe9\\xd6\\xe3\\x1a\\x79\\xec\\x5b\\x4b\\x42\\xb6\\x8e\\x66\\xe1\\x99\\x30\\x92\\x87\\xca\\xd6\\x53\\x36\\xfc\\x7f\\xe4\\x3f\\x43\\xcd\\x8c\\x77\\x3d\\x3c\\x65\\x80\\xd7\\x21\\x7e\\x2c\\xab\\xec\\xd3\\xea\\xbc\\x48\\x5c\\x4a\\xcf\\x47\\x71\\x8c\\x39\\xb0\\x2c\\x78\\x58\\xff\\x34\\x7c\\xec\\x75\\x35\\xed\\xdc\\xd4\\xfc\\x81\\x5d\\xf8\\x14\\x56\\x9a\\x88\\xae\\x70\\xf2\\x73\\x3a\\x65\\x39\\xf2\\x08\\xc7\\x9c\\xf4\\xe7\\xc4\\xf9\\xea\\x24\\x1a\\x92\\xe9\\x51\\x51\\x71\\x36\\x14\\x18\\xa4\\xc2\\xe5\\x3c\\x07\\x6a\\xaa\\xbc\\x47\\xe4\\xc9\\x71\\xbd\\x04\\xb1\\x00\\xc2\\x62\\x82\\x30\\x88\\x57\\xe0\\x6e\\x7e\\x5f\\xbc\\x43\\x42\\x56\\x4f\\xb3\\xb1\\xea\\x4a\\x17\\xa9\\x25\\xe9\\x1e\\xe6\\x91\\x22\\x32\\x1d\\x39\\x2b\\x24\\x69\\x65\\xb8\\x6b\\x54\\xfd\\x5c\\x83\\xfa\\x5c\\x47\\x41\\x63\\xf9\\x8a\\x9f\\x44\\x7d\\x88\\xcb\\x59\\xfe\\x2c\\xdf\\x9f\\x54\\x12\\xfc\\xbe\\xb3\\xef\\xfa\\xc8\\x97\\x67\\x91\\xc6\\xa4\\x7b\\x66\\x9a\\x2f\\xc5\\x5a\\xbe\\x8e\\x09\\xe7\\x41\\x57\\xef\\xcd\\x1c\\xa7\\x8f\\xc1\\x0f\\xa6\\x87\\x01\\x0c\\x68\\x26\\xc6\\xe8\\x96\\xef\\x5c\\xd7\\x1d\\x0f\\xe4\\xd1\\xbd\\x07\\xc1\\x0d\\xac\\x3b\\x03\\x48\\x5e\\xdd\\x25\\x69\\xa7\\xee\\xcf\\xbc\\x4e\\x5d\\x2e\\xe2\\x37\\x98\\x59\\xe2\\x65\\x26\\x7b\\xed\\xaa\\xd6\\x9d\\x93\\xb7\\xc1\\xbd\\x18\\xf2\\x7e\\xa4\\x24\\x83\\xc7\\xe4\\x10\\x0e\\xe0\\x5b\\x28\\x30\\x39\\xbf\\xb9\\x89\\x1d\\x37\\xc4\\x67\\xed\\x83\\xb8\\x8c\\x79\\x4e\\xab\\x6b\\xab\\x9d\\xc6\\x77\\x89\\x26\\x50\\xe2\\xd8\\x96\\xfb\\xfe\\xc1\\xb1\\xcd\\xb7\\x21\\xbe\\x30\\xb0\\xb8\\xe5\\x35\\x87\\x09\\xe1\\x65\\xcb\\xe3\\xa1\\x82\\xc9\\x3b\\xc0\\xa0\\xce\\xa2\\xf8\\xcf\\x3a\\x62\\x57\\xad\\xf7\\x64\\x53\\x40\\x41\\x20\\x22\\x41\\xa5\\x27\\x9b\\x66\\x8e\\x40\\x12\\x5f\\xc0\\x94\\x58\\x5a\\x3c\\x58\\x8a\\xba\\x82\\xb6\\x7c\\xd9\\x1d\\x48\\x3e\\x54\\x30\\x04\\x28\\x42\\x68\\x63\\xa4\\x23\\x64\\x04\\x9d\\x7c\\x45\\xa1\\x69\\x38\\x5a\\xa8\\x9b\\xf3\\x77\\xf0\\xd3\\x2b\\x07\\x80\\x9b\\x58\\x71\\x39\\x5e\\xc0\\x53\\xa2\\x57\\xd9\\x3e\\x48\\xbb\\xf4\\x07\\xeb\\x60\\x91\\x40\\x1e\\x25\\x65\\x46\\xe3\\x1f\\x9f\\xcd\\x24\\xd2\\xc5\\xb3\\x33\\xcf\\x65\\x78\\x50\\x02\\xf0\\x8d\\x54\\x8d\\xb2\\x6a\\xd1\\xf3\"},\n{{0x8a,0x44,0xd6,0xaf,0xc6,0xc8,0xee,0xe1,0xbc,0x7d,0x5f,0x69,0xe4,0x95,0xb0,0xb1,0x8c,0xa7,0xae,0xe0,0x07,0xde,0xa7,0xcf,0x0d,0x17,0x14,0xd7,0x85,0xa9,0xf4,0xed,},{0xd4,0xf3,0x66,0xb3,0x37,0x7f,0xa3,0x9b,0x36,0xf9,0xae,0x14,0xda,0x40,0x4e,0x22,0x40,0x49,0x0d,0xbd,0x8d,0x79,0x6b,0x1a,0xb8,0x72,0xdf,0xcb,0x83,0xa5,0x95,0x40,},{0xe0,0x72,0x7e,0xb7,0x2e,0x84,0xd2,0xb8,0x2c,0xdb,0xd0,0xa6,0xbd,0x2f,0x49,0x49,0x63,0x16,0xaa,0xe8,0x35,0x1e,0x49,0x02,0xac,0xd5,0xe3,0xcc,0x57,0x34,0x6e,0x7e,0xba,0xfd,0xd9,0x2a,0x90,0xde,0xd7,0x6f,0xd0,0xc6,0x69,0x0d,0x68,0xbb,0x2f,0xed,0xd6,0x13,0xe4,0x4f,0xa2,0x22,0xbe,0x01,0x26,0xda,0x52,0x0a,0xcc,0x2c,0x41,0x05,},\"\\xde\\x80\\x32\\x69\\x66\\x53\\x6c\\xe9\\x49\\x96\\xaf\\x2d\\xe7\\xa0\\x76\\x05\\xcc\\x4f\\xcb\\x9e\\x75\\xee\\x0a\\x67\\xa1\\xe2\\x09\\x32\\x11\\x1d\\xe9\\xb3\\x56\\xd5\\xbe\\xea\\xe8\\x6c\\xc5\\xf5\\x64\\xc1\\x0d\\x66\\xe3\\xde\\x95\\xa5\\xb9\\x9e\\x84\\x49\\x28\\xea\\x8e\\x77\\x58\\x6c\\xf3\\xc1\\x0a\\xd3\\x63\\x3d\\xde\\xeb\\x1d\\x9d\\xcf\\x3f\\x94\\xb7\\x0b\\xf1\\xef\\x63\\xd2\\x38\\xdf\\x20\\x4d\\x70\\x5c\\x0b\\x17\\x4f\\x83\\x28\\x25\\x45\\xf5\\xe4\\x07\\x5f\\x8d\\x69\\xa4\\x81\\x79\\xc2\\x9e\\xab\\xf5\\xc1\\x74\\x2e\\xf3\\x9e\\x1a\\xd9\\x63\\xbe\\xbb\\xb6\\x6f\\xce\\x94\\x91\\xa9\\x84\\x65\\x12\\x15\\xc2\\xe7\\x50\\xe6\\xee\\x83\\x65\\x76\\x64\\x40\\xa8\\x44\\x19\\xe5\\x2d\\xcf\\x67\\x1f\\x1c\\x52\\xea\\xa2\\xb9\\x90\\x2b\\xcc\\xa4\\xb3\\x7c\\xff\\xdb\\xac\\x8e\\x7e\\x7e\\x6b\\x0a\\x5c\\x87\\x48\\xef\\xbf\\x45\\x2d\\xf6\\x16\\x3f\\x4c\\xa0\\x7b\\x61\\xf9\\xa0\\x5e\\xc2\\x0a\\x2b\\xd6\\x33\\x38\\x9e\\x67\\x0b\\xb5\\x45\\x4a\\xcd\\x6f\\x3a\\x06\\x33\\x5b\\x5d\\xa9\\xec\\x32\\x62\\x64\\xe9\\x62\\xc7\\xd9\\xd0\\x6c\\xe7\\xe9\\xff\\x04\\xa0\\xa5\\xbb\\xdf\\xaa\\x4c\\x41\\x08\\x66\\xa5\\x72\\x01\\x16\\x51\\x43\\x9f\\x2d\\xbc\\xe5\\xde\\xe6\\x67\\x92\\x4a\\xc4\\x93\\x4d\\x20\\x54\\x96\\xbd\\x1d\\x4d\\xf0\\x8b\\xd0\\xcb\\x3f\\xd2\\xde\\x73\\xa2\\xef\\x34\\x2f\\xf0\\x09\\x1e\\x10\\xe1\\x5b\\x3b\\x76\\x0a\\x57\\x5d\\xf9\\x3c\\xf1\\xc9\\x7c\\x01\\xc5\\xab\\x11\\xc0\\x94\\xbf\\x34\\x87\\x82\\x06\\x71\\x8f\\x6b\\x28\\x5a\\xa5\\xcc\\x51\\x27\\xbd\\x7f\\x98\\x8b\\x84\\xa9\\x04\\x95\\x30\\x6f\\xd9\\xe9\\x9d\\x89\\x55\\xe6\\x68\\xd1\\xa3\\xff\\x10\\xf6\\x5b\\x7c\\x47\\x9f\\xac\\x24\\x11\\x9a\\x3c\\x10\\x12\\x2d\\x4d\\x18\\xa8\\x05\\xb2\\x47\\xdf\\x16\\x8c\\x0a\\x51\\x00\\x16\\x9b\\x55\\x72\\xd1\\x70\\x12\\xd7\\x51\\xa4\\x2e\\x83\\x37\\x61\\x15\\xe1\\x15\\x61\\xc1\\x60\\xc1\\x5e\\xfa\\xd7\\x6d\\x21\\xf7\\xab\\xb4\\x30\\x36\\x64\\x75\\x23\\x86\\x31\\xf8\\x4c\\x88\\xf8\\x38\\xb0\\xac\\x40\\x4c\\x91\\x3d\\x2f\\xa1\\x24\\x50\\x23\\x84\\x85\\xc3\\x02\\xfc\\x20\\x1f\\x44\\x15\\x1c\\x19\\xbc\\xbd\\xc1\\x19\\x0c\\x12\\xd1\\x54\\x08\\x31\\xfb\\x19\\x58\\x1c\\xb9\\x31\\x72\\xb0\\xd2\\xff\\x5c\\x65\\xf3\\x1c\\xaf\\xf2\\x0f\\x81\\x38\\x81\\xf8\\x4e\\x5e\\xf9\\xd5\\xc1\\x65\\xe0\\x96\\xd2\\x54\\xca\\xdf\\x89\\x52\\x49\\xaa\\xb8\\xd4\\x49\\x6c\\x94\\x0a\\x40\\xf9\\x07\\xbd\\x40\\x93\\x5a\\x94\\xf5\\xe5\\x5b\\x6d\\xd0\\x51\\x15\\x41\\x00\\xfe\\x33\\x17\\x70\\xef\\xf2\\xba\\xd6\\x54\\x56\\x19\\xb8\\xa3\\x3e\\xf6\\x46\\x2a\\x50\\xc0\\xb2\\xc4\\xed\\x2f\\xba\\x4e\\x4e\\x38\\x3e\\xbf\\x29\\x32\\xe6\\x19\\x27\\x66\\xa4\\xaa\\xd1\\xd6\\xe2\\xb6\\x92\\xd9\\xf2\\xbd\\xc2\\x33\\x93\\xe8\\xaa\\xcf\\xba\\x32\\x3b\\x53\\x4f\\x84\\xed\\xf2\\xdc\\xed\\x7c\\x94\\xd5\\x16\\x87\\xda\\xa2\\x71\\x98\\xa9\\x14\\x4b\\x31\\x2b\\x71\\x6f\\xe1\\x70\\x14\\xa7\\xbe\\xd0\\xc1\\x4a\\x24\\x38\\x73\\x3d\\x55\\x5c\\x65\\x64\\xc8\\xc1\\xa3\\xd9\\x97\\xeb\\xae\\x7b\\x3d\\xe8\\x87\\x7a\\xf5\\x3c\\x1d\\x1a\\x50\\x29\\x15\\x8a\\x80\\xaa\\x0c\\x87\\x48\\x9f\\xef\\x27\\x0c\\xdf\\xfe\\x10\\xd3\\x4b\\x15\\xc1\\xa9\\x69\\x3a\\xe0\\x39\\x02\\x43\\xe3\\x14\\xcf\\xac\\x06\\xef\\x6e\\xef\\xeb\\xcc\\xf4\\x3d\\x42\\xea\\xc2\\x4c\\xe9\\x87\\x94\\x29\\xd2\\xfc\\x72\\x53\\xb3\\xed\\x17\\x58\\x25\\xbc\\x4d\\xa0\\x76\\x2b\\x49\\x33\\xa9\\x8a\\xfd\\xb9\\x4b\\x06\\xf4\\xfc\\xd2\\xad\\x36\\x11\\xaa\\x99\\x9d\\x7c\\x1c\\x8d\\x85\\x2d\\x01\\xdd\\x9e\\x52\\x64\\x84\\x55\\xa0\\x4e\\xb2\\x33\\x0a\\x76\\xfd\\x94\\x2c\\x53\\x1e\\x51\\x4b\\x5e\\xc0\\x72\\x8a\\x89\\xd3\\x4c\\xa5\\x90\\xea\\x99\\xc8\\x8f\\xaa\\x20\\xdf\\xb7\\xbb\\xf6\\x56\\x54\\xaa\\x6c\\x21\\x2b\\xeb\\x8a\\xd6\\xbf\\x7c\\x77\\x73\\x91\\xcd\\x49\\xc3\\x9c\\xf8\\xab\\x51\\xb9\\x5b\\x41\\x9e\\x3d\\xfc\\x8d\\x94\\xa9\\x3a\\x1e\\xf0\\x22\\x3c\\x6d\\xe9\\x0b\\xf9\\x62\\x18\\xd8\\x04\\x5b\\xd4\\x95\\x2a\\x0d\\x83\\x72\\xa5\\x57\\x8c\\x6a\\xaf\\xa7\\x4b\\xa6\\x62\\xe3\\x18\\x8e\\x6a\\x6e\\x56\\x7e\\x4d\\x2f\\xe8\\x22\\x7d\\x07\\x43\\x98\\x2a\\x41\\xeb\\xfa\\x0d\\x31\\x0f\\xe7\\x9f\\xed\\x27\\x04\\x17\\x90\\xef\\xd5\\xaf\\xac\\x22\\x43\\xe1\\xd1\\x50\\xb1\\x45\\x01\\x5d\\x9d\\xea\\xb0\\xed\\xed\\x63\\x94\\xac\\x36\\xfc\\x5f\\xb2\\x01\\xf5\\x20\\x4f\\xbd\\x42\\x2a\\x36\\x04\\x23\\x30\\x15\\xbb\\x0a\\x48\\xa9\\x20\\xe2\\xe5\\xe0\\xd4\\xde\\xed\\x67\\x20\\x25\\xf2\\x3c\\xfb\\xa9\\x38\\x89\\x59\\x7e\\x50\\x4c\\x88\\x87\\xad\\xd4\\x6c\\xfe\\xf4\\x02\\x4a\\xfb\\x8a\\x26\\xee\\xb7\\xdc\\xdd\\xb2\\x39\\x7b\\x44\\xa1\\x79\\x63\\x67\\x34\\x00\\x42\\x13\\x70\\x28\\xc3\\x30\\x76\\x26\\x81\\x6c\\x29\\x31\\xe6\\x1e\\xbb\\x6b\\x69\\xed\\xcb\\xcb\\x61\\x2c\\x9b\\x18\\x1a\\x28\\x53\\x01\\xce\\x46\\xf8\\x2f\"},\n{{0x8a,0x97,0x2d,0xd0,0xf1,0x19,0x0c,0x2b,0x9d,0x54,0x8f,0x4b,0xa5,0x82,0x64,0xbb,0x04,0x82,0x67,0x75,0x50,0x2a,0x8d,0x5c,0x2b,0x20,0x9e,0xe8,0x8d,0xce,0xa5,0xfb,},{0x6d,0x80,0x37,0x5f,0x3c,0xf1,0xaa,0xb2,0x83,0x55,0x1d,0xf4,0x45,0xd1,0x7e,0x7d,0x3b,0xaf,0x9b,0xcb,0xec,0xbb,0xb2,0x67,0x05,0x2e,0x02,0xfd,0xb6,0x91,0x44,0xd3,},{0xbd,0x45,0xb3,0xc0,0x45,0x85,0x0e,0xbe,0xf7,0xb8,0x0d,0xd1,0xde,0xab,0x48,0x03,0x7b,0x13,0x46,0xc7,0x1d,0xea,0xf1,0xe5,0x8f,0x2a,0x7b,0x16,0x26,0x74,0xf9,0x4d,0x1e,0xf3,0xd4,0x23,0x90,0x37,0x33,0x0b,0xd6,0x33,0x5f,0xe4,0xf0,0x14,0x92,0x50,0x90,0x1f,0x00,0xa8,0xe4,0x6b,0xe5,0xfa,0x0a,0xae,0xc6,0x9d,0xe0,0x6d,0x73,0x04,},\"\\x30\\xb2\\x89\\x48\\x93\\x9a\\xa2\\x63\\x43\\x7e\\x45\\xc5\\xc0\\x25\\x4f\\xb2\\x0e\\x61\\x7e\\xd0\\xf3\\xfa\\x7d\\xac\\xe5\\xa0\\xa8\\xe0\\xfe\\x3c\\x1f\\xc4\\xad\\xb2\\x80\\x9b\\x61\\xc5\\xe8\\xd9\\x2c\\xd2\\xf3\\xde\\x93\\xb1\\x73\\xbe\\x70\\x7b\\xad\\xa9\\x42\\x40\\xc6\\x26\\x2c\\x16\\x0e\\x8c\\x78\\x21\\x65\\xbe\\xef\\x99\\xd0\\xbe\\x8e\\xcd\\xad\\x63\\x16\\xdc\\xd7\\x34\\xbb\\xb9\\x0a\\x66\\xcb\\xd5\\xb1\\xcb\\x4f\\xd8\\xf2\\x22\\x6c\\xea\\x94\\x8e\\x4d\\xf7\\x6b\\xbe\\x25\\x1d\\x47\\x8f\\x5c\\x3f\\xe0\\xd6\\xde\\x4b\\xe5\\x4f\\x67\\xf5\\x02\\xb2\\x80\\x4f\\x62\\x8b\\x79\\xa5\\x50\\xfb\\x1a\\xc4\\x83\\xad\\x2b\\xa1\\x66\\x37\\xc4\\xbc\\x9d\\xa6\\x7f\\xb4\\xf9\\x86\\x59\\xc4\\xc4\\x39\\x4d\\x16\\xb6\\xd1\\x4b\\x3e\\x0b\\x0c\\x1e\\x62\\x5d\\x71\\x0d\\xcc\\x1c\\x11\\xdf\\x5d\\x34\\x14\\x7b\\x1e\\xc5\\xa4\\x17\\xb9\\xe2\\x1f\\x90\\x8c\\xfc\\x52\\x3d\\x43\\xe3\\xf1\\x81\\xc7\\x20\\x9c\\xc5\\x6b\\xdb\\x5a\\x21\\x62\\x86\\x95\\xed\\x32\\x0f\\x8d\\x4c\\x07\\xfd\\x6d\\x84\\xaa\\x03\\x42\\x6f\\x21\\x64\\x4a\\xae\\xfe\\xee\\xc3\\x11\\xc7\\x4e\\x94\\x99\\x93\\x60\\x47\\x35\\x0a\\x9b\\xf5\\xb7\\x03\\x96\\x2e\\x77\\xce\\x55\\x13\\x36\\x83\\x5f\\xc3\\x2c\\xcb\\xd2\\xc9\\x0a\\xe5\\x2e\\x24\\xd4\\x7d\\x8d\\xcb\\x98\\x7a\\xbd\\x12\\x1d\\x3f\\x74\\x6b\\x5d\\xe2\\x30\\xf2\\x64\\x69\\x60\\x3f\\xb0\\xc4\\xa8\\xf6\\xcd\\x79\\x73\\xd7\\xda\\x88\\x2e\\xd1\\xd6\\xe4\\xd9\\xc5\\xa4\\x6e\\xc2\\xc2\\x19\\x40\\xad\\x33\\x89\\xa1\\x86\\x01\\x4e\\xe9\\x72\\x78\\xe5\\x35\\x09\\x88\\xb1\\x5e\\xcd\\x9e\\xa7\\x45\\x6b\\x3c\\xb5\\x5e\\x4d\\x30\\x93\\xf1\\x3a\\x87\\x5b\\x50\\xd6\\x51\\x63\\x78\\xec\\xaf\\x58\\xd7\\x52\\xc6\\x37\\x4e\\xd1\\x56\\x38\\x40\\x93\\x11\\xfc\\xd3\\x79\\xd1\\x22\\xc8\\xd8\\xc5\\x9b\\x86\\xf4\\xe8\\xdc\\x46\\xad\\xb7\\x30\\xa9\\x33\\x84\\x6e\\x0b\\xd2\\x48\\xd3\\x60\\x82\\x52\\xd9\\x70\\xb5\\x04\\xc8\\x13\\xc6\\xde\\xa9\\xfc\\x88\\xa3\\xde\\x64\\x19\\x56\\xdc\\xa2\\x91\\x20\\x4d\\x39\\x0b\\x6b\\x39\\x98\\x1f\\x8c\\x0a\\x6b\\xcf\\xc3\\x1c\\xa0\\x74\\x44\\x20\\x66\\x2a\\x9b\\x35\\xeb\\x3f\\xc2\\x11\\xf8\\x10\\xa3\\xe8\\x06\\x25\\x00\\xb1\\xe4\\x9b\\xdf\\x85\\x76\\x65\\xff\\x32\\xa9\\xba\\x76\\x19\\x4b\\xbb\\x77\\xfb\\x9c\\x15\\x41\\x29\\x64\\x24\\x4b\\x98\\x65\\xf7\\x3d\\xed\\x9f\\x25\\xb4\\x9b\\x42\\x5a\\xa2\\x53\\xd8\\x07\\xd9\\x81\\x82\\x92\\x76\\x3a\\x51\\x3e\\xc8\\x07\\x47\\x34\\x4f\\xba\\x0a\\xcf\\xe5\\x93\\xcc\\x26\\xb1\\x33\\x0b\\xb9\\xad\\xe6\\x6c\\x4e\\x88\\xcf\\x1b\\xae\\xd6\\xd6\\xe7\\xb7\\x50\\xe6\\xc7\\x23\\x9d\\x7b\\xcb\\xfa\\x3f\\xbe\\x45\\x40\\x5a\\x63\\xb9\\x6d\\x50\\x34\\xcc\\x0c\\x07\\xff\\xc3\\xb5\\x08\\x58\\x08\\x1d\\x19\\x55\\xe2\\xd2\\xfe\\x5b\\xe5\\xfd\\xa7\\xa8\\x99\\x69\\x43\\x76\\x8b\\x05\\x51\\x70\\xb7\\xfd\\x52\\xf0\\xa3\\x20\\x97\\xfe\\x1b\\x7a\\x94\\xf1\\xbf\\x87\\x9a\\x0c\\xba\\xbe\\x10\\xac\\x9a\\x7c\\xc1\\xf9\\xf5\\x50\\x68\\xc4\\x8e\\x3c\\xcc\\x06\\x51\\x36\\x43\\x10\\x18\\xd3\\x8d\\x20\\x10\\x9d\\xc9\\x5d\\x99\\xcc\\x2b\\xbe\\x7c\\x62\\x7a\\xb1\\xa8\\xaa\\x5f\\x43\\x16\\x13\\xb7\\x90\\xc2\\xe6\\x52\\x6c\\xf0\\x4f\\xdc\\x9e\\x55\\xf5\\x1c\\x05\\x5f\\x3c\\x20\\x45\\xa6\\x75\\xe3\\xa1\\xe5\\x4b\\xa4\\x09\\xf7\\xae\\xfa\\x7e\\x4a\\xa0\\x7a\\x2b\\xbd\\x5e\\x4a\\xb1\\x63\\x21\\xa9\\xf0\\x99\\x69\\x43\\x91\\xfd\\xa6\\x8a\\x74\\x58\\x1e\\x2f\\x1f\\x11\\xdd\\x9a\\x6d\\x52\\x4b\\x1b\\x83\\x26\\x0d\\xb5\\x7b\\x72\\xef\\x29\\xc2\\x8c\\x8d\\xb5\\xc3\\x7f\\xd1\\x85\\xb7\\xc2\\xd8\\x45\\x50\\x90\\x65\\x3a\\xf3\\x32\\xdb\\xc8\\x2b\\xfb\\x0d\\xb5\\xdc\\xca\\xbf\\xb6\\xb2\\x8c\\xaa\\x35\\x05\\x25\\xcb\\x54\\xcc\\x84\\xe5\\x53\\xe1\\xcf\\x39\\x54\\xb6\\x12\\x39\\x3e\\x79\\x93\\xff\\x7e\\x8b\\xf5\\xec\\xe3\\xf1\\x45\\x09\\x4d\\xd7\\xa2\\x7c\\xb4\\x7f\\x22\\x74\\x76\\xf2\\x89\\x23\\x52\\x51\\xf7\\x72\\xb3\\xba\\x77\\x6b\\xb7\\x73\\xaf\\x0c\\xc5\\xf7\\x86\\xa3\\xfb\\x9e\\x93\\x1a\\x53\\x0c\\xfb\\xd8\\x91\\xcb\\x5a\\x5d\\xfe\\x25\\x16\\x9e\\xf9\\x33\\xcc\\x82\\xc9\\x08\\x0f\\x32\\x39\\x61\\xa1\\x20\\x15\\x8e\\x4b\\xbd\\x71\\x13\\x4e\\xf1\\xf9\\x01\\x08\\xb8\\x15\\xc2\\x89\\xd4\\xe9\\xa9\\x58\\x9e\\xc6\\x4c\\x05\\xfb\\xb4\\x2a\\x21\\xb2\\x3d\\x16\\xe2\\xa6\\x46\\x78\\xae\\xcf\\xab\\x65\\xcd\\x9a\\x80\\x6c\\x59\\x81\\x03\\xd4\\x1f\\x70\\x09\\x77\\x63\\x17\\x83\\x1f\\xed\\xdd\\x1c\\x90\\x02\\xd4\\xa9\\x22\\x04\\xf9\\x7b\\xa9\\x49\\x0c\\x61\\x46\\x98\\x03\\x07\\x21\\x02\\x52\\x4b\\x9d\\xf5\\x19\\x00\\x5f\\x98\\xaf\\x54\\xd6\\x0c\\xa5\\xba\\x60\\xb5\\x5b\\x09\\x6a\\x4a\\xc2\\xb1\\x6e\\xb9\\xcc\\x81\\x97\\x3c\\x31\\x35\\xd3\\xfb\\x68\\x73\\xdd\\x96\\x53\\x80\\x0a\\x22\\xbb\\x5d\\x0d\\x61\\x17\\xca\\x5d\\x91\\x65\\x53\\xbe\\x39\\xc9\\xa3\\xb5\\x11\\xeb\\x3d\\xb7\\x30\"},\n{{0x12,0x38,0x0c,0x45,0xa7,0x9a,0xde,0x0f,0x48,0x3c,0x88,0x1a,0xaa,0x37,0x30,0x43,0x8b,0x08,0x35,0x90,0xf4,0x04,0xdc,0x9e,0x60,0x1f,0x76,0x15,0xf3,0x75,0xa6,0x28,},{0xd6,0x6f,0xc5,0x9a,0xe9,0x17,0xf7,0x6d,0x24,0xce,0x8a,0xb8,0xee,0x03,0xfb,0xcb,0x71,0x5d,0x5e,0xea,0x4b,0x08,0x39,0x2b,0x59,0x1e,0x64,0x85,0x91,0xc7,0x3c,0x89,},{0x02,0xb2,0x51,0x74,0xa3,0xdd,0x52,0x19,0xed,0x48,0xb2,0xc9,0x4c,0xa2,0x12,0xb6,0x3a,0x6a,0x3a,0x25,0x97,0x70,0x3c,0x07,0xb7,0xf0,0xc9,0x65,0xc3,0xc6,0xac,0x2e,0xb4,0x50,0xef,0xe3,0x87,0x16,0xa2,0xa2,0x8b,0x3f,0x89,0x84,0x6b,0x06,0xeb,0xdc,0xa4,0xbd,0x09,0xaa,0x58,0x1f,0x24,0xe8,0x4d,0x80,0xfc,0x10,0xac,0x1a,0x00,0x0a,},\"\\x68\\x45\\x23\\xc2\\xe7\\xfa\\x8b\\x4b\\xd7\\x54\\x8c\\x4b\\xac\\xaa\\x86\\x78\\xa3\\x30\\xdb\\xbb\\x96\\x06\\x32\\x94\\x01\\x66\\xb2\\xcc\\x9a\\xfc\\x15\\x35\\xc8\\x0c\\x11\\x2c\\x8d\\xc4\\xad\\xa7\\x62\\x92\\x33\\xfe\\x90\\x90\\x55\\x23\\x7d\\x51\\x3e\\x29\\x2a\\xf1\\x5a\\xd7\\x69\\x2f\\x11\\x5a\\xa0\\x92\\xda\\x65\\x75\\x32\\xf5\\x18\\x99\\xc3\\xf7\\xf5\\xd9\\xd4\\x07\\xed\\x5c\\x16\\x3e\\xb3\\x95\\x04\\x80\\xa4\\x12\\x2a\\x09\\x92\\x98\\x1f\\x07\\x7b\\xc8\\x67\\xf9\\x06\\x07\\x54\\x07\\xba\\x98\\x49\\xc4\\xea\\x04\\x73\\xce\\x54\\x0a\\x79\\x67\\x44\\xef\\xa3\\x86\\x03\\x78\\xe1\\xb8\\x93\\x43\\xe5\\x83\\xd0\\x80\\x7e\\x5a\\x67\\xc4\\xd5\\xbd\\x7c\\xe6\\x41\\x29\\xfe\\x90\\x2b\\x8c\\xfa\\xbd\\x2c\\x21\\xfa\\x3d\\x2a\\x10\\xe9\\xbf\\x9e\\xa5\\xe5\\x47\\x3a\\xe2\\x50\\xc9\\x16\\x05\\x09\\x97\\x26\\x78\\xf9\\xa7\\x40\\xe6\\xca\\xdb\\x3b\\x52\\xf5\\x02\\xfa\\x61\\x6c\\xff\\xae\\x1d\\xef\\x89\\x3d\\x54\\xe4\\x1e\\x54\\xd3\\x26\\x46\\x4c\\x9f\\x43\\x5c\\x63\\x50\\x5f\\xb1\\x5e\\x3e\\xea\\xf5\\x02\\x1c\\x65\\xdc\\xd0\\x10\\xf8\\x40\\xaa\\xb3\\x17\\xc8\\x60\\x5d\\xfb\\x1a\\x0c\\x8a\\x3d\\x55\\x49\\x86\\x1b\\x69\\xaf\\x2c\\x93\\xd8\\x6c\\x98\\x1d\\xf3\\xa5\\x1c\\x5b\\xf5\\x78\\x5c\\x2f\\x85\\x26\\x10\\xe4\\x4f\\xa4\\xff\\x1c\\x71\\x61\\x15\\x2e\\x56\\x18\\x38\\x47\\x44\\xfe\\x83\\xba\\xbf\\x0b\\xcb\\x75\\x61\\x78\\x9a\\x02\\x31\\x25\\xf6\\x24\\x2a\\x18\\x3c\\xac\\x95\\x49\\xc9\\x32\\x73\\x3a\\x86\\x8a\\xa1\\x82\\x65\\x6e\\x2b\\xa0\\xa8\\xc0\\xbe\\x10\\x69\\x96\\xa8\\x5c\\xeb\\xf1\\xbd\\xad\\x12\\x3b\\x98\\x2b\\x4e\\x05\\x55\\x10\\x87\\x94\\x82\\x02\\x1d\\xae\\xa9\\xd8\\xf2\\x6c\\x58\\x8e\\x6c\\xd1\\x01\\x26\\xcb\\x31\\x96\\x88\\x03\\x56\\xbe\\xe8\\xf2\\x98\\xbc\\xa3\\x06\\xec\\x56\\x99\\xc7\\x57\\x6b\\x76\\x50\\x87\\xc2\\x53\\xa6\\x02\\x14\\x01\\x0c\\x6e\\xd7\\x0d\\x87\\x1c\\xfc\\x87\\x38\\x01\\x8a\\x0e\\xdb\\x57\\xf1\\x06\\xb4\\x21\\x8d\\x85\\x5e\\xab\\x2c\\x91\\xf3\\x9f\\x85\\x8b\\x3f\\x25\\x90\\x56\\x31\\xa0\\xee\\xe2\\x98\\x56\\xfd\\x34\\xf7\\xb8\\xc9\\xba\\x51\\xc1\\xc4\\xc6\\xa7\\x35\\xd6\\xc7\\xa1\\x3d\\x22\\x0d\\x7a\\x56\\x6c\\x3f\\x50\\x6c\\x72\\xbc\\x74\\x17\\xab\\x37\\xf0\\xd6\\xd7\\x96\\xff\\xc7\\x1d\\xf9\\xdc\\x7c\\x6e\\x13\\x7d\\xa5\\x6b\\x7a\\x3e\\x10\\xcf\\x0b\\x1a\\xbb\\x3f\\xfb\\x70\\xbc\\x66\\x29\\x3b\\x5d\\x75\\xb4\\x05\\xed\\x8b\\xec\\x0d\\x6f\\xcd\\x06\\x92\\x5c\\x38\\x11\\x68\\xac\\x18\\x8d\\x0b\\x8a\\x1a\\xf0\\x83\\x9f\\x5b\\xde\\x84\\x3b\\x69\\x91\\xe5\\xa5\\xd6\\xcd\\x66\\xfe\\x6b\\x0f\\xde\\x86\\x7c\\x08\\x6e\\xd4\\x38\\x76\\x91\\x9a\\x1b\\x72\\x33\\xd8\\xd7\\xe1\\xd2\\x74\\x2f\\x61\\xc7\\x7d\\x8e\\x59\\x91\\x68\\x9c\\x83\\x28\\x67\\x66\\x55\\xb7\\x6a\\x37\\x50\\x56\\x0e\\x75\\xd1\\xc7\\xe8\\x5e\\x3c\\x00\\x85\\x05\\x93\\x31\\x09\\x4b\\xba\\x57\\x10\\x03\\x2c\\xf6\\x79\\xa5\\x25\\xc7\\x8b\\x31\\x70\\x0e\\x6d\\x91\\xf7\\x52\\x94\\xc4\\x22\\x48\\x92\\x97\\xe1\\x73\\x59\\x43\\xe4\\x17\\xfc\\xd3\\x55\\x80\\x58\\x2f\\xdd\\x02\\x39\\xb5\\x11\\x46\\x53\\x0c\\xc0\\x9d\\x83\\xb2\\x8f\\x0a\\x1d\\x64\\x22\\x20\\xdf\\xb9\\x9b\\xad\\x62\\xf3\\x95\\x41\\x03\\x50\\x81\\xd6\\x5d\\x77\\x8d\\xdf\\x32\\x39\\xba\\x0e\\x6f\\xa9\\x91\\x4b\\x17\\xb3\\x97\\xa5\\x34\\xcb\\x8f\\xd3\\xb4\\xff\\x42\\xa8\\xd8\\xc8\\xee\\x66\\x15\\x3f\\xbb\\x1f\\xf0\\xfa\\x54\\xf7\\xbd\\x03\\x27\\x85\\x16\\xe6\\x34\\x1a\\xf8\\x0f\\xcd\\x1f\\xce\\xe7\\x0c\\x35\\x9d\\x20\\x53\\x68\\xac\\x49\\x0d\\x75\\xa3\\x54\\x51\\x2d\\xa4\\x6b\\xa7\\x63\\x4c\\x15\\xb2\\x84\\xb2\\x44\\x77\\x80\\x8f\\x17\\x63\\x33\\x60\\xa4\\xb4\\x9f\\xb3\\xbc\\xaa\\x84\\x18\\x41\\xcf\\x92\\x41\\x7e\\xb2\\x4c\\xe4\\x82\\xd5\\xa2\\x4b\\xfd\\x2d\\xac\\x37\\x22\\x31\\xda\\x53\\x9a\\x05\\x42\\x00\\x02\\xff\\x7a\\x20\\xc4\\x76\\x09\\x7d\\xa0\\x6f\\x59\\xf0\\x33\\x14\\xe6\\x05\\x9f\\xad\\x88\\xc5\\x0c\\x3b\\xaa\\xc0\\x3c\\xef\\xa7\\xcd\\x82\\x11\\xd2\\x46\\x1b\\x16\\x60\\xea\\x6b\\xcf\\x47\\x68\\x38\\xc9\\x1a\\x10\\x07\\x4e\\xb4\\xb4\\x0e\\x6e\\x97\\x4a\\x94\\x5a\\x67\\xf6\\xee\\x69\\x04\\x23\\x1e\\xf0\\x41\\x88\\xf1\\xea\\xd5\\xba\\xf3\\x56\\x94\\xef\\xe3\\x01\\xed\\xc7\\xe8\\x66\\xda\\x23\\xb5\\xa6\\xc5\\x8f\\x01\\xb2\\xa5\\x2c\\xf3\\xab\\x80\\x5e\\xdc\\x5c\\x13\\x68\\x62\\x6b\\x95\\xb9\\x4e\\xb4\\x64\\x5b\\x69\\x3e\\xc8\\x80\\xf2\\xb8\\x11\\x7a\\x69\\x3a\\xfb\\xdc\\xd2\\x48\\x24\\x31\\x89\\x0f\\x41\\x0b\\xc5\\x80\\x53\\x0f\\xef\\x37\\x58\\x79\\xc2\\xe4\\x60\\x49\\xca\\x89\\x1a\\x2c\\x3e\\xcd\\x60\\x43\\xae\\x80\\xd8\\xaf\\x34\\x66\\x34\\x67\\x4c\\x6d\\xfe\\x90\\x59\\x97\\xde\\x5d\\x05\\xd6\\x20\\x09\\xee\\xed\\x27\\x75\\x02\\xfb\\x5a\\x5a\\x31\\x55\\xee\\xee\\xb6\\x73\\x48\\xb6\\x0d\\x89\\xa3\\x4a\\x78\\x12\\x63\\x9f\\x54\\x1f\\xfe\"},\n{{0xd1,0xb3,0x43,0x0d,0x4e,0x63,0xaa,0xbf,0xa9,0xef,0x96,0xbc,0xba,0xf1,0xfa,0x6a,0x9e,0xb5,0x21,0x9d,0xd4,0x4d,0xf3,0xb1,0xa6,0x15,0x63,0xdf,0xfe,0x1c,0xcb,0x28,},{0xc2,0x8a,0x05,0x19,0x52,0x45,0x29,0x0e,0xcd,0x38,0x53,0x55,0x85,0xce,0x51,0xf3,0xc2,0x35,0xc5,0xd6,0x50,0xc8,0xc5,0x7c,0x2f,0x79,0xbb,0x0a,0xc0,0xe8,0x08,0x34,},{0x4c,0xb6,0xff,0x5d,0xd7,0x06,0xb1,0xae,0x81,0x6c,0xdb,0xaf,0x9e,0x9e,0x1e,0xdc,0x80,0xa6,0x62,0x84,0xf9,0x46,0x52,0xd5,0x0e,0xc1,0x4e,0x28,0x3b,0x2a,0xdc,0x59,0x2f,0xd0,0x84,0x33,0x71,0x44,0xff,0xa7,0x12,0xdc,0x34,0xce,0x8e,0x61,0x06,0x68,0xa6,0x5e,0x96,0x9f,0x05,0xce,0xb5,0x47,0x86,0x30,0x4d,0x0d,0x58,0xd3,0x1a,0x08,},\"\\x07\\x6c\\x0c\\x87\\x62\\xe4\\xbc\\x00\\x3c\\x36\\x0a\\x12\\xa1\\x95\\x98\\x05\\x05\\x51\\xd1\\x6b\\x4b\\x8d\\xa0\\xfb\\x9c\\x4a\\xfc\\xc8\\x1a\\xdb\\xe6\\x19\\x95\\xf2\\x5c\\xbc\\x28\\xdc\\xa4\\x20\\xbf\\xa9\\x46\\x10\\x54\\xd3\\xee\\x00\\xad\\x78\\x18\\x3e\\x7f\\x26\\xdf\\x68\\x98\\xaf\\x9a\\x4d\\x22\\x5f\\xca\\xb6\\x7c\\x04\\x2e\\x9a\\x13\\x52\\x5d\\x1f\\x75\\xff\\x0e\\x3d\\x8d\\xa8\\x08\\x96\\xb7\\x28\\xf3\\xe2\\xdb\\x65\\x94\\x4a\\xe0\\x71\\x7d\\x77\\x59\\x90\\xb5\\x9e\\x5b\\x70\\x43\\x4b\\xd4\\xb3\\xee\\x45\\x2f\\x10\\xac\\x06\\x10\\x57\\x0b\\x38\\x22\\x08\\x32\\x96\\x8f\\x54\\x4d\\x3e\\x4d\\x11\\x9b\\x1d\\x4b\\x50\\x15\\xc6\\xcd\\xf4\\xcf\\x22\\x0b\\x56\\xb5\\xc0\\xcc\\xd8\\xe3\\x98\\xd5\\xe4\\xa5\\x8d\\xa3\\xb0\\xe2\\xb2\\x70\\xa5\\xd3\\x9b\\x82\\xab\\xb7\\xf9\\xd2\\x7a\\x41\\x90\\x18\\x55\\x0b\\x62\\x00\\xae\\x51\\xc8\\x48\\x82\\xf0\\x86\\xae\\x7e\\xa5\\x35\\x16\\x71\\xb6\\xdd\\x96\\x09\\x23\\xad\\x6b\\xef\\xc1\\x34\\x09\\x87\\x9a\\x8d\\xf6\\x19\\xbd\\xf6\\xc8\\x8a\\x6f\\xe1\\xec\\xc0\\xf0\\xf3\\xaa\\x21\\x9f\\xb6\\x19\\x02\\xbe\\x48\\xa5\\x3d\\xf2\\xbc\\x66\\xc5\\x6f\\x1c\\x1d\\x17\\xf7\\xe6\\x16\\x7d\\x25\\x51\\x65\\xf1\\x74\\xba\\xa9\\xca\\xf5\\x3c\\x73\\xcb\\xbb\\x7c\\xc2\\xc7\\xc0\\x87\\xf4\\x3a\\xbe\\x2a\\xed\\x5a\\x21\\xfe\\x42\\x90\\xb8\\xd6\\x79\\x60\\xa8\\xa9\\xcb\\xc2\\xa5\\x7a\\xbe\\x22\\x65\\x4d\\xc1\\x84\\xcf\\xf9\\x16\\x8b\\xb6\\x97\\x27\\x03\\x75\\xfe\\x88\\xd5\\xc4\\x9c\\xf9\\x5b\\x06\\xcf\\x9d\\x0d\\xac\\x81\\xfb\\xd9\\xc0\\xd7\\xb8\\x2d\\x05\\xed\\x2c\\x3f\\xd4\\x9c\\xcc\\x29\\x40\\x44\\x41\\x71\\x25\\x45\\xf9\\xa9\\x91\\xe4\\xf0\\xdd\\xb6\\x21\\x90\\x83\\x82\\x96\\xf9\\x67\\x29\\x9a\\x38\\x60\\x72\\x26\\xd8\\xa6\\x81\\xf0\\xa8\\xf3\\xc4\\x38\\x4f\\xd1\\x8b\\x30\\x25\\x7c\\x46\\x3c\\x0a\\xbd\\x0f\\x4f\\x6f\\x12\\x25\\xa5\\x1b\\x76\\x2d\\x6d\\x0a\\xc7\\xd5\\x9c\\xd2\\xef\\xd6\\x98\\xb8\\xd1\\x3e\\x23\\xd7\\x04\\x09\\xf6\\xb0\\x7d\\x69\\x5c\\x16\\x71\\xcd\\x6f\\x59\\x44\\x3b\\x1d\\xb0\\xab\\x35\\xb9\\xdc\\x06\\x40\\xe4\\xc6\\xd1\\xac\\x50\\x47\\x5d\\x28\\xef\\x94\\xf8\\x17\\x90\\xe2\\xe5\\xb2\\x54\\x55\\x14\\xb2\\xa4\\x9c\\x5c\\x21\\x53\\x45\\x9b\\xe5\\x40\\x89\\x0f\\x53\\xbc\\x18\\xe4\\xa1\\x6d\\xcb\\x5d\\xcf\\x50\\xf3\\x7a\\x95\\xc6\\x06\\xfd\\xf4\\x85\\x98\\xe5\\x2a\\xf3\\x17\\x9a\\x20\\x48\\x61\\x5d\\x93\\xd9\\x7e\\x05\\x99\\xb7\\x08\\x8c\\x11\\x74\\xbb\\x9f\\x15\\xe3\\x70\\x18\\xf9\\x9a\\xcb\\xce\\x5b\\x13\\x02\\xf8\\xd8\\xce\\x2a\\xb8\\x54\\x37\\xfe\\xeb\\x0c\\xaa\\x77\\x84\\xdc\\x83\\xc9\\xe7\\xc3\\x6f\\xe0\\x59\\x90\\x6b\\x03\\x0a\\x86\\xa3\\xde\\xd0\\xab\\x9d\\x8b\\x73\\x52\\x9d\\x47\\x5e\\x66\\x1a\\x08\\x08\\xd6\\xd3\\xf0\\x90\\x7f\\x85\\x28\\x87\\x3f\\x08\\xd5\\x74\\x8b\\xe1\\xd6\\x97\\x12\\xe8\\x52\\x62\\xd7\\x7b\\xdf\\x13\\xbf\\xd1\\x8a\\x5c\\xde\\x6f\\x71\\x46\\x26\\x73\\xab\\x29\\xb1\\x61\\x73\\x15\\xa9\\xa6\\xe9\\x36\\xa8\\xe8\\x1a\\x8e\\x43\\xbd\\x0f\\x66\\x44\\xa5\\xc6\\x9e\\xaa\\xac\\x89\\xbd\\xaa\\x99\\xcc\\xa8\\x03\\x83\\x37\\x05\\xe5\\xaf\\xa6\\x9b\\x3b\\xd1\\xd0\\x25\\x2b\\x85\\x46\\x50\\xf2\\x19\\x97\\x91\\xe6\\xac\\xa7\\xc7\\x5a\\x86\\x12\\x83\\x21\\x62\\x33\\xa2\\x63\\x3a\\x6a\\xef\\xf9\\xd3\\x01\\xee\\x5c\\xb4\\xdd\\x72\\xc0\\x8a\\x45\\xcd\\xae\\x8f\\x54\\x58\\xc0\\x95\\xb2\\x2e\\x75\\x9c\\x43\\xb4\\x9b\\x98\\xe9\\xf4\\xcb\\x33\\xd5\\xde\\xa8\\x79\\x44\\x9e\\xae\\x73\\xcb\\x87\\x4c\\x73\\x59\\x43\\x25\\xeb\\xf6\\x8c\\x1e\\xd4\\x06\\x4b\\x6f\\x61\\xab\\x2f\\x01\\x4a\\x2f\\x19\\xf3\\x2e\\x12\\xb3\\x3c\\x5e\\xaa\\x8a\\x29\\x20\\x4d\\x5e\\xba\\x58\\xdc\\x07\\x50\\x72\\xfe\\x39\\x9b\\xe7\\xd1\\xab\\x18\\x08\\x20\\x8f\\xb4\\x08\\x12\\x3b\\xdc\\x0b\\x4a\\xb3\\x13\\x0f\\x9f\\x70\\x6d\\xc3\\xeb\\x19\\x4b\\x60\\x5e\\x73\\xa3\\x2f\\x12\\x5a\\xe4\\x91\\x28\\x5c\\xe6\\x03\\x9f\\xb6\\x23\\xc3\\x8b\\x81\\xd5\\xab\\xa0\\xf5\\x59\\x9f\\x6c\\x86\\xe8\\x72\\x48\\x6b\\x4e\\x96\\x49\\xda\\xff\\xe3\\xa3\\xd0\\x6c\\xb0\\x73\\xdd\\x3b\\xc6\\xf4\\xe1\\x0a\\x18\\x70\\x0e\\x45\\x72\\x2d\\x78\\xa6\\xb0\\x97\\x2d\\xc9\\x4d\\x5c\\x7a\\x7b\\x66\\x41\\x75\\x7b\\x79\\x60\\x75\\x71\\x9d\\x7b\\x8e\\xc3\\x6a\\x1e\\x79\\x6f\\xb5\\xf8\\xfe\\x6f\\x1b\\x79\\xa0\\x85\\x9c\\xb4\\xd6\\x7c\\xec\\x05\\xed\\x91\\x4c\\xfa\\x32\\xc1\\xdd\\xfe\\x21\\x8e\\xf9\\x63\\x43\\x6c\\x3a\\x11\\x48\\xac\\x2c\\xf9\\x09\\xdf\\x73\\x59\\x89\\x06\\x57\\x46\\x3a\\x4e\\xa2\\x5f\\xed\\x59\\x61\\x8a\\x06\\x81\\xa1\\x21\\x7e\\x22\\xd6\\x4e\\xf9\\xd9\\xb4\\x55\\x9d\\x0a\\x0f\\x6b\\x3c\\xe8\\xd8\\x47\\x93\\x0b\\x23\\x23\\x01\\xca\\xf4\\x4c\\xdf\\x7a\\x3f\\x18\\xa2\\xac\\x13\\x0b\\x92\\xcf\\xd9\\xc0\\x33\\x60\\x55\\x7b\\x5f\\x7c\\x47\\x75\\x46\\x2a\\x10\\x71\\xf7\\x03\\x44\\xc7\\x18\\x37\\x4b\"},\n{{0x03,0x3e,0x00,0x3d,0x7a,0xab,0x7b,0xc7,0xfc,0x8a,0xc2,0x04,0xc7,0x33,0x79,0x9a,0xe5,0x53,0xc3,0xfe,0xc5,0x3f,0x10,0xdb,0xf7,0x95,0xb5,0xf4,0xb8,0x7f,0x1c,0x95,},{0x68,0x2f,0x46,0xf5,0xc0,0x56,0xdd,0x45,0xba,0x0b,0x5a,0x78,0x20,0x31,0xf9,0x59,0x6a,0x73,0xaa,0x29,0x2c,0xa2,0x32,0x6b,0xed,0xa7,0x4a,0x52,0xfc,0x32,0xb7,0x16,},{0xed,0xb4,0xe0,0x20,0xd6,0x76,0xfa,0xc6,0xa8,0x45,0x53,0x48,0x80,0xbf,0x61,0x36,0x37,0x4a,0x8b,0x7f,0x2c,0x53,0x85,0xbb,0x9e,0xe2,0x25,0x38,0x1f,0x49,0x4e,0xfb,0x74,0xa5,0x5b,0x41,0x3a,0xe0,0xea,0x70,0xad,0xd6,0x1b,0xfd,0xfb,0x87,0xfb,0x42,0xd5,0xbc,0x0c,0x53,0x59,0xdd,0xdd,0x57,0x3d,0x53,0x8a,0xe9,0x3a,0x6b,0x36,0x09,},\"\\x59\\x6a\\xa2\\xc4\\x0b\\x33\\x18\\x87\\x89\\x38\\xeb\\xc1\\x38\\xdb\\x27\\x4b\\xb3\\x8a\\x52\\x01\\xeb\\x7c\\xaf\\x87\\x5e\\x6c\\x64\\x57\\x91\\xda\\xe0\\x12\\xbd\\xef\\xd4\\x85\\xe6\\xbd\\x9d\\x84\\x99\\xc4\\x2a\\x2a\\xe8\\x6c\\xf3\\x2b\\x18\\x00\\x2e\\x76\\xbb\\x58\\x2c\\xca\\x0d\\xec\\x48\\x15\\xde\\xd8\\xa1\\x21\\x1f\\x8f\\xc8\\x85\\x7f\\xce\\x1d\\x57\\xf6\\x15\\x1d\\x88\\x78\\x7b\\x97\\x8f\\xab\\x56\\xbf\\x92\\x6b\\x15\\x33\\xe1\\x94\\x99\\xe8\\xbb\\x99\\x15\\x8c\\xdd\\x6e\\x98\\x0f\\x6b\\xa5\\x43\\xae\\x83\\x1f\\x9d\\xd1\\x34\\xb0\\xfe\\x6d\\x5c\\x24\\x88\\x7d\\xc7\\xa8\\xd4\\x78\\x1d\\xd9\\xb7\\xfc\\x5d\\xc9\\x46\\x4b\\x04\\x5c\\xbf\\x9d\\x1e\\xf5\\x03\\x6b\\x5b\\xf2\\x8b\\x54\\x9a\\xc7\\xaa\\x8f\\xaf\\xb9\\x1a\\xdc\\x9f\\xec\\xa7\\xa1\\x45\\x54\\xd1\\x10\\xe3\\x10\\xc7\\x49\\xe4\\x85\\x33\\xf3\\x59\\xc7\\x0f\\x05\\xfb\\x7a\\xed\\xef\\x13\\x66\\x36\\xb8\\xef\\x72\\x23\\x88\\x65\\x39\\x86\\x4e\\xe5\\x2d\\x34\\x11\\x8b\\x4b\\x8b\\x74\\xe0\\x8f\\xe6\\xb6\\x58\\x96\\xe4\\xb1\\x9b\\x6d\\x7c\\x3f\\x25\\x28\\x26\\x55\\x85\\x48\\x17\\x10\\xd2\\xd7\\x49\\x48\\xeb\\x4b\\x17\\x08\\xa5\\x0f\\xa7\\x40\\x21\\xbd\\xa4\\xb3\\x61\\xbc\\x68\\xd2\\xa5\\xd2\\x02\\x10\\x9f\\x8d\\x28\\xd8\\xaa\\x67\\xd7\\x8c\\x11\\x36\\xcd\\x2e\\x90\\x3c\\x8d\\xfa\\x17\\x5a\\xf7\\xbd\\x96\\x3b\\x73\\xda\\xe4\\x95\\x87\\x3c\\xcd\\xae\\x62\\xbf\\xef\\x88\\x56\\x36\\xdd\\x83\\x55\\x0f\\xf9\\xc0\\x5c\\x37\\xba\\x33\\x89\\xd1\\x54\\x36\\x85\\xd8\\x94\\x83\\xb0\\xc1\\x04\\xe7\\xef\\xbb\\x77\\x02\\xc5\\xa0\\x39\\x8a\\xc7\\x20\\x48\\x4c\\x50\\x93\\x68\\x35\\xee\\x9d\\xf2\\x53\\xf0\\xef\\x8c\\xbe\\xf3\\xe0\\x7d\\xe9\\x69\\x51\\x1c\\xcb\\xf8\\x75\\x57\\x49\\x3a\\x0b\\x97\\x2e\\xf0\\xe8\\xe6\\x29\\xcf\\x38\\x22\\xdb\\x21\\x28\\x6e\\xd7\\x27\\x66\\x1b\\xd3\\x17\\x86\\xfc\\xa1\\x42\\x11\\x06\\xda\\xcd\\xee\\x1c\\xaa\\xf4\\x94\\x54\\xe8\\x54\\x79\\x4f\\x70\\x4d\\x22\\xa9\\x5a\\x4c\\x8e\\x6b\\x1c\\x2f\\xee\\xa5\\x7e\\x56\\x23\\x8c\\x20\\x96\\xf1\\xcc\\x57\\x86\\x47\\xfe\\xa5\\x44\\xd6\\x76\\x44\\x82\\xbd\\xf5\\x14\\x88\\x79\\xa2\\x5f\\x94\\x3d\\xb1\\x6f\\x29\\x02\\x1b\\x9e\\xcf\\xe3\\xe0\\x90\\xb4\\x25\\xc8\\x1c\\x70\\x09\\x84\\x2e\\x1c\\x7a\\x02\\xd9\\x1c\\xa6\\x0c\\x12\\x01\\xc3\\xbd\\xae\\x9c\\x53\\x73\\xaf\\x03\\xf2\\xf4\\xdb\\xef\\x40\\xde\\x8d\\x9b\\x21\\xfe\\xd6\\x8d\\xee\\x51\\x0d\\xe0\\x42\\x72\\x34\\xca\\xa1\\xc2\\x0a\\x3a\\xe5\\x49\\x95\\x48\\x34\\xc9\\x33\\x73\\xd9\\x13\\xb8\\x75\\x0f\\x23\\xa0\\x37\\x80\\xd7\\xa9\\x45\\x4e\\xd6\\xfe\\x51\\xfd\\x2d\\x27\\x6b\\x9d\\x4a\\xa3\\x2d\\xe0\\x5e\\x03\\x81\\x6e\\x64\\xe9\\x46\\x6f\\x4f\\x0e\\x22\\x46\\x51\\x42\\x8d\\x34\\x2c\\xbc\\xc6\\x97\\x17\\x0a\\x47\\xef\\x99\\x6b\\xda\\xcb\\xce\\x91\\x11\\x7c\\xa1\\xf8\\x45\\x5b\\x25\\xb2\\xb0\\x84\\x43\\xe9\\x91\\x4e\\x3d\\x90\\xc4\\x89\\xee\\xaa\\x77\\x31\\xdd\\xea\\x21\\x23\\xd5\\x5d\\x67\\xb1\\x66\\x83\\xfb\\x7c\\x82\\x36\\xaa\\xa5\\xa1\\xb0\\xfc\\xaf\\x8d\\x17\\x00\\x11\\xdb\\xe9\\xaa\\x28\\x57\\xbe\\x61\\x2c\\xbb\\x85\\xef\\x69\\xe5\\x68\\x31\\xb4\\xda\\xcf\\xbc\\x7a\\x59\\xb4\\x65\\xa6\\x6d\\xc7\\x41\\x2d\\xdb\\x3d\\x6a\\xf4\\xeb\\xfd\\x70\\x58\\x64\\xe7\\xd4\\xfb\\x99\\xa6\\xcc\\xb4\\x8b\\x11\\x83\\x68\\xfe\\xab\\x02\\xa3\\x40\\xc4\\x32\\x76\\x8d\\xe0\\xe0\\x67\\x87\\x1e\\x9e\\xa8\\x08\\xd6\\xd9\\x93\\x81\\x58\\x29\\xe7\\x1f\\x6c\\x04\\x2b\\x66\\x49\\x95\\x09\\x8f\\xee\\x94\\xd5\\x43\\xdf\\x15\\xe5\\xb1\\x69\\x57\\x03\\x1b\\xd2\\x38\\xbc\\xad\\xbb\\xdc\\xc5\\x76\\xaf\\xfb\\x64\\x03\\x03\\xd6\\x9c\\x5b\\x25\\x0b\\x3a\\x53\\x9a\\xfd\\x12\\x7f\\x7e\\xe2\\x60\\x9e\\x52\\xe5\\x15\\x4f\\xbd\\xff\\x3e\\x45\\xf9\\xc4\\x40\\x66\\x65\\x6d\\x56\\x1e\\x0f\\x64\\xdf\\xf2\\x80\\x5d\\xf8\\x8e\\x30\\xa3\\x80\\x53\\x08\\x22\\x41\\x3a\\x7a\\xb7\\x6a\\x1b\\x9a\\x86\\x53\\x78\\xd2\\x47\\x63\\x06\\x9a\\x81\\x40\\x02\\xa9\\xa9\\xd0\\x37\\x95\\xca\\x8d\\x2b\\x5b\\xd1\\x09\\x03\\x93\\xe9\\xe4\\xb1\\xff\\x7d\\x7f\\x0e\\xb8\\x4e\\x71\\x2a\\x01\\x8f\\x68\\xc9\\xe3\\x84\\xf0\\xa0\\xae\\xf3\\x96\\x78\\x79\\x28\\x4f\\x40\\x9e\\x30\\xd2\\x36\\x50\\x86\\xe6\\x69\\x52\\x27\\x8c\\xa9\\xb6\\xf9\\x0e\\x8f\\x69\\xa4\\x8d\\x9b\\x28\\xbb\\x4c\\x4e\\xd6\\x32\\xab\\xca\\x3a\\xf4\\x14\\x4d\\xa7\\x42\\x2b\\xf5\\x19\\x92\\xf7\\x34\\x73\\x14\\x53\\xc7\\xa3\\x3e\\x15\\xe5\\x9f\\x53\\x08\\x12\\x9d\\x6a\\x77\\x4a\\x94\\x58\\x6f\\x72\\x33\\x11\\x17\\x91\\x76\\xc0\\x94\\x8f\\xff\\x4e\\x30\\xc1\\xb9\\x59\\x81\\x2c\\xac\\x97\\x7c\\xc7\\x43\\x47\\xb0\\x07\\x94\\x0f\\x2f\\xb9\\x62\\xa9\\x0d\\x66\\x06\\x6a\\x6d\\xe8\\x80\\x19\\x84\\xde\\xe4\\xa5\\x32\\xd4\\xb0\\xac\\xd6\\xdc\\xaf\\x06\\x72\\x7b\\xab\\x70\\xb3\\x86\\x62\\x32\\x23\\x4c\\x91\\x00\\xbf\\xdc\\x66\\x9f\\x77\\xca\\x49\"},\n{{0xee,0x55,0xfc,0xf7,0x0a,0x27,0x5c,0x72,0x6b,0xd4,0x85,0x66,0x83,0xb3,0x47,0xde,0xcf,0xd4,0x22,0xf1,0x82,0x6c,0x07,0xa9,0x32,0xcb,0x85,0xbe,0x9f,0xa4,0xef,0x3c,},{0xdf,0xcf,0xfb,0x5e,0x15,0x53,0x78,0x9d,0x56,0xa9,0xf3,0x91,0x4b,0xce,0x50,0x0d,0x07,0xc5,0xac,0x31,0x1f,0x92,0x78,0x54,0xb2,0xcf,0x1e,0x58,0x33,0xc0,0x32,0x37,},{0x9d,0x8c,0xb2,0xea,0xf3,0xff,0x3e,0x0c,0x2b,0xc6,0x72,0xe1,0xd2,0x55,0xc5,0xb8,0xe8,0x07,0x31,0xbf,0xf6,0xf6,0xab,0xa5,0x17,0xe1,0x33,0x54,0xe8,0x51,0x08,0x0f,0x4a,0x8b,0xb8,0x12,0x1b,0x26,0x24,0x24,0x4c,0x9e,0xe9,0x5c,0x8a,0x09,0x2f,0x10,0x37,0x03,0xfb,0xe6,0x6f,0x9c,0xba,0x10,0x0d,0x2e,0x91,0xed,0x77,0x4a,0xc9,0x07,},\"\\xb8\\xc8\\x45\\xcf\\x7c\\x54\\x85\\xf0\\x62\\x2d\\x1d\\xdc\\x17\\xf7\\xa0\\xf6\\xf0\\xfd\\x70\\x74\\xfe\\x19\\x4b\\x0e\\x0c\\xd4\\x26\\x50\\xcf\\xc8\\x17\\xf5\\x7f\\x09\\x5f\\x8c\\xdf\\xad\\x1e\\xbe\\x0d\\xfb\\xc1\\xbd\\x76\\x17\\xab\\x4f\\x20\\x4e\\x9d\\x55\\xd8\\x1a\\x7c\\x8a\\x43\\x39\\x40\\xec\\x6f\\x17\\xc8\\xa8\\xe3\\xd5\\x6c\\x1a\\xfb\\x0a\\xf3\\x74\\xbd\\x32\\xd5\\x4e\\xf7\\x13\\x2d\\x26\\xb8\\x9c\\x47\\x0c\\x2a\\xb5\\xbe\\x16\\xfa\\xbb\\x4c\\x75\\x19\\x3d\\x6d\\xa5\\x9b\\xa2\\xfd\\x15\\x7e\\x9e\\xa4\\xe0\\xc5\\xc0\\x8a\\x52\\x02\\xf5\\xed\\xc6\\xa6\\x17\\x01\\xf0\\x8b\\xb3\\x44\\xca\\x64\\x55\\xd7\\x5d\\x14\\x5a\\xdb\\x24\\x4c\\x53\\x4c\\x8c\\xfc\\x62\\x3f\\x4d\\x4b\\x67\\x67\\x59\\x4b\\x39\\xa7\\x69\\x0b\\xee\\xec\\x4d\\xf9\\x74\\x6a\\x57\\xff\\xee\\x05\\x14\\x54\\xc4\\x27\\x8e\\xa4\\x3c\\x81\\x0f\\xf1\\x3c\\xd7\\x69\\x61\\x5f\\x9d\\x05\\xd4\\xfe\\x4a\\x51\\x58\\x3e\\x80\\xc0\\x15\\xdc\\xfe\\xd9\\xaf\\x05\\xf9\\x3d\\x05\\x4d\\x34\\xff\\xd9\\x39\\xbd\\xd8\\xf0\\x51\\x8f\\xa3\\x03\\x0a\\x96\\x4d\\xc9\\xd8\\x0d\\xf0\\x0f\\x16\\x35\\x82\\x40\\x72\\xcd\\xf2\\x9b\\xc8\\x02\\x59\\x20\\x9d\\x50\\xf5\\x6f\\xca\\x9f\\xbd\\x6a\\xe1\\x51\\x4a\\x67\\x19\\x89\\xce\\xa4\\xf6\\x84\\x6b\\xc1\\x91\\x79\\x09\\x7c\\xca\\x40\\xc6\\x24\\xd7\\xed\\xbf\\x91\\xfb\\x5b\\x25\\x39\\xeb\\xbd\\x50\\x2d\\x36\\x46\\x71\\x14\\x30\\xba\\xe4\\x23\\xfd\\x11\\x58\\x48\\x09\\x33\\x18\\xb7\\xd0\\x87\\xef\\x1e\\x3b\\x89\\x4b\\xc3\\xb9\\xea\\x27\\xaf\\x85\\x3f\\xca\\x85\\x95\\xd3\\x6f\\xb7\\x29\\x99\\x69\\x16\\x2f\\x2e\\xd6\\xa2\\xb5\\x50\\x75\\xb2\\xc6\\x30\\x80\\x28\\x57\\x17\\x6d\\xec\\x4c\\xb5\\xac\\xf2\\xb1\\x3a\\x35\\xa9\\x94\\x9b\\x91\\x2b\\xb5\\x7d\\x81\\xeb\\x0c\\x8a\\x8a\\xdf\\x3c\\xf6\\x4c\\xb5\\x71\\xbf\\x5f\\x3d\\x71\\xf9\\x87\\xd6\\x4d\\x74\\xe9\\x19\\xa0\\x03\\x36\\xe5\\x7d\\x35\\xee\\x4e\\xec\\xfc\\x65\\x70\\x00\\xdd\\x5b\\x12\\x99\\x5e\\xe1\\xb1\\x16\\x59\\x1c\\xe5\\x8e\\x56\\xde\\x25\\xb2\\x9c\\x94\\x82\\x9d\\x1d\\x68\\x52\\x1b\\x95\\x58\\xe4\\x72\\x5e\\xc7\\x70\\x39\\x06\\x9c\\x0c\\xd1\\x7b\\x2a\\x00\\x33\\x59\\xe9\\xe1\\xe1\\x12\\xc7\\x59\\x01\\x76\\xce\\xbc\\xe7\\xf0\\x01\\xf1\\xd1\\x36\\xe8\\x18\\xf4\\x81\\x8c\\xfd\\x94\\x74\\x5a\\xfa\\xab\\x56\\xf1\\xa4\\x06\\xf9\\x7d\\xd9\\xe6\\x1b\\x73\\x52\\x66\\xd6\\x82\\xad\\x7d\\xf2\\x6d\\xd7\\x0c\\xde\\x0b\\x57\\xfe\\xa7\\xdb\\x2d\\xf8\\x32\\xfa\\x88\\xa3\\x5f\\x53\\x97\\x94\\x88\\x4d\\xdc\\x41\\x21\\x84\\x03\\x01\\x6c\\xb6\\xd5\\x22\\x1f\\x3f\\xeb\\x5d\\x3a\\xee\\x4a\\x98\\x40\\xa9\\x13\\x07\\x2d\\x29\\xf8\\xd1\\xa9\\x36\\x7b\\xb0\\xbb\\xf5\\x45\\xf7\\xda\\xe7\\xc0\\x0a\\x0d\\x0c\\x03\\x42\\x23\\x1a\\xe4\\x62\\xbb\\x74\\x2e\\x14\\x98\\xee\\x58\\x4a\\xe6\\xc8\\x3f\\x2f\\x1f\\x2d\\x04\\x52\\xbe\\xad\\x98\\x22\\x68\\xcd\\x3c\\xfd\\xe7\\x8f\\xf4\\x22\\xe2\\x26\\xbf\\x7b\\x2a\\xf1\\x13\\x77\\x57\\x79\\x7f\\xb0\\x2e\\x52\\x75\\xc3\\x48\\x09\\xd5\\x4c\\xa9\\xee\\x2a\\x65\\x27\\x5e\\x6e\\x5c\\xff\\xdd\\x20\\xad\\x1f\\xa1\\xee\\x0b\\xd8\\xb2\\x1e\\x04\\xce\\x82\\x9e\\x02\\xcd\\xb6\\x3c\\x48\\xbf\\xcd\\xd8\\x6d\\x3a\\x08\\xc5\\x97\\x89\\xc9\\xd7\\x8e\\x36\\x18\\x1d\\xef\\xeb\\x72\\x27\\x10\\x72\\x75\\xed\\x6b\\x5c\\xcb\\x12\\x7c\\xd7\\x2b\\x37\\x4e\\x17\\xf5\\xee\\x0b\\x5e\\x47\\xb4\\xb3\\xe1\\x4a\\x8e\\xc6\\xd8\\x6b\\xb7\\x50\\x71\\x87\\xf2\\x8d\\xb3\\x2b\\x3f\\x3f\\xa1\\xca\\x13\\x44\\x6f\\xe5\\x25\\x3e\\xe7\\x83\\x64\\x5e\\x79\\x42\\x72\\x79\\x9a\\x86\\x3b\\x4f\\xca\\x99\\xe4\\x43\\xcb\\xaa\\x05\\xde\\x3c\\x50\\xed\\xf3\\xd5\\xcd\\x7c\\x10\\x52\\x9c\\x6c\\x09\\xa0\\xc1\\x45\\x34\\x06\\xac\\x7e\\xca\\xfa\\x9b\\x3a\\x1f\\x36\\x9d\\x68\\xf3\\xc6\\x18\\xf5\\x8e\\xfc\\x35\\x9d\\xf2\\xf3\\xfc\\xd2\\x47\\x8b\\x55\\xa4\\x1a\\x11\\xf2\\x48\\x7e\\x7f\\x70\\xec\\x29\\x3b\\x3e\\xcc\\xc7\\x00\\xef\\x44\\x4a\\x33\\xd1\\xea\\xe9\\x84\\x9c\\x5b\\x76\\xd2\\x9a\\xfd\\x5a\\x23\\x86\\x1a\\xef\\x4f\\x2a\\x7b\\xa3\\xf6\\x66\\x30\\x1f\\xde\\xb5\\xd3\\xd8\\xf0\\xdc\\x9e\\xe2\\xe0\\x14\\xb2\\x4c\\x74\\x65\\xde\\xe3\\xc0\\x96\\x4e\\xdd\\x49\\xed\\x49\\xed\\xab\\xb5\\xca\\x7a\\xfb\\x99\\x57\\x4d\\x00\\x1e\\x58\\x12\\xa0\\x85\\x23\\x1f\\x24\\x1b\\x6b\\x08\\xc7\\x3e\\x80\\xfb\\x44\\xbb\\x2a\\xdf\\x55\\x4f\\x14\\xfd\\x6d\\xce\\x94\\xa6\\xf6\\x36\\x23\\xd9\\xc1\\xde\\xb4\\x1a\\xd1\\x01\\x65\\x1a\\x6b\\x67\\xae\\x52\\x34\\xda\\xae\\x81\\x97\\x9f\\xbd\\x82\\x33\\x89\\x64\\x9a\\x3b\\x0a\\x06\\xc6\\x8b\\x80\\x46\\x8a\\x99\\x1d\\x30\\x07\\x74\\x87\\x51\\xfa\\x69\\x28\\x1d\\xb1\\xb9\\x4d\\x6c\\x16\\x0a\\x1c\\xab\\x50\\x94\\x3c\\xdb\\xb8\\xde\\xa5\\x75\\x09\\x06\\xb3\\xc6\\x59\\x5b\\xb5\\x80\\xde\\xdb\\xfa\\xe5\\x74\\x64\\xcc\\x7a\\x65\\x1d\\x4c\\x51\\xdb\\xb5\\xfa\\x98\\x05\\x97\\xd1\\x76\\x69\"},\n{{0x49,0xc2,0x98,0xa2,0xdb,0x3d,0x25,0x89,0xc9,0xfe,0x16,0xa4,0xe5,0x71,0xe5,0xaa,0x23,0xcb,0xaa,0x77,0x7b,0x86,0x47,0x02,0x90,0xa3,0xed,0xa7,0xa5,0xd3,0xe9,0x6b,},{0xda,0xc5,0x23,0xd6,0x37,0x4c,0x8f,0xf1,0x5f,0xc4,0xdd,0xc7,0x13,0x71,0x5a,0xc3,0x5c,0xf5,0x54,0x7f,0xc1,0xb1,0xb2,0x64,0x6b,0x63,0xfb,0x41,0xa7,0xf2,0x16,0x21,},{0x2a,0x43,0x9c,0x73,0xc9,0x81,0x17,0xfb,0x29,0x52,0xe2,0xb1,0x61,0xf7,0xf3,0xb9,0x9e,0x7d,0x39,0xbc,0x69,0x7f,0x79,0x40,0x75,0xdb,0x7b,0x63,0x4d,0x29,0xf1,0xff,0x57,0x24,0xf6,0x77,0xf8,0x31,0x2a,0xd5,0x15,0xb0,0x97,0xcc,0xa9,0xdf,0xc3,0x0e,0x79,0xee,0x8a,0x7c,0x9d,0xd7,0x28,0xbd,0xd4,0x5d,0xf8,0x59,0xc7,0xbd,0xe3,0x0a,},\"\\x35\\x82\\xee\\xb0\\xd3\\x71\\xdf\\x38\\x5d\\xe8\\x8b\\xaa\\xd3\\x80\\xcb\\x0c\\xdb\\x60\\xea\\xb2\\xba\\xeb\\xb3\\xc7\\x98\\x37\\x75\\x3d\\x08\\xe1\\xcb\\x78\\xc0\\xbd\\x76\\xdd\\x11\\x04\\x45\\x49\\x56\\xd5\\x71\\xce\\xb7\\xe6\\xb5\\x71\\xa5\\x23\\x68\\x35\\xd7\\x84\\xb5\\x0f\\xf6\\x60\\x57\\xb1\\x35\\x95\\xe7\\xd0\\xc8\\xf2\\x5d\\x08\\xae\\x8b\\x54\\xb6\\x12\\x3b\\xa0\\x81\\x51\\xac\\x7d\\xb0\\xc5\\x6a\\x98\\x0f\\x7f\\x0b\\xb3\\x9a\\x54\\xb4\\x37\\xf5\\x48\\x51\\x97\\x99\\x86\\xab\\x13\\x67\\x83\\x5e\\x5c\\x4f\\x3a\\x3b\\x3d\\x76\\x0d\\x38\\x27\\xe7\\x6c\\x56\\x8a\\xe7\\xae\\xbb\\xb6\\x12\\xe7\\x75\\xbd\\xde\\xcc\\xd3\\x34\\xac\\x6b\\xcd\\x32\\x53\\xab\\xc2\\x9d\\x4b\\x7c\\x3f\\x10\\x36\\x26\\x66\\xf6\\xae\\x75\\x08\\x03\\x70\\xa3\\x6c\\xba\\x55\\xdb\\x3a\\x91\\xcb\\x57\\x89\\xe4\\xd6\\xf9\\xef\\xea\\x4d\\xf1\\xdd\\x77\\x30\\xa5\\xe2\\x79\\x60\\xd5\\x3b\\x51\\x21\\x94\\x8c\\xce\\x5a\\xf6\\x53\\xff\\xf1\\xd5\\xb4\\xe5\\xb0\\xa8\\x8c\\x71\\x8c\\x49\\xb3\\x1c\\x79\\x3d\\x88\\xc1\\xcc\\x45\\xab\\x8d\\xa2\\x9d\\x05\\xe9\\x06\\xcd\\x05\\x94\\xb5\\xf6\\x63\\x8c\\x8e\\xc3\\xf1\\x76\\x0b\\xa4\\x23\\xb5\\xab\\x1d\\x08\\xa5\\x87\\x70\\xaf\\xb0\\xf1\\x39\\xab\\xd3\\x49\\xc1\\xbf\\x16\\x0d\\x89\\x02\\x23\\x9c\\xe2\\x4f\\x19\\xb4\\xe1\\xbe\\x09\\x5f\\x7e\\xd1\\x65\\xf3\\x93\\x1e\\x3c\\xbc\\xc3\\x07\\xe9\\xfc\\x5c\\x65\\x80\\x31\\x22\\x8e\\x55\\xcb\\xbe\\xec\\x0d\\x0b\\xcf\\x8f\\x69\\x51\\x54\\xa9\\xee\\xd1\\xbe\\xf3\\x52\\x28\\x78\\x9b\\xfc\\x0d\\x23\\x8b\\x83\\x72\\xd3\\x18\\x32\\x8c\\x13\\x39\\xfe\\xa0\\x88\\x14\\xdb\\x86\\x21\\xab\\xca\\x3a\\xeb\\x82\\x09\\x8b\\x5a\\xa8\\x7b\\xb9\\x8f\\x5e\\x40\\x52\\x2a\\x08\\x88\\x53\\x2c\\x17\\x48\\x45\\x3d\\xb2\\xd2\\xb3\\x94\\x3e\\x4a\\xbb\\x31\\x2d\\xe3\\x19\\xae\\xc4\\x8c\\xc1\\xc9\\x47\\x75\\x97\\x29\\x53\\xfb\\x64\\x96\\xb8\\x16\\x89\\x37\\x62\\x35\\x10\\xcd\\x48\\xc8\\xb2\\x47\\x95\\x6d\\x31\\x68\\x48\\x6c\\x17\\x6a\\xe7\\xa4\\xcb\\x38\\x4e\\xac\\xfd\\xab\\xfa\\xdd\\x9f\\xba\\x30\\xa2\\x3b\\x81\\x1b\\xd7\\x79\\xf3\\xcb\\xa5\\x43\\x38\\xc2\\x8b\\xb3\\x38\\x22\\x38\\xed\\x3b\\x8d\\xd2\\x1b\\xea\\xb2\\xf5\\xca\\xde\\x28\\xc5\\xe0\\x9b\\x31\\xa4\\x54\\x80\\x8a\\x53\\x48\\x12\\x2e\\x3a\\xe3\\x81\\x22\\x96\\xf7\\x86\\x9c\\x38\\x65\\xc3\\xc9\\xd8\\xfe\\x18\\xbd\\x81\\x2f\\x2e\\x60\\xe9\\x14\\x97\\x5c\\xfe\\x1b\\xef\\x8d\\xbb\\x80\\x97\\x00\\x6f\\x0d\\x7c\\xf3\\xfc\\x15\\xeb\\x95\\xc2\\x78\\x54\\xb1\\x43\\x12\\xb8\\x8d\\x52\\x80\\x15\\xaf\\x69\\xfb\\x75\\x05\\xb8\\xf3\\x27\\x03\\xf6\\x4e\\xb1\\xc9\\x58\\xf0\\x46\\xdd\\x25\\x12\\x42\\xf8\\xbe\\xa7\\x46\\x7f\\xc7\\x29\\x1d\\x09\\x5e\\x96\\x96\\xe1\\x1a\\xa4\\x5a\\xbe\\x79\\x24\\xe8\\x56\\x35\\x15\\x35\\xaa\\x07\\x73\\xd3\\xd9\\xe6\\x1c\\xc9\\xa2\\xd8\\x9b\\x5b\\x07\\x74\\xd7\\x64\\x5e\\xe1\\xaf\\x7e\\xb6\\xfc\\xd4\\x40\\xbc\\x69\\xd4\\x3e\\xde\\xaa\\xf9\\x35\\xfd\\x2a\\x52\\x95\\xac\\x19\\xa9\\x7d\\x70\\xaf\\x92\\x98\\x83\\x0f\\x81\\xc0\\xa5\\x09\\xf2\\x42\\xf4\\x73\\x37\\x24\\x78\\xfa\\x58\\x79\\xfb\\x2c\\xb8\\x51\\x10\\x80\\xfc\\x2e\\xcd\\x82\\x59\\xb8\\xc3\\xce\\x9e\\x8b\\x64\\x07\\x61\\xdc\\x79\\x27\\xc3\\x2e\\x7f\\x5b\\xae\\x97\\xa8\\xb8\\xac\\x93\\x56\\x62\\xe5\\xf4\\x5d\\x14\\xca\\xd6\\xd3\\x4a\\xff\\xc9\\xa1\\x94\\x14\\xc4\\x56\\x6f\\x45\\xf9\\x77\\x39\\x67\\x10\\x89\\x4c\\x53\\x99\\xed\\x44\\x80\\xf1\\x8e\\x90\\x95\\x7f\\xaa\\x76\\xcc\\xb5\\x12\\xa2\\xd0\\x75\\x73\\x05\\x8a\\x95\\xb4\\x2f\\xe1\\x81\\x02\\x49\\xd1\\xc8\\x5e\\xc4\\x31\\xa0\\x49\\xd1\\xae\\xcb\\x0f\\x11\\x83\\x79\\xbd\\xc3\\xf1\\xee\\x49\\x0b\\xc8\\xa0\\x54\\xc3\\x2c\\x3d\\xac\\x76\\x59\\x96\\x6c\\xdb\\x66\\xf9\\x95\\xac\\x40\\x3d\\x5e\\x79\\xeb\\x6b\\x25\\xb3\\xf3\\xf6\\x5a\\x6c\\xee\\xc2\\x20\\xd6\\x6c\\x05\\xf8\\xa8\\xa9\\x8b\\x80\\x79\\x9b\\xa4\\xf2\\xc6\\xdb\\xbb\\x4d\\xfb\\x58\\x62\\xc9\\xa4\\x6b\\xca\\x01\\x3e\\xbd\\xfa\\xba\\x74\\x94\\xa3\\x0c\\xe1\\x46\\x06\\xaf\\xc0\\xb0\\xf9\\x93\\x14\\x3f\\xed\\xee\\x78\\x96\\xd9\\xa6\\xbb\\x81\\x49\\x91\\x66\\xed\\x02\\xe9\\x41\\x86\\xaa\\xf3\\x21\\x87\\xae\\xb6\\xe2\\x82\\x50\\x1b\\xca\\x43\\xb5\\x7b\\x7e\\xfa\\x09\\x39\\xc9\\x34\\xbc\\x8f\\xbb\\xd2\\x6c\\x44\\xb6\\x18\\x33\\x5a\\x35\\xc6\\x92\\xff\\x99\\x6a\\x5b\\x95\\xd3\\x27\\xdf\\x9b\\x2a\\x66\\x21\\xb3\\xb0\\xf1\\x90\\xdb\\x1f\\x36\\xd9\\x11\\xd1\\xa6\\x63\\xa4\\xeb\\xf9\\xa2\\x85\\x4b\\xb4\\xf4\\x06\\x10\\x95\\xb6\\x98\\x12\\xc8\\x2c\\x2f\\xfe\\x3f\\x92\\xe9\\xb4\\x4d\\x2e\\xa6\\x31\\x69\\x88\\x1c\\xae\\x84\\x53\\xd6\\xee\\xf7\\xcf\\x69\\xc2\\x5a\\x28\\xb3\\xf8\\xdd\\xc7\\x01\\x48\\xef\\x26\\x72\\x1a\\x3c\\x1f\\x2e\\x62\\xd9\\xd1\\x0c\\xea\\x42\\xfc\\xa3\\xfa\\xcd\\x74\\x67\\x3a\\x4e\\x7f\\x33\\x50\\x73\\x64\\xaa\\x28\\x6c\\x0f\\x38\\xd7\"},\n{{0x82,0x3f,0x0c,0x29,0xfb,0xfd,0xd3,0xd1,0x82,0x8f,0x30,0x55,0xe9,0xec,0x01,0xff,0xd1,0xb5,0xa3,0x75,0x11,0x8d,0xdd,0x7e,0x4e,0x0c,0x43,0x71,0x9f,0x57,0x3f,0xf7,},{0x73,0x12,0x5f,0xc8,0x3a,0xbb,0x8b,0x7c,0x65,0x85,0x59,0xfc,0x12,0x73,0x93,0x23,0x1d,0x03,0xca,0x58,0x46,0xe0,0xc8,0x81,0x18,0xd1,0x3d,0x55,0xca,0x44,0x78,0x9d,},{0xfa,0x74,0x7b,0x6f,0xe3,0x38,0x1a,0xd6,0xbc,0x82,0xa9,0x56,0x43,0xc1,0xf4,0xa2,0x0b,0x76,0xba,0x73,0xbf,0xf0,0x0e,0x63,0x5d,0x64,0x20,0x2d,0x8b,0x0d,0xf0,0x3d,0xbc,0x56,0xb0,0x13,0x8b,0x3a,0x6d,0x41,0x98,0xff,0xaf,0x58,0xcc,0xd3,0xd3,0x88,0xed,0x25,0xeb,0xcf,0x77,0x04,0x43,0xe4,0x1e,0x9d,0x21,0x47,0x95,0x0a,0x30,0x0b,},\"\\x80\\x2c\\x39\\xce\\x7f\\x2a\\x50\\xbd\\x81\\x62\\x2a\\xdd\\x0d\\xf4\\xe0\\xfe\\x03\\xec\\x3d\\x2d\\x30\\x5a\\x45\\xa6\\x16\\x52\\x71\\xed\\x79\\xad\\xd2\\x43\\xb9\\xa0\\x0e\\x52\\x18\\x31\\x92\\xfe\\xb2\\x4c\\x4f\\xdb\\xd2\\x2c\\x80\\x7a\\xe1\\x00\\xef\\xcf\\x16\\x5b\\x9c\\x99\\x61\\x94\\xe0\\x0f\\xa8\\x17\\x76\\x5e\\xa9\\x4a\\x03\\x07\\x0e\\x48\\x66\\x86\\xb4\\x45\\xfc\\xb2\\x63\\xcc\\xfe\\x1f\\x58\\x62\\xf3\\xb8\\x4b\\x10\\xf3\\x90\\x08\\x0b\\xfc\\xae\\x44\\x7a\\xe0\\x06\\x97\\x42\\xb8\\x61\\x8f\\xa9\\x57\\x5f\\x7e\\x63\\x7a\\xd5\\x4e\\x83\\x4c\\xaf\\x03\\x94\\xd7\\x45\\x03\\x2c\\xe1\\xe2\\x55\\xc0\\x27\\x32\\x50\\xf1\\x50\\x4b\\x37\\xa0\\xad\\xd9\\x4a\\xa2\\x45\\xc7\\xde\\x52\\xc8\\x0e\\x05\\xd6\\xe0\\xa9\\x6a\\x14\\x41\\x05\\x43\\x82\\x6a\\x49\\xe9\\xb9\\x45\\x62\\x6d\\x4e\\x89\\xf5\\x50\\x27\\x16\\x3d\\x4b\\xd6\\xd0\\xe9\\xbd\\x1a\\x24\\x77\\xf6\\x7d\\x3d\\x56\\x68\\xa4\\x2e\\x94\\xd8\\xb6\\x11\\x93\\xd8\\x21\\xe0\\xd1\\xb2\\x30\\xfc\\xad\\xc5\\x36\\x13\\xb7\\x5b\\x02\\xcf\\xb8\\x15\\x84\\x56\\x07\\x7e\\xbd\\xf5\\xa5\\xf0\\x0c\\x3b\\x5b\\x18\\x63\\x70\\xca\\xfe\\xc4\\xa2\\x1c\\x69\\xdc\\xe1\\xf0\\x1e\\xfe\\xf2\\x3c\\x37\\xab\\x90\\xf8\\x58\\x23\\x8a\\xef\\xbe\\x21\\x2b\\x55\\x6d\\x2f\\x07\\x34\\x06\\x55\\x9f\\x1a\\x51\\xd8\\x4e\\xff\\xfd\\xce\\x07\\xb0\\x0d\\x01\\xbb\\xf3\\x37\\x71\\xcc\\x12\\xc9\\x60\\xac\\x89\\x36\\x5a\\x9c\\x82\\xc5\\x23\\x43\\xf7\\x60\\x33\\x81\\xb8\\x90\\x23\\xc1\\xa6\\xe7\\x02\\xa5\\xb1\\xe4\\xbd\\x19\\x1e\\xa6\\x97\\x0b\\x5e\\xa4\\x51\\xea\\x05\\xb5\\x9b\\xf8\\x3e\\x55\\xf2\\x9a\\x1f\\x80\\x32\\x12\\xbb\\x2e\\x58\\xf0\\x61\\x63\\x33\\xd9\\x11\\x47\\x08\\x52\\x9e\\x8b\\x6c\\x60\\x81\\xde\\xeb\\x7c\\x29\\x9a\\x5a\\x2a\\x53\\xcc\\xd2\\x4e\\xd5\\x8f\\xfb\\xfe\\x50\\x3d\\x80\\x61\\x4a\\xdb\\x05\\xca\\x11\\xcf\\x29\\xde\\xd0\\x09\\x04\\xea\\x12\\x39\\xf8\\x2b\\xa4\\x0c\\x79\\x3e\\xbc\\x33\\x97\\x75\\xf8\\xb0\\xfe\\x39\\x01\\xf5\\x48\\x2e\\x31\\x0c\\x79\\x3c\\x6e\\x2c\\xf0\\x1d\\xc1\\x57\\x72\\x7a\\xf2\\x38\\xf4\\x9c\\x98\\x62\\x80\\x4b\\x04\\x75\\x51\\xfd\\x88\\x6f\\x4a\\x48\\x99\\xe2\\x2a\\x6a\\x65\\x70\\x11\\x17\\xa3\\x85\\x80\\x55\\xbb\\xfe\\x96\\x6e\\x37\\x0e\\x73\\x3e\\x17\\xef\\xad\\xa2\\x85\\x9f\\xd8\\xff\\xa9\\xe0\\x1f\\xce\\x56\\x06\\xa2\\x55\\x36\\x76\\x78\\xf4\\xbd\\x4e\\x21\\xe5\\xda\\x0f\\xef\\x30\\x75\\x7f\\x34\\xe3\\x89\\xf7\\x6b\\x7d\\x57\\xc4\\xe4\\x10\\xa0\\x02\\xe9\\x00\\xe4\\x8f\\xb2\\x18\\xc8\\xf2\\x77\\x8f\\x14\\x8f\\xee\\x56\\x96\\x5f\\x5b\\x47\\x3e\\x25\\x25\\x6c\\x23\\xa7\\xaf\\x19\\x83\\x42\\xcf\\x3e\\xf0\\x2b\\x84\\xdf\\x2c\\xd5\\x80\\x0a\\x46\\x1c\\x1b\\x07\\xbd\\xa2\\xf4\\x26\\x28\\xa6\\x8a\\xd2\\x9d\\xbb\\x82\\xa4\\x70\\x96\\x7d\\x73\\x02\\xc9\\x93\\xb2\\x34\\x13\\x6e\\x5b\\xf2\\x55\\xe6\\x24\\x8b\\x10\\x2c\\x2b\\xff\\xb2\\x01\\x72\\x37\\x1f\\x1c\\xa3\\xe1\\x0b\\x08\\x10\\xe8\\x64\\x95\\x03\\x54\\x6d\\x9a\\x73\\x1c\\xf1\\x9b\\x08\\x33\\x57\\xd4\\xcf\\xec\\xc8\\x9b\\xed\\xb5\\x35\\x06\\xfe\\x19\\x9b\\x67\\x03\\x91\\xa6\\x20\\x06\\x9a\\x30\\x81\\xf2\\x53\\xb4\\xd7\\x90\\x88\\x0a\\xa2\\x3b\\x53\\xe9\\x7c\\x75\\xdc\\x0c\\x36\\x05\\x40\\xe5\\xb0\\xa3\\xef\\xb1\\xac\\xcf\\xfd\\x13\\x74\\x14\\xff\\x84\\x23\\xd5\\x46\\x46\\xfc\\x56\\xba\\x5f\\x53\\xbd\\x84\\xc7\\x26\\x7c\\x2f\\x7e\\xe3\\xe3\\x76\\x07\\x54\\x41\\x54\\x36\\x5f\\x9f\\x85\\x08\\x1d\\xd7\\xd2\\xee\\x75\\xd3\\x02\\x27\\x5c\\x79\\x9e\\xf2\\x42\\x7c\\xa6\\x49\\x63\\x55\\xdc\\xda\\x1d\\x44\\xe0\\xd9\\x77\\xbf\\x68\\xdb\\x30\\x06\\x50\\x0a\\xe3\\xf4\\x00\\xd6\\xa8\\xc7\\xcf\\x47\\x05\\x7d\\x4f\\xc8\\x7e\\xee\\xcb\\x02\\x11\\x6b\\x73\\xee\\xd6\\xce\\x1f\\xcc\\xef\\x6e\\x8f\\xb8\\xae\\xa3\\x63\\xb2\\xf6\\xf5\\x32\\x2a\\x5f\\x07\\x53\\xf4\\x58\\x99\\x53\\x76\\x46\\xd5\\x86\\x51\\xbe\\x90\\x37\\xbf\\x91\\x42\\x3c\\x29\\x86\\xf5\\xcc\\x2b\\xcb\\xce\\x4f\\xae\\xc9\\x03\\x49\\x8b\\x40\\xfc\\x2d\\xea\\xb6\\x60\\x3d\\x6e\\xea\\x58\\x5d\\x27\\x20\\xd2\\x1b\\xb2\\x72\\x2b\\xc0\\x5b\\x35\\xae\\xd2\\xbc\\xc0\\xe8\\x04\\xfe\\x9d\\x23\\x9f\\xaf\\xda\\x7d\\xda\\xfe\\x1d\\x78\\x60\\xab\\xb0\\xfb\\x28\\xf4\\xbf\\x2b\\x1f\\xbb\\x62\\xa7\\x86\\xe4\\x55\\xbe\\x02\\x4b\\x19\\x3b\\x78\\x30\\xbe\\x0d\\x55\\x8f\\x02\\xc9\\xf3\\xae\\x31\\xdc\\x10\\x7e\\xe9\\x42\\x1d\\xc5\\xf0\\xb0\\xf8\\x94\\x02\\xb7\\x1a\\x45\\x81\\x40\\x15\\x36\\xbc\\x47\\x30\\x85\\x06\\xd9\\x69\\x39\\xa2\\x06\\x36\\x27\\x44\\xe2\\x7d\\xde\\x94\\x4f\\x40\\x96\\xa1\\x2b\\x5f\\x63\\xda\\xb6\\x4d\\x04\\x14\\x84\\xd3\\xfd\\x91\\xa6\\x2c\\x2f\\x0e\\xf9\\xae\\x78\\x74\\x22\\xeb\\x27\\xfe\\xd0\\x80\\x2e\\x25\\xf9\\xbc\\x77\\x5c\\x49\\x15\\xa8\\x37\\xfe\\x3e\\xb7\\xb9\\xd5\\x84\\x3e\\x4d\\x82\\x10\\xc6\\xb4\\x94\\xb6\\x12\\x81\\x63\\x7a\\x6b\\xe3\\x20\\x52\"},\n{{0x65,0x67,0x66,0x33,0x37,0x42,0x14,0xc4,0xac,0x4b,0x7b,0xce,0xa9,0xf1,0xcc,0x84,0xb1,0xb7,0xe7,0x94,0x11,0xe3,0x10,0x52,0x5a,0xce,0x38,0x5f,0x45,0x66,0xc1,0xd5,},{0x0e,0x6e,0xc5,0x80,0x1d,0x8b,0xd6,0xb1,0xeb,0x42,0x14,0x21,0xa1,0x40,0x8f,0x13,0x4c,0xf7,0x12,0x33,0x8e,0x0f,0xfc,0x24,0xcd,0xcc,0xdc,0x4f,0x7f,0xa3,0x1d,0xbe,},{0xe0,0xb8,0x67,0xc9,0xdb,0xda,0x35,0x32,0x34,0x33,0xc0,0x46,0xe0,0x83,0x0c,0x25,0x1b,0x43,0x46,0xc5,0x39,0x59,0x72,0x28,0x6b,0x3a,0x72,0x31,0x0e,0xd4,0x52,0x6e,0x54,0x5d,0xc0,0x9d,0x39,0x18,0xf2,0xeb,0x99,0x20,0xbc,0x9b,0x24,0x1e,0x90,0x50,0xd8,0x48,0xd3,0x83,0x02,0x88,0x65,0x15,0x91,0xf9,0x36,0xd3,0xba,0xe4,0x53,0x01,},\"\\x9d\\x62\\x2c\\x20\\x67\\x87\\x69\\x40\\x93\\xc6\\xf2\\x9f\\x93\\x61\\x9f\\x21\\xbb\\x64\\xc0\\x39\\x41\\x6d\\x20\\xdc\\x70\\x8a\\x08\\x4a\\x9d\\x2e\\x49\\x0c\\xf5\\x65\\x8e\\x13\\xd6\\x2c\\xb0\\xd2\\x1e\\xab\\x00\\xe4\\x2d\\x85\\x1b\\xc6\\xec\\x75\\xda\\xf4\\x05\\xd2\\x37\\x32\\x46\\xee\\xa4\\x15\\xe8\\x66\\x29\\x1b\\xab\\xf7\\x64\\x97\\x68\\x0a\\xaf\\x04\\x42\\x5a\\x42\\x55\\x2b\\x10\\x7d\\x58\\xcd\\x18\\x56\\x1c\\x8c\\x94\\x83\\xf7\\x40\\x74\\x4c\\xbf\\xa6\\x05\\x4c\\x1b\\x12\\x6f\\x5a\\x76\\x65\\x9a\\xc1\\x9d\\xdd\\xad\\x4a\\xb5\\xa0\\x91\\x55\\xd8\\xc0\\x50\\xb5\\x35\\x4e\\x06\\xa4\\xdd\\x3e\\xe3\\xa6\\xf9\\xc9\\x1e\\x8b\\x4c\\x7a\\xf2\\x74\\x96\\x64\\xe7\\xab\\xe9\\x70\\x61\\x58\\x9e\\x15\\x3c\\x58\\xe2\\x7c\\xf2\\x99\\xa2\\x5f\\x2b\\x53\\x0c\\x06\\x07\\x31\\xec\\x0f\\x43\\x66\\xbd\\x1d\\xeb\\xeb\\x4d\\x4e\\x91\\x2e\\x76\\xe5\\x08\\x53\\x4d\\x43\\x3e\\xc4\\x8f\\x96\\xb6\\x2e\\x15\\x0d\\xe9\\x39\\x63\\xa1\\xb3\\xe6\\xc8\\x09\\x1b\\x49\\x5a\\x96\\x51\\x8c\\xe3\\xd3\\xb9\\xa8\\xdb\\xdc\\x2a\\x13\\xfd\\xd0\\x77\\xf2\\x23\\x1d\\xe8\\xd7\\x6f\\x56\\xd9\\xab\\x1c\\x2f\\x9e\\xfa\\xbc\\xe4\\x63\\x83\\x64\\xf8\\xfb\\x2a\\x2c\\x68\\x3c\\xa8\\x19\\xb7\\x03\\xab\\x45\\x3b\\x11\\xd3\\x7a\\x69\\xfa\\x4b\\xcb\\x80\\x23\\x98\\x08\\x34\\xf7\\xb9\\x02\\xad\\x18\\x19\\xfc\\x02\\x92\\x12\\xfd\\xea\\x0a\\xbf\\x11\\xde\\xc8\\x8c\\x55\\xd6\\x8e\\xf8\\x7a\\x26\\xdb\\xb1\\x5d\\xc3\\xd3\\xdf\\xbc\\xdd\\xdd\\x5e\\xd7\\x1b\\xe8\\x6f\\x32\\xc7\\x6e\\xe2\\x22\\x1d\\x92\\x43\\x68\\x3d\\xf9\\x51\\x65\\x64\\xb2\\x6b\\xab\\x5c\\x84\\x5d\\x4d\\xfe\\x0a\\xdc\\xc7\\xcb\\x9f\\xe1\\xee\\x2c\\x05\\x1a\\xf5\\x90\\x8c\\xe0\\xcc\\x3a\\x90\\x90\\x4d\\xbc\\x0d\\x36\\x80\\xed\\x49\\x92\\xf4\\x6c\\xe2\\x5c\\x2e\\xe8\\x51\\xc4\\x14\\xf0\\x18\\x7d\\x89\\x3e\\x5c\\x3b\\x01\\x89\\xa7\\xbb\\x68\\x93\\xd6\\x83\\xf5\\xe3\\x39\\x4c\\xc0\\x46\\x29\\x9a\\x16\\xa1\\xc1\\xb5\\x69\\x59\\x33\\xa8\\x9b\\xb1\\x30\\x30\\x85\\x5b\\x81\\xb3\\xc7\\x46\\x85\\xf7\\x19\\xde\\x01\\x60\\x57\\x5a\\x0f\\xf0\\xa9\\x1f\\xd9\\x43\\x47\\xb8\\xbc\\xbe\\x12\\x5d\\x1d\\x3f\\x9c\\xe7\\x72\\xa8\\x12\\x6e\\x00\\xf5\\x63\\xb3\\x18\\x96\\x56\\xd5\\x52\\x2c\\x18\\x7a\\xb8\\x31\\xa7\\xad\\xe7\\xac\\x06\\xfd\\xca\\xc7\\xf1\\xd4\\x58\\x82\\xe5\\x1f\\x9b\\xf5\\xb4\\x4a\\x2d\\xab\\xa4\\xa5\\x3d\\xbb\\x31\\x97\\x0b\\x4a\\x0f\\x12\\x72\\xfe\\x14\\x08\\x7e\\x0c\\x3c\\x7e\\x45\\x42\\x31\\x2f\\xe7\\x4d\\x76\\x7f\\x21\\xe7\\xea\\x48\\x7d\\x52\\x84\\x28\\x4f\\x46\\xf2\\x0f\\x32\\xc5\\xb1\\x6e\\x1e\\x0a\\xc8\\xd7\\x96\\xab\\x2f\\x80\\xb3\\x44\\xe7\\xa8\\xd8\\x4d\\x5d\\xe8\\x23\\xa5\\x08\\x97\\x75\\x2d\\xc5\\x49\\xa4\\x8f\\xc1\\x0b\\xcd\\x43\\x6a\\x7a\\x93\\xe9\\x7c\\xd0\\x5d\\x78\\x30\\x13\\x8f\\x32\\x38\\x79\\x68\\x0c\\x34\\x3c\\x16\\x46\\x7d\\x26\\x4d\\x74\\x9b\\xf4\\x5e\\x40\\xf3\\x9f\\xbc\\x3a\\x00\\xc4\\x3b\\x00\\x69\\x3b\\x01\\x56\\x76\\x8f\\xf2\\xe3\\xf8\\xad\\x9e\\xb6\\x40\\x50\\x22\\xf5\\xca\\xda\\x66\\x94\\xe8\\xa3\\x3c\\xdc\\x59\\xc6\\x67\\x3c\\x44\\x11\\x72\\x44\\xeb\\x03\\xfd\\x7f\\xd6\\x75\\x93\\x0c\\x29\\x4e\\xdd\\x29\\x40\\xf5\\xf1\\x80\\x95\\x3d\\x91\\x0c\\x55\\x48\\x5b\\x20\\x57\\xae\\x0c\\x93\\x02\\xf4\\xa8\\xe8\\x31\\xa5\\x53\\x0e\\x3c\\xbb\\xf6\\xf4\\x72\\x22\\x40\\x83\\xa9\\x52\\xa8\\x39\\x0a\\xb0\\x0d\\xc0\\xf6\\x9d\\xfd\\x88\\x0e\\xea\\x2d\\x73\\x9d\\x21\\x8d\\x6a\\x66\\xf2\\x37\\xf1\\x0d\\x44\\x01\\xaa\\x75\\x8f\\xf8\\x12\\x0c\\x0a\\xe2\\x76\\x61\\x27\\x84\\x90\\x24\\xf5\\xa4\\xcc\\x57\\x4a\\x5b\\x02\\xb9\\x35\\x96\\x68\\x12\\xcd\\x1f\\xb6\\xd7\\x9d\\x0c\\x4f\\x59\\xff\\x80\\xf0\\x35\\xa0\\xb1\\x09\\xcc\\xcb\\x22\\xfb\\x08\\x53\\x5b\\x87\\x41\\x49\\xed\\xf2\\xa0\\x97\\x0c\\x14\\x88\\x84\\x27\\xd0\\x7d\\x1e\\xaf\\xa6\\x84\\xa6\\xd3\\x45\\x4e\\x49\\xb2\\x25\\x18\\x4c\\x6b\\x99\\x3e\\xc8\\xdd\\xb8\\xb5\\xa3\\x5e\\xe4\\x5f\\x87\\xf6\\x92\\x66\\xd4\\x90\\x96\\xa3\\x17\\xd8\\x6a\\xde\\x27\\xf4\\x52\\x9f\\xe7\\x23\\x64\\xd0\\xb9\\x58\\x00\\x72\\x99\\xd9\\xde\\x87\\xd6\\xff\\x9f\\xb0\\x4d\\x57\\x3a\\xea\\x46\\xba\\xc8\\xeb\\x76\\x47\\x52\\xeb\\x46\\x5c\\xaa\\xab\\xa6\\x89\\xa6\\x46\\x0c\\x11\\x07\\x30\\xbd\\xd0\\x8b\\x16\\x89\\xde\\x7b\\x05\\xde\\x59\\xaf\\x9f\\xe2\\x44\\xac\\x36\\x3e\\x95\\xc9\\x8b\\x66\\x93\\x59\\xaf\\x90\\x31\\xa3\\xa9\\x3b\\xa6\\x31\\xab\\xf1\\xf6\\x1d\\x20\\xef\\x7f\\xc6\\x88\\x3b\\x48\\x40\\xfc\\x92\\x67\\x12\\xe1\\x3d\\x87\\x4b\\x72\\x2f\\x6a\\x79\\xb1\\x60\\x70\\xc0\\x31\\x13\\x25\\xe9\\xa7\\x0f\\xcd\\x86\\x91\\x6c\\xfa\\x1d\\xa7\\xf9\\xd0\\x56\\x3a\\x22\\xfe\\x9b\\xfe\\x85\\x4b\\x0c\\x18\\x6c\\x86\\x63\\xb0\\x61\\xb6\\x5b\\xc0\\x71\\xe8\\x39\\x93\\x8d\\x8f\\xdd\\x7c\\xf8\\xf6\\x95\\x2a\\x64\\x67\\xfa\\xd8\\xe5\\x84\\x90\\xed\\x2b\\x26\\x81\\x33\\x01\"},\n{{0xd2,0xed,0xed,0xcd,0x85,0x32,0x06,0xcb,0xf5,0x9b,0xd7,0x4a,0x25,0xa3,0x03,0xfa,0x2d,0x6c,0x39,0x36,0xbb,0x48,0xeb,0x42,0xf6,0xd9,0x00,0xcb,0xe8,0x07,0x72,0xbe,},{0x22,0x44,0x11,0x1e,0x2e,0x76,0x9e,0xab,0x81,0x87,0x1e,0x06,0xc5,0x80,0x17,0x8c,0x23,0x5c,0x7b,0xf4,0xa5,0x2d,0x2e,0xcc,0xe1,0x18,0x87,0xa9,0xb4,0x6c,0x45,0xc8,},{0xbe,0x3c,0x2b,0x56,0x7f,0xe8,0xc2,0x08,0xc9,0x8e,0x71,0x97,0x11,0x7e,0xb0,0x1b,0x3c,0x19,0x7b,0xdf,0xc8,0x58,0x56,0x2d,0xc5,0xcd,0x90,0xf8,0xe2,0xc0,0x35,0x70,0x42,0x30,0x39,0x95,0xba,0xba,0x2f,0x40,0xb7,0x34,0x5c,0x56,0xdb,0x0b,0x46,0x25,0x58,0x0a,0xa8,0xdc,0xc4,0x8d,0xf6,0x01,0x9d,0x23,0xa8,0x38,0xea,0x71,0x72,0x02,},\"\\x80\\x70\\xbc\\x0d\\xb0\\x89\\xa5\\x92\\x54\\x46\\x01\\x9b\\x7e\\x40\\x3c\\x74\\xec\\x78\\x90\\x3e\\x4b\\xd5\\x4b\\xc1\\xd0\\x8a\\x54\\xa6\\xf0\\xed\\x75\\xa8\\x5b\\x76\\x3f\\xf5\\x4d\\xc3\\x3a\\x26\\x00\\xcc\\xb4\\x57\\xfd\\xba\\xea\\xe5\\x48\\x47\\x7f\\x6d\\x69\\x47\\xae\\x26\\xde\\xb7\\x1e\\xac\\xd1\\xd2\\xd6\\x22\\x82\\xa0\\x83\\x84\\x3b\\xe4\\xe5\\x93\\x1d\\x91\\xc9\\x3b\\x62\\x82\\xc5\\x88\\x07\\xce\\x8f\\x0d\\x88\\x0b\\x14\\x38\\xda\\xd8\\xfd\\xcb\\xa8\\x61\\x2d\\xf7\\x3b\\x9f\\xaf\\xf3\\xa9\\xf7\\xdb\\x30\\x05\\x25\\x05\\x36\\xaa\\xbd\\x98\\xae\\x02\\x7a\\x89\\x5e\\x10\\xb5\\xcb\\x7b\\x69\\x87\\x5c\\x0f\\x39\\x93\\xaf\\x24\\x51\\x92\\xf4\\x39\\x3e\\x9c\\x4d\\x34\\x05\\x74\\x6e\\x31\\x1d\\x3a\\x91\\x44\\x7f\\xcd\\xbd\\x73\\x06\\xb6\\x02\\x0c\\x93\\x3b\\xba\\xb9\\xe3\\x9d\\x13\\x49\\x16\\x25\\x03\\x5c\\x9c\\x63\\x6e\\xfa\\x17\\x39\\xc3\\x58\\x87\\x10\\xa8\\x79\\xd9\\xe3\\xce\\x17\\x64\\x61\\x6f\\x10\\x82\\xe8\\xdf\\xf5\\x75\\x59\\xc3\\xf5\\xa5\\xd7\\x6d\\xd3\\x01\\x12\\x4f\\xa4\\x89\\xfb\\x94\\x9e\\x9e\\x03\\x9d\\xd4\\x62\\x1b\\xda\\x60\\xf0\\xb8\\x6b\\x31\\x1e\\x78\\xed\\x0a\\xb3\\xb5\\x28\\x96\\x50\\x44\\xb2\\x3d\\x78\\xee\\x2f\\x81\\x06\\x1f\\x8e\\xdb\\xd6\\x92\\x99\\x33\\xd1\\x8c\\x02\\x07\\xde\\xc4\\xb5\\xb6\\xb2\\xfa\\x4a\\xca\\x27\\x47\\xcf\\x5b\\x11\\x0d\\xf0\\x0b\\x0c\\x98\\x27\\xbd\\xb3\\xd9\\xdb\\x2c\\x7b\\x03\\x28\\xd4\\x0d\\x99\\xe1\\xf6\\xb2\\x28\\xe4\\x0d\\xad\\xae\\x78\\xae\\xda\\x02\\x89\\xb6\\xa2\\x3d\\x4e\\xb5\\x83\\x70\\x88\\xe5\\xd8\\x84\\x13\\x63\\x2c\\xcc\\x22\\xe2\\x1a\\x73\\x76\\x8c\\x67\\x32\\x01\\xe9\\xa8\\xd8\\xdc\\x6e\\xb6\\xf7\\x39\\x7f\\xed\\xbd\\x39\\x8d\\x26\\xf9\\x69\\x2c\\xa7\\x2f\\x6d\\x6c\\xf0\\x56\\xaa\\xac\\x50\\xac\\x2f\\x3b\\x26\\x6d\\xbe\\x5e\\x7b\\xe7\\xa0\\x24\\x77\\x45\\x78\\xea\\xd5\\x85\\x24\\x5d\\xaa\\xa7\\x3e\\x0a\\xaf\\x83\\x3c\\x07\\x0b\\xa4\\xb2\\x04\\x4c\\xcb\\x5e\\x5c\\xd1\\x6f\\x9c\\x0a\\xd9\\x2e\\xa8\\x44\\x80\\x55\\xdd\\x82\\x8c\\x79\\x93\\x5a\\xa6\\xc0\\x74\\x1f\\x9e\\x2b\\x81\\x03\\x24\\xfd\\xc6\\xe6\\x1e\\x84\\x2f\\x94\\x57\\x22\\x68\\xbf\\x7d\\x5a\\xdf\\xa7\\xab\\x35\\xb0\\x7f\\xb1\\x9e\\x78\\x15\\xa8\\xaa\\x5d\\x81\\x13\\x01\\x30\\xac\\x5c\\xda\\x8a\\x47\\x51\\xee\\x76\\x03\\x8c\\x0a\\x6b\\xc2\\xfa\\xba\\x4c\\x49\\x7e\\x62\\xb9\\xf1\\xf1\\x94\\xb8\\xa5\\x99\\xb0\\x77\\x01\\x81\\x4b\\x6d\\xfb\\x7d\\x84\\xbc\\xdd\\x5b\\x7b\\x5b\\xc2\\x24\\x9f\\x1d\\x38\\x45\\xef\\xf9\\xef\\x8c\\xc7\\x32\\x85\\x35\\xd7\\x0d\\x53\\xc7\\xaa\\x0c\\x73\\x05\\x90\\x1d\\xe7\\xc4\\xed\\x2f\\xe1\\x83\\x82\\x65\\xd4\\xa4\\x17\\xb8\\x76\\xad\\xbd\\x88\\xeb\\x93\\x3f\\x27\\xc9\\xaa\\x48\\xc8\\xc7\\xe3\\x4e\\x48\\x14\\x7c\\xcf\\xfb\\x2f\\xb6\\x1a\\x34\\x8f\\xea\\x13\\xef\\x67\\xcd\\xf2\\xe0\\x39\\xe3\\x3f\\xd8\\x9e\\x2c\\x1a\\xd2\\xa4\\x25\\x4e\\x3b\\xf7\\x48\\x45\\x2a\\xa8\\x3e\\xfe\\xca\\x46\\xe7\\x80\\xed\\xe1\\xd1\\x3f\\xf4\\xcc\\x5e\\x7d\\x01\\xed\\x45\\xeb\\x8c\\x74\\x81\\x8d\\x48\\x60\\xaf\\x47\\x59\\xa8\\x3e\\x14\\x88\\x96\\xab\\x68\\x73\\x43\\x95\\x76\\x0e\\x00\\x14\\x6b\\x79\\x3c\\x3e\\x72\\x89\\x8a\\xa0\\xb3\\xc5\\xe0\\xc1\\xd3\\xfd\\xf1\\x21\\x58\\xd2\\xe8\\xff\\x11\\x23\\xa3\\xa0\\xc6\\x4c\\xf6\\x37\\x4a\\x7f\\x44\\xf1\\x1a\\x57\\x5e\\x48\\xa3\\x79\\x18\\x1b\\x30\\xa4\\x86\\x5c\\xfd\\x02\\x2a\\xa9\\x83\\x27\\x56\\x35\\xce\\x4f\\x2c\\xc4\\x0b\\xfe\\x06\\x60\\x67\\xec\\x4f\\xe2\\x41\\xfa\\x04\\x7b\\x55\\x27\\x0a\\x1a\\xd0\\x77\\x6c\\x5f\\x96\\x86\\x10\\x14\\xcb\\xf4\\x0a\\x04\\x32\\xc5\\x59\\xf2\\x2d\\x79\\x34\\x2b\\x79\\xf8\\xe7\\x04\\x2d\\xcc\\xfb\\x1c\\xf5\\x0f\\x83\\x08\\x5f\\x80\\x63\\xfb\\x18\\x87\\xed\\x2d\\xfc\\x9d\\xb7\\xef\\xc9\\x6d\\xaa\\x0f\\xf2\\xbc\\x4f\\x52\\x33\\x5b\\x02\\x11\\x2d\\x16\\x39\\x2e\\x13\\x4c\\x02\\x23\\xde\\x45\\x8f\\xc0\\x72\\xcc\\x22\\xbf\\x9e\\x7e\\xab\\xc0\\x62\\x08\\x18\\x0a\\x57\\xe7\\xce\\x48\\x05\\xee\\x4e\\x0f\\xc0\\x15\\x84\\x09\\x98\\xfd\\x56\\x86\\x44\\xa0\\x38\\x6b\\x3d\\x8e\\x7d\\xda\\x52\\xab\\xf6\\x4f\\x7d\\xd0\\x08\\x68\\xfc\\x84\\xf0\\x36\\xca\\x8a\\x78\\xe9\\xba\\x81\\x71\\xca\\x90\\x26\\x7c\\x74\\xe6\\x15\\x9a\\xca\\xc7\\xaf\\x5b\\xf2\\x37\\x59\\xab\\xc5\\x3d\\x82\\xe7\\x93\\xdb\\x87\\xfd\\xad\\xe1\\x36\\x33\\x54\\xff\\xdc\\xb0\\xbd\\x4c\\xc9\\x21\\x3f\\x5c\\x84\\x54\\x45\\xfc\\x64\\x9b\\x2a\\x1f\\x32\\x9f\\x9d\\x41\\xd8\\xa0\\x31\\xab\\x46\\xb4\\x72\\x16\\x0f\\x03\\x43\\x4b\\x4b\\x6b\\xc5\\xa4\\x01\\x52\\x4d\\x61\\x79\\xad\\x66\\xf9\\xe2\\x21\\xc9\\x06\\x7f\\xc8\\x7f\\xe4\\xa7\\x7e\\x21\\xe8\\x02\\x3b\\x61\\x69\\xeb\\xf1\\x09\\x0c\\xd5\\x56\\xa9\\xbe\\x50\\xb9\\x18\\x7f\\xe4\\x60\\x7c\\x59\\x25\\xe6\\x0b\\x41\\x4f\\x6a\\x5c\\xbf\\x8a\\xfa\\x15\\xed\\x0e\\xb3\\x4b\\x67\\xb4\\xc9\\xc5\\xd5\\x4a\\xdb\\xe6\\x40\"},\n{{0xb5,0x69,0xf7,0xc1,0xaa,0xdf,0x56,0xed,0x1b,0x5f,0xa1,0xb6,0xfa,0xd6,0x48,0xd0,0xdc,0x54,0x4f,0xf8,0xfc,0xd1,0x73,0x78,0x0d,0xe4,0x1a,0x7d,0x4d,0xe6,0x0c,0xb6,},{0x9e,0xff,0xa4,0xae,0xd9,0xc6,0x58,0xe4,0x34,0x60,0x71,0x43,0x44,0x68,0xa0,0xb8,0xa0,0x4e,0xcf,0x78,0x41,0x69,0x9d,0x63,0xe8,0x88,0x7c,0xe2,0x05,0x57,0x0c,0xea,},{0x2e,0x32,0xba,0x05,0x56,0xbd,0xe9,0x74,0xd7,0xa1,0x9b,0x3b,0x9a,0x1e,0x92,0xf1,0x83,0x92,0x4c,0x4b,0x74,0xc5,0xd7,0x51,0xb5,0xab,0x3d,0x00,0x79,0x67,0x01,0x6e,0xc0,0x3a,0xfe,0x91,0xd7,0x42,0xfb,0x22,0xb6,0x3e,0x5e,0x55,0xb2,0xfc,0xb6,0xc6,0x1a,0x46,0xe9,0xdc,0xe7,0xfe,0x9f,0xa3,0x0b,0xbf,0x66,0xae,0xf4,0xb8,0x5f,0x09,},\"\\x7c\\x5a\\xa4\\xdc\\x80\\x78\\xaa\\x77\\xe8\\xb3\\xb7\\xfe\\xe6\\x10\\x84\\xcf\\xad\\x76\\x47\\x62\\xf1\\xef\\x26\\xd8\\xde\\xb7\\xf2\\xf3\\xb1\\x86\\xdf\\xc7\\x72\\x48\\x75\\x50\\x19\\x78\\x45\\xfb\\xa2\\xf4\\xc2\\x3c\\x83\\x5b\\x9b\\x58\\xdd\\x0b\\x63\\x5c\\x64\\x91\\x35\\x13\\x7f\\x24\\x8f\\x5e\\xf7\\x13\\x56\\x4d\\xe3\\xc9\\x66\\xef\\xa5\\xf6\\xdb\\x6b\\xea\\x9e\\x30\\x97\\x07\\x49\\xf8\\xe8\\x72\\xd8\\xd7\\xae\\x45\\x35\\xb7\\x5e\\x17\\x6e\\xa0\\x48\\x9b\\x91\\x5f\\x34\\x71\\xd8\\x27\\xeb\\x5b\\x44\\x45\\x86\\x48\\x8c\\xfc\\x3f\\xa6\\xa4\\x50\\x82\\xda\\xcb\\x82\\x64\\x95\\xe5\\x0a\\x3b\\x5d\\xc6\\xbb\\x93\\x0a\\x33\\x1f\\x30\\xc3\\x85\\xbc\\x3b\\x24\\xce\\x70\\xb8\\x95\\x96\\xdb\\x6b\\xfb\\x68\\x7d\\x99\\xa5\\x81\\x98\\x7c\\xa8\\x76\\xea\\x0e\\x75\\x76\\x96\\xb3\\xfc\\x03\\x77\\x9a\\x65\\x81\\x30\\xc4\\x10\\xb3\\x44\\xed\\xac\\xc4\\x27\\x7d\\x44\\x84\\x54\\x99\\xd6\\x78\\xe1\\x41\\x4f\\x15\\xf3\\x6e\\x16\\x63\\x35\\x18\\x95\\x69\\xce\\xf3\\x56\\x7a\\xc2\\xe3\\xab\\x82\\x1c\\x91\\xc9\\x32\\x74\\xf5\\xc2\\x8a\\x5d\\x1f\\x7c\\x1b\\xf5\\x09\\x9b\\x10\\xf8\\x4e\\xcb\\x13\\xa4\\xe4\\x53\\x8f\\x66\\x49\\xbf\\x74\\xf7\\x39\\x4b\\x70\\x3e\\xf5\\x36\\x49\\xd8\\x15\\x16\\xcb\\x1d\\xb5\\x21\\x41\\x60\\x65\\xcf\\x9f\\x27\\x6a\\xb8\\x0c\\x93\\x08\\x89\\x7a\\x27\\xdf\\xe3\\x7e\\x5e\\x14\\x2f\\x18\\x19\\xb8\\xd3\\x48\\xdf\\x50\\xa0\\x46\\xa1\\x28\\x88\\xe3\\xb7\\xf2\\xdc\\xc7\\x0f\\x52\\x18\\xd1\\x5e\\xbb\\x9a\\xa7\\x29\\x1a\\x1a\\x92\\xac\\x44\\x5c\\x51\\xd3\\xa5\\x3d\\xd6\\x91\\xef\\xff\\xcf\\x5a\\x01\\xe8\\x76\\xa7\\x2a\\xa4\\x81\\xeb\\x4f\\x12\\x1a\\x07\\x23\\x97\\xd8\\xcc\\x93\\xbb\\xc2\\xc9\\xa6\\xc2\\x8c\\xc8\\x9b\\x11\\xff\\xc0\\xe9\\x10\\xd8\\x2d\\x9d\\x62\\x98\\xa3\\x67\\xa0\\xe1\\xe3\\xe8\\xc8\\x65\\xe4\\x32\\x6a\\x31\\x9b\\x22\\x66\\x6e\\x52\\x9f\\x19\\x98\\xf1\\xb3\\xc8\\xef\\xb5\\xfc\\x21\\xcc\\xe9\\x70\\x40\\xfb\\x62\\x47\\xda\\xa0\\x00\\x0a\\xc5\\x55\\x4d\\x89\\xe7\\xb2\\x71\\x59\\xdd\\x0b\\x18\\x00\\xb7\\x60\\xb7\\x9c\\x91\\xef\\x6e\\x97\\x0b\\x1e\\x6c\\x5f\\xf4\\x24\\x42\\xb1\\xb3\\xae\\x4d\\x3c\\x43\\x9e\\x08\\xec\\x2f\\x6b\\x94\\x17\\x73\\x87\\xca\\x5c\\x01\\xdf\\x6f\\x07\\xf8\\xe3\\x4d\\x25\\xed\\xbd\\x49\\xd8\\xb7\\x4e\\x31\\xa5\\xe6\\x5d\\xec\\x1f\\x87\\x60\\xfa\\x22\\xc0\\x0e\\x6f\\xb1\\xcd\\x55\\x5b\\xe6\\x8b\\x0a\\xb4\\x35\\x99\\xf0\\xb9\\xf4\\xa5\\x4a\\x7c\\xcb\\x06\\x26\\x83\\x89\\x5d\\x5e\\xf6\\x6d\\x24\\xdf\\xb1\\x67\\x8c\\xb0\\xd0\\xe8\\xc8\\x01\\xd8\\xe5\\xff\\xe7\\x9b\\x91\\x39\\xfc\\x96\\xd1\\x18\\xeb\\x39\\xb9\\xc8\\xd4\\x40\\x44\\x89\\x32\\x5d\\x45\\xb4\\xa3\\x20\\x2b\\xea\\xdc\\xa6\\x6f\\x83\\x1c\\x68\\xef\\xb8\\x15\\x94\\x15\\x81\\x93\\x0e\\xad\\x29\\xfd\\x5f\\x21\\x1b\\x90\\xe7\\xa3\\x9f\\x0d\\x4f\\xf4\\x8c\\x62\\xa5\\x45\\xe2\\x8a\\xc2\\xce\\x29\\xbe\\xdc\\x35\\x6d\\x92\\xfc\\x00\\x34\\x71\\x76\\xd7\\x76\\x23\\xe0\\xe1\\x80\\x9e\\xff\\x3f\\xe6\\x2b\\x75\\xa7\\xd9\\xde\\xb7\\x27\\xd8\\x61\\x72\\xd1\\x4e\\xdb\\xf2\\x78\\x9a\\x57\\x14\\x3c\\x69\\x92\\x5c\\x91\\x7d\\x43\\x3b\\x46\\x83\\xb0\\x69\\x3b\\x3c\\xd9\\xe7\\xe3\\x77\\x99\\x64\\x10\\x72\\x7f\\x5e\\x6f\\xb8\\xf5\\xcc\\xd1\\x86\\x0a\\x20\\x29\\x4e\\xcf\\x33\\xfa\\xf9\\x7a\\x1e\\x0f\\x85\\xb7\\x61\\x44\\x7d\\x47\\x61\\xb9\\x6e\\x4d\\xf1\\xb3\\x12\\xbd\\x41\\x4c\\xab\\xcf\\x49\\x84\\x97\\xb0\\xea\\xd6\\x7c\\xd1\\xe5\\x90\\x1b\\xbf\\x3a\\x16\\xa8\\x89\\x1c\\xcc\\xed\\x8a\\x90\\x7d\\xf8\\x87\\x26\\x95\\x2d\\x4a\\xb3\\x70\\xa6\\xb7\\xdf\\x29\\x42\\xcf\\x13\\x61\\x5a\\x5b\\xc1\\x2b\\x4e\\x10\\x6d\\xc3\\x01\\x3c\\x68\\xb8\\xfb\\x90\\x63\\x99\\xdf\\x15\\xf1\\xaa\\x90\\xd5\\x6a\\xa9\\x74\\xb1\\xd2\\xb2\\x8c\\x1a\\x84\\x53\\xb9\\xbf\\x07\\x92\\xa5\\x1c\\x97\\xce\\x8a\\x12\\xaf\\xc9\\x34\\x1b\\xb4\\xc0\\xc3\\x7b\\x12\\xdc\\xb1\\x2c\\x63\\x94\\x49\\x77\\x5d\\x9a\\xc5\\xc2\\xec\\x49\\x67\\x3d\\xa5\\xaa\\xf7\\x49\\x3e\\xd5\\xf1\\xf2\\x11\\x6e\\xae\\xf7\\x2b\\xb7\\xfb\\x1e\\x09\\x3e\\xde\\x2c\\x26\\x31\\x7f\\x4f\\x4b\\x6a\\xd5\\x85\\x34\\x62\\x05\\xdf\\x91\\xa6\\xe9\\x6b\\xc6\\x6d\\x30\\x64\\xbc\\xe9\\x52\\x39\\x8f\\xfc\\xe8\\x80\\x71\\xed\\x9f\\xf2\\x75\\x0c\\x65\\xc0\\xc3\\x04\\x12\\x5a\\xc2\\xca\\xdc\\x4f\\xef\\x71\\xa8\\x18\\x73\\x24\\x96\\xa8\\x4c\\xa5\\x74\\xd4\\x82\\xd5\\xa3\\xbb\\xa2\\x0e\\x16\\xdd\\x2f\\xa2\\x4d\\x32\\x70\\xf6\\xc6\\x09\\x92\\xf7\\xf6\\x3e\\x88\\xf5\\x2e\\xff\\x62\\x22\\x99\\x8e\\xb4\\x41\\x67\\x27\\x38\\x43\\x75\\xf5\\x9f\\x00\\xe4\\x75\\x12\\xee\\x46\\x4c\\x31\\x84\\xac\\xea\\xff\\x3c\\xcf\\xb0\\x6b\\xd1\\x5c\\x18\\x3c\\x5e\\x48\\x59\\x26\\x28\\x8b\\x99\\x7b\\xfa\\xaa\\xec\\xf6\\xec\\xbb\\xf7\\xd2\\xab\\xf4\\x90\\x6d\\xf7\\x6b\\x12\\x77\\xc5\\xf5\\xa8\\x7e\\x68\\x17\\xb1\\xc6\\x36\\xe9\\x1e\\xfd\\x7e\\xcc\\xf6\\x4f\"},\n{{0x32,0x34,0x65,0xd0,0x31,0x3d,0x10,0x01,0xa2,0x61,0xab,0xfd,0x44,0xfe,0x65,0xc3,0x8c,0x9a,0x00,0xca,0x0f,0x20,0x33,0x5d,0x65,0x53,0xde,0x49,0x26,0x99,0xfc,0x46,},{0xe2,0x2f,0x16,0xbd,0x4c,0xc7,0xe9,0x4c,0x46,0xba,0x31,0x96,0x1a,0xf8,0xc5,0x83,0xf9,0xd2,0x71,0x8c,0x68,0xf7,0x3d,0x85,0x06,0x9f,0x60,0x8e,0x15,0xba,0x87,0x66,},{0xda,0x3a,0xad,0xb3,0x43,0x60,0xb2,0xda,0x0c,0x26,0x54,0x2e,0xa7,0x1d,0xef,0xa8,0xa0,0xbf,0x7f,0xbd,0xae,0x3e,0xe9,0xe1,0x1c,0x84,0x08,0x4a,0xd0,0x5c,0xce,0x7b,0xa7,0xd9,0x4d,0xe2,0x5d,0x85,0x63,0x98,0x26,0x16,0xbc,0xdb,0x5b,0xb6,0x39,0x5f,0xac,0x4a,0x7e,0x84,0xbc,0x77,0xe2,0x1e,0xd3,0x6d,0xf7,0x5d,0xec,0x99,0x0b,0x06,},\"\\xbb\\x10\\x82\\xe1\\xcf\\xdc\\xd2\\x9b\\xfc\\xa2\\x46\\x4d\\x5c\\xe4\\x46\\xb5\\xba\\x65\\x4b\\xa5\\x8c\\x22\\x53\\x8d\\xa9\\x26\\xb8\\x30\\x3c\\xab\\xfd\\x28\\x4a\\x7b\\xd5\\x99\\x4a\\x78\\x6f\\xa6\\x6a\\xed\\xf0\\xe1\\x5f\\x20\\xc3\\x82\\xcd\\xac\\xf3\\xd1\\x45\\x57\\xff\\x7a\\x82\\x67\\xfa\\x04\\x67\\x2c\\xac\\xab\\x76\\x70\\x08\\x65\\x0a\\xa9\\xb4\\xa7\\xc9\\x07\\x1c\\x47\\x99\\xf1\\xff\\xa4\\x5c\\xa4\\xd5\\x86\\xe0\\x20\\x47\\x44\\x4c\\x14\\x23\\x19\\x43\\x46\\x7a\\x3a\\xba\\xef\\xa5\\x39\\x59\\xda\\x22\\x6e\\xb0\\xc1\\x53\\x92\\x01\\x97\\x60\\x15\\x96\\x97\\x74\\x82\\x93\\xc0\\x25\\x56\\x87\\x83\\x58\\x8a\\x39\\x10\\xe7\\x8e\\x5e\\xa4\\x27\\xc4\\x40\\x7a\\x89\\x01\\x06\\x1b\\x8b\\x99\\x2b\\x82\\xa2\\xdf\\x58\\xc0\\x4a\\x1b\\x2c\\x5f\\xad\\x11\\xc6\\xb3\\x79\\x85\\x6c\\x2e\\x0f\\xef\\x8a\\x95\\x0d\\xe7\\xe0\\xfc\\x22\\x31\\x03\\x09\\xe0\\x8b\\x13\\x2b\\x0c\\xce\\x4f\\xc1\\xec\\xbf\\x94\\x57\\x4a\\x38\\x8d\\x4a\\xe3\\x66\\x75\\xd3\\x29\\x9a\\x95\\x15\\x54\\xeb\\xf1\\x80\\xeb\\x38\\x1e\\x1b\\x5d\\xf9\\x77\\xd9\\x38\\x43\\x38\\x91\\xbc\\x47\\x8d\\x76\\x81\\x85\\x0b\\x9d\\xc9\\xc5\\xc7\\x69\\xd4\\x05\\xf5\\xd8\\x83\\x9f\\xc9\\x73\\x61\\xd6\\xcb\\x30\\x6c\\x20\\x30\\x26\\xcf\\x2e\\x2b\\x3d\\x39\\x84\\x9e\\x1f\\x4b\\x12\\x25\\xeb\\x25\\xef\\x8a\\xcd\\x40\\xb0\\x06\\xf2\\x0c\\x64\\x4d\\xb6\\x50\\xc7\\x5d\\x38\\xc0\\xfc\\xdd\\x48\\xf5\\x98\\xc7\\xb4\\xa6\\x01\\x06\\xe6\\x9e\\x19\\xcd\\x71\\x25\\x89\\xce\\xdc\\xcf\\x50\\x86\\x4e\\xa5\\xf9\\xe9\\x5e\\x01\\xf1\\xdd\\x85\\xc7\\x51\\x4f\\x2c\\x94\\xb2\\x83\\x59\\xde\\x41\\x32\\xb8\\x8c\\x3e\\xe1\\xd1\\x0a\\x80\\xa9\\xfa\\xdf\\xb6\\x90\\xe3\\xd8\\x86\\x41\\xb3\\x16\\x8f\\x0b\\x89\\x6a\\xf8\\x99\\x0a\\xdb\\xf0\\xe4\\xf8\\xe9\\xd3\\xf9\\xd4\\xcd\\x31\\x4e\\x12\\xc3\\xbc\\xe0\\xcc\\x87\\x38\\xe0\\xcf\\xc1\\x90\\x5b\\xe5\\xef\\xa0\\x71\\xf7\\x10\\xb3\\x2f\\x8e\\x58\\x98\\xc6\\x0e\\xb1\\xbb\\x8f\\xee\\xb7\\x40\\x00\\x56\\x0f\\x41\\xcb\\x2e\\xbc\\x32\\xb2\\x60\\x0b\\x69\\x80\\xa2\\xa4\\x06\\x4d\\xfa\\xa3\\x79\\x7e\\xc4\\x4c\\xfb\\x72\\xd3\\x79\\xf8\\x09\\x73\\x79\\xca\\xd6\\x7e\\xcd\\xc0\\xc3\\x24\\x14\\xfa\\x41\\xc7\\x2b\\x1b\\x9e\\x4e\\xdf\\x55\\x18\\xcb\\x39\\xfe\\x90\\x92\\xb4\\x39\\xaf\\x3a\\x4e\\xbd\\x5a\\xfe\\x79\\xbe\\xdc\\x0e\\xa8\\xbf\\x17\\x47\\x9a\\x28\\x21\\xf5\\xe9\\xbd\\x91\\xd7\\xf4\\xaa\\x5e\\x38\\x46\\x99\\x52\\x37\\x19\\xb6\\x95\\x7f\\x82\\x36\\x7c\\xd8\\x5f\\xea\\x9d\\xed\\x62\\x36\\xa2\\x07\\xc9\\x4c\\xb3\\x73\\xe3\\x39\\x3c\\xb4\\xfe\\x11\\xf9\\x0a\\x1b\\x87\\x79\\xe4\\xab\\x4c\\x34\\x66\\x13\\x6b\\xf2\\x1e\\x2a\\xab\\x78\\xf7\\xd2\\x72\\x6d\\xb6\\x41\\x4f\\xa5\\xc4\\xa3\\xf7\\x31\\x3a\\xd2\\x11\\x6a\\x6d\\x7c\\xe4\\x0a\\xaa\\x10\\x01\\xc2\\x70\\x4d\\x5b\\x05\\xae\\x54\\xc7\\xcc\\x6f\\x56\\x72\\x17\\xf1\\xa4\\x7b\\xfd\\x0e\\xe7\\x38\\xea\\xea\\x5e\\xad\\xb5\\x37\\x10\\x75\\xbe\\x07\\x6c\\x87\\x50\\xae\\xce\\xfc\\x41\\x7e\\xa7\\xbf\\xda\\xac\\x3c\\xc3\\x8b\\xf1\\x6c\\xc2\\x6d\\xf7\\x60\\x0e\\x3c\\x7e\\x8e\\x43\\x1f\\x26\\x76\\xfc\\x2a\\x8c\\x43\\xa6\\xa1\\x43\\x68\\xba\\x62\\xbb\\x32\\x43\\x9a\\x06\\xbe\\xac\\x38\\xa0\\x47\\xb3\\x74\\x5e\\x26\\xf4\\x07\\xad\\x82\\x3d\\x6a\\xd1\\xc0\\xb6\\xa4\\x43\\x41\\xe1\\x5f\\xc9\\xb3\\x31\\x21\\x4f\\xfc\\x89\\x69\\x82\\x11\\xb0\\x51\\x33\\xd6\\xd3\\x43\\x3b\\x5d\\x59\\xf7\\xab\\x4d\\x10\\x9e\\x54\\xe4\\xc5\\xd6\\xf3\\x2f\\xcf\\x72\\x30\\xfa\\x4e\\x25\\x28\\xc8\\x61\\xbb\\x21\\xcc\\xc9\\xe3\\x10\\xe9\\x49\\x7e\\x07\\x7e\\xa6\\x75\\x51\\x0d\\xa7\\x12\\xb1\\xa5\\xdf\\x57\\x5c\\x5d\\x1b\\xf7\\x36\\x2d\\x07\\x11\\x80\\x03\\x9a\\xec\\xfa\\xa5\\xc8\\x57\\x3c\\x24\\xc0\\xf4\\xeb\\xe8\\x1c\\x2f\\x88\\x9a\\xed\\x3d\\xe5\\xa0\\x00\\xbe\\x12\\xfe\\x3d\\x0a\\xf2\\xdc\\x2c\\xd4\\x24\\x0e\\x31\\x4a\\x17\\x6c\\x55\\x3e\\xfd\\x5c\\xba\\x79\\x8d\\x9f\\xf1\\xe3\\xd4\\xbd\\x9e\\x90\\xbb\\x81\\x13\\xe3\\x84\\x9d\\x73\\x5a\\xfa\\x4a\\xf6\\x94\\x5c\\xc5\\x7d\\x4c\\x37\\x8d\\xb8\\x4f\\x20\\x6e\\xf7\\xea\\xb1\\x1c\\x63\\x7a\\x7f\\x72\\x60\\xf1\\x22\\xa9\\x7d\\xff\\x67\\x47\\xe9\\xb4\\xc1\\x74\\xed\\x0d\\x64\\xf9\\xef\\xd7\\xfc\\xcc\\xf9\\x81\\x51\\x9e\\xc5\\x80\\xa8\\x18\\x25\\x47\\xd1\\x79\\x68\\xc4\\x01\\x51\\xfd\\xf6\\xd5\\x4b\\xc5\\x7a\\x91\\x15\\xf0\\x40\\xfa\\xb5\\xc1\\x00\\xde\\xb0\\x39\\x12\\x2b\\x7d\\x2b\\xfd\\x98\\xb6\\xad\\xf3\\x8f\\x42\\xb2\\x96\\xea\\x3b\\x37\\x8a\\x90\\x42\\x59\\xb7\\x5d\\x60\\x70\\x3b\\x48\\x40\\xb3\\xf5\\xda\\x09\\x62\\x0a\\x54\\x77\\x62\\x80\\xe9\\xca\\x9e\\x8c\\xd9\\x24\\xae\\xd2\\xb5\\xdd\\x2b\\x49\\x83\\x4e\\x58\\x1c\\xae\\xd5\\x27\\x1c\\xd7\\x8c\\xe0\\x8e\\x4b\\xba\\x49\\xb5\\x9c\\xd7\\x7c\\x1b\\x62\\x76\\x64\\x91\\x48\\xab\\x72\\x47\\xf9\\x7f\\xc0\\x13\\x16\\x35\\xde\\x47\\x4d\\x3c\\x23\\x49\\x3c\\xa9\\x8d\"},\n{{0x60,0xff,0xdb,0xae,0x00,0x3f,0xa2,0x79,0x4f,0xca,0xbb,0xf8,0xf5,0xb4,0x16,0x44,0xfe,0x3a,0x7f,0x44,0xed,0x6c,0x83,0x41,0x93,0xda,0x07,0xa9,0xdc,0x5e,0x26,0x65,},{0x35,0xb5,0xeb,0x31,0xab,0x55,0x64,0x92,0x57,0x8b,0x3d,0xbd,0x6c,0xf1,0x68,0x7d,0x1f,0xdb,0x21,0x6a,0x72,0x58,0x18,0x07,0x96,0x63,0x48,0x2f,0x22,0x1c,0xe4,0x21,},{0xb8,0xf3,0xe1,0xf3,0x78,0x5a,0x2a,0x39,0xbb,0x08,0x6c,0xa4,0x65,0xc0,0xab,0xf0,0xa3,0xe8,0x74,0x43,0x22,0x5a,0xc6,0xe9,0x66,0xed,0x9b,0x45,0x31,0xc5,0x4a,0x89,0x4a,0x9a,0xbd,0x01,0xac,0x31,0xb8,0x57,0x57,0xfe,0x75,0x30,0x8c,0x95,0x94,0xff,0x65,0xf9,0x7c,0xdd,0x91,0xe8,0xd8,0xa9,0x3c,0xf1,0x2b,0x9e,0x6d,0xbe,0xe9,0x0b,},\"\\x3f\\x8f\\xf2\\x0b\\xb4\\xf0\\x08\\x34\\xc8\\x0f\\x2e\\xe6\\x89\\x3d\\x6f\\x73\\xbf\\x7a\\xce\\x27\\x29\\x60\\x1b\\xb2\\x6a\\x0f\\xb2\\x72\\xa4\\xd0\\xee\\xa1\\xfa\\xe1\\xd3\\x06\\xac\\x2c\\x5f\\x32\\xad\\xd6\\x01\\x35\\x85\\x1d\\xa2\\x7e\\x4f\\x12\\xe6\\x4e\\xa5\\xe9\\xe9\\x96\\x0b\\x13\\x83\\xb0\\x4c\\xe0\\x5a\\x98\\xb0\\x41\\x4d\\xad\\x97\\x1e\\xa9\\x89\\x44\\x87\\x1d\\x41\\x5c\\xc2\\xc4\\x6d\\xa4\\x03\\x97\\x6d\\x9f\\x21\\x93\\x89\\x58\\xd4\\xea\\x8c\\x79\\x03\\xb1\\x4f\\x2a\\x44\\x85\\xfd\\x69\\xaf\\xb2\\x4a\\xbe\\x10\\x2d\\x8f\\xec\\x26\\x6f\\xb4\\x68\\xb4\\x11\\xeb\\x20\\xa3\\x39\\x67\\x7d\\x88\\xeb\\x31\\xc9\\x97\\xb4\\xdc\\x88\\x56\\x13\\xf0\\xbe\\x7c\\x70\\xda\\xf8\\x56\\xa3\\xdf\\x92\\xda\\x96\\x02\\xfb\\xa2\\xe6\\x74\\x9d\\x2f\\x42\\x6b\\xee\\xf6\\x86\\x62\\xd5\\xb0\\xc2\\xfd\\x31\\x32\\x1b\\x22\\xb5\\xec\\x59\\x7d\\xa5\\xd7\\xe6\\xa2\\x88\\xeb\\xd9\\x44\\x3c\\x5f\\x39\\xeb\\x87\\xdc\\xf4\\xa5\\xad\\x9d\\x56\\xc6\\xba\\xf6\\x08\\x09\\x96\\xa7\\x79\\x36\\xbd\\x87\\xdc\\x3c\\xb4\\x2e\\xd4\\xc4\\xd4\\x26\\x88\\xa9\\xe1\\x93\\x82\\x9b\\x76\\x1f\\xf3\\x20\\xe2\\xa6\\x6c\\xc6\\x76\\x48\\xe7\\x0e\\xea\\x3a\\x1f\\x2f\\x9b\\x9d\\x5b\\x42\\x02\\xfb\\x5a\\x39\\xe9\\xad\\xc6\\x09\\x08\\x6a\\x9b\\xe2\\xa8\\x32\\x3a\\xc6\\x69\\x31\\xbd\\xf6\\xc5\\x04\\xd3\\x33\\x62\\x11\\xe4\\x6f\\xde\\xfc\\x48\\x1f\\xbf\\x17\\xf6\\x13\\xda\\xb1\\xfc\\x5c\\x09\\x7c\\x92\\xdb\\x06\\x09\\x90\\x6d\\x78\\xb2\\x5a\\x45\\x5a\\x30\\x45\\x71\\x8e\\xfd\\x3e\\x3b\\x14\\xe2\\x52\\xb1\\xae\\x59\\xc7\\xc3\\x89\\x3e\\x31\\x91\\x3b\\x2c\\x26\\x4c\\x0f\\xfc\\x3b\\x60\\x6c\\xa1\\xb0\\x1d\\xc4\\x7e\\xe8\\x28\\xa0\\x8e\\x46\\xaf\\x60\\x4e\\x59\\x0d\\xef\\x44\\xd2\\x7a\\xab\\x93\\xa4\\x03\\x25\\x1f\\xca\\x07\\x72\\xe9\\xdf\\x0f\\xab\\x7a\\xf0\\xcb\\xc5\\x18\\x1e\\xfd\\xa4\\xda\\x91\\x3d\\x8e\\xb6\\x45\\x2f\\x6c\\xec\\xbd\\xa2\\x04\\xbc\\x72\\xd7\\xc9\\x90\\xf6\\x0c\\xe0\\xdd\\x83\\xc6\\x34\\xe9\\x12\\x23\\x60\\x91\\xb0\\xa6\\x67\\x3a\\x7c\\x89\\xea\\x59\\x30\\x8d\\x55\\xbd\\x7e\\x63\\xa8\\x52\\x67\\x74\\xcb\\xdd\\x7a\\x13\\x39\\xfa\\xc2\\x12\\x4c\\x90\\x22\\xab\\xd6\\xfe\\xce\\x7f\\x2d\\xae\\xdf\\xd8\\x7f\\xa6\\x83\\xdc\\x0e\\x3e\\xf4\\x08\\x06\\xa0\\xab\\x19\\x87\\x69\\xd3\\xa9\\x9f\\xe8\\x1a\\x99\\xb6\\x86\\x00\\x31\\x90\\x87\\xaf\\xa4\\xea\\x79\\xd7\\xee\\x45\\xda\\x9c\\xd4\\x08\\x09\\xf4\\xee\\x8f\\x4e\\x25\\xa0\\x17\\x75\\x21\\xee\\x9d\\xba\\x8b\\x56\\x21\\x2e\\x88\\x71\\x9b\\xb7\\x36\\x73\\x36\\xf4\\xa7\\xbc\\x71\\x22\\xb4\\x1a\\x7d\\xfa\\xa2\\x67\\x2f\\x92\\xf2\\x34\\x03\\xa1\\x0c\\x4f\\xb2\\x53\\x88\\xc6\\xb2\\x00\\x81\\x09\\x3d\\x49\\xf3\\xbe\\x8a\\x9e\\x1c\\x63\\x4e\\xf7\\xba\\x96\\xb6\\xd5\\x23\\xdd\\x6f\\xf6\\x13\\xc0\\xa2\\x3b\\x60\\x45\\x70\\x26\\xcd\\x48\\x5b\\xa8\\xdb\\x61\\xd8\\x0a\\x0d\\xc6\\x59\\xd9\\xaf\\x42\\xa3\\x8c\\xae\\x77\\x7f\\xec\\x68\\xe3\\x9c\\x52\\x98\\x6f\\xf9\\xfc\\x20\\x78\\x9c\\x10\\x58\\x51\\x07\\xc0\\x40\\x47\\xb6\\x6b\\xa1\\x4e\\x93\\xfb\\x90\\x4e\\xa9\\x0d\\xf7\\xac\\x9f\\x01\\x54\\xc9\\x6f\\x32\\x36\\xac\\xf6\\xdc\\x8b\\x44\\xf5\\x54\\xc0\\xcd\\x51\\x31\\x93\\xe5\\xdf\\xd8\\x7e\\x08\\x5a\\xd4\\xb3\\x8a\\xa4\\xc5\\xe3\\x6b\\x24\\x27\\x72\\x20\\x88\\x81\\x6e\\xcd\\x2b\\xc3\\xa3\\xdd\\xa0\\x1e\\x4f\\xb3\\xff\\x5e\\xec\\x7a\\x64\\x17\\x32\\x2b\\xa6\\xa2\\x77\\x73\\xd2\\x44\\x95\\xa8\\x39\\x19\\x4a\\x4a\\x58\\x2f\\xe5\\xab\\xdb\\x8b\\x5d\\x53\\x3a\\x24\\x26\\x25\\x89\\x24\\x1f\\xc8\\x1f\\xdf\\x5e\\x79\\xfd\\x26\\x77\\x64\\x28\\xf8\\xe1\\xce\\x9e\\x92\\x6c\\xf2\\x72\\x71\\x6e\\x75\\x83\\xab\\xfc\\x67\\xa9\\x4a\\xae\\x08\\x16\\xc1\\x00\\x0a\\x19\\x61\\x70\\xbb\\xff\\x1f\\x45\\xe5\\xed\\x9e\\x26\\x7a\\xce\\x1e\\x4d\\x91\\x5d\\xce\\x72\\x16\\xc5\\xf4\\x04\\xde\\xf6\\xfe\\x2b\\xd8\\xb2\\x8b\\x2e\\xcc\\xf3\\xe2\\xae\\xa0\\xc0\\xd6\\x62\\x63\\x90\\x27\\x4e\\x47\\xe7\\x45\\xed\\x3a\\x23\\xbc\\xfd\\x21\\xd2\\x84\\xc3\\x95\\x37\\x9d\\xc0\\x20\\x80\\xf0\\x79\\x36\\xbc\\x15\\x4e\\x7b\\x99\\xee\\x73\\xdb\\x18\\x8b\\xd2\\xa3\\x94\\xe0\\x3a\\x01\\xff\\xe2\\xd1\\xb3\\x30\\xce\\xb7\\x21\\x58\\xf9\\x58\\xc7\\x16\\xa8\\x17\\x11\\xdb\\xf6\\x5a\\xff\\x8c\\xd1\\x2f\\x5d\\xfa\\x53\\xb3\\x76\\xeb\\xb8\\xb9\\x8f\\x86\\x28\\xf1\\x7e\\xf8\\xb2\\xab\\x9c\\x0b\\xb6\\x84\\x12\\xf4\\xe3\\x47\\xa6\\x33\\xe2\\xf8\\xda\\x1a\\x55\\x6d\\x96\\xf4\\xaf\\x72\\x11\\xc0\\x78\\x07\\x9c\\x10\\x54\\x1c\\x07\\xdc\\x37\\x22\\xd1\\x8d\\xab\\x8f\\xa8\\xbc\\x49\\x25\\xab\\xa5\\xc9\\x66\\xf8\\x05\\x04\\x03\\x22\\xdf\\xbb\\xbe\\x87\\xfb\\xfe\\xb1\\x96\\x1f\\x5c\\xcd\\x40\\xa9\\x1b\\x99\\x7e\\x54\\x31\\x5a\\x7e\\xef\\xc3\\xa4\\x7b\\xb0\\xc8\\x7d\\xc2\\x37\\x55\\xce\\x72\\x27\\x57\\x49\\x96\\xf4\\xbe\\x7a\\xa3\\x44\\xfe\\x0d\\x17\\xb9\\x7b\\xc5\\x0c\\x58\\x38\\xf9\\x92\\x92\"},\n{{0x17,0x4e,0x99,0x3d,0x9b,0x81,0xf2,0xaf,0x67,0xe9,0xff,0xb8,0xeb,0xd5,0xda,0x41,0x79,0x66,0xa9,0xe7,0x7f,0x66,0xc6,0x5c,0x76,0x77,0x38,0xfe,0x83,0x57,0xd0,0x7c,},{0x3b,0xb7,0x38,0x6f,0x1b,0x1c,0xbf,0xae,0x55,0x37,0x03,0x83,0x3e,0xbc,0xbf,0xe2,0xdf,0xff,0x8c,0x89,0x9a,0x07,0x92,0xd7,0xce,0x23,0x22,0xb5,0xba,0x64,0x5a,0x5f,},{0xe6,0x07,0xbc,0x9a,0x53,0x60,0xb3,0x1d,0xa5,0x6b,0xe1,0xc5,0x44,0xc2,0x00,0x02,0x84,0x95,0x1d,0x86,0x89,0xf4,0xb7,0x22,0xbc,0x46,0x73,0xa0,0xc8,0x48,0x9b,0x84,0x48,0x3e,0xd8,0xe7,0x6e,0x29,0x7e,0xa0,0x46,0xe8,0x5b,0x37,0xba,0x56,0x30,0x58,0x5e,0x53,0x75,0x56,0x6a,0x18,0x7a,0xfb,0x56,0x96,0x66,0x1e,0x5b,0xfd,0xc1,0x0e,},\"\\xa4\\x01\\x75\\x0a\\xfc\\x48\\x37\\xdf\\xe3\\xaa\\xcc\\x28\\x4a\\x59\\x71\\x45\\xdf\\xef\\x02\\x62\\x9e\\xf8\\x7b\\xd0\\x93\\x8d\\x44\\x39\\x79\\xdf\\x76\\xf2\\x9f\\xcd\\x66\\xa5\\xb7\\x1e\\xa8\\xab\\x78\\x72\\x77\\xe3\\x05\\x6f\\x6e\\xa1\\x1b\\x08\\xbd\\x23\\x89\\x79\\xf9\\xd3\\xb0\\x62\\x53\\x8c\\x4d\\x60\\x40\\xa8\\x6b\\x6e\\x32\\x04\\x7a\\xec\\xc5\\x9c\\x23\\x77\\xad\\x0e\\xa4\\xc4\\x0c\\x79\\xff\\x9f\\xe9\\x8c\\x95\\x8b\\x2b\\xf2\\x5f\\x2f\\xd6\\x34\\x24\\x32\\x63\\x6f\\x5f\\x7d\\x5b\\xb0\\xd2\\xec\\xf1\\x81\\x83\\x42\\x6c\\x73\\x14\\x79\\x84\\xd9\\x5b\\xbe\\x16\\x2e\\x11\\x97\\x2d\\xdb\\x78\\xa2\\xa7\\xc3\\x45\\xc5\\xc0\\xbb\\xba\\xba\\x9c\\xf3\\x8a\\x2d\\x5d\\xd5\\x09\\xa7\\xdf\\x8b\\x84\\x28\\x74\\xa9\\x6e\\x64\\xb5\\xd6\\x4f\\x5c\\x41\\xa2\\x1d\\x20\\x8d\\x14\\xce\\xa7\\x06\\x6c\\xf2\\x2d\\xee\\x0c\\xa4\\x1a\\xa4\\x6a\\xb9\\x21\\xd4\\xce\\xec\\x89\\xec\\x87\\x3f\\x77\\x96\\x0e\\xda\\x60\\xd9\\x67\\x6c\\xfd\\x0d\\xbf\\xae\\xc8\\x72\\xc2\\xad\\xe8\\xfb\\xa4\\x28\\x5a\\xac\\xd5\\x27\\x14\\x3a\\xe0\\x34\\x1d\\x67\\xd0\\x07\\x81\\x19\\x65\\x3b\\x5d\\x23\\xd4\\x6e\\x6e\\xf7\\x02\\x64\\xb1\\xb0\\x91\\x38\\x70\\x87\\x76\\x23\\x71\\x6d\\x0f\\x1a\\x59\\x02\\x1b\\xe7\\x4c\\x91\\x4b\\x43\\x24\\x71\\xa4\\x3a\\x29\\xf2\\xb6\\xdb\\xeb\\x6a\\x22\\x3e\\x2d\\xba\\xab\\xb8\\x20\\xb4\\xad\\xbe\\x33\\x78\\x29\\xe1\\xde\\x0c\\x18\\x4d\\xd0\\xd0\\x9f\\x9d\\x01\\xd4\\x25\\x27\\xe5\\xd4\\x0a\\xbb\\xda\\xcc\\x8a\\xc0\\xf1\\xb2\\xc5\\xc1\\xcb\\x2f\\x23\\x87\\x6d\\x2d\\x1b\\x6b\\x43\\xdf\\xe4\\x82\\xf9\\xd4\\x5a\\x18\\xf5\\xc2\\x2b\\x15\\xf1\\xfe\\x52\\x1e\\xf5\\x7b\\x08\\xae\\xc6\\xa3\\x03\\x39\\x25\\xc7\\x45\\x4c\\x93\\xe6\\x31\\x9e\\x77\\x8a\\xc4\\x94\\xfb\\x14\\x0a\\xe5\\xf1\\xa3\\x1c\\xc8\\x32\\xca\\x24\\x88\\x65\\x10\\x04\\x06\\x3b\\xcf\\xf8\\xfd\\x9a\\xe9\\x26\\x6a\\xf5\\x27\\xf2\\xc3\\x1f\\x6a\\xcb\\x8f\\x3d\\xeb\\xd9\\x97\\x8e\\xf9\\xdf\\x01\\x08\\xe3\\xd5\\x0c\\x49\\x19\\x90\\xc9\\x0d\\xd8\\xee\\x9d\\x64\\xea\\x4e\\xbf\\xd7\\x11\\xc9\\x9d\\x90\\x44\\xec\\x11\\x34\\x2c\\x53\\x83\\xca\\x39\\x23\\x2e\\xd9\\x7a\\x07\\xe4\\xdc\\x51\\xdb\\x4c\\x1f\\xe9\\x47\\x34\\x8d\\xff\\xe7\\x0a\\x95\\xc9\\x9d\\xb1\\x47\\x51\\x31\\x48\\x01\\xf1\\x3f\\xa2\\xbf\\x42\\xd8\\x67\\x37\\x5a\\x08\\xee\\x9b\\x3b\\x79\\x9e\\x0b\\x15\\x27\\x8e\\x95\\xe9\\x1a\\x89\\x68\\x06\\x4d\\x6d\\xfd\\x8f\\x51\\x15\\x43\\x8c\\xcb\\x8b\\x51\\x6c\\xa0\\xc4\\x1d\\xbb\\x19\\x87\\x3c\\x6e\\x10\\xa2\\x36\\xec\\xc2\\xda\\xd5\\x22\\xf8\\x0f\\x01\\xc1\\x4e\\x2f\\xa1\\x4a\\x0d\\x79\\x2b\\x9f\\xc4\\x86\\xc6\\xfb\\x0e\\xfb\\xdf\\x21\\x30\\xf0\\x2d\\xf1\\x49\\x7d\\xb5\\xab\\xa8\\xbe\\x61\\xca\\x70\\xb2\\x93\\x88\\xe4\\xee\\xc7\\xe0\\x69\\x4a\\x38\\xc0\\xd0\\x3c\\x59\\xbb\\x6a\\x2d\\xc3\\xcc\\xd6\\xdd\\xe1\\xe2\\x9e\\xe2\\xc1\\xb3\\x25\\xac\\x72\\xaa\\x8e\\x6f\\xab\\x91\\x38\\xf8\\xb6\\xf5\\xd3\\x24\\xd4\\x6a\\xf3\\xa3\\x54\\x2c\\x8b\\xd8\\x7c\\xb0\\x4f\\xaf\\xc5\\x4b\\x5d\\xb8\\x27\\xde\\x60\\x67\\x62\\xa0\\x97\\xb6\\x22\\x79\\x9c\\xa8\\x27\\xbd\\xa9\\xc1\\xc0\\xbb\\x26\\x7e\\xba\\x82\\x54\\xa8\\x1c\\x6b\\x85\\x8a\\x37\\x5b\\x94\\xbd\\x09\\xf3\\x9e\\xeb\\x88\\xcb\\x14\\xb8\\xd4\\x6e\\x47\\x40\\xdc\\x1a\\xb4\\x2a\\x89\\x5f\\x86\\xd2\\xc5\\x7f\\xc2\\x8b\\x07\\xb7\\xf6\\x0f\\xc4\\xf8\\x84\\x7b\\x8b\\xc8\\xad\\x83\\xa2\\x48\\x1a\\x28\\xf2\\x9b\\xca\\x35\\x10\\xff\\x8b\\xf1\\xdd\\x75\\x81\\xe3\\x35\\x71\\x64\\xf4\\xfe\\x92\\x0f\\x9d\\xe8\\x39\\x37\\x6d\\xe0\\x64\\x90\\x0d\\xc7\\xf8\\xbc\\xf5\\x11\\xdc\\x57\\x2e\\x0f\\x0f\\x6a\\x75\\xb9\\x29\\x79\\x7d\\xa4\\x1c\\x52\\xea\\xe6\\xfe\\x13\\x75\\x0c\\xe3\\x51\\xe8\\x76\\x76\\x30\\xba\\xdf\\x6d\\x7d\\x4e\\xab\\x90\\xcd\\x19\\x04\\xc9\\x6c\\x04\\x8a\\x9a\\xcb\\x21\\x3a\\x9e\\x5b\\x86\\x46\\x15\\x73\\x8a\\x84\\xf2\\x22\\x98\\x6a\\xc2\\x35\\x54\\xcf\\x4c\\xe5\\x4e\\x80\\xab\\x57\\x33\\xc0\\x65\\xb8\\x04\\x59\\x92\\x1d\\xd3\\xd8\\x37\\x2d\\x0e\\x85\\x94\\xd4\\x36\\x43\\x51\\xbf\\x04\\x1c\\x14\\x6f\\xa8\\xd2\\x3a\\x19\\x3e\\xb8\\x07\\xec\\xe2\\x3f\\x24\\xab\\x65\\x95\\xe9\\x32\\xc9\\xce\\x1a\\x75\\x9b\\xf7\\x88\\x91\\x4d\\xb0\\x08\\xe8\\x70\\x98\\xdd\\x81\\x46\\x5e\\x26\\x10\\x64\\x7a\\xc3\\x8e\\x08\\x86\\x66\\xf6\\x0e\\xc5\\xd0\\xe2\\x17\\x33\\x20\\xa4\\x0c\\xd9\\x85\\xf0\\xe0\\x0d\\xbc\\x2b\\x45\\x70\\x72\\x74\\x83\\xa8\\xc2\\x5f\\x6f\\xc1\\xe0\\x93\\xbb\\x57\\xcc\\xaf\\xd1\\xca\\x20\\x2f\\x29\\x86\\xc7\\xc5\\x54\\x0a\\x7c\\x3e\\x10\\xc4\\xa6\\xfc\\x26\\xd1\\xd6\\x2c\\x2c\\xa5\\xaf\\x83\\x05\\xce\\xeb\\xe4\\x2f\\xf9\\x6e\\x7d\\xc5\\x48\\x21\\x43\\x75\\xe8\\xa7\\xf9\\xf7\\x12\\xba\\x8b\\xd8\\x75\\xe4\\x3c\\xa1\\x0c\\xf9\\xb1\\x83\\xf0\\xc8\\x51\\x95\\x12\\x92\\x85\\x38\\xa4\\x78\\xcb\\x98\\x25\\x9b\\xd8\\xb3\\xe3\\x34\\xbc\\xc4\\x63\\x55\\x95\\xca\\xd3\"},\n{{0xe5,0x37,0x15,0xfe,0xc9,0xd3,0xb2,0x0e,0x9c,0x29,0x91,0xe5,0x4b,0x5e,0xb0,0xa8,0xcc,0x81,0x87,0x55,0x69,0xc9,0x5e,0x22,0xa2,0x00,0x13,0x60,0x02,0x17,0x60,0x04,},{0x53,0x51,0x89,0x9b,0x69,0xb2,0x11,0x6b,0xc7,0xf8,0xa8,0x81,0x4d,0x1e,0x5b,0x9f,0xc7,0x85,0x69,0x8b,0xeb,0xd9,0xab,0x14,0x27,0x7c,0x3e,0xcc,0x01,0xef,0x8b,0x1d,},{0x3d,0x0a,0xdc,0xe7,0x7a,0x4e,0x04,0x6f,0xcb,0x9b,0x49,0xad,0x5e,0x6c,0x68,0x09,0xc8,0xac,0x33,0x6c,0x73,0x34,0x04,0xe5,0xd3,0xf0,0x15,0xc9,0x22,0x5c,0x3d,0xf4,0x6e,0xf2,0x1e,0xa3,0x4c,0xff,0xb3,0xaf,0x69,0x97,0x4f,0x8b,0x7e,0xab,0x2d,0x23,0xfc,0xd5,0xa1,0xe1,0x75,0x3a,0x40,0x23,0xde,0xb3,0x81,0x86,0x29,0xa9,0x8a,0x0b,},\"\\x84\\x31\\xcd\\x16\\xd5\\xc0\\x93\\x77\\x5e\\x18\\xc0\\x82\\x52\\xc4\\x3f\\x95\\xb1\\x01\\x7e\\xb7\\x11\\xfc\\xaf\\x73\\xe1\\xe0\\x0c\\x0c\\xd6\\xf3\\x44\\x87\\x44\\xab\\x9b\\x0e\\x64\\x33\\x55\\x18\\xc4\\x83\\xae\\x94\\xde\\xb9\\x76\\x77\\xf8\\x18\\xf0\\xe8\\x1a\\x74\\x90\\x61\\x5b\\x71\\x41\\xb9\\xc3\\x5f\\x80\\x55\\x6e\\x69\\x71\\xce\\xa2\\x8e\\x9a\\x32\\xc3\\x28\\xcc\\x26\\x69\\xfc\\xa5\\xb1\\x23\\xcb\\x66\\x2d\\xeb\\xab\\x2b\\x98\\x15\\x77\\x64\\x66\\x80\\x70\\xe1\\x8e\\xdf\\x76\\x1a\\xe1\\x96\\xbd\\x4b\\x24\\x4f\\xea\\x7b\\x74\\x98\\x45\\x16\\xbe\\x2c\\x00\\x73\\x9e\\x76\\xe6\\xc4\\xb6\\x21\\xcb\\x39\\x83\\x76\\x5a\\x20\\xd8\\x47\\x78\\xd5\\xa4\\x35\\x0b\\x16\\x8f\\x6a\\x0f\\x71\\x2a\\x98\\x20\\xa8\\x5a\\x63\\x6f\\xaf\\x92\\xc7\\x89\\xc4\\x28\\xcf\\xd2\\x96\\x2e\\xd2\\x07\\xc3\\xac\\x88\\x99\\xc2\\x58\\xca\\xc1\\xad\\xb5\\x15\\x9f\\x76\\x4b\\xa3\\x72\\x29\\xc5\\xcb\\xf7\\x83\\xfc\\x9a\\xa4\\xd1\\xea\\x46\\xec\\xc8\\x5f\\xe0\\x96\\x14\\x85\\xd4\\xfc\\x5c\\xb2\\x1d\\xf0\\x01\\x2a\\xc9\\xb9\\x55\\x37\\x3b\\x14\\x22\\xe5\\x1a\\xfa\\x1c\\x55\\x09\\x88\\x86\\x2c\\x86\\x13\\x3b\\x76\\x0a\\xa6\\x30\\xfc\\x0a\\xce\\xe8\\x98\\x91\\x17\\xd1\\xdd\\x96\\xe3\\xe6\\x28\\x7b\\x69\\x28\\x7c\\x59\\x0b\\xdc\\xa9\\xcb\\xc8\\xee\\xce\\xf2\\x81\\xee\\x6d\\x1c\\x8d\\x88\\x82\\x2b\\xfe\\xa5\\xfa\\x0f\\x53\\x0f\\x23\\x27\\x80\\x93\\xc7\\xc8\\x5a\\x0d\\x44\\xc3\\xa7\\x74\\x04\\xee\\x79\\xf1\\xc8\\x36\\x8c\\xd7\\x32\\x1b\\xf1\\x48\\xfd\\xa4\\xdc\\xf2\\xeb\\x07\\xe4\\x63\\x0e\\xa4\\x22\\x58\\x75\\x86\\x37\\x17\\x80\\x51\\x45\\x36\\xb8\\x94\\xc5\\x24\\xe6\\xb8\\x3d\\x5a\\x76\\xa1\\x5c\\x83\\xe9\\x5a\\xb3\\x14\\xe0\\x7b\\x34\\xb9\\x8c\\xd9\\x9e\\x07\\x70\\xb4\\xeb\\x9b\\x3f\\x3f\\x50\\x5b\\xae\\x8a\\x06\\xf7\\xf9\\x50\\x25\\x8d\\x79\\x07\\x48\\x10\\x71\\x95\\xeb\\x4f\\x6b\\x84\\x84\\x0f\\x8c\\x05\\x90\\x72\\x73\\x96\\xed\\x14\\xe3\\xf5\\x32\\x39\\x47\\x6c\\x4d\\x2a\\x72\\x69\\xb2\\xe1\\xf9\\x72\\xfb\\xff\\x33\\xe4\\x72\\x44\\x26\\x74\\x5e\\xc8\\x86\\xa3\\x29\\x16\\x29\\x5e\\x70\\xd4\\x68\\xd0\\x6c\\x7d\\xbb\\x5f\\xf9\\xa3\\x54\\xe1\\xac\\x90\\x3b\\xb4\\x5c\\xa5\\x26\\xf0\\x8b\\x49\\xa6\\x5e\\x82\\x29\\x7d\\x8d\\xd3\\xfb\\x25\\xaa\\x42\\x8f\\x64\\x34\\x5b\\xca\\x97\\x40\\xd9\\x07\\x8d\\xac\\x9e\\x11\\x38\\xc9\\x21\\xbd\\xd7\\x48\\x81\\x67\\x3d\\x49\\xd0\\xcd\\x20\\x06\\x81\\x17\\x23\\xde\\x28\\x7c\\x6c\\x95\\x83\\xe4\\x56\\xa0\\x1a\\xb1\\xa3\\x4d\\xfa\\x1e\\xaa\\x96\\x3b\\x71\\xe8\\xbc\\x7f\\xa8\\xa9\\x8c\\xad\\x4f\\x94\\x1e\\x4b\\x37\\xb6\\x0e\\xef\\x92\\x3b\\x32\\x94\\x88\\x23\\x50\\xb3\\x8e\\xa4\\xea\\xc0\\xe9\\x23\\x2e\\x93\\xc5\\x32\\xdb\\x5d\\x7e\\xec\\x8e\\xcf\\xae\\x65\\xe0\\x80\\x47\\x30\\x78\\x77\\x7d\\xdf\\xdd\\x11\\x50\\x8a\\x6e\\x59\\xf0\\xeb\\xaa\\x3f\\x60\\x44\\x1f\\x82\\xa7\\x1a\\x73\\xc8\\x4b\\xca\\x06\\xa3\\x71\\xff\\x5c\\x9f\\x77\\x21\\x3a\\x2d\\xb7\\x95\\xd4\\xa8\\x89\\x78\\x23\\xd8\\x8f\\xd9\\x2a\\xe3\\xe0\\x57\\xe8\\xbb\\xd8\\x0c\\x99\\x0a\\xf8\\x38\\x6b\\xdf\\x26\\xf1\\x2d\\x97\\x3c\\x8c\\x5f\\xf9\\xed\\x6f\\x7b\\x2d\\x8e\\x61\\x83\\xcf\\x6e\\x68\\xf3\\xbb\\x89\\x8f\\x59\\xa9\\x3e\\xc4\\xde\\x3b\\xea\\x60\\x5a\\x5d\\x8b\\x15\\xdf\\xab\\x71\\x3f\\x35\\x85\\xc4\\x8d\\xc9\\xa5\\x76\\x82\\x42\\xb3\\x31\\x01\\x43\\x80\\x30\\xe7\\x04\\x48\\x80\\xd1\\x7c\\x2e\\xe8\\x4f\\x89\\xd2\\x6a\\x1f\\x7b\\x19\\x86\\x19\\x3f\\x96\\x63\\xc5\\x87\\xd5\\x0c\\xa9\\xdd\\xf6\\x18\\x6a\\x51\\x76\\xaf\\xef\\x1a\\xdb\\x24\\x81\\xb7\\x92\\x54\\xb7\\x8d\\x3b\\x34\\xc6\\x97\\x90\\xeb\\x28\\xb9\\x0b\\x14\\x61\\x17\\x0c\\x3d\\x73\\x81\\x83\\x76\\xcd\\xf3\\x71\\xaf\\x0a\\x0f\\xea\\xf1\\x4f\\xdf\\x70\\x16\\xed\\x6e\\x7f\\x08\\xc0\\xc1\\x4b\\x52\\x70\\x5c\\x86\\xd4\\xf0\\x00\\x3b\\x5e\\x45\\xf9\\x74\\xc0\\x64\\x16\\xcc\\xb5\\xca\\x3e\\x9d\\x52\\x9a\\xa9\\xd4\\x15\\xc2\\x5a\\x44\\x6f\\xa2\\xd6\\x9e\\x82\\xf4\\x99\\x4e\\x57\\xe9\\x22\\xc1\\x7c\\x1c\\x34\\x2d\\xd7\\x28\\x1e\\x41\\x00\\x52\\xd9\\xe4\\xaa\\x1b\\x30\\x9b\\x7d\\x47\\x0d\\x45\\x8c\\x66\\x3e\\x17\\xff\\x25\\x00\\xd0\\xbb\\x8e\\x46\\xa9\\xc4\\x36\\x7e\\x09\\x1c\\xaf\\x87\\xdd\\xfc\\x06\\x2a\\xae\\x08\\xa6\\x5c\\xb9\\xe0\\xea\\xa7\\x1c\\x99\\x45\\x9c\\x5e\\x7c\\xb1\\x12\\xa2\\xee\\x98\\xa5\\xe4\\xcb\\xee\\x0d\\xc5\\x20\\xf8\\x7c\\x30\\x22\\xda\\x65\\x49\\xbe\\x1e\\xe7\\x0a\\x0a\\x73\\xad\\x84\\x99\\xc9\\x7d\\xd0\\x6a\\xa1\\x4c\\x9f\\xd8\\x62\\x8a\\x92\\xca\\x6d\\xb4\\x87\\x32\\x2d\\xb9\\x59\\x8a\\xda\\x1f\\xce\\x28\\xf4\\xb9\\xfc\\x1d\\x3c\\xc3\\x9d\\xcf\\x2e\\xd1\\xdf\\x3d\\x86\\x2d\\x87\\xf5\\x5c\\xc1\\x01\\x6f\\xb9\\xe7\\x3e\\x7c\\xc8\\x97\\xb9\\x70\\xd5\\xff\\x35\\xac\\xfe\\xb0\\x5c\\x1c\\x89\\x19\\x28\\x08\\xae\\xeb\\xfb\\x2c\\xd1\\x7c\\xb1\\xc9\\x4f\\xab\\x05\\x98\\x98\\xfe\\xdc\\x2f\\xbd\\x44\\xcc\\xef\"},\n{{0xab,0xfd,0x69,0x7b,0xfb,0xc5,0xb6,0xff,0x2b,0xdf,0xf3,0xbc,0xe1,0xd7,0x77,0xe0,0x5f,0xbe,0x3e,0xc8,0xb9,0x5c,0xe6,0x93,0xd6,0x23,0x93,0x12,0x09,0x31,0x3d,0x4f,},{0xa7,0x09,0x32,0x1a,0x02,0x10,0xcb,0x80,0xab,0x58,0xbf,0x95,0x5e,0xcd,0xeb,0x8a,0xaf,0x9e,0xe4,0xc3,0x75,0xf9,0x59,0xc5,0x30,0x89,0xd4,0x37,0x48,0x8c,0x08,0x2d,},{0x8c,0x36,0xb5,0xa1,0x11,0xc5,0xa8,0x11,0x9f,0x2d,0x9d,0xb5,0x7e,0xbb,0x59,0x2d,0xae,0x86,0xad,0x4b,0xf6,0x78,0xc1,0x49,0x2e,0x26,0xf3,0xc1,0x0f,0xbe,0x03,0xf1,0x05,0xca,0xe0,0xdc,0x68,0xb5,0x52,0x59,0xb9,0xb5,0x98,0x92,0x89,0xdb,0x33,0xd9,0x5d,0x2e,0xe6,0xb7,0x56,0xc7,0x60,0xf9,0xd3,0xaa,0x0e,0x68,0xa1,0x89,0xde,0x02,},\"\\x89\\x6b\\x7a\\xb8\\x41\\x3f\\xfe\\x43\\x9a\\x2f\\x44\\x87\\xec\\x49\\xd6\\x4e\\x31\\xc7\\x4f\\x50\\xac\\x83\\xf5\\x5d\\xa6\\x1a\\x70\\x03\\xaa\\x71\\x6c\\x2a\\x9d\\xf6\\xb4\\x38\\xe6\\x2f\\x53\\xd8\\xf0\\x19\\x2f\\x37\\x36\\x32\\x47\\x60\\xd7\\xe8\\xc4\\x4a\\xc0\\xba\\xca\\x3a\\xe2\\xa6\\xfb\\x93\\xf1\\x3d\\x96\\x88\\x67\\x99\\xfd\\x2c\\x45\\x51\\xb0\\xab\\x36\\xf1\\x73\\x08\\x55\\x55\\x12\\x65\\xa5\\xa3\\xc3\\xc2\\x1d\\x95\\x16\\xa2\\x37\\xf5\\xdb\\xc1\\xc8\\xe7\\x29\\x99\\xb7\\x82\\xc5\\xca\\x41\\xa4\\xf6\\xe9\\x30\\x8e\\x64\\xaf\\xde\\xe0\\xbf\\x47\\x9e\\x54\\x6b\\x89\\xc5\\x1b\\xc5\\xe4\\xf7\\x1e\\x57\\xfb\\x24\\xce\\x43\\x7a\\x8b\\x81\\xb9\\x1d\\xc7\\x98\\xb5\\xab\\x36\\xf2\\x9a\\xfd\\x5b\\x48\\xe8\\x1c\\x17\\x6a\\xe5\\xed\\xf9\\x53\\x71\\xba\\x32\\x46\\xfb\\x43\\x94\\x05\\xbd\\x10\\xee\\xd3\\x67\\x8e\\x3e\\xc6\\x23\\x07\\xa3\\xb3\\xdc\\x1b\\xad\\xba\\x05\\x1f\\x16\\x77\\x4b\\x85\\x08\\x81\\x88\\xc2\\xa9\\xe3\\x20\\xa1\\x61\\x8d\\x5f\\x26\\xce\\x94\\xee\\x2b\\x93\\x3c\\x30\\x5f\\x6d\\x95\\x84\\x95\\x8e\\xea\\x31\\x56\\xc3\\xd1\\xe0\\xef\\x39\\xa1\\x86\\x27\\x5e\\xe6\\x2c\\x40\\xf3\\xc1\\xac\\xd1\\x5d\\x8b\\xe6\\xe0\\x74\\x35\\x1f\\x53\\x49\\xce\\x3d\\xf6\\x95\\x17\\x50\\x5f\\x45\\xfa\\x06\\xa8\\x15\\xc6\\x9c\\xa1\\x8f\\x45\\x0f\\x42\\xb5\\xcf\\x4e\\xbd\\x99\\x26\\x84\\x45\\xe0\\xf6\\x81\\x04\\xa7\\xde\\xeb\\x0a\\x11\\x5b\\x81\\x7b\\x99\\xe1\\xa7\\x3e\\x0f\\xa9\\xd8\\x7d\\xb7\\x1f\\x8e\\xc9\\x4f\\x87\\x08\\xc9\\xbc\\x2e\\x62\\x2b\\x96\\x33\\x65\\xeb\\xcf\\xb9\\x7c\\xfe\\x73\\x32\\x63\\x00\\x70\\xe9\\x65\\x4e\\xaa\\x60\\x36\\x1a\\x45\\xd4\\x02\\xdc\\x0a\\xb2\\x97\\x66\\x52\\x42\\x66\\x7f\\xbd\\x99\\x40\\xf6\\xcd\\x33\\x19\\x52\\x46\\xa8\\xc2\\x86\\x9a\\xf7\\x59\\xa8\\x62\\xd4\\xb6\\x41\\xdb\\x14\\x4d\\x57\\x32\\x36\\x6b\\x20\\x63\\x6c\\x40\\x27\\x78\\x7f\\x55\\x80\\x27\\xd7\\x6f\\xcb\\xf8\\x43\\x2e\\xb9\\x3e\\x6d\\x14\\x56\\x7d\\xf8\\xdb\\xf2\\x11\\xda\\xeb\\x56\\x55\\xdb\\x10\\xac\\xdd\\xd0\\x5e\\xca\\x06\\xac\\xce\\xe9\\xfd\\xa8\\xd3\\xb7\\x0c\\xa1\\xe6\\xdc\\x58\\x7f\\xa4\\xb7\\x8f\\x63\\xcd\\x66\\x3f\\xf0\\x24\\x38\\x70\\x57\\x0f\\x4d\\xcb\\xaa\\x3f\\xb6\\x26\\xb4\\xe1\\x13\\xbd\\xe4\\x7d\\x5c\\x9d\\xb2\\xb4\\xba\\x6e\\xc6\\xdb\\xf9\\x18\\xac\\x05\\x69\\x49\\xef\\x3c\\xfc\\xb1\\x15\\x56\\x16\\x15\\x77\\x1a\\x03\\x5a\\x43\\xd3\\x3b\\xa2\\x65\\x1d\\xbe\\xb4\\x63\\x48\\x26\\x1c\\xe3\\xc4\\xc9\\xf2\\x46\\xd2\\x3f\\x94\\xdb\\xc2\\xd0\\xc1\\x9b\\x92\\x1e\\x24\\xc7\\x7d\\xa5\\x99\\x2f\\x1b\\x4b\\xdf\\x2e\\xde\\xa4\\x99\\xf5\\x41\\x11\\x68\\xac\\x0c\\x12\\xe9\\x6f\\x3b\\x15\\xd2\\xe1\\x2a\\xc8\\xd7\\xb3\\xed\\x8d\\x1e\\x07\\xc4\\x26\\x7a\\x25\\xd3\\xa3\\xc3\\x53\\xa4\\x20\\x8b\\x74\\x06\\x27\\x8a\\xab\\x9e\\x70\\x0f\\x7b\\x20\\x6f\\x48\\xe6\\xea\\x7c\\xc9\\x7e\\x55\\x4f\\x15\\xc9\\xbe\\x34\\x9d\\xd9\\x15\\x14\\xdb\\xe8\\xd8\\x89\\xf2\\xdc\\xbb\\xfa\\x18\\x2c\\x9f\\xaf\\x58\\x07\\xa6\\x9b\\x2e\\x97\\xfa\\x77\\x1a\\x6f\\x23\\x1a\\x4c\\x7b\\x31\\xd1\\x17\\xb8\\xed\\x0e\\x63\\x0c\\xdf\\x13\\xe0\\x82\\xbb\\x4f\\x63\\xc3\\xf9\\xac\\xb3\\x55\\x32\\x04\\xcc\\xd7\\x6e\\x18\\x35\\xc4\\x6e\\xec\\x3d\\x43\\xc5\\x61\\xbb\\xf1\\x7c\\x92\\x21\\x4a\\x6d\\xb1\\x21\\x2b\\x60\\x03\\xcf\\x2c\\xc2\\x6c\\x7a\\xe6\\x75\\xfc\\xd0\\x53\\xb9\\x47\\xe7\\x22\\xf9\\xe8\\x57\\x62\\xce\\x8a\\x16\\xe4\\x65\\x4e\\xc6\\x34\\x2f\\xc6\\x46\\xe5\\xca\\xb4\\x72\\x79\\x7e\\xab\\xf6\\x58\\xba\\x4a\\xfd\\x14\\x2f\\xc8\\xfc\\x4c\\x8f\\x98\\xf2\\x3c\\x24\\xdc\\x99\\x84\\x7a\\xe8\\xce\\xf0\\x87\\x9e\\x1a\\xb3\\xbb\\x80\\x97\\xe4\\xc3\\x52\\x9a\\xdd\\x2d\\x8e\\x8e\\x2c\\x20\\x69\\x21\\x0f\\x50\\xac\\xe1\\xae\\x32\\xa6\\xc8\\xe6\\x38\\x4a\\x2b\\xf7\\xd7\\x9c\\x66\\xc7\\x46\\x14\\x9c\\x84\\xad\\x75\\xa3\\xa1\\x76\\xe4\\x5e\\x13\\x6d\\x94\\x69\\x5a\\xed\\x4b\\xfd\\x08\\xb4\\x26\\xea\\x8c\\x4b\\x93\\x79\\xf3\\x74\\x25\\x50\\xe1\\xcf\\x5a\\xc8\\x4c\\x18\\x17\\x4d\\x68\\x0e\\x92\\xaf\\x2c\\x18\\x74\\xac\\x1c\\x13\\xd2\\x82\\x32\\xde\\x19\\x37\\x68\\xe5\\x61\\x94\\x7c\\xbd\\x6b\\x79\\xe9\\xb9\\x9d\\xa6\\x5c\\xfb\\x74\\xff\\xb3\\x2f\\x7d\\x3d\\x20\\x25\\xc6\\x07\\x63\\xdc\\x07\\xf5\\x55\\x39\\xb4\\xd2\\x53\\xde\\x1e\\x6c\\x25\\x82\\x3a\\x62\\x58\\xc7\\xa9\\xce\\xd1\\x50\\x1d\\xce\\x27\\x86\\x89\\x8a\\x3e\\x05\\xc9\\xbf\\xf8\\xfc\\x5b\\x21\\x25\\xd0\\xf4\\x71\\x08\\x8a\\x13\\x4b\\x48\\x73\\xc8\\xd5\\x5c\\x04\\x45\\xf6\\xca\\x39\\x6b\\x3d\\x7b\\x4b\\xc2\\xbf\\x5c\\x4d\\x22\\x40\\xda\\x41\\x82\\x93\\xaf\\x6a\\x3e\\xd8\\x53\\xde\\xdd\\x3b\\xf6\\x68\\xd9\\x37\\xb3\\x5a\\xa0\\xc2\\xac\\xbf\\x23\\x76\\x6f\\x9f\\x3e\\x96\\x82\\x84\\x75\\xab\\x08\\x64\\x96\\x61\\x7a\\x6e\\x81\\xd6\\x53\\x58\\x9b\\x2f\\xe5\\x0b\\x7b\\xa8\\xf0\\xcf\\x1e\\x5a\\x44\\xd8\\xd6\\x2f\\x08\\x37\\x7a\\xbf\\xc2\\x62\\x97\"},\n{{0xdc,0xfa,0xd5,0x9f,0xc6,0xb6,0x97,0x10,0x9e,0x72,0x7f,0xf6,0x6a,0x5f,0xe9,0x3a,0x6a,0x22,0x6f,0x63,0x1a,0x64,0xe5,0x79,0x7a,0xd8,0xd8,0xc8,0xb6,0x35,0x87,0x34,},{0xe7,0x9f,0x4f,0x51,0x13,0x72,0xe3,0x55,0xe7,0xe9,0xe0,0xe8,0xb5,0x34,0x6f,0xdb,0xcd,0x2d,0xf1,0xfc,0x5c,0x3a,0x18,0x90,0xd2,0x7f,0xa1,0xfa,0x92,0x8d,0x27,0xa6,},{0x05,0x2f,0xf7,0x95,0x40,0x73,0x74,0x56,0xc6,0xa4,0x2c,0x41,0xc9,0x7d,0x6b,0xf5,0x17,0xb8,0xcf,0x28,0x9b,0xc7,0x8b,0x50,0x3d,0xee,0x6a,0x30,0xef,0x51,0x68,0xb3,0x8f,0x75,0xbe,0xac,0xa1,0xe1,0x4d,0x97,0x1f,0x87,0x73,0xe3,0x94,0x1b,0xd6,0xdf,0x5c,0xb9,0x77,0x8d,0xea,0x12,0x5a,0x4c,0x4f,0xe0,0x11,0x6b,0x70,0xee,0x84,0x0b,},\"\\x7d\\x92\\xdd\\xd8\\x13\\x3c\\x61\\xc6\\x10\\xc1\\x30\\x8c\\x23\\xae\\xaf\\x99\\x38\\x84\\xa4\\xe6\\x7f\\x7b\\x94\\xbb\\x88\\x6d\\xad\\x50\\x98\\x69\\xa9\\x32\\xec\\x4a\\x27\\xd4\\x10\\xd2\\xc2\\x9c\\xa7\\xae\\xae\\x6f\\x92\\x80\\xcf\\x6c\\x4b\\x06\\x7e\\xc7\\x51\\xe5\\xe8\\xc3\\x9f\\xf4\\x44\\xd4\\x22\\xce\\xab\\xae\\x14\\x5d\\x42\\xf0\\x47\\x45\\x3d\\xd4\\x02\\xd1\\x79\\x74\\x05\\x03\\x34\\x09\\xe7\\x2c\\xc1\\x9f\\x79\\x3d\\x5d\\x26\\x8f\\xb3\\xfd\\x2c\\x11\\xea\\x2c\\xb0\\xd7\\x04\\x36\\xe1\\x8f\\x9e\\x88\\xa0\\x15\\x15\\xdc\\x86\\x5f\\x6a\\x1e\\xb2\\x36\\x90\\x32\\x8f\\xd7\\x5d\\xe2\\x63\\x21\\xa3\\x8f\\x12\\x19\\x7a\\x97\\x20\\x1b\\x1d\\x84\\x52\\x94\\x4f\\xbc\\x54\\x1c\\xb6\\x8c\\x77\\xd4\\x95\\x15\\xdb\\x53\\x26\\xf2\\xb1\\xd0\\x76\\x3e\\xda\\x06\\xd2\\x50\\xce\\x2a\\x5e\\x0b\\xbd\\x7d\\x16\\x76\\xd7\\xd4\\x1f\\xb3\\xab\\xe8\\x8b\\xdb\\xe3\\x72\\xf9\\x6b\\xf7\\xbb\\x52\\x6d\\x6b\\x65\\xa2\\x51\\x5e\\x83\\xa5\\x77\\x04\\x5b\\x54\\x79\\xb3\\x8b\\x85\\x2f\\xe4\\xab\\x01\\x1c\\xbf\\x21\\xc0\\x85\\xef\\x5f\\x0a\\x7c\\x1b\\xed\\x76\\x57\\x2b\\x0f\\x86\\x02\\x28\\x06\\x7a\\x89\\x9f\\x89\\x5a\\xe7\\xf6\\x25\\x6e\\xb6\\x51\\x40\\x87\\xf9\\xd6\\xf5\\xc3\\x55\\x96\\xc1\\xf4\\x80\\xc7\\x31\\x13\\x54\\x6c\\xb9\\xcc\\x30\\xf5\\x6a\\xb0\\x74\\xa9\\xff\\x28\\xac\\xab\\x7e\\x42\\x65\\x0a\\x96\\x1d\\xa3\\x25\\xac\\x5b\\x65\\x94\\xb8\\x1c\\x93\\x25\\x0a\\xe7\\xd3\\x92\\x67\\xa1\\x9c\\x97\\x62\\x54\\x07\\xed\\xda\\x04\\x04\\xcb\\xe5\\xa3\\x6e\\x95\\x9f\\xc8\\x20\\xb2\\x7e\\xf5\\xca\\xd7\\x96\\xc1\\x1e\\xaf\\xf1\\xc0\\xe2\\xf9\\xd4\\xb3\\xc6\\x49\\x15\\x02\\x19\\x5d\\xe0\\x36\\x59\\xb3\\x64\\xe4\\xe8\\x7b\\x2b\\x2d\\x73\\x3e\\xc2\\x5e\\x6f\\x9b\\x63\\xd5\\xf6\\x91\\x79\\xe0\\xd2\\x7b\\xd4\\xae\\xcc\\x8f\\x12\\xa5\\x07\\xa9\\x1b\\xaa\\x48\\xd9\\x9b\\x3a\\x42\\x6c\\xec\\xeb\\xae\\xf3\\x7d\\x73\\x61\\x10\\x6a\\x84\\x90\\x64\\x43\\x09\\xf6\\xeb\\x4d\\x25\\x96\\x44\\x3b\\x6b\\x01\\x18\\xb9\\x45\\xac\\xec\\xc6\\x44\\x3e\\xa6\\x1f\\xcd\\x15\\x5b\\x54\\x32\\x5b\\xc2\\xc3\\x1b\\xe0\\x25\\x0f\\x94\\x82\\xe1\\x3f\\xd8\\xeb\\x44\\xe2\\xae\\xd7\\x6b\\xe8\\x12\\xaf\\x54\\x53\\xcb\\x7f\\x86\\x32\\x45\\x8f\\xc8\\xa0\\x2a\\x2f\\x45\\x48\\x0d\\x79\\xb0\\x6c\\x7d\\xda\\x38\\xb4\\x69\\x5d\\x08\\xb5\\xa4\\x30\\x50\\x4f\\x1a\\xe2\\x27\\x5b\\x05\\xc9\\x1e\\x79\\x9d\\x44\\x70\\xf3\\x8a\\xbe\\x77\\x73\\x6d\\xfa\\x89\\x5c\\x19\\x7e\\xa4\\xb6\\x3c\\x2d\\xf1\\x8e\\xfe\\xb1\\x41\\x84\\x83\\x7b\\x8d\\xdf\\x48\\x90\\x95\\x20\\xd9\\x10\\x45\\xb9\\xd9\\x65\\x5c\\x22\\x5a\\x83\\x17\\x39\\x60\\xb4\\xd7\\xcd\\x0d\\x8b\\xae\\x30\\x23\\x75\\x57\\xf8\\x69\\x70\\x8b\\xe1\\x38\\xad\\x52\\x46\\xc8\\x66\\xc6\\xc0\\x59\\xdc\\x59\\x7a\\xbf\\xd4\\x94\\x32\\x37\\x37\\x68\\x96\\x73\\x6b\\x97\\xb7\\xe0\\x28\\x9e\\xf9\\xbb\\xd2\\x94\\x77\\x74\\x5c\\xb6\\x0f\\x46\\x20\\x2f\\x1d\\xe9\\x84\\xf5\\x09\\xb1\\x80\\x88\\x33\\xf5\\x80\\x18\\xcd\\xe8\\xc2\\x6b\\xef\\x4c\\x00\\x5b\\xdc\\xa3\\x85\\xb0\\x57\\x35\\x11\\x0c\\xa0\\x2e\\x56\\x2b\\x50\\xed\\xdf\\xf6\\xfd\\xe9\\xfb\\xb8\\xd0\\x30\\xce\\xdf\\x70\\x31\\xbb\\xeb\\x32\\xb1\\x2b\\x24\\x2b\\xe4\\x9f\\xde\\x01\\x60\\xc1\\xfb\\xde\\x99\\xb0\\x3c\\x06\\x2a\\x1a\\x47\\x06\\x23\\x45\\xc9\\x2e\\x0b\\x60\\x4d\\x08\\x0f\\xac\\xce\\x92\\x43\\x48\\x15\\x29\\xc7\\x05\\x97\\xdf\\xd6\\x43\\x82\\xcb\\x54\\x06\\x91\\xb5\\x9b\\x71\\xb0\\x94\\x33\\x2b\\xaf\\x0b\\xbb\\x12\\x5b\\x63\\xa4\\x46\\xbb\\x97\\x49\\x1c\\x04\\x64\\x32\\x8c\\xab\\xd7\\x62\\x7c\\x46\\xf3\\x92\\xf3\\xb1\\x24\\x82\\x2f\\x20\\x13\\xc6\\xe1\\x6d\\x3c\\xa8\\x7c\\xc5\\xbe\\xcf\\x56\\xb0\\xfc\\x6e\\xb2\\xbf\\x99\\x23\\xb3\\x01\\x2b\\xa2\\xb6\\x12\\x50\\xa6\\x33\\xa4\\xd2\\xee\\x39\\x12\\x56\\xc5\\x20\\x95\\x73\\x82\\xaf\\xf9\\x70\\xc5\\xd2\\x23\\x85\\xc3\\x34\\x4c\\x6d\\x4b\\x45\\x61\\x57\\x1c\\x96\\x32\\x9b\\xf7\\x56\\x15\\x29\\x75\\x16\\xb9\\xf2\\xce\\xb9\\xf9\\x97\\xa3\\x95\\x23\\xaa\\x0f\\x58\\xb4\\x88\\x77\\x2d\\x82\\xfc\\x0d\\x78\\xc5\\xdd\\x52\\xec\\xfa\\x6b\\xfa\\xc6\\x3a\\x76\\xe1\\x48\\x08\\x8b\\x36\\xf2\\x4a\\x88\\xe6\\x83\\x85\\x49\\x6d\\xda\\xdf\\x30\\x23\\xf7\\x2d\\x87\\xc2\\xef\\xa2\\x6e\\x87\\x7d\\x32\\xf1\\xda\\x97\\xcd\\xb4\\x2c\\x8f\\x15\\x71\\x89\\x88\\xe4\\x28\\xcd\\x02\\xf4\\xd0\\x95\\x43\\xbd\\x0b\\xd5\\xb2\\xf4\\x09\\x96\\x3d\\x0f\\xa3\\x73\\x53\\x1f\\x78\\xb5\\x92\\xbd\\x13\\x7e\\xea\\xea\\x0b\\x4e\\x7f\\x91\\x82\\x08\\xe1\\xd5\\x90\\x08\\xa8\\xaf\\x50\\x58\\xf5\\xd9\\x23\\xc4\\xf3\\x2d\\xf1\\x99\\x90\\xf1\\x0d\\xd3\\xf0\\xeb\\x20\\x62\\x93\\xb2\\xb3\\x44\\x3f\\x4a\\x5d\\x2d\\xcc\\x5f\\x7d\\x3b\\xba\\xf6\\xaf\\x43\\xfe\\x45\\xf5\\xdb\\xbe\\x53\\xec\\xf4\\xbf\\x1b\\x4a\\x13\\xe2\\xd4\\x6e\\xf8\\x02\\x98\\xd4\\xf0\\x1c\\x40\\x2e\\x21\\x0f\\xcb\\x9f\\xf2\\x08\\x4e\\xc0\\x3e\\x42\\x00\\x8d\"},\n{{0x69,0x6d,0xc4,0x81,0xf6,0x19,0xa9,0x49,0x85,0x63,0xc8,0x3d,0x0d,0x0e,0x55,0x56,0x5c,0x14,0xa0,0x78,0x45,0xfe,0x4a,0x66,0xab,0xa2,0x24,0x7b,0x11,0x3f,0xf8,0xef,},{0xc9,0xd7,0x37,0xab,0xc4,0xa9,0xe7,0x3c,0x14,0x9e,0xad,0xc1,0x95,0xa8,0x37,0x89,0x9f,0x2c,0xd5,0x01,0x93,0x73,0xc3,0x0e,0xca,0xf6,0x2e,0x5f,0x8e,0x14,0xb6,0x45,},{0xde,0xd5,0xd9,0x91,0x93,0x5c,0xd1,0xf9,0x39,0x0f,0x1e,0x85,0x92,0x9c,0xa1,0x6d,0xab,0xfc,0x83,0xe6,0x5e,0x43,0x27,0x2e,0xb1,0x75,0x16,0x71,0xaa,0x31,0x93,0x0c,0x72,0x85,0x55,0x34,0x14,0x30,0xce,0x7c,0x80,0x48,0x5d,0xe5,0x80,0x06,0x42,0x71,0x29,0xa4,0xd3,0x4f,0xd6,0x81,0xd5,0x2d,0x84,0x0a,0x16,0xba,0xfa,0x15,0x30,0x02,},\"\\x2d\\x4b\\x3a\\xd0\\xcc\\x99\\xf9\\x83\\xe4\\x1f\\x9b\\x48\\xc4\\xa8\\x18\\xef\\xf7\\x5f\\xcf\\xb9\\x3a\\x12\\x29\\xec\\x27\\x40\\xed\\x19\\xc1\\x07\\xd6\\x21\\xdf\\x78\\x05\\x8d\\xe7\\xc2\\xdd\\x72\\x51\\xf5\\xff\\x45\\x43\\x40\\x86\\x5f\\x6c\\x86\\xda\\x65\\x83\\x1f\\x66\\x72\\xdb\\x23\\x17\\x26\\xfd\\xfe\\x4b\\x9e\\xe3\\x15\\xd9\\x3c\\x72\\x44\\xa9\\x20\\xdf\\x37\\x05\\x4c\\x82\\x44\\x9d\\x31\\x0f\\x89\\x29\\x32\\xdd\\xba\\xd9\\x4c\\xc9\\xbb\\x39\\xac\\x89\\x37\\xcc\\x76\\xc9\\x65\\x21\\xd3\\xfd\\xc0\\x28\\xba\\x23\\x41\\x0b\\x29\\x02\\x3e\\x81\\x38\\xfd\\x3f\\x52\\x43\\x19\\x88\\x4e\\xe5\\xda\\xd0\\xd2\\x34\\xc8\\xdf\\x66\\x1f\\x88\\x24\\xbe\\x47\\x7e\\x21\\x69\\x9f\\x63\\x69\\xb1\\x5f\\xf3\\xff\\xef\\xc1\\x51\\xaa\\x55\\x5b\\x3c\\x3d\\x76\\xad\\xb4\\x5f\\x25\\x67\\x2d\\x38\\x0d\\x47\\x2b\\x31\\x48\\xda\\xbd\\xef\\x42\\x45\\xb6\\x8e\\x82\\x85\\x62\\xf2\\x5c\\xc5\\xb8\\x1d\\x9b\\xbb\\x24\\x1b\\xca\\x9d\\x19\\x34\\xea\\x35\\x3f\\x95\\xf7\\xdb\\xf3\\x64\\x64\\x33\\xe8\\x1a\\x35\\x4e\\x1e\\x20\\x56\\xb8\\x1c\\x15\\xaa\\x1f\\xa8\\xed\\x7a\\x9d\\x1a\\xf9\\x92\\x38\\xcd\\x5a\\x5a\\xe9\\xe8\\x41\\xc4\\x8d\\xc3\\x48\\xae\\x1d\\xe7\\xc4\\x1a\\xca\\x23\\x32\\x82\\x36\\xbc\\x38\\xb4\\x7f\\x47\\xc7\\x36\\xb2\\x57\\xa3\\x07\\x8d\\x57\\xd5\\x74\\xb6\\x47\\xa7\\xfc\\x8c\\x4d\\x01\\xbc\\x50\\x30\\x21\\x50\\xd5\\x03\\x2b\\xfa\\xcb\\x04\\xbb\\x0f\\xd1\\x55\\xd9\\x4d\\x92\\x06\\x66\\x77\\x20\\xe1\\x80\\xa6\\x45\\xaf\\x46\\x24\\x59\\xe3\\x32\\x6d\\x46\\x0d\\xa3\\xc4\\x8e\\x75\\x72\\x67\\x8e\\x19\\x19\\x26\\x8d\\x3e\\x47\\x40\\xd6\\x2a\\x26\\xf7\\xc8\\x55\\x9c\\x1c\\x43\\x9b\\x4b\\x0b\\x0c\\x59\\x42\\xa6\\x20\\xcf\\xdb\\x93\\xcc\\x68\\xaa\\x15\\x52\\x0f\\xf2\\x86\\x42\\x69\\xd7\\xa0\\xc1\\x55\\x78\\x0a\\xdc\\x6c\\x18\\x8e\\x0b\\x56\\x5f\\xb9\\x59\\x43\\x19\\xe6\\xf5\\x1d\\x15\\xca\\xf6\\xb2\\x80\\xe7\\x15\\x8f\\x25\\x79\\x94\\x07\\xf3\\xba\\x0d\\xd1\\xce\\xea\\x64\\xb9\\x32\\x6d\\x2c\\xfd\\xef\\x01\\x7e\\x1f\\x17\\x2f\\x4d\\xde\\x0f\\x7e\\x46\\x13\\x50\\x1a\\xf0\\x1e\\xe0\\xac\\x30\\x09\\x5f\\x48\\xb5\\x95\\x90\\x90\\x2b\\x1a\\xec\\xfe\\x09\\x34\\x13\\x91\\x8d\\x83\\x5a\\xdf\\x96\\x2e\\xcf\\x18\\x58\\x0d\\x16\\xf9\\xfd\\x4f\\x6f\\xa1\\x09\\x8a\\xf1\\xd8\\xa2\\xbc\\x24\\xdc\\x86\\xf7\\x1d\\x0a\\x61\\xff\\x15\\x00\\x10\\x86\\x7d\\x08\\x69\\x87\\xb5\\x1d\\xd0\\x30\\xf5\\x0a\\xb6\\xe3\\x74\\xb8\\xe0\\x11\\x84\\xb3\\xe2\\xb2\\x14\\xab\\x1c\\x7f\\xdf\\xae\\xdb\\xc5\\x45\\xe3\\x8c\\x3c\\xd2\\xf6\\x98\\x29\\x79\\x54\\x1f\\xe0\\xff\\x88\\xbe\\xd6\\x75\\x06\\xda\\x95\\x72\\x7a\\xf1\\xa2\\x03\\x8f\\x32\\x40\\xae\\x5b\\xfd\\x30\\xee\\x09\\x21\\x0e\\x00\\xfd\\xcf\\x2a\\x06\\x4d\\x5d\\xb4\\x61\\x49\\x46\\xbd\\xa9\\x72\\xc6\\x70\\x08\\x1a\\x6e\\xe6\\xa1\\x0b\\x63\\xf6\\x73\\xc8\\x3c\\x91\\x5c\\xa5\\x57\\x3e\\x0e\\xd6\\x87\\xb0\\x06\\x7c\\x40\\x07\\x92\\xa9\\xbc\\xc3\\x34\\x4e\\x0e\\x43\\xf5\\xdf\\x63\\xfe\\xd5\\xef\\xa8\\x5e\\x9a\\xaf\\x85\\xe4\\xd7\\xa2\\xc5\\x3a\\x6c\\x92\\x82\\x8e\\x07\\xfe\\x63\\xe2\\xd2\\x3f\\x1b\\xdf\\x97\\xd8\\x4a\\xdc\\x36\\xe9\\xfc\\x95\\xfa\\xad\\xf0\\x3e\\x06\\xd6\\x5a\\x19\\xc5\\xe2\\x85\\xef\\xfd\\x0e\\xa0\\xcf\\xa8\\x39\\xd5\\x5a\\x0a\\x0d\\xbf\\x6d\\xa2\\x87\\x85\\xc7\\x7f\\x5c\\x04\\xbf\\xd5\\x99\\x74\\xef\\x37\\x93\\xcd\\xc3\\x98\\xdf\\x7a\\x1b\\xbc\\x9c\\xfc\\xfc\\x3a\\x51\\xff\\xa9\\xa2\\x0d\\x60\\xc4\\x7b\\x24\\x5d\\xaf\\xa3\\xe4\\x46\\x23\\xcd\\x71\\x1d\\x77\\x62\\xc5\\x0a\\x67\\xd6\\x50\\xc7\\xe8\\xc4\\xfd\\x3b\\xeb\\xc0\\xc4\\x98\\xd2\\x15\\x2a\\xb9\\x82\\x7c\\x70\\x0c\\x7b\\x28\\x61\\x56\\x57\\x49\\xb5\\x86\\x4f\\xec\\x95\\xb7\\xf6\\xb1\\x99\\x4e\\x78\\xd8\\xf8\\x5d\\x06\\x9c\\xc1\\x1f\\x85\\xbe\\xd9\\x71\\x2f\\x7a\\x9f\\x06\\x0b\\x0b\\xf6\\x75\\x32\\xe8\\x8e\\xb9\\xdf\\x3e\\xb4\\xa8\\xd2\\xfb\\xba\\xa8\\x5e\\xda\\x92\\x6d\\x81\\xc4\\x9f\\xb8\\x6e\\x73\\x73\\x1b\\x7e\\xd2\\xa1\\x90\\x50\\x78\\x51\\x3f\\x7c\\xa0\\xfd\\xcc\\x3b\\x1d\\x57\\x6e\\x6a\\x60\\x12\\x4c\\x44\\x61\\x8d\\xf1\\x89\\x0e\\x16\\x97\\x94\\x95\\x6c\\xb1\\xec\\x50\\x1b\\xa2\\x04\\x99\\x70\\xc8\\xe7\\x4c\\xc1\\x80\\x06\\x4c\\x18\\x44\\x68\\xbe\\x4f\\x08\\x9a\\x3a\\xe2\\x26\\x3c\\x85\\x58\\x63\\xb6\\x2c\\x28\\x31\\x3d\\xdf\\x9c\\xa8\\x5b\\xf6\\x6b\\x08\\xa2\\x64\\x15\\x5a\\xd7\\xc3\\x28\\x23\\x8d\\xfe\\x61\\x4a\\x07\\xed\\xe9\\x15\\x5a\\x09\\xcc\\xaf\\xf9\\x22\\x92\\x24\\x93\\x41\\xba\\xed\\xcb\\xe0\\xe6\\x46\\x6e\\x2c\\x76\\x04\\x5e\\x46\\xda\\xd2\\xfc\\x89\\x9a\\x17\\x82\\xe0\\x09\\x98\\xe7\\x9a\\x83\\xab\\xfa\\xe9\\xb7\\x06\\xf7\\x07\\xf5\\x8e\\x73\\x02\\x03\\xe1\\xd2\\xcc\\xa0\\x28\\xc9\\x22\\xbe\\xb6\\xd1\\x57\\xfa\\x7a\\x98\\x13\\x2a\\x92\\x1a\\x3d\\xa2\\x1f\\x2f\\x76\\x9b\\xb6\\xc1\\xf5\\xf1\\x9e\\x9e\\x85\\xa1\\x3b\\x78\\x1a\\xf1\\x41\\x03\\x9d\\x51\\x4e\\xe1\\x07\"},\n{{0xf3,0xf8,0xd6,0x2f,0xee,0x3a,0xf3,0x75,0x66,0x96,0x30,0xcb,0xf0,0x63,0xbf,0xa9,0x30,0x18,0x9a,0xf1,0x36,0xcd,0x75,0x91,0xe2,0x4d,0x57,0x8d,0x73,0x66,0xbf,0x61,},{0x47,0x14,0xc6,0x04,0xaa,0x95,0xe1,0x82,0x8a,0x28,0x36,0x7b,0xa7,0x87,0x60,0xb5,0x89,0x64,0x31,0x68,0x3e,0xe9,0x96,0xcf,0xf9,0x68,0x71,0x77,0x32,0x91,0x95,0x3c,},{0x8d,0x6f,0x7c,0xee,0xb9,0x30,0x8b,0x4a,0x30,0x38,0x79,0xfc,0x6c,0xfa,0x5c,0xa8,0xe0,0x5d,0xfc,0x3d,0xef,0xc2,0xb2,0xcd,0x29,0x10,0xdd,0x4b,0x17,0xc9,0x4e,0xae,0xe8,0x45,0xab,0xe6,0x5f,0xd7,0x15,0xdf,0x05,0xb0,0x12,0x8e,0x43,0x16,0xe2,0x33,0x47,0x99,0xc6,0xe8,0xfa,0x74,0x7e,0xbc,0x8a,0x04,0x0c,0x74,0xf5,0xa1,0x48,0x0c,},\"\\xe1\\xdd\\x1f\\xfd\\x73\\x7a\\xc6\\xdc\\x24\\xb3\\xb9\\xce\\x3b\\x79\\xe8\\x35\\xbf\\x69\\x8e\\x93\\x13\\x03\\xd8\\x09\\xce\\xa1\\x78\\x2d\\xc3\\xaf\\x63\\xa0\\xd5\\xe6\\x73\\x92\\x82\\x3d\\x14\\x39\\xe7\\xb6\\xe3\\x37\\xb0\\x1c\\x8b\\x21\\x54\\x34\\xc2\\x78\\x2b\\x3b\\xe7\\x44\\x3c\\xb5\\xc8\\x81\\xe5\\xfb\\x6c\\xf3\\xbb\\x24\\x41\\x28\\xb4\\xda\\x6a\\x6f\\x42\\xb2\\xbb\\x2c\\xd7\\x51\\x29\\xd5\\x64\\x18\\x85\\x43\\x48\\xc3\\x39\\xdc\\xd9\\x12\\xb4\\x55\\x57\\xa9\\x15\\xe9\\xfd\\x7f\\x37\\x91\\x62\\x36\\x51\\x0c\\xb6\\xc3\\x31\\xc1\\x40\\xb8\\x7d\\x22\\x53\\x11\\x60\\x0b\\x8d\\x13\\x2a\\xc4\\x74\\x73\\x83\\x9c\\x72\\x0f\\x9f\\xf0\\xf9\\xc1\\xdc\\xaa\\x85\\x81\\x5a\\x9d\\x27\\xb9\\x75\\x8c\\xd9\\x1d\\xc5\\xd3\\xe5\\x33\\x26\\xfc\\xdf\\xb2\\x73\\x0e\\x52\\xbe\\x31\\x03\\x95\\x7a\\xc8\\x91\\x49\\xa4\\xc3\\x00\\x4c\\xb6\\x03\\x8c\\x0d\\x80\\xfa\\x72\\xac\\x63\\x0d\\x33\\x3b\\xe5\\xad\\x4a\\xdb\\x58\\x5a\\xeb\\x71\\xae\\xf1\\xcd\\xfd\\x57\\xb9\\x15\\xfa\\xc4\\xf1\\xaf\\x78\\xe7\\xa5\\x97\\xf8\\xd1\\xba\\x06\\x67\\x2b\\x19\\xc0\\xb6\\x58\\x08\\xa8\\xa0\\x71\\xff\\x84\\x09\\x03\\x43\\x79\\x58\\x9f\\x3d\\x41\\x30\\x2d\\x2d\\x39\\xb3\\x31\\x8e\\x8c\\x00\\x90\\xfa\\x36\\xcb\\x95\\x88\\x57\\xff\\x5b\\x21\\x1c\\x96\\x66\\xe2\\x7b\\xc8\\x95\\xab\\x9d\\x00\\x6a\\xba\\xf5\\x95\\x0a\\x03\\xff\\x17\\xea\\x98\\x21\\x78\\xa4\\x46\\xdd\\xa2\\x46\\x6f\\x5a\\x40\\xb8\\xf8\\x95\\x50\\x9e\\x4f\\x4d\\x4a\\x6a\\x27\\x39\\x99\\x7f\\xbd\\x49\\x68\\xf8\\x94\\x36\\xce\\xe3\\xd8\\xed\\xb8\\xa6\\xda\\x9b\\xd3\\xd5\\x5b\\x06\\x64\\x90\\xe8\\x33\\x9c\\x78\\x93\\x5b\\x77\\x88\\x3f\\x95\\xb9\\x32\\xfa\\x5e\\x6b\\xb7\\xdf\\x30\\x3b\\xe3\\x0f\\xa5\\x67\\x24\\x9f\\xff\\xb4\\x73\\xa1\\xe4\\x64\\x32\\x2d\\x7c\\x10\\x3f\\xe8\\x22\\x4c\\x7e\\xc5\\x7b\\xd3\\x9b\\xcd\\x03\\x0b\\x96\\x78\\x7a\\xeb\\xcd\\x20\\xe9\\xad\\x65\\x1c\\xfa\\x2b\\xf0\\x4b\\xa7\\x0a\\x1c\\xf6\\x48\\xe0\\xa5\\x44\\x95\\x67\\x20\\x2a\\x93\\x7a\\x45\\xbe\\xcb\\xb6\\xfc\\xde\\xd3\\x0c\\xf9\\xb5\\xc7\\x48\\xf8\\x82\\xb5\\xdc\\x2a\\x4d\\x65\\xbe\\x69\\xfd\\x7d\\x9c\\x38\\x1e\\x83\\xd0\\xdc\\x2a\\x34\\xb6\\xde\\xe9\\x12\\x20\\xba\\x90\\x6e\\x51\\x2f\\xcd\\x63\\x36\\x8e\\x2c\\xe7\\x33\\xe4\\x66\\xb4\\xb8\\x2b\\x84\\xfb\\x0c\\x71\\x7d\\xc8\\x94\\x5c\\xaf\\x6d\\x46\\xac\\x1c\\x2f\\x64\\x18\\xf7\\x72\\x9e\\xf4\\xc3\\x5e\\x40\\x24\\x22\\xd6\\x4b\\x1c\\x3e\\xbd\\x1b\\x32\\xa3\\x0f\\xc4\\xc5\\xee\\xce\\x7d\\x44\\x08\\xff\\x67\\x9f\\xf0\\x1a\\x1c\\x7b\\x03\\xca\\x51\\x7b\\xe5\\x2e\\x6a\\xe7\\x65\\x0f\\x7b\\xad\\x38\\x90\\x1e\\x34\\x8a\\x55\\x93\\xbc\\x99\\x8f\\x7c\\xf2\\xea\\x97\\x72\\x9c\\xb0\\x04\\xf5\\x61\\xb3\\xb5\\x8f\\xe5\\x98\\x09\\xa4\\x1f\\xd4\\xb3\\xb7\\x66\\x60\\x90\\x6a\\xd9\\xed\\xa2\\x3b\\xf9\\x25\\x43\\x7e\\xf4\\x52\\xb1\\x6f\\x54\\x0b\\x3b\\x80\\xa3\\x5a\\x70\\x93\\xc2\\x73\\x4e\\xef\\xe6\\xfa\\x97\\xd8\\x81\\xd7\\x9e\\xf5\\xb7\\x67\\xd9\\x88\\x9f\\x11\\x84\\x77\\xb7\\x3f\\x58\\xa4\\xc0\\xcb\\x15\\xe0\\xac\\x81\\x01\\x12\\x05\\x71\\xca\\x32\\xce\\x87\\x1f\\x30\\x8a\\xd9\\x05\\x7a\\x80\\xc8\\x28\\x15\\x4f\\xb1\\xbc\\x2b\\x20\\x1d\\x0c\\xd1\\x00\\x6e\\x02\\x2d\\x44\\x4d\\xc9\\x3f\\x1b\\xcf\\x22\\x4d\\xb7\\x4a\\x5b\\x37\\x3e\\x15\\x3e\\x85\\x18\\x54\\x94\\x8b\\x6d\\xa1\\x47\\xb7\\x32\\x87\\xcf\\x17\\xd1\\xfb\\x72\\xb4\\x82\\x76\\x11\\x10\\x36\\x09\\xca\\xb2\\xa1\\x77\\x9e\\x97\\x93\\xb9\\xa7\\x08\\x20\\xfc\\x6f\\x38\\x28\\xa6\\x4c\\x9e\\xac\\x35\\xef\\x7a\\xa7\\xb1\\x76\\x09\\xd8\\xef\\xf8\\xa9\\xe5\\x2e\\x4e\\xbc\\xd8\\x6b\\x1e\\x14\\xfd\\x14\\x0b\\xea\\x47\\xc6\\xb8\\xdd\\xc4\\x1e\\x8c\\xd2\\x71\\xeb\\x92\\x28\\x7c\\xbd\\x06\\x10\\x51\\x22\\x42\\xf7\\x6a\\x1e\\xf3\\xea\\xc1\\xe4\\xbb\\xbc\\x1a\\xda\\xe5\\x00\\x34\\xa7\\xa2\\x64\\x7e\\x08\\xb2\\xfd\\x20\\xaa\\x93\\xa9\\x3c\\xb2\\xff\\xde\\xbf\\x2e\\x46\\x1e\\xcc\\xef\\xbb\\xd1\\xfe\\x89\\x4c\\xe7\\x0a\\xdf\\x79\\x01\\x73\\xba\\xe9\\x6f\\x5a\\x55\\xa1\\x88\\x7e\\x9a\\xe0\\x9f\\xce\\xd1\\xd4\\x30\\x6c\\x29\\x1c\\x6b\\x19\\xec\\xac\\x47\\x07\\xe9\\xef\\x71\\x3e\\xa1\\x8a\\x75\\x62\\xc6\\x67\\x83\\x26\\x22\\x89\\x92\\x07\\x7a\\x46\\x69\\x73\\x49\\x66\\x10\\x80\\x00\\xb4\\x14\\x4f\\x45\\xa0\\xc3\\xa2\\x86\\x3a\\x4c\\x6a\\x3c\\x07\\x63\\x2c\\xb9\\x3e\\xb1\\x97\\xd2\\x94\\x88\\x4d\\x9c\\xa3\\xdd\\x4b\\x21\\xf3\\x9d\\xb7\\x07\\xf6\\x3a\\x7f\\x9a\\x57\\x0f\\x7f\\x0f\\xeb\\x99\\xb2\\xca\\x7d\\xa7\\xdf\\x92\\xa1\\x77\\xab\\xcf\\xe8\\x6e\\xc6\\x61\\xd3\\x0b\\xcd\\xcf\\x15\\x22\\xbd\\xb1\\xfe\\x11\\x67\\x32\\x58\\xdf\\x7e\\x46\\xef\\x4d\\x32\\x66\\x65\\x09\\x31\\x56\\x55\\x3f\\x28\\xb3\\x56\\x3f\\xe7\\x19\\x2f\\x72\\xf5\\xf9\\xb3\\x90\\x3d\\x79\\xfe\\xa0\\x4e\\x2c\\x48\\x8b\\x46\\x5b\\x49\\x78\\xd6\\x9f\\x26\\xe0\\x5a\\x59\\xd5\\xed\\x4e\\xf4\\xca\\xb2\\x32\\xac\\xfd\\x56\\x4f\\xc6\"},\n{{0x86,0x5a,0x43,0x2e,0xcc,0xe7,0xe7,0x8c,0x42,0x70,0x9f,0xc1,0xe5,0x31,0xdf,0x5e,0x39,0x59,0x13,0x2b,0x2b,0x6f,0x31,0x8f,0xd1,0xc3,0x45,0x21,0xf9,0xa2,0x6e,0x3b,},{0xc7,0xa8,0xca,0xf8,0x93,0x0b,0x62,0x2a,0x50,0x13,0x37,0xf9,0x28,0x40,0xed,0x96,0x61,0x1a,0x32,0x20,0x80,0xfd,0xe5,0xe4,0x9f,0x0a,0x2f,0x6e,0x33,0xb8,0x82,0x83,},{0x32,0xbb,0x75,0x20,0xe2,0x63,0x9c,0x6c,0xca,0x19,0xa2,0xb9,0x83,0x6b,0x08,0xf8,0xb0,0x83,0xca,0x33,0x36,0x9d,0xdf,0x5f,0x9a,0x87,0x7d,0x4c,0x7a,0x9e,0xb0,0x5f,0x9c,0x3d,0xc3,0x4e,0xd4,0xcf,0xa4,0xb2,0x83,0xe5,0x19,0x22,0xb0,0x94,0x06,0x6c,0xe9,0xff,0xa4,0xd9,0xdf,0x62,0x19,0x10,0xca,0x37,0xb0,0xb3,0x7f,0xba,0xbb,0x0e,},\"\\xb2\\x31\\xb6\\xd2\\xec\\xde\\x49\\xf5\\x13\\xb0\\xdf\\x25\\xaa\\xfc\\x3e\\x5d\\xa4\\x5b\\x6a\\x99\\x58\\xd6\\x0f\\x54\\x64\\xca\\x59\\x3c\\x03\\x00\\x5e\\xcf\\x36\\x1e\\xf1\\x69\\x6b\\xb6\\xe5\\x5d\\x65\\x38\\xe3\\x4b\\x38\\xf3\\x24\\xc2\\x1c\\xea\\x5c\\xc8\\x1a\\x00\\x73\\x27\\x8b\\xb9\\x27\\x27\\xef\\xf8\\x1a\\xf5\\x61\\x80\\x2d\\xce\\xf3\\x3b\\xec\\x10\\xad\\x65\\x94\\xe2\\x2d\\x9c\\x44\\x18\\xaf\\x39\\x88\\xa4\\x3e\\xd0\\x87\\xb9\\x95\\x4b\\xf8\\xd6\\x28\\x3e\\x4b\\xea\\xe8\\xc0\\x96\\xde\\x66\\x06\\x75\\x1c\\xbe\\xd6\\x85\\x84\\x6c\\x66\\x30\\xb9\\x52\\x8f\\xf3\\x64\\xa7\\xc4\\x84\\x64\\x11\\x34\\x72\\xc9\\x86\\x0b\\x33\\x71\\x96\\x3c\\x91\\x14\\x95\\xa9\\xc6\\x28\\xa3\\xe3\\xe4\\x7a\\xb0\\x99\\x1f\\x10\\xdd\\x1d\\xd3\\x31\\x61\\x52\\x52\\x62\\xd6\\x3b\\xab\\x64\\x88\\x19\\xd5\\x7d\\x12\\x69\\xe1\\x14\\x82\\x5c\\x54\\x34\\xe6\\xb2\\x84\\x5f\\x42\\x79\\x5d\\x4f\\xb0\\x83\\xad\\x79\\x40\\x1f\\x2a\\x07\\x61\\xc6\\x34\\xa5\\x45\\xae\\xc7\\xcd\\xb1\\x3b\\x5b\\xe4\\x49\\xf1\\xd8\\x29\\x32\\x63\\x78\\xed\\x1f\\x49\\x3f\\xe8\\xc8\\xe9\\xb0\\x68\\xcc\\x1d\\xbc\\xf1\\x65\\x55\\x0b\\x81\\x32\\xc3\\x19\\xda\\xc4\\x87\\xb8\\x7b\\xb2\\x2a\\x54\\xcd\\xf6\\x0a\\xac\\x71\\x51\\x61\\x82\\xa4\\xe6\\x9b\\xa0\\x83\\xf6\\xe8\\x6d\\x1a\\x4f\\x05\\x08\\x3a\\x77\\x61\\x9e\\xf2\\x39\\xf7\\x02\\x39\\x6d\\x7e\\x46\\x96\\x8c\\xc0\\x4a\\x3b\\x34\\xdf\\x32\\x65\\xec\\xf1\\x61\\x57\\xab\\xe1\\x5c\\x64\\x2c\\xd7\\x42\\x70\\x96\\xd8\\xd4\\x0d\\xb0\\x02\\xd1\\x96\\xca\\xb1\\xbe\\x30\\x4b\\xcf\\x32\\x2d\\x9d\\x1a\\x24\\x51\\xb6\\xc1\\x1e\\xea\\xf3\\xe8\\xe3\\xd9\\x29\\xf4\\x80\\xb6\\xb7\\x78\\x04\\xfe\\x84\\x49\\x6c\\xa7\\x57\\xe0\\x43\\x37\\x91\\x4c\\xe9\\x44\\x75\\xd7\\x99\\x0c\\x74\\x57\\xc8\\xe6\\x06\\xf8\\xbc\\x20\\x7d\\x2d\\x48\\x11\\x9c\\x80\\xa6\\xb4\\xa9\\xe0\\x7b\\x22\\x92\\x26\\x57\\x0d\\xcd\\x99\\x49\\x89\\xfe\\xcc\\x69\\x4c\\x6c\\x2f\\xb5\\x97\\x5c\\x9a\\x6a\\x9b\\x74\\xe8\\x15\\x9c\\x27\\xdd\\x36\\x77\\xdf\\xd5\\xcb\\x65\\x1f\\x1e\\x32\\xad\\xfa\\xfd\\x81\\x0b\\x6e\\x5d\\x5e\\xfb\\xac\\xe3\\x1a\\xe6\\xd9\\xb1\\x21\\x91\\xe8\\x93\\x98\\xda\\x06\\x3f\\x13\\x8b\\x75\\x84\\xc5\\x8e\\x77\\xe7\\xf9\\xfd\\xd7\\xfb\\x9e\\xf5\\xd6\\x8a\\xe4\\x9c\\x6c\\xca\\xd2\\x8d\\x18\\xbc\\x60\\x09\\xd4\\x18\\x7e\\xd1\\x42\\x02\\x24\\xa5\\x65\\x8a\\xad\\xf1\\x35\\xb5\\xa9\\x53\\xf2\\xdc\\x3c\\x8b\\xfc\\xaf\\x66\\x9e\\xd5\\xda\\x38\\xd0\\x14\\x4f\\xd9\\x66\\x5e\\x6f\\x06\\x77\\xd3\\xfc\\x88\\x04\\xe2\\x1c\\xc2\\x5f\\xd5\\xe0\\x1a\\x3f\\x3f\\xa8\\x3e\\x57\\x1e\\xb2\\xf8\\x82\\xa7\\x65\\x9c\\xe5\\xd8\\x64\\xd8\\xbb\\x54\\x07\\x2b\\x09\\x86\\xa8\\x54\\xf1\\xa7\\xf2\\xd2\\x72\\x0d\\xf8\\x57\\xe6\\xd4\\x21\\x96\\x30\\x84\\x1b\\x1c\\xcd\\xcf\\xc6\\x72\\x6b\\x91\\xbf\\xc1\\x7e\\x18\\xc3\\xe3\\x48\\x0c\\x23\\xa2\\xc0\\x5e\\x4b\\xfe\\xdd\\xd4\\xdb\\x9e\\xf4\\x23\\x88\\xf2\\x34\\xfd\\x3e\\x4f\\x3d\\xad\\x66\\x60\\x26\\xe2\\x78\\x06\\x12\\x37\\x41\\x61\\x31\\x6a\\xfc\\x76\\x65\\xf9\\x41\\x1b\\x6c\\x5a\\xa7\\x89\\x33\\xb1\\x80\\x21\\xc0\\x12\\xb0\\x84\\xf3\\x24\\x47\\x60\\xa4\\xea\\x1b\\xcf\\x31\\xcc\\x9f\\x5c\\x40\\x44\\xa9\\xbc\\xc7\\x5a\\x98\\x67\\x07\\xf3\\x8f\\x45\\xac\\x1c\\x7f\\xa1\\x39\\xee\\x95\\xa6\\xd8\\xf1\\x6c\\x3c\\x1e\\x12\\x76\\x4c\\x4b\\x0b\\x11\\x94\\xc0\\xfc\\x5f\\x7e\\xef\\xf9\\xa8\\x48\\xc4\\x05\\x0b\\x0e\\x65\\x16\\x84\\x71\\x9d\\x43\\x8a\\xad\\x56\\x01\\x91\\x64\\xfa\\xe4\\xf4\\x88\\x82\\x20\\x5e\\xce\\x0b\\x99\\x73\\x67\\x91\\x08\\x4a\\x75\\x3b\\xa7\\xd5\\x6e\\x88\\xfc\\xee\\xa5\\x33\\x56\\x6c\\x3a\\x2c\\xa4\\x8d\\xd6\\xef\\xc4\\x9b\\x27\\xdb\\xf1\\x4f\\x26\\x16\\xce\\xd6\\x52\\xe1\\x38\\x33\\xab\\x90\\x28\\xad\\xa4\\x54\\x43\\x1c\\x89\\xb3\\xcb\\x74\\x41\\xfd\\xb8\\xf2\\x3e\\x12\\xb6\\x0a\\x1a\\x10\\x4a\\x2a\\x8c\\xf4\\xa6\\x4e\\x87\\x8a\\xa2\\x6f\\x54\\xe8\\x88\\x1a\\x4b\\x15\\x1a\\x16\\xa9\\x6d\\xe8\\xb9\\x80\\x7e\\x72\\x93\\x96\\xeb\\xe3\\xe3\\xd3\\x94\\xf8\\x08\\xbd\\x74\\xb7\\x31\\x2f\\xe6\\xb8\\x4b\\x13\\x12\\xaf\\x8a\\x1e\\x41\\x33\\x59\\x9d\\x07\\xbd\\xf3\\x3d\\xb2\\x1e\\x01\\x6b\\x5c\\x19\\x6c\\x1b\\xa3\\x11\\x57\\x08\\xf5\\x81\\xbb\\x82\\xf4\\xb5\\x7a\\x6c\\xa1\\xa5\\x29\\xe6\\x4d\\x19\\x30\\x42\\xc1\\xdc\\x5f\\xaa\\x0a\\x03\\xab\\xf5\\x38\\x49\\xe1\\xbd\\xef\\xba\\xb6\\x4b\\x1c\\xb6\\x0f\\xe1\\x0a\\x3f\\xc1\\x82\\x3a\\x23\\x4c\\x45\\xf3\\xb0\\xdc\\xe6\\x6a\\x46\\x73\\x9c\\x01\\xae\\xad\\x12\\xde\\x6f\\x03\\x13\\xc7\\xbe\\x71\\x40\\x5f\\x3f\\xdc\\x4a\\x50\\x7a\\x9d\\x84\\xe8\\x68\\x6f\\x6f\\xc9\\x26\\x35\\xdb\\x0f\\x78\\x56\\xc7\\x37\\x3a\\x61\\x8a\\x72\\x52\\xc1\\x29\\xa7\\x76\\x0e\\x20\\x29\\x54\\x3d\\x72\\x62\\x28\\xc2\\x1d\\x00\\xad\\x4a\\xc5\\x2e\\x5b\\x1a\\x6e\\x31\\x20\\x09\\x17\\xf1\\x5a\\xf5\\x15\\x85\\x9e\\x08\\xf2\\xa7\\x9a\\xce\\x67\\x99\\x1e\\xd6\\x90\\x44\"},\n{{0x2b,0xe1,0xf9,0x8c,0xe6,0x55,0x3c,0x91,0x5b,0x6a,0x09,0x33,0xec,0x0d,0xe3,0x47,0xb3,0x70,0xe2,0x9c,0xa2,0x94,0xe8,0x00,0x55,0x41,0x23,0x9f,0x63,0xb4,0x30,0xd0,},{0x7a,0x6f,0x44,0x69,0xc3,0x0a,0x63,0xf5,0x60,0xf9,0x87,0x34,0xfc,0x19,0x06,0xeb,0xd1,0x37,0x1e,0xd8,0x01,0x25,0xfa,0x3e,0x4c,0x86,0xb4,0x3f,0x26,0x2c,0xab,0xbc,},{0x8e,0x65,0x9a,0x3f,0x53,0x5a,0x58,0x9a,0x5f,0xd2,0xd2,0x17,0xcb,0xcb,0x8b,0x77,0x7e,0x5a,0xf2,0x0b,0x23,0x44,0x32,0xf7,0xda,0xc2,0x9f,0x81,0x0a,0x2b,0x47,0x37,0xc5,0xca,0xb1,0x0b,0x59,0xdf,0xd0,0x14,0x4f,0x30,0x90,0xf5,0xf9,0xe0,0xe6,0x67,0xf0,0xe2,0x1a,0x9f,0x57,0x3f,0xe1,0x3b,0x1c,0x28,0xec,0xcb,0xb5,0x31,0xa2,0x05,},\"\\x62\\x68\\x20\\x1f\\x93\\x2a\\x7c\\xd3\\xf8\\x79\\xae\\x6a\\xb8\\x38\\x55\\xa2\\xf5\\x02\\x91\\xde\\x78\\x4d\\x7d\\x9e\\x9a\\xda\\xa1\\xb9\\xaf\\xed\\x6f\\x5a\\xea\\x20\\x24\\x0e\\x59\\xfe\\x93\\xe5\\xa7\\x08\\x8c\\x95\\xec\\x8e\\x15\\x74\\x5f\\xb8\\xfd\\xeb\\x91\\xdf\\x01\\x51\\xc7\\xb4\\x60\\x50\\x67\\x56\\x1e\\xa0\\x8d\\xbf\\x00\\xc4\\xff\\xe1\\xfd\\x0a\\xcf\\x10\\x36\\x56\\xa7\\xb5\\x4f\\xad\\x0f\\x25\\xab\\x16\\xb4\\xbd\\xa3\\x47\\x17\\x9e\\xd1\\xca\\xdb\\x7b\\x98\\xbe\\x08\\x95\\xe0\\x50\\xdc\\xbc\\x37\\x9d\\x1f\\xd5\\x53\\xe9\\x97\\x95\\x92\\x8b\\x67\\xa7\\x52\\xf8\\xd2\\xec\\x1b\\x9d\\x66\\xbf\\x6a\\xc9\\x97\\xe7\\x44\\xdc\\x32\\x7f\\x24\\x22\\x30\\xf9\\x2e\\x79\\xae\\x31\\x27\\x45\\xa5\\xab\\x6d\\xde\\xc1\\x99\\x8f\\xb6\\x3d\\xc4\\xf6\\xb0\\x5f\\x14\\x72\\x22\\xd4\\xb6\\x5a\\xce\\x90\\x17\\xdc\\x1b\\xcd\\x67\\x5e\\x49\\x5f\\x9e\\xab\\xb5\\xf6\\x02\\x13\\x3f\\x6c\\x72\\xe0\\x53\\xe9\\xf4\\xae\\x30\\xd8\\x72\\xd7\\x8b\\xf7\\x1f\\xeb\\xa3\\x7a\\xcc\\x59\\x50\\x55\\xc3\\xbe\\xa5\\x3a\\x05\\xef\\x0c\\x7f\\x21\\x2d\\xcf\\x4e\\x0a\\xf8\\x38\\xea\\x29\\x28\\xf4\\xcd\\xc9\\xfd\\xc8\\x37\\xda\\x25\\xf2\\x69\\x66\\xb2\\x45\\x6a\\xbe\\xa6\\x6a\\x5d\\xfb\\x8f\\xaa\\x8f\\xa0\\x91\\xf7\\x33\\x1d\\x54\\x36\\xe9\\x8a\\x8d\\x63\\x23\\xcc\\x9e\\x9a\\x91\\xd5\\xa0\\x2a\\x49\\x51\\x17\\x14\\x84\\x9b\\x47\\x45\\x4b\\xaf\\x99\\xc5\\xf8\\x50\\xa0\\x8d\\x3d\\x98\\x41\\x0e\\x93\\x9a\\x9e\\x89\\xb1\\x50\\x53\\x82\\x5f\\x3e\\x9a\\xee\\x71\\x44\\x74\\x16\\x14\\x07\\x82\\xe1\\xbf\\x3b\\x0d\\x8b\\x4f\\xf6\\x2e\\x77\\xa4\\xa0\\x3f\\x71\\x0a\\x8a\\xb7\\x6c\\xf6\\x35\\x92\\xc0\\x5c\\x44\\x0c\\x8f\\x06\\x47\\x70\\x09\\x91\\x63\\xc1\\x22\\x70\\xf3\\xd5\\xec\\x9a\\x6b\\xc9\\x71\\x5b\\xff\\xfe\\xc7\\x69\\x61\\x1d\\x21\\xfa\\x00\\x3c\\x3c\\xc8\\x35\\x6c\\x97\\x5d\\x37\\xb6\\x2b\\x88\\xaa\\xbb\\x85\\x97\\xda\\xca\\x19\\x6c\\x96\\x48\\xa3\\x1d\\x15\\xbb\\x0b\\x86\\xcf\\x07\\x0e\\xe0\\x1e\\x51\\x1e\\xf3\\x73\\xb4\\xa4\\x4c\\x6a\\x00\\x16\\x0a\\x79\\x7f\\x2e\\x82\\x0b\\x71\\x6f\\x5c\\xa6\\x44\\x64\\xe4\\x18\\x9a\\x00\\xfe\\xe9\\x78\\xd3\\x5b\\xf2\\x04\\xf7\\x1d\\xb1\\xf5\\x01\\xf9\\xb6\\xe5\\xdf\\xc8\\x21\\xa8\\xaf\\x5d\\xbf\\xef\\xd3\\x53\\xad\\x36\\x81\\xf9\\xbc\\x3c\\x22\\xc6\\x7c\\xb2\\x11\\xb4\\x30\\xb6\\xa5\\x5f\\x3e\\x73\\xda\\x7c\\x3a\\x07\\xce\\xb7\\xd2\\xfe\\x25\\x4b\\x10\\xc2\\x70\\x3a\\xb2\\xe2\\x29\\x4d\\xd0\\xd3\\x15\\x2d\\xc7\\xb2\\x1a\\xab\\x87\\xb1\\x50\\xf7\\x37\\xa9\\x47\\x46\\x3f\\xb2\\x04\\x17\\x5d\\xe8\\x54\\x32\\x36\\xfb\\xb0\\xda\\x5c\\x7d\\x48\\xc5\\x7f\\x61\\x74\\x4d\\xe6\\xf9\\x84\\xaa\\x8e\\x61\\xb9\\x70\\xc6\\x2d\\x0e\\xeb\\x84\\x9d\\xa7\\xe8\\x9a\\x61\\x22\\x2d\\x43\\x20\\x79\\xcb\\xcf\\x5f\\x8a\\x2b\\xa9\\x30\\x30\\x16\\x83\\xc0\\x78\\x5c\\x26\\xfd\\xf8\\x5d\\xa3\\x02\\x08\\x74\\x60\\x45\\x99\\xac\\x6c\\x84\\x7e\\xc2\\x60\\x86\\x58\\xb5\\x78\\x8c\\x7b\\x8d\\x3a\\x37\\x44\\xfd\\x54\\x42\\xe2\\x4c\\x8e\\xec\\xcd\\x42\\x07\\x56\\xbd\\xd8\\xb8\\xa7\\x7c\\xfd\\x80\\x58\\x96\\x05\\xdc\\xed\\x9a\\xfd\\xa2\\xbd\\xb6\\x30\\xa0\\xcb\\x61\\x2f\\x73\\x9c\\xe6\\x17\\xd5\\x4e\\xde\\x6c\\xcf\\x36\\xaa\\x31\\xe7\\xe3\\x73\\xd8\\xa0\\xfb\\x1b\\x7c\\x99\\x06\\xf7\\x6b\\x5f\\x9d\\xe8\\xc2\\x68\\x91\\xde\\x00\\x6e\\xb7\\x97\\xea\\xd4\\xa8\\x6f\\x70\\x16\\xf3\\x4b\\xcd\\xe9\\x2f\\x94\\xac\\x3e\\x92\\x0b\\xa5\\x8d\\x6d\\xff\\x77\\x20\\x78\\xd8\\x02\\xa9\\x4f\\x56\\xcb\\x26\\xbf\\x79\\x4f\\xd9\\x0c\\xa0\\xad\\x4f\\x2e\\x7a\\xcd\\xc5\\x92\\x9b\\xc7\\x36\\x49\\x97\\xde\\xd9\\x8c\\xa6\\x9c\\x57\\x39\\x91\\xbb\\x9a\\xb8\\x5f\\x23\\x5b\\x63\\xe7\\x6f\\x77\\xe0\\xab\\x45\\xe7\\x89\\x12\\x38\\x98\\x69\\xaf\\x21\\xe7\\x4e\\x66\\xf7\\xc4\\x56\\xb8\\x27\\xe6\\x70\\xbe\\xb0\\xf0\\x72\\x66\\x88\\xbb\\x1f\\x90\\x36\\xd3\\x8d\\xa0\\x7d\\x69\\xea\\x36\\x66\\xf7\\x6b\\xd6\\x05\\xd8\\x2e\\x2d\\xd6\\x38\\x7e\\xce\\x6e\\x82\\x4a\\x56\\x97\\x00\\xf0\\x1b\\x19\\x5d\\x1a\\x9b\\xdc\\xb0\\xf9\\x6a\\xb5\\xc5\\x4e\\x06\\xc2\\x11\\x9b\\x40\\x6b\\xc4\\x88\\x84\\x80\\x66\\x04\\x18\\xbb\\x42\\x88\\xea\\x2f\\xda\\x96\\x63\\x1b\\x0e\\x1f\\x60\\xac\\x86\\x1d\\x6c\\xcc\\x4c\\x84\\x4b\\x64\\x7a\\x7d\\x74\\x03\\xbc\\x2d\\x15\\xba\\xfe\\x4a\\xf6\\x77\\xe8\\x56\\xfe\\x0d\\x2b\\x5f\\x66\\x3b\\xe4\\xe4\\x80\\xb3\\x8f\\x6b\\x76\\x6a\\xdc\\xd3\\xd0\\x52\\x98\\xef\\x13\\x98\\xd0\\x4d\\x15\\x23\\xa6\\x8b\\x91\\xdd\\x31\\xcf\\x5d\\xc4\\xb7\\x3d\\xec\\xbf\\xd7\\x21\\x3f\\x98\\x1b\\x20\\x7e\\x1f\\x6e\\xf2\\x25\\xd7\\x94\\x8a\\x1a\\xa1\\x7d\\x8d\\x57\\xa1\\x12\\xf1\\xd4\\x46\\x8d\\x2d\\x28\\xf7\\xec\\x2e\\x54\\xb7\\x4a\\x69\\x2c\\x59\\x58\\x02\\x2e\\x82\\x03\\x1a\\x41\\xb3\\x15\\x09\\x0e\\xd4\\xd5\\xbd\\x7b\\xd0\\xb4\\x51\\x47\\x63\\x38\\xf7\\x39\\xa7\\xd7\\x03\\x1a\\xf2\\xd3\\x6c\\xaa\\x09\\xff\\xdb\\xb7\\xc3\\x96\\x50\\x7c\\x75\"},\n{{0x10,0xbb,0xe6,0xe7,0x61,0xa7,0x5c,0x93,0x5b,0x51,0x7f,0x09,0x36,0xfe,0xcb,0x9e,0xc6,0xfc,0x21,0x5e,0x58,0x13,0x08,0x00,0xea,0x18,0xd1,0xff,0x44,0x2a,0x4f,0x13,},{0x86,0x43,0xdd,0xf8,0xaa,0x8d,0x9c,0x8a,0x78,0xb6,0xeb,0x69,0x9f,0xd2,0x0a,0x57,0xf6,0xf1,0x86,0x36,0xb0,0x6c,0xe6,0x9d,0xac,0xdc,0xa1,0x26,0x7a,0xcb,0x39,0x54,},{0xf0,0xf3,0x57,0x41,0x03,0x73,0x31,0x3b,0x7c,0x62,0x52,0xd6,0xd9,0x66,0x00,0x36,0x0c,0x23,0x75,0x2d,0x43,0x1c,0xa8,0x07,0x5b,0xcf,0xb7,0x72,0xd4,0x9c,0xd6,0x09,0xb6,0x5c,0x9c,0xd8,0x38,0xd6,0x34,0xd8,0xd9,0xb9,0x5d,0x1e,0xe3,0x0e,0xde,0xcc,0x13,0xe3,0xca,0x99,0x7b,0x24,0x37,0x30,0x3f,0x8a,0x33,0xa1,0xff,0xc8,0x33,0x06,},\"\\xe8\\x10\\x8c\\x6d\\xe4\\x13\\x37\\x33\\xdc\\x19\\x9a\\x73\\x39\\x2e\\x22\\x6f\\x71\\x2c\\x36\\xa2\\x4f\\xa9\\x1d\\x6f\\xb0\\x9f\\x92\\xdf\\x21\\x8d\\xeb\\x2d\\x28\\x30\\xa6\\x68\\xfd\\x69\\x4b\\x48\\x09\\xd0\\x25\\x35\\x07\\x23\\x12\\x47\\xc7\\xf2\\x58\\xb4\\xd6\\x5c\\x56\\xbb\\x69\\x34\\x5e\\xf6\\xaa\\x97\\xe7\\xc5\\x9e\\x81\\x53\\x77\\x5a\\x5a\\x3c\\xf1\\x09\\xc4\\xbc\\xa9\\x81\\x55\\x69\\xda\\x69\\x32\\xe8\\x21\\x83\\x42\\x5b\\x42\\xd7\\x48\\x3c\\x9d\\xbf\\xcb\\xd8\\xeb\\x38\\xc8\\x47\\x29\\x57\\x1e\\x8e\\xc9\\x39\\x82\\xc3\\x17\\x71\\x67\\x59\\x59\\x8c\\x4f\\x6a\\x1b\\x7f\\x8d\\xa7\\x30\\x6a\\x78\\x15\\x72\\x1c\\xaf\\x02\\xe7\\x02\\x46\\x71\\x23\\x14\\xf7\\x66\\xbe\\x9c\\xb1\\x77\\xcd\\x2f\\xa3\\xbd\\xa2\\x2c\\xd6\\x76\\xc5\\xd2\\xe8\\x6e\\x8d\\x79\\x8f\\xd3\\x4f\\x54\\x3c\\x9b\\xe3\\x12\\x96\\x51\\xf2\\x73\\xf4\\x84\\xf0\\xb9\\x46\\x7b\\x14\\x09\\x55\\xcd\\x29\\x81\\xff\\x26\\x03\\xc0\\xbd\\xbb\\x43\\x6a\\xc0\\x95\\x5a\\x11\\x6c\\x5e\\x5f\\xc3\\x04\\x25\\xe1\\xfe\\x78\\xf6\\x41\\x0f\\x6e\\xf7\\x57\\xf6\\x04\\x66\\x88\\x54\\xba\\xe7\\x9b\\xfe\\x22\\xe1\\xa8\\x5c\\xe5\\xee\\x5d\\x64\\x34\\xb4\\x61\\x01\\x20\\xea\\x7e\\x5d\\x3d\\x13\\x7c\\xe2\\x07\\x51\\x4f\\x85\\x34\\xad\\x9b\\xf3\\x92\\xb7\\xdc\\x53\\x55\\x51\\x4b\\x59\\xf8\\x35\\x46\\x6c\\x8e\\xb5\\x6f\\x44\\xed\\xdc\\x5b\\xad\\x20\\xcf\\x0b\\x48\\x0b\\x2e\\x82\\x2a\\x6f\\x46\\xfd\\x95\\xf3\\x0f\\x18\\x3c\\x7b\\xb3\\x14\\x3e\\x4e\\x61\\x00\\xe2\\xdb\\xc9\\xf2\\xbf\\x0d\\x43\\x07\\x3e\\x0f\\xe6\\x5f\\x01\\xbc\\xce\\x6a\\x1a\\xe4\\x01\\xc1\\x25\\x41\\xbe\\x3a\\xe6\\x8c\\xde\\xac\\x2a\\x4a\\xc7\\x1f\\x16\\x63\\xb5\\xfd\\xfc\\x2e\\x50\\xf0\\xe0\\x77\\xfb\\x3a\\x0a\\x8b\\x8e\\xee\\xad\\x62\\x7c\\x1c\\x3e\\x79\\xdd\\x73\\x61\\x04\\x6f\\x7e\\x57\\xc1\\x74\\x36\\xc3\\x2d\\xc4\\x43\\x2f\\x05\\x00\\x28\\xcc\\x7a\\xa4\\x40\\x8c\\x2d\\x29\\xd1\\xd7\\x99\\x8f\\xdc\\xdd\\xa3\\x2b\\xb3\\x2f\\x70\\x4d\\xc2\\x63\\xdb\\x9b\\x8e\\x06\\xc5\\x76\\x30\\x87\\x0f\\x8b\\xb6\\xec\\x66\\x1f\\xde\\x1b\\x7d\\xa9\\x4d\\x53\\xb0\\x47\\x70\\x1a\\x45\\x88\\x47\\x8c\\x1c\\x66\\x23\\x46\\x74\\x1a\\xea\\xc4\\xc2\\x53\\x38\\x55\\x6a\\x3d\\x84\\x8d\\xe5\\xb2\\xa2\\x3e\\xce\\xa6\\x1b\\x77\\x6b\\xd0\\xe8\\x03\\x7e\\xfb\\x85\\x01\\xef\\xf2\\x39\\xc7\\xfa\\xcc\\xa6\\xc8\\x36\\x7e\\xd7\\xc8\\xad\\xce\\x91\\x9f\\xef\\x1a\\x15\\x5a\\xe0\\xd5\\x47\\x8a\\x98\\x00\\x2c\\x95\\xa1\\x6f\\xbf\\x4c\\x0e\\xd0\\x16\\xea\\x5d\\x38\\x66\\xfe\\x1d\\xe4\\x54\\x83\\x2a\\x4e\\x95\\x65\\x97\\x6b\\x60\\xb3\\xdd\\x2e\\xaf\\x7f\\xee\\x61\\x2f\\x2b\\xc0\\x40\\xd9\\x39\\x75\\x43\\x5e\\xeb\\xd1\\x2f\\x06\\xeb\\x09\\xec\\xea\\x2c\\x66\\x76\\x83\\x08\\xf5\\x8c\\x77\\xac\\x51\\xed\\x7b\\xd2\\x16\\x36\\xfc\\x9c\\xc3\\xfd\\x14\\x87\\x0b\\xd0\\x6b\\xdf\\x12\\x8a\\x81\\xb1\\x47\\x92\\xe6\\x08\\xc4\\x7e\\xa2\\xd5\\x35\\xca\\x7a\\xa2\\x1e\\xb8\\xa8\\xa5\\x6d\\x76\\x99\\x16\\x63\\xa8\\x19\\x0a\\x95\\x05\\x7d\\x33\\x67\\x1e\\x73\\xc7\\xcb\\xce\\x5a\\x98\\xd3\\x1e\\xf0\\xd7\\x3b\\xd0\\xb1\\x63\\x78\\x7b\\x7f\\xdc\\xd2\\xdd\\xfc\\x72\\x96\\x0f\\x2b\\xe3\\x20\\x84\\x6d\\x4b\\x29\\x08\\x0d\\x7a\\xeb\\x5b\\x7e\\xa6\\x45\\xa2\\xad\\x5a\\x59\\xc0\\x12\\xbf\\x7b\\x95\\x15\\xd8\\x59\\xe1\\xc1\\x47\\x2e\\xf8\\xa4\\xd3\\xc9\\x5e\\x71\\x1a\\xf9\\x7a\\xe4\\x61\\x8e\\xfb\\xab\\x3d\\xff\\xe8\\x8c\\x9f\\x6a\\xf4\\xa0\\x9b\\x0e\\x73\\x38\\x7e\\x25\\x1b\\x77\\xd7\\xbf\\xf5\\x21\\x4f\\x79\\x18\\x62\\xdb\\x69\\x88\\x41\\x1e\\x2a\\xe2\\xc7\\x5b\\xf2\\x8d\\x28\\x60\\x2a\\x63\\x7c\\x26\\xf4\\x9c\\x18\\xd3\\x09\\xd2\\xfc\\x58\\xa1\\x26\\x66\\x7a\\xd3\\xc2\\xec\\x16\\x0c\\x99\\xba\\x40\\xfb\\xda\\xc1\\x7e\\x7e\\x4c\\x21\\xa5\\xd5\\x07\\x85\\x97\\x62\\xeb\\xa0\\x9c\\x41\\x60\\xdf\\x66\\xf5\\xfe\\xef\\xe6\\x71\\x5a\\x28\\xc5\\x29\\x6c\\xf4\\x3e\\x5e\\x77\\x1f\\x31\\xfc\\xe5\\x13\\x3b\\xe9\\x7c\\xab\\x57\\x30\\x1b\\x4c\\x9d\\xf9\\xcd\\x9a\\x4a\\xcf\\x1c\\x33\\xfa\\xc9\\x46\\xfa\\x15\\x96\\xfa\\x65\\xc8\\xf3\\x65\\x8b\\xe4\\x7a\\x47\\x3a\\x62\\xc5\\x21\\x81\\xec\\xa1\\x83\\xe4\\x24\\x6c\\xd6\\x24\\xd8\\x78\\x3d\\xcc\\xe5\\xfd\\xcc\\x1f\\xea\\x17\\x3f\\x80\\x71\\xf7\\x07\\x4f\\x55\\x89\\x7d\\xe9\\xbf\\xe8\\x4a\\x6c\\x4f\\xdf\\x80\\x2d\\x50\\x26\\xb8\\x14\\x5e\\x6c\\x8c\\x89\\x50\\xaf\\xc5\\xb4\\x0f\\xd0\\x35\\x6f\\xc5\\x5e\\xe1\\x7e\\x1f\\x85\\x3a\\x4c\\x2f\\xcc\\x34\\xa1\\x36\\x9b\\x87\\xd2\\x8d\\xc2\\xfd\\x20\\x10\\xf1\\x99\\x03\\xaf\\xf8\\xe4\\x6d\\xe0\\x49\\x38\\xf4\\x94\\x82\\x45\\xd5\\xb4\\x25\\xd0\\x74\\xac\\xdf\\x2b\\xd8\\x0b\\xfc\\x37\\x35\\xcc\\x34\\xa2\\x25\\x90\\xf1\\x94\\xaf\\x93\\x13\\xee\\xf4\\xab\\x5f\\xde\\x61\\xf1\\xf9\\xb5\\x85\\x78\\x63\\x8f\\xcb\\x4f\\x28\\x50\\xb2\\xfc\\xe6\\xe0\\x3d\\xb4\\xd0\\xa8\\x34\\x84\\x81\\x63\\xc4\\xb2\\x7e\\x12\\x9f\\x5c\\xc7\\x4f\\x67\\xf0\\x08\\xa2\\x71\\x2d\\x1d\"},\n{{0x18,0x6d,0xcc,0x7e,0xfc,0x5e,0xd7,0xe6,0x1a,0xe5,0x3d,0xc4,0x20,0x93,0xba,0xe8,0xf1,0x5d,0xd9,0x9f,0x0f,0x03,0x33,0x26,0xc5,0x76,0xff,0x75,0x69,0x50,0xd0,0x6d,},{0xc8,0xd1,0x41,0xac,0xb6,0x42,0xaa,0x9b,0xfb,0xd5,0x43,0x27,0x7c,0x2d,0xca,0x8a,0xa9,0x88,0x8e,0xef,0xf0,0x45,0x43,0xb3,0x78,0x9b,0x21,0xf2,0x6a,0xeb,0x0f,0x71,},{0x89,0x45,0x06,0x97,0x87,0xc1,0xc6,0x76,0xa8,0x4a,0x70,0x3c,0xae,0x1e,0x0b,0xac,0xae,0xff,0xd3,0x3e,0x91,0xbe,0xc3,0x60,0x3e,0x1f,0x13,0xfb,0x17,0x0e,0x31,0xe6,0xd7,0x04,0x9e,0xda,0x2b,0xf6,0x27,0x18,0x0f,0x45,0x6c,0x3f,0x7a,0xab,0xfc,0xd3,0x6c,0x49,0xa8,0xc0,0x4f,0x8a,0xe6,0x92,0x9e,0xc5,0xad,0xa0,0x7b,0x65,0x72,0x08,},\"\\x97\\x43\\x64\\xd6\\xc8\\x38\\x84\\x2c\\xcc\\x4e\\x74\\x9e\\x6a\\xfd\\x53\\x71\\x70\\xdc\\xd8\\xcc\\x50\\xd6\\x66\\x54\\xd1\\x05\\x48\\x23\\x39\\xca\\xbd\\xf7\\x4e\\x32\\x93\\x5e\\xe2\\x19\\x27\\x2e\\xa1\\x68\\x4f\\xb9\\x3c\\x1f\\xab\\x42\\xb5\\x63\\x18\\x39\\x24\\x35\\x91\\xbd\\x07\\xd3\\xbe\\x94\\x9b\\x0d\\xd1\\x5e\\x31\\x96\\xdf\\x19\\x6b\\xa7\\x52\\xad\\x11\\x21\\xac\\x71\\x12\\xd5\\x66\\x94\\x4e\\x15\\x3a\\x4e\\x06\\x19\\xb3\\xa2\\x32\\x24\\x1f\\x02\\x0b\\xe0\\x71\\x9f\\x6b\\xec\\x91\\x8b\\x26\\x82\\x8e\\xb1\\x67\\x0e\\xcf\\xc7\\x3c\\x66\\x84\\x4e\\xa3\\xe4\\x04\\xc6\\xa2\\xfc\\x01\\xbe\\xb4\\x03\\xc9\\xd6\\xca\\x55\\x1a\\xd8\\xa6\\xe7\\x1f\\x46\\x64\\x7f\\xa6\\x05\\x3f\\x03\\x14\\xf8\\x12\\x4d\\x8d\\x2b\\xc1\\x2c\\xc8\\xfa\\x8d\\xb9\\x5f\\x2b\\x73\\x53\\x75\\x20\\x1b\\x81\\x6a\\x9c\\xf4\\x0f\\x83\\xee\\x4b\\x86\\x71\\x61\\x80\\x32\\xde\\x22\\x9c\\xe7\\x62\\x71\\xd0\\x3d\\x26\\x72\\xa1\\xae\\x4a\\x28\\x8c\\x85\\xdc\\xd2\\x7f\\xb8\\x45\\x2a\\x81\\x32\\xe9\\xff\\x29\\xe1\\xe8\\x9b\\xf1\\x1b\\x1c\\x83\\x51\\x92\\xc0\\x4b\\x13\\xbe\\x14\\xf3\\xcd\\xe5\\xd3\\x7c\\xe9\\x6f\\x1d\\xc2\\xa9\\xcc\\xda\\x0c\\x4d\\x73\\x7b\\xca\\x1f\\xa2\\x20\\xd2\\x1b\\xf3\\x60\\xb9\\x05\\x15\\xbb\\xd2\\x26\\xbb\\x2a\\x6c\\x8d\\x5f\\x2a\\xb0\\x18\\xd4\\x08\\x4e\\x24\\xee\\x33\\x3c\\xe4\\xe3\\x9b\\xcb\\x6b\\x46\\xe7\\xae\\xb4\\xdb\\x9b\\x6c\\x65\\xb2\\x44\\xd9\\x82\\x82\\x3a\\x77\\x0f\\x9c\\x62\\xa0\\xbd\\xe2\\xcb\\xb7\\xec\\x36\\x84\\x0d\\x45\\x51\\x87\\xfa\\xff\\x4e\\x48\\x8a\\x5c\\x60\\x8e\\xbd\\xb7\\xdb\\x84\\xd8\\x7d\\xad\\x38\\x67\\xe3\\xb0\\xd0\\x4b\\x64\\x71\\x5e\\x16\\x56\\x0a\\x62\\xf1\\xee\\x03\\xdf\\x61\\x83\\xfd\\x5e\\x37\\x55\\x5d\\xa1\\x97\\x2f\\xca\\x06\\x2d\\x12\\xbb\\x84\\x20\\xe0\\x82\\xda\\xcb\\x8d\\xeb\\xb9\\xc1\\x43\\x85\\x41\\xd0\\xda\\x24\\x64\\xef\\x7e\\xc5\\x22\\x63\\xfb\\x9b\\x9a\\x4c\\x46\\x9c\\x83\\x32\\x3e\\x48\\x19\\xdf\\xdf\\x4f\\xa0\\xa7\\x70\\xc3\\xa7\\x09\\x25\\x4e\\x05\\x31\\x48\\x30\\xe8\\x7f\\xbb\\x67\\x36\\xc7\\x2d\\x9d\\xab\\xe0\\x1a\\x31\\x0e\\x91\\xeb\\xbf\\xae\\x76\\x7a\\x1f\\xcb\\x62\\xf6\\x4f\\xa3\\xba\\x8d\\x53\\x40\\x0d\\x64\\x69\\xad\\x1c\\xcb\\x81\\x1f\\xb9\\xe1\\x15\\xf1\\x41\\x27\\xb1\\x3e\\x83\\x64\\xaa\\x2f\\xe8\\x0b\\xbc\\x88\\x6a\\x10\\xdf\\x1b\\x9c\\xc4\\xae\\x46\\x01\\xf5\\x46\\x1a\\xf0\\x91\\xf5\\x26\\xd2\\x72\\xda\\x9b\\x20\\x38\\x57\\xa4\\x44\\x7e\\xab\\xde\\xf4\\x39\\x83\\x04\\x96\\xa5\\x75\\x9c\\x21\\xde\\x65\\xba\\x3a\\x3c\\x8b\\x8e\\x93\\x9c\\x46\\x13\\x32\\xa9\\x24\\x85\\x2c\\x20\\x5c\\x77\\x11\\xf3\\xa6\\x8a\\x23\\x67\\xa9\\x45\\xde\\xf4\\xfb\\xe5\\xf8\\x1c\\x60\\xcb\\xb7\\xe3\\x94\\xa2\\xa4\\x9b\\xe9\\xec\\x2a\\xae\\xb1\\xf3\\x30\\x57\\x59\\x79\\x44\\x6a\\xd9\\xd0\\xd5\\x4a\\xbd\\x43\\x6f\\x28\\x60\\xf0\\x42\\x34\\x26\\xf4\\xbb\\xc2\\x6b\\x3b\\x9f\\x65\\x0d\\x69\\xb1\\x00\\x72\\xd7\\x47\\xa3\\x9e\\x47\\x8f\\x45\\x5e\\xaa\\x12\\xc7\\xc6\\xe1\\x2b\\xfc\\x45\\x36\\xa3\\x59\\x43\\x44\\xbd\\x02\\xb6\\x20\\xe3\\xe2\\xb4\\xe0\\xd5\\x34\\x08\\x9d\\xd7\\xb0\\x4f\\xa6\\x34\\x80\\x45\\x67\\x58\\x6c\\x62\\xbe\\x03\\x91\\xc7\\xbd\\xb0\\xa9\\xfb\\xc1\\xef\\x3b\\x33\\x21\\x1e\\xdb\\xf8\\xef\\x58\\xc2\\xb7\\xa4\\x9d\\x06\\x66\\x79\\x59\\xd7\\xe5\\xd4\\x46\\x71\\xee\\x73\\x57\\xa1\\x0b\\xa0\\xcb\\x1a\\x44\\x5a\\xe5\\xd7\\x09\\xce\\x25\\x5e\\x92\\xde\\x71\\x59\\x75\\xaf\\x94\\xb8\\x9d\\x4a\\x29\\xc7\\x1f\\x9d\\x88\\xc8\\x5b\\x6c\\xd1\\x1d\\x8b\\x33\\x5b\\xf8\\xf2\\xc6\\x58\\xe6\\xdd\\x7c\\x3f\\x6c\\x80\\xad\\x4d\\x0e\\x5a\\x6c\\x87\\xdb\\xa7\\xb5\\xb8\\xa8\\xa4\\x7e\\x72\\xf4\\xd1\\xd3\\xc7\\x43\\x63\\x1d\\xf9\\xad\\xfc\\xfa\\x45\\xce\\xe0\\x49\\x8d\\x5a\\x44\\xa9\\xf7\\x5c\\x83\\xb7\\x5b\\x2a\\x3c\\x23\\x0f\\xf0\\x76\\x7d\\x38\\x88\\xf9\\x41\\xee\\x1b\\x66\\x24\\xdd\\x0e\\x12\\xd0\\x6e\\xd1\\xab\\x8b\\xb1\\x35\\xff\\xd3\\x79\\xe9\\xde\\x37\\x88\\xbe\\x54\\x1a\\xad\\xb2\\xd6\\xa7\\xcc\\x60\\x13\\x16\\xf2\\x1e\\xb9\\xaa\\xa9\\x22\\xf5\\x6a\\x8e\\x35\\x26\\xc9\\xbd\\x11\\x77\\xfe\\xfc\\x2f\\xbe\\x3e\\x43\\x0b\\x62\\x8e\\xeb\\xd6\\x66\\x1e\\x3b\\xa2\\xd6\\x31\\xc6\\xa8\\x42\\x2c\\x24\\x1e\\xcd\\x96\\x99\\x72\\x41\\x2f\\x74\\xda\\x6b\\x12\\x43\\xbf\\x0f\\xbe\\xe8\\xa8\\x4d\\x52\\xe4\\x0a\\xee\\x3f\\x1e\\x4f\\xc8\\x31\\x40\\x2c\\x62\\xf3\\x57\\x6b\\x22\\xe8\\xe3\\xc3\\xdc\\x4e\\x16\\x0b\\xc3\\xb6\\xb9\\xd2\\xce\\x00\\x58\\x53\\x81\\x2e\\xaf\\xc0\\xa4\\xe2\\x5b\\xa7\\x12\\x27\\x9b\\x00\\xba\\x3f\\x91\\x30\\xff\\x36\\xe3\\xef\\x19\\x71\\xdd\\xe7\\x50\\x8b\\x27\\x92\\xfe\\x64\\xd4\\x75\\x68\\x8f\\xc6\\xf3\\x31\\x3a\\xad\\xb7\\x85\\x30\\x2e\\x6b\\x7f\\x9a\\x84\\xf2\\xdb\\xc2\\xf3\\xcf\\x06\\x0e\\xe0\\x8b\\x46\\x37\\x36\\xf8\\x36\\xdb\\xb2\\x62\\xd3\\x29\\x68\\x4c\\x20\\x84\\x92\\xd1\\x7d\\x81\\x12\\x21\\xbe\\x02\\xb6\\x5e\\xe2\\x8e\\x11\\xb5\\x46\\x92\"},\n{{0x07,0x05,0xb3,0x36,0xc8,0x9c,0xa3,0x5f,0xfd,0xde,0x0a,0xf0,0xf9,0x06,0xea,0xcf,0x62,0x3c,0x56,0xc3,0xf7,0x67,0x38,0x16,0x8e,0x76,0xfc,0xd5,0x88,0x2d,0xf7,0x9e,},{0xea,0xaa,0xf2,0xa1,0x5f,0x44,0xb6,0x34,0xce,0xf1,0x5a,0x63,0x8b,0x80,0x20,0x7f,0x61,0x09,0x9a,0x07,0x96,0xf5,0xd4,0x3f,0x3e,0x9d,0x04,0x8e,0x6a,0xe7,0x96,0xc1,},{0xd4,0xa9,0xba,0xe8,0xec,0xc4,0x72,0xc3,0x76,0xba,0xb8,0x05,0xc2,0xce,0x0c,0x1c,0x2e,0xd5,0xfc,0x77,0x37,0x15,0x46,0x8c,0xb1,0xa4,0x93,0x45,0x64,0xda,0xce,0xcf,0x43,0x8b,0x1d,0xd2,0xac,0x1b,0x5c,0x5e,0x33,0x6a,0x1e,0x20,0x70,0x1d,0x5d,0xcf,0x3c,0x8e,0xe3,0xad,0x22,0x3b,0x13,0x9f,0xa9,0x0a,0x1b,0x55,0x2e,0x1b,0x77,0x07,},\"\\x61\\x6f\\xe1\\x5f\\xcc\\xb3\\x31\\x0f\\x9e\\xc7\\x45\\x64\\x47\\xda\\xda\\xf8\\xe0\\xa5\\xfb\\x26\\x9b\\xe1\\x69\\xb0\\xc3\\xea\\x2c\\xfd\\xaa\\xa5\\x5d\\x37\\x93\\x7f\\xe7\\x5b\\x78\\x32\\x4a\\xc2\\x78\\xa6\\x50\\x47\\xe0\\xae\\x4f\\x32\\x7e\\x97\\xef\\xfc\\xb7\\xbe\\xd9\\x1d\\x09\\xda\\x72\\x0b\\x0a\\x10\\x1b\\xe9\\xe9\\x6d\\x0b\\xa8\\x5b\\x1f\\xf4\\x9d\\x8d\\x1d\\xf3\\x62\\xd3\\x45\\x4f\\x0d\\xb6\\x82\\x55\\x96\\x10\\x1c\\x97\\xe5\\xda\\xca\\xd0\\x7e\\xc4\\x92\\xd3\\x0f\\x2d\\x0c\\xb7\\xe7\\xde\\x4e\\x74\\x4b\\xb6\\xa6\\x10\\x0b\\x75\\x4d\\xa8\\x47\\x41\\x1d\\x09\\xaa\\xce\\x8d\\x5d\\x41\\x07\\x58\\xb8\\x30\\x87\\xdb\\x4b\\x5e\\x62\\x97\\x97\\x9a\\x21\\xfb\\x65\\xaf\\x39\\x09\\x52\\xc4\\xf9\\x36\\x26\\x0e\\x72\\xd7\\xc7\\x83\\x27\\xb9\\x4a\\xa6\\xcd\\x61\\x72\\x78\\xb0\\xce\\x9e\\x1b\\xd3\\xfb\\xed\\x93\\xb6\\x9b\\xc6\\x49\\x85\\xdd\\xe0\\xe2\\xc4\\x35\\x7b\\x50\\x2f\\x05\\x5e\\xe7\\xb0\\xa0\\x38\\x84\\x74\\xda\\xe0\\x2d\\x6c\\x1a\\x73\\x1f\\x87\\x78\\x5d\\x75\\x3a\\xeb\\x0d\\x9c\\xfd\\xf8\\x50\\x02\\xdf\\x56\\x6f\\xc2\\x50\\x7d\\xe7\\xba\\x6f\\xd0\\x35\\xbe\\xe1\\x7a\\x2e\\x80\\x8b\\x4a\\x75\\x88\\xc5\\x83\\x37\\x5c\\x82\\x40\\x7a\\x40\\xae\\x9e\\xeb\\xdf\\x94\\xdf\\x2f\\xb8\\xca\\xbf\\x17\\x60\\x6c\\x43\\x9e\\xa7\\x04\\x59\\xb2\\x12\\xaa\\xe4\\xa3\\xf5\\x30\\xec\\xad\\xc5\\xe8\\x8e\\x25\\x48\\xfa\\x64\\x3c\\x7d\\xdf\\x50\\x63\\xb2\\xe1\\x06\\x73\\xe5\\x9d\\x07\\xfe\\x90\\x68\\x92\\xb6\\x7e\\xb5\\x8f\\x93\\x88\\xa5\\x6b\\x37\\x04\\x52\\xe9\\x97\\x77\\x55\\xfc\\x04\\xdf\\xbc\\x77\\xda\\x6c\\x05\\xbe\\xdd\\xeb\\xf0\\x36\\x52\\x56\\xb5\\x2c\\x9a\\xef\\x8a\\x82\\x17\\x3b\\x8c\\x89\\xfb\\xd9\\x8c\\xea\\x36\\xa8\\xb8\\x96\\xfe\\x66\\xd3\\x7c\\xa7\\x9b\\xec\\x7f\\xbf\\xe9\\x58\\xfe\\x89\\xf6\\x76\\x50\\x85\\xb3\\x35\\xdc\\x77\\x03\\x43\\xe2\\x30\\xca\\xdd\\xfa\\x28\\x33\\xda\\xa6\\x62\\xfe\\x82\\x08\\xdd\\x88\\x5a\\x6f\\xdf\\x72\\xe3\\x6e\\xcf\\x22\\xbb\\xbb\\xcb\\xe7\\x9d\\x37\\x06\\x50\\x23\\x69\\x40\\xbc\\x2e\\x6d\\x4a\\xc7\\x4f\\xe4\\xd5\\x54\\xc9\\xbc\\x23\\x2f\\x07\\xd2\\xaf\\x62\\x20\\xd1\\x57\\xbd\\x2d\\xa6\\xa6\\x61\\x2a\\x08\\x1b\\x4c\\x99\\x04\\xa2\\x86\\x9b\\x13\\x7e\\xe3\\xa0\\x85\\x6f\\x12\\xb2\\xeb\\x87\\x62\\xdb\\x94\\xed\\x0b\\xa1\\x36\\xf2\\x3e\\x7f\\xb4\\xbd\\x1f\\xcd\\xee\\x10\\xdd\\x84\\xe2\\xcd\\x3b\\x0a\\x49\\x14\\x8a\\xc7\\x4d\\xb4\\x66\\xdb\\xee\\xf8\\x1e\\x6a\\x8c\\xe0\\x86\\x11\\x02\\xde\\x9b\\x1a\\x3e\\x1d\\xcf\\x5c\\x6b\\x03\\x08\\xa8\\x2e\\x3a\\xc7\\xc2\\x28\\x3c\\x7c\\xc2\\xf3\\x4f\\xfa\\x14\\x5b\\x9f\\x74\\xb7\\x99\\x04\\xb3\\x2b\\x79\\xe9\\x60\\xb8\\x14\\xaa\\xde\\x63\\xa0\\xdf\\x01\\x67\\xdc\\xd2\\x4e\\xd9\\x0a\\x8d\\xa7\\xb9\\x34\\xc7\\x72\\x93\\x2f\\x5a\\x47\\x8f\\xe2\\xa7\\x2f\\x94\\x5a\\x13\\x09\\x6e\\xc3\\x7c\\xe7\\x64\\xb5\\x81\\xeb\\x89\\xe5\\xf6\\xb2\\xbd\\x7e\\xb8\\x8b\\x85\\xa8\\x95\\x87\\x77\\x4d\\x45\\x8c\\x58\\xcd\\x87\\x94\\x57\\x97\\x3d\\x64\\x8e\\xf7\\x71\\xc5\\xf1\\xde\\xb2\\x7a\\x0c\\xc5\\xb2\\x92\\x46\\xac\\x2f\\xa1\\x2d\\x18\\xdd\\xc6\\xb9\\xf9\\xac\\x9c\\xf1\\x46\\xc3\\xf2\\x2b\\x1e\\x44\\x99\\xad\\xee\\xfb\\xcd\\x22\\x49\\x74\\x0e\\x13\\xa2\\x24\\xe7\\xb6\\xb3\\xef\\x15\\x60\\x5e\\x7e\\x74\\xe6\\x8d\\x7b\\x72\\x64\\x24\\x09\\xb9\\x0c\\x4e\\xc1\\x61\\xeb\\x24\\xc9\\xb4\\x0f\\xf9\\xc7\\xe6\\xe5\\xda\\x98\\x32\\x2a\\xca\\x52\\xc4\\x6a\\x8d\\xdc\\x19\\x0f\\x1c\\xab\\x15\\x7c\\x4c\\x76\\x19\\x60\\x1a\\x6b\\x33\\xdf\\x6a\\x50\\xda\\x66\\x1b\\xc7\\x53\\x60\\xdf\\xf6\\x97\\x50\\xd3\\x45\\x74\\x09\\xcc\\x02\\x41\\xc3\\xe8\\xc4\\xb3\\xe5\\x06\\xd4\\x26\\xaf\\x52\\xb7\\x02\\x31\\xcd\\x6c\\x91\\x26\\x0c\\xc4\\x31\\xe4\\xcc\\xfd\\x49\\x6c\\xa1\\x4c\\xea\\xae\\x1c\\xda\\x78\\x72\\x1e\\x16\\x33\\x9d\\x52\\x68\\x2b\\x69\\x51\\xf9\\x66\\xc7\\xda\\x5c\\x6e\\x10\\xd9\\x19\\xae\\x66\\xa9\\xf5\\x2d\\xec\\x10\\x86\\x75\\x38\\xd3\\xdf\\x6d\\x59\\x3a\\x32\\xdb\\x69\\x5a\\x8d\\x77\\x45\\x70\\x35\\x16\\xea\\x56\\xf8\\xc1\\xc8\\xf0\\xef\\x53\\xbd\\xeb\\x7f\\x53\\xc2\\xd9\\x44\\xf5\\x11\\x94\\x0c\\xcb\\x90\\x62\\x49\\x22\\xac\\x59\\x9f\\x46\\x19\\xc3\\x04\\x62\\x07\\xd6\\x05\\xf6\\xff\\x94\\xde\\x78\\x8d\\x25\\x34\\x22\\x29\\xdc\\x8a\\xf9\\x2b\\x5f\\xdf\\x0d\\xd7\\x1d\\xf2\\xb4\\x46\\xcd\\xf1\\xd9\\xa2\\x05\\x24\\x33\\x9e\\xe1\\xc3\\x18\\x26\\x28\\x7e\\xf7\\x27\\x81\\xa7\\xa3\\x52\\x89\\xf8\\x5a\\x15\\xba\\x57\\xc7\\xfd\\x5d\\x88\\x5b\\xd0\\x55\\x3a\\xb4\\x08\\x05\\xf5\\x17\\xe8\\xf1\\xb1\\xb3\\xc4\\xfc\\x67\\x71\\xe6\\xf2\\x24\\xbc\\x03\\x11\\x24\\xb9\\xc9\\xae\\xb1\\x9c\\x5a\\x96\\xbf\\x14\\x88\\xe1\\xe6\\x6c\\x6e\\x88\\x80\\x92\\x30\\xc8\\x3a\\x74\\x15\\x55\\x54\\xa2\\x19\\xec\\x37\\x9a\\xe5\\x4a\\x9f\\xe7\\x9d\\xbe\\xde\\x3d\\x57\\x60\\x42\\xa6\\x35\\xd1\\x97\\xf4\\xd8\\x18\\xc7\\x78\\x75\\x5b\\x8b\\x45\\xe5\\x13\\xde\\xac\\x88\\xf6\\x04\\x25\"},\n{{0x95,0x17,0x4a,0x09,0x15,0x68,0x4c,0xdb,0xb6,0x19,0xb0,0x55,0x49,0x5b,0x00,0xf1,0x92,0x82,0xcf,0xfc,0x3b,0x05,0x01,0x9e,0x6a,0xb7,0x09,0xa4,0xa1,0x74,0x2b,0xab,},{0xaa,0x8c,0x87,0x2d,0x7e,0x10,0xb6,0x7f,0x7f,0xf2,0x41,0x72,0xc3,0x63,0x7e,0x80,0x82,0x5a,0x0a,0x71,0xee,0x0c,0x48,0x86,0x3a,0x2a,0xcd,0xcb,0xe8,0xda,0x45,0x9a,},{0x78,0x0f,0x40,0xc2,0x0f,0xea,0x3b,0x11,0xc9,0x42,0x2a,0x43,0xb9,0xa6,0xf7,0x96,0x11,0xe7,0xf1,0xf5,0x9d,0x14,0x88,0xc1,0x5a,0x5f,0xd2,0xd3,0x2c,0x07,0xda,0xdc,0x39,0x1c,0x38,0x95,0x3e,0xdf,0x0d,0xe4,0x8b,0xe5,0x2d,0xa2,0xaf,0x33,0x5c,0x47,0xb8,0xd2,0xe4,0x4a,0xb9,0xd3,0xdf,0xb7,0x6b,0xa5,0x38,0xb0,0x66,0x49,0x52,0x08,},\"\\x5e\\x1a\\x74\\x00\\x45\\x6c\\xad\\x4f\\x9b\\xa8\\x66\\x43\\xbc\\x7c\\xbf\\x3b\\x35\\x68\\xdc\\xb5\\x22\\xb3\\x70\\x55\\xe8\\xc3\\x9d\\x3c\\x80\\xf2\\x28\\x42\\x38\\xe5\\x72\\x7f\\xd7\\x51\\x3c\\xc8\\xb3\\x1c\\x57\\xae\\x7b\\x40\\x50\\xaa\\x81\\x9f\\xc2\\x36\\x09\\x30\\xeb\\x0d\\xd6\\x77\\xa5\\xb2\\xc7\\x29\\xfe\\xb2\\xda\\x3a\\xd7\\x9a\\xe7\\xfc\\xcd\\xdd\\xb6\\xc0\\x84\\x46\\x26\\x1e\\xc9\\xbb\\xe5\\x9c\\x64\\xe9\\x9a\\xbb\\xc8\\x6d\\x3c\\x48\\x35\\xf0\\x0f\\xef\\xe5\\x27\\x43\\x3a\\x50\\x1a\\x3b\\x6d\\x57\\x2c\\xf5\\xe1\\x2a\\x88\\x01\\x0b\\x46\\xa4\\x72\\xb9\\xbd\\x86\\x91\\xa4\\x07\\xc3\\x65\\xf9\\xf7\\x16\\x34\\xb4\\xd9\\x7e\\xdf\\xdf\\xf0\\x63\\x14\\xc0\\xc1\\xb4\\xeb\\x93\\xc7\\x60\\x7f\\x1d\\x6f\\xa3\\x54\\x65\\x93\\x22\\xc2\\x84\\x07\\x3f\\x42\\x60\\x25\\x18\\xc5\\x4f\\xdf\\x26\\xea\\x2c\\x27\\xc8\\x0a\\x6d\\xfa\\x20\\x56\\x83\\x91\\xab\\x35\\x72\\x82\\xc0\\x6b\\x23\\xbe\\xdc\\x1d\\xf1\\x26\\x4b\\x61\\x1c\\x1e\\x9c\\xf1\\x8a\\xeb\\xe2\\x49\\xfd\\x86\\x17\\xc6\\xe3\\xee\\x98\\xc5\\x3c\\x0f\\x6f\\x21\\x75\\xc5\\x7e\\xf8\\xe2\\x06\\xbd\\x3c\\xf1\\x05\\x62\\x7a\\x98\\x92\\xeb\\x68\\x99\\x20\\x21\\x3a\\xae\\xb6\\x3d\\x87\\x66\\x3d\\xbf\\xa5\\x3f\\x0f\\xb2\\x81\\x62\\x69\\x48\\x29\\x6b\\x2d\\xbc\\xdd\\xe1\\xc5\\x1a\\xf8\\x62\\xee\\xcf\\x1c\\xfe\\x8a\\x46\\xa2\\xc4\\xb2\\x8c\\xfe\\x71\\x30\\x33\\x0a\\xd1\\x73\\xf8\\x71\\x27\\xaa\\xca\\xff\\x43\\xc0\\xbd\\xde\\xa4\\x8b\\x00\\x38\\x97\\x6e\\x66\\x2c\\x04\\xb6\\xb0\\x4a\\xd0\\x3d\\xe1\\x24\\x62\\xc2\\x76\\x5d\\xb5\\x35\\x04\\x95\\x20\\xcc\\x11\\x4a\\xfd\\xb6\\xc9\\x25\\x49\\xb0\\x54\\x6a\\x90\\x27\\xd4\\x49\\x75\\x5b\\xeb\\x8d\\x4c\\x17\\xe6\\xa2\\xa4\\x75\\xf9\\x67\\x6a\\x33\\x7b\\x4e\\x86\\x6d\\x96\\x32\\x5e\\x38\\x9a\\x52\\xc1\\x6c\\x51\\xe1\\x8e\\x0d\\x81\\x03\\x34\\x0c\\x84\\x17\\xb2\\xc5\\x7a\\x55\\xd0\\x42\\xff\\x5e\\x5f\\xc6\\x5d\\xf4\\x23\\xe0\\x09\\x2b\\x0e\\xa8\\x8b\\x96\\xa9\\x07\\xc9\\x51\\x21\\xc5\\x47\\xa6\\x80\\x61\\xf2\\x7b\\xcf\\xb5\\x8c\\xe6\\xc0\\x77\\x28\\xd4\\x84\\x6b\\xdc\\xbf\\x0c\\x62\\x54\\x10\\xed\\xf8\\xde\\xa8\\xcb\\x4c\\x9d\\x0b\\xbe\\xef\\xcd\\xe1\\x92\\x73\\x36\\x5f\\x48\\xd7\\x5a\\xec\\x07\\xd1\\xc2\\x2c\\xcd\\x23\\x06\\x8a\\x97\\xc3\\xfe\\x75\\x2e\\x87\\xa3\\x01\\x18\\xfe\\x2d\\xfd\\x52\\x18\\xb6\\xb1\\x25\\x15\\x4e\\x0e\\xa3\\x86\\xcf\\x23\\x9e\\x31\\x37\\xf8\\xca\\x6d\\x8b\\x74\\x6b\\x6a\\x67\\xd5\\x08\\xcf\\x8c\\x1a\\xb6\\x3e\\x57\\x15\\xe6\\x72\\x1e\\xda\\x5c\\x2b\\xc3\\x93\\xa4\\x93\\xdb\\xd2\\xf9\\xa1\\xfa\\x92\\x6b\\x9a\\x59\\xe4\\x5a\\x18\\x0a\\xee\\xb0\\x25\\x99\\xa8\\xcd\\xd6\\x86\\xf8\\x89\\xb4\\x85\\x27\\x23\\xcb\\x6d\\xbf\\xb5\\x01\\x4c\\xab\\x5f\\x65\\x8a\\x30\\x9a\\x47\\x22\\x39\\x36\\x0e\\xea\\xf6\\x4f\\xc8\\x20\\x3a\\x3c\\x70\\x89\\x70\\xe1\\x5c\\xbc\\xf1\\x36\\x25\\x5d\\x96\\x44\\x6c\\x39\\xa9\\x27\\x03\\x1d\\x26\\x7d\\x69\\xec\\xd5\\x1d\\x7a\\xf6\\xe9\\x1f\\xb4\\xae\\xf9\\xd7\\x8c\\x33\\x35\\xe9\\x07\\x11\\x33\\xcf\\xb8\\xe2\\x12\\x99\\x90\\xc6\\x46\\x37\\xc7\\xad\\xf1\\xda\\xef\\x2d\\xc2\\x6c\\x11\\x63\\x39\\x9f\\x3f\\xe1\\xe7\\x92\\x33\\x80\\x92\\xef\\x6f\\x8d\\xfa\\xf2\\x57\\x30\\xdd\\x2f\\xe8\\xd9\\x78\\xf6\\xf7\\x70\\xf5\\x2b\\x68\\x23\\x81\\x76\\x56\\x4c\\xee\\x5f\\xbb\\x98\\x50\\xb3\\xb3\\xa0\\x4d\\x94\\x84\\x60\\x41\\x78\\x26\\xeb\\x2e\\xb2\\x4f\\xcc\\x5f\\xe3\\x53\\x34\\xbb\\x95\\x21\\xe8\\x7b\\xc4\\xdb\\xde\\x2a\\xc9\\xe1\\xc9\\x89\\x49\\xdc\\x2d\\x29\\xad\\x27\\x9e\\x38\\x84\\xb9\\x05\\x26\\x8e\\xbd\\x08\\x08\\xbf\\x41\\x82\\x57\\xe7\\x5e\\x26\\x2b\\x4d\\x01\\xb0\\x24\\xa6\\xe9\\xaa\\x7b\\xd5\\x01\\xdb\\xa9\\x4f\\xf5\\x06\\x39\\x4b\\x4b\\x0a\\xe6\\x08\\x1e\\xa7\\x30\\x30\\xc4\\x3a\\x6a\\x91\\x76\\x6e\\x80\\xf9\\xf4\\x2c\\x0b\\x68\\xb9\\x84\\x19\\xad\\x4e\\xee\\x4e\\x9a\\x72\\x8a\\xde\\xfb\\xd7\\x9e\\x83\\x1f\\x70\\xf4\\x1e\\x62\\xb4\\x3f\\x0b\\xf4\\x2b\\x3b\\x2c\\xd5\\x3b\\x55\\x89\\x11\\x76\\x64\\xbc\\xeb\\xc4\\x09\\xa7\\x64\\x5b\\x1e\\xed\\xda\\x48\\x2f\\x6b\\x68\\x95\\xa6\\x57\\xba\\x78\\x9b\\x89\\xe5\\x02\\xd6\\x99\\x87\\x51\\xd6\\x30\\x3d\\xed\\x5f\\xa1\\x56\\xee\\x7c\\x7e\\xaf\\xe5\\x46\\x26\\xd1\\x03\\x2c\\x4d\\x7d\\xff\\x97\\x7f\\x1d\\xcc\\x86\\xaf\\x89\\xb1\\xe6\\x46\\xa4\\xaf\\xc2\\x42\\x7e\\xd0\\x2c\\x0a\\xf5\\xd3\\x28\\x90\\xf9\\x5f\\x13\\xf9\\x8c\\x1a\\x5b\\x1d\\x9f\\xbb\\x78\\x1a\\x9a\\x89\\xb2\\xd7\\x90\\xc1\\x46\\x5c\\x2d\\x15\\x20\\x92\\x6f\\xdf\\x28\\xc1\\x7d\\x9b\\xa1\\x58\\x7a\\xd7\\x61\\xf0\\x65\\xd3\\x39\\xbd\\xbe\\x38\\xf4\\x13\\x3f\\x45\\xbb\\x59\\x78\\x74\\x26\\x42\\xf9\\x0c\\x06\\x5e\\xe4\\x89\\x25\\x73\\xf6\\x05\\x9f\\x8b\\x4c\\xe2\\xc1\\x3e\\x73\\xb8\\x91\\xcd\\x05\\xf2\\x37\\x31\\xed\\x9a\\x07\\xe2\\xb8\\xff\\xdc\\x96\\x3b\\x06\\xa5\\x10\\x20\\x9c\\x32\\x99\\x80\\x94\\x9f\\x40\\xd8\\x07\\x3a\\x01\\x3e\\xf8\\x43\\xdf\\xcc\\x4a\\x33\\x94\"},\n{{0x5a,0x84,0xaf,0x28,0xa5,0xdf,0xbb,0x32,0x33,0xa1,0x2f,0x08,0x37,0xf6,0xe8,0x65,0x4e,0x7b,0x0d,0xe1,0x6b,0x02,0xab,0x3c,0xd1,0x78,0x64,0x43,0x1e,0x27,0x46,0x67,},{0x80,0xd4,0xba,0x78,0x9f,0x8a,0x4b,0x20,0x47,0xad,0xaf,0xa5,0xed,0x26,0xcd,0x8c,0x54,0x67,0x33,0x29,0x2e,0x8b,0xf6,0x93,0xcf,0xd1,0x7e,0x28,0x4e,0xfc,0x68,0x71,},{0xa0,0xb8,0x4c,0xa5,0xaf,0x76,0x46,0xe6,0xf6,0x2a,0x69,0x35,0x37,0x94,0x73,0xfa,0x6e,0x4c,0x27,0x69,0x58,0x51,0xfc,0xbd,0xae,0x29,0x17,0xb2,0xdc,0x68,0xd7,0x96,0xe2,0x78,0xd7,0x0c,0xd6,0x7f,0xce,0xdf,0x6c,0xa6,0x29,0xb8,0x81,0xf7,0xc4,0xf2,0xaa,0x25,0x59,0xb2,0x0d,0x67,0x06,0x11,0x76,0x6b,0xd6,0x5a,0xa4,0xfe,0xf2,0x04,},\"\\x8a\\xac\\xd1\\xb8\\xa3\\x9b\\xf0\\x8f\\xd5\\xc9\\x18\\x44\\x6b\\xe5\\x76\\xe6\\xa3\\xf2\\x7f\\x36\\x11\\x16\\x07\\xf2\\x7b\\x56\\xa9\\x12\\x14\\xe7\\x63\\xf9\\xa8\\x7f\\xb1\\xd1\\x84\\x48\\x98\\x96\\x17\\x97\\x64\\x44\\x60\\xbf\\xf5\\x48\\x8c\\x10\\x3a\\xf6\\x05\\xe8\\x74\\x0e\\x46\\x58\\x8f\\xb9\\x3e\\x44\\x3c\\x3b\\xb2\\x3b\\x92\\xc0\\x98\\x70\\xa5\\x57\\x65\\x3a\\x1f\\x22\\xc2\\x18\\xcc\\xbc\\x2f\\x07\\x3a\\x27\\x2d\\x17\\xa8\\x42\\x23\\xef\\x14\\x3f\\x4c\\x7c\\xa2\\x58\\x46\\x0b\\x79\\x81\\x69\\x67\\x3d\\xa1\\x07\\xd7\\x1d\\x53\\x56\\xce\\x9f\\x75\\x59\\xa9\\xb0\\x38\\x39\\x99\\x51\\xf5\\x75\\xc7\\x7e\\x5b\\x9d\\x05\\x29\\x57\\x8e\\xca\\xa2\\xe2\\x08\\x92\\x66\\xfc\\x52\\x6c\\x5d\\x40\\x9f\\xbd\\x46\\xbb\\x86\\x84\\x1c\\xb5\\x54\\xf5\\xbd\\x3c\\x99\\x71\\x3b\\x04\\x3e\\x40\\x46\\x53\\xa7\\xd0\\x13\\x44\\xd4\\xdb\\x83\\x1a\\x21\\x72\\x82\\xc4\\xb3\\x36\\x40\\x56\\x53\\xb8\\x5d\\x27\\xa4\\x6b\\x25\\x9c\\x85\\x5c\\xdd\\x85\\xad\\x6f\\x7a\\xed\\xd8\\x35\\xff\\x55\\x00\\xcc\\x8b\\xaf\\x0f\\xb2\\xf0\\x18\\x09\\x10\\xc6\\x46\\x72\\xb8\\xa8\\xd4\\x9d\\x98\\x4a\\x78\\x29\\x3c\\xf5\\x77\\x9c\\x91\\x0c\\x3a\\xcb\\xbc\\xa4\\x55\\xa8\\x54\\x66\\xe5\\x35\\x04\\x4f\\x34\\x80\\x26\\x2c\\x09\\x0f\\xbf\\x4e\\x0b\\x0d\\xb4\\xd1\\xef\\x87\\x59\\xda\\xaf\\xdd\\x8d\\x05\\x90\\x74\\x82\\x46\\x1f\\xf9\\x10\\xc4\\x37\\x19\\x5d\\x5c\\x7f\\xed\\x9d\\x82\\xcb\\x94\\xe7\\xe4\\xec\\x24\\xda\\x05\\x3e\\x47\\xf6\\x2b\\x48\\x8e\\xb7\\xb2\\x44\\x65\\x5c\\x7d\\xbb\\x20\\xed\\x60\\x7e\\xed\\x45\\x31\\x44\\x9e\\x07\\x80\\xe6\\x1c\\xfd\\x57\\x40\\x86\\xff\\xc5\\xdc\\x52\\x42\\x83\\x77\\x5c\\x44\\xf7\\x54\\x7c\\xda\\xb0\\x4a\\x51\\xee\\xe4\\xe1\\xb7\\xb6\\x5a\\x57\\x57\\x3a\\x92\\x48\\x4a\\x35\\x90\\x0a\\x90\\x9f\\x81\\xe4\\x15\\x02\\x9d\\x22\\xca\\x93\\x7a\\x3a\\xcd\\x9e\\x61\\xf8\\xc0\\xe6\\x86\\xb2\\xd2\\xad\\x03\\x77\\xaf\\x8e\\xe1\\x66\\xe4\\xa2\\x0a\\x82\\xaf\\xf4\\x51\\xe1\\x51\\x10\\x3e\\x0a\\x17\\x67\\xb2\\x71\\xfa\\x9c\\x2b\\x1d\\xd1\\x20\\xf8\\x05\\x85\\x3b\\x3b\\x8a\\x56\\x0f\\xc8\\xb9\\x37\\x62\\x83\\xb5\\x11\\x24\\x32\\x4a\\x28\\x4a\\x0e\\x9a\\xc4\\x9d\\xf6\\x9f\\x52\\x4c\\x8e\\x04\\x2d\\xf8\\x2e\\xfb\\xcd\\x16\\x88\\x1e\\xc1\\x31\\xa1\\x52\\x10\\xdf\\x73\\xde\\x02\\x94\\x34\\x47\\xf2\\x2a\\x2e\\xa1\\xdc\\x8b\\xf9\\x68\\x29\\x8e\\xe9\\x7f\\x3a\\xd5\\x46\\xd7\\x8b\\xc6\\x60\\x89\\x7e\\x08\\xd2\\xa2\\x8b\\x2b\\xa6\\x8b\\x54\\xb9\\x54\\xf1\\x47\\x64\\x51\\xc6\\x92\\x07\\xe5\\xdd\\x24\\x8a\\xe4\\x7e\\xf3\\x56\\x94\\x99\\x0e\\x6f\\x05\\x8b\\xc0\\x01\\x7b\\x74\\x95\\x10\\x5c\\xc8\\x73\\x90\\x66\\xaf\\xb1\\x1e\\x1f\\x26\\x60\\x19\\x42\\x54\\x6a\\xe8\\x49\\xff\\x2f\\x56\\x73\\x0f\\x13\\x26\\xbb\\xee\\xa6\\x40\\xee\\x17\\x8f\\xa2\\x47\\xad\\xff\\xef\\xc0\\x46\\x49\\x4f\\xc7\\xff\\xc0\\x77\\x7d\\x5d\\xbe\\x8a\\x55\\xda\\xee\\x61\\x40\\x6f\\xe3\\xc7\\x08\\x8d\\x43\\xd9\\xe1\\x4d\\xa2\\x1c\\xa5\\x2f\\xd8\\xc1\\x60\\x09\\x1c\\x8f\\x99\\xa6\\x7d\\xad\\x65\\xc6\\x4f\\xea\\x9d\\x18\\xb1\\x53\\x7d\\x06\\x1f\\x5d\\xce\\x87\\x9e\\x0b\\xc4\\x26\\x48\\xd2\\xea\\xa0\\x2d\\x97\\x21\\x85\\x75\\x3c\\xb2\\xf6\\x22\\x5d\\x8d\\x03\\xbb\\x07\\xf9\\x44\\xb1\\x0c\\xf4\\xea\\x22\\x27\\x5c\\x3d\\x70\\x84\\x80\\x20\\xf3\\x0c\\x82\\x3b\\x76\\x14\\x3a\\xcf\\x54\\x59\\x99\\xa2\\xcc\\x4b\\x58\\x98\\xd9\\x4b\\x4a\\x25\\xef\\xbe\\x5a\\x60\\x33\\x1c\\xc0\\x09\\xfe\\xc0\\xa2\\x5b\\xc9\\x89\\x47\\xb1\\xb7\\x13\\x9e\\x22\\xd2\\x32\\x80\\xff\\x88\\x54\\xa1\\xec\\x76\\x22\\x1b\\x1b\\xf3\\xd1\\x08\\x32\\x8c\\x8a\\xc4\\x63\\xc6\\x52\\x63\\xa2\\xd7\\xca\\x74\\x33\\x48\\x29\\x31\\xa1\\xd8\\xfc\\x14\\x4b\\xbe\\x9b\\xef\\x67\\x8c\\x92\\xe1\\xc2\\xd1\\x09\\x21\\xb6\\xad\\x43\\xa7\\x5c\\x53\\xbc\\x07\\x58\\x54\\xed\\x2d\\x99\\xd8\\x25\\xf3\\x0a\\x5e\\x10\\xd5\\x17\\x43\\x8e\\x4d\\x4f\\x71\\x13\\x42\\x9f\\x1e\\xdb\\x38\\x7d\\x6b\\xd7\\xaa\\xd2\\x92\\x74\\xf8\\xd2\\xdc\\x88\\x9b\\x7e\\xfb\\xeb\\x58\\x68\\x6f\\x8d\\x66\\x9c\\xea\\xef\\x92\\xc7\\x5e\\xd5\\x30\\x7f\\x0c\\x03\\xf5\\x90\\x01\\x81\\xce\\x57\\x3c\\x8f\\xa2\\x86\\x75\\x20\\x5f\\xb1\\x05\\x7f\\x62\\x6a\\xa2\\x30\\xd0\\x3e\\x2e\\xaa\\x8c\\xff\\xcd\\xe2\\x00\\x81\\x47\\x5d\\x80\\xb2\\x45\\xa1\\xca\\x60\\x45\\xba\\x20\\x4a\\xb0\\x00\\x69\\x07\\x9c\\x63\\x7f\\xc3\\xfb\\x3e\\x80\\xca\\x04\\x62\\xe7\\xa4\\xcd\\xd9\\x28\\x3f\\xf9\\x00\\x85\\x30\\x36\\x48\\x16\\x79\\x2f\\xdf\\x3b\\x9a\\x4e\\x4d\\xc8\\x37\\x92\\x28\\xed\\xcb\\xb1\\x54\\xbe\\xf3\\x87\\xd3\\x77\\x60\\xd7\\x9a\\xfb\\xb7\\x36\\x26\\x0a\\x1d\\xb1\\x01\\x38\\x36\\x1f\\x24\\xb8\\x26\\xdb\\xcd\\x5f\\x0f\\xc9\\xe7\\x83\\x0d\\x26\\xd8\\x0c\\x52\\xa7\\x92\\x18\\x92\\x76\\xbc\\xe3\\x47\\x60\\xfb\\x77\\xbe\\x13\\x12\\xac\\x8c\\xf9\\x7d\\x92\\xcb\\xf3\\xd0\\x77\\x80\\x28\\xdb\\x5e\\x8e\\xae\\x89\\xe0\\xb9\\xbc\\x87\\x78\\xae\\xb1\\x27\\x8f\\x04\\x71\\xcb\"},\n{{0x79,0x3a,0xc8,0x8d,0x7d,0x3b,0x6f,0xa7,0xf4,0x7d,0xee,0xc3,0x1f,0x68,0xdd,0xcc,0xb7,0x01,0x82,0x0f,0x1b,0x13,0xdd,0xc6,0x52,0xf7,0xc6,0xa8,0x5b,0x60,0x52,0xa5,},{0x91,0xb6,0x22,0x7a,0xcd,0xd1,0x83,0xda,0x62,0xc5,0x19,0x65,0xc6,0x35,0x35,0x8b,0x20,0x4d,0x68,0x3e,0xe0,0x64,0x43,0xcb,0xd4,0x0e,0x71,0xc1,0xf7,0x6a,0xd1,0x02,},{0xa8,0x4f,0x55,0x2b,0xf4,0x43,0x22,0xa6,0xdb,0x24,0x5c,0xa0,0x06,0xd1,0xcf,0x78,0x0c,0x61,0x68,0x0f,0xe7,0x42,0x9a,0x89,0x47,0xc3,0x5f,0x21,0xbc,0x4b,0x44,0x22,0x8b,0xa3,0x0a,0xea,0x0c,0x74,0x4b,0x86,0x64,0x59,0xd3,0xb8,0xac,0xad,0x45,0x3b,0x06,0xac,0xe2,0x47,0xba,0x69,0x52,0x8c,0x6b,0x3b,0xc4,0xb2,0x0e,0x75,0x63,0x0e,},\"\\xec\\x50\\xaf\\xad\\x8a\\xde\\x74\\x05\\xe2\\xc6\\xf5\\xc6\\x24\\x7b\\xbb\\xcc\\xfb\\x2c\\x17\\x16\\x6f\\x78\\x84\\xfe\\xae\\x10\\xd9\\x0f\\x5d\\x83\\xc4\\xb6\\xf0\\xbf\\x76\\xde\\x2f\\x78\\x97\\xba\\x11\\x94\\xd6\\xd3\\x44\\x9d\\xdb\\x80\\xae\\x74\\xeb\\x8e\\xd6\\x8f\\x04\\x9b\\x35\\xc6\\xf2\\x19\\x16\\xdb\\x4d\\xfc\\x27\\x24\\xdc\\x3a\\xf7\\xad\\x8d\\xd5\\xc4\\x4f\\x60\\xd2\\xf4\\x9f\\xad\\xd7\\x00\\x4d\\xa1\\x59\\x30\\x93\\x94\\x2c\\xae\\x52\\x08\\xbf\\x54\\xcf\\x90\\x3b\\xee\\x64\\x69\\x05\\xfc\\xe2\\xeb\\x2e\\x37\\x0d\\x0d\\xca\\x48\\xd8\\x20\\xad\\xea\\xb1\\x6a\\x3b\\x67\\x5e\\x5a\\x4a\\x8e\\x26\\x7e\\x34\\xff\\x96\\xf3\\x12\\x2b\\x18\\xde\\x0c\\xad\\x92\\x92\\xab\\x63\\xd2\\x6e\\x5f\\x31\\x0f\\xa2\\x16\\x8c\\x29\\x66\\xbd\\xb6\\x3b\\x0d\\xe0\\x86\\x26\\x76\\x7b\\x37\\x9d\\xe4\\x63\\x3b\\x9f\\x3e\\xda\\x79\\x17\\x28\\x1d\\xad\\x66\\x1e\\x9f\\x77\\x2b\\x84\\x4a\\x79\\xe8\\x00\\xfd\\x84\\x27\\x02\\x44\\x6e\\x4a\\xa7\\x31\\x75\\x71\\x07\\xf3\\xfd\\x65\\x47\\xbf\\x40\\x75\\x96\\x3d\\x5f\\xd5\\xf5\\x8e\\x80\\x85\\x3f\\xc4\\x27\\x51\\xdc\\xa0\\x78\\xa9\\xfa\\x8d\\x5b\\xb3\\xd9\\xa3\\x4a\\xbc\\xab\\x02\\x93\\xd6\\xce\\xae\\xc4\\x89\\x67\\xa1\\xe6\\x22\\x43\\x98\\xca\\xd0\\xf6\\x05\\xa3\\xbe\\x8e\\x67\\x58\\xea\\x8f\\x29\\x20\\x9d\\x8e\\x4c\\x4c\\xa1\\x89\\x3b\\xaa\\xd9\\x1e\\x37\\x9b\\xa3\\xb1\\x73\\x30\\xc1\\x2a\\x5b\\x6f\\x21\\x9b\\x38\\x4a\\x8a\\xb9\\x78\\xbf\\x1b\\x37\\xc3\\x73\\x1a\\x1b\\x47\\x4b\\x24\\xb5\\xd6\\x7d\\x4c\\xec\\x28\\xaa\\xc6\\x51\\x0b\\x11\\xf2\\xcf\\x21\\xbc\\x16\\x96\\x3d\\x51\\xf5\\x53\\x87\\x27\\x71\\x8f\\xc4\\xe2\\xe5\\x17\\x2e\\x3c\\x0c\\xda\\xbc\\x27\\x7f\\x0d\\x70\\x37\\xc3\\x4c\\xa6\\x8f\\x73\\x28\\x88\\x48\\xb9\\x26\\xbd\\xe0\\xcf\\x47\\xab\\xfa\\x66\\x60\\x09\\x16\\x94\\x6f\\x07\\x65\\x1c\\x28\\x0a\\x20\\x86\\xb1\\x4d\\x52\\x57\\x0c\\xc8\\xa4\\xb7\\x43\\x58\\xb5\\x9c\\x30\\x2b\\x9d\\x00\\xe1\\xb4\\x98\\xf3\\xbc\\x33\\xee\\x4e\\xcf\\x2b\\xce\\x2c\\x65\\xed\\x7e\\x8b\\xa7\\x4d\\x35\\xb7\\x51\\xd3\\xc9\\x9f\\x40\\x86\\x19\\x68\\xc2\\xb7\\xf3\\xa5\\xbe\\x34\\x8c\\x57\\xd9\\x3b\\x40\\xff\\xd0\\x51\\xed\\xd7\\xca\\xca\\x6e\\xe6\\xbc\\xa7\\x21\\xdc\\xba\\x8d\\xb8\\xd0\\x06\\x4f\\x54\\xd3\\x6e\\xc5\\xe8\\xd6\\x2a\\x71\\xfd\\x1c\\x90\\xf1\\x49\\x24\\xf4\\x1c\\x16\\x3f\\x00\\x7a\\xfc\\x6f\\xbb\\xfe\\x86\\x45\\xfa\\x47\\xc3\\xc9\\x80\\x24\\x6d\\x1b\\x92\\x27\\x43\\x85\\x95\\x3c\\x53\\x41\\xcd\\x64\\xc3\\x4a\\xe9\\x71\\x7c\\xc2\\xc3\\x7f\\x58\\x35\\x9c\\x0a\\x99\\x91\\xc2\\x3f\\xe6\\x37\\xde\\x6c\\xdf\\x08\\x62\\xf7\\xd0\\x32\\x9f\\xe7\\x58\\xaa\\x89\\x2a\\xd4\\x58\\x3b\\x9d\\xf2\\xf3\\x33\\x7d\\x5b\\xe5\\x70\\xba\\x65\\x49\\x98\\xed\\x29\\x2f\\x11\\xf0\\x17\\x72\\x38\\x2a\\x04\\x34\\x2f\\xdd\\x99\\xe6\\x9e\\x0d\\x97\\xc4\\x3f\\x10\\xac\\x9b\\x96\\xf1\\x40\\xa6\\xf8\\x3c\\x47\\x29\\xe7\\xa9\\x00\\x47\\x1f\\x2b\\x1d\\xf2\\x40\\x1b\\xc5\\xc6\\x80\\x42\\x2b\\x13\\xb0\\xc8\\x00\\x7d\\x63\\x68\\x1f\\x66\\xa0\\x59\\x5a\\x1c\\x5d\\x3a\\xcd\\xe5\\xb7\\x79\\x42\\x6e\\x73\\x6b\\xc1\\x00\\xc5\\xe6\\xf5\\x26\\x08\\xdc\\x39\\x1e\\x3e\\xf9\\xb1\\xbb\\x6a\\xf1\\x3d\\x24\\x9b\\x7d\\x32\\xce\\x06\\x80\\xc3\\x68\\xf5\\x4d\\x5f\\xe0\\x39\\xcf\\xe1\\x01\\x30\\x25\\x1e\\x4d\\xb1\\x4c\\x79\\xc8\\xd0\\x44\\x06\\x04\\x65\\x82\\x29\\x90\\xd8\\x80\\x93\\xcd\\x73\\x65\\x32\\x85\\x2e\\x44\\x78\\x89\\xdb\\x89\\xcc\\x60\\x05\\x29\\x96\\xa3\\x2a\\x64\\x36\\x5c\\x07\\x26\\x05\\x1c\\x11\\x9e\\xda\\x90\\x1d\\xe5\\x76\\xb3\\x34\\xfc\\x70\\x49\\x48\\x23\\x92\\xe2\\x62\\x0b\\x0a\\x3a\\x13\\xfa\\xb1\\xd3\\x6f\\xc0\\xa5\\xf2\\x3d\\xb1\\x47\\xfd\\x85\\x7b\\x26\\xa6\\x98\\x04\\x8f\\x8b\\x81\\x1e\\x23\\xd7\\x22\\xe2\\xe9\\x02\\x7e\\xd4\\x12\\x4b\\x48\\xdc\\x5e\\x57\\x8a\\x7a\\xeb\\x19\\xa1\\xb4\\xf9\\x48\\xee\\x5b\\x46\\xf6\\x5b\\x97\\x96\\x46\\xe2\\xbe\\x07\\x47\\x14\\x11\\x8b\\xaa\\x4b\\xfc\\x15\\xb0\\x89\\xa0\\xe0\\x66\\x27\\xda\\x46\\xe4\\xbb\\x06\\xaa\\x3c\\x7c\\x5d\\xd6\\x48\\xe0\\x3c\\x9c\\x2d\\xec\\x3f\\xac\\xd9\\x56\\x26\\x56\\x2f\\x30\\x00\\x88\\x32\\x30\\xd2\\xb0\\xa1\\xf8\\xa7\\x47\\x8c\\xb7\\x7f\\x93\\x9a\\x5f\\x18\\x8f\\x45\\x8d\\x10\\x37\\xb9\\x01\\x76\\x66\\x4d\\x86\\xea\\x85\\x0b\\x8a\\xf5\\x08\\x7f\\x86\\x60\\x5a\\x77\\xe0\\x25\\xef\\x6c\\x7e\\x6a\\x2a\\x59\\xf0\\x06\\xcb\\xa1\\x89\\xfa\\xd9\\x33\\xf4\\x2c\\x53\\x27\\x08\\x10\\x9b\\xc1\\xaf\\x81\\x48\\x19\\x59\\x5f\\xfc\\xb9\\x5f\\xbf\\x5b\\x7e\\x93\\xa7\\x11\\x97\\xe4\\x77\\xee\\x7c\\x04\\xb8\\x51\\xc1\\xc3\\x66\\x22\\xcd\\xd8\\xe6\\xc8\\x60\\xd9\\xab\\x2c\\xac\\x56\\xd2\\xdc\\x98\\xfa\\x69\\x12\\x4f\\x2b\\xb2\\xa6\\x47\\x1e\\x1c\\x73\\xb6\\x61\\xf0\\x71\\xf5\\xd8\\x6d\\xe7\\xd1\\xde\\xaf\\xa4\\xed\\xcd\\xc7\\xbf\\x1f\\x70\\x5c\\x56\\x30\\x0a\\xff\\xd0\\x58\\xb9\\x69\\x77\\x91\\x41\\x9e\\x5f\\xb2\\xa5\\xb7\\xf7\\x8c\\xe3\\x40\\x1f\\xf5\\x50\"},\n{{0x89,0xde,0x74,0x42,0xd7,0x4b,0xa9,0x38,0x59,0x69,0xc9,0x65,0x1a,0x88,0xfe,0x28,0xe0,0x40,0xd5,0x93,0x90,0x7d,0xac,0x1a,0x39,0x87,0x41,0x8b,0xdf,0xdb,0xad,0x89,},{0xfd,0x3b,0xa9,0xfa,0xd3,0x20,0xeb,0xa4,0x5d,0x07,0xb8,0x4a,0x49,0x7b,0xe1,0x7d,0x3f,0xc7,0xdd,0x99,0x99,0xc9,0x68,0x88,0x3c,0xd6,0xac,0x13,0xb0,0x66,0x9b,0x17,},{0xba,0xb5,0x72,0x84,0xd2,0x0e,0xe5,0x4c,0xc7,0xf9,0x70,0x8d,0x71,0x77,0x06,0xd8,0xfa,0xf6,0xe4,0x63,0x32,0xb0,0x69,0x1d,0x6f,0x21,0x3a,0x8d,0xb8,0x01,0x15,0x5b,0x4e,0x33,0x8c,0x13,0x61,0xb5,0x92,0xbe,0x75,0x85,0x01,0xb1,0x82,0x17,0x93,0xae,0x52,0x27,0xcc,0x3b,0xa8,0xdf,0x8a,0xdf,0xc6,0xed,0x9a,0xca,0xb5,0x4c,0xc4,0x01,},\"\\x9d\\x52\\x72\\xf0\\xb7\\x84\\x88\\x2b\\x94\\xc7\\x6d\\xfb\\x9d\\x46\\x0c\\xa4\\x95\\x02\\x5e\\x0a\\xec\\x5d\\x52\\xcc\\xff\\xfe\\xce\\x9f\\x81\\x73\\xc1\\x05\\x58\\x26\\x6c\\x49\\x85\\x25\\x89\\x1a\\x97\\xbf\\x38\\x78\\xe3\\x3c\\x3d\\xe2\\xfc\\x2e\\x52\\x55\\x0b\\x43\\x15\\x62\\xcb\\xe4\\xa3\\xd0\\x11\\xec\\xc9\\xe7\\x7e\\xc3\\x6a\\xd3\\x83\\x41\\x35\\x8c\\x88\\x32\\x1c\\x03\\xd0\\x8b\\xb4\\x26\\xa7\\xd5\\x85\\x41\\x71\\xc0\\x27\\xec\\x48\\xd5\\x78\\x19\\xa9\\x1a\\xfd\\x02\\xa6\\x18\\xcc\\xbc\\x25\\xe6\\x8e\\x53\\x09\\xd0\\x47\\xb1\\x56\\xe3\\x57\\x05\\x37\\x3a\\xda\\x2e\\xb8\\x31\\x32\\x1a\\x20\\x3e\\x1b\\xd8\\xf0\\xef\\xec\\xc0\\x96\\x18\\x64\\x7b\\x41\\xdf\\xf2\\x2b\\x39\\xd0\\x22\\x35\\xf8\\x71\\x53\\x2f\\x60\\x85\\xe9\\xcc\\x52\\xec\\x00\\x9b\\x33\\xee\\xbc\\xdc\\x26\\x7d\\x77\\x67\\xc9\\x0c\\x92\\x7e\\x15\\x4f\\x72\\xf3\\xf4\\x8a\\x34\\x95\\x63\\x19\\xb2\\x93\\xc8\\xa8\\xb3\\xe3\\x4e\\xfc\\x5f\\x62\\xf2\\xb4\\xe8\\x01\\x9b\\x50\\xa0\\x8f\\x5c\\xcf\\x95\\xbc\\x83\\x1b\\xaf\\x40\\x81\\x1d\\x87\\xe5\\xed\\xbd\\x2f\\xd5\\x36\\x5b\\x26\\xa4\\x31\\xae\\x95\\x80\\x0f\\xf3\\x81\\xcd\\x62\\xca\\x40\\xe1\\x86\\x6d\\x95\\x0d\\xce\\x14\\xf0\\x30\\x91\\x8a\\xba\\xc6\\x8e\\x79\\x16\\xdd\\xb9\\x5a\\xdc\\x19\\x71\\x28\\x78\\x74\\xd0\\x7e\\xb0\\xed\\xef\\x64\\x29\\x66\\x52\\xc4\\x80\\x44\\xb0\\xc5\\x52\\x1a\\x8d\\x27\\x0d\\x53\\xd7\\x4e\\xc6\\x3b\\x89\\x0f\\x33\\x63\\xf9\\x20\\x7f\\x66\\x52\\xae\\x8e\\x78\\x35\\xc3\\x82\\x0a\\xd6\\xd9\\xe3\\x63\\x3f\\x4b\\xfd\\x53\\x79\\xa4\\x4f\\x29\\xd6\\x5f\\x36\\x09\\xfe\\x35\\x58\\x17\\xdc\\xa5\\x51\\x8d\\xfe\\x3b\\xd7\\x69\\x32\\x0a\\x03\\x19\\x02\\xe9\\xcf\\x66\\x69\\xc2\\x4f\\x88\\xb0\\x1e\\xb3\\x69\\x95\\xbd\\xb8\\xdb\\xed\\x6e\\xe0\\xc9\\xb7\\xf3\\x22\\x95\\xc6\\x1b\\xa8\\x90\\x5e\\x55\\x98\\xf3\\xc9\\xe1\\xc8\\xbf\\x72\\x64\\xf9\\x82\\x93\\xfa\\xea\\x17\\x74\\x7f\\x88\\x44\\x0c\\x31\\x81\\x8c\\x43\\x3e\\xa3\\xd2\\x3c\\x01\\xf4\\xf7\\xe9\\xc3\\xdd\\x3d\\x5f\\x32\\xec\\x9e\\xac\\xd7\\x1a\\x09\\xe3\\xa9\\x97\\x38\\x1f\\x1c\\xbf\\xfd\\xf4\\xb5\\xba\\x49\\x79\\xde\\xb7\\xb0\\x98\\x41\\xaf\\xa3\\xb0\\x3d\\x1c\\x93\\x11\\x09\\x7b\\x86\\x2c\\xae\\x11\\x70\\x7c\\xbd\\x3a\\x4a\\xe6\\xc8\\xa2\\x6a\\x30\\x6a\\x68\\x7c\\x41\\x4a\\x4e\\xa1\\xe8\\x12\\xf1\\x15\\xf6\\x0f\\x70\\xbd\\xa7\\xf8\\xfb\\xe7\\xbc\\x2d\\x50\\xcc\\x55\\x0b\\xba\\x29\\x1d\\x5e\\xc5\\x23\\x22\\x9a\\x08\\xed\\x56\\x8b\\x5c\\xee\\x18\\xfe\\x6f\\x46\\x78\\x2c\\x17\\xcd\\x82\\x88\\x01\\x63\\x92\\x15\\xbc\\x5e\\x9b\\xe4\\x55\\x5c\\x9a\\x18\\x00\\x97\\x67\\xa6\\xc5\\xc7\\x4a\\x82\\x29\\xd2\\xff\\xaa\\x39\\x9d\\x8e\\x64\\x32\\x4e\\x88\\x42\\x23\\xd5\\x07\\x0f\\x73\\x5a\\x75\\xd8\\x5f\\xf6\\xc9\\x4a\\x9f\\xbc\\x2b\\x36\\x51\\x38\\x6d\\xe5\\xa2\\x3c\\xce\\x95\\xc8\\x78\\x81\\xc7\\x93\\x99\\xae\\x71\\xf0\\x90\\x73\\x7e\\x21\\x87\\xfe\\x90\\x4a\\xab\\x1d\\x92\\xd6\\x18\\x67\\x95\\xc9\\xb4\\x6c\\x62\\xa5\\x91\\x4f\\x36\\x30\\xfd\\xcb\\xac\\x3b\\xd4\\xb0\\xda\\x4e\\xc3\\x13\\x6a\\x1f\\xb2\\xba\\x40\\x32\\x2d\\x7c\\xc4\\x08\\x5e\\x16\\x70\\x09\\xcf\\x74\\x50\\xfc\\x6a\\x28\\x6c\\x2f\\x79\\x51\\xd5\\x1a\\xae\\x23\\xb8\\xf3\\x30\\x20\\xef\\xb5\\xe3\\x24\\x5b\\xa6\\xa3\\x54\\x3a\\x2b\\xde\\xc4\\x47\\xd5\\x1a\\xe0\\x0b\\x5e\\x16\\x78\\xb7\\x60\\x93\\xcf\\x21\\x6b\\x95\\x07\\xc9\\x63\\xeb\\xfc\\x02\\x4c\\xcd\\x6e\\xf6\\xc7\\x8c\\x45\\x72\\x27\\x3b\\xea\\xaf\\x55\\x07\\x6d\\xc4\\x4a\\x22\\x4b\\x58\\x61\\x57\\x05\\x79\\x19\\x65\\x30\\x7c\\xef\\xd4\\x86\\x72\\xc0\\x81\\xbc\\xcf\\xbc\\x1d\\x15\\xb0\\x62\\xb3\\x8b\\x4f\\xba\\x9b\\x9b\\xec\\x95\\x6c\\xd1\\x44\\x44\\xee\\x43\\x7e\\x79\\x60\\xcc\\x60\\x1e\\xdd\\xc0\\x2f\\x1a\\x76\\xb6\\x85\\x74\\xd5\\xf8\\x84\\x31\\x50\\xc0\\xb9\\x00\\x99\\x34\\xa2\\xbf\\xaf\\x60\\x57\\x70\\xc1\\x36\\xba\\x29\\xf3\\xdc\\x7e\\x29\\x59\\x7a\\x24\\x80\\xdb\\x23\\xe2\\xb2\\x67\\x7e\\xc6\\xc5\\x1b\\xd3\\x01\\xf2\\xb5\\xa3\\x9d\\xfd\\xa7\\xb4\\x77\\xbe\\xdd\\x1c\\xda\\xed\\x10\\xe2\\x9d\\x29\\x54\\x62\\x9b\\x98\\x76\\xf8\\xee\\x54\\xe4\\x04\\x73\\x69\\xd5\\x34\\xca\\xb5\\x4a\\xea\\x44\\x1d\\xc9\\x47\\xeb\\x3f\\x59\\x38\\x2b\\x21\\x83\\x60\\x57\\x2f\\x26\\x59\\x58\\x31\\x53\\xc0\\xe2\\xb9\\x12\\xcf\\x30\\xc8\\x15\\xb2\\x6f\\x05\\x85\\x3d\\xd3\\x05\\x51\\xee\\xcf\\x64\\xb8\\x58\\xa4\\x41\\xbb\\x8c\\x6d\\xb8\\xa9\\xfd\\xe7\\x7a\\x32\\xa7\\xb4\\x6a\\xf6\\x6f\\x8c\\xb9\\xf3\\x5e\\xe0\\xfa\\xfb\\x0b\\xd4\\x2d\\x9e\\x65\\xb2\\xa9\\x05\\x82\\x41\\xa3\\x1b\\x8c\\xa1\\x11\\x54\\x34\\x23\\x76\\x70\\xaa\\xb4\\xef\\xf3\\x60\\x10\\xed\\x03\\x71\\xf4\\x65\\x95\\xda\\x1b\\xdd\\x57\\x9b\\xbb\\x67\\xaa\\xdb\\x68\\xe7\\x7a\\xd3\\xa3\\x8c\\x8f\\x26\\xd2\\xaf\\x5a\\x71\\x03\\xba\\x5f\\x22\\xb4\\x2c\\xc1\\x2a\\x8c\\x3c\\xe5\\xc9\\x21\\xc9\\x1c\\xfc\\x0e\\x63\\xdf\\x90\\x27\\xd2\\x62\\x29\\xb1\\x04\\x7c\\xbc\\x18\\xf6\\xb0\"},\n{{0x26,0x22,0xbd,0x9b,0xbe,0xf7,0xff,0x4a,0x87,0x62,0x9e,0xa0,0x15,0x3d,0xc4,0xd6,0x08,0xc3,0x1f,0xa5,0x84,0x79,0x88,0xff,0x50,0x0d,0x88,0x06,0x81,0xf1,0x13,0x72,},{0x19,0x97,0x58,0xa9,0xc3,0xd0,0xee,0x3e,0xeb,0xcb,0xbd,0xa3,0xe1,0xef,0x54,0x55,0xff,0x46,0xd7,0x36,0xbb,0x4e,0xf0,0xc0,0x6a,0x73,0x9f,0x9a,0xc5,0x84,0x83,0x95,},{0x43,0x78,0x96,0x6b,0x78,0x31,0xde,0xf4,0xae,0xcb,0x49,0x89,0xbc,0xaf,0x9c,0xae,0x99,0x46,0x1c,0xb9,0xb5,0x9d,0x19,0x51,0x8c,0xc1,0xec,0x7b,0x83,0x51,0xbc,0xd1,0xf7,0x23,0xaa,0xc5,0xf0,0x61,0xb3,0x83,0x63,0x57,0x4f,0xf9,0x6b,0xa1,0x0e,0x19,0x6b,0x1b,0x05,0x31,0xe1,0x18,0x30,0x36,0xa4,0x25,0xe6,0x9c,0x45,0x98,0x04,0x0c,},\"\\x89\\x1e\\x82\\x12\\x25\\x47\\xd6\\x1e\\x83\\xb0\\xab\\xaf\\x27\\xc7\\x30\\x3f\\x05\\x22\\xa2\\xec\\x4a\\xf4\\x4e\\xf0\\xac\\x19\\x6a\\x99\\x78\\xb1\\xc6\\x23\\xef\\x1f\\xa7\\x2b\\xaf\\x70\\x91\\x0a\\x5c\\x51\\xc4\\xf7\\x8e\\x0f\\xe9\\xfe\\x37\\xe2\\x43\\x9c\\x47\\x95\\x91\\x6c\\xfa\\x22\\xab\\x47\\x1a\\x25\\x57\\xcc\\x7b\\xa6\\xb6\\x69\\x56\\x06\\x3d\\xde\\xb3\\x9c\\x50\\xf1\\x4f\\x06\\x34\\x8f\\xa6\\x6b\\x60\\x64\\xdc\\xff\\xca\\x50\\x43\\x96\\x7f\\x05\\x25\\x4d\\x57\\x7a\\xbf\\x22\\xae\\x8c\\x90\\x00\\x0c\\xe2\\xe6\\xa1\\xa8\\xb2\\xe3\\xa6\\xb3\\xab\\xc5\\x63\\xeb\\xff\\xb2\\x04\\x45\\xf0\\x91\\x1c\\xc4\\x2a\\x98\\x7f\\x84\\x56\\xef\\xba\\x41\\x30\\xe6\\x8f\\x01\\xfc\\xdf\\x7b\\xf7\\x71\\xfc\\x1d\\x35\\x37\\x1a\\x0d\\x75\\xdd\\x5f\\x90\\x00\\x2c\\x90\\xb6\\xcb\\xad\\xe4\\x0d\\x5b\\x23\\xfd\\xb4\\x9a\\xba\\xcb\\x72\\x19\\xae\\x27\\x56\\x1a\\xa2\\xa8\\x79\\xda\\x88\\xdf\\x34\\xa8\\xc5\\x81\\xf0\\xc6\\x71\\x98\\xff\\xc6\\x08\\xfe\\x91\\x95\\xb5\\x55\\x5c\\x8a\\xe9\\x34\\xc8\\x30\\xaa\\xe2\\x88\\x5b\\xea\\x87\\x48\\x74\\x48\\xe1\\x1b\\x4f\\x2f\\x17\\x2e\\x4d\\x5c\\xfe\\x4f\\xd1\\x13\\xf9\\xd2\\x01\\x6c\\x24\\xa7\\x34\\x51\\x2b\\xb9\\x18\\xf5\\x75\\xe7\\x54\\x13\\x97\\x18\\xe3\\xd2\\x0e\\x79\\x0a\\xbb\\x94\\x2c\\xba\\x3e\\xc8\\xb2\\xdb\\x59\\x07\\x96\\xdc\\x43\\x5f\\x13\\x9f\\xc6\\x4d\\xdc\\x85\\xa2\\x24\\x94\\xef\\x2b\\xfa\\x1f\\x5c\\x0f\\x18\\x75\\xea\\x58\\xe8\\x4e\\xb3\\x74\\xec\\xf8\\xce\\xc6\\x46\\x8b\\x6b\\x09\\xd1\\xe7\\x4f\\x15\\x41\\xed\\x45\\x4a\\x28\\x07\\xd3\\xf4\\x05\\x35\\x66\\xb0\\xe4\\xe2\\xc6\\xae\\xce\\xd1\\x0d\\xc0\\x07\\xe9\\xdf\\x41\\x6f\\x26\\x7f\\xcb\\x3f\\xe1\\x7b\\x8b\\xac\\xe0\\x3f\\x07\\x43\\xe0\\xe6\\xd4\\xa4\\x8c\\xe7\\x6e\\xdf\\xf6\\x0c\\x0e\\x3a\\x30\\x84\\x56\\x99\\x54\\x13\\xc1\\x07\\x6f\\xf3\\x7e\\xcf\\x23\\x81\\xa0\\xd4\\xe9\\xe4\\xa9\\x13\\xa2\\x58\\xd9\\x83\\xb9\\x69\\x6b\\x5c\\x45\\xaf\\x37\\xc8\\x68\\x40\\x70\\xe4\\x00\\xb8\\xf8\\x65\\xa5\\x04\\x04\\x3f\\x45\\xd7\\x8b\\x97\\x13\\xf3\\x35\\xaa\\x41\\x6a\\x46\\x16\\x64\\x10\\x73\\x5f\\xb5\\xd8\\x22\\x10\\x45\\x8d\\x5a\\x08\\xa1\\x04\\xd4\\x00\\x2a\\xb6\\x11\\x88\\xf9\\xdf\\x45\\x7d\\xd7\\xed\\x59\\x37\\xca\\x50\\x77\\x60\\x6b\\x41\\x8b\\xbc\\x86\\x84\\xa1\\xd5\\x25\\xbf\\xa5\\x51\\x08\\x76\\x40\\xb1\\xd1\\x77\\xca\\x6d\\x4f\\x64\\x71\\xb3\\x9b\\x2c\\xe4\\x3a\\xfb\\xf8\\x28\\x5e\\xcd\\x68\\x7e\\x43\\x8f\\x44\\x25\\xdf\\x56\\x8a\\xb8\\x6f\\xa2\\x31\\x63\\x49\\xa1\\x10\\x2b\\x41\\x43\\xd7\\x1e\\xf4\\xe2\\x4f\\x5c\\x53\\x0c\\x77\\xaf\\xb0\\x10\\x07\\x88\\x63\\x64\\x40\\xe7\\x40\\x67\\x5a\\x61\\x74\\xc5\\xf0\\x57\\x10\\xb2\\x53\\xa4\\x11\\x17\\x3f\\x9e\\x82\\xce\\x6e\\x22\\xf4\\x09\\x5e\\x77\\x14\\xb8\\x73\\x7e\\x14\\x7a\\xa0\\xf2\\x31\\x91\\x57\\x8f\\xfd\\x93\\x82\\x3c\\xe4\\xbf\\x91\\xc1\\xd1\\x10\\x98\\x2a\\x5d\\xa0\\xe4\\xb8\\x1b\\xd2\\x5b\\x9b\\x9c\\x21\\x42\\xa7\\x67\\x1e\\xe9\\x37\\xc9\\x0f\\xd0\\x71\\x5e\\xc9\\xaf\\xa4\\x4d\\x86\\x04\\x68\\x98\\xb4\\x2f\\x75\\x35\\x89\\xd2\\x26\\x8d\\x2a\\xaa\\xa9\\x85\\xcc\\x90\\xe0\\xf9\\xe8\\x27\\xa3\\x92\\x3e\\x77\\x16\\x34\\x6f\\x4f\\x89\\x31\\xc7\\x28\\x21\\xb3\\xeb\\x64\\x5d\\xaa\\x74\\x52\\xc8\\xaf\\xc8\\x98\\xd7\\x97\\x55\\x45\\xc1\\x2d\\xa1\\xbd\\xb2\\x09\\x04\\x5c\\xb0\\x0f\\x4b\\xfd\\x53\\x83\\xdf\\x01\\xf0\\x03\\x68\\x0b\\x97\\x34\\x40\\xf1\\xa3\\x9c\\x9d\\x82\\x09\\x59\\xef\\x6f\\x85\\xbd\\x33\\x63\\x90\\x65\\xae\\xfd\\xc8\\xbc\\xfe\\xcb\\xd9\\xb9\\x55\\x40\\x49\\x73\\x8a\\xf2\\x9f\\x12\\x94\\x63\\x9d\\x39\\x15\\xd6\\x32\\x99\\x5e\\x8f\\xaf\\x71\\x3e\\xf2\\xee\\x3c\\x29\\x8b\\x55\\x96\\xfa\\x10\\xc9\\x9f\\x94\\x6d\\xdb\\x32\\x34\\x06\\x95\\xdf\\x1c\\x19\\x45\\x94\\xea\\xf3\\x77\\x8d\\x73\\xc8\\xba\\x60\\x40\\xc0\\x4e\\xb3\\xa4\\xff\\x86\\x77\\x93\\x6b\\x88\\xe0\\xc5\\xf0\\x44\\x14\\x80\\xd1\\x07\\xd7\\xac\\x22\\x02\\xb3\\xb6\\x94\\xe5\\x7c\\xcc\\xa6\\xd8\\x25\\xe2\\xa0\\x7e\\x81\\x2e\\xd2\\x9b\\x2c\\x20\\xd5\\xc6\\x05\\x47\\x15\\x79\\xe3\\xed\\xff\\xc2\\x23\\xf2\\x42\\xc5\\x93\\x91\\xdb\\x41\\xe9\\x8d\\x5f\\x3d\\x6c\\x5b\\x1e\\x32\\xac\\x82\\x37\\xfc\\xfd\\x10\\x20\\x54\\x3a\\x40\\x41\\xe0\\x3d\\x92\\xad\\x3e\\x2e\\xc5\\x52\\x91\\x47\\x07\\xc7\\x7c\\xd0\\x1f\\x3e\\x48\\x01\\x14\\x44\\x28\\x3f\\x09\\x68\\xfa\\x4d\\xee\\xee\\x55\\xc4\\x56\\xed\\x1f\\x87\\x7a\\xde\\x04\\xac\\x8e\\x8d\\x2c\\xb6\\xc8\\x58\\x20\\xb4\\x92\\x9b\\x25\\xbf\\x31\\xe9\\x25\\x43\\x5d\\x6b\\xcc\\x50\\xd3\\xe2\\xe9\\xb8\\x51\\x02\\xe9\\x70\\xd7\\x89\\x5c\\x25\\xad\\xe5\\x21\\x61\\xa3\\xb6\\xbf\\x50\\x1a\\xb0\\x19\\x61\\xcb\\x63\\xed\\x99\\x0a\\xeb\\x93\\xed\\xa3\\x82\\x8b\\xf0\\x4c\\xa5\\x28\\x53\\xc7\\xb6\\xb8\\xe9\\xe4\\x9e\\x34\\x9d\\x69\\xb5\\x3b\\xe0\\x74\\x85\\xf5\\x42\\xb7\\xcd\\xd0\\x6b\\x52\\x7d\\x41\\xdd\\x11\\x9c\\x70\\xb5\\x64\\xf1\\xa9\\x3a\\xec\\x62\\xae\\x74\\xe6\\xe8\\xf8\\x55\"},\n{{0xae,0xb1,0x3c,0xcb,0x90,0xc8,0xcb,0xef,0x90,0xd5,0x53,0xda,0x3f,0x69,0x01,0xb3,0xd7,0x5c,0x13,0x01,0x1f,0x02,0x49,0x74,0xda,0xf7,0x9a,0x17,0x89,0xc8,0xc6,0x32,},{0x5f,0xaa,0xfe,0xb5,0x95,0xf1,0x6d,0x33,0x8f,0x1c,0x72,0xa9,0xf3,0xe4,0x98,0xf3,0x8b,0xab,0x69,0xa8,0x1b,0x37,0xd2,0xd0,0x92,0xb7,0xbf,0x7e,0x50,0x5d,0x82,0x0d,},{0x06,0x11,0xb1,0x9a,0x74,0x72,0xa4,0x43,0xe8,0x7e,0x54,0xd7,0xc6,0x64,0x7f,0xaa,0xb1,0xb7,0x9a,0x83,0xfd,0x43,0x71,0xc9,0x2b,0x97,0x54,0x00,0xfd,0x62,0x8a,0xcf,0xc3,0x25,0x77,0xcc,0xbb,0xaf,0x03,0xd8,0x8f,0x89,0x3c,0x88,0xf2,0xca,0xc7,0x84,0xc7,0x22,0xa0,0x8f,0x38,0x7a,0xbc,0x31,0x9a,0x70,0x2c,0x86,0x84,0x79,0x65,0x0b,},\"\\x86\\x1a\\x10\\x18\\xd6\\xbd\\xc4\\x80\\x5a\\x5c\\x4d\\xf8\\x7e\\xfa\\xa4\\x62\\xc6\\x8b\\x4b\\xf4\\x06\\x5c\\x68\\x4c\\x2a\\xf1\\x31\\xc6\\x37\\x73\\x88\\xba\\xee\\x58\\xc6\\xc8\\xf8\\x84\\x23\\x62\\xec\\x6e\\x3b\\xce\\x07\\xc8\\xaf\\x55\\x88\\x5e\\x82\\xdb\\x87\\xa1\\x52\\x27\\x80\\x0d\\xd3\\x3a\\xfc\\x5e\\x5f\\xd1\\x57\\x01\\xe9\\x5f\\x53\\x50\\x1b\\x1a\\x6f\\xf8\\x3c\\x64\\xe8\\x51\\x71\\x49\\xbf\\x3f\\xf0\\x11\\xb0\\x94\\xa0\\x9c\\x67\\x3d\\x0f\\xc4\\xa3\\x9e\\xe5\\x5e\\x69\\xf0\\x71\\x17\\x7b\\x8a\\xa3\\x64\\xe1\\xe2\\x56\\x06\\x4c\\xf7\\x02\\x79\\xcc\\x76\\x69\\x5a\\xe4\\x9d\\xaf\\xcd\\x80\\xca\\x0a\\x14\\xe1\\x69\\x1d\\xb9\\x46\\x42\\x2e\\xc7\\x5a\\xb4\\xf7\\x86\\x59\\x15\\xa6\\x9b\\xd4\\x8d\\x89\\xb1\\x2a\\xdf\\x48\\x7d\\x4d\\xb9\\xbe\\x87\\xcd\\xdc\\xa2\\x11\\xaa\\x88\\xe9\\xbb\\xe8\\x49\\xda\\x21\\x39\\x89\\xeb\\x08\\x44\\x59\\x2a\\xd6\\x3e\\x28\\x1b\\x2e\\x4a\\xfe\\x6a\\x88\\x36\\x00\\x66\\x09\\x92\\x6c\\x0f\\x78\\x7e\\x84\\xf2\\xa9\\x5b\\x46\\xb6\\x6f\\x0e\\x45\\x55\\xc9\\x48\\x3c\\xe2\\x17\\x6f\\xc6\\x3f\\x7c\\xc9\\xf4\\xf2\\xa2\\x2d\\xb0\\x55\\xaa\\xe2\\xe6\\x8b\\x30\\xa0\\xda\\x5f\\xeb\\x80\\xc2\\xa6\\x0e\\xa1\\x0d\\xbf\\x67\\xfb\\xbc\\xdb\\xe0\\xbe\\x33\\xf2\\xe9\\xc1\\x3c\\x46\\x9e\\x77\\x68\\xf2\\xff\\x59\\x60\\xa5\\x5e\\xb4\\x82\\xec\\x11\\xd4\\x7e\\x15\\x4b\\x7c\\x42\\xa5\\xfb\\x75\\x6c\\x8a\\xd5\\x39\\xb3\\x3d\\x12\\x5a\\x4a\\x65\\x19\\x2c\\x6c\\x9b\\xd5\\x76\\x23\\x8c\\xa7\\x2a\\x73\\xcd\\x17\\x9e\\x8c\\xf5\\xcd\\x04\\x8e\\xd3\\x30\\x21\\x38\\x23\\xab\\xba\\xfc\\x36\\x82\\xb2\\xb7\\xf6\\x8c\\x5b\\xc4\\x6f\\xd0\\x9a\\x8c\\xb2\\xa3\\xfd\\x09\\x95\\x73\\xee\\x2e\\x6f\\x28\\xc8\\x2e\\x27\\x1b\\xb5\\xef\\x93\\x4b\\x0b\\x0c\\x38\\x1c\\xfa\\xae\\xc6\\x66\\xd7\\x17\\x10\\x6a\\x87\\x4a\\xf3\\x0a\\xa7\\x41\\x25\\xea\\xe9\\xac\\xc2\\xf1\\xf2\\x41\\x18\\xcb\\x4e\\x68\\x3a\\x73\\x1e\\x37\\xe5\\xe4\\x64\\xa1\\xea\\x3d\\x2a\\x53\\xcc\\x0d\\xca\\xd4\\xc1\\x7c\\xea\\x9a\\x43\\xe2\\x36\\x5f\\x3a\\xe3\\xdd\\x89\\xeb\\x39\\x97\\x74\\x20\\x04\\x55\\x50\\x74\\x5f\\xc2\\x67\\xfc\\x7d\\xcc\\x56\\x02\\xe9\\x14\\x97\\x2a\\x4d\\xa6\\xeb\\xeb\\x68\\x7f\\x68\\xa0\\xcd\\x7d\\x8b\\x4f\\xdd\\x73\\x72\\x21\\x06\\xa8\\xe4\\x36\\xb9\\x3e\\x5b\\x58\\xf5\\x98\\x2a\\xce\\xcd\\xec\\xfd\\xb3\\x82\\xfe\\x98\\x53\\x82\\x61\\x42\\x6b\\xa6\\x40\\x52\\x55\\x76\\x43\\xce\\x9f\\xec\\x71\\xea\\x43\\xcf\\x5b\\x6c\\xba\\xde\\xb4\\x95\\x31\\x93\\xff\\x3e\\xd1\\xa1\\xf9\\x22\\xa9\\xaf\\x2e\\xc6\\xf3\\x38\\xe7\\xfb\\x0a\\xff\\xe3\\xd1\\x3c\\x33\\xe3\\x95\\x87\\x3e\\x4a\\x7a\\x7f\\xb0\\x44\\x98\\x1e\\x05\\xa6\\x71\\x97\\xb9\\x96\\xb1\\x99\\xb4\\x30\\x11\\x11\\x93\\x63\\xe5\\x61\\xd5\\xb8\\xa5\\x17\\x84\\xfd\\xff\\x58\\xab\\x80\\xed\\x4c\\x49\\xe9\\x3f\\x0c\\xf4\\x19\\x24\\xf9\\x83\\x5e\\xfb\\x09\\xf6\\x44\\x63\\xb6\\x55\\x17\\xb6\\x7b\\x15\\xdc\\x3f\\x28\\xad\\x9a\\x9b\\x2d\\x29\\x46\\x8d\\xe2\\xc6\\x3e\\x62\\x00\\x4b\\x6a\\x3f\\xd0\\xc5\\xc2\\xe2\\xaa\\xa6\\xcf\\xa1\\x5e\\x4f\\xaa\\xfa\\x1e\\x2c\\x71\\x3e\\x98\\xd3\\xfd\\x25\\xca\\xb9\\xe5\\x17\\x03\\x59\\xc8\\x36\\x51\\x52\\xb4\\x74\\x27\\x6e\\xd0\\x03\\x7c\\xdf\\x77\\x18\\x28\\xe2\\xfb\\x7c\\xce\\xc4\\x89\\x5f\\x21\\xad\\xcc\\x5b\\x68\\x87\\xc8\\x6e\\x51\\xad\\x05\\xf2\\x55\\xf6\\xe9\\xda\\xd2\\xc4\\x1f\\x56\\xb9\\x8b\\x7b\\xbb\\xf9\\xfc\\xb6\\xba\\x8c\\xad\\xfd\\x38\\xad\\x8c\\x62\\xf9\\x2d\\xd8\\x77\\x40\\xfa\\x1e\\x1b\\xd1\\x70\\xc0\\x0b\\x20\\x49\\xc5\\x13\\x0f\\xe7\\x33\\xf1\\x6b\\x1f\\x2c\\x7f\\x00\\xb2\\xef\\x97\\xb3\\xa9\\x54\\x58\\xc5\\x3f\\x19\\x9d\\x46\\x53\\x36\\xd5\\xff\\x59\\x77\\x80\\x6e\\x1a\\xfd\\xe3\\xea\\xa2\\x46\\xd8\\x5c\\xab\\xf7\\xe1\\x23\\x48\\x1e\\x23\\x92\\x99\\x76\\xed\\x19\\xc4\\x0e\\x29\\xff\\x33\\xd8\\x0e\\x7d\\xea\\xb1\\x92\\x71\\xde\\xcd\\x5e\\xe0\\x61\\x72\\xb0\\xb0\\xa1\\x39\\xbd\\x62\\xa2\\xe7\\xc8\\x3a\\x8a\\x65\\x60\\x1d\\x0a\\x05\\xd6\\x1a\\xf9\\xc6\\x03\\x2d\\xf5\\x80\\x01\\xd4\\x73\\xe2\\x0d\\xd6\\xc6\\xaf\\xd7\\x8d\\xdb\\xd7\\xcd\\x17\\x8e\\x9c\\x27\\x1e\\x05\\x72\\xf8\\x59\\x82\\x82\\x3c\\xe6\\xc4\\x02\\x93\\x0c\\xf8\\x0f\\x5e\\x0c\\x7c\\xda\\x85\\x12\\x2a\\x76\\xd1\\xce\\x02\\x1b\\x1e\\x3d\\xe2\\x55\\x6d\\x1b\\x45\\xac\\x7b\\x01\\xb5\\x9c\\xad\\xa2\\x52\\x91\\xd6\\x38\\xa5\\x2a\\x5e\\x7d\\xbc\\xdd\\xf9\\x6b\\xb1\\x77\\x4a\\xb0\\xb0\\x77\\xe4\\xb3\\xda\\x5a\\x95\\x8f\\xe1\\x1d\\xee\\x4a\\x02\\xe6\\x9b\\x91\\x8d\\xdb\\xfa\\x1c\\x5b\\x3b\\x7d\\xca\\x9f\\x87\\x84\\xbb\\x6b\\x0b\\x9d\\x5a\\x7f\\xee\\x74\\xbb\\x03\\x74\\x7f\\x61\\xc2\\xb2\\xf1\\xb4\\x92\\x45\\x2d\\x3b\\x56\\x0b\\x48\\xd3\\x9d\\x87\\x21\\xe9\\x83\\x75\\x25\\x56\\xd4\\x4d\\xa6\\xb0\\x28\\xd9\\xae\\xf8\\xbf\\xf9\\xaa\\x37\\x9c\\x8e\\x2b\\x0a\\x63\\x6d\\x74\\x88\\x60\\xab\\xd8\\xe6\\x4f\\xc8\\xe9\\x65\\x20\\xa3\\x4a\\x27\\xf7\\x67\\xaa\\x97\\xa8\\xf7\\x7b\\x60\\x95\\x21\\x8e\\xad\"},\n{{0x73,0x87,0x2b,0x14,0x76,0x2f,0x68,0xda,0xe4,0xfc,0x10,0xdf,0xd6,0xf4,0x2d,0x3f,0x96,0x22,0xbf,0x2a,0xfe,0x6b,0x34,0xa9,0x56,0x49,0xaa,0x38,0x74,0x24,0xee,0x6c,},{0xdf,0xab,0x2c,0xe1,0xab,0x99,0x81,0xaa,0x7c,0xbf,0x32,0x07,0x35,0x00,0x07,0xfa,0x6c,0xe6,0xca,0x60,0xa2,0xed,0x7b,0x59,0x0f,0x3c,0x2f,0x62,0x92,0x2d,0x8f,0x61,},{0x85,0x25,0xc3,0x46,0xca,0x3a,0x6a,0x6c,0x5f,0x65,0xc4,0x17,0x78,0x59,0x93,0x77,0x65,0x98,0x70,0xcb,0x6d,0xf9,0xa4,0xa0,0xe5,0x5b,0x40,0xc3,0x5b,0xeb,0xa5,0x5c,0x8e,0x00,0x9e,0x56,0x00,0xb6,0x44,0x7d,0xc7,0x40,0x2b,0xa2,0x77,0x49,0x29,0x7e,0x8f,0x95,0x28,0x69,0x18,0x56,0xf7,0x2d,0x2a,0xd7,0x61,0xed,0x1b,0xc1,0x53,0x09,},\"\\x43\\x3d\\x71\\x78\\x1c\\xea\\xb2\\xb4\\x7d\\x82\\x6e\\x67\\xd3\\x9f\\x9b\\x80\\xd2\\xff\\xd7\\x25\\xf8\\xc5\\xae\\xb4\\x0c\\xbe\\x4f\\x9b\\x5f\\x48\\xef\\x93\\x52\\x1c\\xce\\xc6\\x04\\x36\\x0b\\x96\\x47\\x32\\x31\\x90\\xbf\\xef\\x75\\xac\\x93\\x15\\x62\\xd2\\x7f\\x4a\\x4e\\x31\\xf4\\x6e\\x57\\xbc\\x99\\xfa\\x51\\x58\\xc8\\x2e\\x12\\xb7\\x37\\xe4\\x5c\\x5d\\xe9\\xf7\\xdd\\x7c\\x86\\x22\\xd4\\xa7\\xea\\xad\\xf7\\x20\\x2f\\xb4\\x9d\\x81\\x9c\\x9a\\xd2\\x4f\\x88\\x07\\x31\\x3c\\x5f\\x37\\xdc\\x20\\x45\\x3b\\xdf\\x05\\xc9\\xbf\\x1a\\x3c\\x21\\x17\\xc9\\x3e\\x7f\\x3c\\xc8\\xa2\\x54\\x20\\x98\\xe8\\xfc\\x1c\\x64\\x2f\\xa4\\x7b\\x05\\x54\\x36\\x57\\xb8\\x5f\\x48\\x0b\\xc8\\x6e\\xc4\\x28\\x00\\xbb\\x14\\x22\\x35\\x9c\\x7c\\x3e\\x8f\\xf4\\xbe\\x59\\x8b\\xd5\\x4f\\x1d\\xc5\\x86\\xac\\xae\\x45\\xa4\\x74\\x06\\x22\\xb9\\x62\\x74\\x2b\\xc8\\x6e\\x17\\xcf\\xa6\\x3e\\x77\\x53\\x54\\xe7\\x70\\x7e\\x50\\x79\\x58\\x9e\\x8d\\x10\\x8b\\x1f\\x11\\xda\\xce\\x05\\x75\\xcb\\x9a\\x6d\\x26\\xb5\\x9f\\xce\\x98\\x14\\x65\\xd9\\xbc\\x34\\x4e\\xa6\\x94\\x5a\\x95\\xb8\\x62\\x79\\x63\\x84\\xfa\\x81\\x70\\x56\\x08\\x57\\x45\\x7b\\xef\\xf9\\x5a\\x9b\\x5a\\xc3\\xd6\\xad\\x28\\x2d\\x44\\x92\\x9a\\x30\\x30\\x26\\xb4\\xbb\\xed\\xd6\\x0e\\x2e\\xf0\\x55\\xa3\\x1f\\x52\\xd7\\xce\\x8d\\xf2\\xca\\x5d\\x18\\x51\\xc5\\xb1\\x67\\xdb\\x08\\x09\\x25\\x9b\\xb8\\x12\\x56\\x90\\x74\\x10\\x5c\\x73\\x4c\\x85\\xd6\\x23\\x12\\x73\\x75\\x5f\\x3a\\x8b\\x56\\xdc\\x50\\x8d\\xb5\\xc2\\x3d\\xac\\xb7\\xa0\\x61\\x67\\xbd\\xa5\\x1b\\xc0\\x13\\x50\\xf0\\x16\\xcd\\x41\\xb2\\x1e\\x8c\\xc5\\xbc\\x93\\x34\\x3a\\x9b\\xb6\\xea\\x47\\x38\\xc5\\xc8\\x4b\\x78\\xfa\\x96\\x3c\\x41\\x0e\\x43\\x3d\\xc5\\x98\\x19\\x6c\\x22\\xe5\\xb7\\x91\\xe1\\x2a\\x4b\\x34\\x3f\\x7c\\xd4\\x7b\\xbb\\x0e\\xb0\\x78\\x2b\\xdb\\x1a\\x4e\\x46\\x68\\x46\\xa0\\x30\\x52\\x8e\\xeb\\x89\\x05\\x6f\\x73\\x25\\x71\\x93\\xad\\xaa\\xbc\\x1b\\x22\\x98\\x62\\x03\\x48\\x78\\xc3\\x25\\x8a\\x53\\x25\\x48\\x76\\x2e\\x29\\xec\\xc0\\x01\\xab\\xd9\\x89\\x64\\x9d\\xa5\\xe1\\x44\\xcf\\x35\\xd4\\x86\\x99\\xf2\\x3b\\xc4\\x6c\\x5b\\x34\\xe0\\x4a\\x53\\xe7\\x27\\x24\\xb2\\xb0\\xb8\\x78\\x98\\x25\\x75\\xd6\\x88\\xe2\\x3c\\xbe\\x3a\\x34\\x06\\x7f\\x49\\x71\\xe5\\x55\\x97\\x2e\\xc2\\x90\\x8a\\xe5\\xf0\\x3e\\x88\\x31\\xec\\x67\\x75\\x5b\\xe9\\x56\\x87\\xce\\x63\\x72\\x93\\x9e\\x1e\\x2f\\xb6\\x95\\x1e\\xc9\\xec\\xf4\\xbf\\x7d\\x15\\x35\\x43\\x1e\\x25\\x9f\\x29\\xad\\x43\\x12\\x22\\xb5\\x4b\\x65\\xaa\\x7d\\x07\\xcf\\xb5\\xdf\\x16\\x2a\\x87\\xc4\\xd0\\x34\\x81\\xeb\\x44\\x1f\\x22\\x1d\\x7f\\x58\\x62\\x7a\\x14\\x16\\x4e\\x7f\\x4c\\x2e\\x3a\\x1d\\x50\\x7e\\x89\\x9d\\x53\\x58\\xe0\\x08\\x29\\xb0\\x8c\\xf3\\xae\\xcb\\x8a\\x75\\xb2\\xa3\\x1c\\x31\\x85\\xa5\\x80\\xe1\\x2b\\x13\\xf0\\x64\\x28\\x69\\xff\\xfb\\x05\\x67\\x23\\xe9\\x61\\xaa\\xf6\\xfe\\xfe\\x67\\xb4\\xa7\\xc4\\xc9\\x3d\\xb3\\xfe\\x1f\\x61\\xad\\xcc\\x76\\x55\\x69\\xa9\\x9c\\x09\\xa3\\xc8\\x24\\xed\\x4a\\x98\\xba\\xbe\\xae\\x43\\xef\\xb1\\xf3\\x51\\xba\\x13\\x0e\\x22\\xaa\\x97\\x81\\x19\\x86\\xbe\\x92\\x3c\\xc4\\x18\\x0a\\x7c\\x4b\\x78\\xbc\\xc1\\x40\\xce\\xc1\\x55\\x74\\x65\\x4a\\xa6\\xd6\\x5a\\x06\\xb9\\x7e\\xcf\\xa5\\xf3\\xa9\\x35\\x5f\\x96\\xe4\\xee\\xaa\\x76\\x89\\x21\\x7b\\x66\\x3f\\xba\\x4d\\xab\\x0d\\x99\\xb1\\x9c\\x8d\\x8d\\xbf\\x47\\xa1\\x57\\xe5\\xd5\\x96\\x9a\\x35\\xef\\x84\\xdf\\xf9\\x56\\x2e\\xdd\\x43\\x4e\\x73\\xae\\xe7\\xd0\\xd8\\x92\\xdd\\xa7\\x2a\\x36\\x2a\\x22\\xa7\\xe9\\xfa\\x86\\x34\\xa5\\x7e\\xeb\\xd1\\xa9\\x07\\x48\\x5c\\xa8\\x92\\x1b\\xdc\\x19\\xee\\x9e\\xe5\\x88\\xf3\\x95\\x68\\x7d\\x3f\\xc8\\xf8\\xc2\\x5f\\x2e\\x95\\x76\\xca\\x60\\x31\\x3f\\xbb\\x2c\\x26\\x5a\\x99\\xf2\\xcd\\xd5\\x57\\x5b\\x1d\\xd5\\x30\\x60\\x4e\\x9a\\xd6\\x69\\x5c\\x9f\\xb3\\x59\\x94\\xa8\\xb8\\x7d\\x5c\\x85\\x70\\x54\\x9a\\x4d\\x32\\x9b\\x9f\\xe0\\x87\\x06\\x9a\\xb7\\xeb\\x0d\\x71\\x4a\\x94\\xe1\\x92\\x61\\xf8\\x6e\\x44\\x8f\\x2d\\xa9\\xb1\\xcb\\x0c\\x0d\\xbe\\x41\\xd4\\x4c\\x3a\\x82\\x47\\x83\\xd1\\xbd\\xbd\\x73\\x26\\x05\\x1a\\xeb\\x10\\xad\\xab\\x80\\x5c\\x5c\\x59\\xd0\\xe8\\x3b\\x1c\\x11\\xa2\\xfd\\xd3\\x5e\\x44\\x4a\\x49\\x9e\\xd1\\x5d\\xaf\\xd8\\x38\\x62\\x77\\x5f\\x6c\\xdf\\xc6\\x75\\x95\\x81\\x84\\x07\\xbe\\x55\\xec\\xbf\\x7b\\xf8\\x6c\\x73\\x06\\x9a\\xac\\xe5\\x77\\x62\\x6a\\x85\\x63\\x53\\x6f\\x60\\x50\\x42\\xcf\\x7c\\xaa\\xf6\\xfc\\x8e\\x3b\\x54\\x5b\\x77\\x41\\x4d\\xf8\\xd9\\xf6\\x49\\xb9\\x9e\\xe4\\x25\\x41\\xda\\x38\\xc3\\xaa\\xe6\\x27\\x20\\x78\\x45\\xb8\\xf4\\x14\\xa8\\x07\\x4d\\x70\\x86\\x8a\\x5c\\x0b\\x07\\xb0\\x70\\xc3\\xc6\\x53\\xbe\\x04\\x07\\x6b\\x83\\xca\\xd7\\xb0\\x30\\x5d\\x95\\x00\\xaa\\x44\\x45\\x5c\\xb8\\x60\\xdc\\xc7\\x64\\x00\\xaf\\x93\\xc3\\xd2\\xef\\xb4\\x2a\\xe0\\x56\\xf1\\x42\\x8b\\x65\\xf1\\x22\\xe1\\xc7\\xb9\\x58\\x4d\\x81\\x4d\\x50\\xac\\x72\\xef\\xdb\"},\n{{0x67,0xcf,0x27,0x15,0x52,0x87,0xbe,0x6b,0xfa,0xb6,0x62,0x15,0xe0,0x17,0xc3,0x46,0x63,0x22,0xf2,0x1e,0x6e,0xb1,0x40,0xbe,0x4f,0x1b,0xde,0xcf,0x55,0xab,0xfd,0xc1,},{0xd0,0x70,0xaa,0xb2,0x95,0xa8,0xaf,0x93,0x57,0x27,0xc3,0xbe,0x44,0x2b,0x25,0x1d,0xb9,0xe7,0x74,0xd2,0xf4,0x4b,0x3c,0x24,0x24,0xc5,0x2f,0xc8,0x96,0x56,0xe1,0x69,},{0xc9,0x34,0xa3,0xa1,0xaa,0xab,0x78,0xd9,0x26,0x9d,0x1e,0x9d,0x13,0x39,0x2f,0x72,0xc6,0x37,0xbc,0x5d,0xe5,0x4f,0x04,0x69,0x1e,0xfc,0x29,0xd4,0x73,0xb4,0x75,0x02,0x5d,0x8d,0x8f,0xe3,0xc5,0x23,0xd2,0xd2,0x9c,0x41,0xc5,0xf3,0xde,0xc6,0xca,0x38,0xce,0x6d,0x68,0xd7,0xff,0x09,0xb6,0x13,0x5b,0xa2,0x4d,0x0d,0x32,0xcc,0x15,0x02,},\"\\x0f\\xf0\\x52\\x97\\x03\\x1c\\x89\\x27\\x74\\xcb\\x2c\\x01\\xe8\\xca\\x60\\xdd\\xd0\\xce\\xac\\xc0\\xb8\\xd5\\x91\\xa8\\x91\\xe3\\x3b\\x19\\xe1\\xbe\\x9e\\x36\\x3b\\xc6\\x42\\x0d\\x6f\\x52\\x9f\\x04\\x84\\x0b\\x3b\\x08\\x85\\x3c\\x83\\x5a\\x03\\xe0\\x36\\x97\\x8b\\x04\\xa4\\xf9\\xec\\x6b\\xe4\\xae\\xf3\\x31\\x95\\x61\\x90\\x99\\x6d\\xea\\x27\\x26\\x19\\xf1\\x68\\x6d\\x33\\xbe\\xf0\\x3d\\xbc\\x08\\x5a\\x92\\x3a\\x0f\\x11\\x5b\\x78\\xf6\\x53\\xfe\\xeb\\x60\\xbb\\x9e\\x45\\xf3\\x4f\\xb8\\xbe\\x5a\\x4c\\xbb\\x64\\x8c\\x7d\\x29\\x95\\x6f\\x0d\\x0e\\x96\\xbd\\xd3\\xc8\\xd0\\x64\\x97\\x20\\x62\\x4c\\xbc\\x20\\x79\\xe8\\x4f\\xd6\\xd0\\x10\\x24\\x11\\x24\\x09\\x84\\x59\\xf1\\x2a\\xf2\\x99\\x1d\\x38\\x28\\x77\\x0f\\x50\\xb1\\x04\\xea\\x6e\\x5f\\x51\\xfd\\xad\\x30\\xa9\\xb8\\x07\\x9d\\x21\\x59\\xe4\\x6d\\x64\\xaf\\x91\\xd0\\x7c\\x10\\xed\\x19\\x81\\x4d\\xf2\\xaf\\xe6\\x60\\xd7\\xd8\\xf2\\x40\\x35\\x34\\xe9\\x2c\\x62\\xe1\\xea\\x6d\\x68\\x82\\x03\\xbc\\xa3\\xd9\\x7c\\x2a\\xfd\\xa8\\x3b\\x25\\x55\\x20\\xff\\xe9\\x2a\\x33\\x62\\x57\\x72\\x51\\x3b\\x1f\\xe3\\x4f\\xaf\\xe3\\x2b\\x6a\\x9b\\x8c\\xf9\\x94\\xdf\\x7e\\x63\\x4e\\x68\\x65\\x91\\xe5\\xf0\\x07\\x3a\\xba\\xbc\\x64\\xa8\\x92\\x10\\xba\\x53\\xa4\\x99\\x1c\\x11\\x55\\x7e\\x03\\x34\\xe6\\xc6\\xa5\\x03\\x6c\\x64\\x2a\\x31\\x8f\\x22\\x95\\x11\\x71\\x39\\x08\\x5f\\xb3\\x40\\x75\\x64\\x70\\x06\\x75\\x8e\\x32\\xbc\\x00\\xad\\x10\\x9f\\xe8\\x03\\xf7\\xee\\x9f\\x5e\\xc2\\xaf\\x4d\\x25\\xc3\\x07\\x0a\\xbc\\x51\\xcf\\x4d\\x78\\xe1\\x3a\\x7c\\xe2\\x83\\xd4\\xfb\\x4e\\xb4\\x1d\\x3e\\x8c\\xe9\\x02\\x38\\x50\\x0a\\xe0\\xce\\xda\\x32\\x0e\\xc5\\x92\\x2e\\xfa\\x10\\xb9\\x03\\x74\\x8e\\x1e\\x85\\x3a\\x37\\x29\\xd2\\x4c\\x10\\x54\\x39\\xdf\\x2f\\x70\\x00\\x12\\x3d\\xb9\\xb2\\xc0\\x15\\x33\\xbb\\xf0\\xd0\\x28\\xeb\\xb2\\xfc\\x00\\xdc\\xe3\\x8a\\xd0\\x63\\x28\\xee\\x9e\\xcd\\x84\\x9a\\x6e\\xfc\\x3a\\xe8\\x84\\xef\\x69\\x33\\xcf\\xeb\\xed\\x05\\x5b\\xb2\\x96\\x8a\\x0b\\x06\\x76\\xb5\\x72\\x92\\x16\\x17\\x8c\\x75\\x19\\xef\\x07\\x88\\x59\\x3f\\xc0\\xdc\\xff\\x50\\xd7\\xe0\\xb1\\xeb\\xb3\\xcf\\x49\\xbb\\xd1\\xbf\\xa5\\xc3\\x0e\\xa7\\xb8\\x8c\\x36\\xe1\\xa1\\x59\\x3a\\xef\\x0b\\xb3\\xf9\\xe2\\x09\\x1c\\x85\\x89\\xf7\\x41\\x4b\\xee\\xd8\\xdf\\x46\\x6a\\x2e\\xd8\\x7b\\x2c\\xb5\\xf3\\x5f\\x1d\\x31\\x24\\x6c\\xeb\\x96\\x86\\x09\\x25\\x36\\x15\\xd7\\x80\\x43\\x51\\x73\\x79\\xee\\x69\\x74\\xa6\\x69\\xcb\\x48\\xda\\x6a\\xc2\\xf9\\x6d\\x70\\x0b\\x7e\\x44\\xa4\\x35\\xcf\\xef\\xec\\x40\\x2a\\x1e\\x31\\x10\\xe7\\x69\\x81\\x92\\x4f\\x26\\x01\\xc0\\x1d\\xc0\\x35\\x46\\xfd\\x4f\\x51\\x16\\x49\\x30\\x2f\\x06\\x33\\xdf\\xbd\\x25\\x65\\x1c\\x5a\\x59\\x9c\\x90\\x95\\x44\\x89\\xc7\\x6a\\x65\\xec\\x05\\xa7\\xe4\\xcc\\x74\\x61\\x6c\\xe2\\x56\\x01\\xcc\\x37\\xb8\\x04\\xe1\\xf0\\xbc\\xc8\\x65\\x10\\x23\\xb1\\x2e\\x13\\x56\\x84\\x41\\xe8\\xb8\\xef\\x4c\\x30\\x5f\\xcd\\xad\\x3d\\x2b\\x13\\xfa\\x08\\x03\\x24\\xb2\\xfd\\x6b\\x61\\x99\\x8c\\xf8\\x64\\xb6\\x58\\xbc\\x7f\\xef\\xcc\\x48\\xa5\\xa7\\x68\\x1d\\x7c\\x86\\x6c\\x34\\x2c\\x7f\\x5d\\x6c\\xf1\\x08\\x81\\x52\\x2c\\xc7\\x10\\x25\\x7d\\x25\\xa4\\xc1\\xe3\\x52\\xd2\\x70\\xe9\\x02\\x08\\x2a\\xb9\\x54\\x1d\\x59\\x00\\xce\\xff\\xa0\\x91\\x4b\\x16\\xb5\\x5e\\x0d\\xd3\\x78\\x6e\\x98\\xd4\\x17\\x20\\x87\\x5a\\x14\\x8e\\xb4\\xab\\xdb\\x01\\x53\\x85\\x66\\x79\\xfb\\x98\\xc0\\xec\\x48\\x5e\\x5f\\x45\\x8d\\x63\\x5b\\x78\\x61\\xa2\\xb3\\xa8\\xba\\x5e\\xc2\\xc1\\x44\\x4d\\x35\\x39\\x80\\x20\\x0e\\x5e\\x07\\x18\\x08\\x85\\x4a\\x26\\x8c\\xc7\\x6c\\x60\\x5c\\x94\\xf3\\x73\\x29\\xc3\\x61\\x87\\xa4\\x1f\\xdd\\xf9\\x2a\\xab\\xdb\\x49\\x96\\xa0\\xe1\\x0b\\x31\\x55\\x26\\xaf\\xea\\xc8\\x0e\\xb2\\xfa\\x32\\xaf\\x78\\x6a\\x34\\x31\\x6b\\x36\\x11\\x1e\\xe9\\x35\\x21\\x08\\x14\\x4d\\x70\\xf7\\xd1\\x72\\x3b\\x32\\xf4\\xdb\\xaa\\x82\\x20\\x13\\x53\\x41\\x1d\\x65\\x77\\x13\\xe5\\x5e\\x35\\xdf\\x78\\x58\\x0b\\x1b\\xc0\\x86\\x80\\xf0\\x15\\x9f\\xa1\\x16\\xfa\\xf4\\x63\\x56\\x6a\\xaf\\xe8\\xae\\xa6\\x98\\x57\\xe7\\x2e\\x44\\xac\\x80\\x9a\\xc4\\x3f\\x5c\\x45\\x93\\x9d\\x85\\xa1\\xa5\\xf4\\xa3\\x70\\xa1\\x89\\x96\\xc8\\x51\\x4a\\x46\\xf3\\x43\\x71\\xef\\x9e\\x5f\\xb2\\x04\\x42\\x2c\\x93\\x4a\\x1d\\x29\\x3d\\x10\\x1b\\x8c\\x16\\xf9\\x9c\\xc0\\x73\\xea\\x36\\x6a\\x13\\xa4\\x5c\\x43\\x7d\\x62\\x0d\\x13\\x2b\\x74\\x40\\x9c\\xbf\\x8b\\x9c\\x07\\x5b\\x41\\x63\\xf7\\x26\\xaa\\x67\\xe5\\x09\\xa2\\x48\\x74\\xfc\\x1b\\x1f\\xb6\\xfb\\x7c\\x73\\x55\\x15\\x9c\\x02\\xaa\\x13\\xe6\\x4b\\xad\\xf1\\x50\\x35\\x6b\\x18\\x41\\xb3\\x21\\xf8\\x04\\x1e\\x13\\xed\\x77\\xe8\\x46\\x1c\\xfb\\xb8\\xe8\\x28\\x48\\x8b\\xf5\\x17\\xa5\\xd2\\x9f\\xf8\\x2e\\x73\\x67\\x48\\x0a\\x8e\\xdd\\xde\\xb5\\x35\\x0e\\x7a\\x83\\x42\\x3b\\xd0\\xb1\\xc5\\x5f\\x7b\\xb4\\x24\\xca\\x04\\xc2\\x05\\x72\\x3c\\xd5\\x40\\x56\\x71\\xe7\\x33\\xf3\\x91\\x60\\x0a\"},\n{{0x18,0xc2,0x1c,0x0d,0x0d,0xe1,0x3d,0x4c,0x64,0x49,0x7e,0xf0,0x26,0x0d,0x66,0xcf,0xd3,0x42,0x16,0x98,0x1a,0x1b,0x49,0x39,0x1a,0xe5,0xcb,0x0e,0x41,0x43,0x6e,0x9f,},{0xf7,0xd4,0xdd,0x1e,0x05,0x9c,0x36,0xf6,0xd1,0x21,0xc0,0xaf,0xfe,0xb2,0x1f,0x0c,0x57,0x2b,0x45,0x99,0x2f,0x84,0x94,0x8b,0x09,0xaa,0xfb,0xcd,0x86,0xbb,0x53,0x5c,},{0xc9,0xc0,0x99,0xe2,0x1d,0x09,0x5a,0xfa,0xdd,0x4e,0x71,0xc9,0xab,0xf6,0xb7,0x08,0x33,0x24,0x77,0x62,0x25,0xb5,0x87,0xb6,0x0a,0x0e,0x60,0x92,0xec,0xb3,0xd3,0x3c,0xff,0x39,0xc6,0x7d,0x34,0x77,0x6a,0xe9,0x9d,0xda,0x75,0x4a,0x3c,0x2b,0x3f,0x78,0x11,0x35,0xa3,0x8c,0x78,0xed,0x64,0x55,0xaa,0xf0,0xae,0x0c,0x31,0x3b,0x62,0x05,},\"\\x68\\xab\\xca\\x7c\\x16\\x6a\\xfe\\x06\\x3e\\x47\\x7b\\x80\\xe3\\x7d\\xb2\\x24\\xe1\\xa2\\x35\\xde\\x8f\\xcd\\xeb\\x7f\\x42\\x7a\\xf6\\x7e\\x00\\x12\\x47\\xcc\\x5e\\x05\\x71\\x82\\xfd\\x9b\\x6d\\xb8\\xba\\xba\\xa6\\x58\\xcf\\x3b\\x3f\\xe4\\xb0\\x76\\x3b\\xf8\\x8d\\x67\\x31\\x1b\\x11\\x90\\xbe\\x83\\x40\\x18\\xcf\\x57\\xa3\\x32\\x92\\x24\\x13\\x76\\x46\\x20\\xac\\xe0\\x54\\x45\\xee\\x01\\x9a\\x06\\xdf\\xf9\\x8b\\x23\\x89\\x79\\xad\\x6d\\x30\\x90\\x1b\\xef\\xa3\\xc6\\x4f\\x6b\\xd8\\xc6\\xeb\\x09\\x2c\\x2e\\x62\\x84\\x13\\x88\\xfd\\x8c\\x4e\\x84\\x19\\xe2\\x77\\x89\\x84\\x89\\x67\\x37\\xed\\x90\\xa2\\xcd\\xb2\\x19\\x96\\xae\\xf7\\xc2\\x16\\x38\\xd6\\xcb\\xe6\\x80\\x32\\x2d\\x08\\x99\\x65\\x97\\xa9\\xe3\\x03\\xf6\\xf5\\xf4\\x79\\x40\\xf8\\xc5\\xba\\x5f\\x5f\\x76\\x38\\x3e\\x7e\\x18\\x06\\x4a\\x3d\\x2d\\xff\\x5f\\xdf\\x95\\xe9\\x0c\\x5e\\xb3\\x0f\\x4d\\x8d\\x45\\x9e\\xe1\\xd5\\x06\\xa8\\xcd\\x29\\xcd\\xc6\\x9b\\x67\\x54\\x96\\x3b\\x84\\xd6\\x74\\x94\\xb3\\x53\\x05\\xd1\\x0d\\x12\\xb9\\x48\\x74\\x17\\xb2\\xce\\x28\\xad\\xcb\\x10\\xb6\\x5c\\xc9\\x31\\xfb\\x33\\x81\\xae\\x02\\xe7\\xaf\\x79\\xa0\\x2b\\xf9\\x9e\\x25\\x8a\\x56\\x36\\x10\\x90\\xe0\\xb7\\x12\\x22\\xb3\\xac\\x60\\xbf\\x2f\\xb7\\xba\\x83\\x2d\\x03\\x4f\\x5b\\x6b\\xc6\\xfa\\x66\\x3a\\xe7\\x41\\xf7\\x6d\\x97\\xc1\\xac\\x32\\xbc\\xb7\\x41\\x15\\x07\\xd5\\x18\\xd2\\xf6\\x05\\x4b\\x57\\x83\\x28\\xc5\\xf6\\x7f\\x75\\x8a\\xc0\\x1b\\xfe\\x6f\\x4d\\x35\\x90\\x0f\\x50\\xa5\\xdc\\xd3\\x0d\\x2f\\x92\\x61\\xb6\\xbb\\xec\\x4c\\x1d\\x1f\\xc1\\x8d\\x2a\\x7e\\x70\\xc4\\xd3\\x6c\\x21\\xfa\\xf8\\xcf\\x94\\xa5\\x87\\xc3\\xa0\\xd1\\xa9\\xcd\\xe7\\x83\\x1a\\xe6\\x26\\x77\\x54\\x68\\xdd\\xcd\\x40\\xa8\\xba\\x18\\xf4\\x2b\\x34\\x18\\x8d\\xe5\\x74\\x1e\\x1b\\xe8\\x30\\x7b\\x10\\x84\\x58\\x65\\x15\\xec\\x01\\x5e\\x4e\\x37\\x1d\\x29\\x44\\x3a\\x40\\xb0\\xc0\\x69\\xc6\\x41\\xd8\\xce\\xe5\\xe4\\x61\\x18\\x62\\x98\\x7c\\x3e\\x35\\x6b\\x12\\x93\\xb0\\x51\\x8b\\x4a\\x4c\\x8e\\xa9\\x7f\\xc5\\xa4\\xdb\\x1f\\x01\\x29\\xab\\xee\\x72\\xfb\\x80\\x92\\xea\\x35\\xc2\\xda\\xb6\\x75\\x73\\x85\\x02\\x07\\xb8\\xe8\\x27\\x18\\x99\\x9a\\xd9\\x9c\\x4c\\x83\\x9e\\xac\\x14\\x63\\x6b\\xd5\\xe4\\xd8\\x43\\x6a\\x27\\x0d\\xd9\\x0b\\x8e\\x32\\x13\\x02\\xe5\\x2a\\x92\\xd8\\x91\\xff\\x18\\x91\\x54\\x2a\\xe2\\xca\\xa0\\xd6\\x6e\\x0f\\x66\\x1e\\xae\\x37\\xb2\\x5b\\x08\\xbb\\x2e\\x0e\\xee\\xc4\\x83\\x80\\x09\\x77\\x8c\\xd5\\x25\\x98\\x43\\x80\\x98\\x3b\\x2b\\xaa\\xdd\\x71\\x02\\xa1\\xe3\\x56\\x73\\x4e\\x41\\xd7\\x61\\x83\\x82\\x9e\\xa9\\xab\\x82\\x44\\xc3\\x36\\x59\\x7c\\xa2\\xd6\\x79\\x88\\xf2\\x81\\x43\\x84\\x67\\xe4\\x53\\xf5\\x62\\xc6\\x7b\\x22\\xd0\\xa4\\xdd\\x9f\\xcb\\x46\\xa5\\xf8\\x0d\\x29\\x9d\\xb5\\xf0\\x1f\\x59\\x16\\x0a\\x19\\xd7\\x4c\\x64\\x4f\\xa5\\xa9\\x40\\xe3\\x2c\\x9d\\x8d\\x98\\x3b\\xab\\x7e\\xfb\\x0d\\x7c\\x7d\\xa4\\xe3\\xfd\\xa1\\xcd\\x0d\\x18\\xa4\\x55\\x8e\\xb9\\xfe\\x46\\x40\\x8a\\xab\\x50\\x85\\x91\\x2b\\xf2\\xf4\\x6a\\xb6\\x3a\\x93\\x54\\xf9\\x02\\x7c\\x93\\x69\\x12\\x23\\xff\\xaa\\xb8\\x46\\x3b\\xac\\x4c\\x4b\\xc3\\xb1\\x1a\\xbc\\x46\\xba\\x68\\x71\\x7c\\x91\\x78\\x0d\\x3f\\x30\\x47\\x0d\\xbd\\xd8\\x8b\\x37\\x80\\xa1\\x94\\xc8\\xa4\\x0a\\x2c\\x0a\\x81\\xa4\\xd5\\x6d\\xec\\x2d\\x89\\x62\\xc3\\x4d\\x2a\\xb7\\x33\\x69\\x02\\x8e\\x1b\\xfe\\xaa\\x6b\\xb5\\x82\\x41\\xff\\x4f\\x89\\x8f\\x80\\xad\\x3b\\xb1\\xc6\\x91\\xb8\\x64\\x7f\\x2c\\x69\\x83\\x95\\x4c\\x1c\\x77\\x95\\x74\\x58\\xee\\xbf\\x1c\\x50\\x55\\xc3\\x16\\x93\\xab\\xce\\xd0\\x53\\x84\\x73\\x5a\\x4f\\x74\\x19\\x68\\xbd\\x6a\\xc3\\x15\\x65\\xcf\\xee\\x71\\xc8\\x84\\xc1\\xe2\\x9e\\x9e\\x7a\\xe0\\xf7\\xec\\xd0\\x4d\\x46\\x3b\\x1d\\xc3\\x89\\xc3\\x60\\x37\\xe8\\x14\\x58\\xdc\\xec\\x61\\xd0\\x76\\x40\\x32\\xdd\\x58\\x9b\\x92\\xaf\\xda\\x2f\\xc9\\x02\\x8f\\x41\\xab\\x53\\xcc\\xa2\\xd0\\x4e\\xc6\\xa9\\x56\\x59\\x55\\xcb\\xcf\\x1a\\x34\\x63\\x98\\x9c\\x71\\x39\\xbb\\x90\\x2a\\x59\\x21\\xe8\\xb2\\xc9\\x9c\\x48\\xe1\\x37\\x11\\xf0\\xbc\\xc3\\x99\\x25\\x95\\x16\\xc8\\x1a\\xe9\\x42\\xa6\\x79\\xd4\\xba\\x33\\x97\\x9e\\xb1\\x2f\\xcd\\x28\\x60\\x60\\x2e\\x47\\x24\\xb1\\x33\\x0f\\x1c\\xd2\\x57\\xb5\\xb2\\x89\\x1d\\xae\\xe8\\xef\\x4c\\x92\\xfc\\x3b\\xfd\\xb3\\x4e\\x53\\x2d\\x58\\x70\\xf3\\x80\\x59\\x86\\xac\\x97\\xb5\\x03\\xfd\\x85\\x87\\x35\\x48\\xe3\\x09\\x50\\x00\\x0f\\x8a\\x70\\xbe\\x51\\xfa\\x75\\x76\\x03\\x50\\x1f\\x2d\\x30\\xe8\\x52\\xef\\xea\\xc4\\x82\\x68\\x62\\xae\\xd7\\xf6\\xd2\\x0c\\x9a\\x8c\\x8d\\xbe\\x36\\x2d\\xfe\\xe4\\x18\\x93\\xf2\\x7e\\x6f\\xd5\\xe9\\x1d\\x0e\\x7e\\x3d\\x4f\\xd8\\x15\\x5f\\x44\\xfd\\x8e\\xf1\\x7a\\xf1\\x4a\\x84\\x8d\\x44\\xa8\\x76\\x31\\xae\\xee\\x75\\x14\\x62\\xb2\\xa5\\x40\\x87\\x06\\x8d\\xae\\xab\\x3e\\xa3\\x28\\x9e\\xce\\x62\\x12\\xb3\\xb5\\x2c\\xe7\\xa8\\x88\\x6d\\xf2\\xa7\\x27\\xb7\\x2a\\x57\\x0c\\x2f\\xb9\\xc5\\x03\\x41\"},\n{{0xdb,0x9a,0xae,0xe1,0x98,0xcd,0x26,0xa5,0x2b,0x11,0x81,0xfa,0x3f,0xd9,0x2a,0xbe,0x42,0x5e,0x66,0x6d,0x89,0x0b,0xf9,0x69,0x46,0x7d,0xd2,0xce,0x28,0x0e,0xd4,0xa7,},{0x3c,0x89,0x7c,0xaf,0xe2,0xb4,0x99,0xec,0xb2,0xe1,0xdd,0x01,0xea,0x55,0xf3,0xfc,0x88,0xf6,0x8c,0x25,0xb6,0x4a,0x63,0x6b,0x31,0xa1,0xfd,0x1c,0x78,0xf3,0x7f,0x3f,},{0xb2,0xe3,0xd9,0xc5,0xd0,0xff,0x32,0x99,0x96,0xbc,0x89,0xd2,0x6f,0xb3,0xac,0x12,0x6b,0xde,0xd3,0x13,0xcb,0xf8,0xdf,0x86,0x71,0x86,0x38,0xc1,0x99,0xe0,0x57,0x27,0x3d,0x09,0xeb,0x16,0x3c,0x6c,0x18,0x1f,0xd8,0xbc,0xe5,0x1f,0x72,0xd4,0xd9,0xd2,0xe8,0x4a,0xbb,0xe0,0x83,0x30,0x77,0x3b,0x9f,0xcc,0x21,0x66,0xf1,0x40,0xd6,0x0e,},\"\\x47\\xfb\\x62\\x15\\x61\\xf8\\xb7\\xee\\xce\\xc6\\x03\\x3f\\x2b\\xcb\\x6f\\x43\\xac\\x68\\xc9\\x58\\xdf\\xd2\\x65\\x6f\\x52\\xa0\\xc2\\x9b\\x4a\\xcd\\x44\\xf4\\x30\\x4c\\x6b\\xf7\\x7e\\xea\\xa0\\xc5\\xf6\\xd3\\xb2\\x2d\\xb1\\x96\\x99\\xc3\\xdc\\xde\\xde\\x69\\x8a\\xbd\\xe6\\x23\\xec\\x4b\\x2b\\x90\\x91\\x0c\\x80\\xac\\x3a\\xf3\\x9c\\x55\\x0b\\x6d\\xd4\\x09\\xe6\\x3d\\x77\\x70\\x66\\x55\\xa9\\x19\\x9c\\xb5\\xc0\\x25\\x8f\\x5b\\xa3\\x82\\x85\\xff\\xdc\\x64\\xb8\\xa8\\xf3\\x73\\xd1\\xfb\\x29\\xba\\x87\\xf8\\x4d\\xdf\\x5f\\x34\\xd8\\xf1\\x40\\xbb\\xc1\\x7b\\x39\\x61\\x68\\x2d\\xf5\\xd0\\xa8\\xf9\\x10\\x2e\\x37\\x9a\\x99\\x98\\x13\\x9d\\xfe\\x40\\xab\\x8c\\xe7\\x53\\xbf\\x56\\x26\\x10\\x82\\x37\\x77\\x1a\\x7d\\x8e\\x10\\x9e\\x9e\\x0a\\xfe\\x9b\\x66\\xd0\\x42\\x09\\x42\\xe1\\x63\\xa4\\xf3\\xc0\\x3f\\x71\\x81\\x3e\\xe0\\x78\\xbd\\x09\\x0a\\xc3\\xd0\\x77\\x2e\\x26\\x22\\xc2\\x59\\xe6\\x82\\x55\\x2c\\x75\\xb0\\x8d\\xd0\\x55\\xa4\\xa5\\xeb\\x5e\\x60\\x94\\x40\\xbc\\xd3\\xf3\\xa6\\xfe\\xb8\\x76\\xfd\\x16\\x92\\x15\\x20\\xc6\\xcb\\x68\\x84\\x71\\x0d\\x2e\\x15\\xcd\\xad\\x6d\\xaa\\xee\\xd9\\x59\\x62\\xdd\\xa2\\x1c\\x67\\x88\\xf7\\x84\\x91\\x79\\x17\\x98\\x2e\\x1c\\xcb\\xb5\\xfd\\xd9\\xbd\\xc1\\x76\\x9d\\xb6\\xb6\\xdb\\x57\\xca\\x35\\x4e\\x01\\xa1\\x33\\x9d\\x8e\\x77\\xe9\\xdb\\xbb\\x58\\x12\\xfb\\xab\\x6a\\x14\\xc5\\x40\\x85\\xc0\\x65\\x95\\x99\\xf1\\x50\\xe2\\x24\\x72\\x47\\x0f\\x1e\\x5e\\x67\\x2c\\x42\\x5f\\x37\\x5f\\x9e\\x0d\\x6e\\x8d\\x52\\xfa\\x17\\xb7\\xa8\\xd7\\xa4\\xd7\\xca\\x3e\\x12\\xf4\\xdb\\x53\\x83\\x6a\\xed\\x2b\\xeb\\xd7\\x45\\x89\\xba\\xca\\x8c\\xe9\\x10\\x02\\x91\\xbf\\xb7\\xe4\\x56\\xdb\\x7f\\x2f\\x0a\\x84\\xdc\\x0a\\x74\\x88\\x85\\x13\\x66\\xa9\\xa5\\xfe\\xa0\\xe3\\xef\\xc7\\x4b\\x9c\\xdd\\x4b\\xd9\\x7b\\x65\\xab\\xf3\\x61\\x39\\x3c\\xe1\\x70\\x3d\\x85\\x71\\x80\\x5e\\xe6\\x8a\\x13\\xd3\\x65\\x4f\\x03\\xdc\\xec\\xfb\\x77\\xa5\\x34\\x30\\xd0\\x94\\x96\\xad\\x73\\xec\\x01\\x75\\x99\\x57\\xe5\\x10\\x46\\xaa\\x73\\x96\\xf5\\x92\\x33\\x86\\x50\\x11\\x7a\\xc7\\xb4\\xdd\\x35\\x73\\xeb\\x53\\xd9\\xc9\\xf9\\xdf\\xa6\\x2e\\x23\\x69\\xc7\\x7a\\xf9\\xc0\\xd4\\x2f\\x61\\xba\\xe7\\x4b\\x28\\x7d\\xdf\\xa2\\x7b\\x7f\\x1c\\x1b\\xe9\\x88\\x3a\\x04\\x46\\x91\\xd5\\x6d\\xc1\\x37\\x34\\xad\\x4e\\xe3\\xa3\\x2a\\x9f\\x40\\xe3\\x28\\xc5\\x00\\xd0\\xfe\\xd8\\xea\\x05\\x10\\xe9\\x38\\xf2\\x75\\x80\\x04\\x02\\x2b\\xca\\xa6\\x90\\x2b\\xda\\x10\\x14\\xb8\\xae\\x33\\x65\\x27\\x28\\x29\\xed\\x94\\xfa\\xba\\x63\\xcb\\x14\\xa3\\x6c\\xf8\\x13\\x90\\xec\\xa8\\x3f\\xc1\\xc6\\x27\\x17\\x20\\x13\\x26\\x1b\\x39\\x93\\x77\\x9a\\xa0\\x76\\xa5\\xc5\\xd8\\x1d\\x90\\xd2\\x70\\x62\\xe1\\xa6\\xd9\\x0b\\x5c\\xf1\\x00\\x5c\\x70\\x19\\x17\\xb7\\xad\\xac\\x18\\x0c\\xb7\\x5b\\xbc\\xe0\\xf2\\x7f\\x2f\\x18\\x0e\\x2c\\xb9\\x01\\x40\\xc1\\x4c\\xc6\\x00\\x9d\\x2d\\x41\\xaa\\xb1\\xdb\\x94\\x18\\xf9\\x1d\\x4c\\xf3\\x94\\x00\\x2c\\xd7\\x0a\\xc9\\xdc\\x11\\xce\\x86\\x53\\x47\\xfa\\x3f\\x56\\xf8\\x7c\\x14\\x9e\\x2b\\x17\\xd2\\xc7\\x2b\\x66\\x3a\\x58\\xe3\\x18\\x7b\\xb1\\x9b\\x9b\\xac\\x2d\\x11\\x48\\x3b\\xa1\\x2f\\x77\\x0a\\xc0\\x4d\\xc4\\x6d\\x38\\x85\\x18\\xfa\\x54\\xdc\\x15\\x2e\\x9a\\x9d\\xfb\\xff\\x14\\xf1\\x4c\\x61\\xcb\\x37\\x58\\x97\\xe3\\x0c\\x53\\xe6\\xde\\x42\\xd5\\xe1\\x40\\x1d\\xae\\x1b\\x22\\xba\\xaa\\x0e\\x8a\\x41\\xc6\\xaf\\x9d\\x0e\\x0b\\x13\\xa9\\x1a\\x23\\xd9\\xb7\\xd5\\x55\\x20\\x47\\x02\\x9a\\x35\\x21\\x94\\x6c\\x71\\x20\\xd3\\xd2\\x58\\xb3\\xae\\xfc\\xf7\\x54\\xd1\\x95\\x94\\x87\\xa1\\xfe\\x77\\x43\\xac\\x7e\\x1c\\xc8\\x9e\\x36\\x8b\\x19\\x78\\x09\\xc3\\xa2\\x73\\x17\\xe0\\xec\\x48\\xd5\\x46\\xdb\\x1e\\x21\\xeb\\x62\\x9a\\x29\\xbc\\x62\\x47\\xcd\\xd4\\xa1\\x37\\x14\\x37\\x56\\x3e\\xdd\\x12\\xfa\\xea\\x2c\\x5c\\xb7\\x7e\\xed\\xed\\xbf\\xc5\\x80\\x08\\xfa\\xd1\\xf6\\x5a\\xf3\\x58\\x43\\xfa\\x27\\x4c\\x73\\x4e\\x3f\\xbb\\xaa\\x9c\\xc5\\x0d\\x68\\x37\\x48\\xb7\\x5a\\x48\\x5f\\x94\\xd6\\x30\\xb0\\x32\\xa5\\xf1\\x06\\x7d\\x1d\\xeb\\x30\\xe9\\xd2\\x21\\x8c\\x93\\x5c\\x98\\x1d\\x01\\xc0\\xc5\\x47\\xfd\\x68\\x41\\x31\\x36\\xed\\xf4\\xc0\\xc7\\x70\\x28\\x6e\\x82\\x34\\x42\\xe1\\xc5\\x13\\x65\\x19\\x29\\x21\\x3c\\x12\\x1c\\x1d\\xe7\\x00\\x98\\x91\\x41\\xab\\x4a\\xf3\\xb3\\xfe\\x74\\x04\\xb4\\xd2\\xa3\\x8c\\x53\\x0b\\xaf\\xb4\\x98\\xe6\\x49\\x53\\xce\\x1c\\x0f\\xb7\\xd3\\x40\\xe2\\x11\\x35\\xbf\\x8a\\xfd\\xd8\\xdd\\x65\\xb1\\xb1\\x8c\\xf1\\xc8\\xfb\\x9f\\x40\\x2b\\x26\\x70\\x40\\x0b\\x86\\xdd\\xaf\\xb1\\x84\\xcc\\x51\\xd5\\xfd\\xa2\\x73\\xb8\\x0c\\x26\\x52\\x1f\\x91\\x2f\\x35\\x83\\xb4\\xae\\x30\\x1d\\xae\\x15\\x1c\\xb5\\x5c\\x75\\x70\\x3a\\xad\\xef\\x03\\x24\\x15\\x22\\x7d\\x53\\xe3\\x95\\xdb\\x6c\\x15\\x0a\\x1e\\xe8\\x39\\xad\\x26\\xba\\xe5\\x52\\xe1\\xab\\x73\\x62\\x14\\xdc\\x04\\xb0\\xf3\\xc4\\x1b\\x7c\\xfb\\xd0\\x49\\x68\\x1b\\xc8\\x4c\\x3d\\x16\\x53\\x07\\x68\"},\n{{0xa8,0x04,0xc3,0x3b,0x4d,0x38,0xcb,0x3c,0xe3,0x1c,0xf3,0xba,0xc1,0x04,0x9e,0x0d,0x4e,0xc6,0x3a,0x1a,0x0b,0x7b,0x59,0xfd,0x8a,0x36,0xee,0x37,0x54,0x16,0x56,0xaa,},{0x60,0x72,0x25,0x6d,0x65,0x74,0xa2,0x93,0xbd,0x7c,0x22,0x1c,0x55,0x1c,0x32,0xcf,0x2f,0x77,0x15,0xe1,0x9e,0x43,0x3a,0x49,0xd9,0xb8,0xb0,0x49,0x0e,0x56,0xef,0x62,},{0xb1,0xb4,0x4a,0x14,0x2a,0x7c,0x4c,0x3d,0x0b,0xf4,0x66,0x1e,0xda,0xc5,0xb7,0x67,0x00,0x57,0x26,0xc1,0x4a,0x27,0x69,0xb7,0xc2,0x14,0xfb,0x58,0x73,0x7e,0xc2,0xe4,0xbc,0x51,0xc3,0xa1,0x95,0xd2,0xba,0x1b,0x74,0xa5,0x4e,0xff,0x4c,0x33,0xa9,0x0f,0x41,0xcc,0xde,0xfa,0x9e,0x93,0x65,0xfd,0xe8,0xdd,0x85,0x9f,0xd3,0x97,0x8c,0x0a,},\"\\xdb\\xfe\\x30\\x7f\\x2a\\xae\\x9e\\x07\\xec\\x7c\\x4b\\x68\\x21\\x06\\xd2\\xc9\\x36\\x7b\\x0c\\x4a\\xaa\\x58\\xae\\x80\\x4e\\x0a\\x39\\x04\\x75\\x4e\\x6c\\xf8\\xfe\\xe7\\x3c\\xf9\\xe2\\xd4\\x5d\\x02\\x89\\xe5\\x07\\x82\\x93\\xdf\\xc4\\x69\\xd4\\x6e\\xa6\\x70\\x26\\xc5\\xaa\\x69\\x2d\\x2f\\x2c\\x9f\\xb4\\xec\\x57\\xcd\\xab\\x4c\\x04\\x3f\\xf9\\xae\\x61\\x85\\xf2\\x7a\\x70\\x44\\x54\\xe5\\xf5\\x39\\x50\\xaa\\xbd\\x25\\xc9\\x91\\x04\\x74\\xd4\\x5a\\xf8\\x83\\x68\\x62\\x72\\x3e\\x0e\\x6a\\x27\\x82\\x3d\\x82\\xbc\\xbb\\x68\\xa9\\x60\\x52\\x42\\x2a\\x18\\x19\\x51\\x2e\\x3b\\x43\\x40\\x8c\\xf4\\x89\\x57\\xad\\x6a\\xe2\\x35\\xb7\\x23\\x3d\\xf1\\x82\\x84\\x74\\x91\\x53\\xdf\\xa5\\x7d\\xe3\\x50\\x74\\xa3\\x0e\\xdf\\xab\\x8a\\x56\\xdf\\x28\\xab\\x2e\\x29\\x40\\x30\\x6c\\x22\\x1a\\xa5\\x54\\x90\\xcc\\x66\\x4e\\x14\\x68\\x3f\\x30\\xee\\x61\\x5e\\x2d\\x93\\xfd\\xf9\\x71\\xf5\\x96\\x66\\x34\\x65\\x84\\x3b\\x3a\\xdd\\x63\\x92\\xba\\x33\\x90\\x31\\x1e\\xf8\\xdc\\x59\\xf2\\x51\\x44\\x5d\\x66\\x9e\\x10\\xa0\\x06\\x19\\x91\\xe1\\x13\\x56\\x19\\x23\\xaa\\x21\\x52\\x44\\x46\\x3d\\x82\\x64\\x19\\x9a\\xc5\\x88\\x92\\x4e\\x23\\x1e\\x84\\x19\\xd8\\x68\\x5f\\x33\\x8e\\x59\\x9b\\x5f\\x40\\xbf\\x9b\\xd1\\xae\\xce\\x77\\x25\\x35\\xbb\\xbc\\xb8\\xf6\\x88\\x1c\\x2e\\x80\\x04\\x91\\xab\\x3b\\x57\\xb4\\x4b\\x8a\\xe4\\x3a\\xeb\\x5c\\x4a\\xe5\\xe7\\xed\\xeb\\x22\\x8f\\xed\\xc9\\xf6\\xb9\\xca\\xde\\xa1\\x76\\xe1\\x34\\x93\\x6d\\xed\\x60\\xaf\\x1c\\x22\\x87\\x34\\xfb\\x00\\x57\\x0f\\x23\\x74\\xbb\\xbf\\xa1\\xbb\\x17\\x07\\x85\\x80\\x5d\\x6b\\x6c\\x70\\x1e\\x82\\x09\\x52\\xea\\xe4\\x5b\\x8c\\x23\\x66\\x11\\x3a\\x1d\\xfb\\x2e\\x35\\x85\\x2a\\xf4\\x19\\xb7\\x54\\xf9\\xcf\\x7a\\x08\\x1c\\x3d\\xde\\x6c\\x80\\x53\\xbf\\x1c\\xe0\\xc8\\x53\\x39\\xd5\\x69\\x9c\\x42\\x24\\x76\\xfc\\x21\\xf2\\x6c\\xe7\\x5d\\x2a\\x7f\\xed\\x09\\xfc\\x0f\\x41\\x75\\x78\\x98\\x47\\xd8\\x76\\xc5\\x1a\\xa4\\xe0\\xbf\\x7c\\xe8\\x42\\xb8\\x30\\x8d\\xc7\\xa2\\x8c\\x82\\x39\\x52\\x07\\x14\\xdc\\x23\\x31\\x36\\xe0\\x9f\\x55\\x7c\\x7e\\xf3\\xe0\\xf8\\x3b\\xad\\x63\\xcb\\x28\\xac\\x61\\x6d\\x39\\x28\\xf3\\x83\\x7d\\xce\\x1d\\xd5\\x8a\\xcb\\x8d\\xdb\\xc7\\x2e\\x82\\x2d\\xee\\xe4\\x5f\\x00\\x77\\x6a\\xcc\\x88\\xe0\\x0c\\xd3\\xa9\\xdb\\x48\\x6d\\x92\\xd5\\x35\\xa5\\x7a\\x0f\\xdc\\x4f\\x90\\x3b\\x62\\xe5\\x17\\x22\\x1c\\x30\\x8c\\xba\\x2e\\x30\\xff\\xe7\\xb9\\x19\\x37\\xa9\\x94\\x17\\x72\\x1f\\x56\\xfe\\x6d\\xf4\\x48\\x40\\xe9\\xe4\\x11\\x36\\x92\\x9c\\x0c\\xa3\\xdc\\x28\\xdd\\xf2\\x37\\x9e\\x4d\\xcf\\xde\\x83\\x72\\x3e\\x2d\\x4c\\x9e\\x23\\x29\\x9c\\x05\\x6a\\xfb\\x31\\xd3\\xe7\\x0d\\x08\\x5d\\x0a\\x31\\x2c\\x5c\\xd5\\x70\\xb6\\x99\\xde\\xa8\\x71\\x74\\x58\\x53\\x13\\x48\\xc9\\x6f\\x6e\\xb5\\x2d\\x7e\\xe6\\x1d\\x56\\x60\\xf6\\x5e\\x90\\x9a\\x14\\xce\\x10\\x33\\xdc\\x85\\x3f\\x2f\\x25\\xd0\\x9c\\xf4\\xe4\\x0d\\x07\\xef\\xf7\\x2e\\x15\\xa3\\x90\\x56\\x4a\\x2b\\xe3\\xc0\\x42\\xd8\\x9a\\x68\\x66\\x0a\\x97\\xff\\xac\\xec\\x49\\x67\\xa4\\xb6\\x18\\x71\\x2d\\x70\\x60\\x75\\x65\\x20\\xc2\\x9e\\xe8\\xd9\\x22\\x0a\\xd8\\x61\\x5c\\x4f\\xcf\\x39\\x69\\xbd\\x3b\\x2e\\x09\\x47\\xe1\\xf0\\xbe\\x7e\\x2d\\x80\\xe0\\xa6\\x14\\x80\\xc3\\x16\\x6d\\xb5\\x58\\x22\\x18\\xbb\\x0a\\x8b\\xe9\\x84\\x8e\\xfd\\x41\\xb6\\xce\\x0c\\xd7\\x95\\xc4\\x86\\xab\\xb6\\x72\\x10\\xbe\\xb6\\x0c\\xd0\\x78\\xb4\\x6a\\xeb\\x7f\\x4f\\x48\\x50\\x31\\x90\\x2b\\xcd\\x71\\x31\\xe0\\x0b\\x70\\x35\\xaa\\x2d\\x43\\xfe\\xe0\\x63\\xf7\\xf3\\x0b\\xd5\\x70\\xda\\x1d\\xbb\\x65\\xc0\\xca\\x92\\xa4\\x81\\x26\\x32\\xe4\\x32\\x77\\x85\\x53\\xe3\\x5e\\x85\\x6c\\xaa\\x82\\x18\\x22\\x1f\\xd6\\x31\\x6a\\xb0\\x86\\x91\\x73\\xb3\\x84\\x09\\xbc\\xef\\xe6\\xd2\\xdb\\x92\\x10\\xf9\\x02\\x41\\x73\\xb6\\x6d\\xbb\\x92\\x67\\x7c\\xbc\\x71\\xc8\\xa1\\xcd\\x58\\x3f\\xa6\\xf3\\x54\\xd3\\xc9\\x3f\\xa8\\xb1\\x6c\\x71\\x37\\x4f\\x25\\xa0\\x0c\\x33\\x2f\\x85\\xa8\\xbe\\xfd\\x54\\x03\\x88\\xfb\\x50\\xdb\\x9f\\x5d\\x96\\xe4\\xe4\\xe6\\x98\\x83\\x3c\\xe3\\xd6\\x3c\\x10\\xb8\\xee\\xc7\\x0a\\x24\\x3b\\x90\\x15\\xdb\\x45\\x94\\x31\\xb6\\x2f\\x56\\x68\\xbb\\xa6\\x0f\\x07\\x04\\xf6\\xbd\\xfe\\x95\\x46\\xea\\x47\\x5c\\xef\\x2e\\xbc\\xcb\\xa4\\xb7\\x68\\x08\\x48\\xe8\\x2b\\xef\\xf5\\x85\\x4e\\x49\\xf6\\x5b\\xb7\\x73\\xa4\\x92\\x2e\\x90\\xf9\\xb8\\xaf\\xc7\\xcf\\x81\\x87\\x30\\x58\\x8e\\xd5\\xaa\\x7b\\x39\\x98\\x26\\xaa\\xdd\\x54\\x37\\x2f\\xcb\\x76\\x14\\x58\\xb6\\x4d\\xe6\\x68\\x57\\xf4\\xad\\xac\\xd4\\xc3\\x29\\x00\\xcb\\x77\\x13\\x6a\\x53\\x5d\\x7b\\xbb\\xb5\\x54\\x59\\x7a\\xec\\xf3\\x9f\\xf6\\x98\\xb4\\x5e\\x6a\\x21\\x8d\\xf1\\xd2\\xab\\xe6\\x15\\xeb\\x8d\\x9e\\x18\\x24\\xc0\\xbe\\xcc\\xe9\\x07\\x67\\x89\\x9e\\xbf\\xd2\\xc7\\x30\\x14\\x4b\\x32\\xc7\\x46\\x04\\xc0\\xe5\\x3e\\x25\\x05\\xbb\\x15\\xd2\\x80\\x07\\xa8\\x7b\\x99\\x31\\xd6\\xee\\xc0\\xa6\\xcb\\x5b\\x0f\\x96\\xd3\\x19\\x4b\\x24\\x23\"},\n{{0xf8,0x20,0xe6,0xf2,0x4a,0x84,0x18,0xb6,0xac,0xda,0x16,0x5f,0x29,0xa3,0x60,0xf7,0x67,0xcd,0xed,0xde,0x8f,0x64,0xd7,0x68,0xb9,0x5f,0xc2,0xa5,0xf3,0xf4,0x04,0xe7,},{0x79,0xc4,0xb2,0x63,0xb2,0xe5,0x8f,0x67,0x86,0x28,0xd4,0xea,0x82,0xb1,0x75,0xac,0xa2,0x30,0xb9,0xa2,0x02,0x85,0xc8,0x28,0xf9,0x4e,0x1f,0xfd,0x63,0xd7,0x5b,0x23,},{0xf9,0xfd,0x72,0xf3,0x21,0xca,0x21,0x33,0xbf,0x85,0x85,0x90,0x8d,0x9c,0xa7,0xb8,0xe3,0x36,0x22,0x7e,0x3f,0xfb,0x37,0x49,0xa1,0xfb,0xe8,0xc9,0xb1,0xe5,0xd5,0x0e,0xf0,0x1f,0x9d,0xb5,0xf0,0xd2,0xa7,0xc7,0xc1,0x39,0x9b,0x97,0xc9,0x04,0x4e,0x1b,0xc1,0xad,0xc3,0x2b,0x8b,0xea,0x46,0xda,0xd7,0xb8,0x10,0x26,0x46,0x96,0x03,0x03,},\"\\xab\\x6b\\xd4\\x5b\\xb0\\x6d\\xfb\\x90\\x69\\x11\\x8f\\xf9\\x98\\xf3\\xbd\\x39\\x3e\\xa8\\xe9\\x44\\x97\\x9e\\x89\\xe0\\x49\\xf2\\x50\\x5c\\xd8\\x93\\x1b\\x93\\x08\\x6b\\x7e\\x9d\\x8e\\xe7\\x64\\xe9\\xb4\\x47\\xea\\x4e\\xa1\\x21\\x38\\xbb\\x45\\x27\\x5a\\x21\\xa1\\x98\\x43\\xf7\\x5d\\xc5\\x42\\x1d\\x61\\xff\\xd8\\x61\\x83\\x8e\\x58\\x33\\x82\\x5d\\x67\\x16\\x2f\\x32\\x59\\xc2\\x64\\x47\\xbe\\x51\\xdc\\x18\\x02\\xef\\x5a\\x04\\xba\\x73\\xb7\\x83\\x93\\x57\\x06\\xab\\xb4\\x2c\\x51\\x3b\\x65\\xf2\\xbb\\xc4\\x4f\\x83\\xda\\x10\\x61\\x24\\x2f\\x2d\\x5e\\x51\\x98\\xf3\\x8c\\x10\\x71\\x7a\\x86\\xa3\\xa1\\x97\\xe7\\xcd\\x90\\x34\\xf6\\x36\\x11\\x44\\x99\\x03\\x72\\x77\\xac\\xb4\\x72\\x2c\\x06\\xa9\\x1c\\xb2\\xf6\\x5e\\x21\\xeb\\x8d\\x22\\xd3\\x6a\\xd7\\x3b\\x42\\x65\\xf7\\xa7\\x94\\x7e\\x00\\xe7\\x22\\xbd\\xa6\\x70\\x43\\xcd\\x12\\x81\\xbc\\xd8\\x7e\\x76\\x3f\\xc9\\x7b\\x54\\xc8\\xf8\\x68\\x36\\xcd\\xbf\\x08\\xc9\\xa1\\xf7\\x00\\xf4\\xea\\xed\\x9e\\xa5\\x9a\\x6f\\xc1\\xbc\\x0d\\xf8\\xc9\\xec\\x1f\\xc2\\x97\\x7c\\xad\\x60\\xf9\\x78\\xab\\xc0\\xc8\\x38\\x1a\\xa9\\xfb\\x06\\x0e\\x3f\\x99\\x37\\x8a\\x51\\xb2\\xd9\\xaf\\xbe\\xf3\\x58\\xd5\\x51\\x62\\xa3\\x89\\x22\\xeb\\xb8\\x7d\\x2a\\x3e\\x0f\\x0f\\x40\\x00\\xb1\\xc3\\x9b\\x15\\x02\\xe9\\x59\\x45\\xe8\\xac\\x9f\\x4a\\x3e\\xa7\\xc9\\xdd\\xb5\\x81\\xa5\\xec\\x06\\xc0\\x0b\\xa8\\x7a\\x73\\x70\\x84\\xb3\\x84\\xfa\\xba\\x09\\xc8\\x48\\x71\\xdd\\xd6\\x7d\\xc1\\xbe\\xbb\\x2f\\x7f\\xbd\\x94\\xa5\\x59\\x7d\\x01\\x9f\\xe6\\x29\\xe5\\xbf\\x12\\xbe\\xa2\\xe3\\x3c\\xa8\\x4c\\x68\\x0d\\xc5\\xa3\\x98\\x9b\\xbf\\x3a\\xf9\\xee\\xec\\xe8\\xab\\x8f\\xc8\\x61\\xe3\\xb8\\xbf\\xc1\\xe6\\x7e\\x2a\\xee\\x32\\x6b\\x37\\xfb\\x9b\\x51\\xcf\\xa0\\xb5\\xf5\\xfc\\x16\\x00\\x69\\xb4\\x50\\xb7\\x04\\xe0\\xfa\\xb7\\xfb\\x6c\\x5a\\xb3\\xc4\\x0b\\x8f\\x0b\\x3d\\x09\\x30\\xb9\\x11\\x2d\\x64\\xb9\\xda\\xca\\xb4\\xdd\\x87\\x5f\\x29\\xd8\\xc5\\x8c\\x5d\\x20\\x53\\xad\\x91\\x48\\xff\\xde\\x22\\xd9\\x0b\\xc0\\xd5\\x0f\\x5d\\xec\\xa6\\x8d\\x3e\\xa2\\x5c\\x5b\\x4c\\x76\\x88\\x87\\x1c\\x0c\\x77\\xdb\\xce\\xea\\xcb\\xd0\\xa4\\x22\\x9f\\x49\\x70\\xec\\x87\\xb3\\x44\\x99\\xe2\\x78\\x30\\x3c\\x06\\x69\\x4c\\x30\\xac\\x68\\x52\\x4d\\x11\\xb1\\x72\\x79\\x4b\\x48\\x12\\x73\\xa5\\xda\\xc4\\x61\\x22\\xd2\\x47\\x20\\x95\\xa5\\x63\\xa4\\x35\\xd1\\x85\\xd5\\xe9\\x1d\\xa7\\x26\\xe7\\x45\\x92\\x99\\x9c\\xda\\xc6\\x88\\xa3\\x3f\\x38\\xf7\\xc0\\x35\\x58\\x8f\\x62\\x5d\\xc6\\xac\\x73\\xd0\\x04\\x7a\\xb3\\xd6\\xd1\\x2f\\x1a\\xe3\\x3d\\x8b\\x62\\xd6\\xd6\\xc6\\xca\\xcf\\xf0\\xbd\\xd8\\x94\\xb5\\x7e\\x31\\x89\\x12\\xac\\x0c\\xf4\\xa5\\x34\\x76\\x2b\\x2f\\x6d\\x26\\x3c\\x93\\x58\\x04\\x42\\x3e\\xd8\\x68\\xcf\\x8c\\xfb\\xb8\\xbe\\x8f\\x6d\\x8a\\x71\\x4a\\x26\\x8a\\x39\\x0e\\xdc\\x2d\\xd5\\x09\\xd2\\xdc\\x96\\x85\\x1d\\x1b\\xd4\\x32\\x49\\xbd\\x0f\\x69\\xb0\\xc4\\xcb\\x2f\\xf4\\x08\\x0d\\x1f\\xd5\\x62\\x2b\\xc2\\x38\\xdd\\xa6\\xe9\\x30\\x02\\x5d\\x8a\\x2b\\x12\\xb9\\x72\\xf9\\xeb\\xa1\\x74\\x21\\xd4\\xce\\xa6\\x42\\xf4\\x0a\\xd9\\xea\\x85\\x47\\xae\\x59\\x49\\x8c\\x3a\\xd1\\xb9\\xa0\\xc3\\x4e\\xd8\\xc0\\x1a\\xae\\x3b\\xd2\\x1a\\xc1\\x77\\x43\\xb5\\x77\\xf9\\x51\\x5c\\xfb\\xdd\\xe2\\x70\\x4d\\xc5\\x7e\\x80\\xf1\\x25\\x32\\x3d\\x55\\x10\\x0b\\x9f\\x69\\x79\\x27\\xd4\\x31\\xdf\\xe7\\x36\\x31\\xb5\\x8e\\x52\\xaa\\x6a\\xeb\\x04\\x78\\xbf\\x45\\x95\\x52\\x43\\x86\\x89\\xfb\\xeb\\x9c\\x60\\xd8\\x7a\\xae\\x09\\x95\\x43\\x62\\xcd\\x02\\xa2\\xb0\\xb4\\x79\\xef\\xd3\\x8f\\x17\\x82\\x1a\\xf3\\x9b\\x21\\x92\\x6e\\xe0\\x2f\\x7d\\x97\\x2a\\xd0\\xf5\\x4e\\xa6\\x57\\x2c\\xc3\\xeb\\xd0\\x20\\xb1\\xee\\x26\\x88\\x25\\x33\\xbd\\x19\\x11\\x43\\x23\\x81\\x5f\\x67\\x2e\\xc8\\xc9\\x05\\x68\\x73\\x0a\\x58\\xe4\\xe1\\xe3\\x5f\\x68\\x21\\x21\\x9a\\x32\\xb8\\xa6\\xc5\\x2c\\xed\\x6f\\x95\\x73\\xd9\\xf3\\xbe\\xb2\\x85\\x13\\xba\\x62\\xfb\\x20\\x1f\\x7f\\xd4\\x1b\\xb1\\x0c\\xa3\\x4b\\xb1\\xc7\\x0f\\x2f\\xd7\\xbb\\x92\\x99\\xa7\\xc5\\xf7\\xf2\\xe0\\xfa\\x1d\\x1a\\xf0\\xe9\\xae\\xf5\\xed\\xe7\\xc1\\x69\\x50\\xe8\\x60\\xec\\xd6\\x1f\\x18\\x42\\xa1\\xa2\\x2c\\x98\\x31\\xc0\\xc0\\xd4\\xed\\xa8\\x40\\xb0\\x88\\xa5\\x45\\x20\\xc9\\xb1\\x8c\\x76\\xeb\\xa9\\xbe\\xbc\\xd5\\x91\\x38\\x1c\\x18\\x0d\\x7f\\x86\\xa0\\xe5\\x8a\\xdd\\x92\\xb9\\xb0\\xc8\\x07\\x6a\\x7c\\xdc\\xab\\x60\\xde\\xa4\\xc1\\xaf\\xb1\\x8c\\x8b\\x94\\xb1\\xb3\\x92\\xcc\\xfb\\x4d\\xae\\x27\\x11\\xe7\\xd1\\x2d\\x2b\\xc7\\xc7\\x82\\x5f\\x63\\x99\\x2e\\xc3\\x24\\x71\\x63\\xc2\\x83\\xb1\\x07\\x5e\\x32\\x24\\x5f\\x69\\xcf\\x47\\x24\\x0a\\xef\\x0d\\xb4\\x3e\\xfa\\xe8\\x6f\\xc1\\xfd\\x3b\\xb9\\x9c\\xf5\\xb7\\x89\\xf5\\xbc\\xba\\x95\\x04\\x65\\x7d\\x9e\\x62\\x2a\\x4a\\xa1\\x6f\\x01\\xd4\\xd8\\x44\\x41\\x31\\x24\\x44\\x7d\\x6d\\x1a\\x44\\x23\\xe7\\xb5\\x5d\\xb7\\xe6\\xa3\\x1a\\x31\\x9f\\x4b\\xac\\xae\\x43\\x0a\\x33\\xa9\\xbd\\xd4\\xef\\x36\\x80\"},\n{{0x0a,0x05,0x6b,0xe0,0x39,0xfd,0x55,0xda,0xda,0x44,0x1d,0x03,0x73,0x61,0x27,0x3f,0x20,0x6e,0x00,0x0a,0x74,0xa0,0x5c,0x51,0xc0,0xcb,0xb6,0x27,0x43,0xf1,0xf3,0x40,},{0x73,0x14,0x02,0x17,0xa4,0x93,0xa1,0x78,0x66,0xff,0xf5,0x15,0x48,0x32,0x27,0x3d,0xf7,0x9d,0x58,0x11,0x54,0x3c,0x22,0x2a,0x39,0xd0,0x56,0xb8,0xc9,0x70,0xdb,0xfa,},{0xfa,0xb8,0xe5,0xd9,0x3d,0x7d,0x46,0xc6,0x5e,0xe1,0x17,0xc5,0x37,0x5e,0x73,0xc9,0x70,0x5f,0x87,0x54,0x17,0x7f,0xdd,0x46,0xef,0xed,0x47,0x37,0xc2,0x87,0x68,0xcc,0x4b,0x95,0xa9,0xc8,0x4c,0x52,0x9b,0x4b,0x91,0x6b,0x28,0xda,0xbd,0x87,0x41,0x18,0x31,0x44,0xbc,0xdb,0x48,0x3d,0xf9,0x8a,0xf8,0x9d,0x82,0x40,0xcf,0x09,0x46,0x04,},\"\\xa5\\xab\\x14\\x76\\x84\\xe4\\xd4\\xa7\\xbc\\xb5\\xa9\\x6f\\xb3\\x98\\x18\\xe2\\x3f\\x56\\xc2\\xd8\\xa7\\x44\\xe9\\x12\\x3d\\x62\\x08\\x39\\x30\\xab\\x1d\\x0b\\xb5\\x32\\xe6\\x87\\x14\\xfc\\xec\\x7e\\x6c\\x41\\x13\\x4b\\x6b\\x19\\xdd\\xd8\\x67\\xfe\\x63\\x5c\\x9e\\xd6\\x53\\x93\\xee\\x39\\xc5\\xe8\\xfa\\xb4\\x56\\xcb\\x5b\\x32\\x79\\x78\\x83\\xf3\\xcd\\x9a\\x09\\x02\\xb9\\x79\\x63\\x48\\xee\\x66\\xc6\\x91\\xfb\\x4f\\x2b\\xb1\\x47\\x64\\x41\\x06\\x57\\xc7\\x4a\\xb3\\x64\\x56\\x78\\x79\\xb6\\xfa\\x0a\\x6f\\x4d\\xaf\\xd9\\x30\\xd9\\x23\\x4c\\xd7\\x83\\x4f\\xb9\\xd0\\xee\\xdf\\xbb\\x5a\\x39\\x4b\\xf0\\x84\\x6e\\xc6\\x96\\x9c\\x2e\\xf7\\xce\\x39\\xe3\\x85\\x38\\x95\\xff\\x5b\\x4d\\xa3\\x1e\\x54\\x34\\x1b\\x42\\x72\\xe4\\xa2\\x60\\x49\\x18\\x9f\\xf2\\x82\\x41\\xce\\xef\\xfb\\x7d\\x2e\\x1f\\xaf\\x4f\\x77\\x9f\\xa6\\x5c\\xac\\x0f\\x57\\x83\\xc6\\x0a\\xe7\\x7d\\xe3\\x0a\\xd4\\x46\\x5f\\xdb\\x39\\x0d\\x42\\x57\\x1e\\xff\\x4a\\x63\\x13\\x63\\x49\\x93\\x7d\\x6c\\xae\\xef\\xcd\\xae\\x22\\x9e\\x2f\\x28\\xce\\xa8\\xab\\xf3\\xff\\xae\\x3c\\x3e\\xcc\\xd9\\x06\\x70\\xa4\\x21\\x2a\\x2b\\xee\\x1c\\xa6\\xa5\\xb5\\x4f\\x09\\x4f\\xc3\\x23\\x10\\x58\\xf5\\xcb\\x9e\\xce\\xb9\\x99\\x3b\\xe4\\x70\\x27\\xd5\\x1c\\x18\\xde\\xca\\x41\\xcd\\xda\\xf4\\xe8\\xbc\\x56\\xa9\\x9f\\xd2\\x70\\x35\\x5f\\xf4\\x59\\x71\\x95\\x0e\\x34\\x37\\xa1\\x98\\xcc\\xc3\\x25\\x41\\x68\\xdf\\xc1\\x57\\x40\\x80\\x80\\x2e\\xe1\\x01\\xa6\\x17\\xfb\\x60\\x4e\\x86\\x8f\\x8f\\xa8\\xfb\\x30\\xda\\xeb\\x43\\x07\\x4d\\xe1\\x1f\\x24\\x83\\xd9\\x16\\xde\\x56\\x43\\xb7\\xca\\xc2\\x3d\\x93\\x40\\x50\\x8a\\x3f\\xd6\\x21\\xec\\xd2\\x50\\x04\\x35\\x6a\\x53\\x55\\x4a\\xd3\\xad\\x7d\\x5d\\x25\\x81\\x7a\\xd7\\xc9\\xa6\\x10\\x00\\x8c\\x67\\xac\\x16\\xba\\x42\\x11\\xc4\\x2f\\x5d\\xad\\xf8\\x6c\\x2c\\x3a\\xed\\x82\\x5c\\xf2\\xa9\\xb5\\x23\\xbf\\xc0\\x3d\\xd7\\xde\\x40\\x0c\\x67\\x80\\x7e\\x13\\x9e\\xa5\\xdb\\xce\\x4e\\xe1\\xf7\\xd3\\x18\\x88\\x9b\\x01\\xa9\\xf4\\x48\\x03\\xc3\\x22\\xac\\x3b\\x61\\xe2\\x0e\\x63\\x12\\xd0\\xa0\\x3b\\xf9\\x92\\x7f\\xa3\\x3f\\x04\\xed\\x7e\\x20\\x7b\\x16\\xf2\\x65\\x02\\xc2\\x98\\x3a\\x3a\\x96\\x1f\\x22\\x44\\x61\\xfe\\x9b\\x64\\x92\\x3b\\x1d\\x09\\x18\\x94\\x76\\xae\\x8d\\x00\\x1d\\x0e\\xca\\xae\\x4d\\xf6\\x0d\\xb3\\x5f\\x44\\x8b\\xb6\\x12\\xf9\\x65\\x5a\\x5f\\xb1\\x44\\xdf\\x11\\xd8\\x3a\\xa6\\x93\\x68\\x86\\xc3\\x04\\x94\\x9e\\x59\\xaa\\x46\\xdf\\x65\\xc2\\x2c\\xe7\\xbf\\x28\\x9b\\x3c\\x77\\xc2\\x5d\\x89\\x6b\\xe6\\xd5\\x1d\\xee\\x10\\x74\\x82\\x61\\x68\\x8c\\x8b\\x07\\x1c\\x85\\x6f\\x99\\x62\\xc6\\x67\\x75\\xdd\\xf1\\x60\\x83\\xda\\xe0\\x65\\x87\\xe3\\x2a\\x63\\x61\\x19\\x9d\\x72\\x09\\x7e\\x38\\x3a\\xd7\\x43\\x94\\x91\\xb5\\xa5\\x63\\xa3\\xe6\\xd5\\x8d\\xa3\\xd5\\xab\\xb1\\xde\\x84\\x89\\x0a\\x36\\xb4\\x21\\xce\\x03\\xd4\\x84\\xdf\\xd6\\x00\\x39\\x63\\x8d\\x46\\xed\\xfb\\x60\\x65\\x9e\\x3a\\x25\\xac\\x6e\\x9a\\x93\\x5a\\xd6\\xda\\xd5\\x0f\\x92\\x7b\\xcc\\x2f\\xf9\\x9f\\x99\\x24\\xa5\\xb7\\x99\\x5d\\xc2\\x3c\\x8f\\x30\\x1c\\xcc\\x77\\x69\\xf7\\x1c\\x18\\x26\\x09\\x04\\xa3\\xdc\\xfb\\x81\\x7d\\x2d\\x80\\x5c\\xb1\\xf1\\x96\\xbe\\x8b\\x6e\\xcf\\x35\\x2b\\xc2\\x96\\xbc\\x3f\\x76\\xea\\x91\\x35\\x3f\\x8c\\xf3\\x5b\\xcd\\x2b\\x57\\xeb\\x59\\x42\\x77\\x3d\\x68\\x34\\xac\\x50\\xee\\xad\\xc7\\xe6\\x64\\x61\\xd1\\xda\\x09\\x8c\\xce\\xc7\\x5f\\xf7\\x20\\x52\\x15\\xf5\\x24\\x59\\xd9\\x76\\x20\\xf9\\xf0\\x28\\x9e\\x93\\x91\\x1d\\xb3\\x9b\\x21\\xdf\\x81\\x8f\\xdf\\x0b\\xed\\x45\\x50\\x92\\x44\\x63\\x3d\\xf0\\x1c\\xdd\\xdb\\x4b\\x75\\x97\\x2f\\xa7\\xea\\x6f\\x73\\x28\\x1c\\xbd\\xbb\\xd1\\xbc\\xb0\\x0c\\x3b\\xc1\\xb1\\x72\\x8e\\xea\\xe0\\xbb\\xa1\\x72\\xb1\\x31\\xf5\\xd3\\x08\\x90\\xa3\\x41\\xe6\\xb7\\x2f\\x7e\\x89\\xdd\\x4b\\x6d\\xb3\\xe7\\x9b\\x69\\x27\\x58\\x6c\\xf2\\xc8\\xac\\x38\\xdd\\x14\\xf3\\x74\\xd7\\xf5\\xbb\\xa9\\xf4\\x35\\x3d\\xef\\x10\\xdd\\xc9\\x4d\\x3d\\x11\\x18\\xc5\\x69\\x9e\\x38\\xb6\\xb5\\x04\\x91\\x8e\\x58\\x9e\\xfe\\x3f\\x7e\\x97\\x3f\\xb4\\x0e\\x2e\\xbd\\x05\\x7d\\xe1\\x38\\x5e\\x39\\xd6\\x99\\xa8\\xf6\\x83\\xb9\\x62\\xfa\\xe4\\xf3\\x90\\x28\\x81\\xf1\\xaf\\xbe\\xd7\\xc7\\x83\\x82\\x35\\x58\\xc3\\x6d\\x68\\xc6\\x87\\x5d\\x16\\x6f\\xa2\\x43\\xeb\\x2a\\xe1\\x4f\\x7e\\x63\\x15\\xa6\\xd2\\xab\\x4e\\x79\\xea\\x8e\\x16\\xe6\\x9d\\x30\\xed\\xc7\\x08\\xf1\\xe7\\xaf\\x7a\\xda\\xfe\\xdc\\xd3\\x16\\x88\\x98\\xb3\\x31\\x87\\x81\\x78\\xc4\\xba\\x88\\x33\\xd2\\x0b\\x3c\\xac\\x9d\\x32\\xb8\\x88\\x8c\\xc6\\x78\\x32\\x06\\x39\\x74\\x70\\xa2\\xe7\\xcc\\x4c\\x98\\x09\\xff\\x79\\xce\\xac\\x9d\\xc2\\x4c\\xa1\\x43\\x8c\\x91\\x9c\\x8a\\x41\\x5e\\x82\\xf0\\x90\\x2b\\x4d\\x9c\\xf4\\xcc\\xd5\\x76\\x96\\x8d\\x5b\\xee\\x81\\xc5\\xf1\\x9c\\x7d\\x57\\xb9\\xba\\xda\\x8e\\xab\\x47\\x56\\xea\\x27\\x0d\\xd2\\x61\\x29\\xe6\\x12\\x2e\\xe2\\xd6\\x15\\x24\\x2b\\xc7\\xfa\\xbf\\xf4\\xf8\\x31\\x2e\\x68\\x6c\\x8f\"},\n{{0x22,0x05,0x24,0x86,0x0c,0xb8,0x9a,0xb2,0x95,0xbd,0x88,0x4f,0x98,0x8a,0x57,0x91,0x18,0x68,0x69,0x3d,0x6b,0x10,0x5a,0x80,0xb2,0x30,0xf2,0x1e,0x57,0x80,0x5a,0x7d,},{0x4a,0xb3,0x2b,0xc1,0x56,0x6a,0x76,0x77,0xe7,0x99,0x73,0x4d,0xc8,0x41,0x81,0xfb,0xb6,0x54,0xb8,0x13,0x37,0x91,0x80,0xf1,0xdd,0x35,0xae,0xf2,0xd3,0x24,0xc1,0x2c,},{0xdb,0x1c,0xc0,0xc5,0xdb,0x77,0x3e,0xc5,0x16,0x89,0xbe,0x28,0x84,0x2f,0xa6,0x79,0x1a,0x7d,0x75,0xe2,0x9c,0x22,0x8a,0xe9,0x59,0x3a,0x58,0x0e,0x08,0x75,0xb1,0x67,0x0f,0x09,0xb0,0x34,0x42,0x92,0x9a,0x18,0xf1,0xe9,0x41,0x4e,0xa3,0x43,0x15,0xff,0x09,0xd9,0x1d,0x92,0x2e,0xe4,0x7f,0x10,0xf7,0x1d,0xa4,0xab,0x13,0xb7,0xd9,0x01,},\"\\x02\\x4a\\x54\\xac\\x5e\\x01\\x63\\xb3\\xa4\\xfd\\xd0\\x2f\\x59\\x36\\x88\\x8a\\xe2\\xf9\\xb7\\x4a\\x64\\x14\\xb5\\x3c\\x63\\x81\\x17\\x3b\\x09\\x5a\\x4d\\xda\\xcf\\xc3\\xa6\\x9f\\x19\\x16\\x7d\\x0f\\x1a\\xe0\\xc1\\x20\\xbb\\xa7\\xe9\\xfc\\xb7\\xcc\\xfc\\x79\\x6d\\x89\\xea\\x46\\xef\\x80\\x58\\x86\\x6e\\xf6\\xda\\x7d\\x01\\xa6\\xa1\\x42\\xea\\x69\\xd7\\x20\\xc4\\xf8\\x05\\xac\\x54\\x05\\xa8\\x01\\x2c\\x3c\\x2a\\x82\\x63\\xb5\\x37\\x2d\\x59\\xbf\\x7f\\x40\\x99\\x29\\x90\\x13\\xd2\\x62\\x59\\xdf\\xd5\\x19\\x3e\\xce\\x56\\x17\\x97\\x77\\xbe\\x51\\xb8\\x6b\\xd1\\xce\\x5f\\x1f\\xc9\\x15\\x6f\\x2b\\x3a\\x32\\xc0\\x9d\\x86\\xbc\\x61\\x32\\xde\\x57\\x61\\x02\\xe2\\xf0\\x3c\\x71\\x6d\\xb5\\x36\\x6c\\xcb\\xe7\\x42\\xae\\xe3\\x55\\x2a\\xc3\\xb3\\x9d\\x0e\\xc7\\xd4\\xe4\\xe9\\x62\\x6b\\xf8\\xec\\xe0\\x31\\xd6\\x78\\xd3\\x48\\x09\\x05\\xc0\\xe3\\x38\\xfb\\x7c\\xc0\\x26\\xe3\\xe7\\x9c\\xf2\\xc2\\x78\\x1a\\xc2\\xa5\\xa4\\x0d\\xf4\\x28\\x4e\\x23\\x5a\\x03\\x89\\xe9\\x28\\xfc\\x63\\x55\\x7d\\xc6\\xf1\\x99\\xfc\\xec\\x5f\\x36\\x1e\\xa2\\x47\\x59\\xfa\\x7c\\x5f\\x71\\x97\\x8c\\x0b\\xa2\\x45\\xe4\\xb0\\x3a\\xe4\\x35\\x94\\x1c\\x86\\xc8\\x1a\\x51\\x43\\x0c\\x2d\\xc9\\x92\\x7e\\x3b\\x0f\\x4e\\xc4\\xeb\\xa7\\xc2\\x74\\x5b\\x49\\x39\\x87\\x15\\x4d\\x7d\\xa8\\x5b\\x67\\xde\\x21\\xc5\\x98\\x40\\x7f\\xb2\\xa7\\x60\\x80\\x4a\\xd0\\x5b\\xfd\\xfa\\x45\\xa6\\x13\\x22\\x4b\\x22\\xa0\\x85\\x88\\xcc\\xea\\x3c\\xbd\\xf4\\x7a\\x19\\x8b\\xeb\\xf8\\xcf\\xed\\x86\\x49\\xd6\\xd5\\xf3\\xfa\\x50\\x13\\x76\\xbd\\xfb\\xa4\\x00\\x3d\\xac\\x22\\x37\\xdc\\xac\\xe5\\x31\\x5b\\x7f\\xef\\xb8\\x79\\xa8\\x9a\\x85\\xbc\\xe6\\xda\\x52\\x6f\\xc3\\x60\\xcb\\xb4\\xfd\\x55\\x4e\\xf0\\x13\\xf3\\x3b\\x73\\x84\\xcd\\x2b\\x22\\xa8\\x85\\x77\\xf3\\xa2\\xd3\\x66\\x42\\x2a\\xae\\x46\\x41\\x7b\\xa9\\x16\\xe1\\x64\\x6e\\x24\\x40\\x4a\\x88\\xb5\\xd5\\x3f\\xf1\\xae\\xd2\\xa4\\x7b\\xaf\\x81\\xfc\\xb4\\x28\\x63\\x97\\x99\\x13\\x94\\xb2\\xec\\xc3\\x96\\x67\\xac\\x46\\xc2\\xbd\\xb6\\xd0\\x23\\xb3\\x3d\\xb0\\x13\\x45\\x7c\\x40\\x05\\xd8\\x39\\x01\\x5d\\x88\\x51\\xf0\\x28\\xac\\x33\\x4f\\xb2\\x4b\\xba\\xd2\\x90\\x2a\\x4d\\x63\\xae\\x68\\xe0\\xec\\xa7\\xea\\xea\\x1e\\x85\\x65\\x29\\x64\\x7b\\xaf\\x14\\x12\\x21\\x37\\x54\\xed\\x50\\xaf\\x3f\\x43\\x6e\\x9b\\xaf\\xc1\\x60\\x16\\x39\\xb3\\x9d\\x3e\\x52\\xa9\\x3a\\x89\\x8f\\xb6\\x01\\x9f\\xd5\\xed\\x6e\\x7d\\xfc\\x05\\x0e\\x7c\\xe5\\xf3\\xd3\\x5c\\xeb\\x50\\x67\\x02\\x1c\\x0f\\xbd\\xc7\\x08\\xd3\\xf2\\x6b\\xd6\\x05\\x68\\xd1\\xed\\x2b\\x61\\x2b\\x69\\x62\\x35\\xd5\\x33\\x33\\x18\\xf9\\xa6\\xc9\\x87\\x23\\x5a\\x7a\\x07\\xf8\\xc6\\xa9\\x35\\x4f\\xb8\\xe7\\x34\\x76\\x30\\x65\\xaf\\xcd\\x4d\\x93\\x77\\x64\\xa4\\xf0\\x37\\xcc\\x7e\\x7e\\x2b\\x93\\x21\\x7f\\x16\\x41\\x68\\x4f\\xa8\\x1b\\x7f\\xf7\\x98\\x6a\\x28\\xb3\\x8e\\x95\\xb3\\x32\\xe7\\x46\\x49\\xe8\\x3d\\x0d\\xed\\x79\\x5c\\x57\\xf2\\x4c\\xf2\\x76\\xe0\\x14\\x39\\x01\\xba\\xfe\\xf0\\xf1\\x69\\x3f\\xe7\\xcf\\x10\\x90\\x4f\\xb0\\xd8\\x80\\xd7\\x2e\\x44\\x71\\x6a\\x70\\x69\\xda\\xaa\\xe7\\x42\\xcf\\x0f\\xf3\\xed\\x92\\xf5\\xf7\\xd1\\xe1\\x0e\\x04\\x9d\\x8d\\xf0\\x43\\x63\\x1e\\xd0\\xed\\x4c\\x4a\\xc4\\x02\\x2d\\x84\\x03\\xcb\\x04\\x21\\xb4\\x54\\xcb\\xfb\\x6f\\x48\\xa3\\x0e\\x9e\\xe1\\x60\\x9a\\xd7\\xb6\\x82\\x11\\x97\\x7a\\xcb\\x33\\xb9\\xc1\\xa1\\xbe\\x73\\x58\\x14\\xc5\\x8f\\x66\\xdb\\x5f\\x0b\\x8a\\xc7\\x73\\xb1\\xd5\\x8d\\x4e\\x6b\\xc4\\x5d\\xfd\\x48\\xa2\\x94\\xbb\\xd2\\x5e\\x92\\x67\\x1f\\x56\\xf3\\x02\\xf2\\x9b\\x50\\xd8\\x04\\x31\\xc8\\xf2\\xea\\x33\\x99\\x62\\x57\\xb2\\x08\\xe0\\x57\\xea\\x76\\x72\\xcc\\x2d\\x1c\\xd4\\x20\\x4b\\x85\\xb2\\xab\\x50\\x90\\x27\\x13\\x13\\x59\\xae\\xb4\\x2e\\x3e\\xcc\\xdb\\xae\\xcf\\xe2\\xcd\\x3e\\x5a\\x33\\x13\\x26\\x6e\\x76\\x11\\x94\\xff\\x69\\xca\\xe9\\xe3\\x7e\\x51\\xcc\\x0a\\x54\\xf0\\x86\\xdd\\xe1\\x3c\\xb3\\x31\\x18\\xe3\\x4f\\xe3\\x3c\\x74\\xd7\\x35\\x58\\x27\\x52\\xd6\\x8d\\x21\\xc7\\x9e\\x5c\\x3a\\xae\\xa9\\x4b\\xa1\\x07\\xcb\\x7e\\xe8\\xa7\\x0a\\x3f\\x9a\\x01\\xe9\\x80\\x8c\\x0a\\xeb\\xa6\\x66\\x53\\x15\\xb4\\x56\\x25\\x84\\x0a\\x03\\x3a\\x6e\\x2a\\x87\\x54\\x95\\x05\\x79\\x42\\xed\\x9b\\xb2\\xce\\x6e\\x4e\\xe6\\x0b\\xed\\x47\\xcd\\x9d\\x58\\x4b\\xc2\\x45\\x24\\x39\\x7a\\x10\\x94\\x98\\xee\\x2a\\x97\\x3a\\xad\\x6a\\x29\\xb7\\x0a\\x1c\\xfb\\xfe\\x9a\\xa5\\xc7\\xcb\\x9f\\x35\\xf0\\xfa\\x00\\x22\\x7f\\x43\\x98\\x8d\\x07\\x61\\x9b\\x6f\\xb2\\xf6\\xd3\\xbe\\xe2\\x8e\\x10\\xee\\x70\\x53\\x47\\x01\\x5a\\x92\\x2e\\x2e\\x88\\xd3\\x4f\\xb0\\xce\\x51\\x5b\\x08\\xdf\\x3a\\x1b\\x63\\x4f\\xf9\\xec\\x15\\xd0\\x59\\x41\\x82\\xc8\\x6e\\xbb\\x0d\\xb7\\x83\\x61\\x2a\\x7d\\x19\\xe4\\xb2\\x2e\\x82\\x2d\\x56\\x62\\x45\\xae\\xd7\\x2e\\x69\\x4c\\x3d\\x10\\x1b\\xfa\\x4c\\xa8\\x79\\x86\\x2e\\x5f\\x99\\xc2\\x3a\\x5d\\x66\\x08\\x3c\\xe0\\x6d\\x87\\xf3\\x99\\xaa\\x78\\x88\\xab\\x83\\xb8\\x66\\x44\\x72\"},\n{{0x4e,0xf6,0x0f,0x06,0x91,0xd7,0x37,0xe6,0x4d,0x43,0x7b,0xfd,0x33,0x98,0x33,0x0e,0x55,0xe3,0xc0,0x94,0xcf,0x41,0xfc,0x55,0x7b,0x0f,0xe0,0xb6,0x43,0x90,0x9a,0xb8,},{0x30,0x6a,0xb1,0x46,0xe5,0xc8,0xcd,0x63,0x0f,0x9b,0x48,0xbf,0x8b,0x68,0x5d,0xb0,0xb6,0xb5,0x53,0xef,0x69,0x68,0x68,0x53,0xb6,0xb5,0x31,0x96,0x01,0x18,0x54,0x8c,},{0xcb,0xf7,0xcf,0x22,0x08,0x1c,0x5f,0x23,0x5d,0xba,0x35,0x63,0x0f,0xb3,0xf0,0x40,0x8f,0xce,0xcc,0xef,0xeb,0x28,0xb9,0x9d,0x74,0xdb,0xd9,0x8c,0x90,0x2c,0x7d,0x99,0xba,0x9c,0xa7,0xfa,0xb3,0x74,0x7c,0x50,0x4c,0xc2,0x19,0xf4,0xdd,0x10,0x10,0x81,0xf5,0x8c,0xe6,0x16,0xe2,0x92,0x80,0xe3,0x62,0x53,0x9f,0xe4,0x9f,0x34,0xd7,0x05,},\"\\x0a\\x18\\x8a\\xc2\\x6f\\x3c\\x5d\\x89\\xf3\\xd5\\x88\\x37\\x4f\\xac\\x5e\\xcf\\x9a\\x46\\x7e\\x21\\x65\\xb3\\x1d\\x0b\\x0f\\x23\\x50\\x1b\\xd2\\x2e\\x62\\xbf\\x35\\x55\\xff\\xba\\x94\\x63\\x1d\\xe7\\x4a\\x6a\\x3c\\x3c\\xf6\\x3b\\x03\\xac\\x1b\\xbb\\x37\\xd2\\x33\\xec\\xa5\\x99\\x3b\\x09\\x70\\xa0\\x22\\x0d\\xe8\\xd6\\xc4\\x1a\\x97\\x03\\x07\\x30\\x9a\\x52\\xda\\x05\\x76\\xdc\\x33\\x4d\\x80\\x64\\x47\\xaa\\x09\\xd0\\xb2\\x45\\xea\\xcd\\x0b\\x42\\xc4\\xe1\\x9f\\xa3\\xd6\\xfb\\xdc\\x22\\x94\\x30\\xeb\\x3c\\x75\\x58\\xaf\\x53\\x31\\xc6\\xe7\\xfc\\xc2\\xe5\\x52\\xce\\x35\\xd5\\x79\\x07\\x3b\\x54\\x8d\\xc1\\x15\\xbb\\xd2\\x7e\\x5a\\x33\\xce\\x1c\\x47\\xfc\\x84\\x61\\xe3\\x91\\xb6\\xd7\\x67\\x95\\x34\\x87\\xcc\\x52\\xee\\x67\\x3b\\xc4\\xbe\\x96\\x56\\x9c\\x85\\x57\\x36\\x9e\\xbb\\x6e\\x02\\xf7\\x92\\x38\\x10\\x8c\\x3b\\x58\\x56\\xee\\x38\\x1a\\x79\\xff\\x46\\x4c\\x8f\\x60\\x09\\xfd\\x47\\xe6\\x7b\\x4c\\x80\\x20\\x1e\\x11\\xe6\\x1a\\xb8\\xf5\\x9b\\xa5\\xd0\\x7b\\x15\\xac\\xe3\\xfb\\x37\\x4c\\x64\\xb6\\xb4\\xc3\\x45\\xe2\\xb0\\x0e\\x91\\x51\\xab\\x8e\\x1c\\x5c\\x98\\x56\\x8b\\xc5\\x8d\\xd0\\x81\\x2a\\xaa\\x3b\\xee\\xe1\\x65\\xe7\\xea\\xe5\\x8f\\xbd\\xe6\\x30\\x77\\x20\\x3c\\x4f\\xd6\\xe1\\x60\\x68\\xd7\\x6e\\x3d\\x3a\\x13\\xf1\\xcd\\xd7\\x32\\x88\\xbd\\x5e\\x4d\\xa4\\x4e\\xb1\\x19\\xa0\\x4c\\x4d\\x32\\xef\\xa2\\xf1\\x3e\\x74\\x26\\xa2\\xf4\\x1c\\x56\\x23\\xc9\\xb0\\x66\\xb1\\x30\\x36\\x39\\xb8\\xfc\\xea\\x0d\\x87\\x74\\xcc\\x08\\x04\\x5f\\x7e\\x34\\x63\\x65\\xff\\x31\\xd3\\xb1\\xed\\x99\\xe9\\x7b\\xca\\x5f\\x25\\xc9\\x2b\\x28\\x43\\xac\\x58\\x5d\\x02\\x19\\x3a\\x2f\\xd3\\x94\\x66\\xf7\\x3a\\xaa\\x98\\x9b\\x1f\\xa0\\x5b\\x9a\\x15\\x7f\\xd0\\x27\\x7c\\x5e\\x74\\x5d\\x25\\x8e\\x02\\x78\\x03\\xa5\\x24\\xad\\x94\\x30\\x94\\x25\\xc3\\xf4\\xde\\xc3\\x1c\\x0e\\xfc\\x54\\x77\\x52\\xf4\\xc7\\x19\\x4c\\xbb\\x27\\x2f\\x84\\x9a\\x52\\x16\\x9c\\x6a\\x07\\x8d\\x20\\xed\\xe1\\x43\\x20\\x16\\x52\\x84\\x77\\xb5\\x8c\\x2b\\xdf\\x60\\x63\\xf9\\x44\\x7e\\x33\\x83\\x7c\\xcb\\x43\\x7d\\x8d\\x6b\\x95\\xcf\\x4c\\x44\\xbe\\x70\\xc8\\x19\\x3a\\xd9\\x80\\xa1\\x05\\xf3\\xdb\\x6f\\x99\\x30\\xba\\xb4\\x67\\x8c\\x77\\x63\\x42\\xfa\\xf1\\x70\\xed\\xf7\\x42\\x48\\xd3\\xb1\\xca\\x96\\xf7\\x31\\xb9\\xd0\\x26\\xd8\\xf0\\xf7\\xc3\\x4e\\xd3\\x72\\xc1\\xcd\\xe1\\x76\\xf5\\x5f\\x55\\x86\\x75\\xcc\\x31\\x80\\xc2\\x39\\x02\\xf4\\xba\\x95\\x08\\xd1\\xc9\\x1c\\x3c\\x9e\\x68\\x87\\x30\\x32\\x7f\\x3f\\x7b\\x63\\x7a\\x8f\\xee\\x54\\x37\\x37\\x59\\xfc\\xb1\\x7c\\x92\\x17\\xea\\x44\\xce\\x43\\x69\\x1a\\x8f\\x64\\x63\\x64\\x0a\\x4a\\x5e\\x15\\x1e\\x62\\x54\\xc4\\xef\\x12\\x62\\x3b\\x49\\x39\\x4d\\xa7\\xcc\\x79\\x45\\x26\\x93\\x81\\x7d\\x6b\\xae\\xa9\\xa0\\xa7\\x58\\x76\\x94\\x8b\\x1f\\x8d\\x3b\\x71\\x7f\\x9e\\xc3\\x67\\x53\\xf5\\x32\\x63\\x71\\x03\\x83\\xb9\\x82\\x62\\xae\\x63\\x54\\xff\\x2a\\x22\\x83\\x22\\x0a\\xd4\\x2c\\x5c\\xb2\\xcb\\xbd\\xf1\\x2c\\x87\\x95\\x13\\x71\\x0b\\x16\\xbe\\x85\\x6f\\x3b\\x13\\x55\\xb3\\x6f\\x4b\\x80\\xc0\\x17\\xc2\\x1b\\xe8\\x5e\\x96\\x05\\x3d\\xa0\\x50\\xc4\\x03\\x12\\x10\\x0a\\xbb\\x64\\x0b\\x87\\x3d\\x88\\xfb\\x6e\\xe0\\xd1\\x9e\\x9e\\x61\\xb0\\x4c\\x97\\x0b\\xd1\\xf0\\x60\\xdd\\x31\\x1b\\xbb\\x9a\\x6e\\x35\\xb9\\x85\\xfd\\xca\\x17\\xca\\xee\\x8c\\xd5\\xdb\\x63\\x7a\\xcd\\x90\\xcb\\x8e\\x82\\x32\\x55\\xc0\\x56\\x01\\x8f\\xef\\x59\\x20\\xdb\\x64\\x0d\\x22\\x01\\xc5\\xed\\xdb\\xd8\\xa9\\xc9\\x47\\x4d\\xa8\\xde\\xf7\\xe1\\x32\\x5b\\x3c\\xc4\\x36\\xc7\\x4f\\x81\\x5d\\xb1\\xe4\\x2b\\x42\\x1f\\xaa\\xb6\\x26\\xa4\\x37\\x8c\\x2d\\x84\\x26\\x1b\\xf6\\x49\\xa5\\x3b\\x32\\x1f\\x59\\x8c\\x44\\xbb\\xd3\\x00\\x2b\\x06\\xcf\\x7f\\x1f\\xde\\xf8\\x4a\\xb3\\x5f\\x73\\xed\\x7d\\xc6\\x50\\x96\\xcb\\x1d\\xc0\\xcc\\x0e\\x34\\xc5\\x61\\xc8\\xa1\\x5c\\xf5\\x27\\x9a\\xbb\\xed\\x9b\\x16\\xff\\x24\\xa9\\x74\\x4e\\x3f\\x5e\\x64\\x9c\\xc9\\xd8\\x88\\x4f\\x89\\x1c\\x3f\\xb7\\x89\\x02\\x03\\x1f\\xfe\\x0e\\x01\\x21\\xc7\\x20\\x80\\xad\\x10\\xc2\\x47\\xb7\\xc9\\x3a\\x9e\\xbb\\x2d\\x84\\xd4\\xf8\\x77\\x75\\x0d\\x7b\\x34\\x16\\x39\\x3d\\x03\\x04\\x52\\x26\\xbb\\x79\\x94\\xee\\xa5\\x8e\\x27\\x2d\\xc1\\x8c\\x46\\xb3\\x82\\xd1\\xf9\\x7b\\x23\\x76\\x5f\\xda\\x7a\\x8c\\xe2\\x1f\\xc6\\xb9\\x8d\\x72\\x3f\\xfc\\xcd\\x99\\xac\\x46\\x55\\xcc\\x5d\\x10\\x10\\x5a\\x2a\\x5b\\x7c\\x8c\\xfb\\xfb\\x90\\xe2\\x7a\\x9a\\x80\\x9e\\x41\\xae\\x64\\x00\\x63\\x28\\x64\\x05\\xa9\\xbe\\x83\\xac\\x5d\\x29\\x07\\xa4\\x5f\\x16\\x3c\\x77\\x64\\xb0\\x9f\\x99\\xa5\\x55\\x93\\x22\\x0d\\x69\\x01\\x29\\x2b\\x9b\\x58\\x03\\xa0\\xfe\\x71\\xb0\\xe4\\x44\\x1c\\xbf\\xef\\x84\\x1c\\x33\\xce\\xbc\\x98\\x36\\x4d\\x66\\x6e\\x5a\\x9f\\x5e\\x7e\\x69\\xa1\\x50\\x8e\\x43\\x80\\xed\\x36\\x13\\x45\\xb7\\x24\\x8a\\x4c\\x1c\\x1c\\xe0\\x87\\x69\\xbc\\x71\\x52\\xdd\\xb3\\x32\\xfb\\xa1\\x76\\x20\\x0f\\x5a\\xbb\\xae\\x38\\x12\\xf4\\x06\\xda\\x72\\xdd\\xe5\\xdb\"},\n{{0x19,0x7e,0x15,0xdc,0xe4,0xc4,0x7d,0x73,0x4d,0xbc,0xe4,0x68,0x8a,0x7a,0xd5,0xfe,0x41,0xeb,0xf2,0xaa,0x29,0xa2,0xbd,0xdb,0x2b,0xee,0x62,0x84,0x29,0xc1,0xbc,0x02,},{0x30,0xfa,0xc3,0x23,0x04,0x8b,0x0c,0x78,0x1a,0x9f,0x63,0xc1,0xee,0x69,0xf2,0xb9,0xe7,0x5a,0x27,0x06,0xd2,0x49,0x51,0x2a,0x27,0x39,0x60,0x7f,0x26,0xdb,0x13,0x8f,},{0x2c,0x3c,0x8c,0xd2,0x99,0xc9,0x06,0x0b,0x65,0x99,0x9b,0x03,0xa6,0x57,0x9b,0xc5,0x0e,0xf1,0xfe,0x0d,0x85,0x1f,0x23,0xbe,0x9c,0xb5,0x8f,0x8f,0xb8,0xc6,0x72,0xee,0x08,0x6a,0x53,0x9e,0xad,0x94,0x9e,0x08,0x7d,0xf0,0x91,0x12,0x2d,0x26,0xfa,0xaa,0xd2,0x06,0xa5,0xc5,0x2f,0xcd,0x58,0xb5,0x14,0xd7,0xa9,0x35,0xbe,0x01,0x79,0x08,},\"\\xfd\\x97\\x1d\\x48\\x94\\x6b\\x51\\xff\\xed\\x7b\\x62\\xc5\\xd0\\x99\\xc1\\xe5\\x6b\\x13\\x58\\xb9\\x22\\x35\\xe1\\x01\\x0e\\x3f\\x23\\x84\\x4d\\xdb\\x73\\xbc\\xee\\x8d\\x2e\\x1c\\x99\\x77\\x35\\x3b\\xc9\\x6a\\x22\\x1c\\x05\\x60\\x29\\x31\\xfa\\x16\\xcc\\xc2\\xab\\x6d\\x0f\\x01\\xc8\\x46\\xc2\\x92\\x0e\\x99\\xde\\x02\\x6d\\xc2\\x89\\x7f\\x3d\\x5f\\x3c\\xee\\x17\\x4c\\xe7\\x51\\xd4\\xa8\\x05\\xee\\x19\\x59\\xa3\\xc6\\x9c\\xfd\\x42\\xd7\\xc9\\xaf\\xd3\\x1f\\xa9\\xb1\\xcf\\x05\\x78\\x6d\\x8f\\x90\\x42\\xa4\\xf9\\xf8\\x1c\\xf7\\xac\\x9c\\x1c\\x39\\xb3\\x6f\\x1e\\xe9\\x5b\\x98\\xcf\\x7e\\xe3\\xf4\\x3e\\x2c\\x34\\x37\\x33\\xd1\\xd8\\x2c\\xc0\\x8b\\x2c\\xde\\xb7\\x8d\\x98\\x20\\x34\\x08\\x5f\\xf4\\xdc\\x65\\x36\\xcd\\x15\\x4a\\x79\\x0c\\x85\\xc8\\x61\\x3e\\xc4\\xe5\\xe1\\xdc\\x37\\x7d\\x38\\xa7\\x45\\xd9\\x38\\xcf\\xb1\\x5c\\x8b\\x8a\\xa8\\x61\\x21\\x83\\x5f\\x2e\\x25\\xe9\\xe6\\xd0\\xde\\x68\\x02\\x5d\\x81\\x0c\\x3d\\xc9\\xdf\\x99\\x1d\\xad\\xad\\x39\\xdc\\x69\\x81\\xfd\\xba\\xc1\\xff\\x9b\\x7a\\x79\\x1c\\x39\\x60\\xd8\\x56\\x43\\x66\\xe5\\xaa\\x39\\xa9\\xe9\\xc7\\xcb\\xf1\\xd3\\xf0\\xf8\\x20\\xd1\\xb9\\x01\\x08\\x75\\x1a\\xc7\\x64\\xda\\xbe\\x05\\xc5\\x1c\\x18\\x52\\x9d\\xa1\\xb0\\x34\\x96\\x14\\x66\\x84\\x24\\xab\\x4e\\x93\\x64\\x40\\xc4\\xa2\\x51\\x3b\\xe5\\x28\\x53\\x93\\x72\\xee\\xe7\\x87\\x54\\x58\\x9d\\xbe\\x79\\x94\\xfa\\xa1\\xf6\\x22\\x91\\x24\\xf8\\x39\\x95\\x0e\\xd0\\x92\\x3f\\x43\\x23\\x31\\x5a\\xc9\\x63\\xbb\\xe4\\xc8\\xe1\\x77\\xda\\xc5\\x16\\xe7\\x34\\x22\\x38\\xf1\\xcd\\xf1\\x40\\xbe\\xfc\\x8a\\xcd\\xca\\x3d\\x00\\x2b\\x16\\xc1\\x39\\x8d\\x86\\x86\\x00\\x30\\x4c\\x7e\\x98\\x53\\xb2\\x3a\\x51\\xb1\\x7d\\x9f\\xd0\\x61\\x56\\xe1\\xd1\\xd0\\x8a\\x28\\x46\\x09\\x09\\xfa\\x20\\x9c\\xcc\\xcc\\x4c\\xec\\xbd\\xb1\\xa4\\x63\\x48\\x08\\x91\\x15\\x31\\x86\\x81\\xa9\\x5a\\xe5\\x80\\xab\\x67\\x66\\x04\\x13\\x84\\x65\\x1c\\xc4\\xe6\\x14\\x51\\x03\\x92\\x3b\\xdf\\x4a\\x32\\xa9\\x3d\\x93\\xee\\xd3\\x18\\x79\\x1f\\x20\\x80\\x5f\\x7e\\xa8\\x4b\\x74\\x3e\\xe1\\x1e\\xad\\x9e\\x4c\\xa0\\x3d\\xa7\\x6d\\xdd\\x24\\x9f\\xd4\\x47\\x5f\\xc1\\xa3\\x53\\xc7\\x0a\\x83\\x38\\x9b\\xfa\\xc5\\x20\\x98\\xdb\\x06\\x6d\\x10\\x29\\xc4\\xef\\xfb\\xed\\x86\\x4e\\xbe\\x7f\\x10\\x7e\\x01\\x03\\xb3\\xa8\\xf3\\xfd\\x1d\\x6a\\xb4\\x36\\x0b\\x99\\xe8\\xb1\\x40\\xc5\\xea\\x13\\x3e\\x92\\x3c\\x39\\x2b\\x8e\\x40\\x63\\xaa\\x6e\\x52\\x26\\x38\\xf6\\x1d\\x7a\\x71\\xc9\\x22\\x58\\x97\\xd9\\xf8\\xa1\\xe1\\x6c\\xfc\\xc8\\x01\\xe7\\xd5\\x41\\x04\\xeb\\x10\\xe6\\x1a\\x5a\\xe6\\x3c\\x5c\\x85\\xa5\\xb2\\x93\\x92\\xab\\x3a\\xb8\\xe5\\xc0\\x39\\xf1\\x00\\xd0\\xf4\\x60\\x0c\\x61\\x0e\\x02\\x09\\x43\\x6e\\xf2\\xec\\xe4\\xd0\\xbd\\xb0\\xba\\xb4\\x37\\xb2\\xdb\\x5f\\x37\\x08\\xfd\\xdf\\x96\\x66\\x0f\\x6f\\xb1\\xa9\\x0d\\x60\\x48\\xd3\\x95\\xaf\\xaf\\xa7\\x60\\xcc\\xaf\\x15\\xde\\xaa\\x0e\\xff\\xeb\\x26\\xec\\x17\\x68\\x1d\\x17\\x2c\\x13\\x30\\xf7\\x8e\\x78\\xa8\\x73\\x6b\\x28\\x5f\\x61\\x5f\\x15\\xd4\\xf2\\xc3\\x13\\xd2\\x5f\\x30\\xae\\xe9\\xd1\\xdb\\x39\\xf5\\x35\\xfc\\xdd\\x0e\\xbc\\x8e\\x71\\xb8\\x9c\\xe6\\xb3\\xfc\\xb5\\x67\\xcd\\x0f\\xa2\\x88\\xf4\\x8e\\xd3\\xa7\\x59\\xbb\\x2e\\xd2\\x00\\xfd\\xc2\\x30\\x91\\x50\\x2f\\xd9\\xca\\x65\\x1c\\xe5\\xe3\\x42\\x2a\\x98\\x33\\x5a\\x81\\xd7\\x4a\\x65\\xcc\\x15\\x00\\xe9\\x07\\x0a\\xbb\\x60\\x9c\\x1c\\x1f\\x68\\xfc\\x2c\\xa9\\x4c\\xdd\\x55\\x0f\\x99\\xbc\\xb2\\xd0\\x92\\x41\\x6b\\x9b\\xd3\\x88\\x41\\x0b\\x8f\\xe7\\x48\\xfb\\x8c\\x9a\\x5a\\xb8\\x61\\x5f\\x2e\\xd9\\x68\\xf8\\x5d\\xcb\\x27\\x27\\x72\\x69\\x84\\xbe\\xad\\xa7\\xa1\\x8a\\xfd\\xb0\\xc7\\x2a\\xa6\\x5d\\xe7\\xab\\xb7\\xa8\\x6f\\x11\\x16\\x9a\\x6e\\xad\\xf1\\xc2\\x1d\\x61\\x4e\\x52\\xc0\\xc8\\xf0\\x19\\x74\\x7d\\x34\\x1a\\x05\\xd8\\x5e\\x37\\xbf\\x58\\xd8\\x32\\x7e\\x99\\x39\\xc2\\x38\\x7c\\x27\\x44\\xed\\xf8\\x38\\x56\\x3c\\xb3\\x7f\\x0b\\x16\\xe8\\xa0\\x6f\\xc6\\x28\\xa9\\x72\\x30\\x50\\x6f\\xa4\\x18\\x39\\x54\\xdc\\x74\\x81\\x5f\\x3b\\xe2\\xeb\\x2a\\xff\\x4a\\x13\\xc0\\x65\\xf7\\x43\\xb7\\xd8\\x5d\\xe8\\x04\\xeb\\x28\\xef\\xe5\\x70\\xed\\x5e\\xcc\\x71\\xab\\xa9\\x7f\\x97\\x63\\xb4\\x36\\x17\\x32\\x47\\xf3\\x8e\\x0c\\xf6\\x29\\x72\\x09\\xb6\\x51\\x28\\x46\\x5a\\x38\\x26\\x64\\xce\\xd8\\x01\\x1f\\xcc\\x3d\\x0e\\x56\\x3f\\x15\\x5b\\xc6\\x3c\\x94\\xdd\\xe7\\x3c\\x7b\\x17\\x24\\x7b\\x8c\\x3a\\x4e\\x80\\x34\\xeb\\xd4\\x36\\x46\\x35\\x18\\x5c\\xe9\\xc7\\x08\\x1d\\xbd\\xbe\\x85\\x45\\xf7\\x9d\\x01\\xaa\\x53\\x2a\\x0d\\xc5\\x2c\\xb7\\x90\\xa3\\x1f\\xc2\\xff\\x41\\xac\\xeb\\xad\\x27\\xcc\\xe9\\x24\\x45\\x54\\xdb\\x65\\x2f\\xa2\\x87\\xba\\xe7\\xde\\xcb\\xcc\\x8c\\xe9\\xe0\\x1d\\x1a\\x88\\xab\\x41\\x2b\\x6c\\x65\\x78\\x20\\x3b\\x42\\xde\\xc9\\x82\\xb7\\xf3\\xb8\\x23\\x14\\xdb\\x2c\\xc7\\xc5\\xc3\\xdc\\x1d\\x3d\\x8b\\x17\\x14\\x4d\\xa7\\xfe\\x60\\xe7\\xa8\\x72\\x5f\\xd0\\xa9\\x7c\\x61\\x06\\x07\\xcf\\x41\\x3c\\x72\"},\n{{0x08,0xb5,0xfd,0x4e,0x41,0x9d,0x23,0x70,0xc0,0xfc,0xd6,0xc3,0xb9,0x2f,0x8d,0xb3,0xaf,0xd4,0x22,0x68,0xf5,0x33,0x08,0x5d,0x9f,0xce,0x32,0xb5,0x22,0x82,0x4e,0x34,},{0xcd,0x0d,0xa6,0x99,0x37,0x9e,0x4f,0x94,0x25,0xe8,0x4b,0x97,0x57,0x30,0x0a,0x51,0xa1,0x63,0xf3,0x58,0x73,0x4c,0xc3,0x7a,0x91,0xff,0x0e,0xa4,0x88,0xd2,0x97,0x79,},{0x42,0xa1,0x37,0x56,0xb7,0x5c,0x67,0x22,0x48,0x5f,0xa3,0xf6,0x94,0x04,0x1b,0x39,0xb7,0xd7,0xc5,0xfd,0x40,0xeb,0xc0,0x6a,0x52,0xe0,0xff,0x34,0xce,0x14,0xd8,0xd4,0x0f,0xa8,0x2a,0x95,0x08,0xb5,0x68,0x53,0x7d,0x26,0xd0,0xdd,0x7c,0x0a,0x31,0xbe,0x71,0x0d,0xa8,0x0a,0xab,0x35,0x19,0x6a,0x03,0x9b,0x60,0x64,0x1d,0xb1,0xe1,0x01,},\"\\x3c\\xee\\xee\\xa3\\x0f\\xa4\\x01\\x56\\x3d\\xf3\\x6b\\x19\\x8b\\x9b\\x59\\x69\\x8c\\x10\\xe1\\x00\\xa2\\xf3\\x0e\\x6f\\x78\\xfe\\x62\\xb9\\x2e\\xca\\xc9\\x89\\xe8\\xaa\\x09\\xec\\x76\\x0e\\x89\\xca\\xc0\\xa1\\x6b\\xde\\x3c\\xac\\x73\\x62\\x2a\\x86\\x27\\xef\\xed\\xfa\\x4e\\xc0\\x9b\\x87\\x3f\\x7e\\x10\\x00\\xe7\\x69\\x82\\x91\\x0c\\xa0\\xaa\\x4a\\xfb\\x1f\\xf5\\xa8\\x44\\x8b\\x76\\xf7\\xb0\\xd2\\xa2\\xd5\\x2a\\x7f\\x40\\xde\\xde\\xfc\\x68\\xd6\\x0c\\xe6\\x62\\x2c\\xa0\\x80\\xd6\\x69\\x8e\\xa6\\xc3\\xbd\\x72\\x10\\xb3\\xb6\\x48\\xf5\\x32\\x52\\x29\\x14\\x94\\xb3\\x5a\\x55\\xff\\x40\\xfa\\x1a\\x63\\x1a\\x57\\xc5\\x10\\x01\\x1a\\x46\\xbf\\xb9\\xe2\\x71\\xba\\xe1\\xe7\\x8c\\xe6\\xc6\\xea\\x60\\xc5\\x5b\\xa0\\xcc\\xe3\\x60\\x59\\xbf\\xb0\\x1e\\x39\\x45\\x56\\x98\\x7f\\x74\\x4b\\x72\\xae\\xbb\\xdb\\x4b\\x1b\\xdb\\xb3\\xbb\\xaa\\xee\\x1b\\x8b\\x2f\\x31\\x74\\x50\\x6a\\x79\\x3f\\x0a\\x51\\x1b\\x2b\\x56\\x90\\x49\\xb3\\x0a\\x2e\\x08\\x41\\x42\\x41\\x84\\xa4\\x8e\\xca\\x9e\\x2d\\x83\\x78\\x3a\\xc5\\xb6\\x1e\\xb9\\x47\\xcb\\xd8\\xba\\xb7\\xad\\x38\\xb0\\xc6\\x84\\x27\\xd8\\xf9\\x4a\\xe2\\x85\\x19\\x0d\\xbb\\x6e\\x0c\\x6d\\x58\\x0a\\x25\\x14\\x23\\x94\\xbe\\x94\\x81\\x58\\xd8\\xda\\x83\\xb4\\xf3\\x4a\\x8d\\x25\\x8b\\x97\\x07\\x56\\x32\\xb3\\xc2\\x8b\\xfa\\xe3\\x10\\x5e\\xd1\\x87\\x2e\\x35\\x6e\\x43\\xae\\xd5\\x93\\x97\\xb9\\x11\\x0b\\xbf\\x9d\\x8c\\xa2\\xa0\\x44\\xd5\\x27\\x1e\\x6c\\xc3\\x61\\xe1\\x4e\\x69\\xa9\\x32\\x51\\x76\\x83\\xec\\x81\\x81\\x8f\\x02\\xcf\\xa0\\x29\\x5e\\x56\\x61\\xce\\xa3\\xe5\\x86\\xaf\\xc0\\xdb\\x41\\xba\\x95\\x55\\x3e\\xe7\\x5b\\x20\\x0b\\x0f\\x97\\x90\\x11\\x1d\\x37\\x57\\xa7\\x39\\xe5\\x63\\x55\\x7a\\xff\\x9b\\x70\\xca\\x14\\xe8\\x7b\\x79\\x54\\x37\\xba\\x91\\xa9\\x5d\\xd0\\x7e\\xa6\\x9a\\x11\\x35\\x9f\\x36\\xca\\x03\\x29\\x8e\\x0b\\xfa\\x4f\\x91\\x2f\\x64\\xa2\\x92\\x4a\\xd9\\x01\\x97\\x5a\\x2a\\x96\\x0b\\xa1\\xbe\\x89\\x92\\x1b\\x1f\\x54\\x85\\x49\\x6b\\x7e\\xa5\\xda\\x6d\\x8a\\x69\\x37\\xac\\x10\\x5b\\xf3\\x76\\x0e\\x48\\x76\\x99\\x0a\\x0f\\x5c\\x5a\\x63\\x4f\\x74\\xcb\\x57\\xdf\\x7c\\x17\\x2c\\x8a\\x41\\x53\\x72\\xe6\\xd9\\x03\\x29\\x87\\x17\\x49\\x96\\x16\\xf8\\x97\\x1c\\x68\\xbb\\xec\\xe9\\x2e\\xa8\\x78\\xa1\\x8e\\x23\\xf3\\x27\\xc3\\x64\\x9b\\x6a\\x85\\x2e\\xf2\\x3b\\x7b\\x3e\\x60\\x3c\\xdf\\x80\\x45\\x2d\\xbf\\x1b\\xe2\\xfb\\x77\\xe8\\x14\\xd2\\x52\\x54\\x96\\xbb\\x31\\xfb\\x6e\\x4e\\xd2\\x53\\x32\\x48\\xb3\\x9d\\x5f\\xbe\\x23\\x90\\xa9\\xb6\\xfc\\xca\\xba\\x99\\x7e\\x8b\\x49\\xb5\\x98\\x36\\xe3\\xe0\\x95\\x29\\xea\\x5e\\x41\\x13\\xee\\xe4\\x51\\xc9\\xc6\\xbb\\x26\\x74\\x1d\\x0e\\x4c\\x58\\x6f\\x53\\xd6\\x04\\xc6\\xea\\x0c\\x0e\\x60\\xdb\\x02\\xe5\\x10\\x9f\\x37\\x34\\xf5\\x1c\\xdd\\x89\\x85\\xaf\\xeb\\x3e\\xca\\xff\\x65\\xe0\\x59\\xe3\\x12\\xcd\\x50\\xfa\\x34\\x9f\\xf2\\x8b\\xdc\\x9b\\x70\\xb7\\xf5\\x32\\xdb\\xab\\x1d\\xf4\\x3b\\x03\\x16\\x7c\\x1d\\x2e\\x3f\\xa6\\xee\\x8c\\x9b\\x17\\x4a\\x0b\\x2c\\xf8\\xaa\\x9f\\xfa\\x40\\x6b\\xf5\\xbd\\x72\\x88\\x78\\x0c\\x9c\\x4a\\x6b\\x69\\x79\\x49\\xb4\\x86\\x38\\xd4\\x20\\x79\\xc8\\xc6\\x6e\\x14\\xd9\\xb5\\x72\\xa2\\x10\\xa0\\x93\\xea\\xf1\\xd2\\xf7\\xa7\\x03\\xb5\\xcd\\x20\\xad\\xc4\\xf9\\x92\\x7a\\x6e\\xa8\\xea\\x78\\xfa\\xa6\\x1b\\xc6\\x2b\\x3c\\x5c\\xbd\\x3a\\x53\\x25\\x25\\x66\\xd0\\x43\\xba\\x55\\x65\\x90\\xd9\\xa7\\x63\\xbe\\x7f\\xea\\x4b\\x20\\xe1\\xe9\\xcf\\xbe\\xbf\\xae\\x15\\x43\\x9b\\x33\\x4d\\xc5\\x39\\xb1\\x7d\\xad\\xa2\\xe4\\x34\\xe9\\xc8\\x32\\x25\\xb1\\xe8\\xf6\\xbe\\xb7\\xd5\\x56\\xb4\\x7d\\x7f\\x69\\xf7\\xeb\\x7d\\xf5\\xed\\xe2\\xee\\xbd\\x84\\xe2\\x50\\xb7\\xc9\\x46\\x8c\\x21\\xfd\\xc0\\x17\\x0e\\xa8\\xdf\\x66\\x2d\\x61\\x80\\x58\\x1f\\x65\\x7f\\xe7\\x6c\\xef\\x18\\x58\\xb6\\xb0\\x2f\\x73\\x25\\xc7\\x21\\x96\\x43\\xfb\\xa2\\xf7\\xe9\\x96\\x3a\\x33\\x32\\x2d\\x65\\x04\\xab\\x91\\xbf\\x10\\xa9\\x78\\xfa\\x07\\xb4\\x7d\\x5d\\xb0\\xbe\\x00\\x0d\\xcd\\x00\\x2b\\xdd\\xaf\\x67\\x6b\\x77\\x25\\x9c\\x9f\\x60\\xad\\x0b\\x11\\x67\\x1c\\xd5\\x77\\x7c\\x1e\\x80\\xb1\\x3f\\x82\\xeb\\x0f\\xb6\\xa1\\x80\\xb5\\x66\\x62\\x93\\xa4\\x32\\x40\\x86\\x2f\\xbf\\xa3\\x97\\x8d\\x95\\x31\\x19\\x71\\xaf\\xab\\x9e\\x1c\\xc8\\xab\\x14\\xa8\\x76\\xb6\\x57\\x2a\\xc8\\xa4\\xb7\\xe0\\xb4\\x0a\\xaf\\x6b\\x52\\xa1\\xcf\\x4c\\x1e\\xbc\\x6c\\x1c\\x48\\x7d\\xf5\\xa3\\xcb\\xc4\\x00\\x5a\\x0e\\xe3\\x29\\xca\\xbc\\x28\\x6d\\xb1\\x0f\\x17\\xd0\\xf1\\x78\\x2e\\x07\\xd3\\x32\\x4f\\x0c\\x73\\xef\\xbd\\x3c\\x2f\\xb5\\x2b\\x71\\xf9\\x8a\\xd9\\x5d\\xb9\\x50\\x62\\xd9\\x14\\x25\\xe7\\x34\\x67\\xbc\\x1e\\x4e\\x9b\\xf5\\x52\\xe8\\xa2\\x44\\x29\\xd9\\x7d\\xb1\\xd6\\x6d\\xd4\\xd9\\x95\\xe5\\xf8\\xd2\\x4e\\x9c\\x91\\x0b\\x2e\\xb1\\x75\\x8e\\xf7\\x55\\x25\\xc3\\xd6\\x5a\\x3f\\x43\\x0a\\x02\\x73\\x48\\x82\\x0c\\xe3\\x05\\x3b\\x6f\\x3a\\xf4\\xec\\x96\\xd0\\x49\\x37\\x31\\xc8\\x18\\xc6\\xb1\\xa7\\x0c\\x25\\x0a\\xc6\\x86\\xa4\\xfc\"},\n{{0x1e,0x85,0xc9,0xe4,0x51,0xb7,0xac,0xf8,0x01,0xd1,0x6b,0xc8,0x26,0x8e,0xb4,0x2a,0xe8,0x5c,0x72,0xc6,0x8e,0x9f,0x90,0x92,0x7a,0xa0,0xf3,0xb5,0x0b,0xef,0xd2,0x29,},{0xa6,0x9d,0x05,0x7f,0x4b,0x74,0x38,0x11,0xe0,0x7a,0xc7,0x45,0x61,0xc2,0x25,0xbe,0x03,0x81,0xc7,0xd5,0x84,0x9e,0x60,0x18,0x79,0x37,0x01,0xa8,0xcb,0x6c,0x99,0xb5,},{0x6c,0x36,0xda,0x9a,0xd6,0xc4,0x56,0x34,0x3c,0xe6,0x42,0xac,0xa4,0x54,0x92,0x3a,0x52,0xa2,0x84,0x4c,0xe5,0xee,0x58,0x94,0x7c,0x8d,0xf7,0xba,0xb2,0xeb,0xe4,0x67,0x82,0x3c,0x56,0x33,0xe5,0x30,0xb1,0x67,0xd7,0x1c,0x47,0xad,0x95,0x49,0xdf,0x05,0x94,0x3f,0x99,0x42,0x1e,0x17,0x47,0x5c,0x4d,0x4f,0x08,0xde,0xdf,0x6f,0x32,0x05,},\"\\x18\\x9e\\xa9\\xc8\\xd9\\xed\\x14\\xb0\\xde\\x82\\xb4\\x4c\\xbd\\xd5\\x87\\x57\\xa2\\x7c\\x68\\x38\\x3f\\xba\\x59\\x77\\x61\\xf9\\xe8\\x62\\xe0\\x8d\\xe1\\x5b\\x1e\\x44\\xc3\\xdb\\x1b\\xad\\xbd\\xe7\\x69\\x80\\xee\\x39\\xe6\\x99\\x62\\x9f\\x6f\\xcf\\xef\\x32\\xd3\\x6b\\x33\\x93\\xda\\x2c\\xa5\\xa8\\x1f\\x95\\x9c\\x8b\\x0f\\x1b\\x80\\x1b\\x5f\\xa4\\xc4\\x7c\\xa3\\x95\\x91\\xe6\\x12\\xa2\\x43\\x5c\\x5b\\xaf\\xd7\\x7a\\x5c\\x7a\\xb7\\x43\\x59\\x21\\x09\\x06\\xf4\\x75\\x33\\xb1\\x87\\x9e\\x2a\\x5a\\xf5\\x86\\x4d\\x96\\x1c\\x81\\x46\\xe2\\x5d\\xac\\x77\\x25\\x55\\xe0\\x42\\xa8\\x87\\x26\\x14\\x19\\xab\\x8c\\x9f\\x6f\\x62\\x56\\x25\\x48\\x1d\\xa5\\xb9\\x35\\x26\\xa1\\x31\\xf3\\x7b\\x53\\x4a\\x00\\x50\\xa8\\xa4\\x62\\xb3\\x3f\\x20\\xa7\\xe9\\x4b\\x89\\x15\\x30\\xb1\\x9b\\xf6\\x54\\xee\\x95\\x34\\xc9\\xa8\\x36\\x1d\\x03\\x63\\x5d\\x8d\\x27\\xd4\\x6b\\xe7\\xbf\\x84\\x78\\x1a\\xd0\\xd4\\x2d\\x1e\\x7c\\x48\\x54\\xa4\\x9b\\xa1\\xba\\x45\\x82\\x62\\xfe\\x5e\\xa1\\x90\\x21\\xb9\\x35\\xa6\\x94\\x94\\x92\\xd7\\x0b\\x60\\x5e\\x15\\x19\\x89\\xef\\x26\\x41\\xb2\\xbf\\x81\\xec\\x4b\\x92\\x02\\x0f\\xc7\\x07\\x4c\\x2a\\x63\\x22\\x9d\\x51\\xa9\\x44\\x18\\x6a\\x28\\x89\\x5e\\x8e\\xa9\\x52\\x92\\xc2\\xf8\\x72\\xbb\\x21\\xa3\\x14\\x93\\x99\\xe2\\x3c\\xcd\\x8e\\x2f\\xc4\\xf1\\x7a\\x46\\xb5\\x9c\\x28\\x2c\\x51\\xb5\\x8d\\x00\\x26\\x6a\\x5c\\x16\\xb1\\xce\\x35\\x0d\\x54\\x85\\xe8\\xd8\\x01\\x6d\\xd0\\xa5\\x0a\\x59\\x84\\xcc\\x94\\x81\\x54\\xcd\\x5c\\xe7\\xcd\\xa0\\xee\\x0a\\xb1\\xd7\\x25\\x1b\\xdc\\x70\\xa1\\x78\\x5b\\x8e\\x91\\x03\\x91\\x7f\\x4b\\x91\\x7a\\xb2\\xb4\\x94\\xf3\\x48\\x33\\x89\\xa2\\xf9\\x23\\x75\\x41\\x84\\x9e\\xd3\\xbd\\x56\\x5c\\xff\\xac\\x9e\\x75\\x6d\\xb5\\x6e\\xf5\\xe2\\x34\\x95\\xbc\\x77\\x1e\\x88\\xbf\\xfa\\x87\\x07\\xce\\xea\\x5c\\x09\\xbe\\xca\\xdd\\x05\\x9a\\xb8\\x89\\xd1\\xdf\\x7e\\x88\\x7b\\x71\\xa9\\xe6\\xc2\\x38\\x37\\x8f\\xbe\\x0c\\x36\\x30\\x38\\x66\\x16\\x36\\x3f\\x20\\x7b\\x16\\xc3\\x27\\x0d\\x39\\xac\\xde\\xd5\\x11\\x52\\x99\\x92\\xf4\\xe5\\x98\\x78\\x91\\x21\\xd3\\x16\\x13\\x58\\x10\\x63\\x6b\\xaa\\xde\\x8a\\x28\\xed\\xc6\\x6b\\xbf\\x5e\\xde\\x3f\\x40\\x4a\\x70\\xb4\\x7d\\x35\\x98\\x8b\\xe7\\x06\\xb4\\xea\\xa0\\x30\\x23\\xa3\\x90\\x93\\xd5\\x83\\xcd\\x4c\\xd8\\xbf\\x4c\\x74\\x34\\x1a\\x02\\x8c\\x19\\xd6\\x0d\\xa3\\x1b\\x6a\\x7a\\x03\\x4c\\x08\\x1a\\x2b\\x03\\x0f\\xeb\\x3c\\xd2\\xf0\\x3d\\x0f\\xaa\\xbf\\xfb\\x58\\xe3\\xfc\\x36\\xc0\\x06\\xcf\\xb9\\x29\\x47\\xa7\\xde\\x5b\\xa8\\x74\\x76\\xc1\\xb0\\x51\\xe1\\x82\\x83\\xc0\\x3e\\x9c\\x6e\\x5a\\x5c\\x3c\\x27\\x77\\xd9\\xa0\\x75\\x73\\x72\\x37\\x96\\x64\\xe8\\x2f\\x84\\x85\\x82\\x4f\\xed\\xb7\\x0a\\x4b\\xc4\\xe3\\x56\\xed\\xd1\\xb5\\xce\\x0f\\xb6\\xe4\\x1d\\xe0\\x17\\x16\\x21\\xb8\\x4f\\xaf\\xa0\\x01\\x89\\xaf\\xa8\\xa6\\xa9\\x00\\xb1\\x4c\\x70\\x75\\x8f\\x7a\\xa4\\xfb\\x82\\x40\\x0e\\x0d\\x18\\xab\\x3c\\xd7\\xe4\\x8a\\xcf\\xd4\\x89\\xca\\xb0\\xe7\\x2e\\x71\\x9f\\x79\\xa0\\x7d\\x06\\x6c\\x53\\x1a\\x89\\x1c\\x55\\x29\\x1f\\x22\\x45\\xdb\\xbe\\xe4\\x4e\\x52\\xb1\\xdf\\xc8\\x72\\x7a\\xae\\x38\\x7a\\xb9\\xe7\\x19\\x94\\xa3\\x85\\x4e\\x1a\\xdd\\x73\\xd9\\xa7\\x96\\x5c\\x77\\x55\\x21\\xc2\\xf5\\x40\\x84\\x22\\x76\\xdd\\x30\\x9e\\x2f\\x6a\\x34\\x1e\\x7f\\x0f\\x37\\xf2\\x2b\\xb6\\x62\\x7b\\x6e\\x9c\\xb2\\x5b\\xa2\\x4c\\x6c\\x4f\\x4e\\xb9\\xf5\\xe7\\x62\\x2d\\x88\\xda\\x19\\x84\\xe2\\x9c\\x5d\\xa0\\x01\\x03\\x9c\\x44\\x04\\x2b\\x59\\x35\\x14\\x06\\xa4\\x13\\x36\\xdd\\x77\\x2d\\x49\\x7d\\x3f\\xc8\\xaa\\xc4\\x11\\x72\\xeb\\x5a\\xa6\\x41\\x7f\\xe4\\x22\\xec\\x7c\\x15\\x0b\\x96\\xb0\\x45\\x4e\\xe3\\x31\\x24\\x7c\\xb1\\x53\\x8a\\xef\\xf3\\xec\\xa2\\xd5\\x0e\\x53\\xd6\\xd1\\x31\\x70\\xa7\\x6a\\x00\\x49\\xea\\x0c\\x05\\x90\\x4a\\x63\\x90\\xed\\x14\\xce\\x74\\x91\\xe9\\x7f\\x75\\x4c\\x52\\x22\\xda\\xc4\\xb6\\x11\\x8b\\xa3\\x81\\xf5\\x52\\xe7\\x3e\\xa8\\x49\\x1e\\x3b\\x7a\\xc9\\x49\\x56\\x9b\\x56\\x9c\\xf2\\xd2\\x9a\\x80\\x41\\x0e\\x06\\x5b\\x5c\\xc4\\xa4\\x66\\xbb\\x04\\xeb\\x7a\\x15\\xf5\\x96\\x79\\x2e\\x84\\x90\\xba\\x70\\x02\\xec\\x36\\x15\\x71\\xaf\\x5d\\x8f\\x57\\x67\\x5c\\x95\\x64\\x49\\x47\\x0a\\x2f\\x99\\x55\\x40\\x73\\x67\\xe4\\x09\\xa2\\x32\\x89\\x95\\x53\\x12\\x0a\\x27\\x7d\\xb8\\x63\\xe9\\xa8\\x2d\\xda\\xba\\xe8\\x7b\\x78\\x91\\x45\\xba\\x89\\x8d\\xf3\\xc2\\x8b\\x96\\xfb\\xe3\\x01\\x4c\\xd0\\x85\\xc6\\xe6\\x0e\\xe8\\x83\\x17\\x01\\x03\\x6d\\x99\\xc5\\x42\\x5d\\x58\\xe8\\xbc\\xc9\\xfd\\x92\\x71\\xd4\\x6a\\xec\\x1e\\xb9\\x55\\x13\\x01\\x02\\xea\\xaa\\xb4\\x4e\\x07\\x70\\xc3\\x0b\\x2b\\x12\\x7e\\xfb\\x0e\\x5f\\x8a\\x3f\\x7a\\x0c\\xa3\\x4e\\xc9\\x98\\x4a\\x46\\x01\\x1b\\xc2\\x6b\\xfd\\xe0\\xc0\\x81\\x9b\\xb5\\x47\\x06\\xb5\\x65\\x63\\x8b\\x75\\x42\\xdc\\x4b\\x8b\\xf8\\x09\\x8d\\xc0\\x1f\\x16\\x1b\\x3b\\x12\\x96\\x18\\xb5\\x9a\\xde\\xd3\\x3c\\xb5\\x9c\\xe9\\x18\\x9a\\x67\\x62\\xdb\\xae\\x5b\\x0d\\x34\\xb7\\x1c\\x8d\\xbf\"},\n{{0x51,0xcf,0x86,0x8f,0x82,0x0e,0xed,0xa0,0xdb,0xd1,0x01,0x80,0xf7,0x77,0xe6,0x06,0x5c,0x93,0xa4,0x83,0xc5,0x8a,0x77,0x8b,0x67,0xe7,0xd8,0x42,0x30,0x2f,0xb7,0x67,},{0xab,0x08,0x8f,0x50,0x2f,0xbc,0xf2,0x15,0x0e,0x48,0x46,0xb3,0x4d,0x2c,0x80,0x97,0xff,0x01,0x3c,0x02,0xa8,0xb9,0x7c,0xfc,0xf2,0xb9,0x5a,0x1c,0x72,0xdf,0x3e,0x24,},{0xe1,0x53,0x42,0xa1,0x1c,0xaf,0x89,0x28,0x95,0xe4,0x66,0x22,0x88,0x63,0xd0,0x83,0xb0,0x69,0x2f,0x01,0x06,0x10,0x74,0x8c,0x23,0xdf,0x2f,0x11,0xd2,0x94,0x75,0xba,0xfc,0xe9,0x27,0xca,0xfe,0x7f,0x07,0xef,0xb8,0xc3,0x47,0xed,0x56,0x63,0xe7,0x3b,0xea,0x89,0x53,0x1c,0xed,0xc0,0xc3,0x48,0xe7,0x9b,0x6e,0x58,0xa7,0x57,0x49,0x07,},\"\\x7c\\x2d\\x8e\\xe8\\x2d\\x9a\\xbf\\x8a\\xa9\\xc7\\x24\\xc7\\x5b\\x90\\x99\\x04\\x73\\xf1\\x31\\x76\\x3f\\xe9\\x3b\\x30\\xcb\\x04\\x72\\x35\\x88\\x62\\x1d\\xa2\\xa3\\x27\\x92\\x8b\\x22\\x64\\x9f\\xa0\\x62\\xcd\\xea\\xbd\\x77\\x76\\x15\\x38\\xb2\\x70\\x9b\\x8f\\xb7\\xa2\\x00\\x6e\\x50\\x35\\x09\\x13\\x4c\\x92\\x9c\\x30\\x11\\xe1\\xd7\\x28\\xa5\\x7a\\x4e\\x17\\x51\\x98\\x07\\x5e\\x21\\x42\\x53\\xf3\\xf3\\x0e\\x01\\xb6\\xe0\\x4e\\xab\\xd4\\xde\\x06\\x78\\x95\\x58\\xe6\\x98\\xb1\\x86\\xef\\xe3\\x4b\\x32\\x12\\x95\\x68\\xb3\\xe8\\xd0\\xd7\\xea\\x3f\\xf0\\x0b\\x3f\\x25\\xa4\\x22\\x36\\x89\\x3a\\xa8\\xa4\\x1b\\x67\\x4a\\x0a\\xb5\\xf4\\x1e\\x7b\\x28\\xcf\\x5a\\x7c\\xb7\\x65\\xe1\\x8e\\xad\\x6d\\xe6\\xa3\\x53\\xa7\\x82\\x4a\\x3c\\x49\\x78\\x60\\x38\\xd6\\xf4\\x93\\x7f\\x32\\x64\\xd6\\xcc\\xf0\\xc0\\xa2\\x46\\x5b\\xb6\\x93\\xe5\\x2b\\x3d\\x1e\\x6e\\xb9\\xae\\x4c\\xb6\\x5d\\x09\\xcf\\xf5\\x48\\x42\\xe8\\x53\\x62\\x85\\x7a\\x59\\xf7\\x19\\x8a\\x68\\x8a\\x3d\\xf3\\x85\\x13\\xcd\\xd6\\x1e\\x21\\xdf\\xd8\\x59\\x14\\x2c\\x83\\x44\\xa3\\xb8\\xb2\\xa7\\xc7\\xdb\\x17\\x0f\\x39\\xf8\\x7c\\xa3\\xff\\x8e\\xd4\\x27\\x96\\x2b\\x2b\\x1a\\x14\\xd1\\x22\\xfa\\x2d\\x5a\\xea\\x2a\\x66\\x40\\x11\\x7d\\xd2\\x58\\xfa\\x0f\\xc5\\x4a\\xc6\\xe9\\x40\\xbc\\x16\\xd2\\x11\\xec\\x9a\\xdf\\x91\\x4a\\xb1\\x65\\x78\\xf5\\x21\\xf6\\x55\\xd2\\x12\\x7e\\x79\\xe8\\x71\\xbf\\x7f\\xa7\\x54\\x47\\x19\\xd5\\x8e\\xd8\\x47\\x85\\x0c\\xb2\\x7b\\x99\\xeb\\x8f\\x29\\xb1\\x6c\\xdc\\xc2\\x8b\\x15\\xc1\\x25\\x9a\\xb4\\xd5\\x89\\x70\\x5a\\x40\\x66\\x88\\xf6\\x05\\xa2\\xeb\\xf5\\x80\\x51\\xc4\\x3a\\x77\\xc4\\xe0\\x1f\\xd6\\xf7\\x49\\xd3\\x2d\\xb4\\xe8\\x9f\\x26\\x3c\\x2c\\x16\\xde\\x18\\x1f\\x0e\\x6b\\xdd\\x0a\\x6a\\x64\\xff\\xe6\\xf1\\x82\\x94\\x44\\x09\\x6d\\x9f\\x3e\\x2b\\x67\\xe4\\xbb\\x00\\x66\\x50\\xb5\\x92\\x9d\\x1f\\x82\\xeb\\x11\\xbb\\xed\\x24\\xe8\\xf1\\x01\\x8a\\x73\\x84\\x60\\x5a\\x3c\\xf2\\x9a\\xb5\\x98\\x33\\x79\\x39\\xc7\\x6a\\x3b\\xe8\\x61\\xe4\\x83\\xc5\\x80\\x5e\\xc3\\xce\\xe4\\x5e\\x34\\x24\\x84\\x7a\\x08\\x55\\x8d\\xcc\\x99\\x49\\x9f\\xb9\\x38\\x2a\\xca\\xe5\\x6c\\xdc\\x87\\xfb\\xd5\\xb2\\x6f\\xf9\\x4c\\x86\\xf2\\xe1\\x08\\x79\\x43\\x83\\x50\\x1c\\x8b\\x33\\x36\\x68\\x50\\xa7\\x6a\\x0d\\xfc\\x0a\\x7c\\xd7\\x89\\xa0\\x3f\\x01\\xa3\\xe9\\xd9\\xe9\\xae\\x39\\xfd\\x72\\x45\\xdc\\x29\\x29\\x9d\\x24\\xf3\\xb4\\xb1\\x67\\xca\\xcc\\xd2\\x23\\xa9\\x9b\\x6b\\x20\\xa3\\xb6\\x73\\xdc\\x5f\\x74\\x66\\xd0\\xb2\\xf8\\x15\\x09\\x8a\\x49\\x7c\\xca\\xf8\\x04\\x20\\x16\\x8e\\xdd\\xbf\\x4d\\xa5\\x7b\\x86\\x66\\xe9\\xd3\\x3c\\x48\\xeb\\x30\\x4b\\x4c\\xfc\\xf4\\x57\\xcd\\x76\\x59\\x54\\x3f\\x6d\\x1e\\x66\\x18\\x90\\xf5\\x62\\xb4\\x3b\\x8b\\x6d\\x1c\\x4d\\xcc\\x07\\x7b\\x60\\xbf\\xa5\\x33\\xff\\xab\\x92\\x8d\\xbf\\xd9\\x55\\xdc\\x51\\x16\\xd7\\x70\\x95\\x0b\\x69\\x0e\\x21\\x06\\xad\\x52\\xd4\\x2c\\x31\\xc2\\x2b\\x88\\x48\\x89\\x43\\x32\\xb5\\xc6\\x99\\xe5\\xc3\\x31\\xfb\\x38\\x1e\\x58\\x12\\xe7\\x52\\x6f\\xdf\\x4b\\x8a\\xa2\\xda\\xaa\\x2c\\xa2\\xcf\\xb9\\xc9\\x21\\x11\\xb6\\x1c\\xbc\\x3d\\x1e\\xef\\x6c\\x8c\\x67\\x37\\xf0\\x55\\x88\\xf0\\x44\\x67\\xdb\\x83\\x30\\x84\\x3a\\xcc\\x98\\xdc\\x1a\\x16\\xfb\\xd9\\xd9\\xd9\\x4b\\xd8\\xbf\\xde\\x26\\xc3\\xf7\\x1d\\xee\\x72\\xb5\\x09\\x10\\xc3\\x6b\\x24\\x0f\\x80\\x2a\\x61\\xca\\x16\\x37\\x2f\\x6f\\xfa\\xad\\xb2\\xbe\\x4e\\x85\\x3c\\x5e\\xd6\\x9a\\x3d\\x1f\\x6c\\x7b\\x2d\\xe5\\x13\\xc5\\x3a\\x3f\\xdd\\x0a\\x67\\x6f\\x83\\xd0\\x9d\\x5c\\x51\\x17\\x60\\x47\\xd9\\x20\\x07\\x16\\xbf\\x22\\xba\\xe4\\x5f\\xe0\\x1b\\x3e\\x0c\\x2c\\x51\\xc1\\x6e\\x46\\xad\\x06\\x37\\xf7\\x9f\\x9b\\x4d\\x83\\x86\\x77\\x04\\xfe\\xda\\x9f\\x22\\x78\\x31\\xde\\xa2\\x63\\x39\\x9c\\xa2\\x77\\x1a\\x4e\\x78\\xb4\\xdf\\x8a\\xc0\\xde\\x6a\\x94\\x1e\\xab\\x37\\x0b\\x1f\\xdb\\x47\\xda\\xf6\\x64\\x2a\\xae\\xaa\\x63\\x17\\x0f\\xa9\\xb3\\xd1\\xe1\\x62\\x8f\\x7c\\x4e\\x7c\\xf0\\xea\\x8b\\x8a\\x8e\\x51\\x8c\\xba\\xce\\xf9\\xad\\xe8\\x4d\\xf0\\x32\\x48\\x48\\x47\\xff\\xb6\\x1b\\xbd\\x07\\xe8\\x72\\x7c\\xc4\\xc2\\x5d\\xa5\\x77\\xb2\\x64\\x51\\x9b\\x49\\x99\\xfa\\x7c\\x0b\\xc3\\x23\\xd4\\xf3\\xf9\\x73\\x9f\\x78\\x0b\\x9b\\x2c\\x23\\xc7\\x78\\x55\\xee\\x5f\\x6d\\xcc\\x40\\x15\\x44\\xd6\\xb6\\x4b\\x27\\x70\\x15\\x8f\\xdc\\x6c\\x12\\xf4\\xd8\\x9b\\xeb\\x04\\x4e\\x0e\\x85\\xac\\x7a\\x68\\xd4\\x29\\x17\\xb1\\x34\\x51\\x14\\xb9\\xa6\\x72\\xd1\\x23\\x1b\\x2c\\x6c\\x0f\\x96\\x9f\\x20\\x35\\x31\\xe7\\x1b\\xbb\\x40\\x05\\xb1\\x03\\xa7\\xdc\\x3a\\x58\\xb5\\xb8\\x24\\xa7\\xe0\\x1b\\x6e\\xb9\\xf4\\x96\\xdf\\xa6\\x4d\\x64\\xd8\\xc6\\x77\\x7f\\x53\\xaa\\x58\\xd5\\xda\\x04\\x6d\\x72\\x6f\\x55\\x45\\x4c\\x88\\xb6\\xd7\\xd4\\xab\\x0d\\x21\\x98\\xa8\\x97\\x09\\xf1\\x18\\xa6\\xb3\\x24\\x60\\xb9\\xeb\\xce\\xff\\x3f\\xdd\\xc6\\x05\\xda\\x77\\xef\\x3d\\x1b\\xa3\\x0f\\xec\\xf0\\x7b\\xe2\\xf5\\x31\\x3f\\x4e\\xe6\\x35\\xaf\\x5e\\x95\\x61\\xd8\\x77\\xe9\\x9c\"},\n{{0x54,0x3d,0x5f,0x1d,0x4a,0x6e,0x10,0x29,0xb1,0x91,0x41,0x38,0xfb,0x1f,0x46,0x59,0xe6,0x94,0x56,0x55,0x72,0x07,0x40,0x66,0x88,0xa2,0x03,0x5c,0xbb,0xb2,0xa6,0x8a,},{0x3c,0x83,0x79,0x0c,0x3b,0x45,0x53,0xde,0xae,0x4f,0x84,0x3b,0x50,0x1d,0x26,0xf6,0x16,0x70,0x93,0xee,0x54,0xe2,0x79,0x75,0x9f,0xfa,0xd8,0xcb,0xc0,0x61,0xe7,0x20,},{0x55,0x20,0x11,0x94,0x02,0x6f,0xd6,0x44,0x8b,0x1d,0x52,0xf8,0x3e,0xd2,0x0a,0xc2,0x84,0xe7,0xe7,0x7f,0xa9,0x2d,0x52,0x95,0xd3,0x38,0x25,0xce,0xa3,0xac,0xa4,0x7e,0xc7,0xaa,0xca,0x2f,0xc0,0x86,0x79,0xf9,0xac,0xfc,0xed,0xb3,0x76,0xfd,0xa4,0x61,0x9b,0xe3,0x27,0x2c,0x74,0x45,0xe8,0x70,0x5c,0x30,0x61,0x41,0xcd,0xe1,0x6c,0x0f,},\"\\xfe\\x00\\x57\\xf0\\x62\\xfc\\x87\\x13\\x24\\xb8\\xbd\\x5d\\x42\\x7e\\x9a\\x52\\x76\\x23\\x1b\\xd3\\x09\\x90\\x7e\\x58\\x81\\xd7\\xae\\x53\\xb1\\xf3\\x70\\xc2\\xa4\\x33\\x02\\xa1\\x65\\x10\\xb4\\x60\\x64\\xa3\\x07\\x36\\xba\\xc9\\x09\\x51\\xf1\\xd9\\x88\\x1a\\xf6\\x2c\\x70\\x14\\x83\\xeb\\xb9\\x27\\x2a\\xd7\\x72\\x12\\xee\\xb5\\xfc\\xbc\\x7e\\xc2\\x28\\xd9\\x69\\xf8\\x90\\x27\\x32\\x11\\x3b\\x98\\xe3\\xbf\\x82\\xdf\\xea\\xdd\\x0d\\xe5\\xe7\\x65\\xd2\\x87\\x0b\\x12\\xd1\\xf9\\xb5\\xa2\\x82\\x97\\xc9\\xfd\\xd1\\x49\\x5c\\xf8\\x77\\x89\\x19\\x6a\\x7d\\x64\\x4e\\xec\\xd9\\x35\\x87\\xdb\\xf2\\x0c\\x28\\xeb\\x09\\xda\\x28\\x66\\x03\\xc5\\x82\\xd2\\x12\\x9a\\x65\\x7d\\xb2\\xd1\\x7a\\xdd\\x35\\x58\\xdd\\xe0\\x29\\xce\\x27\\xb8\\x83\\x52\\xde\\x3f\\x95\\xab\\xa1\\x7e\\x1e\\xd1\\x91\\x37\\x22\\xdb\\x08\\xa7\\x95\\xdf\\xbb\\x70\\xd6\\x2a\\x88\\x02\\x72\\x4c\\xb0\\xf5\\x35\\xf8\\x48\\xd0\\x52\\xaa\\x3d\\xde\\x91\\x66\\x96\\x3a\\x80\\x41\\xfc\\xcc\\x4e\\x60\\xbf\\xb1\\x1d\\xe2\\xbf\\x28\\x6e\\xb6\\x02\\xa4\\xaf\\x84\\x2f\\x4d\\x1a\\x34\\x0d\\x78\\xbb\\xbc\\xb2\\x85\\x7f\\x0c\\x30\\x8f\\x44\\xbb\\x10\\x1e\\x7b\\xc8\\xb7\\x41\\xd5\\x06\\x09\\x4e\\x27\\xbb\\xaf\\xa7\\x24\\x28\\xef\\x66\\x6e\\xa6\\xea\\x16\\xf7\\x99\\xb4\\xee\\x58\\x27\\x8f\\x04\\x59\\x74\\xd8\\x6d\\xc7\\x2c\\xf5\\x26\\x0d\\x96\\xf9\\xc0\\x9b\\x2f\\x11\\x81\\xe1\\xa4\\x50\\x0f\\x92\\x83\\xdc\\x67\\x7f\\x38\\x4f\\xf6\\x4e\\x51\\xe8\\x9f\\x76\\x58\\x20\\x20\\x32\\x6c\\x38\\x8c\\x08\\xa0\\xfd\\x00\\xde\\x73\\xd5\\xd4\\x9c\\x06\\xc0\\xc6\\x84\\x19\\x1a\\x26\\x4f\\xff\\x72\\x6d\\x87\\x2d\\xc3\\xae\\x49\\x6c\\x7b\\x47\\x8c\\xfc\\x61\\xb5\\x17\\x14\\x19\\x2f\\x76\\x46\\x3e\\x3d\\x0a\\xab\\x41\\x0e\\xa1\\x15\\xe8\\xbe\\xfe\\xdb\\x99\\x7d\\xdd\\x16\\x99\\x21\\xb3\\x20\\x7e\\xa6\\x6c\\x1f\\x59\\x45\\x0b\\x76\\x23\\x12\\x9f\\xd1\\xe2\\xdd\\x3d\\xa8\\xf5\\x20\\x63\\x91\\x17\\x13\\x38\\xea\\x0e\\xc8\\xef\\x3c\\x59\\xed\\x8a\\xfc\\x69\\xf3\\x86\\x5c\\x29\\xa0\\x72\\x3a\\x9b\\xbe\\x95\\xa7\\x42\\x68\\x1e\\xf9\\x85\\x7e\\x81\\xab\\xc8\\x0c\\x92\\xd2\\xa7\\x18\\xa8\\x04\\xf5\\x30\\x4f\\xef\\x3c\\x63\\xd7\\x99\\xa6\\xef\\x87\\x82\\xa7\\xdb\\x46\\x68\\x1d\\x0d\\xe3\\x50\\x64\\x46\\x98\\x22\\x67\\xb2\\x15\\x2b\\x0c\\x32\\x18\\x69\\xe2\\x3c\\xce\\x8c\\x4e\\xbe\\xbe\\xaf\\x4a\\xa1\\xeb\\xe9\\x28\\x3b\\x69\\x26\\x05\\x26\\x0f\\xf6\\x21\\xb0\\x3c\\x10\\x82\\x2a\\xa5\\xf6\\xd0\\x3b\\xde\\xf4\\x9c\\x46\\x2a\\x68\\xd4\\x71\\xe8\\x49\\xe1\\x64\\xe3\\x87\\x4f\\x6e\\x9f\\x6c\\xb3\\xb5\\xf2\\x93\\xeb\\x38\\xae\\x52\\x45\\xa1\\x59\\xec\\x42\\x61\\xa9\\xbf\\x6b\\x5f\\x7b\\x76\\x15\\xfd\\x33\\x9e\\xa1\\x27\\x33\\x11\\x3c\\xe7\\x67\\xf8\\x83\\xae\\x66\\x75\\x41\\x7f\\xc7\\x70\\xb5\\x0b\\xd6\\x0e\\x6f\\x20\\xad\\xdb\\x29\\xc1\\xf7\\x50\\x62\\x33\\xe3\\x2a\\x7e\\xbf\\xad\\xab\\xff\\x98\\xcf\\xd0\\x9b\\x2b\\x3b\\xbd\\x3e\\xae\\x00\\x69\\x54\\x8b\\x9d\\x89\\x87\\xaf\\x46\\xca\\x98\\xeb\\x09\\x5b\\xac\\xbd\\x87\\x47\\x24\\xba\\x10\\xf3\\x63\\x3a\\xa0\\x8a\\xb6\\xec\\x26\\x49\\x4d\\xdf\\x68\\x54\\x30\\x9b\\x55\\xd4\\x3b\\xdb\\xd2\\x9a\\x75\\x56\\xf1\\x2d\\xfb\\x23\\xcd\\x0d\\xb4\\xeb\\x39\\x37\\xa6\\x5c\\x4a\\xed\\x96\\xe8\\x7b\\x34\\x65\\x55\\xf9\\xfc\\x68\\x97\\x94\\x3a\\x0f\\xae\\xe6\\x5c\\xcf\\x39\\x4b\\xd8\\x9b\\x38\\x1b\\xee\\xce\\x25\\xd1\\xba\\x68\\xf8\\xfe\\x32\\xc2\\x3b\\x33\\x54\\xf5\\xbe\\x7e\\x3e\\xa3\\xc0\\xde\\xc0\\xf7\\xec\\x2d\\xd8\\x3f\\x92\\xb7\\x30\\x58\\x89\\x2b\\x63\\x8d\\x4c\\x3b\\x72\\x42\\xbb\\x8f\\x55\\xbf\\x08\\x7b\\xa4\\x5a\\x19\\x0a\\x69\\x8b\\xae\\x67\\x5e\\x0c\\xd5\\xe8\\x44\\x6f\\x2b\\x21\\xae\\xb6\\x3d\\x2c\\xae\\xa0\\xf6\\x79\\xa8\\x37\\xe7\\x93\\x57\\x30\\x8d\\x9f\\x0b\\x8a\\xf3\\x1f\\x9d\\x08\\x00\\x8c\\x39\\xee\\x8d\\x34\\x75\\x28\\x71\\x3c\\x88\\x50\\x01\\x7a\\x7f\\x4a\\xb9\\x8a\\x35\\xc7\\x53\\x19\\x40\\xfa\\x76\\x21\\xe6\\x72\\x03\\xee\\x78\\x2d\\xb3\\xa2\\xfa\\xa3\\x0f\\x3a\\xa8\\x50\\xa5\\xff\\x7a\\xae\\xd8\\x4c\\x00\\xff\\xd2\\x14\\xf2\\xc9\\x26\\x17\\x35\\xfa\\xc3\\x25\\x9d\\x50\\xe0\\x3c\\x26\\x52\\x50\\x52\\x79\\xd9\\x12\\x51\\x92\\x7d\\xe5\\xe5\\x6a\\x8b\\x90\\x64\\xcc\\xf9\\xf4\\x5d\\xcb\\xef\\x46\\xe1\\x18\\x9c\\xed\\x2b\\xc7\\x9e\\x6f\\xf6\\x52\\xe6\\x90\\x97\\xac\\xe5\\x56\\x8b\\xb2\\xd5\\xbe\\xf3\\xce\\x21\\xa2\\x5b\\x3f\\x79\\xee\\x27\\x5e\\xa3\\x4e\\x62\\x13\\x80\\x56\\x6d\\x70\\x4c\\xd9\\x3f\\x24\\xdd\\x90\\x20\\x93\\x2c\\xc0\\x52\\x18\\xc2\\x3b\\x5b\\x22\\xff\\xfa\\x7e\\x99\\xee\\x7f\\xe4\\x57\\x87\\x6a\\x5e\\x33\\x64\\xc9\\xa8\\xe8\\xb0\\x49\\xcf\\xa2\\x09\\x69\\x77\\x4f\\x50\\x6d\\x19\\x96\\xcb\\xe6\\xef\\x5a\\x37\\x79\\x3e\\xcd\\xb0\\x4c\\xfd\\xea\\xed\\x7d\\xcf\\x79\\xab\\x27\\x84\\x74\\xdd\\x77\\x08\\x22\\xd4\\xb3\\x6f\\xc6\\x8e\\x4b\\x2d\\xd6\\x61\\xef\\x99\\xde\\x01\\xde\\x6e\\xec\\x57\\xfa\\x57\\x3e\\xde\\x10\\xfb\\xbd\\x5a\\xc6\\xfd\\x6c\\xd8\\xbb\\x4e\\xee\\x50\\x9d\\xbb\\x46\\x10\\x37\\x44\\x01\"},\n{{0xf8,0xd2,0x57,0xfd,0xfc,0xf9,0x97,0x96,0xf8,0xce,0x4d,0x8a,0xad,0xe3,0xb2,0x25,0xa5,0x3c,0x26,0xfe,0xec,0xef,0x39,0x5b,0x95,0x61,0xd9,0xd5,0x87,0xf5,0xa3,0x3c,},{0xf6,0x6b,0xd4,0x87,0x7d,0xf7,0x8a,0xec,0x04,0xca,0x7e,0x77,0x73,0x28,0x99,0xde,0x06,0x77,0x7e,0x69,0x86,0x29,0xf2,0x99,0x69,0xf8,0xfa,0x9c,0x2f,0x47,0xab,0x9e,},{0x92,0x35,0xd4,0x48,0x07,0x86,0x98,0x16,0xe2,0x8e,0x42,0xc8,0x1c,0x80,0x1f,0xfb,0x12,0x1d,0xe8,0x26,0xc0,0xd3,0x3d,0xcc,0x4a,0x4e,0x1c,0x93,0x2d,0x52,0x28,0xb6,0x39,0xbb,0x29,0x4e,0x16,0x09,0x0a,0x93,0xd1,0xf6,0x90,0x4a,0x70,0x04,0x22,0x2f,0xda,0x0a,0x55,0x44,0x6d,0x99,0x01,0xc7,0x23,0x40,0x00,0x7b,0xb4,0x5a,0xe1,0x03,},\"\\x23\\x3e\\x1e\\xf9\\x01\\xab\\xcb\\x69\\xfb\\x48\\x60\\x85\\xd8\\xdb\\x02\\x33\\xff\\x78\\xf3\\x7b\\x13\\x6f\\x0a\\xfe\\x24\\xf7\\xda\\xc1\\x94\\x4c\\x36\\x78\\xe7\\x4f\\xed\\x58\\xa1\\xad\\x54\\x83\\x5b\\x7d\\xbc\\xb4\\x6f\\xff\\x6c\\x35\\x24\\x31\\x22\\x73\\x30\\x0b\\x6d\\x87\\x8a\\x93\\xe0\\x60\\x8a\\x4a\\xba\\xca\\x4e\\x31\\x94\\x72\\x2b\\xb9\\xe2\\x3d\\x17\\x19\\x4d\\x86\\x67\\xb8\\x4f\\x2d\\xb0\\x38\\xc2\\x4e\\xfb\\x8f\\x53\\x40\\x9c\\xf5\\x59\\x4f\\xdd\\xb8\\xbc\\xd6\\x1f\\x74\\xcf\\x07\\x26\\xb5\\x1c\\x65\\x1c\\xe0\\x1e\\xb6\\x6a\\x59\\xb4\\x55\\xf7\\xd8\\xa7\\xd6\\x0d\\x39\\x27\\xe0\\xc6\\xc5\\x4b\\x13\\x8e\\x01\\x92\\x53\\x71\\xd2\\xd9\\xd9\\x62\\xaa\\x98\\x2f\\x5e\\x60\\x85\\x28\\x0c\\xc0\\x5f\\x35\\x69\\x93\\x91\\x1f\\xd2\\x03\\x9d\\xfc\\x34\\x21\\x17\\x97\\x02\\x91\\x38\\x1d\\x82\\x02\\x7d\\xb3\\x6c\\x79\\x91\\x00\\x05\\x7d\\x93\\x52\\xb2\\xcd\\x87\\x9d\\x9c\\x82\\xaf\\x73\\x4b\\x7f\\xa2\\x97\\xd2\\x11\\x49\\xc9\\x78\\xaa\\x5e\\x12\\x5b\\x20\\x37\\x2a\\x9b\\x2e\\x0e\\xd3\\x57\\x33\\x7e\\xfa\\xea\\x13\\x91\\xf3\\xb9\\xef\\x11\\xe3\\xe5\\x13\\x5b\\xb7\\x0b\\xdb\\xe3\\x2a\\x9b\\xdb\\x7c\\x3c\\x42\\xd5\\xd5\\x7c\\xc8\\xda\\xb6\\x81\\x16\\x28\\xa0\\x10\\x89\\x49\\x5c\\xb8\\xa4\\xa7\\x6a\\x48\\x29\\x6c\\xd8\\xdf\\xaf\\xc0\\x05\\xad\\x49\\xd7\\x0b\\xb1\\x9f\\xac\\xa2\\x08\\x4a\\x1b\\x6f\\x5e\\x48\\xd2\\x3c\\x03\\xfb\\xcf\\x6f\\x10\\x6d\\xb7\\x70\\xf0\\x7c\\x33\\xe8\\xe7\\xf4\\x75\\x7d\\xa9\\x04\\xa4\\x4d\\xd0\\xe7\\x38\\xf3\\xd5\\x73\\x3a\\x32\\x93\\x75\\xce\\xd7\\x4f\\x3c\\x42\\xbf\\xcd\\xbb\\x91\\x01\\x00\\x45\\x5d\\x6a\\xa7\\xd2\\xe3\\xe3\\xaa\\xa5\\x8a\\x82\\x96\\x30\\xd3\\x76\\xb0\\xb4\\x66\\xdc\\x85\\xaa\\xc4\\x8f\\xe2\\x69\\x94\\x6a\\x7b\\xc7\\x2d\\x91\\xeb\\x37\\xde\\xd2\\xf4\\xa7\\x7c\\x68\\x4b\\xe0\\x10\\x93\\xfd\\x12\\xde\\x9d\\x9d\\x83\\x19\\x9c\\xcc\\x50\\x95\\x9a\\x48\\xd6\\xe9\\xa4\\x14\\x27\\x56\\x60\\x92\\xf0\\x4a\\x0f\\x95\\xca\\x52\\x37\\x2e\\x07\\x62\\xb9\\x66\\xce\\x62\\x32\\x05\\x5a\\x4f\\xd7\\x57\\xc6\\x1b\\x8b\\xad\\x83\\xba\\xef\\x91\\xa3\\xc2\\x77\\x2f\\xb3\\x2e\\xad\\x8f\\x59\\x1a\\xc1\\xe0\\x2b\\xbf\\x90\\xa7\\xf6\\xc3\\x90\\x79\\xb8\\x6f\\xb8\\x14\\xcc\\x24\\x2e\\x98\\x0f\\x0b\\x8b\\x1a\\x2c\\xec\\xb8\\xe6\\xd4\\xe8\\xa5\\x21\\x1b\\xf8\\xba\\xbf\\x38\\xe8\\x29\\xab\\x98\\x83\\x60\\x8b\\xd6\\xd5\\x9e\\xa5\\xe8\\x36\\xa9\\xb4\\xa4\\xfb\\xed\\xed\\x1b\\xea\\x2f\\xfe\\x97\\x7e\\x8c\\xf3\\x61\\x5c\\xa4\\xa5\\x0f\\xea\\x1f\\x05\\xf1\\xfe\\x53\\xc8\\xea\\xc5\\x00\\x32\\x3e\\x1f\\x52\\xa8\\x06\\x83\\x15\\x39\\x95\\x79\\x88\\xd7\\x9a\\xcc\\x7b\\x54\\xf7\\xd0\\x2b\\x48\\x0c\\x46\\x9f\\xd6\\x95\\x40\\xfe\\xa4\\xbd\\xd6\\x8c\\xbd\\xc6\\x8c\\xf9\\xc7\\x87\\x2f\\xd7\\x92\\x59\\x1b\\x01\\xe9\\xd9\\x90\\x2d\\x8a\\x61\\x4f\\x4c\\x21\\x82\\x3f\\x23\\x50\\x8f\\xfd\\x49\\xff\\x21\\x8b\\xea\\x92\\x2e\\xc1\\x41\\xef\\xf6\\x0d\\xa1\\x77\\xcc\\xad\\x7d\\x7b\\x9d\\x44\\x4f\\x3b\\x03\\x45\\x81\\x15\\xf1\\x16\\xcc\\x6e\\x37\\x62\\x5c\\x39\\xcb\\xad\\xf0\\x93\\x62\\xf3\\x1d\\x33\\xf4\\xc1\\x3c\\x33\\xb6\\x29\\x20\\x07\\xf2\\xca\\xfd\\x19\\x4f\\x62\\xc6\\x43\\xe7\\xa2\\x55\\x71\\x56\\x4f\\xeb\\xad\\x7d\\x33\\xe3\\x64\\xb6\\x33\\xd0\\x08\\xb0\\x90\\xd7\\xa0\\x91\\x35\\x8b\\xc6\\x9c\\x56\\x7b\\x95\\x22\\xb5\\xc1\\xcd\\x01\\x21\\x8d\\x38\\x52\\x9a\\xeb\\xb0\\x3d\\x9c\\x2a\\x5e\\xb2\\x28\\x5a\\x71\\x76\\xf9\\x8c\\x28\\x03\\x6f\\x21\\xe1\\x9e\\x92\\xb4\\x06\\xe9\\x48\\x95\\xfa\\x28\\x1b\\x35\\x22\\x8f\\xbf\\x76\\xe7\\x3e\\x17\\x58\\xaf\\x1b\\x43\\x4a\\x4d\\xf9\\x8e\\x8c\\xc5\\x56\\xb9\\xd8\\x3f\\x6b\\x0b\\x7f\\xf5\\x2c\\x68\\x0f\\x65\\xef\\xe4\\xe0\\x0c\\x59\\xb4\\x6c\\xe5\\x93\\xbf\\x98\\x89\\x98\\x05\\xd0\\x2b\\x91\\x65\\xb7\\x42\\x98\\x49\\xe7\\x39\\x53\\x77\\x0a\\xe3\\x93\\xe4\\xf1\\xf9\\x7c\\xb9\\x0c\\xd6\\x15\\x9c\\xc9\\x39\\x52\\xae\\x8a\\x4d\\x3d\\x56\\xa9\\xa9\\x5d\\xf7\\xcf\\xab\\xac\\xd4\\xd0\\x30\\xd7\\x36\\xea\\x45\\x4d\\xfa\\x4b\\x4a\\xed\\x1b\\xcd\\x88\\x5d\\x2f\\xbe\\xa5\\xff\\xa2\\xcf\\x29\\x27\\xc1\\x37\\xc8\\x6b\\xe4\\xfe\\x01\\x64\\x12\\x62\\x8f\\xe7\\xa0\\xa0\\xf0\\x2b\\x6b\\x6a\\x9a\\x21\\x68\\x93\\x2b\\x94\\x3f\\xf8\\xb2\\x8d\\xd5\\x87\\xe7\\x72\\x87\\x79\\x0a\\xaa\\xa6\\x9a\\x98\\x50\\x6c\\x76\\x4e\\x6f\\x5b\\xa6\\x33\\x8c\\x09\\xf3\\x82\\xe1\\xb9\\x87\\xd9\\x9f\\x14\\xa3\\xe1\\x95\\x8c\\xb6\\x2a\\xe6\\x70\\x5a\\x57\\x7f\\x9f\\xfc\\x67\\x30\\x64\\x01\\x12\\x87\\x41\\xa8\\xd0\\xaf\\x03\\xc0\\xaa\\xaf\\x6a\\xf0\\x6b\\xd8\\x8e\\xe4\\xb0\\xaf\\x67\\x03\\xe0\\xea\\x60\\xb0\\x40\\x9a\\xce\\x24\\x57\\x2f\\xb3\\x86\\xe0\\x7e\\x9c\\x22\\xc9\\x68\\x6b\\xdc\\x66\\xd4\\xfc\\xf3\\xc7\\x46\\x1d\\x38\\x33\\xa4\\xc3\\x01\\x32\\x43\\x60\\x7d\\x4d\\x15\\x82\\x17\\x18\\x73\\x26\\xdf\\x51\\x72\\x5a\\x6b\\xc5\\x11\\x6e\\x99\\x0b\\xef\\x8a\\x5a\\x95\\x79\\x60\\x02\\x07\\x20\\x6b\\xfc\\x3a\\x6d\\xcf\\x07\\x46\\xef\\x75\\x6f\\xd9\\x39\\xe1\\x87\\xf6\\x68\\x75\\x07\\x16\\xc0\"},\n{{0x8d,0xa9,0xf5,0x4d,0xa0,0xb6,0xa5,0xa3,0x89,0x85,0xb8,0x8b,0x71,0x33,0x9d,0xc7,0x38,0x4c,0xfd,0x5a,0x60,0xbe,0xe1,0x59,0xc3,0x94,0xc2,0x23,0x63,0xbc,0x7e,0xdd,},{0x1a,0xc1,0xa8,0xed,0xeb,0x21,0x7a,0xe9,0xb3,0xa3,0xde,0x53,0x0d,0x24,0xd8,0x3e,0x11,0xfb,0x65,0x38,0xcc,0x70,0x9b,0x52,0x99,0x4f,0xa9,0xc3,0xf1,0xfa,0xdd,0xc8,},{0xf6,0xdc,0xc2,0xd2,0x7b,0xaf,0x16,0xc4,0xf4,0x81,0x7f,0x87,0x49,0x91,0x57,0xd3,0xac,0x1f,0x84,0xed,0x39,0x8a,0x5e,0x8b,0x0d,0x50,0xf4,0x2e,0xdd,0x73,0x85,0xcf,0x06,0x33,0x7a,0x02,0x36,0x10,0x99,0x70,0xb7,0x9c,0xa0,0x9d,0x7c,0x98,0x31,0xc8,0x76,0xa8,0x02,0x79,0x94,0x21,0xc2,0xab,0xd0,0x75,0x87,0xf5,0xeb,0x66,0x16,0x0f,},\"\\xbd\\x53\\xba\\xba\\x66\\x57\\xd8\\xdb\\x8b\\xec\\xae\\x6e\\xab\\xff\\xa5\\x2b\\x01\\x5a\\x5a\\x05\\xfd\\xd2\\xe0\\x70\\x64\\x7d\\xe9\\x6f\\x9c\\xa4\\xdd\\x21\\x9f\\xe0\\xda\\x60\\x8f\\xa0\\x44\\x7f\\x46\\xd1\\x7c\\x9a\\x35\\x82\\x44\\xcd\\x54\\x08\\x59\\x65\\x82\\xcc\\xd3\\xcd\\xd0\\x15\\x1d\\x6f\\x09\\x23\\xe6\\x3d\\x16\\x68\\x37\\x84\\x5f\\x27\\x3f\\xca\\x7a\\xf6\\xc8\\x9d\\x8d\\x52\\x46\\x17\\x5c\\x21\\x67\\xfb\\xb9\\xc2\\xeb\\xf6\\xa7\\x59\\x54\\x91\\xf9\\x7a\\x97\\x13\\xb0\\x2b\\xdf\\x41\\x3e\\x20\\x9a\\xb2\\x2d\\xb7\\xdd\\x2b\\x37\\xfc\\x49\\x43\\x69\\x18\\xcc\\xeb\\xe5\\x74\\x6b\\xc6\\x4d\\xdd\\x6d\\xce\\x19\\xec\\x45\\x58\\xc4\\x0e\\x08\\x96\\xe2\\x19\\x09\\x28\\x0c\\xba\\x06\\xd1\\x6b\\x72\\xf3\\x1d\\x98\\x76\\x85\\xd0\\x71\\xdb\\x81\\x55\\xe9\\x9e\\xbc\\xc6\\xc8\\x21\\xd9\\x26\\x83\\xfd\\xce\\xe0\\x86\\x68\\xa5\\xed\\x58\\xf8\\x39\\xd9\\xed\\xaf\\xb9\\xf1\\x45\\x9d\\x48\\xde\\x8e\\x1b\\xb6\\xf7\\xce\\x84\\xda\\x0b\\xe4\\x11\\xc8\\xf7\\xbe\\x1b\\x9a\\x24\\xbc\\x5d\\x0f\\xe3\\xa9\\x6b\\x02\\x35\\x07\\x50\\xa5\\xcb\\x25\\x0b\\x49\\x55\\x5a\\x48\\x76\\x72\\xbd\\xff\\x3c\\x3f\\x78\\x4e\\x3f\\xb6\\x3c\\x1c\\x97\\xba\\x6a\\xe4\\x3a\\x10\\xe1\\x96\\xf1\\x88\\xdc\\xc6\\x35\\xe2\\x14\\xe2\\x9d\\xf5\\x09\\xe5\\x60\\x8a\\x53\\x67\\xaa\\x28\\x00\\xc1\\xa9\\x6a\\xd9\\x36\\xa9\\xe2\\xa5\\x79\\xb8\\x59\\x2e\\xc1\\x3a\\x35\\x93\\x36\\xa6\\x27\\x88\\xc3\\xec\\x55\\xc0\\xff\\xd6\\xa7\\xd4\\x9e\\xcb\\x7c\\x68\\x2e\\xfa\\x30\\x81\\x99\\xf7\\x08\\xd7\\x9d\\x0e\\x88\\x56\\x36\\x6d\\x26\\x9f\\xab\\x24\\xeb\\x1a\\x07\\x5c\\x96\\xc8\\x81\\xca\\xb8\\x97\\x08\\xce\\xd2\\x79\\x23\\x0d\\x3f\\x1f\\x3e\\xe1\\x73\\x67\\x22\\x83\\xeb\\x8d\\x8a\\x82\\x40\\x38\\xf6\\x48\\xac\\x43\\x72\\x75\\xd7\\x5a\\x0e\\x15\\xf7\\x1c\\xe5\\x6a\\x8a\\xeb\\x77\\x1f\\x07\\xa7\\xf3\\x2a\\xfc\\x9d\\x61\\x2a\\x13\\xbd\\x83\\xb7\\xf9\\x39\\x90\\xd3\\x8f\\xc3\\xf4\\xf4\\xab\\x8a\\xa9\\x43\\x0c\\x65\\x73\\x6e\\xb6\\x4b\\x16\\x80\\x6e\\x99\\x5c\\x1c\\xe9\\xdc\\xf4\\xc5\\x54\\x4e\\x7b\\x3d\\x01\\x54\\x1c\\x57\\x21\\xbb\\x4b\\xe4\\xcf\\x0a\\xe3\\x82\\xa0\\xc1\\xb1\\x69\\xd8\\xe4\\x18\\xde\\xfd\\x55\\x94\\x42\\xac\\xea\\x14\\xb0\\x0d\\x70\\x5b\\xcf\\xa7\\x8b\\xe0\\x75\\x6a\\x8f\\x37\\x7c\\xbf\\x18\\x3b\\xf2\\x59\\x06\\x87\\x41\\x15\\xd8\\xce\\x4c\\x3b\\xa8\\x74\\x10\\x29\\x38\\xa4\\xea\\x16\\x03\\x6d\\x91\\xa4\\x2c\\x5f\\x8f\\x18\\x86\\x55\\xca\\xcb\\x00\\xc8\\x8e\\x3a\\x68\\x50\\x88\\x16\\xe5\\xe1\\xc3\\x1d\\x27\\x18\\x0b\\xbb\\xa9\\x51\\x8a\\x96\\x30\\x72\\x6d\\x7d\\x04\\x7d\\xd8\\xd2\\xc0\\x40\\x12\\x19\\xe1\\x4e\\x6b\\xad\\xfc\\x9b\\x95\\xb7\\x7a\\x6a\\xce\\x9b\\xea\\x71\\xd1\\xb4\\x7c\\x21\\x89\\x03\\xa1\\x15\\xad\\x02\\x9e\\x7f\\x20\\x39\\xea\\x23\\xcf\\xd1\\xfa\\x6a\\x44\\xd0\\x89\\xfc\\xac\\xb6\\x78\\x15\\x3d\\x67\\x4c\\x0e\\x08\\x17\\x64\\x99\\x55\\x95\\xcb\\x68\\x94\\x89\\x5f\\x08\\xe2\\x5b\\x98\\x4e\\x3a\\x69\\x4c\\x92\\xfc\\x7c\\xbe\\x0f\\xfc\\x46\\x97\\x23\\x0b\\xcb\\x0c\\xa4\\x08\\xc2\\xd7\\x08\\x5c\\x11\\xba\\xde\\xb3\\xe6\\xc0\\xe7\\x5e\\x6c\\x49\\x8d\\xb1\\xbe\\xc1\\xed\\x2a\\x3e\\x24\\x45\\xc3\\x2b\\x19\\x13\\xa8\\x95\\x00\\xf6\\x9e\\x7f\\x23\\xf4\\x1d\\x62\\xe5\\xc1\\x89\\xf3\\x9a\\x05\\x6c\\xb9\\xfc\\x68\\xa4\\x52\\x02\\x3a\\x33\\x3f\\x75\\x22\\x0c\\xb9\\xb9\\x44\\x84\\xac\\xac\\x6b\\xbc\\x67\\x1f\\x59\\xff\\xa0\\x72\\xb7\\x1a\\x18\\x96\\xa1\\xb3\\x06\\xe9\\xdc\\x55\\x8d\\xa0\\xec\\x20\\xf3\\x73\\xe4\\xc3\\x55\\xe0\\xc5\\xec\\xcb\\xbf\\x13\\x50\\xc8\\xc0\\x79\\x14\\x89\\x2c\\x45\\x4d\\xef\\xce\\xfb\\x71\\x7b\\xe3\\x4d\\x08\\x7a\\xeb\\x24\\x4a\\x86\\xff\\x49\\xa6\\xc4\\x70\\xaf\\xb3\\x6b\\x40\\xfe\\x8b\\x71\\xc5\\x05\\xa4\\xff\\x7a\\xf2\\x98\\x4c\\x65\\x28\\x49\\x38\\xec\\x0e\\x40\\x52\\x31\\x52\\x1f\\x48\\x10\\x14\\x7d\\xc4\\xe3\\x73\\xfd\\xab\\x66\\x47\\xb8\\x6f\\x79\\x82\\x75\\x02\\xfd\\x08\\x7e\\x27\\xf3\\x10\\xd6\\xb3\\x12\\x36\\x31\\x13\\x84\\x21\\x55\\xc5\\x7a\\x32\\xba\\x03\\xb6\\xcf\\xf9\\x65\\x53\\x0b\\xd7\\x95\\xfc\\x29\\x2e\\x24\\x1c\\x9b\\x6c\\xa0\\x85\\x14\\x00\\x32\\xef\\xe7\\x46\\xf3\\x7d\\x57\\xe9\\x58\\x42\\x11\\x84\\xb8\\xa4\\xc1\\xa6\\xa1\\xe3\\x7d\\x45\\xe0\\x77\\x31\\x98\\x33\\x06\\x8d\\xdc\\xb8\\x9d\\x38\\xc7\\x5b\\xeb\\xa1\\xa6\\xe8\\xe4\\x05\\x28\\x88\\xec\\x18\\x16\\x2d\\xd6\\xff\\x0c\\x59\\xa2\\xfd\\x0b\\x47\\xf3\\x11\\x91\\x95\\x68\\x0f\\xfc\\xcd\\xdf\\x5f\\x76\\xb3\\x5f\\x02\\x2a\\xa6\\x6b\\xd1\\xac\\x56\\xf1\\xae\\x33\\x3e\\x9b\\x9d\\x04\\x6f\\x0b\\x79\\xa8\\x92\\xec\\xc4\\xf8\\xd2\\xf3\\x1e\\x17\\x53\\x6c\\x4c\\x62\\xa9\\xb5\\xe0\\x63\\xdd\\x2d\\xce\\x37\\xd3\\xd0\\xac\\xb4\\x20\\x23\\xeb\\x2f\\x2e\\xa3\\x29\\xd3\\x87\\x6c\\x23\\x86\\xa0\\x22\\x76\\xff\\xf9\\xd3\\x08\\xab\\xba\\xdb\\x72\\x74\\x30\\x1a\\x69\\x62\\xec\\xae\\xeb\\x20\\xbe\\xf5\\xe3\\x6a\\xff\\xfc\\x38\\x7c\\xa8\\xe1\\x85\\xe5\\x62\\xb8\\x65\\xb4\\x92\\x04\\xc1\\x7b\\x2a\\x70\\x11\\x9b\\x06\\x1c\\x29\\xc0\\xfe\\x90\\x04\"},\n{{0x7a,0x2e,0xfd,0x39,0x01,0x24,0xd3,0xfb,0xef,0xc5,0x4a,0x57,0x71,0x06,0xe7,0x4b,0x2d,0x1f,0x5d,0xd5,0x04,0xc0,0x50,0xd0,0xd3,0x59,0xe5,0x3c,0x0f,0x5c,0x87,0x2b,},{0xef,0xc3,0x03,0xd9,0x22,0xe8,0x8f,0x70,0xf3,0x8c,0x1a,0x2b,0x92,0x06,0x84,0xef,0x66,0x30,0x34,0xa1,0xb2,0x3a,0xb9,0xd6,0x9b,0x6c,0xe8,0xed,0x87,0x06,0xf7,0xf7,},{0xc2,0x8b,0x34,0x80,0x48,0x05,0xd8,0x1f,0x7a,0xef,0x78,0x49,0x70,0x67,0x0e,0xda,0xa4,0x17,0x23,0x2b,0xcc,0x67,0xda,0x9b,0x51,0xe9,0xc3,0xd7,0x4f,0xc4,0x99,0x1b,0xde,0x97,0xa0,0x6b,0xd5,0x3f,0xa0,0x0b,0xb4,0x40,0xfd,0x56,0x16,0xcd,0x0d,0xe6,0xe9,0xb0,0xd1,0x9f,0x2f,0x68,0xbf,0xaf,0x9d,0x4c,0x51,0x72,0xc4,0xe5,0x20,0x0a,},\"\\x23\\x8f\\xbe\\x9f\\xb3\\x5c\\x72\\x5c\\x6c\\x1f\\x32\\x92\\x48\\x09\\x4b\\xc7\\xda\\x1b\\x27\\x3e\\xdc\\x76\\x99\\xa7\\xe3\\x45\\x2b\\x57\\x88\\xd8\\x78\\x67\\xde\\xfc\\x40\\xa0\\x05\\x90\\xe8\\x75\\x80\\xd2\\xc0\\x27\\x5d\\xf5\\xab\\xcc\\xe0\\xe1\\xaa\\xa1\\x82\\x90\\xbf\\x93\\xb4\\x4e\\x5a\\xd9\\xd7\\x60\\xdd\\x21\\xf1\\xaa\\xca\\x38\\x31\\x78\\xf9\\xff\\xf9\\x13\\x0f\\x73\\x18\\x7b\\xa9\\xd3\\x1e\\xa3\\x60\\x4a\\x1c\\xdf\\x39\\x11\\xe1\\x43\\x77\\xa0\\xce\\x8b\\x44\\x18\\x9a\\xda\\xa7\\xaa\\xc2\\x3b\\x6c\\xdc\\x7a\\x42\\x5b\\x7e\\xa7\\x45\\x50\\x84\\x55\\x70\\x4f\\x9a\\xd7\\xa8\\x95\\x27\\x18\\xc3\\x98\\xb4\\x21\\xb6\\xe0\\x9c\\xb7\\x8c\\xb5\\x2a\\x18\\x14\\xee\\x2e\\x96\\x39\\xec\\x68\\xd3\\x61\\xf0\\xa3\\x20\\x41\\xd6\\xe7\\x42\\x5b\\x4b\\xb3\\x3c\\x70\\x19\\x6e\\x24\\x00\\xeb\\x81\\x2d\\xb8\\x50\\x6c\\x9f\\x32\\x45\\xbd\\x98\\x8f\\xbc\\x89\\x1b\\xe2\\x0c\\xb0\\x69\\x15\\x59\\xfc\\x91\\x6b\\x57\\xff\\x96\\xc9\\xb1\\x44\\x89\\xe0\\x99\\x3c\\xb7\\x39\\xa3\\x9d\\xa2\\x46\\xd0\\x1a\\x6e\\xbd\\x07\\x58\\x35\\x81\\xf2\\x50\\xbf\\x48\\x0b\\xc4\\x4b\\x2c\\x33\\x91\\x54\\x2d\\x59\\x5e\\x4d\\x39\\x94\\x90\\x19\\x5f\\x84\\x45\\xdf\\x63\\x8f\\x34\\x69\\x8f\\x1a\\x96\\xed\\x27\\xb3\\x53\\x3e\\x3e\\xb6\\x7e\\x8f\\x86\\x58\\x65\\xfa\\x95\\x55\\xed\\x34\\xdf\\x11\\x15\\x76\\x41\\xa0\\x0e\\x6d\\x60\\xcf\\x62\\x3f\\xec\\x1a\\x92\\xb8\\x7a\\x15\\xd7\\x65\\x18\\x5f\\xd9\\x05\\x5a\\xcb\\x38\\xd7\\x5c\\x99\\xdb\\x4f\\xce\\x7b\\x0e\\x39\\xfd\\xc3\\xf8\\x51\\xda\\xf6\\x5c\\x7a\\x33\\xf4\\x64\\x81\\x69\\x31\\x83\\x9f\\xef\\xe8\\xe5\\x8d\\x9a\\xb7\\x42\\xb8\\x61\\x87\\x3f\\xd2\\x29\\x18\\x9e\\x59\\xcd\\x4c\\xe8\\x23\\x9f\\xc9\\x54\\x3f\\x53\\x9d\\x2d\\x29\\x61\\x14\\x26\\x6e\\xa8\\xc6\\xfd\\x15\\x2a\\xc6\\xb3\\x42\\xe5\\xd1\\xa5\\x57\\xab\\x35\\xca\\xc5\\x1e\\x2d\\x12\\x12\\xee\\x31\\x7c\\x4d\\x26\\x71\\x68\\x29\\xe2\\x57\\x46\\xdf\\x17\\xd2\\xa6\\x22\\xc2\\x43\\xf3\\xec\\xbb\\x65\\xf5\\x7a\\xb0\\xf4\\x27\\x0e\\x3d\\x06\\x68\\xa9\\x62\\x50\\x22\\x45\\xb9\\x4c\\x06\\xdf\\x0c\\x5e\\x39\\xe3\\x53\\xaa\\x84\\x2e\\xa0\\x80\\xcf\\x50\\x27\\x08\\xb1\\xdd\\xa2\\xd0\\x01\\x82\\x4d\\xe4\\x58\\xd3\\x77\\x62\\xaf\\x2c\\xdf\\xd5\\xa6\\xd3\\xf3\\x5e\\x08\\xa1\\x8e\\x14\\xaa\\x7a\\x64\\x2c\\x51\\xe4\\x04\\x7e\\x63\\x75\\x17\\x84\\x6d\\xf6\\x46\\xd0\\x73\\x36\\xfb\\x17\\x24\\x34\\xe0\\x88\\x3e\\x2b\\x77\\xd8\\xed\\x1c\\x52\\xc9\\xcc\\x63\\x6a\\x56\\xa1\\x9e\\x57\\xa5\\xf1\\x61\\xb9\\x2d\\x1d\\xcb\\xfa\\x49\\x6f\\x34\\x4a\\xe6\\xd4\\xdf\\xdc\\x95\\x69\\xad\\xe4\\x57\\xa4\\x90\\x91\\x36\\x2e\\x5a\\x0c\\xdd\\x81\\xb3\\x75\\x32\\x43\\xfd\\xac\\x30\\xa2\\xd2\\x7e\\xa0\\x26\\xa5\\xe6\\x01\\x44\\x1e\\xcd\\x55\\x37\\xa7\\x20\\x1b\\xdc\\xb7\\xfd\\x58\\xb2\\x40\\xd0\\x22\\x9f\\xdd\\x9b\\xab\\xf1\\x12\\xb5\\x69\\x48\\x12\\x25\\x0e\\x76\\x8d\\x7c\\x0c\\xe6\\xca\\x56\\x5a\\xd0\\x6a\\xb8\\xf7\\x8a\\x5c\\x99\\x50\\xee\\xf5\\x38\\x72\\x6f\\x57\\x6c\\x4b\\xd2\\xe0\\x75\\x5c\\x7f\\x98\\x39\\x29\\x37\\x2a\\x5f\\xe1\\x1c\\x73\\xf9\\xe1\\xfa\\x45\\x3a\\xb5\\x4b\\x58\\x17\\xaa\\xd3\\x59\\x67\\x56\\x12\\x7d\\x84\\xe3\\x11\\x94\\x53\\xe8\\x82\\x5b\\xb8\\x46\\x0d\\x85\\x1f\\x1f\\x7e\\x4a\\x28\\x38\\xa2\\xbe\\x78\\x6b\\x23\\x35\\x04\\xa6\\x91\\xdb\\x0f\\xa2\\x2a\\x5f\\x41\\xfe\\x3f\\xd3\\xc9\\xb5\\x38\\xb0\\x4f\\x40\\x9e\\x09\\x18\\x09\\x48\\x6b\\x28\\xad\\x0d\\xed\\xa7\\xb3\\x8a\\x42\\xce\\xfc\\x48\\xde\\x7d\\x86\\x79\\xc0\\x3b\\xf8\\x77\\x23\\x85\\x11\\x82\\x0d\\x07\\x70\\xcc\\x8d\\x7b\\x41\\x72\\x37\\x78\\x23\\xa0\\xb9\\x91\\x49\\xab\\xb8\\x91\\x8b\\xfb\\x66\\xd5\\xab\\xfc\\xd1\\x00\\x60\\xb0\\x5c\\xb4\\xf2\\x39\\xdd\\x42\\x81\\xd9\\x34\\x83\\x50\\x4b\\x73\\x1e\\xaf\\x5a\\xdd\\x51\\x5f\\x1f\\x3c\\x3b\\x52\\xb4\\xe3\\xbd\\xaf\\x97\\x6a\\x17\\xb3\\xc9\\xec\\x61\\xbf\\xc8\\xe7\\x71\\x16\\x71\\x58\\x04\\x53\\x2c\\xf2\\xdb\\xf2\\x0b\\x7b\\xa5\\xea\\xd8\\x5a\\xfb\\x95\\x2b\\xee\\xc2\\xfc\\xcf\\xf8\\x5f\\xf5\\x07\\x2b\\xa4\\xed\\x6b\\x54\\x38\\xab\\x15\\x20\\xc6\\xef\\x4b\\x0b\\x26\\xf1\\x2e\\x84\\xae\\xdd\\x65\\xce\\x5c\\x7b\\xbe\\x6a\\xcb\\x67\\x72\\xf5\\x93\\xa6\\xb4\\xf8\\x1d\\xdd\\x9d\\x50\\x27\\x46\\x50\\x50\\x47\\xc8\\x12\\xa0\\x06\\x7a\\xfc\\xeb\\x8d\\xc9\\xbf\\xf3\\x0d\\x40\\x87\\xf8\\xd5\\xa3\\x75\\xec\\xa6\\x05\\xa0\\x62\\x27\\x84\\xd8\\xfe\\xa2\\x78\\xcd\\x1a\\x52\\x41\\xad\\x4b\\x3f\\x1b\\x91\\x4f\\x74\\xf7\\x3b\\xc3\\x6e\\xe7\\xcc\\x82\\xd9\\x6e\\xfd\\xa6\\x3a\\x3b\\x67\\x99\\x73\\x0f\\x20\\x65\\x6c\\x12\\x35\\x6c\\x79\\x06\\x9b\\x2b\\xe6\\xf9\\xb7\\x7b\\xe1\\x01\\x98\\x31\\x18\\x82\\x3e\\xa6\\x6e\\x7c\\x20\\x98\\xfb\\xc7\\x2f\\xc9\\xc0\\x39\\xdf\\xe3\\x0f\\x2d\\xab\\xa1\\x3c\\x3b\\xde\\xfb\\x8a\\x78\\x0b\\xeb\\x5c\\xb1\\xb6\\xc2\\x86\\xa6\\xb3\\xef\\x48\\xfd\\x15\\xc6\\x6c\\x04\\x5b\\xa2\\x9f\\x09\\x70\\x41\\x3b\\x98\\x8d\\x0e\\xa0\\x04\\xab\\x84\\xc9\\x39\\x19\\xf0\\x4f\\x9b\\xf8\\xca\\xf5\\x8c\\x4e\\xb4\\x78\\xf3\\x58\\xef\\x8b\\x68\"},\n{{0xef,0x36,0x48,0xcb,0xe7,0x34,0x02,0xab,0x45,0x0c,0xd6,0xec,0x37,0xe5,0x45,0xd0,0xcd,0x2c,0x99,0x9e,0xcc,0x1f,0xa3,0x81,0xa4,0x5c,0x66,0x0e,0x18,0x53,0x30,0x32,},{0x52,0xa1,0xa4,0x52,0x73,0x87,0x26,0x76,0x58,0x2c,0xc7,0x67,0x33,0x99,0x26,0x41,0x4c,0xd5,0xd0,0x3d,0x98,0x0c,0xf6,0x29,0xdd,0xa2,0xd1,0xa2,0x05,0xe9,0x83,0x0a,},{0xf6,0x70,0x79,0x29,0x42,0xec,0x41,0x44,0x28,0x47,0x56,0x38,0x85,0x3c,0x42,0x72,0x8e,0x86,0xba,0x12,0xbb,0xe8,0x59,0x48,0xb3,0x91,0x34,0xcf,0x6e,0x2b,0xd1,0x28,0x13,0xe0,0xd8,0x3e,0x51,0xe6,0x57,0xc9,0x01,0x07,0xad,0x93,0xa4,0x78,0x8a,0xa3,0x83,0x13,0xfa,0x96,0x2f,0x67,0x67,0xa8,0xf7,0x80,0x5b,0xde,0x65,0xca,0x42,0x0d,},\"\\x6a\\x93\\x37\\x8f\\x88\\x0c\\xf0\\xff\\xdb\\x8e\\x07\\xd6\\x83\\xcc\\x35\\x2e\\x2a\\x10\\x33\\xc4\\x50\\xba\\xa0\\xe8\\xc4\\xe1\\x62\\x05\\xfd\\x0c\\x02\\x74\\x3b\\x0e\\xa0\\x64\\x97\\x1d\\x91\\x1e\\x49\\x47\\x13\\xe6\\xd9\\x4a\\x02\\x17\\x2e\\xd0\\x14\\xd5\\x06\\x59\\x2e\\xc6\\xc7\\x0a\\x9c\\x97\\x85\\x52\\x46\\xbf\\x3d\\x26\\xf3\\xcf\\x74\\xf4\\x93\\xc1\\xb6\\x97\\xa0\\xc4\\x14\\x16\\x0c\\x34\\x14\\x12\\x83\\x09\\x85\\x43\\x08\\x06\\xa0\\xcb\\x3c\\x84\\x75\\xe7\\xe5\\xa9\\x73\\x68\\x6c\\x24\\xd5\\xef\\x1b\\xe7\\xd0\\x06\\x50\\x96\\xfe\\xb5\\x2e\\xab\\x26\\x0b\\x5c\\x48\\x8a\\xf0\\x92\\x70\\xde\\x6d\\xec\\xd3\\x3f\\xea\\x85\\x89\\xdd\\x10\\x21\\xba\\xf4\\x1e\\x3f\\x25\\x5f\\xb8\\xfa\\x19\\x16\\xeb\\xd8\\x53\\x1e\\xeb\\x2f\\x88\\x6b\\xb3\\xb3\\xb0\\x4f\\x9a\\xf6\\xb2\\x76\\xc3\\x59\\x23\\xf1\\x0d\\x3a\\x0a\\xf1\\xe3\\xf5\\x8b\\x0d\\x15\\xae\\xd1\\x65\\x04\\x5f\\x20\\x6f\\x3f\\x43\\x0a\\xbd\\xff\\x09\\x44\\x90\\x97\\xe4\\xb2\\x6d\\x00\\xa8\\xf9\\xf1\\xe8\\xf7\\xa1\\x9f\\x38\\x58\\x81\\x24\\xc3\\x28\\xec\\x43\\xa9\\xcf\\xb4\\x3d\\x3b\\x2c\\x6b\\xdf\\x6a\\x3c\\x1a\\x10\\x2e\\x0e\\x33\\x3d\\xe1\\xac\\x21\\x4a\\x6d\\xf7\\x6d\\xab\\x44\\xba\\x76\\xbf\\x03\\x52\\x73\\xb7\\xff\\x62\\x38\\xec\\x82\\x48\\x3b\\x2d\\x2d\\x9d\\x54\\x29\\x1a\\x72\\x27\\x0f\\x88\\x93\\x3b\\x78\\x6c\\xac\\x05\\x1d\\x99\\x0b\\x3c\\xf7\\x40\\x84\\x5f\\xed\\x3a\\x67\\x86\\x7d\\x7c\\x7c\\x05\\x67\\x4e\\x7c\\xb0\\x2c\\xa5\\xb7\\xac\\xdf\\xba\\x38\\x52\\x80\\x3a\\x3d\\x56\\xc4\\xd5\\xc1\\x3b\\xb1\\xd7\\x72\\x34\\x67\\x74\\x1e\\xac\\x1f\\x2a\\x7a\\xcd\\x3a\\x95\\xf3\\xa5\\x16\\x10\\xa4\\x86\\xfc\\x53\\xa9\\x85\\x16\\x28\\xc5\\x57\\xd3\\x6d\\x8a\\x4c\\xd3\\x7a\\xae\\x9c\\x41\\x74\\xdb\\xbd\\xb6\\xbd\\x88\\x5c\\xf4\\x0b\\x38\\x2b\\x8d\\xed\\x24\\xa4\\x52\\x2a\\x27\\x8f\\xef\\x76\\xc4\\x53\\x19\\x06\\x7e\\x55\\x28\\x6e\\x7b\\x08\\xc6\\x03\\x48\\x6e\\x38\\xa0\\xac\\xf4\\x7e\\xde\\xf8\\x48\\xec\\xbe\\x94\\x2e\\xce\\xad\\xb8\\x63\\x6c\\x83\\x3f\\xeb\\x88\\x2a\\x51\\xa4\\x59\\x5e\\x24\\xf6\\x07\\xca\\x3c\\x9d\\xa1\\xb2\\x40\\x4c\\xe5\\xc7\\x47\\xe0\\x62\\x64\\x17\\x4d\\x64\\x50\\x43\\x31\\x70\\x9b\\xef\\x30\\x05\\x5a\\x5d\\x69\\x5e\\x09\\x53\\x7c\\x8f\\x8c\\x1e\\x5a\\x3a\\x5d\\xb0\\x65\\x99\\xe3\\x19\\xdf\\xdb\\x28\\x72\\x96\\x65\\x27\\x3b\\xf8\\x68\\x95\\x5e\\xa5\\x64\\x27\\xf0\\x8b\\xac\\xd7\\x77\\xf1\\x79\\xb3\\x02\\xf3\\xf6\\x8d\\x04\\xf3\\xf3\\x88\\x3d\\x34\\x49\\x55\\xb6\\x55\\xdd\\xc6\\xd5\\x28\\x2b\\x6d\\x4d\\xf1\\xd8\\x36\\x30\\x21\\x0e\\x69\\x91\\x78\\xe1\\x1f\\x72\\x2e\\x9e\\x5c\\xda\\x67\\x28\\x92\\xae\\x9b\\x23\\xe8\\x16\\x9c\\xbb\\x54\\x80\\x93\\xb8\\x3e\\x64\\x3e\\xb4\\x99\\xd9\\x37\\xd2\\x8f\\x38\\x11\\x59\\x7b\\x64\\x84\\x10\\x2f\\x0c\\x8e\\xb8\\xc8\\x88\\x8c\\xda\\xc2\\x29\\xae\\xbf\\x89\\x08\\x6a\\x64\\x95\\xac\\x55\\x1f\\x3b\\xbd\\xf2\\xd1\\xc9\\xa9\\x3e\\xd1\\xd3\\xa8\\x61\\xee\\xcd\\x9e\\xb8\\x39\\x94\\x9b\\xfb\\xe6\\xa4\\xf6\\xe6\\x48\\x6e\\xde\\xda\\xb5\\x22\\x9d\\x53\\x2b\\x58\\x97\\x6d\\x67\\x51\\x2f\\x9f\\x71\\xae\\x79\\xb4\\x14\\x5c\\xa2\\xfa\\x49\\x7a\\x16\\x5f\\x11\\x07\\x17\\x66\\x6c\\xa3\\x34\\x0b\\xbd\\xa8\\xdf\\x1f\\x82\\xb8\\xc0\\x54\\xcf\\x76\\x54\\xc3\\x56\\x90\\x16\\x8f\\x96\\x27\\x7d\\x41\\xc1\\xc2\\x36\\xb6\\x81\\x98\\x17\\x3c\\x6e\\x2b\\x0a\\x20\\x8e\\xf8\\x3c\\x02\\xa4\\x3e\\x47\\x3d\\x90\\x68\\x6a\\xce\\x75\\xb5\\xbd\\x32\\x1b\\x3f\\x54\\x28\\x13\\x27\\xa6\\x73\\xca\\xd4\\xd4\\xad\\x30\\x40\\xd4\\x8c\\xf4\\x93\\xea\\x23\\x1b\\x3f\\xec\\x06\\xf3\\x99\\x32\\xd7\\xf7\\x0a\\x38\\x42\\x8d\\xf8\\xfe\\xe4\\x37\\x05\\x32\\xae\\x5f\\xb1\\x12\\x05\\x9f\\x0a\\x1d\\x4f\\xbe\\x11\\xb5\\xa2\\x3b\\xb8\\x76\\x35\\x42\\x9e\\xd3\\x3a\\xd1\\xf6\\x14\\x80\\x14\\xcb\\xc1\\x60\\xd9\\x3c\\xa2\\x59\\x20\\x53\\xa6\\xe9\\x53\\x78\\xd6\\xcd\\x3f\\x50\\xdb\\x52\\xbe\\x92\\x8e\\x40\\x92\\xfe\\x5d\\x2b\\x70\\x95\\xa9\\x56\\x68\\x64\\xad\\xfd\\xa5\\x9f\\xd5\\xf2\\xfb\\x62\\x54\\xbd\\x59\\x17\\xb7\\x0f\\xa1\\x46\\x99\\x66\\x5a\\x37\\x29\\x7c\\x98\\x3c\\x1b\\xb9\\xef\\xe1\\xc6\\x7b\\x41\\x3d\\xd1\\xa8\\x53\\x0c\\xbf\\x22\\x72\\x97\\xa8\\xbb\\xf9\\x3a\\x8a\\x02\\x45\\x4e\\x8e\\x46\\x1a\\xc2\\x12\\xb8\\x46\\xa7\\x0d\\x5d\\x56\\xd6\\xc3\\xa6\\xe6\\x5a\\x03\\xbe\\x05\\x80\\x21\\x9b\\xdd\\xec\\x88\\xd4\\x03\\x89\\x11\\xfd\\x95\\x74\\x56\\x3f\\x33\\xe0\\xf9\\xe6\\x04\\x46\\x88\\xd3\\xdd\\x48\\xfa\\xc7\\x03\\x86\\x9a\\xa0\\x9d\\x96\\xef\\xee\\x7d\\x6c\\x68\\x07\\x1d\\x99\\x22\\xd5\\xe8\\xed\\x8d\\xc4\\x0f\\x1b\\x79\\x8f\\x1c\\x58\\x0f\\x78\\x59\\xcb\\x84\\xf1\\xe1\\x4b\\x5e\\x74\\xdd\\xea\\x16\\xad\\x5c\\xbe\\xea\\x4c\\x48\\xfb\\xcf\\xfd\\x29\\x53\\x1a\\xcc\\xc0\\x63\\x39\\x38\\xe3\\xbc\\xb2\\x21\\x26\\x76\\xb6\\x1e\\xf9\\x01\\xe9\\xc8\\x31\\xa4\\x17\\x74\\xd8\\x31\\x7e\\xf3\\x5a\\xf7\\x69\\x90\\xbd\\x24\\x93\\x1f\\xde\\x6d\\x40\\x7e\\x22\\xe7\\x63\\xcf\\x6a\\x57\\x90\\xb2\\x37\\x61\\x90\\x8e\\xee\\x60\\x96\\x37\\xa2\\xc1\\x10\\x59\"},\n{{0x2c,0x8e,0xe7,0xfa,0x9b,0xa2,0x8c,0xe7,0x04,0x96,0x76,0x08,0x7b,0x11,0x63,0xb2,0x41,0x11,0x8d,0x34,0xcd,0xf5,0x34,0xae,0xbe,0x8b,0xa5,0x92,0x82,0xa6,0x2a,0xc2,},{0x24,0x4c,0x24,0xf5,0xec,0xb2,0xdd,0x1d,0x14,0x63,0x51,0x22,0x21,0x32,0x5d,0x73,0xc8,0x1e,0xe4,0xd8,0xad,0xb8,0xe0,0x1e,0x23,0x34,0x5c,0xaf,0x9c,0xa5,0x35,0x3b,},{0xca,0x0b,0xb6,0xc1,0x23,0x56,0x55,0x5f,0x6e,0x1d,0x8f,0x5c,0x8a,0xa7,0xb5,0xe8,0x0c,0xd2,0x80,0xe8,0xb1,0xb9,0xba,0x2e,0xc9,0x55,0x0f,0x62,0x2f,0x48,0x2c,0x3a,0x9a,0xd3,0xbe,0x03,0xa4,0xc9,0xdf,0xc1,0x0d,0x01,0x12,0xb0,0x18,0x9d,0xe9,0x4b,0xff,0xaf,0xd7,0x03,0x41,0x14,0xe0,0xe0,0xd4,0x2c,0x23,0xf3,0x2d,0xc8,0x18,0x07,},\"\\x07\\x66\\x9a\\x89\\x64\\xf0\\x63\\x80\\xd2\\xd4\\x98\\x2c\\xb6\\x34\\x9d\\xe5\\x50\\xb3\\x8c\\xbc\\x35\\xdb\\x2c\\xe5\\x72\\xde\\x88\\x7f\\x66\\x30\\x55\\x73\\x6f\\xaa\\xc7\\xec\\x07\\xc3\\x2d\\xf6\\x0e\\xe2\\x59\\x84\\x22\\xbf\\x37\\xe7\\xcf\\x31\\x9a\\xb3\\xc9\\x05\\x56\\x08\\xca\\x0c\\x49\\x75\\x7d\\x76\\x88\\xe2\\x01\\x3b\\x82\\x44\\xf3\\x54\\x04\\xf4\\x5a\\xc2\\x19\\x49\\x7f\\xe9\\x24\\xde\\x93\\xa5\\x8d\\x0f\\x72\\x1a\\xed\\x78\\x25\\xf6\\x3b\\x26\\x67\\x07\\x7c\\x16\\x1e\\xb4\\xdd\\x8b\\xf7\\xdd\\xbd\\xbb\\xc1\\x9a\\x9e\\xae\\x59\\x78\\x97\\x8d\\x5a\\xeb\\x33\\xa0\\x6d\\xde\\x18\\xe6\\x12\\xe0\\x5b\\xdb\\xca\\xe0\\x16\\x1a\\xa2\\x38\\x90\\x38\\x02\\x64\\x29\\x96\\x0d\\xda\\x3a\\xa1\\x7e\\x96\\x7d\\x10\\x77\\x3c\\xa4\\x97\\x35\\xd8\\xec\\xd7\\x40\\x9b\\xe1\\x65\\xc0\\x9b\\xb0\\xb5\\x09\\x69\\x1d\\x59\\x1c\\x18\\x5c\\x93\\xcd\\xee\\xae\\x95\\x35\\x23\\x16\\x54\\x46\\x80\\x52\\x38\\x21\\x45\\x8c\\xac\\xcf\\x52\\x8a\\xc0\\x45\\x4e\\x4c\\xdd\\xc6\\xdf\\x0d\\x1e\\xa5\\xf1\\xf5\\xcc\\x1e\\xee\\xe0\\x5e\\x19\\xa2\\xad\\x0b\\x6a\\x49\\x73\\x6e\\xd8\\x55\\x23\\x36\\xfc\\xfc\\xad\\xbd\\x93\\x1b\\x0b\\x8e\\x96\\x3b\\xe0\\x5c\\x8e\\x70\\x37\\x38\\x85\\x52\\x51\\x2b\\x68\\x23\\x58\\x3e\\x4a\\x14\\x38\\x4c\\xef\\x50\\x29\\x23\\x2d\\x3e\\x0b\\xaf\\xe4\\x66\\x35\\x1b\\x4b\\xb3\\xf5\\x67\\x54\\x5a\\xb4\\x1f\\xa4\\x6b\\xff\\xaf\\xa8\\x77\\xa1\\x2b\\x38\\xa2\\x7a\\xbd\\x64\\xf7\\x7f\\xbb\\x4d\\xb4\\x66\\xff\\x7f\\x70\\x65\\x04\\x14\\x1d\\x3a\\xdd\\x0d\\x73\\x72\\xf1\\x6f\\xe3\\xd8\\xc6\\x9f\\x62\\x99\\xd9\\x39\\x66\\xd6\\x24\\xa3\\x07\\x0e\\xad\\xb8\\xb4\\x9f\\x29\\xfa\\xb4\\x84\\x4c\\x75\\x28\\xa2\\xa4\\x0b\\x66\\x98\\x70\\x60\\x69\\x5c\\xaa\\x66\\xb8\\x67\\x18\\xc5\\x10\\x49\\xac\\xf4\\xcf\\xad\\x38\\x53\\xed\\xb4\\x92\\xe3\\x68\\xcb\\xd0\\x73\\x96\\x8e\\xca\\xa4\\xa1\\xee\\x60\\x46\\xb5\\xe8\\x26\\xe9\\x01\\xf4\\xa8\\x08\\xc0\\x42\\x7c\\x02\\x6f\\xe2\\xf7\\xb2\\xe1\\x96\\x86\\x67\\xb5\\x3a\\x7d\\x36\\xd7\\x02\\xf2\\xff\\x82\\xc6\\x42\\xd3\\x49\\x19\\xf8\\xe9\\xaa\\xaf\\xe4\\x62\\xa3\\xd4\\xf9\\x26\\x92\\xde\\xac\\x75\\x2b\\xe3\\x48\\xf5\\x4c\\xf0\\x89\\xdd\\x9c\\xd0\\x51\\x84\\x6b\\x04\\xb7\\x19\\x31\\xe1\\x9e\\x89\\xd1\\x25\\x86\\x4b\\xfa\\x89\\x48\\xac\\xe0\\xef\\xf3\\x3c\\x45\\x11\\x05\\x69\\xa0\\xdf\\x37\\x53\\xf4\\xc5\\x8d\\x80\\x02\\xb5\\xbc\\x38\\x10\\x2e\\xc2\\xec\\xf6\\x95\\xfa\\xfa\\x89\\x16\\xda\\x90\\x02\\x38\\x7e\\x44\\xf9\\x6d\\xab\\xf8\\xa9\\x82\\xc5\\x3c\\x9b\\xad\\xbc\\x37\\xbd\\xe4\\x37\\xf1\\x46\\xf7\\x7d\\x8f\\x7b\\xaf\\x12\\x87\\x31\\x96\\xb0\\xc3\\x61\\x93\\xaf\\x55\\xf5\\x42\\xd9\\x96\\x8a\\xed\\x80\\x69\\xab\\x9f\\xbc\\xd6\\x81\\x4e\\xc4\\x72\\x79\\x9a\\xd0\\x9c\\x73\\x0d\\x41\\xed\\xde\\xca\\x3b\\x62\\x69\\xd3\\x1a\\xb5\\x23\\xb5\\x95\\x47\\x07\\x73\\x76\\x34\\x5b\\x05\\xf2\\xae\\x69\\xb4\\xee\\x72\\x8c\\x86\\x3d\\x1b\\xc0\\x4e\\x9b\\x7d\\x3d\\x0f\\xcc\\xeb\\x35\\x9c\\xbd\\x08\\x58\\x59\\x7a\\xf2\\xd6\\x06\\x3e\\x25\\x3f\\xae\\x2c\\x3f\\x25\\x03\\x4c\\x33\\xed\\x59\\xed\\xd2\\x78\\x28\\x68\\x29\\x86\\x81\\xca\\xf5\\x64\\xdb\\x8d\\x19\\x36\\x6f\\x34\\xea\\xe8\\x5b\\xa7\\x3c\\x1e\\x23\\x89\\xb0\\xdd\\x78\\xa9\\xd2\\xca\\xa0\\xf2\\x3c\\x9a\\xd5\\xf6\\xcd\\x9f\\x2c\\x4a\\xd5\\xd5\\x89\\x46\\xad\\xb7\\x18\\xcb\\x83\\xda\\x58\\xe2\\xfc\\xbb\\x60\\x25\\xbe\\xf4\\x66\\x0a\\x83\\xe0\\xaf\\x55\\xe2\\x03\\x08\\x02\\x93\\x2f\\x2a\\x89\\x6a\\x09\\x60\\x79\\xb7\\x54\\xc9\\x9f\\x7b\\x64\\x23\\xb4\\x5a\\x86\\x47\\x2e\\x67\\x23\\xef\\x88\\x96\\xc4\\x32\\x4c\\x73\\xd3\\x4a\\xd5\\x8a\\x4c\\x01\\xb3\\x8a\\x97\\xc7\\x3b\\xe5\\xaa\\x7f\\x74\\xa2\\xfa\\x4d\\x07\\x95\\xaf\\x6d\\xbf\\xcd\\x6d\\x4e\\xb4\\x42\\xa7\\xe2\\x04\\xdb\\x4e\\xcb\\x1f\\x8a\\x22\\x6b\\xdf\\xa2\\x1b\\x6e\\xb1\\x71\\xc9\\xe5\\x9f\\x1a\\x19\\x2e\\x23\\xa7\\x6c\\x35\\x2b\\x04\\xd8\\xa8\\x02\\x33\\x98\\x5b\\x77\\xa2\\x9c\\x02\\x01\\x19\\xce\\x65\\x1c\\x7f\\x41\\x83\\xd0\\xe9\\xc1\\x9f\\xe1\\x8a\\xa1\\x02\\x0c\\x25\\xe4\\x58\\x9d\\xee\\x34\\xb9\\x01\\xbd\\xaf\\x9f\\xf9\\x45\\x0c\\x91\\xaf\\x3c\\x1d\\xb6\\x70\\xb4\\x77\\xe0\\xac\\x21\\x07\\x69\\x6c\\x9e\\xc0\\xd3\\x1d\\x82\\x64\\x7b\\x68\\xea\\x19\\x49\\x9f\\xe3\\x4a\\x8e\\x2e\\x7b\\x37\\x8d\\xc7\\xe7\\x54\\x24\\xe8\\xc4\\x56\\x45\\xb0\\xc2\\x81\\x8e\\x9f\\x88\\x5a\\x1c\\x58\\x41\\x5b\\xba\\x1c\\x3f\\x2a\\x77\\x54\\x9b\\xdc\\x46\\x80\\xdb\\xcd\\x16\\x50\\xc7\\x5d\\x0f\\x45\\x2a\\x6b\\x20\\x85\\x91\\xdf\\x0f\\xa6\\xe1\\x81\\xda\\x2a\\xbf\\xab\\x44\\x46\\x21\\xd5\\xf7\\x7c\\x2c\\xd7\\x95\\x56\\x46\\x72\\x46\\x44\\x7a\\x89\\xf0\\xaa\\xac\\xad\\x66\\x0c\\x9a\\x92\\x5e\\xba\\xfb\\xad\\x43\\xc4\\x78\\xa3\\xc8\\x50\\xa2\\x7e\\x01\\x01\\x9d\\x88\\xa5\\xb1\\xdc\\x81\\xb5\\xd2\\xe9\\xf7\\x40\\xa0\\x28\\xcc\\xb7\\x2c\\x1a\\xcf\\x89\\x7e\\xa5\\xad\\x89\\xe0\\xf9\\x44\\x88\\x88\\xd5\\xb1\\x5c\\xe6\\xe4\\x29\\x77\\xf7\\xa7\\x29\\x15\\x5a\\x28\\x4d\\x11\\x87\\x58\\xac\\x65\\xf3\\xfb\\xb9\\x8d\\xeb\\x65\"},\n{{0xdd,0xd8,0xe9,0xff,0x85,0x56,0x79,0x89,0x6a,0x13,0x97,0xb4,0x27,0xdb,0x85,0x43,0xab,0xe8,0xbb,0x5d,0xd1,0x22,0xe3,0xe3,0x02,0xcc,0xfc,0xe5,0xfd,0xc6,0x3e,0x12,},{0x5a,0x9a,0x31,0x2e,0x89,0x2a,0x10,0xb9,0x8d,0x0d,0xcd,0xd2,0x8d,0xb3,0x48,0x1c,0x3c,0x28,0xad,0xd5,0xad,0x0b,0x19,0x46,0x16,0xda,0x4a,0x3d,0xf7,0x66,0x01,0x09,},{0xdf,0x84,0x9b,0x7b,0xd2,0x97,0x45,0xf8,0xbe,0xcd,0xdd,0xf6,0xc9,0xba,0xf0,0x94,0xd7,0xa9,0x8c,0xc9,0x33,0x8c,0x34,0x4e,0xca,0x17,0xfd,0xe0,0x75,0xfd,0xa8,0xd1,0x54,0x32,0x99,0xf6,0x25,0x98,0x23,0x17,0xdb,0x7b,0x3c,0x77,0x3b,0x64,0xf7,0xd1,0xf2,0x86,0x92,0xac,0x45,0x3b,0x81,0xd7,0xec,0x7b,0x7e,0xc3,0x41,0x7a,0xce,0x04,},\"\\x5e\\x8f\\xee\\xc5\\x09\\x35\\x0d\\x2e\\xe7\\x95\\x5b\\x6f\\x3e\\x27\\x82\\x78\\xa4\\xcb\\x48\\xae\\x72\\xb4\\x65\\x89\\xe4\\x78\\xbe\\x59\\x74\\x7d\\xf5\\x39\\x4a\\x16\\x9f\\x19\\xe1\\x0d\\xb5\\x32\\x02\\xa6\\xa5\\x23\\x20\\xb6\\x3a\\x9a\\x2b\\x72\\x3f\\xd3\\x1a\\xa2\\xdb\\x6d\\x58\\xc5\\x73\\x32\\xda\\x31\\x78\\xbc\\xf9\\x66\\xc5\\x3a\\xbd\\xa3\\x5f\\x12\\xda\\xef\\x9e\\xdc\\xf3\\x99\\xe4\\xa8\\xc5\\xf8\\x3d\\x36\\xf4\\x4a\\x17\\xd7\\x98\\x46\\xbf\\xc9\\x6c\\xe6\\x90\\x19\\x4c\\x21\\x9a\\x29\\x89\\x2f\\x03\\x67\\xa7\\xab\\x38\\x44\\x83\\x78\\x79\\xe3\\x81\\x8d\\xb8\\xd7\\x0c\\x4e\\x3f\\xba\\x4d\\x28\\x07\\x34\\x64\\xdf\\x20\\x85\\x95\\x10\\x38\\xfe\\xa4\\x32\\x81\\xb6\\xb6\\x06\\xdc\\x88\\x46\\xb3\\x0b\\x07\\x63\\xf2\\xca\\x82\\xbd\\x50\\x21\\xf9\\x11\\x70\\x35\\xa7\\x7b\\xcd\\x10\\x75\\x47\\x7c\\x5f\\x43\\x21\\x43\\x34\\xd4\\xd4\\xce\\xdd\\x18\\xf7\\x38\\xd6\\x76\\xc7\\xb5\\x1a\\x18\\x5f\\xfa\\x8d\\x04\\x10\\x11\\x86\\xa4\\x95\\x2b\\xbd\\x87\\x22\\xf5\\x39\\x90\\xb6\\x06\\x37\\x04\\x1e\\x11\\x4a\\xeb\\x8c\\xe7\\x11\\x11\\x31\\xd4\\xdb\\x3f\\xb4\\xd3\\x5d\\x99\\x5a\\xd8\\xd6\\x65\\x0c\\x0c\\x4c\\xcd\\xce\\x9d\\xcc\\x39\\xdb\\x18\\x8a\\x68\\x78\\x55\\x62\\x74\\x06\\x26\\xb3\\xae\\x3e\\x02\\x3f\\x40\\x77\\x2d\\xed\\x87\\x6a\\x45\\xcb\\xef\\x74\\xa0\\x58\\xfd\\x78\\xc1\\xa1\\xff\\x2c\\x24\\x51\\xe1\\x11\\xac\\x1b\\x4b\\x7e\\xe4\\xc8\\x1c\\xd7\\x63\\x10\\xd4\\xd2\\x98\\xfb\\x3c\\x49\\xf5\\xe6\\x40\\x19\\x08\\xa6\\x30\\xfa\\x85\\xdb\\x74\\x71\\x80\\x4f\\xe9\\x90\\x84\\x7f\\x0f\\x75\\x94\\x72\\xf5\\x93\\xdc\\xf0\\x2e\\x11\\x3e\\x15\\xe5\\x64\\xd3\\x0d\\x59\\x84\\x69\\x2d\\xa5\\x5b\\x0b\\x7f\\x22\\x19\\xc4\\xac\\x16\\x26\\x51\\x1a\\xcf\\x19\\x4d\\xc7\\x02\\x6e\\xb9\\xd3\\x67\\xa4\\xa2\\xf1\\xdf\\xb5\\x15\\xcb\\x2c\\x08\\xda\\x4f\\xe5\\x95\\xc8\\x58\\x11\\x12\\x0c\\xba\\x2a\\xe7\\xb6\\x6e\\x67\\xc9\\x1f\\xb8\\xfb\\xcb\\x9d\\x99\\xf1\\x3e\\x50\\xfd\\x67\\x46\\x4d\\x90\\xc8\\xdc\\xf6\\x93\\x55\\x23\\xcf\\x6d\\x13\\xfd\\xd1\\x06\\x35\\xb9\\x23\\x2b\\x7a\\x61\\xdc\\xec\\x9a\\x2b\\x92\\x10\\x61\\x41\\x0d\\xf1\\xde\\x6a\\x45\\x16\\x7f\\xb9\\xf6\\xf1\\x09\\xdc\\xc0\\x88\\x91\\xf2\\x03\\xb2\\x74\\xa3\\xb6\\x82\\x71\\xb3\\xf3\\x5e\\x74\\xf9\\x4b\\xdc\\xed\\x0c\\x5f\\xf8\\x63\\x71\\x73\\xa1\\x76\\xe7\\xda\\xcc\\x81\\xf2\\xcd\\xc4\\xfb\\x0d\\x52\\xd1\\xdf\\xa7\\xf2\\x7b\\x55\\x2f\\xd8\\xd8\\x7a\\x1c\\x55\\xd6\\x94\\x7f\\xd9\\x2e\\xd3\\x25\\x3f\\x95\\x94\\xdb\\x7d\\xf1\\x7a\\x7f\\xc6\\xa7\\x5e\\xcf\\x4f\\xaa\\x4d\\x1e\\x21\\xb6\\x76\\xb3\\x72\\x7d\\x77\\xfb\\xd4\\x3f\\xa7\\xbe\\x76\\xbf\\xb5\\x8f\\xc3\\x09\\xe5\\x67\\x5f\\x0a\\x85\\x9c\\xc4\\x7f\\x37\\xb1\\xbf\\x45\\x59\\x32\\xd8\\x24\\xe8\\x63\\x78\\xde\\x7a\\x7e\\x8c\\x40\\xce\\xd2\\x20\\x90\\x04\\x4d\\xbb\\xf9\\x1c\\x70\\xe5\\x28\\xea\\xcd\\xef\\x37\\x85\\xba\\x3c\\x69\\xa3\\x73\\x5a\\xf6\\x70\\x9c\\xd7\\x6a\\xab\\x28\\xa6\\xac\\xa6\\xe8\\x44\\x97\\x4b\\x10\\xb3\\xfb\\x7b\\x09\\x86\\x00\\x7a\\x72\\x7c\\x2c\\x8f\\xc9\\x5b\\x25\\xf3\\x1f\\x14\\x6b\\x36\\xac\\xd4\\xc5\\x37\\x07\\x49\\x20\\xaf\\xf2\\x47\\xde\\x0f\\x17\\x9c\\x13\\xca\\x57\\x79\\x0a\\x6a\\x71\\xd6\\x2e\\x23\\x32\\x1c\\xcc\\x75\\xb7\\xf3\\xb0\\xaf\\xa0\\xd0\\x35\\x27\\xc9\\x11\\x4a\\x7d\\x4e\\x30\\xc1\\xac\\xe6\\xd7\\x71\\x20\\x13\\xde\\xe6\\x66\\x99\\xaf\\x9c\\x56\\x1c\\x44\\xae\\x61\\x98\\xed\\x39\\x10\\x4e\\x60\\x61\\xae\\x2c\\x45\\xa9\\xa3\\xc7\\x4b\\x5d\\x0f\\xbc\\x4a\\x33\\xe8\\xdf\\xe2\\xa8\\xac\\xc9\\x51\\x1e\\xf7\\xe6\\x56\\x71\\x33\\xf9\\xfe\\x35\\x54\\x28\\x4a\\x75\\xa0\\x59\\xa6\\x49\\xdd\\x24\\xec\\x04\\xa5\\x77\\x30\\xc6\\xd2\\xe9\\xbf\\x11\\x4e\\xa5\\x8a\\x89\\x94\\xab\\xdb\\x0c\\x19\\x43\\x24\\x15\\x72\\xc7\\x9e\\xad\\x04\\x3a\\xd1\\xc8\\xca\\xaf\\x5c\\x9d\\xa5\\x3d\\xd0\\x55\\x22\\xfe\\xbc\\x40\\x33\\x54\\xd6\\x2f\\xe3\\xff\\x93\\x88\\x2d\\xf7\\x5f\\xb2\\x94\\x58\\xd2\\x2e\\x69\\x96\\xc3\\x5b\\x69\\xfa\\xae\\xf2\\xe0\\xc4\\x16\\x38\\x86\\xcb\\x3c\\x3d\\x0f\\x60\\xe1\\x50\\xd3\\x63\\xd6\\xdb\\x59\\xfe\\xfc\\x62\\x6b\\x1b\\xbb\\x1e\\x05\\x2a\\x62\\x41\\x4c\\x4b\\x78\\x56\\xd7\\x20\\x93\\x43\\x2b\\x08\\xf8\\x21\\xbc\\x78\\x4a\\x5a\\x6b\\x0b\\xc2\\x64\\x9c\\x2d\\xaa\\x50\\x86\\x58\\x98\\x0d\\x80\\x22\\x91\\xe7\\x34\\xab\\xaf\\xf0\\x6a\\xfb\\xf2\\x79\\x5e\\x4e\\x35\\x4d\\x52\\x21\\xdc\\x4f\\x52\\xcc\\x96\\xd6\\xb8\\xcf\\x18\\x08\\xb1\\xa8\\x20\\x8d\\xb7\\xda\\xa8\\x0a\\xb7\\x10\\xc5\\x6a\\x8b\\x0e\\x9c\\xb8\\x08\\x1d\\xee\\x93\\xf5\\xf0\\x15\\xf0\\x76\\x64\\x46\\x3a\\x3d\\xcc\\xff\\x7c\\x8a\\xd1\\x99\\x23\\xa9\\x7e\\x39\\x04\\x5b\\xcc\\x4d\\xce\\x0a\\x73\\xd4\\x9c\\x56\\xd5\\xe9\\x37\\xbd\\x11\\xe6\\x18\\x23\\x40\\x1c\\x06\\x62\\x06\\xe3\\x13\\xe6\\x0b\\x47\\x53\\x7e\\x34\\x70\\x4d\\x7d\\x35\\x15\\x55\\x9b\\xb9\\xd0\\x53\\x2d\\x02\\x8e\\x28\\xa5\\x7a\\x87\\x9f\\xd6\\x17\\xcc\\x61\\xf7\\xf7\\x76\\xbd\\x6a\\x00\\x8c\\xd4\\xf8\\x12\\x37\\x8e\\xd3\\x7f\\x39\\x4b\\xb9\\x7e\\x6e\\x75\\x6d\\xa8\\x19\"},\n{{0xa8,0x86,0xf4,0xd3,0xf3,0x4e,0x32,0x0e,0xc6,0xd5,0xf4,0xca,0xa8,0x63,0xf8,0x14,0x77,0xdf,0x77,0x2e,0xff,0x97,0xe6,0x4a,0x37,0xa0,0x5f,0x42,0x11,0xd1,0x90,0xa8,},{0xe9,0xbc,0x96,0xc8,0x1e,0x87,0x81,0x10,0x26,0x8b,0x55,0xde,0xf7,0xea,0x40,0x07,0xa4,0xef,0x9f,0x54,0xd3,0x83,0xd5,0xfb,0x0f,0x6d,0x43,0x43,0xe1,0x01,0x0f,0x38,},{0xab,0xf2,0x83,0xdb,0x1f,0x80,0xc5,0x4c,0x58,0x3b,0x49,0x9d,0xbe,0x20,0xaa,0x04,0x24,0x8c,0x1d,0xce,0x12,0x1f,0x39,0x11,0x67,0x78,0x13,0xac,0x3e,0x01,0x1f,0xd1,0x59,0xad,0x0b,0xf7,0x6b,0x1a,0xa7,0xcc,0x7b,0x14,0xd7,0xb5,0x50,0x84,0x86,0x88,0x25,0x2a,0xcc,0x7f,0xec,0xe9,0x04,0x87,0x24,0x0c,0x3d,0x39,0x9d,0xd3,0x43,0x08,},\"\\x8b\\x83\\x1b\\x87\\x7b\\xc3\\xa9\\x9f\\x61\\x3c\\x89\\xcd\\xa6\\x98\\xb3\\x75\\x9d\\x64\\x38\\x22\\xb5\\xa8\\x8f\\xaf\\x38\\x22\\xec\\xb2\\xce\\x98\\xf6\\x71\\xd7\\x55\\x43\\x21\\xb2\\x4b\\x74\\xb4\\xe3\\x0a\\x66\\x3f\\x7a\\x55\\x70\\xae\\x91\\x7f\\x47\\x9b\\xda\\x29\\x89\\x4b\\x1a\\x8c\\x02\\x8c\\x9d\\x19\\x3e\\x4e\\x7a\\xc1\\x19\\x16\\xdd\\x8e\\x9c\\x3f\\x0e\\xc0\\xef\\x80\\xbd\\x27\\xfd\\xfe\\xee\\x80\\xc1\\x70\\xc7\\x81\\x40\\xb2\\x4c\\x15\\x27\\x14\\x15\\xac\\xf7\\x5c\\x26\\x95\\x6a\\x4d\\x4b\\xf9\\x9d\\x40\\xe8\\x61\\xe9\\x07\\x83\\x20\\xd0\\x97\\xe1\\x25\\x9e\\x5e\\xc1\\x7b\\x58\\x3a\\x95\\xe5\\x24\\x30\\xdd\\x8c\\x00\\x8e\\xd8\\xc7\\xdd\\x1d\\xe1\\xbe\\xcd\\xd1\\xe6\\xbf\\xec\\x4b\\xf3\\x34\\x7a\\x22\\xdd\\x24\\x9f\\x3a\\xc3\\x07\\xa2\\x94\\x5e\\x91\\x37\\xfa\\x4a\\x8c\\x26\\xc8\\x02\\x10\\x77\\x23\\x9c\\xb3\\x24\\x81\\x6a\\x8d\\xad\\x32\\xb0\\x1e\\xe3\\x4a\\x08\\x90\\x30\\x98\\xcb\\x9c\\x42\\x45\\x29\\x1b\\x90\\x3c\\x96\\x27\\x07\\x40\\x95\\x24\\x9e\\x78\\x28\\x13\\x47\\x70\\x32\\xba\\x32\\xef\\x04\\x1a\\x07\\x48\\x6e\\xb4\\x47\\x8c\\x57\\xb9\\xd5\\x32\\x26\\x9a\\x4a\\x47\\xcb\\x5e\\x97\\x4d\\xf7\\xe0\\x10\\x96\\xfb\\xe4\\xf1\\xcc\\xd4\\xe6\\x63\\x66\\x34\\x87\\x97\\x4c\\x62\\xcd\\xd9\\x4d\\x77\\x71\\x6c\\x84\\x79\\xd7\\x9f\\x6b\\x6a\\x7d\\x9c\\x15\\x59\\x88\\xcf\\x39\\x02\\xfb\\x69\\x74\\x24\\x96\\x3e\\xc4\\xec\\x34\\xff\\x2a\\x35\\xd7\\x42\\xc4\\x45\\x5a\\x59\\x3b\\xac\\xff\\xc4\\xd9\\x69\\x9b\\xa7\\x62\\x6c\\x76\\xcb\\x1a\\x61\\x62\\x53\\x75\\x18\\x87\\xf6\\xff\\xe2\\xbe\\x20\\x8c\\x71\\x3d\\xf1\\xab\\x63\\x6d\\x72\\x2e\\xa0\\x6c\\x1c\\x03\\xa5\\x7f\\x2c\\xec\\x08\\x03\\x86\\x6c\\xca\\x33\\x35\\xc2\\x8b\\xf4\\x1c\\x7d\\xef\\x81\\xac\\xb3\\x88\\x58\\xdc\\x10\\xe5\\x94\\x67\\x20\\x86\\x24\\x96\\x7e\\x2e\\x22\\xd9\\xe5\\x66\\x1b\\xb9\\x45\\xf9\\xe0\\x51\\x76\\x87\\xdc\\x80\\xf9\\xb8\\xfd\\xec\\xc8\\xa9\\x76\\x00\\xb6\\xc2\\x19\\xa3\\xb2\\x3a\\x90\\xb6\\xd1\\x8a\\xaa\\xce\\x2c\\x78\\x40\\x0f\\xf3\\x8c\\x8c\\x05\\x96\\x7f\\x54\\x4b\\x6a\\x60\\x6c\\x71\\xac\\x19\\x9e\\xaf\\xd0\\x7e\\xb5\\x84\\x8d\\xf1\\x65\\x7e\\xfb\\x23\\x3f\\xba\\xba\\xe6\\x3a\\x05\\x63\\x81\\x91\\xa0\\xaf\\x74\\x84\\xa1\\xba\\xe1\\x58\\x13\\x75\\x67\\x2c\\x57\\x1e\\x26\\x4f\\x60\\x42\\x25\\x17\\x3a\\x54\\xa3\\x8d\\xd6\\x2a\\xe7\\x13\\x0d\\x05\\xdd\\x29\\x1a\\xd1\\x23\\x54\\xde\\x86\\xa6\\xe1\\x13\\xe8\\x3f\\x6d\\x66\\x85\\x16\\x15\\x7b\\x79\\x67\\x02\\x0d\\xc6\\x51\\x7d\\x8c\\xf4\\x2d\\xd7\\xb1\\xa8\\x97\\xfe\\x1b\\x4e\\x04\\x55\\x3c\\xe2\\x6e\\x29\\x99\\x80\\xaa\\x5f\\x7c\\xe0\\x17\\x9b\\xf4\\x95\\x4f\\x01\\xc2\\xa2\\x36\\x54\\xe5\\xe9\\x73\\x1e\\x14\\x47\\x34\\x7f\\xa4\\x3a\\xa8\\xb2\\xcb\\xd6\\xd4\\xb2\\xdf\\x93\\xfa\\x54\\xaf\\x71\\xe5\\x02\\x8a\\x6d\\xa8\\xc7\\x1e\\xf3\\xc5\\x0c\\x0d\\xe2\\x4d\\xca\\xee\\x78\\x56\\x78\\xe9\\x2a\\xaf\\xab\\xeb\\x23\\x3b\\x01\\x1f\\x45\\xc1\\x06\\x49\\x65\\x08\\x5d\\x25\\x47\\x05\\x0f\\x21\\xc6\\x52\\xaa\\x53\\x3a\\xfe\\x91\\x8a\\xa0\\xf9\\xbd\\xaa\\x26\\x07\\xb8\\x73\\xcc\\xd3\\xdb\\xd1\\xd3\\xa8\\xcc\\x62\\x17\\x2c\\xeb\\x43\\xb9\\x21\\xef\\x6b\\x25\\xc0\\x6b\\x09\\x92\\xe4\\xdf\\x2b\\x91\\xe3\\x71\\xb0\\xef\\x2b\\x39\\x47\\x38\\x8d\\xae\\xc8\\xec\\x6f\\x7e\\x38\\x67\\xd1\\xf6\\x10\\x72\\xaf\\x59\\x01\\x54\\xfa\\x61\\x9a\\x07\\xf8\\x7e\\x02\\xbd\\xdc\\x74\\x06\\x31\\x42\\x70\\xaf\\x1c\\x15\\xe8\\xee\\x88\\xb3\\x9c\\x01\\xbe\\x60\\x2e\\x4f\\x0b\\x52\\xd9\\xa0\\x72\\x4e\\x71\\xed\\xdd\\x7f\\xa9\\x13\\x41\\x69\\xc5\\xfa\\xab\\x91\\x59\\x79\\xee\\xa9\\x36\\x2d\\x0f\\x1f\\x91\\x60\\x26\\x81\\x62\\xdd\\x38\\xdb\\x02\\xfc\\xfb\\x41\\x35\\x0a\\xa0\\x8e\\x1e\\x14\\x09\\xb2\\x28\\x8d\\xb1\\xfe\\x4a\\x0e\\x58\\x6b\\x59\\x10\\xf4\\xde\\x89\\x4b\\xf9\\x97\\x4f\\x6a\\x49\\x83\\x01\\x3a\\x19\\x0e\\x7a\\x73\\x6d\\x14\\xec\\x54\\xc3\\x64\\x4a\\x3e\\xe9\\x58\\xa5\\xbd\\xfb\\xcb\\x62\\x97\\xab\\xa4\\x3a\\xf6\\xc7\\x27\\x46\\xbb\\x13\\x54\\x10\\x50\\x7d\\x8f\\xdd\\xe7\\x3a\\x2a\\x48\\xb7\\x46\\xf9\\x18\\xbe\\xf9\\xed\\x92\\xc5\\xbe\\x62\\xdd\\x55\\x23\\xfe\\x14\\xb1\\x6d\\x63\\x84\\xca\\x46\\xef\\x59\\xb2\\x18\\x5f\\xe9\\x33\\x38\\x3a\\x2c\\x7a\\x9b\\xf0\\x2d\\xa9\\xd0\\xfd\\x8b\\x0c\\x7d\\x7b\\xde\\x6b\\x43\\x9f\\x99\\x60\\x15\\x5e\\x34\\x5d\\x68\\x5d\\x4d\\xc3\\xc7\\x14\\x04\\xd6\\x56\\x81\\x19\\x23\\xaa\\x3c\\x47\\xd4\\xb0\\x9a\\x0b\\xae\\xf0\\xa1\\x2e\\x75\\xb6\\x43\\x9b\\xa8\\x13\\x5d\\xb1\\x58\\x65\\x87\\x42\\x22\\xcd\\x7a\\xa4\\x28\\xf5\\xca\\x5c\\xe5\\x14\\x0e\\x22\\xff\\x92\\x69\\x7f\\x37\\xfc\\x70\\xb5\\xb4\\xc9\\x4d\\x33\\x14\\xe6\\xaa\\x16\\xb2\\x14\\x6b\\xca\\x4f\\xc9\\x41\\x57\\x95\\x1f\\xc4\\x92\\x45\\xda\\x53\\xf6\\xc4\\x3d\\x1b\\xeb\\xd8\\x94\\xe3\\x1a\\x13\\x49\\x88\\x4d\\x71\\x1b\\x55\\xdb\\xe7\\x78\\xff\\xa7\\x27\\x16\\x5c\\xf7\\xcb\\x67\\x64\\x35\\x86\\x6c\\x2d\\x2c\\xb8\\x39\\x74\\x5c\\xa4\\x01\\x66\\xa2\\xf7\\xcf\\xc7\\x7a\\x84\\x24\\x68\\xb5\\x1a\\x8e\\x76\\x57\\x5f\\xc9\\xdd\\xfb\\x5f\"},\n{{0x49,0x7e,0x3e,0xbd,0x9e,0x4c,0xaa,0x81,0xc5,0xa8,0x97,0x3d,0x52,0xf1,0xd2,0x3f,0x60,0xc1,0x34,0xca,0x53,0xf6,0x2a,0x85,0x3a,0x0a,0xc0,0x43,0xe5,0x1c,0xb5,0x17,},{0x71,0xc0,0xca,0x7c,0xfa,0x05,0xca,0xfa,0xbb,0x14,0x3d,0x84,0xae,0x41,0xde,0x83,0x84,0x6f,0x42,0xc7,0x7c,0xaa,0x7a,0x91,0xa2,0xe3,0x48,0x39,0x7d,0x07,0xd5,0x2f,},{0x12,0x74,0x08,0x39,0xb3,0xc9,0xf1,0xba,0x87,0x98,0x96,0xdf,0xf6,0xd7,0x25,0xe8,0x4e,0x04,0x43,0xef,0x96,0xc3,0x49,0xef,0xf9,0x4d,0xc4,0x83,0x31,0x43,0xe5,0xb4,0x19,0x80,0x4d,0xa9,0xdb,0x11,0x8a,0x95,0x92,0xb1,0xb1,0xca,0x48,0xaf,0x18,0xf7,0x5b,0xef,0x1c,0xa4,0x68,0xa1,0xa5,0xc7,0x4c,0x7a,0xc8,0x13,0xbb,0x2c,0xf3,0x06,},\"\\xe1\\x32\\xf9\\xd6\\x7b\\x17\\x29\\x38\\x9b\\x82\\x8a\\x9f\\xae\\x05\\xa6\\x7a\\xa5\\x7f\\x0e\\xf7\\xe7\\xd4\\xd1\\xba\\x24\\x4d\\xec\\x87\\x04\\xdb\\x96\\x95\\x65\\xd1\\xca\\xb8\\x09\\xe4\\x8f\\xc0\\xab\\xf9\\x50\\xbc\\xd4\\xa3\\x7d\\x97\\xae\\xac\\xe6\\xda\\x54\\x6d\\x49\\x14\\xcb\\x5b\\x86\\xd6\\xab\\x18\\x1d\\x83\\x18\\x70\\xc3\\x09\\xbc\\xa6\\x16\\x46\\x8f\\x2a\\x34\\xd3\\xdf\\xaf\\xcd\\xbb\\x75\\x80\\xb0\\xc5\\xd9\\xff\\x98\\xe2\\xc5\\x4e\\xc8\\x03\\xbe\\x0d\\x3f\\xda\\x1d\\x4b\\x8c\\x0d\\x77\\x09\\xc8\\x9e\\x68\\x0b\\x00\\x8b\\xf9\\xb8\\xd9\\x03\\xb5\\xe9\\x34\\xb0\\x19\\x70\\x5f\\xe0\\xb0\\xc8\\xcf\\xbc\\x3c\\x09\\x67\\x84\\x3b\\x0a\\x1f\\xa1\\xb3\\xf1\\x62\\x77\\x6e\\xbe\\x96\\xb7\\x40\\xed\\xd6\\x4a\\xd7\\xc3\\x5b\\x3f\\xd1\\xa0\\x85\\xc9\\x9d\\x16\\xf5\\x41\\x67\\x82\\xde\\x17\\x35\\x85\\x87\\x47\\x0d\\xd1\\x3b\\x51\\x94\\xf2\\x0f\\x23\\x23\\x2b\\x2f\\x70\\x2f\\x10\\xaa\\xfc\\xaa\\x59\\xc7\\x06\\x6f\\x24\\xc4\\xc4\\x71\\xe4\\x2f\\xa8\\x6c\\x6b\\x9c\\x5c\\x3e\\x1e\\x8f\\x83\\x65\\xf4\\xdd\\x75\\xac\\xb3\\x2f\\xff\\xc0\\x53\\xc9\\xaf\\x41\\xc6\\xfd\\x2e\\xfa\\xc3\\x0e\\xcf\\x6a\\x2d\\xd0\\x08\\x5d\\xe9\\xb1\\xd8\\xcd\\xc5\\x0b\\x16\\x60\\xa8\\x66\\xdf\\x77\\x67\\x19\\x8b\\xd9\\xc8\\x73\\x70\\x61\\x5d\\x2b\\xca\\x99\\xf7\\x7b\\x84\\xd9\\x8d\\x7b\\x24\\xc9\\xc2\\x0f\\xd7\\x76\\x8f\\xd0\\x38\\x0d\\x6b\\x37\\x36\\x03\\x40\\xd1\\x35\\x98\\x04\\x78\\x20\\xdc\\xed\\x88\\xa8\\xd4\\x2d\\x57\\x29\\x37\\xb6\\xef\\xa1\\x69\\x21\\xa1\\xb2\\xb2\\xd0\\xeb\\x93\\x16\\x73\\x07\\x08\\x38\\xe6\\x11\\xe6\\xc0\\x23\\x29\\x0d\\x86\\xfe\\x90\\x2f\\x14\\xac\\x3a\\xcd\\x02\\x9e\\x33\\x97\\xfe\\xb9\\x7b\\x17\\x16\\x62\\x45\\xab\\x40\\x7a\\x76\\x6d\\x2e\\x09\\x04\\x42\\x4d\\x33\\xcd\\x3d\\x6e\\x2e\\x62\\xa5\\x2c\\x65\\xdf\\x7c\\xf0\\x04\\xd1\\x41\\x5c\\x0b\\x43\\x0c\\x11\\x27\\x62\\x3d\\xab\\x27\\x2a\\x2c\\x2e\\x2b\\x43\\xe0\\x2b\\x48\\x1b\\xe9\\x28\\xe8\\x99\\x54\\x27\\x28\\x32\\xbe\\x09\\x8b\\x50\\x2b\\x8b\\x56\\x43\\xc6\\x74\\x82\\xf5\\xde\\x44\\x03\\x03\\x25\\x81\\xf0\\x8a\\xfb\\x0a\\xea\\x48\\x86\\x85\\x82\\x60\\x7b\\xb3\\x91\\x98\\xc1\\xbf\\x13\\xa8\\x69\\xb6\\x32\\x58\\xa7\\x58\\x90\\xb6\\x94\\x45\\xff\\xd3\\x45\\x64\\x02\\x3e\\x47\\xf8\\xb1\\x88\\x4a\\x5e\\x49\\xb7\\xd9\\x42\\x5f\\x28\\xd5\\x15\\x30\\x13\\xfe\\x37\\x55\\xc6\\xcb\\x11\\x4d\\xb1\\x80\\xe6\\x0b\\x3d\\xc4\\xad\\xb3\\x6a\\x21\\x42\\x81\\x28\\x00\\x5a\\x77\\x2f\\xb5\\x71\\x89\\x34\\x55\\x65\\xbb\\xd1\\x75\\x98\\x13\\x52\\x3b\\xad\\x62\\x85\\x5e\\x79\\x28\\xee\\xf5\\x88\\x0d\\x3b\\xff\\xf1\\xd0\\xec\\x65\\xc2\\x45\\x92\\x33\\x5c\\xda\\x47\\xcf\\xcc\\x5b\\x5f\\xa6\\x52\\xb4\\x72\\x63\\x22\\x52\\x24\\x84\\x6a\\x20\\x9a\\x3d\\xd7\\x76\\x66\\x61\\xfc\\xa4\\xcc\\xca\\x59\\xc4\\x56\\xfc\\x9c\\xc3\\xe1\\xcf\\x80\\x42\\x55\\xaa\\x5f\\x39\\x7b\\xab\\x19\\x98\\x04\\x33\\x6b\\xde\\x29\\xe5\\x5c\\x6c\\x37\\x7d\\x58\\x3f\\x08\\x2c\\xe6\\x47\\x23\\x73\\x9e\\x4f\\x02\\x46\\x06\\xf9\\x06\\xc1\\x10\\xd0\\xa5\\xb6\\x10\\xe5\\xfe\\xd9\\x6d\\xab\\x5f\\x08\\xf4\\xcb\\x3c\\xfc\\x40\\xa3\\x55\\x57\\xe1\\xa7\\x40\\xb8\\xc7\\xc0\\x1f\\x7d\\x32\\x79\\xdd\\x9c\\x4e\\x87\\x64\\xc9\\x0b\\xc1\\x4f\\x41\\x61\\xdb\\x5a\\x37\\xf0\\x98\\x9b\\x7b\\xd8\\x03\\x5f\\x8b\\xea\\x39\\x4e\\xa1\\xd6\\x00\\x2c\\xe9\\xc3\\x4f\\x1e\\x9c\\x52\\xc6\\xa1\\x5d\\x15\\xbc\\x5b\\x25\\xc6\\xc1\\x5a\\xb0\\x0d\\xfd\\x6a\\x5b\\x1b\\xc9\\x17\\xaf\\x0b\\x1b\\x05\\xfd\\x10\\xd0\\x61\\xb3\\x68\\x3d\\x75\\xb5\\xf9\\xef\\xfb\\x22\\xae\\x72\\x08\\x5b\\xe4\\xf6\\x79\\x7b\\x58\\xcb\\x0c\\xab\\x56\\x18\\x44\\x12\\x1f\\x98\\xbf\\xd9\\x58\\x3e\\x0b\\xcc\\xb7\\x0f\\xad\\x76\\x98\\x0a\\x7a\\x73\\xb2\\x3c\\x70\\xb3\\xfd\\x02\\xf7\\x75\\x7c\\x11\\xa3\\xc2\\x1d\\x19\\xe0\\x56\\x50\\xff\\xb8\\x2b\\x9e\\x0d\\xf8\\xa6\\x73\\x5d\\x48\\x01\\x56\\xf4\\x79\\x49\\xd4\\x45\\x85\\x1b\\xae\\xaa\\x5e\\xe2\\x38\\x14\\xa4\\x1b\\x25\\x23\\x4f\\xb9\\x2c\\xc0\\xdf\\x19\\x80\\xd0\\x23\\xd5\\x1b\\x5c\\xf4\\xc3\\x11\\x85\\xc1\\x18\\xe3\\xee\\x3c\\x0c\\x0a\\x46\\xe0\\xa2\\xbe\\x6f\\x1d\\x3a\\xe4\\x52\\xcb\\xb6\\x6f\\x0f\\xd9\\x19\\x71\\x34\\x2d\\xa7\\xb1\\xb9\\x96\\x58\\x9d\\x94\\x09\\x67\\x81\\x55\\x21\\x95\\xc4\\x33\\xca\\xf1\\x9c\\x37\\xf9\\xf1\\x4f\\xa0\\xae\\x15\\xae\\x0b\\x02\\xb9\\x39\\xe4\\x02\\x03\\x4f\\xf8\\x18\\x85\\x93\\x9d\\x94\\x4e\\x60\\x4f\\x47\\x4f\\x21\\x52\\x43\\x89\\x39\\x0f\\xda\\xda\\x06\\xe3\\x0d\\x69\\x06\\x8c\\x88\\x48\\xcf\\x0a\\x95\\x1e\\xab\\x25\\xc4\\x91\\x25\\x62\\x94\\x4f\\x40\\x24\\x68\\x18\\x7a\\x23\\x23\\x9d\\x33\\x63\\x2f\\x29\\x12\\x3d\\x49\\xb7\\xde\\x13\\x08\\x33\\x98\\xdb\\xa9\\x7d\\xed\\xe1\\x2f\\x79\\x59\\xb9\\x52\\x47\\xa0\\x8f\\xc8\\xe4\\xb5\\x39\\x9d\\x1c\\x03\\x5c\\x08\\x94\\xcc\\x75\\xae\\x98\\x1c\\x2d\\xd4\\x93\\x54\\x13\\xbb\\xeb\\x68\\x53\\xfe\\x04\\x65\\x5c\\x77\\xd1\\x58\\xc1\\x23\\x7b\\x3e\\x0d\\xec\\xa5\\x63\\x6d\\x69\\xe0\\xdb\\xc5\\xac\\xaf\\x72\\xb6\\x0c\\x10\\xbb\\x98\\xcc\\xdd\\x60\\x09\\x8a\\x03\"},\n{{0x85,0xb4,0xd7,0x64,0x16,0x91,0x28,0x62,0x6f,0xd9,0xc7,0x82,0xad,0x61,0x16,0x22,0x9e,0xdd,0x77,0x63,0x1c,0x2b,0xc9,0xb8,0xee,0x54,0xb3,0x65,0x42,0xc1,0x49,0xeb,},{0x6a,0x09,0x89,0x7e,0x62,0x9b,0xb4,0x37,0x04,0xde,0xbb,0x67,0x15,0xc9,0xde,0xa5,0xd8,0x92,0xb6,0x34,0x30,0x64,0x40,0x99,0x7c,0x3c,0x9e,0x94,0xbe,0x8a,0xb5,0x47,},{0x4a,0x79,0xc4,0x42,0xa4,0xc3,0x9c,0x62,0x89,0x26,0x17,0xef,0x8e,0x80,0xb4,0x09,0x11,0xc4,0xb9,0xd3,0xff,0x0a,0x56,0x73,0xb5,0x7b,0xdb,0x84,0x54,0xad,0x73,0x67,0x69,0xdf,0x27,0xc7,0x8a,0x4b,0xf7,0xad,0x56,0x60,0x40,0xe7,0x47,0x27,0x8b,0x11,0xeb,0x65,0xcf,0x9e,0xc7,0xeb,0xa8,0x66,0x12,0x0a,0x36,0x54,0xf4,0x71,0x6e,0x00,},\"\\xb2\\xa0\\x49\\x3d\\x47\\x1c\\x33\\x91\\xf7\\xad\\xd1\\xe2\\xcf\\x0b\\xfb\\x32\\xab\\x05\\xdb\\xcb\\x14\\xf6\\xe4\\xf5\\xf3\\x46\\x3a\\xa8\\xd9\\x95\\x52\\xf4\\x33\\x02\\x20\\x46\\xd2\\xf8\\xeb\\x76\\x3c\\x01\\x71\\xfc\\xb1\\xe7\\x4a\\x04\\x9f\\xfe\\xb4\\xb8\\xf0\\x10\\x0b\\x82\\x10\\xfc\\xe8\\x56\\xb2\\xe1\\xa8\\xe7\\x39\\xd2\\xf9\\x36\\x73\\xef\\x8f\\x8f\\x40\\x49\\x8b\\x30\\x81\\xfa\\x1f\\xd7\\x85\\x19\\x8c\\x6d\\x37\\x0e\\x16\\x2d\\x41\\xab\\xe8\\x31\\x86\\xf2\\x32\\x97\\x83\\x40\\x8b\\x9b\\x88\\x0d\\x00\\xf8\\x1d\\x53\\x10\\x0b\\x42\\xd2\\x7a\\x26\\x1f\\x20\\xcd\\xee\\xd1\\x9c\\xc5\\x8c\\xb8\\x63\\x12\\x81\\xd8\\x0d\\xb1\\x92\\x53\\x10\\xe2\\x35\\xe4\\x49\\x66\\x30\\x9b\\x87\\x9b\\xdf\\xc2\\x32\\x22\\x14\\x33\\xba\\xe5\\xca\\xe4\\x66\\x90\\xcb\\x52\\x7b\\x67\\x79\\xe1\\x1f\\x1b\\xd2\\xa5\\x6b\\x59\\xc5\\x6e\\xd4\\xd9\\x4f\\xdf\\x7a\\xa8\\x9d\\xfa\\x9b\\xf2\\x0d\\xbf\\xa6\\xa4\\x39\\x8b\\x98\\x38\\x45\\x17\\xe1\\xdd\\x5d\\x2c\\xd9\\xce\\x52\\x4a\\x47\\x36\\x2e\\xf3\\x2a\\xc7\\x92\\x74\\x2a\\x12\\x9c\\x9e\\x06\\x13\\x08\\x76\\xab\\x5a\\xd5\\x51\\x8e\\xab\\xc5\\xe8\\x0b\\x02\\x2d\\x8f\\xa1\\x3e\\x50\\xd5\\x5d\\xed\\x58\\x95\\x33\\xe6\\xea\\x32\\x24\\x2c\\x1b\\x3f\\xd7\\xe6\\x5f\\x80\\xde\\xe7\\x20\\xb6\\xd8\\x7d\\xcf\\xf3\\xe3\\xdf\\x04\\xc8\\x02\\xd2\\xe9\\x14\\xa8\\x7a\\x36\\x29\\xc9\\x0b\\xb6\\x9e\\x0a\\x6f\\x8b\\xbb\\x5e\\xe5\\x05\\xf1\\x43\\xc9\\x97\\x73\\x75\\xad\\xb0\\x65\\xc3\\xe3\\xd3\\x91\\xf9\\x05\\xfa\\x3c\\x33\\x6c\\x9d\\xa4\\x1e\\x4a\\x23\\x20\\xbc\\xf4\\x60\\x97\\x6f\\xc7\\xeb\\x1f\\xb6\\xc6\\xa3\\xc3\\x95\\xdb\\xd1\\xd2\\x8a\\x1b\\x09\\xcd\\xb9\\xae\\x9f\\x9a\\xae\\xe4\\xd9\\xc5\\x66\\xa2\\xac\\x40\\xad\\xd8\\x70\\x47\\x9f\\xaf\\x54\\xad\\x1b\\x76\\x97\\x71\\x0b\\x4e\\xb6\\xf7\\x32\\x02\\x44\\xb5\\x97\\x57\\xd1\\xea\\xc3\\xd9\\x22\\xb7\\xa7\\x30\\xb1\\xac\\xf0\\xde\\x9a\\x45\\xd4\\xac\\x87\\x9d\\x21\\xfc\\x61\\x6e\\xf3\\x96\\x5d\\x74\\x34\\x5e\\xd7\\x07\\x79\\xeb\\x68\\x32\\x80\\xce\\xe2\\x5b\\xf3\\x73\\x9b\\xeb\\x6b\\x4c\\xdf\\xa2\\x5d\\x20\\x2d\\xa1\\x3a\\x4a\\x67\\x30\\x40\\xd9\\x70\\x48\\x65\\x8b\\x92\\x05\\x47\\x95\\x05\\xd0\\xbe\\xe4\\x88\\x0a\\x73\\x99\\x7c\\x70\\x82\\x5a\\x6e\\xc5\\xfd\\x9f\\x95\\x2e\\x65\\xfa\\x02\\x22\\x54\\x45\\xfc\\x3b\\xdf\\x4a\\xde\\xa3\\xd4\\xd2\\x25\\x51\\xcb\\xac\\xeb\\x38\\x74\\x79\\x8d\\x6a\\x33\\xa6\\x66\\x3f\\xe3\\x75\\x70\\x81\\xd6\\x24\\x3d\\xfd\\x7c\\xd2\\xee\\xbf\\x60\\xa3\\x89\\x9f\\xa1\\xf8\\xf6\\xc9\\x56\\xa3\\xb1\\x83\\xf8\\x9b\\x9e\\x7d\\x2c\\xa3\\x64\\x48\\x58\\x4d\\x53\\xaa\\x8b\\x44\\xe6\\x5a\\xd3\\xe5\\x27\\xf7\\x87\\x23\\xfa\\x6f\\x59\\x22\\x42\\x98\\xdf\\x31\\xd5\\xe8\\xad\\xa5\\x67\\xc8\\xd1\\xb1\\x1f\\x3b\\x13\\x14\\x75\\x53\\x31\\xc1\\x73\\x2d\\xc5\\x4a\\x12\\xa4\\x35\\x6e\\xdd\\xa4\\x7e\\x3c\\x13\\x0b\\x32\\x52\\x82\\xa3\\x54\\xbf\\xe1\\x5c\\x30\\x00\\xd2\\x07\\x82\\x29\\x31\\x79\\x41\\x87\\xe0\\x97\\x3a\\xb8\\xef\\x87\\xbf\\x89\\xc3\\x54\\xa0\\x35\\xa8\\x1f\\x45\\x91\\x12\\x23\\x56\\x3b\\xfd\\x99\\xf9\\x0a\\x75\\xe5\\x3d\\x01\\x0d\\x89\\x29\\xf4\\xf8\\x5a\\x5a\\x5a\\x4f\\x9f\\xcc\\x1c\\x78\\xf0\\xa2\\xfc\\x46\\x6f\\x5f\\x1c\\x65\\x22\\xcf\\x62\\xa7\\xbe\\x37\\x88\\x07\\x96\\xe9\\xb3\\xca\\x09\\x11\\xec\\xca\\x3f\\x22\\xc3\\xb2\\x4d\\x5d\\x9d\\xaa\\x68\\x88\\xf8\\x9a\\x8f\\x71\\xa1\\x58\\x59\\x35\\x9c\\xea\\x46\\x8e\\xf2\\x38\\xec\\xf6\\x46\\x19\\x27\\x83\\xa2\\x57\\xad\\xda\\xde\\x90\\x47\\xe1\\x3e\\xdd\\x8b\\xcc\\x1f\\xd4\\x17\\x7c\\xb2\\x0f\\x88\\xd1\\x19\\x98\\xd9\\xc7\\x26\\x2d\\x64\\x8c\\x2b\\xf6\\x6f\\xb2\\x27\\xb9\\xb3\\xa9\\xed\\x46\\x96\\x2d\\x22\\x57\\xa4\\x20\\xf6\\x4b\\xea\\xd9\\xe2\\x86\\x57\\xb5\\x21\\xdb\\x2e\\x22\\x16\\x52\\x87\\x79\\x1f\\x3a\\x1b\\xec\\x4c\\x78\\x22\\xa6\\xca\\xbd\\xe5\\xec\\x77\\x01\\x88\\xcb\\x74\\x49\\x8a\\x4f\\x08\\xe5\\xa3\\xa7\\x63\\x9d\\x24\\x0a\\xe3\\xf4\\xfd\\x03\\x53\\xc0\\xdd\\xa8\\xae\\x41\\x0b\\x9f\\xa7\\xf4\\x3f\\xee\\xd1\\x3e\\x9f\\x13\\xe6\\xc9\\x41\\x0a\\x1d\\x24\\xcd\\xfc\\x2c\\x8e\\x64\\xa1\\x5a\\x12\\xf7\\x55\\x45\\xb0\\xa5\\x75\\x71\\x35\\x23\\xd4\\xdf\\xa1\\xa4\\x74\\x27\\xa8\\x85\\x1b\\xa9\\xac\\xcc\\xad\\x78\\xb4\\xef\\x6a\\x18\\x5f\\x5c\\x3b\\x00\\x11\\x90\\xdd\\x8f\\x37\\x08\\x8a\\x00\\x0a\\xcc\\xf4\\x48\\xbe\\x8d\\x49\\x37\\x1d\\x9d\\xa2\\xe1\\xcb\\x5f\\xfe\\x07\\xd4\\x1a\\x5c\\x22\\xe9\\x46\\x60\\xac\\x37\\x13\\x5a\\xc8\\x58\\xcb\\x17\\x69\\xcb\\x66\\xe8\\x26\\x9f\\xd5\\x33\\x58\\xec\\xac\\xf5\\xdd\\x92\\xc7\\xeb\\x61\\x86\\xb4\\xd4\\xd6\\x13\\x0a\\x73\\x2d\\xc1\\x0b\\xbb\\x2b\\xe3\\x2f\\x9b\\x1d\\x69\\x51\\x01\\x4a\\x63\\x5c\\x12\\xd2\\x2f\\x0d\\xc5\\xbd\\x5c\\x2a\\x3f\\x96\\xae\\xc6\\x2e\\x77\\x77\\x94\\x7e\\xaa\\x02\\x28\\x12\\xca\\xce\\xd3\\x3a\\x5b\\xef\\x9f\\xf8\\x83\\x5f\\x88\\x03\\x67\\xa3\\x7b\\x0b\\x76\\xd2\\xdd\\xe3\\x96\\xc6\\x14\\xe1\\xa4\\x72\\x1e\\x00\\x0c\\x00\\xf1\\x61\\x93\\x5b\\x14\\xa7\\x38\\xa1\\xb7\\x0f\\x6e\\xa5\\x42\\x55\\xb7\\x95\\x18\\x69\\x64\\x62\\x12\"},\n{{0x33,0xd4,0x77,0x60,0x2f,0x29,0x63,0x05,0xa6,0x71,0x9e,0xa6,0x94,0xc0,0x44,0xe9,0x0d,0x23,0x3c,0x2d,0xea,0x85,0xc4,0x6a,0xbe,0x19,0x20,0xe8,0x8c,0x31,0x78,0x49,},{0xff,0x6f,0xee,0xa0,0x28,0xec,0x34,0x6d,0xd4,0x91,0x07,0xbb,0x71,0x3f,0xdd,0xbb,0x28,0x2e,0xbc,0xd0,0x34,0xe2,0xea,0xfc,0x7c,0xdb,0x1c,0x5a,0xdf,0x92,0x63,0x90,},{0xca,0xa2,0x87,0x98,0x95,0xd4,0xf6,0x20,0xb9,0xeb,0x5f,0xed,0x22,0xb4,0x56,0x2e,0xeb,0x1a,0xd6,0x38,0x22,0x96,0x8f,0x76,0xad,0x91,0x07,0x6b,0x16,0x6c,0x05,0xee,0x20,0x86,0x4d,0x98,0xbb,0xbc,0x6e,0x79,0xdd,0x03,0x62,0xca,0xcf,0x7a,0x21,0xb4,0xcf,0xc2,0x30,0xd6,0x35,0x5d,0x43,0x12,0x0c,0xff,0xfb,0x94,0x8b,0x8f,0x6c,0x0e,},\"\\xcf\\xea\\x07\\xa7\\x79\\xf1\\x53\\x7e\\x49\\x81\\x23\\xc6\\x76\\x29\\x05\\x73\\xef\\xcc\\x5d\\xb7\\x02\\x45\\xd9\\x3d\\xea\\x5c\\x05\\x72\\x6f\\x87\\x13\\xd0\\x02\\xae\\x66\\xc1\\xc9\\x69\\x07\\x47\\xca\\x92\\x30\\xb1\\x62\\x9d\\x36\\x62\\xab\\x73\\xd6\\x6b\\x94\\x98\\x79\\x16\\x4b\\x21\\xa3\\x5f\\x40\\xcf\\x37\\x99\\x04\\x19\\x08\\xed\\x6f\\x92\\x29\\xec\\xb3\\x90\\xc5\\xf2\\x22\\x34\\xe1\\xc5\\xf2\\x6b\\x3a\\xb5\\xba\\x59\\xe7\\x8c\\x64\\x96\\x98\\x71\\xb4\\x28\\xb7\\x85\\x16\\x77\\x75\\x55\\xaf\\x4e\\x89\\xc6\\xfb\\xc1\\x93\\xa9\\x46\\x95\\x22\\x6c\\x6d\\x32\\x99\\x91\\xa1\\x1b\\xd5\\x80\\xd1\\x89\\x56\\x08\\x9b\\x58\\xa0\\xe4\\x2c\\xa3\\x5f\\x6c\\x6d\\x26\\x09\\xad\\xe0\\xd0\\xb6\\x19\\xd4\\x89\\x25\\xc6\\x8c\\xd9\\xd2\\x25\\x0d\\xff\\x27\\xcf\\x2f\\x0d\\x44\\x44\\x87\\x09\\xb6\\x79\\xf3\\x5b\\xbd\\xce\\x0f\\x49\\x6b\\x0a\\x16\\xca\\x67\\xea\\xce\\xec\\x25\\x8b\\x1a\\xec\\x91\\x77\\x5a\\x3a\\x2e\\xe8\\x01\\xb1\\xc9\\xa2\\x26\\xa6\\xb0\\x01\\x92\\x6a\\x05\\x7a\\x06\\x30\\x67\\x27\\xee\\xda\\xe8\\xc5\\x77\\x53\\x1d\\xf0\\x4a\\xc0\\x9b\\x5b\\x49\\xbc\\xde\\xab\\xde\\xb8\\xac\\x4e\\x8e\\x82\\xcf\\x1e\\x7a\\xf8\\x35\\xfc\\x61\\x1c\\xa7\\xa6\\x84\\xb8\\x35\\x26\\x04\\x24\\x15\\xb1\\xd6\\x65\\x2e\\x86\\x34\\x31\\x1e\\x19\\x46\\x27\\xea\\xe7\\x8d\\x01\\x1e\\x6f\\x40\\xf6\\x45\\x79\\x4e\\x36\\x89\\x5a\\x23\\xe1\\xbd\\x84\\x88\\x3a\\x39\\x3e\\xcf\\xe5\\xa2\\x48\\x02\\x6a\\xea\\x86\\x44\\x70\\x59\\xf7\\xa4\\x29\\x36\\x8f\\x21\\xc8\\x9e\\x01\\x45\\x20\\x79\\x78\\xb9\\x13\\xc8\\x0a\\x22\\xd7\\xca\\xf2\\x67\\x3f\\x7c\\x76\\xf6\\xc2\\x6c\\xf8\\x84\\x41\\x2e\\x17\\xd0\\xc2\\x55\\x43\\x0f\\x50\\x2b\\xce\\x74\\xe3\\xa3\\x10\\xd1\\x7f\\x6f\\x4d\\x48\\x5d\\xa2\\x80\\xed\\x5b\\x5e\\xea\\x6c\\x49\\xba\\x74\\x8d\\x76\\x48\\x14\\xb9\\xe3\\xda\\xf6\\xfc\\xc2\\x18\\xc2\\x74\\x0c\\xa7\\x70\\x18\\xf7\\x13\\x44\\x51\\x9d\\xa8\\x2a\\xda\\x31\\xe0\\x01\\x92\\x4f\\xc7\\x76\\x79\\xe3\\xe9\\xff\\x9f\\xab\\x67\\xdd\\x09\\xa6\\x19\\x24\\xc8\\x21\\xa1\\xfd\\x99\\x9f\\x74\\xdf\\xa3\\xf8\\x19\\xad\\xb3\\x1d\\x15\\xe5\\xed\\x8a\\xaa\\x52\\xc1\\xbd\\x7c\\xca\\x26\\x67\\x11\\xa7\\x4d\\xd6\\x21\\x04\\xef\\x3c\\x2b\\xf7\\x37\\xfc\\xe6\\x94\\x2b\\x34\\x8a\\x33\\xc3\\xdf\\xd6\\xd9\\x2a\\x72\\x4b\\x6d\\x58\\x78\\x42\\x1a\\xeb\\x23\\x0a\\x53\\x3f\\xe2\\x1c\\x8b\\x2f\\xd3\\xda\\x59\\x6a\\x61\\x80\\xa4\\x5c\\x98\\x6d\\x7e\\xce\\x4c\\xdc\\x8a\\xd6\\x81\\xea\\xd6\\x90\\x64\\xbb\\xdd\\xfc\\x20\\xf3\\xc5\\x21\\x25\\xf8\\x33\\x95\\xbe\\xd1\\x55\\x7f\\x67\\x18\\x2b\\x9f\\xe9\\x91\\x38\\xaf\\x3c\\x35\\x6c\\x5e\\x65\\x29\\x78\\xdd\\x23\\x8b\\x76\\x1c\\x74\\x2f\\x81\\x58\\xe2\\x31\\x4b\\x96\\x42\\x08\\x33\\x09\\x78\\xb0\\x62\\x0a\\x13\\xa1\\x6d\\x76\\x1d\\x52\\xf0\\x6e\\x46\\x6a\\x40\\x94\\xb6\\x5c\\xd6\\xf2\\x68\\x54\\xae\\xd6\\xf9\\xa8\\xc2\\xa8\\x84\\xa0\\xd0\\xbf\\x4e\\xe5\\x87\\xee\\xb8\\xb6\\x02\\x48\\x72\\x39\\xa7\\xe5\\x81\\x72\\xc8\\x09\\x98\\x3a\\x8d\\xb1\\xc1\\xfc\\x7c\\xe8\\xc4\\x8b\\xc8\\xa6\\xfb\\x81\\x2d\\x6a\\xa9\\xe8\\x3a\\x3a\\xb4\\xdd\\xf7\\xa8\\xd4\\x0d\\x3f\\xe0\\x0e\\xa1\\x6e\\x04\\x06\\x2b\\x8a\\xce\\xb9\\xc9\\x9e\\xef\\xa4\\x1f\\x4f\\x87\\x44\\x78\\x28\\x12\\x6d\\x0d\\x9c\\x9f\\x86\\x05\\xe8\\x46\\x7c\\x5e\\x4d\\x67\\x1d\\x5c\\x6d\\x9f\\xa7\\x0d\\x74\\x70\\x98\\xd9\\x41\\x21\\x12\\x23\\xb9\\xbc\\xf2\\x61\\x93\\x8d\\x67\\x04\\xa3\\x2d\\x22\\xc6\\x1e\\x30\\xf3\\x57\\x0a\\x1f\\x5d\\x09\\x98\\xb4\\x79\\x10\\x80\\x88\\x2a\\xa5\\x62\\x31\\x67\\xb6\\x3a\\x23\\xf3\\x40\\xf0\\xe7\\xc6\\xf9\\xa8\\x30\\xa7\\x5b\\x74\\x63\\x1f\\xa5\\xb5\\x7a\\xfd\\xb1\\xe6\\xbc\\x22\\x69\\x9b\\xb0\\x31\\x56\\x67\\x5d\\x59\\x83\\x53\\xa5\\xd1\\xb5\\x58\\x97\\xe4\\xc1\\x10\\x61\\xdd\\x14\\x5f\\x23\\xe8\\x53\\x7c\\x63\\x2f\\x75\\xc1\\x0d\\xf0\\x5b\\x25\\x54\\x72\\x38\\x57\\x40\\x17\\xfe\\x7b\\x64\\xb8\\xe9\\x98\\x69\\x15\\x7f\\xee\\x35\\xf7\\xad\\x7e\\x63\\xe9\\x95\\x93\\x30\\x29\\x29\\x50\\x3a\\x96\\x76\\x80\\x23\\xb4\\x12\\x5a\\xd7\\x49\\xdf\\xf4\\xb9\\x92\\xee\\x5c\\x2b\\x4f\\x3a\\xda\\x48\\x89\\xe4\\xae\\x62\\xec\\x15\\xd2\\xdb\\x59\\x69\\xd7\\x30\\xdb\\x30\\x75\\x47\\xf6\\x38\\xc3\\x18\\x50\\x32\\xb1\\x2f\\x75\\xfb\\xb3\\x17\\xe4\\x7d\\xf7\\xb9\\x29\\x2a\\xe9\\xe7\\x6a\\x2c\\x0a\\x06\\xfc\\xad\\x10\\x8c\\xdd\\x23\\x5f\\x6e\\x38\\xd9\\x67\\xb6\\x37\\x95\\x11\\xff\\x69\\x65\\xc2\\x2f\\x2c\\x66\\x80\\xa1\\x2b\\x03\\x04\\xeb\\x2b\\x29\\x6c\\x99\\xa7\\x6c\\x27\\x29\\xd9\\x8e\\x0a\\x78\\x24\\xb6\\x7f\\x3f\\xe8\\x42\\xd6\\xf6\\xab\\x27\\x3e\\x89\\x48\\x45\\xb3\\x2d\\xc6\\xdd\\xfc\\x7a\\x22\\x0f\\x76\\xbd\\x96\\x5c\\x69\\x85\\x81\\x83\\xc8\\xf3\\x57\\x39\\x5f\\xc5\\x7d\\xc8\\x29\\xde\\xfa\\xac\\xb5\\x60\\x3a\\x75\\x78\\x68\\xd5\\xe5\\x62\\xf9\\x78\\x1e\\xe3\\x9e\\x0e\\x94\\x68\\x8a\\xd3\\x54\\x5b\\x32\\xdd\\x73\\x66\\xb6\\xb0\\x47\\xe8\\xd1\\xd3\\xd5\\x65\\x99\\x7b\\x23\\x6e\\x7f\\x75\\x96\\xc5\\xf8\\xd7\\xc1\\xc1\\x1b\\xcf\\x4a\\x24\\x46\\x20\\xcb\\xd2\\x1d\\x55\\x9a\\x7c\\x9b\\x3f\"},\n{{0x70,0x74,0x56,0x86,0x11,0xa6,0x6d,0xfc,0xa8,0x30,0x7c,0xae,0x60,0x8b,0xb2,0x69,0x95,0x84,0x4d,0xf4,0x35,0xe5,0x30,0x0e,0x5b,0x4d,0x72,0x91,0xcc,0x22,0x90,0x7f,},{0xdd,0xab,0xdd,0xd1,0x5e,0xaf,0x83,0x11,0x5d,0xdd,0x06,0x5d,0x7e,0x22,0x0b,0x1e,0xfc,0x26,0x2a,0x61,0xc5,0x2e,0x91,0x43,0x47,0x44,0x2b,0xde,0x6d,0x00,0x25,0x06,},{0x7f,0x65,0x31,0x34,0xc0,0xb9,0x0f,0x44,0xa4,0x89,0xf0,0xb0,0x5f,0xc4,0x07,0x07,0xad,0x9f,0x13,0x98,0xf3,0x40,0xb4,0x47,0xa3,0xc9,0x86,0x1f,0x51,0x1c,0x9f,0x15,0x68,0x80,0x3b,0x76,0x84,0xa0,0x4a,0x89,0x8c,0x45,0x15,0x4d,0xd4,0x86,0xbd,0x50,0x75,0x89,0x98,0xe1,0x26,0x43,0x93,0x78,0xb3,0xf5,0x9f,0xf3,0x67,0x49,0x2a,0x0a,},\"\\x6c\\x13\\x74\\x23\\xea\\xc7\\x90\\xb8\\xe8\\xe4\\x18\\xb2\\x90\\xe0\\x57\\x9c\\x7b\\x86\\xb1\\x4a\\xed\\x81\\x8d\\xe8\\xce\\x53\\xce\\xa3\\xf3\\x40\\xa1\\xa9\\x53\\x91\\xf9\\x84\\x96\\x8f\\x2b\\x42\\x29\\x28\\x2a\\x81\\x61\\xc0\\x9a\\xb1\\x49\\xcd\\xac\\xd6\\x69\\x70\\xb4\\x01\\x3f\\x52\\xe5\\xe6\\x8e\\xa8\\xc9\\xdb\\x68\\x5b\\x2c\\x53\\x07\\x35\\x00\\xe5\\xb3\\x5e\\x29\\xea\\x0b\\xa1\\xf4\\xd1\\x59\\xa5\\x58\\xd3\\x61\\xb0\\x65\\x16\\x83\\x6c\\xf7\\xb9\\xea\\x50\\x1f\\xa0\\x50\\x6b\\x98\\x5f\\x03\\x6a\\x82\\xd9\\xe0\\x84\\x48\\x9d\\x3b\\xfe\\xd3\\x40\\x93\\xe2\\xd6\\xd9\\xed\\xf5\\x57\\x85\\xed\\x35\\xa9\\x0c\\xe5\\x6c\\x76\\x16\\x86\\xcc\\x3e\\xa1\\xa2\\xc7\\x6a\\xda\\x5e\\xc8\\xc1\\x45\\xd8\\x18\\xb0\\x47\\xcc\\x51\\x6e\\xec\\x5d\\x2d\\x6a\\x93\\xa5\\x55\\x92\\xd8\\x92\\xe3\\xd5\\xcd\\x10\\xc2\\x50\\xc0\\x4b\\x04\\x9b\\x38\\xfc\\x7e\\xc0\\xf3\\x9a\\xba\\x15\\x82\\x40\\x07\\x33\\x6c\\x2b\\x0f\\x7f\\x81\\xd6\\x4d\\x5c\\xa3\\xe2\\x9d\\x6f\\xda\\x4c\\x23\\xd9\\xba\\x65\\xd9\\xfe\\x3c\\xb4\\xe0\\x39\\x13\\x69\\x72\\x87\\xb4\\x6a\\x0b\\x1f\\xcc\\xd2\\x62\\x4e\\x39\\x7a\\xe9\\x5c\\x52\\x54\\xbc\\xd8\\x8d\\x2c\\x7c\\x8f\\x70\\xfd\\xc8\\x17\\x3f\\x64\\xc1\\xde\\x32\\x28\\x1a\\xb4\\x18\\x46\\x93\\xb4\\x8a\\x34\\x9e\\x67\\x82\\xbc\\x89\\x92\\xb4\\x3c\\x7d\\xe7\\xcb\\x9d\\x33\\x92\\x9b\\xf9\\x53\\x06\\xc2\\xaf\\x7e\\x93\\x8d\\x84\\x86\\xb3\\x86\\xf9\\xfd\\x3f\\x0f\\x71\\x61\\xe0\\xe6\\x86\\x2d\\x4f\\x92\\x81\\x44\\x68\\x65\\xa1\\xc9\\xbe\\x24\\x60\\xef\\xbc\\x20\\x15\\x1b\\x06\\xe7\\x9d\\x01\\x46\\x17\\xd0\\x30\\x0e\\x67\\x1d\\x48\\x76\\x74\\x58\\x59\\x66\\x25\\xb7\\x6d\\xff\\xc5\\x58\\xaa\\x9b\\x40\\x61\\x21\\x96\\xec\\x82\\x7e\\x1c\\x6f\\xff\\x51\\x8f\\xb7\\xad\\x4b\\xf8\\xc4\\x6f\\xcb\\x27\\x88\\x85\\xaa\\x49\\x1b\\x77\\xa2\\x89\\x95\\xcf\\xb9\\xd7\\x96\\x40\\xaa\\xd1\\x74\\xc6\\xdf\\x43\\x93\\x8e\\x3f\\x13\\x85\\x20\\x5c\\x54\\x59\\x5b\\x33\\xde\\xde\\x50\\x14\\x37\\x46\\xa1\\x70\\x5e\\x7e\\x0b\\x69\\xaf\\x4a\\x26\\xc3\\xb7\\x65\\x15\\x05\\x18\\x92\\xb1\\x5c\\xa6\\xe4\\x8c\\x3d\\x91\\xfb\\xc7\\x5e\\x8f\\xe4\\xa0\\xfe\\x8e\\xd2\\xc2\\x6c\\x10\\x73\\xbe\\xb7\\x0e\\xa3\\x8d\\x09\\x27\\x02\\x92\\x78\\x40\\x67\\x55\\xae\\x6e\\x11\\xda\\x37\\x86\\x53\\x64\\x95\\x15\\xe0\\x08\\x5b\\x5e\\xa7\\xdb\\x32\\x49\\x20\\x8e\\x33\\xa6\\xc8\\xb6\\xae\\x8c\\xd8\\x0c\\x9b\\xd6\\xb9\\x83\\xe7\\x3e\\x9b\\x91\\xdb\\xec\\x09\\x1f\\xae\\x99\\x5f\\x80\\x32\\x42\\x7e\\xde\\xc0\\x2c\\xad\\x90\\x55\\xeb\\x8b\\x7d\\xbc\\xfa\\x80\\xd4\\xf6\\x4f\\x57\\x27\\xa1\\x52\\xf1\\x1c\\x47\\xe5\\x2d\\x75\\x3a\\x57\\xb6\\xe5\\xfd\\xdf\\x77\\x4c\\xea\\x4d\\xa9\\x10\\x02\\x68\\x19\\xc4\\x1e\\x32\\xb4\\xf1\\x99\\x72\\x7e\\x23\\xc5\\x4a\\xb5\\xd7\\x01\\x42\\xb8\\x54\\xa2\\x7b\\x04\\xe6\\x4c\\xf4\\x4a\\xf2\\xa8\\x99\\x5e\\x12\\x00\\xbd\\x11\\x7c\\x7a\\x16\\x74\\xed\\xef\\x59\\xbc\\x53\\xf7\\x3a\\xda\\xf6\\x38\\xe0\\x77\\x3b\\x85\\xb5\\x63\\x34\\xaf\\xf6\\xe1\\x17\\x43\\xe3\\xa3\\xd3\\x61\\x4a\\xa8\\xa3\\x75\\xb3\\x78\\x1e\\xc8\\x14\\xcc\\x08\\xe7\\x1e\\xfa\\x78\\x18\\x51\\x9c\\xb2\\x4a\\xf8\\x2c\\x33\\x1d\\xfd\\x6a\\xc7\\x8e\\xc1\\x7f\\xd7\\x17\\x4b\\x61\\x02\\x1e\\x8c\\xf9\\x01\\xa2\\xaa\\xa6\\xad\\xbc\\x90\\x2a\\x91\\x6b\\x2a\\x2f\\x4f\\x79\\xe5\\x51\\x50\\x1f\\xbf\\x01\\xdf\\x6b\\x85\\x18\\x50\\x4c\\x1e\\x94\\x64\\x69\\x38\\xbe\\xd1\\xa8\\x50\\x9c\\x2a\\x38\\xfb\\x6a\\x79\\x8a\\x78\\x58\\xf4\\x09\\xb0\\xf2\\xfb\\x9b\\x3f\\x48\\x17\\xe5\\x68\\xc5\\x2d\\x9a\\xbf\\xe2\\x16\\x8c\\xc3\\x65\\x0f\\xc4\\x3e\\x0f\\x99\\x75\\xfe\\x29\\xe3\\x3a\\xed\\x1a\\x7b\\xf3\\x0d\\x86\\x31\\x15\\x07\\x90\\x65\\x0a\\x3c\\xb7\\x8c\\x36\\x8f\\x1a\\xea\\x9a\\xc6\\x0c\\x5e\\xeb\\x96\\x9a\\x45\\xf8\\x4a\\xa3\\x73\\x66\\xa8\\x39\\x77\\x19\\x0f\\x41\\xae\\x42\\x1e\\x0c\\x46\\xfd\\xa3\\xfa\\x01\\xb9\\x26\\xfc\\xef\\x82\\x24\\xfd\\xa3\\x6d\\xf4\\xf8\\xa8\\x77\\x01\\xfe\\x79\\xfe\\x06\\x28\\xef\\x0c\\xc0\\x2d\\xf2\\xbd\\x78\\x32\\x07\\xc7\\xdb\\x87\\x11\\x9a\\x03\\x69\\xfe\\x16\\xee\\xb3\\x8f\\xdc\\x9f\\xb3\\x5d\\x9e\\x19\\x5f\\xe1\\x4f\\x8c\\x10\\x38\\x20\\x8a\\xb9\\x77\\x00\\xaf\\x79\\xf2\\xe2\\xe0\\x54\\x96\\x83\\x02\\x07\\xc7\\xda\\x8d\\xbe\\x8e\\x9b\\xb7\\x3b\\xc4\\x71\\xa4\\x3f\\x1b\\xe6\\x50\\xfa\\x92\\x81\\x9a\\xeb\\x5d\\xc7\\xee\\xd7\\xee\\xd8\\x17\\x12\\x70\\xd2\\x19\\x25\\x7d\\x19\\x61\\x0b\\x89\\xd2\\xd6\\x2d\\x3f\\x5b\\x64\\x8e\\x13\\x9e\\xed\\xf1\\xff\\x74\\xbe\\x01\\xa5\\xef\\x1d\\x95\\xf8\\x12\\x92\\x26\\x01\\xee\\x92\\x51\\x51\\x57\\xc4\\xec\\xad\\xfa\\x3e\\xef\\x9f\\x2a\\x67\\x7c\\x00\\x3c\\xa4\\xab\\x9b\\x2c\\x45\\x47\\x2c\\xe5\\x5e\\x18\\xf4\\x0a\\x21\\xfe\\x1b\\x0d\\x45\\xb5\\x0b\\x50\\xc5\\x2a\\x0b\\x1a\\x5d\\x7c\\x37\\xd8\\xeb\\xc1\\x5e\\x02\\x05\\x84\\xd9\\xed\\xd7\\xb5\\x65\\x05\\xf8\\x20\\x78\\xe0\\xf8\\x99\\x38\\x91\\x35\\x01\\x4c\\x86\\xd1\\xe2\\xed\\x49\\xf9\\xcd\\x31\\x90\\x76\\x94\\x35\\x53\\xa3\\x12\\xae\\x05\\xab\\x33\\x35\\x26\\xe1\\x36\\x71\\x4f\\x09\\xa4\\x02\\xb3\\xc8\"},\n{{0x7d,0x7c,0xa8,0xe8,0xd3,0xb8,0x43,0x44,0xa5,0xe4,0xde,0xa0,0x8b,0x33,0x8d,0x8f,0xaa,0x5f,0xfc,0x11,0x9c,0xe5,0x66,0xef,0x65,0x6f,0x0f,0x45,0x84,0x77,0x5b,0x21,},{0x0b,0xde,0x34,0xb7,0x46,0xd2,0xc5,0x49,0x08,0x53,0x06,0x4d,0x48,0xc6,0xb4,0xc1,0xcb,0xbc,0x3e,0xe7,0xbe,0xff,0x5e,0x8f,0x68,0x4c,0x12,0x0f,0x31,0x5d,0x7e,0x4e,},{0xd0,0xc3,0xe2,0x48,0xa8,0xcb,0x2d,0xdc,0x7e,0x9f,0x21,0xc9,0xc5,0xb0,0x09,0xf7,0x0e,0xa2,0x9d,0xa6,0x89,0x7c,0xd9,0x2c,0x26,0x0f,0x04,0x7e,0xd6,0x8a,0xa1,0xc8,0xb9,0x65,0x7f,0x9d,0x82,0x6e,0x88,0xf4,0xa5,0x12,0xc5,0x00,0x3b,0xe6,0x40,0x68,0x80,0x74,0x12,0x63,0xae,0x7c,0xe6,0x86,0x0e,0xfe,0x73,0xad,0x54,0xd4,0x82,0x04,},\"\\x0b\\x72\\x70\\x75\\x34\\x5d\\x61\\x9f\\x5c\\xdc\\x7f\\xc4\\xc4\\x3c\\xdc\\x19\\x10\\x58\\x11\\xd9\\x5d\\x06\\x9f\\x81\\xc0\\xa6\\x2f\\xe1\\xe1\\x17\\x8c\\xf1\\xc3\\x5d\\xb0\\x5e\\x2d\\xe8\\x7d\\x11\\xae\\x1a\\x6f\\x53\\xef\\x38\\xb3\\x9b\\xf4\\xed\\x8f\\xbf\\x56\\xef\\x01\\x7a\\x1d\\x3c\\x15\\xb6\\x4f\\xe4\\xb2\\x61\\x0b\\xf6\\x9b\\xd1\\x9a\\xc7\\xaf\\xd4\\x6a\\x2b\\x87\\xb4\\x88\\xb6\\xc7\\x8a\\xd4\\x56\\x81\\x1c\\x1d\\xd6\\xbd\\x4a\\x6b\\x5d\\xa6\\x98\\x73\\x9f\\xd1\\xa1\\x4c\\xeb\\x9f\\x27\\xf1\\x24\\xb6\\x9f\\x6b\\xd1\\x6d\\xe5\\x53\\x7a\\xad\\x80\\x68\\x1c\\x56\\x33\\x58\\x03\\x94\\xda\\x3b\\x84\\xe9\\xb7\\xa5\\x5e\\xba\\xb8\\x52\\x2d\\x2d\\x6b\\xf1\\xaa\\x4e\\x7b\\x15\\x9c\\xbf\\x4e\\x20\\xb5\\x0b\\xfe\\x9c\\x71\\x1a\\xa0\\x47\\x11\\x9f\\x1d\\xad\\x87\\x49\\x26\\x0b\\x87\\x63\\x9e\\x9c\\x14\\x1d\\xef\\x62\\x02\\x6a\\x99\\x03\\x73\\xdc\\xfd\\x99\\xf7\\x7b\\x0f\\x5e\\xa6\\xad\\xfd\\x8f\\x59\\x4b\\x9c\\xe4\\x10\\x64\\xa5\\xed\\x30\\x7b\\xf2\\xd8\\xd1\\x73\\x70\\x49\\x8a\\xd7\\xf4\\x5f\\x9c\\x4d\\xd2\\x6c\\x42\\x0f\\x45\\x0f\\x53\\x62\\x3b\\xb6\\xd7\\xf3\\xf4\\x6a\\x14\\x9d\\x8f\\x13\\x5b\\xc2\\x91\\x33\\x10\\xfb\\x8f\\x90\\x43\\xd0\\x99\\x27\\x8b\\xbe\\xba\\x39\\x17\\x9f\\xa3\\x67\\xb0\\x16\\x73\\xe1\\xc9\\x53\\xef\\xfd\\x2c\\xae\\xa7\\x31\\x1c\\x47\\xc0\\x37\\x27\\x44\\x09\\x5b\\x1c\\x8f\\x90\\xee\\xf5\\xf1\\x92\\x9d\\xb1\\x99\\x6c\\xd5\\x84\\xf6\\x15\\xd5\\x6f\\xae\\x3a\\xec\\xac\\x3e\\xe8\\x8b\\xd0\\xb2\\x96\\xf4\\x49\\xcc\\x27\\x13\\xc5\\x2d\\xa6\\x95\\x24\\x8f\\xaa\\x8e\\x38\\x9b\\x05\\xa0\\xbc\\xac\\x69\\xdc\\xe9\\x71\\x97\\x23\\x19\\x4f\\x43\\x3b\\x02\\x97\\xeb\\x08\\x59\\x01\\x9f\\x14\\x1a\\x20\\x7c\\xe8\\xcc\\xb5\\x98\\x82\\xca\\xa6\\xe1\\x8f\\x0b\\x43\\xbd\\xdd\\xb9\\x0a\\x0a\\x85\\xff\\xd5\\x77\\xd6\\x39\\x4a\\x1d\\x80\\x48\\x94\\x10\\xf9\\x2a\\xfb\\x85\\xba\\x50\\x6a\\xa9\\xf3\\xf4\\x27\\x44\\x5d\\x21\\x22\\x4b\\x9c\\xb0\\x46\\xc0\\x5f\\x1b\\xac\\xd7\\xb7\\x49\\xfb\\x7b\\x10\\x24\\xd0\\x92\\xe4\\xee\\x4b\\x30\\xa4\\x6e\\xdf\\x71\\x84\\x70\\xc9\\x94\\x91\\xc6\\x8f\\x48\\x79\\xd6\\x2b\\xfc\\xe7\\x04\\x6d\\x81\\x38\\xcb\\xb9\\xe7\\x21\\x29\\x99\\xa4\\x49\\x8b\\x45\\x5f\\xc9\\x0a\\xc2\\x83\\xe9\\x35\\xde\\x04\\xdf\\x6f\\xc9\\x99\\xe4\\x43\\x4b\\xe1\\x10\\x63\\xd6\\xe4\\xee\\x9e\\x09\\x6a\\x87\\xbc\\x71\\x6d\\x2c\\x81\\x99\\x16\\xc3\\x7a\\x4e\\x62\\x98\\xc4\\x99\\x45\\x36\\x6e\\xc3\\xf5\\x00\\x72\\x0b\\x06\\xdc\\x99\\xd3\\xd8\\xac\\x30\\x3e\\x6c\\x26\\x4e\\x28\\xa7\\xc2\\xd4\\x19\\xec\\x62\\x2a\\x97\\xa7\\x11\\x54\\x4f\\xb1\\xf4\\x73\\x5b\\x11\\xf8\\xbb\\x1d\\x7e\\x2c\\x81\\x6a\\x15\\x62\\x87\\xb4\\xcc\\x0c\\x65\\xaa\\xa2\\x80\\xb8\\x37\\x73\\x7f\\x0a\\x84\\xe3\\x6d\\xe2\\xdf\\x2f\\xc3\\xa5\\x0d\\xf9\\x80\\x91\\x8f\\xb9\\xe5\\x83\\x4b\\x42\\xac\\x0e\\x0c\\x72\\x78\\xd7\\xfe\\x8d\\xb4\\xdb\\xde\\xca\\x01\\x41\\xd5\\xfe\\xf5\\xdc\\x61\\x51\\xf8\\x7b\\x86\\x34\\xc2\\x41\\xa8\\xfa\\x0a\\x82\\x71\\x78\\x99\\x77\\x3a\\xe8\\x9f\\x53\\x78\\x90\\xb9\\x15\\x5a\\x7a\\x05\\xbc\\xe4\\x78\\x66\\xec\\x20\\x28\\xa4\\x78\\x98\\xd4\\x85\\x82\\x3a\\x2e\\x99\\x23\\x19\\x68\\x0e\\xb6\\x99\\xb0\\xdd\\x53\\x58\\xf5\\x46\\xfc\\x53\\x7c\\x73\\xd3\\xa4\\xb2\\x23\\xa0\\x94\\x15\\x18\\xb6\\xd1\\xe6\\x6b\\x27\\x67\\x6c\\x1b\\x1f\\xc7\\x6a\\x08\\x32\\x05\\x24\\xa7\\x2e\\x29\\x7f\\xce\\x17\\xaa\\x80\\xd8\\xea\\x7b\\x38\\x8a\\x55\\x16\\x8e\\x7d\\xad\\xb8\\x36\\xe9\\xde\\xe7\\x07\\xed\\x25\\xc0\\xee\\x4d\\xb2\\x5b\\xee\\x3c\\x48\\x5b\\x39\\x64\\x92\\x04\\xef\\xaf\\x28\\x20\\xb2\\x73\\x63\\x68\\xfc\\x77\\x3c\\xe0\\x90\\xc3\\x85\\x37\\x80\\x02\\xc4\\x71\\xb0\\x94\\x79\\x5c\\xb2\\x66\\xd3\\x9e\\xb7\\x58\\x0d\\x70\\x1b\\xe4\\xc8\\x91\\x6f\\x6b\\x38\\xbf\\xe2\\x5f\\xdf\\x36\\xd6\\xc4\\xad\\xaf\\xa9\\xae\\x98\\x64\\xc5\\x7b\\xb7\\x37\\xb4\\x95\\x06\\xed\\x38\\xd6\\x2d\\xe6\\x0c\\xc0\\x59\\x9e\\xc6\\xbb\\x1a\\xcf\\x24\\xb1\\xd3\\x7d\\x60\\xef\\xde\\xb7\\xd9\\x42\\xc5\\x36\\x03\\xa2\\xf0\\x47\\x6e\\x95\\x12\\xc9\\x38\\xb2\\x8d\\x49\\x5a\\x6f\\x26\\xa9\\x07\\xc3\\x96\\xb8\\x41\\xae\\xdd\\x8e\\x14\\xac\\x44\\x7b\\x49\\x5d\\xf1\\xf6\\x76\\xda\\xcc\\xd5\\xa7\\x40\\xc0\\x42\\xf5\\x77\\x2b\\x7d\\xb1\\x7f\\x4f\\x1a\\x3a\\x1c\\x8e\\x7c\\x48\\x83\\x70\\xe7\\x36\\xb5\\x1e\\x69\\x0f\\xd2\\xdd\\xcb\\x5a\\xa6\\x19\\x57\\xa7\\xc7\\x97\\x5a\\xcb\\x2d\\xcb\\x91\\x5d\\x07\\x4d\\x74\\x42\\x79\\xea\\x1c\\x41\\x69\\xf8\\x68\\x87\\x3a\\xc5\\xc2\\x08\\x90\\x16\\x2c\\x1d\\xf9\\x65\\x64\\x19\\x97\\x5a\\x43\\xd3\\x19\\x8e\\x18\\xc3\\x09\\xa1\\xeb\\x7c\\x1d\\x87\\x87\\x3f\\xb1\\x5c\\x6d\\xa4\\x7f\\x54\\x8a\\x01\\xf6\\x9b\\xda\\xb9\\xc3\\x9e\\xf0\\x0d\\x41\\x8a\\x6f\\x61\\x9d\\xd7\\x3d\\x7d\\xb4\\x5c\\xbb\\x6a\\xd2\\x25\\xa2\\xde\\x78\\x7b\\xa7\\x77\\xbc\\x73\\xd2\\x8f\\xc3\\x04\\xf1\\x00\\x09\\xf4\\x02\\x2c\\x2c\\xf8\\x4d\\xe0\\x08\\xd7\\x0f\\xcd\\xc8\\xba\\x7f\\x10\\x7c\\x36\\x98\\x59\\xe9\\xc9\\x0c\\xa8\\xa3\\x93\\xb5\\x53\\xf2\\x66\\x05\\xff\\xd7\\x23\\x0c\\x92\\x14\\x90\\x70\\x0f\"},\n{{0xd2,0x1f,0xdd,0x7b,0x10,0xe5,0x4a,0x8b,0x6b,0xe9,0x5a,0x02,0x24,0xad,0x70,0x66,0x4d,0xd9,0x21,0x12,0xe2,0x68,0x3a,0x4f,0xd2,0x79,0xc4,0x07,0xdb,0x38,0x71,0xbb,},{0xf8,0x9c,0x27,0x2e,0x7d,0x1c,0xc9,0x3d,0x69,0xf6,0x94,0xde,0xc9,0xcc,0xe0,0x5a,0xc2,0x47,0x73,0x45,0x04,0x82,0x9c,0x56,0x99,0x74,0x13,0xc8,0x95,0x8b,0x93,0x30,},{0x6d,0x69,0xe8,0x3b,0x3e,0x7e,0xd5,0x5a,0x85,0xf9,0xfc,0x9d,0x25,0x19,0xda,0x0b,0x0a,0x1e,0xb4,0xda,0xae,0xe9,0x91,0xa6,0x65,0x1f,0x5c,0x89,0x19,0x0c,0x0d,0xe7,0x23,0x73,0xcd,0x98,0x9d,0x46,0xbe,0x13,0x67,0xf9,0xda,0xf1,0xb9,0x2f,0xed,0x3b,0x52,0xbb,0xa5,0x4a,0x1e,0x4c,0xca,0x5b,0xc8,0x72,0x6e,0xd0,0x7f,0x30,0x25,0x01,},\"\\xb8\\x64\\x4a\\xdb\\xef\\x9c\\x7c\\xab\\x91\\x20\\xac\\xed\\xc8\\xe7\\x5c\\x43\\x3d\\x03\\x6f\\xfa\\xe0\\xf9\\x55\\xbe\\x6a\\x48\\x8f\\x1f\\x42\\x7a\\x68\\xa8\\x90\\x2d\\x02\\x6e\\x63\\xdd\\x6c\\x9b\\xf9\\xd9\\x7d\\xe7\\x86\\xb3\\x1d\\xd4\\xf4\\xc9\\xa4\\xf8\\xa6\\x22\\xf1\\xff\\xc8\\x4d\\xa6\\x96\\x7c\\xa7\\x74\\x33\\xc3\\x98\\xf4\\xd3\\xf1\\xc4\\x43\\x49\\x89\\xb7\\xac\\x9d\\x0f\\x3b\\x1b\\xe0\\xc8\\xb3\\x52\\x82\\x4f\\x4e\\x7a\\x08\\x3f\\x34\\x2e\\xc1\\xbe\\x1d\\xa8\\xfb\\x75\\x52\\x42\\xa6\\x54\\x88\\x0e\\xf2\\x98\\xf0\\x59\\x79\\xff\\x02\\x6d\\xdc\\xc0\\x44\\x86\\x0e\\x67\\x57\\xa2\\x9c\\xfa\\xa2\\x22\\xa3\\x59\\x7e\\x38\\xf1\\x77\\x99\\x62\\xa4\\x1a\\x4c\\x8c\\xe6\\xa6\\x5b\\x87\\x81\\x99\\xb4\\xd8\\x0f\\x4a\\x03\\x90\\xca\\xc1\\x9c\\x22\\x6e\\xea\\x4b\\x60\\x36\\xe5\\x7a\\xd8\\x30\\xec\\xfc\\x00\\x69\\x3e\\x26\\x13\\xd3\\xed\\xf4\\x65\\xfc\\x8c\\x4f\\xa2\\x93\\xfd\\x8c\\xfc\\x36\\xdc\\x8e\\x37\\xbc\\xeb\\xab\\xec\\x03\\x49\\xeb\\xd8\\x84\\xe1\\xb2\\x8b\\xce\\x82\\x4e\\x0d\\x55\\xb6\\xd0\\x15\\x38\\x38\\x01\\x66\\x8b\\x34\\xf5\\xba\\x72\\x3d\\x2a\\xc0\\xa2\\x64\\xfa\\xb2\\xc7\\x28\\x60\\x8f\\x16\\x2d\\xe0\\x11\\x79\\x25\\x9b\\xe2\\xcc\\xb0\\x81\\x50\\x02\\xfd\\xed\\x8e\\x0d\\x78\\xb0\\x28\\x07\\x31\\x3e\\x91\\x0e\\xb3\\xa7\\x33\\x7c\\x53\\x4e\\x84\\x6f\\x9e\\xe1\\x55\\x42\\x6e\\x4a\\xef\\x64\\x36\\x61\\xb0\\xed\\xb4\\x45\\x96\\xfd\\xdc\\xd0\\xb3\\xe8\\x14\\xc1\\x37\\x81\\x7a\\x42\\x2b\\xaa\\x40\\xc9\\x05\\x3d\\x03\\x86\\xc6\\xec\\xdb\\x58\\x90\\x52\\x59\\x47\\x42\\x67\\x7c\\x48\\xdc\\xfc\\x8c\\xd4\\xa9\\x36\\x67\\xed\\x4d\\x87\\x64\\x60\\x01\\xed\\xa0\\x79\\xe8\\xb9\\x9d\\x52\\xba\\x21\\xc5\\xec\\x56\\x69\\xfe\\xdf\\x6f\\x40\\x44\\x7a\\x7f\\xf8\\x90\\x1d\\xb0\\xef\\x18\\x47\\xd3\\xca\\xcf\\x01\\x98\\xa2\\xf3\\xbd\\x7b\\xcf\\x2d\\xd8\\x11\\xa0\\x97\\xfc\\x5e\\x51\\x88\\xb0\\x3f\\xdf\\x54\\xe5\\x17\\x63\\x7a\\x14\\x50\\x10\\x00\\xd0\\xd3\\x55\\x16\\xca\\xf0\\x69\\x94\\x02\\xb4\\x8f\\x8d\\x8c\\xc3\\xaf\\xb1\\x7a\\x56\\x13\\x2d\\x08\\x23\\x70\\x35\\xa0\\xc9\\x54\\x90\\xbf\\xe5\\xd7\\xb7\\xfb\\x40\\x17\\x8f\\x28\\x1e\\x4d\\x87\\x2e\\x47\\xa0\\xe9\\x55\\xce\\x97\\x36\\xf3\\xc3\\x33\\xa6\\xad\\xf5\\x0a\\xd3\\x19\\x94\\xeb\\x9f\\x45\\x32\\x7f\\xac\\xc8\\xc5\\xd1\\x13\\xfa\\xd4\\x71\\x3f\\xe7\\xf1\\x98\\x01\\x0d\\x42\\x04\\x6b\\xbf\\xe6\\x8b\\x0d\\xaa\\x79\\xdc\\xb8\\x75\\x59\\x29\\xbe\\x92\\xf9\\xca\\xa1\\x50\\xdf\\xbd\\xe3\\xfc\\x9e\\x39\\x2b\\x2b\\x70\\x1c\\x30\\x21\\xc2\\x40\\xe4\\x67\\x9d\\xe4\\x11\\x24\\xb1\\x88\\x8e\\x5d\\xb5\\xa8\\x3d\\x05\\xce\\xaf\\x49\\xeb\\x44\\x0d\\xc4\\x50\\x26\\xd4\\x50\\xbc\\x98\\x4b\\x8d\\x6f\\x02\\x85\\x0e\\xcb\\x57\\x0e\\xee\\x0a\\x38\\x19\\xb1\\x2b\\xc2\\x63\\x67\\xb5\\xb9\\x8e\\x1b\\x14\\x1c\\x9b\\x0a\\x96\\x90\\xea\\x4a\\x37\\x00\\xda\\xd1\\x23\\x95\\xf9\\x75\\xd1\\x1c\\xd7\\x7f\\x96\\x36\\x88\\x31\\xf2\\x1f\\x4e\\x96\\x8c\\xc5\\xba\\x9e\\xf8\\x24\\x74\\x03\\x8b\\xc7\\xaa\\x26\\x12\\x2d\\x21\\x8b\\x74\\x30\\x41\\x50\\x6a\\xeb\\xbd\\x1f\\x98\\x79\\x59\\xfd\\x16\\x0d\\x6e\\xb7\\xd5\\x8d\\x4f\\x57\\x6f\\x8c\\x0c\\xa8\\xaf\\x86\\x8e\\x39\\xb5\\xea\\x87\\x20\\x39\\x37\\xe0\\x30\\x8a\\xcb\\xea\\xe9\\x1e\\x10\\x60\\x7e\\x44\\xe8\\xab\\x49\\x5b\\xc0\\x1d\\xd5\\x73\\xfb\\xad\\xc9\\x44\\x79\\xff\\x92\\x08\\x2c\\x7b\\xb7\\x51\\x34\\x79\\xc7\\x0f\\x04\\x07\\x76\\x90\\x25\\xd3\\x4d\\x72\\x14\\x0c\\x25\\xd8\\x21\\xf0\\x34\\xa3\\x98\\x51\\xa9\\x3c\\x62\\x3b\\x71\\xc9\\x40\\x0e\\x94\\x26\\x39\\xf2\\x8b\\xbd\\x03\\x2e\\x1d\\x8d\\x3c\\x05\\x9f\\x7c\\x2c\\xd3\\x1d\\x74\\x76\\x46\\x2d\\x27\\x76\\x03\\x5d\\x07\\x88\\x02\\x02\\xdb\\xfe\\x9e\\x07\\xd1\\x54\\x62\\x2d\\x7a\\xc6\\x17\\x5a\\x5a\\xfa\\x79\\xfe\\xd4\\xdc\\xc1\\x37\\x12\\x62\\x0c\\x41\\x99\\x4e\\x11\\xd9\\x24\\x30\\x8f\\xb2\\xff\\x3a\\x1e\\xda\\x44\\xc7\\x61\\xbc\\x73\\x6f\\x34\\x51\\x22\\xf0\\x2a\\x40\\xae\\x6f\\x7d\\xbd\\x03\\xd9\\xfe\\x96\\xee\\x3d\\x7a\\x3b\\x4a\\x5e\\xef\\xbf\\xcc\\x56\\xdc\\x42\\xef\\x27\\xbd\\x80\\x85\\x17\\x60\\x38\\xb9\\xeb\\xae\\x63\\xaa\\x75\\x03\\x52\\x75\\xec\\x34\\xe4\\x18\\x57\\x39\\xd6\\x36\\x24\\x67\\x70\\xac\\xcc\\xc6\\xdc\\x62\\x0e\\x2f\\xc9\\x15\\x6f\\xa9\\x48\\x3e\\x0d\\x9c\\xae\\x0e\\x8c\\x46\\x39\\x48\\xa3\\xd9\\x7a\\xe8\\xdd\\xa5\\x96\\x6c\\x88\\xf0\\x70\\x93\\x29\\x2c\\xce\\x22\\xbb\\xda\\x06\\x2b\\xaa\\xfa\\x7f\\xe8\\x4d\\x0b\\xa2\\xd2\\xdd\\x29\\x5b\\x23\\x45\\x8b\\xca\\xeb\\x2e\\xf7\\x42\\xa2\\xed\\x1c\\x83\\x44\\x83\\xcd\\x70\\x93\\x85\\xaf\\xea\\xdc\\xbc\\x0a\\x9c\\x6a\\x4f\\x38\\x7b\\xab\\xf7\\xe3\\xdc\\x36\\xc8\\x10\\xdb\\x20\\x9b\\xeb\\x66\\xc8\\x66\\x64\\x04\\xc6\\x61\\xdf\\xe9\\xd3\\x2c\\x4c\\x08\\xaf\\xc6\\xf3\\xb1\\x25\\x7d\\x64\\x84\\xa7\\x55\\xf5\\xac\\x70\\x1e\\xb1\\x3f\\x87\\x76\\x3f\\xee\\x33\\x0f\\xfa\\x04\\x22\\xcd\\x80\\xa9\\x20\\x38\\xc6\\xf4\\x52\\x92\\xbd\\xee\\x5f\\x89\\xe9\\x4c\\x7a\\x65\\x21\\x97\\xfc\\x19\\x06\\xb4\\x82\\x58\\x37\\x24\\x49\\xb1\\x08\\x1c\\x6b\\x97\\x13\\x4c\\x43\\xc8\\x9e\\xe2\"},\n{{0xd3,0x36,0xfd,0x84,0x08,0x19,0x6d,0x22,0xfb,0x69,0x8e,0xb2,0x5b,0x76,0x54,0xfd,0xa4,0x6f,0x5d,0xe4,0xc9,0xb4,0xd0,0x49,0x50,0xc3,0x98,0xb5,0x9a,0x44,0x29,0x0a,},{0xf3,0xcd,0x96,0x34,0x7c,0xea,0x63,0xe5,0x00,0xa4,0xc9,0x2c,0x3b,0xf2,0x15,0x66,0x2d,0xd0,0x40,0x07,0x84,0xdb,0xf8,0xb5,0x95,0xdd,0x3d,0x39,0x5f,0x90,0xcc,0x12,},{0xaf,0x7e,0x2d,0xf7,0x52,0x9f,0xd1,0x8d,0x1b,0x21,0xb8,0xfd,0x4c,0x06,0x81,0x50,0x59,0x18,0xe2,0x51,0x14,0x34,0xfe,0x4e,0x49,0x54,0xe7,0x43,0xc1,0xcf,0xa4,0x5e,0x41,0x09,0xd3,0x6c,0x3e,0xec,0xf2,0xe2,0x5d,0x20,0x9b,0x9b,0x5d,0x25,0xf7,0xcb,0xc3,0x80,0x29,0x6d,0x64,0x77,0x52,0xe3,0x0d,0x3b,0xea,0x3b,0x92,0x9b,0x09,0x03,},\"\\xfb\\x49\\xc1\\x9b\\xc4\\x44\\x4c\\x28\\xeb\\x26\\x25\\xf3\\x1d\\x99\\x6d\\x5e\\x36\\xc5\\x7f\\xa6\\xfd\\xd7\\x72\\xe6\\x7b\\x71\\x99\\xce\\xc6\\x7e\\xda\\x54\\x51\\x71\\x2d\\xf7\\xa6\\x9d\\xbb\\xd5\\x6e\\x7c\\x39\\x87\\x96\\xb2\\x00\\x1d\\xef\\x65\\x1c\\x4b\\x9c\\x05\\xee\\x31\\xd9\\x56\\x79\\x53\\x5c\\x81\\x2a\\x37\\xd3\\x1d\\xdb\\x30\\x73\\x19\\x9c\\xd7\\x04\\xff\\x7c\\xa2\\x98\\x1f\\x7b\\x9c\\x92\\x7a\\x7f\\x7d\\x77\\x6f\\xb6\\xf6\\x09\\xf7\\x27\\xe6\\xea\\x70\\x9c\\xe7\\xf4\\x3a\\x60\\x79\\x35\\x04\\x16\\x9a\\x89\\x05\\xd9\\xb2\\x31\\x09\\xf0\\xd8\\x67\\x96\\x6a\\xa3\\xe3\\x00\\xc7\\xe1\\x1d\\xde\\xdb\\x9c\\xc1\\x17\\xb9\\x04\\xf6\\x29\\x27\\xe4\\x8e\\x4d\\x73\\xfe\\x1a\\x6c\\xec\\xcc\\x4c\\xeb\\x08\\xe6\\x4a\\xb5\\x5f\\x25\\xc9\\x82\\x16\\xce\\xc9\\x37\\x60\\x8a\\xd7\\x93\\x14\\x69\\x98\\xf1\\x4c\\x29\\x85\\xe6\\xc2\\x91\\x0d\\xf7\\xb1\\x38\\x8f\\x9d\\xd8\\x63\\xf1\\xe4\\xd7\\xd1\\x62\\x14\\x79\\xb8\\x51\\x2c\\xdb\\x34\\xe6\\x73\\xeb\\x02\\xa4\\x89\\x34\\xe3\\x9c\\x2d\\x18\\xd7\\x0f\\x96\\x6d\\x67\\x6a\\x2b\\xd7\\x5d\\xb5\\x43\\xd2\\x5c\\x5d\\xcd\\xc3\\xef\\x3b\\x8b\\xc8\\x20\\x18\\x48\\xc3\\x09\\x61\\xe9\\x15\\xd9\\x68\\xbd\\xc3\\x19\\x46\\xb0\\xd1\\x8e\\xde\\x7c\\xb0\\x16\\x6d\\xbe\\x1f\\xfe\\xff\\x94\\x39\\xc9\\xc3\\x40\\x4a\\xf6\\x01\\x6c\\x73\\xed\\xeb\\x25\\x3d\\x93\\xf5\\x62\\xa1\\xa6\\xcd\\xd5\\x78\\x98\\xa9\\xb3\\x42\\x25\\x87\\xd5\\xf5\\x6a\\xf3\\xd0\\x6b\\x3f\\x6c\\x25\\x75\\x1f\\x44\\x46\\x0f\\xb3\\x29\\x96\\x56\\xdc\\x11\\x22\\x7e\\xf4\\x83\\x7a\\xab\\xdd\\xee\\x40\\x0f\\xa5\\x3f\\x69\\xe5\\xce\\xd0\\x53\\xc7\\x6d\\xce\\xcd\\xf0\\xad\\xc9\\xef\\x80\\xf4\\xb3\\x30\\x54\\x2f\\xf1\\xfa\\x2d\\xf0\\xb8\\xd4\\x3c\\xd1\\xc3\\x11\\xb1\\xb9\\x95\\x5c\\x63\\x2c\\x8e\\x5f\\x04\\x91\\x93\\x1c\\x04\\xde\\x43\\x4d\\xf8\\xf7\\xa3\\x94\\xe5\\xfe\\xf0\\x16\\xdb\\x2e\\xb7\\xc8\\x7b\\x2a\\xc7\\xa4\\xa7\\x30\\x43\\xbd\\x7f\\x98\\xad\\x0a\\x4d\\x45\\x3a\\xbf\\xb0\\xbe\\x8b\\xe4\\xcb\\x14\\x57\\x42\\xaa\\x56\\xaa\\x5e\\xf2\\xdf\\xf1\\x22\\x30\\xa5\\x10\\xe3\\xb7\\xf8\\x2f\\x78\\x47\\x70\\x0e\\xee\\xa5\\x90\\x5b\\x02\\x89\\x69\\x6c\\x4c\\x14\\x2b\\xf3\\x4b\\xcf\\x81\\xa9\\x62\\xd7\\x5b\\x8d\\x09\\x10\\x55\\x73\\x37\\x79\\x33\\x5b\\x7f\\xd4\\x7a\\x20\\xd1\\x7c\\x94\\x8a\\xb7\\x32\\x94\\x78\\x32\\x67\\x43\\x71\\xe2\\x2e\\x71\\x11\\x34\\xf5\\xc9\\x19\\x79\\x23\\x57\\xf7\\x9b\\xf7\\x0c\\x44\\x70\\x78\\x75\\x28\\x43\\x4f\\xc0\\xb4\\xca\\x09\\x3e\\xe9\\x25\\x43\\x42\\x0d\\x1c\\xa8\\x11\\x24\\xf5\\x58\\x53\\x17\\xe2\\x50\\x82\\x1a\\x4f\\x3d\\x8c\\xe0\\xf9\\x19\\xde\\x9f\\xbf\\x01\\x27\\x08\\x7e\\x67\\x69\\x03\\xf6\\xcb\\x39\\x02\\x5b\\xcc\\x73\\xa0\\x76\\x29\\x54\\xb7\\x2e\\x66\\xa6\\xbe\\x9b\\x96\\xc9\\x7b\\x6f\\x60\\x30\\xbf\\x5c\\xa0\\xbc\\x27\\x27\\xa9\\xa1\\x79\\xcf\\x9d\\x94\\x05\\xf3\\xfe\\x18\\xf3\\x49\\x23\\x89\\x07\\x9a\\x5b\\x65\\xbc\\xb1\\x3a\\x0d\\x5e\\xf4\\x1c\\x2c\\xd9\\x7e\\x70\\x2c\\xee\\x4a\\x2f\\xeb\\x1e\\x67\\x02\\xbd\\x4c\\x63\\xfe\\x0a\\x4a\\xe9\\x94\\xc4\\x28\\x7a\\x83\\x7b\\xc3\\xf6\\x4c\\x2d\\x89\\x88\\x57\\xcd\\xb3\\x2a\\xcd\\x4b\\xd1\\x33\\x67\\x6e\\x51\\xf7\\x7b\\xc7\\x11\\x0e\\x3c\\xe5\\x2d\\x92\\x04\\xfd\\x26\\x91\\xa6\\xd3\\x70\\x78\\xf6\\x8e\\x7b\\xce\\xf3\\x0f\\xc9\\xc4\\x83\\x98\\x58\\x22\\xb6\\x61\\x11\\x92\\x38\\xe4\\x0f\\x9c\\xfd\\xca\\xbe\\xf2\\xd7\\xb1\\x6b\\x05\\x9a\\xb2\\x4a\\xdc\\x05\\x00\\x37\\x12\\xbb\\xb1\\x28\\x09\\x6e\\x37\\xf9\\x1b\\xc4\\xc5\\xc8\\x15\\x08\\xbe\\x27\\xfa\\x0b\\x84\\x94\\x0b\\xe3\\x6b\\xce\\xd2\\xe6\\x5c\\xd3\\x6b\\x39\\xfb\\xdc\\x5e\\xa6\\x86\\x14\\x15\\x92\\x28\\xca\\x65\\xc5\\xd8\\x40\\x7b\\xaf\\x66\\x3b\\x52\\x8e\\x7d\\x87\\x73\\x4c\\x7b\\xc7\\x7d\\xc8\\x43\\x1a\\x1d\\xd6\\x87\\x3c\\xfd\\xdf\\xc3\\xe7\\x57\\xd9\\xad\\x1f\\xed\\xd3\\xc7\\x98\\xf1\\xfe\\x60\\xe7\\x15\\xee\\x48\\xa6\\xbc\\xbb\\x13\\xb6\\x16\\xa8\\x9a\\x38\\xe3\\x36\\x48\\x9d\\x3d\\x6c\\xcb\\x72\\x69\\x14\\x11\\x2a\\x1b\\xc5\\xd9\\x77\\xc9\\xb2\\xa3\\xfa\\xc1\\x07\\xad\\x09\\x4b\\x03\\x8a\\xb7\\x54\\x68\\x26\\x3c\\x34\\xbd\\xa8\\x17\\xc0\\x56\\xe0\\x7a\\x6c\\x56\\x69\\x7c\\xb6\\x4a\\x0b\\x1f\\x96\\x6f\\x6d\\xe0\\xbb\\x1c\\x0a\\x71\\xc8\\xa5\\xfe\\x13\\x3b\\xa2\\x03\\x6d\\x24\\xda\\xcc\\xad\\x3f\\xa0\\x3b\\x39\\xcd\\x27\\xf8\\x32\\x75\\x27\\x51\\x05\\x5a\\x81\\x55\\x91\\x3d\\x04\\x0f\\x51\\xda\\xe7\\x8d\\x71\\x94\\x6c\\xa0\\x4d\\x83\\xc7\\xc8\\x94\\xc2\\x80\\xaa\\xec\\x28\\x55\\x43\\xe5\\xfd\\x5e\\x32\\x7a\\xcc\\xca\\x9a\\xbe\\xf1\\x56\\xa1\\x3b\\x95\\x71\\x44\\x6b\\xd8\\x00\\x7f\\xf9\\x2d\\xbc\\x0f\\xba\\xf2\\x3a\\x94\\x41\\xb5\\x3c\\x1c\\xd7\\x40\\xc3\\x4c\\x28\\x29\\x29\\x10\\x1a\\xd2\\xea\\x8b\\x85\\xd7\\x00\\x52\\x99\\x1b\\x77\\x4e\\x92\\xff\\x75\\xcc\\x85\\x11\\x3e\\x09\\x00\\xb5\\x1b\\x86\\x3e\\x1f\\x2a\\xda\\xab\\x2d\\xbc\\xf4\\x6a\\xf4\\x79\\xea\\x24\\x8e\\xc2\\x88\\x9a\\xfb\\xfe\\x73\\x74\\x08\\x39\\x3a\\x2b\\x1b\\x33\\x01\\xf6\\x5c\\x1f\\xac\\x8b\\x67\\x67\\x95\\xab\\x5b\\xf4\\x47\\xf0\\x5e\\x0d\\xaf\\x67\\x76\"},\n{{0x65,0x73,0x22,0x78,0x41,0xf6,0xf9,0x28,0x31,0x14,0x6c,0x44,0xc0,0xe4,0x80,0xcd,0xf5,0x44,0xbb,0x87,0x65,0x52,0xcc,0x5f,0x9d,0x42,0xf1,0x5b,0xdc,0xc0,0x44,0xb8,},{0x19,0x22,0x57,0xa5,0x4c,0xe5,0xd0,0x4c,0x19,0x43,0x9f,0xdc,0x9e,0xde,0x18,0xec,0x85,0x6e,0x29,0x87,0x0e,0x24,0xd3,0x73,0x1f,0xe2,0x22,0x47,0x99,0x94,0x9b,0x7e,},{0x53,0x8e,0xac,0xe4,0x93,0xde,0x53,0x38,0x4b,0x1e,0x98,0x5b,0xb9,0x07,0xc0,0x94,0xf8,0x16,0x84,0x30,0xda,0xb1,0x4d,0x37,0x79,0x1b,0xe6,0xe7,0x8f,0xf3,0xf5,0xa3,0x06,0xec,0x70,0xdc,0xac,0x86,0xd9,0x93,0xa4,0xc1,0xf7,0x58,0x50,0x78,0x6d,0x79,0x5f,0x02,0x2b,0x79,0xbe,0x6a,0x54,0x77,0x69,0xe4,0x15,0x69,0xc5,0xa9,0xa3,0x0a,},\"\\x6e\\x7c\\x6b\\x12\\x2a\\xb3\\x6b\\xd1\\x35\\xf6\\x9e\\x2b\\x85\\xe7\\xfc\\xce\\xfb\\x07\\x2c\\x12\\xcf\\x08\\x8a\\x32\\x29\\xd8\\x76\\xef\\xf5\\x32\\x38\\x9f\\x05\\x77\\x11\\x6f\\x7a\\xf2\\x9f\\x11\\x95\\xe3\\x82\\x88\\x39\\x38\\x13\\x80\\x46\\x71\\x78\\xb2\\x29\\xc5\\xa1\\x8d\\x7c\\x49\\x43\\xec\\x97\\x0d\\xd1\\x8b\\xce\\x72\\x3b\\xd0\\xca\\x91\\xff\\xa9\\x55\\x63\\x54\\x6a\\x32\\x4f\\xe0\\xb9\\xbf\\x6c\\x04\\x55\\xd4\\x27\\x60\\x39\\xe8\\xd2\\x91\\xfc\\x72\\x76\\xaa\\x55\\xa1\\xcd\\x3e\\xa0\\x52\\x82\\x65\\x4a\\x7f\\x97\\x00\\xad\\xcb\\xc7\\x80\\x77\\xc5\\xdd\\x0f\\xc8\\x6e\\xce\\xd4\\x8f\\x4a\\x60\\xcc\\xb7\\x6b\\xfb\\x8b\\x45\\x62\\xba\\xc2\\x2a\\x02\\xd1\\x9e\\x44\\x89\\x39\\x4a\\xb9\\x71\\x9f\\xc1\\x44\\xf5\\xdb\\x2e\\xf0\\x39\\xb3\\x7f\\x3b\\x51\\xd1\\xd6\\x57\\xa0\\xcf\\x83\\x5d\\x71\\xf1\\xa4\\xaf\\x01\\xeb\\x9f\\xd8\\x85\\xc6\\x04\\xa6\\x24\\xcb\\xe9\\x10\\xbf\\xde\\x09\\x3a\\xd3\\xf0\\xcb\\xfd\\x9a\\x48\\x30\\x73\\x29\\xd4\\x42\\x34\\xbd\\x01\\x19\\x1d\\x56\\xe5\\x22\\xd7\\x2b\\x54\\xe1\\xfe\\x47\\x33\\xda\\x3a\\xec\\x68\\x27\\xea\\xb3\\x55\\x48\\x98\\xe0\\x3e\\x57\\x7b\\x4e\\x7b\\x9d\\xd3\\xf3\\x08\\xe6\\x16\\x80\\x8d\\x02\\x94\\x49\\x9f\\x28\\x86\\x29\\x5e\\x54\\xc3\\x60\\x19\\x9c\\xa8\\x3a\\x83\\xff\\x46\\x19\\x5e\\xa3\\xc4\\x84\\xa6\\x68\\x38\\xd5\\x1a\\xcb\\xe9\\x61\\x1e\\xee\\x03\\x6a\\xe2\\x81\\xc6\\x79\\x3c\\xbd\\x45\\x1f\\x92\\x71\\xfb\\x5d\\x25\\xea\\x7c\\x18\\x99\\xab\\x5d\\x43\\xed\\x8b\\x9d\\x06\\x7b\\xc5\\x6d\\x8d\\x4a\\x15\\xf1\\xda\\xb8\\xd8\\xd9\\x5d\\x1b\\x17\\xaf\\x64\\xcb\\x18\\xc1\\x14\\x75\\x51\\x14\\x7a\\xdd\\xcb\\xdd\\x53\\xfb\\xcc\\xd9\\x02\\x6f\\x85\\x55\\x47\\x13\\x1b\\xee\\x95\\x07\\x16\\x39\\xf6\\x49\\xf2\\xd0\\x35\\xa2\\x5a\\x3e\\x42\\xe3\\x8e\\x22\\xbb\\xf0\\x38\\x10\\x6c\\xe8\\xbc\\x4a\\xd6\\x76\\x8a\\xb9\\x2c\\xd5\\x7a\\xfa\\xcd\\x04\\xee\\x55\\xcf\\x07\\x14\\xb7\\x68\\x95\\x2d\\xac\\x24\\x0b\\x1e\\x9b\\x28\\x35\\xec\\xf7\\xb0\\xd6\\xc4\\x07\\xc8\\x25\\x24\\xa9\\x23\\xb9\\xf5\\x4d\\x1b\\x8f\\x12\\x56\\x4a\\x87\\x21\\x44\\xef\\xad\\x3f\\x3a\\x7d\\x23\\x97\\xcd\\x12\\x17\\xdc\\x5a\\x9c\\x96\\xe4\\x3b\\x29\\x60\\xa8\\x42\\x5e\\x97\\xe0\\x7a\\x02\\xb0\\xda\\xc9\\x0f\\x34\\x6b\\x91\\xa3\\x46\\xa2\\x3e\\xd2\\xbb\\x7f\\xe6\\x91\\x9c\\x22\\xdf\\xf0\\x3f\\x62\\xda\\x7d\\xba\\x17\\x6e\\x8d\\xdb\\x22\\xf3\\xf3\\xa6\\x68\\x89\\x1d\\x3f\\x4e\\x69\\x54\\x8d\\x0a\\xc4\\xe7\\x1e\\x6d\\x28\\xed\\x5a\\x67\\xab\\x5a\\xc6\\x11\\xd4\\x60\\xb6\\x7a\\x20\\x1f\\x4f\\x56\\xa5\\x00\\x3c\\xa7\\xa7\\xd1\\xcd\\x1d\\xb6\\xc1\\x00\\x75\\xb0\\x92\\x27\\xcb\\x8c\\x5d\\xc1\\x66\\x6f\\x8b\\xe7\\x10\\xb4\\xb7\\xbc\\x2b\\x95\\xae\\x60\\xda\\x4f\\x64\\x17\\x9a\\x50\\xd2\\xf8\\x87\\x44\\x36\\x15\\x91\\x67\\x1d\\x36\\xb7\\x29\\x63\\x15\\xf6\\x99\\x64\\x39\\xad\\x79\\x82\\x1d\\xa8\\xe7\\x72\\xdf\\xbf\\x55\\xa9\\x0d\\x5d\\x52\\xef\\x7d\\x76\\xb3\\x5f\\xfe\\xbd\\x42\\xe3\\x52\\x5f\\x45\\x30\\xc5\\x4a\\x0f\\x23\\xb4\\xd0\\x7c\\x5f\\x59\\x74\\x47\\x0e\\x89\\x40\\x4d\\x17\\x6e\\xef\\xf9\\xef\\x23\\x33\\x61\\x96\\x91\\xc5\\x9b\\x7a\\xad\\xd4\\x2c\\x29\\x6b\\x1d\\x0d\\x32\\x8d\\x9a\\x3b\\xd5\\x9a\\x54\\xbb\\xa9\\x3a\\x0c\\x1f\\x1d\\x62\\x41\\x8c\\x21\\x90\\xc3\\x81\\x74\\xb6\\xab\\xea\\x02\\xdb\\x66\\xe8\\x18\\x32\\x0e\\xc4\\xb8\\xba\\xc1\\xc1\\x2f\\x18\\xf3\\x0d\\xad\\xe2\\x7e\\x63\\xc5\\x8f\\x9e\\x7c\\xaf\\x4b\\xf6\\x9b\\x26\\x5a\\x2f\\x9d\\x91\\x80\\x08\\x61\\xac\\xf4\\x79\\xe6\\x5e\\xc1\\x7e\\x68\\x05\\x77\\xe0\\x58\\xcb\\x16\\xc1\\x09\\xbc\\xf9\\xb2\\x90\\x9f\\xce\\x33\\x61\\xa2\\xc2\\x68\\x5c\\x10\\xbe\\x85\\x40\\xa1\\x22\\x2d\\xb5\\xec\\xf0\\xcc\\x4d\\x53\\xa4\\x21\\x4b\\x7b\\xf6\\x24\\x8a\\xdc\\x3a\\x86\\x1e\\x34\\x84\\x1a\\x37\\x79\\xc4\\x60\\x46\\xc5\\x36\\x4f\\x1e\\xa9\\x1a\\x78\\xc9\\x70\\x0d\\x46\\x2e\\xcf\\xaa\\xe3\\x6b\\xa7\\x60\\xc1\\xbd\\x6a\\x23\\x7c\\x96\\x1e\\xdf\\x40\\x22\\xce\\xde\\xfe\\x5e\\x93\\x7b\\xbe\\xd7\\x05\\x1a\\xe6\\x1b\\x96\\xd0\\x8b\\x04\\x87\\xce\\x05\\x68\\xff\\x0d\\x32\\x74\\x0b\\xbd\\x49\\xad\\x0d\\xb8\\x6e\\x09\\x10\\x2a\\xb2\\x1a\\x91\\x56\\x16\\xe9\\xdf\\xdd\\xc8\\x1e\\xbf\\xb3\\x6c\\x90\\x3e\\x07\\xa4\\x0c\\xd2\\xdd\\x11\\x9f\\xf4\\xa5\\x0b\\x93\\xfc\\x6f\\xdf\\xc0\\xf3\\x6e\\x59\\xe0\\x14\\x8f\\xcf\\xf3\\xfe\\x8e\\x2c\\xd6\\xd3\\x0a\\x9e\\x4b\\x8f\\x01\\x55\\x67\\xd1\\x18\\xb6\\x27\\x4e\\x1e\\xd7\\x5b\\x22\\xe4\\x4c\\xa9\\xd9\\xdb\\xfc\\x16\\x07\\x42\\xcf\\xac\\x58\\x1e\\x1a\\x0b\\xf5\\xff\\x33\\x26\\xbc\\x5f\\x78\\x96\\xb9\\xca\\x05\\xa8\\x11\\xd5\\x5e\\x97\\xc8\\x34\\xd3\\x7a\\x64\\x95\\xcc\\x26\\xcf\\x44\\x2b\\xd2\\xd9\\x01\\x29\\x89\\x5e\\x9c\\xc0\\xed\\x01\\xe2\\x15\\x52\\x93\\xf4\\x7a\\x07\\xab\\x58\\x80\\xc6\\xca\\x29\\xed\\x44\\xd9\\xcc\\xbc\\xaa\\xda\\x7f\\x3e\\xb6\\x04\\x02\\x18\\x14\\x88\\x65\\x4e\\x04\\x91\\x15\\x78\\xb1\\xaa\\x9c\\xdd\\x4b\\x86\\xb0\\xdd\\x24\\x50\\xdf\\x3a\\x43\\x08\\x1e\\x41\\x10\\xab\\x58\\xde\\x76\\x39\\x24\\xd3\\xc8\\x91\\x52\\xe9\\x92\\x93\\xe6\\x38\\xf9\\xac\\xd8\\xd7\"},\n{{0xa6,0x3c,0x1f,0x54,0xb2,0xca,0x05,0x8f,0xed,0x2e,0xe2,0x50,0x4b,0x98,0x3f,0xf3,0x3d,0x57,0x0a,0x9b,0xab,0xa5,0x83,0xc0,0x86,0xce,0xfe,0x19,0xf4,0x3e,0xc4,0x9d,},{0x32,0x9b,0x86,0x6b,0xca,0x41,0x94,0x29,0x7f,0xc1,0xad,0x5a,0x0e,0xba,0x0d,0xf9,0x56,0x69,0x9c,0x74,0xab,0x7d,0xa5,0xfa,0x54,0x62,0xbd,0x06,0x61,0x47,0x10,0x20,},{0x28,0x33,0x59,0xbe,0x41,0x29,0x0a,0x51,0xe6,0xa7,0xc5,0xd5,0x72,0x5c,0xa4,0xea,0x0a,0x68,0xf1,0x4a,0xca,0x14,0xb0,0xf0,0x25,0x66,0xde,0xe2,0x1f,0x49,0x0d,0xa3,0xc7,0xe9,0x5f,0x7a,0xb7,0x39,0xbc,0x35,0xa7,0xf4,0xf2,0x32,0xe9,0x71,0xaa,0x15,0x76,0x57,0xa6,0x33,0xeb,0xa0,0xe7,0x2d,0xc9,0x7a,0xf3,0x2c,0xdb,0x92,0x87,0x02,},\"\\x79\\x1b\\x86\\xfd\\x58\\x77\\x13\\x47\\x8f\\x92\\x34\\xff\\x30\\xce\\xfc\\x12\\x3c\\xd7\\xc3\\xeb\\x12\\x5f\\xa7\\x4e\\x4c\\x6d\\xb6\\x4e\\x78\\x44\\xf7\\xc8\\x5b\\x16\\x86\\xe7\\x1e\\xd0\\x8d\\x1a\\x6a\\x04\\xe0\\xeb\\xbd\\xff\\x4a\\xb1\\x60\\xc9\\x76\\xc8\\xab\\x9b\\x50\\x5f\\x6a\\x7e\\xb0\\xa1\\x84\\x27\\xe9\\x99\\xa8\\x82\\x8d\\xf1\\x06\\x84\\xf8\\xc7\\x5b\\x6a\\x6b\\x0a\\x64\\xc0\\xaf\\xa4\\xbb\\x22\\xbe\\xd1\\xcb\\x93\\x25\\x35\\x9c\\xac\\x3b\\x8c\\x50\\x8d\\x98\\xbc\\xb0\\xeb\\xcd\\x74\\x8d\\xc1\\x32\\xf1\\xd6\\xa3\\x60\\xa4\\x45\\x0d\\x12\\x92\\xa1\\xfe\\xfc\\x4e\\x57\\xe4\\x10\\x7a\\x22\\x3f\\x42\\x1e\\x7d\\x14\\xa3\\x84\\xb8\\x5c\\x18\\x84\\x4d\\x0b\\x9e\\xed\\x2e\\xcb\\x81\\xbb\\x74\\xe8\\xa1\\x26\\x52\\xd9\\x85\\x05\\x79\\x5a\\x01\\x31\\x16\\xa7\\x07\\x6c\\xcb\\x54\\x93\\xd6\\xa7\\x11\\xf7\\x63\\x7e\\x97\\xa7\\x80\\xe7\\x4d\\xa1\\xb3\\x9b\\x15\\xcc\\x7b\\xbd\\xe2\\xe6\\xc4\\xd0\\xd3\\xe8\\x30\\x05\\x97\\xc8\\x36\\xe8\\x0b\\xcb\\x8d\\x80\\x81\\xd9\\x74\\xe0\\x24\\x32\\xea\\xc8\\x83\\x68\\x21\\x1d\\x3a\\xaa\\xe8\\x9a\\x14\\x41\\x71\\x08\\xe1\\xff\\x67\\x37\\x08\\x38\\x49\\xc6\\x25\\xb4\\x0d\\x63\\x1f\\x6c\\x83\\x57\\x22\\x0c\\x7f\\x37\\x38\\x0b\\x3b\\x2c\\xc5\\xd0\\xe2\\xdf\\x6b\\x4d\\x11\\x96\\x57\\x9d\\xbc\\x57\\xb6\\xc9\\xea\\x0d\\x41\\xf4\\xfa\\x0e\\x55\\x6f\\x94\\x3c\\x94\\x48\\xef\\x42\\xfc\\x78\\xdf\\x59\\x96\\x64\\x8c\\xe2\\xf3\\xde\\x04\\xd8\\xa6\\x63\\xf9\\x67\\xf3\\xd9\\x33\\xd4\\xf6\\x53\\x57\\xab\\x29\\xba\\x5b\\x64\\x05\\xfb\\x16\\x29\\x72\\x57\\x8d\\xdb\\xb2\\x36\\x7b\\xed\\x14\\x3c\\x85\\x4c\\x10\\x88\\xde\\x92\\x1d\\x79\\xf5\\xa9\\x2a\\x85\\x48\\x37\\xeb\\x77\\x02\\xe1\\xba\\x92\\x5c\\x6e\\xac\\x23\\xd1\\x34\\xba\\x1b\\xaf\\xc5\\xd4\\x6d\\xe2\\xa1\\x94\\x2c\\x7f\\x36\\x6f\\x70\\x1b\\x0a\\xfa\\xbb\\x75\\xcb\\x1d\\x80\\x8e\\x1a\\x1e\\x4e\\x3a\\xe5\\xde\\x88\\xe8\\xe9\\x98\\x97\\x57\\x45\\x8b\\xdd\\xd8\\xa8\\x06\\xc1\\x10\\xcc\\x3a\\x73\\x3d\\x1d\\x4a\\xc5\\x8a\\x40\\x5c\\x4d\\x81\\x13\\x4f\\xbc\\x24\\xcc\\xde\\x7d\\x5a\\xfe\\x42\\x0f\\x9f\\x17\\x85\\xf0\\xa5\\x02\\x0f\\xaf\\xbb\\x22\\x61\\x22\\x25\\x08\\xaa\\x05\\x28\\xb7\\xb4\\x8b\\x56\\x72\\x00\\x95\\x84\\x25\\xef\\xcb\\x42\\x93\\x4a\\x88\\x0b\\x13\\x34\\x44\\xbb\\x10\\x9f\\x2a\\x95\\x4c\\xfa\\x35\\xa2\\xd1\\x7c\\xb0\\x5e\\xe3\\xf1\\x6d\\x06\\xb3\\x21\\xa1\\x5f\\x91\\x33\\x9a\\xbe\\xda\\x24\\x3a\\xd6\\xc0\\x91\\x9f\\xac\\x51\\xe9\\x07\\xe0\\x53\\xfd\\xee\\xd1\\xcf\\x03\\x00\\x37\\x34\\x13\\x77\\x93\\x94\\x1b\\x8a\\xdf\\x9a\\xb6\\xaf\\x81\\x9c\\x24\\x5d\\x6d\\x56\\xf1\\x69\\x64\\xc8\\xa7\\x5b\\x07\\x56\\xa8\\xcb\\x0c\\xa8\\xc1\\x2a\\xc6\\xe6\\xb3\\x94\\x2e\\xeb\\xec\\x2f\\x86\\x88\\x35\\xf8\\x1b\\x10\\x9d\\xb4\\x98\\xa4\\xca\\x2e\\x02\\x1f\\xa7\\x65\\x60\\x8d\\x23\\xd8\\x03\\xde\\xdc\\x9e\\x51\\x45\\x3f\\xc1\\xd2\\xa6\\xa3\\x8a\\x4a\\xab\\x25\\x7c\\x0f\\xe7\\xd6\\x7d\\x32\\xa5\\x41\\xe0\\x14\\xb6\\x0e\\x10\\x13\\xa9\\x2c\\x1b\\x3a\\xd9\\xe6\\xf1\\x1b\\xe2\\x93\\xb2\\x46\\xf9\\xa0\\xc6\\x44\\x0b\\x0b\\x54\\xfe\\xe7\\x5f\\xed\\x2f\\xb7\\x5c\\xc9\\x1e\\xcb\\x32\\x73\\x8c\\x49\\x58\\x31\\x58\\x6a\\x11\\x24\\x2d\\x87\\xdc\\xb4\\x88\\x3e\\xdf\\x67\\x57\\xa5\\x0b\\x18\\x84\\x37\\x59\\xb9\\x8d\\xd0\\xce\\xf4\\xa3\\xfe\\x10\\xd7\\x63\\x70\\xec\\xda\\x8c\\x83\\xfa\\xb8\\x7e\\xee\\x26\\x56\\xc5\\xf2\\x61\\xc3\\x40\\xea\\x91\\xa5\\x60\\xd0\\xe2\\xc6\\x42\\x89\\x26\\x7f\\x00\\x36\\xba\\x35\\x94\\x48\\x00\\xa5\\xa0\\xae\\xf3\\xf1\\xdf\\x83\\x9a\\x72\\x4e\\x18\\x1d\\x79\\xb8\\xa3\\xc1\\x6f\\x65\\xae\\x27\\x95\\x3c\\x4a\\xae\\x8c\\xcd\\x30\\xff\\x5a\\xcc\\x4b\\x31\\xe4\\x76\\x5c\\x68\\xfb\\x38\\x31\\x9f\\x10\\xac\\xf8\\x92\\x47\\xb5\\xa3\\x9b\\x3b\\x08\\xa1\\x91\\x75\\x4a\\x24\\xac\\xa9\\x59\\x6a\\x1f\\x8a\\x70\\xb6\\xe4\\xf0\\x3a\\x20\\x04\\xa9\\x08\\x6f\\xf6\\xed\\x07\\x65\\x2a\\x92\\x6e\\x1e\\x2d\\xf7\\xbd\\xcc\\xd5\\xbe\\xc1\\x6e\\x5c\\x4e\\x96\\x83\\x64\\xa0\\x9a\\xbf\\x9d\\xed\\x93\\xdf\\x5f\\xca\\x0b\\xcc\\xa5\\xc8\\x12\\x97\\x6e\\x5c\\xfb\\x3c\\x34\\x93\\xfc\\x17\\x5d\\x1d\\x92\\xee\\x8d\\x1c\\x98\\xfb\\x33\\x82\\xb3\\xab\\x90\\xc5\\xc0\\xe4\\xbd\\xf6\\xa3\\xac\\x94\\x76\\x7b\\x68\\xd4\\x7e\\x6b\\x9c\\x24\\x42\\x65\\xe3\\xb1\\xab\\x06\\x23\\xa8\\xf0\\x10\\x02\\x73\\xf2\\xc6\\x07\\xde\\x89\\x61\\x2c\\x72\\xd3\\x9b\\xe4\\xc0\\xb4\\xd7\\x7a\\x3c\\x61\\x36\\x8d\\xf4\\x0b\\x36\\x08\\x65\\x29\\x89\\xd1\\xe1\\x9c\\x0a\\xaf\\x0e\\x3c\\x25\\x3e\\x56\\x2c\\x64\\x09\\xfe\\x64\\x48\\x92\\x9b\\x33\\x75\\x3d\\xe1\\x62\\xe6\\xde\\x5b\\xd4\\x66\\xa5\\x11\\x4f\\xc0\\xe5\\xf5\\x71\\x02\\x75\\x5e\\x29\\x54\\x4f\\x03\\xb2\\x8d\\x4f\\x78\\xde\\x9a\\x02\\x4d\\xd4\\xc4\\xe8\\xc3\\xc2\\xd4\\x41\\x15\\xa7\\xae\\x15\\xed\\xb4\\xf5\\x58\\xaa\\x7d\\xba\\x64\\x26\\xe7\\xe3\\x72\\xc5\\x4f\\x79\\x40\\xbd\\x77\\x14\\x46\\x7f\\x8c\\x3a\\x1a\\xdd\\x3c\\x64\\x01\\x89\\xc3\\x16\\x60\\xd8\\xcc\\x01\\xd3\\xc5\\x38\\x2e\\x42\\xab\\xc1\\x04\\xc7\\x23\\xf9\\x48\\xa8\\x04\\xca\\x85\\x30\\x47\\xb6\\xb8\\x7b\\x5b\\x6e\\xf4\"},\n{{0x5b,0x67,0xa6,0xd7,0xc6,0x50,0xdd,0x92,0xdd,0xd0,0x36,0xce,0x7a,0x30,0x5b,0xc9,0x59,0xa4,0x97,0xc5,0xe5,0x15,0xa6,0x84,0x93,0x03,0x5c,0xb3,0x85,0x0e,0xe0,0x3d,},{0x4c,0x6f,0xc1,0x64,0x05,0x05,0xfb,0x46,0x66,0x9f,0x93,0x04,0x8f,0x8e,0xf5,0x57,0x09,0x9f,0x3f,0xd9,0x2a,0x53,0x06,0x4b,0x16,0x33,0x63,0xa3,0x1b,0x7f,0x00,0xaa,},{0x0f,0x07,0x3c,0x9a,0x58,0x6f,0x6f,0x5e,0x08,0x38,0x9a,0x2a,0x5e,0x18,0x08,0xe2,0x70,0xf0,0xed,0xb6,0xaf,0x10,0x44,0x96,0xf9,0x37,0x57,0x62,0x3f,0xea,0x53,0x13,0x3a,0x73,0x1c,0x44,0x5a,0xc2,0x35,0x78,0xcd,0x56,0xa3,0x88,0x3c,0x08,0x95,0x86,0x68,0x63,0x1f,0xed,0xf1,0x44,0x6c,0xe3,0x4f,0x85,0x7f,0x90,0x82,0x2b,0xa8,0x0a,},\"\\x62\\xcc\\xde\\x31\\x77\\x2c\\x57\\xe4\\x85\\x3a\\xaf\\x2a\\x81\\x81\\xfd\\xb5\\x3f\\xb8\\x27\\x90\\xea\\x65\\x01\\xbf\\xc8\\xf5\\xd4\\xae\\x8d\\xbd\\x52\\xde\\x42\\xce\\x2e\\x89\\x61\\xac\\x17\\x31\\xf4\\xbc\\x08\\x5f\\xb5\\x61\\xef\\x09\\xa2\\x44\\x29\\x70\\xb6\\x29\\x79\\x01\\xae\\xaa\\x2e\\xe5\\x55\\xb7\\xd5\\xe3\\x95\\x1c\\x7c\\x35\\x12\\x39\\xdd\\xee\\x95\\xff\\x54\\xf9\\x24\\xda\\x95\\xca\\xe7\\xb1\\x5b\\xa6\\xa9\\xa1\\x33\\x7b\\x8c\\xe4\\x92\\x1e\\xd9\\x13\\xcd\\x79\\x1c\\x1c\\x69\\x41\\x08\\x0e\\x54\\x8f\\x3c\\x36\\xe8\\x45\\xac\\xbf\\xd8\\xd8\\xce\\x35\\xe2\\xfd\\xc2\\xa2\\xad\\x6c\\x7e\\x24\\x61\\xbf\\xcb\\xf1\\xaa\\xbc\\x55\\xcf\\x0f\\xae\\x42\\x88\\x85\\xbe\\x5e\\x86\\x53\\x33\\x08\\xc9\\x75\\x68\\x05\\x21\\x9a\\xbd\\x7f\\xfc\\x16\\x57\\xb6\\xf4\\x63\\x29\\x20\\xa0\\xc1\\x0e\\x0e\\x36\\x33\\x19\\xd9\\x00\\xfc\\xd6\\x1e\\x7d\\xdb\\xcd\\x6e\\x76\\x2a\\x7d\\xb9\\x24\\x80\\xc3\\x63\\xb2\\xc0\\x64\\x0c\\x6b\\xf3\\x2d\\x69\\x0d\\xd8\\x29\\xd8\\x40\\x5f\\xa6\\x6e\\x47\\x83\\xeb\\xe1\\xcb\\xde\\x95\\x47\\x95\\x4a\\x90\\xba\\xad\\x9f\\x77\\x4e\\x94\\x54\\x9a\\xbb\\xff\\x2c\\x1f\\x5c\\xae\\xc2\\xbf\\xd2\\x8e\\x41\\x5d\\x36\\x42\\x9d\\x58\\x51\\x8c\\x3e\\x17\\xe8\\x69\\x9e\\x19\\x89\\xd4\\x7b\\x8d\\x62\\x7e\\xf9\\xab\\x4d\\x1e\\x7d\\x12\\x0b\\x37\\x2c\\x21\\x41\\x30\\x4f\\x7f\\xab\\xd0\\x26\\x5b\\x8b\\xe4\\x1f\\x54\\x67\\xf4\\xde\\x9e\\x65\\xc1\\x25\\xee\\x1f\\x27\\xa2\\x89\\xc4\\xf7\\xc9\\xa1\\xfb\\xf2\\x5b\\xfc\\x2f\\x8d\\x30\\x8e\\x7f\\xf5\\x21\\x91\\xcb\\x76\\x44\\xc6\\xaf\\x20\\x45\\x22\\xf2\\xac\\x87\\xb5\\xf4\\x05\\x25\\xfd\\x43\\xd3\\x08\\xc8\\xdb\\xc6\\xa8\\x61\\xd2\\x5d\\xb2\\x3e\\xe2\\x76\\x67\\x8a\\x1b\\x6e\\x8e\\x91\\x28\\x3b\\xe0\\x24\\x70\\x48\\x2e\\xd6\\xcc\\x9f\\x6e\\x39\\x63\\x51\\xd1\\x1b\\x1c\\x7e\\x22\\x32\\x9c\\x09\\x1f\\xe7\\xd3\\x68\\xf6\\x06\\x53\\xf9\\x3b\\x0f\\x6a\\x3f\\x71\\x2c\\x20\\xf9\\xd2\\xd8\\xa9\\xa0\\x81\\x98\\x72\\xf0\\xc7\\x1d\\x7b\\x1c\\x0b\\xc1\\x68\\x3a\\x15\\x2b\\x48\\x4b\\xc2\\x1c\\xf5\\x56\\x09\\x3a\\xb4\\xc0\\xac\\x16\\xd3\\x22\\xff\\x0b\\xf4\\x52\\xe5\\x58\\x1e\\x1e\\x72\\x41\\x67\\x38\\x84\\x02\\x3c\\x7d\\x6e\\x17\\xe2\\xde\\x80\\x59\\xf6\\x0e\\x4c\\x18\\xe1\\x3b\\xd5\\x5f\\xcf\\xee\\x62\\x3f\\xd0\\x46\\x9c\\x0d\\x09\\x11\\x61\\x1d\\x09\\x9a\\x25\\x70\\x20\\xf2\\xf3\\x1b\\xf5\\x07\\x8e\\x6e\\x65\\xa1\\x35\\xd5\\xbf\\x40\\x76\\x20\\x23\\x6d\\x6c\\xc7\\x59\\x31\\x0f\\xa7\\x28\\xff\\x8b\\xb5\\xec\\x56\\xab\\xbe\\x1a\\x3c\\xd1\\x51\\x53\\xf8\\x92\\xd9\\x58\\xd3\\x0d\\x16\\x2d\\x01\\xee\\x66\\x5f\\x5b\\x56\\x27\\x81\\xd8\\xdc\\xf8\\x42\\x80\\x59\\xe5\\xfd\\x22\\x5a\\xd7\\x8a\\x99\\xea\\x76\\x0f\\xe5\\xd9\\xee\\x82\\x19\\xc9\\x5a\\xcb\\x18\\xd0\\x56\\x22\\xe1\\x0a\\x9b\\x6c\\x67\\xf6\\xd4\\xf6\\xed\\x11\\x63\\x5c\\x5e\\x2e\\x0f\\x85\\xdd\\x5d\\x3c\\xbd\\xa6\\x5a\\xa4\\x23\\xd5\\x94\\xa8\\x0b\\x40\\x42\\x7b\\xc3\\x21\\xe0\\xee\\xf9\\xaf\\xd2\\xbc\\x87\\x46\\xab\\x73\\x99\\xff\\x6d\\x0e\\x12\\x87\\xb6\\x61\\xdd\\xc4\\x06\\x2d\\x07\\x20\\x18\\xf4\\xc1\\x0e\\x86\\xcf\\xae\\xd7\\x2d\\x9e\\x68\\x6e\\xd0\\x9d\\x52\\x55\\xd3\\x60\\xe3\\xee\\xa2\\xc2\\x9b\\x9e\\xae\\xa0\\x5f\\xc7\\x8c\\x8c\\xdb\\x8c\\x9d\\x4a\\xfc\\x7a\\xdc\\x6d\\x4a\\xa0\\x67\\xb7\\xab\\xfb\\x0a\\x4e\\x94\\x0a\\x77\\x58\\x0e\\xc2\\x06\\x45\\x6c\\xb9\\xe9\\xf9\\x5f\\x6d\\x56\\x5d\\x53\\x6e\\x53\\x5a\\x16\\x7e\\xde\\x8e\\x20\\xec\\x36\\x08\\x1e\\x2f\\xc5\\x5a\\xef\\xaf\\x24\\xd2\\x27\\xff\\xfe\\x5e\\x6c\\xb0\\x30\\x93\\xf4\\x43\\xb4\\xc5\\x16\\x55\\xd9\\x1c\\xa6\\xf2\\x75\\x95\\x9d\\x1a\\x80\\x2a\\xde\\xab\\x44\\x70\\x1b\\x31\\xe8\\xb0\\xfd\\x02\\x22\\xc4\\x99\\x96\\x6c\\x72\\xd1\\x02\\x0a\\xd9\\x37\\x0e\\x28\\x02\\xbe\\x04\\xc9\\x93\\x3f\\x6b\\x77\\x4f\\x6e\\x8c\\x69\\xfc\\x0b\\xfd\\x31\\x59\\x39\\xa1\\x27\\xb4\\xe0\\x6d\\x0f\\x6f\\x5e\\xde\\x67\\x1c\\xe1\\x16\\x12\\x12\\x6b\\x51\\x87\\xb5\\x33\\x29\\xb0\\xa9\\xcb\\x7d\\xa3\\xb1\\xcc\\xd6\\x7b\\x8c\\x07\\xba\\xb9\\x9a\\x66\\x2d\\xf8\\xce\\x85\\x1f\\x50\\x2f\\xc4\\xe1\\xed\\x16\\x32\\xb6\\xba\\x55\\x55\\x44\\x01\\x8f\\x75\\x27\\xe3\\x62\\xef\\xc7\\xe3\\xb2\\xba\\x6f\\x75\\xa1\\x25\\x4f\\x42\\x8b\\x3b\\x7e\\x0b\\xea\\x69\\x54\\x9e\\x7f\\x9c\\x73\\x62\\x75\\x55\\x00\\x80\\xae\\xe3\\xaf\\x59\\x14\\xe3\\xa3\\x4b\\xe6\\x56\\xc7\\x7f\\x6b\\x29\\x42\\x0e\\x54\\x33\\xf3\\xdf\\xf3\\x81\\x1f\\x35\\x28\\x20\\x8e\\x9d\\x85\\x0a\\xa3\\xc2\\x9b\\x0f\\x77\\x8a\\x24\\x27\\xd5\\xfd\\xe3\\x07\\x32\\xdf\\xe5\\x04\\x43\\xa9\\xc1\\xad\\x55\\xc7\\x2a\\x08\\xab\\x26\\xff\\xaf\\x8e\\xfb\\x90\\xbc\\xaf\\xd3\\x72\\x6b\\x00\\xc0\\x05\\xc8\\xc0\\xf0\\xdb\\xf2\\xa1\\x35\\x30\\x86\\x72\\x1e\\x44\\x65\\x45\\xb8\\x13\\x44\\x11\\x94\\xa7\\x55\\xfd\\x26\\xb9\\x63\\xaf\\xd9\\x77\\x27\\x8d\\x1b\\x10\\xf0\\x90\\x01\\xc7\\xed\\x97\\x54\\x03\\xc1\\x5c\\xbe\\x7f\\x99\\x2a\\xb0\\x7b\\x84\\x70\\xc9\\x39\\xf8\\x66\\xf4\\x20\\xf7\\x7d\\xb7\\x79\\xaf\\x83\\x97\\x00\\x32\\x9e\\x07\\x77\\xa6\\x11\\x63\\x65\\xd7\\x6c\\x36\\xd0\\x9d\\x86\\x04\\x72\\xa5\"},\n{{0x26,0x31,0xc8,0xc3,0x4d,0x29,0x48,0xdd,0xd5,0x99,0x6b,0x41,0x49,0xce,0xfd,0x23,0x8e,0xa7,0x45,0x2e,0xc2,0x2e,0x24,0x61,0x24,0xdf,0xa2,0x79,0xcc,0xc2,0x7d,0xb8,},{0xc3,0x90,0x67,0x86,0xff,0xb8,0xa7,0xc2,0x7c,0x44,0xc2,0x44,0x7f,0x9d,0xde,0x7d,0x66,0x6d,0xfe,0x58,0x8c,0xfc,0x54,0xf2,0xd2,0x50,0x40,0x51,0x2a,0x37,0x1b,0xc1,},{0x0a,0xdc,0x6f,0xa4,0x0f,0xfb,0x81,0xf6,0xef,0x4e,0x41,0x87,0x55,0x49,0x17,0x77,0x5c,0xf4,0x65,0xe7,0xb5,0xe8,0x57,0xf2,0xe1,0xe7,0xf4,0x00,0x97,0x71,0x06,0xd2,0x37,0x7e,0xbc,0x76,0xab,0xb1,0xdb,0x92,0x4c,0x64,0x86,0x7e,0x3c,0x6f,0xe3,0x8c,0x0b,0x4f,0xcb,0x1d,0x0f,0x94,0x68,0xe8,0xfb,0x23,0x50,0x29,0xa8,0x1c,0xe6,0x04,},\"\\x6f\\x9b\\xdc\\xe1\\x44\\x3f\\x28\\x56\\xd4\\xa2\\xf2\\x27\\x82\\x83\\x50\\x12\\xb7\\x81\\x8a\\x0e\\x02\\x0d\\xbc\\xc2\\x2a\\x82\\x16\\x58\\x30\\x5f\\x13\\x42\\x34\\xd1\\x4c\\xea\\x63\\x61\\x00\\xed\\x89\\x6c\\x2a\\x8f\\xb0\\xe8\\x70\\x48\\xec\\x6f\\x8b\\x31\\x48\\x4f\\x78\\xeb\\x17\\x10\\x45\\xad\\xd7\\x2c\\x85\\x71\\x0e\\xc9\\xf9\\xb5\\xd4\\x36\\x23\\x41\\x7b\\x56\\x53\\xbe\\x86\\xe7\\xfb\\xf8\\xb4\\xff\\x91\\x11\\x0a\\x80\\x8c\\xb4\\x1a\\xcf\\x66\\xd4\\x36\\xe8\\x9a\\x73\\x7f\\xae\\xa4\\xef\\xf3\\x54\\x49\\x60\\xf1\\x14\\xb8\\x33\\xb0\\xb4\\xeb\\xc2\\xc1\\x40\\x70\\xb0\\xbf\\xb7\\xb0\\x05\\x7e\\xeb\\xb8\\x42\\xbd\\x1c\\x1e\\xd4\\x58\\xad\\x34\\x28\\xf8\\xf7\\x2a\\x1d\\x1d\\xb3\\xc4\\xcb\\x47\\x97\\xa3\\x99\\xd4\\x7a\\x1e\\x6d\\xb7\\x4d\\xcb\\x2e\\xe2\\x4a\\xe8\\x15\\x85\\xcf\\x66\\xef\\x6d\\x9b\\xd2\\x23\\xf0\\xf5\\x4b\\xc8\\xc1\\xce\\xc1\\xbb\\x44\\x60\\xbe\\xf4\\xff\\xd3\\x2e\\xe8\\x05\\xc3\\xca\\x5e\\xe9\\x76\\xff\\x9c\\x14\\x55\\x9f\\x8d\\x75\\x66\\x62\\xa2\\xbc\\x19\\xe4\\xc5\\x98\\x54\\x06\\xa0\\x73\\x05\\xc9\\x95\\x0d\\x86\\x6c\\x9a\\x79\\xa3\\xe5\\xf6\\xc5\\x96\\x97\\x53\\xa1\\x70\\xe0\\xfc\\x4c\\xc0\\x9c\\x6d\\x87\\xa1\\x2b\\x44\\xcd\\xf3\\xbe\\x16\\x23\\x15\\x9e\\x90\\xca\\xb7\\xa8\\xa3\\xe6\\xf0\\x1f\\x26\\x85\\x95\\xb0\\x21\\xb1\\xef\\x7d\\x00\\x76\\x94\\x77\\x27\\x0d\\x55\\x84\\xc9\\x12\\xe2\\x2a\\x36\\x74\\x38\\x27\\x7f\\x59\\xdf\\x20\\xc5\\x62\\x0d\\xd5\\xbe\\xaa\\x9b\\xb6\\x0b\\xee\\x47\\xf4\\xaf\\x52\\x7d\\x89\\x29\\x57\\xb2\\xd1\\x2b\\x67\\x8b\\x52\\x79\\xa3\\xf8\\x32\\x64\\x65\\x4c\\x0a\\x0f\\x8d\\x21\\xe7\\x09\\x66\\x8f\\x30\\xfb\\x6e\\x68\\xf0\\x47\\xd0\\xd9\\xa7\\xc2\\xae\\x9a\\x28\\xf7\\xcb\\x9d\\xbf\\x18\\xf6\\x3f\\xc1\\x66\\x1f\\x07\\xd3\\x10\\xe5\\x40\\xc7\\x76\\x31\\xf5\\xbd\\xac\\x58\\x24\\x68\\x5d\\x7c\\x9a\\xba\\x0f\\xe1\\xd0\\x94\\x07\\xa9\\x66\\x2e\\xf1\\x8e\\xb3\\xe2\\x8f\\xd1\\xe8\\xbc\\x89\\x26\\x57\\xbc\\x38\\x24\\x3a\\x2e\\x64\\x53\\xbd\\xae\\xab\\xb2\\x79\\x1f\\xc5\\x48\\x95\\x21\\x29\\x54\\x57\\xad\\x04\\x18\\x0c\\xa8\\x71\\xf6\\x31\\x87\\x92\\xbd\\x15\\xfd\\x18\\x00\\xce\\x59\\xdd\\x3e\\xcc\\x7e\\x0b\\x72\\x97\\x92\\x67\\xd8\\x18\\x3e\\x80\\x4f\\xdd\\x45\\xda\\xad\\x84\\xfc\\x4c\\xaf\\xeb\\x56\\x1e\\xa8\\xd6\\xa7\\x4a\\x7c\\xde\\x72\\x2d\\x96\\x25\\x3a\\xb3\\xe7\\x5f\\x0a\\xdd\\xe0\\x2a\\x61\\xfd\\x5e\\x1f\\x59\\xcb\\x1f\\x5f\\x1b\\x2e\\x05\\x26\\x43\\x58\\x9a\\x9e\\x4b\\xe4\\xdd\\x6e\\xe6\\x45\\x38\\xcb\\x0b\\x10\\x9a\\x11\\x3f\\x30\\xa5\\x8b\\x35\\x65\\x62\\x40\\x43\\x66\\x2a\\xbe\\x17\\xf6\\x0e\\x31\\xe8\\x9c\\x36\\xc9\\x95\\xe0\\x0a\\xe0\\x7f\\x56\\xa9\\x11\\x8a\\x31\\xae\\xc2\\x4a\\xd5\\x44\\xbc\\x96\\x58\\x11\\x21\\x8d\\xf8\\x27\\xc1\\x73\\x0b\\xb9\\x04\\xbb\\x79\\xb6\\x86\\x13\\xf6\\xc9\\x94\\x67\\x9b\\x69\\x90\\xd7\\x75\\xb5\\xcb\\x32\\xdb\\x97\\x19\\x4b\\xd8\\x10\\x19\\xbe\\xa4\\x1f\\x3a\\x7e\\xef\\x50\\x1b\\xf8\\x49\\x1b\\x0e\\xa8\\x59\\x38\\x84\\x52\\xe3\\xec\\xbe\\x16\\xaa\\x7d\\x56\\x91\\x51\\x0a\\x66\\x06\\xc4\\x93\\xe4\\xc2\\x93\\x96\\x1b\\xf4\\x0b\\x4c\\xd3\\x00\\xd9\\xd2\\x2e\\xa1\\xa7\\x72\\x4c\\x07\\x8b\\x8b\\xab\\x1f\\xd1\\x65\\x04\\xe9\\x89\\xb1\\x36\\xd9\\x25\\x1a\\xc9\\xf1\\xed\\x94\\xa5\\xe9\\xac\\xbd\\x9c\\x04\\xf8\\x05\\x8a\\xfe\\x03\\x04\\x9a\\xed\\x8b\\xa2\\x9f\\xa2\\xe8\\xfb\\x44\\xf8\\xe8\\xc0\\x4e\\x87\\x27\\xf3\\x99\\xe7\\x35\\xe6\\xc1\\x49\\x6a\\x91\\xa9\\xb2\\xcd\\x2a\\xb0\\x2d\\x43\\xb2\\x85\\xe9\\xd7\\x61\\x02\\x93\\xb6\\x74\\x9d\\xf1\\x04\\x4b\\x30\\xe2\\xda\\x99\\xa5\\x64\\x42\\x9a\\x23\\xe6\\x8c\\x96\\xfc\\xe9\\x2b\\x08\\xa0\\x0b\\x7b\\x74\\x2b\\xa9\\x7a\\x62\\xee\\x58\\x77\\x6d\\x7d\\xd5\\x65\\xa4\\x90\\x07\\x1d\\x4b\\x19\\xdc\\x64\\x8e\\x03\\x32\\x9c\\xc5\\xc8\\x25\\xd3\\x87\\xeb\\xa4\\x9e\\x2e\\xff\\x6c\\x43\\x41\\x86\\x5c\\x46\\x4f\\x13\\xf1\\xbe\\xb1\\x82\\x7a\\x7f\\x26\\x8c\\xc1\\x5a\\x98\\x24\\x80\\xbf\\x08\\x4f\\xe3\\x65\\x2c\\x1b\\x0e\\x0b\\x4a\\xd2\\x62\\x55\\x85\\x9a\\xbf\\x1c\\x8a\\x7f\\x9b\\x3b\\xef\\x09\\x8a\\x94\\x07\\xfd\\xea\\x0a\\x53\\x9e\\xb0\\x08\\xfd\\xd7\\x49\\xfa\\x01\\x86\\xcc\\x01\\x69\\xd9\\xd9\\xe6\\x8f\\xe5\\xe5\\x4c\\xac\\x32\\xce\\x57\\xb5\\xc8\\x4c\\x2d\\x80\\x5e\\xca\\x39\\xc2\\xdb\\xbd\\xd2\\xe0\\x2f\\x7d\\x22\\x88\\x26\\x71\\x2f\\xf4\\xa6\\x14\\x11\\xca\\x0a\\xeb\\x6f\\x01\\xa1\\xf8\\x0e\\xf2\\x9e\\xeb\\x07\\x1a\\x43\\x22\\x2d\\x94\\x97\\x18\\x4b\\xd8\\x5d\\x9e\\x44\\xb1\\x66\\xbe\\x97\\xcf\\xd2\\xa7\\x32\\xaf\\x4a\\x23\\x34\\x63\\xd3\\xab\\x54\\x3a\\x7a\\x3c\\x7a\\xec\\x55\\x56\\x56\\x56\\x88\\x40\\xf4\\xdf\\xea\\x21\\x7f\\x65\\x53\\xaa\\x98\\xaf\\x32\\x4c\\x12\\xb2\\xc3\\x21\\x4e\\xe7\\x6e\\xec\\x70\\x06\\x70\\xaf\\x68\\xc8\\xc1\\xf3\\x69\\x46\\xef\\xd7\\xff\\x09\\x33\\xe5\\x45\\x3f\\x12\\x8e\\x97\\x15\\xfd\\xb3\\x34\\x4a\\xc1\\x0c\\x4b\\xb7\\xec\\x8f\\x10\\xdd\\xf5\\xdb\\x71\\xf1\\xcf\\x0e\\xfe\\x40\\xf7\\x5e\\x5b\\x63\\x34\\xef\\x8c\\xf8\\x42\\x9b\\x32\\x91\\xe6\\xe4\\xce\\x37\\x9c\\x17\\x8a\\xff\\xcb\\xc6\\x10\\x30\\xeb\\x89\\x6d\\x74\\x4d\"},\n{{0x39,0x76,0x9a,0x66,0xf0,0xca,0x12,0x90,0xfd,0xa1,0x43,0x75,0xb3,0x5c,0x66,0x3f,0x6a,0x4b,0x2a,0xb3,0x60,0x71,0x79,0xab,0xd9,0x90,0x63,0xe2,0xef,0xa2,0xc6,0xa8,},{0xf9,0xfd,0x4c,0x19,0x1f,0x38,0xf1,0x21,0x90,0xd3,0x28,0x5e,0x20,0xc6,0xce,0xe5,0x4c,0xfd,0x6f,0xf3,0x15,0x30,0x0a,0x4e,0xfd,0xc8,0xa9,0x0e,0x80,0xaf,0x40,0x83,},{0x14,0x42,0xde,0xa2,0x80,0x7e,0x03,0x11,0x59,0xec,0x6a,0x41,0x2d,0x8e,0x07,0xbb,0x3e,0x29,0x93,0x08,0x09,0x0f,0x21,0x8f,0xa7,0xc1,0x0a,0x9c,0x50,0x68,0xef,0x9b,0x64,0xef,0x11,0xca,0x9f,0xb9,0x2b,0xe1,0xd0,0x21,0x6b,0x99,0x31,0x8f,0xf0,0xf0,0x3c,0xb8,0x71,0xcd,0x7d,0xd6,0x3a,0x38,0xae,0x17,0x02,0x31,0x3e,0x5b,0x25,0x0c,},\"\\xff\\x4d\\x89\\x87\\xe3\\xfa\\x36\\x01\\x2b\\x75\\x86\\x73\\x6b\\x79\\x3d\\x65\\x97\\x54\\x69\\x8c\\xd1\\x2b\\x65\\xe5\\xba\\x9d\\x75\\x8c\\xac\\x16\\x49\\x28\\x8d\\x20\\x22\\x43\\x77\\x28\\x3e\\xa5\\x42\\x5d\\xec\\x10\\xab\\x99\\x17\\xd1\\x8c\\xd1\\x3d\\x1b\\xdf\\x4a\\x76\\x9f\\x37\\x04\\x4c\\x84\\xfa\\xa2\\xa4\\x49\\xc6\\x89\\xe0\\x04\\xc1\\x4e\\x00\\x5c\\x49\\xda\\x41\\x06\\xff\\x75\\xce\\x13\\x03\\x36\\x1c\\x6e\\x3e\\x34\\xcc\\xfe\\xe7\\x5e\\xe9\\xc3\\x1c\\xbd\\x06\\xa4\\xbc\\xdb\\xb4\\x2f\\xd6\\x49\\xbe\\x4d\\xfc\\xd6\\x64\\x00\\x6d\\x6a\\x5f\\x61\\x07\\x7c\\x04\\xa6\\xa8\\x1d\\xb3\\x6b\\xe8\\x6b\\xa4\\x2c\\x29\\x51\\xf0\\x51\\xae\\xda\\x64\\xac\\xea\\x49\\x6c\\xb9\\x24\\x98\\x2b\\x9f\\x7d\\x23\\x4a\\xc9\\x72\\x3f\\xef\\x98\\xa8\\xe1\\x27\\x55\\xe3\\x26\\xa5\\x2f\\xbe\\x35\\x85\\x1f\\x41\\x1e\\xeb\\x86\\x76\\x06\\xd4\\x5b\\x51\\x3f\\x54\\x52\\x63\\x91\\xc5\\x54\\x63\\x5c\\x18\\x0b\\x8f\\xd0\\xee\\x45\\x1a\\xfc\\x96\\xe4\\xef\\xd3\\x60\\xb6\\x1e\\x6b\\xaf\\x03\\xdd\\x6d\\x19\\xba\\x51\\x5c\\x31\\xec\\x1c\\xdd\\x3a\\xff\\xff\\xdb\\x27\\x35\\x4e\\x3e\\x6b\\x56\\xe9\\xe1\\xa1\\xa1\\xb7\\xd4\\xb5\\x7d\\x9d\\x76\\x89\\xbb\\x2f\\xea\\x6c\\x8d\\x3f\\x9c\\xe0\\xdf\\x2d\\x9e\\xe9\\x19\\xc4\\x23\\x0a\\x1f\\x20\\xb8\\x5d\\xfe\\xfe\\x1e\\xa3\\xd7\\xf7\\x7d\\xb4\\x70\\xe4\\x02\\x24\\x29\\xef\\x60\\x9b\\x0f\\xf4\\x49\\x46\\x44\\x0a\\xcb\\x44\\xcd\\x13\\x44\\x5b\\xcf\\xa3\\xf2\\x05\\x03\\xc2\\x6c\\x2f\\xb6\\x63\\xc8\\x90\\x65\\xfb\\x93\\x34\\xa6\\x03\\xeb\\x9a\\xb7\\x15\\x2e\\x62\\x62\\x92\\x33\\xc4\\x4c\\xb0\\x0e\\x77\\x71\\x6d\\x9b\\x72\\xc8\\x4f\\xd1\\xb3\\x40\\x63\\x4f\\xf1\\xce\\xa3\\x47\\x50\\x15\\x76\\x10\\x0e\\xcb\\x0f\\xd1\\xbb\\x76\\xae\\x0d\\xff\\x1c\\x2b\\x09\\x48\\xeb\\x71\\xee\\x2c\\xc3\\x1e\\x79\\xd3\\x01\\x5d\\x72\\xdb\\xee\\x22\\x4a\\x98\\x0e\\x0f\\x95\\xa6\\x9f\\x79\\x3d\\xa8\\x3a\\x2d\\xaa\\x56\\xef\\xe5\\x7b\\x2f\\x8c\\xea\\xac\\x9e\\x55\\xf4\\x43\\xca\\x9e\\x73\\x2b\\x48\\xc7\\x5f\\xac\\x21\\xc3\\x6f\\xa7\\x72\\x73\\xc3\\xf3\\x48\\x35\\xff\\xd8\\x3c\\x96\\xf0\\x0a\\xc6\\xe8\\x6c\\xff\\xed\\x08\\x15\\x36\\x46\\xc1\\xce\\xa2\\x23\\xda\\x9c\\xa3\\x60\\xca\\xb9\\x7e\\x03\\xb2\\xb6\\xc8\\xfb\\xa7\\xc1\\x95\\xa3\\x9a\\xe5\\x2e\\xb2\\xee\\x86\\x43\\x00\\xae\\x56\\xa1\\x0f\\x54\\x7f\\x99\\xa3\\x16\\x98\\x72\\x24\\x9f\\x97\\x77\\x4b\\x17\\x98\\x93\\x55\\x36\\xf2\\xf5\\xf0\\x11\\xce\\x57\\x61\\x3a\\x94\\xfc\\xb7\\xe7\\x28\\x6a\\x6d\\x49\\xc1\\x0f\\xd9\\x29\\xd7\\x67\\x1c\\xbb\\x8c\\xf1\\x7d\\xfc\\xad\\x4b\\x24\\x85\\xc3\\xd8\\xfd\\x79\\x12\\x87\\x21\\xe5\\x5d\\x84\\x80\\x87\\x63\\xc2\\xaf\\xa9\\xc5\\x5e\\x3b\\x0c\\xd7\\xbf\\x2f\\x0a\\x66\\xb5\\xe4\\x67\\xbe\\xc5\\xee\\x89\\xad\\x57\\x0b\\x60\\xf1\\x88\\xb3\\xf7\\xb4\\xa5\\x11\\xff\\x85\\x93\\x12\\xde\\xd0\\x78\\xd8\\xd0\\x09\\x11\\x34\\xfd\\x49\\xbc\\x79\\x2d\\x2d\\x7d\\x60\\xb3\\x04\\x94\\x1c\\x7f\\x23\\x20\\x6f\\x99\\xe8\\x63\\xb1\\xe2\\xd8\\xc9\\xec\\xff\\xd2\\xff\\x0a\\x3a\\x3c\\x75\\x49\\x85\\x61\\x5a\\x9a\\x92\\xed\\xce\\xad\\x00\\xfe\\x0e\\x05\\x49\\x3b\\x19\\x8d\\x1f\\x7c\\x90\\x08\\x84\\x46\\xbb\\xa4\\x60\\x38\\xa7\\x1f\\x32\\x65\\x3b\\x59\\x12\\xb2\\x4f\\x43\\x13\\x77\\x48\\xb7\\x5a\\xec\\x2c\\x15\\xfe\\x4b\\xf5\\xa6\\xf8\\x6b\\x8a\\x6c\\xdd\\x9c\\x74\\x47\\xf2\\xeb\\xb0\\xf4\\x3b\\x01\\xca\\x15\\x23\\xe0\\xd4\\x96\\x24\\x00\\x06\\xad\\x7f\\xff\\xfa\\xfe\\x0d\\xf5\\x75\\x4b\\x34\\x2c\\xaf\\xf3\\x55\\x5d\\x72\\xa2\\x7d\\x0b\\x92\\xca\\x16\\x67\\x66\\x5c\\xec\\x43\\xbf\\xb5\\x83\\x07\\x7a\\x9c\\x17\\x41\\xfa\\x49\\x2c\\xe3\\xdc\\x2c\\x75\\x29\\xcd\\xed\\x81\\xb8\\x28\\x1a\\x3f\\x37\\x59\\x48\\xb8\\xa7\\xce\\xd0\\x96\\xb2\\xfa\\xcc\\x25\\xe3\\x90\\x29\\xe2\\x21\\xb6\\x6a\\x53\\xd3\\x97\\x9e\\x1f\\x40\\x5f\\xd8\\x8a\\xfc\\x06\\xec\\x6e\\x43\\x09\\xdc\\x85\\xe6\\x9d\\x6e\\xf2\\xb4\\xb4\\x92\\x66\\x16\\x4a\\x9d\\x9d\\x1c\\x31\\xee\\x39\\x21\\x12\\x7b\\x13\\x38\\x1b\\xfb\\x74\\x0d\\xd3\\x8d\\xc1\\xc7\\x31\\x59\\x21\\xf9\\xc2\\xfe\\x58\\xb6\\x1b\\x63\\x1a\\x7d\\x9f\\xde\\x2d\\xd8\\xa4\\xbe\\x3d\\xed\\x04\\x90\\xae\\x3b\\x83\\x76\\x79\\x19\\x55\\xc1\\xc4\\xb4\\xfe\\xd0\\x0b\\x9f\\x4c\\x38\\xab\\x73\\x50\\xfc\\x2e\\x37\\xa3\\x15\\x0c\\x18\\x16\\x2b\\x1f\\xaf\\x03\\x37\\x89\\x4b\\xc2\\x3e\\x74\\xf5\\x95\\xe4\\xbe\\x33\\x46\\x6d\\xea\\xb3\\x54\\x58\\xbe\\x97\\xb4\\xf7\\x56\\x58\\x97\\xf0\\x68\\x52\\xf7\\x1c\\x60\\xfe\\xf9\\x10\\x1d\\x72\\x6b\\x72\\xe0\\x10\\x2a\\x97\\xb2\\xca\\x52\\x11\\xe3\\x80\\x68\\x34\\xb0\\xac\\x1a\\x7d\\xf8\\x7c\\x2a\\x07\\x8d\\xf2\\x63\\xef\\x8b\\xa4\\x57\\xdc\\x89\\x1b\\x7f\\x2e\\x62\\x78\\x11\\xab\\x62\\x2b\\x99\\x46\\xf8\\xc6\\xb7\\x31\\xf2\\x40\\x78\\xd1\\x7b\\x06\\xb2\\x00\\xc3\\x44\\x7f\\x80\\x32\\xaa\\x3e\\x7a\\x24\\x3e\\xe4\\x22\\xdd\\xa2\\xe6\\x52\\xfd\\x75\\x71\\x3a\\xfb\\xce\\x8a\\x59\\xef\\x85\\x36\\x65\\x3a\\x48\\xdc\\xf4\\x2a\\x70\\xe7\\x62\\x1f\\x9b\\x28\\x02\\x40\\x9b\\xe1\\xc1\\xa6\\x1f\\x32\\xe3\\x67\\x89\\xa5\\xc5\\x05\\x5e\\x1a\\x82\\x68\\xe9\\xdc\\x43\\x8c\\x2e\\x15\\x27\"},\n{{0x0c,0x80,0x8b,0x06,0x6f,0x0c,0x8e,0x8d,0xbb,0x1c,0x23,0xd6,0xc2,0xce,0xdd,0x0b,0xe8,0x66,0xd8,0x42,0x5f,0x24,0x1a,0x92,0x85,0x70,0x0e,0xa5,0x45,0x36,0xcf,0x6d,},{0x44,0xee,0x72,0x90,0x04,0x50,0xc5,0x6a,0xb2,0x1f,0x26,0x86,0xd2,0x95,0x25,0xd0,0x66,0x3e,0x0b,0xdd,0x87,0x72,0x5b,0xea,0xc5,0xd6,0x8b,0xac,0xeb,0x69,0xf1,0xd2,},{0x38,0xc6,0x82,0xce,0xde,0xfb,0x13,0xe4,0x6b,0x11,0xf7,0xb5,0xf8,0x00,0xcc,0x81,0x20,0xd4,0x5a,0x83,0xcd,0x8d,0x8d,0xec,0x10,0xc5,0x77,0xbb,0x01,0x53,0xd5,0x09,0xba,0x4f,0xdf,0x40,0x09,0x98,0x78,0x8b,0x70,0x60,0x07,0xce,0x16,0x2b,0x96,0x94,0x5c,0x71,0x40,0xbe,0xee,0x74,0xe1,0x9d,0x07,0x43,0xaf,0xa4,0xec,0xfd,0x25,0x0a,},\"\\xc9\\x45\\x71\\x41\\x00\\x58\\x1f\\x4e\\x24\\xda\\x11\\xfc\\x0f\\x6c\\x6d\\x02\\x10\\x43\\x3f\\x97\\x77\\x52\\x51\\x24\\xc5\\x5e\\xe0\\x72\\xd8\\x5d\\x79\\x8b\\x70\\x5f\\x9d\\x31\\xc8\\xf9\\x77\\xdb\\x6e\\xdf\\xb7\\xa6\\x5c\\x78\\xad\\x2d\\x7d\\x31\\xd6\\xb7\\xb5\\xbe\\x40\\xff\\x11\\x78\\xd3\\x03\\xb6\\x83\\x9b\\xb0\\xc6\\x32\\x10\\xc1\\xd3\\x38\\xc1\\x03\\xaf\\xa0\\xd4\\x53\\xec\\xa1\\xbc\\xa2\\x77\\xd9\\x30\\x77\\x8a\\xd5\\x08\\x02\\x27\\x2f\\x03\\xdb\\xe2\\x18\\x4f\\xc3\\x1e\\xf8\\xea\\x6a\\xbe\\x21\\x69\\x97\\x19\\x9f\\x7c\\x1b\\x33\\x77\\x37\\x96\\x89\\x07\\x27\\x2a\\xa5\\x1b\\xd4\\x9c\\x07\\x38\\x9c\\x95\\x46\\x8c\\xef\\x4f\\xd9\\x9a\\xe7\\x8c\\xa4\\x54\\x2a\\x2b\\xbc\\x0e\\x8a\\xa9\\x52\\x14\\xad\\x1c\\xff\\xf9\\xd5\\x08\\x5a\\x43\\x43\\x94\\x47\\x3b\\x84\\xb7\\x4b\\xe9\\xbf\\x2f\\x02\\x02\\xad\\x1e\\xe4\\x61\\x66\\x04\\xca\\x1d\\xd7\\x5f\\x4a\\x19\\x53\\x42\\xeb\\xbf\\x8f\\xc5\\x9f\\x3f\\x79\\x61\\x65\\x54\\xdc\\x7b\\xfd\\xd5\\x56\\xbe\\x43\\x72\\x21\\xc1\\x0b\\xfa\\xd3\\x9e\\x11\\x9e\\x06\\x04\\x5b\\xe5\\xfe\\xd6\\x83\\xd3\\x53\\x4f\\xb6\\xcf\\xed\\x33\\x89\\x1c\\x96\\xf9\\xc3\\x30\\xf2\\x8b\\x68\\x4f\\x8f\\xba\\xd4\\x7c\\x01\\x41\\x8e\\xab\\x6c\\xee\\xcc\\x2e\\xd7\\x77\\xf4\\xc2\\x18\\xa2\\x7a\\xc2\\x25\\x82\\x39\\x23\\x15\\xc5\\x3a\\xa7\\x30\\x9e\\xc5\\x4c\\x61\\x75\\x23\\x6e\\x44\\x24\\xdc\\x97\\x84\\x65\\xab\\x62\\x8d\\x95\\x44\\xb0\\xbe\\x84\\x10\\x3e\\xb5\\x6f\\x1b\\xaf\\xe5\\xe5\\xea\\xed\\x04\\xc9\\x8b\\xfe\\x2e\\x8a\\x24\\x18\\xc6\\xc5\\x2a\\x61\\xea\\xce\\x85\\x23\\x6b\\x66\\xc7\\xb3\\xb8\\x70\\x7e\\xd5\\x56\\x41\\xdd\\x9d\\x5d\\xa9\\x7c\\x99\\xc1\\x1c\\xbe\\xb9\\xaa\\x2d\\xb1\\x47\\x82\\x0d\\xc7\\x24\\x80\\x0a\\x9d\\x80\\xf5\\x05\\xfa\\x5a\\xf2\\x09\\x21\\xca\\xd2\\x43\\x56\\x83\\xbb\\x4f\\xc6\\x0b\\xdd\\xd4\\x75\\xf8\\x63\\xe2\\xf5\\x95\\x0d\\x23\\x63\\x99\\xd8\\xd7\\x5b\\x40\\x4b\\x39\\x4a\\x54\\x67\\x37\\xf9\\x3a\\x62\\x40\\x87\\x00\\xb3\\xab\\x3c\\x1e\\x92\\x2b\\x1a\\x85\\x9a\\x29\\x15\\xc2\\xd3\\x53\\x68\\x81\\x5c\\xd4\\x5b\\x85\\xb2\\xac\\x08\\x31\\x21\\xff\\x00\\x0f\\x05\\x0d\\xcd\\xf4\\x15\\xe5\\x27\\x5a\\x5c\\x42\\xda\\xe3\\xb1\\x54\\x00\\xf3\\xdd\\xaf\\x93\\x39\\xf2\\x0a\\x12\\x61\\xa8\\x8c\\xd9\\x02\\x05\\x63\\x97\\x63\\x21\\x11\\x52\\xdf\\x41\\x4a\\x9a\\x6a\\x62\\x18\\xf5\\x6b\\x35\\xa2\\xde\\x9e\\x84\\x82\\x44\\x9f\\x6d\\xa7\\x7c\\x9e\\x3d\\x4a\\xf0\\x49\\x30\\x15\\xa7\\x26\\x21\\x7f\\x82\\xac\\x58\\x95\\x4f\\xe3\\xe2\\xe3\\x44\\x40\\x35\\x6b\\x11\\x2e\\x06\\xa6\\xf6\\x71\\xfb\\x5a\\x6e\\xf4\\x61\\x9a\\x6e\\xa7\\xb4\\xe0\\x4d\\xb3\\x75\\x7f\\xb6\\x64\\xc3\\x96\\xb3\\x41\\xca\\x89\\x00\\x1d\\xc1\\x60\\x4b\\x51\\xfa\\x91\\x53\\xf9\\x13\\x0c\\x10\\x20\\xff\\x88\\x90\\x92\\x87\\x82\\x3a\\xb3\\x91\\x5c\\xcc\\x85\\xc4\\xe3\\x5d\\xf6\\xc2\\xf8\\xe6\\xf9\\x02\\xbe\\x82\\xba\\x21\\x29\\x7f\\xd3\\x83\\x5a\\xff\\x5c\\xe0\\x2f\\x3c\\x07\\xdc\\x09\\x3f\\xcb\\x1a\\xba\\x26\\xe0\\x6d\\xfe\\x6f\\x02\\xdf\\x79\\x29\\x1a\\xac\\xa0\\x69\\xec\\xab\\x93\\x81\\x40\\x4c\\x9c\\x3e\\xa1\\xad\\x40\\x9a\\xdf\\x29\\x2a\\x91\\xe3\\xa5\\x82\\xd5\\xa7\\xb6\\x8f\\xfb\\xe1\\x0a\\x03\\x05\\x24\\x8e\\x09\\x67\\xe6\\xdf\\x37\\x2f\\x28\\x1b\\xd1\\x92\\xe1\\x39\\x97\\x9c\\x98\\x66\\xca\\x8f\\xe1\\xe1\\x0e\\x06\\x16\\xdc\\x2d\\x4f\\x85\\xe1\\x19\\xe0\\xcb\\x4b\\xfe\\x8c\\xc3\\x1d\\x9f\\x5c\\x01\\x8b\\x65\\x40\\x85\\x24\\x00\\x0a\\x30\\x16\\xa2\\x3d\\x99\\x14\\xd5\\x7e\\x95\\x55\\x76\\xe2\\x66\\x0b\\x0e\\x0d\\x96\\xc8\\x49\\x5a\\x12\\xc3\\xd7\\x31\\x22\\xd2\\x00\\xb0\\xf0\\xe5\\xeb\\xd4\\x46\\x56\\x2b\\x08\\xf4\\x79\\x34\\xab\\x49\\x9a\\x96\\x99\\x1d\\xcf\\x99\\xc9\\x6a\\x62\\x88\\x07\\x39\\x84\\x5d\\x29\\x82\\x01\\x50\\x55\\x3e\\xae\\x9b\\xe0\\xbb\\x41\\xd5\\x3d\\x3a\\xf0\\x1d\\x98\\x67\\xbb\\x47\\x32\\xc9\\x0b\\xf6\\xe1\\x37\\x31\\x6e\\x3b\\x1e\\xdc\\xc2\\x09\\xa8\\xa0\\x9f\\xb0\\x62\\xa6\\xef\\x05\\xf3\\x7e\\x57\\xf2\\xc5\\xd1\\xd0\\xca\\xba\\xf0\\x7a\\x8e\\xd7\\xd4\\x14\\x55\\x40\\x7b\\x09\\x67\\x54\\x18\\x0a\\xa9\\x6d\\x3d\\x96\\x59\\x19\\x45\\xdd\\x7a\\x10\\x40\\xa2\\xde\\x60\\xd8\\xe1\\xc0\\x54\\xf7\\x85\\x46\\x52\\xb7\\x32\\xe7\\xa8\\xf5\\xb6\\x47\\x4c\\x3b\\xaa\\x18\\x40\\xfb\\xe8\\x1b\\x1e\\x6b\\x54\\xe2\\x01\\xef\\x0b\\xc8\\xd0\\xf2\\x13\\xd7\\xce\\xc1\\xd8\\x24\\xd2\\x22\\x09\\xac\\x72\\x52\\x5a\\x64\\xb9\\x03\\xe7\\x73\\xb8\\x3f\\x1b\\x68\\xf6\\x40\\x27\\x9f\\x15\\x05\\x3d\\x21\\xec\\x15\\xce\\x2f\\xf7\\x59\\x22\\x17\\x6b\\x75\\x84\\xa1\\x6b\\xf1\\xa1\\xf0\\xd6\\x36\\xb7\\x94\\x2a\\x3d\\x61\\x86\\x2f\\x6f\\xd1\\x30\\x99\\x72\\xd3\\x14\\x1e\\xb7\\x69\\x31\\x4c\\xa9\\x75\\xd0\\x20\\xbf\\x02\\xbf\\xdd\\xf1\\x7d\\x14\\xb6\\x0e\\xb7\\x86\\xbf\\x9f\\x55\\x98\\x9f\\xe4\\x73\\x32\\x0d\\x44\\x29\\x67\\x7e\\x30\\x1c\\x68\\x26\\x33\\xf8\\x13\\xff\\x26\\xc0\\xa3\\xda\\x92\\xf6\\xd0\\x68\\x06\\x16\\x10\\x5b\\x04\\x25\\xaf\\x33\\x8c\\x2e\\xa6\\x15\\x3b\\xdd\\x52\\x16\\xfa\\xe2\\xaf\\xe4\\x61\\xe9\\x24\\x9c\\x05\\xe3\\x2f\\x76\\xad\\x7c\\x42\\x9d\\x92\\x53\\x4b\\x68\\x6d\\xd1\"},\n{{0x04,0x9d,0xac,0x3c,0x97,0x7d,0x9d,0xf5,0x03,0x49,0x6b,0x43,0xd7,0x6e,0x55,0x40,0xe3,0x15,0x00,0x1a,0xd5,0x7f,0x15,0xea,0x9f,0x08,0x70,0xca,0xd2,0xd4,0xf9,0xe9,},{0xfc,0x6f,0x4b,0x7e,0xb3,0x9a,0x71,0x16,0x80,0xf9,0x66,0xd4,0x68,0xa6,0x1a,0xbb,0x13,0xa9,0xb6,0x44,0x9b,0xb9,0x9f,0xda,0x3d,0x12,0xce,0x1b,0x50,0x6d,0x1b,0x4b,},{0x75,0x32,0xd1,0xa6,0x1a,0x98,0x1f,0x30,0x3d,0x7c,0x24,0x54,0x35,0x4f,0x99,0x54,0x0c,0xd4,0x84,0xcd,0xe9,0xab,0x33,0x7d,0x6f,0x7b,0x51,0xf1,0x79,0x22,0x0f,0x7f,0xa2,0x07,0x34,0x76,0xb4,0x1c,0x71,0x52,0x9f,0x98,0x36,0xdb,0x6b,0x1d,0x0f,0x5a,0x48,0x2b,0xbb,0x4c,0x68,0x36,0x61,0x76,0xed,0x14,0xd4,0xd8,0xee,0xfa,0xde,0x0d,},\"\\x7f\\x31\\xe3\\x46\\xf6\\x8d\\xa7\\x37\\x16\\xaa\\xcb\\x16\\xee\\xa1\\x9b\\xb2\\x41\\x42\\xdc\\x28\\x3e\\x72\\x63\\xff\\xc3\\xf7\\x04\\xa2\\x2a\\xe5\\x27\\x5a\\x0e\\xf9\\x5f\\x06\\x69\\xba\\xe5\\xa5\\x4c\\x7f\\xeb\\x84\\xbc\\x74\\x87\\x3c\\xca\\x0f\\x33\\x5d\\x6c\\xff\\x3d\\x8b\\x4a\\x20\\x05\\x6c\\x64\\xf5\\xe8\\x82\\xcb\\xbb\\xd2\\xac\\x74\\x20\\x76\\x76\\x46\\x7e\\x54\\x66\\xdd\\xd5\\x6a\\xed\\xf5\\x6e\\x09\\x7c\\x7f\\x59\\xd9\\x45\\x91\\x5e\\xb0\\xeb\\xd0\\xc3\\xc8\\x3d\\x48\\x88\\x8d\\x3e\\x9e\\xde\\x51\\xad\\x2d\\xd8\\xa0\\xee\\x1e\\xab\\x4c\\xf8\\x7f\\xfa\\x78\\x63\\x5a\\xfc\\x4d\\x6e\\xf3\\xe8\\x7d\\xda\\x3b\\x65\\x56\\x5c\\x29\\x85\\xa4\\xad\\x0a\\xcf\\xdf\\xb8\\x1c\\xb0\\xe6\\x1c\\x67\\x82\\x6a\\x6e\\xa0\\xbe\\xd4\\xc0\\x8a\\xa1\\xa5\\x41\\xde\\x60\\x45\\x87\\x04\\xac\\x21\\xca\\x12\\xf1\\xc8\\x11\\x8b\\xb3\\x09\\x2c\\x35\\xa4\\x0c\\x92\\x1e\\x68\\x45\\x64\\x56\\x2c\\x2c\\x10\\x49\\xdc\\xdc\\x2b\\x8d\\x6a\\x97\\xe3\\x56\\x7d\\x35\\x6b\\xff\\xb5\\x69\\x2a\\x41\\xd8\\x9d\\xdd\\xa0\\xec\\x35\\x52\\x15\\x2a\\x27\\x57\\x7f\\x1c\\xce\\x57\\xd0\\x09\\x86\\xdc\\xa7\\x7e\\xdf\\x5e\\x25\\x18\\x15\\x82\\x00\\xad\\xf6\\x90\\xaf\\xfb\\x31\\xaa\\xf2\\xb5\\x74\\x83\\x68\\x39\\x44\\x09\\x99\\xf1\\x57\\x91\\xce\\xa8\\x53\\x42\\xac\\x94\\xa9\\x6c\\x7a\\xf7\\xa1\\x9e\\x49\\x43\\x10\\xae\\x26\\x67\\x5f\\x43\\xc3\\x52\\x58\\xe8\\x5b\\x68\\x40\\xb9\\x9c\\x6b\\x09\\xcf\\xa5\\x8d\\x19\\xf1\\xe4\\x3a\\x77\\xe3\\x97\\xb0\\x8c\\x0d\\xb1\\x83\\x0b\\xca\\x67\\xb3\\x9e\\xcd\\x87\\x52\\xda\\x61\\x1e\\x08\\x32\\xc6\\xca\\xe7\\xbb\\x8c\\xe7\\x4a\\x82\\xe7\\xe7\\x33\\x0b\\xe5\\x06\\x2e\\xd0\\x5a\\xa5\\xc8\\x44\\x57\\xb0\\x07\\xfb\\x5c\\xcd\\xc2\\x0a\\x55\\xd5\\x4d\\x8e\\x04\\x09\\xc8\\xbd\\x83\\x88\\x3d\\x2e\\x02\\x9d\\xff\\x26\\xea\\x5d\\xb2\\x75\\xdc\\xe0\\x99\\xe4\\x18\\x65\\x9a\\x04\\x00\\xf1\\x3b\\xe9\\xff\\xdc\\x14\\xe7\\xd6\\x45\\xa9\\x46\\x77\\xca\\x84\\x69\\x70\\xb7\\xe6\\xac\\x52\\x7f\\xa0\\x09\\xa3\\x59\\x45\\x4b\\x3c\\x49\\x36\\x49\\x05\\x18\\x9f\\xb4\\x9c\\x9b\\xac\\xb6\\x50\\xc0\\x3c\\xd8\\x28\\x75\\x89\\x4e\\x35\\x46\\xba\\x03\\xc3\\x2e\\x33\\x6f\\xc6\\x51\\x6a\\x87\\x67\\x6c\\x50\\xd5\\xb8\\x0b\\x30\\x54\\x27\\x3b\\x15\\x7c\\x5d\\x76\\x75\\x14\\xe5\\x45\\x74\\xb8\\xa1\\x01\\x98\\x5a\\x8e\\x96\\x7e\\x95\\xda\\x8f\\x92\\x98\\x00\\x26\\x0e\\x08\\x14\\x8b\\xee\\xe2\\xd7\\x78\\x1e\\x9e\\x85\\xd4\\x63\\xa9\\x4f\\xfe\\xfd\\xbb\\x75\\xc2\\x8f\\xa8\\x89\\x80\\x15\\x68\\x09\\x99\\x42\\x9c\\xee\\x79\\x8b\\x3f\\xd2\\xd9\\x67\\x37\\x86\\x8a\\x26\\x3f\\xba\\x9f\\xb6\\xf4\\xaa\\xd5\\x6a\\x15\\xc6\\x41\\x2f\\xf8\\x5e\\x7d\\x37\\x52\\x10\\x2d\\xaa\\xf2\\x5e\\x74\\x5f\\xa5\\xf6\\xf1\\x74\\xa2\\x31\\xfc\\xce\\x86\\x24\\xdd\\x70\\x85\\x6f\\x9b\\xab\\xcc\\x20\\x91\\x44\\xff\\x68\\x64\\x64\\x8d\\xea\\x0d\\x68\\x84\\x56\\x6a\\x4c\\x39\\x14\\x78\\x05\\xbe\\x08\\x4e\\x47\\x40\\xbc\\x50\\x93\\x09\\xbc\\xb1\\x42\\x96\\x4b\\xb0\\xcf\\xcf\\x67\\x26\\xa0\\xe0\\x4b\\xbf\\x32\\xae\\x68\\x34\\x73\\x2b\\xda\\x03\\x84\\xce\\xa8\\xf4\\xa4\\x84\\x9b\\xba\\x0d\\x18\\x64\\x6c\\x1c\\x34\\x47\\x18\\x96\\xb5\\xbe\\xf1\\x49\\xf8\\xca\\xb9\\xec\\x83\\x72\\x2b\\x0f\\xb2\\x09\\xef\\xe8\\xa0\\x4c\\x4a\\x23\\x5d\\xc8\\xdd\\xb2\\x0a\\xcd\\x92\\x76\\x5a\\xfb\\xf3\\x05\\x87\\x40\\xea\\x70\\xb9\\xc1\\x0d\\x9c\\x5a\\xef\\x86\\x06\\x29\\x8f\\xe4\\x15\\x15\\x93\\xb2\\x1f\\x79\\x7d\\x92\\xae\\x9f\\x1e\\x08\\x81\\xb0\\xd2\\x71\\xb0\\xd5\\xb1\\x0c\\x6e\\xd8\\x3c\\x34\\x9e\\xc2\\x47\\x3f\\xbf\\x2f\\xf7\\x80\\xdc\\xd0\\x76\\xd8\\xcf\\x0a\\xea\\xfa\\x71\\xfe\\x2b\\x8c\\x51\\x28\\x01\\x5f\\x8f\\xbb\\xcf\\xec\\xd5\\x28\\x1c\\xd5\\xea\\xcb\\x6f\\xe9\\xac\\x6e\\xaa\\x6e\\x47\\xd6\\x67\\xb9\\xad\\x4b\\x7e\\x41\\x1e\\x6c\\xb7\\x46\\x3d\\x56\\x76\\x07\\xaf\\xbf\\xd0\\x41\\x8c\\x4e\\xb0\\x6a\\xfe\\x84\\x7f\\x5e\\x40\\xb4\\x99\\x44\\x38\\x28\\xd5\\xa2\\x73\\xa4\\xa8\\x7e\\x46\\xde\\xf2\\x1a\\x91\\x9d\\x73\\x86\\x3a\\xf0\\x05\\x4a\\x09\\x9e\\x3a\\xdc\\x54\\x50\\xb8\\xe3\\x2f\\x51\\xea\\x52\\xc5\\x99\\xa4\\xa2\\xa3\\x53\\x51\\x78\\x8a\\xf7\\xcb\\x71\\xe5\\xc4\\x4b\\xcb\\x8d\\xf5\\x4a\\x60\\x1e\\x6e\\xc2\\xc1\\x82\\x8b\\x48\\xc4\\xb1\\xae\\x44\\x63\\x10\\x6f\\x10\\xef\\xa5\\xca\\xf3\\x09\\x1a\\xbf\\x99\\xaa\\xba\\x52\\x52\\xf4\\x84\\xd3\\xbb\\xc6\\x2b\\xfa\\x6b\\x2a\\x80\\x6d\\x23\\xc6\\x33\\x1a\\x62\\xfc\\x46\\xbc\\x62\\x76\\x79\\xe7\\x3e\\xc8\\x2d\\xcc\\x08\\xf7\\x91\\x43\\xf4\\xb7\\x1e\\xcf\\x35\\x7e\\xa2\\xf0\\xd7\\x4e\\x6d\\x30\\x58\\xe6\\x06\\x04\\x3f\\x6e\\x8f\\xed\\x70\\x42\\x82\\xc1\\x6b\\x1f\\x98\\x8f\\xfa\\x36\\x5c\\xfa\\xe9\\xa3\\xcf\\x79\\x2e\\x0c\\x5b\\xaa\\xd7\\x0c\\xa7\\xe2\\x57\\x76\\x01\\x8b\\x5e\\x7f\\x0e\\x95\\x44\\xe1\\xd7\\x3f\\x3e\\x5d\\x1e\\x41\\x6a\\x5e\\x50\\xfb\\xed\\x29\\x6d\\xc1\\xbf\\x4b\\x29\\xa3\\xfb\\xe3\\x2e\\xfb\\xd7\\xe9\\x9c\\x83\\x01\\x5d\\x27\\xf5\\x35\\xad\\xec\\xf1\\x75\\xfc\\x36\\xc1\\xea\\x4f\\x44\\x23\\xb3\\x6d\\xcd\\xc0\\x54\\xba\\x99\\x32\\x78\\xe8\\x5a\\xc3\\x62\\x2d\\x43\\x5f\\x52\\x37\\xba\\x61\\xb4\\x9a\"},\n{{0xf0,0x7d,0x61,0xb5,0xca,0x1c,0x27,0x00,0xcb,0x50,0xf9,0x00,0xc2,0x6b,0x7c,0x28,0xf6,0xc6,0x94,0x08,0x08,0xc7,0xba,0xff,0xf7,0x4f,0xca,0x4b,0x11,0xf4,0x25,0xd4,},{0xeb,0x24,0x3d,0xfa,0xcc,0x2d,0xc6,0x43,0x57,0x76,0xd5,0x54,0xec,0xed,0x8b,0xf9,0x23,0x90,0x60,0x4b,0x35,0x55,0x7c,0xda,0x51,0xfd,0x20,0x3e,0xdd,0xb4,0x93,0xfa,},{0xc1,0x9b,0x53,0x2b,0x82,0x48,0x56,0x39,0x32,0x63,0x97,0x01,0xbf,0x15,0xbc,0x01,0x5f,0xae,0xbb,0x17,0xbb,0x98,0xd8,0x71,0x61,0x6e,0x10,0x48,0xd6,0x4c,0xa5,0xf9,0x55,0xf5,0x58,0xf6,0x3b,0x53,0x53,0xa1,0x57,0x6f,0xa1,0xac,0xae,0xf3,0x9b,0xcb,0xc9,0x02,0x17,0x56,0xdf,0x5d,0x1a,0xb3,0xbc,0x74,0x1a,0xcc,0xf9,0x05,0x9b,0x04,},\"\\xc1\\xc6\\x78\\x43\\xd6\\x9a\\x0e\\x62\\xe7\\xbf\\x71\\xf9\\x02\\x06\\xa3\\xd5\\x59\\x5c\\xa3\\xc4\\x82\\xaa\\xa7\\x67\\xe9\\x31\\xb0\\xd6\\xc2\\xf4\\x75\\x2a\\xb8\\x69\\x91\\xf0\\x35\\x83\\xbb\\x13\\x8e\\x9f\\x72\\xfa\\xb5\\x8f\\xd6\\x02\\xa4\\xb6\\xb2\\x96\\x02\\xcf\\x89\\x14\\x08\\xaf\\x5a\\x1b\\xfd\\x33\\x98\\xc0\\x17\\x8c\\x44\\x14\\x61\\xe3\\xf4\\x9b\\xc8\\x1d\\x64\\xc0\\xd9\\x7f\\x5d\\xed\\x69\\x2c\\x75\\xd4\\xd6\\x4d\\xac\\x5d\\x80\\xd6\\x3b\\xd4\\xdc\\x52\\x10\\xc1\\xd9\\x35\\x0b\\x14\\x2b\\xa6\\xe7\\x68\\xf1\\x50\\x80\\x7a\\xb8\\xa8\\x6c\\xac\\xdb\\x59\\xd8\\x4d\\xdf\\x66\\x0b\\xe5\\x62\\x03\\xc0\\x14\\xfb\\xa1\\xe0\\xdc\\x16\\xfa\\x6d\\x32\\x69\\x4e\\x14\\xb1\\x28\\xed\\xd1\\xf6\\xc6\\xab\\x44\\x5a\\x3a\\xd3\\x41\\x74\\xfa\\x9e\\x4b\\x01\\xf2\\x5b\\x1d\\x5e\\x6e\\xb7\\x69\\x83\\xb4\\x29\\x5c\\xe4\\x91\\x4d\\x3a\\xe4\\x8c\\x70\\x4a\\x30\\xe5\\x54\\xfc\\x1f\\x86\\x8b\\x62\\x72\\xef\\xf0\\x6d\\xa2\\x4b\\xfe\\x17\\xe4\\xe0\\xf0\\xfa\\x46\\xbb\\x08\\xff\\xb9\\x07\\xcb\\x61\\xbe\\xbe\\x52\\xdf\\x31\\x1a\\x64\\xcb\\x57\\x8b\\x30\\xfd\\x62\\x7d\\xf1\\x12\\x21\\xae\\x40\\x03\\xa0\\xb0\\xc6\\x8e\\x3c\\x6f\\x95\\xa2\\x1c\\x85\\x00\\xd4\\x1b\\x2c\\x58\\x9c\\xc4\\x6a\\x13\\x9c\\xac\\xff\\x57\\xdc\\xf0\\x07\\x59\\xf5\\x2e\\x9c\\xa3\\xda\\xbd\\xb1\\x78\\x8a\\xb6\\xb3\\x8a\\x50\\x48\\xf5\\x8e\\x08\\xe0\\x5c\\x39\\x4f\\x9d\\x3c\\x72\\x11\\x3d\\x45\\x2b\\x70\\x84\\xc5\\x19\\xf8\\x6c\\x16\\x89\\xff\\xdb\\xae\\x50\\x6e\\xd8\\x45\\x05\\x22\\xcb\\xe4\\x3d\\xe2\\x7a\\xa3\\xbf\\xdd\\x92\\xa9\\x1b\\x71\\xe5\\x2a\\x3c\\xbf\\x77\\xc1\\xbd\\x28\\x93\\xea\\xbd\\x40\\x7a\\x57\\xfe\\x5e\\x14\\x68\\x73\\xbf\\xb2\\x04\\x3f\\x4a\\x61\\x47\\xdf\\x08\\x3e\\x54\\xa2\\x20\\x8d\\x19\\x25\\x81\\x3f\\xa4\\x04\\xe4\\xc4\\x74\\x06\\xe7\\x72\\x86\\x43\\xeb\\xfb\\x0b\\x10\\x14\\x2f\\x90\\x9e\\xf8\\x56\\xfd\\x3a\\x91\\x6b\\xc0\\x85\\x15\\x43\\xb8\\x2a\\x55\\xf8\\xcd\\x52\\x9b\\xd2\\x1d\\x9e\\x29\\x09\\xd6\\xd7\\xe7\\x7b\\xdc\\xea\\x46\\x73\\xe5\\x45\\xff\\x4a\\x67\\xfa\\x37\\xd6\\x5f\\x1f\\x63\\xf1\\x1d\\x5d\\x0d\\x55\\x97\\x4a\\x30\\xab\\xe1\\x88\\x33\\x5d\\xb5\\xdc\\xbd\\x35\\x66\\x58\\xf9\\xb7\\x76\\x82\\xd9\\x6d\\xab\\xb2\\x58\\xea\\x95\\x95\\x1a\\x05\\x59\\xae\\xa4\\x06\\x4d\\x5e\\xa1\\x68\\x05\\x01\\xdc\\xb4\\x22\\x8f\\x2c\\x95\\x6f\\x81\\xd2\\x10\\x11\\x44\\xaf\\x74\\xc7\\x16\\xbc\\x8b\\xf4\\x29\\x6d\\xc3\\xb8\\x31\\x72\\x5c\\xc1\\x7d\\x3b\\xfd\\x90\\x66\\xa2\\x99\\x53\\xb2\\xec\\xd7\\x50\\x59\\x43\\x5b\\x49\\xa2\\x5a\\xc5\\x25\\xb4\\xfb\\xab\\x17\\x79\\x02\\x2d\\xfb\\x6d\\xe5\\x25\\x14\\x9d\\xcd\\x90\\x2a\\xc8\\xa7\\xe2\\x1f\\x34\\x4f\\x5f\\x01\\x01\\x48\\x06\\x92\\xd6\\x16\\x08\\x95\\x2c\\x71\\x41\\x3e\\x30\\x03\\x79\\x45\\xe2\\x06\\xc5\\xee\\xad\\xfc\\x3e\\xdc\\x4b\\xae\\x0d\\x79\\x6c\\xa0\\xc5\\xf5\\x6d\\x6f\\xfb\\x3f\\x09\\x69\\xdf\\x9d\\xf8\\xa7\\x94\\xf5\\xdc\\x83\\xa3\\xb2\\xf5\\xc3\\xab\\x36\\xbb\\x90\\x1b\\xcc\\x31\\x55\\x1c\\x55\\x0c\\x63\\xfa\\x41\\xd6\\xa8\\xd5\\x7b\\xdb\\x9b\\x5c\\x65\\xbc\\x61\\x0c\\x3a\\x98\\x97\\x52\\xab\\x28\\xa0\\x15\\xe7\\xc2\\xf6\\xb2\\xfb\\xf1\\x99\\xa7\\x6b\\x97\\x50\\xc0\\xd3\\xd5\\x92\\x11\\x9c\\x8b\\x40\\x22\\xfa\\x45\\xba\\xde\\x2f\\xbb\\x41\\x43\\x26\\x79\\xb5\\x2a\\xcb\\x46\\x08\\xa9\\x5c\\x34\\xaa\\x40\\xbf\\xfe\\xc1\\x0b\\xc9\\x8f\\x47\\x29\\xdf\\xcc\\xb6\\x50\\xb2\\xa0\\x52\\xdf\\xb0\\x68\\x95\\x9e\\x64\\x8a\\x92\\xd5\\xaa\\x4d\\xd2\\xd1\\x7d\\xde\\x67\\xcd\\xf2\\xe6\\x37\\x7a\\xf0\\xd4\\xae\\x37\\x96\\x07\\x38\\x9d\\x7e\\x35\\x96\\x44\\x1b\\x9f\\x42\\x22\\xcf\\xf6\\xaf\\x73\\xb3\\x30\\x02\\x70\\xce\\x54\\x80\\x0b\\xd9\\x34\\xa9\\x10\\x9a\\x02\\x56\\x3a\\xdc\\x56\\xae\\x46\\x58\\x44\\x51\\xcd\\xaf\\x4a\\x77\\x53\\x81\\x57\\xe5\\x87\\x0f\\x4a\\xe1\\x2d\\xbc\\x81\\x87\\x0f\\x5d\\xb4\\x1a\\x2c\\xb5\\x5e\\x00\\xdb\\x3d\\x22\\x31\\x62\\x8f\\x17\\x27\\xc3\\xac\\xb9\\x9e\\xd3\\xac\\xd8\\xb6\\x71\\x56\\xa8\\x00\\x5a\\x4c\\xc8\\xf3\\xd3\\x55\\x5b\\x79\\xa0\\x37\\x73\\xa9\\x31\\xf1\\x4e\\xeb\\xce\\x40\\xb9\\xfe\\x46\\xed\\xe5\\xda\\x08\\x81\\xfb\\x22\\x07\\x17\\xe4\\x18\\xe8\\xb5\\xa0\\xfe\\x5e\\x47\\x7e\\x72\\x85\\xc5\\x54\\xe8\\x59\\xe1\\x64\\x41\\x67\\x2b\\x48\\x99\\x34\\xa3\\xa9\\xee\\xb8\\x8d\\x78\\xfc\\xc5\\xc1\\xdb\\x2d\\x1f\\xbd\\xde\\x39\\x27\\x73\\xf6\\xc9\\x39\\x97\\x2e\\xe8\\xfa\\x31\\x89\\xf4\\xe9\\x87\\x2b\\x4a\\xbd\\xc8\\x3b\\x37\\x9c\\x0c\\x10\\xe8\\x18\\xdc\\xff\\x75\\xc8\\x3d\\x68\\x70\\x72\\x92\\x84\\xce\\xd4\\x1f\\x2f\\xf5\\x5a\\x87\\xc9\\x60\\xe6\\x3d\\x12\\x11\\xf0\\x80\\x71\\x29\\x3f\\x6a\\xc6\\x3f\\x9b\\xde\\xf3\\x8f\\xd5\\x91\\x9c\\xa9\\x0b\\x3f\\x5e\\x25\\xa6\\xc0\\xc6\\x64\\xc4\\xec\\xf8\\x31\\xc6\\x4e\\x2d\\x4c\\x6e\\x79\\x8a\\x98\\xa3\\xa0\\xf7\\xbe\\x7a\\x24\\x63\\xea\\xda\\xa6\\xa2\\xa3\\x48\\xf9\\xa4\\x94\\x71\\x71\\x23\\xcc\\x0a\\x28\\xc0\\xa5\\xea\\xe3\\xf5\\xb5\\x85\\xf2\\xcb\\x8c\\xb2\\x60\\xc2\\xc5\\x03\\xe4\\x15\\x78\\x57\\x3c\\xd9\\xb7\\xcb\\xa1\\x40\\x8d\\xca\\x9d\\x86\\x0a\\xe4\\xf8\\xc3\\xd3\\xf3\\x22\\xa4\\x5b\\x58\\xa2\\xc4\"},\n{{0x50,0x86,0x4a,0x75,0xaa,0x0c,0x69,0xb5,0x93,0x50,0x07,0x7c,0x20,0x4b,0x20,0x75,0x7f,0x2b,0x8b,0x68,0x55,0xc3,0x7e,0xd7,0x21,0xb4,0x9f,0x2a,0xc9,0x17,0xd6,0xb2,},{0xcf,0xf3,0xeb,0xd5,0xea,0x0c,0x8b,0x55,0x31,0xd9,0x21,0x1e,0x22,0x19,0xe4,0xcf,0xe5,0xde,0xd9,0x91,0xd8,0xec,0x42,0x4d,0xf5,0x4c,0xf5,0x3c,0x83,0x76,0xf9,0xbd,},{0x17,0x74,0x55,0xa7,0x16,0x94,0xf1,0x2b,0x76,0x2f,0xd1,0x7e,0x08,0xbd,0xf0,0x10,0xa7,0xfc,0x91,0xd1,0x91,0x41,0xd7,0xae,0x23,0x99,0xbd,0x24,0x1a,0x99,0x8a,0x6a,0x50,0xa9,0x72,0x2a,0xc1,0x23,0x2c,0x59,0xe4,0xe2,0xaa,0xa8,0x28,0x07,0x8b,0x2b,0x92,0xf4,0xa5,0x4c,0xdf,0x0e,0xfe,0xbb,0xa2,0xc1,0x6d,0xbe,0xaf,0x07,0x22,0x03,},\"\\xb3\\x65\\xf4\\x76\\xac\\x92\\xe7\\x60\\x12\\xa7\\xff\\xd8\\x78\\x2a\\xf1\\x5a\\x3f\\x5e\\xe1\\x47\\xf6\\x03\\xa3\\x67\\xad\\xf2\\xf9\\x72\\x46\\x13\\xe8\\x76\\x5b\\x03\\x7a\\xc0\\xeb\\x1f\\x67\\x37\\x36\\xe1\\x13\\x63\\xe3\\x52\\xed\\x5a\\xe9\\xeb\\x5a\\x67\\x12\\x5e\\xd8\\x18\\x90\\x03\\x42\\xae\\x93\\x37\\x1c\\x43\\x3b\\x91\\xf6\\x02\\x1d\\x4b\\xe2\\xa0\\x52\\xb0\\xda\\x43\\xb3\\x68\\x2e\\x7f\\x74\\x0a\\xe8\\x01\\xd0\\x54\\x10\\x57\\x85\\x8e\\xb0\\xc9\\xc2\\x8d\\x98\\xf0\\x3b\\x45\\xe1\\x28\\xaa\\xa3\\x42\\xc6\\xb6\\x02\\x77\\x67\\x92\\xaa\\x81\\x24\\x1c\\xad\\x06\\xf1\\x33\\x8f\\xa0\\xc7\\x17\\x57\\x18\\x0f\\x58\\x8c\\x83\\x01\\xd9\\x1c\\x27\\x67\\x9b\\x50\\x21\\xcd\\x75\\xd7\\xf6\\x17\\x1e\\xe9\\xf8\\xd5\\x6e\\x43\\x77\\x67\\x98\\x12\\xf6\\xec\\x5e\\xd4\\x65\\x38\\xca\\xed\\x50\\x0c\\x1d\\x15\\xf5\\xfc\\x86\\xea\\xf9\\xed\\x9c\\xf9\\xa0\\x60\\x6b\\x22\\x61\\x4f\\xaf\\x67\\x64\\x62\\x13\\x4e\\x3d\\xb3\\x58\\x23\\x32\\xb4\\x83\\xdf\\xa5\\x4c\\xa2\\x9a\\x5e\\xb0\\xd6\\xba\\xe3\\x38\\x0e\\x19\\xd0\\x60\\x11\\x34\\x53\\xf3\\x2b\\xba\\xb7\\xe1\\x18\\x62\\x7b\\x40\\xbc\\xab\\xf1\\x71\\x1b\\xcf\\xea\\xb8\\x95\\x7d\\xe3\\x39\\x43\\x6c\\x70\\x88\\xbb\\x88\\x31\\x01\\x53\\x9a\\x09\\xd3\\xbe\\xf0\\x88\\xfc\\x1f\\x84\\x07\\x64\\x03\\x6f\\xfb\\xb3\\x3d\\xec\\xd1\\x2a\\xac\\x57\\xfd\\x26\\xf8\\x48\\x23\\xe1\\x95\\x53\\xd4\\xd6\\x7e\\x00\\x0e\\x94\\x36\\xca\\x32\\x3d\\xe0\\x99\\xbc\\x1c\\xe7\\x5e\\xbf\\x5d\\xdc\\xcb\\x44\\x8c\\xd7\\xa2\\xe4\\xbb\\xd6\\xb3\\x2e\\x3f\\x20\\x24\\xf9\\x6c\\xc5\\xc7\\x15\\x2b\\x8b\\xe8\\xed\\x0b\\xd8\\xe4\\x36\\xd3\\x24\\xd1\\xce\\x1d\\xd3\\xcf\\xcc\\x45\\x2a\\x28\\xc7\\x3a\\x95\\xaf\\x84\\x82\\xaa\\x77\\x2a\\xe5\\x3d\\x5b\\xe1\\x29\\x2e\\x39\\xd1\\x71\\x6b\\x43\\x75\\x8f\\xe5\\x63\\xc8\\xaa\\x3b\\x74\\xbb\\xa5\\xc0\\x2d\\x04\\x77\\x8d\\x91\\xe3\\xd4\\x3d\\xcc\\x72\\xbb\\x7c\\x7b\\x04\\x3c\\x05\\xc8\\x74\\x5b\\x70\\x5e\\xe7\\x5b\\x5a\\x4e\\xc7\\xb9\\x5b\\x65\\x43\\x59\\xfb\\x5e\\x85\\x33\\x38\\x21\\x98\\x51\\xd4\\x0a\\x8a\\xfb\\xb4\\xf9\\x1e\\xcb\\xb4\\x1e\\xb8\\x15\\x34\\x19\\x6c\\xc0\\xcc\\x9d\\x3e\\xb7\\x14\\x39\\x6c\\xaf\\x04\\x5b\\x23\\x17\\x22\\xd4\\x48\\x65\\x03\\x64\\x04\\x19\\x98\\x84\\x80\\xa7\\x81\\x58\\x08\\xbe\\x97\\x42\\x87\\x37\\x2c\\xfc\\x48\\x99\\x65\\xaa\\xc5\\xb8\\x09\\x5c\\x63\\x75\\x81\\xeb\\x91\\x0f\\x90\\x55\\xcd\\x1c\\x0a\\x0a\\x3b\\x0b\\x33\\xac\\xa9\\x0f\\x7c\\x5b\\x8e\\x6e\\xf6\\x83\\xab\\xf0\\xce\\x53\\xae\\xba\\x51\\xbe\\xc4\\xfc\\x7b\\x42\\x7a\\x23\\x47\\x36\\x0f\\xca\\x86\\x36\\xd3\\xf1\\x46\\x92\\x84\\xf2\\x69\\xa9\\xab\\xf0\\xcb\\x1a\\x24\\x4a\\x15\\xd6\\xb4\\x04\\x65\\xe7\\x5c\\xf8\\x90\\x92\\x47\\x4a\\x8b\\xed\\xa0\\x33\\x39\\x1d\\xd3\\x11\\xc4\\x99\\x51\\x9a\\x08\\xc4\\xf0\\x34\\xe7\\x19\\x18\\xd7\\xca\\xd4\\x18\\x45\\x32\\x7c\\x89\\xe7\\xb1\\xe9\\x4a\\xfb\\x07\\x23\\x78\\x2c\\xe5\\xc5\\x53\\xef\\x36\\x79\\x1b\\xba\\x63\\xde\\x17\\xd7\\x46\\x49\\x18\\x94\\x01\\x2c\\xeb\\xd8\\x7b\\x18\\x37\\xa8\\x21\\xef\\x5c\\x62\\x4b\\xbc\\x84\\xcc\\x50\\x35\\xf5\\xe7\\x0c\\xd9\\xf2\\x1b\\x42\\x21\\x9a\\x2d\\xce\\x30\\xe0\\xe6\\x5c\\x25\\x0d\\x0d\\x19\\x4d\\x2b\\x52\\x48\\x6b\\x03\\xee\\x66\\x33\\x29\\x81\\xa5\\x22\\x51\\x74\\xdb\\x17\\xe5\\xa8\\xbb\\x4a\\x10\\xed\\x9c\\x8a\\x44\\x5c\\x41\\x44\\x2f\\x3b\\xcd\\xb6\\xb4\\xf4\\x9e\\x4e\\x1d\\xc8\\x76\\x61\\xa7\\xb6\\xe4\\x1f\\x35\\xf5\\x5d\\xd6\\x7b\\xd4\\xcb\\xc6\\xff\\x58\\xbf\\xbf\\xfa\\xff\\xd2\\xc3\\x82\\xfc\\xad\\x0c\\xae\\x8f\\x0d\\xf9\\xaf\\x6a\\xcf\\x09\\x40\\x00\\x76\\x18\\xa5\\x4a\\xee\\x31\\xd9\\x32\\xcb\\xd8\\xe8\\xb4\\x1c\\xa0\\x38\\x21\\xc4\\x28\\xa0\\xef\\x8e\\x58\\xd2\\x43\\x5e\\xec\\xd5\\x03\\xc5\\x4d\\xa9\\xc1\\x62\\x8f\\x3c\\x74\\x9b\\x77\\x05\\x19\\xf5\\x3b\\xf2\\xd5\\x7e\\xd7\\x12\\xd0\\x75\\xd3\\x73\\x37\\xb7\\x7a\\x2b\\x10\\xa7\\x2d\\x2d\\x59\\x0c\\x20\\xd5\\xce\\xc2\\xca\\xcc\\x6c\\x3a\\x8d\\xc1\\x13\\xe2\\xd1\\x6e\\xf2\\xd1\\xb3\\x90\\xed\\x96\\xe4\\x03\\x6a\\xcd\\x30\\x4e\\x0c\\x7c\\xef\\x9d\\x43\\x1f\\x88\\x21\\x8a\\xa1\\xf8\\x38\\x28\\xdd\\xa6\\x36\\xb9\\x4a\\xa7\\x61\\xc7\\x31\\x7e\\xcf\\x11\\x6c\\xbf\\xc6\\x11\\xe5\\xba\\x6d\\x94\\xc5\\x0e\\x99\\x46\\x93\\x02\\x3b\\xdf\\x2d\\x24\\x8e\\xd6\\x03\\xf8\\x5b\\xe7\\x3a\\x00\\x08\\xb7\\x5a\\xde\\xf9\\x51\\xdc\\xcf\\xa3\\x0e\\x42\\xe9\\xf5\\xbb\\x05\\x02\\x3a\\xde\\x79\\x75\\x06\\xcb\\xf9\\x0b\\xb6\\xdc\\xe4\\x3c\\xf3\\xa1\\xc3\\x14\\x1a\\x5c\\xc5\\xfd\\x9a\\x4f\\x3c\\xc5\\x57\\xb9\\x0e\\x18\\x04\\x9b\\x3c\\x13\\x0f\\x46\\x1e\\x4f\\x32\\x29\\x9f\\xa1\\xd1\\xcf\\x9c\\x7f\\x2e\\xa2\\x05\\x35\\x65\\xe8\\x16\\x0a\\x34\\x1c\\xdd\\xf9\\x9a\\xcd\\xdd\\x49\\x16\\x97\\xfa\\x70\\x51\\x24\\xab\\xda\\xb4\\x2a\\x5e\\x8f\\xcf\\x04\\x8d\\xd9\\xf1\\x79\\x38\\x4e\\xc9\\x2a\\x46\\x9a\\xeb\\x11\\xe8\\xbc\\x62\\xb6\\x9d\\xbc\\xfc\\xec\\x66\\x81\\x75\\x47\\x57\\xe4\\xc5\\xd0\\xfd\\xd9\\xb9\\xcf\\xda\\x49\\xaf\\x09\\xb8\\x3a\\x5a\\x4a\\x10\\xae\\xd9\\xa4\\xcf\\x7d\\xdf\\xa2\\x89\\x20\\x9d\\x47\\x5a\\xb3\\x31\\x8c\\xd4\\xb9\\x65\\xe0\\x07\\xdc\\xe1\"},\n{{0xe5,0x5f,0x22,0x0f,0xff,0x80,0x79,0x14,0x8b,0x25,0x41,0x89,0xbb,0x29,0x41,0x74,0xf8,0xe2,0xc5,0x75,0xe5,0x7f,0x39,0xd4,0xba,0xc8,0x16,0x5c,0x5e,0x56,0xe7,0x69,},{0x7f,0xd5,0x07,0xd0,0x3f,0xe1,0xd6,0xe3,0xf9,0x11,0xf0,0x59,0x59,0x7b,0x0e,0x29,0x2e,0xa0,0x96,0xf5,0xbc,0x85,0x18,0x52,0x91,0x6b,0xf1,0x21,0x7c,0xaf,0xdc,0x6c,},{0xc1,0x02,0x3a,0x70,0x68,0x74,0x3e,0xc4,0x66,0x8f,0x49,0x5e,0xb7,0xbd,0x4d,0xb5,0x81,0x29,0xc1,0x1e,0x58,0x29,0x9e,0xa8,0x7d,0x6f,0xac,0xd3,0x02,0xbf,0x29,0x6a,0x98,0xe2,0x98,0xfd,0xb4,0x8e,0xdd,0xf9,0xc4,0x4e,0x79,0xae,0x86,0x41,0xf7,0x34,0x50,0x3b,0xb8,0x3d,0xc0,0xb3,0x1f,0x61,0x0d,0xf1,0xd1,0xe9,0xd6,0x19,0xa7,0x05,},\"\\x1e\\x2c\\xe8\\xbf\\x0e\\xa7\\x87\\x5d\\xf2\\x85\\xb1\\xdb\\xd3\\x4b\\xbe\\x67\\x30\\x7f\\x2e\\x8a\\xc8\\xbc\\x14\\x2c\\x3b\\xa3\\x14\\xc1\\x64\\x2c\\x65\\xa2\\xd6\\x2e\\xb2\\xc7\\x83\\xf9\\x16\\x28\\x3c\\xa4\\xec\\x3e\\x53\\x6d\\x3e\\xeb\\x65\\xcf\\xdc\\xc0\\x54\\x9a\\xc4\\xf6\\xa4\\x5f\\x53\\x9a\\xc5\\xdf\\x79\\xa6\\xd5\\x76\\x82\\x19\\x73\\x9d\\x0c\\x9a\\x0c\\xdb\\xb3\\x12\\x42\\x29\\x6c\\x33\\x12\\xb7\\xed\\x56\\x00\\x43\\xf5\\x36\\xcd\\x1d\\xe9\\xa9\\xc2\\xb2\\x89\\x64\\x1a\\x1c\\x2d\\x84\\xf9\\xa6\\x8b\\x7c\\x03\\xb8\\xb8\\x56\\x7e\\x5d\\xc7\\x13\\x8c\\x2c\\xb9\\x67\\xc6\\x28\\xaa\\x25\\xb2\\xea\\xb4\\x34\\xd4\\x49\\x0b\\x23\\x50\\x74\\x09\\x71\\x7c\\xde\\x94\\xda\\x59\\xdc\\x1d\\xc2\\x5c\\x7b\\xe4\\x2a\\x8a\\xa0\\x2e\\xdc\\xf4\\xd9\\x95\\x36\\x8e\\x6b\\xa0\\xee\\x1f\\x95\\x36\\x00\\xdb\\x98\\xd2\\x2d\\xe0\\xf8\\xd2\\x57\\x02\\x0e\\x0a\\x40\\x6e\\xe1\\x66\\x9b\\xd5\\x27\\xb9\\xfe\\x1c\\x61\\x1f\\x9b\\xe5\\xa3\\xd7\\x52\\x8e\\x8b\\x61\\x51\\x67\\x0a\\x86\\x63\\xd2\\xed\\x1a\\x58\\xd3\\xe3\\x69\\xbb\\x72\\x2a\\x63\\x02\\xd7\\xc1\\x72\\xa1\\x9b\\xda\\xf3\\x57\\xee\\xdb\\x02\\x27\\x91\\x56\\xe3\\xb9\\x03\\x44\\x31\\xa7\\xd6\\x8a\\x39\\x52\\x8e\\xb4\\x02\\x35\\x87\\x57\\x3e\\xb8\\x8f\\x30\\xf9\\x4e\\x83\\x3e\\x8a\\x23\\xb9\\xd0\\xac\\x7b\\x5c\\xa8\\x78\\x24\\x59\\x6b\\xbb\\x0a\\x3d\\x0c\\xa1\\xb1\\x6a\\x68\\x78\\xfd\\xf7\\xe2\\xce\\xa3\\x4a\\x6f\\xfb\\x95\\xa9\\xff\\x4e\\x88\\x8a\\x97\\x59\\x37\\x35\\xb8\\x68\\xda\\x75\\xd8\\x70\\x7b\\xbf\\xdb\\x1d\\x93\\xeb\\x86\\xa5\\x1e\\x2d\\x21\\x5f\\x1d\\xd9\\xdc\\xf7\\x83\\x88\\x72\\x9a\\x3e\\xb0\\xf0\\x66\\xdd\\xc9\\x41\\xe9\\x50\\xc9\\x21\\x27\\x19\\x8b\\xce\\x63\\xa5\\x48\\x68\\xd9\\x97\\x02\\x95\\x72\\xff\\xa6\\xf6\\xfe\\xa1\\xd3\\xa6\\x91\\x64\\xc9\\x99\\x69\\x53\\xdc\\x8b\\x6f\\x9d\\xad\\x06\\x35\\xc9\\xb0\\x81\\xf5\\x5f\\x98\\x33\\x40\\xf0\\x81\\x4b\\xf5\\x47\\x08\\x03\\x09\\x0e\\x79\\x97\\xf7\\xab\\x79\\x6c\\x2b\\x15\\xad\\xaf\\x40\\x21\\xd6\\x7c\\xff\\xaf\\x6e\\x1e\\xf6\\x28\\x67\\x50\\x39\\x45\\xc2\\x1a\\x32\\x96\\x64\\xe0\\x8a\\x95\\xa4\\x15\\x82\\x30\\x0d\\xa9\\xbe\\xd2\\x08\\x44\\x4c\\xe6\\xaa\\x12\\xb3\\xf8\\x67\\x79\\x5c\\x6e\\xe4\\xc4\\xc9\\x25\\x70\\x18\\x62\\x73\\x61\\x29\\x3b\\xd5\\x27\\x82\\x1a\\x29\\xa3\\x39\\xb4\\x04\\xa2\\xda\\x4b\\xd9\\x94\\x4f\\x87\\x70\\x40\\x79\\x8b\\xb5\\x4a\\xbd\\x2d\\x76\\xcb\\xb1\\x8d\\xf4\\x29\\x7f\\x4c\\xe3\\x33\\x7f\\x64\\xd2\\x05\\x80\\xaa\\x64\\xbd\\xec\\xac\\x37\\x6a\\x6a\\x4f\\xf7\\x4d\\x01\\x44\\xb2\\xfe\\x74\\xce\\xf8\\x2d\\x50\\xa5\\xe6\\xbd\\xd7\\x99\\xe5\\x5f\\xf6\\x96\\x62\\xba\\xc5\\x37\\xad\\xcb\\x68\\x81\\x22\\x8c\\xb6\\x37\\x04\\x50\\x0c\\x14\\x3a\\x4f\\x4d\\x1d\\xb2\\x8d\\x45\\x56\\xbe\\xe6\\x04\\xa3\\x99\\xff\\xd2\\x06\\x54\\x65\\x97\\xde\\xe9\\x22\\x52\\x54\\x7f\\x6c\\x65\\x7f\\x36\\x84\\x1a\\x87\\xd5\\x65\\xf6\\x55\\x27\\x16\\xc2\\x5a\\x21\\x15\\x14\\x77\\xbe\\xe9\\xef\\x96\\x18\\x55\\xfb\\x1a\\xf2\\xda\\x80\\x68\\xf2\\x8c\\xe9\\xff\\x70\\xd5\\x25\\x2c\\x7a\\x63\\xa2\\xe1\\x4d\\xed\\x6b\\x89\\x77\\xb1\\xd7\\x69\\x1a\\x77\\xed\\x2e\\x57\\xd2\\x2f\\xf2\\xe1\\xfc\\x4c\\xdb\\xce\\xb5\\xe8\\x05\\x85\\x8d\\x90\\x38\\x96\\xea\\x67\\x07\\xe4\\x8b\\x34\\x5f\\x60\\xe2\\x81\\x8b\\x2f\\xce\\xc4\\xdb\\xa4\\x8c\\xae\\xa9\\xef\\xa3\\x82\\x79\\xfb\\x83\\xd5\\xb0\\xf4\\x6a\\x45\\xe4\\x2c\\x41\\x76\\x5d\\x01\\x71\\xba\\xac\\xd8\\xd6\\xdd\\xa7\\x99\\x13\\x14\\xb3\\x4e\\x15\\xfd\\x36\\x12\\x7c\\x46\\x7d\\x1d\\xe0\\x1c\\x01\\xa3\\xa7\\x8a\\x8c\\x1b\\x10\\x3b\\xee\\x17\\xa7\\xa0\\xb7\\xac\\x55\\x76\\xfd\\xc2\\x26\\xdd\\x24\\x59\\x77\\x31\\x46\\xcf\\x38\\x26\\x14\\x17\\xca\\x19\\x13\\x5d\\xbd\\xa9\\xbd\\xbe\\x54\\xcd\\x17\\xaa\\x7d\\xdd\\x38\\xfd\\xca\\xc2\\xab\\xa3\\x96\\xb3\\x65\\xce\\xae\\x98\\x91\\x9f\\x6c\\x51\\x77\\xfc\\x58\\x3f\\x5b\\xee\\x3f\\x48\\x70\\x49\\x14\\x30\\x6a\\xa1\\x9e\\xe9\\x0e\\x3f\\xd0\\xde\\x55\\x91\\xc6\\x69\\xff\\x35\\xab\\x16\\xfe\\xf3\\x8d\\xee\\x18\\x7b\\xae\\x1e\\x5a\\xaa\\x56\\x6d\\xf1\\x05\\x44\\xb7\\xd6\\xd4\\xeb\\x00\\xda\\x7e\\xbe\\xb4\\xec\\xdc\\xc4\\xd8\\xe3\\x2b\\x49\\xcb\\xbd\\xc6\\xe6\\x66\\x40\\xbd\\xb0\\xf7\\x2e\\x05\\x91\\x8a\\x05\\xc3\\x5d\\x9b\\xff\\x7e\\x0e\\x88\\xf2\\x41\\xd7\\xc6\\xc8\\xcb\\x2f\\xed\\xcc\\xdf\\x65\\x56\\x0a\\xf0\\xe7\\x83\\x3e\\xfe\\x34\\xaf\\x79\\x0d\\xb6\\x31\\x89\\x02\\x2c\\xfd\\x71\\xfc\\x8a\\xcf\\x88\\x86\\x01\\x27\\xbd\\x4f\\xbf\\x02\\x6b\\xcb\\xe3\\x60\\xe3\\x3a\\x89\\x95\\xe6\\x36\\xd0\\x3b\\xb8\\x6d\\xfd\\x01\\x98\\xad\\xa9\\x59\\x34\\x2d\\x8e\\x9c\\x9e\\xd9\\x3e\\x23\\x29\\x7d\\xa9\\x8d\\x66\\xa0\\xd4\\xfc\\x96\\x51\\x62\\x73\\x3b\\xc8\\x65\\x41\\xb9\\x5a\\x6c\\x90\\x97\\xcb\\x55\\xa9\\x73\\xc6\\xfa\\xc1\\x94\\xe8\\xf8\\xa1\\x64\\x27\\x4c\\x47\\x9c\\x51\\x0e\\x62\\xd8\\xa0\\x35\\xeb\\x75\\x11\\x81\\xb5\\x02\\xaf\\xb6\\x14\\xd8\\xc4\\x46\\x7b\\x54\\x45\\xc2\\x68\\xdc\\x3d\\xd0\\xab\\xbd\\x57\\x70\\x04\\xc0\\xbc\\x47\\xb1\\x5f\\xcb\\x80\\x1b\\x79\\x35\\x97\\x57\\xb5\\xea\\x89\\xcf\\x8c\\xf7\\x7f\\xc6\\xd1\\x60\\xe6\\xcd\\x73\\xc4\"},\n{{0xd5,0xe3,0xa4,0x06,0x71,0xbd,0x45,0xf0,0x88,0x42,0xdd,0xc7,0x8a,0xbe,0x57,0xde,0x3b,0x9c,0xe5,0x64,0x6b,0x73,0x0d,0x2e,0x59,0xfe,0xcf,0x5a,0x7d,0xf8,0x0f,0x40,},{0x41,0x6c,0x37,0xae,0x1a,0xd1,0x5b,0x63,0x2b,0x0e,0xa4,0x39,0x32,0xc1,0x76,0x37,0x28,0x2c,0xd9,0x1d,0x59,0x79,0x55,0x2e,0x5e,0xeb,0xb9,0x9a,0x41,0x9d,0x5c,0x97,},{0x63,0xde,0x6a,0x98,0x11,0x42,0x36,0x5a,0x3e,0x59,0x26,0x31,0xc8,0x27,0x72,0x37,0x80,0x97,0x39,0xd1,0xc9,0x8f,0x5a,0x1c,0xb2,0xcc,0xcd,0x34,0x06,0x7d,0x1c,0xa5,0xdc,0x8f,0x2f,0xc6,0x3b,0x8a,0xe1,0xa6,0x89,0xdc,0xaa,0x29,0x1b,0xa6,0xb6,0x9b,0x1a,0x67,0x95,0xc5,0x79,0xa5,0xdb,0x6d,0xcc,0xee,0x73,0xf6,0xa4,0x20,0xac,0x0a,},\"\\x09\\xfe\\x6f\\xfa\\x8b\\xf0\\x94\\x2a\\x64\\x92\\x13\\x57\\x65\\x9d\\xbc\\x6e\\x4f\\x8b\\x63\\xca\\x3b\\x9e\\xa4\\x75\\xea\\x39\\xd7\\x92\\x52\\x90\\xa1\\x48\\xd8\\x7b\\xb1\\x55\\x74\\x1d\\xfa\\x28\\xae\\x1b\\xea\\xdc\\x1f\\x3e\\x1a\\xb7\\x67\\x37\\xeb\\x5d\\x5d\\xda\\xde\\xd0\\xbb\\x38\\x2d\\x7e\\x11\\xea\\x81\\xa5\\xe7\\x80\\x16\\x12\\x69\\x62\\x60\\xba\\x3b\\xd0\\x9c\\x80\\xb6\\x23\\xf6\\x36\\x38\\x0a\\xa0\\x20\\x8f\\xee\\x0a\\xff\\x70\\x81\\x2d\\x53\\x07\\xb2\\x71\\x83\\x83\\x23\\x43\\xde\\xba\\xa3\\x60\\x5d\\xda\\xd1\\x7d\\xdd\\x70\\xd6\\x11\\x40\\x0d\\xdd\\x10\\xd6\\x38\\xaa\\x3d\\x6c\\x68\\xa2\\x8c\\xf0\\xe9\\x7c\\x1d\\xed\\xf6\\xcc\\xd9\\xc7\\x31\\xa8\\x4f\\xf0\\x40\\x5a\\x3a\\x22\\xdc\\xba\\x00\\xab\\x44\\xd5\\xb2\\x18\\x44\\xf1\\x4d\\x13\\x74\\xac\\x0c\\xb1\\xe5\\x8d\\xf4\\xa9\\x0c\\x41\\x25\\x63\\xcf\\xe6\\x9d\\x88\\x2d\\x35\\x0f\\x6a\\xaf\\xbf\\xa6\\x4f\\xa2\\xf9\\xff\\x82\\x60\\x32\\x32\\x67\\x80\\xae\\xcf\\x93\\x05\\xd8\\x21\\x7c\\x17\\x9d\\xbb\\x63\\xc1\\x51\\x54\\x12\\x32\\xeb\\x65\\x97\\x92\\x65\\xd8\\x76\\xc4\\xbc\\x43\\x05\\xc0\\x2f\\x40\\xbc\\x1d\\x05\\xdb\\xaf\\x7d\\xcf\\x4f\\x7d\\xd9\\x23\\x2c\\x17\\xee\\x0f\\x7a\\x05\\x55\\xf5\\x04\\xba\\x37\\x74\\x54\\x84\\x88\\x93\\x3e\\x75\\x71\\xeb\\x3f\\x71\\xc4\\xcb\\xb2\\x0c\\xc4\\xe4\\xa7\\x32\\x2f\\x35\\xac\\x0e\\x79\\xa5\\x91\\x55\\x79\\x8d\\xd0\\xf5\\xb3\\xc1\\x13\\x19\\xb7\\xd8\\xf3\\xea\\x79\\xee\\x3a\\xcc\\x68\\xbd\\xb9\\xf3\\x7c\\x7d\\x4c\\x8f\\x9c\\xab\\xa1\\xeb\\xf8\\xeb\\x7f\\x43\\xb4\\x62\\xae\\xfd\\x38\\xe8\\xc0\\xd4\\xc6\\x39\\x79\\xcf\\x66\\x31\\xde\\xc3\\x1a\\xb5\\xce\\xd3\\x93\\x7e\\xf5\\xb2\\x36\\x2c\\xb0\\x9c\\x71\\xdd\\x09\\x66\\x57\\x70\\x0f\\xd9\\x6b\\xda\\x55\\x5e\\x22\\x71\\x2f\\x71\\xae\\xc1\\x1a\\xe5\\xe9\\x1b\\x24\\xbd\\x16\\x49\\x49\\x8b\\x8d\\x9f\\x86\\x7f\\xb6\\xc4\\x1e\\x07\\x60\\x80\\xf7\\x40\\xd0\\x74\\xc2\\xa2\\x55\\x72\\xd3\\x4e\\x66\\x6b\\x63\\x67\\xbf\\x7c\\xbb\\x3d\\xd4\\x2a\\x23\\x82\\xdc\\x19\\x73\\x96\\x12\\x68\\x60\\x53\\x96\\x81\\x0a\\x45\\x6a\\xc0\\x81\\xbb\\xfd\\x3a\\x54\\xb4\\x48\\x81\\xfc\\xfc\\x45\\xb4\\x24\\x5e\\xe7\\x24\\x65\\xb4\\x87\\xd0\\x7f\\x2e\\xf3\\xf7\\x4a\\xdd\\x71\\xcd\\xfd\\xd1\\x6e\\x92\\xfe\\x25\\x7d\\x33\\x46\\x45\\xb0\\xa9\\xbc\\x7d\\x07\\x26\\x13\\xfb\\x9c\\x0c\\xde\\xa9\\xdb\\x4c\\x72\\xbc\\x87\\x10\\x9e\\x10\\x2d\\x7c\\xba\\xf3\\x66\\xec\\xd6\\x7f\\xbe\\x3d\\xed\\x32\\x74\\x73\\x07\\xa7\\xae\\xef\\x61\\x73\\x5a\\xd3\\xaa\\x5c\\xe9\\x5d\\xee\\xcc\\x16\\xa1\\x6e\\xb2\\xa0\\xbc\\xc7\\xad\\xc0\\xa1\\x1d\\x88\\x80\\x32\\x26\\x0e\\x7c\\x7e\\xc9\\xe5\\x4f\\x5a\\x25\\x31\\x70\\x2a\\x7e\\x5d\\xfb\\x87\\xc3\\x6c\\xe3\\x13\\xa3\\x14\\x75\\x88\\xae\\xf9\\x62\\xc7\\x2f\\xa9\\x66\\xd2\\x41\\x63\\x7c\\x38\\x8b\\x83\\xdd\\xec\\x93\\x43\\xbb\\x86\\x34\\x3e\\x92\\x0b\\x12\\xce\\x1c\\xc9\\x15\\xc8\\x3b\\x31\\xe9\\x98\\x62\\x69\\x06\\x74\\xea\\x49\\x35\\xa4\\x88\\x09\\xd4\\xd2\\x79\\x05\\x41\\x37\\x54\\x63\\x92\\xad\\x9f\\x08\\xe7\\xb8\\xde\\x61\\xae\\x73\\xe8\\x1e\\x48\\x3d\\x3c\\x63\\xb5\\xae\\x73\\x4e\\x18\\xe7\\xa2\\x2f\\xee\\xd1\\x23\\x3d\\x0c\\xa6\\x33\\x55\\xf3\\xa4\\x8a\\x33\\x06\\x7e\\x1a\\x0e\\x19\\x71\\xf3\\x6a\\xa9\\x29\\xfe\\x06\\x13\\xc2\\x1c\\x4a\\xef\\xf9\\x41\\x84\\x29\\xc3\\xb0\\x72\\xa5\\x98\\x49\\x59\\x28\\x7a\\x5e\\x5c\\x40\\xbe\\x02\\xbd\\x22\\xb9\\xa7\\x9c\\x7f\\x3f\\x53\\x59\\xd2\\xbb\\xe4\\x93\\xf5\\x56\\xda\\xcb\\xb0\\xcb\\x4c\\x29\\x3c\\x7d\\x94\\x12\\x65\\xe7\\x77\\x39\\x2d\\x14\\x8d\\x68\\xc0\\x7a\\x13\\xc8\\xde\\xc8\\xe5\\xd1\\xe1\\xc7\\xf0\\x41\\xe8\\x98\\x3e\\xdd\\xda\\xa4\\x64\\x9d\\xac\\x15\\x72\\xa3\\x9a\\xe4\\xc6\\x48\\x0c\\xa5\\x50\\xe2\\xe4\\x46\\x2d\\xcc\\x84\\x9c\\x1b\\xab\\x78\\x1d\\x28\\xa3\\x55\\x2b\\x2d\\x98\\xe0\\x2e\\x15\\x18\\xe6\\x55\\x53\\x40\\xfb\\x76\\xd6\\x8d\\xb5\\x89\\x16\\xd5\\x56\\xa7\\xb8\\x15\\x63\\xab\\xa8\\x1d\\x9a\\x57\\xae\\x50\\xf0\\x4c\\xf5\\x68\\x60\\x21\\x84\\x7d\\x79\\xb6\\xbb\\x3d\\xa8\\x01\\x7a\\x60\\xb1\\xc3\\xbe\\xef\\xd4\\x8d\\x2b\\x3c\\xd3\\x9c\\x6f\\x53\\xc0\\x8b\\xcc\\x96\\x7d\\x93\\x06\\x9f\\x56\\x2b\\xb3\\x6e\\x0c\\x4f\\x4c\\xa6\\xbc\\xcc\\x5e\\x57\\xd3\\x59\\x03\\xcd\\x80\\x0a\\x61\\x78\\x5a\\x93\\x77\\x0e\\x37\\x7f\\x4f\\xe8\\xe9\\xf4\\xb6\\x66\\x80\\x98\\x49\\x68\\xf9\\x64\\x9e\\x10\\x5e\\x7a\\x11\\x9d\\x97\\x63\\x6f\\x3a\\x05\\xca\\xea\\xb1\\xd7\\xea\\x0b\\xc8\\x13\\x34\\xb4\\x2d\\x5c\\xc0\\x80\\x83\\x0e\\xc2\\x4d\\x36\\x9c\\xf8\\x67\\x3a\\x49\\x0d\\x59\\xeb\\x4c\\xb0\\x81\\x81\\xda\\x39\\xa4\\x6d\\x96\\x6e\\x23\\xfe\\xd8\\xd3\\x8a\\x5f\\xab\\xc7\\xe8\\x43\\xbc\\xfb\\x01\\x5a\\x44\\x74\\xbf\\xd4\\x6d\\x4a\\x43\\xff\\x4a\\x51\\xa9\\x56\\x76\\x61\\xe2\\x69\\x6d\\xb8\\x7c\\x37\\x58\\xd3\\xb5\\x4c\\xe7\\x84\\x6d\\x13\\x91\\xd7\\xf4\\x65\\x26\\xef\\x30\\x84\\x4d\\x49\\x32\\x00\\x18\\xd7\\x49\\xb5\\xd4\\xdf\\xd3\\x0d\\x38\\x0c\\x6e\\x57\\x3f\\xc4\\x14\\xd8\\xfe\\xfc\\x5d\\x71\\x04\\x70\\x75\\x6b\\xec\\x00\\xd8\\x8a\\xc4\\xaf\\xc9\\x25\\xd1\\xed\\xe3\\x7e\\xae\\xe6\\x00\\x4a\\x23\\xea\\x0e\\xf8\\xb6\\x0e\\x48\"},\n{{0x4e,0xd7,0x04,0x8a,0xa1,0x28,0x4d,0xbb,0xcc,0x24,0x89,0x38,0xb4,0x0c,0x35,0x74,0x21,0x93,0x59,0x7a,0xdd,0xaf,0xdd,0xe0,0x64,0x13,0xb8,0xd4,0xcc,0xfb,0xe1,0x37,},{0xbf,0x84,0x1f,0xe4,0x44,0xad,0xd1,0xf7,0xc3,0xea,0xcd,0xfd,0x07,0x84,0xb4,0xe8,0x55,0xd2,0x40,0x5f,0x40,0x21,0xcd,0x9d,0x82,0x66,0x07,0x1c,0x32,0xc8,0xa2,0x73,},{0x10,0x6a,0x9d,0xeb,0x23,0x27,0xf3,0x38,0xcc,0xb7,0x1b,0xcc,0x94,0xe2,0xfe,0x3d,0x2e,0x97,0x3c,0xe6,0xdd,0x8f,0xa7,0xba,0xca,0x80,0x8b,0x41,0x11,0x81,0x3e,0x3b,0xc3,0xb4,0xd8,0x8e,0xfa,0x6a,0x00,0xc4,0x71,0x0b,0xbf,0xe5,0x31,0x96,0xf9,0xab,0x3a,0x15,0x0b,0x16,0x54,0xb9,0x08,0xfe,0xac,0xf9,0xc1,0x3d,0xf2,0xd6,0x38,0x02,},\"\\xdc\\xff\\x95\\x87\\xd6\\x04\\x6c\\x11\\x32\\xbe\\x07\\xdf\\x26\\xdf\\x63\\x82\\xff\\x92\\xcf\\xc8\\xeb\\x53\\x45\\xc5\\x1d\\xd5\\x0d\\xd1\\x88\\xee\\x76\\x9f\\x10\\xa4\\xde\\x5e\\x88\\x83\\xd1\\x16\\x96\\x7b\\xea\\x97\\xd3\\xb3\\x2b\\xc8\\xae\\xbb\\x9f\\x01\\x3d\\x6d\\xf9\\x52\\xf2\\x51\\xc1\\xa3\\x12\\x34\\x6e\\x72\\xce\\xe1\\x35\\xa1\\xbf\\xd7\\x6b\\xf3\\x08\\x0a\\x35\\xc8\\x38\\xb4\\x4d\\x75\\x5f\\x26\\x3d\\x21\\x03\\x10\\xfa\\x8d\\x28\\xc4\\xca\\x52\\xf0\\x8c\\xac\\x5b\\x83\\xa8\\xa3\\xb1\\xdf\\xc4\\x6d\\x9b\\x75\\x2d\\x9f\\xc7\\x36\\x49\\xd0\\x0b\\xb9\\xee\\x99\\x26\\x50\\x63\\x9c\\x22\\x5d\\xea\\xc1\\xf3\\x9b\\x9e\\x80\\x36\\x89\\xd1\\x9e\\x6d\\x9f\\x8e\\xf4\\xf5\\x1f\\x1d\\x11\\x60\\x1f\\xac\\xf4\\x10\\xdb\\x64\\x8b\\xcc\\x82\\xbf\\x64\\x87\\x69\\xa7\\xdd\\x59\\xc6\\xe8\\xa2\\x37\\xdb\\x23\\x9d\\x3f\\x66\\x1d\\x78\\x52\\xc4\\x26\\xd3\\x94\\xa9\\x05\\x09\\x52\\x6a\\x85\\x9b\\x47\\x64\\x59\\xde\\xdb\\xe6\\xd8\\x99\\x36\\xc0\\xf3\\x98\\x99\\x95\\x51\\x1d\\x4a\\x57\\x6e\\x54\\x2c\\xce\\x5e\\x0d\\xd7\\xee\\xef\\xeb\\x03\\x26\\xd3\\x3f\\x25\\xc2\\x2a\\xb6\\xe7\\x69\\x06\\x33\\xf4\\xc9\\xed\\x2a\\xad\\xf1\\xd2\\x4f\\x94\\x86\\x21\\x23\\xa4\\x64\\x04\\x2c\\xea\\x19\\x3a\\x2f\\x04\\x79\\xd3\\x9b\\xcd\\x1b\\xbd\\x1c\\x7a\\x0c\\xa7\\xe6\\x25\\x8e\\xd3\\x73\\x23\\x72\\xf5\\x4e\\x0e\\xd5\\xe3\\xf1\\xe2\\xe4\\xd4\\xa0\\x4c\\x51\\x0b\\xee\\x08\\xd1\\xc6\\xd5\\x70\\xcf\\xd6\\x3a\\xbf\\x14\\xb4\\xee\\xf0\\xb9\\x6f\\x39\\xca\\x29\\xe4\\x3c\\x52\\xf2\\xca\\x3d\\xfd\\x46\\x0f\\x66\\xe3\\x02\\x35\\xb1\\x59\\xaa\\xef\\x2c\\xc1\\x56\\x01\\x29\\x69\\xfd\\x3d\\x15\\x99\\x78\\xd6\\xca\\xa0\\xa9\\x45\\x22\\x29\\x1f\\x79\\x89\\xd8\\xaf\\x10\\x83\\x19\\x96\\x13\\x7b\\x68\\xd9\\x7f\\xc1\\x7f\\x6a\\x9b\\xc2\\x84\\x5e\\xf3\\xdd\\x47\\xcb\\xc3\\x86\\xe8\\x97\\x7a\\x86\\x54\\x36\\x34\\x12\\xda\\xc3\\xac\\x51\\xc6\\x38\\x17\\xb7\\xc0\\x51\\x87\\x8d\\xcf\\x45\\x8a\\xb3\\x63\\x0d\\xd7\\xae\\xf6\\x8d\\x27\\x0f\\x8d\\xa7\\x88\\x0a\\x46\\x7b\\x33\\x04\\xf5\\xba\\xed\\xfb\\xa9\\x17\\x3e\\x7e\\xfd\\x00\\x7c\\x41\\x2d\\x17\\x20\\x9c\\x56\\xd2\\x39\\x68\\xe3\\x40\\xb8\\xa0\\xed\\xb4\\x1b\\x7e\\x2a\\x40\\x88\\xbe\\xc0\\x1b\\x53\\x2d\\xf8\\x9b\\x52\\x15\\x81\\x31\\x31\\x10\\x7b\\x7b\\x47\\x4f\\x03\\xc2\\xe4\\x7d\\x43\\x17\\xf1\\x1c\\x4f\\x51\\x60\\x90\\x43\\x04\\x99\\x7e\\x76\\xa1\\x21\\xa9\\x56\\x02\\x35\\x20\\x8d\\x79\\xb2\\xda\\xb4\\xf7\\xe1\\x96\\x79\\x32\\x02\\xc0\\x90\\x2c\\xe9\\xc4\\xbf\\xc1\\x0b\\x8f\\xe3\\x97\\xe3\\x5c\\xa0\\x25\\x64\\x54\\x66\\x2a\\xe8\\x78\\xef\\xb0\\xa0\\xa6\\x06\\xfa\\xc0\\xa9\\x52\\xc9\\xf6\\xba\\xae\\xb2\\xd4\\x5b\\x25\\x8c\\x61\\x75\\x59\\xc0\\xed\\x25\\x28\\xa8\\x8b\\x49\\xaa\\x44\\xee\\x43\\x03\\x5b\\x0d\\x79\\x3a\\xad\\x39\\x53\\xc1\\xa5\\xa3\\x46\\x38\\x66\\xbc\\x81\\x5b\\x1f\\xfc\\xe2\\xff\\x2b\\x65\\xe0\\xfd\\x47\\xdb\\xc1\\x5f\\x4e\\x7a\\x06\\xbf\\xab\\xc2\\x90\\xfc\\x62\\x09\\x0b\\xf7\\xd9\\x48\\x53\\xf7\\x7c\\x04\\x44\\xa9\\xb9\\x0e\\xfe\\x77\\xd1\\xce\\xb4\\xbd\\x39\\xe2\\x03\\xbc\\x88\\x40\\x11\\x62\\x4e\\x68\\x46\\xe2\\xa3\\x71\\x05\\x8d\\xab\\xa6\\x3c\\x23\\xf8\\x6c\\x42\\xc3\\xe3\\x1e\\xaa\\x4b\\xd7\\xd7\\xa4\\x2a\\xf2\\xd5\\x24\\x89\\x6e\\x31\\xba\\xa3\\xe2\\x07\\x63\\xf8\\x5d\\xcf\\xd5\\x27\\x75\\xf2\\x80\\x72\\xd8\\x9f\\x0b\\xd4\\xfa\\xe3\\x0d\\x0b\\x13\\x7e\\xe3\\x7a\\xb0\\x63\\xba\\x06\\xfe\\x9d\\x4e\\xc6\\x2a\\xbb\\x2f\\xea\\x0f\\x81\\xb8\\xcb\\xee\\xfc\\x03\\x00\\x80\\xb8\\x02\\x6a\\x58\\xfd\\x18\\x67\\xf6\\x6b\\xe1\\x15\\x4e\\x65\\xbf\\xea\\x7d\\xce\\xc5\\x5f\\xe3\\x2d\\x51\\xfb\\x0b\\x4a\\x8a\\x5a\\x8a\\x04\\x42\\x63\\x94\\x3d\\x6a\\xc8\\x01\\x1c\\x6e\\x67\\x01\\xbe\\xec\\x3a\\x88\\x65\\x58\\x40\\xc4\\x89\\x2d\\x45\\x0d\\x31\\x2b\\x76\\x52\\xd2\\x51\\x47\\x69\\xf2\\x3b\\xfd\\x6e\\x70\\x46\\x46\\x7d\\xf2\\x9a\\x28\\x7f\\xf3\\xc4\\xc9\\xd0\\xe6\\x4e\\x6d\\x9e\\x4e\\xde\\xe1\\xb9\\x35\\xd0\\x76\\x81\\xd4\\x70\\x04\\x35\\x28\\x86\\xe8\\x47\\xb0\\xc6\\xd5\\x76\\x2f\\xd4\\x5a\\x81\\xa5\\x3c\\xce\\x94\\x76\\xc8\\x87\\x22\\x1a\\xea\\x6c\\x0c\\x82\\xbb\\xf3\\xb2\\x97\\x93\\x2e\\x5b\\x11\\xe5\\x38\\xa3\\x24\\x5d\\x63\\xd7\\xb7\\xb0\\x91\\xdf\\xa1\\xd7\\xb9\\xa0\\xe2\\xdb\\x66\\x98\\xa4\\xc5\\xe9\\xfe\\x93\\x16\\x62\\xd7\\xc6\\xec\\x6d\\x9d\\x5b\\x92\\xbc\\x7e\\x04\\x15\\x55\\xdf\\x4d\\xf0\\xca\\x11\\xca\\xbc\\x48\\x5f\\x9c\\x55\\x61\\x38\\xa7\\x17\\x45\\xf0\\x3b\\x97\\x83\\xbb\\x20\\x0b\\x72\\xd2\\x33\\x69\\x7e\\x8b\\xcf\\x6b\\x41\\x17\\xee\\x67\\x63\\xd7\\x92\\xd7\\x42\\x22\\x64\\x85\\x2f\\x4f\\x30\\xf8\\xd1\\x89\\x0e\\x2e\\xa0\\x80\\x98\\x04\\x0f\\x7f\\x28\\x8e\\x4a\\xbe\\x90\\xb6\\x3c\\xab\\x2c\\x14\\x37\\x30\\x60\\x84\\x0e\\xf8\\x27\\xec\\xc8\\x46\\xcd\\x56\\x0e\\x90\\xa2\\x0b\\x83\\x05\\xf4\\x63\\xc3\\x6e\\xa0\\x38\\x84\\xa5\\xdf\\x4c\\x25\\xf1\\xba\\x9e\\xa1\\x25\\x95\\x2d\\xc0\\x91\\xb9\\x75\\x16\\xde\\x1d\\x28\\x7c\\x0e\\x2b\\xf5\\x29\\x77\\x5b\\xa6\\xd2\\xf8\\xed\\xe0\\x3c\\xb4\\x2c\\x1e\\x40\\x0e\\xc8\\x04\\xa9\\xdf\\x08\\xe4\\x6f\\x44\\xb5\\x06\\x63\\x46\\xe3\\xf7\\xc7\\xa1\\xa8\"},\n{{0xc7,0xec,0xa8,0x3e,0x94,0x85,0x76,0xbd,0x9f,0x27,0x8f,0xd7,0xb8,0x28,0x00,0xa4,0x1d,0x92,0xda,0x9b,0x72,0xd5,0xa1,0xcc,0xdb,0xbc,0x65,0x58,0x10,0x52,0x56,0x8b,},{0x07,0x6b,0x83,0x52,0xdc,0xa8,0x03,0x1e,0x85,0x3c,0x8d,0x90,0x99,0xc2,0xef,0x57,0x93,0x37,0xcc,0x7b,0x2b,0x4c,0x75,0xd1,0xa0,0x63,0xea,0x3e,0xc7,0x25,0xb7,0xfd,},{0x86,0x99,0x6a,0x1b,0x8e,0x49,0x5d,0x42,0x52,0x77,0xe9,0x7c,0xc0,0x83,0x05,0x49,0x34,0x9b,0xc2,0xb6,0xf3,0xdc,0xda,0x60,0xf3,0xb7,0xd3,0x50,0x1b,0x8b,0x50,0xb5,0xb4,0x58,0xcd,0xa5,0x8b,0x43,0x6e,0x23,0xc0,0x2c,0xd4,0xa2,0x2b,0x23,0x48,0x13,0xaa,0x9b,0xcc,0x3c,0x61,0xf9,0x83,0xc0,0xb7,0xef,0xec,0xa0,0xf1,0xbe,0xc2,0x0d,},\"\\x8d\\x8c\\xef\\xd6\\x73\\x85\\x5c\\xcd\\x8e\\xb8\\x53\\x4c\\x31\\x2d\\x33\\x80\\x05\\xbb\\x05\\xf5\\xb9\\x50\\x7d\\x58\\x85\\x9e\\x1e\\x95\\x3b\\x0a\\x4d\\x91\\x3b\\xe7\\x59\\xd8\\xed\\xfa\\x92\\x89\\x8c\\x6e\\x70\\xa5\\x3f\\x81\\x95\\x4f\\xc3\\x44\\xb4\\xad\\x62\\x46\\xb0\\x10\\x94\\x81\\xba\\x6f\\x73\\xae\\x63\\x31\\xab\\xf2\\xdf\\x10\\x8e\\xb2\\xe8\\x5c\\xeb\\x08\\x7c\\x1f\\x6f\\xcf\\xc9\\xde\\x2c\\x1f\\x13\\x9b\\xa1\\x77\\x1b\\x72\\x68\\x03\\x02\\xd8\\x11\\xcc\\xd0\\xcc\\xd4\\xe0\\xc7\\xfe\\xb0\\x13\\x2e\\xb2\\x0b\\x33\\x4e\\x5a\\xab\\xe5\\xf6\\x11\\x9f\\xd8\\x94\\x7d\\x9e\\x88\\x52\\xe1\\xeb\\x1b\\x74\\x10\\x7e\\x17\\x41\\x00\\xe3\\xe6\\xdf\\x0c\\x3a\\x68\\x13\\x0c\\xa6\\x30\\x94\\x02\\x59\\x4b\\xb5\\x0c\\x1c\\x8e\\x27\\x74\\xf1\\x32\\x14\\x49\\x6a\\x7b\\x1f\\x34\\x83\\x85\\xea\\xbf\\xbc\\xcb\\xac\\x16\\x5a\\x5a\\x2e\\x7d\\x9d\\xea\\x5f\\xfd\\x58\\xb0\\xbd\\x88\\xb4\\x9c\\xb3\\x31\\xec\\xb7\\xf4\\xe9\\xd6\\xba\\xe9\\x79\\x1a\\xd7\\x88\\xe6\\xab\\x89\\x26\\xc1\\xcc\\x16\\x15\\xde\\xaf\\x4c\\xc4\\x00\\xc7\\x7a\\x31\\x61\\x97\\xbc\\xa1\\x90\\x49\\x95\\xe1\\x36\\x5d\\x1b\\x97\\x02\\x64\\x83\\x76\\x11\\x69\\x30\\xf6\\xf9\\x11\\x66\\xe6\\x14\\x86\\x29\\xe7\\x5b\\xe2\\xd0\\x68\\x95\\xf6\\xa8\\xd1\\x5d\\x5a\\x94\\xca\\x69\\xb7\\x12\\xf3\\x3b\\xcf\\x95\\xbe\\x0c\\x1b\\xe6\\x90\\x2b\\xb7\\x8b\\x8a\\x23\\x0d\\x7a\\x85\\x60\\xc4\\xd8\\x4e\\x23\\x89\\x55\\x2a\\x81\\x57\\x1a\\xa6\\x65\\xc1\\x9c\\x2e\\x93\\xb0\\xd4\\x3e\\x8c\\x2c\\xbd\\x9e\\x88\\x5d\\x70\\x52\\x51\\x8b\\x77\\xc4\\x7e\\x84\\x1d\\x11\\x9d\\xc2\\x8b\\x65\\xa7\\x50\\x4f\\x66\\x42\\x71\\xf0\\x6c\\x7f\\xf3\\x93\\xf8\\x25\\xb1\\xe5\\x93\\x0d\\x02\\xb9\\xc7\\x00\\x35\\xe2\\x92\\x41\\x1c\\x4a\\xed\\xf6\\x60\\x47\\x00\\x69\\x70\\xe3\\x49\\xdf\\xca\\x7f\\xb4\\x1c\\x10\\xfd\\x53\\x7e\\x35\\x25\\x2e\\x10\\x9e\\x33\\x36\\xd7\\xa8\\x2a\\x14\\xde\\x5d\\x55\\x40\\xc6\\xfc\\x65\\x71\\xd5\\x77\\x4f\\x39\\xb7\\xc4\\x03\\xe7\\xb8\\x87\\x5e\\xc2\\x15\\x87\\x7e\\xfc\\x6c\\xc8\\xea\\x48\\xb1\\x86\\xb4\\x68\\x21\\xea\\x5e\\xf2\\xba\\x8b\\xac\\xd4\\x0d\\x79\\x7e\\x6a\\xdd\\x06\\x41\\x32\\x83\\x14\\x5b\\x60\\x46\\x2b\\x35\\x03\\xc5\\xb8\\x81\\xd7\\x9a\\x59\\x29\\x55\\xd1\\x8a\\xfa\\x08\\x96\\x9e\\x31\\x45\\x7f\\x5b\\x27\\xda\\xec\\x01\\x03\\x38\\xed\\x86\\x7f\\x30\\x08\\x78\\xfd\\x87\\xce\\x32\\x18\\x80\\xb8\\x60\\xa0\\xc6\\x42\\x84\\xca\\x2d\\xc1\\x5f\\x5e\\x53\\x10\\xe1\\x0e\\x6a\\x73\\xa7\\xea\\x65\\x0e\\xa9\\xd3\\x73\\x69\\x4d\\xa4\\xdd\\x42\\x9a\\xe7\\x41\\x2e\\xf9\\xb2\\x9c\\x83\\xb3\\xb0\\x68\\xc7\\x47\\x69\\xf4\\x31\\xce\\x06\\x15\\xf9\\xff\\x4f\\x82\\xba\\xac\\x47\\xb4\\xbc\\xe9\\x04\\x49\\xec\\x41\\xc2\\xa2\\xd5\\x73\\xd9\\x2b\\x92\\xe0\\x56\\x31\\x48\\x61\\x65\\xbc\\x71\\x0e\\xf5\\x84\\x0f\\x80\\xda\\xe9\\xf9\\xdd\\x5c\\xff\\xd4\\xeb\\xf5\\xd1\\x07\\x46\\x51\\x0c\\x5f\\xcb\\xfe\\x62\\xcb\\x97\\x03\\xc0\\xb1\\x54\\xc8\\x6f\\x10\\x81\\x66\\x72\\x49\\x76\\x70\\xa3\\xb0\\x15\\x0b\\xb4\\xe1\\xb0\\x3b\\x3b\\xd5\\x44\\xc1\\x2a\\x90\\xc3\\xed\\xcc\\xd7\\x90\\x0e\\xbb\\x5b\\x31\\xc9\\x11\\x17\\xcc\\x82\\x81\\xa3\\xc4\\xed\\x04\\x99\\x8e\\x99\\xae\\xd4\\x1b\\xb4\\x1f\\xce\\x99\\x90\\xa4\\x06\\x48\\x5b\\x14\\xdb\\xe3\\xbc\\x1a\\x5f\\xcf\\x77\\x19\\x50\\x79\\x90\\xda\\x3b\\x0b\\x3c\\x68\\xad\\x40\\xd8\\x95\\x0c\\x0d\\x49\\xce\\xd1\\x01\\x93\\x19\\xa3\\xf3\\x6a\\xff\\x6c\\xaf\\x75\\xd7\\xf9\\xa0\\x93\\x3d\\xd3\\xab\\xdd\\x76\\x92\\xa1\\x56\\x2f\\x06\\x13\\xfe\\x4a\\x27\\x8d\\x5c\\xe4\\xc8\\xda\\xfb\\xb5\\x5b\\x2e\\xc2\\xaf\\x2b\\x24\\xe8\\x39\\x6f\\x58\\x7b\\x17\\x0c\\x9c\\xa6\\x54\\x75\\x08\\xfa\\xcd\\xe7\\x34\\x90\\xdf\\xb0\\x1e\\xb6\\x65\\x7e\\x3f\\x4f\\x27\\x23\\x04\\xb7\\x0b\\xf0\\x47\\xa4\\x3a\\x2b\\x58\\xe5\\x56\\x8b\\xc5\\x2b\\x2c\\x8d\\x4c\\x03\\x21\\x9a\\x5a\\x8b\\xd3\\xdc\\x06\\x43\\x18\\x59\\x13\\xc0\\xaf\\x74\\x11\\xf8\\x1b\\x77\\xbe\\x2a\\x9b\\xfd\\x5c\\xb2\\x69\\x77\\x11\\x3d\\x26\\x58\\xa9\\x71\\x92\\xb4\\x1c\\xf6\\xc7\\x01\\x1b\\x0f\\xf6\\xa1\\x1c\\xbf\\xf3\\x50\\x55\\x46\\x32\\x2f\\x0b\\xef\\x60\\x97\\xe4\\x6b\\x36\\x49\\x2b\\x01\\x6a\\x45\\x62\\xe0\\x92\\xb6\\x7c\\x3f\\xcc\\xc7\\x78\\x0e\\xa2\\x74\\xd9\\x6d\\x59\\x58\\x49\\xf7\\xe2\\xa5\\x6d\\x79\\xed\\xcb\\x32\\xd7\\x84\\x04\\x9f\\xc1\\x32\\x4a\\x5b\\xee\\xfc\\x24\\x19\\x3a\\x66\\xe1\\xca\\xc4\\xa1\\x3a\\x81\\x1b\\x90\\x95\\x83\\xcc\\x91\\x0c\\xf0\\x8d\\x4b\\x10\\x4d\\xbd\\xb8\\xa6\\xf2\\xb2\\x1f\\xbc\\x1d\\xb1\\x17\\x5a\\x1a\\x23\\x56\\xa6\\x3d\\x3e\\xea\\x9d\\xbb\\x85\\x37\\xd2\\xc6\\x86\\x27\\x54\\x3d\\xf0\\xd1\\xf8\\xfd\\x8d\\x57\\xa1\\x8b\\x0d\\xbd\\x69\\xb9\\x20\\xcb\\x9b\\x28\\x6e\\x3c\\x07\\xae\\x44\\xae\\x2e\\x1b\\xee\\xc0\\x1c\\xee\\x6b\\xa9\\x88\\xb5\\xd1\\xaf\\xb9\\x97\\x90\\xb1\\xdd\\x91\\x06\\x55\\xc4\\x3d\\x7f\\x2a\\x3e\\xd3\\x75\\x4b\\xa4\\x65\\x16\\xd2\\x78\\x70\\x55\\x59\\xf5\\x74\\x16\\x22\\xa9\\xab\\xb5\\xc8\\xf2\\x3f\\xa9\\x76\\xa9\\xd1\\x46\\x94\\x8a\\xde\\x6b\\xa6\\x60\\x8a\\x35\\xe4\\xe0\\xd3\\x30\\xe8\\x2e\\x96\\xa2\\xbe\\x6c\\x78\\xad\\x0c\\xd4\\xd8\\x70\\x4e\\x57\\xce\\xa1\\x46\"},\n{{0x7b,0x46,0x9d,0xf9,0xc8,0xf7,0x84,0x89,0xab,0x47,0xcc,0x70,0xa8,0x85,0x03,0xf1,0xb8,0xf3,0xd9,0x29,0xc3,0x3f,0xea,0xb1,0xc5,0x03,0xf0,0x96,0x9a,0x3a,0xc3,0x7b,},{0xa8,0x14,0xc7,0xe3,0x73,0xd0,0x11,0x3b,0x90,0x62,0x4a,0x8a,0xb2,0xbc,0xa5,0xcf,0x53,0xbf,0x52,0x8e,0x39,0xfc,0x3d,0x36,0x7d,0xe1,0x54,0xb9,0x4b,0xb2,0x2f,0x1d,},{0x18,0xfa,0xf8,0x2d,0x08,0xe1,0x06,0x8e,0x9f,0x98,0x3d,0x81,0x2f,0x05,0xfd,0xb6,0x92,0x9d,0x27,0x23,0xdb,0x1f,0x77,0xc4,0x5a,0x74,0xbb,0x09,0xcf,0xf2,0x77,0x73,0xb5,0x4c,0xe8,0xf4,0x3b,0x30,0x15,0x41,0x91,0x12,0xe7,0x25,0xea,0x7a,0xcd,0xa4,0xb2,0x3b,0x81,0x20,0xe7,0xb0,0xcf,0x42,0x01,0x53,0xe5,0xb0,0x3d,0xd0,0x61,0x09,},\"\\x1c\\x0f\\xd7\\x45\\x0e\\x29\\x67\\x5c\\x93\\x09\\x16\\x38\\xc2\\xac\\x93\\x3c\\xa9\\x97\\x76\\x6e\\x38\\x0e\\xc3\\x3a\\x92\\xb8\\xa7\\xe1\\xa1\\xed\\x98\\x21\\xc7\\x5f\\xcc\\xb5\\xc5\\xf3\\x76\\x0e\\x76\\xd0\\xe8\\x81\\x03\\x11\\xdd\\xc6\\x24\\xea\\x87\\x42\\x13\\x1c\\x1c\\x43\\x08\\xf4\\x17\\x8e\\x04\\xd0\\x49\\x60\\x69\\x3d\\x84\\x6c\\x1f\\x51\\xd8\\x77\\x3b\\x6d\\xeb\\x34\\x43\\xd8\\x74\\xb9\\xe2\\xde\\x3b\\x77\\x78\\x51\\x85\\x51\\x8b\\x2e\\x9e\\xe7\\x36\\xc6\\x3a\\x39\\xc8\\x21\\x2c\\xa8\\x66\\x9e\\x16\\x1d\\x13\\x1b\\x1a\\xb2\\x26\\x4f\\xdd\\x72\\xdc\\x56\\x28\\xb1\\x1c\\x06\\xf2\\xaf\\x9f\\x07\\x89\\x04\\x7b\\xdd\\x4e\\xbb\\x5d\\x55\\x89\\x9f\\x74\\xdc\\x4e\\x12\\xe7\\x97\\x53\\x63\\xf6\\x3a\\x8d\\xa7\\x6b\\x55\\x85\\xc1\\x6b\\xb6\\xd5\\x5b\\x05\\xfa\\xde\\x87\\x13\\xd1\\x9c\\xad\\x1a\\x21\\x16\\x40\\x26\\x26\\x91\\xaa\\xc9\\xb4\\x37\\xa9\\xec\\xf8\\x9a\\x92\\x46\\xec\\xdb\\xa1\\xff\\x0b\\xea\\x78\\x49\\x4c\\xee\\x15\\x29\\x62\\x16\\xea\\x6b\\xb8\\x82\\x47\\x9d\\x24\\x37\\xc9\\x49\\x4a\\xc7\\xfa\\x4f\\x30\\x15\\xd1\\xd3\\x14\\x9d\\x55\\x64\\xd7\\xc1\\x1a\\x7e\\x7b\\x61\\x4f\\x7d\\x3e\\x9d\\x45\\x4f\\x0a\\x05\\xb0\\x40\\xa1\\xe0\\x6f\\xe7\\x83\\x7c\\x2a\\x9d\\xa2\\x79\\x4d\\x91\\x8b\\xff\\xa9\\xe6\\x1a\\x0c\\x3f\\x08\\x9f\\x6c\\x9f\\x7e\\xea\\xc5\\x86\\xe3\\x4b\\xf9\\x44\\x70\\xd9\\x13\\xda\\x41\\x37\\x1c\\xac\\xdf\\xc7\\xee\\x8b\\xd1\\x13\\x56\\x55\\x56\\x69\\x24\\xea\\xdf\\x09\\x6a\\xc0\\x30\\xa6\\x59\\x02\\xc1\\x03\\xb1\\x72\\xd1\\x2e\\x88\\xf0\\x53\\xfc\\x56\\xee\\x73\\xf3\\x18\\x70\\x81\\x70\\x83\\xaf\\xa8\\x02\\xf7\\x66\\x8b\\x81\\x5e\\xe7\\x90\\xf7\\xd4\\x0b\\x43\\x7a\\x2e\\x6d\\xb2\\xf0\\xfb\\x26\\x83\\x6b\\x4b\\x23\\x31\\xeb\\xa5\\x55\\x39\\x61\\x4c\\x0f\\xe1\\x72\\x40\\x24\\x2d\\xd3\\xaf\\x73\\x83\\xbc\\xff\\x7d\\x3f\\x47\\xd6\\x54\\x4b\\x08\\x72\\x0c\\x0a\\x52\\x44\\x1f\\x74\\x11\\x93\\x5d\\xd4\\xa9\\x52\\xd3\\x86\\x51\\xa8\\x00\\x05\\xfa\\x3e\\xb0\\xea\\xec\\xc7\\x35\\xd2\\x90\\xe8\\xbd\\x5e\\x31\\xb7\\x40\\x14\\x0e\\x13\\x6b\\x2c\\x00\\x25\\x23\\xd8\\xeb\\x2a\\x0a\\xb5\\xbd\\x68\\x70\\x02\\xb3\\xb9\\x26\\xf7\\x5e\\xb6\\x90\\xd1\\xda\\x73\\xad\\x23\\x58\\x92\\xf3\\xb2\\x3a\\x75\\x6b\\x60\\x5a\\x43\\x7c\\x00\\xe0\\x62\\x13\\x04\\xe8\\x10\\xf9\\x9e\\x31\\x4c\\x4d\\x63\\xe3\\x22\\xd9\\xb6\\x98\\x15\\xf3\\x82\\xff\\xa1\\xec\\x62\\x80\\xfc\\x0e\\x64\\x1c\\x8a\\x6f\\x6f\\x7f\\x61\\x98\\x5b\\xd3\\x56\\x7e\\x0f\\x44\\x0d\\xe9\\xf7\\x62\\x17\\x15\\xda\\xcd\\x07\\x42\\x8c\\x00\\x90\\x15\\x4d\\x59\\xce\\x6d\\xb4\\x01\\x69\\xc6\\x58\\xac\\x5b\\xf4\\x4b\\x67\\x67\\x1f\\xe1\\x9e\\x4b\\x5b\\x38\\xaa\\xd2\\xd3\\xd4\\xe1\\x90\\xa5\\x50\\xaa\\xd4\\x18\\x83\\x52\\xf7\\x98\\x1a\\x6d\\x88\\x06\\x25\\x02\\xdf\\x86\\x79\\x13\\x50\\x39\\x2d\\x41\\xce\\xfa\\xcb\\x24\\xe3\\x7b\\xc7\\x00\\xcb\\x02\\x91\\x90\\xc3\\xb1\\x82\\x14\\x77\\xe1\\x17\\xd5\\xa4\\x62\\xfb\\x3e\\x79\\x13\\x3b\\x10\\x73\\x59\\x89\\x66\\xf5\\x2b\\x63\\x25\\x6d\\xbf\\x32\\x6a\\xce\\x14\\xdb\\x0c\\x80\\x05\\x8c\\xf0\\x0d\\x68\\x9a\\x0a\\x58\\x11\\x1a\\xf1\\x69\\x27\\x44\\xbf\\x79\\x1b\\xcb\\xb4\\x27\\xa3\\x72\\x24\\x6e\\x95\\x01\\xa8\\x5c\\xd5\\x20\\xc6\\x1a\\x1e\\x59\\xee\\x18\\x0e\\x8c\\x97\\x19\\x2f\\x60\\xfa\\x5d\\x3a\\xb0\\x5d\\xf8\\xd8\\x55\\x1c\\x1a\\xc6\\xca\\x0a\\x9a\\x01\\x2f\\xfe\\xce\\xb3\\xc1\\xf5\\x21\\x41\\x1e\\xdb\\x65\\x09\\xbc\\x27\\x8a\\x65\\x1e\\x12\\x9e\\x96\\xb0\\xad\\xc7\\xae\\xd7\\x07\\x22\\x1c\\xae\\xac\\x22\\x98\\x84\\x41\\x3d\\xaa\\x10\\x59\\x5d\\x22\\xd1\\xdb\\x70\\x82\\x12\\x5f\\x4f\\x96\\x95\\x00\\xa1\\xd4\\x8d\\xac\\xda\\xe8\\x0f\\x40\\x29\\xc1\\x63\\xdc\\xd7\\x9d\\xdc\\x64\\x68\\xfc\\xda\\x16\\x37\\xb8\\x7d\\xdc\\xf2\\xa3\\xd9\\xb4\\xd2\\x99\\xa0\\xe5\\x39\\x4d\\xf9\\x0e\\xd0\\x3b\\x62\\x13\\x7b\\xa6\\x7b\\x9f\\xea\\x8a\\xe1\\xf0\\xd2\\x2f\\x91\\xc6\\x3a\\x24\\xb5\\x93\\x4f\\x74\\xc2\\x65\\xc4\\x3f\\x1b\\x92\\x3d\\xb9\\x80\\xad\\xfc\\xee\\x83\\x13\\xda\\x52\\x01\\x76\\x73\\x0e\\xf9\\x73\\x6b\\x27\\xe6\\xba\\x32\\xd1\\x7e\\xa6\\x9d\\xca\\xc6\\xf4\\xa0\\x16\\xed\\xfe\\x2d\\xb5\\xa5\\xbb\\x3b\\x64\\x93\\x2f\\x70\\x11\\xf1\\xc4\\x53\\xbb\\xe8\\x8b\\xba\\xc8\\xc7\\x03\\x5f\\x93\\xfe\\x39\\xb5\\x81\\xfc\\xaa\\x7a\\xaf\\x08\\x2f\\xbe\\xd0\\x04\\xfd\\x1f\\xd5\\xa4\\xe2\\xd9\\xc1\\x97\\x16\\x60\\x4b\\x19\\xce\\x19\\x9e\\x21\\x69\\xa7\\xbe\\x51\\x8d\\x5f\\xad\\xd2\\xac\\x31\\xb9\\x54\\x78\\x08\\x2a\\xc9\\x13\\x06\\x00\\x8d\\xe4\\xec\\x0e\\xf4\\xc9\\xf9\\xd6\\xf9\\x6d\\x2f\\x66\\xd6\\x2f\\xaf\\xc2\\x19\\x40\\x82\\x80\\x8a\\xf0\\xd6\\x7b\\x9f\\xba\\x0d\\x18\\x9b\\x05\\x5f\\x06\\x1c\\xca\\xc2\\x4b\\x27\\x61\\x0b\\xfb\\xd5\\xa2\\x23\\x2d\\xd6\\xf3\\xc8\\x90\\xa9\\xb1\\x26\\x64\\x71\\xb3\\x22\\xe9\\xe1\\xbf\\x97\\x75\\x7b\\xef\\x72\\xab\\xce\\xe9\\x3b\\x05\\x1f\\xc9\\x23\\xcf\\xd4\\xe7\\x23\\xbe\\x3e\\x17\\x14\\x3f\\x38\\xee\\xbb\\x90\\x0b\\x5b\\xbc\\xf7\\x30\\x47\\x32\\xb9\\xc0\\xa1\\xc5\\xfc\\x95\\x09\\xa6\\x93\\x58\\x0a\\xe7\\x3a\\x4c\\xdf\\xc5\\xfb\\xf2\\x0c\\xe8\\x1e\\xbc\\x83\\x5c\\x6c\\x90\\x9d\\x83\\x11\\x41\\xb1\\x94\\xf6\"},\n{{0xdf,0xec,0xde,0x7a,0x56,0xa1,0x8c,0x1f,0x19,0xd8,0x0a,0x19,0xa4,0xf1,0xda,0xdd,0xd0,0xbc,0xec,0xb0,0x1e,0xec,0xad,0x6d,0xfc,0xa0,0xf9,0x57,0xa9,0x14,0xed,0x7a,},{0xaf,0xba,0xa6,0xe7,0x3e,0x85,0xb0,0x2b,0x25,0xa4,0xb5,0x87,0xec,0xb8,0xc4,0xdf,0xb7,0x9a,0xa9,0x20,0x27,0x61,0xef,0xa8,0xd1,0xdf,0x2c,0xd0,0xaa,0x63,0x16,0xc4,},{0xb4,0xfd,0xe5,0x5b,0x91,0x6c,0xf6,0x00,0x68,0xf1,0x9b,0x25,0x35,0x1c,0x14,0x10,0xdc,0xf6,0x6b,0xfc,0x40,0xf9,0x6d,0x1b,0xa2,0x36,0x8b,0xc2,0xb9,0x11,0x5a,0xaa,0x5b,0x2d,0x1c,0xf0,0xe3,0xdf,0xca,0x02,0xac,0x90,0x2a,0x94,0x3e,0x24,0x89,0xa5,0x68,0x1b,0xba,0xfe,0xd3,0x9c,0x6e,0x33,0x21,0x1a,0x9c,0xb2,0xff,0x6e,0x54,0x09,},\"\\xae\\x6e\\x8f\\xf6\\x5c\\xcd\\xe6\\xf2\\x64\\x84\\x95\\x08\\x26\\xb4\\x36\\x23\\x05\\x8a\\x5e\\xfe\\x02\\x0b\\xb1\\x9b\\x7d\\x8b\\x4e\\x25\\x76\\x8b\\x69\\x27\\x34\\xfe\\x07\\xc9\\x13\\xb9\\xe8\\x81\\x26\\xbe\\xcb\\xf1\\x4a\\x0f\\xd0\\x20\\x5b\\x39\\xfc\\xc2\\xae\\xc3\\x73\\xf8\\xc1\\x84\\xc6\\xa9\\xbb\\xbb\\x84\\x44\\x9a\\x7c\\xa3\\xb9\\x20\\xad\\xa0\\x88\\x01\\xdf\\xc6\\x6f\\xf1\\x9a\\xeb\\x92\\xf2\\x55\\x53\\x99\\xa4\\x30\\x27\\x7a\\xe2\\x2d\\x23\\x75\\x4e\\xaa\\xce\\x3c\\x73\\x84\\x67\\x97\\x53\\x6d\\xd7\\x1a\\x56\\xf4\\xb5\\x84\\x2c\\x0f\\x41\\x0d\\x19\\x89\\xac\\xac\\x5d\\x80\\x5d\\x26\\x57\\x2c\\x0f\\x3a\\x64\\xdd\\x20\\x71\\x66\\x22\\x12\\xd5\\x2f\\xe9\\x9e\\x59\\xd9\\x66\\x04\\x77\\x77\\xf9\\x03\\x0f\\xa4\\xfd\\x2e\\xe7\\x4b\\x7a\\x7c\\x9f\\x7c\\x34\\xa6\\xdc\\x7e\\x03\\x59\\x3a\\x13\\xd6\\x4c\\xe6\\x24\\x53\\xee\\x3c\\xa3\\x0d\\x84\\x67\\x28\\x39\\xf1\\x9f\\x1c\\x15\\xd0\\xc4\\x5d\\x27\\x55\\xbb\\x39\\x4a\\xcf\\x4d\\xcb\\x7f\\x7f\\x07\\x11\\xac\\x40\\xea\\x46\\x61\\x2e\\xa3\\x7a\\x76\\x07\\xad\\x32\\xe8\\x18\\x26\\x5f\\xab\\x19\\x33\\xf5\\x09\\x4e\\x2d\\x03\\xbc\\xfa\\xa5\\xf6\\x16\\x67\\xf3\\xb3\\x7f\\x00\\xc4\\xc5\\x8d\\x9b\\x41\\xb9\\xaf\\x39\\x00\\x48\\x2b\\x0f\\xfb\\x4f\\xa4\\x37\\x6a\\xa0\\x40\\x00\\x9d\\xec\\x2f\\x45\\x25\\x79\\x9c\\xb0\\x05\\xf3\\x9d\\x74\\xcb\\x2d\\x8d\\xce\\x8c\\x20\\xc2\\xc3\\xf5\\x40\\x97\\x03\\xaf\\x15\\x6c\\xfb\\xa2\\x8a\\x9d\\x91\\x64\\x39\\xcb\\x29\\xf8\\x3d\\x24\\x29\\xce\\x62\\x23\\x51\\x9e\\x75\\xe1\\x5c\\x7c\\x7f\\xa2\\x15\\x11\\x9e\\x07\\x3f\\xa7\\x97\\x4d\\xb1\\x4f\\x7a\\x01\\x09\\x3f\\xaa\\x94\\xad\\x52\\xab\\x1e\\xad\\xce\\x1a\\x89\\x36\\x6c\\xa1\\x3a\\xdb\\x89\\x06\\x64\\x38\\xa2\\xbe\\xb7\\x30\\x34\\x17\\x0a\\xa4\\x2d\\x9c\\x2d\\xdb\\x97\\xc1\\x4a\\x17\\xc3\\x09\\x43\\x76\\xd2\\xa3\\xff\\xd8\\x09\\x5f\\xc4\\x05\\x3d\\x91\\xd1\\x6e\\x06\\xd2\\x76\\x93\\xa1\\x31\\x0f\\x01\\xa7\\x51\\x11\\xcf\\xed\\xa8\\x92\\xc3\\x97\\x2a\\x13\\x3a\\x09\\xad\\xda\\xa8\\xf7\\x41\\x45\\xf8\\x86\\x81\\xb6\\xd2\\x77\\x96\\x4b\\xfe\\x38\\x55\\x1a\\x2c\\x61\\x9f\\xa3\\xca\\xe3\\x94\\xac\\xb2\\x9c\\x94\\x10\\xb4\\x5e\\x10\\x1b\\x17\\x40\\xe8\\xb2\\xaa\\x6f\\xeb\\xc3\\xa4\\x5d\\xad\\xb9\\xd9\\x58\\x9d\\x59\\x7e\\x57\\xcd\\x94\\x7b\\x68\\x4c\\xc3\\x55\\x24\\x6c\\xe6\\xc3\\x26\\xdd\\x98\\xcf\\x92\\xb6\\xee\\xa3\\xba\\x5a\\xb0\\x37\\x00\\x62\\x26\\x36\\x32\\x4d\\xc1\\x22\\x2c\\xd7\\x48\\xfa\\x07\\xbf\\xd3\\x9a\\x1e\\x06\\x98\\x09\\xe5\\x67\\x14\\x1a\\x61\\x3e\\x2e\\x8b\\xe9\\xdd\\x39\\x8a\\xb6\\xbe\\xaa\\xfd\\x85\\xff\\x36\\x28\\xee\\x2a\\xa3\\x2d\\x0a\\x57\\xbb\\xac\\xf9\\x56\\x19\\x0b\\x5c\\x42\\x42\\xeb\\x5b\\x85\\x87\\xd2\\xfd\\xcb\\x07\\x41\\xb9\\x41\\x6a\\x05\\xf5\\xfe\\xcb\\x1f\\xb2\\xd6\\x47\\x88\\xdc\\xe7\\x83\\xc1\\xf6\\x3e\\x60\\x64\\x1f\\xce\\x5e\\x1d\\x2b\\x18\\xa9\\x50\\x0c\\xd6\\xa1\\xfd\\x33\\x5c\\xc1\\xdb\\x46\\xef\\x04\\x75\\x2b\\x2d\\x22\\x07\\x2e\\x6d\\xfc\\xfc\\xfa\\x56\\x9b\\xb2\\x5e\\x45\\x7a\\xfe\\xb6\\x3a\\x4f\\xbe\\xdc\\x29\\x3a\\xd9\\xd1\\xab\\xa4\\xe3\\x94\\xaa\\x10\\x97\\xe1\\x2b\\x0f\\xc9\\x0c\\x89\\xf7\\x6d\\xf0\\xd6\\x44\\x1f\\xa9\\x98\\x08\\xb6\\x0b\\xe0\\x7d\\xfc\\xc7\\xf9\\x01\\x0b\\xbf\\x90\\x33\\x55\\x6d\\x5e\\xe2\\xd4\\x48\\x93\\x7b\\x78\\x34\\x93\\x92\\x0f\\x68\\x1e\\x4d\\xa7\\x08\\x67\\x10\\x97\\xe1\\x99\\x48\\x1b\\x8e\\xf0\\xe0\\x15\\x0d\\x7c\\x28\\x51\\xdf\\x44\\xc5\\x45\\x12\\x2f\\x9b\\x0e\\x5b\\xa2\\xee\\xff\\x2d\\x98\\x8d\\x56\\xd9\\xbb\\xb5\\x5d\\x98\\x96\\x11\\x11\\x51\\xa4\\x36\\xaf\\x06\\x5e\\x0c\\xad\\x17\\x8a\\x2c\\x9f\\xa8\\xf6\\x97\\x4e\\xcd\\xf0\\x9a\\xdf\\x01\\x33\\x00\\xcf\\xfe\\xda\\xf4\\xb8\\x79\\x1b\\x46\\x7b\\xa7\\x93\\x3a\\xda\\x5d\\x63\\x2d\\xb4\\x4e\\xd6\\xdc\\xf2\\xaa\\x64\\x89\\x17\\xbe\\x63\\x37\\xd2\\xe2\\xd2\\x06\\x85\\x6d\\x08\\xf9\\xee\\x7b\\x5e\\x2f\\x14\\xdd\\xc6\\xd3\\xac\\x42\\x92\\x15\\xa8\\x79\\x23\\xad\\x32\\xd5\\xdc\\xfe\\xe3\\x68\\x63\\x16\\xdd\\xd1\\xb2\\x7b\\xb1\\x93\\xa5\\xfc\\x05\\xc8\\x93\\xa9\\x39\\xa5\\xb9\\x89\\x87\\x36\\x6c\\x82\\x9e\\x39\\x2f\\x48\\x5e\\xa1\\x5e\\x22\\xcd\\x8f\\x85\\x7a\\x13\\x4a\\xfa\\x98\\xf3\\x72\\x15\\x57\\x6d\\xdc\\x5a\\xab\\x4f\\x2d\\x10\\xca\\xaf\\x05\\x00\\x59\\xa3\\x35\\xf2\\x4b\\xcd\\xcb\\xac\\x81\\x9f\\x66\\xdb\\x07\\xaa\\xbd\\xfb\\x76\\x27\\x1d\\x17\\xbc\\xe2\\x2c\\xba\\x46\\x3a\\x80\\xaa\\x89\\x2d\\x0d\\x8e\\x05\\x5f\\x94\\x8d\\xf7\\xf6\\xe6\\xc3\\x00\\xda\\xef\\xfd\\x3a\\x23\\x6d\\xdd\\xcf\\x23\\x8f\\xe1\\x06\\x66\\xa5\\x7c\\x6e\\x3a\\xe7\\xe3\\x67\\x3d\\x35\\x57\\x8f\\x8b\\x8e\\xa6\\x9d\\x3c\\x08\\xe0\\x14\\x0a\\xfd\\x3e\\xe0\\x30\\xb2\\x2a\\x37\\x21\\x60\\xf9\\x08\\xa3\\x78\\xf8\\x10\\x1b\\x5f\\x59\\x69\\xfe\\xa3\\x10\\xee\\xd3\\x7a\\x00\\xd9\\x73\\x02\\xd5\\xc2\\xdb\\xe8\\xcc\\x60\\x00\\x75\\xdc\\xcd\\x33\\xad\\x63\\xd2\\x65\\xaa\\xf6\\x0e\\x24\\x1c\\xe3\\x11\\xbe\\xd7\\xdd\\x5e\\x27\\x45\\x24\\x1a\\xe0\\x2a\\xe5\\x32\\xd1\\x5c\\x18\\x88\\x6e\\x81\\x81\\x38\\x75\\x1a\\xfc\\x51\\x85\\x0e\\x50\\x6c\\x6d\\x31\\xa8\\xee\\xf4\\x51\\xad\\xfd\\x4b\\x3d\\x26\\x6b\\x41\\x5a\\x7e\"},\n{{0x07,0x82,0x8c,0x58,0x0e,0xbf,0x9e,0x1d,0x82,0x5a,0x59,0xc3,0xbf,0x35,0xf0,0x72,0xae,0x12,0x33,0x55,0xbd,0xcc,0x24,0x9e,0xec,0x7f,0x2f,0xc5,0x75,0x5e,0x29,0xb5,},{0x58,0xe5,0xed,0x85,0x10,0x0b,0xbd,0x9b,0x22,0x21,0xaf,0xc9,0xc9,0x31,0x84,0x33,0x0a,0xd5,0x9e,0x13,0x85,0x60,0x62,0x44,0xbf,0x00,0x3b,0x8d,0x20,0x18,0x50,0x1b,},{0xbb,0x09,0x36,0x04,0x39,0xa8,0x2d,0xee,0x5c,0x7d,0x85,0x77,0x9e,0x54,0xc1,0x3f,0x88,0xe0,0x6d,0x38,0xf4,0xb9,0x49,0x60,0xfe,0x17,0xa1,0xeb,0xca,0xa3,0xee,0x2f,0x33,0x0c,0x64,0x91,0x54,0xbb,0xc8,0x75,0xa4,0x07,0x6c,0xf0,0xbb,0xf7,0xee,0xbf,0x7b,0x8d,0x08,0xd5,0xaa,0x4b,0xe7,0x41,0x38,0x81,0x24,0x5f,0xc2,0xd2,0xb6,0x01,},\"\\x0e\\xda\\xd5\\xca\\xe6\\xed\\x98\\x43\\xe9\\x1c\\x50\\xd9\\x34\\xcf\\x55\\xdd\\x65\\x8f\\x3d\\x25\\x20\\x39\\xcd\\x6c\\x75\\xbe\\x4f\\x6b\\x86\\x6f\\xb7\\x5f\\x35\\xc8\\xf9\\x8f\\x17\\x21\\xd7\\xe6\\xd9\\xd9\\x8a\\x22\\xe0\\xb4\\x93\\x4d\\xcc\\x12\\x92\\x61\\xbf\\x67\\x23\\xb2\\xfa\\x7a\\x99\\x5e\\x35\\xc4\\xbd\\x79\\xc5\\x81\\x6a\\x32\\x16\\x07\\xd9\\xdc\\xce\\x39\\xfe\\xfa\\x1d\\x55\\xde\\x4e\\x76\\x17\\x54\\x8e\\xc3\\x85\\xc3\\xde\\x01\\xe3\\x66\\xbf\\x50\\xc4\\x57\\xa5\\x55\\xe9\\x32\\x07\\x0e\\x2a\\x5a\\x01\\x97\\xb7\\x9e\\xfb\\xe7\\x00\\x6f\\x0c\\xec\\x78\\xb6\\x0e\\xbb\\x8f\\xa8\\x78\\x1d\\x8e\\xb7\\x32\\x6e\\xdc\\x30\\xe6\\x2d\\x32\\x97\\xa1\\xe0\\xa1\\x11\\x71\\x08\\xc4\\x6e\\xe5\\xdb\\xef\\xc6\\x59\\x42\\x89\\x33\\x5e\\x78\\x0d\\x55\\xa0\\x84\\xf5\\x52\\xda\\x3f\\x36\\xd3\\xc4\\xc6\\x17\\x8b\\xa7\\x4d\\x4d\\xec\\xef\\xc5\\xa3\\xb8\\xc4\\x7c\\x16\\xf5\\x34\\xbd\\xb6\\x08\\x95\\xd3\\xd5\\x4c\\xd2\\xbb\\x26\\x6b\\x39\\x9e\\x4d\\x4f\\xb4\\x8d\\x7a\\x8c\\xde\\x17\\xf4\\x24\\x12\\x56\\x07\\x37\\xd3\\xc0\\x6e\\x29\\xdf\\x52\\x4d\\x0c\\xbd\\x30\\x93\\xef\\xca\\x1c\\x8f\\xed\\xca\\xa1\\x24\\xab\\xb2\\x7a\\xbd\\xac\\x6a\\x29\\xe0\\xe8\\x24\\x6a\\xbd\\x6f\\x5f\\x53\\x19\\x50\\x03\\x7f\\x76\\x32\\x3a\\xa5\\x6c\\xc3\\xfe\\xfa\\x60\\x30\\x41\\xd5\\x5f\\x19\\x29\\xe2\\x77\\xe7\\x2c\\xda\\x1f\\x96\\x54\\x1d\\x2a\\xf3\\xe9\\x0c\\x0f\\x0e\\x28\\xbe\\x19\\x6d\\x8f\\x69\\x21\\xf3\\xcd\\x57\\xa7\\x92\\x6b\\x86\\x0a\\xa1\\xbc\\x40\\x35\\x76\\x89\\x2a\\x96\\xb9\\x31\\x90\\xae\\x38\\x3f\\x63\\x1b\\x72\\x80\\x26\\x58\\xb2\\xe8\\x45\\x1d\\x52\\xa2\\xf4\\x5d\\xb4\\xf8\\xbc\\x3b\\x0e\\x4e\\x50\\xb6\\xd6\\x03\\xa5\\xbd\\xd3\\x0c\\x23\\x42\\x00\\xad\\x7d\\xeb\\xb9\\x63\\xf5\\x8a\\x4f\\xa2\\x03\\x30\\xb3\\x69\\x64\\x49\\x44\\x5a\\xa3\\x71\\x82\\x48\\x42\\xfb\\xf3\\x26\\xd9\\x01\\xdf\\xe3\\xbe\\x04\\x54\\x52\\xa3\\x74\\x0d\\xd1\\x60\\xe7\\x27\\x33\\xf6\\xe2\\x73\\x35\\x25\\xa2\\x9a\\x86\\x5f\\x6f\\x50\\xd5\\x3b\\xf7\\x19\\x1c\\x59\\x9c\\x87\\x6f\\x5c\\x9c\\xa1\\xe3\\xfa\\xd7\\x96\\x06\\x48\\xe0\\xd4\\x71\\xf7\\xd5\\xc0\\x1c\\x67\\x3f\\x42\\xd6\\x59\\xbc\\x3d\\x98\\xdb\\xf0\\x7d\\x8f\\xeb\\xfb\\x99\\x5d\\x17\\xf9\\xa0\\x2c\\xd6\\xc3\\x9f\\x2d\\xdc\\xd0\\xf1\\xd2\\x22\\xb9\\xe1\\x1f\\x2d\\xd7\\xd3\\xc7\\x51\\x82\\x24\\xbb\\x6b\\xfb\\x8b\\x7c\\x58\\xfe\\x8a\\xc1\\x05\\x40\\x59\\x03\\xa1\\xb9\\xda\\x75\\x16\\x71\\x5b\\x7a\\xfc\\x38\\xa5\\x55\\xe6\\xbb\\xcd\\xba\\xd4\\x6e\\x34\\xe5\\x76\\xfe\\xa3\\x4c\\xe3\\x57\\x34\\xed\\x20\\xaf\\x5d\\x88\\xee\\xb1\\x04\\x7a\\x26\\x60\\x64\\x8b\\xbb\\x11\\x3a\\xd9\\xdb\\x8c\\x53\\xed\\xb6\\xed\\x98\\x71\\xa1\\xe4\\x4c\\x9e\\xd2\\xdf\\x56\\x56\\xfb\\x2b\\x28\\x06\\xec\\xf0\\x3b\\x1e\\xca\\x9e\\xab\\x50\\xa6\\xea\\xab\\x55\\xb9\\x33\\xb2\\xdd\\x1f\\x21\\xd4\\x50\\xde\\x9d\\x5c\\xb2\\x23\\x2f\\x07\\xa3\\x92\\x08\\x1b\\x0b\\x4b\\x88\\x5d\\x54\\x78\\x9e\\x2f\\x75\\xbf\\x2c\\x4c\\xda\\xd8\\x78\\x98\\x9b\\x1d\\x6d\\xab\\xd9\\xed\\x23\\xc7\\xc5\\xb0\\x35\\x6a\\x7d\\x9e\\x73\\x35\\x29\\x0d\\x7c\\x85\\xb9\\x66\\xe8\\x01\\x84\\xbd\\x07\\x99\\x86\\x02\\x88\\x6d\\x70\\x76\\x19\\x35\\x65\\xc8\\x1c\\xcc\\xda\\x4c\\xc7\\xd3\\x3c\\x85\\xd9\\x05\\xb1\\xbe\\xb6\\xe8\\xe7\\x41\\x8e\\x8a\\xca\\xed\\xf0\\xd9\\xa3\\x2a\\x7d\\x29\\xd0\\x7c\\xf4\\x4d\\x31\\x19\\xd4\\xe7\\x89\\x68\\x20\\xb7\\x7d\\xe6\\x4b\\x65\\x5e\\x4f\\x14\\x88\\x00\\x43\\x4a\\xf7\\xbd\\xb2\\xa5\\x6b\\x25\\xeb\\x94\\xea\\x39\\xf2\\x16\\x95\\x96\\xbb\\x2b\\x11\\x76\\x1f\\x08\\x2b\\xae\\xc0\\x88\\x85\\xf4\\xa0\\xeb\\x6c\\x95\\x76\\x71\\x35\\xa7\\xf7\\xcd\\x72\\xe7\\x43\\xd2\\xdf\\xf1\\x44\\xdd\\x8b\\xaf\\xb1\\xb3\\x18\\x00\\x6e\\x58\\x76\\xf8\\xe2\\xcb\\x44\\xaa\\x58\\x8f\\x90\\x62\\x66\\xac\\x67\\x11\\x9c\\x17\\xf5\\xde\\x11\\x4e\\x72\\xe4\\x2a\\x1f\\xb3\\x99\\x44\\x32\\x1a\\x11\\x1f\\xa7\\x95\\xff\\x70\\x17\\xf2\\xfb\\x8c\\xaf\\x48\\x2f\\x55\\xd7\\x7a\\x80\\x85\\x54\\x28\\xde\\xd7\\xec\\x20\\xac\\xec\\xca\\x83\\xf8\\xd1\\xeb\\x13\\x7b\\x58\\x8c\\xcb\\x74\\x5c\\x10\\x5f\\x2b\\x2c\\xa4\\x1c\\x3a\\x9f\\x49\\xd3\\xc6\\xe9\\xd7\\xc6\\x48\\xb0\\x03\\xb9\\x70\\x7c\\x90\\x64\\x62\\xed\\xad\\x61\\x7a\\x8c\\xfb\\xf9\\xbc\\xc6\\xc5\\xfb\\x6f\\xa9\\x84\\x32\\x5d\\x65\\x82\\xe2\\x8f\\x62\\x00\\x53\\x83\\xf3\\x38\\xdf\\x5b\\x38\\xfa\\x9d\\x19\\xc2\\x2a\\x2a\\x7e\\xa1\\xd6\\x8a\\x92\\xd1\\xd9\\x3b\\x7f\\xb0\\xb8\\xf3\\x3b\\xc8\\x76\\x0f\\x28\\xae\\xb1\\x43\\x9a\\x8b\\x07\\xf3\\xda\\x58\\xdd\\xb1\\x55\\xb4\\x98\\xcb\\x09\\xc7\\x5a\\x55\\x96\\x83\\x8a\\x65\\x01\\x3e\\x24\\xd5\\x64\\x0d\\x08\\x42\\xa7\\x69\\x93\\x22\\xcf\\x3f\\xfc\\xb5\\x70\\x3f\\x41\\x4f\\xfd\\x16\\x88\\x60\\xba\\xd3\\xe3\\x08\\xb2\\xb5\\xbf\\x3c\\xdf\\x7f\\x36\\x3b\\xf9\\xaa\\xf4\\xb3\\xbc\\x42\\x4c\\x14\\x6c\\x6f\\x54\\x21\\x43\\x0f\\x9f\\x47\\x6a\\xa3\\x4a\\x0c\\x6e\\xe8\\x01\\x31\\xfc\\x4d\\x4d\\x97\\x07\\x23\\xa2\\x18\\x6a\\xe3\\x62\\x5e\\x28\\x6d\\x17\\xdd\\xdc\\x43\\x5c\\xcb\\x00\\x83\\x16\\x78\\xab\\xa5\\x84\\xa6\\x2d\\xbf\\xf0\\x02\\xbe\\xad\\x6e\\x11\\xe2\\x3c\\x54\\xd3\\x3c\\xf3\\xa4\\xb2\\x31\\xa9\\x08\"},\n{{0xf0,0x8e,0xe8,0xda,0xa7,0x3e,0x1f,0xeb,0x61,0xa8,0x8e,0x06,0x2d,0xfb,0x10,0x03,0xc8,0x57,0x8a,0x0d,0x53,0xbd,0x3b,0xc9,0xe5,0x89,0xef,0xb9,0x2f,0x68,0xbe,0x14,},{0x76,0x69,0x2c,0xe8,0xd1,0x16,0xec,0xcb,0x89,0x70,0x77,0xed,0xca,0xaf,0xdd,0x3e,0xb4,0x4e,0xa1,0xa4,0x86,0xb9,0x0e,0x49,0xe9,0x7f,0x96,0x69,0x01,0x01,0x55,0x02,},{0x66,0xdf,0xa4,0xc1,0x57,0x5b,0xef,0xf2,0xf5,0xa2,0x30,0xb2,0x8c,0x58,0xc3,0xee,0xa0,0x73,0x6d,0xf3,0x79,0xd7,0x55,0x59,0xbc,0x9d,0x37,0xa9,0x57,0x9d,0x12,0x1c,0x05,0xc3,0x73,0xe8,0x48,0x4c,0x97,0x47,0xef,0x44,0x77,0xe8,0x0c,0x4b,0x2c,0xb4,0xdd,0xf1,0x6a,0xe9,0xfd,0xfa,0x08,0xa0,0x75,0x47,0xd1,0x07,0xdc,0xea,0x12,0x03,},\"\\x64\\xde\\x90\\x04\\x4d\\x0e\\x76\\xbc\\x02\\xfc\\xff\\xcb\\x75\\x26\\x36\\x67\\xb3\\xbd\\x73\\x3b\\x40\\xbf\\xb2\\x6c\\x6c\\x52\\xfd\\xb4\\xb0\\x78\\x22\\x78\\xca\\xba\\xe4\\x1e\\x21\\x29\\xea\\x40\\x17\\xe9\\x4d\\xe8\\x60\\x87\\x96\\x4f\\x66\\xd8\\x62\\x07\\x98\\x74\\x67\\xa1\\x68\\x8f\\x9f\\xab\\x3f\\xfb\\x2f\\x1d\\x00\\x63\\xbf\\x62\\x6c\\x94\\x13\\x67\\xc1\\x2e\\x31\\x9a\\xb7\\xca\\x30\\x20\\xc9\\xb3\\xa7\\x21\\x5a\\x19\\x30\\x3e\\x2d\\x0e\\x89\\x88\\x79\\x1d\\xe0\\xd8\\xe1\\x63\\x2d\\xaa\\x38\\xc7\\xf3\\xe7\\xf6\\xe4\\x8c\\xe1\\x22\\x14\\x3d\\x1e\\x2c\\xb6\\x61\\xba\\x77\\xc6\\x9e\\x6a\\x71\\x09\\x11\\x64\\x4b\\xc1\\x10\\xff\\x58\\xbb\\x00\\xb5\\x29\\x08\\x20\\xce\\x30\\x97\\x0e\\x7f\\xde\\x18\\x9e\\x14\\x0e\\x5c\\x70\\xc7\\x83\\xee\\xd5\\x3f\\x0e\\x2a\\xc7\\xec\\xae\\x4f\\x27\\xdb\\x81\\xd1\\x5b\\x86\\x46\\xfa\\xa9\\xc5\\xa3\\xae\\x2b\\x7f\\x47\\xcd\\x58\\x0d\\x77\\x07\\xb0\\x02\\x49\\x9b\\x4c\\xfe\\xb8\\xc5\\x91\\xaf\\xdf\\x1c\\xc6\\x2a\\xf2\\x59\\x5c\\x18\\x4a\\xbc\\xf0\\xb2\\x62\\x3a\\x1b\\xae\\x60\\xaf\\x70\\x26\\xb2\\x8d\\x05\\x40\\xb4\\x15\\x26\\xe3\\x02\\x0f\\x81\\xb8\\x94\\xeb\\x3f\\xe3\\x1b\\x72\\xb2\\x1a\\x32\\x60\\xda\\xe3\\x21\\x0c\\x4c\\xe4\\xfd\\x69\\xe2\\xe5\\xea\\x0c\\x86\\x32\\xa5\\x83\\x26\\x2a\\x12\\xb3\\xa8\\xb1\\x6c\\x9c\\x12\\x06\\xad\\x73\\x02\\x30\\x37\\xcf\\x30\\x65\\x3c\\xb8\\x0a\\xa7\\xdf\\x83\\x14\\xb0\\xf5\\xbc\\x6e\\x9d\\x5f\\xa0\\x0b\\x00\\x9d\\x55\\x52\\xd8\\x3b\\x79\\x70\\xb5\\xbc\\x4b\\x99\\x84\\xf6\\x9d\\x1c\\xca\\x9c\\xe4\\xcb\\x74\\xdd\\xd2\\xd8\\x79\\xd3\\x73\\x12\\xa0\\xe1\\x59\\xd7\\xa6\\xaf\\xb7\\x7a\\xc5\\x85\\xe6\\xb4\\x59\\xc5\\x51\\x30\\x4e\\x1e\\xeb\\xfb\\xca\\xb4\\x3a\\x10\\xb5\\x05\\x92\\x4e\\x03\\xea\\x33\\x2f\\x5d\\x02\\x0a\\x55\\xc7\\xaa\\x68\\x3c\\x54\\x1d\\xcf\\x77\\x90\\xa2\\x40\\xaf\\x07\\x9b\\xab\\xa9\\x40\\x96\\xb4\\x60\\x60\\xfd\\x7a\\xfe\\x90\\x56\\xca\\x99\\xe6\\x88\\xdf\\x28\\x0a\\x9b\\xe8\\xc8\\xc7\\x3e\\x6e\\x6f\\xb0\\x52\\xa3\\x3e\\xb3\\x32\\x8a\\x7f\\x60\\x25\\x42\\xfe\\x28\\x0c\\x89\\x0e\\x3c\\xca\\xf2\\x2c\\x7f\\x34\\xf8\\x7b\\x5e\\x5b\\xa7\\x84\\xb4\\x72\\xb1\\xe1\\xa9\\x93\\x47\\xa9\\xe0\\xd2\\x40\\x85\\x8d\\x12\\x77\\xa5\\xc6\\xb3\\x49\\x38\\x3f\\xe4\\xfd\\x55\\xcf\\x92\\xe6\\x9f\\xaa\\xd3\\x26\\xb8\\xd6\\xdb\\x46\\x23\\x30\\x26\\x22\\x1e\\xe6\\xd0\\xa1\\xc4\\x24\\x65\\x33\\xc4\\xa0\\xe5\\xbd\\x17\\x2e\\xb8\\x93\\x6a\\x9c\\x0d\\x30\\x06\\x65\\x38\\xe3\\xeb\\x4a\\xd5\\xcb\\x98\\x77\\xfd\\x86\\x1b\\x48\\x2b\\x30\\x15\\x0a\\x06\\x10\\x41\\x61\\x64\\x7e\\x01\\xd0\\x04\\xd9\\x97\\x40\\x3e\\xe0\\x67\\x26\\xcb\\x97\\xe2\\xe2\\x5f\\x18\\xc6\\x68\\xee\\xe4\\xc5\\xbf\\x72\\x52\\x98\\x03\\x18\\x9e\\xe6\\xa7\\xae\\xc2\\x38\\xd5\\x90\\x6e\\xa5\\xae\\x10\\x72\\x2c\\x9a\\x61\\xa7\\x8a\\xea\\x52\\xaf\\x33\\xea\\xac\\x75\\x40\\x6b\\x1a\\x60\\xbe\\xfb\\xaa\\xd4\\x84\\x76\\xd9\\xff\\x88\\x7f\\xd2\\x83\\xeb\\x16\\x55\\xbc\\xc0\\x7c\\xf7\\x53\\x33\\x14\\x36\\xdb\\x5b\\x3b\\x13\\x03\\x2f\\xf9\\xc3\\xd6\\x96\\x38\\x0e\\x9f\\x5a\\xbf\\x50\\xd3\\x55\\x6f\\xda\\x0d\\xf0\\xb5\\x38\\x97\\xa7\\x37\\xac\\x7a\\x3b\\x87\\xc2\\xa8\\x32\\xb0\\xc7\\x27\\x3e\\xa9\\xfc\\x54\\xa7\\x67\\xf1\\xa8\\x12\\xbf\\x01\\x64\\xbf\\x75\\x21\\x63\\x0b\\x81\\xb9\\xdd\\x93\\x0d\\x92\\xee\\x2c\\xa2\\x8e\\x32\\x03\\xb7\\x7b\\xc0\\x82\\xce\\xb3\\x7d\\x55\\xed\\xbc\\xb7\\x1d\\xf0\\xb7\\x92\\x36\\x78\\x9a\\x25\\xd4\\x18\\xcb\\xb9\\x55\\x44\\xe2\\xce\\xf3\\x3b\\xbd\\xeb\\x27\\xa3\\xf7\\x90\\x9c\\x1f\\x49\\x8f\\x47\\x13\\x5a\\xe9\\x03\\x3a\\xdf\\x25\\x0a\\xd4\\xf6\\x57\\x53\\x61\\xe4\\xcf\\xcc\\x9b\\xcf\\x4b\\x90\\xc3\\xad\\x47\\xa3\\x44\\x22\\x97\\xa2\\x23\\xcc\\xa8\\x43\\xd7\\x20\\x5e\\xd0\\x8a\\x9b\\x87\\x16\\x0a\\x6d\\x01\\xb4\\x6a\\x7d\\x1c\\x84\\x4e\\x8d\\x1f\\x18\\xf6\\x18\\x68\\x2b\\xfb\\x22\\x95\\x5f\\x39\\x5b\\x2a\\x57\\x90\\xa5\\x1a\\x69\\x64\\x99\\xd9\\xe7\\x1a\\x50\\x1f\\x3f\\xa5\\x46\\xde\\x9b\\x10\\xae\\x47\\xbc\\xee\\x42\\xba\\x7f\\x86\\x9f\\xb9\\xce\\x4e\\xd7\\xc6\\x45\\x33\\x26\\xc0\\x34\\xcf\\x05\\xd9\\xf1\\xe3\\xc2\\x00\\x70\\x1b\\xa7\\x52\\xda\\xbb\\xd8\\x68\\x52\\x1c\\x3d\\x8f\\x80\\x67\\x2d\\x42\\xf6\\xcf\\x45\\x64\\xf0\\x8c\\xd7\\xb3\\x90\\xe6\\xd4\\x9d\\xd9\\x00\\x90\\xaf\\xdb\\x84\\x48\\x6f\\xfc\\xaa\\x4e\\x84\\xd8\\x86\\x82\\x74\\x4d\\xc0\\xa8\\x78\\xfa\\xa7\\xcd\\x44\\x0a\\x8b\\x27\\x67\\x10\\x90\\x20\\x81\\xf4\\xdc\\x84\\x17\\x46\\x19\\xa6\\x6e\\xa3\\xa3\\x71\\xf9\\x55\\x05\\x40\\x0d\\x99\\xfa\\x99\\x90\\x17\\x71\\x0c\\x8e\\x27\\x14\\xbe\\x60\\x94\\x9d\\x46\\x13\\x10\\xf7\\xd4\\x3a\\x0d\\xc1\\x23\\x51\\x6d\\x77\\xd3\\x62\\x21\\x3f\\x9f\\x75\\xa5\\xa1\\xc3\\x93\\xaf\\xfc\\x49\\xea\\x15\\x1d\\x46\\xa8\\x1f\\xfa\\xd2\\x39\\xf2\\x8c\\x07\\xf6\\x5f\\x59\\xea\\x07\\x7d\\x9a\\x4d\\x9c\\x75\\x2d\\xe4\\x9b\\x9e\\xf3\\x6b\\xe6\\x0d\\x11\\x2d\\x79\\x5f\\x58\\x8b\\x00\\xef\\x6e\\x77\\x30\\xde\\xa6\\x5e\\x10\\x16\\xda\\x0d\\xd4\\x62\\x37\\x0e\\x0b\\xa5\\xc6\\x60\\x00\\x1e\\x45\\x7c\\x08\\xb4\\x36\\xda\\x29\\x03\\xb6\\x29\\x06\\x93\\x20\\x84\\x72\\x8c\\x81\\x67\\x1c\\xbf\\xb0\\x79\\xbb\\x29\"},\n{{0x27,0x2d,0x64,0xde,0x50,0xb1,0x31,0x2b,0xee,0x23,0xd7,0xf4,0xce,0xa5,0x08,0xa8,0xfc,0xcf,0x3e,0x9b,0x32,0x4e,0x97,0xb1,0xc8,0xe7,0x25,0x02,0xf6,0x1f,0xbf,0x45,},{0x33,0x49,0x8c,0x3b,0x71,0x2a,0xb9,0xc0,0x1e,0xc7,0x6b,0x2e,0xfe,0x2b,0x83,0xad,0xd1,0xe1,0xf2,0xb5,0xeb,0x78,0xf2,0x16,0x92,0x32,0x34,0x51,0x82,0x0c,0xbe,0x10,},{0x33,0x81,0x4c,0x6e,0xf3,0x75,0xab,0x96,0x37,0x69,0xb2,0xde,0x4a,0x25,0xe7,0x02,0x0f,0xcd,0x97,0xf7,0x8f,0x8f,0xc9,0x34,0x55,0xc4,0xb1,0xc2,0xbd,0x45,0xd4,0xb0,0x1e,0x19,0x29,0x00,0xe3,0x12,0x22,0x65,0xfc,0x55,0x2c,0xd5,0xc5,0xf0,0x0e,0x93,0x1e,0x3a,0x18,0x3c,0xca,0x5b,0xa0,0x80,0x2d,0xaf,0xde,0xbb,0x79,0xeb,0xeb,0x03,},\"\\xd6\\x26\\x0d\\x7e\\xec\\x5d\\x43\\x62\\x08\\xe7\\xe7\\x37\\x65\\x5e\\x09\\x71\\x81\\x42\\x70\\x19\\x44\\x05\\xe3\\x6e\\x39\\xf8\\xf1\\x7b\\x64\\x9f\\xbc\\x16\\xc0\\xf3\\xd7\\xf2\\xbe\\xf5\\xeb\\xc0\\x2b\\xb1\\xc4\\xdf\\x48\\xe8\\x47\\x0a\\x3e\\xae\\x8a\\x3c\\xca\\xf6\\x40\\xab\\xcc\\x09\\x4a\\xa9\\x11\\x50\\xff\\x1a\\x8c\\xf1\\x16\\x96\\x93\\xeb\\xf5\\xac\\x00\\x34\\xb9\\xb9\\x19\\xec\\xf1\\x7d\\xb7\\x91\\xdf\\xe5\\xfe\\xdc\\x90\\x91\\x8b\\x23\\xe5\\x4e\\x90\\x04\\xa1\\xae\\x77\\x1c\\x21\\x3e\\xd7\\xed\\x73\\x34\\x43\\x4e\\x5b\\xc0\\x2c\\x0d\\xda\\x2b\\xd1\\xa8\\x76\\xfb\\x82\\x4a\\x19\\x7b\\xc9\\x96\\x13\\xb1\\x40\\x9e\\x70\\x52\\x31\\x0b\\x08\\x20\\xda\\x71\\x44\\x69\\x29\\xae\\x7c\\xfd\\x3a\\xfb\\xa0\\x42\\xde\\x54\\x57\\x8a\\x5b\\xfd\\x94\\xc1\\x54\\x43\\x91\\xa3\\xd9\\xac\\xbd\\x56\\x63\\xef\\x65\\xc6\\x92\\x0d\\x78\\x51\\x6d\\xec\\x1c\\xd5\\x5f\\x6e\\xb7\\x29\\x0b\\xa0\\xaa\\xf9\\xa1\\x71\\x65\\x82\\x00\\xb2\\x4a\\x47\\xa0\\x71\\xb9\\x6f\\xea\\x03\\xc6\\xca\\x7e\\xd0\\xd6\\xfe\\x67\\x5d\\xd6\\x37\\x61\\x83\\x3d\\x75\\xbc\\x5e\\x58\\xa9\\x58\\x58\\x2d\\xb0\\x2a\\x60\\xc6\\xce\\x0a\\x63\\xf4\\x2b\\xa8\\x37\\xae\\x77\\xc1\\x7a\\x32\\x70\\x5f\\xd9\\xca\\xfa\\x58\\x7b\\x55\\x5d\\xd4\\x61\\x98\\x51\\x07\\x97\\x94\\xe2\\x4e\\xb4\\x46\\x08\\x83\\x5a\\x6f\\x48\\x24\\x92\\x0d\\x57\\x7a\\x27\\x03\\x96\\xc9\\x57\\x3b\\xc7\\xd8\\x2f\\xe2\\xaa\\x04\\x65\\x95\\x66\\x13\\xa2\\xc5\\x08\\xcf\\x24\\x32\\x33\\x7a\\x36\\x5e\\x6c\\x98\\x4c\\xba\\x91\\x7f\\x0c\\xf8\\x42\\xaf\\x12\\x2d\\xc8\\x9d\\xea\\x95\\x8d\\x41\\x8c\\xae\\x44\\xa6\\xe4\\xed\\x26\\x3a\\x41\\x5f\\xf9\\x94\\xa5\\xff\\xb2\\xff\\x13\\x91\\x3d\\xf2\\x14\\xbb\\xfe\\x90\\xa3\\x4b\\x24\\x7e\\x71\\xab\\x73\\xf7\\xff\\x00\\x4c\\x23\\xac\\xfd\\x90\\xc7\\x67\\x61\\x1a\\xa5\\x58\\x14\\xc6\\x69\\x64\\x16\\x8e\\x56\\x8b\\xa7\\x5b\\xf3\\x49\\x03\\x59\\x7c\\xdc\\xac\\x78\\xc2\\x4b\\xb9\\xf1\\x4f\\x5c\\x86\\xa5\\x1f\\x36\\x4f\\x9a\\xb4\\x1e\\x46\\x4a\\xee\\x64\\xfa\\x50\\xa1\\xc1\\x59\\xcb\\xd8\\x50\\x83\\x2c\\x50\\x4a\\xb4\\x2a\\x58\\x4a\\x96\\xd5\\xae\\xe0\\x82\\xd8\\x2c\\x1e\\xdd\\xa1\\x93\\x38\\x16\\x0b\\x8d\\xcf\\xa3\\x41\\x9b\\x3a\\xf6\\x4d\\x9c\\xfb\\x10\\x4f\\x98\\xf9\\xd3\\x5e\\x53\\x94\\xe2\\x32\\x28\\xe2\\x75\\xc8\\x7d\\xb5\\x0c\\xa8\\x67\\x54\\x0b\\x88\\x0c\\x7a\\xf2\\x9f\\xbf\\x53\\x42\\x94\\x58\\x1c\\x22\\x24\\x0b\\xcd\\x4d\\x7d\\x2c\\x20\\xff\\xc3\\x67\\x33\\xad\\xa2\\x76\\x53\\xd3\\xae\\x1a\\x8c\\x22\\x03\\xea\\xc6\\x26\\xe2\\xe9\\xbb\\x4b\\x52\\xce\\x52\\x3e\\x5a\\xdb\\x3b\\x2c\\x10\\xdc\\xf7\\x8c\\x2a\\x1e\\x62\\x6a\\x16\\xeb\\xfa\\x1b\\xdb\\x8c\\x16\\x14\\x93\\xa5\\xaa\\xa2\\xd8\\x4b\\xfa\\xa0\\xf2\\x02\\x7f\\xfe\\x4e\\x9e\\xae\\xb3\\x32\\xeb\\xda\\x7c\\xbb\\xb6\\x77\\x76\\x9d\\x78\\x51\\x7a\\xdf\\x72\\xf8\\x23\\xa7\\xf8\\x44\\x16\\x5a\\x07\\x98\\x78\\xd2\\x58\\xfd\\x95\\x22\\x5c\\x21\\x17\\x78\\x37\\xe6\\x9c\\x19\\x68\\x5a\\x05\\x1c\\xa9\\x2b\\x12\\x0b\\x7d\\x86\\xd7\\x85\\x95\\x47\\x1f\\xfc\\x42\\xa5\\xe6\\xe6\\x43\\x1b\\xe7\\xb6\\x4f\\x80\\x76\\x45\\x8b\\xac\\xd6\\xc7\\x29\\x03\\xcc\\x34\\xfc\\x63\\xa4\\x0c\\xf3\\xdf\\x00\\xef\\xf9\\xd6\\xee\\x9a\\x8f\\x39\\xd2\\x5e\\xad\\x81\\xa8\\x12\\x88\\x88\\xb0\\xa1\\xac\\x0e\\x5e\\x3a\\xd9\\x27\\x71\\x2c\\x14\\x14\\x6a\\xdf\\x82\\x87\\x70\\xff\\x95\\x87\\x09\\xeb\\x19\\x28\\x8e\\x77\\xbb\\x70\\x73\\x48\\x81\\xe9\\xe0\\x16\\xcd\\x29\\xe7\\xd0\\x89\\x93\\x41\\xff\\x6b\\x29\\x7a\\xc7\\x96\\xbb\\xde\\x48\\x6e\\xc3\\x59\\x49\\xf6\\xa3\\x2b\\x2c\\xa6\\x47\\x38\\x59\\x15\\xec\\xba\\x3b\\x9f\\x02\\x25\\x08\\x71\\x45\\xc1\\x8d\\x65\\x59\\xd3\\xa3\\x1d\\x6f\\x22\\xfc\\x49\\xf8\\xa6\\x31\\x5f\\x1d\\x32\\xab\\xee\\xb7\\xcf\\x2c\\x2c\\x77\\x6e\\xa7\\x35\\x0f\\xd5\\xeb\\xc0\\xe0\\xf2\\x65\\xba\\xcc\\xc2\\x69\\x7a\\x7c\\x8c\\xa4\\x0c\\x13\\x5f\\x6c\\xfc\\xb0\\xb5\\x8a\\x61\\x43\\x19\\x60\\xff\\xa9\\x06\\x57\\x09\\xa9\\x61\\xa6\\x33\\xd5\\x70\\xb7\\x3f\\xb4\\x49\\x1d\\xe5\\x2a\\xd0\\xd7\\xb2\\x04\\xb6\\xe9\\x97\\xb0\\x37\\xed\\xe3\\xf7\\xec\\xa8\\x20\\xa7\\xcd\\xb2\\xc6\\x9a\\xc2\\x91\\x48\\xbe\\x35\\x23\\x50\\x8a\\xe7\\xe4\\xc3\\xd1\\xa7\\x17\\xf5\\x5a\\x82\\x1d\\x14\\xc3\\xb6\\x4f\\x08\\xca\\x9a\\xe4\\x96\\x13\\xb1\\x15\\x77\\x3e\\xf6\\x18\\xd3\\x21\\xc9\\x08\\xbd\\x21\\x56\\x71\\x7a\\x43\\x4e\\x50\\x89\\xa5\\x94\\x8c\\x04\\x5c\\x8d\\xa8\\xa4\\xbd\\x86\\xed\\x5f\\xab\\xc6\\xb1\\x34\\x66\\xe6\\xde\\xda\\x58\\x32\\x07\\xd2\\xad\\xa2\\xb2\\xab\\x9c\\xb1\\x54\\x3d\\xf7\\xa3\\x73\\x4d\\xfb\\xc6\\xfc\\x42\\x81\\x06\\xd4\\x84\\x47\\x24\\xa1\\x3d\\xf4\\x2f\\xaa\\xb1\\x8c\\xa8\\x9d\\xb2\\x0a\\xc9\\xbc\\x27\\xb8\\x53\\x94\\x66\\x7c\\x5a\\x27\\x79\\xca\\x63\\xed\\x7a\\xc2\\xb7\\xc0\\xd4\\x12\\x23\\x91\\xee\\x46\\x02\\xd6\\x1e\\xa0\\x38\\x17\\x64\\xfb\\x72\\xdc\\xc2\\x24\\xe6\\x5e\\xae\\x2b\\xc4\\x50\\x6b\\x0f\\x09\\xe2\\x32\\x05\\xd0\\xbb\\x21\\xc7\\x7d\\x82\\x87\\xc1\\x65\\xe0\\xb4\\x2c\\x55\\x15\\x79\\x77\\x8a\\xcb\\x72\\x58\\xa2\\x47\\x9d\\x7c\\xf2\\x5b\\x90\\x2e\\x8d\\x0d\\xa4\\x29\\xbd\\xe3\\x6b\\x45\\x90\\xda\\xe9\\x6f\\x52\\x54\\x81\\xac\\x83\\x78\"},\n{{0x0c,0x9f,0xe5,0x59,0xad,0x1e,0xd3,0xba,0x16,0x4d,0xac,0xea,0xcb,0x02,0x35,0x67,0xb2,0x43,0x03,0x20,0xb6,0x71,0x5d,0xe7,0x32,0xa0,0x3c,0x59,0xc7,0x30,0x31,0x30,},{0xe7,0x0f,0xc4,0x66,0xfb,0x2a,0xcd,0x74,0xe0,0x99,0xc3,0x6e,0x2c,0x22,0xfa,0x51,0x29,0x0b,0xdd,0xe9,0x6d,0xf9,0xc3,0x1b,0x6d,0xfb,0xfd,0xc2,0xe2,0xc1,0x4a,0x40,},{0x6c,0xd8,0xae,0xd9,0x7d,0x9c,0x62,0xd5,0xfd,0xae,0x59,0x7d,0x06,0x1c,0x0c,0x2b,0xc3,0x7e,0x42,0xdf,0x06,0xb8,0x32,0x7a,0x46,0x8f,0x92,0xb3,0xf4,0x38,0xa1,0xe6,0xb6,0xb1,0xef,0x2b,0xe7,0x85,0x49,0xa2,0x89,0xfd,0x3f,0xc1,0xa6,0x29,0x9e,0x5a,0x33,0xd5,0x39,0x6c,0xb4,0xfa,0xc1,0xe8,0xe9,0x98,0x2f,0x0c,0xb3,0xd2,0x0d,0x07,},\"\\x26\\xeb\\xc6\\x48\\xcf\\x8c\\x79\\x65\\xec\\x6e\\xbe\\x96\\x5d\\x9c\\x79\\x2b\\xed\\x90\\x65\\x5a\\xd4\\x40\\x18\\x3c\\x6d\\x70\\xea\\x64\\x67\\xbb\\x8e\\x6f\\x04\\xec\\x84\\x3f\\x33\\x31\\x56\\x91\\x7b\\xf4\\xc5\\x1d\\x0e\\xd0\\xf2\\x8b\\x7c\\xd3\\x1b\\xc1\\x2c\\xf8\\x40\\x68\\x6b\\x82\\xb0\\xc2\\xc3\\x50\\xbb\\xda\\xc8\\x05\\x33\\x37\\x25\\xd6\\xb6\\x9c\\x2a\\xb7\\xf3\\x4e\\xe5\\x93\\xfa\\x1c\\xcc\\xed\\xf3\\xf0\\x64\\x2a\\x68\\x8f\\xcc\\x1c\\xd9\\x8b\\x09\\x87\\xd0\\x1f\\x71\\x3a\\x2f\\xa6\\x41\\x6c\\x96\\x19\\x21\\xde\\x0c\\xc2\\xc9\\xec\\x7a\\x55\\x58\\x55\\xe7\\xfc\\xd4\\xc7\\xdd\\xaa\\x14\\xfd\\x91\\xec\\xb0\\x42\\x24\\xe1\\x76\\x1b\\x7d\\x6b\\x35\\xf4\\xaa\\x56\\x18\\xa5\\x00\\xca\\x00\\xd1\\xca\\x24\\x51\\xb5\\xd3\\x68\\xaf\\xde\\x3a\\x40\\x7e\\x78\\x31\\x35\\xf3\\x90\\x19\\xa5\\xb9\\x84\\xe8\\x2a\\xc2\\x79\\xc0\\x5e\\x48\\xc2\\x95\\xeb\\xd1\\x56\\x38\\x21\\xa0\\x74\\x3c\\x52\\x24\\x6b\\x5d\\x2b\\x20\\x34\\xe3\\xae\\xb6\\xce\\x7c\\x5c\\xf9\\x19\\xe7\\x4a\\x9c\\x7b\\xbc\\x9e\\x25\\xda\\x30\\x43\\x0e\\xb1\\x6e\\xcf\\x38\\x37\\xeb\\x38\\xa0\\xf5\\x59\\x79\\x2a\\x72\\x98\\x90\\xba\\x83\\x10\\x26\\x0f\\x8a\\xeb\\x9b\\x5a\\xf0\\x0e\\xb6\\x33\\xc1\\x2d\\xee\\x02\\x26\\x28\\xba\\x41\\x8d\\x75\\xcf\\x18\\xde\\x2f\\x2e\\x65\\xe4\\x9b\\x1a\\x69\\x68\\x4d\\x61\\x27\\xef\\x48\\x1c\\xa8\\x61\\xec\\xbc\\xe3\\xbe\\x86\\x49\\x7e\\x65\\xdf\\x4c\\x5f\\xcd\\x08\\x17\\xc9\\x71\\x6b\\x59\\xf2\\xa2\\x63\\xd5\\xe9\\xeb\\x60\\x68\\x39\\xf8\\x5c\\x5a\\x36\\x58\\x37\\xb0\\xfb\\xe2\\xc4\\x27\\x4d\\x66\\xcb\\x2c\\x65\\xed\\x36\\x5f\\xab\\xf5\\x8f\\x15\\xbe\\x52\\xb5\\x1c\\xb6\\x01\\x18\\xca\\x4f\\x73\\x0d\\x44\\x73\\x59\\xf7\\xef\\x34\\x6b\\x75\\x02\\x17\\xd4\\x7b\\x2e\\x79\\xc8\\x6c\\x0c\\x62\\x81\\x6a\\x0c\\x7c\\x18\\xa2\\xce\\x2b\\x68\\x8e\\x0c\\xce\\x0d\\x75\\x23\\x21\\xe7\\x9b\\x42\\x38\\x57\\xda\\xc5\\x9f\\x8f\\xbe\\xb0\\x94\\x11\\xe7\\x16\\x69\\xef\\x9a\\x26\\x43\\xf2\\xe9\\x9f\\x38\\x7a\\xc1\\x83\\xe0\\xb0\\xac\\x72\\xc5\\x9a\\x0c\\x3c\\x18\\xc0\\xde\\x8b\\x01\\x08\\x78\\x07\\x4a\\xcc\\x1a\\x2b\\x39\\xf9\\xdf\\x99\\xd9\\xf8\\xf8\\xb5\\x2f\\xef\\xe4\\x94\\x3c\\x52\\x5f\\xd4\\xd0\\x6a\\xd8\\x78\\xe4\\x66\\x08\\xab\\xf2\\x7a\\x54\\xbc\\x50\\x06\\xf6\\x47\\xdb\\x72\\x48\\x51\\xdb\\x7c\\x45\\x78\\xae\\x66\\x58\\x3d\\xc4\\xbb\\x51\\x8e\\xf0\\x28\\x89\\x03\\x47\\xe8\\xfc\\xe0\\x92\\x7d\\x7d\\x9a\\xf3\\xab\\x5d\\x0d\\x2d\\x20\\x2a\\x40\\x26\\xaa\\x2e\\xa7\\x48\\x79\\x62\\x67\\x6a\\x60\\x32\\x98\\xe7\\xd2\\xe7\\xb9\\x09\\x21\\xee\\x1b\\x52\\x80\\x6d\\x71\\xa7\\x64\\xe0\\x3e\\x25\\xdd\\xd6\\x84\\x8f\\x61\\xd4\\x6f\\xad\\x3d\\x00\\x8e\\x10\\xee\\x5c\\xd5\\xa3\\x39\\x0f\\x9d\\x15\\x8a\\x44\\x37\\xef\\x61\\x5f\\xc9\\x0a\\xc5\\xbf\\x3a\\x9d\\x68\\x2e\\x12\\xc3\\x39\\x8a\\xc7\\x76\\x80\\xd2\\x2c\\xd1\\xa6\\xa5\\x6e\\xc3\\xb2\\x5c\\xed\\xe8\\x67\\xed\\xd3\\x83\\x15\\x9c\\x61\\x64\\xd6\\x3e\\x9c\\xd1\\xc9\\x56\\xac\\x72\\x35\\xff\\xfa\\xe9\\x36\\x16\\x6c\\xcd\\x35\\x89\\x8e\\x29\\xc9\\xb4\\xca\\x4e\\x29\\x25\\xda\\x32\\x3b\\x6f\\xbf\\x67\\xcf\\xd5\\x96\\xc8\\x8a\\x1a\\x35\\xa8\\x35\\x98\\x51\\xdd\\xcb\\xa8\\xf6\\x13\\x4a\\x9f\\xaa\\x24\\x4d\\xcb\\x47\\xe6\\x91\\x27\\x6e\\xe6\\x25\\xcc\\x20\\xad\\xce\\xc2\\x1c\\xbe\\x77\\xa3\\xac\\xb9\\xba\\x72\\xf0\\xc9\\xd3\\xda\\x7e\\x9c\\xd5\\xbe\\x3b\\x95\\x99\\x0b\\xa5\\x4a\\x9f\\x31\\xaf\\x17\\x1f\\x95\\xae\\xea\\xd3\\x33\\x1c\\xb1\\x88\\xa5\\xb2\\xc6\\xf5\\x39\\xac\\xb4\\x8b\\x98\\xb3\\xf7\\x34\\x1f\\x60\\x25\\x1c\\xb6\\x04\\x29\\xcc\\xd9\\xcf\\x32\\xf0\\x09\\x20\\x5f\\x27\\x53\\xfb\\xbb\\x26\\xaa\\x53\\x17\\x43\\x42\\xad\\x18\\x4d\\xab\\x68\\x70\\xc0\\xfb\\x52\\x93\\x01\\x19\\xd9\\xf9\\x7d\\x84\\x89\\xa6\\x00\\x76\\xaa\\xdb\\x2e\\x96\\x05\\x4a\\xc7\\xcb\\x7f\\x84\\xe1\\x3c\\x75\\xbb\\xf9\\xe4\\xd9\\x24\\xd2\\x27\\x2a\\xfe\\xf0\\x87\\x19\\x15\\xe2\\x43\\xce\\x66\\xfc\\x2a\\x88\\x88\\x51\\x35\\x35\\xb1\\x0b\\xb4\\x07\\x9c\\x80\\x6b\\xd9\\x49\\x28\\x1e\\x28\\x28\\x35\\x23\\xd0\\xd2\\x10\\xb3\\x1e\\xf6\\x2a\\x95\\xdc\\xae\\x0c\\xd2\\x52\\x90\\xc7\\xed\\xf2\\xc2\\x4b\\x43\\x28\\x22\\xde\\xbe\\x34\\x7f\\x1c\\xae\\x94\\x5f\\x57\\x28\\xc7\\x1b\\x54\\x03\\xef\\x14\\xe7\\x2c\\x3d\\x83\\x42\\xe1\\x98\\xb3\\x62\\xee\\x20\\xf8\\x09\\xe4\\x6a\\xca\\x01\\x5f\\x35\\x47\\x7f\\xf8\\x9a\\xc4\\xb3\\x7e\\x66\\x15\\x85\\x6f\\x7e\\xa2\\x51\\xfb\\xfe\\x13\\xf9\\x06\\x52\\x59\\xb0\\x94\\x6a\\xae\\xf2\\x49\\x43\\x27\\x0a\\x85\\x4d\\xe8\\x89\\x78\\x00\\x33\\xd6\\x3d\\xda\\x54\\x47\\x99\\x8a\\x3e\\xd7\\xe5\\x06\\xae\\xb5\\x1e\\xa3\\x7b\\x68\\x1a\\xc3\\x07\\x67\\x97\\xac\\xdb\\xfc\\xc2\\x78\\x83\\x63\\x0a\\xdb\\x72\\x26\\x0a\\x46\\xaf\\x0a\\x60\\xd5\\x3f\\x66\\x54\\x56\\x6e\\x20\\xd6\\x08\\x8c\\xd4\\x8e\\x23\\xb2\\x8d\\x81\\xf0\\xee\\xd2\\x05\\xb9\\x2a\\xaf\\xd9\\x61\\x64\\xd6\\xd3\\xca\\x3f\\xc8\\xb1\\x71\\x80\\x4e\\xe9\\xfc\\xe7\\xab\\xae\\xd2\\xea\\x4d\\xdf\\x9c\\xb2\\xb3\\xae\\x73\\xa7\\x0e\\xd6\\x3d\\xe4\\x5e\\x14\\x10\\x14\\x28\\xd0\\xa7\\xa2\\x26\\xdb\\x39\\xab\\x6c\\xd0\\x43\\x74\\x08\\x0e\\x69\\x83\\xf0\\x18\\xce\\x93\\xda\\x4c\\x89\\xac\"},\n{{0x15,0xd7,0x5a,0xd8,0xe4,0xaf,0xb1,0x26,0x34,0xcc,0x8e,0x60,0x0f,0x1a,0x42,0x67,0xef,0x95,0x84,0xf4,0xc4,0xac,0x44,0xff,0xfe,0x4b,0x9f,0xcb,0x88,0x5c,0x9d,0x2a,},{0x09,0xd1,0x26,0xf0,0x17,0xe0,0x16,0x97,0x74,0xe8,0xc3,0x7a,0xb3,0x79,0x26,0x3a,0x80,0x75,0x74,0x61,0x27,0xc2,0xd1,0x1e,0xcb,0x0e,0x4c,0xb4,0x54,0x70,0x9f,0xf1,},{0xa8,0xf2,0xf4,0xb9,0xe2,0x07,0x2c,0xa9,0xfa,0xde,0x37,0xfd,0xd6,0x2d,0x8d,0x02,0x42,0xfd,0x4d,0xaa,0x09,0xfd,0x85,0x6e,0x75,0xf4,0xe3,0x43,0xc7,0x26,0x0e,0xa6,0x77,0xf7,0x53,0xa6,0x27,0xae,0xd0,0x8c,0xb9,0x6c,0x44,0x4e,0x29,0xbd,0xb5,0xb5,0x38,0x5d,0x43,0x84,0x3b,0xbe,0x79,0xa3,0xdd,0xa3,0x6e,0x1e,0x11,0x01,0xc5,0x0f,},\"\\xd1\\xce\\xa2\\xb7\\xe9\\xaf\\xc1\\xf0\\xfa\\xb8\\x90\\xd2\\x70\\x0a\\x5a\\xe4\\x1e\\x15\\xe7\\xd3\\x4d\\x3b\\xf1\\x9d\\x0f\\x34\\xd9\\xf9\\xf0\\xab\\x98\\x12\\xdc\\x7c\\x2a\\x8d\\xc4\\x4c\\x8e\\xe7\\xf3\\x78\\x87\\x61\\xec\\xd9\\x88\\xee\\x72\\xc7\\x36\\xb6\\x2a\\x7c\\xac\\x3c\\xc9\\xb7\\x38\\xe9\\x38\\xdf\\x77\\x87\\x37\\x7e\\xb9\\xff\\xd1\\x20\\xd4\\xff\\x58\\xcf\\x1c\\x06\\x75\\x63\\x3f\\x7e\\x83\\xc4\\xb1\\x15\\x54\\x8f\\x14\\xd2\\xf7\\x0c\\x6d\\x48\\x22\\x11\\x44\\x3a\\x84\\x99\\x59\\x95\\x58\\xc1\\x42\\x77\\x98\\x0f\\xa4\\x2a\\x78\\x42\\x79\\x07\\xf7\\x3a\\x41\\xf5\\xf6\\x69\\x3b\\x2f\\x75\\xfe\\x5e\\x7a\\x6f\\xf0\\xa6\\xc3\\xa4\\xe2\\xed\\x1d\\x0d\\x96\\x8d\\x5c\\xc9\\xd6\\xf1\\x3d\\x41\\xc3\\xd2\\x91\\x39\\x6a\\xe7\\xe4\\x34\\xe6\\x64\\xb2\\xff\\x24\\x3e\\x7f\\x6d\\x88\\x01\\x02\\x10\\x07\\x8c\\x39\\xb5\\xa5\\x76\\xca\\xf4\\x09\\xbb\\x47\\x11\\xb3\\xee\\xfc\\x48\\x6b\\x67\\xb7\\xff\\xea\\xe0\\xcb\\xac\\x6a\\x0f\\xbd\\xf5\\x34\\x3f\\xb2\\xae\\x4e\\x05\\x7e\\xdc\\x8c\\x9d\\x2e\\xd3\\x1e\\xae\\x9e\\xc8\\x3d\\x2b\\xed\\xd2\\x19\\xeb\\x98\\x9b\\x2d\\x44\\x19\\x61\\x8c\\x2d\\x3c\\xe4\\x49\\x0e\\x35\\xfb\\xca\\xd4\\x32\\xb0\\x12\\x47\\x95\\xf9\\xc5\\xcb\\xdc\\x1e\\xb0\\xc3\\x07\\x2b\\x4a\\xa8\\x01\\xd2\\x6f\\xbc\\xc7\\xb0\\x7b\\x82\\x57\\xf5\\xfe\\x47\\xac\\xd9\\xbc\\x58\\x7b\\x56\\x57\\xcf\\x07\\xca\\x54\\x5b\\xb5\\x68\\xc9\\xe4\\xe7\\x3c\\xdd\\xf6\\x25\\x4e\\x22\\xf7\\x8a\\xb2\\xf8\\x06\\x45\\x19\\xf8\\xab\\xfd\\x16\\xfc\\xfa\\x90\\xf8\\x76\\x87\\xdb\\x0c\\x42\\x09\\xbe\\x2c\\x6c\\x79\\xa5\\x52\\x1f\\x44\\x18\\x96\\x78\\xd9\\x32\\xc5\\x45\\x85\\x70\\x0a\\x24\\x37\\x70\\x2e\\x56\\xaa\\xb5\\x88\\xa1\\x7c\\xb2\\xcc\\x94\\xc0\\x0e\\x87\\x57\\x0e\\xf3\\xac\\x51\\x33\\xd7\\x53\\x03\\x8a\\xa4\\x65\\x10\\xa2\\x60\\xc1\\xfe\\x80\\x47\\x9b\\xc0\\x2e\\xed\\x9a\\x8d\\x1d\\xe9\\x93\\x54\\xac\\x26\\x48\\xb4\\x8b\\x96\\xab\\x1b\\x80\\xcc\\xa6\\xca\\xe1\\x87\\x7f\\x37\\xd7\\x04\\x28\\xbb\\x50\\x85\\x0e\\x03\\x08\\xdb\\x0b\\x42\\x30\\x87\\xbf\\x7d\\xde\\x27\\x9e\\x09\\x67\\x66\\xf2\\xab\\x3a\\xb2\\x38\\x5b\\x04\\x64\\xa5\\xbe\\xd7\\xbb\\xd8\\xd4\\x57\\xe9\\x35\\xe2\\x00\\xaa\\xaa\\x8d\\x95\\x15\\x70\\xe0\\x53\\x07\\x6d\\xb1\\x8a\\x6a\\x62\\xf7\\x2b\\x31\\x95\\x79\\x88\\x4a\\x08\\x26\\xba\\x2b\\x43\\x63\\x71\\xdd\\x21\\x8b\\x01\\xa0\\xc5\\xe5\\x8d\\x0c\\xd5\\xff\\x98\\x25\\xe4\\x46\\x6f\\xe9\\x66\\xdf\\x05\\xcc\\x31\\xc8\\x03\\xe5\\x21\\x21\\x83\\xdd\\xf2\\x9c\\xef\\x7f\\xb9\\x16\\x48\\xa4\\xf8\\xee\\x19\\xfd\\x5f\\x8d\\xbd\\x8a\\x56\\xbe\\x7a\\xbf\\x33\\x65\\x9a\\x92\\x24\\xa1\\xe2\\x7a\\x10\\x24\\xef\\xfd\\xfb\\x88\\xe8\\x80\\x61\\x48\\xd0\\xd1\\x78\\x09\\x06\\xaf\\x1e\\xbe\\x3e\\x5f\\x14\\x36\\x31\\x90\\xd8\\x8c\\xc6\\xe5\\x08\\x94\\x44\\xf1\\x25\\xd0\\x63\\x15\\x5d\\xcf\\x86\\xca\\x92\\x63\\xf2\\xf5\\xf1\\x83\\xc2\\x69\\x74\\xfe\\x00\\x0b\\x93\\x42\\xd2\\x4c\\x78\\x1e\\x20\\x58\\x28\\x7c\\xb6\\xf3\\xf1\\xe3\\x27\\x0c\\x22\\xb7\\x70\\x7b\\x83\\x23\\xa5\\xcc\\x8d\\xb8\\x1a\\xa9\\x06\\xbb\\x59\\xd6\\x96\\xcb\\x97\\xcc\\x74\\xe3\\x59\\x59\\x5f\\xfb\\x83\\x73\\xca\\xd3\\x71\\x0e\\xa0\\x9e\\xa9\\x74\\x4c\\x20\\xe9\\xa1\\x2e\\x05\\xbe\\x5a\\x95\\xf0\\x85\\xac\\x56\\x16\\x78\\xd7\\xda\\x43\\x2e\\x4c\\x7c\\xb5\\x3e\\x12\\x71\\xdf\\x5c\\xd5\\xa3\\x39\\xd2\\xd7\\x52\\x0f\\x1c\\x18\\x48\\xd1\\x50\\x71\\xd8\\xc6\\x98\\x46\\xb2\\x3c\\x5d\\x24\\x32\\xc7\\x38\\x90\\xf2\\xed\\xed\\x37\\xc3\\xd2\\x96\\x4a\\x4b\\x5b\\x55\\x22\\x58\\x88\\xe8\\x92\\xf5\\x26\\xd1\\xca\\xc3\\x1e\\xac\\x35\\x6f\\x36\\x1c\\x2b\\xf3\\x36\\xc4\\x62\\xd6\\x0c\\x82\\xe8\\x2b\\x61\\x6f\\x2a\\x51\\x9c\\x2f\\x67\\xbf\\x01\\x29\\x03\\x69\\xbe\\x9b\\x55\\xe9\\xf5\\xc8\\xce\\xc4\\xf2\\xe1\\xb2\\xab\\x30\\x25\\x06\\xc9\\x03\\xdc\\x3e\\x7b\\x9c\\x97\\x81\\x41\\xdc\\x90\\x4b\\x01\\xb1\\xc2\\x3d\\x25\\x00\\x43\\x99\\xbf\\x8b\\x73\\xd6\\x9c\\xd5\\x39\\xc7\\x9a\\xf5\\xe9\\xa0\\xa5\\x11\\xec\\xa2\\x21\\x07\\x8a\\x1f\\xf7\\xb0\\xf6\\x04\\xae\\xa8\\x42\\x46\\xc3\\xcb\\x32\\xdb\\x93\\x81\\xbe\\x12\\x17\\x67\\xe0\\x97\\xbe\\xa5\\x17\\xbf\\xcd\\x82\\xdf\\xe9\\x21\\x37\\x98\\x40\\xef\\xb4\\xb6\\xf0\\x2a\\x48\\xec\\xda\\xf1\\x2d\\x2c\\xd3\\x89\\x30\\xd4\\x47\\x3a\\xdf\\x97\\xcd\\x71\\xdc\\x4e\\xa1\\x03\\x82\\xf4\\xf5\\xd1\\xdd\\x75\\x62\\xcd\\x4b\\xf5\\x11\\x59\\x32\\xf6\\xc4\\x70\\x0a\\xa8\\xfe\\x8d\\xec\\xa9\\xd5\\xe7\\x27\\x79\\x02\\xb8\\xf8\\x86\\x52\\x97\\x65\\xdb\\x24\\x86\\x07\\x4b\\x23\\xa1\\x9f\\xd4\\xb0\\x43\\x56\\xbf\\xa6\\x22\\x6c\\x82\\xba\\xf6\\x9a\\x08\\x7d\\x9c\\xa1\\x88\\x23\\xf8\\xe3\\xe6\\x83\\x08\\xe1\\x6b\\x80\\x4c\\x36\\x3d\\xf5\\xb6\\x30\\x7e\\x76\\x24\\x0d\\xb1\\xed\\x84\\x1b\\x61\\x2d\\x65\\x54\\x8d\\xdf\\xbe\\x83\\x67\\xda\\x60\\x77\\x2c\\x6a\\xff\\x55\\x4d\\xc8\\x5d\\x04\\x19\\x48\\x34\\x5e\\x56\\x7d\\xa9\\x33\\x31\\x51\\x85\\x8f\\xdf\\x69\\x93\\x27\\x39\\x25\\xbf\\xdc\\x71\\x81\\xb5\\xf6\\x46\\xd0\\x63\\xa8\\xc8\\xf3\\x10\\x56\\x9b\\x0e\\xd0\\x93\\xbd\\x9d\\xff\\x04\\xfe\\xbf\\x0b\\x41\\xc6\\xdc\\x55\\x16\\x9a\\x14\\xa3\\xc8\\x62\\xe5\\x41\\x6f\\x1e\\x58\\x2f\\xde\\xe8\\xfe\\x87\\xdc\"},\n{{0xbf,0x3c,0x0c,0xbb,0xbe,0x20,0xbe,0x2a,0xcf,0xaf,0xb2,0x7a,0x36,0x11,0xb4,0x89,0x21,0xa7,0x28,0xab,0x17,0x33,0x4b,0x8a,0xfd,0xee,0x83,0x05,0x17,0x8f,0x61,0x3b,},{0x45,0x00,0xa0,0x3c,0x3a,0x3f,0xc7,0x8a,0xc7,0x9d,0x0c,0x6e,0x03,0xdf,0xc2,0x7c,0xfc,0x36,0x16,0xa4,0x2e,0xd2,0xc8,0xc1,0x87,0x88,0x6d,0x4e,0x6e,0x0c,0x27,0xfd,},{0x8f,0x87,0x03,0xbc,0xf4,0xc0,0x32,0x94,0x17,0x33,0x9e,0xb0,0x26,0xf2,0xb7,0x2d,0x31,0x4d,0x92,0x2e,0x9a,0xcc,0xb5,0xd8,0xbb,0x7e,0xec,0x87,0xe0,0x7e,0x61,0x38,0x55,0x16,0x72,0xa6,0x13,0x2c,0xb4,0xf8,0x75,0x50,0x8e,0xd3,0x29,0x95,0x67,0xb4,0xa7,0x41,0x34,0xd2,0xbd,0xf0,0xd8,0x57,0xf9,0x80,0x86,0x1d,0x18,0xbe,0x7e,0x01,},\"\\x8f\\x30\\xba\\x2f\\x79\\x2e\\x9a\\x97\\xf6\\xea\\xfe\\x29\\xf9\\x76\\xa4\\x80\\x28\\xcb\\x88\\x57\\xb5\\xc7\\x98\\xbc\\x2b\\x61\\x68\\xc4\\x64\\x44\\xc0\\xce\\x69\\x60\\x70\\x37\\x4c\\x5e\\x6a\\x40\\xc3\\xd1\\x8a\\x5d\\xc7\\x66\\x9f\\xc4\\x1d\\xb9\\xa8\\x1c\\xff\\x75\\x9b\\x8c\\xa0\\x15\\x98\\x71\\xc3\\x44\\x2e\\x8c\\x75\\x12\\x69\\x8f\\xa4\\x47\\xb5\\x78\\x3e\\xe0\\x1d\\x1b\\x61\\x14\\x49\\xab\\xad\\x23\\x71\\x62\\x92\\x2b\\x02\\xd1\\xae\\xc5\\xde\\x1d\\x66\\x6f\\x17\\xda\\x16\\x13\\x10\\x63\\x01\\xd3\\x05\\x86\\xd1\\x16\\xe2\\xac\\x09\\x00\\x7d\\xd7\\x1e\\x81\\x23\\xed\\xe4\\xc5\\xa6\\xa9\\xac\\x07\\x7f\\xe3\\xd9\\x39\\x09\\xda\\x62\\x8e\\x86\\x58\\x70\\xa4\\xe2\\x5c\\xb3\\x55\\x91\\x67\\x5a\\x06\\x90\\xbe\\xc4\\xaf\\x02\\x81\\x71\\x4f\\xe6\\x66\\x1b\\xd5\\xc0\\x0a\\x27\\xd7\\x9f\\x95\\x9f\\xb4\\xd4\\xfb\\x16\\x36\\xa6\\xa3\\x57\\x5f\\x4f\\x01\\x47\\x06\\x63\\x89\\x9d\\x73\\x74\\x72\\xb0\\x96\\xbe\\x4d\\xb7\\x23\\x71\\x53\\x67\\xa4\\x1a\\x3a\\x4c\\x13\\xf7\\x42\\xd9\\x08\\xf4\\xd9\\x21\\xcf\\xdd\\x15\\x6e\\x75\\x86\\x82\\x61\\xba\\x9c\\x10\\xd8\\x58\\x74\\xca\\x2d\\x6c\\x0c\\x9e\\x72\\x95\\xe5\\x66\\x2b\\xd9\\x16\\xa3\\x63\\xc7\\xa7\\x96\\xea\\xd6\\x17\\xc4\\x25\\x1e\\x67\\x94\\xda\\x06\\xc3\\xd0\\x8f\\x2f\\xdc\\x38\\x86\\x94\\x4a\\x75\\x09\\xe6\\x40\\x9c\\x90\\x6b\\x59\\x31\\x13\\xb4\\xb1\\xf9\\x85\\x01\\x32\\x96\\x0d\\x9f\\x3a\\x4e\\xeb\\x73\\x86\\xfa\\x59\\x2f\\x61\\x93\\xbe\\xab\\x8e\\x0f\\xf0\\xf2\\x89\\x08\\xa0\\xd5\\x48\\xdb\\x87\\xba\\xe9\\x78\\xb0\\x5a\\xbb\\xca\\x9b\\x3e\\x96\\xd8\\x79\\x5b\\x88\\x07\\x7f\\x62\\x0f\\x21\\x24\\xe3\\x15\\x90\\xeb\\x09\\x9e\\x94\\xe0\\xe6\\xe3\\xcd\\x62\\x0a\\xe6\\x29\\x0f\\x3e\\x2d\\x01\\x46\\x7e\\x5b\\xef\\x4f\\xab\\xde\\xf7\\x9d\\x9a\\xb9\\x23\\x9e\\x75\\x3e\\xc4\\xfa\\x0b\\xb1\\x10\\xff\\x1d\\x39\\x3f\\xca\\x02\\x24\\x35\\x02\\xd7\\xe9\\x87\\x99\\x1e\\xb7\\x6d\\x08\\xf8\\xbe\\x7e\\xb2\\xb1\\xee\\x00\\xc3\\xb6\\x8b\\xbf\\x72\\xa6\\x23\\xba\\xa1\\x5b\\xe8\\x96\\xb3\\x21\\x5e\\xbe\\x8a\\x82\\x31\\x31\\x09\\xfc\\x62\\x9b\\x0c\\xce\\x64\\x91\\xf8\\x13\\xc2\\x49\\x70\\xe4\\xff\\xe6\\x86\\x9e\\x40\\xb4\\x6b\\x4e\\xd2\\x29\\x86\\xd0\\x04\\x21\\x55\\x27\\x6c\\x23\\x0d\\xe4\\xc0\\x5d\\x67\\x85\\x52\\xf2\\xe8\\x51\\xca\\xcf\\x5a\\x47\\x21\\x57\\xdb\\xb1\\xa9\\x9a\\x2b\\x42\\xff\\x40\\x37\\xf0\\xdc\\x63\\x80\\x67\\x29\\x21\\xc9\\x09\\x20\\x6e\\x80\\x05\\x0e\\x61\\xa6\\xb3\\x05\\x6b\\x17\\xe3\\xae\\x83\\x50\\x09\\xb2\\x04\\x19\\xa3\\xb9\\x84\\x6d\\x37\\x48\\x92\\xe7\\x19\\xf1\\xb3\\x5b\\xc1\\x25\\x7d\\xa9\\x3c\\xcc\\x6d\\x8f\\x8f\\xca\\xa8\\xe6\\x09\\xa8\\xd2\\x04\\xdf\\x10\\x8b\\xe7\\x19\\x34\\x67\\xe7\\xf1\\x05\\x93\\x52\\x82\\xc3\\xfe\\x66\\x70\\xa5\\x32\\x94\\x42\\xea\\x3e\\xdd\\xa2\\x37\\x6a\\x03\\xa1\\xcf\\xe8\\x72\\x3a\\x90\\x9c\\x06\\x4d\\x30\\xfe\\x9b\\xb0\\x21\\x2c\\x33\\xaf\\xe2\\xbe\\xa3\\x0c\\x91\\x43\\xc0\\x01\\xda\\x01\\xc7\\xed\\x50\\x45\\x59\\xb9\\x7f\\xe2\\xce\\xa0\\x9b\\xeb\\x9d\\xb5\\x19\\x00\\xdc\\x13\\x67\\x05\\x92\\x1e\\x20\\x29\\x78\\x45\\xba\\x72\\xa9\\x7a\\xa7\\xc9\\x53\\x81\\x45\\x71\\xbe\\x3f\\x08\\xce\\xf9\\x68\\x04\\x5a\\x5a\\xc3\\x40\\x04\\xf6\\x7f\\xbf\\xa5\\x4e\\x99\\x6b\\x31\\x1b\\xd8\\xdc\\x52\\x7d\\x89\\xe1\\xd4\\xf5\\x34\\x53\\xa6\\x71\\x37\\x20\\x10\\x1c\\x45\\xa6\\x0e\\xe3\\xa0\\x5c\\x2e\\xe6\\x6f\\x13\\x4b\\x5a\\xf4\\x0e\\x4b\\x70\\xef\\x37\\xba\\x3f\\x0a\\xfd\\xef\\xc0\\x39\\xf3\\x42\\xc2\\x8a\\xf9\\x19\\x82\\x51\\x38\\x1a\\x10\\x79\\xa5\\xdd\\x03\\x5a\\x8c\\x28\\x97\\x6c\\x6b\\x7f\\x4d\\xb0\\x9e\\xa3\\x83\\xa3\\xa8\\x7f\\x0f\\x85\\x1f\\xd3\\x31\\xae\\xa7\\xfa\\x4b\\xfc\\xd9\\x56\\x31\\xd6\\x52\\xfa\\x2f\\x50\\xf1\\xc2\\x3f\\xf2\\xbc\\x13\\x7a\\x06\\x04\\xe3\\xd9\\xf3\\x9c\\xcb\\x96\\x51\\x45\\xbc\\xa4\\x8b\\x06\\xdc\\x8a\\x81\\x75\\x47\\xb6\\x25\\xef\\xfa\\x79\\x6d\\x00\\x0c\\x37\\x74\\xba\\xd1\\x98\\xdb\\x12\\x41\\xbe\\x7a\\x2c\\x0d\\xc4\\xa4\\x64\\x1b\\x9a\\x8c\\xb9\\xcb\\x8c\\x8c\\x38\\x87\\x57\\x6f\\x52\\x72\\xc3\\x3a\\xaf\\xfe\\x45\\x61\\x5f\\x51\\xa9\\x6f\\xae\\x76\\xcf\\x51\\x25\\xbc\\x69\\xad\\x0a\\x40\\x38\\x79\\x07\\x99\\xb5\\xc2\\x62\\x44\\x21\\xa6\\x43\\x3d\\xba\\xb3\\x9c\\xcc\\xb0\\xb1\\x78\\x7b\\x5b\\xce\\x28\\x95\\x94\\x48\\x9d\\x17\\xed\\xb5\\xf9\\x31\\x03\\x74\\x80\\x7d\\x36\\xc6\\xe6\\x73\\x47\\x26\\xbb\\x33\\x00\\x4e\\xca\\xe8\\xbb\\x69\\x1d\\xcd\\x38\\x76\\x01\\xf4\\xea\\x91\\x1b\\x4b\\x90\\xeb\\xff\\x75\\x6d\\x7d\\x8d\\x9e\\xb4\\x22\\xcb\\xb9\\xaa\\xf7\\xf4\\x77\\x2e\\x0a\\x54\\x36\\x43\\x06\\x85\\xe5\\x7b\\x69\\x74\\x54\\xe8\\x2e\\xea\\xdc\\xe4\\xab\\xa0\\x62\\xb7\\x76\\x82\\xcf\\x21\\x9b\\xe1\\xfd\\x9b\\x00\\xf1\\xcb\\x11\\x35\\xa1\\x02\\x13\\x49\\x53\\x9a\\x4b\\x93\\xae\\x21\\x3f\\x19\\x3d\\x29\\x32\\x73\\x8e\\xf7\\x29\\x20\\x49\\x9b\\x7b\\xe2\\xa8\\x1c\\x9b\\xaa\\xed\\x17\\xc5\\x46\\x41\\xa5\\x97\\x4d\\x27\\x22\\x32\\x41\\xe3\\xc6\\xa0\\x95\\x22\\x6b\\xd2\\x37\\xe0\\x59\\x1e\\x00\\x2b\\x3a\\xf0\\x56\\x5d\\xf3\\xe9\\x76\\x42\\x0f\\x97\\x64\\xa0\\x9a\\xe8\\xbf\\xa2\\x79\\x5f\\x8f\\xad\\x7f\\xc6\\x87\\xbd\\x2d\\xe2\\x3d\\x14\\x88\\xf4\\x49\\xd8\"},\n{{0x28,0x7f,0xaf,0xd2,0x13,0x74,0x57,0x2f,0x57,0x81,0x00,0x47,0xd0,0xd9,0x8c,0xb1,0xff,0x3d,0x01,0x20,0xfa,0xa4,0x88,0x61,0x32,0x24,0x57,0x32,0xc1,0xa6,0xab,0x78,},{0xe8,0x25,0x20,0x63,0xf5,0xad,0x7e,0x95,0xbd,0x05,0xc5,0x02,0xa8,0xbc,0x4a,0x17,0x55,0x63,0x60,0x86,0x9b,0x9d,0xe0,0xa3,0xb8,0x58,0x93,0x8e,0x11,0x11,0x76,0x19,},{0x62,0x01,0xe3,0x05,0x91,0xd3,0x6b,0x7b,0x22,0x6e,0x36,0xfd,0xf5,0x64,0x34,0xc4,0x7c,0xd3,0x05,0x18,0x37,0xaf,0x31,0x31,0x3a,0x99,0x17,0xfd,0x02,0xdd,0xed,0x2b,0x5b,0xbb,0x4b,0xbc,0x36,0x8b,0x3b,0xd1,0x5d,0x06,0x20,0x45,0xf1,0x05,0xb6,0xe7,0x34,0x1b,0x15,0x15,0x0d,0x36,0xf9,0x00,0x87,0x59,0x1d,0x83,0x99,0x01,0xb8,0x01,},\"\\xb3\\xc4\\x43\\xe4\\xe5\\x89\\x9c\\x16\\xd3\\x9e\\x81\\xb4\\xf8\\x07\\x40\\x42\\xa9\\x04\\xa7\\x35\\x07\\x4b\\x27\\x95\\xd9\\xac\\x06\\xb1\\x37\\x9e\\xf7\\x61\\x8d\\x2a\\x53\\x4b\\x6b\\xef\\x81\\x56\\x9e\\x60\\x71\\x92\\x67\\xbf\\x29\\xcd\\x9d\\x16\\xac\\xc9\\xa1\\x74\\xd8\\x02\\x6b\\x14\\xb1\\x27\\xd0\\xd2\\xd8\\xb4\\x58\\x39\\x98\\x89\\x5a\\xd7\\xef\\x72\\xfe\\xdc\\x53\\xb8\\xf0\\x8a\\x22\\x50\\x10\\x0e\\x1f\\x1f\\x0a\\xab\\x48\\xbc\\x70\\x74\\x64\\x34\\x88\\xe6\\xb6\\x70\\xe1\\xb0\\x72\\x7c\\x38\\x5a\\x34\\xff\\x65\\xa0\\xd7\\xe8\\x3b\\xa8\\x60\\x83\\xb8\\x73\\xdf\\xf0\\x55\\x92\\x09\\xb1\\x4b\\x2a\\xc4\\x2b\\xf7\\xc5\\x72\\xd0\\xc5\\x91\\x7a\\xc4\\x2e\\x4a\\xe4\\xda\\xe1\\xdd\\x42\\x35\\x79\\x52\\x76\\xa0\\x76\\x13\\x2c\\xfe\\x3e\\x0c\\x35\\x0b\\x26\\x58\\x0f\\xbb\\x3a\\xf8\\x17\\x77\\xb9\\x3a\\xd9\\x5c\\xb7\\xff\\x17\\xc2\\xd9\\x80\\xce\\x0d\\x49\\x2f\\x6d\\x40\\xfa\\x90\\xba\\x3f\\xca\\xa2\\x1b\\xb6\\x87\\x35\\xee\\x1e\\xf2\\x08\\x49\\x5e\\xbf\\x7b\\x02\\x27\\x6f\\xfa\\x1e\\xfc\\x08\\x16\\x58\\xbb\\x44\\xcd\\x27\\x61\\xef\\x5e\\x3e\\x1c\\xa6\\x0e\\xc8\\xb5\\xd8\\x16\\xd4\\xab\\xac\\xd0\\xbc\\xc8\\x02\\x68\\xd8\\xf4\\xdf\\x8b\\x3a\\x52\\x04\\x9d\\xb0\\x15\\x7e\\x2b\\x6e\\x81\\xac\\xd6\\xf3\\xf2\\x89\\x47\\xc0\\x76\\x27\\x95\\x5c\\xda\\xc9\\xea\\xa1\\xde\\x17\\xd4\\xb9\\xda\\xa3\\x61\\xfb\\x49\\x78\\x26\\x64\\xd7\\xd6\\xd2\\xca\\x5c\\xec\\x6d\\x14\\x89\\x3c\\x3e\\x80\\xb6\\xd1\\x6d\\xaa\\xcf\\xfc\\xc0\\xb7\\x59\\x37\\xe8\\xbe\\xf6\\xf9\\xe1\\x12\\xa8\\x7f\\x4b\\x03\\x5f\\x90\\x36\\x07\\x0a\\x2c\\xcc\\x55\\xc2\\xaa\\xd9\\x39\\xdf\\x67\\x4f\\x7e\\x4e\\x12\\x68\\x5e\\x01\\x6e\\xa0\\xe4\\x90\\x2a\\xaa\\xaf\\xaf\\xfe\\x38\\xdd\\xb2\\xf9\\x0d\\x9c\\xf7\\x85\\x37\\xf6\\x13\\x91\\x69\\x6f\\xf0\\x33\\x0a\\xe8\\xf7\\x9a\\x1c\\x1e\\xd5\\xd5\\x2b\\x4e\\xe2\\xa6\\x2d\\x90\\xfb\\x82\\xd9\\xa4\\x83\\x93\\xfa\\x33\\x81\\x0b\\x40\\xd0\\x45\\x59\\x02\\xd5\\x74\\xff\\x05\\x20\\x03\\xe0\\x16\\x0c\\x0f\\x47\\xb5\\xe5\\x80\\xa0\\x78\\xbc\\xee\\xf0\\x60\\x73\\xdd\\xa8\\xb2\\xd1\\xf1\\x04\\xa5\\x95\\xe9\\x0b\\xb6\\xa4\\x8e\\xdd\\xd8\\x65\\xf1\\xca\\xe4\\xf1\\x78\\xfe\\x22\\xe7\\x5f\\x2f\\x61\\x24\\xa9\\xda\\x06\\x82\\x44\\x71\\x12\\xb3\\xdb\\x5b\\xe8\\xc4\\x24\\x72\\xb2\\x41\\xe9\\x44\\xfd\\x23\\x70\\xc2\\xdc\\x27\\x15\\xc0\\x5a\\x41\\xbd\\xbc\\x89\\x0c\\x41\\xc6\\x5f\\xb0\\x8c\\x2f\\x59\\x31\\x74\\x39\\x1a\\xc8\\x80\\xf3\\xcb\\x67\\xd1\\xb7\\x4f\\xf8\\x02\\xef\\x96\\x2a\\xfe\\xf7\\xb9\\xf3\\xea\\x32\\x6f\\x95\\x27\\xe7\\xfb\\xa6\\x98\\x18\\x79\\x24\\xb6\\x4c\\xcd\\xd0\\x86\\x62\\x48\\xc7\\x6e\\xe6\\x4c\\x79\\x06\\x9b\\xe0\\xa0\\x57\\xb1\\x0a\\xe1\\x90\\xf3\\x8f\\xf5\\xab\\xa8\\x44\\xe3\\x93\\x31\\xcf\\x1d\\xb1\\x3c\\x90\\x09\\x06\\xbe\\xe0\\xd7\\xe7\\x54\\x6e\\xf5\\x23\\x24\\xe3\\x7c\\x59\\x06\\x75\\xf1\\x39\\xf5\\x8f\\x57\\x3a\\x49\\x4f\\x4a\\xe8\\x2c\\x4e\\xc8\\x10\\x66\\xa6\\x8e\\x2d\\x92\\x90\\x01\\x91\\xc4\\x7d\\x30\\x62\\xf0\\xf9\\xaa\\xed\\x19\\x11\\x37\\xcd\\xa9\\xb8\\x3c\\xd1\\x30\\xe8\\x26\\x29\\x60\\xe6\\x24\\x4f\\x8f\\x6e\\xf3\\x9f\\x15\\xa4\\xfe\\xd1\\x3c\\xb6\\x69\\xed\\xc1\\x9f\\x5c\\xe1\\x62\\xce\\xb8\\xd2\\x42\\xb9\\xad\\xdb\\xfb\\xa8\\x77\\x2c\\xe7\\x49\\x85\\xa5\\xf3\\x72\\x0d\\x59\\x0a\\x92\\x0e\\x1d\\xca\\x75\\xa8\\x79\\xb1\\xaa\\x45\\x9f\\x74\\x62\\xff\\xf2\\xe9\\x50\\x72\\x76\\x1b\\x20\\x92\\x54\\xfe\\x38\\xc5\\x4d\\x83\\x3a\\x8e\\x2c\\xb8\\xfc\\x40\\xc5\\x98\\xf3\\xc7\\xf7\\xd6\\xc5\\x70\\x57\\x15\\xd0\\x30\\x8d\\xc3\\x0e\\xaa\\x84\\x67\\x6d\\x20\\x9d\\x7b\\x7b\\x31\\x34\\x47\\x56\\xe6\\x9a\\x9a\\x4c\\xb4\\xe4\\xa2\\x51\\x81\\x7a\\x37\\x86\\xfe\\xa6\\x72\\x8d\\xd6\\x08\\x22\\x33\\x6b\\x45\\xae\\x5d\\x47\\xc7\\x04\\xb4\\x5c\\x4c\\xad\\x38\\xc1\\xe0\\x1a\\xb9\\x3d\\x14\\x16\\x92\\xd5\\x5d\\x12\\xfd\\xb9\\x74\\x0f\\x1d\\x18\\x15\\x82\\xf1\\xc4\\x8c\\xe5\\x43\\x48\\x60\\xd9\\x30\\xf0\\xe7\\xe7\\x0e\\xdc\\xff\\xb8\\x55\\x60\\xa5\\x3d\\xba\\x95\\xd5\\x7b\\x31\\xe8\\x92\\x41\\x37\\xbc\\x2c\\x19\\xe3\\x4b\\xb9\\xc9\\x86\\x68\\x77\\x17\\x42\\x80\\xe8\\x0c\\x23\\x97\\x8d\\x57\\x79\\x58\\x64\\xa7\\x37\\x4a\\xef\\x38\\x3f\\x3b\\xf6\\x37\\x53\\x59\\xbf\\x63\\x56\\x47\\x40\\x09\\x84\\x61\\xa6\\xc7\\x6e\\x8f\\x23\\x89\\x13\\x28\\x87\\x69\\xa1\\xcb\\x1c\\x95\\xb2\\x2c\\x32\\xa9\\xeb\\xb3\\xec\\xeb\\x04\\x8e\\xe3\\x24\\xcf\\x0d\\x7e\\x85\\xa3\\x89\\xb0\\x4d\\xed\\xbb\\xcb\\xee\\xf2\\x98\\xd0\\x52\\x78\\x16\\x08\\x5c\\x0c\\x83\\xef\\xaa\\x29\\x85\\x46\\xe8\\x39\\x0b\\xd1\\xbf\\xe4\\x65\\xec\\x1b\\xaf\\xae\\x69\\xee\\x52\\x18\\xe7\\x2c\\xae\\xdb\\x9b\\x64\\x9c\\xf7\\x3e\\xec\\x45\\x4a\\x2b\\x48\\x49\\x65\\x17\\x96\\x72\\xde\\xbc\\xf9\\x44\\x13\\x63\\x99\\x5a\\x8a\\x90\\x7d\\xe1\\x7d\\xc0\\x68\\x4f\\x2a\\xea\\x57\\x9a\\x2f\\xb4\\x48\\x41\\x95\\xdb\\x41\\x15\\xca\\x32\\xe9\\x70\\x52\\x6d\\xc0\\x0a\\x5c\\xac\\xaf\\x58\\x87\\x11\\xdb\\xd4\\x69\\xce\\x80\\xbd\\x29\\x7c\\x4f\\x41\\xd6\\xfa\\x28\\xa5\\x97\\xc6\\x37\\x2c\\x0d\\x21\\x49\\x60\\xb5\\x45\\x98\\xcd\\x8b\\xc8\\x49\\xeb\\xdc\\xa3\\x6d\\x62\\x25\\xb2\\x0d\\xec\\x0d\\x03\\x11\\x69\\xce\\xbb\\x36\\xea\\xdc\\x3a\"},\n{{0x9a,0xd0,0x49,0x10,0x08,0x51,0xd0,0xf7,0x9b,0x71,0x12,0x25,0xc9,0x88,0x47,0x79,0x5a,0xcf,0xc3,0x60,0x1c,0x14,0xb8,0xa9,0x77,0x8d,0x62,0x70,0xcd,0x4c,0x05,0xed,},{0xe7,0xca,0xcf,0x4f,0x37,0x14,0x54,0x3c,0x27,0xa3,0xe9,0xed,0x83,0x3b,0xaf,0x3b,0xde,0x4c,0x09,0x56,0x3b,0xef,0x59,0xe7,0x63,0xfa,0xb7,0x1f,0xb5,0xe4,0xff,0x56,},{0xfe,0xc0,0xaf,0x34,0xcb,0xc5,0xcf,0xfc,0x56,0xe9,0x6d,0xd5,0xed,0x59,0x68,0xe5,0x2c,0xbd,0x42,0x69,0x84,0x4f,0xc3,0x0e,0x3a,0xb0,0xd3,0x47,0x2b,0x5d,0x18,0x0c,0x8d,0x1b,0x76,0x90,0x51,0x8f,0x41,0xf1,0x44,0x38,0xe7,0xf3,0xa8,0x3d,0x5e,0x89,0x76,0xcb,0x9a,0x26,0x15,0x1f,0xc4,0x14,0x9a,0x32,0x98,0xd7,0xe4,0x2c,0x05,0x03,},\"\\xc2\\x84\\xbd\\xd8\\xf8\\x27\\x5b\\x49\\xac\\x80\\x8c\\x39\\x04\\x5e\\x50\\xe1\\xed\\x50\\xc8\\xa1\\xaf\\xd0\\x11\\xaf\\xe5\\xdb\\x3d\\xda\\x62\\x0b\\xe8\\xae\\xc3\\x7f\\x45\\x60\\x57\\x62\\xe2\\x25\\xd0\\x41\\x11\\xf2\\x1b\\x49\\xfc\\xef\\xca\\x3f\\x3d\\x5f\\x81\\x3b\\x20\\x20\\xa5\\x2c\\x49\\xf9\\x5c\\x4a\\xd6\\x1c\\xa2\\x14\\x61\\x8a\\xde\\x7e\\xed\\x6c\\xd8\\xd3\\x14\\xdc\\x4c\\x63\\x55\\x95\\x52\\x77\\xd4\\x57\\x46\\x2f\\x03\\xb9\\xfb\\xa2\\xe2\\x25\\xb1\\xb5\\x37\\xcd\\x4b\\x52\\x37\\x50\\x5c\\x90\\xd4\\x32\\x05\\xe1\\x71\\x5c\\x39\\x63\\xcc\\xfb\\xec\\x37\\x9e\\x6c\\x17\\x05\\xe0\\x80\\x34\\xa3\\x1a\\xfc\\xe6\\x46\\x72\\x7e\\x78\\xa2\\x0e\\xed\\x88\\xae\\xb0\\xdc\\xda\\xbc\\x5c\\x86\\xe8\\x69\\x79\\xe6\\x3a\\x5c\\x26\\xc3\\xe2\\x17\\x79\\x73\\xb6\\x98\\x3c\\xeb\\xfe\\xda\\x9f\\x31\\x47\\x93\\x61\\xb6\\x61\\x76\\x3a\\xa7\\x26\\x1c\\x09\\x39\\xca\\xd4\\x8b\\x71\\x90\\x8e\\xa9\\x07\\x68\\xbb\\x6c\\x95\\x83\\xd8\\xea\\xeb\\x9e\\x03\\x38\\x51\\x5a\\xca\\x12\\x42\\x62\\x6d\\xc6\\xbe\\x04\\xec\\xc4\\x42\\x9e\\x4c\\xbb\\x4f\\xf3\\x36\\x09\\x61\\x92\\xf7\\x50\\x1e\\xc4\\x71\\xb5\\x96\\xa9\\x9d\\x4c\\x02\\x75\\x82\\xcc\\x69\\xe2\\x04\\xb6\\xfb\\xcd\\xdf\\x59\\xf5\\xbf\\x74\\x62\\xdd\\xcd\\x59\\x89\\x12\\x1f\\xd1\\x0f\\x11\\xa0\\x67\\x5b\\x6c\\x4e\\x4f\\x65\\x20\\xd2\\x7d\\x7c\\x61\\x43\\x1b\\xa7\\xd1\\x74\\xf5\\x73\\x95\\xa0\\xbf\\x72\\xd3\\x8c\\x11\\x42\\x73\\x6d\\xed\\x6b\\x91\\xe4\\x81\\x1c\\x0e\\x85\\x41\\xa6\\xc0\\xd9\\x96\\xc5\\xa1\\x7d\\xc9\\x7d\\xb3\\x88\\xf7\\x21\\xd2\\x35\\x7d\\x3c\\x6a\\xf5\\xc8\\x6b\\x1d\\x5e\\x47\\x6e\\xa0\\xac\\x0b\\x1c\\x11\\xd4\\x38\\x7f\\x76\\x90\\x39\\xbd\\xf5\\x38\\xa0\\x21\\x6e\\xdd\\x00\\x45\\xee\\x6d\\xd8\\x9e\\xef\\x82\\xa4\\x25\\xa8\\x3f\\xaa\\x1b\\x12\\x80\\x70\\x38\\xca\\x19\\xeb\\xec\\x00\\x2e\\x8b\\x3c\\x15\\x34\\x4c\\x61\\xcf\\xd1\\xe5\\xf0\\xe3\\xb0\\x27\\x3d\\xeb\\x37\\x27\\x8c\\xf1\\x97\\xd8\\xa8\\x3b\\x13\\xd9\\x92\\x30\\x8a\\x51\\x37\\x3e\\xb3\\x81\\x14\\xc9\\xe4\\x5b\\x43\\x87\\x80\\x27\\x7d\\x1e\\x32\\xf3\\x97\\x29\\x62\\xa3\\xe1\\x4a\\x8d\\x08\\xdb\\x9f\\x09\\xae\\xc3\\xdd\\x32\\xa5\\xb9\\x94\\x23\\xe6\\x1f\\x5e\\x79\\x94\\x4a\\xb5\\x7a\\x36\\xf6\\xec\\x07\\xcc\\x32\\x04\\xf9\\x16\\x5e\\xe0\\x21\\xad\\xa9\\x3e\\x6f\\xec\\xb7\\xec\\x45\\x6a\\xa0\\x28\\x8c\\x37\\x8a\\x75\\xaf\\xd6\\xe9\\xda\\xd6\\xc6\\xf8\\x8e\\x95\\x9a\\x2c\\xf2\\x8b\\xfe\\x56\\xd2\\xe6\\x1b\\x2a\\xda\\xec\\xf0\\xd8\\x6d\\xd8\\x92\\x8b\\xce\\xda\\x26\\xb0\\x54\\x02\\x46\\xb7\\x33\\x7f\\x5c\\xdc\\xec\\x11\\xfb\\x0c\\x1a\\x59\\xd6\\x31\\xfc\\xca\\x19\\x40\\x8f\\x95\\x22\\xb6\\x8a\\x39\\xf8\\x6e\\xf9\\x70\\xb8\\x83\\xa0\\xf0\\xbd\\x6b\\x7b\\x14\\x15\\xec\\x9a\\xa0\\x43\\xb5\\x2e\\x19\\xba\\xc1\\x76\\xd6\\x7b\\x79\\xe2\\xa5\\xdc\\xa8\\xbf\\xd2\\x91\\x02\\xac\\x60\\x8e\\x47\\x3e\\x9f\\x98\\x2c\\x3e\\xc8\\x93\\x2d\\x8a\\xa8\\xcd\\x56\\x52\\x84\\x49\\x1d\\xe5\\x2f\\x51\\x6b\\x9e\\xbf\\xb7\\xdb\\xe1\\x29\\x95\\x11\\xae\\x73\\x2c\\x2a\\xd1\\xee\\x49\\x92\\xb0\\x77\\xfa\\xff\\xc6\\x5f\\x48\\x8f\\x1b\\xa2\\x15\\xda\\x69\\x79\\x60\\x09\\x71\\x19\\x6d\\x0f\\xf3\\xa0\\x8a\\xd9\\xf0\\x0e\\x82\\x9c\\x1d\\xe1\\xaf\\xca\\x10\\xca\\x47\\x6b\\xe6\\x64\\xaa\\xd2\\x61\\x88\\x9b\\x0e\\xb7\\xae\\xb6\\xed\\x86\\x37\\x61\\x89\\x00\\xac\\xf4\\x81\\xe2\\xd2\\x24\\xec\\x64\\xa6\\xe6\\xcf\\x4f\\xa4\\xdf\\x73\\x1b\\x7a\\x4f\\xee\\xff\\x25\\x80\\xc9\\x9b\\x6d\\x75\\xb4\\xdc\\xd0\\x97\\x69\\x65\\xcb\\x2b\\x0b\\x56\\x35\\x22\\x78\\x42\\xd0\\x8a\\x7d\\x90\\x7a\\xae\\xbc\\x2f\\xde\\xd8\\x00\\x98\\x11\\xdc\\xdd\\x73\\x35\\x49\\x21\\x75\\x3b\\xc5\\xde\\xc0\\x17\\x68\\x93\\x35\\xf5\\x6d\\x0f\\xb7\\xae\\x21\\x3b\\x41\\x79\\x2b\\x1f\\x4e\\xb1\\x4a\\x24\\x53\\x59\\x77\\xa3\\x05\\xb1\\x9e\\xb9\\x83\\x8d\\xc6\\xb5\\x15\\x28\\xb9\\x8a\\x39\\xbd\\xa0\\x60\\x10\\x71\\x7a\\x20\\x8c\\x34\\x7a\\xa1\\x58\\xee\\xcd\\xfd\\x9a\\x04\\x72\\xd3\\xb8\\xd9\\x20\\xf9\\x69\\xe1\\x2b\\x65\\x91\\x9b\\xda\\x38\\xb4\\x61\\x94\\x98\\x50\\xcc\\x9c\\xc1\\x8d\\x8e\\x3b\\xaa\\x8c\\x88\\x6d\\x93\\xcd\\x09\\x6a\\x20\\x9d\\x54\\x3c\\xa3\\x37\\x5f\\xc4\\xe7\\xd6\\x51\\x03\\xcb\\x64\\x24\\xbe\\xab\\x44\\xe8\\xbc\\x4a\\x5b\\x62\\xc2\\x9a\\x01\\xbc\\xf4\\x4d\\xcc\\x61\\xe7\\x67\\x5c\\x02\\x5d\\xec\\x07\\x24\\x20\\x01\\x94\\xbd\\xe7\\x4d\\x72\\xc0\\x2e\\x94\\xa9\\x46\\xa7\\x52\\xf3\\x60\\x84\\x57\\xfd\\x91\\xf2\\x92\\x71\\x57\\x71\\x48\\x7d\\x26\\xca\\xd4\\xe5\\xcf\\x6e\\xf7\\xc6\\xf7\\x16\\x27\\xa4\\xda\\xf8\\xa4\\xc9\\xb8\\x91\\xc1\\xee\\x8f\\x04\\xae\\xaa\\x99\\xfe\\x0c\\x8b\\x4e\\x83\\x3b\\x76\\x09\\x06\\x6b\\x61\\x32\\xa9\\x68\\x89\\x0e\\x26\\x95\\xda\\x22\\xb2\\xd8\\x57\\xc8\\xc0\\xad\\x91\\x87\\xc9\\x60\\x69\\xe4\\x76\\xe2\\x7e\\x46\\x32\\xc4\\x47\\xee\\x76\\x71\\x4a\\x31\\xd1\\xe5\\x14\\x9e\\xcb\\x33\\x7e\\xe1\\x32\\xf3\\x55\\x2d\\xa3\\x3a\\xb2\\xd6\\xfa\\x9d\\x7e\\x93\\xf6\\x8a\\x77\\xcb\\xf1\\x91\\xcb\\x06\\xbc\\x22\\xf3\\x47\\x0a\\xf6\\xd7\\x58\\x1e\\x3a\\xcc\\xbe\\xca\\x0b\\x6f\\xeb\\x08\\xa1\\x4b\\x9a\\x80\\xc1\\xef\\x59\\x37\\x4c\\xcd\\xc0\\x52\\x3c\\x36\\x84\\x50\\x4c\\x01\\x04\\xbb\\xa2\\x2c\\x10\"},\n{{0xde,0x54,0xe1,0x3f,0x9e,0x2c,0xc7,0x54,0x54,0x6c,0x99,0xb3,0x3b,0x3d,0x72,0xf4,0xd1,0xf7,0x71,0x50,0x38,0xa9,0x65,0x9f,0x33,0x63,0x65,0x77,0xbb,0x52,0x6a,0xdb,},{0x36,0x33,0x8d,0xb3,0x32,0x6b,0x00,0x5e,0x5c,0x61,0xff,0x78,0x2b,0xe2,0xea,0xb1,0x66,0xd4,0xeb,0x72,0x34,0xa9,0x8e,0xa1,0xcd,0x85,0x5e,0x1a,0xd5,0x35,0xe9,0x4c,},{0x37,0xac,0xa8,0xf2,0x48,0x39,0x4a,0x9e,0x04,0xd0,0x6a,0x7d,0xa8,0x4a,0x7d,0xef,0xa3,0x9d,0xe4,0xda,0x2b,0xcb,0x18,0xd5,0xf6,0x4c,0xc3,0x4d,0xb0,0x86,0x51,0xaf,0x4a,0xbb,0x19,0xfa,0x2a,0x92,0xa7,0xdd,0xa5,0x6e,0xc9,0x93,0x0b,0x81,0xae,0xbd,0x23,0x99,0x05,0x11,0xf6,0x84,0xc6,0xd1,0x5b,0xa5,0x95,0xf7,0xd4,0xa2,0x74,0x0e,},\"\\xdc\\x40\\x41\\xad\\x61\\x42\\x3a\\x12\\xa0\\x41\\x13\\x18\\xa6\\xe6\\x2a\\x5e\\xf6\\x4a\\x19\\xab\\xe2\\xd9\\x85\\x22\\x97\\xbe\\x2d\\x4a\\x35\\xeb\\x86\\x70\\xca\\x36\\xc5\\x21\\x53\\x1b\\x30\\x38\\xac\\xda\\xee\\xa2\\xea\\x01\\xa0\\xb6\\x18\\x78\\x62\\xa4\\xe1\\xa8\\x9d\\x4b\\x81\\xc5\\x31\\x8e\\xd4\\xd6\\x71\\x31\\xbc\\x38\\xf8\\x41\\xa1\\x42\\xa2\\xf6\\xf3\\x16\\xdf\\xf0\\x76\\x93\\x9d\\xc0\\xeb\\x81\\xb2\\x30\\xfe\\xa9\\x88\\x1f\\x8f\\x0f\\xf7\\xed\\x0b\\x29\\x3f\\x69\\xb2\\x89\\xfe\\x77\\x08\\x81\\xfb\\x37\\x10\\x80\\x8e\\x8e\\x59\\xe6\\x4e\\x19\\x0c\\x1e\\x37\\x9b\\x9d\\xd3\\x48\\xb0\\x2c\\x23\\x47\\xd7\\xe2\\x06\\x96\\x79\\x0b\\x62\\x77\\x6a\\x2e\\x82\\x5b\\xed\\x69\\x17\\x03\\x7c\\xb6\\x35\\xc9\\x2f\\xbc\\x76\\xb4\\xc5\\x85\\x10\\x27\\xe7\\xf1\\x38\\x52\\xee\\x7e\\x7c\\x52\\x57\\x3a\\x90\\x30\\xb7\\x9f\\x22\\xb6\\x0d\\x58\\x69\\xef\\xe6\\x80\\xc0\\x16\\x64\\x92\\x9f\\xe9\\xa0\\x6f\\xa3\\x33\\x05\\x2b\\xe1\\xd6\\xaf\\x3a\\x0b\\x48\\x2c\\x33\\x2e\\x18\\x05\\x1e\\x78\\xb3\\x33\\x83\\x9d\\x6c\\xb9\\x3d\\x93\\xeb\\xfb\\x27\\x7e\\x42\\x68\\xfb\\xee\\xee\\xba\\x1e\\x8f\\x96\\xa5\\xc9\\xe3\\x28\\xc4\\x26\\x72\\x12\\xca\\xc2\\x51\\x21\\x5b\\xfa\\xa7\\x8f\\xd8\\x8a\\x87\\x41\\x7a\\x80\\x60\\x2d\\xcd\\x88\\x28\\xe8\\x04\\x00\\xda\\x30\\x4e\\x98\\x98\\x62\\xd1\\x32\\x01\\x08\\x2d\\xe3\\x53\\x09\\x25\\xe0\\xed\\xc2\\xc1\\x30\\xa9\\xa4\\x19\\x07\\x1b\\x31\\x08\\x8d\\xa6\\xf6\\xff\\x40\\x56\\x30\\x1c\\x12\\x9f\\xc2\\x13\\x52\\x33\\x62\\x8d\\x16\\xd8\\xbf\\x16\\x0f\\x6c\\xe8\\x6d\\x83\\xcd\\x4e\\x29\\xae\\x0c\\x73\\x84\\x3d\\x70\\xb5\\x30\\x56\\xc5\\xaf\\x3f\\x3d\\xc5\\x61\\x27\\x1c\\xb5\\xaf\\xf3\\x93\\xf0\\x80\\x3a\\xde\\x07\\x2d\\x9c\\xeb\\x74\\x5b\\x61\\x87\\xb2\\x8d\\x24\\x69\\x67\\x67\\xd5\\xc2\\x1f\\x4d\\x4a\\xc5\\x8d\\x5b\\xb6\\x6c\\x5c\\xad\\xfe\\xfb\\x16\\x26\\xef\\x93\\xf7\\x14\\xc7\\x82\\xb6\\xef\\x3c\\xcf\\x4b\\x44\\xee\\x75\\xf0\\xbb\\x75\\x7a\\x25\\xd9\\xb4\\x6a\\x9d\\x93\\x1a\\x03\\x72\\x7d\\x49\\x6a\\x22\\x81\\x0c\\x63\\x4f\\x5c\\x1a\\xe6\\x0c\\xbd\\xf2\\xf1\\xea\\x29\\xb5\\x46\\x07\\xcf\\xf5\\x0d\\x9f\\x8e\\x03\\xa0\\xa4\\x51\\x3c\\xf6\\x8d\\xfb\\x61\\x97\\x73\\x41\\x1b\\x61\\x80\\x95\\x9a\\x8a\\xac\\x30\\xb2\\xee\\xe4\\xad\\x32\\x79\\x15\\xf6\\x0a\\xe5\\x2b\\x90\\xe0\\x4a\\x9b\\xce\\xf8\\xdc\\x67\\xe7\\x1e\\xa1\\x0a\\xca\\x55\\x3d\\xb9\\x89\\x5c\\xd8\\x00\\x84\\x57\\xd7\\x6f\\x02\\xce\\xb5\\x35\\x00\\x21\\x11\\x09\\xe8\\x96\\x03\\xf3\\x04\\xd8\\x80\\xaa\\xf0\\x28\\x61\\xfe\\x37\\xc9\\x53\\x4a\\x9d\\x67\\x2d\\x83\\x71\\x3c\\xd3\\x26\\xc9\\xab\\x81\\xc3\\x53\\x76\\x4c\\xa5\\xad\\x5a\\xc0\\xe7\\xf1\\xff\\x88\\x0f\\xb4\\x8a\\xcd\\x9c\\xbb\\x94\\x90\\x64\\xe2\\x11\\x83\\xbc\\x38\\xfb\\x1d\\x90\\xcf\\xe6\\x19\\xa8\\xb8\\xfb\\xf5\\x32\\x18\\x89\\xbb\\x15\\xc0\\x2a\\x53\\xe4\\xd3\\x67\\xfc\\x66\\x88\\x77\\xb6\\x62\\x28\\x1c\\x4a\\x2a\\xf6\\x78\\xf8\\x6e\\x69\\x1d\\xaa\\x8a\\xfd\\xca\\xc1\\xb8\\x20\\x18\\x9f\\xe5\\xc2\\x50\\x8c\\xe3\\x6e\\xdd\\x9c\\x6f\\x8f\\x51\\x57\\x50\\x71\\x83\\x94\\x39\\xa0\\x03\\x35\\x2c\\x15\\x73\\xe1\\x27\\x68\\xdd\\x6d\\xeb\\xdf\\x1e\\xd4\\xf9\\x4a\\xc7\\x9d\\xf1\\xab\\x6a\\x0b\\xc2\\x50\\x79\\xc0\\x93\\x54\\x77\\xd9\\x14\\x99\\x88\\xec\\x3b\\x87\\x93\\xef\\xcd\\xa8\\x59\\xac\\xc3\\x92\\xab\\x3f\\xa9\\x94\\x93\\xd7\\xae\\x0a\\x65\\x75\\xb6\\x95\\xa1\\xce\\x07\\x65\\x32\\x86\\x02\\x87\\xdd\\x49\\x89\\x67\\xc4\\x6f\\x7a\\xdd\\x49\\x49\\x4c\\x02\\xe7\\x44\\xc4\\x02\\x80\\x19\\x57\\x82\\xe2\\x42\\x44\\x76\\x16\\x5e\\x72\\xce\\xe2\\x36\\x42\\xe5\\x1c\\xec\\x43\\x21\\x91\\x11\\x6a\\xec\\x59\\xb5\\x9f\\xcf\\x0a\\x36\\x83\\xb9\\x5f\\x76\\x07\\x60\\xa2\\x0b\\xd6\\x74\\x54\\xd8\\xde\\x64\\x7c\\x0f\\x9f\\xfc\\x4f\\x90\\xf6\\xe4\\x5a\\xc9\\x3d\\x80\\x2f\\x33\\x82\\x99\\xef\\x28\\x0d\\x3b\\xb7\\xa4\\xa8\\x9d\\xb8\\xc5\\x9a\\x12\\x52\\x6f\\x27\\x83\\x02\\x4c\\x8a\\xde\\x90\\x02\\xf0\\x0e\\x3d\\x52\\x9b\\x78\\xdc\\xdd\\x49\\x03\\xda\\xf5\\x76\\x7a\\x2b\\xed\\x75\\x14\\x53\\x96\\xef\\xb6\\x97\\x90\\x71\\x2d\\xe6\\xa5\\x90\\x1e\\x6d\\x8c\\x15\\x28\\x01\\x82\\x38\\x82\\x85\\x02\\x1d\\x0e\\x70\\x92\\x92\\x15\\xd9\\xf2\\xb7\\x99\\xbb\\x92\\xf2\\xca\\x56\\xf4\\x8e\\x8c\\xbb\\xa2\\xf1\\x9b\\x08\\x58\\x45\\x12\\x65\\x67\\xcf\\xaf\\xa6\\x03\\xc2\\x94\\x6e\\xa1\\xe7\\xd2\\x74\\x55\\x4a\\x38\\xbf\\x7d\\x86\\x51\\x1f\\x3e\\x47\\x4f\\x9f\\xa5\\xcb\\x11\\x10\\x5f\\xb5\\x2f\\xc6\\x81\\x77\\xf3\\x38\\x5f\\xe1\\x39\\x7b\\xe5\\x84\\xa7\\x00\\x89\\xdc\\x74\\x1b\\x4b\\x00\\x95\\xbf\\x7e\\xb2\\x99\\x3b\\x41\\x8d\\xf8\\x7b\\x14\\xa1\\xf9\\x79\\x26\\xe8\\x68\\xdf\\x6e\\x56\\x8b\\xec\\xa2\\x21\\x5f\\x2d\\xd7\\xce\\x8a\\x3c\\x9e\\xe8\\x49\\xcb\\x41\\x34\\x6c\\x68\\x4f\\x7f\\xfe\\xf0\\xa7\\x92\\xed\\xf4\\x33\\xca\\x99\\xef\\x34\\xc7\\x3f\\x92\\x72\\xa7\\xeb\\x97\\x58\\x7c\\x8f\\xce\\x4a\\x51\\x36\\x44\\x47\\x37\\x13\\x8d\\x53\\xea\\xdf\\x3a\\x84\\xf5\\x01\\xbb\\x10\\x45\\x6e\\x8e\\x4a\\x40\\x47\\x08\\x2c\\x9e\\x14\\x35\\xf5\\x76\\x52\\x6c\\x21\\x64\\x71\\x4d\\x70\\xb3\\xd0\\xa6\\xe9\\xc0\\x8a\\x53\\xe3\\x23\\x84\\x0f\\x4d\\xcf\\xe8\\xf2\\xd1\\x9f\\x0b\\xe2\\xc8\\x8e\"},\n{{0x85,0x04,0xfb,0xca,0xab,0xa6,0x76,0x83,0xf8,0x15,0x49,0x92,0x82,0xb6,0xeb,0xd4,0x97,0xa8,0x1a,0x91,0x56,0xf5,0x3e,0x02,0x5c,0x2d,0x3e,0xce,0xe0,0xdb,0x65,0x59,},{0xe6,0x2d,0xa8,0x64,0x93,0xa0,0xca,0xf5,0x29,0x21,0xd5,0x60,0x2f,0xbd,0xc3,0xdd,0x3a,0x84,0x36,0x94,0x1f,0x6b,0xe2,0x40,0xb3,0x15,0x09,0x68,0x12,0x38,0x74,0x6d,},{0xc0,0xea,0x07,0x4b,0xf9,0xad,0xde,0xe2,0xe3,0x35,0x0a,0x96,0x9e,0x7c,0x56,0x9e,0x3a,0xea,0x1a,0x41,0x88,0xee,0x5a,0xf3,0x4c,0xb7,0x3f,0x38,0x82,0x98,0x65,0x3d,0x29,0x9b,0x5d,0xbd,0x94,0x16,0x3f,0xba,0x20,0x9e,0x8f,0x7d,0xc2,0xe2,0x63,0x4d,0x3a,0x52,0xa0,0x28,0x10,0xa8,0x8c,0x61,0x52,0x94,0x5b,0xc1,0x6b,0xbd,0xfb,0x0c,},\"\\x6c\\x63\\xed\\xbd\\x40\\xa0\\x38\\x74\\xec\\xae\\xf8\\x16\\x02\\xcd\\x68\\x50\\xc0\\x9f\\x49\\x15\\xb7\\xaa\\xf4\\x18\\x25\\x8c\\x56\\x83\\x64\\x53\\x8e\\x83\\x92\\xa8\\xc3\\x79\\x83\\x8b\\x0c\\x95\\x34\\x5b\\xf6\\x4c\\x3d\\xbc\\x17\\x58\\x53\\xfb\\x64\\x1f\\x35\\x0f\\x0b\\x53\\xa0\\x5a\\x8e\\xc2\\x90\\x28\\x8c\\x03\\x26\\xd4\\x35\\xff\\x77\\x6f\\x86\\x83\\xa2\\x73\\x33\\x3f\\x9b\\xb2\\x80\\x21\\x84\\xec\\xc5\\x3b\\x06\\xb2\\x8c\\x2c\\x40\\x2a\\x54\\xbf\\x13\\x4c\\x1a\\x23\\x29\\x97\\x49\\xa6\\xce\\x2b\\x51\\xa7\\xba\\x22\\x23\\x21\\x48\\x79\\x7e\\x99\\x3f\\xf2\\x58\\x28\\x6e\\x94\\x77\\x78\\xa8\\x74\\x2d\\x3f\\x36\\xcc\\x78\\x42\\x97\\x60\\x43\\xfc\\x23\\xda\\x8a\\x97\\xec\\xb9\\x71\\x5f\\xc0\\x5f\\xb0\\xf2\\x3f\\xa7\\x32\\x1d\\xdc\\x19\\x32\\x86\\x16\\x31\\x60\\x4e\\xba\\x2e\\xf2\\x5d\\x8b\\x75\\x6c\\xe4\\x73\\x36\\x56\\xbf\\xd1\\xe1\\x47\\x08\\x92\\x3a\\xc7\\xc6\\x0a\\x79\\x84\\x61\\x36\\xd7\\x41\\x97\\x3b\\xa5\\x51\\x41\\x89\\x72\\x0b\\xc0\\xf7\\x77\\x4b\\x7b\\xd3\\x57\\x45\\x95\\xbd\\xe2\\x51\\x50\\x31\\xb2\\x5b\\x62\\x65\\x4b\\x16\\x10\\x35\\x77\\x80\\x70\\xac\\xe1\\x49\\x71\\xdf\\x1f\\xe0\\xbe\\x4e\\xa1\\xef\\x55\\xcf\\x87\\x47\\xd3\\x71\\x6c\\x1c\\xe7\\x07\\xb1\\xa7\\xc8\\x52\\x0e\\x6d\\xeb\\x33\\x4e\\xb1\\x86\\x33\\x8f\\xc9\\x30\\x00\\x76\\x8e\\xb2\\xbe\\x40\\xc6\\xe0\\xdc\\x3f\\x5d\\xf8\\x31\\xb3\\x2c\\x3a\\x2c\\x33\\xe2\\x88\\x98\\xd6\\x76\\x2a\\x15\\x22\\xd3\\xd4\\x8d\\xae\\xe5\\x6a\\x02\\x69\\xbd\\xdf\\x6c\\xfc\\x9d\\x73\\xf8\\xd1\\x78\\xae\\xcc\\xbf\\xfe\\xf7\\xce\\x16\\x4f\\x98\\xaf\\xea\\x22\\x4a\\x9b\\x60\\xed\\xe4\\x6a\\x95\\xfa\\xdc\\x9f\\xc5\\xd9\\x4d\\x20\\x9c\\x16\\x6d\\x9b\\x8d\\xe2\\x53\\x38\\x1e\\xa2\\x24\\x88\\x62\\x94\\x6b\\x9c\\xf5\\x34\\x94\\x74\\x55\\xc2\\x44\\x58\\xcf\\x56\\x68\\x3a\\x0e\\xc4\\x7a\\x2c\\x65\\x07\\x5c\\x69\\x4c\\x7c\\x3d\\x6a\\xdf\\x9a\\xe5\\xe8\\xad\\x31\\xac\\x76\\x9f\\x83\\xaa\\x26\\xe3\\x12\\xc5\\xb0\\x1a\\x9a\\x09\\x40\\x4b\\x15\\xb8\\x14\\xba\\xa7\\x66\\x6b\\x3e\\x03\\xf0\\x6a\\x8d\\x63\\x48\\xab\\x8c\\xcb\\x9b\\x60\\xa4\\xa4\\xfa\\xf8\\x6f\\x71\\x35\\xdf\\x03\\x9d\\x95\\x5c\\x07\\xbd\\x92\\xe7\\xb8\\xe3\\x27\\xee\\x6c\\x1b\\x40\\x19\\x6a\\x28\\xb4\\x44\\x6a\\xa5\\xa9\\xb2\\xb9\\x77\\x3a\\xb7\\x6e\\x3c\\xe2\\x11\\x80\\xf0\\x9d\\x6c\\x08\\xd2\\x77\\xc6\\x77\\x1d\\x67\\xe2\\x2d\\x84\\x54\\x0f\\xa4\\x3b\\x38\\xf6\\x34\\xcf\\xc4\\x6e\\x5b\\x8c\\x33\\xf1\\x5a\\x56\\x8a\\x77\\xe4\\x91\\x4a\\xad\\x9a\\xb8\\xc9\\xf7\\xfe\\xa4\\x7f\\x76\\x77\\xc0\\x18\\x80\\xb3\\xe8\\x5d\\x2d\\x0e\\x3f\\xbd\\x6d\\xc6\\xe9\\x9e\\x43\\x7d\\xdc\\x73\\x6f\\x92\\xb5\\xa2\\xff\\x29\\x27\\xe0\\xb4\\x42\\x14\\x2f\\x08\\x97\\xd0\\xb8\\xa1\\x9a\\xc2\\x03\\x63\\x3d\\xf4\\x13\\xfe\\xaf\\x8e\\xf5\\x0a\\x5f\\x76\\x7b\\xed\\xaf\\x20\\xf1\\xc1\\x3f\\x3b\\x89\\xd1\\xe8\\xb7\\xbd\\x18\\xd5\\x91\\xf9\\xde\\x11\\x6e\\xe3\\x4f\\x98\\x24\\xe4\\xea\\xd1\\xae\\x9d\\xa2\\xe8\\xca\\xae\\xf8\\x8b\\x29\\x51\\x6a\\xa9\\x42\\xde\\x77\\xa7\\x46\\x7b\\x6f\\xb2\\x6a\\x66\\x6f\\x30\\x64\\x8c\\x71\\x5a\\x2e\\xe9\\xf9\\x46\\x74\\x3b\\x54\\x3a\\x44\\x28\\xe0\\xdf\\xd0\\x61\\x78\\xe7\\xe9\\x3e\\xc6\\xf2\\x6e\\x00\\x3e\\x05\\x8b\\xec\\x14\\xa4\\xaa\\x2e\\x3b\\x8d\\xe1\\x12\\x95\\xa7\\x64\\xca\\xb3\\x0b\\x31\\x3f\\xcc\\x57\\x43\\xb2\\xfb\\x89\\x96\\x2d\\xdc\\x5c\\xdc\\x6a\\xa0\\xd2\\xe4\\xa3\\x06\\xe7\\x7a\\xf7\\x6a\\x05\\xa5\\x98\\x92\\x3f\\x62\\x8a\\x85\\xdf\\x1c\\xc7\\x3a\\xd3\\xbc\\x01\\xc4\\xb9\\x79\\xbd\\x7c\\xb2\\x96\\x59\\x0a\\x88\\xb0\\xa4\\x1b\\x44\\x5d\\x50\\xa0\\x84\\x23\\xe4\\xed\\x80\\xf1\\x76\\x3c\\x71\\x6b\\x6c\\x45\\x7d\\x84\\x5d\\xfa\\xa6\\x8d\\x12\\xb0\\xd0\\x3c\\x55\\xfd\\xe8\\xae\\x6b\\x2b\\x92\\xbc\\x63\\x22\\x94\\x3d\\xbe\\x54\\xc7\\x06\\xbc\\x8e\\x5f\\xce\\xe7\\x06\\x54\\xb2\\x6f\\x3b\\xfd\\x87\\x7f\\x5f\\x53\\x39\\xac\\x18\\x2d\\x54\\x17\\xbd\\x4c\\x07\\x35\\xd8\\x25\\xbf\\x70\\xe8\\x5e\\xab\\x82\\x16\\xed\\xda\\x63\\x2a\\xe7\\xe2\\x2b\\x3e\\x53\\xd0\\x78\\xa8\\xb2\\x0b\\x5a\\x7e\\x23\\x85\\x33\\x7c\\xf9\\x2b\\x3c\\x16\\xb0\\x23\\x56\\x3e\\x11\\xcb\\x50\\x43\\xb7\\x04\\xd3\\x7e\\xb5\\xed\\x9e\\x85\\xfc\\xdc\\x95\\xcf\\x7a\\x6e\\xad\\xe4\\x08\\x03\\x17\\x5a\\x00\\x8e\\xf6\\x53\\xac\\x61\\x36\\xf1\\x61\\x29\\xab\\xae\\x11\\x37\\xc5\\x82\\x34\\x00\\x74\\x8a\\x81\\x25\\x62\\x54\\xd3\\x17\\xcf\\xc9\\x39\\xe2\\x6e\\xa0\\xce\\xf9\\xf6\\x54\\x8d\\xb4\\x28\\x90\\xc4\\x8b\\xeb\\x04\\x79\\x10\\x3b\\xa0\\x89\\xe5\\x14\\x11\\x80\\x38\\xb1\\xb9\\x09\\x43\\xd7\\x16\\xf7\\xa8\\xd4\\xcd\\xa5\\x98\\x3a\\x67\\x4b\\x83\\xa0\\x02\\xd8\\xac\\x9c\\x65\\x73\\x4a\\x28\\xb7\\x7b\\x76\\x0c\\x8e\\x38\\x03\\xf8\\x78\\x1e\\xa9\\x19\\x9f\\x79\\x7c\\xe7\\x29\\xe0\\x6b\\xff\\xfe\\x8c\\x29\\xb2\\x0b\\xc8\\x52\\x27\\xc0\\x9c\\xc0\\x52\\x19\\xff\\x2b\\xa3\\x8e\\x18\\x05\\x10\\x83\\x73\\x2f\\x83\\xcb\\xfc\\xcc\\x31\\x07\\x56\\x45\\x0b\\x26\\x1d\\x5b\\xe1\\x83\\xd9\\xfb\\x44\\xec\\x18\\x52\\x9f\\x2c\\xc9\\x84\\x8c\\x40\\x11\\x9c\\x60\\x76\\x76\\xbc\\x4d\\x90\\x15\\xfd\\x4b\\xd2\\xfc\\x91\\x8d\\xc8\\x03\\x1e\\xc1\\x9a\\x05\\xff\\x36\\x2c\\x18\\x40\\x43\\xbe\\x7f\\xe0\\x66\\x01\\x9a\\xc5\"},\n{{0xea,0xc0,0xf0,0x6c,0x2c,0x14,0xf3,0x7d,0x43,0x4b,0xc9,0x98,0x97,0x22,0x5d,0xd2,0xe3,0xf1,0xed,0x74,0xaa,0x74,0x42,0xc5,0x50,0x33,0x9d,0xf7,0x7d,0x0b,0x7b,0x32,},{0x43,0xe6,0x20,0x55,0xdb,0x6e,0x13,0x49,0xc9,0x4d,0x89,0x02,0x91,0x87,0x88,0x20,0x20,0xcb,0xcf,0x9d,0x75,0xe0,0x3e,0xb6,0x56,0xfa,0x0a,0x15,0xb1,0x90,0x02,0xd7,},{0x45,0xf2,0x80,0x3a,0xfe,0xb0,0xfc,0x44,0xd3,0xaa,0x96,0x5b,0x12,0x65,0x9b,0xf5,0x02,0xe4,0x72,0x95,0x70,0x61,0x84,0xb2,0xa1,0xc6,0xf1,0x6d,0x05,0x06,0x13,0xf5,0x96,0xa2,0x00,0x13,0x94,0xe0,0x0e,0x2a,0x44,0xc4,0x6c,0xf6,0x50,0x5d,0x5c,0xf5,0xb8,0xab,0x84,0x12,0xf0,0x7e,0xda,0x95,0x1a,0x15,0x00,0x5e,0x33,0x8f,0x3c,0x0e,},\"\\x27\\xb7\\xfd\\x0e\\x71\\xad\\xf1\\x94\\xcf\\x54\\x07\\xb6\\x77\\x17\\x93\\x06\\x0d\\xe0\\xfc\\xa7\\xca\\x0a\\xe6\\x48\\x35\\xc4\\x31\\x87\\x40\\x8a\\x70\\x4f\\x53\\x3d\\x5e\\xa0\\xc8\\x3a\\x65\\x43\\x87\\xba\\x7d\\xb1\\x6e\\xd5\\x8e\\xc8\\x37\\x22\\x6d\\xf5\\x7c\\x1f\\xe6\\x38\\x2c\\x59\\x19\\xe9\\x22\\x13\\xf6\\xf1\\x8c\\xbb\\x57\\x35\\xd1\\x78\\xa4\\x76\\xaf\\x35\\xd3\\x90\\xb7\\xcd\\x25\\x56\\x21\\x7c\\x53\\x0f\\x3a\\x1f\\x8a\\xb2\\x33\\x9c\\x1a\\x5e\\x8d\\x96\\x93\\x87\\xef\\xd3\\x94\\x14\\xb5\\x6b\\xb7\\x84\\xdf\\xd5\\xeb\\x89\\xb8\\x59\\xe1\\xf4\\x03\\xa2\\x38\\xec\\xa2\\xa9\\x41\\xe6\\xdb\\x56\\xac\\x45\\x6b\\x73\\x45\\x06\\x98\\xd1\\x45\\x5e\\xc1\\xe9\\xb3\\x9a\\x1e\\x90\\x7d\\x6b\\xc7\\xe6\\xcf\\xf4\\x24\\xa2\\x8e\\xed\\x57\\x9a\\xf1\\x63\\x10\\x11\\x5b\\x67\\xf5\\xfc\\xf7\\xf8\\x34\\x6b\\x3f\\xa0\\x26\\x0c\\x6d\\xa2\\xe2\\x77\\x55\\xac\\xa5\\x70\\xba\\xbb\\x3d\\x30\\x3c\\xc8\\x32\\x46\\x0c\\x96\\x3b\\xfd\\xd5\\xc1\\xff\\xb2\\xfc\\x19\\x92\\x19\\x29\\xdd\\xa2\\xa7\\x17\\xfb\\xcb\\xeb\\x2b\\x85\\x25\\x76\\x1b\\xd6\\x60\\xce\\x4a\\x0f\\x76\\x85\\x28\\x5d\\x7f\\xad\\x61\\x15\\xab\\x09\\xf8\\xe6\\x3f\\x5f\\x77\\x39\\x14\\x49\\x4e\\x20\\xbe\\x1b\\x51\\x2d\\x11\\x14\\xcc\\xe3\\xf0\\xf6\\x8c\\x7d\\x94\\xf5\\x48\\x57\\x69\\x4f\\x22\\xaf\\x4c\\x69\\x8d\\x78\\x2c\\xe8\\x37\\xb0\\xc1\\x72\\x2b\\xb7\\x31\\x3b\\xb2\\xc4\\x1f\\x6d\\x3d\\xd1\\xa0\\x28\\x77\\xfb\\x42\\x96\\xd8\\x66\\x2a\\x9e\\x86\\x25\\x98\\x4d\\xc1\\xfd\\x1a\\x95\\x10\\xeb\\xa9\\xd6\\x43\\xac\\x58\\xa8\\x86\\xa0\\x45\\xcd\\x0e\\x53\\xc0\\x56\\xa8\\x33\\xf9\\x68\\xb3\\x5d\\x01\\x32\\x0e\\x9c\\xc0\\xb4\\x35\\xd3\\xf6\\xbf\\xad\\x26\\xf9\\xeb\\x57\\x54\\xd3\\x8d\\xdf\\x6d\\x5c\\x4b\\xf6\\x15\\xa7\\x64\\x4a\\x23\\xf9\\x82\\x6b\\xcc\\x97\\x60\\x92\\xd8\\x2d\\x81\\xd5\\x47\\x00\\x0d\\xe0\\x08\\x1b\\x7a\\x40\\xa9\\x3f\\xbd\\xda\\xc1\\x3f\\x7d\\x99\\x70\\x8c\\xcd\\xee\\xb9\\x40\\x5c\\xd6\\x34\\xca\\x07\\x48\\xca\\xd2\\xc1\\xd8\\xf1\\x64\\xf5\\xd7\\x7a\\x4f\\x36\\x4a\\xe4\\x88\\xbe\\xdc\\xf1\\xf2\\x0e\\xb9\\x54\\xbc\\x8a\\x27\\x8a\\xf8\\x14\\x32\\x41\\x78\\x56\\xa9\\x00\\xf8\\xf1\\x52\\x92\\x1a\\xfb\\xe1\\x79\\x14\\x22\\x9a\\x51\\x3b\\xd7\\x1a\\xb7\\xe6\\x61\\xcd\\xe1\\x29\\xaf\\x93\\xe2\\x50\\x94\\xc5\\x61\\x18\\xed\\x1f\\x22\\xdb\\x64\\x44\\x28\\xb4\\x74\\x65\\x1f\\xe3\\x6b\\xe8\\x2f\\xa3\\x69\\x5c\\x41\\xfc\\x86\\x99\\x66\\x7e\\x05\\x37\\x43\\xb0\\xa4\\x11\\x55\\xc3\\x1f\\x1e\\x26\\x79\\xc6\\xe8\\xcb\\x9c\\x9d\\x1f\\x5f\\x4b\\x40\\xa3\\x20\\xa9\\xfd\\x9f\\x47\\xda\\x9b\\x94\\x21\\x1b\\xa6\\x01\\xb2\\x2a\\x11\\x52\\x10\\xd9\\xf5\\x59\\xc4\\x49\\x6f\\x01\\x73\\x24\\x58\\xf4\\x9a\\xc3\\x4e\\xb3\\x86\\x63\\x6c\\x8b\\x6c\\x68\\xc7\\xbb\\xc0\\x07\\x8a\\xb6\\xf3\\x98\\xa6\\x24\\xb8\\xba\\xfb\\x1c\\x62\\x29\\x58\\x56\\x2d\\x23\\x1d\\xff\\xd4\\xdb\\x09\\x61\\x96\\xbb\\x87\\x47\\x9e\\x42\\xea\\x22\\xac\\xbd\\xcd\\xe8\\xde\\xb1\\x0e\\x31\\x16\\x32\\xf0\\x2f\\xca\\x14\\x78\\x7f\\xd3\\x14\\x05\\x69\\xb9\\x42\\x89\\x91\\x54\\x3e\\xc6\\xe8\\x34\\xe1\\x0b\\x14\\x9f\\x23\\xc7\\x4b\\xb9\\x9a\\xc7\\xb3\\x79\\x9a\\x20\\x96\\xd2\\x2e\\x38\\x7a\\x71\\x2b\\x6f\\x90\\x11\\xea\\x34\\xc5\\xbe\\x4c\\x46\\x85\\x81\\xac\\x62\\xce\\x66\\x20\\x63\\x25\\x2e\\x06\\x6a\\x9a\\x3b\\x15\\xc9\\x57\\x0d\\x06\\x5d\\xc1\\x61\\x99\\x29\\xf0\\x6b\\xc7\\x5a\\x31\\x79\\x46\\x8b\\xc8\\xa1\\x6e\\x3d\\xdc\\x4f\\xe1\\x85\\xce\\xba\\x0a\\x92\\xa5\\x46\\xb8\\x67\\x5f\\xc1\\xad\\xe5\\x63\\x07\\x15\\x0c\\x7e\\x4c\\x84\\x4f\\x6a\\xa5\\xf1\\xed\\xbf\\xb5\\x4a\\xc6\\x32\\xca\\x2b\\x25\\x9c\\x32\\xa3\\x3e\\xe2\\x86\\x78\\x56\\xc3\\x39\\x0a\\x67\\x40\\x36\\x4c\\xb0\\xdf\\xb9\\x76\\xe5\\x3d\\x0c\\xc6\\xc4\\x2a\\x10\\x6a\\x1c\\x26\\x91\\x8c\\x8a\\x6a\\x03\\x3b\\x2a\\xa3\\xc7\\xf2\\xe4\\x39\\x2e\\x79\\xf8\\xec\\xa5\\xb3\\x36\\xba\\xc5\\x06\\x1d\\x76\\x98\\xa3\\xbf\\xe7\\xc2\\xc2\\x92\\x89\\x25\\x54\\x03\\x0d\\xe6\\xce\\x7c\\x0d\\x06\\xee\\xfc\\x54\\x90\\x6f\\x81\\xe0\\x09\\x7f\\xcf\\xf2\\x7d\\x14\\xb9\\xb7\\x99\\x4a\\x79\\x70\\xe1\\xa5\\xf5\\xc6\\xb6\\x40\\x5d\\xca\\x22\\x03\\x3d\\xff\\x0e\\xae\\x13\\x8a\\xd8\\x99\\xf6\\xee\\x68\\x12\\x0b\\x8f\\x22\\x74\\x4b\\x02\\x69\\xa9\\xa8\\x98\\x9b\\x6f\\x7e\\x08\\xaf\\xfa\\xe7\\x7b\\xca\\x21\\x68\\xad\\xe2\\x40\\x58\\xae\\x68\\xa7\\xf8\\x00\\xe0\\x2e\\x7c\\x38\\x39\\x1b\\xaf\\x56\\x5d\\xd4\\x0b\\x55\\xfa\\x3a\\xb3\\xc2\\x47\\xb9\\xce\\xb4\\xd9\\x67\\x47\\x17\\x75\\xe6\\x63\\xd6\\xa1\\xc6\\xc7\\xe1\\x73\\x50\\xbb\\xd6\\xb9\\xa3\\xeb\\x1e\\x48\\x4a\\xc2\\xe7\\xa7\\xa5\\xc8\\x4f\\x50\\x83\\xe5\\xac\\xe8\\x73\\x0d\\xe8\\x9c\\x47\\xe8\\xdc\\xf8\\x34\\x1e\\x40\\xba\\x34\\x5d\\xbd\\x66\\xba\\xe0\\xf7\\xf0\\x76\\xa7\\x05\\xb1\\xbb\\x7f\\x47\\x0e\\x3e\\xdf\\xb2\\xb7\\x8e\\x4d\\x63\\x59\\x41\\x3d\\x18\\xd3\\x32\\x80\\xb4\\x54\\xa0\\xdb\\xb8\\x81\\xd8\\x60\\x67\\x26\\xfa\\x9b\\xea\\x27\\x24\\x75\\xe7\\x9f\\xea\\x6a\\x54\\xcb\\x4c\\x06\\x19\\x54\\x1b\\x4e\\x77\\xc1\\x70\\xc8\\x61\\x68\\x74\\xb9\\x54\\xbe\\xb8\\xd1\\x05\\xb8\\x6b\\xd1\\x91\\x7e\\x25\\xcf\\xba\\x92\\x67\\x18\\x7e\\xe2\\x03\\x8b\\x3f\\x00\\x78\\xf4\\xc3\\x18\\xb5\\x87\\xcf\\x44\"},\n{{0xe6,0x08,0xd5,0xde,0x97,0x97,0x90,0x7d,0xb6,0xd9,0x8e,0x03,0x45,0xd5,0xca,0xf2,0xad,0x33,0xe0,0xed,0xde,0xbf,0x18,0xb8,0x1d,0x61,0xe8,0x37,0x3e,0xcf,0xb4,0x99,},{0x60,0xe0,0xc1,0x6a,0xda,0x58,0x6e,0x36,0x46,0x91,0x2a,0x5f,0x2b,0xb3,0x18,0xfb,0xc3,0xd5,0x0b,0x57,0xd3,0x6f,0xab,0xb6,0x37,0x69,0x6f,0x9d,0x8d,0x4d,0xc7,0x61,},{0x0d,0x8f,0x09,0x5e,0x42,0xa2,0x73,0x0a,0x3c,0x7b,0xed,0xf4,0x2d,0x5c,0x83,0x39,0x8b,0x5c,0x0e,0xe9,0xc7,0x7c,0x5a,0x61,0xd9,0x82,0x29,0x13,0x96,0xa9,0x18,0x2a,0x08,0x02,0xa3,0x7f,0x32,0x4b,0xc4,0xfb,0x5d,0x4a,0xa4,0xed,0x60,0x44,0x4b,0x66,0x14,0x4b,0xac,0xbc,0x86,0x51,0x05,0xd7,0x69,0x0f,0x14,0x06,0x50,0x69,0x1d,0x03,},\"\\xe6\\x10\\xfa\\x7d\\x83\\x85\\xc0\\x9c\\x78\\x98\\x9e\\xd5\\xef\\x7a\\x23\\x05\\x47\\xf0\\x13\\xcb\\x7e\\x8d\\xdf\\x31\\x74\\x9f\\xfc\\x31\\xce\\xe1\\x0a\\xb3\\xef\\xac\\xa3\\xf1\\x4e\\xa1\\x94\\x51\\x0f\\x09\\x85\\xa8\\x18\\xef\\x8b\\x04\\x0e\\x10\\xc3\\xa5\\x11\\x4d\\xe1\\xac\\x08\\x0f\\x14\\xc3\\xd6\\x5d\\x3c\\x24\\x4f\\x92\\x42\\xf7\\x54\\x92\\xca\\xba\\xe8\\x00\\xfc\\xfc\\x9b\\xc2\\x75\\xea\\x1f\\x27\\x72\\x8c\\x92\\x0c\\x25\\x8f\\xe7\\xaa\\x73\\x94\\x80\\x60\\x29\\x9c\\xb8\\x78\\x35\\x79\\x2e\\xdc\\xc0\\x72\\x15\\x0b\\x73\\xce\\xfe\\xb0\\xd5\\x15\\x62\\xe5\\x3b\\x46\\x81\\x0e\\x27\\xa4\\xd7\\xf6\\xab\\xd3\\x2e\\x95\\x9f\\x7d\\x73\\x1d\\xde\\x01\\xd9\\x4b\\xc4\\x1e\\xd8\\x35\\xef\\xcd\\x42\\xc9\\x22\\x43\\x70\\x37\\xa8\\x7d\\xd3\\x66\\xff\\xad\\x2e\\xec\\xab\\x6a\\xba\\xeb\\x4f\\xcf\\x07\\x39\\x2b\\x3a\\xb4\\x0c\\xfa\\xef\\xea\\xa4\\x26\\x6b\\xc5\\x37\\x67\\x16\\x93\\xc9\\x09\\x3d\\xab\\xe8\\xa0\\x53\\x8c\\xaf\\xd1\\x2c\\x63\\x9a\\x04\\xbd\\x2b\\xa8\\x0c\\xe0\\xf2\\x9a\\xdb\\xfc\\x66\\xbd\\x46\\x37\\xca\\x05\\x43\\xa5\\x3b\\x0e\\x37\\x1d\\x0e\\x2e\\x47\\x0d\\x31\\xba\\x36\\x06\\x42\\xa4\\x5a\\xb4\\xcf\\xe3\\xe7\\x90\\xf5\\x87\\xf6\\xc5\\xa5\\x58\\x3f\\xd1\\x5b\\x18\\x99\\x78\\x38\\xa2\\x00\\x92\\x1c\\x1c\\x39\\x9c\\x0b\\x16\\x27\\x8b\\x7d\\xd6\\xd3\\xaa\\xab\\x6f\\x32\\x5b\\x16\\xaf\\xdf\\x76\\x1a\\x1b\\xbf\\x86\\x7d\\xe2\\xbd\\xd4\\x86\\x15\\xf1\\x5b\\x52\\x67\\x70\\xed\\x20\\xd7\\x9f\\x0f\\x30\\x71\\x4b\\xee\\xed\\xa5\\x8f\\x52\\xa3\\xcc\\x0c\\x5a\\x61\\x83\\x15\\xe5\\x22\\xb9\\xeb\\xe7\\xcd\\x99\\xb6\\x5e\\xd5\\x32\\xa6\\x2e\\x0f\\x0d\\xf7\\x27\\x64\\xd6\\xec\\x6d\\x6d\\x1b\\xa4\\x0e\\xf4\\x0e\\x05\\x42\\x63\\x60\\x79\\x5d\\x6d\\xd8\\x5b\\xb3\\x9f\\x73\\x21\\xd3\\xfb\\x06\\x27\\x5d\\xe0\\x96\\xaa\\xe4\\xa2\\xfa\\x22\\x93\\xf3\\x1b\\x33\\xf4\\xad\\x4d\\x7c\\x25\\x1a\\xc1\\x3e\\x8e\\x15\\xc2\\xbf\\xb1\\xf9\\x8f\\x49\\x62\\xc5\\x4b\\x6c\\xe0\\x33\\xb0\\x8a\\xa6\\x26\\xf2\\x90\\x5d\\x46\\x3f\\x55\\xb7\\x1c\\xbd\\xad\\xec\\xdb\\x3e\\x0b\\x36\\x5d\\xae\\x07\\xb1\\x70\\x30\\x19\\x83\\xae\\xb8\\x3b\\x1e\\x9f\\x2f\\x28\\xcf\\x65\\x41\\x9f\\xd6\\xb0\\xa1\\xa9\\xc2\\x6c\\xb5\\x4b\\x59\\x49\\xf4\\xbc\\x01\\xa9\\x86\\x81\\x84\\x4b\\x43\\x03\\x4c\\x37\\x2a\\x45\\x3d\\x38\\xf0\\x47\\x3d\\x0d\\xdc\\x70\\x9d\\x9f\\x49\\xc8\\x75\\x3a\\x75\\xb8\\x56\\xc7\\xe9\\x77\\x55\\x17\\xdf\\x57\\x4a\\x09\\xa3\\x95\\x3b\\xde\\x5d\\xae\\xdf\\x8e\\x4a\\x8d\\xa9\\xd7\\x73\\xa2\\x15\\x12\\x0e\\x26\\x9f\\xa1\\x86\\x11\\x33\\xcd\\x4c\\xea\\xeb\\x91\\xd5\\xcc\\xa2\\x60\\x63\\x25\\x45\\x8e\\x50\\xcb\\x96\\x6d\\x14\\x05\\x5b\\x22\\x44\\x7e\\xb6\\x5d\\xc1\\x01\\x18\\xda\\x08\\x31\\xdf\\x28\\xc3\\xb4\\xee\\x8b\\x11\\xf0\\x73\\x2f\\x15\\x21\\xbb\\x94\\x82\\xb1\\x1f\\x5a\\x86\\xb2\\x2f\\x18\\xe8\\x3d\\xd1\\xd9\\x67\\xd3\\x94\\x42\\x85\\xe5\\xd6\\x3a\\x5a\\x98\\x98\\x17\\xab\\x24\\x18\\xbc\\x7e\\xd8\\x91\\xa3\\x73\\x84\\x67\\x47\\xa1\\x2b\\x52\\x7c\\x2f\\x44\\xee\\x01\\x97\\xb9\\x46\\xc6\\x7e\\x67\\xfa\\x4a\\xa1\\xc2\\x9f\\x33\\x79\\xd4\\x6f\\xe0\\x7d\\x3a\\xab\\x83\\xda\\x17\\xf9\\xd7\\x6b\\xed\\xd3\\x84\\x36\\xa0\\x55\\xe3\\x4c\\xa1\\xd3\\xaf\\x5a\\x87\\x54\\xd3\\x8c\\x17\\xb9\\xba\\x4e\\x64\\x19\\xcb\\xab\\x51\\x5f\\x43\\x1a\\x25\\x95\\x95\\x4e\\x42\\x8c\\x26\\x70\\xfa\\xe3\\xbe\\xd6\\x2b\\x45\\x96\\x17\\x9c\\xb5\\x9e\\x21\\x10\\x87\\x08\\xd0\\x71\\xbc\\xf9\\xc6\\x21\\xc6\\xdf\\xf0\\x3d\\x3c\\xdc\\x92\\x02\\x02\\x94\\x54\\x01\\x3b\\x9d\\x13\\x38\\x47\\xf2\\x65\\x44\\x81\\x1c\\x01\\x69\\x77\\x0f\\xdc\\x6f\\xe5\\x63\\x8b\\xfd\\x7a\\x72\\x0d\\x8b\\x38\\xf7\\xe3\\x0a\\x7e\\x68\\x79\\x06\\x0b\\x5f\\x28\\xc8\\xab\\x17\\xb0\\x02\\x00\\x71\\x32\\x07\\xe8\\x63\\x7b\\xff\\x48\\x44\\xd8\\x42\\xd9\\xca\\x78\\x83\\x91\\x34\\x01\\x98\\xa3\\xfe\\x01\\x72\\xdf\\xa7\\x4d\\xe1\\xe5\\x5a\\xde\\xfb\\xc2\\xe9\\xbc\\x7e\\x88\\x54\\x76\\xd1\\xb9\\xc0\\x55\\x81\\x34\\x08\\xa4\\x75\\x28\\x43\\x43\\x55\\xbf\\x03\\xfd\\xd4\\xe2\\x7d\\x8b\\x34\\x61\\xb0\\xfb\\x66\\xab\\x3e\\x15\\xa8\\x79\\xa1\\x84\\x45\\x7e\\x9e\\xd9\\xea\\x6c\\x51\\xb6\\x63\\xb3\\x1e\\xdc\\x8c\\x4a\\x3c\\xd4\\x54\\xf6\\x9d\\x9c\\xe5\\x18\\xd1\\xb8\\x78\\x88\\xee\\x3d\\x9d\\xd5\\x41\\x6e\\x43\\xe1\\x14\\xac\\x05\\x72\\x13\\x52\\xdf\\xfc\\x2c\\xa8\\x85\\x97\\x37\\x7b\\xbc\\x41\\x40\\x09\\xb0\\xc2\\xfd\\x36\\x9b\\xe5\\xba\\x35\\xa6\\xdc\\xe3\\x47\\x8b\\x6c\\x11\\xb3\\x3c\\x0a\\x33\\x91\\x8b\\x6e\\xe5\\xac\\x4c\\xd4\\xc2\\xf1\\xca\\x6b\\xd1\\x90\\xa0\\x00\\xa8\\x38\\xda\\x38\\xf5\\x30\\x77\\x56\\x03\\x35\\x59\\x6d\\x13\\x58\\x93\\x77\\x93\\x96\\x38\\x10\\xa7\\x9a\\x21\\xb8\\xd4\\x61\\x40\\xe7\\x68\\x89\\x8d\\xcd\\xa8\\x8a\\x0f\\xaf\\x8d\\xdd\\x0d\\x63\\x38\\x47\\xaa\\xea\\x0e\\x03\\x0b\\xe6\\x45\\x5b\\x41\\xe3\\xed\\xe1\\xe2\\x87\\x37\\x30\\xeb\\x84\\x81\\xac\\xaa\\x7a\\x51\\x9c\\xf9\\x19\\x58\\x47\\xa8\\x6a\\xfa\\x57\\xf9\\x07\\x1d\\x44\\xf4\\xaf\\x4c\\xa0\\xd3\\x43\\xc9\\x0c\\x0d\\x22\\xd9\\x46\\x14\\x65\\x85\\xf0\\x0e\\xf3\\xae\\xf5\\x7f\\x0f\\x9e\\x55\\xe8\\x18\\xc0\\x12\\x8a\\xe2\\x55\\xdb\\xc3\\x11\\x6c\\xf0\\xfe\\x02\\x16\\x6d\\x54\\x85\\x9d\\xec\\xbf\\xdc\\xcc\"},\n{{0x0e,0x86,0x87,0x2c,0x78,0x62,0x0f,0x10,0xcb,0x6d,0xfc,0x46,0x3d,0x2c,0x28,0x72,0xc4,0xda,0x66,0x07,0x48,0xc9,0xcd,0xa0,0x1a,0xb1,0x45,0x69,0x58,0xaf,0xba,0x7f,},{0xde,0x49,0x89,0x98,0x92,0x69,0xca,0xbd,0x8f,0x4f,0x40,0x9c,0xf1,0xa4,0xd9,0x74,0x03,0x8b,0x27,0x55,0x02,0x27,0x35,0x57,0xf3,0x12,0xd5,0x55,0x3f,0xab,0x93,0xc3,},{0x20,0x37,0xe9,0x77,0x41,0xc3,0xe6,0x40,0x9c,0x66,0xfc,0x67,0x82,0xaa,0xb3,0x89,0xc5,0xd7,0x78,0x09,0x7a,0xc7,0x78,0x99,0x9e,0x85,0x76,0xe4,0x9e,0xf4,0xf6,0xa0,0xc7,0x73,0x0b,0xd9,0xe0,0x93,0xdd,0x3c,0x0a,0xe7,0xec,0x76,0x20,0x33,0x80,0xda,0x65,0x71,0x47,0xd3,0x3a,0x8d,0x9d,0xd6,0x5e,0xd0,0x0c,0xf7,0x62,0x24,0xd6,0x01,},\"\\xa9\\x00\\xf3\\xe9\\xc6\\x43\\xa5\\x64\\x9b\\x07\\x6f\\xb6\\x9c\\x3b\\x2a\\xc0\\x84\\xd5\\x2c\\xcb\\xaf\\xcd\\xca\\x5a\\x9d\\xb1\\xda\\xa7\\x05\\x00\\xde\\x99\\x33\\xd2\\x3d\\x15\\x3f\\x74\\x95\\x4e\\x1b\\xd5\\xf5\\x7b\\x89\\x9f\\xe8\\xa4\\xb1\\x34\\xc1\\x95\\x41\\x2b\\x49\\x83\\x3b\\x6e\\x50\\x95\\xa6\\x55\\x4e\\xaa\\x6d\\x84\\x4b\\x11\\xf1\\x58\\x4c\\x85\\x05\\x5b\\x87\\xf4\\x1c\\x99\\x96\\x69\\x04\\x6c\\x71\\xae\\xb5\\xc0\\x45\\x3f\\xd6\\xa3\\xc4\\x37\\xf8\\x15\\xf0\\x68\\x98\\x7c\\x38\\x68\\xcc\\x07\\xaa\\x2a\\xf6\\x58\\x19\\x04\\x6c\\x30\\x7b\\xaf\\xb7\\x53\\x0d\\xe8\\x4f\\x71\\x30\\xae\\xa7\\x8e\\xf0\\x05\\xd5\\xff\\xf5\\x2f\\x8d\\xea\\xf1\\xd5\\xe9\\xc3\\x26\\xd3\\x21\\x7f\\xc5\\x5b\\x94\\xf6\\x28\\xaa\\x10\\x4f\\x6a\\x24\\xa3\\x95\\xe6\\x2d\\x1b\\x62\\xbd\\x9c\\x0d\\x82\\x43\\x63\\x19\\xc5\\xd7\\x3e\\x57\\x65\\x43\\x5f\\x3b\\xa8\\x56\\xa4\\x73\\x4f\\xd6\\x0a\\xe6\\x17\\xf7\\xf0\\xc3\\xba\\x57\\x22\\xa7\\x33\\x66\\xc8\\x8a\\x6d\\xfe\\xca\\x85\\xc4\\x44\\x63\\x9f\\x44\\x1f\\x2c\\x55\\xfd\\xc4\\x64\\xec\\xb2\\x99\\xee\\xe3\\x6d\\x8e\\xae\\x06\\x3b\\xb9\\x4b\\xb2\\x43\\x9d\\xa0\\x4f\\xa5\\xeb\\xc5\\x09\\x23\\x38\\xa5\\x03\\x5e\\x48\\x0f\\x08\\x34\\xae\\xee\\x8d\\x71\\x1f\\x28\\xc4\\x6d\\xc9\\x60\\xde\\x1b\\xe9\\xdf\\x30\\x7c\\x18\\xc5\\xc1\\x78\\xb2\\x62\\x96\\xdc\\x56\\x7f\\x15\\xbf\\x60\\x86\\x3a\\x36\\x71\\x08\\x67\\xe9\\x2f\\xd5\\x10\\x48\\x86\\x56\\x74\\xc2\\xaf\\x0c\\x53\\xb2\\xe7\\xa2\\x48\\xae\\x5b\\xd0\\x9a\\x49\\xaa\\x03\\x06\\x18\\x49\\x5f\\x82\\x48\\x0c\\x42\\x0a\\xe1\\x06\\x88\\x9b\\xec\\x00\\x62\\x78\\xb9\\x22\\x72\\x07\\x57\\x09\\xfe\\xc9\\x54\\x87\\xcf\\xb1\\x00\\x61\\xe6\\x72\\x2b\\x93\\xee\\xbf\\xc0\\xbc\\x58\\x7b\\xf7\\xba\\x5f\\x66\\x92\\xb0\\x74\\xf5\\x5a\\x98\\xd5\\xc3\\x02\\x76\\x0b\\x1b\\xf1\\xd0\\x9f\\x7e\\x86\\x68\\x47\\x9c\\xa6\\xf0\\x1e\\xed\\xa2\\xfd\\xaf\\x58\\x4a\\xc2\\x05\\x8f\\xbf\\x7c\\xf3\\x10\\x0d\\x06\\xb8\\x09\\x1b\\xfe\\xab\\x51\\xc0\\xc0\\xb1\\xd4\\xee\\x3a\\x82\\x57\\xf6\\x9b\\x16\\x17\\x60\\x4f\\xce\\x95\\x3b\\xb5\\xf7\\xf2\\x71\\xc6\\xa1\\x88\\x0e\\xa1\\xb3\\xf6\\x62\\x67\\xe2\\x43\\x9f\\x34\\x58\\x06\\x28\\x91\\x78\\x77\\xc6\\x6e\\xc0\\xfe\\xd7\\x6e\\x44\\xe8\\xbb\\x2b\\x91\\xa8\\x80\\x6d\\xf4\\xba\\xca\\x6c\\xc9\\x28\\x89\\xb8\\x80\\x50\\x70\\xc9\\xa6\\x17\\xf8\\x07\\x15\\x75\\x30\\x75\\x1c\\xc1\\x7c\\x47\\xb0\\x9e\\xeb\\xa9\\x4d\\x22\\xb4\\xe5\\x47\\xc3\\x70\\xce\\x7a\\x49\\x6f\\xca\\xa3\\x41\\x2a\\xff\\xff\\xb8\\xc9\\xb4\\xde\\x89\\xb9\\xf1\\x21\\xaa\\xec\\x5f\\x54\\x4b\\x0c\\x72\\x5e\\xc5\\xee\\x9d\\x4b\\x34\\x76\\xad\\xc9\\xd0\\x50\\xed\\xb0\\xfd\\xba\\xf0\\x2c\\xa9\\xe3\\x8a\\xf1\\x5f\\x51\\x50\\x15\\xa2\\x67\\x29\\x2e\\xc9\\xaa\\x54\\x44\\xed\\x1d\\xec\\xd9\\xcd\\x9e\\x1e\\xad\\x64\\x87\\xa0\\xcc\\xef\\x99\\x5b\\x1c\\x60\\x0a\\x03\\x69\\x35\\x83\\x86\\x60\\xac\\xab\\x27\\x6d\\x8b\\x0e\\x5b\\x07\\xd9\\xf3\\x63\\x53\\x21\\x4b\\xf8\\x0f\\x94\\x1a\\xc8\\x8c\\xf4\\x0a\\x08\\xaf\\x91\\x79\\x26\\x23\\x41\\x12\\xec\\xcd\\xaa\\x16\\x2d\\xc9\\x9d\\xe3\\xe2\\x5b\\xaf\\xf6\\x5b\\xb0\\x1e\\x49\\x89\\x89\\x86\\x33\\x2b\\xdc\\x2d\\x70\\x5d\\x5a\\xea\\x40\\xf9\\xbc\\x4f\\xbb\\x28\\x06\\x89\\x44\\x96\\x03\\x8d\\xa2\\x36\\xe9\\xdc\\x29\\x60\\x0c\\x9c\\xed\\xea\\xc3\\xb6\\x16\\xcc\\x56\\xd8\\x9e\\xc2\\xfa\\x67\\x38\\x96\\x66\\xc6\\xc4\\xfe\\x23\\x3b\\x63\\x91\\x05\\x02\\x3e\\x10\\x1b\\x87\\x4a\\x63\\x30\\xfe\\x57\\x3f\\x80\\xac\\xe5\\x5d\\x03\\x7c\\xc6\\x12\\xe6\\xdf\\xd5\\xa6\\xe6\\x86\\xf9\\xa8\\x30\\x54\\xfc\\x46\\xe1\\x5b\\xb6\\xda\\x45\\x3d\\x81\\x0c\\xf1\\x38\\xa1\\x78\\xbf\\x03\\x9d\\x1e\\x18\\x16\\x14\\xff\\x40\\xcb\\xe6\\xbb\\x3b\\x47\\x36\\x63\\x75\\x2e\\xa8\\x02\\x5f\\xf7\\xf7\\x39\\xee\\x4b\\x67\\x11\\x0f\\x96\\x80\\x89\\xb2\\x47\\x3c\\xd0\\x44\\xd4\\x8b\\x00\\x9d\\x06\\x77\\xf7\\x91\\xf5\\x4e\\x2d\\xf6\\xaf\\xdc\\x3a\\xcb\\x9e\\x99\\xdd\\x69\\x58\\xa4\\x50\\xc0\\xe1\\xb6\\xdd\\x5e\\x97\\xa2\\xcc\\x46\\x29\\x8b\\x4f\\x48\\xac\\x6a\\xda\\xf0\\x13\\xd7\\x5b\\x2c\\x42\\x07\\x2d\\x2e\\xe1\\x3f\\x73\\x36\\x87\\xee\\x83\\xc3\\xf7\\x0c\\x4f\\xdd\\x97\\x20\\xfd\\x17\\x98\\xc6\\x62\\xfe\\xf3\\xba\\x01\\x2b\\xed\\xd4\\x45\\xc4\\x72\\x9f\\x21\\x30\\x48\\x4f\\xe7\\x7a\\xc1\\xb4\\xc4\\xdd\\xeb\\x81\\xfa\\xf6\\x0f\\x76\\xe3\\xbd\\x7d\\x21\\xa9\\xa6\\xc5\\x7a\\x69\\xa9\\xcd\\x9c\\xc2\\x03\\xfc\\x63\\xb5\\x9e\\xe8\\x4b\\x89\\x15\\xb3\\xc1\\x8a\\x59\\x54\\xe2\\x27\\xc8\\x6e\\xbb\\xb7\\xd4\\xc4\\xc1\\xa0\\x8d\\x0c\\x5e\\x46\\x7c\\x68\\xa0\\x69\\x70\\x75\\x1e\\xf5\\x84\\xbd\\xd6\\x11\\xe1\\xdd\\x1b\\x48\\x90\\x0a\\xb3\\x54\\xb9\\x9c\\xec\\x6e\\x1d\\xf3\\xbd\\x41\\x46\\xea\\x07\\x55\\x35\\x0d\\xc1\\x1c\\x3a\\x3f\\x60\\x0d\\x47\\x0a\\x74\\xf4\\x75\\xe4\\xfe\\xed\\xaf\\x08\\x65\\x27\\x6f\\xa8\\xa9\\x77\\x13\\x47\\x1d\\x0c\\xa9\\x95\\x5c\\x71\\x35\\x88\\x33\\x9d\\xee\\x79\\x65\\x6e\\x56\\x7e\\x6a\\xb1\\xdb\\xf9\\x83\\x07\\x03\\x81\\x7a\\xe6\\x20\\x92\\x9a\\x06\\x84\\xa5\\xca\\xf2\\x0f\\xef\\x81\\xa8\\xee\\x89\\x7b\\xe7\\xe5\\x05\\xad\\xe6\\x49\\x6b\\x9a\\xef\\x02\\x72\\xbd\\x8f\\x35\\x08\\x60\\x23\\x3b\\x33\\x8c\\x2e\\x36\\xd3\\x13\\x8d\\xb6\\x95\\x38\"},\n{{0x52,0x03,0x54,0xd8,0x5a,0x87,0xd7,0xc2,0x2c,0xa6,0xf7,0x84,0x71,0x44,0x10,0xec,0x98,0xbf,0x6a,0x65,0xf8,0x03,0xef,0x93,0x79,0xbd,0xc8,0x04,0x35,0x9b,0x23,0x49,},{0xd8,0x51,0x1c,0xea,0xc2,0xfd,0x66,0x1a,0xcb,0xff,0xb0,0x1b,0xa2,0x74,0x1c,0xad,0x88,0x99,0x34,0xde,0x63,0x92,0x96,0x1b,0xde,0xc6,0xfa,0x46,0x12,0x3b,0x7f,0x0f,},{0x75,0x4e,0x60,0xd3,0xf6,0xf4,0xab,0x4f,0x5d,0x0d,0xdb,0xb0,0x01,0x53,0x20,0x09,0x16,0x63,0x88,0x48,0x7f,0x78,0x0b,0x76,0xf6,0x0b,0xd0,0xbc,0x9f,0xef,0xab,0xfa,0xab,0x6b,0xe2,0xae,0x78,0x69,0x57,0x3a,0x64,0x79,0x6e,0xf2,0x84,0x6e,0x85,0xe5,0xcd,0xae,0x52,0xdb,0x10,0x44,0xfe,0xfa,0x79,0x6b,0xac,0xf4,0x8b,0x96,0x8b,0x0d,},\"\\xa1\\xd4\\xad\\x48\\x6e\\xbb\\x7c\\x1a\\x0a\\xcb\\x8f\\x11\\x70\\x13\\xe8\\xe4\\x74\\x67\\x89\\xc6\\x24\\x4a\\x56\\xc9\\xed\\xfb\\xf1\\xef\\x37\\xac\\x13\\x09\\xaa\\xf5\\x1c\\x93\\x75\\xfc\\x12\\xca\\xcd\\x68\\x97\\xa4\\x47\\x95\\x45\\xf2\\xbf\\x39\\x0a\\xb7\\xc0\\xc0\\xe5\\xc5\\x92\\xf5\\x50\\x6e\\x99\\x38\\x37\\x8a\\x11\\xb6\\x36\\xbf\\x85\\x70\\x29\\xb9\\x68\\x54\\x7a\\xa5\\x06\\xc4\\xa0\\x82\\x9a\\x15\\xfd\\x39\\x95\\xfe\\xad\\x4f\\x86\\x0f\\xd7\\xc6\\x23\\xc6\\x3e\\x86\\x95\\x43\\x6e\\xae\\x55\\x81\\x64\\x14\\x77\\x83\\x47\\x09\\x2f\\x5f\\x4d\\x42\\x2b\\xb1\\xb5\\xe5\\xa0\\x69\\x66\\x24\\x1e\\xfe\\xc1\\x4f\\x1e\\x4f\\xca\\x06\\x63\\x91\\x14\\x71\\x8c\\x30\\xeb\\xca\\xdd\\x4c\\x6d\\x8a\\xbe\\x7f\\xe9\\x3b\\x25\\xd1\\x71\\x73\\x53\\x39\\x54\\x18\\x8b\\x1a\\xb0\\x3f\\xcb\\x77\\x92\\xcb\\x63\\x5c\\xe3\\x6e\\x9b\\xdb\\xdd\\xe7\\xa5\\x61\\xc5\\xf6\\x69\\x20\\xd9\\x10\\xcb\\x26\\x9c\\x8c\\x1c\\x3f\\x59\\x32\\x65\\x09\\x00\\x72\\xc4\\x89\\x32\\xe6\\x92\\xa9\\xc7\\x38\\xc7\\x04\\x89\\x74\\x89\\xa7\\x15\\xc2\\xb3\\x94\\xd5\\xa8\\x6f\\x70\\x36\\xa4\\xca\\xc5\\xdc\\xb5\\xb8\\x5c\\xfa\\x16\\x21\\x56\\xe0\\xbc\\x6b\\xfe\\x02\\xfb\\x4c\\x38\\x60\\x8c\\xfb\\x23\\xc9\\x2b\\x8b\\x6a\\x3c\\xb4\\x6e\\x48\\x7d\\x60\\xe0\\xdc\\x97\\xaa\\x2e\\x33\\xe3\\xda\\xda\\x92\\x5e\\x4e\\x66\\x12\\xcc\\x5a\\xf1\\x25\\xe5\\xac\\xa4\\x58\\x17\\xa2\\xfd\\x6c\\x3f\\xf1\\x0b\\x18\\x93\\x8b\\x44\\xbd\\x4d\\xd2\\x0d\\x7f\\xcc\\xf7\\xf2\\x6b\\x40\\xa6\\x6f\\x48\\xaa\\xff\\xc9\\xa5\\x41\\xe6\\xd3\\x71\\x38\\xfc\\x55\\x46\\x98\\x68\\xe2\\xd1\\x03\\x65\\xef\\xf3\\x7f\\xac\\x36\\x0f\\xab\\x3d\\xc5\\x54\\x37\\xac\\x2d\\x8f\\xea\\x74\\x74\\x40\\x5f\\xb3\\x63\\x0f\\x79\\x63\\xd2\\xd4\\x59\\x58\\xf9\\x09\\xd1\\x48\\x30\\x28\\x6f\\xf1\\x52\\xaa\\x75\\x2f\\x51\\x0c\\xe9\\x80\\xbd\\x57\\x54\\xe3\\xfa\\x32\\xc6\\x99\\x24\\xdd\\x95\\xd5\\xc1\\x52\\xa7\\x37\\xa8\\xfa\\xdc\\xfd\\x0a\\x45\\x60\\xe0\\xb1\\x14\\xf8\\xe8\\xaa\\xa6\\x18\\xd4\\x38\\xb9\\x87\\x71\\x11\\xda\\x17\\x40\\xef\\x81\\x7c\\x44\\x19\\x39\\xec\\xec\\x79\\x9b\\xa1\\x6b\\x1b\\x17\\x1c\\xa9\\xb6\\x49\\xb7\\xd7\\x8f\\xa0\\x52\\xd1\\x49\\x7a\\x50\\x76\\x88\\xbe\\xde\\x49\\x00\\xab\\xc5\\x3a\\x96\\x48\\xda\\x59\\x17\\x03\\x5c\\xef\\xfe\\x0d\\xa2\\x1c\\x25\\xc0\\x9b\\x06\\xd6\\x18\\x5b\\xdd\\xa2\\xd7\\x78\\xf7\\xed\\xe6\\x15\\x3e\\x3e\\xaf\\xf4\\x95\\xc9\\x79\\x6d\\x4d\\x16\\x6d\\x2d\\x2e\\xa4\\x18\\xe4\\xa4\\xaa\\x6e\\x67\\x8f\\xaf\\x06\\x96\\xe7\\x52\\xa0\\x9e\\x02\\xea\\xad\\xe7\\x63\\x07\\x0e\\x08\\x8e\\x99\\x64\\x91\\x9f\\xf4\\xaa\\x4c\\x82\\xf8\\x62\\x9a\\x3d\\x5c\\x79\\x7c\\x2a\\x64\\x59\\x4d\\x20\\x68\\x35\\xda\\x0b\\xfa\\x43\\xcc\\xd9\\xdd\\xfc\\xdb\\x6a\\xac\\x4d\\x48\\x6e\\x03\\xc8\\x41\\x22\\x37\\x59\\x39\\xa5\\x27\\x0b\\xc1\\x51\\x9e\\x07\\x07\\xe5\\x1c\\x3f\\x46\\xf1\\xe5\\xc5\\x66\\xb3\\x3a\\x24\\x5f\\xa0\\xc2\\x02\\x83\\x84\\x72\\x36\\x3d\\xe9\\xf0\\xed\\xde\\x2e\\x79\\x1d\\x82\\x29\\x30\\x95\\xf7\\x50\\xbf\\xf5\\x45\\xe6\\xc3\\x47\\x39\\xdc\\xc5\\x4d\\xb0\\xa3\\x6a\\xe2\\xe2\\xaa\\x39\\xb0\\x7c\\xb4\\xf6\\xa9\\x64\\x62\\x40\\xd2\\xd3\\x14\\x88\\xf6\\x78\\x15\\xb2\\x95\\x45\\xd2\\x20\\xbe\\x92\\x9e\\x33\\x39\\xf8\\x28\\x1a\\x93\\x7e\\x05\\xa8\\xc5\\xc3\\x88\\x7e\\x06\\x04\\x8e\\xa7\\xb1\\x8a\\x48\\xf8\\xd9\\x1b\\x1e\\x3a\\xf5\\xca\\xb5\\xce\\xda\\x0e\\xbd\\x71\\xbf\\x54\\xed\\xec\\x20\\x3d\\x37\\x16\\x5e\\x4c\\x9f\\x9f\\x80\\x46\\x1c\\xd2\\x9f\\xcd\\x99\\xdd\\xea\\x43\\x96\\x93\\x94\\x1b\\x5d\\x53\\xff\\x94\\x37\\x9c\\xf6\\x42\\x57\\x1d\\xd5\\x59\\xa1\\x1f\\x8f\\x38\\x3d\\x94\\x3f\\x22\\x55\\xcf\\x71\\x58\\x00\\xaf\\x77\\x6b\\x10\\x45\\xbf\\x19\\xa9\\xc9\\xbb\\x09\\x51\\x55\\xdf\\xb6\\x46\\xb6\\x5f\\x4a\\x28\\x0f\\x2a\\x97\\xef\\x92\\x7d\\xda\\xbe\\x24\\xa2\\xf9\\x71\\xa8\\x17\\x0d\\xd4\\x2a\\x08\\x92\\x76\\x82\\x5c\\xb9\\x14\\x8c\\x01\\x5a\\xae\\x1e\\x9d\\xad\\xf2\\x2c\\x10\\xe7\\x54\\x8c\\x59\\xbf\\x6b\\x86\\x8b\\x20\\xe8\\x6c\\x83\\xa9\\xe7\\x34\\x3a\\xec\\x27\\x54\\xee\\x62\\x25\\xf9\\xfd\\xce\\xaf\\x8e\\x51\\xc4\\x0e\\x95\\x5b\\xda\\x49\\xc3\\x5d\\xed\\x38\\xfa\\x8b\\xcc\\x1e\\x6c\\x8f\\xc9\\xc2\\x41\\x2e\\x91\\x04\\xc5\\xc2\\x36\\x8b\\x1f\\x99\\x23\\xe0\\x10\\xfa\\x2e\\xde\\x91\\x1d\\x42\\xb1\\x39\\xf4\\x00\\x7e\\x34\\x26\\x92\\x2f\\xfb\\x61\\x58\\xec\\xa9\\x7b\\x47\\xcf\\xc9\\x97\\x85\\x35\\x12\\xbb\\x9d\\x4c\\xa2\\xf0\\x17\\xc2\\xc2\\x63\\xdc\\x19\\x9f\\x3b\\xf1\\xeb\\x4f\\x15\\x08\\xef\\x82\\x8b\\x0e\\x00\\xdb\\x21\\x00\\x27\\x36\\xa7\\xf2\\x2e\\xc9\\x12\\x98\\x19\\x45\\x83\\x13\\x9a\\xd7\\x5f\\x58\\xe2\\x1b\\x51\\x8d\\xaa\\x49\\xa4\\x07\\x6c\\x63\\x75\\xfa\\xa6\\x08\\x91\\xa6\\x9e\\x52\\xa6\\x56\\x69\\x9d\\x80\\x34\\xa7\\xab\\x7f\\xcb\\xe4\\x21\\x75\\x49\\x14\\x41\\xfe\\x61\\xb1\\x78\\x3e\\x83\\x78\\x57\\x52\\x22\\x15\\xa5\\xfa\\xc5\\x59\\x0b\\xed\\x2e\\x9d\\x20\\x66\\x06\\x09\\x6d\\x3b\\xe8\\xee\\x92\\x87\\x3b\\xfc\\x30\\xca\\xb1\\x5c\\xe9\\xf9\\x91\\x0d\\x01\\xa1\\x17\\xf8\\x99\\x26\\xcc\\x3a\\xfa\\x8d\\x10\\x4f\\x79\\x9f\\xf3\\x80\\x98\\xde\\x28\\xb8\\xff\\x0f\\x03\\x87\\x25\\xc2\\x90\\x3b\\x24\\xc1\\x42\\x9c\\xea\\x49\\x25\\x24\\x9d\\x87\\x81\"},\n{{0x06,0x1b,0xcf,0x1a,0xa6,0xfd,0x98,0x98,0x97,0xb3,0x22,0xe5,0x91,0xcc,0xef,0x54,0x54,0xef,0x4a,0x5a,0xdb,0x1a,0x48,0x00,0xf3,0x26,0x11,0xcf,0xf2,0xb5,0xbc,0x78,},{0x73,0xc8,0x0b,0x73,0x4b,0xfc,0x94,0x17,0xd5,0x76,0x89,0x0c,0x20,0x16,0x6d,0xa5,0xc7,0xfa,0xbd,0x61,0x3f,0x75,0x47,0x4f,0x76,0x49,0x73,0x2e,0x00,0x29,0x5b,0xe2,},{0x5a,0xda,0xa9,0x43,0x30,0xa0,0x35,0x37,0x12,0xa3,0x4d,0xbe,0x97,0x3b,0x75,0x18,0xf9,0xa2,0xc7,0x13,0xf8,0xaa,0xd1,0x00,0x25,0x1b,0x08,0x6a,0xe8,0xde,0x26,0xf6,0xd2,0xb6,0xcc,0xf0,0x52,0x8c,0xc5,0xde,0xdc,0xa3,0x18,0xdf,0x19,0xcc,0x7e,0x45,0xde,0xae,0x28,0x1e,0x13,0x24,0xb9,0x6e,0x32,0xfe,0xf4,0x5a,0xaf,0x60,0xb1,0x0c,},\"\\xd6\\x3b\\xb9\\x20\\x8c\\x1f\\x4c\\x7d\\x43\\x32\\x6c\\xf3\\x5f\\xa5\\xd8\\x39\\x33\\x15\\x18\\x04\\xab\\x89\\x1d\\x49\\xb0\\xbd\\xaf\\x42\\x9e\\x4c\\x39\\xa3\\x21\\x42\\x8e\\x0d\\x90\\xaa\\x00\\x31\\x8b\\x97\\xe0\\x8c\\x70\\x24\\xc9\\x12\\xcf\\x38\\x88\\x79\\xf3\\xcf\\x97\\x4b\\xb2\\x53\\xa1\\xe7\\xa4\\xc8\\xee\\xc1\\x93\\xbf\\x4c\\x14\\xaf\\x6f\\xb9\\x79\\x4d\\xf0\\xd4\\x97\\x85\\x0e\\xdb\\x04\\xd5\\x74\\xc9\\x7e\\xd7\\x6c\\x70\\x21\\x39\\x96\\x84\\x01\\xb4\\x0e\\xb5\\x43\\x94\\xef\\x4c\\xfa\\xa7\\xe5\\xd3\\xcd\\x94\\x3a\\xf1\\x21\\x92\\x53\\x8d\\xde\\xe5\\x93\\xc2\\xa2\\x4a\\x26\\x7a\\xfa\\x13\\x71\\xfd\\x77\\xfe\\xee\\x20\\x71\\xf4\\x36\\x9f\\xbe\\xf8\\x79\\x76\\xe7\\xeb\\xd8\\x1d\\x1e\\x5b\\x31\\xd6\\xe0\\x9e\\x02\\xd8\\x30\\x35\\x7d\\x36\\xbf\\xf8\\x59\\x67\\x03\\xe4\\x14\\x6d\\x08\\x27\\xbe\\xc9\\xc0\\xf8\\x7b\\x26\\xf3\\x11\\x95\\xc9\\x6c\\x93\\xb6\\xd8\\xc4\\x67\\x67\\xec\\x1b\\xc6\\xde\\x39\\xf0\\x00\\x8a\\x41\\xff\\x87\\x5d\\xa0\\x50\\xa3\\xf8\\x65\\xab\\x92\\xcb\\xf2\\x9c\\x38\\xa2\\x80\\xf3\\xbf\\x69\\xf6\\x8e\\x92\\xb5\\xf4\\x30\\xcd\\xee\\x35\\x01\\x98\\x1d\\x0b\\x3d\\x18\\x90\\x96\\xe0\\xae\\xac\\xd6\\x4c\\x33\\x10\\x24\\x21\\x34\\x88\\x12\\x15\\x8b\\xb6\\x1e\\x51\\xae\\x93\\x65\\x92\\xb2\\xf8\\xf1\\xb9\\x10\\x94\\x9e\\xf3\\x72\\x32\\x58\\xa9\\xb4\\x4e\\x4e\\x1b\\xda\\xdf\\x1a\\xe2\\xcf\\xc1\\x8e\\x37\\xd2\\xed\\x0d\\xd1\\x73\\x44\\x04\\xb8\\xba\\xa5\\xf3\\x93\\xcd\\x56\\x06\\x9e\\xce\\xbf\\x7e\\xdd\\x7c\\x06\\xcf\\x6c\\x8a\\xa3\\xe8\\xe1\\x2f\\xbf\\x94\\x6d\\x7b\\x32\\xd8\\x45\\x3b\\x6f\\xbb\\x65\\x35\\x52\\x6c\\x8f\\xb8\\xfc\\x1d\\x58\\x15\\x56\\x0b\\xb3\\x1b\\x99\\x5d\\xf2\\xad\\xbd\\x83\\x6a\\xdd\\x92\\x9a\\x56\\xfd\\xd9\\x3a\\x17\\x47\\xd9\\x3a\\x40\\xc0\\x5e\\x12\\x9e\\xb6\\xf8\\x58\\x3c\\x29\\x21\\xcc\\x9d\\xbd\\xda\\x42\\x25\\xe1\\x76\\xdb\\x38\\x6a\\x02\\xec\\x40\\xaf\\x10\\x32\\xc9\\xb6\\x2e\\x95\\x14\\x70\\x25\\xf4\\xac\\x8d\\xd5\\x84\\x33\\xb6\\x4a\\xc0\\x73\\x15\\x0c\\x69\\xb9\\xc4\\x15\\x4d\\xcb\\xb0\\x03\\x44\\xf3\\x08\\x11\\x3c\\xd9\\x19\\x9c\\xcf\\xb5\\x07\\x58\\x01\\xc7\\x05\\xb8\\xfc\\x43\\xb7\\xc8\\xbc\\x16\\x73\\x65\\xe4\\x62\\x93\\xd0\\x6c\\x4f\\x48\\x35\\xc6\\x4e\\xe5\\xd5\\x38\\x3f\\x68\\x90\\xca\\x35\\xa8\\x0a\\xf9\\x17\\x74\\x81\\x62\\xdf\\x25\\x18\\xab\\x14\\x68\\xf1\\x53\\x62\\x98\\x99\\x40\\x6c\\xde\\x66\\xce\\x07\\xfa\\x7d\\x29\\x93\\xda\\xbe\\x0c\\x60\\x08\\x9c\\x91\\x89\\x24\\x88\\xf3\\xbc\\xaa\\xec\\x40\\x8a\\x0c\\xd0\\x8c\\x9a\\xa9\\x8e\\x09\\x37\\xe0\\x2c\\x41\\xad\\x52\\xd2\\x41\\xa9\\x98\\x33\\xe3\\xb8\\x3f\\x7d\\x3f\\x1b\\x07\\x8c\\x31\\xd4\\x5c\\x34\\xfa\\x01\\x75\\xab\\xbd\\x0f\\x32\\x2b\\x8f\\xd2\\xdc\\x83\\x49\\x1d\\xa2\\x92\\xad\\x00\\x76\\x2e\\x3e\\x57\\x7b\\x9e\\xee\\x0a\\xae\\x08\\x72\\x90\\x70\\xac\\x25\\xe3\\x3b\\xc9\\x45\\x25\\xbc\\x0d\\x2a\\xb5\\x97\\x04\\xef\\xec\\x5c\\x01\\x48\\x42\\x1a\\x47\\x92\\x8d\\x34\\xb1\\xe4\\x5c\\xe7\\x21\\xee\\x64\\x47\\xfb\\x08\\x2a\\xc4\\x00\\xb3\\xe6\\x84\\x6d\\x20\\x4f\\x7f\\x9d\\xb6\\xf0\\xa3\\x2b\\x2a\\x69\\x73\\x8b\\x3e\\xe9\\xdd\\xbb\\x0d\\xbd\\x7e\\x0f\\x04\\x1d\\x7e\\xa5\\x3a\\x5d\\x64\\x7f\\xb5\\x0b\\x39\\xae\\x24\\xd7\\x8c\\x8b\\x07\\xcf\\xc4\\xe0\\x52\\x71\\x1f\\x0d\\x46\\x39\\xe7\\x21\\xd5\\xc3\\x6f\\x31\\xb5\\x88\\x86\\x67\\x12\\xb7\\x57\\x10\\x8a\\x40\\xcc\\x7a\\xbb\\xb9\\x91\\x30\\x83\\x30\\x3a\\xae\\x05\\xa0\\xf1\\xaf\\x0e\\xc6\\x87\\x84\\x41\\xa2\\x5c\\xf8\\x72\\x9a\\xba\\x42\\xa3\\xa9\\x4c\\xe9\\xb7\\x38\\x88\\xa0\\xf5\\xc9\\xe4\\x0c\\x9f\\xc4\\x54\\x10\\xf0\\x68\\x1f\\xa7\\xf9\\x08\\x98\\x56\\x2c\\xcb\\x4b\\xbc\\x55\\xf0\\xab\\x1f\\xe9\\xc7\\x0e\\xa6\\x60\\x26\\xdd\\xa8\\xd7\\x09\\x0f\\x7b\\x38\\xed\\xb5\\xae\\xc1\\x55\\x7b\\x11\\x66\\x98\\x7c\\xd4\\x1a\\x70\\x59\\xcd\\xee\\x60\\x9b\\x74\\xd8\\xfe\\x06\\xb7\\x05\\x9b\\x77\\x24\\xbf\\xf5\\x30\\x07\\xf7\\xe1\\x10\\x46\\x2f\\x06\\xad\\x14\\xd0\\x7e\\xe1\\xb4\\xd6\\x9a\\xc8\\x23\\xbc\\xf5\\x76\\xd2\\xfa\\x9e\\x2e\\x8e\\xd7\\xf3\\x19\\x80\\x40\\xd4\\x71\\x29\\x60\\x63\\x13\\x7c\\x98\\x1a\\xdb\\xf3\\x64\\xcb\\x20\\xf0\\xa1\\xad\\x20\\x54\\x47\\x2f\\x7c\\xee\\x25\\x27\\xf9\\x98\\x09\\x61\\x5d\\x2e\\x4b\\x73\\x4b\\x06\\xf3\\x5d\\xee\\xcb\\xd6\\x26\\x19\\x66\\x3d\\xde\\x81\\xd6\\xe2\\x35\\x28\\xb0\\xc9\\x71\\x32\\xaf\\x0a\\x23\\xba\\xd6\\x3d\\x9c\\x08\\x14\\x2a\\x26\\xe2\\x74\\x3f\\x86\\x18\\xec\\xfe\\x72\\x3b\\x19\\xff\\xdd\\x0b\\x19\\xab\\xd9\\xa3\\xf4\\xfe\\x21\\x0b\\x1e\\x71\\xac\\xdf\\xe3\\x8a\\xbe\\xbe\\x23\\xf7\\xfd\\xef\\x66\\x38\\x1c\\xbc\\x75\\xf3\\x07\\xe5\\x57\\x72\\x35\\xb0\\x2e\\x4c\\xd9\\xcf\\xaa\\x15\\x03\\x08\\x68\\xed\\x14\\x53\\xda\\x58\\xf7\\x83\\xb7\\x35\\x2b\\x04\\x65\\x68\\x44\\xc0\\x42\\x44\\x1e\\xfe\\x6a\\x3b\\x4f\\x8f\\xec\\x8f\\x7d\\xe8\\x07\\x44\\x54\\x0c\\x4f\\xc7\\xa1\\x07\\xf4\\xe1\\xbf\\xcb\\xd9\\x9d\\xa2\\x5b\\x97\\x46\\x09\\x5d\\xdf\\x01\\x25\\xd5\\x6d\\xa7\\xe7\\xf8\\x60\\x3f\\x04\\xd3\\x59\\xa0\\x88\\xb4\\xc0\\x44\\xf9\\x36\\xcc\\xb7\\xd8\\xf8\\x9e\\xd5\\x3c\\xc9\\x91\\xa3\\x49\\x7c\\xa9\\x52\\x09\\x4f\\xf3\\xc3\\x30\\x46\\xf2\\x60\\x9d\\x07\\xb2\\x9b\\x63\\x39\\x81\\x36\\x9c\\xb2\\xf0\\xee\\xcd\"},\n{{0x2e,0x19,0xcd,0x44,0x2f,0x22,0xa4,0xa9,0x9d,0xff,0xc5,0x5e,0x7b,0xf6,0x25,0xf8,0x9d,0x13,0x44,0xb5,0x63,0xf6,0x78,0x53,0x13,0xa7,0xee,0xe9,0x73,0xb4,0xaa,0x36,},{0xee,0x3d,0xa7,0x6a,0x8f,0xcf,0x40,0x3a,0x29,0x58,0xd4,0x55,0x1d,0xa0,0xa7,0x2b,0x2e,0x73,0x85,0x22,0xb2,0xe6,0xb2,0x0f,0xba,0x6a,0xa2,0x6b,0x32,0x30,0x73,0x57,},{0x28,0x32,0x6b,0x5b,0x97,0x8e,0x0d,0xbd,0xab,0x5d,0xde,0x70,0x37,0x85,0xa6,0x67,0xa7,0xef,0x43,0x9d,0x81,0xea,0x47,0xe0,0x66,0xb0,0x89,0xd1,0x16,0xc2,0x5a,0x34,0xbb,0x63,0x3f,0x26,0x0d,0x55,0xf4,0x5b,0xdf,0x6b,0xcd,0xa7,0x48,0x03,0xd7,0x62,0x4b,0x19,0x27,0xce,0xc1,0x8e,0xb1,0x99,0x22,0x60,0xbe,0xef,0xc3,0x99,0xd9,0x0e,},\"\\x1b\\xfc\\x5c\\x6a\\xa6\\xa5\\x35\\x4f\\xbb\\x86\\x14\\x69\\x79\\x63\\x48\\xac\\x63\\x19\\x12\\x4d\\xa3\\xf1\\x0d\\x20\\xd5\\x0b\\xbd\\xc7\\x15\\x9d\\x41\\xb5\\xab\\xb1\\x36\\xc7\\x99\\x6a\\x77\\x37\\x97\\x12\\x2b\\x52\\x5e\\x8e\\x2d\\xca\\x19\\x54\\xf6\\x39\\x17\\x07\\x30\\x1d\\x90\\xf2\\x10\\x1b\\x46\\xc7\\xb0\\x86\\xef\\xa1\\x58\\x77\\xca\\xdc\\xd0\\x58\\x12\\xdb\\x34\\xb9\\x96\\xcb\\x4f\\x53\\x1a\\xbc\\xd1\\xe9\\x8d\\xb0\\x8a\\x5c\\xf1\\x36\\x8e\\x8f\\x4b\\x11\\x09\\x14\\x2e\\x95\\x62\\xbd\\x00\\x85\\xff\\xae\\x5e\\x66\\x0f\\x59\\xc9\\x30\\x79\\x3e\\xbd\\xb6\\xe8\\x0b\\x0a\\x2f\\x4f\\x3f\\x59\\xbf\\x9d\\x39\\x5c\\x48\\xd2\\x6e\\x0a\\x72\\xa6\\x0f\\x9d\\x1f\\xf8\\x7f\\xd2\\xd7\\xa3\\xf5\\x38\\x3a\\xa9\\x02\\xad\\xed\\xed\\xeb\\xc6\\xcd\\x1b\\xef\\xd0\\x38\\x33\\x61\\x62\\x74\\x9d\\x91\\xa9\\x57\\xca\\x2e\\x3d\\xd4\\x70\\x91\\xc5\\x59\\x31\\x13\\xda\\x87\\xc3\\xd6\\x6a\\x02\\xc8\\x0a\\x6e\\xdd\\xb5\\x35\\xc4\\x8c\\xa1\\xf3\\x4a\\x97\\xfd\\x1c\\x95\\xeb\\xc2\\xe5\\x70\\xfc\\x8f\\xaf\\xe6\\xe5\\xd6\\x54\\x6d\\x1f\\x3a\\x9b\\xa8\\xda\\xac\\x33\\x4c\\xf4\\x7b\\xf1\\x17\\xe1\\x28\\x0d\\x0e\\xbd\\xf1\\x4b\\x0f\\xcd\\xbb\\x43\\xb8\\xd2\\x48\\xcc\\x6b\\x61\\x32\\x0f\\xdb\\x04\\x49\\xed\\x5f\\x5d\\xe8\\xba\\xb1\\x21\\xaf\\x0d\\x85\\x54\\x95\\x6e\\x6a\\x12\\x01\\x6b\\x42\\x67\\x7b\\x44\\x36\\x78\\x92\\xc3\\xb2\\x0a\\xfc\\xc2\\xcb\\x9c\\xfb\\x5b\\x10\\x0a\\x95\\xb5\\x1e\\x8b\\x07\\xda\\x9f\\x51\\x41\\x5f\\x4c\\xd7\\x78\\x1a\\x31\\x37\\x65\\xe2\\x0d\\xb2\\x7f\\x23\\x43\\xe0\\xf7\\x19\\xec\\xea\\x9a\\xf0\\x26\\x95\\x6f\\x33\\x87\\xe9\\xea\\x7e\\xd0\\xa2\\x93\\x75\\x9b\\x4a\\x26\\x22\\x02\\x80\\x7b\\x41\\x30\\x9f\\xb8\\x0f\\x50\\x18\\x5d\\xb6\\xa5\\xf8\\xbd\\xca\\x17\\x88\\x41\\xbe\\xc0\\x6a\\xdd\\xc7\\x61\\x0d\\xf7\\x60\\x17\\xb5\\x14\\xbc\\x41\\x42\\xf2\\x6a\\x36\\xbf\\x5b\\xac\\xec\\xb0\\x12\\xfa\\x41\\x71\\x0d\\xd8\\x49\\xbe\\xf7\\xa7\\xe4\\x51\\x43\\x28\\x36\\xfe\\x9b\\x32\\x65\\xfd\\x5b\\x59\\xee\\x40\\xb0\\x4d\\xad\\x85\\xcf\\x48\\xf8\\x91\\x46\\x5a\\x84\\x2c\\xd4\\x50\\x0a\\x10\\x24\\xee\\xfd\\xf0\\xf5\\x54\\xf0\\xca\\x17\\xec\\x9f\\x7b\\x71\\x52\\x56\\xa9\\xb9\\xdb\\xe2\\x79\\x66\\x38\\x6d\\x8a\\xc3\\x7d\\x3c\\x51\\x58\\x96\\xde\\x0f\\x7c\\xdf\\x7c\\xf5\\xb3\\x20\\xff\\x7a\\x8e\\xf6\\xb3\\x4b\\xa8\\x20\\xab\\xa9\\x06\\x6d\\xd2\\x53\\xc5\\xb7\\x76\\x37\\x77\\xf9\\x4b\\x2d\\x6a\\xd8\\xc7\\x10\\x22\\x1e\\x11\\x37\\x53\\x5d\\xff\\x8a\\x1b\\x75\\x65\\xec\\x81\\xbd\\x8d\\xde\\xb5\\x02\\xe3\\xd5\\x8f\\xf8\\xf1\\xfe\\x6e\\x86\\xb8\\xdc\\x15\\xa3\\xaa\\xec\\x68\\x8b\\xbb\\xec\\xd4\\x68\\x82\\x81\\xdb\\x0f\\x81\\x8d\\xe0\\xf7\\x26\\x1b\\xa9\\xcc\\x58\\xc8\\xbc\\x0d\\x02\\xe0\\x66\\x32\\xef\\xe7\\x28\\x7a\\xd7\\xa8\\x43\\x31\\xa8\\x24\\xd9\\x28\\x73\\x44\\xef\\xaa\\xa7\\x4f\\x1f\\xc5\\x76\\xd0\\x26\\x94\\x30\\xf8\\x56\\xa8\\x56\\x52\\x65\\xb9\\xd6\\xef\\x71\\xfe\\x13\\x4d\\x25\\x10\\xab\\x06\\xb6\\x0b\\xf3\\xc1\\x53\\xb5\\x7e\\xcf\\xd2\\xe6\\x34\\x24\\x03\\xfe\\x67\\x8b\\x58\\x86\\xb6\\xb7\\x34\\xb7\\xd3\\x69\\x06\\x62\\xb6\\xc8\\xc6\\xf6\\xe2\\x50\\xe5\\xaf\\x6a\\x81\\x83\\x16\\x6d\\xdc\\xd0\\xa1\\x7f\\x0c\\xdd\\xc8\\x63\\x6e\\xf1\\xa6\\x84\\x98\\xbe\\x50\\xb6\\x59\\x95\\x39\\xd4\\x6b\\x4c\\xea\\x97\\x13\\x0e\\x08\\xf9\\x4c\\xa5\\x3e\\x88\\x46\\x44\\xed\\xa7\\x5d\\x23\\xcd\\x2c\\x03\\x8a\\x5f\\x17\\xb5\\x91\\xe2\\x13\\x69\\x37\\x8c\\xd3\\xfb\\x57\\x62\\xd1\\xa7\\xc3\\xe6\\x6a\\x11\\xae\\x6e\\x91\\xcb\\xae\\x61\\x6a\\xd0\\x55\\xe3\\x9d\\xc4\\x1e\\x15\\x4f\\x4f\\xce\\xd7\\xb2\\x69\\x6d\\x9d\\xc6\\x73\\x80\\xbb\\x8e\\xef\\x47\\x4e\\x9a\\xa8\\x3c\\xec\\x47\\xfa\\xfa\\xfb\\x94\\x1d\\x62\\x65\\x64\\xb2\\x07\\x5b\\xcc\\x08\\x56\\xda\\x8d\\x6e\\x1b\\x0b\\x8f\\x18\\xba\\xf7\\x51\\x3b\\xbd\\x14\\xe4\\x91\\xed\\x51\\x79\\x68\\xc4\\xf7\\x24\\x1a\\xf2\\x50\\x98\\xee\\x8d\\xf1\\x30\\xb7\\xa3\\x4d\\x59\\x73\\x6d\\x78\\x36\\xd3\\x23\\xfe\\x3f\\x43\\xf5\\x08\\xcd\\xcb\\x75\\x58\\x95\\xf5\\x9a\\x00\\xc8\\x04\\xed\\x16\\x4c\\xc3\\x39\\x92\\xf3\\xae\\xe9\\x62\\xae\\x9e\\x99\\x0b\\x74\\x27\\x2e\\xb9\\x87\\xb1\\x2d\\x90\\xb2\\x73\\x14\\xd5\\x74\\x00\\xe7\\x37\\xd1\\x34\\x3e\\x97\\x09\\x85\\xc4\\x27\\x10\\x60\\x87\\x6a\\xbc\\xd7\\x04\\x9e\\x7c\\x9f\\xe2\\x44\\xff\\x3e\\xf9\\x85\\x60\\x99\\x5b\\x74\\x82\\xd3\\x1b\\xc7\\xc0\\x9d\\x99\\x69\\xf7\\xcd\\x41\\xf4\\xe4\\xe2\\x52\\x75\\x0d\\xc1\\x6c\\xcd\\xb2\\x9b\\x98\\x53\\x14\\xa0\\xb6\\xe7\\x49\\xc9\\x5f\\x9b\\xd2\\x83\\x8d\\x5a\\xc4\\x9e\\xe0\\x31\\xfd\\x07\\x9b\\xec\\x30\\x28\\xdd\\x9d\\xd0\\x7d\\xb6\\xfa\\x62\\x2a\\xd6\\x21\\xb3\\xb1\\xe1\\x27\\xe8\\xfc\\xa3\\x7b\\xd1\\x46\\xe3\\xcf\\x70\\x3e\\x91\\x17\\x01\\xb7\\xa1\\x6c\\x2d\\x30\\x36\\x9c\\x94\\x64\\x8e\\xcc\\x03\\xdf\\x10\\xd7\\xdd\\x5c\\x05\\x58\\xfa\\x95\\x93\\x42\\x5d\\x94\\x87\\x27\\xd6\\x86\\x0c\\x3a\\x14\\xf8\\x11\\x24\\x51\\x06\\x61\\x6d\\x2a\\x5f\\xa9\\x81\\xc6\\xb7\\xf4\\x7e\\xc9\\xde\\xf6\\x54\\x12\\xd1\\x32\\xac\\xc6\\x91\\x9d\\xa4\\xe8\\x85\\x97\\xaa\\x91\\x90\\xca\\x61\\x4b\\x21\\x80\\x66\\xa0\\xf7\\xb1\\x69\\x97\\xee\\x74\\x7c\\x5a\\x09\\x78\\x5e\\x50\\xd0\\xa8\\x91\\xd9\\x59\\x37\\x86\\x3d\\x61\\x3c\\xef\\xf7\"},\n{{0x82,0x10,0x90,0x99,0xd1,0xea,0xfe,0xed,0x5a,0x85,0x20,0x60,0x46,0x49,0x1b,0x34,0xd0,0x6d,0xcd,0xe3,0x3f,0x08,0x09,0x60,0x28,0x7b,0x10,0xfb,0x23,0xff,0x9f,0x78,},{0x08,0x1c,0xfd,0xf2,0xd7,0x58,0x65,0x4c,0x41,0xc4,0x47,0xe1,0xe6,0x27,0x38,0x10,0xf8,0xa7,0x38,0xa7,0x33,0xaf,0xc4,0x22,0x94,0xa2,0xb1,0xbb,0xb7,0x69,0xef,0xce,},{0xb3,0x98,0x7f,0x32,0x4b,0xc7,0xe7,0x76,0xc0,0xf2,0x87,0xfa,0x13,0xad,0x28,0x74,0x16,0x95,0xe2,0xe7,0xbc,0xe8,0xd1,0x43,0xe2,0x9f,0xad,0x5d,0x00,0x99,0x47,0x58,0xe2,0x25,0xfb,0x80,0x21,0x00,0xd2,0x3f,0xd6,0xcc,0xaf,0xee,0x8e,0x0a,0x95,0xbc,0x47,0x9b,0xe8,0xc2,0x3a,0x11,0x31,0x97,0x45,0x76,0x5b,0x7c,0xd4,0x7e,0x70,0x06,},\"\\x84\\xf4\\x7d\\xd7\\x94\\x97\\x7a\\x6c\\x15\\x05\\xac\\x8c\\x05\\x68\\x0c\\x56\\x15\\xa2\\xd5\\xb0\\x57\\xe3\\x9b\\x04\\xf8\\x5e\\x3f\\x9f\\xf0\\x49\\x60\\xe0\\xe0\\x16\\x68\\x5a\\x86\\xee\\xbc\\xec\\xf6\\xfb\\xce\\x5f\\xdd\\xcd\\xac\\x1a\\x47\\x4c\\x8a\\x0d\\x50\\x2c\\x40\\xe1\\x0f\\x94\\x86\\x46\\xfd\\xac\\x6c\\x81\\xf1\\xff\\xbb\\x17\\x7a\\x2a\\x49\\x63\\xb6\\x78\\x25\\x90\\x3c\\xde\\x65\\xb5\\xdb\\xe0\\xd8\\x94\\x1d\\x54\\x6c\\xff\\xa2\\xbf\\x8a\\x8c\\xa8\\xd6\\xc6\\x40\\x85\\x30\\xa6\\x29\\x0f\\x5d\\x08\\x82\\xf1\\xa1\\x67\\x2d\\xbf\\x97\\x8e\\x10\\xc5\\xc8\\xaf\\x5e\\x0a\\x62\\x39\\xf0\\x65\\x5e\\xe7\\xfd\\x9e\\x66\\x96\\x30\\x77\\xa0\\xe8\\x47\\x13\\x73\\x97\\xd1\\xf0\\x69\\x99\\xdc\\x6f\\x8a\\x94\\x5c\\x60\\x03\\xea\\x4e\\xa7\\xfd\\x58\\x37\\x8a\\xcb\\x44\\xed\\x57\\x80\\xea\\xa3\\x67\\x79\\x6b\\xee\\xa3\\x7d\\xdc\\x23\\x69\\x99\\xd0\\x12\\xd6\\xa7\\x16\\xd7\\x91\\x56\\x49\\xcc\\x28\\xe5\\x88\\x75\\x64\\x7e\\x9f\\x5a\\xc0\\x55\\x3c\\x0f\\x54\\x4d\\xf5\\x64\\x69\\xc6\\x70\\x81\\xd5\\xe3\\x03\\x95\\xf3\\xe9\\x60\\xe6\\xa5\\x2f\\x08\\x33\\x19\\x2c\\x54\\x8c\\xd5\\x7c\\x92\\x6b\\x82\\xdb\\x48\\xc3\\x61\\xbd\\xe7\\x03\\x33\\xa3\\x70\\x08\\x3e\\xaa\\xa0\\x68\\xdc\\x2a\\xe4\\x52\\xd2\\x1e\\xf1\\x33\\x1a\\xed\\x19\\x0b\\xd3\\xe1\\x28\\x9a\\x10\\x4c\\xf6\\x67\\x83\\x43\\x77\\xcf\\x7b\\x5a\\x29\\x77\\x48\\x07\\xc3\\xf1\\xea\\x9e\\x7b\\x28\\x83\\x1d\\x0f\\x6c\\x42\\x94\\x78\\x58\\x67\\xb1\\x37\\xb6\\x50\\x28\\xc1\\x4f\\x93\\x2a\\x1b\\xa8\\xe6\\xf9\\xf5\\x96\\x24\\xfe\\x0c\\x39\\x68\\x43\\xea\\x19\\xe4\\x6f\\xba\\x09\\x14\\x2c\\xf9\\xd4\\x24\\x97\\x31\\x2f\\x36\\x02\\x44\\x03\\x2f\\x1e\\x00\\xf3\\x8d\\xd0\\xde\\x29\\xf9\\x63\\xb5\\xcc\\xc1\\xef\\x12\\xb2\\xcc\\x62\\x04\\xb9\\x94\\xaf\\x1f\\x3b\\xaf\\x19\\x6d\\x9e\\x21\\xe8\\xfa\\x4f\\x09\\x73\\x20\\xc6\\x44\\x04\\xd0\\xb7\\xd5\\xab\\x38\\x56\\x0c\\xa0\\x65\\x53\\x64\\xb0\\xb0\\x9c\\xd6\\xdc\\x0f\\x0e\\x05\\xb8\\xc9\\x11\\x03\\x64\\xf1\\x42\\x4a\\x96\\x72\\xb7\\xef\\xdf\\x7e\\x1f\\x37\\x8e\\x23\\x45\\x50\\x56\\x6d\\xbe\\x13\\xb0\\x15\\x78\\xb0\\x41\\x53\\xe9\\xc3\\x7b\\x55\\x3e\\x32\\xa4\\x44\\x1b\\xc9\\x7e\\x29\\x53\\xbe\\xc2\\xe4\\x14\\x55\\x51\\x0f\\x98\\x02\\xef\\x94\\x8d\\xcb\\xf1\\x3f\\xad\\xdd\\x72\\x2e\\xde\\x57\\x36\\x27\\xb2\\x58\\xd5\\x5e\\x83\\xc0\\x89\\x5b\\x22\\x91\\x9e\\x4b\\xe5\\xce\\x8d\\x81\\x9c\\xe6\\xad\\x84\\x3b\\x2d\\xd0\\x9d\\xf6\\x40\\x04\\xc8\\x26\\xc1\\xdd\\xe7\\xce\\x64\\x80\\xa2\\x71\\xa8\\x58\\xa1\\xdb\\x16\\x9e\\x14\\x94\\xd4\\x46\\x90\\x32\\xbc\\xc1\\xcc\\xd8\\x96\\x53\\x19\\x8b\\x7c\\x07\\x3f\\x76\\xa2\\x6a\\x29\\x99\\xb5\\x64\\x8c\\xba\\xdc\\x15\\x74\\xc7\\x8e\\xad\\x8e\\xec\\xe8\\x3b\\x91\\xe1\\x29\\xc4\\x37\\xf9\\xee\\xec\\x04\\xc8\\x07\\x45\\x90\\x02\\xe6\\x6d\\xcc\\xa9\\xbf\\xc2\\xca\\xed\\x9e\\x6c\\x0b\\xa2\\x3d\\x23\\x55\\xde\\xf7\\x56\\x65\\x74\\x94\\x30\\xee\\x92\\xc5\\x32\\xa6\\x95\\x47\\x9f\\xec\\x92\\x91\\x74\\xf4\\x40\\xec\\xb6\\x1a\\x5a\\xe8\\xb2\\xb7\\xe9\\x58\\x92\\x05\\x58\\x26\\x89\\x78\\xf7\\xfb\\x4d\\xa1\\xb3\\x8b\\x12\\x01\\x4f\\x5d\\x61\\xb0\\xfd\\xd7\\xf6\\x13\\x6b\\xa4\\x28\\x1b\\x41\\xa3\\xa3\\xcd\\x18\\x80\\x52\\xb6\\x98\\x76\\x5b\\x6f\\x05\\xe4\\x1e\\x78\\x37\\x3e\\xa8\\x30\\x46\\x97\\x87\\xa3\\x75\\x10\\x99\\x3d\\x12\\xf9\\x3e\\x96\\xc7\\x2d\\x72\\xf4\\x46\\x19\\x84\\xf6\\x91\\xa4\\x1c\\x7d\\x33\\x97\\xdd\\xd5\\xa1\\xb3\\x92\\x37\\xd1\\x30\\x88\\x64\\xd4\\x15\\xfc\\x6c\\x22\\xb6\\x3f\\x37\\x6c\\xed\\xde\\x37\\xf5\\x25\\x2b\\x51\\xec\\x72\\xe5\\x15\\x5f\\x3b\\xdb\\x4f\\xcd\\x54\\x12\\x49\\x8b\\xd2\\xe0\\xc1\\xf9\\x85\\x0b\\x3a\\x85\\xd1\\xdf\\xd2\\x51\\x67\\xa3\\xcd\\x77\\x1e\\x8e\\x4c\\x9d\\x86\\x8c\\x95\\xa7\\x17\\x5e\\x37\\x75\\xf6\\xce\\xf1\\x7e\\x4e\\x36\\x49\\x7c\\xe9\\xe4\\x55\\x32\\xbd\\x7f\\x44\\xb2\\x77\\x6e\\x40\\xf9\\x1a\\x07\\xca\\x4f\\xa1\\xb9\\x5d\\xbe\\x81\\xcf\\x8f\\x49\\xe4\\x6b\\x6c\\x82\\xa6\\xee\\x43\\x47\\x91\\x8a\\x76\\x43\\xb0\\xd9\\xa3\\x88\\x57\\x21\\x2c\\x69\\x3e\\xad\\xac\\xfd\\x37\\xa5\\xf1\\xd9\\x15\\x58\\xf5\\x45\\x4d\\xcd\\xd0\\x59\\x35\\xf2\\x90\\xe6\\x2d\\x7e\\x65\\x00\\x6c\\xd5\\x49\\xf6\\x55\\x3c\\xe7\\x41\\xdf\\x44\\xd3\\x96\\x44\\x00\\x1e\\xb4\\x79\\xca\\x69\\x56\\x8a\\xd1\\xf2\\x3b\\xba\\x09\\x9a\\x41\\xa4\\x72\\x94\\xdb\\x93\\x87\\x31\\xc5\\x30\\xaf\\x1c\\xeb\\x92\\x17\\xd2\\x9b\\xc2\\x70\\x56\\x13\\xc1\\xa1\\xfe\\x9c\\x20\\x8d\\x0b\\x01\\xba\\x6f\\x4d\\x9b\\x4c\\x7b\\xa8\\xf0\\x21\\xdf\\x91\\xea\\x2d\\x57\\x8c\\xe0\\x83\\x12\\x3e\\x83\\xba\\x4b\\x9c\\x50\\x40\\x7f\\x66\\x66\\xfb\\xe6\\x11\\x58\\xb0\\xd1\\xb9\\x57\\x77\\x72\\xe3\\xea\\xff\\x8f\\xb4\\x29\\xd0\\xf6\\xd2\\xe3\\x84\\x12\\x61\\x30\\xf2\\x1b\\x44\\x9f\\xb1\\xdc\\x17\\x0d\\xb4\\x5a\\xf5\\x05\\xbd\\x31\\x82\\x67\\x8a\\x9b\\x5f\\x9f\\xdf\\xf6\\x5f\\x04\\x13\\xb6\\x72\\xc4\\x78\\x63\\x40\\xfc\\xf2\\x52\\x2e\\xa7\\xf3\\xd8\\xad\\xe8\\xa0\\x59\\x52\\x96\\x49\\xdb\\xda\\x9c\\xe5\\x1f\\xf0\\x5a\\x2a\\x2a\\x3d\\x66\\xd2\\x16\\x6b\\xf2\\xc9\\xc6\\x77\\x2b\\xa0\\xef\\x41\\x05\\xe6\\x8c\\x05\\x5e\\x02\\x13\\xd4\\x2c\\x1e\\xe1\\x23\\xb3\\xc1\\x21\\x78\\x43\\xe6\\xec\\x57\\x5d\\x75\\x4d\\xf3\\xc9\\x0a\\x75\"},\n{{0x65,0xfc,0xbd,0x62,0x6d,0x00,0x21,0x11,0x33,0x4b,0xaa,0xd4,0xe6,0xa8,0x00,0x6e,0x47,0xa1,0xf9,0x13,0x97,0xbe,0xe6,0xdd,0x6c,0xd7,0xda,0x5a,0x0e,0x02,0x48,0xa4,},{0x20,0x40,0x9a,0x14,0x6b,0x42,0xc9,0x6b,0xea,0xb0,0xb4,0x2e,0xa7,0xf2,0xc2,0x51,0x93,0x11,0x9d,0x0d,0xf4,0x4d,0xc2,0xbf,0x14,0xd1,0x1a,0x32,0xfd,0x73,0x36,0x15,},{0xbc,0x78,0xe1,0x6b,0xa6,0x74,0xe0,0xa7,0xdb,0xa5,0x7a,0x19,0x09,0x4f,0x97,0x33,0xc5,0x5d,0x74,0xb9,0xd1,0x5f,0x8a,0x44,0xd1,0xbb,0xc0,0xa0,0x23,0xf7,0x01,0x55,0xde,0x29,0x77,0x11,0x1a,0x41,0x7e,0xef,0xa8,0xcb,0x30,0xec,0x12,0xab,0xc8,0x38,0x42,0x28,0x16,0x7c,0x70,0x98,0x2a,0x82,0x06,0xb1,0xff,0xb7,0x21,0x74,0xaf,0x01,},\"\\xe4\\xc0\\x94\\x7f\\xc8\\xca\\x78\\xfa\\x88\\x63\\xf4\\xd0\\x44\\x49\\x9d\\x03\\x6e\\x2e\\x7e\\xf8\\xc1\\x7e\\x83\\x8f\\x2f\\xac\\x02\\x67\\x5b\\x7b\\x53\\x81\\xe5\\xf9\\xab\\xce\\xaf\\xd0\\xd8\\x88\\x6a\\x92\\x9d\\x9d\\x9b\\x49\\xfc\\xb7\\x38\\x61\\xb2\\x9d\\x15\\x18\\xac\\x5f\\x83\\xf7\\xf8\\xfc\\x26\\xbd\\x1c\\xeb\\xc2\\x2d\\x87\\x3a\\x9a\\x08\\x23\\x14\\x06\\xfb\\x03\\x2e\\x48\\x66\\xe5\\xf5\\x5c\\x7c\\x04\\x41\\xc5\\x19\\x04\\x1b\\xb2\\xcc\\x73\\xf9\\x22\\x6d\\xd5\\xd0\\x7e\\xce\\xb6\\x60\\xd6\\xc9\\x67\\xdb\\x23\\x36\\x55\\x74\\xbe\\xe8\\xfc\\x10\\x22\\x29\\x28\\x76\\x77\\x13\\x57\\x1a\\x71\\xc9\\x3a\\x85\\x27\\x8d\\x42\\x29\\x9a\\x70\\x59\\x9c\\xa9\\x93\\x26\\xcc\\x86\\xf6\\xd9\\x8d\\xaa\\xc0\\x00\\xfd\\xfa\\x71\\x05\\x62\\xf4\\x81\\xfa\\xa0\\x20\\xc7\\x2a\\x76\\xe2\\x06\\x7d\\x15\\x4c\\x23\\x5a\\x7a\\x4f\\x29\\x70\\x8c\\xc5\\x44\\x53\\x3b\\xd7\\x99\\xed\\x63\\x63\\xeb\\x3b\\x56\\xaa\\x4a\\x6d\\x0e\\x37\\x9b\\xbf\\x07\\x60\\x05\\x95\\xc2\\x3a\\xb1\\xf3\\xf9\\xf1\\x70\\x8e\\x00\\x70\\x26\\x1b\\xbb\\xf4\\xbf\\xea\\xf6\\xd6\\xce\\xd4\\xd7\\xff\\x72\\x2c\\x9c\\xc5\\x2d\\x91\\x33\\xea\\x68\\xd4\\x95\\xdc\\x94\\x89\\xc3\\xed\\xf6\\x83\\x02\\x31\\x35\\x1f\\x65\\xcb\\x52\\x72\\xf5\\x39\\x6e\\x2c\\x4a\\x1a\\x5c\\x88\\x66\\x1a\\x10\\x18\\x92\\x24\\x9e\\x23\\xd6\\xce\\x9f\\xdb\\x6a\\x9a\\xbf\\x74\\x27\\x2c\\x2f\\x59\\xc3\\xd8\\xfd\\x87\\x43\\xcc\\xe4\\x61\\x12\\x6c\\xa0\\xa8\\xb8\\x32\\xb4\\xb2\\x18\\x33\\x6b\\x1a\\xe1\\x4d\\xa6\\x77\\xba\\x7f\\x1b\\x2c\\xc5\\xca\\x3c\\x71\\x58\\xf7\\x27\\xa9\\xe1\\xb8\\xfd\\xd9\\xed\\xf5\\xc2\\x18\\x7f\\xcb\\x83\\xdb\\x86\\x2a\\xd0\\xc6\\xb3\\x92\\x16\\xde\\x31\\x16\\x91\\x95\\x56\\x46\\x51\\x00\\xad\\xe0\\xa4\\x2b\\xd6\\xba\\x10\\xd9\\x54\\x18\\xb6\\x9a\\x3e\\x00\\x5e\\x9f\\x10\\x45\\x89\\xea\\x59\\x48\\xb2\\xb5\\x1b\\xc7\\xb1\\xa9\\xa0\\x74\\x9d\\xa8\\xf0\\x13\\x78\\x1b\\xc0\\x5c\\x80\\x5b\\xb5\\x1e\\x18\\x77\\x61\\xac\\x24\\xc7\\x64\\x14\\xf6\\x68\\xeb\\x45\\xfb\\x0a\\x50\\x24\\xdf\\xe5\\xa5\\xca\\x06\\xf0\\x40\\x3a\\x02\\xe3\\xb2\\xfe\\xf7\\xa2\\xc4\\xbc\\xfb\\x1d\\x07\\x5d\\x31\\x0d\\x51\\x97\\xe6\\x59\\xcd\\x14\\x02\\x3f\\xae\\xc2\\x0e\\x04\\x5c\\xab\\xcb\\x86\\xb2\\x21\\xa1\\xd4\\x82\\x71\\x13\\xff\\x32\\x67\\xa6\\x4d\\xeb\\xe9\\x93\\x90\\x04\\xca\\xba\\xc8\\x5e\\x5c\\x74\\x61\\xe7\\xe8\\x2a\\x97\\x5a\\xcf\\xae\\x0b\\x6c\\x51\\x6a\\x1c\\x60\\x53\\x74\\xcf\\xea\\x7d\\x81\\x90\\x44\\xef\\xd6\\xd7\\x46\\x54\\x42\\x4f\\xd5\\xc9\\x0f\\xf2\\x57\\x4f\\xcd\\x8e\\x00\\x77\\x40\\xd9\\x75\\x86\\x1d\\x0d\\xf5\\x25\\x9f\\xe4\\x3e\\x43\\x63\\x9e\\x36\\xe5\\x28\\x95\\x43\\x9b\\xa2\\xc2\\x7c\\x1e\\x88\\x9c\\x93\\x09\\x41\\x04\\xfe\\x91\\x49\\x21\\xbd\\x6f\\x25\\xd3\\x98\\x5a\\xb1\\xf2\\x2c\\xa5\\x57\\xb0\\xe4\\x9a\\xfc\\x73\\x75\\x24\\x3c\\x52\\x1c\\x6d\\x5f\\xaf\\xe0\\x38\\x1c\\xce\\xa8\\x28\\xe8\\x8e\\x64\\x7f\\xd9\\x09\\x76\\xb3\\xfb\\xec\\x19\\xfe\\x9a\\xdb\\x11\\x3c\\x64\\x04\\xbd\\x35\\x2b\\xfc\\x00\\x04\\x46\\xd2\\x10\\x05\\xb5\\xf9\\x50\\xae\\x07\\xe5\\x1c\\x76\\x8c\\xa3\\xff\\x61\\x77\\xb2\\xea\\xc5\\x0f\\x10\\xdd\\x2e\\x64\\x61\\x0f\\xa8\\xab\\x57\\x88\\xfa\\xee\\xe2\\x9d\\x12\\x90\\x09\\xd7\\xfe\\x46\\xaa\\x3d\\xa6\\xb9\\xd8\\x6c\\x73\\x06\\x5e\\xb5\\x16\\x1f\\xbd\\xbd\\xfa\\xc5\\x77\\x7c\\x4e\\x75\\x45\\x2e\\x6e\\x16\\xae\\x9f\\xd6\\x6b\\xb7\\xd9\\xaa\\xa4\\x26\\xbc\\xb7\\xa6\\x91\\x5f\\x0f\\xf4\\x4a\\x1f\\x8e\\xc7\\x13\\x94\\xe9\\x35\\x2f\\xdf\\x20\\xe0\\x2f\\xaf\\xe1\\xe0\\xce\\xfe\\x50\\x74\\x4c\\x31\\x94\\x95\\x6f\\x92\\x8f\\x82\\x53\\x37\\x55\\x37\\x38\\x38\\xdc\\xc1\\x29\\x6a\\x89\\x1a\\xdf\\x64\\x1c\\x73\\x82\\xd6\\x9b\\x4f\\x5a\\x43\\xd4\\xaf\\x77\\x72\\xa4\\xa1\\xee\\x87\\x92\\x92\\xd7\\xa4\\xf3\\x2a\\xc3\\x5e\\xe1\\x21\\xc6\\xc3\\x4c\\xa5\\xf9\\x84\\x87\\xa9\\x41\\xfc\\xb1\\xe6\\x5b\\x44\\xd4\\x45\\x61\\x27\\xee\\xdb\\x2f\\xcc\\x1c\\x3f\\x48\\xef\\xf9\\x30\\x09\\x81\\xe5\\x2a\\xc3\\x8b\\x49\\x6a\\xb8\\xbb\\xce\\x14\\x4a\\x85\\xeb\\x9c\\x07\\x63\\x8b\\x31\\xfd\\xaa\\x78\\x17\\x44\\xbc\\xe1\\x7e\\x8d\\x93\\xdc\\xdc\\x60\\xaf\\xed\\xa4\\x88\\x80\\x76\\x17\\xf8\\x8d\\x6a\\xa5\\x44\\x22\\xfd\\x34\\x7d\\xda\\xdd\\xef\\xf3\\x7a\\x56\\x3d\\xbf\\x19\\x97\\x4b\\x2a\\x23\\xbe\\x30\\x0f\\xbf\\xa6\\xc7\\xfc\\x41\\xf8\\x4c\\x69\\x05\\x41\\x52\\x69\\xf1\\x95\\x99\\x0b\\x5b\\x4d\\xe1\\x26\\x68\\xc7\\x1c\\x87\\xb5\\x04\\xf4\\x11\\x24\\xbf\\x94\\x43\\x6f\\x33\\x30\\x45\\x63\\x15\\x18\\x15\\x2c\\x51\\x62\\xa2\\x47\\x5c\\x40\\xef\\xb6\\xcb\\xda\\xaf\\x9a\\xf4\\x28\\xfe\\xd3\\x25\\xb3\\xa7\\xd9\\x4c\\x17\\x52\\x0f\\xd8\\x9e\\x00\\xdd\\xf0\\x8b\\x22\\xad\\xf6\\x61\\xf0\\xac\\xd7\\x23\\xb3\\x96\\x9d\\xc6\\x43\\x4e\\xa6\\xf9\\x2e\\xf5\\x8e\\x8d\\xfa\\xe5\\xb0\\xcc\\x28\\x85\\xba\\x98\\x7e\\xa1\\xd1\\x6c\\x39\\xb3\\x4e\\xf6\\x50\\x23\\x00\\x9d\\x63\\x45\\xe4\\x8e\\x36\\x91\\xa4\\x1f\\x02\\xa7\\x7b\\x7f\\xe1\\x33\\xea\\x9d\\xe7\\x56\\x5f\\x15\\x7a\\x20\\x78\\xae\\x98\\x8b\\xbb\\x26\\x6d\\x22\\xd5\\xfa\\x91\\xa7\\xb2\\x63\\xe9\\x8a\\xd2\\xdc\\x07\\x31\\xfe\\x5a\\x29\\x02\\x5a\\x0c\\xb4\\x36\\x86\\x4a\\x5a\\x60\\xdb\\x25\\x7f\\x1e\\x76\\xb5\\xc6\\x08\\xf2\\x5c\\xde\\xcc\\x87\\xea\\xe6\"},\n{{0xb5,0x00,0x76,0x8a,0x28,0x23,0x91,0x5c,0x4a,0x68,0x48,0xd3,0x5f,0x64,0x87,0xd4,0x3b,0xd7,0x66,0xd2,0xce,0x09,0x45,0xf8,0xa3,0xcc,0xdb,0x8d,0x82,0xa3,0x89,0x2b,},{0xb8,0xce,0xa2,0x15,0xa0,0x12,0x4e,0xed,0x27,0x00,0x57,0x25,0xd8,0x97,0x78,0x1e,0xa0,0x64,0xdc,0xef,0xb2,0x14,0x22,0xc8,0xbd,0x24,0x02,0xc5,0x6a,0x10,0x57,0x1c,},{0xe3,0xdb,0x47,0xa1,0x1e,0x10,0xe7,0x88,0x92,0x5d,0x14,0xb1,0xe2,0x8b,0x54,0xc9,0xfc,0xf9,0xb6,0xac,0xc1,0xdf,0x8c,0x14,0xf6,0x83,0xa5,0x67,0x2f,0xd5,0x04,0xdd,0x4a,0x47,0x5a,0x33,0x93,0xb3,0xef,0x8b,0xce,0xac,0x23,0x61,0xdb,0xba,0x35,0x30,0xaf,0x25,0xc2,0x46,0xc3,0xec,0x4c,0x05,0x89,0x9b,0x51,0x7f,0x6c,0xd3,0x4f,0x0a,},\"\\x0a\\x9f\\xda\\x8b\\x8c\\xfc\\xa7\\xa5\\xb0\\x5d\\x78\\x11\\x6f\\xce\\xe1\\x9a\\xb8\\x03\\xc1\\xc6\\x01\\x0c\\xe1\\x1d\\xaa\\x8e\\x93\\xa6\\x6d\\x12\\xc1\\x2e\\x47\\x4e\\xb9\\x1c\\x26\\x40\\xd9\\x7a\\x81\\x3d\\x9a\\x83\\x0d\\x26\\x88\\x68\\xeb\\x2e\\x37\\x70\\x42\\x5f\\x10\\xc7\\x58\\x40\\x46\\x8e\\x66\\x9d\\xc7\\xf6\\x1d\\x3b\\xe2\\xde\\x88\\xae\\x0e\\x54\\x2b\\xc8\\x09\\x67\\x91\\x13\\x95\\x7a\\x14\\xda\\x4e\\xaf\\xf5\\x49\\xbf\\xde\\x63\\x7d\\x7c\\xaf\\xdc\\x6a\\xa8\\x39\\x94\\x83\\x73\\x97\\xf8\\x6e\\x4f\\xde\\x86\\xd4\\x02\\xfa\\x9a\\xef\\x7f\\x65\\x54\\x9a\\x21\\x43\\x73\\xe5\\x60\\xe6\\xd7\\xa1\\xc2\\x76\\x9e\\x0c\\x7d\\x5a\\x01\\x71\\xe7\\xcc\\x00\\xdf\\xf3\\x6e\\x04\\x29\\x79\\x8b\\x53\\xaa\\x62\\x16\\x24\\xbd\\xa7\\x4d\\x6d\\xf0\\xbf\\xff\\xfb\\xd8\\xfd\\x7b\\xef\\x1a\\x64\\xf3\\x6c\\x00\\x07\\x82\\xf6\\xed\\x03\\x1a\\xf5\\xc2\\xa7\\x4a\\x18\\x96\\x35\\x98\\xc9\\xba\\x06\\x23\\x92\\xde\\x96\\x02\\x03\\x67\\x94\\xb7\\xb5\\xe6\\x8c\\x25\\xc9\\x3f\\xe7\\xcf\\xad\\x47\\xa7\\xc5\\xb9\\x79\\xd4\\x76\\xcd\\x51\\x3a\\x12\\xbf\\x03\\x07\\xcb\\x16\\x31\\x74\\x00\\x42\\xa9\\xfb\\xf3\\xeb\\x0b\\xe5\\x17\\x06\\x20\\xda\\xfd\\x5f\\x16\\xed\\x89\\x34\\x2c\\x26\\x25\\xd7\\x83\\xe7\\x4e\\xe0\\xd7\\x84\\xbf\\x05\\x19\\x43\\x74\\x0c\\x88\\xb0\\xbe\\xf7\\xbc\\x85\\xe1\\xa6\\xa4\\xa5\\x17\\xd4\\x92\\xfb\\x73\\x7e\\x77\\x66\\x99\\x59\\x0c\\x93\\x22\\x4c\\xd4\\xd9\\x24\\x5d\\x4e\\x93\\x71\\xa3\\x67\\xc0\\x71\\x2f\\x87\\x49\\x0f\\x92\\x47\\xc4\\x9a\\xdd\\x93\\x13\\xf2\\x77\\xa4\\xd9\\xf2\\x6b\\x75\\xaa\\xe4\\xde\\xd6\\xa3\\xde\\xf8\\x5f\\x83\\xfc\\x99\\x59\\x10\\x40\\x55\\x48\\xaf\\x67\\x0e\\xd8\\xaa\\xa3\\x05\\x24\\xab\\x82\\x9c\\xcb\\x56\\xa5\\x00\\x5b\\x58\\xbc\\xe8\\x68\\xc9\\xe8\\x07\\x4f\\x07\\xdd\\x7f\\x38\\x18\\xf2\\x99\\xe4\\xe0\\x86\\xbe\\xd9\\xea\\xb9\\x02\\xcf\\x11\\xb3\\x98\\xd5\\x31\\xb8\\x63\\x2e\\x7d\\x52\\x3a\\x8f\\x87\\x76\\x95\\xf4\\x6c\\xcf\\x9c\\xe2\\x4e\\x62\\xca\\xb2\\xc7\\xcd\\x0a\\xae\\xe1\\x7d\\xb5\\x26\\x76\\xa4\\xb5\\x05\\x8e\\x9c\\x1d\\x7c\\x47\\xbf\\xfc\\xb6\\x41\\xb0\\xea\\x2b\\x09\\x44\\xf3\\x9a\\x75\\x66\\x5a\\x7e\\xf2\\x9b\\x7f\\x02\\xa8\\x78\\xdb\\x82\\x38\\x83\\xbd\\xac\\xfb\\x0f\\xbe\\x5d\\xfe\\x5a\\x9b\\xed\\x9f\\xda\\xc7\\xe4\\x14\\x2e\\x3e\\xb5\\x0d\\x5e\\x84\\x0b\\xd0\\xac\\x0b\\xec\\xf4\\xfa\\x97\\xe1\\xfc\\x48\\x27\\xc3\\x97\\xa5\\x24\\x65\\xd9\\x16\\x88\\x99\\x54\\xb3\\x70\\x1b\\x0f\\xac\\x61\\x15\\x9b\\x23\\x09\\x2f\\x46\\x85\\xf4\\x78\\x8b\\xad\\x35\\xd0\\x0d\\xa2\\x67\\x9e\\xcc\\x54\\x92\\x1f\\x1a\\x86\\x47\\x10\\x16\\x57\\xab\\x49\\x47\\x74\\x20\\x56\\x7a\\xed\\x67\\xc8\\x60\\x59\\x30\\x44\\x4b\\x5d\\x07\\x92\\x7c\\x17\\xef\\xf1\\xf8\\x57\\x0c\\xf2\\xaf\\x29\\xe7\\x19\\xf8\\x5c\\xa7\\x84\\x9b\\x89\\x55\\x49\\xf1\\x3d\\xfe\\xca\\x68\\xbb\\xef\\x71\\xe3\\xce\\x8b\\x6c\\xed\\xd2\\xff\\x68\\xd3\\x2b\\x02\\xca\\xf5\\x95\\x1a\\x0b\\x3e\\x6b\\x0b\\xae\\x6a\\x96\\xc0\\x20\\x58\\x19\\x1f\\x30\\x5e\\x09\\x07\\x11\\xc4\\x6d\\xad\\xdc\\xd5\\xae\\xee\\x76\\x9c\\x3a\\x10\\x5e\\x9a\\x82\\x7b\\xbd\\x19\\x5d\\x32\\x92\\x31\\xc2\\x62\\x38\\x47\\x9a\\x9b\\xb0\\x07\\x1a\\xfb\\x16\\x0e\\xf9\\x55\\xe8\\x74\\xd7\\xa4\\x20\\xc5\\x67\\x85\\xf4\\x4a\\xe0\\xa1\\x8c\\x52\\xd8\\x28\\x0c\\x59\\x98\\xcf\\x38\\x88\\xfe\\xaf\\x89\\x89\\x81\\x34\\xbc\\x8d\\x41\\x1f\\xc9\\xf6\\xc5\\x76\\x8e\\xa7\\xa2\\x49\\x72\\x94\\x13\\x73\\x9e\\x53\\x2b\\x64\\x39\\x37\\x15\\x2c\\xdf\\xb8\\xd2\\xff\\x87\\xfd\\x48\\x08\\x4d\\xd8\\xae\\xeb\\xea\\xf0\\xf7\\xb1\\x0d\\x87\\xb6\\xe4\\x42\\x32\\x28\\xc9\\xfc\\x8d\\xc5\\xe3\\x85\\x2a\\xa8\\xb8\\xac\\xc5\\x45\\xd1\\x8f\\x25\\xc5\\x5d\\x73\\xda\\x1b\\xb8\\x2e\\x3e\\xb3\\x76\\xf9\\xef\\x05\\xb2\\x74\\xd7\\xec\\xb1\\x84\\x5d\\x65\\xca\\x0c\\xd2\\x62\\x9f\\x03\\x8a\\x2d\\x66\\x4d\\x7a\\x69\\x78\\x1c\\x84\\xe9\\x8d\\xe2\\xc2\\x09\\xc4\\x6e\\xfc\\x51\\x16\\x21\\x72\\x85\\x66\\x49\\x46\\x9e\\x67\\x33\\x08\\xdc\\xc1\\x45\\xea\\xf7\\x83\\xf5\\xcb\\x5b\\x4b\\xe7\\xd9\\xfd\\x58\\xee\\x09\\x74\\xc9\\x81\\xa3\\x8f\\xea\\x8e\\x31\\x26\\x7a\\xbf\\xa4\\x10\\xe6\\x9e\\x46\\x48\\x2f\\x51\\x34\\xf3\\xda\\x1f\\xfe\\x38\\x1b\\xd6\\x9d\\x8d\\x0b\\x78\\xea\\x90\\x9b\\x4a\\xf9\\x39\\x6d\\xca\\xff\\x89\\x96\\x0a\\x04\\x9e\\xda\\x69\\x46\\x61\\x6f\\xc2\\x7c\\xcf\\x9a\\x9e\\x5b\\xa1\\xa0\\x13\\x57\\x64\\xf3\\x77\\x19\\xda\\x4d\\x28\\x07\\x81\\x85\\xd0\\x4d\\x72\\x41\\x9c\\x2c\\x70\\xf2\\x90\\xd9\\x7e\\x1f\\x82\\xb8\\x79\\xf7\\x1b\\x9e\\x19\\xd5\\x04\\xd3\\x64\\xcd\\x3b\\xa2\\x2c\\xf9\\x05\\x25\\x0f\\xd3\\x7d\\x58\\xe5\\xfe\\x40\\x20\\x9f\\x60\\x72\\xa0\\x6d\\x8b\\x5b\\xa7\\x01\\x96\\x23\\x05\\x77\\x87\\x7e\\xc4\\x61\\x53\\x16\\x7a\\x7c\\x7a\\xea\\x27\\x0f\\xa1\\x09\\x8a\\xba\\x9e\\x3a\\x74\\xac\\xb3\\x6a\\x11\\xb0\\x9b\\xd0\\x7a\\x3b\\x88\\xea\\x65\\x4e\\x26\\x83\\x65\\x62\\x5b\\x58\\x9b\\x22\\x06\\xc7\\x10\\xd9\\x60\\xf4\\x2e\\xa4\\x19\\xb7\\xe4\\xe3\\xda\\x47\\x59\\xfc\\xbc\\xa5\\x0e\\x4b\\xf4\\xcc\\x55\\xcf\\x88\\xf7\\x0b\\x31\\x80\\xc8\\x05\\xa7\\x04\\x50\\x86\\xaf\\xa0\\x4c\\x6b\\xe2\\x32\\x23\\xec\\xae\\x5f\\x82\\xc1\\x46\\xd5\\x43\\x11\\xd1\\x80\\x7c\\x2e\\x4a\\x53\\xf9\\xe0\\xa4\\x48\\x2b\\x4e\\x1e\"},\n{{0x9e,0xb5,0xc9,0xef,0x13,0x53,0x5f,0x80,0x81,0x09,0xf4,0xa4,0x3c,0xfa,0xd5,0x68,0x4f,0x80,0xda,0xf0,0x2e,0xed,0x54,0x10,0xac,0x0b,0x0a,0x09,0xa6,0x08,0x2d,0x69,},{0x36,0x7e,0xea,0x1e,0xcb,0x4e,0x5e,0xec,0xdf,0x7e,0x47,0x1b,0x90,0xbb,0x34,0xf9,0xb7,0x98,0x2c,0x8c,0xd6,0x6d,0x42,0x55,0x5c,0x24,0x0b,0x41,0xcd,0x87,0x39,0xdb,},{0x42,0x9c,0xe1,0xfe,0x84,0x6d,0x25,0x08,0x49,0xec,0xa7,0xd4,0x56,0xf8,0xc5,0x9f,0x86,0x75,0xb1,0xf4,0xc1,0x3f,0x2b,0xe4,0x16,0x88,0xdf,0xb8,0xca,0x2a,0x3b,0x24,0xae,0x29,0xd5,0xb6,0xbf,0x47,0x11,0x57,0xbc,0xb6,0xe2,0xec,0x9d,0x4a,0x26,0xb0,0x38,0xe6,0xec,0x28,0x58,0x4c,0xc2,0x3f,0x2a,0x03,0x55,0x6d,0xbb,0x37,0xe9,0x00,},\"\\x2d\\x7c\\xb0\\x5e\\x61\\xdb\\xae\\x26\\x25\\x8e\\x38\\x61\\xc6\\x39\\xef\\x0e\\x1d\\x17\\xfc\\x71\\x1a\\x00\\xf3\\x35\\xba\\x3c\\x02\\x71\\x37\\xe0\\x07\\x08\\xd7\\x08\\xc1\\xff\\x45\\x7f\\xf2\\xc6\\x51\\x12\\xf7\\xdc\\xd7\\xd0\\x2f\\x24\\xd5\\x6f\\x07\\x21\\x58\\xea\\x1c\\x71\\x83\\x25\\x50\\xa5\\x83\\x66\\xfd\\x91\\x97\\x29\\x6b\\xbe\\x61\\xaa\\x4d\\x00\\xde\\x18\\xa4\\x53\\xef\\x91\\x74\\xfa\\x81\\x96\\x83\\x05\\xc4\\x1c\\x34\\x55\\xf4\\x2d\\x44\\x7a\\x92\\x34\\xf0\\x6e\\x13\\xbf\\x8b\\xca\\xa1\\xba\\xbb\\x11\\x69\\x5f\\xaf\\xdc\\x08\\xf7\\xa5\\x84\\xb2\\xea\\x1f\\x61\\xe9\\x38\\x92\\x60\\xce\\x73\\x35\\xa0\\x7d\\xe7\\x2c\\x89\\x11\\xa5\\x8a\\x31\\x3f\\x10\\x88\\xdc\\xdf\\x5c\\x8d\\x4c\\x45\\x6c\\xba\\x2d\\xcb\\x4f\\x2d\\x15\\x6b\\x49\\x43\\xb9\\x5b\\xd4\\x93\\xea\\x4f\\xe1\\xa8\\x2d\\x4e\\x3e\\xa0\\x2a\\xa0\\x29\\x72\\x40\\x0b\\x5e\\xe1\\x78\\x42\\x83\\x2d\\x59\\x97\\x9f\\xc1\\x79\\xf8\\x43\\xc4\\x4b\\x03\\xeb\\x3c\\x30\\x24\\x16\\xd0\\xcd\\xaf\\x11\\xc4\\xca\\x8a\\x66\\xcc\\xbb\\x69\\x97\\x39\\x5e\\xdf\\x6f\\xca\\x2e\\xa0\\x04\\xcf\\x34\\x86\\x97\\x10\\x04\\xa4\\x20\\x42\\xaf\\x8e\\xce\\x00\\x5b\\x94\\x46\\x1d\\x86\\xdc\\xde\\x21\\x2a\\x2e\\xb1\\xbe\\x3b\\x91\\x4c\\x78\\x3e\\x48\\xac\\x1a\\xd4\\x6c\\xac\\xd7\\x3e\\x1e\\xb4\\x48\\x36\\x83\\x22\\xd2\\x67\\x8e\\xfc\\xb2\\xab\\xff\\x52\\x09\\x3d\\xb0\\xf2\\x59\\xdc\\xe5\\xc1\\xe1\\x9a\\x51\\x28\\x20\\xf2\\x35\\xd6\\xae\\xaf\\x0e\\x1a\\x72\\x3c\\x2c\\x65\\x0c\\xff\\x1e\\xe3\\xb6\\xb4\\xf4\\xcc\\x98\\x9c\\x0b\\x7d\\x6d\\xe3\\xcd\\x7e\\x6d\\xaa\\x39\\xbb\\x69\\x07\\x10\\xdf\\x00\\xa7\\x19\\x4c\\x17\\x20\\x1f\\x0e\\x81\\xbe\\x64\\xb6\\x73\\x9e\\x1c\\x1e\\x81\\x76\\xb7\\xe1\\x2a\\x35\\x34\\x27\\xc0\\x67\\xc1\\x93\\x14\\xdb\\x64\\x2e\\x5c\\x76\\x26\\x6b\\x64\\x0e\\xb1\\xcc\\x0c\\x73\\xf8\\x4f\\xc0\\x22\\x7e\\x5a\\x96\\x06\\x0d\\x81\\x40\\x71\\xcd\\xe2\\xfe\\xd9\\x44\\x76\\x7b\\x74\\x66\\xf9\\x00\\x1d\\xfc\\x22\\x36\\x85\\x42\\x9b\\xc4\\xe5\\xe4\\x8f\\x5c\\x13\\xa6\\x3a\\x4e\\x0d\\x82\\x61\\x33\\xad\\x92\\x0d\\x11\\x77\\x21\\x45\\xad\\x6e\\x13\\xc9\\x38\\x97\\x39\\x8a\\x8a\\x40\\x1f\\x93\\xdb\\xd1\\x03\\x00\\x5c\\x7d\\xae\\x44\\x38\\x7f\\x3e\\x80\\xb7\\x93\\x60\\x7d\\x05\\xd2\\xd8\\xbc\\x0d\\x03\\x51\\xa3\\xa4\\x52\\xb8\\xce\\x75\\x9c\\x1a\\xd4\\x8d\\xf7\\xb9\\xba\\x9e\\x4a\\x17\\xdf\\x61\\xfd\\xab\\xb9\\xb5\\x77\\xb5\\xce\\xc3\\xe9\\x46\\x1f\\xbb\\x5e\\x12\\x81\\x55\\xa3\\xc9\\xc8\\x9f\\x8f\\x6b\\xeb\\xb7\\x32\\x2a\\x16\\x67\\x8e\\x8e\\xcb\\x98\\x95\\x3d\\x95\\x83\\x10\\xdb\\x1b\\x06\\x34\\x48\\xc3\\x49\\xf3\\x6e\\x16\\x8f\\xac\\x48\\x4c\\xb3\\xc0\\xd4\\xcb\\x2c\\x25\\x1b\\xd9\\x2e\\xf8\\xe9\\x26\\x2b\\x44\\x09\\x3d\\x7e\\x65\\x0a\\x7d\\x3b\\xed\\x37\\x91\\xfa\\x88\\x10\\x0f\\xee\\x6e\\xf0\\xd5\\xe2\\x3d\\x1e\\x9a\\x80\\x99\\xcc\\x03\\x35\\x20\\x2a\\x4f\\x10\\x6c\\x24\\x77\\x7e\\x98\\xf8\\x1d\\x26\\xef\\xba\\x15\\xc9\\xad\\x15\\x41\\xe0\\xad\\xbf\\x1d\\x1d\\x76\\x07\\x6b\\x0d\\xfd\\x7b\\x7d\\x6c\\x8b\\x82\\xf9\\xc0\\x93\\x46\\x8c\\xd1\\x96\\x67\\x2d\\xc5\\x47\\x8e\\x91\\xce\\x70\\x1c\\xdd\\x7b\\x68\\xb3\\x53\\xc9\\x71\\x11\\xf0\\x42\\x97\\x60\\x63\\x57\\x62\\xf8\\x68\\x3a\\xe9\\x70\\x56\\x4b\\xce\\xba\\x91\\x20\\x51\\x76\\x42\\xe8\\xb3\\xa2\\xba\\xaa\\x85\\xc2\\x5b\\x54\\xa9\\x43\\x76\\x61\\x84\\x90\\x4c\\x72\\xd9\\x29\\x63\\x4e\\xc5\\xf0\\xc2\\x84\\x73\\x41\\x5f\\x12\\x53\\x89\\x06\\xc6\\x78\\xfc\\xa4\\xe6\\x82\\xdb\\x48\\x79\\x75\\x84\\x92\\x53\\x7e\\x78\\x50\\xb9\\xbf\\xef\\x3e\\xb9\\x05\\x3b\\x43\\x92\\x0d\\x81\\x0e\\x55\\xbe\\x96\\x6a\\xec\\x68\\xc9\\xdd\\x3b\\x62\\xcc\\xf5\\x7e\\x81\\x78\\xcb\\x5e\\xf6\\xd1\\x6d\\x17\\x2a\\x56\\xdd\\x92\\x4f\\x00\\xf2\\xd3\\xb5\\xe9\\x3a\\xaa\\x92\\xb2\\x9f\\xb8\\x33\\x6d\\x73\\xe2\\x9e\\x59\\xd1\\xc4\\x7e\\xa6\\x23\\x0c\\xda\\x1d\\x5b\\x03\\xbb\\xa5\\xdf\\xdb\\x33\\x1f\\xeb\\x19\\x44\\x3f\\x12\\x3d\\x2a\\x03\\xff\\x4f\\x10\\xec\\xa1\\x66\\xc2\\x99\\x85\\x88\\xf1\\xe5\\x84\\xed\\x19\\x4d\\xd6\\xf7\\x3c\\x8a\\xca\\x84\\x66\\x31\\x90\\x4d\\x9f\\xe4\\xa9\\x8b\\x36\\x78\\x23\\xe4\\x6e\\xdb\\xa2\\x88\\x51\\x29\\x87\\x9e\\x92\\x77\\xe1\\x50\\xf0\\x29\\xb8\\xfa\\x7b\\xd1\\x1e\\xab\\x9c\\xe1\\x33\\x67\\x77\\xc8\\x0b\\x56\\xb3\\xa1\\xf0\\x81\\x1a\\xdb\\xca\\x0f\\x5b\\x40\\x25\\xa5\\x50\\x3c\\x81\\x96\\x66\\x1a\\xee\\x90\\x00\\x6e\\x9c\\x85\\xbb\\xfa\\x4c\\x5a\\x0e\\x90\\x28\\x85\\xc8\\xce\\x51\\x21\\x2e\\xe6\\x7f\\x0f\\xe0\\xb6\\xaf\\xbc\\x8b\\xad\\x45\\x37\\x27\\x54\\x3b\\x3c\\x68\\xb8\\x90\\xdd\\xab\\xa2\\x69\\xd2\\x5f\\xc1\\x64\\x3f\\x54\\x83\\x51\\x36\\xa1\\xa2\\x5b\\xa1\\x8d\\x91\\x6c\\xed\\xd6\\xa4\\x7f\\xc0\\x7a\\xdf\\x6f\\xc6\\x9f\\xa5\\x08\\x94\\x9d\\xc1\\x0d\\x9d\\xc5\\xe0\\x26\\x1b\\x52\\xf3\\x65\\x71\\x70\\x38\\x4e\\xcc\\xd9\\xc8\\x05\\x41\\x35\\x4b\\x1c\\xe0\\xf6\\xfb\\x5e\\xd3\\xe8\\xd5\\x4a\\xf0\\xb5\\xbf\\x0a\\x92\\x83\\x51\\x25\\xc7\\xd9\\xbc\\x4f\\x09\\x2f\\xf3\\x80\\xe5\\xe8\\x96\\xfb\\xf3\\x02\\x55\\x2b\\x14\\xd5\\xb6\\x1a\\x22\\x4d\\x86\\xe3\\x01\\xc7\\xa6\\x6a\\x66\\xe4\\xe4\\x32\\x9a\\xac\\x0a\\x66\\xb1\\x56\\x77\\x23\\x74\\xdc\\x1c\\x71\\x68\\xd5\\xb5\\x61\\x65\\x2f\\x8f\\x43\\x87\\xe4\\xf2\\x89\\xb6\\x36\\x6a\"},\n{{0xef,0x09,0x48,0xe1,0x32,0x81,0xf3,0xcf,0x35,0x2c,0xbf,0xaf,0x8d,0x89,0xd1,0x17,0x76,0x85,0x52,0xd5,0xa1,0x54,0x8e,0xcb,0xaf,0x37,0x41,0x2e,0x97,0x67,0x0f,0xac,},{0x58,0xc2,0x45,0x7f,0x5a,0x5e,0x3c,0xfb,0xf4,0x71,0x19,0xa8,0x7f,0x2a,0xff,0x19,0x18,0xf1,0xe6,0x7a,0xe6,0xfa,0x91,0x71,0xd3,0xf4,0x1e,0xee,0x07,0xa8,0x68,0x72,},{0xcc,0x12,0xf6,0x9d,0xb6,0x3a,0x67,0x8e,0xc4,0x77,0xa6,0x05,0xa5,0x05,0xc5,0x7d,0xc2,0xb8,0x10,0xef,0x85,0xe3,0xe3,0x45,0x19,0xcb,0x25,0xc5,0x10,0x63,0xaa,0x66,0x35,0x5d,0x3f,0x1e,0x29,0x74,0x69,0x58,0x66,0xed,0xf6,0xf1,0x71,0x71,0xce,0x37,0x84,0x2f,0xba,0xb5,0x07,0x5f,0xc8,0x95,0xd1,0x8e,0xd7,0x43,0xc5,0x46,0x08,0x0c,},\"\\x7e\\xc4\\x7f\\x2f\\x1f\\xe3\\xb7\\x0a\\x6d\\x1d\\x82\\xc7\\xcd\\x92\\x4b\\x4b\\xf9\\xb2\\x02\\x9f\\xc1\\x2c\\x52\\xa6\\xe1\\xcc\\x06\\xcf\\x5a\\xbf\\xc0\\xa4\\x42\\xe7\\xcf\\x14\\x5c\\x15\\x42\\xb9\\xb1\\x35\\x04\\x96\\x65\\x71\\x10\\x35\\xe3\\xc2\\x9a\\x91\\xd4\\xfd\\xae\\xd6\\x12\\x70\\x57\\xa8\\x12\\xc2\\x2c\\xd7\\x5a\\xd1\\x87\\x9b\\xe1\\xd2\\xc6\\x11\\x0e\\x79\\xe9\\x87\\x52\\x4e\\x4e\\x8f\\x27\\xf1\\x6e\\xda\\x90\\xcb\\xd4\\x73\\x3f\\x11\\x18\\x25\\xb5\\x16\\xd1\\x06\\x7f\\x81\\xec\\xa5\\xe6\\x94\\x85\\x76\\xd5\\xbf\\xed\\xb3\\x27\\x7c\\x1a\\xbc\\x1e\\x60\\xf3\\x74\\xd0\\x70\\x1b\\x32\\xcc\\xfd\\x6a\\x5e\\x9c\\x8d\\x16\\x59\\xaa\\xf3\\xd0\\x81\\x86\\x13\\x61\\x3b\\x7e\\x28\\x8d\\x84\\x5e\\x9a\\xaa\\xba\\x2e\\x3e\\x9b\\x41\\x1d\\x50\\x1d\\xff\\xe8\\x56\\xfd\\x31\\x3e\\x9f\\xcc\\x9e\\x74\\x30\\xb9\\x98\\x3f\\x20\\xab\\x4e\\xbf\\x4e\\xb6\\x16\\xbd\\x63\\xe2\\xc5\\x77\\x43\\x65\\x89\\x95\\xed\\x0a\\x14\\x9a\\xe6\\x20\\xa3\\x95\\x61\\x37\\x19\\xb3\\xed\\x7c\\xed\\x45\\x88\\xd5\\x91\\x5d\\x70\\xa2\\xf0\\xc6\\x87\\x68\\x0e\\xc3\\x4f\\xe3\\xe9\\xf7\\x23\\x92\\xe1\\x89\\xe1\\x3a\\x47\\x49\\xd5\\xca\\x9f\\xac\\x65\\x1b\\x92\\xc0\\x84\\xc4\\x06\\x6f\\xdf\\x98\\xa8\\x69\\x22\\x3e\\x4e\\x0c\\x9b\\xec\\x58\\x12\\xb5\\xc1\\x90\\x0e\\x6e\\x60\\xd3\\xa1\\x88\\xd4\\x8a\\x74\\xdf\\xd4\\x15\\xb5\\xca\\xd2\\xe9\\x1f\\xf7\\x6d\\xf7\\x50\\x89\\xd2\\x0a\\x75\\x5f\\x26\\x07\\x56\\xc8\\xf1\\x38\\x2a\\x29\\xf7\\xb9\\x37\\x26\\xe7\\x31\\x07\\x1c\\xd4\\x77\\x45\\x8c\\x6f\\x20\\x22\\xdf\\xad\\x7d\\x4f\\xc7\\xab\\x23\\x80\\x54\\x18\\x64\\xf6\\xb5\\x87\\x74\\xf9\\xae\\x8e\\x5f\\x07\\x7c\\x1a\\x8d\\xa0\\x73\\xc3\\x98\\x53\\xeb\\x2f\\xd4\\x77\\x22\\x0b\\x45\\xa3\\xd9\\x22\\x63\\xdc\\x7e\\x14\\xd3\\xbb\\x2b\\x36\\xfc\\xa4\\x66\\xc7\\xef\\x8a\\x24\\x75\\x38\\x72\\x5f\\x2f\\xce\\x5c\\x72\\x21\\xbc\\x75\\x1c\\xde\\x13\\x94\\x60\\x4f\\x59\\x31\\xd7\\x33\\x36\\x0c\\xcd\\x47\\xce\\x08\\x77\\x12\\x95\\x81\\x80\\xad\\x84\\xfa\\xe7\\x13\\xb5\\x43\\xf0\\x5e\\xef\\x6a\\xbc\\x06\\x61\\x43\\x31\\x21\\xed\\x3b\\x45\\x06\\xa1\\x46\\x50\\x25\\x31\\x6f\\xb8\\xf9\\xd6\\x45\\x35\\xcc\\x45\\x38\\xac\\xd4\\x06\\x4d\\xd5\\x76\\xb0\\x74\\x0e\\x1b\\xeb\\x13\\xbc\\xea\\xf1\\x55\\x54\\x3d\\xc8\\x90\\x97\\xca\\x5c\\xa1\\xcf\\xfa\\x0a\\xd6\\x5a\\x10\\xbc\\xb7\\x59\\x35\\x4e\\xab\\x8a\\x42\\xde\\x73\\x4a\\xf9\\x09\\xc2\\xfe\\xba\\x38\\x0d\\x66\\x40\\x9f\\x32\\x5d\\x5f\\x17\\xaf\\x9c\\xa7\\xf8\\xcb\\x41\\x34\\xfd\\x6a\\x2b\\x6a\\x52\\x8d\\x9e\\x60\\xd9\\x61\\x2b\\x8e\\x8b\\x40\\x62\\xf8\\xe0\\xfa\\xd1\\xe7\\xee\\xb9\\xcb\\xfe\\xf6\\xe9\\x73\\x8e\\xc7\\x97\\x3e\\x1c\\xb2\\xba\\x23\\x27\\xde\\xca\\x4e\\xa4\\x65\\x68\\xf3\\x1e\\x12\\xf7\\x30\\xe2\\x47\\xc1\\xd0\\x70\\x29\\xfd\\x44\\x22\\xb2\\x98\\xff\\x23\\x98\\x02\\x3b\\x41\\x20\\xa3\\xa4\\x25\\xff\\xb6\\x52\\x88\\x0c\\x19\\xea\\x69\\xf3\\x63\\x9e\\x0f\\x6d\\xf4\\xf0\\x08\\x76\\xcc\\x45\\x28\\xe2\\x67\\xe8\\x1d\\x59\\x43\\x19\\x9d\\x0f\\xeb\\x6c\\xb4\\xe1\\xba\\xf4\\x04\\xbb\\x6f\\x8b\\x39\\xb1\\x2d\\xbc\\xe9\\xfd\\xc3\\x5d\\xc1\\x58\\x06\\x6e\\x99\\x75\\xae\\x5b\\xd3\\xb5\\x5f\\x2a\\x41\\xa7\\x91\\xba\\xf3\\xe8\\x35\\x1e\\xc6\\x04\\x94\\x47\\x90\\xa2\\x2c\\x93\\x3c\\x80\\xb1\\x59\\x0b\\xa1\\x97\\xa4\\x70\\x6f\\x7f\\x51\\x28\\x68\\x2e\\xdc\\xd7\\x4d\\xd7\\x8d\\x43\\x5e\\x78\\x7c\\x2b\\x76\\xa5\\x7b\\x3f\\x4e\\x7d\\x7b\\xe2\\xef\\xd2\\x6d\\xa5\\xf9\\xa8\\x29\\x11\\x9b\\x01\\x50\\x8b\\x70\\x72\\xc7\\x69\\x9c\\xe5\\x2b\\xb5\\x78\\xcc\\x5b\\x1b\\x93\\x66\\x1b\\x51\\x72\\xfb\\x84\\xda\\xf1\\xba\\x36\\x4d\\x2c\\xbd\\x80\\xe2\\xc9\\x9b\\xca\\x9c\\xae\\xa8\\x73\\xcc\\x0a\\x16\\x29\\xea\\xc3\\x84\\xe9\\xb2\\x06\\x84\\x2a\\x6e\\x61\\x83\\x38\\x75\\x91\\xb4\\xaa\\x34\\xa9\\x5f\\xd8\\x9b\\x49\\xd8\\xd1\\x5d\\x91\\xe2\\x19\\x40\\xe1\\x7d\\xca\\xf1\\xef\\xf8\\xa0\\xa4\\x7a\\x0d\\x7a\\x95\\xda\\xea\\xd8\\x2a\\xa3\\xdf\\x82\\x04\\xa0\\xcd\\x20\\x69\\x24\\xae\\x51\\x0f\\xec\\x8a\\x9c\\x4e\\x8d\\x85\\xd4\\x66\\xfd\\xb4\\xdd\\x36\\x5d\\xc9\\x93\\x36\\xb2\\x2c\\xe0\\xb9\\x56\\xb5\\xee\\x00\\x17\\xf2\\x9d\\x25\\xee\\x66\\xfb\\xdc\\xec\\xb0\\xd9\\x96\\xff\\xb9\\x7c\\x8d\\xef\\xde\\x40\\xa9\\xff\\x99\\x93\\x19\\x3c\\xa8\\xf1\\x68\\x50\\x67\\xc1\\x9c\\x52\\x6e\\x0e\\xfe\\xd2\\x36\\xf8\\xed\\xb8\\xde\\xf6\\xc2\\xa0\\x3e\\x21\\x95\\x2c\\x86\\x12\\xd6\\x24\\xe6\\x88\\x6a\\x31\\x1f\\xfb\\x9e\\x2f\\x15\\xda\\x44\\xab\\xe1\\x80\\xd2\\x6a\\x14\\xb1\\x5f\\x63\\x56\\x1e\\x09\\x7a\\x73\\x0e\\xca\\xbb\\x79\\x2c\\x7c\\x23\\x5f\\xdd\\x36\\x0f\\x57\\x1f\\x27\\xef\\x68\\x67\\x7a\\x7d\\x63\\xbe\\xb4\\x97\\x59\\x82\\xcb\\x19\\x9a\\x56\\x0f\\x81\\x6e\\xe1\\x29\\x89\\x44\\x5f\\x7f\\x75\\xb8\\x3e\\xb2\\x78\\xd6\\x28\\x25\\x94\\x7d\\x84\\x09\\x9a\\xf2\\xa6\\xff\\x2e\\xad\\xbb\\xf5\\x89\\xb5\\xeb\\x2f\\x72\\xed\\x11\\x4c\\x73\\x15\\x11\\x53\\xae\\x00\\x22\\xbc\\x95\\x64\\xd1\\x5c\\x2d\\x5c\\xdb\\xba\\xab\\xbe\\xf6\\x38\\xf0\\x30\\x95\\xf5\\x3e\\xeb\\xac\\x96\\x83\\x40\\x9a\\xd3\\x06\\x0c\\xfb\\x7c\\x70\\x37\\xb9\\xb0\\xbe\\xfe\\x06\\x9c\\x92\\xa0\\x2b\\xe9\\x53\\x38\\x8e\\x9e\\xa4\\x5d\\x36\\xdd\\xf4\\xf5\\xa8\\x38\\x94\\x32\\xcc\\xf5\\x04\\xc5\\x08\\x08\\xb0\\x7f\\x69\"},\n{{0x90,0x3f,0x3b,0x53,0x99,0x89,0x2e,0x29,0xcc,0xfa,0xfb,0xaf,0xbd,0x7c,0xc4,0x53,0x3c,0x15,0x4a,0x62,0x56,0x82,0x40,0x6c,0x89,0xbf,0x89,0x4c,0x88,0x9e,0x43,0xf4,},{0x8f,0xa5,0xff,0x5b,0x6b,0x26,0xbd,0x67,0xdf,0x86,0x40,0x46,0x42,0x9d,0xf1,0x24,0xb5,0x23,0x00,0x5d,0xd8,0x94,0x44,0x27,0x5c,0x8a,0xb7,0xeb,0xdd,0xb6,0xf4,0xdb,},{0x49,0x5a,0x8f,0x99,0x19,0x41,0xc6,0x29,0xbd,0x64,0x1a,0x67,0x47,0x1a,0xb8,0x60,0xbf,0xd3,0x9b,0x72,0xf2,0x33,0x55,0xf7,0x27,0x09,0x09,0xd5,0x30,0x7c,0x77,0xb1,0xb9,0x4b,0xae,0x3e,0xd1,0x94,0x50,0x78,0x0e,0x90,0x85,0x30,0x5f,0x31,0xb1,0xe1,0x68,0x3f,0xac,0xf0,0xd1,0xfc,0x88,0x40,0xae,0xc7,0x7d,0xf6,0x7a,0xea,0xb3,0x02,},\"\\xa2\\xc1\\x1b\\x5f\\xb8\\x84\\xa8\\x22\\xfa\\xe6\\x4d\\xa8\\xdc\\xb4\\x45\\x2c\\xfd\\x7a\\x04\\xca\\x6d\\x7a\\x5a\\xbc\\x8d\\x82\\x71\\xe9\\x3f\\x93\\x44\\x9e\\x1f\\xeb\\x8e\\x02\\x97\\x5f\\x49\\x6b\\x90\\x34\\x40\\x0d\\x35\\x99\\xab\\x97\\xaa\\x39\\x97\\xda\\xd1\\xc9\\xff\\xab\\x5b\\x9f\\x8d\\xf4\\xaa\\xa5\\xb8\\x40\\xd9\\x0d\\x86\\x2f\\xff\\x7f\\xf0\\xcf\\x73\\xa6\\x0c\\x66\\x15\\x00\\x09\\xe0\\x1c\\x93\\x7b\\xd1\\xaf\\x68\\x07\\xb5\\xba\\x2e\\xf6\\x12\\xee\\x13\\xd6\\xde\\xf4\\x0b\\xb0\\x9c\\x46\\x81\\x1a\\x2d\\x4e\\x46\\x8e\\x03\\x8b\\x32\\x30\\x55\\xf9\\xdf\\xbd\\x01\\x82\\x9a\\xe2\\xf1\\xa5\\x35\\xef\\x02\\x95\\xca\\x1e\\xd1\\x76\\xe4\\x6d\\xe9\\x96\\xcc\\x87\\xba\\xce\\x45\\x35\\x62\\x33\\x21\\x18\\x35\\xb6\\xf4\\x75\\x7c\\x99\\xbd\\x52\\x7e\\x76\\x6a\\x5f\\x0b\\x12\\x7c\\x8c\\xff\\x8e\\x6d\\x66\\xf8\\xba\\xb8\\x6d\\x00\\x00\\x45\\x2c\\xd7\\xf6\\x7b\\xe5\\x57\\x78\\x85\\x13\\xec\\x07\\x09\\xb5\\x37\\xb0\\x07\\xb4\\x20\\x16\\xe7\\xa8\\x96\\x83\\x46\\x9b\\xd8\\xff\\x8d\\x21\\xeb\\x10\\xc1\\x49\\x17\\xd4\\x7f\\x2d\\xc4\\xf8\\x26\\x32\\x4f\\x7c\\x01\\xb2\\x4f\\x8d\\xcf\\xf0\\x4a\\xa6\\xd8\\x50\\x95\\xd9\\xab\\x15\\x4b\\xa5\\xc3\\xbd\\x91\\x9c\\x9d\\x72\\x8d\\xbd\\xc9\\x90\\xd1\\x9c\\xeb\\x23\\x7b\\x45\\x29\\x07\\xbd\\xbe\\x21\\xf9\\xf0\\x8c\\xdd\\xae\\x5b\\xe4\\x79\\x27\\x67\\x09\\xb8\\xae\\x73\\xf8\\x97\\x4c\\x4b\\x11\\x38\\x41\\xad\\x53\\x5d\\x6f\\xf6\\x22\\x3e\\xea\\x47\\xd1\\x85\\xc8\\xe8\\xa6\\x5f\\xde\\xe2\\xc2\\xd4\\x58\\x00\\xc1\\x7c\\xb5\\x56\\xea\\xfd\\x67\\x66\\x47\\xd9\\x96\\x8e\\x55\\xca\\x9c\\x59\\x23\\x2b\\x97\\x70\\xad\\x10\\xf9\\x55\\xfc\\xb5\\x85\\x8e\\xdf\\x0b\\x74\\x83\\xad\\xc1\\x81\\x7c\\x0f\\x8d\\x02\\x24\\x04\\x82\\xca\\xa7\\x6f\\x43\\xc6\\xd2\\xe9\\x6a\\x4f\\xf9\\x59\\x1c\\xd7\\xb8\\x78\\xea\\x61\\x9e\\xa5\\x6d\\x1b\\x58\\x86\\x31\\xe7\\x63\\x3c\\x5e\\xcb\\x2b\\xa6\\x99\\x83\\x98\\xcb\\x06\\xe3\\xcf\\x75\\xae\\xb3\\xe0\\x8d\\xab\\x19\\x63\\x2d\\x45\\x4f\\xf7\\xdc\\x0e\\x2a\\x41\\xf0\\x97\\x37\\xe8\\xee\\x82\\x3d\\x1b\\x9e\\x24\\xdd\\xa8\\x4a\\x2c\\xe0\\x31\\x3c\\xb9\\xfc\\xe3\\x1c\\xb6\\x63\\xc5\\x5c\\x05\\x64\\x5e\\x63\\x40\\x17\\x56\\xe8\\xad\\x38\\xf5\\x17\\x4c\\x02\\xa6\\x63\\xd8\\x15\\xad\\x64\\x42\\x2f\\xf7\\x72\\x7d\\x4f\\xda\\x16\\xe4\\x8d\\x4b\\xf8\\xf6\\x60\\x2e\\x72\\x60\\xda\\x62\\x33\\x0e\\x68\\x78\\xc3\\x47\\x64\\xe1\\x29\\xaf\\xbd\\x55\\x22\\x08\\xf6\\xbe\\xd4\\xf7\\xce\\xe9\\xb6\\x71\\xf4\\x88\\x38\\x88\\x15\\xd7\\x4b\\x49\\x51\\xb8\\x68\\x2c\\xe7\\x6c\\xfe\\x31\\xe9\\x38\\xc4\\x70\\xb8\\xf7\\xa4\\x5f\\xd6\\x3a\\x96\\x91\\xf4\\x26\\xa7\\x5c\\x58\\xed\\x3d\\xbc\\xe3\\xae\\x8f\\xd9\\xd1\\x0a\\x83\\x52\\xe4\\x7c\\xc1\\xb1\\x2c\\x91\\x92\\xac\\x86\\x26\\xd1\\xb3\\x84\\xb7\\x7a\\x18\\xb9\\x86\\xe7\\x1a\\x99\\x86\\x46\\xc1\\x37\\x99\\x2b\\x67\\xc4\\x81\\x7e\\x34\\x63\\x45\\xfa\\xf5\\x0a\\x26\\x59\\xfd\\xc5\\xca\\xd5\\xc7\\x19\\x64\\x8e\\xfe\\xe3\\x84\\x7c\\x0f\\xf6\\xbd\\x70\\x95\\xc2\\x8b\\x4c\\x51\\x95\\x96\\x7c\\x90\\xcf\\x84\\xe1\\xef\\x68\\xa1\\xad\\xa0\\x1f\\x62\\x74\\xed\\xe3\\x63\\xfb\\x82\\xe0\\xb5\\x49\\xa8\\x70\\x24\\x5d\\x60\\x8c\\xae\\x82\\x34\\xf6\\xd8\\x4a\\xbe\\xb6\\x1b\\x71\\x84\\x66\\x09\\x36\\x20\\xd8\\x5c\\x58\\x4a\\xb0\\x1e\\xed\\xa0\\x91\\xee\\x8a\\xff\\x1c\\xf6\\x7a\\x46\\x75\\x67\\x9a\\x1f\\x40\\x03\\xe6\\x6a\\xaf\\x43\\x87\\x1b\\x88\\xec\\xda\\x6a\\x16\\xdc\\x5a\\xcb\\x05\\x39\\x5f\\x2d\\xa9\\xdf\\x70\\xd3\\xbd\\xb6\\x14\\x38\\xe1\\xc3\\xd4\\x09\\x81\\xe0\\x34\\x62\\x7d\\x02\\x6e\\xe1\\xd2\\xe7\\x9f\\x65\\xcb\\xb8\\x18\\x9f\\xcb\\xb3\\xcc\\x8b\\x5c\\x2e\\x7e\\x79\\x6b\\x5d\\x28\\x89\\x41\\x1d\\x56\\x41\\xfb\\x86\\x9c\\x7b\\x0a\\x58\\x9c\\x43\\x25\\x4f\\x8c\\x54\\x38\\xaa\\xf5\\xac\\x42\\x38\\x32\\xf0\\x18\\xd7\\x9a\\x51\\xb9\\x6f\\x24\\x2e\\x2d\\xe0\\xc8\\x51\\xcc\\x5f\\xc2\\xb2\\x06\\xbc\\xa4\\xb5\\xbe\\x83\\x61\\x25\\xac\\xa1\\x44\\xbb\\xc3\\x8c\\x8c\\x63\\x8b\\xe0\\xd3\\xbb\\xe0\\x25\\xa1\\xbe\\x8b\\x3d\\x03\\xd5\\x92\\x9b\\xaa\\x64\\x9c\\x35\\x44\\xa3\\x2a\\x91\\x5e\\x92\\x6a\\x38\\x79\\x1b\\x13\\x4a\\x97\\x1b\\xc5\\x2d\\x1b\\x6c\\xa6\\x25\\xef\\xb7\\xc2\\xf3\\xbb\\x47\\xab\\x51\\xd4\\x3c\\x8e\\x37\\x4d\\x16\\xcd\\xa8\\x82\\x20\\x4b\\x71\\xca\\xfe\\x90\\x93\\xcb\\x60\\x78\\xef\\x2b\\xdf\\xad\\x59\\xed\\xea\\xf3\\x6d\\x0c\\x1a\\x4d\\xc4\\x25\\xb9\\xe7\\x18\\xc4\\x51\\x85\\x22\\x5a\\x9c\\x30\\x84\\xb7\\x82\\xbf\\xe1\\x63\\x49\\x2f\\x8e\\x84\\x82\\xec\\x9a\\xa0\\x73\\xf6\\x90\\x1f\\xf3\\xd1\\x11\\x7c\\xe9\\x17\\xe1\\x91\\x22\\xfa\\x67\\x65\\x0d\\x85\\x8f\\x8f\\x82\\xb3\\x76\\x69\\x72\\x3c\\x22\\x6d\\x72\\x16\\x97\\xe7\\xae\\x33\\x59\\xf5\\xa6\\xb0\\x24\\x24\\xee\\x87\\x94\\xcb\\xea\\xa6\\x41\\xed\\xbb\\xf7\\x53\\xb1\\x03\\xa5\\xfe\\x15\\x8b\\xe0\\xba\\x60\\xd8\\xa2\\x12\\xd4\\x2f\\x8c\\x5c\\x2a\\xf2\\x54\\xbf\\x1b\\x9c\\x80\\xdf\\x6f\\x1c\\xf0\\x9d\\x70\\x79\\x3c\\xae\\x1a\\xbb\\x46\\x27\\xb1\\x78\\x0f\\x1b\\xce\\x7f\\x61\\x7e\\xe5\\x0f\\x6b\\xd4\\xb0\\x83\\xb2\\xfc\\x7c\\xd8\\x44\\xaf\\xb7\\x23\\x80\\xd5\\xcb\\x6b\\x25\\x5b\\xf4\\x7e\\xa7\\x1c\\xad\\x6c\\x6c\\x4d\\xf0\\x21\\xf8\\x1b\\x54\\x8f\\x43\\x2c\\x18\\xac\\x36\\x6c\\x6a\\xec\\xd0\\x3b\\x6c\\x8c\\xe2\"},\n{{0xee,0x81,0xe0,0xfb,0x05,0x2e,0x23,0xad,0x75,0x9d,0xe6,0xaa,0x98,0x38,0xde,0x98,0xe3,0x6d,0x48,0x20,0xdc,0x0e,0x1b,0x7b,0x3e,0xf1,0x14,0x1a,0xb9,0xde,0x33,0x40,},{0x98,0xf3,0xc9,0x88,0x07,0x94,0xde,0x64,0xfa,0x26,0x9b,0xdf,0x33,0x60,0x95,0xe0,0xe0,0x1b,0x1a,0x3b,0x37,0x5f,0x96,0x5b,0x93,0x70,0x0b,0xbd,0xf4,0xb9,0x68,0x69,},{0xf0,0xd8,0x73,0xbe,0x15,0xcf,0x45,0x4c,0x74,0x34,0xde,0xab,0x71,0xde,0x25,0xcf,0xe9,0x9e,0x81,0xa4,0x8d,0x2d,0xce,0x6a,0x35,0xd1,0x63,0x37,0x14,0xdf,0x0f,0x8b,0x40,0x29,0xe0,0x58,0x25,0x11,0xef,0xc4,0xd0,0x68,0x92,0xf6,0x72,0x85,0x02,0x46,0xbc,0xf0,0x70,0xc4,0x6f,0xad,0xc2,0xfa,0xab,0x44,0xdc,0x43,0x50,0x45,0xde,0x00,},\"\\x28\\xd9\\x9e\\x95\\x18\\xb8\\x82\\x83\\xc2\\x20\\xe7\\x6d\\xe2\\x05\\xd7\\xb6\\x16\\x23\\x59\\xb1\\xdf\\xec\\x1f\\xba\\xab\\x98\\xec\\x0e\\xf1\\xdf\\x8d\\xa4\\x0b\\x6b\\x7a\\x77\\x5e\\x97\\x28\\x45\\x0a\\xeb\\x23\\x51\\xfe\\x5c\\x16\\xaf\\xda\\x3a\\xec\\x0d\\x71\\x04\\x9d\\xa4\\xcb\\x7d\\x4c\\x63\\x71\\x3a\\x24\\x10\\xab\\xb0\\x22\\xf8\\x16\\x11\\xcc\\x06\\x45\\x87\\xc8\\x04\\x7d\\x43\\x83\\xc0\\x0c\\x3c\\x56\\x2e\\x9c\\xee\\xa3\\x57\\x75\\x09\\x53\\x91\\xb5\\xf3\\xdd\\xa0\\xe3\\x73\\xc4\\xa7\\x7f\\xf6\\x18\\xa2\\x8e\\xf6\\x87\\x87\\xeb\\xfc\\x3e\\xbc\\xcc\\xc5\\xd1\\xce\\x32\\xdd\\xf4\\x3b\\xfc\\xe5\\x72\\x03\\xda\\x76\\xa8\\x66\\x4b\\x3c\\x61\\x6a\\x88\\x69\\x28\\x2d\\xb0\\xb7\\x28\\x11\\xb5\\xfd\\x5a\\x2a\\x03\\xa4\\xff\\x66\\x72\\x4b\\x04\\x89\\xea\\x2e\\x10\\x73\\xd7\\x81\\xc3\\xf1\\x89\\x11\\x5d\\x79\\xba\\x20\\xa4\\x6d\\x1d\\xfa\\xf5\\xb1\\xa5\\x84\\x7b\\x2a\\x2e\\x31\\xb2\\x80\\x87\\x37\\x56\\x9e\\x60\\xb5\\x72\\x31\\xe6\\xa9\\x9a\\xf2\\x6f\\x58\\xaf\\xeb\\x15\\x77\\x08\\x10\\x47\\x48\\x12\\xfe\\x4a\\xfa\\xcf\\x88\\x45\\x06\\xb8\\xc3\\x14\\xbc\\x67\\x51\\xbb\\x42\\xb4\\xbd\\x6e\\x87\\xd2\\xe5\\xde\\x70\\xfe\\xc5\\xf0\\x01\\x4c\\x42\\x57\\xb1\\x34\\x72\\xa3\\xb0\\x11\\x1a\\x7a\\x8c\\xf8\\x3b\\x1d\\xc0\\xcf\\x96\\x20\\x22\\xcd\\x44\\x46\\x8a\\x3a\\xb1\\xf0\\x01\\x6b\\x70\\xca\\xfb\\x1d\\x02\\x46\\xac\\xd7\\x05\\x39\\x37\\xc9\\xac\\x40\\x20\\x7c\\xf1\\x3b\\x50\\xdd\\x15\\xe2\\xa2\\xe1\\x5f\\x50\\xa0\\x5b\\xca\\x2f\\x28\\xe7\\x70\\x26\\x23\\x71\\xda\\xce\\xe0\\x2e\\x25\\xb2\\xa5\\x96\\x58\\xed\\x90\\xc0\\x60\\x0f\\xa2\\x65\\xb7\\xde\\x3d\\x44\\xf8\\xef\\x07\\x21\\xbf\\x39\\xec\\x4d\\x4e\\xca\\x58\\x88\\x52\\x7b\\x77\\x80\\x67\\xb1\\xd6\\x59\\xc0\\x05\\x14\\xc8\\xd7\\x05\\x62\\x73\\xa2\\x94\\xcb\\xaf\\xe4\\x50\\x90\\xd0\\x69\\xbb\\xd0\\x9f\\x92\\xf4\\x61\\xe6\\x48\\xf3\\xe6\\x82\\x88\\x2c\\x71\\x57\\x6e\\x97\\x4d\\xeb\\xb0\\xcb\\x7e\\x0e\\x83\\x16\\x40\\x66\\x60\\x15\\x0d\\xab\\xb5\\x8e\\x76\\x24\\x66\\x14\\xa2\\x91\\xc1\\x2c\\xe9\\xe0\\x34\\x6c\\x02\\x77\\x4d\\x4d\\x09\\xce\\xcc\\x23\\x69\\x67\\x12\\xfe\\xe2\\x50\\xc0\\xbb\\x5d\\xf7\\xa2\\xa4\\xc4\\x3a\\x55\\x63\\x33\\x1b\\xcb\\xbf\\x84\\xbe\\x3f\\x2e\\xeb\\x06\\x54\\x53\\x2e\\x85\\xec\\x59\\x7b\\x53\\xb3\\x2f\\x39\\x54\\xcc\\xaf\\x0c\\xd4\\x26\\xde\\xf9\\x1e\\xc4\\xb2\\x08\\x41\\x69\\x48\\xaf\\x27\\xde\\x04\\xd8\\x32\\x70\\x58\\x97\\xa0\\x4c\\x5e\\x24\\xa2\\xe8\\x8b\\x20\\x04\\x0f\\xd4\\xec\\xa3\\x08\\x9f\\xdb\\x91\\x8a\\x92\\xe3\\x5c\\x4d\\x31\\xda\\x26\\x85\\x0b\\x9d\\xd3\\x41\\x18\\xc7\\x44\\x49\\xa8\\x55\\xff\\x4b\\xc9\\xff\\xf0\\xd1\\x44\\x78\\x39\\x65\\x4b\\x00\\x41\\x79\\x99\\xfa\\x4e\\xb8\\x91\\x02\\x13\\x3c\\xd3\\x20\\x40\\x91\\x53\\x58\\x49\\x57\\xc1\\x04\\x89\\xdb\\x4b\\x72\\x44\\xc9\\x59\\x07\\x98\\x8e\\x83\\xdc\\x82\\x12\\x71\\xdc\\x1a\\xb6\\x43\\xd6\\x99\\x2d\\x0f\\xd8\\x20\\x49\\x2a\\xe6\\x42\\xe2\\x4d\\x19\\xa1\\x79\\xfa\\x75\\xd9\\x36\\x3b\\x32\\x16\\x62\\x60\\x6f\\xd9\\x4a\\x47\\xfd\\xb2\\xe6\\x8d\\x3f\\x30\\xc0\\x46\\x73\\xf8\\x09\\xde\\x01\\x44\\x94\\x5e\\xa4\\xd4\\x18\\x3d\\x48\\xf1\\x75\\x07\\x9e\\xed\\x50\\x32\\x3c\\x6b\\x19\\x2e\\x02\\x0e\\x16\\x2a\\x35\\x03\\xaa\\x58\\x2f\\xb0\\x8b\\x40\\x36\\x24\\xa2\\x3e\\x35\\x7e\\xed\\xa0\\x8d\\x90\\x43\\x86\\xf3\\x58\\xc3\\x6c\\x64\\xd3\\x14\\xc7\\x7c\\xd9\\xd4\\xd2\\x3d\\x58\\x1e\\xe5\\x3d\\x81\\xff\\x97\\xad\\xa0\\x19\\xcf\\xcf\\x04\\xeb\\x9d\\xcc\\x1d\\xe9\\xb7\\x4c\\x3d\\xb6\\xb8\\x11\\x57\\x8b\\xd4\\xf2\\x19\\xc5\\xca\\x48\\xef\\x4c\\x82\\x6b\\x09\\xe6\\xc9\\x6d\\x03\\x1f\\x65\\xdd\\x48\\xb6\\xe7\\x3d\\x0c\\x10\\x05\\x86\\xb2\\x1d\\xf0\\x29\\x3a\\x03\\xd2\\xed\\x7e\\x50\\x09\\xad\\x02\\x53\\x40\\xc2\\x1d\\x09\\x06\\x06\\x91\\xf5\\xcd\\x8a\\xf2\\xab\\x12\\xf9\\xb8\\x60\\xee\\x87\\x81\\x5e\\x1a\\x9f\\x40\\x0c\\x2a\\x6f\\x63\\x4e\\xa8\\xf9\\xb3\\x42\\x5a\\x08\\xd1\\x0b\\x3c\\x81\\x53\\x67\\x38\\x8f\\x4d\\x1b\\xe3\\x56\\x31\\x8e\\xcf\\x90\\x35\\xd0\\xee\\x97\\x5a\\xff\\xa8\\x59\\xca\\xac\\x28\\xeb\\xcc\\xd0\\x59\\x9b\\xb2\\xf6\\xf3\\x52\\x36\\x61\\xbd\\x17\\x8f\\xc9\\xe4\\xca\\xc3\\x78\\xbb\\x9d\\xd4\\x71\\x6b\\xb0\\x69\\x23\\xfd\\x2b\\xbd\\x56\\xc9\\x59\\xc4\\x2b\\x95\\xd5\\x01\\x93\\xf8\\xbf\\x29\\x9f\\xcc\\xa3\\xb2\\xee\\xa9\\x4e\\xc5\\xf9\\x85\\x83\\x92\\x4c\\x08\\x04\\x16\\xe2\\x8b\\x54\\xfe\\x57\\x65\\x84\\x58\\xb0\\x55\\xce\\x4d\\xe8\\xa7\\x5f\\xc8\\x27\\x15\\xca\\xe9\\x1d\\x37\\x5c\\xf6\\x92\\x81\\x37\\x80\\x51\\xbb\\x61\\xfd\\xd7\\xbb\\x00\\x68\\xf6\\x3e\\xfa\\x6d\\x6e\\x83\\xd8\\xfd\\x42\\x57\\xaf\\x80\\x97\\x0f\\x4a\\x9e\\x69\\x24\\xb2\\xde\\x0a\\xd9\\x66\\xdf\\xfe\\x6f\\xa4\\xa1\\x13\\xb0\\xe7\\x72\\xf1\\x76\\x87\\x85\\xb3\\xb4\\x20\\x49\\xf7\\x6c\\x48\\xad\\x80\\xf2\\xc6\\x7f\\xb0\\xf9\\x1a\\x5f\\xc4\\x10\\x79\\x12\\x52\\x0d\\x8d\\x68\\x3c\\x06\\x2c\\x3a\\x22\\x2b\\xcd\\xa7\\xe7\\x10\\xba\\xcd\\x47\\x8e\\xe8\\x83\\x67\\xb6\\xa0\\x59\\xa4\\x52\\xfd\\x26\\xf1\\x14\\xa5\\xac\\xbd\\x69\\x79\\xba\\x01\\x9f\\x7d\\xa6\\x8a\\xc0\\x4a\\x19\\x30\\x26\\xbc\\x1c\\x27\\xe4\\x83\\x7b\\x1d\\xe2\\x9c\\xce\\x09\\x0e\\x33\\x80\\xd5\\x05\\x1a\\x58\\x64\\x09\\xe6\\x28\\xe3\\x14\\x56\\x65\\xbb\\x1d\\x84\\xec\\xd8\"},\n{{0x69,0xd0,0x1d,0x82,0x91,0x13,0x08,0x1c,0xbf,0x5d,0x0c,0x6e,0xf7,0x7b,0x21,0x77,0x5c,0x8d,0x9b,0x68,0x00,0x00,0x05,0x6f,0x03,0xc7,0x5a,0x7d,0x0a,0x05,0x87,0xd2,},{0xee,0x84,0x69,0xdd,0x61,0xcf,0x5d,0xe4,0x00,0xda,0x7d,0x7a,0x47,0x9a,0x44,0x18,0xe6,0x77,0x2e,0x69,0xff,0x53,0x30,0xce,0x5c,0xa7,0x78,0x59,0xfe,0x27,0x17,0x55,},{0x40,0x8c,0xef,0xcf,0x01,0x41,0x7e,0x2d,0xc6,0xa8,0xa1,0x82,0x84,0xe4,0x11,0x65,0x7f,0x03,0x92,0x50,0xc3,0x12,0x78,0xdb,0x28,0x19,0xf9,0xea,0xea,0x42,0x93,0xfb,0xf6,0x83,0x1a,0x28,0x01,0xfc,0x1e,0xa6,0x87,0x16,0x57,0xb8,0x41,0xe1,0x73,0xf4,0x51,0xb0,0xd5,0x75,0xa9,0x37,0x9e,0x35,0x85,0x7e,0x8c,0x72,0x97,0xfa,0x14,0x04,},\"\\x0b\\x9e\\x11\\x0f\\x29\\xd1\\x98\\x16\\xa1\\x7b\\x2c\\x75\\x47\\x8f\\x13\\xce\\xe9\\x53\\x81\\x1a\\x19\\x83\\x01\\x4c\\xb7\\xeb\\x0f\\x75\\x52\\x69\\x12\\x04\\x4c\\x3e\\xa6\\x82\\x97\\x80\\xe6\\x57\\xf8\\x17\\xc5\\x59\\x7d\\x46\\x61\\x08\\x0d\\x90\\x34\\xc9\\x77\\x87\\x22\\x41\\x8f\\x2c\\x3a\\xee\\xca\\xef\\x6b\\x69\\x0c\\x5b\\xd3\\xb5\\x93\\x70\\x10\\x86\\x98\\x8e\\x43\\x40\\xae\\xc3\\x4e\\x01\\x72\\x75\\x8e\\xb2\\x40\\x87\\xd0\\x3a\\x8f\\x76\\xe7\\xcb\\xca\\x53\\xaa\\xaf\\xc4\\xd2\\x15\\x5c\\x75\\x32\\xab\\x54\\xbe\\x48\\x87\\x26\\x53\\x06\\x6f\\xa1\\xfd\\xd5\\x4a\\xcf\\xe9\\xda\\xae\\xca\\x35\\x6c\\x29\\x0e\\x6b\\xe6\\x33\\x55\\xb6\\xd9\\xfc\\x52\\xeb\\x5e\\x4f\\xcc\\xbb\\xc6\\x08\\x35\\x07\\x13\\x2d\\xe4\\x85\\xbf\\xae\\x9f\\x42\\xe1\\x97\\x12\\x23\\x2b\\x71\\x64\\x02\\xc2\\x3f\\xea\\x74\\xef\\xa6\\x9d\\x73\\xc8\\xc2\\xe3\\xa8\\x66\\x2b\\x8b\\x65\\xb0\\xfd\\x00\\x77\\x41\\x01\\x3e\\x1f\\x6e\\x3c\\xfe\\x43\\x45\\xd5\\xc8\\x30\\x68\\x2f\\xe6\\x00\\x21\\xd7\\x08\\xe1\\x0a\\x9e\\x9f\\x40\\x52\\xff\\x7a\\x6a\\xbf\\x28\\xac\\xb1\\xd6\\xb5\\xfb\\x03\\x8e\\xed\\x3f\\x72\\x51\\x3c\\x35\\x5b\\xbf\\xd5\\xc2\\x27\\x4f\\xa8\\x5f\\xc4\\xf4\\x46\\x97\\x4b\\x2d\\x1b\\xc0\\x36\\x50\\x7a\\x1e\\xb5\\xfc\\xf5\\x5d\\xbd\\x44\\x21\\x0e\\x53\\x82\\x74\\xde\\x80\\x8b\\x90\\x0b\\xf1\\xc0\\xfc\\xc0\\x24\\x12\\x70\\xdb\\x8d\\xbd\\xcd\\x88\\x34\\x9d\\x67\\x22\\x4f\\x08\\x7e\\x5f\\x07\\xf6\\x99\\xb0\\xba\\xe6\\x8b\\x2e\\xbc\\x9a\\x4e\\x27\\xc7\\x0d\\x3a\\xc7\\xd9\\x96\\xfa\\x7d\\x4d\\xab\\xd5\\x68\\x37\\x8e\\x3f\\x93\\x90\\x5b\\x1c\\x89\\xc6\\x52\\xd3\\x84\\xc1\\x6c\\x2b\\xcb\\x1c\\x98\\x44\\xc3\\x8f\\x71\\xbb\\x13\\xe0\\xc6\\xa2\\xea\\x95\\xb6\\x12\\xe3\\x90\\xc5\\xf8\\x6d\\x24\\x8e\\xa5\\x31\\xf2\\xec\\x6f\\x63\\x9a\\x40\\x2d\\xfa\\xcc\\xf3\\x72\\x17\\x00\\x53\\x44\\x03\\x07\\x45\\xd1\\xf1\\xe5\\x20\\xcc\\x19\\x5d\\xaf\\xdd\\x7f\\x29\\x5f\\x37\\x7b\\x8d\\x61\\x47\\x16\\x70\\x38\\x36\\x21\\x9b\\xb7\\xb0\\x9f\\xea\\x7a\\xae\\x9a\\xc3\\x3e\\x42\\xdc\\xab\\x65\\xcc\\x61\\x42\\xfc\\xd8\\xce\\x15\\xe9\\x77\\x17\\xfd\\xb3\\x3e\\x95\\x38\\xc4\\x4f\\x6c\\xd9\\xc1\\xc6\\x5d\\xb6\\x27\\x51\\xf5\\x52\\xf8\\x70\\xf1\\x01\\x42\\xc9\\x6f\\x9d\\xf1\\x85\\x5a\\xbb\\x39\\xe4\\x27\\x06\\xa5\\x63\\xab\\x15\\x45\\x11\\xfd\\xce\\x68\\x7c\\x95\\x76\\xf9\\xed\\xc3\\xb4\\xba\\x55\\x34\\x6c\\xe6\\x68\\x02\\xff\\xfe\\xf4\\xb1\\xb5\\xe1\\x20\\x15\\xce\\x8b\\x57\\xde\\x54\\x58\\xca\\xa0\\xda\\xf3\\x41\\x96\\x81\\x28\\x58\\x42\\x88\\xc2\\xf2\\x7c\\xbf\\xb7\\x6e\\xab\\x28\\x6b\\xac\\x5f\\x66\\xaa\\xd0\\x04\\x9e\\x0c\\xa6\\x0a\\x90\\x14\\xe1\\x79\\x01\\xc4\\x13\\x0e\\x83\\xce\\xae\\xb4\\xc2\\x71\\x3e\\x97\\x1a\\x23\\x5e\\xff\\x99\\x5a\\x81\\x3a\\xe4\\xea\\x64\\xa5\\x83\\xff\\xde\\xfd\\xac\\x82\\xac\\x76\\xea\\xf4\\xd4\\x7c\\x4a\\xc8\\x25\\x0f\\xcb\\xaf\\xd6\\xb8\\x8f\\xae\\xb4\\x80\\x15\\xf5\\xb4\\x2b\\x53\\x34\\xa5\\x0b\\x31\\xd4\\x50\\x2e\\xa4\\x91\\xda\\x90\\xdc\\xe9\\x3c\\x08\\xfd\\x56\\xf5\\xc5\\x8e\\xed\\xb3\\x79\\x16\\x6a\\x23\\x76\\x2b\\xe5\\xe4\\xad\\xea\\xa6\\xf4\\xae\\x1c\\x24\\xe0\\xca\\xc4\\xdd\\xca\\x03\\x83\\x45\\x85\\x60\\xcd\\xc4\\x8b\\x8c\\xd1\\xf4\\x2a\\x3b\\xa2\\xf6\\xff\\xb6\\x07\\x79\\x09\\xfc\\xb2\\x94\\xad\\x1e\\xf4\\xa4\\x4c\\x22\\xec\\x4b\\x39\\x87\\xdd\\xbe\\xef\\x32\\x5b\\x98\\xce\\xd5\\x68\\x15\\xea\\x7d\\x5f\\xcc\\xf5\\xaf\\xdf\\xe9\\x8e\\x0e\\x6d\\x92\\x0f\\x7a\\xda\\x2e\\xb5\\xc9\\x16\\x24\\xc7\\x6c\\xbb\\xa2\\x99\\x3a\\x9c\\x7a\\x55\\x02\\x1d\\x12\\x7a\\x66\\x7b\\x39\\xe2\\x35\\xdf\\x4f\\x81\\xde\\xe7\\xdd\\x14\\x28\\x98\\x77\\x8d\\xbd\\x92\\x13\\x5b\\x70\\xb3\\xac\\xf5\\x9f\\x6c\\x29\\xa2\\xc9\\xd4\\xa7\\x00\\x6e\\xf1\\x1a\\x91\\x8b\\x3a\\x29\\x06\\x26\\x4a\\x15\\xd6\\xb5\\x29\\x30\\x8c\\xbc\\x89\\xf8\\x56\\x01\\xfc\\x1e\\xa1\\x31\\x4d\\x67\\xf7\\x56\\x6c\\xf1\\x09\\x16\\x5c\\x7f\\x92\\xde\\x1a\\x18\\xd7\\x0d\\xeb\\xe0\\x24\\x34\\x9d\\xb3\\x56\\x0a\\x6e\\x52\\x7e\\x2a\\xc3\\xe0\\x67\\x89\\x46\\x87\\x04\\xe6\\xb8\\xf1\\x87\\x1f\\x16\\xba\\xe9\\x82\\x73\\x92\\xb4\\x18\\xf1\\x08\\x6c\\xc4\\x97\\x08\\x6c\\xed\\x14\\xb1\\x24\\x9d\\x6d\\x87\\x94\\xf2\\x3b\\xb8\\x77\\x9d\\x41\\x86\\x48\\xf2\\x15\\x56\\x56\\xa6\\xfd\\xa7\\x44\\x0c\\x56\\x28\\x4d\\x9b\\x21\\x88\\xfa\\x7d\\x17\\x36\\xbc\\xcc\\x9c\\xff\\x0b\\xe5\\xb1\\xe1\\xf5\\x51\\xff\\x81\\x37\\xff\\x59\\x66\\xed\\x9d\\x0f\\x7f\\x01\\xc3\\xdf\\xf2\\x98\\xe9\\x10\\x2f\\xfb\\xd3\\x24\\xbf\\xca\\x5f\\xfe\\x09\\x68\\xe6\\x6f\\x9d\\x82\\xf4\\x87\\xd3\\x03\\x93\\x4f\\x27\\xf7\\x8b\\x28\\x37\\x8e\\xb7\\x2c\\x38\\x27\\x29\\x62\\xa5\\xf7\\x35\\xd7\\x39\\x2e\\x5d\\x33\\x3f\\xd8\\x6d\\xe1\\x67\\x26\\x9c\\x17\\xa1\\x65\\xb9\\x2d\\x31\\xa4\\x88\\x0a\\x41\\xe1\\x36\\xf7\\x18\\x96\\x0a\\x91\\x9b\\x3d\\x7c\\x4e\\x74\\xcb\\xd7\\x3c\\x73\\xf9\\x21\\xbe\\x51\\x3f\\x73\\x9a\\xff\\xb2\\xe4\\x1f\\x80\\x42\\x6b\\xb8\\xcf\\xb4\\x56\\x4b\\x98\\xfc\\x4d\\xe5\\x32\\x55\\xce\\x3f\\x98\\xb4\\xd2\\x2a\\xe6\\xfc\\xe9\\x19\\x0b\\x55\\xbf\\x2c\\x93\\x86\\x1c\\x1d\\xca\\xc1\\x01\\xb5\\xe1\\x6c\\xf0\\x99\\x91\\xc5\\xde\\xfa\\x33\\xf8\\xd5\\x10\\x56\\xd9\\x34\\xbb\\x4b\\x47\\x7b\\x65\\x20\\xd4\\xc7\\xae\\x22\\xea\\x7f\\xb3\\x10\\x9d\\xe7\\xf4\"},\n{{0x4b,0x8e,0xd2,0x97,0x31,0xf1,0x04,0x79,0x5e,0x97,0xde,0xe7,0xc8,0xb4,0x01,0xa0,0x2a,0xfa,0xa9,0xa7,0x95,0xe6,0x13,0x35,0x3d,0x2b,0x95,0x00,0x17,0x65,0x02,0x7a,},{0xf2,0x22,0x98,0x21,0x0b,0x09,0xfd,0x61,0x7f,0xc8,0xb3,0x50,0x74,0xca,0x18,0x01,0xe6,0x07,0x5d,0xc9,0x2a,0x8f,0x50,0x34,0x4b,0x80,0xe8,0x54,0x05,0xa0,0x38,0xf5,},{0x23,0x45,0x88,0x66,0x86,0xeb,0x39,0xb5,0x19,0x9c,0xaa,0xa9,0x61,0x5b,0xc6,0xb4,0x89,0x6f,0x07,0x6e,0x8b,0xd7,0x36,0xc0,0x03,0x8a,0x65,0x17,0xf9,0xc2,0xb1,0x67,0xe7,0x59,0xf3,0x73,0x72,0x26,0x8a,0x69,0x7e,0x9b,0x78,0x60,0x5f,0x2e,0xd9,0x47,0x25,0xf6,0x90,0x5a,0x79,0x00,0x15,0x3f,0xc9,0xe8,0xbe,0xed,0x31,0xff,0xae,0x05,},\"\\xcb\\xb5\\xf1\\x3a\\x0e\\xf2\\x83\\x7b\\x80\\x5d\\x3b\\x78\\x51\\x09\\xf9\\xf2\\xe0\\xd0\\xa0\\x17\\xbf\\xe7\\x69\\x2d\\x91\\xec\\x23\\xdd\\xab\\x78\\x17\\x33\\x0b\\xef\\x24\\x7f\\xd9\\x1a\\xb2\\xc7\\x7d\\xd4\\x41\\x25\\x19\\xcb\\xd3\\x84\\x75\\xce\\x0c\\xb3\\x9b\\x14\\x80\\x09\\x2b\\xc7\\x38\\xd4\\x15\\x2b\\x8a\\x6d\\x55\\x24\\x8e\\x3b\\x9f\\x32\\xcd\\xcd\\x15\\xec\\x5d\\x05\\x9e\\xc3\\xc8\\x84\\x75\\x54\\xee\\x47\\x00\\x53\\x94\\x97\\x4d\\x8e\\xb2\\x35\\x92\\xd1\\x7f\\x5a\\x39\\x6e\\x3c\\x19\\xf8\\xe8\\x98\\x37\\x06\\x79\\xfe\\xf5\\x31\\x8c\\x4d\\xd2\\x99\\xc6\\x21\\x7d\\x6a\\xbc\\xc9\\xb6\\x1a\\x5b\\x2d\\x0c\\xfe\\xf6\\x95\\xd1\\x70\\xca\\x20\\xa8\\x3d\\x6f\\xd3\\xc6\\x66\\xc8\\xfd\\x1c\\x10\\xad\\x97\\x0e\\x2f\\xa6\\xaf\\x10\\xff\\x0e\\xd0\\xcb\\xfe\\x75\\x22\\x46\\xd0\\x3f\\x3a\\x3c\\x60\\x32\\xdb\\xb3\\x19\\xbc\\xfd\\xac\\x4d\\xaf\\xc5\\x0b\\xc3\\xe6\\xbf\\x59\\x5f\\x49\\x1d\\xec\\x38\\x8b\\x34\\x41\\xb8\\xce\\xe0\\xdf\\x91\\xf5\\x5c\\xc7\\x80\\x7d\\x07\\xf8\\xf5\\x41\\xed\\x73\\x22\\xff\\xc3\\x9d\\x18\\xf8\\x95\\x60\\xe4\\x12\\x3a\\xec\\x1d\\x77\\x96\\x9c\\xf1\\x87\\x77\\x86\\xf4\\xcf\\x94\\xb1\\x77\\x0b\\x10\\x90\\x65\\x5e\\x8c\\x72\\xee\\xce\\xa4\\x57\\x2e\\x46\\xf5\\x80\\xf9\\x63\\x96\\x6d\\xb2\\xa1\\x08\\x5e\\xea\\xbc\\x57\\xbf\\x4a\\x84\\x72\\x4b\\x9c\\x85\\x99\\xa4\\x33\\xab\\xf5\\x8b\\xca\\x80\\x40\\x91\\xd3\\xd5\\xe6\\xe5\\x04\\x8e\\xc2\\x7b\\xf8\\x12\\x9b\\x67\\x0c\\xc2\\xc8\\x8d\\x9c\\xac\\x47\\x18\\x59\\xf4\\x69\\xb9\\x18\\xf3\\xf6\\xd7\\x0f\\x7d\\x66\\x63\\x50\\x1f\\xfb\\xef\\xef\\x02\\x6d\\x79\\xea\\x70\\x92\\x7c\\xcf\\x60\\x75\\xee\\x51\\x05\\x42\\x33\\x21\\xe1\\x1a\\xee\\x9a\\xd1\\x6f\\x98\\x7e\\xfb\\xdd\\x00\\xb6\\x2a\\xff\\x69\\x8e\\x52\\x1a\\xdf\\x92\\x03\\xb1\\x5e\\x9f\\x0f\\x3a\\xd0\\x7d\\xca\\xd9\\xdd\\xcc\\xaa\\xe9\\xb4\\x90\\x24\\x7f\\x12\\xc3\\x11\\xde\\xe6\\xb7\\x3b\\x8f\\x91\\x24\\xfd\\xce\\x12\\x99\\xb4\\x7f\\xb1\\x91\\x4c\\xee\\x7e\\x3a\\x07\\x81\\x4e\\x31\\x2c\\x3c\\xe5\\x69\\x27\\x67\\x2c\\x51\\xb3\\x18\\x59\\x80\\xcd\\xe5\\x7f\\x3a\\x75\\x9b\\x50\\xbc\\xfc\\x4c\\xb0\\x75\\x3b\\x95\\x4d\\x97\\x13\\x5d\\xeb\\x2a\\x05\\x32\\xe9\\x8b\\x66\\xf3\\x9a\\x7c\\x08\\xcf\\x4d\\x54\\x85\\x39\\xe2\\xeb\\x9f\\x42\\x2f\\x66\\x49\\x65\\x88\\x93\\xa7\\xc3\\xc2\\x5a\\x4f\\xc9\\x01\\xf8\\xc3\\x98\\xb8\\xc7\\x27\\x33\\x91\\x1a\\x00\\x72\\xed\\x6b\\xd2\\xf4\\x18\\x93\\x89\\xae\\x10\\xa8\\x14\\xf6\\x48\\xd7\\x1f\\x69\\xc3\\x7e\\x82\\x95\\x78\\x44\\x28\\x18\\x3b\\x93\\xc8\\x01\\x3b\\x96\\x4a\\x9f\\xef\\x86\\xb4\\x8f\\x48\\x93\\x16\\xbc\\x22\\x2e\\x96\\xb3\\xbd\\x15\\xff\\x14\\x9b\\x96\\x82\\x03\\x29\\x55\\x1c\\x15\\xe0\\xd0\\x95\\xd1\\x56\\x9b\\x1e\\x21\\x31\\xc7\\x87\\x51\\x56\\x5c\\x30\\x41\\xf2\\x97\\x85\\x39\\x5b\\x97\\x15\\x13\\x17\\xf6\\x2e\\x35\\x82\\xe4\\x07\\xb1\\x64\\x9e\\x60\\xd0\\x3a\\x85\\x99\\x12\\x0a\\x30\\x2a\\x46\\x95\\xfa\\x86\\x2b\\x41\\x20\\xf9\\x4d\\x22\\xec\\xae\\x72\\x39\\x8d\\x20\\x94\\xd1\\x08\\xad\\x2d\\xbc\\x1b\\x95\\x97\\x35\\x90\\x21\\x42\\xaa\\x5f\\xe6\\xe7\\x99\\x65\\x59\\xf6\\xf6\\x01\\x44\\x8a\\xea\\x02\\xf3\\x56\\xf8\\xdc\\xdd\\x14\\x43\\x40\\xeb\\x36\\x19\\xf9\\x86\\x5b\\xf7\\x67\\x2a\\xea\\x32\\x6c\\x4e\\x93\\xc9\\x9f\\x0e\\xd1\\xf9\\xed\\x86\\x6b\\xe1\\x5d\\x3a\\xf2\\x67\\x5f\\x6d\\xd6\\xe2\\x96\\x60\\x2c\\xa3\\x73\\xa8\\x15\\xb0\\xbe\\x46\\xbc\\x2a\\x3f\\xbb\\xa0\\x6b\\x88\\x05\\xc7\\x31\\xfe\\x08\\x00\\x7d\\xaa\\x06\\x05\\x09\\x61\\xb2\\x4d\\x14\\x69\\x3a\\x72\\x89\\x8c\\xcf\\xb8\\xb8\\xfe\\xdc\\x60\\xa4\\xee\\xf8\\xff\\x79\\xb6\\xdd\\x75\\x92\\x59\\x18\\x33\\xb5\\x76\\xef\\x48\\x29\\x4e\\x5e\\x04\\x85\\x94\\x2e\\x57\\xc1\\x19\\x60\\x2e\\xdd\\xf8\\x8b\\x1f\\xae\\xa5\\x17\\xf2\\xfc\\x2e\\x3d\\x14\\xd2\\x46\\xa5\\x2c\\xbd\\x71\\xa1\\x08\\xc6\\x6b\\x6c\\xc4\\xf2\\xd4\\x58\\x04\\xa2\\x82\\xec\\xed\\xb1\\xb0\\xad\\x3d\\xc3\\xb4\\x88\\x0a\\xb2\\xff\\x78\\xb8\\xdd\\xde\\x48\\xf7\\x46\\x6c\\x14\\xfe\\xd3\\x49\\xe9\\x5b\\x50\\x53\\xab\\xf1\\xbf\\x09\\x91\\x12\\x60\\x31\\xd9\\x75\\x47\\xd1\\x43\\xc2\\xae\\x16\\x49\\x28\\xb6\\x1c\\x07\\x08\\xaf\\x8c\\xa3\\xe4\\xf5\\x51\\x54\\xd1\\x3d\\x75\\xe9\\x7d\\xb4\\xba\\x3e\\x69\\xd3\\x6e\\x9b\\x37\\x08\\x23\\x68\\xc2\\xf7\\x21\\xbd\\x3f\\x95\\x12\\x6a\\x1e\\x00\\x4e\\xb2\\xa1\\xbf\\x26\\x83\\x43\\xae\\x21\\xd2\\x99\\x50\\x44\\xa2\\xca\\xdd\\x67\\xff\\xac\\x9e\\x15\\x38\\x17\\x5b\\x3c\\xc4\\x4d\\xb5\\xd2\\x6f\\x1d\\x5c\\xc8\\x9c\\xa0\\xe1\\xc1\\xee\\x85\\x37\\xa8\\xa9\\x1d\\x32\\x4c\\x2e\\x02\\xe1\\x8b\\x9f\\xb9\\x73\\x0d\\x6d\\xda\\x55\\xf7\\x2d\\x84\\x33\\x89\\x69\\x3e\\xbf\\xcb\\xa7\\xfb\\xe1\\xa0\\xbc\\xff\\xb9\\xaa\\x28\\x4f\\x4a\\xe6\\x6f\\x44\\xa8\\xb8\\x93\\x02\\x98\\x3b\\x22\\x73\\x6d\\x0c\\x72\\xd6\\xa0\\x44\\xe4\\x29\\x16\\x24\\x24\\x3a\\x4e\\x0c\\xe6\\x5d\\x5e\\x53\\x46\\xd6\\x7f\\xed\\x37\\x60\\xdd\\xb0\\xc5\\x10\\xb5\\x0f\\xf3\\xee\\xf0\\xa1\\x8a\\x26\\x7d\\xe7\\x30\\x47\\x6d\\xd8\\x2d\\xff\\x70\\x72\\xcb\\xa0\\x98\\x48\\x25\\xa0\\x04\\xdd\\x4b\\xcd\\x8c\\x37\\xfd\\xaf\\x1f\\x68\\x3d\\x1d\\x93\\x80\\xe1\\x35\\xa9\\x5d\\x24\\xb8\\x9f\\xad\\x0b\\xe9\\x41\\xc5\\x48\\x25\\x1b\\xec\\x90\\xcc\\xae\\x01\\x5b\\xc0\\x56\\x7d\\xa8\\x4b\\x37\\x1e\\x50\"},\n{{0x08,0x0d,0x7f,0x76,0x18,0x2e,0xe6,0xbc,0xea,0x89,0x4b,0x1e,0x00,0x60,0x55,0x8b,0x3b,0x12,0x5a,0x34,0x99,0xdf,0x39,0x73,0xb8,0xdd,0x66,0x93,0x40,0x8e,0xe4,0x69,},{0x41,0x24,0x71,0x3d,0x7c,0x2d,0xf5,0x0f,0x93,0x05,0x57,0x30,0xd1,0xb2,0x81,0xda,0xec,0x30,0x28,0xcf,0x2c,0x1e,0x48,0x58,0xd1,0x28,0x70,0x7a,0x23,0xd6,0xde,0xb0,},{0x18,0x5f,0xb1,0xb6,0xd8,0x6d,0xc4,0x44,0x48,0x10,0xcf,0x5e,0xc6,0xfe,0xf0,0xab,0xda,0xfa,0x2a,0x6f,0xcc,0xb4,0x5d,0x11,0xcf,0xb5,0x4b,0xa1,0x6a,0x68,0x43,0xf2,0x80,0xd3,0x80,0x47,0x10,0x02,0xae,0x0d,0x71,0x50,0x85,0x56,0xc7,0x8e,0xd5,0x41,0x5e,0x42,0x33,0x8c,0x16,0x1f,0x2b,0x62,0x1e,0x74,0xcb,0xa4,0xf6,0xa1,0xd4,0x02,},\"\\xab\\x0a\\x6d\\xe2\\x35\\x1b\\x9a\\x84\\x98\\xf6\\x82\\x72\\xd9\\xa0\\xa7\\xa0\\x57\\x36\\x5d\\x34\\xef\\xa0\\xfd\\x34\\xcc\\x3b\\xf8\\x62\\xe4\\x9c\\xdc\\x30\\x2b\\x2b\\xd5\\xa3\\x0d\\x60\\x1a\\x13\\x0e\\xc4\\x03\\x2f\\x54\\x1a\\xe6\\xcb\\x7b\\xa9\\x7f\\x84\\x18\\x3d\\x2d\\x25\\x81\\x28\\x7c\\xa7\\x01\\xd7\\xd7\\xa9\\xab\\xa1\\x10\\xce\\x58\\xb9\\x46\\xac\\x08\\x24\\x30\\x5d\\xf7\\x92\\x9f\\x3d\\xd7\\xfc\\x9c\\x87\\x32\\x23\\x86\\x37\\xe2\\xb1\\x81\\xd6\\xe1\\x16\\xc7\\xf6\\x6e\\x32\\x26\\xaa\\xe3\\xce\\xd1\\x61\\x02\\x62\\xda\\x1a\\x0a\\x4a\\xa5\\x0a\\x1b\\x94\\x43\\xec\\x82\\x83\\x29\\xe4\\x73\\x4d\\x28\\xfc\\x25\\xab\\x9c\\x1d\\xe9\\xb8\\x98\\x7e\\x5d\\xc0\\xc8\\x13\\x19\\x16\\xc5\\xf1\\x89\\x28\\x70\\x4a\\x71\\xe8\\x06\\x22\\xb1\\x49\\x2b\\xf2\\xfe\\xc5\\xd4\\xb6\\xdb\\xe4\\x15\\xc8\\xaf\\x2c\\xe3\\xef\\x10\\x9b\\x34\\xdd\\x5e\\x64\\xd5\\x68\\x46\\xf0\\x85\\x93\\x5a\\x4a\\x5d\\x10\\x73\\x49\\x7f\\xb3\\xfb\\x8f\\xb7\\x7e\\x8f\\x5d\\x5e\\x3f\\xd0\\x0c\\x30\\x65\\x2e\\x3c\\x5c\\xde\\x40\\xa3\\x35\\xd1\\x4e\\x54\\x25\\xff\\xba\\x94\\x28\\x85\\xed\\x17\\xbd\\x36\\xdf\\x50\\x69\\x24\\x23\\x7e\\x75\\xbe\\x84\\xda\\x82\\x19\\x50\\xb9\\x14\\x24\\xfd\\x9f\\x16\\xc1\\xb2\\xc7\\x83\\xe9\\x0f\\x8c\\xc2\\xcc\\xc7\\x98\\x0c\\xe9\\x15\\xc7\\x69\\x6b\\x06\\xa5\\x86\\x73\\x02\\x59\\xe6\\xd1\\x45\\x88\\x58\\x2b\\xab\\x9d\\x2a\\x39\\xf6\\x9e\\x98\\xe7\\xf2\\xae\\x9b\\xc0\\xc2\\x61\\x0d\\x7e\\x04\\x57\\xf2\\x6a\\x5d\\x66\\x54\\x3b\\xe1\\xd6\\x5b\\x79\\xc4\\xb7\\xc0\\xd8\\xee\\x73\\xd0\\xc2\\xb6\\x7b\\xf5\\x0d\\x80\\x82\\xf0\\x06\\xf9\\x6d\\x11\\x95\\x05\\x87\\x31\\x93\\xdf\\xdb\\xd4\\x32\\xbb\\x1c\\x9e\\xe0\\xd0\\x3e\\xe5\\x4c\\xf9\\x5d\\x20\\xe9\\x1f\\x7f\\x3a\\x06\\x9b\\x62\\x56\\xf4\\x21\\x59\\xcd\\xc1\\xe6\\x00\\xa9\\xa1\\xc2\\xf5\\xa8\\xe4\\x67\\xd5\\xc2\\xa9\\xdf\\xf8\\x73\\x0e\\x6b\\xe8\\x26\\xfb\\x2a\\x1e\\x64\\x48\\xbf\\xc4\\xfc\\xaa\\xaa\\xcd\\xaa\\x76\\x62\\x35\\x1f\\xaa\\xdc\\x91\\xf7\\xca\\xa7\\x73\\x7d\\xc8\\x2e\\xc3\\xd4\\xb2\\x19\\x36\\xbc\\xa1\\xbd\\x7c\\xe3\\x73\\xad\\x66\\x26\\x4a\\xf1\\x32\\x41\\x16\\x75\\x49\\x31\\x8c\\xdd\\x78\\xe5\\x63\\x82\\x7f\\x85\\xea\\xb2\\x0e\\x0b\\x42\\xbc\\x55\\x4a\\x71\\x2c\\x00\\x51\\xa5\\x01\\x0d\\xc2\\xf2\\xc7\\xdb\\x85\\xac\\xf6\\x54\\x9f\\x9d\\x10\\x2c\\x90\\x3c\\x1b\\xe5\\xa0\\x52\\x92\\xc3\\x0f\\x21\\xab\\x1b\\x2b\\x8a\\xbc\\xbb\\xf1\\x04\\x72\\x3c\\x63\\xf0\\xeb\\xc5\\x54\\xfb\\xee\\x42\\x02\\x0c\\xcb\\x14\\xf4\\x43\\x47\\x8d\\xf7\\x7c\\x6a\\xa4\\x4d\\xb9\\xa5\\x7f\\x8f\\xd4\\x4d\\x97\\xea\\x09\\x9e\\x47\\x74\\x82\\x3e\\xbe\\x12\\x3f\\xcf\\x50\\x16\\xa6\\x6e\\x83\\x7b\\x2f\\x65\\xc1\\x84\\x5e\\x68\\x1e\\xe2\\xa7\\x05\\x9f\\xb1\\x29\\x0c\\xd0\\xa9\\x33\\x12\\x98\\x55\\xcc\\x83\\xc8\\x7e\\x0b\\x3b\\xb6\\x1e\\x44\\x13\\x4a\\xdd\\xd3\\x63\\x78\\x50\\x24\\x6c\\xdc\\xda\\xa2\\x9f\\x15\\xc4\\x1a\\x3d\\x4d\\xd2\\xc1\\xd7\\x60\\x06\\x21\\x24\\x33\\x31\\x24\\xcf\\x09\\x14\\x35\\xfd\\xce\\x71\\x1f\\x52\\x31\\x63\\x68\\x99\\x9b\\xef\\xa4\\xc8\\x0a\\x39\\xb3\\x75\\x0e\\x4e\\x38\\x62\\x89\\xe4\\xe2\\x85\\x5e\\x97\\xb6\\x19\\xb0\\xa2\\x57\\x99\\x91\\x24\\x08\\xb7\\xd5\\x8a\\x4d\\xd9\\x81\\x95\\x71\\xe9\\x01\\x43\\x0f\\x6d\\x55\\x55\\x29\\xdd\\x63\\x0a\\x18\\x67\\x45\\x9b\\x80\\x22\\xd0\\xe0\\xad\\xd6\\xab\\x4f\\x12\\xf6\\x0b\\xaa\\xc7\\x59\\x79\\xbb\\xff\\x7f\\x62\\x58\\xd2\\x8d\\x67\\x60\\xb1\\xff\\x24\\x3c\\x39\\xe4\\xbb\\xd6\\xcf\\x9b\\xea\\x57\\x2a\\x9c\\x08\\x2d\\x05\\xad\\xcf\\xd4\\xcc\\xf9\\xfa\\x02\\x6f\\x2c\\x90\\x4b\\x6e\\x78\\x2e\\xd7\\x09\\xdf\\x77\\x48\\xa3\\x07\\xcd\\x2d\\xc3\\xa0\\xfc\\x41\\x23\\xdf\\x58\\x0c\\xbf\\x49\\xe0\\x5c\\xee\\xab\\xc9\\xf3\\x9e\\x57\\xb7\\xf3\\x00\\x90\\x5d\\x8b\\x31\\x00\\x91\\xfb\\x95\\x3f\\x3d\\xef\\x36\\xde\\xb3\\xe8\\xbf\\x37\\x2f\\x59\\x16\\xb5\\x15\\x97\\xdf\\x02\\x4c\\xe8\\x5c\\xc4\\xc3\\x6e\\xab\\xdc\\x58\\x0b\\x5c\\xf1\\x52\\x99\\x46\\x48\\xf1\\xd7\\xf3\\x5f\\xed\\x5c\\xd1\\x0f\\x6e\\x29\\x49\\x16\\x1a\\x33\\x59\\xb3\\x03\\x4d\\x45\\x0e\\xa6\\xf6\\x1c\\xdf\\x1d\\x5a\\xf7\\x6d\\x40\\x10\\x2b\\x60\\x29\\x4f\\x4e\\x49\\x07\\x82\\x49\\x02\\x6d\\x62\\xfe\\x35\\xfd\\xf2\\x24\\x92\\x8b\\x0c\\x49\\xba\\x2b\\x53\\x39\\xeb\\xb1\\x92\\xc5\\xab\\x7f\\x05\\xcd\\xb9\\x46\\xe3\\x7d\\x67\\x1a\\x4a\\x5e\\xf2\\xa5\\x82\\x72\\x20\\xb4\\x43\\x8c\\xbd\\xa0\\x57\\x36\\x29\\x28\\x06\\x64\\x8f\\x5b\\xdd\\x52\\x42\\x0f\\xa7\\x6b\\x84\\xa6\\xad\\xdb\\x12\\x63\\xeb\\x0c\\x50\\x0e\\x81\\x56\\x6d\\x71\\x8d\\x50\\x66\\x02\\x6d\\xa0\\x97\\x05\\x4a\\x86\\x63\\x10\\x16\\xdd\\xfb\\x70\\x6a\\x56\\x77\\xd5\\x02\\xef\\x84\\xaa\\x73\\xb5\\x86\\x3b\\xc4\\x0f\\xdc\\x42\\xcb\\x73\\x21\\xac\\x5f\\x00\\xe2\\x92\\x8f\\xed\\x7b\\x04\\x18\\x59\\x6d\\xb4\\xb6\\x15\\x1d\\xd6\\xbc\\x6e\\x81\\x8f\\x02\\x53\\x55\\x2b\\xf1\\x37\\x41\\xe6\\x96\\x80\\xe9\\x66\\xc9\\x2c\\x29\\x3e\\x13\\xc9\\x0f\\x7c\\x99\\x99\\xbd\\x1e\\xc6\\xaf\\xe3\\xb4\\xaf\\xfb\\x47\\x34\\x0c\\x89\\x85\\x98\\x29\\xfe\\xb5\\x99\\xdb\\x3a\\x8c\\x3d\\x33\\xfc\\x8d\\x45\\xfa\\x53\\x81\\x07\\x8a\\xe9\\xf7\\x5d\\x85\\xc1\\x49\\x6f\\x5f\\xb5\\xad\\xdf\\x4e\\x40\\x09\\xb7\\x64\\xbc\\xc9\\x11\\x8e\\x92\\x75\\xdc\\x72\\x19\\xf2\\x81\\xd0\\xd1\\xef\\x71\\x58\"},\n{{0x49,0x84,0x6a,0xda,0x7a,0xe6,0x84,0x97,0x1d,0xd9,0x17,0x10,0x79,0x90,0x90,0xb3,0x7f,0xe5,0xad,0x56,0x1d,0x72,0xa3,0x5f,0x2e,0xfb,0x40,0x5f,0x19,0x6a,0xb0,0xec,},{0x4d,0x37,0x0a,0x81,0x94,0xa3,0x04,0x5b,0x09,0xb3,0xbd,0xaf,0xa2,0x7f,0xb9,0xac,0xd5,0x99,0x43,0xa5,0x4a,0xe1,0x4c,0xba,0xaa,0x22,0x00,0xeb,0x0f,0x3d,0xa7,0x1b,},{0xa5,0xc8,0x09,0xd1,0xca,0x4c,0xfb,0xb3,0xdc,0x70,0xa2,0xa3,0xa1,0xf2,0x67,0xc2,0x73,0x30,0x42,0x07,0x19,0xe3,0x60,0x62,0x18,0xa1,0x47,0x1c,0xac,0x57,0xcb,0x67,0x4b,0x9b,0x42,0x82,0x7c,0x5e,0x9a,0x7b,0x25,0xc8,0x13,0x9c,0x13,0xdf,0xf6,0x0b,0xde,0x6c,0x2d,0xba,0xd3,0xa8,0x36,0x11,0x97,0xc1,0xfb,0x19,0xd2,0xcd,0x52,0x0b,},\"\\xab\\x39\\x8d\\x94\\xf9\\x28\\xb1\\xd4\\x21\\x02\\xa3\\xe5\\x13\\xcc\\xd1\\xcb\\x10\\x89\\x90\\x11\\x03\\x94\\x10\\xa8\\x88\\x8b\\xba\\x26\\xdf\\x1a\\x03\\x72\\xbd\\xba\\x0c\\xe8\\xd8\\x54\\xaf\\x51\\xe9\\x33\\x0a\\x8d\\xaa\\x93\\xc1\\x05\\x80\\x90\\x6a\\x8a\\xc7\\x2d\\x29\\x4a\\xeb\\x95\\x66\\xfe\\x1c\\x78\\xba\\x84\\x71\\xc0\\x6c\\x4a\\x8a\\x75\\x11\\x3b\\x34\\x89\\x3f\\x62\\x76\\xed\\x81\\x32\\x92\\x05\\x3b\\x95\\x6a\\x46\\x5d\\x84\\x7d\\x2e\\xce\\x86\\xe2\\xda\\x8a\\x9f\\x0f\\xe3\\xdb\\x52\\xa5\\xaa\\xc7\\x46\\xef\\x96\\x48\\x5e\\xf8\\x1f\\x13\\x62\\xb5\\xa4\\x2e\\xaa\\xee\\x1f\\xbb\\x06\\x46\\x70\\x44\\x71\\xa2\\x1b\\xf7\\x63\\x67\\xbe\\xaa\\x07\\x81\\x2b\\x3d\\x32\\xad\\xcd\\xed\\xde\\xd7\\x53\\x9e\\x3a\\x50\\x1b\\x83\\xc0\\x5b\\x19\\xa4\\x9b\\x52\\x0e\\xde\\xdc\\x9a\\x78\\xa5\\xfc\\x2d\\x50\\x12\\xf1\\xd4\\xe3\\x81\\x84\\x4e\\x79\\x2e\\xd9\\x0b\\x0f\\x57\\xbc\\xe3\\x75\\xc7\\x5a\\x65\\x8b\\x2c\\x78\\xc6\\xff\\x7d\\x9e\\xfc\\xd4\\xbf\\xa3\\x5c\\x47\\x68\\xcb\\xb1\\x95\\xe4\\x82\\x3d\\x9b\\xbd\\x83\\x5a\\x37\\x4f\\xa0\\x4c\\xa1\\xea\\xae\\x9c\\x56\\x6d\\x8f\\xd5\\xaa\\x7c\\xa5\\xef\\xe0\\xdf\\xc3\\x17\\xff\\xfa\\x40\\x9e\\xf1\\x02\\x2f\\x1c\\x3b\\x37\\x6a\\x93\\x5a\\xf5\\x57\\x08\\x3e\\x95\\x28\\x7b\\x07\\xa9\\x8a\\xc6\\xc1\\xb7\\xbd\\x8b\\xb2\\x6b\\x60\\xfa\\x7c\\x4b\\xc9\\x19\\x73\\xb2\\x01\\xb2\\x99\\x22\\xb4\\xb9\\xd0\\x3d\\xd6\\x88\\x2a\\x0b\\xd3\\xb7\\xd9\\xe5\\xb8\\x1e\\xe7\\x4c\\x36\\xbe\\xc6\\x65\\xe4\\x34\\x3c\\x8c\\x9a\\xd3\\x36\\xda\\x38\\x50\\xc9\\xb2\\x69\\x7f\\xe1\\xcc\\xe2\\x9c\\x37\\x86\\x22\\xa3\\x3c\\x24\\x8f\\x44\\x8c\\x88\\xf4\\x8d\\xf0\\x26\\x01\\x43\\xb2\\xa3\\x42\\xf1\\xdd\\xee\\x74\\xd3\\xb9\\x7c\\xa3\\xe1\\x16\\x6b\\x15\\x69\\x93\\xda\\xd3\\x0c\\x49\\xd8\\x10\\xd7\\x40\\x48\\xbc\\x6d\\x46\\x76\\x52\\x00\\x4d\\x7e\\xdb\\x65\\xc6\\xda\\xc3\\xa2\\xc5\\xd3\\x00\\xb9\\x7e\\xe3\\xa1\\x0a\\x9e\\x14\\xb6\\x9f\\x3c\\xad\\x67\\x59\\x72\\x96\\x2e\\x1f\\x8e\\xd9\\x75\\x47\\xad\\xed\\xc4\\x7d\\x1c\\xf3\\x47\\x1e\\xf3\\xb2\\x2f\\xdb\\xf7\\x8e\\x34\\xf3\\x1a\\x3b\\xb7\\x66\\x9c\\x41\\xbd\\x92\\x92\\xc3\\x80\\xbc\\xe9\\xa4\\x2d\\x84\\xbc\\x27\\xac\\x92\\x8b\\x8b\\xfc\\x3c\\x63\\xd2\\x0c\\xcd\\xb4\\x78\\xdf\\x7d\\xdf\\x42\\x1f\\xb1\\xcd\\x90\\x5f\\xfc\\x4c\\x04\\x78\\x6f\\xd9\\xae\\xf0\\x6b\\x89\\x38\\xab\\x8e\\xf5\\x22\\x21\\x7b\\x2c\\x04\\x51\\x5f\\x61\\xa1\\xc3\\x12\\xea\\x83\\x25\\x3f\\x84\\x58\\xc0\\x91\\x8f\\xcf\\xe8\\x74\\xe6\\xe7\\xfb\\x11\\x27\\x5d\\xb2\\xa2\\xec\\x79\\xa2\\xd8\\x68\\x30\\x32\\x33\\xc1\\xb6\\x97\\x95\\x2a\\x3b\\xfd\\x3a\\xd0\\xa6\\xf6\\xcd\\xd5\\xe7\\x2c\\xc9\\x40\\x9f\\x74\\x10\\xa4\\x0d\\x5b\\x45\\x36\\xdd\\x46\\xeb\\x16\\x11\\xae\\x86\\x70\\x36\\x71\\xb3\\xa0\\x51\\x5a\\x03\\x77\\xbe\\xa1\\x56\\x54\\xba\\x0a\\x0d\\x1e\\x4e\\x96\\x02\\x63\\x28\\x42\\xf2\\xac\\xd4\\xef\\x99\\x32\\x36\\xe9\\x93\\xf2\\x65\\x0d\\x59\\x92\\x3f\\x24\\xe2\\xcd\\x30\\x93\\x2d\\x8b\\xf8\\xae\\xec\\x64\\x44\\x72\\xba\\x46\\xa0\\x78\\x81\\x49\\x6c\\x92\\xa0\\x13\\x5c\\x67\\x5a\\xeb\\x0c\\xe6\\x18\\x10\\x88\\xdb\\x8f\\x15\\x6c\\xfe\\x74\\x35\\xca\\xc6\\xc9\\x7d\\xa6\\x37\\xdb\\x4a\\x89\\xf5\\x13\\x31\\xda\\x13\\x73\\x1e\\x74\\x1f\\xcc\\xc0\\x35\\x55\\x42\\xce\\x11\\xef\\xa6\\x9d\\x05\\x38\\xd3\\xef\\x12\\x7a\\xa6\\x87\\x45\\xed\\x30\\x85\\xd2\\x9d\\xa9\\x0d\\xc5\\x83\\x70\\x1b\\x6b\\x3a\\x70\\xa3\\xef\\x3e\\x16\\xa9\\x24\\xb3\\x32\\x03\\xb9\\x23\\x96\\xc4\\xb9\\x45\\xf1\\x27\\xa7\\x88\\x8f\\xa0\\x50\\x15\\xc0\\x60\\x30\\x07\\x56\\x67\\x29\\x23\\x7c\\xc0\\x78\\x2b\\x30\\xc0\\x20\\xd9\\x95\\x95\\x47\\xfe\\xec\\x9f\\x4d\\x67\\x64\\x60\\xbf\\xe0\\xc5\\xc1\\x9c\\xea\\xba\\xee\\x06\\x82\\xdb\\x8b\\xe6\\x91\\x35\\x18\\x1e\\xc0\\xfd\\xd9\\xf7\\xa6\\x6d\\x50\\xbd\\xc3\\x79\\xe4\\xa2\\xc5\\x98\\x17\\x8f\\x95\\x93\\x94\\x6a\\xca\\x64\\x05\\xb1\\x77\\xfc\\xad\\xe0\\xf8\\x64\\x21\\x58\\x3e\\xd6\\x7e\\xba\\x18\\x72\\x22\\xa1\\xe4\\x44\\x95\\xb3\\xae\\x54\\x4f\\xdc\\xa2\\x8e\\x2c\\x14\\x48\\x5e\\xab\\x04\\x71\\xaa\\xa8\\x03\\xc2\\x9a\\x9d\\x8a\\x48\\x92\\x67\\x64\\xfc\\xa1\\xdf\\x51\\x40\\x7a\\xd3\\x3e\\xc1\\x7e\\x94\\x1e\\x6e\\x26\\x17\\x23\\x7a\\x84\\x30\\x98\\x73\\xdc\\x71\\x36\\x55\\x87\\xbd\\xe4\\x27\\x4b\\x5d\\xc3\\x27\\xcc\\xb1\\xe1\\xe9\\xc8\\x57\\xe0\\x42\\xcc\\xca\\x8d\\x85\\x52\\xba\\x28\\x8c\\x97\\x8c\\xfa\\x0a\\xf9\\x9d\\x67\\xcd\\x03\\x40\\x60\\x62\\x8e\\x23\\x52\\x5d\\xbc\\xa2\\x07\\x67\\x9c\\xe2\\x96\\x90\\x87\\x84\\x48\\x55\\x3c\\xd3\\x86\\x75\\xbc\\xe0\\x7b\\xf9\\x7b\\x93\\x17\\xdc\\x44\\x46\\x8b\\x76\\x8b\\x15\\x8b\\x0c\\x11\\x1d\\x63\\xa5\\x72\\x23\\x56\\x55\\xc4\\x0e\\x16\\x59\\x7c\\xa0\\x59\\xf4\\x0c\\x3d\\x8a\\xc5\\xbd\\x61\\xa4\\x87\\xc1\\x53\\x13\\x84\\x6a\\x70\\x4a\\x78\\x11\\xb8\\xbc\\x0c\\xee\\x61\\xe3\\x47\\x62\\xb6\\xc1\\xb7\\xce\\xa1\\xc4\\x6e\\x60\\x87\\xe9\\xa3\\x6f\\x89\\x91\\x8a\\x25\\x8b\\x3f\\xa7\\x76\\x20\\xbe\\x10\\xc1\\x84\\xc3\\xfc\\x39\\x73\\x90\\x24\\xe9\\x82\\x78\\xfd\\x65\\xb8\\x2c\\xad\\x83\\x69\\x9f\\x3a\\xd8\\xc6\\xec\\xcb\\xec\\x8b\\x7b\\x1b\\xd7\\x91\\x4d\\x3f\\x6c\\x3d\\x02\\xbf\\x40\\x28\\x3b\\x1c\\x1f\\x1e\\x98\\xe3\\x08\\xbe\\xae\\xbb\\xf8\\x94\\xb8\\xf5\\xe9\\x1b\\xbb\\xc6\\x25\\x35\\xf9\\x23\"},\n{{0x83,0x34,0x3e,0x37,0xad,0x09,0x1a,0x85,0xee,0xc3,0x70,0x70,0x1b,0x81,0xa5,0x8f,0x93,0x70,0xa4,0xb0,0x42,0x3a,0x07,0x0d,0x60,0xf9,0x2d,0x8d,0x18,0x09,0x84,0x4e,},{0x50,0xb6,0x8b,0xf7,0x26,0xea,0xbc,0xa5,0x3a,0xc6,0xc9,0x0d,0x4e,0xac,0x55,0x47,0x03,0x71,0x2d,0x22,0x10,0x55,0x54,0xf0,0x5b,0xf7,0x9f,0x9d,0x08,0xfc,0xc4,0x93,},{0x9c,0x69,0x89,0xcb,0xe1,0x7e,0x16,0xca,0xa2,0x53,0xff,0xb1,0xa6,0x4a,0x10,0x6f,0xb0,0x17,0x82,0xc9,0x9b,0x17,0x22,0xba,0xf1,0xac,0xaa,0x42,0xae,0x5b,0x36,0xb7,0x9b,0x2a,0x2c,0xd8,0xfc,0x91,0xf5,0xad,0x89,0x23,0x81,0x70,0x25,0xa7,0x78,0x25,0xa0,0x5d,0xf8,0xc4,0x17,0xec,0x53,0xc4,0xa3,0xaa,0x1c,0x0e,0xfd,0x5b,0xbe,0x0f,},\"\\xc7\\xda\\xdc\\xac\\x5d\\x87\\x95\\xe1\\x74\\xb6\\x91\\x38\\x91\\x2e\\x70\\xff\\x41\\xe7\\xa7\\x25\\xfa\\xf3\\x85\\xb7\\x73\\xed\\x15\\x09\\x89\\x72\\xb3\\x0d\\x9b\\x73\\x93\\x72\\xd9\\x75\\xb4\\x80\\xcc\\xfd\\xfc\\x58\\x0e\\x2e\\x2d\\xdf\\x5e\\x3c\\x27\\xee\\x79\\x12\\x79\\xab\\x95\\xe4\\x38\\x2b\\x14\\x59\\xdd\\x8d\\x41\\xae\\x36\\x0d\\x4a\\x87\\x88\\x46\\x69\\x29\\x24\\xfe\\xef\\x39\\x0c\\x0d\\xbb\\xfa\\x35\\xe4\\xb8\\x2d\\x7c\\xbc\\x33\\xee\\x15\\x81\\xc5\\x2b\\xd9\\x49\\x38\\x5b\\x2e\\xe4\\x02\\x63\\xa5\\x7d\\xa1\\x17\\x4b\\xb4\\xac\\xad\\x37\\xcd\\x8a\\xe2\\xa6\\xb4\\x5f\\x7a\\x6d\\x6b\\xbe\\xf5\\xa7\\x98\\xce\\x85\\xb9\\xe0\\x5e\\x76\\x47\\xe3\\x34\\xec\\xfc\\x77\\x63\\x78\\xde\\x17\\x4c\\x49\\x7c\\x0f\\x40\\x75\\xe6\\x25\\xaf\\x7a\\xed\\x50\\x2c\\xd1\\xcf\\x7f\\x58\\x8d\\x0d\\x80\\x7f\\x02\\xe3\\x2f\\x43\\x00\\xf2\\x28\\xa5\\x0a\\x66\\x7b\\x5a\\xd1\\xfb\\xbc\\x17\\xe0\\xb3\\xc5\\x70\\x51\\xdd\\xc6\\x02\\xf5\\x76\\x07\\x9f\\x6f\\xc5\\x88\\x9b\\x7f\\x29\\x00\\x71\\x13\\x34\\x42\\x0f\\xc6\\x66\\xf6\\x6d\\xba\\xff\\x41\\x26\\x33\\x6c\\x35\\x3f\\x1e\\x5b\\x56\\x4a\\x66\\x45\\x37\\xf8\\x37\\x86\\xda\\x5c\\x56\\x27\\x74\\x54\\x06\\xd7\\xb2\\xfe\\x32\\x33\\xbf\\xd5\\x8e\\xf4\\x64\\xa0\\x6c\\x95\\xcf\\xd0\\xb9\\x88\\xa7\\x6d\\x05\\x3a\\x64\\x4b\\xcc\\x15\\x9c\\xad\\x53\\xa7\\xc5\\xdb\\xb4\\x0e\\xef\\x5c\\xd0\\x47\\x05\\x6a\\x3f\\x09\\x26\\x5b\\x13\\x25\\x69\\x9c\\x7d\\x15\\x9d\\x5c\\x90\\x24\\x40\\x17\\x33\\x57\\xff\\xab\\x8f\\x7a\\x5e\\x38\\x9f\\x46\\x8c\\x33\\x3b\\x78\\x2f\\x80\\x17\\x0a\\xe9\\x09\\x83\\xaf\\x15\\x3f\\x2e\\x73\\xbd\\x2b\\xef\\x12\\x5e\\x3d\\x38\\x68\\xc2\\xab\\x9e\\xcf\\x03\\xaf\\xf7\\x6e\\xcb\\xeb\\x18\\x16\\x7c\\xa2\\xf7\\x11\\xcd\\x56\\x58\\x51\\xd7\\xf0\\x4e\\xe9\\xd9\\xb0\\x1b\\x6d\\x83\\xa7\\x60\\x57\\x22\\x62\\x0d\\x28\\xc8\\x4d\\x6c\\x1a\\xf4\\x2f\\x6a\\x76\\x92\\x58\\xf5\\x3c\\x1f\\x66\\xda\\x36\\x66\\x6d\\xa5\\xca\\xa9\\xbd\\x9e\\x8f\\xbc\\x16\\x92\\x11\\xb1\\xae\\xd9\\xc2\\x55\\x8f\\x6a\\xaf\\x5b\\x14\\x5a\\xbc\\x72\\x1a\\xbb\\x00\\x72\\x01\\x94\\xe0\\x27\\x03\\x54\\x68\\xbd\\xe3\\xfe\\x0b\\x88\\x88\\x4f\\x4e\\x9b\\x26\\xe7\\x71\\xe6\\xc7\\xa0\\xa5\\x5e\\xa3\\x6f\\xc5\\x0d\\xec\\x8c\\xef\\x16\\x2f\\x9b\\xba\\x5b\\x4b\\x16\\x10\\x5a\\xfd\\x6e\\x37\\x4e\\x03\\x8d\\x5c\\x85\\x87\\xcf\\xd7\\xdd\\x88\\x29\\x0b\\x2c\\x9c\\xab\\x45\\xa2\\x64\\xd6\\x54\\x0e\\xa1\\x41\\x6e\\x6e\\x4e\\x74\\xa1\\x2f\\x45\\xa2\\xef\\x13\\xcc\\x8a\\x36\\xe7\\xb0\\xa2\\x6b\\x90\\x2c\\x3d\\x96\\xe2\\xe2\\x22\\x92\\x02\\xe2\\x57\\x65\\x69\\x4b\\x94\\x33\\x73\\xd1\\x6e\\x60\\x0b\\xd7\\x86\\xd9\\x55\\xa4\\xb3\\xf1\\x02\\x16\\x40\\xc3\\x9a\\x0b\\x6c\\x69\\x15\\x00\\x28\\x1a\\xe0\\xd0\\x98\\xcc\\x7f\\x38\\x5e\\x18\\xa0\\x7e\\x62\\xfa\\x4a\\x10\\x1e\\xf5\\xb7\\x85\\x51\\xfa\\x29\\xbd\\x15\\xee\\x03\\x53\\xa1\\xa5\\xef\\x9b\\x21\\x6e\\x8b\\x0f\\xa5\\x07\\x50\\xa3\\x41\\x62\\xb6\\x35\\xa0\\xbc\\x5e\\x5d\\x72\\x30\\xaa\\x19\\xaf\\xa1\\x28\\xab\\xa6\\x42\\x2d\\x38\\xeb\\x77\\xa3\\xf0\\xbb\\x9d\\xd8\\xe4\\x65\\x2f\\x12\\x07\\x0a\\x37\\x36\\x1c\\x37\\x25\\x50\\x3c\\x9d\\x22\\xe2\\xfa\\xce\\x2e\\xa7\\x4a\\x70\\x02\\x40\\x62\\x47\\xdd\\x86\\x97\\x5f\\x07\\x57\\x5c\\x9e\\x7c\\x6f\\x41\\xb5\\x3b\\x26\\xd5\\xcf\\x52\\xc5\\xac\\xc2\\xc5\\xd9\\x82\\x71\\x43\\x4e\\x9f\\xa5\\x09\\xc6\\xdf\\xbd\\x72\\x43\\x72\\xaa\\x5c\\x13\\x45\\x1a\\xae\\x39\\x3d\\xe0\\xa1\\x86\\x46\\x4f\\x5d\\x33\\x7e\\x9f\\x62\\x7b\\x4f\\x1c\\x29\\x09\\x46\\x70\\x65\\xe8\\x9a\\x42\\x2e\\xc4\\x0e\\xe1\\xd8\\x0a\\x13\\x39\\x00\\xa6\\x2f\\x4e\\x4f\\x7e\\x94\\xeb\\x72\\x61\\x5e\\x7e\\xc2\\x99\\x6c\\x6c\\x24\\x30\\xc3\\xe9\\x57\\xce\\xae\\x21\\x05\\xa1\\xe9\\x0e\\xae\\xac\\x0d\\x31\\xaf\\xfa\\x9f\\x57\\x92\\x6d\\x71\\xd9\\x72\\xa9\\xa2\\xde\\x11\\x25\\x8c\\xc1\\xe7\\x28\\x59\\x9c\\x9f\\xb3\\x87\\x24\\x91\\x84\\x7e\\x10\\xc6\\x7e\\xfa\\xef\\x6b\\x69\\x6a\\x03\\x0f\\xf0\\x53\\x3a\\x58\\x3b\\xea\\x1d\\x04\\xdf\\x25\\xf7\\xee\\xf3\\xa1\\x3b\\x8e\\x31\\xaa\\xd1\\x33\\x85\\x7d\\xf1\\xb4\\xe5\\xff\\xbd\\xee\\x37\\xf4\\x0f\\x38\\xd2\\x24\\xc7\\x0a\\xe0\\x4e\\xf3\\x3b\\x41\\xb0\\x2e\\x71\\x91\\xa8\\x66\\x56\\xb0\\xd7\\x2b\\x2c\\xbb\\x53\\xc4\\x90\\x8c\\xa2\\x06\\xf7\\x57\\x34\\xb2\\x77\\x08\\x15\\x4f\\xcd\\x8a\\x97\\x42\\x9c\\xfd\\x1f\\x2d\\xa2\\x42\\x97\\x78\\x43\\x80\\x03\\xf5\\xb5\\xb9\\xc2\\x1d\\x9e\\xd2\\x3b\\x8a\\xd8\\xa2\\x28\\xeb\\x4f\\x65\\xc2\\x4c\\x1c\\x59\\x69\\x9a\\x5c\\x90\\xaf\\xf7\\x73\\xe5\\xc6\\x76\\xdb\\x36\\x2a\\x19\\x30\\xba\\x16\\xab\\xa7\\x6e\\xf8\\xda\\xa4\\x2b\\x3e\\xb2\\xcc\\xc4\\x5c\\x93\\x4d\\x23\\xd4\\x92\\x9a\\x7a\\xd9\\xe3\\xef\\x46\\x8b\\x06\\xa4\\x99\\x5c\\x80\\xdd\\x23\\x6a\\x7b\\xcf\\x38\\x79\\xd8\\xb7\\x94\\x67\\xf7\\x2b\\x33\\x84\\xc1\\x60\\xcc\\x18\\x17\\x14\\xe9\\x2f\\x20\\x35\\xe7\\xb9\\x72\\xa2\\xcc\\x52\\x42\\xd9\\x32\\x52\\x5e\\xae\\x7c\\x50\\xbd\\x26\\x3b\\x0f\\xa0\\x9c\\xbd\\x9d\\x6f\\x98\\x4b\\x9c\\xf6\\x15\\x2d\\x9a\\x13\\x3c\\x27\\x84\\x32\\x02\\xd1\\xe8\\x7f\\xa5\\xa6\\xe1\\x23\\x5d\\x9c\\x75\\x6b\\xb8\\xe6\\x8b\\x05\\xb9\\x8d\\xa5\\x41\\x95\\x22\\x3f\\xdf\\x02\\x10\\x25\\x32\\x50\\x63\\x3c\\x11\\xc5\\xf6\\x0b\\x5e\\x67\\xd7\\xee\\xfc\\xaa\\x6c\\x2d\\xaa\\x52\\x31\\x37\"},\n{{0xda,0x01,0x32,0x21,0xb2,0xf5,0x88,0xaf,0x40,0xe2,0x11,0xa0,0xf9,0x75,0xd4,0x4f,0x9d,0x65,0x02,0x81,0x60,0x51,0x4c,0x39,0x61,0x89,0xf2,0x7c,0x7b,0x06,0x66,0xea,},{0x07,0x11,0x7c,0x6b,0x0d,0xb5,0xb6,0xfd,0xa1,0xed,0xc4,0x39,0x6c,0x47,0xc2,0x2b,0x54,0xee,0x0c,0xe5,0x37,0x5c,0x3e,0xc6,0x33,0xc8,0x3a,0xfc,0x53,0xad,0x6c,0xe4,},{0x10,0xcb,0x52,0xd6,0x10,0xe4,0xa8,0x1d,0x32,0x86,0x9b,0xff,0xce,0x38,0x07,0xe6,0x39,0x1f,0x78,0x2f,0xcd,0x53,0x8b,0x55,0x4d,0x09,0x03,0x7f,0xda,0x72,0x28,0x5b,0x96,0x62,0xb1,0xb1,0x10,0x7c,0x40,0x81,0x78,0xac,0x00,0x9f,0x05,0x25,0x96,0x73,0x88,0xa7,0xd8,0x5f,0xa1,0x23,0x59,0xd3,0xce,0x38,0x75,0x03,0x7d,0xcf,0x6a,0x04,},\"\\xbc\\x93\\xee\\x1e\\xc4\\x72\\x8a\\xc6\\x36\\xa6\\x24\\x8f\\xcc\\x45\\x51\\xc9\\xd1\\x59\\x80\\xdb\\x8e\\x5f\\x54\\xb0\\xef\\x07\\x5a\\x71\\x97\\x0e\\x17\\x6a\\x3c\\xb9\\x18\\x2e\\x32\\xda\\x7a\\x8c\\x2a\\xc0\\xcd\\x7e\\x59\\x57\\x74\\x57\\x5f\\x9c\\x83\\x50\\x6a\\x60\\x6f\\xac\\xe8\\x95\\x12\\x13\\x5d\\x03\\x2a\\xb0\\x5e\\x39\\xff\\xf9\\xc8\\xca\\x6c\\x25\\xcd\\x5d\\x78\\xec\\xc3\\xac\\x32\\x32\\x90\\xc9\\xc8\\x16\\x26\\x73\\x5e\\x19\\x0e\\xb5\\xae\\x34\\x5c\\xa7\\xa9\\x58\\x40\\x9f\\x77\\x43\\xb0\\xb1\\x61\\x49\\x16\\x83\\x22\\x17\\xc5\\x7e\\xee\\x1b\\x4f\\x8e\\x62\\x2a\\xc0\\x52\\xa9\\x3d\\xd5\\xb3\\x9d\\x07\\x61\\xe4\\x0e\\x9f\\xbd\\x83\\x96\\xf6\\x0a\\x3b\\xf6\\x66\\x0c\\x5f\\xa9\\x9c\\xd8\\x13\\x9f\\x68\\xcb\\xe0\\x89\\x4e\\x5c\\x67\\xe1\\x68\\xcc\\x74\\xb2\\x72\\x4e\\x9d\\x91\\xd6\\x00\\x0a\\x0c\\xec\\x58\\x7a\\x11\\x46\\x3f\\x72\\xee\\x6e\\xd2\\x55\\xbd\\x87\\xeb\\x30\\xfd\\x45\\x75\\x96\\xf6\\x88\\xca\\x0e\\xa7\\x3f\\x30\\x49\\x72\\x38\\xde\\x21\\xc9\\x3f\\xbb\\x12\\x94\\xdb\\x61\\xe4\\xa5\\x60\\x89\\x10\\x6d\\x1c\\xf7\\xce\\x5a\\x65\\xec\\x3d\\x12\\x17\\x0c\\xe7\\x84\\x0f\\x08\\x8a\\x8d\\x0e\\x3a\\xef\\x17\\xe5\\x31\\xde\\x47\\x80\\x03\\x57\\x02\\x58\\xe9\\x27\\xf1\\x56\\xe7\\x96\\x10\\x65\\xaf\\xa6\\x66\\xaf\\x38\\x58\\x2b\\x35\\x3c\\xc4\\x77\\xba\\x77\\x5c\\xae\\x45\\x94\\x6d\\x08\\xdb\\x75\\x21\\x59\\x14\\xda\\x32\\x61\\xb6\\x22\\x94\\xe9\\x2a\\xfb\\x38\\x14\\x59\\xc2\\x1d\\xda\\x4e\\xa6\\xed\\x79\\x5f\\x79\\x25\\x7c\\x09\\x4d\\xd6\\x08\\xdc\\x8e\\x1b\\x7c\\x40\\xcd\\x29\\xfe\\xa2\\x22\\x08\\x8f\\x65\\x69\\x7e\\xa8\\x88\\x95\\xd1\\x0a\\xce\\xa8\\x79\\x73\\x60\\xdc\\xba\\xce\\xe2\\x69\\xc6\\x06\\x60\\x0a\\xdf\\xfd\\xcf\\x9c\\x7c\\x38\\x1d\\x0a\\xd6\\x69\\x69\\x67\\xd9\\xff\\x03\\xe6\\x1a\\x24\\x90\\x65\\x02\\xb2\\x95\\xe7\\x6f\\x4d\\x08\\x75\\x65\\x5b\\x01\\xe6\\xff\\xca\\xcc\\x8e\\xf0\\x11\\x29\\xc7\\x2a\\x58\\x46\\xb6\\x0e\\xc8\\x00\\x17\\x37\\x4e\\x75\\xd3\\x06\\x40\\x3d\\x9e\\xcc\\xf2\\x64\\x95\\xd2\\x98\\x12\\x0a\\x06\\x33\\x83\\x5c\\x5d\\x1e\\xff\\x17\\xc9\\xc6\\x24\\x76\\xf7\\x52\\xc8\\x97\\x10\\xad\\xfa\\x4d\\x51\\x61\\x7b\\x59\\x18\\x17\\x3c\\xba\\x72\\x25\\x40\\xe3\\x88\\xff\\xbf\\xfb\\x96\\x68\\x74\\xdb\\x00\\x40\\x4d\\x06\\xb0\\xce\\x11\\x39\\xba\\x74\\x14\\x3c\\x76\\xb8\\xf4\\xd3\\x3b\\x21\\x16\\xe1\\xcc\\xe1\\x75\\x17\\x3a\\x96\\xfc\\x15\\x1e\\xa2\\x39\\xbf\\xc2\\x0d\\x66\\xfb\\xb6\\xf5\\x2a\\x66\\x6c\\x0e\\x81\\xcc\\x2b\\x80\\x20\\x91\\x06\\xe2\\x48\\x0e\\x41\\x11\\xc7\\x0e\\x7b\\xe4\\xaa\\xbb\\x68\\x42\\x2f\\x0b\\x8c\\x6b\\xa1\\x5c\\x14\\x2f\\x82\\xe6\\xc7\\xf3\\x78\\xd7\\x80\\x0a\\x09\\xea\\xa4\\xda\\x25\\x3c\\x2f\\xd9\\x1e\\x12\\x63\\xc6\\xb6\\x55\\xbf\\x70\\x25\\x5d\\x7e\\x3b\\xb4\\x77\\x55\\x23\\xa0\\xa9\\xe7\\xff\\x03\\x79\\x7e\\xe3\\xff\\xca\\x8a\\x50\\xd1\\x0f\\x20\\xd5\\xe5\\xa8\\x89\\xec\\x5e\\x33\\x4e\\xf2\\x6c\\xf7\\x99\\x8b\\x08\\x36\\xf6\\x56\\x45\\x68\\x88\\xe1\\x37\\xf3\\x9d\\x3e\\x43\\xe2\\xce\\x3c\\x6e\\xf5\\x40\\xd9\\x5d\\x9a\\x20\\xc4\\x2c\\xb8\\xae\\x2d\\x9d\\x0f\\x25\\xa8\\x91\\xc3\\x63\\xea\\xd9\\xcc\\x42\\x3f\\x9a\\x32\\x3f\\xe2\\x32\\x28\\x1f\\xb6\\x7f\\x5b\\xe1\\xc0\\x78\\x43\\x61\\x46\\x04\\x68\\xa8\\x7e\\x95\\xdf\\xa3\\x5d\\x7f\\x0f\\xfa\\x22\\x11\\xbe\\x6b\\x5f\\xb3\\x2d\\x42\\xba\\x65\\x18\\xab\\x6e\\xa9\\x37\\x80\\xf4\\x31\\xd3\\x00\\x67\\x31\\xbe\\x44\\x40\\xe7\\x12\\x97\\x4f\\x74\\xba\\xea\\x41\\x9f\\x40\\x22\\xfa\\x25\\x02\\xe1\\xb2\\x39\\x8e\\x93\\x86\\x16\\x7d\\x93\\xec\\xa9\\x2c\\xa6\\x0d\\xd7\\xd9\\x1f\\xe8\\x23\\x24\\xf6\\x82\\xd9\\x4a\\xa7\\xa8\\x6a\\xb0\\x34\\xf8\\xa9\\xe9\\x52\\xe8\\xfc\\x95\\xbf\\xf4\\xdf\\xed\\x6a\\x43\\x31\\x3a\\xbb\\x92\\x40\\x1b\\x30\\xc3\\x3c\\x79\\xa7\\xba\\x3e\\xfd\\xbe\\x16\\x28\\x04\\x0f\\xba\\xf4\\x43\\xf3\\xf9\\x80\\x84\\x6f\\xdb\\x28\\x3d\\xcc\\xd9\\x3f\\xab\\x09\\x70\\x8b\\x7d\\x54\\x86\\x1d\\x74\\xb1\\xfe\\x8f\\x10\\x70\\x1f\\x21\\x1b\\xa3\\xd3\\x90\\xe8\\xa6\\xae\\x40\\x77\\x39\\x64\\x6a\\x79\\xa5\\x83\\x37\\xa7\\x17\\xa8\\x72\\x00\\x9c\\x2d\\xf6\\x76\\x1c\\x24\\x25\\xa3\\x2a\\x00\\x18\\xaa\\xf9\\x64\\x64\\x70\\xcb\\xc8\\x7c\\x3a\\x65\\xc0\\xe0\\xef\\xfb\\xaa\\x52\\x8f\\xe4\\x78\\x3c\\x77\\x2a\\xb2\\x66\\xb8\\xf2\\x82\\x68\\xcf\\x14\\xaf\\x23\\x4b\\x15\\x81\\x6d\\x1a\\x3a\\x49\\x1a\\xf5\\xf2\\x97\\xe3\\x3d\\x57\\x29\\x71\\x5d\\x51\\x2c\\x37\\x3f\\xef\\x5e\\xcc\\x3f\\x39\\x54\\xa6\\x0a\\x2a\\x0f\\x64\\xd8\\x29\\x47\\x41\\x19\\xca\\x1a\\x18\\xf1\\x05\\x78\\xd0\\x4d\\x63\\x8d\\x5e\\xea\\xfc\\x37\\x1a\\x94\\x6f\\x6c\\xe7\\xef\\xbd\\x2a\\xcc\\xe3\\x4e\\x20\\x44\\x1c\\xde\\x9a\\x37\\xd5\\xa8\\x7d\\xc6\\x19\\xb0\\xa7\\x27\\x59\\x6c\\xd1\\x2e\\x15\\xcd\\x97\\x84\\xbb\\x91\\xf1\\x39\\x9a\\x59\\xfc\\x0a\\x7a\\x4a\\xf6\\x8b\\x0d\\x57\\x5d\\x93\\x38\\x71\\x72\\x97\\x33\\x75\\xc4\\x65\\xdf\\x5d\\x2d\\x5e\\x06\\x1a\\x2a\\x9b\\x23\\xb4\\x91\\x5a\\x0a\\x8b\\x8c\\x1f\\x09\\x42\\x09\\x4a\\xf7\\x28\\xc8\\xc3\\x11\\x45\\xfa\\x7a\\xaf\\x74\\xa2\\x1a\\x3b\\x03\\x2b\\xb0\\x9c\\x39\\x22\\x05\\xbf\\x09\\x5b\\xda\\x98\\x6e\\x5d\\xd6\\x62\\x7c\\x1e\\x41\\x7f\\x65\\x03\\x26\\xdf\\xe3\\xa9\\xc9\\x99\\x4c\\x6e\\x0e\\x01\\x27\\x6f\\x91\\xf2\\x98\\x7d\\x2b\\x85\\xde\\xda\\x96\\x54\\x91\"},\n{{0x5a,0x86,0x8f,0xb7,0x5e,0xa0,0x72,0x1f,0x7e,0x86,0xc7,0xbc,0x10,0x6d,0x74,0x13,0xc8,0xcf,0x4d,0x03,0x3c,0xe1,0x40,0x05,0xdf,0x23,0xce,0x4c,0x15,0x5b,0xbd,0x27,},{0x6d,0x1e,0x29,0xf3,0x9d,0xed,0xa2,0xbb,0xfb,0xb5,0x7c,0xb0,0x1c,0xb3,0x9e,0x58,0x80,0x82,0x78,0xe5,0x19,0x6a,0xda,0x1c,0x02,0x76,0x46,0xf2,0x04,0x87,0xd2,0x52,},{0x38,0xc4,0x8d,0xba,0x99,0xa6,0x52,0x4a,0x18,0x8d,0x5c,0xd7,0x8a,0x98,0xe6,0x77,0xdd,0x26,0x3e,0xf6,0xb4,0xdf,0x44,0x6b,0x31,0x0b,0x3d,0xd8,0x9c,0xaf,0xdd,0xb9,0xb1,0x7a,0x65,0xbb,0xa8,0xe1,0x39,0x68,0xbd,0xc2,0x5b,0x1d,0x84,0xb6,0xe2,0x43,0x6e,0xdf,0x31,0xaa,0x75,0x6e,0x3a,0x48,0x72,0x6d,0x6f,0x91,0xc8,0x08,0xee,0x0e,},\"\\xd5\\xaa\\x11\\x82\\x5b\\x99\\x44\\x8c\\x80\\x63\\x06\\x23\\xd8\\xc7\\x46\\x01\\x7c\\xfe\\x3d\\xe6\\xfa\\x8a\\x0c\\x6e\\xd6\\x62\\x71\\x27\\xcf\\xc1\\xf8\\x4d\\x4e\\x0a\\x54\\xe6\\xa7\\xd9\\x08\\xd3\\x71\\x9f\\x14\\x21\\xd1\\xd4\\xc7\\x8b\\x3c\\xdd\\x94\\x76\\x9a\\xb6\\x03\\x3b\\xce\\x97\\x9d\\xd9\\x0e\\x10\\x68\\x02\\xeb\\xa9\\xa0\\x32\\x95\\xd4\\x8f\\x9b\\x9a\\x95\\xd5\\x7e\\xe7\\x74\\x54\\x02\\xa4\\x80\\x23\\xbf\\x3b\\xdd\\xd5\\xc6\\xb9\\x1c\\x77\\x3e\\x49\\x19\\x13\\xa3\\x8a\\xc3\\x46\\x26\\x05\\xcf\\x28\\x2d\\xea\\xc7\\x57\\x42\\xfb\\xd2\\x75\\x29\\x27\\x6e\\x81\\xdc\\xce\\x8d\\xff\\x96\\x05\\x03\\x5e\\x8c\\xf0\\x5d\\xf6\\xa4\\x3d\\xb1\\x51\\xf0\\x41\\x57\\x65\\xbc\\xbd\\x1f\\x1b\\xb6\\x68\\xad\\x62\\x73\\xb8\\x91\\xc0\\xdc\\x4f\\x3d\\xba\\x59\\x0e\\xa8\\x2f\\x83\\x63\\x76\\x9b\\x9c\\x77\\x51\\x19\\x47\\x11\\x73\\x75\\xdc\\x49\\x04\\xd4\\x8b\\x88\\xb6\\x8a\\x25\\x5b\\x28\\x01\\x1b\\x11\\x04\\x81\\x94\\x09\\x3e\\x98\\x20\\x7a\\xb1\\xcf\\x75\\x6a\\xb8\\x33\\x1f\\x8d\\x6f\\x9d\\x5b\\xe2\\xe1\\x19\\x05\\x73\\xe9\\x5e\\x71\\x0f\\x2a\\x35\\x01\\xb5\\x3a\\xa0\\x82\\x5d\\x6c\\x12\\xdc\\xfb\\x94\\xac\\x80\\xdc\\x10\\x82\\xcb\\x4a\\xd2\\x62\\xe6\\xd4\\x93\\xad\\xce\\xb6\\xbc\\x19\\x14\\x5f\\xbf\\x73\\x8d\\xf7\\x6f\\x21\\x34\\xfa\\x04\\xcb\\xbe\\x44\\xff\\xc5\\x5f\\xfe\\x5f\\x9d\\x3e\\x9b\\xeb\\xd1\\x59\\xa0\\x01\\xaa\\x9b\\xf7\\x88\\x92\\xa1\\x65\\x38\\xa5\\x20\\x82\\x3c\\xde\\x5d\\x61\\xe2\\x9a\\x56\\xa7\\x7a\\xb9\\x6e\\x49\\xe3\\x00\\xd9\\x86\\x59\\x62\\xc7\\xe7\\xfb\\x8b\\xcf\\x5d\\xe0\\xb9\\x38\\x29\\x7c\\x3f\\x4d\\x6f\\x60\\x21\\xe2\\x4d\\xfd\\xad\\x98\\x61\\x65\\x2f\\x34\\x0f\\x42\\x1e\\x7a\\xf2\\xc7\\x1e\\xd9\\xa7\\x15\\x87\\xfc\\x75\\x3b\\x11\\x55\\x49\\xb2\\xf7\\xf7\\xcb\\x29\\x69\\x0e\\xa2\\xb1\\x58\\xa9\\x4c\\xd2\\xbc\\x42\\xe7\\x06\\x3d\\x61\\x9b\\x93\\x9d\\x52\\x3e\\x3c\\x23\\x7e\\xb1\\xf4\\x08\\x10\\xde\\x0b\\x44\\xaa\\x69\\x37\\x86\\x3d\\x62\\x9e\\xdd\\x55\\x75\\xe6\\xc0\\x47\\x52\\x61\\xb6\\x27\\x47\\x30\\x92\\x77\\x5c\\x84\\x36\\x00\\x11\\xd5\\x7c\\x57\\x20\\x9c\\x2e\\x87\\x5a\\x3f\\x89\\x63\\xe8\\xb2\\x41\\xa7\\xaa\\x75\\xef\\x30\\xc4\\xa7\\x18\\xac\\x4d\\xd4\\x66\\xdc\\x7a\\x3e\\x40\\xe5\\x87\\x4f\\x15\\x7a\\x84\\x9e\\xd3\\xa3\\xa9\\xd4\\xae\\xb7\\xd9\\x4d\\xf0\\x9b\\xb5\\x5a\\x0b\\x2b\\xc9\\xf8\\xb6\\x95\\xc3\\x71\\x79\\x30\\x23\\x67\\x60\\x63\\x67\\xc5\\xf3\\x24\\x82\\x8c\\xe7\\x5a\\x94\\x4f\\x50\\x70\\x3a\\x47\\x90\\x6a\\x80\\x88\\xf3\\xa1\\x1c\\xfe\\x4a\\x85\\x4e\\x01\\xf1\\x74\\x12\\x52\\xc4\\x86\\x33\\x7d\\x06\\xb1\\xcc\\x6c\\x6b\\x9b\\x12\\x95\\x43\\x1e\\xe0\\x73\\x59\\x35\\x7b\\x3a\\x78\\xef\\x50\\x75\\xb6\\x5d\\x7f\\xed\\x5e\\xb7\\x42\\xe5\\x10\\x15\\x98\\x44\\x4b\\x46\\x62\\x3f\\x89\\xa3\\x03\\xac\\xc1\\x0c\\x73\\x24\\x49\\x51\\x3b\\x70\\xdc\\x45\\x6a\\x79\\xd3\\x7c\\x48\\xe5\\xe7\\x26\\xc2\\xf5\\x58\\xda\\x0a\\x1c\\x46\\xef\\xbd\\x2d\\x92\\x03\\x26\\xa6\\x78\\xb8\\xa2\\x2f\\x09\\x44\\xbe\\x4a\\xf5\\x5b\\x6c\\x71\\xf4\\x53\\xfb\\xae\\x40\\x0e\\x6a\\xcc\\x04\\xe0\\xe9\\x5c\\xa2\\x00\\x16\\x7e\\x96\\xee\\x98\\xea\\x83\\x93\\x16\\xda\\x93\\xa1\\x2c\\x2d\\x76\\xf1\\x1a\\xee\\xbe\\xb7\\x8e\\x65\\xea\\x48\\xf7\\xfe\\xeb\\xbb\\x13\\x7b\\x2a\\xc6\\x7e\\xae\\xf0\\x2a\\x2d\\x9e\\x64\\x71\\xdd\\x63\\x4a\\x03\\x7d\\x4f\\x5d\\x35\\xa2\\xf7\\x8a\\xf4\\x1a\\x8e\\xa5\\xaf\\x5b\\xc8\\x15\\x0a\\x99\\xed\\x68\\xa6\\xa0\\xcc\\xff\\x2b\\x1d\\x79\\x65\\xd8\\xbc\\x3e\\xf9\\x28\\x5b\\xa6\\x42\\x1d\\x87\\xc3\\x3a\\xad\\x81\\x03\\xa5\\x87\\xbe\\x01\\x92\\x68\\x45\\xbf\\xbd\\xdb\\xaf\\xc6\\x9c\\x4b\\x92\\x52\\x88\\x67\\x20\\xd4\\x18\\x50\\x9f\\x40\\xf3\\xdc\\xf5\\x57\\x65\\xdc\\xcc\\x3d\\xee\\xd8\\x27\\x72\\x15\\xe6\\x9f\\x05\\x6b\\xa3\\x1b\\x8a\\x30\\xb5\\x00\\x94\\xea\\x8f\\x14\\x47\\x20\\x76\\x0c\\x8f\\x8c\\x05\\x5c\\xf1\\xa8\\x69\\x64\\xff\\xcb\\xb8\\xee\\x1b\\xb2\\x18\\x12\\x76\\xea\\x99\\xa7\\xb8\\xe7\\x10\\x67\\xfa\\x31\\x0b\\xa4\\x47\\x1e\\x84\\x27\\x90\\x37\\xbc\\x49\\x2a\\x55\\xde\\x20\\x55\\x48\\xe7\\x7b\\x01\\x45\\x04\\xee\\x66\\x64\\xc4\\x98\\x8c\\xbb\\x9e\\xd9\\x1f\\xf3\\x2e\\x22\\x59\\xed\\x4c\\xfd\\x61\\xa1\\x97\\xd0\\xdb\\xc3\\x2c\\x68\\xf6\\x54\\x9c\\x0d\\x29\\xfc\\x45\\xf3\\x6a\\xcb\\x26\\xb1\\x64\\xde\\x97\\xcc\\xdc\\x37\\x90\\x0d\\x93\\xcd\\xbc\\xf9\\x68\\x7e\\xf5\\x3f\\x1f\\x4d\\xa1\\xb1\\xae\\x42\\x25\\xb8\\x84\\x20\\x9e\\x81\\xba\\x43\\x11\\x52\\x04\\x77\\xed\\x42\\x11\\xb0\\x92\\x40\\xbd\\x7b\\x82\\x5e\\x54\\x73\\x9f\\xe2\\x5d\\x86\\x24\\xaf\\x04\\xb8\\x6f\\x6d\\x11\\x06\\xd1\\x81\\x70\\xe5\\x06\\x4d\\x1a\\x73\\xc1\\xfb\\x1a\\x27\\xb2\\x89\\xa9\\x48\\xd7\\x71\\xa2\\xf6\\xb8\\xb0\\x9a\\x63\\x5d\\xb9\\x6c\\x62\\x51\\xc3\\x5a\\x18\\x76\\xd3\\x69\\x62\\x66\\x99\\x41\\x6c\\x0e\\x40\\x29\\x8a\\x68\\x1f\\xda\\xf5\\x25\\x5f\\x58\\xc2\\x55\\x77\\x59\\xd8\\xf5\\xdf\\x14\\x8d\\xec\\x9d\\xbe\\x1c\\xe6\\xdf\\x04\\x1c\\x36\\xf8\\x3e\\x69\\xcc\\xfb\\x4a\\xac\\xa5\\xcb\\x48\\xfa\\x6a\\x85\\xc8\\xff\\x66\\x06\\x15\\x24\\xd8\\xb1\\x1b\\xd7\\xff\\xae\\xd9\\x9d\\x0c\\xd4\\x5c\\x42\\x01\\x0f\\x21\\xd3\\x6c\\xc3\\x16\\xca\\x86\\x09\\x55\\x63\\x5b\\xff\\xaa\\x7d\\x9a\\xac\\x57\\x2d\\xcc\\xf3\\x15\\x3d\\x42\\xee\\x8a\\x2b\\x12\\xba\\xa5\\x7c\\x16\\x0b\\xd0\\xad\"},\n{{0xc5,0x4b,0xd3,0x43,0x1f,0x26,0x59,0x28,0x1d,0x31,0xe9,0x3b,0x30,0x78,0x76,0x68,0xbc,0xba,0x6e,0x5e,0xe4,0x7d,0xb4,0x6e,0x50,0xde,0xab,0xe3,0xf4,0x8c,0x9e,0xd8,},{0x1e,0xba,0x6e,0xb3,0xf7,0xf2,0x4c,0xdf,0x80,0xab,0xf8,0xa1,0x9d,0x30,0x8c,0x24,0xf1,0xe2,0x5b,0xa1,0x59,0x70,0xed,0xa7,0x11,0x67,0x07,0xb0,0xf1,0x2c,0xf9,0x32,},{0xdf,0x45,0x41,0xdf,0xf1,0xa9,0x79,0x7f,0xeb,0x61,0x7f,0x98,0xe4,0xb5,0x7a,0xa7,0x71,0x41,0x31,0xee,0x8f,0xf5,0x45,0xed,0x50,0x82,0xe3,0x56,0x8e,0xfd,0x1c,0x39,0x9c,0xdc,0x56,0xf5,0x58,0x29,0x91,0xeb,0x87,0x85,0xfb,0x33,0x86,0x4e,0xef,0x7f,0x55,0x3f,0x3e,0x24,0x82,0x62,0xed,0x54,0x8a,0x1a,0x68,0x88,0xf9,0x2e,0x92,0x0e,},\"\\x6f\\x8c\\xdd\\x75\\xe1\\xb8\\x56\\xbb\\xbe\\x9c\\xdc\\x25\\x53\\x7f\\xdf\\x7e\\x82\\x36\\xcb\\x02\\x9a\\xcd\\x39\\x84\\x49\\x21\\x10\\xd0\\xc3\\x04\\x41\\xd4\\x21\\x84\\xb5\\xfb\\x18\\x3d\\xa9\\xf3\\x14\\x03\\x78\\xdf\\xa7\\xd7\\x4c\\xcc\\x9e\\xf5\\x00\\x19\\x3c\\xc9\\x57\\x9f\\xff\\xa6\\x0b\\xd2\\xa8\\xab\\x9e\\x09\\x58\\x15\\x00\\xcf\\x06\\xcd\\x35\\xab\\xc1\\x71\\xd9\\xd1\\x2c\\x65\\x80\\xd9\\x68\\x2f\\x9f\\x49\\xfe\\x36\\xd0\\xa3\\x17\\x72\\x38\\xfa\\x50\\xe7\\xeb\\x4c\\x27\\xe4\\x60\\xf5\\xe4\\x58\\x0a\\x56\\x56\\x8a\\x19\\xe0\\x3d\\x95\\xb0\\xff\\x4f\\x4a\\x23\\x18\\x24\\xcd\\x2f\\x34\\x42\\xe0\\xba\\x40\\x0b\\xc1\\x1b\\x7a\\x98\\x9d\\x50\\x1f\\x5d\\xf3\\x5e\\x43\\x01\\x50\\x8f\\x72\\xa8\\x52\\x01\\x4b\\xfb\\xf4\\x00\\x1e\\x28\\x09\\x54\\x73\\xd9\\x65\\x9e\\xed\\x60\\x67\\xba\\xf6\\x8f\\x92\\xbe\\xf3\\x12\\xc0\\x9b\\x19\\xaa\\xf7\\xc4\\xfb\\xa3\\xd9\\x02\\xb9\\xf6\\xcf\\x95\\x2e\\xb9\\xb9\\xa5\\x3c\\xa8\\xbc\\xbd\\x04\\x2d\\x84\\x2e\\x98\\x53\\xb6\\x72\\xa1\\xd0\\x09\\xd8\\x23\\x83\\x8b\\xeb\\xe5\\x63\\x7c\\x4c\\x07\\xed\\x1b\\x19\\x48\\x55\\x4b\\x23\\xb3\\x2d\\xe1\\xd6\\xc1\\x16\\xf9\\x33\\xb3\\x54\\xf2\\x8b\\xbb\\x77\\x9f\\xa6\\x54\\x8c\\x48\\x29\\x2b\\x61\\x2c\\x7f\\x55\\x1a\\x75\\xfb\\xc4\\x6c\\x02\\x73\\x6b\\xf9\\x9e\\x9c\\x8e\\xad\\x56\\xf0\\x5a\\xb0\\x42\\x7a\\x6e\\xc6\\x16\\xe3\\xdc\\xc7\\x75\\x7e\\xfd\\xb7\\x62\\x8d\\x4e\\x96\\x32\\x5f\\xe0\\xae\\x25\\x4c\\xef\\x5c\\xb7\\xa7\\x04\\xb3\\x5a\\x92\\x0c\\xb3\\xfa\\x2a\\x03\\xe9\\x61\\xda\\xf3\\x71\\x82\\x1b\\xe0\\xb3\\x0f\\x19\\xae\\x49\\x52\\x44\\x1e\\x08\\xa7\\xd2\\x2f\\x54\\x31\\x39\\x0a\\x5b\\xe8\\x09\\x7f\\xd5\\x79\\x7a\\x1a\\x62\\x97\\x66\\x4d\\xa4\\x2c\\x20\\x08\\xd0\\x32\\x10\\x60\\xeb\\xe3\\x18\\x1e\\xb7\\x95\\xa7\\x28\\x92\\x58\\x08\\xda\\x78\\x67\\x29\\x3b\\x72\\x08\\xf3\\x77\\xd3\\xa7\\x71\\x18\\x5e\\x6d\\x2c\\x1c\\x8c\\xe1\\x83\\x76\\xfe\\x3c\\x0c\\x14\\x58\\xc7\\xf5\\xbe\\x34\\xf4\\x28\\xa0\\xd5\\x75\\x93\\x10\\x74\\xc9\\x7c\\xbf\\xce\\x8a\\xd8\\x13\\x13\\xec\\xca\\x73\\xa9\\xf3\\xdb\\x43\\x4f\\xba\\xd4\\xbb\\xbf\\xf5\\x02\\xbf\\x72\\x97\\xe1\\x7a\\x97\\xa8\\x86\\x42\\x11\\xe6\\x78\\x9b\\xa1\\x92\\x03\\x6e\\xa5\\x9a\\x34\\xd8\\x4f\\xf2\\xa1\\x11\\x07\\x4c\\x3f\\x23\\x73\\xb1\\x01\\x11\\xb5\\xda\\xa7\\x89\\x56\\x0c\\xb3\\x54\\x90\\x95\\x4c\\x88\\xea\\x00\\xc4\\x10\\xdf\\x85\\x0a\\xd0\\x0c\\xae\\x2f\\x28\\xe7\\x19\\xfb\\x06\\x71\\x69\\x88\\xa9\\xbb\\x0b\\xfc\\x6c\\x98\\x9d\\x58\\x7e\\x56\\x85\\xae\\x88\\x3c\\x2c\\x2e\\x74\\xdd\\xbf\\x91\\x5c\\x98\\x56\\xaa\\xe8\\xf3\\x28\\x8f\\xc6\\x25\\xbf\\xb2\\xfe\\x26\\x8d\\x74\\xf5\\x9f\\x8b\\x7d\\x83\\x63\\x74\\x97\\x69\\x16\\x90\\x07\\xd5\\xe6\\x7b\\x7d\\x0b\\x8c\\x8f\\x5a\\x9d\\x9f\\x9c\\x7b\\x74\\x5c\\x0a\\x42\\x94\\x76\\x2c\\xbe\\xca\\x42\\xd5\\x38\\x49\\x61\\xe9\\x21\\xa7\\xef\\xb6\\x5d\\xa8\\xd1\\xe0\\x3b\\x67\\x45\\xcd\\xf3\\x08\\x09\\x7f\\xb1\\x3d\\x64\\xfd\\x2f\\x8c\\x10\\xfa\\x95\\x09\\xeb\\x2d\\x91\\x38\\x7f\\x00\\x64\\x5c\\xa7\\xd0\\x48\\x3b\\x2c\\xd1\\x4c\\x20\\x6b\\x8d\\x7a\\xe0\\xa3\\xfb\\x7c\\x09\\xbc\\x68\\x43\\xd1\\x02\\xad\\xcd\\xa1\\x9f\\x8b\\xbd\\x85\\x1e\\xb6\\x83\\xc4\\x43\\x5c\\xeb\\x4b\\x3d\\x23\\xd3\\x8f\\x56\\xd4\\xd1\\x11\\x4e\\xef\\x0f\\xc6\\xf2\\x4d\\xf5\\x27\\x70\\xd8\\xf1\\xf3\\xf8\\x2f\\x47\\x20\\xe8\\x92\\xb3\\x15\\x24\\x4e\\xf5\\x6c\\x36\\xb2\\x3f\\xcd\\x40\\x79\\x78\\x52\\x41\\x40\\x38\\x2e\\x11\\x74\\x0f\\xd4\\x6f\\xe4\\x29\\x99\\x23\\xf5\\x2b\\x88\\xb4\\xa9\\xcf\\xf4\\xb2\\xb4\\xb2\\x3a\\x2e\\x76\\x0a\\xd8\\x1c\\x78\\xba\\x87\\x69\\x31\\xd9\\xaa\\xa4\\xbe\\xed\\x40\\xfb\\x10\\xa7\\x99\\xeb\\x30\\xd3\\x7f\\x75\\x47\\x78\\xba\\xc8\\x5b\\xf0\\x63\\x1d\\x85\\x2b\\xe7\\xd7\\x4a\\x64\\x31\\xf3\\x84\\xa4\\x02\\x5c\\x10\\x91\\x42\\x1d\\x67\\xa4\\xe9\\xc9\\x4c\\x1b\\xe3\\x69\\x0c\\x6b\\xf8\\x1d\\x06\\xbd\\xaf\\x32\\xfe\\xab\\xba\\xf1\\xdc\\x26\\x3f\\x27\\x3a\\x0b\\x9e\\xd6\\x54\\x60\\xba\\xef\\xce\\xfc\\xf6\\xac\\xcc\\xda\\x0e\\xdd\\x23\\xdf\\x9e\\x05\\x12\\x8e\\x29\\xd6\\x61\\xc4\\xb4\\x4b\\xd9\\x2d\\x64\\x0f\\xaa\\x85\\x3a\\xfd\\x83\\x70\\xe5\\x63\\xb4\\x0a\\xe0\\x14\\x9a\\x14\\x28\\xe0\\x6e\\x3d\\xd8\\xe6\\x6b\\x79\\xda\\x21\\xcc\\x75\\x3d\\xdc\\x47\\x6e\\x3d\\x76\\xe2\\xf3\\x6f\\x2b\\x6c\\x6b\\xc1\\xb6\\x50\\x87\\xd5\\xf8\\x6c\\x8a\\xc3\\x54\\x71\\x1a\\x8c\\x08\\xf3\\x48\\x6e\\x47\\x9d\\x6a\\xe9\\x43\\xf8\\x84\\x63\\x32\\xd4\\xe5\\xb4\\xbb\\x2e\\x82\\x57\\xe3\\x08\\x3d\\xf4\\xf8\\x1d\\xd4\\xf0\\xc1\\xee\\x1d\\x97\\x18\\x21\\x66\\x16\\x1a\\x18\\x59\\x7e\\xe0\\xb9\\x59\\xde\\x1c\\x45\\x59\\x1a\\xbf\\x7c\\x51\\x03\\x3d\\x7c\\x66\\x35\\x2d\\xee\\xb6\\x82\\xe7\\x77\\xae\\xae\\x2f\\xa8\\xd3\\xa7\\x7f\\x47\\x0d\\xb7\\x8d\\xdc\\x1b\\x1f\\xc8\\x28\\x40\\xc4\\x06\\x57\\x76\\xd9\\xbf\\xca\\x9d\\x39\\x2d\\x92\\x88\\xee\\x91\\x32\\xaa\\x3e\\x4f\\x2d\\x19\\xd0\\xd9\\x3e\\x01\\xb6\\x66\\xf3\\x64\\x7a\\xba\\xf2\\x25\\xc2\\x92\\x41\\x9c\\x8a\\x82\\xeb\\xa3\\xe1\\x1a\\xb1\\x03\\x84\\x6f\\xcd\\x49\\x35\\xf4\\x12\\x41\\x47\\x7c\\x0f\\x15\\x2b\\x79\\x65\\xad\\x54\\xbb\\x72\\xbc\\x3d\\xe2\\xe0\\xb7\\x9d\\x62\\x25\\xe8\\xfa\\x7a\\x62\\x86\\xb5\\xfc\\xcb\\xb3\\x58\\x22\\xe8\\x0c\\x8b\\xfe\\xa7\\x4c\\xb4\\x8a\\x22\\xd2\\x41\\x38\\x53\\x95\\xc2\"},\n{{0xea,0x60,0xda,0x01,0x79,0xbc,0xaf,0x6b,0x21,0x81,0x42,0xb1,0x11,0x90,0x46,0xff,0xe6,0xd8,0x5a,0x74,0x1b,0x0d,0x16,0x62,0x30,0xbc,0x6d,0xe3,0x30,0x4f,0x67,0x73,},{0x50,0x6b,0x2e,0xbb,0x49,0xbd,0x9b,0x9f,0xf6,0x6e,0x6b,0x7b,0x1f,0xab,0x96,0x68,0xcb,0x18,0x1b,0x4f,0xb5,0xe4,0x34,0x3d,0xdd,0xd3,0xf8,0xa9,0xd7,0x02,0x03,0x1c,},{0x27,0xfb,0x6b,0x5f,0x06,0x52,0x8a,0x64,0x19,0x8a,0x3e,0x7d,0x67,0xc7,0x38,0x84,0x0a,0x8c,0xff,0x4b,0x48,0x2b,0x4d,0x52,0x4b,0x12,0x2d,0x17,0xd2,0xae,0xbc,0xc0,0x38,0x9b,0xe2,0xc6,0xe2,0x8e,0x2c,0xdf,0xc4,0x84,0xc1,0x8d,0xe4,0x25,0xdb,0x56,0xcd,0xfa,0x56,0x1c,0x50,0x7c,0xd9,0x70,0x60,0x2d,0x3a,0x38,0x5d,0x3a,0xea,0x0f,},\"\\x61\\x2d\\x6e\\xf6\\xe4\\x34\\x9f\\xfa\\xe5\\x16\\xe9\\x83\\xe8\\xfa\\x7b\\x52\\xd9\\xfd\\x13\\x42\\x82\\x24\\x0d\\x95\\x14\\x38\\x24\\xbd\\x4a\\xae\\x03\\x23\\x4b\\x76\\xa8\\xcd\\x6d\\x40\\x68\\xcf\\x00\\x9e\\x48\\x1c\\x26\\x85\\x36\\x1c\\x75\\x50\\x42\\xc4\\xe6\\xab\\x87\\x03\\xec\\xbf\\x8f\\x02\\x0c\\xf5\\x73\\x9a\\x4c\\x2a\\x03\\xc3\\x73\\x1e\\x9c\\xf7\\x5a\\xee\\x25\\x96\\x61\\x53\\xb9\\x71\\x15\\x15\\xc6\\xc3\\x9a\\xfa\\x95\\xf2\\x21\\xac\\x33\\x95\\xb0\\x89\\xc9\\x7a\\xc9\\xb5\\x14\\xe1\\x7d\\x55\\xf7\\x96\\xa3\\xec\\xc1\\x35\\xfa\\xaa\\xee\\x90\\x7a\\xab\\x10\\x29\\x64\\x7b\\x48\\xac\\x81\\x74\\x9b\\xab\\x26\\x62\\x7c\\xf7\\x09\\x5d\\x74\\xc2\\xfc\\xee\\x35\\x67\\x1c\\x8b\\xb4\\x60\\x53\\xf5\\x15\\x1b\\x0c\\x2e\\x5d\\xab\\xe0\\xf2\\xd6\\xaa\\x20\\x41\\x33\\x05\\x02\\x0b\\x2a\\xfd\\x9e\\xe3\\x38\\x7b\\x2c\\x9e\\xd0\\xbc\\x3f\\xe2\\x90\\x2a\\xf4\\x10\\x0c\\xec\\x23\\x32\\x7b\\x0f\\x1e\\x4c\\xa3\\x9e\\xf6\\xea\\xf6\\xfd\\xf5\\xd5\\xac\\xf9\\x3f\\xc8\\x68\\x53\\x6d\\x8c\\xba\\x40\\x17\\x69\\x32\\x9f\\xbe\\x93\\xef\\xfc\\x7e\\xe6\\xbf\\x93\\xa6\\xe5\\x88\\xbd\\x55\\x1e\\xaa\\x51\\x28\\x53\\x95\\x2c\\x81\\xb2\\x45\\xe5\\xd2\\x29\\xd2\\x94\\xe4\\x13\\x70\\xb8\\x67\\x80\\x86\\x67\\x88\\x7a\\x6f\\x9e\\xba\\x2a\\x8d\\x56\\xa7\\xa7\\x04\\xe6\\x6b\\x1c\\x02\\xf9\\x6e\\x73\\x89\\x5f\\x48\\x3e\\x44\\xa5\\xc5\\x66\\xcb\\x1a\\xf2\\x65\\x73\\xbf\\xe2\\xaf\\xce\\x06\\xb1\\xfb\\x58\\x77\\xe5\\x1e\\xf3\\x12\\x6a\\x3f\\x21\\x0f\\xbf\\x21\\x3e\\xd6\\x5d\\x5c\\xa4\\x6c\\x46\\xce\\x4a\\xa9\\x45\\xbd\\x8c\\xa6\\x11\\xe3\\x83\\x62\\x50\\xf5\\x64\\xf7\\xea\\x35\\x42\\x39\\x82\\xf9\\x70\\x5f\\xcd\\x6b\\xef\\x46\\xae\\x16\\xcb\\x0f\\x6b\\xc9\\x12\\xc3\\xf2\\x86\\x42\\xb8\\xd8\\x77\\x75\\xb8\\x18\\xe4\\xe4\\xe8\\x06\\x11\\x67\\x89\\x9b\\xd2\\x7a\\x7e\\x2f\\xb8\\x18\\x7e\\xe9\\x91\\x7d\\x2d\\x58\\x6b\\xf9\\xd4\\x99\\xe8\\xfa\\xbc\\xa8\\x3d\\xdf\\x58\\xc7\\x43\\x7e\\xaa\\xce\\xc4\\xf4\\x44\\xfb\\x2b\\xf7\\x45\\xdc\\xcd\\x8c\\xae\\x38\\x94\\x45\\x71\\xde\\xde\\x20\\x37\\xdc\\x41\\xf0\\x81\\x8a\\x3d\\x91\\xe3\\x02\\x0a\\x72\\x74\\xc6\\x67\\x42\\x47\\x87\\x60\\x83\\xd0\\xe3\\x97\\x46\\xc9\\x68\\x40\\x61\\xbf\\x74\\xad\\x58\\x84\\x36\\xce\\x1b\\x76\\x3d\\xbf\\x4b\\xfc\\xf8\\xde\\x6e\\x35\\xc5\\xa7\\x62\\x66\\x75\\xc1\\x27\\x29\\x2b\\x21\\xdf\\x3c\\x16\\xf8\\x10\\x63\\x32\\x2a\\x75\\xf3\\x43\\x88\\x86\\xf1\\xf0\\xce\\xbf\\xc1\\xa9\\x6f\\x41\\x38\\x4c\\xbd\\xd8\\x61\\xb0\\x4f\\x51\\x9f\\xf6\\xa9\\x34\\x4d\\x94\\xf3\\xd3\\xa0\\xab\\xa8\\x40\\x9d\\xfc\\xf1\\x8d\\x01\\xf2\\xb5\\xb4\\x55\\x17\\x16\\x39\\xee\\xa7\\x7d\\xee\\x70\\x6e\\xa8\\x3d\\xcd\\x2b\\x8b\\x1f\\xc5\\xec\\x0d\\x74\\x07\\x61\\xa5\\xf0\\x5f\\x7e\\xc8\\xd8\\x7a\\xd1\\xf2\\x92\\xa5\\x0c\\x8b\\xae\\x0a\\xd3\\x2b\\x03\\x41\\x9a\\x95\\x0d\\x9f\\xe3\\xb3\\xec\\xc4\\xd8\\xd3\\xaa\\x95\\xe0\\x2b\\x51\\xb1\\x83\\x1d\\x83\\xea\\xde\\xaa\\x44\\x23\\x86\\x35\\xf9\\xc6\\x5e\\xfe\\x2f\\x67\\x44\\xa7\\x0b\\x9a\\xe4\\x1e\\xf1\\x5d\\x97\\x90\\x8c\\x05\\x33\\x93\\x44\\x12\\xf7\\x95\\x83\\xd0\\xe9\\xb3\\xd7\\x06\\xa1\\x28\\xe8\\x8f\\xb5\\x1e\\xed\\xb6\\x5e\\x46\\xd8\\xa2\\xb3\\x8b\\xbd\\xd6\\x45\\x55\\x54\\x96\\x7a\\x8d\\xc0\\xc6\\x8b\\xdd\\xfe\\xae\\x0f\\x8f\\x72\\xf0\\xb8\\x86\\xc3\\xc7\\x41\\xfa\\xc4\\xf9\\x1e\\x5c\\x49\\x1d\\xba\\xe9\\xda\\x45\\x94\\x83\\x6c\\xf1\\xd9\\xfb\\x6e\\xe1\\x30\\x02\\x50\\x89\\xae\\xd3\\x50\\xef\\x24\\x7b\\xc9\\x88\\x7a\\x20\\x50\\x15\\x9d\\xde\\xd1\\x42\\x8f\\xfd\\x9b\\x07\\xb9\\xec\\x2e\\x3d\\x4b\\xbd\\xc2\\xdd\\xb5\\x4e\\x87\\x3b\\x63\\xf2\\x47\\x52\\x33\\xe1\\x91\\x33\\xa1\\x4b\\x66\\x58\\x50\\x94\\x57\\x00\\x81\\x86\\xd6\\x22\\x59\\x95\\xa9\\x67\\x26\\xb5\\x29\\xf4\\x42\\x81\\xaa\\x24\\xfe\\xfd\\x1c\\xff\\x8f\\x81\\x5d\\x93\\xa5\\x98\\x69\\x31\\x66\\x22\\x90\\xb3\\xee\\x16\\x83\\x3c\\x60\\xf0\\xaf\\xce\\xf2\\xcb\\xc0\\x00\\x62\\x3f\\x39\\x31\\x90\\x9c\\xa9\\x76\\xa0\\x94\\xe2\\xb0\\xfd\\xb7\\xdc\\xf7\\xc4\\x85\\xe1\\x49\\x88\\xa3\\x6f\\x19\\xb6\\x64\\x25\\x38\\x5f\\x56\\x32\\xce\\xf6\\x5d\\x1d\\x34\\x14\\x62\\x3a\\xe3\\xee\\x81\\x6e\\x76\\x3a\\x5f\\x60\\x64\\x66\\x62\\x2b\\xe6\\x60\\x21\\x14\\x50\\x29\\x51\\xcf\\x0c\\x09\\x7c\\x16\\x48\\xa7\\x2e\\x2c\\x43\\xd9\\xaf\\xa9\\x68\\x9f\\x2c\\x3c\\xfe\\x02\\x6c\\xdc\\xe3\\xbd\\x1b\\xf9\\xeb\\xf7\\x77\\x56\\x2e\\xcd\\x8f\\xf1\\xb0\\xd7\\x75\\x30\\x6d\\x90\\x04\\x43\\xf3\\x0a\\x84\\x33\\x10\\xb8\\xde\\x6a\\x38\\xff\\x10\\x8b\\x72\\x39\\x13\\xd7\\x89\\x9b\\x9f\\xbe\\x7c\\x3d\\x76\\x6e\\xf8\\xbd\\xfb\\x6d\\x8b\\x0b\\x52\\x95\\x6c\\xb1\\xce\\xc9\\x93\\x6d\\x70\\xb4\\x87\\xc0\\x14\\x40\\xa8\\x42\\xb2\\xfa\\xbe\\x38\\xe7\\xb8\\x85\\x1a\\x38\\x7d\\x35\\x8b\\xe7\\xef\\x12\\xa7\\xe4\\xf2\\xb5\\x27\\xe8\\x30\\x90\\xd6\\x7e\\xb0\\x13\\xc9\\xc2\\xcf\\xd3\\xde\\x5a\\x1a\\x3f\\x99\\x74\\x8a\\x41\\xf4\\x81\\x9d\\x90\\x36\\xe5\\x00\\xc5\\x04\\xc9\\x88\\xbf\\xd2\\x4f\\x61\\x7d\\x6e\\xbd\\xca\\xb2\\xdd\\xea\\xa6\\x15\\x79\\x41\\x4f\\x36\\x0b\\x46\\x9a\\x33\\xa6\\xde\\xd9\\x6b\\xa1\\xd8\\xc1\\x40\\xc4\\xff\\xc9\\x49\\x90\\xd8\\xad\\xf7\\x8c\\xd3\\x87\\x80\\xbd\\x68\\x66\\x3d\\x1a\\x0e\\xe3\\x3f\\x53\\x7c\\xdf\\x89\\x2d\\x56\\x2e\\x82\\xdc\\xd1\\xd9\\x12\\xca\\xd3\\x8d\\x65\\x56\\x7d\\x29\\x14\\x06\"},\n{{0xb6,0x2c,0x24,0x18,0x78,0x27,0x35,0x13,0xe0,0xbf,0x6f,0x33,0xd2,0x10,0x43,0x65,0xb2,0xce,0x9c,0x5a,0x1b,0x78,0x60,0x58,0xe9,0xc5,0xb4,0xd1,0xd1,0x92,0xf8,0x7f,},{0xbb,0xf6,0xfc,0x51,0x98,0xf3,0xfb,0xa5,0xab,0x00,0x7f,0x8a,0x63,0x2d,0x28,0xd1,0xaf,0x86,0x5d,0x29,0x0f,0xa0,0xa9,0x0f,0xaa,0x9a,0x9b,0x5b,0x9c,0x13,0xf3,0xfb,},{0xc5,0x90,0x39,0x58,0x7b,0x38,0xdc,0x14,0x1e,0x05,0x5a,0x93,0x85,0x01,0x04,0xd6,0x29,0xe3,0x80,0x70,0x5b,0x8f,0xc9,0x18,0x84,0x7c,0x5e,0x2a,0x35,0x2d,0xa3,0xa0,0x2f,0xce,0x7f,0x71,0x99,0xf4,0xae,0x2b,0x1e,0x2a,0x59,0x48,0x34,0x18,0x93,0x2e,0x18,0x5f,0x7e,0x45,0xb5,0x05,0x0c,0x64,0x2c,0xec,0xc7,0xe7,0x81,0x99,0x85,0x07,},\"\\x26\\xa3\\xc2\\x6a\\x5a\\x18\\x9c\\xad\\x40\\x7c\\xba\\xa3\\xa6\\x86\\x7a\\xc0\\xa2\\x60\\x88\\xc7\\x5f\\x9d\\x0f\\xa1\\x9b\\xd5\\x02\\x74\\xce\\xc5\\x75\\x5a\\x49\\x71\\x09\\xa4\\x73\\x28\\x4d\\x6f\\xc8\\x1a\\xd4\\xb9\\xec\\x29\\xfa\\x7e\\xc9\\x76\\x4f\\xd3\\x09\\x9f\\x06\\x0e\\x36\\x83\\x65\\x52\\xff\\x24\\x13\\xe3\\xd5\\x09\\x5f\\xe0\\xb1\\xa8\\xbf\\xcf\\x67\\xee\\x06\\xaa\\x90\\x32\\xe7\\xbb\\x32\\x49\\x69\\x80\\x47\\x71\\x4d\\x28\\x14\\x15\\x27\\x3c\\x98\\x34\\xad\\x9e\\xb6\\x65\\xa7\\xd9\\x72\\x20\\xe7\\x2d\\x9c\\xa7\\x3f\\x31\\xaf\\xa7\\x73\\x86\\x75\\xba\\x31\\x62\\xef\\xef\\xe7\\x47\\x9a\\x5b\\xc4\\xbc\\xe2\\xe8\\xb7\\xaf\\x47\\x41\\xd7\\x03\\xdc\\x9b\\xbd\\x60\\xb4\\xcf\\x4b\\x90\\x87\\xf6\\xcf\\x86\\xcf\\x53\\xae\\xd0\\x2b\\xf4\\xca\\x6a\\x18\\xf6\\x07\\xcb\\x52\\xa3\\x03\\xd7\\x8e\\x85\\xad\\x88\\xfd\\xfc\\x86\\xdc\\xb7\\x18\\x77\\x27\\xb0\\x3b\\xe2\\x27\\x74\\x5b\\xea\\x74\\x4f\\xd0\\x06\\x52\\x5b\\xc5\\x9a\\x4d\\xdd\\xab\\x91\\x5c\\xef\\x40\\xa8\\xf3\\x08\\x02\\x91\\x3b\\x79\\x13\\xea\\xf9\\x74\\x33\\x65\\x52\\xe2\\xf1\\x45\\x6a\\xd8\\x03\\xdc\\x58\\xc9\\xb4\\xb1\\x8e\\xfa\\xf7\\xf7\\xe3\\x57\\xe2\\xcd\\x77\\xd1\\x38\\xd9\\x00\\x80\\xe2\\x96\\xd1\\x36\\x4a\\x2f\\x32\\x4d\\x3e\\x0d\\x6e\\xdc\\x20\\xb8\\xbd\\xaa\\x9d\\x2e\\x87\\x1f\\x5e\\x7b\\x05\\x1f\\xb6\\xfc\\xdb\\x55\\x95\\xf2\\x1d\\x3f\\x8d\\xe2\\x9f\\xb7\\x86\\x78\\xfa\\x47\\x9e\\xaa\\x32\\x57\\x9c\\x78\\x4d\\x51\\x3a\\xc5\\xf8\\x36\\xd9\\x54\\xd0\\xd3\\xfc\\x0e\\x5f\\xc8\\xa6\\xee\\xab\\x90\\x20\\x2b\\x4c\\x4a\\x2b\\xec\\x24\\xcf\\x63\\xea\\x67\\xc4\\x70\\x09\\x62\\x18\\xcd\\x43\\x1e\\x88\\x31\\x05\\xfc\\x9c\\x27\\xf9\\xea\\x77\\xc1\\x8e\\xda\\x69\\xbc\\x00\\xa2\\x24\\x2b\\xd4\\x20\\xf0\\x95\\xc9\\xb9\\xa9\\x2d\\x95\\x6c\\xcc\\x5a\\x85\\x72\\xb0\\x57\\xa7\\xfe\\x17\\x3e\\xeb\\x2a\\x31\\x66\\xcb\\x20\\x89\\xd1\\x13\\xa8\\x16\\x46\\x2b\\x25\\x80\\x5b\\x8a\\xba\\xff\\x5b\\x0b\\x22\\x87\\xc5\\x08\\xec\\x2b\\x8c\\x34\\xb2\\x19\\x5c\\x33\\x28\\x70\\xd3\\xcc\\x39\\x60\\x17\\xa1\\x6b\\x9e\\x0d\\xa6\\x18\\x2d\\x07\\x1d\\x3b\\xf3\\x63\\xd3\\xf1\\xe7\\xb7\\xda\\x11\\xd7\\x11\\x25\\x0a\\x58\\xaf\\xd7\\x4e\\xd3\\xe3\\x15\\x8d\\x47\\x18\\xba\\xd4\\xd2\\x74\\xbb\\x34\\x44\\xcf\\xc3\\x18\\x07\\x4b\\x53\\xbe\\xba\\x44\\xa2\\xa3\\x4f\\xf8\\xeb\\x72\\x6e\\x4a\\x1d\\xaa\\x91\\x10\\x51\\x62\\x16\\x51\\x89\\x8b\\x88\\x71\\x69\\xf6\\x2b\\x9c\\x0f\\x40\\x20\\x48\\x3e\\xf5\\x44\\xf8\\xf5\\x72\\xfa\\x6a\\x66\\x40\\xa4\\xcf\\xfc\\xe9\\x76\\xcb\\x70\\x24\\xf8\\x47\\xbd\\xc9\\x5d\\x1d\\x7c\\xe6\\x53\\x50\\x5d\\xeb\\xfc\\x69\\x88\\xed\\x28\\x9d\\xd4\\x7a\\x9e\\xb2\\x61\\x25\\x9e\\x3e\\x65\\xe4\\x5f\\xc9\\xd7\\x14\\x94\\x69\\x35\\xcd\\x8e\\xa1\\x3b\\xc6\\xdb\\x5e\\xaa\\xb9\\xe8\\xb1\\x0d\\xae\\x0f\\xdd\\x69\\x79\\xc2\\x03\\x5c\\xfb\\x80\\x98\\x25\\x2f\\x22\\x05\\x44\\x3b\\x80\\x88\\x16\\xbf\\x77\\x87\\xb7\\xf1\\xe7\\x8b\\xc9\\x8a\\x72\\x85\\xe7\\x33\\xd4\\x5f\\xc4\\x61\\x0c\\x20\\x97\\x7c\\xa3\\x22\\x98\\x89\\xbb\\x8c\\xd2\\xb6\\x94\\xce\\x9e\\x3f\\xe7\\x83\\x03\\xaf\\x83\\xe1\\x06\\x42\\x25\\x42\\xfb\\x79\\x61\\xd3\\x2e\\xb1\\xd2\\xc5\\xfb\\xe6\\x07\\x51\\x67\\x4b\\x07\\x47\\x73\\xee\\x06\\x16\\xe0\\x29\\x73\\xf6\\xa7\\x4a\\x3a\\xe4\\x66\\x4a\\x26\\x50\\x91\\x5a\\x3e\\x10\\x49\\x3b\\x9e\\x66\\xa3\\x9f\\xa5\\xc8\\x9c\\x61\\xd4\\x47\\x35\\xf1\\x07\\xd3\\x37\\x57\\xae\\x67\\x9b\\x43\\xa8\\xd4\\x3a\\x01\\x75\\x7a\\xe1\\xf3\\x27\\x9e\\x86\\x24\\x42\\xe1\\x50\\x71\\x55\\x50\\xee\\x82\\xe4\\x9c\\x0d\\x49\\x43\\xfa\\xf1\\x3f\\x22\\x79\\x1f\\x0e\\x66\\xf2\\x4a\\xc5\\x0a\\xb3\\xc0\\x03\\x85\\x2b\\x21\\xe1\\x5b\\x2f\\x00\\x6e\\xdc\\x2c\\xd6\\xa8\\x79\\xc4\\x76\\xab\\x5b\\x35\\x2e\\xb1\\x09\\x9d\\xad\\x4c\\x50\\x37\\x24\\x00\\xfa\\xa5\\x49\\x8d\\x78\\xc6\\xb8\\x57\\x03\\x4c\\x25\\xca\\xf7\\xb9\\x33\\xfa\\xf6\\xbd\\x7c\\x59\\xfa\\x3d\\xa5\\x73\\x97\\xb6\\x03\\xde\\x9c\\xb9\\xd8\\x0e\\x51\\xf7\\x99\\x7b\\xaa\\x46\\x2a\\xcd\\x53\\x7e\\x2c\\x41\\x94\\xc7\\x6c\\x7e\\x0b\\xe6\\x51\\x2b\\xce\\x4d\\x63\\x66\\x0b\\x36\\xc7\\xcc\\x46\\x63\\x1f\\xb9\\x67\\x1a\\xd8\\xc5\\xd2\\x8e\\x2f\\x2e\\xe2\\xed\\xce\\x81\\x95\\x44\\x21\\xb8\\xa3\\xd9\\xff\\x6f\\x66\\x69\\x9f\\x4b\\xce\\x88\\xbc\\xb8\\xef\\x19\\x2c\\x26\\x2a\\x74\\xab\\x7e\\x19\\x1e\\xee\\x91\\x01\\xa2\\x8d\\x4b\\x66\\x28\\x2b\\x51\\x22\\x09\\x3d\\x14\\x1c\\x64\\x96\\xc7\\xab\\xa4\\xd3\\x52\\xe4\\x72\\xee\\x74\\x40\\xe0\\x5a\\xf6\\x0d\\xa0\\xcf\\xc9\\x3e\\x30\\x36\\x42\\xba\\x8f\\xb8\\xe5\\xc5\\x68\\x68\\x7a\\xbd\\x63\\xaf\\xb3\\xed\\x6a\\x32\\xb6\\xda\\xe5\\x6a\\x7e\\x5d\\x73\\xde\\xba\\xf4\\x1d\\x35\\xca\\x36\\xad\\xb9\\x7a\\x22\\xc0\\xad\\xbe\\x71\\x8b\\xec\\x1f\\xa5\\x19\\x98\\xde\\x9b\\x4b\\x96\\xa7\\x9c\\x5b\\x96\\x55\\xb0\\x16\\x5d\\x5e\\x1b\\x9a\\x8c\\xc5\\x52\\xe8\\xc9\\x32\\x9e\\xde\\x58\\xdf\\x74\\xc6\\x7b\\x2b\\xa1\\xa8\\x42\\xfd\\x3e\\x81\\x58\\xc1\\xfe\\xa3\\xa9\\x9b\\x56\\xa2\\xc2\\xa9\\x62\\x07\\x85\\x3d\\x26\\x02\\x2c\\xec\\x17\\x0d\\x7e\\x79\\x94\\x4d\\x2f\\x56\\xaa\\xb1\\xf1\\x91\\xbf\\xd4\\x8d\\x72\\x54\\x90\\xca\\x82\\xb8\\xd9\\x06\\xf0\\x68\\x0e\\x69\\xee\\xb9\\x57\\x57\\x74\\xfb\\x9d\\x60\\x45\\x13\\xfb\\xc2\\x6f\\x5d\\x30\\x3b\\x68\\x85\\xca\\xc0\\xbf\\x8e\\xfe\\xe0\\x53\\x8f\\x92\"},\n{{0x0f,0x77,0xf7,0x7a,0x1c,0x7e,0x04,0xbd,0xa8,0xe5,0x34,0xf4,0xe3,0xef,0xf9,0xa2,0x38,0xcc,0x14,0x87,0x6b,0x7e,0x3e,0xca,0x8b,0xed,0xe1,0x92,0x3a,0x33,0x64,0x06,},{0x10,0x45,0xea,0x9f,0xe2,0x14,0x58,0x3a,0x0c,0xdb,0xc4,0x94,0x93,0x2b,0xc4,0x4a,0xfe,0xeb,0x08,0x0b,0xec,0x48,0x5c,0xc2,0x34,0xfd,0xdc,0xff,0x13,0x9c,0xce,0x00,},{0xb2,0x0b,0x9c,0x42,0x46,0xf0,0xd2,0x97,0x01,0x38,0xaf,0x7d,0xc9,0xaf,0x62,0x9b,0x68,0xfb,0xc3,0x7d,0xf8,0x7a,0xfd,0xca,0xdc,0xb5,0x45,0xc1,0x76,0x83,0x76,0xa0,0x9c,0x3b,0xab,0xc3,0xeb,0x1a,0xf3,0xb7,0x51,0x98,0x52,0xf7,0x5f,0xab,0x1c,0x9c,0x11,0x9c,0x66,0x2c,0x58,0x77,0xfb,0x2f,0x72,0x99,0xca,0xb5,0x7f,0xad,0x3d,0x0e,},\"\\x0e\\xcb\\x74\\x6d\\xbd\\xb0\\x16\\x14\\x21\\xaf\\xeb\\x7a\\xde\\xa7\\xa3\\x7c\\x2e\\xa4\\x40\\x8a\\x59\\x2c\\x9d\\x78\\x1e\\xd6\\xac\\x6f\\x4e\\xe5\\xcc\\x65\\xd5\\x27\\x0e\\x4c\\xf2\\x76\\x32\\xf7\\xc5\\xc1\\x33\\xd4\\x39\\xb7\\x8d\\x1f\\x71\\xaa\\x6d\\xd8\\x07\\x13\\xd9\\x0b\\x15\\x1e\\x19\\x12\\x1b\\xfa\\x87\\x71\\x0e\\x84\\xa4\\x85\\x0a\\x3b\\x5b\\x02\\x65\\xba\\x26\\x03\\xd0\\x71\\x6e\\x9b\\x7e\\x11\\x22\\x10\\x9c\\x39\\xc6\\xf1\\x02\\x7f\\xce\\x18\\x79\\x8c\\xbb\\x4f\\x6b\\xc5\\xe4\\xd7\\xac\\xa4\\x70\\x46\\x90\\xf5\\xc9\\x81\\x51\\x08\\x71\\xc3\\x13\\x59\\x57\\x98\\x33\\x86\\x81\\x10\\x7f\\x2b\\x57\\x94\\xd4\\x6f\\x6e\\x0b\\xde\\x2c\\xd0\\x64\\xb3\\xb1\\xfc\\x00\\xca\\x47\\x18\\x8b\\xbb\\xc1\\xf4\\xa0\\xce\\x30\\x5c\\xc6\\xd8\\xa8\\x96\\x92\\x0e\\xb9\\xeb\\xae\\x57\\x9f\\xd3\\x38\\x5f\\x8f\\x1f\\x35\\x97\\x62\\x88\\xf4\\xc5\\x8f\\xfc\\x47\\x60\\xf3\\x59\\xb0\\x03\\xc8\\x72\\xe9\\xa2\\x40\\x55\\x35\\x5e\\xa9\\x58\\x5e\\x95\\x10\\x69\\xdc\\xa2\\x5f\\xd0\\xcc\\x0b\\x9d\\xb5\\x2a\\xae\\xaf\\x19\\xd4\\x3f\\x2e\\xab\\x4f\\x83\\x56\\x03\\xad\\x12\\xd2\\xdc\\x49\\xb3\\x10\\x25\\x6b\\x94\\xbe\\xd5\\x48\\x96\\xa1\\x6b\\x69\\xb0\\x9c\\xb4\\xc8\\xff\\x5c\\x23\\xcc\\xe5\\x59\\x3d\\x87\\xad\\xe2\\xa8\\x2a\\xda\\x50\\x85\\x9e\\x15\\x44\\xc1\\x86\\x18\\xa6\\x5c\\x00\\x7e\\xf4\\x24\\xc9\\x85\\x4a\\x17\\x5b\\x6e\\x6c\\x0e\\x64\\xb2\\xc8\\xeb\\x8a\\xd4\\xd2\\x8b\\x97\\x7d\\x68\\xe7\\x81\\x69\\x91\\x51\\x98\\x97\\x53\\x94\\xd3\\xb9\\xb2\\x69\\xca\\xb0\\xd3\\x26\\x1b\\x2b\\x56\\xcd\\x2c\\xc4\\xbd\\xdb\\xd4\\xf1\\x43\\x9e\\x0d\\xbe\\x2c\\x9b\\x3f\\x3f\\x75\\x14\\xed\\xac\\x5e\\xbb\\x46\\x22\\xb9\\x2a\\x69\\xa8\\x40\\xa9\\x02\\x85\\x50\\xb2\\x21\\xdb\\x59\\xdd\\xfb\\x00\\x13\\x96\\xf8\\x63\\x92\\xa1\\x7f\\x08\\xcc\\xb1\\x94\\xcd\\x9e\\x1a\\x00\\x81\\xd7\\xdd\\x9c\\xca\\x23\\x57\\xfe\\xb8\\xb7\\x95\\xe5\\x17\\x02\\x9f\\x79\\xc8\\x2a\\x3b\\xe6\\xf9\\xa0\\x31\\xdd\\x1a\\xf1\\xe7\\x9e\\x49\\x82\\xbf\\x8e\\x76\\xb3\\x10\\xf9\\xd3\\x55\\xef\\xcd\\x5b\\x1e\\xfa\\x9f\\x35\\x9c\\x17\\xcf\\x3b\\x51\\x0d\\x51\\x3e\\x8c\\xd5\\x78\\x6a\\x0d\\x34\\x45\\xdc\\x59\\xa8\\x43\\x3a\\x46\\x48\\x86\\x87\\xb0\\xf5\\x8b\\x1b\\xd6\\x56\\x7c\\x2a\\xf4\\x87\\x3b\\x51\\xfc\\x84\\x5e\\x76\\x7e\\x24\\x30\\x05\\x19\\x2f\\x8f\\x06\\x74\\xf2\\x81\\x26\\x5a\\x55\\xd7\\x6c\\xea\\x32\\x22\\x60\\xc9\\x32\\xce\\xa6\\x71\\x7a\\xdb\\x98\\xa2\\xdd\\xa8\\xc6\\x98\\xe2\\xe8\\x92\\x55\\xfe\\xb7\\x7d\\xa7\\x64\\x81\\x67\\xbc\\x1e\\x58\\x87\\x7f\\xeb\\x72\\xd1\\xd1\\x4b\\x0c\\x30\\x4f\\x07\\x37\\x2d\\x95\\x56\\x75\\x23\\x7c\\x49\\xf7\\xa6\\xdb\\xc9\\x15\\xe6\\x81\\x4a\\xba\\xe6\\xcc\\xe4\\xca\\xf9\\xf4\\x80\\x87\\xe9\\xdf\\xb2\\x82\\xd8\\xf3\\x40\\x37\\x7c\\x1e\\x29\\xc6\\x73\\x1c\\xcc\\x26\\x67\\xda\\x66\\x95\\xb7\\x12\\xbe\\x03\\x12\\xd8\\x65\\x11\\x19\\x34\\xf1\\x68\\xd5\\x54\\x43\\x65\\xdd\\xae\\x27\\xab\\xc6\\x4a\\xef\\xbc\\xb3\\x22\\xdb\\x7d\\x97\\xd9\\x0d\\x95\\x7a\\x63\\x7b\\xd8\\x26\\xc2\\x27\\xe9\\xeb\\x18\\x0b\\x45\\xa4\\x31\\x62\\x6a\\x6f\\xd8\\x90\\xc0\\xe5\\xf4\\xed\\x7e\\x85\\x64\\x74\\x75\\x2f\\x80\\xb5\\xae\\xf6\\xe7\\x3e\\xfd\\xaa\\x6c\\x2c\\x45\\x1b\\xd7\\x4c\\x1e\\xf4\\x66\\xca\\x3a\\xaa\\x25\\x73\\xbb\\x52\\xcb\\x2b\\x1c\\xa9\\x6a\\x1b\\x57\\x44\\x03\\xce\\xae\\x1c\\xf0\\x5f\\xfc\\x53\\x43\\x0e\\x1e\\x4c\\xd5\\x59\\x3b\\xd1\\xef\\x84\\xbc\\xbf\\xe2\\x19\\xf0\\x81\\x60\\xd1\\x66\\xf2\\x73\\x1d\\x99\\xb8\\xd7\\xa3\\x2b\\x12\\x99\\x1f\\x77\\x77\\x5a\\x26\\x7e\\xc0\\x82\\x97\\xec\\x51\\x2d\\x7b\\x72\\x43\\x56\\x32\\x52\\x5c\\x04\\x00\\x0f\\xb0\\x0a\\x79\\x3f\\x8b\\x5f\\x8f\\x37\\x47\\xb5\\x53\\x59\\xdf\\x21\\xb7\\xe2\\xc4\\x9f\\x2b\\x0b\\x9a\\xe0\\x82\\xaf\\xc7\\x0a\\x14\\x68\\x71\\x37\\x0b\\x8d\\x50\\x08\\x6d\\xe0\\x0f\\x94\\x48\\xbe\\x89\\x02\\x17\\x4b\\xa2\\xcc\\x85\\x1f\\xa3\\x79\\xdd\\x70\\x31\\xca\\x45\\x7a\\x88\\x69\\xaf\\x4b\\x6c\\x27\\x29\\xda\\xc5\\x19\\x55\\x6b\\x8b\\xb4\\xab\\x51\\x9e\\xf1\\xbb\\x02\\x4e\\xa8\\xb7\\xf0\\x17\\x71\\xc9\\xaa\\xb7\\x48\\xe5\\x73\\x81\\xa0\\x19\\x2a\\x6e\\x39\\x8c\\xbe\\x6d\\xd9\\xf3\\x67\\xcc\\x7b\\x33\\x54\\xf8\\x3b\\x79\\xbc\\xda\\x46\\xb7\\x93\\xa4\\xad\\xa8\\x55\\x49\\xc8\\xd6\\xbd\\xd6\\x16\\x81\\x24\\x36\\x2f\\xf9\\x08\\xaa\\x1a\\x0c\\xb7\\x8a\\xa3\\x30\\xc4\\x2d\\x5a\\x5d\\x48\\x12\\x35\\xac\\xac\\x3a\\x91\\x9b\\x96\\x9c\\x50\\x98\\x72\\x66\\xd4\\x04\\xd1\\x5d\\x0e\\x70\\x6f\\xd9\\x00\\x76\\x34\\xf6\\x9e\\x13\\xc5\\x6e\\xc4\\x71\\x33\\x88\\x4f\\xca\\xdd\\xc1\\x6b\\xee\\xee\\xd1\\x9e\\x0c\\xd9\\x17\\xaa\\x49\\x63\\x67\\x86\\x7d\\xfc\\xea\\x27\\x4e\\x1a\\x47\\xda\\x77\\x4f\\x3c\\x93\\x63\\x02\\x1e\\x7c\\x8d\\x6b\\xf8\\xf0\\x00\\x53\\xfa\\xcc\\x11\\xcb\\x68\\xa9\\xd6\\xe1\\xfc\\x2d\\x6d\\x19\\x17\\x5d\\x63\\x24\\xff\\x7c\\xa6\\xc2\\x30\\x58\\xb8\\xb6\\x93\\xd8\\xfd\\x4e\\x0b\\x51\\xdc\\xbb\\x11\\x35\\x43\\xf2\\xfc\\xc0\\x45\\x2e\\xb9\\xd9\\x67\\xac\\x0f\\xa9\\xb2\\x3e\\x9e\\x0b\\x1d\\xa8\\xd8\\x3a\\x3c\\x1f\\xc9\\xe9\\xec\\x97\\x1f\\x0f\\x67\\xfc\\x74\\x5b\\xb1\\x73\\x76\\xbc\\x46\\x24\\x5f\\x52\\x8c\\xb6\\xe5\\xfe\\xe1\\x1b\\xcd\\xda\\x86\\x7b\\x7f\\x79\\x01\\x9c\\xf9\\xdb\\x59\\x18\\x58\\x23\\x0a\\xec\\xb4\\xd1\\xe9\\x3d\\x16\\x7c\\xd8\\x6b\\x42\\xdd\\x87\\x9a\\x13\\xfa\\x0e\"},\n{{0xc5,0xa5,0x05,0x34,0x77,0xae,0x31,0x15,0x8e,0x74,0x69,0xdd,0x15,0x04,0x86,0x76,0x50,0xd4,0x6f,0x15,0x89,0x06,0x7f,0x5c,0xd8,0x81,0xca,0xf2,0x5c,0x26,0xcb,0x21,},{0x70,0xf8,0x5d,0xb9,0x80,0x7b,0x26,0xfc,0xf3,0xe6,0x69,0x0b,0x91,0x72,0x4f,0x7a,0xe3,0xd2,0x0e,0xc3,0x60,0x4a,0xb7,0xd6,0x30,0x8d,0x90,0x94,0x30,0x8b,0x2d,0x59,},{0xf5,0x19,0x1b,0x44,0xbd,0x6c,0xc3,0xea,0x28,0x17,0x71,0xdf,0x12,0x54,0x9b,0xa2,0xbe,0x22,0x8b,0x51,0xeb,0x79,0x1b,0x9e,0x5e,0xd2,0x81,0x5f,0x86,0x2a,0xa6,0x30,0xb5,0x69,0x67,0xcd,0xef,0x8b,0x6a,0xf0,0xb9,0xd2,0x1a,0xb8,0xc9,0x7a,0x6d,0xff,0x68,0x1c,0xce,0xd9,0xf5,0x01,0x97,0x13,0xd4,0x35,0x7c,0xb3,0xe5,0x4c,0x0d,0x08,},\"\\x85\\x71\\xff\\x39\\x03\\x48\\x6a\\x43\\xa6\\x12\\x6c\\x32\\x3e\\x7b\\x3a\\x74\\x14\\x1d\\x13\\x85\\xd4\\xbd\\x70\\x3f\\x19\\xe2\\xd1\\xb6\\x4b\\x50\\x28\\x1d\\x27\\x16\\x8a\\xe3\\xe7\\x69\\xc6\\xdd\\x9d\\xf7\\xd9\\x78\\x64\\xfb\\x37\\x82\\x2f\\x00\\x21\\x85\\x2e\\x31\\x68\\xab\\x7d\\x84\\x5a\\x65\\x45\\xed\\x0c\\x37\\x7d\\x9f\\x7c\\x04\\x8a\\x2b\\x96\\xe8\\xdc\\xf4\\x45\\x77\\x96\\x84\\xa0\\x58\\xc2\\xb9\\xc2\\x1a\\xc6\\x8a\\x0c\\x34\\x1d\\x1d\\x6c\\x09\\x81\\x45\\x64\\x57\\x45\\x8e\\xb7\\xce\\xbf\\x66\\x67\\x87\\x40\\x77\\x7e\\xca\\x26\\xe0\\x1e\\x1c\\x8f\\x53\\xb5\\xd4\\x75\\x6c\\xc5\\xf0\\xb9\\x0f\\x0c\\x5d\\xb0\\x53\\x93\\xcd\\x4b\\x8e\\x44\\xf6\\x81\\x0c\\xaa\\x5a\\x11\\x6a\\x33\\x57\\x77\\x24\\x39\\x5d\\x41\\x3a\\xf6\\x19\\x63\\x2a\\x6f\\xed\\x14\\xe2\\x15\\xc2\\xf1\\x9d\\x10\\x5c\\xe2\\xbf\\x14\\x98\\xe6\\xd2\\xab\\x4f\\x65\\x0f\\x61\\xba\\x5c\\xf6\\xd0\\xc7\\x3b\\xbb\\xde\\x98\\xe3\\x04\\x29\\x91\\x0a\\x4e\\x67\\xdf\\xbc\\x71\\x7c\\xb0\\x91\\x18\\x2d\\x59\\x70\\x58\\xb5\\xd7\\x65\\xd0\\x97\\xe6\\x87\\x58\\x31\\xb5\\x88\\xaa\\xeb\\x3e\\x73\\x27\\xe8\\x56\\xb4\\x2f\\xa9\\x83\\xfd\\x25\\x4e\\xf1\\xf9\\x18\\xb0\\x43\\xd1\\xdd\\x3d\\x7b\\x7e\\x30\\xb3\\x15\\x38\\x6e\\xec\\x91\\xe7\\xf9\\x4d\\x59\\x8f\\x4b\\xeb\\x3b\\x27\\xb4\\x2f\\x4e\\xe1\\xfb\\xf7\\xaf\\xb4\\x86\\xbd\\xcc\\x60\\x81\\xcc\\xb8\\x67\\xf0\\x41\\x11\\x04\\x4f\\x4b\\xbb\\xe3\\xc8\\x12\\x2e\\xde\\xad\\xef\\xa9\\xd6\\x93\\x90\\x6e\\x0d\\x6e\\x13\\x3b\\xf6\\xf2\\xda\\x61\\x58\\xfe\\xed\\xbd\\xa0\\x24\\x41\\x0f\\x12\\x08\\x6e\\x7a\\xcc\\xf1\\xc6\\x8e\\x15\\x57\\xf0\\x0c\\x14\\xe9\\xc7\\xea\\x76\\xa5\\xed\\x13\\x37\\xa0\\x54\\xac\\x2c\\x94\\x9c\\x05\\x97\\x7e\\x03\\x02\\x74\\xf6\\xa4\\xf2\\xa6\\xb3\\x0a\\x15\\xc5\\x70\\xec\\x94\\x33\\xf7\\x4f\\x47\\x52\\x80\\x87\\xc9\\xce\\x9a\\x62\\x92\\x95\\x1c\\x54\\x35\\x49\\x96\\xfb\\x28\\x3c\\x0d\\xc4\\xcf\\x33\\xc0\\x01\\xbc\\x96\\x87\\x5e\\xa6\\xe1\\xf4\\x6f\\x83\\x7f\\xf1\\x8d\\xd9\\x54\\x5f\\xb9\\x93\\x46\\x55\\x34\\x2b\\x12\\xc2\\x99\\x0b\\x9f\\x1c\\x6f\\xf4\\xd6\\x64\\x89\\xd6\\xae\\xdc\\xe7\\x5c\\x7c\\xb0\\x3a\\xc1\\x34\\xbf\\xd3\\x9b\\x18\\x1d\\xfb\\x7f\\x9a\\x97\\xce\\x73\\x7f\\xe5\\x70\\xad\\x5f\\x81\\x34\\x59\\x39\\xa6\\xde\\x5a\\x40\\xa3\\x3a\\x0e\\x44\\xbf\\x95\\x75\\x03\\xd5\\xca\\x02\\x83\\x51\\x2e\\x57\\xfb\\xa8\\xa3\\xa6\\xf2\\xc3\\x90\\x68\\x7b\\x1b\\x77\\x08\\x67\\x6e\\x0f\\xd0\\x3b\\x7c\\x18\\x8d\\x45\\x61\\xc1\\x87\\x91\\x63\\xea\\xf2\\xb5\\x96\\xdd\\xd5\\xf3\\xc1\\xf4\\xda\\xdb\\xc1\\x39\\xc2\\x16\\x48\\x92\\x82\\x0b\\x2f\\xe0\\x9c\\xbc\\x3d\\x19\\x08\\x80\\x76\\x36\\x45\\x10\\x25\\x4f\\x2b\\x6d\\x41\\x03\\x29\\xe7\\x0f\\x2e\\x5a\\x94\\x5b\\xba\\xcd\\x2c\\xa8\\x9b\\xd4\\xb6\\xe1\\xf5\\xe2\\xe1\\xd4\\xf4\\xed\\x2f\\xe0\\x11\\x3b\\xcf\\x32\\x96\\x2f\\x00\\xd5\\xc3\\x3b\\x1d\\xf9\\x88\\x40\\x2b\\xa0\\xdc\\x88\\x04\\xc1\\xaf\\x66\\xcc\\xae\\x26\\x70\\xef\\xa3\\x13\\x4c\\x67\\xfc\\x90\\xfe\\xed\\x8d\\x8d\\xee\\xdc\\xcf\\x6a\\x46\\xf2\\x29\\x40\\x45\\x4a\\xf2\\xbb\\x67\\x54\\xcf\\x23\\x5d\\xdb\\xb0\\x00\\x1c\\x6c\\x74\\x1b\\xf8\\x74\\xbc\\xd8\\xd4\\x1d\\x9d\\xba\\x81\\x62\\x58\\x1c\\x37\\x46\\xd7\\xf3\\x0e\\x73\\xde\\xf6\\x94\\x15\\xaf\\x51\\x81\\xc1\\x49\\x91\\x42\\x95\\x12\\x2d\\x45\\x98\\x2f\\x94\\x94\\x3e\\x20\\xb0\\xff\\xc7\\xfe\\x6d\\xdf\\x19\\xa0\\x22\\xe8\\x7a\\x52\\x13\\x33\\x57\\xa1\\xe8\\x0f\\x37\\xf2\\x8a\\x4c\\x4a\\x8a\\x61\\xc1\\x48\\xdd\\x87\\x5c\\x1e\\x8e\\xcd\\xcd\\x84\\x0d\\xd8\\x63\\xe4\\x4d\\x9b\\xcb\\x16\\xb6\\xe5\\xaf\\x01\\x47\\xb3\\x4a\\x7a\\x90\\x52\\xc8\\xd3\\xf4\\x52\\x01\\x3d\\x2d\\x35\\x4f\\x68\\x03\\xf9\\xea\\xf6\\x05\\x6f\\x3b\\x01\\x3c\\x61\\x6e\\x47\\xf3\\x98\\x81\\x91\\x46\\x32\\x0a\\x5e\\x3d\\xbd\\xf1\\x68\\x43\\xea\\x29\\xde\\xf2\\x62\\xcc\\x9a\\x34\\x36\\x72\\xcf\\x96\\xbc\\xcc\\x6e\\x87\\xe6\\xa6\\xba\\xf0\\x71\\x2e\\x6e\\xe8\\x9a\\xa6\\x04\\x89\\xf1\\x7c\\xb7\\x2d\\xdc\\x44\\xba\\xd1\\x61\\x58\\x7d\\x87\\xf5\\x4d\\x67\\xcc\\x0a\\x27\\x78\\x49\\x7d\\x83\\x10\\x88\\x31\\x5f\\xfe\\xee\\x3d\\x26\\x8c\\x59\\xbe\\xfe\\x88\\x4c\\x3a\\xa0\\xe0\\xae\\x22\\x96\\xbb\\xb6\\x0e\\xac\\x90\\x97\\xcd\\xf8\\xdc\\x09\\x87\\xce\\xb1\\x74\\x2b\\x05\\x86\\xdf\\xce\\x79\\xec\\x10\\x42\\x5b\\x28\\xf4\\xe6\\x45\\x20\\xd7\\x12\\xe3\\xf4\\x6e\\xa8\\x3b\\xe2\\xde\\x6a\\x15\\x74\\x07\\x3b\\xc5\\xc7\\x55\\x7b\\x8e\\x25\\xb6\\x41\\x11\\x84\\xea\\x28\\x3d\\x88\\x00\\x23\\x2c\\x79\\x06\\x94\\x21\\x81\\x1f\\x88\\x3c\\x29\\x94\\xe7\\xb7\\xe2\\xad\\x9f\\x8d\\xc4\\x89\\xc9\\x34\\x77\\x24\\x39\\x46\\x09\\xc9\\x89\\x09\\xa6\\xc2\\x60\\x17\\xb5\\x0f\\x20\\xd5\\x0c\\xca\\xcb\\xde\\x36\\xb7\\x6b\\xa6\\x46\\xa7\\x6d\\xc6\\xa5\\xb0\\xf5\\x06\\x49\\xc5\\x65\\x8b\\xbd\\xfd\\xd3\\xb5\\xca\\xfc\\x54\\x79\\xa2\\xf4\\x8e\\xe5\\x15\\x42\\xf2\\x3e\\x9f\\xc9\\x21\\x32\\x06\\x0f\\xd6\\x35\\xef\\xf4\\x52\\x11\\x1c\\xda\\xf3\\xef\\xbd\\xb7\\xdb\\x9e\\x7d\\x47\\x16\\xd0\\xd6\\x01\\x1c\\x29\\x11\\x8a\\x55\\xd4\\xc1\\xa4\\x36\\xab\\xe2\\x4e\\x3c\\xbf\\x40\\x23\\x5b\\x76\\xdd\\x19\\x23\\x50\\x3c\\x5f\\x35\\x98\\x12\\x4e\\x2d\\xf5\\x5a\\x2d\\x1f\\x24\\x6e\\x90\\xde\\x4b\\x71\\x64\\x5d\\x51\\x75\\xb6\\x1b\\x01\\x74\\xe7\\xe5\\x7d\\xf1\\x28\\x5c\\xcf\\x8c\\x86\\xb8\\x38\\x2c\\x25\\x80\\x79\"},\n{{0x05,0xc7,0x19,0xca,0xe0,0x6e,0x2b,0xb7,0xd8,0x78,0x63,0xab,0x31,0x50,0x27,0x2c,0xb2,0xf8,0xc3,0xaa,0x24,0x21,0x91,0x2d,0x87,0xf9,0x8e,0x75,0x89,0x63,0x8c,0xe9,},{0x90,0x21,0x17,0x96,0xfe,0xd3,0xd5,0x3b,0x81,0xf8,0xfe,0xeb,0x1b,0xad,0x1f,0xfc,0x93,0x3e,0x5f,0x10,0xd3,0xbc,0x1b,0x36,0xdd,0xf2,0x10,0xa4,0x79,0x23,0xdf,0x03,},{0xba,0x6e,0xb7,0x51,0x37,0x1d,0xf7,0x21,0xb7,0x70,0x7a,0x5b,0x33,0x39,0xed,0xb5,0x5f,0x13,0x86,0x40,0xb9,0x7b,0xe6,0x33,0x4d,0x6c,0xda,0x51,0x91,0xa3,0xff,0x63,0x67,0x91,0x17,0x61,0x88,0x2a,0x4a,0x00,0x7f,0x16,0x1b,0x74,0x8c,0xec,0x95,0xb1,0x9e,0x99,0x5f,0x28,0x58,0xc2,0x57,0xcd,0x61,0x69,0x25,0x66,0x62,0x30,0x11,0x02,},\"\\xec\\x24\\x19\\x18\\x41\\x8e\\x60\\x52\\x20\\x42\\xe6\\x73\\x39\\xe6\\x64\\x94\\x99\\xf3\\x1a\\x6c\\x7c\\xf8\\x92\\x5f\\x1f\\x61\\xdd\\xe8\\x94\\x60\\x36\\x02\\xae\\x8b\\xb5\\xf5\\x88\\x09\\x82\\x1f\\x83\\x34\\x4f\\x23\\xcd\\x31\\xe6\\x4e\\xc9\\xff\\xe7\\x9a\\x98\\x6b\\x7e\\x29\\xe4\\x31\\x9a\\x63\\x41\\x43\\x16\\xbd\\x6e\\xe2\\x0e\\x02\\xa5\\x0d\\xa4\\x40\\x12\\xbd\\x2d\\x6f\\x9f\\x67\\x9e\\x88\\xed\\x0c\\x8b\\xb1\\xe2\\xca\\xd5\\x5e\\x56\\x57\\x89\\x88\\x33\\x45\\xb7\\x54\\x6f\\x3d\\x54\\xb1\\xb3\\x62\\xb1\\xc6\\x50\\x50\\x2c\\x01\\x9d\\x73\\x13\\xaf\\xbc\\x82\\x68\\x9b\\x23\\xa3\\xa5\\x2d\\x8f\\x1a\\xf9\\xf8\\x1e\\x18\\x8d\\xbd\\xf2\\x03\\xfb\\x53\\x00\\xb4\\x22\\x5b\\xfb\\x67\\x73\\x33\\x7b\\xe6\\x75\\x0b\\x3d\\xb8\\x8c\\xe0\\x97\\x34\\x3f\\x62\\xee\\x2c\\x11\\x85\\x74\\xef\\x15\\x0c\\xbd\\x4c\\x62\\x76\\x0c\\x3e\\x43\\xdc\\xbc\\x39\\x21\\x8b\\xd6\\xd9\\x85\\x65\\xfa\\x38\\x98\\x11\\xb1\\xa6\\x74\\xf6\\x17\\xfd\\x75\\x67\\x33\\xdc\\xb5\\x67\\xa9\\x2d\\xbf\\x38\\x55\\xb5\\x7b\\x1f\\x4a\\x46\\xd5\\xb8\\x97\\x4b\\x39\\xac\\x0d\\x0e\\x24\\xd9\\x9d\\x20\\x37\\xc0\\x4f\\x60\\xd9\\x14\\x0f\\x64\\xb0\\x7a\\x77\\xd7\\xea\\xa1\\xce\\x8a\\x78\\xe8\\x44\\xb1\\xdc\\xf0\\xe3\\x74\\x24\\xf3\\xf9\\xd2\\x53\\xa5\\x48\\x56\\x1a\\x03\\x75\\xa8\\xd4\\x34\\x12\\x97\\xbf\\xed\\xb7\\x04\\x8c\\x79\\x35\\xe1\\x48\\x14\\x18\\xf9\\xbb\\xa9\\x27\\x1f\\x9f\\xd6\\x02\\x62\\x24\\xe7\\x8e\\x05\\x5d\\x8a\\x09\\x39\\xfa\\x2f\\xe1\\xdb\\xc0\\xfc\\x7b\\x58\\x3e\\x4c\\xff\\x34\\x90\\xe1\\xd0\\xf6\\x10\\xb2\\x52\\xe3\\x0d\\x84\\x97\\xd0\\x0e\\x4a\\xac\\xb3\\x75\\xf1\\x9a\\x47\\x19\\xf7\\x9c\\xa1\\xea\\x58\\x3a\\x2f\\x8b\\x14\\x06\\xa4\\xaa\\x5c\\xb5\\x5c\\x08\\xb6\\x59\\x3b\\x67\\x6e\\xb5\\xc3\\x4a\\xbe\\x89\\x39\\x2d\\x62\\xd2\\x33\\x08\\xa3\\x34\\x8b\\x57\\xaf\\xfb\\xba\\x77\\x39\\xcd\\xe8\\xe1\\x90\\x9d\\x34\\x25\\xee\\xb2\\x09\\x26\\xa9\\x77\\xd3\\xa9\\x4a\\x86\\xe0\\xba\\x10\\xb3\\x86\\x92\\x66\\x98\\x82\\x7e\\x86\\xb4\\xfd\\x6c\\x61\\x80\\x04\\x7c\\x87\\xec\\x3b\\x31\\x61\\x9d\\x05\\xa9\\xdf\\x34\\xef\\xd3\\xd7\\x6a\\x83\\x69\\x62\\xb2\\xef\\x60\\x4d\\x07\\xaf\\x09\\x75\\xeb\\x8f\\x3d\\xd2\\x25\\x94\\x32\\x38\\x02\\x56\\x4c\\x92\\x9b\\x3f\\x65\\xda\\xcb\\x57\\x2b\\x32\\x55\\x3d\\x69\\xb3\\x1a\\x19\\x76\\x90\\xa9\\xbb\\x86\\x0b\\x08\\x0a\\x77\\xcf\\xbb\\x3c\\x17\\x5a\\xaf\\xce\\x01\\x46\\xa8\\x2a\\x4d\\x06\\xe8\\xc7\\x50\\x52\\x1b\\x72\\x6e\\xf1\\xcb\\x29\\xd0\\x21\\xe5\\x91\\x5e\\x5e\\x84\\x62\\xed\\xe5\\x39\\x54\\x45\\x24\\x5c\\x9a\\xe8\\x82\\xee\\xc4\\xb1\\x74\\x5e\\x11\\x79\\x1f\\x76\\x21\\xd3\\xfe\\x70\\x2c\\xac\\x15\\x25\\xe1\\xf7\\xb4\\x6e\\x11\\x05\\xcd\\xd0\\x6d\\xa2\\xaf\\xde\\x26\\x47\\x5d\\xc1\\xf7\\x8d\\xf8\\xe2\\xd7\\x2b\\x0e\\xc3\\xef\\x7d\\xd9\\x56\\x19\\x3c\\x99\\x68\\x42\\xa4\\x32\\x69\\x65\\x38\\xcf\\x12\\x3d\\x76\\x87\\x21\\x1f\\xfc\\xd0\\x90\\xb9\\x38\\x1e\\xab\\xec\\x87\\x9f\\x76\\x9a\\xac\\x0d\\x35\\x64\\xe1\\x6d\\xf7\\x94\\xfa\\x24\\x72\\x8d\\x71\\x72\\xfd\\x07\\x73\\x2e\\xab\\x07\\x7e\\xd8\\x1c\\x22\\x08\\x4f\\x6f\\x78\\x1b\\x62\\x6d\\xac\\x67\\x42\\x8a\\x9d\\xdf\\x3b\\x0d\\xb0\\x46\\x52\\x51\\x22\\x0d\\x18\\xb8\\xbf\\x62\\x04\\x64\\xc5\\x1a\\x57\\x8d\\xec\\xcc\\xbb\\xab\\xa5\\x45\\xed\\x44\\x2c\\xf1\\x2c\\x4c\\x66\\xf6\\xcb\\x6e\\x69\\x01\\xea\\x54\\xae\\xda\\x23\\x6e\\xc4\\x5e\\xef\\x88\\x6a\\x7d\\xdd\\x2c\\x04\\x1c\\xab\\xa3\\xa6\\xce\\xe3\\x39\\x71\\x5b\\x6c\\xe9\\x7e\\x76\\x5e\\xc3\\x47\\x9f\\x3d\\x52\\x82\\x4a\\x81\\x94\\xbe\\xc2\\xa8\\x96\\x47\\xe8\\xc6\\x3f\\xf7\\x64\\x5f\\xf6\\xd0\\x53\\x67\\xc7\\x67\\xbc\\x48\\xcc\\x96\\xba\\xf0\\x5d\\x6a\\x41\\x5b\\x2a\\x5a\\xff\\x9b\\xfb\\x21\\x79\\x48\\xfa\\xd3\\x57\\xb9\\x8f\\x47\\xdf\\xed\\x62\\xff\\x12\\x85\\xeb\\x9f\\x46\\x8f\\x0f\\x29\\xed\\xd7\\x5a\\xdc\\x0c\\x8c\\x2f\\xf6\\xa5\\x65\\xed\\xb8\\xed\\xfb\\x48\\xbe\\xa0\\x3b\\x70\\xc4\\x47\\x36\\x9c\\x52\\xd8\\x81\\xee\\xa0\\xee\\xdb\\x08\\xc3\\x15\\xcd\\xf0\\xbf\\xeb\\x97\\x9c\\x1c\\x02\\x50\\x94\\x6b\\xb1\\x00\\xc2\\x86\\x6b\\x41\\x69\\xb8\\xcb\\xd4\\x4d\\x65\\x8f\\x02\\x36\\xe1\\xe9\\xf3\\xaa\\x13\\xbb\\x8e\\x80\\x22\\xa3\\x8c\\xe9\\x97\\xc9\\x4b\\x5b\\xaf\\x97\\xe0\\xba\\x62\\x1f\\x7e\\x09\\x67\\x1c\\xe6\\x38\\xc2\\xa3\\x9e\\xe6\\xc6\\xe2\\x5a\\x68\\x80\\x19\\xdd\\x16\\x76\\x75\\xce\\xae\\xc2\\x1c\\x6b\\x42\\xa7\\xc8\\xc4\\x76\\xd1\\x29\\xdc\\xc6\\x93\\xc3\\x92\\xa0\\x2b\\xe9\\x1b\\x87\\x43\\x7a\\x08\\xa0\\xeb\\xf1\\xa7\\xbd\\x97\\x6b\\xa2\\x37\\x74\\x76\\x68\\x38\\xb8\\xd6\\x02\\x4f\\x5b\\xb9\\xb0\\x7f\\x3c\\x6b\\x71\\x9b\\x4d\\xe1\\x5b\\x72\\x44\\x80\\x48\\xab\\x70\\xdb\\x3d\\x4b\\xea\\x77\\xba\\x35\\x9b\\x51\\xb1\\xec\\x17\\xdb\\xe8\\x01\\x0a\\xef\\x02\\x44\\xa8\\x07\\x9c\\xa8\\xb9\\xa2\\xa7\\x97\\xf3\\xb1\\xfe\\x04\\x7c\\x8d\\xd5\\xca\\xb7\\xfb\\x48\\x68\\x29\\x23\\x9c\\x4e\\xf6\\xd9\\xa3\\x83\\x70\\xd4\\x88\\xc4\\x7b\\x7c\\x03\\x0e\\x49\\xa5\\x50\\x0c\\x9a\\xbb\\x39\\xa9\\xa5\\xab\\xfe\\x72\\xe9\\x18\\xb7\\x63\\x84\\xec\\xaa\\xfe\\x16\\x27\\x26\\x6c\\xd1\\x4e\\x69\\x6c\\x09\\xd2\\x51\\x2e\\x31\\x25\\x82\\xa8\\xa9\\x11\\xe7\\xb7\\xbf\\xa0\\x4c\\x21\\x81\\x9a\\xf6\\x87\\xf0\\x4c\\x5e\\x0c\\xbe\\x9a\\x2c\\xe2\\x4d\\x4d\\x3f\\xd1\\x21\\x90\\xb2\\x53\\xda\\xbc\\x12\\xc6\\x3c\\xab\\xfa\\x94\"},\n{{0x53,0x11,0xf3,0xc9,0x61,0x01,0xcb,0x8b,0x7a,0xbc,0x62,0x2b,0xb9,0x32,0x6b,0x8f,0x51,0x3c,0x2b,0x16,0xd2,0x94,0xdf,0x79,0x7f,0x56,0xdf,0xd8,0x20,0x3d,0xda,0x27,},{0x23,0x0b,0x70,0x02,0xf5,0x7c,0x79,0xae,0x2e,0x6b,0xfd,0xb8,0xdf,0x30,0xdb,0x3e,0x90,0x07,0x56,0xb5,0x4a,0xf3,0x96,0x8c,0x67,0x0e,0xe2,0xf3,0x2b,0xb1,0x1e,0x0a,},{0x3c,0xbb,0xb2,0x60,0x88,0x70,0xde,0xa1,0xef,0xee,0xbb,0x3f,0xbf,0x68,0x1e,0x27,0x70,0x5c,0x35,0xe4,0xdd,0xee,0xa8,0x6c,0x1b,0x34,0x2a,0x77,0xdc,0x29,0x6b,0x49,0x84,0x19,0x80,0x8e,0xac,0xbc,0x78,0x85,0x56,0x11,0xff,0xbc,0x92,0x65,0xa7,0x47,0x98,0xe5,0x18,0x27,0xe6,0xe5,0xd8,0x11,0x81,0x6d,0x3c,0xa2,0x1e,0x8b,0x9c,0x06,},\"\\x61\\xb1\\x5b\\xe3\\x7c\\x4e\\xb3\\x97\\xd9\\xe7\\x7e\\x00\\x15\\x1a\\x28\\xed\\x3e\\x86\\xd5\\x0a\\x95\\x52\\xbb\\x48\\x50\\xb6\\x21\\x76\\x3f\\x01\\x2e\\x7e\\x77\\xbb\\x5d\\xb8\\xf3\\xdf\\x7d\\xcf\\x76\\x9f\\x2d\\x1d\\x46\\xd8\\xd6\\x0b\\xae\\x40\\xc8\\xca\\x6e\\x25\\xc6\\x41\\x0b\\x60\\x07\\x8a\\x93\\xfd\\x05\\x90\\x21\\x14\\xbd\\x91\\x04\\x5c\\x06\\x19\\x2c\\x70\\xc4\\x2c\\x9f\\x41\\xf8\\x16\\x1c\\xa4\\x65\\x64\\xeb\\xc2\\x1a\\x4b\\xdd\\x81\\x90\\xeb\\xa2\\xae\\xb3\\x09\\x82\\x30\\x72\\xec\\x2c\\x02\\x00\\xce\\x64\\x98\\xf9\\xd7\\x2b\\x37\\xb3\\xfb\\x46\\x67\\x74\\x32\\x6d\\xf3\\x7a\\xd8\\x80\\xd8\\xed\\xdb\\x32\\xaf\\x67\\x3e\\x45\\xd8\\x8e\\xec\\x49\\xb1\\x57\\x7b\\x43\\xb8\\x63\\x91\\x11\\xc2\\xe0\\xb9\\x41\\x87\\xd2\\xd4\\xe0\\x17\\x3c\\x00\\x0f\\x4c\\x37\\xbe\\x84\\x5d\\x68\\x81\\x0b\\x78\\x89\\xff\\x2a\\x04\\x9f\\x3f\\x9f\\x24\\x5e\\xc7\\x0f\\x21\\xde\\xf9\\x77\\x80\\xb6\\x11\\x40\\x0a\\x83\\xc3\\x1a\\x79\\xd9\\x3a\\x8e\\x98\\xb6\\x08\\xfd\\xcf\\x24\\x88\\xb0\\x68\\xfe\\x1a\\xe4\\x21\\x72\\x93\\xa9\\x36\\x7b\\xb7\\x34\\xb5\\xbc\\x7b\\xd8\\x81\\x9b\\x37\\x7f\\x09\\x0b\\x4f\\x8f\\xdb\\xff\\x50\\x79\\x9c\\x76\\x88\\x0d\\x19\\x13\\x35\\x80\\xe1\\xdd\\xfc\\x2b\\x9b\\xaa\\xdd\\xba\\xb3\\x4f\\xc6\\xfd\\xc0\\x78\\x01\\x4b\\xd1\\xff\\x73\\x9d\\xaa\\xfe\\x54\\x76\\xf3\\xf7\\x9d\\x4d\\xbe\\xc2\\x16\\xfa\\x76\\x80\\xee\\x8e\\x84\\x00\\x2d\\xcb\\x9d\\xdb\\xc7\\xfc\\x1e\\x1c\\x8e\\xf4\\xf1\\xb2\\xa2\\x08\\x1b\\x92\\x82\\x24\\x3d\\xa6\\x15\\x3c\\x1f\\xce\\x09\\x05\\xcf\\x35\\xf8\\x3a\\x68\\x4c\\x01\\xb0\\x45\\x57\\xec\\x84\\xf7\\xe9\\xa9\\x4f\\xc2\\x88\\x2e\\x2f\\xf1\\x9f\\xea\\x21\\xd2\\xce\\x61\\x67\\x86\\x1c\\xe0\\x1d\\xf8\\xb8\\xd3\\xc3\\xe8\\xd2\\x55\\x61\\x0b\\x7a\\xf2\\x59\\x6c\\xd5\\xcf\\x00\\x16\\x73\\x49\\x42\\xcc\\x71\\x4c\\x27\\x2c\\x05\\xfd\\xa9\\xd3\\x47\\x23\\x62\\x66\\x46\\xa4\\x61\\x30\\x18\\x2c\\xeb\\xcf\\x17\\x9e\\xc0\\x0a\\x6a\\x17\\x3b\\xd8\\x57\\x7f\\xa8\\x45\\xc4\\x4d\\x19\\xc6\\x99\\x79\\x44\\x75\\x5f\\x2b\\x4e\\x46\\x85\\x63\\xa7\\x5e\\x90\\x16\\x52\\x3b\\x87\\xdd\\xac\\x3e\\xee\\x21\\xbc\\xbc\\xa0\\x8f\\xcc\\x29\\x54\\x6a\\x43\\xcb\\xe0\\xd8\\xd1\\x0a\\x0e\\x8d\\xdc\\xba\\x17\\x2d\\x1d\\xed\\x15\\x03\\x78\\xe1\\x8b\\x36\\x8c\\x77\\x63\\x91\\x3e\\x4b\\x40\\x70\\x12\\xfd\\x76\\xa8\\x72\\xd2\\xcb\\x04\\x93\\x0b\\x8e\\x22\\xb3\\x08\\x24\\x3d\\x4c\\xc2\\x78\\xfd\\xf2\\xe1\\xf9\\x40\\xae\\x89\\xac\\x89\\x1b\\x9e\\x06\\x61\\xae\\xe5\\x53\\x93\\x7b\\xf3\\x50\\xb4\\x07\\x07\\x0a\\x1b\\xdf\\xc4\\xf7\\xa3\\x78\\x7e\\xf3\\x99\\xd2\\xca\\xf4\\xec\\x74\\x43\\x9c\\x58\\x73\\x76\\xc7\\x7b\\xe0\\xc3\\xde\\x53\\x9d\\x3a\\xc2\\x60\\x89\\x76\\x5b\\x9b\\xe1\\x0b\\x90\\x38\\x69\\x46\\x36\\xe2\\x62\\xd7\\xba\\xa0\\xb3\\xa8\\x94\\x1a\\x20\\x15\\x96\\x76\\x39\\xf6\\x04\\x4c\\x67\\xe5\\x9b\\xc8\\x1c\\xf2\\xfb\\xa7\\x04\\xac\\x0d\\xf4\\x8d\\xa6\\x03\\x74\\x05\\xa8\\xe8\\xb8\\xa7\\xce\\x3c\\x58\\xef\\x38\\xa8\\x83\\x53\\x8b\\x24\\x7f\\xfe\\x18\\x09\\x7a\\xf0\\x95\\x24\\x2b\\x05\\x8b\\xdd\\x1e\\x3e\\x24\\x5e\\xec\\xe0\\xa7\\x1b\\x75\\xb9\\x7d\\x52\\xf2\\x0d\\x6d\\x51\\xbb\\x97\\x66\\xb0\\xda\\x0f\\xc0\\x9c\\x8a\\xc2\\xa3\\x0f\\xb6\\xe7\\xb3\\x2e\\xe0\\x6d\\xad\\xf4\\x6d\\x73\\x59\\xcc\\x06\\x6a\\xa9\\x47\\x85\\xd8\\xa8\\x82\\xff\\x09\\x7d\\x78\\xa8\\x6b\\xe2\\xd4\\x56\\x00\\xdd\\x3d\\x30\\x60\\x12\\x5f\\x01\\xc0\\x63\\xe4\\x88\\xd5\\xc3\\xef\\xee\\x1b\\xca\\x1e\\x58\\x51\\x64\\x55\\xff\\xca\\xec\\x1b\\x81\\xef\\x43\\x38\\x76\\xbf\\x09\\xff\\xa5\\x1d\\x6f\\x50\\x18\\x58\\x52\\x24\\x57\\x9c\\xb6\\x7b\\x56\\xce\\x1c\\x21\\x6e\\xc0\\xa8\\x83\\xe0\\x6c\\x8e\\x15\\x63\\x42\\x1e\\xa7\\x2b\\x0c\\x10\\xd4\\xbb\\x31\\xe4\\x91\\xc2\\xae\\x2f\\xe8\\x13\\x9f\\x24\\x9e\\xc9\\x27\\xd8\\x06\\xba\\x08\\xdb\\x52\\xb1\\xb5\\x06\\x66\\x90\\x47\\xf0\\xc1\\x16\\xff\\x37\\xac\\x5b\\xa6\\xcd\\xb1\\xea\\xaf\\x33\\xfd\\xad\\xb0\\x70\\x5c\\x79\\x9d\\x35\\xac\\x6d\\x9c\\x80\\xda\\x90\\xc1\\x43\\x8b\\x58\\x5f\\xfd\\x59\\x35\\x0a\\x26\\x86\\xb1\\xec\\x35\\x16\\x6c\\xb9\\xb6\\x9a\\xd0\\xf5\\x65\\x86\\xaa\\x03\\x27\\x4d\\x78\\x2e\\x3f\\x85\\x8d\\xb6\\x4a\\xdf\\xbf\\x04\\xd5\\x22\\x8a\\x7b\\x1c\\x4a\\x20\\x48\\xbb\\xcd\\xb9\\x41\\x15\\x3a\\x43\\x6d\\x74\\x2c\\x38\\xb5\\x8b\\x4d\\x7d\\x13\\xc9\\xf1\\xd6\\x0e\\x15\\x2a\\xa2\\x79\\x23\\x49\\xa3\\xd9\\x4e\\x7e\\x6b\\x11\\x04\\xaa\\x1b\\x87\\x09\\x98\\xc1\\x8d\\xd7\\x06\\x56\\x54\\xa8\\x52\\x81\\xbb\\x6f\\x02\\x7f\\xaa\\xd5\\x56\\xb1\\xf5\\x32\\xe7\\xa1\\xe2\\x2d\\x56\\x40\\x69\\x28\\x95\\x87\\xa0\\xef\\xc9\\xc1\\x58\\x5d\\x13\\x5f\\x31\\x23\\x3c\\x41\\xf4\\x40\\x46\\x6e\\x71\\xfe\\x90\\x12\\xe5\\xf9\\xa0\\xd7\\x4a\\x72\\x82\\xee\\x39\\x2f\\xb0\\x16\\x5d\\xb7\\x9f\\xf1\\xd3\\x17\\x6e\\xd0\\x8a\\xfe\\x1d\\xaa\\x66\\xcf\\xbf\\x43\\x05\\xae\\x16\\xac\\x17\\x92\\x33\\x43\\x99\\xf7\\x1b\\x19\\x17\\xdd\\xec\\x27\\x0a\\xcf\\xf6\\x65\\xea\\x05\\xd1\\x84\\xc2\\xc5\\xcd\\x2c\\xcd\\x90\\x2b\\x22\\xf9\\xb7\\x19\\x5e\\x66\\xa6\\x55\\x56\\xca\\x88\\x4b\\xa6\\xf5\\xda\\x04\\xdc\\xd4\\x61\\x7f\\x33\\xdc\\x2b\\x44\\xa0\\xea\\x74\\x2a\\xeb\\x2b\\x93\\xf3\\xa4\\x1d\\xf7\\x95\\x7a\\x02\\x67\\x97\\xa5\\x85\\xce\\xee\\x81\\x4b\\x19\\x75\\xf5\\x23\\xd2\\xdb\\x5d\\xbb\\x9b\\xe0\\xca\\x64\\x9d\\x1d\\x45\\xdc\\xfd\"},\n{{0xd2,0x90,0xff,0xd9,0x33,0x95,0xbd,0x5f,0xc5,0x87,0xd1,0xab,0x51,0x18,0x66,0xe7,0x2b,0x37,0x1a,0x17,0x35,0x73,0x2d,0x9d,0x5c,0x6a,0x18,0xdd,0x46,0x5e,0x93,0x63,},{0xfd,0x4a,0xad,0x73,0xb0,0x32,0x46,0x1c,0xa0,0xaa,0xe8,0x71,0xca,0x70,0x16,0x38,0x3b,0x2b,0xe0,0x16,0x90,0x53,0xfd,0xbf,0x6c,0x59,0x14,0xfd,0xd6,0xdd,0x6f,0x92,},{0x21,0x70,0x4d,0x5e,0x62,0x6d,0xcf,0x6a,0x9d,0xcd,0xef,0x93,0x54,0x29,0xeb,0x7f,0xb5,0xb2,0x57,0xee,0xcd,0x7b,0xf7,0x4a,0xcb,0x0c,0xd3,0x0e,0xcf,0xcf,0x60,0x8d,0x0c,0x5b,0x63,0x3a,0x4a,0x8a,0x9b,0xa2,0xcc,0x82,0xa2,0x1e,0x03,0x35,0x5e,0x01,0xd8,0x5d,0xae,0x7e,0xca,0xc8,0x89,0x6d,0xc1,0x5d,0xae,0x04,0x85,0x70,0x71,0x04,},\"\\xeb\\xd9\\x00\\xbc\\x91\\x0c\\x5e\\xcc\\x4d\\x97\\xda\\xf7\\xcb\\x5e\\xbb\\x54\\x91\\x50\\x0b\\x7a\\xd1\\x16\\xe3\\x06\\x60\\x95\\x07\\x09\\xd8\\x08\\x4b\\xb6\\x43\\x4c\\x5b\\xea\\x4a\\x8c\\xcc\\x1e\\xd5\\xa8\\x01\\xbe\\xbb\\x1a\\x11\\x78\\x78\\xc0\\x37\\x47\\x00\\x3e\\x14\\x8e\\xd9\\x14\\x34\\x83\\x2e\\x89\\x66\\x24\\x1a\\x7f\\xff\\x22\\xfe\\x1d\\x6d\\x8c\\x3c\\x3d\\xdd\\x72\\x15\\xa1\\xef\\xaf\\x4b\\x07\\xaf\\xee\\x1b\\x25\\x67\\x3a\\x14\\x39\\xea\\xac\\x32\\x4e\\x89\\x5d\\x4b\\xe8\\x39\\xe9\\x76\\xc0\\x3a\\xc0\\x01\\x25\\x48\\x76\\x88\\x8c\\xca\\xaf\\x39\\x12\\x72\\x7a\\x60\\x10\\x6a\\x87\\xbe\\x69\\x24\\x7c\\x9e\\x43\\x8c\\x31\\xfc\\xa8\\xd9\\xc6\\x1b\\xae\\x36\\x8c\\x83\\xe4\\x09\\x01\\xa9\\x97\\x00\\xdf\\xf8\\x39\\xb5\\x13\\xba\\x8d\\xc4\\x2d\\x93\\xce\\x09\\x87\\xa2\\x33\\x34\\x70\\xa9\\xf9\\x83\\x31\\x3f\\x91\\x98\\x86\\x59\\xda\\x54\\x03\\x9e\\x49\\x9c\\xd1\\xaf\\x2b\\x8f\\xa0\\xeb\\xe7\\x50\\xe2\\x4d\\x55\\xc2\\xa5\\xbd\\x1a\\xde\\x3f\\x68\\x00\\x92\\x54\\x2b\\xd1\\xbe\\x0b\\x97\\x35\\xba\\x39\\x3a\\xd5\\x69\\x7d\\x24\\x1e\\x8e\\x8b\\x28\\x64\\x6d\\xb2\\x7d\\x2f\\xb5\\xa9\\x40\\xe8\\xfa\\xea\\xf0\\xb6\\xc9\\xef\\xda\\x88\\x61\\x5d\\xec\\x89\\x1c\\xe7\\x32\\x93\\x08\\x13\\xbf\\xbb\\xd0\\xbc\\x5f\\x82\\x10\\xab\\xe8\\x43\\xbe\\xb5\\xe4\\xf0\\x28\\xf4\\x9b\\xea\\x34\\xf1\\xe5\\xb0\\x9e\\xac\\x4c\\x66\\x62\\xc7\\x4f\\xba\\x39\\xde\\x4a\\x96\\x02\\xa9\\x69\\x4a\\x85\\xc7\\xc1\\x37\\x5f\\xda\\xdf\\xda\\x6a\\x19\\x57\\xfc\\x5b\\x59\\x87\\xa6\\x87\\xb0\\x39\\x95\\xe5\\x16\\x97\\xa1\\xab\\x5b\\xb6\\xcb\\x11\\xb6\\x63\\xc1\\x37\\x2f\\xad\\xe4\\xc0\\xac\\xa8\\xfb\\xeb\\xb4\\xeb\\x54\\xce\\x7c\\xe3\\x6c\\x69\\x04\\xea\\xf6\\xea\\xb2\\xf3\\x4f\\xac\\xd8\\xc7\\x68\\xc8\\xd3\\x6d\\xa2\\x39\\x7b\\x1a\\x02\\x73\\x5a\\xea\\x72\\xcf\\xaa\\xd0\\x39\\x34\\x10\\xdb\\x52\\x7a\\x8a\\xb2\\x36\\xd4\\xcd\\xab\\xdc\\x88\\x8f\\xac\\x6f\\x18\\x21\\x48\\xb1\\x32\\x61\\x44\\x25\\xd3\\x90\\xff\\x03\\x6e\\x54\\x85\\x5e\\x42\\x03\\xc5\\x12\\x03\\xc1\\xf4\\x3e\\x37\\xbb\\xf6\\xb9\\xbf\\x27\\xf5\\xb7\\xe7\\xc6\\x65\\x15\\x14\\x65\\x40\\x1a\\xc3\\x2c\\xbe\\x9e\\x33\\x50\\x53\\x5e\\xdf\\x48\\xa7\\xbc\\x36\\x03\\xe2\\x23\\x2e\\x93\\x8f\\x9a\\x81\\x5a\\xc4\\xd1\\xde\\xec\\x99\\x1e\\xf9\\x62\\x09\\x48\\x44\\x1f\\x7a\\x2f\\x4a\\x46\\xe2\\xc4\\x00\\xab\\x91\\x4c\\x4b\\xe5\\x1d\\xca\\xad\\x8e\\xd8\\x23\\x9c\\xbb\\xe9\\x77\\xa9\\xf0\\x9c\\x02\\x69\\x83\\x19\\xd9\\xfe\\x2a\\x8c\\x6e\\xb6\\x0b\\x79\\x9f\\x29\\xae\\x76\\x59\\x97\\x0d\\x2e\\xbd\\xff\\x3c\\x6c\\xf7\\x09\\xbb\\xf6\\xf4\\xbb\\x55\\xb9\\xdf\\x4f\\x61\\xa2\\x41\\xde\\xc1\\x44\\xb5\\x99\\x3f\\x08\\x7e\\x78\\x4b\\x97\\xbe\\x1e\\x53\\x60\\x8c\\x2e\\x81\\x7c\\xe3\\xd9\\xaa\\xf9\\x14\\xe6\\xb7\\x23\\xf5\\xb4\\xaf\\xff\\xd2\\xa6\\xb9\\xfe\\x9d\\x2d\\x73\\x91\\x5c\\x7a\\xd1\\xff\\xb1\\x3e\\xfc\\xb7\\x3c\\x56\\x23\\x81\\x95\\x64\\x52\\x03\\x98\\x4c\\x99\\xaa\\xfd\\x02\\x35\\xf7\\x3b\\x3f\\x88\\x2e\\x07\\x39\\x39\\xbf\\x78\\x66\\x57\\x28\\x01\\x38\\xdb\\x05\\xb8\\x6f\\xcc\\x94\\x60\\xb3\\x85\\xef\\x45\\x59\\x20\\x4e\\xcd\\x81\\xe2\\xf1\\x2f\\x5f\\x06\\x2a\\xa4\\x48\\xdc\\xcc\\x82\\xea\\x8d\\x89\\x46\\x6d\\xd1\\xbe\\x46\\xf8\\x2c\\x4f\\x87\\xbf\\x0d\\xb2\\xb8\\x78\\xac\\xbb\\x0d\\x91\\x12\\xc8\\xdb\\x6f\\x51\\xd3\\x5f\\x6d\\x42\\xf7\\x49\\x85\\x6b\\x99\\xe5\\x50\\xb6\\xc4\\x54\\xe9\\xe8\\xbe\\x4d\\xa1\\x75\\xf0\\xb5\\xe8\\x6b\\xe6\\x6c\\x97\\x9f\\xd8\\x78\\x23\\x7e\\x57\\xf6\\x91\\xf0\\xd2\\xac\\xd0\\x28\\xfb\\xff\\xa5\\xb0\\x66\\x87\\x75\\x03\\x4d\\xb1\\xf2\\x1d\\xdb\\xe7\\x11\\x4e\\xe3\\xdc\\x0b\\x44\\xda\\xca\\x64\\xc5\\xa0\\x3a\\x2f\\xee\\xae\\xab\\xeb\\x70\\x63\\xbf\\xcc\\xcc\\x55\\x9b\\xaf\\x27\\xf1\\xcc\\xb2\\x20\\x2f\\xa4\\xd1\\xb2\\xbf\\x44\\xc0\\x4b\\x2c\\x2f\\x81\\xf9\\x4e\\x28\\x1b\\x1a\\x5a\\xdc\\x85\\x0d\\xa1\\xb9\\x47\\x9f\\xca\\xbd\\xda\\xde\\xa5\\x6a\\x11\\x5b\\xb5\\xf0\\x6c\\xc0\\x16\\xf1\\x41\\xc0\\xfc\\xb5\\xe8\\x3a\\xb2\\x48\\xea\\xec\\x90\\x15\\x8d\\x8b\\xe6\\x47\\xaf\\xf1\\x2e\\x7e\\xeb\\x5e\\x57\\xdb\\xcc\\x29\\x3c\\xb3\\xb6\\xaa\\xcb\\x55\\x23\\x6d\\x4a\\x83\\x9a\\x06\\x20\\xf4\\x76\\x23\\x87\\xdd\\x17\\x14\\xdf\\x5c\\x13\\x5e\\x3d\\x9d\\x68\\x24\\xf9\\x3b\\x7c\\x90\\xd3\\xae\\x38\\xc5\\x18\\xd6\\x07\\x12\\x0c\\x83\\x95\\x70\\x41\\x3b\\x46\\xb8\\xcc\\xd7\\x37\\x04\\x92\\xd8\\xae\\x5c\\x60\\x9e\\x00\\xcf\\x82\\x51\\xe2\\xe7\\xdf\\x81\\xe5\\xb4\\xf9\\xc1\\x6a\\x5a\\x53\\x9f\\x0a\\xfc\\xce\\x41\\xbb\\x43\\x62\\xe5\\xea\\xa5\\xf9\\x40\\xa1\\x70\\x6f\\x4a\\xfb\\x6b\\x14\\x43\\x2c\\x81\\xd4\\xba\\x1a\\x33\\xd3\\x22\\xdb\\xf1\\x06\\x45\\xab\\x63\\x73\\x7e\\xad\\xc8\\x6f\\xe6\\xe0\\x97\\x6f\\x76\\x33\\x97\\xfb\\x89\\x86\\x37\\x59\\x5d\\xfd\\x36\\x93\\x47\\x92\\xd7\\x79\\xe2\\x4c\\x2a\\x3f\\x0b\\xac\\xf5\\x3e\\x04\\x73\\xc5\\xfd\\xa9\\xc6\\x12\\x84\\xe4\\x41\\x9b\\xdc\\x0e\\xef\\x5d\\x22\\xf4\\xd9\\xbf\\x42\\xe8\\xc0\\x49\\x33\\xbb\\x93\\xb5\\x3c\\x29\\x5d\\x7a\\xc9\\x39\\x5a\\xbb\\x6d\\xcb\\xd7\\x42\\xb1\\xe1\\xbc\\x3b\\x0e\\xa4\\x43\\x4e\\xa2\\x1b\\x8e\\xca\\x9a\\xe6\\x82\\xd3\\x31\\x5a\\x41\\xe9\\xc3\\xc3\\x37\\x18\\x40\\x76\\x1d\\xc5\\x9c\\xac\\x45\\xda\\x7e\\x38\\x13\\xe2\\x87\\x88\\xdc\\x89\\xde\\x35\\x5b\\x5a\\xee\\x08\\x80\\x90\\xa3\\x8d\\xd3\\x9d\\x83\\xe5\\xe4\"},\n{{0xd7,0xfd,0x73,0xd1,0xd2,0x29,0xa6,0x58,0x94,0x42,0x0e,0x4b,0xa7,0x34,0x27,0x0d,0x5a,0x20,0x75,0x83,0x64,0xde,0x89,0x7d,0x85,0x55,0xe2,0x41,0x97,0x45,0x3c,0x19,},{0x3c,0x22,0x77,0x2a,0xec,0x0a,0x0c,0x15,0x59,0x07,0x7f,0x2c,0xfd,0x1f,0x24,0x65,0xd4,0xb4,0x84,0x95,0xc5,0xd0,0x5f,0x1f,0x83,0x7c,0x31,0x84,0x5f,0x34,0xca,0xd1,},{0x40,0x0c,0x35,0x05,0xf1,0xdf,0xa8,0x0d,0xf4,0xb2,0x6d,0xb2,0x4c,0x02,0x7e,0xb8,0x19,0x77,0xf0,0xfb,0x9b,0x5a,0xca,0x52,0x4a,0xd5,0x12,0x00,0xf4,0xbf,0xb1,0x33,0xdb,0x83,0x48,0x23,0x31,0x41,0x95,0xf4,0xed,0xc2,0x92,0xd5,0xf5,0x30,0xd0,0x85,0x56,0xe7,0x80,0x9c,0xaf,0x23,0x39,0x76,0x8a,0xa3,0x80,0x29,0xfd,0xbc,0x28,0x0f,},\"\\xc9\\x22\\x58\\x59\\xd5\\x55\\xbc\\x42\\x01\\x1a\\xf1\\xb4\\xf1\\x49\\x98\\xe6\\xe9\\xb0\\xa6\\x5e\\x21\\x72\\x71\\x3e\\x96\\x83\\x80\\xfb\\x6c\\xee\\xdd\\xa2\\x2e\\x02\\x2c\\x51\\x30\\x30\\x31\\xd9\\x93\\x1c\\xce\\xf2\\xf7\\xbc\\x70\\x5c\\x9e\\x21\\x5c\\x1d\\x08\\x9d\\x48\\x8d\\xad\\xda\\xee\\x15\\x5c\\x93\\x9b\\x62\\x02\\xca\\x53\\xbf\\xc7\\xf6\\xe8\\x8e\\x15\\x29\\xd8\\x2f\\xb4\\x5e\\x02\\xb5\\xd0\\x5a\\x82\\xbb\\xb9\\xdb\\x5f\\x41\\x5c\\x58\\xba\\x8b\\xd5\\x6c\\xff\\xd9\\x22\\x70\\xb2\\x47\\x49\\xe5\\x6d\\x12\\xc9\\x9a\\xe9\\x0c\\x78\\x00\\xf5\\x4f\\x55\\x25\\x4e\\xa4\\x2d\\xa5\\xdc\\xfb\\xe0\\xe1\\xd9\\x89\\xcd\\x2f\\x68\\x97\\xe2\\x32\\xdf\\x04\\x70\\x7b\\x34\\xaf\\x75\\xfa\\x7f\\xec\\x33\\xe5\\x5e\\xd5\\x6a\\xee\\x39\\xc2\\x2b\\x04\\x5b\\xed\\xd1\\x61\\x08\\x3b\\xc5\\x51\\x4c\\x1f\\x81\\xca\\x90\\x7b\\x7c\\x76\\x03\\x17\\xa7\\xfd\\x5a\\x5a\\x02\\xa5\\xd4\\x0e\\x2e\\x82\\x3e\\x24\\xad\\x96\\xae\\xf6\\xda\\x8e\\xa9\\x82\\xb5\\x16\\x1c\\xc3\\x9d\\x84\\xaa\\x2f\\xfd\\x95\\x44\\xc1\\x1b\\x63\\x40\\x37\\xab\\x0a\\x1c\\x8e\\x36\\xac\\x63\\x01\\x9d\\xa1\\xb2\\xd9\\x95\\xcb\\x7b\\xd3\\xd6\\x2f\\xe5\\x74\\xde\\xab\\xcc\\xbd\\x0d\\x3a\\xe7\\xa5\\x6e\\x5b\\xec\\x91\\xe4\\xba\\x3f\\x3d\\xb8\\xbf\\xea\\x88\\xe6\\x7d\\xa6\\x2e\\x88\\x27\\x8a\\x6e\\x3b\\x41\\x8d\\xce\\xea\\x05\\x89\\xf2\\x5f\\x7d\\xd8\\xad\\x19\\xdd\\x84\\x50\\x89\\x41\\x9b\\x47\\x2e\\xfc\\xcc\\x87\\x9c\\x17\\x2b\\x32\\xee\\x4a\\x4d\\xbc\\x2e\\x6c\\x2e\\x86\\x5b\\xb3\\xb8\\xca\\x0a\\xdc\\xb7\\x1f\\xdf\\x89\\xe1\\x97\\x39\\x10\\xef\\x24\\x29\\x15\\xf3\\x3e\\x23\\x6d\\x2f\\x7c\\x8e\\x9f\\x1e\\xe5\\xb0\\x7c\\x6e\\x3c\\x25\\x36\\x0f\\x8c\\xb1\\x46\\x0b\\xe8\\x7d\\xb3\\x1a\\x29\\x1d\\x4d\\xee\\x34\\x95\\x3e\\x75\\xc6\\x75\\xbf\\x18\\x1b\\xb7\\xa0\\xb7\\xb5\\xc1\\xbe\\xfd\\xc8\\x6a\\xda\\x07\\x2a\\x48\\xf6\\xac\\x75\\x5d\\x49\\x9b\\xd6\\x8d\\x62\\x5d\\x85\\x14\\x52\\x5c\\xc3\\xab\\x8f\\x54\\xce\\x15\\xa8\\x71\\x29\\x17\\x78\\xde\\x13\\x05\\xd2\\x21\\x93\\x61\\xaa\\x30\\xe3\\x32\\xa2\\xe0\\x69\\x07\\x7c\\x5c\\x53\\x45\\x75\\x20\\x37\\x9d\\x8b\\x90\\xd2\\x4b\\xd8\\xa3\\xa7\\x70\\x0f\\xf7\\x66\\x23\\x1c\\xb5\\x69\\x7f\\x9a\\xce\\x52\\x1a\\x99\\xe8\\x96\\xda\\x54\\xc4\\x07\\x93\\xbc\\x7c\\x1f\\xb1\\x58\\x4b\\xb1\\xc8\\x61\\x94\\xd2\\xfb\\x7a\\x4b\\x80\\x2f\\x30\\x88\\x5e\\x0e\\xe8\\xaf\\x88\\xd6\\x88\\x6e\\x3a\\x3a\\x4d\\x4c\\x85\\x46\\x49\\xcc\\x01\\xab\\xdf\\x35\\x31\\x9a\\x08\\x56\\xcc\\x65\\xd0\\x92\\xa3\\x86\\xf8\\x86\\x96\\x25\\xcd\\x0a\\xca\\xc0\\x87\\xe9\\x35\\x17\\x90\\xcc\\xb4\\xa8\\x65\\xf6\\x51\\xa8\\x81\\xc3\\xeb\\xf1\\x09\\x07\\x27\\x74\\xf9\\x40\\xf5\\xaa\\x98\\xa2\\xa2\\xaa\\x3d\\xd3\\x66\\x47\\xd0\\xde\\x83\\x00\\x1a\\xa7\\xcd\\xc0\\x31\\xcc\\x4a\\x4d\\x75\\xdc\\x11\\xce\\x55\\x16\\x76\\xa2\\xad\\x43\\xa3\\xf6\\xa1\\x6a\\x4b\\xc5\\xae\\xe8\\x0e\\x53\\x64\\x20\\x60\\x87\\x36\\x4e\\xb8\\xb2\\xb1\\x5f\\xb7\\x05\\x38\\x0a\\x07\\x2d\\x7c\\x8b\\x51\\x99\\x59\\x43\\xaa\\x76\\x2e\\x8d\\xeb\\x4c\\x56\\x8c\\xda\\xa1\\x41\\x1a\\xb6\\x8f\\x28\\x48\\x9e\\x13\\x23\\xbb\\x61\\x56\\xce\\x25\\x00\\xb0\\x6e\\x77\\x93\\xc5\\x10\\xa3\\xde\\x29\\x15\\x08\\x40\\xbf\\xdb\\x0b\\x2b\\x7b\\x21\\xc2\\xbb\\x8a\\x77\\x46\\x16\\x7c\\x92\\x9d\\xd0\\xad\\xad\\x44\\xfe\\xd8\\xf3\\x6e\\x83\\x81\\xb3\\x42\\x08\\x0b\\x2a\\x7d\\x82\\xa3\\xf8\\x1f\\xf7\\x26\\x30\\xcb\\x78\\xdf\\x91\\xf7\\xb6\\x5a\\x44\\xef\\xf6\\xed\\x64\\xd4\\x8a\\xfe\\xd1\\x09\\xdd\\x7a\\x69\\x3a\\x1b\\xa8\\xc3\\x7e\\x00\\x8f\\xcb\\x15\\x7e\\x37\\x29\\x7d\\x32\\xeb\\xa7\\x65\\xa6\\xc7\\x19\\x3e\\x73\\xbd\\x97\\x64\\x79\\x85\\xb1\\x60\\x38\\xc7\\x4a\\x08\\x4a\\x8f\\x25\\x65\\x4c\\xd8\\xcd\\x2c\\xdd\\x27\\xff\\x17\\x33\\x4e\\x06\\xad\\xaa\\x05\\x82\\x64\\x01\\x7a\\x3b\\x2d\\xa7\\x8e\\x57\\x38\\xa2\\x7e\\x35\\x0d\\x88\\x2f\\x5f\\xae\\x19\\x92\\x78\\xd4\\xe5\\x0b\\x8b\\xad\\xf5\\x7c\\x21\\x41\\xdf\\xdc\\x3c\\xff\\x99\\xdf\\x5d\\xe8\\x6f\\xec\\x29\\x3c\\x76\\xcb\\x94\\xb6\\xb1\\x9b\\xa3\\x03\\x4e\\x46\\x0f\\x84\\xc2\\x80\\xa2\\xe6\\x41\\x2f\\xab\\x56\\x98\\xce\\x89\\x02\\x07\\xca\\xba\\xbc\\xa0\\xa9\\x5b\\x5a\\xd5\\x33\\xce\\x11\\x4b\\xf7\\x1a\\x40\\x4a\\x87\\x59\\x0d\\x35\\xfa\\x7c\\xed\\xba\\x43\\x13\\x1c\\x4e\\xe9\\x23\\x44\\x83\\x9f\\x25\\xcb\\xfa\\xeb\\x12\\xae\\xeb\\xc8\\x04\\x08\\x93\\x95\\x1a\\x34\\x6b\\xd2\\x8f\\xdd\\x16\\x7b\\xd2\\x0f\\x71\\xa1\\xe5\\x9f\\xb6\\x0d\\x55\\xe1\\xc5\\x67\\xf4\\x78\\xf0\\x27\\xcf\\x67\\x9a\\x37\\xd1\\xd9\\xdb\\x86\\x7e\\x17\\xbf\\xdd\\x60\\xb3\\x47\\xd8\\x9d\\x32\\x26\\x39\\xd3\\x15\\xbb\\x7a\\x2c\\x91\\x34\\xf0\\x0e\\xa0\\x3a\\x36\\x7f\\x30\\x5e\\xa4\\xd6\\x0d\\xc9\\xd5\\x67\\xcf\\x92\\x48\\x51\\xe4\\x69\\xea\\x95\\x4e\\xd3\\xea\\x63\\xea\\x86\\x06\\xf7\\x9f\\x07\\x73\\x39\\xbf\\xa2\\xb5\\x1a\\xe4\\x9b\\xaa\\x0f\\xb2\\x53\\x77\\x82\\x1d\\x7c\\x11\\xef\\x9a\\xd4\\xbb\\x4c\\x0f\\xe4\\x89\\xac\\xba\\xb0\\xef\\x00\\x0d\\x61\\x8c\\x7a\\xf5\\xef\\xd2\\x05\\xd6\\x85\\x99\\xfc\\xbd\\xd9\\x5e\\x28\\xf8\\x36\\xe0\\x91\\x6f\\x9f\\xf5\\x48\\xd0\\xba\\x17\\xda\\x62\\x53\\x6e\\x74\\x64\\x68\\x01\\xee\\xb6\\x12\\x2b\\xa3\\x2c\\x41\\x07\\x3a\\xe0\\x4e\\x42\\xc6\\xc1\\xd5\\xd8\\xd2\\x29\\x76\\xa5\\x62\\x26\\xdd\\xf4\\xb6\\xac\\x95\\x45\\x5f\\xb5\\x30\\x99\\xf2\\x02\\x15\\xb2\\xeb\\xc9\\x07\"},\n{{0xfd,0xa7,0xcb,0x08,0x40,0x16,0xba,0x51,0x3c,0x7c,0x4f,0x8f,0x71,0x80,0x48,0x0b,0xb1,0x81,0xe9,0x56,0x95,0xea,0x68,0x73,0x7f,0xa3,0x4a,0x40,0xec,0xbd,0xf3,0xef,},{0xa2,0xde,0x3a,0x0e,0xf9,0x72,0x98,0xfd,0x71,0x61,0x06,0xe2,0xf3,0xf5,0x45,0x13,0x05,0x7a,0x40,0x07,0x2d,0x23,0x4c,0x35,0x18,0x15,0x4c,0x1b,0xd1,0x2d,0xe0,0x37,},{0x33,0x61,0x4b,0x7a,0x94,0xf7,0x5e,0x03,0x65,0x34,0xd7,0x6e,0x30,0x14,0x7e,0xcc,0xdd,0x2a,0x04,0xe0,0x0c,0xd4,0x70,0x4a,0xb6,0xe8,0x07,0xd6,0xa2,0xac,0xc1,0xe1,0xd9,0x63,0xb8,0xee,0xe0,0x81,0x0d,0x41,0x2d,0x9d,0x56,0xe5,0x45,0x56,0x30,0x2b,0x10,0x73,0x0c,0x15,0xab,0xf8,0x9c,0x29,0xa0,0x27,0x30,0x3e,0xa8,0x8a,0xe7,0x01,},\"\\xc2\\x1b\\xb3\\xf8\\xe3\\x7b\\xef\\xa3\\x67\\xc9\\x13\\x67\\x31\\x01\\xba\\x30\\xd3\\xb5\\xc7\\x4b\\xd8\\xbd\\xb0\\x9c\\xd2\\x86\\x40\\x01\\x2d\\xb4\\x11\\x20\\xc2\\xbc\\xc4\\x08\\x5d\\xe2\\xa0\\xf9\\x5c\\x92\\x15\\xdd\\xef\\x8c\\xb5\\xfc\\x8d\\x8b\\x12\\x51\\xb4\\x15\\x27\\xc6\\x7d\\xfa\\xa3\\xf9\\x5b\\xa3\\x57\\x83\\x91\\xea\\x5a\\x66\\x29\\xa7\\x33\\x09\\x5f\\xd0\\xa4\\x3f\\xdb\\xa4\\x0f\\xfe\\x26\\x0f\\xff\\x82\\xac\\xee\\x2e\\xbe\\x98\\x0e\\x9e\\xce\\xcc\\xfe\\x7e\\x10\\xb2\\xed\\x8c\\x2e\\x6b\\x41\\x0d\\x54\\x7a\\x12\\x86\\x57\\x1d\\xf3\\xd7\\x01\\x17\\x4e\\x57\\x9f\\xcf\\x19\\xd3\\xbd\\x80\\x86\\xc0\\x42\\x3f\\x37\\x11\\x77\\x89\\xf3\\x05\\xd9\\x67\\x0a\\xd2\\x8c\\x99\\x67\\x4f\\x52\\xcf\\x64\\x21\\x1a\\x08\\x1d\\x0c\\x6c\\x30\\x96\\xda\\x2c\\x71\\xbf\\x5f\\x57\\x99\\xa7\\x91\\x0e\\x6f\\x38\\x10\\x4a\\x37\\xa6\\x55\\x7c\\x2d\\xae\\xf3\\x40\\x81\\x4a\\x1f\\x83\\x0d\\x59\\x37\\x73\\xc6\\xcf\\x48\\xd8\\x3e\\xa0\\x72\\x94\\xb9\\x4e\\xb0\\x80\\xb8\\x5d\\x69\\x70\\xe2\\x8f\\x40\\x51\\xd5\\x06\\x6d\\xb1\\x0e\\x96\\x19\\x73\\xa6\\x26\\xa8\\x26\\xae\\xaf\\x8a\\x06\\xec\\x0d\\x56\\x6b\\x7e\\x0c\\x4e\\xf6\\x0f\\x0c\\x56\\x78\\xfc\\xbb\\x5b\\x2a\\xc6\\x3f\\x7b\\xed\\x06\\x44\\x8a\\x24\\x7b\\x3d\\x42\\x7b\\x87\\x08\\x6d\\x33\\x57\\x3f\\xb2\\xd7\\x22\\x8c\\x5c\\x34\\xea\\x66\\x40\\xee\\xfa\\x95\\x64\\x48\\x5a\\x79\\x63\\x8e\\x9c\\x97\\xc0\\xaf\\x84\\xcf\\xee\\x7c\\xe4\\xa7\\x39\\x22\\x0c\\x84\\x29\\xe0\\x67\\x14\\x39\\x53\\xd5\\x50\\x66\\x8d\\xad\\xc8\\x4e\\x7b\\xed\\x9a\\xb0\\x70\\xa5\\x94\\x33\\x90\\xc6\\x11\\xd7\\x5b\\x1c\\xb1\\x28\\x73\\xa3\\x7d\\x98\\x50\\x66\\x1a\\x00\\x77\\xbf\\xa9\\xca\\x9b\\x8b\\x26\\x37\\x66\\xc1\\x49\\xff\\x0e\\xe4\\xb4\\xad\\xba\\x25\\xea\\xf7\\xd7\\xf5\\x01\\xf3\\x62\\x45\\x42\\x56\\xbc\\x12\\x69\\x37\\x8e\\xf3\\x35\\x9a\\x8e\\xd6\\xb9\\x60\\xb8\\x66\\x21\\xfa\\x3b\\x61\\x3e\\xb1\\x32\\x12\\x2f\\x49\\xf2\\xeb\\x2c\\xeb\\x68\\x32\\xa3\\x99\\x1e\\x96\\x1c\\xb0\\xe7\\x8b\\x74\\x2e\\xf4\\xd6\\x5e\\x8d\\xe3\\x46\\x96\\x66\\xfe\\xc7\\xc5\\xb8\\x74\\x78\\x95\\x71\\xc5\\xc9\\x9a\\x2c\\x02\\xa0\\x53\\xff\\x7d\\x2f\\xc9\\x00\\x76\\xba\\xfe\\x1f\\x26\\x7f\\xa8\\x1a\\x39\\x90\\xf2\\x7f\\xf1\\x4f\\x03\\x00\\x0a\\xf0\\x0c\\x59\\x28\\x6c\\xb9\\xbb\\x98\\xe2\\x04\\xe9\\x01\\x90\\xae\\x2a\\x50\\xed\\xef\\x04\\x9e\\xa9\\x2a\\x1f\\x78\\x50\\x88\\xf9\\x4a\\xdf\\x65\\x88\\xfb\\x43\\xbb\\x40\\xfb\\xe2\\x32\\x42\\x35\\xcc\\x7e\\x16\\x8b\\x80\\x26\\x4b\\x06\\x9f\\x94\\x4f\\x50\\x36\\x92\\xc9\\x49\\x23\\x4d\\x5b\\x76\\xbc\\xff\\xab\\xe2\\x9f\\xf9\\x06\\x4b\\xd7\\xcb\\xed\\x9e\\x00\\xe5\\xb7\\xfd\\xda\\x43\\x12\\xeb\\x80\\x14\\x65\\xf1\\x27\\xd0\\xca\\x68\\x83\\x2a\\x7f\\x4e\\xd0\\xea\\xed\\x8f\\x55\\x9c\\x16\\x31\\xcd\\x4d\\x34\\xf0\\xdc\\x41\\x4d\\x9f\\xcf\\xe8\\x49\\xa9\\x1e\\x25\\xf3\\xe0\\xff\\x01\\x3a\\x8c\\xff\\xa8\\x06\\xed\\x8e\\x93\\xd0\\x8a\\x1e\\x5a\\x75\\x76\\x82\\xca\\x3d\\x26\\xab\\xc8\\x69\\xc7\\x6f\\x1c\\x79\\x00\\x7d\\x55\\x9d\\xfe\\x67\\xe7\\x8d\\x8a\\xf0\\x19\\x58\\x08\\xb0\\xe7\\x71\\xc7\\x1e\\x64\\xb5\\x71\\x6f\\xb3\\x63\\x09\\xc2\\x50\\x25\\xfa\\xe6\\x41\\x4c\\x28\\xbb\\xdb\\xd4\\xde\\x59\\x7a\\x74\\x99\\x6c\\x9d\\xa9\\x74\\x92\\x0d\\x59\\xe6\\xf4\\xc2\\xed\\xfe\\x11\\x0f\\xf8\\x17\\xfd\\x48\\x0a\\x50\\x80\\x97\\x80\\x48\\x86\\x57\\x12\\x05\\x8c\\x5f\\xe7\\xb5\\x60\\xb1\\x2b\\x67\\xf7\\x37\\xea\\x6e\\x2a\\xf9\\x24\\x2c\\xf0\\x7a\\xd0\\xa8\\xa6\\x79\\xf2\\x64\\x30\\x04\\x6a\\xdc\\x3e\\x70\\x66\\x4c\\xc9\\xc0\\xee\\x5a\\xbc\\xef\\x6d\\x72\\x6b\\x4e\\x04\\x17\\x60\\x48\\xb7\\x95\\xbe\\x12\\x85\\x1b\\xdb\\x74\\x00\\x3a\\x13\\x20\\x41\\x19\\xb8\\x68\\x64\\xd6\\x53\\x5b\\xa0\\x95\\x04\\x0a\\x85\\xd9\\x78\\x1c\\xf4\\xf3\\x48\\x0a\\x30\\x4e\\x22\\x7f\\x78\\x7a\\xd5\\x38\\xe6\\x8f\\x4b\\xab\\x01\\x41\\x79\\xe3\\x0d\\x3f\\xde\\xf9\\xef\\xf1\\x1b\\xcf\\x47\\x1f\\xa3\\xa0\\xbc\\x74\\xb5\\x57\\x6f\\x30\\x2d\\x3a\\x6b\\x49\\x9f\\x11\\xf2\\xef\\x32\\x6a\\xc0\\x26\\xc9\\x8d\\xb1\\x0e\\x27\\x41\\x41\\x3f\\x32\\x22\\x28\\xb3\\xcf\\xf0\\xf3\\x37\\xba\\x2f\\x29\\x4c\\x78\\xef\\x73\\xf0\\xe8\\x77\\x87\\x8f\\x8f\\xc7\\xff\\x6d\\x10\\xbc\\xe6\\x6a\\xd6\\x28\\x43\\x79\\xb8\\x0c\\xa8\\x93\\x27\\xd4\\xdb\\x0b\\xf1\\x4e\\x6d\\x8f\\x01\\xb2\\x2a\\xb2\\x02\\xb7\\x16\\xcc\\x07\\xe3\\xc8\\x86\\x6d\\x16\\x8a\\x50\\x94\\xba\\xc5\\xa4\\x95\\xe7\\x38\\x68\\xee\\xdc\\x27\\x22\\x2e\\x64\\x44\\xf8\\x3b\\xcf\\x65\\xac\\xdc\\x3e\\xc8\\x91\\x20\\xbb\\x50\\xe8\\xab\\xfc\\x28\\xb7\\x8e\\x6d\\x98\\x0c\\x77\\x5f\\x48\\x49\\xa0\\xe8\\xca\\xda\\x80\\x24\\x0b\\xca\\x24\\x5e\\x39\\x96\\x6e\\x89\\xa0\\x34\\x4d\\xf8\\x36\\x3a\\x7d\\xcc\\x81\\xb2\\x01\\xce\\x9c\\x75\\x3a\\xd5\\x44\\xe1\\x12\\x4e\\x21\\x02\\x0d\\x4c\\x62\\xde\\xda\\x9e\\xd9\\xb9\\xd1\\xf2\\xfb\\x7c\\x54\\xca\\x7a\\xb0\\x9f\\x38\\x3b\\xef\\x48\\xcf\\xc6\\x84\\x8c\\x27\\x13\\x02\\xa1\\x0f\\xa6\\x87\\xf5\\x6e\\x00\\xe0\\xa7\\xd0\\x93\\xc9\\x27\\xb4\\xfd\\xd8\\xf1\\xbe\\xdf\\x62\\x88\\xa0\\xe3\\x02\\x84\\x8a\\x80\\x12\\xf1\\x27\\xa7\\x9d\\x2d\\x30\\xa0\\x6c\\xe1\\x7d\\x94\\xaa\\x6f\\x7f\\x8a\\x1e\\x6e\\xb9\\xd0\\x68\\x1c\\x37\\x74\\xf6\\x14\\xcc\\x6d\\xbc\\xb2\\xa8\\x13\\xf9\\x25\\xc6\\x30\\x6a\\x63\\x05\\x72\\xa8\\x3e\\xc1\\x09\\xd5\\xf5\\x33\\xc0\\x58\\x4c\\xb4\\x21\\xd9\\x19\"},\n{{0xa1,0xac,0x48,0xaa,0x5f,0xfa,0x3d,0x80,0x08,0x19,0xd0,0x3b,0x7f,0x62,0xba,0xbf,0x29,0x1f,0x20,0x90,0x4c,0x11,0xa6,0x40,0x0e,0x4f,0x45,0x20,0x5f,0x10,0x3e,0x38,},{0x08,0x54,0xe0,0x34,0x0f,0x81,0x49,0x85,0xfb,0x12,0x2b,0x78,0x72,0x94,0x79,0xe3,0xfd,0xe8,0x55,0xc2,0x11,0xca,0xde,0xae,0x56,0xf0,0xd4,0xdc,0x08,0x28,0xd5,0xfa,},{0xc5,0x7e,0x3c,0x09,0x1e,0xd2,0x4e,0x5e,0x84,0x66,0x5b,0xd9,0xbb,0x10,0x2d,0xb4,0x97,0x97,0xdf,0x90,0x08,0xf0,0x55,0x57,0xfa,0x0d,0x5a,0xd7,0xa2,0x95,0xe5,0xe4,0xd2,0xa4,0x71,0x6b,0x17,0xf8,0xc9,0x1c,0xb1,0x2f,0x5a,0xbf,0xb1,0xaf,0x02,0x7f,0xb0,0x41,0x11,0x99,0xac,0xc5,0xd2,0x85,0xd8,0x42,0xa4,0xb6,0x5b,0xde,0x49,0x02,},\"\\xd6\\xf1\\x24\\xed\\x75\\x20\\x21\\xc1\\x09\\x26\\x97\\x2a\\x0c\\x26\\xf3\\xb1\\x83\\x8b\\x3c\\x7a\\xf2\\x47\\xc1\\x80\\x09\\xa2\\x31\\xec\\xce\\x96\\x4b\\xf6\\x69\\x86\\x37\\x83\\x3f\\x60\\x7d\\xca\\x83\\x6f\\x8a\\x60\\x6c\\x72\\xae\\x3c\\xb1\\x70\\x17\\x44\\x47\\xa2\\xcc\\xe5\\x83\\xf6\\xe2\\x44\\xdb\\xc1\\x63\\xe2\\x15\\xb9\\x82\\x0d\\xe7\\x49\\x6f\\xfc\\x5b\\x70\\x50\\xc4\\x8f\\x28\\x30\\x24\\x66\\x78\\xcb\\xa4\\xdc\\x5c\\xaa\\x07\\xc1\\x45\\x85\\x63\\xaa\\x2d\\x10\\xdc\\xb7\\x77\\x0e\\xf8\\xfe\\xde\\x02\\x7d\\xd7\\xf2\\x0d\\xdc\\x8c\\xc7\\x8c\\x3a\\x2e\\x2e\\x95\\x8b\\xd1\\x8c\\x00\\x06\\xcf\\x8f\\xb8\\x2d\\x44\\xe5\\x3e\\x1d\\xa7\\xaa\\x80\\xfd\\x10\\x06\\xf3\\xb2\\x30\\x0c\\x9b\\x07\\x9d\\x8a\\x66\\xf1\\xe4\\xa3\\xf4\\x70\\x61\\xf9\\xe2\\xf4\\x5d\\xae\\x35\\xdc\\x29\\x52\\x04\\xb1\\x94\\x60\\xca\\x57\\x07\\xab\\x57\\xce\\x21\\x5a\\x24\\xc1\\x0f\\xaa\\xb3\\xfa\\x20\\xbc\\xcd\\x10\\x1e\\x7a\\x7d\\x70\\x07\\x75\\x99\\xf3\\xd6\\x72\\x57\\x07\\x55\\x21\\x29\\xca\\xd7\\x57\\xd6\\x51\\x4c\\x1b\\x28\\x99\\x7e\\x47\\x1f\\x94\\xb0\\xfd\\xed\\x8f\\xbb\\xd0\\x65\\xde\\xad\\x19\\x6d\\x2c\\x07\\xd3\\xdf\\xa7\\xb9\\xfb\\x3b\\xae\\x76\\x80\\xf7\\x66\\x21\\x20\\x0d\\x09\\x9e\\xeb\\xeb\\xbe\\xa0\\xe8\\x95\\x7d\\xf5\\xb5\\xe2\\x04\\xca\\x3e\\x9e\\x29\\x52\\xb8\\xa3\\x0f\\x0a\\x13\\x1a\\x68\\x67\\xb1\\x38\\x1e\\x39\\x4b\\x1b\\x44\\x43\\x10\\xf0\\x76\\x32\\x66\\x56\\xcf\\x93\\x41\\x67\\x80\\x08\\xe9\\x52\\x51\\x47\\xd8\\xd6\\x1c\\xe9\\x3d\\x3b\\xf5\\x39\\x00\\xca\\xb9\\x12\\x66\\x37\\x17\\xe0\\x98\\x72\\x93\\x83\\x3d\\x19\\x02\\xd7\\xfb\\x04\\x7b\\x99\\x7b\\x86\\x02\\x6c\\x46\\x7d\\x7b\\xb1\\x7c\\xf4\\x57\\x96\\x73\\x8f\\x7a\\x77\\x4a\\xc1\\x26\\x76\\x4e\\xd4\\xeb\\x45\\x12\\x43\\x09\\xf4\\x58\\x62\\x60\\x17\\x6b\\xa4\\x65\\x91\\x8d\\x48\\x33\\x0a\\x9c\\xc1\\x8c\\x4e\\xce\\xa0\\xdd\\xaf\\x38\\x94\\x6a\\xcc\\x0e\\x36\\x1d\\xd4\\x0a\\x7e\\x91\\x33\\xce\\xb5\\x0e\\x1c\\x31\\x7e\\xa4\\x2b\\xd0\\x98\\x0a\\x72\\xb8\\xba\\x3d\\x8a\\x6c\\x76\\x93\\xdd\\x56\\x02\\xf3\\x74\\xf2\\x66\\x4d\\xf4\\xba\\x56\\xdf\\x01\\xe8\\x82\\xfc\\xa4\\x2c\\xb4\\xdb\\x62\\x1f\\x47\\x6c\\x76\\xe1\\xea\\x9f\\xd1\\x05\\x91\\x1a\\x74\\xb7\\x79\\x52\\xd9\\x91\\x4a\\x5a\\xc0\\xf9\\x8a\\x90\\x0c\\x1b\\x2e\\x1a\\x56\\xc4\\xea\\x85\\x18\\xa9\\xee\\x47\\xc4\\xed\\x14\\xd0\\xbd\\x35\\xec\\xa5\\x60\\x31\\x9c\\x8e\\xa2\\x47\\x55\\xd7\\x1a\\x4e\\x03\\x08\\x50\\xbc\\x4d\\xc6\\x03\\x89\\xf3\\x25\\x80\\x40\\x21\\x20\\x4c\\xce\\xbc\\x25\\xfe\\xdb\\xd3\\x2e\\xdd\\x8d\\x84\\x46\\xaa\\x23\\xce\\x56\\xa8\\x5f\\x77\\x9e\\x85\\x8d\\x36\\xaf\\x7c\\x07\\x3c\\x11\\x5e\\x34\\x1f\\x41\\x2c\\x66\\x0f\\xab\\x80\\x0f\\xe7\\x4c\\x50\\xe7\\x14\\xee\\x08\\x6e\\x2f\\xbc\\x8d\\x7a\\xbb\\xf3\\xe9\\x8f\\xb4\\x0c\\xa2\\x7f\\x1f\\x01\\xa9\\xaa\\xdd\\x8c\\xc2\\x27\\x5c\\x2d\\xd3\\xf7\\x6e\\x4c\\x1d\\x81\\xc4\\xb7\\x92\\xda\\xec\\xc9\\xfe\\x66\\x04\\x49\\x41\\xb8\\xb2\\x91\\x84\\x86\\xdd\\x4a\\xcb\\x56\\x2a\\x7b\\x58\\xad\\x8c\\x60\\xc2\\x1b\\x83\\xcf\\x48\\xae\\xfa\\x72\\x56\\xa1\\xed\\x80\\x9e\\x66\\x98\\x11\\xf4\\x84\\x36\\x49\\x70\\xbc\\x56\\x95\\x08\\x99\\x19\\xbc\\x32\\xd2\\x8e\\xa7\\x52\\xe8\\xe3\\x18\\xce\\xff\\x46\\x7f\\x77\\xae\\x19\\x77\\xc5\\xff\\xd7\\x9c\\x17\\xc2\\xda\\x8b\\xc7\\xf8\\x23\\xdd\\x94\\x39\\x86\\x83\\x18\\x99\\x45\\xf8\\xb7\\x92\\x38\\xa4\\xe8\\x15\\xb1\\x42\\xb8\\x66\\xac\\xbd\\xbc\\xb7\\xae\\xa7\\xf1\\x43\\xff\\xfb\\x7c\\xc2\\xb4\\xb5\\x4b\\xbf\\x36\\x1a\\xfd\\xa9\\x13\\xad\\x6d\\xf1\\xe4\\x9d\\xfd\\x6b\\x53\\x26\\x42\\xe6\\x3f\\x55\\xd8\\x93\\xa4\\x70\\xd4\\x03\\x70\\x66\\x5c\\xfb\\x74\\xef\\xd3\\xf5\\x9c\\xb0\\xff\\x60\\x06\\x17\\x4c\\xa3\\x5f\\x53\\xb9\\x7c\\x54\\x3e\\x08\\xaf\\x4b\\xf5\\xbb\\x75\\xff\\x90\\x31\\x61\\x06\\x52\\xa3\\xf6\\xf2\\xa0\\xcf\\xe9\\x7e\\x7a\\x52\\x1f\\x3d\\x2a\\x28\\x91\\x14\\xde\\xd3\\x47\\x72\\xb0\\xe4\\x98\\x17\\xbd\\xe1\\xcb\\x92\\x4f\\xf5\\x14\\xe2\\x86\\x6a\\x09\\xe3\\xed\\xe0\\x78\\x2d\\x2c\\x0c\\x98\\xe6\\x81\\x4b\\x8c\\x1e\\x77\\x8c\\xf8\\x30\\x63\\x48\\xc9\\x33\\xad\\xb2\\xe4\\x72\\xdb\\xa0\\x9d\\xb9\\x54\\xff\\x49\\x64\\x83\\x73\\x39\\x5a\\x2f\\x01\\x81\\x95\\x8f\\xeb\\x1e\\xa2\\x83\\x4c\\x99\\x53\\x28\\x73\\xdb\\x5c\\x88\\xeb\\x52\\x89\\xc7\\x7e\\x90\\x01\\x52\\x03\\xef\\x50\\x2a\\xc8\\xe1\\xc4\\x8f\\xa1\\xa0\\x6d\\xaf\\xa6\\x51\\x9d\\x52\\xda\\xe3\\xc5\\x56\\x75\\x70\\xdd\\x24\\x34\\xe6\\x71\\x92\\x7c\\x66\\x36\\x3f\\x78\\x31\\x56\\x89\\x3f\\x13\\x8a\\x84\\xc7\\x56\\x64\\xb3\\x0a\\xe4\\x27\\x51\\x12\\x73\\x6d\\x53\\xd4\\xf3\\x99\\xdd\\xda\\x3d\\x23\\x06\\x7c\\x07\\x3f\\x52\\x1a\\xfb\\xa1\\xf7\\xbe\\x58\\x55\\x13\\xc2\\xce\\xc9\\xc8\\xf0\\x8d\\x2a\\x22\\xc3\\xc8\\x53\\x92\\xcd\\x2a\\xe5\\x0f\\x39\\x28\\x25\\x1f\\x86\\xb3\\x10\\xc6\\x9a\\x0f\\x8c\\x4e\\x85\\x3a\\xb3\\xf3\\xe8\\x12\\x9b\\x05\\x66\\xef\\x4b\\xbb\\xe8\\x0b\\x8c\\x02\\xc8\\x92\\x8a\\x4d\\xe5\\x6c\\x0d\\x11\\x9a\\x45\\xbb\\xf5\\xaf\\x18\\x08\\xd4\\x88\\x85\\x2d\\x8a\\x45\\xbe\\xb0\\xd6\\x83\\x24\\x8a\\x4d\\x65\\xde\\x15\\x26\\xb3\\xd1\\xd2\\xff\\xc1\\xf2\\x22\\x15\\xb6\\x08\\x46\\x8c\\xbc\\x3b\\xd3\\x95\\x14\\xb3\\x97\\xfc\\x0d\\xb0\\xf1\\x13\\xdb\\xe6\\xfc\\xe4\\x65\\x2e\\x82\\xff\\x89\\x5b\\x2b\\x43\\x87\\xe0\\x41\\xd7\\xe4\\xe7\\xbd\\xe4\\x69\\x47\\x69\\x66\\x5e\\x81\"},\n{{0xf5,0xe5,0x76,0x7c,0xf1,0x53,0x31,0x95,0x17,0x63,0x0f,0x22,0x68,0x76,0xb8,0x6c,0x81,0x60,0xcc,0x58,0x3b,0xc0,0x13,0x74,0x4c,0x6b,0xf2,0x55,0xf5,0xcc,0x0e,0xe5,},{0x27,0x81,0x17,0xfc,0x14,0x4c,0x72,0x34,0x0f,0x67,0xd0,0xf2,0x31,0x6e,0x83,0x86,0xce,0xff,0xbf,0x2b,0x24,0x28,0xc9,0xc5,0x1f,0xef,0x7c,0x59,0x7f,0x1d,0x42,0x6e,},{0x0a,0xab,0x4c,0x90,0x05,0x01,0xb3,0xe2,0x4d,0x7c,0xdf,0x46,0x63,0x32,0x6a,0x3a,0x87,0xdf,0x5e,0x48,0x43,0xb2,0xcb,0xdb,0x67,0xcb,0xf6,0xe4,0x60,0xfe,0xc3,0x50,0xaa,0x53,0x71,0xb1,0x50,0x8f,0x9f,0x45,0x28,0xec,0xea,0x23,0xc4,0x36,0xd9,0x4b,0x5e,0x8f,0xcd,0x4f,0x68,0x1e,0x30,0xa6,0xac,0x00,0xa9,0x70,0x4a,0x18,0x8a,0x03,},\"\\x08\\xb8\\xb2\\xb7\\x33\\x42\\x42\\x43\\x76\\x0f\\xe4\\x26\\xa4\\xb5\\x49\\x08\\x63\\x21\\x10\\xa6\\x6c\\x2f\\x65\\x91\\xea\\xbd\\x33\\x45\\xe3\\xe4\\xeb\\x98\\xfa\\x6e\\x26\\x4b\\xf0\\x9e\\xfe\\x12\\xee\\x50\\xf8\\xf5\\x4e\\x9f\\x77\\xb1\\xe3\\x55\\xf6\\xc5\\x05\\x44\\xe2\\x3f\\xb1\\x43\\x3d\\xdf\\x73\\xbe\\x84\\xd8\\x79\\xde\\x7c\\x00\\x46\\xdc\\x49\\x96\\xd9\\xe7\\x73\\xf4\\xbc\\x9e\\xfe\\x57\\x38\\x82\\x9a\\xdb\\x26\\xc8\\x1b\\x37\\xc9\\x3a\\x1b\\x27\\x0b\\x20\\x32\\x9d\\x65\\x86\\x75\\xfc\\x6e\\xa5\\x34\\xe0\\x81\\x0a\\x44\\x32\\x82\\x6b\\xf5\\x8c\\x94\\x1e\\xfb\\x65\\xd5\\x7a\\x33\\x8b\\xbd\\x2e\\x26\\x64\\x0f\\x89\\xff\\xbc\\x1a\\x85\\x8e\\xfc\\xb8\\x55\\x0e\\xe3\\xa5\\xe1\\x99\\x8b\\xd1\\x77\\xe9\\x3a\\x73\\x63\\xc3\\x44\\xfe\\x6b\\x19\\x9e\\xe5\\xd0\\x2e\\x82\\xd5\\x22\\xc4\\xfe\\xba\\x15\\x45\\x2f\\x80\\x28\\x8a\\x82\\x1a\\x57\\x91\\x16\\xec\\x6d\\xad\\x2b\\x3b\\x31\\x0d\\xa9\\x03\\x40\\x1a\\xa6\\x21\\x00\\xab\\x5d\\x1a\\x36\\x55\\x3e\\x06\\x20\\x3b\\x33\\x89\\x0c\\xc9\\xb8\\x32\\xf7\\x9e\\xf8\\x05\\x60\\xcc\\xb9\\xa3\\x9c\\xe7\\x67\\x96\\x7e\\xd6\\x28\\xc6\\xad\\x57\\x3c\\xb1\\x16\\xdb\\xef\\xef\\xd7\\x54\\x99\\xda\\x96\\xbd\\x68\\xa8\\xa9\\x7b\\x92\\x8a\\x8b\\xbc\\x10\\x3b\\x66\\x21\\xfc\\xde\\x2b\\xec\\xa1\\x23\\x1d\\x20\\x6b\\xe6\\xcd\\x9e\\xc7\\xaf\\xf6\\xf6\\xc9\\x4f\\xcd\\x72\\x04\\xed\\x34\\x55\\xc6\\x8c\\x83\\xf4\\xa4\\x1d\\xa4\\xaf\\x2b\\x74\\xef\\x5c\\x53\\xf1\\xd8\\xac\\x70\\xbd\\xcb\\x7e\\xd1\\x85\\xce\\x81\\xbd\\x84\\x35\\x9d\\x44\\x25\\x4d\\x95\\x62\\x9e\\x98\\x55\\xa9\\x4a\\x7c\\x19\\x58\\xd1\\xf8\\xad\\xa5\\xd0\\x53\\x2e\\xd8\\xa5\\xaa\\x3f\\xb2\\xd1\\x7b\\xa7\\x0e\\xb6\\x24\\x8e\\x59\\x4e\\x1a\\x22\\x97\\xac\\xbb\\xb3\\x9d\\x50\\x2f\\x1a\\x8c\\x6e\\xb6\\xf1\\xce\\x22\\xb3\\xde\\x1a\\x1f\\x40\\xcc\\x24\\x55\\x41\\x19\\xa8\\x31\\xa9\\xaa\\xd6\\x07\\x9c\\xad\\x88\\x42\\x5d\\xe6\\xbd\\xe1\\xa9\\x18\\x7e\\xbb\\x60\\x92\\xcf\\x67\\xbf\\x2b\\x13\\xfd\\x65\\xf2\\x70\\x88\\xd7\\x8b\\x7e\\x88\\x3c\\x87\\x59\\xd2\\xc4\\xf5\\xc6\\x5a\\xdb\\x75\\x53\\x87\\x8a\\xd5\\x75\\xf9\\xfa\\xd8\\x78\\xe8\\x0a\\x0c\\x9b\\xa6\\x3b\\xcb\\xcc\\x27\\x32\\xe6\\x94\\x85\\xbb\\xc9\\xc9\\x0b\\xfb\\xd6\\x24\\x81\\xd9\\x08\\x9b\\xec\\xcf\\x80\\xcf\\xe2\\xdf\\x16\\xa2\\xcf\\x65\\xbd\\x92\\xdd\\x59\\x7b\\x07\\x07\\xe0\\x91\\x7a\\xf4\\x8b\\xbb\\x75\\xfe\\xd4\\x13\\xd2\\x38\\xf5\\x55\\x5a\\x7a\\x56\\x9d\\x80\\xc3\\x41\\x4a\\x8d\\x08\\x59\\xdc\\x65\\xa4\\x61\\x28\\xba\\xb2\\x7a\\xf8\\x7a\\x71\\x31\\x4f\\x31\\x8c\\x78\\x2b\\x23\\xeb\\xfe\\x80\\x8b\\x82\\xb0\\xce\\x26\\x40\\x1d\\x2e\\x22\\xf0\\x4d\\x83\\xd1\\x25\\x5d\\xc5\\x1a\\xdd\\xd3\\xb7\\x5a\\x2b\\x1a\\xe0\\x78\\x45\\x04\\xdf\\x54\\x3a\\xf8\\x96\\x9b\\xe3\\xea\\x70\\x82\\xff\\x7f\\xc9\\x88\\x8c\\x14\\x4d\\xa2\\xaf\\x58\\x42\\x9e\\xc9\\x60\\x31\\xdb\\xca\\xd3\\xda\\xd9\\xaf\\x0d\\xcb\\xaa\\xaf\\x26\\x8c\\xb8\\xfc\\xff\\xea\\xd9\\x4f\\x3c\\x7c\\xa4\\x95\\xe0\\x56\\xa9\\xb4\\x7a\\xcd\\xb7\\x51\\xfb\\x73\\xe6\\x66\\xc6\\xc6\\x55\\xad\\xe8\\x29\\x72\\x97\\xd0\\x7a\\xd1\\xba\\x5e\\x43\\xf1\\xbc\\xa3\\x23\\x01\\x65\\x13\\x39\\xe2\\x29\\x04\\xcc\\x8c\\x42\\xf5\\x8c\\x30\\xc0\\x4a\\xaf\\xdb\\x03\\x8d\\xda\\x08\\x47\\xdd\\x98\\x8d\\xcd\\xa6\\xf3\\xbf\\xd1\\x5c\\x4b\\x4c\\x45\\x25\\x00\\x4a\\xa0\\x6e\\xef\\xf8\\xca\\x61\\x78\\x3a\\xac\\xec\\x57\\xfb\\x3d\\x1f\\x92\\xb0\\xfe\\x2f\\xd1\\xa8\\x5f\\x67\\x24\\x51\\x7b\\x65\\xe6\\x14\\xad\\x68\\x08\\xd6\\xf6\\xee\\x34\\xdf\\xf7\\x31\\x0f\\xdc\\x82\\xae\\xbf\\xd9\\x04\\xb0\\x1e\\x1d\\xc5\\x4b\\x29\\x27\\x09\\x4b\\x2d\\xb6\\x8d\\x6f\\x90\\x3b\\x68\\x40\\x1a\\xde\\xbf\\x5a\\x7e\\x08\\xd7\\x8f\\xf4\\xef\\x5d\\x63\\x65\\x3a\\x65\\x04\\x0c\\xf9\\xbf\\xd4\\xac\\xa7\\x98\\x4a\\x74\\xd3\\x71\\x45\\x98\\x67\\x80\\xfc\\x0b\\x16\\xac\\x45\\x16\\x49\\xde\\x61\\x88\\xa7\\xdb\\xdf\\x19\\x1f\\x64\\xb5\\xfc\\x5e\\x2a\\xb4\\x7b\\x57\\xf7\\xf7\\x27\\x6c\\xd4\\x19\\xc1\\x7a\\x3c\\xa8\\xe1\\xb9\\x39\\xae\\x49\\xe4\\x88\\xac\\xba\\x6b\\x96\\x56\\x10\\xb5\\x48\\x01\\x09\\xc8\\xb1\\x7b\\x80\\xe1\\xb7\\xb7\\x50\\xdf\\xc7\\x59\\x8d\\x5d\\x50\\x11\\xfd\\x2d\\xcc\\x56\\x00\\xa3\\x2e\\xf5\\xb5\\x2a\\x1e\\xcc\\x82\\x0e\\x30\\x8a\\xa3\\x42\\x72\\x1a\\xac\\x09\\x43\\xbf\\x66\\x86\\xb6\\x4b\\x25\\x79\\x37\\x65\\x04\\xcc\\xc4\\x93\\xd9\\x7e\\x6a\\xed\\x3f\\xb0\\xf9\\xcd\\x71\\xa4\\x3d\\xd4\\x97\\xf0\\x1f\\x17\\xc0\\xe2\\xcb\\x37\\x97\\xaa\\x2a\\x2f\\x25\\x66\\x56\\x16\\x8e\\x6c\\x49\\x6a\\xfc\\x5f\\xb9\\x32\\x46\\xf6\\xb1\\x11\\x63\\x98\\xa3\\x46\\xf1\\xa6\\x41\\xf3\\xb0\\x41\\xe9\\x89\\xf7\\x91\\x4f\\x90\\xcc\\x2c\\x7f\\xff\\x35\\x78\\x76\\xe5\\x06\\xb5\\x0d\\x33\\x4b\\xa7\\x7c\\x22\\x5b\\xc3\\x07\\xba\\x53\\x71\\x52\\xf3\\xf1\\x61\\x0e\\x4e\\xaf\\xe5\\x95\\xf6\\xd9\\xd9\\x0d\\x11\\xfa\\xa9\\x33\\xa1\\x5e\\xf1\\x36\\x95\\x46\\x86\\x8a\\x7f\\x3a\\x45\\xa9\\x67\\x68\\xd4\\x0f\\xd9\\xd0\\x34\\x12\\xc0\\x91\\xc6\\x31\\x5c\\xf4\\xfd\\xe7\\xcb\\x68\\x60\\x69\\x37\\x38\\x0d\\xb2\\xea\\xaa\\x70\\x7b\\x4c\\x41\\x85\\xc3\\x2e\\xdd\\xcd\\xd3\\x06\\x70\\x5e\\x4d\\xc1\\xff\\xc8\\x72\\xee\\xee\\x47\\x5a\\x64\\xdf\\xac\\x86\\xab\\xa4\\x1c\\x06\\x18\\x98\\x3f\\x87\\x41\\xc5\\xef\\x68\\xd3\\xa1\\x01\\xe8\\xa3\\xb8\\xca\\xc6\\x0c\\x90\\x5c\\x15\\xfc\\x91\\x08\\x40\\xb9\\x4c\\x00\\xa0\\xb9\\xd0\"},\n};\n\nstatic const unsigned char non_canonical_p[32] = {\n    0xf6, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,\n    0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f\n};\n\nstatic void add_l(unsigned char * const S)\n{\n    static const unsigned char l[32] =\n      { 0xed, 0xd3, 0xf5, 0x5c, 0x1a, 0x63, 0x12, 0x58,\n        0xd6, 0x9c, 0xf7, 0xa2, 0xde, 0xf9, 0xde, 0x14,\n        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10 };\n\n    sodium_add(S, l, sizeof l);\n}\n\nint main(void)\n{\n    crypto_sign_state  st;\n    unsigned char      extracted_seed[crypto_sign_ed25519_SEEDBYTES];\n    unsigned char      extracted_pk[crypto_sign_ed25519_PUBLICKEYBYTES];\n    unsigned char      sig[crypto_sign_BYTES];\n    unsigned char      sm[1024 + crypto_sign_BYTES];\n    unsigned char      m[1024];\n    unsigned char      skpk[crypto_sign_SECRETKEYBYTES];\n    unsigned char      pk[crypto_sign_PUBLICKEYBYTES];\n    unsigned char      sk[crypto_sign_SECRETKEYBYTES];\n    char               sig_hex[crypto_sign_BYTES * 2 + 1];\n    char               pk_hex[crypto_sign_PUBLICKEYBYTES * 2 + 1];\n    char               sk_hex[crypto_sign_SECRETKEYBYTES * 2 + 1];\n    unsigned long long siglen;\n    unsigned long long smlen;\n    unsigned long long mlen;\n    unsigned int       i;\n    unsigned int       j;\n\n    memset(sig, 0, sizeof sig);\n    for (i = 0U; i < (sizeof test_data) / (sizeof test_data[0]); i++) {\n#ifdef BROWSER_TESTS\n        if (i % 128U != 127U) {\n            continue;\n        }\n#endif\n        memcpy(skpk, test_data[i].sk, crypto_sign_SEEDBYTES);\n        memcpy(skpk + crypto_sign_SEEDBYTES, test_data[i].pk,\n               crypto_sign_PUBLICKEYBYTES);\n        if (crypto_sign(sm, &smlen, (const unsigned char *)test_data[i].m, i,\n                        skpk) != 0) {\n            printf(\"crypto_sign() failure: [%u]\\n\", i);\n            continue;\n        }\n        if (memcmp(test_data[i].sig, sm, crypto_sign_BYTES) != 0) {\n            printf(\"signature failure: [%u]\\n\", i);\n            continue;\n        }\n        if (crypto_sign_open(m, NULL, sm, smlen, test_data[i].pk) != 0) {\n            printf(\"crypto_sign_open() failure: [%u]\\n\", i);\n            continue;\n        }\n        add_l(sm + 32);\n#ifndef ED25519_COMPAT\n        if (crypto_sign_open(m, &mlen, sm, smlen, test_data[i].pk) != -1) {\n            printf(\"crypto_sign_open(): signature [%u] is malleable\\n\", i);\n            continue;\n        }\n#else\n        if (crypto_sign_open(m, &mlen, sm, smlen, test_data[i].pk) != 0) {\n            printf(\"crypto_sign_open(): signature [%u] is not malleable\\n\", i);\n            continue;\n        }\n#endif\n        if (memcmp(test_data[i].m, m, (size_t)mlen) != 0) {\n            printf(\"message verification failure: [%u]\\n\", i);\n            continue;\n        }\n        sm[i + crypto_sign_BYTES - 1U]++;\n        if (crypto_sign_open(m, &mlen, sm, smlen, test_data[i].pk) == 0) {\n            printf(\"message can be forged: [%u]\\n\", i);\n            continue;\n        }\n        if (crypto_sign_open(m, &mlen, sm, i % crypto_sign_BYTES,\n                             test_data[i].pk) == 0) {\n            printf(\"short signed message verifies: [%u]\\n\",\n                   i % crypto_sign_BYTES);\n            continue;\n        }\n        if (crypto_sign_detached(sig, &siglen,\n                                 (const unsigned char *)test_data[i].m, i, skpk)\n            != 0) {\n            printf(\"detached signature failed: [%u]\\n\", i);\n            continue;\n        }\n        if (siglen == 0U || siglen > crypto_sign_BYTES) {\n            printf(\"detached signature has an unexpected length: [%u]\\n\", i);\n            continue;\n        }\n        if (memcmp(test_data[i].sig, sig, crypto_sign_BYTES) != 0) {\n            printf(\"detached signature failure: [%u]\\n\", i);\n            continue;\n        }\n        if (crypto_sign_verify_detached(sig,\n                                        (const unsigned char *)test_data[i].m,\n                                        i, test_data[i].pk) != 0) {\n            printf(\"detached signature verification failed: [%u]\\n\", i);\n            continue;\n        }\n    }\n    printf(\"%u tests\\n\", i);\n\n    i--;\n\n    memcpy(sm, test_data[i].m, i);\n    if (crypto_sign(sm, &smlen, sm, i, skpk) != 0) {\n        printf(\"crypto_sign() with overlap failed\\n\");\n    }\n    if (crypto_sign_open(sm, &mlen, sm, smlen, test_data[i].pk) != 0) {\n        printf(\"crypto_sign_open() with overlap failed\\n\");\n    }\n    if (memcmp(test_data[i].m, sm, (size_t)mlen) != 0) {\n        printf(\"crypto_sign_open() with overlap failed (content)\\n\");\n    }\n\n    for (j = 1U; j < 8U; j++) {\n        sig[63] ^= (j << 5);\n        if (crypto_sign_verify_detached(sig,\n                                        (const unsigned char *)test_data[i].m,\n                                        i, test_data[i].pk) != -1) {\n            printf(\"detached signature verification should have failed\\n\");\n            continue;\n        }\n        sig[63] ^= (j << 5);\n    }\n\n#ifndef ED25519_COMPAT\n    if (crypto_sign_verify_detached(sig,\n                                    (const unsigned char *)test_data[i].m,\n                                    i, non_canonical_p) != -1) {\n        printf(\"detached signature verification with non-canonical key should have failed\\n\");\n    }\n#endif\n    memset(pk, 0, sizeof pk);\n    if (crypto_sign_verify_detached(sig,\n                                    (const unsigned char *)test_data[i].m,\n                                    i, pk) != -1) {\n        printf(\"detached signature verification should have failed\\n\");\n    }\n\n    memset(sig, 0xff, 32);\n    sig[0] = 0xdb;\n    if (crypto_sign_verify_detached(sig,\n                                    (const unsigned char *)test_data[i].m,\n                                    i, pk) != -1) {\n        printf(\"detached signature verification should have failed\\n\");\n    }\n    assert(crypto_sign_detached(sig, NULL,\n                                (const unsigned char *)test_data[i].m, i, skpk) == 0);\n\n    sodium_hex2bin(pk, crypto_sign_PUBLICKEYBYTES,\n                   \"3eee494fb9eac773144e34b0c755affaf33ea782c0722e5ea8b150e61209ab36\",\n                   crypto_sign_PUBLICKEYBYTES * 2, NULL, NULL, NULL);\n    if (crypto_sign_verify_detached(sig,\n                                    (const unsigned char *)test_data[i].m,\n                                    i, pk) != -1) {\n        printf(\"signature with an invalid public key should have failed\\n\");\n    }\n\n    sodium_hex2bin(pk, crypto_sign_PUBLICKEYBYTES,\n                   \"0200000000000000000000000000000000000000000000000000000000000000\",\n                   crypto_sign_PUBLICKEYBYTES * 2, NULL, NULL, NULL);\n    if (crypto_sign_verify_detached(sig,\n                                    (const unsigned char *)test_data[i].m,\n                                    i, pk) != -1) {\n        printf(\"signature with an invalid public key should have failed\\n\");\n    }\n\n    sodium_hex2bin(pk, crypto_sign_PUBLICKEYBYTES,\n                   \"0500000000000000000000000000000000000000000000000000000000000000\",\n                   crypto_sign_PUBLICKEYBYTES * 2, NULL, NULL, NULL);\n    if (crypto_sign_verify_detached(sig,\n                                    (const unsigned char *)test_data[i].m,\n                                    i, pk) != -1) {\n        printf(\"signature with an invalid public key should have failed\\n\");\n    }\n\n    if (crypto_sign_seed_keypair(pk, sk, keypair_seed) != 0) {\n        printf(\"crypto_sign_seed_keypair() failure\\n\");\n        return -1;\n    }\n    crypto_sign_init(&st);\n    crypto_sign_update(&st, (const unsigned char *)test_data[i].m, i);\n    crypto_sign_final_create(&st, sig, NULL, sk);\n    sodium_bin2hex(sig_hex, sizeof sig_hex, sig, sizeof sig);\n    printf(\"ed25519ph sig: [%s]\\n\", sig_hex);\n\n    crypto_sign_init(&st);\n    crypto_sign_update(&st, (const unsigned char *)test_data[i].m, i);\n    if (crypto_sign_final_verify(&st, sig, pk) != 0) {\n        printf(\"ed5519ph verification failed\\n\");\n    }\n    crypto_sign_init(&st);\n    crypto_sign_update(&st, (const unsigned char *)test_data[i].m, 0);\n    crypto_sign_update(&st, (const unsigned char *)test_data[i].m, i / 2);\n    crypto_sign_update(&st, ((const unsigned char *)test_data[i].m) + i / 2,\n                       i - i / 2);\n    if (crypto_sign_final_verify(&st, sig, pk) != 0) {\n        printf(\"ed5519ph verification failed\\n\");\n    }\n    sig[0]++;\n    if (crypto_sign_final_verify(&st, sig, pk) != -1) {\n        printf(\"ed5519ph verification could be forged\\n\");\n    }\n    sig[0]--;\n    pk[0]++;\n    if (crypto_sign_final_verify(&st, sig, pk) != -1) {\n        printf(\"ed5519ph verification could be forged\\n\");\n    }\n    sodium_hex2bin(sk, crypto_sign_SECRETKEYBYTES,\n                   \"833fe62409237b9d62ec77587520911e9a759cec1d19755b7da901b96dca3d42\",\n                   2 * crypto_sign_SECRETKEYBYTES / 2, NULL, NULL, NULL);\n    sodium_hex2bin(pk, crypto_sign_PUBLICKEYBYTES,\n                   \"ec172b93ad5e563bf4932c70e1245034c35467ef2efd4d64ebf819683467e2bf\",\n                   2 * crypto_sign_PUBLICKEYBYTES, NULL, NULL, NULL);\n    memcpy(sk + crypto_sign_SECRETKEYBYTES - crypto_sign_PUBLICKEYBYTES,\n           pk, crypto_sign_PUBLICKEYBYTES);\n    crypto_sign_init(&st);\n    crypto_sign_update(&st, (const unsigned char *) \"abc\", 3);\n    crypto_sign_final_create(&st, sig, &siglen, sk);\n    if (siglen == 0U || siglen > crypto_sign_BYTES) {\n        printf(\"ed25519ph signature has an unexpected length\\n\");\n    }\n    sodium_bin2hex(sig_hex, sizeof sig_hex, sig, sizeof sig);\n    printf(\"ed25519ph tv sig: [%s]\\n\", sig_hex);\n\n    crypto_sign_init(&st);\n    crypto_sign_update(&st, (const unsigned char *) \"abc\", 3);\n    if (crypto_sign_final_verify(&st, sig, pk) != 0) {\n        printf(\"ed25519ph verification failed\\n\");\n    }\n    if (crypto_sign_keypair(pk, sk) != 0) {\n        printf(\"crypto_sign_keypair() failure\\n\");\n    }\n    if (crypto_sign_seed_keypair(pk, sk, keypair_seed) != 0) {\n        printf(\"crypto_sign_seed_keypair() failure\\n\");\n        return -1;\n    }\n    crypto_sign_ed25519_sk_to_seed(extracted_seed, sk);\n    if (memcmp(extracted_seed, keypair_seed, crypto_sign_ed25519_SEEDBYTES)\n        != 0) {\n        printf(\"crypto_sign_ed25519_sk_to_seed() failure\\n\");\n    }\n    crypto_sign_ed25519_sk_to_pk(extracted_pk, sk);\n    if (memcmp(extracted_pk, pk, crypto_sign_ed25519_PUBLICKEYBYTES) != 0) {\n        printf(\"crypto_sign_ed25519_sk_to_pk() failure\\n\");\n    }\n    sodium_bin2hex(pk_hex, sizeof pk_hex, pk, sizeof pk);\n    sodium_bin2hex(sk_hex, sizeof sk_hex, sk, sizeof sk);\n\n    printf(\"pk: [%s]\\n\", pk_hex);\n    printf(\"sk: [%s]\\n\", sk_hex);\n\n    assert(crypto_sign_bytes() > 0U);\n    assert(crypto_sign_seedbytes() > 0U);\n    assert(crypto_sign_publickeybytes() > 0U);\n    assert(crypto_sign_secretkeybytes() > 0U);\n    assert(crypto_sign_messagebytes_max() > 0U);\n    assert(strcmp(crypto_sign_primitive(), \"ed25519\") == 0);\n    assert(crypto_sign_bytes() == crypto_sign_ed25519_bytes());\n    assert(crypto_sign_seedbytes() == crypto_sign_ed25519_seedbytes());\n    assert(crypto_sign_messagebytes_max() == crypto_sign_ed25519_messagebytes_max());\n    assert(crypto_sign_publickeybytes()\n           == crypto_sign_ed25519_publickeybytes());\n    assert(crypto_sign_secretkeybytes()\n           == crypto_sign_ed25519_secretkeybytes());\n    assert(crypto_sign_statebytes() == crypto_sign_ed25519ph_statebytes());\n\n#ifdef ED25519_NONDETERMINISTIC\n    exit(0);\n#endif\n\n    return 0;\n}\n"
  },
  {
    "path": "test/default/sign.exp",
    "content": "1024 tests\ned25519ph sig: [10c5411e40bd10170fb890d4dfdb6d338c8cb11d2764a216ee54df10977dcdefd8ff755b1eeb3f16fce80e40e7aafc99083dbff43d5031baf04157b48423960d]\ned25519ph tv sig: [98a70222f0b8121aa9d30f813d683f809e462b469c7ff87639499bb94e6dae4131f85042463c2a355a2003d062adf5aaa10b8c61e636062aaad11c2a26083406]\npk: [b5076a8474a832daee4dd5b4040983b6623b5f344aca57d4d6ee4baf3f259e6e]\nsk: [421151a459faeade3d247115f94aedae42318124095afabe4d1451a559faedeeb5076a8474a832daee4dd5b4040983b6623b5f344aca57d4d6ee4baf3f259e6e]\n"
  },
  {
    "path": "test/default/sign2.c",
    "content": "\n#define TEST_NAME \"sign2\"\n#include \"cmptest.h\"\n\ntypedef struct TestData_ {\n    const char *m;\n    const char  pk[crypto_sign_PUBLICKEYBYTES * 2 + 1];\n    const char  sig[crypto_sign_BYTES * 2 + 1];\n    int         ret;\n} TestData;\n\nstatic TestData test_data[] = {\n    {\n        \"8c93255d71dcab10e8f379c26200f3c7bd5f09d9bc3068d3ef4edeb4853022b6\",\n        \"c7176a703d4dd84fba3c0b760d10670f2a2053fa2c39ccc64ec7fd7792ac03fa\",\n        \"c7176a703d4dd84fba3c0b760d10670f2a2053fa2c39ccc64ec7fd7792ac037a00000000000000000000000000\"\n        \"00000000000000000000000000000000000000\",\n        -1 /* WeakPublicKey */, /* 0 */\n    },\n    {\n        \"9bd9f44f4dcc75bd531b56b2cd280b0bb38fc1cd6d1230e14861d861de092e79\",\n        \"c7176a703d4dd84fba3c0b760d10670f2a2053fa2c39ccc64ec7fd7792ac03fa\",\n        \"f7badec5b8abeaf699583992219b7b223f1df3fbbea919844e3f7c554a43dd43a5bb704786be79fc476f91d3f3\"\n        \"f89b03984d8068dcf1bb7dfc6637b45450ac04\",\n        -1 /* WeakPublicKey */, /* 1 */\n    },\n    {\n        \"aebf3f2601a0c8c5d39cc7d8911642f740b78168218da8471772b35f9d35b9ab\",\n        \"f7badec5b8abeaf699583992219b7b223f1df3fbbea919844e3f7c554a43dd43\",\n        \"c7176a703d4dd84fba3c0b760d10670f2a2053fa2c39ccc64ec7fd7792ac03fa8c4bd45aecaca5b24fb97bc10a\"\n        \"c27ac8751a7dfe1baff8b953ec9f5833ca260e\",\n        -1 /* compat */, /* 2 - libsodium traditionally rejects small-order R since this is a strong indication that the signer's PRNG is weak, so we can't really trust the secret key to be only known by the signer */\n    },\n    {\n        \"9bd9f44f4dcc75bd531b56b2cd280b0bb38fc1cd6d1230e14861d861de092e79\",\n        \"cdb267ce40c5cd45306fa5d2f29731459387dbf9eb933b7bd5aed9a765b88d4d\",\n        \"9046a64750444938de19f227bb80485e92b83fdb4b6506c160484c016cc1852f87909e14428a7a1d62e9f22f3d\"\n        \"3ad7802db02eb2e688b6c52fcd6648a98bd009\",\n        0 /* acceptable */, /* 3 - mixed orders */\n    },\n    {\n        \"e47d62c63f830dc7a6851a0b1f33ae4bb2f507fb6cffec4011eaccd55b53f56c\",\n        \"cdb267ce40c5cd45306fa5d2f29731459387dbf9eb933b7bd5aed9a765b88d4d\",\n        \"160a1cb0dc9c0258cd0a7d23e94d8fa878bcb1925f2c64246b2dee1796bed5125ec6bc982a269b723e0668e540\"\n        \"911a9a6a58921d6925e434ab10aa7940551a09\",\n        0 /* acceptable */, /* 4 - cofactored verification */\n    },\n    {\n        \"e47d62c63f830dc7a6851a0b1f33ae4bb2f507fb6cffec4011eaccd55b53f56c\",\n        \"cdb267ce40c5cd45306fa5d2f29731459387dbf9eb933b7bd5aed9a765b88d4d\",\n        \"21122a84e0b5fca4052f5b1235c80a537878b38f3142356b2c2384ebad4668b7e40bc836dac0f71076f9abe3a5\"\n        \"3f9c03c1ceeeddb658d0030494ace586687405\",\n        0 /* acceptable */, /* 5 - cofactored verification */\n    },\n    {\n        \"85e241a07d148b41e47d62c63f830dc7a6851a0b1f33ae4bb2f507fb6cffec40\",\n        \"442aad9f089ad9e14647b1ef9099a1ff4798d78589e66f28eca69c11f582a623\",\n        \"e96f66be976d82e60150baecff9906684aebb1ef181f67a7189ac78ea23b6c0e547f7690a0e2ddcd04d87dbc34\"\n        \"90dc19b3b3052f7ff0538cb68afb369ba3a514\",\n        -1 /* NonCanonical */, /* 6 - S > L */\n    },\n    {\n        \"85e241a07d148b41e47d62c63f830dc7a6851a0b1f33ae4bb2f507fb6cffec40\",\n        \"442aad9f089ad9e14647b1ef9099a1ff4798d78589e66f28eca69c11f582a623\",\n        \"8ce5b96c8f26d0ab6c47958c9e68b937104cd36e13c33566acd2fe8d38aa19427e71f98a4734e74f2f13f06f97\"\n        \"c20d58cc3f54b8bd0d272f42b695dd7e89a8c2\",\n        -1 /* NonCanonical */, /* 7 - S >> L */\n    },\n    {\n        \"9bedc267423725d473888631ebf45988bad3db83851ee85c85e241a07d148b41\",\n        \"f7badec5b8abeaf699583992219b7b223f1df3fbbea919844e3f7c554a43dd43\",\n        \"ecffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03be9678ac102edcd92b0210bb\"\n        \"34d7428d12ffc5df5f37e359941266a4e35f0f\",\n        -1 /* IdentityElement */, /* 8 - non-canonical R */\n    },\n    {\n        \"9bedc267423725d473888631ebf45988bad3db83851ee85c85e241a07d148b41\",\n        \"f7badec5b8abeaf699583992219b7b223f1df3fbbea919844e3f7c554a43dd43\",\n        \"ecffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffca8c5b64cd208982aa38d49366\"\n        \"21a4775aa233aa0505711d8fdcfdaa943d4908\",\n        -1 /* IdentityElement */, /* 9 - non-canonical R */\n    },\n    {\n        \"e96b7021eb39c1a163b6da4e3093dcd3f21387da4cc4572be588fafae23c155b\",\n        \"ecffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\",\n        \"a9d55260f765261eb9b84e106f665e00b867287a761990d7135963ee0a7d59dca5bb704786be79fc476f91d3f3\"\n        \"f89b03984d8068dcf1bb7dfc6637b45450ac04\",\n        -1 /* IdentityElement */, /* 10 - small-order A */\n    },\n    {\n        \"39a591f5321bbe07fd5a23dc2f39d025d74526615746727ceefd6e82ae65c06f\",\n        \"ecffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\",\n        \"a9d55260f765261eb9b84e106f665e00b867287a761990d7135963ee0a7d59dca5bb704786be79fc476f91d3f3\"\n        \"f89b03984d8068dcf1bb7dfc6637b45450ac04\",\n        -1 /* IdentityElement */, /* 11 - small-order A */\n    }\n};\n\nint\nmain(void)\n{\n    unsigned char     m[1024];\n    unsigned char     sig[crypto_sign_BYTES];\n    unsigned char     pk[crypto_sign_PUBLICKEYBYTES];\n    size_t            m_len;\n    unsigned int      i;\n    int               ret;\n\n    for (i = 0U; i < (sizeof test_data) / (sizeof test_data[0]); i++) {\n        sodium_hex2bin(m, sizeof m, test_data[i].m, strlen(test_data[i].m), NULL, &m_len, NULL);\n        sodium_hex2bin(pk, sizeof pk, test_data[i].pk, strlen(test_data[i].pk), NULL, NULL, NULL);\n        sodium_hex2bin(sig, sizeof sig, test_data[i].sig, strlen(test_data[i].sig), NULL, NULL,\n                       NULL);\n        ret = crypto_sign_verify_detached(sig, m, m_len, pk);\n        if (test_data[i].ret != ret) {\n            printf(\"Test %u -- expected: %d found: %d\\n\", (unsigned int) i, test_data[i].ret, ret);\n        }\n    }\n    printf(\"OK\\n\");\n\n    return 0;\n}\n"
  },
  {
    "path": "test/default/sign2.exp",
    "content": "OK\n"
  },
  {
    "path": "test/default/siphashx24.c",
    "content": "\n#define TEST_NAME \"siphashx24\"\n#include \"cmptest.h\"\n\n#define MAXLEN 64\n\nint\nmain(void)\n{\n    unsigned char in[MAXLEN];\n    unsigned char out[crypto_shorthash_siphashx24_BYTES];\n    unsigned char k[crypto_shorthash_siphashx24_KEYBYTES];\n    size_t        i;\n    size_t        j;\n\n    for (i = 0; i < crypto_shorthash_siphashx24_KEYBYTES; ++i) {\n        k[i] = (unsigned char) i;\n    }\n    for (i = 0; i < MAXLEN; ++i) {\n        in[i] = (unsigned char) i;\n        crypto_shorthash_siphashx24(out, in, (unsigned long long) i, k);\n        for (j = 0; j < crypto_shorthash_siphashx24_BYTES; ++j) {\n            printf(\"%02x\", (unsigned int) out[j]);\n        }\n        printf(\"\\n\");\n    }\n    assert(crypto_shorthash_siphashx24_KEYBYTES >= crypto_shorthash_siphash24_KEYBYTES);\n    assert(crypto_shorthash_siphashx24_BYTES > crypto_shorthash_siphash24_BYTES);\n    assert(crypto_shorthash_siphashx24_bytes() == crypto_shorthash_siphashx24_BYTES);\n    assert(crypto_shorthash_siphashx24_keybytes() == crypto_shorthash_siphashx24_KEYBYTES);\n\n    return 0;\n}\n"
  },
  {
    "path": "test/default/siphashx24.exp",
    "content": "a3817f04ba25a8e66df67214c7550293\nda87c1d86b99af44347659119b22fc45\n8177228da4a45dc7fca38bdef60affe4\n9c70b60c5267a94e5f33b6b02985ed51\nf88164c12d9c8faf7d0f6e7c7bcd5579\n1368875980776f8854527a07690e9627\n14eeca338b208613485ea0308fd7a15e\na1f1ebbed8dbc153c0b84aa61ff08239\n3b62a9ba6258f5610f83e264f31497b4\n264499060ad9baabc47f8b02bb6d71ed\n00110dc378146956c95447d3f3d0fbba\n0151c568386b6677a2b4dc6f81e5dc18\nd626b266905ef35882634df68532c125\n9869e247e9c08b10d029934fc4b952f7\n31fcefac66d7de9c7ec7485fe4494902\n5493e99933b0a8117e08ec0f97cfc3d9\n6ee2a4ca67b054bbfd3315bf85230577\n473d06e8738db89854c066c47ae47740\na426e5e423bf4885294da481feaef723\n78017731cf65fab074d5208952512eb1\n9e25fc833f2290733e9344a5e83839eb\n568e495abe525a218a2214cd3e071d12\n4a29b54552d16b9a469c10528eff0aae\nc9d184ddd5a9f5e0cf8ce29a9abf691c\n2db479ae78bd50d8882a8a178a6132ad\n8ece5f042d5e447b5051b9eacb8d8f6f\n9c0b53b4b3c307e87eaee08678141f66\nabf248af69a6eae4bfd3eb2f129eeb94\n0664da1668574b88b935f3027358aef4\naa4b9dc4bf337de90cd4fd3c467c6ab7\nea5c7f471faf6bde2b1ad7d4686d2287\n2939b0183223fafc1723de4f52c43d35\n7c3956ca5eeafc3e363e9d556546eb68\n77c6077146f01c32b6b69d5f4ea9ffcf\n37a6986cb8847edf0925f0f1309b54de\na705f0e69da9a8f907241a2e923c8cc8\n3dc47d1f29c448461e9e76ed904f6711\n0d62bf01e6fc0e1a0d3c4751c5d3692b\n8c03468bca7c669ee4fd5e084bbee7b5\n528a5bb93baf2c9c4473cce5d0d22bd9\ndf6a301e95c95dad97ae0cc8c6913bd8\n801189902c857f39e73591285e70b6db\ne617346ac9c231bb3650ae34ccca0c5b\n27d93437efb721aa401821dcec5adf89\n89237d9ded9c5e78d8b1c9b166cc7342\n4a6d8091bf5e7d651189fa94a250b14c\n0e33f96055e7ae893ffc0e3dcf492902\ne61c432b720b19d18ec8d84bdc63151b\nf7e5aef549f782cf379055a608269b16\n438d030fd0b7a54fa837f2ad201a6403\na590d3ee4fbf04e3247e0d27f286423f\n5fe2c1a172fe93c4b15cd37caef9f538\n2c97325cbd06b36eb2133dd08b3a017c\n92c814227a6bca949ff0659f002ad39e\ndce850110bd8328cfbd50841d6911d87\n67f14984c7da791248e32bb5922583da\n1938f2cf72d54ee97e94166fa91d2a36\n74481e9646ed49fe0f6224301604698e\n57fca5de98a9d6d8006438d0583d8a1d\n9fecde1cefdc1cbed4763674d9575359\ne3040c00eb28f15366ca73cbd872e740\n7697009a6a831dfecca91c5993670f7a\n5853542321f567a005d547a4f04759bd\n5150d1772f50834a503e069a973fbd7c\n"
  },
  {
    "path": "test/default/sodium_core.c",
    "content": "\n#define TEST_NAME \"sodium_core\"\n#include \"cmptest.h\"\n\nstatic void\nmisuse_handler(void)\n{\n    printf(\"misuse_handler()\\n\");\n    exit(0);\n}\n\nint\nmain(void)\n{\n    sodium_set_misuse_handler(NULL);\n    sodium_set_misuse_handler(misuse_handler);\n    sodium_set_misuse_handler(NULL);\n\n    assert(sodium_init() == 1);\n\n    (void) sodium_runtime_has_neon();\n    (void) sodium_runtime_has_armcrypto();\n    (void) sodium_runtime_has_sse2();\n    (void) sodium_runtime_has_sse3();\n    (void) sodium_runtime_has_ssse3();\n    (void) sodium_runtime_has_sse41();\n    (void) sodium_runtime_has_avx();\n    (void) sodium_runtime_has_avx2();\n    (void) sodium_runtime_has_avx512f();\n    (void) sodium_runtime_has_pclmul();\n    (void) sodium_runtime_has_aesni();\n    (void) sodium_runtime_has_rdrand();\n\n    sodium_set_misuse_handler(misuse_handler);\n#if defined(__EMSCRIPTEN__) || defined(__wasm__) || defined(BENCHMARKS)\n    printf(\"misuse_handler()\\n\");\n#else\n    sodium_misuse();\n    printf(\"Misuse handler returned\\n\");\n#endif\n\n    return 0;\n}\n"
  },
  {
    "path": "test/default/sodium_core.exp",
    "content": "misuse_handler()\n"
  },
  {
    "path": "test/default/sodium_utils.c",
    "content": "#define TEST_NAME \"sodium_utils\"\n#include \"cmptest.h\"\n\nint\nmain(void)\n{\n    unsigned char  buf_add[1000];\n    unsigned char  buf1[1000];\n    unsigned char  buf2[1000];\n    unsigned char  buf1_rev[1000];\n    unsigned char  buf2_rev[1000];\n    unsigned char  nonce[24];\n    char           nonce_hex[49];\n    unsigned char *bin_padded;\n    size_t         bin_len, bin_len2;\n    size_t         bin_padded_len;\n    size_t         bin_padded_maxlen;\n    size_t         blocksize;\n    unsigned int   i;\n    unsigned int   j;\n\n    randombytes_buf(buf1, sizeof buf1);\n    memcpy(buf2, buf1, sizeof buf2);\n    printf(\"%d\\n\", sodium_memcmp(buf1, buf2, sizeof buf1));\n    sodium_memzero(buf1, 0U);\n    printf(\"%d\\n\", sodium_memcmp(buf1, buf2, sizeof buf1));\n    sodium_memzero(buf1, sizeof buf1 / 2);\n    printf(\"%d\\n\", sodium_memcmp(buf1, buf2, sizeof buf1));\n    printf(\"%d\\n\", sodium_memcmp(buf1, buf2, 0U));\n    sodium_memzero(buf2, sizeof buf2 / 2);\n    printf(\"%d\\n\", sodium_memcmp(buf1, buf2, sizeof buf1));\n    printf(\"%d\\n\", sodium_memcmp(buf1, guard_page, 0U));\n    printf(\"%d\\n\", sodium_memcmp(guard_page, buf2, 0U));\n    printf(\"%d\\n\", sodium_memcmp(guard_page, guard_page, 0U));\n    sodium_memzero(guard_page, 0U);\n\n    memset(nonce, 0, sizeof nonce);\n    sodium_increment(nonce, sizeof nonce);\n    printf(\"%s\\n\",\n           sodium_bin2hex(nonce_hex, sizeof nonce_hex, nonce, sizeof nonce));\n    memset(nonce, 255, sizeof nonce);\n    sodium_increment(nonce, sizeof nonce);\n    printf(\"%s\\n\",\n           sodium_bin2hex(nonce_hex, sizeof nonce_hex, nonce, sizeof nonce));\n    nonce[1] = 1U;\n    sodium_increment(nonce, sizeof nonce);\n    printf(\"%s\\n\",\n           sodium_bin2hex(nonce_hex, sizeof nonce_hex, nonce, sizeof nonce));\n    nonce[1] = 0U;\n    sodium_increment(nonce, sizeof nonce);\n    printf(\"%s\\n\",\n           sodium_bin2hex(nonce_hex, sizeof nonce_hex, nonce, sizeof nonce));\n    nonce[0] = 255U;\n    nonce[2] = 255U;\n    sodium_increment(nonce, sizeof nonce);\n    printf(\"%s\\n\",\n           sodium_bin2hex(nonce_hex, sizeof nonce_hex, nonce, sizeof nonce));\n    for (i = 0U; i < 1000U; i++) {\n        bin_len = (size_t) randombytes_uniform(sizeof buf1);\n        randombytes_buf(buf1, bin_len);\n        randombytes_buf(buf2, bin_len);\n        for (j = 0U; j < bin_len; j++) {\n            buf1_rev[bin_len - 1 - j] = buf1[j];\n            buf2_rev[bin_len - 1 - j] = buf2[j];\n        }\n        if (memcmp(buf1_rev, buf2_rev, bin_len) *\n            sodium_compare(buf1, buf2, bin_len) < 0) {\n            printf(\"sodium_compare() failure with length=%u\\n\",\n                   (unsigned int) bin_len);\n        }\n        memcpy(buf1, buf2, bin_len);\n        if (sodium_compare(buf1, buf2, bin_len)) {\n            printf(\"sodium_compare() equality failure with length=%u\\n\",\n                   (unsigned int) bin_len);\n        }\n    }\n    printf(\"%d\\n\", sodium_compare(buf1, NULL, 0U));\n    printf(\"%d\\n\", sodium_compare(NULL, buf1, 0U));\n    memset(buf1, 0, sizeof buf1);\n    if (sodium_is_zero(buf1, sizeof buf1) != 1) {\n        printf(\"sodium_is_zero() failed\\n\");\n    }\n    for (i = 0U; i < sizeof buf1; i++) {\n        buf1[i]++;\n        if (sodium_is_zero(buf1, sizeof buf1) != 0) {\n            printf(\"sodium_is_zero() failed\\n\");\n        }\n        buf1[i]--;\n    }\n    bin_len = randombytes_uniform(sizeof buf1);\n    randombytes_buf(buf1, bin_len);\n    memcpy(buf2, buf1, bin_len);\n    memset(buf_add, 0, bin_len);\n    j = randombytes_uniform(10000);\n    for (i = 0U; i < j; i++) {\n        sodium_increment(buf1, bin_len);\n        sodium_increment(buf_add, bin_len);\n    }\n    sodium_add(buf2, buf_add, bin_len);\n    if (sodium_compare(buf1, buf2, bin_len) != 0) {\n        printf(\"sodium_add() failed\\n\");\n    }\n    bin_len = randombytes_uniform(sizeof buf1);\n    randombytes_buf(buf1, bin_len);\n    memcpy(buf2, buf1, bin_len);\n    memset(buf_add, 0xff, bin_len);\n    sodium_increment(buf2, bin_len);\n    sodium_increment(buf2, 0U);\n    sodium_add(buf2, buf_add, bin_len);\n    sodium_add(buf2, buf_add, 0U);\n    if (sodium_compare(buf1, buf2, bin_len) != 0) {\n        printf(\"sodium_add() failed\\n\");\n    }\n    for (i = 0U; i < 1000U; i++) {\n        randombytes_buf(buf1, bin_len);\n        randombytes_buf(buf2, bin_len);\n        sodium_add(buf1, buf2, bin_len);\n        sodium_sub(buf1, buf2, bin_len);\n        sodium_sub(buf1, buf2, 0U);\n        if (sodium_is_zero(buf1, bin_len) &&\n            !sodium_is_zero(buf1, bin_len)) {\n            printf(\"sodium_sub() failed\\n\");\n        }\n        sodium_sub(buf1, buf1, bin_len);\n        if (!sodium_is_zero(buf1, bin_len)) {\n            printf(\"sodium_sub() failed\\n\");\n        }\n    }\n    assert(sizeof nonce >= 24U);\n    memset(nonce, 0xfe, 24U);\n    memset(nonce, 0xff, 6U);\n    sodium_increment(nonce, 8U);\n    printf(\"%s\\n\",\n           sodium_bin2hex(nonce_hex, sizeof nonce_hex, nonce, sizeof nonce));\n    memset(nonce, 0xfe, 24U);\n    memset(nonce, 0xff, 10U);\n    sodium_increment(nonce, 12U);\n    printf(\"%s\\n\",\n           sodium_bin2hex(nonce_hex, sizeof nonce_hex, nonce, sizeof nonce));\n    memset(nonce, 0xff, 22U);\n    sodium_increment(nonce, 24U);\n    printf(\"%s\\n\",\n           sodium_bin2hex(nonce_hex, sizeof nonce_hex, nonce, sizeof nonce));\n\n    assert(sizeof nonce >= 24U);\n    memset(nonce, 0xfe, 24U);\n    memset(nonce, 0xff, 6U);\n    sodium_add(nonce, nonce, 7U);\n    sodium_add(nonce, nonce, 8U);\n    printf(\"%s\\n\",\n           sodium_bin2hex(nonce_hex, sizeof nonce_hex, nonce, sizeof nonce));\n    memset(nonce, 0xfe, 24U);\n    memset(nonce, 0xff, 10U);\n    sodium_add(nonce, nonce, 11U);\n    sodium_add(nonce, nonce, 12U);\n    printf(\"%s\\n\",\n           sodium_bin2hex(nonce_hex, sizeof nonce_hex, nonce, sizeof nonce));\n    memset(nonce, 0xff, 22U);\n    sodium_add(nonce, nonce, 23U);\n    sodium_add(nonce, nonce, 24U);\n    printf(\"%s\\n\",\n           sodium_bin2hex(nonce_hex, sizeof nonce_hex, nonce, sizeof nonce));\n    sodium_add(nonce, nonce, 0U);\n    printf(\"%s\\n\",\n           sodium_bin2hex(nonce_hex, sizeof nonce_hex, nonce, sizeof nonce));\n    sodium_add(nonce, guard_page, 0U);\n    printf(\"%s\\n\",\n           sodium_bin2hex(nonce_hex, sizeof nonce_hex, nonce, sizeof nonce));\n    sodium_add(guard_page, nonce, 0U);\n\n    sodium_sub(nonce, nonce, 0U);\n    printf(\"%s\\n\",\n           sodium_bin2hex(nonce_hex, sizeof nonce_hex, nonce, sizeof nonce));\n    sodium_sub(nonce, guard_page, 0U);\n    printf(\"%s\\n\",\n           sodium_bin2hex(nonce_hex, sizeof nonce_hex, nonce, sizeof nonce));\n    sodium_sub(guard_page, nonce, 0U);\n\n    randombytes_buf(buf1, 64U);\n    randombytes_buf(buf2, 64U);\n    memset(buf_add, 0, 64U);\n    sodium_add(buf_add, buf1, 64U);\n    assert(!sodium_is_zero(buf_add, 64U));\n    sodium_add(buf_add, buf2, 64U);\n    assert(!sodium_is_zero(buf_add, 64U));\n    sodium_sub(buf_add, buf1, 64U);\n    assert(!sodium_is_zero(buf_add, 64U));\n    sodium_sub(buf_add, buf2, 64U);\n    assert(sodium_is_zero(buf_add, 64U));\n\n    for (i = 0; i < 2000U; i++) {\n        bin_len = randombytes_uniform(200U);\n        blocksize = 1U + randombytes_uniform(500U);\n        bin_padded_maxlen = bin_len + (blocksize - bin_len % blocksize);\n        bin_padded = (unsigned char *) sodium_malloc(bin_padded_maxlen);\n        randombytes_buf(bin_padded, bin_padded_maxlen);\n\n        assert(sodium_pad(&bin_padded_len, bin_padded, bin_len,\n                          blocksize, bin_padded_maxlen - 1U) == -1);\n        assert(sodium_pad(NULL, bin_padded, bin_len,\n                          blocksize, bin_padded_maxlen + 1U) == 0);\n        assert(sodium_pad(&bin_padded_len, bin_padded, bin_len,\n                          blocksize, bin_padded_maxlen + 1U) == 0);\n        assert(sodium_pad(&bin_padded_len, bin_padded, bin_len,\n                          0U, bin_padded_maxlen) == -1);\n        assert(sodium_pad(&bin_padded_len, bin_padded, bin_len,\n                          blocksize, bin_padded_maxlen) == 0);\n        assert(bin_padded_len == bin_padded_maxlen);\n\n        assert(sodium_unpad(&bin_len2, bin_padded, bin_padded_len,\n                            bin_padded_len + 1U) == -1);\n        assert(sodium_unpad(&bin_len2, bin_padded, bin_padded_len,\n                            0U) == -1);\n        assert(sodium_unpad(&bin_len2, bin_padded, bin_padded_len,\n                            blocksize) == 0);\n        assert(bin_len2 == bin_len);\n\n        sodium_free(bin_padded);\n    }\n\n    sodium_stackzero(512);\n\n    return 0;\n}\n"
  },
  {
    "path": "test/default/sodium_utils.exp",
    "content": "0\n0\n-1\n0\n0\n0\n0\n0\n010000000000000000000000000000000000000000000000\n000000000000000000000000000000000000000000000000\n010100000000000000000000000000000000000000000000\n020000000000000000000000000000000000000000000000\n0001ff000000000000000000000000000000000000000000\n0\n0\n000000000000fffefefefefefefefefefefefefefefefefe\n00000000000000000000fffefefefefefefefefefefefefe\n00000000000000000000000000000000000000000000fffe\nfcfffffffffffbfdfefefefefefefefefefefefefefefefe\nfcfffffffffffffffffffbfdfefefefefefefefefefefefe\nfcfffffffffffffffffffffffffffffffffffffffffffbfd\nfcfffffffffffffffffffffffffffffffffffffffffffbfd\nfcfffffffffffffffffffffffffffffffffffffffffffbfd\nfcfffffffffffffffffffffffffffffffffffffffffffbfd\nfcfffffffffffffffffffffffffffffffffffffffffffbfd\n"
  },
  {
    "path": "test/default/sodium_utils2.c",
    "content": "\n#include <stdlib.h>\n#include <sys/types.h>\n\n#include <limits.h>\n#ifdef HAVE_CATCHABLE_SEGV\n# include <signal.h>\n#endif\n#ifndef _WIN32\n# include <unistd.h>\n#endif\n\n#define TEST_NAME \"sodium_utils2\"\n#include \"cmptest.h\"\n\n#ifdef __SANITIZE_ADDRESS__\n# warning The sodium_utils2 test is expected to fail with address sanitizer\n#endif\n\n#undef sodium_malloc\n#undef sodium_free\n#undef sodium_allocarray\n\n__attribute__((noreturn)) static void\nsegv_handler(int sig)\n{\n    (void) sig;\n\n    printf(\"Intentional segfault / bus error caught\\n\");\n    printf(\"OK\\n\");\n#ifdef SIG_DFL\n# ifdef SIGPROT\n    signal(SIGPROT, SIG_DFL);\n# endif\n# ifdef SIGSEGV\n    signal(SIGSEGV, SIG_DFL);\n# endif\n# ifdef SIGBUS\n    signal(SIGBUS, SIG_DFL);\n# endif\n# ifdef SIGABRT\n    signal(SIGABRT, SIG_DFL);\n# endif\n#endif\n    _exit(0);\n}\n\nint\nmain(void)\n{\n    void         *buf;\n    size_t        size;\n    unsigned int  i;\n\n#ifdef BENCHMARKS\n    return 0;\n#endif\n\n    if (sodium_malloc(SIZE_MAX - 1U) != NULL) {\n        return 1;\n    }\n    if (sodium_malloc(0U) == NULL) {\n        return 1;\n    }\n    if (sodium_allocarray(SIZE_MAX / 2U + 1U, SIZE_MAX / 2U) != NULL) {\n        return 1;\n    }\n    sodium_free(sodium_allocarray(0U, 0U));\n    sodium_free(sodium_allocarray(0U, 1U));\n    sodium_free(sodium_allocarray(1U, 0U));\n\n    buf = sodium_allocarray(1000U, 50U);\n    memset(buf, 0, 50000U);\n    sodium_free(buf);\n\n    sodium_free(sodium_malloc(0U));\n    sodium_free(NULL);\n    for (i = 0U; i < 10000U; i++) {\n        size = 1U + randombytes_uniform(100000U);\n        buf  = sodium_malloc(size);\n        assert(buf != NULL);\n        memset(buf, i, size);\n        sodium_mprotect_noaccess(buf);\n        sodium_free(buf);\n    }\n    printf(\"OK\\n\");\n#ifdef SIG_DFL\n# ifdef SIGPROT\n    signal(SIGPROT, segv_handler);\n# endif\n# ifdef SIGSEGV\n    signal(SIGSEGV, segv_handler);\n# endif\n# ifdef SIGBUS\n    signal(SIGBUS, segv_handler);\n# endif\n# ifdef SIGABRT\n    signal(SIGABRT, segv_handler);\n# endif\n#endif\n    size = 1U + randombytes_uniform(100000U);\n    buf  = sodium_malloc(size);\n    assert(buf != NULL);\n\n/* old versions of asan emit a warning because they don't support mlock*() */\n#ifndef __SANITIZE_ADDRESS__\n    sodium_mprotect_readonly(buf);\n    sodium_mprotect_readwrite(buf);\n#endif\n\n#if defined(HAVE_CATCHABLE_SEGV) && !defined(__EMSCRIPTEN__) && !defined(__SANITIZE_ADDRESS__)\n    sodium_memzero(((unsigned char *) buf) + size, 1U);\n    sodium_mprotect_noaccess(buf);\n    sodium_free(buf);\n    printf(\"Overflow not caught\\n\");\n#else\n    segv_handler(0);\n#endif\n    return 0;\n}\n"
  },
  {
    "path": "test/default/sodium_utils2.exp",
    "content": "OK\nIntentional segfault / bus error caught\nOK\n"
  },
  {
    "path": "test/default/sodium_utils3.c",
    "content": "\n#include <stdlib.h>\n#include <sys/types.h>\n\n#include <limits.h>\n#ifdef HAVE_CATCHABLE_SEGV\n# include <signal.h>\n#endif\n#ifndef _WIN32\n# include <unistd.h>\n#endif\n\n#define TEST_NAME \"sodium_utils3\"\n#include \"cmptest.h\"\n\n#ifdef __SANITIZE_ADDRESS__\n# warning The sodium_utils3 test is expected to fail with address sanitizer\n#endif\n#ifdef __SANITIZE_THREAD__\n# warning The sodium_utils3 test is expected to fail with thread sanitizer\n#endif\n\n__attribute__((noreturn)) static void\nsegv_handler(int sig)\n{\n    (void) sig;\n\n    printf(\"Intentional segfault / bus error caught\\n\");\n    printf(\"OK\\n\");\n#ifdef SIG_DFL\n# ifdef SIGPROT\n    signal(SIGPROT, SIG_DFL);\n# endif\n# ifdef SIGSEGV\n    signal(SIGSEGV, SIG_DFL);\n# endif\n# ifdef SIGBUS\n    signal(SIGBUS, SIG_DFL);\n# endif\n# ifdef SIGABRT\n    signal(SIGABRT, SIG_DFL);\n# endif\n#endif\n    _exit(0);\n}\n\nint\nmain(void)\n{\n    void * buf;\n    size_t size;\n\n#ifdef BENCHMARKS\n    return 0;\n#endif\n\n#ifdef SIG_DFL\n# ifdef SIGPROT\n    signal(SIGPROT, segv_handler);\n# endif\n# ifdef SIGSEGV\n    signal(SIGSEGV, segv_handler);\n# endif\n# ifdef SIGBUS\n    signal(SIGBUS, segv_handler);\n# endif\n# ifdef SIGABRT\n    signal(SIGABRT, segv_handler);\n# endif\n#endif\n    size = 1U + randombytes_uniform(100000U);\n    buf  = sodium_malloc(size);\n    assert(buf != NULL);\n\n/* old versions of asan emit a warning because they don't support mlock*() */\n#ifndef __SANITIZE_ADDRESS__\n    sodium_mprotect_noaccess(buf);\n    sodium_mprotect_readwrite(buf);\n#endif\n\n#if defined(HAVE_CATCHABLE_SEGV) && !defined(__EMSCRIPTEN__) && !defined(__SANITIZE_ADDRESS__) && !defined(__SANITIZE_THREAD__)\n    sodium_memzero(((unsigned char *) buf) - 8, 8U);\n    sodium_mprotect_readonly(buf);\n    sodium_free(buf);\n    printf(\"Underflow not caught\\n\");\n#else\n    segv_handler(0);\n#endif\n    return 0;\n}\n"
  },
  {
    "path": "test/default/sodium_utils3.exp",
    "content": "Intentional segfault / bus error caught\nOK\n"
  },
  {
    "path": "test/default/sodium_utils4.c",
    "content": "#define TEST_NAME \"sodium_utils4\"\n#include \"cmptest.h\"\n\n#undef sodium_malloc\n#undef sodium_free\n#undef sodium_allocarray\n\nint\nmain(void)\n{\n    void *buf;\n\n    buf = sodium_allocarray(10, 100);\n    assert(buf != NULL);\n    memset(buf, 0, 1000);\n    sodium_free(buf);\n    printf(\"allocarray: ok\\n\");\n\n    buf = sodium_allocarray(0, 100);\n    sodium_free(buf);\n    printf(\"allocarray zero count: ok\\n\");\n\n    buf = sodium_allocarray(100, 0);\n    sodium_free(buf);\n    printf(\"allocarray zero size: ok\\n\");\n\n    buf = sodium_allocarray(SIZE_MAX / 2 + 1, SIZE_MAX / 2);\n    assert(buf == NULL);\n    printf(\"allocarray overflow: ok\\n\");\n\n    buf = sodium_malloc(SIZE_MAX - 1U);\n    assert(buf == NULL);\n    printf(\"malloc SIZE_MAX-1: ok\\n\");\n\n    sodium_free(NULL);\n    printf(\"free NULL: ok\\n\");\n\n    buf = sodium_malloc(100);\n    assert(buf != NULL);\n    memset(buf, 0x42, 100);\n    sodium_mprotect_noaccess(buf);\n    sodium_mprotect_readwrite(buf);\n    assert(((unsigned char *) buf)[0] == 0x42);\n    sodium_mprotect_readonly(buf);\n    assert(((unsigned char *) buf)[0] == 0x42);\n    sodium_mprotect_readwrite(buf);\n    sodium_free(buf);\n    printf(\"mprotect cycle: ok\\n\");\n\n    return 0;\n}\n"
  },
  {
    "path": "test/default/sodium_utils4.exp",
    "content": "allocarray: ok\nallocarray zero count: ok\nallocarray zero size: ok\nallocarray overflow: ok\nmalloc SIZE_MAX-1: ok\nfree NULL: ok\nmprotect cycle: ok\n"
  },
  {
    "path": "test/default/sodium_version.c",
    "content": "\n#define TEST_NAME \"sodium_version\"\n#include \"cmptest.h\"\n\nint\nmain(void)\n{\n    printf(\"%d\\n\", sodium_version_string() != NULL);\n    printf(\"%d\\n\", sodium_library_version_major() > 0);\n    printf(\"%d\\n\", sodium_library_version_minor() >= 0);\n#ifdef SODIUM_LIBRARY_MINIMAL\n    assert(sodium_library_minimal() == 1);\n#else\n    assert(sodium_library_minimal() == 0);\n#endif\n\n    return 0;\n}\n"
  },
  {
    "path": "test/default/sodium_version.exp",
    "content": "1\n1\n1\n"
  },
  {
    "path": "test/default/stream.c",
    "content": "\n#define TEST_NAME \"stream\"\n#include \"cmptest.h\"\n\nstatic const unsigned char firstkey[32] = {\n    0x1b, 0x27, 0x55, 0x64, 0x73, 0xe9, 0x85,\n    0xd4, 0x62, 0xcd, 0x51, 0x19, 0x7a, 0x9a,\n    0x46, 0xc7, 0x60, 0x09, 0x54, 0x9e, 0xac,\n    0x64, 0x74, 0xf2, 0x06, 0xc4, 0xee, 0x08,\n    0x44, 0xf6, 0x83, 0x89\n};\n\nstatic const unsigned char nonce[24] = {\n    0x69, 0x69, 0x6e, 0xe9, 0x55, 0xb6,\n    0x2b, 0x73, 0xcd, 0x62, 0xbd, 0xa8,\n    0x75, 0xfc, 0x73, 0xd6, 0x82, 0x19,\n    0xe0, 0x03, 0x6b, 0x7a, 0x0b, 0x37\n};\n\nint\nmain(void)\n{\n    unsigned char  h[32];\n    char          *hex;\n    unsigned char *output;\n    size_t         sizeof_hex = 17 * 64 * 2 + 1;\n    size_t         sizeof_output = 4194304;\n    int            i;\n\n    output = (unsigned char *) sodium_malloc(sizeof_output);\n    hex = (char *) sodium_malloc(sizeof_hex);\n\n    randombytes_buf(output, sizeof_output);\n    crypto_stream(output, sizeof_output, nonce, firstkey);\n    crypto_hash_sha256(h, output, sizeof_output);\n    sodium_bin2hex(hex, sizeof_hex, h, sizeof h);\n    printf(\"%s\\n\", hex);\n\n    assert(sizeof_output > 4000);\n\n    crypto_stream_xsalsa20_xor_ic(output, output, 4000, nonce, 0U, firstkey);\n    for (i = 0; i < 4000; i++) {\n        assert(output[i] == 0);\n    }\n    crypto_stream_xsalsa20_xor_ic(output, output, 4000, nonce, 1U, firstkey);\n    crypto_hash_sha256(h, output, sizeof_output);\n    sodium_bin2hex(hex, sizeof_hex, h, sizeof h);\n    printf(\"%s\\n\", hex);\n\n    for (i = 0; i < 64; i++) {\n        memset(output, i, 64);\n        crypto_stream(output, (int) (i & 0xff), nonce, firstkey);\n        sodium_bin2hex(hex, sizeof_hex, output, 64);\n        printf(\"%s\\n\", hex);\n    }\n\n    memset(output, 0, 192);\n    crypto_stream_xsalsa20_xor_ic(output, output, 192, nonce,\n                                  (1ULL << 32) - 1ULL, firstkey);\n    sodium_bin2hex(hex, 192 * 2 + 1, output, 192);\n    printf(\"%s\\n\", hex);\n\n    for (i = 16; i > 0; i--) {\n        memset(output, 0, 17 * 64);\n        crypto_stream_xsalsa20_xor_ic(output, output, 17 * 64, nonce,\n                                      (1ULL << 32) - (unsigned long long) i,\n                                      firstkey);\n        sodium_bin2hex(hex, 2 * 17 * 64 + 1, output, 17 * 64);\n        printf(\"%s\\n\", hex);\n    }\n\n    sodium_free(hex);\n    sodium_free(output);\n\n    assert(crypto_stream_keybytes() > 0U);\n    assert(crypto_stream_noncebytes() > 0U);\n    assert(crypto_stream_messagebytes_max() > 0U);\n    assert(strcmp(crypto_stream_primitive(), \"xsalsa20\") == 0);\n    assert(crypto_stream_keybytes() == crypto_stream_xsalsa20_keybytes());\n    assert(crypto_stream_noncebytes() == crypto_stream_xsalsa20_noncebytes());\n    assert(crypto_stream_messagebytes_max() == crypto_stream_xsalsa20_messagebytes_max());\n\n    return 0;\n}\n"
  },
  {
    "path": "test/default/stream.exp",
    "content": "662b9d0e3463029156069b12f918691a98f7dfb2ca0393c96bbfc6b1fbd630a2\n0cc9ffaf60a99d221b548e9762385a231121ab226d1c610d2661ced26b6ad5ee\n00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\nee010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101\neea60202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202\neea6a703030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303\neea6a725040404040404040404040404040404040404040404040404040404040404040404040404040404040404040404040404040404040404040404040404\neea6a7251c0505050505050505050505050505050505050505050505050505050505050505050505050505050505050505050505050505050505050505050505\neea6a7251c1e06060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606\neea6a7251c1e72070707070707070707070707070707070707070707070707070707070707070707070707070707070707070707070707070707070707070707\neea6a7251c1e72910808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808\neea6a7251c1e72916d09090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909\neea6a7251c1e72916d110a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a\neea6a7251c1e72916d11c20b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b\neea6a7251c1e72916d11c2cb0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c\neea6a7251c1e72916d11c2cb210d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d\neea6a7251c1e72916d11c2cb214d0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e\neea6a7251c1e72916d11c2cb214d3c0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f\neea6a7251c1e72916d11c2cb214d3c25101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010\neea6a7251c1e72916d11c2cb214d3c25251111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111\neea6a7251c1e72916d11c2cb214d3c25253912121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212\neea6a7251c1e72916d11c2cb214d3c25253912131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313\neea6a7251c1e72916d11c2cb214d3c252539121d1414141414141414141414141414141414141414141414141414141414141414141414141414141414141414\neea6a7251c1e72916d11c2cb214d3c252539121d8e15151515151515151515151515151515151515151515151515151515151515151515151515151515151515\neea6a7251c1e72916d11c2cb214d3c252539121d8e23161616161616161616161616161616161616161616161616161616161616161616161616161616161616\neea6a7251c1e72916d11c2cb214d3c252539121d8e234e1717171717171717171717171717171717171717171717171717171717171717171717171717171717\neea6a7251c1e72916d11c2cb214d3c252539121d8e234e6518181818181818181818181818181818181818181818181818181818181818181818181818181818\neea6a7251c1e72916d11c2cb214d3c252539121d8e234e652d191919191919191919191919191919191919191919191919191919191919191919191919191919\neea6a7251c1e72916d11c2cb214d3c252539121d8e234e652d651a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a\neea6a7251c1e72916d11c2cb214d3c252539121d8e234e652d651f1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b\neea6a7251c1e72916d11c2cb214d3c252539121d8e234e652d651fa41c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c\neea6a7251c1e72916d11c2cb214d3c252539121d8e234e652d651fa4c81d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d\neea6a7251c1e72916d11c2cb214d3c252539121d8e234e652d651fa4c8cf1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e\neea6a7251c1e72916d11c2cb214d3c252539121d8e234e652d651fa4c8cff81f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f\neea6a7251c1e72916d11c2cb214d3c252539121d8e234e652d651fa4c8cff8802020202020202020202020202020202020202020202020202020202020202020\neea6a7251c1e72916d11c2cb214d3c252539121d8e234e652d651fa4c8cff8803021212121212121212121212121212121212121212121212121212121212121\neea6a7251c1e72916d11c2cb214d3c252539121d8e234e652d651fa4c8cff880309e222222222222222222222222222222222222222222222222222222222222\neea6a7251c1e72916d11c2cb214d3c252539121d8e234e652d651fa4c8cff880309e642323232323232323232323232323232323232323232323232323232323\neea6a7251c1e72916d11c2cb214d3c252539121d8e234e652d651fa4c8cff880309e645a24242424242424242424242424242424242424242424242424242424\neea6a7251c1e72916d11c2cb214d3c252539121d8e234e652d651fa4c8cff880309e645a74252525252525252525252525252525252525252525252525252525\neea6a7251c1e72916d11c2cb214d3c252539121d8e234e652d651fa4c8cff880309e645a74e92626262626262626262626262626262626262626262626262626\neea6a7251c1e72916d11c2cb214d3c252539121d8e234e652d651fa4c8cff880309e645a74e9e027272727272727272727272727272727272727272727272727\neea6a7251c1e72916d11c2cb214d3c252539121d8e234e652d651fa4c8cff880309e645a74e9e0a6282828282828282828282828282828282828282828282828\neea6a7251c1e72916d11c2cb214d3c252539121d8e234e652d651fa4c8cff880309e645a74e9e0a60d2929292929292929292929292929292929292929292929\neea6a7251c1e72916d11c2cb214d3c252539121d8e234e652d651fa4c8cff880309e645a74e9e0a60d822a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a\neea6a7251c1e72916d11c2cb214d3c252539121d8e234e652d651fa4c8cff880309e645a74e9e0a60d82432b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b\neea6a7251c1e72916d11c2cb214d3c252539121d8e234e652d651fa4c8cff880309e645a74e9e0a60d8243ac2c2c2c2c2c2c2c2c2c2c2c2c2c2c2c2c2c2c2c2c\neea6a7251c1e72916d11c2cb214d3c252539121d8e234e652d651fa4c8cff880309e645a74e9e0a60d8243acd92d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d\neea6a7251c1e72916d11c2cb214d3c252539121d8e234e652d651fa4c8cff880309e645a74e9e0a60d8243acd9172e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e\neea6a7251c1e72916d11c2cb214d3c252539121d8e234e652d651fa4c8cff880309e645a74e9e0a60d8243acd9177a2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f\neea6a7251c1e72916d11c2cb214d3c252539121d8e234e652d651fa4c8cff880309e645a74e9e0a60d8243acd9177ab530303030303030303030303030303030\neea6a7251c1e72916d11c2cb214d3c252539121d8e234e652d651fa4c8cff880309e645a74e9e0a60d8243acd9177ab51a313131313131313131313131313131\neea6a7251c1e72916d11c2cb214d3c252539121d8e234e652d651fa4c8cff880309e645a74e9e0a60d8243acd9177ab51a1b3232323232323232323232323232\neea6a7251c1e72916d11c2cb214d3c252539121d8e234e652d651fa4c8cff880309e645a74e9e0a60d8243acd9177ab51a1beb33333333333333333333333333\neea6a7251c1e72916d11c2cb214d3c252539121d8e234e652d651fa4c8cff880309e645a74e9e0a60d8243acd9177ab51a1beb8d343434343434343434343434\neea6a7251c1e72916d11c2cb214d3c252539121d8e234e652d651fa4c8cff880309e645a74e9e0a60d8243acd9177ab51a1beb8d5a3535353535353535353535\neea6a7251c1e72916d11c2cb214d3c252539121d8e234e652d651fa4c8cff880309e645a74e9e0a60d8243acd9177ab51a1beb8d5a2f36363636363636363636\neea6a7251c1e72916d11c2cb214d3c252539121d8e234e652d651fa4c8cff880309e645a74e9e0a60d8243acd9177ab51a1beb8d5a2f5d373737373737373737\neea6a7251c1e72916d11c2cb214d3c252539121d8e234e652d651fa4c8cff880309e645a74e9e0a60d8243acd9177ab51a1beb8d5a2f5d703838383838383838\neea6a7251c1e72916d11c2cb214d3c252539121d8e234e652d651fa4c8cff880309e645a74e9e0a60d8243acd9177ab51a1beb8d5a2f5d700c39393939393939\neea6a7251c1e72916d11c2cb214d3c252539121d8e234e652d651fa4c8cff880309e645a74e9e0a60d8243acd9177ab51a1beb8d5a2f5d700c093a3a3a3a3a3a\neea6a7251c1e72916d11c2cb214d3c252539121d8e234e652d651fa4c8cff880309e645a74e9e0a60d8243acd9177ab51a1beb8d5a2f5d700c093c3b3b3b3b3b\neea6a7251c1e72916d11c2cb214d3c252539121d8e234e652d651fa4c8cff880309e645a74e9e0a60d8243acd9177ab51a1beb8d5a2f5d700c093c5e3c3c3c3c\neea6a7251c1e72916d11c2cb214d3c252539121d8e234e652d651fa4c8cff880309e645a74e9e0a60d8243acd9177ab51a1beb8d5a2f5d700c093c5e553d3d3d\neea6a7251c1e72916d11c2cb214d3c252539121d8e234e652d651fa4c8cff880309e645a74e9e0a60d8243acd9177ab51a1beb8d5a2f5d700c093c5e55853e3e\neea6a7251c1e72916d11c2cb214d3c252539121d8e234e652d651fa4c8cff880309e645a74e9e0a60d8243acd9177ab51a1beb8d5a2f5d700c093c5e5585573f\nb46af0bf761b78533e01a0dd7e07216c9710ef35f09a28d1e5fa469b602472ca5085f6dbcc6a6b51fb89986f8feca85658d05701f5677d0bb340a1f2c769547219f5420c62ffff7d1304dad82b6dec2bdc59ec12a9e18a774eed128c2c90610a9d4c75c0817d64817a76bbc12746971ae897af210a072c1bc9fb044e086b7bfe85fad95d5c2bbb28c12de5755b1ccde63e93cc892b4d2bcbd7dc0706b094c2492e329e3b9a98a9cbc7d01031cf1d5861f576e1291df6286c28146b0b4df9ad44\ne825afc24db1b82ca241ef61bbd68003af106fbc07c41df1493b963b5ce45b72540ababca323c71ca3c903e1eec355121fbe9fad8bef90721c819eeba906ef7300b84696929a86d2a95aacebef2f38c489617398a39bc36762b5de6ccf544dde7fa47a839e3bf36903e3b7e9539c5c1c1794cfc991a414e2eef16bcf1b16d07cfb1ff0d77e5940a858f9025563334efeea808e3a82a54a0998e5587fddcb8b48e05de4cdb6ed1df7ddfca886d7122590844bc060178e13ba22a3c60f6fd53bb48f12931a32c81cbdde25e2fe3141682ff0443a9fb890e0520d328f91e19c4c0b0d05bd391351459dd5b15da237cfb3c36c95cfbfb076637b9181d9d9b42ae8ee3655eef4662a0c8737e5620ed7760a577afac32aa37baa35323a52287dfba632abcbff3e40aee172648c3d6f8e468262a49bbc2fb7876e97bb9d06ce6038e9eb425927287fb9ac67e41be494a883668602f4fcf76cc2c6bc62c3240bb63c233316630a645d5309af5c49813b8cc23e149ce40db089c7124431935e93fcc34dd1326fc6b1b8e71c37a3ee97a334f2c6bf579c5e986858a88b07136dd6b254543b16e14f38c7cb22cdb41a9028e3a6af9233c45ba06d1667746d48fc7b5c47601237fb2bde1e5a5551a1b4bf848734310103edb75a815e4ced8be43163ca13b3e399e91bf32b28de0b37c17d155f7129e23aec3deb2416122d7008a5684d5d0080f15e5eef787d292097cd781b3f95449b5f5a059a2cfbcd2cb10cc88a4759f2227f20d550c4cee567ab3e297191e8f1c3d537f1fc265c93ce900ae588d7d6a971cb0f0ae663a41347797bc4384568e439e10fa3cb24fefddf51202b17e35e5e3aba42fb067d15854bdeb400e8e96dfd097d5ffa793f3135cc819edefbf18c26c7e7a830988e8e1612a06c2d1f3bc03efb7ce5ca6538c4be7ba033a8f369fc479d527ca82cbc8198ef815ba7946fb7f4e7f503d280bddc767e39c4fb0ed54c86065a301ce502d083eeabcbcfd79dfc0de676d444c500d83d123367639d741e4fc4d87eea89f203fadd7e38f9a17b01a34ffe48f2469565751aca063c59614007c41aff83247f8daae106f5cd50177b4b98388e6963cf51baaa1de17e90831b5977016aa71973485b4d8524b7aa4f6b7e0a8d994662b922aaab519ab0f8e0d1513ccf9906615f1bb36a01a9916b27484414e3f3b559e52cf3380b422df71eda463fd1ef24a8d84e82d9718fb46d51d13687352ea76737209d618e77119b066161e2d93cc6ac5cb77a7a0d14988e3355e07a2f02bed2f8cec08807c544efd8ccc5ca3475e8be3143997d402aecfb56e80697f57179e6d631e38741ff3ef57a7ff80cb46af0bf761b78533e01a0dd7e07216c9710ef35f09a28d1e5fa469b602472ca5085f6dbcc6a6b51fb89986f8feca85658d05701f5677d0bb340a1f2c769547219f5420c62ffff7d1304dad82b6dec2bdc59ec12a9e18a774eed128c2c90610a9d4c75c0817d64817a76bbc12746971ae897af210a072c1bc9fb044e086b7bfe\n00b84696929a86d2a95aacebef2f38c489617398a39bc36762b5de6ccf544dde7fa47a839e3bf36903e3b7e9539c5c1c1794cfc991a414e2eef16bcf1b16d07cfb1ff0d77e5940a858f9025563334efeea808e3a82a54a0998e5587fddcb8b48e05de4cdb6ed1df7ddfca886d7122590844bc060178e13ba22a3c60f6fd53bb48f12931a32c81cbdde25e2fe3141682ff0443a9fb890e0520d328f91e19c4c0b0d05bd391351459dd5b15da237cfb3c36c95cfbfb076637b9181d9d9b42ae8ee3655eef4662a0c8737e5620ed7760a577afac32aa37baa35323a52287dfba632abcbff3e40aee172648c3d6f8e468262a49bbc2fb7876e97bb9d06ce6038e9eb425927287fb9ac67e41be494a883668602f4fcf76cc2c6bc62c3240bb63c233316630a645d5309af5c49813b8cc23e149ce40db089c7124431935e93fcc34dd1326fc6b1b8e71c37a3ee97a334f2c6bf579c5e986858a88b07136dd6b254543b16e14f38c7cb22cdb41a9028e3a6af9233c45ba06d1667746d48fc7b5c47601237fb2bde1e5a5551a1b4bf848734310103edb75a815e4ced8be43163ca13b3e399e91bf32b28de0b37c17d155f7129e23aec3deb2416122d7008a5684d5d0080f15e5eef787d292097cd781b3f95449b5f5a059a2cfbcd2cb10cc88a4759f2227f20d550c4cee567ab3e297191e8f1c3d537f1fc265c93ce900ae588d7d6a971cb0f0ae663a41347797bc4384568e439e10fa3cb24fefddf51202b17e35e5e3aba42fb067d15854bdeb400e8e96dfd097d5ffa793f3135cc819edefbf18c26c7e7a830988e8e1612a06c2d1f3bc03efb7ce5ca6538c4be7ba033a8f369fc479d527ca82cbc8198ef815ba7946fb7f4e7f503d280bddc767e39c4fb0ed54c86065a301ce502d083eeabcbcfd79dfc0de676d444c500d83d123367639d741e4fc4d87eea89f203fadd7e38f9a17b01a34ffe48f2469565751aca063c59614007c41aff83247f8daae106f5cd50177b4b98388e6963cf51baaa1de17e90831b5977016aa71973485b4d8524b7aa4f6b7e0a8d994662b922aaab519ab0f8e0d1513ccf9906615f1bb36a01a9916b27484414e3f3b559e52cf3380b422df71eda463fd1ef24a8d84e82d9718fb46d51d13687352ea76737209d618e77119b066161e2d93cc6ac5cb77a7a0d14988e3355e07a2f02bed2f8cec08807c544efd8ccc5ca3475e8be3143997d402aecfb56e80697f57179e6d631e38741ff3ef57a7ff80cb46af0bf761b78533e01a0dd7e07216c9710ef35f09a28d1e5fa469b602472ca5085f6dbcc6a6b51fb89986f8feca85658d05701f5677d0bb340a1f2c769547219f5420c62ffff7d1304dad82b6dec2bdc59ec12a9e18a774eed128c2c90610a9d4c75c0817d64817a76bbc12746971ae897af210a072c1bc9fb044e086b7bfe85fad95d5c2bbb28c12de5755b1ccde63e93cc892b4d2bcbd7dc0706b094c2492e329e3b9a98a9cbc7d01031cf1d5861f576e1291df6286c28146b0b4df9ad44\nfb1ff0d77e5940a858f9025563334efeea808e3a82a54a0998e5587fddcb8b48e05de4cdb6ed1df7ddfca886d7122590844bc060178e13ba22a3c60f6fd53bb48f12931a32c81cbdde25e2fe3141682ff0443a9fb890e0520d328f91e19c4c0b0d05bd391351459dd5b15da237cfb3c36c95cfbfb076637b9181d9d9b42ae8ee3655eef4662a0c8737e5620ed7760a577afac32aa37baa35323a52287dfba632abcbff3e40aee172648c3d6f8e468262a49bbc2fb7876e97bb9d06ce6038e9eb425927287fb9ac67e41be494a883668602f4fcf76cc2c6bc62c3240bb63c233316630a645d5309af5c49813b8cc23e149ce40db089c7124431935e93fcc34dd1326fc6b1b8e71c37a3ee97a334f2c6bf579c5e986858a88b07136dd6b254543b16e14f38c7cb22cdb41a9028e3a6af9233c45ba06d1667746d48fc7b5c47601237fb2bde1e5a5551a1b4bf848734310103edb75a815e4ced8be43163ca13b3e399e91bf32b28de0b37c17d155f7129e23aec3deb2416122d7008a5684d5d0080f15e5eef787d292097cd781b3f95449b5f5a059a2cfbcd2cb10cc88a4759f2227f20d550c4cee567ab3e297191e8f1c3d537f1fc265c93ce900ae588d7d6a971cb0f0ae663a41347797bc4384568e439e10fa3cb24fefddf51202b17e35e5e3aba42fb067d15854bdeb400e8e96dfd097d5ffa793f3135cc819edefbf18c26c7e7a830988e8e1612a06c2d1f3bc03efb7ce5ca6538c4be7ba033a8f369fc479d527ca82cbc8198ef815ba7946fb7f4e7f503d280bddc767e39c4fb0ed54c86065a301ce502d083eeabcbcfd79dfc0de676d444c500d83d123367639d741e4fc4d87eea89f203fadd7e38f9a17b01a34ffe48f2469565751aca063c59614007c41aff83247f8daae106f5cd50177b4b98388e6963cf51baaa1de17e90831b5977016aa71973485b4d8524b7aa4f6b7e0a8d994662b922aaab519ab0f8e0d1513ccf9906615f1bb36a01a9916b27484414e3f3b559e52cf3380b422df71eda463fd1ef24a8d84e82d9718fb46d51d13687352ea76737209d618e77119b066161e2d93cc6ac5cb77a7a0d14988e3355e07a2f02bed2f8cec08807c544efd8ccc5ca3475e8be3143997d402aecfb56e80697f57179e6d631e38741ff3ef57a7ff80cb46af0bf761b78533e01a0dd7e07216c9710ef35f09a28d1e5fa469b602472ca5085f6dbcc6a6b51fb89986f8feca85658d05701f5677d0bb340a1f2c769547219f5420c62ffff7d1304dad82b6dec2bdc59ec12a9e18a774eed128c2c90610a9d4c75c0817d64817a76bbc12746971ae897af210a072c1bc9fb044e086b7bfe85fad95d5c2bbb28c12de5755b1ccde63e93cc892b4d2bcbd7dc0706b094c2492e329e3b9a98a9cbc7d01031cf1d5861f576e1291df6286c28146b0b4df9ad44a8d40ce05f73fa3de1a92f948c38fe88a296db696a16742c5073aed1f26c6289675c28c763ab90a070b643ecf1c50f4165b82cf5b8eda4137903765f42cbaef5\n8f12931a32c81cbdde25e2fe3141682ff0443a9fb890e0520d328f91e19c4c0b0d05bd391351459dd5b15da237cfb3c36c95cfbfb076637b9181d9d9b42ae8ee3655eef4662a0c8737e5620ed7760a577afac32aa37baa35323a52287dfba632abcbff3e40aee172648c3d6f8e468262a49bbc2fb7876e97bb9d06ce6038e9eb425927287fb9ac67e41be494a883668602f4fcf76cc2c6bc62c3240bb63c233316630a645d5309af5c49813b8cc23e149ce40db089c7124431935e93fcc34dd1326fc6b1b8e71c37a3ee97a334f2c6bf579c5e986858a88b07136dd6b254543b16e14f38c7cb22cdb41a9028e3a6af9233c45ba06d1667746d48fc7b5c47601237fb2bde1e5a5551a1b4bf848734310103edb75a815e4ced8be43163ca13b3e399e91bf32b28de0b37c17d155f7129e23aec3deb2416122d7008a5684d5d0080f15e5eef787d292097cd781b3f95449b5f5a059a2cfbcd2cb10cc88a4759f2227f20d550c4cee567ab3e297191e8f1c3d537f1fc265c93ce900ae588d7d6a971cb0f0ae663a41347797bc4384568e439e10fa3cb24fefddf51202b17e35e5e3aba42fb067d15854bdeb400e8e96dfd097d5ffa793f3135cc819edefbf18c26c7e7a830988e8e1612a06c2d1f3bc03efb7ce5ca6538c4be7ba033a8f369fc479d527ca82cbc8198ef815ba7946fb7f4e7f503d280bddc767e39c4fb0ed54c86065a301ce502d083eeabcbcfd79dfc0de676d444c500d83d123367639d741e4fc4d87eea89f203fadd7e38f9a17b01a34ffe48f2469565751aca063c59614007c41aff83247f8daae106f5cd50177b4b98388e6963cf51baaa1de17e90831b5977016aa71973485b4d8524b7aa4f6b7e0a8d994662b922aaab519ab0f8e0d1513ccf9906615f1bb36a01a9916b27484414e3f3b559e52cf3380b422df71eda463fd1ef24a8d84e82d9718fb46d51d13687352ea76737209d618e77119b066161e2d93cc6ac5cb77a7a0d14988e3355e07a2f02bed2f8cec08807c544efd8ccc5ca3475e8be3143997d402aecfb56e80697f57179e6d631e38741ff3ef57a7ff80cb46af0bf761b78533e01a0dd7e07216c9710ef35f09a28d1e5fa469b602472ca5085f6dbcc6a6b51fb89986f8feca85658d05701f5677d0bb340a1f2c769547219f5420c62ffff7d1304dad82b6dec2bdc59ec12a9e18a774eed128c2c90610a9d4c75c0817d64817a76bbc12746971ae897af210a072c1bc9fb044e086b7bfe85fad95d5c2bbb28c12de5755b1ccde63e93cc892b4d2bcbd7dc0706b094c2492e329e3b9a98a9cbc7d01031cf1d5861f576e1291df6286c28146b0b4df9ad44a8d40ce05f73fa3de1a92f948c38fe88a296db696a16742c5073aed1f26c6289675c28c763ab90a070b643ecf1c50f4165b82cf5b8eda4137903765f42cbaef571f6303486a899aef83ca9c8c1e53af717293a6e219675aa1f479eac02d30df16649fc1c83b24855617385b5330b054c13f8fe8670ea2383552fe7fa096a6ff0\n3655eef4662a0c8737e5620ed7760a577afac32aa37baa35323a52287dfba632abcbff3e40aee172648c3d6f8e468262a49bbc2fb7876e97bb9d06ce6038e9eb425927287fb9ac67e41be494a883668602f4fcf76cc2c6bc62c3240bb63c233316630a645d5309af5c49813b8cc23e149ce40db089c7124431935e93fcc34dd1326fc6b1b8e71c37a3ee97a334f2c6bf579c5e986858a88b07136dd6b254543b16e14f38c7cb22cdb41a9028e3a6af9233c45ba06d1667746d48fc7b5c47601237fb2bde1e5a5551a1b4bf848734310103edb75a815e4ced8be43163ca13b3e399e91bf32b28de0b37c17d155f7129e23aec3deb2416122d7008a5684d5d0080f15e5eef787d292097cd781b3f95449b5f5a059a2cfbcd2cb10cc88a4759f2227f20d550c4cee567ab3e297191e8f1c3d537f1fc265c93ce900ae588d7d6a971cb0f0ae663a41347797bc4384568e439e10fa3cb24fefddf51202b17e35e5e3aba42fb067d15854bdeb400e8e96dfd097d5ffa793f3135cc819edefbf18c26c7e7a830988e8e1612a06c2d1f3bc03efb7ce5ca6538c4be7ba033a8f369fc479d527ca82cbc8198ef815ba7946fb7f4e7f503d280bddc767e39c4fb0ed54c86065a301ce502d083eeabcbcfd79dfc0de676d444c500d83d123367639d741e4fc4d87eea89f203fadd7e38f9a17b01a34ffe48f2469565751aca063c59614007c41aff83247f8daae106f5cd50177b4b98388e6963cf51baaa1de17e90831b5977016aa71973485b4d8524b7aa4f6b7e0a8d994662b922aaab519ab0f8e0d1513ccf9906615f1bb36a01a9916b27484414e3f3b559e52cf3380b422df71eda463fd1ef24a8d84e82d9718fb46d51d13687352ea76737209d618e77119b066161e2d93cc6ac5cb77a7a0d14988e3355e07a2f02bed2f8cec08807c544efd8ccc5ca3475e8be3143997d402aecfb56e80697f57179e6d631e38741ff3ef57a7ff80cb46af0bf761b78533e01a0dd7e07216c9710ef35f09a28d1e5fa469b602472ca5085f6dbcc6a6b51fb89986f8feca85658d05701f5677d0bb340a1f2c769547219f5420c62ffff7d1304dad82b6dec2bdc59ec12a9e18a774eed128c2c90610a9d4c75c0817d64817a76bbc12746971ae897af210a072c1bc9fb044e086b7bfe85fad95d5c2bbb28c12de5755b1ccde63e93cc892b4d2bcbd7dc0706b094c2492e329e3b9a98a9cbc7d01031cf1d5861f576e1291df6286c28146b0b4df9ad44a8d40ce05f73fa3de1a92f948c38fe88a296db696a16742c5073aed1f26c6289675c28c763ab90a070b643ecf1c50f4165b82cf5b8eda4137903765f42cbaef571f6303486a899aef83ca9c8c1e53af717293a6e219675aa1f479eac02d30df16649fc1c83b24855617385b5330b054c13f8fe8670ea2383552fe7fa096a6ff0d90d3922c26b77fb632041df8a3c585f295488aa98d73bc6a3a43eac5644b59440e02ed8a6b9a8acb9f33e732c1850ed6f811975a84b65cb8775df2f55f15f58\n425927287fb9ac67e41be494a883668602f4fcf76cc2c6bc62c3240bb63c233316630a645d5309af5c49813b8cc23e149ce40db089c7124431935e93fcc34dd1326fc6b1b8e71c37a3ee97a334f2c6bf579c5e986858a88b07136dd6b254543b16e14f38c7cb22cdb41a9028e3a6af9233c45ba06d1667746d48fc7b5c47601237fb2bde1e5a5551a1b4bf848734310103edb75a815e4ced8be43163ca13b3e399e91bf32b28de0b37c17d155f7129e23aec3deb2416122d7008a5684d5d0080f15e5eef787d292097cd781b3f95449b5f5a059a2cfbcd2cb10cc88a4759f2227f20d550c4cee567ab3e297191e8f1c3d537f1fc265c93ce900ae588d7d6a971cb0f0ae663a41347797bc4384568e439e10fa3cb24fefddf51202b17e35e5e3aba42fb067d15854bdeb400e8e96dfd097d5ffa793f3135cc819edefbf18c26c7e7a830988e8e1612a06c2d1f3bc03efb7ce5ca6538c4be7ba033a8f369fc479d527ca82cbc8198ef815ba7946fb7f4e7f503d280bddc767e39c4fb0ed54c86065a301ce502d083eeabcbcfd79dfc0de676d444c500d83d123367639d741e4fc4d87eea89f203fadd7e38f9a17b01a34ffe48f2469565751aca063c59614007c41aff83247f8daae106f5cd50177b4b98388e6963cf51baaa1de17e90831b5977016aa71973485b4d8524b7aa4f6b7e0a8d994662b922aaab519ab0f8e0d1513ccf9906615f1bb36a01a9916b27484414e3f3b559e52cf3380b422df71eda463fd1ef24a8d84e82d9718fb46d51d13687352ea76737209d618e77119b066161e2d93cc6ac5cb77a7a0d14988e3355e07a2f02bed2f8cec08807c544efd8ccc5ca3475e8be3143997d402aecfb56e80697f57179e6d631e38741ff3ef57a7ff80cb46af0bf761b78533e01a0dd7e07216c9710ef35f09a28d1e5fa469b602472ca5085f6dbcc6a6b51fb89986f8feca85658d05701f5677d0bb340a1f2c769547219f5420c62ffff7d1304dad82b6dec2bdc59ec12a9e18a774eed128c2c90610a9d4c75c0817d64817a76bbc12746971ae897af210a072c1bc9fb044e086b7bfe85fad95d5c2bbb28c12de5755b1ccde63e93cc892b4d2bcbd7dc0706b094c2492e329e3b9a98a9cbc7d01031cf1d5861f576e1291df6286c28146b0b4df9ad44a8d40ce05f73fa3de1a92f948c38fe88a296db696a16742c5073aed1f26c6289675c28c763ab90a070b643ecf1c50f4165b82cf5b8eda4137903765f42cbaef571f6303486a899aef83ca9c8c1e53af717293a6e219675aa1f479eac02d30df16649fc1c83b24855617385b5330b054c13f8fe8670ea2383552fe7fa096a6ff0d90d3922c26b77fb632041df8a3c585f295488aa98d73bc6a3a43eac5644b59440e02ed8a6b9a8acb9f33e732c1850ed6f811975a84b65cb8775df2f55f15f58af8a27936cf507dcc7ec480ffce410373c81374fddcbad758a1976894d58e68d84f3da8a0bbbfd3d62d09679378ee94686866e0ef101e05ccb7cc8fdf6f31cbb\n326fc6b1b8e71c37a3ee97a334f2c6bf579c5e986858a88b07136dd6b254543b16e14f38c7cb22cdb41a9028e3a6af9233c45ba06d1667746d48fc7b5c47601237fb2bde1e5a5551a1b4bf848734310103edb75a815e4ced8be43163ca13b3e399e91bf32b28de0b37c17d155f7129e23aec3deb2416122d7008a5684d5d0080f15e5eef787d292097cd781b3f95449b5f5a059a2cfbcd2cb10cc88a4759f2227f20d550c4cee567ab3e297191e8f1c3d537f1fc265c93ce900ae588d7d6a971cb0f0ae663a41347797bc4384568e439e10fa3cb24fefddf51202b17e35e5e3aba42fb067d15854bdeb400e8e96dfd097d5ffa793f3135cc819edefbf18c26c7e7a830988e8e1612a06c2d1f3bc03efb7ce5ca6538c4be7ba033a8f369fc479d527ca82cbc8198ef815ba7946fb7f4e7f503d280bddc767e39c4fb0ed54c86065a301ce502d083eeabcbcfd79dfc0de676d444c500d83d123367639d741e4fc4d87eea89f203fadd7e38f9a17b01a34ffe48f2469565751aca063c59614007c41aff83247f8daae106f5cd50177b4b98388e6963cf51baaa1de17e90831b5977016aa71973485b4d8524b7aa4f6b7e0a8d994662b922aaab519ab0f8e0d1513ccf9906615f1bb36a01a9916b27484414e3f3b559e52cf3380b422df71eda463fd1ef24a8d84e82d9718fb46d51d13687352ea76737209d618e77119b066161e2d93cc6ac5cb77a7a0d14988e3355e07a2f02bed2f8cec08807c544efd8ccc5ca3475e8be3143997d402aecfb56e80697f57179e6d631e38741ff3ef57a7ff80cb46af0bf761b78533e01a0dd7e07216c9710ef35f09a28d1e5fa469b602472ca5085f6dbcc6a6b51fb89986f8feca85658d05701f5677d0bb340a1f2c769547219f5420c62ffff7d1304dad82b6dec2bdc59ec12a9e18a774eed128c2c90610a9d4c75c0817d64817a76bbc12746971ae897af210a072c1bc9fb044e086b7bfe85fad95d5c2bbb28c12de5755b1ccde63e93cc892b4d2bcbd7dc0706b094c2492e329e3b9a98a9cbc7d01031cf1d5861f576e1291df6286c28146b0b4df9ad44a8d40ce05f73fa3de1a92f948c38fe88a296db696a16742c5073aed1f26c6289675c28c763ab90a070b643ecf1c50f4165b82cf5b8eda4137903765f42cbaef571f6303486a899aef83ca9c8c1e53af717293a6e219675aa1f479eac02d30df16649fc1c83b24855617385b5330b054c13f8fe8670ea2383552fe7fa096a6ff0d90d3922c26b77fb632041df8a3c585f295488aa98d73bc6a3a43eac5644b59440e02ed8a6b9a8acb9f33e732c1850ed6f811975a84b65cb8775df2f55f15f58af8a27936cf507dcc7ec480ffce410373c81374fddcbad758a1976894d58e68d84f3da8a0bbbfd3d62d09679378ee94686866e0ef101e05ccb7cc8fdf6f31cbbf757c4d17aa607bc1decad9a65b8120adb7ef3b9d18a9c07226adf6f73f93c2ff79956f5e19b7c613dff1e907a8381863eb9ca536b44a3034cd522d6caa1766e\n37fb2bde1e5a5551a1b4bf848734310103edb75a815e4ced8be43163ca13b3e399e91bf32b28de0b37c17d155f7129e23aec3deb2416122d7008a5684d5d0080f15e5eef787d292097cd781b3f95449b5f5a059a2cfbcd2cb10cc88a4759f2227f20d550c4cee567ab3e297191e8f1c3d537f1fc265c93ce900ae588d7d6a971cb0f0ae663a41347797bc4384568e439e10fa3cb24fefddf51202b17e35e5e3aba42fb067d15854bdeb400e8e96dfd097d5ffa793f3135cc819edefbf18c26c7e7a830988e8e1612a06c2d1f3bc03efb7ce5ca6538c4be7ba033a8f369fc479d527ca82cbc8198ef815ba7946fb7f4e7f503d280bddc767e39c4fb0ed54c86065a301ce502d083eeabcbcfd79dfc0de676d444c500d83d123367639d741e4fc4d87eea89f203fadd7e38f9a17b01a34ffe48f2469565751aca063c59614007c41aff83247f8daae106f5cd50177b4b98388e6963cf51baaa1de17e90831b5977016aa71973485b4d8524b7aa4f6b7e0a8d994662b922aaab519ab0f8e0d1513ccf9906615f1bb36a01a9916b27484414e3f3b559e52cf3380b422df71eda463fd1ef24a8d84e82d9718fb46d51d13687352ea76737209d618e77119b066161e2d93cc6ac5cb77a7a0d14988e3355e07a2f02bed2f8cec08807c544efd8ccc5ca3475e8be3143997d402aecfb56e80697f57179e6d631e38741ff3ef57a7ff80cb46af0bf761b78533e01a0dd7e07216c9710ef35f09a28d1e5fa469b602472ca5085f6dbcc6a6b51fb89986f8feca85658d05701f5677d0bb340a1f2c769547219f5420c62ffff7d1304dad82b6dec2bdc59ec12a9e18a774eed128c2c90610a9d4c75c0817d64817a76bbc12746971ae897af210a072c1bc9fb044e086b7bfe85fad95d5c2bbb28c12de5755b1ccde63e93cc892b4d2bcbd7dc0706b094c2492e329e3b9a98a9cbc7d01031cf1d5861f576e1291df6286c28146b0b4df9ad44a8d40ce05f73fa3de1a92f948c38fe88a296db696a16742c5073aed1f26c6289675c28c763ab90a070b643ecf1c50f4165b82cf5b8eda4137903765f42cbaef571f6303486a899aef83ca9c8c1e53af717293a6e219675aa1f479eac02d30df16649fc1c83b24855617385b5330b054c13f8fe8670ea2383552fe7fa096a6ff0d90d3922c26b77fb632041df8a3c585f295488aa98d73bc6a3a43eac5644b59440e02ed8a6b9a8acb9f33e732c1850ed6f811975a84b65cb8775df2f55f15f58af8a27936cf507dcc7ec480ffce410373c81374fddcbad758a1976894d58e68d84f3da8a0bbbfd3d62d09679378ee94686866e0ef101e05ccb7cc8fdf6f31cbbf757c4d17aa607bc1decad9a65b8120adb7ef3b9d18a9c07226adf6f73f93c2ff79956f5e19b7c613dff1e907a8381863eb9ca536b44a3034cd522d6caa1766eda2dadd40a0f32380a30c0a0be3ad991007c8778ec855f0c2e9869718f07562ef2bce1d6fa7b551454eda2f86a514d0cd754188715d5f73cbe47d940b8a98a2d\nf15e5eef787d292097cd781b3f95449b5f5a059a2cfbcd2cb10cc88a4759f2227f20d550c4cee567ab3e297191e8f1c3d537f1fc265c93ce900ae588d7d6a971cb0f0ae663a41347797bc4384568e439e10fa3cb24fefddf51202b17e35e5e3aba42fb067d15854bdeb400e8e96dfd097d5ffa793f3135cc819edefbf18c26c7e7a830988e8e1612a06c2d1f3bc03efb7ce5ca6538c4be7ba033a8f369fc479d527ca82cbc8198ef815ba7946fb7f4e7f503d280bddc767e39c4fb0ed54c86065a301ce502d083eeabcbcfd79dfc0de676d444c500d83d123367639d741e4fc4d87eea89f203fadd7e38f9a17b01a34ffe48f2469565751aca063c59614007c41aff83247f8daae106f5cd50177b4b98388e6963cf51baaa1de17e90831b5977016aa71973485b4d8524b7aa4f6b7e0a8d994662b922aaab519ab0f8e0d1513ccf9906615f1bb36a01a9916b27484414e3f3b559e52cf3380b422df71eda463fd1ef24a8d84e82d9718fb46d51d13687352ea76737209d618e77119b066161e2d93cc6ac5cb77a7a0d14988e3355e07a2f02bed2f8cec08807c544efd8ccc5ca3475e8be3143997d402aecfb56e80697f57179e6d631e38741ff3ef57a7ff80cb46af0bf761b78533e01a0dd7e07216c9710ef35f09a28d1e5fa469b602472ca5085f6dbcc6a6b51fb89986f8feca85658d05701f5677d0bb340a1f2c769547219f5420c62ffff7d1304dad82b6dec2bdc59ec12a9e18a774eed128c2c90610a9d4c75c0817d64817a76bbc12746971ae897af210a072c1bc9fb044e086b7bfe85fad95d5c2bbb28c12de5755b1ccde63e93cc892b4d2bcbd7dc0706b094c2492e329e3b9a98a9cbc7d01031cf1d5861f576e1291df6286c28146b0b4df9ad44a8d40ce05f73fa3de1a92f948c38fe88a296db696a16742c5073aed1f26c6289675c28c763ab90a070b643ecf1c50f4165b82cf5b8eda4137903765f42cbaef571f6303486a899aef83ca9c8c1e53af717293a6e219675aa1f479eac02d30df16649fc1c83b24855617385b5330b054c13f8fe8670ea2383552fe7fa096a6ff0d90d3922c26b77fb632041df8a3c585f295488aa98d73bc6a3a43eac5644b59440e02ed8a6b9a8acb9f33e732c1850ed6f811975a84b65cb8775df2f55f15f58af8a27936cf507dcc7ec480ffce410373c81374fddcbad758a1976894d58e68d84f3da8a0bbbfd3d62d09679378ee94686866e0ef101e05ccb7cc8fdf6f31cbbf757c4d17aa607bc1decad9a65b8120adb7ef3b9d18a9c07226adf6f73f93c2ff79956f5e19b7c613dff1e907a8381863eb9ca536b44a3034cd522d6caa1766eda2dadd40a0f32380a30c0a0be3ad991007c8778ec855f0c2e9869718f07562ef2bce1d6fa7b551454eda2f86a514d0cd754188715d5f73cbe47d940b8a98a2de9cb66cba3830b2e732aa836df30b279f434ac98182114990d0b8d423813f75b5527dfa7982a167712380786bda08836976c21358a0d50e735f3efcb59ff69ac\ncb0f0ae663a41347797bc4384568e439e10fa3cb24fefddf51202b17e35e5e3aba42fb067d15854bdeb400e8e96dfd097d5ffa793f3135cc819edefbf18c26c7e7a830988e8e1612a06c2d1f3bc03efb7ce5ca6538c4be7ba033a8f369fc479d527ca82cbc8198ef815ba7946fb7f4e7f503d280bddc767e39c4fb0ed54c86065a301ce502d083eeabcbcfd79dfc0de676d444c500d83d123367639d741e4fc4d87eea89f203fadd7e38f9a17b01a34ffe48f2469565751aca063c59614007c41aff83247f8daae106f5cd50177b4b98388e6963cf51baaa1de17e90831b5977016aa71973485b4d8524b7aa4f6b7e0a8d994662b922aaab519ab0f8e0d1513ccf9906615f1bb36a01a9916b27484414e3f3b559e52cf3380b422df71eda463fd1ef24a8d84e82d9718fb46d51d13687352ea76737209d618e77119b066161e2d93cc6ac5cb77a7a0d14988e3355e07a2f02bed2f8cec08807c544efd8ccc5ca3475e8be3143997d402aecfb56e80697f57179e6d631e38741ff3ef57a7ff80cb46af0bf761b78533e01a0dd7e07216c9710ef35f09a28d1e5fa469b602472ca5085f6dbcc6a6b51fb89986f8feca85658d05701f5677d0bb340a1f2c769547219f5420c62ffff7d1304dad82b6dec2bdc59ec12a9e18a774eed128c2c90610a9d4c75c0817d64817a76bbc12746971ae897af210a072c1bc9fb044e086b7bfe85fad95d5c2bbb28c12de5755b1ccde63e93cc892b4d2bcbd7dc0706b094c2492e329e3b9a98a9cbc7d01031cf1d5861f576e1291df6286c28146b0b4df9ad44a8d40ce05f73fa3de1a92f948c38fe88a296db696a16742c5073aed1f26c6289675c28c763ab90a070b643ecf1c50f4165b82cf5b8eda4137903765f42cbaef571f6303486a899aef83ca9c8c1e53af717293a6e219675aa1f479eac02d30df16649fc1c83b24855617385b5330b054c13f8fe8670ea2383552fe7fa096a6ff0d90d3922c26b77fb632041df8a3c585f295488aa98d73bc6a3a43eac5644b59440e02ed8a6b9a8acb9f33e732c1850ed6f811975a84b65cb8775df2f55f15f58af8a27936cf507dcc7ec480ffce410373c81374fddcbad758a1976894d58e68d84f3da8a0bbbfd3d62d09679378ee94686866e0ef101e05ccb7cc8fdf6f31cbbf757c4d17aa607bc1decad9a65b8120adb7ef3b9d18a9c07226adf6f73f93c2ff79956f5e19b7c613dff1e907a8381863eb9ca536b44a3034cd522d6caa1766eda2dadd40a0f32380a30c0a0be3ad991007c8778ec855f0c2e9869718f07562ef2bce1d6fa7b551454eda2f86a514d0cd754188715d5f73cbe47d940b8a98a2de9cb66cba3830b2e732aa836df30b279f434ac98182114990d0b8d423813f75b5527dfa7982a167712380786bda08836976c21358a0d50e735f3efcb59ff69ace37ddc48ef2b83bcc1931cf6673dfa726ac5229b83be548b60416ed5c7daf3a3201db9aadd1ffe632a7d3012d94668d5191010dd35d8ba9dc881005e112f2808\ne7a830988e8e1612a06c2d1f3bc03efb7ce5ca6538c4be7ba033a8f369fc479d527ca82cbc8198ef815ba7946fb7f4e7f503d280bddc767e39c4fb0ed54c86065a301ce502d083eeabcbcfd79dfc0de676d444c500d83d123367639d741e4fc4d87eea89f203fadd7e38f9a17b01a34ffe48f2469565751aca063c59614007c41aff83247f8daae106f5cd50177b4b98388e6963cf51baaa1de17e90831b5977016aa71973485b4d8524b7aa4f6b7e0a8d994662b922aaab519ab0f8e0d1513ccf9906615f1bb36a01a9916b27484414e3f3b559e52cf3380b422df71eda463fd1ef24a8d84e82d9718fb46d51d13687352ea76737209d618e77119b066161e2d93cc6ac5cb77a7a0d14988e3355e07a2f02bed2f8cec08807c544efd8ccc5ca3475e8be3143997d402aecfb56e80697f57179e6d631e38741ff3ef57a7ff80cb46af0bf761b78533e01a0dd7e07216c9710ef35f09a28d1e5fa469b602472ca5085f6dbcc6a6b51fb89986f8feca85658d05701f5677d0bb340a1f2c769547219f5420c62ffff7d1304dad82b6dec2bdc59ec12a9e18a774eed128c2c90610a9d4c75c0817d64817a76bbc12746971ae897af210a072c1bc9fb044e086b7bfe85fad95d5c2bbb28c12de5755b1ccde63e93cc892b4d2bcbd7dc0706b094c2492e329e3b9a98a9cbc7d01031cf1d5861f576e1291df6286c28146b0b4df9ad44a8d40ce05f73fa3de1a92f948c38fe88a296db696a16742c5073aed1f26c6289675c28c763ab90a070b643ecf1c50f4165b82cf5b8eda4137903765f42cbaef571f6303486a899aef83ca9c8c1e53af717293a6e219675aa1f479eac02d30df16649fc1c83b24855617385b5330b054c13f8fe8670ea2383552fe7fa096a6ff0d90d3922c26b77fb632041df8a3c585f295488aa98d73bc6a3a43eac5644b59440e02ed8a6b9a8acb9f33e732c1850ed6f811975a84b65cb8775df2f55f15f58af8a27936cf507dcc7ec480ffce410373c81374fddcbad758a1976894d58e68d84f3da8a0bbbfd3d62d09679378ee94686866e0ef101e05ccb7cc8fdf6f31cbbf757c4d17aa607bc1decad9a65b8120adb7ef3b9d18a9c07226adf6f73f93c2ff79956f5e19b7c613dff1e907a8381863eb9ca536b44a3034cd522d6caa1766eda2dadd40a0f32380a30c0a0be3ad991007c8778ec855f0c2e9869718f07562ef2bce1d6fa7b551454eda2f86a514d0cd754188715d5f73cbe47d940b8a98a2de9cb66cba3830b2e732aa836df30b279f434ac98182114990d0b8d423813f75b5527dfa7982a167712380786bda08836976c21358a0d50e735f3efcb59ff69ace37ddc48ef2b83bcc1931cf6673dfa726ac5229b83be548b60416ed5c7daf3a3201db9aadd1ffe632a7d3012d94668d5191010dd35d8ba9dc881005e112f28083f085c8094de717acd2516b631760110c176bff91d3e8cd4d2df79f79d450e54a5007e34caf791d9ac10aa98f45e52d987addf59f4beb5e62ef59e2e1b199413\n5a301ce502d083eeabcbcfd79dfc0de676d444c500d83d123367639d741e4fc4d87eea89f203fadd7e38f9a17b01a34ffe48f2469565751aca063c59614007c41aff83247f8daae106f5cd50177b4b98388e6963cf51baaa1de17e90831b5977016aa71973485b4d8524b7aa4f6b7e0a8d994662b922aaab519ab0f8e0d1513ccf9906615f1bb36a01a9916b27484414e3f3b559e52cf3380b422df71eda463fd1ef24a8d84e82d9718fb46d51d13687352ea76737209d618e77119b066161e2d93cc6ac5cb77a7a0d14988e3355e07a2f02bed2f8cec08807c544efd8ccc5ca3475e8be3143997d402aecfb56e80697f57179e6d631e38741ff3ef57a7ff80cb46af0bf761b78533e01a0dd7e07216c9710ef35f09a28d1e5fa469b602472ca5085f6dbcc6a6b51fb89986f8feca85658d05701f5677d0bb340a1f2c769547219f5420c62ffff7d1304dad82b6dec2bdc59ec12a9e18a774eed128c2c90610a9d4c75c0817d64817a76bbc12746971ae897af210a072c1bc9fb044e086b7bfe85fad95d5c2bbb28c12de5755b1ccde63e93cc892b4d2bcbd7dc0706b094c2492e329e3b9a98a9cbc7d01031cf1d5861f576e1291df6286c28146b0b4df9ad44a8d40ce05f73fa3de1a92f948c38fe88a296db696a16742c5073aed1f26c6289675c28c763ab90a070b643ecf1c50f4165b82cf5b8eda4137903765f42cbaef571f6303486a899aef83ca9c8c1e53af717293a6e219675aa1f479eac02d30df16649fc1c83b24855617385b5330b054c13f8fe8670ea2383552fe7fa096a6ff0d90d3922c26b77fb632041df8a3c585f295488aa98d73bc6a3a43eac5644b59440e02ed8a6b9a8acb9f33e732c1850ed6f811975a84b65cb8775df2f55f15f58af8a27936cf507dcc7ec480ffce410373c81374fddcbad758a1976894d58e68d84f3da8a0bbbfd3d62d09679378ee94686866e0ef101e05ccb7cc8fdf6f31cbbf757c4d17aa607bc1decad9a65b8120adb7ef3b9d18a9c07226adf6f73f93c2ff79956f5e19b7c613dff1e907a8381863eb9ca536b44a3034cd522d6caa1766eda2dadd40a0f32380a30c0a0be3ad991007c8778ec855f0c2e9869718f07562ef2bce1d6fa7b551454eda2f86a514d0cd754188715d5f73cbe47d940b8a98a2de9cb66cba3830b2e732aa836df30b279f434ac98182114990d0b8d423813f75b5527dfa7982a167712380786bda08836976c21358a0d50e735f3efcb59ff69ace37ddc48ef2b83bcc1931cf6673dfa726ac5229b83be548b60416ed5c7daf3a3201db9aadd1ffe632a7d3012d94668d5191010dd35d8ba9dc881005e112f28083f085c8094de717acd2516b631760110c176bff91d3e8cd4d2df79f79d450e54a5007e34caf791d9ac10aa98f45e52d987addf59f4beb5e62ef59e2e1b1994131fa61652a5574f50fa159d47f8f28776e25e21b51103b91afc8345cfbedf46586e17269bfb521ae07f2cd202d308110abcb2b6f0157a55bc6aa6936812c1074d\n1aff83247f8daae106f5cd50177b4b98388e6963cf51baaa1de17e90831b5977016aa71973485b4d8524b7aa4f6b7e0a8d994662b922aaab519ab0f8e0d1513ccf9906615f1bb36a01a9916b27484414e3f3b559e52cf3380b422df71eda463fd1ef24a8d84e82d9718fb46d51d13687352ea76737209d618e77119b066161e2d93cc6ac5cb77a7a0d14988e3355e07a2f02bed2f8cec08807c544efd8ccc5ca3475e8be3143997d402aecfb56e80697f57179e6d631e38741ff3ef57a7ff80cb46af0bf761b78533e01a0dd7e07216c9710ef35f09a28d1e5fa469b602472ca5085f6dbcc6a6b51fb89986f8feca85658d05701f5677d0bb340a1f2c769547219f5420c62ffff7d1304dad82b6dec2bdc59ec12a9e18a774eed128c2c90610a9d4c75c0817d64817a76bbc12746971ae897af210a072c1bc9fb044e086b7bfe85fad95d5c2bbb28c12de5755b1ccde63e93cc892b4d2bcbd7dc0706b094c2492e329e3b9a98a9cbc7d01031cf1d5861f576e1291df6286c28146b0b4df9ad44a8d40ce05f73fa3de1a92f948c38fe88a296db696a16742c5073aed1f26c6289675c28c763ab90a070b643ecf1c50f4165b82cf5b8eda4137903765f42cbaef571f6303486a899aef83ca9c8c1e53af717293a6e219675aa1f479eac02d30df16649fc1c83b24855617385b5330b054c13f8fe8670ea2383552fe7fa096a6ff0d90d3922c26b77fb632041df8a3c585f295488aa98d73bc6a3a43eac5644b59440e02ed8a6b9a8acb9f33e732c1850ed6f811975a84b65cb8775df2f55f15f58af8a27936cf507dcc7ec480ffce410373c81374fddcbad758a1976894d58e68d84f3da8a0bbbfd3d62d09679378ee94686866e0ef101e05ccb7cc8fdf6f31cbbf757c4d17aa607bc1decad9a65b8120adb7ef3b9d18a9c07226adf6f73f93c2ff79956f5e19b7c613dff1e907a8381863eb9ca536b44a3034cd522d6caa1766eda2dadd40a0f32380a30c0a0be3ad991007c8778ec855f0c2e9869718f07562ef2bce1d6fa7b551454eda2f86a514d0cd754188715d5f73cbe47d940b8a98a2de9cb66cba3830b2e732aa836df30b279f434ac98182114990d0b8d423813f75b5527dfa7982a167712380786bda08836976c21358a0d50e735f3efcb59ff69ace37ddc48ef2b83bcc1931cf6673dfa726ac5229b83be548b60416ed5c7daf3a3201db9aadd1ffe632a7d3012d94668d5191010dd35d8ba9dc881005e112f28083f085c8094de717acd2516b631760110c176bff91d3e8cd4d2df79f79d450e54a5007e34caf791d9ac10aa98f45e52d987addf59f4beb5e62ef59e2e1b1994131fa61652a5574f50fa159d47f8f28776e25e21b51103b91afc8345cfbedf46586e17269bfb521ae07f2cd202d308110abcb2b6f0157a55bc6aa6936812c1074dcd3dc1365d431608687e158b5b3622375e0ddda9cfccb2f16b4a966fc3ecababaa3ea4f8311b37c4578c4692a0d2bdd251c18a886c9b48671531db2759828959\ncf9906615f1bb36a01a9916b27484414e3f3b559e52cf3380b422df71eda463fd1ef24a8d84e82d9718fb46d51d13687352ea76737209d618e77119b066161e2d93cc6ac5cb77a7a0d14988e3355e07a2f02bed2f8cec08807c544efd8ccc5ca3475e8be3143997d402aecfb56e80697f57179e6d631e38741ff3ef57a7ff80cb46af0bf761b78533e01a0dd7e07216c9710ef35f09a28d1e5fa469b602472ca5085f6dbcc6a6b51fb89986f8feca85658d05701f5677d0bb340a1f2c769547219f5420c62ffff7d1304dad82b6dec2bdc59ec12a9e18a774eed128c2c90610a9d4c75c0817d64817a76bbc12746971ae897af210a072c1bc9fb044e086b7bfe85fad95d5c2bbb28c12de5755b1ccde63e93cc892b4d2bcbd7dc0706b094c2492e329e3b9a98a9cbc7d01031cf1d5861f576e1291df6286c28146b0b4df9ad44a8d40ce05f73fa3de1a92f948c38fe88a296db696a16742c5073aed1f26c6289675c28c763ab90a070b643ecf1c50f4165b82cf5b8eda4137903765f42cbaef571f6303486a899aef83ca9c8c1e53af717293a6e219675aa1f479eac02d30df16649fc1c83b24855617385b5330b054c13f8fe8670ea2383552fe7fa096a6ff0d90d3922c26b77fb632041df8a3c585f295488aa98d73bc6a3a43eac5644b59440e02ed8a6b9a8acb9f33e732c1850ed6f811975a84b65cb8775df2f55f15f58af8a27936cf507dcc7ec480ffce410373c81374fddcbad758a1976894d58e68d84f3da8a0bbbfd3d62d09679378ee94686866e0ef101e05ccb7cc8fdf6f31cbbf757c4d17aa607bc1decad9a65b8120adb7ef3b9d18a9c07226adf6f73f93c2ff79956f5e19b7c613dff1e907a8381863eb9ca536b44a3034cd522d6caa1766eda2dadd40a0f32380a30c0a0be3ad991007c8778ec855f0c2e9869718f07562ef2bce1d6fa7b551454eda2f86a514d0cd754188715d5f73cbe47d940b8a98a2de9cb66cba3830b2e732aa836df30b279f434ac98182114990d0b8d423813f75b5527dfa7982a167712380786bda08836976c21358a0d50e735f3efcb59ff69ace37ddc48ef2b83bcc1931cf6673dfa726ac5229b83be548b60416ed5c7daf3a3201db9aadd1ffe632a7d3012d94668d5191010dd35d8ba9dc881005e112f28083f085c8094de717acd2516b631760110c176bff91d3e8cd4d2df79f79d450e54a5007e34caf791d9ac10aa98f45e52d987addf59f4beb5e62ef59e2e1b1994131fa61652a5574f50fa159d47f8f28776e25e21b51103b91afc8345cfbedf46586e17269bfb521ae07f2cd202d308110abcb2b6f0157a55bc6aa6936812c1074dcd3dc1365d431608687e158b5b3622375e0ddda9cfccb2f16b4a966fc3ecababaa3ea4f8311b37c4578c4692a0d2bdd251c18a886c9b48671531db27598289593cf82813da4f43eb854142ef39c4e5950f86b29e291737413396ae4c62f4472fe12659e12b61b84619a96b03a386dd6adb6b74ce09bc11330482e01564d3eb1a\nd93cc6ac5cb77a7a0d14988e3355e07a2f02bed2f8cec08807c544efd8ccc5ca3475e8be3143997d402aecfb56e80697f57179e6d631e38741ff3ef57a7ff80cb46af0bf761b78533e01a0dd7e07216c9710ef35f09a28d1e5fa469b602472ca5085f6dbcc6a6b51fb89986f8feca85658d05701f5677d0bb340a1f2c769547219f5420c62ffff7d1304dad82b6dec2bdc59ec12a9e18a774eed128c2c90610a9d4c75c0817d64817a76bbc12746971ae897af210a072c1bc9fb044e086b7bfe85fad95d5c2bbb28c12de5755b1ccde63e93cc892b4d2bcbd7dc0706b094c2492e329e3b9a98a9cbc7d01031cf1d5861f576e1291df6286c28146b0b4df9ad44a8d40ce05f73fa3de1a92f948c38fe88a296db696a16742c5073aed1f26c6289675c28c763ab90a070b643ecf1c50f4165b82cf5b8eda4137903765f42cbaef571f6303486a899aef83ca9c8c1e53af717293a6e219675aa1f479eac02d30df16649fc1c83b24855617385b5330b054c13f8fe8670ea2383552fe7fa096a6ff0d90d3922c26b77fb632041df8a3c585f295488aa98d73bc6a3a43eac5644b59440e02ed8a6b9a8acb9f33e732c1850ed6f811975a84b65cb8775df2f55f15f58af8a27936cf507dcc7ec480ffce410373c81374fddcbad758a1976894d58e68d84f3da8a0bbbfd3d62d09679378ee94686866e0ef101e05ccb7cc8fdf6f31cbbf757c4d17aa607bc1decad9a65b8120adb7ef3b9d18a9c07226adf6f73f93c2ff79956f5e19b7c613dff1e907a8381863eb9ca536b44a3034cd522d6caa1766eda2dadd40a0f32380a30c0a0be3ad991007c8778ec855f0c2e9869718f07562ef2bce1d6fa7b551454eda2f86a514d0cd754188715d5f73cbe47d940b8a98a2de9cb66cba3830b2e732aa836df30b279f434ac98182114990d0b8d423813f75b5527dfa7982a167712380786bda08836976c21358a0d50e735f3efcb59ff69ace37ddc48ef2b83bcc1931cf6673dfa726ac5229b83be548b60416ed5c7daf3a3201db9aadd1ffe632a7d3012d94668d5191010dd35d8ba9dc881005e112f28083f085c8094de717acd2516b631760110c176bff91d3e8cd4d2df79f79d450e54a5007e34caf791d9ac10aa98f45e52d987addf59f4beb5e62ef59e2e1b1994131fa61652a5574f50fa159d47f8f28776e25e21b51103b91afc8345cfbedf46586e17269bfb521ae07f2cd202d308110abcb2b6f0157a55bc6aa6936812c1074dcd3dc1365d431608687e158b5b3622375e0ddda9cfccb2f16b4a966fc3ecababaa3ea4f8311b37c4578c4692a0d2bdd251c18a886c9b48671531db27598289593cf82813da4f43eb854142ef39c4e5950f86b29e291737413396ae4c62f4472fe12659e12b61b84619a96b03a386dd6adb6b74ce09bc11330482e01564d3eb1a688a80b912ad6d8ce2b939e06e7ecc18c358772ea0c92e82ef26d9bbe342a18babc0d54f676ed9c380fc990a7d576c958d19f6e15fda4fe08752bb8d1eedb05f\nb46af0bf761b78533e01a0dd7e07216c9710ef35f09a28d1e5fa469b602472ca5085f6dbcc6a6b51fb89986f8feca85658d05701f5677d0bb340a1f2c769547219f5420c62ffff7d1304dad82b6dec2bdc59ec12a9e18a774eed128c2c90610a9d4c75c0817d64817a76bbc12746971ae897af210a072c1bc9fb044e086b7bfe85fad95d5c2bbb28c12de5755b1ccde63e93cc892b4d2bcbd7dc0706b094c2492e329e3b9a98a9cbc7d01031cf1d5861f576e1291df6286c28146b0b4df9ad44a8d40ce05f73fa3de1a92f948c38fe88a296db696a16742c5073aed1f26c6289675c28c763ab90a070b643ecf1c50f4165b82cf5b8eda4137903765f42cbaef571f6303486a899aef83ca9c8c1e53af717293a6e219675aa1f479eac02d30df16649fc1c83b24855617385b5330b054c13f8fe8670ea2383552fe7fa096a6ff0d90d3922c26b77fb632041df8a3c585f295488aa98d73bc6a3a43eac5644b59440e02ed8a6b9a8acb9f33e732c1850ed6f811975a84b65cb8775df2f55f15f58af8a27936cf507dcc7ec480ffce410373c81374fddcbad758a1976894d58e68d84f3da8a0bbbfd3d62d09679378ee94686866e0ef101e05ccb7cc8fdf6f31cbbf757c4d17aa607bc1decad9a65b8120adb7ef3b9d18a9c07226adf6f73f93c2ff79956f5e19b7c613dff1e907a8381863eb9ca536b44a3034cd522d6caa1766eda2dadd40a0f32380a30c0a0be3ad991007c8778ec855f0c2e9869718f07562ef2bce1d6fa7b551454eda2f86a514d0cd754188715d5f73cbe47d940b8a98a2de9cb66cba3830b2e732aa836df30b279f434ac98182114990d0b8d423813f75b5527dfa7982a167712380786bda08836976c21358a0d50e735f3efcb59ff69ace37ddc48ef2b83bcc1931cf6673dfa726ac5229b83be548b60416ed5c7daf3a3201db9aadd1ffe632a7d3012d94668d5191010dd35d8ba9dc881005e112f28083f085c8094de717acd2516b631760110c176bff91d3e8cd4d2df79f79d450e54a5007e34caf791d9ac10aa98f45e52d987addf59f4beb5e62ef59e2e1b1994131fa61652a5574f50fa159d47f8f28776e25e21b51103b91afc8345cfbedf46586e17269bfb521ae07f2cd202d308110abcb2b6f0157a55bc6aa6936812c1074dcd3dc1365d431608687e158b5b3622375e0ddda9cfccb2f16b4a966fc3ecababaa3ea4f8311b37c4578c4692a0d2bdd251c18a886c9b48671531db27598289593cf82813da4f43eb854142ef39c4e5950f86b29e291737413396ae4c62f4472fe12659e12b61b84619a96b03a386dd6adb6b74ce09bc11330482e01564d3eb1a688a80b912ad6d8ce2b939e06e7ecc18c358772ea0c92e82ef26d9bbe342a18babc0d54f676ed9c380fc990a7d576c958d19f6e15fda4fe08752bb8d1eedb05fbb420713aa2c9df64fc3fcb136d739466a36b38c515e44b1fd8e04717ab838bb8ad38ee6613c173d1d973f478cb0abcd6e69ac2570b8c9b78264ceb9d4a975c8\n"
  },
  {
    "path": "test/default/stream2.c",
    "content": "\n#define TEST_NAME \"stream2\"\n#include \"cmptest.h\"\n\nstatic const unsigned char secondkey[32] = {\n    0xdc, 0x90, 0x8d, 0xda, 0x0b, 0x93, 0x44,\n    0xa9, 0x53, 0x62, 0x9b, 0x73, 0x38, 0x20,\n    0x77, 0x88, 0x80, 0xf3, 0xce, 0xb4, 0x21,\n    0xbb, 0x61, 0xb9, 0x1c, 0xbd, 0x4c, 0x3e,\n    0x66, 0x25, 0x6c, 0xe4\n};\n\nstatic const unsigned char noncesuffix[8] = {\n    0x82, 0x19, 0xe0, 0x03, 0x6b, 0x7a, 0x0b, 0x37\n};\n\n\n\nint\nmain(void)\n{\n    unsigned char *output;\n    char          *hex;\n    unsigned char  h[32];\n    size_t         sizeof_hex = 32 * 2 + 1;\n    size_t         sizeof_output = 4194304;\n    int            i;\n\n    output = (unsigned char *) sodium_malloc(sizeof_output);\n    hex = (char *) sodium_malloc(sizeof_hex);\n\n    crypto_stream_salsa20(output, sizeof_output, noncesuffix, secondkey);\n    crypto_hash_sha256(h, output, sizeof_output);\n    sodium_bin2hex(hex, sizeof_hex, h, sizeof h);\n    printf(\"%s\\n\", hex);\n\n    assert(sizeof_output > 4000);\n\n    crypto_stream_salsa20_xor_ic(output, output, 4000, noncesuffix, 0U,\n                                 secondkey);\n    for (i = 0; i < 4000; i++) {\n        assert(output[i] == 0);\n    }\n\n    crypto_stream_salsa20_xor_ic(output, output, 4000, noncesuffix, 1U,\n                                 secondkey);\n    crypto_hash_sha256(h, output, sizeof_output);\n    sodium_bin2hex(hex, sizeof_hex, h, sizeof h);\n    printf(\"%s\\n\", hex);\n\n    sodium_free(hex);\n    sodium_free(output);\n\n    assert(crypto_stream_salsa20_keybytes() > 0U);\n    assert(crypto_stream_salsa20_noncebytes() > 0U);\n    assert(crypto_stream_salsa20_messagebytes_max() > 0U);\n\n    return 0;\n}\n"
  },
  {
    "path": "test/default/stream2.exp",
    "content": "662b9d0e3463029156069b12f918691a98f7dfb2ca0393c96bbfc6b1fbd630a2\n0cc9ffaf60a99d221b548e9762385a231121ab226d1c610d2661ced26b6ad5ee\n"
  },
  {
    "path": "test/default/stream3.c",
    "content": "\n#define TEST_NAME \"stream3\"\n#include \"cmptest.h\"\n\nstatic unsigned char firstkey[32] = { 0x1b, 0x27, 0x55, 0x64, 0x73, 0xe9, 0x85,\n                                      0xd4, 0x62, 0xcd, 0x51, 0x19, 0x7a, 0x9a,\n                                      0x46, 0xc7, 0x60, 0x09, 0x54, 0x9e, 0xac,\n                                      0x64, 0x74, 0xf2, 0x06, 0xc4, 0xee, 0x08,\n                                      0x44, 0xf6, 0x83, 0x89 };\n\nstatic unsigned char nonce[24] = { 0x69, 0x69, 0x6e, 0xe9, 0x55, 0xb6,\n                                   0x2b, 0x73, 0xcd, 0x62, 0xbd, 0xa8,\n                                   0x75, 0xfc, 0x73, 0xd6, 0x82, 0x19,\n                                   0xe0, 0x03, 0x6b, 0x7a, 0x0b, 0x37 };\n\nstatic unsigned char rs[32];\n\nint\nmain(void)\n{\n    int i;\n\n    crypto_stream(rs, 32, nonce, firstkey);\n\n    for (i = 0; i < 32; ++i) {\n        printf(\",0x%02x\", (unsigned int) rs[i]);\n        if (i % 8 == 7) {\n            printf(\"\\n\");\n        }\n    }\n    return 0;\n}\n"
  },
  {
    "path": "test/default/stream3.exp",
    "content": ",0xee,0xa6,0xa7,0x25,0x1c,0x1e,0x72,0x91\n,0x6d,0x11,0xc2,0xcb,0x21,0x4d,0x3c,0x25\n,0x25,0x39,0x12,0x1d,0x8e,0x23,0x4e,0x65\n,0x2d,0x65,0x1f,0xa4,0xc8,0xcf,0xf8,0x80\n"
  },
  {
    "path": "test/default/stream4.c",
    "content": "\n#define TEST_NAME \"stream4\"\n#include \"cmptest.h\"\n\nstatic unsigned char firstkey[32] = { 0x1b, 0x27, 0x55, 0x64, 0x73, 0xe9, 0x85,\n                                      0xd4, 0x62, 0xcd, 0x51, 0x19, 0x7a, 0x9a,\n                                      0x46, 0xc7, 0x60, 0x09, 0x54, 0x9e, 0xac,\n                                      0x64, 0x74, 0xf2, 0x06, 0xc4, 0xee, 0x08,\n                                      0x44, 0xf6, 0x83, 0x89 };\n\nstatic unsigned char nonce[24] = { 0x69, 0x69, 0x6e, 0xe9, 0x55, 0xb6,\n                                   0x2b, 0x73, 0xcd, 0x62, 0xbd, 0xa8,\n                                   0x75, 0xfc, 0x73, 0xd6, 0x82, 0x19,\n                                   0xe0, 0x03, 0x6b, 0x7a, 0x0b, 0x37 };\n\nstatic unsigned char m[163] = {\n    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,\n    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,\n    0,    0,    0,    0,    0,    0,    0,    0,    0xbe, 0x07, 0x5f, 0xc5,\n    0x3c, 0x81, 0xf2, 0xd5, 0xcf, 0x14, 0x13, 0x16, 0xeb, 0xeb, 0x0c, 0x7b,\n    0x52, 0x28, 0xc5, 0x2a, 0x4c, 0x62, 0xcb, 0xd4, 0x4b, 0x66, 0x84, 0x9b,\n    0x64, 0x24, 0x4f, 0xfc, 0xe5, 0xec, 0xba, 0xaf, 0x33, 0xbd, 0x75, 0x1a,\n    0x1a, 0xc7, 0x28, 0xd4, 0x5e, 0x6c, 0x61, 0x29, 0x6c, 0xdc, 0x3c, 0x01,\n    0x23, 0x35, 0x61, 0xf4, 0x1d, 0xb6, 0x6c, 0xce, 0x31, 0x4a, 0xdb, 0x31,\n    0x0e, 0x3b, 0xe8, 0x25, 0x0c, 0x46, 0xf0, 0x6d, 0xce, 0xea, 0x3a, 0x7f,\n    0xa1, 0x34, 0x80, 0x57, 0xe2, 0xf6, 0x55, 0x6a, 0xd6, 0xb1, 0x31, 0x8a,\n    0x02, 0x4a, 0x83, 0x8f, 0x21, 0xaf, 0x1f, 0xde, 0x04, 0x89, 0x77, 0xeb,\n    0x48, 0xf5, 0x9f, 0xfd, 0x49, 0x24, 0xca, 0x1c, 0x60, 0x90, 0x2e, 0x52,\n    0xf0, 0xa0, 0x89, 0xbc, 0x76, 0x89, 0x70, 0x40, 0xe0, 0x82, 0xf9, 0x37,\n    0x76, 0x38, 0x48, 0x64, 0x5e, 0x07, 0x05\n};\n\nstatic unsigned char c[163];\n\nint\nmain(void)\n{\n    int i;\n\n    crypto_stream_xor(c, m, 163, nonce, firstkey);\n\n    for (i = 32; i < 163; ++i) {\n        printf(\",0x%02x\", (unsigned int) c[i]);\n        if (i % 8 == 7) {\n            printf(\"\\n\");\n        }\n    }\n    printf(\"\\n\");\n\n    return 0;\n}\n"
  },
  {
    "path": "test/default/stream4.exp",
    "content": ",0x8e,0x99,0x3b,0x9f,0x48,0x68,0x12,0x73\n,0xc2,0x96,0x50,0xba,0x32,0xfc,0x76,0xce\n,0x48,0x33,0x2e,0xa7,0x16,0x4d,0x96,0xa4\n,0x47,0x6f,0xb8,0xc5,0x31,0xa1,0x18,0x6a\n,0xc0,0xdf,0xc1,0x7c,0x98,0xdc,0xe8,0x7b\n,0x4d,0xa7,0xf0,0x11,0xec,0x48,0xc9,0x72\n,0x71,0xd2,0xc2,0x0f,0x9b,0x92,0x8f,0xe2\n,0x27,0x0d,0x6f,0xb8,0x63,0xd5,0x17,0x38\n,0xb4,0x8e,0xee,0xe3,0x14,0xa7,0xcc,0x8a\n,0xb9,0x32,0x16,0x45,0x48,0xe5,0x26,0xae\n,0x90,0x22,0x43,0x68,0x51,0x7a,0xcf,0xea\n,0xbd,0x6b,0xb3,0x73,0x2b,0xc0,0xe9,0xda\n,0x99,0x83,0x2b,0x61,0xca,0x01,0xb6,0xde\n,0x56,0x24,0x4a,0x9e,0x88,0xd5,0xf9,0xb3\n,0x79,0x73,0xf6,0x22,0xa4,0x3d,0x14,0xa6\n,0x59,0x9b,0x1f,0x65,0x4c,0xb4,0x5a,0x74\n,0xe3,0x55,0xa5\n"
  },
  {
    "path": "test/default/stream5.c",
    "content": "\n#define TEST_NAME \"stream5\"\n#include \"cmptest.h\"\n\nstatic const unsigned char key[crypto_stream_salsa2012_KEYBYTES] = {\n    0x1b, 0x27, 0x55, 0x64, 0x73, 0xe9, 0x85, 0xd4,\n    0x62, 0xcd, 0x51, 0x19, 0x7a, 0x9a, 0x46, 0xc7,\n    0x60, 0x09, 0x54, 0x9e, 0xac, 0x64, 0x74, 0xf2,\n    0x06, 0xc4, 0xee, 0x08, 0x44, 0xf6, 0x83, 0x89\n};\n\nstatic const unsigned char nonce[crypto_stream_salsa2012_NONCEBYTES] = {\n    0x69, 0x69, 0x6e, 0xe9, 0x55, 0xb6, 0x2b, 0x73\n};\n\nint\nmain(void)\n{\n    unsigned char  h[32];\n    char           hex[2 * 64 + 1];\n    unsigned char *output;\n    unsigned char *m;\n    int            i;\n\n    output = (unsigned char *) sodium_malloc(4096);\n    m = (unsigned char *) sodium_malloc(4096);\n\n    crypto_stream_salsa2012(output, 4096, nonce, key);\n    crypto_hash_sha256(h, output, 4096);\n    sodium_bin2hex(hex, sizeof hex, h, sizeof h);\n    printf(\"%s\\n\", hex);\n\n    memset(m, 0, 4096);\n    crypto_stream_salsa2012_xor(m, m, 4096, nonce, key);\n    assert(memcmp(m, output, 4096) == 0);\n    printf(\"xor_zero: ok\\n\");\n\n    for (i = 0; i < 4096; i++) {\n        m[i] = (unsigned char) i;\n    }\n    crypto_stream_salsa2012_xor(output, m, 4096, nonce, key);\n    crypto_stream_salsa2012_xor(output, output, 4096, nonce, key);\n    assert(memcmp(output, m, 4096) == 0);\n    printf(\"xor_roundtrip: ok\\n\");\n\n    for (i = 0; i < 64; i++) {\n        memset(output, 0xdb, 64);\n        crypto_stream_salsa2012(output, (unsigned long long) i, nonce, key);\n        sodium_bin2hex(hex, sizeof hex, output, 64);\n        printf(\"%s\\n\", hex);\n    }\n\n    memset(output, 0xaa, 64);\n    crypto_stream_salsa2012(output, 0, nonce, key);\n    assert(output[0] == 0xaa);\n    printf(\"zero_len: ok\\n\");\n\n    {\n        unsigned char k2[crypto_stream_salsa2012_KEYBYTES];\n        int           all_zero;\n\n        crypto_stream_salsa2012_keygen(k2);\n        all_zero = sodium_is_zero(k2, sizeof k2);\n        assert(all_zero == 0);\n    }\n    printf(\"keygen: ok\\n\");\n\n    assert(crypto_stream_salsa2012_keybytes() == crypto_stream_salsa2012_KEYBYTES);\n    assert(crypto_stream_salsa2012_noncebytes() == crypto_stream_salsa2012_NONCEBYTES);\n    assert(crypto_stream_salsa2012_messagebytes_max() > 0U);\n    assert(crypto_stream_salsa2012_keybytes() == 32U);\n    assert(crypto_stream_salsa2012_noncebytes() == 8U);\n    printf(\"constants: ok\\n\");\n\n    sodium_free(m);\n    sodium_free(output);\n\n    return 0;\n}\n"
  },
  {
    "path": "test/default/stream5.exp",
    "content": "ae87e8a917fc7bf23d983fd2777f3a6c08d9cbf977ba2d8d10dd336f6b585083\nxor_zero: ok\nxor_roundtrip: ok\ndbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdb\n54dbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdb\n5464dbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdb\n5464e6dbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdb\n5464e671dbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdb\n5464e67138dbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdb\n5464e671385cdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdb\n5464e671385cd2dbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdb\n5464e671385cd214dbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdb\n5464e671385cd21495dbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdb\n5464e671385cd21495aedbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdb\n5464e671385cd21495ae08dbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdb\n5464e671385cd21495ae08eadbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdb\n5464e671385cd21495ae08ea32dbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdb\n5464e671385cd21495ae08ea32f0dbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdb\n5464e671385cd21495ae08ea32f003dbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdb\n5464e671385cd21495ae08ea32f003a8dbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdb\n5464e671385cd21495ae08ea32f003a85fdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdb\n5464e671385cd21495ae08ea32f003a85f34dbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdb\n5464e671385cd21495ae08ea32f003a85f349ddbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdb\n5464e671385cd21495ae08ea32f003a85f349dc8dbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdb\n5464e671385cd21495ae08ea32f003a85f349dc8d3dbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdb\n5464e671385cd21495ae08ea32f003a85f349dc8d305dbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdb\n5464e671385cd21495ae08ea32f003a85f349dc8d305b6dbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdb\n5464e671385cd21495ae08ea32f003a85f349dc8d305b600dbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdb\n5464e671385cd21495ae08ea32f003a85f349dc8d305b6001bdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdb\n5464e671385cd21495ae08ea32f003a85f349dc8d305b6001b66dbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdb\n5464e671385cd21495ae08ea32f003a85f349dc8d305b6001b66cddbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdb\n5464e671385cd21495ae08ea32f003a85f349dc8d305b6001b66cdc5dbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdb\n5464e671385cd21495ae08ea32f003a85f349dc8d305b6001b66cdc56edbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdb\n5464e671385cd21495ae08ea32f003a85f349dc8d305b6001b66cdc56eacdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdb\n5464e671385cd21495ae08ea32f003a85f349dc8d305b6001b66cdc56eacf1dbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdb\n5464e671385cd21495ae08ea32f003a85f349dc8d305b6001b66cdc56eacf1f1dbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdb\n5464e671385cd21495ae08ea32f003a85f349dc8d305b6001b66cdc56eacf1f15edbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdb\n5464e671385cd21495ae08ea32f003a85f349dc8d305b6001b66cdc56eacf1f15e7ddbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdb\n5464e671385cd21495ae08ea32f003a85f349dc8d305b6001b66cdc56eacf1f15e7da3dbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdb\n5464e671385cd21495ae08ea32f003a85f349dc8d305b6001b66cdc56eacf1f15e7da359dbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdb\n5464e671385cd21495ae08ea32f003a85f349dc8d305b6001b66cdc56eacf1f15e7da359e6dbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdb\n5464e671385cd21495ae08ea32f003a85f349dc8d305b6001b66cdc56eacf1f15e7da359e631dbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdb\n5464e671385cd21495ae08ea32f003a85f349dc8d305b6001b66cdc56eacf1f15e7da359e63197dbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdb\n5464e671385cd21495ae08ea32f003a85f349dc8d305b6001b66cdc56eacf1f15e7da359e6319729dbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdb\n5464e671385cd21495ae08ea32f003a85f349dc8d305b6001b66cdc56eacf1f15e7da359e631972998dbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdb\n5464e671385cd21495ae08ea32f003a85f349dc8d305b6001b66cdc56eacf1f15e7da359e6319729985edbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdb\n5464e671385cd21495ae08ea32f003a85f349dc8d305b6001b66cdc56eacf1f15e7da359e6319729985e07dbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdb\n5464e671385cd21495ae08ea32f003a85f349dc8d305b6001b66cdc56eacf1f15e7da359e6319729985e0733dbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdb\n5464e671385cd21495ae08ea32f003a85f349dc8d305b6001b66cdc56eacf1f15e7da359e6319729985e07338edbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdb\n5464e671385cd21495ae08ea32f003a85f349dc8d305b6001b66cdc56eacf1f15e7da359e6319729985e07338e05dbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdb\n5464e671385cd21495ae08ea32f003a85f349dc8d305b6001b66cdc56eacf1f15e7da359e6319729985e07338e055adbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdb\n5464e671385cd21495ae08ea32f003a85f349dc8d305b6001b66cdc56eacf1f15e7da359e6319729985e07338e055a71dbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdb\n5464e671385cd21495ae08ea32f003a85f349dc8d305b6001b66cdc56eacf1f15e7da359e6319729985e07338e055a7147dbdbdbdbdbdbdbdbdbdbdbdbdbdbdb\n5464e671385cd21495ae08ea32f003a85f349dc8d305b6001b66cdc56eacf1f15e7da359e6319729985e07338e055a71477bdbdbdbdbdbdbdbdbdbdbdbdbdbdb\n5464e671385cd21495ae08ea32f003a85f349dc8d305b6001b66cdc56eacf1f15e7da359e6319729985e07338e055a71477bd1dbdbdbdbdbdbdbdbdbdbdbdbdb\n5464e671385cd21495ae08ea32f003a85f349dc8d305b6001b66cdc56eacf1f15e7da359e6319729985e07338e055a71477bd1f2dbdbdbdbdbdbdbdbdbdbdbdb\n5464e671385cd21495ae08ea32f003a85f349dc8d305b6001b66cdc56eacf1f15e7da359e6319729985e07338e055a71477bd1f269dbdbdbdbdbdbdbdbdbdbdb\n5464e671385cd21495ae08ea32f003a85f349dc8d305b6001b66cdc56eacf1f15e7da359e6319729985e07338e055a71477bd1f269fedbdbdbdbdbdbdbdbdbdb\n5464e671385cd21495ae08ea32f003a85f349dc8d305b6001b66cdc56eacf1f15e7da359e6319729985e07338e055a71477bd1f269feb2dbdbdbdbdbdbdbdbdb\n5464e671385cd21495ae08ea32f003a85f349dc8d305b6001b66cdc56eacf1f15e7da359e6319729985e07338e055a71477bd1f269feb2abdbdbdbdbdbdbdbdb\n5464e671385cd21495ae08ea32f003a85f349dc8d305b6001b66cdc56eacf1f15e7da359e6319729985e07338e055a71477bd1f269feb2ab98dbdbdbdbdbdbdb\n5464e671385cd21495ae08ea32f003a85f349dc8d305b6001b66cdc56eacf1f15e7da359e6319729985e07338e055a71477bd1f269feb2ab9855dbdbdbdbdbdb\n5464e671385cd21495ae08ea32f003a85f349dc8d305b6001b66cdc56eacf1f15e7da359e6319729985e07338e055a71477bd1f269feb2ab985519dbdbdbdbdb\n5464e671385cd21495ae08ea32f003a85f349dc8d305b6001b66cdc56eacf1f15e7da359e6319729985e07338e055a71477bd1f269feb2ab985519cddbdbdbdb\n5464e671385cd21495ae08ea32f003a85f349dc8d305b6001b66cdc56eacf1f15e7da359e6319729985e07338e055a71477bd1f269feb2ab985519cd1adbdbdb\n5464e671385cd21495ae08ea32f003a85f349dc8d305b6001b66cdc56eacf1f15e7da359e6319729985e07338e055a71477bd1f269feb2ab985519cd1a3cdbdb\n5464e671385cd21495ae08ea32f003a85f349dc8d305b6001b66cdc56eacf1f15e7da359e6319729985e07338e055a71477bd1f269feb2ab985519cd1a3ca9db\nzero_len: ok\nkeygen: ok\nconstants: ok\n"
  },
  {
    "path": "test/default/stream6.c",
    "content": "#define TEST_NAME \"stream6\"\n#include \"cmptest.h\"\n\nint\nmain(void)\n{\n    unsigned char  key[crypto_stream_salsa2012_KEYBYTES];\n    unsigned char  nonce[crypto_stream_salsa2012_NONCEBYTES];\n    unsigned char *buf;\n    unsigned char *out;\n\n    memset(key, 0x01, sizeof key);\n    memset(nonce, 0x02, sizeof nonce);\n\n    buf = (unsigned char *) sodium_malloc(256);\n    out = (unsigned char *) sodium_malloc(256);\n\n    assert(crypto_stream_salsa2012_xor(out, buf, 0, nonce, key) == 0);\n    printf(\"xor_zero_len: ok\\n\");\n\n    memset(buf, 0, 100);\n    crypto_stream_salsa2012_xor(out, buf, 100, nonce, key);\n    {\n        unsigned char stream_out[100];\n\n        crypto_stream_salsa2012(stream_out, 100, nonce, key);\n        assert(memcmp(out, stream_out, 100) == 0);\n    }\n    printf(\"xor_tail_block: ok\\n\");\n\n    memset(buf, 0x55, 137);\n    crypto_stream_salsa2012_xor(out, buf, 137, nonce, key);\n    crypto_stream_salsa2012_xor(out, out, 137, nonce, key);\n    assert(memcmp(out, buf, 137) == 0);\n    printf(\"xor_roundtrip_137: ok\\n\");\n\n    memset(out, 0xab, 1);\n    crypto_stream_salsa2012(out, 0, nonce, key);\n    assert(out[0] == 0xab);\n    printf(\"stream_zero_len: ok\\n\");\n\n    memset(buf, 0x42, 256);\n    crypto_stream_salsa2012_xor(out, buf, 256, nonce, key);\n    crypto_stream_salsa2012_xor(out, out, 256, nonce, key);\n    assert(memcmp(out, buf, 256) == 0);\n    printf(\"xor_roundtrip_256: ok\\n\");\n\n    sodium_free(buf);\n    sodium_free(out);\n\n    return 0;\n}\n"
  },
  {
    "path": "test/default/stream6.exp",
    "content": "xor_zero_len: ok\nxor_tail_block: ok\nxor_roundtrip_137: ok\nstream_zero_len: ok\nxor_roundtrip_256: ok\n"
  },
  {
    "path": "test/default/verify1.c",
    "content": "\n#define TEST_NAME \"verify1\"\n#include \"cmptest.h\"\n\nint\nmain(void)\n{\n    unsigned char *v16, *v16x;\n    unsigned char *v32, *v32x;\n    unsigned char *v64, *v64x;\n    uint32_t       r;\n    uint8_t        o;\n    int            i;\n\n    v16  = (unsigned char *) sodium_malloc(16);\n    v16x = (unsigned char *) sodium_malloc(16);\n    v32  = (unsigned char *) sodium_malloc(32);\n    v32x = (unsigned char *) sodium_malloc(32);\n    v64  = (unsigned char *) sodium_malloc(64);\n    v64x = (unsigned char *) sodium_malloc(64);\n    for (i = 0; i < 10000; i++) {\n        randombytes_buf(v16, 16);\n        randombytes_buf(v32, 32);\n        randombytes_buf(v64, 64);\n\n        memcpy(v16x, v16, 16);\n        memcpy(v32x, v32, 32);\n        memcpy(v64x, v64, 64);\n\n        if (crypto_verify_16(v16, v16x) != 0 ||\n            crypto_verify_32(v32, v32x) != 0 ||\n            crypto_verify_64(v64, v64x) != 0 ||\n            sodium_memcmp(v16, v16x, 16) != 0 ||\n            sodium_memcmp(v32, v32x, 32) != 0 ||\n            sodium_memcmp(v64, v64x, 64) != 0) {\n            printf(\"Failed\\n\");\n        }\n    }\n    printf(\"OK\\n\");\n\n    for (i = 0; i < 100000; i++) {\n        r = randombytes_random();\n        o = (uint8_t) randombytes_random();\n        if (o == 0) {\n            continue;\n        }\n        v16x[r & 15U] ^= o;\n        v32x[r & 31U] ^= o;\n        v64x[r & 63U] ^= o;\n        if (crypto_verify_16(v16, v16x) != -1 ||\n            crypto_verify_32(v32, v32x) != -1 ||\n            crypto_verify_64(v64, v64x) != -1 ||\n            sodium_memcmp(v16, v16x, 16) != -1 ||\n            sodium_memcmp(v32, v32x, 32) != -1 ||\n            sodium_memcmp(v64, v64x, 64) != -1) {\n            printf(\"Failed\\n\");\n        }\n        v16x[r & 15U] ^= o;\n        v32x[r & 31U] ^= o;\n        v64x[r & 63U] ^= o;\n    }\n    printf(\"OK\\n\");\n\n    assert(crypto_verify_16_bytes() == 16U);\n    assert(crypto_verify_32_bytes() == 32U);\n    assert(crypto_verify_64_bytes() == 64U);\n\n    sodium_free(v16);\n    sodium_free(v16x);\n    sodium_free(v32);\n    sodium_free(v32x);\n    sodium_free(v64);\n    sodium_free(v64x);\n\n    return 0;\n}\n"
  },
  {
    "path": "test/default/verify1.exp",
    "content": "OK\nOK\n"
  },
  {
    "path": "test/default/wasi-test-wrapper.sh",
    "content": "#! /bin/sh\n\nunset LDFLAGS\nunset CFLAGS\n\nif command -v wasm-opt >/dev/null; then\n  wasm-opt -O4 --enable-sign-ext --emit-target-features $WASMOPT_FLAGS \\\n    -o \"${1}.tmp\" \"$1\" && mv -f \"${1}.tmp\" \"$1\"\nfi\n\nif [ -z \"$WASI_RUNTIME\" ] || [ \"$WASI_RUNTIME\" = \"wasmedge\" ]; then\n  if command -v wasmedgec >/dev/null && command -v wasmedge >/dev/null; then\n    wasmedgec \"$1\" \"${1}.so\" >/dev/null &&\n      wasmedge --dir=.:. \"${1}.so\" &&\n      rm -f \"${1}.so\" &&\n      exit 0\n  fi\nfi\n\nif [ -z \"$WASI_RUNTIME\" ] || [ \"$WASI_RUNTIME\" = \"wasmer\" ]; then\n  if command -v wasmer >/dev/null; then\n    wasmer run \"$1\" \"--${WASMER_BACKEND:-cranelift}\" --volume=./:. && exit 0\n  fi\nfi\n\nif [ -z \"$WASI_RUNTIME\" ] || [ \"$WASI_RUNTIME\" = \"wasmtime\" ]; then\n  if command -v wasmtime >/dev/null; then\n    wasmtime run --dir=. \"$1\" && exit 0\n  fi\nfi\n\nif [ -z \"$WASI_RUNTIME\" ] || [ \"$WASI_RUNTIME\" = \"bun\" ]; then\n  if echo | bun help >/dev/null 2>&1; then\n    {\n      echo \"import fs from 'fs'; import { init, WASI } from '@wasmer/wasi';\"\n      echo \"await init();\"\n      echo \"const wasi = new WASI({args: process.argv, env: process.env, preopens: {'.':'/'}});\"\n      echo \"await (async function() {\"\n      echo \"  const wasm = await WebAssembly.compile(fs.readFileSync('${1}'));\"\n      echo \"  await wasi.instantiate(wasm, {});\"\n      echo \"  wasi.start();\"\n      echo \"  console.log(wasi.getStdoutString());\"\n      echo \"})().catch(e => { console.error(e); process.exit(1); });\"\n    } >\"${1}.mjs\"\n    bun run \"${1}.mjs\" 2>/tmp/err &&\n      rm -f \"${1}.mjs\" && exit 0\n  fi\nfi\n\nif [ -z \"$WASI_RUNTIME\" ] || [ \"$WASI_RUNTIME\" = \"node\" ]; then\n  if echo | node --experimental-wasi-unstable-preview1 >/dev/null 2>&1; then\n    {\n      echo \"import fs from 'fs'; import { WASI } from 'wasi';\"\n      echo \"const wasi = new WASI({args: process.argv, env: process.env, preopens: {'.':'.'}});\"\n      echo \"const importObject = { wasi_snapshot_preview1: wasi.wasiImport };\"\n      echo \"await (async function() {\"\n      echo \"  const wasm = await WebAssembly.compile(fs.readFileSync('${1}'));\"\n      echo \"  const instance = await WebAssembly.instantiate(wasm, importObject);\"\n      echo \"  wasi.start(instance);\"\n      echo \"})().catch(e => { console.error(e); process.exit(1); });\"\n    } >\"${1}.mjs\"\n    node --experimental-wasi-unstable-preview1 \"${1}.mjs\" 2>/tmp/err &&\n      rm -f \"${1}.mjs\" && exit 0\n  fi\nfi\n\nif [ -z \"$WASI_RUNTIME\" ] || [ \"$WASI_RUNTIME\" = \"wasm3\" ]; then\n  if command -v wasm3 >/dev/null; then\n    wasm3 \"$1\" && exit 0\n  fi\nfi\n\nif [ -z \"$WASI_RUNTIME\" ] || [ \"$WASI_RUNTIME\" = \"iwasm\" ]; then\n  if command -v iwasm >/dev/null; then\n    if iwasm | grep -qi wasi >/dev/null 2>&1; then\n      if wamrc --version; then\n        wamrc -o \"${1}.o\" \"$1\" >/dev/null &&\n          iwasm --dir=. \"${1}.o\" && exit 0\n      else\n        iwasm --dir=. \"$1\" && exit 0\n      fi\n    fi\n  fi\nfi\n\nif [ -z \"$WASI_RUNTIME\" ] || [ \"$WASI_RUNTIME\" = \"wazero\" ]; then\n  if command -v wazero >/dev/null; then\n    wazero run -mount .:/ \"$1\" && exit 0\n  fi\nfi\n\nif [ -z \"$WASI_RUNTIME\" ] || [ \"$WASI_RUNTIME\" = \"zwasm\" ]; then\n  if command -v zwasm >/dev/null; then\n    zwasm run --dir \"$(pwd)::/\" --allow-read --allow-write --allow-path \"$1\" && exit 0\n  fi\nfi\n\nif [ -z \"$WASI_RUNTIME\" ] || [ \"$WASI_RUNTIME\" = \"wasmer-js\" ]; then\n  if command -v wasmer-js >/dev/null; then\n    wasmer-js run \"$1\" --dir=. && exit 0\n  fi\nfi\n\necho \"WebAssembly runtime failed\" >&2\nexit 1\n"
  },
  {
    "path": "test/default/wintest.bat",
    "content": "@ECHO OFF\n\nif \"%1\" == \"\" (\n  echo \"Usage: wintest.bat <Release | ReleaseDLL | Debug | DebugDLL\"\n\tgoto :END\n)\n\nif not exist sodium_version.c (\n\tCD test\\default\n\tif not exist sodium_version.c (\n\t\techo \"Are you on the right path?\" %CD%\n\t\tgoto :END\n\t)\n)\n\nif \"%2\" == \"x64\" (SET ARCH=x64) else (SET ARCH=Win32)\nSET CFLAGS=/nologo /DTEST_SRCDIR=\\\".\\\" /I..\\..\\src\\libsodium\\include\\sodium /I..\\..\\src\\libsodium\\include /I..\\quirks\nSET LDFLAGS=/link /LTCG advapi32.lib ..\\..\\Build\\%1\\%ARCH%\\libsodium.lib\nif \"%1\" == \"ReleaseDLL\" ( goto :ReleaseDLL )\nif \"%1\" == \"DebugDLL\"   ( goto :DebugDLL )\nif \"%1\" == \"Release\"   ( goto :Release )\nif \"%1\" == \"Debug\"   ( goto :Debug )\necho \"Invalid build type\"\ngoto :END\n:ReleaseDLL\n\tSET CFLAGS=%CFLAGS% /MD /Ox \n\tSET PATH=..\\..\\Build\\%1\\%ARCH%;%PATH% \n\tgoto :COMPILE\n:Release\n\tSET CFLAGS=%CFLAGS% /MT /Ox /DSODIUM_STATIC /DSODIUM_EXPORT=\n\tgoto :COMPILE\n:DebugDLL\n\tSET CFLAGS=%CFLAGS% /GS /MDd /Od\n\tSET PATH=..\\..\\Build\\%1\\%ARCH%;%PATH%\n\tgoto :COMPILE\n:Debug\n\tSET CFLAGS=%CFLAGS% /GS /MTd /Od /DSODIUM_STATIC /DSODIUM_EXPORT=\n\tgoto :COMPILE\n:COMPILE\necho Running the test suite:\nFOR %%f in (*.c) DO (\n\tcl %CFLAGS% %%f %LDFLAGS% /OUT:%%f.exe > NUL 2>&1\n\tif not exist %%f.exe (\n\t\techo %%f compile failed\n\t\tgoto :END\n\t)\n\t%%f.exe\n\tif errorlevel 1 ( \n\t\techo %%f failed\n\t) else (\n\t\techo %%f ok\n\t)\n)\nREM Remove temporary files\ndel *.exe *.obj *.res \n:END\n"
  },
  {
    "path": "test/default/xchacha20.c",
    "content": "\n#define TEST_NAME \"xchacha20\"\n#include \"cmptest.h\"\n\ntypedef struct HChaCha20TV_ {\n    const char key[crypto_core_hchacha20_KEYBYTES * 2 + 1];\n    const char in[crypto_core_hchacha20_INPUTBYTES * 2 + 1];\n    const char out[crypto_core_hchacha20_OUTPUTBYTES * 2 + 1];\n} HChaCha20TV;\n\nstatic const unsigned char small_order_p[crypto_scalarmult_BYTES] = {\n    0xe0, 0xeb, 0x7a, 0x7c, 0x3b, 0x41, 0xb8, 0xae, 0x16, 0x56, 0xe3,\n    0xfa, 0xf1, 0x9f, 0xc4, 0x6a, 0xda, 0x09, 0x8d, 0xeb, 0x9c, 0x32,\n    0xb1, 0xfd, 0x86, 0x62, 0x05, 0x16, 0x5f, 0x49, 0xb8, 0x00\n};\n\nstatic void\ntv_hchacha20(void)\n{\n    static const HChaCha20TV tvs[] = {\n        { \"24f11cce8a1b3d61e441561a696c1c1b7e173d084fd4812425435a8896a013dc\", \"d9660c5900ae19ddad28d6e06e45fe5e\", \"5966b3eec3bff1189f831f06afe4d4e3be97fa9235ec8c20d08acfbbb4e851e3\" },\n        { \"80a5f6272031e18bb9bcd84f3385da65e7731b7039f13f5e3d475364cd4d42f7\", \"c0eccc384b44c88e92c57eb2d5ca4dfa\", \"6ed11741f724009a640a44fce7320954c46e18e0d7ae063bdbc8d7cf372709df\" },\n        { \"cb1fc686c0eec11a89438b6f4013bf110e7171dace3297f3a657a309b3199629\", \"fcd49b93e5f8f299227e64d40dc864a3\", \"84b7e96937a1a0a406bb7162eeaad34308d49de60fd2f7ec9dc6a79cbab2ca34\" },\n        { \"6640f4d80af5496ca1bc2cfff1fefbe99638dbceaabd7d0ade118999d45f053d\", \"31f59ceeeafdbfe8cae7914caeba90d6\", \"9af4697d2f5574a44834a2c2ae1a0505af9f5d869dbe381a994a18eb374c36a0\" },\n        { \"0693ff36d971225a44ac92c092c60b399e672e4cc5aafd5e31426f123787ac27\", \"3a6293da061da405db45be1731d5fc4d\", \"f87b38609142c01095bfc425573bb3c698f9ae866b7e4216840b9c4caf3b0865\" },\n        { \"809539bd2639a23bf83578700f055f313561c7785a4a19fc9114086915eee551\", \"780c65d6a3318e479c02141d3f0b3918\", \"902ea8ce4680c09395ce71874d242f84274243a156938aaa2dd37ac5be382b42\" },\n        { \"1a170ddf25a4fd69b648926e6d794e73408805835c64b2c70efddd8cd1c56ce0\", \"05dbee10de87eb0c5acb2b66ebbe67d3\", \"a4e20b634c77d7db908d387b48ec2b370059db916e8ea7716dc07238532d5981\" },\n        { \"3b354e4bb69b5b4a1126f509e84cad49f18c9f5f29f0be0c821316a6986e15a6\", \"d8a89af02f4b8b2901d8321796388b6c\", \"9816cb1a5b61993735a4b161b51ed2265b696e7ded5309c229a5a99f53534fbc\" },\n        { \"4b9a818892e15a530db50dd2832e95ee192e5ed6afffb408bd624a0c4e12a081\", \"a9079c551de70501be0286d1bc78b045\", \"ebc5224cf41ea97473683b6c2f38a084bf6e1feaaeff62676db59d5b719d999b\" },\n        { \"c49758f00003714c38f1d4972bde57ee8271f543b91e07ebce56b554eb7fa6a7\", \"31f0204e10cf4f2035f9e62bb5ba7303\", \"0dd8cc400f702d2c06ed920be52048a287076b86480ae273c6d568a2e9e7518c\" }\n    };\n    const HChaCha20TV *tv;\n    unsigned char     *constant;\n    unsigned char     *key;\n    unsigned char     *in;\n    unsigned char     *out;\n    unsigned char     *out2;\n    size_t             i;\n\n    constant = (unsigned char *) sodium_malloc(crypto_core_hchacha20_CONSTBYTES);\n    key = (unsigned char *) sodium_malloc(crypto_core_hchacha20_KEYBYTES);\n    in = (unsigned char *) sodium_malloc(crypto_core_hchacha20_INPUTBYTES);\n    out = (unsigned char *) sodium_malloc(crypto_core_hchacha20_OUTPUTBYTES);\n    out2 = (unsigned char *) sodium_malloc(crypto_core_hchacha20_OUTPUTBYTES);\n    for (i = 0; i < (sizeof tvs) / (sizeof tvs[0]); i++) {\n        tv = &tvs[i];\n        sodium_hex2bin(key, crypto_core_hchacha20_KEYBYTES,\n                       tv->key, strlen(tv->key), NULL, NULL, NULL);\n        sodium_hex2bin(in, crypto_core_hchacha20_INPUTBYTES,\n                       tv->in, strlen(tv->in), NULL, NULL, NULL);\n        sodium_hex2bin(out, crypto_core_hchacha20_OUTPUTBYTES,\n                       tv->out, strlen(tv->out), NULL, NULL, NULL);\n        crypto_core_hchacha20(out2, in, key, NULL);\n        assert(memcmp(out, out2, crypto_core_hchacha20_OUTPUTBYTES) == 0);\n    }\n\n    sodium_hex2bin(constant, crypto_core_hchacha20_CONSTBYTES,\n                   \"0d29b795c1ca70c1652e823364d32417\",\n                   crypto_core_hchacha20_CONSTBYTES * 2 + 1, NULL, NULL, NULL);\n    sodium_hex2bin(out, crypto_core_hchacha20_OUTPUTBYTES,\n                   \"934d941d78eb9bfc2f0376f7ccd4a11ecf0c6a44104618a9749ef47fe97037a2\",\n                   crypto_core_hchacha20_OUTPUTBYTES * 2 + 1, NULL, NULL, NULL);\n\n    crypto_core_hchacha20(out2, in, key, constant);\n    assert(memcmp(out, out2, crypto_core_hchacha20_OUTPUTBYTES) == 0);\n\n    sodium_free(out2);\n    sodium_free(out);\n    sodium_free(in);\n    sodium_free(key);\n    sodium_free(constant);\n\n    assert(crypto_core_hchacha20_outputbytes() == crypto_core_hchacha20_OUTPUTBYTES);\n    assert(crypto_core_hchacha20_inputbytes() == crypto_core_hchacha20_INPUTBYTES);\n    assert(crypto_core_hchacha20_keybytes() == crypto_core_hchacha20_KEYBYTES);\n    assert(crypto_core_hchacha20_constbytes() == crypto_core_hchacha20_CONSTBYTES);\n\n    printf(\"tv_hchacha20: ok\\n\");\n}\n\n#define XCHACHA20_OUT_MAX 100\n\ntypedef struct XChaCha20TV_ {\n    const char key[crypto_stream_xchacha20_KEYBYTES * 2 + 1];\n    const char nonce[crypto_stream_xchacha20_NONCEBYTES * 2 + 1];\n    const char out[XCHACHA20_OUT_MAX * 2 + 1];\n} XChaCha20TV;\n\nstatic void\ntv_stream_xchacha20(void)\n{\n    static const XChaCha20TV tvs[] = {\n        { \"79c99798ac67300bbb2704c95c341e3245f3dcb21761b98e52ff45b24f304fc4\", \"b33ffd3096479bcfbc9aee49417688a0a2554f8d95389419\", \"c6e9758160083ac604ef90e712ce6e75d7797590744e0cf060f013739c\" },\n        { \"ddf7784fee099612c40700862189d0397fcc4cc4b3cc02b5456b3a97d1186173\", \"a9a04491e7bf00c3ca91ac7c2d38a777d88993a7047dfcc4\", \"2f289d371f6f0abc3cb60d11d9b7b29adf6bc5ad843e8493e928448d\" },\n        { \"3d12800e7b014e88d68a73f0a95b04b435719936feba60473f02a9e61ae60682\", \"56bed2599eac99fb27ebf4ffcb770a64772dec4d5849ea2d\", \"a2c3c1406f33c054a92760a8e0666b84f84fa3a618f0\" },\n        { \"5f5763ff9a30c95da5c9f2a8dfd7cc6efd9dfb431812c075aa3e4f32e04f53e4\", \"a5fa890efa3b9a034d377926ce0e08ee6d7faccaee41b771\", \"8a1a5ba898bdbcff602b1036e469a18a5e45789d0e8d9837d81a2388a52b0b6a0f51891528f424c4a7f492a8dd7bce8bac19fbdbe1fb379ac0\" },\n        { \"eadc0e27f77113b5241f8ca9d6f9a5e7f09eee68d8a5cf30700563bf01060b4e\", \"a171a4ef3fde7c4794c5b86170dc5a099b478f1b852f7b64\", \"23839f61795c3cdbcee2c749a92543baeeea3cbb721402aa42e6cae140447575f2916c5d71108e3b13357eaf86f060cb\" },\n        { \"91319c9545c7c804ba6b712e22294c386fe31c4ff3d278827637b959d3dbaab2\", \"410e854b2a911f174aaf1a56540fc3855851f41c65967a4e\", \"cbe7d24177119b7fdfa8b06ee04dade4256ba7d35ffda6b89f014e479faef6\" },\n        { \"6a6d3f412fc86c4450fc31f89f64ed46baa3256ffcf8616e8c23a06c422842b6\", \"6b7773fce3c2546a5db4829f53a9165f41b08faae2fb72d5\", \"8b23e35b3cdd5f3f75525fc37960ec2b68918e8c046d8a832b9838f1546be662e54feb1203e2\" },\n        { \"d45e56368ebc7ba9be7c55cfd2da0feb633c1d86cab67cd5627514fd20c2b391\", \"fd37da2db31e0c738754463edadc7dafb0833bd45da497fc\", \"47950efa8217e3dec437454bd6b6a80a287e2570f0a48b3fa1ea3eb868be3d486f6516606d85e5643becc473b370871ab9ef8e2a728f73b92bd98e6e26ea7c8ff96ec5a9e8de95e1eee9300c\" },\n        { \"aface41a64a9a40cbc604d42bd363523bd762eb717f3e08fe2e0b4611eb4dcf3\", \"6906e0383b895ab9f1cf3803f42f27c79ad47b681c552c63\", \"a5fa7c0190792ee17675d52ad7570f1fb0892239c76d6e802c26b5b3544d13151e67513b8aaa1ac5af2d7fd0d5e4216964324838\" },\n        { \"9d23bd4149cb979ccf3c5c94dd217e9808cb0e50cd0f67812235eaaf601d6232\", \"c047548266b7c370d33566a2425cbf30d82d1eaf5294109e\", \"a21209096594de8c5667b1d13ad93f744106d054df210e4782cd396fec692d3515a20bf351eec011a92c367888bc464c32f0807acd6c203a247e0db854148468e9f96bee4cf718d68d5f637cbd5a376457788e6fae90fc31097cfc\" },\n    };\n    const XChaCha20TV *tv;\n    char              *hex;\n    unsigned char     *key;\n    unsigned char     *nonce;\n    unsigned char     *out;\n    unsigned char     *out2;\n    size_t             out_len;\n    size_t             i;\n\n    key = (unsigned char *) sodium_malloc(crypto_stream_xchacha20_KEYBYTES);\n    nonce = (unsigned char *) sodium_malloc(crypto_stream_xchacha20_NONCEBYTES);\n    out = (unsigned char *) sodium_malloc(XCHACHA20_OUT_MAX);\n    for (i = 0; i < (sizeof tvs) / (sizeof tvs[0]); i++) {\n        tv = &tvs[i];\n\n        sodium_hex2bin(key, crypto_stream_xchacha20_KEYBYTES,\n                       tv->key, strlen(tv->key), NULL, NULL, NULL);\n        sodium_hex2bin(nonce, crypto_stream_xchacha20_NONCEBYTES,\n                       tv->nonce, strlen(tv->nonce), NULL, NULL, NULL);\n        sodium_hex2bin(out, XCHACHA20_OUT_MAX,\n                       tv->out, strlen(tv->out), NULL, &out_len, NULL);\n        out2 = (unsigned char *) sodium_malloc(out_len);\n        crypto_stream_xchacha20(out2, out_len, nonce, key);\n        assert(memcmp(out, out2, out_len) == 0);\n        crypto_stream_xchacha20_xor(out2, out, out_len, nonce, key);\n        assert(sodium_is_zero(out2, out_len));\n        crypto_stream_xchacha20_xor_ic(out2, out, out_len, nonce, 0, key);\n        assert(sodium_is_zero(out2, out_len));\n        crypto_stream_xchacha20_xor_ic(out2, out, out_len, nonce, 1, key);\n        assert(!sodium_is_zero(out2, out_len));\n        crypto_stream_xchacha20_xor(out, out, out_len, nonce, key);\n        assert(sodium_is_zero(out, out_len));\n        sodium_free(out2);\n    }\n\n    out2 = (unsigned char *) sodium_malloc(0);\n    crypto_stream_xchacha20(out2, 0, nonce, key);\n    crypto_stream_xchacha20_xor(out2, out2, 0, nonce, key);\n    crypto_stream_xchacha20_xor_ic(out2, out2, 0, nonce, 1, key);\n    sodium_free(out2);\n    sodium_free(out);\n\n    out = (unsigned char *) sodium_malloc(64);\n    out2 = (unsigned char *) sodium_malloc(128);\n    randombytes_buf(out, 64);\n    randombytes_buf(out2, 64);\n    memcpy(out2 + 64, out, 64);\n    crypto_stream_xchacha20_xor_ic(out, out, 64, nonce, 1, key);\n    crypto_stream_xchacha20_xor(out2, out2, 128, nonce, key);\n    assert(memcmp(out, out2 + 64, 64) == 0);\n    sodium_free(out);\n    sodium_free(out2);\n\n    out = (unsigned char *) sodium_malloc(192);\n    out2 = (unsigned char *) sodium_malloc(192);\n    memset(out, 0, 192);\n    memset(out2, 0, 192);\n    crypto_stream_xchacha20_xor_ic(out2, out2, 192, nonce,\n                                   (1ULL << 32) - 1ULL, key);\n    crypto_stream_xchacha20_xor_ic(out, out, 64, nonce,\n                                   (1ULL << 32) - 1ULL, key);\n    crypto_stream_xchacha20_xor_ic(out + 64, out + 64, 64, nonce,\n                                   (1ULL << 32), key);\n    crypto_stream_xchacha20_xor_ic(out + 128, out + 128, 64, nonce,\n                                   (1ULL << 32) + 1, key);\n    assert(memcmp(out, out2, 192) == 0);\n    hex = (char *) sodium_malloc(192 * 2 + 1);\n    sodium_bin2hex(hex, 192 * 2 + 1, out, 192);\n    printf(\"%s\\n\", hex);\n\n    memset(key, 0, crypto_stream_xchacha20_KEYBYTES);\n    crypto_stream_xchacha20_keygen(key);\n    assert(sodium_is_zero(key, crypto_stream_xchacha20_KEYBYTES) == 0);\n\n    sodium_free(hex);\n    sodium_free(out);\n    sodium_free(out2);\n\n    sodium_free(nonce);\n    sodium_free(key);\n\n    assert(crypto_stream_xchacha20_keybytes() == crypto_stream_xchacha20_KEYBYTES);\n    assert(crypto_stream_xchacha20_noncebytes() == crypto_stream_xchacha20_NONCEBYTES);\n    assert(crypto_stream_xchacha20_messagebytes_max() == crypto_stream_xchacha20_MESSAGEBYTES_MAX);\n\n    printf(\"tv_stream_xchacha20: ok\\n\");\n}\n\ntypedef struct XChaCha20Poly1305TV_ {\n    const char  key[crypto_secretbox_xchacha20poly1305_KEYBYTES * 2 + 1];\n    const char  nonce[crypto_secretbox_xchacha20poly1305_NONCEBYTES * 2 + 1];\n    const char *m;\n    const char *out;\n} XChaCha20Poly1305TV;\n\nstatic void\ntv_secretbox_xchacha20poly1305(void)\n{\n    static const XChaCha20Poly1305TV tvs[] = {\n        { \"065ff46a9dddb1ab047ee5914d6d575a828b8cc1f454b24e8cd0f57efdc49a34\", \"f83262646ce01293b9923a65a073df78c54b2e799cd6c4e5\", \"\", \"4c72340416339dcdea01b760db5adaf7\" },\n        { \"d3c71d54e6b13506e07aa2e7b412a17a7a1f34df3d3148cd3f45b91ccaa5f4d9\", \"943b454a853aa514c63cf99b1e197bbb99da24b2e2d93e47\", \"76bd706e07741e713d90efdb34ad202067263f984942aae8bda159f30dfccc72200f8093520b85c5ad124ff7c8b2d920946e5cfff4b819abf84c7b35a6205ca72c9f8747c3044dd73fb4bebda1b476\", \"0384276f1cfa5c82c3e58f0f2acc1f821c6f526d2c19557cf8bd270fcde43fba1d88890663f7b2f5c6b1d7deccf5c91b4df5865dc55cc7e04d6793fc2db8f9e3b418f95cb796d67a7f3f7e097150cb607c435dacf82eac3d669866e5092ace\" },\n        { \"9498fdb922e0596e32af7f8108def2068f5a32a5ac70bd33ade371701f3d98d0\", \"a0056f24be0d20106fe750e2ee3684d4457cbdcb3a74e566\", \"b1bc9cfedb340fb06a37eba80439189e48aa0cfd37020eec0afa09165af12864671b3fbddbbb20ac18f586f2f66d13b3ca40c9a7e21c4513a5d87a95319f8ca3c2151e2a1b8b86a35653e77f90b9e63d2a84be9b9603876a89d60fd708edcd64b41be1064b8ad1046553aaeb51dc70b8112c9915d94f2a5dad1e14e7009db6c703c843a4f64b77d44b179b9579ac497dac2d33\", \"4918790d46893fa3dca74d8abc57eef7fca2c6393d1beef5efa845ac20475db38d1a068debf4c5dbd8614eb072877c565dc52bd40941f0b590d2079a5028e426bf50bcbaadcbebf278bddceedc578a5e31379523dee15026ec82d34e56f2871fdf13255db199ac48f163d5ee7e4f4e09a39451356959d9242a39aea33990ab960a4c25346e3d9397fc5e7cb6266c2476411cd331f2bcb4486750c746947ec6401865d5\" },\n        { \"fa2d915e044d0519248150e7c815b01f0f2a691c626f8d22c3ef61e7f16eea47\", \"c946065dc8befa9cc9f292ea2cf28f0256285565051792b7\", \"d5be1a24c7872115dc5c5b4234dbee35a6f89ae3a91b3e33d75249a0aecfed252341295f49296f7ee14d64de1ea6355cb8facd065052d869aeb1763cda7e418a7e33b6f7a81327181df6cd4de3a126d9df1b5e8b0b1a6b281e63f2\", \"6d32e3571afec58b0acabb54a287118b3ed6691f56cc8ead12d735352c9a050c2ca173c78b6092f9ad4b7c21c36fb0ce18560956395bab3099c54760a743051ac6a898a0b0034b5e953340c975cf7a873c56b27e66bca2bff1dd977addefc7935bb7550753dd13d1f1a43d\" },\n        { \"6f149c2ec27af45176030c8dd7ab0e1e488f5803f26f75045d7a56f59a587a85\", \"952aff2f39bc70016f04ac7fb8b55fd22764ba16b56e255d\", \"8fde598c4bde5786abdc6ab83fce66d59782b6ce36afe028c447ad4086a748764afa88a520e837a9d56d0b7693b0476649f24c2aa44b94615a1efc75\", \"9bccf07974836fa4609d32d9527d928d184d9c6c0823af2f703e0e257a162d26d3678fa15ab1c4db76ac42084d32cefca8efaf77814c199b310999e327a3e3daa2e235b175979504ede87b58\" },\n        { \"b964b7fdf442efbcc2cd3e4cd596035bdfb05ed7d44f7fd4dce2d5614af5c8c4\", \"2886fbfa4b35b68f28d31df6243a4fbc56475b69e24820a4\", \"\", \"b83fbdd112bf0f7d62eff96c9faa8850\" },\n        { \"10c0ad4054b48d7d1de1d9ab6f782ca883d886573e9d18c1d47b6ee6b5208189\", \"977edf57428d0e0247a3c88c9a9ec321bbaae1a4da8353b5\", \"518e4a27949812424b2a381c3efea6055ee5e75eff\", \"0c801a037c2ed0500d6ef68e8d195eceb05a15f8edb68b35773e81ac2aca18e9be53416f9a\" },\n        { \"7db0a81d01699c86f47a3ec76d46aa32660adad7f9ac72cf8396419f789f6bb1\", \"e7cb57132ce954e28f4470cca1dbda20b534cdf32fbe3658\", \"ee6511d403539e611ab312205f0c3b8f36a33d36f1dc44bb33d6836f0ab93b9f1747167bf0150f045fcd12a39479641d8bdde6fe01475196e8fe2c435e834e30a59f6aaa01ebcd\", \"ae8b1d4df4f982b2702626feca07590fedd0dfa7ae34e6a098372a1aa32f9fbf0ce2a88b5c16a571ef48f3c9fda689ce8ebb9947c9e2a28e01b1191efc81ad2ce0ed6e6fc7c164b1fc7f3d50b7f5e47a895db3c1fc46c0\" },\n        { \"7b043dd27476cf5a2baf2907541d8241ecd8b97d38d08911737e69b0846732fb\", \"74706a2855f946ed600e9b453c1ac372520b6a76a3c48a76\", \"dbf165bb8352d6823991b99f3981ba9c8153635e5695477cba54e96a2a8c4dc5f9dbe817887d7340e3f48a\", \"ce57261afba90a9598de15481c43f26f7b8c8cb2806c7c977752dba898dc51b92a3f1a62ebf696747bfccf72e0edda97f2ccd6d496f55aefbb3ec2\" },\n        { \"e588e418d658df1b2b1583122e26f74ca3506b425087bea895d81021168f8164\", \"4f4d0ffd699268cd841ce4f603fe0cd27b8069fcf8215fbb\", \"f91bcdcf4d08ba8598407ba8ef661e66c59ca9d89f3c0a3542e47246c777091e4864e63e1e3911dc01257255e551527a53a34481be\", \"22dc88de7cacd4d9ce73359f7d6e16e74caeaa7b0d1ef2bb10fda4e79c3d5a9aa04b8b03575fd27bc970c9ed0dc80346162469e0547030ddccb8cdc95981400907c87c9442\" }\n    };\n    const XChaCha20Poly1305TV *tv;\n    unsigned char             *m;\n    unsigned char             *nonce;\n    unsigned char             *key;\n    unsigned char             *out;\n    unsigned char             *out2;\n    size_t                     m_len;\n    size_t                     n;\n    size_t                     i;\n\n    key = (unsigned char *) sodium_malloc\n        (crypto_secretbox_xchacha20poly1305_KEYBYTES);\n    nonce = (unsigned char *) sodium_malloc\n        (crypto_secretbox_xchacha20poly1305_NONCEBYTES);\n    for (i = 0; i < (sizeof tvs) / (sizeof tvs[0]); i++) {\n        tv = &tvs[i];\n        m_len = strlen(tv->m) / 2;\n        m = (unsigned char *) sodium_malloc(m_len);\n        sodium_hex2bin(key, crypto_secretbox_xchacha20poly1305_KEYBYTES,\n                       tv->key, strlen(tv->key), NULL, NULL, NULL);\n        sodium_hex2bin(nonce, crypto_secretbox_xchacha20poly1305_NONCEBYTES,\n                       tv->nonce, strlen(tv->nonce), NULL, NULL, NULL);\n        sodium_hex2bin(m, m_len, tv->m, strlen(tv->m), NULL, NULL, NULL);\n        out = (unsigned char *) sodium_malloc\n            (crypto_secretbox_xchacha20poly1305_MACBYTES + m_len);\n        out2 = (unsigned char *) sodium_malloc\n            (crypto_secretbox_xchacha20poly1305_MACBYTES + m_len);\n        sodium_hex2bin(out, crypto_secretbox_xchacha20poly1305_MACBYTES + m_len,\n                       tv->out, strlen(tv->out), NULL, NULL, NULL);\n        assert(crypto_secretbox_xchacha20poly1305_easy(out2, m, 0, nonce, key) == 0);\n        assert(crypto_secretbox_xchacha20poly1305_easy(out2, m, m_len, nonce, key) == 0);\n        assert(memcmp(out, out2,\n                      crypto_secretbox_xchacha20poly1305_MACBYTES + m_len) == 0);\n        n = randombytes_uniform(crypto_secretbox_xchacha20poly1305_MACBYTES + (uint32_t) m_len);\n        assert(crypto_secretbox_xchacha20poly1305_open_easy\n               (out2, out2, crypto_secretbox_xchacha20poly1305_MACBYTES - 1,\n                nonce, key) == -1);\n        assert(crypto_secretbox_xchacha20poly1305_open_easy\n               (out2, out2, 0,\n                nonce, key) == -1);\n        out2[n]++;\n        assert(crypto_secretbox_xchacha20poly1305_open_easy\n               (out2, out2, crypto_secretbox_xchacha20poly1305_MACBYTES + m_len,\n                nonce, key) == -1);\n        out2[n]--;\n        nonce[0]++;\n        assert(crypto_secretbox_xchacha20poly1305_open_easy\n               (out2, out2, crypto_secretbox_xchacha20poly1305_MACBYTES + m_len,\n                nonce, key) == -1);\n        nonce[0]--;\n        assert(crypto_secretbox_xchacha20poly1305_open_easy\n               (out2, out2, crypto_secretbox_xchacha20poly1305_MACBYTES + m_len,\n                nonce, key) == 0);\n        assert(crypto_secretbox_xchacha20poly1305_open_easy\n               (out2, out2, crypto_secretbox_xchacha20poly1305_MACBYTES - 1,\n                nonce, key) == -1);\n        assert(crypto_secretbox_xchacha20poly1305_open_easy\n               (out2, out2, 0, nonce, key) == -1);\n        assert(memcmp(m, out2, m_len) == 0);\n        assert(crypto_secretbox_xchacha20poly1305_open_detached\n               (out2, out + crypto_secretbox_xchacha20poly1305_MACBYTES, out,\n                m_len, nonce, key) == 0);\n        assert(crypto_secretbox_xchacha20poly1305_open_detached\n               (NULL, out + crypto_secretbox_xchacha20poly1305_MACBYTES, out,\n                m_len, nonce, key) == 0);\n        crypto_secretbox_xchacha20poly1305_detached\n            (out2 + crypto_secretbox_xchacha20poly1305_MACBYTES, out2, m,\n             m_len, nonce, key);\n        assert(memcmp(out, out2,\n                      crypto_secretbox_xchacha20poly1305_MACBYTES + m_len) == 0);\n        sodium_free(out);\n        sodium_free(out2);\n        sodium_free(m);\n    }\n    sodium_free(nonce);\n    sodium_free(key);\n\n    assert(crypto_secretbox_xchacha20poly1305_keybytes() == crypto_secretbox_xchacha20poly1305_KEYBYTES);\n    assert(crypto_secretbox_xchacha20poly1305_noncebytes() == crypto_secretbox_xchacha20poly1305_NONCEBYTES);\n    assert(crypto_secretbox_xchacha20poly1305_macbytes() == crypto_secretbox_xchacha20poly1305_MACBYTES);\n    assert(crypto_secretbox_xchacha20poly1305_messagebytes_max() == crypto_secretbox_xchacha20poly1305_MESSAGEBYTES_MAX);\n\n    printf(\"tv_secretbox_xchacha20: ok\\n\");\n}\n\nstatic void\ntv_box_xchacha20poly1305(void)\n{\n    char           hex[65];\n    unsigned char *pk;\n    unsigned char *sk;\n    unsigned char *m;\n    unsigned char *m2;\n    unsigned char *mac;\n    unsigned char *nonce;\n    unsigned char *out;\n    unsigned char *pc;\n    unsigned char *seed;\n    size_t         m_len;\n    int            i;\n\n    pk = (unsigned char *) sodium_malloc(crypto_box_curve25519xchacha20poly1305_PUBLICKEYBYTES);\n    sk = (unsigned char *) sodium_malloc(crypto_box_curve25519xchacha20poly1305_SECRETKEYBYTES);\n    nonce = (unsigned char *) sodium_malloc(crypto_box_curve25519xchacha20poly1305_NONCEBYTES);\n    mac = (unsigned char *) sodium_malloc(crypto_box_curve25519xchacha20poly1305_MACBYTES);\n    pc = (unsigned char *) sodium_malloc(crypto_box_curve25519xchacha20poly1305_BEFORENMBYTES);\n    for (i = 0; i < 10; i++) {\n        m_len = (i == 0) ? 0 : randombytes_uniform(150);\n        m = (unsigned char *) sodium_malloc(m_len);\n        m2 = (unsigned char *) sodium_malloc(m_len);\n\n        out = (unsigned char *) sodium_malloc\n            (crypto_box_curve25519xchacha20poly1305_MACBYTES + m_len);\n        randombytes_buf(nonce, crypto_box_curve25519xchacha20poly1305_NONCEBYTES);\n        randombytes_buf(m, m_len);\n        assert(crypto_box_curve25519xchacha20poly1305_keypair(pk, sk) == 0);\n        assert(crypto_box_curve25519xchacha20poly1305_easy(out, m, 0, nonce,\n                                                           pk, sk) == 0);\n        assert(crypto_box_curve25519xchacha20poly1305_easy(out, m, m_len, nonce,\n                                                           pk, sk) == 0);\n        assert(crypto_box_curve25519xchacha20poly1305_open_easy\n               (m2, out, crypto_box_curve25519xchacha20poly1305_MACBYTES + m_len,\n                nonce, small_order_p, sk) == -1);\n        assert(crypto_box_curve25519xchacha20poly1305_open_easy\n               (m2, out, crypto_box_curve25519xchacha20poly1305_MACBYTES - 1,\n                nonce, pk, sk) == -1);\n        assert(crypto_box_curve25519xchacha20poly1305_open_easy\n               (m2, out, 0, nonce, pk, sk) == -1);\n        assert(crypto_box_curve25519xchacha20poly1305_open_easy\n               (m2, out, crypto_box_curve25519xchacha20poly1305_MACBYTES + m_len,\n                nonce, pk, sk) == 0);\n        assert(memcmp(m2, m, m_len) == 0);\n        sodium_free(out);\n\n        out = (unsigned char *) sodium_malloc\n            (crypto_box_curve25519xchacha20poly1305_MACBYTES + m_len);\n        assert(crypto_box_curve25519xchacha20poly1305_beforenm(pc, small_order_p, sk) == -1);\n        assert(crypto_box_curve25519xchacha20poly1305_beforenm(pc, pk, sk) == 0);\n        assert(crypto_box_curve25519xchacha20poly1305_easy_afternm\n               (out, m, 0, nonce, pc) == 0);\n        assert(crypto_box_curve25519xchacha20poly1305_easy_afternm\n               (out, m, m_len, nonce, pc) == 0);\n        assert(crypto_box_curve25519xchacha20poly1305_open_easy_afternm\n               (m2, out, crypto_box_curve25519xchacha20poly1305_MACBYTES - 1,\n                nonce, pc) == -1);\n        assert(crypto_box_curve25519xchacha20poly1305_open_easy_afternm\n               (m2, out, 0,\n                nonce, pc) == -1);\n        assert(crypto_box_curve25519xchacha20poly1305_open_easy_afternm\n               (m2, out, crypto_box_curve25519xchacha20poly1305_MACBYTES + m_len,\n                nonce, pc) == 0);\n        assert(memcmp(m2, m, m_len) == 0);\n        sodium_free(out);\n\n        out = (unsigned char *) sodium_malloc(m_len);\n        assert(crypto_box_curve25519xchacha20poly1305_detached(out, mac, m, m_len,\n                                                               nonce, small_order_p, sk) == -1);\n        assert(crypto_box_curve25519xchacha20poly1305_detached(out, mac, m, m_len,\n                                                               nonce, pk, sk) == 0);\n        assert(crypto_box_curve25519xchacha20poly1305_open_detached\n               (m2, out, mac, m_len, nonce, small_order_p, sk) == -1);\n        assert(crypto_box_curve25519xchacha20poly1305_open_detached\n               (m2, out, mac, m_len, nonce, pk, sk) == 0);\n        sodium_free(out);\n\n        out = (unsigned char *) sodium_malloc(m_len);\n        assert(crypto_box_curve25519xchacha20poly1305_detached_afternm\n               (out, mac, m, m_len, nonce, pc) == 0);\n        assert(crypto_box_curve25519xchacha20poly1305_open_detached_afternm\n               (m2, out, mac, m_len, nonce, pc) == 0);\n        sodium_free(out);\n\n        sodium_free(m2);\n        sodium_free(m);\n    }\n    sodium_free(pc);\n    sodium_free(mac);\n    sodium_free(nonce);\n\n    seed = (unsigned char *) sodium_malloc\n        (crypto_box_curve25519xchacha20poly1305_SEEDBYTES);\n    for (i = 0; i <(int)  crypto_box_curve25519xchacha20poly1305_SEEDBYTES; i++) {\n        seed[i] = (unsigned char) i;\n    }\n    crypto_box_curve25519xchacha20poly1305_seed_keypair(pk, sk, seed);\n    sodium_bin2hex(hex, sizeof hex, pk, crypto_box_curve25519xchacha20poly1305_PUBLICKEYBYTES);\n    assert(strcmp(hex, \"4701d08488451f545a409fb58ae3e58581ca40ac3f7f114698cd71deac73ca01\") == 0);\n    sodium_bin2hex(hex, sizeof hex, sk, crypto_box_curve25519xchacha20poly1305_SECRETKEYBYTES);\n    assert(strcmp(hex, \"3d94eea49c580aef816935762be049559d6d1440dede12e6a125f1841fff8e6f\") == 0);\n    sodium_free(seed);\n\n    sodium_free(sk);\n    sodium_free(pk);\n\n    assert(crypto_box_curve25519xchacha20poly1305_seedbytes() == crypto_box_curve25519xchacha20poly1305_SEEDBYTES);\n    assert(crypto_box_curve25519xchacha20poly1305_publickeybytes() == crypto_box_curve25519xchacha20poly1305_PUBLICKEYBYTES);\n    assert(crypto_box_curve25519xchacha20poly1305_secretkeybytes() == crypto_box_curve25519xchacha20poly1305_SECRETKEYBYTES);\n    assert(crypto_box_curve25519xchacha20poly1305_beforenmbytes() == crypto_box_curve25519xchacha20poly1305_BEFORENMBYTES);\n    assert(crypto_box_curve25519xchacha20poly1305_noncebytes() == crypto_box_curve25519xchacha20poly1305_NONCEBYTES);\n    assert(crypto_box_curve25519xchacha20poly1305_macbytes() == crypto_box_curve25519xchacha20poly1305_MACBYTES);\n    assert(crypto_box_curve25519xchacha20poly1305_messagebytes_max() == crypto_box_curve25519xchacha20poly1305_MESSAGEBYTES_MAX);\n\n    printf(\"tv_box_xchacha20poly1305: ok\\n\");\n}\n\nint\nmain(void)\n{\n    tv_hchacha20();\n    tv_stream_xchacha20();\n    tv_secretbox_xchacha20poly1305();\n    tv_box_xchacha20poly1305();\n\n    return 0;\n}\n"
  },
  {
    "path": "test/default/xchacha20.exp",
    "content": "tv_hchacha20: ok\n3e34c160a966ddfbd52d38f6a440a77256c1134ad54653db427dfdfc72f0f995768039052ec2ec4e6fe02c655d7d95681fabd417c087ad17f177510ba09d4cfe7beb8f7c9b8330d746310f9e29583e9ef240156015faafeb24a4d002d6337b7bcec8b54a64ef704e1ae3247d79625d267cbacd1c90e4a2df2f72d4090babf88c90e65a086c464ec1753c49d3b8ad02f2a3c0808e1695c5d77cec6f6f12578ae4ed077a2046e06644d14af65ae90f2869a6f1f910b83a7a3cfec8dd390621a511\ntv_stream_xchacha20: ok\ntv_secretbox_xchacha20: ok\ntv_box_xchacha20poly1305: ok\n"
  },
  {
    "path": "test/default/xof2.c",
    "content": "\n#define TEST_NAME \"xof2\"\n#include \"cmptest.h\"\n\nint\nmain(void)\n{\n    unsigned char out[64];\n    unsigned char out2[64];\n    int           ret;\n\n    {\n        crypto_xof_shake128_state state;\n\n        crypto_xof_shake128_init(&state);\n        crypto_xof_shake128_update(&state, (const unsigned char *) \"test\", 4);\n        crypto_xof_shake128_squeeze(&state, out, 32);\n\n        ret = crypto_xof_shake128_update(&state, (const unsigned char *) \"x\", 1);\n        assert(ret == -1);\n        crypto_xof_shake128_squeeze(&state, out2, 32);\n        assert(memcmp(out, out2, 32) != 0);\n    }\n    printf(\"shake128 update-after-squeeze: ok\\n\");\n\n    {\n        crypto_xof_shake256_state state;\n\n        crypto_xof_shake256_init(&state);\n        crypto_xof_shake256_update(&state, (const unsigned char *) \"test\", 4);\n        crypto_xof_shake256_squeeze(&state, out, 32);\n\n        ret = crypto_xof_shake256_update(&state, (const unsigned char *) \"x\", 1);\n        assert(ret == -1);\n        crypto_xof_shake256_squeeze(&state, out2, 32);\n        assert(memcmp(out, out2, 32) != 0);\n    }\n    printf(\"shake256 update-after-squeeze: ok\\n\");\n\n    {\n        crypto_xof_turboshake128_state state;\n\n        crypto_xof_turboshake128_init(&state);\n        crypto_xof_turboshake128_update(&state, (const unsigned char *) \"test\", 4);\n        crypto_xof_turboshake128_squeeze(&state, out, 32);\n\n        ret = crypto_xof_turboshake128_update(&state,\n                                              (const unsigned char *) \"x\", 1);\n        assert(ret == -1);\n        crypto_xof_turboshake128_squeeze(&state, out2, 32);\n        assert(memcmp(out, out2, 32) != 0);\n    }\n    printf(\"turboshake128 update-after-squeeze: ok\\n\");\n\n    {\n        crypto_xof_turboshake256_state state;\n\n        crypto_xof_turboshake256_init(&state);\n        crypto_xof_turboshake256_update(&state, (const unsigned char *) \"test\", 4);\n        crypto_xof_turboshake256_squeeze(&state, out, 32);\n\n        ret = crypto_xof_turboshake256_update(&state,\n                                              (const unsigned char *) \"x\", 1);\n        assert(ret == -1);\n        crypto_xof_turboshake256_squeeze(&state, out2, 32);\n        assert(memcmp(out, out2, 32) != 0);\n    }\n    printf(\"turboshake256 update-after-squeeze: ok\\n\");\n\n    return 0;\n}\n"
  },
  {
    "path": "test/default/xof2.exp",
    "content": "shake128 update-after-squeeze: ok\nshake256 update-after-squeeze: ok\nturboshake128 update-after-squeeze: ok\nturboshake256 update-after-squeeze: ok\n"
  },
  {
    "path": "test/default/xof_shake128.c",
    "content": "\n#define TEST_NAME \"xof_shake128\"\n#include \"cmptest.h\"\n\ntypedef struct {\n    const unsigned char *msg;\n    size_t               msg_len;\n    const unsigned char *out;\n    size_t               out_len;\n} testvector;\n\nstatic void\nshake128_manual_with_domain(unsigned char *out, size_t outlen, const unsigned char *in,\n                            size_t inlen, unsigned char domain)\n{\n    crypto_core_keccak1600_state state;\n    size_t                       rate      = crypto_xof_shake128_blockbytes();\n    size_t                       offset    = 0;\n    size_t                       consumed  = 0;\n    size_t                       chunk_size;\n    size_t                       extracted = 0;\n    unsigned char                pad;\n\n    crypto_core_keccak1600_init(&state);\n\n    while (consumed < inlen) {\n        if (offset == rate) {\n            crypto_core_keccak1600_permute_24(&state);\n            offset = 0;\n        }\n        chunk_size = rate - offset;\n        if (chunk_size > inlen - consumed) {\n            chunk_size = inlen - consumed;\n        }\n        crypto_core_keccak1600_xor_bytes(&state, &in[consumed], offset, chunk_size);\n        offset += chunk_size;\n        consumed += chunk_size;\n    }\n\n    if (offset == rate) {\n        crypto_core_keccak1600_permute_24(&state);\n        offset = 0;\n    }\n\n    if (offset == rate - 1) {\n        pad = (unsigned char) (domain ^ 0x80);\n        crypto_core_keccak1600_xor_bytes(&state, &pad, offset, 1);\n    } else {\n        crypto_core_keccak1600_xor_bytes(&state, &domain, offset, 1);\n        pad = 0x80;\n        crypto_core_keccak1600_xor_bytes(&state, &pad, rate - 1, 1);\n    }\n\n    crypto_core_keccak1600_permute_24(&state);\n    offset = 0;\n\n    while (extracted < outlen) {\n        if (offset == rate) {\n            crypto_core_keccak1600_permute_24(&state);\n            offset = 0;\n        }\n        chunk_size = rate - offset;\n        if (chunk_size > outlen - extracted) {\n            chunk_size = outlen - extracted;\n        }\n        crypto_core_keccak1600_extract_bytes(&state, &out[extracted], offset, chunk_size);\n        offset += chunk_size;\n        extracted += chunk_size;\n    }\n}\n\nint\nmain(void)\n{\n    /* Test vectors from NIST and various sources */\n    static const unsigned char msg_empty[] = \"\";\n    static const unsigned char msg_abc[]   = { 0x61, 0x62, 0x63 };\n    static const unsigned char msg_fox[]   = { 0x54, 0x68, 0x65, 0x20, 0x71, 0x75, 0x69, 0x63, 0x6b,\n                                               0x20, 0x62, 0x72, 0x6f, 0x77, 0x6e, 0x20, 0x66, 0x6f,\n                                               0x78, 0x20, 0x6a, 0x75, 0x6d, 0x70, 0x73, 0x20, 0x6f,\n                                               0x76, 0x65, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6c,\n                                               0x61, 0x7a, 0x79, 0x20, 0x64, 0x6f, 0x67 };\n    static const unsigned char msg_rate_block[168] = { 0 };\n\n    static const unsigned char out_empty_32[] = { 0x7f, 0x9c, 0x2b, 0xa4, 0xe8, 0x8f, 0x82, 0x7d,\n                                                  0x61, 0x60, 0x45, 0x50, 0x76, 0x05, 0x85, 0x3e,\n                                                  0xd7, 0x3b, 0x80, 0x93, 0xf6, 0xef, 0xbc, 0x88,\n                                                  0xeb, 0x1a, 0x6e, 0xac, 0xfa, 0x66, 0xef, 0x26 };\n\n    static const unsigned char out_empty_64[] = {\n        0x7f, 0x9c, 0x2b, 0xa4, 0xe8, 0x8f, 0x82, 0x7d, 0x61, 0x60, 0x45, 0x50, 0x76,\n        0x05, 0x85, 0x3e, 0xd7, 0x3b, 0x80, 0x93, 0xf6, 0xef, 0xbc, 0x88, 0xeb, 0x1a,\n        0x6e, 0xac, 0xfa, 0x66, 0xef, 0x26, 0x3c, 0xb1, 0xee, 0xa9, 0x88, 0x00, 0x4b,\n        0x93, 0x10, 0x3c, 0xfb, 0x0a, 0xee, 0xfd, 0x2a, 0x68, 0x6e, 0x01, 0xfa, 0x4a,\n        0x58, 0xe8, 0xa3, 0x63, 0x9c, 0xa8, 0xa1, 0xe3, 0xf9, 0xae, 0x57, 0xe2\n    };\n\n    static const unsigned char out_abc_32[] = { 0x58, 0x81, 0x09, 0x2d, 0xd8, 0x18, 0xbf, 0x5c,\n                                                0xf8, 0xa3, 0xdd, 0xb7, 0x93, 0xfb, 0xcb, 0xa7,\n                                                0x40, 0x97, 0xd5, 0xc5, 0x26, 0xa6, 0xd3, 0x5f,\n                                                0x97, 0xb8, 0x33, 0x51, 0x94, 0x0f, 0x2c, 0xc8 };\n\n    static const unsigned char out_fox_32[] = { 0xf4, 0x20, 0x2e, 0x3c, 0x58, 0x52, 0xf9, 0x18,\n                                                0x2a, 0x04, 0x30, 0xfd, 0x81, 0x44, 0xf0, 0xa7,\n                                                0x4b, 0x95, 0xe7, 0x41, 0x7e, 0xca, 0xe1, 0x7d,\n                                                0xb0, 0xf8, 0xcf, 0xee, 0xd0, 0xe3, 0xe6, 0x6e };\n\n    static const unsigned char out_fox_64[] = {\n        0xf4, 0x20, 0x2e, 0x3c, 0x58, 0x52, 0xf9, 0x18, 0x2a, 0x04, 0x30, 0xfd, 0x81,\n        0x44, 0xf0, 0xa7, 0x4b, 0x95, 0xe7, 0x41, 0x7e, 0xca, 0xe1, 0x7d, 0xb0, 0xf8,\n        0xcf, 0xee, 0xd0, 0xe3, 0xe6, 0x6e, 0xb5, 0x58, 0x5e, 0xc6, 0xf8, 0x60, 0x21,\n        0xca, 0xcf, 0x27, 0x2c, 0x79, 0x8b, 0xcf, 0x97, 0xd3, 0x68, 0xb8, 0x86, 0xb1,\n        0x8f, 0xec, 0x3a, 0x57, 0x1f, 0x09, 0x60, 0x86, 0xa5, 0x23, 0x71, 0x7a\n    };\n\n    static const unsigned char out_rate_block_32[] = { 0x7c, 0x00, 0xff, 0x47, 0x48, 0x87, 0x0c,\n                                                       0xb2, 0x6d, 0xa4, 0xdc, 0x07, 0x8a, 0xff,\n                                                       0x74, 0x47, 0x7a, 0xb1, 0x53, 0xfa, 0x11,\n                                                       0x91, 0xc7, 0xb6, 0x36, 0xfe, 0xa6, 0xc0,\n                                                       0x1e, 0xcc, 0x1f, 0xab };\n\n    testvector vectors[] = { { msg_empty, 0, out_empty_32, 32 },\n                             { msg_empty, 0, out_empty_64, 64 },\n                             { msg_abc, 3, out_abc_32, 32 },\n                             { msg_fox, 43, out_fox_32, 32 },\n                             { msg_fox, 43, out_fox_64, 64 },\n                             { msg_rate_block, sizeof msg_rate_block, out_rate_block_32, 32 } };\n\n    unsigned char             out[256];\n    crypto_xof_shake128_state state;\n    size_t                    i;\n\n    /* Test constants */\n    assert(crypto_xof_shake128_blockbytes() == 168);\n    assert(crypto_xof_shake128_statebytes() == 256);\n    assert(crypto_xof_shake128_domain_standard() == 0x1F);\n\n    /* Test one-shot API */\n    for (i = 0; i < sizeof(vectors) / sizeof(vectors[0]); i++) {\n        crypto_xof_shake128(out, vectors[i].out_len, vectors[i].msg, vectors[i].msg_len);\n        if (memcmp(out, vectors[i].out, vectors[i].out_len) != 0) {\n            printf(\"Test vector %zu failed (one-shot)\\n\", i);\n            return 1;\n        }\n    }\n\n    /* Test streaming API */\n    for (i = 0; i < sizeof(vectors) / sizeof(vectors[0]); i++) {\n        crypto_xof_shake128_init(&state);\n        crypto_xof_shake128_update(&state, vectors[i].msg, vectors[i].msg_len);\n        crypto_xof_shake128_squeeze(&state, out, vectors[i].out_len);\n        if (memcmp(out, vectors[i].out, vectors[i].out_len) != 0) {\n            printf(\"Test vector %zu failed (streaming)\\n\", i);\n            return 1;\n        }\n    }\n\n    /* Test multiple squeeze calls */\n    crypto_xof_shake128_init(&state);\n    crypto_xof_shake128_update(&state, msg_abc, 3);\n    crypto_xof_shake128_squeeze(&state, out, 16);\n    crypto_xof_shake128_squeeze(&state, out + 16, 16);\n    if (memcmp(out, out_abc_32, 32) != 0) {\n        printf(\"Multiple squeeze test failed\\n\");\n        return 1;\n    }\n\n    /* Test custom domain byte produces different output */\n    crypto_xof_shake128_init(&state);\n    crypto_xof_shake128_update(&state, msg_abc, 3);\n    crypto_xof_shake128_squeeze(&state, out, 32);\n\n    crypto_xof_shake128_init_with_domain(&state, 0x99);\n    crypto_xof_shake128_update(&state, msg_abc, 3);\n    crypto_xof_shake128_squeeze(&state, out + 32, 32);\n\n    if (memcmp(out, out + 32, 32) == 0) {\n        printf(\"Custom domain byte test failed (outputs should differ)\\n\");\n        return 1;\n    }\n\n    /* Test standard domain constant */\n    crypto_xof_shake128_init_with_domain(&state, crypto_xof_shake128_domain_standard());\n    crypto_xof_shake128_update(&state, msg_abc, 3);\n    crypto_xof_shake128_squeeze(&state, out + 64, 32);\n\n    if (memcmp(out, out + 64, 32) != 0) {\n        printf(\"Domain constant test failed (should match standard init)\\n\");\n        return 1;\n    }\n\n    /* Test domain byte with MSB set when padding overlaps */\n    {\n        unsigned char       msg[crypto_xof_shake128_BLOCKBYTES - 1];\n        unsigned char       out_manual[32];\n        unsigned char       out_impl[32];\n        const unsigned char domain = 0x99;\n\n        memset(msg, 0xAA, sizeof msg);\n\n        shake128_manual_with_domain(out_manual, sizeof out_manual, msg, sizeof msg, domain);\n\n        crypto_xof_shake128_init_with_domain(&state, domain);\n        crypto_xof_shake128_update(&state, msg, sizeof msg);\n        crypto_xof_shake128_squeeze(&state, out_impl, sizeof out_impl);\n\n        if (memcmp(out_manual, out_impl, sizeof out_manual) != 0) {\n            printf(\"Domain MSB padding test failed\\n\");\n            return 1;\n        }\n    }\n\n    /* Test zero-length update and squeeze are no-ops */\n    crypto_xof_shake128_init(&state);\n    crypto_xof_shake128_update(&state, msg_abc, 1);\n    crypto_xof_shake128_update(&state, msg_abc, 0);\n    crypto_xof_shake128_update(&state, msg_abc + 1, 2);\n    crypto_xof_shake128_squeeze(&state, out, 0);\n    crypto_xof_shake128_squeeze(&state, out, 32);\n    if (memcmp(out, out_abc_32, 32) != 0) {\n        printf(\"Zero-length update/squeeze test failed\\n\");\n        return 1;\n    }\n\n    /* Test rate-sized input and long output (padding after full block) */\n    {\n        unsigned char out_manual[crypto_xof_shake128_BLOCKBYTES + 7];\n        unsigned char out_impl[crypto_xof_shake128_BLOCKBYTES + 7];\n\n        shake128_manual_with_domain(out_manual, sizeof out_manual, msg_rate_block,\n                                    sizeof msg_rate_block, crypto_xof_shake128_domain_standard());\n\n        crypto_xof_shake128_init(&state);\n        crypto_xof_shake128_update(&state, msg_rate_block, sizeof msg_rate_block);\n        crypto_xof_shake128_squeeze(&state, out_impl, sizeof out_impl);\n\n        if (memcmp(out_manual, out_impl, sizeof out_manual) != 0) {\n            printf(\"Rate block long output test failed\\n\");\n            return 1;\n        }\n    }\n\n    /* Test chunked update across block boundary */\n    {\n        unsigned char msg_rate_plus1[crypto_xof_shake128_BLOCKBYTES + 1];\n        unsigned char out_manual[32];\n        unsigned char out_impl[32];\n\n        for (i = 0; i < sizeof msg_rate_plus1; i++) {\n            msg_rate_plus1[i] = (unsigned char) i;\n        }\n\n        shake128_manual_with_domain(out_manual, sizeof out_manual, msg_rate_plus1,\n                                    sizeof msg_rate_plus1, crypto_xof_shake128_domain_standard());\n\n        crypto_xof_shake128_init(&state);\n        crypto_xof_shake128_update(&state, msg_rate_plus1, 1);\n        crypto_xof_shake128_update(&state, msg_rate_plus1 + 1, crypto_xof_shake128_BLOCKBYTES - 1);\n        crypto_xof_shake128_update(&state, msg_rate_plus1 + crypto_xof_shake128_BLOCKBYTES, 1);\n        crypto_xof_shake128_squeeze(&state, out_impl, sizeof out_impl);\n\n        if (memcmp(out_manual, out_impl, sizeof out_manual) != 0) {\n            printf(\"Chunked update boundary test failed\\n\");\n            return 1;\n        }\n    }\n\n    printf(\"All SHAKE-128 tests passed\\n\");\n    return 0;\n}\n"
  },
  {
    "path": "test/default/xof_shake128.exp",
    "content": "All SHAKE-128 tests passed\n"
  },
  {
    "path": "test/default/xof_shake256.c",
    "content": "\n#define TEST_NAME \"xof_shake256\"\n#include \"cmptest.h\"\n\ntypedef struct {\n    const unsigned char *msg;\n    size_t               msg_len;\n    const unsigned char *out;\n    size_t               out_len;\n} testvector;\n\nstatic void\nshake256_manual_with_domain(unsigned char *out, size_t outlen, const unsigned char *in,\n                            size_t inlen, unsigned char domain)\n{\n    crypto_core_keccak1600_state state;\n    size_t                       rate      = crypto_xof_shake256_blockbytes();\n    size_t                       offset    = 0;\n    size_t                       consumed  = 0;\n    size_t                       chunk_size;\n    size_t                       extracted = 0;\n    unsigned char                pad;\n\n    crypto_core_keccak1600_init(&state);\n\n    while (consumed < inlen) {\n        if (offset == rate) {\n            crypto_core_keccak1600_permute_24(&state);\n            offset = 0;\n        }\n        chunk_size = rate - offset;\n        if (chunk_size > inlen - consumed) {\n            chunk_size = inlen - consumed;\n        }\n        crypto_core_keccak1600_xor_bytes(&state, &in[consumed], offset, chunk_size);\n        offset += chunk_size;\n        consumed += chunk_size;\n    }\n\n    if (offset == rate) {\n        crypto_core_keccak1600_permute_24(&state);\n        offset = 0;\n    }\n\n    if (offset == rate - 1) {\n        pad = (unsigned char) (domain ^ 0x80);\n        crypto_core_keccak1600_xor_bytes(&state, &pad, offset, 1);\n    } else {\n        crypto_core_keccak1600_xor_bytes(&state, &domain, offset, 1);\n        pad = 0x80;\n        crypto_core_keccak1600_xor_bytes(&state, &pad, rate - 1, 1);\n    }\n\n    crypto_core_keccak1600_permute_24(&state);\n    offset = 0;\n\n    while (extracted < outlen) {\n        if (offset == rate) {\n            crypto_core_keccak1600_permute_24(&state);\n            offset = 0;\n        }\n        chunk_size = rate - offset;\n        if (chunk_size > outlen - extracted) {\n            chunk_size = outlen - extracted;\n        }\n        crypto_core_keccak1600_extract_bytes(&state, &out[extracted], offset, chunk_size);\n        offset += chunk_size;\n        extracted += chunk_size;\n    }\n}\n\nint\nmain(void)\n{\n    /* Test vectors from NIST FIPS 202 and various sources */\n    static const unsigned char msg_empty[] = \"\";\n    static const unsigned char msg_abc[]   = { 0x61, 0x62, 0x63 };\n    static const unsigned char msg_fox[]   = { 0x54, 0x68, 0x65, 0x20, 0x71, 0x75, 0x69, 0x63, 0x6b,\n                                               0x20, 0x62, 0x72, 0x6f, 0x77, 0x6e, 0x20, 0x66, 0x6f,\n                                               0x78, 0x20, 0x6a, 0x75, 0x6d, 0x70, 0x73, 0x20, 0x6f,\n                                               0x76, 0x65, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6c,\n                                               0x61, 0x7a, 0x79, 0x20, 0x64, 0x6f, 0x67 };\n    static const unsigned char msg_rate_block[136] = { 0 };\n\n    /* SHAKE-256 test vectors */\n    static const unsigned char out_empty_32[] = { 0x46, 0xb9, 0xdd, 0x2b, 0x0b, 0xa8, 0x8d, 0x13,\n                                                  0x23, 0x3b, 0x3f, 0xeb, 0x74, 0x3e, 0xeb, 0x24,\n                                                  0x3f, 0xcd, 0x52, 0xea, 0x62, 0xb8, 0x1b, 0x82,\n                                                  0xb5, 0x0c, 0x27, 0x64, 0x6e, 0xd5, 0x76, 0x2f };\n\n    static const unsigned char out_empty_64[] = {\n        0x46, 0xb9, 0xdd, 0x2b, 0x0b, 0xa8, 0x8d, 0x13, 0x23, 0x3b, 0x3f, 0xeb, 0x74,\n        0x3e, 0xeb, 0x24, 0x3f, 0xcd, 0x52, 0xea, 0x62, 0xb8, 0x1b, 0x82, 0xb5, 0x0c,\n        0x27, 0x64, 0x6e, 0xd5, 0x76, 0x2f, 0xd7, 0x5d, 0xc4, 0xdd, 0xd8, 0xc0, 0xf2,\n        0x00, 0xcb, 0x05, 0x01, 0x9d, 0x67, 0xb5, 0x92, 0xf6, 0xfc, 0x82, 0x1c, 0x49,\n        0x47, 0x9a, 0xb4, 0x86, 0x40, 0x29, 0x2e, 0xac, 0xb3, 0xb7, 0xc4, 0xbe\n    };\n\n    static const unsigned char out_abc_32[] = { 0x48, 0x33, 0x66, 0x60, 0x13, 0x60, 0xa8, 0x77,\n                                                0x1c, 0x68, 0x63, 0x08, 0x0c, 0xc4, 0x11, 0x4d,\n                                                0x8d, 0xb4, 0x45, 0x30, 0xf8, 0xf1, 0xe1, 0xee,\n                                                0x4f, 0x94, 0xea, 0x37, 0xe7, 0x8b, 0x57, 0x39 };\n\n    static const unsigned char out_fox_32[] = { 0x2f, 0x67, 0x13, 0x43, 0xd9, 0xb2, 0xe1, 0x60,\n                                                0x4d, 0xc9, 0xdc, 0xf0, 0x75, 0x3e, 0x5f, 0xe1,\n                                                0x5c, 0x7c, 0x64, 0xa0, 0xd2, 0x83, 0xcb, 0xbf,\n                                                0x72, 0x2d, 0x41, 0x1a, 0x0e, 0x36, 0xf6, 0xca };\n\n    static const unsigned char out_fox_64[] = {\n        0x2f, 0x67, 0x13, 0x43, 0xd9, 0xb2, 0xe1, 0x60, 0x4d, 0xc9, 0xdc, 0xf0, 0x75,\n        0x3e, 0x5f, 0xe1, 0x5c, 0x7c, 0x64, 0xa0, 0xd2, 0x83, 0xcb, 0xbf, 0x72, 0x2d,\n        0x41, 0x1a, 0x0e, 0x36, 0xf6, 0xca, 0x1d, 0x01, 0xd1, 0x36, 0x9a, 0x23, 0x53,\n        0x9c, 0xd8, 0x0f, 0x7c, 0x05, 0x4b, 0x6e, 0x5d, 0xaf, 0x9c, 0x96, 0x2c, 0xad,\n        0x5b, 0x8e, 0xd5, 0xbd, 0x11, 0x99, 0x8b, 0x40, 0xd5, 0x73, 0x44, 0x42\n    };\n\n    static const unsigned char out_rate_block_32[] = { 0xea, 0x94, 0x7b, 0x83, 0x5f, 0xec, 0x1f,\n                                                       0x9b, 0x0a, 0x7e, 0xab, 0xba, 0x90, 0x1d,\n                                                       0xeb, 0x78, 0x81, 0xfd, 0x99, 0x99, 0xa1,\n                                                       0xcb, 0xd5, 0xcc, 0xbb, 0x5a, 0x9a, 0xfa,\n                                                       0xb7, 0xf6, 0xfe, 0x70 };\n\n    testvector vectors[] = { { msg_empty, 0, out_empty_32, 32 },\n                             { msg_empty, 0, out_empty_64, 64 },\n                             { msg_abc, 3, out_abc_32, 32 },\n                             { msg_fox, 43, out_fox_32, 32 },\n                             { msg_fox, 43, out_fox_64, 64 },\n                             { msg_rate_block, sizeof msg_rate_block, out_rate_block_32, 32 } };\n\n    unsigned char             out[256];\n    crypto_xof_shake256_state state;\n    size_t                    i;\n\n    /* Test constants */\n    assert(crypto_xof_shake256_blockbytes() == 136);\n    assert(crypto_xof_shake256_statebytes() == 256);\n    assert(crypto_xof_shake256_domain_standard() == 0x1F);\n\n    /* Test one-shot API */\n    for (i = 0; i < sizeof(vectors) / sizeof(vectors[0]); i++) {\n        crypto_xof_shake256(out, vectors[i].out_len, vectors[i].msg, vectors[i].msg_len);\n        if (memcmp(out, vectors[i].out, vectors[i].out_len) != 0) {\n            printf(\"Test vector %zu failed (one-shot)\\n\", i);\n            return 1;\n        }\n    }\n\n    /* Test streaming API */\n    for (i = 0; i < sizeof(vectors) / sizeof(vectors[0]); i++) {\n        crypto_xof_shake256_init(&state);\n        crypto_xof_shake256_update(&state, vectors[i].msg, vectors[i].msg_len);\n        crypto_xof_shake256_squeeze(&state, out, vectors[i].out_len);\n        if (memcmp(out, vectors[i].out, vectors[i].out_len) != 0) {\n            printf(\"Test vector %zu failed (streaming)\\n\", i);\n            return 1;\n        }\n    }\n\n    /* Test multiple squeeze calls */\n    crypto_xof_shake256_init(&state);\n    crypto_xof_shake256_update(&state, msg_abc, 3);\n    crypto_xof_shake256_squeeze(&state, out, 16);\n    crypto_xof_shake256_squeeze(&state, out + 16, 16);\n    if (memcmp(out, out_abc_32, 32) != 0) {\n        printf(\"Multiple squeeze test failed\\n\");\n        return 1;\n    }\n\n    /* Test custom domain byte produces different output */\n    crypto_xof_shake256_init(&state);\n    crypto_xof_shake256_update(&state, msg_abc, 3);\n    crypto_xof_shake256_squeeze(&state, out, 32);\n\n    crypto_xof_shake256_init_with_domain(&state, 0x99);\n    crypto_xof_shake256_update(&state, msg_abc, 3);\n    crypto_xof_shake256_squeeze(&state, out + 32, 32);\n\n    if (memcmp(out, out + 32, 32) == 0) {\n        printf(\"Custom domain byte test failed (outputs should differ)\\n\");\n        return 1;\n    }\n\n    /* Test standard domain constant */\n    crypto_xof_shake256_init_with_domain(&state, crypto_xof_shake256_domain_standard());\n    crypto_xof_shake256_update(&state, msg_abc, 3);\n    crypto_xof_shake256_squeeze(&state, out + 64, 32);\n\n    if (memcmp(out, out + 64, 32) != 0) {\n        printf(\"Domain constant test failed (should match standard init)\\n\");\n        return 1;\n    }\n\n    /* Test domain byte with MSB set when padding overlaps */\n    {\n        unsigned char       msg[crypto_xof_shake256_BLOCKBYTES - 1];\n        unsigned char       out_manual[32];\n        unsigned char       out_impl[32];\n        const unsigned char domain = 0x99;\n\n        memset(msg, 0xAA, sizeof msg);\n\n        shake256_manual_with_domain(out_manual, sizeof out_manual, msg, sizeof msg, domain);\n\n        crypto_xof_shake256_init_with_domain(&state, domain);\n        crypto_xof_shake256_update(&state, msg, sizeof msg);\n        crypto_xof_shake256_squeeze(&state, out_impl, sizeof out_impl);\n\n        if (memcmp(out_manual, out_impl, sizeof out_manual) != 0) {\n            printf(\"Domain MSB padding test failed\\n\");\n            return 1;\n        }\n    }\n\n    /* Test zero-length update and squeeze are no-ops */\n    crypto_xof_shake256_init(&state);\n    crypto_xof_shake256_update(&state, msg_abc, 1);\n    crypto_xof_shake256_update(&state, msg_abc, 0);\n    crypto_xof_shake256_update(&state, msg_abc + 1, 2);\n    crypto_xof_shake256_squeeze(&state, out, 0);\n    crypto_xof_shake256_squeeze(&state, out, 32);\n    if (memcmp(out, out_abc_32, 32) != 0) {\n        printf(\"Zero-length update/squeeze test failed\\n\");\n        return 1;\n    }\n\n    /* Test rate-sized input and long output (padding after full block) */\n    {\n        unsigned char out_manual[crypto_xof_shake256_BLOCKBYTES + 7];\n        unsigned char out_impl[crypto_xof_shake256_BLOCKBYTES + 7];\n\n        shake256_manual_with_domain(out_manual, sizeof out_manual, msg_rate_block,\n                                    sizeof msg_rate_block, crypto_xof_shake256_domain_standard());\n\n        crypto_xof_shake256_init(&state);\n        crypto_xof_shake256_update(&state, msg_rate_block, sizeof msg_rate_block);\n        crypto_xof_shake256_squeeze(&state, out_impl, sizeof out_impl);\n\n        if (memcmp(out_manual, out_impl, sizeof out_manual) != 0) {\n            printf(\"Rate block long output test failed\\n\");\n            return 1;\n        }\n    }\n\n    /* Test chunked update across block boundary */\n    {\n        unsigned char msg_rate_plus1[crypto_xof_shake256_BLOCKBYTES + 1];\n        unsigned char out_manual[32];\n        unsigned char out_impl[32];\n\n        for (i = 0; i < sizeof msg_rate_plus1; i++) {\n            msg_rate_plus1[i] = (unsigned char) i;\n        }\n\n        shake256_manual_with_domain(out_manual, sizeof out_manual, msg_rate_plus1,\n                                    sizeof msg_rate_plus1, crypto_xof_shake256_domain_standard());\n\n        crypto_xof_shake256_init(&state);\n        crypto_xof_shake256_update(&state, msg_rate_plus1, 1);\n        crypto_xof_shake256_update(&state, msg_rate_plus1 + 1, crypto_xof_shake256_BLOCKBYTES - 1);\n        crypto_xof_shake256_update(&state, msg_rate_plus1 + crypto_xof_shake256_BLOCKBYTES, 1);\n        crypto_xof_shake256_squeeze(&state, out_impl, sizeof out_impl);\n\n        if (memcmp(out_manual, out_impl, sizeof out_manual) != 0) {\n            printf(\"Chunked update boundary test failed\\n\");\n            return 1;\n        }\n    }\n\n    printf(\"All SHAKE-256 tests passed\\n\");\n    return 0;\n}\n"
  },
  {
    "path": "test/default/xof_shake256.exp",
    "content": "All SHAKE-256 tests passed\n"
  },
  {
    "path": "test/default/xof_turboshake128.c",
    "content": "\n#define TEST_NAME \"xof_turboshake128\"\n#include \"cmptest.h\"\n\ntypedef struct {\n    const unsigned char *msg;\n    size_t               msg_len;\n    const unsigned char *out;\n    size_t               out_len;\n} testvector;\n\nstatic void\nturboshake128_manual_with_domain(unsigned char *out, size_t outlen, const unsigned char *in,\n                                 size_t inlen, unsigned char domain)\n{\n    crypto_core_keccak1600_state state;\n    size_t                       rate      = crypto_xof_turboshake128_blockbytes();\n    size_t                       offset    = 0;\n    size_t                       consumed  = 0;\n    size_t                       chunk_size;\n    size_t                       extracted = 0;\n    unsigned char                pad;\n\n    crypto_core_keccak1600_init(&state);\n\n    while (consumed < inlen) {\n        if (offset == rate) {\n            crypto_core_keccak1600_permute_12(&state);\n            offset = 0;\n        }\n        chunk_size = rate - offset;\n        if (chunk_size > inlen - consumed) {\n            chunk_size = inlen - consumed;\n        }\n        crypto_core_keccak1600_xor_bytes(&state, &in[consumed], offset, chunk_size);\n        offset += chunk_size;\n        consumed += chunk_size;\n    }\n\n    if (offset == rate) {\n        crypto_core_keccak1600_permute_12(&state);\n        offset = 0;\n    }\n\n    if (offset == rate - 1) {\n        pad = (unsigned char) (domain ^ 0x80);\n        crypto_core_keccak1600_xor_bytes(&state, &pad, offset, 1);\n    } else {\n        crypto_core_keccak1600_xor_bytes(&state, &domain, offset, 1);\n        pad = 0x80;\n        crypto_core_keccak1600_xor_bytes(&state, &pad, rate - 1, 1);\n    }\n\n    crypto_core_keccak1600_permute_12(&state);\n    offset = 0;\n\n    while (extracted < outlen) {\n        if (offset == rate) {\n            crypto_core_keccak1600_permute_12(&state);\n            offset = 0;\n        }\n        chunk_size = rate - offset;\n        if (chunk_size > outlen - extracted) {\n            chunk_size = outlen - extracted;\n        }\n        crypto_core_keccak1600_extract_bytes(&state, &out[extracted], offset, chunk_size);\n        offset += chunk_size;\n        extracted += chunk_size;\n    }\n}\n\nint\nmain(void)\n{\n    /* Test vectors from Zig standard library (domain byte 0x1F) */\n    static const unsigned char msg_empty[] = \"\";\n    static const unsigned char msg_abc[]   = { 0x61, 0x62, 0x63 };\n    static const unsigned char msg_fox[]   = { 0x54, 0x68, 0x65, 0x20, 0x71, 0x75, 0x69, 0x63, 0x6b,\n                                               0x20, 0x62, 0x72, 0x6f, 0x77, 0x6e, 0x20, 0x66, 0x6f,\n                                               0x78, 0x20, 0x6a, 0x75, 0x6d, 0x70, 0x73, 0x20, 0x6f,\n                                               0x76, 0x65, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6c,\n                                               0x61, 0x7a, 0x79, 0x20, 0x64, 0x6f, 0x67 };\n    static const unsigned char msg_rate_block[168] = { 0 };\n\n    static const unsigned char out_empty_32[] = { 0x1e, 0x41, 0x5f, 0x1c, 0x59, 0x83, 0xaf, 0xf2,\n                                                  0x16, 0x92, 0x17, 0x27, 0x7d, 0x17, 0xbb, 0x53,\n                                                  0x8c, 0xd9, 0x45, 0xa3, 0x97, 0xdd, 0xec, 0x54,\n                                                  0x1f, 0x1c, 0xe4, 0x1a, 0xf2, 0xc1, 0xb7, 0x4c };\n\n    static const unsigned char out_empty_64[] = {\n        0x1e, 0x41, 0x5f, 0x1c, 0x59, 0x83, 0xaf, 0xf2, 0x16, 0x92, 0x17, 0x27, 0x7d,\n        0x17, 0xbb, 0x53, 0x8c, 0xd9, 0x45, 0xa3, 0x97, 0xdd, 0xec, 0x54, 0x1f, 0x1c,\n        0xe4, 0x1a, 0xf2, 0xc1, 0xb7, 0x4c, 0x3e, 0x8c, 0xca, 0xe2, 0xa4, 0xda, 0xe5,\n        0x6c, 0x84, 0xa0, 0x4c, 0x23, 0x85, 0xc0, 0x3c, 0x15, 0xe8, 0x19, 0x3b, 0xdf,\n        0x58, 0x73, 0x73, 0x63, 0x32, 0x16, 0x91, 0xc0, 0x54, 0x62, 0xc8, 0xdf\n    };\n\n    static const unsigned char out_abc_32[] = { 0xdc, 0xf1, 0x64, 0x6d, 0xfe, 0x99, 0x3a, 0x8e,\n                                                0xb6, 0xb7, 0x82, 0xd1, 0xfa, 0xac, 0xa6, 0xd8,\n                                                0x24, 0x16, 0xa5, 0xdc, 0xf1, 0xde, 0x98, 0xee,\n                                                0x3c, 0x6d, 0xbc, 0x5e, 0x1d, 0xc6, 0x30, 0x18 };\n\n    static const unsigned char out_fox_32[] = { 0x76, 0xa1, 0x72, 0x0a, 0x48, 0x48, 0xab, 0x64,\n                                                0xe6, 0x7e, 0x56, 0x3f, 0x16, 0xb8, 0xc5, 0xaa,\n                                                0x49, 0x2b, 0x69, 0x8a, 0x4d, 0x93, 0x42, 0x97,\n                                                0x35, 0xfd, 0x02, 0x35, 0x46, 0x57, 0xfb, 0xf7 };\n\n    static const unsigned char out_fox_64[] = {\n        0x76, 0xa1, 0x72, 0x0a, 0x48, 0x48, 0xab, 0x64, 0xe6, 0x7e, 0x56, 0x3f, 0x16,\n        0xb8, 0xc5, 0xaa, 0x49, 0x2b, 0x69, 0x8a, 0x4d, 0x93, 0x42, 0x97, 0x35, 0xfd,\n        0x02, 0x35, 0x46, 0x57, 0xfb, 0xf7, 0xa0, 0x68, 0x9e, 0xc7, 0x7b, 0x4c, 0x79,\n        0x5f, 0xda, 0x9d, 0xaa, 0xb4, 0x10, 0xc6, 0x30, 0x92, 0xf5, 0x42, 0x00, 0x84,\n        0x6c, 0x34, 0x12, 0x0f, 0xf2, 0xb2, 0x53, 0xe9, 0xfd, 0x8d, 0x9f, 0xc4\n    };\n\n    static const unsigned char out_rate_block_32[] = { 0xdb, 0xa6, 0xe2, 0x67, 0xbd, 0xd5, 0x67,\n                                                       0xdb, 0x0a, 0xd2, 0x63, 0x6e, 0x61, 0xf1,\n                                                       0xae, 0x58, 0x9a, 0x81, 0xc1, 0xa9, 0xc1,\n                                                       0x1f, 0x7f, 0x76, 0x93, 0x0a, 0x35, 0xea,\n                                                       0x42, 0x47, 0x56, 0xd0 };\n\n    testvector vectors[] = { { msg_empty, 0, out_empty_32, 32 },\n                             { msg_empty, 0, out_empty_64, 64 },\n                             { msg_abc, 3, out_abc_32, 32 },\n                             { msg_fox, 43, out_fox_32, 32 },\n                             { msg_fox, 43, out_fox_64, 64 },\n                             { msg_rate_block, sizeof msg_rate_block, out_rate_block_32, 32 } };\n\n    unsigned char                  out[256];\n    crypto_xof_turboshake128_state state;\n    size_t                         i;\n\n    /* Test constants */\n    assert(crypto_xof_turboshake128_blockbytes() == 168);\n    assert(crypto_xof_turboshake128_statebytes() == 256);\n    assert(crypto_xof_turboshake128_domain_standard() == 0x1F);\n\n    /* Test one-shot API */\n    for (i = 0; i < sizeof(vectors) / sizeof(vectors[0]); i++) {\n        crypto_xof_turboshake128(out, vectors[i].out_len, vectors[i].msg, vectors[i].msg_len);\n        if (memcmp(out, vectors[i].out, vectors[i].out_len) != 0) {\n            printf(\"Test vector %zu failed (one-shot)\\n\", i);\n            return 1;\n        }\n    }\n\n    /* Test streaming API */\n    for (i = 0; i < sizeof(vectors) / sizeof(vectors[0]); i++) {\n        crypto_xof_turboshake128_init(&state);\n        crypto_xof_turboshake128_update(&state, vectors[i].msg, vectors[i].msg_len);\n        crypto_xof_turboshake128_squeeze(&state, out, vectors[i].out_len);\n        if (memcmp(out, vectors[i].out, vectors[i].out_len) != 0) {\n            printf(\"Test vector %zu failed (streaming)\\n\", i);\n            return 1;\n        }\n    }\n\n    /* Test multiple squeeze calls */\n    crypto_xof_turboshake128_init(&state);\n    crypto_xof_turboshake128_update(&state, msg_abc, 3);\n    crypto_xof_turboshake128_squeeze(&state, out, 16);\n    crypto_xof_turboshake128_squeeze(&state, out + 16, 16);\n    if (memcmp(out, out_abc_32, 32) != 0) {\n        printf(\"Multiple squeeze test failed\\n\");\n        return 1;\n    }\n\n    /* Test custom domain byte produces different output */\n    crypto_xof_turboshake128_init(&state);\n    crypto_xof_turboshake128_update(&state, msg_abc, 3);\n    crypto_xof_turboshake128_squeeze(&state, out, 32);\n\n    crypto_xof_turboshake128_init_with_domain(&state, 0x99);\n    crypto_xof_turboshake128_update(&state, msg_abc, 3);\n    crypto_xof_turboshake128_squeeze(&state, out + 32, 32);\n\n    if (memcmp(out, out + 32, 32) == 0) {\n        printf(\"Custom domain byte test failed (outputs should differ)\\n\");\n        return 1;\n    }\n\n    /* Test standard domain constant */\n    crypto_xof_turboshake128_init_with_domain(&state, crypto_xof_turboshake128_domain_standard());\n    crypto_xof_turboshake128_update(&state, msg_abc, 3);\n    crypto_xof_turboshake128_squeeze(&state, out + 64, 32);\n\n    if (memcmp(out, out + 64, 32) != 0) {\n        printf(\"Domain constant test failed (should match standard init)\\n\");\n        return 1;\n    }\n\n    /* Test domain byte with MSB set when padding overlaps */\n    {\n        unsigned char       msg[crypto_xof_turboshake128_BLOCKBYTES - 1];\n        unsigned char       out_manual[32];\n        unsigned char       out_impl[32];\n        const unsigned char domain = 0x99;\n\n        memset(msg, 0xAA, sizeof msg);\n\n        turboshake128_manual_with_domain(out_manual, sizeof out_manual, msg, sizeof msg, domain);\n\n        crypto_xof_turboshake128_init_with_domain(&state, domain);\n        crypto_xof_turboshake128_update(&state, msg, sizeof msg);\n        crypto_xof_turboshake128_squeeze(&state, out_impl, sizeof out_impl);\n\n        if (memcmp(out_manual, out_impl, sizeof out_manual) != 0) {\n            printf(\"Domain MSB padding test failed\\n\");\n            return 1;\n        }\n    }\n\n    /* Test zero-length update and squeeze are no-ops */\n    crypto_xof_turboshake128_init(&state);\n    crypto_xof_turboshake128_update(&state, msg_abc, 1);\n    crypto_xof_turboshake128_update(&state, msg_abc, 0);\n    crypto_xof_turboshake128_update(&state, msg_abc + 1, 2);\n    crypto_xof_turboshake128_squeeze(&state, out, 0);\n    crypto_xof_turboshake128_squeeze(&state, out, 32);\n    if (memcmp(out, out_abc_32, 32) != 0) {\n        printf(\"Zero-length update/squeeze test failed\\n\");\n        return 1;\n    }\n\n    /* Test rate-sized input and long output (padding after full block) */\n    {\n        unsigned char out_manual[crypto_xof_turboshake128_BLOCKBYTES + 7];\n        unsigned char out_impl[crypto_xof_turboshake128_BLOCKBYTES + 7];\n\n        turboshake128_manual_with_domain(out_manual, sizeof out_manual, msg_rate_block,\n                                         sizeof msg_rate_block,\n                                         crypto_xof_turboshake128_domain_standard());\n\n        crypto_xof_turboshake128_init(&state);\n        crypto_xof_turboshake128_update(&state, msg_rate_block, sizeof msg_rate_block);\n        crypto_xof_turboshake128_squeeze(&state, out_impl, sizeof out_impl);\n\n        if (memcmp(out_manual, out_impl, sizeof out_manual) != 0) {\n            printf(\"Rate block long output test failed\\n\");\n            return 1;\n        }\n    }\n\n    /* Test chunked update across block boundary */\n    {\n        unsigned char msg_rate_plus1[crypto_xof_turboshake128_BLOCKBYTES + 1];\n        unsigned char out_manual[32];\n        unsigned char out_impl[32];\n\n        for (i = 0; i < sizeof msg_rate_plus1; i++) {\n            msg_rate_plus1[i] = (unsigned char) i;\n        }\n\n        turboshake128_manual_with_domain(out_manual, sizeof out_manual, msg_rate_plus1,\n                                         sizeof msg_rate_plus1,\n                                         crypto_xof_turboshake128_domain_standard());\n\n        crypto_xof_turboshake128_init(&state);\n        crypto_xof_turboshake128_update(&state, msg_rate_plus1, 1);\n        crypto_xof_turboshake128_update(&state, msg_rate_plus1 + 1,\n                                        crypto_xof_turboshake128_BLOCKBYTES - 1);\n        crypto_xof_turboshake128_update(&state,\n                                        msg_rate_plus1 + crypto_xof_turboshake128_BLOCKBYTES, 1);\n        crypto_xof_turboshake128_squeeze(&state, out_impl, sizeof out_impl);\n\n        if (memcmp(out_manual, out_impl, sizeof out_manual) != 0) {\n            printf(\"Chunked update boundary test failed\\n\");\n            return 1;\n        }\n    }\n\n    printf(\"All TurboSHAKE-128 tests passed\\n\");\n    return 0;\n}\n"
  },
  {
    "path": "test/default/xof_turboshake128.exp",
    "content": "All TurboSHAKE-128 tests passed\n"
  },
  {
    "path": "test/default/xof_turboshake256.c",
    "content": "\n#define TEST_NAME \"xof_turboshake256\"\n#include \"cmptest.h\"\n\ntypedef struct {\n    const unsigned char *msg;\n    size_t               msg_len;\n    const unsigned char *out;\n    size_t               out_len;\n} testvector;\n\nstatic void\nturboshake256_manual_with_domain(unsigned char *out, size_t outlen, const unsigned char *in,\n                                 size_t inlen, unsigned char domain)\n{\n    crypto_core_keccak1600_state state;\n    size_t                       rate      = crypto_xof_turboshake256_blockbytes();\n    size_t                       offset    = 0;\n    size_t                       consumed  = 0;\n    size_t                       chunk_size;\n    size_t                       extracted = 0;\n    unsigned char                pad;\n\n    crypto_core_keccak1600_init(&state);\n\n    while (consumed < inlen) {\n        if (offset == rate) {\n            crypto_core_keccak1600_permute_12(&state);\n            offset = 0;\n        }\n        chunk_size = rate - offset;\n        if (chunk_size > inlen - consumed) {\n            chunk_size = inlen - consumed;\n        }\n        crypto_core_keccak1600_xor_bytes(&state, &in[consumed], offset, chunk_size);\n        offset += chunk_size;\n        consumed += chunk_size;\n    }\n\n    if (offset == rate) {\n        crypto_core_keccak1600_permute_12(&state);\n        offset = 0;\n    }\n\n    if (offset == rate - 1) {\n        pad = (unsigned char) (domain ^ 0x80);\n        crypto_core_keccak1600_xor_bytes(&state, &pad, offset, 1);\n    } else {\n        crypto_core_keccak1600_xor_bytes(&state, &domain, offset, 1);\n        pad = 0x80;\n        crypto_core_keccak1600_xor_bytes(&state, &pad, rate - 1, 1);\n    }\n\n    crypto_core_keccak1600_permute_12(&state);\n    offset = 0;\n\n    while (extracted < outlen) {\n        if (offset == rate) {\n            crypto_core_keccak1600_permute_12(&state);\n            offset = 0;\n        }\n        chunk_size = rate - offset;\n        if (chunk_size > outlen - extracted) {\n            chunk_size = outlen - extracted;\n        }\n        crypto_core_keccak1600_extract_bytes(&state, &out[extracted], offset, chunk_size);\n        offset += chunk_size;\n        extracted += chunk_size;\n    }\n}\n\nint\nmain(void)\n{\n    /* Test vectors from Zig standard library (domain byte 0x1F) */\n    static const unsigned char msg_empty[] = \"\";\n    static const unsigned char msg_abc[]   = { 0x61, 0x62, 0x63 };\n    static const unsigned char msg_fox[]   = { 0x54, 0x68, 0x65, 0x20, 0x71, 0x75, 0x69, 0x63, 0x6b,\n                                               0x20, 0x62, 0x72, 0x6f, 0x77, 0x6e, 0x20, 0x66, 0x6f,\n                                               0x78, 0x20, 0x6a, 0x75, 0x6d, 0x70, 0x73, 0x20, 0x6f,\n                                               0x76, 0x65, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6c,\n                                               0x61, 0x7a, 0x79, 0x20, 0x64, 0x6f, 0x67 };\n    static const unsigned char msg_rate_block[136] = { 0 };\n\n    static const unsigned char out_empty_32[] = { 0x36, 0x7a, 0x32, 0x9d, 0xaf, 0xea, 0x87, 0x1c,\n                                                  0x78, 0x02, 0xec, 0x67, 0xf9, 0x05, 0xae, 0x13,\n                                                  0xc5, 0x76, 0x95, 0xdc, 0x2c, 0x66, 0x63, 0xc6,\n                                                  0x10, 0x35, 0xf5, 0x9a, 0x18, 0xf8, 0xe7, 0xdb };\n\n    static const unsigned char out_empty_64[] = {\n        0x36, 0x7a, 0x32, 0x9d, 0xaf, 0xea, 0x87, 0x1c, 0x78, 0x02, 0xec, 0x67, 0xf9,\n        0x05, 0xae, 0x13, 0xc5, 0x76, 0x95, 0xdc, 0x2c, 0x66, 0x63, 0xc6, 0x10, 0x35,\n        0xf5, 0x9a, 0x18, 0xf8, 0xe7, 0xdb, 0x11, 0xed, 0xc0, 0xe1, 0x2e, 0x91, 0xea,\n        0x60, 0xeb, 0x6b, 0x32, 0xdf, 0x06, 0xdd, 0x7f, 0x00, 0x2f, 0xba, 0xfa, 0xbb,\n        0x6e, 0x13, 0xec, 0x1c, 0xc2, 0x0d, 0x99, 0x55, 0x47, 0x60, 0x0d, 0xb0\n    };\n\n    static const unsigned char out_abc_32[] = { 0x63, 0x82, 0x4b, 0x14, 0x31, 0xa7, 0x37, 0x2e,\n                                                0x85, 0xed, 0xc0, 0x22, 0xc9, 0xd7, 0xaf, 0xdd,\n                                                0x02, 0x74, 0x72, 0xfc, 0xfa, 0x33, 0xc8, 0x87,\n                                                0xd6, 0xf5, 0xaa, 0xf8, 0xdc, 0x5d, 0x4d, 0xb6 };\n\n    static const unsigned char out_fox_32[] = { 0xb6, 0xe9, 0x1a, 0x41, 0x2c, 0x26, 0x2c, 0x79,\n                                                0x36, 0xb0, 0x69, 0xf6, 0x7b, 0xd2, 0x1c, 0x2f,\n                                                0x8e, 0xcc, 0x48, 0xbd, 0xa8, 0xdc, 0x6e, 0xeb,\n                                                0xfb, 0xaf, 0x6f, 0xca, 0xa8, 0x21, 0x91, 0xc3 };\n\n    static const unsigned char out_fox_64[] = {\n        0xb6, 0xe9, 0x1a, 0x41, 0x2c, 0x26, 0x2c, 0x79, 0x36, 0xb0, 0x69, 0xf6, 0x7b,\n        0xd2, 0x1c, 0x2f, 0x8e, 0xcc, 0x48, 0xbd, 0xa8, 0xdc, 0x6e, 0xeb, 0xfb, 0xaf,\n        0x6f, 0xca, 0xa8, 0x21, 0x91, 0xc3, 0x97, 0x44, 0x62, 0x70, 0x7a, 0xb2, 0xa5,\n        0xc5, 0xd7, 0x04, 0xb0, 0xe8, 0x74, 0x86, 0x0a, 0x2a, 0x3f, 0xdd, 0xb5, 0x88,\n        0xf5, 0x07, 0xc9, 0xb4, 0xf0, 0x41, 0x7e, 0x2b, 0x66, 0x31, 0x60, 0x90\n    };\n\n    static const unsigned char out_rate_block_32[] = { 0x91, 0xef, 0xfd, 0x08, 0xdd, 0x4c, 0xcc,\n                                                       0xb6, 0x89, 0xc6, 0x26, 0xb4, 0x64, 0x93,\n                                                       0x67, 0xad, 0x5a, 0x2e, 0xbf, 0xab, 0x61,\n                                                       0x61, 0x17, 0x69, 0xa3, 0x74, 0x93, 0xfa,\n                                                       0x70, 0x12, 0x28, 0xea };\n\n    testvector vectors[] = { { msg_empty, 0, out_empty_32, 32 },\n                             { msg_empty, 0, out_empty_64, 64 },\n                             { msg_abc, 3, out_abc_32, 32 },\n                             { msg_fox, 43, out_fox_32, 32 },\n                             { msg_fox, 43, out_fox_64, 64 },\n                             { msg_rate_block, sizeof msg_rate_block, out_rate_block_32, 32 } };\n\n    unsigned char                  out[256];\n    crypto_xof_turboshake256_state state;\n    size_t                         i;\n\n    /* Test constants */\n    assert(crypto_xof_turboshake256_blockbytes() == 136);\n    assert(crypto_xof_turboshake256_statebytes() == 256);\n    assert(crypto_xof_turboshake256_domain_standard() == 0x1F);\n\n    /* Test one-shot API */\n    for (i = 0; i < sizeof(vectors) / sizeof(vectors[0]); i++) {\n        crypto_xof_turboshake256(out, vectors[i].out_len, vectors[i].msg, vectors[i].msg_len);\n        if (memcmp(out, vectors[i].out, vectors[i].out_len) != 0) {\n            printf(\"Test vector %zu failed (one-shot)\\n\", i);\n            return 1;\n        }\n    }\n\n    /* Test streaming API */\n    for (i = 0; i < sizeof(vectors) / sizeof(vectors[0]); i++) {\n        crypto_xof_turboshake256_init(&state);\n        crypto_xof_turboshake256_update(&state, vectors[i].msg, vectors[i].msg_len);\n        crypto_xof_turboshake256_squeeze(&state, out, vectors[i].out_len);\n        if (memcmp(out, vectors[i].out, vectors[i].out_len) != 0) {\n            printf(\"Test vector %zu failed (streaming)\\n\", i);\n            return 1;\n        }\n    }\n\n    /* Test multiple squeeze calls */\n    crypto_xof_turboshake256_init(&state);\n    crypto_xof_turboshake256_update(&state, msg_abc, 3);\n    crypto_xof_turboshake256_squeeze(&state, out, 16);\n    crypto_xof_turboshake256_squeeze(&state, out + 16, 16);\n    if (memcmp(out, out_abc_32, 32) != 0) {\n        printf(\"Multiple squeeze test failed\\n\");\n        return 1;\n    }\n\n    /* Test custom domain byte produces different output */\n    crypto_xof_turboshake256_init(&state);\n    crypto_xof_turboshake256_update(&state, msg_abc, 3);\n    crypto_xof_turboshake256_squeeze(&state, out, 32);\n\n    crypto_xof_turboshake256_init_with_domain(&state, 0x99);\n    crypto_xof_turboshake256_update(&state, msg_abc, 3);\n    crypto_xof_turboshake256_squeeze(&state, out + 32, 32);\n\n    if (memcmp(out, out + 32, 32) == 0) {\n        printf(\"Custom domain byte test failed (outputs should differ)\\n\");\n        return 1;\n    }\n\n    /* Test standard domain constant */\n    crypto_xof_turboshake256_init_with_domain(&state, crypto_xof_turboshake256_domain_standard());\n    crypto_xof_turboshake256_update(&state, msg_abc, 3);\n    crypto_xof_turboshake256_squeeze(&state, out + 64, 32);\n\n    if (memcmp(out, out + 64, 32) != 0) {\n        printf(\"Domain constant test failed (should match standard init)\\n\");\n        return 1;\n    }\n\n    /* Test domain byte with MSB set when padding overlaps */\n    {\n        unsigned char       msg[crypto_xof_turboshake256_BLOCKBYTES - 1];\n        unsigned char       out_manual[32];\n        unsigned char       out_impl[32];\n        const unsigned char domain = 0x99;\n\n        memset(msg, 0xAA, sizeof msg);\n\n        turboshake256_manual_with_domain(out_manual, sizeof out_manual, msg, sizeof msg, domain);\n\n        crypto_xof_turboshake256_init_with_domain(&state, domain);\n        crypto_xof_turboshake256_update(&state, msg, sizeof msg);\n        crypto_xof_turboshake256_squeeze(&state, out_impl, sizeof out_impl);\n\n        if (memcmp(out_manual, out_impl, sizeof out_manual) != 0) {\n            printf(\"Domain MSB padding test failed\\n\");\n            return 1;\n        }\n    }\n\n    /* Test zero-length update and squeeze are no-ops */\n    crypto_xof_turboshake256_init(&state);\n    crypto_xof_turboshake256_update(&state, msg_abc, 1);\n    crypto_xof_turboshake256_update(&state, msg_abc, 0);\n    crypto_xof_turboshake256_update(&state, msg_abc + 1, 2);\n    crypto_xof_turboshake256_squeeze(&state, out, 0);\n    crypto_xof_turboshake256_squeeze(&state, out, 32);\n    if (memcmp(out, out_abc_32, 32) != 0) {\n        printf(\"Zero-length update/squeeze test failed\\n\");\n        return 1;\n    }\n\n    /* Test rate-sized input and long output (padding after full block) */\n    {\n        unsigned char out_manual[crypto_xof_turboshake256_BLOCKBYTES + 7];\n        unsigned char out_impl[crypto_xof_turboshake256_BLOCKBYTES + 7];\n\n        turboshake256_manual_with_domain(out_manual, sizeof out_manual, msg_rate_block,\n                                         sizeof msg_rate_block,\n                                         crypto_xof_turboshake256_domain_standard());\n\n        crypto_xof_turboshake256_init(&state);\n        crypto_xof_turboshake256_update(&state, msg_rate_block, sizeof msg_rate_block);\n        crypto_xof_turboshake256_squeeze(&state, out_impl, sizeof out_impl);\n\n        if (memcmp(out_manual, out_impl, sizeof out_manual) != 0) {\n            printf(\"Rate block long output test failed\\n\");\n            return 1;\n        }\n    }\n\n    /* Test chunked update across block boundary */\n    {\n        unsigned char msg_rate_plus1[crypto_xof_turboshake256_BLOCKBYTES + 1];\n        unsigned char out_manual[32];\n        unsigned char out_impl[32];\n\n        for (i = 0; i < sizeof msg_rate_plus1; i++) {\n            msg_rate_plus1[i] = (unsigned char) i;\n        }\n\n        turboshake256_manual_with_domain(out_manual, sizeof out_manual, msg_rate_plus1,\n                                         sizeof msg_rate_plus1,\n                                         crypto_xof_turboshake256_domain_standard());\n\n        crypto_xof_turboshake256_init(&state);\n        crypto_xof_turboshake256_update(&state, msg_rate_plus1, 1);\n        crypto_xof_turboshake256_update(&state, msg_rate_plus1 + 1,\n                                        crypto_xof_turboshake256_BLOCKBYTES - 1);\n        crypto_xof_turboshake256_update(&state,\n                                        msg_rate_plus1 + crypto_xof_turboshake256_BLOCKBYTES, 1);\n        crypto_xof_turboshake256_squeeze(&state, out_impl, sizeof out_impl);\n\n        if (memcmp(out_manual, out_impl, sizeof out_manual) != 0) {\n            printf(\"Chunked update boundary test failed\\n\");\n            return 1;\n        }\n    }\n\n    printf(\"All TurboSHAKE-256 tests passed\\n\");\n    return 0;\n}\n"
  },
  {
    "path": "test/default/xof_turboshake256.exp",
    "content": "All TurboSHAKE-256 tests passed\n"
  },
  {
    "path": "test/quirks/quirks.h",
    "content": "\n#include <stdlib.h>\n\n/* C++Builder defines a \"random\" macro */\n#undef random\n\n#ifdef __EMSCRIPTEN__\n# define strcmp(s1, s2) xstrcmp(s1, s2)\n\nstatic int\nstrcmp(const char *s1, const char *s2)\n{\n    while (*s1 == *s2++) {\n        if (*s1++ == 0) {\n            return 0;\n        }\n    }\n    return *(unsigned char *) s1 - *(unsigned char *) --s2;\n}\n#endif\n\n#ifdef _WIN32\nstatic void\nsrandom(unsigned seed)\n{\n    srand(seed);\n}\n\nstatic long\nrandom(void)\n{\n    return (long) rand();\n}\n#endif\n"
  },
  {
    "path": "test/rename-globals.sh",
    "content": "#! /bin/sh\n\nLIBSODIUM_DIR=\"$(mktemp -d)\"\nLIBSODIUM_PATH=\"${LIBSODIUM_DIR}/lib/libsodium.a\"\nSYMBOLS_DIR=\"test/symbols\"\nALL_HOST_SYMBOLS=\"${SYMBOLS_DIR}/all-host-symbols.txt\"\nALL_HOST_SYMBOLS_NEW=\"${ALL_HOST_SYMBOLS}.new\"\nALL_SYMBOLS=\"${SYMBOLS_DIR}/all-symbols.txt\"\nALL_SYMBOLS_NEW=\"${ALL_SYMBOLS}.new\"\nINTERNAL_HOST_SYMBOLS=\"${SYMBOLS_DIR}/internal-host-symbols.txt\"\nINTERNAL_HOST_SYMBOLS_NEW=\"${INTERNAL_HOST_SYMBOLS}.new\"\nINTERNAL_SYMBOLS=\"${SYMBOLS_DIR}/internal-symbols.txt\"\nINTERNAL_SYMBOLS_NEW=\"${INTERNAL_SYMBOLS}.new\"\nINTERNAL_SYMBOL_PREFIX=\"_sodium_\"\nQUIRKS_H=\"src/libsodium/include/sodium/private/quirks.h\"\nQUIRKS_H_NEW=\"${QUIRKS_H}.new\"\nCFLAGS_UNOPTIMIZED=\"-O0 -fno-lto\"\nMAKE_OPTS=\"-j$(getconf NPROCESSORS_ONLN 2>/dev/null || getconf _NPROCESSORS_ONLN 2>/dev/null || echo 1)\"\n\nNM=\"nm\"\nNM_OPTS=\"\"\n\nexport LC_ALL=C\nexport LC_COLLATE=C\n\nif [ ! -r \"$QUIRKS_H\" ]; then\n    cd ..\n    if [ ! -r \"$QUIRKS_H\" ]; then\n        echo \"[$QUIRKS_H] not found\" >&2\n        exit 1\n    fi\nfi\n\necho \"Compiling without quirks...\"\nmake distclean 2>/dev/null\nenv CFLAGS=\"$CFLAGS_UNOPTIMIZED\" CPPFLAGS=\"-DNO_QUIRKS=1 -DDEV_MODE=1\" \\\n    ./configure --prefix=\"$LIBSODIUM_DIR\" \\\n    --disable-shared --enable-static --disable-dependency-tracking >/dev/null || exit 1\nmake clean >/dev/null || exit 1\nmake $MAKE_OPTS install >/dev/null 2>&1 || exit 1\necho \"Done.\"\necho\n\nmkdir -p \"$SYMBOLS_DIR\" || exit 1\n[ -e \"$ALL_SYMBOLS\" ] || touch \"$ALL_SYMBOLS\"\n[ -e \"$ALL_HOST_SYMBOLS\" ] || touch \"$ALL_HOST_SYMBOLS\"\n[ -e \"$QUIRKS_H\" ] || touch \"$QUIRKS_H\"\nif [ -e \"$INTERNAL_SYMBOLS\" ]; then\n    grep -v \"^sodium_\" \"$ALL_SYMBOLS\" |\n        grep -v \"^crypto_\" |\n        grep -v \"^randombytes\" >\"$INTERNAL_SYMBOLS\"\nfi\n\nfor opt in --demangle --defined-only -P; do\n    \"$NM\" $NM_OPTS $opt \"$LIBSODIUM_PATH\" >/dev/null 2>&1 &&\n        NM_OPTS=\"${NM_OPTS} ${opt}\"\ndone\necho \"nm: [${NM} ${NM_OPTS}]\"\n\nsodium_init_symbol=$(\"$NM\" $NM_OPTS \"$LIBSODIUM_PATH\" |\n    grep \"^[^ ]*sodium_init T \" | cut -d \" \" -f1 | cut -d \"(\" -f1)\nif ! echo \"$sodium_init_symbol\" | grep -q \"sodium_init$\"; then\n    echo \"Unable to parse symbols\" >&2\n    exit 1\nfi\n\nSYMBOL_PREFIX=$(echo \"$sodium_init_symbol\" | sed \"s/sodium_init$//\")\necho \"symbol prefix: [${SYMBOL_PREFIX}]\"\n\n\"$NM\" $NM_OPTS \"$LIBSODIUM_PATH\" | grep \"^${SYMBOL_PREFIX}[^ ]* T \" |\n    cut -d \" \" -f1 | cut -d \"(\" -f1 | sed \"s/^${SYMBOL_PREFIX}//\" |\n    grep -v \"^_\" | sort -u >\"${ALL_HOST_SYMBOLS_NEW}.tmp\"\n\ncat \"${ALL_HOST_SYMBOLS_NEW}.tmp\" \"$ALL_HOST_SYMBOLS\" | sort -u >\"$ALL_HOST_SYMBOLS_NEW\" &&\n    rm -f \"${ALL_HOST_SYMBOLS_NEW}.tmp\"\ncat \"$ALL_HOST_SYMBOLS_NEW\" \"$ALL_SYMBOLS\" | sort -u >\"$ALL_SYMBOLS_NEW\"\n\ngrep -v \"^sodium_\" \"$ALL_HOST_SYMBOLS_NEW\" |\n    grep -v \"^crypto_\" |\n    grep -v \"^randombytes\" >\"$INTERNAL_HOST_SYMBOLS_NEW\"\n\ngrep -v \"^sodium_\" \"$ALL_SYMBOLS_NEW\" |\n    grep -v \"^crypto_\" |\n    grep -v \"^randombytes\" >\"$INTERNAL_SYMBOLS_NEW\"\n\ncat >\"$QUIRKS_H_NEW\" <<EOT\n/* This is an automatically generated file */\n\n#ifndef quirks_H\n#ifndef NO_QUIRKS\n\nEOT\nwhile read -r fn; do\n    prefixed_fn=\"${INTERNAL_SYMBOL_PREFIX}${fn}\"\n    if grep \"^${prefixed_fn}$\" \"$ALL_SYMBOLS_NEW\"; then\n        echo \"Name collision: [${fn}] cannot be renamed to existing [${prefixed_fn}]\" >&2\n        exit 1\n    fi\n    echo \"#define ${fn} ${prefixed_fn}\" >>\"$QUIRKS_H_NEW\"\ndone <\"$INTERNAL_SYMBOLS_NEW\"\ncat >>\"$QUIRKS_H_NEW\" <<EOT\n\n#endif\n#endif\nEOT\n\nif [ -s \"$ALL_SYMBOLS\" ]; then\n    echo\n    echo \"* Changes to all symbols:\"\n    diff -u \"$ALL_SYMBOLS\" \"$ALL_SYMBOLS_NEW\"\nfi\n\nif [ -s \"$ALL_HOST_SYMBOLS\" ]; then\n    echo\n    echo \"* Changes to host symbols:\"\n    diff -u \"$ALL_HOST_SYMBOLS\" \"$ALL_HOST_SYMBOLS_NEW\"\nfi\n\nif [ -s \"$INTERNAL_SYMBOLS\" ]; then\n    echo\n    echo \"* Changes to internal symbols:\"\n    diff -u \"$INTERNAL_SYMBOLS\" \"$INTERNAL_SYMBOLS_NEW\"\nfi\n\nif [ -s \"$INTERNAL_HOST_SYMBOLS\" ]; then\n    echo\n    echo \"* Changes to internal host symbols:\"\n    diff -u \"$INTERNAL_HOST_SYMBOLS\" \"$INTERNAL_HOST_SYMBOLS_NEW\"\nfi\n\nif [ -s \"$QUIRKS_H\" ]; then\n    echo\n    echo \"* Changes to the quirks header file:\"\n    diff -u \"$QUIRKS_H\" \"$QUIRKS_H_NEW\"\nfi\n\necho\n\nif diff -u \"$QUIRKS_H\" \"$QUIRKS_H_NEW\" | grep -v \"^+++\" | grep -q \"^+\" >/dev/null; then\n    echo \"The quirks header file needs an update.\" >&2\n    exit 1\nfi\nif ! cmp \"$QUIRKS_H\" \"$QUIRKS_H_NEW\"; then\n    echo \"The quirks header file may need an update.\" >&2\nfi\n\nmv -f \"$QUIRKS_H\" \"${QUIRKS_H}.old\"\nmv -f \"$QUIRKS_H_NEW\" \"$QUIRKS_H\"\nmv -f \"$ALL_HOST_SYMBOLS_NEW\" \"$ALL_HOST_SYMBOLS\"\nmv -f \"$ALL_SYMBOLS_NEW\" \"$ALL_SYMBOLS\"\nmv -f \"$INTERNAL_HOST_SYMBOLS_NEW\" \"$INTERNAL_HOST_SYMBOLS\"\nmv -f \"$INTERNAL_SYMBOLS_NEW\" \"$INTERNAL_SYMBOLS\"\n\necho \"Compiling with quirks...\"\nenv CFLAGS=\"$CFLAGS_UNOPTIMIZED\" CPPFLAGS=\"-DDEV_MODE=1\" \\\n    ./configure --prefix=\"$LIBSODIUM_DIR\" \\\n    --disable-shared --enable-static --disable-dependency-tracking >/dev/null || exit 1\nmake clean >/dev/null || exit 1\nmake $MAKE_OPTS install >/dev/null 2>&1 || exit 1\n\n\"$NM\" $NM_OPTS \"$LIBSODIUM_PATH\" | grep \"^${SYMBOL_PREFIX}[^ ]* T \" |\n    cut -d \" \" -f1 | cut -d \"(\" -f1 | sed \"s/^${SYMBOL_PREFIX}//\" |\n    grep -v \"^_\" | sort -u |\n    grep -v \"^sodium_\" |\n    grep -v \"^crypto_\" |\n    grep -v \"^randombytes\" >\"$INTERNAL_HOST_SYMBOLS_NEW\"\n\nif [ -s \"$INTERNAL_SYMBOLS_NEW\" ]; then\n    echo \"Internal symbols are still present:\" >&2\n    echo >&2\n    cat \"$INTERNAL_HOST_SYMBOLS_NEW\" >&2\n    exit 1\nfi\n\nrm -f \"$INTERNAL_HOST_SYMBOLS_NEW\"\n\nrm -fr \"$LIBSODIUM_DIR\"\n\necho \"Done.\"\n"
  },
  {
    "path": "test/symbols/all-symbols.txt",
    "content": "argon2_ctx\nargon2_decode_string\nargon2_encode_string\nargon2_fill_memory_blocks\nargon2_fill_segment_ref\nargon2_finalize\nargon2_hash\nargon2_initialize\nargon2_validate_inputs\nargon2_verify\nargon2i_hash_encoded\nargon2i_hash_raw\nargon2i_verify\nargon2id_hash_encoded\nargon2id_hash_raw\nargon2id_verify\nblake2b\nblake2b_compress_ref\nblake2b_final\nblake2b_init\nblake2b_init_key\nblake2b_init_key_salt_personal\nblake2b_init_param\nblake2b_init_salt_personal\nblake2b_long\nblake2b_pick_best_implementation\nblake2b_salt_personal\nblake2b_update\ncore_h2c_string_to_hash\ncrypto_aead_aegis128l_abytes\ncrypto_aead_aegis128l_decrypt\ncrypto_aead_aegis128l_decrypt_detached\ncrypto_aead_aegis128l_encrypt\ncrypto_aead_aegis128l_encrypt_detached\ncrypto_aead_aegis128l_keybytes\ncrypto_aead_aegis128l_keygen\ncrypto_aead_aegis128l_messagebytes_max\ncrypto_aead_aegis128l_npubbytes\ncrypto_aead_aegis128l_nsecbytes\ncrypto_aead_aegis256_abytes\ncrypto_aead_aegis256_decrypt\ncrypto_aead_aegis256_decrypt_detached\ncrypto_aead_aegis256_encrypt\ncrypto_aead_aegis256_encrypt_detached\ncrypto_aead_aegis256_keybytes\ncrypto_aead_aegis256_keygen\ncrypto_aead_aegis256_messagebytes_max\ncrypto_aead_aegis256_npubbytes\ncrypto_aead_aegis256_nsecbytes\ncrypto_aead_aes256gcm_abytes\ncrypto_aead_aes256gcm_beforenm\ncrypto_aead_aes256gcm_decrypt\ncrypto_aead_aes256gcm_decrypt_afternm\ncrypto_aead_aes256gcm_decrypt_detached\ncrypto_aead_aes256gcm_decrypt_detached_afternm\ncrypto_aead_aes256gcm_encrypt\ncrypto_aead_aes256gcm_encrypt_afternm\ncrypto_aead_aes256gcm_encrypt_detached\ncrypto_aead_aes256gcm_encrypt_detached_afternm\ncrypto_aead_aes256gcm_is_available\ncrypto_aead_aes256gcm_keybytes\ncrypto_aead_aes256gcm_keygen\ncrypto_aead_aes256gcm_messagebytes_max\ncrypto_aead_aes256gcm_npubbytes\ncrypto_aead_aes256gcm_nsecbytes\ncrypto_aead_aes256gcm_statebytes\ncrypto_aead_chacha20poly1305_abytes\ncrypto_aead_chacha20poly1305_decrypt\ncrypto_aead_chacha20poly1305_decrypt_detached\ncrypto_aead_chacha20poly1305_encrypt\ncrypto_aead_chacha20poly1305_encrypt_detached\ncrypto_aead_chacha20poly1305_ietf_abytes\ncrypto_aead_chacha20poly1305_ietf_decrypt\ncrypto_aead_chacha20poly1305_ietf_decrypt_detached\ncrypto_aead_chacha20poly1305_ietf_encrypt\ncrypto_aead_chacha20poly1305_ietf_encrypt_detached\ncrypto_aead_chacha20poly1305_ietf_keybytes\ncrypto_aead_chacha20poly1305_ietf_keygen\ncrypto_aead_chacha20poly1305_ietf_messagebytes_max\ncrypto_aead_chacha20poly1305_ietf_npubbytes\ncrypto_aead_chacha20poly1305_ietf_nsecbytes\ncrypto_aead_chacha20poly1305_keybytes\ncrypto_aead_chacha20poly1305_keygen\ncrypto_aead_chacha20poly1305_messagebytes_max\ncrypto_aead_chacha20poly1305_npubbytes\ncrypto_aead_chacha20poly1305_nsecbytes\ncrypto_aead_xchacha20poly1305_ietf_abytes\ncrypto_aead_xchacha20poly1305_ietf_decrypt\ncrypto_aead_xchacha20poly1305_ietf_decrypt_detached\ncrypto_aead_xchacha20poly1305_ietf_encrypt\ncrypto_aead_xchacha20poly1305_ietf_encrypt_detached\ncrypto_aead_xchacha20poly1305_ietf_keybytes\ncrypto_aead_xchacha20poly1305_ietf_keygen\ncrypto_aead_xchacha20poly1305_ietf_messagebytes_max\ncrypto_aead_xchacha20poly1305_ietf_npubbytes\ncrypto_aead_xchacha20poly1305_ietf_nsecbytes\ncrypto_auth\ncrypto_auth_bytes\ncrypto_auth_hmacsha256\ncrypto_auth_hmacsha256_bytes\ncrypto_auth_hmacsha256_final\ncrypto_auth_hmacsha256_init\ncrypto_auth_hmacsha256_keybytes\ncrypto_auth_hmacsha256_keygen\ncrypto_auth_hmacsha256_statebytes\ncrypto_auth_hmacsha256_update\ncrypto_auth_hmacsha256_verify\ncrypto_auth_hmacsha512\ncrypto_auth_hmacsha512256\ncrypto_auth_hmacsha512256_bytes\ncrypto_auth_hmacsha512256_final\ncrypto_auth_hmacsha512256_init\ncrypto_auth_hmacsha512256_keybytes\ncrypto_auth_hmacsha512256_keygen\ncrypto_auth_hmacsha512256_statebytes\ncrypto_auth_hmacsha512256_update\ncrypto_auth_hmacsha512256_verify\ncrypto_auth_hmacsha512_bytes\ncrypto_auth_hmacsha512_final\ncrypto_auth_hmacsha512_init\ncrypto_auth_hmacsha512_keybytes\ncrypto_auth_hmacsha512_keygen\ncrypto_auth_hmacsha512_statebytes\ncrypto_auth_hmacsha512_update\ncrypto_auth_hmacsha512_verify\ncrypto_auth_keybytes\ncrypto_auth_keygen\ncrypto_auth_primitive\ncrypto_auth_verify\ncrypto_box\ncrypto_box_afternm\ncrypto_box_beforenm\ncrypto_box_beforenmbytes\ncrypto_box_boxzerobytes\ncrypto_box_curve25519xchacha20poly1305_beforenm\ncrypto_box_curve25519xchacha20poly1305_beforenmbytes\ncrypto_box_curve25519xchacha20poly1305_detached\ncrypto_box_curve25519xchacha20poly1305_detached_afternm\ncrypto_box_curve25519xchacha20poly1305_easy\ncrypto_box_curve25519xchacha20poly1305_easy_afternm\ncrypto_box_curve25519xchacha20poly1305_keypair\ncrypto_box_curve25519xchacha20poly1305_macbytes\ncrypto_box_curve25519xchacha20poly1305_messagebytes_max\ncrypto_box_curve25519xchacha20poly1305_noncebytes\ncrypto_box_curve25519xchacha20poly1305_open_detached\ncrypto_box_curve25519xchacha20poly1305_open_detached_afternm\ncrypto_box_curve25519xchacha20poly1305_open_easy\ncrypto_box_curve25519xchacha20poly1305_open_easy_afternm\ncrypto_box_curve25519xchacha20poly1305_publickeybytes\ncrypto_box_curve25519xchacha20poly1305_seal\ncrypto_box_curve25519xchacha20poly1305_seal_open\ncrypto_box_curve25519xchacha20poly1305_sealbytes\ncrypto_box_curve25519xchacha20poly1305_secretkeybytes\ncrypto_box_curve25519xchacha20poly1305_seed_keypair\ncrypto_box_curve25519xchacha20poly1305_seedbytes\ncrypto_box_curve25519xsalsa20poly1305\ncrypto_box_curve25519xsalsa20poly1305_afternm\ncrypto_box_curve25519xsalsa20poly1305_beforenm\ncrypto_box_curve25519xsalsa20poly1305_beforenmbytes\ncrypto_box_curve25519xsalsa20poly1305_boxzerobytes\ncrypto_box_curve25519xsalsa20poly1305_keypair\ncrypto_box_curve25519xsalsa20poly1305_macbytes\ncrypto_box_curve25519xsalsa20poly1305_messagebytes_max\ncrypto_box_curve25519xsalsa20poly1305_noncebytes\ncrypto_box_curve25519xsalsa20poly1305_open\ncrypto_box_curve25519xsalsa20poly1305_open_afternm\ncrypto_box_curve25519xsalsa20poly1305_publickeybytes\ncrypto_box_curve25519xsalsa20poly1305_secretkeybytes\ncrypto_box_curve25519xsalsa20poly1305_seed_keypair\ncrypto_box_curve25519xsalsa20poly1305_seedbytes\ncrypto_box_curve25519xsalsa20poly1305_zerobytes\ncrypto_box_detached\ncrypto_box_detached_afternm\ncrypto_box_easy\ncrypto_box_easy_afternm\ncrypto_box_keypair\ncrypto_box_macbytes\ncrypto_box_messagebytes_max\ncrypto_box_noncebytes\ncrypto_box_open\ncrypto_box_open_afternm\ncrypto_box_open_detached\ncrypto_box_open_detached_afternm\ncrypto_box_open_easy\ncrypto_box_open_easy_afternm\ncrypto_box_primitive\ncrypto_box_publickeybytes\ncrypto_box_seal\ncrypto_box_seal_open\ncrypto_box_sealbytes\ncrypto_box_secretkeybytes\ncrypto_box_seed_keypair\ncrypto_box_seedbytes\ncrypto_box_zerobytes\ncrypto_core_ed25519_add\ncrypto_core_ed25519_bytes\ncrypto_core_ed25519_from_string_nu\ncrypto_core_ed25519_from_string\ncrypto_core_ed25519_hashbytes\ncrypto_core_ed25519_is_valid_point\ncrypto_core_ed25519_nonreducedscalarbytes\ncrypto_core_ed25519_random\ncrypto_core_ed25519_scalar_add\ncrypto_core_ed25519_scalar_complement\ncrypto_core_ed25519_scalar_from_string\ncrypto_core_ed25519_scalar_invert\ncrypto_core_ed25519_scalar_is_canonical\ncrypto_core_ed25519_scalar_mul\ncrypto_core_ed25519_scalar_negate\ncrypto_core_ed25519_scalar_random\ncrypto_core_ed25519_scalar_reduce\ncrypto_core_ed25519_scalar_sub\ncrypto_core_ed25519_scalarbytes\ncrypto_core_ed25519_sub\ncrypto_core_ed25519_uniformbytes\ncrypto_core_hchacha20\ncrypto_core_hchacha20_constbytes\ncrypto_core_hchacha20_inputbytes\ncrypto_core_hchacha20_keybytes\ncrypto_core_hchacha20_outputbytes\ncrypto_core_hsalsa20\ncrypto_core_hsalsa20_constbytes\ncrypto_core_hsalsa20_inputbytes\ncrypto_core_hsalsa20_keybytes\ncrypto_core_hsalsa20_outputbytes\ncrypto_core_keccak1600_extract_bytes\ncrypto_core_keccak1600_init\ncrypto_core_keccak1600_permute_12\ncrypto_core_keccak1600_permute_24\ncrypto_core_keccak1600_statebytes\ncrypto_core_keccak1600_xor_bytes\ncrypto_core_ristretto255_add\ncrypto_core_ristretto255_bytes\ncrypto_core_ristretto255_from_hash\ncrypto_core_ristretto255_from_string\ncrypto_core_ristretto255_hashbytes\ncrypto_core_ristretto255_is_valid_point\ncrypto_core_ristretto255_nonreducedscalarbytes\ncrypto_core_ristretto255_random\ncrypto_core_ristretto255_scalar_add\ncrypto_core_ristretto255_scalar_complement\ncrypto_core_ristretto255_scalar_from_string\ncrypto_core_ristretto255_scalar_invert\ncrypto_core_ristretto255_scalar_is_canonical\ncrypto_core_ristretto255_scalar_mul\ncrypto_core_ristretto255_scalar_negate\ncrypto_core_ristretto255_scalar_random\ncrypto_core_ristretto255_scalar_reduce\ncrypto_core_ristretto255_scalar_sub\ncrypto_core_ristretto255_scalarbytes\ncrypto_core_ristretto255_sub\ncrypto_core_salsa20\ncrypto_core_salsa2012\ncrypto_core_salsa2012_constbytes\ncrypto_core_salsa2012_inputbytes\ncrypto_core_salsa2012_keybytes\ncrypto_core_salsa2012_outputbytes\ncrypto_core_salsa208\ncrypto_core_salsa208_constbytes\ncrypto_core_salsa208_inputbytes\ncrypto_core_salsa208_keybytes\ncrypto_core_salsa208_outputbytes\ncrypto_core_salsa20_constbytes\ncrypto_core_salsa20_inputbytes\ncrypto_core_salsa20_keybytes\ncrypto_core_salsa20_outputbytes\ncrypto_generichash\ncrypto_generichash_blake2b\ncrypto_generichash_blake2b_bytes\ncrypto_generichash_blake2b_bytes_max\ncrypto_generichash_blake2b_bytes_min\ncrypto_generichash_blake2b_final\ncrypto_generichash_blake2b_init\ncrypto_generichash_blake2b_init_salt_personal\ncrypto_generichash_blake2b_keybytes\ncrypto_generichash_blake2b_keybytes_max\ncrypto_generichash_blake2b_keybytes_min\ncrypto_generichash_blake2b_keygen\ncrypto_generichash_blake2b_personalbytes\ncrypto_generichash_blake2b_salt_personal\ncrypto_generichash_blake2b_saltbytes\ncrypto_generichash_blake2b_statebytes\ncrypto_generichash_blake2b_update\ncrypto_generichash_bytes\ncrypto_generichash_bytes_max\ncrypto_generichash_bytes_min\ncrypto_generichash_final\ncrypto_generichash_init\ncrypto_generichash_keybytes\ncrypto_generichash_keybytes_max\ncrypto_generichash_keybytes_min\ncrypto_generichash_keygen\ncrypto_generichash_primitive\ncrypto_generichash_statebytes\ncrypto_generichash_update\ncrypto_hash\ncrypto_hash_bytes\ncrypto_hash_primitive\ncrypto_hash_sha256\ncrypto_hash_sha256_bytes\ncrypto_hash_sha256_final\ncrypto_hash_sha256_init\ncrypto_hash_sha256_statebytes\ncrypto_hash_sha256_update\ncrypto_hash_sha3256\ncrypto_hash_sha3256_bytes\ncrypto_hash_sha3256_final\ncrypto_hash_sha3256_init\ncrypto_hash_sha3256_statebytes\ncrypto_hash_sha3256_update\ncrypto_hash_sha3512\ncrypto_hash_sha3512_bytes\ncrypto_hash_sha3512_final\ncrypto_hash_sha3512_init\ncrypto_hash_sha3512_statebytes\ncrypto_hash_sha3512_update\ncrypto_hash_sha512\ncrypto_hash_sha512_bytes\ncrypto_hash_sha512_final\ncrypto_hash_sha512_init\ncrypto_hash_sha512_statebytes\ncrypto_hash_sha512_update\ncrypto_ipcrypt_bytes\ncrypto_ipcrypt_decrypt\ncrypto_ipcrypt_encrypt\ncrypto_ipcrypt_keybytes\ncrypto_ipcrypt_keygen\ncrypto_ipcrypt_nd_decrypt\ncrypto_ipcrypt_nd_encrypt\ncrypto_ipcrypt_nd_inputbytes\ncrypto_ipcrypt_nd_keybytes\ncrypto_ipcrypt_nd_keygen\ncrypto_ipcrypt_nd_outputbytes\ncrypto_ipcrypt_nd_tweakbytes\ncrypto_ipcrypt_ndx_decrypt\ncrypto_ipcrypt_ndx_encrypt\ncrypto_ipcrypt_ndx_inputbytes\ncrypto_ipcrypt_ndx_keybytes\ncrypto_ipcrypt_ndx_keygen\ncrypto_ipcrypt_ndx_outputbytes\ncrypto_ipcrypt_ndx_tweakbytes\ncrypto_ipcrypt_pfx_bytes\ncrypto_ipcrypt_pfx_decrypt\ncrypto_ipcrypt_pfx_encrypt\ncrypto_ipcrypt_pfx_keybytes\ncrypto_ipcrypt_pfx_keygen\ncrypto_kdf_blake2b_bytes_max\ncrypto_kdf_blake2b_bytes_min\ncrypto_kdf_blake2b_contextbytes\ncrypto_kdf_blake2b_derive_from_key\ncrypto_kdf_blake2b_keybytes\ncrypto_kdf_bytes_max\ncrypto_kdf_bytes_min\ncrypto_kdf_contextbytes\ncrypto_kdf_derive_from_key\ncrypto_kdf_hkdf_sha256_bytes_max\ncrypto_kdf_hkdf_sha256_bytes_min\ncrypto_kdf_hkdf_sha256_expand\ncrypto_kdf_hkdf_sha256_extract\ncrypto_kdf_hkdf_sha256_extract_final\ncrypto_kdf_hkdf_sha256_extract_init\ncrypto_kdf_hkdf_sha256_extract_update\ncrypto_kdf_hkdf_sha256_keybytes\ncrypto_kdf_hkdf_sha256_keygen\ncrypto_kdf_hkdf_sha256_statebytes\ncrypto_kdf_hkdf_sha512_bytes_max\ncrypto_kdf_hkdf_sha512_bytes_min\ncrypto_kdf_hkdf_sha512_expand\ncrypto_kdf_hkdf_sha512_extract\ncrypto_kdf_hkdf_sha512_extract_final\ncrypto_kdf_hkdf_sha512_extract_init\ncrypto_kdf_hkdf_sha512_extract_update\ncrypto_kdf_hkdf_sha512_keybytes\ncrypto_kdf_hkdf_sha512_keygen\ncrypto_kdf_hkdf_sha512_statebytes\ncrypto_kdf_keybytes\ncrypto_kdf_keygen\ncrypto_kdf_primitive\ncrypto_kem_mlkem768_ciphertextbytes\ncrypto_kem_mlkem768_dec\ncrypto_kem_mlkem768_enc\ncrypto_kem_mlkem768_enc_deterministic\ncrypto_kem_mlkem768_keypair\ncrypto_kem_mlkem768_publickeybytes\ncrypto_kem_mlkem768_secretkeybytes\ncrypto_kem_mlkem768_seed_keypair\ncrypto_kem_mlkem768_seedbytes\ncrypto_kem_mlkem768_sharedsecretbytes\ncrypto_kem_xwing_ciphertextbytes\ncrypto_kem_xwing_dec\ncrypto_kem_xwing_enc\ncrypto_kem_xwing_enc_deterministic\ncrypto_kem_xwing_keypair\ncrypto_kem_xwing_publickeybytes\ncrypto_kem_xwing_secretkeybytes\ncrypto_kem_xwing_seed_keypair\ncrypto_kem_xwing_seedbytes\ncrypto_kem_xwing_sharedsecretbytes\ncrypto_kx_client_session_keys\ncrypto_kx_keypair\ncrypto_kx_primitive\ncrypto_kx_publickeybytes\ncrypto_kx_secretkeybytes\ncrypto_kx_seed_keypair\ncrypto_kx_seedbytes\ncrypto_kx_server_session_keys\ncrypto_kx_sessionkeybytes\ncrypto_onetimeauth\ncrypto_onetimeauth_bytes\ncrypto_onetimeauth_final\ncrypto_onetimeauth_init\ncrypto_onetimeauth_keybytes\ncrypto_onetimeauth_keygen\ncrypto_onetimeauth_poly1305\ncrypto_onetimeauth_poly1305_bytes\ncrypto_onetimeauth_poly1305_final\ncrypto_onetimeauth_poly1305_init\ncrypto_onetimeauth_poly1305_keybytes\ncrypto_onetimeauth_poly1305_keygen\ncrypto_onetimeauth_poly1305_statebytes\ncrypto_onetimeauth_poly1305_update\ncrypto_onetimeauth_poly1305_verify\ncrypto_onetimeauth_primitive\ncrypto_onetimeauth_statebytes\ncrypto_onetimeauth_update\ncrypto_onetimeauth_verify\ncrypto_pwhash\ncrypto_pwhash_alg_argon2i13\ncrypto_pwhash_alg_argon2id13\ncrypto_pwhash_alg_default\ncrypto_pwhash_argon2i\ncrypto_pwhash_argon2i_alg_argon2i13\ncrypto_pwhash_argon2i_bytes_max\ncrypto_pwhash_argon2i_bytes_min\ncrypto_pwhash_argon2i_memlimit_interactive\ncrypto_pwhash_argon2i_memlimit_max\ncrypto_pwhash_argon2i_memlimit_min\ncrypto_pwhash_argon2i_memlimit_moderate\ncrypto_pwhash_argon2i_memlimit_sensitive\ncrypto_pwhash_argon2i_opslimit_interactive\ncrypto_pwhash_argon2i_opslimit_max\ncrypto_pwhash_argon2i_opslimit_min\ncrypto_pwhash_argon2i_opslimit_moderate\ncrypto_pwhash_argon2i_opslimit_sensitive\ncrypto_pwhash_argon2i_passwd_max\ncrypto_pwhash_argon2i_passwd_min\ncrypto_pwhash_argon2i_saltbytes\ncrypto_pwhash_argon2i_str\ncrypto_pwhash_argon2i_str_needs_rehash\ncrypto_pwhash_argon2i_str_verify\ncrypto_pwhash_argon2i_strbytes\ncrypto_pwhash_argon2i_strprefix\ncrypto_pwhash_argon2id\ncrypto_pwhash_argon2id_alg_argon2id13\ncrypto_pwhash_argon2id_bytes_max\ncrypto_pwhash_argon2id_bytes_min\ncrypto_pwhash_argon2id_memlimit_interactive\ncrypto_pwhash_argon2id_memlimit_max\ncrypto_pwhash_argon2id_memlimit_min\ncrypto_pwhash_argon2id_memlimit_moderate\ncrypto_pwhash_argon2id_memlimit_sensitive\ncrypto_pwhash_argon2id_opslimit_interactive\ncrypto_pwhash_argon2id_opslimit_max\ncrypto_pwhash_argon2id_opslimit_min\ncrypto_pwhash_argon2id_opslimit_moderate\ncrypto_pwhash_argon2id_opslimit_sensitive\ncrypto_pwhash_argon2id_passwd_max\ncrypto_pwhash_argon2id_passwd_min\ncrypto_pwhash_argon2id_saltbytes\ncrypto_pwhash_argon2id_str\ncrypto_pwhash_argon2id_str_needs_rehash\ncrypto_pwhash_argon2id_str_verify\ncrypto_pwhash_argon2id_strbytes\ncrypto_pwhash_argon2id_strprefix\ncrypto_pwhash_bytes_max\ncrypto_pwhash_bytes_min\ncrypto_pwhash_memlimit_interactive\ncrypto_pwhash_memlimit_max\ncrypto_pwhash_memlimit_min\ncrypto_pwhash_memlimit_moderate\ncrypto_pwhash_memlimit_sensitive\ncrypto_pwhash_opslimit_interactive\ncrypto_pwhash_opslimit_max\ncrypto_pwhash_opslimit_min\ncrypto_pwhash_opslimit_moderate\ncrypto_pwhash_opslimit_sensitive\ncrypto_pwhash_passwd_max\ncrypto_pwhash_passwd_min\ncrypto_pwhash_primitive\ncrypto_pwhash_saltbytes\ncrypto_pwhash_scryptsalsa208sha256\ncrypto_pwhash_scryptsalsa208sha256_bytes_max\ncrypto_pwhash_scryptsalsa208sha256_bytes_min\ncrypto_pwhash_scryptsalsa208sha256_ll\ncrypto_pwhash_scryptsalsa208sha256_memlimit_interactive\ncrypto_pwhash_scryptsalsa208sha256_memlimit_max\ncrypto_pwhash_scryptsalsa208sha256_memlimit_min\ncrypto_pwhash_scryptsalsa208sha256_memlimit_sensitive\ncrypto_pwhash_scryptsalsa208sha256_opslimit_interactive\ncrypto_pwhash_scryptsalsa208sha256_opslimit_max\ncrypto_pwhash_scryptsalsa208sha256_opslimit_min\ncrypto_pwhash_scryptsalsa208sha256_opslimit_sensitive\ncrypto_pwhash_scryptsalsa208sha256_passwd_max\ncrypto_pwhash_scryptsalsa208sha256_passwd_min\ncrypto_pwhash_scryptsalsa208sha256_saltbytes\ncrypto_pwhash_scryptsalsa208sha256_str\ncrypto_pwhash_scryptsalsa208sha256_str_needs_rehash\ncrypto_pwhash_scryptsalsa208sha256_str_verify\ncrypto_pwhash_scryptsalsa208sha256_strbytes\ncrypto_pwhash_scryptsalsa208sha256_strprefix\ncrypto_pwhash_str\ncrypto_pwhash_str_alg\ncrypto_pwhash_str_needs_rehash\ncrypto_pwhash_str_verify\ncrypto_pwhash_strbytes\ncrypto_pwhash_strprefix\ncrypto_scalarmult\ncrypto_scalarmult_base\ncrypto_scalarmult_bytes\ncrypto_scalarmult_curve25519\ncrypto_scalarmult_curve25519_base\ncrypto_scalarmult_curve25519_bytes\ncrypto_scalarmult_curve25519_scalarbytes\ncrypto_scalarmult_ed25519\ncrypto_scalarmult_ed25519_base\ncrypto_scalarmult_ed25519_base_noclamp\ncrypto_scalarmult_ed25519_bytes\ncrypto_scalarmult_ed25519_noclamp\ncrypto_scalarmult_ed25519_scalarbytes\ncrypto_scalarmult_primitive\ncrypto_scalarmult_ristretto255\ncrypto_scalarmult_ristretto255_base\ncrypto_scalarmult_ristretto255_bytes\ncrypto_scalarmult_ristretto255_scalarbytes\ncrypto_scalarmult_scalarbytes\ncrypto_secretbox\ncrypto_secretbox_boxzerobytes\ncrypto_secretbox_detached\ncrypto_secretbox_easy\ncrypto_secretbox_keybytes\ncrypto_secretbox_keygen\ncrypto_secretbox_macbytes\ncrypto_secretbox_messagebytes_max\ncrypto_secretbox_noncebytes\ncrypto_secretbox_open\ncrypto_secretbox_open_detached\ncrypto_secretbox_open_easy\ncrypto_secretbox_primitive\ncrypto_secretbox_xchacha20poly1305_detached\ncrypto_secretbox_xchacha20poly1305_easy\ncrypto_secretbox_xchacha20poly1305_keybytes\ncrypto_secretbox_xchacha20poly1305_macbytes\ncrypto_secretbox_xchacha20poly1305_messagebytes_max\ncrypto_secretbox_xchacha20poly1305_noncebytes\ncrypto_secretbox_xchacha20poly1305_open_detached\ncrypto_secretbox_xchacha20poly1305_open_easy\ncrypto_secretbox_xsalsa20poly1305\ncrypto_secretbox_xsalsa20poly1305_boxzerobytes\ncrypto_secretbox_xsalsa20poly1305_keybytes\ncrypto_secretbox_xsalsa20poly1305_keygen\ncrypto_secretbox_xsalsa20poly1305_macbytes\ncrypto_secretbox_xsalsa20poly1305_messagebytes_max\ncrypto_secretbox_xsalsa20poly1305_noncebytes\ncrypto_secretbox_xsalsa20poly1305_open\ncrypto_secretbox_xsalsa20poly1305_zerobytes\ncrypto_secretbox_zerobytes\ncrypto_secretstream_xchacha20poly1305_abytes\ncrypto_secretstream_xchacha20poly1305_headerbytes\ncrypto_secretstream_xchacha20poly1305_init_pull\ncrypto_secretstream_xchacha20poly1305_init_push\ncrypto_secretstream_xchacha20poly1305_keybytes\ncrypto_secretstream_xchacha20poly1305_keygen\ncrypto_secretstream_xchacha20poly1305_messagebytes_max\ncrypto_secretstream_xchacha20poly1305_pull\ncrypto_secretstream_xchacha20poly1305_push\ncrypto_secretstream_xchacha20poly1305_rekey\ncrypto_secretstream_xchacha20poly1305_statebytes\ncrypto_secretstream_xchacha20poly1305_tag_final\ncrypto_secretstream_xchacha20poly1305_tag_message\ncrypto_secretstream_xchacha20poly1305_tag_push\ncrypto_secretstream_xchacha20poly1305_tag_rekey\ncrypto_shorthash\ncrypto_shorthash_bytes\ncrypto_shorthash_keybytes\ncrypto_shorthash_keygen\ncrypto_shorthash_primitive\ncrypto_shorthash_siphash24\ncrypto_shorthash_siphash24_bytes\ncrypto_shorthash_siphash24_keybytes\ncrypto_shorthash_siphashx24\ncrypto_shorthash_siphashx24_bytes\ncrypto_shorthash_siphashx24_keybytes\ncrypto_sign\ncrypto_sign_bytes\ncrypto_sign_detached\ncrypto_sign_ed25519\ncrypto_sign_ed25519_bytes\ncrypto_sign_ed25519_detached\ncrypto_sign_ed25519_keypair\ncrypto_sign_ed25519_messagebytes_max\ncrypto_sign_ed25519_open\ncrypto_sign_ed25519_pk_to_curve25519\ncrypto_sign_ed25519_publickeybytes\ncrypto_sign_ed25519_secretkeybytes\ncrypto_sign_ed25519_seed_keypair\ncrypto_sign_ed25519_seedbytes\ncrypto_sign_ed25519_sk_to_curve25519\ncrypto_sign_ed25519_sk_to_pk\ncrypto_sign_ed25519_sk_to_seed\ncrypto_sign_ed25519_verify_detached\ncrypto_sign_ed25519ph_final_create\ncrypto_sign_ed25519ph_final_verify\ncrypto_sign_ed25519ph_init\ncrypto_sign_ed25519ph_statebytes\ncrypto_sign_ed25519ph_update\ncrypto_sign_final_create\ncrypto_sign_final_verify\ncrypto_sign_init\ncrypto_sign_keypair\ncrypto_sign_messagebytes_max\ncrypto_sign_open\ncrypto_sign_primitive\ncrypto_sign_publickeybytes\ncrypto_sign_secretkeybytes\ncrypto_sign_seed_keypair\ncrypto_sign_seedbytes\ncrypto_sign_statebytes\ncrypto_sign_update\ncrypto_sign_verify_detached\ncrypto_stream\ncrypto_stream_chacha20\ncrypto_stream_chacha20_ietf\ncrypto_stream_chacha20_ietf_ext\ncrypto_stream_chacha20_ietf_ext_xor_ic\ncrypto_stream_chacha20_ietf_keybytes\ncrypto_stream_chacha20_ietf_keygen\ncrypto_stream_chacha20_ietf_messagebytes_max\ncrypto_stream_chacha20_ietf_noncebytes\ncrypto_stream_chacha20_ietf_xor\ncrypto_stream_chacha20_ietf_xor_ic\ncrypto_stream_chacha20_keybytes\ncrypto_stream_chacha20_keygen\ncrypto_stream_chacha20_messagebytes_max\ncrypto_stream_chacha20_noncebytes\ncrypto_stream_chacha20_xor\ncrypto_stream_chacha20_xor_ic\ncrypto_stream_keybytes\ncrypto_stream_keygen\ncrypto_stream_messagebytes_max\ncrypto_stream_noncebytes\ncrypto_stream_primitive\ncrypto_stream_salsa20\ncrypto_stream_salsa2012\ncrypto_stream_salsa2012_keybytes\ncrypto_stream_salsa2012_keygen\ncrypto_stream_salsa2012_messagebytes_max\ncrypto_stream_salsa2012_noncebytes\ncrypto_stream_salsa2012_xor\ncrypto_stream_salsa208\ncrypto_stream_salsa208_keybytes\ncrypto_stream_salsa208_keygen\ncrypto_stream_salsa208_messagebytes_max\ncrypto_stream_salsa208_noncebytes\ncrypto_stream_salsa208_xor\ncrypto_stream_salsa20_keybytes\ncrypto_stream_salsa20_keygen\ncrypto_stream_salsa20_messagebytes_max\ncrypto_stream_salsa20_noncebytes\ncrypto_stream_salsa20_xor\ncrypto_stream_salsa20_xor_ic\ncrypto_stream_xchacha20\ncrypto_stream_xchacha20_keybytes\ncrypto_stream_xchacha20_keygen\ncrypto_stream_xchacha20_messagebytes_max\ncrypto_stream_xchacha20_noncebytes\ncrypto_stream_xchacha20_xor\ncrypto_stream_xchacha20_xor_ic\ncrypto_stream_xor\ncrypto_stream_xsalsa20\ncrypto_stream_xsalsa20_keybytes\ncrypto_stream_xsalsa20_keygen\ncrypto_stream_xsalsa20_messagebytes_max\ncrypto_stream_xsalsa20_noncebytes\ncrypto_stream_xsalsa20_xor\ncrypto_stream_xsalsa20_xor_ic\ncrypto_verify_16\ncrypto_verify_16_bytes\ncrypto_verify_32\ncrypto_verify_32_bytes\ncrypto_verify_64\ncrypto_verify_64_bytes\ncrypto_xof_shake128\ncrypto_xof_shake128_blockbytes\ncrypto_xof_shake128_domain_standard\ncrypto_xof_shake128_init\ncrypto_xof_shake128_init_with_domain\ncrypto_xof_shake128_squeeze\ncrypto_xof_shake128_statebytes\ncrypto_xof_shake128_update\ncrypto_xof_shake256\ncrypto_xof_shake256_blockbytes\ncrypto_xof_shake256_domain_standard\ncrypto_xof_shake256_init\ncrypto_xof_shake256_init_with_domain\ncrypto_xof_shake256_squeeze\ncrypto_xof_shake256_statebytes\ncrypto_xof_shake256_update\ncrypto_xof_turboshake128\ncrypto_xof_turboshake128_blockbytes\ncrypto_xof_turboshake128_domain_standard\ncrypto_xof_turboshake128_init\ncrypto_xof_turboshake128_init_with_domain\ncrypto_xof_turboshake128_squeeze\ncrypto_xof_turboshake128_statebytes\ncrypto_xof_turboshake128_update\ncrypto_xof_turboshake256\ncrypto_xof_turboshake256_blockbytes\ncrypto_xof_turboshake256_domain_standard\ncrypto_xof_turboshake256_init\ncrypto_xof_turboshake256_init_with_domain\ncrypto_xof_turboshake256_squeeze\ncrypto_xof_turboshake256_statebytes\ncrypto_xof_turboshake256_update\nescrypt_PBKDF2_SHA256\nescrypt_alloc_region\nescrypt_free_local\nescrypt_free_region\nescrypt_gensalt_r\nescrypt_init_local\nescrypt_kdf_nosse\nescrypt_parse_setting\nescrypt_r\nfe25519_frombytes\nfe25519_invert\nfe25519_tobytes\nge25519_clear_cofactor\nge25519_double_scalarmult_vartime\nge25519_from_hash\nge25519_from_uniform\nge25519_frombytes\nge25519_frombytes_negate_vartime\nge25519_has_small_order\nge25519_is_canonical\nge25519_is_on_curve\nge25519_is_on_main_subgroup\nge25519_p1p1_to_p2\nge25519_p1p1_to_p3\nge25519_p2_to_p3\nge25519_p3_add\nge25519_p3_sub\nge25519_p3_tobytes\nge25519_scalarmult\nge25519_scalarmult_base\nge25519_tobytes\nkeccak1600_armsha3_extract_bytes\nkeccak1600_armsha3_init\nkeccak1600_armsha3_permute_12\nkeccak1600_armsha3_permute_24\nkeccak1600_armsha3_xor_bytes\nkeccak1600_ref_extract_bytes\nkeccak1600_ref_init\nkeccak1600_ref_permute_12\nkeccak1600_ref_permute_24\nkeccak1600_ref_xor_bytes\nmlkem768_ref_dec\nmlkem768_ref_enc\nmlkem768_ref_enc_deterministic\nmlkem768_ref_keypair\nmlkem768_ref_seed_keypair\nrandombytes\nrandombytes_buf\nrandombytes_buf_deterministic\nrandombytes_close\nrandombytes_implementation_name\nrandombytes_random\nrandombytes_seedbytes\nrandombytes_set_implementation\nrandombytes_stir\nrandombytes_uniform\nristretto255_from_hash\nristretto255_frombytes\nristretto255_p3_tobytes\nsc25519_invert\nsc25519_is_canonical\nsc25519_mul\nsc25519_muladd\nsc25519_reduce\nshake128_ref\nshake128_ref_init\nshake128_ref_init_with_domain\nshake128_ref_squeeze\nshake128_ref_update\nshake256_ref\nshake256_ref_init\nshake256_ref_init_with_domain\nshake256_ref_squeeze\nshake256_ref_update\nsodium_add\nsodium_allocarray\nsodium_base642bin\nsodium_base64_encoded_len\nsodium_bin2base64\nsodium_bin2hex\nsodium_bin2ip\nsodium_compare\nsodium_crit_enter\nsodium_crit_leave\nsodium_free\nsodium_hex2bin\nsodium_increment\nsodium_init\nsodium_ip2bin\nsodium_is_zero\nsodium_library_minimal\nsodium_library_version_major\nsodium_library_version_minor\nsodium_malloc\nsodium_memcmp\nsodium_memzero\nsodium_misuse\nsodium_mlock\nsodium_mprotect_noaccess\nsodium_mprotect_readonly\nsodium_mprotect_readwrite\nsodium_munlock\nsodium_pad\nsodium_runtime_has_aesni\nsodium_runtime_has_armcrypto\nsodium_runtime_has_avx\nsodium_runtime_has_avx2\nsodium_runtime_has_avx512f\nsodium_runtime_has_neon\nsodium_runtime_has_pclmul\nsodium_runtime_has_rdrand\nsodium_runtime_has_sse2\nsodium_runtime_has_sse3\nsodium_runtime_has_sse41\nsodium_runtime_has_ssse3\nsodium_set_misuse_handler\nsodium_stackzero\nsodium_sub\nsodium_unpad\nsodium_version_string\nsoftaes_block_decrypt\nsoftaes_block_decryptlast\nsoftaes_block_encrypt\nsoftaes_block_encryptlast\nsoftaes_expand_key128\nsoftaes_expand_key256\nsoftaes_inv_mix_columns\nsoftaes_invert_key_schedule128\nsoftaes_invert_key_schedule256\nturboshake128_ref\nturboshake128_ref_init\nturboshake128_ref_init_with_domain\nturboshake128_ref_squeeze\nturboshake128_ref_update\nturboshake256_ref\nturboshake256_ref_init\nturboshake256_ref_init_with_domain\nturboshake256_ref_squeeze\nturboshake256_ref_update\n"
  }
]